{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/components/Fields/FormGroup.vue?fa07","webpack:///./src/components/Fields/FormGroup.vue?2419","webpack:///./src/components/Fields/FormGroup.vue?13b4","webpack:///./src/components/Fields/FormGroup.vue","webpack:///./src/components/Insights/CalculationTable.vue?b7f8","webpack:///./src/components/Insights/CalculationTable.vue?24a0","webpack:///./src/components/Insights/CalculationTable.vue?e893","webpack:///./src/components/Insights/CalculationTable.vue","webpack:///./src/utils/Placeholder.ts","webpack:///./src/services/hubNotificationService.ts","webpack:///./src/services/viewsService.ts","webpack:///./src/store/cases.ts","webpack:///./src/store/features.ts","webpack:///./src/services/api_Notification.ts","webpack:///./src/services/api/subscriptionService.ts","webpack:///./src/store/index.ts","webpack:///./src/types/schedule.ts","webpack:///./src/components/CaseList/CaseList.vue?a363","webpack:///./src/components/CaseList/CaseList.vue?d139","webpack:///./src/components/CaseList/CaseList.vue?6977","webpack:///./src/components/CaseList/CaseList.vue","webpack:///./src/components/Insights/CalculationTable.vue?3808","webpack:///./src/services/api.ts","webpack:///./src/components/Fields/DataSourceSelect.vue?bb92","webpack:///./src/components/Controls/PasswordInput.vue?ce8b","webpack:///./src/components/Config/Schedules/ScheduleInstance.vue?18c5","webpack:///./src/components/Config/Schedules/ScheduleInstance.vue?3620","webpack:///./src/components/Config/Schedules/ScheduleInstance.vue?e97d","webpack:///./src/components/Config/Schedules/ScheduleInstance.vue","webpack:///./src/components/CaseDetails/Users/UserHeaderFields.vue?4509","webpack:///./src/components/CaseDetails/Users/UserHeaderFields.vue?c6e7","webpack:///./src/components/CaseDetails/Users/UserHeaderFields.vue?43a6","webpack:///./src/components/CaseDetails/Users/UserHeaderFields.vue","webpack:///./src/components/New/Page/PageComponents/HelpIcon.vue?3190","webpack:///./src/mixins/uniqueIdMixin.ts","webpack:///./src/components/New/Page/PageComponents/HelpIcon.vue?df25","webpack:///./src/components/New/Page/PageComponents/HelpIcon.vue?fe80","webpack:///./src/components/New/Page/PageComponents/HelpIcon.vue","webpack:///./src/mixins/formatDateMixin.ts","webpack:///./src/components/Search/ColumnFilters.vue?6425","webpack:///./src/components/Search/SearchFilter.vue?f9a1","webpack:///./src/components/Search/SearchFilter.vue?42c4","webpack:///./src/components/Search/SearchFilter.vue?875e","webpack:///./src/components/Search/SearchFilter.vue","webpack:///./src/components/Search/ColumnFilters.vue?ef6e","webpack:///./src/components/Search/ColumnFilters.vue?39cc","webpack:///./src/components/Search/ColumnFilters.vue","webpack:///./src/components/Controls/ColumnFormatting.vue?5eb7","webpack:///./src/components/Controls/ColumnFormatting.vue?4684","webpack:///./src/components/Controls/ColumnFormatting.vue?0f1e","webpack:///./src/components/Controls/ColumnFormatting.vue","webpack:///./src/components/CaseDetails/TimeSpentDisplay.vue?d3b1","webpack:///./src/components/CaseDetails/TimeSpentDisplay.vue?4e06","webpack:///./src/components/CaseDetails/TimeSpentDisplay.vue?2f60","webpack:///./src/components/CaseDetails/TimeSpentDisplay.vue","webpack:///./src/services/file-service.ts","webpack:///./src/components/Config/Schedules/CreateForTeam.vue?8302","webpack:///./src/components/Config/Schedules/CreateForTeam.vue?4131","webpack:///./src/components/Config/Schedules/CreateForTeam.vue?4400","webpack:///./src/components/Config/Schedules/CreateForTeam.vue","webpack:///./src/services/scheduleEditService.ts","webpack:///./src/components/Fields/TextAreaExpand.vue?f9a1","webpack:///./src/mixins/calculatedValueDisplay.ts","webpack:///./src/utils/ThemeLoader.ts","webpack:///./src/components/Insights/HeatMap.vue?67ef","webpack:///./src/components/Insights/HeatMap.vue?cf39","webpack:///./src/components/Insights/HeatMap.vue?a98d","webpack:///./src/components/Insights/HeatMap.vue","webpack:///./src/components/Fields/DataSourceTemplate.vue?cbad","webpack:///./src/components/Fields/DataSourceTemplate.vue?f986","webpack:///./src/components/Fields/DataSourceTemplate.vue?141b","webpack:///./src/components/Fields/DataSourceTemplate.vue","webpack:///./src/components/UserImage.vue?2fb1","webpack:///./src/components/Account/LightDarkSwitch.vue?4ae0","webpack:///./src/mixins/FormatInsight.ts","webpack:///./src/components/Controls/SearchDropDown.vue?f22a","webpack:///./src/components/Controls/SearchDropDown.vue?95ab","webpack:///./src/components/Controls/SearchDropDown.vue?7655","webpack:///./src/components/Controls/SearchDropDown.vue","webpack:///./src/mixins/utils.ts","webpack:///./src/components/Insights/TableResults.vue?151c","webpack:///./src/types/loginRequest.ts","webpack:///./src/App.vue?0f3b","webpack:///./src/components/UserImage.vue?8f36","webpack:///./src/components/UserImage.vue?7fad","webpack:///./src/components/UserImage.vue?7842","webpack:///./src/components/UserImage.vue","webpack:///./src/components/Account/LightDarkSwitch.vue?83cf","webpack:///./src/components/Account/LightDarkSwitch.vue?f72e","webpack:///./src/components/Account/LightDarkSwitch.vue?1ff8","webpack:///./src/components/Account/LightDarkSwitch.vue","webpack:///./src/components/Dashboard/NoticeboardDisplay.vue?8a0e","webpack:///./src/types/rule.ts","webpack:///./src/scripts/VSelectDropdownPosition.ts","webpack:///./src/components/Controls/FieldAndValue.vue?08c4","webpack:///./src/components/Controls/FieldAndValue.vue?25b4","webpack:///./src/components/Controls/FieldAndValue.vue?b659","webpack:///./src/components/Controls/FieldAndValue.vue","webpack:///./src/components/Fields/ExternalLink.vue?bc22","webpack:///./src/components/Fields/ExternalLink.vue?be33","webpack:///./src/components/Fields/ExternalLink.vue?e01c","webpack:///./src/components/Fields/ExternalLink.vue","webpack:///./node_modules/moment/locale sync ^\\.\\/.*$","webpack:///./src/components/Account/UserProfilePicture.vue?3077","webpack:///./src/types/field.ts","webpack:///./src/components/Fields/DateTime.vue?b7d6","webpack:///./src/components/Controls/ParameterValue.vue?ea8c","webpack:///./src/components/CaseList/CaseFilters.vue?f075","webpack:///./src/components/CaseList/CaseFilters.vue?ded1","webpack:///./src/components/CaseList/CaseFilters.vue?0b66","webpack:///./src/components/CaseList/CaseFilters.vue","webpack:///./src/components/CaseList/CaseList.vue?1ff7","webpack:///./src/components/Dashboard/TeamView.vue?5f8b","webpack:///./src/components/CaseDetails/Users/UserRole.vue?8a45","webpack:///./src/components/CaseDetails/Users/UserSearch.vue?6dce","webpack:///./src/components/CaseDetails/Users/UserSearch.vue?f907","webpack:///./src/components/CaseDetails/Users/UserSearch.vue?30c4","webpack:///./src/components/CaseDetails/Users/UserSearch.vue","webpack:///./src/components/CaseDetails/Users/UserRole.vue?6b0f","webpack:///./src/components/CaseDetails/Users/UserRole.vue?59a3","webpack:///./src/components/CaseDetails/Users/UserRole.vue","webpack:///./src/components/Search/CaseFieldDisplay.vue?637b","webpack:///./src/components/Controls/FieldAndValue.vue?9ba9","webpack:///./src/components/ZendeskHelp.vue?b631","webpack:///./src/components/Config/Schedules/CalendarView.vue?ac82","webpack:///./src/components/Controls/SelectModal.vue?6b9d","webpack:///./src/components/Controls/SelectModal.vue?1149","webpack:///./src/components/Controls/SelectModal.vue?dae3","webpack:///./src/components/Controls/SelectModal.vue","webpack:///./src/components/Config/Schedules/CalendarView.vue?b2ae","webpack:///./src/components/Config/Schedules/CalendarView.vue?d206","webpack:///./src/components/Config/Schedules/CalendarView.vue","webpack:///./src/components/Insights/ChartResults.vue?ccca","webpack:///./src/scripts/mapStyle.ts","webpack:///./src/components/CaseDetails/Users/UserHeaderFields.vue?9304","webpack:///./src/utils/CookieHelper.ts","webpack:///./src/components/CaseDetails/Users/UserSearch.vue?8dd9","webpack:///./src/services/api_Integrations.ts","webpack:///./src/types/view.ts","webpack:///./src/components/ZendeskHelp.vue?c50d","webpack:///./src/components/ZendeskHelp.vue?6b81","webpack:///./src/components/ZendeskHelp.vue?7bd4","webpack:///./src/components/ZendeskHelp.vue","webpack:///./src/components/Controls/SearchDropDown.vue?b5ec","webpack:///./src/components/CaseList/CaseTable.vue?db51","webpack:///./src/services/api_FormattingRuleSettings.ts","webpack:///./src/components/Page.vue?35a7","webpack:///./src/scripts/guid.ts","webpack:///./src/components/Fields/FormGroup.vue?82cd","webpack:///./src/components/Fields/TextAreaToggleExpand.vue?2281","webpack:///./src/views/Account.vue?9bd4","webpack:///./src/components/Fields/TextAreaToggleExpand.vue?d719","webpack:///./src/components/Fields/RichTextEditor.vue?3e76","webpack:///./src/components/Fields/RichTextEditor.vue?3539","webpack:///./src/components/Fields/RichTextEditor.vue?77a7","webpack:///./src/components/Fields/RichTextEditor.vue","webpack:///./src/components/Fields/TextAreaToggleExpand.vue?82e0","webpack:///./src/components/Fields/TextAreaToggleExpand.vue?42cd","webpack:///./src/components/Fields/TextAreaToggleExpand.vue","webpack:///./src/components/Insights/ChartOptions.vue?70a8","webpack:///./src/components/Insights/ChartOptions.vue?f9af","webpack:///./src/components/Insights/ChartOptions.vue?eede","webpack:///./src/components/Insights/ChartOptions.vue","webpack:///./src/components/Account/UserProfilePicture.vue?34f6","webpack:///./src/components/SetStatusModal.vue?aca0","webpack:///./src/components/SetStatusModal.vue?6771","webpack:///./src/components/SetStatusModal.vue?8b19","webpack:///./src/components/SetStatusModal.vue","webpack:///./src/components/CaseDetails/QuickCreate.vue?8596","webpack:///./src/components/CaseDetails/QuickCreate.vue?5872","webpack:///./src/components/CaseDetails/QuickCreate.vue?25cb","webpack:///./src/components/CaseDetails/QuickCreate.vue","webpack:///./src/components/Info/TenantInfoDisplay.vue?5b66","webpack:///./src/components/Info/TenantInfoDisplay.vue?8052","webpack:///./src/components/Info/TenantInfoDisplay.vue?9e23","webpack:///./src/components/Info/TenantInfoDisplay.vue","webpack:///./src/views/Dashboard.vue?3137","webpack:///./src/components/Config/Permissions/FieldPermissions.vue?755f","webpack:///./src/components/Config/Permissions/FieldPermissions.vue?8ab3","webpack:///./src/components/Config/Permissions/FieldPermissions.vue?19d1","webpack:///./src/components/Config/Permissions/FieldPermissions.vue","webpack:///./src/components/New/Page/Notifications/NotificationsMenu.vue?ab2e","webpack:///./src/types/caseColumns.ts","webpack:///./src/components/CaseList/ViewFolders.vue?f6ae","webpack:///./src/components/CaseList/ViewFolderItem.vue?310c","webpack:///./src/components/CaseList/ViewFolderItem.vue?683e","webpack:///./src/components/CaseList/ViewFolderItem.vue?c3a8","webpack:///./src/components/CaseList/ViewFolderItem.vue","webpack:///./src/components/CaseList/ViewFolders.vue?001f","webpack:///./src/components/CaseList/ViewFolders.vue?125b","webpack:///./src/components/CaseList/ViewFolders.vue","webpack:///./src/components/Dashboard/Graph.vue?4eb1","webpack:///./src/components/DisplayMessage.vue?33df","webpack:///./src/components/Dashboard/Numerical.vue?6fe3","webpack:///./src/components/Login/MFAEntry.vue?b379","webpack:///./src/components/Config/DataForm.vue?d78f","webpack:///./src/components/Config/DataForm.vue?d811","webpack:///./src/components/Config/DataForm.vue?2cc1","webpack:///./src/components/Config/DataForm.vue","webpack:///./src/components/CaseDetails/QuickCreateMenu.vue?cded","webpack:///./src/components/New/Page/SideBar.vue?40e3","webpack:///./src/types/tenantFeatures.ts","webpack:///./src/components/SureViewIcon.vue?d274","webpack:///./src/components/SureViewIcon.vue?5cef","webpack:///./src/components/SureViewIcon.vue?3cc5","webpack:///./src/components/SureViewIcon.vue","webpack:///./src/components/Config/Schedules/CalendarView.vue?74af","webpack:///./src/services/mapProvider.ts","webpack:///./src/components/Fields/FieldControl.vue?c327","webpack:///./src/components/Config/TenantSettings/DayOfWeekSetting.vue?7666","webpack:///./src/components/Config/TenantSettings/DayOfWeekSetting.vue?a97e","webpack:///./src/components/Config/TenantSettings/DayOfWeekSetting.vue?6574","webpack:///./src/components/Config/TenantSettings/DayOfWeekSetting.vue","webpack:///./src/components/Fields/FieldControl.vue?6b83","webpack:///./src/components/Fields/FieldControl.vue?356a","webpack:///./src/components/Fields/FieldControl.vue","webpack:///./src/components/SlideMenu.vue?07fb","webpack:///./src/mixins/formatFieldsMixin.ts","webpack:///./src/services/api.event.ts","webpack:///./src/scripts/brandingLink.ts","webpack:///./src/mixins/cellFormatting.ts","webpack:///./src/types/insights/calculation.ts","webpack:///./src/types/insights/labelFormat.ts","webpack:///./src/types/insights/groupByDateFormat.ts","webpack:///./src/types/insights/index.ts","webpack:///./src/components/Dashboard/DashboardImage.vue?427b","webpack:///./src/components/Page.vue?d751","webpack:///./src/components/NavHeader.vue?aef9","webpack:///./src/components/NavHeader.vue?83bd","webpack:///./src/components/NavHeader.vue?89ec","webpack:///./src/components/NavHeader.vue","webpack:///./src/components/SlideMenu.vue?6ef9","webpack:///./src/components/SlideMenu.vue?342e","webpack:///./src/components/SlideMenu.vue?4008","webpack:///./src/components/SlideMenu.vue","webpack:///./src/components/DisplayMessage.vue?927e","webpack:///./src/components/DisplayMessage.vue?93dd","webpack:///./src/components/DisplayMessage.vue?3a35","webpack:///./src/components/DisplayMessage.vue","webpack:///./src/components/Page.vue?d324","webpack:///./src/components/Page.vue?77ed","webpack:///./src/components/Page.vue","webpack:///./src/components/UserSettingsModal.vue?61f8","webpack:///./src/components/UserSettingsModal.vue?8fa5","webpack:///./src/components/UserSettingsModal.vue?ae67","webpack:///./src/components/UserSettingsModal.vue","webpack:///./src/components/Dashboard/RecordView.vue?f5fd","webpack:///./src/types/insights/clientSideCalculations.ts","webpack:///./src/mixins/filtering.ts","webpack:///./src/components/CaseDetails/Layout/LayoutHost.vue?1a87","webpack:///./src/services/hubCaseService.ts","webpack:///./src/components/CaseDetails/Layout/LayoutHost.vue?0e14","webpack:///./src/components/CaseDetails/Layout/LayoutHost.vue?9933","webpack:///./src/components/CaseDetails/Layout/LayoutHost.vue","webpack:///./src/components/Fields/DataSourceSelect.vue?e0a5","webpack:///./src/components/Fields/DataSourceSelect.vue?c2b1","webpack:///./src/components/Fields/DataSourceSelect.vue?f3bc","webpack:///./src/components/Fields/DataSourceSelect.vue","webpack:///./src/components/Account/PictureSelect.vue?a532","webpack:///./src/types/userColumns.ts","webpack:///./src/store/setup.ts","webpack:///./src/components/Search/SearchFilter.vue?a900","webpack:///./src/components/NavHeader.vue?a710","webpack:///./src/components/Config/DataForm.vue?d216","webpack:///./src/components/CaseList/ViewFolders.vue?e11b","webpack:///./src/components/Fields/Numeric.vue?7083","webpack:///./src/components/Fields/Numeric.vue?4667","webpack:///./src/components/Fields/Numeric.vue?56cf","webpack:///./src/components/Fields/Numeric.vue","webpack:///./src/views/Signup.vue?e08b","webpack:///./src/services/api_Tenant.ts","webpack:///./src/types/insights/operators.ts","webpack:///./src/components/Controls/ColumnFormatting.vue?3cb0","webpack:///./src/components/Fields/DataSourceTemplate.vue?9e7f","webpack:///./src/components/Login/LoginMfaSetup.vue?c7ce","webpack:///./src/components/CaseDetails/QuickCreateMenu.vue?e668","webpack:///./src/components/CaseDetails/QuickCreateMenu.vue?a40c","webpack:///./src/components/CaseDetails/QuickCreateMenu.vue?8a76","webpack:///./src/components/CaseDetails/QuickCreateMenu.vue","webpack:///./src/components/New/Page/Notifications/NotificationsButton.vue?8ba4","webpack:///./src/components/Controls/SelectModal.vue?f05a","webpack:///./src/components/Dashboard/DashboardCalendar.vue?5775","webpack:///./src/services/api_UserStatus.ts","webpack:///./src/services/api.dashboard.ts","webpack:///./src/views/Dashboard.vue?f72f","webpack:///./src/components/Dashboard/DashboardEditBar.vue?84c8","webpack:///./src/components/Dashboard/DashboardEditBar.vue?3daf","webpack:///./src/components/Dashboard/DashboardEditBar.vue?311d","webpack:///./src/components/Dashboard/DashboardEditBar.vue","webpack:///./src/components/Dashboard/Numerical.vue?38b6","webpack:///./src/components/Dashboard/Numerical.vue?4e32","webpack:///./src/components/Dashboard/Numerical.vue?4a56","webpack:///./src/components/Dashboard/Numerical.vue","webpack:///./src/components/Dashboard/RecordView.vue?3617","webpack:///./src/services/hubRecordViewService.ts","webpack:///./src/components/Dashboard/RecordView.vue?43f8","webpack:///./src/components/Dashboard/RecordView.vue?863a","webpack:///./src/components/Dashboard/RecordView.vue","webpack:///./src/components/Dashboard/TeamView.vue?1527","webpack:///./src/components/Dashboard/TeamView.vue?cd36","webpack:///./src/components/Dashboard/TeamView.vue?d73d","webpack:///./src/components/Dashboard/TeamView.vue","webpack:///./src/components/Dashboard/Graph.vue?0fff","webpack:///./src/components/Insights/DynamicParameterValue.vue?238d","webpack:///./src/components/Insights/DynamicParameterValue.vue?def1","webpack:///./src/components/Insights/DynamicParameterValue.vue?423e","webpack:///./src/components/Insights/DynamicParameterValue.vue","webpack:///./src/components/Dashboard/Graph.vue?9ebc","webpack:///./src/components/Dashboard/Graph.vue?cfd6","webpack:///./src/components/Dashboard/Graph.vue","webpack:///./src/components/Dashboard/Metrics.vue?0b15","webpack:///./src/components/Dashboard/Metrics.vue?e7b3","webpack:///./src/components/Dashboard/Metrics.vue?78c4","webpack:///./src/components/Dashboard/Metrics.vue","webpack:///./src/components/Dashboard/InsightTopResult.vue?09a1","webpack:///./src/components/Dashboard/InsightTopResult.vue?7cc3","webpack:///./src/components/Dashboard/InsightTopResult.vue?626b","webpack:///./src/components/Dashboard/InsightTopResult.vue","webpack:///./src/components/Dashboard/GoTo.vue?4e43","webpack:///./src/components/Dashboard/GoTo.vue?58d1","webpack:///./src/components/Dashboard/GoTo.vue?f09f","webpack:///./src/components/Dashboard/GoTo.vue","webpack:///./src/components/CaseDetails/CasePopup.vue?8f81","webpack:///./src/components/CaseDetails/CasePopup.vue?38ce","webpack:///./src/components/CaseDetails/CasePopup.vue?3e14","webpack:///./src/components/CaseDetails/CasePopup.vue","webpack:///./src/components/Dashboard/DashboardImage.vue?7a58","webpack:///./src/components/Dashboard/DashboardImage.vue?f8f5","webpack:///./src/components/Dashboard/DashboardImage.vue?1961","webpack:///./src/components/Dashboard/DashboardImage.vue","webpack:///./src/components/Dashboard/DashboardCalendar.vue?c063","webpack:///./src/components/Dashboard/DashboardCalendar.vue?1257","webpack:///./src/components/Dashboard/DashboardCalendar.vue?148f","webpack:///./src/components/Dashboard/DashboardCalendar.vue","webpack:///./src/components/Dashboard/NoticeboardDisplay.vue?9855","webpack:///./src/services/api_Noticeboard.ts","webpack:///./src/components/Dashboard/SaveNoticeboardModal.vue?f407","webpack:///./src/components/Dashboard/SaveNoticeboardModal.vue?5261","webpack:///./src/components/Dashboard/SaveNoticeboardModal.vue?25b0","webpack:///./src/components/Dashboard/SaveNoticeboardModal.vue","webpack:///./src/components/Dashboard/NoticeboardDisplay.vue?0694","webpack:///./src/components/Dashboard/NoticeboardDisplay.vue?5d03","webpack:///./src/components/Dashboard/NoticeboardDisplay.vue","webpack:///./src/components/Dashboard/DashboardGlobalParameters.vue?f97f","webpack:///./src/components/Dashboard/DashboardGlobalParameters.vue?a8a2","webpack:///./src/views/Dashboard.vue?fb20","webpack:///./src/components/Dashboard/DashboardGlobalParameters.vue?cac9","webpack:///./src/components/Dashboard/DashboardGlobalParameters.vue","webpack:///./src/views/Dashboard.vue?c3e0","webpack:///./src/views/Dashboard.vue","webpack:///./src/views/Login.vue?8250","webpack:///./src/components/Login/PasswordReset.vue?ad55","webpack:///./src/components/Controls/PasswordInput.vue?6545","webpack:///./src/components/Controls/PasswordInput.vue?b17a","webpack:///./src/components/Controls/PasswordInput.vue?53cf","webpack:///./src/components/Controls/PasswordInput.vue","webpack:///./src/components/Login/PasswordReset.vue?0a97","webpack:///./src/components/Login/PasswordReset.vue?eeaf","webpack:///./src/components/Login/PasswordReset.vue","webpack:///./src/components/Login/LoginMfaSetup.vue?905a","webpack:///./src/components/Login/MFASetup.vue?b04e","webpack:///./src/components/Login/MFASetup.vue?9733","webpack:///./src/components/Login/MFASetup.vue?064b","webpack:///./src/components/Login/MFASetup.vue","webpack:///./src/components/Login/LoginMfaSetup.vue?f442","webpack:///./src/components/Login/LoginMfaSetup.vue?2957","webpack:///./src/components/Login/LoginMfaSetup.vue","webpack:///./src/components/Login/MFAEntry.vue?c4c8","webpack:///./src/components/Login/MFAEntry.vue?e9f9","webpack:///./src/components/Login/MFAEntry.vue?a97c","webpack:///./src/components/Login/MFAEntry.vue","webpack:///./src/components/Login/OAuthLogin.vue?14aa","webpack:///./src/components/Login/OAuthLogin.vue?e84e","webpack:///./src/components/Login/OAuthLogin.vue?2b47","webpack:///./src/components/Login/OAuthLogin.vue","webpack:///./src/components/Login/Introduction.vue?1344","webpack:///./src/components/Account/UserProfilePicture.vue?e7c2","webpack:///./src/components/Account/UserProfilePictureModal.vue?b19f","webpack:///./src/components/Account/PictureSelect.vue?456c","webpack:///./src/components/Account/PictureSelect.vue?5aed","webpack:///./src/components/Account/PictureSelect.vue?afbc","webpack:///./src/components/Account/PictureSelect.vue","webpack:///./src/components/Account/UserProfilePictureModal.vue?82a0","webpack:///./src/components/Account/UserProfilePictureModal.vue?e3ab","webpack:///./src/components/Account/UserProfilePictureModal.vue","webpack:///./src/components/Account/UserProfilePicture.vue?3987","webpack:///./src/components/Account/UserProfilePicture.vue?fe01","webpack:///./src/components/Account/UserProfilePicture.vue","webpack:///./src/components/Login/StepProgress.vue?bba1","webpack:///./src/components/Login/StepProgress.vue?1f4d","webpack:///./src/components/Login/Introduction.vue?77cf","webpack:///./src/components/Login/StepProgress.vue?35a2","webpack:///./src/components/Login/StepProgress.vue","webpack:///./src/views/Login.vue?bb6b","webpack:///./src/components/Login/Introduction.vue?10b1","webpack:///./src/components/Login/Introduction.vue","webpack:///./src/views/Login.vue?5134","webpack:///./src/views/Login.vue","webpack:///./src/views/Signup.vue?8c8a","webpack:///./src/views/Signup.vue?ac6a","webpack:///./src/views/Signup.vue?003c","webpack:///./src/views/Signup.vue","webpack:///./src/views/Account.vue?5c08","webpack:///./src/views/Account.vue?e544","webpack:///./src/views/Account.vue?622f","webpack:///./src/views/Account.vue","webpack:///./src/views/Search.vue?7686","webpack:///./src/components/Search/ResultsDisplay.vue?eaf1","webpack:///./src/components/Search/ResultsDisplay.vue?4e08","webpack:///./src/components/Search/ResultsDisplay.vue?af07","webpack:///./src/components/Search/ResultsDisplay.vue","webpack:///./src/components/Search/CasePreview.vue?ba2a","webpack:///./src/components/Search/CaseFieldDisplay.vue?e747","webpack:///./src/components/Search/CaseFieldDisplay.vue?2900","webpack:///./src/components/Search/CaseFieldDisplay.vue?6419","webpack:///./src/components/Search/CaseFieldDisplay.vue","webpack:///./src/components/Search/CasePreview.vue?03ef","webpack:///./src/components/Search/CasePreview.vue?a882","webpack:///./src/components/Search/CasePreview.vue","webpack:///./src/views/Search.vue?a7ec","webpack:///./src/views/Search.vue?a745","webpack:///./src/views/Search.vue","webpack:///./src/views/UserProfile.vue?0aab","webpack:///./src/components/Login/AccountSetup.vue?599b","webpack:///./src/components/Login/AccountSetup.vue?f37c","webpack:///./src/components/Login/AccountSetup.vue?cb6d","webpack:///./src/components/Login/AccountSetup.vue","webpack:///./src/views/UserProfile.vue?651b","webpack:///./src/views/UserProfile.vue?4bf8","webpack:///./src/views/UserProfile.vue","webpack:///./src/views/Organization.vue?b607","webpack:///./src/views/Organization.vue?b370","webpack:///./src/views/Organization.vue?ec25","webpack:///./src/views/Organization.vue","webpack:///./src/router/guards.ts","webpack:///./src/router/index.ts","webpack:///./src/components/Fields/RichTextEditor.vue?6e95","webpack:///./src/components/Notifications/BaseNotificationsMenu.vue?6b19","webpack:///./src/components/Notifications/BaseNotificationsMenu.vue?7b4b","webpack:///./src/components/Notifications/BaseNotificationsMenu.vue?9fea","webpack:///./src/components/Notifications/BaseNotificationsMenu.vue","webpack:///./src/components/SureViewIcon.vue?cc85","webpack:///./src/components/New/Page/GlobalSearch.vue?07cb","webpack:///./src/types/domain.ts","webpack:///./src/types/notification.ts","webpack:///./src/components/Dashboard/DashboardGlobalParameters.vue?7941","webpack:///./src/components/Dashboard/Label.vue?1402","webpack:///./src/scripts/array-operations.ts","webpack:///./src/components/Fields/DateTime.vue?29f9","webpack:///./src/components/Fields/DateTime.vue?443b","webpack:///./src/components/Fields/DateTime.vue?e1a0","webpack:///./src/components/Fields/DateTime.vue","webpack:///./src/components/Login/Introduction.vue?42db","webpack:///./src/components/New/Page/PageWrapper.vue?2d22","webpack:///./src/components/New/Page/Page.vue?041d","webpack:///./src/components/New/Page/HeaderBar.vue?82f6","webpack:///./src/components/New/Page/UserMenu.vue?b04f","webpack:///./src/components/SureViewSupportModal.vue?112c","webpack:///./src/components/SureViewSupportModal.vue?e807","webpack:///./src/components/SureViewSupportModal.vue?1b8b","webpack:///./src/components/SureViewSupportModal.vue","webpack:///./src/components/Account/NewLightDarkSwitch.vue?cd52","webpack:///./src/components/Account/NewLightDarkSwitch.vue?c667","webpack:///./src/components/Account/NewLightDarkSwitch.vue?8c03","webpack:///./src/components/Account/NewLightDarkSwitch.vue","webpack:///./src/components/New/Page/UserMenu.vue?61d6","webpack:///./src/components/New/Page/UserMenu.vue?8736","webpack:///./src/components/New/Page/UserMenu.vue","webpack:///./src/components/New/Page/Notifications/NotificationsMenu.vue?4bd8","webpack:///./src/components/New/Page/Notifications/NotificationsButton.vue?cb50","webpack:///./src/components/New/Page/Notifications/NotificationsButton.vue?a322","webpack:///./src/components/New/Page/Notifications/NotificationsButton.vue?4f3e","webpack:///./src/components/New/Page/Notifications/NotificationsButton.vue","webpack:///./src/components/New/Page/Notifications/NotificationsMenu.vue?15af","webpack:///./src/components/New/Page/GlobalSearch.vue?2c2d","webpack:///./src/components/New/Page/Notifications/NotificationsMenu.vue?1090","webpack:///./src/components/New/Page/Notifications/NotificationsMenu.vue","webpack:///./src/components/New/Page/GlobalSearch.vue?f7d3","webpack:///./src/components/New/Page/GlobalSearch.vue?7b68","webpack:///./src/components/New/Page/GlobalSearch.vue","webpack:///./src/components/New/Page/HeaderBar.vue?a4ba","webpack:///./src/components/New/Page/HeaderBar.vue?bef5","webpack:///./src/components/New/Page/HeaderBar.vue","webpack:///./src/components/New/Page/SideBar.vue?75ca","webpack:///./src/components/New/Page/SideBar.vue?7ac5","webpack:///./src/components/New/Page/SideBar.vue?46c3","webpack:///./src/components/New/Page/SideBar.vue","webpack:///./src/components/New/Page/Page.vue?45c7","webpack:///./src/components/New/Page/Page.vue?ced5","webpack:///./src/components/New/Page/Page.vue","webpack:///./src/components/New/Page/PageWrapper.vue?8a71","webpack:///./src/components/New/Page/PageWrapper.vue?9966","webpack:///./src/components/New/Page/PageWrapper.vue","webpack:///./src/scripts/caseDetails.ts","webpack:///./src/components/Insights/ChartResults.vue?3d7b","webpack:///./src/components/Insights/ChartResults.vue?b176","webpack:///./src/components/Insights/ChartResults.vue?9eab","webpack:///./src/components/Insights/ChartResults.vue","webpack:///./src/services/api_CaseNameSettings.ts","webpack:///./src/components/Controls/ParameterValue.vue?939b","webpack:///./src/types/insights/dateClauseType.ts","webpack:///./src/types/insights/dateRange.ts","webpack:///./src/components/Controls/MapSearchBounds.vue?fe7d","webpack:///./src/components/Controls/MapSearchBounds.vue?d4f5","webpack:///./src/components/Controls/MapSearchBounds.vue?b33e","webpack:///./src/components/Controls/MapSearchBounds.vue","webpack:///./src/components/Controls/DateTimeParameterValue.vue?1529","webpack:///./src/components/Controls/MonthPicker.vue?3783","webpack:///./src/components/Controls/MonthPicker.vue?a671","webpack:///./src/components/Controls/MonthPicker.vue?8fe5","webpack:///./src/components/Controls/MonthPicker.vue","webpack:///./src/components/Controls/DateTimeParameterValue.vue?d966","webpack:///./src/components/Controls/DateTimeParameterValue.vue?0d88","webpack:///./src/components/Controls/DateTimeParameterValue.vue","webpack:///./src/components/Controls/ParameterValue.vue?a70b","webpack:///./src/components/Controls/ParameterValue.vue?919a","webpack:///./src/components/Controls/ParameterValue.vue","webpack:///./src/types/folder.ts","webpack:///./src/components/Dashboard/Metrics.vue?a8d4","webpack:///./src/constants/area.ts","webpack:///./src/App.vue?9e09","webpack:///./src/App.vue?ec60","webpack:///./src/App.vue?640d","webpack:///./src/App.vue","webpack:///./src/mixins/controls.ts","webpack:///./src/mixins/v-select.ts","webpack:///./src/main.ts","webpack:///./src/components/IconUpload.vue?97bb","webpack:///./src/mixins/IconMixins.ts","webpack:///./src/components/IconUpload.vue?7e01","webpack:///./src/components/IconUpload.vue?1f09","webpack:///./src/components/IconUpload.vue","webpack:///./src/components/Dashboard/InsightTopResult.vue?04b5","webpack:///./src/components/Notifications/BaseNotificationsMenu.vue?23b0","webpack:///./src/types/dataType.ts","webpack:///./src/components/Login/OAuthLogin.vue?240b","webpack:///./src/constants/input.ts","webpack:///./src/components/Dashboard/GoTo.vue?144a","webpack:///./src/components/Insights/HeatMap.vue?f3e8","webpack:///./src/components/CaseList/CaseTable.vue?7c51","webpack:///./src/components/CaseList/CaseTable.vue?c34d","webpack:///./src/components/CaseList/CaseTable.vue?a4f4","webpack:///./src/components/CaseList/CaseTable.vue","webpack:///./src/views/Search.vue?ded4","webpack:///./src/components/Fields/MapLocation.vue?adad","webpack:///./src/components/Fields/MapLocation.vue?bdc5","webpack:///./src/components/Fields/MapLocation.vue?7270","webpack:///./src/components/Fields/MapLocation.vue","webpack:///./src/components/Controls/MonthPicker.vue?f303","webpack:///./src/components/Insights/TableResults.vue?5eb0","webpack:///./src/components/Insights/TableResults.vue?b6c8","webpack:///./src/components/Insights/TableResults.vue?dcf4","webpack:///./src/components/Insights/TableResults.vue","webpack:///./src/components/New/Page/Page.vue?776c","webpack:///./src/components/Account/NewLightDarkSwitch.vue?a048","webpack:///./src/components/Fields/TextAreaExpand.vue?eb11","webpack:///./src/components/Fields/TextAreaExpand.vue?52af","webpack:///./src/components/Fields/TextAreaExpand.vue?6ca6","webpack:///./src/components/Fields/TextAreaExpand.vue","webpack:///./src/components/Config/TenantSettings/DayOfWeekSetting.vue?927a","webpack:///./src/components/Search/ResultsDisplay.vue?5614","webpack:///./src/components/Account/NewInterfaceSwitch.vue?4780","webpack:///./src/components/Account/NewInterfaceSwitch.vue?79ad","webpack:///./src/components/Account/NewInterfaceSwitch.vue?2d68","webpack:///./src/components/Account/NewInterfaceSwitch.vue","webpack:///./src/components/Login/MFASetup.vue?1133","webpack:///./src/components/Search/CasePreview.vue?cb20","webpack:///./src/services/api_RecordNameSettings.ts","webpack:///./src/components/Controls/MapSearchBounds.vue?58e3","webpack:///./src/components/IconUpload.vue?d126","webpack:///./src/views/Login.vue?6250","webpack:///./src/components/SkeletonLoader.vue?c97c","webpack:///./src/components/SkeletonLoader.vue?6bc5","webpack:///./src/components/SkeletonLoader.vue?2518","webpack:///./src/components/SkeletonLoader.vue","webpack:///./src/components/Dashboard/Label.vue?48b8","webpack:///./src/components/Dashboard/Label.vue?8407","webpack:///./src/components/Dashboard/Label.vue?656e","webpack:///./src/components/Dashboard/Label.vue"],"names":["webpackJsonpCallback","data","moduleId","chunkId","chunkIds","moreModules","executeModules","i","resolves","length","Object","prototype","hasOwnProperty","call","installedChunks","push","modules","parentJsonpFunction","shift","deferredModules","apply","checkDeferredModules","result","deferredModule","fulfilled","j","depId","splice","__webpack_require__","s","installedModules","installedCssChunks","jsonpScriptSrc","p","exports","module","l","e","promises","cssChunks","Promise","resolve","reject","href","fullhref","existingLinkTags","document","getElementsByTagName","tag","dataHref","getAttribute","rel","existingStyleTags","linkTag","createElement","type","onload","onerror","event","request","target","src","err","Error","code","parentNode","removeChild","head","appendChild","then","installedChunkData","promise","onScriptComplete","script","charset","timeout","nc","setAttribute","error","clearTimeout","chunk","errorType","realSrc","message","name","undefined","setTimeout","all","m","c","d","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","oe","console","jsonpArray","window","oldJsonpFunction","slice","render","_vm","this","_h","$createElement","_c","_self","staticClass","attrs","labelFor","_v","_s","label","_e","requiredExtraText","fieldError","_t","class","descriptionClass","fieldDescription","staticRenderFns","FormGroup","justSaved","saving","description","inUseBy","currentUserId","id","oldSaving","Vue","__decorate","Prop","String","default","Boolean","Watch","Component","components","component","staticStyle","_l","labelColumn","numericalColumn","optionalColumn","row","clickableRows","rowWasClicked","column","on","$event","ctrlKey","shiftKey","altKey","metaKey","canClickRow","rowClick","formatLabel","labelFormat","userHeaderFieldValues","formatWeekStart","formatWeekEnd","style","cellStyle","_b","icon","hideFormatting","cellBarStyle","userIdStatusSelectOpen","availableUserStatusesWithNotSet","userStatusSelectOpen","userStatusSelectClose","userStatus","onUserStatusChanged","model","callback","$$v","$set","expression","title","CalculationTable","reloadResultsKey","userDataByUserId","isMounted","userStatuses","availableUserStatuses","bulkLoadUserDataIfNecessary","calculations","map","index","groupBy","groupByKeyLabels","keys","formattingRules","DataType","number","flat","insight","calculationTotals","total","collate","totalledCalculations","calculationList","calcKey","find","filter","calc","uniqueGroupLabels","reduce","acc","forEach","calcGroupByKey","toString","columns","calculationKey","LabelFormat","WeekRange","optionalColumns","showUserStatus","sort","calculationSort","calculationsColumns","calculationTotalsColumns","sortedColumns","calcColumns","includes","showUserHeaderFields","showCalculatedUserStatus","groupByDataType","userRole","groupByOption","numericalColumns","api","userSpecialDefinition","userDataDefinition","userIds","resultGroups","userStatusListWithFieldsGet","userIdsWithData","userIdWithData","userId","rows","resultGroup","values","getUndefinedColumnValue","formatInsight","methods","roundNumber","userData","setUserStatusRowColumn","calculation","defaultExpression","replace","userStatusMapping","isExternal","totals","columnCalculationResult","getColumnCalculationResult","calculationDetails","calculationType","CalculationType","Total","calcType","firstItem","items","Number","parseFloat","Min","Math","min","Max","max","Average","concat","TotalsRow","field","cellFormatting","cell","allItems","$emit","filterFromClickedRow","dashboardState","calculationTableClickedRows","me","setCurrentUserStatus","clearCurrentUserStatus","setUserStatus","clearUserStatus","extendedPermissions","fieldId","labeledValue","userField","fields","formatFieldsMixin","getDisplayLabelFromLabeledValue","dataType","Text","Getter","Action","VuePerfectScrollbar","vSelect","UserHeaderFields","Embed","Quill","import","Placeholder","node","innerHTML","domNode","placeholderId","placeholderLabel","placeholderColourClass","JoinResult","ViewsService","viewSummary","loading","viewError","activeViewId","activeView","searchTerm","cacheId","caseViews","viewsService","state","loadingCases","caseListLoadError","cases","caseErrors","currentCase","currentTemplate","statuses","severities","areas","areaDictionary","Map","categories","currentCaseAudit","currentCaseFiles","pendingUploadFiles","previewFile","previewKeyMedia","showCCEvent","caseEvents","actions","caseFieldDetails","caseToast","pendingRefresh","Set","fieldLockInterval","fieldLockMilliseconds","inProgressSaveDetails","newCase","defaultStatus","sections","assigneeId","severityId","severityTitle","severityLevel","level","statusId","statusTitle","cadenceDetails","templateId","categoryTitle","openedByUser","openedByUserId","caseNumber","isSensitive","pendingTeams","users","summary","viewingUsers","isCase","isClosed","links","permissions","tags","cadenceEnabled","hiddenFromInsights","filterTree","tree","nodeVisibility","inFilter","toLowerCase","indexOf","filteredCount","children","set","parentId","namespaced","getters","getLoadingCases","getCaseListLoadingError","getCases","getCurrentCase","getSeverities","getStatuses","getCadenceDetails","getCategories","getCreatableCategories","rootState","template","preventManualCreation","alwaysPromoted","case","edit","some","teams","mt","record","getCurrentCaseAudit","getCurrentCaseFiles","getNumberOfFilesAwaitingUpload","getPendingUploadFiles","getPreviewFile","getPreviewKeyMedia","getShowCCEvent","getCaseFieldDetails","getShowField","fieldKey","hiddenFields","getBlankCase","getCurrentTemplate","mutations","setCurrentCase","setActiveViewId","viewId","setCurrentCaseId","caseId","setCurrentCaseNew","setCurrentCaseTemplate","applyTemplate","setCurrentCaseTags","setCaseErrors","errorList","setLoadingCases","setListLoadingError","setCaseList","caseList","setStatuses","setSeverities","setCurrentTemplate","setAreas","setAreaDictionary","setCategories","setAudit","setCurrentCaseFiles","addFilesAwaitingUpload","filesToUpload","file","setFileNoLongerAwaitingUpload","fileNameIndex","findIndex","uploadFilename","clearPendingFiles","updateCurrentCase","updatedCase","updateCaseDetails","updateCurrentCaseUsers","setPreviewFile","setPreviewKeyMedia","keyMedia","setShowCCEvent","setCaseEvents","setCaseFieldDetails","details","definition","fromData","setAreaFilter","lowerFilter","setCaseToast","cascadeListChange","caseDetails","caseField","newValue","getFields","cascadeCase","addPendingRefresh","itemType","add","removePendingRefresh","delete","setCaseFieldLock","isLocked","setInProgressSaveDetails","text","clearInProgressSaveDetails","caseCreate","commit","saveCase","created","errors","casesLoad","detailsLoad","rootGetters","load","has","excludeAreas","isFeatureEnabled","TenantFeatures","AreaScaling","severitiesLoad","detailsUnload","caseOpen","dispatch","oldValue","templateDetails","caseClear","caseRefresh","refreshCategories","caseAuditLoad","lastUpdated","history","caseAuditLoadAndAdd","currentAudit","newEntries","newHistory","caseFilesLoad","caseFiles","uploadFiles","uploadFile","uploadRun","uploadFormData","FormData","append","fileData","uploading","uploadPercentage","round","loaded","errorMessage","failed","success","log","entrySetKey","eventId","eventRecordId","eventsApi","eventRecordMarkKey","mediaSetKey","clipId","mediaMarkKey","setFieldLockPolling","builtInFieldLocks","setInterval","extendCaseFieldLock","cancelFieldLockPolling","clearInterval","fetchAreaDictionary","getAreaDictionary","opsZendeskHelpWidgetEnabled","features","getOpsZendeskHelpWidgetEnabled","setOpsZendeskHelpWidgetEnabled","widgetEnabled","getOpsZendeskHelpWidgetEnabledSetting","ApiNotification","getAxios","axios","casesNotification","apiNotification","HubNotificationService","notificationConnectionShouldBeOpen","notificationConnection","notLoggedIn","connectionStateChanged","invoke","stop","HubConnectionBuilder","withUrl","process","configureLogging","LogLevel","Information","build","startedPromise","start","HubConnectionState","Disconnected","NotLoggedIn","catch","onclose","hubNotificationService","SubscriptionService","subscriptionService","use","Vuex","router","screenWidth","userSettings","tenantEnabledFeatures","userPictureUrls","subscription","requestingUserPictureUrls","search","darkMode","browserNotificationsPermission","notifications","caseName","recordName","redirectOnLogin","integrations","tenantSettings","selectTenants","manualLogout","loginState","LoginState","currentLogin","systemUser","userToast","materialLoaded","notificationState","getMe","getSubscription","hasSubscription","getUserSettings","getScreenWidth","getMyId","getUserPictureUrl","getTeams","getTeamsById","toDictionary","getSearch","getDarkMode","getBrowserNotificationsPermission","getNotifications","getCaseName","getRecordName","getHasIntegrations","getTenantSettings","getAvailableUserStatuses","getUseScalingComponent","checkTenantSize","isEnabled","tenantSize","getUseAreaScaling","_a","largeAreaSize","getIsSuiteEnabled","Suite","getShouldPreventSanitizationOfRichTextFieldCSVDownloads","DisableRichTextInsightsCSVSanitization","getUseV2","EnableV2","_d","preferences","disableV2","featureKey","startUp","storageItemResult","localStorage","getItem","Notification","permission","setItem","currentRoute","Introduction","path","connected","ableToReconnect","refreshUserInfo","user","logIn","loginDetails","login","loginResult","allowSystemAdmin","systemAdmin","requiresMfaSetup","supportAccess","requiresIntroduction","loginTenants","PendingTenantSelect","requiresMfa","PendingMfa","finishLogin","LoggedIn","redirect","finishIntroduction","loginRedirect","selectTenant","apiTenant","newPath","route","fullPath","go","userInit","Waiting","RedirectUserAfterInterceptedLogin","attemptedURL","getCookieValue","split","pop","introductionEnabled","FirstTimeLogin","hasDoneFirstLogin","tenantId","userSettingsGet","teamsGet","dataSources","isAdmin","integrationApi","integrationsGetActive","logOut","redirectBackOnLogin","closeConnection","reset","connectNotifications","notificationList","newConnectionState","openConnection","connection","incomingNotifications","newNotifications","incomingNotification","existingNotifications","reverse","options","body","notification","onclick","_event","notificationDelete","array","NotificationType","RecordAssignedToUser","RecordUpdatedByAnotherUser","refreshItemType","loadSubscription","billingEnabled","getSubscriptionAsync","subscriptionInvalid","loadTeams","loadUserPictureUrl","userDetails","pictureUrl","requestBrowserNotificationsPermission","requestPermission","processNotification","updatedNotifications","clearAllNotifications","setTheme","darkModeTheme","applyTheme","themeLink","getElementById","currentTheme","isNewStyle","getStylesheetName","rootDiv","classList","remove","resetBrandingLink","setBrandingLink","apiRecordNameSettings","recordNameSettingsList","recordNameSettings","firstOrDefault","apiCaseNameSettings","caseNameSettingsList","caseNameSettings","loadTenantSettings","toDictionaryMapValue","sv","setting","loadAvailableUserStatuses","apiUserStatus","userStatusList","availableStatuses","newUserStatus","updateUserPreferences","userPreferences","isEqual","successful","setMe","myDetails","f","setSubscription","setUserSettings","setAvailableUserStatuses","currentStatus","setScreenWidth","width","setTeams","setSearch","setDarkMode","setBrowserNotificationsPermission","setNotifications","setCaseName","setRecordName","setLoginRedirect","routeName","setIntegrations","setTenantSettings","setSelectTenants","setManualLogout","setLoginState","setCurrentLogin","setSystemUser","setUserToast","setMaterialLoaded","setNotificationState","connectionState","setUserPreferences","Store","setup","ScheduleFreq","DayOfWeek","ScheduleStatus","DayOfMonth","caseFilteringTotal","totalRecordsText","updateBySearch","searchFilter","checkRecordsAvailable","group","fieldsDictionary","displayCheckBoxValue","displayDateOnlyFromISOString","totalRecords","perPage","onPageClick","shouldUseNewInterface","currentPage","getSortColumn","getSortDesc","forecastClicked","setSortDetails","scheduleUpdated","viewScheduleInstance","caseStore","namespace","setupStore","CaseList","groupPages","debounceSearch","defaultColumnSort","defaultSortDataType","none","loadingPage","loadFieldsIfUnloaded","buildFieldsDictionary","setupTablePages","casesTables","table","pageNumber","sortBy","sortDesc","caseColumns","displayKey","fieldDataType","CalculationDataTypeValue","extensions","dataTypeByFieldType","startsWith","substring","endsWith","fieldColumn","dynamicField","listLabel","caseColumn","rounding","listItemType","groupByKeyColumn","caseUsers","getGroups","groupingFunctions","groupByValue","cache","groupLabels","caseItem","groupKey","dateTime","moment","format","sortValue","itemGroups","itemGroup","boolean","res","observable","severity","$router","casesTotal","totalRecordsAvailable","casesShown","totalRecordsShown","test","recordString","scheduling","schedule","scheduleId","scheduleTitle","date","Date","instanceDate","sortDataType","_f","_g","update","pageSize","_j","_k","tableId","current","records","required","State","deep","Emit","SkeletonLoader","CaseTable","UserImage","HttpStatusCode","XHRReadyState","Api","emailExists","email","baseURL","withCredentials","headers","Accept","interceptors","response","location","cookie","status","Unauthorized","store","SubscriptionInvalid","TokenExpired","post","encodeURIComponent","mfaParams","put","OK","includeUsers","params","searchType","searchClauses","payload","clauses","timeZone","Intl","DateTimeFormat","resolvedOptions","page","view","folderType","folder","end","toISOString","propertyName","inProgressUpdate","action","updateType","selected","calculated","existingStatusId","replacementStatusId","existingSeverityId","replacementSeverityId","fromCaseId","toCaseId","mergeCaseModel","areaId","newArea","deleteArea","query","categoryId","rule","dataDefinitionId","dataSourceId","definitionType","actionId","greaterThanDate","linkToCase","formData","progress","finished","xhr","XMLHttpRequest","url","open","setXsrfHeader","onreadystatechange","readyState","Done","BadRequest","responseText","upload","onprogress","send","fileId","typing","comment","teamId","commentIsHtml","isHtml","team","dataSource","includeAll","dataSourceItemId","definitionId","dataSourceItem","JSON","parse","isIdField","searchTermIsId","includeCollaborating","archived","teamIds","allowTeams","disallowAdded","fieldValues","onUploadProgress","includeImportedCalculations","insightQuery","allowCached","includeResults","dynamicParameters","additionalSearchClauses","orderBy","insightId","resultsId","parameter","getFullYear","getMonth","getDate","signupForm","css","xsrfValue","setRequestHeader","caseTitle","scopedSlots","_u","fn","ref","close","canEditSchedules","allowScheduleEdit","scheduleView","directives","rawName","valid","save","proxy","scheduleEdit","editSchedule","newValid","titleTemplateEnabled","templateChanged","hasMap","ScheduleInstance","mapProvider","MapProvider","fileService","FileService","caseFilesChanged","templates","scheduleCase","ScheduleEditService","templateTitle","editData","cloneDeep","scheduleInstance","updatedScheduleInstance","valueUpdated","saveSchedule","instanceFieldvalues","stringify","scheduleInstanceSet","Provide","LayoutHost","DataForm","listMultipleValue","sanitizeFieldTitle","fieldTitle","getLabeledValueDisplayLabel","getDisplayLabelFromLabeledValueWithFieldInfo","iconId","helpTitle","uniqueIdMixin","uniqueId","Guid","newGuid","HelpIcon","Mixins","formatDateMixin","dateStringWithZeroHourOffset","displayDateFromISOString","displayUtcDateOnlyFromISOString","utc","convertUtcDateTimeToLocalDateTimeString","convertUtcDateTimeToLocalTimeString","fromNow","isoFromNow","displayUnParkAt","currentDateFormatted","endOFDayFormatted","endOf","weekAgoDateFormatted","subtract","toStartOfDay","startOf","toEndOfDay","relativeDaysDateFormatted","days","formatDateStr","dateStr","timeOnly","convertFromUTC","includePeriod","dateOnly","monthNames","day","monthIndex","year","hours","getHours","mins","getMinutes","formattedDate","trim","timeSpentFormatted","hoursSpent","floor","minutes","formattedString","columnFilter","columnGroup","stopPropagation","addFilterForColumn","filteredFieldColumnGroups","addOr","allCaseFields","filterColumnGroups","removeFilter","filtersChanged","showApply","applyFilters","slot","columnLabel","operatorLabel","filterLabel","filterOperators","operator","updateOperator","IsSet","NotSet","searchClauseParameters","dynamicValue","dynamic","searchClauseParametersChanged","SearchFilter","filterValues","filterSelectedValue","Operator","columnDataType","fieldTypeOperators","operators","operatorsByFieldType","operatorLabels","isNaN","parseInt","DateRange","startDate","toLocaleDateString","endDate","timeSpentAsValue","timeSpentClause","searchLabel","columnValues","v","newOperator","newOperatorLabel","columnListLabel","clause","DataSourceSelect","ParameterValue","ColumnFilters","filters","orClauseKey","g","columnOperators","firstOperator","filterKey","columnDataSource","orFilters","disableGlobal","showGlobalRulesSelection","addGlobalRule","addRule","dragEnd","currentValue","dragOptions","optionsForField","dynamicValueChanged","clearValues","domProps","composing","numericColumns","setBarMaximum","iconOptions","preventDefault","removeRule","ColumnFormatting","globalFormatSettings","selectedGlobalSetting","animation","disabled","ghostClass","cc","ApiFormattingRuleSettings","formattingRuleSettingsList","globalFormattingRules","item","setTextColor","setBackgroundColor","setBar","setIcon","barMaximum","formatSetting","iconColor","backgroundColor","textColor","barColor","draggable","trackingCaseFieldName","entries","_m","fieldValue","currentlySet","firstSet","lastValueSet","TimeSpentDisplay","fieldExtensions","trackingFieldId","builtInField","lastValue","_","chain","last","filesUpdated","currentCaseId","files","deleteFile","bulkCreateEnabled","valueUpdate","CreateForTeam","timeZones","currentUser","scheduleSetting","defaultFieldValues","currentSchedule","initialTemplateId","selectedTemplate","availableFields","folders","generatingCase","filterOutCaseColumns","Once","Daily","Weekly","Monthly","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday","availableTemplates","templateSchedule","schedulingAvailable","schedulingPermissions","a","b","localeCompare","selectedTemplateId","applyDefaultValues","fieldsInTemplate","schedulingFields","defaultValues","fieldA","fieldB","order","obj","sortable","inModal","inTable","hasTemplate","valueColumn","tooltip","getPermittedSelectionFolders","timeZoneId","scheduleFreqOptions","scheduleFreq","dayOptions","validateDaysOfInput","dayOf","dynamicComponent","DateTime","componentProperties","includeYesterday","includeToday","isAfter","enterAsUTC","validateMaxMinDates","startTime","bulkCreateForTeams","findAndGet","subRolesEnabled","validateSubRoles","bulkCreateUserRole","subroles","subrole","FieldAndValue","userTeamIds","permittedFolders","pickBy","folderTeamId","getPermittedFolders","minRunDate","maxRunDate","hasSubroles","bulkCreateSubRole","dates","getDatesBetweenTwoDates","daysOfWeek","getDay","dayOfIsInRange","daysOfMonth","stopDate","dateArray","toDate","templateLoad","templatesWithFields","timezoneLoad","timeZonesGet","currentUserLoad","foldersLoad","loadFolders","fieldLoad","string","foldersGet","FolderType","Schedule","x","updateSchedule","createSchedule","deleteSchedule","calculatedValueDisplay","displayCalculatedField","fieldCase","forCsv","AddToDate","sourceField","dateField","caseAsAny","staticAddition","static","setDate","valueMoment","showTime","DaysUntilOrFromToday","localWholeDaysFromToday","DaysBetweenDates","startValue","getFieldValue","startField","endValue","endField","timeDifference","getTime","TimeSpentAs","timeSpentValue","timeSpentStrings","formattedResult","join","fieldValueDate","todaysDate","diff","localDaysFromToday","fieldValueDateTime","isDarkMode","isNewInterface","stylesheet","markerColumns","updateData","markerColumn","HeatMap","mapKey","enhancedMapping","heatMap","results","merged","columnKey","getEnhancedMapping","createMultipleMap","$refs","mappingContainer","lat","lng","getMapStyle","releaseMultipleMap","createHeatmap","markerData","mapBounds","bounds","dataSourceFields","selectedItems","selectItem","allowRichText","$sanitize","readonly","removeItem","addNewItem","DataSourceTemplateSelect","dataSourceOptions","addingItem","dataSourceGet","definitionDetails","sectionOrder","section","includeInTable","sortByThen","thenKey","source","addItem","dataItem","updateItem","itemLabel","itemValue","Array","isArray","formatFieldValue","Mutation","numberToRound","decimalPlaces","parsedNumber","toFixed","size","right","filteredItems","term","canCreateOption","onAddNewItem","SearchDropDown","lowerSearch","utils","copyToClipboard","element","textArea","top","left","position","focus","select","execCommand","showUserName","isLoaded","userPicture","imageUrlError","loadedImage","showTeams","showEmail","pictureError","newUser","oldUser","userIdField","cachedPictureUrl","userPictureUrl","fetchUserPictureUrl","args","modifiers","isDark","_i","$$a","$$el","$$c","checked","$$i","LightDarkSwitch","ActionType","ActionSettingField","actionTypeLabels","SetValue","AddTeam","AddField","SetFieldRequired","SendHttp","SendEmail","SentToIntegration","RemoveField","requireFeature","RuleActionRemoveField","actionSetting","Field","visible","validation","FieldDataType","NewValue","NewValueLabel","DynamicValue","ValueFormat","FieldId","Required","IncludeAttachments","TeamId","TeamTitle","Recipient","Subject","Section","URL","HttpHeaders","Integration","actionSettingsForActionType","minimumWidth","positionDropdown","dropdownList","documentElement","clientWidth","selectedFields","scope","withPopper","fieldSelected","fieldData","triggerInput","removeField","addField","isValid","selectedFieldType","onValueChange","selectedField","newFields","every","allowEmptyFieldValue","filteredOutFields","y","stringValue","blurValue","setValue","ExternalLink","webpackContext","req","webpackContextResolve","CalculationDataType","Numerical","GreaterThan","LessThan","views","gotoPage","CaseFilters","ViewFolders","role","updateRole","allowTimeTracking","updateUserTime","timeSpent","confirmRemoveUserId","removeUser","addingUser","addingExternalUser","addUser","isSingleUser","allowExternalUsers","isExternalUser","externalUser","filterTeams","teamFilter","inviteUsers","searchTeams","selectedItem","fetchOptions","isTeam","UserSearch","inviteSearch","allowedTeamsIds","showTeamFilter","searchInvite","searchUsers","existingUserIds","inviteSearchResult","imageUrl","generateID","UserRole","newUsers","addingToRole","userValues","headerValues","caseUser","u","subroleValues","subRoles","usersNotOnCase","bulkLoadUserData","userList","filteredEvents","eventClicked","today","viewChanged","cellClicked","overflowTitle","evitement","overflowItems","itemClicked","SelectModal","lower","CalendarView","dateRange","events","scheduleEvents","groupedRecordEvents","grouped","recordEvents","eventGroups","dateKey","maxEventsPerDay","allDay","recordCreated","dateString","schedules","viewDays","hidePastSchedules","addDays","todayDateString","isInScheduleMaxMinDates","hide","hasPassed","sch","dayOfMonth","calendarDate","executionDate","UTC","getTimezoneOffset","clickEvent","createNew","ianaTimeZone","tz","scheduleDate","hour","minute","schedTime","fromObject","month","zone","iana","now","setZone","setTime","VueCal","darkMapStyle","elementType","stylers","color","visibility","featureType","saturation","satelliteMapStyle","darkMap","mapType","hideLabels","styles","labels","cookieIdentifier","decodeURIComponent","IntegrationApi","settings","integrationKey","until","output","defaultSearchClauseParameters","startDayOfWeek","searchValue","getDefaultTimeSpentClause","getDefaultFirstDayOfWeek","firstDayOfWeekSettings","enabled","dayOfWeekSelected","getDefaultSearchClauseParameters","widgetOnly","iconOnly","zendeskHelpWidgetAvailable","toggleHelp","featuresStore","ZendeskHelp","renderZendeskWidgetInterval","autoHideClosedWidgetInterval","zendeskWidgetInjected","getZendeskWidgetEnabled","zendeskWidgetEnabled","injectZendeskScript","querySelector","renderZendeskWidget","zE","startWidgetAutoHide","enabledState","zendeskSnippetWrapper","existingZendeskSnippetScript","zendeskSnippetScript","renderZendeskWidgetTimed","$route","formattingRuleSettings","apiFormattingRuleSettings","random","placeholder","iconClass","isExpanded","toggleExpanded","maxRows","minRows","minHeightStyleString","minHeight","applyMaxHeight","focusOut","clickAndFocus","ToolBarId","isCaseHeaderEnabled","onIncludeHeaderClick","hasPageNumbers","onUsePageNumbersClick","placeholders","addPlaceholder","_Quill","Link","RichTextEditor","editor","focusWhenReady","controlId","currentTextValue","caseHeaderEnabled","caseHeader","formatFooter","editorValue","getEditorValue","dangerouslyPasteHTMLWithoutFocus","html","tidiedText","paragraphTag","lengthOfTagToRemove","delta","clipboard","convert","range","getSelection","cursorIndex","setContents","getLength","setSelection","editorContainer","optionalModules","readOnly","toolbar","magicUrl","userOnly","userHistoryOnly","formats","oldRange","scroll","descendant","link","enable","relatedTarget","$el","contains","selection","insertIndex","insertEmbed","PdfTemplateHeaderAndFooter","Ref","TextAreaToggleExpand","rowHeight","docHeight","clientHeight","innerHeight","unexpandedMaxRows","forceTextAreaHeight","setHeight","chartType","seriesTitles","ChartOptions","chartData","isOpen","statusChanged","selectedStatusId","clearStatusEnabled","clearStatus","SetStatusModal","newStatusId","newStatus","BModal","canCreateRecord","alwaysPromoteToCase","creating","creatingCase","canCreateCase","onTemplateChange","permissionsChanged","QuickCreate","createdCaseNumber","$bvToast","toast","variant","solid","autoHideDelay","uploadPendingFiles","tenantInfoItems","infoItem","TenantInfoDisplay","tenantInfo","tenantApi","tenantInfoGet","fieldPermissions","overrideDefaults","displayTeams","viewSelectionChanged","editSelectionChanged","FieldPermissions","recordEdit","usersPlusDynamic","usersGet","Equals","NotEqual","Contains","arrayMultiple","areaList","comparisonType","userValue","valueObject","tagList","adminOnly","itemList","expandedByDefault","getView","caseCount","goToView","viewSelected","ViewFolderItem","sorted","viewFoldersExpanded","modalColumnsBySection","arg","cssClass","columnErrors","canEdit","isFieldReadOnly","setItemValue","linkedColumn","eventHandlers","setItemLabel","setLabeledValueLabel","openNewItemModal","errorStatus","errorValue","prop","dotIndex","topLevel","rest","setItemLabels","labelKeyPath","currentPath","pathItem","removeWhere","viewItemDetails","input","maxInputLength","Numeric","DataSourceTemplate","MapLocation","FieldControl","SureViewIcon","MarkerDrawType","MarkerColors","markerColorData","blue","green","orange","purple","red","baseLocationImagesFolder","mapping","mapElement","boundsSet","mapStyle","handlers","markers","setValueOnMap","drawType","fitToBounds","createMap","center","handler","colorName","scrollIntoView","raiseEvent","pointsBounds","pointsUnion","zoom","fieldBounds","union","Point","markerType","MarkerType","createMarker","marker","extend","Region","regionMarkerType","line","opacity","weight","fill","regions","region","createPolygon","goto","regionPath","Path","pathMarkerType","paths","createPolyline","pathPoints","click","points","vertexPosition","selectOptions","option","vSelectMultiHideClear","changeColumnCheck","calculatedFieldDisplayValue","getCaseColumn","formatLength","onEnableChange","daysOfWeekNames","onSelected","DayOfWeekSetting","firstDayOfWeekSetting","selectLabel","IconUpload","dataSourceItems","momentDate","WeekDate","momentWeek","weekNumber","MonthDate","momentMonth","listMultipleLabel","listDataLabel","weekStart","firstDayOfWeek","localeData","jan4","correction","dayOfYear","oneDay","showField","EventApi","isKey","eventApi","brandingLink","styleRules","ruleApplies","display","barRules","barRule","maximum","percent","matchedRule","dataTypeTests","CalculationSortItemType","GroupByDateFormat","insightViews","canDisplay","usingDashboard","columnField","createDefaultInsight","viewTeams","sortByDescending","openMenu","canAccessSettings","editUsers","showError","errorIcon","refreshConnection","viewsSummary","changeView","menuSelected","searchResults","goToSearchResult","searching","subTitles","myPictureUrl","showSetStatus","toMyAccount","showUserSettings","infoShown","toOrganization","isSupport","openSupportAccess","otherTenants","tenant","loginSelectTenant","logout","supportAccessTime","allowAccess","endAccess","supportAccessOpen","enabledFrom","enabledBy","enabledUntil","supportTimes","NavHeader","pictureGuid","hasTenantInfo","$root","$on","refreshProfilePicture","$off","userSettingsModal","setStatusModal","allSearch","searchResult","iconUrl","pageArgument","newTheme","tenantAccess","NewInterfaceSwitch","UserSettingsModal","BaseNotificationMenu","userExpanded","SlideMenu","show","messageClass","DisplayMessage","Page","newMessage","loadViews","onCaseToastChanged","loadDataSources","routes","meta","slideMenu","reload","area","availableDataSources","ds","editPermissions","ep","QuickCreateMenu","updateUser","viewsOpeningOptions","userSettingsSave","ClientSideCalculations","calculatedResults","allFields","groupedSearchResults","newCalculations","runCalculations","dayCount","getDayCount","calculationFunctionsList","calculationLabels","substr","getValueFromField","fieldName","getValueFromBuiltInField","getGroupByValue","nullLabel","getLabeledValueFromField","getLabeledValueFromProperty","calculationAppend","insightGroupKey","getNumericValue","insightsGroupKey","isUserRole","totalTime","getUsersTotalTime","isTimeSpent","timeSpentCalculation","timeSpentTotal","Count","CountPerDay","calculationValues","existingCalculationValue","caseValue","addValue","calculationResultsList","groupResults","calculationCounts","caseResult","calculationFunction","groupByLabels","calcCounts","isTupleArray","tuple","existingCount","counts","countKey","countValue","calculationTotal","calculationCount","calculationGroupByLabels","includedResults","includedInsight","groupByLabel","includedGroup","baseGroup","calculationTotalResults","totalValue","calcDictionary","collateInclude","include","collateExclude","exclude","existingCalculation","subtractCalculationList","existingCalulation","arrayData","getAssigneeLabel","displayPropertyName","returnList","valueItem","checkboxValue","userRoleUsers","labelTuples","subRoleUsers","subRole","flatMap","labelToReturn","valueToReturn","firstElement","getEarliest","isDateRange","parsedValue","fromISO","userRoleValue","CalculatedFieldType","allStartDates","getClauseDate","latestStartDate","endDates","earliestEndDate","daysBetween","ceil","addADay","getDynamicDate","currentDate","dayOfWeek","startDay","dayChange","quarter","OnDay","filterMixin","filtersToFunctions","orFilterFunctions","testValue","searchValueLabel","toLocaleLowerCase","dataTypeOperator","Any","Within","InTeam","filterList","list","filterFieldValue","filterGroups","filterFunctions","unfilteredLengths","unfilteredLength","clientFilteredResults","clientGroupedSearchResults","calculationRunner","clientCalculatedResults","applyCalculationTotals","canEditCurrentCase","canCreateComments","editAfterClosePermissions","makeClosedChanges","caseClose","pushTo","caseIntegrationLinks","HubCaseService","caseConnectionShouldBeOpen","caseConnection","Connected","hubCaseService","newCaseTemplate","makingClosedChanges","currentCaseTemplate","editClosedPermissions","nowValid","openCaseConnection","caseEventsGet","setEvents","integrationLinks","originatingEvents","keyEntries","currentCaseChanged","enableTitleTemplate","casePermissions","myTeam","hasEditCasePermissions","cadencePeriod","createCadenceSchedule","outputOption","integrationTitle","sendRecord","integrationOut","integrationOutTitle","appendToast","ProvideReactive","multiple","filteredOptions","alignDropdownRight","valueChanged","itemDeleted","addNewDataSourceItem","loadAll","filterField","filterFieldTitle","dataModalColumns","dataModalTitle","saveNewDataSourceItem","MAX_WIDTH","listFilter","listFilterValueField","selectedValue","itemCount","dataSourceSearch","matchId","fieldIsValid","itemIsValid","allowAddingToDataSource","specialFields","extraFields","requiredRecord","dataSourceGetAll","ignorePermissions","filterFieldValueChanged","selectedOption","dataSourceGetItem","existingItem","dataModal","dataSourceCreateItem","newItem","minWidth","maxWidth","popper","createPopper","toggle","placement","destroy","userColumns","fieldTypes","mapPoint","definitions","fieldLoadPromise","userFields","rules","adEnabled","getFieldTypes","getFieldTypesById","getDataSources","getDataSourcesById","getDefinitions","getDefinitionsById","getAllFields","getFilterableFields","userIsAdmin","getAllUserFields","getFilterableUserFields","setDataSources","setDefinitions","setFields","setFieldLoadPromise","setUserFields","setRules","addDataSource","setAdEnabled","loadDefinitions","loadFields","dataTypeTitle","dataSourceTitle","definitionTitle","userDefinition","userFieldIds","loadRules","definitionGetFromSource","storeDataSources","getADEnabled","prepend","numberDisplayValue","numberValue","displayDecimals","numberSplit","padEnd","precision","ApiTenant","domainPath","domain","logo","timeSpan","info","dollar","checkbox","isNotNull","ruleValue","isNull","getTimeFieldValue","defaultFieldOperator","fieldStart","roleUsers","sr","hasQuickCreateTemplates","filteredQuickCreateTemplates","quickCreate","searchTermLowerCase","quickCreateTemplates","ApiUserStatus","DashboardApi","dashboardId","dashboard","dashboardApi","dashboardList","currentDash","cellTypes","cellToAdd","pluginTypeId","addCell","setFineGrid","dashboardListSorted","selectDashboard","editValid","saveDashboard","cancelEdit","deleteCurrent","startEdit","dashboardInsightParameters","dynamicParameterValues","setParameter","suppressScrollX","editing","columnWidth","scaledRowHeight","layout","numberOfColumns","rowCount","lg","md","sm","xs","xxs","updateLayout","finishAdd","isNew","cellIdToFullscreen","w","h","deleteCell","cellType","refInFor","dashboardTrigger","popupOpen","calculationTableRowClick","addParametersToDash","popupClosed","popupCaseSummary","ok","deleteConfirmText","deleteConfirm","deleteOpen","titleChanged","fineGridEnabled","toggleFineGrid","privacyTypes","privacy","privacyChanged","limitedToTeams","limitedToTeamsChanged","addCellType","cellTypeId","DashboardEditbar","addingCellType","cellClass","cellData","fontSize","errorLoading","displayRecordTables","loadNextPage","reloadBySearch","HubRecordViewService","connectionShouldBeOpen","RecordView","errorUpdating","displayRecords","hubDashboardService","onEditChanged","closeHubConnection","setEditMode","setViewMode","caseViewsGet","openHubConnection","caseListTable","casesTable","tableToUpdate","activeTeam","teamChanged","userHiddenOrMuted","hidden","muted","gotoAccount","userHasSetStatusPermission","userStatusChanged","TeamView","userStatusIdsToFilter","allUsers","hasMatchingStatus","isInHighlightedTeam","userIsInHighlightedTeams","showHiddenAsMuted","sortedUsers","highlightedTeamIds","userTeamId","selectedInsight","dynamicFilter","dynamicFilterOperator","dynamicFilterColumn","dynamicFilterOperatorLabel","dynamicFilterValue","missingDynamicParameters","hasBeenRun","availableDynamicParameters","dynamicParameter","insightParameters","filteredResultsLoading","insights","calcDropdownPosition","selectInsight","selectedInsightId","insightDisplayOptions","selectChartType","filterFromInsightOptions","chooseFilterFromInsight","filterFromInsightId","insightColumns","dynamicFilterChanged","dynamicFilterOperatorLabels","updateValue","hideFilters","graphSeriesChanged","graphCalculations","pieCalculations","graphSingleCalculationChanged","graphSingleCalculation","tableColumns","chartOptionsChanged","filterFromFieldName","filterFromLabelFormat","filterFromGroupLabel","clearCalculationTableFilter","filterFromInsight","filteredResultsLoaded","dynamicFilterClauses","reloadInsightBySort","reloadInsightByClauses","graphOptions","filteredResultGroups","hideParameter","showCollapsed","dynamicInput","paramsChanged","nativeOn","DynamicParameterValueControl","dateType","newDynamic","passValueToParameter","searchParams","hideParameters","Chart","lastRequestStartedAt","selectedClauses","selectedSorting","insightFilterIsActive","runInsightTimeout","calculatedResultsId","chartOptions","legend","chartArea","height","columnsByKey","dynamicFilterOperators","parameterIsValid","insightsGet","insightGet","includeGlobalParameters","defaultValue","runInsight","additionalClauses","activeDynamicParameters","runStartedAt","insightById","dynamicParameterValueList","insightData","allColumns","tableColumn","startMonthRange","endMonthRange","lastChangedFilterFromInsightId","clickedRow","convertRowGroupToClause","additionalClause","selectedGroupRow","groupFieldId","filterByCaseColumn","shouldFilterByDateRange","clauseOperator","shouldFilterByTeam","equalityOperator","setDateLabelFormat","getDateSearchParameters","valueLabel","groupByDateFormat","Day","Week","Month","Quarter","jsTicks","setMonth","setMilliseconds","getMilliseconds","parameterId","parameters","orClause","subClauses","sc","insightCasesForTable","tableData","toUpdate","groupedResults","ChartResults","TableResults","metric","Metrics","calculationOptions","selectOrderBy","selectColumns","selectedColumns","columnOptions","topValueResult","groupFields","filterColumns","InsightTopResult","insightTopValue","loadColumns","activeGoTo","GoTo","dashboards","dashboardGetList","closed","caseNoLongerAvailable","caseClosed","integrationPush","CasePopup","updated","imageLoaded","imageError","DashboardImage","background","calendarRangeChanged","recordClicked","openScheduleInstance","DashboardCalendar","retrieveSchedules","casesBetween","caseSummary","existingIndex","selectedNoticeboard","noticeboards","selectNoticeboard","selectedNoticeboardId","addNoticeboard","editNoticeboard","deleteNoticeboard","getAriaSortAttributeValue","sortByUser","sortByDate","sortByLastUpdated","sortByNote","noteWithUser","note","noteWasClicked","onNoteClick","convertToLocalTime","postedAt","lastUpdatedAt","noteText","saveNote","clickedNoteId","deleteNote","onNoticeboardSaved","ApiNoticeboard","noticeboard","noticeboardId","noteId","apiNoticeboard","clear","SaveNoticeboardModal","noticeboardList","noticeboardSave","NoticeboardDisplay","notesWithUsers","sortByProperty","sortByDirection","refreshNotesWithUsers","reSortNotesWithUsers","saveNoticeboardModal","openForAdding","openForEditing","noticeboardDelete","unselectNoticeboard","newNoticeboardId","noteList","newSortByProperty","newSortDirection","setSortDirection","noteToSave","noteSave","noteDelete","noteDate","clickedNote","TextAreaExpand","expanded","DashboardGlobalParameters","Privacy","cellTypesById","Dashboard","gridHeight","gridWidth","standardColumns","fineColumns","popupCloseCallback","uneditDash","collator","Collator","allGlobalParameters","compare","maxX","cellBottom","Teams","lastDast","isLastViewedByUser","componentTypeId","newLayout","layoutIds","layoutCell","newCell","contents","viewCellId","dashboardGet","setDashboard","dash","cells","cellPosition","cellSize","moved","Public","existingCell","removeCells","cellIndex","dashboardSave","dashboardDelete","listIndex","triggerMethod","clickedAlready","includedIds","includedParameters","param","PageWrapper","Skeleton","VueGridLayout","GridLayout","GridItem","DashEditbar","Graph","Label","logoSrc","logoAlt","logoLoadError","logoLoaded","adminLogin","cancelTenantSelect","PendingSystemMfa","mfaSuccess","PendingMfaSetup","PendingSystemMfaSetup","mfaSet","mfaCancel","canUseSso","showSsoBelowLogin","facebookOauthUrl","googleOAuthEnabled","googleOauthUrl","oauthLoginError","oauthLoginErrorString","samlProviders","resetting","requestResetPassword","resetPassword","password","onSubmit","step","loginSteps","Email","isUserSuite","loggingIn","next","Password","SAML","loginDisabled","gotoEmailStep","forgotPassword","canSignUp","redirectSignup","webVersion","minimumLength","updatePasswordScore","updatePasswordValid","$v","passwordConfirm","$anyError","passwordResetting","labelText","passwordValid","warningOrSuggestions","updateFeedback","updateScore","PasswordInput","passwordScore","passwordFeedback","warning","suggestions","score","feedback","validations","minLength","matches","sameAs","secure","minValue","PasswordReset","$touch","$invalid","newPassword","resetComplete","validationMixin","codeTenantName","newAuthDetails","token","authCode","setMfa","qrDataUrl","copySecretToClipboard","tempSecret","localAuthCode","MFASetup","otpURL","secret","speakeasy","generateSecret","tenantName","issuer","base32","otpauth_url","qr","QRious","toDataURL","mfaContainer","LoginMfaSetup","submitting","isSystem","setSystemMfa","enterCode","MFAEntry","authCodeTextBox","submitSystemMfa","submitMfa","saml","OAuthLogin","currentStep","currentStepIndex","availableSteps","IntroStepTypes","Welcome","UserDetails","onUserPictureUpdated","currentStepUserFields","TenantInfo","isFirstStep","back","isLastStep","finish","canEditUserPicture","editingProfilePicture","onProfilePictureDeleted","openPictureSelect","profilePictureSet","onProfilePictureUpdated","onQuickPictureSelected","modalTitle","onModalShown","onModalHidden","removeSavedImage","profilePictureChanged","onSave","alertCountdown","alertCountdownChanged","alertErrorMessage","profilePicture","displayPictureUrl","dragging","onImageSelected","onDragOver","fileInput","PictureSelect","permittedFileTypes","permittedFileExtensions","createObjectURL","fileName","parts","dataTransfer","dragItemInfo","kind","extension","getFileExtension","File","UserProfilePictureModal","profilePictureGuid","setProfilePicture","newPicture","uploadUserImage","progressEvent","countdown","UserProfilePicture","getUploadedPictureUrl","hasUploadedPicture","pictureModal","removeUserImage","immediate","stepCount","stepTitle","StepProgress","steps","stepPercent","pageLoaded","allowSelfEdit","definitionEditFields","distinct","displayReadOnly","onUserChanged","userFieldDetails","saveOwnFields","LoginSteps","Login","passwordReset","passwordChanged","clientIds","oauthLoginErrorMessage","selectingTenant","domainLoaded","domainName","domainLogoFailed","checkingEmail","redirectUrl","clientId","pathname","checkForOauthLoggingError","getDomain","autoLogin","assign","resetCode","username","checkIfUserIsSuite","suiteLogin","stack","requestPasswordReset","hiddenElements","HideableLoginOptions","ForgotPassword","Sso","Signup","Logo","selectTenantsList","loginTenant","genericError","axiosInstance","loginProviderResult","authorizationEndpoint","scrollbar","signUp","validationMessage","creatingAccount","createAccount","SignUp","passwordConfirmation","Account","PictureUpload","doSearch","caseResults","totalItems","caseDefaultColumns","setPreviewCase","userResults","userDefaultColumns","previewCase","gotoPreviewCase","toggleColumn","hasColumn","activeColumns","searchingForUsers","openCasePreview","itemsPerPage","paginationItems","ResultsDisplay","appliedSearchClauses","defaultSortBy","defaultColumns","searchAdvanced","definitionField","definitionFieldLabel","definitionFieldDataType","globalColumns","sectionHeader","CaseFieldDisplay","CasePreview","hideUsers","assignee","caseFields","Search","locationResults","newSearch","caseSearch","peopleSearch","caseSearchOptions","caseSearchOption","activeCases","casesColumns","gotoCase","locations","resultsCount","userCases","pageCount","showMfaForm","accountDetails","isSuiteUser","mfaEnabled","cancel","removeMfa","mfaSetupOpen","AccountSetup","redirectMFAUrl","loadAccountDetails","loadSuiteMFARedirectUrl","getMfaRedirectUrl","UserProfile","activeUserCases","activeCase","loadUser","caseToGoTo","Organization","refreshPromise","to","vuexStore","hasPermission","_from","allowAnon","forceTheme","breadcrumb","beforeEnter","from","VueRouter","base","currentNotifications","notificationListOpened","browserNotificationsPermissionEnabled","enableBrowserNotifications","notificationSelected","notificationTimePeriods","BaseNotificationsMenu","notificationTime","abs","seconds","timeMessage","timeElapsedNotification","browserNotificationsEnabled","notificationsDropdown","dictionary","keyValue","toDictionaryMap","keyFunction","valueFunction","desc","aValue","bValue","sortByValue","thenDesc","aValueThen","bValueThen","newArray","addedValues","removeIndex","removeFunction","where","predicate","includeTime","dateIsInvalid","anyDateValue","datePart","getValuePart","setValuePart","updateDate","timeIsInvalid","anyTimeValue","ampmList","ampm","clearDate","dateValueISO","openCalender","yesterday","tomorrow","DatePicker","dateValueParsed","dateParts","formatPart","styling","dateLocale","_longDateFormat","L","dateValue","getUTCFullYear","getUTCMonth","getUTCDate","momentDateTime","hoursValue","which","newDate","nextTick","Datetime","breadcrumbItems","showNewInterfaceSwitch","usingV2","support","SureViewSupportModal","NewLightDarkSwitch","UserMenu","time","hasNotifications","notificationNumber","NotificationsButton","numberOfNotifications","NotificationsMenu","SearchType","searchOpen","GlobalSearch","RECORD","USER","SEARCH","HeaderBar","$slots","breadcrumbArray","pathArray","idx","matched","SideBar","OldPage","NewPage","dataListField","dataItemField","updateField","saveCaseField","listFilterField","updatedItems","updatedValue","newValueFilterValues","sectionDetails","fieldIds","requiredCase","caseFieldIds","fieldDefaultValues","fieldInstance","currentFields","applyFieldChanges","changes","change","displayCalculations","configuredChartOptions","singleCalculation","includedCalculations","chartConfiguration","useValueLabels","isStacked","seriesType","series","curveType","header","calcKeys","groupedHeaders","k","groupedVals","vals","GChart","ApiCaseNameSettings","DateClauseType","fieldAsFieldType","allowMultiple","labelChanged","fieldOptions","valueItemChanged","numberValueChanged","dateTimeText","dynamicInputValue","selectedSearchClauseParameters","dynamicInputValueChanged","allowDynamic","booleanValueChanged","mapBoundsChanged","timeSpentDataSourceId","timeSpentListValueChanged","timeSpentListLabelChanged","timeSpentHoursChanged","dateRangeLabels","showWeekStart","dateRangeRangeLabels","showMap","MapSearchBounds","currentDrawing","searchBounds","linePath","first","regionPoints","registerEvent","mapClick","setCursor","navigator","geolocation","getCurrentPosition","pos","coords","latitude","longitude","clickLocation","addPoint","MultiMarker","clickedMarker","lineMarkers","clauseIndex","dateClauseType","CurrentWeek","selectedDateClauseType","selectedDayOfWeek","startDayOfWeekChanged","CurrentMonth","WeekNumber","weekNumberChanged","MonthRange","startMonthChanged","endMonthChanged","YearToDate","dateRangeDateValueChanged","RelativeCurrentDate","dateClauseChanged","RelativeDateRange","ExactDate","dateValueChanged","isEndMonth","selectedMonthLabel","buttonText","currentTarget","minDateValue","maxDateValue","selectedYear","selectedMonth","monthChanged","MonthPickerControl","modalOpen","minDate","maxDate","blur","newMonth","MonthPicker","DateTimeParameterValue","selectedDateRange","getDateClauseType","assignSearchClauseParamaters","newParamaters","newStartDayOfWeekLabel","newStartMonth","startMonth","endMonth","newEndMonth","shouldBeDynamic","dateRangeType","setHours","newWeekNumber","datetime","numeric","fieldValueKey","returnedFieldOptions","ranges","rangeFilter","isNewClause","getTrackedFieldDataSourceId","caseFieldsKeys","dynamicInt","usersAllowDynamic","userRolesAllowTeams","trackedFieldId","trackedField","listValue","newHoursValue","labelProperty","newLabel","themeColours","App","matchMedia","$nextTick","addEventListener","screen","controls","Deselect","vSelectOpenUpMixin","offset","phase","config","productionTip","BootstrapVue","titleTag","shortkey","prevent","mixin","Sortable","VueSanitize","allowedAttributes","allowedClasses","errorHandler","newrelic","noticeError","register","MagicUrl","$mount","iconTypes","onIconTypeChange","selectedIconType","validImage","file1","imageSrc","clearIcon","feedbackMessage","previewIconClass","IconMixins","base64Encode","reader","FileReader","readAsDataURL","getIconImage","image","identifier","charAt","imageEncodeType","fileUploadType","urlType","fontAwesomeType","acceptedFileTypes","maxFileSizeInBytes","invalidFileTypeMessage","invalidFileSizeMessage","customFieldValue","isFileValid","vselect3","mapUsers","returnValues","fieldTypesExcludeFromRuleSet","groupByOptions","groupingOptions","dataTypeParameters","selectSource","fieldDataTypes","dataTypes","TextArea","Dollar","Checkbox","List","ListMultiple","DataObject","MapMarker","Calculated","CaseNumber","TimeSpent","FileOnly","Icon","rowHoverEnabled","currentSortColumn","currentSortAscending","setSortColumn","setHoveringCell","clearHoveringCell","cellIsEditable","cellIsHovered","cellIsInEditMode","cellEditBegin","fieldToEdit","caseToEdit","cellEditConfirmed","cellEditClear","getFieldLabel","isTimeSpentCalculationType","fieldType","sortColumnKey","sortAscending","hover","disableRowClick","columnKeyHovered","caseIdHovered","columnKeyToEdit","caseIdToEdit","cellValue","filteredValues","sortedColumnValues","cloneRules","caseitem","ctrlClick","viewsOpening","entityIdentifier","endPath","displayingUsers","encodedEntityIdentifier","routeData","daysDifference","undynamicFormattingRules","currentPageItems","pageDetails","sortColumn","caseHovered","pageAllowsEdits","fieldEditingEnabled","dynamicFieldId","stripFieldsPrefix","fieldHovered","isEditableType","getPermissionTeams","permissionType","caseFieldLevelPermissions","fieldLevelPermissions","fieldToEditId","selectCaseField","caseIndex","setLocation","gotoLocation","removeLocation","markerColor","drawValue","markerIcon","startDraw","markerText","Inject","filtered","showCalculations","tableCalculations","visibleFilteredResultGroups","getCurrentPage","caseEdited","groupByText","roundCalculationValue","calcTotal","groupTotalsByText","scheduleInstanceUpdated","setGroupPages","additionalFilters","resultGroupsChanged","groupCalculationResult","calculationKeys","createClausesFromFilters","isOrClause","updateInstance","insightRecord","insightMarkAsCacheExpired","expand","heightWait","textarea","scrollHeight","useV2","newPreferences","updatePreferences","ApiRecordNameSettings","sizes","sizeChanged"],"mappings":"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AW,OACX,aAAc,OACd,UAAW,OACX,aAAc,OACd,UAAW,OACX,aAAc,OACd,UAAW,OACX,aAAc,OACd,UAAW,OACX,aAAc,OACd,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,aAAc,OACd,UAAW,OACX,aAAc,OACd,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,UAAW,OACX,aAAc,OACd,UAAW,OACX,aAAc,OACd,UAAW,OACX,aAAc,OACd,UAAW,OACX,aAAc,OACd,UAAW,OACX,aAAc,OACd,UAAW,OACX,aAAc,OACd,UAAW,OACX,aAAc,OACd,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,aAAc,OACd,UAAW,OACX,aAAc,OACd,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,aAAc,OACd,UAAW,OACX,aAAc,OACd,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,aAAc,OACd,gBAAiB,OACjB,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,UAAW,OACX,aAAc,OACd,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,aAAc,OACd,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR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","file":"js/app.31bb625b.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n \t\tvar executeModules = data[2];\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t\t// add entry modules from loaded chunk to deferred list\n \t\tdeferredModules.push.apply(deferredModules, executeModules || []);\n\n \t\t// run deferred modules when all chunks ready\n \t\treturn checkDeferredModules();\n \t};\n \tfunction checkDeferredModules() {\n \t\tvar result;\n \t\tfor(var i = 0; i < deferredModules.length; i++) {\n \t\t\tvar deferredModule = deferredModules[i];\n \t\t\tvar fulfilled = true;\n \t\t\tfor(var j = 1; j < deferredModule.length; j++) {\n \t\t\t\tvar depId = deferredModule[j];\n \t\t\t\tif(installedChunks[depId] !== 0) fulfilled = false;\n \t\t\t}\n \t\t\tif(fulfilled) {\n \t\t\t\tdeferredModules.splice(i--, 1);\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = deferredModule[0]);\n \t\t\t}\n \t\t}\n\n \t\treturn result;\n \t}\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded CSS chunks\n \tvar installedCssChunks = {\n \t\t\"app\": 0\n \t}\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t\"app\": 0\n \t};\n\n \tvar deferredModules = [];\n\n \t// script path function\n \tfunction jsonpScriptSrc(chunkId) {\n \t\treturn __webpack_require__.p + \"js/\" + ({}[chunkId]||chunkId) + \".\" + {\"chunk-1060041f\":\"f66cc6e1\",\"chunk-251277e8\":\"2db1e45f\",\"chunk-2f9f73df\":\"4cc16d1f\",\"chunk-68246be7\":\"28700fd9\",\"chunk-7ebc001d\":\"d0df4e84\",\"chunk-6aa2331c\":\"3723598d\",\"chunk-45d0e3e0\":\"20ebfd56\",\"chunk-2d21041f\":\"2a62c55b\",\"chunk-2d225217\":\"49a93e4b\",\"chunk-715b755f\":\"5cb7dbc1\",\"chunk-ba6413dc\":\"d0e1b064\",\"chunk-2ff484c3\":\"b593e928\",\"chunk-53232726\":\"bdd14736\",\"chunk-671adfe5\":\"064787dc\",\"chunk-842ec5ae\":\"3dbd671a\"}[chunkId] + \".js\"\n \t}\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n \t// This file contains only the entry chunk.\n \t// The chunk loading function for additional chunks\n \t__webpack_require__.e = function requireEnsure(chunkId) {\n \t\tvar promises = [];\n\n\n \t\t// mini-css-extract-plugin CSS loading\n \t\tvar cssChunks = {\"chunk-1060041f\":1,\"chunk-251277e8\":1,\"chunk-68246be7\":1,\"chunk-7ebc001d\":1,\"chunk-6aa2331c\":1,\"chunk-45d0e3e0\":1,\"chunk-715b755f\":1,\"chunk-ba6413dc\":1,\"chunk-2ff484c3\":1,\"chunk-53232726\":1,\"chunk-671adfe5\":1,\"chunk-842ec5ae\":1};\n \t\tif(installedCssChunks[chunkId]) promises.push(installedCssChunks[chunkId]);\n \t\telse if(installedCssChunks[chunkId] !== 0 && cssChunks[chunkId]) {\n \t\t\tpromises.push(installedCssChunks[chunkId] = new Promise(function(resolve, reject) {\n \t\t\t\tvar href = \"css/\" + ({}[chunkId]||chunkId) + \".\" + {\"chunk-1060041f\":\"7bf1e82c\",\"chunk-251277e8\":\"d3d430c8\",\"chunk-2f9f73df\":\"31d6cfe0\",\"chunk-68246be7\":\"75ab71e3\",\"chunk-7ebc001d\":\"79b5e712\",\"chunk-6aa2331c\":\"a36b7d69\",\"chunk-45d0e3e0\":\"17e746c4\",\"chunk-2d21041f\":\"31d6cfe0\",\"chunk-2d225217\":\"31d6cfe0\",\"chunk-715b755f\":\"81fea19f\",\"chunk-ba6413dc\":\"d3d430c8\",\"chunk-2ff484c3\":\"68fe6895\",\"chunk-53232726\":\"d3d430c8\",\"chunk-671adfe5\":\"90abc363\",\"chunk-842ec5ae\":\"8bac09be\"}[chunkId] + \".css\";\n \t\t\t\tvar fullhref = __webpack_require__.p + href;\n \t\t\t\tvar existingLinkTags = document.getElementsByTagName(\"link\");\n \t\t\t\tfor(var i = 0; i < existingLinkTags.length; i++) {\n \t\t\t\t\tvar tag = existingLinkTags[i];\n \t\t\t\t\tvar dataHref = tag.getAttribute(\"data-href\") || tag.getAttribute(\"href\");\n \t\t\t\t\tif(tag.rel === \"stylesheet\" && (dataHref === href || dataHref === fullhref)) return resolve();\n \t\t\t\t}\n \t\t\t\tvar existingStyleTags = document.getElementsByTagName(\"style\");\n \t\t\t\tfor(var i = 0; i < existingStyleTags.length; i++) {\n \t\t\t\t\tvar tag = existingStyleTags[i];\n \t\t\t\t\tvar dataHref = tag.getAttribute(\"data-href\");\n \t\t\t\t\tif(dataHref === href || dataHref === fullhref) return resolve();\n \t\t\t\t}\n \t\t\t\tvar linkTag = document.createElement(\"link\");\n \t\t\t\tlinkTag.rel = \"stylesheet\";\n \t\t\t\tlinkTag.type = \"text/css\";\n \t\t\t\tlinkTag.onload = resolve;\n \t\t\t\tlinkTag.onerror = function(event) {\n \t\t\t\t\tvar request = event && event.target && event.target.src || fullhref;\n \t\t\t\t\tvar err = new Error(\"Loading CSS chunk \" + chunkId + \" failed.\\n(\" + request + \")\");\n \t\t\t\t\terr.code = \"CSS_CHUNK_LOAD_FAILED\";\n \t\t\t\t\terr.request = request;\n \t\t\t\t\tdelete installedCssChunks[chunkId]\n \t\t\t\t\tlinkTag.parentNode.removeChild(linkTag)\n \t\t\t\t\treject(err);\n \t\t\t\t};\n \t\t\t\tlinkTag.href = fullhref;\n\n \t\t\t\tvar head = document.getElementsByTagName(\"head\")[0];\n \t\t\t\thead.appendChild(linkTag);\n \t\t\t}).then(function() {\n \t\t\t\tinstalledCssChunks[chunkId] = 0;\n \t\t\t}));\n \t\t}\n\n \t\t// JSONP chunk loading for javascript\n\n \t\tvar installedChunkData = installedChunks[chunkId];\n \t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n \t\t\t// a Promise means \"currently loading\".\n \t\t\tif(installedChunkData) {\n \t\t\t\tpromises.push(installedChunkData[2]);\n \t\t\t} else {\n \t\t\t\t// setup Promise in chunk cache\n \t\t\t\tvar promise = new Promise(function(resolve, reject) {\n \t\t\t\t\tinstalledChunkData = installedChunks[chunkId] = [resolve, reject];\n \t\t\t\t});\n \t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n \t\t\t\t// start chunk loading\n \t\t\t\tvar script = document.createElement('script');\n \t\t\t\tvar onScriptComplete;\n\n \t\t\t\tscript.charset = 'utf-8';\n \t\t\t\tscript.timeout = 120;\n \t\t\t\tif (__webpack_require__.nc) {\n \t\t\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n \t\t\t\t}\n \t\t\t\tscript.src = jsonpScriptSrc(chunkId);\n\n \t\t\t\t// create error before stack unwound to get useful stacktrace later\n \t\t\t\tvar error = new Error();\n \t\t\t\tonScriptComplete = function (event) {\n \t\t\t\t\t// avoid mem leaks in IE.\n \t\t\t\t\tscript.onerror = script.onload = null;\n \t\t\t\t\tclearTimeout(timeout);\n \t\t\t\t\tvar chunk = installedChunks[chunkId];\n \t\t\t\t\tif(chunk !== 0) {\n \t\t\t\t\t\tif(chunk) {\n \t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n \t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n \t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n \t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n \t\t\t\t\t\t\terror.type = errorType;\n \t\t\t\t\t\t\terror.request = realSrc;\n \t\t\t\t\t\t\tchunk[1](error);\n \t\t\t\t\t\t}\n \t\t\t\t\t\tinstalledChunks[chunkId] = undefined;\n \t\t\t\t\t}\n \t\t\t\t};\n \t\t\t\tvar timeout = setTimeout(function(){\n \t\t\t\t\tonScriptComplete({ type: 'timeout', target: script });\n \t\t\t\t}, 120000);\n \t\t\t\tscript.onerror = script.onload = onScriptComplete;\n \t\t\t\tdocument.head.appendChild(script);\n \t\t\t}\n \t\t}\n \t\treturn Promise.all(promises);\n \t};\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// on error function for async loading\n \t__webpack_require__.oe = function(err) { console.error(err); throw err; };\n\n \tvar jsonpArray = window[\"webpackJsonp\"] = window[\"webpackJsonp\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// add entry module to deferred list\n \tdeferredModules.push([4,\"chunk-vendors\"]);\n \t// run deferred modules when ready\n \treturn checkDeferredModules();\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"form-group\"},[(_vm.label)?_c('label',{attrs:{\"for\":_vm.labelFor}},[_c('span',{attrs:{\"data-cy\":\"title\"}},[_vm._v(_vm._s(_vm.label))]),(_vm.required)?_c('span',{staticClass:\"text-danger m-l-10 d-print-none\"},[_vm._v(\"[Required] \")]):_vm._e(),(_vm.requiredExtraText)?_c('span',{staticClass:\"text-danger m-l-10 d-print-none\"},[_vm._v(_vm._s(_vm.requiredExtraText))]):_vm._e(),(_vm.waiting)?_c('i',{staticClass:\"fas fa-spinner fa-spin m-l-10\"}):_vm._e()]):_vm._e(),(_vm.fieldError)?_c('div',[_c('span',{staticClass:\"text-danger d-print-none\"},[_vm._v(_vm._s(_vm.fieldError.error))])]):_vm._e(),_c('div',{staticClass:\"bv-no-focus-ring\"},[_vm._t(\"default\"),(_vm.fieldDescription)?_c('small',{staticClass:\"form-text description-text d-print-none\",class:_vm.descriptionClass},[_vm._v(\" \"+_vm._s(_vm.fieldDescription)+\" \")]):_vm._e()],2)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { InUseBy } from \"@/types/caseField\"\r\nimport { Component, Vue, Watch, Prop } from \"vue-property-decorator\"\r\nimport { namespace, Getter, Mutation, Action } from \"vuex-class\"\r\n\r\n@Component({\r\n\tcomponents: {\r\n\t}\r\n})\r\nexport default class FormGroup extends Vue {\r\n\t@Prop({ type: String, default: \"\" })\r\n\tpublic label!: string;\r\n\r\n\t@Prop({ type: String, default: \"\" })\r\n\tpublic labelFor!: string;\r\n\r\n\t@Prop({ type: String, default: null })\r\n\tpublic description!: string | null;\r\n\r\n\t@Prop({ type: Boolean, default: false })\r\n\tpublic required!: boolean;\r\n\r\n\t@Prop({ type: String, default: \"\" })\r\n\tpublic requiredExtraText!: boolean;\r\n\r\n\t@Prop({ default: null })\r\n\tpublic inUseBy!: InUseBy | null\r\n\r\n\t@Prop({ default: null })\r\n\tpublic currentUserId!: string | null\r\n\r\n\t@Prop({ default: false })\r\n\tpublic saving!: boolean\r\n\r\n\t@Prop({ default: false })\r\n\tpublic waiting!: boolean\r\n\r\n\t@Prop({ default: null })\r\n\tpublic fieldError!: { error: string } | null\r\n\r\n\tprivate justSaved = false\r\n\r\n\tpublic get fieldDescription (): string | null {\r\n\t\tif (this.saving) {\r\n\t\t\treturn \"Saving\"\r\n\t\t}\r\n\r\n\t\tif (this.justSaved) {\r\n\t\t\treturn \"Saved!\"\r\n\t\t}\r\n\r\n\t\tif (this.description) {\r\n\t\t\treturn this.description\r\n\t\t}\r\n\r\n\t\tif (this.inUseBy) {\r\n\t\t\treturn this.currentUserId === this.inUseBy.id\r\n\t\t\t\t? \"Editing\"\r\n\t\t\t\t: `In use by: ${this.inUseBy.name}`\r\n\t\t}\r\n\r\n\t\treturn null\r\n\t}\r\n\r\n\tpublic get descriptionClass (): string {\r\n\t\tif (this.justSaved) {\r\n\t\t\treturn \"badge badge-success\"\r\n\t\t}\r\n\r\n\t\tif (this.inUseBy && this.currentUserId === this.inUseBy.id) {\r\n\t\t\treturn \"badge badge-info\"\r\n\t\t}\r\n\r\n\t\treturn \"badge badge-danger\"\r\n\t}\r\n\r\n\t@Watch(\"saving\")\r\n\tonSavingChanged (saving: boolean, oldSaving: boolean) {\r\n\t\tif (oldSaving && !saving) { // Changed from true to false\r\n\t\t\tthis.justSaved = true\r\n\t\t\tsetTimeout(() => {\r\n\t\t\t\tthis.justSaved = false\r\n\t\t\t}, 1000)\r\n\t\t}\r\n\t}\r\n}\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FormGroup.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FormGroup.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./FormGroup.vue?vue&type=template&id=798d9443&scoped=true&\"\nimport script from \"./FormGroup.vue?vue&type=script&lang=ts&\"\nexport * from \"./FormGroup.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./FormGroup.vue?vue&type=style&index=0&id=798d9443&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"798d9443\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.isMounted)?_c('scrollbar',{staticClass:\"h-100\",staticStyle:{\"position\":\"relative\"}},[_c('table',{staticClass:\"table b-table table-sm\",attrs:{\"role\":\"table\"}},[_c('thead',[_c('tr',[_vm._l((_vm.labelColumns),function(labelColumn){return _c('th',{key:labelColumn.key},[_vm._v(_vm._s(labelColumn.label))])}),_vm._l((_vm.displayNumericalColumns),function(numericalColumn){return _c('th',{key:numericalColumn.key},[_vm._v(_vm._s(numericalColumn.label))])}),_vm._l((_vm.optionalPostColumns),function(optionalColumn){return _c('th',{key:optionalColumn.key},[_vm._v(_vm._s(optionalColumn.label))])})],2)]),_c('tbody',_vm._l((_vm.allItems),function(row){return _c('tr',{key:row.id,class:{\n\t\t\t\t\t'case-header' : row.label == 'Total',\n\t\t\t\t\t'footer-row' : row.label == 'Total',\n\t\t\t\t\t'bg-secondary' : row.label == 'Total',\n\t\t\t\t\t'hover' : _vm.clickableRows,\n\t\t\t\t\t'highlight-row': _vm.rowWasClicked(row)\n\t\t\t\t}},[_vm._l((_vm.labelColumns),function(column){return _c('td',{key:column.key,on:{\"click\":function($event){if($event.ctrlKey||$event.shiftKey||$event.altKey||$event.metaKey){ return null; }_vm.canClickRow(row) ? _vm.rowClick(row) : null}}},[(row.label !== 'Total')?[(column.key === 'label')?[_vm._v(\" \"+_vm._s(_vm.formatLabel(_vm.labelFormat, row.label))+\" \"),_c('user-header-fields',{attrs:{\"userHeaderFieldValues\":row.userHeaderFieldValues}})]:(column.key === 'weekStart')?[_vm._v(\" \"+_vm._s(_vm.formatWeekStart(row.label))+\" \")]:(column.key === 'weekEnd')?[_vm._v(\" \"+_vm._s(_vm.formatWeekEnd(row.label))+\" \")]:_vm._e()]:(column.key === 'label')?[(row.label !== 'Total')?[_vm._v(\" \"+_vm._s(row.label)+\" \")]:_vm._e()]:_vm._e()],2)}),_vm._l((_vm.displayNumericalColumns),function(column){return _c('td',{key:column.key,staticStyle:{\"position\":\"relative\"},style:(_vm.cellStyle(column.key, row[column.key], column, row)),on:{\"click\":function($event){if($event.ctrlKey||$event.shiftKey||$event.altKey||$event.metaKey){ return null; }_vm.canClickRow(row) ? _vm.rowClick(row) : null}}},[_c('div',{staticClass:\"cell-content\"},[_c('span',_vm._b({staticClass:\"fas\"},'span',_vm.icon(column.key, row[column.key], column),false)),_c('span',[_vm._v(\" \"+_vm._s(row[column.key] !== null ? row[column.key] : 0)+\" \")])]),(!row.hideFormatting)?_c('div',{staticClass:\"cell-background\",style:(_vm.cellBarStyle(row, row[column.key], column))}):_vm._e()])}),_vm._l((_vm.optionalPostColumns),function(optionalColumn){return _c('td',{key:optionalColumn.key,staticStyle:{\"position\":\"relative\"}},[(row.label !== 'Total')?[(!!row.value)?[_c('div',{class:{ 'cell-content': true, 'move-to-top': _vm.userIdStatusSelectOpen === row.value }},[(optionalColumn.key === 'userStatus')?[(row['userStatus'] === 'External User')?[_vm._v(\" External User \")]:(_vm.userHasSetStatusPermission)?[_c('v-select',{attrs:{\"options\":_vm.availableUserStatusesWithNotSet,\"label\":\"title\",\"clearable\":false},on:{\"open\":function($event){return _vm.userStatusSelectOpen(row.value)},\"close\":_vm.userStatusSelectClose,\"input\":function (userStatus) { return _vm.onUserStatusChanged(row.value, userStatus); }},model:{value:(row[optionalColumn.key]),callback:function ($$v) {_vm.$set(row, optionalColumn.key, $$v)},expression:\"row[optionalColumn.key]\"}})]:[_vm._v(\" \"+_vm._s(row[optionalColumn.key].title)+\" \")]]:[_vm._v(\" \"+_vm._s(row[optionalColumn.key])+\" \")]],2)]:_vm._e()]:_vm._e()],2)})],2)}),0)])]):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { Component, Vue, Watch, Prop } from \"vue-property-decorator\"\r\nimport { namespace, Getter, Mutation, Action } from \"vuex-class\"\r\n\r\nimport moment from \"moment\"\r\nimport { Insight, DataType, InsightCalculation, LabelFormat, FormattingRule, InsightCalculationTotal, CalculationType } from \"@/types/insights\"\r\n\r\nimport { get } from \"lodash\"\r\n\r\n// @ts-ignore\r\nimport VuePerfectScrollbar from \"vue-perfect-scrollbar\"\r\n\r\nimport { cellFormatting } from \"@/mixins/cellFormatting\"\r\nimport { DashboardState } from \"@/types/dashboard\"\r\nimport { UserStatus } from \"@/types/userStatus\"\r\nimport api from \"@/services/api\"\r\nimport User, { CurrentUser, UserIdWithStatus, UserIdWithStatusAndFields, LabeledValue } from \"@/types/user\"\r\nimport vSelect from \"vue-select\"\r\nimport { formatInsight } from \"@/mixins/FormatInsight\"\r\nimport { DataDefinitionWithFields } from \"@/types\"\r\nimport { formatFieldsMixin } from \"@/mixins/formatFieldsMixin\"\r\nimport UserHeaderFields from \"../CaseDetails/Users/UserHeaderFields.vue\"\r\n\r\n@Component({\r\n\tcomponents: {\r\n\t\t\"scrollbar\": VuePerfectScrollbar,\r\n\t\t\"v-select\": vSelect,\r\n\t\t\"user-header-fields\": UserHeaderFields\r\n\t}\r\n})\r\nexport default class CalculationTable extends Vue {\r\n\t@Prop({ default: () => [] })\r\n\tresultGroups!: any[];\r\n\r\n\t@Prop({ default: null })\r\n\tinsight!: Insight\r\n\r\n\t@Prop({ default: () => [] })\r\n\tcalculations!: InsightCalculation[]\r\n\r\n\t@Prop({ default: () => [] })\r\n\tcalculationTotals!: InsightCalculationTotal[]\r\n\r\n\t@Prop({ default: LabelFormat.Text })\r\n\tlabelFormat!: LabelFormat;\r\n\r\n\t@Prop({ default: false })\r\n\tclickableRows!: Boolean\r\n\r\n\t@Prop({ default: () => { return { calculationTableClickedRows: {} } } })\r\n\tdashboardState!: DashboardState;\r\n\r\n\t@Getter(\"getAvailableUserStatuses\") public availableUserStatuses!: UserStatus[];\r\n\r\n\t@Getter(\"getMe\") public me!: CurrentUser;\r\n\r\n\t@Action(\"setCurrentUserStatus\")\r\n\tprivate setCurrentUserStatus!: (userStatus: UserStatus) => void;\r\n\r\n\t@Action(\"clearCurrentUserStatus\")\r\n\tprivate clearCurrentUserStatus!: () => void;\r\n\r\n\tprivate get availableUserStatusesWithNotSet () : UserStatus[] {\r\n\t\tconst userStatuses = this.availableUserStatuses.slice(0) // need to duplicate the array and apparently this is fastest\r\n\t\tuserStatuses.push({\r\n\t\t\tid: null,\r\n\t\t\ttitle: \"Not Set\"\r\n\t\t})\r\n\t\treturn userStatuses\r\n\t}\r\n\treloadResultsKey: string | null = null;\r\n\r\n\tuserDataByUserId: { [userId:string] : UserIdWithStatusAndFields } = {}\r\n\tisMounted = false\r\n\tuserDataDefinition?: DataDefinitionWithFields\r\n\r\n\tasync mounted () {\r\n\t\tawait this.bulkLoadUserDataIfNecessary()\r\n\t\tthis.isMounted = true\r\n\t}\r\n\r\n\t/**\r\n\t * Maps calculations to columns based on grouping labels\r\n\t */\r\n\tprivate get calculationsColumns () {\r\n\t\treturn this.calculations.map((c: InsightCalculation, index: number) => {\r\n\t\t\tif (c.groupBy && c.groupByKeyLabels) {\r\n\t\t\t\t// \"Group by\" calculations can have multiple columns per group by label\r\n\t\t\t\treturn Object.keys(c.groupByKeyLabels)\r\n\t\t\t\t\t.map((l: string) => {\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\t\"label\": c.groupByKeyLabels![l],\r\n\t\t\t\t\t\t\t\"key\": \"calculations[\" + c.key + \"].\" + l,\r\n\t\t\t\t\t\t\t\"calculationKey\": c.key,\r\n\t\t\t\t\t\t\t\"formattingRules\": c.formattingRules ? c.formattingRules : [],\r\n\t\t\t\t\t\t\t\"fieldDataType\": DataType.number\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t})\r\n\t\t\t} else {\r\n\t\t\t\t// Single calculation\r\n\t\t\t\treturn [\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\t\"key\": \"calculations[\" + c.key + \"]\",\r\n\t\t\t\t\t\t\"calculationKey\": c.key,\r\n\t\t\t\t\t\t\"label\": c.label,\r\n\t\t\t\t\t\t\"formattingRules\": c.formattingRules ? c.formattingRules : [],\r\n\t\t\t\t\t\t\"fieldDataType\": DataType.number\r\n\t\t\t\t\t}\r\n\t\t\t\t]\r\n\t\t\t}\r\n\t\t}).flat()\r\n\t}\r\n\r\n\tprivate get calculationTotalsColumns () {\r\n\t\tif (!this.insight || !this.insight.calculationTotals) return []\r\n\r\n\t\treturn this.insight.calculationTotals.map((total, index) => {\r\n\t\t\tif (total.groupBy && total.groupBy !== \"\" && !total.collate) {\r\n\t\t\t\tconst totalledCalculations = total.calculationList\r\n\t\t\t\t\t.map(calcKey => this.calculations.find(c => c.key === calcKey))\r\n\t\t\t\t\t.filter(calc => !!calc)\r\n\r\n\t\t\t\tconst uniqueGroupLabels: { [key: string]: string } = totalledCalculations.reduce((acc: { [key: string]: string }, calc) => {\r\n\t\t\t\t\tif (calc && calc.groupByKeyLabels) {\r\n\t\t\t\t\t\tObject.keys(calc!.groupByKeyLabels as any).forEach(calcGroupByKey => {\r\n\t\t\t\t\t\t\tif (!acc[calcGroupByKey]) {\r\n\t\t\t\t\t\t\t\tacc[calcGroupByKey] = calc!.groupByKeyLabels![calcGroupByKey]\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t})\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\treturn acc\r\n\t\t\t\t}, {})\r\n\r\n\t\t\t\treturn Object.keys(uniqueGroupLabels)\r\n\t\t\t\t\t.map((key: string) => {\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\t\"label\": uniqueGroupLabels[key],\r\n\t\t\t\t\t\t\t\"key\": \"calculationTotals[\" + index + \"].\" + key,\r\n\t\t\t\t\t\t\t\"calculationKey\": total.key || index.toString(),\r\n\t\t\t\t\t\t\t\"formattingRules\": total.formattingRules ? total.formattingRules : [],\r\n\t\t\t\t\t\t\t\"fieldDataType\": DataType.number\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t})\r\n\t\t\t} else {\r\n\t\t\t\treturn [{\r\n\t\t\t\t\t\"key\": \"calculationTotals[\" + index + \"]\",\r\n\t\t\t\t\t\"calculationKey\": total.key || index.toString(),\r\n\t\t\t\t\t\"label\": total.title,\r\n\t\t\t\t\t\"formattingRules\": total.formattingRules ? total.formattingRules : [],\r\n\t\t\t\t\t\"fieldDataType\": DataType.number\r\n\t\t\t\t}]\r\n\t\t\t}\r\n\t\t}).flat()\r\n\t}\r\n\r\n\tpublic get labelColumns () {\r\n\t\tvar columns = [\r\n\t\t\t{\r\n\t\t\t\tkey: \"label\",\r\n\t\t\t\tcalculationKey: \"\",\r\n\t\t\t\tlabel: \"\",\r\n\t\t\t\tformattingRules: [],\r\n\t\t\t\tvalue: null\r\n\t\t\t}\r\n\t\t]\r\n\r\n\t\tif (this.labelFormat === LabelFormat.WeekRange) {\r\n\t\t\tconst optionalColumns = [\r\n\t\t\t\t{\r\n\t\t\t\t\tkey: \"weekStart\",\r\n\t\t\t\t\tcalculationKey: \"\",\r\n\t\t\t\t\tlabel: \"Week Start\",\r\n\t\t\t\t\tformattingRules: [],\r\n\t\t\t\t\tvalue: null\r\n\t\t\t\t},\r\n\t\t\t\t{\r\n\t\t\t\t\tkey: \"weekEnd\",\r\n\t\t\t\t\tcalculationKey: \"\",\r\n\t\t\t\t\tlabel: \"Week End\",\r\n\t\t\t\t\tformattingRules: [],\r\n\t\t\t\t\tvalue: null\r\n\t\t\t\t}\r\n\t\t\t]\r\n\r\n\t\t\tcolumns.push(...optionalColumns)\r\n\t\t}\r\n\r\n\t\treturn columns\r\n\t}\r\n\r\n\tpublic get optionalPostColumns () {\r\n\t\tconst optionalColumns = []\r\n\t\tif (this.showUserStatus()) {\r\n\t\t\toptionalColumns.push({\r\n\t\t\t\tkey: \"userStatus\",\r\n\t\t\t\tlabel: \"User Status\",\r\n\t\t\t\tformattingRules: []\r\n\t\t\t})\r\n\t\t}\r\n\r\n\t\treturn optionalColumns\r\n\t}\r\n\r\n\tpublic get numericalColumns () {\r\n\t\tconst sort = this.insight ? this.insight.calculationSort || [] : []\r\n\r\n\t\tconst calculationsColumns = this.calculationsColumns\r\n\t\tconst calculationTotalsColumns = this.calculationTotalsColumns\r\n\r\n\t\tconst sortedColumns = sort.map(key => {\r\n\t\t\tconst calcColumns = calculationsColumns.filter(c => c.calculationKey === key)\r\n\t\t\tif (calcColumns.length > 0) return calcColumns\r\n\r\n\t\t\treturn calculationTotalsColumns.filter(c => c.calculationKey === key)\r\n\t\t}).flat()\r\n\r\n\t\treturn [\r\n\t\t\t...sortedColumns,\r\n\t\t\t...calculationsColumns.filter(c => !sort.includes(c.calculationKey)),\r\n\t\t\t...calculationTotalsColumns.filter(c => !sort.includes(c.calculationKey)),\r\n\t\t\t{\r\n\t\t\t\tkey: \"value\",\r\n\t\t\t\tlabel: \"value\",\r\n\t\t\t\tcalculationKey: \"\",\r\n\t\t\t\tformattingRules: []\r\n\t\t\t}\r\n\t\t]\r\n\t}\r\n\r\n\tprivate showUserStatus () : boolean {\r\n\t\treturn this.showUserHeaderFields() &&\r\n\t\t\t\t!!this.insight.showCalculatedUserStatus\r\n\t}\r\n\r\n\tprivate showUserHeaderFields () : boolean {\r\n\t\treturn this.insight.groupByDataType === DataType.userRole &&\r\n\t\t\t\tthis.insight.groupByOption === \"user\"\r\n\t}\r\n\r\n\tpublic get displayNumericalColumns () {\r\n\t\treturn this.numericalColumns.filter(c => c.key !== \"value\")\r\n\t}\r\n\r\n\tprivate async bulkLoadUserDataIfNecessary () : Promise {\r\n\t\tif (this.showUserHeaderFields()) {\r\n\t\t\tthis.userDataDefinition = await api.userSpecialDefinition()\r\n\r\n\t\t\tconst userIds = this.resultGroups.filter(c => !!c.value).map(c => c.value)\r\n\t\t\tconst userIdsWithData = await api.userStatusListWithFieldsGet(userIds)\r\n\t\t\tuserIdsWithData.forEach(userIdWithData => {\r\n\t\t\t\tthis.userDataByUserId[userIdWithData.userId] = userIdWithData\r\n\t\t\t})\r\n\t\t}\r\n\t}\r\n\r\n\tpublic get items (): { [key: string]: any }[] {\r\n\t\tconst rows = this.resultGroups.map((resultGroup: any) => {\r\n\t\t\tconst row: {[key: string]: any} = this.numericalColumns.reduce((values: { [key: string]: any }, column) => {\r\n\t\t\t\tvalues[column.key] = get(resultGroup, column.key)\r\n\t\t\t\tif (values[column.key] === undefined) {\r\n\t\t\t\t\tvalues[column.key] = this.getUndefinedColumnValue(column)\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (column.key !== \"value\") { // don't round the resultGroup.value\r\n\t\t\t\t\tvalues[column.key] = formatInsight.methods.roundNumber(values[column.key], 2)\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn values\r\n\t\t\t}, {})\r\n\r\n\t\t\trow[\"label\"] = resultGroup.label\r\n\r\n\t\t\tif (this.showUserHeaderFields()) {\r\n\t\t\t\tconst userId = resultGroup[\"value\"]\r\n\r\n\t\t\t\tconst userData = this.userDataByUserId[userId]\r\n\r\n\t\t\t\tif (userData && userData.userHeaderFieldValues) {\r\n\t\t\t\t\trow[\"userHeaderFieldValues\"] = userData.userHeaderFieldValues\r\n\t\t\t\t} else {\r\n\t\t\t\t\trow[\"userHeaderFieldValues\"] = {}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tif (this.showUserStatus()) {\r\n\t\t\t\tconst userId = resultGroup[\"value\"]\r\n\t\t\t\trow[\"userStatus\"] = this.userDataByUserId[userId]\r\n\t\t\t\tthis.setUserStatusRowColumn(row, userId)\r\n\t\t\t}\r\n\t\t\treturn row\r\n\t\t})\r\n\r\n\t\treturn rows\r\n\t}\r\n\r\n\tprivate getUndefinedColumnValue (column: any) {\r\n\t\tvar calculation: InsightCalculation | InsightCalculationTotal | null = null\r\n\t\tvar defaultExpression = \"\"\r\n\r\n\t\t// Find the matching Calculation or CalculationTotal\r\n\t\tif (column.key.includes(\"calculations\")) {\r\n\t\t\tcalculation = this.calculations.find(c => c.key === column.calculationKey)!\r\n\t\t\tdefaultExpression = calculation ? \"{\" + calculation!.label + \"}\" : \"\"\r\n\t\t} else if (column.key.includes(\"calculationTotals\")) {\r\n\t\t\tcalculation = this.calculationTotals[column.calculationKey]\r\n\t\t\tdefaultExpression = calculation ? \"{\" + calculation!.title + \"}\" : \"\"\r\n\t\t}\r\n\r\n\t\t// If the calculation uses an expression, return None as the expression could not be performed\r\n\t\tif (calculation && calculation.expression && defaultExpression && calculation.expression.replace(defaultExpression, \"\")) {\r\n\t\t\treturn \"None\"\r\n\t\t}\r\n\t\treturn 0\r\n\t}\r\n\r\n\tprivate setUserStatusRowColumn (row: { [key:string]: any }, userId: string) {\r\n\t\tconst userStatusMapping = this.userDataByUserId[userId]\r\n\r\n\t\tif (!userStatusMapping) {\r\n\t\t\trow[\"userStatus\"] = \"Not Set\"\r\n\t\t\treturn\r\n\t\t}\r\n\r\n\t\tif (userStatusMapping.isExternal) {\r\n\t\t\trow[\"userStatus\"] = \"External User\"\r\n\t\t\treturn\r\n\t\t}\r\n\r\n\t\trow[\"userStatus\"] = userStatusMapping.userStatus || \"Not Set\"\r\n\t}\r\n\r\n\t/**\r\n\t * Adds up the total value of each row\r\n\t */\r\n\tprivate get TotalsRow () {\r\n\t\tvar totals: { [key: string]: any } = {\r\n\t\t\tlabel: \"Total\",\r\n\t\t\thideFormatting: true\r\n\t\t}\r\n\r\n\t\t// For each column loop through the row and add up the values\r\n\t\tthis.numericalColumns.forEach((column:any) => {\r\n\t\t\tif (column.key !== \"label\" && column.key !== \"value\") {\r\n\t\t\t\tlet columnCalculationResult = this.getColumnCalculationResult(column)\r\n\t\t\t\ttotals[column.key] = formatInsight.methods.roundNumber(columnCalculationResult, 1)\r\n\t\t\t}\r\n\t\t})\r\n\r\n\t\treturn [totals]\r\n\t}\r\n\r\n\tprivate getColumnCalculationResult (column: any) : number {\r\n\t\tlet columnCalculationResult = 0\r\n\t\tconst calculationDetails = this.calculations.find(c => c.key === column.calculationKey)\r\n\r\n\t\tlet calculationType = CalculationType.Total\r\n\t\tif (calculationDetails &&\r\n\t\t\tcalculationDetails.calcType !== null &&\r\n\t\t\tcalculationDetails.calcType !== undefined) {\r\n\t\t\tcalculationType = calculationDetails.calcType\r\n\t\t}\r\n\r\n\t\tlet firstItem = true\r\n\t\tthis.items.forEach((row:any) => {\r\n\t\t\tvar value = typeof row[column.key] === \"string\" ? Number.parseFloat(row[column.key]) : row[column.key]\r\n\r\n\t\t\tif (typeof value === \"number\") {\r\n\t\t\t\tswitch (calculationType) {\r\n\t\t\t\t\tcase CalculationType.Min:\r\n\t\t\t\t\t\tif (firstItem) {\r\n\t\t\t\t\t\t\tcolumnCalculationResult = value\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\tcolumnCalculationResult = Math.min(columnCalculationResult, value)\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tbreak\r\n\t\t\t\t\tcase CalculationType.Max:\r\n\t\t\t\t\t\tif (firstItem) {\r\n\t\t\t\t\t\t\tcolumnCalculationResult = value\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\tcolumnCalculationResult = Math.max(columnCalculationResult, value)\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tbreak\r\n\t\t\t\t\tdefault:\r\n\t\t\t\t\t\tcolumnCalculationResult += value\r\n\t\t\t\t}\r\n\t\t\t\tfirstItem = false\r\n\t\t\t}\r\n\t\t})\r\n\r\n\t\tswitch (calculationType) {\r\n\t\t\tcase CalculationType.Average:\r\n\t\t\t\tif (this.items.length > 0) {\r\n\t\t\t\t\tcolumnCalculationResult = columnCalculationResult / this.items.length\r\n\t\t\t\t} else {\r\n\t\t\t\t\tcolumnCalculationResult = 0\r\n\t\t\t\t}\r\n\t\t\t\tbreak\r\n\t\t\tdefault:\r\n\t\t\t\tbreak\r\n\t\t}\r\n\r\n\t\treturn columnCalculationResult\r\n\t}\r\n\r\n\t/**\r\n\t * Returns a list of all rows and the totals row\r\n\t */\r\n\tpublic get allItems () {\r\n\t\treturn this.items.concat(this.TotalsRow)\r\n\t}\r\n\r\n\tprivate cellStyle (key: string, value: any, field: any, row: any) {\r\n\t\tif (!field || !field.formattingRules || row.hideFormatting) return null\r\n\r\n\t\treturn cellFormatting.cellStyle(field.formattingRules, value, field)\r\n\t}\r\n\r\n\tprivate cellBarStyle (row: { [key: string]: any }, cell: any, column: any) {\r\n\t\treturn cellFormatting.cellBarStyle(column.formattingRules, this.allItems, row, cell, column)\r\n\t}\r\n\r\n\tprivate icon (key: string, value: any, field: any) {\r\n\t\tif (!field || !field.formattingRules) return null\r\n\r\n\t\treturn cellFormatting.icon(field.formattingRules, value, field)\r\n\t}\r\n\r\n\tpublic rowClick (row: any) {\r\n\t\tif (!row) {\r\n\t\t\treturn\r\n\t\t}\r\n\t\tthis.$emit(\"rowClick\", row)\r\n\t}\r\n\r\n\tprivate rowWasClicked (row: any) : boolean {\r\n\t\tif (!this.insight || !this.insight.id) {\r\n\t\t\treturn false\r\n\t\t}\r\n\t\tconst filterFromClickedRow = this.dashboardState.calculationTableClickedRows[this.insight.id]\r\n\t\tif (!filterFromClickedRow) {\r\n\t\t\treturn false\r\n\t\t}\r\n\r\n\t\tif (filterFromClickedRow.value === row.value) {\r\n\t\t\treturn true\r\n\t\t}\r\n\t\treturn false\r\n\t}\r\n\r\n\tprivate async onUserStatusChanged (userId: string, userStatus: UserStatus) {\r\n\t\tif (userId === this.me.id) {\r\n\t\t\tif (userStatus.id) {\r\n\t\t\t\tawait this.setCurrentUserStatus(userStatus)\r\n\t\t\t} else {\r\n\t\t\t\tawait this.clearCurrentUserStatus()\r\n\t\t\t}\r\n\t\t\tawait this.bulkLoadUserDataIfNecessary()\r\n\t\t\treturn\r\n\t\t}\r\n\r\n\t\tif (userStatus.id) {\r\n\t\t\tawait api.setUserStatus(userId, userStatus.id!)\r\n\t\t} else {\r\n\t\t\tawait api.clearUserStatus(userId)\r\n\t\t}\r\n\t\tawait this.bulkLoadUserDataIfNecessary()\r\n\t}\r\n\r\n\tpublic get userHasSetStatusPermission () : boolean {\r\n\t\treturn !!(this.me &&\r\n\t\t\tthis.me.extendedPermissions &&\r\n\t\t\tthis.me.extendedPermissions[\"setOtherUsersStatus\"])\r\n\t}\r\n\r\n\tprivate userStatusSelectOpen (userId: string) {\r\n\t\tthis.userIdStatusSelectOpen = userId\r\n\t}\r\n\r\n\tprivate userStatusSelectClose () {\r\n\t\tthis.userIdStatusSelectOpen = \"\"\r\n\t}\r\n\r\n\tuserIdStatusSelectOpen: string = \"\"\r\n\r\n\tprivate canClickRow (row: any) : boolean {\r\n\t\tif (!this.clickableRows) {\r\n\t\t\treturn false\r\n\t\t}\r\n\r\n\t\tif (row[\"userStatus\"] === \"External User\") {\r\n\t\t\treturn false\r\n\t\t}\r\n\r\n\t\treturn true\r\n\t}\r\n\r\n\tprivate getLabeledValueDisplayLabel (fieldId: string, labeledValue: LabeledValue): string {\r\n\t\tconst userField = this.userDataDefinition!.fields.find(c => c.field.id === fieldId)\r\n\r\n\t\tif (!userField) {\r\n\t\t\treturn \"\"\r\n\t\t}\r\n\t\tconst label = formatFieldsMixin.methods.getDisplayLabelFromLabeledValue(labeledValue, userField.field.dataType!)\r\n\t\treturn label\r\n\t}\r\n\r\n\tprivate sanitizeFieldTitle (title: string) : string {\r\n\t\tconst result = title.replace(/[^a-zA-Z0-9]/g, \"\")\r\n\t\treturn result\r\n\t}\r\n}\r\n\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CalculationTable.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CalculationTable.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./CalculationTable.vue?vue&type=template&id=f33fc3c8&scoped=true&\"\nimport script from \"./CalculationTable.vue?vue&type=script&lang=ts&\"\nexport * from \"./CalculationTable.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./CalculationTable.vue?vue&type=style&index=0&id=f33fc3c8&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"f33fc3c8\",\n null\n \n)\n\nexport default component.exports","import Quill from \"quill\"\r\nvar Embed = Quill.import(\"blots/embed\")\r\nconst ATTRIBUTES = [\"data-id\", \"data-label\", \"contenteditable\"]\r\n\r\n/**\r\n * Placeholder format for Quill\r\n */\r\nexport default class Placeholder extends Embed {\r\n\tstatic blotName = \"placeholder\"\r\n\tstatic tagName = \"span\"\r\n\tstatic className = \"ql-placeholder-content\"\r\n\r\n\tdomNode!: HTMLImageElement;\r\n\r\n\tstatic create (value: any) {\r\n\t\tlet node = super.create(value)\r\n\r\n\t\tnode.setAttribute(\"class\", \"ql-placeholder-content badge badge-primary\")\r\n\t\tnode.setAttribute(\"data-id\", value.id)\r\n\t\tnode.setAttribute(\"data-label\", value.label)\r\n\r\n\t\tnode.innerHTML = value.label\r\n\r\n\t\treturn node\r\n\t}\r\n\r\n\tstatic value (domNode: Element) {\r\n\t\treturn {\r\n\t\t\tid: domNode.getAttribute(\"data-id\"),\r\n\t\t\tlabel: domNode.getAttribute(\"data-label\")\r\n\t\t}\r\n\t}\r\n\r\n\tstatic getPlaceholderHtml (placeholderId: string, placeholderLabel: string, placeholderColourClass: string = \"badge-primary\") {\r\n\t\treturn `${placeholderLabel}`\r\n\t}\r\n}\r\n","import { HubConnection, HubConnectionBuilder, HubConnectionState, LogLevel } from \"@aspnet/signalr\"\r\n\r\nenum JoinResult {\r\n\tOk = 0,\r\n\tNotLoggedIn\r\n}\r\n\r\nclass HubNotificationService {\r\n\tprivate notificationConnectionShouldBeOpen: boolean = false;\r\n\tprivate notificationConnection: HubConnection | null = null;\r\n\r\n\tpublic notLoggedIn: null | (() => void) = null\r\n\tpublic connectionStateChanged: null | ((isConnected: boolean) => void) = null\r\n\r\n\tpublic async openConnection (): Promise {\r\n\t\tif (this.notificationConnection) {\r\n\t\t\tthis.notificationConnection.invoke(\"leaveNotifications\")\r\n\t\t\tthis.notificationConnection.stop()\r\n\t\t\tthis.notificationConnection = null\r\n\t\t}\r\n\r\n\t\tconst notificationConnection = new HubConnectionBuilder()\r\n\t\t\t.withUrl(`${process.env.VUE_APP_HTTP_API_URI}notification-hub`)\r\n\t\t\t.configureLogging(LogLevel.Information)\r\n\t\t\t.build()\r\n\r\n\t\tlet startedPromise = null\r\n\t\tconst start: () => Promise = () => {\r\n\t\t\tif (!notificationConnection || notificationConnection.state !== HubConnectionState.Disconnected || !this.notificationConnectionShouldBeOpen) {\r\n\t\t\t\treturn Promise.resolve()\r\n\t\t\t}\r\n\r\n\t\t\tstartedPromise = notificationConnection.start()\r\n\t\t\t\t.then(async () => {\r\n\t\t\t\t\tconst result = await notificationConnection.invoke(\"joinNotifications\")\r\n\t\t\t\t\tif (result === JoinResult.NotLoggedIn) {\r\n\t\t\t\t\t\tif (this.notLoggedIn !== null) {\r\n\t\t\t\t\t\t\tthis.notLoggedIn()\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tif (this.connectionStateChanged) {\r\n\t\t\t\t\t\t\tthis.connectionStateChanged(true)\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t})\r\n\t\t\t\t.catch(err => {\r\n\t\t\t\t\tif (this.connectionStateChanged) {\r\n\t\t\t\t\t\tthis.connectionStateChanged(false)\r\n\t\t\t\t\t}\r\n\t\t\t\t\tconsole.error(\"HubNotificationService - failed to connect with hub:\", err)\r\n\t\t\t\t\treturn new Promise((resolve, reject) =>\r\n\t\t\t\t\t\tsetTimeout(() => start()\r\n\t\t\t\t\t\t\t.then(resolve)\r\n\t\t\t\t\t\t\t.catch(reject),\r\n\t\t\t\t\t\t5000))\r\n\t\t\t\t})\r\n\r\n\t\t\treturn startedPromise\r\n\t\t}\r\n\t\tnotificationConnection.onclose(() => {\r\n\t\t\tif (this.notificationConnectionShouldBeOpen) {\r\n\t\t\t\tif (this.connectionStateChanged) {\r\n\t\t\t\t\tthis.connectionStateChanged(false)\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (this.notificationConnection) {\r\n\t\t\t\t\ttry {\r\n\t\t\t\t\t\tthis.notificationConnection.stop()\r\n\t\t\t\t\t} catch {}\r\n\t\t\t\t}\r\n\t\t\t\tstart()\r\n\t\t\t}\r\n\t\t})\r\n\r\n\t\tthis.notificationConnectionShouldBeOpen = true\r\n\t\tawait start()\r\n\t\tthis.notificationConnection = notificationConnection\r\n\r\n\t\treturn this.notificationConnection\r\n\t}\r\n\r\n\tpublic closeConnection () {\r\n\t\tif (this.notificationConnection) {\r\n\t\t\tthis.notificationConnectionShouldBeOpen = false\r\n\r\n\t\t\tthis.notificationConnection.stop()\r\n\t\t\tthis.notificationConnection = null\r\n\t\t}\r\n\t}\r\n}\r\n\r\nconst hubNotificationService = new HubNotificationService()\r\nexport default hubNotificationService\r\n","\r\nimport { AxiosInstance } from \"axios\"\r\nimport api from \"@/services/api\"\r\nimport { ViewFullSummary } from \"@/types/views/viewSummary\"\r\nimport { View } from \"@/types/views/view\"\r\n\r\nexport class ViewsService {\r\n\tpublic viewSummary: ViewFullSummary | null = null;\r\n\tpublic loading: boolean = false;\r\n\r\n\tpublic viewError: any = null;\r\n\tpublic activeViewId: string | null = null;\r\n\tpublic activeView: View | null = null;\r\n\r\n\tpublic async loadViews (searchTerm: string = \"\", cacheId: string = \"\") {\r\n\t\ttry {\r\n\t\t\tthis.loading = true\r\n\t\t\tthis.viewError = null\r\n\r\n\t\t\tthis.viewSummary = await api.caseViews(this.activeViewId, searchTerm, cacheId)\r\n\t\t\tthis.activeView = this.viewSummary!.activeView\r\n\r\n\t\t\tif (this.activeView) {\r\n\t\t\t\tthis.activeViewId = this.activeView.id\r\n\t\t\t}\r\n\t\t} catch (err) {\r\n\t\t\tthis.viewError = err\r\n\t\t}\r\n\t\tthis.loading = false\r\n\t}\r\n\r\n\tpublic reset () {\r\n\t\tthis.viewSummary = null\r\n\t\tthis.activeView = null\r\n\t\tthis.activeViewId = null\r\n\t}\r\n}\r\n\r\nconst viewsService = new ViewsService()\r\nexport default viewsService\r\n","import { Vue } from \"vue-property-decorator\"\r\nimport { Module } from \"vuex\"\r\nimport { BaseState } from \"./index\"\r\nimport User from \"@/types/user\"\r\nimport { CaseAudit } from \"@/types/caseAudit\"\r\nimport CaseFile from \"@/types/caseFile\"\r\nimport { Case, CaseDetails, Area, Media, RecordAction, FieldInstance, TreeNode, CaseField,\r\n\tTag, Status, Severity, CaseError } from \"@/types\"\r\nimport { CaseEvent, CaseEvents } from \"@/types/originatingEvents\"\r\nimport { TemplateDetails } from \"@/types/templateDetails\"\r\nimport api from \"@/services/api\"\r\nimport eventsApi from \"@/services/api.event\"\r\nimport viewsService, { ViewsService } from \"@/services/viewsService\"\r\nimport { cascadeListChange, applyTemplate, updateCaseDetails } from \"@/scripts/caseDetails\"\r\nimport { InProgressSaveDetails } from \"@/types/inProgressSaveDetails\"\r\nimport { PagedData } from \"@/types/pagedData\"\r\nimport { TenantFeatures } from \"@/types/tenantFeatures\"\r\n\r\nexport interface CasesState {\r\n\tloadingCases: Boolean;\r\n\tcaseListLoadError: string | null;\r\n\tcases: PagedData | null;\r\n\tcaseErrors: CaseError[];\r\n\tactiveViewId: string | null;\r\n\tcurrentCase: CaseDetails | null;\r\n\tstatuses: Status[] | null;\r\n\tseverities: Severity[] | null;\r\n\tcurrentTemplate: TemplateDetails | null;\r\n\tareas: TreeNode[] | null;\r\n\tareaDictionary: Map;\r\n\tcategories: TemplateDetails[] | null;\r\n\tcurrentCaseAudit: CaseAudit[];\r\n\tcurrentCaseFiles: CaseFile[];\r\n\tpendingUploadFiles: any[];\r\n\tpreviewFile: any;\r\n\tpreviewKeyMedia: any;\r\n\tshowCCEvent: CaseEvent | null;\r\n\tcaseEvents: CaseEvents | null;\r\n\tactions: RecordAction[];\r\n\tcaseFieldDetails: any;\r\n\tviewsService: ViewsService;\r\n\tcaseToast: string | null;\r\n\tpendingRefresh: Set;\r\n\tfieldLockInterval: any;\r\n\tfieldLockMilliseconds: number;\r\n\tinProgressSaveDetails: InProgressSaveDetails | null;\r\n};\r\n\r\nexport const state: CasesState = {\r\n\tloadingCases: false,\r\n\tcaseListLoadError: null,\r\n\tcases: null,\r\n\tcaseErrors: [],\r\n\tactiveViewId: null,\r\n\tcurrentCase: null,\r\n\tcurrentTemplate: null,\r\n\tstatuses: null,\r\n\tseverities: null,\r\n\tareas: null,\r\n\tareaDictionary: new Map(),\r\n\tcategories: null,\r\n\tcurrentCaseAudit: [],\r\n\tcurrentCaseFiles: [],\r\n\tpendingUploadFiles: [],\r\n\tpreviewFile: null,\r\n\tpreviewKeyMedia: null,\r\n\tshowCCEvent: null,\r\n\tcaseEvents: null,\r\n\tactions: [],\r\n\tcaseFieldDetails: null,\r\n\tviewsService: viewsService,\r\n\tcaseToast: null,\r\n\tpendingRefresh: new Set(),\r\n\tfieldLockInterval: null,\r\n\tfieldLockMilliseconds: 30000,\r\n\tinProgressSaveDetails: null\r\n}\r\n\r\nconst newCase = (state: CasesState): CaseDetails => {\r\n\tlet defaultStatus = null\r\n\tif (state.statuses && state.statuses.length > 0) {\r\n\t\tdefaultStatus = state.statuses.find(s => s.default)\r\n\t\tif (!defaultStatus) {\r\n\t\t\tdefaultStatus = state.statuses[0]\r\n\t\t}\r\n\t}\r\n\r\n\treturn {\r\n\t\tfields: {},\r\n\t\tsections: [],\r\n\t\ttitle: \"\",\r\n\t\tassigneeId: null,\r\n\t\tseverityId: state.severities && state.severities.length > 0 ? state.severities![0].id : \"\",\r\n\t\tseverityTitle: state.severities && state.severities.length > 0 ? state.severities![0].title : \"\",\r\n\t\tseverityLevel: state.severities && state.severities.length > 0 ? state.severities![0].level : 1,\r\n\t\tstatusId: defaultStatus ? defaultStatus.id : \"\",\r\n\t\tstatusTitle: defaultStatus ? defaultStatus.title : \"\",\r\n\t\tcadenceDetails: null,\r\n\t\ttemplateId: null,\r\n\t\tcategoryTitle: null,\r\n\t\topenedByUser: null,\r\n\t\topenedByUserId: null,\r\n\t\tid: null,\r\n\t\tcaseNumber: null,\r\n\t\tisSensitive: false,\r\n\t\tareas: [],\r\n\t\tpendingTeams: [],\r\n\t\tusers: [],\r\n\t\tsummary: \"\",\r\n\t\tviewingUsers: [],\r\n\t\tisCase: false,\r\n\t\tisClosed: false,\r\n\t\tactions: [],\r\n\t\tlinks: [],\r\n\t\tcaseFieldDetails: null,\r\n\t\tpermissions: null,\r\n\t\ttags: [],\r\n\t\tcadenceEnabled: false,\r\n\t\thiddenFromInsights: false\r\n\t} as CaseDetails\r\n}\r\n\r\nconst filterTree = (filter: string | null, tree: TreeNode, nodeVisibility: boolean | null) => {\r\n\tconst inFilter = !filter || tree.node.title.toLowerCase().indexOf(filter) > -1\r\n\r\n\tlet filteredCount = 0\r\n\tif (tree.children) {\r\n\t\ttree.children.forEach(c => filteredCount += filterTree(filter, c, nodeVisibility))\r\n\t}\r\n\r\n\tif (inFilter) {\r\n\t\tfilteredCount++\r\n\t}\r\n\r\n\tVue.set(tree, \"visible\", (nodeVisibility !== null && tree.node.parentId !== null) ? nodeVisibility : (inFilter || filteredCount > 0))\r\n\treturn filteredCount\r\n}\r\n\r\nexport const cases: Module = {\r\n\tnamespaced: true,\r\n\tstate,\r\n\tgetters: {\r\n\t\tgetLoadingCases: state => state.loadingCases,\r\n\t\tgetCaseListLoadingError: state => state.caseListLoadError,\r\n\t\tgetCases: state => state.cases,\r\n\t\tgetCurrentCase: state => state.currentCase,\r\n\t\tgetSeverities: state => state.severities,\r\n\t\tgetStatuses: state => state.statuses,\r\n\t\tgetCadenceDetails: state => state.currentCase!.cadenceDetails,\r\n\t\tgetCategories: state => state.categories,\r\n\t\tgetCreatableCategories: (state, getters, rootState) => {\r\n\t\t\tif (!state.categories || !rootState.me) return []\r\n\r\n\t\t\treturn state.categories.filter(template => {\r\n\t\t\t\tif (template.preventManualCreation) {\r\n\t\t\t\t\treturn false\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (!template.permissions) {\r\n\t\t\t\t\treturn true\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (template.alwaysPromoted) {\r\n\t\t\t\t\treturn template.permissions.case.edit.length === 0 ||\r\n\t\t\t\t\t\ttemplate.permissions.case.edit.some(e => rootState.me!.teams.some((mt: any) => mt.id === e.id))\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn template.permissions.case.edit.length === 0 ||\r\n\t\t\t\t\ttemplate.permissions.case.edit.some(e => rootState.me!.teams.some((mt: any) => mt.id === e.id)) ||\r\n\t\t\t\t\ttemplate.permissions.record.edit.length === 0 ||\r\n\t\t\t\t\ttemplate.permissions.record.edit.some(e => rootState.me!.teams.some((mt: any) => mt.id === e.id))\r\n\t\t\t})\r\n\t\t},\r\n\t\tgetCurrentCaseAudit: state => state.currentCaseAudit,\r\n\t\tgetCurrentCaseFiles: state => state.currentCaseFiles,\r\n\t\tgetNumberOfFilesAwaitingUpload: state => state.pendingUploadFiles.length,\r\n\t\tgetPendingUploadFiles: state => state.pendingUploadFiles,\r\n\t\tgetPreviewFile: state => state.previewFile,\r\n\t\tgetPreviewKeyMedia: state => state.previewKeyMedia,\r\n\t\tgetShowCCEvent: state => state.showCCEvent,\r\n\t\tgetCaseFieldDetails: state => state.caseFieldDetails,\r\n\t\tgetShowField: (state) => {\r\n\t\t\treturn (fieldKey: string) => {\r\n\t\t\t\tif (!state.currentTemplate) return false\r\n\t\t\t\tif (!state.currentTemplate.hiddenFields) return true\r\n\t\t\t\treturn !state.currentTemplate.hiddenFields!.includes(fieldKey)\r\n\t\t\t}\r\n\t\t},\r\n\t\tgetBlankCase: (state) => () => newCase(state),\r\n\t\tgetCurrentTemplate: (state) => state.currentTemplate\r\n\t},\r\n\tmutations: {\r\n\t\tsetCurrentCase: (state: CasesState, currentCase: CaseDetails) => state.currentCase = currentCase,\r\n\t\tsetActiveViewId: (state: CasesState, viewId: string) => state.activeViewId = viewId,\r\n\t\tsetCurrentCaseId: (state: CasesState, caseId: string) => {\r\n\t\t\tif (state.currentCase) {\r\n\t\t\t\tstate.currentCase.id = caseId\r\n\t\t\t}\r\n\t\t},\r\n\t\tsetCurrentCaseNew: (state: CasesState) => {\r\n\t\t\tstate.currentTemplate = null\r\n\t\t\tstate.currentCase = newCase(state)\r\n\r\n\t\t\tstate.caseEvents = null\r\n\t\t\tstate.currentCaseFiles = []\r\n\t\t},\r\n\t\tsetCurrentCaseTemplate: (state, template: TemplateDetails) => {\r\n\t\t\tif (state.currentCase) {\r\n\t\t\t\tapplyTemplate(state.currentCase, template)\r\n\t\t\t}\r\n\t\t},\r\n\t\tsetCurrentCaseTags: (state, tags: Tag[]) => {\r\n\t\t\tif (state.currentCase) {\r\n\t\t\t\tstate.currentCase.tags = tags\r\n\t\t\t}\r\n\t\t},\r\n\t\tsetCaseErrors: (state, errorList: Error[]) => state.caseErrors = errorList,\r\n\t\tsetLoadingCases: (state: CasesState, loading: boolean) => state.loadingCases = loading,\r\n\t\tsetListLoadingError: (state: CasesState, error: string | null) => state.caseListLoadError = error,\r\n\t\tsetCaseList: (state: CasesState, caseList: PagedData) => state.cases = caseList,\r\n\t\tsetStatuses: (state: CasesState, statuses: Status[]) => state.statuses = statuses,\r\n\t\tsetSeverities: (state: CasesState, severities: Severity[]) => state.severities = severities,\r\n\t\tsetCurrentTemplate: (state: CasesState, template: TemplateDetails | null) => state.currentTemplate = template,\r\n\t\tsetAreas: (state: CasesState, areas: TreeNode[]) => {\r\n\t\t\tstate.areas = areas\r\n\t\t\tif (state.areas) {\r\n\t\t\t\tstate.areas.forEach(c => filterTree(null, c, false))\r\n\t\t\t}\r\n\t\t},\r\n\t\tsetAreaDictionary: (state: CasesState, areaDictionary : Map) => {\r\n\t\t\tstate.areaDictionary = areaDictionary\r\n\t\t},\r\n\t\tsetCategories: (state: CasesState, categories: TemplateDetails[]) => state.categories = categories,\r\n\t\tsetAudit: (state: CasesState, currentCaseAudit: CaseAudit[]) => state.currentCaseAudit = currentCaseAudit,\r\n\t\tsetCurrentCaseFiles: (state: CasesState, currentCaseFiles: CaseFile[]) => state.currentCaseFiles = currentCaseFiles,\r\n\t\taddFilesAwaitingUpload: (state: CasesState, filesToUpload: any[]) => {\r\n\t\t\t// state.pendingUploadFiles = filesToUpload\r\n\t\t\tfilesToUpload.forEach(file => {\r\n\t\t\t\tstate.pendingUploadFiles.push(file)\r\n\t\t\t})\r\n\t\t},\r\n\t\tsetFileNoLongerAwaitingUpload: (state: CasesState, file: string) => {\r\n\t\t\twhile (true) {\r\n\t\t\t\tconst fileNameIndex = state.pendingUploadFiles.findIndex(uploadFilename => uploadFilename === file)\r\n\t\t\t\tif (fileNameIndex > -1) {\r\n\t\t\t\t\tstate.pendingUploadFiles.splice(fileNameIndex, 1)\r\n\t\t\t\t} else {\r\n\t\t\t\t\tbreak\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t},\r\n\t\tclearPendingFiles: (state: CasesState) => {\r\n\t\t\tstate.pendingUploadFiles = []\r\n\t\t},\r\n\t\tupdateCurrentCase: (state: CasesState, updatedCase: CaseDetails) => {\r\n\t\t\tif (!state.currentCase) {\r\n\t\t\t\treturn\r\n\t\t\t}\r\n\r\n\t\t\tupdateCaseDetails(state.currentCase, updatedCase)\r\n\t\t},\r\n\t\tupdateCurrentCaseUsers: (state: CasesState, viewingUsers: User[]) => {\r\n\t\t\tif (state.currentCase) {\r\n\t\t\t\tstate.currentCase.viewingUsers = viewingUsers\r\n\t\t\t}\r\n\t\t},\r\n\t\tsetPreviewFile: (state: CasesState, file: any) => {\r\n\t\t\tstate.previewFile = file\r\n\t\t},\r\n\t\tsetPreviewKeyMedia: (state: CasesState, keyMedia: Media) => state.previewKeyMedia = keyMedia,\r\n\t\tsetShowCCEvent: (state: CasesState, event: any) => state.showCCEvent = event,\r\n\t\tsetCaseEvents: (state: CasesState, caseEvents: CaseEvents) => state.caseEvents = caseEvents,\r\n\t\tsetCaseFieldDetails: (state: CasesState, details: any) => {\r\n\t\t\tif (state.caseFieldDetails) {\r\n\t\t\t\tstate.caseFieldDetails.definition.fields.forEach((field: FieldInstance) => {\r\n\t\t\t\t\tfield.value = null\r\n\t\t\t\t\tfield.fromData = false\r\n\t\t\t\t})\r\n\t\t\t}\r\n\r\n\t\t\tstate.caseFieldDetails = details\r\n\t\t},\r\n\t\tsetAreaFilter: (state, filter: string) => {\r\n\t\t\tif (!state.areas) {\r\n\t\t\t\treturn\r\n\t\t\t}\r\n\r\n\t\t\tconst lowerFilter = filter.toLowerCase()\r\n\t\t\tstate.areas.forEach(c => filterTree(lowerFilter, c, null))\r\n\t\t},\r\n\t\tsetCaseToast: (state, message: string | null) => state.caseToast = message,\r\n\t\tcascadeListChange: (state, { caseDetails, caseField, newValue, getFields }: { caseDetails?: CaseDetails, caseField: CaseField, newValue: any, getFields: boolean }) => {\r\n\t\t\tconst cascadeCase = caseDetails || state.currentCase\r\n\r\n\t\t\tif (!cascadeCase) return\r\n\t\t\tcascadeListChange(cascadeCase, caseField, newValue, getFields)\r\n\t\t},\r\n\t\taddPendingRefresh: (state, itemType: string) => state.pendingRefresh.add(itemType),\r\n\t\tremovePendingRefresh: (state, itemType: string) => state.pendingRefresh.delete(itemType),\r\n\t\tsetCaseFieldLock: (state, { caseField }: { caseField: CaseField }) => {\r\n\t\t\tcaseField.isLocked = true\r\n\t\t},\r\n\t\tsetInProgressSaveDetails: (state, details: InProgressSaveDetails) => {\r\n\t\t\tif (details && details.fieldId && details.text) {\r\n\t\t\t\tstate.inProgressSaveDetails = details\r\n\t\t\t}\r\n\t\t},\r\n\t\tclearInProgressSaveDetails: (state) => {\r\n\t\t\tstate.inProgressSaveDetails = null\r\n\t\t}\r\n\t},\r\n\tactions: {\r\n\t\tcaseCreate: async function ({ commit, getters }, caseDetails: CaseDetails) {\r\n\t\t\tlet errorList = []\r\n\t\t\tconst currentCase = caseDetails\r\n\r\n\t\t\t// const currentCaseWithoutFields = cloneDeep(currentCase) as any\r\n\t\t\t// delete currentCaseWithoutFields.fields\r\n\r\n\t\t\tconst newCase = await api.saveCase(currentCase)\r\n\r\n\t\t\t// Do not use foreach here - we need to await!\r\n\t\t\t// const fieldIds = Object.keys(currentCase.fields!)\r\n\t\t\t// for (let fieldIndex = 0; fieldIndex < fieldIds.length; fieldIndex++) {\r\n\t\t\t// \tconst fieldId = fieldIds[fieldIndex]\r\n\t\t\t// \tconst field = currentCase.fields![fieldId]\r\n\r\n\t\t\t// \tif (field.value != null) {\r\n\t\t\t// \t\ttry {\r\n\t\t\t// \t\t\tif (field.field.extensions && field.field.extensions!.calculationType !== undefined && field.field.dataType !== \"calculated\") {\r\n\t\t\t// \t\t\t\tawait api.setFieldCalculated(newCase.id!, field.field.id!, false)\r\n\t\t\t// \t\t\t}\r\n\r\n\t\t\t// \t\t\tif (field.field.dataType === \"list-data\") {\r\n\t\t\t// \t\t\t\tfor (let index = 0; index < field.value.length; index++) {\r\n\t\t\t// \t\t\t\t\tconst value = field.value[index]\r\n\t\t\t// \t\t\t\t\tawait api.updateCaseDataField(newCase.id!, field.field.id!, 1, value)\r\n\t\t\t// \t\t\t\t}\r\n\t\t\t// \t\t\t} else if (field.field.dataType !== \"calculated\") {\r\n\t\t\t// \t\t\t\tawait api.saveCaseField(newCase.id!, field.field.id!, field.value)\r\n\t\t\t// \t\t\t}\r\n\t\t\t// \t\t} catch (e) {\r\n\t\t\t// \t\t\tconst error: CaseError = {\r\n\t\t\t// \t\t\t\tfield: field.field,\r\n\t\t\t// \t\t\t\tmessage: e\r\n\t\t\t// \t\t\t}\r\n\t\t\t// \t\t\terrorList.push(error)\r\n\t\t\t// \t\t}\r\n\t\t\t// \t}\r\n\t\t\t// }\r\n\r\n\t\t\treturn {\r\n\t\t\t\tcreated: newCase,\r\n\t\t\t\terrors: []\r\n\t\t\t}\r\n\t\t},\r\n\t\tasync casesLoad ({ commit }) {\r\n\t\t\tcommit(\"setLoadingCases\", true)\r\n\r\n\t\t\ttry {\r\n\t\t\t\tcommit(\"setCaseList\", await api.caseList())\r\n\t\t\t\tcommit(\"setListLoadingError\", null)\r\n\t\t\t} catch (err) {\r\n\t\t\t\tcommit(\"setListLoadingError\", err)\r\n\t\t\t}\r\n\r\n\t\t\tcommit(\"setLoadingCases\", false)\r\n\t\t},\r\n\t\tasync detailsLoad ({ commit, state, rootGetters }) {\r\n\t\t\tconst load = []\r\n\r\n\t\t\tif (!state.statuses || state.statuses.length === 0) {\r\n\t\t\t\tload.push(api.statuses().then((statuses) => {\r\n\t\t\t\t\tcommit(\"setStatuses\", statuses)\r\n\t\t\t\t}))\r\n\t\t\t}\r\n\r\n\t\t\tif (!state.statuses || state.statuses.length === 0) {\r\n\t\t\t\tload.push(api.severities().then((severities) => {\r\n\t\t\t\t\tcommit(\"setSeverities\", severities)\r\n\t\t\t\t}))\r\n\t\t\t}\r\n\r\n\t\t\tif (!state.categories || state.categories.length === 0 || state.pendingRefresh.has(\"template\")) {\r\n\t\t\t\tload.push(api.categories().then((categories) => {\r\n\t\t\t\t\tcommit(\"setCategories\", categories)\r\n\t\t\t\t\tcommit(\"removePendingRefresh\", \"template\")\r\n\t\t\t\t}))\r\n\t\t\t}\r\n\r\n\t\t\tconst excludeAreas = rootGetters.isFeatureEnabled(TenantFeatures.AreaScaling)\r\n\r\n\t\t\tif (!excludeAreas && (!state.areas || state.areas.length === 0)) {\r\n\t\t\t\tload.push(api.areas().then((areas) => {\r\n\t\t\t\t\tcommit(\"setAreas\", areas)\r\n\t\t\t\t}))\r\n\t\t\t}\r\n\r\n\t\t\tif (load.length > 0) {\r\n\t\t\t\tawait Promise.all(load)\r\n\t\t\t}\r\n\t\t},\r\n\t\tasync severitiesLoad ({ state, commit }) {\r\n\t\t\tif (!state.severities || state.severities.length === 0) {\r\n\t\t\t\tawait api.severities().then((severities) => {\r\n\t\t\t\t\tcommit(\"setSeverities\", severities)\r\n\t\t\t\t})\r\n\t\t\t}\r\n\t\t},\r\n\t\tasync detailsUnload ({ commit, state }) {\r\n\t\t\tcommit(\"setStatuses\", [])\r\n\t\t\tcommit(\"setSeverities\", [])\r\n\t\t\tcommit(\"setCategories\", null)\r\n\t\t\tcommit(\"setAreas\", [])\r\n\t\t},\r\n\t\tasync caseOpen ({ commit, dispatch, state }, caseId: string) {\r\n\t\t\tawait dispatch(\"detailsLoad\")\r\n\r\n\t\t\tconst caseDetails = await api.caseDetails(caseId)\r\n\t\t\tif (caseDetails.fields) {\r\n\t\t\t\tObject.keys(caseDetails.fields).forEach(fieldId => {\r\n\t\t\t\t\tcaseDetails.fields![fieldId].oldValue = caseDetails.fields![fieldId].value\r\n\t\t\t\t})\r\n\t\t\t}\r\n\r\n\t\t\ttry {\r\n\t\t\t\tcommit(\"setCurrentTemplate\", await api.templateDetails(caseDetails.templateId!))\r\n\t\t\t} catch {\r\n\t\t\t\tcommit(\"setCurrentTemplate\", {\r\n\t\t\t\t\thiddenFields: []\r\n\t\t\t\t})\r\n\t\t\t}\r\n\r\n\t\t\tcommit(\"setCurrentCase\", caseDetails)\r\n\t\t},\r\n\t\tasync caseClear ({ commit, dispatch }, caseId: string) {\r\n\t\t\tcommit(\"setCurrentCase\", null)\r\n\t\t\tcommit(\"setAudit\", [])\r\n\t\t\tcommit(\"clearPendingFiles\")\r\n\t\t\tcommit(\"setCurrentCaseFiles\", [])\r\n\t\t\tcommit(\"setCaseEvents\", null)\r\n\t\t},\r\n\t\tasync caseRefresh ({ commit, getters }) {\r\n\t\t\t// const currentCase = getters.getCurrentCase\r\n\t\t\t// if (currentCase.id) {\r\n\t\t\t// \tconst caseDetails = await api.caseDetails(currentCase.caseNumber)\r\n\r\n\t\t\t// \tcommit(\"updateCurrentCase\", caseDetails)\r\n\t\t\t// }\r\n\t\t},\r\n\t\tasync refreshCategories ({ commit, getters }) {\r\n\t\t\tawait api.categories().then((categories) => {\r\n\t\t\t\tcommit(\"setCategories\", categories)\r\n\t\t\t})\r\n\t\t},\r\n\t\tasync caseAuditLoad ({ commit, getters }, { lastUpdated }: { lastUpdated: string }) {\r\n\t\t\tconst currentCase = getters.getCurrentCase\r\n\t\t\tif (currentCase.id) {\r\n\t\t\t\tcommit(\"setAudit\", await api.history(currentCase.id, lastUpdated))\r\n\t\t\t}\r\n\t\t},\r\n\t\tasync caseAuditLoadAndAdd ({ commit, getters }, { lastUpdated, currentAudit }: { lastUpdated: string, currentAudit: CaseAudit[] | null }) {\r\n\t\t\tconst currentCase = getters.getCurrentCase\r\n\t\t\tif (currentCase.id) {\r\n\t\t\t\tconst newEntries = await api.history(currentCase.id!, lastUpdated)\r\n\t\t\t\tif (currentAudit && currentAudit.length > 0 && newEntries && newEntries.length > 0) {\r\n\t\t\t\t\tlet newHistory = [\r\n\t\t\t\t\t\t...newEntries,\r\n\t\t\t\t\t\t...currentAudit\r\n\t\t\t\t\t]\r\n\t\t\t\t\tcommit(\"setAudit\", newHistory)\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t},\r\n\t\tasync caseFilesLoad ({ commit, getters }) {\r\n\t\t\tconst currentCase = getters.getCurrentCase\r\n\t\t\tif (currentCase.id) {\r\n\t\t\t\tcommit(\"setCurrentCaseFiles\", await api.caseFiles(currentCase.id))\r\n\t\t\t}\r\n\t\t},\r\n\t\tasync uploadFiles ({ commit, getters, state, dispatch }, { fieldId, uploadFiles }) {\r\n\t\t\tif (!state.currentCase) {\r\n\t\t\t\treturn\r\n\t\t\t}\r\n\r\n\t\t\tconst caseId = state.currentCase.id\r\n\t\t\tcommit(\"addFilesAwaitingUpload\", uploadFiles)\r\n\t\t\tif (!caseId) {\r\n\t\t\t\treturn\r\n\t\t\t}\r\n\r\n\t\t\tstate.pendingUploadFiles.forEach((uploadFile: any) => {\r\n\t\t\t\tif (uploadFile.uploadRun) {\r\n\t\t\t\t\treturn\r\n\t\t\t\t}\r\n\t\t\t\tuploadFile.uploadRun = true\r\n\r\n\t\t\t\tconst uploadFormData = new FormData()\r\n\t\t\t\tuploadFormData.append(\"file\", uploadFile.fileData)\r\n\r\n\t\t\t\tuploadFile.uploading = true\r\n\t\t\t\tuploadFile.uploadPercentage = 0\r\n\r\n\t\t\t\tapi.uploadFiles(caseId, fieldId || uploadFile.fieldId, uploadFormData, (e: ProgressEvent) => {\r\n\t\t\t\t\tuploadFile.uploadPercentage = Math.round(e.loaded * 100 / e.total)\r\n\t\t\t\t},\r\n\t\t\t\t(errorMessage: string) => {\r\n\t\t\t\t\tuploadFile.failed = true\r\n\t\t\t\t\tuploadFile.error = errorMessage\r\n\t\t\t\t\tuploadFile.uploading = false\r\n\t\t\t\t\tuploadFile.success = false\r\n\r\n\t\t\t\t\tconsole.log(\"Failed.\")\r\n\t\t\t\t},\r\n\t\t\t\t() => {\r\n\t\t\t\t\tif (!uploadFile.failed) {\r\n\t\t\t\t\t\tuploadFile.uploading = false\r\n\t\t\t\t\t\tuploadFile.success = true\r\n\r\n\t\t\t\t\t\tcommit(\"setFileNoLongerAwaitingUpload\", uploadFile)\r\n\r\n\t\t\t\t\t\tsetTimeout(() => {\r\n\t\t\t\t\t\t\tdispatch(\"caseFilesLoad\")\r\n\t\t\t\t\t\t}, 10)\r\n\t\t\t\t\t}\r\n\t\t\t\t})\r\n\t\t\t})\r\n\t\t},\r\n\t\tasync entrySetKey ({ state }, { eventId, eventRecordId, key }: { eventId: string, eventRecordId: number, key: boolean }) {\r\n\t\t\tif (!state.currentCase) return\r\n\r\n\t\t\teventsApi.eventRecordMarkKey(state.currentCase!.id!, eventId, eventRecordId, key)\r\n\t\t},\r\n\t\tasync mediaSetKey ({ state }, { clipId, key }: { clipId: string, key: boolean }) {\r\n\t\t\tif (!state.currentCase) return\r\n\r\n\t\t\teventsApi.mediaMarkKey(state.currentCase!.id!, clipId, key)\r\n\t\t},\r\n\r\n\t\tsetFieldLockPolling ({ state, dispatch }, { caseDetails, fieldId }: { caseDetails: CaseDetails, fieldId: string }) {\r\n\t\t\tdispatch(\"cancelFieldLockPolling\", { caseDetails, fieldId })\r\n\r\n\t\t\tlet caseField: any\r\n\r\n\t\t\tif (caseDetails!.id) {\r\n\t\t\t\tcaseField = caseDetails.builtInFieldLocks ? caseDetails.builtInFieldLocks[fieldId] : caseDetails.fields[fieldId]\r\n\r\n\t\t\t\tlet counter = 0\r\n\t\t\t\tif (caseField) {\r\n\t\t\t\t\tstate.fieldLockInterval = setInterval(async () => {\r\n\t\t\t\t\t\tcounter++\r\n\t\t\t\t\t\tawait api.extendCaseFieldLock(caseDetails!.id, fieldId)\r\n\t\t\t\t\t}, state.fieldLockMilliseconds)\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\tcancelFieldLockPolling ({ state }, { caseDetails, fieldId }: { caseDetails: CaseDetails, fieldId: string }) {\r\n\t\t\tlet caseField: any\r\n\r\n\t\t\tif (caseDetails) {\r\n\t\t\t\tcaseField = caseDetails.builtInFieldLocks ? caseDetails.builtInFieldLocks[fieldId] : caseDetails.fields[fieldId]\r\n\r\n\t\t\t\tif (caseField) {\r\n\t\t\t\t\tclearInterval(state.fieldLockInterval)\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t},\r\n\t\tasync fetchAreaDictionary ({ commit }) {\r\n\t\t\tconst areaDictionary = await api.getAreaDictionary()\r\n\t\t\tcommit(\"setAreaDictionary\", areaDictionary)\r\n\t\t}\r\n\t}\r\n}\r\n","import { Module } from \"vuex\"\r\nimport { BaseState } from \"./index\"\r\nimport api from \"@/services/api\"\r\n\r\nexport interface FeaturesState {\r\n\topsZendeskHelpWidgetEnabled: Boolean;\r\n}\r\n\r\nexport const state: FeaturesState = {\r\n\topsZendeskHelpWidgetEnabled: false\r\n}\r\n\r\nexport const features: Module = {\r\n\tnamespaced: true,\r\n\tstate,\r\n\tgetters: {\r\n\t\tgetOpsZendeskHelpWidgetEnabled: state => state.opsZendeskHelpWidgetEnabled\r\n\t},\r\n\tmutations: {\r\n\t\tsetOpsZendeskHelpWidgetEnabled: (state: FeaturesState, widgetEnabled: boolean) => state.opsZendeskHelpWidgetEnabled = widgetEnabled\r\n\t},\r\n\tactions: {\r\n\t\tasync getOpsZendeskHelpWidgetEnabledSetting ({ commit, getters }) {\r\n\t\t\tawait api.getOpsZendeskHelpWidgetEnabledSetting().then((widgetEnabled) => {\r\n\t\t\t\tcommit(\"setOpsZendeskHelpWidgetEnabled\", widgetEnabled)\r\n\t\t\t})\r\n\t\t}\r\n\t}\r\n}\r\n","import { CasesNotification } from \"@/types/notification\"\r\nimport { AxiosInstance } from \"axios\"\r\nimport api from \"./api\"\r\n\r\nclass ApiNotification {\r\n\tprivate get axios (): AxiosInstance {\r\n\t\treturn api.getAxios() as AxiosInstance\r\n\t}\r\n\r\n\tpublic async notificationList (): Promise {\r\n\t\treturn (await this.axios.get(\"/notifications\")).data\r\n\t}\r\n\r\n\tpublic async notificationDelete (casesNotification: CasesNotification): Promise {\r\n\t\tawait this.axios.delete(`/notifications/${casesNotification.id}`)\r\n\t}\r\n\r\n\tpublic async clearAllNotifications (): Promise {\r\n\t\tawait this.axios.delete(\"/notifications/deleteAll\")\r\n\t}\r\n}\r\n\r\nconst apiNotification = new ApiNotification()\r\nexport default apiNotification\r\n","import { Subscription } from \"@/types/subscription\"\r\n\r\nimport api from \"@/services/api\"\r\n\r\nclass SubscriptionService {\r\n\tprivate get axios () { return api.getAxios() }\r\n\r\n\tpublic async getSubscriptionAsync (): Promise {\r\n\t\treturn (await this.axios.get(\"/subscription\")).data\r\n\t}\r\n}\r\n\r\nconst subscriptionService = new SubscriptionService()\r\nexport default subscriptionService\r\n","import Vue from \"vue\"\r\nimport Vuex, { ActionTree, MutationTree } from \"vuex\"\r\n\r\nimport createPersistedState from \"vuex-persistedstate\"\r\nimport createMutationsSharer, { DEFAULT_SHARING_KEY, DEFAULT_STORAGE_KEY } from \"./vuex-shared-mutations\"\r\n\r\nimport router from \"@/router\"\r\n\r\nimport \"@/scripts/array-operations\"\r\nimport setBrandingLink from \"@/scripts/brandingLink\"\r\n\r\nimport { cases } from \"./cases\"\r\nimport { features } from \"./features\"\r\nimport { setup } from \"./setup\"\r\n\r\nimport { CasesNotification, NotificationType, Team } from \"@/types\"\r\nimport { CurrentLogin, LoginRequest, LoginResultTenant, LoginState } from \"@/types/loginRequest\"\r\nimport { IntegrationSummary } from \"@/types/integration\"\r\nimport { UserSettings } from \"@/types/userSettings\"\r\nimport { Subscription } from \"@/types/subscription\"\r\n\r\nimport api from \"@/services/api\"\r\nimport apiTenant from \"@/services/api_Tenant\"\r\nimport apiNotification from \"@/services/api_Notification\"\r\nimport integrationApi from \"@/services/api_Integrations\"\r\nimport hubNotificationService from \"@/services/hubNotificationService\"\r\nimport apiRecordNameSettings from \"@/services/api_RecordNameSettings\"\r\nimport apiCaseNameSettings from \"@/services/api_CaseNameSettings\"\r\nimport subscriptionService from \"@/services/api/subscriptionService\"\r\nimport { CurrentUser, SystemUser, UserPreferences } from \"@/types/user\"\r\nimport { RawLocation, Route } from \"vue-router\"\r\nimport apiUserStatus from \"@/services/api_UserStatus\"\r\n\r\nimport { UserStatus } from \"@/types/userStatus\"\r\nimport { DefaultValueObject } from \"@/types/tenantSetting\"\r\nimport ConnectionStatus from \"@/types/connectionStatus\"\r\nimport { TenantFeatures } from \"@/types/tenantFeatures\"\r\nimport { isEqual } from \"lodash\"\r\nimport { getStylesheetName, isNewStyle } from \"@/utils/ThemeLoader\"\r\nimport { getCookieValue } from \"@/utils/CookieHelper\"\r\nimport { largeAreaSize } from \"@/constants/area\"\r\n\r\nVue.use(Vuex)\r\n\r\nexport interface StateRouter {\r\n\tcurrentRoute: {\r\n\t\tname?: string | null,\r\n\t\tpath: string,\r\n\t\tfullPath?: string\r\n\t},\r\n\tpush: (location: RawLocation) => void,\r\n\tresolve: (\r\n\t\tto: RawLocation,\r\n\t\tcurrent?: Route,\r\n\t\tappend?: boolean\r\n\t) => {\r\n\t\troute: Route,\r\n\t},\r\n\tgo: (n: number) => void\r\n}\r\n\r\nexport interface BaseState {\r\n\trouter: () => StateRouter,\r\n\tscreenWidth: number\r\n\tme: CurrentUser | null\r\n\tuserSettings: UserSettings | null\r\n\ttenantEnabledFeatures: { [key: string]: boolean }\r\n\tuserPictureUrls: { [key: string]: string }\r\n\tsubscription: Subscription | null\r\n\tteams: Team[]\r\n\trequestingUserPictureUrls: { [key: string]: Promise }\r\n\tsearch: string\r\n\tdarkMode: boolean\r\n\tbrowserNotificationsPermission: boolean\r\n\tnotifications: CasesNotification[]\r\n\tcaseName: string\r\n\trecordName: string\r\n\tredirectOnLogin: string | null\r\n\tintegrations: IntegrationSummary[],\r\n\ttenantSettings: { [key: string]: any} | null,\r\n\tselectTenants: LoginResultTenant[] | null,\r\n\tmanualLogout: boolean,\r\n\tloginState: LoginState,\r\n\tcurrentLogin: CurrentLogin | null,\r\n\tsystemUser: SystemUser | null,\r\n\tuserToast: string | null\r\n\tavailableUserStatuses: UserStatus[]\r\n\tmaterialLoaded: boolean,\r\n\tnotificationState: ConnectionStatus | null\r\n}\r\n\r\nexport const state: BaseState = {\r\n\trouter: () => router,\r\n\tscreenWidth: 0,\r\n\tme: null,\r\n\tuserSettings: null,\r\n\ttenantEnabledFeatures: {},\r\n\tuserPictureUrls: {},\r\n\tsubscription: null,\r\n\tteams: [],\r\n\trequestingUserPictureUrls: {},\r\n\tsearch: \"\",\r\n\tdarkMode: true,\r\n\tbrowserNotificationsPermission: false,\r\n\tnotifications: [],\r\n\tcaseName: \"Case\",\r\n\trecordName: \"Record\",\r\n\tredirectOnLogin: null,\r\n\tintegrations: [],\r\n\ttenantSettings: null,\r\n\tselectTenants: null,\r\n\tmanualLogout: false,\r\n\tloginState: LoginState.NotLoggedIn,\r\n\tcurrentLogin: null,\r\n\tsystemUser: null,\r\n\tuserToast: null,\r\n\tavailableUserStatuses: [],\r\n\tmaterialLoaded: false,\r\n\tnotificationState: null\r\n}\r\n\r\nexport const getters = {\r\n\tgetMe: (state: BaseState) => state.me,\r\n\tgetSubscription: (state: BaseState) => state.subscription,\r\n\thasSubscription: (state: BaseState) => !!(state.subscription && state.subscription.id > 0),\r\n\tgetUserSettings: (state: BaseState) => state.userSettings,\r\n\tgetScreenWidth: (state: BaseState) => state.screenWidth,\r\n\tgetMyId: (state: BaseState) => state.me ? state.me.id : null,\r\n\tgetUserPictureUrl: (state: BaseState) => (userId: string) => state.userPictureUrls[userId],\r\n\tgetTeams: (state: BaseState) => state.teams,\r\n\tgetTeamsById: (state: BaseState) => state.teams.toDictionary(\"id\"),\r\n\tgetSearch: (state: BaseState) => state.search,\r\n\tgetDarkMode: (state: BaseState) => state.darkMode,\r\n\tgetBrowserNotificationsPermission: (state: BaseState) => state.browserNotificationsPermission,\r\n\tgetNotifications: (state: BaseState) => state.notifications,\r\n\tgetCaseName: (state: BaseState) => state.me && state.me.caseName ? state.me.caseName : state.caseName,\r\n\tgetRecordName: (state: BaseState) => state.me && state.me.recordName ? state.me.recordName : state.recordName,\r\n\tgetHasIntegrations: (state: BaseState) => state.integrations.length > 0,\r\n\tgetTenantSettings: (state: BaseState) => state.tenantSettings,\r\n\tgetAvailableUserStatuses: (state: BaseState) => state.availableUserStatuses,\r\n\tgetUseScalingComponent: (state: BaseState) => {\r\n\t\tif (state.tenantSettings && \"checkTenantSize\" in state.tenantSettings && !!state.tenantSettings[\"checkTenantSize\"]) {\r\n\t\t\tconst checkTenantSize = state.tenantSettings[\"checkTenantSize\"] as DefaultValueObject\r\n\t\t\tif (checkTenantSize.isEnabled) {\r\n\t\t\t\treturn (state.me && state.me.tenantSize && state.me.tenantSize > 500)\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn false\r\n\t},\r\n\tgetUseAreaScaling: (state: BaseState) => {\r\n\t\tif (state.me?.tenantEnabledFeatures?.includes(TenantFeatures.AreaScaling)) {\r\n\t\t\treturn (state.me && state.me.tenantSize && state.me.tenantSize > largeAreaSize)\r\n\t\t}\r\n\t\treturn false\n\t},\r\n\tgetIsSuiteEnabled: (state: BaseState) => {\r\n\t\treturn state.me && state.me.tenantEnabledFeatures && state.me.tenantEnabledFeatures.includes(TenantFeatures.Suite)\r\n\t},\r\n\tgetShouldPreventSanitizationOfRichTextFieldCSVDownloads: (state: BaseState) => {\r\n\t\treturn state.me && state.me.tenantEnabledFeatures && state.me.tenantEnabledFeatures.includes(TenantFeatures.DisableRichTextInsightsCSVSanitization)\r\n\t},\r\n\tgetUseV2: (state: BaseState) => {\r\n\t\treturn (state.me?.tenantEnabledFeatures?.includes(TenantFeatures.EnableV2) ?? false) && !state.me?.preferences?.disableV2\r\n\t},\r\n\tisFeatureEnabled: (state: BaseState) => (featureKey: TenantFeatures) => {\r\n\t\treturn state.me?.tenantEnabledFeatures?.includes(featureKey) ?? false\r\n\t}\r\n}\r\n\r\nexport const actions: ActionTree = {\r\n\tasync startUp ({ state, commit, dispatch }) {\r\n\t\ttry {\r\n\t\t\t// Browser notifications permission\r\n\t\t\tconst storageItemResult: string | null = localStorage.getItem(\"browserNotificationsPermission\")\r\n\t\t\tif (storageItemResult && storageItemResult === \"true\") {\r\n\t\t\t\tstate.browserNotificationsPermission = true\r\n\t\t\t\tif (!(Notification.permission === \"granted\")) {\r\n\t\t\t\t\tlocalStorage.setItem(\"browserNotificationsPermission\", \"false\")\r\n\t\t\t\t\tstate.browserNotificationsPermission = false\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\tstate.browserNotificationsPermission = false\r\n\t\t\t}\r\n\t\t\tif (state.router().currentRoute.name !== \"login\") {\r\n\t\t\t\tdispatch(\"userInit\").then(() => {\r\n\t\t\t\t\tif (state.loginState === LoginState.Introduction) {\r\n\t\t\t\t\t\tconst currentRoute = state.router().currentRoute\r\n\t\t\t\t\t\tif (currentRoute.name !== \"login\") {\r\n\t\t\t\t\t\t\t// Go to login page to do introduction - ensure that after login, the user comes back here\r\n\t\t\t\t\t\t\tcommit(\"setLoginRedirect\", currentRoute.path)\r\n\t\t\t\t\t\t\tstate.router().push({ name: \"login\" })\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t})\r\n\t\t\t}\r\n\t\t} catch (err) {\r\n\t\t\tconsole.error(err)\r\n\t\t\tawait dispatch(\"setMe\", null)\r\n\t\t\tcommit(\"setUserSettings\", null)\r\n\r\n\t\t\tcommit(\"setNotificationState\", {\r\n\t\t\t\tconnected: false,\r\n\t\t\t\tableToReconnect: false\r\n\t\t\t})\r\n\t\t}\r\n\t},\r\n\r\n\tasync refreshUserInfo ({ commit, dispatch }) {\r\n\t\ttry {\r\n\t\t\tlet user = await api.me()\r\n\t\t\tawait dispatch(\"setMe\", user)\r\n\t\t} catch (err) {\r\n\t\t\tconsole.error(err)\r\n\t\t}\r\n\t},\r\n\r\n\tasync logIn ({ state, commit, dispatch }, loginDetails: LoginRequest) {\r\n\t\tconst loginResult = await api.login(loginDetails)\r\n\t\tif (!loginResult) {\r\n\t\t\treturn\r\n\t\t}\r\n\r\n\t\tcommit(\"setCurrentLogin\", {\r\n\t\t\tallowSystemAdmin: loginResult.systemAdmin || false,\r\n\t\t\trequiresMfaSetup: loginResult.requiresMfaSetup || false,\r\n\t\t\tsupportAccess: loginResult.supportAccess,\r\n\t\t\trequiresIntroduction: loginResult.requiresIntroduction\r\n\t\t})\r\n\r\n\t\tif (loginResult.loginTenants) {\r\n\t\t\tcommit(\"setSelectTenants\", loginResult.loginTenants)\r\n\t\t\tcommit(\"setLoginState\", LoginState.PendingTenantSelect)\r\n\t\t\treturn\r\n\t\t} else if (loginResult.requiresMfa) {\r\n\t\t\tcommit(\"setLoginState\", LoginState.PendingMfa)\r\n\t\t\treturn\r\n\t\t}\r\n\r\n\t\tdispatch(\"finishLogin\")\r\n\t},\r\n\r\n\tasync finishLogin ({ state, dispatch, commit }) {\r\n\t\tdispatch(\"userInit\", {\r\n\t\t\tloginState: state.currentLogin && state.currentLogin.requiresIntroduction\r\n\t\t\t\t? LoginState.Introduction\r\n\t\t\t\t: LoginState.LoggedIn,\r\n\t\t\tredirect: true })\r\n\t},\r\n\r\n\tasync finishIntroduction ({ state, dispatch, commit }) {\r\n\t\tcommit(\"setCurrentLogin\", {\r\n\t\t\t...state.currentLogin,\r\n\t\t\trequiresIntroduction: false\r\n\t\t})\r\n\t\tdispatch(\"loginRedirect\")\r\n\t},\r\n\r\n\tasync loginRedirect ({ state, dispatch, commit }) {\r\n\t\tstate.router().push({ path: (state.redirectOnLogin ? state.redirectOnLogin : \"/dashboard\") })\r\n\t\tcommit(\"setLoginRedirect\", null)\r\n\t},\r\n\r\n\tasync selectTenant ({ state, commit, dispatch }, { id, userId }: LoginResultTenant) {\r\n\t\tconst result = await apiTenant.selectTenant(id, userId)\r\n\t\tcommit(\"setSelectTenants\", null)\r\n\r\n\t\tif (state.currentLogin) {\r\n\t\t\t// Set requires intro on current login if needed\r\n\t\t\tcommit(\"setCurrentLogin\", {\r\n\t\t\t\t...state.currentLogin,\r\n\t\t\t\trequiresIntroduction: result.requiresIntroduction\r\n\t\t\t})\r\n\t\t}\r\n\r\n\t\tif (result.requiresMfa) {\r\n\t\t\tcommit(\"setLoginState\", LoginState.PendingMfa)\r\n\r\n\t\t\tif (state.router().currentRoute.name !== \"home\") {\r\n\t\t\t\tstate.router().push({ name: \"home\" })\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tawait dispatch(\"userInit\", {\r\n\t\t\t\tloginState: result.requiresIntroduction ? LoginState.Introduction : LoginState.LoggedIn,\r\n\t\t\t\tredirect: false\r\n\t\t\t})\r\n\r\n\t\t\tif (state.loginState === LoginState.Introduction) {\r\n\t\t\t\tif (state.router().currentRoute.name !== \"login\") {\r\n\t\t\t\t\t// Send to login page to do introduction\r\n\t\t\t\t\tstate.router().push({ name: \"login\" })\r\n\t\t\t\t}\r\n\t\t\t\treturn\r\n\t\t\t}\r\n\t\t\tcommit(\"setLoginState\", LoginState.LoggedIn)\r\n\t\t\tconst newPath = state.router().resolve({ path: (state.redirectOnLogin ? state.redirectOnLogin : \"/dashboard\") })\r\n\r\n\t\t\tif (newPath.route.fullPath === state.router().currentRoute.fullPath) {\r\n\t\t\t\t// You can't go to a route that your already on. However, we need to reload to update.\r\n\t\t\t\tstate.router().go(0)\r\n\t\t\t} else {\r\n\t\t\t\tstate.router().push({ path: (state.redirectOnLogin ? state.redirectOnLogin : \"/dashboard\") })\r\n\t\t\t}\r\n\t\t\tcommit(\"setLoginRedirect\", null)\r\n\t\t}\r\n\t},\r\n\r\n\tasync userInit ({ state, dispatch, commit },\r\n\t\t{ loginState, redirect }: {loginState: LoginState, redirect: boolean} = { loginState: LoginState.LoggedIn, redirect: false }) {\r\n\t\tcommit(\"setLoginState\", LoginState.Waiting)\r\n\t\tlet user = await api.me()\r\n\t\tif (!(user.tenantEnabledFeatures && user.tenantEnabledFeatures.includes(TenantFeatures.RedirectUserAfterInterceptedLogin))) {\r\n\t\t\tcommit(\"setLoginRedirect\", null)\r\n\t\t}\r\n\r\n\t\t// Redirecting from OAuth nulls the state.redirectOnLogin value, using existing cookie to set when redirect is enabled.\r\n\t\tlet attemptedURL = getCookieValue(\"attemptedUrl\")\r\n\t\tif ((user.tenantEnabledFeatures &&\r\n\t\t\t\tuser.tenantEnabledFeatures.includes(TenantFeatures.RedirectUserAfterInterceptedLogin) &&\r\n\t\t\t\tattemptedURL)) {\r\n\t\t\tlet path = attemptedURL.split(\"#\").pop()\r\n\t\t\tif (path) {\r\n\t\t\t\tstate.redirectOnLogin = path\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tconst introductionEnabled = user.tenantEnabledFeatures && user.tenantEnabledFeatures.includes(TenantFeatures.FirstTimeLogin)\r\n\t\tif (loginState === LoginState.Introduction) {\r\n\t\t\tif (!introductionEnabled) {\r\n\t\t\t\t// If we're not going to do the introduction, skip straight to logged in\r\n\t\t\t\tloginState = LoginState.LoggedIn\r\n\t\t\t}\r\n\t\t} else if (!user.hasDoneFirstLogin && introductionEnabled) {\r\n\t\t\t// Go to introduction. This state can be hit if the user logs in via SAML\r\n\t\t\tloginState = LoginState.Introduction\r\n\t\t}\r\n\r\n\t\tcommit(\"setLoginState\", loginState)\r\n\r\n\t\tif (redirect) {\r\n\t\t\tif (loginState !== LoginState.Introduction) {\r\n\t\t\t\tdispatch(\"loginRedirect\")\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (!user.tenantId) {\r\n\t\t\t// System user\r\n\t\t\tawait dispatch(\"connectNotifications\")\r\n\t\t\tcommit(\"setSystemUser\", user)\r\n\r\n\t\t\treturn\r\n\t\t}\r\n\r\n\t\tcommit(\"setSystemUser\", null)\r\n\t\tawait dispatch(\"setMe\", user)\r\n\t\tawait dispatch(\"loadSubscription\")\r\n\r\n\t\ttry {\r\n\t\t\tcommit(\"setUserSettings\", await api.userSettingsGet(user.id))\r\n\t\t\tcommit(\"setTeams\", await api.teamsGet())\r\n\t\t} catch (err) {\r\n\t\t\tconsole.error(err)\r\n\t\t}\r\n\r\n\t\tawait dispatch(\"connectNotifications\")\r\n\t\tawait dispatch(\"loadTenantSettings\")\r\n\r\n\t\tcommit(\"setup/setDataSources\", await api.dataSources())\r\n\r\n\t\tif (!state.me!.recordName) {\r\n\t\t\tawait dispatch(\"getRecordName\")\r\n\t\t}\r\n\t\tif (!state.me!.caseName) {\r\n\t\t\tawait dispatch(\"getCaseName\")\r\n\t\t}\r\n\r\n\t\tif (state.me && state.me.isAdmin) {\r\n\t\t\tintegrationApi.integrationsGetActive().then(integrations =>\r\n\t\t\t\tcommit(\"setIntegrations\", integrations))\r\n\t\t}\r\n\r\n\t\tawait dispatch(\"loadAvailableUserStatuses\")\r\n\t},\r\n\r\n\tasync logOut ({ commit, state, dispatch }, redirectBackOnLogin: boolean = false) {\r\n\t\thubNotificationService.closeConnection()\r\n\r\n\t\tconsole.log(\"Logging out\")\r\n\t\tawait dispatch(\"setMe\", null)\r\n\t\tcommit(\"setLoginState\", LoginState.NotLoggedIn)\r\n\t\tcommit(\"setSubscription\", null)\r\n\t\tcommit(\"setUserSettings\", null)\r\n\t\tcommit(\"setIntegrations\", [])\r\n\t\tcommit(\"setTenantSettings\", null)\r\n\t\tcommit(\"setSelectTenants\", null)\r\n\t\tcommit(\"setCurrentLogin\", null)\r\n\t\tcommit(\"setSystemUser\", null)\r\n\t\tcommit(\"setAvailableUserStatuses\", [])\r\n\r\n\t\tdispatch(\"cases/detailsUnload\")\r\n\t\tif (state.router().currentRoute.path !== \"/login\") {\r\n\t\t\tcommit(\"setLoginRedirect\", redirectBackOnLogin ? state.router().currentRoute.path : null)\r\n\t\t}\r\n\r\n\t\t(state as any).cases.viewsService.reset()\r\n\r\n\t\tif (state.router().currentRoute.name !== \"login\") {\r\n\t\t\tstate.router().push({ name: \"login\" })\r\n\t\t}\r\n\t},\r\n\r\n\tasync connectNotifications ({ commit, state, dispatch }) {\r\n\t\tif (hubNotificationService) {\r\n\t\t\thubNotificationService.closeConnection()\r\n\t\t}\r\n\r\n\t\t// Get existing user notification\r\n\t\tcommit(\"setNotifications\", await apiNotification.notificationList())\r\n\r\n\t\t// Open notifications connection\r\n\t\thubNotificationService.notLoggedIn = () => dispatch(\"logOut\")\r\n\t\thubNotificationService.connectionStateChanged = (newConnectionState: boolean) => commit(\"setNotificationState\", {\r\n\t\t\tconnected: newConnectionState,\r\n\t\t\tableToReconnect: true\r\n\t\t})\r\n\r\n\t\tconst connection = await hubNotificationService.openConnection()\r\n\t\tif (connection) {\r\n\t\t\tconnection.on(\"notifications\", (incomingNotifications: CasesNotification[]) => {\r\n\t\t\t\tconst newNotifications: CasesNotification[] = []\r\n\t\t\t\tincomingNotifications.forEach(incomingNotification => {\r\n\t\t\t\t\tif (state.notifications!.some(n => n.id === incomingNotification.id) === false) {\r\n\t\t\t\t\t\tnewNotifications.push(incomingNotification)\r\n\t\t\t\t\t}\r\n\t\t\t\t})\r\n\r\n\t\t\t\tif (newNotifications.length > 0) {\r\n\t\t\t\t\tconst existingNotifications: CasesNotification[] = state.notifications\r\n\t\t\t\t\tstate.notifications = []\r\n\t\t\t\t\tstate.notifications.push(...newNotifications)\r\n\t\t\t\t\tstate.notifications.push(...existingNotifications)\r\n\r\n\t\t\t\t\tcommit(\"setNotifications\", state.notifications)\r\n\r\n\t\t\t\t\t// Browser notifications\r\n\t\t\t\t\tif (state.browserNotificationsPermission && Notification.permission === \"granted\") {\r\n\t\t\t\t\t\tnewNotifications.reverse().forEach(async n => {\r\n\t\t\t\t\t\t\tconst options: NotificationOptions = {\r\n\t\t\t\t\t\t\t\tbody: n.message,\r\n\t\t\t\t\t\t\t\tdata: { casesNotification: n },\r\n\t\t\t\t\t\t\t\ticon: \"images/icons/sv mark color 48px.png\",\r\n\t\t\t\t\t\t\t\ttag: n.id\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tlet notification = new Notification(n.title, options)\r\n\t\t\t\t\t\t\tnotification.onclick = async function (_event) {\r\n\t\t\t\t\t\t\t\t// DS\r\n\t\t\t\t\t\t\t\tawait apiNotification.notificationDelete(notification.data.casesNotification)\r\n\r\n\t\t\t\t\t\t\t\t// Store\r\n\t\t\t\t\t\t\t\tstate.notifications.forEach((n, index, array) => {\r\n\t\t\t\t\t\t\t\t\tif (n.id === notification.data.casesNotification.id) {\r\n\t\t\t\t\t\t\t\t\t\tarray.splice(index, 1)\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t})\r\n\r\n\t\t\t\t\t\t\t\tcommit(\"setNotifications\", state.notifications)\r\n\r\n\t\t\t\t\t\t\t\t// Route\r\n\t\t\t\t\t\t\t\tif (notification.data.casesNotification.type === NotificationType.RecordAssignedToUser ||\r\n\t\t\t\t\t\t\t\t\tnotification.data.casesNotification.type === NotificationType.RecordUpdatedByAnotherUser) {\r\n\t\t\t\t\t\t\t\t\tconst newPath: string = `/cases/${notification.data.casesNotification.data}`\r\n\t\t\t\t\t\t\t\t\tif (state.router().currentRoute.path !== newPath) {\r\n\t\t\t\t\t\t\t\t\t\tstate.router().push({ path: newPath })\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t})\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t\tconnection.on(\"refresh\", async (refreshItemType: string) => {\r\n\t\t\t\tswitch (refreshItemType) {\r\n\t\t\t\t\tcase \"template\":\r\n\t\t\t\t\t\tcommit(\"cases/addPendingRefresh\", \"template\")\r\n\t\t\t\t\t\tawait dispatch(\"setMe\", await api.me())\r\n\t\t\t\t\t\tbreak\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t\tconnection.on(\"supportexpiresoon\", () => {\r\n\t\t\t\tcommit(\"setUserToast\", \"Support access will expire soon\")\r\n\t\t\t})\r\n\t\t\tconnection.on(\"userupdated\", async () => {\r\n\t\t\t\tconsole.log(\"User updated - refreshing ... \")\r\n\t\t\t\tawait dispatch(\"setMe\", await api.me())\r\n\t\t\t})\r\n\t\t\tconnection.on(\"logout\", () => {\r\n\t\t\t\tdispatch(\"logOut\")\r\n\t\t\t})\r\n\t\t}\r\n\t},\r\n\r\n\tasync loadSubscription ({ commit, state }) {\r\n\t\tif (state.me && state.me.billingEnabled) {\r\n\t\t\tcommit(\"setSubscription\", await subscriptionService.getSubscriptionAsync())\r\n\t\t}\r\n\t},\r\n\r\n\tasync subscriptionInvalid () {\r\n\t\tstate.router().push({ name: \"organization\" })\r\n\t},\r\n\r\n\tasync loadTeams ({ commit }) {\r\n\t\tcommit(\"setTeams\", await api.teamsGet())\r\n\t},\r\n\r\n\tasync loadUserPictureUrl ({ state }, userId: string) {\r\n\t\tif (!state.userPictureUrls[userId]) {\r\n\t\t\tif (state.requestingUserPictureUrls[userId] != null) {\r\n\t\t\t\treturn state.requestingUserPictureUrls[userId]\r\n\t\t\t}\r\n\t\t\treturn state.requestingUserPictureUrls[userId] = new Promise((resolve, reject) => {\r\n\t\t\t\tapi.userDetails(userId).then((userDetails: any) => {\r\n\t\t\t\t\tif (userDetails) {\r\n\t\t\t\t\t\tif (userDetails.pictureUrl) {\r\n\t\t\t\t\t\t\treturn resolve(state.userPictureUrls[userId] = userDetails.pictureUrl!)\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\treturn resolve(state.userPictureUrls[userId] = api.pictureUrl(userId))\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\treturn resolve(state.userPictureUrls[userId] = \"images/blank_user.png\")\r\n\t\t\t\t\t}\r\n\t\t\t\t})\r\n\t\t\t})\r\n\t\t} else {\r\n\t\t\treturn state.userPictureUrls[userId]\r\n\t\t}\r\n\t},\r\n\r\n\tasync requestBrowserNotificationsPermission ({ commit }) {\r\n\t\tNotification.requestPermission().then(function (permission) {\r\n\t\t\tif (permission === \"granted\") {\r\n\t\t\t\tlocalStorage.setItem(\"browserNotificationsPermission\", \"true\")\r\n\t\t\t\tcommit(\"setBrowserNotificationsPermission\", true)\r\n\t\t\t} else if (permission === \"denied\") {\r\n\t\t\t\tlocalStorage.setItem(\"browserNotificationsPermission\", \"false\")\r\n\t\t\t\tcommit(\"setBrowserNotificationsPermission\", false)\r\n\t\t\t}\r\n\t\t})\r\n\t},\r\n\r\n\tasync processNotification ({ commit }, notification: CasesNotification) {\r\n\t\t// DS\r\n\t\tawait apiNotification.notificationDelete(notification)\r\n\t\t// Store\r\n\t\tconst updatedNotifications = state.notifications.filter(n => n.id !== notification.id)\r\n\t\tcommit(\"setNotifications\", updatedNotifications)\r\n\r\n\t\t// Route\r\n\t\tif (notification.type === NotificationType.RecordAssignedToUser || notification.type === NotificationType.RecordUpdatedByAnotherUser) {\r\n\t\t\tconst newPath: string = `/cases/${notification.data}`\r\n\t\t\tif (state.router().currentRoute.path !== newPath) {\r\n\t\t\t\tstate.router().push({ path: newPath })\r\n\t\t\t}\r\n\t\t}\r\n\t},\r\n\r\n\tasync clearAllNotifications ({ commit }) {\r\n\t\tawait apiNotification.clearAllNotifications()\r\n\r\n\t\tcommit(\"setNotifications\", [])\r\n\t},\r\n\r\n\tasync setTheme ({ commit, dispatch }, darkModeTheme) {\r\n\t\tcommit(\"setDarkMode\", darkModeTheme)\r\n\t\tdispatch(\"applyTheme\", darkModeTheme)\r\n\t},\r\n\r\n\t/**\r\n\t * Sets the theme based on light/dark mode and if the tenant/user has the new interface enabled\r\n\t * @param darkModeTheme If we are using a dark theme\r\n\t */\r\n\tasync applyTheme ({ commit, rootGetters }, darkModeTheme) {\r\n\t\tconst themeLink = document.getElementById(\"lightdark\") as HTMLLinkElement\r\n\t\tif (themeLink) {\r\n\t\t\tconst currentTheme = themeLink.href\r\n\r\n\t\t\tif (isNewStyle(currentTheme) !== rootGetters.getUseV2) {\r\n\t\t\t\tthemeLink.href = \"\"\r\n\t\t\t}\r\n\r\n\t\t\tsetTimeout(() => {\r\n\t\t\t\tthemeLink.href = getStylesheetName(darkModeTheme, rootGetters.getUseV2)\r\n\t\t\t}, 50)\r\n\t\t}\r\n\r\n\t\tconst rootDiv = document.getElementById(\"app\")!\r\n\r\n\t\tif (darkModeTheme) {\r\n\t\t\trootDiv.classList.remove(\"light\")\r\n\t\t\trootDiv.classList.add(\"dark\")\r\n\t\t} else {\r\n\t\t\trootDiv.classList.remove(\"dark\")\r\n\t\t\trootDiv.classList.add(\"light\")\r\n\t\t}\r\n\t},\r\n\r\n\tasync resetBrandingLink () {\r\n\t\tsetBrandingLink(null)\r\n\t},\r\n\r\n\tasync getRecordName ({ commit }) {\r\n\t\tlet recordNameSettings = await apiRecordNameSettings.recordNameSettingsList()\r\n\t\tcommit(\"setRecordName\", recordNameSettings ? recordNameSettings.firstOrDefault(s => s.default).title : \"Record\")\r\n\t},\r\n\r\n\tasync getCaseName ({ commit }) {\r\n\t\tlet caseNameSettings = await apiCaseNameSettings.caseNameSettingsList()\r\n\t\tcommit(\"setCaseName\", caseNameSettings ? caseNameSettings.firstOrDefault(s => s.default).title : \"Case\")\r\n\t},\r\n\r\n\tasync loadTenantSettings ({ commit }) {\r\n\t\tconst tenantSettings = await apiTenant.getTenantSettings()\r\n\t\tcommit(\"setTenantSettings\", tenantSettings ? tenantSettings.toDictionaryMapValue(sv => sv.setting.key, sv => sv.value) : {})\r\n\t},\r\n\r\n\tasync loadAvailableUserStatuses ({ commit, state }) {\r\n\t\tconst availableStatuses = await apiUserStatus.userStatusList()\r\n\t\tcommit(\"setAvailableUserStatuses\", availableStatuses)\r\n\t},\r\n\r\n\tasync setCurrentUserStatus ({ commit, state }, newUserStatus: UserStatus) {\r\n\t\tif (!state.me) {\r\n\t\t\treturn\r\n\t\t}\r\n\t\tawait api.setUserStatus(state.me.id, newUserStatus.id!)\r\n\t\tcommit(\"setCurrentUserStatus\", newUserStatus)\r\n\t},\r\n\r\n\tasync clearCurrentUserStatus ({ commit, state }) {\r\n\t\tif (!state.me) {\r\n\t\t\treturn\r\n\t\t}\r\n\t\tawait api.clearUserStatus(state.me.id)\r\n\t\tcommit(\"clearCurrentUserStatus\")\r\n\t},\r\n\tasync updateUserPreferences ({ commit, state, dispatch }, userPreferences: UserPreferences) {\r\n\t\tif (!userPreferences || isEqual(userPreferences, (state.me) ? state.me.preferences : null)) {\r\n\t\t\treturn\r\n\t\t}\r\n\t\tconst successful = (await api.updateUserPreferences(userPreferences))\r\n\t\tif (successful) {\r\n\t\t\tcommit(\"setUserPreferences\", userPreferences)\r\n\t\t\tawait dispatch(\"setTheme\", state.darkMode)\r\n\t\t}\r\n\t},\r\n\t/**\r\n\t * Updates the currently logged-in user\r\n\t * Updates their theme, allowing the new interface to be loaded when the user logs in & cleared when they log out\r\n\t * @param me The user to update\r\n\t */\r\n\tasync setMe ({ commit, dispatch, state }, me: CurrentUser | null) {\r\n\t\tcommit(\"setMe\", me)\r\n\t\tawait dispatch(\"setTheme\", state.darkMode)\r\n\t}\r\n}\r\n\r\nexport const mutations: MutationTree = {\r\n\tsetMe: (state: BaseState, myDetails: CurrentUser) => {\r\n\t\tstate.me = myDetails\r\n\t\tstate.tenantEnabledFeatures = myDetails && myDetails.tenantEnabledFeatures\r\n\t\t\t? myDetails.tenantEnabledFeatures!.toDictionaryMapValue(f => f, f => true)\r\n\t\t\t: {}\r\n\t\tsetBrandingLink(myDetails ? myDetails.tenantId : null)\r\n\t},\r\n\tsetSubscription: (state: BaseState, subscription: Subscription) => state.subscription = subscription,\r\n\tsetUserSettings: (state: BaseState, userSettings: UserSettings) => {\r\n\t\tstate.userSettings = userSettings\r\n\t},\r\n\tsetAvailableUserStatuses: (state: BaseState, userStatuses: UserStatus[]) => {\r\n\t\tstate.availableUserStatuses = userStatuses\r\n\t},\r\n\tsetCurrentUserStatus: (state: BaseState, userStatus: UserStatus) => {\r\n\t\tif (state.me) {\r\n\t\t\tstate.me.currentStatus = userStatus\r\n\t\t}\r\n\t},\r\n\tclearCurrentUserStatus: (state: BaseState) => {\r\n\t\tif (state.me) {\r\n\t\t\tstate.me.currentStatus = undefined\r\n\t\t}\r\n\t},\r\n\tsetScreenWidth: (state: BaseState, width: number) => state.screenWidth = width,\r\n\tsetTeams: (state: BaseState, teams: Team[]) => state.teams = teams,\r\n\tsetSearch: (state: BaseState, search: string) => state.search = search,\r\n\tsetDarkMode: (state: BaseState, darkMode: boolean) => state.darkMode = darkMode,\r\n\tsetBrowserNotificationsPermission: (state: BaseState, browserNotificationsPermission: boolean) => state.browserNotificationsPermission = browserNotificationsPermission,\r\n\tsetNotifications: (state: BaseState, notifications: CasesNotification[]) => state.notifications = notifications,\r\n\tsetCaseName: (state: BaseState, caseName: string) => state.caseName = caseName,\r\n\tsetRecordName: (state: BaseState, recordName: string) => state.recordName = recordName,\r\n\tsetLoginRedirect: (state: BaseState, routeName: string | null) => state.redirectOnLogin = routeName,\r\n\tsetIntegrations: (state: BaseState, integrations: IntegrationSummary[]) => state.integrations = integrations,\r\n\tsetTenantSettings: (state: BaseState, tenantSettings: { [key: string]: any }) => state.tenantSettings = tenantSettings,\r\n\tsetSelectTenants: (state: BaseState, selectTenants: LoginResultTenant[] | null) => state.selectTenants = selectTenants,\r\n\tsetManualLogout: (state: BaseState, manualLogout: boolean) => state.manualLogout = manualLogout,\r\n\tsetLoginState: (state: BaseState, loginState: LoginState) => state.loginState = loginState,\r\n\tsetCurrentLogin: (state: BaseState, currentLogin: CurrentLogin | null) => state.currentLogin = currentLogin,\r\n\tsetSystemUser: (state: BaseState, systemUser: SystemUser) => state.systemUser = systemUser,\r\n\tsetUserToast: (state: BaseState, message: string | null) => state.userToast = message,\r\n\tsetMaterialLoaded: (state: BaseState, loaded: boolean) => state.materialLoaded = loaded,\r\n\tsetNotificationState: (state: BaseState, connectionState: ConnectionStatus | null) => state.notificationState = connectionState,\r\n\tsetUserPreferences: (state: BaseState, userPreferences: UserPreferences) => {\r\n\t\tif (!state.me) {\r\n\t\t\treturn\r\n\t\t}\r\n\t\tstate.me.preferences = userPreferences\r\n\t}\r\n}\r\n\r\nexport default new Vuex.Store({\r\n\tstate,\r\n\tgetters,\r\n\tmutations,\r\n\tactions,\r\n\tmodules: {\r\n\t\tcases,\r\n\t\tfeatures,\r\n\t\tsetup\r\n\t}\r\n})\r\n","import { AuditUser } from \"./auditUser\"\r\nimport { Field, Template } from \".\"\r\nimport { CaseColumn } from \"./caseColumns\"\r\n\r\nexport interface Schedule {\r\n id?: string,\r\n tenantId: string;\r\n title: string;\r\n\tfolder?: string | null;\r\n scheduleFreq: ScheduleFreq;\r\n dayOf?: number;\r\n\tdate?: Date;\r\n startTime: any;\r\n endTime: any;\r\n templateId: string\r\n templateTitle: string\r\n\ttimeZoneId: string\r\n fields: { [key: string]: any }\r\n fieldLabels: { [key: string]: any }\r\n\tminRunDate?: Date\r\n\tmaxRunDate?: Date\r\n\tcreated?: Date\r\n\tcreatedByUser?: AuditUser\r\n\tlastUpdated?: Date\r\n\tlastUpdatedByUser?: AuditUser\r\n\tbulkCreateForTeams?: string[]\r\n\tbulkCreateUserRole?: string\r\n\tbulkCreateSubRole?: string\r\n\tstatus?: ScheduleStatus\r\n}\r\n\r\nexport interface FolderSchedules {\r\n\tfolderTitle: string\r\n\texpanded: boolean\r\n\tisFolderType: true\r\n\tschedules: Schedule[]\r\n\tallowRowClick: true\r\n\tonlyEmitOnRowClick: true\r\n}\r\n\r\nexport interface ScheduleQueue {\r\n id?: string,\r\n\tschedule: Schedule,\r\n\tscheduleType: string,\r\n\tprocessAt: Date,\r\n\tprocessState: boolean,\r\n\tprocessBy: Date,\r\n\tcreatedAt: Date,\r\n\tcreatedBy: string\r\n}\r\n\r\nexport enum ScheduleFreq {\r\n Daily = 1,\r\n Weekly = 2,\r\n Monthly = 3,\r\n\tOnce = 4\r\n}\r\n\r\nexport enum DayOfWeek {\r\n Monday = 1,\r\n Tuesday = 2,\r\n Wednesday = 3,\r\n Thursday = 4,\r\n Friday = 5,\r\n Saturday = 6,\r\n Sunday =0\r\n}\r\n\r\nexport interface CalendarEvent {\r\n\tstart: string | Date\r\n\tend: string | Date\r\n\ttitle: string\r\n\thide?: boolean\r\n}\r\n\r\nconst DayOfMonth = [\r\n\t{\r\n\t\tid: 1,\r\n\t\ttitle: \"1\"\r\n\t},\r\n\t{\r\n\t\tid: 2,\r\n\t\ttitle: \"2\"\r\n\t},\r\n\t{\r\n\t\tid: 3,\r\n\t\ttitle: \"3\"\r\n\t},\r\n\t{\r\n\t\tid: 4,\r\n\t\ttitle: \"4\"\r\n\t},\r\n\t{\r\n\t\tid: 5,\r\n\t\ttitle: \"5\"\r\n\t},\r\n\t{\r\n\t\tid: 6,\r\n\t\ttitle: \"6\"\r\n\t},\r\n\t{\r\n\t\tid: 7,\r\n\t\ttitle: \"7\"\r\n\t},\r\n\t{\r\n\t\tid: 8,\r\n\t\ttitle: \"8\"\r\n\t},\r\n\t{\r\n\t\tid: 9,\r\n\t\ttitle: \"9\"\r\n\t},\r\n\t{\r\n\t\tid: 10,\r\n\t\ttitle: \"10\"\r\n\t},\r\n\t{\r\n\t\tid: 11,\r\n\t\ttitle: \"11\"\r\n\t},\r\n\t{\r\n\t\tid: 12,\r\n\t\ttitle: \"12\"\r\n\t},\r\n\t{\r\n\t\tid: 13,\r\n\t\ttitle: \"13\"\r\n\t},\r\n\t{\r\n\t\tid: 14,\r\n\t\ttitle: \"14\"\r\n\t},\r\n\t{\r\n\t\tid: 15,\r\n\t\ttitle: \"15\"\r\n\t},\r\n\t{\r\n\t\tid: 16,\r\n\t\ttitle: \"16\"\r\n\t},\r\n\t{\r\n\t\tid: 17,\r\n\t\ttitle: \"17\"\r\n\t},\r\n\t{\r\n\t\tid: 18,\r\n\t\ttitle: \"18\"\r\n\t},\r\n\t{\r\n\t\tid: 19,\r\n\t\ttitle: \"19\"\r\n\t},\r\n\t{\r\n\t\tid: 20,\r\n\t\ttitle: \"20\"\r\n\t},\r\n\t{\r\n\t\tid: 21,\r\n\t\ttitle: \"21\"\r\n\t},\r\n\t{\r\n\t\tid: 22,\r\n\t\ttitle: \"22\"\r\n\t},\r\n\t{\r\n\t\tid: 23,\r\n\t\ttitle: \"23\"\r\n\t},\r\n\t{\r\n\t\tid: 24,\r\n\t\ttitle: \"24\"\r\n\t},\r\n\t{\r\n\t\tid: 25,\r\n\t\ttitle: \"25\"\r\n\t},\r\n\t{\r\n\t\tid: 26,\r\n\t\ttitle: \"26\"\r\n\t},\r\n\t{\r\n\t\tid: 27,\r\n\t\ttitle: \"27\"\r\n\t},\r\n\t{\r\n\t\tid: 28,\r\n\t\ttitle: \"28\"\r\n\t},\r\n\t{\r\n\t\tid: 29,\r\n\t\ttitle: \"29\"\r\n\t},\r\n\t{\r\n\t\tid: 30,\r\n\t\ttitle: \"30\"\r\n\t},\r\n\t{\r\n\t\tid: 31,\r\n\t\ttitle: \"31\"\r\n\t}\r\n]\r\n\r\nexport { DayOfMonth }\r\n\r\nexport interface SortByOptions {\r\n\tcolumnKey: string,\r\n\tdescending: \"asc\" | \"desc\"\r\n}\r\n\r\nexport enum ScheduleStatus {\r\n\tOpen = 1,\r\n\tUpcoming = 2,\r\n\tClosed = 3\r\n}\r\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"contents\"},[(_vm.activeView)?_c('div',{staticClass:\"row card-header\",class:_vm.screenWidth >= 800 ? 'p-3' : 'p-2'},[_c('div',{staticClass:\"flex-grow-1\"},[_c('h4',{staticClass:\"col-12\"},[_vm._v(_vm._s(_vm.activeView.title))]),(_vm.searchFilter)?_c('span',{staticClass:\"col-12\"},[_vm._v(\" \"+_vm._s(_vm.caseFilteringTotal)+\" \")]):_c('span',{staticClass:\"col-12\"},[_vm._v(_vm._s(_vm.totalRecordsText)),_c('span',{staticClass:\"viewInformation\"},[_vm._v(\" (Only Showing Open Records/Cases)\")])])]),_c('div',{staticClass:\"flex-grow-1 header-input\",staticStyle:{\"max-width\":\"400px\"}},[_c('b-form-input',{attrs:{\"id\":\"input-title\",\"type\":\"text\",\"placeholder\":\"Filter\"},on:{\"input\":_vm.updateBySearch},model:{value:(_vm.searchFilter),callback:function ($$v) {_vm.searchFilter=$$v},expression:\"searchFilter\"}})],1)]):(_vm.enableFiltering)?_c('div',{staticClass:\"row justify-content-between\",staticStyle:{\"margin-right\":\"8px\"},attrs:{\"data-cy\":\"filter-cases\"}},[_c('div',{staticClass:\"col-4\",staticStyle:{\"margin-top\":\"7px\"}},[_c('h4',[_c('span',{staticClass:\"header-label\",staticStyle:{\"margin-left\":\"28px\"}},[_vm._v(\" \"+_vm._s(_vm.caseFilteringTotal)+\" \")])])]),_c('div',{staticClass:\"col-4\"},[_c('b-form-input',{staticStyle:{\"margin-bottom\":\"10px\",\"max-width\":\"400px\"},attrs:{\"id\":\"input-title\",\"type\":\"text\",\"placeholder\":\"Filter cases\",\"data-cy\":\"search-filter-input\"},on:{\"input\":_vm.updateBySearch},model:{value:(_vm.searchFilter),callback:function ($$v) {_vm.searchFilter=$$v},expression:\"searchFilter\"}})],1)]):_vm._e(),(!_vm.checkRecordsAvailable)?_c('div',[_c('div',{staticClass:\"alert alert-secondary m-t-10\"},[_c('div',{staticClass:\"p-2\"},[_c('h6',[_vm._v(\"No \"+_vm._s(_vm.getRecordName)+\"s found.\")]),_c('span',[_vm._v(\"There are no \"+_vm._s(_vm.getRecordName)+\"s matching your current view filter\")]),_c('br'),_c('a',{staticClass:\"btn btn-link m-t-10\",on:{\"click\":_vm.newCase}},[_vm._v(\"Create a new \"+_vm._s(_vm.getRecordName))])])])]):_c('div',{staticClass:\"case-table p-0\"},[_c('scrollbar',_vm._l((_vm.groupedCases),function(group){return _c('div',{key:group.id,staticClass:\"m-b-20\",attrs:{\"data-cy\":\"case-header\"}},[(group.label && _vm.fieldsDictionary[_vm.activeView.groupBy])?_c('div',{staticClass:\"case-header header-row card-header bg-secondary p-3 d-flex flex-row align-items-center\"},[_c('div',{staticClass:\"flex-grow-1\"},[(_vm.fieldsDictionary[_vm.activeView.groupBy].dataType === 'user')?_c('b',{staticClass:\"m-l-10 d-flex align-items-center\"},[_vm._v(\" \"+_vm._s(_vm.fieldsDictionary[_vm.activeView.groupBy].title)+\": \"),(group.value)?_c('user-image',{staticClass:\"m-l-10\",attrs:{\"showUserName\":true,\"size\":\"md\",\"user\":group.value}}):_c('span',{staticClass:\"m-l-10\"},[_vm._v(\" \"+_vm._s(group.label)+\" \")])],1):(_vm.fieldsDictionary[_vm.activeView.groupBy].dataType === 'user-role')?_c('b',{staticClass:\"m-l-10 d-flex align-items-center\"},[_vm._v(\" \"+_vm._s(_vm.fieldsDictionary[_vm.activeView.groupBy].title)+\": \"),(group.value && _vm.activeView.groupByOption !== 'team')?_c('user-image',{staticClass:\"m-l-10\",attrs:{\"showUserName\":true,\"size\":\"md\",\"user\":group.value}}):_c('span',{staticClass:\"m-l-10\"},[_vm._v(\" \"+_vm._s(group.label)+\" \")])],1):(_vm.fieldsDictionary[_vm.activeView.groupBy].dataType === 'checkbox')?_c('b',{staticClass:\"m-l-10\"},[_vm._v(\" \"+_vm._s(_vm.fieldsDictionary[_vm.activeView.groupBy].title)+\": \"+_vm._s(_vm.displayCheckBoxValue(group.label))+\" \")]):(_vm.fieldsDictionary[_vm.activeView.groupBy].dataType === 'date')?_c('b',{staticClass:\"m-l-10\"},[_vm._v(\" \"+_vm._s(_vm.fieldsDictionary[_vm.activeView.groupBy].title)+\": \"+_vm._s(_vm.displayDateOnlyFromISOString(group.label))+\" \")]):_c('b',{staticClass:\"m-l-10\"},[_vm._v(\" \"+_vm._s(_vm.fieldsDictionary[_vm.activeView.groupBy].title)+\": \"+_vm._s(group.label ? group.label : \"Not set\")+\" \")])]),(_vm.checkRecordsAvailable && group.totalRecords > _vm.perPage)?_c('div',[_c('b-pagination',{attrs:{\"total-rows\":group.totalRecords,\"per-page\":_vm.perPage,\"data-cy\":(\"table-pagination-\" + (group.value))},on:{\"input\":function($event){return _vm.onPageClick(group)}},model:{value:(group.currentPage),callback:function ($$v) {_vm.$set(group, \"currentPage\", $$v)},expression:\"group.currentPage\"}})],1):_vm._e()]):(_vm.checkRecordsAvailable && group.totalRecords > _vm.perPage)?_c('div',{staticClass:\"d-flex flex-row m-r-10 justify-content-end\"},[_c('b-pagination',{staticClass:\"m-b-0\",attrs:{\"total-rows\":group.totalRecords,\"per-page\":_vm.perPage,\"data-cy\":(\"table-pagination-\" + (group.value))},on:{\"input\":function($event){return _vm.onPageClick(group)}},model:{value:(group.currentPage),callback:function ($$v) {_vm.$set(group, \"currentPage\", $$v)},expression:\"group.currentPage\"}})],1):_vm._e(),_c('div',{staticClass:\"p-3\"},[_c('case-table',{staticClass:\"case-table-component\",class:_vm.shouldUseNewInterface ? 'v2': 'm-l-20',attrs:{\"columns\":_vm.columns,\"cases\":group.cases,\"currentPage\":group.currentPage,\"value\":group.value,\"perPage\":_vm.perPage,\"formattingRules\":_vm.activeView ? _vm.activeView.formattingRules : {},\"sortColumn\":_vm.getSortColumn(group.key),\"sortDesc\":_vm.getSortDesc(group.key),\"tableId\":group.key,\"data-cy\":(\"case-table-\" + (group.value))},on:{\"forecastClicked\":_vm.forecastClicked,\"sortDetails\":_vm.setSortDetails}})],1)])}),0)],1),(_vm.viewScheduleInstance)?_c('schedule-popup',{on:{\"scheduleUpdated\":_vm.scheduleUpdated},model:{value:(_vm.viewScheduleInstance),callback:function ($$v) {_vm.viewScheduleInstance=$$v},expression:\"viewScheduleInstance\"}}):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { Component, Vue, Prop, Emit, Watch } from \"vue-property-decorator\"\r\nimport { namespace, Getter, Action } from \"vuex-class\"\r\n\r\nimport { get } from \"lodash\"\r\n\r\nimport \"@/scripts/array-operations\"\r\nimport { caseColumns, CaseColumn } from \"@/types/caseColumns\"\r\n\r\nimport { Case, Field, DataType, CaseDetails, dataTypeByFieldType, CalculationDataTypeValue } from \"@/types\"\r\nimport { Team } from \"@/types/team\"\r\n\r\n// @ts-ignore\r\nimport VuePerfectScrollbar from \"vue-perfect-scrollbar\"\r\n\r\nimport moment from \"moment\"\r\n\r\nimport SkeletonLoader from \"../SkeletonLoader.vue\"\r\nimport CaseTable from \"@/components/CaseList/CaseTable.vue\"\r\n\r\nimport { View } from \"@/types/views/view\"\r\nimport { Severity } from \"@/types/severity\"\r\nimport { groupingFunctions } from \"@/types/dataType\"\r\n\r\nimport { formatDateMixin } from \"@/mixins/formatDateMixin\"\r\nimport { CalculationType } from \"@/types/Field\"\r\n\r\nimport UserImage from \"@/components/UserImage.vue\"\r\nimport { UserSettings } from \"@/types/userSettings\"\r\nimport { Schedule } from \"@/types/schedule\"\r\nimport { CurrentPageDetails } from \"@/types/paginatedRequest\"\r\nimport { ViewsService } from \"@/services/viewsService\"\r\nimport { CasesTable } from \"@/types/case\"\r\n\r\nconst caseStore = namespace(\"cases\")\r\nconst setupStore = namespace(\"setup\")\r\n\r\n@Component({\r\n\tcomponents: {\r\n\t\t\"scrollbar\": VuePerfectScrollbar,\r\n\t\t\"skeleton\": SkeletonLoader,\r\n\t\t\"case-table\": CaseTable,\r\n\t\t\"user-image\": UserImage,\r\n\t\t\"schedule-popup\": () => import(\"@/components/Config/Schedules/ScheduleInstance.vue\")\r\n\t}\r\n})\r\nexport default class CaseList extends Vue {\r\n\t@Prop({ type: String, default: \"\" })\r\n\tfilter!: string;\r\n\r\n\t@Prop()\r\n\tcases!: Case[] | null;\r\n\r\n\t@Prop()\r\n\tcasesTables!: CasesTable[] | null;\r\n\r\n\t@Prop()\r\n\tactiveView!: View | null;\r\n\r\n\t@Prop({ type: Boolean, default: true })\r\n\tenableFiltering!: boolean;\r\n\r\n\t@Prop({ type: Number, default: 20 })\r\n\tperPage!: number;\r\n\r\n\t@Prop({ type: Number, default: 0 })\r\n\ttotalRecords!: number\r\n\r\n\t@Prop({ default: null, required: false })\r\n\tgroupValue!: string | null\r\n\r\n\t@caseStore.State severities!: Severity[];\r\n\t@caseStore.State viewsService!: ViewsService;\r\n\r\n\t@Getter(\"getScreenWidth\")\r\n\tpublic screenWidth!: number;\r\n\r\n\t@Getter(\"getTeamsById\")\r\n\tpublic teamsById!: { [key: string]: Team };\r\n\r\n\t@Getter(\"getCaseName\") getCaseName!: string;\r\n\t@Getter(\"getRecordName\") getRecordName!: string;\r\n\r\n\t@Getter(\"getUserSettings\")\r\n\tpublic userSettings!: UserSettings;\r\n\r\n\t@Getter(\"getUseV2\")\r\n\tprivate readonly shouldUseNewInterface!: boolean;\r\n\r\n\t@setupStore.State fields!: Field[];\r\n\t@setupStore.Action loadFieldsIfUnloaded!: () => Promise;\r\n\r\n\tpublic fieldsDictionary: any = [];\r\n\r\n\tprivate searchFilter: string = \"\";\r\n\tprivate viewScheduleInstance: {\r\n\t\tschedule: Schedule,\r\n\t\tdate: Date\r\n\t} | null = null\r\n\r\n\tprivate groupPages: { [key: string]: CurrentPageDetails } = {};\r\n\tprivate debounceSearch: NodeJS.Timeout | null = null;\r\n\tprivate defaultColumnSort: string = \"\";\r\n\tprivate defaultSortDataType: DataType = DataType.none;\r\n\tprivate loadingPage: boolean = false;\r\n\r\n\tasync mounted () {\r\n\t\tawait this.loadFieldsIfUnloaded()\r\n\t\tthis.buildFieldsDictionary()\r\n\t\tthis.setupTablePages()\r\n\t}\r\n\r\n\tprivate setupTablePages (): void {\r\n\t\tif (!!this.casesTables && this.casesTables?.length > 0) {\r\n\t\t\tthis.groupPages = this.casesTables.reduce((acc, table) => {\r\n\t\t\t\ttable.value = table.value ?? \"none\"\r\n\r\n\t\t\t\tacc[table.value] = {\r\n\t\t\t\t\tvalue: table.value,\r\n\t\t\t\t\tpageNumber: 1,\r\n\t\t\t\t\tsortBy: this.defaultColumnSort,\r\n\t\t\t\t\tsortDesc: false\r\n\t\t\t\t}\r\n\t\t\t\treturn acc\r\n\t\t\t}, {} as { [key: string]: CurrentPageDetails })\r\n\t\t}\r\n\t}\r\n\r\n\tprivate buildFieldsDictionary (): void {\r\n\t\t// Build fields dictionary for quick access using case columns and custom fields\r\n\t\tcaseColumns.forEach((field: CaseColumn) => {\r\n\t\t\tthis.fieldsDictionary[field.key] = { title: field.label, dataType: field.dataType, displayKey: field.displayKey, group: field.group }\r\n\t\t})\r\n\t\tthis.fields.forEach((field: any) => {\r\n\t\t\tthis.fieldsDictionary[\"fields.\" + field.id] = {\r\n\t\t\t\ttitle: field.title,\r\n\t\t\t\tdataType: field.dataType,\r\n\t\t\t\tdisplayKey: field.dataType === \"user-role\" ? null : \"fields.\" + field.id + \".label\",\r\n\t\t\t\tfieldDataType: field.dataType === \"calculated\"\r\n\t\t\t\t\t? CalculationDataTypeValue[field.extensions!.calculationType as CalculationType]\r\n\t\t\t\t\t: dataTypeByFieldType[field.dataType!]\r\n\t\t\t\t\t\t? dataTypeByFieldType[field.dataType!]\r\n\t\t\t\t\t\t: null\r\n\t\t\t}\r\n\t\t})\r\n\t}\r\n\r\n\tpublic get columns (): any[] {\r\n\t\tif (!this.activeView) {\r\n\t\t\treturn [\r\n\t\t\t\t{\r\n\t\t\t\t\tkey: \"caseNumber\",\r\n\t\t\t\t\tlabel: \"Case Number\"\r\n\t\t\t\t},\r\n\t\t\t\t{\r\n\t\t\t\t\tkey: \"title\",\r\n\t\t\t\t\tlabel: \"Title\"\r\n\t\t\t\t},\r\n\t\t\t\t{\r\n\t\t\t\t\tkey: \"templateTitle\",\r\n\t\t\t\t\tlabel: \"Template\"\r\n\t\t\t\t},\r\n\t\t\t\t{\r\n\t\t\t\t\tkey: \"assigneeId\",\r\n\t\t\t\t\tlabel: \"Assignee\",\r\n\t\t\t\t\tdataType: \"user\"\r\n\t\t\t\t}\r\n\t\t\t]\r\n\t\t}\r\n\r\n\t\treturn this.activeView.columns.map(c => {\r\n\t\t\tif (c.startsWith(\"fields.\")) {\r\n\t\t\t\tlet fieldId = c.substring(7)\r\n\r\n\t\t\t\tif (fieldId.endsWith(\".label\")) {\r\n\t\t\t\t\tfieldId = fieldId.substring(0, fieldId.length - 6)\r\n\t\t\t\t}\r\n\r\n\t\t\t\tconst fieldColumn = this.fields.find(field => field.id === fieldId)\r\n\t\t\t\tif (fieldColumn) {\r\n\t\t\t\t\treturn {\r\n\t\t\t\t\t\tkey: c,\r\n\t\t\t\t\t\tfieldId: fieldColumn.id,\r\n\t\t\t\t\t\tlabel: fieldColumn.title,\r\n\t\t\t\t\t\tdataType: fieldColumn.dataType,\r\n\t\t\t\t\t\tfieldDataType: fieldColumn.dataType === \"calculated\"\r\n\t\t\t\t\t\t\t? CalculationDataTypeValue[fieldColumn.extensions!.calculationType as CalculationType]\r\n\t\t\t\t\t\t\t: dataTypeByFieldType[fieldColumn.dataType!]\r\n\t\t\t\t\t\t\t\t? dataTypeByFieldType[fieldColumn.dataType!]\r\n\t\t\t\t\t\t\t\t: null,\r\n\t\t\t\t\t\textensions: fieldColumn.extensions,\r\n\t\t\t\t\t\tdynamicField: true,\r\n\t\t\t\t\t\tlistLabel: \"label\"\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\tconst caseColumn = caseColumns.find(column => column.key === c)\r\n\t\t\t\tif (caseColumn) {\r\n\t\t\t\t\treturn {\r\n\t\t\t\t\t\tkey: caseColumn.key,\r\n\t\t\t\t\t\tdisplayKey: caseColumn.displayKey,\r\n\t\t\t\t\t\tlabel: caseColumn.label,\r\n\t\t\t\t\t\tdataType: caseColumn.dataType,\r\n\t\t\t\t\t\tfieldDataType: caseColumn.fieldDataType,\r\n\t\t\t\t\t\trounding: caseColumn.rounding,\r\n\t\t\t\t\t\tlistLabel: caseColumn.listLabel || \"title\",\r\n\t\t\t\t\t\tlistItemType: caseColumn.listItemType\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\treturn null\r\n\t\t}).filter(c => !!c)\r\n\t}\r\n\r\n\tpublic get checkRecordsAvailable (): boolean {\r\n\t\treturn this.casesTables?.some((c: CasesTable) => c.totalRecords > 0) ?? false\r\n\t}\r\n\r\n\tpublic get groupedCases (): any[] {\r\n\t\tif (!this.loadingPage) {\r\n\t\t\tthis.buildFieldsDictionary()\r\n\t\t}\r\n\r\n\t\tlet cases = this.cases!\r\n\r\n\t\tif (this.activeView && this.activeView.groupBy) {\r\n\t\t\tif (!this.fieldsDictionary[this.activeView!.groupBy]) {\r\n\t\t\t\tthis.activeView.groupBy = null\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (this.activeView && this.activeView.groupBy) {\r\n\t\t\tconst groupByKeyColumn = this.fieldsDictionary[this.activeView!.groupBy]\r\n\t\t\tconst groupBy = groupByKeyColumn && groupByKeyColumn.displayKey\r\n\t\t\t\t? groupByKeyColumn.displayKey\r\n\t\t\t\t: this.activeView!.groupBy\r\n\r\n\t\t\tconst caseUsers: { [key:string]: any } = {}\r\n\t\t\tlet getGroups: (record: any, groupByValue: any, cache: { [key:string]: any }, groupByOption?: string | null) => { key: string, label: string, value: any }[] =\r\n\t\t\t\tgroupByKeyColumn && groupByKeyColumn.group\r\n\t\t\t\t\t? groupByKeyColumn.group\r\n\t\t\t\t\t: groupByKeyColumn && groupingFunctions.hasOwnProperty(groupByKeyColumn.fieldDataType)\r\n\t\t\t\t\t\t? get(groupingFunctions, groupByKeyColumn.fieldDataType)\r\n\t\t\t\t\t\t: (record: any, groupByValue: any, cache, groupByOption: string) => {\r\n\t\t\t\t\t\t\treturn [\r\n\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\tkey: groupByValue || \"not set\",\r\n\t\t\t\t\t\t\t\t\tlabel: groupByValue || \"Not Set\",\r\n\t\t\t\t\t\t\t\t\tvalue: groupByValue\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t]\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\tconst groupLabels: { [key:string]: {\r\n\t\t\t\t\tlabel: string,\r\n\t\t\t\t\tvalue: any,\r\n\t\t\t\t\tsortValue?: any\r\n\t\t\t\t}\r\n\t\t\t} = {}\r\n\r\n\t\t\tif (!!cases && cases.length > 0) {\r\n\t\t\t\tconst caseGroups = cases\r\n\t\t\t\t\t.reduce((group: any, caseItem: any) => {\r\n\t\t\t\t\t\tlet groupKey = get(caseItem, groupBy)\r\n\t\t\t\t\t\tif (!groupKey) {\r\n\t\t\t\t\t\t\tgroupKey = get(caseItem, this.activeView!.groupBy!)\r\n\t\t\t\t\t\t\tif (groupKey && groupKey.value !== undefined) {\r\n\t\t\t\t\t\t\t\tgroupKey = groupKey.value\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tif (this.activeView && this.activeView.groupByDataType === DataType.dateTime) {\r\n\t\t\t\t\t\t\tconst value = groupKey\r\n\t\t\t\t\t\t\tgroupKey = groupKey\r\n\t\t\t\t\t\t\t\t? moment(groupKey).format(\"L\")\r\n\t\t\t\t\t\t\t\t: \"Not set\"\r\n\t\t\t\t\t\t\tgroupLabels[groupKey] = {\r\n\t\t\t\t\t\t\t\tlabel: groupKey,\r\n\t\t\t\t\t\t\t\tvalue,\r\n\t\t\t\t\t\t\t\tsortValue: value\r\n\t\t\t\t\t\t\t};\r\n\t\t\t\t\t\t\t(group[groupKey] = group[groupKey] || []).push(caseItem)\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\tconst itemGroups = getGroups(caseItem, groupKey, caseUsers, this.activeView!.groupByOption)\r\n\t\t\t\t\t\t\titemGroups.forEach(itemGroup => {\r\n\t\t\t\t\t\t\t\tgroupLabels[itemGroup.key] = {\r\n\t\t\t\t\t\t\t\t\tlabel: itemGroup.label,\r\n\t\t\t\t\t\t\t\t\tvalue: itemGroup.value\r\n\t\t\t\t\t\t\t\t};\r\n\t\t\t\t\t\t\t\t(group[itemGroup.key] = group[itemGroup.key] || []).push(caseItem)\r\n\t\t\t\t\t\t\t})\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\treturn group\r\n\t\t\t\t\t}, {})\r\n\t\t\t}\r\n\r\n\t\t\tif (this.casesTables && this.casesTables.length > 0) {\r\n\t\t\t\tthis.casesTables.forEach((table: CasesTable) => {\r\n\t\t\t\t\tconst caseItem = table.cases[0]\r\n\t\t\t\t\tlet groupKey = get(caseItem, groupBy)\r\n\t\t\t\t\tconst itemGroups = getGroups(table.cases[0], groupKey, caseUsers, this.activeView!.groupByOption)\r\n\t\t\t\t\titemGroups.forEach(itemGroup => {\n\t\t\t\t\t\tif (this.activeView && this.activeView.groupByDataType === DataType.dateTime) {\r\n\t\t\t\t\t\t\tif (this.activeView.groupBy?.includes(\"fields\")) {\r\n\t\t\t\t\t\t\t\tconst label = table.value !== \"none\" ? table.value : \"Not set\"\r\n\t\t\t\t\t\t\t\tgroupLabels[table.value] = {\r\n\t\t\t\t\t\t\t\t\tlabel,\r\n\t\t\t\t\t\t\t\t\tvalue: itemGroup.value\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\tgroupKey = groupKey\r\n\t\t\t\t\t\t\t\t\t? moment(groupKey).format(\"L\")\r\n\t\t\t\t\t\t\t\t\t: \"Not set\"\r\n\t\t\t\t\t\t\t\tgroupLabels[table.value] = {\r\n\t\t\t\t\t\t\t\t\tlabel: groupKey,\r\n\t\t\t\t\t\t\t\t\tvalue: itemGroup.value\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t} else if (this.activeView && this.activeView.groupByDataType === DataType.boolean) {\r\n\t\t\t\t\t\t\tgroupLabels[table.value] = {\r\n\t\t\t\t\t\t\t\tlabel: table.value,\r\n\t\t\t\t\t\t\t\tvalue: table.value\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\tgroupLabels[table.value] = {\r\n\t\t\t\t\t\t\t\tlabel: itemGroup.label,\r\n\t\t\t\t\t\t\t\tvalue: itemGroup.value\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t})\r\n\t\t\t\t})\r\n\t\t\t}\r\n\r\n\t\t\tconst res = this.casesTables?.map((table: CasesTable) => {\r\n\t\t\t\treturn Vue.observable({\r\n\t\t\t\t\tkey: table.value,\r\n\t\t\t\t\tlabel: groupLabels[table.value] ? groupLabels[table.value].label : table.value,\r\n\t\t\t\t\tvalue: groupLabels[table.value] ? groupLabels[table.value].value : table.value,\r\n\t\t\t\t\tsort: this.activeView!.groupBy === \"severityId\"\r\n\t\t\t\t\t\t? this.severityLevel(table.value)\r\n\t\t\t\t\t\t: groupLabels[table.value]\r\n\t\t\t\t\t\t\t? groupLabels[table.value].sortValue\r\n\t\t\t\t\t\t\t\t? groupLabels[table.value].sortValue\r\n\t\t\t\t\t\t\t\t: groupLabels[table.value].label\r\n\t\t\t\t\t\t\t: table.value,\r\n\t\t\t\t\tcases: table.cases,\r\n\t\t\t\t\ttotalRecords: table.totalRecords,\r\n\t\t\t\t\tcurrentPage: this.groupPages[table.value]?.pageNumber ?? 1\r\n\t\t\t\t})\r\n\t\t\t})\r\n\r\n\t\t\tthis.loadingPage = false\r\n\t\t\treturn res ?? []\r\n\t\t} else {\r\n\t\t\t// We expect this to be a single table\r\n\t\t\tif (this.casesTables?.length === 1) {\r\n\t\t\t\tconst table: CasesTable = this.casesTables[0]\r\n\r\n\t\t\t\tthis.loadingPage = false\r\n\t\t\t\treturn [Vue.observable({\r\n\t\t\t\t\tkey: table.value,\r\n\t\t\t\t\tlabel: null,\r\n\t\t\t\t\tcases: table.cases,\r\n\t\t\t\t\tcurrentPage: this.groupPages[table.value]?.pageNumber ?? 1,\r\n\t\t\t\t\tvalue: table.value,\r\n\t\t\t\t\tsortBy: this.defaultColumnSort,\r\n\t\t\t\t\tsortDesc: false,\r\n\t\t\t\t\ttotalRecords: table.totalRecords\r\n\t\t\t\t})]\r\n\t\t\t}\r\n\r\n\t\t\tthis.loadingPage = false\r\n\t\t\treturn []\r\n\t\t}\r\n\t}\r\n\tprivate severityLevel (severityTitle: string): number {\r\n\t\tconst severity = this.severities && this.severities.find(p => p.title === severityTitle)\r\n\t\tif (severity) {\r\n\t\t\treturn 9999 - severity.level\r\n\t\t} else {\r\n\t\t\treturn 0\r\n\t\t}\r\n\t}\r\n\r\n\t// Method to display checkbox value as string dependent on its value\r\n\tprivate displayCheckBoxValue (value: string): string {\r\n\t\tswitch (value.toLowerCase()) {\r\n\t\t\tcase \"null\":\r\n\t\t\tcase \"false\":\r\n\t\t\tcase \"no\":\r\n\t\t\t\treturn \"No\"\r\n\t\t\tcase \"undefined\":\r\n\t\t\t\treturn \"Not Specified\"\r\n\t\t\tdefault:\r\n\t\t\t\treturn \"Yes\"\r\n\t\t}\r\n\t}\r\n\r\n\tprivate newCase (): void {\r\n\t\tthis.$router.push({ path: \"/cases/New\" })\r\n\t}\r\n\r\n\tprivate getFieldLabel (fieldId: string, caseDetails: CaseDetails): string | null {\r\n\t\tif (!caseDetails.fields || !caseDetails.fields[fieldId]) {\r\n\t\t\treturn null\r\n\t\t}\r\n\r\n\t\treturn caseDetails.fields[fieldId].label\r\n\t}\r\n\r\n\tprivate get caseFilteringTotal (): string {\r\n\t\tconst casesTotal = this.totalRecordsAvailable()\r\n\t\tconst casesShown = this.totalRecordsShown()\r\n\t\tif (this.casesTables && this.casesTables.length > 0 && this.searchFilter && /\\S/.test(this.searchFilter)) {\r\n\t\t\tconst recordString = casesTotal === 1 ? \"record\" : \"records\"\r\n\t\t\treturn `Showing ${casesShown} of ${casesTotal} ${recordString}`\r\n\t\t} else if (this.cases) {\r\n\t\t\tconst recordString = casesShown === 1 ? \"record\" : \"records\"\r\n\t\t\treturn `${casesShown} ${recordString}`\r\n\t\t} else {\r\n\t\t\treturn \"\"\r\n\t\t}\r\n\t}\r\n\r\n\tforecastClicked (caseItem: { scheduling: any }) {\r\n\t\tconsole.log(\"CaseList\", \"forecastClicked\")\r\n\t\tif (!caseItem.scheduling) return\r\n\r\n\t\tthis.viewScheduleInstance = {\r\n\t\t\tschedule: {\r\n\t\t\t\tid: caseItem.scheduling.scheduleId,\r\n\t\t\t\ttitle: caseItem.scheduling.scheduleTitle\r\n\t\t\t} as Schedule,\r\n\t\t\tdate: new Date(caseItem.scheduling.instanceDate)\r\n\t\t}\r\n\r\n\t\tconsole.log(\"CaseList\", this.viewScheduleInstance)\r\n\t}\r\n\r\n\tscheduleUpdated (schedule: Schedule) {\r\n\t}\r\n\r\n\t@Watch(\"viewsService.activeViewId\", { deep: true })\r\n\tprivate onActiveViewIdChanged (newValue: string, oldValue: string) {\r\n\t\tif (newValue !== oldValue) {\r\n\t\t\tthis.searchFilter = \"\"\r\n\r\n\t\t\tthis.groupPages = {}\r\n\t\t\tif (!!this.casesTables && this.casesTables?.length > 0) {\r\n\t\t\t\tthis.casesTables.forEach((table: CasesTable) => {\r\n\t\t\t\t\tthis.groupPages[table.value] = {\r\n\t\t\t\t\t\tvalue: table.value,\r\n\t\t\t\t\t\tpageNumber: 1,\r\n\t\t\t\t\t\tsortBy: this.defaultColumnSort,\r\n\t\t\t\t\t\tsortDesc: false\r\n\t\t\t\t\t}\r\n\t\t\t\t})\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tprivate onPageClick (group: any): void {\r\n\t\tif (!this.loadingPage) {\r\n\t\t\tthis.loadingPage = true\r\n\r\n\t\t\t// Don't trigger a page change for the same page\r\n\t\t\tif (!!this.groupPages &&\r\n\t\t\t\t\t!!this.groupPages[group.key] &&\r\n\t\t\t\t\t!!this.groupPages[group.key].pageNumber &&\r\n\t\t\t\t\tthis.groupPages[group.key].pageNumber === group.currentPage) {\r\n\t\t\t\treturn\r\n\t\t\t}\r\n\r\n\t\t\tthis.groupPages[group.key] = {\r\n\t\t\t\tvalue: group.value,\r\n\t\t\t\tsortBy: this.groupPages[group.key]?.sortBy ?? this.defaultColumnSort,\r\n\t\t\t\tsortDesc: this.groupPages[group.key]?.sortDesc ?? false,\r\n\t\t\t\tsortDataType: this.groupPages[group.key]?.sortDataType ?? this.defaultSortDataType,\r\n\t\t\t\tpageNumber: group.currentPage ?? 1\r\n\t\t\t}\r\n\r\n\t\t\tconst update: CurrentPageDetails = {\r\n\t\t\t\tvalue: group.value,\r\n\t\t\t\tpageNumber: group.currentPage,\r\n\t\t\t\tpageSize: this.perPage,\r\n\t\t\t\tsearchTerm: this.searchFilter,\r\n\t\t\t\tsortBy: this.groupPages[group.key]?.sortBy,\r\n\t\t\t\tsortDesc: this.groupPages[group.key]?.sortDesc,\r\n\t\t\t\tsortDataType: this.groupPages[group.key]?.sortDataType,\r\n\t\t\t\ttableId: group.key ?? group.value\r\n\t\t\t}\r\n\r\n\t\t\tthis.$emit(\"loadNextPage\", update)\r\n\t\t}\r\n\t}\r\n\r\n\t@Emit(\"reloadInsightBySort\")\r\n\tprivate setSortDetails (details: CurrentPageDetails): CurrentPageDetails {\r\n\t\tthis.loadingPage = true\r\n\r\n\t\tconst key = details.tableId ?? details.value\r\n\r\n\t\tthis.groupPages[key] = {\r\n\t\t\tvalue: details.value,\r\n\t\t\tsortBy: details.sortBy,\r\n\t\t\tsortDesc: details.sortDesc,\r\n\t\t\tsortDataType: details.sortDataType,\r\n\t\t\tpageNumber: 1,\r\n\t\t\ttableId: details.tableId ? details.tableId : details.value\r\n\t\t}\r\n\r\n\t\treturn {\r\n\t\t\tvalue: this.groupPages[key]?.value,\r\n\t\t\tpageNumber: this.groupPages[details.value]?.pageNumber ?? 1,\r\n\t\t\tpageSize: this.perPage,\r\n\t\t\tsearchTerm: this.searchFilter,\r\n\t\t\tsortBy: this.groupPages[key]?.sortBy ?? this.defaultColumnSort,\r\n\t\t\tsortDesc: this.groupPages[key]?.sortDesc ?? false,\r\n\t\t\tsortDataType: this.groupPages[key]?.sortDataType,\r\n\t\t\ttableId: details.tableId ? details.tableId : details.value\r\n\t\t}\r\n\t}\r\n\r\n\tprivate updateBySearch () {\r\n\t\tif (this.debounceSearch) {\r\n\t\t\tclearTimeout(this.debounceSearch)\r\n\t\t\tthis.debounceSearch = null\r\n\t\t}\r\n\r\n\t\tthis.debounceSearch = setTimeout(() => {\r\n\t\t\tthis.loadingPage = true\r\n\t\t\tObject.keys(this.groupPages).forEach(key => {\r\n\t\t\t\tif (!!this.groupPages && !!this.groupPages[key]) {\r\n\t\t\t\t\tthis.groupPages[key].pageNumber = 1\r\n\t\t\t\t\tthis.groupPages[key].sortBy = \"\"\r\n\t\t\t\t\tthis.groupPages[key].sortDataType = DataType.none\r\n\t\t\t\t\tthis.groupPages[key].sortDesc = false\r\n\t\t\t\t}\r\n\t\t\t})\r\n\r\n\t\t\tthis.$emit(\"reloadInsightBySearch\", this.searchFilter)\r\n\t\t}, 500)\r\n\t}\r\n\r\n\tprivate getSortColumn (key: string): string {\r\n\t\treturn this.groupPages[key]?.sortBy ?? this.defaultColumnSort\r\n\t}\r\n\r\n\tprivate getSortDesc (key: string): boolean {\r\n\t\treturn this.groupPages[key]?.sortDesc ?? false\r\n\t}\r\n\r\n\tprivate totalRecordsAvailable (): number {\r\n\t\treturn this.casesTables?.reduce((acc, current) => {\r\n\t\t\treturn acc + current.totalRecords\r\n\t\t}, 0) ?? 0\r\n\t}\r\n\r\n\tprivate totalRecordsShown (): number {\r\n\t\treturn this.casesTables?.reduce((acc, current) => {\r\n\t\t\treturn acc + current.cases.length\r\n\t\t}, 0) ?? 0\r\n\t}\r\n\r\n\tprivate get totalRecordsText (): string {\r\n\t\tconst records = this.totalRecordsAvailable()\r\n\t\tconst recordString = records === 1 ? \"record\" : \"records\"\r\n\r\n\t\treturn `${records} ${recordString}`\r\n\t}\r\n}\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CaseList.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CaseList.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./CaseList.vue?vue&type=template&id=78093a0c&scoped=true&\"\nimport script from \"./CaseList.vue?vue&type=script&lang=ts&\"\nexport * from \"./CaseList.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./CaseList.vue?vue&type=style&index=0&id=78093a0c&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"78093a0c\",\n null\n \n)\n\nexport default component.exports","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CalculationTable.vue?vue&type=style&index=0&id=f33fc3c8&prod&lang=scss&scoped=true&\"","\r\nimport { getCookieValue } from \"@/utils/CookieHelper\"\r\nimport User, { UserIdWithStatus, UserIdWithStatusAndFields, UserPreferences, UserWithFields, AccountDetails, AuthSetup, AuthSubmit, ExtendedPermission, LabeledValue, CurrentUser } from \"@/types/user\"\r\nimport axios, { AxiosInstance } from \"axios\"\r\nimport store from \"@/store\"\r\n\r\nimport {\r\n\tCase, CaseDetails, Field, Template, TemplateDetails,\r\n\tDataDefinition,\r\n\tDataDefinitionWithFields,\r\n\tArea,\r\n\tTeam,\r\n\tAreaDetails,\r\n\tTreeNode,\r\n\tFieldSelectResult,\r\n\tCaseAudit,\r\n\tDataSourceItem,\r\n\tRule,\r\n\tStatus,\r\n\tSeverity,\r\n\tTimeZone,\r\n\tCaseSummary,\r\n\tCaseEmailContact,\r\n\tCaseEmailRequest\r\n} from \"@/types\"\r\nimport { ViewFullSummary } from \"@/types/views/viewSummary\"\r\n\r\nimport CaseFile from \"@/types/caseFile\"\r\nimport { LoginRequest, PasswordResetRequest, PasswordChangeRequest, LoginResult } from \"@/types/loginRequest\"\r\nimport { PagedData } from \"@/types/pagedData\"\r\nimport { SearchClause } from \"@/types/searchFilter\"\r\nimport { Tag } from \"@/types/tag\"\r\nimport { Schedule, ScheduleQueue } from \"@/types/schedule\"\r\nimport SignUpForm from \"@/types/SignupForm\"\r\nimport { DataType, DynamicParameter, DynamicParameterValue, Insight, InsightDetails, InsightSummary } from \"@/types/insights\"\r\nimport { RecordNameSettings } from \"@/types/recordNameSettings\"\r\nimport { CaseNameSettings } from \"@/types/caseNameSettings\"\r\nimport { MergeCaseFields } from \"@/types/mergeFieldTypes\"\r\nimport { Folder, FolderType } from \"@/types/folder\"\r\nimport { UserSettings } from \"@/types/userSettings\"\r\nimport { IntegrationOutOption } from \"@/types/integration\"\r\nimport { CalculatedResults, CalculationResults } from \"@/types/insights/calculatedResults\"\r\nimport { DataSource } from \"@/types/dataSourceItem\"\r\nimport { Clause } from \"@/types/view\"\r\nimport { GetCasesForViewRequest } from \"@/types/paginatedRequest\"\r\nimport { CasesTables } from \"@/types/case\"\r\nimport { AreaNodeDto } from \"@/types/areaNodeDto\"\r\n\r\nexport enum HttpStatusCode {\r\n\tOK = 200,\r\n\tCreated = 201,\r\n\tBadRequest = 400,\r\n\tUnauthorized = 401,\r\n\tSubscriptionInvalid = 402,\r\n\tNotFound = 404,\r\n\tTokenExpired = 498\r\n}\r\n\r\nexport enum XHRReadyState {\r\n\tUnsent = 0,\r\n\tOpened = 1,\r\n\tHeadersReceived = 2,\r\n\tLoading = 3,\r\n\tDone = 4\r\n}\r\n\r\nclass Api {\r\n\tprivate axios: AxiosInstance;\r\n\r\n\tconstructor () {\r\n\t\tthis.axios = axios.create({\r\n\t\t\tbaseURL: process.env.VUE_APP_HTTP_API_URI,\r\n\t\t\twithCredentials: true,\r\n\t\t\theaders: {\r\n\t\t\t\tAccept: \"application/json, text/javascript, */*; q=0.01\",\r\n\t\t\t\t\"Content-Type\": \"application/json\"\r\n\t\t\t}\r\n\t\t})\r\n\r\n\t\tthis.axios.interceptors.response.use(undefined, (error: any) => {\r\n\t\t\tif (error.response) {\r\n\t\t\t\tlet errorMessage =\r\n\t\t\t\t\terror.response.data && error.response.data.length > 2\r\n\t\t\t\t\t\t? error.response.data\r\n\t\t\t\t\t\t: \"\"\r\n\r\n\t\t\t\t// If User has a failed request, to account for accessing a url without login, store it for the API to access.\r\n\t\t\t\tif (!window.location.href.includes(\"login\")) {\r\n\t\t\t\t\tdocument.cookie = `attemptedUrl= ${window.location.href}`\r\n\t\t\t\t}\r\n\r\n\t\t\t\tswitch (error.response.status) {\r\n\t\t\t\t// 401 - Unauthorized error\r\n\t\t\t\t\tcase HttpStatusCode.Unauthorized: {\r\n\t\t\t\t\t\tconsole.log(\"Logging out due to 401\")\r\n\t\t\t\t\t\tstore.dispatch(\"logOut\", true).then()\r\n\t\t\t\t\t\tbreak\r\n\t\t\t\t\t}\r\n\t\t\t\t\t// 402 - Payment required thrown when subscriptions are invalid.\r\n\t\t\t\t\tcase HttpStatusCode.SubscriptionInvalid: {\r\n\t\t\t\t\t\tconsole.log(\"Invalid subscription detected, redirecting user to organization settings page\")\r\n\t\t\t\t\t\tstore.dispatch(\"subscriptionInvalid\", true).then()\r\n\t\t\t\t\t\tbreak\r\n\t\t\t\t\t}\r\n\t\t\t\t\t// 498 - Token expired\r\n\t\t\t\t\tcase HttpStatusCode.TokenExpired: {\r\n\t\t\t\t\t\tconsole.log(\"Logging out due to Anti-Forgery\")\r\n\t\t\t\t\t\tstore.dispatch(\"logOut\", true).then()\r\n\t\t\t\t\t\tbreak\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn Promise.reject(errorMessage)\r\n\t\t\t} else {\r\n\t\t\t\treturn Promise.reject(new Error(\"Unable to connect\"))\r\n\t\t\t}\r\n\t\t})\r\n\t}\r\n\r\n\tpublic getAxios (): any { return this.axios }\r\n\r\n\tpublic get baseUrl (): string {\r\n\t\treturn process.env.VUE_APP_HTTP_API_URI || \"\"\r\n\t}\r\n\r\n\tpublic pictureUrl (userId: string): string {\r\n\t\treturn `${process.env.VUE_APP_HTTP_API_URI}users/picture/${userId}`\r\n\t}\r\n\r\n\tpublic async clientIds (): Promise<{ [type: string]: string }> {\r\n\t\treturn (await this.axios.get(\"/oauth/clientIds\")).data\r\n\t}\r\n\r\n\tpublic async login (data: LoginRequest): Promise {\r\n\t\treturn (await this.axios.post(\"/login\", data)).data\r\n\t}\r\n\tpublic async requestPasswordReset (data: PasswordResetRequest) {\r\n\t\tawait this.axios.post(\"/login/sendResetPassword\", data)\r\n\t}\r\n\tpublic async resetPassword (data: PasswordChangeRequest) {\r\n\t\tawait this.axios.post(\"/login/resetPassword\", data)\r\n\t}\r\n\tpublic async logout () {\r\n\t\tawait this.axios.get(\"/login/logout\")\r\n\t}\r\n\r\n\tpublic async checkIfUserIsSuite (email: string): Promise {\r\n\t\treturn (await this.axios.get(`/login/isAccountSuite?email=${encodeURIComponent(email)}`)).data\r\n\t}\r\n\r\n\tpublic async accountDetails (userId: string | null = null): Promise {\r\n\t\treturn userId\r\n\t\t\t? (await this.axios.get(`/users/userAccount/${userId}`)).data\r\n\t\t\t: (await this.axios.get(\"/users/userAccount\")).data\r\n\t}\r\n\r\n\tpublic async setMfa (mfaParams: AuthSetup) {\r\n\t\tawait this.axios.put(\"/users/mfa\", mfaParams)\r\n\t}\r\n\r\n\tpublic async setSystemMfa (mfaParams: AuthSetup) {\r\n\t\tawait this.axios.put(\"/users/mfa/admin\", mfaParams)\r\n\t}\r\n\r\n\tpublic async removeMfa (mfaParams: AuthSubmit) {\r\n\t\tawait this.axios.post(\"/users/mfa/remove\", mfaParams)\r\n\t}\r\n\r\n\tpublic async removeMfaForUser (userId: string) {\r\n\t\tawait this.axios.post(`/users/mfa/remove/${userId}`)\r\n\t}\r\n\r\n\tpublic async submitMfa (mfaParams: AuthSubmit) {\r\n\t\tawait this.axios.post(\"/login/mfa\", mfaParams)\r\n\t}\r\n\r\n\tpublic async submitSystemMfa (mfaParams: AuthSubmit) {\r\n\t\tawait this.axios.post(\"/login/mfa/admin\", mfaParams)\r\n\t}\r\n\r\n\tpublic async me (): Promise {\r\n\t\treturn (await this.axios.get(\"/users/me\")).data\r\n\t}\r\n\r\n\tpublic async adEnabled (): Promise {\r\n\t\treturn (await this.axios.get(\"/users/adEnabled\")).data\r\n\t}\r\n\r\n\tpublic async updateUserPreferences (userPreferences: UserPreferences): Promise {\r\n\t\treturn (await this.axios.post(\"/users/updatePreferences\", userPreferences)).status === HttpStatusCode.OK\r\n\t}\r\n\r\n\tpublic async allSearch (searchTerm: string, includeUsers: boolean = true): Promise {\r\n\t\treturn (await this.axios.get(\"/search/simple\", {\r\n\t\t\tparams: {\r\n\t\t\t\tsearchTerm: searchTerm,\r\n\t\t\t\tincludeUsers: includeUsers\r\n\t\t\t}\r\n\t\t})).data\r\n\t}\r\n\tpublic async searchAdvanced (searchType: string, searchTerm: string, searchClauses: SearchClause[], pageNumber: number): Promise> {\r\n\t\tconst payload = {\r\n\t\t\tsearchTerm,\r\n\t\t\tclauses: searchClauses\r\n\t\t}\r\n\r\n\t\treturn (await this.axios.post(`/search/advanced/${searchType}`, payload, {\r\n\t\t\tparams: {\r\n\t\t\t\tpageNumber\r\n\t\t\t}\r\n\t\t})).data\r\n\t}\r\n\r\n\tpublic async caseViews (viewId: string | null, searchTerm: string = \"\", id: string = \"\"): Promise {\r\n\t\treturn (await this.axios.get(\"/views/summary\", {\r\n\t\t\tparams: {\r\n\t\t\t\tactiveViewId: viewId,\r\n\t\t\t\ttimeZone: Intl.DateTimeFormat().resolvedOptions().timeZone,\r\n\t\t\t\tsearchTerm: searchTerm,\r\n\t\t\t\tid: id\r\n\t\t\t}\r\n\t\t})).data\r\n\t}\r\n\r\n\tpublic async casesForView (request: GetCasesForViewRequest): Promise> {\r\n\t\treturn (await this.axios.get(\"/views/cases\", {\r\n\t\t\tparams: {\r\n\t\t\t\tviewId: request.viewId,\r\n\t\t\t\ttimeZone: request.timeZone,\r\n\t\t\t\tpage: request.page,\r\n\t\t\t\tpageSize: request.pageSize,\r\n\t\t\t\tsearchTerm: request.searchTerm ?? \"\",\r\n\t\t\t\tsortBy: request.sortBy,\r\n\t\t\t\tsortDesc: request.sortDesc,\r\n\t\t\t\tsortDataType: request.sortDataType,\r\n\t\t\t\ttableId: request.tableId,\r\n\t\t\t\tid: request.id\r\n\t\t\t}\r\n\t\t})).data\r\n\t}\r\n\r\n\tpublic async caseViewsGet () {\r\n\t\tlet data = await this.axios.get(\"/views\")\r\n\t\treturn data.data\r\n\t}\r\n\r\n\tpublic async caseUpdateView (view: any) {\r\n\t\tawait this.axios.post(\"/views/updateView\", view)\r\n\t}\r\n\r\n\tpublic async caseDeleteView (view: any) {\r\n\t\tawait this.axios.delete(`/views/${view.id}`)\r\n\t}\r\n\r\n\tpublic async foldersGet (folderType: FolderType): Promise {\r\n\t\treturn (await this.axios.get(\"/folders\", {\r\n\t\t\tparams: {\r\n\t\t\t\tfolderType\r\n\t\t\t}\r\n\t\t})).data\r\n\t}\r\n\r\n\tpublic async folderSet (folder: Folder): Promise {\r\n\t\treturn (await this.axios.put(\"/folders\", folder)).data\r\n\t}\r\n\r\n\tpublic async folderDelete (folder: Folder): Promise {\r\n\t\tthis.axios.delete(`/folders/${folder.id}`)\r\n\t}\r\n\r\n\tpublic async folderUsage (folder: Folder): Promise<{ id: string, label: string }[]> {\r\n\t\treturn (await this.axios.get(\"/folders/usage\", {\r\n\t\t\tparams: {\r\n\t\t\t\tfolderType: folder.folderType,\r\n\t\t\t\ttitle: folder.title\r\n\t\t\t}\r\n\t\t})).data\r\n\t}\r\n\r\n\tpublic async caseList (\r\n\t\tviewId: string | null = null,\r\n\t\tpageNumber: number = 1,\r\n\t\tpageSize: number = 20,\r\n\t\tcacheId: string = \"\",\r\n\t\tsearchTerm: string = \"\"\r\n\t): Promise {\r\n\t\tconst response = await this.axios.get(\"/cases/list\", { params: {\r\n\t\t\tviewId,\r\n\t\t\ttimeZone: Intl.DateTimeFormat().resolvedOptions().timeZone,\r\n\t\t\tpageSize,\r\n\t\t\tpageNumber,\r\n\t\t\tcacheId,\r\n\t\t\tsearchTerm\r\n\t\t} })\r\n\t\treturn response.data\r\n\t}\r\n\r\n\tpublic async caseListTable (\r\n\t\trequest: GetCasesForViewRequest\r\n\t): Promise {\r\n\t\treturn (await this.axios.get(\"/cases/table\", {\r\n\t\t\tparams: {\r\n\t\t\t\tviewId: request.viewId,\r\n\t\t\t\ttimeZone: request.timeZone,\r\n\t\t\t\tpage: request.page,\r\n\t\t\t\tpageSize: request.pageSize,\r\n\t\t\t\tsearchTerm: request.searchTerm ?? \"\",\r\n\t\t\t\tsortBy: request.sortBy,\r\n\t\t\t\tsortDesc: request.sortDesc,\r\n\t\t\t\tsortDataType: request.sortDataType,\r\n\t\t\t\ttableId: request.tableId,\r\n\t\t\t\tid: request.id\r\n\t\t\t}\r\n\t\t})).data\r\n\t}\r\n\r\n\tpublic async caseDetails (caseNumber: string): Promise {\r\n\t\treturn (await this.axios.get(\"/cases/details\", { params: { caseNumber: caseNumber } })).data\r\n\t}\r\n\r\n\tpublic async casesBetween (start: Date, end: Date): Promise {\r\n\t\treturn (await this.axios.get(\"/cases/between\", {\r\n\t\t\tparams: {\r\n\t\t\t\tstart: start.toISOString(),\r\n\t\t\t\tend: end.toISOString()\r\n\t\t\t}\r\n\t\t})).data\r\n\t}\r\n\r\n\tpublic async saveCase (caseDetails: CaseDetails): Promise {\r\n\t\tconst caseId = (await this.axios.post(\"/cases\", caseDetails)).data\r\n\t\treturn caseId\r\n\t}\r\n\r\n\tpublic async recordToCase (caseId: string) {\r\n\t\tawait this.axios.put(`/cases/makeCase/${caseId}`)\r\n\t}\r\n\r\n\tpublic async markAsSensitive (caseId: string) {\r\n\t\tawait this.axios.put(`/cases/markSensitive/${caseId}`)\r\n\t}\r\n\r\n\tpublic async close (caseId: string) {\r\n\t\tawait this.axios.get(`/cases/close/${caseId}`)\r\n\t}\r\n\r\n\tpublic async deleteCase (caseId: string) {\r\n\t\tawait this.axios.delete(`/cases/delete/${caseId}`)\r\n\t}\r\n\r\n\tpublic async saveCaseProperty (caseId: string, propertyName: string, value: string | null): Promise {\r\n\t\tawait this.axios.post(`/cases/property/${caseId}/${propertyName}`, { value })\r\n\t}\r\n\r\n\tpublic async saveCaseField (caseId: string, fieldId: string, value: string | null, inProgressUpdate: boolean = false): Promise {\r\n\t\tawait this.axios.post(`/cases/field/${caseId}/${fieldId}/${inProgressUpdate}`, { value })\r\n\t}\r\n\r\n\tpublic async updateCaseDataField (caseId: string, fieldId: string, action: number, value: any): Promise {\r\n\t\tawait this.axios.post(`/cases/field/${caseId}/${fieldId}/item`, value, {\r\n\t\t\tparams: {\r\n\t\t\t\tupdateType: action\r\n\t\t\t}\r\n\t\t})\r\n\t}\r\n\r\n\tpublic async selectCaseField (caseId: string, fieldId: string, selected: boolean): Promise {\r\n\t\treturn (await this.axios.put(`/cases/fieldselect/${caseId}/${fieldId}/${selected}`)).data\r\n\t}\r\n\r\n\tpublic async extendCaseFieldLock (caseId: string, fieldId: string): Promise {\r\n\t\treturn (await this.axios.post(`/cases/extendlock/${caseId}/${fieldId}`)).data\r\n\t}\r\n\r\n\tpublic async setFieldCalculated (caseId: string, fieldId: string, calculated: boolean): Promise {\r\n\t\tawait this.axios.put(`/cases/override-calculated/${caseId}/${fieldId}/${calculated}`)\r\n\t}\r\n\r\n\tpublic async replaceStatusOnCaseList (existingStatusId: string | null, replacementStatusId: string): Promise {\r\n\t\tawait this.axios.put(`/cases/replaceStatus/${existingStatusId}/${replacementStatusId}`)\r\n\t}\r\n\r\n\tpublic async replaceSeverityOnCaseList (existingSeverityId: string | null, replacementSeverityId: string): Promise {\r\n\t\tawait this.axios.put(`/cases/replaceSeverity/${existingSeverityId}/${replacementSeverityId}`)\r\n\t}\r\n\r\n\tpublic async mergeCases (fromCaseId: string, toCaseId: string, mergeCaseModel: MergeCaseFields): Promise {\r\n\t\tawait this.axios.post(`/cases/merge/${fromCaseId}/${toCaseId}`, mergeCaseModel)\r\n\t}\r\n\r\n\tpublic async areas (): Promise[]> {\r\n\t\treturn (await this.axios.get(\"/areas\")).data\r\n\t}\r\n\tpublic async areaList (): Promise {\r\n\t\treturn (await this.axios.get(\"/areas/list\")).data\r\n\t}\r\n\tpublic async area (areaId: string): Promise {\r\n\t\treturn (await this.axios.get(`/areas/${areaId}`)).data\r\n\t}\r\n\tpublic async areaSave (newArea: AreaDetails): Promise {\r\n\t\treturn (await this.axios.post(\"/areas\", newArea)).data\r\n\t}\r\n\tpublic async areaDelete (deleteArea: AreaDetails): Promise {\r\n\t\tawait this.axios.delete(`/areas/${deleteArea.id}`)\r\n\t}\r\n\r\n\tpublic async getAreaDictionary (): Promise> {\r\n\t\tconst { data } = await this.axios.get(\"/areas/dictionary\")\r\n\t\treturn data\r\n\t}\r\n\r\n\tpublic async searchAreaTree (\r\n\t\tquery: string\r\n\t): Promise {\r\n\t\tconst response = await this.axios.get(\"/areas/tree/search\", {\r\n\t\t\tparams: { query }\r\n\t\t})\r\n\t\treturn response.data\r\n\t}\r\n\r\n\tpublic async getAreaTreeNode (\r\n\t\tareaId: string\r\n\t): Promise {\r\n\t\tconst response = await this.axios.get(\r\n\t\t\t`/areas/${areaId}`\r\n\t\t)\r\n\t\treturn response.data\r\n\t}\r\n\r\n\tpublic async getFullAreaTree (): Promise {\r\n\t\tconst response = await this.axios.get(\r\n\t\t\t\"/areas/fullAreaTree\"\r\n\t\t)\r\n\t\treturn response.data\r\n\t}\r\n\r\n\tpublic async severities (): Promise {\r\n\t\treturn (await this.axios.get(\"/severity\")).data\r\n\t}\r\n\r\n\tpublic async isSeverityInUse (severityId: string): Promise {\r\n\t\treturn (await this.axios.get(`/severity/${severityId}/in-use`)).data\r\n\t}\r\n\r\n\tpublic async statuses (): Promise {\r\n\t\treturn (await this.axios.get(\"/status\")).data\r\n\t}\r\n\r\n\tpublic async isStatusInUse (statusId: string): Promise {\r\n\t\treturn (await this.axios.get(`/status/${statusId}/in-use`)).data\r\n\t}\r\n\r\n\tpublic async recordNameSettings (): Promise {\r\n\t\treturn (await this.axios.get(\"/recordNameSettings\")).data\r\n\t}\r\n\r\n\tpublic async caseNameSettings (): Promise {\r\n\t\treturn (await this.axios.get(\"/caseNameSettings\")).data\r\n\t}\r\n\r\n\tpublic async categories (): Promise {\r\n\t\treturn (await this.axios.get(\"/templates\")).data\r\n\t}\r\n\r\n\tpublic async templatesWithFields () : Promise {\r\n\t\treturn (await this.axios.get(\"/templates/templatesWithFields\")).data\r\n\t}\r\n\r\n\tpublic async categoryFields (categoryId: string): Promise {\r\n\t\treturn (await this.axios.get(`/templates/templateFields/${categoryId}`)).data\r\n\t}\r\n\r\n\tpublic async templateDetails (categoryId: string): Promise {\r\n\t\treturn (await this.axios.get(`/templates/details/${categoryId}`)).data\r\n\t}\r\n\r\n\tpublic async cadenceDetails (templateId: string): Promise {\r\n\t\treturn (await this.axios.get(`/templates/cadenceDetails/${templateId}`)).data\r\n\t}\r\n\r\n\tpublic async templateSave (template: TemplateDetails): Promise {\r\n\t\treturn (await this.axios.post(\"/templates\", template)).data\r\n\t}\r\n\tpublic async templateDelete (template: TemplateDetails): Promise {\r\n\t\treturn (await this.axios.delete(`/templates/${template.id}`)).data\r\n\t}\r\n\r\n\tpublic async fields (): Promise {\r\n\t\treturn (await this.axios.get(\"/fields\")).data\r\n\t}\r\n\tpublic async fieldSave (field: Field): Promise {\r\n\t\treturn (await this.axios.post(\"/fields\", field)).data\r\n\t}\r\n\tpublic async fieldUsage (field: Field): Promise {\r\n\t\treturn (await this.axios.get(`/fields/usage/${field.id}`)).data\r\n\t}\r\n\tpublic async fieldDelete (field: Field): Promise {\r\n\t\treturn (await this.axios.delete(`/fields/${field.id}`)).data\r\n\t}\r\n\r\n\tpublic async generateID (): Promise {\r\n\t\treturn (await this.axios.get(\"/fields/generateId\")).data\r\n\t}\r\n\tpublic async rules (): Promise {\r\n\t\treturn (await this.axios.get(\"/rules\")).data\r\n\t}\r\n\tpublic async ruleSave (rule: Rule): Promise {\r\n\t\treturn (await this.axios.post(\"/rules\", rule)).data\r\n\t}\r\n\tpublic async ruleDelete (rule: Rule): Promise {\r\n\t\treturn (await this.axios.delete(`/rules/${rule.id}`)).data\r\n\t}\r\n\r\n\tpublic async definitions (): Promise {\r\n\t\treturn (await this.axios.get(\"/dataSource/definition\")).data\r\n\t}\r\n\tpublic async definitionDetails (dataDefinitionId: string): Promise {\r\n\t\treturn (await this.axios.get(`/dataSource/definition/${dataDefinitionId}`)).data\r\n\t}\r\n\tpublic async definitionDetailsForSource (dataSourceId: string): Promise {\r\n\t\treturn (await this.axios.get(`/dataSource/definition/forsource/${dataSourceId}`)).data\r\n\t}\r\n\tpublic async definitionSave (template: DataDefinitionWithFields): Promise {\r\n\t\treturn (await this.axios.post(\"/dataSource/definition\", template)).data\r\n\t}\r\n\tpublic async definitionDelete (template: DataDefinitionWithFields): Promise {\r\n\t\treturn (await this.axios.delete(`/dataSource/definition/${template.id}`)).data\r\n\t}\r\n\tpublic async definitionUsage (definition: DataDefinition): Promise {\r\n\t\treturn (await this.axios.get(`/dataSource/definition/usage/${definition.id}`)).data\r\n\t}\r\n\tpublic async specialDefinitionId (definitionType: string): Promise {\r\n\t\treturn (await this.axios.get(`/dataSource/specialDefinitionId/${definitionType}`)).data\r\n\t}\r\n\r\n\tpublic async completeAction (caseId: string, actionId: string): Promise {\r\n\t\tawait this.axios.get(`/cases/action/${caseId}/${actionId}`)\r\n\t}\r\n\tpublic async history (caseId: string, greaterThanDate: string | null = null): Promise {\r\n\t\treturn (await this.axios.get(`/cases/history/${caseId}`, {\r\n\t\t\tparams: {\r\n\t\t\t\tgreaterThanDate\r\n\t\t\t}\r\n\t\t})).data\r\n\t}\r\n\r\n\tpublic async caseFiles (caseId: string): Promise {\r\n\t\treturn (await this.axios.get(`/files/${caseId}`)).data\r\n\t}\r\n\r\n\tpublic async linkCase (caseId: string, linkToCase: string): Promise {\r\n\t\treturn (await this.axios.get(`/cases/link/${caseId}/${linkToCase}`)).data\r\n\t}\r\n\r\n\tpublic async caseIntegrationLinks (caseId: string): Promise {\r\n\t\treturn (await this.axios.get(`/cases/${caseId}/integrationLinks`)).data\r\n\t}\r\n\r\n\tpublic uploadFiles (caseId: string, fieldId: string | null, formData: FormData,\r\n\t\tprogress: (e: ProgressEvent) => void,\r\n\t\terror: (errorMessage: string) => void,\r\n\t\tfinished: () => void): void {\r\n\t\tvar xhr = new XMLHttpRequest()\r\n\t\txhr.withCredentials = true\r\n\r\n\t\tconst url = `${process.env.VUE_APP_HTTP_API_URI}files/${caseId}${(fieldId ? \"/\" + fieldId : \"\")}`\r\n\r\n\t\txhr.open(\"POST\", url, true)\r\n\t\tthis.setXsrfHeader(xhr)\r\n\t\txhr.onreadystatechange = () => {\r\n\t\t\tif (xhr.readyState === XHRReadyState.Done) {\r\n\t\t\t\tif (xhr.status < HttpStatusCode.BadRequest) {\r\n\t\t\t\t\t// Every thing ok, file uploaded\r\n\t\t\t\t\tconsole.log(xhr.responseText) // handle response.\r\n\t\t\t\t\tfinished()\r\n\t\t\t\t} else {\r\n\t\t\t\t\tif (xhr.responseText) {\r\n\t\t\t\t\t\terror(xhr.responseText)\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\terror(xhr.status.toString())\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\txhr.upload.onerror = (e: ProgressEvent) => {\r\n\t\t\terror(\"Failed to upload file\")\r\n\t\t}\r\n\t\txhr.upload.onprogress = progress\r\n\r\n\t\txhr.send(formData)\r\n\t}\r\n\r\n\tpublic async deleteFile (fileId: string): Promise {\r\n\t\treturn this.axios.delete(`/files/${fileId}`)\r\n\t}\r\n\r\n\tpublic async caseComments (caseId: string): Promise {\r\n\t\treturn (await this.axios.get(`/comments/${caseId}`)).data\r\n\t}\r\n\r\n\tpublic async caseTyping (caseId: string, typing: boolean): Promise {\r\n\t\treturn (await this.axios.get(`/comments/typing/${caseId}`, {\r\n\t\t\tparams: {\r\n\t\t\t\ttyping: typing ? \"true\" : \"false\"\r\n\t\t\t}\r\n\t\t})).data\r\n\t}\r\n\r\n\tpublic async postComment (caseId: string, comment: string, teamId: string | null, commentIsHtml: boolean = false): Promise {\r\n\t\tawait this.axios.post(\"/cases/update\", {\r\n\t\t\tcaseId,\r\n\t\t\tcomment,\r\n\t\t\tisHtml: commentIsHtml\r\n\t\t})\r\n\t}\r\n\r\n\tpublic async teamsGet (): Promise {\r\n\t\treturn (await this.axios.get(\"/teams\")).data\r\n\t}\r\n\r\n\tpublic async teamSave (team: Team): Promise {\r\n\t\treturn (await this.axios.post(\"/teams\", team)).data\r\n\t}\r\n\r\n\tpublic async teamDelete (teamId: string): Promise {\r\n\t\treturn (await this.axios.delete(`/teams/${teamId}`)).data\r\n\t}\r\n\r\n\tpublic async extendedPermissionsGet (): Promise {\r\n\t\treturn (await this.axios.get(\"/users/extendedPermissions\")).data\r\n\t}\r\n\r\n\tpublic async dataSources (): Promise {\r\n\t\treturn (await this.axios.get(\"/datasource\")).data\r\n\t}\r\n\r\n\tpublic async dataSourceGet (dataSourceId: string): Promise {\r\n\t\treturn (await this.axios.get(`/datasource/${dataSourceId}`)).data\r\n\t}\r\n\r\n\tpublic async dataSourceUsage (dataSource: any): Promise {\r\n\t\treturn (await this.axios.get(`/dataSource/usage/${dataSource.id}`)).data\r\n\t}\r\n\r\n\tpublic async dataSourceSave (dataSource: any): Promise {\r\n\t\treturn (await this.axios.post(\"/dataSource\", dataSource)).data\r\n\t}\r\n\tpublic async dataSourceDelete (dataSource: any): Promise {\r\n\t\treturn (await this.axios.delete(`/dataSource/${dataSource.id}`)).data\r\n\t}\r\n\r\n\tpublic async dataSourceSearch (dataSourceId: string, fieldId: string | null, search: string, pageNumber: number = 1): Promise> {\r\n\t\treturn (await this.axios.get(`/datasource/search/${dataSourceId}`, {\r\n\t\t\tparams: {\r\n\t\t\t\tsearch,\r\n\t\t\t\tfieldId,\r\n\t\t\t\tpageNumber\r\n\t\t\t}\r\n\t\t})).data\r\n\t}\r\n\r\n\tpublic async dataSourceGetAll (dataSourceId: string, includeAll?: boolean): Promise {\r\n\t\treturn (await this.axios.get(`/datasource/item/all/${dataSourceId}`, {\r\n\t\t\tparams: {\r\n\t\t\t\tincludeAll: includeAll\t\t// load all regardless of view permissions (for insights etc.)\r\n\t\t\t}\r\n\t\t})).data\r\n\t}\r\n\r\n\tpublic async dataSourceGetItem (dataSourceItemId: string) {\r\n\t\treturn (await this.axios.get(`/datasource/item/${dataSourceItemId}`)).data\r\n\t}\r\n\tpublic async dataSourceItemGetLabel (definitionId: string, dataSourceItem: any): Promise {\r\n\t\treturn (await this.axios.post(`/dataSource/item/label/${definitionId}`, dataSourceItem)).data\r\n\t}\r\n\tpublic async dataSourceCreateItem (dataSourceItem: any) {\r\n\t\treturn (await this.axios.post(\"/datasource/item\", dataSourceItem)).data\r\n\t}\r\n\r\n\tpublic dataSourceUploadCsv (dataSourceId: string, formData: FormData,\r\n\t\tprogress: (e: ProgressEvent) => void): Promise {\r\n\t\tvar xhr = new XMLHttpRequest()\r\n\t\txhr.withCredentials = true\r\n\r\n\t\tconst url = `${process.env.VUE_APP_HTTP_API_URI}dataSource/upload/${dataSourceId}`\r\n\r\n\t\treturn new Promise((resolve, reject) => {\r\n\t\t\txhr.open(\"POST\", url, true)\r\n\t\t\tthis.setXsrfHeader(xhr)\r\n\t\t\txhr.onreadystatechange = () => {\r\n\t\t\t\tif (xhr.readyState === XHRReadyState.Done) {\r\n\t\t\t\t\tif (xhr.status < HttpStatusCode.BadRequest) {\r\n\t\t\t\t\t\tresolve(JSON.parse(xhr.responseText))\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tif (xhr.responseText) {\r\n\t\t\t\t\t\t\treject(xhr.responseText)\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\treject(xhr.status.toString())\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\txhr.upload.onerror = (e: ProgressEvent) => {\r\n\t\t\t\treject(new Error(\"Failed to upload file\"))\r\n\t\t\t}\r\n\t\t\txhr.upload.onprogress = progress\r\n\r\n\t\t\txhr.send(formData)\r\n\t\t})\r\n\t}\r\n\r\n\tpublic async dataSourceItemDelete (dataSourceItem: any) {\r\n\t\treturn (await this.axios.delete(`/datasource/item/${dataSourceItem.id}`)).data\r\n\t}\r\n\tpublic async dataSourceItemSearchCases (fieldId: string, searchTerm: string, isIdField: boolean): Promise {\r\n\t\treturn (await this.axios.get(`/dataSource/cases/field/${fieldId}`, {\r\n\t\t\tparams: {\r\n\t\t\t\tsearchTerm,\r\n\t\t\t\tsearchTermIsId: isIdField\r\n\t\t\t}\r\n\t\t})).data\r\n\t}\r\n\r\n\tpublic async userDetails (userId: string, caseId: string = \"\"): Promise {\r\n\t\treturn (await this.axios.get(`/users/details/${userId}/${caseId}`)).data\r\n\t}\r\n\r\n\tpublic async userFieldDetails (userId: string): Promise {\r\n\t\treturn (await this.axios.get(`/users/fieldDetails/${userId}`)).data\r\n\t}\r\n\r\n\t/**\r\n\t * Get cases by current user\r\n\t */\r\n\tpublic async userCases (userId: string, includeCollaborating: boolean, archived: boolean, pageNumber: number): Promise> {\r\n\t\treturn (await this.axios.get(`/users/cases/${userId}`, {\r\n\t\t\tparams: {\r\n\t\t\t\tincludeCollaborating,\r\n\t\t\t\tarchived,\r\n\t\t\t\tpageNumber\r\n\t\t\t}\r\n\t\t})).data\r\n\t}\r\n\r\n\tpublic async addUser (caseId: string, userId: string) {\r\n\t\tawait this.axios.put(`/cases/users/${caseId}/${userId}`)\r\n\t}\r\n\r\n\tpublic async removeUser (caseId: string, userId: string) {\r\n\t\tawait this.axios.delete(`/cases/users/${caseId}/${userId}`)\r\n\t}\r\n\r\n\tpublic async assignUser (caseId: string, userId: string) {\r\n\t\tawait this.axios.put(`/cases/assign/${caseId}/${userId}`)\r\n\t}\r\n\r\n\tpublic async addTeam (caseId: string, teamId: string) {\r\n\t\tawait this.axios.put(`/cases/teams/${caseId}/${teamId}`)\r\n\t}\r\n\r\n\tpublic async searchUsers (searchTerm: string, teamId: string | null = null, teamIds: string[] | null = null) {\r\n\t\treturn (await this.axios.get(\"/users/search\", {\r\n\t\t\tparams: {\r\n\t\t\t\tsearch: searchTerm,\r\n\t\t\t\tteamId,\r\n\t\t\t\tteams: teamIds\r\n\t\t\t}\r\n\t\t})).data\r\n\t}\r\n\r\n\tpublic async searchInvite (caseId: string, searchTerm: string, teams: string[] | null = null, allowTeams: boolean = true, disallowAdded: boolean = true) {\r\n\t\treturn (await this.axios.get(`/users/searchForInvite/${caseId}`, {\r\n\t\t\tparams: {\r\n\t\t\t\tsearch: searchTerm,\r\n\t\t\t\tteams,\r\n\t\t\t\tallowTeams,\r\n\t\t\t\tdisallowAdded\r\n\t\t\t}\r\n\t\t})).data\r\n\t}\r\n\r\n\tpublic async usersGet (teamId: string | null = null): Promise {\r\n\t\tif (teamId) {\r\n\t\t\treturn (await this.axios.get(`/users/team/${teamId}`)).data\r\n\t\t} else {\r\n\t\t\treturn (await this.axios.get(\"/users/\")).data\r\n\t\t}\r\n\t}\r\n\r\n\tpublic async userSave (user: UserWithFields): Promise {\r\n\t\treturn (await this.axios.post(\"/users\", user)).data\r\n\t}\r\n\tpublic async saveOwnFields (fieldValues: { [key: string]: LabeledValue }, finishIntroduction: boolean): Promise {\r\n\t\tawait this.axios.post(\"/users/ownFields\", {\r\n\t\t\tfieldValues\r\n\t\t}, {\r\n\t\t\tparams: {\r\n\t\t\t\tfinishIntroduction\r\n\t\t\t}\r\n\t\t})\r\n\t}\r\n\r\n\tpublic async userDelete (userId: string): Promise {\r\n\t\treturn (await this.axios.delete(`/users/${userId}`)).data\r\n\t}\r\n\r\n\tpublic async userSpecialDefinition (): Promise {\r\n\t\treturn (await this.axios.get(\"/users/userSpecialDefinition\")).data\r\n\t}\r\n\r\n\tpublic async userStatusListGet (userIds: string[]): Promise {\r\n\t\treturn (await this.axios.get(\"/users/statusList\", {\r\n\t\t\tparams: {\r\n\t\t\t\tuserIds\r\n\t\t\t}\r\n\t\t})).data\r\n\t}\r\n\r\n\tpublic async userStatusListWithFieldsGet (userIds: string[]): Promise {\r\n\t\treturn (await this.axios.post(\"/users/statusWithFieldsList\", userIds)).data\r\n\t}\r\n\r\n\tpublic async userSettingsGet (userId: string): Promise {\r\n\t\tlet response = await this.axios.get(`/users/settings/${userId}`)\r\n\t\treturn response.data\r\n\t}\r\n\r\n\tpublic async userSettingsSave (userSettings: UserSettings): Promise {\r\n\t\tlet response = await this.axios.put(\"/users/settings\", userSettings)\r\n\t\treturn response.data\r\n\t}\r\n\r\n\tpublic async uploadUserImage (userId: string, formData: FormData, progress: (e: ProgressEvent) => void): Promise {\r\n\t\tawait this.axios.post(`/users/picture/upload/${userId}`, formData, {\r\n\t\t\theaders: {\r\n\t\t\t\t\"Content-Type\": \"multipart/form-data\"\r\n\t\t\t},\r\n\t\t\tonUploadProgress: (event) => progress(event)\r\n\t\t})\r\n\t}\r\n\r\n\tpublic async removeUserImage (userId: string): Promise {\r\n\t\tawait this.axios.delete(`/users/picture/${userId}`)\r\n\t}\r\n\r\n\tpublic async hasUploadedPicture (userId: string): Promise {\r\n\t\treturn (await this.axios.get(`/users/picture/${userId}/exists`))\r\n\t\t\t.data\r\n\t}\r\n\r\n\tpublic async setUserStatus (userId: string, statusId: string): Promise {\r\n\t\tawait this.axios.post(`/users/setStatus/${userId}/${statusId}`)\r\n\t}\r\n\r\n\tpublic async clearUserStatus (userId: string): Promise {\r\n\t\tawait this.axios.post(`/users/clearStatus/${userId}`)\r\n\t}\r\n\r\n\tpublic async caseSearch (searchTerm: string, includeUsers:boolean = false): Promise {\r\n\t\treturn (await this.axios.get(\"/search/simple\", {\r\n\t\t\tparams: {\r\n\t\t\t\tsearchTerm: searchTerm,\r\n\t\t\t\tincludeUsers: includeUsers\r\n\t\t\t}\r\n\t\t})).data\r\n\t}\r\n\r\n\tpublic async insightsGet (): Promise {\r\n\t\treturn (await this.axios.get(\"/insights\")).data\r\n\t}\r\n\tpublic async insightGet (id: string, includeImportedCalculations: boolean = false): Promise {\r\n\t\treturn (await this.axios.get(`/insights/${id}`, {\r\n\t\t\tparams: {\r\n\t\t\t\tincludeImportedCalculations\r\n\t\t\t}\r\n\t\t})).data\r\n\t}\r\n\tpublic async insights (insightQuery: any): Promise {\r\n\t\treturn (await this.axios.post(\"/insights/calculated\", insightQuery)).data\r\n\t}\r\n\r\n\tpublic async insightsCalculatedCasesForTable (insight: any, id: string): Promise {\r\n\t\treturn (await this.axios.post(`/insights/calculatedTableData/${id}`, insight)).data\r\n\t}\r\n\r\n\tpublic async insightById (\r\n\t\tid: string,\r\n\t\tallowCached: boolean = false,\r\n\t\tincludeResults: boolean = false,\r\n\t\tdynamicParameters: DynamicParameterValue[] | null = null,\r\n\t\tadditionalSearchClauses: Clause[] | null = null,\r\n\t\tpage: number,\r\n\t\tpageSize: number,\r\n\t\tsortBy: string,\r\n\t\tsortDesc: boolean,\r\n\t\tsortDataType: DataType | null\r\n\t): Promise {\r\n\t\tconst searchClauses = additionalSearchClauses || []\r\n\r\n\t\treturn (await this.axios.post(`/insights/${id}`,\r\n\t\t\t{\r\n\t\t\t\tdynamicParameters: dynamicParameters,\r\n\t\t\t\tsearchClauses: searchClauses,\r\n\t\t\t\tpageNumber: page,\r\n\t\t\t\tpageSize,\r\n\t\t\t\tsortBy,\r\n\t\t\t\tsortDesc,\r\n\t\t\t\tsortDataType\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tparams: {\r\n\t\t\t\t\tallowCached,\r\n\t\t\t\t\tincludeResults,\r\n\t\t\t\t\ttimeZone: Intl.DateTimeFormat().resolvedOptions().timeZone\r\n\t\t\t\t}\r\n\t\t\t})).data\r\n\t}\r\n\r\n\tpublic async insightTopValue (id: string, orderBy: string): Promise {\r\n\t\treturn (await this.axios.post(`/insights/topValue/${id}`, {}, {\r\n\t\t\tparams: {\r\n\t\t\t\torderBy\r\n\t\t\t}\r\n\t\t})).data\r\n\t}\r\n\r\n\tpublic async insightSave (insightQuery: Insight): Promise {\r\n\t\treturn (await this.axios.post(\"/insights/save\", insightQuery)).data\r\n\t}\r\n\tpublic async insightDelete (insightId: string): Promise {\r\n\t\tawait this.axios.delete(`/insights/${insightId}`)\r\n\t}\r\n\r\n\tpublic async insightCasesForTable (\r\n\t\tid: string,\r\n\t\tallowCached: boolean = false,\r\n\t\tincludeResults: boolean = false,\r\n\t\tdynamicParameters: DynamicParameterValue[] | null = null,\r\n\t\tadditionalSearchClauses: Clause[] | null = null,\r\n\t\tpage: number,\r\n\t\tpageSize: number,\r\n\t\tresultsId: string,\r\n\t\ttableId: string,\r\n\t\tsortBy: string,\r\n\t\tsortDesc: boolean,\r\n\t\tsortDataType: DataType\r\n\t): Promise {\r\n\t\tconst searchClauses = additionalSearchClauses || []\r\n\t\treturn (await this.axios.post(`/insights/tableData/${id}`,\r\n\t\t\t{\r\n\t\t\t\tdynamicParameters: dynamicParameters,\r\n\t\t\t\tsearchClauses: searchClauses,\r\n\t\t\t\tpageNumber: page,\r\n\t\t\t\tpageSize,\r\n\t\t\t\tid: resultsId,\r\n\t\t\t\ttableId: tableId,\r\n\t\t\t\tsortBy,\r\n\t\t\t\tsortDesc,\r\n\t\t\t\tsortDataType\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tparams: {\r\n\t\t\t\t\tallowCached,\r\n\t\t\t\t\tincludeResults,\r\n\t\t\t\t\ttimeZone: Intl.DateTimeFormat().resolvedOptions().timeZone\r\n\t\t\t\t}\r\n\t\t\t})).data\r\n\t}\r\n\r\n\tpublic async insightMarkAsCacheExpired (insightId: string): Promise {\r\n\t\tawait this.axios.post(`/insights/markAsCacheExpired/${insightId}`)\r\n\t}\r\n\r\n\tpublic async insightParameters (): Promise {\r\n\t\treturn (await this.axios.get(\"/insightParameters\")).data\r\n\t}\r\n\r\n\tpublic async insightParameterSave (parameter: DynamicParameter): Promise {\r\n\t\treturn (await this.axios.post(\"/insightParameters/save\", parameter)).data\r\n\t}\r\n\tpublic async insightParameterDelete (parameter: DynamicParameter): Promise {\r\n\t\tawait this.axios.delete(`/insightParameters/${parameter.key}`)\r\n\t}\r\n\r\n\t// ToDo: Not duplicate this from api_Tag!\r\n\tpublic async tagList (): Promise { return (await this.axios.get(\"/tags\")).data }\r\n\r\n\tpublic emailExists: (email: string) => Promise = async (email) => (await this.axios.get(`/users/emailExists/${email}`)).data\r\n\r\n\tpublic async deleteSchedule (schedule: Schedule): Promise {\r\n\t\tawait this.axios.delete(`/schedule/${schedule.id}`)\r\n\t}\r\n\r\n\tpublic async createSchedule (schedule: Schedule): Promise {\r\n\t\tawait this.axios.post(\"/schedule/\", schedule)\r\n\t}\r\n\r\n\tpublic async createCadenceSchedule (caseId: string, timeZone: string) {\r\n\t\tawait this.axios.post(\"/schedule/cadence/\", { caseId: caseId, timeZone: timeZone })\r\n\t}\r\n\r\n\tpublic async deleteScheduleQueue (schedule: ScheduleQueue): Promise {\r\n\t\tawait this.axios.delete(`/schedule/scheduleQueue/${schedule.id}`)\r\n\t}\r\n\r\n\tpublic async updateSchedule (schedule: Schedule): Promise {\r\n\t\tawait this.axios.put(\"/schedule/\", schedule)\r\n\t}\r\n\r\n\tpublic async retrieveSchedules (): Promise {\r\n\t\tconst { data } = await this.axios.get(\"/schedule/\")\r\n\t\treturn data\r\n\t}\r\n\r\n\tpublic async scheduleInstance (scheduleId: string, date: Date): Promise<{ scheduleInstance: CaseDetails, updatedScheduleInstance: CaseDetails }> {\r\n\t\treturn (await this.axios.get(\"/schedule/instance\", {\r\n\t\t\tparams: {\r\n\t\t\t\tscheduleId,\r\n\t\t\t\tdate: `${date.getFullYear()}-${date.getMonth() + 1}-${date.getDate()}`\r\n\t\t\t}\r\n\t\t})).data\r\n\t}\r\n\r\n\tpublic async scheduleInstanceSet (scheduleId: string, date: Date, fieldValues: any): Promise<{ updatedScheduleInstance: CaseDetails }> {\r\n\t\treturn (await this.axios.put(\"/schedule/instance\", {\r\n\t\t\tscheduleId,\r\n\t\t\tdate: `${date.getFullYear()}-${date.getMonth() + 1}-${date.getDate()}`,\r\n\t\t\tfieldValues\r\n\t\t})).data\r\n\t}\r\n\r\n\tpublic async retrieveCadenceSchedules (): Promise {\r\n\t\tconst { data } = await this.axios.get(\"/schedule/cadence\")\r\n\t\treturn data\r\n\t}\r\n\r\n\tpublic async generateCaseFromSchedule (schedule: Schedule): Promise {\r\n\t\treturn (await this.axios.post(\"/schedule/GenerateCase\", schedule)).data\r\n\t}\r\n\tpublic async createAccount (signupForm: SignUpForm): Promise {\r\n\t\tawait this.axios.post(\"/tenant/CreateNew/\", signupForm)\r\n\t}\r\n\r\n\tpublic async tenantBrandingGet (): Promise {\r\n\t\treturn (await this.axios.get(\"/tenant/css\")).data\r\n\t}\r\n\r\n\tpublic async tenantBrandingPost (css: string): Promise {\r\n\t\treturn (await this.axios.post(\"/tenant/css\", {\r\n\t\t\tcss\r\n\t\t})).data\r\n\t}\r\n\r\n\tpublic async generateQrCode (url: string): Promise {\r\n\t\treturn (await this.axios.post(\"/cases/QRCode/\", `\"${url}\"`)).data\r\n\t}\r\n\r\n\tpublic async timeZonesGet (): Promise {\r\n\t\treturn (await this.axios.get(\"/schedule/timezones\")).data\r\n\t}\r\n\r\n\tpublic async uploadFile (url: string, file: File): Promise {\r\n\t\tconst uploadFormData = new FormData()\r\n\t\tuploadFormData.append(\"file\", file)\r\n\r\n\t\treturn new Promise((resolve, reject) => {\r\n\t\t\tvar xhr = new XMLHttpRequest()\r\n\t\t\txhr.withCredentials = true\r\n\r\n\t\t\txhr.open(\"POST\", url, true)\r\n\t\t\tthis.setXsrfHeader(xhr)\r\n\r\n\t\t\txhr.onreadystatechange = () => {\r\n\t\t\t\tif (xhr.readyState === XHRReadyState.Done) {\r\n\t\t\t\t\tif (xhr.status < HttpStatusCode.BadRequest) {\r\n\t\t\t\t\t\tresolve()\r\n\t\t\t\t\t\t// Every thing ok, file uploaded\r\n\t\t\t\t\t\tconsole.log(xhr.responseText) // handle response.\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tif (xhr.responseText) {\r\n\t\t\t\t\t\t\treject(xhr.responseText)\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\treject(xhr.status.toString())\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\txhr.upload.onerror = (e: ProgressEvent) => {\r\n\t\t\t\treject(new Error(\"Failed to upload file\"))\r\n\t\t\t}\r\n\r\n\t\t\txhr.send(uploadFormData)\r\n\t\t})\r\n\t}\r\n\r\n\tpublic async getOpsZendeskHelpWidgetEnabledSetting () {\r\n\t\treturn (await this.axios.get(\"/features/GetOpsZendeskHelpWidgetEnabled\")).data\r\n\t}\r\n\r\n\tpublic async getMfaRedirectUrl (): Promise {\r\n\t\tconst { data } = await this.axios.get(\"login/SuiteMFARedirectUrl\")\r\n\t\treturn data\r\n\t}\r\n\r\n\tpublic async sendCaseEmail (caseId:string, payload:CaseEmailRequest) : Promise {\r\n\t\tawait this.axios.post(`cases/email/${caseId}`, payload)\r\n\t}\r\n\r\n\tpublic async getContactsForCase (caseId:string) : Promise {\r\n\t\tconst { data } = await this.axios.get(`/cases/users/${caseId}`)\r\n\t\treturn data\r\n\t}\r\n\r\n\tprivate setXsrfHeader (xhr: XMLHttpRequest): void {\r\n\t\tconst xsrfValue = getCookieValue(\"XSRF-TOKEN\")\r\n\t\tif (xsrfValue) {\r\n\t\t\txhr.setRequestHeader(\"x-xsrf-token\", xsrfValue)\r\n\t\t}\r\n\t}\r\n}\r\n\r\nconst api = new Api()\r\nexport default api\r\n","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DataSourceSelect.vue?vue&type=style&index=0&id=1f157296&prod&scoped=true&lang=scss&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PasswordInput.vue?vue&type=style&index=0&id=b8405368&prod&lang=scss&scoped=true&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('b-modal',{attrs:{\"content-class\":\"fill-modal\",\"size\":\"fill\",\"title\":_vm.caseTitle},scopedSlots:_vm._u([{key:\"modal-header\",fn:function(ref){\nvar close = ref.close;\nreturn [_c('div',{staticClass:\"d-flex w-100\"},[_c('h5',{staticClass:\"flex-grow-1\"},[_vm._v(_vm._s(_vm.caseTitle))]),(_vm.value && _vm.canEditSchedules && _vm.allowScheduleEdit)?_c('span',{staticClass:\"btn-group m-l-10\"},[_c('a',{staticClass:\"btn\",class:(_vm.scheduleView ? 'btn-secondary' : 'btn-primary'),attrs:{\"title\":\"Date\"},on:{\"click\":function($event){_vm.scheduleView = false}}},[_vm._v(_vm._s(_vm.displayDateOnlyFromISOString(_vm.value.date)))]),_c('a',{staticClass:\"btn\",class:(_vm.scheduleView ? 'btn-primary' : 'btn-secondary'),attrs:{\"title\":\"Schedule\"},on:{\"click\":function($event){_vm.scheduleView = true}}},[_vm._v(\"Every time\")])]):_vm._e(),_c('button',{staticClass:\"close\",attrs:{\"type\":\"button\",\"aria-label\":\"Close\"},on:{\"click\":close}},[_vm._v(\"×\")])])]}},{key:\"modal-footer\",fn:function(){return [(_vm.canEditSchedules)?_c('a',{directives:[{name:\"b-tooltip\",rawName:\"v-b-tooltip\",value:(\"Save\"),expression:\"`Save`\"}],staticClass:\"btn btn-primary\",class:{'disabled': !_vm.valid || _vm.saving},attrs:{\"data-cy\":\"save-button\"},on:{\"click\":_vm.save}},[(!_vm.saving)?_c('span',[_vm._v(\"Save\")]):_c('i',{staticClass:\"fas fa-spinner fa-spin\"})]):_vm._e(),(_vm.canEditSchedules)?_c('a',{staticClass:\"btn btn-secondary\",on:{\"click\":_vm.close}},[_vm._v(\"Cancel\")]):_vm._e()]},proxy:true}]),model:{value:(_vm.open),callback:function ($$v) {_vm.open=$$v},expression:\"open\"}},[(!_vm.scheduleView)?_c('skeleton',{staticClass:\"w-100\",attrs:{\"loading\":!_vm.currentCase}},[(_vm.currentCase)?_c('layout-host',{staticClass:\"flex-grow-1 h-100\",attrs:{\"currentCase\":_vm.currentCase,\"me\":_vm.me},on:{\"validChanged\":function (newValid) { return _vm.valid = newValid; }},scopedSlots:_vm._u([{key:\"default\",fn:function(ref){\nvar currentCase = ref.currentCase;\nvar titleTemplateEnabled = ref.titleTemplateEnabled;\nvar templateChanged = ref.templateChanged;\nvar hasMap = ref.hasMap;\nreturn [(currentCase)?_c('desktop',{staticClass:\"h-100 w-100\",attrs:{\"currentCase\":currentCase,\"titleTemplateEnabled\":titleTemplateEnabled,\"canEditCurrentCase\":_vm.canEditSchedules,\"hasMap\":hasMap,\"template\":_vm.currentTemplate,\"showTimeline\":false,\"showTitle\":false,\"canUploadFiles\":false,\"preventTemplateChange\":true},on:{\"templateIdChanged\":templateChanged}}):_vm._e()]}}],null,false,1995717068)}):_vm._e()],1):(_vm.value)?_c('scrollbar',{staticClass:\"w-100\"},[_c('data-form',{staticClass:\"w-100\",attrs:{\"columns\":_vm.scheduleEdit.columns,\"canEdit\":_vm.canEditSchedules,\"item\":_vm.editSchedule}})],1):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { Component, Vue, Watch, Prop, ProvideReactive, Provide } from \"vue-property-decorator\"\r\nimport { namespace, Getter, Mutation, Action, State } from \"vuex-class\"\r\n\r\nimport api from \"@/services/api\"\r\nimport FileService from \"@/services/file-service\"\r\nimport { MapProvider } from \"@/services/mapProvider\"\r\n\r\nimport { CaseError } from \"@/types/caseError\"\r\n\r\nimport SkeletonLoader from \"@/components/SkeletonLoader.vue\"\r\nimport LayoutHost from \"@/components/CaseDetails/Layout/LayoutHost.vue\"\r\nimport DataForm from \"@/components/Config/DataForm.vue\"\r\nimport VuePerfectScrollbar from \"vue-perfect-scrollbar\"\r\n\r\nimport { CaseDetails, CaseSummary, Template, TemplateDetails, User } from \"@/types\"\r\n\r\nimport ScheduleEditService from \"@/services/scheduleEditService\"\r\n\r\nimport {\r\n\tapplyTemplate\r\n} from \"@/scripts/caseDetails\"\r\nimport { Schedule } from \"@/types/schedule\"\r\nimport { cloneDeep } from \"lodash\"\r\nimport { JsonHubProtocol } from \"@aspnet/signalr\"\r\nimport { CurrentUser } from \"@/types/user\"\r\nimport { TenantSetting } from \"@/types/tenantSetting\"\r\nconst caseStore = namespace(\"cases\")\r\n\r\n@Component({\r\n\tcomponents: {\r\n\t\t\"layout-host\": LayoutHost,\r\n\t\t\"desktop\": () => import(\"@/components/CaseDetails/Layout/Desktop.vue\"),\r\n\t\t\"skeleton\": SkeletonLoader,\r\n\t\t\"data-form\": DataForm,\r\n\t\t\"scrollbar\": VuePerfectScrollbar\r\n\t}\r\n})\r\nexport default class ScheduleInstance extends Vue {\r\n\t@Provide(\"mapProvider\") mapProvider: MapProvider = new MapProvider()\r\n\t@Provide(\"fileService\") fileService: FileService = new FileService(this.caseFilesChanged)\r\n\r\n\t@Prop({ default: null })\r\n\tvalue!: {\r\n\t\tschedule: Schedule,\r\n\t\tdate: Date\r\n\t} | null\r\n\r\n\t@Prop({ default: true })\r\n\tallowScheduleEdit!: boolean\r\n\r\n\t@Getter(\"getMe\") public me!: CurrentUser\r\n\t@caseStore.Action public detailsLoad!: () => Promise;\r\n\r\n\t@Getter(\"getCaseName\") getCaseName!: string;\r\n\t@Getter(\"getRecordName\") getRecordName!: string;\r\n\t@State tenantSettings!: { [key: string]: boolean } | null\r\n\r\n\tprivate currentCase: CaseDetails | null = null\r\n\tprivate currentTemplate: TemplateDetails | null = null\r\n\r\n\tprivate templates: { [key:string]: TemplateDetails } = {}\r\n\r\n\tprivate scheduleCase: CaseDetails | null = null\r\n\tprivate scheduleView: boolean = false\r\n\r\n\tprivate editSchedule: Schedule | null = null\r\n\tprivate scheduleEdit: ScheduleEditService | null = new ScheduleEditService()\r\n\r\n\tsaving: boolean = false\r\n\tvalid: boolean = true\r\n\r\n\tget open (): boolean {\r\n\t\treturn !!this.value\r\n\t}\r\n\r\n\tset open (value: boolean) {\r\n\t\tif (!value) {\r\n\t\t\tthis.scheduleView = false\r\n\t\t\tthis.$emit(\"input\", null)\r\n\t\t}\r\n\t}\r\n\r\n\tget caseTitle () {\r\n\t\tif (this.value) {\r\n\t\t\treturn this.value.schedule.title\r\n\t\t}\r\n\t\tif (!this.currentCase) return \"\"\r\n\t\treturn `${this.currentCase.templateTitle} ${this.currentCase.isCase ? this.getCaseName : this.getRecordName}`\r\n\t}\r\n\r\n\tget canEditSchedules () {\r\n\t\treturn this.me && (this.me.editData || (this.me.extendedPermissions && this.me.extendedPermissions[\"scheduling\"]))\r\n\t}\r\n\r\n\tprivate get scheduleColumns () {\r\n\t\tif (!this.scheduleEdit) return []\r\n\r\n\t\treturn this.scheduleEdit.columns.filter((c: any) => {\r\n\t\t\tif (c.key === \"endTime\") {\r\n\t\t\t\treturn !this.tenantSettings || !this.tenantSettings[\"scheduleHideTimeSpan\"]\r\n\t\t\t}\r\n\t\t\tif (c.key === \"bulkCreateForTeams\") {\r\n\t\t\t\treturn !this.tenantSettings || !this.tenantSettings[\"scheduleHideBulkCreate\"]\r\n\t\t\t}\r\n\t\t\treturn true\r\n\t\t})\r\n\t}\r\n\r\n\t@Watch(\"value\")\r\n\tasync valueUpdated (newValue: { schedule: Schedule, date: Date } | null) {\r\n\t\tif (newValue && newValue.schedule) {\r\n\t\t\tthis.detailsLoad()\r\n\t\t\tthis.editSchedule = cloneDeep(newValue.schedule)\r\n\r\n\t\t\tapi.scheduleInstance(newValue.schedule.id!, newValue.date).then(({ scheduleInstance, updatedScheduleInstance }) => {\r\n\t\t\t\t// delete updatedScheduleInstance.created\r\n\t\t\t\t// delete scheduleInstance.created\r\n\r\n\t\t\t\tthis.currentCase = updatedScheduleInstance\r\n\t\t\t\tthis.scheduleCase = scheduleInstance\r\n\r\n\t\t\t\tif (updatedScheduleInstance.templateId) {\r\n\t\t\t\t\t// Load template - use cached values if present\r\n\t\t\t\t\tif (this.templates[updatedScheduleInstance.templateId]) {\r\n\t\t\t\t\t\tthis.currentTemplate = this.templates[updatedScheduleInstance.templateId]\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tapi.templateDetails(updatedScheduleInstance.templateId!).then(template => {\r\n\t\t\t\t\t\t\tthis.currentTemplate = this.templates[updatedScheduleInstance.templateId!] = template\r\n\t\t\t\t\t\t})\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t} else {\r\n\t\t\tthis.currentCase = null\r\n\t\t\tthis.scheduleCase = null\r\n\t\t\tthis.editSchedule = null\r\n\t\t\tthis.currentTemplate = null\r\n\t\t}\r\n\t}\r\n\r\n\tmounted () {\r\n\t\tthis.scheduleEdit!.load(this.me)\r\n\t\tthis.valueUpdated(this.value)\r\n\t}\r\n\r\n\tprivate close () {\r\n\t\tthis.$emit(\"input\", null)\r\n\t}\r\n\r\n\tprivate caseFilesChanged () {\r\n\t}\r\n\r\n\tprivate async save () {\r\n\t\tif (this.scheduleView) {\r\n\t\t\tif (this.value && this.editSchedule) {\r\n\t\t\t\tthis.scheduleEdit!.saveSchedule(this.editSchedule)\r\n\t\t\t\tthis.$emit(\"scheduleUpdated\", this.editSchedule)\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tif (this.value && this.currentCase && this.scheduleCase) {\r\n\t\t\t\tconst instanceFieldvalues: { [key: string]: any } = {}\r\n\r\n\t\t\t\t// For each property, check the updated model against the original. Test for equality using JSON serialization. If something doesn't serialize the same, then it has been modified.\r\n\t\t\t\tObject.keys(this.currentCase).forEach(field => {\r\n\t\t\t\t\tconst fieldKey = field as keyof CaseDetails\r\n\t\t\t\t\tif (field === \"fields\") {\r\n\t\t\t\t\t\tObject.keys(this.currentCase!.fields).forEach(fieldId => {\r\n\t\t\t\t\t\t\tif (JSON.stringify(this.currentCase!.fields[fieldId].value) !== JSON.stringify(this.scheduleCase!.fields[fieldId].value)) {\r\n\t\t\t\t\t\t\t\tinstanceFieldvalues[\"fields.\" + fieldId] = {\r\n\t\t\t\t\t\t\t\t\tvalue: this.currentCase!.fields[fieldId].value,\r\n\t\t\t\t\t\t\t\t\tlabel: this.currentCase!.fields[fieldId].label\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t})\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tif (JSON.stringify(this.currentCase![fieldKey]) !== JSON.stringify(this.scheduleCase![fieldKey])) {\r\n\t\t\t\t\t\t\tinstanceFieldvalues[field] = {\r\n\t\t\t\t\t\t\t\tvalue: this.currentCase![fieldKey],\r\n\t\t\t\t\t\t\t\tlabel: null\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t})\r\n\r\n\t\t\t\tawait api.scheduleInstanceSet(this.value.schedule.id!, this.value.date, instanceFieldvalues)\r\n\t\t\t\tthis.$emit(\"scheduleInstanceUpdated\", {\r\n\t\t\t\t\tscheduleId: this.value.schedule.id,\r\n\t\t\t\t\tdate: this.value.date,\r\n\t\t\t\t\tfieldValues: instanceFieldvalues\r\n\t\t\t\t})\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tthis.$emit(\"input\", null)\r\n\t\tthis.scheduleView = false\r\n\t}\r\n}\r\n\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--13-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ScheduleInstance.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--13-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ScheduleInstance.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ScheduleInstance.vue?vue&type=template&id=52a8df17&\"\nimport script from \"./ScheduleInstance.vue?vue&type=script&lang=ts&\"\nexport * from \"./ScheduleInstance.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.userHeaderFieldValues)?_c('span',[_vm._l((_vm.userHeaderFieldValues),function(labeledValue,fieldId){return [(labeledValue && labeledValue.value)?[(labeledValue.dataType === 'list-multiple' || labeledValue.dataType === 'list-data')?[_vm._l((labeledValue.value),function(listMultipleValue){return [_c('b-badge',{key:listMultipleValue.value,class:(\"user-label user-label-\" + (_vm.sanitizeFieldTitle(labeledValue.fieldTitle))),attrs:{\"variant\":\"primary\"}},[_vm._v(\" \"+_vm._s(listMultipleValue.label)+\" \")])]})]:[_c('b-badge',{key:fieldId,class:(\"user-label user-label-\" + (_vm.sanitizeFieldTitle(labeledValue.fieldTitle))),attrs:{\"variant\":\"primary\"}},[_vm._v(\" \"+_vm._s(_vm.getLabeledValueDisplayLabel(labeledValue))+\" \")])]]:_vm._e()]})],2):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { Component, Vue, Prop } from \"vue-property-decorator\"\r\nimport { LabeledValueWithFieldInfo } from \"@/types/user\"\r\nimport { formatFieldsMixin } from \"@/mixins/formatFieldsMixin\"\r\n\r\n@Component({\r\n\tcomponents: {}\r\n})\r\nexport default class UserHeaderFields extends Vue {\r\n\t@Prop({ default: () => { return {} } })\r\n\tuserHeaderFieldValues!: { [key: string]: LabeledValueWithFieldInfo }\r\n\r\n\tpublic getLabeledValueDisplayLabel (labeledValue: LabeledValueWithFieldInfo): string {\r\n\t\tconst label = formatFieldsMixin.methods.getDisplayLabelFromLabeledValueWithFieldInfo(labeledValue)\r\n\t\treturn label\r\n\t}\r\n\r\n\tpublic sanitizeFieldTitle (title: string) : string {\r\n\t\tconst result = title.replace(/[^a-zA-Z0-9]/g, \"\")\r\n\t\treturn result\r\n\t}\r\n}\r\n\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--13-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserHeaderFields.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--13-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserHeaderFields.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./UserHeaderFields.vue?vue&type=template&id=5868d932&scoped=true&\"\nimport script from \"./UserHeaderFields.vue?vue&type=script&lang=ts&\"\nexport * from \"./UserHeaderFields.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./UserHeaderFields.vue?vue&type=style&index=0&id=5868d932&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"5868d932\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('span',{staticClass:\"p-1\"},[_c('i',{staticClass:\"fa fa-question-circle text-info\",attrs:{\"id\":_vm.iconId}}),_c('b-popover',{attrs:{\"variant\":\"info\",\"triggers\":\"hover focus\",\"target\":_vm.iconId,\"title\":_vm.helpTitle}},[_vm._t(\"default\")],2)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Vue from \"vue\"\r\nimport Component from \"vue-class-component\"\r\nimport Guid from \"@/scripts/guid\"\r\n\r\n@Component({})\r\nexport default class uniqueIdMixin extends Vue {\r\n\tuniqueId = \"\"\r\n\r\n\tcreated () {\r\n\t\tthis.uniqueId = Guid.newGuid()\r\n\t}\r\n}\r\n","\r\nimport { Component, Mixins, Prop } from \"vue-property-decorator\"\r\nimport uniqueIdMixin from \"@/mixins/uniqueIdMixin\"\r\n\r\n/**\r\n * The help icon displays an icon with a popover containing the text specified in the default slot\r\n * You can optionally display a using the help-title prop\r\n */\r\n@Component({})\r\nexport default class HelpIcon extends Mixins(uniqueIdMixin) {\r\n\t@Prop({ type: String, default: \"\" }) helpTitle!: string\r\n\r\n\tprivate get iconId () {\r\n\t\treturn `help-icon-${this.uniqueId}`\r\n\t}\r\n}\r\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--13-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./HelpIcon.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--13-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./HelpIcon.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./HelpIcon.vue?vue&type=template&id=7d89433e&scoped=true&\"\nimport script from \"./HelpIcon.vue?vue&type=script&lang=ts&\"\nexport * from \"./HelpIcon.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"7d89433e\",\n null\n \n)\n\nexport default component.exports","import { TimeSpentEntry } from \"@/types/timeSpentAsValue\"\r\nimport moment from \"moment\"\r\n\r\nexport const formatDateMixin = {\r\n\tmethods: {\r\n\t\tdateStringWithZeroHourOffset (value: Date) {\r\n\t\t\treturn value ? moment(value + \"Z\") : \"\"\r\n\t\t},\r\n\t\tdisplayDateFromISOString (value: Date) {\r\n\t\t\treturn value ? moment(value).format(\"L LT\") : \"\"\r\n\t\t},\r\n\t\tdisplayDateOnlyFromISOString (value: Date) {\r\n\t\t\treturn value ? moment(value).format(\"L\") : \"\"\r\n\t\t},\r\n\t\tdisplayUtcDateOnlyFromISOString (value: Date) {\r\n\t\t\treturn value ? moment.utc(value).format(\"L\") : \"\"\r\n\t\t},\r\n\t\tconvertUtcDateTimeToLocalDateTimeString (value: Date) {\r\n\t\t\treturn value ? moment(value + \"Z\").format(\"L LT\") : \"\"\r\n\t\t},\r\n\t\tconvertUtcDateTimeToLocalTimeString (value: Date) {\r\n\t\t\treturn value ? moment(value + \"Z\").format(\"LT\") : \"\"\r\n\t\t},\r\n\t\tfromNow (value: Date) {\r\n\t\t\treturn value ? moment(value + \"Z\").fromNow() : \"\"\r\n\t\t},\r\n\t\tisoFromNow (value: Date) {\r\n\t\t\treturn value ? moment(value).fromNow() : \"\"\r\n\t\t},\r\n\t\tdisplayUnParkAt (value?: Date) {\r\n\t\t\treturn value ? moment(value + \"Z\").format(\"L LT\") : null\r\n\t\t},\r\n\t\tcurrentDateFormatted () {\r\n\t\t\treturn moment().format()\r\n\t\t},\r\n\t\tendOFDayFormatted () {\r\n\t\t\treturn moment()\r\n\t\t\t\t.endOf(\"day\")\r\n\t\t\t\t.format()\r\n\t\t},\r\n\t\tweekAgoDateFormatted () {\r\n\t\t\treturn moment()\r\n\t\t\t\t.subtract(7, \"days\")\r\n\t\t\t\t.format()\r\n\t\t},\r\n\t\ttoStartOfDay (value: string) {\r\n\t\t\treturn moment(value)\r\n\t\t\t\t.startOf(\"day\")\r\n\t\t\t\t.format()\r\n\t\t},\r\n\t\ttoEndOfDay (value: string) {\r\n\t\t\treturn moment(value)\r\n\t\t\t\t.endOf(\"day\")\r\n\t\t\t\t.format()\r\n\t\t},\r\n\t\trelativeDaysDateFormatted (days: number) {\r\n\t\t\tdays = days === undefined ? 7 : days\r\n\t\t\treturn moment()\r\n\t\t\t\t.subtract(days, \"days\")\r\n\t\t\t\t.format(\"YYYY-MM-DDTHH:mm:ss.000\")\r\n\t\t},\r\n\t\tformatDateStr (dateStr: string, timeOnly = false, convertFromUTC = false, includePeriod = true, dateOnly = false) {\r\n\t\t\tif (dateStr) {\r\n\t\t\t\tif (convertFromUTC && !dateStr.includes(\"Z\")) {\r\n\t\t\t\t\tdateStr += \"Z\"\r\n\t\t\t\t}\r\n\r\n\t\t\t\tconst date = new Date(dateStr)\r\n\r\n\t\t\t\tconst monthNames = [\"Jan\", \"Feb\", \"March\", \"April\", \"May\", \"June\", \"July\", \"Aug\", \"Sept\", \"Oct\", \"Nov\", \"Dec\"]\r\n\r\n\t\t\t\tconst day = date.getDate()\r\n\t\t\t\tconst monthIndex = date.getMonth()\r\n\t\t\t\tconst year = date.getFullYear()\r\n\t\t\t\tconst hours = date.getHours()\r\n\t\t\t\tconst mins = date.getMinutes()\r\n\r\n\t\t\t\tlet formattedDate = \"\"\r\n\r\n\t\t\t\tif (!timeOnly) {\r\n\t\t\t\t\tformattedDate += day + \" \" + monthNames[monthIndex] + \" \" + year\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (!dateOnly) {\r\n\t\t\t\t\tformattedDate += \" \" + (hours < 10 ? \"0\" : \"\") + hours + \":\" + (mins < 10 ? \"0\" : \"\") +\r\n\t\t\t\t\t\tmins + \" \" + (includePeriod ? (hours < 12 ? \"am\" : \"pm\") : \"\")\r\n\t\t\t\t}\r\n\t\t\t\treturn formattedDate.trim()\r\n\t\t\t}\r\n\t\t},\r\n\t\ttimeSpentFormatted (hoursSpent: number): string {\r\n\t\t\tconst days = Math.floor(hoursSpent / 24)\r\n\t\t\tconst hours = Math.floor(hoursSpent % 24)\r\n\t\t\tconst minutes = Math.floor((hoursSpent % 1) * 60)\r\n\r\n\t\t\tlet formattedString = \"\"\r\n\t\t\tif (days >= 1) {\r\n\t\t\t\tformattedString += `${days} day${days > 1 ? \"s\" : \"\"}`\r\n\t\t\t}\r\n\t\t\tif (hours >= 1) {\r\n\t\t\t\tif (days >= 1) {\r\n\t\t\t\t\tformattedString += \", \"\r\n\t\t\t\t}\r\n\t\t\t\tformattedString += `${hours} hour${hours > 1 ? \"s\" : \"\"}`\r\n\t\t\t}\r\n\r\n\t\t\tif (days >= 1) {\r\n\t\t\t\treturn formattedString\r\n\t\t\t}\r\n\r\n\t\t\tif (minutes >= 1) {\r\n\t\t\t\tif (hours >= 1) {\r\n\t\t\t\t\tformattedString += \", \"\r\n\t\t\t\t}\r\n\t\t\t\tformattedString += `${minutes} minute${minutes > 1 ? \"s\" : \"\"}`\r\n\t\t\t\treturn formattedString\r\n\t\t\t}\r\n\r\n\t\t\tif (hours > 0) {\r\n\t\t\t\treturn formattedString\r\n\t\t\t}\r\n\r\n\t\t\treturn \"Under 1 minute\"\r\n\t\t}\r\n\t}\r\n}\r\n\r\nexport const stringMixin = {\r\n\tmethods: {\r\n\t\tisNullOrWhitespace (input: string) {\r\n\t\t\treturn !input || !input.trim()\r\n\t\t}\r\n\t}\r\n}\r\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('b-dropdown',{staticClass:\"m-r-10 m-b-10\",attrs:{\"left\":\"\",\"no-caret\":\"\"},on:{\"hidden\":function($event){_vm.columnFilter = ''}},scopedSlots:_vm._u([{key:\"button-content\",fn:function(){return [_c('span',{staticClass:\"fa-layers fa-fw m-r-5\"},[_c('i',{staticClass:\"fas fa-filter\"}),_c('span',{staticClass:\"fa-layers-counter text-success\"},[_c('i',{staticClass:\"fas fa-plus\"})])]),_vm._v(\" Add filter \")]},proxy:true}])},[_c('b-dropdown-form',[_c('b-form-group',{staticClass:\"m-b-0\"},[_c('b-form-input',{attrs:{\"placeholder\":\"Search columns\"},model:{value:(_vm.columnFilter),callback:function ($$v) {_vm.columnFilter=$$v},expression:\"columnFilter\"}})],1)],1),_c('scrollbar',{staticStyle:{\"max-height\":\"200px\"}},[_vm._l((_vm.filteredFieldColumnGroups),function(columnGroup,index){return [_vm._l((columnGroup),function(column){return _c('b-dropdown-item',{key:column.key,on:{\"click\":function($event){$event.stopPropagation();return _vm.addFilterForColumn(column)}}},[_vm._v(\" \"+_vm._s(column.label)+\" \")])}),(index < (_vm.filteredFieldColumnGroups.length - 1))?_c('b-dropdown-divider',{key:index}):_vm._e()]})],2)],1),(_vm.allowOr)?_c('b-btn',{staticClass:\"m-r-10 m-b-10\",on:{\"click\":_vm.addOr}},[_c('span',{staticClass:\"fa-layers fa-fw m-r-5\"},[_c('i',{staticClass:\"fas fa-filter-list\"}),_c('span',{staticClass:\"fa-layers-counter text-success\"},[_c('i',{staticClass:\"fas fa-plus\"})])]),_vm._v(\" Add Filter \\\"Or\\\" \")]):_vm._e(),_vm._l((_vm.filters),function(filter,index){return _c('search-filter',{key:index,staticClass:\"m-r-10\",attrs:{\"allCaseFields\":_vm.allCaseFields,\"field\":filter.column,\"filterColumnGroups\":_vm.filterColumnGroups,\"value\":filter},on:{\"removeFilter\":function($event){(_vm.removeFilter(filter))},\"filtersChanged\":function($event){_vm.filtersChanged = true}}})}),(_vm.filtersChanged && _vm.showApply)?_c('a',{staticClass:\"btn btn-primary m-b-10\",on:{\"click\":_vm.applyFilters}},[_vm._v(\" Apply \")]):_vm._e(),_vm._t(\"end-content\")],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.value.orFilters)?_c('div',{staticClass:\"d-inline-block bg-secondary p-1\"},[_c('i',{staticClass:\"m-l-5\"},[_vm._v(\"Any of: \")]),_c('column-filters',{attrs:{\"filterColumnGroups\":_vm.filterColumnGroups,\"allCaseFields\":_vm.allCaseFields,\"showApply\":false},model:{value:(_vm.value.orFilters),callback:function ($$v) {_vm.$set(_vm.value, \"orFilters\", $$v)},expression:\"value.orFilters\"}},[_c('template',{slot:\"end-content\"},[_c('a',{staticClass:\"btn btn-secondary m-b-10\",attrs:{\"title\":\"Remove Or block\"},on:{\"click\":_vm.removeFilter}},[_c('i',{staticClass:\"fas fa-times\"})])])],2)],1):_c('div',{staticClass:\"btn-group d-inline-block m-b-10\"},[_c('b-dropdown',{attrs:{\"no-caret\":\"\"},scopedSlots:_vm._u([{key:\"button-content\",fn:function(){return [_c('strong',[_vm._v(_vm._s(_vm.value.columnLabel)+\" \")]),_c('i',[_vm._v(_vm._s(_vm.value.operatorLabel)+\" \")]),_c('strong',[_vm._v(_vm._s(_vm.filterLabel))])]},proxy:true}])},[_c('b-dropdown-form',{staticClass:\"dropdown-width\"},[_c('div',{staticClass:\"p-1\"},[_c('b',[_vm._v(_vm._s(_vm.value.columnLabel))])]),_c('div',{staticClass:\"m-b-10\"},[_c('b-form-group',{staticClass:\"m-b-0\"},[_c('v-select',{staticClass:\"mt-1\",attrs:{\"options\":_vm.filterOperators,\"clearable\":false,\"searchable\":false,\"reduce\":function (o) { return o.operator; },\"placeholder\":\"Operator\"},on:{\"input\":_vm.updateOperator},model:{value:(_vm.value.operator),callback:function ($$v) {_vm.$set(_vm.value, \"operator\", $$v)},expression:\"value.operator\"}})],1)],1),(_vm.value.operator !== _vm.operator.IsSet && _vm.value.operator !== _vm.operator.NotSet)?_c('div',[_c('parameter-value',{attrs:{\"field\":_vm.field,\"allCaseFields\":_vm.allCaseFields,\"searchClauseParameters\":_vm.value.searchClauseParameters,\"dynamicValue\":_vm.value.dynamicValue,\"operator\":_vm.value.operator},on:{\"dynamicValueChanged\":function (dynamic) { return _vm.value.dynamicValue = dynamic; },\"inputLabel\":function (label) { return _vm.value.label = label; },\"searchClauseParametersChanged\":function (searchClauseParameters) { return _vm.searchClauseParametersChanged(_vm.value, searchClauseParameters); }},model:{value:(_vm.value.value),callback:function ($$v) {_vm.$set(_vm.value, \"value\", $$v)},expression:\"value.value\"}})],1):_vm._e()])],1),_c('a',{staticClass:\"btn btn-secondary\",on:{\"click\":_vm.removeFilter}},[_c('i',{staticClass:\"fas fa-times\"})])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\r\nimport { Component, Vue, Watch, Prop } from \"vue-property-decorator\"\r\n\r\nimport { AdvancedSearchFilter, DataType } from \"@/types\"\r\nimport { CaseColumn } from \"@/types/caseColumns\"\r\nimport { Operator, operatorLabels, operatorsByFieldType } from \"@/types/insights/operators\"\r\n\r\nimport moment from \"moment\"\r\n\r\nimport api from \"@/services/api\"\r\nimport vSelect from \"vue-select\"\r\nimport ParameterValue from \"@/components/Controls/ParameterValue.vue\"\r\nimport DataSourceSelect from \"@/components/Fields/DataSourceSelect.vue\"\r\nimport { SearchClauseParameters } from \"@/types/view\"\r\n\r\n@Component({\r\n\tcomponents: {\r\n\t\t\"data-select\": DataSourceSelect,\r\n\t\t\"v-select\": vSelect,\r\n\t\t\"parameter-value\": ParameterValue,\r\n\t\t\"column-filters\": () => import(\"./ColumnFilters.vue\")\r\n\t}\r\n})\r\nexport default class SearchFilter extends Vue {\r\n\t@Prop()\r\n\tvalue!: AdvancedSearchFilter;\r\n\r\n\t@Prop()\r\n\tallCaseFields!: CaseColumn[];\r\n\r\n\t@Prop({ default: () => [] })\r\n\tpublic filterColumnGroups!: CaseColumn[][]\r\n\r\n\t@Prop()\r\n\tfield!: CaseColumn;\r\n\r\n\tfilterValues: any[] = [];\r\n\tfilterSelectedValue: any = null;\r\n\toperator = Operator; // use enum value in markup\r\n\r\n\tget filterOperators (): any[] {\r\n\t\tif (!this.value || !this.value.columnDataType) {\r\n\t\t\treturn []\r\n\t\t}\r\n\r\n\t\tconst fieldTypeOperators = this.field.operators\r\n\t\t\t? this.field.operators\r\n\t\t\t: operatorsByFieldType[this.value.columnDataType]\r\n\t\treturn operatorLabels.filter(o => fieldTypeOperators.indexOf(o.operator) > -1)\r\n\t}\r\n\r\n\tget filterLabel (): string {\r\n\t\tif (!this.value) return \"\"\r\n\r\n\t\tif (this.field.fieldDataType === DataType.dateTime) {\r\n\t\t\tif (this.value.dynamicValue) {\r\n\t\t\t\tif (!isNaN(parseInt(this.value.value!))) {\r\n\t\t\t\t\treturn \"Start of \" + this.value.value\r\n\t\t\t\t} else {\r\n\t\t\t\t\treturn \"Today plus \" + this.value.value + \" days\"\r\n\t\t\t\t}\r\n\t\t\t} else if (this.value.operator === Operator.DateRange) {\r\n\t\t\t\tconst params = this.value.searchClauseParameters\r\n\t\t\t\treturn params ? `between ${params.startDate!.toLocaleDateString()} and ${params.endDate!.toLocaleDateString()}`\r\n\t\t\t\t\t: \"\"\r\n\t\t\t} else {\r\n\t\t\t\treturn this.value.value ? moment(this.value.value).format(\"L\") : \"\"\r\n\t\t\t}\r\n\t\t} else if (this.field.fieldDataType === DataType.timeSpentAsValue) {\r\n\t\t\tconst params = this.value.searchClauseParameters\r\n\t\t\treturn params\r\n\t\t\t\t? `${params.timeSpentClause.searchLabel} for ${params.timeSpentClause.hoursSpent} hours`\r\n\t\t\t\t: \"\"\r\n\t\t} else {\r\n\t\t\treturn this.value.label\r\n\t\t\t\t? this.value.label\r\n\t\t\t\t: this.value.value\r\n\t\t\t\t\t? this.value.value\r\n\t\t\t\t\t: \"\"\r\n\t\t}\r\n\t}\r\n\r\n\tpublic async mounted () {\r\n\t\tif (this.value.columnValues) {\r\n\t\t\tthis.filterValues = await this.value.columnValues(api)\r\n\t\t\tthis.filterSelectedValue = this.filterValues.find(v => v.id === this.value.value)\r\n\t\t}\r\n\t}\r\n\r\n\tprivate updateOperator (newOperator: Operator) {\r\n\t\tif (newOperator === Operator.IsSet || newOperator === Operator.NotSet) {\r\n\t\t\tthis.value.value = \"\"\r\n\t\t\tthis.value.label = null\r\n\t\t}\r\n\r\n\t\tconst newOperatorLabel = operatorLabels.find(o => o.operator === newOperator)\r\n\t\tif (newOperatorLabel) {\r\n\t\t\tthis.value.operatorLabel = newOperatorLabel.label\r\n\t\t} else {\r\n\t\t\tthis.value.operatorLabel = \"\"\r\n\t\t}\r\n\t}\r\n\r\n\tprivate setFilterValue (newValue: any) {\r\n\t\tif (newValue) {\r\n\t\t\tthis.value.value = newValue.id\r\n\t\t\tthis.value.label = this.value.columnListLabel ? newValue[this.value.columnListLabel] : newValue.label\r\n\t\t} else {\r\n\t\t\tthis.value.value = null\r\n\t\t\tthis.value.label = \"\"\r\n\t\t}\r\n\t}\r\n\r\n\tprivate removeFilter () {\r\n\t\tthis.$emit(\"removeFilter\")\r\n\t}\r\n\r\n\tsearchClauseParametersChanged (clause: any, searchClauseParameters: SearchClauseParameters) {\r\n\t\tVue.set(clause, \"searchClauseParameters\", searchClauseParameters)\r\n\t}\r\n}\r\n\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SearchFilter.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SearchFilter.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./SearchFilter.vue?vue&type=template&id=76df99a0&scoped=true&\"\nimport script from \"./SearchFilter.vue?vue&type=script&lang=ts&\"\nexport * from \"./SearchFilter.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./SearchFilter.vue?vue&type=style&index=0&id=76df99a0&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"76df99a0\",\n null\n \n)\n\nexport default component.exports","\r\nimport { Component, Vue, Watch, Prop, Emit } from \"vue-property-decorator\"\r\n\r\nimport { AdvancedSearchFilter } from \"@/types\"\r\nimport { operatorLabels, operatorsByFieldType } from \"@/types/insights/operators\"\r\nimport { CaseColumn } from \"@/types/caseColumns\"\r\n\r\n// @ts-ignore\r\nimport VuePerfectScrollbar from \"vue-perfect-scrollbar\"\r\nimport SearchFilter from \"@/components/Search/SearchFilter.vue\"\r\n\r\n@Component({\r\n\tcomponents: {\r\n\t\t\"search-filter\": SearchFilter,\r\n\t\t\"scrollbar\": VuePerfectScrollbar\r\n\t}\r\n})\r\nexport default class ColumnFilters extends Vue {\r\n\t@Prop()\r\n\tvalue!: AdvancedSearchFilter[]\r\n\r\n\t@Prop()\r\n\tpublic filterColumnGroups!: CaseColumn[][]\r\n\r\n\t@Prop()\r\n\tallCaseFields!: CaseColumn[];\r\n\r\n\t@Prop({ default: false })\r\n\tallowOr!: boolean\r\n\r\n\t@Prop({ default: true })\r\n\tshowApply!: boolean\r\n\r\n\tprivate filters: AdvancedSearchFilter[] = []\r\n\tprivate columnFilter: string = \"\"\r\n\tprivate filtersChanged: boolean = false\r\n\tprivate orClauseKey: string = \"or-1\"\r\n\r\n\tpublic get filteredFieldColumnGroups (): any[][] {\r\n\t\tif (!this.columnFilter) {\r\n\t\t\treturn this.filterColumnGroups\r\n\t\t}\r\n\r\n\t\tconst lowerFilter = this.columnFilter.toLowerCase()\r\n\t\treturn this.filterColumnGroups.map(g => g.filter((c: any) => c.label.toLowerCase().indexOf(lowerFilter) > -1))\r\n\t}\r\n\r\n\tpublic addFilterForColumn (column: CaseColumn) {\r\n\t\tconst columnOperators = column.operators ? column.operators : operatorsByFieldType[column.dataType]\r\n\t\tconst firstOperator = columnOperators && columnOperators.length > 0\r\n\t\t\t? operatorLabels.find(o => o.operator === columnOperators[0])\r\n\t\t\t: null\r\n\r\n\t\tthis.filters.push({\r\n\t\t\tkey: column.key,\r\n\t\t\tcolumnLabel: column.label,\r\n\t\t\tcolumnDataType: column.dataType,\r\n\t\t\tcolumnValues: column.columnValues,\r\n\t\t\tcolumnListLabel: column.listLabel,\r\n\t\t\tfilterKey: column.filterKey,\r\n\t\t\tcolumnDataSource: column.dataSourceId,\r\n\t\t\toperator: firstOperator!.operator,\r\n\t\t\toperatorLabel: firstOperator!.label,\r\n\t\t\tdynamicValue: false,\r\n\t\t\tvalue: \"\",\r\n\t\t\tlabel: null,\r\n\t\t\tcolumn: column\r\n\t\t})\r\n\t}\r\n\tpublic addOr () {\r\n\t\tthis.filters.push({\r\n\t\t\tkey: this.orClauseKey,\r\n\t\t\torFilters: []\r\n\t\t})\r\n\t}\r\n\r\n\tpublic removeFilter (filter: any) {\r\n\t\tthis.filters.splice(this.filters.indexOf(filter), 1)\r\n\t}\r\n\r\n\t@Watch(\"filters\", { deep: true })\r\n\tfiltersUpdated () {\r\n\t\tthis.filtersChanged = true\r\n\t\tthis.$emit(\"input\", this.filters)\r\n\t}\r\n\r\n\t@Emit(\"applyFilters\")\r\n\tapplyFilters () {\r\n\t\tthis.filtersChanged = false\r\n\t}\r\n}\r\n\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ColumnFilters.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ColumnFilters.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ColumnFilters.vue?vue&type=template&id=5a542973&\"\nimport script from \"./ColumnFilters.vue?vue&type=script&lang=ts&\"\nexport * from \"./ColumnFilters.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('div',{staticClass:\"right-align-buttons mb-2\"},[(!_vm.disableGlobal)?_c('b-dropdown',{staticClass:\"mx-1\",attrs:{\"id\":\"globalDropdown\",\"disabled\":!_vm.showGlobalRulesSelection,\"right\":\"\",\"text\":\"Add From Global Setting\",\"variant\":\"primary\",\"size\":\"sm\",\"data-cy\":\"rule-add-global\"}},_vm._l((_vm.globalFormatSettings),function(rule){return _c('b-dropdown-item',{key:rule.title,attrs:{\"id\":rule.id},on:{\"click\":function($event){return _vm.addGlobalRule(rule)}}},[_vm._v(\" \"+_vm._s(rule.title)+\" \")])}),1):_vm._e(),(!_vm.showGlobalRulesSelection)?_c('b-tooltip',{attrs:{\"target\":\"globalDropdown\",\"placement\":\"bottom\"}},[_vm._v(\"There aren't any global rules that can be applied to this column.\")]):_vm._e(),_c('b-button',{attrs:{\"variant\":\"primary\",\"size\":\"sm\",\"data-cy\":\"rule-add-button\"},on:{\"click\":function($event){return _vm.addRule()}}},[_c('i',{staticClass:\"fas fa-plus\"}),_vm._v(\" Add Rule \")])],1),_c('table',{staticClass:\"table b-table\"},[_c('draggable',_vm._b({attrs:{\"handle\":\".handle\",\"tag\":\"tbody\"},on:{\"end\":_vm.dragEnd},model:{value:(_vm.currentValue),callback:function ($$v) {_vm.currentValue=$$v},expression:\"currentValue\"}},'draggable',_vm.dragOptions,false),_vm._l((_vm.currentValue),function(rule,index){return _c('tr',{key:index,attrs:{\"data-cy\":\"rule-row\"}},[_c('td',{staticStyle:{\"width\":\"50px\"}},[_c('i',{staticClass:\"handle fa fa-grip-dots-vertical\",attrs:{\"title\":\"Drag\"}})]),_c('td',{staticClass:\"p-2\",staticStyle:{\"width\":\"40%\"}},[_c('div',[_c('b',[_vm._v(\"Condition:\")])]),_c('v-select',{staticClass:\"m-b-10\",attrs:{\"options\":_vm.optionsForField,\"label\":\"label\",\"reduce\":function (i) { return i.operator; },\"append-to-body\":\"\"},model:{value:(rule.operator),callback:function ($$v) {_vm.$set(rule, \"operator\", $$v)},expression:\"rule.operator\"}},[_c('template',{slot:\"no-options\"},[_vm._v(\"Type to search\")])],2),(rule.operator !== null && rule.operator !== _vm.Operator.IsSet && rule.operator !== _vm.Operator.NotSet)?_c('parameter-value',{attrs:{\"dynamicValue\":rule.dynamicValue,\"allCaseFields\":_vm.columns,\"field\":_vm.column,\"operator\":rule.operator},on:{\"dynamicValueChanged\":function (dynamic) { return _vm.dynamicValueChanged(rule, dynamic); }},model:{value:(rule.value),callback:function ($$v) {_vm.$set(rule, \"value\", $$v)},expression:\"rule.value\"}}):_vm._e()],1),_c('td',{staticClass:\"p-2\"},[_c('div',[_c('b',[_vm._v(\"Formatting:\")])]),_c('b-checkbox',{staticClass:\"center-label\",attrs:{\"data-cy\":\"setBackground\"},on:{\"input\":function($event){return _vm.clearValues(rule)}},model:{value:(rule.setBackgroundColor),callback:function ($$v) {_vm.$set(rule, \"setBackgroundColor\", $$v)},expression:\"rule.setBackgroundColor\"}},[_vm._v(\" Background Color \")]),(rule.setBackgroundColor)?_c('div',{staticClass:\"m-l-20 m-b-5\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(rule.backgroundColor),expression:\"rule.backgroundColor\"}],attrs:{\"type\":\"color\"},domProps:{\"value\":(rule.backgroundColor)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(rule, \"backgroundColor\", $event.target.value)}}})]):_vm._e(),_c('b-checkbox',{staticClass:\"center-label\",attrs:{\"data-cy\":\"setText\"},on:{\"input\":function($event){return _vm.clearValues(rule)}},model:{value:(rule.setTextColor),callback:function ($$v) {_vm.$set(rule, \"setTextColor\", $$v)},expression:\"rule.setTextColor\"}},[_vm._v(\" Text Color \")]),(rule.setTextColor)?_c('div',{staticClass:\"m-l-20 m-b-5\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(rule.textColor),expression:\"rule.textColor\"}],attrs:{\"type\":\"color\"},domProps:{\"value\":(rule.textColor)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(rule, \"textColor\", $event.target.value)}}})]):_vm._e(),(_vm.column.dataType==='number')?_c('div',[_c('b-checkbox',{attrs:{\"data-cy\":\"setBar\"},on:{\"input\":function($event){return _vm.clearValues(rule)}},model:{value:(rule.setBar),callback:function ($$v) {_vm.$set(rule, \"setBar\", $$v)},expression:\"rule.setBar\"}},[_vm._v(\" Background Bar \")]),(rule.setBar)?_c('div',{staticClass:\"m-l-20 m-b-5\"},[_c('div',[_c('span',{staticClass:\"m-r-20\"},[_vm._v(\"Bar Color\")]),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(rule.barColor),expression:\"rule.barColor\"}],attrs:{\"type\":\"color\"},domProps:{\"value\":(rule.barColor)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(rule, \"barColor\", $event.target.value)}}})]),_c('div',[_c('span',{staticClass:\"m-r-20\"},[_vm._v(\"Bar Maximum\")]),_c('b-form-group',[(_vm.numericColumns.length > 0)?_c('div',[_c('b-form-radio',{attrs:{\"name\":\"maxMode\",\"value\":\"relative\"},on:{\"input\":function($event){return _vm.clearValues(rule)}},model:{value:(rule.setBarMaximum),callback:function ($$v) {_vm.$set(rule, \"setBarMaximum\", $$v)},expression:\"rule.setBarMaximum\"}},[_vm._v(\" Relative to separate column \")]),(rule.setBarMaximum === 'relative')?_c('v-select',{staticClass:\"m-b-10\",attrs:{\"options\":_vm.numericColumns,\"label\":\"label\",\"reduce\":function (i) { return i.key; },\"append-to-body\":\"\"},model:{value:(rule.barMaximum),callback:function ($$v) {_vm.$set(rule, \"barMaximum\", $$v)},expression:\"rule.barMaximum\"}},[_c('template',{slot:\"no-options\"},[_vm._v(\"Type to search\")])],2):_vm._e()],1):_vm._e(),_c('b-form-radio',{attrs:{\"name\":\"maxMode\",\"value\":\"maximum\"},on:{\"input\":function($event){return _vm.clearValues(rule)}},model:{value:(rule.setBarMaximum),callback:function ($$v) {_vm.$set(rule, \"setBarMaximum\", $$v)},expression:\"rule.setBarMaximum\"}},[_vm._v(\" Maximum value in column \")]),_c('b-form-radio',{attrs:{\"name\":\"maxMode\",\"value\":\"constant\"},on:{\"input\":function($event){return _vm.clearValues(rule)}},model:{value:(rule.setBarMaximum),callback:function ($$v) {_vm.$set(rule, \"setBarMaximum\", $$v)},expression:\"rule.setBarMaximum\"}},[_vm._v(\" As constant value \")]),(rule.setBarMaximum === 'constant')?_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(rule.barMaximum),expression:\"rule.barMaximum\"}],staticClass:\"form-control\",attrs:{\"type\":\"number\"},domProps:{\"value\":(rule.barMaximum)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(rule, \"barMaximum\", $event.target.value)}}}):_vm._e()],1)],1)]):_vm._e()],1):_vm._e(),_c('b-checkbox',{attrs:{\"data-cy\":\"setIcon\"},on:{\"input\":function($event){return _vm.clearValues(rule)}},model:{value:(rule.setIcon),callback:function ($$v) {_vm.$set(rule, \"setIcon\", $$v)},expression:\"rule.setIcon\"}},[_vm._v(\" Icon \")]),(rule.setIcon)?_c('div',{staticClass:\"m-l-20\"},[_c('div',[_c('span',{staticClass:\"m-r-20\"},[_vm._v(\"Icon Color\")]),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(rule.iconColor),expression:\"rule.iconColor\"}],attrs:{\"type\":\"color\"},domProps:{\"value\":(rule.iconColor)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(rule, \"iconColor\", $event.target.value)}}})]),_c('div',[_c('span',{staticClass:\"m-r-20\"},[_vm._v(\"Icon\")]),_c('v-select',{staticClass:\"m-b-10\",attrs:{\"options\":_vm.iconOptions,\"label\":\"label\",\"reduce\":function (i) { return i.key; },\"append-to-body\":\"\"},model:{value:(rule.icon),callback:function ($$v) {_vm.$set(rule, \"icon\", $$v)},expression:\"rule.icon\"}},[_c('template',{slot:\"no-options\"},[_vm._v(\"Type to search\")])],2)],1)]):_vm._e()],1),_c('td',[_c('span',{staticClass:\"badge badge-pill btn btn-danger btn-small btn-circle\",on:{\"click\":function($event){$event.stopPropagation();$event.preventDefault();return _vm.removeRule(rule)}}},[_c('span',{staticClass:\"fas fa-times\"})])])])}),0)],1)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { Component, Vue, Watch, Prop } from \"vue-property-decorator\"\r\nimport { namespace, Getter, Mutation, Action } from \"vuex-class\"\r\n\r\nimport ApiFormattingRuleSettings from \"@/services/api_FormattingRuleSettings.ts\"\r\n\r\nimport { CaseColumn, caseColumns } from \"@/types/caseColumns\"\r\nimport { FormattingRule, operatorsByFieldType, operatorLabels, DataType, Operator } from \"@/types/insights\"\r\nimport { FormattingRuleSetting } from \"@/types/insights/formattingRuleSetting\"\r\n\r\n// @ts-ignore\r\nimport draggable from \"vuedraggable\"\r\nimport vSelect from \"vue-select\"\r\nimport VuePerfectScrollbar from \"vue-perfect-scrollbar\"\r\nimport ParameterValue from \"./ParameterValue.vue\"\r\n\r\n@Component({\r\n\tcomponents: {\r\n\t\t\"v-select\": vSelect,\r\n\t\t\"parameter-value\": ParameterValue,\r\n\t\t\"scrollbar\": VuePerfectScrollbar,\r\n\t\tdraggable\r\n\t}\r\n})\r\nexport default class ColumnFormatting extends Vue {\r\n\t@Prop({ default: () => null })\r\n\tcolumn!: CaseColumn | null\r\n\r\n\t@Prop({ default: () => [] })\r\n\tcolumns!: CaseColumn[]\r\n\r\n\t@Prop({ default: () => [] })\r\n\tvalue!: FormattingRule[]\r\n\r\n\t@Prop({ default: () => false })\r\n\tdisableGlobal!: boolean\r\n\r\n\tOperator = Operator;\r\n\tcurrentValue: FormattingRule[] = []\r\n\r\n\t/** Global settings allow saving formatting rules. */\r\n\tglobalFormatSettings: FormattingRuleSetting[] = []\r\n\tselectedGlobalSetting: FormattingRuleSetting | null = null\r\n\r\n\tget dragOptions () {\r\n\t\treturn {\r\n\t\t\tanimation: 200,\r\n\t\t\tdisabled: false,\r\n\t\t\tghostClass: \"ghost\"\r\n\t\t}\r\n\t}\r\n\r\n\tget iconOptions () {\r\n\t\treturn [\r\n\t\t\t{\r\n\t\t\t\tkey: \"fa-caret-up\",\r\n\t\t\t\tlabel: \"Caret Up\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tkey: \"fa-caret-down\",\r\n\t\t\t\tlabel: \"Caret Down\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tkey: \"fa-exclamation-triangle\",\r\n\t\t\t\tlabel: \"Exclamation Triangle\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tkey: \"fa-exclamation-circle\",\r\n\t\t\t\tlabel: \"Exclamation Circle\"\r\n\t\t\t}\r\n\t\t]\r\n\t}\r\n\r\n\tget optionsForField () {\r\n\t\tif (!this.column) {\r\n\t\t\treturn []\r\n\t\t}\r\n\r\n\t\tvar operators = this.column.operators ? this.column.operators : operatorsByFieldType[this.column.dataType]\r\n\t\tif (!operators) {\r\n\t\t\treturn []\r\n\t\t}\r\n\t\treturn operatorLabels.filter((o: any) => operators.indexOf(o.operator) > -1)\r\n\t}\r\n\r\n\tget numericColumns () {\r\n\t\treturn this.columns.filter(c => c.fieldDataType === DataType.number)\r\n\t}\r\n\r\n\tasync mounted () {\r\n\t\tthis.currentValue = this.value\r\n\r\n\t\tif (this.disableGlobal === false && this.column !== null &&\r\n\t\t\t(caseColumns.firstOrDefault(cc => cc.key === this.column!.key) === null ||\r\n\t\t\tcaseColumns.firstOrDefault(cc => cc.key === this.column!.key).operators === undefined)\r\n\t\t) {\r\n\t\t\tlet globalFormattingRules = await ApiFormattingRuleSettings.formattingRuleSettingsList()\r\n\t\t\tif (globalFormattingRules && globalFormattingRules.length > 0) {\r\n\t\t\t\tthis.globalFormatSettings = (globalFormattingRules)!.filter(rule => rule.dataType === this.column!.dataType)\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t@Watch(\"value\")\r\n\tonValueChanged (newValue: FormattingRule[]) {\r\n\t\tthis.currentValue = newValue\r\n\t}\r\n\r\n\t/** Resets the conditions for each formatting rule if the datatype of the column changes. */\r\n\t@Watch(\"column.dataType\")\r\n\tprivate OnDataTypeChange () {\r\n\t\tthis.currentValue.forEach((item) => {\r\n\t\t\titem.value = undefined\r\n\t\t\titem.operator = null\r\n\t\t})\r\n\t}\r\n\r\n\tdragEnd () {\r\n\t\tthis.$emit(\"input\", this.currentValue)\r\n\t}\r\n\r\n\taddRule () {\r\n\t\tthis.currentValue.push({\r\n\t\t\tsetTextColor: false,\r\n\t\t\tsetBackgroundColor: false,\r\n\t\t\tsetBar: false,\r\n\t\t\tsetIcon: false,\r\n\t\t\tbarMaximum: null,\r\n\t\t\tsetBarMaximum: null,\r\n\t\t\tvalue: null,\r\n\t\t\toperator: null,\r\n\t\t\tdynamicValue: false\r\n\t\t})\r\n\t\tthis.$emit(\"input\", this.currentValue)\r\n\t}\r\n\r\n\taddGlobalRule (formatSetting: FormattingRuleSetting) {\r\n\t\tif (formatSetting.formattingRules != null) {\r\n\t\t\tthis.currentValue = this.currentValue.concat(formatSetting.formattingRules)\r\n\t\t}\r\n\t\tthis.$emit(\"input\", this.currentValue)\r\n\t}\r\n\r\n\tremoveRule (rule: FormattingRule) {\r\n\t\tthis.currentValue.remove(rule)\r\n\t\tthis.$emit(\"input\", this.currentValue)\r\n\t}\r\n\r\n\tclearValues (rule: FormattingRule) {\r\n\t\tif (!rule.setIcon) {\r\n\t\t\trule.icon = null\r\n\t\t\trule.iconColor = null\r\n\t\t}\r\n\r\n\t\tif (!rule.setBackgroundColor) {\r\n\t\t\trule.backgroundColor = null\r\n\t\t}\r\n\r\n\t\tif (!rule.setTextColor) {\r\n\t\t\trule.textColor = null\r\n\t\t}\r\n\r\n\t\tif (!rule.setBar) {\r\n\t\t\trule.barColor = null\r\n\t\t\trule.barMaximum = null\r\n\t\t\trule.setBarMaximum = null\r\n\t\t}\r\n\t}\r\n\r\n\tdynamicValueChanged (rule: FormattingRule, dynamic: boolean) {\r\n\t\trule.dynamicValue = dynamic !== null ? dynamic : false\r\n\t}\r\n\r\n\tprivate get showGlobalRulesSelection () {\r\n\t\treturn this.globalFormatSettings.length > 0\r\n\t}\r\n}\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ColumnFormatting.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ColumnFormatting.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ColumnFormatting.vue?vue&type=template&id=a4f584f0&scoped=true&\"\nimport script from \"./ColumnFormatting.vue?vue&type=script&lang=ts&\"\nexport * from \"./ColumnFormatting.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./ColumnFormatting.vue?vue&type=style&index=0&id=a4f584f0&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"a4f584f0\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"d-flex flex-column\"},[_c('b-form-input',{attrs:{\"type\":\"text\",\"autocomplete\":\"off\",\"readonly\":true},model:{value:(_vm.trackingCaseFieldName),callback:function ($$v) {_vm.trackingCaseFieldName=$$v},expression:\"trackingCaseFieldName\"}}),(_vm.timeSpentAsValue && _vm.timeSpentAsValue.entries.length > 0)?_c('div',[_c('table',{staticClass:\"table b-table table-sm\"},[_vm._m(0),_c('tbody',_vm._l((this.timeSpentAsValue.totals),function(row){return _c('tr',{key:row.fieldValue,class:{'highlight-row': row.currentlySet},attrs:{\"data-cy\":\"timeSpent-row\"}},[(row.fieldValue === null)?[_c('td',{staticClass:\"font-weight-bold font-italic\",attrs:{\"data-cy\":\"timeSpent-value\"}},[_vm._v(\" No Value Set \")])]:[_c('td',{attrs:{\"data-cy\":\"timeSpent-value\"}},[_vm._v(\" \"+_vm._s(row.fieldValue)+\" \")])],_c('td',[_vm._v(\" \"+_vm._s(_vm.displayDateFromISOString(row.firstSet))+\" \")]),_c('td',[_vm._v(\" \"+_vm._s(_vm.timeSpentFormatted(row.hoursSpent))+\" \")])],2)}),0)])]):_vm._e(),(_vm.timeSpentAsValue && _vm.timeSpentAsValue.isClosed)?_c('div',{attrs:{\"data-cy\":\"timeSpent-closedMessage\"}},[_vm._v(\" Case has been closed, no more time is being tracked \"),(_vm.timeSpentAsValue.entries.length > 0)?_c('div',[_vm._v(\" Last value set: \"+_vm._s(_vm.lastValueSet)+\" \")]):_vm._e()]):_vm._e()],1)}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('thead',[_c('tr',[_c('th',[_vm._v(\" Value \")]),_c('th',[_vm._v(\" First Set At \")]),_c('th',[_vm._v(\" Time Spent \")])])])}]\n\nexport { render, staticRenderFns }","\r\nimport { Component, Vue, Watch, Prop } from \"vue-property-decorator\"\r\nimport { namespace, Getter, Action } from \"vuex-class\"\r\nimport _ from \"lodash\"\r\n\r\nimport { CaseDetails, CaseField } from \"@/types\"\r\n\r\nimport { formatDateMixin } from \"@/mixins/formatDateMixin\"\r\n\r\nimport { TimeSpentAsValue, TimeSpentTotal, TimeSpentEntry } from \"@/types/timeSpentAsValue\"\r\nimport moment from \"moment\"\r\nimport { caseColumns } from \"@/types/caseColumns\"\r\nconst caseStore = namespace(\"cases\")\r\n\r\n@Component({\r\n})\r\nexport default class TimeSpentDisplay extends Vue {\r\n\t@Prop()\r\n\tpublic caseField!: CaseField\r\n\r\n\t@Prop()\r\n\tpublic timeSpentAsValue!: TimeSpentAsValue;\r\n\r\n\t@Prop()\r\n\tpublic currentCase!: CaseDetails;\r\n\r\n\tpublic get trackingFieldId (): string {\n\t\tconst extensions = this.caseField.field.extensions ? this.caseField.field.extensions : (this.caseField.field as any).fieldExtensions\r\n\t\tif (!extensions) {\r\n\t\t\tthrow Error(\"No field extension\")\r\n\t\t}\r\n\t\treturn extensions.trackingFieldId\r\n\t}\r\n\r\n\tpublic get trackingCaseFieldName (): string {\n\t\t// if a user defined field\r\n\t\tif (this.currentCase.fields[this.trackingFieldId]) {\r\n\t\t\treturn this.currentCase.fields[this.trackingFieldId].field.title\r\n\t\t}\r\n\r\n\t\t// else a built in/global field\r\n\t\tconst builtInField = caseColumns.find(c => c.key === this.trackingFieldId)\r\n\t\tif (builtInField) {\r\n\t\t\treturn builtInField.label\r\n\t\t}\r\n\r\n\t\treturn \"Error: Could not find tracking field\"\r\n\t}\r\n\r\n\tpublic get lastValueSet (): string {\r\n\t\tconst lastValue = _.chain(this.timeSpentAsValue.entries)\r\n\t\t\t.orderBy(\"started\")\r\n\t\t\t.last()\r\n\t\t\t.value()\r\n\t\t\t.fieldValue\r\n\r\n\t\treturn lastValue || \"No Value Set\"\r\n\t}\r\n}\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TimeSpentDisplay.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TimeSpentDisplay.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./TimeSpentDisplay.vue?vue&type=template&id=1e0c047a&\"\nimport script from \"./TimeSpentDisplay.vue?vue&type=script&lang=ts&\"\nexport * from \"./TimeSpentDisplay.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/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 { FilePendingUpload } from \"@/types/caseFile\"\r\n\r\nimport api from \"@/services/api\"\r\n\r\nexport default class FileService {\r\n\tpublic uploadFiles: FilePendingUpload[] = []\r\n\tprivate currentCaseId: string | null = null\r\n\r\n\tpublic filesUpdated: () => void\r\n\r\n\tpublic constructor (filesUpdated: () => void) {\r\n\t\tthis.filesUpdated = filesUpdated\r\n\t}\r\n\r\n\tpublic get caseId (): string | null {\r\n\t\treturn this.currentCaseId\r\n\t}\r\n\tpublic set caseId (value: string | null) {\r\n\t\tif (value !== this.currentCaseId) {\r\n\t\t\tthis.uploadFiles = []\r\n\t\t}\r\n\r\n\t\tthis.currentCaseId = value\r\n\t}\r\n\r\n\tpublic clear () {\r\n\t\tthis.uploadFiles = []\r\n\t}\r\n\r\n\tpublic addFiles (files: FilePendingUpload[]) {\r\n\t\tfiles.forEach(file => {\r\n\t\t\tthis.uploadFiles.push(file)\r\n\t\t})\r\n\t\tif (!this.caseId) {\r\n\t\t\treturn\r\n\t\t}\r\n\r\n\t\tfiles.forEach(file => {\r\n\t\t\tif (file.uploadRun) {\r\n\t\t\t\treturn\r\n\t\t\t}\r\n\t\t\tfile.uploadRun = true\r\n\t\t\tthis.uploadFile(file)\r\n\t\t})\r\n\t}\r\n\r\n\tpublic deleteFile (fileId: string) {\r\n\t\tapi.deleteFile(fileId).then(() => {\r\n\t\t\tthis.filesUpdated()\r\n\t\t})\r\n\t}\r\n\r\n\tpublic async uploadPendingFiles (caseId: string) {\r\n\t\tthis.currentCaseId = caseId\r\n\t\tconsole.log(this.uploadFiles)\r\n\t\tthis.uploadFiles.forEach(file => {\r\n\t\t\tif (file.uploadRun) {\r\n\t\t\t\treturn\r\n\t\t\t}\r\n\t\t\tfile.uploadRun = true\r\n\t\t\tconsole.log(\"Uploading \" + file.name)\r\n\t\t\tthis.uploadFile(file)\r\n\t\t})\r\n\t}\r\n\r\n\tprivate uploadFile (uploadFile: FilePendingUpload) {\r\n\t\tconst uploadFormData = new FormData()\r\n\t\tuploadFormData.append(\"file\", uploadFile.fileData)\r\n\r\n\t\tuploadFile.uploading = true\r\n\t\tuploadFile.uploadPercentage = 0\r\n\r\n\t\tapi.uploadFiles(this.caseId!, uploadFile.fieldId, uploadFormData, (e: ProgressEvent) => {\r\n\t\t\tuploadFile.uploadPercentage = Math.round(e.loaded * 100 / e.total)\r\n\t\t},\r\n\t\t(errorMessage: string) => {\r\n\t\t\tuploadFile.failed = true\r\n\t\t\tuploadFile.error = errorMessage\r\n\t\t\tuploadFile.uploading = false\r\n\t\t\tuploadFile.success = false\r\n\r\n\t\t\tconsole.log(\"Failed.\")\r\n\t\t},\r\n\t\t() => {\r\n\t\t\tif (!uploadFile.failed) {\r\n\t\t\t\tuploadFile.uploading = false\r\n\t\t\t\tuploadFile.success = true\r\n\r\n\t\t\t\tthis.uploadFiles.remove(uploadFile)\r\n\t\t\t\tif (this.uploadFiles.length === 0) {\r\n\t\t\t\t\tthis.filesUpdated()\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t})\r\n\t}\n}\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('b-checkbox',{model:{value:(_vm.bulkCreateEnabled),callback:function ($$v) {_vm.bulkCreateEnabled=$$v},expression:\"bulkCreateEnabled\"}}),(_vm.bulkCreateEnabled)?_c('v-select',{attrs:{\"label\":\"title\",\"append-to-body\":\"\",\"multiple\":\"\",\"value\":_vm.value,\"options\":_vm.teams,\"reduce\":function (team) { return team.id; }},on:{\"input\":_vm.valueUpdate}}):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\nimport { Component, Vue, Prop } from \"vue-property-decorator\"\r\nimport { namespace } from \"vuex-class\"\r\n\r\nimport vSelect from \"vue-select\"\r\n// @ts-ignore\r\nimport VuePerfectScrollbar from \"vue-perfect-scrollbar\"\r\nimport { Team } from \"@/types\"\r\n\r\nconst setup = namespace(\"setup\")\r\n\r\n@Component({\r\n\tcomponents: {\r\n\t\t\"v-select\": vSelect,\r\n\t\t\"scrollbar\": VuePerfectScrollbar\r\n\t}\r\n})\r\nexport default class CreateForTeam extends Vue {\r\n\t@Prop()\r\n\tvalue!: string[] | null;\r\n\r\n\t@setup.State\r\n\tteams!: Team[]\r\n\r\n\t@setup.Action\r\n\tloadTeams!: () => Promise\r\n\r\n\tpublic get bulkCreateEnabled (): boolean {\r\n\t\treturn this.value !== null\r\n\t}\r\n\r\n\tpublic set bulkCreateEnabled (value: boolean) {\r\n\t\tif (value) {\r\n\t\t\tthis.$emit(\"input\", this.value ? this.value : [])\r\n\t\t} else {\r\n\t\t\tthis.$emit(\"input\", null)\r\n\t\t}\r\n\t}\r\n\r\n\tpublic async mounted () {\r\n\t\tif (this.teams.length === 0) {\r\n\t\t\tawait this.loadTeams()\r\n\t\t}\r\n\r\n\t\tif (this.value === undefined) {\r\n\t\t\tthis.$emit(\"input\", null)\r\n\t\t}\r\n\r\n\t\tif (this.value && this.value.length === 0) {\r\n\t\t\t// Revert to default on load if nothing selected\r\n\t\t\tthis.bulkCreateEnabled = false\r\n\t\t}\r\n\t}\r\n\r\n\tpublic valueUpdate (newValue: string[]): void {\r\n\t\tthis.$emit(\"input\", newValue)\r\n\t}\r\n}\r\n\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--13-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CreateForTeam.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--13-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CreateForTeam.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./CreateForTeam.vue?vue&type=template&id=2fbb2c83&scoped=true&\"\nimport script from \"./CreateForTeam.vue?vue&type=script&lang=ts&\"\nexport * from \"./CreateForTeam.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"2fbb2c83\",\n null\n \n)\n\nexport default component.exports","import { CurrentUser } from \"@/types/user\"\r\nimport { UserWithFields } from \"./../types/user\"\r\nimport { Component, Vue, Watch, Prop, InjectReactive } from \"vue-property-decorator\"\r\nimport { DataType, dataTypeByFieldType, TemplateDetails, TimeZone } from \"@/types\"\r\nimport { CaseColumn, caseColumns } from \"@/types/caseColumns\"\r\nimport { DayOfMonth, DayOfWeek, Schedule, ScheduleFreq } from \"@/types/schedule\"\r\n\r\nimport moment from \"moment\"\r\n\r\nimport api from \"@/services/api\"\r\n\r\nimport DateTime from \"@/components/Fields/DateTime.vue\"\r\nimport CreateForTeam from \"@/components/Config/Schedules/CreateForTeam.vue\"\r\nimport FieldAndValue from \"@/components/Controls/FieldAndValue.vue\"\r\nimport ScheduleSetting, { LabeledValue } from \"@/types/scheduleSettings\"\r\nimport { Folder, FolderType } from \"@/types/folder\"\r\nimport _ from \"lodash\"\r\n\r\nexport default class ScheduleEditService {\n\tpublic templates: TemplateDetails[] = []\r\n\tpublic fields: CaseColumn[] = []\r\n\tpublic timeZones: TimeZone[] = []\r\n\tpublic currentUser: CurrentUser | null = null\r\n\r\n\tpublic scheduleSetting: ScheduleSetting = {\r\n\t\tid: undefined,\r\n\t\ttenantId: undefined,\r\n\t\tdefaultFieldValues: {}\r\n\t};\r\n\r\n\t// The schedule being edited\r\n\tpublic currentSchedule: Schedule | null = null;\r\n\r\n\t// The initial template of the schedule being edited\r\n\tpublic initialTemplateId: string | null = null\r\n\r\n\tpublic selectedTemplate: TemplateDetails | null = null\r\n\tpublic availableFields: CaseColumn[] | null = null\r\n\tprivate folders: { [title:string]: Folder } = {}\r\n\r\n\tprivate generatingCase: boolean = false\r\n\tprivate filterOutCaseColumns = [\"created\", \"closed\", \"openForDays\", \"isClosed\", \"templateId\", \"caseNumber\", \"lastUpdated\", \"hiddenFromInsights\", \"deleted\"]\r\n\r\n\tprivate get scheduleFreqOptions () {\r\n\t\treturn [\r\n\t\t\t{\r\n\t\t\t\ttitle: \"Once\",\r\n\t\t\t\tid: ScheduleFreq.Once\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\ttitle: \"Daily\",\r\n\t\t\t\tid: ScheduleFreq.Daily\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\ttitle: \"Weekly\",\r\n\t\t\t\tid: ScheduleFreq.Weekly\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\ttitle: \"Monthly\",\r\n\t\t\t\tid: ScheduleFreq.Monthly\r\n\t\t\t}\r\n\t\t]\r\n\t}\r\n\r\n\tprivate get dayOptions () {\r\n\t\treturn [\r\n\t\t\t{\r\n\t\t\t\ttitle: \"Monday\",\r\n\t\t\t\tid: DayOfWeek.Monday\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\ttitle: \"Tuesday\",\r\n\t\t\t\tid: DayOfWeek.Tuesday\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\ttitle: \"Wednesday\",\r\n\t\t\t\tid: DayOfWeek.Wednesday\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\ttitle: \"Thursday\",\r\n\t\t\t\tid: DayOfWeek.Thursday\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\ttitle: \"Friday\",\r\n\t\t\t\tid: DayOfWeek.Friday\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\ttitle: \"Saturday\",\r\n\t\t\t\tid: DayOfWeek.Saturday\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\ttitle: \"Sunday\",\r\n\t\t\t\tid: DayOfWeek.Sunday\r\n\t\t\t}\r\n\t\t]\r\n\t}\r\n\r\n\tpublic get availableTemplates () : {id: string, title: string}[] {\r\n\t\tif (!this.templates) return []\r\n\r\n\t\t// Only show templates that are marked as 'Available for Scheduling'\r\n\t\tvar availableTemplates = this.templates.filter(t => t.templateSchedule && t.templateSchedule.schedulingAvailable && t.templateSchedule.schedulingPermissions)\r\n\r\n\t\t// Only show templates that the user has permissions for\r\n\t\tavailableTemplates = availableTemplates.filter(t => t.templateSchedule!.schedulingPermissions!.length === 0 ||\r\n\t\t\tt.templateSchedule!.schedulingPermissions!.some((teamId: any) => this.currentUser!.teams.find((team: any) => team.id === teamId)))\r\n\r\n\t\t// Ensure the current schedules template is available\r\n\t\tif (this.currentSchedule && this.currentSchedule.templateId && !availableTemplates.find(t => t.id === this.currentSchedule!.templateId)) {\r\n\t\t\tvar selectedTemplate = this.templates.find(t => t.id === this.currentSchedule!.templateId)\r\n\t\t\tif (selectedTemplate) {\r\n\t\t\t\tavailableTemplates.push(selectedTemplate)\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn [\r\n\t\t\t...availableTemplates.map((template:any) => {\r\n\t\t\t\treturn {\r\n\t\t\t\t\tid: template.id,\r\n\t\t\t\t\ttitle: template.title\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t].sort((a, b) => a.title.localeCompare(b.title))\r\n\t}\r\n\r\n\tpublic templateChanged (selectedTemplateId: string | null, applyDefaultValues: boolean) {\n\t\tthis.selectedTemplate = selectedTemplateId\r\n\t\t\t? this.templates.find(t => t.id === selectedTemplateId) || null\r\n\t\t\t: null\r\n\r\n\t\t// Set available Fields\r\n\t\tthis.availableFields = []\r\n\t\tif (selectedTemplateId) {\r\n\t\t\tif (this.selectedTemplate) {\r\n\t\t\t\tvar fieldsInTemplate = this.fields.filter(field => caseColumns.find(f => f.key === field.key) || this.selectedTemplate!.fields.find(f => f.field.id === field.key))\r\n\r\n\t\t\t\t// Check if the fields are available in template scheduling\r\n\t\t\t\tif (this.selectedTemplate!.templateSchedule && this.selectedTemplate!.templateSchedule!.schedulingFields!.length !== 0) {\r\n\t\t\t\t\tthis.availableFields = fieldsInTemplate.filter(field => this.selectedTemplate!.templateSchedule!.schedulingFields!.find(f => f === field.key))\r\n\t\t\t\t} else {\r\n\t\t\t\t\tthis.availableFields = fieldsInTemplate\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\t// If template can't be found, allow anything just in case\r\n\t\t\t\tthis.availableFields = this.fields\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (!this.currentSchedule!.fields) {\r\n\t\t\treturn\r\n\t\t}\r\n\r\n\t\tif (selectedTemplateId) {\r\n\t\t\t// Remove any fields that are not available\r\n\t\t\tObject.keys(this.currentSchedule!.fields).forEach(fieldId => {\r\n\t\t\t\tif (!this.availableFields!.find(f => f.key === fieldId)) {\r\n\t\t\t\t\tdelete this.currentSchedule!.fields[fieldId]\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t}\r\n\r\n\t\tif (applyDefaultValues) {\r\n\t\t\t// Apply field defaults if the field has not been set\r\n\t\t\tthis.availableFields!.forEach(f => {\r\n\t\t\t\tif (!this.currentSchedule!.fields[f.key]) {\r\n\t\t\t\t\tif (this.selectedTemplate && this.selectedTemplate.templateSchedule && this.selectedTemplate.templateSchedule!.defaultValues![f.key]) {\r\n\t\t\t\t\t\t// Apply Template Specific default values\r\n\t\t\t\t\t\tthis.currentSchedule!.fields[f.key] = this.selectedTemplate!.templateSchedule!.defaultValues![f.key]\r\n\t\t\t\t\t} else if (this.scheduleSetting!.defaultFieldValues[f.key]) {\r\n\t\t\t\t\t\t// Apply generic default values\r\n\t\t\t\t\t\tthis.currentSchedule!.fields[f.key] = this.scheduleSetting!.defaultFieldValues[f.key]\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t}\r\n\r\n\t\t// Sort current schedule fields.\r\n\t\tif (this.currentSchedule && this.currentSchedule.fields && this.selectedTemplate && this.selectedTemplate.fields) {\n\t\t\tthis.currentSchedule.fields = Object.keys(this.currentSchedule.fields)\r\n\t\t\t\t.sort((a, b) => {\r\n\t\t\t\t\tconst fieldA = this.selectedTemplate!.fields.find(f => f.field.id === a)\r\n\t\t\t\t\tconst fieldB = this.selectedTemplate!.fields.find(f => f.field.id === b)\r\n\r\n\t\t\t\t\tif (!fieldA && !fieldB) {\r\n\t\t\t\t\t\treturn 0\t// a and b not found\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif (!!fieldA && !fieldB) {\r\n\t\t\t\t\t\treturn 1\t// b not found\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif (!fieldA && !!fieldB) {\r\n\t\t\t\t\t\treturn -1\t// a not found\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\treturn fieldA!.order - fieldB!.order\r\n\t\t\t\t})\r\n\t\t\t\t.reduce((obj: {[key: string]: LabeledValue}, key: string) => {\r\n\t\t\t\t\tobj[key] = this.currentSchedule!.fields![key]\r\n\t\t\t\t\treturn obj\r\n\t\t\t\t}, {})\r\n\t\t}\r\n\t}\r\n\r\n\tpublic get columns () : any[] {\r\n\t\treturn [\r\n\t\t\t{\r\n\t\t\t\tkey: \"folderOrExpandable\",\r\n\t\t\t\tlabel: \"Folder\",\r\n\t\t\t\tsortable: false,\r\n\t\t\t\tinModal: () => false,\r\n\t\t\t\tinTable: true,\r\n\t\t\t\thasTemplate: true\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tkey: \"title\",\r\n\t\t\t\tlabel: \"Title\",\r\n\t\t\t\tsortable: true,\r\n\t\t\t\terrors: (item: any) => (item.title ? null : \"Please enter a title\")\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tkey: \"templateTitle\",\r\n\t\t\t\tlabel: \"Template\",\r\n\t\t\t\tdataType: \"list\",\r\n\t\t\t\tvalueColumn: \"templateId\",\r\n\t\t\t\toptions: this.availableTemplates,\r\n\t\t\t\terrors: (item: any) => (item.templateId ? null : \"Please select a template\"),\r\n\t\t\t\tsortable: true,\r\n\t\t\t\tinTable: true,\r\n\t\t\t\ttooltip: \"Ensure that all relevant templates have been marked as 'Available for Scheduling'\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tkey: \"status\",\r\n\t\t\t\tlabel: \"Status\",\r\n\t\t\t\tsortable: true,\r\n\t\t\t\tinTable: true,\r\n\t\t\t\tinModal: () => false,\r\n\t\t\t\thasTemplate: true\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tkey: \"folder\",\r\n\t\t\t\tlabel: \"Folder\",\r\n\t\t\t\tdataType: \"list\",\r\n\t\t\t\toptions: this.getPermittedSelectionFolders(),\r\n\t\t\t\tsortable: true,\r\n\t\t\t\tinTable: false,\r\n\t\t\t\tinModal: () => true\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tkey: \"lastUpdated\",\r\n\t\t\t\tlabel: \"Last Updated\",\r\n\t\t\t\tsortable: true,\r\n\t\t\t\tdataType: \"date-time\",\r\n\t\t\t\tinModal: () => false,\r\n\t\t\t\tinTable: false\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tkey: \"lastUpdatedBy.name\",\r\n\t\t\t\tlabel: \"Last Updated By\",\r\n\t\t\t\tsortable: true,\r\n\t\t\t\tdataType: \"text\",\r\n\t\t\t\tinModal: () => false,\r\n\t\t\t\tinTable: false\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tkey: \"timeZoneId\",\r\n\t\t\t\tlabel: \"Timezone\",\r\n\t\t\t\tsortable: true,\r\n\t\t\t\tdataType: \"list\",\r\n\t\t\t\tvalueColumn: \"timeZoneId\",\r\n\t\t\t\toptions: this.timeZones,\r\n\t\t\t\terrors: (item: Schedule) => (item.timeZoneId ? null : \"Please select a timezone\"),\r\n\t\t\t\tinTable: false\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tkey: \"scheduleFreq\",\r\n\t\t\t\tlabel: \"Schedule Frequency\",\r\n\t\t\t\tsortable: true,\r\n\t\t\t\tdataType: \"list\",\r\n\t\t\t\tvalueColumn: \"scheduleFreq\",\r\n\t\t\t\toptions: this.scheduleFreqOptions,\r\n\t\t\t\terrors: (item: any) => (item.scheduleFreq ? null : \"Please select a schedule frequency\"),\r\n\t\t\t\thasTemplate: true,\r\n\t\t\t\tinTable: true\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tkey: \"dayOf\",\r\n\t\t\t\tlabel: \"Day\",\r\n\t\t\t\tsortable: true,\r\n\t\t\t\tdataType: \"list\",\r\n\t\t\t\tvalueColumn: \"dayOf\",\r\n\t\t\t\toptions: (item: any) => ((item.scheduleFreq === ScheduleFreq.Weekly) ? this.dayOptions : DayOfMonth),\r\n\t\t\t\tinModal: (item: any) => (item.scheduleFreq === ScheduleFreq.Weekly || item.scheduleFreq === ScheduleFreq.Monthly),\r\n\t\t\t\terrors: (item: any) => this.validateDaysOfInput(item.scheduleFreq, item.dayOf, item),\r\n\t\t\t\tinTable: false\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tkey: \"date\",\r\n\t\t\t\tlabel: \"Date\",\r\n\t\t\t\tsortable: true,\r\n\t\t\t\tdataType: \"date\",\r\n\t\t\t\tdynamicComponent: DateTime,\r\n\t\t\t\tinModal: (item: any) => (item.scheduleFreq === ScheduleFreq.Once),\r\n\t\t\t\tcomponentProperties: {\r\n\t\t\t\t\tincludeYesterday: false,\r\n\t\t\t\t\tincludeToday: false\r\n\t\t\t\t},\r\n\t\t\t\terrors: (item: any) => (item.scheduleFreq !== ScheduleFreq.Once || (item.date && moment(item.date).isAfter(moment().startOf(\"day\"))) ? null : \"Please select a future date\"),\r\n\t\t\t\tinTable: false\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tkey: \"minRunDate\",\r\n\t\t\t\tlabel: \"From\",\r\n\t\t\t\tsortable: true,\r\n\t\t\t\tdataType: \"date\",\r\n\t\t\t\tdynamicComponent: DateTime,\r\n\t\t\t\tinModal: (item: any) => (item.scheduleFreq !== ScheduleFreq.Once),\r\n\t\t\t\tcomponentProperties: {\r\n\t\t\t\t\tincludeYesterday: false,\r\n\t\t\t\t\tincludeToday: false,\r\n\t\t\t\t\tenterAsUTC: true\r\n\t\t\t\t},\r\n\t\t\t\terrors: (item: any) => this.validateMaxMinDates(item),\r\n\t\t\t\thasTemplate: true,\r\n\t\t\t\tinTable: true\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tkey: \"maxRunDate\",\r\n\t\t\t\tlabel: \"Until\",\r\n\t\t\t\tsortable: true,\r\n\t\t\t\tdataType: \"date\",\r\n\t\t\t\tdynamicComponent: DateTime,\r\n\t\t\t\tinModal: (item: any) => (item.scheduleFreq !== ScheduleFreq.Once),\r\n\t\t\t\tcomponentProperties: {\r\n\t\t\t\t\tincludeYesterday: false,\r\n\t\t\t\t\tincludeToday: false,\r\n\t\t\t\t\tenterAsUTC: true\r\n\t\t\t\t},\r\n\t\t\t\terrors: (item: any) => this.validateMaxMinDates(item),\r\n\t\t\t\tinTable: true,\r\n\t\t\t\thasTemplate: true\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tkey: \"startTime\",\r\n\t\t\t\tlabel: \"Start Time\",\r\n\t\t\t\tsortable: true,\r\n\t\t\t\tdataType: \"time\",\r\n\t\t\t\terrors: (item: any) => (item.startTime ? null : \"Please enter a start time\")\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tkey: \"endTime\",\r\n\t\t\t\tlabel: \"End Time\",\r\n\t\t\t\tsortable: true,\r\n\t\t\t\tdataType: \"time\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tkey: \"createdBy.name\",\r\n\t\t\t\tlabel: \"Created By\",\r\n\t\t\t\tsortable: true,\r\n\t\t\t\tdataType: \"text\",\r\n\t\t\t\tinModal: () => false,\r\n\t\t\t\tinTable: true,\r\n\t\t\t\thasTemplate: true\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tkey: \"created\",\r\n\t\t\t\tlabel: \"Created\",\r\n\t\t\t\tsortable: true,\r\n\t\t\t\tdataType: \"date-time\",\r\n\t\t\t\tinModal: () => false,\r\n\t\t\t\tinTable: true,\r\n\t\t\t\thasTemplate: true\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tkey: \"newSchedule\",\r\n\t\t\t\tlabel: \"\",\r\n\t\t\t\tsortable: false,\r\n\t\t\t\thasTemplate: true,\r\n\t\t\t\tinTable: true,\r\n\t\t\t\tinModal: () => false\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tkey: \"bulkCreateForTeams\",\r\n\t\t\t\tlabel: \"Bulk Create for Teams\",\r\n\t\t\t\tinTable: false,\r\n\t\t\t\tdynamicComponent: CreateForTeam\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tkey: \"bulkCreateUserRole\",\r\n\t\t\t\tvalueColumn: \"bulkCreateUserRole\",\r\n\t\t\t\tlabel: \"Bulk Create - User Role\",\r\n\t\t\t\tinTable: false,\r\n\t\t\t\tinModal: (schedule: Schedule) => schedule.templateId && schedule.bulkCreateForTeams && schedule.bulkCreateForTeams.length > 0,\r\n\t\t\t\tdataType: \"list\",\r\n\t\t\t\toptions: (item: any) => item.templateId\r\n\t\t\t\t\t? this.templates.findAndGet(t => t.id === item.templateId, t => t.fields.filter(f => f.field.dataType === \"user-role\")\r\n\t\t\t\t\t\t.map(f => {\r\n\t\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\t\tid: f.field.id,\r\n\t\t\t\t\t\t\t\ttitle: f.field.title\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}),\r\n\t\t\t\t\t[])\r\n\t\t\t\t\t: []\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tkey: \"bulkCreateSubRole\",\r\n\t\t\t\tvalueColumn: \"bulkCreateSubRole\",\r\n\t\t\t\tlabel: \"Bulk Create - Sub-Role\",\r\n\t\t\t\tinTable: false,\r\n\t\t\t\tinModal: (schedule: Schedule) => schedule.templateId && this.subRolesEnabled(schedule),\r\n\t\t\t\tdataType: \"list\",\r\n\t\t\t\terrors: (schedule: Schedule) => this.validateSubRoles(schedule),\r\n\t\t\t\toptions: (schedule: Schedule) =>\r\n\t\t\t\t\tthis.fields\r\n\t\t\t\t\t\t.findAndGet(f => f.key === schedule.bulkCreateUserRole,\r\n\t\t\t\t\t\t\tf => f.fieldExtensions && f.fieldExtensions.subroles ? f.fieldExtensions.subroles.map((subrole: { title: string }) => {\r\n\t\t\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\t\t\tid: subrole.title,\r\n\t\t\t\t\t\t\t\t\ttitle: subrole.title\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}) : [], [])\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tkey: \"fields\",\r\n\t\t\t\tlabel: \"Fields\",\r\n\t\t\t\tinTable: false,\r\n\t\t\t\tdynamicComponent: FieldAndValue,\r\n\t\t\t\tcomponentProperties: {\r\n\t\t\t\t\tfields: this.availableFields\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t]\r\n\t}\r\n\r\n\tpublic getPermittedFolders () : { [title:string] : Folder } {\r\n\t\tconst userTeamIds = this.currentUser!.teams.map(t => t.id)\r\n\r\n\t\t// folders where some of the user's teams are included in the folder's teams\r\n\t\tconst permittedFolders = _.pickBy(this.folders, folder =>\r\n\t\t\t(!folder.teams || folder.teams.length === 0) ||\r\n\t\t\tfolder.teams.some(folderTeamId => userTeamIds.includes(folderTeamId)))\r\n\t\treturn permittedFolders\r\n\t}\r\n\r\n\t// needs a hack like this somewhere as saving will default to saving the folder.id to schedule.folder, but it expects the folder title\r\n\tprivate getPermittedSelectionFolders () : {id: string, title: string }[] {\r\n\t\treturn Object.values(this.getPermittedFolders())\r\n\t\t\t.map(folder => { return { id: folder.title, title: folder.title } })\r\n\t}\r\n\r\n\tprivate validateMaxMinDates (item: Schedule) : string | null {\r\n\t\tif (!(item.minRunDate && item.maxRunDate)) {\r\n\t\t\treturn null\r\n\t\t}\r\n\r\n\t\tif (item.minRunDate > item.maxRunDate) {\r\n\t\t\treturn \"Minimum schedule date cannot be after maximum\"\r\n\t\t}\r\n\r\n\t\treturn null\r\n\t}\r\n\r\n\tprivate subRolesEnabled (schedule: Schedule) : boolean {\r\n\t\treturn schedule.bulkCreateForTeams && schedule.bulkCreateForTeams.length > 0 && schedule.bulkCreateUserRole &&\r\n\t\t\t\t\tthis.fields.findAndGet(f => f.key === schedule.bulkCreateUserRole, f => f.fieldExtensions && f.fieldExtensions.hasSubroles, false)\r\n\t}\r\n\r\n\tprivate validateSubRoles (schedule: Schedule) : string | null {\r\n\t\tif (!this.subRolesEnabled(schedule)) {\r\n\t\t\treturn null\r\n\t\t}\r\n\r\n\t\tif (schedule.bulkCreateSubRole) {\r\n\t\t\treturn null\r\n\t\t}\r\n\r\n\t\treturn \"Please select a sub-role\"\r\n\t}\r\n\r\n\tprivate validateDaysOfInput (scheduleFreq: ScheduleFreq, dayOf: number | null | undefined, item: Schedule) : string | null {\r\n\t\tif (scheduleFreq === ScheduleFreq.Weekly) {\r\n\t\t\tif (dayOf === null || dayOf === undefined || dayOf < 0 || dayOf > 6) {\r\n\t\t\t\treturn \"Please select a valid Day of Week\"\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (scheduleFreq === ScheduleFreq.Monthly) {\r\n\t\t\tif (!dayOf || dayOf < 1 || dayOf > 31) {\r\n\t\t\t\treturn \"Please select a valid Day of Month\"\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (!(item.minRunDate && item.maxRunDate)) {\r\n\t\t\treturn null\r\n\t\t}\r\n\r\n\t\tif (scheduleFreq === ScheduleFreq.Weekly) {\r\n\t\t\tconst dates = this.getDatesBetweenTwoDates(item.minRunDate, item.maxRunDate)\r\n\r\n\t\t\tconst daysOfWeek = dates.map(c => c.getDay())\r\n\t\t\tconst dayOfIsInRange = (dayOf === 0 || dayOf) && daysOfWeek.includes(dayOf) // 0 is Sunday, so it is valid\r\n\r\n\t\t\tif (!dayOfIsInRange) {\r\n\t\t\t\treturn \"Day of Week selected is not within maximum and minimum dates\"\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (scheduleFreq === ScheduleFreq.Monthly) {\r\n\t\t\tconst dates = this.getDatesBetweenTwoDates(item.minRunDate, item.maxRunDate)\r\n\t\t\tconst daysOfMonth = dates.map(c => c.getDate())\r\n\r\n\t\t\tconst dayOfIsInRange = dayOf && daysOfMonth.includes(dayOf)\r\n\r\n\t\t\tif (!dayOfIsInRange) {\r\n\t\t\t\treturn \"Day of Month selected is not within maximum and minimum dates\"\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn null\r\n\t}\r\n\r\n\tprivate getDatesBetweenTwoDates (startDate : Date, stopDate: Date) : Date[] {\r\n\t\tconst dateArray: Date[] = []\r\n\t\tlet current = moment(startDate)\r\n\t\tconst stop = moment(stopDate)\r\n\t\twhile (current <= stop) {\r\n\t\t\tdateArray.push(current.toDate())\r\n\t\t\tcurrent = current.add(1, \"days\")\r\n\t\t}\r\n\t\treturn dateArray\r\n\t}\r\n\r\n\tpublic constructor () {\r\n\r\n\t}\r\n\r\n\tpublic async load (currentUser: CurrentUser) {\r\n\t\tconst templateLoad = api.templatesWithFields().then(templates => this.templates = templates)\r\n\t\tconst timezoneLoad = api.timeZonesGet().then(timeZones => this.timeZones = timeZones)\r\n\t\tconst currentUserLoad = currentUser ? Promise.resolve(this.currentUser = currentUser) : api.me().then(user => this.currentUser = user)\r\n\t\tconst foldersLoad = this.loadFolders()\r\n\r\n\t\tconst fieldLoad = api.fields().then(fields => {\r\n\t\t\tif (!fields) {\r\n\t\t\t\tthis.fields = []\r\n\t\t\t\treturn\r\n\t\t\t}\r\n\r\n\t\t\t// Map the default and created fields\r\n\t\t\tthis.fields = [\r\n\t\t\t\t...caseColumns.filter(f => this.filterOutCaseColumns.includes(f.key) === false),\r\n\t\t\t\t...(fields ? fields\r\n\t\t\t\t\t.map(f => {\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\tlabel: f.title,\r\n\t\t\t\t\t\t\tdescription: f.description,\r\n\t\t\t\t\t\t\tkey: f.id!,\r\n\t\t\t\t\t\t\tfieldId: f.id,\r\n\t\t\t\t\t\t\tdataType: f.dataType!,\r\n\t\t\t\t\t\t\tdataSourceId: f.dataSourceId,\r\n\t\t\t\t\t\t\tdynamicField: true,\r\n\t\t\t\t\t\t\tfieldExtensions: f.extensions,\r\n\t\t\t\t\t\t\tfieldDataType: f.dataType === \"calculated\"\r\n\t\t\t\t\t\t\t\t? DataType.number\r\n\t\t\t\t\t\t\t\t: dataTypeByFieldType[f.dataType!]\r\n\t\t\t\t\t\t\t\t\t? dataTypeByFieldType[f.dataType!]\r\n\t\t\t\t\t\t\t\t\t: DataType.string\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t})\r\n\t\t\t\t\t: [])\r\n\t\t\t]\r\n\t\t})\r\n\r\n\t\tawait Promise.all([templateLoad, timezoneLoad, foldersLoad, fieldLoad, currentUserLoad])\r\n\t}\r\n\r\n\tprivate async loadFolders () {\r\n\t\tconst folders: Folder[] = await api.foldersGet(FolderType.Schedule)\r\n\t\tthis.folders = folders.toDictionary(\"title\")\r\n\t}\r\n\r\n\tpublic async saveSchedule (schedule: Schedule): Promise {\r\n\t\tif (schedule.templateId) {\r\n\t\t\tschedule.templateTitle = this.templates.find(x => x.id === schedule.templateId)!.title\r\n\t\t}\r\n\r\n\t\tif (schedule.id) {\r\n\t\t\tawait api.updateSchedule(schedule)\r\n\t\t} else {\r\n\t\t\tawait api.createSchedule(schedule)\r\n\t\t}\r\n\t}\r\n\r\n\tpublic async deleteSchedule (schedule: Schedule): Promise {\r\n\t\tawait api.deleteSchedule(schedule)\r\n\t}\r\n}\r\n","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TextAreaExpand.vue?vue&type=style&index=0&id=4aa3112a&prod&scoped=true&lang=scss&\"","import { caseColumns } from \"@/types/caseColumns\"\r\nimport { CaseDetails, CalculationType } from \"@/types\"\r\n\r\nimport moment from \"moment\"\r\nimport { TimeSpentAsValue } from \"@/types/timeSpentAsValue\"\r\nimport { formatDateMixin } from \"@/mixins/formatDateMixin\"\r\n\r\nexport const calculatedValueDisplay = {\r\n\tmethods: {\r\n\r\n\t\tdisplayCalculatedField (fieldCase: CaseDetails, fieldExtensions: any, value: any, forCsv = false): string {\r\n\t\t\tif (fieldExtensions && fieldExtensions.calculationType === CalculationType.AddToDate) {\r\n\t\t\t\tlet fieldValue = value\r\n\t\t\t\tif (fieldValue === null) {\r\n\t\t\t\t\tconst sourceField = fieldCase.fields[fieldExtensions.dateField]\r\n\t\t\t\t\tlet value = sourceField ? sourceField.value : null\r\n\r\n\t\t\t\t\tlet dynamic = 0\r\n\r\n\t\t\t\t\tif (!sourceField) {\r\n\t\t\t\t\t\tconst caseAsAny = fieldCase as any\r\n\t\t\t\t\t\tif (caseAsAny[fieldExtensions.dateField]) {\r\n\t\t\t\t\t\t\tvalue = caseAsAny[fieldExtensions.dateField]\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif (value === null) {\r\n\t\t\t\t\t\tif (sourceField) {\r\n\t\t\t\t\t\t\treturn sourceField.field.title + \" not set\"\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tconst caseColumn = caseColumns.find(c => c.key === fieldExtensions.dateField)\r\n\t\t\t\t\t\treturn caseColumn\r\n\t\t\t\t\t\t\t? caseColumn.label + \" not set\"\r\n\t\t\t\t\t\t\t: \"Not set\"\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif (fieldExtensions.add) {\r\n\t\t\t\t\t\tfieldExtensions.add.forEach((fieldId: string) => {\r\n\t\t\t\t\t\t\tconst field = fieldCase.fields[fieldId]\r\n\t\t\t\t\t\t\tif (field && field.value && !isNaN(field.value)) {\r\n\t\t\t\t\t\t\t\tdynamic += parseInt(field.value)\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t})\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tconst staticAddition = fieldExtensions.static ? parseInt(fieldExtensions.static) : 0\r\n\r\n\t\t\t\t\tconst dateTime: Date = new Date(value)\r\n\t\t\t\t\tdateTime.setDate(dateTime.getDate() + staticAddition + dynamic)\r\n\t\t\t\t\tfieldValue = dateTime\r\n\t\t\t\t}\r\n\r\n\t\t\t\tconst valueMoment = moment(fieldValue)\r\n\r\n\t\t\t\tif (fieldExtensions.showTime) {\r\n\t\t\t\t\treturn valueMoment.format(\"L LT\")\r\n\t\t\t\t} else {\r\n\t\t\t\t\treturn valueMoment.format(\"L\")\r\n\t\t\t\t}\r\n\t\t\t} else if (fieldExtensions && fieldExtensions.calculationType === CalculationType.DaysUntilOrFromToday) {\r\n\t\t\t\tif (fieldExtensions.dateField) {\r\n\t\t\t\t\tlet days = value\r\n\t\t\t\t\tif (value === null || value === undefined) {\r\n\t\t\t\t\t\tconst sourceField = fieldCase.fields[fieldExtensions.dateField]\r\n\t\t\t\t\t\tlet fieldValue = sourceField ? sourceField.value : null\r\n\r\n\t\t\t\t\t\tif (!sourceField) {\r\n\t\t\t\t\t\t\tconst caseAsAny = fieldCase as any\r\n\t\t\t\t\t\t\tif (caseAsAny[fieldExtensions.dateField]) {\r\n\t\t\t\t\t\t\t\tfieldValue = caseAsAny[fieldExtensions.dateField]\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tif (!fieldValue) {\r\n\t\t\t\t\t\t\treturn \"\"\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tdays = this.localWholeDaysFromToday(fieldValue)\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (days === 0) {\r\n\t\t\t\t\t\treturn \"Today\"\r\n\t\t\t\t\t} else if (days === -1) {\r\n\t\t\t\t\t\treturn \"Tomorrow\"\r\n\t\t\t\t\t} else if (days === 1) {\r\n\t\t\t\t\t\treturn \"Yesterday\"\r\n\t\t\t\t\t} else if (days < 0) {\r\n\t\t\t\t\t\treturn `In ${-days} days`\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\treturn `${days} days ago`\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t} else if (fieldExtensions && fieldExtensions.calculationType === CalculationType.DaysBetweenDates) {\r\n\t\t\t\tif (value === null || value === undefined) {\r\n\t\t\t\t\tconst startValue = calculatedValueDisplay.methods.getFieldValue(fieldCase, fieldExtensions.startField)\r\n\t\t\t\t\tconst endValue = calculatedValueDisplay.methods.getFieldValue(fieldCase, fieldExtensions.endField)\r\n\r\n\t\t\t\t\tif (startValue && endValue) {\r\n\t\t\t\t\t\tconst startDate: Date = new Date(startValue)\r\n\t\t\t\t\t\tconst endDate: Date = new Date(endValue)\r\n\r\n\t\t\t\t\t\tconst timeDifference = endDate.getTime() - startDate.getTime()\r\n\t\t\t\t\t\treturn Math.floor(timeDifference / (1000 * 60 * 60 * 24)).toString()\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t} else if (fieldExtensions && fieldExtensions.calculationType === CalculationType.TimeSpentAs) {\r\n\t\t\t\tif (value === null || value === undefined) {\r\n\t\t\t\t\treturn \"No entries recorded\"\r\n\t\t\t\t}\r\n\r\n\t\t\t\tconst timeSpentValue = value as TimeSpentAsValue\r\n\r\n\t\t\t\tif (timeSpentValue.totals.length === 0) {\r\n\t\t\t\t\treturn \"No entries recorded\"\r\n\t\t\t\t}\r\n\r\n\t\t\t\tconst timeSpentStrings = timeSpentValue.totals.map(c => `${c.fieldValue ? c.fieldValue : \"Not Set\"}: ${formatDateMixin.methods.timeSpentFormatted(c.hoursSpent)}`)\r\n\r\n\t\t\t\tconst formattedResult = forCsv ? timeSpentStrings.join(\"; \") : timeSpentStrings.join(\"\\n\")\r\n\r\n\t\t\t\treturn formattedResult\r\n\t\t\t}\r\n\t\t\treturn value as string\r\n\t\t},\r\n\t\tlocalWholeDaysFromToday (fieldValue: any) : number {\r\n\t\t\tconst fieldValueDate = moment(new Date(fieldValue)).startOf(\"day\") // the date part of the field value, in local time\r\n\t\t\tconst todaysDate = moment().startOf(\"day\") // today's date, in local time\r\n\r\n\t\t\t// the whole number of days difference\r\n\t\t\treturn todaysDate.diff(fieldValueDate, \"days\")\r\n\t\t},\r\n\t\tlocalDaysFromToday (fieldValue: any) : number {\r\n\t\t\tconst fieldValueDateTime = moment(new Date(fieldValue))\r\n\t\t\tconst todaysDate = moment().startOf(\"day\") // today's date, in local time\r\n\r\n\t\t\t// the fractional number of days difference\r\n\t\t\treturn todaysDate.diff(fieldValueDateTime, \"days\", true)\r\n\t\t},\r\n\r\n\t\tgetFieldValue (fieldCase: CaseDetails, fieldKey: string) : any {\r\n\t\t\tconst field = fieldCase.fields[fieldKey]\r\n\t\t\tconst caseAsAny = fieldCase as any\r\n\t\t\tlet fieldValue = field ? field.value : null\r\n\t\t\tif (!field) {\r\n\t\t\t\tif (caseAsAny[fieldKey]) {\r\n\t\t\t\t\tfieldValue = caseAsAny[fieldKey]\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\treturn fieldValue\r\n\t\t}\r\n\t}\r\n}\r\n","/**\r\n * Gets the correct stylesheet name\r\n * @param isDarkMode If the user prefers dark mode (system settings)\r\n * @param isNewInterface If the new interface feature is enabled\r\n */\r\nexport const getStylesheetName = (isDarkMode: boolean, isNewInterface: boolean) => {\r\n\tif (isNewInterface) {\r\n\t\treturn \"css/light-new.min.css\"\r\n\t}\r\n\treturn isDarkMode ? \"css/dark.min.css\" : \"css/light.min.css\"\r\n}\r\n\r\n/**\r\n * Checks to see if a given stylesheet is a new or old theme.\r\n * @param stylesheet The stylsheet URL to check.\r\n * @returns True or false.\r\n */\r\nexport const isNewStyle = (stylesheet: string) => {\r\n\treturn stylesheet.toLowerCase().endsWith(\"-new.min.css\")\r\n}\r\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"enhanced-map-wrapper\"},[_c('div',{staticClass:\"card card-body column-select\"},[_c('v-select',{attrs:{\"options\":_vm.markerColumns,\"clearable\":false},on:{\"input\":_vm.updateData},model:{value:(_vm.markerColumn),callback:function ($$v) {_vm.markerColumn=$$v},expression:\"markerColumn\"}})],1),_c('div',{ref:\"mappingContainer\",staticClass:\"mappingContainer\"})])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { Component, Vue, Watch, Prop } from \"vue-property-decorator\"\r\nimport { namespace, Getter, Mutation, Action, State } from \"vuex-class\"\r\n\r\nimport vSelect from \"vue-select\"\r\n\r\nimport { get } from \"lodash\"\r\n\r\nimport { getMapStyle } from \"@/scripts/mapStyle\"\r\nimport api from \"@/services/api\"\r\n\r\nimport {\r\n\tgetEnhancedMapping,\r\n\tIEnhancedMapping,\r\n\tIMap,\r\n\tIHeatMap\r\n} from \"@sureview/v2-mapping\"\r\n\r\nconst caseStore = namespace(\"cases\")\r\n\r\n@Component({\r\n\tcomponents: {\r\n\t\t\"v-select\": vSelect\r\n\t}\r\n})\r\nexport default class HeatMap extends Vue {\r\n\t$refs!: {\r\n\t\tmappingContainer: HTMLElement,\r\n\t}\r\n\r\n\t@Prop()\r\n\tresultGroups: any;\r\n\r\n\t@Prop()\r\n\tcolumns: any;\r\n\r\n\t@Prop()\r\n\toptions!: any;\r\n\r\n\t@State darkMode!: boolean;\r\n\r\n\tpublic mapKey: string = process.env.VUE_APP_GOOGLE_MAPS_API_KEY || \"\";\r\n\r\n\tpublic enhancedMapping: IEnhancedMapping | null = null;\r\n\tpublic map: IMap | null = null;\r\n\tpublic heatMap: IHeatMap | null = null;\r\n\r\n\tprivate markerColumn: any = null;\r\n\r\n\tprivate get columnKey () {\r\n\t\treturn this.options ? this.options.markerColumn : null\r\n\t}\r\n\r\n\tprivate get markerColumns () {\r\n\t\tif (!this.columns) return []\r\n\t\treturn this.columns.filter((c: any) => c.dataType === \"map-marker\")\r\n\t}\r\n\r\n\tprivate get markerData () {\r\n\t\tif (!this.markerColumn) return []\r\n\r\n\t\treturn this.resultGroups.map((group: any) =>\r\n\t\t\tgroup.results.map((row: any) =>\r\n\t\t\t\tget(row, this.markerColumn.dynamicField ? this.markerColumn.key + \".value\" : this.markerColumn.key))\r\n\t\t\t\t.filter((v: any) => !!v)\r\n\t\t\t\t.reduce((merged: any, items: any) => {\r\n\t\t\t\t\treturn merged.concat(items)\r\n\t\t\t\t}, []))\r\n\t\t\t.reduce((merged: any, items: any) => {\r\n\t\t\t\treturn merged.concat(items)\r\n\t\t\t}, [])\r\n\t}\r\n\r\n\tasync mounted () {\r\n\t\tif (this.markerColumns.length > 0) {\r\n\t\t\tif (this.columnKey) {\r\n\t\t\t\tthis.markerColumn = this.markerColumns.find((c: any) => c.key === this.columnKey)\r\n\t\t\t}\r\n\r\n\t\t\tif (!this.markerColumn) {\r\n\t\t\t\tthis.markerColumn = this.markerColumns[0]\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tthis.enhancedMapping = await getEnhancedMapping(\"google\", this.mapKey)\r\n\r\n\t\tthis.map = this.enhancedMapping!.createMultipleMap(\r\n\t\t\tthis.$refs.mappingContainer,\r\n\t\t\t{ lat: 0, lng: 0 },\r\n\t\t\t0,\r\n\t\t\tfalse,\r\n\t\t\t\"roadmap\",\r\n\t\t\tgetMapStyle(this.darkMode, \"roadmap\", false)\r\n\t\t)\r\n\r\n\t\tthis.updateData()\r\n\t}\r\n\r\n\tbeforeDestroy () {\r\n\t\tif (this.enhancedMapping && this.map) {\r\n\t\t\tthis.enhancedMapping!.releaseMultipleMap(this.map)\r\n\t\t}\r\n\t\tif (this.heatMap) {\r\n\t\t\tthis.heatMap.remove()\r\n\t\t}\r\n\t}\r\n\r\n\tupdateData () {\r\n\t\tif (this.heatMap) {\r\n\t\t\tthis.heatMap.remove()\r\n\t\t}\r\n\r\n\t\tif (!this.map) return\r\n\r\n\t\tthis.heatMap = this.enhancedMapping!.createHeatmap(this.map!, this.markerData)\r\n\t\tthis.map!.mapBounds = this.heatMap.bounds\r\n\t}\r\n}\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./HeatMap.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./HeatMap.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./HeatMap.vue?vue&type=template&id=5bd485da&scoped=true&\"\nimport script from \"./HeatMap.vue?vue&type=script&lang=ts&\"\nexport * from \"./HeatMap.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./HeatMap.vue?vue&type=style&index=0&id=5bd485da&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"5bd485da\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('skeleton',{staticStyle:{\"min-height\":\"50px\"},attrs:{\"loading\":!_vm.definition && _vm.definitionId,\"size\":\"sm\"}},[(_vm.definition)?_c('div',[_c('b-table',{staticClass:\"m-b-5\",attrs:{\"small\":\"\",\"hover\":\"\",\"fields\":_vm.dataSourceFields,\"items\":_vm.selectedItems},on:{\"row-clicked\":_vm.selectItem},scopedSlots:_vm._u([{key:\"cell()\",fn:function(data){return [(data.field && data.field.extensions && data.field.extensions.allowRichText)?_c('div',{domProps:{\"innerHTML\":_vm._s(_vm.$sanitize(_vm.fieldValue(data.item, data.field.key)))}}):_c('span',{staticClass:\"pre-wrap\"},[_vm._v(\" \"+_vm._s(_vm.fieldValue(data.item, data.field.key))+\" \")])]}},{key:\"cell(buttons)\",fn:function(data){return [(!_vm.readonly)?_c('div',{staticStyle:{\"text-align\":\"right\"}},[_c('span',{staticClass:\"badge badge-pill btn btn-danger btn-small btn-circle\",on:{\"click\":function($event){$event.stopPropagation();$event.preventDefault();return _vm.removeItem(data.item)}}},[_c('span',{staticClass:\"fas fa-times\"})])]):_vm._e()]}}],null,false,3093149185)}),(!_vm.readonly)?_c('div',{staticClass:\"d-flex flex-row-reverse d-print-none\"},[(_vm.definition)?_c('a',{staticClass:\"btn btn-sm btn-primary\",on:{\"click\":function($event){$event.stopPropagation();$event.preventDefault();return _vm.addNewItem($event)}}},[_vm._v(\" Add \"+_vm._s(_vm.definition.title)+\" \")]):_vm._e()]):_vm._e()],1):_vm._e()])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { Component, Vue, Watch, Prop } from \"vue-property-decorator\"\r\nimport { namespace, Getter, Action, Mutation } from \"vuex-class\"\r\n\r\nimport { get } from \"lodash\"\r\n\r\nimport vSelect from \"vue-select\"\r\n\r\nimport SkeletonLoader from \"@/components/SkeletonLoader.vue\"\r\nimport { formatFieldsMixin } from \"@/mixins/formatFieldsMixin\"\r\n\r\nimport api from \"@/services/api\"\r\nimport { DataDefinition, FieldInstance } from \"../../types\"\r\n\r\nconst caseStore = namespace(\"cases\")\r\nconst setup = namespace(\"setup\")\r\n\r\n@Component({\r\n\tcomponents: {\r\n\t\t\"v-select\": vSelect,\r\n\t\t\"skeleton\": SkeletonLoader\r\n\t}\r\n})\r\nexport default class DataSourceTemplateSelect extends Vue {\r\n\t$refs!: {\r\n\t\ttextarea: any;\r\n\t}\r\n\r\n\t@caseStore.Mutation\r\n\tpublic setCaseFieldDetails!: (details: any) => void;\r\n\r\n\t@setup.Getter(\"getDefinitionsById\")\r\n\tdefinitionsById: any;\r\n\r\n\t@Prop({ type: Array })\r\n\tpublic value!: any[];\r\n\r\n\t@Prop({ type: String, default: \"\" })\r\n\tpublic placeholder!: string;\r\n\r\n\t@Prop({ type: Boolean, default: false })\r\n\tpublic readonly!: boolean;\r\n\r\n\t@Prop({ type: String, default: \"\" })\r\n\tpublic dataSourceId!: string;\r\n\r\n\t@Prop({ type: String, default: \"\" })\r\n\tpublic definitionId!: string;\r\n\r\n\t@Prop({ type: String, default: \"\" })\r\n\tpublic fieldId!: string;\r\n\r\n\t@Prop({ type: String, default: \"\" })\r\n\tpublic dataSourceTitle!: string;\r\n\r\n\tpublic dataSourceOptions: any[] = [];\r\n\r\n\tpublic addingItem: any = [];\r\n\t// public selectedItems: any = [];\r\n\r\n\tpublic dataSource: any = null;\r\n\tpublic definition: DataDefinition | null = null;\r\n\r\n\tpublic async mounted () {\r\n\t\tif (this.dataSourceId) {\r\n\t\t\tthis.dataSource = await api.dataSourceGet(this.dataSourceId)\r\n\t\t}\r\n\r\n\t\tif (this.definitionId && (!this.dataSource || this.dataSource.definitionId !== this.definitionId)) {\r\n\t\t\tthis.definition = await api.definitionDetails(this.definitionId)\r\n\t\t} else if (this.dataSource.definition) {\r\n\t\t\tthis.definition = this.dataSource.definition\r\n\t\t} else if (this.dataSource && this.dataSource.definitionId) {\r\n\t\t\tthis.definition = await api.definitionDetails(this.dataSource.definitionId)\r\n\t\t}\r\n\t}\r\n\r\n\tpublic get selectedItems () {\r\n\t\tif (!this.value) {\r\n\t\t\treturn []\r\n\t\t}\r\n\r\n\t\treturn this.value\r\n\t}\r\n\r\n\tpublic get dataSourceFields (): any[] {\r\n\t\tif (!this.definition) {\r\n\t\t\treturn [\r\n\t\t\t\t{\r\n\t\t\t\t\tkey: \"label\"\r\n\t\t\t\t}\r\n\t\t\t]\r\n\t\t}\r\n\r\n\t\tthis.definition.fields!.forEach((field: FieldInstance) => {\r\n\t\t\tif (this.definition!.sections) {\r\n\t\t\t\tconst sectionOrder = this.definition!.sections.indexOf(field.section)\r\n\t\t\t\tfield.sectionOrder = sectionOrder === -1 ? 99999 : sectionOrder\r\n\t\t\t}\r\n\t\t})\r\n\r\n\t\treturn [\r\n\t\t\t...this.definition.fields!.filter((f: FieldInstance) => f.includeInTable)\r\n\t\t\t\t.sortByThen({ key: \"sectionOrder\" }, { thenKey: \"order\" })\r\n\t\t\t\t.map((f: FieldInstance) => {\r\n\t\t\t\t\treturn {\r\n\t\t\t\t\t\tkey: \"fields.\" + f.field.id,\r\n\t\t\t\t\t\tlabel: f.field.title,\r\n\t\t\t\t\t\textensions: f.field.extensions,\r\n\t\t\t\t\t\tsortable: true\r\n\t\t\t\t\t}\r\n\t\t\t\t}),\r\n\t\t\t{\r\n\t\t\t\tkey: \"buttons\",\r\n\t\t\t\tlabel: \"\"\r\n\t\t\t}\r\n\t\t]\r\n\t}\r\n\r\n\tpublic addNewItem (): void {\r\n\t\tthis.$emit(\"openNewItemModal\", {\r\n\t\t\tsource: this.dataSource,\r\n\t\t\tdefinition: this.definition,\r\n\t\t\taddNewItem: true,\r\n\t\t\taddItem: (dataItem: any) => {\r\n\t\t\t\tthis.$emit(\"add\", dataItem)\r\n\t\t\t}\r\n\t\t})\r\n\t}\r\n\r\n\tpublic removeItem (item: any): void {\r\n\t\tthis.$emit(\"remove\", item)\r\n\t}\r\n\r\n\tpublic selectItem (item: any): void {\r\n\t\tthis.$emit(\"openNewItemModal\", {\r\n\t\t\tsource: this.dataSource,\r\n\t\t\tdefinition: this.definition,\r\n\t\t\taddNewItem: true,\r\n\t\t\tdata: item,\r\n\t\t\treadonly: this.readonly,\r\n\t\t\tupdateItem: (dataItem: any) => {\r\n\t\t\t\tthis.$emit(\"update\", dataItem)\r\n\t\t\t}\r\n\t\t})\r\n\t}\r\n\r\n\tpublic fieldValue (item: any, fieldKey: string) {\r\n\t\tlet itemLabel = get(item, fieldKey + \"-label\")\r\n\t\tif (itemLabel) return itemLabel\r\n\r\n\t\tconst itemValue = get(item, fieldKey)\r\n\r\n\t\tif (Array.isArray(itemValue)) {\r\n\t\t\treturn itemValue.map(i => i.label).join(\", \")\r\n\t\t}\r\n\r\n\t\tif (!this.definition) return itemValue\r\n\t\tconst field = this.definition!.fields!.find(f => \"fields.\" + f.field.id === fieldKey)\r\n\t\tif (!field) return itemValue\r\n\r\n\t\treturn formatFieldsMixin.methods.formatFieldValue(field!.field!.dataType!, itemValue)\r\n\t}\r\n}\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DataSourceTemplate.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DataSourceTemplate.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./DataSourceTemplate.vue?vue&type=template&id=c871293c&scoped=true&\"\nimport script from \"./DataSourceTemplate.vue?vue&type=script&lang=ts&\"\nexport * from \"./DataSourceTemplate.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./DataSourceTemplate.vue?vue&type=style&index=0&id=c871293c&prod&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"c871293c\",\n null\n \n)\n\nexport default component.exports","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserImage.vue?vue&type=style&index=0&id=692a01ac&prod&scoped=true&lang=scss&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LightDarkSwitch.vue?vue&type=style&index=0&id=73fce0c8&prod&scoped=true&lang=scss&\"","export const formatInsight = {\r\n\tmethods: {\r\n\t\troundNumber (numberToRound: string|number, decimalPlaces: number): number {\r\n\t\t\tvar parsedNumber = typeof numberToRound === \"string\" ? Number.parseFloat(numberToRound) : numberToRound\r\n\r\n\t\t\t// toFixed will enforce decimal places even for whole numbers - use % to check if it is a whole number\r\n\t\t\tvar result = parsedNumber % 1 === 0 ? numberToRound : parsedNumber.toFixed(decimalPlaces)\r\n\t\t\treturn typeof result === \"string\" ? Number.parseFloat(result) : result\r\n\t\t}\r\n\t}\r\n}\r\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('b-dropdown',{attrs:{\"text\":_vm.text,\"size\":_vm.size,\"right\":_vm.right}},[(_vm.text)?_c('b-dropdown-header',{staticClass:\"search-dropdown-header\"},[_vm._v(_vm._s(_vm.text))]):_vm._e(),_c('b-dropdown-form',[_c('b-input-group',{staticClass:\"p-0 align-items-center\"},[_c('b-input-group-text',{staticClass:\"p-0\"},[_c('i',{staticClass:\"fa fa-magnifying-glass\"})]),_c('b-input',{attrs:{\"aria-label\":\"Search\",\"placeholder\":\"Search\",\"data-cy\":\"search-dropdown-input-search\"},on:{\"input\":function($event){return _vm.$emit('onSearch', _vm.searchTerm)}},model:{value:(_vm.searchTerm),callback:function ($$v) {_vm.searchTerm=$$v},expression:\"searchTerm\"}})],1)],1),_c('b-dropdown-divider'),_c('div',{staticClass:\"item-list\"},[(_vm.filteredItems.length < 1)?_c('div',{staticClass:\"text-center\",attrs:{\"data-cy\":\"noOptionsFound\"}},[_vm._v(\" No \"+_vm._s(_vm.term)+\"s found. \")]):_vm._e(),_vm._l((_vm.filteredItems),function(item,index){return _c('b-dropdown-item',{key:index,on:{\"click\":function($event){return _vm.$emit('itemClick', item)}}},[_vm._v(\" \"+_vm._s(item[_vm.label])+\" \")])})],2),(_vm.canCreateOption && _vm.searchTerm)?_c('div',{staticClass:\"pt-2 text-center\"},[_c('b-btn',{staticClass:\"add-custom-option-button\",attrs:{\"data-cy\":\"addCustomOptionButton\",\"size\":\"sm\"},on:{\"click\":_vm.onAddNewItem}},[_vm._v(_vm._s(_vm.text)+\": \"),_c('strong',[_vm._v(_vm._s(_vm.searchTerm))])])],1):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { Component, Vue, Prop } from \"vue-property-decorator\"\r\n\r\n@Component({})\r\nexport default class SearchDropDown extends Vue {\r\n\t@Prop({ type: Array, default: () => [] })\r\n\toptions!: any[]\r\n\r\n\t@Prop({ type: String, default: \"label\" })\r\n\tlabel!: string\r\n\r\n\t@Prop({ type: String, default: \"\" })\r\n\ttext!: string\r\n\r\n\t@Prop({ type: String, default: \"md\" })\r\n\tsize!: \"sm\" | \"md\" | \"lg\"\r\n\r\n\t@Prop({ type: Boolean, default: false })\r\n\tright!: boolean\r\n\r\n\t@Prop({ type: Boolean, default: false })\r\n\tcanCreateOption!: boolean;\r\n\r\n\t@Prop({ type: String, default: \"option\" })\r\n\tterm!: string;\r\n\r\n\tprivate searchTerm: string = \"\"\r\n\r\n\tget filteredItems (): any[] {\r\n\t\tconst lowerSearch = this.searchTerm.toLowerCase()\r\n\t\treturn this.options.filter(o => (o[this.label] as string).toLowerCase().includes(lowerSearch))\r\n\t}\r\n\r\n\tprivate onAddNewItem (): void {\r\n\t\tthis.$emit(\"addNewItem\", this.searchTerm)\r\n\t\tthis.searchTerm = \"\"\r\n\t}\r\n}\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SearchDropDown.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SearchDropDown.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./SearchDropDown.vue?vue&type=template&id=1c4dbbec&\"\nimport script from \"./SearchDropDown.vue?vue&type=script&lang=ts&\"\nexport * from \"./SearchDropDown.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./SearchDropDown.vue?vue&type=style&index=0&id=1c4dbbec&prod&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/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","export const utils = {\r\n\tmethods: {\r\n\t\tcopyToClipboard (element: HTMLElement, text: string) {\r\n\t\t\t// https://stackoverflow.com/questions/400212/how-do-i-copy-to-the-clipboard-in-javascript\r\n\r\n\t\t\tif (!text) return\r\n\r\n\t\t\tvar textArea = document.createElement(\"textarea\")\r\n\t\t\ttextArea.value = text\r\n\t\t\ttextArea.style.top = \"0\"\r\n\t\t\ttextArea.style.left = \"0\"\r\n\t\t\ttextArea.style.position = \"fixed\"\r\n\r\n\t\t\telement.appendChild(textArea)\r\n\t\t\ttextArea.focus()\r\n\t\t\ttextArea.select()\r\n\r\n\t\t\tdocument.execCommand(\"copy\")\r\n\r\n\t\t\telement.removeChild(textArea)\r\n\t\t}\r\n\t}\r\n}\n","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TableResults.vue?vue&type=style&index=0&id=41fe51c2&prod&lang=scss&scoped=true&\"","export interface LoginRequest {\r\n\temail: string;\r\n\tpassword: string;\r\n}\r\n\r\nexport interface PasswordResetRequest {\r\n\temail: string;\r\n}\r\n\r\nexport interface PasswordResetCancelRequest {\r\n\tcode: string;\r\n}\r\n\r\nexport interface PasswordChangeRequest {\r\n\temail: string;\r\n\tresetCode: string;\r\n\tnewPassword: string;\r\n}\r\n\r\nexport interface LoginResultTenant {\r\n\tid: string\r\n\tuserId: string\r\n\ttitle: string\r\n\tdisabled: boolean\r\n}\r\n\r\nexport interface LoginResult {\r\n\tloginTenants: LoginResultTenant[] | null\r\n\trequiresMfa: boolean\r\n\trequiresMfaSetup?: boolean\r\n\tsystemAdmin?: boolean\r\n\tsupportAccess: LoginResultTenant | null\r\n\trequiresIntroduction?: boolean\r\n}\r\n\r\nexport interface CurrentLogin {\r\n\tallowSystemAdmin: boolean\r\n\trequiresMfaSetup: boolean\r\n\trequiresIntroduction?: boolean\r\n\r\n\tsupportAccess: LoginResultTenant | null\r\n}\r\n\r\nexport enum LoginState {\r\n\tNotLoggedIn,\r\n\tPendingTenantSelect,\r\n\tPendingMfa,\r\n\tLoggedIn,\r\n\tPendingMfaSetup,\r\n\tPendingSystemMfa,\r\n\tPendingSystemMfaSetup,\r\n\tIntroduction,\r\n\tWaiting\r\n}\r\n","export * from \"-!../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=style&index=0&id=3dbbc5f8&prod&lang=scss&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('span',{class:[{'sm': this.size === 'sm'}, {'md': this.size === 'md'}, {'lg': this.size === 'lg'},\n\t{'d-inline-flex align-items-center': _vm.showUserName}]},[_c('img',{staticClass:\"user-image circular d-print-none\",class:{'show-image': _vm.isLoaded},attrs:{\"src\":_vm.userPicture},on:{\"error\":_vm.imageUrlError,\"load\":_vm.loadedImage}}),(_vm.showUserName)?_c('div',{class:this.size === 'sm' ? 'm-l-5' : 'm-l-10'},[(_vm.user)?_c('span',{staticClass:\"d-block\"},[_vm._v(\" \"+_vm._s(_vm.user.name)+\" \")]):_c('span',{staticClass:\"d-block\"}),(_vm.showTeams && _vm.user.teams && _vm.user.teams.length > 0)?_c('small',{staticClass:\"d-block\",staticStyle:{\"margin-top\":\"-3px\"}},[_vm._v(\" \"+_vm._s(_vm.user.teams.map(function (t) { return t.title; }).join(\", \"))+\" \")]):_vm._e(),(_vm.showHeaderFields)?_c('small',{staticClass:\"d-block mt-1 mb-1\",staticStyle:{\"margin-top\":\"-3px\"}},[_c('user-header-fields',{attrs:{\"userHeaderFieldValues\":_vm.user.userHeaderFieldValues}})],1):_vm._e(),(_vm.showEmail && _vm.user.email)?_c('small',{staticClass:\"d-block\",staticStyle:{\"margin-top\":\"-3px\"}},[_c('a',{attrs:{\"href\":'mailto:'+_vm.user.email}},[_vm._v(_vm._s(_vm.user.email))])]):_vm._e()]):_vm._e(),_vm._t(\"default\")],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\nimport { Component, Vue, Watch, Prop } from \"vue-property-decorator\"\r\nimport { namespace, Getter, Action } from \"vuex-class\"\r\n\r\nimport UserHeaderFields from \"./CaseDetails/Users/UserHeaderFields.vue\"\r\nconst caseStore = namespace(\"cases\")\r\n\r\n@Component({\r\n\tcomponents: {\r\n\t\t\"user-header-fields\": UserHeaderFields\r\n\t}\r\n})\r\nexport default class UserImage extends Vue {\r\n\t@caseStore.Getter(\"getCurrentCase\") public currentCase: any;\r\n\r\n\t@Getter(\"getUserPictureUrl\")\r\n\tpublic userPictureUrl!: (user: { id: string}) => string;\r\n\r\n\t@Action\r\n\tpublic loadUserPictureUrl!: (user: { id: string}) => Promise;\r\n\r\n\t@Prop({ type: String, default: \"md\" })\r\n\tpublic size!: string;\r\n\r\n\t@Prop()\r\n\tpublic user: any;\r\n\r\n\t@Prop({ type: Boolean, default: false })\r\n\tpublic showUserName!: boolean;\r\n\r\n\t@Prop({ type: Boolean, default: false })\r\n\tpublic showTeams!: boolean;\r\n\r\n\t@Prop({ type: Boolean, default: false })\r\n\tpublic showEmail!: string;\r\n\r\n\t@Prop({ type: Boolean, default: false })\r\n\tpublic showHeaderFields!: boolean;\r\n\r\n\t@Prop({ type: Boolean, default: false })\r\n\tpublic usernamePopup!: boolean;\r\n\r\n\t@Prop({ type: String, default: \"id\" })\r\n\tpublic userIdField!: string;\r\n\r\n\t@Prop({ default: () => null })\r\n\tpublic fetchUserPictureUrl!: null | ((id: string) => string)\r\n\r\n\tisLoaded: boolean = false;\r\n\tpictureError: boolean = false;\r\n\tpictureUrl: string | null = null;\r\n\r\n\t@Watch(\"user\")\r\n\tonUserChanged (newUser: any, oldUser: any) {\r\n\t\tif (!newUser || !oldUser || newUser.id !== oldUser.id) {\r\n\t\t\tthis.pictureError = false\r\n\t\t\tthis.pictureUrl = null\r\n\t\t\tthis.isLoaded = false\r\n\t\t}\r\n\t}\r\n\r\n\tpublic get userPicture (): string | null {\r\n\t\tif (this.pictureError) {\r\n\t\t\treturn \"images/blank_user.png\"\r\n\t\t}\r\n\r\n\t\tif (this.pictureUrl) {\r\n\t\t\tthis.isLoaded = true\r\n\t\t\treturn this.pictureUrl\r\n\t\t}\r\n\r\n\t\tif (this.user) {\r\n\t\t\tif (this.user.isExternal) {\r\n\t\t\t\treturn \"images/blank_user.png\"\r\n\t\t\t}\r\n\t\t\tif (this.user.pictureUrl) {\r\n\t\t\t\treturn this.user.pictureUrl\r\n\t\t\t}\r\n\r\n\t\t\tif (!this.user[this.userIdField]) {\r\n\t\t\t\treturn this.pictureUrl = \"images/system_user.png\"\r\n\t\t\t}\r\n\r\n\t\t\tconst userId = this.user[this.userIdField]\r\n\r\n\t\t\tconst cachedPictureUrl = this.userPictureUrl(userId)\r\n\t\t\tif (cachedPictureUrl) {\r\n\t\t\t\treturn this.pictureUrl = cachedPictureUrl\r\n\t\t\t}\r\n\r\n\t\t\tif (this.fetchUserPictureUrl) {\r\n\t\t\t\tthis.pictureUrl = this.fetchUserPictureUrl(userId)\r\n\t\t\t} else {\r\n\t\t\t\tthis.loadUserPictureUrl(userId).then((pictureUrl: string) => {\r\n\t\t\t\t\tthis.pictureUrl = pictureUrl\r\n\t\t\t\t})\r\n\t\t\t}\r\n\r\n\t\t\treturn this.pictureUrl\r\n\t\t} else {\r\n\t\t\treturn this.pictureUrl = \"images/system_user.png\"\r\n\t\t}\r\n\t}\r\n\r\n\tpublic loadedImage () {\r\n\t\tthis.isLoaded = true\r\n\t}\r\n\r\n\tpublic imageUrlError (args: any) {\r\n\t\tthis.pictureError = true\r\n\t}\r\n}\r\n\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--13-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserImage.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--13-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserImage.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./UserImage.vue?vue&type=template&id=692a01ac&scoped=true&\"\nimport script from \"./UserImage.vue?vue&type=script&lang=ts&\"\nexport * from \"./UserImage.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./UserImage.vue?vue&type=style&index=0&id=692a01ac&prod&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"692a01ac\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{directives:[{name:\"b-tooltip\",rawName:\"v-b-tooltip.right\",value:('Themes can be toggled between light and dark mode. When the page is refreshed the default theme shown depends upon your computer\\'s dark mode settings.'),expression:\"'Themes can be toggled between light and dark mode. When the page is refreshed the default theme shown depends upon your computer\\\\'s dark mode settings.'\",modifiers:{\"right\":true}}],staticClass:\"w-100 d-flex align-items-center\"},[_c('label',{staticClass:\"switch\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.isDark),expression:\"isDark\"}],attrs:{\"type\":\"checkbox\",\"data-cy\":\"theme-switch\",\"id\":\"darkToggle\"},domProps:{\"checked\":Array.isArray(_vm.isDark)?_vm._i(_vm.isDark,null)>-1:(_vm.isDark)},on:{\"change\":function($event){var $$a=_vm.isDark,$$el=$event.target,$$c=$$el.checked?(true):(false);if(Array.isArray($$a)){var $$v=null,$$i=_vm._i($$a,$$v);if($$el.checked){$$i<0&&(_vm.isDark=$$a.concat([$$v]))}else{$$i>-1&&(_vm.isDark=$$a.slice(0,$$i).concat($$a.slice($$i+1)))}}else{_vm.isDark=$$c}}}}),_vm._m(0)]),_c('label',{staticClass:\"m-b-0 m-l-5\",attrs:{\"for\":\"darkToggle\"}},[_vm._v(\" Theme \")])])}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('label',{staticClass:\"check-label\",attrs:{\"for\":\"darkToggle\"}},[_c('div',{staticClass:\"background\"}),_c('span',{staticClass:\"icon\"})])}]\n\nexport { render, staticRenderFns }","\r\n\r\nimport { Component, Vue, Watch, Prop } from \"vue-property-decorator\"\r\nimport { namespace, Getter, Action, Mutation } from \"vuex-class\"\r\n\r\n@Component({\r\n\tcomponents: {\r\n\t}\r\n})\r\nexport default class LightDarkSwitch extends Vue {\r\n\t@Getter getDarkMode!: boolean;\r\n\t@Action setTheme!: (darkMode: boolean) => void;\r\n\r\n\tget isDark () {\r\n\t\treturn this.getDarkMode\r\n\t}\r\n\r\n\tset isDark (value: boolean) {\r\n\t\tthis.setTheme(value)\r\n\t}\r\n\r\n\tupdateTheme () {\r\n\t\tthis.setTheme(this.isDark)\r\n\t}\r\n}\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LightDarkSwitch.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LightDarkSwitch.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./LightDarkSwitch.vue?vue&type=template&id=73fce0c8&scoped=true&\"\nimport script from \"./LightDarkSwitch.vue?vue&type=script&lang=ts&\"\nexport * from \"./LightDarkSwitch.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./LightDarkSwitch.vue?vue&type=style&index=0&id=73fce0c8&prod&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"73fce0c8\",\n null\n \n)\n\nexport default component.exports","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NoticeboardDisplay.vue?vue&type=style&index=0&id=8426c204&prod&scoped=true&lang=scss&\"","import { Operator } from \"@/types/insights/operators\"\r\nimport { TenantFeatures } from \"./tenantFeatures\"\r\n\r\nexport interface Rule {\r\n\tid?: string;\r\n\ttitle: string;\r\n\ttriggers: Trigger[];\r\n\tactions: RuleAction[];\r\n\ttenantId: string;\r\n\trunOnce: boolean;\r\n}\r\n\r\nexport interface Trigger {\r\n\tid?: string;\r\n\tlabel: string;\r\n\tfield: string;\r\n\tsubField: string;\r\n\toperator: Operator;\r\n\tfieldDataType: number;\r\n\tfieldTypeId: string;\r\n\tvalue: string;\r\n}\r\n\r\nexport interface RuleAction {\r\n\tid: string | null;\r\n\tkey?: string;\r\n\r\n\tlabel: string;\r\n\tactionType: number;\r\n\tsettings: { [key: string]: string };\r\n}\r\n\r\nexport enum ActionType {\r\n\tSetValue,\r\n\tAddTeam,\r\n\tSetFieldRequired,\r\n\tSendHttp,\r\n\tSendEmail,\r\n\tAddField,\r\n\tSentToIntegration,\r\n\tRemoveField\r\n}\r\n\r\nexport interface ActionTypeLabel {\r\n\tlabel: string;\r\n\tvalue: number;\r\n\trequireFeature?: TenantFeatures;\r\n}\r\n\r\nconst actionTypeLabels: ActionTypeLabel[] = [\r\n\t{\r\n\t\tlabel: \"Set Value\",\r\n\t\tvalue: ActionType.SetValue\r\n\t},\r\n\t{\r\n\t\tlabel: \"Add Team\",\r\n\t\tvalue: ActionType.AddTeam\r\n\t},\r\n\t{\r\n\t\tlabel: \"Add Field\",\r\n\t\tvalue: ActionType.AddField\r\n\t},\r\n\t{\r\n\t\tlabel: \"Set Field Required\",\r\n\t\tvalue: ActionType.SetFieldRequired\r\n\t},\r\n\t{\r\n\t\tlabel: \"Send HTTPS\",\r\n\t\tvalue: ActionType.SendHttp\r\n\t},\r\n\t{\r\n\t\tlabel: \"Send Email\",\r\n\t\tvalue: ActionType.SendEmail\r\n\t},\r\n\t{\r\n\t\tlabel: \"Send to Integration\",\r\n\t\tvalue: ActionType.SentToIntegration\r\n\t},\r\n\t{\r\n\t\tlabel: \"Remove Field\",\r\n\t\tvalue: ActionType.RemoveField,\r\n\t\trequireFeature: TenantFeatures.RuleActionRemoveField\r\n\t}\r\n]\r\n\r\n// Defines all the different action setting field\r\nexport enum ActionSettingField {\r\n\tField,\r\n\tFieldDataType,\r\n\tNewValue,\r\n\tNewValueLabel,\r\n\tFieldId,\r\n\tRequired,\r\n\tTeamId,\r\n\tTeamTitle,\r\n\tRecipient,\r\n\tSubject,\r\n\tSection,\r\n\tDynamicValue,\r\n\tValueFormat,\r\n\tIncludeAttachments,\r\n\tURL,\r\n\tHttpHeaders,\r\n\tIntegration\r\n}\r\n\r\ninterface ActionSetting {\r\n\tid: string;\r\n\ttype: ActionSettingField;\r\n\tlabel: string;\r\n\tvisible: boolean;\r\n\tvalidation: any ;\r\n}\r\n\r\n// Definitions for action settings\r\nconst actionSetting: ActionSetting[] = [\r\n\t{ id: \"field\", type: ActionSettingField.Field, label: \"Field\", visible: true, validation: null },\r\n\t{ id: \"fieldDataType\", type: ActionSettingField.FieldDataType, label: \"Data Type\", visible: false, validation: null },\r\n\t{ id: \"newValue\", type: ActionSettingField.NewValue, label: \"New Value\", visible: true, validation: null },\r\n\t{ id: \"newValueLabel\", type: ActionSettingField.NewValueLabel, label: \"New value label\", visible: false, validation: null },\r\n\t{ id: \"dynamicValue\", type: ActionSettingField.DynamicValue, label: \"Dynamic Value\", visible: false, validation: null },\r\n\t{ id: \"valueFormat\", type: ActionSettingField.ValueFormat, label: \"Value Format\", visible: false, validation: null },\r\n\t{ id: \"fieldId\", type: ActionSettingField.FieldId, label: \"Field\", visible: true, validation: null },\r\n\t{ id: \"required\", type: ActionSettingField.Required, label: \"Required\", visible: true, validation: null },\r\n\t{ id: \"includeAttachments\", type: ActionSettingField.IncludeAttachments, label: \"Include Attachments\", visible: true, validation: null },\r\n\t{ id: \"teamId\", type: ActionSettingField.TeamId, label: \"Team\", visible: true, validation: null },\r\n\t{ id: \"teamTitle\", type: ActionSettingField.TeamTitle, label: \"Team Title\", visible: false, validation: null },\r\n\t{ id: \"recipient\", type: ActionSettingField.Recipient, label: \"Recipient\", visible: true, validation: null },\r\n\t{ id: \"subject\", type: ActionSettingField.Subject, label: \"Subject\", visible: true, validation: null },\r\n\t{ id: \"section\", type: ActionSettingField.Section, label: \"Section\", visible: true, validation: null },\r\n\t{ id: \"url\", type: ActionSettingField.URL, label: \"URL\", visible: true, validation: (item: any) => item.toLowerCase().startsWith(\"https:\") ? null : \"The supplied URL must be valid 'https:' URL\" },\r\n\t{ id: \"httpHeaders\", type: ActionSettingField.HttpHeaders, label: \"Headers\", visible: true, validation: null },\r\n\t{ id: \"integration\", type: ActionSettingField.Integration, label: \"Send to\", visible: true, validation: null }\r\n]\r\n\r\n// Definition of the fields that should be filled in when an Action Setting Type is used\r\nconst actionSettingsForActionType: { [index: number]: ActionSettingField[] } = {}\r\nactionSettingsForActionType[ActionType.SetValue] = [ActionSettingField.Field, ActionSettingField.FieldDataType,\r\n\tActionSettingField.NewValue, ActionSettingField.NewValueLabel, ActionSettingField.DynamicValue,\r\n\tActionSettingField.ValueFormat ]\r\nactionSettingsForActionType[ActionType.SetFieldRequired] = [ActionSettingField.FieldId, ActionSettingField.Required]\r\nactionSettingsForActionType[ActionType.AddTeam] = [ActionSettingField.TeamId, ActionSettingField.TeamTitle]\r\nactionSettingsForActionType[ActionType.SendHttp] = [ActionSettingField.URL, ActionSettingField.HttpHeaders]\r\nactionSettingsForActionType[ActionType.SendEmail] = [ActionSettingField.Recipient, ActionSettingField.Subject, ActionSettingField.IncludeAttachments]\r\nactionSettingsForActionType[ActionType.AddField] = [ActionSettingField.FieldId, ActionSettingField.Required, ActionSettingField.Section]\r\nactionSettingsForActionType[ActionType.SentToIntegration] = [ActionSettingField.Integration]\r\nactionSettingsForActionType[ActionType.RemoveField] = [ActionSettingField.Field]\r\n\r\nexport { actionTypeLabels, actionSettingsForActionType, actionSetting, ActionSetting }\r\n","const minimumWidth = 250\r\n\r\n/**\r\n* Positions the dropdown left or right align based on where the element is positioned.\r\n*/\r\nconst positionDropdown = (dropdownList: HTMLUListElement, component: Vue, position: { width: string, top: string, left: string }) => {\r\n\tdropdownList.style.top = position.top\r\n\r\n\t// Set minimum width to 250px.\r\n\tlet width = parseInt(position.width) < minimumWidth ? minimumWidth : parseInt(position.width)\r\n\tdropdownList.style.width = width + \"px\"\r\n\r\n\t// Set left position. Offset menu if it clips off the right of the viewport.\r\n\tlet left = parseInt(position.left)\r\n\tif ((left + width) >= document.documentElement.clientWidth) {\r\n\t\tdropdownList.style.left = (left - width + parseInt(position.width)) + \"px\"\r\n\t} else { dropdownList.style.left = left + \"px\" }\r\n}\r\n\r\nexport default positionDropdown\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"insight-section\"},[_c('div',{attrs:{\"data-cy\":\"field-value\"}},[_c('b-table',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.selectedFields && _vm.selectedFields.length > 0),expression:\"selectedFields && selectedFields.length > 0\"}],staticClass:\"m-b-0\",attrs:{\"small\":\"\",\"items\":_vm.selectedFields,\"fields\":_vm.columns},scopedSlots:_vm._u([{key:\"table-colgroup\",fn:function(scope){return _vm._l((scope.fields),function(field){return _c('col',{key:field.key,style:({ width: field.key === 'buttons' ? '30px' : null })})})}},{key:\"cell(field)\",fn:function(data){return [_c('v-select',{attrs:{\"options\":_vm.fields,\"clearable\":true,\"label\":\"label\",\"append-to-body\":\"\",\"calculate-position\":_vm.withPopper,\"data-cy\":\"field-select\"},on:{\"input\":function($event){return _vm.fieldSelected(data.item)}},scopedSlots:_vm._u([{key:\"option\",fn:function(ref){\nvar label = ref.label;\nvar description = ref.description;\nreturn [_c('div',{directives:[{name:\"b-tooltip\",rawName:\"v-b-tooltip.viewport.right\",modifiers:{\"viewport\":true,\"right\":true}}],staticClass:\"field-item\",attrs:{\"title\":description ? description : ''}},[_c('div',[_vm._v(\" \"+_vm._s(label)+\" \"),(description)?_c('div',{staticClass:\"description\"},[_c('small',[_vm._v(_vm._s(description))])]):_vm._e()])])]}}],null,true),model:{value:(data.item.fieldData),callback:function ($$v) {_vm.$set(data.item, \"fieldData\", $$v)},expression:\"data.item.fieldData\"}},[_c('template',{slot:\"no-options\"},[_vm._v(\"Type to search\")])],2)]}},{key:\"cell(value)\",fn:function(data){return [(data.item && data.item.fieldData)?_c('parameter-value',{attrs:{\"dynamicValue\":data.item.dynamicValue,\"field\":data.item.fieldData,\"selectedFields\":_vm.value,\"userRolesAllowTeams\":true,\"usersAllowDynamic\":false,\"allCaseFields\":_vm.fields,\"setFieldValue\":true,\"allowMultiple\":true,\"allowDynamic\":false},on:{\"input\":_vm.triggerInput,\"dynamicValueChanged\":function (dynamicValue) { return _vm.dynamicValueChanged(data.item, dynamicValue); }},model:{value:(data.item.value),callback:function ($$v) {_vm.$set(data.item, \"value\", $$v)},expression:\"data.item.value\"}}):_vm._e()]}},{key:\"cell(buttons)\",fn:function(data){return [_c('b-button',{staticClass:\"btn-circle\",attrs:{\"pill\":\"\",\"variant\":\"danger\",\"size\":\"sm\",\"data-cy\":\"remove-field\"},on:{\"click\":function($event){$event.stopPropagation();$event.preventDefault();return _vm.removeField(data.item)}}},[_c('i',{staticClass:\"fas fa-times\"})])]}}])})],1),_c('div',{staticClass:\"m-t-5 right-align-buttons\"},[_c('b-button',{attrs:{\"variant\":\"primary\",\"size\":\"sm\",\"data-cy\":\"add-field\"},on:{\"click\":_vm.addField}},[_vm._v(\" Add field \")])],1),(!_vm.isValid)?_c('small',{staticClass:\"text-danger\"},[_c('i',{staticClass:\"fas fa-exclamation-triangle m-l-10 m-r-5\"}),_vm._v(\" Duplicate field values will only apply the second value \")]):_vm._e()])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { Component, Vue, Watch, Prop } from \"vue-property-decorator\"\r\nimport vSelect from \"vue-select\"\r\n\r\nimport VuePerfectScrollbar from \"vue-perfect-scrollbar\"\r\n\r\nimport ParameterValue from \"../Controls/ParameterValue.vue\"\r\nimport { Field } from \"@/types/field\"\r\nimport { CaseColumn } from \"@/types/caseColumns\"\r\nimport { LabeledValue } from \"@/types/scheduleSettings\"\r\n\r\ninterface SelectedField {\r\n\tfieldData: any;\r\n\tdataType?: string;\r\n\tvalue?: any;\r\n\tdynamicValue?: boolean\r\n}\r\n\r\n@Component({\r\n\tcomponents: {\r\n\t\t\"v-select\": vSelect,\r\n\t\t\"parameter-value\": ParameterValue,\r\n\t\t\"scrollbar\": VuePerfectScrollbar\r\n\t}\r\n})\r\nexport default class FieldAndValue extends Vue {\r\n\t/**\r\n\t * The list of all fields and their values\r\n\t * */\r\n\t@Prop({ type: Object, default: () => { } })\r\n\tvalue!: Record;\r\n\r\n\t/**\r\n\t * A list of all Fields that can be added\r\n\t */\r\n\t@Prop({ type: Array, required: true })\r\n\tfields!: CaseColumn[];\r\n\r\n\t/**\r\n\t * If an empty value can be set for fields\r\n\t */\r\n\t@Prop({ type: Boolean, default: true })\r\n\tallowEmptyFieldValue!: boolean;\r\n\r\n\tselectedFields: SelectedField[] = []\r\n\r\n\tprivate columns =\r\n\t\t[\r\n\t\t\t{\r\n\t\t\t\tkey: \"field\",\r\n\t\t\t\tlabel: \"Field\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tkey: \"value\",\r\n\t\t\t\tlabel: \"Value\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tkey: \"buttons\",\r\n\t\t\t\tlabel: \"\"\r\n\t\t\t}\r\n\t\t]\r\n\r\n\tget isValid (): boolean {\r\n\t\tif (!this.selectedFields) {\r\n\t\t\treturn true\r\n\t\t}\r\n\r\n\t\tconst selectedFieldType = this.selectedFields\r\n\t\t\t.map(x => x.fieldData)\r\n\t\t\t.filter(x => x && x.dataType !== \"list-multiple\")\r\n\r\n\t\treturn selectedFieldType.length === [...new Set(selectedFieldType)].length\r\n\t}\r\n\r\n\tprivate async mounted () {\r\n\t\tthis.onValueChange()\r\n\t}\r\n\r\n\t/* Handler for when a field is selected in dropdown */\r\n\tfieldSelected (selectedField: SelectedField) {\r\n\t\tselectedField.value = undefined\r\n\t\tselectedField.dynamicValue = false\r\n\r\n\t\tthis.triggerInput()\r\n\t}\r\n\r\n\t/** Emits an input event */\r\n\ttriggerInput () {\r\n\t\tlet newFields:Record = this.selectedFields\r\n\t\t\t.filter(x => !!x.fieldData)\r\n\t\t\t.reduce((a, x) => (\r\n\t\t\t\t{\r\n\t\t\t\t\t...a,\r\n\t\t\t\t\t[x.fieldData.key]: { label: x.fieldData.key, value: x.value }\r\n\t\t\t\t}\r\n\t\t\t), {})\r\n\r\n\t\tif (this.selectedFields.every(f => !!f.value) /* all fields have value */ ||\r\n\t\t\t\t(this.allowEmptyFieldValue &&\r\n\t\t\t\t\tthis.selectedFields.every(f => f.fieldData && !!f.fieldData.key) /* all fields have key */)\r\n\t\t) {\r\n\t\t\tthis.$emit(\"input\", newFields)\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * On value prop being changed, remove any corresponding selected fields\r\n\t * @private\r\n\t */\r\n\t@Watch(\"value\")\r\n\tprivate onValueChange () {\r\n\t\tthis.selectedFields = Object.keys(this.value).map((fieldKey: string) => {\r\n\t\t\treturn {\r\n\t\t\t\tfieldData: this.fields.find(f => f.key === fieldKey),\r\n\t\t\t\tvalue: this.value[fieldKey].value,\r\n\t\t\t\tdynamicValue: this.value[fieldKey].dynamicValue === undefined ? false : this.value[fieldKey].dynamicValue\r\n\t\t\t}\r\n\t\t})\r\n\t}\r\n\r\n\t/**\r\n\t * On Fields prop being changed, remove any corresponding selected fields\r\n\t * @private\r\n\t */\r\n\t@Watch(\"fields\")\r\n\tprivate onFieldsChange () {\r\n\t\tif (!this.selectedFields) return\r\n\r\n\t\tconst filteredOutFields = this.selectedFields\r\n\t\t\t.filter(y => y.fieldData !== undefined) // filter out in progress fields\r\n\t\t\t.filter(x => !this.fields.map(x => x.key).includes(x.fieldData.key))\r\n\r\n\t\tfilteredOutFields.forEach(field => this.removeField(field))\r\n\r\n\t\t// Refresh value\r\n\t\tthis.onValueChange()\r\n\t}\r\n\r\n\tprivate dynamicValueChanged (field: SelectedField, newValue: boolean) {\r\n\t\tVue.set(field, \"dynamicValue\", newValue)\r\n\t\tVue.set(field, \"value\", null)\r\n\t}\r\n\r\n\t/**\r\n\t * Adds a blank field to the list.\r\n\t */\r\n\tpublic addField () {\r\n\t\tif (!this.selectedFields) {\r\n\t\t\tthis.selectedFields = []\r\n\t\t}\r\n\r\n\t\t// If the last added field is not set, don't add another\r\n\t\tif (this.selectedFields.length > 0 &&\r\n\t\t\t\t!this.selectedFields[this.selectedFields.length - 1].fieldData) {\r\n\t\t\treturn\r\n\t\t}\r\n\r\n\t\tthis.selectedFields.push({\r\n\t\t\tfieldData: null,\r\n\t\t\tdynamicValue: false\r\n\t\t})\r\n\t}\r\n\r\n\t/**\r\n\t * Removes a field from the list.\r\n\t * @param field The field to remove\r\n\t * @private\r\n\t */\r\n\tprivate removeField (field: SelectedField) {\r\n\t\tthis.selectedFields.splice(this.selectedFields.indexOf(field), 1)\r\n\t\tthis.triggerInput()\r\n\t}\r\n}\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FieldAndValue.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FieldAndValue.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./FieldAndValue.vue?vue&type=template&id=baed9330&scoped=true&\"\nimport script from \"./FieldAndValue.vue?vue&type=script&lang=ts&\"\nexport * from \"./FieldAndValue.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./FieldAndValue.vue?vue&type=style&index=0&id=baed9330&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"baed9330\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"form-group\"},[_c('div',{staticClass:\"input-group\"},[_c('input',{ref:\"input\",staticClass:\"form-control\",attrs:{\"type\":\"string\",\"data-cy\":\"extLink\",\"readonly\":_vm.readonly,\"step\":\"any\"},domProps:{\"value\":_vm.stringValue},on:{\"focus\":function($event){return _vm.$emit('focus', $event.target.value)},\"blur\":function($event){return _vm.blurValue($event.target.value)},\"input\":function($event){return _vm.setValue($event.target.value)}}})]),_c('div',[_c('a',{attrs:{\"href\":_vm.stringValue,\"target\":\"_new\",\"referrerpolicy\":\"strict-origin\"}},[_vm._v(_vm._s(_vm.stringValue))])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { Component, Vue, Watch, Prop } from \"vue-property-decorator\"\r\n\r\nimport api from \"@/services/api\"\r\n\r\n@Component({\r\n\tcomponents: {\r\n\t}\r\n})\r\nexport default class ExternalLink extends Vue {\r\n\t@Prop({ default: \"\" })\r\n public value!: string;\r\n\r\n @Prop({ type: Boolean, default: false })\r\n\tpublic readonly!: Boolean;\r\n\r\n\tpublic stringValue: string | null = null;\r\n\r\n\tpublic mounted () {\r\n\t\tthis.setValue(this.value)\r\n\t}\r\n\r\n\t@Watch(\"value\")\r\n\tonValueChanged (newValue: any) {\r\n\t\tthis.setValue(newValue)\r\n\t}\r\n\r\n\tsetValue (newValue: any) {\r\n\t\tconst oldValue = this.stringValue\r\n\t\tif (oldValue !== newValue) {\r\n\t\t\tthis.stringValue = newValue\r\n\t\t\tthis.$emit(\"input\", newValue)\r\n\t\t}\r\n\t}\r\n\r\n\tblurValue (newValue: string) {\r\n\t\tthis.$emit(\"blur\", newValue)\r\n\t}\r\n}\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ExternalLink.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ExternalLink.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ExternalLink.vue?vue&type=template&id=28d5f66f&scoped=true&\"\nimport script from \"./ExternalLink.vue?vue&type=script&lang=ts&\"\nexport * from \"./ExternalLink.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"28d5f66f\",\n null\n \n)\n\nexport default component.exports","var map = {\n\t\"./af\": \"2bfb\",\n\t\"./af.js\": \"2bfb\",\n\t\"./ar\": \"8e73\",\n\t\"./ar-dz\": \"a356\",\n\t\"./ar-dz.js\": \"a356\",\n\t\"./ar-kw\": \"423e\",\n\t\"./ar-kw.js\": \"423e\",\n\t\"./ar-ly\": \"1cfd\",\n\t\"./ar-ly.js\": \"1cfd\",\n\t\"./ar-ma\": \"0a84\",\n\t\"./ar-ma.js\": \"0a84\",\n\t\"./ar-sa\": \"8230\",\n\t\"./ar-sa.js\": \"8230\",\n\t\"./ar-tn\": \"6d83\",\n\t\"./ar-tn.js\": \"6d83\",\n\t\"./ar.js\": \"8e73\",\n\t\"./az\": \"485c\",\n\t\"./az.js\": \"485c\",\n\t\"./be\": \"1fc1\",\n\t\"./be.js\": \"1fc1\",\n\t\"./bg\": \"84aa\",\n\t\"./bg.js\": \"84aa\",\n\t\"./bm\": \"a7fa\",\n\t\"./bm.js\": \"a7fa\",\n\t\"./bn\": \"9043\",\n\t\"./bn.js\": \"9043\",\n\t\"./bo\": \"d26a\",\n\t\"./bo.js\": \"d26a\",\n\t\"./br\": \"6887\",\n\t\"./br.js\": \"6887\",\n\t\"./bs\": \"2554\",\n\t\"./bs.js\": \"2554\",\n\t\"./ca\": \"d716\",\n\t\"./ca.js\": \"d716\",\n\t\"./cs\": \"3c0d\",\n\t\"./cs.js\": \"3c0d\",\n\t\"./cv\": \"03ec\",\n\t\"./cv.js\": \"03ec\",\n\t\"./cy\": \"9797\",\n\t\"./cy.js\": \"9797\",\n\t\"./da\": \"0f14\",\n\t\"./da.js\": \"0f14\",\n\t\"./de\": \"b469\",\n\t\"./de-at\": \"b3eb\",\n\t\"./de-at.js\": \"b3eb\",\n\t\"./de-ch\": \"bb71\",\n\t\"./de-ch.js\": \"bb71\",\n\t\"./de.js\": \"b469\",\n\t\"./dv\": \"598a\",\n\t\"./dv.js\": \"598a\",\n\t\"./el\": \"8d47\",\n\t\"./el.js\": \"8d47\",\n\t\"./en-SG\": \"cdab\",\n\t\"./en-SG.js\": \"cdab\",\n\t\"./en-au\": \"0e6b\",\n\t\"./en-au.js\": \"0e6b\",\n\t\"./en-ca\": \"3886\",\n\t\"./en-ca.js\": \"3886\",\n\t\"./en-gb\": \"39a6\",\n\t\"./en-gb.js\": \"39a6\",\n\t\"./en-ie\": \"e1d3\",\n\t\"./en-ie.js\": \"e1d3\",\n\t\"./en-il\": \"7333\",\n\t\"./en-il.js\": \"7333\",\n\t\"./en-nz\": \"6f50\",\n\t\"./en-nz.js\": \"6f50\",\n\t\"./eo\": \"65db\",\n\t\"./eo.js\": \"65db\",\n\t\"./es\": \"898b\",\n\t\"./es-do\": \"0a3c\",\n\t\"./es-do.js\": \"0a3c\",\n\t\"./es-us\": \"55c9\",\n\t\"./es-us.js\": \"55c9\",\n\t\"./es.js\": \"898b\",\n\t\"./et\": \"ec18\",\n\t\"./et.js\": \"ec18\",\n\t\"./eu\": \"0ff2\",\n\t\"./eu.js\": \"0ff2\",\n\t\"./fa\": \"8df4\",\n\t\"./fa.js\": \"8df4\",\n\t\"./fi\": \"81e9\",\n\t\"./fi.js\": \"81e9\",\n\t\"./fo\": \"0721\",\n\t\"./fo.js\": \"0721\",\n\t\"./fr\": \"9f26\",\n\t\"./fr-ca\": \"d9f8\",\n\t\"./fr-ca.js\": \"d9f8\",\n\t\"./fr-ch\": \"0e49\",\n\t\"./fr-ch.js\": \"0e49\",\n\t\"./fr.js\": \"9f26\",\n\t\"./fy\": \"7118\",\n\t\"./fy.js\": \"7118\",\n\t\"./ga\": \"5120\",\n\t\"./ga.js\": \"5120\",\n\t\"./gd\": \"f6b4\",\n\t\"./gd.js\": \"f6b4\",\n\t\"./gl\": \"8840\",\n\t\"./gl.js\": \"8840\",\n\t\"./gom-latn\": \"0caa\",\n\t\"./gom-latn.js\": \"0caa\",\n\t\"./gu\": \"e0c5\",\n\t\"./gu.js\": \"e0c5\",\n\t\"./he\": \"c7aa\",\n\t\"./he.js\": \"c7aa\",\n\t\"./hi\": \"dc4d\",\n\t\"./hi.js\": \"dc4d\",\n\t\"./hr\": \"4ba9\",\n\t\"./hr.js\": \"4ba9\",\n\t\"./hu\": \"5b14\",\n\t\"./hu.js\": \"5b14\",\n\t\"./hy-am\": \"d6b6\",\n\t\"./hy-am.js\": \"d6b6\",\n\t\"./id\": \"5038\",\n\t\"./id.js\": \"5038\",\n\t\"./is\": \"0558\",\n\t\"./is.js\": \"0558\",\n\t\"./it\": \"6e98\",\n\t\"./it-ch\": \"6f12\",\n\t\"./it-ch.js\": \"6f12\",\n\t\"./it.js\": \"6e98\",\n\t\"./ja\": \"079e\",\n\t\"./ja.js\": \"079e\",\n\t\"./jv\": \"b540\",\n\t\"./jv.js\": \"b540\",\n\t\"./ka\": \"201b\",\n\t\"./ka.js\": \"201b\",\n\t\"./kk\": \"6d79\",\n\t\"./kk.js\": \"6d79\",\n\t\"./km\": \"e81d\",\n\t\"./km.js\": \"e81d\",\n\t\"./kn\": \"3e92\",\n\t\"./kn.js\": \"3e92\",\n\t\"./ko\": \"22f8\",\n\t\"./ko.js\": \"22f8\",\n\t\"./ku\": \"2421\",\n\t\"./ku.js\": \"2421\",\n\t\"./ky\": \"9609\",\n\t\"./ky.js\": \"9609\",\n\t\"./lb\": \"440c\",\n\t\"./lb.js\": \"440c\",\n\t\"./lo\": \"b29d\",\n\t\"./lo.js\": \"b29d\",\n\t\"./lt\": \"26f9\",\n\t\"./lt.js\": \"26f9\",\n\t\"./lv\": \"b97c\",\n\t\"./lv.js\": \"b97c\",\n\t\"./me\": \"293c\",\n\t\"./me.js\": \"293c\",\n\t\"./mi\": \"688b\",\n\t\"./mi.js\": \"688b\",\n\t\"./mk\": \"6909\",\n\t\"./mk.js\": \"6909\",\n\t\"./ml\": \"02fb\",\n\t\"./ml.js\": \"02fb\",\n\t\"./mn\": \"958b\",\n\t\"./mn.js\": \"958b\",\n\t\"./mr\": \"39bd\",\n\t\"./mr.js\": \"39bd\",\n\t\"./ms\": \"ebe4\",\n\t\"./ms-my\": \"64030\",\n\t\"./ms-my.js\": \"64030\",\n\t\"./ms.js\": \"ebe4\",\n\t\"./mt\": \"1b45\",\n\t\"./mt.js\": \"1b45\",\n\t\"./my\": \"8689\",\n\t\"./my.js\": \"8689\",\n\t\"./nb\": \"6ce3\",\n\t\"./nb.js\": \"6ce3\",\n\t\"./ne\": \"3a39\",\n\t\"./ne.js\": \"3a39\",\n\t\"./nl\": \"facd\",\n\t\"./nl-be\": \"db29\",\n\t\"./nl-be.js\": \"db29\",\n\t\"./nl.js\": \"facd\",\n\t\"./nn\": \"b84c\",\n\t\"./nn.js\": \"b84c\",\n\t\"./pa-in\": \"f3ff\",\n\t\"./pa-in.js\": \"f3ff\",\n\t\"./pl\": \"8d57\",\n\t\"./pl.js\": \"8d57\",\n\t\"./pt\": \"f260\",\n\t\"./pt-br\": \"d2d4\",\n\t\"./pt-br.js\": \"d2d4\",\n\t\"./pt.js\": \"f260\",\n\t\"./ro\": \"972c\",\n\t\"./ro.js\": \"972c\",\n\t\"./ru\": \"957c\",\n\t\"./ru.js\": \"957c\",\n\t\"./sd\": \"6784\",\n\t\"./sd.js\": \"6784\",\n\t\"./se\": \"ffff\",\n\t\"./se.js\": \"ffff\",\n\t\"./si\": \"eda5\",\n\t\"./si.js\": \"eda5\",\n\t\"./sk\": \"7be6\",\n\t\"./sk.js\": \"7be6\",\n\t\"./sl\": \"8155\",\n\t\"./sl.js\": \"8155\",\n\t\"./sq\": \"c8f3\",\n\t\"./sq.js\": \"c8f3\",\n\t\"./sr\": \"cf1e\",\n\t\"./sr-cyrl\": \"13e9\",\n\t\"./sr-cyrl.js\": \"13e9\",\n\t\"./sr.js\": \"cf1e\",\n\t\"./ss\": \"52bd\",\n\t\"./ss.js\": \"52bd\",\n\t\"./sv\": \"5fbd\",\n\t\"./sv.js\": \"5fbd\",\n\t\"./sw\": \"74dc\",\n\t\"./sw.js\": \"74dc\",\n\t\"./ta\": \"3de5\",\n\t\"./ta.js\": \"3de5\",\n\t\"./te\": \"5cbb\",\n\t\"./te.js\": \"5cbb\",\n\t\"./tet\": \"576c\",\n\t\"./tet.js\": \"576c\",\n\t\"./tg\": \"3b1b\",\n\t\"./tg.js\": \"3b1b\",\n\t\"./th\": \"10e8\",\n\t\"./th.js\": \"10e8\",\n\t\"./tl-ph\": \"0f38\",\n\t\"./tl-ph.js\": \"0f38\",\n\t\"./tlh\": \"cf755\",\n\t\"./tlh.js\": \"cf755\",\n\t\"./tr\": \"0e81\",\n\t\"./tr.js\": \"0e81\",\n\t\"./tzl\": \"cf51\",\n\t\"./tzl.js\": \"cf51\",\n\t\"./tzm\": \"c109\",\n\t\"./tzm-latn\": \"b53d\",\n\t\"./tzm-latn.js\": \"b53d\",\n\t\"./tzm.js\": \"c109\",\n\t\"./ug-cn\": \"6117\",\n\t\"./ug-cn.js\": \"6117\",\n\t\"./uk\": \"ada2\",\n\t\"./uk.js\": \"ada2\",\n\t\"./ur\": \"5294\",\n\t\"./ur.js\": \"5294\",\n\t\"./uz\": \"2e8c\",\n\t\"./uz-latn\": \"010e\",\n\t\"./uz-latn.js\": \"010e\",\n\t\"./uz.js\": \"2e8c\",\n\t\"./vi\": \"2921\",\n\t\"./vi.js\": \"2921\",\n\t\"./x-pseudo\": \"fd7e\",\n\t\"./x-pseudo.js\": \"fd7e\",\n\t\"./yo\": \"7f33\",\n\t\"./yo.js\": \"7f33\",\n\t\"./zh-cn\": \"5c3a\",\n\t\"./zh-cn.js\": \"5c3a\",\n\t\"./zh-hk\": \"49ab\",\n\t\"./zh-hk.js\": \"49ab\",\n\t\"./zh-tw\": \"90ea\",\n\t\"./zh-tw.js\": \"90ea\"\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 = \"4678\";","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserProfilePicture.vue?vue&type=style&index=1&id=5d5dc478&prod&lang=scss&scoped=true&\"","import { DataType } from \"./dataType\"\r\n\r\nexport enum CalculationType {\r\n\tNumerical,\r\n\tTotal,\r\n\tAverage,\r\n\tAddToDate,\r\n\tDaysBetweenDates,\r\n\tDaysUntilOrFromToday,\r\n\tGreaterThan,\r\n\tLessThan,\r\n\tTimeSpentAs\r\n}\r\n\r\nconst CalculationDataType: { [key in CalculationType]: string } = {\r\n\t[CalculationType.Numerical]: \"number\",\r\n\t[CalculationType.Total]: \"number\",\r\n\t[CalculationType.Average]: \"number\",\r\n\t[CalculationType.AddToDate]: \"date\",\r\n\t[CalculationType.DaysBetweenDates]: \"number\",\r\n\t[CalculationType.DaysUntilOrFromToday]: \"number\",\r\n\t[CalculationType.GreaterThan]: \"checkbox\",\r\n\t[CalculationType.LessThan]: \"checkbox\",\r\n\t[CalculationType.TimeSpentAs]: \"time-spent\"\r\n}\r\nexport default CalculationDataType\r\n\r\nexport const CalculationDataTypeValue: { [calculationType in CalculationType]: DataType } = {\r\n\t[CalculationType.Numerical]: DataType.number,\r\n\t[CalculationType.Total]: DataType.number,\r\n\t[CalculationType.Average]: DataType.number,\r\n\t[CalculationType.AddToDate]: DataType.dateTime,\r\n\t[CalculationType.DaysBetweenDates]: DataType.number,\r\n\t[CalculationType.DaysUntilOrFromToday]: DataType.number,\r\n\t[CalculationType.GreaterThan]: DataType.boolean,\r\n\t[CalculationType.LessThan]: DataType.boolean,\r\n\t[CalculationType.TimeSpentAs]: DataType.timeSpentAsValue\r\n}\r\n\r\nexport interface Permission {\r\n\tview: any[]\r\n\tedit: any[]\r\n}\r\n\r\nexport interface Permissions {\r\n\trecord: Permission\r\n\tcase: Permission\r\n}\r\n\r\nexport interface Field {\r\n\tid?: string;\r\n\ttitle: string;\r\n\tdescription: string | null;\r\n\tdataType: string | null;\r\n\tdataTypeTitle?: string;\r\n\r\n\tdataSourceId: string | null;\r\n\tdataSourceTitle: string | null;\r\n\r\n\tdefinitionId: string | null;\r\n\tdefinitionTitle: string | null;\r\n\r\n\tallowFiles: boolean;\r\n\tdisplayReadOnly?: boolean\r\n\r\n\tpermissions: Permissions\r\n\r\n\tadded?: boolean;\r\n\tadd?: boolean;\r\n\r\n\textensions?: { [key: string]: any };\r\n}\r\n\r\nexport interface FieldSelected {\r\n\tfield: string;\r\n\tprimitiveDataType: number;\r\n\tdataTypeName: string;\r\n}\r\n","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DateTime.vue?vue&type=style&index=0&id=df3eb294&prod&lang=scss&scoped=true&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ParameterValue.vue?vue&type=style&index=0&id=b80d6882&prod&lang=css&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('view-folders',{staticClass:\"folders\",attrs:{\"views\":_vm.views,\"activeViewId\":_vm.activeViewId},on:{\"gotoPage\":_vm.gotoPage}})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { Component, Vue, Watch, Prop } from \"vue-property-decorator\"\r\nimport api from \"@/services/api\"\r\nimport { namespace, Getter, Mutation, Action } from \"vuex-class\"\r\n\r\n// @ts-ignore\r\nimport VuePerfectScrollbar from \"vue-perfect-scrollbar\"\r\nimport { ViewSummary } from \"@/types/views/viewSummary\"\r\nimport ViewFolders from \"./ViewFolders.vue\"\r\nimport { View } from \"@/types/view\"\r\nimport { cloneDeep, get } from \"lodash\"\r\n\r\nconst caseStore = namespace(\"cases\")\r\n\r\n\t@Component({\r\n\t\tcomponents: {\r\n\t\t\t\"scrollbar\": VuePerfectScrollbar,\r\n\t\t\t\"view-folders\": ViewFolders\r\n\t\t}\r\n\t})\r\nexport default class CaseFilters extends Vue {\r\n\t@Getter(\"getScreenWidth\") public screenWidth!: number;\r\n\r\n\t@Prop()\r\n\tviews!: ViewSummary[];\r\n\r\n\t@Prop()\r\n\tactiveViewId!: string | null;\r\n\r\n\tpublic gotoPage (viewId: string) {\r\n\t\tthis.$emit(\"changeView\", viewId)\r\n\t}\r\n}\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CaseFilters.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CaseFilters.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./CaseFilters.vue?vue&type=template&id=a796e6c4&scoped=true&\"\nimport script from \"./CaseFilters.vue?vue&type=script&lang=ts&\"\nexport * from \"./CaseFilters.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"a796e6c4\",\n null\n \n)\n\nexport default component.exports","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CaseList.vue?vue&type=style&index=0&id=78093a0c&prod&lang=scss&scoped=true&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TeamView.vue?vue&type=style&index=0&id=15f7ea86&prod&scoped=true&lang=scss&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.userRole && _vm.isMounted)?_c('div',{key:_vm.isMounted,staticClass:\"m-l-10\"},[(!_vm.userRole.subroles || _vm.userRole.subroles.length === 0)?_c('b-list-group',[_vm._l((_vm.users),function(user){return _c('b-list-group-item',{key:user.id,staticClass:\"p-1\"},[_c('div',{staticClass:\"d-flex align-items-center\"},[_c('user-image',{staticClass:\"flex-grow-1 \",attrs:{\"user\":user,\"showUserName\":\"\",\"showTeams\":\"\",\"showHeaderFields\":true}}),(_vm.userRole.allowTimeTracking === true)?_c('span',{staticClass:\"d-flex w-25 m-r-10\",staticStyle:{\"min-width\":\"80px\"}},[_c('b-input-group',{attrs:{\"prepend-html\":\"\"}},[_c('b-form-input',{attrs:{\"placeholder\":\"0\",\"prepend\":\"test\",\"type\":\"number\",\"readonly\":_vm.readonly},on:{\"blur\":function($event){return _vm.updateUserTime(user, user.timeSpent)}},model:{value:(user.timeSpent),callback:function ($$v) {_vm.$set(user, \"timeSpent\", $$v)},expression:\"user.timeSpent\"}})],1)],1):_vm._e(),(!_vm.readonly)?_c('span',{staticClass:\"badge badge-pill btn btn-danger btn-small btn-circle\",on:{\"click\":function($event){$event.stopPropagation();$event.preventDefault();_vm.confirmRemoveUserId = user.id}}},[_c('span',{staticClass:\"fas fa-times\"})]):_vm._e()],1),(user.id === _vm.confirmRemoveUserId)?_c('div',{staticClass:\"m-t-5 m-b-10\"},[_c('div',{staticClass:\"m-b-5\"},[_vm._v(\" Are you sure you wish to remove \"+_vm._s(user.name)+\"? \")]),_c('b-btn-group',{staticClass:\"w-100 d-flex\"},[_c('b-btn',{staticStyle:{\"flex-grow\":\"1\"},attrs:{\"variant\":\"danger\"},on:{\"click\":function($event){return _vm.removeUser(user)}}},[_vm._v(\"Remove\")]),_c('b-btn',{staticStyle:{\"flex-grow\":\"1\"},attrs:{\"variant\":\"secondary\"},on:{\"click\":function($event){_vm.confirmRemoveUserId = null}}},[_vm._v(\" Cancel \")])],1)],1):_vm._e()])}),_c('b-list-group-item',{staticClass:\"p-1\"},[(_vm.addingUser && !_vm.readonly)?_c('user-search',{attrs:{\"searchTeams\":false,\"showTeamFilter\":true,\"isExternalUser\":this.addingExternalUser,\"existingUserIds\":_vm.userIds,\"allowedTeamsIds\":_vm.extensions.teams,\"currentCase\":_vm.currentCase,\"disallowAdded\":false},on:{\"cancel\":function($event){_vm.addingUser = false},\"selected\":_vm.addUser}}):_vm._e(),((!_vm.userRole.isSingleUser || _vm.users.length === 0))?_c('div',{staticClass:\"d-flex justify-content-end align-items-center flex-wrap\"},[(_vm.users.length === 0 && !_vm.addingUser)?_c('div',{staticClass:\"flex-grow-1\"},[_c('i',{staticClass:\"text-muted\"},[_vm._v(\"None assigned\")])]):_vm._e(),_c('div',{staticClass:\"flex-grow-0\"},[(!_vm.addingUser && !_vm.readonly)?_c('b-button',{attrs:{\"size\":\"sm\",\"variant\":\"secondary\"},on:{\"click\":function($event){_vm.addingUser = true, _vm.addingExternalUser = false}}},[_vm._v(\" Add \"+_vm._s(_vm.title)+\" \")]):_vm._e(),(!_vm.addingUser && !_vm.readonly && _vm.userRole.allowExternalUsers)?_c('b-button',{staticStyle:{\"margin-left\":\"5px\"},attrs:{\"size\":\"sm\",\"variant\":\"secondary\"},on:{\"click\":function($event){_vm.addingUser = true, _vm.addingExternalUser = true}}},[_vm._v(\" Add External \"+_vm._s(_vm.title)+\" \")]):_vm._e()],1)]):_vm._e()],1)],2):_vm._l((_vm.subroles),function(role,index){return _c('div',{key:index},[_c('b-form-group',{staticClass:\"m-b-5\",attrs:{\"label\":role.title,\"label-for\":\"user-role\"}},[_c('user-role',{attrs:{\"currentCase\":_vm.currentCase,\"title\":role.title,\"userRole\":role,\"extensions\":_vm.extensions,\"value\":role,\"readonly\":_vm.readonly},on:{\"input\":function (value) { return _vm.updateRole(role, value); }}})],1)],1)})],2):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[(!_vm.isExternalUser)?_c('div',[(_vm.enableTeamFilter)?_c('v-select',{attrs:{\"data-cy\":\"team-filter\",\"options\":_vm.filterTeams,\"reduce\":function (team) { return team.id; },\"label\":\"title\",\"placeholder\":\"Find team\"},model:{value:(_vm.teamFilter),callback:function ($$v) {_vm.teamFilter=$$v},expression:\"teamFilter\"}}):_vm._e(),_c('v-select',{attrs:{\"data-cy\":\"invite-search\",\"options\":_vm.inviteUsers,\"label\":_vm.currentCase ? 'title' : 'name',\"placeholder\":_vm.searchTeams ? 'Search for users and teams' : 'Search for users',\"filterable\":false,\"value\":_vm.selectedItem},on:{\"input\":_vm.addUser,\"search\":_vm.fetchOptions},scopedSlots:_vm._u([{key:\"no-options\",fn:function(ref){\nvar search = ref.search;\nreturn [(search)?_c('span',[_vm._v(\"Nothing found for \"+_vm._s(search))]):_c('span',[_vm._v(\"Type to search for users\"+_vm._s(_vm.searchTeams ? \" and teams\" : \"\"))])]}},{key:\"option\",fn:function(result){return [_c('div',{staticClass:\"d-flex flex-row align-items-center\"},[(!result.isTeam)?_c('img',{staticClass:\"user-image circular\",attrs:{\"src\":_vm.userPicture(result)},on:{\"load\":function($event){return _vm.loadedImage(result)}}}):_vm._e(),_c('div',[_vm._v(\" \"+_vm._s(_vm.currentCase ? result.title : result.name)+\" \"),_c('br'),(result.teams)?_c('small',[_vm._v(_vm._s(result.teams.map(function (team) { return team.title; }).join(\", \")))]):_vm._e()])])]}},{key:\"open-indicator\",fn:function(){return [_c('span')]},proxy:true}],null,false,1728015983)}),_c('div',{staticClass:\"align-end\"},[_c('b-button',{attrs:{\"size\":\"sm\",\"variant\":\"secondary\"},on:{\"click\":function($event){return _vm.$emit('cancel')}}},[_vm._v(\" Cancel \")])],1)],1):_c('div',[_c('b-form-input',{attrs:{\"placeholder\":\"Name\",\"type\":\"text\"},model:{value:(_vm.externalUser.name),callback:function ($$v) {_vm.$set(_vm.externalUser, \"name\", $$v)},expression:\"externalUser.name\"}}),_c('b-form-input',{staticStyle:{\"margin-bottom\":\"10px\"},attrs:{\"placeholder\":\"Email\",\"type\":\"text\"},model:{value:(_vm.externalUser.email),callback:function ($$v) {_vm.$set(_vm.externalUser, \"email\", $$v)},expression:\"externalUser.email\"}}),_c('div',{staticClass:\"align-end\"},[_c('b-button',{staticClass:\"m-r-10\",attrs:{\"size\":\"sm\",\"variant\":\"secondary\",\"disabled\":!_vm.externalUser.name || !_vm.externalUser.email},on:{\"click\":function($event){return _vm.addUser(_vm.externalUser)}}},[_vm._v(\" Add \")]),_c('b-button',{attrs:{\"size\":\"sm\",\"variant\":\"secondary\"},on:{\"click\":function($event){return _vm.$emit('cancel')}}},[_vm._v(\" Cancel \")])],1)],1)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { Component, Vue, Watch, Prop, Emit } from \"vue-property-decorator\"\r\nimport { namespace, Getter, Action, State } from \"vuex-class\"\r\n\r\nimport vSelect from \"vue-select\"\r\n\r\nimport { CaseDetails, CaseUser, CaseField, Team } from \"@/types\"\r\n\r\nimport api from \"@/services/api\"\r\n\r\n\t@Component({\r\n\t\tcomponents: {\r\n\t\t\t\"v-select\": vSelect\r\n\t\t}\r\n\t})\r\nexport default class UserSearch extends Vue {\r\n\t@Prop()\r\n\tpublic currentCase: any;\r\n\r\n\t@Prop({ default: true })\r\n\tsearchTeams!: boolean;\r\n\r\n\t@Prop({ default: false })\r\n\tisExternalUser!: boolean;\r\n\r\n\t@Prop({ default: false })\r\n\tshowTeamFilter!: boolean;\r\n\r\n\t@Prop({ default: () => [] })\r\n\texistingUserIds!: string[];\r\n\r\n\t@Prop({ default: () => [] })\r\n\tallowedTeamsIds!: string[];\r\n\r\n\t@Prop({ default: true })\r\n\tdisallowAdded!: boolean\r\n\r\n\t@State public teams!: Team[];\r\n\r\n\tprivate inviteSearch: string = \"\";\r\n\tprivate inviteUsers: any[] = [];\r\n\tprivate selectedItem: any = null;\r\n\tprivate externalUser: any = {\r\n\t\tisExternal: true,\r\n\t\tname: null,\r\n\t\temail: null,\r\n\t\tid: null\r\n\t};\r\n\tprivate teamFilter: string | null = null;\r\n\r\n\tget filterTeams (): Team[] {\r\n\t\tif (!this.allowedTeamsIds || this.allowedTeamsIds.length === 0) return this.teams\r\n\t\treturn this.teams.filter(t => this.allowedTeamsIds.indexOf(t.id) > -1)\r\n\t}\r\n\r\n\tget enableTeamFilter () {\r\n\t\treturn this.showTeamFilter && this.filterTeams.length > 1\r\n\t}\r\n\r\n\tpublic async fetchOptions (search: string, loading: (isLoading: boolean) => void) {\r\n\t\tif (search === \"\") {\r\n\t\t\tthis.inviteUsers = []\r\n\t\t} else {\r\n\t\t\tloading(true)\r\n\r\n\t\t\ttry {\r\n\t\t\t\tthis.inviteUsers = (this.currentCase\r\n\t\t\t\t\t? await api.searchInvite(this.currentCase.id, search,\r\n\t\t\t\t\t\tthis.teamFilter\r\n\t\t\t\t\t\t\t? [this.teamFilter]\r\n\t\t\t\t\t\t\t: this.allowedTeamsIds && this.allowedTeamsIds.length > 0 ? this.allowedTeamsIds : null,\r\n\t\t\t\t\t\tthis.searchTeams,\r\n\t\t\t\t\t\tthis.disallowAdded)\r\n\t\t\t\t\t: await api.searchUsers(search, this.teamFilter, this.allowedTeamsIds && this.allowedTeamsIds.length > 0 ? this.allowedTeamsIds : null))\r\n\t\t\t\t\t.filter((user: any) => this.existingUserIds.indexOf(user.id) === -1)\r\n\t\t\t} finally {\r\n\t\t\t\tloading(false)\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tpublic userPicture (inviteSearchResult: any): string {\r\n\t\tif (inviteSearchResult.isTeam) {\r\n\t\t\treturn \"\"\r\n\t\t} else if (inviteSearchResult.imageUrl) {\r\n\t\t\treturn inviteSearchResult.imageUrl!\r\n\t\t} else if (inviteSearchResult.pictureUrl) {\r\n\t\t\treturn inviteSearchResult.pictureUrl!\r\n\t\t} else {\r\n\t\t\treturn api.pictureUrl(inviteSearchResult.id)\r\n\t\t}\r\n\t}\r\n\r\n\t@Emit(\"selected\")\r\n\tpublic async addUser (inviteSearchResult: any) {\r\n\t\tif (inviteSearchResult.isExternal) {\r\n\t\t\tinviteSearchResult.id = await api.generateID()\r\n\t\t}\r\n\t\treturn inviteSearchResult\r\n\t}\r\n\r\n\tpublic loadedImage (result: any) {\r\n\t\t// do nothing here - this is just a handler to tell the browser not to show it until it's loaded\r\n\t}\r\n}\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--13-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserSearch.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--13-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserSearch.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./UserSearch.vue?vue&type=template&id=331f7458&scoped=true&\"\nimport script from \"./UserSearch.vue?vue&type=script&lang=ts&\"\nexport * from \"./UserSearch.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./UserSearch.vue?vue&type=style&index=0&id=331f7458&prod&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"331f7458\",\n null\n \n)\n\nexport default component.exports","\r\nimport { Component, Vue, Watch, Prop } from \"vue-property-decorator\"\r\nimport { namespace, Getter, Action } from \"vuex-class\"\r\n\r\nimport vSelect from \"vue-select\"\r\nimport FormGroup from \"@/components/Fields/FormGroup.vue\"\r\nimport UserImage from \"@/components/UserImage.vue\"\r\nimport UserSearch from \"./UserSearch.vue\"\r\n\r\nimport { Field, CaseDetails, User, CaseUser } from \"@/types\"\r\n\r\nimport api from \"@/services/api\"\r\nimport { UserIdWithStatusAndFields } from \"@/types/user\"\r\nimport UserHeaderFields from \"./UserHeaderFields.vue\"\r\nconst caseStore = namespace(\"cases\")\r\n\r\n@Component({\r\n\tcomponents: {\r\n\t\t\"form-group\": FormGroup,\r\n\t\t\"v-select\": vSelect,\r\n\t\t\"user-image\": UserImage,\r\n\t\t\"user-search\": UserSearch,\r\n\t\t\"user-role\": () => import(\"./UserRole.vue\"),\r\n\t\t\"user-header-fields\": UserHeaderFields\r\n\t}\r\n})\r\nexport default class UserRole extends Vue {\r\n\t@Prop()\r\n\ttitle!: string;\r\n\r\n\t@Prop()\r\n\tuserRole!: any;\r\n\r\n\t@Prop()\r\n\tvalue: any;\r\n\r\n\t@Prop()\r\n\textensions: any;\r\n\r\n\t@Prop({ type: Boolean, default: false })\r\n\treadonly!: boolean;\r\n\r\n\t@Prop()\r\n\tpublic currentCase!: CaseDetails;\r\n\r\n\tnewUsers: CaseUser[] = [];\r\n\taddingUser: boolean = false;\r\n\taddingExternalUser: boolean = false;\r\n\taddingToRole: any = null;\r\n\r\n\tconfirmRemoveUserId: string | null = null\r\n\tuserDataByUserId: { [userId:string] : UserIdWithStatusAndFields } = {}\r\n\r\n\tisMounted = false\r\n\r\n\tpublic get users (): any[] {\r\n\t\tconst users = this.userValues.map(user => {\r\n\t\t\tlet userData = this.userDataByUserId![user.id]\r\n\t\t\tlet headerValues = userData && userData.userHeaderFieldValues ? userData.userHeaderFieldValues : {}\r\n\r\n\t\t\tif (this.currentCase && this.currentCase.users) {\r\n\t\t\t\tlet caseUser: any = this.currentCase.users.find(u => u.id === user.id)\r\n\t\t\t\tif (caseUser) {\r\n\t\t\t\t\treturn {\r\n\t\t\t\t\t\tid: caseUser.id,\r\n\t\t\t\t\t\tname: caseUser.name,\r\n\t\t\t\t\t\tteams: caseUser.teams,\r\n\t\t\t\t\t\temail: caseUser.email,\r\n\t\t\t\t\t\tisExternal: caseUser.isExternal,\r\n\t\t\t\t\t\ttimeSpent: user.timeSpent,\r\n\t\t\t\t\t\tuserHeaderFieldValues: headerValues\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tif (this.newUsers) {\r\n\t\t\t\tconst newUser = this.newUsers.find(u => u.id === user.id)\r\n\t\t\t\tif (newUser) {\r\n\t\t\t\t\treturn {\r\n\t\t\t\t\t\tid: newUser.id,\r\n\t\t\t\t\t\tname: newUser.name,\r\n\t\t\t\t\t\tteams: newUser.teams,\r\n\t\t\t\t\t\temail: newUser.email,\r\n\t\t\t\t\t\tisExternal: newUser.isExternal,\r\n\t\t\t\t\t\ttimeSpent: user.timeSpent,\r\n\t\t\t\t\t\tuserHeaderFieldValues: headerValues\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\treturn {\r\n\t\t\t\tid: user.id,\r\n\t\t\t\tname: \"\",\r\n\t\t\t\tteams: [],\r\n\t\t\t\ttimeSpent: user.timeSpent,\r\n\t\t\t\tuserHeaderFieldValues: headerValues\r\n\t\t\t}\r\n\t\t})\r\n\t\treturn users\r\n\t}\r\n\r\n\tget userValues (): any[] {\r\n\t\treturn this.value && this.value.users ? this.value.users : []\r\n\t}\r\n\r\n\tget userIds (): string[] {\r\n\t\treturn this.userValues.map(user => user.id)\r\n\t}\r\n\r\n\tget subroles () {\r\n\t\tif (!this.userRole || !this.userRole.subroles) return []\r\n\r\n\t\treturn this.userRole.subroles.map((subrole: any) => {\r\n\t\t\tconst subroleValues = this.value && this.value.subRoles\r\n\t\t\t\t? this.value.subRoles.find((r: any) => r.title === subrole.title)\r\n\t\t\t\t: null\r\n\t\t\treturn {\r\n\t\t\t\t...subrole,\r\n\t\t\t\tusers: subroleValues ? subroleValues.users || [] : []\r\n\t\t\t}\r\n\t\t})\r\n\t}\r\n\r\n\tpublic async mounted () {\r\n\t\tif (this.value && this.value.users) {\r\n\t\t\tconst usersNotOnCase = this.currentCase && this.currentCase.users\r\n\t\t\t\t? this.userValues.filter(user => !this.currentCase.users.find(u => u.id === user.id))\r\n\t\t\t\t: this.userValues\r\n\r\n\t\t\tusersNotOnCase.forEach(user => {\r\n\t\t\t\tconst caseId = this.currentCase ? (this.currentCase.id ? this.currentCase.id : \"\") : \"\"\r\n\t\t\t\tapi.userDetails(user.id, caseId).then(userDetails => {\r\n\t\t\t\t\tif (!this.newUsers.some(u => u.id === userDetails.id)) {\r\n\t\t\t\t\t\tthis.newUsers.push({\r\n\t\t\t\t\t\t\tid: userDetails.id,\r\n\t\t\t\t\t\t\tname: userDetails.name,\r\n\t\t\t\t\t\t\tteams: userDetails.teams,\r\n\t\t\t\t\t\t\temail: userDetails.email,\r\n\t\t\t\t\t\t\tisExternal: userDetails.isExternal\r\n\t\t\t\t\t\t})\r\n\t\t\t\t\t}\r\n\t\t\t\t})\r\n\t\t\t})\r\n\t\t}\r\n\t\tawait this.bulkLoadUserData()\r\n\t\tthis.isMounted = true\r\n\t}\r\n\r\n\tpublic addUser (user: any) {\r\n\t\tthis.addingUser = false\r\n\r\n\t\tif (!this.newUsers.some(u => u.id === user.id)) {\r\n\t\t\tthis.newUsers.push({\r\n\t\t\t\tid: user.id,\r\n\t\t\t\tname: user.name === undefined ? user.title : user.name,\r\n\t\t\t\temail: user.email,\r\n\t\t\t\tisExternal: user.isExternal,\r\n\t\t\t\tteams: user.teams\r\n\t\t\t})\r\n\t\t}\r\n\r\n\t\tconst userList = this.userValues\r\n\t\tif (user.isExternal) {\r\n\t\t\tuserList.push({\r\n\t\t\t\tid: user.id,\r\n\t\t\t\ttimeSpent: user.timeSpent,\r\n\t\t\t\tname: user.name,\r\n\t\t\t\temail: user.email,\r\n\t\t\t\tisExternal: user.isExternal\r\n\t\t\t})\r\n\t\t} else {\r\n\t\t\tuserList.push({\r\n\t\t\t\tid: user.id,\r\n\t\t\t\ttimeSpent: user.timeSpent\r\n\t\t\t})\r\n\t\t}\r\n\r\n\t\tthis.$emit(\"input\", {\r\n\t\t\t...this.value,\r\n\t\t\tusers: userList\r\n\t\t})\r\n\t}\r\n\r\n\tpublic removeUser (user: User) {\r\n\t\tthis.confirmRemoveUserId = null\r\n\t\tthis.$emit(\"input\", {\r\n\t\t\t...this.value,\r\n\t\t\tusers: this.userValues.filter(u => u.id !== user.id)\r\n\t\t})\r\n\t}\r\n\r\n\tpublic updateRole (role: any, value: any) {\r\n\t\tVue.set(role, \"users\", value.users)\r\n\r\n\t\tconst newValue = {\r\n\t\t\t...this.value,\r\n\t\t\tsubRoles: this.userRole.subroles.map((subrole: any) => {\r\n\t\t\t\tlet subroleValues = this.value && this.value.subRoles\r\n\t\t\t\t\t? this.value.subRoles.find((r: any) => r.title === subrole.title)\r\n\t\t\t\t\t: null\r\n\r\n\t\t\t\tif (!subroleValues) {\r\n\t\t\t\t\tsubroleValues = {\r\n\t\t\t\t\t\tusers: []\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn {\r\n\t\t\t\t\ttitle: subrole.title,\r\n\t\t\t\t\tusers: subrole.title === role.title\r\n\t\t\t\t\t\t? value.users\r\n\t\t\t\t\t\t: subroleValues.users\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t}\r\n\t\tthis.$emit(\"input\", newValue)\r\n\t}\r\n\r\n\tpublic updateUserTime (user: CaseUser, value: any) {\r\n\t\tthis.value.users[this.value.users.map((x: { id: any; }) => x.id).indexOf(user.id)] = user\r\n\t\tthis.$emit(\"input\", {\r\n\t\t\t...this.value,\r\n\t\t\tusers: this.userValues\r\n\t\t})\r\n\t}\r\n\r\n\t@Watch(\"userIds\")\r\n\tprivate async bulkLoadUserData () : Promise {\r\n\t\tif (!this.userIds || this.userIds.length === 0) {\r\n\t\t\treturn\r\n\t\t}\r\n\t\tconst userIdsWithData = await api.userStatusListWithFieldsGet(this.userIds)\r\n\r\n\t\tuserIdsWithData.forEach(userIdWithData => {\r\n\t\t\tthis.userDataByUserId![userIdWithData.userId] = userIdWithData\r\n\t\t})\r\n\t}\r\n}\r\n\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--13-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserRole.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--13-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserRole.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./UserRole.vue?vue&type=template&id=1813a62e&\"\nimport script from \"./UserRole.vue?vue&type=script&lang=ts&\"\nexport * from \"./UserRole.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/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","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CaseFieldDisplay.vue?vue&type=style&index=0&id=37574935&prod&scoped=true&lang=scss&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FieldAndValue.vue?vue&type=style&index=0&id=baed9330&prod&lang=scss&scoped=true&\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ZendeskHelp.vue?vue&type=style&index=0&id=59e119a8&prod&scoped=true&lang=scss&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"h-100\"},[_c('vue-cal',{staticClass:\"h-100\",attrs:{\"active-view\":\"month\",\"hide-view-selector\":\"\",\"events\":_vm.filteredEvents,\"events-on-month-view\":\"\",\"time\":false,\"on-event-click\":_vm.eventClicked,\"dblclick-to-navigate\":false,\"transitions\":false,\"min-date\":_vm.today},on:{\"ready\":_vm.viewChanged,\"view-change\":_vm.viewChanged,\"cell-click\":_vm.cellClicked},scopedSlots:_vm._u([{key:\"event\",fn:function(ref){\nvar event = ref.event;\nreturn [(event && event.record)?_c('span',[_vm._v(\"#\"+_vm._s(event.record.caseNumber)+\": \"+_vm._s(event.record.title))]):(event && event.schedule)?_c('span',[_vm._v(_vm._s(event.schedule.startTime)+\": \"+_vm._s(event.title))]):_c('span',[_vm._v(_vm._s(event.title))])]}}])}),_c('cal-overflow',{attrs:{\"title\":_vm.overflowTitle},on:{\"itemClicked\":_vm.eventClicked},scopedSlots:_vm._u([{key:\"item-text\",fn:function(ref){\nvar item = ref.item;\nreturn [(item && item.record)?_c('span',[_vm._v(\"#\"+_vm._s(item.record.caseNumber)+\": \"+_vm._s(item.record.title))]):(item && _vm.evitement.schedule)?_c('span',[_vm._v(_vm._s(item.schedule.startTime)+\": \"+_vm._s(item.title))]):_c('span',[_vm._v(_vm._s(item.title))])]}}]),model:{value:(_vm.overflowItems),callback:function ($$v) {_vm.overflowItems=$$v},expression:\"overflowItems\"}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('b-modal',{attrs:{\"size\":\"sm\",\"content-class\":\"fill-modal\",\"title\":_vm.title,\"hide-footer\":\"\"},model:{value:(_vm.open),callback:function ($$v) {_vm.open=$$v},expression:\"open\"}},[_c('div',{staticClass:\"modal-contents\"},[_c('div',[_c('b-form-input',{attrs:{\"placeholder\":\"Filter\"},model:{value:(_vm.filter),callback:function ($$v) {_vm.filter=$$v},expression:\"filter\"}})],1),_c('scrollbar',{staticClass:\"h-100 flex-shrink-1\"},[_c('b-list-group',{staticClass:\"w-100\"},_vm._l((_vm.filteredItems),function(item,index){return _c('b-list-group-item',{key:index,attrs:{\"button\":\"\"},on:{\"click\":function($event){return _vm.itemClicked(item)}}},[_vm._t(\"item-text\",[_vm._v(\" \"+_vm._s(item[_vm.label])+\" \")],{\"item\":item})],2)}),1)],1)],1)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { StringNullableChain } from \"lodash\"\r\nimport { Component, Vue, Watch, Prop, ProvideReactive } from \"vue-property-decorator\"\r\nimport { namespace, Getter, Mutation, Action } from \"vuex-class\"\r\n\r\nimport VuePerfectScrollbar from \"vue-perfect-scrollbar\"\r\n\r\n@Component({\r\n\tcomponents: {\r\n\t\t\"scrollbar\": VuePerfectScrollbar\r\n\t}\r\n})\r\nexport default class SelectModal extends Vue {\r\n\t@Prop({ default: null })\r\n\tvalue!: { title: string }[] | null\r\n\r\n\t@Prop({ default: \"title\" })\r\n\tlabel!: string\r\n\r\n\t@Prop({ default: \"\" })\r\n\ttitle!: string\r\n\r\n\tget filteredItems (): any[] {\r\n\t\tif (!this.value) return []\r\n\t\tif (this.filter === \"\") return this.value\r\n\r\n\t\tconst lower = this.filter.toLowerCase()\r\n\t\treturn this.value.filter((item: any) => item && !!item[this.label] && item[this.label].toLowerCase().includes(lower))\r\n\t}\r\n\r\n\tget open (): boolean {\r\n\t\treturn this.value !== null\r\n\t}\r\n\r\n\tset open (value: boolean) {\r\n\t\tif (!value) {\r\n\t\t\tthis.$emit(\"input\", null)\r\n\t\t}\r\n\t}\r\n\r\n\tprivate filter: string = \"\"\r\n\r\n\titemClicked (item: any) {\r\n\t\tthis.$emit(\"input\", null)\r\n\t\tthis.$emit(\"itemClicked\", item)\r\n\t}\r\n}\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SelectModal.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SelectModal.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./SelectModal.vue?vue&type=template&id=e8d211bc&scoped=true&\"\nimport script from \"./SelectModal.vue?vue&type=script&lang=ts&\"\nexport * from \"./SelectModal.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./SelectModal.vue?vue&type=style&index=0&id=e8d211bc&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"e8d211bc\",\n null\n \n)\n\nexport default component.exports","\r\nimport { Component, Vue, Watch, Prop, Emit } from \"vue-property-decorator\"\r\n\r\n// @ts-ignore\r\nimport VueCal from \"vue-cal\"\r\nimport { Schedule, ScheduleFreq, CalendarEvent } from \"@/types/schedule\"\r\nimport { CaseSummary, TimeZone } from \"@/types\"\r\n\r\nimport moment from \"moment\"\r\nimport { DateTime } from \"luxon\"\r\n\r\nimport SelectModal from \"@/components/Controls/SelectModal.vue\"\r\n\r\n@Component({\r\n\tcomponents: {\r\n\t\t\"vue-cal\": VueCal,\r\n\t\t\"cal-overflow\": SelectModal\r\n\t}\r\n})\r\nexport default class CalendarView extends Vue {\r\n\t@Prop()\r\n\tschedules!: Schedule[]\r\n\r\n\t@Prop({ default: () => null })\r\n\trecords!: CaseSummary[] | null\r\n\r\n\t@Prop()\r\n\tcreateNew!: (values: any) => void\r\n\r\n\t@Prop({ default: null })\r\n\tfilter!: string | null\r\n\r\n\t@Prop({ default: false })\r\n\thidePastSchedules!: boolean\r\n\r\n\t@Prop({ default: 15 })\r\n\tmaxEventsPerDay!: number\r\n\r\n\t@Prop({ default: () => null })\r\n\ttimeZones!: TimeZone[] | null\r\n\r\n\tget today () {\r\n\t\treturn new Date()\r\n\t}\r\n\r\n\toverflowTitle: string | null = null\r\n\toverflowItems: { title: string }[] | null = null\r\n\r\n\tdateRange: {\r\n\t\tstart: Date,\r\n\t\tend: Date\r\n\t} | null = null\r\n\r\n\tget filteredEvents (): CalendarEvent[] {\r\n\t\tif (!this.filter || this.filter === \"\") {\r\n\t\t\treturn this.events\r\n\t\t}\r\n\r\n\t\tconst filter = this.filter.toLowerCase()\r\n\t\treturn this.events.filter(i => i.title.toLowerCase().includes(filter))\r\n\t}\r\n\r\n\tget events (): CalendarEvent[] {\r\n\t\treturn [\r\n\t\t\t...this.scheduleEvents,\r\n\t\t\t...this.groupedRecordEvents\r\n\t\t]\r\n\t}\r\n\r\n\tget groupedRecordEvents (): CalendarEvent[] {\r\n\t\t// Group records by created (start)\r\n\t\tconst grouped = this.recordEvents.reduce((eventGroups, record) => {\r\n\t\t\tconst date = record.start instanceof Date ? (record.start as Date).toString() : (record.start as string)\r\n\t\t\tconst group = eventGroups[date]\r\n\r\n\t\t\tif (group) {\r\n\t\t\t\tgroup.records.push(record)\r\n\t\t\t} else {\r\n\t\t\t\teventGroups = {\r\n\t\t\t\t\t...eventGroups,\r\n\t\t\t\t\t[date]: {\r\n\t\t\t\t\t\trecords: [record]\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\treturn eventGroups\r\n\t\t}, {} as { [key: string]: { records: CalendarEvent[] } })\r\n\r\n\t\t// Limit based on max length. If records are limited, show item to display popup\r\n\t\treturn Object.keys(grouped).map(dateKey => {\r\n\t\t\tconst group = grouped[dateKey]\r\n\t\t\tif (this.maxEventsPerDay > 0 && group.records.length > this.maxEventsPerDay) {\r\n\t\t\t\treturn [\r\n\t\t\t\t\t...group.records.slice(0, this.maxEventsPerDay),\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tstart: dateKey,\r\n\t\t\t\t\t\tend: dateKey,\r\n\t\t\t\t\t\ttitle: `And ${group.records.length - this.maxEventsPerDay} more`,\r\n\t\t\t\t\t\tallDay: true,\r\n\t\t\t\t\t\trecords: group.records.slice(this.maxEventsPerDay),\r\n\t\t\t\t\t\tclass: \"m-t-10\"\r\n\t\t\t\t\t}\r\n\t\t\t\t]\r\n\t\t\t} else {\r\n\t\t\t\treturn group.records\r\n\t\t\t}\r\n\t\t}).flat()\r\n\t}\r\n\r\n\tget recordEvents (): CalendarEvent[] {\r\n\t\tif (!this.records) {\r\n\t\t\treturn []\r\n\t\t}\r\n\r\n\t\treturn this.records.map(record => {\r\n\t\t\tconst recordCreated = new Date(record.created!)\r\n\t\t\tconst dateString = recordCreated.getFullYear() + \"-\" + (recordCreated.getMonth() + 1) + \"-\" + recordCreated.getDate()\r\n\t\t\treturn {\r\n\t\t\t\tstart: dateString,\r\n\t\t\t\tend: dateString,\r\n\t\t\t\ttitle: record.title,\r\n\t\t\t\tallDay: true,\r\n\t\t\t\trecord\r\n\t\t\t}\r\n\t\t})\r\n\t}\r\n\r\n\tget scheduleEvents (): CalendarEvent[] {\r\n\t\tif (!this.schedules || !this.dateRange) {\r\n\t\t\treturn []\r\n\t\t}\r\n\r\n\t\tconst viewDays: Date[] = []\r\n\t\tlet date = new Date(this.dateRange.start)\r\n\t\tif (this.hidePastSchedules) {\r\n\t\t\tdate = moment().utc().startOf(\"day\").toDate()\r\n\r\n\t\t\tif (this.dateRange.end < date) {\r\n\t\t\t\t// Whole range is in the past\r\n\t\t\t\treturn []\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\twhile (date <= this.dateRange.end) {\r\n\t\t\tviewDays.push(new Date(date))\r\n\t\t\tdate = this.addDays(date, 1) // Other methods don't seem to take account of day light saving time in all instances\r\n\t\t}\r\n\r\n\t\tconst today = new Date()\r\n\t\tconst todayDateString = today.getFullYear() + \"-\" + (today.getMonth() + 1) + \"-\" + today.getDate()\r\n\r\n\t\treturn this.schedules.map(schedule => {\r\n\t\t\tswitch (schedule.scheduleFreq) {\r\n\t\t\t\tcase ScheduleFreq.Daily:\r\n\t\t\t\t\treturn viewDays\r\n\t\t\t\t\t\t.filter(date => this.isInScheduleMaxMinDates(schedule, date))\r\n\t\t\t\t\t\t.map(date => {\r\n\t\t\t\t\t\t\tconst dateString = date.getFullYear() + \"-\" + (date.getMonth() + 1) + \"-\" + date.getDate()\r\n\t\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\t\tstart: dateString,\r\n\t\t\t\t\t\t\t\tend: dateString,\r\n\t\t\t\t\t\t\t\ttitle: schedule.title,\r\n\t\t\t\t\t\t\t\tallDay: true,\r\n\t\t\t\t\t\t\t\thide: this.hidePastSchedules && (dateString === todayDateString) && this.hasPassed(date, schedule.startTime, schedule.timeZoneId),\r\n\t\t\t\t\t\t\t\tclass: schedule.bulkCreateForTeams && schedule.bulkCreateForTeams.length > 0 ? \"calendarview-bulk-schedule\" : \"\",\r\n\t\t\t\t\t\t\t\tschedule\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}).filter(sch => !sch.hide)\r\n\t\t\t\tcase ScheduleFreq.Weekly:\r\n\t\t\t\t\treturn viewDays\r\n\t\t\t\t\t\t.filter(date => date.getDay() === schedule.dayOf &&\r\n\t\t\t\t\t\t\tthis.isInScheduleMaxMinDates(schedule, date))\r\n\t\t\t\t\t\t.map(date => {\r\n\t\t\t\t\t\t\tconst dateString = date.getFullYear() + \"-\" + (date.getMonth() + 1) + \"-\" + date.getDate()\r\n\t\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\t\tstart: dateString,\r\n\t\t\t\t\t\t\t\tend: dateString,\r\n\t\t\t\t\t\t\t\ttitle: schedule.title,\r\n\t\t\t\t\t\t\t\tallDay: true,\r\n\t\t\t\t\t\t\t\thide: this.hidePastSchedules && dateString === todayDateString && this.hasPassed(date, schedule.startTime, schedule.timeZoneId),\r\n\t\t\t\t\t\t\t\tclass: schedule.bulkCreateForTeams && schedule.bulkCreateForTeams.length > 0 ? \"calendarview-bulk-schedule\" : \"\",\r\n\t\t\t\t\t\t\t\tschedule\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}).filter(sch => !sch.hide)\r\n\t\t\t\tcase ScheduleFreq.Monthly:\r\n\t\t\t\t\tlet dayOfMonth = schedule.dayOf!\r\n\t\t\t\t\tlet days = viewDays.filter(date => date.getDate() === dayOfMonth)\r\n\r\n\t\t\t\t\twhile (days.length === 0 && dayOfMonth > 27) {\r\n\t\t\t\t\t\tdayOfMonth--\r\n\t\t\t\t\t\tdays = viewDays.filter(date => date.getDate() === dayOfMonth)\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\treturn days\r\n\t\t\t\t\t\t.filter(date => this.isInScheduleMaxMinDates(schedule, date))\r\n\t\t\t\t\t\t.map(date => {\r\n\t\t\t\t\t\t\tconst dateString = date.getFullYear() + \"-\" + (date.getMonth() + 1) + \"-\" + date.getDate()\r\n\t\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\t\tstart: dateString,\r\n\t\t\t\t\t\t\t\tend: dateString,\r\n\t\t\t\t\t\t\t\ttitle: schedule.title,\r\n\t\t\t\t\t\t\t\tallDay: true,\r\n\t\t\t\t\t\t\t\thide: this.hidePastSchedules && dateString === todayDateString && this.hasPassed(date, schedule.startTime, schedule.timeZoneId),\r\n\t\t\t\t\t\t\t\tclass: schedule.bulkCreateForTeams && schedule.bulkCreateForTeams.length > 0 ? \"calendarview-bulk-schedule\" : \"\",\r\n\t\t\t\t\t\t\t\tschedule\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}).filter(sch => !sch.hide)\r\n\t\t\t\tcase ScheduleFreq.Once:\r\n\t\t\t\t\tif (schedule.date) {\r\n\t\t\t\t\t\tconst date = new Date(schedule.date)\r\n\t\t\t\t\t\tif (this.hidePastSchedules && date < new Date()) {\r\n\t\t\t\t\t\t\treturn []\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tif (date >= this.dateRange!.start && date <= this.dateRange!.end) {\r\n\t\t\t\t\t\t\tconst dateString = date.getFullYear() + \"-\" + (date.getMonth() + 1) + \"-\" + date.getDate()\r\n\t\t\t\t\t\t\tif (this.hidePastSchedules && dateString === todayDateString && this.hasPassed(date, schedule.startTime, schedule.timeZoneId)) {\r\n\t\t\t\t\t\t\t\treturn []\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\treturn [\r\n\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\tstart: dateString,\r\n\t\t\t\t\t\t\t\t\tend: dateString,\r\n\t\t\t\t\t\t\t\t\ttitle: schedule.title,\r\n\t\t\t\t\t\t\t\t\tallDay: true,\r\n\t\t\t\t\t\t\t\t\tclass: schedule.bulkCreateForTeams && schedule.bulkCreateForTeams.length > 0 ? \"calendarview-bulk-schedule\" : \"\",\r\n\t\t\t\t\t\t\t\t\tschedule\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t]\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\treturn []\r\n\t\t}).flat()\r\n\t}\r\n\r\n\tisInScheduleMaxMinDates (schedule: Schedule, calendarDate: Date): boolean {\r\n\t\tconst executionDate = new Date(Date.UTC(calendarDate.getFullYear(),\r\n\t\t\tcalendarDate.getMonth(),\r\n\t\t\tcalendarDate.getDate()))\r\n\r\n\t\tif (schedule.minRunDate) {\r\n\t\t\tconst minRunDate = new Date((typeof schedule.minRunDate === \"string\"\r\n\t\t\t\t? new Date(schedule.minRunDate)\r\n\t\t\t\t: schedule.minRunDate))\r\n\r\n\t\t\tif (executionDate < minRunDate) {\r\n\t\t\t\treturn false\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (schedule.maxRunDate) {\r\n\t\t\tconst maxRunDate = new Date((typeof schedule.maxRunDate === \"string\" ? new Date(schedule.maxRunDate) : schedule.maxRunDate))\r\n\r\n\t\t\tif (executionDate > maxRunDate) {\r\n\t\t\t\treturn false\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn true\r\n\t}\r\n\r\n\t@Emit(\"rangeChanged\")\r\n\tviewChanged ({ startDate, endDate }: { startDate: Date, endDate: Date }) {\r\n\t\tthis.dateRange = {\r\n\t\t\tstart: new Date(startDate.getTime() - startDate.getTimezoneOffset() * 60000), // strips offset as date with offset that comes back from vue-cal is wrong, e.g. BST midnight should be 01:00 + GMT 1:00 but comes back as 00:00 + GMT 1:00. Doing this fixes it back to 01:00 + GMT 1:00\r\n\t\t\tend: new Date(endDate.getTime() - endDate.getTimezoneOffset() * 60000)\r\n\t\t}\r\n\t\treturn this.dateRange\r\n\t}\r\n\r\n\teventClicked (event: any, clickEvent: MouseEvent) {\r\n\t\tif (event.schedule) {\r\n\t\t\tthis.$emit(\"scheduleClicked\", event.schedule, event.start)\r\n\t\t} else if (event.record) {\r\n\t\t\tthis.$emit(\"recordClicked\", event.record)\r\n\t\t} else if (event.records) {\r\n\t\t\tthis.overflowTitle = moment(event.start).format(\"L\")\r\n\t\t\tthis.overflowItems = event.records\r\n\t\t}\r\n\r\n\t\tif (clickEvent) clickEvent.stopPropagation()\r\n\t}\r\n\r\n\tcellClicked (date: Date) {\r\n\t\tthis.createNew({\r\n\t\t\tscheduleFreq: ScheduleFreq.Once,\r\n\t\t\tdate: date.toISOString()\r\n\t\t})\r\n\t}\r\n\r\n\thasPassed (date: Date, startTime: string, timeZone: string): boolean {\r\n\t\tif (!this.timeZones || !startTime) return false\r\n\t\tconst ianaTimeZone = this.timeZones.find(tz => tz.id === timeZone)\r\n\t\tif (!ianaTimeZone) return false\r\n\r\n\t\tconst scheduleDate = new Date((typeof date === \"string\" ? new Date(date) : date))\r\n\t\tconst [hour, minute] = startTime.split(\":\")\r\n\r\n\t\tif (hour === undefined || minute === undefined) {\r\n\t\t\treturn false\r\n\t\t}\r\n\r\n\t\tconst schedTime = DateTime.fromObject({\r\n\t\t\tyear: scheduleDate.getFullYear(),\r\n\t\t\tmonth: scheduleDate.getMonth() + 1,\r\n\t\t\tday: scheduleDate.getDate(),\r\n\t\t\thour: parseInt(hour),\r\n\t\t\tminute: parseInt(minute),\r\n\t\t\tzone: ianaTimeZone.iana\r\n\t\t})\r\n\t\tconst now = DateTime.now().setZone(ianaTimeZone.iana)\r\n\r\n\t\treturn schedTime < now\r\n\t}\r\n\r\n\tprivate addDays (date: Date, days: number) {\r\n\t\tvar result = new Date(date)\r\n\t\tresult.setTime(result.getTime() + days * 24 * 3600 * 1000)\r\n\t\treturn result\r\n\t}\n}\r\n\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--13-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CalendarView.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--13-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CalendarView.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./CalendarView.vue?vue&type=template&id=3f5315a4&\"\nimport script from \"./CalendarView.vue?vue&type=script&lang=ts&\"\nexport * from \"./CalendarView.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./CalendarView.vue?vue&type=style&index=0&id=3f5315a4&prod&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/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","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ChartResults.vue?vue&type=style&index=0&id=76d2111c&prod&lang=scss&scoped=true&\"","const darkMapStyle = [\r\n\t{\r\n\t\telementType: \"geometry\",\r\n\t\tstylers: [\r\n\t\t\t{\r\n\t\t\t\tcolor: \"#242f3e\"\r\n\t\t\t}\r\n\t\t]\r\n\t},\r\n\t{\r\n\t\telementType: \"labels.text.fill\",\r\n\t\tstylers: [\r\n\t\t\t{\r\n\t\t\t\tcolor: \"#746855\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tvisibility: \"on\"\r\n\t\t\t}\r\n\t\t]\r\n\t},\r\n\t{\r\n\t\telementType: \"labels.text.stroke\",\r\n\t\tstylers: [\r\n\t\t\t{\r\n\t\t\t\tcolor: \"#242f3e\"\r\n\t\t\t}\r\n\t\t]\r\n\t},\r\n\t{\r\n\t\tfeatureType: \"administrative.locality\",\r\n\t\telementType: \"labels.text.fill\",\r\n\t\tstylers: [\r\n\t\t\t{\r\n\t\t\t\tcolor: \"#d59563\"\r\n\t\t\t}\r\n\t\t]\r\n\t},\r\n\t{\r\n\t\tfeatureType: \"landscape.man_made\",\r\n\t\telementType: \"geometry\",\r\n\t\tstylers: [\r\n\t\t\t{\r\n\t\t\t\tcolor: \"#1c1c31\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tsaturation: -60\r\n\t\t\t}\r\n\t\t]\r\n\t},\r\n\t{\r\n\t\tfeatureType: \"poi\",\r\n\t\telementType: \"labels.text.fill\",\r\n\t\tstylers: [\r\n\t\t\t{\r\n\t\t\t\tcolor: \"#d59563\"\r\n\t\t\t}\r\n\t\t]\r\n\t},\r\n\t{\r\n\t\tfeatureType: \"poi.park\",\r\n\t\telementType: \"geometry\",\r\n\t\tstylers: [\r\n\t\t\t{\r\n\t\t\t\tcolor: \"#263c3f\"\r\n\t\t\t}\r\n\t\t]\r\n\t},\r\n\t{\r\n\t\tfeatureType: \"poi.park\",\r\n\t\telementType: \"labels.text.fill\",\r\n\t\tstylers: [\r\n\t\t\t{\r\n\t\t\t\tcolor: \"#6b9a76\"\r\n\t\t\t}\r\n\t\t]\r\n\t},\r\n\t{\r\n\t\tfeatureType: \"road\",\r\n\t\telementType: \"geometry\",\r\n\t\tstylers: [\r\n\t\t\t{\r\n\t\t\t\tcolor: \"#38414e\"\r\n\t\t\t}\r\n\t\t]\r\n\t},\r\n\t{\r\n\t\tfeatureType: \"road\",\r\n\t\telementType: \"geometry.stroke\",\r\n\t\tstylers: [\r\n\t\t\t{\r\n\t\t\t\tcolor: \"#212a37\"\r\n\t\t\t}\r\n\t\t]\r\n\t},\r\n\t{\r\n\t\tfeatureType: \"road\",\r\n\t\telementType: \"labels.text.fill\",\r\n\t\tstylers: [\r\n\t\t\t{\r\n\t\t\t\tcolor: \"#9ca5b3\"\r\n\t\t\t}\r\n\t\t]\r\n\t},\r\n\t{\r\n\t\tfeatureType: \"road.highway\",\r\n\t\telementType: \"geometry\",\r\n\t\tstylers: [\r\n\t\t\t{\r\n\t\t\t\tcolor: \"#746855\"\r\n\t\t\t}\r\n\t\t]\r\n\t},\r\n\t{\r\n\t\tfeatureType: \"road.highway\",\r\n\t\telementType: \"geometry.stroke\",\r\n\t\tstylers: [\r\n\t\t\t{\r\n\t\t\t\tcolor: \"#1f2835\"\r\n\t\t\t}\r\n\t\t]\r\n\t},\r\n\t{\r\n\t\tfeatureType: \"road.highway\",\r\n\t\telementType: \"labels.text.fill\",\r\n\t\tstylers: [\r\n\t\t\t{\r\n\t\t\t\tcolor: \"#f3d19c\"\r\n\t\t\t}\r\n\t\t]\r\n\t},\r\n\t{\r\n\t\tfeatureType: \"transit\",\r\n\t\telementType: \"geometry\",\r\n\t\tstylers: [\r\n\t\t\t{\r\n\t\t\t\tcolor: \"#2f3948\"\r\n\t\t\t}\r\n\t\t]\r\n\t},\r\n\t{\r\n\t\tfeatureType: \"transit.station\",\r\n\t\telementType: \"labels.text.fill\",\r\n\t\tstylers: [\r\n\t\t\t{\r\n\t\t\t\tcolor: \"#d59563\"\r\n\t\t\t}\r\n\t\t]\r\n\t},\r\n\t{\r\n\t\tfeatureType: \"water\",\r\n\t\telementType: \"geometry\",\r\n\t\tstylers: [\r\n\t\t\t{\r\n\t\t\t\tcolor: \"#17263c\"\r\n\t\t\t}\r\n\t\t]\r\n\t},\r\n\t{\r\n\t\tfeatureType: \"water\",\r\n\t\telementType: \"labels.text.fill\",\r\n\t\tstylers: [\r\n\t\t\t{\r\n\t\t\t\tcolor: \"#515c6d\"\r\n\t\t\t}\r\n\t\t]\r\n\t},\r\n\t{\r\n\t\tfeatureType: \"water\",\r\n\t\telementType: \"labels.text.stroke\",\r\n\t\tstylers: [\r\n\t\t\t{\r\n\t\t\t\tcolor: \"#17263c\"\r\n\t\t\t}\r\n\t\t]\r\n\t},\r\n\t{\r\n\t\tfeatureType: \"poi\",\r\n\t\tstylers: [{ visibility: \"on\" }]\r\n\t}\r\n]\r\n\r\nconst satelliteMapStyle = [\r\n\t{\r\n\t\tfeatureType: \"poi\",\r\n\t\telementType: \"labels\",\r\n\t\tstylers: [{ visibility: \"off\" }]\r\n\t}\r\n]\r\n\r\nconst getMapStyle = (darkMap: boolean, mapType: string, hideLabels: boolean) => {\r\n\tlet styles: any[] = []\r\n\r\n\tif (mapType === \"roadmap\" || mapType === \"terrain\") {\r\n\t\tstyles = darkMap ? darkMapStyle : []\r\n\t} else {\r\n\t\tstyles = satelliteMapStyle\r\n\t}\r\n\r\n\tif (!hideLabels) {\r\n\t\tconst labels = styles.filter(style => style.elementType === \"labels\")\r\n\t\tlabels.forEach(element => {\r\n\t\t\t(element.stylers[0] as any).visibility = \"on\"\r\n\t\t})\r\n\t}\r\n\r\n\treturn styles\r\n}\r\n\r\nexport { darkMapStyle, satelliteMapStyle, getMapStyle }\r\n","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserHeaderFields.vue?vue&type=style&index=0&id=5868d932&prod&lang=scss&scoped=true&\"","/**\r\n * Helper to pull value from stored session cookies\r\n * @param cookieIdentifier The identifier of the cookie.\r\n * @returns a string of the cookie value, or null if invalid identifier.\r\n */\r\nexport const getCookieValue = (cookieIdentifier: string): string | null => {\r\n\tif (!document.cookie) return null\r\n\r\n\tconst cookie = document.cookie.split(\";\").map(c => {\r\n\t\tconst split = c.split(\"=\")\r\n\t\treturn {\r\n\t\t\tkey: split[0].trim(),\r\n\t\t\tvalue: split[1]\r\n\t\t}\r\n\t}).find(c => c.key === cookieIdentifier)\r\n\treturn cookie ? decodeURIComponent(cookie.value) : null\r\n}\r\n","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserSearch.vue?vue&type=style&index=0&id=331f7458&prod&scoped=true&lang=scss&\"","import axios, { AxiosInstance } from \"axios\"\r\nimport api from \"@/services/api\"\r\nimport { IntegrationWithSettings, IntegrationSettings, IntegrationSummary, IntegrationService, IntegrationLog, IntegrationStatus, IntegrationOutOption } from \"@/types/integration\"\r\n\r\nclass IntegrationApi {\r\n\tprivate get axios (): AxiosInstance {\r\n\t\treturn api.getAxios()\r\n\t}\r\n\r\n\tpublic async integrationsGet (): Promise {\r\n\t\treturn (await this.axios.get(\"/integration\")).data\r\n\t}\r\n\r\n\tpublic async integrationsGetActive (): Promise {\r\n\t\treturn (await this.axios.get(\"/integration/active\")).data\r\n\t}\r\n\tpublic async integrationsSave (settings: IntegrationSettings): Promise {\r\n\t\treturn (await this.axios.put(\"/integration\", settings)).data\r\n\t}\r\n\r\n\tpublic async integrationServicesGet (integrationKey: string): Promise {\r\n\t\treturn (await this.axios.get(\"/service/\" + integrationKey)).data\r\n\t}\r\n\r\n\tpublic async logGet (integrationKey: string, until: Date | null = null): Promise {\r\n\t\treturn (await this.axios.get(\"/integration/logs\", {\r\n\t\t\tparams: {\r\n\t\t\t\tintegrationKey,\r\n\t\t\t\tuntil\r\n\t\t\t}\r\n\t\t})).data\r\n\t}\r\n\r\n\tpublic async statusGet (integrationKey: string): Promise {\r\n\t\treturn (await this.axios.get(\"/integration/status/\" + integrationKey)).data\r\n\t}\r\n\r\n\tpublic async forceRun (integrationKey: string): Promise {\r\n\t\tawait this.axios.post(\"/integration/forcerun/\" + integrationKey)\r\n\t}\r\n\r\n\tpublic async enabledOutputs (): Promise {\r\n\t\treturn (await this.axios.get(\"/integration/outputs\")).data\r\n\t}\r\n\r\n\tpublic async sendRecord (caseId: string, integrationKey: string, output: string): Promise {\r\n\t\tawait this.axios.post(`/integration/${integrationKey}/send/${output}/${caseId}`)\r\n\t}\r\n}\r\n\r\nconst integrationApi = new IntegrationApi()\r\nexport default integrationApi\n","import { DataType, FormattingRule } from \"@/types/insights\"\r\nimport { FirstDayOfWeekSetting } from \"./tenantSetting\"\r\nimport store from \"../store/index\"\r\n\r\nexport interface View {\r\n\tid?: string\r\n\ttenantId: string\r\n\ttitle: string\r\n\tfolder: string\r\n\tteams: any[]\r\n\tviewTeams: any[]\r\n\tclauses: Clause[]\r\n\tsortBy: string\r\n\tgroupBy?: string | null\r\n\tgroupByOption?: string | null\r\n\tsortByLabel?: string\r\n\tgroupByLabel?: string | null\r\n\tcolumns: string[]\r\n\tgroupByDataType: DataType | null\r\n\tformattingRules?: { [key: string]: FormattingRule[] }\r\n\ttimeZone?: string\r\n}\r\n\r\nexport interface Clause {\r\n\tkey?: string | null\r\n\tid?: string\r\n\tfield?: string\r\n\tlabel: string\r\n\toperator?: number | null\r\n\tdataSourceId?: string\r\n\r\n\tfieldData?: any\r\n\tfieldDataType: number\r\n\r\n\tdynamicField: boolean\r\n\tdynamicValue: boolean\r\n\tdynamicParameter?: string | null\r\n\r\n\tvalue?: string | null\r\n\tvalueLabel?: string\r\n\tdefinitionId?: string\r\n\tdefinitionField?: string\r\n\tdefinitionFieldLabel?: string\r\n\tdefinitionFieldDataType?: number\r\n\titemLabel?: string\r\n\r\n\torClause?: boolean\r\n\tsubClauses?: Clause[]\r\n\tisValid?: boolean\r\n\r\n\tvalueObject?: any\r\n\r\n\tsearchClauseParameters?: SearchClauseParameters\r\n\r\n\tuserField?: string | null\r\n\tuserFieldData?: any\r\n\tuserFieldDataType?: number | null\r\n}\r\n\r\nexport interface SearchClauseParameters {\r\n\tstartDayOfWeek: DayOfWeek,\r\n\tweekNumber?: number,\r\n\tstartDate?: Date,\r\n\tendDate?: Date,\r\n\ttimeSpentClause: TimeSpentClause\r\n\tstartMonthRange?: Date,\r\n endMonthRange?: Date\r\n}\r\n\r\nexport interface TimeSpentClause {\r\n\tsearchValue: string,\r\n\tsearchLabel: string,\r\n\thoursSpent: number,\r\n\ttrackingFieldId: string\r\n}\r\n\r\nexport enum DayOfWeek {\r\n\tSunday = 0,\r\n\tMonday = 1,\r\n\tTuesday = 2,\r\n\tWednesday = 3,\r\n\tThursday = 4,\r\n\tFriday = 5,\r\n\tSaturday = 6\r\n}\r\n\r\nconst defaultSearchClauseParameters = {\r\n\tstartDayOfWeek: DayOfWeek.Monday,\r\n\ttimeSpentClause: {\r\n\t\tsearchValue: \"\",\r\n\t\tsearchLabel: \"\",\r\n\t\thoursSpent: 0,\r\n\t\ttrackingFieldId: \"\"\r\n\t}\r\n}\r\n\r\nfunction getDefaultTimeSpentClause () {\r\n\treturn {\r\n\t\tsearchValue: \"\",\r\n\t\tsearchLabel: \"\",\r\n\t\thoursSpent: 0,\r\n\t\ttrackingFieldId: \"\"\r\n\t}\r\n}\r\n\r\nfunction getDefaultFirstDayOfWeek (): DayOfWeek {\r\n\tconst tenantSettings = store.getters.getTenantSettings as { [key: string]: any }\r\n\r\n\tif (tenantSettings && tenantSettings[\"defaultFirstDayOfWeek\"]) {\r\n\t\tconst firstDayOfWeekSettings = tenantSettings[\"defaultFirstDayOfWeek\"] as FirstDayOfWeekSetting\r\n\t\tif (!firstDayOfWeekSettings.enabled) {\r\n\t\t\treturn DayOfWeek.Monday\r\n\t\t} else {\r\n\t\t\treturn firstDayOfWeekSettings.dayOfWeekSelected\r\n\t\t}\r\n\t} else {\r\n\t\treturn DayOfWeek.Monday\r\n\t}\r\n}\r\n\r\nfunction getDefaultSearchClauseParameters () {\r\n\treturn {\r\n\t\tstartDayOfWeek: getDefaultFirstDayOfWeek(),\r\n\t\ttimeSpentClause: getDefaultTimeSpentClause()\r\n\t}\r\n}\r\n\r\nexport { getDefaultTimeSpentClause, getDefaultSearchClauseParameters, defaultSearchClauseParameters }\r\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (!_vm.widgetOnly && !_vm.iconOnly && _vm.zendeskHelpWidgetAvailable)?_c('b-button',{staticClass:\"zenButton link\",attrs:{\"variant\":\"link\",\"title\":\"Help\",\"data-cy\":\"zendesk-help-button\"},on:{\"click\":function($event){return _vm.toggleHelp()}}},[_c('i',{staticClass:\"far fa-question-circle fa-1-half-x\"})]):(!_vm.widgetOnly && _vm.iconOnly && _vm.zendeskHelpWidgetAvailable)?_c('b-button',{staticClass:\"zenButtonMini link\",attrs:{\"variant\":\"link\",\"title\":\"Help\",\"data-cy\":\"zendesk-help-button\"},on:{\"click\":function($event){return _vm.toggleHelp()}}},[_c('i',{staticClass:\"far fa-question-circle fa-xs\",staticStyle:{\"float\":\"left\"}})]):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { Component, Prop, Vue, Watch } from \"vue-property-decorator\"\r\nimport { Getter, Action, namespace } from \"vuex-class\"\r\n\r\nconst featuresStore = namespace(\"features\")\r\n\r\n\t@Component({\r\n\t\tcomponents: {}\r\n\t})\r\nexport default class ZendeskHelp extends Vue {\r\n\t\t@Prop({ type: Boolean, default: false }) public iconOnly!: boolean\r\n\t\t@Prop({ type: Boolean, default: false }) public widgetOnly!: boolean\r\n\r\n\t\t@featuresStore.Getter(\"getOpsZendeskHelpWidgetEnabled\") private zendeskWidgetEnabled!: boolean\r\n\t\t@featuresStore.Action(\"getOpsZendeskHelpWidgetEnabledSetting\") private getZendeskWidgetEnabled!: () => Promise\r\n\r\n\t\tprivate renderZendeskWidgetInterval: NodeJS.Timeout | null = null;\r\n\t\tprivate autoHideClosedWidgetInterval: NodeJS.Timeout | null = null;\r\n\r\n\t\tprivate zendeskWidgetInjected: boolean = false\r\n\r\n\t\tprivate async mounted (): Promise {\r\n\t\t\tthis.getZendeskWidgetEnabled()\r\n\t\t\tif (this.zendeskWidgetEnabled && !this.zendeskWidgetInjected) {\r\n\t\t\t\tthis.injectZendeskScript(this.zendeskWidgetEnabled)\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tprivate beforeDestroy (): void {\r\n\t\t\tif (this.renderZendeskWidgetInterval) {\r\n\t\t\t\tclearInterval(this.renderZendeskWidgetInterval)\r\n\t\t\t}\r\n\t\t\tif (this.autoHideClosedWidgetInterval) {\r\n\t\t\t\tclearInterval(this.autoHideClosedWidgetInterval)\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tprivate toggleHelp (): void {\r\n\t\t\tif (document.querySelector(\"#webWidget\")) {\r\n\t\t\t\t// hide the widget\r\n\t\t\t\tthis.renderZendeskWidget()\r\n\t\t\t} else {\r\n\t\t\t\twindow.zE(\"webWidget\", \"helpCenter:setSuggestions\", {\r\n\t\t\t\t\turl: true\r\n\t\t\t\t})\r\n\t\t\t\twindow.zE(\"webWidget\", \"show\")\r\n\t\t\t\twindow.zE(\"webWidget\", \"open\")\r\n\t\t\t\tthis.startWidgetAutoHide()\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tprivate startWidgetAutoHide (): void {\r\n\t\t\tif (this.autoHideClosedWidgetInterval) {\r\n\t\t\t\tclearInterval(this.autoHideClosedWidgetInterval)\r\n\t\t\t}\r\n\t\t\tthis.autoHideClosedWidgetInterval = setInterval(() => {\r\n\t\t\t\tif (!document.getElementById(\"webWidget\")) {\r\n\t\t\t\t\ttry {\r\n\t\t\t\t\t\tthis.renderZendeskWidget()\r\n\t\t\t\t\t} catch {\r\n\t\t\t\t\t\t// Suppress exception\r\n\t\t\t\t\t} finally {\r\n\t\t\t\t\t\tif (this.autoHideClosedWidgetInterval) {\r\n\t\t\t\t\t\t\tclearInterval(this.autoHideClosedWidgetInterval)\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}, 500)\r\n\t\t}\r\n\r\n\t\t@Watch(\"zendeskWidgetEnabled\")\r\n\t\tprivate zendeskWidgetEnabledStateChanged (enabledState: boolean) {\r\n\t\t\tthis.injectZendeskScript(enabledState)\r\n\t\t}\r\n\r\n\t\tprivate injectZendeskScript (enabledState: boolean):void {\r\n\t\t\tif (enabledState) {\r\n\t\t\t\tlet zendeskSnippetWrapper = document.getElementById(\"ze-snippet-wrapper\")\r\n\t\t\t\tlet existingZendeskSnippetScript = document.getElementById(\"ze-snippet\")\r\n\r\n\t\t\t\tif (zendeskSnippetWrapper && !existingZendeskSnippetScript) {\r\n\t\t\t\t\tlet zendeskSnippetScript = document.createElement(\"script\")\r\n\t\t\t\t\tzendeskSnippetScript.setAttribute(\"id\", \"ze-snippet\")\r\n\t\t\t\t\tzendeskSnippetScript.setAttribute(\"src\", \"https://static.zdassets.com/ekr/snippet.js?key=f2079635-f990-4427-87b4-84c8ffd2e959\")\r\n\r\n\t\t\t\t\tzendeskSnippetWrapper.appendChild(zendeskSnippetScript)\r\n\t\t\t\t\tthis.zendeskWidgetInjected = true\r\n\t\t\t\t} else if (existingZendeskSnippetScript) {\r\n\t\t\t\t\tthis.zendeskWidgetInjected = true // contingency for if we want multiple buttons to display.\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tthis.renderZendeskWidgetTimed()\r\n\t\t}\r\n\r\n\t\tprivate get zendeskHelpWidgetAvailable () {\r\n\t\t\treturn this.zendeskWidgetEnabled && this.zendeskWidgetInjected\r\n\t\t}\r\n\r\n\t\tprivate renderZendeskWidget (): void {\r\n\t\t\tif (this.$route && this.$route.name === \"login\" && this.zendeskHelpWidgetAvailable) {\r\n\t\t\t\twindow.zE(\"webWidget\", \"show\")\r\n\t\t\t} else {\r\n\t\t\t\t// hide the help button\r\n\t\t\t\twindow.zE(\"webWidget\", \"hide\")\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tprivate renderZendeskWidgetTimed (): void {\r\n\t\t\tif (typeof (window.zE) === \"function\") {\r\n\t\t\t\tthis.renderZendeskWidget()\r\n\t\t\t} else {\r\n\t\t\t\tif (this.renderZendeskWidgetInterval) {\r\n\t\t\t\t\tclearInterval(this.renderZendeskWidgetInterval)\r\n\t\t\t\t}\r\n\t\t\t\tthis.renderZendeskWidgetInterval = setInterval(() => {\r\n\t\t\t\t\tif (window && window.zE) {\r\n\t\t\t\t\t\ttry {\r\n\t\t\t\t\t\t\tthis.renderZendeskWidget()\r\n\t\t\t\t\t\t} catch {\r\n\t\t\t\t\t\t\t// Suppress exception\r\n\t\t\t\t\t\t} finally {\r\n\t\t\t\t\t\t\tif (this.renderZendeskWidgetInterval) {\r\n\t\t\t\t\t\t\t\tclearInterval(this.renderZendeskWidgetInterval)\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}, 50)\r\n\t\t\t}\r\n\t\t}\r\n}\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--13-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ZendeskHelp.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--13-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ZendeskHelp.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ZendeskHelp.vue?vue&type=template&id=59e119a8&scoped=true&\"\nimport script from \"./ZendeskHelp.vue?vue&type=script&lang=ts&\"\nexport * from \"./ZendeskHelp.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./ZendeskHelp.vue?vue&type=style&index=0&id=59e119a8&prod&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"59e119a8\",\n null\n \n)\n\nexport default component.exports","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SearchDropDown.vue?vue&type=style&index=0&id=1c4dbbec&prod&lang=scss&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CaseTable.vue?vue&type=style&index=0&id=6dd8cf22&prod&lang=scss&scoped=true&\"","import api from \"@/services/api\"\r\nimport { FormattingRuleSetting } from \"@/types/insights/formattingRuleSetting\"\r\n\r\nclass ApiFormattingRuleSettings {\r\n\tprivate get axios () {\r\n\t\treturn api.getAxios()\r\n\t}\r\n\r\n\tpublic async formattingRuleSettingsList (): Promise {\r\n\t\treturn (await this.axios.get(\"/formattingRules\")).data\r\n\t}\r\n\r\n\tpublic async formattingRuleSettingsSave (\r\n\t\tformattingRuleSettings: FormattingRuleSetting\r\n\t): Promise {\r\n\t\treturn (await this.axios.post(\"/formattingRules\", formattingRuleSettings))\r\n\t\t\t.data\r\n\t}\r\n\r\n\tpublic async formattingRuleSettingsDelete (\r\n\t\tformattingRuleSettings: FormattingRuleSetting\r\n\t): Promise {\r\n\t\tawait this.axios.delete(`/formattingRules/${formattingRuleSettings.id}`)\r\n\t}\r\n}\r\n\r\nconst apiFormattingRuleSettings = new ApiFormattingRuleSettings()\r\n\r\nexport default apiFormattingRuleSettings\r\n","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Page.vue?vue&type=style&index=0&id=cb6a1b08&prod&scoped=true&lang=scss&\"","export default class Guid {\r\n\tstatic newGuid () {\r\n\t\treturn \"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx\".replace(/[xy]/g, function (c) {\r\n\t\t\tvar r = Math.random() * 16 | 0\r\n\t\t\tvar v = c === \"x\" ? r : (r & 0x3 | 0x8)\r\n\t\t\treturn v.toString(16)\r\n\t\t})\r\n\t}\r\n}\r\n","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FormGroup.vue?vue&type=style&index=0&id=798d9443&prod&lang=scss&scoped=true&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TextAreaToggleExpand.vue?vue&type=style&index=0&id=dd611d2a&prod&lang=scss&scoped=true&\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Account.vue?vue&type=style&index=0&id=eea9d758&prod&lang=scss&scoped=true&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('div',{staticClass:\"d-print-none\",staticStyle:{\"position\":\"relative\"}},[(_vm.allowRichText)?_c('rich-text',{staticStyle:{\"overflow\":\"hidden\"},style:(_vm.richTextStyle),attrs:{\"placeholder\":_vm.placeholder,\"readonly\":_vm.readonly,\"caseId\":_vm.caseId,\"id\":_vm.id},on:{\"change\":function (t) { return _vm.$emit('change', t); },\"focus\":function (t) { return _vm.$emit('focus', t); },\"blur\":function (t) { return _vm.$emit('blur', t); }},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('i',{class:_vm.iconClass,attrs:{\"title\":_vm.isExpanded ? 'Contract' : 'Expand',\"data-cy\":\"fullscreen-icon\"},on:{\"click\":_vm.toggleExpanded}})]},proxy:true}],null,false,1236020271),model:{value:(_vm.text),callback:function ($$v) {_vm.text=$$v},expression:\"text\"}}):[_c('b-form-textarea',{ref:\"textArea\",attrs:{\"max-rows\":_vm.maxRows,\"rows\":_vm.minRows,\"placeholder\":_vm.placeholder,\"readonly\":_vm.readonly,\"no-resize\":\"\",\"data-cy\":\"toggle-expand-textarea\"},on:{\"change\":function (t) { return _vm.$emit('change', t); },\"focus\":function (t) { return _vm.$emit('focus', t); },\"blur\":function (t) { return _vm.$emit('blur', t); }},model:{value:(_vm.text),callback:function ($$v) {_vm.text=$$v},expression:\"text\"}}),_c('i',{staticClass:\"fullscreen-icon d-print-none\",class:_vm.iconClass,attrs:{\"data-cy\":\"fullscreen-icon\"},on:{\"click\":function($event){return _vm.toggleExpanded()}}})]],2),_c('div',{staticClass:\"print-only pre-wrap\"},[_vm._v(\" \"+_vm._s(_vm.text)+\" \")])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"d-flex flex-column quill-editor rich-text-editor\",style:({ minHeightStyleString: !!_vm.minHeight, 'max-height-300px': _vm.applyMaxHeight }),on:{\"focusout\":_vm.focusOut,\"click\":_vm.clickAndFocus}},[_c('transition',{attrs:{\"name\":\"fade\"}},[_c('div',{staticClass:\"button-bar position-relative\",attrs:{\"id\":_vm.ToolBarId,\"data-cy\":\"rich-text-editor-button-bar\"}},[_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.readonly),expression:\"!readonly\"}],staticClass:\"flex-grow-1 m-r-50\"},[_c('b-button-group',{staticClass:\"mr-1\",attrs:{\"size\":\"sm\"}},[_c('b-btn',{staticClass:\"ql-bold\",attrs:{\"title\":\"Bold\",\"data-cy\":\"rich-text-editor-button-ql-bold\"}},[_c('i',{staticClass:\"fa-solid fa-bold\"})]),_c('b-btn',{staticClass:\"ql-italic\",attrs:{\"title\":\"Italic\",\"data-cy\":\"rich-text-editor-button-ql-italic\"}},[_c('i',{staticClass:\"fa-solid fa-italic\"})]),_c('b-btn',{staticClass:\"ql-underline\",attrs:{\"title\":\"Underline\",\"data-cy\":\"rich-text-editor-button-ql-underline\"}},[_c('i',{staticClass:\"fa-solid fa-underline\"})]),_c('b-btn',{staticClass:\"ql-strike\",attrs:{\"title\":\"Strikethrough\",\"data-cy\":\"rich-text-editor-button-ql-strike\"}},[_c('i',{staticClass:\"fa-solid fa-strikethrough\"})])],1),_c('b-button-group',{staticClass:\"mr-1\",attrs:{\"size\":\"sm\"}},[_c('b-btn',{staticClass:\"ql-list\",attrs:{\"title\":\"List\",\"value\":\"bullet\",\"data-cy\":\"rich-text-editor-button-ql-list\"}},[_c('i',{staticClass:\"fa-solid fa-list\"})]),_c('b-btn',{staticClass:\"ql-list\",attrs:{\"title\":\"Ordered List\",\"value\":\"ordered\",\"data-cy\":\"rich-text-editor-button-ql-ordered-list\"}},[_c('i',{staticClass:\"fa-solid fa-list-ol\"})])],1),_c('b-button-group',{staticClass:\"mr-1\",attrs:{\"size\":\"sm\"}},[_c('b-btn',{staticClass:\"ql-indent\",attrs:{\"title\":\"Outdent\",\"value\":\"-1\",\"data-cy\":\"rich-text-editor-button-ql-outdent\"}},[_c('i',{staticClass:\"fa-solid fa-outdent\"})]),_c('b-btn',{staticClass:\"ql-indent\",attrs:{\"title\":\"Indent\",\"value\":\"+1\",\"data-cy\":\"rich-text-editor-button-ql-indent\"}},[_c('i',{staticClass:\"fa-solid fa-indent\"})])],1),_c('b-button-group',{staticClass:\"mr-1\",attrs:{\"size\":\"sm\"}},[_c('b-btn',{staticClass:\"ql-header\",attrs:{\"title\":\"h1\",\"value\":\"1\",\"data-cy\":\"rich-text-editor-button-ql-h1\"}},[_c('i',{staticClass:\"fas fa-h1\"})]),_c('b-btn',{staticClass:\"ql-header\",attrs:{\"title\":\"h2\",\"value\":\"2\",\"data-cy\":\"rich-text-editor-button-ql-h2\"}},[_c('i',{staticClass:\"fas fa-h2\"})]),_c('b-btn',{staticClass:\"ql-header\",attrs:{\"title\":\"h3\",\"value\":\"3\",\"data-cy\":\"rich-text-editor-button-ql-h3\"}},[_c('i',{staticClass:\"fas fa-h3\"})])],1),(_vm.isPrintTemplate)?_c('b-button-group',{staticClass:\"mr-1\",attrs:{\"size\":\"sm\"}},[_c('b-btn',{staticClass:\"ql-image\",attrs:{\"title\":\"Image\",\"data-cy\":\"rich-text-editor-button-image\"}},[_c('i',{staticClass:\"fas fa-image\"})]),(_vm.isPdfTemplateHeaderEnabled)?_c('b-btn',{staticClass:\"ql-include-header\",attrs:{\"title\":\"Header\",\"pressed\":_vm.isCaseHeaderEnabled,\"data-cy\":\"rich-text-editor-button-include-header\"},on:{\"click\":_vm.onIncludeHeaderClick}},[_c('i',{staticClass:\"fa-solid fa-file-dashed-line\"})]):_vm._e(),(_vm.isPdfTemplateHeaderEnabled)?_c('b-btn',{attrs:{\"title\":\"Include Page Numbers\",\"pressed\":_vm.hasPageNumbers,\"data-cy\":\"rich-text-editor-button-include-header\"},on:{\"click\":_vm.onUsePageNumbersClick}},[_c('i',{staticClass:\"fa-solid fa-input-numeric\"})]):_vm._e()],1):_vm._e(),(_vm.placeholders)?_c('search-dropdown',{attrs:{\"text\":\"Add placeholder\",\"options\":_vm.placeholders,\"size\":\"sm\"},on:{\"itemClick\":_vm.addPlaceholder}}):_vm._e()],1),_c('div',{staticClass:\"float-icon\"},[_vm._t(\"icon\")],2)])]),_c('scrollbar',{style:({ minHeightStyleString: !!_vm.minHeight })},[_c('div',{staticClass:\"editor-parent\"},[_c('div',{ref:\"editorContainer\",staticClass:\"editor-container\",attrs:{\"data-cy\":\"rich-text-editor-editor-container\"}})])])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { Component, Prop, Ref, Vue, Watch } from \"vue-property-decorator\"\r\nimport { Getter, namespace } from \"vuex-class\"\r\n\r\nimport _Quill from \"quill\"\r\n\r\nimport VuePerfectScrollbar from \"vue-perfect-scrollbar\"\r\nimport Guid from \"@/scripts/guid\"\r\n\r\nimport SearchDropDown from \"@/components/Controls/SearchDropDown.vue\"\r\nimport { TenantFeatures } from \"@/types/tenantFeatures\"\r\nimport { InProgressSaveDetails } from \"@/types/inProgressSaveDetails\"\r\n\r\nconst Quill = window.Quill || _Quill\r\n\r\nconst Link = Quill.import(\"formats/link\")\r\n\r\nconst caseStore = namespace(\"cases\")\r\n\r\n@Component({\r\n\tcomponents: {\r\n\t\t\"scrollbar\": VuePerfectScrollbar,\r\n\t\t\"search-dropdown\": SearchDropDown\r\n\t}\r\n})\r\nexport default class RichTextEditor extends Vue {\r\n\t@Ref()\r\n\teditorContainer!: HTMLElement\r\n\r\n\t@Getter isFeatureEnabled!: (featureKey: TenantFeatures) => boolean;\r\n\r\n\t/**\r\n\t * Value for v-model support\r\n\t */\r\n\t@Prop({ type: String, default: \"\" })\r\n\tpublic value!: string;\r\n\r\n\t@Prop({ type: Boolean, default: false })\r\n\tpublic readonly!: boolean;\r\n\r\n\t@Prop({ default: () => null })\r\n\tpublic placeholder!: string | null\r\n\r\n\t@Prop({ default: null })\r\n\tpublic minHeight!: string | null\r\n\r\n\t@Prop({ type: Boolean, default: false })\r\n\tpublic userHistoryOnly!: boolean\r\n\r\n\t@Prop({ type: Boolean, default: false })\r\n\tpublic applyMaxHeight!: boolean\r\n\r\n\t@Prop({ type: Array, default: () => null })\r\n\tpublic placeholders!: { id: string, label: string }[] | null\r\n\r\n\t@Prop({ type: Boolean, default: false })\r\n\tpublic isPrintTemplate!: boolean;\r\n\r\n\t@Prop({ type: String, default: \"\" })\r\n\tpublic id!: string\r\n\r\n\t@Prop({ type: String, required: false })\r\n\tpublic caseId!: string\r\n\r\n\tprivate editor: _Quill | null = null\r\n\tprivate focusWhenReady: boolean = false\r\n\r\n\tprivate controlId = Guid.newGuid()\r\n\tprivate currentTextValue: string = \"\"\r\n\r\n\t@Prop()\r\n\tprivate caseHeader!: string | null;\r\n\r\n\t@caseStore.Mutation\r\n\tclearInProgressSaveDetails!: () => void\r\n\r\n\t@caseStore.State\r\n\tinProgressSaveDetails!: InProgressSaveDetails\r\n\r\n\tprivate caseHeaderEnabled: boolean = this.caseHeader !== null && this.caseHeader !== \"\";\r\n\tprivate get isCaseHeaderEnabled (): boolean {\r\n\t\treturn this.caseHeaderEnabled\r\n\t}\r\n\r\n\tprivate set isCaseHeaderEnabled (enabled: boolean) {\r\n\t\tthis.caseHeaderEnabled = enabled\r\n\t}\r\n\r\n\t@Prop({ default: null })\r\n\tprivate formatFooter!: string | null;\r\n\tprivate hasPageNumbers: boolean = this.formatFooter !== null && this.formatFooter !== \"\";\r\n\r\n\tget ToolBarId (): string {\r\n\t\treturn `toolbar-${this.controlId}`\r\n\t}\r\n\r\n\t@Watch(\"value\")\r\n\tonValueChanged (value: string) {\r\n\t\tif (!this.editor) {\r\n\t\t\treturn\r\n\t\t}\r\n\r\n\t\tconst editorValue = this.getEditorValue()\r\n\r\n\t\tif (editorValue !== value && this.currentTextValue !== value) {\r\n\t\t\tthis.dangerouslyPasteHTMLWithoutFocus(value, \"api\")\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Pastes the specified html into the quill editor without focusing the editor.\r\n\t * This is required because of a bug in quill causing dangerouslyPasteHTML to steal focus away from whatever else is being currently focused\r\n\t * @see https://github.com/quilljs/quill/issues/2156\r\n\t * @param html The html to paste into the editor\r\n\t * @param source See Quills documentation for source https://quilljs.com/docs/api/#events & https://quilljs.com/docs/modules/clipboard/#dangerouslypastehtml\r\n\t * @private\r\n\t */\r\n\tprivate dangerouslyPasteHTMLWithoutFocus (html: string, source: \"api\" | \"user\" | \"silent\") {\r\n\t\tif (!this.editor) {\r\n\t\t\treturn\r\n\t\t}\r\n\r\n\t\t// First - check if what we are receiving is found in the content of what we have\r\n\t\tvar tidiedText = html\r\n\r\n\t\t// The text should always have a paragraph tag at the end and we don't want to include that in the comparison\r\n\t\tconst paragraphTag = \"

\"\r\n\t\tif (tidiedText.endsWith(paragraphTag)) {\r\n\t\t\tconst lengthOfTagToRemove = -4\r\n\t\t\ttidiedText = tidiedText.slice(0, lengthOfTagToRemove)\r\n\t\t}\r\n\r\n\t\t// If the text in the editor contains what we already have we should not set the contents\r\n\t\tif (this.getEditorValue().includes(tidiedText)) {\r\n\t\t\treturn\r\n\t\t}\r\n\r\n\t\t// Second - If the above is not true and this is an update triggered by a local save\r\n\t\t// We should not override what the user has as they may have removed content that was no longer necessary\r\n\t\t// Essentially this update is out of sync with what the user has in their editor which takes priority.\r\n\t\tif (this.inProgressSaveDetails &&\r\n\t\t\t\tthis.id &&\r\n\t\t\t\tthis.caseId &&\r\n\t\t\t\tthis.inProgressSaveDetails.caseId === this.caseId &&\r\n\t\t\t\tthis.inProgressSaveDetails.fieldId === this.id) {\r\n\t\t\t// We know this is an update triggered by a local save\r\n\t\t\tif (this.inProgressSaveDetails.text === html) {\r\n\t\t\t\tthis.clearInProgressSaveDetails()\r\n\t\t\t\treturn\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// Third - treat this as a valid update to the contents of the editor\r\n\t\tconst delta = this.editor!.clipboard.convert(html)\r\n\t\tconst range = this.editor!.getSelection()\r\n\r\n\t\t// Note: Due to behaviour in Quill using setContents can cause the cursor to move to the beginning of the text box.\r\n\t\t// To avoid this above we have captured the current index the user is at and if available will ensure the cursor is at that location\r\n\t\tvar cursorIndex = 0\r\n\t\tif (range) {\r\n\t\t\tif (range.length === 0) {\r\n\t\t\t\tcursorIndex = range.index\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tthis.editor!.setContents(delta, source)\r\n\r\n\t\t// If the new text is smaller than the previous text\r\n\t\t// we want the cursor at the end.\r\n\t\tif (this.editor!.getLength() < cursorIndex) {\r\n\t\t\tcursorIndex = this.editor!.getLength() - 1\r\n\t\t}\r\n\r\n\t\tif (cursorIndex > 0) {\r\n\t\t\t// Set the cursor location\r\n\t\t\tthis.editor!.setSelection({ index: cursorIndex, length: 1 }, source)\r\n\t\t}\r\n\t}\r\n\r\n\tasync mounted () {\r\n\t\tif (this.$refs.editorContainer) {\r\n\t\t\tconst optionalModules = {}\r\n\r\n\t\t\tthis.editor = new Quill(this.editorContainer, {\r\n\t\t\t\tplaceholder: this.placeholder || \"\",\r\n\t\t\t\treadOnly: this.readonly,\r\n\t\t\t\tmodules: {\r\n\t\t\t\t\ttoolbar: `#${this.ToolBarId}`,\r\n\t\t\t\t\tmagicUrl: true,\r\n\t\t\t\t\thistory: {\r\n\t\t\t\t\t\tuserOnly: this.userHistoryOnly\r\n\t\t\t\t\t},\r\n\t\t\t\t\t...optionalModules\r\n\t\t\t\t},\r\n\t\t\t\tformats: [\r\n\t\t\t\t\t\"bold\",\r\n\t\t\t\t\t\"italic\",\r\n\t\t\t\t\t\"link\",\r\n\t\t\t\t\t\"indent\",\r\n\t\t\t\t\t\"header\",\r\n\t\t\t\t\t\"list\",\r\n\t\t\t\t\t\"underline\",\r\n\t\t\t\t\t\"strike\",\r\n\t\t\t\t\t\"placeholder\",\r\n\t\t\t\t\t\"image\"\r\n\t\t\t\t]\r\n\t\t\t})\r\n\r\n\t\t\tthis.editor!.on(\"text-change\", () => {\r\n\t\t\t\tconst newValue = this.getEditorValue()\r\n\t\t\t\tif (newValue !== this.value) {\r\n\t\t\t\t\tthis.currentTextValue = newValue\r\n\t\t\t\t\tthis.$emit(\"input\", newValue)\r\n\t\t\t\t}\r\n\t\t\t})\r\n\r\n\t\t\tthis.editor!.on(\"selection-change\", (range, oldRange, source) => {\r\n\t\t\t\tif (range == null) return\r\n\t\t\t\tif (range.length === 0 && source === \"user\") {\r\n\t\t\t\t\t// Find link element using range\r\n\t\t\t\t\tconst [link, _offset] = (this.editor!.scroll as any).descendant(\r\n\t\t\t\t\t\tLink,\r\n\t\t\t\t\t\trange.index\r\n\t\t\t\t\t)\r\n\t\t\t\t\t// navigate to the URl in a new tab if the dom node is of type link\r\n\t\t\t\t\tif (link && link.domNode && link.domNode.href) {\r\n\t\t\t\t\t\twindow.open(link.domNode.href, \"_blank\", \"noopener,noreferrer\")\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t})\r\n\r\n\t\t\tif (this.value) {\r\n\t\t\t\tthis.dangerouslyPasteHTMLWithoutFocus(this.value, \"api\")\r\n\t\t\t} else {\r\n\t\t\t\tthis.dangerouslyPasteHTMLWithoutFocus(\"\", \"api\")\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tbeforeDestroy () {\r\n\t\tif (this.editor) {\r\n\t\t\tthis.editor = null\r\n\t\t}\r\n\t}\r\n\r\n\t@Watch(\"readonly\")\r\n\tonReadonlyChanged (readonly: boolean) {\r\n\t\tif (this.editor) {\r\n\t\t\tthis.editor.enable(!readonly)\r\n\t\t\tif (this.focusWhenReady && !readonly) {\r\n\t\t\t\tthis.focusWhenReady = false\r\n\t\t\t\tthis.editor.focus()\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tfocusOut (event: FocusEvent) {\r\n\t\t// Ensure that this event isn't triggered when changing between children, e.g. clicking a button while focused on text\r\n\t\tif (!event.relatedTarget || !this.$el.contains(event.relatedTarget as Element)) {\r\n\t\t\tthis.$emit(\"blur\")\r\n\t\t}\r\n\t}\r\n\r\n\tclickAndFocus () {\r\n\t\tif (this.readonly) {\r\n\t\t\tthis.focusWhenReady = true\r\n\t\t\tthis.$emit(\"focus\")\r\n\t\t}\r\n\t}\r\n\r\n\tprivate getEditorValue (): string {\r\n\t\treturn this.editorContainer.children.length === 0 ? \"\" : this.editorContainer.children[0].innerHTML\r\n\t}\r\n\r\n\tprivate get minHeightStyleString (): string {\r\n\t\treturn `min-height: ${this.minHeight};`\r\n\t}\r\n\r\n\t/**\r\n\t * Adds the selected placeholder at the cursor location\r\n\t * @param placeholder The placeholder to add, with the id being the field id or built in property name and the label being what is displayed to the users.\r\n\t * @private\r\n\t */\r\n\tprivate addPlaceholder (placeholder: { id: string, label: string }) {\r\n\t\tconst selection = this.editor!.getSelection(true)!\r\n\r\n\t\tconst insertIndex = selection ? selection.index : this.editor!.getLength()\r\n\t\tthis.editor!.insertEmbed(insertIndex,\r\n\t\t\t\"placeholder\",\r\n\t\t\tplaceholder,\r\n\t\t\t\"user\")\r\n\r\n\t\tsetTimeout(() => {\r\n this.editor!.setSelection(insertIndex + 1, 0, \"user\")\r\n this.editor!.focus()\r\n\t\t}, 1)\r\n\t}\r\n\r\n\tprivate onIncludeHeaderClick () : void {\r\n\t\tthis.isCaseHeaderEnabled = !this.isCaseHeaderEnabled\r\n\t\tthis.$emit(\"includeCaseHeaderChange\", this.isCaseHeaderEnabled)\r\n\t}\r\n\r\n\tprivate onUsePageNumbersClick (): void {\r\n\t\tthis.hasPageNumbers = !this.hasPageNumbers\r\n\t\tthis.$emit(\"setUsePageNumbers\", this.hasPageNumbers)\r\n\t}\r\n\r\n\tprivate get isPdfTemplateHeaderEnabled () {\r\n\t\treturn this.isFeatureEnabled(TenantFeatures.PdfTemplateHeaderAndFooter)\r\n\t}\r\n}\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RichTextEditor.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RichTextEditor.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./RichTextEditor.vue?vue&type=template&id=424bdd58&scoped=true&\"\nimport script from \"./RichTextEditor.vue?vue&type=script&lang=ts&\"\nexport * from \"./RichTextEditor.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./RichTextEditor.vue?vue&type=style&index=0&id=424bdd58&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"424bdd58\",\n null\n \n)\n\nexport default component.exports","\r\nimport { Component, Prop, Ref, Vue } from \"vue-property-decorator\"\r\nimport { BFormTextarea } from \"bootstrap-vue\"\r\n\r\nimport RichTextEditor from \"./RichTextEditor.vue\"\r\n\r\n@Component({\r\n\tcomponents: {\r\n\t\t\"rich-text\": RichTextEditor\r\n\t}\r\n})\r\nexport default class TextAreaToggleExpand extends Vue {\r\n\t/**\r\n\t * The maximum number of rows to show when not expanded\r\n\t */\r\n\t@Prop({ type: Number, default: 8 })\r\n\tpublic unexpandedMaxRows!: number;\r\n\r\n\t/**\r\n\t * The minimum number of rows to show\r\n\t * Anything <2 will be set to 2\r\n\t * @see https://bootstrap-vue.org/docs/components/form-textarea#displayed-rows\r\n\t */\r\n\t@Prop({ type: Number, default: 2 })\r\n\tpublic minRows!: number;\r\n\r\n\t/**\r\n\t * Value for v-model support\r\n\t */\r\n\t@Prop({ type: String, default: \"\" })\r\n\tpublic value!: string;\r\n\r\n\t@Prop({ type: Boolean, default: false })\r\n\tpublic readonly!: boolean;\r\n\r\n\t@Prop({ default: () => null })\r\n\tpublic placeholder!: string | null\r\n\r\n\t@Prop({ default: false })\r\n\tpublic allowRichText!: boolean\r\n\r\n\t@Prop({ type: String, default: \"\" })\r\n\tpublic id!: string\r\n\r\n\t@Prop({ type: String, default: \"\" })\r\n\tpublic caseId!: string\r\n\r\n\t@Ref()\r\n\ttextArea!: BFormTextarea\r\n\r\n\tprivate isExpanded = false;\r\n\tprivate readonly rowHeight = 19.5\r\n\r\n\tprivate set text (text: string) {\r\n\t\tthis.$emit(\"input\", text)\r\n\t}\r\n\r\n\tprivate get text () {\r\n\t\treturn this.value\r\n\t}\r\n\r\n\tprivate get maxRows () {\r\n\t\tif (this.isExpanded) {\r\n\t\t\tconst docHeight = Math.max(document.documentElement.clientHeight, window.innerHeight || 0)\r\n\t\t\treturn Math.floor(docHeight / this.rowHeight) - 8 // 8 rows accounts for top/bottom bars in case creation\r\n\t\t}\r\n\t\treturn this.unexpandedMaxRows\r\n\t}\r\n\r\n\tprivate get iconClass () {\r\n\t\tif (this.isExpanded) {\r\n\t\t\treturn \"fas fa-compress-alt\"\r\n\t\t}\r\n\t\treturn \"fas fa-expand-alt\"\r\n\t}\r\n\r\n\tprivate get richTextStyle (): any {\r\n\t\treturn this.isExpanded\r\n\t\t\t? {}\r\n\t\t\t: {\r\n\t\t\t\t\"max-height\": \"300px\"\r\n\t\t\t}\r\n\t}\r\n\r\n\tprivate toggleExpanded () {\r\n\t\tthis.isExpanded = !this.isExpanded\r\n\r\n\t\tthis.forceTextAreaHeight()\r\n\t}\r\n\r\n\t/**\r\n\t * Forces the bootstrap text-area to re-render\r\n\t * @private\r\n\t */\r\n\tprivate forceTextAreaHeight (): void {\r\n\t\t// From https://github.com/bootstrap-vue/bootstrap-vue/blob/dev/src/components/form-textarea/form-textarea.js\r\n\t\t// setHeight calculates the height of the text area on the next tick\r\n\t\tthis.textArea.setHeight()\r\n\t}\r\n}\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TextAreaToggleExpand.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TextAreaToggleExpand.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./TextAreaToggleExpand.vue?vue&type=template&id=dd611d2a&scoped=true&\"\nimport script from \"./TextAreaToggleExpand.vue?vue&type=script&lang=ts&\"\nexport * from \"./TextAreaToggleExpand.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./TextAreaToggleExpand.vue?vue&type=style&index=0&id=dd611d2a&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"dd611d2a\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"chart-options\"},[(_vm.chartType === 'ColumnChart' || _vm.chartType === 'BarChart')?_c('div',[_c('b-form-checkbox',{attrs:{\"data-cy\":\"column\",\"value\":\"column\"},model:{value:(_vm.value.graphOptions),callback:function ($$v) {_vm.$set(_vm.value, \"graphOptions\", $$v)},expression:\"value.graphOptions\"}},[_vm._v(\" Column \")]),_c('b-form-checkbox',{attrs:{\"data-cy\":\"stacked\",\"value\":\"stacked\"},model:{value:(_vm.value.graphOptions),callback:function ($$v) {_vm.$set(_vm.value, \"graphOptions\", $$v)},expression:\"value.graphOptions\"}},[_vm._v(\" Stacked \")]),_c('b-form-checkbox',{attrs:{\"data-cy\":\"percent\",\"value\":\"percent\"},model:{value:(_vm.value.graphOptions),callback:function ($$v) {_vm.$set(_vm.value, \"graphOptions\", $$v)},expression:\"value.graphOptions\"}},[_vm._v(\" Percent Stack \")])],1):(_vm.chartType === 'ComboChart')?_c('div',_vm._l((_vm.seriesTitles.length - 1),function(i,index){return _c('div',{key:i},[_c('b-form-checkbox',{key:i,attrs:{\"value\":index,\"options\":_vm.seriesTitles},model:{value:(_vm.value.graphOptions),callback:function ($$v) {_vm.$set(_vm.value, \"graphOptions\", $$v)},expression:\"value.graphOptions\"}},[_vm._v(\" \"+_vm._s(_vm.seriesTitles[i])+\" \")])],1)}),0):_vm._e(),(_vm.chartType === 'LineChart')?_c('div',[_c('b-form-checkbox',{model:{value:(_vm.value.graphOptions),callback:function ($$v) {_vm.$set(_vm.value, \"graphOptions\", $$v)},expression:\"value.graphOptions\"}},[_vm._v(\" Smooth \")])],1):(_vm.chartType === 'HeatMap' && _vm.markerColumns.length > 0)?_c('div',[_c('b-form-group',{attrs:{\"label\":\"Field\",\"label-for\":\"field-select\"}},[_c('v-select',{attrs:{\"options\":_vm.markerColumns,\"reduce\":function (column) { return column.key; },\"clearable\":false},model:{value:(_vm.value.markerColumn),callback:function ($$v) {_vm.$set(_vm.value, \"markerColumn\", $$v)},expression:\"value.markerColumn\"}})],1)],1):_vm._e(),(_vm.chartType === 'ColumnChart' || _vm.chartType === 'BarChart' || _vm.chartType === 'ComboChart'\n\t\t\t|| _vm.chartType === 'LineChart' || _vm.chartType === 'AreaChart')?_c('div',[_c('b-form-checkbox',{attrs:{\"data-cy\":\"labels\",\"value\":\"labels\"},model:{value:(_vm.value.graphOptions),callback:function ($$v) {_vm.$set(_vm.value, \"graphOptions\", $$v)},expression:\"value.graphOptions\"}},[_vm._v(\" Show value labels \")])],1):_vm._e()])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { Component, Vue, Watch, Prop } from \"vue-property-decorator\"\r\nimport { namespace, Getter, Mutation, Action } from \"vuex-class\"\r\n\r\nimport vSelect from \"vue-select\"\r\n\r\n@Component({\r\n\tcomponents: {\r\n\t\t\"v-select\": vSelect\r\n\t}\r\n})\r\nexport default class ChartOptions extends Vue {\r\n\t@Prop()\r\n\tvalue: any;\r\n\r\n\t@Prop({ default: \"ColumnChart\" })\r\n\tchartType: any;\r\n\r\n\t@Prop()\r\n\tcolumns!: any[]\r\n\r\n\t@Prop()\r\n\tchartData: any;\r\n\r\n\tget markerColumns () {\r\n\t\tif (!this.columns) return []\r\n\t\treturn this.columns.filter(c => c.dataType === \"map-marker\")\r\n\t}\r\n\r\n\tpublic mounted () {\r\n\t\tif (!this.value) {\r\n\t\t\tthis.value = {}\r\n\t\t\tthis.$emit(\"input\", { })\r\n\t\t}\r\n\t}\r\n\r\n\tget seriesTitles () {\r\n\t\tif (this.chartData) {\r\n\t\t\treturn this.chartData[0].filter((d: any) => d.role !== \"annotation\")\r\n\t\t} else {\r\n\t\t\t// Temp fix to allow series selection in dashboard tile for comboChart\r\n\t\t\treturn [\"header\", \"Series 0\", \"Series 1\", \"Series 2\", \"Series 3\", \"Series 4\", \"Series 5\", \"Series 6\", \"Series 7\", \"Series 8\", \"Series 9\"]\r\n\t\t}\r\n\t}\r\n}\r\n\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ChartOptions.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ChartOptions.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ChartOptions.vue?vue&type=template&id=4d619b2a&\"\nimport script from \"./ChartOptions.vue?vue&type=script&lang=ts&\"\nexport * from \"./ChartOptions.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/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","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserProfilePicture.vue?vue&type=style&index=0&id=5d5dc478&prod&lang=scss&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('b-modal',{attrs:{\"title\":\"My Status\",\"size\":\"sm\",\"content-class\":\"fill-modal\",\"ok-only\":\"\"},model:{value:(_vm.isOpen),callback:function ($$v) {_vm.isOpen=$$v},expression:\"isOpen\"}},[_c('scrollbar',{staticClass:\"flex-grow-1\"},[_c('b-radio-group',{attrs:{\"label\":\"Available Statuses\",\"stacked\":\"\"},on:{\"change\":_vm.statusChanged},model:{value:(_vm.selectedStatusId),callback:function ($$v) {_vm.selectedStatusId=$$v},expression:\"selectedStatusId\"}},[_vm._l((_vm.statuses),function(status){return [_c('b-radio',{key:status.id,staticClass:\"mb-1\",attrs:{\"size\":\"lg\",\"data-cy\":'status-radio-'+status.title.replace(' ', '-').toLowerCase(),\"value\":status.id}},[_vm._v(\" \"+_vm._s(status.title)+\" \")])]})],2),_c('b-button',{attrs:{\"data-cy\":\"clear-status\",\"disabled\":!_vm.clearStatusEnabled()},on:{\"click\":_vm.clearStatus}},[_vm._v(\"Clear Status\")])],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\nimport { Component, Vue } from \"vue-property-decorator\"\r\nimport { Getter, Action } from \"vuex-class\"\r\n\r\nimport api from \"@/services/api\"\r\n\r\nimport VuePerfectScrollbar from \"vue-perfect-scrollbar\"\r\nimport { BModal } from \"bootstrap-vue\"\r\nimport { UserSettings } from \"@/types/userSettings\"\r\nimport { User } from \"@/types\"\r\nimport apiUserStatus from \"@/services/api_UserStatus\"\r\nimport { UserStatus } from \"@/types/userStatus\"\r\n\r\n@Component({\r\n\tcomponents: {\r\n\t\t\"userSettingsModal\": BModal,\r\n\t\t\"scrollbar\": VuePerfectScrollbar\r\n\t}\r\n})\r\nexport default class SetStatusModal extends Vue {\r\n\t@Getter(\"getMe\") public me!: User;\r\n\r\n\t@Action setCurrentUserStatus!: (userStatus: UserStatus) => void\r\n\t@Action clearCurrentUserStatus!: () => void\r\n\r\n\tprivate isOpen: boolean = false;\r\n\r\n\tprivate selectedStatusId: string = \"\";\r\n\r\n\tprivate statuses: UserStatus[] = []\r\n\r\n\tprivate async statusChanged (newStatusId: string) {\r\n\t\tconst newStatus = this.statuses.find(c => c.id === newStatusId)!\r\n\t\tthis.setCurrentUserStatus(newStatus)\r\n\t\tthis.selectedStatusId = newStatusId\r\n\t}\r\n\r\n\tprivate clearStatusEnabled () : boolean {\r\n\t\treturn !!this.selectedStatusId\r\n\t}\r\n\r\n\tpublic async open () {\r\n\t\tthis.isOpen = true\r\n\t\tthis.statuses = await apiUserStatus.userStatusList()\r\n\t\tif (this.me.currentStatus) {\r\n\t\t\tthis.selectedStatusId = this.me.currentStatus.id!\r\n\t\t}\r\n\t}\r\n\r\n\tprivate clearStatus () {\r\n\t\tthis.clearCurrentUserStatus()\r\n\t\tthis.selectedStatusId = \"\"\r\n\t}\r\n}\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--13-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SetStatusModal.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--13-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SetStatusModal.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./SetStatusModal.vue?vue&type=template&id=83ac845a&scoped=true&\"\nimport script from \"./SetStatusModal.vue?vue&type=script&lang=ts&\"\nexport * from \"./SetStatusModal.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"83ac845a\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('b-modal',{attrs:{\"content-class\":\"fill-modal\",\"size\":\"fill\",\"title\":_vm.caseTitle,\"no-close-on-backdrop\":true},scopedSlots:_vm._u([{key:\"modal-footer\",fn:function(){return [(_vm.canCreateRecord && !_vm.alwaysPromoteToCase)?_c('a',{directives:[{name:\"b-tooltip\",rawName:\"v-b-tooltip\",value:((\"Clicking this button will create the above as a \" + _vm.getRecordName + \".\")),expression:\"`Clicking this button will create the above as a ${getRecordName}.`\"}],staticClass:\"btn btn-primary\",class:{'disabled': !_vm.valid || _vm.creating},on:{\"click\":function($event){return _vm.createNew(false)}}},[(!_vm.creating || _vm.creatingCase)?_c('span',[_vm._v(\"Create \"+_vm._s(_vm.getRecordName))]):_c('i',{staticClass:\"fas fa-spinner fa-spin\"})]):_vm._e(),(_vm.canCreateCase && (_vm.alwaysPromoteToCase || !_vm.canCreateRecord))?_c('a',{directives:[{name:\"b-tooltip\",rawName:\"v-b-tooltip\",value:((\"Clicking this button will create the above as a \" + _vm.getCaseName + \".\")),expression:\"`Clicking this button will create the above as a ${getCaseName}.`\"}],staticClass:\"btn btn-primary\",class:{'disabled': !_vm.valid || _vm.creating},attrs:{\"data-cy\":\"create-case-button\"},on:{\"click\":function($event){return _vm.createNew(true)}}},[(!_vm.creating || !_vm.creatingCase)?_c('span',[_vm._v(\"Create \"+_vm._s(_vm.getCaseName))]):_c('i',{staticClass:\"fas fa-spinner fa-spin\"})]):_vm._e(),_c('a',{staticClass:\"btn btn-secondary\",on:{\"click\":_vm.close}},[_vm._v(\"Cancel\")])]},proxy:true}]),model:{value:(_vm.open),callback:function ($$v) {_vm.open=$$v},expression:\"open\"}},[(_vm.currentCase)?_c('layout-host',{staticClass:\"flex-grow-1\",attrs:{\"currentCase\":_vm.currentCase,\"me\":_vm.me},on:{\"templateChanged\":_vm.onTemplateChange,\"permissionsChanged\":_vm.permissionsChanged,\"validChanged\":function (newValid) { return _vm.valid = newValid; }},scopedSlots:_vm._u([{key:\"default\",fn:function(ref){\nvar currentCase = ref.currentCase;\nvar titleTemplateEnabled = ref.titleTemplateEnabled;\nvar templateChanged = ref.templateChanged;\nvar hasMap = ref.hasMap;\nvar template = ref.template;\nreturn [(currentCase)?_c('desktop',{staticClass:\"h-100 w-100\",attrs:{\"currentCase\":currentCase,\"titleTemplateEnabled\":titleTemplateEnabled,\"canEditCurrentCase\":true,\"hasMap\":hasMap,\"template\":template,\"showTimeline\":false,\"showTitle\":false},on:{\"templateIdChanged\":templateChanged}}):_vm._e()]}}],null,false,2415139840)}):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { Component, Vue, Watch, Prop, Provide } from \"vue-property-decorator\"\r\nimport { namespace, Getter } from \"vuex-class\"\r\n\r\nimport FileService from \"@/services/file-service\"\r\nimport { MapProvider } from \"@/services/mapProvider\"\r\n\r\nimport { CaseError } from \"@/types/caseError\"\r\n\r\nimport LayoutHost from \"@/components/CaseDetails/Layout/LayoutHost.vue\"\r\nimport { CaseDetails, TemplateDetails, User } from \"@/types\"\r\n\r\nimport {\r\n\tapplyTemplate\r\n} from \"@/scripts/caseDetails\"\r\nconst caseStore = namespace(\"cases\")\r\n\r\n@Component({\r\n\tcomponents: {\r\n\t\t\"layout-host\": LayoutHost,\r\n\t\t\"desktop\": () => import(\"@/components/CaseDetails/Layout/Desktop.vue\")\r\n\t}\r\n})\r\nexport default class QuickCreate extends Vue {\r\n\t@Provide(\"mapProvider\") mapProvider: MapProvider = new MapProvider()\r\n\t@Provide(\"fileService\") fileService: FileService = new FileService(this.caseFilesChanged)\r\n\r\n\t@Prop({ default: null })\r\n\tvalue!: { templateId: string } | null\r\n\r\n\t@caseStore.Getter\r\n\tprivate getBlankCase!: () => CaseDetails\r\n\r\n\t@caseStore.Action public detailsLoad!: () => Promise;\r\n\r\n\t@Getter(\"getMe\") public me!: User\r\n\t@Getter(\"getCaseName\") getCaseName!: string;\r\n\t@Getter(\"getRecordName\") getRecordName!: string;\r\n\r\n\t@caseStore.Action public caseCreate!: (caseDetails: CaseDetails) => {\r\n\t\tcreated: CaseDetails,\r\n\t\terrors: CaseError[]\r\n\t};\r\n\r\n\tprivate currentCase: CaseDetails | null = null\r\n\tprivate currentTemplate: TemplateDetails | null = null\r\n\r\n\tprivate valid: boolean = false\r\n\tprivate creating: boolean = false\r\n\r\n\tprivate canCreateCase: boolean = false;\r\n\tprivate canCreateRecord: boolean = false;\r\n\r\n\tprivate createdCaseNumber: string | null = null\r\n\r\n\tget open (): boolean {\r\n\t\treturn !!this.value\r\n\t}\r\n\r\n\tset open (value: boolean) {\r\n\t\tif (!value) {\r\n\t\t\tthis.$emit(\"input\", null)\r\n\t\t}\r\n\t}\r\n\r\n\tget caseTitle () {\r\n\t\tif (!this.currentCase) return \"\"\r\n\t\treturn \"Create\"\r\n\t}\r\n\r\n\tprivate get alwaysPromoteToCase (): boolean {\r\n\t\treturn !!this.currentTemplate && !!this.currentTemplate.alwaysPromoted\r\n\t}\r\n\r\n\t@Watch(\"value\")\r\n\tvalueUpdated (newValue: { templateId: string } | null) {\r\n\t\tif (newValue) {\r\n\t\t\tthis.detailsLoad().then(() => {\r\n\t\t\t\tconst newCase = this.getBlankCase()\r\n\t\t\t\tif (newValue.templateId) {\r\n\t\t\t\t\tnewCase.templateId = newValue.templateId\r\n\t\t\t\t}\r\n\t\t\t\tthis.currentCase = newCase\r\n\t\t\t})\r\n\t\t} else {\r\n\t\t\tthis.currentCase = null\r\n\t\t}\r\n\t}\r\n\r\n\tprivate async onTemplateChange (template: TemplateDetails | null) {\r\n\t\tthis.currentTemplate = template\r\n\t\tif (this.currentCase && template) {\r\n\t\t\tapplyTemplate(this.currentCase!, template!)\r\n\t\t}\r\n\t}\r\n\r\n\tprivate async permissionsChanged ({ canCreateCase, canCreateRecord }: { canCreateCase: boolean, canCreateRecord: boolean }) {\r\n\t\tthis.canCreateCase = canCreateCase\r\n\t\tthis.canCreateRecord = canCreateRecord\r\n\t}\r\n\r\n\tprivate async createNew (isCase: boolean) {\r\n\t\tif (this.creating || !this.currentCase) return\r\n\r\n\t\tthis.creating = true\r\n\t\ttry {\r\n\t\t\tthis.currentCase.isCase = isCase\r\n\t\t\tconst { created, errors }: { created: CaseDetails, errors: CaseError[] } = await this.caseCreate(this.currentCase)\r\n\r\n\t\t\tif (errors) {\r\n\t\t\t\terrors.forEach(e => {\r\n\t\t\t\t\tthis.$bvToast.toast(`There was a problem adding the field ${e.field.title}: ${e.message}`, {\r\n\t\t\t\t\t\ttitle: `Error adding field ${e.field.title}`,\r\n\t\t\t\t\t\tvariant: \"danger\",\r\n\t\t\t\t\t\tsolid: true,\r\n\t\t\t\t\t\tautoHideDelay: 10000000\r\n\t\t\t\t\t})\r\n\t\t\t\t})\r\n\t\t\t}\r\n\r\n\t\t\tif (this.fileService.uploadFiles.length === 0) {\r\n\t\t\t\tthis.$bvToast.toast(`Created #${created.caseNumber}`, {\r\n\t\t\t\t\ttitle: \"Created\",\r\n\t\t\t\t\thref: `/#/cases/${encodeURIComponent(created.caseNumber as string)}`,\r\n\t\t\t\t\tvariant: \"success\",\r\n\t\t\t\t\tsolid: true,\r\n\t\t\t\t\tautoHideDelay: 5000\r\n\t\t\t\t})\r\n\r\n\t\t\t\tthis.creating = false\r\n\t\t\t\tthis.close()\r\n\t\t\t} else {\r\n\t\t\t\tthis.createdCaseNumber = created.caseNumber\r\n\t\t\t\tthis.fileService.uploadPendingFiles(created.id!)\r\n\t\t\t}\r\n\t\t} catch (error) {\r\n\t\t\tthis.creating = false\r\n\t\t}\r\n\t}\r\n\r\n\tprivate close () {\r\n\t\tthis.$emit(\"input\", null)\r\n\t}\r\n\r\n\tprivate caseFilesChanged () {\r\n\t\tif (this.creating) {\r\n\t\t\tthis.creating = false\r\n\r\n\t\t\tthis.$bvToast.toast(`Created #${this.createdCaseNumber}`, {\r\n\t\t\t\ttitle: \"Created\",\r\n\t\t\t\thref: `/#/cases/${encodeURIComponent(this.createdCaseNumber as string)}`,\r\n\t\t\t\tvariant: \"success\",\r\n\t\t\t\tsolid: true,\r\n\t\t\t\tautoHideDelay: 5000\r\n\t\t\t})\r\n\r\n\t\t\tthis.createdCaseNumber = null\r\n\t\t\tthis.close()\r\n\t\t}\r\n\t}\r\n}\r\n\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./QuickCreate.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./QuickCreate.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./QuickCreate.vue?vue&type=template&id=7eec9266&\"\nimport script from \"./QuickCreate.vue?vue&type=script&lang=ts&\"\nexport * from \"./QuickCreate.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('scrollbar',[(_vm.loaded && _vm.tenantInfoItems.length === 0)?_c('b-alert',{attrs:{\"variant\":\"secondary\"}},[_vm._v(\" No additional information has been configured. \")]):_vm._e(),_vm._l((_vm.tenantInfoItems),function(infoItem){return _c('div',{key:infoItem.id},[_c('b',[_vm._v(_vm._s(infoItem.title))]),_c('p',{staticClass:\"pre-wrap ql-editor\",domProps:{\"innerHTML\":_vm._s(_vm.$sanitize(infoItem.value))}})])})],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\nimport { Component, Vue, Watch, Prop } from \"vue-property-decorator\"\r\nimport { namespace, Getter, Action, Mutation, State } from \"vuex-class\"\r\n\r\nimport TenantInfo from \"@/types/tenantInfo\"\r\n\r\n// @ts-ignore\r\nimport VuePerfectScrollbar from \"vue-perfect-scrollbar\"\r\n\r\nimport tenantApi from \"@/services/api_Tenant\"\r\n\r\n@Component({\r\n\tcomponents: {\r\n\t\t\"scrollbar\": VuePerfectScrollbar\r\n\t}\r\n})\r\nexport default class TenantInfoDisplay extends Vue {\r\n\t/**\r\n\t * @summary Allows tenant info to be set from parent. If not set, will be fetched on mount.\r\n\t */\r\n\t@Prop({ default: () => null })\r\n\ttenantInfo!: TenantInfo[] | null\r\n\r\n\tloaded = false\r\n\ttenantInfoItems: TenantInfo[] = []\r\n\r\n\tasync mounted () {\r\n\t\tthis.tenantInfoItems = this.tenantInfo\r\n\t\t\t? this.tenantInfo\r\n\t\t\t: await tenantApi.tenantInfoGet()\r\n\t\tthis.loaded = true\r\n\t}\r\n}\r\n\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TenantInfoDisplay.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TenantInfoDisplay.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./TenantInfoDisplay.vue?vue&type=template&id=54d23083&\"\nimport script from \"./TenantInfoDisplay.vue?vue&type=script&lang=ts&\"\nexport * from \"./TenantInfoDisplay.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/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","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Dashboard.vue?vue&type=style&index=0&id=02a8447a&prod&lang=scss&scoped=true&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[(!_vm.value && _vm.fieldPermissions)?_c('div',[_c('div',[_vm._v(\" Using field defaults \"),(!_vm.disabled)?_c('a',{staticClass:\"link\",attrs:{\"tabindex\":\"0\"},on:{\"click\":_vm.overrideDefaults}},[_vm._v(\"Override\")]):_vm._e()]),_c('div',{staticClass:\"d-inline m-r-10\"},[_c('b',[_vm._v(\"View:\")]),_vm._v(\" \"+_vm._s(_vm.displayTeams(_vm.fieldPermissions.view))+\" \")]),_c('div',{staticClass:\"d-inline\"},[_c('b',[_vm._v(\"Edit: \")]),_vm._v(\" \"+_vm._s(_vm.displayTeams(_vm.fieldPermissions.edit))+\" \")])]):_c('div',[_c('div',{class:{'d-inline m-r-10' : !_vm.edit || _vm.disabled}},[_c('b',[_vm._v(\"View: \")]),(_vm.edit && !_vm.disabled)?_c('span',[(_vm.value)?_c('div',[(_vm.value)?_c('v-select',{attrs:{\"data-cy\":\"permissions-selector\",\"options\":_vm.teams,\"label\":\"title\",\"multiple\":\"\",\"placeholder\":\"Any\",\"append-to-body\":\"\"},on:{\"input\":_vm.viewSelectionChanged},model:{value:(_vm.value.view),callback:function ($$v) {_vm.$set(_vm.value, \"view\", $$v)},expression:\"value.view\"}}):_vm._e(),(_vm.fieldPermissions && _vm.fieldPermissions.view)?_c('small',[_vm._v(\"Default: \"+_vm._s(_vm.displayTeams(_vm.fieldPermissions.view)))]):_vm._e()],1):_vm._e()]):_c('span',[(_vm.value && _vm.value.view)?_c('span',[_vm._v(\" \"+_vm._s(_vm.displayTeams(_vm.value.view))+\" \")]):(_vm.fieldPermissions == null || (_vm.value && _vm.value.view != null && _vm.value.view != undefined && _vm.value.view.length == 0))?_c('span',[_vm._v(\" Any \")]):_vm._e()])]),_c('div',{class:{'d-inline' : !_vm.edit || _vm.disabled}},[_c('b',[_vm._v(\"Edit: \")]),(_vm.edit && !_vm.disabled)?_c('span',[(_vm.value)?_c('div',[(_vm.value)?_c('v-select',{attrs:{\"options\":_vm.teams,\"label\":\"title\",\"multiple\":\"\",\"placeholder\":\"Any\",\"append-to-body\":\"\"},on:{\"input\":_vm.editSelectionChanged},model:{value:(_vm.value.edit),callback:function ($$v) {_vm.$set(_vm.value, \"edit\", $$v)},expression:\"value.edit\"}}):_vm._e(),(_vm.fieldPermissions && _vm.fieldPermissions.edit)?_c('small',[_vm._v(\"Default: \"+_vm._s(_vm.displayTeams(_vm.fieldPermissions.edit)))]):_vm._e()],1):_vm._e()]):_c('span',[(_vm.value && _vm.value.edit)?_c('span',[_vm._v(\" \"+_vm._s(_vm.displayTeams(_vm.value.edit))+\" \")]):(_vm.fieldPermissions == null || (_vm.value && _vm.value.edit != null && _vm.value.edit != undefined && _vm.value.edit.length == 0))?_c('span',[_vm._v(\" Any \")]):_vm._e()])])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\nimport { Component, Vue, Watch, Prop } from \"vue-property-decorator\"\r\nimport { namespace, Getter, Action } from \"vuex-class\"\r\n\r\nimport vSelect from \"vue-select\"\r\nimport { Team } from \"@/types\"\r\n\r\nconst setup = namespace(\"setup\")\r\n\r\n@Component({\r\n\tcomponents: {\r\n\t\t\"v-select\": vSelect\r\n\t}\r\n})\r\nexport default class FieldPermissions extends Vue {\r\n\t@Prop()\r\n\tpublic value: any;\r\n\r\n\t@Prop()\r\n\tpublic fieldPermissions: any;\r\n\r\n\t@Prop()\r\n\tpublic edit!: boolean;\r\n\r\n\t@Prop()\r\n\tpublic disabled!: boolean;\r\n\r\n\t@setup.Getter(\"getTeams\")\r\n\tteams!: Team[];\r\n\r\n\trecordEdit: boolean = true;\r\n\r\n\t@Watch(\"value\")\r\n\tpublic valudChanged (newValue: any) {\r\n\t\tif (this.fieldPermissions) {\r\n\r\n\t\t} else {\r\n\t\t\tif (!newValue.view) {\r\n\t\t\t\tnewValue.view = []\r\n\t\t\t}\r\n\t\t\tif (!newValue.edit) {\r\n\t\t\t\tnewValue.edit = []\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tpublic viewSelectionChanged (newValue: any) {\r\n\t\tthis.$emit(\"input\", {\r\n\t\t\tview: newValue,\r\n\t\t\tedit: this.value.edit\r\n\t\t})\r\n\t}\r\n\tpublic editSelectionChanged (newValue: any) {\r\n\t\tthis.$emit(\"input\", {\r\n\t\t\tview: this.value.view,\r\n\t\t\tedit: newValue\r\n\t\t})\r\n\t}\r\n\r\n\tpublic displayTeams (teams: Team[]): string {\r\n\t\tif (teams.length === 0) {\r\n\t\t\treturn \"Any\"\r\n\t\t}\r\n\r\n\t\treturn teams.map(t => t.title).join(\", \")\r\n\t}\r\n\r\n\tprivate overrideDefaults () {\r\n\t\tthis.$emit(\"input\", {\r\n\t\t\tview: this.fieldPermissions.view,\r\n\t\t\tedit: this.fieldPermissions.edit\r\n\t\t})\r\n\t}\r\n}\r\n\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--13-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FieldPermissions.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--13-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FieldPermissions.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./FieldPermissions.vue?vue&type=template&id=35875f10&\"\nimport script from \"./FieldPermissions.vue?vue&type=script&lang=ts&\"\nexport * from \"./FieldPermissions.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/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","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NotificationsMenu.vue?vue&type=style&index=0&id=1b4d7dc8&prod&scoped=true&lang=scss&\"","import { CaseUser } from \"./caseUser\"\r\nimport { DataType } from \"./dataType\"\r\nimport { Operator } from \"./insights/operators\"\r\n\r\ninterface CaseColumn {\r\n\tkey: string;\r\n\tlabel: string;\r\n\tdescription?: string | null;\r\n\tdataType: string;\r\n\tcomparisonType?: DataType;\r\n\tfieldDataType?: DataType;\r\n\trounding?: string;\r\n\r\n\tfilterKey?: string;\r\n\tdisplayKey?: string;\r\n\tcolumnValues?: (api: any) => Promise;\r\n\r\n\tlistLabel?: string;\r\n\tlistItemType?: string;\r\n\r\n\tsortable?: boolean;\r\n\tvalue?: any;\r\n\tvalueObject? :any;\r\n\tvalueLabel?: string;\r\n\r\n\tdefinitionId?: \tstring | null;\r\n\tdefinitionFields?: CaseColumn[];\r\n\tdataSourceId?: \tstring | null;\r\n\tdynamicField: boolean;\r\n\r\n\tfieldExtensions?: any;\r\n\toperators?: Operator[];\r\n\r\n\tfieldId?: string | null;\r\n\r\n\tadminOnly?: boolean;\r\n\r\n\tgroup?: (record: any, groupByValue: any) => { key: string, label: string, value: any }[]\r\n}\r\n\r\nconst usersPlusDynamic = (api: any) => {\r\n\treturn new Promise(async (resolve) => {\r\n\t\tconst users = await api.usersGet()\r\n\t\tresolve([\r\n\t\t\t{\r\n\t\t\t\tid: \"[Me]\",\r\n\t\t\t\tname: \"Me\",\r\n\t\t\t\tdynamicValue: true\r\n\t\t\t},\r\n\t\t\t...users\r\n\t\t])\r\n\t})\r\n}\r\n\r\nconst caseColumns = [\r\n\t{\r\n\t\tkey: \"caseNumber\",\r\n\t\tlabel: \"Case #\",\r\n\t\tdataType: \"text\",\r\n\t\tfieldDataType: DataType.string,\r\n\t\toperators: [Operator.Equals, Operator.NotEqual]\r\n\t},\r\n\t{\r\n\t\tkey: \"title\",\r\n\t\tlabel: \"Title\",\r\n\t\tdataType: \"text\",\r\n\t\tfieldDataType: DataType.string,\r\n\t\tsortable: true,\r\n\t\toperators: [Operator.Contains]\r\n\t},\r\n\t{\r\n\t\tkey: \"summary\",\r\n\t\tlabel: \"Summary\",\r\n\t\tfieldDataType: DataType.string,\r\n\t\tdataType: \"text-area\"\r\n\t},\r\n\t{\r\n\t\tkey: \"templateId\",\r\n\t\tlabel: \"Template\",\r\n\t\tdataType: \"list\",\r\n\t\tfilterKey: \"templateId\",\r\n\t\tdisplayKey: \"templateTitle\",\r\n\t\tcolumnValues: (api: any) => api.categories(),\r\n\t\tlistLabel: \"title\",\r\n\t\tsortable: true,\r\n\t\toperators: [Operator.Equals, Operator.NotEqual],\r\n\t\tfieldDataType: DataType.array\r\n\t},\r\n\t{\r\n\t\tkey: \"areas\",\r\n\t\tlabel: \"Areas\",\r\n\t\tdataType: \"list-multiple\",\r\n\t\tfieldDataType: DataType.arrayMultiple,\r\n\t\tlistLabel: \"title\",\r\n\t\tcolumnValues: (api: any) => api.areaList(),\r\n\t\toperators: [Operator.Contains, Operator.IsSet, Operator.NotSet]\r\n\t},\r\n\t{\r\n\t\tkey: \"created\",\r\n\t\tlabel: \"Created\",\r\n\t\tdataType: \"date-time\",\r\n\t\tsortable: true,\r\n\t\tfieldDataType: DataType.dateTime,\r\n\t\toperators: [Operator.GreaterThan, Operator.LessThan, Operator.Equals, Operator.NotEqual, Operator.DateRange]\r\n\t},\r\n\t{\r\n\t\tkey: \"lastUpdated\",\r\n\t\tlabel: \"Last Updated\",\r\n\t\tdataType: \"date-time\",\r\n\t\tfieldDataType: DataType.dateTime,\r\n\t\toperators: [Operator.GreaterThan, Operator.LessThan, Operator.Equals, Operator.NotEqual, Operator.DateRange],\r\n\t\tsortable: true\r\n\t},\r\n\t{\r\n\t\tkey: \"isClosed\",\r\n\t\tlabel: \"Closed\",\r\n\t\tdataType: \"checkbox\",\r\n\t\tfieldDataType: DataType.boolean\r\n\t},\r\n\t{\r\n\t\tkey: \"closed\",\r\n\t\tlabel: \"Closed At\",\r\n\t\tdataType: \"date-time\",\r\n\t\tfieldDataType: DataType.dateTime,\r\n\t\tsortable: true\r\n\t},\r\n\t{\r\n\t\tkey: \"openForDays\",\r\n\t\tlabel: \"Days Open\",\r\n\t\tdataType: \"number\",\r\n\t\tfieldDataType: DataType.number,\r\n\t\tsortable: true,\r\n\t\trounding: \"floor\"\r\n\t},\r\n\t{\r\n\t\tkey: \"statusId\",\r\n\t\tlabel: \"Status\",\r\n\t\tdataType: \"list\",\r\n\t\tfilterKey: \"statusId\",\r\n\t\tdisplayKey: \"statusTitle\",\r\n\t\tlistLabel: \"title\",\r\n\t\tfieldDataType: DataType.array,\r\n\t\tcolumnValues: (api: any) => api.statuses(),\r\n\t\tsortable: true\r\n\t},\r\n\t{\r\n\t\tkey: \"severityId\",\r\n\t\tlabel: \"Severity\",\r\n\t\tdataType: \"list\",\r\n\t\tfilterKey: \"severityId\",\r\n\t\tdisplayKey: \"severityTitle\",\r\n\t\tlistLabel: \"title\",\r\n\t\tfieldDataType: DataType.array,\r\n\t\tcolumnValues: (api: any) => api.severities(),\r\n\t\tsortable: true\r\n\t},\r\n\t{\r\n\t\tkey: \"isCase\",\r\n\t\tlabel: \"Promoted to Case\",\r\n\t\tdataType: \"checkbox\",\r\n\t\tfieldDataType: DataType.boolean,\r\n\t\tsortable: true\r\n\t},\r\n\t{\r\n\t\tkey: \"assigneeId\",\r\n\t\tlabel: \"Assignee\",\r\n\t\tdataType: \"user\",\r\n\t\tcolumnValues: usersPlusDynamic,\r\n\t\tcomparisonType: DataType.array,\r\n\t\tfieldDataType: DataType.array,\r\n\t\tlistLabel: \"name\",\r\n\t\toperators: [Operator.Equals, Operator.NotEqual, Operator.IsSet, Operator.NotSet],\r\n\t\tgroup: (record: any, groupByValue: any, cache: { [key:string]: any }) => {\r\n\t\t\tif (!groupByValue) {\r\n\t\t\t\treturn [\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tkey: \"none\",\r\n\t\t\t\t\t\tlabel: \"None set\",\r\n\t\t\t\t\t\tvalue: null\r\n\t\t\t\t\t}\r\n\t\t\t\t]\r\n\t\t\t} else if (typeof groupByValue === \"string\") {\r\n\t\t\t\tconst userValue = cache[groupByValue]\r\n\t\t\t\t\t? cache[groupByValue]\r\n\t\t\t\t\t: cache[groupByValue] = record.users.find((u: CaseUser) => u.id === groupByValue)\r\n\t\t\t\treturn [{\r\n\t\t\t\t\tkey: groupByValue,\r\n\t\t\t\t\tlabel: userValue ? userValue.name : groupByValue,\r\n\t\t\t\t\tvalue: userValue\r\n\t\t\t\t}]\r\n\t\t\t}\r\n\r\n\t\t\treturn []\r\n\t\t}\r\n\t},\r\n\t{\r\n\t\tkey: \"users\",\r\n\t\tlabel: \"Collaborators\",\r\n\t\tdataType: \"list-multiple\",\r\n\t\tlistLabel: \"name\",\r\n\t\tlistItemType: \"user\",\r\n\t\tcolumnValues: usersPlusDynamic,\r\n\t\tfieldDataType: DataType.arrayMultiple,\r\n\t\tvalue: null,\r\n\t\tvalueObject: null,\r\n\t\toperators: [Operator.Contains]\r\n\t},\r\n\t{\r\n\t\tkey: \"pendingTeams\",\r\n\t\tlabel: \"Awaiting Team\",\r\n\t\tdataType: \"list-multiple\",\r\n\t\tfieldDataType: DataType.arrayMultiple,\r\n\t\tcolumnValues: (api: any) => api.teamsGet(),\r\n\t\tlistLabel: \"title\",\r\n\t\toperators: [Operator.Contains]\r\n\t},\r\n\t{\r\n\t\tkey: \"tags\",\r\n\t\tlabel: \"Tags\",\r\n\t\tdataType: \"list-multiple\",\r\n\t\tfieldDataType: DataType.arrayMultiple,\r\n\t\tcolumnValues: (api: any) => api.tagList(),\r\n\t\tlistLabel: \"title\",\r\n\t\toperators: [Operator.Contains]\r\n\t},\r\n\t{\r\n\t\tkey: \"hiddenFromInsights\",\r\n\t\tlabel: \"Hidden From Insights\",\r\n\t\tdataType: \"checkbox\",\r\n\t\tfieldDataType: DataType.boolean,\r\n\t\toperators: [Operator.IsSet, Operator.NotSet],\r\n\t\tadminOnly: true\r\n\t},\r\n\t{\r\n\t\tkey: \"deleted\",\r\n\t\tlabel: \"Deleted At\",\r\n\t\tdataType: \"date-time\",\r\n\t\tsortable: true,\r\n\t\tfieldDataType: DataType.dateTime,\r\n\t\toperators: [Operator.GreaterThan, Operator.LessThan, Operator.Equals, Operator.NotEqual, Operator.DateRange, Operator.IsSet, Operator.NotSet]\r\n\t}\r\n] as CaseColumn[]\r\n\r\nexport { CaseColumn, caseColumns, usersPlusDynamic }\r\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"list-group\"},[_vm._l((_vm.folders),function(itemList,folder,index){return _c('div',{key:folder,staticClass:\"folder\",attrs:{\"tabindex\":\"0\"}},[_c('div',{directives:[{name:\"b-toggle\",rawName:\"v-b-toggle\",value:('collapse-' + index),expression:\"'collapse-' + index\"}],staticClass:\"list-group-item list-group-item-action d-flex align-items-center view list-group-item-dark folder-item\"},[_vm._m(0,true),_c('div',{staticClass:\"folder-header\"},[_vm._t(\"folder-header\",[_vm._v(\" \"+_vm._s(folder)+\" \")],{\"folder\":folder})],2)]),_c('b-collapse',{attrs:{\"visible\":_vm.expandedByDefault,\"id\":'collapse-' + index}},_vm._l((itemList),function(view){return _c('case-filter-item',{key:view.id,staticClass:\"folder-view\",attrs:{\"tabindex\":\"0\",\"activeViewId\":_vm.activeViewId,\"viewId\":view.id,\"title\":_vm.getView(view.id).title,\"caseCount\":_vm.getView(view.id).caseCount},on:{\"viewSelected\":_vm.goToView}})}),1)],1)}),_vm._l((_vm.ungroupedViews),function(view){return _c('case-filter-item',{key:view.id,staticClass:\"ungrouped-view\",attrs:{\"tabindex\":\"0\",\"activeViewId\":_vm.activeViewId,\"viewId\":view.id,\"title\":view.title,\"caseCount\":view.caseCount},on:{\"viewSelected\":_vm.goToView}})})],2)}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"chevrons\"},[_c('i',{staticClass:\"when-opened fas fa-chevron-up\"}),_c('i',{staticClass:\"when-closed fas fa-chevron-down\"})])}]\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"list-group-item list-group-item-action d-flex align-items-center view\",class:{ 'active' : _vm.viewId && _vm.activeViewId === _vm.viewId },on:{\"click\":function($event){return _vm.viewSelected(_vm.viewId)}}},[_c('span',{staticClass:\"flex-grow-1 view-title\"},[_vm._v(_vm._s(_vm.title))]),(_vm.caseCount != null)?_c('b-badge',{attrs:{\"pill\":\"\",\"variant\":\"light\"}},[_vm._v(\" \"+_vm._s(_vm.caseCount)+\" \")]):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { Component, Vue, Prop } from \"vue-property-decorator\"\r\n\r\n@Component({})\r\nexport default class ViewFolderItem extends Vue {\r\n\t@Prop({ type: String, default: null })\r\n\tactiveViewId!: string | null;\r\n\r\n\t@Prop({ type: String, default: \"\" })\r\n\tviewId!: string;\r\n\r\n\t@Prop({ type: String, default: \"\" })\r\n\ttitle!: string;\r\n\r\n\t@Prop({ type: Number, default: null })\r\n\tcaseCount!: number | null;\r\n\r\n\tpublic viewSelected (viewId: string) {\r\n\t\tthis.$emit(\"viewSelected\", viewId)\r\n\t}\r\n}\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ViewFolderItem.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ViewFolderItem.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ViewFolderItem.vue?vue&type=template&id=726727d4&scoped=true&\"\nimport script from \"./ViewFolderItem.vue?vue&type=script&lang=ts&\"\nexport * from \"./ViewFolderItem.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"726727d4\",\n null\n \n)\n\nexport default component.exports","\r\nimport { Component, Vue, Prop } from \"vue-property-decorator\"\r\nimport { Getter } from \"vuex-class\"\r\n\r\nimport ViewFolderItem from \"./ViewFolderItem.vue\"\r\nimport { UserSettings } from \"@/types/userSettings\"\r\n\r\nimport { sortBy } from \"lodash\"\r\nimport { ViewSummary } from \"@/types/views/viewSummary\"\r\nimport { InsightSummary } from \"@/types/insights\"\r\n\r\n@Component({\r\n\tcomponents: {\r\n\t\t\"case-filter-item\": ViewFolderItem\r\n\t}\r\n})\r\nexport default class ViewFolders extends Vue {\r\n\t@Prop()\r\n\tviews!: (ViewSummary | InsightSummary)[] ;\r\n\r\n\t@Prop()\r\n\tactiveViewId!: string | null;\r\n\r\n\t@Getter(\"getUserSettings\")\r\n\tpublic userSettings!: UserSettings;\r\n\r\n\tpublic get folders () {\r\n\t\tconst folders: { [key: string]: (ViewSummary | InsightSummary)[]} = {}\r\n\r\n\t\t// Sort by folder then title, so folders are alphabetical and then titles are alphabetical too\r\n\t\tconst sorted = sortBy(this.views, [\"folder\", \"title\"])\r\n\t\tsorted.forEach(view => {\r\n\t\t\tif (view.folder && view.folder !== \"\") {\r\n\t\t\t\tif (folders[view.folder]) {\r\n\t\t\t\t\tfolders[view.folder].push(view)\r\n\t\t\t\t} else {\r\n\t\t\t\t\tfolders[view.folder] = [view]\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t})\r\n\r\n\t\treturn folders\r\n\t}\r\n\r\n\tpublic get groupedViews () {\r\n\t\treturn this.views.filter(v => v.folder && v.folder !== \"\")\r\n\t}\r\n\r\n\tpublic get ungroupedViews () {\r\n\t\treturn this.views.filter(v => !v.folder || v.folder === \"\")\r\n\t}\r\n\r\n\tpublic getView (viewId: string) {\r\n\t\treturn this.views.find(v => v.id === viewId)\r\n\t}\r\n\r\n\tpublic getCaseCount (view: ViewSummary | InsightSummary): number | null {\r\n\t\tif (view && \"caseCount\" in view) {\r\n\t\t\treturn view[\"caseCount\"]\r\n\t\t}\r\n\t\treturn null\r\n\t}\r\n\r\n\tpublic goToView (viewId: string) {\r\n\t\tthis.$emit(\"gotoPage\", viewId)\r\n\r\n\t\tthis.$emit(\"selectInsight\", this.getView(viewId))\r\n\t}\r\n\r\n\tpublic get expandedByDefault () {\r\n\t\tif (this.userSettings && this.userSettings.settings && this.userSettings.settings.viewFoldersExpanded !== null) {\r\n\t\t\treturn this.userSettings.settings.viewFoldersExpanded\r\n\t\t}\r\n\t\treturn true\r\n\t}\r\n}\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ViewFolders.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ViewFolders.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ViewFolders.vue?vue&type=template&id=f75f12a6&scoped=true&\"\nimport script from \"./ViewFolders.vue?vue&type=script&lang=ts&\"\nexport * from \"./ViewFolders.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./ViewFolders.vue?vue&type=style&index=0&id=f75f12a6&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"f75f12a6\",\n null\n \n)\n\nexport default component.exports","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Graph.vue?vue&type=style&index=0&id=23001f62&prod&scoped=true&lang=scss&\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DisplayMessage.vue?vue&type=style&index=0&id=bad9aa3a&prod&scoped=true&lang=scss&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Numerical.vue?vue&type=style&index=0&id=1a30e500&prod&scoped=true&lang=scss&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MFAEntry.vue?vue&type=style&index=0&id=167cc384&prod&scoped=true&lang=scss&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_vm._l((_vm.columnSections),function(section){return _c('div',{key:section,attrs:{\"data-cy\":\"section\"}},[(section)?_c('h5',[_vm._v(_vm._s(section))]):_vm._e(),_vm._l((_vm.modalColumnsBySection[section]),function(column,index){return _c('b-form-group',{directives:[{name:\"b-tooltip\",rawName:\"v-b-tooltip:body.top\",value:(column.tooltip),expression:\"column.tooltip\",arg:\"body\",modifiers:{\"top\":true}}],key:column.key,class:column.cssClass,attrs:{\"data-cy\":\"field\",\"label\":column.label ? column.label + ':' : null,\"label-for\":'input-field-'+ index,\"invalid-feedback\":column.label === null ? null : _vm.columnErrors[column.key],\"state\":column.label === null ? true : _vm.columnErrors[column.key] ? false : true,\"description\":column.description}},[(column.dynamicComponent)?_c(column.dynamicComponent,_vm._g(_vm._b({tag:\"component\",staticClass:\"m-b-0\",attrs:{\"item\":_vm.item,\"readonly\":!_vm.canEdit || _vm.isFieldReadOnly(_vm.item, column),\"value\":_vm.itemValue(_vm.item, column.key),\"data-cy\":'form-field-'+column.key},on:{\"input\":function($event){return _vm.setItemValue(_vm.item, column.key, $event, column.linkedColumn)}}},'component',column.componentProperties,false),column.eventHandlers)):_c('field',{attrs:{\"fieldKey\":column.key,\"field\":column,\"value\":_vm.itemValue(_vm.item, column.valueColumn ? column.valueColumn : column.key),\"item\":_vm.item,\"readonly\":!_vm.canEdit || _vm.isFieldReadOnly(_vm.item, column),\"state\":_vm.columnErrors[column.key] ? false : true},on:{\"input\":function($event){return _vm.setItemValue(_vm.item, column.valueColumn ? column.valueColumn : column.key, $event, column.linkedColumn);},\"inputValue\":function($event){_vm.setItemLabel(_vm.item, column.key, $event); _vm.setLabeledValueLabel(_vm.item, column, $event)},\"openNewItemModal\":_vm.openNewItemModal,\"add\":function($event){return _vm.addItem(_vm.item, column.key, $event)},\"remove\":function($event){return _vm.removeItem(_vm.item, column.key, $event)},\"update\":function($event){return _vm.updateItem(_vm.item, column.key, $event)}}})],1)})],2)}),_c('details-modal',{ref:\"viewItemDetails\",attrs:{\"generateItemLabels\":true}})],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { Component, Vue, Watch, Prop, Emit } from \"vue-property-decorator\"\r\nimport { namespace, Getter, Action, Mutation } from \"vuex-class\"\r\n\r\n// @ts-ignore\r\nimport VuePerfectScrollbar from \"vue-perfect-scrollbar\"\r\nimport { BModal } from \"bootstrap-vue\"\r\nimport moment from \"moment\"\r\nimport { get, set } from \"lodash\"\r\nimport { calculatedValueDisplay } from \"@/mixins/calculatedValueDisplay\"\r\n\r\nimport vSelect from \"vue-select\"\r\nimport FieldPermissions from \"./Permissions/FieldPermissions.vue\"\r\nimport DataSourceSelect from \"@/components/Fields/DataSourceSelect.vue\"\r\nimport DataSourceTemplate from \"@/components/Fields/DataSourceTemplate.vue\"\r\nimport Numeric from \"../Fields/Numeric.vue\"\r\nimport DateTime from \"../Fields/DateTime.vue\"\r\nimport MapLocation from \"../Fields/MapLocation.vue\"\r\nimport ExternalLink from \"../Fields/ExternalLink.vue\"\r\n\r\nimport FieldControl from \"../Fields/FieldControl.vue\"\r\n\r\nimport { CalculationType } from \"@/types\"\r\n\r\nimport { maxInputLength } from \"@/constants/input\"\r\n\r\nimport api from \"@/services/api\"\r\nimport ConfigurationColumn from \"@/types/configurationColumn\"\r\n\r\n@Component({\r\n\tname: \"DataForm\",\r\n\tcomponents: {\r\n\t\t\"v-select\": vSelect,\r\n\t\t\"numeric\": Numeric,\r\n\t\t\"field-permissions\": FieldPermissions,\r\n\t\t\"data-select\": DataSourceSelect,\r\n\t\t\"data-template\": DataSourceTemplate,\r\n\t\t\"date-time\": DateTime,\r\n\t\t\"map-location\": MapLocation,\r\n\t\t\"details-modal\": () => import(\"@/components/CaseDetails/DataDetailsModal.vue\"),\r\n\t\t\"external-link\": ExternalLink,\r\n\t\t\"field\": FieldControl\r\n\t}\r\n})\r\nexport default class DataForm extends Vue {\r\n\t$refs!: {\r\n\t\tviewItemDetails: any\r\n\t}\r\n\r\n\t@Prop()\r\n\tcolumns!: ConfigurationColumn[];\r\n\r\n\t@Prop()\r\n\tcanEdit!: boolean;\r\n\r\n\t@Prop({ type: Boolean, default: false })\r\n\tsetItemLabels!: boolean;\r\n\r\n\t@Prop()\r\n\tpublic deleteDetails!: (item: any) => any;\r\n\r\n\t@Prop()\r\n\titem: any;\r\n\r\n\tpublic get columnErrors () {\r\n\t\treturn this.columns.filter(c => c.errors)\r\n\t\t\t.reduce((group: any, column: any) => {\r\n\t\t\t\tconst error = column.errors(this.item)\r\n\t\t\t\tgroup[column.key] = error\r\n\r\n\t\t\t\tif (column.errorStatus && column.errorStatus[this.item] && !group[column.key]) {\r\n\t\t\t\t\tgroup[column.key] = \"Error\"\r\n\t\t\t\t}\r\n\t\t\t\tif (column.errorValue === this.item) {\r\n\t\t\t\t\tgroup[column.key] = \"Checking ... \"\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn group\r\n\t\t\t}, {})\r\n\t}\r\n\r\n\tpublic async mounted () {\r\n\t\tif (this.isValid) {\r\n\t\t\tthis.$emit(\"valid\")\r\n\t\t} else {\r\n\t\t\tthis.$emit(\"invalid\")\r\n\t\t}\r\n\t}\r\n\r\n\tpublic get isValid () {\r\n\t\treturn this.columns.every((c: any) => !this.columnErrors[c.key])\r\n\t}\r\n\r\n\tpublic get columnSections () {\r\n\t\tif (!this.columns) {\r\n\t\t\treturn []\r\n\t\t}\r\n\r\n\t\treturn this.columns.filter((column) => column.inModal === undefined || column.inModal(this.item))\r\n\t\t\t.map((c: any) => c.section ? c.section : \"\")\r\n\t\t\t.filter((c: any, index: number, array: any[]) => array.indexOf(c) === index)\r\n\t}\r\n\r\n\tpublic get modalColumnsBySection () {\r\n\t\tif (!this.item) {\r\n\t\t\treturn []\r\n\t\t}\r\n\r\n\t\treturn this.columns.filter((column) => column.inModal === undefined || column.inModal(this.item))\r\n\t\t\t.reduce((group: any, column: any) => {\r\n\t\t\t\tvar section = column.section ? column.section : \"\";\r\n\t\t\t\t(group[section] = group[section] || []).push(column)\r\n\t\t\t\treturn group\r\n\t\t\t}, {})\r\n\t}\r\n\r\n\tpublic itemValue (item: any, columnKey: string): any {\r\n\t\tif (!item) {\r\n\t\t\treturn null\r\n\t\t}\r\n\t\tvar value = get(item, columnKey)\r\n\r\n\t\t// If the items a calulated field\r\n\t\tif (item.dataType === \"calculated\" && value && typeof value === \"object\") {\r\n\t\t\t// Add the field's id to the value object\r\n\t\t\tvalue.id = item ? item.id : null\r\n\t\t}\r\n\r\n\t\treturn value\r\n\t}\r\n\r\n\tpublic setItemValue (item: any, columnKey: string, value: any, linkedColumn: any = null) {\r\n\t\tif (linkedColumn) {\r\n\t\t\tvar index = this.columns.findIndex(c => c.key === linkedColumn.columnKey)\r\n\t\t\tif (index > -1) {\r\n\t\t\t\tvar column = this.columns[index]\r\n\t\t\t\tcolumn.componentProperties[linkedColumn.prop] = value\r\n\t\t\t\tthis.columns[index] = column\r\n\t\t\t}\r\n\t\t}\r\n\t\tconst dotIndex = columnKey.indexOf(\".\")\r\n\t\tif (dotIndex > -1) {\r\n\t\t\tconst topLevel = columnKey.substring(0, dotIndex)\r\n\t\t\tconst rest = columnKey.substring(dotIndex + 1)\r\n\r\n\t\t\tif (item[topLevel] == null) {\r\n\t\t\t\tthis.$emit(\"change\")\r\n\t\t\t\tVue.set(item, topLevel, {})\r\n\t\t\t}\r\n\r\n\t\t\tthis.setItemValue(item[topLevel], rest, value)\r\n\t\t} else {\r\n\t\t\tthis.$emit(\"change\")\r\n\t\t\tVue.set(item, columnKey, value)\r\n\t\t}\r\n\t}\r\n\r\n\tpublic setItemLabel (item: any, columnKey: string, value: any) {\r\n\t\tif (!this.setItemLabels) return\r\n\r\n\t\tset(item, columnKey + \"-label\", value.label)\r\n\t}\r\n\r\n\tpublic setLabeledValueLabel (item: any, column: any, value: any) {\r\n\t\tif (!column.labelKeyPath) {\r\n\t\t\treturn\r\n\t\t}\r\n\t\tset(item, column.labelKeyPath, value.label)\r\n\t}\r\n\r\n\tprivate changeColumnCheck (columnKey: string) {\r\n\t\tthis.item[columnKey] = !this.item[columnKey]\r\n\t}\r\n\r\n\t@Watch(\"isValid\")\r\n\tpublic validChanged (valid: boolean) {\r\n\t\tif (valid) {\r\n\t\t\tthis.$emit(\"valid\")\r\n\t\t} else {\r\n\t\t\tthis.$emit(\"invalid\")\r\n\t\t}\r\n\t}\r\n\r\n\tprivate async addItem (item: any, columnKey: string, newValue: any): Promise {\r\n\t\tlet value = get(item, columnKey)\r\n\t\tif (!value) {\r\n\t\t\tvalue = []\r\n\r\n\t\t\t// Init value on item\r\n\t\t\tconst addTo = item\r\n\t\t\tconst currentPath = columnKey.split(\".\")\r\n\t\t\tcurrentPath.forEach((path, index) => {\r\n\t\t\t\tif (index === currentPath.length - 1) {\r\n\t\t\t\t\tVue.set(item, path, value)\r\n\t\t\t\t} else {\r\n\t\t\t\t\tlet pathItem = get(item, path)\r\n\t\t\t\t\tif (!pathItem) {\r\n\t\t\t\t\t\tpathItem = {}\r\n\t\t\t\t\t\tVue.set(item, path, pathItem)\r\n\t\t\t\t\t}\r\n\t\t\t\t\titem = pathItem\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t}\r\n\r\n\t\tvalue.push(newValue)\r\n\t}\r\n\r\n\tprivate async removeItem (item: any, columnKey: string, newValue: any): Promise {\r\n\t\tconst value = get(item, columnKey)\r\n\t\tif (value) {\r\n\t\t\tvalue.removeWhere((item: any) => item.id === newValue.id)\r\n\t\t}\r\n\t}\r\n\r\n\tprivate async updateItem (item: any, columnKey: string, newValue: any): Promise {\r\n\t\tconst value = get(item, columnKey)\r\n\t\tif (value) {\r\n\t\t\tconst updateItem = value.find((item: any) => item.id === newValue.id)\r\n\t\t\tif (updateItem) {\r\n\t\t\t\tupdateItem.label = newValue.label\r\n\t\t\t\tObject.keys(newValue.fields).forEach(fieldId => {\r\n\t\t\t\t\tupdateItem.fields[fieldId] = newValue.fields[fieldId]\r\n\t\t\t\t})\r\n\r\n\t\t\t\tthis.$emit(\"change\")\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tprivate openNewItemModal ({ source, definition, addNewItem, addItem, data, updateItem }:\r\n\t\t{ source: string, definition: string, addNewItem: boolean, addItem: () => void, data: any, updateItem: any }) {\r\n\t\tthis.$refs.viewItemDetails.open({ source, definition, addNewItem, addItem, data, updateItem })\r\n\t}\r\n\r\n\tprivate getSelectOptions (options: any, item:any) {\r\n\t\tif (typeof (options) === \"function\") {\r\n\t\t\treturn options(item)\r\n\t\t}\r\n\t\treturn options\r\n\t}\r\n\r\n\tprivate formatLength (input: string): string {\r\n\t\treturn String(input).substring(0, maxInputLength)\r\n\t}\r\n\r\n\tprivate isFieldReadOnly (item: any, column: ConfigurationColumn): boolean {\r\n\t\tif (!column) return false\r\n\r\n\t\tif (typeof (column.readonly) === \"boolean\") {\r\n\t\t\treturn column.readonly\r\n\t\t} else if (typeof (column.readonly) === \"function\") {\r\n\t\t\treturn column.readonly(item)\r\n\t\t}\r\n\t\treturn !!column.readonly\r\n\t}\r\n}\r\n\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DataForm.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DataForm.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./DataForm.vue?vue&type=template&id=29ed26dd&scoped=true&\"\nimport script from \"./DataForm.vue?vue&type=script&lang=ts&\"\nexport * from \"./DataForm.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./DataForm.vue?vue&type=style&index=0&id=29ed26dd&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"29ed26dd\",\n null\n \n)\n\nexport default component.exports","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./QuickCreateMenu.vue?vue&type=style&index=0&id=860b4afc&prod&lang=scss&scoped=true&\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SideBar.vue?vue&type=style&index=0&id=ab6ad71e&prod&scoped=true&lang=scss&\"","export enum TenantFeatures {\r\n\tForecasting = \"forecasting\",\r\n\tEnableV2 = \"enableV2\",\r\n\tFirstTimeLogin = \"firstTimeLogin\",\r\n\tTenantInfo = \"tenantInfo\",\r\n\tRichTextInput = \"richText\",\r\n\tSuite = \"Suite\",\r\n\tDisableRichTextInsightsCSVSanitization = \"DisableRichTextInsightsCSVSanitization\",\r\n\tDataSourceLimit500 = \"dataSourceItemLimit500\",\r\n\tPdfTemplates = \"pdfTemplates\",\r\n\tPdfTemplateHeaderAndFooter = \"pdfTemplateHeaderAndFooter\",\r\n\tRuleActionRemoveField = \"ruleActionRemoveField\",\r\n\tAllowLockedFieldsToBeEdited = \"allowLockedFieldsToBeEdited\",\r\n\tRedirectUserAfterInterceptedLogin = \"redirectUserAfterInterceptedLogin\",\r\n\tSendEmail = \"sendEmail\",\r\n\tSyncAreaParentChanges = \"syncAreaParentChanges\",\r\n\tPdfTemplatesAttachToEmail = \"pdfTemplatesAttachToEmail\",\r\n\tAreaScaling = \"areaScaling\"\r\n}\r\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('span',{staticClass:\"cardSpan\"},[_c('span',{staticClass:\"icon\"},[_c('svg',{staticClass:\"fa-spin\",attrs:{\"version\":\"1.1\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"xmlns:xlink\":\"http://www.w3.org/1999/xlink\",\"preserveAspectRatio\":\"xMidYMid meet\",\"viewBox\":\"0 0 1536 1536\",\"width\":_vm.width,\"height\":_vm.width}},[_c('defs',[_c('path',{attrs:{\"d\":\"M-0.7 0L1536 0L1536 1538.98L-0.7 1538.98L-0.7 0Z\",\"id\":\"container\"}}),_c('path',{attrs:{\"d\":\"M622.59 299.58L643.37 340.95L699.76 454.25L455.25 454.25L455.25 700.69L185 564.67L185 185.45L565.99 185.45L622.79 299.58L622.59 299.58Z\",\"id\":\"module-top-left\"}}),_c('path',{attrs:{\"d\":\"M904.79 1228.3L904.98 1228.3L884.21 1186.94L827.82 1073.63L1072.33 1073.63L1072.33 827.18L1342.58 963.21L1342.58 1342.42L961.59 1342.42L961.59 1342.42L904.79 1228.3Z\",\"id\":\"module-bottom-right\"}}),_c('path',{attrs:{\"d\":\"M827.82 453.8L884.2 340.5L904.98 299.13L904.79 299.13L961.59 185L1342.58 185L1342.58 564.21L1072.33 700.24L1072.33 453.8L1072.33 453.8L827.82 453.8Z\",\"id\":\"module-top-right\"}}),_c('path',{attrs:{\"d\":\"M623.48 1228.49L623.67 1228.49L566.88 1342.62L185.89 1342.62L185.89 963.41L456.14 827.38L456.14 1073.82L700.65 1073.82L644.26 1187.13L644.26 1187.13L623.48 1228.49Z\",\"id\":\"module-bottom-left\"}})]),_c('g',[_c('g',[_c('g',[_c('use',{attrs:{\"xlink:href\":\"#container\",\"opacity\":\"0\"}})]),_c('g',[_c('use',{attrs:{\"xlink:href\":\"#module-top-left\",\"opacity\":\"1\",\"fill\":\"#454544\",\"fill-opacity\":\"1\"}})]),_c('g',[_c('use',{attrs:{\"xlink:href\":\"#module-bottom-right\",\"opacity\":\"1\",\"fill\":\"#117C8F\",\"fill-opacity\":\"1\"}})]),_c('g',[_c('use',{attrs:{\"xlink:href\":\"#module-top-right\",\"opacity\":\"1\",\"fill\":\"#14a3bd\",\"fill-opacity\":\"1\"}})]),_c('g',[_c('use',{attrs:{\"xlink:href\":\"#module-bottom-left\",\"opacity\":\"1\",\"fill\":\"#454544\",\"fill-opacity\":\"1\"}})])])])])]),_c('span',{staticClass:\"text ml-2\"},[_vm._t(\"default\")],2)])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { Component, Vue, Prop, Watch } from \"vue-property-decorator\"\r\nimport { namespace, Getter, Mutation, Action } from \"vuex-class\"\r\n@Component({})\r\nexport default class SureViewIcon extends Vue {\r\n\t@Prop({ type: String, default: \"md\" })\r\n\tsize!: string;\r\n\r\n\tget width () : number {\r\n\t\tswitch (this.size) {\r\n\t\t\tcase \"lg\": return 80\r\n\t\t\tcase \"sm\": return 20\r\n\t\t}\r\n\t\treturn 40\r\n\t}\r\n}\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--13-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SureViewIcon.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--13-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SureViewIcon.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./SureViewIcon.vue?vue&type=template&id=53129c56&scoped=true&\"\nimport script from \"./SureViewIcon.vue?vue&type=script&lang=ts&\"\nexport * from \"./SureViewIcon.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./SureViewIcon.vue?vue&type=style&index=0&id=53129c56&prod&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"53129c56\",\n null\n \n)\n\nexport default component.exports","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CalendarView.vue?vue&type=style&index=0&id=3f5315a4&prod&lang=scss&\"","import {\r\n\tIEnhancedMapping,\r\n\tIMap,\r\n\tIMarker,\r\n\tMarkerType,\r\n\tILatLng,\r\n\tILatLngBounds,\r\n\textend,\r\n\tunion\r\n} from \"@sureview/v2-mapping\"\r\n\r\nimport \"@/scripts/array-operations\"\r\n\r\nexport enum MarkerDrawType {\r\n\tPoint,\r\n\tPath,\r\n\tRegion\r\n}\r\n\r\nexport const MarkerColors = [\r\n\t\"Blue\",\r\n\t\"Green\",\r\n\t\"Orange\",\r\n\t\"Purple\",\r\n\t\"Red\"\r\n]\r\n\r\nexport const markerColorData: { [key: string]: string } = {\r\n\tblue: \"#0b78ce\",\r\n\tgreen: \"#4CAF50\",\r\n\torange: \"#df520a\",\r\n\tpurple: \"#9C27B0\",\r\n\tred: \"#e51c23\"\r\n}\r\n\r\nexport interface DrawArguments {\r\n\tmarkerText: string;\r\n\tdrawType: MarkerDrawType;\r\n\tcolorName: string;\r\n\tcolor: string;\r\n\tset: (value: any) => void;\r\n\tcancel: () => void;\r\n}\r\n\r\ninterface FieldValues\r\n{\r\n\tremove: () => void;\r\n\tbounds: () => ILatLngBounds | null;\r\n}\r\n\r\ninterface FieldMapValue\r\n{\r\n\tdrawType: MarkerDrawType,\r\n\ttitle: string,\r\n\tcolor: string,\r\n\tvalue: any;\r\n\tmarkers: FieldValues | null\r\n}\r\n\r\nconst baseLocationImagesFolder: string = \"./images/map/\"\r\n\r\nexport class MapProvider {\r\n\tpublic mapping: IEnhancedMapping | null = null;\r\n\tpublic map: IMap | null = null;\r\n\tpublic mapElement: HTMLElement | null = null;\r\n\tpublic boundsSet: boolean = false;\r\n\tpublic mapStyle: any = {};\r\n\r\n\tprivate handlers: { [event: string]: ((arg: any) => void)[] } = {};\r\n\tprivate fieldValues: { [fieldId: string]: FieldMapValue } = {}\r\n\r\n\t/**\r\n\t * Configure mapping object for provider\r\n\t * @param mapping Enhanced Mapping provider\r\n\t * @param map Map object\r\n\t */\r\n\tpublic setMapping (mapping: IEnhancedMapping, map: IMap) {\r\n\t\tthis.mapping = mapping\r\n\t\tthis.map = map\r\n\r\n\t\tObject.keys(this.fieldValues).forEach(fieldId => {\r\n\t\t\tif (!this.fieldValues[fieldId].markers) {\r\n\t\t\t\tthis.fieldValues[fieldId].markers = this.setValueOnMap(\r\n\t\t\t\t\tthis.fieldValues[fieldId].drawType,\r\n\t\t\t\t\tthis.fieldValues[fieldId].color,\r\n\t\t\t\t\tthis.fieldValues[fieldId].title,\r\n\t\t\t\t\tthis.fieldValues[fieldId].value\r\n\t\t\t\t)\r\n\t\t\t}\r\n\t\t})\r\n\r\n\t\tthis.fitToBounds()\r\n\t}\r\n\r\n\t/**\r\n\t * Resets map to element.\r\n\t */\r\n\tpublic resetMap () {\r\n\t\tif (this.mapElement) {\r\n\t\t\tthis.map = this.mapping!.createMap(\r\n\t\t\t\tthis.mapElement,\r\n\t\t\t\tthis.map!.center,\r\n\t\t\t\t0,\r\n\t\t\t\tfalse,\r\n\t\t\t\t\"roadmap\",\r\n\t\t\t\tthis.mapStyle\r\n\t\t\t)\r\n\r\n\t\t\tthis.fitToBounds()\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Add event handler\r\n\t * @param event Event type\r\n\t * @param handler Event handler function\r\n\t */\r\n\tpublic on (event: string, handler: (arg: any) => void): void {\r\n\t\tif (!this.handlers[event]) {\r\n\t\t\tthis.handlers[event] = []\r\n\t\t}\r\n\r\n\t\tthis.handlers[event].push(handler)\r\n\t}\r\n\r\n\t/**\r\n\t * Remove event handler\r\n\t * @param event Event type\r\n\t * @param handler Event handler function\r\n\t */\r\n\tpublic off (event: string, handler: (arg: any) => void): void {\r\n\t\tif (this.handlers[event]) {\r\n\t\t\tthis.handlers[event].remove(handler)\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Remove all event handlers\r\n\t */\r\n\tpublic clear () {\r\n\t\tthis.handlers = {}\r\n\t}\r\n\r\n\t/**\r\n\t * Remove all markers from map\r\n\t */\r\n\tpublic clearMarkers () {\r\n\t\tObject.keys(this.fieldValues).forEach(fieldId => {\r\n\t\t\tif (this.fieldValues[fieldId].markers) {\r\n\t\t\t\tthis.fieldValues[fieldId].markers!.remove()\r\n\t\t\t}\r\n\t\t})\r\n\t\tthis.fieldValues = {}\r\n\t}\r\n\r\n\t/**\r\n\t * Scrolls map into view and raises startDraw event\r\n\t * @param args Map drawing arguments to raise\r\n\t */\r\n\tpublic startDraw (args: DrawArguments) {\r\n\t\targs.color = markerColorData[args.colorName.toLowerCase()]\r\n\r\n\t\tif (this.mapElement) {\r\n\t\t\tthis.mapElement.scrollIntoView()\r\n\t\t}\r\n\r\n\t\tthis.raiseEvent(\"startDraw\", args)\r\n\t}\r\n\r\n\t/**\r\n\t * Scrolls map into view and centers map on location\r\n\t * @param location Point or array of points to center on\r\n\t */\r\n\tpublic goto (location: ILatLng | ILatLng[]) {\r\n\t\tif (!this.map) return\r\n\r\n\t\tif (this.mapElement) {\r\n\t\t\tthis.mapElement.scrollIntoView()\r\n\t\t}\r\n\r\n\t\tif (Array.isArray(location)) {\r\n\t\t\tconst pointsBounds = this.pointsUnion(location)\r\n\t\t\tif (pointsBounds) {\r\n\t\t\t\tthis.map!.mapBounds = pointsBounds\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tthis.map!.center = location\r\n\t\t\tthis.map!.zoom = location.zoom ? location.zoom : 19\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Draw value on map\r\n\t * @param fieldId Field ID to draw\r\n\t * @param drawType Type of item to create\r\n\t * @param fieldTitle Title of field on map\r\n\t * @param color Color for map item\r\n\t * @param value Field value\r\n\t */\r\n\tpublic drawValue (fieldId: string, drawType: MarkerDrawType, fieldTitle: string, color: string, value: any) {\r\n\t\tif (this.mapping) {\r\n\t\t\tif (this.fieldValues[fieldId] && this.fieldValues[fieldId].markers) {\r\n\t\t\t\tthis.fieldValues[fieldId].markers!.remove()\r\n\t\t\t}\r\n\r\n\t\t\tthis.fieldValues[fieldId] = {\r\n\t\t\t\tdrawType,\r\n\t\t\t\ttitle: fieldTitle,\r\n\t\t\t\tcolor,\r\n\t\t\t\tvalue,\r\n\t\t\t\tmarkers: this.setValueOnMap(drawType, color, fieldTitle, value)\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tthis.fieldValues[fieldId] = {\r\n\t\t\t\tdrawType,\r\n\t\t\t\ttitle: fieldTitle,\r\n\t\t\t\tcolor,\r\n\t\t\t\tvalue,\r\n\t\t\t\tmarkers: null\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tprivate fitToBounds () {\r\n\t\tlet bounds = {} as ILatLngBounds\r\n\t\tlet boundsSet = false\r\n\r\n\t\tObject.keys(this.fieldValues).forEach(fieldId => {\r\n\t\t\tif (this.fieldValues[fieldId].markers) {\r\n\t\t\t\tconst fieldBounds = this.fieldValues[fieldId].markers!.bounds()\r\n\r\n\t\t\t\tif (fieldBounds) {\r\n\t\t\t\t\tbounds = union(bounds, fieldBounds)\r\n\t\t\t\t\tboundsSet = true\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t})\r\n\r\n\t\tif (boundsSet) {\r\n\t\t\tthis.map!.mapBounds = bounds\r\n\t\t\tthis.boundsSet = true\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Create mapping object for field value\r\n\t * @param drawType Type of field (Point / Path / Region)\r\n\t * @param color Selected color\r\n\t * @param fieldTitle Title of field\r\n\t * @param value Current value\r\n\t */\r\n\tprivate setValueOnMap (drawType: MarkerDrawType, color: string, fieldTitle: string, value: any): FieldValues | null {\r\n\t\tswitch (drawType) {\r\n\t\t\tcase MarkerDrawType.Point:\r\n\t\t\t\tconst markerType = new MarkerType({\r\n\t\t\t\t\timageUrl: baseLocationImagesFolder + color + \".svg\"\r\n\t\t\t\t}, null)\r\n\t\t\t\tconst markers: IMarker[] = value.map((v: any, index: number) =>\r\n\t\t\t\t\tthis.createMarker(markerType,\r\n\t\t\t\t\t\tfieldTitle + (value.length > 1 ? \" (\" + (index + 1).toString() + \")\" : \"\"), v))\r\n\r\n\t\t\t\treturn {\r\n\t\t\t\t\tmarkers: markers,\r\n\t\t\t\t\tremove: () => {\r\n\t\t\t\t\t\tmarkers.forEach(marker => {\r\n\t\t\t\t\t\t\tmarker.remove()\r\n\t\t\t\t\t\t})\r\n\t\t\t\t\t},\r\n\t\t\t\t\tbounds: () => {\r\n\t\t\t\t\t\tif (markers.length === 0) return null\r\n\r\n\t\t\t\t\t\tlet bounds = {} as ILatLngBounds\r\n\t\t\t\t\t\tmarkers.forEach(marker => {\r\n\t\t\t\t\t\t\tbounds = extend(bounds, marker.position)\r\n\t\t\t\t\t\t})\r\n\t\t\t\t\t\treturn bounds\r\n\t\t\t\t\t}\r\n\t\t\t\t} as FieldValues\r\n\t\t\tcase MarkerDrawType.Region:\r\n\t\t\t\tconst regionMarkerType = new MarkerType({\r\n\t\t\t\t\tline: {\r\n\t\t\t\t\t\tcolor: markerColorData[color.toLowerCase()],\r\n\t\t\t\t\t\topacity: 1,\r\n\t\t\t\t\t\tweight: 2\r\n\t\t\t\t\t},\r\n\t\t\t\t\tfill: {\r\n\t\t\t\t\t\tcolor: markerColorData[color.toLowerCase()],\r\n\t\t\t\t\t\topacity: 0.3\r\n\t\t\t\t\t}\r\n\t\t\t\t}, null)\r\n\t\t\t\tconst regions = value.map((region: any) => this.mapping!.createPolygon(this.map!,\r\n\t\t\t\t\tregion,\r\n\t\t\t\t\tregionMarkerType,\r\n\t\t\t\t\t() => this.goto(region)))\r\n\t\t\t\treturn {\r\n\t\t\t\t\tregions,\r\n\t\t\t\t\tremove: () => {\r\n\t\t\t\t\t\tregions.forEach((region: any) => {\r\n\t\t\t\t\t\t\tregion.remove()\r\n\t\t\t\t\t\t})\r\n\t\t\t\t\t},\r\n\t\t\t\t\tbounds: () => {\r\n\t\t\t\t\t\tif (value.length === 0) return null\r\n\t\t\t\t\t\tif (!value.some((regionPath: ILatLng[]) => regionPath.length > 0)) return null\r\n\r\n\t\t\t\t\t\tlet bounds = {} as ILatLngBounds\r\n\t\t\t\t\t\tvalue.forEach((regionPath: ILatLng[]) => {\r\n\t\t\t\t\t\t\tconst pointsUnion = this.pointsUnion(regionPath)\r\n\t\t\t\t\t\t\tif (pointsUnion) {\r\n\t\t\t\t\t\t\t\tbounds = union(bounds, pointsUnion!)\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t})\r\n\t\t\t\t\t\treturn bounds\r\n\t\t\t\t\t}\r\n\t\t\t\t} as FieldValues\r\n\t\t\tcase MarkerDrawType.Path:\r\n\t\t\t\tconst pathMarkerType = new MarkerType({\r\n\t\t\t\t\tline: {\r\n\t\t\t\t\t\tcolor: markerColorData[color.toLowerCase()],\r\n\t\t\t\t\t\topacity: 1,\r\n\t\t\t\t\t\tweight: 2\r\n\t\t\t\t\t}\r\n\t\t\t\t}, null)\r\n\r\n\t\t\t\tconst paths = value.map((path: any) => this.mapping!.createPolyline(this.map!,\r\n\t\t\t\t\tpath,\r\n\t\t\t\t\tpathMarkerType,\r\n\t\t\t\t\t() => this.goto(path)))\r\n\r\n\t\t\t\treturn {\r\n\t\t\t\t\tpaths,\r\n\t\t\t\t\tremove: () => {\r\n\t\t\t\t\t\tpaths.forEach((path: any) => {\r\n\t\t\t\t\t\t\tpath.remove()\r\n\t\t\t\t\t\t})\r\n\t\t\t\t\t},\r\n\t\t\t\t\tbounds: () => {\r\n\t\t\t\t\t\tif (value.length === 0) return null\r\n\t\t\t\t\t\tif (!value.some((pathPoints: ILatLng[]) => pathPoints.length > 0)) return null\r\n\r\n\t\t\t\t\t\tlet bounds = {} as ILatLngBounds\r\n\t\t\t\t\t\tvalue.forEach((pathPoints: ILatLng[]) => {\r\n\t\t\t\t\t\t\tconst pointsUnion = this.pointsUnion(pathPoints)\r\n\t\t\t\t\t\t\tif (pointsUnion) {\r\n\t\t\t\t\t\t\t\tbounds = union(bounds, pointsUnion!)\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t})\r\n\t\t\t\t\t\treturn bounds\r\n\t\t\t\t\t}\r\n\t\t\t\t} as FieldValues\r\n\t\t}\r\n\r\n\t\treturn null\r\n\t}\r\n\r\n\tprivate createMarker (markerType: MarkerType, title: string, location: ILatLng): IMarker {\r\n\t\tconst marker = this.mapping!.createMarker(this.map!,\r\n\t\t\tnull,\r\n\t\t\tnull,\r\n\t\t\tmarkerType,\r\n\t\t\tnull,\r\n\t\t\ttitle,\r\n\t\t\tlocation,\r\n\t\t\tnull,\r\n\t\t\tnull, null,\r\n\t\t\ttrue\r\n\t\t)\r\n\r\n\t\tmarker.click = () => this.goto(location)\r\n\r\n\t\treturn marker\r\n\t}\r\n\r\n\tprivate raiseEvent (event: string, args?: any) {\r\n\t\tif (this.handlers[event]) {\r\n\t\t\tthis.handlers[event].forEach(handler => {\r\n\t\t\t\thandler(args)\r\n\t\t\t})\r\n\t\t}\r\n\t}\r\n\r\n\tprivate pointsUnion (points: ILatLng[]): ILatLngBounds | null {\r\n\t\tlet bounds: ILatLngBounds | null = null\r\n\t\tpoints.forEach(vertexPosition => {\r\n\t\t\tbounds = extend(bounds || {} as ILatLngBounds, vertexPosition)\r\n\t\t})\r\n\t\treturn bounds\r\n\t}\r\n}\r\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.field)?_c('div',[(_vm.field.dataType === 'list-data')?_c('data-template',{attrs:{\"data-cy\":'form-field-'+_vm.fieldKey,\"value\":_vm.value,\"dataSourceId\":_vm.field.dataSourceId,\"readonly\":_vm.readonly},on:{\"openNewItemModal\":function($event){return _vm.$emit('openNewItemModal', $event)},\"add\":function($event){return _vm.$emit('add', $event)},\"remove\":function($event){return _vm.$emit('remove', $event)},\"update\":function($event){return _vm.$emit('update', $event)}}}):(_vm.field.dataSourceId)?_c('div',[_c('data-select',{attrs:{\"data-cy\":'form-field-'+_vm.fieldKey,\"field\":_vm.field,\"id\":'form-field-'+_vm.fieldKey,\"value\":_vm.value,\"readonly\":_vm.readonly,\"dataSourceId\":_vm.field.dataSourceId,\"multiple\":_vm.field.dataType === 'list-multiple'},on:{\"input\":function($event){return _vm.$emit('input', $event)},\"inputValue\":function($event){return _vm.$emit('inputValue', $event)}}})],1):((_vm.field.dataType === 'list' || _vm.field.dataType === 'list-multiple'))?_c('v-select',{class:{'vs__readonly': _vm.readonly},attrs:{\"data-cy\":'form-field-'+_vm.fieldKey,\"id\":'form-field-'+_vm.fieldKey,\"options\":_vm.selectOptions,\"placeholder\":_vm.field.placeholder,\"clearable\":!_vm.readonly,\"label\":\"title\",\"reduce\":function (option) { return option.id; },\"value\":_vm.value,\"noDrop\":_vm.readonly,\"disabled\":_vm.readonly,\"multiple\":_vm.field.dataType === 'list-multiple',\"components\":_vm.vSelectMultiHideClear(_vm.readonly),\"append-to-body\":\"\"},on:{\"input\":function($event){return _vm.$emit('input', $event)}},scopedSlots:_vm._u([{key:\"option\",fn:function(option){return [_vm._v(\" \"+_vm._s(option ? option.title : \"[Value not found]\")+\" \"),(option.description)?_c('div',[_c('small',[_vm._v(_vm._s(option.description))])]):_vm._e()]}}],null,false,2992558251)},[_c('template',{slot:\"no-options\"},[_vm._v(\"Type to search\")])],2):(_vm.field.dataType === 'checkbox' || _vm.field.dataType === 'file-only')?_c('b-form-checkbox',{attrs:{\"data-cy\":'form-field-'+_vm.fieldKey,\"checked\":_vm.value || _vm.field.dataType === 'file-only',\"disabled\":_vm.readonly || _vm.field.dataType === 'file-only'},on:{\"change\":function($event){return _vm.changeColumnCheck()}}}):(_vm.field.dataType === 'permissions')?_c('field-permissions',{attrs:{\"data-cy\":'form-field-'+_vm.fieldKey,\"value\":_vm.value,\"edit\":true,\"disabled\":_vm.readonly},on:{\"input\":function($event){return _vm.$emit('input', $event)}}}):(_vm.field.dataType === 'number')?_c('numeric',{attrs:{\"data-cy\":'form-field-'+_vm.fieldKey,\"value\":_vm.value,\"readonly\":_vm.readonly},on:{\"input\":function($event){return _vm.$emit('input', $event)}}}):(_vm.field.dataType === 'dollar')?_c('numeric',{attrs:{\"data-cy\":'form-field-'+_vm.fieldKey,\"precision\":2,\"displayDecimals\":2,\"prepend\":\"$\",\"value\":_vm.value,\"readonly\":_vm.readonly},on:{\"input\":function($event){return _vm.$emit('input', $event)}}}):(_vm.field.dataType === 'external-link')?_c('external-link',{attrs:{\"data-cy\":'form-field-'+_vm.fieldKey,\"value\":_vm.value,\"readonly\":_vm.readonly},on:{\"input\":function($event){return _vm.$emit('input', $event)}}}):(_vm.field.dataType === 'date' || _vm.field.dataType === 'date-time')?_c('date-time',{attrs:{\"data-cy\":'form-field-'+_vm.fieldKey,\"value\":_vm.value,\"includeTime\":_vm.field.dataType === 'date-time',\"readonly\":_vm.readonly},on:{\"input\":function($event){return _vm.$emit('input', $event)}}}):(_vm.field.dataType === 'time')?_c('b-form-input',{attrs:{\"data-cy\":'form-field-'+_vm.fieldKey,\"placeholder\":\"HH:mm\",\"type\":\"time\",\"pattern\":\"[0-9]{2}:[0-9]{2}\",\"value\":_vm.value,\"readonly\":_vm.readonly},on:{\"input\":function($event){return _vm.$emit('input', $event)}}}):(_vm.field.dataType === 'calculated')?_c('b-form-input',{attrs:{\"data-cy\":'form-field-'+_vm.fieldKey,\"id\":'input-'+ _vm.fieldKey,\"type\":\"text\",\"autocomplete\":\"off\",\"readonly\":true,\"value\":_vm.calculatedFieldDisplayValue}}):(_vm.field.dataType === 'map-marker' ||\n\t\t\t_vm.field.dataType === 'map-path' ||\n\t\t\t_vm.field.dataType === 'map-region')?_c('map-location',{attrs:{\"data-cy\":'form-field-'+_vm.fieldKey,\"value\":_vm.value,\"readonly\":_vm.readonly,\"fieldId\":_vm.fieldKey,\"title\":_vm.field.label,\"fieldType\":_vm.field.dataType,\"fieldExtensions\":_vm.field.extensions},on:{\"input\":function($event){return _vm.$emit('input', $event)}}}):(_vm.field.dataType === 'text-area')?_c('text-area-expand',{attrs:{\"data-cy\":'form-field-'+_vm.fieldKey,\"value\":_vm.value,\"id\":'input-'+_vm.field.id,\"min-rows\":1,\"readonly\":_vm.readonly,\"placeholder\":_vm.field.description,\"allowRichText\":_vm.field.extensions && _vm.field.extensions.allowRichText},on:{\"input\":function($event){return _vm.$emit('input', $event)}}}):(_vm.field.dataType === 'formattingRules')?_c('column-formatting',{attrs:{\"data-cy\":'form-field-'+_vm.fieldKey,\"column\":_vm.getCaseColumn,\"value\":_vm.value,\"id\":'input-'+_vm.field.id,\"disableGlobal\":true},on:{\"input\":function($event){return _vm.$emit('input', $event)}}}):(_vm.field.dataType === 'first-day-of-week-setting')?_c('day-of-week-setting',{attrs:{\"data-cy\":'form-field-'+_vm.fieldKey,\"id\":'form-field-'+_vm.fieldKey,\"firstDayOfWeekSetting\":_vm.value},on:{\"input\":function($event){return _vm.$emit('input', $event)}}}):(_vm.field.dataType === 'icon-upload')?_c('icon-upload',{attrs:{\"data-cy\":'icon-upload-'+_vm.fieldKey,\"customFieldValue\":_vm.value},on:{\"input\":function($event){return _vm.$emit('input', $event)}},model:{value:(_vm.field.value),callback:function ($$v) {_vm.$set(_vm.field, \"value\", $$v)},expression:\"field.value\"}}):_c('b-form-input',{attrs:{\"formatter\":_vm.formatLength,\"type\":\"text\",\"data-cy\":'form-field-'+_vm.fieldKey,\"autocomplete\":\"off\",\"readonly\":_vm.readonly,\"value\":_vm.value,\"state\":_vm.state},on:{\"input\":function($event){return _vm.$emit('input', $event)}}})],1):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"d-flex\"},[_c('b-form-checkbox',{attrs:{\"checked\":_vm.enabled},on:{\"change\":_vm.onEnableChange}}),_c('v-select',{class:{'vs--disabled': !_vm.enabled,\n\t\t\t\t\t'disabled': !_vm.enabled},attrs:{\"noDrop\":!_vm.enabled,\"options\":_vm.daysOfWeekNames,\"clearable\":false,\"value\":_vm.dayOfWeekSelected,\"append-to-body\":\"\"},on:{\"input\":_vm.onSelected}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { Action, Getter, namespace } from \"vuex-class\"\r\nimport { Component, Vue, Watch, Prop } from \"vue-property-decorator\"\r\n// @ts-ignore\r\nimport vSelect from \"vue-select\"\r\nimport { DayOfWeek } from \"@/types/view\"\r\nimport { FirstDayOfWeekSetting } from \"@/types/tenantSetting\"\r\n@Component({\r\n\tcomponents: {\r\n\t\t\"v-select\": vSelect\r\n\t}\r\n})\r\nexport default class DayOfWeekSetting extends Vue {\r\n\t@Prop()\r\n\tfirstDayOfWeekSetting!: FirstDayOfWeekSetting\r\n\r\n\tDayOfWeek = DayOfWeek\r\n\r\n\tenabled: boolean = false\r\n\tdayOfWeekSelected: string = \"Monday\"\r\n\r\n\tkey: string = \"\"\r\n\r\n\tmounted () {\r\n\t\tthis.enabled = this.firstDayOfWeekSetting.enabled\r\n\t\tthis.dayOfWeekSelected = this.DayOfWeek[this.firstDayOfWeekSetting.dayOfWeekSelected]\r\n\t}\r\n\r\n\tprivate get daysOfWeekNames (): string[] {\r\n\t\treturn Object.values(DayOfWeek).filter(value => typeof value === \"string\") as string[]\r\n\t}\r\n\r\n\tprivate onSelected (dayOfWeekSelected: string) {\r\n\t\tthis.dayOfWeekSelected = dayOfWeekSelected\r\n\r\n\t\tconst model: FirstDayOfWeekSetting = {\r\n\t\t\tenabled: this.enabled,\r\n\t\t\tdayOfWeekSelected: (this.DayOfWeek as any)[this.dayOfWeekSelected]\r\n\t\t}\r\n\t\tthis.$emit(\"input\", model)\r\n\t}\r\n\r\n\tprivate onEnableChange () {\r\n\t\tthis.enabled = !this.enabled\r\n\t\tthis.dayOfWeekSelected = \"Monday\"\r\n\r\n\t\tconst model: FirstDayOfWeekSetting = {\r\n\t\t\tenabled: this.enabled,\r\n\t\t\tdayOfWeekSelected: DayOfWeek.Monday\r\n\t\t}\r\n\t\tthis.$emit(\"input\", model)\r\n\t}\r\n}\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--13-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DayOfWeekSetting.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--13-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DayOfWeekSetting.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./DayOfWeekSetting.vue?vue&type=template&id=4852e3dc&scoped=true&\"\nimport script from \"./DayOfWeekSetting.vue?vue&type=script&lang=ts&\"\nexport * from \"./DayOfWeekSetting.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./DayOfWeekSetting.vue?vue&type=style&index=0&id=4852e3dc&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"4852e3dc\",\n null\n \n)\n\nexport default component.exports","\r\n\r\nimport { Component, Vue, Prop } from \"vue-property-decorator\"\r\n\r\nimport { calculatedValueDisplay } from \"@/mixins/calculatedValueDisplay\"\r\n\r\nimport vSelect from \"vue-select\"\r\nimport FieldPermissions from \"@/components/Config/Permissions/FieldPermissions.vue\"\r\nimport ColumnFormatting from \"@/components/Controls/ColumnFormatting.vue\"\r\nimport DataSourceSelect from \"./DataSourceSelect.vue\"\r\nimport DataSourceTemplate from \"./DataSourceTemplate.vue\"\r\nimport Numeric from \"./Numeric.vue\"\r\nimport DateTime from \"./DateTime.vue\"\r\nimport MapLocation from \"./MapLocation.vue\"\r\nimport ExternalLink from \"./ExternalLink.vue\"\r\nimport TextAreaToggleExpand from \"./TextAreaToggleExpand.vue\"\r\nimport { operatorsByFieldType } from \"@/types/insights/operators\"\r\nimport { CaseColumn } from \"@/types/caseColumns\"\r\nimport { dataTypeByFieldType } from \"@/types/dataType\"\r\nimport { maxInputLength } from \"@/constants/input\"\r\nimport DayOfWeekSetting from \"../Config/TenantSettings/DayOfWeekSetting.vue\"\r\nimport IconUpload from \"@/components/IconUpload.vue\"\r\n\r\n@Component({\r\n\tcomponents: {\r\n\t\t\"v-select\": vSelect,\r\n\t\t\"numeric\": Numeric,\r\n\t\t\"field-permissions\": FieldPermissions,\r\n\t\t\"data-select\": DataSourceSelect,\r\n\t\t\"data-template\": DataSourceTemplate,\r\n\t\t\"date-time\": DateTime,\r\n\t\t\"map-location\": MapLocation,\r\n\t\t\"external-link\": ExternalLink,\r\n\t\t\"text-area-expand\": TextAreaToggleExpand,\r\n\t\t\"column-formatting\": ColumnFormatting,\r\n\t\t\"day-of-week-setting\": DayOfWeekSetting,\r\n\t\t\"icon-upload\": IconUpload\r\n\t}\r\n})\r\nexport default class FieldControl extends Vue {\r\n\t@Prop()\r\n\tfieldKey: any\r\n\r\n\t@Prop()\r\n\titem: any\r\n\r\n\t@Prop()\r\n\tfield: any\r\n\r\n\t@Prop()\r\n\tvalue: any\r\n\r\n\t@Prop({ type: Boolean, default: true })\r\n\tstate!: boolean\r\n\r\n\t@Prop({ type: Boolean, default: false })\r\n\treadonly!: boolean\r\n\r\n\tprivate get selectOptions () {\r\n\t\tif (typeof (this.field.options) === \"function\") {\r\n\t\t\treturn this.field.options(this.item)\r\n\t\t}\r\n\t\treturn this.field.options\r\n\t}\r\n\r\n\tprivate changeColumnCheck () {\r\n\t\tthis.$emit(\"input\", !this.value)\r\n\t}\r\n\r\n\t/** Get the label for select options */\r\n\tprivate get selectLabel () {\r\n\t\tif (this.field.selectLabel) { // TODO: Add a check to see if the label matches what's on the select options.\r\n\t\t\treturn this.field.selectLabel as String\r\n\t\t} else return \"title\"\r\n\t}\r\n\r\n\tpublic get calculatedFieldDisplayValue () {\r\n\t\treturn calculatedValueDisplay.methods.displayCalculatedField(this.item, this.field.extensions, this.value)\r\n\t}\r\n\r\n\tprivate formatLength (input: string): string {\r\n\t\treturn String(input).substring(0, maxInputLength)\r\n\t}\r\n\r\n\tprivate get getCaseColumn () {\r\n\t\tif (this.item.dataType) {\r\n\t\t\tvar column : CaseColumn = {\r\n\t\t\t\tkey: \"DataType\",\r\n\t\t\t\tlabel: \"DataType\",\r\n\t\t\t\tdataType: this.item.dataType,\r\n\t\t\t\tfieldDataType: dataTypeByFieldType[this.item.dataType],\r\n\t\t\t\tdynamicField: false,\r\n\t\t\t\toperators: operatorsByFieldType[this.item.dataType] // lookup datatype, get operators.\r\n\t\t\t}\r\n\t\t\treturn column\r\n\t\t}\r\n\t}\r\n}\r\n\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FieldControl.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FieldControl.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./FieldControl.vue?vue&type=template&id=b3040704&\"\nimport script from \"./FieldControl.vue?vue&type=script&lang=ts&\"\nexport * from \"./FieldControl.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/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","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SlideMenu.vue?vue&type=style&index=0&id=2b7da87e&prod&scoped=true&lang=scss&\"","import { LabeledValue, LabeledValueWithFieldInfo } from \"./../types/user\"\r\nimport { formatDateMixin } from \"@/mixins/formatDateMixin\"\r\nimport { TemplateDetails } from \"@/types\"\r\nimport { LabelFormat } from \"@/types/insights\"\r\nimport moment from \"moment\"\r\n\r\nexport const formatFieldsMixin = {\r\n\tmethods: {\r\n\t\t/**\r\n\t\t * Formats the value of the field as a string depending on the data type\r\n\t\t * @param dataType Data type of the field\r\n\t\t * @param fieldValue The fields value\r\n\t\t * @param dataSourceItems Items from a datasource that is used by the field\r\n\t\t */\r\n\t\tformatFieldValue (dataType: string, fieldValue: any, dataSourceItems: any[] = []) {\r\n\t\t\t// Format custom field values based of dataType\r\n\t\t\tswitch (dataType) {\r\n\t\t\t\tcase \"date\":\r\n\t\t\t\t\treturn formatDateMixin.methods.displayDateOnlyFromISOString(fieldValue)\r\n\t\t\t\tcase \"date-time\":\r\n\t\t\t\t\treturn formatDateMixin.methods.displayDateFromISOString(fieldValue)\r\n\t\t\t\tcase \"dollar\":\r\n\t\t\t\t\treturn \"$\" + fieldValue\r\n\t\t\t\tcase \"checkbox\":\r\n\t\t\t\t\treturn fieldValue ? \"Yes\" : \"No\"\r\n\t\t\t\tcase \"list\":\r\n\t\t\t\t\tvar option = dataSourceItems ? dataSourceItems.find((s: any) => s.id === fieldValue) : null\r\n\t\t\t\t\treturn option ? option.label : \"\"\r\n\t\t\t\tcase \"list-multiple\":\r\n\t\t\t\t\tvar values: string[] = fieldValue.map((v: any) => v.label)\r\n\t\t\t\t\treturn values.toString()\r\n\t\t\t\tdefault:\r\n\t\t\t\t\treturn fieldValue\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\tformatLabel (format: LabelFormat, label: string): string {\r\n\t\t\tswitch (format) {\r\n\t\t\t\tcase LabelFormat.Date:\r\n\t\t\t\t\tif (!label || label === \"Not Set\") return \"Not set\"\r\n\r\n\t\t\t\t\tconst momentDate = moment(label)\r\n\t\t\t\t\treturn momentDate.isValid() ? momentDate.format(\"L\") : label\r\n\t\t\t\tcase LabelFormat.WeekDate:\r\n\t\t\t\t\tif (!label || label === \"Not Set\") return \"Not set\"\r\n\r\n\t\t\t\t\tconst momentWeek = moment(label)\r\n\t\t\t\t\treturn momentWeek.isValid() ? `Week of ${momentWeek.format(\"L\")}` : label\r\n\t\t\t\tcase LabelFormat.WeekRange:\r\n\t\t\t\t\tif (!label || label === \"Not Set\") return \"Not set\"\r\n\r\n\t\t\t\t\treturn \"Week \" + this.weekNumber(new Date(label)) // Do not use moment's ISO Weeks as it incorrectly uses week start\r\n\t\t\t\tcase LabelFormat.MonthDate:\r\n\t\t\t\t\tif (!label || label === \"Not Set\") return \"Not set\"\r\n\r\n\t\t\t\t\tconst momentMonth = moment(label)\r\n\t\t\t\t\treturn momentMonth.isValid() ? `${momentMonth.format(\"MMMM\")} ${momentMonth.format(\"YYYY\")}` : label\r\n\t\t\t\tdefault:\r\n\t\t\t\t\treturn label === null || label === \"\" ? \"None\" : label\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\tgetDisplayLabelFromLabeledValue (labeledValue: LabeledValue, dataType: string): string {\r\n\t\t\tif (labeledValue.label !== undefined && labeledValue.label !== null) {\r\n\t\t\t\treturn labeledValue.label\r\n\t\t\t}\r\n\r\n\t\t\tif (dataType === \"checkbox\") {\r\n\t\t\t\tif (labeledValue.value) {\r\n\t\t\t\t\treturn \"Yes\"\r\n\t\t\t\t} else {\r\n\t\t\t\t\treturn \"No\"\r\n\t\t\t\t}\r\n\t\t\t} else if (dataType === \"map-path\") {\r\n\t\t\t\tif (labeledValue.value) {\r\n\t\t\t\t\treturn \"Map Path\"\r\n\t\t\t\t}\r\n\t\t\t\treturn \"\"\r\n\t\t\t} else if (dataType === \"map-marker\") {\r\n\t\t\t\tif (labeledValue.value) {\r\n\t\t\t\t\treturn \"Map Marker\"\r\n\t\t\t\t}\r\n\t\t\t\treturn \"\"\r\n\t\t\t} else if (dataType === \"map-region\") {\r\n\t\t\t\tif (labeledValue.value) {\r\n\t\t\t\t\treturn \"Map Region\"\r\n\t\t\t\t}\r\n\t\t\t\treturn \"\"\r\n\t\t\t} else if (dataType === \"list-multiple\") {\r\n\t\t\t\tif (labeledValue.value) {\r\n\t\t\t\t\tconst listMultipleLabel = labeledValue.value.map((c: any) => c.label).join(\", \")\r\n\t\t\t\t\treturn listMultipleLabel\r\n\t\t\t\t}\r\n\t\t\t\treturn \"\"\r\n\t\t\t} else if (dataType === \"list-data\") {\r\n\t\t\t\tif (labeledValue.value) {\r\n\t\t\t\t\tconst listDataLabel = labeledValue.value.map((c: any) => c.label).join(\", \")\r\n\t\t\t\t\treturn listDataLabel\r\n\t\t\t\t}\r\n\t\t\t\treturn \"\"\r\n\t\t\t} else if (dataType === \"date-time\") {\r\n\t\t\t\treturn formatDateMixin.methods.displayDateFromISOString(labeledValue.value)\r\n\t\t\t} else if (dataType === \"date\") {\r\n\t\t\t\treturn formatDateMixin.methods.displayDateOnlyFromISOString(labeledValue.value)\r\n\t\t\t} else if (labeledValue.value !== undefined && labeledValue.value != null) {\r\n\t\t\t\treturn labeledValue.value\r\n\t\t\t} else {\r\n\t\t\t\treturn \"\"\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\tgetDisplayLabelFromLabeledValueWithFieldInfo (labeledValue: LabeledValueWithFieldInfo): string {\r\n\t\t\tconst dataType = labeledValue.dataType\r\n\t\t\tconst label = this.getDisplayLabelFromLabeledValue(labeledValue as LabeledValue, dataType)\r\n\t\t\treturn label\r\n\t\t},\r\n\r\n\t\tweekNumber (weekStart: Date): number {\r\n\t\t\tconst firstDayOfWeek = moment.localeData().firstDayOfWeek()\r\n\t\t\tconst jan4 = new Date(weekStart.getFullYear(), 1, 4)\r\n\r\n\t\t\tconst correction = jan4.getDay() + 3\r\n\t\t\tconst dayOfYear = this.dayOfYear(weekStart)\r\n\t\t\tconst weekNumber = Math.floor((dayOfYear + correction - firstDayOfWeek) / 7)\r\n\r\n\t\t\treturn weekNumber <= 0 ? 53 : weekNumber\r\n\t\t},\r\n\r\n\t\tdayOfYear (date: Date): number {\r\n\t\t\tvar start = new Date(date.getFullYear(), 0, 0)\r\n\r\n\t\t\t// Plus before the date gets around \"The right-hand side of an arithmetic operation must be of type ... \" error\r\n\t\t\tvar diff = (+date - +start) + ((start.getTimezoneOffset() - date.getTimezoneOffset()) * 60 * 1000)\r\n\t\t\tvar oneDay = 1000 * 60 * 60 * 24\r\n\t\t\treturn Math.floor(diff / oneDay)\r\n\t\t},\r\n\r\n\t\tformatWeekStart (weekStart: Date): string {\r\n\t\t\tconst momentDate = moment(weekStart)\r\n\t\t\tif (momentDate.isValid()) {\r\n\t\t\t\treturn momentDate.format(\"L\")\r\n\t\t\t}\r\n\t\t\treturn \"\"\r\n\t\t},\r\n\r\n\t\tformatWeekEnd (weekStart: Date): string {\r\n\t\t\tconst momentDate = moment(weekStart).add(6, \"days\")\r\n\t\t\tif (momentDate.isValid()) {\r\n\t\t\t\treturn momentDate.format(\"L\")\r\n\t\t\t}\r\n\t\t\treturn \"\"\r\n\t\t},\r\n\r\n\t\tshowField (template: TemplateDetails, fieldKey: string): boolean {\r\n\t\t\tif (!template) return false\r\n\t\t\tif (!template.hiddenFields) return true\r\n\t\t\treturn !template.hiddenFields!.includes(fieldKey)\r\n\t\t}\r\n\t}\r\n}\r\n","\r\nimport axios, { AxiosInstance } from \"axios\"\r\nimport api from \"@/services/api\"\r\nimport { Event, EventMedia, CaseEvents } from \"@/types/originatingEvents\"\r\n\r\nclass EventApi {\r\n\tprivate get axios (): AxiosInstance {\r\n\t\treturn api.getAxios()\r\n\t}\r\n\r\n\tpublic async caseEventsGet (caseId: string): Promise {\r\n\t\treturn (await this.axios.get(`/event/${caseId}`)).data\r\n\t}\r\n\r\n\tpublic async eventGet (caseId: string, id: string): Promise {\r\n\t\treturn (await this.axios.get(`/event/${caseId}/${id}`)).data\r\n\t}\r\n\r\n\tpublic async eventMediaGet (caseId: string, eventId: string): Promise {\r\n\t\treturn (await this.axios.get(`/event/media/${caseId}/${eventId}`)).data\r\n\t}\r\n\r\n\tpublic async eventRecordMarkKey (caseId: string, eventId: string, eventRecordId: number, isKey: boolean): Promise {\r\n\t\tawait this.axios.post(`/event/setaskey/${caseId}/${eventId}/${eventRecordId}`, null, {\r\n\t\t\tparams: {\r\n\t\t\t\tisKey\r\n\t\t\t}\r\n\t\t})\r\n\t}\r\n\r\n\tpublic async mediaMarkKey (caseId: string, clipId: string, isKey: boolean): Promise {\r\n\t\tawait this.axios.post(`/event/media/setaskey/${caseId}/${clipId}`, null, {\r\n\t\t\tparams: {\r\n\t\t\t\tisKey\r\n\t\t\t}\r\n\t\t})\r\n\t}\r\n}\r\n\r\nconst eventApi = new EventApi()\r\nexport default eventApi\r\n","let setBrandingLink: (tenantId: string | null) => void = (tenantId: string | null) => {\r\n\tconst brandingLink = document.getElementById(\"branding\") as HTMLLinkElement\r\n\tif (tenantId) {\r\n\t\tif (brandingLink) {\r\n\t\t\tbrandingLink.href = process.env.VUE_APP_HTTP_API_URI + \"tenant/css?tenant=\" + tenantId\r\n\t\t} else {\r\n\t\t\tconst link = document.createElement(\"link\")\r\n\t\t\tlink.id = \"branding\"\r\n\t\t\tlink.rel = \"stylesheet\"\r\n\t\t\tlink.href = process.env.VUE_APP_HTTP_API_URI + \"tenant/css?tenant=\" + tenantId\r\n\t\t\tdocument.head.appendChild(link)\r\n\t\t}\r\n\t} else {\r\n\t\tif (brandingLink) {\r\n\t\t\tbrandingLink.remove()\r\n\t\t}\r\n\t}\r\n}\r\n\r\nexport default setBrandingLink\r\n","import { FormattingRule } from \"@/types/insights\"\r\nimport { CaseColumn } from \"@/types/caseColumns\"\r\nimport { IconStyling } from \"@/types\"\r\n\r\nimport { dataTypeTests } from \"@/types/insights/operators\"\r\n\r\nexport const cellFormatting = {\r\n\tcellStyle (formattingRules: FormattingRule[], value: any, field: CaseColumn) {\r\n\t\tconst style = {} as any\r\n\r\n\t\tconst styleRules = formattingRules.filter(r => r.setBackgroundColor || r.setTextColor)\r\n\t\tfor (let i = 0; i < styleRules.length; i++) {\r\n\t\t\tconst rule = styleRules[i]\r\n\r\n\t\t\tif ((rule.setBackgroundColor && !style.backgroundColor) ||\r\n\t\t\t\t(rule.setTextColor && !style.color)) {\r\n\t\t\t\tif (this.ruleApplies(rule, value, field)) {\r\n\t\t\t\t\tif (rule.setBackgroundColor && !style.backgroundColor) {\r\n\t\t\t\t\t\tstyle.backgroundColor = rule.backgroundColor\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (rule.setTextColor && !style.color) {\r\n\t\t\t\t\t\tstyle.color = rule.textColor\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif (!!style.backgroundColor && !!style.color) {\r\n\t\t\t\t\t\treturn style\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn style\r\n\t},\r\n\r\n\tcellBarStyle (\r\n\t\tformattingRules: FormattingRule[],\r\n\t\trows: { [key: string]: any }[],\t// All rows in the table.\r\n\t\trow: { [key: string]: any }, \t// The row we're currently getting styling for...\r\n\t\tcell: any, \t\t\t\t\t\t// ...the current cell...\r\n\t\tcolumn: CaseColumn\t \t\t\t// ...and the column.\r\n\t) {\r\n\t\tconst style = {\r\n\t\t\tdisplay: \"none\"\r\n\t\t} as any\r\n\r\n\t\tif (!rows || !row || !column) {\r\n\t\t\treturn style\r\n\t\t}\r\n\r\n\t\t// Get only the rules that have bar-backgrounds enabled.\r\n\t\tconst barRules = formattingRules.filter(r => r.setBar)\r\n\r\n\t\t// Loop through each bar-background rule for the column. There may be more than one.\r\n\t\tfor (let i = 0; i < barRules.length; i++) {\r\n\t\t\tconst barRule = barRules[i]\r\n\r\n\t\t\t// Check that...\r\n\t\t\tif (this.ruleApplies(barRule, cell, column) && \t\t\t\t\t\t// ...the rule applies (i.e. meets the condition of the rule),\r\n\t\t\t\t!style.backgroundColor && \t\t\t\t\t\t\t\t\t\t// that a background colour rule hasn't already been set,\r\n\t\t\t\t(barRule.barMaximum || barRule.setBarMaximum === \"maximum\")\t\t// and that the maximum isn't null (or that the max setting is set to use the maximum value from the column).\r\n\t\t\t) {\r\n\t\t\t\t// Set bar maximum based on formatting rules.\r\n\t\t\t\tlet maximum = null\r\n\t\t\t\tif (barRule.setBarMaximum === \"constant\") {\r\n\t\t\t\t\tmaximum = barRule.barMaximum\r\n\t\t\t\t} else if (barRule.setBarMaximum === \"relative\" && barRule.barMaximum) {\r\n\t\t\t\t\tif (typeof (row[barRule.barMaximum]) === \"number\") {\r\n\t\t\t\t\t\tmaximum = row[barRule.barMaximum]\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tmaximum = row[barRule.barMaximum].value\r\n\t\t\t\t\t}\r\n\t\t\t\t} else if (barRule.setBarMaximum === \"maximum\") {\r\n\t\t\t\t\t// Get an array of all values for the current column, excluding any totals columns.\r\n\t\t\t\t\tconst columnValues = rows.filter(r => r.label !== \"Total\").map(r => r[column.key])\r\n\r\n\t\t\t\t\t// Find the largest column value.\r\n\t\t\t\t\tfor (i = 0; i < columnValues.length; i++) {\r\n\t\t\t\t\t\tif (typeof (columnValues[i]) === \"number\") {\r\n\t\t\t\t\t\t\tif (columnValues[i] > maximum) { maximum = columnValues[i] }\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\tif (columnValues[i].value > maximum) { maximum = columnValues[i].value }\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (maximum !== null || maximum !== undefined) {\r\n\t\t\t\t\tlet percent = parseInt(((cell / maximum) * 100).toFixed(2))\r\n\t\t\t\t\tpercent = percent > 100 ? 100 : percent\r\n\r\n\t\t\t\t\tstyle.backgroundColor = barRule.barColor\r\n\t\t\t\t\tstyle.width = `calc(${percent}% - 8px)`\r\n\r\n\t\t\t\t\tdelete style.display\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn style\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn style\r\n\t},\r\n\r\n\t/**\r\n\t * Gets the icon for the first rule that applies where the icon is set\r\n\t * @param formattingRules The array of rules to test against\r\n\t * @param value The value to test against all rules\r\n\t * @param field The field we are testing against\r\n\t * @return The icon if found, empty object otherwise\r\n\t */\r\n\ticon (formattingRules: FormattingRule[], value: any, field: CaseColumn): IconStyling {\r\n\t\tconst matchedRule = formattingRules.find((rule) => rule.setIcon && this.ruleApplies(rule, value, field))\r\n\r\n\t\tif (matchedRule) {\r\n\t\t\treturn {\r\n\t\t\t\tclass: matchedRule.icon,\r\n\t\t\t\tstyle: {\r\n\t\t\t\t\tcolor: (matchedRule.iconColor ?? undefined)\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn {}\r\n\t},\r\n\r\n\t/**\r\n\t * Tests if the specified rule applies to the specified value\r\n\t * Returns true if the rule is satisfied, false otherwise\r\n\t * @param rule The rule to test against\r\n\t * @param value The value to test against the rule\r\n\t * @param field The field we are testing against\r\n\t */\r\n\truleApplies (rule: FormattingRule, value: any, field: CaseColumn): boolean {\r\n\t\tif (rule.operator === null) {\r\n\t\t\treturn true\r\n\t\t}\r\n\r\n\t\tif (dataTypeTests[field.fieldDataType!] && dataTypeTests[field.fieldDataType!]![rule.operator!]) {\r\n\t\t\treturn dataTypeTests[field.fieldDataType!]![rule.operator!]!(rule.value, value)\r\n\t\t}\r\n\r\n\t\treturn false\r\n\t}\r\n}\r\n","import { FormattingRule } from \"./formattingRule\"\r\n\r\nexport enum CalculationType {\r\n\tTotal,\r\n\tAverage,\r\n\tMin,\r\n\tMax,\r\n\tCount,\r\n\tCountPerDay\r\n}\r\n\r\nexport enum CalculationSortItemType {\r\n\tCalculation,\r\n\tCalculationTotal,\r\n\tIncludedCalculation\r\n}\r\n\r\nexport interface InsightCalculation {\r\n\tid?: number;\r\n\tkey: string;\r\n\tfieldId: string;\r\n\tcalcType?: CalculationType | null;\r\n\tlabel: string;\r\n\tformattingRules: FormattingRule[];\r\n\tvalue?: number;\r\n\tgroupBy?: string | null;\r\n\tfield?: string;\r\n\texpression?: string | null;\r\n\r\n\tgroupByKeyLabels?: { [key:string]: string }\r\n\ttimeSpentCalculation?: TimeSpentCalculation;\r\n}\r\n\r\nexport interface InsightCalculationTotal {\r\n\tkey: string;\r\n\ttitle: string;\r\n\tcalculationList: string[];\r\n\tsubtractCalculationList: string[];\r\n\tvalue?: number;\r\n\tgroupBy?: string | null;\r\n\tformattingRules?: FormattingRule[];\r\n\texpression?: string | null;\r\n\r\n\tcollate: boolean\r\n\tcollateInclude?: { id: string, label: string }[] | null\r\n\tcollateExclude?: { id: string, label: string }[] | null\r\n}\r\n\r\nexport interface TimeSpentCalculation {\r\n\ttrackingFieldId: string;\r\n\tsearchLabel: string | null;\r\n\tsearchValue: string | null;\r\n}\r\n\r\nexport interface InsightCalculationItem {\r\n\tkey: string\r\n\tlabel?: string\r\n\ttype: CalculationSortItemType\r\n\titem: T\r\n\tsettings: any\r\n}\r\n\r\nexport type InsightCalculationResult = number | { [name: string]: number }\r\n","export enum LabelFormat {\r\n\tText,\r\n\tDate,\r\n\tWeekDate,\r\n\tWeekRange,\r\n\tMonthDate\r\n}\r\n","export enum GroupByDateFormat {\r\n\t\tDay\t=\t0,\r\n\t\tWeek\t=\t1,\r\n\t\tMonth\t=\t2,\r\n\t\tQuarter\t=\t3,\r\n}\r\n","import { GroupByDateFormat } from \"@/types/insights/groupByDateFormat\"\r\nimport { SearchClauseParameters, View } from \"@/types/view\"\r\nimport { CaseColumn } from \"../caseColumns\"\r\nimport { InsightCalculation, CalculationType, CalculationSortItemType, InsightCalculationTotal, InsightCalculationResult } from \"./calculation\"\r\nimport { InsightSearch, SearchField, SearchColumn } from \"./search\"\r\nimport { DataType, Field } from \"@/types\"\r\nimport { PageQueryParams } from \"../paginatedRequest\"\r\n\r\nexport { InsightCalculation, CalculationType, CalculationSortItemType, InsightCalculationTotal, InsightCalculationResult }\r\nexport { InsightSearch, SearchField, SearchColumn }\r\n\r\nexport { Operator, operatorLabels, operatorsByFieldType, dataTypeTests } from \"./operators\"\r\nexport { DataType, dataTypeByFieldType } from \"../dataType\"\r\nexport { LabelFormat } from \"./labelFormat\"\r\nexport { FormattingRule } from \"./formattingRule\"\r\nexport { GroupByDateFormat } from \"./groupByDateFormat\"\r\n\r\nexport interface Insight extends View, PageQueryParams {\r\n\tdisplayColumns?: any [];\r\n\tdefaultView?: string | null\r\n\r\n\tlastUpdated?: Date;\r\n\r\n\tcalculations: InsightCalculation[]\r\n\tcalculationTotals?: InsightCalculationTotal[]\r\n\tcalculationSort?: string[] | null\r\n\r\n\tgroupBy?: string | null\r\n\tgroupByDateFormat?: GroupByDateFormat | null\r\n\r\n\tgroupingOptions?: { [key: string]: string }\r\n\r\n\tshowCalculatedDateRange?: boolean | null\r\n\tshowCalculatedUserStatus?: boolean | null\r\n\r\n\tincludeCalculationsFrom?: string[] | null\r\n\r\n\tsortByDataType?: GroupByDateFormat | DataType | null\r\n\tsortByDescending?: boolean\r\n\r\n\tdynamicParameters?: DynamicParameter[] | null\r\n\tincludeGlobalParameters?: string[] | null\r\n\r\n\tincludeForecast?: boolean\r\n\tforecastBy?: string | null\r\n\r\n\tdefaultTimeZone?: string | null\r\n\ttableId?: string | null;\r\n}\r\n\r\nexport interface InsightSummary {\r\n\tincludeGlobalParameters: any\r\n id: string\r\n tenantId: string\r\n title: string\r\n folder: string\r\n teams: any[]\r\n\tgroupBy: string | null\r\n\thasCalculations: boolean\r\n}\r\n\r\nexport interface InsightDetails extends Insight {\r\n\tcalculations: InsightCalculation[]\r\n\tdisplayColumns?: CaseColumn[]\r\n\tcalculationSort: string[] | null\r\n}\r\n\r\nexport interface DynamicParameter {\r\n\tdataType: DataType\r\n\tkey: string\r\n\tname: string\r\n\tdataSourceId: string | null\r\n\tpassValueToParameter?: string[]\r\n\r\n\tdefaultValue?: any\r\n\tsearchClauseParameters?: SearchClauseParameters | null\r\n\tdynamicValue?: boolean\r\n}\r\n\r\nexport interface DynamicParameterValue {\r\n\tdataType: DataType\r\n\tkey: string\r\n\tvalue: any\r\n\tdynamicValue: boolean\r\n\tpassValueToParameter?: string[]\r\n\tsearchClauseParameters?: SearchClauseParameters | null\r\n}\r\n\r\nexport const insightViews = [\r\n\t{\r\n\t\tkey: \"table\",\r\n\t\tlabel: \"Table View\",\r\n\t\tcanDisplay: (insight: any, calculations: InsightCalculation[], fields: CaseColumn[] | Field[], usingDashboard: boolean) => true\r\n\t},\r\n\t{\r\n\t\tkey: \"HeatMap\",\r\n\t\tlabel: \"Heat Map\",\r\n\t\tcanDisplay: (insight: any, calculations: InsightCalculation[], fields: CaseColumn[] | Field[], usingDashboard: boolean) => insight.columns.some((column: string) => {\r\n\t\t\tvar columnField: any\r\n\t\t\tif (usingDashboard) {\r\n\t\t\t\tcolumnField = (fields as Field[]).find(f => column === \"fields.\" + f.id)\r\n\t\t\t} else {\r\n\t\t\t\tcolumnField = (fields as CaseColumn[]).find(f => column === \"fields.\" + f.fieldId)\r\n\t\t\t}\r\n\t\t\treturn columnField && columnField.dataType === \"map-marker\"\r\n\t\t})\r\n\t},\r\n\t{\r\n\t\tkey: \"CalculationTable\",\r\n\t\tlabel: \"Calculation Table\",\r\n\t\tcanDisplay: (insight: any, calculations: InsightCalculation[], fields: CaseColumn[] | Field[], usingDashboard: boolean) => insight.groupBy && calculations.length > 0\r\n\t},\r\n\t{\r\n\t\tkey: \"ColumnChart\",\r\n\t\tlabel: \"Bar Chart\",\r\n\t\tcanDisplay: (insight: any, calculations: InsightCalculation[], fields: CaseColumn[] | Field[], usingDashboard: boolean) => calculations.length > 0\r\n\t},\r\n\t{\r\n\t\tkey: \"BarChart\",\r\n\t\tlabel: \"Horizontal Bar Chart\",\r\n\t\tcanDisplay: (insight: any, calculations: InsightCalculation[], fields: CaseColumn[] | Field[], usingDashboard: any) => calculations.length > 0 && usingDashboard\r\n\t},\r\n\t{\r\n\t\tkey: \"ComboChart\",\r\n\t\tlabel: \"Combo Chart\",\r\n\t\tcanDisplay: (insight: any, calculations: InsightCalculation[], fields: CaseColumn[] | Field[], usingDashboard: boolean) => calculations.length > 0\r\n\t},\r\n\t{\r\n\t\tkey: \"PieChart\",\r\n\t\tlabel: \"Pie Chart\",\r\n\t\tcanDisplay: (insight: any, calculations: InsightCalculation[], fields: CaseColumn[] | Field[], usingDashboard: boolean) => calculations.length > 0 && calculations[0].groupBy === null\r\n\t},\r\n\t{\r\n\t\tkey: \"LineChart\",\r\n\t\tlabel: \"Line Chart\",\r\n\t\tcanDisplay: (insight: any, calculations: InsightCalculation[], fields: CaseColumn[] | Field[], usingDashboard: boolean) => calculations.length > 0\r\n\t}\r\n]\r\n\r\nexport const createDefaultInsight = (): Insight => {\r\n\treturn {\r\n\t\tid: undefined,\r\n\t\tclauses: [],\r\n\t\tgroupBy: \"\",\r\n\t\tcalculations: [],\r\n\t\tcolumns: [\r\n\t\t\t\"title\",\r\n\t\t\t\"templateId\"\r\n\t\t],\r\n\t\ttitle: \"\",\r\n\t\tfolder: \"\",\r\n\t\tteams: [],\r\n\t\tviewTeams: [],\r\n\t\tsortBy: \"\",\r\n\t\tgroupByDataType: null,\r\n\t\tgroupByOption: null,\r\n\t\ttenantId: \"\",\r\n\t\tcalculationTotals: [],\r\n\t\tsortByDescending: false,\r\n\t\tpage: 1,\r\n\t\tpageSize: 20\r\n\t}\r\n}\r\n","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DashboardImage.vue?vue&type=style&index=0&id=d5191db8&prod&scoped=true&lang=scss&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"page d-flex flex-column\"},[_c('nav-header',{attrs:{\"title\":_vm.title},on:{\"menuOpen\":_vm.openMenu}},[_c('template',{slot:\"title\"},[_vm._t(\"title\")],2),_c('template',{slot:\"controls\"},[_vm._t(\"controls\",[_c('quick-create-menu')])],2)],2),_c('div',{staticClass:\"card-body p-0 d-flex flex-row\",staticStyle:{\"height\":\"100%\"}},[(_vm.screenWidth >= 800)?_c('div',{staticClass:\"d-flex card-body flex-column bg-primary flex-grow-0 flex-shrink-0 nav-column align-items-center d-print-none\",staticStyle:{\"z-index\":\"10\"}},[_vm._t(\"nav-content\",[_c('router-link',{directives:[{name:\"b-tooltip\",rawName:\"v-b-tooltip.hover.right\",modifiers:{\"hover\":true,\"right\":true}}],staticClass:\"link\",attrs:{\"data-cy\":\"dashboard\",\"tabindex\":\"0\",\"to\":{ name: 'dashboard' },\"title\":\"Dashboard\"}},[_c('i',{staticClass:\"fa fa-fw fa-objects-column\"})]),_c('router-link',{directives:[{name:\"b-tooltip\",rawName:\"v-b-tooltip.hover.right\",modifiers:{\"hover\":true,\"right\":true}}],staticClass:\"link\",attrs:{\"data-cy\":\"views\",\"tabindex\":\"0\",\"to\":{ name: 'overview' },\"title\":_vm.getRecordName + ' Views'}},[_c('i',{staticClass:\"fal fa-fw fa-square-list\"})]),_c('router-link',{directives:[{name:\"b-tooltip\",rawName:\"v-b-tooltip.hover.right\",modifiers:{\"hover\":true,\"right\":true}}],staticClass:\"link\",attrs:{\"data-cy\":\"insights\",\"tabindex\":\"0\",\"to\":{ name: 'insights' },\"title\":\"Insights\"}},[_c('i',{staticClass:\"fa fa-fw fa-chart-column\"})]),(_vm.me && _vm.me.extendedPermissions && _vm.me.extendedPermissions.scheduling)?_c('router-link',{directives:[{name:\"b-tooltip\",rawName:\"v-b-tooltip.hover.right\",modifiers:{\"hover\":true,\"right\":true}}],staticClass:\"link\",attrs:{\"data-cy\":\"scheduling\",\"tabindex\":\"0\",\"to\":{ name: 'scheduling' },\"title\":\"Scheduling\"}},[_c('i',{staticClass:\"fa fa-fw fa-calendar\"})]):_vm._e(),(!!_vm.me && _vm.canAccessSettings)?_c('router-link',{directives:[{name:\"b-tooltip\",rawName:\"v-b-tooltip.hover.right\",modifiers:{\"hover\":true,\"right\":true}}],staticClass:\"link\",attrs:{\"data-cy\":\"settings\",\"tabindex\":\"0\",\"to\":{ name: 'configuration' },\"title\":!!_vm.me && !!_vm.me.isAdmin ? 'Settings' : 'Data Sources'}},[_c('i',{staticClass:\"fa fa-fw\",class:{'fa-cubes': !_vm.me.isAdmin, 'fa-gear': _vm.me.isAdmin}})]):_vm._e(),(_vm.hasIntegrations)?_c('router-link',{directives:[{name:\"b-tooltip\",rawName:\"v-b-tooltip.hover.right\",modifiers:{\"hover\":true,\"right\":true}}],staticClass:\"link\",attrs:{\"data-cy\":\"integrations\",\"tabindex\":\"0\",\"to\":{ name: 'integrations' },\"title\":\"Integrations\"}},[_c('i',{staticClass:\"fa fa-fw fa-lightbulb\"})]):_vm._e(),(_vm.me && _vm.me.editUsers)?_c('router-link',{directives:[{name:\"b-tooltip\",rawName:\"v-b-tooltip.hover.right\",modifiers:{\"hover\":true,\"right\":true}}],staticClass:\"link\",attrs:{\"data-cy\":\"users\",\"tabindex\":\"0\",\"to\":{ name: 'users' },\"title\":\"Users\"}},[_c('i',{staticClass:\"fa fa-fw fa-user-group\"})]):_vm._e()]),_c('zendeskHelp',{staticClass:\"zen-help-at-bottom\"})],2):_vm._e(),_c('div',{staticClass:\"flex-grow-1 d-flex flex-column flex-shrink-1 overflow-hide\",staticStyle:{\"position\":\"relative\"}},[_vm._t(\"default\"),_c('display-message',{attrs:{\"show\":_vm.showError,\"iconClass\":_vm.errorIcon}},[(_vm.notificationState)?[(_vm.notificationState.ableToReconnect)?_c('span',[_vm._v(\" Connection lost. Attempting to reconnect \")]):[_vm._v(\" You are currently offline. \"),_c('b-btn',{staticClass:\"m-l-10\",attrs:{\"variant\":\"link\"},on:{\"click\":_vm.refreshConnection}},[_vm._v(\"Refresh\")])]]:_vm._e()],2)],2)]),_c('slide-menu',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.screenWidth < 800),expression:\"screenWidth < 800\"}],ref:\"slideMenu\"},[_vm._t(\"slide-menu-contents\",[(_vm.screenWidth < 800)?_c('case-filters',{staticClass:\"m-b-10\",staticStyle:{\"margin-bottom\":\"2rem\"},attrs:{\"data-cy\":\"case-views\",\"views\":_vm.viewsSummary,\"activeViewId\":_vm.activeViewId},on:{\"changeView\":_vm.changeView}}):_vm._e()])],2)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"card-header bg-primary d-print-none\"},[_c('div',{staticClass:\"d-flex align-items-center min-31\"},[_c('div',{staticClass:\"flex-grow-0 d-flex header\"},[_c('h4',{staticClass:\"flex-shrink-0 m-r-10 m-l-0\"},[(_vm.screenWidth < 800)?_c('a',{staticClass:\"fas fas fa-bars m-l-5 m-r-10 link\",attrs:{\"tabindex\":\"0\"},on:{\"click\":_vm.menuSelected}}):_vm._e(),_c('img',{staticClass:\"logo-image\",attrs:{\"src\":\"images/cases_logo_112020_light.png\"}})]),_c('h4',[_vm._t(\"title\",[_vm._v(\" \"+_vm._s(_vm.title)+\" \")])],2)]),_c('div',{staticClass:\"flex-grow-1 flex-shrink-1 d-flex justify-content-end\"},[(_vm.me)?_c('v-select',{staticClass:\"flex-grow-1 vs--no-dim\",staticStyle:{\"max-width\":\"430px\"},attrs:{\"data-cy\":\"search-input\",\"options\":_vm.searchResults,\"label\":\"title\",\"placeholder\":\"Search\",\"value\":_vm.selectedItem,\"clearSearchOnBlur\":function () { return false; },\"filterable\":false,\"append-to-body\":\"\"},on:{\"input\":_vm.goToSearchResult,\"search\":_vm.fetchOptions},scopedSlots:_vm._u([{key:\"no-options\",fn:function(ref){\nvar searching = ref.searching;\nreturn [(!searching)?_c('span',[_vm._v(_vm._s((\"Search for \" + _vm.getRecordName + \"s and Users\")))]):_vm._e()]}},{key:\"option\",fn:function(result){return [_c('div',{staticClass:\"d-flex flex-row align-items-center\"},[_c('div',{staticClass:\"search-result-icon flex-grow-0 d-flex align-items-center justify-content-center flex-shrink-0\",staticStyle:{\"overflow\":\"hidden\"}},[(result.itemType === 'USER')?_c('img',{staticClass:\"circular\",attrs:{\"src\":_vm.pictureUrl(result)},on:{\"load\":function($event){return _vm.loadedImage(result)}}}):(result.itemType === 'RECORD')?_c('i',{staticClass:\"far fa-lg fa-file-alt\"}):(result.itemType === 'SEARCH')?_c('i',{staticClass:\"fas fa-lg fa-search\"}):_vm._e()]),_c('div',{staticClass:\"flex-shrink-1\",staticStyle:{\"overflow\":\"hidden\",\"white-space\":\"normal\"}},[_vm._v(\" \"+_vm._s(result.title)+\" \"),_c('br'),(result.subTitles)?_c('small',[_vm._v(_vm._s(result.subTitles.join(\", \")))]):_vm._e()])])]}},{key:\"open-indicator\",fn:function(){return [_c('i',{staticClass:\"fas fa-search\"})]},proxy:true}],null,false,3004143055)}):_vm._e()],1),_c('notification-menu'),_vm._t(\"controls\"),(_vm.screenWidth >= 800)?_c('div',{staticStyle:{\"display\":\"inline\"}},[_c('b-dropdown',{attrs:{\"right\":\"\",\"no-caret\":\"\",\"variant\":\"link\",\"data-cy\":\"user-image\"},scopedSlots:_vm._u([{key:\"button-content\",fn:function(){return [_c('img',{staticClass:\"circular m-l-5\",staticStyle:{\"height\":\"35px\",\"width\":\"35px\",\"object-fit\":\"cover\"},attrs:{\"src\":_vm.myPictureUrl},on:{\"error\":_vm.imageUrlError}})]},proxy:true}],null,false,1546332756)},[_c('b-dropdown-group',[_c('b-dropdown-form',[_c('light-dark',{staticClass:\"m-r-10\",on:{\"mouseup\":function($event){$event.stopPropagation();},\"click\":function($event){$event.stopPropagation();}}})],1),(_vm.showNewInterfaceSwitch)?_c('b-dropdown-form',[_c('new-interface-switch')],1):_vm._e()],1),(_vm.me)?[(_vm.me.currentStatus)?_c('b-dropdown-item',{attrs:{\"data-cy\":\"status-title\"},on:{\"click\":_vm.showSetStatus}},[_vm._v(\" \"+_vm._s(this.me.currentStatus.title)+\" \")]):_c('b-dropdown-item',{attrs:{\"data-cy\":\"set-status\"},on:{\"click\":_vm.showSetStatus}},[_vm._v(\" Set My Status \")]),_c('b-dropdown-item',{attrs:{\"data-cy\":\"my-account\"},on:{\"click\":_vm.toMyAccount}},[_vm._v(\" My Account \")]),_c('b-dropdown-item',{attrs:{\"data-cy\":\"my-settings\"},on:{\"click\":_vm.showUserSettings}},[_vm._v(\" My Settings \")]),(_vm.infoEnabled)?_c('b-dropdown-item',{attrs:{\"data-cy\":\"info\"},on:{\"click\":function($event){_vm.infoShown = true}}},[_vm._v(\" Information \")]):_vm._e(),(_vm.me && _vm.me.billingEnabled && _vm.hasSubscription)?_c('b-dropdown-item',{attrs:{\"data-cy\":\"billing-link\"},on:{\"click\":_vm.toOrganization}},[_vm._v(\" Billing \")]):_vm._e(),(_vm.me && _vm.me.isAdmin && !_vm.me.isSupport)?_c('b-dropdown-item',{attrs:{\"data-cy\":\"enable-support-link\"},on:{\"click\":_vm.openSupportAccess}},[_vm._v(\" SureView Support Access \")]):_vm._e(),(_vm.otherTenants.length > 0)?[_c('b-dropdown-divider'),_vm._l((_vm.otherTenants),function(tenant){return _c('b-dropdown-item',{key:tenant.id,attrs:{\"data-cy\":'tenant-'+tenant.id},on:{\"click\":function($event){return _vm.loginSelectTenant({id: tenant.id, userId: tenant.userId})}}},[_vm._v(\" Switch to \"+_vm._s(tenant.title)+\" \")])})]:_vm._e(),_c('b-dropdown-divider')]:_vm._e(),_c('b-dropdown-item',{attrs:{\"data-cy\":\"logout\"},on:{\"click\":_vm.logout}},[_c('a',{attrs:{\"href\":\"javascript:void(0)\"}},[_vm._v(\"Logout\")])])],2)],1):_vm._e()],2),_c('user-settings-modal',{ref:\"userSettingsModal\"}),(_vm.me && _vm.me.isAdmin)?_c('b-modal',{attrs:{\"title\":\"SureView Support Access\"},scopedSlots:_vm._u([{key:\"modal-footer\",fn:function(){return [_c('a',{staticClass:\"btn btn-primary\",class:{'disabled': !_vm.supportAccessTime},attrs:{\"data-cy\":\"allow-access\"},on:{\"click\":_vm.allowAccess}},[_vm._v(\" \"+_vm._s(_vm.supportAccess ? 'Extend Access' : 'Grant Access')+\" \")]),(_vm.supportAccess)?_c('a',{staticClass:\"btn btn-danger\",attrs:{\"data-cy\":\"end-access\"},on:{\"click\":_vm.endAccess}},[_vm._v(\" End Access \")]):_vm._e(),_c('a',{staticClass:\"btn btn-secondary\",on:{\"click\":function($event){_vm.supportAccessOpen = false}}},[_vm._v(\"Cancel\")])]},proxy:true}],null,false,2099686240),model:{value:(_vm.supportAccessOpen),callback:function ($$v) {_vm.supportAccessOpen=$$v},expression:\"supportAccessOpen\"}},[[(_vm.supportAccess)?_c('b-form-group',{attrs:{\"label\":\"Currently open\",\"label-for\":\"support-times\"}},[_c('p',[_vm._v(\" Opened at \"+_vm._s(_vm.displayDateFromISOString(_vm.supportAccess.enabledFrom))+\" by \"+_vm._s(_vm.supportAccess.enabledBy.name)+\". \"),_c('br'),_vm._v(\" Expires at \"+_vm._s(_vm.displayDateFromISOString(_vm.supportAccess.enabledUntil))+\" \")])]):_vm._e(),_c('b-form-group',{attrs:{\"label\":_vm.supportAccess ? 'Extend for' : 'Open for',\"label-for\":\"support-times\",\"description\":\"For a set period of time, SureView Support may access your tenancy to provide assistence\"}},[_c('v-select',{attrs:{\"id\":\"support-times\",\"options\":_vm.supportTimes,\"append-to-body\":\"\"},model:{value:(_vm.supportAccessTime),callback:function ($$v) {_vm.supportAccessTime=$$v},expression:\"supportAccessTime\"}})],1)]],2):_vm._e(),_c('b-modal',{attrs:{\"title\":\"Information\",\"size\":\"l\",\"ok-only\":\"\",\"ok-title\":\"Close\",\"content-class\":\"fill-modal\"},model:{value:(_vm.infoShown),callback:function ($$v) {_vm.infoShown=$$v},expression:\"infoShown\"}},[(_vm.infoShown)?_c('info-display',{staticClass:\"flex-grow-1\"}):_vm._e()],1),_c('set-status-modal',{ref:\"setStatusModal\"})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\nimport { Component, Vue, Prop, Emit } from \"vue-property-decorator\"\r\nimport { Getter, Mutation, Action, State } from \"vuex-class\"\r\n\r\nimport { LoginResultTenant } from \"@/types\"\r\nimport User, { CurrentUser, SystemUser } from \"@/types/user\"\r\n\r\nimport api from \"@/services/api\"\r\nimport tenantApi from \"@/services/api_Tenant\"\r\nimport vSelect from \"vue-select\"\r\n// @ts-ignore\r\nimport VuePerfectScrollbar from \"vue-perfect-scrollbar\"\r\n\r\nimport LightDarkSwitch from \"./Account/LightDarkSwitch.vue\"\r\nimport UserSettingsModal from \"@/components/UserSettingsModal.vue\"\r\nimport { Subscription } from \"@/types/subscription\"\r\nimport { TenantSupport } from \"@/types/tenant\"\r\nimport SetStatusModal from \"@/components/SetStatusModal.vue\"\r\nimport TenantInfoDisplay from \"@/components/Info/TenantInfoDisplay.vue\"\r\n\r\nimport Guid from \"@/scripts/guid\"\r\nimport NewInterfaceSwitch from \"@/components/Account/NewInterfaceSwitch.vue\"\r\nimport { TenantFeatures } from \"@/types/tenantFeatures\"\r\nimport BaseNotificationMenu from \"@/components/Notifications/BaseNotificationsMenu.vue\"\r\n\r\n@Component({\r\n\tcomponents: {\r\n\t\t\"new-interface-switch\": NewInterfaceSwitch,\r\n\t\t\"v-select\": vSelect,\r\n\t\t\"light-dark\": LightDarkSwitch,\r\n\t\t\"scrollbar\": VuePerfectScrollbar,\r\n\t\t\"user-settings-modal\": UserSettingsModal,\r\n\t\t\"set-status-modal\": SetStatusModal,\r\n\t\t\"info-display\": TenantInfoDisplay,\r\n\t\t\"notification-menu\": BaseNotificationMenu\r\n\t}\r\n})\r\nexport default class NavHeader extends Vue {\r\n\t$refs!: {\r\n\t\tuserSettingsModal: UserSettingsModal,\r\n\t\tsetStatusModal: SetStatusModal\r\n\t}\r\n\r\n\t@Prop(String)\r\n\ttitle!: string;\r\n\r\n\t@Getter(\"getScreenWidth\") public screenWidth!: number;\r\n\r\n\t@State public systemUser!: SystemUser\r\n\t@State tenantEnabledFeatures!: { [key: string]: boolean }\r\n\r\n\t@Getter(\"getMe\") public me!: CurrentUser;\r\n\r\n\t@Getter(\"getSubscription\") subscription?: Subscription\r\n\t@Getter(\"hasSubscription\") hasSubscription!: boolean\r\n\t@Getter(\"getRecordName\") getRecordName!: string;\r\n\r\n\t@Mutation(\"setSearch\") setSearch!: (search: string) => void;\r\n\r\n\t@Mutation\r\n\tprivate setManualLogout!: (manualLogout: boolean) => void\r\n\r\n\t@Action setTheme!: (theme: string) => void;\r\n\r\n\t@Action(\"selectTenant\")\r\n\tpublic loginSelectTenant!: (tenant: LoginResultTenant) => Promise\r\n\r\n\t@Action(\"logOut\")\r\n\tpublic logOut!: () => void;\r\n\r\n\tpublic search!: string;\r\n\tpublic searchResults: any[] = [];\r\n\tpublic selectedItem: any = null;\r\n\r\n\tprivate pictureError: boolean = false;\r\n\tprivate pictureGuid: string = Guid.newGuid();\r\n\r\n\tprivate debounceSearch: NodeJS.Timeout | null = null;\r\n\r\n\tinfoShown: boolean = false\r\n\r\n\tsupportAccess: TenantSupport | null = null\r\n\tsupportAccessOpen: boolean = false\r\n\tsupportAccessTime: { label: string, value: string | null } | null = null\r\n\tsupportTimes = [\r\n\t\t{\r\n\t\t\tlabel: \"1 hour\",\r\n\t\t\tvalue: \"01:00:00\"\r\n\t\t},\r\n\t\t{\r\n\t\t\tlabel: \"4 hours\",\r\n\t\t\tvalue: \"4:00:00\"\r\n\t\t},\r\n\t\t{\r\n\t\t\tlabel: \"12 hours\",\r\n\t\t\tvalue: \"12:00:00\"\r\n\t\t},\r\n\t\t{\r\n\t\t\tlabel: \"1 day\",\r\n\t\t\tvalue: \"1.00:00:00\"\r\n\t\t},\r\n\t\t{\r\n\t\t\tlabel: \"1 week\",\r\n\t\t\tvalue: \"7.00:00:00\"\r\n\t\t}\r\n\t]\r\n\r\n\tpublic get viewSearchResults (): any[] {\r\n\t\treturn this.searchResults\r\n\t}\r\n\r\n\tpublic get myPictureUrl (): string {\r\n\t\tlet imageUrl = \"\"\r\n\r\n\t\tif (this.pictureError || (!this.me && !this.systemUser)) {\r\n\t\t\timageUrl = \"images/blank_user.png\"\r\n\t\t} else {\r\n\t\t\tif (this.systemUser) {\r\n\t\t\t\timageUrl = this.systemUser.pictureUrl ? this.systemUser.pictureUrl : \"images/blank_user.png\"\r\n\t\t\t} else {\r\n\t\t\t\tif (this.me.pictureUrl) {\r\n\t\t\t\t\timageUrl = this.me.pictureUrl!\r\n\t\t\t\t} else {\r\n\t\t\t\t\timageUrl = api.pictureUrl(this.me.id)\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn `${imageUrl}?p=${this.pictureGuid}`\r\n\t}\r\n\r\n\tprivate get otherTenants (): LoginResultTenant[] {\r\n\t\tif (!this.me || !this.me.loginTenants) {\r\n\t\t\treturn []\r\n\t\t}\r\n\r\n\t\treturn this.me.loginTenants.filter(t => !t.disabled && t.id !== this.me.tenantId)\r\n\t}\r\n\r\n\tget infoEnabled (): boolean {\r\n\t\treturn this.me && !!this.me.hasTenantInfo && this.tenantEnabledFeatures[\"tenantInfo\"]\r\n\t}\r\n\r\n\tpublic mounted () {\r\n\t\tthis.$root.$on(\"refresh-profile-picture\", this.refreshProfilePicture)\r\n\t}\r\n\r\n\tpublic beforeDestroy () {\r\n\t\tthis.$root.$off(\"refresh-profile-picture\", this.refreshProfilePicture)\r\n\t}\r\n\r\n\tpublic async logout () {\r\n\t\tthis.setManualLogout(true)\r\n\r\n\t\tawait api.logout()\r\n\t\tthis.logOut()\r\n\t}\r\n\r\n\tpublic toMyAccount () {\r\n\t\tthis.$router.push({ path: `/userprofile/${this.me.id}` })\r\n\t}\r\n\r\n\tpublic showUserSettings () {\r\n\t\tthis.$refs.userSettingsModal.open()\r\n\t}\r\n\r\n\tpublic showSetStatus () {\r\n\t\tthis.$refs.setStatusModal.open()\r\n\t}\r\n\r\n\tpublic toOrganization () {\r\n\t\tthis.$router.push({ path: \"/organization\" })\r\n\t}\r\n\r\n\t@Emit(\"menuOpen\")\r\n\tpublic menuSelected () {\r\n\t}\r\n\r\n\tpublic async fetchOptions (search: string, loading: (isLoading: boolean) => void) {\r\n\t\tif (this.debounceSearch) {\r\n\t\t\tclearTimeout(this.debounceSearch)\r\n\t\t\tthis.debounceSearch = null\r\n\t\t\tloading(false)\r\n\t\t}\r\n\r\n\t\tif (search === \"\") {\r\n\t\t\tthis.searchResults = []\r\n\t\t} else {\r\n\t\t\tloading(true)\r\n\t\t\tthis.debounceSearch = setTimeout(async () => {\r\n\t\t\t\tthis.searchResults = [\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\titemType: \"SEARCH\",\r\n\t\t\t\t\t\ttitle: \"Advanced search for \\\"\" + search + \"\\\"\",\r\n\t\t\t\t\t\tsearch: search\r\n\t\t\t\t\t},\r\n\t\t\t\t\t...await api.allSearch(search)\r\n\t\t\t\t]\r\n\t\t\t\tloading(false)\r\n\t\t\t}, 500)\r\n\t\t}\r\n\t}\r\n\r\n\tpublic pictureUrl (searchResult: any): string {\r\n\t\tif (searchResult.iconUrl) {\r\n\t\t\treturn searchResult.iconUrl!\r\n\t\t} else {\r\n\t\t\treturn api.pictureUrl(searchResult.id)\r\n\t\t}\r\n\t}\r\n\r\n\tpublic goToSearchResult (result: any): void {\r\n\t\tif (result.itemType === \"RECORD\") {\r\n\t\t\tthis.$router.push({ path: `/cases/${result.pageArgument}` })\r\n\t\t} else if (result.itemType === \"USER\") {\r\n\t\t\tthis.$router.push({ path: `/userprofile/${result.id}` })\r\n\t\t} else if (result.itemType === \"SEARCH\") {\r\n\t\t\tthis.setSearch(result.search)\r\n\t\t\tthis.$router.push({ path: \"/search\" })\r\n\t\t}\r\n\t}\r\n\r\n\tpublic loadedImage (result: any): void {\r\n\r\n\t}\r\n\r\n\tpublic imageUrlError (args: any): void {\r\n\t\tthis.pictureError = true\r\n\t}\r\n\r\n\tpublic theme (newTheme: string): void {\r\n\t\tthis.setTheme(newTheme)\r\n\t}\r\n\r\n\tprivate allowAccess () {\r\n\t\ttenantApi.openSupportAccess(this.supportAccessTime ? this.supportAccessTime : { value: null })\r\n\t\tthis.supportAccessOpen = false\r\n\t}\r\n\r\n\tprivate endAccess () {\r\n\t\ttenantApi.openSupportAccess({ value: null })\r\n\t\tthis.supportAccessOpen = false\r\n\t}\r\n\r\n\tprivate openSupportAccess () {\r\n\t\ttenantApi.tenantAccess().then((supportAccess: TenantSupport | null) => {\r\n\t\t\tthis.supportAccess = supportAccess\r\n\t\t\tthis.supportAccessOpen = true\r\n\t\t})\r\n\t}\r\n\r\n\tprivate refreshProfilePicture (): void {\r\n\t\tthis.pictureGuid = Guid.newGuid()\r\n\t}\r\n\r\n\t/**\r\n\t * Only show new interface switch to admins if the feature is enabled\r\n\t * @private\r\n\t */\r\n\tprivate get showNewInterfaceSwitch () {\r\n\t\treturn this.me && this.me.isAdmin && this.me.tenantEnabledFeatures && this.me.tenantEnabledFeatures.includes(TenantFeatures.EnableV2)\r\n\t}\r\n}\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--13-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NavHeader.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--13-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NavHeader.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./NavHeader.vue?vue&type=template&id=2181e0f9&scoped=true&\"\nimport script from \"./NavHeader.vue?vue&type=script&lang=ts&\"\nexport * from \"./NavHeader.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./NavHeader.vue?vue&type=style&index=0&id=2181e0f9&prod&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"2181e0f9\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"slide-menu-base\"},[_c('transition',{attrs:{\"name\":\"fade\"}},[(_vm.show)?_c('div',{staticClass:\"modal-backdrop\",on:{\"click\":_vm.close}}):_vm._e()]),_c('transition',{attrs:{\"name\":\"slide\"}},[(_vm.show)?_c('div',{staticClass:\"card menu-card\"},[(_vm.me && _vm.screenWidth < 800)?_c('div',{staticClass:\"card-header d-flex align-items-center\",on:{\"click\":function($event){_vm.userExpanded = !_vm.userExpanded}}},[_c('user-picture',{attrs:{\"user\":_vm.me}}),_c('h5',{staticClass:\"m-l-10 flex-grow-1 flex-shrink-1\"},[_vm._v(_vm._s(_vm.me.name))]),_c('i',{staticClass:\"fas fa-caret-down m-r-10\"})],1):_vm._e(),_c('b-collapse',{staticClass:\"well\",attrs:{\"accordion\":\"user-expand-accordion\"},model:{value:(_vm.userExpanded),callback:function ($$v) {_vm.userExpanded=$$v},expression:\"userExpanded\"}},[_c('b-list-group',[_c('b-list-group-item',{staticStyle:{\"border-radius\":\"0 !important\"},on:{\"click\":_vm.logOut}},[_vm._v(\" Logout \")])],1)],1),_c('div',{staticClass:\"card-body d-flex flex-column\",staticStyle:{\"overflow\":\"hidden\"}},[_c('scrollbar',{staticClass:\"flex-grow-1\"},[_vm._t(\"default\")],2),_c('light-dark',{staticClass:\"m-t-20\"}),_vm._t(\"content-footer\")],2)],1):_vm._e()])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { Component, Vue, Watch, Prop } from \"vue-property-decorator\"\r\nimport { namespace, Getter, Mutation, Action } from \"vuex-class\"\r\n\r\nimport vSelect from \"vue-select\"\r\n// @ts-ignore\r\nimport VuePerfectScrollbar from \"vue-perfect-scrollbar\"\r\n\r\nimport LightDarkSwitch from \"./Account/LightDarkSwitch.vue\"\r\nimport UserImage from \"./UserImage.vue\"\r\n\r\nimport api from \"@/services/api\"\r\n\r\nimport User from \"@/types/user\"\r\n\r\n@Component({\r\n\tcomponents: {\r\n\t\t\"scrollbar\": VuePerfectScrollbar,\r\n\t\t\"light-dark\": LightDarkSwitch,\r\n\t\t\"user-picture\": UserImage\r\n\t}\r\n})\r\nexport default class SlideMenu extends Vue {\r\n\t@Getter(\"getScreenWidth\") public screenWidth!: number;\r\n\t@Getter(\"getMe\") public me!: User;\r\n\r\n\tpublic show: boolean = false;\r\n\tpublic userExpanded: boolean = false;\r\n\r\n\t@Action(\"logOut\") public logOut!: () => void;\r\n\r\n\tpublic open () {\r\n\t\tthis.show = true\r\n\t}\r\n\tpublic close () {\r\n\t\tthis.show = false\r\n\t}\r\n\r\n\tpublic get myPictureUrl (): string {\r\n\t\treturn api.pictureUrl(this.me.id)\r\n\t}\r\n}\r\n\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--13-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SlideMenu.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--13-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SlideMenu.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./SlideMenu.vue?vue&type=template&id=2b7da87e&scoped=true&\"\nimport script from \"./SlideMenu.vue?vue&type=script&lang=ts&\"\nexport * from \"./SlideMenu.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./SlideMenu.vue?vue&type=style&index=0&id=2b7da87e&prod&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"2b7da87e\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.show)?_c('div',{staticClass:\"floating-message alert\",class:_vm.messageClass},[(_vm.iconClass)?_c('i',{staticClass:\"fa-lg m-r-20\",class:_vm.iconClass}):_vm._e(),_vm._t(\"default\")],2):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\nimport { boolean } from \"mathjs\"\r\nimport { Component, Vue, Prop, Emit, Watch } from \"vue-property-decorator\"\r\n\r\n@Component({\r\n\tcomponents: {\r\n\t}\r\n})\r\nexport default class DisplayMessage extends Vue {\r\n\t@Prop({ type: Boolean, default: false })\r\n\tshow!: boolean\r\n\r\n\t@Prop({ type: String, default: \"danger\" })\r\n\tvariant!: string\r\n\r\n\t@Prop({ type: String, default: \"fas fa-exclamation-circle\" })\r\n\ticonClass!: string | null\r\n\r\n\tget messageClass () {\r\n\t\treturn `alert-${this.variant}`\r\n\t}\r\n}\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--13-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DisplayMessage.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--13-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DisplayMessage.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./DisplayMessage.vue?vue&type=template&id=bad9aa3a&scoped=true&\"\nimport script from \"./DisplayMessage.vue?vue&type=script&lang=ts&\"\nexport * from \"./DisplayMessage.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./DisplayMessage.vue?vue&type=style&index=0&id=bad9aa3a&prod&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"bad9aa3a\",\n null\n \n)\n\nexport default component.exports","\r\n\r\nimport { Component, Vue, Watch, Prop } from \"vue-property-decorator\"\r\nimport { namespace, Getter, Mutation, State } from \"vuex-class\"\r\n\r\nimport CaseFilters from \"@/components/CaseList/CaseFilters.vue\"\r\nimport NavHeader from \"@/components/NavHeader.vue\"\r\nimport SlideMenu from \"@/components/SlideMenu.vue\"\r\nimport DisplayMessage from \"./DisplayMessage.vue\"\r\n\r\nimport { CurrentUser } from \"@/types/user\"\r\n\r\nimport { ViewsService } from \"@/services/viewsService\"\r\nimport ZendeskHelp from \"./ZendeskHelp.vue\"\r\nimport ConnectionStatus from \"@/types/connectionStatus\"\r\nimport QuickCreateMenu from \"@/components/CaseDetails/QuickCreateMenu.vue\"\r\nimport { DataSource } from \"@/types\"\r\n\r\nconst caseStore = namespace(\"cases\")\r\nconst setup = namespace(\"setup\")\r\n\r\n@Component({\r\n\tcomponents: {\r\n\t\t\"nav-header\": NavHeader,\r\n\t\t\"slide-menu\": SlideMenu,\r\n\t\t\"case-filters\": CaseFilters,\r\n\t\t\"zendeskHelp\": ZendeskHelp,\r\n\t\t\"display-message\": DisplayMessage,\r\n\t\t\"quick-create-menu\": QuickCreateMenu\r\n\t}\r\n})\r\nexport default class Page extends Vue {\r\n\t$refs!: {\r\n\t\tslideMenu: SlideMenu\r\n\t}\r\n\r\n\t@Prop(String)\r\n\ttitle!: string;\r\n\r\n\t@Getter(\"getMe\")\r\n\tpublic me!: CurrentUser;\r\n\r\n\t@Getter(\"getHasIntegrations\") hasIntegrations!: boolean\r\n\r\n\t@Getter(\"getScreenWidth\")\r\n\tpublic screenWidth!: number;\r\n\r\n\t@caseStore.State viewsService!: ViewsService;\r\n\r\n\t@Getter(\"getCaseName\") getCaseName!: string;\r\n\t@Getter(\"getRecordName\") getRecordName!: string;\r\n\r\n\t@caseStore.State\r\n\tprivate caseToast!: string | null\r\n\r\n\t@caseStore.Mutation\r\n\tprivate setCaseToast!: (message: string | null) => void\r\n\r\n\t@State\r\n\tprivate userToast!: string | null\r\n\r\n\t@State public notificationState!: ConnectionStatus | null\r\n\r\n\t@Mutation\r\n\tprivate setUserToast!: (message: string | null) => void\r\n\r\n\t@setup.Action\r\n\tprivate loadDataSources!: () => Promise\r\n\r\n\t@setup.State\r\n\tprivate dataSources!: DataSource[];\r\n\r\n\tget showError (): boolean {\r\n\t\treturn !!this.notificationState && !this.notificationState.connected\r\n\t}\r\n\r\n\tget errorIcon (): string | null {\r\n\t\tif (!this.notificationState || this.notificationState.connected) return null\r\n\r\n\t\tif (this.notificationState.ableToReconnect) return \"fas fa-spinner fa-spin\"\r\n\r\n\t\treturn \"fas fa-wifi-slash\"\r\n\t}\r\n\r\n\t@Watch(\"caseToast\")\r\n\tonCaseToastChanged (newMessage: string | null) {\r\n\t\tif (newMessage) {\r\n\t\t\tthis.$bvToast.toast(newMessage, {\r\n\t\t\t\ttitle: this.getRecordName,\r\n\t\t\t\tvariant: \"danger\",\r\n\t\t\t\tsolid: true,\r\n\t\t\t\tautoHideDelay: 10000\r\n\t\t\t})\r\n\r\n\t\t\tthis.setCaseToast(null)\r\n\t\t}\r\n\t}\r\n\r\n\t@Watch(\"userToast\")\r\n\tonUserToastChanged (newMessage: string | null) {\r\n\t\tif (newMessage) {\r\n\t\t\tthis.$bvToast.toast(newMessage, {\r\n\t\t\t\ttitle: \"Message\",\r\n\t\t\t\tvariant: \"danger\",\r\n\t\t\t\tsolid: true,\r\n\t\t\t\tautoHideDelay: 5000\r\n\t\t\t})\r\n\r\n\t\t\tthis.setUserToast(null)\r\n\t\t}\r\n\t}\r\n\r\n\tpublic async mounted () {\r\n\t\tif (this.screenWidth <= 800) {\r\n\t\t\tthis.viewsService.loadViews()\r\n\t\t}\r\n\t\tthis.onCaseToastChanged(this.caseToast)\r\n\r\n\t\tif (!this.dataSources) {\r\n\t\t\tawait this.loadDataSources()\r\n\t\t}\r\n\t}\r\n\r\n\t/** Displays list of routes user can navigate to */\r\n\tpublic get displayRoutes (): any[] {\r\n\t\treturn (this.$router as any).options.routes\r\n\t\t\t.filter((route: any) => {\r\n\t\t\t\treturn route && route.meta && route.meta.icon\r\n\t\t\t})\r\n\t\t\t.map((route: any) => {\r\n\t\t\t\treturn {\r\n\t\t\t\t\tname: route.name,\r\n\t\t\t\t\ticon: route.meta.icon\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t}\r\n\r\n\tpublic get currentRouteName () {\r\n\t\treturn this.$router.currentRoute.name\r\n\t}\r\n\r\n\tpublic get activeViewId (): string | null {\r\n\t\tif (this.$router.currentRoute.name === \"overview\") {\r\n\t\t\treturn this.viewsService.activeViewId\r\n\t\t}\r\n\t\treturn null\r\n\t}\r\n\r\n\tpublic get viewsSummary () {\r\n\t\tif (!this.viewsService.viewSummary) return null\r\n\t\treturn this.viewsService.viewSummary.summary\r\n\t}\r\n\r\n\tpublic gotoPage () {\r\n\t\tthis.$router.push({ name: \"overview\" })\r\n\t}\r\n\r\n\tprivate openMenu (): void {\r\n\t\tthis.$refs.slideMenu.open()\r\n\t}\r\n\r\n\tpublic async changeView (viewId: string | null) {\r\n\t\tthis.viewsService.activeViewId = viewId\r\n\t\tif (this.$router.currentRoute.name === \"overview\") {\r\n\t\t\tthis.viewsService.loadViews()\r\n\t\t\tthis.$refs.slideMenu.close()\r\n\t\t} else {\r\n\t\t\tthis.$router.push({ path: \"/cases\" })\r\n\t\t}\r\n\t}\r\n\r\n\tprivate refreshConnection () {\r\n\t\twindow.location.reload()\r\n\t}\r\n\r\n\tprivate canAccessArea (area: string): boolean {\r\n\t\tif (!!this.me && !!this.me.isAdmin) {\r\n\t\t\treturn true\r\n\t\t}\r\n\r\n\t\tswitch (area.toLowerCase()) {\r\n\t\t\tcase \"settings\":\r\n\t\t\t\treturn this.canAccessSettings\r\n\t\t}\r\n\r\n\t\treturn false\r\n\t}\r\n\r\n\tprivate get canAccessSettings (): boolean {\r\n\t\tif (!this.me) {\r\n\t\t\treturn false\r\n\t\t}\r\n\t\tif (this.me.isAdmin || this.me.editData) {\r\n\t\t\treturn true\r\n\t\t} else if (this.me.teams) {\r\n\t\t\tconst teams = this.me.teams\r\n\t\t\tconst teamIds: string[] = teams.map(a => a.id)\r\n\r\n\t\t\tif (teamIds.length < 1) {\r\n\t\t\t\treturn false\r\n\t\t\t}\r\n\r\n\t\t\tif (!!this.dataSources && this.dataSources.length > 0) {\r\n\t\t\t\tconst availableDataSources = this.dataSources.filter(ds => !!ds.editPermissions && ds.editPermissions.some((ep: string) => teamIds.includes(ep)))\r\n\t\t\t\treturn !!availableDataSources && availableDataSources.length > 0\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn false\r\n\t}\r\n}\r\n\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--13-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Page.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--13-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Page.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Page.vue?vue&type=template&id=cb6a1b08&scoped=true&\"\nimport script from \"./Page.vue?vue&type=script&lang=ts&\"\nexport * from \"./Page.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./Page.vue?vue&type=style&index=0&id=cb6a1b08&prod&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"cb6a1b08\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.userSettings)?_c('div',[_c('b-modal',{attrs:{\"title\":\"My Settings\",\"size\":\"xl\",\"content-class\":\"fill-modal\"},model:{value:(_vm.isOpen),callback:function ($$v) {_vm.isOpen=$$v},expression:\"isOpen\"}},[_c('scrollbar',{staticClass:\"flex-grow-1\"},[_c('data-form',{staticClass:\"m-a-10\",attrs:{\"columns\":_vm.columns,\"canEdit\":true,\"item\":_vm.userSettings},on:{\"change\":function($event){return _vm.updateUser()}}})],1)],1)],1):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\nimport { Component, Vue } from \"vue-property-decorator\"\r\nimport { Getter, Mutation } from \"vuex-class\"\r\n\r\nimport api from \"@/services/api\"\r\n\r\n// @ts-ignore\r\nimport VuePerfectScrollbar from \"vue-perfect-scrollbar\"\r\nimport { BModal } from \"bootstrap-vue\"\r\nimport { UserSettings } from \"@/types/userSettings\"\r\nimport DataForm from \"./Config/DataForm.vue\"\r\n\r\n@Component({\r\n\tcomponents: {\r\n\t\t\"userSettingsModal\": BModal,\r\n\t\t\"scrollbar\": VuePerfectScrollbar,\r\n\t\t\"data-form\": DataForm\r\n\t}\r\n})\r\nexport default class UserSettingsModal extends Vue {\r\n\t@Getter(\"getUserSettings\")\r\n\tpublic userSettings!: UserSettings;\r\n\r\n\t@Getter(\"getCaseName\") getCaseName!: string;\r\n\t@Getter(\"getRecordName\") getRecordName!: string;\r\n\r\n\t@Mutation public setUserSettings!: (userSettings: UserSettings) => void;\r\n\r\n\tprivate isOpen: boolean = false;\r\n\r\n\tpublic get viewsOpeningOptions (): any[] {\r\n\t\tif (!this.userSettings) {\r\n\t\t\treturn []\r\n\t\t}\r\n\r\n\t\treturn [\r\n\t\t\t{\r\n\t\t\t\tid: \"sameTab\",\r\n\t\t\t\ttitle: \"Same tab\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tid: \"newTab\",\r\n\t\t\t\ttitle: \"New tab\"\r\n\t\t\t}\r\n\t\t]\r\n\t}\r\n\r\n\tpublic get columns (): any[] {\r\n\t\tif (!this.userSettings) {\r\n\t\t\treturn []\r\n\t\t}\r\n\r\n\t\treturn [\r\n\t\t\t{\r\n\t\t\t\tkey: \"settings.viewFoldersExpanded\",\r\n\t\t\t\tlabel: \"Automatically expand folders in Views\",\r\n\t\t\t\tdataType: \"checkbox\",\r\n\t\t\t\tvalueColumn: \"settings.viewFoldersExpanded\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tkey: \"settings.scheduleFoldersExpanded\",\r\n\t\t\t\tlabel: \"Automatically expand folders in Schedules\",\r\n\t\t\t\tdataType: \"checkbox\",\r\n\t\t\t\tvalueColumn: \"settings.scheduleFoldersExpanded\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tkey: \"settings.viewsOpening\",\r\n\t\t\t\tlabel: \"Opening from Insights\",\r\n\t\t\t\tdataType: \"list\",\r\n\t\t\t\tvalueColumn: \"settings.viewsOpening\",\r\n\t\t\t\toptions: this.viewsOpeningOptions,\r\n\t\t\t\tplaceholder: \"New Tab\",\r\n\t\t\t\ttooltip: `Affects how ${this.getRecordName}s/${this.getCaseName}s in views and insights will be opened when clicked on. The opposite setting will happen when ctrl + clicking instead.`\r\n\t\t\t}\r\n\t\t]\r\n\t}\r\n\r\n\tpublic open () {\r\n\t\tthis.isOpen = true\r\n\t}\r\n\r\n\tprivate async updateUser () {\r\n\t\tawait api.userSettingsSave(this.userSettings)\r\n\t}\r\n}\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--13-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserSettingsModal.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--13-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserSettingsModal.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./UserSettingsModal.vue?vue&type=template&id=12fc54f0&scoped=true&\"\nimport script from \"./UserSettingsModal.vue?vue&type=script&lang=ts&\"\nexport * from \"./UserSettingsModal.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"12fc54f0\",\n null\n \n)\n\nexport default component.exports","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RecordView.vue?vue&type=style&index=0&id=551771fe&prod&scoped=true&lang=scss&\"","import { DateTime } from \"luxon\"\r\nimport { CalculationType, DataType, dataTypeByFieldType, Insight, LabelFormat, Operator } from \".\"\r\nimport { CaseDetails } from \"../caseDetails\"\r\nimport { Clause } from \"../view\"\r\nimport { UserRole } from \"../caseUser\"\r\nimport { CalculatedResults, CalculationResults } from \"./calculatedResults\"\r\nimport _ from \"lodash\"\r\nimport { CaseUser, Field, CalculationType as CalculatedFieldType } from \"..\"\r\nimport { caseColumns } from \"../caseColumns\"\r\nimport { TimeSpentAsValue } from \"../timeSpentAsValue\"\r\n\r\ninterface DateRange {\r\n start: DateTime,\r\n end: DateTime\r\n}\r\n\r\nexport interface GroupedSearchResults {\r\n labels: { [key: string]: string },\r\n results: { [key: string]: CaseDetails[] },\r\n labelFormat: LabelFormat\r\n}\r\n\r\nexport interface IncludedInsight {\r\n insight: Insight,\r\n results: CalculatedResults\r\n}\r\n\r\n/// Code kept similar to DataService calculations to make it easier to keep aligned if modified\r\nexport class ClientSideCalculations {\r\n\tpublic reRunCalculations (calculatedResults: CalculatedResults, insight: Insight, allFields: Field[]) : CalculatedResults {\r\n\t\tconst groupedSearchResults: GroupedSearchResults = {\r\n\t\t\tlabelFormat: calculatedResults.labelFormat,\r\n\t\t\tlabels: calculatedResults.results.toDictionaryMapValue(c => c.value, c => c.label),\r\n\t\t\tresults: calculatedResults.results.toDictionaryMapValue(c => c.value, c => c.results)\r\n\t\t}\r\n\r\n\t\tconst newCalculations = this.runCalculations(groupedSearchResults, insight, allFields)\r\n\t\tnewCalculations.calculations = calculatedResults.calculations\r\n\r\n\t\treturn newCalculations\r\n\t}\r\n\r\n\tpublic runCalculations (groupedSearchResults: GroupedSearchResults, insight: Insight, allFields: Field[]) : CalculatedResults {\r\n\t\tconst dayCount = this.getDayCount(insight)\r\n\r\n\t\tconst calculationFunctionsList: any[] = []\r\n\t\tconst calculationLabels: { [key: string]: { [key: string]:string } } = {}\r\n\r\n\t\tfor (let calculation of insight.calculations) {\r\n\t\t\tlet getFieldValue = (caseDetails: CaseDetails) => null as any\r\n\t\t\tif (calculation.field) {\r\n\t\t\t\tif (calculation.field.startsWith(\"fields.\")) {\r\n\t\t\t\t\tconst fieldId = calculation.field.substr(7)\r\n\t\t\t\t\tgetFieldValue = (caseDetails: CaseDetails) => this.getValueFromField(caseDetails, fieldId)\r\n\t\t\t\t} else {\r\n\t\t\t\t\tconst fieldName = calculation.field\r\n\t\t\t\t\tgetFieldValue = (caseDetails: CaseDetails) => this.getValueFromBuiltInField(caseDetails, fieldName)\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tlet getGroupByValue: any\r\n\t\t\tif (calculation.groupBy) {\r\n\t\t\t\tif (calculation.groupBy.startsWith(\"fields.\")) {\r\n\t\t\t\t\tconst fieldId = calculation.groupBy.substr(7)\r\n\t\t\t\t\tconst field = allFields.find(c => c.id === fieldId)\r\n\r\n\t\t\t\t\tconst nullLabel =\r\n field && (field.dataType === \"list-multiple\" || field.dataType === \"map-marker\") ? \"None\" : \"Not set\"\r\n\r\n\t\t\t\t\tgetGroupByValue = (caseDetails: CaseDetails) => this.getLabeledValueFromField(caseDetails, fieldId, nullLabel)\r\n\t\t\t\t} else {\r\n\t\t\t\t\tgetGroupByValue = (caseDetails: CaseDetails) => this.getLabeledValueFromProperty(caseDetails, calculation.groupBy!)\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tlet calculationAppend = (\r\n\t\t\t\tindex: string,\r\n\t\t\t\tcalculations: { [key: string]: any},\r\n\t\t\t\tcaseDetails: CaseDetails,\r\n\t\t\t\tgroupBy: string | null,\r\n\t\t\t\tinsightGroupKey: string | null) : void => {}\r\n\r\n\t\t\tlet getNumericValue = (caseDetails: CaseDetails, insightsGroupKey: string | null) => {\r\n\t\t\t\tconst value = getFieldValue(caseDetails)\r\n\t\t\t\tif (this.isUserRole(value)) {\r\n\t\t\t\t\tif (insight.groupByDataType === DataType.userRole) {\r\n\t\t\t\t\t\tlet totalTime: number = this.getUsersTotalTime(value.users, insightsGroupKey)\r\n\t\t\t\t\t\tif (value.subRoles) {\r\n\t\t\t\t\t\t\ttotalTime += value.subRoles\r\n\t\t\t\t\t\t\t\t.map(c => this.getUsersTotalTime(c.users, insightsGroupKey))\r\n\t\t\t\t\t\t\t\t.reduce((a, b) => a + b)\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\treturn totalTime\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\treturn value.totalTime\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (this.isTimeSpent(value)) {\r\n\t\t\t\t\tif (!calculation.timeSpentCalculation) {\r\n\t\t\t\t\t\tthrow new Error(\"No time spent calculation parameters set\")\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tconst timeSpentTotal = value.totals.find(c => c.fieldValue === calculation.timeSpentCalculation!.searchLabel)\r\n\t\t\t\t\treturn timeSpentTotal ? timeSpentTotal.hoursSpent : 0\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn typeof value === \"number\" ? value : null\r\n\t\t\t}\r\n\r\n\t\t\tswitch (calculation.calcType) {\r\n\t\t\t\tcase CalculationType.Count:\r\n\t\t\t\tcase CalculationType.CountPerDay:\r\n\t\t\t\t\tcalculationAppend = (index, calculations, caseDetails, groupBy, insightGroupKey) => {\r\n\t\t\t\t\t\tif (groupBy) {\r\n\t\t\t\t\t\t\tconst calculationValues = calculations[index]\r\n\t\t\t\t\t\t\tconst existingCalculationValue = calculationValues[groupBy]\r\n\t\t\t\t\t\t\tif (existingCalculationValue) {\r\n\t\t\t\t\t\t\t\tcalculationValues[groupBy] = existingCalculationValue + 1\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\tcalculationValues[groupBy] = 1\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\tconst existingCalculationValue = calculations[index]\r\n\t\t\t\t\t\t\tif (existingCalculationValue) {\r\n\t\t\t\t\t\t\t\tcalculations[index] = existingCalculationValue + 1\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\tcalculations[index] = 1\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\tbreak\r\n\t\t\t\tcase CalculationType.Average:\r\n\t\t\t\tcase CalculationType.Total:\r\n\t\t\t\t\tcalculationAppend = (index, calculations, caseDetails, groupBy, insightGroupKey) => {\r\n\t\t\t\t\t\tvar value = getNumericValue(caseDetails, insightGroupKey)\r\n\t\t\t\t\t\tif (value) {\r\n\t\t\t\t\t\t\tif (groupBy) {\r\n\t\t\t\t\t\t\t\tconst calculationValues = calculations[index]\r\n\t\t\t\t\t\t\t\tconst existingCalculationValue = calculationValues[groupBy]\r\n\t\t\t\t\t\t\t\tif (existingCalculationValue) {\r\n\t\t\t\t\t\t\t\t\tcalculationValues[groupBy] = existingCalculationValue + value\r\n\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\tcalculationValues[groupBy] = value\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\tconst existingCalculationValue = calculations[index]\r\n\t\t\t\t\t\t\t\tif (existingCalculationValue) {\r\n\t\t\t\t\t\t\t\t\tcalculations[index] = existingCalculationValue + value\r\n\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\tcalculations[index] = value\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\tbreak\r\n\t\t\t\tcase CalculationType.Max:\r\n\t\t\t\t\tcalculationAppend = (index, calculations, caseValue, groupBy, insightGroupKey) => {\r\n\t\t\t\t\t\tvar value = getNumericValue(caseValue, insightGroupKey)\r\n\t\t\t\t\t\tif (value != null) {\r\n\t\t\t\t\t\t\tif (groupBy) {\r\n\t\t\t\t\t\t\t\tconst calculationValues = calculations[index]\r\n\t\t\t\t\t\t\t\tconst existingCalculationValue = calculationValues[groupBy]\r\n\t\t\t\t\t\t\t\tif (existingCalculationValue) {\r\n\t\t\t\t\t\t\t\t\tcalculationValues[groupBy] = Math.max(existingCalculationValue, value)\r\n\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\tcalculationValues[groupBy] = value\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\tconst existingCalculationValue = calculations[index]\r\n\t\t\t\t\t\t\t\tif (existingCalculationValue) {\r\n\t\t\t\t\t\t\t\t\tcalculations[index] = Math.max(existingCalculationValue, value)\r\n\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\tcalculations[index] = value\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\tbreak\r\n\t\t\t\tcase CalculationType.Min:\r\n\t\t\t\t\tcalculationAppend = (index, calculations, caseValue, groupBy, insightGroupKey) => {\r\n\t\t\t\t\t\tvar value = getNumericValue(caseValue, insightGroupKey)\r\n\t\t\t\t\t\tif (value != null) {\r\n\t\t\t\t\t\t\tif (groupBy) {\r\n\t\t\t\t\t\t\t\tconst calculationValues = calculations[index]\r\n\t\t\t\t\t\t\t\tconst existingCalculationValue = calculationValues[groupBy]\r\n\t\t\t\t\t\t\t\tif (existingCalculationValue) {\r\n\t\t\t\t\t\t\t\t\tcalculationValues[groupBy] = Math.min(existingCalculationValue, value)\r\n\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\tcalculationValues[groupBy] = value\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\tconst existingCalculationValue = calculations[index]\r\n\t\t\t\t\t\t\t\tif (existingCalculationValue) {\r\n\t\t\t\t\t\t\t\t\tcalculations[index] = Math.min(existingCalculationValue, value)\r\n\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\tcalculations[index] = value\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\tbreak\r\n\t\t\t}\r\n\r\n\t\t\tcalculationFunctionsList.push({\r\n\t\t\t\tkey: calculation.key,\r\n\t\t\t\tcalculationType: calculation.calcType,\r\n\t\t\t\taddValue: calculationAppend,\r\n\t\t\t\tgroupBy: getGroupByValue\r\n\t\t\t})\r\n\t\t}\r\n\r\n\t\tconst calculationResultsList: CalculationResults[] = []\r\n\r\n\t\tfor (let [key, group] of Object.entries(groupedSearchResults.results)) {\r\n\t\t\tconst groupResults: CalculationResults = {\r\n\t\t\t\tlabel: groupedSearchResults.labels[key] ? groupedSearchResults.labels[key] : key,\r\n\t\t\t\tvalue: key,\r\n\t\t\t\tcalculations: {},\r\n\t\t\t\tcalculationCounts: {},\r\n\t\t\t\tcalculationTotals: [],\r\n\t\t\t\tresults: group\r\n\t\t\t}\r\n\r\n\t\t\tfor (let calculation of calculationFunctionsList) {\r\n\t\t\t\tif (calculation.groupBy) {\r\n\t\t\t\t\tgroupResults.calculations[calculation.key] = {}\r\n\t\t\t\t\tgroupResults.calculationCounts[calculation.key] = {}\r\n\t\t\t\t} else {\r\n\t\t\t\t\tgroupResults.calculationCounts[calculation.key] = 0\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tfor (let caseResult of group) {\r\n\t\t\t\tfor (let calculationFunction of calculationFunctionsList) {\r\n\t\t\t\t\tif (!calculationLabels[calculationFunction.key]) {\r\n\t\t\t\t\t\tcalculationLabels[calculationFunction.key] = {}\r\n\t\t\t\t\t}\r\n\t\t\t\t\tconst groupByLabels = calculationLabels[calculationFunction.key]\r\n\r\n\t\t\t\t\tif (calculationFunction.groupBy) {\r\n\t\t\t\t\t\tconst groupBy = calculationFunction.groupBy(caseResult)\r\n\t\t\t\t\t\tconst calcCounts = groupResults.calculationCounts[calculationFunction.key]\r\n\t\t\t\t\t\tif (this.isTupleArray(groupBy)) {\r\n\t\t\t\t\t\t\tfor (let tuple of groupBy) {\r\n\t\t\t\t\t\t\t\tgroupByLabels[tuple[1]] = tuple[0]\r\n\t\t\t\t\t\t\t\tcalculationFunction.addValue(calculationFunction.key, groupResults.calculations, caseResult, tuple[1], key)\r\n\r\n\t\t\t\t\t\t\t\tconst existingCount : number = calcCounts[tuple[1]]\r\n\t\t\t\t\t\t\t\tif (existingCount) {\r\n\t\t\t\t\t\t\t\t\tcalcCounts[tuple[1]] = existingCount + 1\r\n\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\tcalcCounts[tuple[1]] = 1\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\tconst tuple = groupBy as [string, string]\r\n\t\t\t\t\t\t\tgroupByLabels[tuple[1]] = tuple[0]\r\n\r\n\t\t\t\t\t\t\tcalculationFunction.addValue(calculationFunction.key, groupResults.calculations, caseResult, tuple[1], key)\r\n\r\n\t\t\t\t\t\t\tconst existingCount : number = calcCounts[tuple[1]]\r\n\t\t\t\t\t\t\tif (existingCount) {\r\n\t\t\t\t\t\t\t\tcalcCounts[tuple[1]] = existingCount + 1\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\tcalcCounts[tuple[1]] = 1\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tcalculationFunction.addValue(calculationFunction.key, groupResults.calculations, caseResult, null, key)\r\n\r\n\t\t\t\t\t\tconst existingCount = groupResults.calculationCounts[calculationFunction.key]\r\n\t\t\t\t\t\tif (existingCount) {\r\n\t\t\t\t\t\t\tgroupResults.calculationCounts[calculationFunction.key] = existingCount + 1\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\tgroupResults.calculationCounts[calculationFunction.key] = 1\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tfor (let calculationFunction of calculationFunctionsList\r\n\t\t\t\t.filter(c => c.calculationType === CalculationType.Average || c.calculationType === CalculationType.CountPerDay)) {\r\n\t\t\t\tif (calculationFunction.groupBy) {\r\n\t\t\t\t\tconst totals = groupResults.calculations[calculationFunction.key]\r\n\t\t\t\t\tconst counts = groupResults.calculationCounts[calculationFunction.key]\r\n\r\n\t\t\t\t\tif (totals && counts) {\r\n\t\t\t\t\t\tconst calculationTotals = totals as { [key: string]: number }\r\n\t\t\t\t\t\tconst calculationCounts = counts as { [key: string]: number }\r\n\r\n\t\t\t\t\t\tfor (let [countKey, countValue] of Object.entries(calculationCounts)) {\r\n\t\t\t\t\t\t\tif (countValue === 0) {\r\n\t\t\t\t\t\t\t\tcontinue\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tconst total = calculationTotals[countKey]\r\n\r\n\t\t\t\t\t\t\tif (total) {\r\n\t\t\t\t\t\t\t\tswitch (calculationFunction.calculationType) {\r\n\t\t\t\t\t\t\t\t\tcase CalculationType.Average:\r\n\t\t\t\t\t\t\t\t\t\tcalculationTotals[countKey] = +(total / countValue).toFixed(2)\r\n\t\t\t\t\t\t\t\t\t\tbreak\r\n\t\t\t\t\t\t\t\t\tcase CalculationType.CountPerDay:\r\n\t\t\t\t\t\t\t\t\t\tcalculationTotals[countKey] = +(total / dayCount).toFixed(2)\r\n\t\t\t\t\t\t\t\t\t\tbreak\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t} else {\r\n\t\t\t\t\tconst calculationTotal = groupResults.calculations[calculationFunction.key] ? groupResults.calculations[calculationFunction.key] : 0\r\n\t\t\t\t\tconst calculationCount = groupResults.calculationCounts[calculationFunction.key] ? groupResults.calculationCounts[calculationFunction.key] : 0\r\n\r\n\t\t\t\t\tif (calculationCount === 0 || calculationTotal === 0) {\r\n\t\t\t\t\t\tgroupResults.calculations[calculationFunction.key] = 0\r\n\t\t\t\t\t\tcontinue\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tswitch (calculationFunction.calculationType) {\r\n\t\t\t\t\t\tcase (CalculationType.Average):\r\n\t\t\t\t\t\t\tgroupResults.calculations[calculationFunction.key] = +(calculationTotal / calculationCount).toFixed(2)\r\n\t\t\t\t\t\t\tbreak\r\n\t\t\t\t\t\tcase (CalculationType.CountPerDay):\r\n\t\t\t\t\t\t\tgroupResults.calculations[calculationFunction.key] = +(calculationTotal / dayCount).toFixed(2)\r\n\t\t\t\t\t\t\tbreak\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tcalculationResultsList.push(groupResults)\r\n\t\t}\r\n\r\n\t\treturn {\r\n\t\t\tid: \"\",\r\n\t\t\tlabelFormat: groupedSearchResults.labelFormat,\r\n\t\t\tcalculationGroupByLabels: calculationLabels,\r\n\t\t\tresults: _.sortBy(calculationResultsList, c => c.value),\r\n\t\t\tcalculations: insight.calculations\r\n\t\t}\r\n\t}\r\n\r\n\tpublic applyCalculationTotals (results: CalculatedResults, insight: Insight, includedResults: IncludedInsight[]) {\r\n\t\tif (includedResults && includedResults.length > 0) {\r\n\t\t\tfor (let includedInsight of includedResults) {\r\n\t\t\t\tfor (let [key, groupByLabel] of Object.entries(includedInsight.results.calculationGroupByLabels)) {\r\n\t\t\t\t\tresults.calculationGroupByLabels[key] = groupByLabel\r\n\t\t\t\t}\r\n\r\n\t\t\t\tfor (let includedGroup of includedInsight.results.results) {\r\n\t\t\t\t\tconst baseGroup = results.results.find(r => r.value === includedGroup.value)\r\n\r\n\t\t\t\t\tif (!baseGroup) {\r\n\t\t\t\t\t\tresults.results.push({\r\n\t\t\t\t\t\t\tlabel: includedGroup.label,\r\n\t\t\t\t\t\t\tvalue: includedGroup.value,\r\n\t\t\t\t\t\t\tcalculations: includedGroup.calculations,\r\n\t\t\t\t\t\t\tcalculationCounts: {},\r\n\t\t\t\t\t\t\tcalculationTotals: [],\r\n\t\t\t\t\t\t\tresults: [],\r\n\t\t\t\t\t\t\ttotalRecords: 0\r\n\t\t\t\t\t\t})\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tfor (let [key, calculation] of Object.entries(includedGroup.calculations)) {\r\n\t\t\t\t\t\t\tbaseGroup.calculations[key] = calculation.value\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (insight.calculationTotals) {\r\n\t\t\tfor (let groupResults of results.results) {\r\n\t\t\t\t// Loop through each calculation total and sum up all the calculation results\r\n\t\t\t\tconst calculationTotalResults = []\r\n\t\t\t\tif (insight.calculationTotals) {\r\n\t\t\t\t\tfor (let calculationTotal of insight.calculationTotals) {\r\n\t\t\t\t\t\t// No grouping, results for each calculation are doubles, just sum directly\r\n\t\t\t\t\t\tif (!calculationTotal.groupBy) {\r\n\t\t\t\t\t\t\tlet total = 0\r\n\r\n\t\t\t\t\t\t\tfor (let calculationKey of calculationTotal.calculationList) {\r\n\t\t\t\t\t\t\t\tconst existingCalculation = groupResults.calculations[calculationKey]\r\n\t\t\t\t\t\t\t\tif (existingCalculation && typeof existingCalculation === \"number\") {\r\n\t\t\t\t\t\t\t\t\ttotal += existingCalculation\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tif (calculationTotal.subtractCalculationList) {\r\n\t\t\t\t\t\t\t\tfor (let calculationKey of calculationTotal.subtractCalculationList) {\r\n\t\t\t\t\t\t\t\t\tconst existingCalulation = groupResults.calculations[calculationKey]\r\n\t\t\t\t\t\t\t\t\tif (existingCalulation && typeof existingCalulation === \"number\") {\r\n\t\t\t\t\t\t\t\t\t\ttotal -= existingCalulation\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tcalculationTotalResults.push(total)\r\n\t\t\t\t\t\t} else { // Grouping, calculation results are a dictionary so we need to sum by key in dictionary\r\n\t\t\t\t\t\t\tconst total: { [key: string]: number } = {}\r\n\t\t\t\t\t\t\tlet totalValue = 0\r\n\r\n\t\t\t\t\t\t\t// Loop through each calculation in the calculation total to sum by key\r\n\t\t\t\t\t\t\tfor (let calculationKey in calculationTotal.calculationList) {\r\n\t\t\t\t\t\t\t\t// Calculations are in a dictionary with keys being their index position in insights.calculation\r\n\t\t\t\t\t\t\t\tconst calculation = groupResults.calculations[calculationKey]\r\n\r\n\t\t\t\t\t\t\t\tif (typeof calculation === \"object\" && Object.keys(calculation).length) {\r\n\t\t\t\t\t\t\t\t\tconst calcDictionary = calculation as { [key: string]: number }\r\n\t\t\t\t\t\t\t\t\tfor (let [calcKey, result] of Object.entries(calcDictionary)) {\r\n\t\t\t\t\t\t\t\t\t\tif (calculationTotal.collate) {\r\n\t\t\t\t\t\t\t\t\t\t\tif (calculationTotal.collateInclude && !calculationTotal.collateInclude.find(include => include.id === calcKey)) {\r\n\t\t\t\t\t\t\t\t\t\t\t\tcontinue\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\tif (calculationTotal.collateExclude && calculationTotal.collateExclude.find(exclude => exclude.id === calcKey)) {\r\n\t\t\t\t\t\t\t\t\t\t\t\tcontinue\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t\t\ttotalValue += result\r\n\t\t\t\t\t\t\t\t\t\t\tcontinue\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t\tif (!total[calcKey]) {\r\n\t\t\t\t\t\t\t\t\t\t\ttotal[calcKey] = result\r\n\t\t\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\t\t\ttotal[calcKey] += result\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tif (calculationTotal.collate) {\r\n\t\t\t\t\t\t\t\tcalculationTotalResults.push(totalValue)\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\tcalculationTotalResults.push(total)\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\tgroupResults.calculationTotals = calculationTotalResults\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tprivate getLabeledValueFromProperty (caseDetails: CaseDetails, propertyName: string) : any {\r\n\t\tconst value = caseDetails[propertyName]\r\n\r\n\t\tconst caseColumn = caseColumns.find(c => c.key === propertyName)!\r\n\r\n\t\tif (caseColumn.fieldDataType &&\r\n (caseColumn.fieldDataType === DataType.arrayMultiple ||\r\n caseColumn.fieldDataType === DataType.arrayData)) {\r\n\t\t\tif (!value || value.length === 0) {\r\n\t\t\t\treturn [\"None\", \"None\"]\r\n\t\t\t}\r\n\r\n\t\t\tconst returnList = []\r\n\t\t\tfor (let valueItem of value) {\r\n\t\t\t\treturnList.push([valueItem.label, valueItem.id])\r\n\t\t\t}\r\n\r\n\t\t\treturn returnList\r\n\t\t} else if (propertyName === \"assigneeId\") {\r\n\t\t\tconst label = this.getAssigneeLabel(caseDetails, value as string)\r\n\t\t\treturn [label, value || \"None\"]\r\n\t\t} else {\r\n\t\t\tlet label = value || \"Not set\"\r\n\t\t\tif (caseColumn.displayKey) {\r\n\t\t\t\tconst displayPropertyName = caseColumn.displayKey\r\n\t\t\t\tlabel = caseDetails[displayPropertyName] || \"Not set\"\r\n\t\t\t}\r\n\r\n\t\t\treturn [label, (value && value.toString()) || \"Not set\"]\r\n\t\t}\r\n\t}\r\n\r\n\tprivate getLabeledValueFromField (caseDetails: CaseDetails, fieldId: string, nullLabel: string | null) : any {\r\n\t\tif (!caseDetails.fields || !caseDetails.fields[fieldId]) {\r\n\t\t\treturn [\"Not set\", \"Not set\"]\r\n\t\t}\r\n\r\n\t\tconst caseField = caseDetails.fields[fieldId]\r\n\r\n\t\tif (caseField.dataType === \"checkbox\") {\r\n\t\t\tconst checkboxValue = caseField.value ? \"Yes\" : \"No\"\r\n\t\t\treturn [checkboxValue, checkboxValue]\r\n\t\t}\r\n\r\n\t\tconst value = caseField.value\r\n\r\n\t\tif (dataTypeByFieldType[caseField.fieldDataType!] === DataType.arrayMultiple ||\r\n dataTypeByFieldType[caseField.fieldDataType!] === DataType.arrayData) {\r\n\t\t\tif (!value || value.length === 0) {\r\n\t\t\t\treturn [\"None\", \"None\"]\r\n\t\t\t}\r\n\r\n\t\t\tconst returnList = []\r\n\t\t\tfor (let valueItem of value) {\r\n\t\t\t\treturnList.push([valueItem.label, valueItem.id])\r\n\t\t\t}\r\n\r\n\t\t\treturn returnList\r\n\t\t} else if (this.isUserRole(value) ||\r\n dataTypeByFieldType[caseField.fieldDataType!] === DataType.userRole) {\r\n\t\t\tconst returnList = []\r\n\t\t\tif (value && caseDetails.users) {\r\n\t\t\t\tconst userRole = value as UserRole\r\n\t\t\t\tconst caseUsers = caseDetails.users\r\n\r\n\t\t\t\tif (userRole.users) {\r\n\t\t\t\t\tconst userRoleUsers = userRole.users\r\n\t\t\t\t\t\t.map(u => caseUsers.find(c => c.id === u.id))\r\n\t\t\t\t\t\t.filter(u => u)\r\n\r\n\t\t\t\t\tconst labelTuples = userRoleUsers\r\n\t\t\t\t\t\t.map(u => [u!.name, u!.isExternal ? u!.name : u!.id])\r\n\r\n\t\t\t\t\treturnList.push(...labelTuples)\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (userRole.subRoles) {\r\n\t\t\t\t\tconst subRoleUsers = userRole.subRoles\r\n\t\t\t\t\t\t.filter(subRole => subRole.users)\r\n\t\t\t\t\t\t.flatMap(subRole => subRole.users!.map(u => caseUsers.find(c => c.id === u.id)).filter(u => u))\r\n\r\n\t\t\t\t\tconst labelTuples = subRoleUsers.map(u => [u!.name, u!.isExternal ? u!.name : u!.id])\r\n\r\n\t\t\t\t\treturnList.push(...labelTuples)\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tif (returnList.length === 0) {\r\n\t\t\t\treturn [\"None\", \"None\"]\r\n\t\t\t}\r\n\r\n\t\t\treturn returnList\r\n\t\t} else {\r\n\t\t\tconst labelToReturn = caseField.label\r\n\t\t\t\t? caseField.label\r\n\t\t\t\t: (value && value.toString()) || nullLabel\r\n\r\n\t\t\tconst valueToReturn = (value && value.toString()) || nullLabel\r\n\t\t\treturn [labelToReturn, valueToReturn]\r\n\t\t}\r\n\t}\r\n\r\n\tprivate getUsersTotalTime (users: CaseUser[] | null, userId: string | null) : number {\r\n\t\tif (!users) {\r\n\t\t\treturn 0\r\n\t\t}\r\n\t\tif (userId === \"External\") {\r\n\t\t\treturn users.filter(u => u.isExternal).map(u => u.timeSpent || 0).reduce((a, b) => a + b)\r\n\t\t}\r\n\r\n\t\tif (!userId) {\r\n\t\t\treturn 0\r\n\t\t}\r\n\t\tconst caseUser = users.find(u => u.id === userId)\r\n\t\treturn (caseUser && caseUser.timeSpent) || 0\r\n\t}\r\n\r\n\tprivate getAssigneeLabel (caseDetails: CaseDetails, assigneeId: string) : string {\r\n\t\tif (!assigneeId) {\r\n\t\t\treturn \"None\"\r\n\t\t}\r\n\r\n\t\tif (!caseDetails.users) {\r\n\t\t\treturn assigneeId\r\n\t\t}\r\n\r\n\t\tconst caseUser = caseDetails.users.firstOrDefault(u => u.id === assigneeId)\r\n\r\n\t\tif (!caseUser || !caseUser.name) {\r\n\t\t\treturn assigneeId\r\n\t\t}\r\n\r\n\t\treturn caseUser.name\r\n\t}\r\n\r\n\tprivate isTupleArray (array: any[]) : array is [any, any][] {\r\n\t\tif (array.length === 0) {\r\n\t\t\treturn false\r\n\t\t}\r\n\r\n\t\tconst firstElement = array[0]\r\n\r\n\t\tif (Array.isArray(firstElement)) {\r\n\t\t\treturn true\r\n\t\t}\r\n\t\treturn false\r\n\t}\r\n\r\n\t// DataService location: SVCases.Utils.Search.Clause.ValueDateTime\r\n\tprivate getClauseDate (clause: Clause, getEarliest: boolean) : DateTime | null {\r\n\t\tif (this.isDateRange(clause.valueObject)) {\r\n\t\t\treturn getEarliest ? clause.valueObject.start : clause.valueObject.end\r\n\t\t}\r\n\r\n\t\tif (clause.valueObject instanceof DateTime) {\r\n\t\t\treturn clause.valueObject\r\n\t\t}\r\n\r\n\t\tif (!clause.value) {\r\n\t\t\treturn null\r\n\t\t}\r\n\r\n\t\tconst parsedValue = DateTime.fromISO(clause.value, { zone: \"utc\" })\r\n\r\n\t\tif (parsedValue.isValid) {\r\n\t\t\treturn parsedValue\r\n\t\t}\r\n\r\n\t\treturn null\r\n\t}\r\n\r\n\tprivate getValueFromField (caseDetails: CaseDetails, fieldId: string) : any {\r\n\t\treturn caseDetails.fields != null && caseDetails.fields[fieldId] ? caseDetails.fields[fieldId].value : null\r\n\t}\r\n\r\n\tprivate getValueFromBuiltInField (caseDetails: CaseDetails, fieldName: string) : any {\r\n\t\treturn caseDetails[fieldName]\r\n\t}\r\n\r\n\tprivate isDateRange (value: any): value is DateRange {\r\n\t\treturn value &&\r\n (value as DateRange).start !== undefined &&\r\n (value as DateRange).end !== undefined\r\n\t}\r\n\r\n\tprivate isUserRole (value: any): value is UserRole {\r\n\t\tconst userRoleValue = value as UserRole\r\n\t\treturn !!(userRoleValue && (userRoleValue.users || userRoleValue.subRoles))\r\n\t}\r\n\r\n\tprivate isTimeSpent (value: any) : value is TimeSpentAsValue {\r\n\t\treturn value && (value as TimeSpentAsValue).calculationType === CalculatedFieldType.TimeSpentAs\r\n\t}\r\n\r\n\tprivate getDayCount (insight: Insight) : number {\r\n\t\tlet dayCount = 1.0\r\n\r\n\t\tif (insight.calculations.some(c => c.calcType === CalculationType.CountPerDay)) {\r\n\t\t\tconst allStartDates = insight.clauses.filter(clause =>\r\n\t\t\t\tclause.fieldDataType === DataType.dateTime &&\r\n clause.operator === Operator.GreaterThan)\r\n\t\t\t\t.map(clause => this.getClauseDate(clause, false))\r\n\t\t\t\t.filter(date => date !== null)\r\n\r\n\t\t\tif (allStartDates.length > 0) {\r\n\t\t\t\tconst latestStartDate = _.max(allStartDates)!\r\n\r\n\t\t\t\tconst endDates = insight.clauses.filter(clause =>\r\n\t\t\t\t\tclause.fieldDataType === DataType.dateTime &&\r\n clause.operator === Operator.LessThan)\r\n\t\t\t\t\t.map(clause => this.getClauseDate(clause, true))\r\n\t\t\t\t\t.filter(date => date != null)\r\n\r\n\t\t\t\tconst earliestEndDate = endDates.length > 0 ? _.min(endDates)! : DateTime.utc()\r\n\r\n\t\t\t\tconst daysBetween = (earliestEndDate)\r\n\t\t\t\t\t.diff(latestStartDate,\r\n\t\t\t\t\t\t[\"days\"])\r\n\r\n\t\t\t\tdayCount = Math.ceil(daysBetween.days)\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn dayCount\r\n\t}\r\n}\r\n","import { dataTypeTests, Operator } from \"@/types/insights/operators\"\r\nimport { AdvancedSearchFilter, CaseDetails, DataType, Field } from \"@/types\"\r\n\r\nimport { get, StringIterator } from \"lodash\"\r\nimport { SearchClauseParameters } from \"@/types/view\"\r\nimport { CalculationResults, FilteredCalculationResults } from \"@/types/insights/calculatedResults\"\r\nimport { ClientSideCalculations, GroupedSearchResults } from \"@/types/insights/clientSideCalculations\"\r\nimport { LabelFormat, Insight } from \"@/types/insights\"\r\n\r\nconst addADay = (date: Date) => new Date(date.getTime() + (60 * 60 * 24 * 1000))\r\nconst getDynamicDate = (value: any, dynamic: boolean, operator: Operator, params?: SearchClauseParameters) => {\n\tif (value instanceof Date) {\r\n\t\tif (operator === Operator.Equals) {\r\n\t\t\treturn {\r\n\t\t\t\tstart: value,\r\n\t\t\t\tend: addADay(value)\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn value\r\n\t}\r\n\r\n\tlet currentDate: Date | null = null\r\n\tif (dynamic) {\r\n\t\tlet now = new Date(Date.now())\r\n\t\tcurrentDate = new Date(now.getFullYear(), now.getMonth(), now.getDate())\r\n\t\tswitch (value) {\r\n\t\t\tcase \"NextWeek\":\r\n\t\t\tcase \"PreviousWeek\":\r\n\t\t\tcase \"CurrentWeek\":\r\n\t\t\t\tconst dayOfWeek = now.getDay()\r\n\r\n\t\t\t\t// 1 = Monday\r\n\t\t\t\tconst startDay = params && (params.startDayOfWeek !== undefined)\r\n\t\t\t\t\t? params.startDayOfWeek\r\n\t\t\t\t\t: 1\r\n\r\n\t\t\t\tlet dayChange = startDay - dayOfWeek\r\n\t\t\t\tif (dayChange > 0) {\r\n\t\t\t\t\tdayChange -= 7\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (value === \"NextWeek\") {\r\n\t\t\t\t\tdayChange += 7\r\n\t\t\t\t} else if (value === \"PreviousWeek\") {\r\n\t\t\t\t\tdayChange -= 7\r\n\t\t\t\t}\r\n\r\n\t\t\t\tcurrentDate.setDate(now.getDate() + dayChange)\r\n\t\t\t\tbreak\r\n\t\t\tcase \"CurrentMonth\":\r\n\t\t\t\tconst dayOfMonth = now.getDate()\r\n\t\t\t\tcurrentDate.setDate(now.getDate() - dayOfMonth + 1)\r\n\t\t\t\tbreak\r\n\t\t\tcase \"CurrentQuarter\":\r\n\t\t\t\tconst quarter = Math.floor(now.getMonth() / 3) + 1\r\n\t\t\t\tcurrentDate = new Date(now.getFullYear(), (quarter - 1) * 3, 1)\r\n\t\t\t\tbreak\r\n\t\t\tdefault:\r\n\t\t\t\tconst days = parseInt(value)\r\n\t\t\t\tif (!isNaN(days)) {\r\n\t\t\t\t\tcurrentDate.setDate(now.getDate() + days)\r\n\t\t\t\t}\r\n\t\t\t\tbreak\r\n\t\t}\r\n\t} else {\r\n\t\tcurrentDate = new Date(value)\r\n\t}\r\n\r\n\tif (operator === Operator.Equals || operator === Operator.OnDay) {\r\n\t\treturn {\r\n\t\t\tstart: currentDate,\r\n\t\t\tend: addADay(currentDate)\r\n\t\t}\r\n\t}\r\n\r\n\tif (operator === Operator.DateRange) {\r\n\t\treturn {\r\n\t\t\tstart: params!.startDate,\r\n\t\t\tend: params!.endDate\r\n\t\t}\r\n\t}\r\n\r\n\treturn currentDate\r\n}\r\n\r\nexport const filterMixin = {\r\n\tmethods: {\r\n\t\tfiltersToFunctions (filters: AdvancedSearchFilter[], currentUserId: string) {\r\n\t\t\treturn filters\r\n\t\t\t\t.filter(f => f.orFilters || (dataTypeTests[f.column!.fieldDataType!] !== undefined && dataTypeTests[f.column!.fieldDataType!]![f.operator!] !== undefined))\r\n\t\t\t\t.map(f => {\r\n\t\t\t\t\tif (f.orFilters) {\r\n\t\t\t\t\t\tconst orFilterFunctions: ((record: CaseDetails) => boolean)[] = this.filtersToFunctions(f.orFilters, currentUserId)\r\n\t\t\t\t\t\treturn (record: CaseDetails) => orFilterFunctions.some(f => f(record))\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tlet testValue: any = f.value\r\n\r\n\t\t\t\t\t\tif (f.column!.fieldDataType === DataType.dateTime) {\r\n\t\t\t\t\t\t\ttestValue = getDynamicDate(f.value,\r\n\t\t\t\t\t\t\t\tf.dynamicValue === undefined ? false : f.dynamicValue,\r\n\t\t\t\t\t\t\t\tf.operator === undefined ? Operator.Equals : f.operator,\r\n\t\t\t\t\t\t\t\tf.searchClauseParameters)\n\t\t\t\t\t\t} else if (f.column!.fieldDataType === DataType.timeSpentAsValue) {\r\n\t\t\t\t\t\t\tif (f.searchClauseParameters && f.searchClauseParameters.timeSpentClause) {\r\n\t\t\t\t\t\t\t\ttestValue = {\r\n\t\t\t\t\t\t\t\t\thours: f.searchClauseParameters.timeSpentClause.hoursSpent,\r\n\t\t\t\t\t\t\t\t\tsearchValueLabel: f.searchClauseParameters.timeSpentClause.searchLabel\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\treturn (record: CaseDetails) => true\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t} else if (f.dynamicValue && f.value === \"[Me]\") {\r\n\t\t\t\t\t\t\ttestValue = currentUserId\r\n\t\t\t\t\t\t} else if (f.column!.fieldDataType === DataType.string) {\r\n\t\t\t\t\t\t\ttestValue = f.value ? f.value.toLocaleLowerCase() : f.value\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tconst dataTypeOperator = dataTypeTests[f.column!.fieldDataType!]![f.operator!]!\r\n\t\t\t\t\t\treturn (record: CaseDetails) => {\r\n\t\t\t\t\t\t\t// if there are no fields it is likely because the all the record's user-defined fields in the 'show columns' are null\r\n\t\t\t\t\t\t\t// in this case, filter the same way as the server side treats a null field value - depending on the operator\r\n\t\t\t\t\t\t\t// e.g. Any(null) - don't match, Contains(null) - don't match, NotEqual(null) - match, etc\r\n\t\t\t\t\t\t\tif (f.column!.dynamicField && !record.fields) {\r\n\t\t\t\t\t\t\t\tif (f.operator! === Operator.Any ||\r\n\t\t\t\t\t\t\t\t\tf.operator! === Operator.Contains ||\r\n\t\t\t\t\t\t\t\t\tf.operator! === Operator.Equals ||\r\n\t\t\t\t\t\t\t\t\tf.operator! === Operator.GreaterThan ||\r\n\t\t\t\t\t\t\t\t\tf.operator! === Operator.LessThan ||\r\n\t\t\t\t\t\t\t\t\tf.operator! === Operator.OnDay ||\r\n\t\t\t\t\t\t\t\t\tf.operator! === Operator.Within ||\r\n\t\t\t\t\t\t\t\t\tf.operator! === Operator.InTeam ||\r\n\t\t\t\t\t\t\t\t\tf.operator! === Operator.IsSet) {\r\n\t\t\t\t\t\t\t\t\treturn false\r\n\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\treturn true\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\treturn dataTypeOperator(testValue,\r\n\t\t\t\t\t\t\t\tf.column!.dynamicField\r\n\t\t\t\t\t\t\t\t\t? record.fields[f.column!.fieldId!]\r\n\t\t\t\t\t\t\t\t\t\t? record.fields[f.column!.fieldId!].value\r\n\t\t\t\t\t\t\t\t\t\t: null\r\n\t\t\t\t\t\t\t\t\t: (record as any)[f.column!.key!]\r\n\t\t\t\t\t\t\t)\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t})\r\n\t\t},\r\n\t\tfilterList (list: any[], filters: AdvancedSearchFilter[]) {\r\n\t\t\treturn list.filter((item: any) => filters.every((filter: AdvancedSearchFilter) => {\r\n\t\t\t\tconst filterKey = (filter.filterKey ? filter.filterKey : filter.key) +\r\n\t\t\t\t\t(filter.column && filter.column.dynamicField ? \".value\" : \"\")\r\n\t\t\t\tconst filterFieldValue = get(item, filterKey)\r\n\r\n\t\t\t\tswitch (filter.operator) {\r\n\t\t\t\t\tcase Operator.Equals:\r\n\t\t\t\t\t\treturn filterFieldValue == filter.value // eslint-disable-line\r\n\t\t\t\t\tcase Operator.Contains:\r\n\t\t\t\t\t\tif (filter.columnDataType === \"list-multiple\") {\r\n\t\t\t\t\t\t\treturn filterFieldValue && Array.isArray(filterFieldValue) && filterFieldValue.find(i => i.id ? i.id === filter.value : i === filter.value)\r\n\t\t\t\t\t\t} else if (filter.columnDataType === \"list-data\") {\r\n\t\t\t\t\t\t\treturn filterFieldValue && Array.isArray(filterFieldValue) && filterFieldValue.find(i => i.id === filter.value)\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\treturn filterFieldValue && filterFieldValue.toLowerCase().indexOf(filter.value!.toLowerCase()) > -1\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\tcase Operator.GreaterThan: return filterFieldValue != null && filterFieldValue > filter.value!\r\n\t\t\t\t\tcase Operator.LessThan: return filterFieldValue != null && filterFieldValue < filter.value!\r\n\t\t\t\t\tcase Operator.IsSet:\r\n\t\t\t\t\t\tif (filter.columnDataType === \"list-multiple\" || filter.columnDataType === \"list-data\") {\r\n\t\t\t\t\t\t\treturn !!filterFieldValue && Array.isArray(filterFieldValue) && filterFieldValue.length > 0\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\treturn !!filterFieldValue\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\tcase Operator.NotSet:\r\n\t\t\t\t\t\tif (filter.columnDataType === \"list-multiple\" || filter.columnDataType === \"list-data\") {\r\n\t\t\t\t\t\t\treturn !filterFieldValue || !Array.isArray(filterFieldValue) || filterFieldValue.length === 0\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\treturn !filterFieldValue\r\n\t\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn true\r\n\t\t\t}))\r\n\t\t},\r\n\t\tfilterGroups (resultGroups: CalculationResults[], filterFunctions: ((record: CaseDetails) => boolean)[], labelFormat: LabelFormat, insight: Insight, fields: Field[]) : FilteredCalculationResults[] {\r\n\t\t\tif (!resultGroups) {\r\n\t\t\t\treturn []\r\n\t\t\t}\r\n\r\n\t\t\tconst unfilteredLengths: { [key: string]: number } = resultGroups.toDictionaryMapValue(c => c.value, c => c.results ? c.results.length : 0)\r\n\r\n\t\t\tif (!filterFunctions || filterFunctions.length === 0) {\r\n\t\t\t\treturn resultGroups.map(resultGroup => {\r\n\t\t\t\t\treturn {\r\n\t\t\t\t\t\t...resultGroup,\r\n\t\t\t\t\t\tunfilteredLength: unfilteredLengths[resultGroup.value]\r\n\t\t\t\t\t}\r\n\t\t\t\t})\r\n\t\t\t}\r\n\r\n\t\t\tconst clientFilteredResults: CalculationResults[] =\r\n\t\t\t\tresultGroups.map(resultGroup => {\r\n\t\t\t\t\treturn {\r\n\t\t\t\t\t\t...resultGroup,\r\n\t\t\t\t\t\tresults: resultGroup.results\r\n\t\t\t\t\t\t\t? resultGroup.results.filter((record: CaseDetails) => filterFunctions.every(f => f(record)))\r\n\t\t\t\t\t\t\t: []\r\n\t\t\t\t\t}\r\n\t\t\t\t})\r\n\r\n\t\t\tconst clientGroupedSearchResults: GroupedSearchResults = {\r\n\t\t\t\tlabelFormat: labelFormat,\r\n\t\t\t\tresults: clientFilteredResults.toDictionaryMapValue(c => c.value, c => c.results),\r\n\t\t\t\tlabels: clientFilteredResults.toDictionaryMapValue(c => c.value, c => c.label)\r\n\t\t\t}\r\n\r\n\t\t\tconst calculationRunner = new ClientSideCalculations()\r\n\t\t\tconst clientCalculatedResults =\tcalculationRunner.runCalculations(clientGroupedSearchResults, insight, fields)\r\n\r\n\t\t\tcalculationRunner.applyCalculationTotals(clientCalculatedResults, insight, [])\r\n\t\t\treturn clientCalculatedResults.results.map(resultGroup => {\r\n\t\t\t\treturn {\r\n\t\t\t\t\t...resultGroup,\r\n\t\t\t\t\tunfilteredLength: unfilteredLengths[resultGroup.value]\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t}\r\n\t}\r\n}\r\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_vm._t(\"default\",null,{\"currentCase\":_vm.currentCase,\"template\":_vm.template,\"titleTemplateEnabled\":_vm.titleTemplateEnabled,\"templateChanged\":_vm.templateChanged,\"hasMap\":_vm.hasMap,\"canEditCurrentCase\":_vm.canEditCurrentCase,\"canCreateComments\":_vm.canCreateComments,\"editAfterClosePermissions\":_vm.editAfterClosePermissions,\"caseEvents\":_vm.caseEvents,\"makeClosedChanges\":_vm.makeClosedChanges,\"caseClose\":_vm.caseClose,\"integrationPush\":_vm.pushTo,\"caseIntegrationLinks\":_vm.caseIntegrationLinks})],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { HubConnection, HubConnectionBuilder, HubConnectionState, LogLevel } from \"@aspnet/signalr\"\r\n\r\nexport default class HubCaseService {\r\n\tprivate caseConnectionShouldBeOpen: boolean = false;\r\n\tprivate caseConnection: HubConnection | null = null;\r\n\r\n\tpublic async openConnection (caseId: string): Promise {\r\n\t\tif (this.caseConnection) {\r\n\t\t\tconsole.log(\"Leaving event\")\r\n\r\n\t\t\tthis.caseConnection.invoke(\"leaveCase\", caseId)\r\n\t\t\tthis.caseConnection.stop()\r\n\t\t\tthis.caseConnection = null\r\n\t\t}\r\n\r\n\t\tconsole.log(\"Joining event \")\r\n\t\tconst caseConnection = new HubConnectionBuilder()\r\n\t\t\t.withUrl(`${process.env.VUE_APP_HTTP_API_URI}case-hub`)\r\n\t\t\t.configureLogging(LogLevel.Information)\r\n\t\t\t.build()\r\n\r\n\t\tlet startedPromise = null\r\n\t\tconst start: () => Promise = () => {\r\n\t\t\tif (!this.caseConnectionShouldBeOpen || !caseConnection || caseConnection.state !== HubConnectionState.Disconnected) {\r\n\t\t\t\treturn Promise.resolve()\r\n\t\t\t}\r\n\r\n\t\t\tstartedPromise = caseConnection.start()\r\n\t\t\t\t.then(() => {\r\n\t\t\t\t\tcaseConnection.invoke(\"joinCase\", caseId)\r\n\t\t\t\t})\r\n\t\t\t\t.catch(err => {\r\n\t\t\t\t\tconsole.error(\"HubCaseService - failed to connect with hub:\", err)\r\n\r\n\t\t\t\t\treturn new Promise((resolve, reject) =>\r\n\t\t\t\t\t\tsetTimeout(() => start()\r\n\t\t\t\t\t\t\t.then(resolve)\r\n\t\t\t\t\t\t\t.catch(reject),\r\n\t\t\t\t\t\t5000))\r\n\t\t\t\t})\r\n\t\t\treturn startedPromise\r\n\t\t}\r\n\t\tcaseConnection.onclose(() => {\r\n\t\t\tif (this.caseConnectionShouldBeOpen) {\r\n\t\t\t\tconsole.log(\"Reconnecting due to close\")\r\n\t\t\t\tstart()\r\n\t\t\t}\r\n\t\t})\r\n\r\n\t\tthis.caseConnectionShouldBeOpen = true\r\n\t\tawait start()\r\n\t\tthis.caseConnection = caseConnection\r\n\r\n\t\treturn this.caseConnection\r\n\t}\r\n\r\n\tpublic closeConnection () {\r\n\t\tif (this.caseConnection) {\r\n\t\t\tthis.caseConnectionShouldBeOpen = false\r\n\t\t\tconsole.log(\"Leaving event\")\r\n\r\n\t\t\tthis.caseConnection.stop()\r\n\t\t\tthis.caseConnection = null\r\n\t\t}\r\n\t}\r\n\r\n\tpublic async inProgressUpdate (caseId: string, fieldId: string, value: string) : Promise {\r\n\t\tif (this.caseConnection && this.caseConnection.state === HubConnectionState.Connected) {\r\n\t\t\tawait this.caseConnection.invoke(\"setInProgress\", caseId, fieldId, value)\r\n\t\t}\r\n\t}\r\n}\r\n","\r\nimport { Component, Vue, Watch, Prop, ProvideReactive, InjectReactive, Inject } from \"vue-property-decorator\"\r\nimport { namespace, Getter, Mutation, Action } from \"vuex-class\"\r\n\r\nimport { CaseDetails, TemplateDetails, User, CaseField, CaseUser } from \"@/types\"\r\n\r\nimport api from \"@/services/api\"\r\nimport eventsApi from \"@/services/api.event\"\r\n\r\nimport HubCaseService from \"@/services/hubCaseService\"\r\n\r\nimport router from \"@/router\"\r\nimport { state } from \"@/store\"\r\nimport { CaseEvents } from \"@/types/originatingEvents\"\r\nimport { IntegrationOutOption } from \"@/types/integration\"\r\n\r\nimport integrationApi from \"@/services/api_Integrations\"\r\nimport FileService from \"@/services/file-service\"\r\n\r\nconst caseStore = namespace(\"cases\")\r\n\r\n@Component({\r\n\tcomponents: {\r\n\t}\r\n})\r\nexport default class LayoutHost extends Vue {\r\n\t@ProvideReactive(\"hubCaseService\") hubCaseService: HubCaseService = new HubCaseService()\r\n\r\n\t@Prop()\r\n\tpublic currentCase!: CaseDetails | null\r\n\r\n\t@Prop()\r\n\tpublic me!: User\r\n\r\n\t@Prop()\r\n\tcurrentCaseTemplate!: TemplateDetails | null\r\n\r\n\tpublic newCaseTemplate: TemplateDetails | null = null\r\n\tpublic caseEvents: CaseEvents | null = null\r\n\r\n\tprivate caseIntegrationLinks: IntegrationOutOption[] = []\r\n\tprivate makingClosedChanges: boolean = false\r\n\r\n\tprivate get template (): TemplateDetails | null {\r\n\t\treturn this.newCaseTemplate ? this.newCaseTemplate : this.currentCaseTemplate\r\n\t}\r\n\r\n\tpublic get valid (): boolean {\r\n\t\treturn !!this.currentCase && !!this.currentCase.templateId && (this.titleTemplateEnabled ? true : (!!this.currentCase.title && this.currentCase.title.length > 0))\r\n\t}\r\n\r\n\t/**\r\n\t * Returns true if the user had Edit After Close Permissions\r\n\t */\r\n\tpublic get editAfterClosePermissions (): boolean {\r\n\t\tif (this.currentCaseTemplate && this.currentCaseTemplate.editClosedPermissions && this.me) {\r\n\t\t\treturn this.currentCaseTemplate.editClosedPermissions.length === 0 ||\r\n\t\t\t\t\tthis.currentCaseTemplate.editClosedPermissions.some((teamId: any) => this.me.teams.find((team: any) => team.id === teamId))\r\n\t\t}\r\n\t\treturn false\r\n\t}\r\n\r\n\t@Watch(\"valid\")\r\n\tvalidChanged (nowValid: boolean) {\r\n\t\tthis.$emit(\"validChanged\", nowValid)\r\n\t}\r\n\r\n\t@Watch(\"currentCase\")\r\n\tcurrentCaseChanged (newCase: CaseDetails) {\r\n\t\tthis.caseEvents = null\r\n\t\tthis.caseIntegrationLinks = []\r\n\r\n\t\tif (newCase) {\r\n\t\t\tthis.openCaseConnection()\r\n\r\n\t\t\tif (newCase.id) {\r\n\t\t\t\teventsApi.caseEventsGet(newCase.id).then(caseEvents => {\r\n\t\t\t\t\tthis.setEvents(caseEvents)\r\n\t\t\t\t})\r\n\r\n\t\t\t\tapi.caseIntegrationLinks(newCase.id!).then(integrationLinks => {\r\n\t\t\t\t\tthis.caseIntegrationLinks = integrationLinks\r\n\t\t\t\t})\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tthis.closeConnection()\r\n\t\t}\r\n\t}\r\n\r\n\tasync openCaseConnection () {\r\n\t\tconst caseDetails = this.currentCase\r\n\t\tif (caseDetails && caseDetails.id) {\r\n\t\t\tconst connection = await this.hubCaseService.openConnection(caseDetails.id!)\r\n\t\t\tif (connection) {\r\n\t\t\t\tconnection.on(\"caseUpdated\", (updatedCase: CaseDetails) => {\r\n\t\t\t\t\tthis.$emit(\"caseUpdated\", updatedCase)\r\n\t\t\t\t})\r\n\t\t\t\tconnection.on(\"viewingUsers\", (viewingUsers: CaseUser[]) => {\r\n\t\t\t\t\tthis.$emit(\"viewingUsersUpdated\", viewingUsers)\r\n\t\t\t\t})\r\n\t\t\t\tconnection.on(\"caseEvents\", (caseEvents: CaseEvents) => this.setEvents(caseEvents))\r\n\t\t\t\tconnection.on(\"caseNoLongerAvailable\", () => {\r\n\t\t\t\t\tthis.$emit(\"caseNoLongerAvailable\")\r\n\t\t\t\t})\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tsetEvents (caseEvents: CaseEvents) {\r\n\t\tif (!!caseEvents && !!caseEvents.originatingEvents) {\r\n\t\t\tcaseEvents.originatingEvents.forEach(event => {\r\n\t\t\t\tif (event.keyEntries) {\r\n\t\t\t\t\tevent.keyEntries.sortBy(\"created\")\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t}\r\n\r\n\t\tthis.caseEvents = caseEvents\r\n\t}\r\n\r\n\tasync closeConnection () {\r\n\t\tthis.hubCaseService.closeConnection()\r\n\t}\r\n\r\n\tmounted () {\r\n\t\tif (this.currentCase && !this.currentCase.id && this.currentCase.templateId) {\r\n\t\t\tthis.templateChanged(this.currentCase.templateId)\r\n\t\t} else if (this.currentCase && this.currentCase.id) {\r\n\t\t\tthis.currentCaseChanged(this.currentCase)\r\n\t\t}\r\n\t}\r\n\r\n\tbeforeDestroy () {\r\n\t\tthis.closeConnection()\r\n\t}\r\n\r\n\tprivate async templateChanged (templateId: string) {\r\n\t\tif (this.currentCase && !this.currentCase.id) {\r\n\t\t\tthis.newCaseTemplate = await api.templateDetails(templateId) as TemplateDetails\r\n\t\t\tthis.$emit(\"templateChanged\", this.newCaseTemplate)\r\n\r\n\t\t\tif (this.newCaseTemplate) {\r\n\t\t\t\tthis.$emit(\"permissionsChanged\", {\r\n\t\t\t\t\tcanCreateCase: this.newCaseTemplate.permissions!.case.edit.length === 0 ||\r\n\t\t\t\t\t\tthis.newCaseTemplate.permissions!.case.edit.some((e: any) => this.me.teams.some((mt: any) => mt.id === e.id)),\r\n\t\t\t\t\tcanCreateRecord: this.newCaseTemplate.permissions!.record.edit.length === 0 ||\r\n\t\t\t\t\t\tthis.newCaseTemplate.permissions!.record.edit.some((e: any) => this.me.teams.some((mt: any) => mt.id === e.id))\r\n\t\t\t\t})\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tget titleTemplateEnabled (): boolean {\r\n\t\treturn !this.newCaseTemplate || this.newCaseTemplate.enableTitleTemplate === undefined ? false : this.newCaseTemplate.enableTitleTemplate\r\n\t}\r\n\r\n\tget hasMap (): boolean {\r\n\t\treturn !!this.currentCase &&\r\n\t\t\t!!this.currentCase.fields &&\r\n\t\t\tObject.keys(this.currentCase.fields)\r\n\t\t\t\t.some((f: string) => this.currentCase!.fields[f].field.dataType === \"map-marker\" ||\r\n\t\t\t\t\tthis.currentCase!.fields[f].field.dataType === \"map-path\" ||\r\n\t\t\t\t\tthis.currentCase!.fields[f].field.dataType === \"map-region\")\r\n\t}\r\n\r\n\tget hasEditCasePermissions () {\r\n\t\tif (!this.currentCase) {\r\n\t\t\treturn false\r\n\t\t}\r\n\r\n\t\tif (!this.me) {\r\n\t\t\treturn false\r\n\t\t}\r\n\r\n\t\tvar casePermissions = this.currentCase.permissions\r\n\t\tif (casePermissions && casePermissions.edit && casePermissions.edit.length > 0) {\r\n\t\t\tif (!(this.me!.teams && casePermissions.edit.some(team => this.me!.teams.find((myTeam: any) => myTeam.id === team.id)))) {\r\n\t\t\t\treturn false\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn true\r\n\t}\r\n\r\n\tget canEditCurrentCase () {\r\n\t\tif (!this.hasEditCasePermissions) {\r\n\t\t\treturn false\r\n\t\t}\r\n\r\n\t\tif (this.currentCase!.isClosed) {\r\n\t\t\treturn this.editAfterClosePermissions && this.makingClosedChanges\r\n\t\t}\r\n\r\n\t\treturn true\r\n\t}\r\n\r\n\tget canCreateComments () {\r\n\t\tif (!this.hasEditCasePermissions) {\r\n\t\t\treturn false\r\n\t\t}\r\n\r\n\t\tif (this.currentCase!.isClosed) {\r\n\t\t\treturn this.editAfterClosePermissions\r\n\t\t}\r\n\r\n\t\treturn true\r\n\t}\r\n\r\n\tmakeClosedChanges () {\r\n\t\tthis.makingClosedChanges = true\r\n\t}\r\n\r\n\tcaseClose () {\r\n\t\tif (this.currentCase) {\r\n\t\t\tapi.close(this.currentCase.id!)\r\n\r\n\t\t\tif (this.template && this.template.cadenceDetails && this.currentCase.cadenceEnabled &&\r\n\t\t\t\tthis.template.cadenceDetails.cadencePeriod !== null) {\r\n\t\t\t\tvar timeZone = Intl.DateTimeFormat().resolvedOptions().timeZone\r\n\t\t\t\tapi.createCadenceSchedule(this.currentCase.id!, timeZone)\r\n\t\t\t}\r\n\r\n\t\t\tthis.$emit(\"caseClosed\")\r\n\t\t}\r\n\t}\r\n\r\n\tpublic async pushTo (outputOption: IntegrationOutOption) {\r\n\t\tif (!this.currentCase || !this.currentCase.id) return\r\n\r\n\t\tconst sendingToast = this.$bvToast.toast(\"Sending...\", {\r\n\t\t\ttitle: outputOption.integrationTitle,\r\n\t\t\tvariant: \"secondary\",\r\n\t\t\tsolid: true,\r\n\t\t\tautoHideDelay: 1000\r\n\t\t})\r\n\r\n\t\ttry {\r\n\t\t\tawait integrationApi.sendRecord(this.currentCase!.id!, outputOption.integrationKey, outputOption.integrationOut)\r\n\t\t\tthis.$bvToast.toast(`Sent to ${outputOption.integrationOutTitle}`, {\r\n\t\t\t\ttitle: outputOption.integrationTitle,\r\n\t\t\t\tvariant: \"success\",\r\n\t\t\t\tsolid: true,\r\n\t\t\t\tautoHideDelay: 3000,\r\n\t\t\t\tappendToast: true\r\n\t\t\t})\r\n\r\n\t\t\tapi.caseIntegrationLinks(this.currentCase.id!).then(integrationLinks => {\r\n\t\t\t\tthis.caseIntegrationLinks = integrationLinks\r\n\t\t\t})\r\n\t\t} catch {\r\n\t\t\tthis.$bvToast.toast(`Error sending to ${outputOption.integrationOutTitle}`, {\r\n\t\t\t\ttitle: outputOption.integrationTitle,\r\n\t\t\t\tvariant: \"danger\",\r\n\t\t\t\tsolid: true,\r\n\t\t\t\tautoHideDelay: 10000,\r\n\t\t\t\tappendToast: true\r\n\t\t\t})\r\n\t\t}\r\n\t}\r\n}\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--13-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LayoutHost.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--13-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LayoutHost.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./LayoutHost.vue?vue&type=template&id=f3c32626&\"\nimport script from \"./LayoutHost.vue?vue&type=script&lang=ts&\"\nexport * from \"./LayoutHost.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{attrs:{\"data-cy\":\"data-source-select\"}},[_c('v-select',{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.loading),expression:\"!loading\"}],class:{'vs__readonly': _vm.readonly},attrs:{\"append-to-body\":\"\",\"data-cy\":\"list-select\",\"label\":\"label\",\"clearable\":!_vm.readonly,\"multiple\":_vm.multiple,\"noDrop\":_vm.readonly,\"options\":_vm.filteredOptions,\"value\":_vm.selectedItem,\"calculate-position\":_vm.alignDropdownRight},on:{\"input\":_vm.valueChanged,\"search\":_vm.fetchOptions},scopedSlots:_vm._u([{key:\"selected-option\",fn:function(ref){\nvar label = ref.label;\nvar itemDeleted = ref.itemDeleted;\nreturn [_c('span',{class:{'text-danger text-small': itemDeleted}},[_vm._v(_vm._s(label))])]}},(_vm.isAllowAddingToDataSource)?{key:\"list-footer\",fn:function(){return [_c('li',{staticClass:\"vs__dropdown-option\"},[_c('a',{attrs:{\"data-cy\":\"create-new-data-source-item\",\"href\":\"javascript:void(0)\"},on:{\"click\":function($event){$event.stopPropagation();$event.preventDefault();return _vm.addNewDataSourceItem($event)}}},[_vm._v(\" Create new \"+_vm._s(_vm.dataSource ? _vm.dataSource.title : \"\")+\" \")])])]},proxy:true}:null],null,true)},[_c('template',{slot:\"no-options\"},[(_vm.loadAll || (_vm.filterField && _vm.filterField.value))?[_vm._v(\" No \"+_vm._s(this.dataSource ? this.dataSource.title : \"\")+\" found. \")]:[_c('span',{attrs:{\"data-cy\":\"type-to-search\"}},[_vm._v(\" Start typing to search for \"+_vm._s(this.dataSource ? this.dataSource.title : \"\")+\" \")])]],2)],2),(!_vm.isValid)?_c('small',{staticClass:\"text-danger\",attrs:{\"data-cy\":\"danger\"}},[_c('i',{staticClass:\"fas fa-exclamation-triangle m-l-10 m-r-5\"}),_vm._v(\" \"+_vm._s(_vm.multiple ? \"One or more values\" : \"This value\")+\" may not match with the value of \"+_vm._s(_vm.filterFieldTitle)+\" \")]):_vm._e(),(_vm.isAllowAddingToDataSource)?_c('data-modal',{ref:\"dataModal\",attrs:{\"data-cy\":\"data-modal\",\"modalSize\":\"xl\",\"columns\":_vm.dataModalColumns,\"canEdit\":true,\"title\":_vm.dataModalTitle},on:{\"save\":_vm.saveNewDataSourceItem}}):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\nimport { Component, Vue, Watch, Prop } from \"vue-property-decorator\"\r\nimport { namespace } from \"vuex-class\"\r\n\r\nimport vSelect from \"vue-select\"\r\n\r\nimport DataModal from \"@/components/Config/DataModal.vue\"\r\n\r\nimport { Field, CaseDetails, DataDefinitionWithFields, FieldInstance, DataSourceItem, CaseField } from \"@/types\"\r\n\r\nimport api from \"@/services/api\"\r\nimport { createPopper } from \"@popperjs/core\"\r\n\r\nconst caseStore = namespace(\"cases\")\r\n\r\nconst MAX_WIDTH: string = \"20vw\"\r\n\r\n@Component({\r\n\tcomponents: {\r\n\t\t\"v-select\": vSelect,\r\n\t\t\"data-modal\": () => import(\"@/components/Config/DataModal.vue\")\r\n\t}\r\n})\r\nexport default class DataSourceSelect extends Vue {\r\n\t$refs!: {\r\n\t\ttextarea: any;\r\n\t\tdataModal: DataModal;\r\n\t}\r\n\r\n\t@Prop()\r\n\tpublic currentCase!: CaseDetails;\r\n\r\n\t@Prop({ default: \"\" })\r\n\tpublic value!: any;\r\n\r\n\t@Prop({ type: String, default: \"\" })\r\n\tpublic placeholder!: string;\r\n\r\n\t@Prop({ type: Boolean, default: false })\r\n\tpublic readonly!: boolean;\r\n\r\n\t@Prop({ type: String, default: \"\" })\r\n\tpublic dataSourceId!: string;\r\n\r\n\t@Prop({ type: String, default: \"\" })\r\n\tpublic superCategoryValue!: string;\r\n\r\n\t@Prop({ type: String, default: \"\" })\r\n\tpublic dataSourceTitle!: string;\r\n\r\n\t@Prop({ type: Boolean, default: false })\r\n\tpublic multiple!: boolean;\r\n\r\n\t// Load all datasource items regardless of view permissions.\r\n\t@Prop({ type: Boolean, default: false })\r\n\tpublic ignorePermissions!: boolean;\r\n\r\n\t@Prop()\r\n\tpublic field!: Field;\r\n\r\n\tpublic dataSource: any = null;\r\n\tpublic dataSourceOptions: any[] = [];\r\n\tpublic selectedItem: any = null;\r\n\r\n\tpublic definition: DataDefinitionWithFields | null = null;\r\n\r\n\tpublic loading: boolean = true;\r\n\r\n\t/**\r\n\t * Field that filters the values in this data source\r\n\t */\r\n\tprivate get filterField (): CaseField | null {\r\n\t\tif (this.field && this.field.extensions && this.field.extensions.listFilter && this.field.extensions.listFilterValueField && this.currentCase) {\r\n\t\t\treturn this.currentCase.fields[this.field!.extensions!.listFilterValueField]\r\n\t\t} else {\r\n\t\t\treturn null\r\n\t\t}\r\n\t}\r\n\r\n\t@Watch(\"filterField.value\")\r\n\tpublic async filterFieldValueChanged (selectedValue: string | null) {\r\n\t\tif (this.dataSource.itemCount > 250 && this.field!.extensions!.listFilter && this.field!.extensions!.listFilterValueField) {\r\n\t\t\tthis.dataSourceOptions = selectedValue\r\n\t\t\t\t? (await api.dataSourceSearch(this.dataSourceId, this.field!.extensions!.listFilter, selectedValue)).data\r\n\t\t\t\t: []\r\n\t\t}\r\n\t}\r\n\r\n\tpublic get filteredOptions () {\r\n\t\tif (!this.filterField) {\r\n\t\t\treturn this.dataSourceOptions\r\n\t\t} else {\r\n\t\t\tif (!this.filterField.value || (Array.isArray(this.filterField.value) && this.filterField.value.length === 0)) {\r\n\t\t\t\treturn this.dataSourceOptions\r\n\t\t\t}\r\n\r\n\t\t\tconst value = this.filterField.value\r\n\r\n\t\t\tconst matchId = Array.isArray(value)\r\n\t\t\t\t? (id: string) => value.some(v => v.id === id)\r\n\t\t\t\t: (id: string) => value === id\r\n\r\n\t\t\t// Yes, double filter. This shouldn't be combined, as it will still include those without fields...\r\n\t\t\treturn this.dataSourceOptions\r\n\t\t\t\t.filter(item => !!item.fields)\r\n\t\t\t\t.filter(item => Array.isArray(item.fields[this.field.extensions!.listFilter])\r\n\t\t\t\t\t? item.fields[this.field.extensions!.listFilter].some((item: any) => matchId(item.id))\r\n\t\t\t\t\t: matchId(item.fields[this.field.extensions!.listFilter]))\r\n\t\t}\r\n\t}\r\n\r\n\tpublic get filterFieldTitle (): string {\r\n\t\tif (!this.field || !this.field.extensions ||\r\n\t\t\t!this.field.extensions.listFilter ||\r\n\t\t\t!this.field.extensions.listFilterValueField ||\r\n\t\t\t!this.currentCase) {\r\n\t\t\treturn \"\"\r\n\t\t}\r\n\r\n\t\tconst filterField = this.currentCase.fields[this.field.extensions.listFilterValueField]\r\n\t\tif (!filterField) return \"\"\r\n\r\n\t\treturn filterField.field.title\r\n\t}\r\n\r\n\tpublic get isValid (): boolean {\r\n\t\tif (!this.field || !this.field.extensions ||\r\n\t\t\t!this.field.extensions.listFilter ||\r\n\t\t\t!this.field.extensions.listFilterValueField ||\r\n\t\t\t!this.currentCase) {\r\n\t\t\treturn true\r\n\t\t}\r\n\r\n\t\tif (!this.selectedItem) {\r\n\t\t\treturn true\r\n\t\t}\r\n\r\n\t\tconst filterField = this.currentCase.fields[this.field.extensions.listFilterValueField]\r\n\t\tif (!filterField || !filterField.value || (Array.isArray(filterField.value) && filterField.value.length === 0)) {\r\n\t\t\treturn true\r\n\t\t}\r\n\r\n\t\tconst value = filterField.value\r\n\t\t// Check that a field's value matches the value of the filter field.\r\n\t\tconst fieldIsValid = Array.isArray(value)\r\n\t\t\t? (id: string) => value.some(v => v.id === id)\r\n\t\t\t: (id: string) => value === id\r\n\r\n\t\t// Check that the selected item's value matches the filter value\r\n\t\tconst itemIsValid = (item: DataSourceItem) => item.fields\r\n\t\t\t? Array.isArray(item.fields[this.field.extensions!.listFilter])\r\n\t\t\t\t? item.fields[this.field.extensions!.listFilter].some((item: any) => fieldIsValid(item.id))\r\n\t\t\t\t: fieldIsValid(item.fields[this.field.extensions!.listFilter])\r\n\t\t\t: true\r\n\r\n\t\tif (this.multiple) {\r\n\t\t\treturn this.selectedItem.every(itemIsValid)\r\n\t\t} else {\r\n\t\t\treturn itemIsValid(this.selectedItem)\r\n\t\t}\r\n\t}\r\n\r\n\tpublic get isAllowAddingToDataSource (): boolean {\r\n\t\tif (this.field && this.field.extensions && this.field.extensions.allowAddingToDataSource) {\r\n\t\t\treturn true\r\n\t\t}\r\n\r\n\t\treturn false\r\n\t}\r\n\r\n\tpublic get dataModalColumns () {\r\n\t\tif (!this.field) return []\r\n\r\n\t\tif (!this.definition || !this.definition.fields) {\r\n\t\t\treturn [{\r\n\t\t\t\tkey: \"label\",\r\n\t\t\t\tlabel: \"Text\",\r\n\t\t\t\tdataType: \"text\",\r\n\t\t\t\tdataSourceId: null,\r\n\t\t\t\terrors: (item: any) => item.label ? null : \"Please enter text\"\r\n\t\t\t}]\r\n\t\t}\r\n\r\n\t\tconst specialFields = this.dataSource.extraFields ? this.dataSource.extraFields : []\r\n\t\tconst fields = this.definition.fields.sortBy(\"order\")\r\n\t\t\t.map((field: FieldInstance) => {\r\n\t\t\t\treturn {\r\n\t\t\t\t\tkey: \"fields.\" + field.field.id,\r\n\t\t\t\t\tlabel: field.field.title,\r\n\t\t\t\t\tdataType: field.field.dataType,\r\n\t\t\t\t\tdataSourceId: field.field.dataSourceId,\r\n\t\t\t\t\textensions: field.field.extensions,\r\n\t\t\t\t\tsection: field.section,\r\n\t\t\t\t\terrors: (item: any) => !field.requiredRecord || (item.fields && item.fields[field.field.id!]) ? null : \"Please enter \" + field.field.title\r\n\t\t\t\t}\r\n\t\t\t})\r\n\r\n\t\treturn [\r\n\t\t\t...specialFields,\r\n\t\t\t...fields\r\n\t\t]\r\n\t}\r\n\r\n\tpublic get dataModalTitle (): string {\r\n\t\treturn this.dataSource ? this.dataSource.title : \"\"\r\n\t}\r\n\r\n\tprivate get loadAll () {\r\n\t\treturn this.dataSource ? this.dataSource.itemCount < 250 : true\r\n\t}\r\n\r\n\tpublic async mounted () {\r\n\t\tif (this.dataSourceId) {\r\n\t\t\tthis.dataSource = await api.dataSourceGet(this.dataSourceId)\r\n\r\n\t\t\tif (this.dataSource) {\r\n\t\t\t\tthis.definition = this.dataSource.definitionId\r\n\t\t\t\t\t? await api.definitionDetails(this.dataSource.definitionId)\r\n\t\t\t\t\t: null\r\n\t\t\t}\r\n\r\n\t\t\tif (this.loadAll) {\r\n\t\t\t\tthis.dataSourceOptions = await api.dataSourceGetAll(this.dataSource.id, this.ignorePermissions)\r\n\t\t\t} else if (this.filterField) {\r\n\t\t\t\tawait this.filterFieldValueChanged(this.filterField.value)\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (this.value) {\r\n\t\t\tif (this.multiple) {\r\n\t\t\t\tthis.selectedItem = []\r\n\t\t\t\tfor (var i = 0; i < this.value.length; i++) {\r\n\t\t\t\t\tconst value = this.value[i]\r\n\r\n\t\t\t\t\tconst selectedOption = this.dataSourceOptions.find(item => item.id === value.id)\r\n\t\t\t\t\tif (selectedOption) {\r\n\t\t\t\t\t\tthis.selectedItem.push(selectedOption)\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tthis.dataSourceOptions.push(value)\r\n\t\t\t\t\t\tthis.selectedItem.push(value)\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\tconst selectedOption = this.dataSourceOptions.find(item => item.id === this.value)\r\n\t\t\t\tif (selectedOption) {\r\n\t\t\t\t\tthis.selectedItem = selectedOption\r\n\t\t\t\t} else {\r\n\t\t\t\t\ttry {\r\n\t\t\t\t\t\tthis.selectedItem = await api.dataSourceGetItem(this.value)\r\n\t\t\t\t\t} catch (e) {\r\n\t\t\t\t\t\tconsole.error(e)\r\n\t\t\t\t\t\tif (this.currentCase && this.currentCase.fields && this.currentCase.fields[this.field.id!]) {\r\n\t\t\t\t\t\t\tthis.selectedItem = {\r\n\t\t\t\t\t\t\t\tlabel: this.currentCase.fields[this.field.id!].label\r\n\t\t\t\t\t\t\t\t\t? this.currentCase.fields[this.field.id!].label\r\n\t\t\t\t\t\t\t\t\t: \"[Item not found]\",\r\n\t\t\t\t\t\t\t\tvalue: this.currentCase.fields[this.field.id!].value,\r\n\t\t\t\t\t\t\t\titemDeleted: true\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\tthis.selectedItem = {\r\n\t\t\t\t\t\t\t\tlabel: \"[Deleted item]\",\r\n\t\t\t\t\t\t\t\tvalue: this.value,\r\n\t\t\t\t\t\t\t\titemDeleted: true\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tthis.loading = false\r\n\t\t\t\t\t\treturn\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (!this.dataSourceOptions.find(item => item.id === this.value)) {\r\n\t\t\t\t\t\tthis.dataSourceOptions.push(this.selectedItem)\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tthis.selectedItem = null\r\n\t\t}\r\n\r\n\t\tthis.loading = false\r\n\t}\r\n\r\n\t@Watch(\"value\")\r\n\tpublic async onValueChanged (newValue: any) {\r\n\t\tif (this.multiple) {\r\n\t\t\tif (!newValue) {\r\n\t\t\t\tthis.selectedItem = []\r\n\t\t\t} else {\r\n\t\t\t\tconst items = []\r\n\r\n\t\t\t\tfor (var i = 0; i < newValue.length; i++) {\r\n\t\t\t\t\tconst item = newValue[i]\r\n\t\t\t\t\tconst existingItem = this.selectedItem\r\n\t\t\t\t\t\t? this.selectedItem.find((existingItem: any) => existingItem.id === item.id)\r\n\t\t\t\t\t\t: null\r\n\r\n\t\t\t\t\tif (existingItem) {\r\n\t\t\t\t\t\titems.push(existingItem)\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tconst selectedOption = this.dataSourceOptions.find(option => option.id === item.id)\r\n\t\t\t\t\t\tif (selectedOption) {\r\n\t\t\t\t\t\t\titems.push(selectedOption)\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\tthis.dataSourceOptions.push(item)\r\n\t\t\t\t\t\t\tthis.selectedItem.push(item)\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tthis.selectedItem = items\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tif (!newValue) {\r\n\t\t\t\tthis.selectedItem = null\r\n\t\t\t}\r\n\r\n\t\t\tif (!this.loadAll) {\r\n\t\t\t\tthis.dataSourceOptions = []\r\n\t\t\t}\r\n\r\n\t\t\tif (!this.selectedItem || (this.selectedItem && newValue.id !== this.selectedItem.id)) {\r\n\t\t\t\tconst selectedOption = this.dataSourceOptions.find(item => item.id === this.value)\r\n\r\n\t\t\t\tif (selectedOption) {\r\n\t\t\t\t\tthis.selectedItem = selectedOption\r\n\t\t\t\t} else {\r\n\t\t\t\t\tif (this.value) {\r\n\t\t\t\t\t\ttry {\r\n\t\t\t\t\t\t\tthis.selectedItem = await api.dataSourceGetItem(this.value)\r\n\t\t\t\t\t\t} catch (e) {\r\n\t\t\t\t\t\t\tconsole.error(e)\r\n\t\t\t\t\t\t\tif (this.currentCase && this.currentCase.fields && this.currentCase.fields[this.field.id!]) {\r\n\t\t\t\t\t\t\t\tthis.selectedItem = {\r\n\t\t\t\t\t\t\t\t\tlabel: this.currentCase.fields[this.field.id!].label,\r\n\t\t\t\t\t\t\t\t\tvalue: this.currentCase.fields[this.field.id!].value\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\tthis.selectedItem = null\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\treturn\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tif (!this.dataSourceOptions.find(item => item.id === this.value)) {\r\n\t\t\t\t\t\t\tthis.dataSourceOptions.push(this.selectedItem)\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tpublic async fetchOptions (search: string, loading: (isLoading: boolean) => void) {\r\n\t\tif (this.loadAll) return\r\n\r\n\t\tif (search === \"\") {\r\n\t\t\tif (this.value) {\r\n\t\t\t\tthis.dataSourceOptions = []\r\n\t\t\t\tif (Array.isArray(this.selectedItem)) {\r\n\t\t\t\t\tthis.selectedItem.forEach(selectedItem => {\r\n\t\t\t\t\t\tif (!this.dataSourceOptions.find(item => item.id === selectedItem.id)) {\r\n\t\t\t\t\t\t\tthis.dataSourceOptions.push(selectedItem)\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t})\r\n\t\t\t\t} else {\r\n\t\t\t\t\tif (this.selectedItem && !this.dataSourceOptions.find(item => item.id === this.value)) {\r\n\t\t\t\t\t\tthis.dataSourceOptions.push(this.selectedItem)\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tloading(true)\r\n\t\t\tthis.dataSourceOptions = (await api.dataSourceSearch(this.dataSourceId, null, search)).data\r\n\t\t\tloading(false)\r\n\t\t}\r\n\t}\r\n\r\n\tpublic async valueChanged (newValue: any) {\r\n\t\tthis.selectedItem = newValue\r\n\r\n\t\tif (newValue) {\r\n\t\t\tif (Array.isArray(newValue)) {\r\n\t\t\t\tthis.$emit(\"input\", newValue.map(value => {\r\n\t\t\t\t\treturn {\r\n\t\t\t\t\t\tid: value.id,\r\n\t\t\t\t\t\tlabel: value.label\r\n\t\t\t\t\t}\r\n\t\t\t\t}))\r\n\t\t\t} else {\r\n\t\t\t\tthis.$emit(\"input\", newValue.id)\r\n\t\t\t\tthis.$emit(\"inputLabel\", newValue.label)\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tthis.$emit(\"input\", null)\r\n\t\t\tthis.$emit(\"inputLabel\", null)\r\n\t\t}\r\n\r\n\t\tthis.$emit(\"inputValue\", newValue)\r\n\t}\r\n\r\n\tpublic async addNewDataSourceItem () {\r\n\t\tif (!this.dataSource) {\r\n\t\t\treturn\r\n\t\t}\r\n\r\n\t\tthis.$refs.dataModal.open({\r\n\t\t\tdataSourceId: this.dataSource.id,\r\n\t\t\tfields: {}\r\n\t\t})\r\n\t}\r\n\r\n\tpublic async saveNewDataSourceItem (item: any) {\r\n\t\tif (!item) {\r\n\t\t\treturn\r\n\t\t}\r\n\r\n\t\tconst newItem = await api.dataSourceCreateItem(item)\r\n\r\n\t\tif (this.dataSource && this.loadAll) {\r\n\t\t\tthis.dataSourceOptions = await api.dataSourceGetAll(this.dataSource.id)\r\n\t\t}\r\n\r\n\t\tif (newItem && newItem.id) {\r\n\t\t\tif (this.multiple) {\r\n\t\t\t\tthis.valueChanged([...this.selectedItem ? this.selectedItem : [], newItem])\r\n\t\t\t} else {\r\n\t\t\t\tthis.valueChanged(newItem)\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tprivate alignDropdownRight (dropdownList: HTMLUListElement, component: any, { width }: { width: string }) {\r\n\t\tdropdownList.style.width = \"auto\"\r\n\t\tdropdownList.style.minWidth = width\r\n\t\tdropdownList.style.maxWidth = MAX_WIDTH\r\n\r\n\t\tconst popper = createPopper(component.$refs.toggle, dropdownList, { placement: \"bottom-end\"\t})\r\n\t\treturn () => popper.destroy()\r\n\t}\r\n}\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DataSourceSelect.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DataSourceSelect.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./DataSourceSelect.vue?vue&type=template&id=1f157296&scoped=true&\"\nimport script from \"./DataSourceSelect.vue?vue&type=script&lang=ts&\"\nexport * from \"./DataSourceSelect.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./DataSourceSelect.vue?vue&type=style&index=0&id=1f157296&prod&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"1f157296\",\n null\n \n)\n\nexport default component.exports","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PictureSelect.vue?vue&type=style&index=0&id=055b76d6&prod&scoped=true&lang=scss&\"","import { CaseColumn } from \"@/types/caseColumns\"\r\nimport { CaseUser } from \"./caseUser\"\r\nimport { DataType } from \"./dataType\"\r\nimport { Operator } from \"./insights/operators\"\r\n\r\ninterface UserColumn extends CaseColumn {\r\n}\r\n\r\nconst userColumns: UserColumn[] = [\r\n\t{\r\n\t\tkey: \"name\",\r\n\t\tlabel: \"Name\",\r\n\t\tdataType: \"text\",\r\n\t\tfieldDataType: DataType.string,\r\n\t\tdynamicField: false,\r\n\t\tsortable: true,\r\n\t\toperators: [Operator.Equals, Operator.NotEqual, Operator.Contains]\r\n\t},\r\n\t{\r\n\t\tkey: \"email\",\r\n\t\tlabel: \"Email\",\r\n\t\tdataType: \"text\",\r\n\t\tfieldDataType: DataType.string,\r\n\t\tdynamicField: false,\r\n\t\tsortable: true,\r\n\t\toperators: [Operator.Equals, Operator.NotEqual, Operator.Contains]\r\n\t}] as UserColumn[]\r\n\r\nexport { UserColumn, userColumns }\r\n","import { UserColumn, userColumns } from \"@/types/userColumns\"\r\nimport { Module } from \"vuex\"\r\nimport { BaseState } from \"./index\"\r\n\r\nimport { Team, Field, DataDefinition, Rule, DataType, dataTypeByFieldType, CalculationDataTypeValue, CalculationType, FieldType } from \"@/types\"\r\n\r\nimport api from \"@/services/api\"\r\nimport { operatorsByFieldType } from \"@/types/insights\"\r\nimport { CaseColumn, caseColumns } from \"@/types/caseColumns\"\r\n\r\nexport interface CasesSetupState {\r\n\tteams: Team[];\r\n\tfieldTypes: FieldType[];\r\n\tdataSources: any[] | null;\r\n\tdefinitions: DataDefinition[];\r\n\tfields: Field[];\r\n\tfieldLoadPromise: Promise | null\r\n\tuserFields: Field[];\r\n\trules: Rule[];\r\n\tadEnabled: boolean | null;\r\n}\r\n\r\nexport const state: CasesSetupState = {\r\n\tteams: [],\r\n\tfieldTypes: [\r\n\t\t{ id: \"text\", title: \"Text\", description: \"Single line of text\", type: DataType.string },\r\n\t\t{ id: \"text-area\", title: \"Text Area\", description: \"Block of text covering multiple lines\", type: DataType.string },\r\n\t\t{ id: \"number\", title: \"Number\", description: \"Numerical value\", type: DataType.number },\r\n\t\t{ id: \"dollar\", title: \"Dollar amount\", description: \"Dollar value\", type: DataType.number },\r\n\t\t{ id: \"date\", title: \"Date\", description: \"Enter a date\", type: DataType.dateTime },\r\n\t\t{ id: \"date-time\", title: \"Date and Time\", description: \"Enter a date and time\", type: DataType.dateTime },\r\n\t\t{ id: \"checkbox\", title: \"Checkbox\", description: \"Box with ability to toggle between checked and unchecked\", type: DataType.boolean },\r\n\t\t{ id: \"list\", title: \"Select from list\", description: \"Select single item from a list\", type: DataType.array },\r\n\t\t{ id: \"list-multiple\", title: \"Select multiple from list\", description: \"Select multiple items from a list\", type: DataType.arrayMultiple },\r\n\t\t{ id: \"list-data\", title: \"Data object\", description: \"Select multiple items from a data source, with ability to add adhoc items\", type: DataType.arrayData },\r\n\t\t{ id: \"calculated\", title: \"Calculated Value\", description: \"Calculate a value based on another field\", type: DataType.calculated },\r\n\t\t{ id: \"file-only\", title: \"File Upload\", description: \"Upload Files\", type: DataType.none },\r\n\t\t{ id: \"map-marker\", title: \"Map Markers\", description: \"Single points on map\", type: DataType.mapPoint },\r\n\t\t{ id: \"map-path\", title: \"Map Path\", description: \"Path between points on map\", type: DataType.mapPoint },\r\n\t\t{ id: \"map-region\", title: \"Map Region\", description: \"Filled region on map\", type: DataType.mapPoint },\r\n\t\t{ id: \"user-role\", title: \"User Role\", description: \"User Role\", type: DataType.userRole },\r\n\t\t{ id: \"external-link\", title: \"External Link\", description: \"A clickable Link that opens up in a new tab\", type: DataType.string },\r\n\t\t{ id: \"case-number\", title: \"Case Number\", description: \"Unique Case Number\", type: DataType.string },\r\n\t\t{ id: \"icon-upload\", title: \"Icon Upload\", description: \"A field for uploading icon files, entering an icon URL or providing a Font Awesome icon\", type: DataType.string }\r\n\t],\r\n\tdataSources: null,\r\n\tdefinitions: [],\r\n\tfields: [],\r\n\tfieldLoadPromise: null,\r\n\tuserFields: [],\r\n\trules: [],\r\n\tadEnabled: null\r\n}\r\n\r\nexport const setup: Module = {\r\n\tnamespaced: true,\r\n\tstate,\r\n\tgetters: {\r\n\t\tgetTeams: state => state.teams,\r\n\t\tgetFieldTypes: state => state.fieldTypes,\r\n\t\tgetFieldTypesById: state => state.fieldTypes.toDictionary(\"id\"),\r\n\t\tgetDataSources: state => state.dataSources,\r\n\t\tgetDataSourcesById: state => state.dataSources ? state.dataSources.toDictionary(\"id\") : {},\r\n\t\tgetDefinitions: state => state.definitions,\r\n\t\tgetDefinitionsById: state => state.definitions ? state.definitions.toDictionary(\"id\") : {},\r\n\t\tgetAllFields: state => [\r\n\t\t\t...caseColumns,\r\n\t\t\t...(state.fields\r\n\t\t\t\t? state.fields.map((f):CaseColumn => {\r\n\t\t\t\t\treturn {\r\n\t\t\t\t\t\tlabel: f.title,\r\n\t\t\t\t\t\tdescription: f.description,\r\n\t\t\t\t\t\tkey: \"fields.\" + f.id,\r\n\t\t\t\t\t\tfieldId: f.id,\r\n\t\t\t\t\t\tdataType: f.dataType!,\r\n\t\t\t\t\t\tdefinitionId: f.definitionId,\r\n\t\t\t\t\t\tdataSourceId: f.dataSourceId,\r\n\t\t\t\t\t\tdynamicField: true,\r\n\t\t\t\t\t\tfieldExtensions: f.extensions,\r\n\t\t\t\t\t\tfieldDataType: f.dataType === \"calculated\"\r\n\t\t\t\t\t\t\t? CalculationDataTypeValue[f.extensions!.calculationType as CalculationType]\r\n\t\t\t\t\t\t\t: dataTypeByFieldType[f.dataType!]\r\n\t\t\t\t\t\t\t\t? dataTypeByFieldType[f.dataType!]\r\n\t\t\t\t\t\t\t\t: undefined\r\n\t\t\t\t\t}\r\n\t\t\t\t})\r\n\t\t\t\t: [])\r\n\t\t],\r\n\t\tgetFilterableFields: (state, getters, rootState) => { // all the filtering and tweaking that was done to fields VueSetup and Insights has been moved here in one place\r\n\t\t\tconst userIsAdmin = rootState.me ? rootState.me.isAdmin : false\r\n\r\n\t\t\tconst fields = getters.getAllFields.filter((f: CaseColumn) => (!f.adminOnly || userIsAdmin) && (!f.dynamicField || operatorsByFieldType[f.dataType!]))\r\n\r\n\t\t\t// Do not display the calculated field type - CalculationType.DaysUntilOrFromToday\r\n\t\t\tfields.forEach((item: CaseColumn, index: number, array: any) => {\r\n\t\t\t\tif (item.label === \"days until or from today\") {\r\n\t\t\t\t\tarray.splice(index, 1)\r\n\t\t\t\t}\r\n\t\t\t})\r\n\r\n\t\t\treturn fields\r\n\t\t},\r\n\t\tgetAllUserFields: state => [\r\n\t\t\t...userColumns,\r\n\t\t\t...(state.userFields\r\n\t\t\t\t? state.userFields.map((f):UserColumn => {\r\n\t\t\t\t\treturn {\r\n\t\t\t\t\t\tlabel: f.title,\r\n\t\t\t\t\t\tdescription: f.description,\r\n\t\t\t\t\t\tkey: \"fields.\" + f.id,\r\n\t\t\t\t\t\tfieldId: f.id,\r\n\t\t\t\t\t\tdataType: f.dataType!,\r\n\t\t\t\t\t\tdefinitionId: f.definitionId,\r\n\t\t\t\t\t\tdataSourceId: f.dataSourceId,\r\n\t\t\t\t\t\tdynamicField: true,\r\n\t\t\t\t\t\tfieldExtensions: f.extensions,\r\n\t\t\t\t\t\tfieldDataType: dataTypeByFieldType[f.dataType!]\r\n\t\t\t\t\t\t\t? dataTypeByFieldType[f.dataType!]\r\n\t\t\t\t\t\t\t: undefined\r\n\t\t\t\t\t}\r\n\t\t\t\t})\r\n\t\t\t\t: [])\r\n\t\t],\r\n\t\tgetFilterableUserFields: (state, getters) => { // all the filtering and tweaking that was done to fields VueSetup and Insights has been moved here in one place\r\n\t\t\tconst fields = getters.getAllUserFields.filter((f: UserColumn) => !f.dynamicField || operatorsByFieldType[f.dataType!])\r\n\r\n\t\t\t// Do not display the calculated field type - CalculationType.DaysUntilOrFromToday\r\n\t\t\tfields.forEach((item: UserColumn, index: number, array: any) => {\r\n\t\t\t\tif (item.label === \"days until or from today\") {\r\n\t\t\t\t\tarray.splice(index, 1)\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t\treturn fields\r\n\t\t}\r\n\t},\r\n\tmutations: {\r\n\t\tsetTeams: (state, teams: Team[]) => state.teams = teams,\r\n\t\tsetDataSources: (state, dataSources: any[]) => state.dataSources = dataSources,\r\n\t\tsetDefinitions: (state, definitions: DataDefinition[]) => state.definitions = definitions,\r\n\t\tsetFields: (state, fields: Field[]) => state.fields = fields,\r\n\t\tsetFieldLoadPromise: (state, fieldLoadPromise: Promise) => state.fieldLoadPromise = fieldLoadPromise,\r\n\t\tsetUserFields: (state, userFields: Field[]) => state.userFields = userFields,\r\n\t\tsetRules: (state, rules: Rule[]) => state.rules = rules,\r\n\t\taddDataSource: (state, dataSource: any) => {\r\n\t\t\tif (state.dataSources) {\r\n\t\t\t\tstate.dataSources.push(dataSource)\r\n\t\t\t} else {\r\n\t\t\t\tstate.dataSources = [dataSource]\r\n\t\t\t}\r\n\t\t},\r\n\t\tsetAdEnabled: (state, enabled: boolean) => state.adEnabled = enabled,\r\n\t\taddField: (state, field: Field) => {\r\n\t\t\tif (state.fields && !state.fields.some(f => f.id === field.id)) {\r\n\t\t\t\tstate.fields.push(field)\r\n\t\t\t}\r\n\t\t}\r\n\t},\r\n\tactions: {\r\n\t\tasync loadTeams ({ commit }) {\r\n\t\t\tcommit(\"setTeams\", await api.teamsGet())\r\n\t\t},\r\n\t\tasync loadDefinitions ({ commit }) {\r\n\t\t\tcommit(\"setDefinitions\", await api.definitions())\r\n\t\t},\r\n\t\tasync loadDataSources ({ commit }) {\r\n\t\t\tcommit(\"setDataSources\", await api.dataSources())\r\n\t\t},\r\n\t\tasync loadFields ({ commit, dispatch, state, getters }) {\r\n\t\t\tconst fields = (await api.fields()) || []\r\n\r\n\t\t\tfields.forEach((field: Field) => {\r\n\t\t\t\tfield.dataTypeTitle = getters.getFieldTypesById[field.dataType!] ? getters.getFieldTypesById[field.dataType!].title : \"\"\r\n\r\n\t\t\t\tif (field.dataSourceId && getters.getDataSourcesById[field.dataSourceId]) {\r\n\t\t\t\t\tfield.dataSourceTitle = getters.getDataSourcesById[field.dataSourceId].title\r\n\t\t\t\t}\r\n\t\t\t\tif (field.definitionId && getters.getDefinitionsById[field.definitionId]) {\r\n\t\t\t\t\tfield.definitionTitle = getters.getDefinitionsById[field.definitionId].title\r\n\t\t\t\t}\r\n\t\t\t})\r\n\r\n\t\t\tconst userDefinition = (await api.userSpecialDefinition())\r\n\t\t\tconst userFieldIds = userDefinition ? userDefinition.fields.map(c => c.field.id!) : []\r\n\t\t\tconst userFields = fields.filter(c => userFieldIds.includes(c.id!))\r\n\r\n\t\t\tcommit(\"setFields\", fields)\r\n\t\t\tcommit(\"setUserFields\", userFields)\r\n\r\n\t\t\treturn fields\r\n\t\t},\r\n\t\tasync loadFieldsIfUnloaded ({ dispatch, state, commit }) {\r\n\t\t\tif (state.fields.length === 0) {\r\n\t\t\t\t// Ensure request for fields is only made once\r\n\t\t\t\tif (state.fieldLoadPromise) {\r\n\t\t\t\t\tawait state.fieldLoadPromise\r\n\t\t\t\t} else {\r\n\t\t\t\t\tconst fieldLoadPromise = dispatch(\"loadFields\")\r\n\t\t\t\t\tcommit(\"setFieldLoadPromise\", fieldLoadPromise)\r\n\t\t\t\t\tawait fieldLoadPromise\r\n\t\t\t\t\tcommit(\"setFieldLoadPromise\", null)\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\treturn state.fields\r\n\t\t},\r\n\t\tasync loadRules ({ commit }) {\r\n\t\t\tconst rules = await api.rules()\r\n\t\t\tcommit(\"setRules\", rules)\r\n\r\n\t\t\treturn rules\r\n\t\t},\r\n\t\tasync definitionGetFromSource ({ getters, commit }, dataSourceId: string) {\r\n\t\t\tconst storeDataSources = getters.getDataSources || []\r\n\t\t\tlet source = storeDataSources.find((d: any) => d.id === dataSourceId)\r\n\t\t\tif (!source) {\r\n\t\t\t\tsource = await api.dataSourceGet(dataSourceId)\r\n\t\t\t\tcommit(\"addDataSource\", source)\r\n\t\t\t}\r\n\r\n\t\t\treturn api.definitionDetails(source.definitionId)\r\n\t\t},\r\n\t\tasync getADEnabled ({ state, commit }) {\r\n\t\t\tif (state.adEnabled !== null) {\r\n\t\t\t\treturn state.adEnabled\r\n\t\t\t}\r\n\r\n\t\t\tconst adEnabled = await api.adEnabled()\r\n\t\t\tif (adEnabled !== undefined) {\r\n\t\t\t\tcommit(\"setAdEnabled\", adEnabled)\r\n\t\t\t}\r\n\r\n\t\t\treturn adEnabled\r\n\t\t}\r\n\t}\r\n}\r\n","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SearchFilter.vue?vue&type=style&index=0&id=76df99a0&prod&lang=scss&scoped=true&\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NavHeader.vue?vue&type=style&index=0&id=2181e0f9&prod&scoped=true&lang=scss&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DataForm.vue?vue&type=style&index=0&id=29ed26dd&prod&lang=scss&scoped=true&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ViewFolders.vue?vue&type=style&index=0&id=f75f12a6&prod&lang=scss&scoped=true&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"form-group\"},[_c('div',{staticClass:\"input-group\"},[(_vm.prepend)?_c('div',{staticClass:\"input-group-prepend\"},[_c('span',{staticClass:\"input-group-text\"},[_vm._v(_vm._s(_vm.prepend))])]):_vm._e(),_c('input',{ref:\"input\",staticClass:\"form-control\",attrs:{\"type\":\"number\",\"readonly\":_vm.readonly,\"step\":\"any\"},domProps:{\"value\":_vm.numberDisplayValue},on:{\"focus\":function($event){return _vm.$emit('focus', $event.target.value)},\"blur\":function($event){return _vm.blurValue($event.target.value)},\"input\":function($event){return _vm.setValue($event.target.value)}}})])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { Component, Vue, Watch, Prop } from \"vue-property-decorator\"\r\n\r\nimport api from \"@/services/api\"\r\n\r\n@Component({\r\n\tcomponents: {\r\n\t}\r\n})\r\nexport default class Numeric extends Vue {\r\n\t@Prop({ default: \"\" })\r\n\tpublic value!: string | number;\r\n\r\n\t@Prop({ type: Boolean, default: false })\r\n\tpublic readonly!: boolean;\r\n\r\n\t@Prop({ type: Number, default: 2 })\r\n\tpublic precision!: number;\r\n\r\n\t@Prop({ type: Number, default: null })\r\n\tpublic displayDecimals!: number | null;\r\n\r\n\t@Prop({ default: \"\" })\r\n\tpublic prepend!: string;\r\n\r\n\tpublic numberValue: string | null = null;\r\n\r\n\tpublic mounted () {\r\n\t\tthis.setValue(this.value)\r\n\r\n\t\tif (this.numberValue != null && this.displayDecimals) {\r\n\t\t\tconst numberSplit = this.numberValue.toString().split(\".\")\r\n\t\t\tif (numberSplit.length < 2) {\r\n\t\t\t\tthis.numberValue += \".00\"\r\n\t\t\t} else {\r\n\t\t\t\tthis.numberValue = numberSplit[0] + \".\" + numberSplit[1].padEnd(2, \"0\")\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tget numberDisplayValue (): string {\r\n\t\tif (this.numberValue == null) {\r\n\t\t\treturn \"\"\r\n\t\t}\r\n\r\n\t\treturn this.numberValue\r\n\t}\r\n\r\n\t@Watch(\"value\")\r\n\tonValueChanged (newValue: any) {\r\n\t\tif (newValue === \"-\" || newValue === \"\" || newValue === null || isNaN(parseFloat(newValue))) {\r\n\t\t\t(this.$refs.input as HTMLInputElement).value = \"\"\r\n\t\t} else {\r\n\t\t\tthis.setValue(newValue)\r\n\t\t}\r\n\t}\r\n\r\n\tsetValue (newValue: any) {\r\n\t\tif (newValue === \"-\" || newValue === \"\" || newValue === null || newValue === undefined) {\r\n\t\t\tthis.$emit(\"input\", null)\r\n\t\t}\r\n\r\n\t\tif (newValue) {\r\n\t\t\tif (typeof (newValue) !== \"number\") {\r\n\t\t\t\tnewValue = parseFloat(newValue)\r\n\t\t\t}\r\n\r\n\t\t\tif (isNaN(newValue)) {\r\n\t\t\t\tnewValue = this.numberValue\r\n\t\t\t} else {\r\n\t\t\t\tnewValue = parseFloat(newValue.toFixed(this.precision))\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tconst oldValue = this.numberValue\r\n\t\tif (oldValue !== newValue) {\r\n\t\t\tnewValue = newValue === \"\" ? null : newValue\r\n\t\t\tthis.numberValue = newValue\r\n\t\t\tthis.$emit(\"input\", newValue)\r\n\t\t}\r\n\t}\r\n\r\n\tblurValue (newValue: string | number) {\r\n\t\tif (typeof (newValue) !== \"number\") {\r\n\t\t\tnewValue = parseFloat(newValue)\r\n\t\t}\r\n\r\n\t\tif (isNaN(newValue)) {\r\n\t\t\tthis.$emit(\"blur\", null)\r\n\t\t} else {\r\n\t\t\tif (this.displayDecimals) {\r\n\t\t\t\tthis.numberValue = newValue.toFixed(2)\r\n\t\t\t}\r\n\r\n\t\t\tthis.$emit(\"blur\", newValue)\r\n\t\t}\r\n\t}\r\n}\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Numeric.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Numeric.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Numeric.vue?vue&type=template&id=55096a04&scoped=true&\"\nimport script from \"./Numeric.vue?vue&type=script&lang=ts&\"\nexport * from \"./Numeric.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"55096a04\",\n null\n \n)\n\nexport default component.exports","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Signup.vue?vue&type=style&index=0&id=8e5205f8&prod&scoped=true&lang=scss&\"","import { LoginResult, LoginResultTenant } from \"@/types\"\r\nimport { LoginDomain, TenantDomain } from \"@/types/domain\"\r\nimport { TenantSupport } from \"@/types/tenant\"\r\nimport TenantInfo from \"@/types/tenantInfo\"\r\nimport { SettingValuePair } from \"@/types/tenantSetting\"\r\n\r\nimport api from \"./api\"\r\n\r\nclass ApiTenant {\r\n\tprivate get axios () { return api.getAxios() }\r\n\r\n\tpublic async getTenantSettings (): Promise {\r\n\t\treturn (await this.axios.get(\"/tenant/settings\")).data\r\n\t}\r\n\r\n\tpublic async saveTenantSettings (settings: { [key: string]: any }): Promise {\r\n\t\tawait this.axios.put(\"/tenant/settings\", settings)\r\n\t}\r\n\r\n\tpublic async domainInUse (domainPath: string): Promise {\r\n\t\treturn (await this.axios.get(`/tenant/domaininuse/${domainPath}`)).data\r\n\t}\r\n\r\n\tpublic async getDomain (domainPath: string): Promise {\r\n\t\treturn (await this.axios.get(`/tenant/domain/${domainPath}`)).data\r\n\t}\r\n\r\n\tpublic async getTenantDomain (): Promise {\r\n\t\treturn (await this.axios.get(\"/tenant/domain\")).data\r\n\t}\r\n\r\n\tpublic async setTenantDomain (domain: TenantDomain | null): Promise {\r\n\t\tawait this.axios.put(\"/tenant/domain\", domain)\r\n\t}\r\n\r\n\tpublic async uploadDomainFile (logo: File) {\r\n\t\tawait api.uploadFile(`${process.env.VUE_APP_HTTP_API_URI}files/tenantImage/0`, logo)\r\n\t}\r\n\r\n\tpublic async clearDomainFile () {\r\n\t\tawait this.axios.post(\"/files/tenantImageClear/0\")\r\n\t}\r\n\r\n\tpublic async selectTenant (tenantId: string, userId: string): Promise {\r\n\t\treturn (await this.axios.post(\"/login/tenant\", { tenantId, userId })).data\r\n\t}\r\n\r\n\tpublic async selectTenantsList (): Promise {\r\n\t\treturn (await this.axios.get(\"/login/tenantsList\")).data\r\n\t}\r\n\r\n\tpublic async openSupportAccess (timeSpan: { value: string | null }): Promise {\r\n\t\tawait this.axios.post(\"/tenant/enableSupportAccess\", timeSpan)\r\n\t}\r\n\r\n\tpublic async tenantAccess (): Promise {\r\n\t\treturn (await this.axios.get(\"/tenant/supportAccess\")).data\r\n\t}\r\n\r\n\tpublic async tenantInfoGet (includeAll: boolean | null = null): Promise {\r\n\t\treturn (await this.axios.get(\"/tenant/info\", {\r\n\t\t\tparams: {\r\n\t\t\t\tincludeAll\r\n\t\t\t}\r\n\t\t})).data\r\n\t}\r\n\r\n\tpublic async tenantInfoSet (info: TenantInfo[]): Promise {\r\n\t\treturn (await this.axios.put(\"/tenant/info\", info)).data\r\n\t}\r\n}\r\n\r\nconst apiTenant = new ApiTenant()\r\nexport default apiTenant\r\n","import { DataType } from \"@/types\"\r\n\r\nexport enum Operator {\r\n\tEquals,\r\n\tContains,\r\n\tGreaterThan,\r\n\tLessThan,\r\n\tIsSet,\r\n\tNotSet,\r\n\tAny,\r\n\tWithin,\r\n\tInTeam,\r\n\tNotEqual,\r\n\tNotAny,\r\n\tOnDay,\r\n\tDateRange\r\n}\r\n\r\nexport interface OperatorLabel {\r\n\toperator: Operator,\r\n\tlabel: string\r\n}\r\n\r\nconst operatorLabels: OperatorLabel[] = [\r\n\t{\r\n\t\toperator: Operator.Equals,\r\n\t\tlabel: \"Equals\"\r\n\t},\r\n\t{\r\n\t\toperator: Operator.Contains,\r\n\t\tlabel: \"Contains\"\r\n\t},\r\n\t{\r\n\t\toperator: Operator.GreaterThan,\r\n\t\tlabel: \"Greater than\"\r\n\t},\r\n\t{\r\n\t\toperator: Operator.LessThan,\r\n\t\tlabel: \"Less than\"\r\n\t},\r\n\t{\r\n\t\toperator: Operator.IsSet,\r\n\t\tlabel: \"Is set\"\r\n\t},\r\n\t{\r\n\t\toperator: Operator.NotSet,\r\n\t\tlabel: \"Not set\"\r\n\t},\r\n\t{\r\n\t\toperator: Operator.Within,\r\n\t\tlabel: \"Within\"\r\n\t},\r\n\t{\r\n\t\toperator: Operator.InTeam,\r\n\t\tlabel: \"In Team\"\r\n\t},\r\n\t{\r\n\t\toperator: Operator.NotEqual,\r\n\t\tlabel: \"Not Equal\"\r\n\t},\r\n\t{\r\n\t\toperator: Operator.OnDay,\r\n\t\tlabel: \"On Day\"\r\n\t},\r\n\t{\r\n\t\toperator: Operator.DateRange,\r\n\t\tlabel: \"Date Range\"\r\n\t}\r\n]\r\n\r\nconst operatorsByFieldType: any = {\r\n\ttext: [Operator.Equals, Operator.NotEqual, Operator.Contains, Operator.IsSet, Operator.NotSet],\r\n\t\"text-area\": [Operator.Equals, Operator.NotEqual, Operator.Contains, Operator.IsSet, Operator.NotSet],\r\n\tnumber: [Operator.Equals, Operator.NotEqual, Operator.GreaterThan, Operator.LessThan, Operator.IsSet, Operator.NotSet],\r\n\tdollar: [Operator.Equals, Operator.NotEqual, Operator.GreaterThan, Operator.LessThan, Operator.IsSet, Operator.NotSet],\r\n\tdate: [Operator.Equals, Operator.NotEqual, Operator.GreaterThan, Operator.LessThan, Operator.IsSet, Operator.NotSet, Operator.DateRange],\r\n\t\"date-time\": [Operator.OnDay, Operator.NotEqual, Operator.GreaterThan, Operator.LessThan, Operator.IsSet, Operator.NotSet, Operator.DateRange],\r\n\tcheckbox: [Operator.IsSet, Operator.NotSet],\r\n\tlist: [Operator.Equals, Operator.NotEqual, Operator.IsSet, Operator.NotSet],\r\n\t\"list-multiple\": [Operator.Contains, Operator.IsSet, Operator.NotSet],\r\n\t\"list-data\": [Operator.Contains, Operator.IsSet, Operator.NotSet],\r\n\t\"calculated\": [Operator.Equals, Operator.NotEqual, Operator.GreaterThan, Operator.LessThan, Operator.IsSet, Operator.NotSet],\r\n\t\"map-marker\": [Operator.IsSet, Operator.NotSet, Operator.Within],\r\n\t\"map-path\": [Operator.IsSet, Operator.NotSet],\r\n\t\"map-region\": [Operator.IsSet, Operator.NotSet],\r\n\t\"user-role\": [Operator.Contains, Operator.IsSet, Operator.NotSet, Operator.Equals, Operator.NotEqual, Operator.GreaterThan, Operator.LessThan, Operator.InTeam],\r\n\t\"time-spent\": [Operator.Equals, Operator.GreaterThan, Operator.LessThan],\r\n\t\"subrole\": [Operator.Contains, Operator.IsSet, Operator.NotSet],\r\n\t\"external-link\": [Operator.Equals, Operator.NotEqual, Operator.Contains, Operator.IsSet, Operator.NotSet],\r\n\t\"icon-upload\": [Operator.Contains, Operator.IsSet, Operator.NotSet]\r\n}\r\n\r\nconst isNotNull = (ruleValue: any, fieldValue: any) => fieldValue !== null && fieldValue !== undefined\r\nconst isNull = (ruleValue: any, fieldValue: any) => fieldValue === null || fieldValue === undefined\r\n\r\nconst startOfDay = (date: Date) => new Date(date.getTime() - date.getTime() % 86400000)\r\nconst addADay = (date: Date) => new Date(date.getTime() + (60 * 60 * 24 * 1000))\r\n\r\nconst getTimeFieldValue: (searchValueLabel: string, fieldValue: { totals: { fieldValue: string, hoursSpent: number }[] } | null) => number =\r\n\t(searchValueLabel: string, fieldValue: { totals: { fieldValue: string, hoursSpent: number }[] } | null) => {\r\n\t\treturn fieldValue\r\n\t\t\t? fieldValue.totals.findAndGet(t => t.fieldValue === searchValueLabel, t => t.hoursSpent, 0)\r\n\t\t\t: 0\r\n\t}\r\n\r\ntype dataTypeOperations = {\r\n\t[key in Operator]?: (ruleValue: any, fieldValue: any) => boolean\r\n}\r\n\r\nexport const defaultFieldOperator: { [key in DataType]?: Operator} = {\r\n\t[DataType.string]: Operator.Equals,\r\n\t[DataType.number]: Operator.Equals,\r\n\t[DataType.array]: Operator.Equals,\r\n\t[DataType.arrayMultiple]: Operator.Contains,\r\n\t[DataType.arrayData]: Operator.Contains,\r\n\t[DataType.boolean]: Operator.Equals,\r\n\t[DataType.mapPoint]: Operator.Within,\r\n\t[DataType.dateTime]: Operator.Equals,\r\n\t[DataType.calculated]: Operator.Equals,\r\n\t[DataType.userRole]: Operator.Contains\r\n}\r\n\r\nexport const dataTypeTests: { [key in DataType]?: dataTypeOperations } = {\r\n\t[DataType.string]: {\r\n\t\t[Operator.IsSet]: isNotNull,\r\n\t\t[Operator.NotSet]: isNull,\r\n\t\t[Operator.Equals]: (ruleValue: string, fieldValue: string) => (!!fieldValue && fieldValue.toLowerCase() === ruleValue.toLowerCase()),\r\n\t\t[Operator.NotEqual]: (ruleValue: string, fieldValue: string) => !(!!fieldValue && fieldValue.toLowerCase() === ruleValue.toLowerCase()),\r\n\t\t[Operator.Contains]: (ruleValue: string, fieldValue: string) => !!fieldValue && fieldValue.toLowerCase().includes(ruleValue.toLowerCase())\r\n\t},\r\n\t[DataType.number]: {\r\n\t\t[Operator.IsSet]: isNotNull,\r\n\t\t[Operator.NotSet]: isNull,\r\n\t\t// eslint-disable-next-line eqeqeq\r\n\t\t[Operator.Equals]: (ruleValue: number, fieldValue: number) => fieldValue == ruleValue,\r\n\t\t[Operator.NotEqual]: (ruleValue: number, fieldValue: number) => fieldValue !== ruleValue,\r\n\t\t[Operator.GreaterThan]: (ruleValue: number, fieldValue: number) => fieldValue > ruleValue,\r\n\t\t[Operator.LessThan]: (ruleValue: number, fieldValue: number) => fieldValue < ruleValue\r\n\t},\r\n\t[DataType.dateTime]: {\r\n\t\t[Operator.IsSet]: isNotNull,\r\n\t\t[Operator.NotSet]: isNull,\r\n\t\t// eslint-disable-next-line eqeqeq\r\n\t\t[Operator.Equals]: (ruleValue: any, fieldValue: any) => {\r\n\t\t\tconst range = ruleValue.start && ruleValue.end\r\n\t\t\t\t? ruleValue\r\n\t\t\t\t: {\r\n\t\t\t\t\tstart: new Date(ruleValue),\r\n\t\t\t\t\tend: addADay(new Date(ruleValue))\r\n\t\t\t\t}\r\n\r\n\t\t\tconst fieldStart = new Date(fieldValue)\r\n\t\t\treturn fieldValue && fieldStart >= range.start && fieldStart < range.end\r\n\t\t},\r\n\t\t// eslint-disable-next-line eqeqeq\r\n\t\t[Operator.NotEqual]: (ruleValue: any, fieldValue: any) => {\r\n\t\t\tconst range = ruleValue.start && ruleValue.end\r\n\t\t\t\t? ruleValue\r\n\t\t\t\t: {\r\n\t\t\t\t\tstart: new Date(ruleValue),\r\n\t\t\t\t\tend: addADay(new Date(ruleValue))\r\n\t\t\t\t}\r\n\r\n\t\t\tconst fieldStart = new Date(fieldValue)\r\n\t\t\treturn !(fieldValue && fieldStart >= range.start && fieldStart < range.end)\r\n\t\t},\r\n\t\t// eslint-disable-next-line eqeqeq\r\n\t\t[Operator.OnDay]: (ruleValue: any, fieldValue: any) => {\r\n\t\t\tconst range = ruleValue.start && ruleValue.end\r\n\t\t\t\t? ruleValue\r\n\t\t\t\t: {\r\n\t\t\t\t\tstart: new Date(ruleValue),\r\n\t\t\t\t\tend: addADay(new Date(ruleValue))\r\n\t\t\t\t}\r\n\r\n\t\t\tconst fieldStart = new Date(fieldValue)\r\n\t\t\treturn fieldValue && fieldStart >= range.start && fieldStart < range.end\r\n\t\t},\r\n\t\t[Operator.GreaterThan]: (ruleValue: any, fieldValue: any) => fieldValue && new Date(fieldValue) > new Date(ruleValue),\r\n\t\t[Operator.LessThan]: (ruleValue: any, fieldValue: any) => fieldValue && new Date(fieldValue) < new Date(ruleValue),\r\n\t\t[Operator.DateRange]: (ruleValue: any, fieldValue: any) => fieldValue && new Date(fieldValue) > ruleValue.start && new Date(fieldValue) < ruleValue.end\r\n\t},\r\n\t[DataType.boolean]: {\r\n\t\t[Operator.IsSet]: (ruleValue: boolean, fieldValue: boolean) => !!fieldValue,\r\n\t\t[Operator.NotSet]: (ruleValue: boolean, fieldValue: boolean) => !fieldValue\r\n\t},\r\n\t[DataType.array]: {\r\n\t\t[Operator.IsSet]: isNotNull,\r\n\t\t[Operator.NotSet]: isNull,\r\n\t\t[Operator.Equals]: (ruleValue: any[], fieldValue: any[]) => fieldValue === ruleValue,\r\n\t\t[Operator.NotEqual]: (ruleValue: any[], fieldValue: any[]) => fieldValue !== ruleValue\r\n\t},\r\n\t[DataType.arrayMultiple]: {\r\n\t\t[Operator.IsSet]: (ruleValue: any, fieldValue: any) => fieldValue !== null && fieldValue !== undefined && fieldValue.length > 0,\r\n\t\t[Operator.NotSet]: (ruleValue: any, fieldValue: any) => fieldValue === null || fieldValue === undefined || fieldValue.length === 0,\r\n\t\t[Operator.Contains]: (ruleValue: any, fieldValue: any) => fieldValue && fieldValue.some((v: any) => v.id === ruleValue)\r\n\t},\r\n\t[DataType.userRole]: {\r\n\t\t[Operator.IsSet]: (ruleValue: any, fieldValue: any) => fieldValue && ((fieldValue.users && fieldValue.users.length > 0) || (fieldValue.subRoles && fieldValue.subRoles.some((r: any) => r.users.length > 0))),\r\n\t\t[Operator.NotSet]: (ruleValue: any, fieldValue: any) => !fieldValue || !((fieldValue.users && fieldValue.users.length > 0) || (fieldValue.subRoles && fieldValue.subRoles.some((r: any) => r.users.length > 0))),\r\n\t\t[Operator.Contains]: (ruleValue: any, fieldValue: any) => {\r\n\t\t\tif (!fieldValue) {\r\n\t\t\t\treturn false\r\n\t\t\t}\r\n\t\t\tconst roleUsers = [\r\n\t\t\t\t...(fieldValue.users ? fieldValue.users : []),\r\n\t\t\t\t...(fieldValue.subRoles ? fieldValue.subRoles.map((sr: any) => sr.users).filter((u: any) => u !== null).flat() : [])\r\n\t\t\t]\r\n\t\t\treturn !!roleUsers.find(u => u.id === ruleValue)\r\n\t\t},\r\n\t\t// eslint-disable-next-line eqeqeq\r\n\t\t[Operator.Equals]: (ruleValue: any, fieldValue: any) => (!fieldValue || fieldValue.totalTime === undefined || fieldValue.totalTime === null) ? ruleValue === 0 : fieldValue.totalTime == ruleValue,\r\n\t\t// eslint-disable-next-line eqeqeq\r\n\t\t[Operator.NotEqual]: (ruleValue: any, fieldValue: any) => (!fieldValue || fieldValue.totalTime === undefined || fieldValue.totalTime === null) ? ruleValue != 0 : fieldValue.totalTime != ruleValue,\r\n\t\t[Operator.GreaterThan]: (ruleValue: any, fieldValue: any) => (!fieldValue || fieldValue.totalTime === undefined || fieldValue.totalTime === null) ? ruleValue < 0 : fieldValue.totalTime > ruleValue,\r\n\t\t[Operator.LessThan]: (ruleValue: any, fieldValue: any) => (!fieldValue || fieldValue.totalTime === undefined || fieldValue.totalTime === null) ? ruleValue > 0 : fieldValue.totalTime < ruleValue\r\n\t},\r\n\t[DataType.timeSpentAsValue]: {\r\n\t\t[Operator.IsSet]: (ruleValue: any, fieldValue: any) => !!fieldValue,\r\n\t\t[Operator.NotSet]: (ruleValue: any, fieldValue: any) => !fieldValue,\r\n\t\t[Operator.Equals]: (ruleValue: any, fieldValue: any) => {\r\n\t\t\tif (ruleValue.hours !== undefined && ruleValue.searchValueLabel !== undefined) {\r\n\t\t\t\treturn getTimeFieldValue(ruleValue.searchValueLabel, fieldValue) === ruleValue.hours\r\n\t\t\t}\r\n\t\t\treturn true\r\n\t\t},\r\n\t\t[Operator.NotEqual]: (ruleValue: any, fieldValue: any) => {\r\n\t\t\tif (ruleValue.hours !== undefined && ruleValue.searchValueLabel !== undefined) {\r\n\t\t\t\treturn getTimeFieldValue(ruleValue.searchValueLabel, fieldValue) !== ruleValue.hours\r\n\t\t\t}\r\n\t\t\treturn true\r\n\t\t},\r\n\t\t[Operator.GreaterThan]: (ruleValue: any, fieldValue: any) => {\r\n\t\t\tif (ruleValue.hours !== undefined && ruleValue.searchValueLabel !== undefined) {\r\n\t\t\t\treturn getTimeFieldValue(ruleValue.searchValueLabel, fieldValue) > ruleValue.hours\r\n\t\t\t}\r\n\t\t\treturn true\r\n\t\t},\r\n\t\t[Operator.LessThan]: (ruleValue: any, fieldValue: any) => {\r\n\t\t\tif (ruleValue.hours !== undefined && ruleValue.searchValueLabel !== undefined) {\r\n\t\t\t\treturn getTimeFieldValue(ruleValue.searchValueLabel, fieldValue) < ruleValue.hours\r\n\t\t\t}\r\n\t\t\treturn true\r\n\t\t}\r\n\t}\r\n}\r\n\r\nexport { operatorLabels, operatorsByFieldType }\r\n","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ColumnFormatting.vue?vue&type=style&index=0&id=a4f584f0&prod&lang=scss&scoped=true&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DataSourceTemplate.vue?vue&type=style&index=0&id=c871293c&prod&scoped=true&lang=scss&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LoginMfaSetup.vue?vue&type=style&index=0&id=43545664&prod&scoped=true&lang=scss&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[(_vm.hasQuickCreateTemplates && _vm.screenWidth >= 800)?_c('b-dropdown',{directives:[{name:\"b-tooltip\",rawName:\"v-b-tooltip\"}],attrs:{\"id\":\"new-record-btn\",\"variant\":\"secondary\",\"split\":\"\",\"right\":\"\",\"lazy\":\"\",\"split-to\":\"/cases/New\",\"text\":(\"New \" + _vm.recordName),\"title\":(\"Create a new \" + _vm.recordName + \"/\" + _vm.caseName),\"toggle-text\":(\"Quick create a new \" + _vm.recordName + \"/\" + _vm.caseName),\"data-cy\":\"quick-create-menu-button-new-record-large-screen\"}},[_c('b-dropdown-header',[_vm._v(\"Quick Create\")]),_c('b-dropdown-form',{staticClass:\"quick-create-search\"},[_c('b-input-group',{staticClass:\"p-0 quick-create-search\"},[_c('b-input-group-text',{staticClass:\"p-0\",staticStyle:{\"max-height\":\"2rem !important\"}},[_c('i',{staticClass:\"fa fa-magnifying-glass quick-create-search-icon\"})]),_c('b-input',{staticClass:\"quick-create-search-input\",attrs:{\"aria-label\":\"Search\",\"placeholder\":\"Search\",\"data-cy\":\"quick-create-menu-input-search\"},model:{value:(_vm.searchTerm),callback:function ($$v) {_vm.searchTerm=$$v},expression:\"searchTerm\"}})],1)],1),_c('b-dropdown-divider'),(_vm.filteredQuickCreateTemplates.length > 0)?_c('div',[_c('scrollbar',{staticClass:\"quick-create-menu\"},_vm._l((_vm.filteredQuickCreateTemplates),function(template){return _c('b-dropdown-item-button',{key:template.id,staticClass:\"quick-create-item\",attrs:{\"data-cy\":(\"quick-create-menu-button-quick-create-\" + (template.label))},on:{\"click\":function($event){return _vm.quickCreate(template.id)}}},[_vm._v(\" \"+_vm._s(template.label)+\" \")])}),1)],1):_c('div',{staticClass:\"quick-create-menu\"},[_c('b-dropdown-text',[_vm._v(\" No templates found \")])],1)],1):_c('b-button',{directives:[{name:\"b-tooltip\",rawName:\"v-b-tooltip\"}],attrs:{\"id\":\"new-record-btn\",\"variant\":\"secondary\",\"title\":(\"Create a new \" + _vm.recordName),\"to\":\"/cases/New\",\"data-cy\":\"quick-create-menu-button-new-record-small-screen\"}},[_vm._v(\" New \"+_vm._s(_vm.recordName)+\" \")]),_c('quick-create',{model:{value:(_vm.selectedTemplate),callback:function ($$v) {_vm.selectedTemplate=$$v},expression:\"selectedTemplate\"}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { Component, Vue } from \"vue-property-decorator\"\r\nimport { Getter, State } from \"vuex-class\"\r\nimport { CurrentUser } from \"@/types/user\"\r\nimport { BaseState } from \"@/store\"\r\nimport QuickCreate from \"@/components/CaseDetails/QuickCreate.vue\"\r\nimport VuePerfectScrollbar from \"vue-perfect-scrollbar\"\r\n\r\n@Component({\r\n\tcomponents: {\r\n\t\t\"quick-create\": QuickCreate,\r\n\t\t\"scrollbar\": VuePerfectScrollbar\r\n\t}\r\n})\r\nexport default class QuickCreateMenu extends Vue {\r\n\t@State((state: BaseState) => state.screenWidth)\tprivate screenWidth!: number;\r\n\t@State((state: BaseState) => state.me) private me!: CurrentUser;\r\n\r\n\t@Getter(\"getCaseName\") private readonly caseName!: string;\r\n\t@Getter(\"getRecordName\") private readonly recordName!: string;\r\n\r\n\t// TODO later this should be refactored to only be template id, no point wrapping it in an object as far as I can see\r\n\tpublic selectedTemplate: { templateId: string | null } | null = null\r\n\r\n\tsearchTerm = \"\"\r\n\r\n\tget filteredQuickCreateTemplates () {\r\n\t\tconst searchTermLowerCase = this.searchTerm.toLowerCase()\r\n\t\treturn this.quickCreateTemplates.filter(template => template.label.toLowerCase().includes(searchTermLowerCase)).sortBy(\"label\")\r\n\t}\r\n\r\n\tprivate get hasQuickCreateTemplates (): boolean {\r\n\t\t// TODO can be simplified in later TS version\r\n\t\treturn !!this.me && !!this.me.quickCreateTemplates && this.me.quickCreateTemplates.length > 0\r\n\t}\r\n\r\n\tget quickCreateTemplates (): { id: string, label: string } [] {\r\n\t\tif (!this.hasQuickCreateTemplates) {\r\n\t\t\treturn []\r\n\t\t}\r\n\r\n\t\treturn this.me.quickCreateTemplates!\r\n\t}\r\n\r\n\tpublic quickCreate (templateId: string | null) {\r\n\t\tthis.selectedTemplate = { templateId }\r\n\t}\r\n}\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./QuickCreateMenu.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./QuickCreateMenu.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./QuickCreateMenu.vue?vue&type=template&id=860b4afc&scoped=true&\"\nimport script from \"./QuickCreateMenu.vue?vue&type=script&lang=ts&\"\nexport * from \"./QuickCreateMenu.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./QuickCreateMenu.vue?vue&type=style&index=0&id=860b4afc&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"860b4afc\",\n null\n \n)\n\nexport default component.exports","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NotificationsButton.vue?vue&type=style&index=0&id=7137d2b3&prod&scoped=true&lang=scss&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SelectModal.vue?vue&type=style&index=0&id=e8d211bc&prod&lang=scss&scoped=true&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DashboardCalendar.vue?vue&type=style&index=0&id=6778020c&prod&scoped=true&lang=scss&\"","import api from \"@/services/api\"\r\nimport { UserStatus } from \"@/types/userStatus\"\r\n\r\nclass ApiUserStatus {\r\n\tprivate get axios () { return api.getAxios() }\r\n\r\n\tpublic async userStatusList (): Promise {\r\n\t\tconst result = await this.axios.get(\"/userStatus\")\r\n\t\treturn result.data\r\n\t}\r\n\r\n\tpublic async userStatusSave (userStatus: UserStatus): Promise { return (await this.axios.post(\"/userStatus\", userStatus)).data }\r\n\tpublic async userStatusDelete (userStatus: UserStatus): Promise { await this.axios.delete(`/userStatus/${userStatus.id}`) }\r\n}\r\n\r\nconst apiUserStatus = new ApiUserStatus()\r\nexport default apiUserStatus\r\n","\r\nimport { AxiosInstance } from \"axios\"\r\nimport api from \"@/services/api\"\r\nimport { DashboardSummary, Dashboard } from \"@/types\"\r\n\r\nclass DashboardApi {\r\n\tprivate get axios (): AxiosInstance {\r\n\t\treturn api.getAxios()\r\n\t}\r\n\r\n\tpublic async dashboardGetList (): Promise {\r\n\t\treturn (await this.axios.get(\"/dashboard\")).data\r\n\t}\r\n\r\n\tpublic async dashboardGetListForTeam (teamId: string): Promise {\r\n\t\treturn (await this.axios.get(`/dashboard/forteam/${teamId}`)).data\r\n\t}\r\n\r\n\tpublic async dashboardGet (dashboardId: string): Promise {\r\n\t\treturn (await this.axios.get(`/dashboard/${dashboardId}`)).data\r\n\t}\r\n\r\n\tpublic async dashboardSave (dashboard: Dashboard): Promise {\r\n\t\treturn (await this.axios.post(\"/dashboard\", dashboard)).data\r\n\t}\r\n\r\n\tpublic async dashboardDelete (dashboardId: string): Promise {\r\n\t\tawait this.axios.delete(`/dashboard/${dashboardId}`)\r\n\t}\r\n}\r\n\r\nconst dashboardApi = new DashboardApi()\r\nexport default dashboardApi\r\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('page',[_c('skeleton',{staticClass:\"h-100\",attrs:{\"loading\":_vm.loading}},[(_vm.dashboardList.length > 0 || _vm.currentDash)?_c('div',{staticClass:\"d-flex flex-column h-100\"},[_c('div',{staticClass:\"d-flex flex-row align-items-center m-l-10 m-r-10 m-t-10 m-b-5\"},[(_vm.editing)?_c('editbar',{staticClass:\"flex-grow-1\",attrs:{\"cellTypes\":_vm.cellTypes,\"addingCellType\":_vm.cellToAdd ? _vm.cellToAdd.pluginTypeId : null},on:{\"addCell\":_vm.addCell,\"fineGridChanged\":_vm.setFineGrid},model:{value:(_vm.currentDash),callback:function ($$v) {_vm.currentDash=$$v},expression:\"currentDash\"}}):_c('v-select',{staticClass:\"flex-grow-1\",attrs:{\"value\":_vm.currentDash ? _vm.currentDash.id : null,\"options\":_vm.dashboardListSorted,\"clearable\":false,\"label\":\"title\",\"reduce\":function (dashboard) { return dashboard.id; },\"data-cy\":\"dash-select\"},on:{\"input\":_vm.selectDashboard}}),(_vm.editing)?[_c('a',{staticClass:\"btn btn-primary m-l-10\",class:{ 'disabled': !_vm.editValid },attrs:{\"data-cy\":\"Dash-Save\",\"disabled\":!_vm.editValid},on:{\"click\":_vm.saveDashboard}},[_vm._v(\" Save \")]),_c('a',{staticClass:\"btn btn-secondary m-l-10\",attrs:{\"data-cy\":\"Dash-Cancel\"},on:{\"click\":_vm.cancelEdit}},[_vm._v(\" Cancel \")]),(_vm.currentDash.id)?_c('a',{staticClass:\"btn btn-danger m-l-10\",attrs:{\"data-cy\":\"Dash-Delete\"},on:{\"click\":_vm.deleteCurrent}},[_vm._v(\" Delete \")]):_vm._e()]:(_vm.me && _vm.me.editData)?[(_vm.currentDash)?_c('a',{staticClass:\"btn btn-secondary m-l-10\",attrs:{\"data-cy\":\"Dash-Edit\"},on:{\"click\":_vm.startEdit}},[_vm._v(\" Edit \")]):_vm._e(),_c('a',{staticClass:\"btn btn-secondary m-l-10\",attrs:{\"data-cy\":\"Dash-New\"},on:{\"click\":_vm.createNew}},[_vm._v(\" New Dashboard \")])]:_vm._e()],2),(_vm.dashboardInsightParameters.length > 0)?_c('global-parameters',{attrs:{\"dynamicParameterValues\":_vm.dynamicParameterValues,\"dashboardInsightParameters\":_vm.dashboardInsightParameters},on:{\"setParameter\":_vm.setParameter}}):_vm._e(),_c('scrollbar',{staticClass:\"flex-grow-1 \",attrs:{\"settings\":{ suppressScrollX: true }}},[(_vm.currentDash)?_c('grid-layout',{ref:\"gridLayout\",staticClass:\"p-1 \",class:_vm.editing ? 'grid-lines' : '',style:({ 'background-size': (_vm.columnWidth + \"px \" + _vm.scaledRowHeight + \"px\") }),attrs:{\"layout\":_vm.layout,\"add-cell\":_vm.cellToAdd,\"col-num\":this.numberOfColumns,\"max-rows\":_vm.rowCount,\"row-height\":_vm.columnWidth,\"responsive\":false,\"vertical-compact\":false,\"margin\":[0, 0],\"use-css-transforms\":true,\"auto-size\":true,\"is-draggable\":_vm.editing && !_vm.cellToAdd,\"is-resizable\":_vm.editing && !_vm.cellToAdd,\"is-mirrored\":false,\"prevent-collision\":false,\"cols\":{\n\t\t\t\t\t\tlg: this.numberOfColumns,\n\t\t\t\t\t\tmd: this.numberOfColumns,\n\t\t\t\t\t\tsm: this.numberOfColumns,\n\t\t\t\t\t\txs: this.numberOfColumns/2,\n\t\t\t\t\t\txxs: this.numberOfColumns/4\n\t\t\t\t\t}},on:{\"update:layout\":function($event){_vm.layout=$event},\"layout-updated\":_vm.updateLayout,\"add-finish\":_vm.finishAdd}},_vm._l((_vm.layout),function(cell){return _c('grid-item',{directives:[{name:\"show\",rawName:\"v-show\",value:(!cell.isNew),expression:\"!cell.isNew\"}],key:cell.id,class:['grid-item', { 'fullscreen-cell' : cell.id == _vm.cellIdToFullscreen }],attrs:{\"x\":cell.x,\"y\":cell.y,\"w\":cell.w,\"h\":cell.h,\"i\":cell.id,\"is-new\":cell.isNew},on:{\"update:isNew\":function($event){return _vm.$set(cell, \"isNew\", $event)},\"update:is-new\":function($event){return _vm.$set(cell, \"isNew\", $event)}},scopedSlots:_vm._u([{key:\"default\",fn:function(ref){return [_c('div',{staticClass:\"grid-cell-container\",attrs:{\"data-cy\":'Dash-Cell-' + cell.id}},[(_vm.editing && !_vm.cellToAdd)?_c('i',{staticClass:\"fas fa-times delete-handle fa-3x\",attrs:{\"title\":\"Delete\"},on:{\"click\":function($event){$event.stopPropagation();return _vm.deleteCell(cell)}}}):_vm._e(),(cell.cellType !== undefined)?_c(_vm.component(cell.cellType),{ref:'cell' + cell.id,refInFor:true,tag:\"component\",staticStyle:{\"margin-top\":\"0px\"},attrs:{\"edit\":_vm.editing,\"dashboardState\":_vm.dashboardState},on:{\"dashboardTrigger\":_vm.dashboardTrigger,\"showCase\":_vm.popupOpen,\"calculationTableRowClick\":_vm.calculationTableRowClick,\"addGlobalParameters\":_vm.addParametersToDash},model:{value:(cell.contents),callback:function ($$v) {_vm.$set(cell, \"contents\", $$v)},expression:\"cell.contents\"}}):_vm._e()],1)]}}],null,true)})}),1):_vm._e()],1)],1):_c('div',{staticClass:\"d-flex h-100 justify-content-center align-items-start\"},[_c('div',{staticClass:\"alert alert-secondary flex-grow-0 m-t-20 p-5\"},[_c('h6',{staticClass:\"d-flex align-items-center\"},[_c('i',{staticClass:\"m-r-10 fa fa-objects-column\"}),_vm._v(\" Get started with Dashboards \")]),_c('span',[_vm._v(\" Dashboards give you a customizable look at what's important. \"),_c('br'),(_vm.me && _vm.me.editData)?_c('a',{staticClass:\"btn btn-link m-t-10\",attrs:{\"tabindex\":\"0\"},on:{\"click\":_vm.createNew}},[_vm._v(\"Create Dashboard\")]):_vm._e()])])])]),_c('case-popup',{on:{\"closed\":_vm.popupClosed},model:{value:(_vm.popupCaseSummary),callback:function ($$v) {_vm.popupCaseSummary=$$v},expression:\"popupCaseSummary\"}}),_c('b-modal',{attrs:{\"data-cy\":\"delete-confirm-modal\",\"title\":\"Confirm delete\",\"size\":\"l\"},scopedSlots:_vm._u([{key:\"modal-footer\",fn:function(ref){\n\t\t\t\t\tvar ok = ref.ok;\nreturn [_c('b-button',{staticClass:\"m-r-5\",attrs:{\"data-cy\":\"delete-confirm-button\",\"variant\":\"danger\",\"disabled\":_vm.currentDash && (_vm.deleteConfirmText !== _vm.currentDash.title)},on:{\"click\":function($event){return _vm.deleteConfirm()}}},[_vm._v(\" Delete \")]),_c('b-button',{attrs:{\"variant\":\"secondary\"},on:{\"click\":function($event){return ok()}}},[_vm._v(\" Cancel \")])]}}]),model:{value:(_vm.deleteOpen),callback:function ($$v) {_vm.deleteOpen=$$v},expression:\"deleteOpen\"}},[(_vm.currentDash)?_c('div',[_c('span',[_vm._v(\"To confirm deletion, enter \\\"\"+_vm._s(_vm.currentDash.title)+\"\\\" \")]),_c('b-form-input',{attrs:{\"data-cy\":\"confirm-delete-text\",\"id\":'input-delete',\"type\":\"text\",\"autocomplete\":\"off\"},model:{value:(_vm.deleteConfirmText),callback:function ($$v) {_vm.deleteConfirmText=$$v},expression:\"deleteConfirmText\"}})],1):_vm._e()])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"d-flex align-items-center\"},[_c('div',{staticClass:\"flex-grow-1 d-flex align-items-end\"},[_c('b',{staticClass:\"m-l-9 m-b-3 m-r-5\"},[_vm._v(\"Title: \")]),_c('b-form-input',{staticClass:\"flex-grow-1\",attrs:{\"data-cy\":\"Dash-Title\",\"value\":_vm.value.title,\"placeholder\":\"Dashboard Name\",\"state\":_vm.value.title && _vm.value.title.length > 0 ? null : false},on:{\"input\":_vm.titleChanged}})],1),_c('div',{staticClass:\"m-l-10 m-t-10 d-flex\"},[_c('b-form-checkbox',{attrs:{\"data-cy\":\"Dash-Fine-Grid\",\"checked\":_vm.value.fineGridEnabled},on:{\"input\":function($event){return _vm.toggleFineGrid()}}},[_c('b',{staticClass:\"m-b-3\"},[_vm._v(\"Fine Grid\")])])],1),_c('div',{staticClass:\"m-l-10 d-flex m-r-10 align-items-end\"},[_c('b',{staticClass:\"m-l-10 m-b-3\"},[_vm._v(\"Availability: \")]),_c('v-select',{staticClass:\"d-inline m-l-5\",staticStyle:{\"min-width\":\"100px\"},attrs:{\"options\":_vm.privacyTypes,\"value\":_vm.value.privacy,\"reduce\":function (option) { return option.key; },\"clearable\":false},on:{\"input\":_vm.privacyChanged}},[_vm._v(\"> \")]),(_vm.value.privacy === 1)?_c('v-select',{staticClass:\"d-inline m-l-5\",class:{'is-invalid': _vm.value.privacy === 1 && _vm.value.limitedToTeams && _vm.value.limitedToTeams.length === 0},staticStyle:{\"min-width\":\"100px\"},attrs:{\"options\":_vm.teams,\"multiple\":\"\",\"value\":_vm.value.limitedToTeams,\"label\":\"title\",\"reduce\":function (option) { return option.id; }},on:{\"input\":_vm.limitedToTeamsChanged}},[_vm._v(\"> \")]):_vm._e()],1),(_vm.cellTypes)?_c('b-dropdown',{attrs:{\"text\":_vm.addCellType ? 'Adding ' + _vm.addCellType.label : 'Add Tile'}},_vm._l((_vm.cellTypes),function(cellType){return _c('b-dropdown-item-button',{key:cellType.cellTypeId,attrs:{\"data-cy\":'Dash-NewCell-' + cellType.cellTypeId},on:{\"click\":function($event){return _vm.addCell(cellType)}}},[_vm._v(\" \"+_vm._s(cellType.label)+\" \")])}),1):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { Component, Vue, Watch, Prop, Emit } from \"vue-property-decorator\"\r\nimport { namespace, Getter, Mutation, Action, State } from \"vuex-class\"\r\n\r\nimport vSelect from \"vue-select\"\r\n\r\nimport api from \"@/services/api\"\r\n\r\nimport { CellType, Dashboard, Team } from \"@/types\"\r\n\r\n@Component({\r\n\tcomponents: {\r\n\t\t\"v-select\": vSelect\r\n\t}\r\n})\r\nexport default class DashboardEditbar extends Vue {\r\n\t@Prop()\r\n\tvalue!: Dashboard;\r\n\r\n\t@Prop()\r\n\tcellTypes!: CellType[];\r\n\r\n\t@Prop()\r\n\taddingCellType!: number | null;\r\n\r\n\t@State teams!: Team[];\r\n\r\n\tget addCellType (): CellType | null {\r\n\t\treturn this.addingCellType ? this.cellTypes.find(cellType => cellType.cellTypeId === this.addingCellType)! : null\r\n\t}\r\n\r\n\tprivacyTypes = [\r\n\t\t{ key: 0, label: \"Public\" },\r\n\t\t{ key: 1, label: \"Teams\" },\r\n\t\t{ key: 2, label: \"Private\" }\r\n\t];\r\n\r\n\t@Emit(\"addCell\")\r\n\taddCell (cellType: CellType) {\r\n\t\treturn cellType\r\n\t}\r\n\r\n\t@Emit(\"fineGridChanged\")\r\n\ttoggleFineGrid () {\r\n\t\treturn !this.value.fineGridEnabled\r\n\t}\r\n\r\n\t@Emit(\"input\")\r\n\ttitleChanged (title: string) {\r\n\t\treturn { ...this.value, title }\r\n\t}\r\n\r\n\t@Emit(\"input\")\r\n\tprivacyChanged (privacy: number) {\r\n\t\treturn { ...this.value, privacy }\r\n\t}\r\n\r\n\t@Emit(\"input\")\r\n\tlimitedToTeamsChanged (limitedToTeams: string[]) {\r\n\t\treturn { ...this.value, limitedToTeams }\r\n\t}\r\n}\r\n\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DashboardEditBar.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DashboardEditBar.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./DashboardEditBar.vue?vue&type=template&id=98f2e134&\"\nimport script from \"./DashboardEditBar.vue?vue&type=script&lang=ts&\"\nexport * from \"./DashboardEditBar.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"card\",class:_vm.cellClass},[_c('div',{staticClass:\"flex-grow-1 d-flex align-items-center\",staticStyle:{\"padding-left\":\"25px\"},style:(_vm.fontStyle)},[_c('h1',[_vm._v(_vm._s(_vm.value))])]),_c('span',{staticClass:\"footer-text\"},[_vm._v(_vm._s(_vm.description))])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { Component, Vue, Watch, Prop } from \"vue-property-decorator\"\r\nimport { namespace, Getter, Mutation, Action } from \"vuex-class\"\r\n\r\n@Component({\r\n\tcomponents: {\r\n\t}\r\n})\r\nexport default class Numerical extends Vue {\r\n\t@Prop()\r\n\tcellData: any;\r\n\r\n\tprivate get value (): string {\r\n\t\treturn this.cellData.value\r\n\t}\r\n\r\n\tprivate get description (): string {\r\n\t\treturn this.cellData.description\r\n\t}\r\n\r\n\tprivate get cellClass (): string {\r\n\t\treturn \"bg-\" + this.cellData.class\r\n\t}\r\n\r\n\tprivate get fontStyle (): any {\r\n\t\tif (this.cellData.value.toString().length > 10) {\r\n\t\t\treturn {\r\n\t\t\t\tfontSize: \"2.5rem\"\r\n\t\t\t}\r\n\t\t} else if (this.cellData.value.toString().length > 5) {\r\n\t\t\treturn {\r\n\t\t\t\tfontSize: \"3rem\"\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\treturn {}\r\n\t\t}\r\n\t}\r\n}\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Numerical.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Numerical.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Numerical.vue?vue&type=template&id=1a30e500&scoped=true&\"\nimport script from \"./Numerical.vue?vue&type=script&lang=ts&\"\nexport * from \"./Numerical.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./Numerical.vue?vue&type=style&index=0&id=1a30e500&prod&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"1a30e500\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"card\"},[(_vm.edit)?_c('div',{staticClass:\"card-body\"},[_c('b-table-simple',[_c('b-tr',[_c('b-td',[_vm._v(\"View\")]),_c('b-td',[_c('v-select',{attrs:{\"label\":\"title\",\"append-to-body\":\"\",\"options\":_vm.views,\"reduce\":function (insight) { return insight.id; }},on:{\"input\":_vm.viewChanged},scopedSlots:_vm._u([{key:\"option\",fn:function(ref){\nvar title = ref.title;\nvar folder = ref.folder;\nreturn [_c('div',[_c('div',[_vm._v(\" \"+_vm._s(title)+\" \"),(folder)?_c('div',[_c('small',[_vm._v(_vm._s(folder))])]):_vm._e()])])]}}],null,false,3562590417),model:{value:(_vm.value.viewId),callback:function ($$v) {_vm.$set(_vm.value, \"viewId\", $$v)},expression:\"value.viewId\"}})],1)],1)],1)],1):_c('skeleton',{staticClass:\"card-body p-0\",attrs:{\"loading\":_vm.loadingCases}},[(_vm.errorLoading)?_c('div',[_c('div',{staticClass:\"alert alert-danger mb-0\"},[(!_vm.errorLoading)?_c('h6',{staticClass:\"mb-0\"},[_c('i',{staticClass:\"fas fa-exclamation-triangle m-r-5\"}),_vm._v(\" Error loading view \")]):_vm._e()])]):_vm._e(),_c('case-list',{staticClass:\"flex-grow-1\",attrs:{\"casesTables\":_vm.displayRecordTables,\"activeView\":_vm.activeView,\"groupValue\":_vm.value.viewId},on:{\"loadNextPage\":_vm.loadNextPage,\"reloadInsightBySort\":_vm.loadNextPage,\"reloadInsightBySearch\":_vm.reloadBySearch}})],1),(_vm.errorUpdating)?_c('div',{staticClass:\"card-footer\",attrs:{\"data-cy\":\"footer\"}},[_vm._m(0)]):_vm._e()],1)}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"alert alert-danger mb-0\",attrs:{\"data-cy\":\"unable-to-update-alert\"}},[_c('h6',{staticClass:\"mb-0\"},[_c('i',{staticClass:\"fas fa-exclamation-triangle m-r-5\"}),_vm._v(\" Unable to update... \")])])}]\n\nexport { render, staticRenderFns }","import { HubConnection, HubConnectionBuilder, LogLevel } from \"@aspnet/signalr\"\r\n\r\nexport default class HubRecordViewService {\r\n\tprivate connectionShouldBeOpen: boolean = false;\r\n\tprivate connection: HubConnection | null = null;\r\n\r\n\tpublic async openConnection (viewId: string): Promise {\r\n\t\tif (this.connection) {\r\n\t\t\tthis.connection.invoke(\"leaveRecordView\")\r\n\t\t\tthis.connection.stop()\r\n\t\t\tthis.connection = null\r\n\t\t}\r\n\r\n\t\tconst connection = new HubConnectionBuilder()\r\n\t\t\t.withUrl(`${process.env.VUE_APP_HTTP_API_URI}record-view-hub`)\r\n\t\t\t.configureLogging(LogLevel.Information)\r\n\t\t\t.build()\r\n\r\n\t\tlet startedPromise = null\r\n\r\n\t\tconst start: () => Promise = () => {\r\n\t\t\tstartedPromise = connection.start()\r\n\t\t\t\t.then(() => {\r\n\t\t\t\t\tconnection.invoke(\"joinRecordView\", viewId)\r\n\t\t\t\t})\r\n\t\t\t\t.catch(err => {\r\n\t\t\t\t\tconsole.error(\"HubRecordViewService - failed to connect with hub:\", err)\r\n\r\n\t\t\t\t\treturn new Promise((resolve, reject) =>\r\n\t\t\t\t\t\tsetTimeout(() => start()\r\n\t\t\t\t\t\t\t.then(resolve)\r\n\t\t\t\t\t\t\t.catch(reject),\r\n\t\t\t\t\t\t5000))\r\n\t\t\t\t})\r\n\r\n\t\t\treturn startedPromise\r\n\t\t}\r\n\r\n\t\tconnection.onclose(() => {\r\n\t\t\tif (this.connectionShouldBeOpen) {\r\n\t\t\t\tstart()\r\n\t\t\t}\r\n\t\t})\r\n\r\n\t\tthis.connectionShouldBeOpen = true\r\n\t\tawait start()\r\n\t\tthis.connection = connection\r\n\r\n\t\treturn this.connection\r\n\t}\r\n\r\n\tpublic closeConnection () {\r\n\t\tif (this.connection) {\r\n\t\t\tthis.connectionShouldBeOpen = false\r\n\t\t\tconsole.log(\"Leaving record view service\")\r\n\r\n\t\t\tthis.connection.stop()\r\n\t\t\tthis.connection = null\r\n\t\t}\r\n\t}\r\n}\r\n","\r\n\r\nimport { namespace } from \"vuex-class\"\r\nimport { Component, Vue, Watch, Prop, Emit } from \"vue-property-decorator\"\r\n\r\n// @ts-ignore\r\nimport vSelect from \"vue-select\"\r\nimport VuePerfectScrollbar from \"vue-perfect-scrollbar\"\r\nimport { Case, Field } from \"@/types\"\r\n\r\nimport api from \"@/services/api\"\r\n\r\nimport HubRecordViewService from \"@/services/hubRecordViewService\"\r\n\r\nimport SkeletonLoader from \"../SkeletonLoader.vue\"\r\nimport CaseList from \"@/components/CaseList/CaseList.vue\"\r\nimport { CurrentPageDetails, GetCasesForViewRequest } from \"@/types/paginatedRequest\"\r\nimport { CasesTable, CasesTables } from \"@/types/case\"\r\n\r\nconst caseStore = namespace(\"cases\")\r\nconst setup = namespace(\"setup\")\r\n\r\n@Component({\r\n\tcomponents: {\r\n\t\t\"scrollbar\": VuePerfectScrollbar,\r\n\t\t\"case-list\": CaseList,\r\n\t\t\"skeleton\": SkeletonLoader,\r\n\t\t\"v-select\": vSelect\r\n\t}\r\n})\r\nexport default class RecordView extends Vue {\r\n\t@Prop()\r\n\tvalue: any;\r\n\r\n\t@Prop()\r\n\tedit!: boolean\r\n\r\n\t@caseStore.Action(\"detailsLoad\")\r\n\tprivate detailsLoad!: () => void;\r\n\r\n\t@setup.Action loadFieldsIfUnloaded!: () => Promise\r\n\r\n\tviews: any[] = [];\r\n\r\n\tactiveView: any = null;\r\n\tloadingCases: boolean = true;\r\n\terrorLoading: boolean = false;\r\n\terrorUpdating: boolean = false;\r\n\tdisplayRecords: Case[] = [];\r\n\tprivate casesTables: CasesTables | null = null;\r\n\tprivate displayRecordTables: CasesTable[] = [];\r\n\thubDashboardService: HubRecordViewService = new HubRecordViewService();\r\n\r\n\tprivate pageNumber: number = 1;\r\n\tprivate pageSize: number = 20;\r\n\r\n\tpublic async mounted () {\r\n\t\tawait this.loadFieldsIfUnloaded()\r\n\t\tthis.onEditChanged()\r\n\t}\r\n\r\n\tpublic beforeDestroy () {\r\n\t\tthis.closeHubConnection()\r\n\t}\r\n\r\n\tpublic async rowClick (item: any) {\r\n\t\tthis.$router.push({ path: `/cases/${item.caseNumber}` })\r\n\t}\r\n\r\n\t@Watch(\"edit\")\r\n\tprivate async onEditChanged () {\r\n\t\tif (this.edit) {\r\n\t\t\tthis.setEditMode()\r\n\t\t} else {\r\n\t\t\tthis.setViewMode()\r\n\t\t}\r\n\t}\r\n\r\n\tprivate async setEditMode () {\r\n\t\tthis.closeHubConnection()\r\n\r\n\t\tthis.views = await api.caseViewsGet()\r\n\t}\r\n\r\n\tprivate async setViewMode (searchTerm: string = \"\") {\r\n\t\tthis.loadingCases = true\r\n\t\tthis.errorLoading = false\r\n\r\n\t\ttry {\r\n\t\t\tif (this.value && this.value.viewId) {\r\n\t\t\t\tif (!this.activeView || this.activeView.id !== this.value.viewId) {\r\n\t\t\t\t\tapi.caseViewsGet()\r\n\t\t\t\t\t\t.then(views => {\r\n\t\t\t\t\t\t\tthis.views = views\r\n\r\n\t\t\t\t\t\t\tif (this.views) {\r\n\t\t\t\t\t\t\t\tthis.activeView = this.views.find(v => v.id === this.value.viewId)\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t})\r\n\t\t\t\t}\r\n\r\n\t\t\t\tthis.casesTables = await api.caseList(this.value.viewId, this.pageNumber, this.pageSize, this.casesTables?.id ?? \"\", searchTerm)\r\n\t\t\t\tthis.displayRecordTables = this.casesTables.casesTables\r\n\t\t\t}\r\n\t\t} catch (err) {\r\n\t\t\tthis.errorLoading = true\r\n\t\t}\r\n\r\n\t\tthis.loadingCases = false\r\n\t\tawait this.openHubConnection()\r\n\t}\r\n\r\n\tprivate async openHubConnection () {\r\n\t\tif (!this.value || !this.value.viewId) {\r\n\t\t\treturn\r\n\t\t}\r\n\r\n\t\ttry {\r\n\t\t\tconst connection = await this.hubDashboardService.openConnection(this.value.viewId)\r\n\r\n\t\t\tif (connection) {\r\n\t\t\t\tconnection.on(\"recordView\", (data: Case[]) => {\r\n\t\t\t\t\tthis.displayRecords = data\r\n\t\t\t\t\tthis.errorUpdating = false\r\n\t\t\t\t})\r\n\r\n\t\t\t\tconnection.on(\"recordViewError\", (err: String) => {\r\n\t\t\t\t\tconsole.log(err)\r\n\t\t\t\t\tthis.errorUpdating = true\r\n\t\t\t\t})\r\n\t\t\t}\r\n\t\t} catch (err) {\r\n\t\t\tthis.errorUpdating = true\r\n\t\t}\r\n\t}\r\n\r\n\tprivate closeHubConnection () {\r\n\t\tif (!this.hubDashboardService) {\r\n\t\t\treturn\r\n\t\t}\r\n\r\n\t\tthis.hubDashboardService.closeConnection()\r\n\t}\r\n\r\n\t@Emit(\"input\")\r\n\tprivate viewChanged (viewId: string) {\r\n\t\treturn { ...this.value, viewId }\r\n\t}\r\n\r\n\tprivate async loadNextPage (details: CurrentPageDetails) {\r\n\t\tthis.loadingCases = true\r\n\t\tthis.errorLoading = false\r\n\r\n\t\ttry {\r\n\t\t\tif (!!this.value && !!this.value.viewId) {\r\n\t\t\t\tthis.pageNumber = details.pageNumber ?? 1\r\n\t\t\t\tthis.pageSize = details.pageSize ?? 20\r\n\r\n\t\t\t\tconst request: GetCasesForViewRequest = {\r\n\t\t\t\t\tviewId: this.value.viewId,\r\n\t\t\t\t\tid: this.casesTables?.id ?? \"\",\r\n\t\t\t\t\tpage: this.pageNumber,\r\n\t\t\t\t\tpageSize: this.pageSize,\r\n\t\t\t\t\tsearchTerm: details.searchTerm,\r\n\t\t\t\t\ttimeZone: Intl.DateTimeFormat().resolvedOptions().timeZone,\r\n\t\t\t\t\tsortBy: details.sortBy,\r\n\t\t\t\t\tsortDesc: details.sortDesc,\r\n\t\t\t\t\tsortDataType: details.sortDataType,\r\n\t\t\t\t\ttableId: details.tableId\r\n\t\t\t\t}\r\n\t\t\t\tconst tableId = details.tableId ? details.tableId : details.value\r\n\t\t\t\tconst casesTables = await api.caseListTable(request)\r\n\t\t\t\tconst casesTable = casesTables.casesTables.firstOrDefault((c: CasesTable) => c.value === tableId)\r\n\t\t\t\tconst tableToUpdate = this.displayRecordTables.firstOrDefault((c: CasesTable) => c.value === tableId)\r\n\r\n\t\t\t\tif (tableToUpdate) {\r\n\t\t\t\t\ttableToUpdate.totalRecords = casesTable.totalRecords\r\n\t\t\t\t\ttableToUpdate.cases = [...casesTable.cases]\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t} catch (err) {\r\n\t\t\tconsole.error(err)\r\n\t\t\tthis.errorLoading = true\r\n\t\t}\r\n\r\n\t\tthis.loadingCases = false\r\n\t}\r\n\r\n\tprivate async reloadBySearch (searchTerm: string = \"\"): Promise {\r\n\t\tthis.pageNumber = 1\r\n\t\tawait this.setViewMode(searchTerm)\r\n\t}\r\n}\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RecordView.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RecordView.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./RecordView.vue?vue&type=template&id=551771fe&scoped=true&\"\nimport script from \"./RecordView.vue?vue&type=script&lang=ts&\"\nexport * from \"./RecordView.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./RecordView.vue?vue&type=style&index=0&id=551771fe&prod&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"551771fe\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"card\"},[(_vm.activeTeam)?_c('div',{staticClass:\"card-header\"},[_c('b',[_vm._v(_vm._s(_vm.activeTeam.title))])]):_vm._e(),(_vm.edit)?_c('div',{staticClass:\"card-body\"},[_c('b-table-simple',[_c('b-tr',[_c('b-td',[_vm._v(\"Team\")]),_c('b-td',[_c('v-select',{attrs:{\"options\":_vm.teams,\"label\":\"title\",\"reduce\":function (team) { return team.id; },\"append-to-body\":\"\"},on:{\"input\":_vm.teamChanged},model:{value:(_vm.value.teamId),callback:function ($$v) {_vm.$set(_vm.value, \"teamId\", $$v)},expression:\"value.teamId\"}})],1)],1),_c('b-tr',[_c('b-td',[_vm._v(\"Having Status\")]),_c('b-td',[_c('v-select',{attrs:{\"options\":_vm.availableUserStatuses,\"label\":\"title\",\"multiple\":\"\"},model:{value:(_vm.value.userStatuses),callback:function ($$v) {_vm.$set(_vm.value, \"userStatuses\", $$v)},expression:\"value.userStatuses\"}})],1)],1),_c('b-tr',[_c('b-td',[_vm._v(\"Show hidden as muted\")]),_c('b-td',[_c('b-check',{model:{value:(_vm.value.showHiddenAsMuted),callback:function ($$v) {_vm.$set(_vm.value, \"showHiddenAsMuted\", $$v)},expression:\"value.showHiddenAsMuted\"}})],1)],1),_c('b-tr',[_c('b-td',[_vm._v(\"Highlight Teams\")]),_c('b-td',[_c('v-select',{attrs:{\"options\":_vm.teams,\"label\":\"title\",\"reduce\":function (team) { return team.id; },\"multiple\":\"\",\"append-to-body\":\"\"},model:{value:(_vm.value.highlightedTeamIds),callback:function ($$v) {_vm.$set(_vm.value, \"highlightedTeamIds\", $$v)},expression:\"value.highlightedTeamIds\"}})],1)],1)],1)],1):_c('skeleton',{staticClass:\"card-body p-0\",attrs:{\"loading\":_vm.loading}},[_c('scrollbar',{staticClass:\"h-100\"},[_c('b-table-simple',[_vm._l((_vm.usersWithDisplayOptions),function(userHiddenOrMuted){return [(!userHiddenOrMuted.hidden)?_c('b-tr',{key:userHiddenOrMuted.user.id},[_c('b-td',{class:{'muted': userHiddenOrMuted.muted},staticStyle:{\"cursor\":\"pointer\"},on:{\"click\":function($event){return _vm.gotoAccount(userHiddenOrMuted.user)}}},[_c('user-image',{staticClass:\"m-r-10\",attrs:{\"user\":userHiddenOrMuted.user}}),_vm._v(\" \"+_vm._s(userHiddenOrMuted.user.name)+\" \")],1),_c('b-td',[(!_vm.userHasSetStatusPermission && userHiddenOrMuted.user.currentStatus)?[_c('h5',[_vm._v(_vm._s(userHiddenOrMuted.user.currentStatus.title))])]:(_vm.userHasSetStatusPermission)?[_c('v-select',{attrs:{\"options\":_vm.availableUserStatuses,\"label\":\"title\"},on:{\"input\":function (userStatus) { return _vm.userStatusChanged(userHiddenOrMuted.user.id, userStatus); }},model:{value:(userHiddenOrMuted.user.currentStatus),callback:function ($$v) {_vm.$set(userHiddenOrMuted.user, \"currentStatus\", $$v)},expression:\"userHiddenOrMuted.user.currentStatus\"}})]:_vm._e()],2)],1):_vm._e()]})],2)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { Component, Vue, Watch, Prop, Emit } from \"vue-property-decorator\"\r\nimport { namespace, Getter, Mutation, Action, State } from \"vuex-class\"\r\n\r\n// @ts-ignore\r\nimport VuePerfectScrollbar from \"vue-perfect-scrollbar\"\r\nimport { Case, User } from \"@/types\"\r\nimport SkeletonLoader from \"../SkeletonLoader.vue\"\r\nimport vSelect from \"vue-select\"\r\nimport UserImage from \"@/components/UserImage.vue\"\r\n\r\nimport api from \"@/services/api\"\r\nimport { UserStatus } from \"@/types/userStatus\"\r\nimport apiUserStatus from \"@/services/api_UserStatus\"\r\nimport { CurrentUser } from \"@/types/user\"\r\n\r\nimport _ from \"lodash\"\r\n\r\nconst caseStore = namespace(\"cases\")\r\nconst setup = namespace(\"setup\")\r\n\r\n@Component({\r\n\tcomponents: {\r\n\t\t\"scrollbar\": VuePerfectScrollbar,\r\n\t\t\"skeleton\": SkeletonLoader,\r\n\t\t\"v-select\": vSelect,\r\n\t\t\"user-image\": UserImage\r\n\t}\r\n})\r\nexport default class TeamView extends Vue {\r\n\t@Prop()\r\n\tvalue: any;\r\n\r\n\t@Prop()\r\n\tedit!: boolean\r\n\r\n\t@Getter(\"getMe\") public me!: CurrentUser;\r\n\r\n\t@Getter(\"getAvailableUserStatuses\") public availableUserStatuses!: UserStatus[];\r\n\r\n\t@caseStore.Action(\"detailsLoad\")\r\n\tprivate detailsLoad!: () => void;\r\n\r\n\t@Action(\"loadAvailableUserStatuses\")\r\n\tprivate loadAvailableUserStatuses!: () => void;\r\n\r\n\t@Action(\"setCurrentUserStatus\")\r\n\tprivate setCurrentUserStatus!: (userStatus: UserStatus) => void;\r\n\r\n\t@Action(\"clearCurrentUserStatus\")\r\n\tprivate clearCurrentUserStatus!: () => void;\r\n\r\n\t@State\r\n\tteams!: any[];\r\n\r\n\tactiveTeam: any = null;\r\n\tloading: boolean = true;\r\n\tusers: User[] = [];\r\n\r\n\tpublic async mounted () {\r\n\t\tthis.onEditChanged()\r\n\t\tawait this.loadAvailableUserStatuses()\r\n\t}\r\n\r\n\tprivate gotoAccount (user: User) {\r\n\t\tthis.$router.push({ path: `/userprofile/${user.id}` })\r\n\t}\r\n\r\n\t@Watch(\"edit\")\r\n\tprivate async onEditChanged () {\r\n\t\tif (!this.edit) {\r\n\t\t\tthis.loading = true\r\n\r\n\t\t\tif (this.value && this.value.teamId) {\r\n\t\t\t\tif (!this.activeTeam || this.activeTeam.id !== this.value.teamId) {\r\n\t\t\t\t\tif (this.teams) {\r\n\t\t\t\t\t\tthis.activeTeam = this.teams.find(v => v.id === this.value.teamId)\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tthis.users = (await api.usersGet(this.value.teamId)).filter(user => !user.disabled)\r\n\t\t\t}\r\n\r\n\t\t\tthis.loading = false\r\n\t\t}\r\n\t}\r\n\r\n\t@Emit(\"input\")\r\n\tprivate teamChanged (teamId: string) {\r\n\t\treturn { ...this.value, teamId }\r\n\t}\r\n\r\n\tprivate async userStatusChanged (userId: string, userStatus: UserStatus) {\r\n\t\tif (userId === this.me.id) {\r\n\t\t\tif (userStatus) {\r\n\t\t\t\tawait this.setCurrentUserStatus(userStatus)\r\n\t\t\t\treturn\r\n\t\t\t}\r\n\t\t\tawait this.clearCurrentUserStatus()\r\n\t\t\treturn\r\n\t\t}\r\n\r\n\t\tif (userStatus) {\r\n\t\t\tawait api.setUserStatus(userId, userStatus.id!)\r\n\t\t} else {\r\n\t\t\tawait api.clearUserStatus(userId)\r\n\t\t}\r\n\t}\r\n\r\n\tpublic get userHasSetStatusPermission () : boolean {\r\n\t\treturn !!(this.me.extendedPermissions &&\r\n\t\t\tthis.me.extendedPermissions[\"setOtherUsersStatus\"])\r\n\t}\r\n\r\n\tpublic get usersWithDisplayOptions () : UserWithDisplayOptions[] {\r\n\t\tif (!this.value) {\r\n\t\t\treturn []\r\n\t\t}\r\n\r\n\t\tconst userStatusIdsToFilter = this.value.userStatuses\r\n\t\t\t? this.value.userStatuses.map((c: UserStatus) => c.id)\r\n\t\t\t: []\r\n\r\n\t\tconst allUsers: UserWithDisplayOptions[] = []\r\n\r\n\t\tfor (let user of this.users) {\r\n\t\t\tconst hasMatchingStatus =\r\n\t\t\t\tuserStatusIdsToFilter.length === 0 ||\r\n\t\t\t\t(user.currentStatus && userStatusIdsToFilter.includes(user.currentStatus.id))\r\n\r\n\t\t\tconst isInHighlightedTeam = this.userIsInHighlightedTeams(user)\r\n\r\n\t\t\tallUsers.push({\r\n\t\t\t\tuser: user,\r\n\t\t\t\thidden: !(hasMatchingStatus || isInHighlightedTeam) && !this.value.showHiddenAsMuted,\r\n\t\t\t\tmuted: !hasMatchingStatus && this.value.showHiddenAsMuted,\r\n\t\t\t\tisInHighlightedTeam: isInHighlightedTeam\r\n\t\t\t})\r\n\t\t}\r\n\r\n\t\tconst sortedUsers = _.orderBy(allUsers, [\"isInHighlightedTeam\", \"muted\"], [\"desc\", \"asc\"])\r\n\t\treturn sortedUsers\r\n\t}\r\n\r\n\tprivate userIsInHighlightedTeams (user: User) : boolean {\r\n\t\tif (!this.value ||\r\n\t\t\t!this.value.highlightedTeamIds ||\r\n\t\t\tthis.value.highlightedTeamIds.length === 0 ||\r\n\t\t\t!user.teams) {\r\n\t\t\treturn false\r\n\t\t}\r\n\r\n\t\tconst userTeamIds = user.teams.map(c => c.id) as number[]\r\n\t\tconst highlightedTeamIds = this.value.highlightedTeamIds as number[]\r\n\r\n\t\treturn userTeamIds.some(userTeamId => highlightedTeamIds.includes(userTeamId))\r\n\t}\r\n}\r\n\r\ninterface UserWithDisplayOptions {\r\n\tuser: User,\r\n\thidden: boolean,\r\n\tmuted: boolean,\r\n\tisInHighlightedTeam: boolean\r\n}\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TeamView.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TeamView.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./TeamView.vue?vue&type=template&id=15f7ea86&scoped=true&\"\nimport script from \"./TeamView.vue?vue&type=script&lang=ts&\"\nexport * from \"./TeamView.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./TeamView.vue?vue&type=style&index=0&id=15f7ea86&prod&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"15f7ea86\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"card\"},[(_vm.selectedInsight)?_c('div',{staticClass:\"card-header d-flex align-items-center\"},[_c('div',{staticClass:\"flex-grow-1\"},[_c('b',[_vm._v(_vm._s(_vm.selectedInsight.title))])]),(!_vm.edit && _vm.dynamicFilter !== null && _vm.dynamicFilterOperator !== null)?[_vm._v(\" \"+_vm._s(_vm.dynamicFilterColumn.label)+\" \"+_vm._s(_vm.dynamicFilterOperatorLabel)+\" \"),_c('parameter-value',{attrs:{\"showCollapsed\":true,\"field\":_vm.dynamicFilterColumn,\"allCaseFields\":_vm.allCaseFields,\"operator\":_vm.dynamicFilterOperator},model:{value:(_vm.dynamicFilterValue),callback:function ($$v) {_vm.dynamicFilterValue=$$v},expression:\"dynamicFilterValue\"}})]:_vm._e(),(!_vm.edit && (!_vm.missingDynamicParameters || _vm.hasBeenRun) && _vm.selectedInsight && _vm.availableDynamicParameters && _vm.availableDynamicParameters.length > 0)?_vm._l((_vm.availableDynamicParameters),function(dynamicParameter){return _c('dynamic-parameter-value',{key:dynamicParameter.key,staticClass:\"dynamic-parameter\",attrs:{\"showCollapsed\":true,\"dynamicParameter\":dynamicParameter,\"hideParameters\":_vm.insightParameters,\"value\":_vm.dynamicParameterValues[dynamicParameter.key] ? _vm.dynamicParameterValues[dynamicParameter.key] : null},on:{\"input\":function($event){return _vm.setParameter(dynamicParameter.key, $event)}}})}):_vm._e()],2):_vm._e(),_c('skeleton',{staticClass:\"d-flex flex-column card-body\",class:{'p-0': _vm.chartType && _vm.chartType.key === 'HeatMap'},attrs:{\"loading\":_vm.loading || _vm.filteredResultsLoading}},[(_vm.edit)?[(!_vm.loading)?_c('b-table-simple',[_c('b-tr',[_c('b-td',[_vm._v(\"Insight\")]),_c('b-td',[_c('v-select',{attrs:{\"options\":_vm.insights,\"label\":\"title\",\"reduce\":function (insight) { return insight.id; },\"append-to-body\":\"\",\"clearable\":false,\"calculate-position\":_vm.calcDropdownPosition},on:{\"input\":_vm.selectInsight},scopedSlots:_vm._u([{key:\"option\",fn:function(ref){\nvar title = ref.title;\nvar folder = ref.folder;\nreturn [_c('div',[_c('div',[_vm._v(\" \"+_vm._s(title)+\" \"),(folder)?_c('div',[_c('small',[_vm._v(_vm._s(folder))])]):_vm._e()])])]}}],null,false,3562590417),model:{value:(_vm.selectedInsightId),callback:function ($$v) {_vm.selectedInsightId=$$v},expression:\"selectedInsightId\"}})],1)],1),_c('b-tr',[_c('b-td',[_vm._v(\"Display as\")]),_c('b-td',[_c('v-select',{attrs:{\"options\":_vm.insightDisplayOptions,\"clearable\":false,\"append-to-body\":\"\",\"calculate-position\":_vm.calcDropdownPosition},on:{\"input\":_vm.selectChartType},model:{value:(_vm.chartType),callback:function ($$v) {_vm.chartType=$$v},expression:\"chartType\"}})],1)],1),_c('b-tr',[_c('b-td',[_vm._v(\"Filter From Insight\")]),_c('b-td',[_c('v-select',{attrs:{\"options\":_vm.filterFromInsightOptions,\"label\":\"title\",\"reduce\":function (insight) { return insight.id; },\"append-to-body\":\"\",\"clearable\":true,\"calculate-position\":_vm.calcDropdownPosition},on:{\"input\":_vm.chooseFilterFromInsight},scopedSlots:_vm._u([{key:\"option\",fn:function(ref){\nvar title = ref.title;\nvar folder = ref.folder;\nreturn [_c('div',[_c('div',[_vm._v(\" \"+_vm._s(title)+\" \"),(folder)?_c('div',[_c('small',[_vm._v(_vm._s(folder))])]):_vm._e()])])]}}],null,false,3562590417),model:{value:(_vm.filterFromInsightId),callback:function ($$v) {_vm.filterFromInsightId=$$v},expression:\"filterFromInsightId\"}})],1)],1),_c('b-tr',[_c('b-td',[_vm._v(\"Dynamic Filter\")]),_c('b-td',[_c('v-select',{attrs:{\"options\":_vm.insightColumns,\"reduce\":function (c) { return c.key; },\"append-to-body\":\"\",\"calculate-position\":_vm.calcDropdownPosition},on:{\"input\":function (v) { return _vm.dynamicFilterChanged(v); }},model:{value:(_vm.dynamicFilter),callback:function ($$v) {_vm.dynamicFilter=$$v},expression:\"dynamicFilter\"}})],1)],1),(_vm.dynamicFilter)?_c('b-tr',[_c('b-td',[_vm._v(\"Dynamic Filter Operator\")]),_c('b-td',[_c('v-select',{attrs:{\"options\":_vm.dynamicFilterOperatorLabels,\"reduce\":function (c) { return c.operator; },\"append-to-body\":\"\",\"calculate-position\":_vm.calcDropdownPosition},on:{\"input\":function (v) { return _vm.updateValue('dynamicFilterOperator', v); }},model:{value:(_vm.dynamicFilterOperator),callback:function ($$v) {_vm.dynamicFilterOperator=$$v},expression:\"dynamicFilterOperator\"}})],1)],1):_vm._e(),(_vm.chartType && _vm.chartType.key === 'table')?_c('b-tr',[_c('b-td',[_vm._v(\"Hide Filters\")]),_c('b-td',[_c('b-checkbox',{on:{\"input\":function (v) { return _vm.updateValue('hideFilters', v); }},model:{value:(_vm.hideFilters),callback:function ($$v) {_vm.hideFilters=$$v},expression:\"hideFilters\"}})],1)],1):_vm._e(),(_vm.chartType && _vm.chartType.key !== 'table' && _vm.chartType.key !== 'CalculationTable' && _vm.chartType.key !== 'PieChart')?_c('b-tr',[_c('b-td',[_vm._v(\"Graph Series\")]),_c('b-td',[_c('v-select',{attrs:{\"multiple\":\"\",\"options\":_vm.calculations,\"clearable\":true,\"label\":\"label\",\"reduce\":function (calculation) { return calculation.key; },\"append-to-body\":\"\",\"calculate-position\":_vm.calcDropdownPosition},on:{\"input\":_vm.graphSeriesChanged},model:{value:(_vm.graphCalculations),callback:function ($$v) {_vm.graphCalculations=$$v},expression:\"graphCalculations\"}})],1)],1):_vm._e(),(_vm.chartType && _vm.chartType.key === 'PieChart')?_c('b-tr',[_c('b-td',[_vm._v(\"Graph Series\")]),_c('b-td',[_c('v-select',{attrs:{\"options\":_vm.pieCalculations,\"clearable\":false,\"label\":\"label\",\"reduce\":function (calculation) { return calculation.key; },\"append-to-body\":\"\",\"calculate-position\":_vm.calcDropdownPosition},on:{\"input\":_vm.graphSingleCalculationChanged},model:{value:(_vm.graphSingleCalculation),callback:function ($$v) {_vm.graphSingleCalculation=$$v},expression:\"graphSingleCalculation\"}})],1)],1):_vm._e(),(_vm.chartType)?_c('b-tr',[_c('b-td',[_vm._v(\"Chart Options\")]),_c('b-td',[_c('chart-options',{staticClass:\"graph-controls\",attrs:{\"chartType\":_vm.chartType.key,\"columns\":_vm.tableColumns},on:{\"input\":_vm.chartOptionsChanged},model:{value:(_vm.value.graphOptions),callback:function ($$v) {_vm.$set(_vm.value, \"graphOptions\", $$v)},expression:\"value.graphOptions\"}})],1)],1):_vm._e()],1):_vm._e()]:(_vm.errorLoading)?_c('div',[_c('div',{staticClass:\"alert alert-danger\"},[_c('h6',[_c('i',{staticClass:\"fas fa-exclamation-triangle m-r-5\"}),_vm._v(\"Error loading data\")])])]):(_vm.missingDynamicParameters && !_vm.hasBeenRun)?_c('div',{attrs:{\"data-cy\":\"insight-params\"}},_vm._l((_vm.availableDynamicParameters),function(dynamicParameter){return _c('dynamic-parameter-value',{key:dynamicParameter.key,staticClass:\"w-100 d-flex\",attrs:{\"dynamicParameter\":dynamicParameter,\"hideParameters\":_vm.insightParameters,\"value\":_vm.dynamicParameterValues[dynamicParameter.key] ? _vm.dynamicParameterValues[dynamicParameter.key] : null},on:{\"input\":function (v) { return _vm.setParameter(dynamicParameter.key, v); }}})}),1):(_vm.chartType && _vm.resultGroups)?_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.loading),expression:\"!loading\"}],staticClass:\"h-100 d-flex flex-column\"},[(_vm.filterFromGroupLabel)?_c('h6',[_vm._v(\" Filtered by \"+_vm._s(this.filterFromFieldName)+\" (\"+_vm._s(_vm.formatLabel(this.filterFromLabelFormat, this.filterFromGroupLabel))+\") \"),_c('a',{staticClass:\"close\",staticStyle:{\"font-size\":\"1rem\"}},[_c('i',{staticClass:\"fas fa-times\",on:{\"click\":_vm.clearCalculationTableFilter}})])]):_vm._e(),(_vm.showFilterFromUnselectedMessage)?[_c('h6',[_vm._v(\" Select Filter from \"+_vm._s(this.filterFromInsight.title)+\" \")])]:_vm._e(),(!_vm.filterFromInsightId || _vm.filteredResultsLoaded || _vm.chartType.key ==='table')?[(_vm.chartType.key ==='table')?_c('results-table',{staticClass:\"flex-grow-1\",staticStyle:{\"overflow\":\"hidden\"},attrs:{\"resultGroups\":_vm.resultGroups,\"columns\":_vm.tableColumns,\"insight\":_vm.selectedInsight,\"showFilters\":!_vm.hideFilters,\"allCaseFields\":_vm.allCaseFields,\"labelFormat\":_vm.labelFormat,\"additionalFilters\":_vm.dynamicFilterClauses,\"perPage\":_vm.perPage,\"data-cy\":\"graph-results-table\"},on:{\"loadNextPage\":_vm.loadNextPage,\"reloadInsightBySort\":_vm.reloadInsightBySort,\"reloadInsightByClauses\":_vm.reloadInsightByClauses}}):(_vm.chartType.key === 'HeatMap')?_c('heat-map',{attrs:{\"resultGroups\":_vm.resultGroups,\"columns\":_vm.tableColumns,\"options\":_vm.value.graphOptions}}):(_vm.chartType.key === 'CalculationTable')?_c('calculation-table',{key:_vm.reloadResultsKey,attrs:{\"dashboardState\":_vm.dashboardState,\"resultGroups\":_vm.resultGroups,\"insight\":_vm.selectedInsight,\"calculations\":_vm.selectedInsight.calculations,\"calculationTotals\":_vm.selectedInsight.calculations,\"labelFormat\":_vm.labelFormat,\"clickableRows\":true},on:{\"rowClick\":_vm.calculationTableRowClick}}):_c('chart-results',{staticClass:\"m-a-5\",attrs:{\"showChartOptions\":false,\"chartConfiguration\":_vm.value.graphOptions,\"resultGroups\":_vm.filteredResultGroups,\"calculations\":_vm.selectedInsight.calculations,\"chartType\":_vm.chartType.key,\"graphCalculations\":_vm.graphCalculations,\"labelFormat\":_vm.labelFormat}})]:_vm._e()],2):_vm._e()],2)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.dynamicParameter && !_vm.hideParameter(_vm.dynamicParameter))?_c('div',[_c('span',{staticClass:\"d-inline-block m-r-10\"},[_vm._v(_vm._s(_vm.dynamicParameter.name)+\": \")]),_c('parameter-value',{staticClass:\"d-inline-block flex-grow-1\",attrs:{\"field\":_vm.field,\"value\":_vm.value == null ? null : _vm.value.value,\"dynamicValue\":_vm.value == null ? false : _vm.value.dynamicValue,\"searchClauseParameters\":_vm.value === null ? null : _vm.value.searchClauseParameters,\"operator\":_vm.operator,\"showCollapsed\":_vm.showCollapsed},on:{\"dynamicInput\":_vm.dynamicInput,\"searchClauseParametersChanged\":_vm.paramsChanged},nativeOn:{\"click\":function($event){$event.stopPropagation();}}})],1):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { CaseColumn } from \"@/types/caseColumns\"\r\nimport { DynamicValue } from \"@/types/dynamic\"\r\nimport { DataType, DynamicParameter, DynamicParameterValue, Operator } from \"@/types/insights\"\r\nimport { DateClauseType } from \"@/types/insights/dateClauseType\"\r\nimport { SearchClauseParameters } from \"@/types/view\"\r\nimport { cloneDeep } from \"lodash\"\r\nimport { Component, Vue, Watch, Prop } from \"vue-property-decorator\"\r\n\r\nimport ParameterValue from \"../Controls/ParameterValue.vue\"\r\n\r\n@Component({\r\n\tcomponents: {\r\n\t\t\"parameter-value\": ParameterValue\r\n\t}\r\n})\r\nexport default class DynamicParameterValueControl extends Vue {\r\n\t@Prop({ default: null })\r\n\tdynamicParameter!: DynamicParameter\r\n\r\n\t@Prop({ default: null })\r\n\tvalue!: DynamicParameterValue | null\r\n\r\n\t@Prop({ default: [] })\r\n\thideParameters!: DynamicParameter[]\r\n\r\n\t@Prop({ default: false })\r\n\tshowCollapsed!: boolean\r\n\r\n\tget field (): CaseColumn | null {\r\n\t\treturn this.dynamicParameter\r\n\t\t\t? {\r\n\t\t\t\tkey: this.dynamicParameter.key,\r\n\t\t\t\tfieldDataType: this.dateType,\r\n\t\t\t\tdataSourceId: this.dynamicParameter.dataSourceId,\r\n\t\t\t\tdataType: this.dynamicParameter.dataType === DataType.userRole\r\n\t\t\t\t\t? \"user-role\"\r\n\t\t\t\t\t: null\r\n\t\t\t} as CaseColumn\r\n\t\t\t: null\r\n\t}\r\n\r\n\tget dateType (): DataType {\r\n\t\treturn this.dynamicParameter.dataType === DataType.dateRange\r\n\t\t\t? DataType.dateTime\r\n\t\t\t: this.dynamicParameter.dataType\r\n\t}\r\n\r\n\tget operator (): Operator | null {\r\n\t\tif (!this.dynamicParameter) {\r\n\t\t\treturn null\r\n\t\t}\r\n\r\n\t\tswitch (this.dynamicParameter.dataType) {\r\n\t\t\tcase DataType.dateRange:\r\n\t\t\t\treturn Operator.DateRange\r\n\t\t\tcase DataType.userRole:\r\n\t\t\t\treturn Operator.Contains\r\n\t\t\tdefault:\r\n\t\t\t\treturn Operator.Equals\r\n\t\t}\r\n\t}\r\n\r\n\tdynamicInput (newDynamic: DynamicValue | null) {\r\n\t\tlet value: DynamicParameterValue = this.value\r\n\t\t\t? cloneDeep(this.value)\r\n\t\t\t: {\r\n\t\t\t\tkey: this.dynamicParameter.key,\r\n\t\t\t\tdataType: this.dateType,\r\n\t\t\t\tvalue: null,\r\n\t\t\t\tdynamicValue: false,\r\n\t\t\t\tpassValueToParameter: this.dynamicParameter.passValueToParameter\r\n\t\t\t}\r\n\r\n\t\tvalue.value = newDynamic ? newDynamic.value : null\r\n\t\tvalue.dynamicValue = newDynamic && newDynamic.dynamic ? newDynamic.dynamic : false\r\n\r\n\t\tthis.$emit(\"input\", value)\r\n\t}\r\n\r\n\tparamsChanged (searchParams: SearchClauseParameters) {\r\n\t\tlet value: DynamicParameterValue = this.value\r\n\t\t\t? cloneDeep(this.value)\r\n\t\t\t: {\r\n\t\t\t\tkey: this.dynamicParameter.key,\r\n\t\t\t\tdataType: this.dateType,\r\n\t\t\t\tvalue: null,\r\n\t\t\t\tdynamicValue: false,\r\n\t\t\t\tpassValueToParameter: this.dynamicParameter.passValueToParameter,\r\n\t\t\t\tsearchClauseParameters: null\r\n\t\t\t}\r\n\t\tvalue.searchClauseParameters = searchParams\r\n\r\n\t\tthis.$emit(\"input\", value)\r\n\t}\r\n\r\n\thideParameter (parameter: DynamicParameter) {\r\n\t\treturn this.hideParameters.find(p => p.key === parameter.key)\r\n\t}\r\n}\r\n\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DynamicParameterValue.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DynamicParameterValue.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./DynamicParameterValue.vue?vue&type=template&id=6b0e23fe&\"\nimport script from \"./DynamicParameterValue.vue?vue&type=script&lang=ts&\"\nexport * from \"./DynamicParameterValue.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/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","\r\nimport { Component, Vue, Watch, Prop, InjectReactive } from \"vue-property-decorator\"\r\nimport { namespace, Getter, Mutation, Action } from \"vuex-class\"\r\n\r\n// @ts-ignore\r\nimport VuePerfectScrollbar from \"vue-perfect-scrollbar\"\r\nimport { AdvancedSearchFilter, CalculationDataTypeValue, CalculationType, Case, dataTypeByFieldType, Field } from \"@/types\"\r\nimport { Insight, InsightCalculation, LabelFormat, insightViews, Operator, operatorsByFieldType, operatorLabels, DynamicParameterValue, DynamicParameter, DataType, GroupByDateFormat, InsightSummary } from \"@/types/insights\"\r\nimport { caseColumns, CaseColumn } from \"@/types/caseColumns\"\r\nimport SkeletonLoader from \"../SkeletonLoader.vue\"\r\nimport vSelect from \"vue-select\"\r\n\r\nimport api from \"@/services/api\"\r\n\r\nimport ChartResults from \"@/components/Insights/ChartResults.vue\"\r\nimport ChartOptions from \"@/components/Insights/ChartOptions.vue\"\r\nimport TableResults from \"@/components/Insights/TableResults.vue\"\r\nimport HeatMap from \"@/components/Insights/HeatMap.vue\"\r\nimport CalculationTable from \"@/components/Insights/CalculationTable.vue\"\r\nimport { Clause, DayOfWeek, defaultSearchClauseParameters, SearchClauseParameters } from \"@/types/view\"\r\nimport { DashboardState } from \"@/types/dashboard\"\r\nimport { defaultFieldOperator } from \"@/types/insights/operators\"\r\nimport Guid from \"@/scripts/guid\"\r\n\r\nimport ParameterValue from \"@/components/Controls/ParameterValue.vue\"\r\nimport DynamicParameterValueControl from \"@/components/Insights/DynamicParameterValue.vue\"\r\n\r\nimport { filterMixin } from \"@/mixins/filtering\"\r\nimport { CalculationResults, FilteredCalculationResults } from \"@/types/insights/calculatedResults\"\r\nimport positionDropdown from \"@/scripts/VSelectDropdownPosition.ts\"\r\nimport { CurrentPageDetails } from \"@/types/paginatedRequest\"\r\n\r\nconst setup = namespace(\"setup\")\r\n\r\n@Component({\r\n\tcomponents: {\r\n\t\t\"scrollbar\": VuePerfectScrollbar,\r\n\t\t\"skeleton\": SkeletonLoader,\r\n\t\t\"chart-results\": ChartResults,\r\n\t\t\"results-table\": TableResults,\r\n\t\t\"calculation-table\": CalculationTable,\r\n\t\t\"heat-map\": HeatMap,\r\n\t\t\"v-select\": vSelect,\r\n\t\t\"chart-options\": ChartOptions,\r\n\t\t\"parameter-value\": ParameterValue,\r\n\t\t\"dynamic-parameter-value\": DynamicParameterValueControl\r\n\t}\r\n})\r\nexport default class Chart extends Vue {\r\n\t@Prop()\r\n\tvalue: any;\r\n\r\n\t@Prop()\r\n\tedit!: boolean\r\n\r\n\t@Prop({ default: () => { return { calculationTableClickedRows: {} } } })\r\n\tdashboardState!: DashboardState;\r\n\r\n\t@setup.Action loadFieldsIfUnloaded!: () => Promise\r\n\t@setup.State fields!: Field[];\r\n\r\n\t@setup.Getter(\"getAllFields\")\r\n\tpublic allCaseFields!: CaseColumn[]\r\n\r\n\tloading: boolean = true;\r\n\r\n\t/** Used to ensure that results of an older request don't overwrite a newer one if received out of order **/\r\n\tlastRequestStartedAt: Date | null = null;\r\n\r\n\tdisplayRecords: Case[] = [];\r\n\r\n\tinsights: InsightSummary[] = [];\r\n\tinsightParameters: DynamicParameter[] = []\r\n\r\n\tselectedInsightId: string | null = null;\r\n\tselectedInsight: Insight | null = null;\r\n\tprivate selectedClauses: Clause[] | null = null;\r\n\tprivate selectedSorting = {\r\n\t\tsortBy: \"\",\r\n\t\tsortDesc: false,\r\n\t\tsortDataType: DataType.none\r\n\t};\r\n\r\n\tfilterFromInsightId: string | null = null;\r\n\tfilterFromInsight: Insight | null = null;\r\n\tfilterFromGroupLabel: string | null = null;\r\n\tfilterFromFieldName: string | null = null;\r\n\tfilterFromLabelFormat: LabelFormat = LabelFormat.Text;\r\n\r\n\tinsightFilterIsActive: boolean = false;\r\n\tfilteredResultsLoaded: boolean = false\r\n\tfilteredResultsLoading: boolean = false\r\n\r\n\tchartType: any = null;\r\n\tgraphCalculations: string[] = []\r\n\r\n\tdynamicFilter: string | null = null\r\n\tdynamicFilterOperator: Operator | null = null\r\n\tdynamicFilterValue: any = null\r\n\r\n\tdynamicParameterValues: { [key: string]: DynamicParameterValue } = {}\r\n\r\n\tgraphSingleCalculation: string | null = null\r\n\terrorLoading: boolean = false\r\n\r\n\tresultGroups: CalculationResults[] | null = null;\r\n\treloadResultsKey: string | null = null;\r\n\thasBeenRun: boolean = false\r\n\r\n\ttableColumns: any[] = [];\r\n\thideFilters: boolean = false\r\n\r\n\tlabelFormat: LabelFormat = LabelFormat.Text;\r\n\r\n\trunInsightTimeout: NodeJS.Timeout | null = null\r\n\r\n\tprivate perPage: number = 20;\r\n\tprivate calculatedResultsId: string | null = null;\r\n\r\n\tchartOptions: any = {\r\n\t\tbackgroundColor: \"transparent\",\r\n\t\tlegend: {\r\n\t\t\tposition: \"top\"\r\n\t\t},\r\n\t\tchartArea: {\r\n\t\t\twidth: \"90%\",\r\n\t\t\theight: \"80%\"\r\n\t\t}\r\n\t}\r\n\r\n\tprivate calcDropdownPosition = positionDropdown;\r\n\r\n\tprivate get insightDisplayOptions () {\r\n\t\tif (!this.selectedInsight) return []\r\n\t\treturn insightViews.filter(display => display.canDisplay(this.selectedInsight, this.selectedInsight!.calculations, this.fields, true))\r\n\t}\r\n\r\n\tprivate get calculations () {\r\n\t\tif (!this.selectedInsight) return []\r\n\t\treturn this.selectedInsight.calculations\r\n\t}\r\n\r\n\tprivate get pieCalculations () {\r\n\t\tif (!this.selectedInsight) return []\r\n\t\treturn this.selectedInsight.calculations.filter(c => !c.groupBy)\r\n\t}\r\n\r\n\tprivate get filterFromInsightOptions () : InsightSummary[] {\r\n\t\treturn this.insights ? this.insights : []\r\n\t}\r\n\r\n\tprivate get showFilterFromUnselectedMessage () : boolean {\r\n\t\treturn !!this.filterFromInsightId && !this.insightFilterIsActive\r\n\t}\r\n\r\n\tprivate get columnsByKey (): { [key: string]: CaseColumn } {\r\n\t\treturn this.allCaseFields\r\n\t\t\t? this.allCaseFields.toDictionary(\"key\")\r\n\t\t\t: {}\r\n\t}\r\n\r\n\tprivate get insightColumns (): CaseColumn[] {\r\n\t\treturn this.selectedInsight\r\n\t\t\t? this.selectedInsight.columns.map(c => this.columnsByKey[c]).filter(c => !!c).sortBy(\"label\")\r\n\t\t\t: []\r\n\t}\r\n\r\n\tprivate get dynamicFilterColumn (): CaseColumn | null {\r\n\t\treturn this.dynamicFilter\r\n\t\t\t? this.columnsByKey[this.dynamicFilter] || null\r\n\t\t\t: null\r\n\t}\r\n\r\n\tprivate get dynamicFilterOperatorLabels (): { operator: Operator, label: string }[] {\r\n\t\treturn operatorLabels.filter(o => this.dynamicFilterOperators.includes(o.operator))\r\n\t}\r\n\r\n\tprivate get dynamicFilterOperators (): Operator[] {\r\n\t\treturn this.dynamicFilter && this.columnsByKey[this.dynamicFilter]\r\n\t\t\t? this.columnsByKey[this.dynamicFilter].operators\r\n\t\t\t\t? this.columnsByKey[this.dynamicFilter].operators\r\n\t\t\t\t: operatorsByFieldType[this.columnsByKey[this.dynamicFilter].dataType] || []\r\n\t\t\t: []\r\n\t}\r\n\r\n\tprivate get dynamicFilterClauses (): AdvancedSearchFilter[] {\r\n\t\treturn !!this.dynamicFilterColumn && this.dynamicFilterOperator !== null && this.dynamicFilterValue !== null\r\n\t\t\t? [{\r\n\t\t\t\tkey: this.dynamicFilter!,\r\n\t\t\t\toperator: this.dynamicFilterOperator,\r\n\t\t\t\tvalue: this.dynamicFilterValue,\r\n\t\t\t\tcolumn: this.dynamicFilterColumn\r\n\t\t\t}]\r\n\t\t\t: []\r\n\t}\r\n\r\n\tprivate get dynamicFilterOperatorLabel (): string {\r\n\t\treturn this.dynamicFilterOperator !== null\r\n\t\t\t? operatorLabels.findAndGet(l => l.operator === this.dynamicFilterOperator, l => l.label, \"\")\r\n\t\t\t: \"\"\r\n\t}\r\n\r\n\tprivate get filteredResultGroups () : FilteredCalculationResults[] {\r\n\t\tif (!this.selectedInsight || !this.resultGroups) return []\r\n\r\n\t\tconst filterFunctions = filterMixin.methods.filtersToFunctions(this.dynamicFilterClauses, \"\")\r\n\t\treturn filterMixin.methods.filterGroups(this.resultGroups, filterFunctions, this.labelFormat, this.selectedInsight!, this.fields)\r\n\t}\r\n\r\n\tprivate get dynamicParameterValueList (): DynamicParameterValue[] {\r\n\t\treturn Object.keys(this.dynamicParameterValues).map(key => this.dynamicParameterValues[key])\r\n\t}\r\n\r\n\tprivate get missingDynamicParameters (): boolean {\r\n\t\treturn (!!this.availableDynamicParameters &&\r\n\t\t\tthis.availableDynamicParameters.length > 0 &&\r\n\t\t\tthis.availableDynamicParameters.some(p => !this.parameterIsValid(p)))\r\n\t}\r\n\r\n\tpublic async mounted () {\r\n\t\tif (this.edit) {\r\n\t\t\tthis.insights = await api.insightsGet()\r\n\r\n\t\t\tif (!this.value || this.value.insightId === undefined) {\r\n\t\t\t\tthis.$emit(\"input\", {\r\n\t\t\t\t\tinsightId: null,\r\n\t\t\t\t\tchartType: null\r\n\t\t\t\t})\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (this.value && this.value.insightId) {\r\n\t\t\tthis.selectedInsightId = this.value.insightId\r\n\t\t\tthis.selectedInsight = await api.insightGet(this.value.insightId, true)\r\n\r\n\t\t\tif (this.selectedInsight && this.value.chartType) {\r\n\t\t\t\tconst chartType = insightViews.find(c => c.key === this.value.chartType)\r\n\t\t\t\tif (chartType && chartType.key === \"HeatMap\") {\r\n\t\t\t\t\tawait this.loadFieldsIfUnloaded()\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (chartType && chartType.canDisplay(this.selectedInsight, this.selectedInsight.calculations, this.fields, true)) {\r\n\t\t\t\t\tthis.chartType = chartType\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (this.selectedInsight.includeGlobalParameters) {\r\n\t\t\t\t\tthis.insightParameters = await api.insightParameters()\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tthis.graphCalculations = this.value.graphCalculations\r\n\t\t\t\t? this.value.graphCalculations\r\n\t\t\t\t: []\r\n\t\t\tthis.graphSingleCalculation = this.value.graphSingleCalculation\r\n\t\t\t\t? this.value.graphSingleCalculation\r\n\t\t\t\t: null\r\n\t\t}\r\n\r\n\t\tif (this.value && this.value.filterFromInsightId) {\r\n\t\t\tthis.filterFromInsightId = this.value.filterFromInsightId\r\n\t\t\tthis.filterFromInsight = await api.insightGet(this.filterFromInsightId!, true)\r\n\t\t\tthis.resultGroups = []\r\n\t\t}\r\n\t\tif (!this.edit && this.value && this.value.insightId) {\r\n\t\t\tthis.onEditChanged()\r\n\t\t} else {\r\n\t\t\tthis.loading = false\r\n\t\t}\r\n\r\n\t\tthis.reloadResultsKey = Guid.newGuid()\r\n\t}\r\n\r\n\t@Watch(\"edit\")\r\n\tasync onEditChanged () {\r\n\t\tthis.loading = true\r\n\r\n\t\tif (this.value) {\r\n\t\t\tthis.dynamicFilter = this.value.dynamicFilter || null\r\n\t\t\tthis.dynamicFilterOperator = this.value.dynamicFilterOperator === undefined ? null : this.value.dynamicFilterOperator\r\n\t\t\tthis.hideFilters = this.value.hideFilters || false\r\n\t\t}\r\n\r\n\t\tif (this.edit) {\r\n\t\t\tawait Promise.all([\r\n\t\t\t\tapi.insightsGet().then(insights => this.insights = insights),\r\n\t\t\t\tthis.loadFieldsIfUnloaded()\r\n\t\t\t])\r\n\r\n\t\t\tif (!this.value || this.value.insightId === undefined) {\r\n\t\t\t\tthis.$emit(\"input\", {\r\n\t\t\t\t\tinsightId: null,\r\n\t\t\t\t\tchartType: null\r\n\t\t\t\t})\r\n\t\t\t}\r\n\t\t} else if (!this.edit && this.selectedInsight && this.chartType && !this.filterFromInsightId) {\r\n\t\t\tif (this.selectedInsight!.dynamicParameters) {\r\n\t\t\t\tthis.selectedInsight!.dynamicParameters.forEach(p => {\r\n\t\t\t\t\tif (p.defaultValue) {\r\n\t\t\t\t\t\tVue.set(this.dynamicParameterValues, p.key, {\r\n\t\t\t\t\t\t\tkey: p.key,\r\n\t\t\t\t\t\t\tdataType: p.dataType,\r\n\t\t\t\t\t\t\tvalue: p.defaultValue,\r\n\t\t\t\t\t\t\tdynamicValue: p.dynamicValue || false,\r\n\t\t\t\t\t\t\tsearchClauseParameters: p.searchClauseParameters\r\n\t\t\t\t\t\t})\r\n\t\t\t\t\t}\r\n\t\t\t\t})\r\n\t\t\t}\r\n\r\n\t\t\tawait this.runInsight()\r\n\t\t}\r\n\r\n\t\tthis.loading = false\r\n\t}\r\n\r\n\tpublic async runInsight (additionalClauses: Clause[] | null = null, page: number = 1) {\r\n\t\tif ((this.selectedInsight && this.chartType) && (\r\n\t\t\t!this.activeDynamicParameters ||\r\n\t\t\tthis.activeDynamicParameters.length === 0 ||\r\n\t\t\tthis.activeDynamicParameters.every(p => this.parameterIsValid(p))\r\n\t\t)) {\r\n\t\t\tthis.hasBeenRun = true\r\n\r\n\t\t\tthis.loading = true\r\n\t\t\tconst runStartedAt = new Date(Date.now())\r\n\t\t\tthis.lastRequestStartedAt = runStartedAt\r\n\r\n\t\t\tconst insightData = await api.insightById(this.selectedInsight.id!, additionalClauses === null,\r\n\t\t\t\t(this.chartType.key === \"table\" || this.chartType.key === \"HeatMap\" || !!this.dynamicFilter),\r\n\t\t\t\tthis.dynamicParameterValueList,\r\n\t\t\t\tadditionalClauses,\r\n\t\t\t\tpage,\r\n\t\t\t\tthis.perPage,\r\n\t\t\t\tthis.selectedSorting.sortBy,\r\n\t\t\t\tthis.selectedSorting.sortDesc,\r\n\t\t\t\tthis.selectedSorting.sortDataType\r\n\t\t\t)\r\n\r\n\t\t\tif (!this.lastRequestStartedAt || runStartedAt < this.lastRequestStartedAt) {\r\n\t\t\t\treturn // another request was started after this one, so ignore the results\r\n\t\t\t}\r\n\r\n\t\t\tthis.selectedClauses = additionalClauses ? [...additionalClauses] : null\r\n\r\n\t\t\tif (!insightData) {\r\n\t\t\t\treturn\r\n\t\t\t}\r\n\r\n\t\t\tthis.calculatedResultsId = insightData.id\r\n\t\t\tthis.labelFormat = insightData.labelFormat\r\n\r\n\t\t\tif (this.chartType.key === \"table\" || this.chartType.key === \"HeatMap\") {\r\n\t\t\t\tconst fields = await this.loadFieldsIfUnloaded()\r\n\t\t\t\tconst allColumns = [\r\n\t\t\t\t\t...caseColumns,\r\n\t\t\t\t\t...fields.map(f => {\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\tlabel: f.title,\r\n\t\t\t\t\t\t\tkey: \"fields.\" + f.id,\r\n\t\t\t\t\t\t\tfieldId: f.id,\r\n\t\t\t\t\t\t\tdataType: f.dataType,\r\n\t\t\t\t\t\t\tfieldDataType: f.dataType === \"calculated\"\r\n\t\t\t\t\t\t\t\t? CalculationDataTypeValue[f.extensions!.calculationType as CalculationType]\r\n\t\t\t\t\t\t\t\t: dataTypeByFieldType[f.dataType!]\r\n\t\t\t\t\t\t\t\t\t? dataTypeByFieldType[f.dataType!]\r\n\t\t\t\t\t\t\t\t\t: null,\r\n\t\t\t\t\t\t\tdataSourceId: f.dataSourceId,\r\n\t\t\t\t\t\t\tdynamicField: true,\r\n\t\t\t\t\t\t\tfieldExtensions: f.extensions\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t})\r\n\t\t\t\t].toDictionary(\"key\")\r\n\r\n\t\t\t\tthis.tableColumns = this.selectedInsight!.columns.map(tableColumn => allColumns[tableColumn])\r\n\t\t\t\t\t.filter(c => !!c)\r\n\t\t\t}\r\n\r\n\t\t\tthis.selectedInsight!.calculations.forEach(calculation => {\r\n\t\t\t\tVue.set(calculation, \"groupByKeyLabels\", insightData.calculationGroupByLabels[calculation.key])\r\n\t\t\t})\r\n\r\n\t\t\tthis.resultGroups = insightData.results\r\n\r\n\t\t\tif (additionalClauses) {\r\n\t\t\t\tthis.filteredResultsLoaded = true\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tthis.resultGroups = null\r\n\t\t}\r\n\r\n\t\tthis.loading = false\r\n\t}\r\n\r\n\tpublic parameterIsValid (p: DynamicParameter): boolean {\r\n\t\tif (!this.dynamicParameterValues[p.key] || this.dynamicParameterValues[p.key].value === null) {\r\n\t\t\treturn false\r\n\t\t}\r\n\r\n\t\tswitch (p.dataType) {\r\n\t\t\tcase DataType.string:\r\n\t\t\t\tif (this.dynamicParameterValues[p.key].value === \"\") {\r\n\t\t\t\t\t// Treat empty strings as invalid to avoid inconsistent parameter input field behavior between data types e.g. numeric fields disallowing no value set\r\n\t\t\t\t\treturn false\r\n\t\t\t\t}\r\n\t\t\t\tbreak\r\n\t\t\tcase DataType.dateRange:\r\n\t\t\t\tconst value = this.dynamicParameterValues[p.key].value\r\n\t\t\t\tif (value === \"DateRange\") {\r\n\t\t\t\t\tif (\r\n\t\t\t\t\t\t!this.dynamicParameterValues[p.key].searchClauseParameters ||\r\n\t\t\t\t\t\t!this.dynamicParameterValues[p.key].searchClauseParameters!.startDate ||\r\n\t\t\t\t\t\t!this.dynamicParameterValues[p.key].searchClauseParameters!.endDate\r\n\t\t\t\t\t) {\r\n\t\t\t\t\t\treturn false\r\n\t\t\t\t\t}\r\n\t\t\t\t} else if (value === \"MonthRange\") {\r\n\t\t\t\t\tif (\r\n\t\t\t\t\t\t!this.dynamicParameterValues[p.key].searchClauseParameters ||\r\n\t\t\t\t\t\t!this.dynamicParameterValues[p.key].searchClauseParameters!.startMonthRange ||\r\n\t\t\t\t\t\t!this.dynamicParameterValues[p.key].searchClauseParameters!.endMonthRange\r\n\t\t\t\t\t) {\r\n\t\t\t\t\t\treturn false\r\n\t\t\t\t\t}\r\n\t\t\t\t} else if (value === \"WeekNumber\") {\r\n\t\t\t\t\tif (\r\n\t\t\t\t\t\t!this.dynamicParameterValues[p.key].searchClauseParameters ||\r\n\t\t\t\t\t\t!this.dynamicParameterValues[p.key].searchClauseParameters!.weekNumber\r\n\t\t\t\t\t) {\r\n\t\t\t\t\t\treturn false\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\tbreak\r\n\t\t}\r\n\r\n\t\treturn true\r\n\t}\r\n\r\n\tpublic async selectInsight (insightId: string) {\r\n\t\tthis.selectedInsightId = insightId\r\n\t\tthis.selectedInsight = await api.insightGet(insightId, true)\r\n\r\n\t\tVue.set(this.value, \"insightId\", insightId)\r\n\t\tthis.$emit(\"input\", this.value)\r\n\t}\r\n\r\n\tpublic async chooseFilterFromInsight (insightId: string | null) {\r\n\t\tif (!this.value.insightId) { // don't filter from insight if no primary selected\r\n\t\t\treturn\r\n\t\t}\r\n\r\n\t\tif (insightId) {\r\n\t\t\tthis.filterFromInsightId = insightId\r\n\t\t\tthis.filterFromInsight = await api.insightGet(insightId, true)\r\n\t\t} else {\r\n\t\t\tthis.filterFromInsightId = null\r\n\t\t\tthis.filterFromInsight = null\r\n\t\t}\r\n\t\tVue.set(this.value, \"filterFromInsightId\", insightId)\r\n\t\tthis.$emit(\"input\", this.value)\r\n\t\tthis.resultGroups = []\r\n\t}\r\n\r\n\tpublic async selectChartType (chartType: any) {\r\n\t\tVue.set(this.value, \"chartType\", chartType.key)\r\n\t\tthis.$emit(\"input\", this.value)\r\n\t}\r\n\r\n\tpublic async chartOptionsChanged (graphOptions: any) {\r\n\t\tVue.set(this.value, \"graphOptions\", graphOptions)\r\n\t\tthis.$emit(\"input\", this.value)\r\n\t}\r\n\r\n\tpublic async graphSeriesChanged (graphCalculations: string[]) {\r\n\t\tVue.set(this.value, \"graphCalculations\", graphCalculations)\r\n\t\tthis.$emit(\"input\", this.value)\r\n\t}\r\n\r\n\tpublic async graphSingleCalculationChanged (graphSingleCalculation: string) {\r\n\t\tVue.set(this.value, \"graphSingleCalculation\", graphSingleCalculation)\r\n\t\tthis.$emit(\"input\", this.value)\r\n\t}\r\n\r\n\t@Watch(\"dashboardState.calculationTableClickedRows\", { deep: true })\r\n\tpublic async filterResultGroups () {\r\n\t\tif (!this.filterFromInsightId || !this.selectedInsightId) {\r\n\t\t\treturn\r\n\t\t}\r\n\r\n\t\tif (this.dashboardState.lastChangedFilterFromInsightId !== this.filterFromInsightId) {\r\n\t\t\treturn\r\n\t\t}\r\n\r\n\t\tthis.filteredResultsLoaded = false\r\n\r\n\t\tconst clickedRow = this.dashboardState.calculationTableClickedRows[this.filterFromInsightId]\r\n\r\n\t\t// If we allow users to select another insight to filter from (filterFromInsightId != null),\r\n\t\t// do not load initial results (filterFromInsight has not been clicked)\r\n\r\n\t\tif (!clickedRow || clickedRow.label === \"Total\") {\r\n\t\t\tthis.insightFilterIsActive = false\r\n\t\t\tthis.resultGroups = []\r\n\t\t\treturn\r\n\t\t}\r\n\r\n\t\tthis.filteredResultsLoading = true\r\n\t\tconst additionalClause: Clause = await this.convertRowGroupToClause(clickedRow)\r\n\r\n\t\tthis.insightFilterIsActive = true\r\n\t\tthis.filterFromGroupLabel = clickedRow.label === \"\" ? \"None\" : clickedRow.label\r\n\t\tthis.reloadResultsKey = Guid.newGuid()\r\n\r\n\t\tawait this.runInsight([additionalClause])\r\n\t\tthis.filteredResultsLoading = false\r\n\t}\r\n\r\n\tprivate calculationTableRowClick (clickedRow: any) {\r\n\t\tthis.$emit(\"calculationTableRowClick\", this.selectedInsightId, clickedRow)\r\n\t}\r\n\r\n\tprivate async convertRowGroupToClause (selectedGroupRow: any) : Promise {\r\n\t\tawait this.loadFieldsIfUnloaded()\r\n\t\tconst groupFieldId = this.filterFromInsight!.groupBy!\r\n\r\n\t\tconst filterByCaseColumn = this.allCaseFields.find(c => c.key === groupFieldId)!\r\n\r\n\t\tthis.filterFromFieldName = filterByCaseColumn.label\r\n\r\n\t\tlet clauseOperator\r\n\r\n\t\tif (!selectedGroupRow.value) {\r\n\t\t\tclauseOperator = Operator.NotSet\r\n\t\t} else if (this.shouldFilterByDateRange()) {\r\n\t\t\tclauseOperator = Operator.DateRange\r\n\t\t} else if (this.shouldFilterByTeam()) {\r\n\t\t\tclauseOperator = Operator.InTeam\r\n\t\t} else {\r\n\t\t\tconst equalityOperator = defaultFieldOperator[filterByCaseColumn.fieldDataType || DataType.none]\r\n\t\t\tclauseOperator = equalityOperator\r\n\t\t}\r\n\r\n\t\tthis.setDateLabelFormat()\r\n\r\n\t\tconst searchClauseParameters = this.getDateSearchParameters(selectedGroupRow)\r\n\r\n\t\tconst clause : Clause = {\r\n\t\t\tdynamicField: filterByCaseColumn.dynamicField ? filterByCaseColumn.dynamicField : false,\r\n\t\t\tdynamicValue: this.shouldFilterByDateRange(),\r\n\t\t\tfieldDataType: filterByCaseColumn.fieldDataType!,\r\n\t\t\tlabel: \"\",\r\n\t\t\tvalue: this.shouldFilterByDateRange() ? \"DateRange\" : selectedGroupRow.value,\r\n\t\t\tsearchClauseParameters: searchClauseParameters,\r\n\t\t\tfield: groupFieldId,\r\n\t\t\tdataSourceId: filterByCaseColumn.dataSourceId || undefined,\r\n\t\t\toperator: clauseOperator,\r\n\t\t\tvalueLabel: filterByCaseColumn.valueLabel,\r\n\t\t\tdefinitionId: filterByCaseColumn.definitionId || undefined,\r\n\t\t\tvalueObject: filterByCaseColumn.valueObject\r\n\t\t}\r\n\r\n\t\treturn clause\r\n\t}\r\n\r\n\tprivate setDateLabelFormat () {\r\n\t\tif (!this.shouldFilterByDateRange()) {\r\n\t\t\tthis.filterFromLabelFormat = LabelFormat.Text\r\n\t\t\treturn\r\n\t\t}\r\n\r\n\t\tthis.filterFromLabelFormat = LabelFormat.Date\r\n\t\tif (this.filterFromInsight!.groupByDateFormat === GroupByDateFormat.Day) {\r\n\t\t\tthis.filterFromLabelFormat = LabelFormat.Date\r\n\t\t} else if (this.filterFromInsight!.groupByDateFormat === GroupByDateFormat.Week) {\r\n\t\t\tthis.filterFromLabelFormat = LabelFormat.WeekDate\r\n\t\t} else if (this.filterFromInsight!.groupByDateFormat === GroupByDateFormat.Month) {\r\n\t\t\tthis.filterFromLabelFormat = LabelFormat.MonthDate\r\n\t\t}\r\n\t}\r\n\r\n\tprivate shouldFilterByDateRange () : boolean {\r\n\t\treturn this.filterFromInsight!.groupByDataType === DataType.dateTime &&\r\n\t\t\t\t\t\t\t\t\tthis.filterFromInsight!.groupByDateFormat !== undefined &&\r\n\t\t\t\t\t\t\t\t\tthis.filterFromInsight!.groupByDateFormat !== null\r\n\t}\r\n\r\n\tprivate getDateSearchParameters (selectedGroupRow: any) : SearchClauseParameters {\r\n\t\tif (!this.shouldFilterByDateRange()) {\r\n\t\t\treturn defaultSearchClauseParameters\r\n\t\t}\r\n\r\n\t\tlet startDate : Date\r\n\r\n\t\tif (this.filterFromInsight!.groupByDateFormat === GroupByDateFormat.Quarter) {\r\n\t\t\t// Only seem to have .NET ticks for Quarters - label isn't a JS date\r\n\t\t\t// - so have to convert from .NET ticks to JS date\r\n\t\t\tconst jsTicks = (parseInt(selectedGroupRow.value) - 621355968000000000) / 10000\r\n\t\t\tstartDate = new Date(jsTicks)\r\n\t\t} else {\r\n\t\t\tstartDate = new Date(selectedGroupRow.label)\r\n\t\t}\r\n\r\n\t\tlet endDate = new Date(startDate)\r\n\r\n\t\tif (this.filterFromInsight!.groupByDateFormat === GroupByDateFormat.Day) {\r\n\t\t\tendDate.setDate(endDate.getDate() + 1)\r\n\t\t} else if (this.filterFromInsight!.groupByDateFormat === GroupByDateFormat.Week) {\r\n\t\t\tendDate.setDate(endDate.getDate() + 7)\r\n\t\t} else if (this.filterFromInsight!.groupByDateFormat === GroupByDateFormat.Month) {\r\n\t\t\tendDate = new Date(endDate.getFullYear(), endDate.getMonth(), 1)\r\n\t\t\tendDate.setMonth(endDate.getMonth() + 1)\r\n\t\t} else if (this.filterFromInsight!.groupByDateFormat === GroupByDateFormat.Quarter) {\r\n\t\t\tendDate = new Date(endDate.getFullYear(), endDate.getMonth(), 1)\r\n\t\t\tendDate.setMonth(endDate.getMonth() + 3)\r\n\t\t}\r\n\r\n\t\tendDate.setMilliseconds(endDate.getMilliseconds() - 1) // DataService uses >= and <= so need to make it just before\r\n\r\n\t\t// Dates should be converted to UTC automatically\r\n\t\tconst searchClauseParameters = {\r\n\t\t\tstartDayOfWeek: DayOfWeek.Monday,\r\n\t\t\tstartDate: startDate,\r\n\t\t\tendDate: endDate,\r\n\t\t\ttimeSpentClause: {\r\n\t\t\t\tsearchValue: \"\",\r\n\t\t\t\tsearchLabel: \"\",\r\n\t\t\t\thoursSpent: 0,\r\n\t\t\t\ttrackingFieldId: \"\"\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn searchClauseParameters\r\n\t}\r\n\r\n\tprivate shouldFilterByTeam () : boolean {\r\n\t\treturn this.filterFromInsight!.groupByDataType === DataType.userRole && this.filterFromInsight!.groupByOption === \"team\"\r\n\t}\r\n\r\n\tprivate async clearCalculationTableFilter () {\r\n\t\tthis.filterFromGroupLabel = null\r\n\t\tthis.insightFilterIsActive = false\r\n\t\tthis.resultGroups = []\r\n\t}\r\n\r\n\tpublic async updateValue (key: string, value: any) {\r\n\t\tVue.set(this.value, key, value)\r\n\t\tthis.$emit(\"input\", this.value)\r\n\t}\r\n\r\n\tprivate get availableDynamicParameters () {\r\n\t\tif (!this.selectedInsight) return []\r\n\r\n\t\tvar dynamicParameters: DynamicParameter[] = []\r\n\r\n\t\tif (this.selectedInsight!.dynamicParameters) {\r\n\t\t\tdynamicParameters = this.selectedInsight!.dynamicParameters.filter(p => !!p.key)\r\n\t\t}\r\n\r\n\t\tif (this.selectedInsight!.includeGlobalParameters) {\r\n\t\t\t// Add the global parameters to the dashboard parameters\r\n\t\t\tthis.$emit(\"addGlobalParameters\", this.selectedInsight!.includeGlobalParameters)\r\n\r\n\t\t\tthis.selectedInsight!.includeGlobalParameters.forEach((parameterId: string) => {\r\n\t\t\t\tconst parameters = this.insightParameters.filter(parameter => parameter.key === parameterId)\r\n\t\t\t\tdynamicParameters = dynamicParameters.concat(parameters)\r\n\t\t\t})\r\n\t\t}\r\n\r\n\t\treturn dynamicParameters\r\n\t}\r\n\r\n\t/**\r\n\t * The Dynamic Parameters that are in use i.e. referenced in the Insight's clauses / subclauses\r\n\t */\r\n\tprivate get activeDynamicParameters () {\r\n\t\tif (!this.selectedInsight) return []\r\n\r\n\t\treturn this.availableDynamicParameters.filter(p => this.selectedInsight!.clauses.some(c =>\r\n\t\t\tc.dynamicParameter === p.key ||\r\n\t\t\t(\r\n\t\t\t\t// is an OR subclause parameter\r\n\t\t\t\t!!c.orClause && !!c.subClauses &&\r\n\t\t\t\tc.subClauses.some(sc => sc.dynamicParameter === p.key)\r\n\t\t\t)\r\n\t\t))\r\n\t}\r\n\r\n\tpublic dynamicFilterChanged (value: string) {\r\n\t\tVue.set(this.value, \"dynamicFilterOperator\", value)\r\n\t\tthis.updateValue(\"dynamicFilter\", value)\r\n\t}\r\n\r\n\tprivate setParameter (key: string, value: DynamicParameterValue | null) {\r\n\t\tVue.set(this.dynamicParameterValues, key, value)\r\n\r\n\t\tif (!this.edit) {\r\n\t\t\t// Debounce running of insight to allow for all value changes to be applied\r\n\t\t\tif (this.runInsightTimeout) {\r\n\t\t\t\tclearTimeout(this.runInsightTimeout)\r\n\t\t\t\tthis.runInsightTimeout = null\r\n\t\t\t}\r\n\r\n\t\t\tthis.runInsightTimeout = setTimeout(() => {\r\n\t\t\t\tthis.runInsight()\r\n\t\t\t\tthis.runInsightTimeout = null\r\n\t\t\t}, 1000)\r\n\t\t}\r\n\t}\r\n\r\n\tprivate async loadNextPage (tableId: string, details: CurrentPageDetails): Promise {\r\n\t\tif (!!this.selectedInsight && !!this.calculatedResultsId && !!details && !!this.resultGroups) {\r\n\t\t\tthis.loading = true\r\n\t\t\ttry {\n\t\t\t\t// We need to pass in the same data as though we're calling InsightById so we can get the Insight data if the data is not cached.\r\n\t\t\t\tconst tableData: CalculationResults = await api.insightCasesForTable(this.selectedInsight.id!, this.selectedClauses === null,\r\n\t\t\t\t\t(this.chartType.key === \"table\" || this.chartType.key === \"HeatMap\" || !!this.dynamicFilter),\r\n\t\t\t\t\tthis.dynamicParameterValueList,\r\n\t\t\t\t\tthis.selectedClauses,\r\n\t\t\t\t\tdetails.pageNumber ?? 1,\r\n\t\t\t\t\tthis.perPage,\r\n\t\t\t\t\tthis.calculatedResultsId,\r\n\t\t\t\t\ttableId,\r\n\t\t\t\t\tdetails.sortBy ?? \"\",\r\n\t\t\t\t\tdetails.sortDesc ?? false,\r\n\t\t\t\t\tdetails.sortDataType ?? DataType.none\r\n\t\t\t\t)\r\n\t\t\t\tconst toUpdate = this.resultGroups.firstOrDefault(r => r.value === tableId)\r\n\r\n\t\t\t\tif (!!toUpdate && !!tableData && !!tableData.results) {\r\n\t\t\t\t\ttoUpdate.results = [...tableData.results]\r\n\t\t\t\t}\r\n\t\t\t} catch (err) {\r\n\t\t\t\tconsole.error(err)\r\n\t\t\t} finally {\r\n\t\t\t\tthis.loading = false\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tthis.runInsight()\r\n\t\t}\r\n\t}\r\n\r\n\tprivate async reloadInsightBySort (details: CurrentPageDetails): Promise {\n\t\tif (!!this.selectedInsight && !!this.calculatedResultsId && !!details && !!this.resultGroups) {\r\n\t\t\ttry {\r\n\t\t\t\tthis.loading = true\r\n\t\t\t\tconst groupedResults = await api.insightCasesForTable(this.selectedInsight.id!, this.selectedClauses === null,\r\n\t\t\t\t\t(this.chartType.key === \"table\" || this.chartType.key === \"HeatMap\" || !!this.dynamicFilter),\r\n\t\t\t\t\tthis.dynamicParameterValueList,\r\n\t\t\t\t\tthis.selectedClauses, details.pageNumber ?? 1,\r\n\t\t\t\t\tthis.perPage,\r\n\t\t\t\t\tthis.calculatedResultsId,\r\n\t\t\t\t\tdetails.tableId ?? details.value,\r\n\t\t\t\t\tdetails.sortBy ?? \"\",\r\n\t\t\t\t\tdetails.sortDesc ?? false,\r\n\t\t\t\t\tdetails.sortDataType ?? DataType.none\r\n\t\t\t\t)\r\n\t\t\t\tconst toUpdate = this.resultGroups.firstOrDefault(r => r.value === details.value)\r\n\r\n\t\t\t\tif (toUpdate) {\r\n\t\t\t\t\ttoUpdate.results = [...groupedResults.results]\r\n\t\t\t\t}\r\n\t\t\t} catch (err) {\r\n\t\t\t\tconsole.error(err)\r\n\t\t\t\tthis.runInsight(this.selectedClauses, this.selectedInsight?.page)\r\n\t\t\t} finally {\r\n\t\t\t\tthis.loading = false\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tprivate async reloadInsightByClauses (clauses: Clause[]): Promise {\r\n\t\tif (clauses) {\r\n\t\t\tthis.selectedClauses = [...clauses]\r\n\t\t\tthis.runInsight(this.selectedClauses)\r\n\t\t}\r\n\t}\r\n}\r\n\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Graph.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Graph.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Graph.vue?vue&type=template&id=23001f62&scoped=true&\"\nimport script from \"./Graph.vue?vue&type=script&lang=ts&\"\nexport * from \"./Graph.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./Graph.vue?vue&type=style&index=0&id=23001f62&prod&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"23001f62\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"card\"},[_c('div',{staticClass:\"card-header\"},[_c('b',[_vm._v(_vm._s(_vm.cellData.title))])]),_c('skeleton',{staticClass:\"d-flex flex-column card-body\",attrs:{\"loading\":_vm.loadingCases}},[_c('scrollbar',{staticClass:\"contents h-100\"},[(_vm.cellData.metrics)?_c('b-table-simple',_vm._l((_vm.cellData.metrics),function(metric){return _c('b-tr',{key:metric.id},[_c('b-th',[_vm._v(\" \"+_vm._s(metric.title)+\" \")]),_c('b-td',[_vm._v(\" \"+_vm._s(metric.value)+\" \")])],1)}),1):_vm._e()],1),_c('div',{staticClass:\"watermark\"},[_c('span',[_vm._v(\" SAMPLE DATA \")])])],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { Component, Vue, Watch, Prop } from \"vue-property-decorator\"\r\nimport { namespace, Getter, Mutation, Action } from \"vuex-class\"\r\n\r\n// @ts-ignore\r\nimport VuePerfectScrollbar from \"vue-perfect-scrollbar\"\r\nimport { Case } from \"@/types/case\"\r\nimport SkeletonLoader from \"../SkeletonLoader.vue\"\r\n\r\nimport api from \"@/services/api\"\r\n\r\n@Component({\r\n\tcomponents: {\r\n\t\t\"scrollbar\": VuePerfectScrollbar,\r\n\t\t\"skeleton\": SkeletonLoader\r\n\t}\r\n})\r\nexport default class Metrics extends Vue {\r\n\t@Prop()\r\n\tcellData: any;\r\n}\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Metrics.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Metrics.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Metrics.vue?vue&type=template&id=8d0d260a&scoped=true&\"\nimport script from \"./Metrics.vue?vue&type=script&lang=ts&\"\nexport * from \"./Metrics.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./Metrics.vue?vue&type=style&index=0&id=8d0d260a&prod&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"8d0d260a\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"card\"},[(_vm.selectedInsight)?_c('div',{staticClass:\"card-header\"},[_c('b',[_vm._v(\"Top Value: \"+_vm._s(_vm.selectedInsight.title))])]):_vm._e(),_c('skeleton',{staticClass:\"d-flex flex-column card-body\",attrs:{\"loading\":_vm.loading}},[(_vm.edit)?[(!_vm.loading)?_c('b-table-simple',[_c('b-tr',[_c('b-td',[_vm._v(\"Insight\")]),_c('b-td',[_c('v-select',{attrs:{\"options\":_vm.insights,\"label\":\"title\",\"reduce\":function (insight) { return insight.id; },\"append-to-body\":\"\",\"clearable\":false},on:{\"input\":_vm.selectInsight},model:{value:(_vm.selectedInsightId),callback:function ($$v) {_vm.selectedInsightId=$$v},expression:\"selectedInsightId\"}})],1)],1),(_vm.selectedInsight)?_c('b-tr',[_c('b-td',[_vm._v(\"Order By\")]),_c('b-td',[(_vm.selectedInsight.groupBy)?_c('v-select',{attrs:{\"options\":_vm.calculationOptions,\"clearable\":false,\"label\":\"label\",\"reduce\":function (i) { return i.key; },\"append-to-body\":\"\"},on:{\"input\":_vm.selectOrderBy},model:{value:(_vm.orderBy),callback:function ($$v) {_vm.orderBy=$$v},expression:\"orderBy\"}}):_c('v-select',{attrs:{\"options\":_vm.tableColumns,\"clearable\":false,\"label\":\"label\",\"reduce\":function (i) { return i.key; },\"append-to-body\":\"\"},on:{\"input\":_vm.selectOrderBy},model:{value:(_vm.orderBy),callback:function ($$v) {_vm.orderBy=$$v},expression:\"orderBy\"}})],1)],1):_vm._e(),(_vm.selectedInsight)?_c('b-tr',[_c('b-td',[_vm._v(\"Columns\")]),_c('b-td',[(_vm.selectedInsight.groupBy)?_c('v-select',{attrs:{\"options\":_vm.selectedInsight.calculations,\"clearable\":false,\"label\":\"label\",\"reduce\":function (i) { return i.key; },\"multiple\":\"\",\"append-to-body\":\"\"},on:{\"input\":_vm.selectColumns},model:{value:(_vm.selectedColumns),callback:function ($$v) {_vm.selectedColumns=$$v},expression:\"selectedColumns\"}}):_c('v-select',{attrs:{\"options\":_vm.columnOptions,\"clearable\":false,\"label\":\"label\",\"reduce\":function (i) { return i.key; },\"multiple\":\"\",\"append-to-body\":\"\"},on:{\"input\":_vm.selectColumns},model:{value:(_vm.selectedColumns),callback:function ($$v) {_vm.selectedColumns=$$v},expression:\"selectedColumns\"}})],1)],1):_vm._e()],1):_vm._e()]:(!_vm.loading && _vm.topValueResult)?[(_vm.selectedInsight.groupBy)?_c('div',{staticClass:\"h-100 d-flex flex-column\",staticStyle:{\"overflow\":\"hidden\"}},[_c('h5',[_vm._v(_vm._s(_vm.valueLabel))]),_c('scrollbar',{staticClass:\"flex-shrink-1\"},[_c('b-table',{staticClass:\"h-100 hide-header\",staticStyle:{\"overflow\":\"hidden\"},attrs:{\"items\":_vm.groupedResults,\"fields\":_vm.groupFields},scopedSlots:_vm._u([{key:\"head()\",fn:function(){return undefined},proxy:true}],null,false,2882169088)})],1)],1):_c('results-table',{staticClass:\"h-100\",staticStyle:{\"overflow\":\"hidden\"},attrs:{\"resultGroups\":[_vm.topValueResult],\"columns\":_vm.filterColumns,\"insight\":_vm.selectedInsight,\"labelFormat\":_vm.labelFormat,\"showCalculations\":false}})]:_vm._e()],2)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { Component, Vue, Watch, Prop } from \"vue-property-decorator\"\r\nimport { namespace, Getter, Mutation, Action } from \"vuex-class\"\r\n\r\nimport moment from \"moment\"\r\n\r\n// @ts-ignore\r\nimport VuePerfectScrollbar from \"vue-perfect-scrollbar\"\r\nimport { Case, Field } from \"@/types\"\r\nimport { Insight, InsightCalculation, InsightDetails, InsightSummary, LabelFormat } from \"@/types/insights\"\r\nimport { caseColumns, CaseColumn } from \"@/types/caseColumns\"\r\nimport SkeletonLoader from \"../SkeletonLoader.vue\"\r\nimport vSelect from \"vue-select\"\r\n\r\nimport api from \"@/services/api\"\r\n\r\nimport TableResults from \"@/components/Insights/TableResults.vue\"\r\nimport CaseTable from \"@/components/CaseList/CaseTable.vue\"\r\n\r\nconst setup = namespace(\"setup\")\r\n\r\n@Component({\r\n\tcomponents: {\r\n\t\t\"scrollbar\": VuePerfectScrollbar,\r\n\t\t\"skeleton\": SkeletonLoader,\r\n\t\t\"results-table\": TableResults,\r\n\t\t\"case-table\": CaseTable,\r\n\t\t\"v-select\": vSelect\r\n\t}\r\n})\r\nexport default class InsightTopResult extends Vue {\r\n\t@Prop()\r\n\tvalue: any;\r\n\r\n\t@Prop()\r\n\tedit!: boolean\r\n\r\n\t@setup.Action loadFieldsIfUnloaded!: () => Promise\r\n\t@setup.State fields!: Field[];\r\n\r\n\tloading: boolean = true;\r\n\r\n\tinsights: InsightSummary[] = [];\r\n\ttableColumns: any[] = [];\r\n\r\n\tselectedInsight: InsightDetails | null = null;\r\n\r\n\tselectedInsightId: string | null = null;\r\n\torderBy: string = \"\";\r\n\tselectedColumns: string[] = [];\r\n\r\n\ttopValueResult: any = null;\r\n\r\n\tlabelFormat: LabelFormat = LabelFormat.Text;\r\n\r\n\tgroupFields = [\r\n\t\t{\r\n\t\t\tkey: \"label\"\r\n\t\t},\r\n\t\t{\r\n\t\t\tkey: \"value\"\r\n\t\t}\r\n\t]\r\n\r\n\tpublic get columnOptions () {\r\n\t\tif (this.selectedInsight) {\r\n\t\t\tvar options: any[] = []\r\n\t\t\tif (this.selectedInsight.calculations) {\r\n\t\t\t\tthis.selectedInsight.calculations.forEach((c:any, index: number) => {\r\n\t\t\t\t\toptions.push({\r\n\t\t\t\t\t\tkey: \"calculation\" + c.groupBy,\r\n\t\t\t\t\t\tlabel: c.label\r\n\t\t\t\t\t})\r\n\t\t\t\t})\r\n\t\t\t}\r\n\r\n\t\t\treturn this.tableColumns.concat(options)\r\n\t\t}\r\n\t\treturn []\r\n\t}\r\n\r\n\tpublic get calculationOptions () {\r\n\t\treturn this.selectedInsight\r\n\t\t\t? this.selectedInsight.calculations.filter(c => !c.groupBy)\r\n\t\t\t: []\r\n\t}\r\n\r\n\tpublic get groupedResults () {\r\n\t\treturn this.topValueResult\r\n\t\t\t? this.selectedColumns.map(column => {\r\n\t\t\t\tvar calculation = this.selectedInsight!.calculations.find(c => c.key === column)\r\n\t\t\t\tif (!calculation) {\r\n\t\t\t\t\treturn []\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (!calculation.groupBy) {\r\n\t\t\t\t\treturn [{\r\n\t\t\t\t\t\tlabel: calculation.label,\r\n\t\t\t\t\t\tvalue: this.topValueResult.calculations[column]\r\n\t\t\t\t\t}]\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn calculation.groupByKeyLabels\r\n\t\t\t\t\t? Object.keys(calculation.groupByKeyLabels as object).map(key => {\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\tlabel: calculation!.label + \" - \" + calculation!.groupByKeyLabels![key],\r\n\t\t\t\t\t\t\tvalue: this.topValueResult.calculations[column]\r\n\t\t\t\t\t\t\t\t? this.topValueResult.calculations[column][key]\r\n\t\t\t\t\t\t\t\t: 0\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t})\r\n\t\t\t\t\t: []\r\n\t\t\t}).flat()\r\n\t\t\t: []\r\n\t}\r\n\r\n\tpublic get valueLabel () {\r\n\t\tif (!this.topValueResult) return \"\"\r\n\r\n\t\tconst label = this.topValueResult.label\r\n\t\tswitch (this.labelFormat) {\r\n\t\t\tcase LabelFormat.Date: {\r\n\t\t\t\tif (!label) return \"Not set\"\r\n\t\t\t\tconst momentDate = moment(label)\r\n\t\t\t\treturn momentDate.isValid() ? momentDate.format(\"L\") : label\r\n\t\t\t}\r\n\t\t\tdefault:\r\n\t\t\t\treturn label === null || label === \"\" ? \"None\" : label.toString()\r\n\t\t}\r\n\t}\r\n\r\n\tpublic async mounted () {\r\n\t\tif (this.edit) {\r\n\t\t\tthis.insights = await api.insightsGet()\r\n\r\n\t\t\tif (!this.value || this.value.insightId === undefined) {\r\n\t\t\t\tthis.$emit(\"input\", {\r\n\t\t\t\t\tinsightId: null,\r\n\t\t\t\t\torderBy: null,\r\n\t\t\t\t\tcolumns: null\r\n\t\t\t\t})\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (this.value && this.value.insightId && this.value.orderBy && this.value.columns) {\r\n\t\t\tthis.selectedInsightId = this.value.insightId\r\n\t\t\tthis.orderBy = this.value.orderBy\r\n\t\t\tthis.selectedColumns = this.value.columns\r\n\r\n\t\t\tthis.selectedInsight = await api.insightGet(this.value.insightId, true)\r\n\t\t}\r\n\t\tthis.onEditChanged()\r\n\t}\r\n\r\n\t@Watch(\"edit\")\r\n\tasync onEditChanged () {\r\n\t\tthis.loading = true\r\n\t\tif (this.edit) {\r\n\t\t\tthis.insights = await api.insightsGet()\r\n\r\n\t\t\tif (!this.value || this.value.insightId === undefined) {\r\n\t\t\t\tthis.$emit(\"input\", {\r\n\t\t\t\t\tinsightId: null,\r\n\t\t\t\t\torderBy: null,\r\n\t\t\t\t\tcolumns: null\r\n\t\t\t\t})\r\n\t\t\t}\r\n\r\n\t\t\t// this.loadColumns()\r\n\t\t} else if (!this.edit && this.selectedInsight) {\r\n\t\t\tconst insightData = await api.insightTopValue(this.selectedInsight!.id!, this.orderBy)\r\n\r\n\t\t\tif (!insightData || !this.selectedInsight.calculations) {\r\n\t\t\t\treturn\r\n\t\t\t}\r\n\r\n\t\t\tthis.labelFormat = insightData.labelFormat\r\n\r\n\t\t\tif (this.selectedInsight.calculations) {\r\n\t\t\t\tthis.selectedInsight.calculations.forEach((calculation: InsightCalculation) => {\r\n\t\t\t\t\tcalculation.groupByKeyLabels = insightData.calculationGroupByLabels[calculation.key]\r\n\t\t\t\t})\r\n\t\t\t}\r\n\r\n\t\t\tif (insightData.results && insightData.results.length > 0) {\r\n\t\t\t\tthis.topValueResult = insightData.results[0]\r\n\r\n\t\t\t\t// Adds any calculation results to the top Value\r\n\t\t\t\tfor (const calculationType in this.topValueResult.calculations) {\r\n\t\t\t\t\t// For each calculation results\r\n\t\t\t\t\tfor (const fieldId in this.topValueResult.calculations[calculationType]) {\r\n\t\t\t\t\t\t// Loop through all properties in the top value results\r\n\t\t\t\t\t\tfor (const prop in this.topValueResult.results[0]) {\r\n\t\t\t\t\t\t\t// If the current property is the calculation\r\n\t\t\t\t\t\t\tif (this.topValueResult.results[0][prop] === fieldId) {\r\n\t\t\t\t\t\t\t\t// Add a property to to the top Value for the calculation value\r\n\t\t\t\t\t\t\t\tthis.topValueResult.results[0][\"calculation\" + prop] = this.topValueResult.calculations[calculationType][fieldId]\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\tthis.topValueResult = null\r\n\t\t\t}\r\n\r\n\t\t\tthis.loadColumns()\r\n\r\n\t\t\tif (this.selectedInsight.calculations) {\r\n\t\t\t\t// Add columns to the table for each calculation\r\n\t\t\t\tthis.selectedInsight.calculations.forEach((calculation: any, index: number) => {\r\n\t\t\t\t\tthis.tableColumns.push({\r\n\t\t\t\t\t\tkey: \"calculation\" + calculation.groupBy,\r\n\t\t\t\t\t\tlabel: calculation.label,\r\n\t\t\t\t\t\tfieldDataType: 0,\r\n\t\t\t\t\t\tdataType: \"text\"\r\n\t\t\t\t\t})\r\n\t\t\t\t})\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tthis.loading = false\r\n\t}\r\n\r\n\tpublic async loadColumns () {\r\n\t\tconst fields = (await this.loadFieldsIfUnloaded()) || []\r\n\t\tconst allColumns = [\r\n\t\t\t...caseColumns,\r\n\t\t\t...fields.map(f => {\r\n\t\t\t\treturn {\r\n\t\t\t\t\tlabel: f.title,\r\n\t\t\t\t\tkey: \"fields.\" + f.id,\r\n\t\t\t\t\tfieldId: f.id,\r\n\t\t\t\t\tdataType: f.dataType,\r\n\t\t\t\t\tdataSourceId: f.dataSourceId,\r\n\t\t\t\t\tdynamicField: true,\r\n\t\t\t\t\tfieldExtensions: f.extensions\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t]\r\n\t\tthis.tableColumns = this.selectedInsight && this.selectedInsight!.columns\r\n\t\t\t? allColumns.filter(c => this.selectedInsight!.columns.indexOf(c.key) > -1)\r\n\t\t\t: []\r\n\t}\r\n\r\n\tpublic async selectInsight (insightId: string) {\r\n\t\tthis.selectedInsight = await api.insightGet(insightId, true)\r\n\r\n\t\tif (this.value) {\r\n\t\t\tVue.set(this.value, \"insightId\", insightId)\r\n\t\t\tthis.$emit(\"input\", this.value)\r\n\t\t} else {\r\n\t\t\tthis.$emit(\"input\", {\r\n\t\t\t\tinsightId\r\n\t\t\t})\r\n\t\t}\r\n\t\tthis.orderBy = \"\"\r\n\t\tthis.selectedColumns = []\r\n\r\n\t\tthis.loadColumns()\r\n\t}\r\n\r\n\tpublic async selectOrderBy (orderBy: any) {\r\n\t\tVue.set(this.value, \"orderBy\", orderBy)\r\n\t\tthis.$emit(\"input\", this.value)\r\n\t}\r\n\r\n\tpublic async selectColumns (columns: any) {\r\n\t\tVue.set(this.value, \"columns\", columns)\r\n\t\tthis.$emit(\"input\", this.value)\r\n\t}\r\n\r\n\tpublic get filterColumns () {\r\n\t\treturn this.selectedInsight!.groupBy\r\n\t\t\t? this.selectedInsight!.calculations.filter(c => this.selectedColumns.includes(c.key)).map(c => {\r\n\t\t\t\treturn [{\r\n\t\t\t\t\tlabel: c.label,\r\n\t\t\t\t\tkey: c.key\r\n\t\t\t\t} as CaseColumn]\r\n\t\t\t}).flat()\r\n\t\t\t: this.tableColumns.filter(c => this.selectedColumns.includes(c.key))\r\n\t}\r\n}\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./InsightTopResult.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./InsightTopResult.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./InsightTopResult.vue?vue&type=template&id=4a3dcdee&scoped=true&\"\nimport script from \"./InsightTopResult.vue?vue&type=script&lang=ts&\"\nexport * from \"./InsightTopResult.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./InsightTopResult.vue?vue&type=style&index=0&id=4a3dcdee&prod&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"4a3dcdee\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticStyle:{\"height\":\"100%\"}},[(!_vm.edit && _vm.activeGoTo)?_c('div',{staticStyle:{\"height\":\"100%\"}},[_c('b-button',{on:{\"click\":function($event){return _vm.GoTo()}}},[_vm._v(\" \"+_vm._s(_vm.activeGoTo.title)+\" \")])],1):_vm._e(),(_vm.edit)?_c('div',{staticClass:\"card\"},[(_vm.activeGoTo)?_c('div',{staticClass:\"card-header\"},[_c('b',[_vm._v(_vm._s(_vm.activeGoTo.title))])]):_vm._e(),_c('div',{staticClass:\"card-body\"},[_c('b',[_vm._v(\"Go to \")]),_c('v-select',{attrs:{\"value\":_vm.activeGoTo ? _vm.activeGoTo.title : null,\"options\":_vm.dashboards,\"clearable\":false,\"label\":\"title\",\"append-to-body\":\"\"},on:{\"input\":_vm.selectDashboard}})],1)]):_vm._e()])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { Component, Vue, Watch, Prop, Emit } from \"vue-property-decorator\"\r\nimport { namespace, Getter, Mutation, Action, State } from \"vuex-class\"\r\n\r\n// @ts-ignore\r\nimport VuePerfectScrollbar from \"vue-perfect-scrollbar\"\r\nimport SkeletonLoader from \"../SkeletonLoader.vue\"\r\nimport vSelect from \"vue-select\"\r\nimport dashboardApi from \"@/services/api.dashboard\"\r\n\r\nimport api from \"@/services/api\"\r\nimport { DashboardSummary } from \"@/types/dashboard\"\r\n\r\nconst caseStore = namespace(\"cases\")\r\nconst setup = namespace(\"setup\")\r\n\r\n@Component({\r\n\tcomponents: {\r\n\t\t\"scrollbar\": VuePerfectScrollbar,\r\n\t\t\"skeleton\": SkeletonLoader,\r\n\t\t\"v-select\": vSelect\r\n\t}\r\n})\r\nexport default class GoTo extends Vue {\r\n@Prop()\r\nvalue: any;\r\n\r\n@Prop()\r\nedit!: boolean\r\n\r\ndashboards: any[] = [];\r\nactiveGoTo: any = null;\r\n\r\npublic async mounted () {\r\n\tthis.onEditChanged()\r\n}\r\n\r\n@Watch(\"edit\")\r\nprivate async onEditChanged () {\r\n\tthis.dashboards = await dashboardApi.dashboardGetList()\r\n\tif (this.value) {\r\n\t\tthis.activeGoTo = this.value\r\n\t}\r\n}\r\n\r\n@Emit(\"input\")\r\nprivate selectDashboard (value: any) {\r\n\tif (value) {\r\n\t\tvalue = {\r\n\t\t\tid: value.id,\r\n\t\t\ttitle: value.title\r\n\t\t}\r\n\t\tthis.activeGoTo = value\r\n\t\treturn { ...value }\r\n\t} else {\r\n\t\treturn null\r\n\t}\r\n}\r\n\r\nprivate GoTo () {\r\n\tthis.$emit(\"dashboardTrigger\", { ...this.value }, \"goTo\")\r\n}\r\n}\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./GoTo.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./GoTo.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./GoTo.vue?vue&type=template&id=54cbd387&scoped=true&\"\nimport script from \"./GoTo.vue?vue&type=script&lang=ts&\"\nexport * from \"./GoTo.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./GoTo.vue?vue&type=style&index=0&id=54cbd387&prod&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"54cbd387\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('b-modal',{attrs:{\"content-class\":\"fill-modal\",\"size\":\"fill\",\"hide-footer\":\"\",\"title\":_vm.caseTitle,\"no-close-on-backdrop\":true},on:{\"close\":_vm.closed},scopedSlots:_vm._u([{key:\"modal-footer\",fn:function(){return undefined},proxy:true}]),model:{value:(_vm.open),callback:function ($$v) {_vm.open=$$v},expression:\"open\"}},[(_vm.currentCase)?_c('layout-host',{staticClass:\"flex-grow-1\",attrs:{\"currentCase\":_vm.currentCase,\"me\":_vm.me,\"currentCaseTemplate\":_vm.currentTemplate},on:{\"validChanged\":function (newValid) { return _vm.valid = newValid; },\"caseUpdated\":_vm.updateCurrentCase,\"viewingUsersUpdated\":_vm.updateCurrentCaseUsers,\"setCaseEvents\":_vm.setCaseEvents,\"caseNoLongerAvailable\":_vm.caseNoLongerAvailable,\"caseClosed\":_vm.caseClosed},scopedSlots:_vm._u([{key:\"default\",fn:function(ref){\nvar currentCase = ref.currentCase;\nvar titleTemplateEnabled = ref.titleTemplateEnabled;\nvar templateChanged = ref.templateChanged;\nvar hasMap = ref.hasMap;\nvar canEditCurrentCase = ref.canEditCurrentCase;\nvar makeClosedChanges = ref.makeClosedChanges;\nvar editAfterClosePermissions = ref.editAfterClosePermissions;\nvar caseClose = ref.caseClose;\nvar integrationPush = ref.integrationPush;\nvar caseIntegrationLinks = ref.caseIntegrationLinks;\nreturn [(currentCase)?_c('desktop',{staticClass:\"h-100 w-100\",attrs:{\"currentCase\":currentCase,\"titleTemplateEnabled\":titleTemplateEnabled,\"canEditCurrentCase\":canEditCurrentCase,\"editAfterClosePermissions\":editAfterClosePermissions,\"hasMap\":hasMap,\"template\":_vm.currentTemplate,\"showTimeline\":false,\"showTitle\":false,\"caseIntegrationLinks\":caseIntegrationLinks},on:{\"templateIdChanged\":templateChanged,\"makeClosedChanges\":makeClosedChanges,\"close\":caseClose,\"integrationPush\":integrationPush}}):_vm._e()]}}],null,false,3746905833)}):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { Component, Vue, Watch, Prop, ProvideReactive, Provide } from \"vue-property-decorator\"\r\nimport { namespace, Getter, Mutation, Action } from \"vuex-class\"\r\n\r\nimport api from \"@/services/api\"\r\nimport FileService from \"@/services/file-service\"\r\nimport { MapProvider } from \"@/services/mapProvider\"\r\n\r\nimport { CaseError } from \"@/types/caseError\"\r\n\r\nimport LayoutHost from \"@/components/CaseDetails/Layout/LayoutHost.vue\"\r\nimport { CaseDetails, CaseSummary, Template, TemplateDetails, User } from \"@/types\"\r\n\r\nimport {\r\n\tapplyTemplate,\r\n\tupdateCaseDetails\r\n} from \"@/scripts/caseDetails\"\r\nimport { update } from \"lodash\"\r\nconst caseStore = namespace(\"cases\")\r\n\r\n@Component({\r\n\tcomponents: {\r\n\t\t\"layout-host\": LayoutHost,\r\n\t\t\"desktop\": () => import(\"@/components/CaseDetails/Layout/Desktop.vue\")\r\n\t}\r\n})\r\nexport default class CasePopup extends Vue {\r\n\t@Provide(\"mapProvider\") mapProvider: MapProvider = new MapProvider()\r\n\t@Provide(\"fileService\") fileService: FileService = new FileService(this.caseFilesChanged)\r\n\r\n\t@Prop({ default: null })\r\n\tvalue!: CaseSummary | null\r\n\r\n\t@Getter(\"getMe\") public me!: User\r\n\t@Getter(\"getCaseName\") getCaseName!: string;\r\n\t@Getter(\"getRecordName\") getRecordName!: string;\r\n\r\n\t@caseStore.Mutation private setCaseToast!: (message: string | null) => void\r\n\r\n\t@caseStore.Action public caseCreate!: (caseDetails: CaseDetails) => {\r\n\t\tcreated: CaseDetails,\r\n\t\terrors: CaseError[]\r\n\t};\r\n\r\n\tprivate currentCase: CaseDetails | null = null\r\n\r\n\tprivate currentTemplate: TemplateDetails | null = null\r\n\tprivate templates: { [key:string]: TemplateDetails } = {}\r\n\r\n\tget open (): boolean {\r\n\t\treturn !!this.value\r\n\t}\r\n\r\n\tset open (value: boolean) {\r\n\t\tif (!value) {\r\n\t\t\tthis.$emit(\"input\", null)\r\n\t\t}\r\n\t}\r\n\r\n\tget caseTitle () {\r\n\t\tif (!this.currentCase) return \"\"\r\n\t\treturn `${this.currentCase.templateTitle} ${this.currentCase.isCase ? this.getCaseName : this.getRecordName} #${this.currentCase.caseNumber}`\r\n\t}\r\n\r\n\t@Watch(\"value\")\r\n\tasync valueUpdated (newValue: CaseSummary | null) {\r\n\t\tif (newValue && newValue.caseNumber) {\r\n\t\t\tthis.currentCase = await api.caseDetails(newValue.caseNumber)\r\n\r\n\t\t\tif (this.currentCase.templateId) {\r\n\t\t\t\tconst templateId = this.currentCase.templateId\r\n\t\t\t\tif (this.templates[templateId]) {\r\n\t\t\t\t\tthis.currentTemplate = this.templates[templateId]\r\n\t\t\t\t} else {\r\n\t\t\t\t\tapi.templateDetails(this.currentCase.templateId!).then(template => {\r\n\t\t\t\t\t\tif (this.currentCase && this.currentCase.templateId === templateId) {\r\n\t\t\t\t\t\t\tthis.currentTemplate = this.templates[templateId] = template\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t})\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tthis.currentCase = null\r\n\t\t\tthis.currentTemplate = null\r\n\t\t}\r\n\t}\r\n\r\n\tprivate close () {\r\n\t\tthis.$emit(\"input\", null)\r\n\t}\r\n\r\n\tprivate caseFilesChanged () {\r\n\t}\r\n\r\n\tprivate updateCurrentCase (updated: CaseDetails) {\r\n\t\tif (this.currentCase) {\r\n\t\t\tupdateCaseDetails(this.currentCase, updated)\r\n\t\t}\r\n\t}\r\n\r\n\tprivate updateCurrentCaseUsers (viewingUsers: User[]) {\r\n\t\tif (this.currentCase) {\r\n\t\t\tthis.currentCase!.viewingUsers = viewingUsers\r\n\t\t}\r\n\t}\r\n\r\n\tprivate setCaseEvents () {\r\n\r\n\t}\r\n\r\n\tprivate caseNoLongerAvailable () {\r\n\t\tif (this.currentCase) {\r\n\t\t\tthis.setCaseToast(`#${this.currentCase.caseNumber} is no longer available. You may not have access to it, or it may have been removed.`)\r\n\t\t}\r\n\t\tthis.open = false\r\n\t}\r\n\r\n\tprivate caseClosed () {\r\n\t\tthis.open = false\r\n\t}\r\n\r\n\tprivate closed () {\r\n\t\tif (this.currentCase) {\r\n\t\t\tthis.$emit(\"closed\", {\r\n\t\t\t\tid: this.currentCase.id,\r\n\t\t\t\ttitle: this.currentCase.title,\r\n\t\t\t\tcreated: this.currentCase.created,\r\n\t\t\t\tclosed: this.currentCase.closed,\r\n\t\t\t\tcaseNumber: this.currentCase.caseNumber\r\n\t\t\t})\r\n\t\t}\r\n\t}\r\n}\r\n\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CasePopup.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CasePopup.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./CasePopup.vue?vue&type=template&id=f64bd092&\"\nimport script from \"./CasePopup.vue?vue&type=script&lang=ts&\"\nexport * from \"./CasePopup.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticStyle:{\"margin-right\":\"10px\",\"height\":\"100%\",\"width\":\"100%\"}},[(!_vm.edit)?[(_vm.imageUrl)?_c('div',{staticClass:\"dashImg\",style:(_vm.backgroundStyle)},[_c('img',{staticStyle:{\"display\":\"none\"},attrs:{\"src\":_vm.imageUrl,\"id\":\"hiddenImage\",\"alt\":\"\"},on:{\"load\":function($event){_vm.imageLoaded = true},\"error\":function($event){_vm.imageError = true}}}),(_vm.imageError)?_c('span',{staticStyle:{\"text-align\":\"center\"}},[_c('i',{staticClass:\"fas fa-exclamation-triangle fa-2x m-b-10\"}),_c('br'),_vm._v(\"Unable to load image \")]):_vm._e()]):_vm._e()]:_c('div',{staticClass:\"card\"},[_c('div',{staticClass:\"card-body\"},[_c('b',[_vm._v(\"Image Url\")]),_c('b-input',{attrs:{\"type\":\"text\",\"placeholder\":\"Url\"},model:{value:(_vm.imageUrl),callback:function ($$v) {_vm.imageUrl=$$v},expression:\"imageUrl\"}})],1)])],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { Component, Vue, Watch, Prop } from \"vue-property-decorator\"\r\n\r\n@Component({})\r\nexport default class DashboardImage extends Vue {\r\n\t@Prop()\r\n\tvalue: any;\r\n\r\n\t@Prop()\r\n\tedit!: boolean\r\n\r\n\timageUrl: string = \"\";\r\n\timageLoaded: boolean = false;\r\n\timageError: boolean = false;\r\n\r\n\tprivate get backgroundStyle () {\r\n\t\treturn {\r\n\t\t\tbackground: this.imageLoaded ? `url(${this.imageUrl})` : \"none\"\r\n\t\t}\r\n\t}\r\n\r\n\tmounted () {\r\n\t\tif (this.value) {\r\n\t\t\tthis.imageUrl = this.value\r\n\t\t}\r\n\t}\r\n\r\n\t@Watch(\"imageUrl\")\r\n\tprivate updateImageUrl (value: any) {\r\n\t\tthis.imageError = false\r\n\t\tthis.imageLoaded = false\r\n\r\n\t\tthis.$emit(\"input\", value)\r\n\t}\r\n}\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DashboardImage.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DashboardImage.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./DashboardImage.vue?vue&type=template&id=d5191db8&scoped=true&\"\nimport script from \"./DashboardImage.vue?vue&type=script&lang=ts&\"\nexport * from \"./DashboardImage.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./DashboardImage.vue?vue&type=style&index=0&id=d5191db8&prod&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"d5191db8\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"card\"},[(_vm.edit)?_c('div',{staticClass:\"card-body\"}):_c('skeleton',{staticClass:\"card-body p-0\",attrs:{\"loading\":_vm.loadingCases}},[(_vm.errorLoading)?_c('div',[_c('div',{staticClass:\"alert alert-danger\"},[_c('h6',[_c('i',{staticClass:\"fas fa-exclamation-triangle m-r-5\"}),_vm._v(\"Error loading calendar\")])])]):_c('calendar',{attrs:{\"schedules\":_vm.schedules,\"records\":_vm.records,\"hidePastSchedules\":true,\"timeZones\":_vm.timeZones},on:{\"rangeChanged\":_vm.calendarRangeChanged,\"recordClicked\":_vm.recordClicked,\"scheduleClicked\":_vm.openScheduleInstance}})],1),_c('schedule-popup',{on:{\"scheduleUpdated\":_vm.scheduleUpdated},model:{value:(_vm.viewScheduleInstance),callback:function ($$v) {_vm.viewScheduleInstance=$$v},expression:\"viewScheduleInstance\"}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { Component, Vue, Watch, Prop, Emit } from \"vue-property-decorator\"\r\nimport { namespace, Getter, Mutation, Action } from \"vuex-class\"\r\n\r\n// @ts-ignore\r\nimport VuePerfectScrollbar from \"vue-perfect-scrollbar\"\r\nimport { Case, CaseDetails, CaseSummary, Field, TimeZone } from \"@/types\"\r\n\r\nimport SkeletonLoader from \"../SkeletonLoader.vue\"\r\nimport CalendarView from \"@/components/Config/Schedules/CalendarView.vue\"\r\nimport ScheduleInstance from \"@/components/Config/Schedules/ScheduleInstance.vue\"\r\n\r\nimport vSelect from \"vue-select\"\r\n\r\nimport api from \"@/services/api\"\r\nimport { Schedule } from \"@/types/schedule\"\r\nimport { cases } from \"@/store/cases\"\r\n\r\nconst caseStore = namespace(\"cases\")\r\nconst setup = namespace(\"setup\")\r\n\r\n@Component({\r\n\tcomponents: {\r\n\t\t\"scrollbar\": VuePerfectScrollbar,\r\n\t\t\"calendar\": CalendarView,\r\n\t\t\"skeleton\": SkeletonLoader,\r\n\t\t\"schedule-popup\": ScheduleInstance,\r\n\t\t\"v-select\": vSelect\r\n\t}\r\n})\r\nexport default class DashboardCalendar extends Vue {\r\n\t@Prop()\r\n\tvalue: any;\r\n\r\n\t@Prop()\r\n\tedit!: boolean\r\n\r\n\tprivate schedules: Schedule[] = []\r\n\tprivate records: CaseSummary[] = []\r\n\r\n\tviews: any[] = [];\r\n\r\n\tactiveView: any = null;\r\n\tloadingCases: boolean = true;\r\n\terrorLoading: boolean = false;\r\n\tdisplayRecords: Case[] = [];\r\n\tprivate timeZones: TimeZone[] = []\r\n\r\n\tviewScheduleInstance: {\r\n\t\tschedule: Schedule,\r\n\t\tdate: Date\r\n\t} | null = null\r\n\r\n\tpublic async mounted () {\r\n\t\tthis.onEditChanged()\r\n\r\n\t\tapi.timeZonesGet().then(timeZones => this.timeZones = timeZones)\r\n\t}\r\n\r\n\tpublic async rowClick (item: any) {\r\n\t\tthis.$router.push({ path: `/cases/${item.caseNumber}` })\r\n\t}\r\n\r\n\t@Watch(\"edit\")\r\n\tprivate async onEditChanged () {\r\n\t\tif (!this.edit) {\r\n\t\t\tthis.loadingCases = true\r\n\t\t\tthis.errorLoading = false\r\n\r\n\t\t\ttry {\r\n\t\t\t\tthis.schedules = await api.retrieveSchedules()\r\n\t\t\t} catch (err) {\r\n\t\t\t\tthis.errorLoading = true\r\n\t\t\t\tconsole.error(err)\r\n\t\t\t}\r\n\r\n\t\t\tthis.loadingCases = false\r\n\t\t}\r\n\t}\r\n\r\n\tprivate async calendarRangeChanged ({ start, end }: { start: Date, end: Date }) {\r\n\t\tthis.records = await api.casesBetween(start, end)\r\n\t}\r\n\r\n\trecordClicked (caseSummary: CaseSummary) {\r\n\t\tthis.$emit(\"showCase\", caseSummary, (updatedCase: CaseSummary) => {\r\n\t\t\tconsole.log(updatedCase)\r\n\r\n\t\t\tcaseSummary.title = updatedCase.title\r\n\t\t\tcaseSummary.closed = updatedCase.closed\r\n\t\t})\r\n\t}\r\n\r\n\topenScheduleInstance (schedule: Schedule, instanceDate: Date) {\r\n\t\tthis.viewScheduleInstance = {\r\n\t\t\tschedule,\r\n\t\t\tdate: instanceDate\r\n\t\t}\r\n\t}\r\n\r\n\tscheduleUpdated (schedule: Schedule) {\r\n\t\tconst existingIndex = this.schedules.findIndex(s => s.id === schedule.id)\r\n\t\tif (existingIndex > -1) {\r\n\t\t\tthis.schedules.splice(existingIndex, 1, schedule)\r\n\t\t}\r\n\t}\r\n}\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DashboardCalendar.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DashboardCalendar.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./DashboardCalendar.vue?vue&type=template&id=6778020c&scoped=true&\"\nimport script from \"./DashboardCalendar.vue?vue&type=script&lang=ts&\"\nexport * from \"./DashboardCalendar.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./DashboardCalendar.vue?vue&type=style&index=0&id=6778020c&prod&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"6778020c\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"card\"},[(_vm.selectedNoticeboard)?_c('div',{staticClass:\"card-header d-flex align-items-center\"},[_c('div',{staticClass:\"flex-grow-1\"},[_c('b',[_vm._v(_vm._s(_vm.selectedNoticeboard.title))])])]):_vm._e(),_c('skeleton',{staticClass:\"d-flex flex-column card-body\",attrs:{\"loading\":_vm.loading}},[(_vm.edit)?[(!_vm.loading)?_c('b-table-simple',[_c('b-tr',[_c('b-td',[_vm._v(\"Noticeboard\")]),_c('b-td',[_c('v-select',{attrs:{\"options\":_vm.noticeboards,\"label\":\"title\",\"reduce\":function (selectedNoticeboard) { return selectedNoticeboard.id; },\"append-to-body\":\"\",\"clearable\":false},on:{\"input\":_vm.selectNoticeboard},model:{value:(_vm.selectedNoticeboardId),callback:function ($$v) {_vm.selectedNoticeboardId=$$v},expression:\"selectedNoticeboardId\"}})],1)],1),_c('b-tr',[_c('b-td',[_vm._v(\"Description\")]),_c('b-td',[(this.selectedNoticeboard)?_c('div',[_vm._v(_vm._s(this.selectedNoticeboard.description))]):_vm._e()])],1),(_vm.me.editData)?_c('b-tr',[_c('b-td',[_c('b-button',{attrs:{\"variant\":\"primary\"},on:{\"click\":_vm.addNoticeboard}},[_vm._v(\"Add\")]),_c('b-button',{staticClass:\"ml-1\",attrs:{\"variant\":\"secondary\",\"disabled\":this.selectedNoticeboardId === ''},on:{\"click\":_vm.editNoticeboard}},[_vm._v(\"Edit\")]),_c('b-button',{staticClass:\"ml-1\",attrs:{\"variant\":\"danger\",\"disabled\":this.selectedNoticeboardId === ''},on:{\"click\":_vm.deleteNoticeboard}},[_vm._v(\"Delete\")])],1),_c('b-td')],1):_vm._e()],1):_vm._e()]:(_vm.errorLoading)?_c('div',[_c('div',{staticClass:\"alert alert-danger\"},[_c('h6',[_c('i',{staticClass:\"fas fa-exclamation-triangle m-r-5\"}),_vm._v(\"Error loading data\")])])]):(!_vm.loading && _vm.selectedNoticeboard)?[_c('scrollbar',{staticClass:\"h-100\",staticStyle:{\"position\":\"relative\"}},[_c('table',{staticClass:\"table b-table table-sm table-sticky\",attrs:{\"role\":\"table\"}},[_c('thead',[_c('tr',[_c('th',{attrs:{\"aria-sort\":_vm.getAriaSortAttributeValue('user.name')},on:{\"click\":function($event){return _vm.sortByUser()}}},[_vm._v(\" Posted By \")]),_c('th',{attrs:{\"aria-sort\":_vm.getAriaSortAttributeValue('note.postedAt')},on:{\"click\":function($event){return _vm.sortByDate()}}},[_vm._v(\" Posted At \")]),_c('th',{attrs:{\"aria-sort\":_vm.getAriaSortAttributeValue('note.lastUpdatedAt')},on:{\"click\":function($event){return _vm.sortByLastUpdated()}}},[_vm._v(\" Last Updated \")]),_c('th',{attrs:{\"aria-sort\":_vm.getAriaSortAttributeValue('note.text')},on:{\"click\":function($event){return _vm.sortByNote()}}},[_vm._v(\" Note \")])])]),_c('tbody',[_vm._l((_vm.notesWithUsers),function(noteWithUser){return [_c('b-tr',{key:noteWithUser.note.id,class:{'hover': 'true', 'highlight-row': _vm.noteWasClicked(noteWithUser.note.id)},on:{\"click\":function($event){if($event.ctrlKey||$event.shiftKey||$event.altKey||$event.metaKey){ return null; }return _vm.onNoteClick(noteWithUser.note.id)}}},[_c('b-td',[_c('user-image',{staticClass:\"m-r-10\",attrs:{\"user\":noteWithUser.user}}),_vm._v(\" \"+_vm._s(noteWithUser.user.name)+\" \")],1),_c('b-td',[_vm._v(\" \"+_vm._s(_vm.convertToLocalTime(noteWithUser.note.postedAt))+\" \")]),_c('b-td',[_vm._v(\" \"+_vm._s(_vm.convertToLocalTime(noteWithUser.note.lastUpdatedAt))+\" \")]),_c('b-td',[_vm._v(\" \"+_vm._s(noteWithUser.note.text)+\" \")])],1)]})],2)]),_c('div',[_c('text-area-expand',{staticStyle:{\"width\":\"100%\"},attrs:{\"min-rows\":1,\"placeholder\":\"Add a new note\"},model:{value:(_vm.noteText),callback:function ($$v) {_vm.noteText=$$v},expression:\"noteText\"}}),_c('div',{staticClass:\"mt-2\"},[_c('b-button',{attrs:{\"variant\":\"primary\"},on:{\"click\":function($event){return _vm.saveNote()}}},[_vm._v(_vm._s(this.clickedNoteId === \"\" ? \"Add\" : \"Update\")),_c('i',{staticClass:\"fas fa-paper-plane ml-1\"})]),_c('b-button',{staticClass:\"ml-1\",attrs:{\"variant\":\"danger\",\"disabled\":_vm.clickedNoteId === ''},on:{\"click\":function($event){return _vm.deleteNote()}}},[_vm._v(_vm._s(\"Delete\"))])],1)],1)])]:_vm._e()],2),(_vm.me.editData)?_c('save-noticeboard-modal',{ref:\"saveNoticeboardModal\",on:{\"onSaved\":_vm.onNoticeboardSaved}}):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import api from \"@/services/api\"\r\nimport { Noticeboard, Note, NoteWithUser } from \"@/types/noticeboard\"\r\n\r\nclass ApiNoticeboard {\r\n\tprivate get axios () { return api.getAxios() }\r\n\r\n\tpublic async noticeboardList (): Promise {\r\n\t\tconst result = await this.axios.get(\"/noticeboards\")\r\n\t\treturn result.data\r\n\t}\r\n\r\n\tpublic async noticeboardSave (noticeboard: Noticeboard): Promise {\r\n\t\treturn (await this.axios.post(\"/noticeboards\", noticeboard)).data\r\n\t}\r\n\r\n\tpublic async noticeboardDelete (noticeboardId: string): Promise {\r\n\t\tawait this.axios.delete(`/noticeboards/${noticeboardId}`)\r\n\t}\r\n\r\n\tpublic async noteList (noticeboardId: string): Promise {\r\n\t\tconst result = await this.axios.get(`/noticeboards/${noticeboardId}/notes`)\r\n\t\treturn result.data\r\n\t}\r\n\r\n\tpublic async noteSave (note: Note): Promise {\r\n\t\tconst result = (await this.axios.post(\"/noticeboards/notes\", note))\r\n\t\treturn result.data\r\n\t}\r\n\r\n\tpublic async noteDelete (noteId: string): Promise {\r\n\t\tawait this.axios.delete(`/noticeboards/notes/${noteId}`)\r\n\t}\r\n}\r\n\r\nconst apiNoticeboard = new ApiNoticeboard()\r\nexport default apiNoticeboard\r\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('b-modal',{attrs:{\"title\":\"Add Noticeboard\",\"size\":\"sm\",\"content-class\":\"fill-modal\",\"ok-disabled\":!_vm.title},on:{\"ok\":_vm.save,\"hidden\":_vm.clear},model:{value:(_vm.isOpen),callback:function ($$v) {_vm.isOpen=$$v},expression:\"isOpen\"}},[_c('scrollbar',{staticClass:\"flex-grow-1\"},[_c('b-form-group',{staticClass:\"col-12\",attrs:{\"label-for\":\"title-input\",\"label\":\"Title\"},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_c('span',{attrs:{\"data-cy\":\"title\"}},[_vm._v(\"Title\")]),(!_vm.title)?_c('span',{staticClass:\"text-danger m-l-10\"},[_vm._v(\"[Required]\")]):_vm._e()]},proxy:true}])},[_c('b-form-input',{attrs:{\"id\":\"title-input\",\"type\":\"text\",\"placeholder\":\"Enter title\",\"required\":\"\"},model:{value:(_vm.title),callback:function ($$v) {_vm.title=$$v},expression:\"title\"}})],1),_c('b-form-group',{staticClass:\"col-12\",attrs:{\"label-for\":\"description-input\",\"label\":\"Description\"},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_c('span',{attrs:{\"data-cy\":\"description\"}},[_vm._v(\"Description\")])]},proxy:true}])},[_c('b-form-input',{attrs:{\"id\":\"description-input\",\"type\":\"text\",\"placeholder\":\"Enter description\"},model:{value:(_vm.description),callback:function ($$v) {_vm.description=$$v},expression:\"description\"}})],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\nimport { Component, Vue, Prop } from \"vue-property-decorator\"\r\nimport { Getter, Action } from \"vuex-class\"\r\n\r\nimport api from \"@/services/api\"\r\n\r\nimport VuePerfectScrollbar from \"vue-perfect-scrollbar\"\r\nimport { BModal } from \"bootstrap-vue\"\r\nimport { UserSettings } from \"@/types/userSettings\"\r\nimport { User } from \"@/types\"\r\nimport apiUserStatus from \"@/services/api_UserStatus\"\r\nimport apiNoticeboard from \"@/services/api_Noticeboard\"\r\n\r\nimport { UserStatus } from \"@/types/userStatus\"\r\nimport { Noticeboard } from \"@/types/noticeboard\"\r\n\r\n@Component({\r\n\tcomponents: {\r\n\t\t\"userSettingsModal\": BModal,\r\n\t\t\"scrollbar\": VuePerfectScrollbar\r\n\t}\r\n})\r\nexport default class SaveNoticeboardModal extends Vue {\r\n\tprivate noticeboardId: string = \"\"\r\n\tprivate title: string = \"\"\r\n\tprivate description: string = \"\"\r\n\tprivate isOpen: boolean = false\r\n\r\n\tpublic async openForEditing (noticeboardId: string) {\r\n\t\tconst noticeboards = await apiNoticeboard.noticeboardList()\r\n\t\tconst noticeboard = noticeboards.find(c => c.id === noticeboardId)!\r\n\t\tthis.title = noticeboard.title\r\n\t\tthis.description = noticeboard.description || \"\"\r\n\t\tthis.noticeboardId = noticeboardId\r\n\t\tthis.isOpen = true\r\n\t}\r\n\r\n\tpublic openForAdding () {\r\n\t\tthis.clear()\r\n\t\tthis.isOpen = true\r\n\t}\r\n\r\n\tprivate async save () {\r\n\t\tconst noticeboard: Noticeboard = {\r\n\t\t\tid: this.noticeboardId,\r\n\t\t\ttitle: this.title,\r\n\t\t\tdescription: this.description\r\n\t\t}\r\n\t\tconst noticeboardId = await apiNoticeboard.noticeboardSave(noticeboard)\r\n\r\n\t\tthis.$emit(\"onSaved\", noticeboardId)\r\n\t\tthis.clear()\r\n\t}\r\n\r\n\tprivate clear () {\r\n\t\tthis.noticeboardId = \"\"\r\n\t\tthis.title = \"\"\r\n\t\tthis.description = \"\"\r\n\t}\r\n}\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SaveNoticeboardModal.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SaveNoticeboardModal.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./SaveNoticeboardModal.vue?vue&type=template&id=6b918af5&scoped=true&\"\nimport script from \"./SaveNoticeboardModal.vue?vue&type=script&lang=ts&\"\nexport * from \"./SaveNoticeboardModal.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"6b918af5\",\n null\n \n)\n\nexport default component.exports","\r\nimport { Component, Vue, Watch, Prop, InjectReactive } from \"vue-property-decorator\"\r\nimport { namespace, Getter, Mutation, Action } from \"vuex-class\"\r\n\r\n// @ts-ignore\r\nimport VuePerfectScrollbar from \"vue-perfect-scrollbar\"\r\nimport { Noticeboard, Note, NoteWithUser } from \"@/types/noticeboard.ts\"\r\n\r\nimport SkeletonLoader from \"../SkeletonLoader.vue\"\r\nimport vSelect from \"vue-select\"\r\n\r\nimport apiNoticeboard from \"@/services/api_Noticeboard\"\r\n\r\nimport Guid from \"@/scripts/guid\"\r\nimport SaveNoticeboardModal from \"@/components/Dashboard/SaveNoticeboardModal.vue\"\r\nimport User, { CurrentUser } from \"@/types/user\"\r\nimport _ from \"lodash\"\r\nimport TextAreaExpand from \"../Fields/TextAreaExpand.vue\"\r\nimport { formatDateMixin } from \"@/mixins/formatDateMixin\"\r\nimport moment from \"moment\"\r\nimport UserImage from \"../UserImage.vue\"\r\n\r\n@Component({\r\n\tcomponents: {\r\n\t\t\"scrollbar\": VuePerfectScrollbar,\r\n\t\t\"skeleton\": SkeletonLoader,\r\n\t\t\"v-select\": vSelect,\r\n\t\t\"save-noticeboard-modal\": SaveNoticeboardModal,\r\n\t\t\"text-area-expand\": TextAreaExpand,\r\n\t\t\"user-image\": UserImage\r\n\t}\r\n})\r\nexport default class NoticeboardDisplay extends Vue {\r\n\t$refs!: {\r\n\t\tsaveNoticeboardModal: SaveNoticeboardModal\r\n\t}\r\n\t@Prop()\r\n\tvalue: any;\r\n\r\n\t@Prop()\r\n\tedit!: boolean\r\n\r\n\t@Getter(\"getMe\") public me!: CurrentUser;\r\n\r\n\tnoticeboards: Noticeboard[] = []\r\n\tselectedNoticeboard: Noticeboard | null = null;\r\n\tselectedNoticeboardId: string = \"\";\r\n\r\n\tnotesWithUsers: NoteWithUser[] = []\r\n\r\n\tloading: boolean = true;\r\n\r\n\terrorLoading: boolean = false\r\n\r\n\treloadResultsKey: string | null = null;\r\n\r\n\tnoteText: string | null = null;\r\n\r\n\tpublic async mounted () {\r\n\t\tthis.noticeboards = await apiNoticeboard.noticeboardList()\r\n\r\n\t\tif (this.value && this.value.selectedNoticeboardId) {\r\n\t\t\tthis.selectedNoticeboardId = this.value.selectedNoticeboardId\r\n\t\t\tthis.selectedNoticeboard = this.noticeboards.find(c => c.id === this.selectedNoticeboardId) || null\r\n\r\n\t\t\tawait this.refreshNotesWithUsers()\r\n\t\t\tthis.reSortNotesWithUsers()\r\n\t\t}\r\n\t\tthis.reloadResultsKey = Guid.newGuid()\r\n\t\tthis.loading = false\r\n\t}\r\n\r\n\tprivate addNoticeboard () {\r\n\t\tthis.$refs.saveNoticeboardModal.openForAdding()\r\n\t}\r\n\r\n\tprivate editNoticeboard () {\r\n\t\tthis.$refs.saveNoticeboardModal.openForEditing(this.selectedNoticeboardId)\r\n\t}\r\n\r\n\tprivate async deleteNoticeboard () {\r\n\t\tif (this.selectedNoticeboardId) {\r\n\t\t\tawait apiNoticeboard.noticeboardDelete(this.selectedNoticeboardId)\r\n\t\t\tthis.noticeboards = await apiNoticeboard.noticeboardList()\r\n\t\t\tif (this.noticeboards.length > 0) {\r\n\t\t\t\tawait this.selectNoticeboard(this.noticeboards[0].id!)\r\n\t\t\t} else {\r\n\t\t\t\tthis.unselectNoticeboard()\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tprivate async onNoticeboardSaved (newNoticeboardId: string) {\r\n\t\tthis.noticeboards = await apiNoticeboard.noticeboardList()\r\n\t\tawait this.selectNoticeboard(newNoticeboardId)\r\n\t}\r\n\r\n\tprivate async refreshNotesWithUsers () {\r\n\t\tthis.notesWithUsers = await apiNoticeboard.noteList(this.selectedNoticeboardId)\r\n\t}\r\n\r\n\tprivate reSortNotesWithUsers () {\r\n\t\tif (this.sortByProperty && this.sortByDirection) {\r\n\t\t\tthis.notesWithUsers = _.orderBy(this.notesWithUsers, this.sortByProperty, this.sortByDirection as any)\r\n\t\t}\r\n\t}\r\n\r\n\tpublic async unselectNoticeboard () {\r\n\t\tthis.selectedNoticeboardId = \"\"\r\n\t\tthis.selectedNoticeboard = null\r\n\t\tVue.delete(this.value, \"selectedNoticeboardId\")\r\n\t\tthis.$emit(\"input\", { selectedNoticeboardId: null })\r\n\t\tthis.notesWithUsers = []\r\n\t\tthis.noteText = \"\"\r\n\t\tthis.noticeboards = []\r\n\t}\r\n\r\n\tpublic async selectNoticeboard (selectedNoticeboardId: string) {\r\n\t\tthis.selectedNoticeboardId = selectedNoticeboardId\r\n\t\tthis.selectedNoticeboard = this.noticeboards.find(c => c.id === selectedNoticeboardId) || null\r\n\r\n\t\tthis.$emit(\"input\", { selectedNoticeboardId: selectedNoticeboardId })\r\n\t\tawait this.refreshNotesWithUsers()\r\n\t\tthis.reSortNotesWithUsers()\r\n\t}\r\n\r\n\tprivate setSortDirection (newSortByProperty: string) {\r\n\t\tif (this.sortByProperty === newSortByProperty && this.sortByDirection) {\r\n\t\t\tconst newSortDirection = this.sortByDirection === \"asc\" ? \"desc\" : \"asc\"\r\n\t\t\tthis.sortByDirection = newSortDirection\r\n\t\t} else {\r\n\t\t\tthis.sortByDirection = \"asc\"\r\n\t\t}\r\n\t}\r\n\r\n\tsortByProperty: string = \"\";\r\n\tsortByDirection: string = \"\";\r\n\tclickedNoteId: string = \"\";\r\n\r\n\tprivate sortByUser () {\r\n\t\tthis.setSortDirection(\"user.name\")\r\n\t\tthis.sortByProperty = \"user.name\"\r\n\t\tthis.reSortNotesWithUsers()\r\n\t}\r\n\r\n\tprivate sortByNote () {\r\n\t\tthis.setSortDirection(\"note.text\")\r\n\t\tthis.sortByProperty = \"note.text\"\r\n\t\tthis.reSortNotesWithUsers()\r\n\t}\r\n\r\n\tprivate sortByDate () {\r\n\t\tthis.setSortDirection(\"note.postedAt\")\r\n\t\tthis.sortByProperty = \"note.postedAt\"\r\n\t\tthis.reSortNotesWithUsers()\r\n\t}\r\n\r\n\tprivate sortByLastUpdated () {\r\n\t\tthis.setSortDirection(\"note.lastUpdatedAt\")\r\n\t\tthis.sortByProperty = \"note.lastUpdatedAt\"\r\n\t\tthis.reSortNotesWithUsers()\r\n\t}\r\n\r\n\tprivate async saveNote () {\r\n\t\tif (!this.selectedNoticeboardId) {\r\n\t\t\treturn\r\n\t\t}\r\n\r\n\t\tlet noteToSave: Note\r\n\t\tif (this.clickedNoteId === \"\") { // new note\r\n\t\t\tnoteToSave = {\r\n\t\t\t\ttext: this.noteText || \"\",\r\n\t\t\t\tnoticeboardId: this.selectedNoticeboardId\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tnoteToSave = this.notesWithUsers.find(c => c.note.id === this.clickedNoteId)!.note\r\n\t\t\tnoteToSave.text = this.noteText || \"\"\r\n\t\t}\r\n\r\n\t\tawait apiNoticeboard.noteSave(noteToSave)\r\n\t\tawait this.refreshNotesWithUsers()\r\n\t\tthis.reSortNotesWithUsers()\r\n\r\n\t\tthis.clickedNoteId = \"\"\r\n\t\tthis.noteText = null\r\n\t}\r\n\r\n\tprivate async deleteNote () {\r\n\t\tif (!this.selectedNoticeboardId) {\r\n\t\t\treturn\r\n\t\t}\r\n\r\n\t\tif (this.clickedNoteId === \"\") {\r\n\t\t\treturn\r\n\t\t}\r\n\r\n\t\tawait apiNoticeboard.noteDelete(this.clickedNoteId)\r\n\t\tawait this.refreshNotesWithUsers()\r\n\t\tthis.reSortNotesWithUsers()\r\n\r\n\t\tthis.clickedNoteId = \"\"\r\n\t\tthis.noteText = null\r\n\t}\r\n\r\n\tprivate convertToLocalTime (noteDate: Date): string {\r\n\t\treturn noteDate ? moment(noteDate).format(\"l LTS\") : \"\"\r\n\t}\r\n\r\n\tprivate getAriaSortAttributeValue (sortByProperty: string): string {\r\n\t\treturn (this.sortByProperty === sortByProperty ? (this.sortByDirection === \"asc\" ? \"ascending\" : \"descending\") : \"none\")\r\n\t}\r\n\r\n\tprivate noteWasClicked (noteId: string): boolean {\r\n\t\treturn noteId === this.clickedNoteId\r\n\t}\r\n\r\n\tprivate onNoteClick (noteId: string) {\r\n\t\tif (this.clickedNoteId === noteId) { // if highlighted row is clicked again, unhighlight it\r\n\t\t\tthis.clickedNoteId = \"\"\r\n\t\t\tthis.noteText = \"\"\r\n\t\t\treturn\r\n\t\t}\r\n\t\tthis.clickedNoteId = noteId\r\n\r\n\t\tconst clickedNote = this.notesWithUsers.find(c => c.note.id === noteId)!\r\n\t\tthis.noteText = clickedNote.note.text\r\n\t}\r\n}\r\n\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NoticeboardDisplay.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NoticeboardDisplay.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./NoticeboardDisplay.vue?vue&type=template&id=8426c204&scoped=true&\"\nimport script from \"./NoticeboardDisplay.vue?vue&type=script&lang=ts&\"\nexport * from \"./NoticeboardDisplay.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./NoticeboardDisplay.vue?vue&type=style&index=0&id=8426c204&prod&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"8426c204\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('div',{staticClass:\"case-header header-row row d-flex card-header bg-secondary align-items-center p-0\",class:{expanded: _vm.expanded},staticStyle:{\"position\":\"relative\",\"z-index\":\"10\",\"margin\":\"10px\",\"margin-bottom\":\"0px\"}},[_c('b-collapse',{model:{value:(_vm.expanded),callback:function ($$v) {_vm.expanded=$$v},expression:\"expanded\"}},[_c('div',{staticStyle:{\"margin\":\"10px\"}},[_c('b',[_vm._v(\"Global Parameters \"),_c('help-icon',{attrs:{\"help-title\":\"Global Parameters\"}},[_vm._v(\" Global Parameters allow you to set parameter values for multiple insight tiles. \")])],1)]),_c('div',{staticClass:\"d-flex flex-wrap card-body pt-0 pl-10\"},_vm._l((_vm.dashboardInsightParameters),function(dynamicParameter){return _c('dynamic-parameter-value',{key:dynamicParameter.key,staticClass:\"dynamic-parameter\",staticStyle:{\"margin-left\":\"10px\"},attrs:{\"showCollapsed\":true,\"dynamicParameter\":dynamicParameter,\"value\":_vm.dynamicParameterValues[dynamicParameter.key] ? _vm.dynamicParameterValues[dynamicParameter.key] : null},on:{\"input\":function (v) { return _vm.setParameter(dynamicParameter.key, v); }}})}),1)])],1),_c('div',{staticClass:\"expander-container\"},[_c('div',{staticClass:\"expander card-header btn btn-secondary\",on:{\"click\":function($event){_vm.expanded = !_vm.expanded}}},[_c('i',{staticClass:\"fas\",class:_vm.expanded ? 'fa-chevron-up' : 'fa-chevron-down',staticStyle:{\"padding-top\":\"3px\",\"padding-left\":\"10px\"}})])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { DynamicParameter, DynamicParameterValue } from \"@/types/insights\"\r\nimport { Component, Vue, Prop } from \"vue-property-decorator\"\r\n\r\nimport ParameterValue from \"../Controls/ParameterValue.vue\"\r\nimport DynamicParameterValueControl from \"@/components/Insights/DynamicParameterValue.vue\"\r\nimport HelpIcon from \"@/components/New/Page/PageComponents/HelpIcon.vue\"\r\n\r\n@Component({\r\n\tcomponents: {\r\n\t\t\"parameter-value\": ParameterValue,\r\n\t\t\"dynamic-parameter-value\": DynamicParameterValueControl,\r\n\t\t\"help-icon\": HelpIcon\r\n\t}\r\n})\r\nexport default class DashboardGlobalParameters extends Vue {\r\n\t@Prop({ default: null })\r\n\tdashboardInsightParameters!: DynamicParameter[]\r\n\r\n\t@Prop({ default: () => {} })\r\n\tdynamicParameterValues!: { [key: string]: DynamicParameterValue }\r\n\r\n\texpanded: boolean = true\r\n\r\n\tprivate setParameter (key: string, value: DynamicParameterValue | null) {\r\n\t\tthis.$emit(\"setParameter\", key, value)\r\n\t}\r\n}\r\n\r\n","\r\nimport { Component, Vue } from \"vue-property-decorator\"\r\nimport { Getter, Action, namespace } from \"vuex-class\"\r\n\r\nimport Guid from \"@/scripts/guid\"\r\n\r\nimport Page from \"@/components/Page.vue\"\r\nimport Skeleton from \"@/components/SkeletonLoader.vue\"\r\n\r\nimport DashEditbar from \"@/components/Dashboard/DashboardEditBar.vue\"\r\n\r\nimport Numerical from \"@/components/Dashboard/Numerical.vue\"\r\nimport RecordView from \"@/components/Dashboard/RecordView.vue\"\r\nimport TeamView from \"@/components/Dashboard/TeamView.vue\"\r\nimport Graph from \"@/components/Dashboard/Graph.vue\"\r\nimport Metrics from \"@/components/Dashboard/Metrics.vue\"\r\nimport InsightTopResult from \"@/components/Dashboard/InsightTopResult.vue\"\r\nimport GoTo from \"@/components/Dashboard/GoTo.vue\"\r\n\r\nimport VuePerfectScrollbar from \"vue-perfect-scrollbar\"\r\nimport VueGridLayout, { GridItemData } from \"@sureview/vue-grid\"\r\nimport vSelect from \"vue-select\"\r\n\r\nimport CasePopup from \"@/components/CaseDetails/CasePopup.vue\"\r\n\r\nimport { DashboardSummary, Dashboard as Dash, Cell, CellType, User, CaseSummary } from \"@/types\"\r\n\r\nimport api from \"@/services/api\"\r\nimport dashboardApi from \"@/services/api.dashboard\"\r\nimport cloneDeep from \"lodash/cloneDeep\"\r\nimport DashboardImage from \"@/components/Dashboard/DashboardImage.vue\"\r\nimport Label from \"@/components/Dashboard/Label.vue\"\r\nimport DashboardCalendar from \"@/components/Dashboard/DashboardCalendar.vue\"\r\nimport { DashboardState } from \"@/types/dashboard\"\r\nimport NoticeboardDisplay from \"@/components/Dashboard/NoticeboardDisplay.vue\"\r\nimport DashboardGlobalParameters from \"@/components/Dashboard/DashboardGlobalParameters.vue\"\r\nimport { DynamicParameter, DynamicParameterValue } from \"@/types/insights\"\r\nimport PageWrapper from \"@/components/New/Page/PageWrapper.vue\"\r\n\r\ninterface DashboardGridItem extends GridItemData {\r\n\tid?: string | null,\r\n\tpluginTypeId?: number,\r\n cellType: number;\r\n newCell?: boolean;\r\n\tcontents?: any;\r\n\tisNew?: boolean;\r\n}\r\n\r\nconst cellTypes: CellType[] = [\r\n\t{\r\n\t\tcellTypeId: 0,\r\n\t\tlabel: \"Insight\",\r\n\t\tcomponent: \"graph\"\r\n\t},\r\n\t{\r\n\t\tcellTypeId: 1,\r\n\t\tlabel: \"View\",\r\n\t\tcomponent: \"record-view\"\r\n\t},\r\n\t{\r\n\t\tcellTypeId: 2,\r\n\t\tlabel: \"Team\",\r\n\t\tcomponent: \"team-view\"\r\n\t},\r\n\t{\r\n\t\tcellTypeId: 3,\r\n\t\tlabel: \"Dashboard\",\r\n\t\tcomponent: \"go-to\"\r\n\t},\r\n\t{\r\n\t\tcellTypeId: 4,\r\n\t\tlabel: \"Image\",\r\n\t\tcomponent: \"dash-img\"\r\n\t},\r\n\t{\r\n\t\tcellTypeId: 5,\r\n\t\tlabel: \"Label\",\r\n\t\tcomponent: \"dash-label\"\r\n\t},\r\n\t{\r\n\t\tcellTypeId: 6,\r\n\t\tlabel: \"Top Value\",\r\n\t\tcomponent: \"insight-top-result\"\r\n\t},\r\n\t{\r\n\t\tcellTypeId: 7,\r\n\t\tlabel: \"Calendar\",\r\n\t\tcomponent: \"dashboard-calendar\"\r\n\t},\r\n\t{\r\n\t\tcellTypeId: 8,\r\n\t\tlabel: \"Noticeboard\",\r\n\t\tcomponent: \"noticeboard-display\"\r\n\t}\r\n]\r\nconst cellTypesById = cellTypes.toDictionary(\"cellTypeId\")\r\n\r\nenum Privacy {\r\n\tPublic = 0,\r\n\tTeams = 1,\r\n\tPrivate = 2\r\n}\r\n\r\nconst cases = namespace(\"cases\")\r\n\r\n@Component({\r\n\tcomponents: {\r\n\t\t\"page\": PageWrapper,\r\n\t\t\"skeleton\": Skeleton,\r\n\t\t\"scrollbar\": VuePerfectScrollbar,\r\n\t\t\"grid-layout\": VueGridLayout.GridLayout,\r\n\t\t\"grid-item\": VueGridLayout.GridItem,\r\n\t\t\"editbar\": DashEditbar,\r\n\t\t\"numerical\": Numerical,\r\n\t\t\"record-view\": RecordView,\r\n\t\t\"team-view\": TeamView,\r\n\t\t\"go-to\": GoTo,\r\n\t\t\"graph\": Graph,\r\n\t\t\"metrics\": Metrics,\r\n\t\t\"insight-top-result\": InsightTopResult,\r\n\t\t\"v-select\": vSelect,\r\n\t\t\"dash-img\": DashboardImage,\r\n\t\t\"dash-label\": Label,\r\n\t\t\"dashboard-calendar\": DashboardCalendar,\r\n\t\t\"case-popup\": CasePopup,\r\n\t\t\"noticeboard-display\": NoticeboardDisplay,\r\n\t\t\"global-parameters\": DashboardGlobalParameters\r\n\t}\r\n})\r\nexport default class Dashboard extends Vue {\r\n\t@Action loadTeams!: () => Promise;\r\n\r\n\t@Getter(\"getMe\")\r\n\tpublic me!: User;\r\n\r\n\t@cases.Action\r\n\tseveritiesLoad!: () => Promise\r\n\r\n\tprivate gridHeight: number = 720;\r\n\tprivate gridWidth: number = 1280;\r\n\r\n\tprivate standardColumns: number = 8;\r\n\tprivate fineColumns: number = 16;\r\n\r\n\tprivate dashboardState: DashboardState = {\r\n\t\tlastChangedFilterFromInsightId: \"\",\r\n\t\tcalculationTableClickedRows: {}\r\n\t}\r\n\r\n\tpublic editing: boolean = false;\r\n\tpublic cellToAdd: any = null;\r\n\r\n\tprivate cellIdToFullscreen: any = null;\r\n\r\n\tpublic popupCaseSummary: CaseSummary | null = null\r\n\tpublic popupCloseCallback: ((caseSummary: CaseSummary) => void) | null = null\r\n\r\n\tpublic loading: boolean = true;\r\n\tpublic dashboardList: DashboardSummary[] = [];\r\n\tpublic currentDash: Dash | null = null;\r\n\tpublic uneditDash: Dash | null = null;\r\n\tpublic layout: DashboardGridItem[] = [];\r\n\r\n\tpublic deleteOpen: boolean = false;\r\n\tpublic deleteConfirmText: string = \"\";\r\n\tprivate readonly collator = new Intl.Collator(\"en\");\r\n\r\n\tallGlobalParameters: DynamicParameter[] = []\r\n\tdashboardInsightParameters: DynamicParameter[] = []\r\n\tdynamicParameterValues: { [key: string]: DynamicParameterValue } = {}\r\n\r\n\t/**\r\n\t * The dashboard list, sorted by title\r\n\t * @private\r\n\t */\r\n\tprivate get dashboardListSorted () {\r\n\t\treturn this.dashboardList.sort((a, b) => this.collator.compare(a.title, b.title))\r\n\t}\r\n\r\n\t/**\r\n\t * Gets the number of columns in the dashboard grid\r\n\t*/\r\n\tpublic get numberOfColumns () {\r\n\t\tif (!this.currentDash) return 0\r\n\t\treturn this.currentDash.fineGridEnabled ? this.fineColumns : this.standardColumns\r\n\t}\r\n\r\n\t/** Gets the (rounded) height of each row in pixels */\r\n\tpublic get scaledRowHeight () {\r\n\t\tif (!this.currentDash) return 0\r\n\t\treturn 320 // Height in pixels\r\n\t}\r\n\r\n\t/**\r\n\t * Gets the (rounded) width of each column in pixels.\r\n\t */\r\n\tpublic get scaledColumnWidth () {\r\n\t\tif (!this.currentDash) return 0\r\n\t\treturn Math.round(this.gridWidth / this.numberOfColumns)\r\n\t}\r\n\r\n\t/**\r\n\t * Gets the (un-rounded) width of each column in pixels.\r\n\t */\r\n\tpublic get columnWidth () {\r\n\t\tif (!this.currentDash) return 0\r\n\t\treturn this.gridWidth / this.numberOfColumns\r\n\t}\r\n\r\n\tpublic get cellTypes (): CellType[] {\r\n\t\treturn cellTypes\r\n\t}\r\n\r\n\tprivate get rowCount () {\r\n\t\tif (!this.layout) {\r\n\t\t\treturn 0\r\n\t\t}\r\n\r\n\t\tlet maxX = this.numberOfColumns\r\n\r\n\t\tthis.layout.forEach(cell => {\r\n\t\t\tconst cellBottom = cell.y + cell.h\r\n\t\t\tif (cellBottom > maxX) {\r\n\t\t\t\tmaxX = cellBottom\r\n\t\t\t}\r\n\t\t})\r\n\r\n\t\tif (this.editing) {\r\n\t\t\tmaxX++\r\n\t\t}\r\n\r\n\t\treturn maxX\r\n\t}\r\n\r\n\tpublic get editValid (): boolean {\r\n\t\treturn !!this.currentDash && this.currentDash.title.length > 0 &&\r\n\t\t\t(this.currentDash.privacy !== Privacy.Teams || (this.currentDash.limitedToTeams && this.currentDash.limitedToTeams.length > 0))\r\n\t}\r\n\r\n\tpublic async mounted () {\r\n\t\tthis.loadTeams()\r\n\t\tthis.severitiesLoad()\r\n\t\tthis.dashboardList = await dashboardApi.dashboardGetList()\r\n\t\tif (this.dashboardList.length > 0) {\r\n\t\t\tconst lastDast = this.dashboardList.find(d => d.isLastViewedByUser)\r\n\t\t\tif (lastDast) {\r\n\t\t\t\tthis.selectDashboard(lastDast.id!)\r\n\t\t\t} else {\r\n\t\t\t\tthis.selectDashboard(this.dashboardList[0].id!)\r\n\t\t\t}\r\n\t\t}\r\n\t\tthis.allGlobalParameters = await api.insightParameters()\r\n\t\tthis.loading = false\r\n\t}\r\n\r\n\tpublic component (componentTypeId: number): string | null {\r\n\t\tconst cellType = cellTypesById[componentTypeId]\r\n\t\tif (cellType) {\r\n\t\t\treturn cellType.component\r\n\t\t}\r\n\r\n\t\treturn null\r\n\t}\r\n\r\n\tprivate updateLayout (newLayout: any) {\r\n\t\tconst layoutIds = new Set()\r\n\t\tnewLayout.forEach((layoutCell: any) => {\r\n\t\t\tlayoutIds.add(layoutCell.i)\r\n\t\t\tif (layoutCell.pluginTypeId !== undefined) {\r\n\t\t\t\tlayoutCell.id = layoutCell.i\r\n\t\t\t\tlayoutCell.newCell = true\r\n\t\t\t\tlayoutCell.cellTypeId = layoutCell.pluginTypeId\r\n\t\t\t\tlayoutCell.contents = {}\r\n\r\n\t\t\t\tdelete layoutCell.pluginTypeId\r\n\t\t\t} else {\r\n\t\t\t\tconst cell = this.layout.find(c => c.id === layoutCell.id)\r\n\t\t\t\tif (cell) {\r\n\t\t\t\t\tcell.h = layoutCell.h\r\n\t\t\t\t\tcell.w = layoutCell.w\r\n\t\t\t\t\tcell.x = layoutCell.x\r\n\t\t\t\t\tcell.y = layoutCell.y\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t})\r\n\t}\r\n\r\n\tprivate addCell (cellType: CellType) {\r\n\t\tif (!cellType || cellType.cellTypeId === undefined) {\r\n\t\t\treturn\r\n\t\t}\r\n\r\n\t\tif (this.cellToAdd && this.cellToAdd.pluginTypeId === cellType.cellTypeId) {\r\n\t\t\tthis.cellToAdd = null\r\n\t\t\tthis.layout.removeWhere((layoutCell: any) => layoutCell.isNew)\r\n\t\t\treturn\r\n\t\t}\r\n\r\n\t\tconst id = Guid.newGuid()\r\n\t\tthis.cellToAdd = {\r\n\t\t\ti: id,\r\n\t\t\tpluginTypeId: cellType.cellTypeId,\r\n\t\t\tviewCellId: id,\r\n\t\t\tnewCell: true\r\n\t\t}\r\n\t}\r\n\r\n\tprivate setFineGrid (fineGridEnabled: boolean) {\r\n\t\tthis.currentDash!.fineGridEnabled = fineGridEnabled\r\n\t}\r\n\r\n\tprivate finishAdd () {\r\n\t\tthis.cellToAdd = null\r\n\t\tthis.layout.forEach(layoutCell => {\r\n\t\t\tif (layoutCell.pluginTypeId !== undefined) {\r\n\t\t\t\tlayoutCell.id = layoutCell.i\r\n\t\t\t\tlayoutCell.newCell = true\r\n\t\t\t\tlayoutCell.cellType = layoutCell.pluginTypeId\r\n\t\t\t\tlayoutCell.contents = {}\r\n\r\n\t\t\t\tdelete layoutCell.pluginTypeId\r\n\t\t\t}\r\n\t\t})\r\n\t}\r\n\r\n\tprivate async selectDashboard (dashboardId: string) {\r\n\t\tthis.setDashboard(await dashboardApi.dashboardGet(dashboardId))\r\n\t}\r\n\r\n\tprivate setDashboard (dash: Dash) {\r\n\t\tthis.dashboardInsightParameters = []\r\n\r\n\t\tthis.currentDash = dash\r\n\t\tthis.layout = this.currentDash!.cells.map(cell => {\r\n\t\t\tlet id = \"\"\r\n\t\t\tif (cell.id != null) {\r\n\t\t\t\tid = cell.id\r\n\t\t\t}\r\n\r\n\t\t\treturn {\r\n\t\t\t\tx: cell.cellPosition.x,\r\n\t\t\t\ty: cell.cellPosition.y,\r\n\t\t\t\tw: cell.cellSize.width,\r\n\t\t\t\th: cell.cellSize.height,\r\n\t\t\t\tmoved: false,\r\n\t\t\t\tisNew: false,\r\n\t\t\t\ti: id,\r\n\t\t\t\tid: cell.id,\r\n\t\t\t\tcellType: cell.cellType,\r\n\t\t\t\tcontents: JSON.parse(cell.contents)\r\n\t\t\t}\r\n\t\t})\r\n\t\tthis.dashboardState = {\r\n\t\t\tcalculationTableClickedRows: {},\r\n\t\t\tlastChangedFilterFromInsightId: \"\"\r\n\t\t}\r\n\t}\r\n\r\n\tprivate async createNew () {\r\n\t\tthis.currentDash = {\r\n\t\t\tid: null,\r\n\t\t\ttitle: \"\",\r\n\t\t\tcells: [],\r\n\t\t\tprivacy: Privacy.Public,\r\n\t\t\tlimitedToTeams: [],\r\n\t\t\tfineGridEnabled: false\r\n\t\t}\r\n\t\tthis.layout = []\r\n\t\tthis.editing = true\r\n\t}\r\n\r\n\tprivate async saveDashboard () {\r\n\t\tconst layoutIds = new Set()\r\n\t\tthis.layout.forEach(layoutCell => {\r\n\t\t\tif (layoutCell.newCell) {\r\n\t\t\t\tthis.currentDash!.cells.push({\r\n\t\t\t\t\tid: null,\r\n\t\t\t\t\tcellPosition: {\r\n\t\t\t\t\t\tx: layoutCell.x,\r\n\t\t\t\t\t\ty: layoutCell.y\r\n\t\t\t\t\t},\r\n\t\t\t\t\tcellSize: {\r\n\t\t\t\t\t\twidth: layoutCell.w,\r\n\t\t\t\t\t\theight: layoutCell.h\r\n\t\t\t\t\t},\r\n\t\t\t\t\tcontents: JSON.stringify(layoutCell.contents),\r\n\t\t\t\t\tcellType: layoutCell.cellType\r\n\t\t\t\t})\r\n\t\t\t} else {\r\n\t\t\t\tif (layoutCell.id != null) {\r\n\t\t\t\t\tlayoutIds.add(layoutCell.id)\r\n\t\t\t\t}\r\n\t\t\t\tconst existingCell = this.currentDash!.cells.find(c => c.id === layoutCell.id)\r\n\t\t\t\tif (existingCell) {\r\n\t\t\t\t\texistingCell.cellPosition.x = layoutCell.x\r\n\t\t\t\t\texistingCell.cellPosition.y = layoutCell.y\r\n\t\t\t\t\texistingCell.cellSize.width = layoutCell.w\r\n\t\t\t\t\texistingCell.cellSize.height = layoutCell.h\r\n\t\t\t\t\texistingCell.contents = JSON.stringify(layoutCell.contents)\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t})\r\n\r\n\t\tvar removeCells: Cell[] = []\r\n\t\tthis.currentDash!.cells.forEach(cell => {\r\n\t\t\tif (cell.id && !layoutIds.has(cell.id!)) {\r\n\t\t\t\tremoveCells.push(cell)\r\n\t\t\t}\r\n\t\t})\r\n\t\tremoveCells.forEach(cell => {\r\n\t\t\tconst cellIndex = this.currentDash!.cells.indexOf(cell)\r\n\t\t\tif (cellIndex > -1) {\r\n\t\t\t\tthis.currentDash!.cells.splice(cellIndex, 1)\r\n\t\t\t}\r\n\t\t})\r\n\r\n\t\tthis.setDashboard(await dashboardApi.dashboardSave(this.currentDash!))\r\n\r\n\t\tif (!this.dashboardList.find(d => d.id === this.currentDash!.id)) {\r\n\t\t\tthis.dashboardList.push(this.currentDash!)\r\n\t\t}\r\n\r\n\t\tthis.uneditDash = null\r\n\t\tthis.cellToAdd = null\r\n\t\tthis.editing = false\r\n\t}\r\n\r\n\tprivate startEdit (): void {\r\n\t\tthis.uneditDash = this.currentDash\r\n\t\tthis.currentDash = cloneDeep(this.currentDash)\r\n\t\tthis.editing = true\r\n\t}\r\n\r\n\tprivate cancelEdit (): void {\r\n\t\tif (this.uneditDash) {\r\n\t\t\tthis.setDashboard(this.uneditDash!)\r\n\t\t} else {\r\n\t\t\tif (this.dashboardList.length > 0) {\r\n\t\t\t\tthis.selectDashboard(this.dashboardList[0].id!)\r\n\t\t\t} else {\r\n\t\t\t\tthis.currentDash = null\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tthis.uneditDash = null\r\n\t\tthis.cellToAdd = null\r\n\t\tthis.editing = false\r\n\t}\r\n\r\n\tprivate deleteCurrent () {\r\n\t\tif (this.currentDash && this.currentDash.id) {\r\n\t\t\tthis.deleteOpen = true\r\n\t\t}\r\n\t}\r\n\r\n\tprivate async deleteConfirm () {\r\n\t\tif (this.currentDash && this.currentDash.title === this.deleteConfirmText) {\r\n\t\t\tawait dashboardApi.dashboardDelete(this.currentDash!.id!)\r\n\t\t\tconst listIndex = this.dashboardList.findIndex(d => d.id === this.currentDash!.id)\r\n\t\t\tif (listIndex > -1) {\r\n\t\t\t\tthis.dashboardList.splice(listIndex, 1)\r\n\t\t\t}\r\n\r\n\t\t\tthis.currentDash = null\r\n\t\t\tif (this.dashboardList.length > 0) {\r\n\t\t\t\tthis.selectDashboard(this.dashboardList[0].id!)\r\n\t\t\t}\r\n\r\n\t\t\tthis.deleteOpen = false\r\n\t\t\tthis.uneditDash = null\r\n\t\t\tthis.cellToAdd = null\r\n\t\t\tthis.editing = false\r\n\t\t}\r\n\t}\r\n\r\n\tprivate deleteCell (cell: any) {\r\n\t\tconst cellIndex = this.layout.findIndex(c => c.i === cell.i)\r\n\t\tif (cellIndex > -1) {\r\n\t\t\tthis.layout.splice(cellIndex, 1)\r\n\t\t}\r\n\t}\r\n\r\n\tprivate dashboardTrigger (value: any, triggerMethod: any) {\r\n\t\tif (triggerMethod === \"goTo\") {\r\n\t\t\tthis.selectDashboard(value.id)\r\n\t\t}\r\n\t}\r\n\r\n\tprivate popupOpen (caseSummary: CaseSummary, callback: ((caseSummary: CaseSummary) => void) | null) {\r\n\t\tthis.popupCaseSummary = caseSummary\r\n\t\tthis.popupCloseCallback = callback\r\n\t}\r\n\r\n\tprivate popupClosed (caseSummary: CaseSummary) {\r\n\t\tif (this.popupCloseCallback) {\r\n\t\t\tthis.popupCloseCallback(caseSummary)\r\n\t\t}\r\n\t}\r\n\r\n\tprivate calculationTableRowClick (insightId: string, selectedGroupRow: any) {\r\n\t\tconst clickedRow = this.dashboardState.calculationTableClickedRows[insightId]\r\n\t\tthis.dashboardState.lastChangedFilterFromInsightId = insightId\r\n\t\tconst clickedAlready = !!clickedRow && clickedRow.value === selectedGroupRow.value\r\n\t\tif (clickedAlready) {\r\n\t\t\tVue.set(this.dashboardState.calculationTableClickedRows, insightId, undefined)\r\n\t\t} else {\r\n\t\t\tVue.set(this.dashboardState.calculationTableClickedRows, insightId, selectedGroupRow)\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Adds the global insight parameters to the dashboard parameters\r\n\t */\r\n\tprivate addParametersToDash (includedIds: string[]) {\r\n\t\tvar includedParameters = this.allGlobalParameters.filter(param => includedIds.includes(param.key))\r\n\r\n\t\tincludedParameters.forEach(param => {\r\n\t\t\tif (!this.dashboardInsightParameters.find(p => p.key === param.key)) {\r\n\t\t\t\tif (param.defaultValue && (!this.dynamicParameterValues[param.key] || !this.dynamicParameterValues[param.key].value)) {\r\n\t\t\t\t\tconst value = {\r\n\t\t\t\t\t\tkey: param.key,\r\n\t\t\t\t\t\tdataType: param.dataType,\r\n\t\t\t\t\t\tvalue: param.defaultValue,\r\n\t\t\t\t\t\tdynamicValue: param.dynamicValue || false,\r\n\t\t\t\t\t\tsearchClauseParameters: param.searchClauseParameters\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tthis.setParameter(param.key, value)\r\n\t\t\t\t}\r\n\r\n\t\t\t\tthis.dashboardInsightParameters.push(param)\r\n\t\t\t}\r\n\t\t})\r\n\t}\r\n\r\n\t// Call setParameter for all charts on the dashboard\r\n\tprivate setParameter (key: string, value: DynamicParameterValue | null) {\r\n\t\tVue.set(this.dynamicParameterValues, key, value)\r\n\r\n\t\tthis.layout.filter(c => c.cellType === 0).forEach(c => {\r\n\t\t\tvar cell:any = this.$refs[\"cell\" + c.id]\r\n\t\t\tcell[0].setParameter(key, value)\r\n\t\t})\r\n\t}\r\n}\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DashboardGlobalParameters.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DashboardGlobalParameters.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./DashboardGlobalParameters.vue?vue&type=template&id=57d282d0&scoped=true&\"\nimport script from \"./DashboardGlobalParameters.vue?vue&type=script&lang=ts&\"\nexport * from \"./DashboardGlobalParameters.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./DashboardGlobalParameters.vue?vue&type=style&index=0&id=57d282d0&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"57d282d0\",\n null\n \n)\n\nexport default component.exports","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--13-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Dashboard.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--13-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Dashboard.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Dashboard.vue?vue&type=template&id=02a8447a&scoped=true&\"\nimport script from \"./Dashboard.vue?vue&type=script&lang=ts&\"\nexport * from \"./Dashboard.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./Dashboard.vue?vue&type=style&index=0&id=02a8447a&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"02a8447a\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"page login-page flex-grow-1 d-flex align-items-center\",attrs:{\"id\":\"loginBackground\"}},[_c('img',{staticClass:\"login-background-logo\",attrs:{\"src\":\"/images/background_logo.png\"}}),_c('div',{staticClass:\"login-align d-flex flex-column align-items-center justify-content-center\",staticStyle:{\"width\":\"100%\",\"height\":\"100%\"}},[_c('transition',{attrs:{\"name\":\"fade\"}},[_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.pageLoaded),expression:\"pageLoaded\"}],staticClass:\"login-box\"},[(_vm.showLogo)?_c('div',{staticClass:\"logo-header\",attrs:{\"data-cy\":\"login-logo-header\"}},[_c('img',{attrs:{\"src\":_vm.logoSrc,\"alt\":_vm.logoAlt},on:{\"error\":_vm.logoLoadError,\"load\":function($event){_vm.logoLoaded = true}}})]):_vm._e(),(_vm.loginState === _vm.LoginState.PendingTenantSelect)?_c('div',{staticStyle:{\"overflow\":\"hidden\"}},[(_vm.currentLogin && _vm.currentLogin.allowSystemAdmin)?_c('div',{staticClass:\"tenant-selection admin-select\",on:{\"click\":_vm.adminLogin}},[_vm._v(\" System Admin Portal \")]):_vm._e(),(_vm.currentLogin.supportAccess)?_c('div',[_c('b',[_vm._v(\"Support Access:\")]),_c('div',[_c('div',{staticClass:\"tenant-selection admin-select\",attrs:{\"disabled\":_vm.currentLogin.supportAccess.disabled,\"button\":\"\",\"data-cy\":\"login-support-access\"},on:{\"click\":function($event){return _vm.selectTenant(_vm.currentLogin.supportAccess)}}},[_vm._v(\" \"+_vm._s(_vm.currentLogin.supportAccess.title)+\" \")])])]):_vm._e(),(_vm.selectTenants && _vm.selectTenants.length > 0)?_c('div',[_c('b',[_vm._v(\"Select Tenancy:\")]),_c('div',_vm._l((_vm.selectTenants),function(tenant){return _c('div',{key:tenant.id,staticClass:\"tenant-selection\",attrs:{\"disabled\":tenant.disabled,\"button\":\"\",\"data-cy\":(\"login-tenant-select-\" + (tenant.id))},on:{\"click\":function($event){return _vm.selectTenant(tenant)}}},[_vm._v(\" \"+_vm._s(tenant.title)+\" \")])}),0)]):_vm._e(),_c('div',{staticClass:\"m-t-10\",staticStyle:{\"text-align\":\"right\"}},[_c('b-btn',{attrs:{\"variant\":\"link\"},on:{\"click\":_vm.cancelTenantSelect}},[_vm._v(\"Cancel\")])],1)]):(_vm.selectingTenant)?_c('div'):(\n\t\t\t\t\t\t_vm.loginState === _vm.LoginState.PendingMfa ||\n\t\t\t\t\t\t\t_vm.loginState === _vm.LoginState.PendingSystemMfa\n\t\t\t\t\t)?_c('div',[_c('mfa-entry',{attrs:{\"isSystem\":_vm.loginState === _vm.LoginState.PendingSystemMfa},on:{\"success\":_vm.mfaSuccess}})],1):(\n\t\t\t\t\t\t_vm.loginState === _vm.LoginState.PendingMfaSetup ||\n\t\t\t\t\t\t\t_vm.loginState === _vm.LoginState.PendingSystemMfaSetup\n\t\t\t\t\t)?_c('div',[_c('mfa-setup',{attrs:{\"isSystem\":_vm.loginState === _vm.LoginState.PendingSystemMfaSetup},on:{\"set\":_vm.mfaSet,\"cancel\":_vm.mfaCancel}})],1):(_vm.loginState === _vm.LoginState.Introduction)?_c('div',[_c('introduction')],1):(_vm.loginState === _vm.LoginState.LoggedIn || _vm.loginState === _vm.LoginState.Waiting)?_c('div'):_c('div',[_c('scrollbar',{staticClass:\"h-100\"},[(_vm.canUseSso && !_vm.showSsoBelowLogin)?_c('oauth-login',{staticClass:\"login-column\",attrs:{\"data-cy\":\"login-oauth-top\",\"facebook-oauth-url\":_vm.facebookOauthUrl,\"google-o-auth-enabled\":_vm.googleOAuthEnabled,\"google-oauth-url\":_vm.googleOauthUrl,\"oauth-login-error\":_vm.oauthLoginError,\"oauth-login-error-string\":_vm.oauthLoginErrorString,\"saml-providers\":_vm.samlProviders}}):_vm._e(),_c('div',{staticClass:\"login-column\",attrs:{\"id\":\"loginDetails\"}},[(_vm.passwordReset)?[_c('div',{staticClass:\"alert alert-secondary\"},[_vm._v(\" If an account exists with that email, we will email you a link. \"),_c('br'),_vm._v(\"Please check your inbox and follow the link when you get it. \")])]:(_vm.forgotPassword)?[_c('div',{staticStyle:{\"margin-bottom\":\"1rem\"}},[_c('b',[_vm._v(\"Reset password\")])]),_c('b-form-group',{attrs:{\"label\":\"Email:\",\"label-for\":\"resetEmail\"}},[_c('b-form-input',{attrs:{\"id\":\"resetEmail\",\"type\":\"email\",\"autocomplete\":\"off\"},model:{value:(_vm.email),callback:function ($$v) {_vm.email=$$v},expression:\"email\"}})],1),_c('button',{staticClass:\"btn btn-primary\",attrs:{\"data-cy\":\"login-btn-reset-password-send\",\"type\":\"submit\",\"disabled\":!_vm.email || _vm.resetting},on:{\"click\":function($event){return _vm.requestResetPassword()}}},[_vm._v(\" Reset \")])]:(_vm.resetCode)?[_c('div',{staticClass:\"form-group\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.email),expression:\"email\"}],staticClass:\"form-control\",attrs:{\"id\":\"emailTextBox\",\"type\":\"email\",\"placeholder\":\"Email\"},domProps:{\"value\":(_vm.email)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.email=$event.target.value}}})]),_c('password-reset',{attrs:{\"disabled\":_vm.email === '',\"error\":_vm.error},on:{\"resetPassword\":_vm.resetPassword},model:{value:(_vm.password),callback:function ($$v) {_vm.password=$$v},expression:\"password\"}})]:[(_vm.passwordChanged)?_c('div',{staticClass:\"alert alert-success\"},[_c('b',[_vm._v(\"Password Changed\")]),_c('br'),_vm._v(\"Your password has been successfully changed. Please log in with your new password now. \")]):_vm._e(),_c('form',{on:{\"submit\":function($event){$event.preventDefault();return _vm.onSubmit($event)}}},[_c('div',{staticClass:\"form-group\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.email),expression:\"email\"}],staticClass:\"form-control input-login\",attrs:{\"data-cy\":\"login-txt-email\",\"id\":\"emailTextBox\",\"type\":\"email\",\"placeholder\":\"Email\",\"disabled\":_vm.step !== _vm.loginSteps.Email},domProps:{\"value\":(_vm.email)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.email=$event.target.value}}})]),_c('div',{staticClass:\"form-group\"},[(_vm.step !== _vm.loginSteps.Email)?_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.password),expression:\"password\"}],staticClass:\"form-control input-login\",attrs:{\"data-cy\":\"login-txt-password\",\"id\":\"password\",\"type\":\"password\",\"disabled\":_vm.isUserSuite,\"placeholder\":\"Password\"},domProps:{\"value\":(_vm.password)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.password=$event.target.value}}}):_vm._e()]),(_vm.error)?_c('div',{staticClass:\"alert alert-danger\",staticStyle:{\"max-height\":\"50vh\",\"overflow\":\"hidden\"},attrs:{\"id\":\"divError\"}},[_vm._v(\" \"+_vm._s(_vm.error)+\" \")]):_vm._e(),(_vm.step === _vm.loginSteps.Email)?_c('button',{staticClass:\"btn btn-primary btn-login\",attrs:{\"data-cy\":\"login-btn-next\",\"id\":\"next\",\"type\":\"submit\",\"disabled\":_vm.loggingIn || !_vm.email},on:{\"click\":function($event){return _vm.next()}}},[(!_vm.loggingIn)?_c('span',[_vm._v(_vm._s(this.isUserSuite ? \"Log in to suite\" : \"Next\"))]):_vm._e(),(_vm.loggingIn)?_c('span',[_vm._v(\"Processing ...\")]):_vm._e(),_c('span',{staticClass:\"login-decorations\"},[(_vm.loggingIn)?_c('i',{staticClass:\"fas fa-spinner fa-spin\"}):_vm._e()])]):(_vm.step === _vm.loginSteps.Password || _vm.step === _vm.loginSteps.SAML)?_c('button',{staticClass:\"btn btn-primary btn-login\",attrs:{\"data-cy\":\"login-btn-login\",\"id\":\"login\",\"type\":\"submit\",\"disabled\":_vm.loginDisabled},on:{\"click\":function($event){return _vm.login()}}},[(!_vm.loggingIn)?_c('span',[_vm._v(_vm._s(this.step == this.loginSteps.SAML ? \"Login with SSO\" : \"Login\"))]):_vm._e(),(_vm.loggingIn)?_c('span',[_vm._v(\"Logging you in ...\")]):_vm._e(),_c('span',{staticClass:\"login-decorations\"},[(_vm.loggingIn)?_c('i',{staticClass:\"fas fa-spinner fa-spin\"}):_vm._e()])]):_vm._e(),(_vm.canUseSso && _vm.showSsoBelowLogin)?_c('oauth-login',{attrs:{\"data-cy\":\"login-oauth-bottom\",\"facebook-oauth-url\":_vm.facebookOauthUrl,\"google-o-auth-enabled\":_vm.googleOAuthEnabled,\"google-oauth-url\":_vm.googleOauthUrl,\"oauth-login-error\":_vm.oauthLoginError,\"oauth-login-error-string\":_vm.oauthLoginErrorString,\"saml-providers\":_vm.samlProviders}}):_vm._e(),(_vm.step !== _vm.loginSteps.Email)?_c('a',{staticClass:\"link link-login\",attrs:{\"data-cy\":\"login-link-back-to-email\",\"title\":\"Go back to email input\",\"tabindex\":\"0\"},on:{\"click\":_vm.gotoEmailStep}},[_vm._v(\" Back to email \")]):[_c('small',{staticClass:\"pt-1 font-italic d-block\",attrs:{\"data-cy\":\"login-small-eula\"}},[_vm._v(\" By logging in, you agree to the terms in our \"),_c('b-link',{attrs:{\"href\":\"https://sureviewsystems.com/eula\"}},[_vm._v(\"EULA\")])],1),(_vm.canUseForgotPassword)?_c('a',{staticClass:\"mt-0 pt-2 link link-login\",attrs:{\"data-cy\":\"login-link-forgot-password\",\"title\":\"Reset your password\",\"tabindex\":\"0\"},on:{\"click\":function($event){_vm.forgotPassword = true}}},[_vm._v(\" Forgot password? \")]):_vm._e(),(_vm.step === _vm.loginSteps.Email && _vm.canSignUp)?_c('a',{staticClass:\"mt-0 pt-2 link link-login\",staticStyle:{\"float\":\"right\"},attrs:{\"data-cy\":\"login-link-sign-up\",\"tabindex\":\"0\",\"title\":\"Sign up\"},on:{\"click\":function($event){return _vm.redirectSignup()}}},[_vm._v(\" Sign up \")]):_vm._e()]],2)]],2)],1)],1),(_vm.screenWidth < 800)?_c('div',{staticClass:\"version-label\"},[_vm._v(\" v\"+_vm._s(_vm.webVersion)+\" \")]):_vm._e()])])],1),(_vm.screenWidth >= 800)?_c('div',{staticClass:\"version-label\"},[_vm._v(\"v\"+_vm._s(_vm.webVersion))]):_vm._e(),_c('zendeskHelp',{attrs:{\"widgetOnly\":\"\"}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticStyle:{\"margin-bottom\":\"1rem\"}},[_c('b-form',[_c('password-input',{attrs:{\"minimum-length\":_vm.minimumLength,\"label-text\":\"Create new password\",\"data-cy\":\"password-reset-input-password\"},on:{\"score\":_vm.updatePasswordScore,\"valid\":_vm.updatePasswordValid},model:{value:(_vm.password),callback:function ($$v) {_vm.password=$$v},expression:\"password\"}}),_c('b-form-group',[_c('label',{attrs:{\"for\":\"confirmPassword\"}},[_vm._v(\"Confirm Password\")]),_c('b-input',{attrs:{\"id\":\"confirmPassword\",\"type\":\"password\",\"placeholder\":\"Confirm Password\",\"state\":!_vm.$v.passwordConfirm.$anyError},model:{value:(_vm.passwordConfirm),callback:function ($$v) {_vm.passwordConfirm=$$v},expression:\"passwordConfirm\"}}),_c('b-form-invalid-feedback',[_vm._v(\" Passwords do not match \")])],1),(_vm.error)?_c('b-alert',{attrs:{\"variant\":\"danger\",\"id\":\"resetError\"}},[_vm._v(\" \"+_vm._s(_vm.error)+\" \")]):_vm._e(),_c('b-button',{attrs:{\"variant\":\"primary\",\"block\":\"\",\"disabled\":_vm.$v.$anyError,\"id\":\"changePassword\"},on:{\"click\":function($event){return _vm.resetPassword()}}},[(!_vm.passwordResetting)?_c('span',[_vm._v(\"Set Password\")]):_vm._e(),(_vm.passwordResetting)?_c('span',[_vm._v(\"Setting your password ...\")]):_vm._e(),_c('span',{staticClass:\"login-decorations\"},[(_vm.passwordResetting)?_c('i',{staticClass:\"fas fa-spinner fa-spin\"}):_vm._e()])])],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('b-form-group',{attrs:{\"label\":_vm.labelText,\"label-for\":\"password-input-box\"}},[_c('b-input',{directives:[{name:\"b-tooltip\",rawName:\"v-b-tooltip\",value:(_vm.allSuggestions),expression:\"allSuggestions\"}],attrs:{\"type\":\"password\",\"state\":_vm.passwordValid,\"id\":\"password-input-box\",\"placeholder\":_vm.labelText,\"data-cy\":\"password-input-input\"},model:{value:(_vm.password),callback:function ($$v) {_vm.password=$$v},expression:\"password\"}}),_c('b-form-invalid-feedback',{attrs:{\"id\":\"password-input-invalid-feedback\"}},[_vm._v(\" \"+_vm._s(_vm.warningOrSuggestions)+\" \")]),_c('password',{directives:[{name:\"b-tooltip\",rawName:\"v-b-tooltip\",value:(_vm.allSuggestions),expression:\"allSuggestions\"}],staticClass:\"password-bar\",attrs:{\"strength-meter-only\":\"\",\"id\":\"password-strength-meter\",\"data-cy\":\"password-input-bar\"},on:{\"feedback\":_vm.updateFeedback,\"score\":_vm.updateScore},model:{value:(_vm.password),callback:function ($$v) {_vm.password=$$v},expression:\"password\"}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { Component, Prop, Vue } from \"vue-property-decorator\"\r\n\r\n// @ts-ignore\r\nimport Password from \"vue-password-strength-meter\"\r\nimport { ZXCVBNFeedback } from \"zxcvbn\"\r\n\r\n@Component({\r\n\tcomponents: {\r\n\t\t\"password\": Password\r\n\t}\r\n})\r\nexport default class PasswordInput extends Vue {\r\n\t@Prop({ type: String, required: true })\r\n\tvalue!: string;\r\n\r\n\t@Prop({ type: Number, required: true })\r\n\tminimumLength!: number;\r\n\r\n\t@Prop({ type: String, required: true })\r\n\tlabelText!: string;\r\n\r\n\tpublic passwordScore: number | null = null\r\n\tpublic passwordFeedback: ZXCVBNFeedback = {\r\n\t\twarning: \"\",\r\n\t\tsuggestions: []\r\n\t}\r\n\r\n\tpublic get password () {\r\n\t\treturn this.value\r\n\t}\r\n\r\n\tpublic set password (value: string) {\r\n\t\tthis.$emit(\"input\", value)\r\n\t}\r\n\r\n\tprivate updateScore (score: number) {\r\n\t\tthis.passwordScore = score\r\n\t\tthis.$emit(\"score\", this.passwordScore)\r\n\t}\r\n\r\n\tprivate updateFeedback (feedback: ZXCVBNFeedback) {\r\n\t\tthis.passwordFeedback = feedback\r\n\t}\r\n\r\n\tget passwordValid () {\r\n\t\tconst valid = !(this.passwordFeedback.warning || this.passwordFeedback.suggestions.length > 0)\r\n\t\tthis.$emit(\"valid\", valid)\r\n\t\treturn valid\r\n\t}\r\n\r\n\tget allSuggestions () {\r\n\t\tif (this.passwordFeedback.suggestions.length === 0) {\r\n\t\t\t// Hide our tooltips, so they don't stay open if user still has it hovered/active\r\n\t\t\tthis.$root.$emit(\"bv::hide::tooltip\")\r\n\t\t\treturn \"\"\r\n\t\t}\r\n\r\n\t\treturn this.passwordFeedback.suggestions.join(\"\\n\")\r\n\t}\r\n\r\n\tget warningOrSuggestions () {\r\n\t\tif (this.value.length < this.minimumLength) {\r\n\t\t\treturn `Minimum length is ${this.minimumLength} characters`\r\n\t\t}\r\n\r\n\t\tif (this.passwordFeedback.warning) {\r\n\t\t\treturn this.passwordFeedback.warning\r\n\t\t}\r\n\r\n\t\treturn this.passwordFeedback.suggestions.join(\". \")\r\n\t}\r\n}\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PasswordInput.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PasswordInput.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./PasswordInput.vue?vue&type=template&id=b8405368&scoped=true&\"\nimport script from \"./PasswordInput.vue?vue&type=script&lang=ts&\"\nexport * from \"./PasswordInput.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./PasswordInput.vue?vue&type=style&index=0&id=b8405368&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"b8405368\",\n null\n \n)\n\nexport default component.exports","\r\nimport { Component, Prop, Mixins } from \"vue-property-decorator\"\r\n\r\n// @ts-ignore\r\nimport PasswordInput from \"@/components/Controls/PasswordInput.vue\"\r\nimport { minLength, minValue, required, sameAs } from \"vuelidate/lib/validators\"\r\nimport { RuleDecl } from \"vue/types/options\"\r\nimport { validationMixin } from \"vuelidate\"\r\n\r\nconst validations = function (this: PasswordInput): RuleDecl {\r\n\treturn {\r\n\t\tvalue: {\r\n\t\t\trequired,\r\n\t\t\tminLength: minLength(this.minimumLength)\r\n\t\t},\r\n\t\tpasswordConfirm: {\r\n\t\t\trequired,\r\n\t\t\tmatches: sameAs(\"value\")\r\n\t\t},\r\n\t\tpasswordScore: {\r\n\t\t\tsecure: minValue(3)\r\n\t\t},\r\n\t\tpasswordValid: {\r\n\t\t\tvalid: (value: boolean) => value\r\n\t\t},\r\n\t\tpassword: [\"value\", \"passwordValid\", \"passwordScore\"]\r\n\t}\r\n}\r\n\r\n@Component({\r\n\tcomponents: {\r\n\t\t\"password-input\": PasswordInput\r\n\t},\r\n\tvalidations: validations\r\n})\r\nexport default class PasswordReset extends Mixins(validationMixin) {\r\n\t@Prop({ default: \"\" })\r\n\tvalue!: string\r\n\r\n\t@Prop({ default: 8 })\r\n\tminimumLength!: number\r\n\r\n\t@Prop({ default: false })\r\n\tdisabled!: boolean\r\n\r\n\t@Prop({ default: null })\r\n\terror!: string | null\r\n\r\n\tpublic passwordScore: number = 0;\r\n\tpublic passwordValid: boolean = false;\r\n\r\n\tpublic passwordConfirm: string = \"\";\r\n\r\n\tpasswordResetting: boolean = false;\r\n\r\n\tprivate get password () {\r\n\t\treturn this.value\r\n\t}\r\n\r\n\tprivate set password (value: string) {\r\n\t\tthis.$emit(\"input\", value)\r\n\t}\r\n\r\n\tresetPassword () {\r\n\t\tthis.$v.$touch()\r\n\t\tif (this.disabled || this.passwordResetting || this.$v.$invalid) {\r\n\t\t\treturn\r\n\t\t}\r\n\r\n\t\tthis.passwordResetting = true\r\n\t\tthis.$emit(\"resetPassword\", {\r\n\t\t\tnewPassword: this.value,\r\n\t\t\tresetComplete: () => this.passwordResetting = false\r\n\t\t})\r\n\t}\r\n\r\n\tprivate updatePasswordScore (score: number) {\r\n\t\tthis.passwordScore = score\r\n\t}\r\n\r\n\tprivate updatePasswordValid (valid: boolean) {\r\n\t\tthis.passwordValid = valid\r\n\t}\r\n}\r\n\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PasswordReset.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PasswordReset.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./PasswordReset.vue?vue&type=template&id=832e9344&\"\nimport script from \"./PasswordReset.vue?vue&type=script&lang=ts&\"\nexport * from \"./PasswordReset.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('form',{staticClass:\"form-group d-flex flex-column\",on:{\"submit\":function($event){$event.preventDefault();return _vm.onSubmit($event)}}},[(_vm.isSystem)?_c('div',[_vm._v(\" To log into a system account, you need to set up two factor authentication. \")]):_vm._e(),_c('mfa-setup',{staticClass:\"mfa-setup\",attrs:{\"tenantName\":_vm.codeTenantName},model:{value:(_vm.newAuthDetails),callback:function ($$v) {_vm.newAuthDetails=$$v},expression:\"newAuthDetails\"}}),(_vm.error)?_c('div',{staticClass:\"alert alert-danger\"},[_vm._v(\" \"+_vm._s(_vm.error)+\" \")]):_vm._e(),_c('div',{staticClass:\"button-box\"},[_c('b-btn',{attrs:{\"variant\":\"primary\",\"disabled\":!_vm.newAuthDetails || !_vm.newAuthDetails.token || !_vm.newAuthDetails.authCode},on:{\"click\":_vm.setMfa}},[_vm._v(\"Save\")]),_c('b-btn',{attrs:{\"variant\":\"secondary\"},on:{\"click\":function($event){return _vm.$emit('cancel')}}},[_vm._v(\"Cancel\")])],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{ref:\"mfaContainer\",staticClass:\"form-group d-flex flex-column\"},[_c('p',[_vm._v(\"Please configure in preferred Authenticator (Microsoft, Google, etc):\")]),_c('div',{staticClass:\"img-container\"},[(_vm.qrDataUrl)?_c('img',{staticClass:\"qr-img\",attrs:{\"src\":_vm.qrDataUrl,\"alt\":\"Two-Factor QR Code\"}}):_vm._e()]),_c('div',{staticClass:\"flex-shrink-0\"},[(_vm.tempSecret)?_c('b-btn',{staticClass:\"d-block m-t-10 w-100\",attrs:{\"variant\":\"secondary\"},on:{\"click\":_vm.copySecretToClipboard}},[_c('i',{staticClass:\"far fa-copy\"}),_vm._v(\" Copy Secret - \"+_vm._s(_vm.tempSecret)+\" \")]):_vm._e(),_c('b-form-group',{staticClass:\"m-t-10\",attrs:{\"label\":\"Authenticator Code\",\"description\":\"Enter the code as appears on your authenticator\"}},[_c('b-form-input',{model:{value:(_vm.localAuthCode),callback:function ($$v) {_vm.localAuthCode=$$v},expression:\"localAuthCode\"}})],1),(_vm.error)?_c('div',{staticClass:\"alert alert-danger\",staticStyle:{\"max-height\":\"50vh\",\"overflow\":\"hidden\"}},[_vm._v(\" \"+_vm._s(_vm.error)+\" \")]):_vm._e()],1)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { Component, Prop, Vue, Ref, Watch } from \"vue-property-decorator\"\r\n\r\nimport { utils } from \"@/mixins/utils\"\r\n\r\n// @ts-ignore\r\nimport QRious from \"qrious\"\r\n\r\n// @ts-ignore\r\nimport speakeasy from \"speakeasy\"\r\n\r\nimport api from \"@/services/api\"\r\nimport { AuthSetup } from \"@/types/user\"\r\n\r\n@Component({\r\n\tcomponents: {}\r\n})\r\nexport default class MFASetup extends Vue {\r\n @Prop({ default: \"\" })\r\n\tpublic email!: string\r\n\r\n @Prop({ default: null })\r\n\tpublic tenantName!: string | null\r\n\r\n @Prop({ default: () => null })\r\n\tpublic error!: string | null\r\n\r\n @Prop({ default: () => null })\r\n\tpublic value!: AuthSetup | null\r\n\r\n\t@Prop({ default: false })\r\n\tpublic mfaSet!: boolean\r\n\r\n\t@Ref()\r\n\treadonly mfaContainer: any;\r\n\r\n\tprivate tempSecret: string | null = null\r\n\tprivate otpURL: string | null = null\r\n\tprivate qrDataUrl: string | null = null\r\n\r\n\tprivate localAuthCode: string | null = null\r\n\r\n\tget currentValue (): AuthSetup {\r\n\t\treturn {\r\n\t\t\tauthCode: this.localAuthCode,\r\n\t\t\ttoken: this.tempSecret\r\n\t\t}\r\n\t}\r\n\r\n\tget isValid (): boolean {\r\n\t\treturn !!this.localAuthCode && !!this.tempSecret\r\n\t}\r\n\r\n\t@Watch(\"isValid\")\r\n\tonValidChanged (newValue: boolean) {\r\n\t\tthis.$emit(\"valid\", newValue)\r\n\t}\r\n\r\n\t@Watch(\"currentValue\", { deep: true })\r\n\tonValueChanged (newValue: AuthSetup) {\r\n\t\tthis.$emit(\"input\", newValue)\r\n\t}\r\n\r\n\tpublic mounted () {\r\n\t\t// Create our MFA QR code\r\n\t\tconst secret = speakeasy.generateSecret({\r\n\t\t\tlength: 20,\r\n\t\t\tname: this.tenantName ? `Sureview Cases (${this.tenantName})` : \"Sureview Cases\",\r\n\t\t\tissuer: \"Sureview Cases\"\r\n\t\t})\r\n\r\n\t\tthis.tempSecret = secret.base32\r\n\t\tthis.otpURL = secret.otpauth_url\r\n\r\n\t\tconst qr = new QRious({\r\n\t\t\tsize: 500,\r\n\t\t\tvalue: secret.otpauth_url\r\n\t\t})\r\n\r\n\t\tthis.qrDataUrl = qr.toDataURL()\r\n\t}\r\n\r\n\tprivate copySecretToClipboard () {\r\n\t\tif (!this.tempSecret) return\r\n\t\tutils.methods.copyToClipboard(this.mfaContainer, this.tempSecret)\r\n\t}\r\n}\r\n\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MFASetup.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MFASetup.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./MFASetup.vue?vue&type=template&id=506a7c1c&scoped=true&\"\nimport script from \"./MFASetup.vue?vue&type=script&lang=ts&\"\nexport * from \"./MFASetup.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./MFASetup.vue?vue&type=style&index=0&id=506a7c1c&prod&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"506a7c1c\",\n null\n \n)\n\nexport default component.exports","\r\nimport { Component, Prop, Vue, Ref, Watch } from \"vue-property-decorator\"\r\n\r\n// @ts-ignore\r\nimport QRious from \"qrious\"\r\n\r\n// @ts-ignore\r\nimport speakeasy from \"speakeasy\"\r\n\r\nimport api from \"@/services/api\"\r\nimport { AuthSetup } from \"@/types/user\"\r\n\r\nimport MFASetup from \"./MFASetup.vue\"\r\n\r\n@Component({\r\n\tcomponents: {\r\n\t\t\"mfa-setup\": MFASetup\r\n\t}\r\n})\r\nexport default class LoginMfaSetup extends Vue {\r\n\t@Ref()\r\n\tauthCodeTextBox!: HTMLInputElement\r\n\r\n\t@Prop({ default: false })\r\n\tisSystem!: boolean\r\n\r\n\t@Prop({ default: null })\r\n\ttenantName!: string | null\r\n\r\n\tprivate newAuthDetails: AuthSetup | null = null\r\n\tprivate localAuthCode: string | null = null\r\n\tprivate submitting: boolean = false\r\n\tprivate error: any = null\r\n\r\n\tprivate get codeTenantName (): string | null {\r\n\t\treturn this.isSystem ? \"System Admin\" : this.tenantName\r\n\t}\r\n\r\n\tmounted () {\r\n\t\t// setTimeout(() => {\r\n\t\t// \tthis.authCodeTextBox.focus()\r\n\t\t// }, 100)\r\n\t}\r\n\r\n\tasync setMfa () {\r\n\t\tif (!this.newAuthDetails) {\r\n\t\t\treturn\r\n\t\t}\r\n\r\n\t\ttry {\r\n\t\t\tif (this.isSystem) {\r\n\t\t\t\tawait api.setSystemMfa(this.newAuthDetails)\r\n\t\t\t} else {\r\n\t\t\t\tawait api.setMfa(this.newAuthDetails)\r\n\t\t\t}\r\n\r\n\t\t\tthis.$emit(\"set\")\r\n\t\t} catch (err) {\r\n\t\t\tthis.error = err\r\n\t\t}\r\n\t}\r\n}\r\n\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LoginMfaSetup.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LoginMfaSetup.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./LoginMfaSetup.vue?vue&type=template&id=43545664&scoped=true&\"\nimport script from \"./LoginMfaSetup.vue?vue&type=script&lang=ts&\"\nexport * from \"./LoginMfaSetup.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./LoginMfaSetup.vue?vue&type=style&index=0&id=43545664&prod&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"43545664\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"form-group\"},[_c('form',{on:{\"submit\":function($event){$event.preventDefault();return _vm.onSubmit($event)}}},[_c('b-form-group',{staticClass:\"m-t-10\",attrs:{\"label\":\"Authenticator Code\",\"description\":\"Enter the code as appears on your authenticator\"}},[_c('b-form-input',{ref:\"authCodeTextBox\",model:{value:(_vm.localAuthCode),callback:function ($$v) {_vm.localAuthCode=$$v},expression:\"localAuthCode\"}})],1),(_vm.error)?_c('div',{staticClass:\"alert alert-danger\"},[_vm._v(\" \"+_vm._s(_vm.error)+\" \")]):_vm._e(),_c('b-btn',{staticClass:\"d-block w-100 m-a-5\",attrs:{\"type\":\"submit\",\"variant\":\"primary\",\"disabled\":!_vm.localAuthCode || _vm.submitting},on:{\"click\":_vm.enterCode}},[_vm._v(\" Validate \"),_c('span',{staticClass:\"login-decorations\"},[(_vm.submitting)?_c('i',{staticClass:\"fas fa-spinner fa-spin\"}):_vm._e()])])],1)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { Component, Prop, Vue, Ref, Watch } from \"vue-property-decorator\"\r\n\r\n// @ts-ignore\r\nimport QRious from \"qrious\"\r\n\r\n// @ts-ignore\r\nimport speakeasy from \"speakeasy\"\r\n\r\nimport api from \"@/services/api\"\r\nimport { AuthSetup } from \"@/types/user\"\r\n\r\n@Component({\r\n\tcomponents: {}\r\n})\r\nexport default class MFAEntry extends Vue {\r\n\t@Ref()\r\n\tauthCodeTextBox!: HTMLInputElement\r\n\r\n\t@Prop({ default: false })\r\n\tisSystem!: boolean\r\n\r\n\tprivate localAuthCode: string | null = null\r\n\tprivate submitting: boolean = false\r\n\tprivate error: any = null\r\n\r\n\tmounted () {\r\n\t\tsetTimeout(() => {\r\n\t\t\tthis.authCodeTextBox.focus()\r\n\t\t}, 100)\r\n\t}\r\n\r\n\tasync enterCode () {\r\n\t\tif (!this.localAuthCode) return\r\n\r\n\t\tthis.submitting = true\r\n\t\tthis.error = null\r\n\r\n\t\ttry {\r\n\t\t\tif (this.isSystem) {\r\n\t\t\t\tawait api.submitSystemMfa({\r\n\t\t\t\t\tauthCode: this.localAuthCode\r\n\t\t\t\t})\r\n\t\t\t} else {\r\n\t\t\t\tawait api.submitMfa({\r\n\t\t\t\t\tauthCode: this.localAuthCode\r\n\t\t\t\t})\r\n\t\t\t}\r\n\r\n\t\t\tthis.$emit(\"success\")\r\n\t\t} catch (err) {\r\n\t\t\tthis.error = err\r\n\t\t}\r\n\t\tthis.submitting = false\r\n\t}\r\n}\r\n\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MFAEntry.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MFAEntry.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./MFAEntry.vue?vue&type=template&id=167cc384&scoped=true&\"\nimport script from \"./MFAEntry.vue?vue&type=script&lang=ts&\"\nexport * from \"./MFAEntry.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./MFAEntry.vue?vue&type=style&index=0&id=167cc384&prod&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"167cc384\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"oauth-col\"},[_c('a',{directives:[{name:\"show\",rawName:\"v-show\",value:(false),expression:\"false\"}],staticClass:\"btn btn-oauth btn-facebook\",attrs:{\"href\":_vm.facebookOauthUrl,\"data-cy\":\"oauthlogin-btn-facebook\"}},[_c('img',{attrs:{\"alt\":\"Facebook logo\",\"src\":\"images/facebook/white/png/f_logo_RGB-White_250.png\"}}),_vm._v(\" Log in with Facebook \")]),_c('a',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.googleOAuthEnabled),expression:\"googleOAuthEnabled\"}],staticClass:\"btn btn-oauth btn-google\",attrs:{\"href\":_vm.googleOauthUrl,\"data-cy\":\"oauthlogin-btn-google\"}},[_c('img',{attrs:{\"alt\":\"Google logo\",\"src\":\"images/google/btn_google_light_normal_ios@2x.png\"}}),_vm._v(\" Sign in with Google \")]),(false)?_c('a',{staticClass:\"btn btn-oauth btn-microsoft\",attrs:{\"href\":_vm.googleOauthUrl,\"data-cy\":\"oauthlogin-btn-microsoft\"}},[_c('img',{attrs:{\"alt\":\"Microsoft logo\",\"src\":\"images/microsoft/ms-symbollockup_mssymbol_19.png\"}}),_vm._v(\" Sign in with Microsoft \")]):_vm._e(),(_vm.samlProviders)?_vm._l((_vm.samlProviders),function(saml){return _c('a',{key:saml.key,staticClass:\"btn btn-oauth btn-primary\",attrs:{\"href\":saml.url,\"data-cy\":(\"oauthlogin-btn-saml-\" + (saml.key))}},[_vm._v(\" Sign in with \"+_vm._s(saml.title)+\" \"),(saml.error && saml.error.length > 0)?_c('div',{attrs:{\"data-cy\":(\"oauthlogin-error-saml-\" + (saml.key))}},[_c('small',[_vm._v(_vm._s(saml.error))])]):_vm._e()])}):_vm._e(),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.oauthLoginError),expression:\"oauthLoginError\"}],staticClass:\"d-flex justify-content-center\",attrs:{\"data-cy\":\"oauthlogin-error-oauth\"}},[_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.oauthLoginError),expression:\"oauthLoginError\"}],staticClass:\"alert alert-danger\"},[_c('b',[_vm._v(_vm._s(_vm.oauthLoginErrorString)+\" \")])])])],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { Component, Prop, Vue } from \"vue-property-decorator\"\r\nimport { SamlUrl } from \"@/types/domain\"\r\n\r\n@Component({})\r\nexport default class OAuthLogin extends Vue {\r\n\t@Prop({ type: String, default: () => \"\" })\r\n\tfacebookOauthUrl!: string\r\n\r\n\t@Prop({ type: Boolean, default: false })\r\n\tgoogleOAuthEnabled!: boolean\r\n\r\n\t@Prop({ type: String, default: () => \"\" })\r\n\tgoogleOauthUrl!: string\r\n\r\n\t@Prop({ type: Array, default: () => null })\r\n\tsamlProviders!: SamlUrl[] | null\r\n\r\n\t@Prop({ type: Boolean, default: false })\r\n\toauthLoginError!: boolean\r\n\r\n\t@Prop({ type: String, default: \"\" })\r\n\toauthLoginErrorString!: string\r\n}\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./OAuthLogin.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./OAuthLogin.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./OAuthLogin.vue?vue&type=template&id=4855e8ae&scoped=true&\"\nimport script from \"./OAuthLogin.vue?vue&type=script&lang=ts&\"\nexport * from \"./OAuthLogin.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./OAuthLogin.vue?vue&type=style&index=0&id=4855e8ae&prod&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"4855e8ae\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.pageLoaded)?_c('div',{staticClass:\"intro align-items-center justify-content-center\"},[_c('step-progress',{staticClass:\"w-100 m-b-20\",attrs:{\"stepTitle\":_vm.currentStep.title,\"currentStep\":_vm.currentStepIndex + 1,\"stepCount\":_vm.availableSteps.length}}),(_vm.currentStep.type === _vm.IntroStepTypes.Welcome)?[_c('h1',{staticClass:\"m-b-5\"},[_vm._v(\"Welcome to\")]),_c('h1',{staticClass:\"m-b-20\"},[_vm._v(\"SureView Cases\")]),_c('h3',{staticClass:\"m-t-20\"},[_vm._v(\"Let's get you started\")])]:(_vm.currentStep.type === _vm.IntroStepTypes.UserDetails)?[_c('div',{staticClass:\"d-flex align-items-center w-100\"},[_c('div',{staticClass:\"mr-4\"},[_c('user-profile-picture',{attrs:{\"user-details\":_vm.userDetails},on:{\"picture-updated\":_vm.onUserPictureUpdated}})],1),_c('div',{staticClass:\"flex-grow-1\"},[_c('b-form-group',{attrs:{\"label\":\"Name\"}},[_c('b-input',{attrs:{\"disabled\":true},model:{value:(_vm.userDetails.name),callback:function ($$v) {_vm.$set(_vm.userDetails, \"name\", $$v)},expression:\"userDetails.name\"}})],1),_c('b-form-group',{attrs:{\"label\":\"Email\"}},[_c('b-input',{attrs:{\"disabled\":true},model:{value:(_vm.userDetails.email),callback:function ($$v) {_vm.$set(_vm.userDetails, \"email\", $$v)},expression:\"userDetails.email\"}})],1)],1)]),(_vm.userDefinition)?_c('div',{staticClass:\"w-100\"},[_c('data-form',{attrs:{\"data-cy\":\"user-fields\",\"columns\":_vm.currentStepUserFields,\"canEdit\":true,\"item\":_vm.userFields}})],1):_vm._e()]:(_vm.currentStep.type === _vm.IntroStepTypes.TenantInfo)?[_c('b-alert',{attrs:{\"show\":\"\",\"dismissible\":\"\",\"variant\":\"secondary\"}},[_vm._v(\" This information can be accessed again via the top-right menu \")]),_c('tenant-info',{staticClass:\"w-100\",attrs:{\"info\":_vm.tenantInfo}})]:_vm._e(),_c('div',{staticClass:\"m-t-20 m-b-20\"},[_c('div',{staticClass:\"w-50 d-inline-block p-1\"},[(!_vm.isFirstStep)?_c('b-btn',{attrs:{\"variant\":\"primary\",\"data-cy\":\"back-button\"},on:{\"click\":_vm.back}},[_c('i',{staticClass:\"fa-solid fa-chevron-left\"}),_vm._v(\" Back \")]):_vm._e()],1),_c('div',{staticClass:\"w-50 d-inline-block p-1\"},[(!_vm.isLastStep)?_c('b-btn',{attrs:{\"variant\":\"primary\",\"data-cy\":\"next-button\",\"title\":\"Next\"},on:{\"click\":_vm.next}},[_vm._v(\"Next \"),_c('i',{staticClass:\"fa-solid fa-chevron-right\"})]):_c('b-btn',{attrs:{\"variant\":\"primary\",\"data-cy\":\"finish-button\",\"title\":\"Finish\"},on:{\"click\":_vm.finish}},[_vm._v(\"Finish\")])],1)])],2):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"user-image-container\"},[_c('img',{staticClass:\"user-image circular\",attrs:{\"id\":\"user-image\",\"src\":_vm.userPictureUrl}}),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.canEditUserPicture),expression:\"canEditUserPicture\"}],staticClass:\"user-image circular user-image-hover\",attrs:{\"id\":\"user-image-button\",\"tabindex\":\"0\"}}),_c('b-popover',{attrs:{\"target\":\"user-image-button\",\"triggers\":\"click blur\",\"placement\":\"bottom\",\"custom-class\":\"user-image-options\",\"disabled\":!_vm.canEditUserPicture}},[_c('b-list-group',{staticClass:\"m-1\"},[_c('b-list-group-item',{attrs:{\"id\":\"update-profile-picture\",\"data-cy\":\"update-profile-picture\",\"button\":\"\"},on:{\"click\":function($event){_vm.editingProfilePicture = true;}}},[_c('h6',{staticClass:\"pr-4\"},[_c('i',{staticClass:\"fa fa-edit mr-1\"}),_vm._v(\" Update profile picture \")])]),(_vm.profilePictureSet)?_c('b-list-group-item',{attrs:{\"id\":\"delete-profile-picture\",\"data-cy\":\"delete-profile-picture\",\"button\":\"\"},on:{\"click\":_vm.onProfilePictureDeleted}},[_c('h6',{staticClass:\"pr-4\"},[_c('i',{staticClass:\"fa fa-trash mr-1\"}),_vm._v(\" Delete profile picture \")])]):_vm._e()],1)],1),(_vm.canEditUserPicture)?_c('span',{staticClass:\"photo-icon fa-stack\",attrs:{\"id\":\"quick-update-profile-picture\",\"data-cy\":\"quick-update-profile-picture\",\"title\":\"Select a new profile picture\"},on:{\"click\":_vm.openPictureSelect}},[_c('i',{staticClass:\"fas fa-circle fa-stack-2x\"}),_c('i',{staticClass:\"fas fa-camera fa-stack-1x fa-inverse\"})]):_vm._e(),_c('user-profile-picture-modal',{ref:\"pictureModal\",attrs:{\"id\":\"picture-modal\",\"user-details\":_vm.userDetails,\"visible\":_vm.editingProfilePicture,\"profile-picture-set\":_vm.profilePictureSet},on:{\"hidden\":function($event){_vm.editingProfilePicture = false;},\"update-profile-picture\":_vm.onProfilePictureUpdated,\"delete-profile-picture\":_vm.onProfilePictureDeleted}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('input',{ref:\"fileInput\",staticClass:\"d-none\",attrs:{\"type\":\"file\",\"accept\":\".png,.jpg,.jpeg\",\"tabindex\":\"-1\",\"required\":\"\"},on:{\"change\":_vm.onQuickPictureSelected}}),_c('b-modal',{attrs:{\"title\":_vm.modalTitle,\"visible\":_vm.visible,\"size\":\"lg\"},on:{\"show\":_vm.onModalShown,\"hidden\":_vm.onModalHidden},scopedSlots:_vm._u([{key:\"modal-footer\",fn:function(){return [(_vm.profilePictureSet)?_c('b-button',{staticClass:\"mr-auto\",attrs:{\"id\":\"delete-button\",\"data-cy\":\"delete-button\",\"variant\":\"danger\"},on:{\"click\":_vm.removeSavedImage}},[_vm._v(\"Delete\")]):_vm._e(),_c('b-button',{attrs:{\"id\":\"cancel-button\",\"data-cy\":\"cancel-button\",\"variant\":\"secondary\"},on:{\"click\":_vm.onModalHidden}},[_vm._v(\"Cancel\")]),_c('b-button',{attrs:{\"id\":\"update-button\",\"data-cy\":\"update-button\",\"variant\":\"primary\",\"disabled\":!_vm.profilePictureChanged},on:{\"click\":_vm.onSave}},[_vm._v(\"Update\")])]},proxy:true}])},[_c('b-alert',{attrs:{\"variant\":\"danger\",\"show\":_vm.alertCountdown,\"dismissible\":\"\"},on:{\"dismiss-count-down\":_vm.alertCountdownChanged,\"dismissed\":function($event){_vm.alertCountdown = 0;}}},[_vm._v(\" \"+_vm._s(_vm.alertErrorMessage)+\" \")]),_c('picture-select',{attrs:{\"id\":\"picture-select\",\"value\":_vm.profilePicture,\"user-details\":_vm.userDetails},on:{\"input\":_vm.onProfilePictureUpdated}})],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"flex-grow\"},[_c('b-row',[_c('b-col',{staticClass:\"d-flex justify-content-center\",attrs:{\"cols\":\"4\"}},[_c('div',{staticClass:\"user-image\"},[(_vm.displayPictureUrl)?_c('img',{staticClass:\"user-image circular\",attrs:{\"src\":_vm.displayPictureUrl}}):_vm._e()])]),_c('b-col',{staticClass:\"d-flex\"},[_c('div',{staticClass:\"flex-grow-1 d-flex\",attrs:{\"role\":\"form\"}},[_c('div',{staticClass:\"upload-area m-1 p-2 mt-2\",class:{ 'drag-over': _vm.dragging },attrs:{\"tabindex\":\"0\"},on:{\"drop\":function($event){$event.preventDefault();return _vm.onImageSelected($event)},\"dragover\":_vm.onDragOver,\"dragend\":function($event){$event.preventDefault();_vm.dragging=false},\"dragleave\":function($event){$event.preventDefault();_vm.dragging=false}}},[_c('div',[_c('h5',{staticClass:\"mb-0\"},[_vm._v(\" Drop an image here or \"),_c('a',{staticClass:\"btn btn-primary btn-sm ml-2\",on:{\"click\":function($event){return _vm.$refs.fileInput.click()}}},[_vm._v(\" Select a file \"),_c('span',{staticClass:\"fas fa-upload\"})])]),_c('sub',[_vm._v(\"Supported file types: PNG, JPG, JPEG\")])]),_c('input',{ref:\"fileInput\",attrs:{\"accept\":\".png,.jpg,.jpeg\",\"type\":\"file\",\"tabindex\":\"-1\",\"required\":\"\"},on:{\"change\":_vm.onImageSelected}})])])])],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { Component, Vue, Prop } from \"vue-property-decorator\"\r\nimport api from \"@/services/api\"\r\n\r\n\t@Component({})\r\nexport default class PictureSelect extends Vue {\r\n\t\tpublic $refs!: {\r\n\t\t\tfileInput: HTMLInputElement;\r\n\t\t};\r\n\r\n\t\t/**\r\n\t\t * @summary The current picture, either a file or a URL.\r\n\t\t */\r\n\t\t@Prop({ type: [String, File], default: null }) private readonly value!: File | string | null;\r\n\r\n\t\tprivate readonly permittedFileTypes: string[] = [\"image/png\", \"image/jpeg\"];\r\n\t\tprivate readonly permittedFileExtensions: string[] = [\"png\", \"jpg\", \"jpeg\"];\r\n\r\n\t\tprivate dragging: boolean = false;\r\n\r\n\t\t/**\r\n\t\t * @summary Gets the URL of the picture to display for the user. Returns either the URL to the new picture\r\n\t\t * they have selected, or the users existing profile picture.\r\n\t\t */\r\n\t\tprivate get displayPictureUrl (): string | null {\r\n\t\t\tif (!this.value) {\r\n\t\t\t\treturn null\r\n\t\t\t}\r\n\r\n\t\t\tif (typeof (this.value) === \"string\") {\r\n\t\t\t\treturn this.value\r\n\t\t\t} else {\r\n\t\t\t\treturn URL.createObjectURL(this.value)\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t/**\r\n\t\t * @summary Attempts to parse the file extension for a given file name.\r\n\t\t */\r\n\t\tprivate getFileExtension (fileName: string): string {\r\n\t\t\tconst parts = fileName.split(\".\")\r\n\r\n\t\t\tif (parts.length <= 1) {\r\n\t\t\t\treturn \"\"\r\n\t\t\t} else {\r\n\t\t\t\treturn parts[parts.length - 1].toLowerCase()\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t/**\r\n\t\t * @summary Handler for when the user drags an item over the dropzone. Ensures only files can be dropped.\r\n\t\t */\r\n\t\tprivate onDragOver (event: DragEvent) {\r\n\t\t\tif (!event || !event.dataTransfer) {\r\n\t\t\t\treturn\r\n\t\t\t}\r\n\r\n\t\t\tconst dragItemInfo = event.dataTransfer.items[0]\r\n\r\n\t\t\t// If the user isn't dragging a file, or if the user isn't dragging an accepted image file type, reject the drag.\r\n\t\t\tif (dragItemInfo.kind !== \"file\" || !this.permittedFileTypes.includes(dragItemInfo.type)) {\r\n\t\t\t\treturn\r\n\t\t\t}\r\n\r\n\t\t\t// Prevent the browser from blocking the drag event.\r\n\t\t\tevent.preventDefault()\r\n\t\t\tthis.dragging = true\r\n\t\t}\r\n\r\n\t\t/**\r\n\t\t * @summary Handler for when the user drops an image, or selects one within the file dialog.\r\n\t\t */\r\n\t\tprivate onImageSelected (event: Event | DragEvent): void {\r\n\t\t\tthis.dragging = false\r\n\r\n\t\t\t// @ts-ignore\r\n\t\t\tconst files = (event.target.files || event.dataTransfer.files) as File[]\r\n\r\n\t\t\tif (!files || !files.length) {\r\n\t\t\t\treturn\r\n\t\t\t}\r\n\r\n\t\t\tconst file = files[0]\r\n\t\t\tconst extension = this.getFileExtension(file.name)\r\n\r\n\t\t\tif (!this.permittedFileExtensions.includes(extension)) {\r\n\r\n\t\t\t} else {\r\n\t\t\t\tevent.preventDefault()\r\n\t\t\t\tthis.$emit(\"input\", file)\r\n\t\t\t}\r\n\t\t}\r\n}\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PictureSelect.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PictureSelect.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./PictureSelect.vue?vue&type=template&id=055b76d6&scoped=true&\"\nimport script from \"./PictureSelect.vue?vue&type=script&lang=ts&\"\nexport * from \"./PictureSelect.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./PictureSelect.vue?vue&type=style&index=0&id=055b76d6&prod&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"055b76d6\",\n null\n \n)\n\nexport default component.exports","\r\nimport { Component, Vue, Prop, Emit } from \"vue-property-decorator\"\r\nimport { State } from \"vuex-class\"\r\n\r\nimport PictureSelect from \"./PictureSelect.vue\"\r\nimport { User } from \"@/types\"\r\nimport api from \"@/services/api\"\r\nimport { BaseState } from \"@/store\"\r\nimport { CurrentUser } from \"@/types/user\"\r\nimport Guid from \"@/scripts/guid\"\r\n\r\n\t@Component({\r\n\t\tcomponents: {\r\n\t\t\t\"picture-select\": PictureSelect\r\n\t\t}\r\n\t})\r\nexport default class UserProfilePictureModal extends Vue {\r\n\t\tpublic $refs!: {\r\n\t\t\tfileInput: HTMLInputElement;\r\n\t\t};\r\n\r\n\t\t@Prop({ type: Boolean, default: false }) public readonly visible!: boolean;\r\n\t\t@Prop({ type: Object, default: null }) public readonly userDetails!: User;\r\n\t\t@Prop({ type: Boolean, default: false }) public readonly profilePictureSet!: boolean;\r\n\r\n\t\t@State((state: BaseState) => state.me) private readonly me!: CurrentUser;\r\n\r\n\t\tprivate profilePicture: File | string | null = null;\r\n\t\tprivate profilePictureChanged: boolean = false;\r\n\t\tprivate profilePictureGuid: string = Guid.newGuid();\r\n\r\n\t\tprivate uploadPercentage: number = 0;\r\n\t\tprivate alertErrorMessage: string = \"\";\r\n\t\tprivate alertCountdown: number = 0;\r\n\r\n\t\t/**\r\n\t\t * @summary Gets the modal title to display.\r\n\t\t */\r\n\t\tprivate get modalTitle (): string {\r\n\t\t\tif (!this.me || !this.userDetails) {\r\n\t\t\t\treturn \"\"\r\n\t\t\t}\r\n\r\n\t\t\tif (this.me.id === this.userDetails.id) {\r\n\t\t\t\treturn \"Update your profile picture\"\r\n\t\t\t} else {\r\n\t\t\t\treturn `Update ${this.userDetails.name}'s profile picture`\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t/**\r\n\t\t * @summary Mounted lifecycle hook.\r\n\t\t */\r\n\t\tprivate async mounted (): Promise {\r\n\t\t\tif (!this.userDetails) {\r\n\t\t\t\treturn\r\n\t\t\t}\r\n\r\n\t\t\tthis.setProfilePicture()\r\n\t\t}\r\n\r\n\t\t/**\r\n\t\t * @summary Updates the profile picture displayed within the modal.\r\n\t\t */\r\n\t\tprivate setProfilePicture (): void {\r\n\t\t\tthis.profilePictureGuid = Guid.newGuid()\r\n\t\t\tthis.profilePicture = this.userDetails.pictureUrl || `${api.pictureUrl(this.userDetails.id)}?p=${this.profilePictureGuid}`\r\n\t\t}\r\n\r\n\t\t/**\r\n\t\t * @summary Handler for when the user selects a new picture.\r\n\t\t */\r\n\t\tprivate onProfilePictureUpdated (newPicture: File): void {\r\n\t\t\tthis.profilePictureChanged = true\r\n\t\t\tthis.profilePicture = newPicture\r\n\t\t}\r\n\r\n\t\t/**\r\n\t\t * @summary Handler for when the modal is made visible, refreshes the profile picture.\r\n\t\t */\r\n\t\tprivate onModalShown (): void {\r\n\t\t\tthis.setProfilePicture()\r\n\t\t}\r\n\r\n\t\t/**\r\n\t\t * @summary Handler for when the user closes the modal, resets state etc.\r\n\t\t */\r\n\t\t@Emit(\"hidden\")\r\n\t\tprivate onModalHidden (): void {\r\n\t\t\tthis.profilePictureChanged = false\r\n\t\t\tthis.profilePicture = this.userDetails.pictureUrl || api.pictureUrl(this.userDetails.id)\r\n\t\t}\r\n\r\n\t\t/**\r\n\t\t * @summary Handler for when the user saves the new profile picture.\r\n\t\t */\r\n\t\tprivate async onSave (): Promise {\r\n\t\t\tif (!this.profilePictureChanged || this.profilePicture == null || typeof (this.profilePicture) !== \"object\") {\r\n\t\t\t\treturn\r\n\t\t\t}\r\n\r\n\t\t\tconst uploadFormData = new FormData()\r\n\t\t\tuploadFormData.append(\"file\", this.profilePicture)\r\n\r\n\t\t\ttry {\r\n\t\t\t\tawait api.uploadUserImage(this.userDetails.id, uploadFormData, (progressEvent) => {\r\n\t\t\t\t\tthis.uploadPercentage = Math.round(progressEvent.loaded * 100 / progressEvent.total)\r\n\t\t\t\t})\r\n\r\n\t\t\t\tthis.$emit(\"update-profile-picture\")\r\n\t\t\t\tthis.$emit(\"hidden\")\r\n\t\t\t} catch (err) {\r\n\t\t\t\tthis.alertErrorMessage = \"Unable to upload your selected image, please ensure it's a supported file type.\"\r\n\t\t\t\tthis.alertCountdown = 10\r\n\t\t\t\tconsole.log(`An error occurred when uploading the profile picture: ${err}`)\r\n\t\t\t}\n\t\t}\r\n\r\n\t\t/**\r\n\t\t * @summary Handler for when the user clicks the delete button, emits an event to clear the profile picture.\r\n\t\t */\r\n\t\tprivate async removeSavedImage (): Promise {\r\n\t\t\tif (!this.userDetails) {\r\n\t\t\t\treturn\r\n\t\t\t}\r\n\r\n\t\t\tthis.$emit(\"delete-profile-picture\")\r\n\t\t\tthis.$emit(\"hidden\")\r\n\t\t}\r\n\r\n\t\t/**\r\n\t\t * @summary Handler for when the alert emits a dismiss count down event.\r\n\t\t */\r\n\t\tprivate alertCountdownChanged (countdown: number) {\r\n\t\t\tthis.alertCountdown = countdown\r\n\t\t}\r\n\r\n\t\t/**\r\n\t\t * @summary Triggers the picture select file open dialog.\r\n\t\t */\r\n\t\tprivate openPictureSelect (): void {\r\n\t\t\tthis.$refs.fileInput.click()\r\n\t\t}\r\n\r\n\t\tprivate onQuickPictureSelected (event: Event | any): void {\r\n\t\t\tif (!event || !event.target || !event.target.files) {\r\n\t\t\t\treturn\r\n\t\t\t}\r\n\r\n\t\t\tthis.profilePictureChanged = true\r\n\t\t\tthis.profilePicture = event.target.files[0]\r\n\r\n\t\t\tthis.onSave()\r\n\t\t\tthis.onModalHidden()\r\n\t\t}\r\n}\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserProfilePictureModal.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserProfilePictureModal.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./UserProfilePictureModal.vue?vue&type=template&id=2eacbc9a&\"\nimport script from \"./UserProfilePictureModal.vue?vue&type=script&lang=ts&\"\nexport * from \"./UserProfilePictureModal.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/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","\r\nimport { Component, Vue, Watch, Prop, Emit } from \"vue-property-decorator\"\r\nimport { State, Action } from \"vuex-class\"\r\n\r\nimport UserProfilePictureModal from \"./UserProfilePictureModal.vue\"\r\n\r\nimport api from \"@/services/api\"\r\n\r\nimport { BaseState } from \"@/store\"\r\n\r\nimport { User } from \"@/types\"\r\nimport { CurrentUser } from \"@/types/user\"\r\n\r\nimport Guid from \"@/scripts/guid\"\r\n\r\n\t@Component({\r\n\t\tcomponents: {\r\n\t\t\t\"user-profile-picture-modal\": UserProfilePictureModal\r\n\t\t}\r\n\t})\r\nexport default class UserProfilePicture extends Vue {\r\n\t\tpublic $refs!: {\r\n\t\t\tpictureModal: UserProfilePictureModal\r\n\t\t};\r\n\r\n\t\t@Prop({ type: Object, default: null }) public readonly userDetails!: User;\r\n\r\n\t\t@State((state: BaseState) => state.me) private readonly me!: CurrentUser;\r\n\t\t@Action private readonly refreshUserInfo!: () => Promise;\r\n\r\n\t\tprivate profilePictureSet: boolean = false;\r\n\t\tprivate editingProfilePicture: boolean = false;\r\n\t\tprivate pictureGuid: string = Guid.newGuid();\r\n\r\n\t\t/**\r\n\t\t* @summary Gets the profile picture URL for the user.\r\n\t\t*/\r\n\t\tpublic get userPictureUrl (): string {\r\n\t\t\tif (!this.userDetails) {\r\n\t\t\t\treturn \"\"\r\n\t\t\t}\r\n\r\n\t\t\tlet imageUrl = \"\"\r\n\r\n\t\t\tif (this.userDetails.pictureUrl) {\r\n\t\t\t\timageUrl = this.userDetails.pictureUrl!\r\n\t\t\t} else {\r\n\t\t\t\timageUrl = this.getUploadedPictureUrl(this.userDetails.id)\r\n\t\t\t}\r\n\r\n\t\t\treturn `${imageUrl}?p=${this.pictureGuid}`\r\n\t\t}\r\n\r\n\t\t/**\r\n\t\t * @summary Gets a value indicating whether the current user can change this user's profile picture (either they're an admin,\r\n\t\t * or this is their own profile picture).\r\n\t\t */\r\n\t\tpublic get canEditUserPicture (): boolean {\r\n\t\t\tif (!this.me || !this.userDetails) {\r\n\t\t\t\treturn false\r\n\t\t\t}\r\n\r\n\t\t\treturn this.me.isAdmin || this.me.id === this.userDetails.id\r\n\t\t}\r\n\r\n\t\t/**\r\n\t\t * @summary Watcher fired when the user details changes. Checks whether the user has a custom profile picture already uploaded.\r\n\t\t */\r\n\t\t@Watch(\"userDetails\", { immediate: true })\r\n\t\tprivate async onUserDetailsChanged (userDetails: User | null): Promise {\r\n\t\t\tif (!userDetails) {\r\n\t\t\t\tthis.profilePictureSet = false\r\n\t\t\t} else {\r\n\t\t\t\tthis.profilePictureSet = await api.hasUploadedPicture(userDetails.id)\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t/**\r\n\t\t * @summary Gets the uploaded picture URL for the specified user ID.\r\n\t\t * @param userId The ID of the user.\r\n\t\t * @returns The profile picture URL for the user.\r\n\t\t */\r\n\t\tprivate getUploadedPictureUrl (userId: string): string {\r\n\t\t\treturn api.pictureUrl(userId)\r\n\t\t}\r\n\r\n\t\tprivate openPictureSelect (): void {\r\n\t\t\t// @ts-ignore\r\n\t\t\tthis.$refs.pictureModal.openPictureSelect()\r\n\t\t}\r\n\r\n\t\t/**\r\n\t\t * @summary Handler for when the user deletes the profile picture.\r\n\t\t */\r\n\t\t@Emit(\"picture-updated\")\r\n\t\tprivate async onProfilePictureDeleted (): Promise {\r\n\t\t\tawait api.removeUserImage(this.userDetails.id)\r\n\t\t\tawait this.onProfilePictureUpdated()\r\n\t\t}\r\n\r\n\t\t/**\r\n\t\t * @summary Handler for when the users profile picture is updated, generates a new GUID to refresh the image URL.\r\n\t\t */\r\n\t\t@Emit(\"picture-updated\")\r\n\t\tprivate async onProfilePictureUpdated (): Promise {\r\n\t\t\t// Trigger the profile picture to reload, clear any old picture URL\r\n\t\t\tthis.pictureGuid = Guid.newGuid()\r\n\t\t\tthis.profilePictureSet = await api.hasUploadedPicture(this.userDetails.id)\r\n\r\n\t\t\tif (this.userDetails.id === this.me.id) {\r\n\t\t\t\t// If the user has updated their own picture, trigger a picture refresh within the navbar.\r\n\t\t\t\tawait this.refreshUserInfo()\r\n\t\t\t\tthis.$root.$emit(\"refresh-profile-picture\")\r\n\t\t\t}\r\n\t\t}\r\n}\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserProfilePicture.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserProfilePicture.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./UserProfilePicture.vue?vue&type=template&id=5d5dc478&scoped=true&\"\nimport script from \"./UserProfilePicture.vue?vue&type=script&lang=ts&\"\nexport * from \"./UserProfilePicture.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./UserProfilePicture.vue?vue&type=style&index=0&id=5d5dc478&prod&lang=scss&\"\nimport style1 from \"./UserProfilePicture.vue?vue&type=style&index=1&id=5d5dc478&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"5d5dc478\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_vm._v(\" Step \"+_vm._s(_vm.currentStep)+\" of \"+_vm._s(_vm.stepCount)+\" \"+_vm._s(_vm.stepTitle)+\" \"),_c('div',{staticClass:\"d-block\",staticStyle:{\"position\":\"relative\",\"min-width\":\"150px\"}},_vm._l((_vm.steps),function(step){return _c('div',{key:step.index,staticClass:\"step-marker\",class:{ 'active': step.index < _vm.currentStep },style:(_vm.stepStyle)})}),0)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { Component, Vue, Watch, Prop } from \"vue-property-decorator\"\r\n\r\n@Component({})\r\nexport default class StepProgress extends Vue {\r\n\t@Prop({ type: Number, default: 1 })\r\n\tcurrentStep!: number\r\n\r\n\t@Prop({ type: Number, default: 1 })\r\n\tstepCount!: number\r\n\r\n\t@Prop({ default: () => null })\r\n\tstepTitle!: string | null\r\n\r\n\tget steps () {\r\n\t\tconst steps = []\r\n\r\n\t\tfor (let i = 0; i < this.stepCount; i++) {\r\n\t\t\tsteps.push({\r\n\t\t\t\tindex: i\r\n\t\t\t})\r\n\t\t}\r\n\r\n\t\treturn steps\r\n\t}\r\n\r\n\tget stepStyle () {\r\n\t\tconst stepPercent = 100 / this.stepCount\r\n\t\treturn {\r\n\t\t\twidth: `calc(${stepPercent}% - 4px)`\r\n\t\t}\r\n\t}\r\n}\r\n\r\n","\r\nimport { Component, Vue, Watch } from \"vue-property-decorator\"\r\nimport { Action, Getter, Mutation, State } from \"vuex-class\"\r\n\r\nimport User, { CurrentUser, LabeledValue, UserWithFields } from \"@/types/user\"\r\nimport { DataDefinitionWithFields, FieldInstance } from \"@/types\"\r\n\r\nimport UserProfilePicture from \"@/components/Account/UserProfilePicture.vue\"\r\nimport DataForm from \"@/components/Config/DataForm.vue\"\r\nimport StepProgress from \"@/components/Login/StepProgress.vue\"\r\nimport TenantInfoDisplay from \"@/components/Info/TenantInfoDisplay.vue\"\r\n\r\nimport api from \"@/services/api\"\r\nimport tenantApi from \"@/services/api_Tenant\"\r\nimport TenantInfo from \"@/types/tenantInfo\"\r\n\r\nenum IntroStepTypes {\r\n\tWelcome,\r\n\tUserDetails,\r\n\tTenantInfo\r\n}\r\n\r\ninterface IntroStep {\r\n\ttitle: string\r\n\ttype: IntroStepTypes\r\n\tsection?: string | null\r\n}\r\n\r\n@Component({\r\n\tcomponents: {\r\n\t\t\"user-profile-picture\": UserProfilePicture,\r\n\t\t\"data-form\": DataForm,\r\n\t\t\"step-progress\": StepProgress,\r\n\t\t\"tenant-info\": TenantInfoDisplay\r\n\t}\r\n})\r\nexport default class Introduction extends Vue {\r\n\t@Getter(\"getMe\") public me!: CurrentUser\r\n\r\n\t@Action finishIntroduction!: () => void\r\n\r\n\tprivate userDetails: UserWithFields | null = null\r\n\tprivate userDefinition: DataDefinitionWithFields | null = null\r\n\tprivate userFields: { [key: string]: LabeledValue } = {}\r\n\tprivate tenantInfo: TenantInfo[] = []\r\n\r\n\tprivate IntroStepTypes = IntroStepTypes\r\n\tprivate currentStepIndex = 0\r\n\tprivate pageLoaded = false\r\n\r\n\tget userId () {\r\n\t\treturn this.me ? this.me.id : null\r\n\t}\r\n\r\n\tget currentStep (): IntroStep {\r\n\t\treturn this.availableSteps[this.currentStepIndex]\r\n\t}\r\n\r\n\tget definitionEditFields (): FieldInstance[] {\r\n\t\treturn this.userDefinition && this.userDefinition.fields\r\n\t\t\t? this.userDefinition.fields.filter(f => f.allowSelfEdit)\r\n\t\t\t: []\r\n\t}\r\n\r\n\tget availableSteps (): IntroStep[] {\r\n\t\tconst steps: IntroStep[] = [\r\n\t\t\t{ title: \"Welcome\", type: IntroStepTypes.Welcome }\r\n\t\t]\r\n\r\n\t\tif (this.definitionEditFields.length > 0) {\r\n\t\t\tconst sections = this.definitionEditFields.map(f => f.section)\r\n\t\t\t\t.distinct()\r\n\r\n\t\t\tsections.forEach(s => {\r\n\t\t\t\tsteps.push({\r\n\t\t\t\t\ttitle: \"Details\",\r\n\t\t\t\t\ttype: IntroStepTypes.UserDetails,\r\n\t\t\t\t\tsection: s\r\n\t\t\t\t})\r\n\t\t\t})\r\n\t\t} else {\r\n\t\t\tsteps.push({\r\n\t\t\t\ttitle: \"Details\",\r\n\t\t\t\ttype: IntroStepTypes.UserDetails,\r\n\t\t\t\tsection: null\r\n\t\t\t})\r\n\t\t}\r\n\r\n\t\t// Add info if present\r\n\t\tif (this.tenantInfo && this.tenantInfo.length > 0) {\r\n\t\t\tsteps.push({\r\n\t\t\t\ttitle: \"Information\",\r\n\t\t\t\ttype: IntroStepTypes.TenantInfo,\r\n\t\t\t\tsection: null\r\n\t\t\t})\r\n\t\t}\r\n\r\n\t\treturn steps\r\n\t}\r\n\r\n\tget currentStepUserFields (): any[] {\r\n\t\tif (!this.userDefinition || !this.userDefinition.fields || !this.currentStep.section) return []\r\n\t\treturn this.definitionEditFields\r\n\t\t\t.filter(f => f.section === this.currentStep.section)\r\n\t\t\t.sortBy(\"order\")\r\n\t\t\t.map((field: FieldInstance) => {\r\n\t\t\t\treturn {\r\n\t\t\t\t\tkey: field.field.id + \".value\",\r\n\t\t\t\t\tlabel: field.field.title,\r\n\t\t\t\t\tdataType: field.field.dataType,\r\n\t\t\t\t\tdataSourceId: field.field.dataSourceId,\r\n\t\t\t\t\tsection: field.section,\r\n\t\t\t\t\treadonly: !!field.field.displayReadOnly,\r\n\t\t\t\t\terrors: (item: any) => !item || !field.requiredRecord || item[field.field.id!] ? null : \"Please enter \" + field.field.title,\r\n\t\t\t\t\textensions: field.field.extensions\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t}\r\n\r\n\tget isLastStep (): boolean {\r\n\t\treturn this.currentStepIndex === this.availableSteps.length - 1\r\n\t}\r\n\tget isFirstStep (): boolean {\r\n\t\treturn this.currentStepIndex === 0\r\n\t}\r\n\r\n\tasync mounted () {\r\n\t\tif (this.me) {\r\n\t\t\tthis.onUserChanged(this.me.id)\r\n\t\t}\r\n\t}\r\n\r\n\t@Watch(\"userId\")\r\n\tasync onUserChanged (userId: string | null) {\r\n\t\tthis.pageLoaded = false\r\n\r\n\t\tif (userId) {\r\n\t\t\tawait Promise.all([\r\n\t\t\t\tapi.userSpecialDefinition().then(definition => this.userDefinition = definition),\r\n\t\t\t\ttenantApi.tenantInfoGet().then(info => this.tenantInfo = info),\r\n\t\t\t\tapi.userFieldDetails(userId).then(userDetails => {\r\n\t\t\t\t\tthis.userDetails = userDetails\r\n\t\t\t\t\tthis.userFields = userDetails && userDetails.fieldValues ? userDetails.fieldValues : {}\r\n\t\t\t\t})\r\n\t\t\t])\r\n\t\t} else {\r\n\t\t\tthis.userDetails = null\r\n\t\t}\r\n\r\n\t\tthis.pageLoaded = true\r\n\t}\r\n\r\n\t/**\r\n\t * @summary Handler which clears the picture URL in our user details.\r\n\t */\r\n\tprivate onUserPictureUpdated () {\r\n\t\tthis.userDetails!.pictureUrl = null\r\n\t}\r\n\r\n\tnext () {\r\n\t\tthis.currentStepIndex++\r\n\t}\r\n\r\n\tback () {\r\n\t\tthis.currentStepIndex--\r\n\t}\r\n\r\n\tasync finish () {\r\n\t\tthis.pageLoaded = false // Hide page\r\n\r\n\t\ttry {\r\n\t\t\tawait api.saveOwnFields(this.userFields, true)\r\n\t\t\tthis.finishIntroduction()\r\n\t\t} catch (err) {\r\n\t\t\tconsole.error(err)\r\n\t\t\tthis.pageLoaded = true // Unhide page on error\r\n\t\t}\r\n\t}\r\n}\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./StepProgress.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./StepProgress.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./StepProgress.vue?vue&type=template&id=18e9dc54&\"\nimport script from \"./StepProgress.vue?vue&type=script&lang=ts&\"\nexport * from \"./StepProgress.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/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","\r\nimport { Component, Vue, Watch } from \"vue-property-decorator\"\r\nimport { Action, Getter, Mutation, State } from \"vuex-class\"\r\n\r\nimport VuePerfectScrollbar from \"vue-perfect-scrollbar\"\r\n\r\nimport PasswordReset from \"@/components/Login/PasswordReset.vue\"\r\nimport LoginMfaSetup from \"@/components/Login/LoginMfaSetup.vue\"\r\nimport MFAEntry from \"@/components/Login/MFAEntry.vue\"\r\n\r\nimport {\r\n\tCurrentLogin,\r\n\tLoginRequest,\r\n\tLoginResultTenant,\r\n\tLoginState\r\n} from \"@/types/loginRequest\"\r\n\r\nimport api from \"@/services/api\"\r\nimport tenantApi from \"@/services/api_Tenant\"\r\nimport { HideableLoginOptions, LoginDomain, SamlUrl } from \"@/types/domain\"\r\n\r\nimport ZendeskHelp from \"@/components/ZendeskHelp.vue\"\r\nimport axios from \"axios\"\r\nimport OAuthLogin from \"@/components/Login/OAuthLogin.vue\"\r\nimport Introduction from \"@/components/Login/Introduction.vue\"\r\n\r\nimport setBrandingLink from \"@/scripts/brandingLink\"\r\nimport { CurrentUser } from \"@/types/user\"\r\n\r\nexport enum LoginSteps {\r\n\tEmail = 0,\r\n\tPassword = 1,\r\n\tSAML = 2,\r\n}\r\n\r\n@Component({\r\n\tcomponents: {\r\n\t\t\"oauth-login\": OAuthLogin,\r\n\t\tscrollbar: VuePerfectScrollbar,\r\n\t\t\"password-reset\": PasswordReset,\r\n\t\t\"mfa-setup\": LoginMfaSetup,\r\n\t\t\"mfa-entry\": MFAEntry,\r\n\t\t\"zendeskHelp\": ZendeskHelp,\r\n\t\t\"introduction\": Introduction\r\n\t},\r\n\tdata () {\r\n\t\treturn {\r\n\t\t\tLoginState\r\n\t\t}\r\n\t}\r\n})\r\nexport default class Login extends Vue {\r\n\t@Getter(\"getMe\")\r\n\tpublic me!: CurrentUser;\r\n\r\n\t@Getter\r\n\tpublic getDarkMode!: boolean;\r\n\r\n\t@Getter(\"getScreenWidth\")\r\n\tpublic screenWidth!: number;\r\n\r\n\t@State\r\n\tpublic selectTenants!: LoginResultTenant[] | null;\r\n\r\n\t@State\r\n\tpublic manualLogout!: boolean;\r\n\r\n\t@State\r\n\tpublic loginState!: LoginState;\r\n\r\n\t@State\r\n\tpublic currentLogin!: CurrentLogin | null;\r\n\r\n\t@Action(\"selectTenant\")\r\n\tpublic loginSelectTenant!: (tenant: LoginResultTenant) => Promise;\r\n\r\n\t@Action(\"finishLogin\")\r\n\tpublic finishLogin!: () => Promise;\r\n\r\n\t@Mutation\r\n\tpublic setSelectTenants!: (tenants: LoginResultTenant[] | null) => void;\r\n\r\n\t@Mutation\r\n\tprivate setManualLogout!: (manualLogout: boolean) => void;\r\n\r\n\t@Mutation\r\n\tprivate setLoginState!: (loginState: LoginState) => void;\r\n\r\n\t@Mutation\r\n\tprivate setCurrentLogin!: (currentLogin: CurrentLogin | null) => void;\r\n\r\n\tprivate readonly loginSteps = LoginSteps;\r\n\tprivate step: LoginSteps = LoginSteps.Email;\r\n\r\n\tpublic email: string = \"\";\r\n\tpublic password: string = \"\";\r\n\tpublic loggingIn: boolean = false;\r\n\tpublic error: string | null = \"\";\r\n\r\n\tpublic forgotPassword: boolean = false;\r\n\r\n\tpublic resetting: boolean = false;\r\n\tpublic passwordReset: boolean = false;\r\n\tpublic passwordChanged: boolean = false;\r\n\r\n\tclientIds: { [type: string]: string } = {};\r\n\r\n\tpublic oauthLoginError: boolean = false;\r\n\tpublic oauthLoginErrorMessage: string | null = null;\r\n\r\n\tprivate selectingTenant: boolean = false;\r\n\r\n\tprivate domainLoaded: boolean = false;\r\n\tprivate domain: LoginDomain | null = null;\r\n\tprivate domainName: string = \"\";\r\n\tprivate domainLogoFailed: boolean = false;\r\n\r\n\tprivate logoLoaded: boolean = false;\r\n\r\n\t/**\r\n\t * Login. If successful, changes route\r\n\t */\r\n\t@Action public logIn!: (login: LoginRequest) => Promise;\r\n\r\n\t@Action public logOut!: () => Promise;\r\n\r\n\t@Action public userInit!: () => Promise;\r\n\r\n\t@Action public refreshUserInfo!: () => void;\r\n\r\n\tget redirectUrl () {\r\n\t\tlet redirectUrl = process.env.VUE_APP_HTTP_API_URI || \"\"\r\n\t\treturn redirectUrl.indexOf(\"://\") > 0\r\n\t\t\t? redirectUrl\r\n\t\t\t: new URL(redirectUrl, window.location.href).toString()\r\n\t}\r\n\r\n\tget googleOAuthEnabled (): boolean {\r\n\t\treturn (\r\n\t\t\t!!this.clientIds &&\r\n\t\t\t!!this.clientIds[\"google\"] &&\r\n\t\t\tthis.clientIds[\"google\"] !== \"\"\r\n\t\t)\r\n\t}\r\n\r\n\tget pageLoaded (): boolean {\r\n\t\treturn this.domainLoaded && this.logoLoaded\r\n\t}\r\n\r\n\t/**\r\n\t * Google OAuth Url\r\n\t */\r\n\tpublic get googleOauthUrl (): string {\r\n\t\tif (!this.clientIds || !this.clientIds[\"google\"]) return \"\"\r\n\t\tconst clientId = this.clientIds[\"google\"]\r\n\t\treturn `https://accounts.google.com/o/oauth2/v2/auth?client_id=${clientId}&redirect_uri=${this.redirectUrl}oauth/login/google&scope=email profile&access_type=online&response_type=code`\r\n\t}\r\n\r\n\t/**\r\n\t * Facebook OAuth Url\r\n\t */\r\n\tpublic get facebookOauthUrl (): string {\r\n\t\tif (!this.clientIds || !this.clientIds[\"facebook\"]) return \"\"\r\n\t\tconst clientId = this.clientIds[\"facebook\"]\r\n\t\treturn `https://www.facebook.com/v6.0/dialog/oauth?client_id=${clientId}&redirect_uri=${this.redirectUrl}oauth/login/facebook&scope=email&response_type=code`\r\n\t}\r\n\r\n\tpublic get samlProviders (): SamlUrl[] | null {\r\n\t\tif (this.domain && this.domain.samlProviders) {\r\n\t\t\treturn this.domain.samlProviders\r\n\t\t}\r\n\t\treturn null\r\n\t}\r\n\r\n\tpublic async mounted () {\r\n\t\tlet domainName = location.pathname.replace(/\\//g, \"\")\r\n\t\tif (!domainName || domainName.length === 0) {\r\n\t\t\tdomainName = \"default\"\r\n\t\t}\r\n\r\n\t\tthis.domainName = domainName\r\n\r\n\t\tthis.checkForOauthLoggingError()\r\n\t\tconst domain = await tenantApi.getDomain(this.domainName)\r\n\t\tthis.domain = domain\r\n\r\n\t\tif (this.domain && this.domain.tenantId) {\r\n\t\t\tsetBrandingLink(this.domain.tenantId)\r\n\t\t}\r\n\r\n\t\tif (\r\n\t\t\t!this.oauthLoginErrorMessage &&\r\n\t\t\tdomain &&\r\n\t\t\tdomain.samlProviders &&\r\n\t\t\t!this.manualLogout\r\n\t\t) {\r\n\t\t\tconst autoLogin = domain.samlProviders.find(\r\n\t\t\t\tp => p.autoLogin && !p.error && p.url\r\n\t\t\t)\r\n\t\t\tif (autoLogin) {\r\n\t\t\t\twindow.location.assign(autoLogin.url!)\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tthis.setManualLogout(false)\r\n\t\tthis.domainLoaded = true\r\n\r\n\t\tthis.clientIds = await api.clientIds()\r\n\t}\r\n\r\n\t/**\r\n\t * Current web version\r\n\t */\r\n\tpublic get webVersion (): string {\r\n\t\treturn \"1.0.0\"\r\n\t}\r\n\r\n\tpublic get resetCode (): any {\r\n\t\treturn this.$route ? this.$route.query.resetCode : null\r\n\t}\r\n\r\n\tprivate get logoSrc (): string {\r\n\t\tif (this.domainName.length > 0 && !this.domainLogoFailed) {\r\n\t\t\treturn `${process.env.VUE_APP_HTTP_API_URI}tenant/logo/${this.domainName}`\r\n\t\t} else {\r\n\t\t\treturn \"images/cases_logo_112020_light.png\"\r\n\t\t}\r\n\t}\r\n\r\n\tprivate get logoAlt () {\r\n\t\tif (this.domainName.length > 0 && !this.domainLogoFailed) {\r\n\t\t\treturn \"Logo\"\r\n\t\t}\r\n\t\treturn \"SureView Cases Logo\"\r\n\t}\r\n\r\n\tprivate async created (): Promise {\r\n\t\tif (!this.$route || !this.$route.query) {\r\n\t\t\treturn\r\n\t\t}\r\n\r\n\t\tlet username = this.$route.query.user as string\r\n\t\tif (username && await api.checkIfUserIsSuite(username)) {\r\n\t\t\tthis.email = username\r\n\r\n\t\t\tawait this.refreshUserInfo()\r\n\t\t\tif (this.me && this.me.email === username) {\r\n\t\t\t\tthis.$router.push({ path: \"dashboard\" })\r\n\t\t\t} else {\r\n\t\t\t\tawait this.suiteLogin()\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tprivate async next (skipAccountAdminCheck: boolean = false) {\r\n\t\tthis.loggingIn = true\r\n\r\n\t\tthis.error = \"\"\r\n\r\n\t\ttry {\r\n\t\t\tif (this.isUserSuite) {\r\n\t\t\t\tthis.suiteLogin()\r\n\t\t\t\treturn\r\n\t\t\t} else {\r\n\t\t\t\tthis.step = this.loginSteps.Password\r\n\t\t\t}\r\n\t\t} catch (ex) {\r\n\t\t\tif (ex.response.status === 404) {\r\n\t\t\t\tthis.error = \"Couldn't send you to suite to log in.\"\r\n\t\t\t} else {\r\n\t\t\t\tconsole.log(`Unexpected error occurred: ${ex.message}. Stack trace - ${ex.stack || ex}`)\r\n\t\t\t\tthis.error = \"Something went wrong, please try again later and contact support if the issue persists\"\r\n\t\t\t}\r\n\t\t}\r\n\t\tthis.loggingIn = false\r\n\t}\r\n\r\n\t/**\r\n\t * Do login with username and password\r\n\t */\r\n\tpublic async login () {\r\n\t\tthis.error = null\r\n\t\tthis.loggingIn = true\r\n\t\tthis.passwordChanged = false\r\n\r\n\t\ttry {\r\n\t\t\tawait this.logIn({ email: this.email, password: this.password })\r\n\t\t} catch (err) {\r\n\t\t\tthis.error = err\r\n\t\t}\r\n\t\tthis.loggingIn = false\r\n\t}\r\n\r\n\t/**\r\n\t * Requests password change\r\n\t */\r\n\tpublic async requestResetPassword () {\r\n\t\tthis.resetting = true\r\n\r\n\t\ttry {\r\n\t\t\tawait api.requestPasswordReset({ email: this.email })\r\n\t\t\tthis.passwordReset = true\r\n\t\t} catch (err) {\r\n\t\t\tconsole.log(err)\r\n\t\t\tthis.error = err\r\n\t\t}\r\n\r\n\t\tthis.resetting = false\r\n\t}\r\n\r\n\t/**\r\n\t * Reset password\r\n\t */\r\n\tpublic async resetPassword ({\r\n\t\tnewPassword,\r\n\t\tresetComplete\r\n\t}: {\r\n\t\tnewPassword: string;\r\n\t\tresetComplete: () => void;\r\n\t}) {\r\n\t\ttry {\r\n\t\t\tthis.error = null\r\n\t\t\tawait api.resetPassword({\r\n\t\t\t\temail: this.email,\r\n\t\t\t\tnewPassword: newPassword,\r\n\t\t\t\tresetCode: this.resetCode\r\n\t\t\t})\r\n\r\n\t\t\tthis.$router.replace({ name: \"login\", query: {} })\r\n\t\t} catch (err) {\r\n\t\t\tthis.error = err as string\r\n\t\t}\r\n\r\n\t\tresetComplete()\r\n\t\tthis.passwordChanged = true\r\n\t}\r\n\r\n\t/**\r\n\t * Shows/hides the forgot password link.\r\n\t * Is false if the login domain settings have the forgot password option hidden, true otherwise\r\n\t */\r\n\tpublic get canUseForgotPassword (): boolean {\r\n\t\treturn (\r\n\t\t\t!this.isUserSuite &&\r\n\t\t\t(!this.domain ||\r\n\t\t\t\t(!!this.domain.hiddenElements &&\r\n\t\t\t\t\t!this.domain.hiddenElements.includes(\r\n\t\t\t\t\t\tHideableLoginOptions.ForgotPassword\r\n\t\t\t\t\t)))\r\n\t\t)\r\n\t}\r\n\r\n\t/**\r\n\t * Shows/hides sso.\r\n\t * Is false if the login domain settings have the sso option hidden, true otherwise\r\n\t */\r\n\tpublic get canUseSso (): boolean {\r\n\t\treturn (\r\n\t\t\t!this.domain ||\r\n\t\t\t(!!this.domain.hiddenElements &&\r\n\t\t\t\t!this.domain.hiddenElements.includes(HideableLoginOptions.Sso))\r\n\t\t)\r\n\t}\r\n\r\n\t/**\r\n\t * Moves the sso buttons to under the login button.\r\n\t * Is true if the login domain settings have the sso below login option set, false otherwise\r\n\t */\r\n\tpublic get showSsoBelowLogin (): boolean {\r\n\t\treturn !!this.domain && this.domain.showSsoBelowLogin\r\n\t}\r\n\r\n\t/**\r\n\t * Checks if the sign-up process is allowed.\r\n\t * Sign up is allowed if it is defined in the .env files, and it is not disabled in the login domain settings\r\n\t */\r\n\tpublic get canSignUp (): boolean {\r\n\t\treturn (\r\n\t\t\t(process.env.VUE_APP_SIGN_UP_ENABLED &&\r\n\t\t\t\tprocess.env.VUE_APP_SIGN_UP_ENABLED.toLowerCase() === \"true\" &&\r\n\t\t\t\t(!this.domain ||\r\n\t\t\t\t\t(this.domain.hiddenElements &&\r\n\t\t\t\t\t\t!this.domain.hiddenElements.includes(\r\n\t\t\t\t\t\t\tHideableLoginOptions.Signup\r\n\t\t\t\t\t\t)))) ||\r\n\t\t\tfalse\r\n\t\t)\r\n\t}\r\n\r\n\t/**\r\n\t * Shows/Hides the logo.\r\n\t * Is false if the login domain settings have the logo option hidden, true otherwise\r\n\t */\r\n\tpublic get showLogo (): boolean {\r\n\t\treturn (\r\n\t\t\t!this.domain ||\r\n\t\t\t(this.domain.hiddenElements &&\r\n\t\t\t\t!this.domain.hiddenElements.includes(HideableLoginOptions.Logo))\r\n\t\t)\r\n\t}\r\n\r\n\t/**\r\n\t * Go to sign-up page\r\n\t */\r\n\tprivate redirectSignup () {\r\n\t\tthis.$router.push({ path: \"signup\" })\r\n\t}\r\n\r\n\t/**\r\n\t * Check for errors in OAuth\r\n\t */\r\n\tpublic checkForOauthLoggingError () {\r\n\t\tthis.oauthLoginError = false\r\n\t\tif (\r\n\t\t\tthis.$route &&\r\n\t\t\tthis.$route.fullPath &&\r\n\t\t\tthis.$route.fullPath.includes(\"/login?error=\")\r\n\t\t) {\r\n\t\t\tconst error = this.$route.query.error\r\n\r\n\t\t\tif (error === \"select-tenant\") {\r\n\t\t\t\tthis.selectingTenant = true\r\n\t\t\t\ttenantApi\r\n\t\t\t\t\t.selectTenantsList()\r\n\t\t\t\t\t.then(t => {\r\n\t\t\t\t\t\tthis.setSelectTenants(t && t.length > 0 ? t : null)\r\n\r\n\t\t\t\t\t\tif (t && t.length > 0 ? t : null) {\r\n\t\t\t\t\t\t\tthis.setCurrentLogin({\r\n\t\t\t\t\t\t\t\tallowSystemAdmin: false,\r\n\t\t\t\t\t\t\t\trequiresMfaSetup: false,\r\n\t\t\t\t\t\t\t\tsupportAccess: null\r\n\t\t\t\t\t\t\t})\r\n\t\t\t\t\t\t\tthis.setLoginState(LoginState.PendingTenantSelect)\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\tthis.setLoginState(LoginState.LoggedIn)\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tthis.selectingTenant = false\r\n\t\t\t\t\t})\r\n\t\t\t\t\t.catch(err => {\r\n\t\t\t\t\t\tconsole.log(err)\r\n\t\t\t\t\t\tthis.selectingTenant = false\r\n\t\t\t\t\t})\r\n\t\t\t} else if (error === \"mfa\") {\r\n\t\t\t\tthis.setLoginState(LoginState.PendingMfa)\r\n\t\t\t} else {\r\n\t\t\t\tthis.oauthLoginError = true\r\n\t\t\t\tthis.oauthLoginErrorMessage = `Login Error: ${error}`\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Return errors in OAuth\r\n\t */\r\n\tpublic get oauthLoginErrorString (): string | null {\r\n\t\treturn this.oauthLoginErrorMessage\r\n\t}\r\n\r\n\tprivate selectTenant (loginTenant: LoginResultTenant) {\r\n\t\tif (loginTenant && !loginTenant.disabled) {\r\n\t\t\tthis.loginSelectTenant(loginTenant)\r\n\t\t}\r\n\t}\r\n\r\n\tprivate cancelTenantSelect () {\r\n\t\tthis.$route.query.error = \"\"\r\n\t\tthis.logOut()\r\n\t}\r\n\r\n\tprivate logoLoadError () {\r\n\t\tthis.domainLogoFailed = true\r\n\t}\r\n\r\n\tprivate mfaSuccess () {\r\n\t\tif (this.loginState === LoginState.PendingSystemMfa) {\r\n\t\t\tthis.setLoginState(LoginState.LoggedIn)\r\n\t\t\tthis.$router.push({ path: \"/system\" })\r\n\t\t\tthis.userInit()\r\n\t\t} else {\r\n\t\t\tthis.finishLogin()\r\n\t\t}\r\n\t}\r\n\r\n\tadminLogin () {\r\n\t\tif (!this.currentLogin) return\r\n\r\n\t\tif (this.currentLogin.requiresMfaSetup) {\r\n\t\t\tthis.setLoginState(LoginState.PendingSystemMfaSetup)\r\n\t\t} else {\r\n\t\t\tthis.setLoginState(LoginState.PendingSystemMfa)\r\n\t\t}\r\n\t}\r\n\r\n\tmfaSet () {\r\n\t\tif (this.loginState === LoginState.PendingSystemMfaSetup) {\r\n\t\t\tthis.setLoginState(LoginState.LoggedIn)\r\n\t\t\tthis.$router.push({ path: \"/system\" })\r\n\t\t\tthis.userInit()\r\n\t\t}\r\n\t}\r\n\r\n\tmfaCancel () {\r\n\t\tthis.setLoginState(LoginState.NotLoggedIn)\r\n\t}\r\n\r\n\tprivate checkingEmail: boolean = false;\r\n\tprivate isUserSuite: boolean = false;\r\n\r\n\t@Watch(\"email\")\r\n\tprivate checkAccountBelongsToSuite () {\r\n\t\tif (this.checkingEmail) {\r\n\t\t\treturn\r\n\t\t}\r\n\r\n\t\tthis.checkingEmail = true\r\n\t\tsetTimeout(async () => {\r\n\t\t\ttry {\r\n\t\t\t\tthis.isUserSuite = await api.checkIfUserIsSuite(this.email)\r\n\t\t\t\tif (this.isUserSuite) {\r\n\t\t\t\t\tthis.password = \"\"\r\n\t\t\t\t}\r\n\t\t\t} catch (ex) {\r\n\t\t\t\tconsole.error(ex)\r\n\t\t\t\tthis.isUserSuite = false\r\n\t\t\t}\r\n\t\t\tthis.checkingEmail = false\r\n\t\t}, 500)\r\n\t}\r\n\r\n\tprivate gotoEmailStep () {\r\n\t\tif (this.step !== this.loginSteps.Email) {\r\n\t\t\tthis.step = this.loginSteps.Email\r\n\t\t}\r\n\t}\r\n\r\n\tprivate async suiteLogin (): Promise {\r\n\t\tthis.loggingIn = true\r\n\r\n\t\tthis.error = \"\"\r\n\t\tconst genericError =\r\n\t\t\t\"Something went wrong, please try again later and contact support if the issue persists\"\r\n\t\ttry {\r\n\t\t\tlet axiosInstance = axios.create({\r\n\t\t\t\tbaseURL: process.env.VUE_APP_HTTP_API_URI,\r\n\t\t\t\twithCredentials: true,\r\n\t\t\t\theaders: {\r\n\t\t\t\t\tAccept: \"application/json, text/javascript, */*; q=0.01\",\r\n\t\t\t\t\t\"Content-Type\": \"application/x-www-form-urlencoded\"\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t\tlet loginProviderResult = await axiosInstance.get(\r\n\t\t\t\t`/login/generateSuiteSaml?email=${encodeURIComponent(this.email)}`\r\n\t\t\t)\r\n\r\n\t\t\tif (loginProviderResult.status === 200) {\r\n\t\t\t\twindow.location.href = loginProviderResult.data.authorizationEndpoint\r\n\t\t\t} else {\r\n\t\t\t\tthis.error = genericError\r\n\t\t\t\tthis.loggingIn = false\r\n\t\t\t}\r\n\t\t} catch (ex) {\r\n\t\t\tconsole.log(\r\n\t\t\t\t`Unexpected error occurred: ${ex.message}. Stack trace - ${ex.stack ||\r\n\t\t\t\t\tex}`\r\n\t\t\t)\r\n\t\t\tthis.error = genericError\r\n\t\t\tthis.loggingIn = false\r\n\t\t}\r\n\t}\r\n\r\n\tprivate get loginDisabled (): boolean {\r\n\t\tif (this.isUserSuite) {\r\n\t\t\treturn this.loggingIn || !this.email\r\n\t\t} else {\r\n\t\t\treturn this.loggingIn || !this.email || !this.password\r\n\t\t}\r\n\t}\r\n}\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Introduction.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Introduction.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Introduction.vue?vue&type=template&id=efe5815e&scoped=true&\"\nimport script from \"./Introduction.vue?vue&type=script&lang=ts&\"\nexport * from \"./Introduction.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./Introduction.vue?vue&type=style&index=0&id=efe5815e&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"efe5815e\",\n null\n \n)\n\nexport default component.exports","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--13-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Login.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--13-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Login.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Login.vue?vue&type=template&id=fa60910e&scoped=true&\"\nimport script from \"./Login.vue?vue&type=script&lang=ts&\"\nexport * from \"./Login.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./Login.vue?vue&type=style&index=0&id=fa60910e&prod&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"fa60910e\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"page signup-page flex-grow-1 d-flex align-items-center justify-content-center\",attrs:{\"id\":\"signupBackground\"}},[_c('img',{staticClass:\"login-background-logo\",attrs:{\"src\":\"/images/background_logo.png\"}}),_c('div',{staticClass:\"signup-align d-flex flex-column align-items-center justify-content-center\",staticStyle:{\"width\":\"100%\",\"height\":\"100%\"}},[_c('div',{class:{'mb-3': _vm.screenWidth >= 800}},[_vm._m(0),_c('div',{staticClass:\"p-0 m-4\",staticStyle:{\"overflow\":\"hidden\",\"min-height\":\"200px\"}},[_c('h5',[_vm._v(\"Sign up\")]),_c('b-form-group',{staticClass:\"m-3\",attrs:{\"size\":\"lg\",\"label\":\"Account Name\",\"label-for\":\"accountName\"}},[_c('b-form-input',{attrs:{\"id\":\"accountName\",\"type\":\"text\",\"required\":\"\",\"trim\":\"\",\"placeholder\":\"Account Name\"},model:{value:(_vm.signUp.tenantName),callback:function ($$v) {_vm.$set(_vm.signUp, \"tenantName\", $$v)},expression:\"signUp.tenantName\"}})],1),_c('b-form-group',{staticClass:\"m-3\",attrs:{\"size\":\"lg\",\"label\":\"Full Name\",\"label-for\":\"userFullName\"}},[_c('b-form-input',{attrs:{\"id\":\"userFullName\",\"type\":\"text\",\"required\":\"\",\"trim\":\"\",\"placeholder\":\"Full Name\"},model:{value:(_vm.signUp.name),callback:function ($$v) {_vm.$set(_vm.signUp, \"name\", $$v)},expression:\"signUp.name\"}})],1),_c('b-form-group',{staticClass:\"m-3\",attrs:{\"size\":\"lg\",\"label\":\"Email\",\"label-for\":\"email\"}},[_c('b-form-input',{attrs:{\"id\":\"email\",\"type\":\"text\",\"required\":\"\",\"trim\":\"\",\"placeholder\":\"Email\"},model:{value:(_vm.signUp.email),callback:function ($$v) {_vm.$set(_vm.signUp, \"email\", $$v)},expression:\"signUp.email\"}})],1),_c('b-form-group',{staticClass:\"m-3\",attrs:{\"size\":\"lg\"}},[_c('password-input',{attrs:{\"minimum-length\":8,\"label-text\":\"Password\",\"data-cy\":\"signup-input-password\"},on:{\"score\":_vm.updatePasswordScore,\"valid\":_vm.updatePasswordValid},model:{value:(_vm.signUp.password),callback:function ($$v) {_vm.$set(_vm.signUp, \"password\", $$v)},expression:\"signUp.password\"}})],1),_c('b-form-group',{staticClass:\"m-3\",attrs:{\"size\":\"lg\",\"label\":\"Confirm\",\"label-for\":\"passwordConfirm\"}},[_c('b-form-input',{attrs:{\"id\":\"passwordConfirm\",\"type\":\"password\",\"autocomplete\":\"new-password\",\"required\":\"\",\"trim\":\"\",\"placeholder\":\"Confirm Password\"},model:{value:(_vm.signUp.passwordConfirmation),callback:function ($$v) {_vm.$set(_vm.signUp, \"passwordConfirmation\", $$v)},expression:\"signUp.passwordConfirmation\"}})],1),(this.validationMessage)?_c('small',{staticClass:\"text-danger\"},[_c('i',{staticClass:\"fas fa-exclamation-triangle m-l-10 m-r-5\"}),_vm._v(\" \"+_vm._s(this.validationMessage)+\" \")]):_vm._e(),_c('button',{staticClass:\"btn btn-primary\",staticStyle:{\"width\":\"150px\",\"float\":\"right\"},attrs:{\"type\":\"submit\",\"disabled\":_vm.creatingAccount || !_vm.isValid},on:{\"click\":function($event){return _vm.createAccount()}}},[(_vm.creatingAccount)?_c('i',{staticClass:\"fas fa-spinner fa-spin\"}):_vm._e(),_vm._v(\"Create \")])],1)])])])}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"logo-header\"},[_c('img',{attrs:{\"src\":\"images/cases_logo_112020_light.png\",\"alt\":\"SureView Cases logo\"}})])}]\n\nexport { render, staticRenderFns }","\r\nimport { Component, Vue } from \"vue-property-decorator\"\r\nimport { Getter, Action } from \"vuex-class\"\r\n\r\nimport SignUpForm from \"@/types/signupForm\"\r\n\r\nimport api from \"@/services/api\"\r\nimport { LoginRequest } from \"@/types\"\r\n\r\nimport PasswordInput from \"@/components/Controls/PasswordInput.vue\"\r\n\r\n@Component({\r\n\tcomponents: {\r\n\t\t\"password-input\": PasswordInput\r\n\t}\r\n})\r\nexport default class SignUp extends Vue {\r\n\t@Action public logIn!: (login: LoginRequest) => void;\r\n\r\n\t@Getter(\"getScreenWidth\")\r\n\tpublic screenWidth!: number;\r\n\r\n\tpublic passwordScore: number | null = null\r\n\r\n\tpublic signUp: SignUpForm = {\r\n\t\ttenantName: \"\",\r\n\t\tname: \"\",\r\n\t\temail: \"\",\r\n\t\tpassword: \"\",\r\n\t\tpasswordConfirmation: \"\"\r\n\t};\r\n\r\n\tvalidationMessage: string = \"\"\r\n\tprivate creatingAccount: boolean = false;\r\n\tpasswordValid: boolean = false;\r\n\r\n\t// TODO replace with vuelidate so feedback does not appear instantly\r\n\tget isValid () {\r\n\t\tthis.validationMessage = \"\"\r\n\t\tif (!this.passwordValid || !this.passwordScore || this.passwordScore < 3) {\r\n\t\t\treturn false\r\n\t\t}\r\n\r\n\t\tif (this.signUp.password !== this.signUp.passwordConfirmation) {\r\n\t\t\tthis.validationMessage = \"Passwords do not match\"\r\n\t\t\treturn false\r\n\t\t}\r\n\r\n\t\tfor (let [key, value] of Object.entries(this.signUp)) {\r\n\t\t\tif (!value) {\r\n\t\t\t\tthis.validationMessage = `${key} required`\r\n\t\t\t\treturn false\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn true\r\n\t}\r\n\r\n\tprivate async createAccount () {\r\n\t\tthis.creatingAccount = true\r\n\t\ttry {\r\n\t\t\tawait api.createAccount(this.signUp)\r\n\t\t\tawait this.logIn({\r\n\t\t\t\temail: this.signUp.email,\r\n\t\t\t\tpassword: this.signUp.password\r\n\t\t\t})\r\n\t\t\tthis.$router.push({ path: \"login\" })\r\n\t\t} catch (err) {\r\n\t\t\tthis.validationMessage = err\r\n\t\t}\r\n\t\tsetTimeout(() => this.creatingAccount = false, 750)\r\n\t}\r\n\r\n\tprivate updatePasswordScore (score: number) {\r\n\t\tthis.passwordScore = score\r\n\t}\r\n\r\n\tprivate updatePasswordValid (valid: boolean) {\r\n\t\tthis.passwordValid = valid\r\n\t}\r\n}\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--13-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Signup.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--13-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Signup.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Signup.vue?vue&type=template&id=8e5205f8&scoped=true&\"\nimport script from \"./Signup.vue?vue&type=script&lang=ts&\"\nexport * from \"./Signup.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./Signup.vue?vue&type=style&index=0&id=8e5205f8&prod&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"8e5205f8\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('page',[_c('scrollbar',[_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col-12\"},[_c('h6',[_vm._v(\"This is just a test page to upload profile images.\")])])]),_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col-12 col-md-4\"},[_vm._v(\"Name:\")]),_c('div',{staticClass:\"col-12 col-md-8\"})]),_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col-12 col-md-4\"},[_vm._v(\"Profile Picture:\")]),_c('div',{staticClass:\"col-12 col-md-8\"},[_c('picture-upload')],1)])])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { Component, Vue } from \"vue-property-decorator\"\r\n\r\nimport vSelect from \"vue-select\"\r\n// @ts-ignore\r\nimport VuePerfectScrollbar from \"vue-perfect-scrollbar\"\r\n\r\nimport PictureUpload from \"@/components/Account/PictureSelect.vue\"\r\nimport PageWrapper from \"@/components/New/Page/PageWrapper.vue\"\r\n\r\n@Component({\r\n\tcomponents: {\r\n\t\t\"page\": PageWrapper,\r\n\t\t\"v-select\": vSelect,\r\n\t\t\"scrollbar\": VuePerfectScrollbar,\r\n\t\t\"picture-upload\": PictureUpload\r\n\t}\r\n})\r\nexport default class Account extends Vue {\r\n}\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--13-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Account.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--13-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Account.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Account.vue?vue&type=template&id=eea9d758&scoped=true&\"\nimport script from \"./Account.vue?vue&type=script&lang=ts&\"\nexport * from \"./Account.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./Account.vue?vue&type=style&index=0&id=eea9d758&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"eea9d758\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('page',[_c('div',{staticClass:\"d-flex flex-column h-100\"},[_c('div',{staticClass:\"p-3 p-b-0\"},[_c('b-form-group',{staticClass:\"m-b-0\",attrs:{\"label\":\"Search\",\"label-for\":'input-search'}},[_c('b-form-input',{directives:[{name:\"shortkey\",rawName:\"v-shortkey\",value:(['enter']),expression:\"['enter']\"}],attrs:{\"id\":\"input-search\",\"type\":\"text\",\"autocomplete\":\"off\",\"placeholder\":\"Search\"},on:{\"shortkey\":function($event){return _vm.doSearch()}},model:{value:(_vm.search),callback:function ($$v) {_vm.search=$$v},expression:\"search\"}})],1),_c('a',{staticClass:\"btn btn-primary m-t-10\",on:{\"click\":function($event){$event.stopPropagation();return _vm.doSearch($event)}}},[_vm._v(\"Search\")]),_c('b-button',{staticClass:\"m-l-5 m-t-10\",attrs:{\"disabled\":!_vm.search},on:{\"click\":function($event){_vm.search = ''}}},[_vm._v(\"Clear\")])],1),_c('div',{staticClass:\"flex-shrink-1 flex-grow-1 d-flex\",staticStyle:{\"overflow\":\"hidden\"}},[_c('div',{staticClass:\"flex-grow-1\"},[_c('skeleton',{staticClass:\"flex-grow-1 h-100\",attrs:{\"loading\":_vm.searching}},[_c('b-tabs',{staticClass:\"h-100 p-3\"},[_c('b-tab',{scopedSlots:_vm._u([{key:\"title\",fn:function(){return [_vm._v(\" Records \"),(_vm.caseResults)?_c('span',{staticClass:\"badge badge-pills\"},[_vm._v(_vm._s(_vm.caseResults.totalItems))]):_vm._e()]},proxy:true}])},[_c('case-results',{ref:\"caseSearch\",attrs:{\"searchTerm\":_vm.search,\"searchType\":\"cases\",\"results\":_vm.caseResults,\"perPage\":_vm.perPage,\"filterColumnGroups\":_vm.caseColumns,\"defaultColumns\":_vm.caseDefaultColumns},on:{\"preview\":_vm.setPreviewCase}})],1),_c('b-tab',{scopedSlots:_vm._u([{key:\"title\",fn:function(){return [_vm._v(\" People \"),(_vm.userResults)?_c('span',{staticClass:\"badge badge-pills\"},[_vm._v(_vm._s(_vm.userResults.totalItems))]):_vm._e()]},proxy:true}])},[_c('case-results',{ref:\"peopleSearch\",attrs:{\"searchTerm\":_vm.search,\"searchType\":\"users\",\"results\":_vm.userResults,\"perPage\":_vm.perPage,\"hideFilters\":true,\"filterColumnGroups\":_vm.userColumns,\"defaultColumns\":_vm.userDefaultColumns}})],1)],1)],1)],1),_c('div',{staticClass:\"flex-grow-0\"})])]),_c('transition',{attrs:{\"name\":\"slide\"}},[(_vm.previewCase)?_c('div',{staticClass:\"right-sidebar\"},[_c('div',{staticClass:\"card h-100\",staticStyle:{\"z-index\":\"60\"}},[_c('div',{staticClass:\"card-header modal-header d-flex align-items-center\"},[_c('h4',{staticClass:\"flex-grow-1 flex-shrink-1\"},[_vm._v(\"#\"+_vm._s(_vm.previewCase.caseNumber)+\" \"+_vm._s(_vm.previewCase.title))]),_c('a',{staticClass:\"btn btn-secondary\",on:{\"click\":_vm.gotoPreviewCase}},[_vm._v(\" Open \")]),_c('a',{staticClass:\"close\",staticStyle:{\"font-size\":\"1.5rem\"},on:{\"click\":function($event){_vm.previewCase = null}}},[_c('i',{staticClass:\"fas fa-times\"})])]),_c('div',{staticClass:\"card-body p-3\"},[_c('scrollbar',{staticClass:\"h-100\"},[_c('case-preview',{attrs:{\"caseDetails\":_vm.previewCase}})],1)],1)])]):_vm._e()])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"h-100 d-flex flex-column\"},[_c('div',{staticClass:\"p-1 p-b-0 d-flex align-items-center\"},[(_vm.results)?_c('span',{staticClass:\"m-r-20\"},[_vm._v(_vm._s(_vm.results.totalItems)+\" results\")]):_vm._e(),(!_vm.hideFilters)?_c('column-filters',{staticClass:\"d-flex flex-wrap flex-grow-1\",attrs:{\"filterColumnGroups\":_vm.filterColumnGroups},on:{\"applyFilters\":_vm.applyFilters},model:{value:(_vm.filters),callback:function ($$v) {_vm.filters=$$v},expression:\"filters\"}}):_c('div',{staticClass:\"flex-grow-1\"}),_c('b-dropdown',{attrs:{\"right\":\"\",\"no-caret\":\"\"},on:{\"hidden\":function($event){_vm.columnFilter = ''}},scopedSlots:_vm._u([{key:\"button-content\",fn:function(){return [_c('i',{staticClass:\"fas fa-columns m-r-5\"}),_vm._v(\" Columns \")]},proxy:true}])},[_c('b-dropdown-form',[_c('b-form-group',{staticClass:\"m-b-0\"},[_c('b-form-input',{attrs:{\"placeholder\":\"Search columns\"},model:{value:(_vm.columnFilter),callback:function ($$v) {_vm.columnFilter=$$v},expression:\"columnFilter\"}})],1)],1),_c('scrollbar',{staticStyle:{\"max-height\":\"200px\"}},[_vm._l((_vm.filteredFieldColumnGroups),function(columnGroup,index){return [_vm._l((columnGroup),function(column){return _c('b-dropdown-item',{key:column.key,on:{\"click\":function($event){$event.stopPropagation();return _vm.toggleColumn(column)}}},[_c('span',{staticClass:\"column-check\"},[(_vm.hasColumn(column.key))?_c('i',{staticClass:\"fas fa-check\"}):_vm._e()]),_vm._v(\" \"+_vm._s(column.label)+\" \")])}),(index < (_vm.filteredFieldColumnGroups.length - 1))?_c('b-dropdown-divider',{key:index}):_vm._e()]})],2)],1)],1),(_vm.results && _vm.results.totalItems === 0)?_c('div',{staticClass:\"alert alert-info m-t-10\"},[_vm._v(\" No results found. \")]):(_vm.results)?_c('scrollbar',{staticClass:\"flex-grow-1 mt-1\"},[_c('case-table',{attrs:{\"columns\":_vm.activeColumns,\"cases\":_vm.results.data,\"perPage\":0,\"displayingUsers\":_vm.searchingForUsers},on:{\"caseClicked\":_vm.openCasePreview}})],1):_vm._e(),(_vm.results && _vm.results.totalItems > _vm.itemsPerPage)?_c('div',[_c('b-row',[_c('b-col'),_c('b-col',{staticClass:\"d-flex justify-content-end\"},[_c('v-select',{directives:[{name:\"show\",rawName:\"v-show\",value:(false),expression:\"false\"}],staticClass:\"m-b-0\",attrs:{\"label\":\"label\",\"append-to-body\":\"\",\"calculate-position\":_vm.withPopper,\"options\":_vm.paginationItems,\"clearable\":false,\"searchable\":false},model:{value:(_vm.itemsPerPage),callback:function ($$v) {_vm.itemsPerPage=$$v},expression:\"itemsPerPage\"}})],1),_c('b-col',[_c('b-pagination',{staticClass:\"m-b-0\",attrs:{\"total-rows\":_vm.results.totalItems,\"per-page\":_vm.itemsPerPage},model:{value:(_vm.currentPage),callback:function ($$v) {_vm.currentPage=$$v},expression:\"currentPage\"}})],1),_c('b-col'),_c('b-col')],1)],1):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { Component, Vue, Watch, Prop, Emit } from \"vue-property-decorator\"\r\nimport { namespace, Getter, Mutation, Action } from \"vuex-class\"\r\n// @ts-ignore\r\nimport VuePerfectScrollbar from \"vue-perfect-scrollbar\"\r\nimport vSelect from \"vue-select\"\r\n\r\nimport { Template, CaseDetails, AdvancedSearchFilter, dataTypeByFieldType, SearchClause } from \"@/types\"\r\nimport { PagedData } from \"@/types/pagedData\"\r\nimport { caseColumns, CaseColumn } from \"@/types/caseColumns\"\r\nimport { Operator, operatorLabels, operatorsByFieldType } from \"@/types/insights/operators\"\r\n\r\nimport { filterMixin } from \"@/mixins/filtering\"\r\n\r\nimport api from \"@/services/api\"\r\n\r\nimport ColumnFilters from \"@/components/Search/ColumnFilters.vue\"\r\nimport UserImage from \"@/components/UserImage.vue\"\r\nimport CaseTable from \"@/components/CaseList/CaseTable.vue\"\r\n\r\nconst setup = namespace(\"setup\")\r\n\r\nconst { filterList } = filterMixin.methods\r\n\r\n@Component({\r\n\tcomponents: {\r\n\t\t\"user-image\": UserImage,\r\n\t\t\"column-filters\": ColumnFilters,\r\n\t\t\"scrollbar\": VuePerfectScrollbar,\r\n\t\t\"v-select\": vSelect,\r\n\t\t\"case-table\": CaseTable\r\n\t}\r\n})\r\nexport default class ResultsDisplay extends Vue {\r\n\t@Prop()\r\n\tpublic searchTerm!: string;\r\n\r\n\t@Prop()\r\n\tpublic searchType!: string;\r\n\r\n\t@Prop()\r\n\tpublic perPage!: number;\r\n\r\n\t@Prop({ default: false })\r\n\tpublic hideFilters!: boolean;\r\n\r\n\t@Prop()\r\n\tpublic defaultColumns!: string[];\r\n\r\n\t@Prop()\r\n\tpublic filterColumnGroups!: any[];\r\n\r\n\tpublic results: PagedData | null = null;\r\n\r\n\tpublic activeColumns: any[] = [];\r\n\r\n\tpublic appliedSearchClauses: SearchClause[] = [];\r\n\tpublic filters: AdvancedSearchFilter[] = [];\r\n\r\n\tprivate defaultSortBy = \"created\"\r\n\tprivate paginationItems = [20, 50, 100];\r\n\tprivate itemsPerPage = this.perPage;\r\n\r\n\tcolumnFilter: string = \"\";\r\n\tcurrentPage: number = 1;\r\n\r\n\tpublic get filteredFieldColumnGroups (): any[][] {\r\n\t\tif (!this.columnFilter) {\r\n\t\t\treturn this.filterColumnGroups\r\n\t\t}\r\n\r\n\t\tconst lowerFilter = this.columnFilter.toLowerCase()\r\n\t\treturn this.filterColumnGroups.map(g => g.filter((c: any) => c.label.toLowerCase().indexOf(lowerFilter) > -1))\r\n\t}\r\n\r\n\tprivate get searchingForUsers (): boolean {\r\n\t\treturn this.searchType === \"users\"\r\n\t}\r\n\r\n\t@Watch(\"currentPage\")\r\n\tonCurrentPageChanged () {\r\n\t\tthis.search()\r\n\t}\r\n\r\n\tpublic async mounted () {\r\n\t\t// const defaultColumns = [\"caseNumber\", \"title\", \"templateTitle\", \"created\", \"lastUpdated\", \"statusTitle\", \"assigneeId\"];\r\n\t\tif (this.defaultColumns) {\r\n\t\t\tthis.activeColumns = this.filterColumnGroups[0].filter((c: any) => this.defaultColumns.indexOf(c.key) > -1)\r\n\t\t} else {\r\n\t\t\tthis.activeColumns = []\r\n\t\t}\r\n\t}\r\n\r\n\tpublic async search () {\r\n\t\tthis.results = await api.searchAdvanced(this.searchType,\r\n\t\t\tthis.searchTerm,\r\n\t\t\tthis.appliedSearchClauses,\r\n\t\t\tthis.currentPage)\r\n\t}\r\n\r\n\t/**\r\n\t * If a column is currently in active columns\r\n\t */\r\n\tpublic hasColumn (columnKey: string): boolean {\r\n\t\treturn !!this.activeColumns.find(c => c.key === columnKey)\r\n\t}\r\n\r\n\t/**\r\n\t * Toggles a column into the active columns list\r\n\t */\r\n\tpublic toggleColumn (column: any) {\r\n\t\tif (this.hasColumn(column.key)) {\r\n\t\t\tthis.activeColumns.removeWhere(c => c.key === column.key)\r\n\t\t} else {\r\n\t\t\tthis.activeColumns.push(column)\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Get field Label value for field ID\r\n\t */\r\n\tpublic getFieldLabel (fieldId: string, caseDetails: CaseDetails): string | null {\r\n\t\tif (!caseDetails.fields[fieldId]) {\r\n\t\t\treturn null\r\n\t\t}\r\n\r\n\t\treturn caseDetails.fields[fieldId].label\r\n\t}\r\n\r\n\tpublic addFilterForColumn (column: CaseColumn) {\r\n\t\tconst columnOperators = column.operators ? column.operators : operatorsByFieldType[column.dataType]\r\n\t\tconst firstOperator = columnOperators && columnOperators.length > 0\r\n\t\t\t? operatorLabels.find(o => o.operator === columnOperators[0])\r\n\t\t\t: null\r\n\r\n\t\tthis.filters.push({\r\n\t\t\tkey: column.key,\r\n\t\t\tcolumnLabel: column.label,\r\n\t\t\tcolumnDataType: column.dataType,\r\n\t\t\tcolumnValues: column.columnValues,\r\n\t\t\tcolumnListLabel: column.listLabel,\r\n\t\t\tfilterKey: column.filterKey,\r\n\t\t\tcolumnDataSource: column.dataSourceId,\r\n\t\t\toperator: firstOperator!.operator,\r\n\t\t\toperatorLabel: firstOperator!.label,\r\n\t\t\tdynamicValue: false,\r\n\t\t\tvalue: \"\",\r\n\t\t\tlabel: null,\r\n\t\t\tcolumn: column\r\n\t\t})\r\n\t}\r\n\r\n\tpublic removeFilter (filter: any) {\r\n\t\tthis.filters.splice(this.filters.indexOf(filter), 1)\r\n\t}\r\n\r\n\tpublic openCasePreview (caseDetails: any) {\r\n\t\tthis.$emit(\"preview\", caseDetails)\r\n\t}\r\n\r\n\tpublic userPictureUrl (userId: string): string {\r\n\t\treturn api.pictureUrl(userId)\r\n\t}\r\n\r\n\tpublic applyFilters () {\r\n\t\tthis.appliedSearchClauses = this.filters.map((filter: AdvancedSearchFilter) => {\r\n\t\t\treturn {\r\n\t\t\t\tid: \"\",\r\n\t\t\t\tfield: filter.key,\r\n\t\t\t\tlabel: filter.columnLabel,\r\n\t\t\t\tdataSourceId: \"\",\r\n\t\t\t\tfieldDataType: filter.column ? filter.column.fieldDataType! : null,\r\n\t\t\t\tdynamicField: filter.column ? filter.column.dynamicField : null,\r\n\t\t\t\toperator: filter.operator,\r\n\t\t\t\tvalue: filter.value,\r\n\t\t\t\tdynamicValue: filter.dynamicValue,\r\n\t\t\t\tvalueLabel: \"\",\r\n\t\t\t\tdefinitionId: \"\",\r\n\t\t\t\tdefinitionField: \"\",\r\n\t\t\t\tdefinitionFieldLabel: \"\",\r\n\t\t\t\tdefinitionFieldDataType: 0\r\n\t\t\t} as SearchClause\r\n\t\t})\r\n\r\n\t\tthis.search()\r\n\t}\r\n}\r\n\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ResultsDisplay.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ResultsDisplay.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ResultsDisplay.vue?vue&type=template&id=7d03881e&scoped=true&\"\nimport script from \"./ResultsDisplay.vue?vue&type=script&lang=ts&\"\nexport * from \"./ResultsDisplay.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./ResultsDisplay.vue?vue&type=style&index=0&id=7d03881e&prod&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"7d03881e\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.caseDetails)?_c('div',[_c('case-field-display',{attrs:{\"fields\":_vm.globalColumns}}),_vm._l((_vm.caseDetails.sections),function(section){return _c('case-field-display',{key:section,attrs:{\"sectionHeader\":section,\"caseDetails\":_vm.caseDetails,\"fields\":_vm.sections[section]}})})],2):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.fields && _vm.fields.length > 0)?_c('div',[(_vm.sectionHeader)?_c('h5',{domProps:{\"textContent\":_vm._s(_vm.sectionHeader)}}):_vm._e(),_vm._l((_vm.fields),function(field){return _c('div',{key:field.key,staticClass:\"m-b-5\",class:{'m-l-10': _vm.sectionHeader}},[_c('b',[_vm._v(_vm._s(field.field ? field.field.title : field.label))]),_c('span',{staticClass:\"value-block\"},[(field.dataType === 'date')?[_vm._v(\" \"+_vm._s(_vm.displayDateFromISOString(field.value))+\" \")]:(field.dataType === 'list-multiple' || field.dataType === 'list-data')?[(field.listItemType === 'user')?_vm._l((field.valueObject),function(user){return _c('span',{key:user.id,staticClass:\"d-block\"},[(field.value)?_c('user-image',{attrs:{\"showUserName\":true,\"size\":\"sm\",\"user\":user}}):_vm._e()],1)}):[_vm._v(\" \"+_vm._s(field.valueLabel ? field.valueLabel : (field.value && Array.isArray(field.value) ? field.value.map(function (i) { return i[field.listLabel]; }).join(\", \") : \"\"))+\" \")]]:(field.dataType === 'list')?[_vm._v(\" \"+_vm._s(field.valueLabel ? field.valueLabel : (field.value && Array.isArray(field.value) ? field.value.map(function (i) { return i[field.listLabel]; }).join(\", \") : field.value))+\" \")]:(field.dataType === 'user')?[(field.valueObject)?_c('user-image',{attrs:{\"showUserName\":true,\"size\":\"sm\",\"user\":field.valueObject}}):_vm._e()]:(field.dataType === 'date')?[_vm._v(\" \"+_vm._s(_vm.displayDateOnlyFromISOString(field.value))+\" \")]:(field.dataType === 'date-time')?[_vm._v(\" \"+_vm._s(_vm.displayDateFromISOString(field.value))+\" \")]:(field.dataType === 'checkbox')?[_vm._v(\" \"+_vm._s(field.value === true ? \"Yes\" : field.value === false ? \"No\" : \"\")+\" \")]:(field.dataType === 'map-marker')?[_vm._v(\" \"+_vm._s((field.value && field.value.length > 0 ? field.value.length : 'No') + \" markers\")+\" \")]:(field.dataType === 'map-path')?[_vm._v(\" \"+_vm._s((field.value && field.value.length > 0 ? field.value.length : 'No') + \" paths\")+\" \")]:(field.dataType === 'map-region')?[_vm._v(\" \"+_vm._s((field.value && field.value.length > 0 ? field.value.length : 'No') + \" regions\")+\" \")]:(field.dataType === 'user-role')?[(field.value.subRoles)?_vm._l((field.value.subRoles),function(subrole){return _c('div',{key:subrole.title},[_c('b',{staticClass:\"d-block\"},[_vm._v(_vm._s(subrole.title)+\": \")]),(subrole.users)?_vm._l((subrole.users),function(user){return _c('div',{key:user.id,staticClass:\"m-l-10\"},[_c('user-image',{attrs:{\"showUserName\":true,\"size\":\"sm\",\"user\":_vm.caseDetails.users.find(function (u) { return u.id === user.id; } )}})],1)}):_vm._e()],2)}):_vm._l((field.value.users),function(user){return _c('user-image',{key:user.id,attrs:{\"showUserName\":true,\"size\":\"sm\",\"user\":_vm.caseDetails.users.find(function (u) { return u.id === user.id; } )}})})]:(field.dataType === 'calculated'\n\t\t\t\t&& field.field.extensions\n\t\t\t\t&& field.field.extensions.calculationType === _vm.CalculationType.TimeSpentAs)?[_c('time-spent-display',{attrs:{\"caseField\":field,\"currentCase\":_vm.caseDetails,\"timeSpentAsValue\":field.value}})]:[_vm._v(\" \"+_vm._s(field.extensions.calculationType === _vm.CalculationType.TimeSpentAs)+\" \"+_vm._s(field.value)+\" \")]],2)])})],2):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { Component, Vue, Watch, Prop } from \"vue-property-decorator\"\r\nimport { namespace, Getter, Mutation, Action } from \"vuex-class\"\r\n\r\n// @ts-ignore\r\nimport VuePerfectScrollbar from \"vue-perfect-scrollbar\"\r\n\r\nimport { caseColumns } from \"@/types/caseColumns\"\r\nimport UserImage from \"@/components/UserImage.vue\"\r\nimport { CaseDetails, CalculationType } from \"@/types\"\r\n\r\nimport { get } from \"lodash\"\r\nimport TimeSpentDisplay from \"../CaseDetails/TimeSpentDisplay.vue\"\r\n\r\n@Component({\r\n\tcomponents: {\r\n\t\t\"user-image\": UserImage,\r\n\t\t\"scrollbar\": VuePerfectScrollbar,\r\n\t\t\"time-spent-display\": TimeSpentDisplay\r\n\t}\r\n})\r\nexport default class CaseFieldDisplay extends Vue {\r\n\t@Prop()\r\n\tcaseDetails!: any;\r\n\r\n\t@Prop()\r\n\tfields!: any[];\r\n\r\n\t@Prop()\r\n\tsectionHeader!: string;\r\n\r\n\tCalculationType = CalculationType\r\n}\r\n\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CaseFieldDisplay.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CaseFieldDisplay.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./CaseFieldDisplay.vue?vue&type=template&id=37574935&scoped=true&\"\nimport script from \"./CaseFieldDisplay.vue?vue&type=script&lang=ts&\"\nexport * from \"./CaseFieldDisplay.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./CaseFieldDisplay.vue?vue&type=style&index=0&id=37574935&prod&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"37574935\",\n null\n \n)\n\nexport default component.exports","\r\nimport { Component, Vue, Watch, Prop } from \"vue-property-decorator\"\r\nimport { namespace, Getter, Mutation, Action } from \"vuex-class\"\r\n\r\n// @ts-ignore\r\nimport VuePerfectScrollbar from \"vue-perfect-scrollbar\"\r\n\r\nimport { CaseField } from \"@/types/caseField\"\r\nimport { caseColumns } from \"@/types/caseColumns\"\r\n\r\nimport CaseFieldDisplay from \"@/components/Search/CaseFieldDisplay.vue\"\r\nimport UserImage from \"@/components/UserImage.vue\"\r\n\r\nimport { get } from \"lodash\"\r\n\r\n@Component({\r\n\tcomponents: {\r\n\t\t\"user-image\": UserImage,\r\n\t\t\"case-field-display\": CaseFieldDisplay,\r\n\t\t\"scrollbar\": VuePerfectScrollbar\r\n\t}\r\n})\r\nexport default class CasePreview extends Vue {\r\n\t@Prop()\r\n\tcaseDetails: any;\r\n\r\n\tprivate get globalColumns (): any[] {\r\n\t\tif (!this.caseDetails) {\r\n\t\t\treturn []\r\n\t\t}\r\n\r\n\t\tconst hideUsers = Object.keys(this.caseDetails.fields)\r\n\t\t\t.some(fieldId => this.caseDetails.fields[fieldId].dataType === \"user-role\")\r\n\r\n\t\tconst globalColumns = caseColumns.filter(c => c.key !== \"caseNumber\" && c.key !== \"title\" &&\r\n\t\t\t(!hideUsers || (c.key !== \"users\" && c.key !== \"assigneeId\")))\r\n\t\tglobalColumns.forEach(c => {\r\n\t\t\tc.value = get(this.caseDetails, c.key)\r\n\t\t\tif (c.displayKey) {\r\n\t\t\t\tc.valueLabel = get(this.caseDetails, c.displayKey)\r\n\t\t\t}\r\n\t\t})\r\n\r\n\t\tconst assignee = globalColumns.find(g => g.key === \"assigneeId\")\r\n\t\tconst users = globalColumns.find(g => g.key === \"users\")\r\n\t\tif (assignee && users) {\r\n\t\t\tassignee.valueObject = users.value!.find((u: any) => u.id === this.caseDetails.assigneeId)\r\n\t\t\tusers.valueObject = users.value!.filter((u: any) => u.id !== this.caseDetails.assigneeId)\r\n\t\t}\r\n\r\n\t\treturn globalColumns\r\n\t}\r\n\r\n\tprivate get sections (): any[] {\r\n\t\tif (!this.caseDetails) {\r\n\t\t\treturn []\r\n\t\t}\r\n\r\n\t\tconst allFields: CaseField[] = []\r\n\r\n\t\tif (this.caseDetails.fields) {\r\n\t\t\tObject.keys(this.caseDetails.fields).forEach(fieldId => {\r\n\t\t\t\tconst field = this.caseDetails.fields[fieldId]\r\n\t\t\t\tif (field) {\r\n\t\t\t\t\tallFields.push(field)\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t}\r\n\r\n\t\tallFields.forEach((field: CaseField) => {\r\n\t\t\tif (this.caseDetails!.sections) {\r\n\t\t\t\tconst sectionOrder = this.caseDetails!.sections.indexOf(field.section)\r\n\t\t\t\tfield.sectionOrder = sectionOrder === -1 ? 99999 : sectionOrder\r\n\t\t\t}\r\n\r\n\t\t\tif (field.field.dataType) {\r\n\t\t\t\tfield.dataType = field.field.dataType\r\n\t\t\t}\r\n\t\t\tif (field.label) {\r\n\t\t\t\tfield.valueLabel = field.label\r\n\t\t\t}\r\n\t\t})\r\n\r\n\t\tconst caseFields = allFields.sortByThen({ key: \"sectionOrder\" }, { thenKey: \"order\" })\r\n\r\n\t\treturn caseFields.reduce((group: any, field: CaseField) => {\r\n\t\t\tvar section = field.section ? field.section : \"General\";\r\n\t\t\t(group[section] = group[section] || []).push(field)\r\n\t\t\treturn group\r\n\t\t}, {})\r\n\t}\r\n\r\n\tgetValue (key: string) {\r\n\t\treturn get(this.caseDetails, key)\r\n\t}\r\n}\r\n\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CasePreview.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CasePreview.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./CasePreview.vue?vue&type=template&id=6f7c77b4&scoped=true&\"\nimport script from \"./CasePreview.vue?vue&type=script&lang=ts&\"\nexport * from \"./CasePreview.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./CasePreview.vue?vue&type=style&index=0&id=6f7c77b4&prod&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"6f7c77b4\",\n null\n \n)\n\nexport default component.exports","\r\nimport { Component, Vue, Watch } from \"vue-property-decorator\"\r\nimport { Getter } from \"vuex-class\"\r\n// @ts-ignore\r\nimport VuePerfectScrollbar from \"vue-perfect-scrollbar\"\r\n\r\nimport { CaseDetails, SearchClause, DataType, dataTypeByFieldType, CalculationType } from \"@/types\"\r\nimport { PagedData } from \"@/types/pagedData\"\r\nimport { caseColumns, CaseColumn } from \"@/types/caseColumns\"\r\n\r\nimport api from \"@/services/api\"\r\n\r\nimport UserImage from \"@/components/UserImage.vue\"\r\nimport ResultsDisplay from \"@/components/Search/ResultsDisplay.vue\"\r\nimport CasePreview from \"@/components/Search/CasePreview.vue\"\r\nimport SkeletonLoader from \"@/components/SkeletonLoader.vue\"\r\nimport PageWrapper from \"@/components/New/Page/PageWrapper.vue\"\r\n\r\n@Component({\r\n\tcomponents: {\r\n\t\t\"page\": PageWrapper,\r\n\t\t\"skeleton\": SkeletonLoader,\r\n\t\t\"user-image\": UserImage,\r\n\t\t\"scrollbar\": VuePerfectScrollbar,\r\n\t\t\"case-results\": ResultsDisplay,\r\n\t\t\"case-preview\": CasePreview\r\n\t}\r\n})\r\nexport default class Search extends Vue {\r\n\t$refs!: {\r\n\t\tcaseSearch: ResultsDisplay;\r\n\t\tpeopleSearch: ResultsDisplay\r\n\t}\r\n\r\n\t@Getter getSearch!: string;\r\n\r\n\tsearch: string = \"\";\r\n\tsearching: boolean = false;\r\n\r\n\tcaseColumns: CaseColumn[][] = [];\r\n\tcaseDefaultColumns = [\r\n\t\t\"caseNumber\", \"title\", \"templateTitle\", \"created\", \"lastUpdated\", \"statusTitle\", \"assigneeId\"\r\n\t];\r\n\tcaseResults: PagedData | null= null;\r\n\r\n\tuserColumns: any[][] = [];\r\n\tuserDefaultColumns = [\r\n\t\t\"name\", \"pictureUrl\", \"teams\", \"email\"\r\n\t];\r\n\tuserResults: PagedData | null = null;\r\n\r\n\tlocationResults: any[] | null= null;\r\n\r\n\tperPage: number = 50; // default to 50 results per page\r\n\r\n\tpreviewCase: CaseDetails | null = null;\r\n\r\n\tclauses: SearchClause[] = [];\r\n\r\n\tpublic created () {\r\n\t\tthis.caseColumns = []\r\n\t\tthis.caseColumns.push(caseColumns)\r\n\r\n\t\tthis.userColumns = [\r\n\t\t\t[\r\n\t\t\t\t{\r\n\t\t\t\t\tkey: \"name\",\r\n\t\t\t\t\tlabel: \"Name\",\r\n\t\t\t\t\tdataType: \"user-picture\"\r\n\t\t\t\t},\r\n\t\t\t\t{\r\n\t\t\t\t\tkey: \"email\",\r\n\t\t\t\t\tlabel: \"Email\",\r\n\t\t\t\t\tdataType: \"text\"\r\n\t\t\t\t},\r\n\t\t\t\t{\r\n\t\t\t\t\tkey: \"teams\",\r\n\t\t\t\t\tlabel: \"Teams\",\r\n\t\t\t\t\tdataType: \"list-multiple\",\r\n\t\t\t\t\tlistLabel: \"title\",\r\n\t\t\t\t\tcolumnValues: (api: any) => api.teamsGet()\r\n\t\t\t\t}\r\n\t\t\t]\r\n\t\t]\r\n\t}\r\n\r\n\tpublic async mounted () {\r\n\t\tthis.caseColumns = []\r\n\t\tthis.caseColumns.push(caseColumns)\r\n\r\n\t\tthis.search = this.getSearch\r\n\r\n\t\tthis.caseColumns.push((await api.fields()).map(field => {\r\n\t\t\tlet result = {\r\n\t\t\t\tkey: \"fields.\" + field.id,\r\n\t\t\t\tlabel: field.title,\r\n\t\t\t\tdataType: field.dataType,\r\n\t\t\t\tfieldDataType: dataTypeByFieldType[field.dataType!],\r\n\t\t\t\tfieldId: field.id,\r\n\t\t\t\tdataSourceId: field.dataSourceId,\r\n\t\t\t\tcolumnListLabel: \"label\",\r\n\t\t\t\tdynamicField: true\r\n\t\t\t} as CaseColumn\r\n\r\n\t\t\t// For calculated field type - CalculationType.AddToDate\r\n\t\t\tif (field.dataType === \"calculated\" && field.extensions && field.extensions.calculationType === CalculationType.AddToDate) {\r\n\t\t\t\tresult.fieldDataType = DataType.dateTime\r\n\t\t\t}\r\n\r\n\t\t\treturn result\r\n\t\t}))\r\n\r\n\t\t// Do not display the calculated field type - CalculationType.DaysUntilOrFromToday\r\n\t\tif (this.caseColumns[1]) {\r\n\t\t\tthis.caseColumns[1].forEach((item, index, array) => {\r\n\t\t\t\tif (item.label === \"days until or from today\") {\r\n\t\t\t\t\tarray.splice(index, 1)\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t}\r\n\r\n\t\tif (this.search) {\r\n\t\t\tthis.doSearch()\r\n\t\t}\r\n\t}\r\n\r\n\t@Watch(\"getSearch\")\r\n\tonGetSearchChanged (newSearch: string) {\r\n\t\tif (newSearch && newSearch !== this.search) {\r\n\t\t\tthis.search = this.getSearch\r\n\t\t\tthis.doSearch()\r\n\t\t}\r\n\t}\r\n\r\n\tpublic async doSearch () {\r\n\t\tthis.searching = true\r\n\r\n\t\ttry {\r\n\t\t\tawait Promise.all([\r\n\t\t\t\tthis.$refs.caseSearch.search(),\r\n\t\t\t\tthis.$refs.peopleSearch.search()\r\n\t\t\t])\r\n\t\t} finally {\r\n\t\t\tthis.searching = false\r\n\t\t}\r\n\t}\r\n\r\n\tpublic setPreviewCase (caseDetails: CaseDetails) {\r\n\t\tthis.previewCase = null\r\n\t\tsetTimeout(() => {\r\n\t\t\tthis.previewCase = caseDetails\r\n\t\t}, 500)\r\n\t}\r\n\r\n\tpublic gotoPreviewCase (): void {\r\n\t\tif (this.previewCase) {\r\n\t\t\tthis.$router.push({ path: `/cases/${this.previewCase.caseNumber}` })\r\n\t\t}\r\n\t}\r\n}\r\n\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--13-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Search.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--13-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Search.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Search.vue?vue&type=template&id=5661661e&scoped=true&\"\nimport script from \"./Search.vue?vue&type=script&lang=ts&\"\nexport * from \"./Search.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./Search.vue?vue&type=style&index=0&id=5661661e&prod&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"5661661e\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('page',[_c('skeleton',{staticClass:\"flex-grow-1\",attrs:{\"loading\":!_vm.userDetails}},[_c('div',{staticClass:\"d-flex flex-column h-100\"},[(_vm.userDetails)?_c('div',{staticClass:\"alert alert-secondary d-flex align-items-center p-3\"},[_c('div',{staticClass:\"mr-4\"},[_c('user-profile-picture',{attrs:{\"user-details\":_vm.userDetails},on:{\"picture-updated\":_vm.onUserPictureUpdated}})],1),_c('div',{staticClass:\"flex-grow-1\"},[_c('h2',[_vm._v(_vm._s(_vm.userDetails.name))]),_c('h4',[_vm._v(_vm._s(_vm.userDetails.teams.map(function (t) { return t.title; }).join(\", \")))]),(!_vm.userHasSetStatusPermission && _vm.userDetails.currentStatus)?[_c('h5',[_vm._v(_vm._s(_vm.userDetails.currentStatus.title))])]:(_vm.userHasSetStatusPermission)?[_c('v-select',{attrs:{\"options\":_vm.availableUserStatuses,\"data-cy\":\"status-selector\",\"label\":\"title\"},on:{\"input\":function (userStatus) { return _vm.userStatusChanged(_vm.userDetails.id, userStatus); }},model:{value:(_vm.userDetails.currentStatus),callback:function ($$v) {_vm.$set(_vm.userDetails, \"currentStatus\", $$v)},expression:\"userDetails.currentStatus\"}})]:_vm._e()],2),(_vm.isMe)?_c('account-setup',{staticClass:\"h-100\",attrs:{\"me\":_vm.me}}):_vm._e()],1):_vm._e(),_c('div',{staticClass:\"d-flex align-items-center p-3 p-b-0\"},[_c('h4',{staticClass:\"flex-grow-1 flex-shrink-1 m-b-0\"},[_vm._v(\"Records\")]),_c('div',[_c('b-form-group',{staticClass:\"m-b-0\"},[_c('b-form-radio-group',{attrs:{\"data-cy\":\"records-assigned-collaborating\",\"options\":_vm.caseSearchOptions},on:{\"input\":_vm.search},model:{value:(_vm.caseSearchOption),callback:function ($$v) {_vm.caseSearchOption=$$v},expression:\"caseSearchOption\"}})],1)],1)]),_c('skeleton',{staticClass:\"flex-grow-1 flex-shrink-1 p-3\"},[_c('scrollbar',{staticClass:\"h-100\"},[_c('div',[_c('h5',[_vm._v(\"Active (\"+_vm._s(_vm.activeCases ? _vm.activeCases.length : 0)+\")\")]),_c('b-table',{attrs:{\"small\":\"\",\"hover\":\"\",\"items\":_vm.activeCases,\"fields\":_vm.casesColumns},on:{\"row-clicked\":_vm.gotoCase},scopedSlots:_vm._u([{key:\"cell(areas)\",fn:function(data){return [(data.item && data.item.locations)?_c('span',[_vm._v(_vm._s(data.item.locations.map(function (l) { return l.title; }).join(\", \")))]):_vm._e()]}}])})],1),_c('div',[_c('h5',[_vm._v(\"Archived (\"+_vm._s(_vm.resultsCount)+\")\")]),_c('b-table',{attrs:{\"small\":\"\",\"hover\":\"\",\"items\":_vm.userCases,\"fields\":_vm.casesColumns},on:{\"row-clicked\":_vm.gotoCase},scopedSlots:_vm._u([{key:\"cell(areas)\",fn:function(data){return [(data.item && data.item.locations)?_c('span',[_vm._v(_vm._s(data.item.locations.map(function (l) { return l.title; }).join(\", \")))]):_vm._e()]}}])}),(_vm.pageCount > 1)?_c('b-pagination',{attrs:{\"total-rows\":_vm.resultsCount,\"per-page\":_vm.perPage,\"aria-controls\":\"my-table\"},model:{value:(_vm.pageNumber),callback:function ($$v) {_vm.pageNumber=$$v},expression:\"pageNumber\"}}):_vm._e()],1)])],1)],1)])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.accountDetails)?_c('div',[_c('b-btn',{attrs:{\"variant\":\"secondary\",\"data-cy\":\"2-factor-auth-button\"},on:{\"click\":_vm.showMfaForm}},[_vm._v(\" \"+_vm._s(_vm.accountDetails.isSuiteUser ? \"Manage My Account\" : _vm.accountDetails.mfaEnabled ? \"Manage Two-Factor Authentication\" : \"Add Two-Factor Authentication\")+\" \")]),_c('b-modal',{scopedSlots:_vm._u([{key:\"modal-footer\",fn:function(ref){\nvar cancel = ref.cancel;\nreturn [(_vm.accountDetails.mfaEnabled)?[_c('b-btn',{attrs:{\"variant\":\"primary\",\"disabled\":!_vm.localAuthCode},on:{\"click\":_vm.removeMfa}},[_vm._v(\" Remove \")]),_c('b-btn',{attrs:{\"variant\":\"secondary\"},on:{\"click\":cancel}},[_vm._v(\" Close \")])]:[_c('b-btn',{attrs:{\"variant\":\"primary\",\"disabled\":!_vm.newAuthDetails || !_vm.newAuthDetails.token || !_vm.newAuthDetails.authCode},on:{\"click\":_vm.setMfa}},[_vm._v(\" Verify and Save \")]),_c('b-btn',{attrs:{\"variant\":\"secondary\"},on:{\"click\":cancel}},[_vm._v(\" Close \")])]]}}],null,false,3190272931),model:{value:(_vm.mfaSetupOpen),callback:function ($$v) {_vm.mfaSetupOpen=$$v},expression:\"mfaSetupOpen\"}},[(_vm.accountDetails.mfaEnabled)?[_c('p',[_vm._v(\"Clear existing Authentication:\")]),_c('b-form-group',{staticClass:\"m-t-10\",attrs:{\"label\":\"Authenticator Code\",\"description\":\"Enter the code as appears on your authenticator\"}},[_c('b-form-input',{model:{value:(_vm.localAuthCode),callback:function ($$v) {_vm.localAuthCode=$$v},expression:\"localAuthCode\"}})],1)]:[_c('mfa-setup',{attrs:{\"tenantName\":_vm.me.tenantName},model:{value:(_vm.newAuthDetails),callback:function ($$v) {_vm.newAuthDetails=$$v},expression:\"newAuthDetails\"}})],(_vm.error)?_c('div',{staticClass:\"alert alert-danger\"},[_vm._v(\" \"+_vm._s(_vm.error)+\" \")]):_vm._e()],2)],1):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { Component, Vue, Watch, Prop } from \"vue-property-decorator\"\r\n\r\n// @ts-ignore\r\nimport VuePerfectScrollbar from \"vue-perfect-scrollbar\"\r\nimport MFASetup from \"@/components/Login/MFASetup.vue\"\r\n\r\nimport api from \"@/services/api\"\r\nimport { User } from \"@/types\"\r\nimport { AccountDetails, AuthSetup, CurrentUser } from \"@/types/user\"\r\n\r\n@Component({\r\n\tcomponents: {\r\n\t\t\"scrollbar\": VuePerfectScrollbar,\r\n\t\t\"mfa-setup\": MFASetup\r\n\t}\r\n})\r\nexport default class AccountSetup extends Vue {\r\n\t@Prop({ default: null })\r\n\tme!: CurrentUser | null\r\n\r\n\tprivate accountDetails: AccountDetails | null = null\r\n\r\n\tprivate mfaSetupOpen: boolean = false\r\n\r\n\tprivate newAuthDetails: AuthSetup | null = null\r\n\tprivate localAuthCode: string | null = null\r\n\r\n\tprivate redirectMFAUrl: string | null = null\r\n\r\n\terror: any = null\r\n\r\n\tmounted () {\r\n\t\tthis.loadAccountDetails()\r\n\t\tthis.loadSuiteMFARedirectUrl()\r\n\t}\r\n\r\n\tloadAccountDetails () {\r\n\t\tapi.accountDetails().then(details => this.accountDetails = details)\r\n\t}\r\n\r\n\tasync loadSuiteMFARedirectUrl () {\r\n\t\tthis.redirectMFAUrl = await api.getMfaRedirectUrl()\r\n\t}\r\n\r\n\tasync setMfa () {\r\n\t\tif (!this.newAuthDetails) {\r\n\t\t\treturn\r\n\t\t}\r\n\r\n\t\ttry {\r\n\t\t\tawait api.setMfa(this.newAuthDetails)\r\n\t\t\tthis.mfaSetupOpen = false\r\n\t\t\tthis.loadAccountDetails()\r\n\r\n\t\t\tthis.$bvToast.toast(\"Two-Factor Authentication Added\", {\r\n\t\t\t\ttitle: \"Added\",\r\n\t\t\t\tvariant: \"success\",\r\n\t\t\t\tsolid: true,\r\n\t\t\t\tautoHideDelay: 5000\r\n\t\t\t})\r\n\t\t} catch (err) {\r\n\t\t\tthis.error = err\r\n\t\t}\r\n\t}\r\n\r\n\tasync removeMfa () {\r\n\t\tif (!this.localAuthCode) {\r\n\t\t\treturn\r\n\t\t}\r\n\r\n\t\ttry {\r\n\t\t\tawait api.removeMfa({\r\n\t\t\t\tauthCode: this.localAuthCode\r\n\t\t\t})\r\n\t\t\tthis.mfaSetupOpen = false\r\n\t\t\tthis.loadAccountDetails()\r\n\r\n\t\t\tthis.$bvToast.toast(\"Two-Factor Authentication Removed\", {\r\n\t\t\t\ttitle: \"Removed\",\r\n\t\t\t\tvariant: \"success\",\r\n\t\t\t\tsolid: true,\r\n\t\t\t\tautoHideDelay: 5000\r\n\t\t\t})\r\n\t\t} catch (err) {\r\n\t\t\tthis.error = err\r\n\t\t}\r\n\t}\r\n\r\n\tshowMfaForm () {\r\n\t\tif (this.accountDetails && this.accountDetails.isSuiteUser) {\r\n\t\t\twindow.location.href = this.redirectMFAUrl + \"?page=\" + encodeURIComponent(window.location.href)\r\n\t\t} else {\r\n\t\t\tthis.mfaSetupOpen = true\r\n\t\t}\r\n\t}\r\n}\r\n\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AccountSetup.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AccountSetup.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./AccountSetup.vue?vue&type=template&id=44f5efdc&\"\nimport script from \"./AccountSetup.vue?vue&type=script&lang=ts&\"\nexport * from \"./AccountSetup.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/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","\r\nimport { Component, Vue, Watch } from \"vue-property-decorator\"\r\nimport { Getter, Action } from \"vuex-class\"\r\n\r\n// @ts-ignore\r\nimport VuePerfectScrollbar from \"vue-perfect-scrollbar\"\r\nimport SkeletonLoader from \"@/components/SkeletonLoader.vue\"\r\nimport AccountSetup from \"@/components/Login/AccountSetup.vue\"\r\nimport UserProfilePicture from \"@/components/Account/UserProfilePicture.vue\"\r\n\r\nimport api from \"@/services/api\"\r\nimport User, { CurrentUser } from \"../types/user\"\r\nimport { Case } from \"@/types\"\r\nimport { UserStatus } from \"@/types/userStatus\"\r\nimport vSelect from \"vue-select\"\r\nimport PageWrapper from \"@/components/New/Page/PageWrapper.vue\"\r\n\r\n@Component({\r\n\tcomponents: {\r\n\t\t\"page\": PageWrapper,\r\n\t\t\"skeleton\": SkeletonLoader,\r\n\t\t\"scrollbar\": VuePerfectScrollbar,\r\n\t\t\"v-select\": vSelect,\r\n\t\t\"account-setup\": AccountSetup,\r\n\t\t\"user-profile-picture\": UserProfilePicture\r\n\t}\r\n})\r\nexport default class UserProfile extends Vue {\r\n\t@Getter(\"getMe\") public me!: CurrentUser;\r\n\r\n\t@Getter(\"getAvailableUserStatuses\") public availableUserStatuses!: UserStatus[];\r\n\r\n\t@Action(\"setCurrentUserStatus\")\r\n\tprivate setCurrentUserStatus!: (userStatus: UserStatus) => Promise;\r\n\r\n\t@Action(\"clearCurrentUserStatus\")\r\n\tprivate clearCurrentUserStatus!: () => Promise;\r\n\r\n\t@Action(\"loadAvailableUserStatuses\")\r\n\tprivate loadAvailableUserStatuses!: () => Promise;\r\n\r\n\tprivate userDetails: User | null = null;\r\n\tprivate activeUserCases: Case[] | null = null;\r\n\tprivate userCases: Case[] | null = null;\r\n\r\n\tprivate pageCount: number = 0;\r\n\tprivate resultsCount: number = 0;\r\n\tprivate pageNumber: number = 1;\r\n\tprivate perPage: number = 50;\r\n\r\n\tprivate caseSearchOptions: any[] = [\r\n\t\t{ text: \"Assigned\", value: false },\r\n\t\t{ text: \"Collaborating\", value: true }\r\n\t];\r\n\tprivate caseSearchOption = false;\r\n\r\n\t/**\r\n\t * Current user ID from params\r\n\t */\r\n\tpublic get userId (): string {\r\n\t\treturn this.$route.params.userId\r\n\t}\r\n\r\n\t/**\r\n\t * Columns for cases tables\r\n\t */\r\n\tpublic get casesColumns (): any[] {\r\n\t\treturn [\r\n\t\t\t{\r\n\t\t\t\tkey: \"caseNumber\",\r\n\t\t\t\tlabel: \"Case #\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tkey: \"title\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tkey: \"templateTitle\",\r\n\t\t\t\tlabel: \"Template\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tkey: \"areas\"\r\n\t\t\t}\r\n\t\t]\r\n\t}\r\n\r\n\t/**\r\n\t * List of active cases - filtered to assignee if caseSearchOption is false\r\n\t */\r\n\tpublic get activeCases (): Case[] | null {\r\n\t\tif (this.caseSearchOption || !this.activeUserCases) {\r\n\t\t\treturn this.activeUserCases\r\n\t\t}\r\n\r\n\t\treturn this.activeUserCases!.filter(activeCase => activeCase.assigneeId === this.userId)\r\n\t}\r\n\r\n\tprivate get isMe (): boolean {\r\n\t\treturn this.me && this.userId === this.me.id\r\n\t}\r\n\r\n\t/**\r\n\t * On user ID change, update user\r\n\t */\r\n\t@Watch(\"userId\")\r\n\tpublic onUserIdChanged () {\r\n\t\tthis.userDetails = null\r\n\t\tif (this.userId) {\r\n\t\t\tthis.loadUser()\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * On mount, get user details\r\n\t */\r\n\tpublic async mounted () {\r\n\t\tif (this.userId) {\r\n\t\t\tawait this.loadUser()\r\n\t\t}\r\n\r\n\t\tthis.loadAvailableUserStatuses()\r\n\t}\r\n\r\n\t/**\r\n\t * Fetch user details for current user ID\r\n\t */\r\n\tpublic async loadUser () {\r\n\t\tthis.userDetails = await api.userDetails(this.userId)\r\n\t\tthis.search()\r\n\t}\r\n\r\n\t/**\r\n\t * Go to case\r\n\t */\r\n\tpublic gotoCase (caseToGoTo: Case): void {\r\n\t\tthis.$router.push({ path: `/cases/${caseToGoTo.caseNumber}` })\r\n\t}\r\n\r\n\tpublic search () {\r\n\t\tthis.pageNumber = 1\r\n\r\n\t\tapi.userCases(this.userId, this.caseSearchOption, false, 1)\r\n\t\t\t.then(records => this.activeUserCases = records.data)\r\n\t\tapi.userCases(this.userId, this.caseSearchOption, true, 1)\r\n\t\t\t.then(records => {\r\n\t\t\t\tthis.userCases = records.data\r\n\t\t\t\tthis.pageCount = records.pageCount\r\n\t\t\t\tthis.resultsCount = records.totalItems\r\n\t\t\t})\r\n\t}\r\n\r\n\tpublic get userHasSetStatusPermission () : boolean {\r\n\t\treturn !!(this.me &&\r\n\t\t\tthis.me.extendedPermissions &&\r\n\t\t\tthis.me.extendedPermissions[\"setOtherUsersStatus\"])\r\n\t}\r\n\r\n\tprivate async userStatusChanged (userId: string, userStatus: UserStatus) {\r\n\t\tif (this.userDetails) {\r\n\t\t\tthis.userDetails.currentStatus = userStatus\r\n\t\t}\r\n\r\n\t\tif (userId === this.me.id) {\r\n\t\t\tif (userStatus) {\r\n\t\t\t\tawait this.setCurrentUserStatus(userStatus)\r\n\t\t\t} else {\r\n\t\t\t\tawait this.clearCurrentUserStatus()\r\n\t\t\t}\r\n\t\t\treturn\r\n\t\t}\r\n\r\n\t\tif (userStatus) {\r\n\t\t\tawait api.setUserStatus(userId, userStatus.id!)\r\n\t\t} else {\r\n\t\t\tawait api.clearUserStatus(userId)\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @summary Handler which clears the picture URL in our user details.\r\n\t */\r\n\tprivate onUserPictureUpdated () {\r\n\t\tthis.userDetails!.pictureUrl = null\r\n\t}\r\n}\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--13-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserProfile.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--13-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserProfile.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./UserProfile.vue?vue&type=template&id=7498d98b&\"\nimport script from \"./UserProfile.vue?vue&type=script&lang=ts&\"\nexport * from \"./UserProfile.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('page',[_c('div',{staticClass:\"p-3\"},[_c('subscription-card')],1)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\nimport { Component, Vue } from \"vue-property-decorator\"\r\n\r\n@Component({\r\n\tcomponents: {\r\n\t\t\"page\": () => import(\"@/components/Page.vue\"),\r\n\t\t\"subscription-card\": () =>\r\n\t\t\timport(\"@/components/Organization/SubscriptionCard.vue\")\r\n\t}\r\n})\r\nexport default class Organization extends Vue {\r\n\t/**\r\n\t * On mount, get organization page.\r\n\t */\r\n\tpublic mounted (): void {\r\n\t}\r\n}\r\n\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--13-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Organization.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--13-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Organization.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Organization.vue?vue&type=template&id=d01725f4&scoped=true&\"\nimport script from \"./Organization.vue?vue&type=script&lang=ts&\"\nexport * from \"./Organization.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"d01725f4\",\n null\n \n)\n\nexport default component.exports","import store, { BaseState } from \"@/store\"\r\nimport { NavigationGuardNext, Route } from \"vue-router\"\r\nimport { Store } from \"vuex\"\r\nimport { LoginState } from \"@/types\"\r\n\r\nlet refreshPromise: Promise | null = null\r\n\r\n/**\r\n * Refreshes the user object in the store if it is not set\r\n * This ensures if we open in a new tab it will load the user, so we can check if v2 is enabled\r\n * Does not refresh the user if we're going to the login route as it would cause infinite redirects\r\n * @param to The 'to' location provided by the router.\r\n * @param vuexStore An implementation of the vuex store\r\n */\r\nasync function refreshUserInfo (to: Route, vuexStore: Store) {\r\n\t// If we're explicitly not logged in (i.e. not waiting for user to select tenant etc.) & trying to access a logged in route\r\n\tif (vuexStore.state.loginState === LoginState.NotLoggedIn && to.name !== \"home\" && to.name !== \"login\") {\r\n\t\t// If we've not called the action yet, call it\r\n\t\t// If it's already been called, wait for the original action to return rather than calling it again\r\n\t\tif (refreshPromise == null) {\r\n\t\t\trefreshPromise = vuexStore.dispatch(\"refreshUserInfo\")\r\n\t\t}\r\n\r\n\t\tawait refreshPromise\r\n\t\trefreshPromise = null\r\n\t}\r\n}\r\n\r\n/**\r\n * @summary Navigation guard which redirects users to the dashboard, if they do not have permission to view a page\r\n * @param to The 'to' location provided by the router.\r\n * @param _from The 'from' location provided by the router.\r\n * @param next The router 'next' hook.\r\n * @param permission The permission to look for on the user, will search the user object & user.extendedPermissions for that value\r\n * @param vuexStore An implementation of the vuex store (default actual vuex store)\r\n */\r\nasync function hasPermission (to: Route, _from: Route, next: NavigationGuardNext, permission: string, vuexStore: Store = store) {\r\n\tawait refreshUserInfo(to, vuexStore)\r\n\tconst me = vuexStore?.state?.me\r\n\t// @ts-ignore TODO fix indexing type\r\n\tconst hasPermission = !!me[permission] || !!me?.extendedPermissions[permission]\r\n\r\n\tif (!hasPermission) {\r\n\t\tconsole.error(\"You do not have permission to view this page. Redirecting to dashboard\")\r\n\t\tnext({ name: \"dashboard\" })\r\n\t} else {\r\n\t\tnext()\r\n\t}\r\n}\r\n\r\nexport { hasPermission }\r\n","import VueRouter, { NavigationGuardNext, Route } from \"vue-router\"\r\n\r\nimport Dashboard from \"../views/Dashboard.vue\"\r\nimport Login from \"../views/Login.vue\"\r\nimport SignUp from \"../views/Signup.vue\"\r\nimport Account from \"../views/Account.vue\"\r\nimport Search from \"../views/Search.vue\"\r\nimport UserProfile from \"../views/UserProfile.vue\"\r\nimport Organization from \"../views/Organization.vue\"\r\nimport { hasPermission } from \"./guards\"\r\n\r\nconst routes = [\r\n\t{\r\n\t\tpath: \"/\",\r\n\t\tname: \"home\",\r\n\t\tmeta: {\r\n\t\t\ticon: \"fa-home\"\r\n\t\t},\r\n\t\tredirect: \"/login\"\r\n\t},\r\n\t{\r\n\t\tpath: \"/login\",\r\n\t\tname: \"login\",\r\n\t\tcomponent: Login,\r\n\t\tmeta: {\r\n\t\t\tallowAnon: true,\r\n\t\t\tforceTheme: true\r\n\t\t}\r\n\t},\r\n\t{\r\n\t\tpath: \"/signup\",\r\n\t\tname: \"signup\",\r\n\t\tcomponent: SignUp,\r\n\t\tmeta: {\r\n\t\t\tallowAnon: true,\r\n\t\t\ticon: \"fas fa-user-plus\",\r\n\t\t\tbreadcrumb: \"Signup\"\r\n\t\t}\r\n\t},\r\n\t{\r\n\t\tpath: \"/dashboard\",\r\n\t\tname: \"dashboard\",\r\n\t\tcomponent: Dashboard,\r\n\t\tmeta: {\r\n\t\t\ticon: \"fas fa-tachometer-alt\",\r\n\t\t\tbreadcrumb: \"Dashboard\"\r\n\t\t}\r\n\t},\r\n\t{\r\n\t\tpath: \"/cases\",\r\n\t\tname: \"overview\",\r\n\t\tcomponent: () => import(\"@/views/CasesOverview.vue\"),\r\n\t\tmeta: {\r\n\t\t\ticon: \"fa-newspaper\",\r\n\t\t\tbreadcrumb: \"Overview\"\r\n\t\t}\r\n\t},\r\n\t{\r\n\t\tpath: \"/cases/:caseNumber\",\r\n\t\tname: \"case\",\r\n\t\tcomponent: () => import(\"@/views/CaseDetails.vue\"),\r\n\t\tmeta: {\r\n\t\t\tbreadcrumb: \"Case\"\r\n\t\t}\r\n\t},\r\n\t{\r\n\t\tpath: \"/cases/restricted/:caseNumber\",\r\n\t\tname: \"restricted-cases\",\r\n\t\tcomponent: () => import(\"@/views/RestrictedCaseDetails.vue\"),\r\n\t\tmeta: {\r\n\t\t\tbreadcrumb: \"Restricted Cases\"\r\n\t\t}\r\n\t},\r\n\t{\r\n\t\tpath: \"/account\",\r\n\t\tname: \"account\",\r\n\t\tcomponent: Account,\r\n\t\tmeta: {\r\n\t\t\tbreadcrumb: \"Account\"\r\n\t\t}\r\n\t},\r\n\t{\r\n\t\tpath: \"/configuration\",\r\n\t\tname: \"configuration\",\r\n\t\tcomponent: () => import(\"@/views/Configuration.vue\"),\r\n\t\tmeta: {\r\n\t\t\ticon: \"fa-cog\",\r\n\t\t\tbreadcrumb: \"Configuration\"\r\n\t\t}\r\n\t},\r\n\t{\r\n\t\tpath: \"/users\",\r\n\t\tname: \"users\",\r\n\t\tcomponent: () => import(\"@/views/Users.vue\"),\r\n\t\tbeforeEnter: (to: Route, from: Route, next: NavigationGuardNext) => hasPermission(to, from, next, \"editData\"),\r\n\t\tmeta: {\r\n\t\t\ticon: \"fa-cog\",\r\n\t\t\tbreadcrumb: \"Users\"\r\n\t\t}\r\n\t},\r\n\t{\r\n\t\tpath: \"/insights\",\r\n\t\tname: \"insights\",\r\n\t\tcomponent: () => import(\"@/views/Insights.vue\"),\r\n\t\tmeta: {\r\n\t\t\ticon: \"fa-cog\",\r\n\t\t\tbreadcrumb: \"Insights\"\r\n\t\t}\r\n\t},\r\n\t{\r\n\t\tpath: \"/integrations\",\r\n\t\tname: \"integrations\",\r\n\t\tcomponent: () => import(\"@/views/Integrations.vue\"),\r\n\t\tmeta: {\r\n\t\t\ticon: \"fa-cog\",\r\n\t\t\tbreadcrumb: \"Integrations\"\r\n\t\t}\r\n\t},\r\n\t{\r\n\t\tpath: \"/scheduling\",\r\n\t\tname: \"scheduling\",\r\n\t\tcomponent: () => import(\"@/views/Scheduling.vue\"),\r\n\t\tbeforeEnter: (to: Route, from: Route, next: NavigationGuardNext) => hasPermission(to, from, next, \"scheduling\"),\r\n\t\tmeta: {\r\n\t\t\ticon: \"fa-calendar\",\r\n\t\t\tbreadcrumb: \"Scheduling\"\r\n\t\t}\r\n\t},\r\n\t{\r\n\t\tpath: \"/userprofile/:userId\",\r\n\t\tname: \"userprofile\",\r\n\t\tcomponent: UserProfile,\r\n\t\tmeta: {\r\n\t\t\ticon: \"fa-cog\",\r\n\t\t\tbreadcrumb: \"User Profile\"\r\n\t\t}\r\n\t},\r\n\t{\r\n\t\tpath: \"/organization\",\r\n\t\tname: \"organization\",\r\n\t\tcomponent: Organization,\r\n\t\tmeta: {\r\n\t\t\ticon: \"fa-cog\",\r\n\t\t\tbreadcrumb: \"Organization\"\r\n\t\t}\r\n\t},\r\n\t{\r\n\t\tpath: \"/search\",\r\n\t\tname: \"search\",\r\n\t\tcomponent: Search,\r\n\t\tmeta: {\r\n\t\t\ticon: \"fa-cog\",\r\n\t\t\tbreadcrumb: \"Search\"\r\n\t\t}\r\n\t},\r\n\t{\r\n\t\tpath: \"/system\",\r\n\t\tname: \"system\",\r\n\t\tcomponent: () => import(\"@/views/System.vue\"),\r\n\t\tmeta: {\r\n\t\t\ticon: \"fa-cog\",\r\n\t\t\tbreadcrumb: \"System\"\r\n\t\t}\r\n\t},\r\n\t{\r\n\t\t// handle a non-existing route - redirect to root route\r\n\t\tpath: \"*\",\r\n\t\tredirect: \"/login\"\r\n\t}\r\n]\r\n\r\nconst router = new VueRouter({\r\n\tbase: process.env.BASE_URL,\r\n\troutes\r\n})\r\n\r\nexport default router\r\n","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RichTextEditor.vue?vue&type=style&index=0&id=424bdd58&prod&lang=scss&scoped=true&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.screenWidth >= 800 && _vm.me)?_c('div',{staticClass:\"d-inline\"},[_c('b-dropdown',{ref:\"notificationsDropdown\",attrs:{\"right\":\"\",\"no-caret\":\"\",\"variant\":\"link\",\"data-cy\":\"notifications-menu-dropdown-notifications-dropdown\"},scopedSlots:_vm._u([{key:\"button-content\",fn:function(){return [_c('b-button',{staticClass:\"link m-l-10 m-r-10 p-0 notifications\",class:{ 'has-notifications' : _vm.currentNotifications.length > 0 },attrs:{\"data-cy\":\"notification-list-button\",\"title\":\"Notifications\"},on:{\"click\":_vm.notificationListOpened}},[_c('i',{staticClass:\"fas fa-lg fa-bell\"}),_c('span',{staticClass:\"badge badge-pill badge-danger\"},[_vm._v(\" \"+_vm._s(_vm.currentNotifications.length)+\" \")])])]},proxy:true}],null,false,4132262875)},[(!_vm.browserNotificationsPermissionEnabled)?_c('b-dropdown-item',{attrs:{\"data-cy\":\"enable-notifications-button\"},on:{\"click\":function($event){$event.stopPropagation();$event.preventDefault();return _vm.enableBrowserNotifications($event)}}},[_c('label',{staticClass:\"header-label d-inline\"},[_vm._v(\"Enable Notifications\")])]):_vm._e(),(!_vm.browserNotificationsPermissionEnabled)?_c('b-dropdown-divider'):_vm._e(),_c('b-dropdown-item',[_c('b-row',{staticClass:\"align-items-center\"},[_c('b-col',[_c('label',{staticClass:\"header-label d-inline\",attrs:{\"data-cy\":\"notifications-button\"}},[_vm._v(\"Notifications\")])]),_c('b-col',{staticClass:\"text-right\"},[(_vm.currentNotifications && _vm.currentNotifications.length)?_c('b-button',{staticClass:\"clear-all-notifications-button\",attrs:{\"data-cy\":\"clear-all-notifications-button\"},on:{\"click\":function($event){$event.stopPropagation();$event.preventDefault();return _vm.clearAllNotifications($event)}}},[_vm._v(\" Clear All \")]):_vm._e()],1)],1)],1),_c('b-dropdown-divider'),_c('scrollbar',[_c('div',{staticClass:\"notification-list-wrapper\"},[(_vm.currentNotifications.length > 0)?_c('div',_vm._l((_vm.currentNotifications),function(notification,index){return _c('b-dropdown-item',{key:notification.id,staticClass:\"notification-item\",attrs:{\"data-cy\":(\"notification-item-\" + (notification.id))},on:{\"click\":function($event){$event.stopPropagation();$event.preventDefault();return _vm.notificationSelected(notification)}}},[_c('span',{staticClass:\"header-label\"},[_vm._v(\" \"+_vm._s(notification.title)+\" \")]),_c('span',[_vm._v(\" \"+_vm._s(notification.message)+\" \")]),_c('span',{staticClass:\"header-label\"},[_vm._v(\" \"+_vm._s(_vm.notificationTimePeriods[index])+\" \")]),_c('b-dropdown-divider')],1)}),1):_c('b-dropdown-text',[_vm._v(\" No new notifications \")])],1)])],1)],1):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { Component, Vue, Ref } from \"vue-property-decorator\"\r\nimport { CasesNotification } from \"@/types\"\r\nimport { Getter, Action, State } from \"vuex-class\"\r\nimport moment from \"moment\"\r\nimport { BDropdown } from \"bootstrap-vue\"\r\nimport VuePerfectScrollbar from \"vue-perfect-scrollbar\"\r\nimport { BaseState } from \"@/store\"\r\nimport { CurrentUser } from \"@/types/user\"\r\n\r\n\t@Component({\r\n\t\tcomponents: {\r\n\t\t\t\"scrollbar\": VuePerfectScrollbar\r\n\t\t}\r\n\t})\r\nexport default class BaseNotificationsMenu extends Vue {\r\n\t\t@State((state: BaseState) => state.screenWidth)\tprivate screenWidth!: number;\r\n\t\t@State((state: BaseState) => state.me) private me!: CurrentUser;\r\n\r\n\t\t@Getter(\"getNotifications\") public currentNotifications!: CasesNotification[];\r\n\t\t@Getter(\"getBrowserNotificationsPermission\") public browserNotificationsEnabled!: boolean;\r\n\r\n\t\t@Action requestBrowserNotificationsPermission!: () => void;\r\n\t\t@Action processNotification!: (notification: CasesNotification) => void;\r\n\t\t@Action clearAllNotifications!: () => void;\r\n\r\n\t\t@Ref() notificationsDropdown!: BDropdown;\r\n\r\n\t\tpublic notificationTimePeriods: string[] = [];\r\n\r\n\t\t/**\r\n\t\t * Gets a human-readable version of the time elapsed since the notification was created\r\n\t\t * Gives only the most significant time (e.g. seconds, minutes, hours & days)\r\n\t\t * @param notification The notification to create the time elapsed message for\r\n\t\t */\r\n\t\tpublic timeElapsedNotification (notification: CasesNotification): string {\r\n\t\t\tconst notificationTime = new Date(moment(notification.created).format(\"l LTS\"))\r\n\t\t\tconst timeDifference = Date.now() - notificationTime.getTime()\r\n\r\n\t\t\tlet days = Math.floor(timeDifference / (1000 * 60 * 60 * 24))\r\n\t\t\tlet hours = Math.floor(Math.abs(timeDifference) / (1000 * 60 * 60) % 24)\r\n\t\t\tlet minutes = Math.floor(Math.abs(timeDifference) / (1000 * 60) % 60)\r\n\t\t\tlet seconds = Math.ceil(Math.abs(timeDifference) / (1000) % 60)\r\n\r\n\t\t\tlet timeMessage = \"\"\r\n\t\t\tif (days === 1) {\r\n\t\t\t\ttimeMessage = `${days} day`\r\n\t\t\t} else if (days > 1) {\r\n\t\t\t\ttimeMessage = `${days} days`\r\n\t\t\t} else if (hours === 1) {\r\n\t\t\t\ttimeMessage = `${hours} hour`\r\n\t\t\t} else if (hours > 1) {\r\n\t\t\t\ttimeMessage = `${hours} hours`\r\n\t\t\t} else if (minutes === 1) {\r\n\t\t\t\ttimeMessage = `${minutes} minute`\r\n\t\t\t} else if (minutes > 1) {\r\n\t\t\t\ttimeMessage = `${minutes} minutes`\r\n\t\t\t} else if (seconds === 1) {\r\n\t\t\t\ttimeMessage = `${seconds} second`\r\n\t\t\t} else if (seconds > 1) {\r\n\t\t\t\ttimeMessage = `${seconds} seconds`\r\n\t\t\t} else {\r\n\t\t\t\treturn \"Just now\"\r\n\t\t\t}\r\n\r\n\t\t\treturn `${timeMessage} ago`\r\n\t\t}\r\n\r\n\t\tprivate notificationListOpened (): void {\r\n\t\t\tthis.notificationTimePeriods = []\r\n\t\t\tlet notifications: CasesNotification[] = this.currentNotifications\r\n\t\t\tnotifications.forEach((notification) => {\r\n\t\t\t\tthis.notificationTimePeriods.push(this.timeElapsedNotification(notification))\r\n\t\t\t})\r\n\t\t}\r\n\r\n\t\tprivate get browserNotificationsPermissionEnabled (): boolean {\r\n\t\t\treturn this.browserNotificationsEnabled\r\n\t\t}\r\n\r\n\t\tprivate enableBrowserNotifications (): void {\r\n\t\t\tthis.requestBrowserNotificationsPermission()\r\n\t\t}\r\n\r\n\t\tprivate notificationSelected (notification: CasesNotification): void {\r\n\t\t\tthis.processNotification(notification)\r\n\t\t\tthis.notificationsDropdown.hide(true)\r\n\t\t}\r\n\r\n\t\tprivate onClearAllNotifications (): void {\r\n\t\t\tthis.clearAllNotifications()\r\n\t\t\tthis.notificationsDropdown.hide(true)\r\n\t\t}\r\n}\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BaseNotificationsMenu.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BaseNotificationsMenu.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./BaseNotificationsMenu.vue?vue&type=template&id=1b99d12f&scoped=true&\"\nimport script from \"./BaseNotificationsMenu.vue?vue&type=script&lang=ts&\"\nexport * from \"./BaseNotificationsMenu.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./BaseNotificationsMenu.vue?vue&type=style&index=0&id=1b99d12f&prod&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"1b99d12f\",\n null\n \n)\n\nexport default component.exports","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SureViewIcon.vue?vue&type=style&index=0&id=53129c56&prod&scoped=true&lang=css&\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./GlobalSearch.vue?vue&type=style&index=0&id=6a8486d0&prod&lang=scss&\"","export enum HideableLoginOptions {\r\n\tLogo = \"logo\",\r\n\tSso = \"sso\",\r\n\tForgotPassword = \"forgotPassword\",\r\n\tSignup = \"signUp\",\r\n}\r\n\r\nexport interface TenantDomain {\r\n\tid: string | null\r\n\tdomainPath: string\r\n\tsamlProviders: SamlProvider[]\r\n\thasImage?: boolean\r\n\ttenantId?: string | null\r\n\tloginOptions?: DomainLoginOptions | null\r\n}\r\n\r\nexport interface DomainLoginOptions {\r\n\tshowSsoBelowLogin: boolean\r\n\thiddenElements: HideableLoginOptions[]\r\n}\r\n\r\nexport interface SamlProvider {\r\n\tkey: string\r\n\ttitle: string\r\n\tissuer: string\r\n\tloginUrl: string\r\n\tmetaDataUrl: string\r\n\tlogoutUrl: string\r\n\tproviderTokenEndpoint: string\r\n\tproviderClientSecret: string\r\n\tallowCreate: boolean\r\n\r\n\troleClaim: string | null\r\n\trequiredRole: string\r\n\tteamRoles: { [role: string]: string[] }\r\n\r\n\tautoLogin: boolean\r\n\r\n\tredirectUrl?: string\r\n}\r\n\r\nexport interface LoginDomain {\r\n\ttenantId: string\r\n\tsamlProviders: SamlUrl[]\r\n\tshowSsoBelowLogin: boolean\r\n\thiddenElements: HideableLoginOptions[]\r\n}\r\n\r\nexport interface SamlUrl {\r\n\tkey: string\r\n\ttitle: string\r\n\turl: string | null\r\n\terror: string | null\r\n\tautoLogin: boolean\r\n}\r\n","export enum NotificationType {\r\n\tGeneral,\r\n\tRecordAssignedToUser,\r\n\tRecordUpdatedByAnotherUser\r\n}\r\n\r\nexport interface CasesNotification {\r\n\tid: string;\r\n\tcreated: Date;\r\n\ttype: NotificationType;\r\n\ttitle: string;\r\n\tmessage: string;\r\n\tdata: any;\r\n\ttargetId: string;\r\n\tsentDateTime: Date | null;\r\n}\r\n","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DashboardGlobalParameters.vue?vue&type=style&index=0&id=57d282d0&prod&lang=scss&scoped=true&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Label.vue?vue&type=style&index=0&id=b48d6df6&prod&scoped=true&lang=scss&\"","export {}\r\n\r\ndeclare global {\r\n\tinterface Array {\r\n\t\ttoDictionary(key: keyof T): { [key: string]: T };\r\n\t\ttoDictionaryMap(keyFunction: (item: T) => string): { [key: string]: T };\r\n\t\ttoDictionaryMapValue(keyFunction: (item: T) => string, valueFunction: (item: T) => TV): { [key: string]: TV };\r\n\r\n\t\tremove(removeItem: T): void;\r\n\t\tremoveWhere(removeFunction: (item: T) => boolean): void;\r\n\t\tfirstOrDefault(where: (item: T) => boolean): T;\r\n\r\n\t\t/*\r\n\t\t* Sorts arrray by key (Optionally descending)\r\n\t\t*/\r\n\t\tsortBy(key: keyof T, desc?: boolean): T[];\r\n\r\n\t\t/*\r\n\t\t* Sorts arrray by value property on key object (Optionally descending)\r\n\t\t*/\r\n\t\tsortByValue(key: keyof T, desc?: boolean): T[];\r\n\r\n\t\t/*\r\n\t\t* Sorts arrray by key (Optionally descending)\r\n\t\t*/\r\n\t\tsortByThen({ key, desc }: { key: keyof T, desc?: boolean },\r\n\t\t\t{ thenKey, thenDesc }: { thenKey: keyof T, thenDesc?: boolean }): T[];\r\n\r\n\t\t/*\r\n\t\t* Creates new array with only distinct members of other array\r\n\t\t*/\r\n\t\tdistinct(key?: keyof T | null): T[];\r\n\r\n\t\t/**\r\n\t\t * Find item and pull member\r\n\t\t * @param predicate Predicate to find item\r\n\t\t * @param get Function to pull value\r\n\t\t */\r\n\t\tfindAndGet(predicate: (item: T) => boolean, get: (item: T) => TV, defaultValue: TV): TV;\r\n\t}\r\n}\r\n\r\nif (!Array.prototype.toDictionary) {\r\n\tArray.prototype.toDictionary = function toDictionary (key: keyof T) {\r\n\t\tconst dictionary: any = {}\r\n\t\tfor (let i = 0; i < this.length; i++) {\r\n\t\t\tconst keyValue = this[i][key]\r\n\t\t\tdictionary[keyValue] = this[i]\r\n\t\t}\r\n\t\treturn dictionary as { [key: string]: T }\r\n\t}\r\n}\r\n\r\nif (!Array.prototype.toDictionaryMap) {\r\n\tArray.prototype.toDictionaryMap = function toDictionaryMap (keyFunction: (item: T) => string): { [key: string]: T } {\r\n\t\treturn this.toDictionaryMapValue(keyFunction, v => v)\r\n\t}\r\n\r\n\tArray.prototype.toDictionaryMapValue = function toDictionaryMap (keyFunction: (item: T) => string, valueFunction: (item: T) => TV): { [key: string]: TV } {\r\n\t\tconst dictionary: any = {}\r\n\t\tfor (let i = 0; i < this.length; i++) {\r\n\t\t\tconst keyValue = keyFunction(this[i])\r\n\t\t\tdictionary[keyValue] = valueFunction(this[i])\r\n\t\t}\r\n\t\treturn dictionary as { [key: string]: TV }\r\n\t}\r\n}\r\n\r\nif (!Array.prototype.sortBy) {\r\n\tArray.prototype.sortBy = function sortBy (this: T[], key: keyof T, desc: boolean = false): T[] {\r\n\t\treturn this.sort((a: T, b: T) => {\r\n\t\t\tconst aValue = a[key] as any\r\n\t\t\tconst bValue = b[key] as any\r\n\r\n\t\t\tif (typeof aValue === \"string\" && typeof bValue === \"string\") {\r\n\t\t\t\tconst compare = aValue.localeCompare(bValue)\r\n\t\t\t\treturn desc ? compare * -1 : compare\r\n\t\t\t} else if (typeof aValue === \"string\") {\r\n\t\t\t\treturn desc ? -1 : 1\r\n\t\t\t} else if (typeof bValue === \"string\") {\r\n\t\t\t\treturn desc ? 1 : -1\r\n\t\t\t} else {\r\n\t\t\t\tif (desc) {\r\n\t\t\t\t\treturn bValue - aValue\r\n\t\t\t\t} else {\r\n\t\t\t\t\treturn aValue - bValue\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t})\r\n\t}\r\n}\r\n\r\nif (!Array.prototype.sortByValue) {\r\n\tArray.prototype.sortByValue = function sortBy (this: T[], key: keyof T, desc: boolean = false): T[] {\r\n\t\treturn this.sort((a: T, b: T) => {\r\n\t\t\tlet aValue = (a[key] as any).value\r\n\t\t\tlet bValue = (b[key] as any).value\r\n\r\n\t\t\tif (typeof (aValue) === \"object\" && (a[key] as any).label !== null) {\r\n\t\t\t\taValue = (a[key] as any).label\r\n\t\t\t}\r\n\r\n\t\t\tif (typeof (bValue) === \"object\" && (b[key] as any).label !== null) {\r\n\t\t\t\tbValue = (b[key] as any).label\r\n\t\t\t}\r\n\r\n\t\t\tif (typeof aValue === \"string\" && typeof bValue === \"string\") {\r\n\t\t\t\tconst compare = aValue.localeCompare(bValue)\r\n\t\t\t\treturn desc ? compare * -1 : compare\r\n\t\t\t} else if (typeof aValue === \"string\") {\r\n\t\t\t\treturn desc ? -1 : 1\r\n\t\t\t} else if (typeof bValue === \"string\") {\r\n\t\t\t\treturn desc ? 1 : -1\r\n\t\t\t} else {\r\n\t\t\t\tif (desc) {\r\n\t\t\t\t\treturn bValue - aValue\r\n\t\t\t\t} else {\r\n\t\t\t\t\treturn aValue - bValue\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t})\r\n\t}\r\n}\r\n\r\nif (!Array.prototype.sortByThen) {\r\n\tArray.prototype.sortByThen = function sortByThen (this: T[], { key, desc }: { key: keyof T, desc?: boolean },\r\n\t\t{ thenKey, thenDesc }: { thenKey: keyof T, thenDesc?: boolean }): T[] {\r\n\t\treturn this.sort((a: T, b: T) => {\r\n\t\t\tconst aValue = a[key] as any\r\n\t\t\tconst bValue = b[key] as any\r\n\r\n\t\t\tif (typeof a[key] === \"string\") {\r\n\t\t\t\tlet compare = aValue.localeCompare(bValue)\r\n\r\n\t\t\t\tif (compare === 0) {\r\n\t\t\t\t\tconst aValueThen = a[thenKey] as any\r\n\t\t\t\t\tconst bValueThen = b[thenKey] as any\r\n\r\n\t\t\t\t\tcompare = aValueThen.localeCompare(bValueThen)\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn desc ? compare * -1 : compare\r\n\t\t\t} else {\r\n\t\t\t\tlet compare = aValue - bValue\r\n\r\n\t\t\t\tif (aValue === bValue) {\r\n\t\t\t\t\tconst aValueThen = a[thenKey] as any\r\n\t\t\t\t\tconst bValueThen = b[thenKey] as any\r\n\r\n\t\t\t\t\tcompare = aValueThen - bValueThen\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn desc ? compare * -1 : compare\r\n\t\t\t}\r\n\t\t})\r\n\t}\r\n}\r\n\r\nif (!Array.prototype.distinct) {\r\n\tArray.prototype.distinct = function distinct (this: T[], key: keyof T | null = null): T[] {\r\n\t\tconst newArray = []\r\n\t\tconst addedValues = new Set()\r\n\r\n\t\tvar i = 0\r\n\t\tif (key) {\r\n\t\t\twhile (i < this.length) {\r\n\t\t\t\tif (!addedValues.has(this[i][key])) {\r\n\t\t\t\t\taddedValues.add(this[i][key])\r\n\t\t\t\t\tnewArray.push(this[i])\r\n\t\t\t\t}\r\n\t\t\t\ti++\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\twhile (i < this.length) {\r\n\t\t\t\tif (!addedValues.has(this[i])) {\r\n\t\t\t\t\taddedValues.add(this[i])\r\n\t\t\t\t\tnewArray.push(this[i])\r\n\t\t\t\t}\r\n\t\t\t\ti++\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn newArray\r\n\t}\r\n}\r\n\r\nif (!Array.prototype.remove) {\r\n\tArray.prototype.remove = function remove (this: T[], removeItem: T): void {\r\n\t\tconst removeIndex = this.indexOf(removeItem)\r\n\t\tif (removeIndex > -1) {\r\n\t\t\tthis.splice(removeIndex, 1)\r\n\t\t}\r\n\t}\r\n}\r\n\r\nif (!Array.prototype.removeWhere) {\r\n\tArray.prototype.removeWhere = function removeWhere (this: T[], removeFunction: (item: T) => boolean): void {\r\n\t\tvar i = 0\r\n\t\twhile (i < this.length) {\r\n\t\t\tif (removeFunction(this[i])) {\r\n\t\t\t\tthis.splice(i, 1)\r\n\t\t\t} else {\r\n\t\t\t\t++i\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n}\r\n\r\nif (!Array.prototype.firstOrDefault) {\r\n\tArray.prototype.firstOrDefault = function T (this: T[], where: (item: T) => boolean): T | null {\r\n\t\tif (where) {\r\n\t\t\tvar i = 0\r\n\t\t\twhile (i < this.length) {\r\n\t\t\t\tif (where(this[i])) {\r\n\t\t\t\t\treturn this[i]\r\n\t\t\t\t}\r\n\t\t\t\ti++\r\n\t\t\t}\r\n\t\t\treturn null\r\n\t\t} else {\r\n\t\t\treturn this.length > 0 ? this[0] : null\r\n\t\t}\r\n\t}\r\n}\r\n\r\nif (!Array.prototype.findAndGet) {\r\n\tArray.prototype.findAndGet = function (this: T[], predicate: (item: T) => boolean, get: (item: T) => TV, defaultValue: TV): TV {\r\n\t\tconst item = this.find(predicate)\r\n\t\treturn item ? get(item) : defaultValue\r\n\t}\r\n}\r\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{class:_vm.includeTime ? 'date-time-control' : 'date-control'},[_c('div',{staticClass:\"d-flex align-items-center\",staticStyle:{\"min-width\":\"240px\"}},[_c('div',{staticStyle:{\"min-width\":\"0px\"}},[_c('div',{staticClass:\"d-inline-grid\"},[_c('div',{staticClass:\"date-block form-control d-inline-flex align-items-end\",class:{'is-invalid': _vm.dateIsInvalid && _vm.anyDateValue },attrs:{\"disabled\":_vm.readonly}},[_vm._l((_vm.dateParts),function(datePart,index){return [(index > 0)?_c('span',{key:datePart.key + index},[_vm._v(\"/\")]):_vm._e(),_c('div',{key:datePart.key,staticClass:\"form-group m-b-0\"},[_c('label',{attrs:{\"for\":datePart.key}},[_vm._v(_vm._s(datePart.label))]),_c('input',{ref:datePart.key,refInFor:true,staticClass:\"form-control unseen datetimeinput\",style:(datePart.styling),attrs:{\"type\":\"number\",\"data-cy\":datePart.key,\"disabled\":_vm.readonly,\"placeholder\":datePart.label},domProps:{\"value\":_vm.getValuePart(datePart.key)},on:{\"input\":function($event){return _vm.setValuePart(datePart.key, $event.target.value)},\"blur\":function($event){return _vm.updateDate()}}})])]})],2),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.includeTime),expression:\"includeTime\"}],staticClass:\"date-block form-control d-inline-flex align-items-end\",class:[{'is-invalid': _vm.timeIsInvalid && _vm.anyTimeValue }, {'hide': !_vm.includeTime}],staticStyle:{\"max-width\":\"250px\"},attrs:{\"data-cy\":\"time\",\"disabled\":_vm.readonly}},[_c('div',{staticClass:\"form-group m-b-0\"},[_c('label',{attrs:{\"for\":\"month\"}},[_vm._v(\"Hour\")]),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.hour),expression:\"hour\"}],ref:\"hour\",staticClass:\"form-control unseen datetimeinput timeinput\",attrs:{\"data-cy\":\"hour\",\"type\":\"number\",\"placeholder\":\"Hour\",\"disabled\":_vm.readonly},domProps:{\"value\":(_vm.hour)},on:{\"blur\":function($event){return _vm.updateDate()},\"input\":function($event){if($event.target.composing){ return; }_vm.hour=$event.target.value}}})]),_c('span',[_vm._v(\":\")]),_c('div',{staticClass:\"form-group m-b-0 \"},[_c('label',{attrs:{\"for\":\"month\"}},[_vm._v(\"Minute\")]),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.minute),expression:\"minute\"}],ref:\"minute\",staticClass:\"form-control unseen datetimeinput timeinput\",attrs:{\"data-cy\":\"minute\",\"type\":\"number\",\"placeholder\":\"Minute\",\"disabled\":_vm.readonly},domProps:{\"value\":(_vm.minute)},on:{\"blur\":function($event){return _vm.updateDate()},\"input\":function($event){if($event.target.composing){ return; }_vm.minute=$event.target.value}}})]),_c('v-select',{staticClass:\" unseen\",class:{'vs__readonly': _vm.readonly},attrs:{\"options\":_vm.ampmList,\"label\":\"AM/PM\",\"searchable\":false,\"clearable\":false,\"value-zone\":\"local\",\"noDrop\":_vm.readonly,\"placeholder\":\"AM/PM\"},on:{\"input\":function($event){return _vm.updateDate()}},model:{value:(_vm.ampm),callback:function ($$v) {_vm.ampm=$$v},expression:\"ampm\"}})],1)])]),(!_vm.readonly)?_c('a',{staticClass:\"fas fa-times fa-lg date-action-items m-l-10 d-print-none\",attrs:{\"title\":\"Clear\",\"data-cy\":\"clear-date\"},on:{\"click\":function($event){return _vm.clearDate()}}}):_vm._e()]),(!_vm.readonly)?_c('div',{staticClass:\"d-flex flex-wrap d-print-none\"},[_c('datetime',{ref:\"datePick\",staticClass:\"d-inline-block m-1\",attrs:{\"type\":_vm.includeTime ? 'datetime' : 'date',\"value\":_vm.dateValueISO,\"value-zone\":_vm.enterAsUTC ? 'utc' : 'local',\"zone\":_vm.enterAsUTC ? 'utc' : 'local',\"input-class\":\"hide\",\"use12-hour\":\"\"},on:{\"input\":_vm.setDate}},[_c('div',{attrs:{\"slot\":\"after\"},slot:\"after\"},[_c('a',{staticClass:\"btn btn-sm btn-primary\",on:{\"click\":function($event){return _vm.openCalender($event, 'datePick')}}},[_c('i',{staticClass:\"far fa-calendar-alt fa-lg date-action-items\"}),_vm._v(\" Pick Date \")])])]),(_vm.includeYesterday)?_c('a',{staticClass:\"btn btn-sm btn-primary m-1\",attrs:{\"data-cy\":\"yesterday\"},on:{\"click\":_vm.yesterday}},[_vm._v(\"Yesterday\")]):_vm._e(),(_vm.includeToday)?_c('a',{staticClass:\"btn btn-sm btn-primary m-1\",attrs:{\"data-cy\":\"today\"},on:{\"click\":_vm.today}},[_vm._v(\"Today\")]):_vm._e(),_c('a',{staticClass:\"btn btn-sm btn-primary m-1\",attrs:{\"data-cy\":\"tomorrow\"},on:{\"click\":_vm.tomorrow}},[_vm._v(\"Tomorrow\")])],1):_vm._e()])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { Component, Vue, Prop, Watch } from \"vue-property-decorator\"\r\n\r\nimport { get, set } from \"lodash\"\r\n\r\n// @ts-ignore\r\nimport { Datetime } from \"vue-datetime\"\r\nimport vSelect from \"vue-select\"\r\n\r\nimport moment from \"moment\"\r\n\r\n@Component({\r\n\tcomponents: {\r\n\t\t\"v-select\": vSelect,\r\n\t\t\"datetime\": Datetime\r\n\t}\r\n})\r\nexport default class DatePicker extends Vue {\r\n\t$refs!: {\r\n\t\tminute: HTMLInputElement,\r\n\t\thour: HTMLInputElement,\r\n\t\tday: HTMLInputElement[],\r\n\t\tmonth: HTMLInputElement[],\r\n\t\tyear: HTMLInputElement[]\r\n\t}\r\n\r\n\t@Prop()\r\n\tvalue!: string | Date | null;\r\n\r\n\t@Prop()\r\n\tincludeTime!: boolean;\r\n\r\n\t@Prop({ default: true })\r\n\tincludeYesterday!: boolean;\r\n\r\n\t@Prop({ default: true })\r\n\tincludeToday!: boolean;\r\n\r\n\t@Prop({ default: false })\r\n\treadonly!: boolean;\r\n\r\n\t@Prop({ default: true })\r\n\tconvertDatesToUTC!: boolean;\r\n\r\n\t@Prop({ default: false })\r\n\tenterAsUTC!: boolean;\r\n\r\n\tpublic dateValueParsed: Date | null = null;\r\n\tpublic dateValueISO: string | null = null;\r\n\r\n\tpublic dateParts: any[] = [];\r\n\r\n\tampm: any = null;\r\n\tampmList = [\"AM\", \"PM\"];\r\n\r\n\tyear: string = \"\";\r\n\tmonth: string = \"\";\r\n\tday: string = \"\";\r\n\thour: string = \"\";\r\n\tminute: string = \"\";\r\n\r\n\tdateIsInvalid: boolean = false;\r\n\ttimeIsInvalid: boolean = false;\r\n\r\n\tmounted () {\r\n\t\tthis.dateParts = [\r\n\t\t\t{\r\n\t\t\t\tkey: \"day\",\r\n\t\t\t\tlabel: \"Day\",\r\n\t\t\t\tformatPart: \"d\",\r\n\t\t\t\torder: 1,\r\n\t\t\t\tstyling: \"min-width: 50px\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tkey: \"month\",\r\n\t\t\t\tlabel: \"Month\",\r\n\t\t\t\tformatPart: \"m\",\r\n\t\t\t\torder: 2,\r\n\t\t\t\tstyling: \"min-width: 50px\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tkey: \"year\",\r\n\t\t\t\tlabel: \"Year\",\r\n\t\t\t\tformatPart: \"y\",\r\n\t\t\t\torder: 3,\r\n\t\t\t\tstyling: \"min-width: 50px\"\r\n\t\t\t}\r\n\t\t]\r\n\r\n\t\tthis.setValue(this.value)\r\n\r\n\t\t// Sort dateparts based on locale\r\n\t\tconst dateLocale = (moment.localeData() as any)._longDateFormat.L.toLowerCase()\r\n\r\n\t\tthis.dateParts.forEach((datePart:any) => {\r\n\t\t\tdatePart.order = dateLocale.indexOf(datePart.formatPart)\r\n\t\t})\r\n\t\tthis.dateParts.sortBy(\"order\")\r\n\t}\r\n\r\n\t@Watch(\"value\")\r\n\tvalueChanged (value: string) {\r\n\t\tthis.setValue(value)\r\n\t}\r\n\r\n\t/**\r\n\t * If days, months or years have been entered\r\n\t */\r\n\tpublic get anyDateValue (): boolean {\r\n\t\treturn !!this.day ||\r\n\t\t\t!!this.month ||\r\n\t\t\t!!this.year\r\n\t}\r\n\r\n\t/**\r\n\t * If hours or minutes have been entered\r\n\t */\r\n\tpublic get anyTimeValue (): boolean {\r\n\t\treturn !!this.hour ||\r\n\t\t\t!!this.minute\r\n\t}\r\n\r\n\t/**\r\n\t * Upate text boxes with value model change\r\n\t */\r\n\tprivate setValue (value: string | Date | null) {\r\n\t\tlet dateValue = null\r\n\t\ttry {\r\n\t\t\tdateValue = value !== null && value !== \"\"\r\n\t\t\t\t? (value instanceof Date)\r\n\t\t\t\t\t? value\r\n\t\t\t\t\t: new Date(value)\r\n\t\t\t\t: null\r\n\t\t} catch {\r\n\t\t}\r\n\r\n\t\tif (dateValue !== null && !isNaN(dateValue.getTime())) {\r\n\t\t\tthis.dateValueParsed = dateValue\r\n\t\t\tthis.dateValueISO = this.dateValueParsed.toISOString()\r\n\r\n\t\t\tif (this.enterAsUTC) {\r\n\t\t\t\tthis.year = this.dateValueParsed.getUTCFullYear().toString()\r\n\t\t\t\tthis.month = (this.dateValueParsed.getUTCMonth() + 1).toString()\r\n\t\t\t\tthis.day = this.dateValueParsed.getUTCDate().toString()\r\n\t\t\t} else {\r\n\t\t\t\tthis.year = this.dateValueParsed.getFullYear().toString()\r\n\t\t\t\tthis.month = (this.dateValueParsed.getMonth() + 1).toString()\r\n\t\t\t\tthis.day = this.dateValueParsed.getDate().toString()\r\n\t\t\t}\r\n\r\n\t\t\tif (this.includeTime || !this.enterAsUTC) {\r\n\t\t\t\tconst hours = this.dateValueParsed.getHours()\r\n\t\t\t\tthis.hour = (hours > 12 ? hours - 12 : hours).toString()\r\n\r\n\t\t\t\tthis.minute = this.dateValueParsed.getMinutes().toString()\r\n\t\t\t\tthis.ampm = this.dateValueParsed.getHours() >= 12 ? \"PM\" : \"AM\"\r\n\t\t\t} else {\r\n\t\t\t\tthis.hour = \"\"\r\n\t\t\t\tthis.minute = \"\"\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tthis.dateValueParsed = null\r\n\t\t\tthis.ampm = null\r\n\t\t\tthis.year = \"\"\r\n\t\t\tthis.month = \"\"\r\n\t\t\tthis.day = \"\"\r\n\t\t\tthis.hour = \"\"\r\n\t\t\tthis.minute = \"\"\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Update value using text box values\r\n\t */\r\n\tupdateDate () {\r\n\t\tlet dateString = this.$refs.year[0].value + \"-\" +\r\n\t\t\tthis.$refs.month[0].value + \"-\" + this.$refs.day[0].value\r\n\r\n\t\tconst momentDate = moment.utc(dateString, \"YYYY-M-D\", true)\r\n\r\n\t\tif (momentDate.isValid()) {\r\n\t\t\tthis.dateIsInvalid = false\r\n\t\t} else {\r\n\t\t\tthis.dateIsInvalid = true\r\n\r\n\t\t\tif (this.hour) {\r\n\t\t\t\tconst hours = parseInt(this.hour)\r\n\t\t\t\tif (isNaN(hours) || hours > 23 || hours < 0) {\r\n\t\t\t\t\tthis.timeIsInvalid = true\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tif (this.minute) {\r\n\t\t\t\tconst minutes = parseInt(this.minute)\r\n\t\t\t\tif (isNaN(minutes) || minutes > 59 || minutes < 0) {\r\n\t\t\t\t\tthis.timeIsInvalid = true\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\treturn\r\n\t\t}\r\n\r\n\t\tlet momentDateTime: moment.Moment\r\n\r\n\t\tlet hours = this.$refs.hour.value\r\n\t\tif (!hours && !this.includeTime) {\r\n\t\t\thours = \"0\"\r\n\t\t}\r\n\r\n\t\tif (hours === \"0\") {\r\n\t\t\thours = \"12\"\r\n\t\t}\r\n\r\n\t\tlet hoursValue = parseInt(hours)\r\n\t\tif (hoursValue > 12) {\r\n\t\t\thoursValue = hoursValue - 12\r\n\t\t\tthis.ampm = \"PM\"\r\n\t\t}\r\n\r\n\t\tlet minutes = this.$refs.minute.value\r\n\t\tif (!minutes && !this.includeTime) {\r\n\t\t\tminutes = \"0\"\r\n\t\t}\r\n\r\n\t\tif (!this.ampm && !this.includeTime) {\r\n\t\t\tthis.ampm = \"AM\"\r\n\t\t}\r\n\r\n\t\tdateString = dateString + \" \" + hoursValue + \":\" + minutes + \":00 \" + this.ampm\r\n\t\tif (this.enterAsUTC) {\r\n\t\t\tmomentDateTime = moment.utc(dateString, \"YYYY-M-D h:m:ss a\", true)\r\n\t\t} else {\r\n\t\t\tmomentDateTime = moment(dateString, \"YYYY-M-D h:m:ss a\", true)\r\n\t\t}\r\n\r\n\t\tif (momentDateTime.isValid()) {\r\n\t\t\tthis.timeIsInvalid = false\r\n\t\t\tconst newValue = momentDateTime.utc().toDate()\r\n\t\t\tthis.$emit(\"input\", newValue)\r\n\t\t} else {\r\n\t\t\tthis.timeIsInvalid = true\r\n\t\t\tthis.dateIsInvalid = true\r\n\t\t}\r\n\t}\r\n\r\n\tgetValuePart (datePart: string) {\r\n\t\treturn get(this, datePart)\r\n\t}\r\n\tsetValuePart (datePart: string, value: string) {\r\n\t\treturn set(this, datePart, value)\r\n\t}\r\n\r\n\tclearDate () {\r\n\t\tthis.setValue(null)\r\n\t\tthis.$emit(\"input\", null)\r\n\t}\r\n\r\n\topenCalender (event: any, which: string) {\r\n\t\t(this.$refs as any)[which].open(event)\r\n\t}\r\n\r\n\tasync setDate (newDate: Date) {\r\n\t\tthis.setValue(newDate)\r\n\t\tawait Vue.nextTick()\r\n\r\n\t\tthis.updateDate()\r\n\t}\r\n\r\n\tyesterday () {\r\n\t\tlet date = new Date()\r\n\t\tdate.setDate(date.getDate() - 1)\r\n\t\tthis.setDate(date)\r\n\t}\r\n\r\n\ttoday () {\r\n\t\tthis.setDate(new Date())\r\n\t}\r\n\r\n\ttomorrow () {\r\n\t\tlet date = new Date()\r\n\t\tdate.setDate(date.getDate() + 1)\r\n\t\tthis.setDate(date)\r\n\t}\r\n}\r\n\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DateTime.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DateTime.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./DateTime.vue?vue&type=template&id=df3eb294&scoped=true&\"\nimport script from \"./DateTime.vue?vue&type=script&lang=ts&\"\nexport * from \"./DateTime.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./DateTime.vue?vue&type=style&index=0&id=df3eb294&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"df3eb294\",\n null\n \n)\n\nexport default component.exports","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Introduction.vue?vue&type=style&index=0&id=efe5815e&prod&lang=scss&scoped=true&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.shouldUseNewInterface)?_c('new-page',[_vm._t(\"default\")],2):_c('old-page',{scopedSlots:_vm._u([{key:\"title\",fn:function(){return [_vm._t(\"title\")]},proxy:true},{key:\"controls\",fn:function(){return [_vm._t(\"controls\")]},proxy:true},{key:\"nav-content\",fn:function(){return [_vm._t(\"nav-content\")]},proxy:true},{key:\"slide-menu-contents\",fn:function(){return [_vm._t(\"slide-menu-contents\")]},proxy:true}],null,true)},[_vm._t(\"default\")],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"page d-flex flex-row\"},[_c('side-bar',{scopedSlots:_vm._u([{key:\"content\",fn:function(){return [_vm._t(\"sidebar-content\")]},proxy:true}],null,true)}),_c('div',{staticClass:\"d-flex flex-column flex-grow-1\"},[_c('header-bar',{scopedSlots:_vm._u([{key:\"title\",fn:function(){return [_vm._t(\"header-title\",[_vm._v(\" Hello \"),_c('span',{staticClass:\"text-info\"},[_vm._v(_vm._s(_vm.me.name))])])]},proxy:true},{key:\"controls\",fn:function(){return [_vm._t(\"header-controls\",[_c('quick-create-menu')])]},proxy:true},{key:\"content\",fn:function(){return [_vm._t(\"header-content\")]},proxy:true},{key:\"sub-header\",fn:function(){return [_vm._t(\"sub-header\")]},proxy:true}],null,true)}),_c('div',{staticClass:\"d-flex flex-column flex-grow-1 flex-shrink-1 overflow-hidden\",staticStyle:{\"position\":\"relative\"}},[_vm._t(\"default\")],2)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('b-navbar',{staticClass:\"p-0\",attrs:{\"type\":\"dark\",\"variant\":\"primary\"}},[_c('b-col',{staticClass:\"p-0\"},[_c('b-row',{staticClass:\"align-items-center justify-content-between px-3 pb-3 pt-3\"},[_c('b-col',[_vm._t(\"breadcrumb\",[_c('b-breadcrumb',{staticClass:\"mb-0\",attrs:{\"items\":_vm.breadcrumbItems}})])],2),_c('b-col',{staticClass:\"justify-content-center d-none d-md-flex\"},[_c('b-navbar-brand',{staticClass:\"mb-0\",attrs:{\"tag\":\"h1\"}},[_vm._t(\"title\")],2)],1),_c('b-col',{staticClass:\"d-flex justify-content-end align-items-center\"},[_c('global-search'),_c('notifications-menu'),_vm._t(\"controls\"),_c('user-menu',{attrs:{\"picture-url\":_vm.myPictureUrl,\"show-new-interface-switch\":_vm.showNewInterfaceSwitch}})],2)],1),(_vm.hasHeaderContent)?_c('b-row',{staticClass:\"d-flex justify-content-center p-3\"},[_vm._t(\"content\")],2):_vm._e(),(_vm.hasSubHeaderContent)?_c('b-row',{staticClass:\"d-flex align-items-center justify-content-between px-3 py-2 sub-header-bar\",attrs:{\"id\":\"sub-header-bar\"}},[_vm._t(\"sub-header\")],2):_vm._e()],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('b-dropdown',{staticClass:\"user-dropdown\",attrs:{\"right\":\"\",\"no-caret\":\"\",\"variant\":\"link\",\"data-cy\":\"user-image\"},scopedSlots:_vm._u([{key:\"button-content\",fn:function(){return [_c('img',{staticClass:\"ml-3 d-none d-md-inline rounded-circle user-profile-picture\",attrs:{\"alt\":\"Profile Picture\",\"src\":_vm.pictureUrl,\"data-cy\":\"user-menu-img-profile-picture\"}})]},proxy:true}])},[_c('b-dropdown-group',[_c('b-dropdown-header',[_vm._v(\" Interface settings \")]),(!_vm.usingV2)?_c('b-dropdown-form',[_c('light-dark',{staticClass:\"m-r-10\",attrs:{\"data-cy\":\"user-menu-switch-light-dark-old\"},on:{\"mouseup\":function($event){$event.stopPropagation();},\"click\":function($event){$event.stopPropagation();}}})],1):_c('b-dropdown-form',[_c('new-light-dark-switch',{attrs:{\"data-cy\":\"user-menu-switch-light-dark-new\"}})],1),(_vm.showNewInterfaceSwitch)?_c('b-dropdown-form',[_c('new-interface-switch')],1):_vm._e()],1),(_vm.me)?[_c('b-dropdown-divider'),_c('b-dropdown-group',[_c('b-dropdown-header',[_vm._v(\" Status \")]),(_vm.me.currentStatus)?_c('b-dropdown-item-button',{attrs:{\"data-cy\":\"status-title\"},on:{\"click\":_vm.showSetStatus}},[_vm._v(\" \"+_vm._s(this.me.currentStatus.title)+\" \")]):_c('b-dropdown-item-button',{attrs:{\"data-cy\":\"set-status\"},on:{\"click\":_vm.showSetStatus}},[_vm._v(\" Set My Status \")])],1),_c('b-dropdown-divider'),_c('b-dropdown-group',[_c('b-dropdown-header',[_vm._v(\"Account\")]),_c('b-dropdown-item',{attrs:{\"to\":(\"/userprofile/\" + (_vm.me.id)),\"data-cy\":\"my-account\"}},[_vm._v(\" My Account \")]),_c('b-dropdown-item-button',{attrs:{\"data-cy\":\"my-settings\"},on:{\"click\":_vm.showUserSettings}},[_vm._v(\" My Settings \")]),(_vm.me && _vm.me.billingEnabled && _vm.hasSubscription)?_c('b-dropdown-item',{attrs:{\"to\":\"/organization\",\"data-cy\":\"billing-link\"}},[_vm._v(\" Billing \")]):_vm._e()],1),_c('b-dropdown-divider'),_c('b-dropdown-group',[_c('b-dropdown-header',[_vm._v(\"Support\")]),(_vm.me && _vm.me.isAdmin && !_vm.me.isSupport)?_c('b-dropdown-item-button',{attrs:{\"data-cy\":\"enable-support-link\"},on:{\"click\":_vm.openSupportAccess}},[_vm._v(\" SureView Support Access \")]):_vm._e()],1),(_vm.otherTenants.length > 0)?[_c('b-dropdown-divider'),_c('b-dropdown-group',[_c('b-dropdown-header',[_vm._v(\"Change Tenant\")]),_vm._l((_vm.otherTenants),function(tenant){return _c('b-dropdown-item',{key:tenant.id,attrs:{\"data-cy\":'tenant-'+tenant.id},on:{\"click\":function($event){return _vm.loginSelectTenant({id: tenant.id, userId: tenant.userId})}}},[_vm._v(\" Switch to \"+_vm._s(tenant.title)+\" \")])})],2)]:_vm._e(),_c('b-dropdown-divider')]:_vm._e(),_c('b-dropdown-item',{attrs:{\"data-cy\":\"logout\"},on:{\"click\":_vm.logout}},[_c('a',{attrs:{\"href\":\"javascript:void(0)\"}},[_vm._v(\"Logout\")])])],2),(_vm.me && _vm.me.isAdmin)?_c('sure-view-support-modal',{attrs:{\"support-access\":_vm.supportAccess,\"data-cy\":\"user-menu-modal-support-modal\"},on:{\"allow-access\":_vm.allowAccess,\"end-access\":_vm.endAccess},model:{value:(_vm.supportAccessOpen),callback:function ($$v) {_vm.supportAccessOpen=$$v},expression:\"supportAccessOpen\"}}):_vm._e(),_c('user-settings-modal',{ref:\"userSettingsModal\",attrs:{\"data-cy\":\"user-menu-modal-user-settings-modal\"}}),_c('set-status-modal',{ref:\"setStatusModal\"})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('b-modal',{attrs:{\"title\":\"SureView Support Access\"},scopedSlots:_vm._u([{key:\"modal-footer\",fn:function(){return [_c('b-button',{attrs:{\"variant\":\"primary\",\"data-cy\":\"allow-access\",\"disabled\":!_vm.supportAccessTime},on:{\"click\":_vm.allowAccess}},[_vm._v(\" \"+_vm._s(_vm.supportAccess ? 'Extend Access' : 'Grant Access')+\" \")]),(_vm.supportAccess)?_c('b-button',{attrs:{\"variant\":\"danger\",\"data-cy\":\"end-access\"},on:{\"click\":_vm.endAccess}},[_vm._v(\" End Access \")]):_vm._e(),_c('b-button',{attrs:{\"variant\":\"secondary\"},on:{\"click\":function($event){_vm.supportAccessOpen = false}}},[_vm._v(\" Cancel \")])]},proxy:true}]),model:{value:(_vm.supportAccessOpen),callback:function ($$v) {_vm.supportAccessOpen=$$v},expression:\"supportAccessOpen\"}},[[(_vm.supportAccess)?_c('b-form-group',{attrs:{\"label\":\"Currently open\",\"label-for\":\"support-times\"}},[_c('p',[_vm._v(\" Opened at \"+_vm._s(_vm.displayDateFromISOString(_vm.supportAccess.enabledFrom))+\" by \"+_vm._s(_vm.supportAccess.enabledBy.name)+\". \"),_c('br'),_vm._v(\" Expires at \"+_vm._s(_vm.displayDateFromISOString(_vm.supportAccess.enabledUntil))+\" \")])]):_vm._e(),_c('b-form-group',{attrs:{\"label\":_vm.supportAccess ? 'Extend for' : 'Open for',\"label-for\":\"support-times\",\"description\":\"For a set period of time, SureView Support may access your tenancy to provide assistence\"}},[_c('v-select',{attrs:{\"id\":\"support-times\",\"options\":_vm.supportTimes,\"append-to-body\":\"\",\"reduce\":function (support) { return support.value; }},model:{value:(_vm.supportAccessTime),callback:function ($$v) {_vm.supportAccessTime=$$v},expression:\"supportAccessTime\"}})],1)]],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { Component, Emit, Prop, Vue } from \"vue-property-decorator\"\r\nimport { TenantSupport } from \"@/types/tenant\"\r\nimport vSelect from \"vue-select\"\r\n\r\n@Component({\r\n\tcomponents: {\r\n\t\t\"v-select\": vSelect\r\n\t}\r\n})\r\nexport default class SureViewSupportModal extends Vue {\r\n\t@Prop({ type: Boolean, required: true })\r\n\tvalue!: boolean\r\n\r\n\t@Prop({ type: [Object, String], default: null })\r\n\tsupportAccess!: TenantSupport | null\r\n\r\n\tsupportAccessTime: String | null = null\r\n\r\n\tprivate readonly supportTimes = [\r\n\t\t{\r\n\t\t\tlabel: \"1 hour\",\r\n\t\t\tvalue: \"01:00:00\"\r\n\t\t},\r\n\t\t{\r\n\t\t\tlabel: \"4 hours\",\r\n\t\t\tvalue: \"4:00:00\"\r\n\t\t},\r\n\t\t{\r\n\t\t\tlabel: \"12 hours\",\r\n\t\t\tvalue: \"12:00:00\"\r\n\t\t},\r\n\t\t{\r\n\t\t\tlabel: \"1 day\",\r\n\t\t\tvalue: \"1.00:00:00\"\r\n\t\t},\r\n\t\t{\r\n\t\t\tlabel: \"1 week\",\r\n\t\t\tvalue: \"7.00:00:00\"\r\n\t\t}\r\n\t]\r\n\r\n\tprivate get supportAccessOpen () {\r\n\t\treturn this.value\r\n\t}\r\n\r\n\tprivate set supportAccessOpen (value: boolean) {\r\n\t\tthis.$emit(\"input\", value)\r\n\t}\r\n\r\n\t@Emit(\"allow-access\")\r\n\tprivate allowAccess () {\r\n\t\treturn this.supportAccessTime\r\n\t}\r\n\r\n\t@Emit(\"end-access\")\r\n\tprivate endAccess () {\r\n\r\n\t}\r\n}\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--13-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SureViewSupportModal.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--13-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SureViewSupportModal.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./SureViewSupportModal.vue?vue&type=template&id=43cbb0e6&scoped=true&\"\nimport script from \"./SureViewSupportModal.vue?vue&type=script&lang=ts&\"\nexport * from \"./SureViewSupportModal.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"43cbb0e6\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('b-form-checkbox',{directives:[{name:\"b-tooltip\",rawName:\"v-b-tooltip.right\",modifiers:{\"right\":true}}],staticClass:\"switch\",class:_vm.icon,attrs:{\"data-cy\":\"new-interface-switch-checkbox\",\"switch\":\"\",\"disabled\":_vm.usingV2,\"size\":\"lg\",\"title\":_vm.usingV2 ? 'Dark mode is currently being worked on for the new interface' : '',\"button-variant\":\"info\"},model:{value:(_vm.isDark),callback:function ($$v) {_vm.isDark=$$v},expression:\"isDark\"}},[_vm._v(\" Theme \")])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { Component, Vue } from \"vue-property-decorator\"\r\nimport { Action, Getter, State } from \"vuex-class\"\r\nimport { BaseState } from \"@/store\"\r\n\r\n@Component({})\r\nexport default class NewLightDarkSwitch extends Vue {\r\n\t@State((state: BaseState) => state.darkMode) darkMode!: boolean\r\n\t@Getter(\"getUseV2\") usingV2!: boolean\r\n\r\n\t@Action setTheme!: (darkMode: boolean) => void;\r\n\r\n\tget isDark () {\r\n\t\t// TODO re-enable dark mode on new interface once actively working on it again\r\n\t\treturn !this.usingV2 && this.darkMode\r\n\t}\r\n\r\n\tset isDark (value: boolean) {\r\n\t\tthis.setTheme(value)\r\n\t}\r\n\r\n\t/**\r\n\t * Icon to display in centre of switch\r\n\t * NOTE: Do not use Font Awesome names/classes here. Otherwise, the label text will be styled incorrectly\r\n\t * @private\r\n\t */\r\n\tprivate get icon (): \"moon\" | \"sun\" {\r\n\t\treturn this.isDark ? \"moon\" : \"sun\"\r\n\t}\r\n}\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NewLightDarkSwitch.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NewLightDarkSwitch.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./NewLightDarkSwitch.vue?vue&type=template&id=4e568010&scoped=true&\"\nimport script from \"./NewLightDarkSwitch.vue?vue&type=script&lang=ts&\"\nexport * from \"./NewLightDarkSwitch.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./NewLightDarkSwitch.vue?vue&type=style&index=0&id=4e568010&prod&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"4e568010\",\n null\n \n)\n\nexport default component.exports","\r\nimport { Component, Prop, Ref, Vue } from \"vue-property-decorator\"\r\nimport LightDarkSwitch from \"@/components/Account/LightDarkSwitch.vue\"\r\nimport NewInterfaceSwitch from \"@/components/Account/NewInterfaceSwitch.vue\"\r\nimport { Action, Getter, Mutation, State } from \"vuex-class\"\r\nimport { CurrentUser } from \"@/types/user\"\r\nimport { LoginResultTenant } from \"@/types\"\r\nimport api from \"@/services/api\"\r\nimport SetStatusModal from \"@/components/SetStatusModal.vue\"\r\nimport tenantApi from \"@/services/api_Tenant\"\r\nimport { TenantSupport } from \"@/types/tenant\"\r\nimport UserSettingsModal from \"@/components/UserSettingsModal.vue\"\r\nimport SureViewSupportModal from \"@/components/SureViewSupportModal.vue\"\r\nimport NewLightDarkSwitch from \"@/components/Account/NewLightDarkSwitch.vue\"\r\nimport { BaseState } from \"@/store\"\r\n\r\n@Component({\r\n\tcomponents: {\r\n\t\tNewLightDarkSwitch,\r\n\t\tSureViewSupportModal,\r\n\t\t\"light-dark\": LightDarkSwitch,\r\n\t\t\"new-interface-switch\": NewInterfaceSwitch,\r\n\t\t\"set-status-modal\": SetStatusModal,\r\n\t\t\"user-settings-modal\": UserSettingsModal\r\n\t}\r\n})\r\nexport default class UserMenu extends Vue {\r\n\t// TODO remove\r\n\t@Ref() setStatusModal!: SetStatusModal\r\n\t@Ref() userSettingsModal!: UserSettingsModal\r\n\r\n\t@Getter(\"getUseV2\") usingV2!: boolean\r\n\r\n\t@Prop({ type: String, required: true })\r\n\tpictureUrl!: string;\r\n\r\n\t@Prop({ type: Boolean, default: false })\r\n\tshowNewInterfaceSwitch!: boolean;\r\n\r\n\t@State((state: BaseState) => state.me) public me!: CurrentUser;\r\n\t@Getter(\"hasSubscription\") hasSubscription!: boolean;\r\n\r\n\t@Action(\"selectTenant\")\r\n\tpublic loginSelectTenant!: (tenant: LoginResultTenant) => Promise\r\n\r\n\t@Action(\"logOut\")\r\n\tpublic logOut!: () => void;\r\n\r\n\t@Mutation\r\n\tprivate setManualLogout!: (manualLogout: boolean) => void\r\n\r\n\tsupportAccess: TenantSupport | null = null\r\n\tsupportAccessOpen: boolean = false\r\n\r\n\tprivate showSetStatus () {\r\n\t\tthis.setStatusModal.open()\r\n\t}\r\n\r\n\tprivate showUserSettings () {\r\n\t\tthis.userSettingsModal.open()\r\n\t}\r\n\r\n\tprivate async openSupportAccess () {\r\n\t\tthis.supportAccess = await tenantApi.tenantAccess()\r\n\t\tthis.supportAccessOpen = true\r\n\t}\r\n\r\n\tprivate allowAccess (time: string | null) {\r\n\t\ttenantApi.openSupportAccess({ value: time })\r\n\t\tthis.supportAccessOpen = false\r\n\t}\r\n\r\n\tprivate endAccess () {\r\n\t\ttenantApi.openSupportAccess({ value: null })\r\n\t\tthis.supportAccessOpen = false\r\n\t}\r\n\r\n\tprivate get otherTenants (): LoginResultTenant[] {\r\n\t\tif (!this.me || !this.me.loginTenants) {\r\n\t\t\treturn []\r\n\t\t}\r\n\r\n\t\treturn this.me.loginTenants.filter(t => !t.disabled && t.id !== this.me.tenantId)\r\n\t}\r\n\r\n\tpublic async logout () {\r\n\t\tthis.setManualLogout(true)\r\n\r\n\t\tawait api.logout()\r\n\t\tthis.logOut()\r\n\t}\r\n}\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--13-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserMenu.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--13-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserMenu.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./UserMenu.vue?vue&type=template&id=67cf2848&scoped=true&\"\nimport script from \"./UserMenu.vue?vue&type=script&lang=ts&\"\nexport * from \"./UserMenu.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"67cf2848\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.screenWidth >= 800 && _vm.me)?_c('div',{staticClass:\"mr-1 d-inline\"},[_c('b-dropdown',{ref:\"notificationsDropdown\",staticClass:\"notifications-dropdown\",class:{'has-notifications' : _vm.currentNotifications.length > 0 },attrs:{\"right\":\"\",\"no-caret\":\"\",\"variant\":\"link\",\"data-cy\":\"notifications-menu-dropdown-notifications-dropdown\",\"toggle-class\":{ 'has-notifications' : _vm.currentNotifications.length > 0 }},on:{\"show\":_vm.notificationListOpened},scopedSlots:_vm._u([{key:\"button-content\",fn:function(){return [_c('notifications-button',{attrs:{\"number-of-notifications\":_vm.currentNotifications.length}})]},proxy:true}],null,false,1445135842)},[_c('b-dropdown-header',[_c('b-row',{staticClass:\"align-items-center\"},[_c('b-col',[_vm._v(\" Notifications \")]),_c('b-col',{staticClass:\"text-right\"},[(_vm.currentNotifications && _vm.currentNotifications.length)?_c('b-button',{attrs:{\"size\":\"sm\"},on:{\"click\":function($event){$event.stopPropagation();$event.preventDefault();return _vm.clearAllNotifications($event)}}},[_vm._v(\" Clear All \")]):_vm._e()],1)],1)],1),(!_vm.browserNotificationsEnabled)?_c('b-dropdown-item-button',{attrs:{\"data-cy\":\"enable-notifications-button\",\"variant\":\"primary\"},on:{\"click\":_vm.enableBrowserNotifications}},[_vm._v(\" Enable Browser Notifications \")]):_vm._e(),_c('b-dropdown-divider'),_c('scrollbar',[_c('div',{staticClass:\"notification-list-wrapper\"},[(_vm.currentNotifications.length > 0)?_c('div',_vm._l((_vm.currentNotifications),function(notification,index){return _c('b-dropdown-group',{key:notification.id,staticClass:\"notification-item\",on:{\"click\":function($event){$event.stopPropagation();$event.preventDefault();return _vm.notificationSelected(notification)}}},[_c('b-dropdown-header',[_vm._v(_vm._s(notification.title)+\" - \"+_vm._s(_vm.notificationTimePeriods[index]))]),_c('b-dropdown-item',[_vm._v(\" \"+_vm._s(notification.message)+\" \")]),_c('b-dropdown-divider')],1)}),1):_c('b-dropdown-text',[_vm._v(\" No new notifications \")])],1)])],1)],1):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"d-inline-flex justify-content-start align-items-center\"},[_c('i',{staticClass:\"fas fa-lg fa-bell text-notification\",class:{ 'has-notifications' : _vm.hasNotifications }}),_c('span',{staticClass:\"notification-badge\",class:{ 'has-notifications' : _vm.hasNotifications }},[_c('span',{staticClass:\"badge-content\"},[_vm._v(\" \"+_vm._s(_vm.notificationNumber)+\" \")])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { Component, Prop, Vue } from \"vue-property-decorator\"\r\nimport { Getter } from \"vuex-class\"\r\n\r\n@Component({})\r\nexport default class NotificationsButton extends Vue {\r\n\t@Prop({ type: Number, required: true })\r\n\tnumberOfNotifications!: number;\r\n\r\n\tprivate get notificationNumber () {\r\n\t\tif (this.numberOfNotifications >= 10) {\r\n\t\t\treturn \"9+\"\r\n\t\t}\r\n\t\treturn this.numberOfNotifications.toString()\r\n\t}\r\n\r\n\tprivate get hasNotifications () {\r\n\t\treturn this.numberOfNotifications > 0\r\n\t}\r\n}\r\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--13-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NotificationsButton.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--13-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NotificationsButton.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./NotificationsButton.vue?vue&type=template&id=7137d2b3&scoped=true&\"\nimport script from \"./NotificationsButton.vue?vue&type=script&lang=ts&\"\nexport * from \"./NotificationsButton.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./NotificationsButton.vue?vue&type=style&index=0&id=7137d2b3&prod&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"7137d2b3\",\n null\n \n)\n\nexport default component.exports","\r\nimport { Component } from \"vue-property-decorator\"\r\nimport VuePerfectScrollbar from \"vue-perfect-scrollbar\"\r\nimport NotificationsButton from \"@/components/New/Page/Notifications/NotificationsButton.vue\"\r\nimport BaseNotificationMenu from \"@/components/Notifications/BaseNotificationsMenu.vue\"\r\n\r\n@Component({\r\n\tcomponents: {\r\n\t\t\"notifications-button\": NotificationsButton,\r\n\t\t\"scrollbar\": VuePerfectScrollbar\r\n\t}\r\n})\r\nexport default class NotificationsMenu extends BaseNotificationMenu {\r\n}\r\n","\r\nimport { Component, Vue } from \"vue-property-decorator\"\r\nimport { Getter, Mutation } from \"vuex-class\"\r\nimport api from \"@/services/api\"\r\nimport vSelect from \"vue-select\"\r\n\r\nenum SearchType {\r\n\tRECORD = \"RECORD\",\r\n\tUSER = \"USER\",\r\n\tSEARCH = \"SEARCH\"\r\n}\r\n\r\ninterface Search {\r\n\titemType: SearchType,\r\n\tsearch: string,\r\n\tpageArgument?: any,\r\n\tid?: any,\r\n\ticonUrl?: any,\r\n\tsubTitles?: any,\r\n\ttitle?: string\r\n}\r\n\r\n@Component({\r\n\tcomponents: {\r\n\t\t\"v-select\": vSelect\r\n\t}\r\n})\r\nexport default class GlobalSearch extends Vue {\r\n\t@Getter(\"getRecordName\") getRecordName!: string;\r\n\t@Mutation(\"setSearch\") setSearch!: (search: string) => void;\r\n\r\n\tpublic searchResults: any[] = []; // TODO Type\r\n\tpublic selectedItem: any = null; // TODO Type\r\n\tprivate debounceSearch: NodeJS.Timeout | null = null;\r\n\tprivate searchOpen = false;\r\n\r\n\tpublic goToSearchResult (result: Search): void {\r\n\t\tswitch (result.itemType) {\r\n\t\t\tcase SearchType.RECORD: {\r\n\t\t\t\tthis.$router.push({ path: `/cases/${result.pageArgument}` })\r\n\t\t\t\tbreak\r\n\t\t\t}\r\n\t\t\tcase SearchType.USER: {\r\n\t\t\t\tthis.$router.push({ path: `/userprofile/${result.id}` })\r\n\t\t\t\tbreak\r\n\t\t\t}\r\n\t\t\tcase SearchType.SEARCH:\r\n\t\t\tdefault: {\r\n\t\t\t\tthis.setSearch(result.search)\r\n\t\t\t\tthis.$router.push({ path: \"/search\" })\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tpublic pictureUrl (searchResult: Search): string {\r\n\t\tif (searchResult.iconUrl) {\r\n\t\t\treturn searchResult.iconUrl\r\n\t\t} else {\r\n\t\t\treturn api.pictureUrl(searchResult.id)\r\n\t\t}\r\n\t}\r\n\r\n\tpublic async fetchOptions (search: string, loading: (isLoading: boolean) => void) {\r\n\t\tif (this.debounceSearch) {\r\n\t\t\tclearTimeout(this.debounceSearch)\r\n\t\t\tthis.debounceSearch = null\r\n\t\t\tloading(false)\r\n\t\t}\r\n\t\tif (search === \"\") {\r\n\t\t\tthis.searchResults = []\r\n\t\t} else {\r\n\t\t\tloading(true)\r\n\t\t\tthis.debounceSearch = setTimeout(async () => {\r\n\t\t\t\tthis.searchResults = [\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\titemType: \"SEARCH\",\r\n\t\t\t\t\t\ttitle: \"Advanced search for \\\"\" + search + \"\\\"\",\r\n\t\t\t\t\t\tsearch: search\r\n\t\t\t\t\t},\r\n\t\t\t\t\t...await api.allSearch(search)\r\n\t\t\t\t]\r\n\t\t\t\tloading(false)\r\n\t\t\t}, 500)\r\n\t\t}\r\n\t}\r\n}\r\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--13-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NotificationsMenu.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--13-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NotificationsMenu.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./NotificationsMenu.vue?vue&type=template&id=1b4d7dc8&scoped=true&\"\nimport script from \"./NotificationsMenu.vue?vue&type=script&lang=ts&\"\nexport * from \"./NotificationsMenu.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./NotificationsMenu.vue?vue&type=style&index=0&id=1b4d7dc8&prod&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"1b4d7dc8\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-select',{staticClass:\"flex-grow-1 vs--no-dim global-search\",attrs:{\"data-cy\":\"search-input\",\"options\":_vm.searchResults,\"label\":\"title\",\"placeholder\":\"Global Search\",\"value\":_vm.selectedItem,\"clearSearchOnBlur\":function () { return false; },\"filterable\":false},on:{\"open\":function($event){_vm.searchOpen = true},\"close\":function($event){_vm.searchOpen = false},\"input\":_vm.goToSearchResult,\"search\":_vm.fetchOptions},scopedSlots:_vm._u([{key:\"no-options\",fn:function(ref){\nvar searching = ref.searching;\nreturn [(!searching)?_c('span',[_vm._v(_vm._s((\"Search for \" + _vm.getRecordName + \"s and Users\")))]):_vm._e()]}},{key:\"option\",fn:function(result){return [_c('div',{staticClass:\"d-flex flex-row align-items-center\"},[_c('div',{staticClass:\"search-result-icon flex-grow-0 d-flex align-items-center justify-content-center flex-shrink-0\",staticStyle:{\"overflow\":\"hidden\"}},[(result.itemType === 'USER')?_c('img',{staticClass:\"rounded-circle\",attrs:{\"src\":_vm.pictureUrl(result),\"alt\":result.title}}):(result.itemType === 'RECORD')?_c('i',{staticClass:\"far fa-lg fa-file-alt\"}):(result.itemType === 'SEARCH')?_c('i',{staticClass:\"fas fa-lg fa-search\"}):_vm._e()]),_c('div',{staticClass:\"flex-shrink-1\",staticStyle:{\"overflow\":\"hidden\",\"white-space\":\"normal\"}},[_vm._v(\" \"+_vm._s(result.title)+\" \"),_c('br'),(result.subTitles)?_c('small',[_vm._v(_vm._s(result.subTitles.join(\", \")))]):_vm._e()])])]}},{key:\"open-indicator\",fn:function(){return [_c('i',{staticClass:\"fas fa-lg fa-search pr-2\"})]},proxy:true}])})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--13-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./GlobalSearch.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--13-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./GlobalSearch.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./GlobalSearch.vue?vue&type=template&id=6a8486d0&\"\nimport script from \"./GlobalSearch.vue?vue&type=script&lang=ts&\"\nexport * from \"./GlobalSearch.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./GlobalSearch.vue?vue&type=style&index=0&id=6a8486d0&prod&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/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","\r\nimport { Component, Vue } from \"vue-property-decorator\"\r\nimport { State } from \"vuex-class\"\r\n\r\nimport { CurrentUser } from \"@/types/user\"\r\nimport { BaseState } from \"@/store\"\r\nimport api from \"@/services/api\"\r\nimport UserMenu from \"./UserMenu.vue\"\r\nimport { TenantFeatures } from \"@/types/tenantFeatures\"\r\nimport NotificationsMenu from \"@/components/New/Page/Notifications/NotificationsMenu.vue\"\r\nimport GlobalSearch from \"@/components/New/Page/GlobalSearch.vue\"\r\n\r\n@Component({\r\n\tcomponents: {\r\n\t\tNotificationsMenu,\r\n\t\tGlobalSearch,\r\n\t\t\"notifications-button\": NotificationsMenu,\r\n\t\t\"user-menu\": UserMenu\r\n\t}\r\n})\r\nexport default class HeaderBar extends Vue {\r\n\t@State((state: BaseState) => state.me) private readonly me!: CurrentUser;\r\n\r\n\t// @State public systemUser!: SystemUser\r\n\r\n\t// private pictureError: boolean = false;\r\n\t// private pictureGuid: string = Guid.newGuid();\r\n\r\n\t/**\r\n\t * @summary Gets a value indicating whether the header bar has its content slot occupied.\r\n\t */\r\n\tprivate get hasHeaderContent (): boolean {\r\n\t\treturn !!this.$slots[\"content\"]\r\n\t}\r\n\r\n\t/**\r\n\t * @summary Gets a value indicating whether the header bar has its content slot occupied.\r\n\t */\r\n\tprivate get hasSubHeaderContent (): boolean {\r\n\t\treturn !!this.$slots[\"sub-header\"]\r\n\t}\r\n\r\n\t// TODO figure out this on system page. Will be in later phase\r\n\tprivate get myPictureUrl (): string {\r\n\t\tlet imageUrl: string\r\n\r\n\t\t// if (this.pictureError || (!this.me && !this.systemUser)) {\r\n\t\t// \timageUrl = \"images/blank_user.png\"\r\n\t\t// } else {\r\n\t\t// \tif (this.systemUser) {\r\n\t\t// \t\timageUrl = this.systemUser.pictureUrl ? this.systemUser.pictureUrl : \"images/blank_user.png\"\r\n\t\t// \t} else {\r\n\t\tif (this.me.pictureUrl) {\r\n\t\t\timageUrl = this.me.pictureUrl!\r\n\t\t} else {\r\n\t\t\timageUrl = api.pictureUrl(this.me.id)\r\n\t\t}\r\n\t\t// \t}\r\n\t\t// }\r\n\r\n\t\treturn imageUrl\r\n\r\n\t\t// return `${imageUrl}?p=${this.pictureGuid}`;\r\n\t}\r\n\r\n\t/**\r\n\t * Only show new interface switch to admins if the feature is enabled\r\n\t * @private\r\n\t */\r\n\tprivate get showNewInterfaceSwitch (): boolean {\r\n\t\tif (!this.me || !this.me.isAdmin || !(this.me.tenantEnabledFeatures && this.me.tenantEnabledFeatures.includes(TenantFeatures.EnableV2))) {\r\n\t\t\treturn false\r\n\t\t}\r\n\r\n\t\treturn true\r\n\t}\r\n\r\n\t// public mounted() {\r\n\t// \tthis.$root.$on(\"refresh-profile-picture\", this.refreshProfilePicture);\r\n\t// }\r\n\r\n\t// public beforeDestroy() {\r\n\t// \tthis.$root.$off(\"refresh-profile-picture\", this.refreshProfilePicture);\r\n\t// }\r\n\r\n\t// public imageUrlError (args: any): void {\r\n\t// \tthis.pictureError = true\r\n\t// }\r\n\r\n\t// private refreshProfilePicture(): void {\r\n\t// \tthis.pictureGuid = Guid.newGuid();\r\n\t// }\r\n\r\n\t/**\r\n\t * @summary Gets the breadcrumbs to be displayed in the header bar, using the route's breadcrumb metadata, or the path.\r\n\t */\r\n\tprivate get breadcrumbItems (): { path: string, to: string, text: string }[] {\r\n\t\tlet breadcrumbArray: { path: string, to: string, text: string }[] = []\r\n\t\tlet pathArray = this.$route.path.split(\"/\")\r\n\r\n\t\tpathArray.shift()\r\n\t\tpathArray.forEach(async (path, idx) => {\r\n\t\t\tlet newItem = {\r\n\t\t\t\tpath,\r\n\t\t\t\tto: breadcrumbArray[idx - 1]\r\n\t\t\t\t\t? \"/\" + breadcrumbArray[idx - 1].path + \"/\" + path\r\n\t\t\t\t\t: \"/\" + path,\r\n\t\t\t\ttext: this.$route.matched[idx]?.meta?.breadcrumb || path\r\n\t\t\t}\r\n\r\n\t\t\tif (breadcrumbArray[idx - 1]?.path === \"userprofile\") {\r\n\t\t\t\t// TODO add & get from vuex as we're making this api call in the user profile page too\r\n\t\t\t\tconst userDetails = await api.userDetails(path)\r\n\t\t\t\tnewItem = {\r\n\t\t\t\t\tpath,\r\n\t\t\t\t\tto: breadcrumbArray[idx - 1]\r\n\t\t\t\t\t\t? \"/\" + breadcrumbArray[idx - 1].path + \"/\" + path\r\n\t\t\t\t\t\t: \"/\" + path,\r\n\t\t\t\t\ttext: userDetails.name\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tbreadcrumbArray.push(newItem)\r\n\t\t})\r\n\r\n\t\treturn breadcrumbArray\r\n\t}\r\n}\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--13-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./HeaderBar.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--13-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./HeaderBar.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./HeaderBar.vue?vue&type=template&id=009ef08a&scoped=true&\"\nimport script from \"./HeaderBar.vue?vue&type=script&lang=ts&\"\nexport * from \"./HeaderBar.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"009ef08a\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('b-nav',{staticClass:\"d-flex flex-column flex-grow-0 flex-shrink-0 align-items-center nav-sidebar d-print-none\",staticStyle:{\"z-index\":\"1\"},attrs:{\"vertical\":\"\"}},[_c('div',{staticClass:\"nav-sidebar-icon\"},[_c('svg',{attrs:{\"width\":\"32\",\"height\":\"32\",\"viewBox\":\"0 0 32 32\",\"fill\":\"none\",\"xmlns\":\"http://www.w3.org/2000/svg\"}},[_c('path',{attrs:{\"d\":\"M7.49076 14.2951L0 10.5574V0H10.5791L14.3901 7.54098H7.49076V14.2951Z\",\"fill\":\"#15A4BE\"}}),_c('path',{attrs:{\"d\":\"M24.5092 14.2951L32 10.5574V0H21.4209L17.6099 7.54098H24.5092V14.2951Z\",\"fill\":\"#444444\"}}),_c('path',{attrs:{\"d\":\"M24.5092 17.7049L32 21.4426L32 32L21.4209 32L17.6099 24.459L24.5092 24.459L24.5092 17.7049Z\",\"fill\":\"#15A4BE\"}}),_c('path',{attrs:{\"d\":\"M7.49076 17.7049L9.22955e-07 21.4426L0 32L10.5791 32L14.3901 24.459L7.49076 24.459L7.49076 17.7049Z\",\"fill\":\"#444444\"}})])]),_vm._t(\"content\",[_c('router-link',{directives:[{name:\"b-tooltip\",rawName:\"v-b-tooltip.hover.right\",modifiers:{\"hover\":true,\"right\":true}}],staticClass:\"link\",attrs:{\"data-cy\":\"dashboard\",\"tabindex\":\"0\",\"to\":{ name: 'dashboard' },\"title\":\"Dashboard\"}},[_c('i',{staticClass:\"fal fa-2x fa-fw fa-gauge-high\"})]),_c('router-link',{directives:[{name:\"b-tooltip\",rawName:\"v-b-tooltip.hover.right\",modifiers:{\"hover\":true,\"right\":true}}],staticClass:\"link\",attrs:{\"data-cy\":\"views\",\"tabindex\":\"0\",\"to\":{ name: 'overview' },\"title\":_vm.recordName + ' Views'}},[_c('i',{staticClass:\"fal fa-2x fa-fw fa-list-ul\"})]),_c('router-link',{directives:[{name:\"b-tooltip\",rawName:\"v-b-tooltip.hover.right\",modifiers:{\"hover\":true,\"right\":true}}],staticClass:\"link\",attrs:{\"data-cy\":\"insights\",\"tabindex\":\"0\",\"to\":{ name: 'insights' },\"title\":\"Insights\"}},[_c('i',{staticClass:\"fal fa-2x fa-fw fa-chart-line\"})]),(_vm.me && _vm.me.extendedPermissions && _vm.me.extendedPermissions.scheduling)?_c('router-link',{directives:[{name:\"b-tooltip\",rawName:\"v-b-tooltip.hover.right\",modifiers:{\"hover\":true,\"right\":true}}],staticClass:\"link\",attrs:{\"data-cy\":\"scheduling\",\"tabindex\":\"0\",\"to\":{ name: 'scheduling' },\"title\":\"Scheduling\"}},[_c('i',{staticClass:\"fal fa-2x fa-fw fa-calendar-days\"})]):_vm._e(),(_vm.me && _vm.me.editData)?_c('router-link',{directives:[{name:\"b-tooltip\",rawName:\"v-b-tooltip.hover.right\",modifiers:{\"hover\":true,\"right\":true}}],staticClass:\"link\",attrs:{\"data-cy\":\"settings\",\"tabindex\":\"0\",\"to\":{ name: 'configuration' },\"title\":\"Settings\"}},[_c('i',{staticClass:\"fal fa-2x fa-fw fa-gear\"})]):_vm._e(),(_vm.hasIntegrations)?_c('router-link',{directives:[{name:\"b-tooltip\",rawName:\"v-b-tooltip.hover.right\",modifiers:{\"hover\":true,\"right\":true}}],staticClass:\"link\",attrs:{\"data-cy\":\"integrations\",\"tabindex\":\"0\",\"to\":{ name: 'integrations' },\"title\":\"Integrations\"}},[_c('i',{staticClass:\"fal fa-2x fa-fw fa-lightbulb\"})]):_vm._e(),(_vm.me && _vm.me.editUsers)?_c('router-link',{directives:[{name:\"b-tooltip\",rawName:\"v-b-tooltip.hover.right\",modifiers:{\"hover\":true,\"right\":true}}],staticClass:\"link\",attrs:{\"data-cy\":\"users\",\"tabindex\":\"0\",\"to\":{ name: 'users' },\"title\":\"Users\"}},[_c('i',{staticClass:\"fal fa-2x fa-fw fa-user-group\"})]):_vm._e()]),_c('zendesk-help',{staticClass:\"zen-help-at-bottom\"})],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { Component, Vue } from \"vue-property-decorator\"\r\nimport { State, Getter } from \"vuex-class\"\r\n\r\nimport ZendeskHelp from \"@/components/ZendeskHelp.vue\"\r\n\r\nimport { BaseState } from \"@/store\"\r\nimport { CurrentUser } from \"@/types/user\"\r\n\r\n\t@Component({\r\n\t\tcomponents: {\r\n\t\t\t\"zendesk-help\": ZendeskHelp\r\n\t\t}\r\n\t})\r\nexport default class SideBar extends Vue {\r\n\t\t@State((state: BaseState) => state.me) private readonly me!: CurrentUser;\r\n\r\n\t\t@Getter(\"getRecordName\") private readonly recordName!: string;\r\n\t\t@Getter(\"getHasIntegrations\") private readonly hasIntegrations!: boolean;\r\n}\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--13-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SideBar.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--13-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SideBar.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./SideBar.vue?vue&type=template&id=ab6ad71e&scoped=true&\"\nimport script from \"./SideBar.vue?vue&type=script&lang=ts&\"\nexport * from \"./SideBar.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./SideBar.vue?vue&type=style&index=0&id=ab6ad71e&prod&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"ab6ad71e\",\n null\n \n)\n\nexport default component.exports","\r\nimport { Component, Vue, Prop } from \"vue-property-decorator\"\r\nimport { namespace, Getter } from \"vuex-class\"\r\n\r\nimport CaseFilters from \"@/components/CaseList/CaseFilters.vue\"\r\nimport SlideMenu from \"@/components/SlideMenu.vue\"\r\nimport QuickCreate from \"@/components/CaseDetails/QuickCreate.vue\"\r\n\r\nimport HeaderBar from \"./HeaderBar.vue\"\r\nimport SideBar from \"./SideBar.vue\"\r\n\r\nimport { CurrentUser } from \"@/types/user\"\r\n\r\nimport { ViewsService } from \"@/services/viewsService\"\r\nimport QuickCreateMenu from \"@/components/CaseDetails/QuickCreateMenu.vue\"\r\n\r\nconst caseStore = namespace(\"cases\")\r\n\r\n@Component({\r\n\tcomponents: {\r\n\t\t\"quick-create-menu\": QuickCreateMenu,\r\n\t\t\"case-filters\": CaseFilters,\r\n\t\t\"quick-create\": QuickCreate,\r\n\t\t\"header-bar\": HeaderBar,\r\n\t\t\"side-bar\": SideBar\r\n\t}\r\n})\r\nexport default class Page extends Vue {\r\n\t$refs!: {\r\n\t\tslideMenu: SlideMenu\r\n\t}\r\n\r\n\t@Prop(String) private readonly title!: string;\r\n\r\n\t@Getter(\"getMe\")\r\n\tpublic me!: CurrentUser;\r\n\r\n\t@Getter(\"getHasIntegrations\") hasIntegrations!: boolean\r\n\r\n\t@Getter(\"getScreenWidth\")\r\n\tpublic screenWidth!: number;\r\n\r\n\t@caseStore.State viewsService!: ViewsService;\r\n\r\n\t@Getter(\"getCaseName\") private readonly caseName!: string;\r\n\t@Getter(\"getRecordName\") private readonly recordName!: string;\r\n\r\n\t// @caseStore.State\r\n\t// private caseToast!: string | null\r\n\r\n\t// @caseStore.Mutation\r\n\t// private setCaseToast!: (message: string | null) => void\r\n\r\n\t// @State\r\n\t// private userToast!: string | null\r\n\r\n\t// @Mutation\r\n\t// private setUserToast!: (message: string | null) => void\r\n\r\n\t// @Watch(\"caseToast\")\r\n\t// onCaseToastChanged (newMessage: string | null) {\r\n\t// \tif (newMessage) {\r\n\t// \t\tthis.$bvToast.toast(newMessage, {\r\n\t// \t\t\ttitle: this.getRecordName,\r\n\t// \t\t\tvariant: \"danger\",\r\n\t// \t\t\tsolid: true,\r\n\t// \t\t\tautoHideDelay: 10000\r\n\t// \t\t})\r\n\r\n\t// \t\tthis.setCaseToast(null)\r\n\t// \t}\r\n\t// }\r\n\r\n\t// @Watch(\"userToast\")\r\n\t// onUserToastChanged (newMessage: string | null) {\r\n\t// \tif (newMessage) {\r\n\t// \t\tthis.$bvToast.toast(newMessage, {\r\n\t// \t\t\ttitle: \"Message\",\r\n\t// \t\t\tvariant: \"danger\",\r\n\t// \t\t\tsolid: true,\r\n\t// \t\t\tautoHideDelay: 5000\r\n\t// \t\t})\r\n\r\n\t// \t\tthis.setUserToast(null)\r\n\t// \t}\r\n\t// }\r\n\r\n\t// public async mounted () {\r\n\t// \tif (this.screenWidth <= 800) {\r\n\t// \t\tthis.viewsService.loadViews()\r\n\t// \t}\r\n\t// \tthis.onCaseToastChanged(this.caseToast)\r\n\t// }\r\n\r\n\t// /** Displays list of routes user can navigate to */\r\n\t// public get displayRoutes (): any[] {\r\n\t// \treturn (this.$router as any).options.routes\r\n\t// \t\t.filter((route: any) => {\r\n\t// \t\t\treturn route && route.meta && route.meta.icon\r\n\t// \t\t})\r\n\t// \t\t.map((route: any) => {\r\n\t// \t\t\treturn {\r\n\t// \t\t\t\tname: route.name,\r\n\t// \t\t\t\ticon: route.meta.icon\r\n\t// \t\t\t}\r\n\t// \t\t})\r\n\t// }\r\n\r\n\t// public get currentRouteName () {\r\n\t// \treturn this.$router.currentRoute.name\r\n\t// }\r\n\r\n\t// public get activeViewId (): string | null {\r\n\t// \tif (this.$router.currentRoute.name === \"overview\") {\r\n\t// \t\treturn this.viewsService.activeViewId\r\n\t// \t}\r\n\t// \treturn null\r\n\t// }\r\n\r\n\t// public get viewsSummary () {\r\n\t// \tif (!this.viewsService.viewSummary) return null\r\n\t// \treturn this.viewsService.viewSummary.summary\r\n\t// }\r\n\r\n\t// public gotoPage () {\r\n\t// \tthis.$router.push({ name: \"overview\" })\r\n\t// }\r\n\r\n\t// private openMenu (): void {\r\n\t// \tthis.$refs.slideMenu.open()\r\n\t// }\r\n\r\n\tpublic newCase (): void {\r\n\t\tthis.$router.push({ path: \"/cases/New\" })\r\n\t}\r\n\r\n\t// public async changeView (viewId: string | null) {\r\n\t// \tthis.viewsService.activeViewId = viewId\r\n\t// \tif (this.$router.currentRoute.name === \"overview\") {\r\n\t// \t\tthis.viewsService.loadViews()\r\n\t// \t\tthis.$refs.slideMenu.close()\r\n\t// \t} else {\r\n\t// \t\tthis.$router.push({ path: \"/cases\" })\r\n\t// \t}\r\n\t// }\r\n}\r\n\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--13-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Page.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--13-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Page.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Page.vue?vue&type=template&id=6f9b6b06&scoped=true&\"\nimport script from \"./Page.vue?vue&type=script&lang=ts&\"\nexport * from \"./Page.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./Page.vue?vue&type=style&index=0&id=6f9b6b06&prod&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"6f9b6b06\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport { Vue, Component } from \"vue-property-decorator\"\r\n\r\nimport OldPage from \"@/components/Page.vue\"\r\nimport NewPage from \"@/components/New/Page/Page.vue\"\r\nimport { Getter } from \"vuex-class\"\r\n\r\n\t/**\r\n\t * @summary Page Wrapper component which provides a backwards-compatible way of updating pages within Cases\r\n\t * to use the new style components.\r\n\t *\r\n\t * If the user has the V2 interface switched on, the new page component (along with the new header bar and\r\n\t * sidebar) will be used.\r\n\t *\r\n\t * If the user does not have the V2 interface switched on, the old page component will be used instead.\r\n\t */\r\n\t@Component({\r\n\t\tcomponents: {\r\n\t\t\t\"old-page\": OldPage,\r\n\t\t\t\"new-page\": NewPage\r\n\t\t}\r\n\t})\r\nexport default class PageWrapper extends Vue {\r\n\t\t/**\r\n\t\t * @summary Getter which returns a value indicating whether the user has the V2 interface enabled.\r\n\t\t */\r\n\t\t@Getter(\"getUseV2\")\r\n\t\tshouldUseNewInterface!: boolean;\r\n}\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--13-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PageWrapper.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--13-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PageWrapper.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./PageWrapper.vue?vue&type=template&id=6d4aeb01&\"\nimport script from \"./PageWrapper.vue?vue&type=script&lang=ts&\"\nexport * from \"./PageWrapper.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/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-property-decorator\"\r\nimport { CaseDetails, TemplateDetails, CaseField } from \"@/types\"\r\n\r\nimport api from \"@/services/api\"\r\nimport cloneDeep from \"lodash/cloneDeep\"\r\nimport { caseColumns } from \"@/types/caseColumns\"\r\n\r\nconst cascadeListChange = async (caseDetails: CaseDetails, caseField: CaseField, newValue: any, getFields: boolean) => {\r\n\tif (!caseDetails || !caseField.field || !caseField.field.extensions) return\r\n\r\n\tif (caseField.field.dataType === \"list\") {\r\n\t\t// Find any field that depends on this one ...\r\n\t\tObject.keys(caseDetails.fields!).forEach(fieldId => {\r\n\t\t\tconst field = caseDetails.fields![fieldId]\r\n\t\t\tif (field.field &&\r\n\t\t\t\tfield.field.extensions &&\r\n\t\t\t\tfield.field.dataType !== \"calculated\" &&\r\n\t\t\t\tfield.field.extensions.dataListField === caseField.field.id) {\r\n\t\t\t\tif (newValue.fields && newValue.fields[field.field.extensions.dataItemField] !== undefined) {\r\n\t\t\t\t\tfield.value = newValue.fields[field.field.extensions.dataItemField]\r\n\t\t\t\t\tif (caseDetails.id) {\r\n\t\t\t\t\t\t// Inside a ForEach, so no async allowed! We need to assign field to a const to prevent data changes in the loop.\r\n\t\t\t\t\t\tconst updateField = field\r\n\t\t\t\t\t\tapi.saveCaseField(caseDetails.id, field.field.id!, field.value).then(() => {\r\n\t\t\t\t\t\t\tupdateField.oldValue = updateField.value\r\n\t\t\t\t\t\t})\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t})\r\n\t}\r\n\r\n\tif (caseField.field.extensions &&\r\n\t\tcaseField.field.extensions.listFilterValueField &&\r\n\t\t(Array.isArray(newValue) ? newValue.length : newValue)) {\r\n\t\tconst listFilterField = caseDetails.fields![caseField.field.extensions.listFilterValueField] as CaseField\r\n\t\tif (!listFilterField) return\r\n\r\n\t\tlet valueChanged = false\r\n\r\n\t\tlet updatedItems = newValue\r\n\t\tif (getFields) {\r\n\t\t\t// This is for recursed calls. We need to hit up the data service to fill the fields\r\n\t\t\t// The fields will be set on first call, because it's from the data source itself, not fields within the source object.\r\n\t\t\tif (Array.isArray(newValue)) {\r\n\t\t\t\tupdatedItems = await Promise.all(newValue.map((item: { id: string }) =>\r\n\t\t\t\t\tapi.dataSourceGetItem(item.id)\r\n\t\t\t\t))\r\n\t\t\t} else {\r\n\t\t\t\tupdatedItems = await api.dataSourceGetItem(newValue.id)\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tlet updatedValue = cloneDeep(listFilterField.value) as any\r\n\r\n\t\t// Function to set value on the target field\r\n\t\tconst addValue = listFilterField.field.dataType === \"list\"\r\n\t\t\t? (id: string, label: string) => {\r\n\t\t\t\t// For list type fields, set the value if not set; don't override existing values.\r\n\t\t\t\tif (!updatedValue) {\r\n\t\t\t\t\tvalueChanged = true\r\n\t\t\t\t\tupdatedValue = id\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\t: (id: string, label: string) => {\r\n\t\t\t\t// For list-multiple fields, if null, make a list. Then add if not already there.\r\n\t\t\t\tif (!updatedValue) {\r\n\t\t\t\t\tupdatedValue = []\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (!updatedValue.some((v: {id: string, label: string}) => v.id === id)) {\r\n\t\t\t\t\tvalueChanged = true\r\n\t\t\t\t\tupdatedValue.push({ id, label })\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\tif (Array.isArray(newValue)) {\r\n\t\t\t// The value we've just set is an array, so iterate through\r\n\t\t\tif (updatedItems.length > 0) {\r\n\t\t\t\tconst newValueFilterValues = updatedItems\r\n\t\t\t\t\t.filter((v: any) => v.fields[caseField.field.extensions!.listFilter])\r\n\t\t\t\t\t.map((v: any) => v.fields[caseField.field.extensions!.listFilter])\r\n\r\n\t\t\t\tnewValueFilterValues.forEach((v: any) => {\r\n\t\t\t\t\tif (Array.isArray(v)) {\r\n\t\t\t\t\t\tv.forEach((item: {id: string, label: string}) => addValue(item.id, item.label))\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\taddValue(v.id, v.label)\r\n\t\t\t\t\t}\r\n\t\t\t\t})\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\t// const newValueFilterValue =\r\n\t\t\taddValue(updatedItems.fields[caseField.field.extensions!.listFilter],\r\n\t\t\t\tupdatedItems.fields[caseField.field.extensions!.listFilter + \"-label\"])\r\n\t\t}\r\n\r\n\t\tif (caseDetails && valueChanged) {\r\n\t\t\t// Value changed, so push it onto the object.\r\n\t\t\tlistFilterField.value = updatedValue\r\n\r\n\t\t\t// only try to save if this isn't a new case\r\n\t\t\tif (caseDetails.id) {\r\n\t\t\t\tawait api.saveCaseField(caseDetails.id, listFilterField.field.id!, listFilterField.value)\r\n\t\t\t\tlistFilterField.oldValue = updatedValue\r\n\t\t\t}\r\n\r\n\t\t\t// Recurse in case this affected other rows\r\n\t\t\tcascadeListChange(\r\n\t\t\t\tcaseDetails,\r\n\t\t\t\tlistFilterField,\r\n\t\t\t\tupdatedValue,\r\n\t\t\t\ttrue\r\n\t\t\t)\r\n\t\t}\r\n\t}\r\n}\r\n\r\nconst applyTemplate = (caseDetails: CaseDetails, template: TemplateDetails) => {\r\n\tcaseDetails.templateId = template.id\r\n\tcaseDetails.sections = template.sections\r\n\tcaseDetails.sectionDetails = template.sectionDetails\r\n\r\n\tif (template.severityId) {\r\n\t\tcaseDetails.severityId = template.severityId\r\n\t}\r\n\r\n\tconst fieldIds = new Set()\r\n\ttemplate.fields.forEach(field => {\r\n\t\tfieldIds.add(field.field.id!)\r\n\t\tconst caseField = {\r\n\t\t\tcaseId: caseDetails.id,\r\n\t\t\toldValue: null,\r\n\t\t\tvalue: null,\r\n\t\t\tlabel: null,\r\n\t\t\tvalueObject: null,\r\n\t\t\tsection: field.section,\r\n\t\t\torder: field.order,\r\n\t\t\tpermissions: field.permissions,\r\n\t\t\trequiredCase: field.requiredCase,\r\n\t\t\trequiredRecord: field.requiredRecord,\r\n\t\t\tfield: field.field\r\n\t\t} as CaseField\r\n\r\n\t\tVue.set(caseDetails.fields!, field.field.id!, caseField)\r\n\t})\r\n\r\n\t// Remove all fields that no longer apply\r\n\tconst caseFieldIds = Object.keys(caseDetails.fields!)\r\n\tcaseFieldIds.forEach(fieldId => {\r\n\t\tif (!fieldIds.has(fieldId)) {\r\n\t\t\tVue.delete(caseDetails.fields!, fieldId)\r\n\t\t}\r\n\t})\r\n\r\n\tcaseDetails.cadenceEnabled = !!(template.cadenceDetails && template.cadenceDetails.cadencePeriod !== null)\r\n\tcaseDetails.cadenceDetails = template.cadenceDetails\r\n\r\n\tif (template.fieldDefaultValues) {\r\n\t\tObject.keys(template.fieldDefaultValues).forEach(fieldId => {\r\n\t\t\tconst fieldInstance = caseDetails.fields[fieldId] as CaseField\r\n\t\t\tif (fieldInstance) {\r\n\t\t\t\tfieldInstance.value = template.fieldDefaultValues![fieldId]\r\n\r\n\t\t\t\t// Cascade dependany field values\r\n\t\t\t\tif (fieldInstance.field.dataType === \"list\" || fieldInstance.field.dataType === \"list-multiple\") {\r\n\t\t\t\t\tcascadeListChange(\r\n\t\t\t\t\t\tcaseDetails,\r\n\t\t\t\t\t\tfieldInstance,\r\n\t\t\t\t\t\tfieldInstance.value,\r\n\t\t\t\t\t\tfalse\r\n\t\t\t\t\t)\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t})\r\n\t}\r\n}\r\n\r\nconst updateCaseDetails = (currentCase: CaseDetails, updatedCase: CaseDetails) => {\r\n\tcurrentCase.title = updatedCase.title\r\n\tcurrentCase.summary = updatedCase.summary\r\n\tcurrentCase.severityId = updatedCase.severityId\r\n\tcurrentCase.statusId = updatedCase.statusId\r\n\tcurrentCase.pendingTeams = updatedCase.pendingTeams\r\n\tcurrentCase.actions = updatedCase.actions\r\n\tcurrentCase.areas = updatedCase.areas\r\n\tcurrentCase.links = updatedCase.links\r\n\tcurrentCase.isCase = updatedCase.isCase\r\n\tcurrentCase.isClosed = updatedCase.isClosed\r\n\tcurrentCase.cadenceDetails = updatedCase.cadenceDetails\r\n\tcurrentCase.permissions = updatedCase.permissions\r\n\tcurrentCase.builtInFieldLocks = updatedCase.builtInFieldLocks\r\n\r\n\tcurrentCase.lastUpdatedAt = updatedCase.lastUpdatedAt\r\n\tcurrentCase.assigneeId = updatedCase.assigneeId\r\n\r\n\tif (updatedCase.sections != null && updatedCase.sections.length > currentCase.sections.length) {\r\n\t\tcurrentCase.sections = updatedCase.sections\r\n\t}\r\n\r\n\tif (currentCase.fields && updatedCase.fields) {\r\n\t\tconst currentFields = currentCase.fields\r\n\r\n\t\tObject.keys(currentFields).forEach(fieldId => {\r\n\t\t\tif (!(fieldId in updatedCase.fields)) {\r\n\t\t\t\tVue.delete(currentCase.fields!, currentFields[fieldId].field.id!)\r\n\t\t\t\tdelete currentFields[fieldId]\r\n\t\t\t}\r\n\t\t})\r\n\r\n\t\tObject.keys(updatedCase.fields).forEach(fieldId => {\r\n\t\t\tconst field = updatedCase.fields![fieldId]\r\n\t\t\tif (currentFields[field.field.id!]) {\r\n\t\t\t\tif (!field.inUseBy) {\r\n\t\t\t\t\tcurrentFields[field.field.id!].value = currentFields[field.field.id!].oldValue = field.value\r\n\t\t\t\t\tcurrentFields[field.field.id!].label = field.label\r\n\t\t\t\t}\r\n\t\t\t\tcurrentFields[field.field.id!].field.dataType = field.field.dataType\r\n\t\t\t\tcurrentFields[field.field.id!].inUseBy = field.inUseBy\r\n\t\t\t\tcurrentFields[field.field.id!].permissions = field.permissions\r\n\t\t\t} else if (currentCase) {\r\n\t\t\t\tVue.set(currentCase.fields!, field.field.id!, field)\r\n\t\t\t}\r\n\t\t})\r\n\t}\r\n\r\n\tcurrentCase.users = updatedCase.users\r\n\tcurrentCase.tags = updatedCase.tags\r\n}\r\n\r\nconst applyFieldChanges = (record: CaseDetails, changes: { [key: string]: { label: string, value: any } }) => {\r\n\tObject.keys(changes).forEach(key => {\r\n\t\tconst change = changes[key]\r\n\r\n\t\tif (key.startsWith(\"fields.\")) {\r\n\t\t\tconst fieldId = key.substring(7)\r\n\t\t\tif (!record.fields) {\r\n\t\t\t\tVue.set(record, \"fields\", {})\r\n\t\t\t}\r\n\t\t\tif (!record.fields[fieldId]) {\r\n\t\t\t\tVue.set(record.fields, fieldId, {})\r\n\t\t\t}\r\n\r\n\t\t\tVue.set(record.fields[fieldId], \"value\", change.value)\r\n\t\t\tVue.set(record.fields[fieldId], \"label\", change.label)\r\n\t\t} else {\r\n\t\t\tVue.set(record, key, change.value)\r\n\t\t\tconst column = caseColumns.find(c => c.key === key)\r\n\t\t\tif (column && column.displayKey) {\r\n\t\t\t\tVue.set(record, column.displayKey, change.label)\r\n\t\t\t}\r\n\t\t}\r\n\t})\r\n}\r\n\r\nexport {\r\n\tcascadeListChange,\r\n\tapplyTemplate,\r\n\tupdateCaseDetails,\r\n\tapplyFieldChanges\r\n}\r\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"results-holder\"},[(_vm.displayCalculations.length > 0)?_c('chart',{staticClass:\"m-a-5 flex-grow-1\",staticStyle:{\"overflow\":\"hidden\"},attrs:{\"type\":_vm.chartType,\"data\":_vm.chartData,\"options\":_vm.configuredChartOptions}}):_vm._e(),_c('div',{staticClass:\"graph-controls d-flex\"},[_c('div',{staticClass:\"flex-grow-1 m-r-10\"},[(!_vm.graphCalculations)?[(_vm.chartType === 'PieChart' && _vm.pieCalculations.length > 1)?_c('v-select',{attrs:{\"options\":_vm.pieCalculations,\"label\":\"label\"},model:{value:(_vm.singleCalculation),callback:function ($$v) {_vm.singleCalculation=$$v},expression:\"singleCalculation\"}}):(_vm.chartType !== 'PieChart')?_c('v-select',{attrs:{\"multiple\":\"\",\"options\":_vm.calculations,\"clearable\":true,\"label\":\"label\"},model:{value:(_vm.includedCalculations),callback:function ($$v) {_vm.includedCalculations=$$v},expression:\"includedCalculations\"}}):_vm._e()]:_vm._e()],2),(_vm.showChartOptions)?_c('chart-options',{attrs:{\"chartType\":_vm.chartType,\"chartData\":_vm.chartData},model:{value:(_vm.chartConfiguration),callback:function ($$v) {_vm.chartConfiguration=$$v},expression:\"chartConfiguration\"}}):_vm._e()],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { Component, Vue, Watch, Prop } from \"vue-property-decorator\"\r\nimport { namespace, Getter, Mutation, Action } from \"vuex-class\"\r\n\r\nimport { Team, CaseDetails } from \"@/types\"\r\nimport User from \"@/types/user\"\r\nimport { InsightCalculation, InsightCalculationTotal, LabelFormat } from \"@/types/insights\"\r\n\r\n// @ts-ignore\r\nimport { GChart } from \"vue-google-charts\"\r\nimport moment from \"moment\"\r\nimport { formatFieldsMixin } from \"@/mixins/formatFieldsMixin\"\r\n\r\nimport ChartOptions from \"./ChartOptions.vue\"\r\nimport vSelect from \"vue-select\"\r\n\r\nimport api from \"@/services/api\"\r\n\r\nconst caseStore = namespace(\"cases\")\r\n\r\n@Component({\r\n\tcomponents: {\r\n\t\t\"v-select\": vSelect,\r\n\t\t\"chart\": GChart,\r\n\t\t\"chart-options\": ChartOptions\r\n\t}\r\n})\r\nexport default class ChartResults extends Vue {\r\n\t@Getter(\"getMe\") public me!: User;\r\n\r\n\t@Getter(\"getScreenWidth\") public screenWidth!: number;\r\n\r\n\t@Prop()\r\n\tresultGroups: any;\r\n\r\n\t@Prop()\r\n\tcolumns: any;\r\n\r\n\t@Prop({ default: () => [] })\r\n\tcalculations!: InsightCalculation[];\r\n\r\n\t@Prop({ default: () => null })\r\n\tgraphCalculations!: string[] | null;\r\n\r\n\t@Prop({ default: \"ColumnChart\" })\r\n\tchartType: any;\r\n\r\n\t@Prop({ default: LabelFormat.Text })\r\n\tlabelFormat!: LabelFormat;\r\n\r\n\t@Prop({ default: true })\r\n\tshowChartOptions!: boolean;\r\n\r\n\t@Prop({ default: function () { return [] } })\r\n\tchartConfiguration!: any;\r\n\r\n\tuseValueLabels: boolean = false\r\n\tsingleCalculation: InsightCalculation | null = null;\r\n\tincludedCalculations: InsightCalculation[] = [];\r\n\r\n\tchartOptions: any = {\r\n\t\tbackgroundColor: \"transparent\",\r\n\t\tlegend: {\r\n\t\t\tposition: \"top\"\r\n\t\t},\r\n\t\twidth: \"100%\",\r\n\t\theight: \"100%\"\r\n\t}\r\n\r\n\tget displayCalculations () {\r\n\t\tif (this.chartType === \"PieChart\") {\r\n\t\t\treturn this.singleCalculation ? [this.singleCalculation] : []\r\n\t\t} else if (this.graphCalculations) {\r\n\t\t\treturn this.calculations.filter(c => this.graphCalculations!.includes(c.key))\r\n\t\t} else {\r\n\t\t\treturn this.includedCalculations\r\n\t\t}\r\n\t}\r\n\r\n\tget pieCalculations () {\r\n\t\tif (!this.calculations) return []\r\n\t\treturn this.calculations.filter(c => !c.groupBy)\r\n\t}\r\n\r\n\tget configuredChartOptions () {\r\n\t\tthis.useValueLabels = false\r\n\r\n\t\tconst graphOptions = this.chartConfiguration.graphOptions\r\n\r\n\t\tif (graphOptions === \"labels\") {\r\n\t\t\tthis.useValueLabels = true\r\n\t\t}\r\n\r\n\t\t// Check the appropriate checkbox options rendered with ChartOptions\r\n\t\t// and send the user selected choice to google charts\r\n\t\tswitch (this.chartType) {\r\n\t\t\tcase \"ColumnChart\":\r\n\t\t\t\tswitch (true) {\r\n\t\t\t\t\tcase graphOptions === \"column\" || !graphOptions:\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\t...this.chartOptions,\r\n\t\t\t\t\t\t\tisStacked: false\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\tcase graphOptions === \"stacked\":\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\t...this.chartOptions,\r\n\t\t\t\t\t\t\tisStacked: true\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\tcase graphOptions === \"percent\":\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\t...this.chartOptions,\r\n\t\t\t\t\t\t\tisStacked: \"percent\"\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\tdefault:\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\t...this.chartOptions\r\n\t\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\tcase \"ComboChart\":\r\n\t\t\t\treturn {\r\n\t\t\t\t\t...this.chartOptions,\r\n\t\t\t\t\tseriesType: \"bars\",\r\n\t\t\t\t\tseries: {\r\n\t\t\t\t\t\t[graphOptions]: {\r\n\t\t\t\t\t\t\ttype: \"line\",\r\n\t\t\t\t\t\t\tcurveType: \"function\"\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\tcase \"LineChart\":\r\n\t\t\t\tswitch (true) {\r\n\t\t\t\t\tcase graphOptions === true:\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\t...this.chartOptions,\r\n\t\t\t\t\t\t\tcurveType: \"function\"\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\tdefault:\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\t...this.chartOptions,\r\n\t\t\t\t\t\t\tcurveType: \"none\"\r\n\t\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\tdefault:\r\n\t\t\t// return default options for non monitored chart types\r\n\t\t\t\treturn {\r\n\t\t\t\t\t...this.chartOptions,\r\n\t\t\t\t\t...this.chartConfiguration\r\n\t\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tget chartData () {\r\n\t\tif (!this.resultGroups || !this.calculations || this.displayCalculations.length === 0) {\r\n\t\t\treturn []\r\n\t\t}\r\n\r\n\t\tconst header = [\r\n\t\t\t\"Header\",\r\n\t\t\t...this.displayCalculations.map(calculation => {\r\n\t\t\t\tif (calculation && calculation.groupBy && calculation.groupByKeyLabels) {\r\n\t\t\t\t\tconst calcKeys = Object.keys(calculation.groupByKeyLabels)\r\n\t\t\t\t\tvar groupedHeaders: any[] = calcKeys.map(k => calculation.groupByKeyLabels![k])\r\n\r\n\t\t\t\t\tif (this.useValueLabels) {\r\n\t\t\t\t\t\tgroupedHeaders = groupedHeaders.flatMap(h => [h, { role: \"annotation\" }])\r\n\t\t\t\t\t}\r\n\t\t\t\t\treturn groupedHeaders\r\n\t\t\t\t} else {\r\n\t\t\t\t\tvar headers: any[] = [calculation.label]\r\n\r\n\t\t\t\t\tif (this.useValueLabels) {\r\n\t\t\t\t\t\theaders.push({ role: \"annotation\" })\r\n\t\t\t\t\t}\r\n\t\t\t\t\treturn headers\r\n\t\t\t\t}\r\n\t\t\t}).flat()\r\n\t\t]\r\n\r\n\t\tconst values = this.resultGroups.map((group: any) => {\r\n\t\t\treturn [\r\n\t\t\t\tformatFieldsMixin.methods.formatLabel(this.labelFormat, group.label),\r\n\t\t\t\t...this.displayCalculations.map(calculation => {\r\n\t\t\t\t\tif (calculation && calculation.groupBy && calculation.groupByKeyLabels) {\r\n\t\t\t\t\t\tconst calcKeys = Object.keys(calculation.groupByKeyLabels)\r\n\t\t\t\t\t\tvar groupedVals = calcKeys.map(\r\n\t\t\t\t\t\t\tk => group.calculations\r\n\t\t\t\t\t\t\t\t? group.calculations[calculation.key] && group.calculations[calculation.key][k]\r\n\t\t\t\t\t\t\t\t\t? group.calculations[calculation.key][k]\r\n\t\t\t\t\t\t\t\t\t: 0\r\n\t\t\t\t\t\t\t\t: 0\r\n\t\t\t\t\t\t)\r\n\r\n\t\t\t\t\t\tif (this.useValueLabels) {\r\n\t\t\t\t\t\t\tgroupedVals = groupedVals.flatMap(v => [v, v])\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\treturn groupedVals\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tvar vals = [group.calculations ? group.calculations[calculation.key] || 0 : 0]\r\n\r\n\t\t\t\t\t\tif (this.useValueLabels) {\r\n\t\t\t\t\t\t\tvals.push(group.calculations ? group.calculations[calculation.key] || 0 : 0)\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\treturn vals\r\n\t\t\t\t\t}\r\n\t\t\t\t}).flat()\r\n\t\t\t]\r\n\t\t})\r\n\r\n\t\treturn [\r\n\t\t\theader,\r\n\t\t\t...values\r\n\t\t]\r\n\t}\r\n\r\n\tprivate mounted () {\r\n\t\tif (this.calculations.length > 0) {\r\n\t\t\tif (this.includedCalculations.length === 0) {\r\n\t\t\t\tthis.includedCalculations.push(this.calculations[0])\r\n\t\t\t}\r\n\t\t\tif (!this.singleCalculation && this.pieCalculations.length > 0) {\r\n\t\t\t\tthis.singleCalculation = this.pieCalculations[0]\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n}\r\n\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ChartResults.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ChartResults.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ChartResults.vue?vue&type=template&id=76d2111c&scoped=true&\"\nimport script from \"./ChartResults.vue?vue&type=script&lang=ts&\"\nexport * from \"./ChartResults.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./ChartResults.vue?vue&type=style&index=0&id=76d2111c&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"76d2111c\",\n null\n \n)\n\nexport default component.exports","\r\nimport api from \"@/services/api\"\r\nimport { CaseNameSettings } from \"@/types/caseNameSettings\"\r\n\r\nclass ApiCaseNameSettings {\r\n\tprivate get axios () { return api.getAxios() }\r\n\r\n\tpublic async caseNameSettingsList (): Promise { return (await this.axios.get(\"/caseNameSettings\")).data }\r\n\tpublic async caseNameSettingsSave (caseNameSettings: CaseNameSettings): Promise { return (await this.axios.post(\"/caseNameSettings\", caseNameSettings)).data }\r\n\tpublic async caseNameSettingsDelete (caseNameSettings: CaseNameSettings): Promise { await this.axios.delete(`/caseNameSettings/${caseNameSettings.id}`) }\r\n\tpublic async caseNameSettingsDefault (caseNameSettings: CaseNameSettings): Promise { await this.axios.put(`/caseNameSettings/default/${caseNameSettings.id}`) }\r\n}\r\n\r\nconst apiCaseNameSettings = new ApiCaseNameSettings()\r\nexport default apiCaseNameSettings\r\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.field)?_c('div',{attrs:{\"data-cy\":'parameter-value-' + _vm.field.key}},[(_vm.field.dataSourceId && _vm.fieldDataType !== _vm.DataType.timeSpentAsValue)?_c('dataSourceSelect',{attrs:{\"value\":_vm.value,\"currentCase\":_vm.currentCase,\"field\":_vm.fieldAsFieldType,\"multiple\":_vm.fieldDataType === _vm.DataType.arrayMultiple && _vm.allowMultiple,\"dataSourceId\":_vm.field.dataSourceId,\"ignorePermissions\":true},on:{\"input\":_vm.valueChanged,\"inputLabel\":_vm.labelChanged}}):(_vm.fieldDataType === _vm.DataType.array || _vm.fieldDataType === _vm.DataType.arrayMultiple)?_c('v-select',{attrs:{\"append-to-body\":\"\",\"full-width\":true,\"value\":_vm.selectedItem,\"options\":_vm.fieldOptions,\"label\":_vm.field.listLabel ? _vm.field.listLabel : 'label',\"calculate-position\":_vm.calcDropdownPosition},on:{\"input\":_vm.valueItemChanged}}):(_vm.fieldDataType === _vm.DataType.userRole || _vm.fieldDataType === _vm.DataType.subrole)?_c('div',[(_vm.setFieldValue)?_c('user-role',{attrs:{\"extensions\":_vm.field.fieldExtensions,\"userRole\":_vm.field.fieldExtensions,\"title\":_vm.field.title,\"value\":_vm.value},on:{\"input\":_vm.valueChanged}}):_vm._e(),((_vm.operator !== null) &&\n\t\t\t\t\t\t\t(_vm.operator === _vm.Operator.Equals ||\n\t\t\t\t\t\t\t_vm.operator === _vm.Operator.NotEqual ||\n\t\t\t\t\t\t\t_vm.operator === _vm.Operator.GreaterThan ||\n\t\t\t\t\t\t\t_vm.operator === _vm.Operator.LessThan))?_c('numeric',{staticClass:\"m-b-0\",attrs:{\"value\":_vm.value},on:{\"input\":_vm.numberValueChanged}}):((_vm.operator !== null))?_c('v-select',{attrs:{\"append-to-body\":\"\",\"value\":_vm.selectedItem,\"options\":_vm.fieldOptions,\"label\":\"name\"},on:{\"input\":_vm.valueItemChanged}}):_vm._e()],1):(_vm.fieldDataType === _vm.DataType.date || _vm.fieldDataType === _vm.DataType.dateTime)?_c('div',[(_vm.showCollapsed)?[_c('b-dropdown',{attrs:{\"no-caret\":\"\",\"variant\":\"link\",\"menu-class\":\"sv-dropdown-menu\"},scopedSlots:_vm._u([{key:\"button-content\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.dateTimeText)+\" \")]},proxy:true}],null,false,213871934)},[_c('b-dropdown-form',[_c('date-time-param',{attrs:{\"value\":_vm.dynamicInputValue,\"field\":_vm.field,\"operator\":_vm.operator,\"dynamicValue\":_vm.dynamicValue,\"selectedSearchClauseParameters\":_vm.selectedSearchClauseParameters},on:{\"input\":_vm.dynamicInputValueChanged,\"searchClauseParametersChanged\":_vm.searchClauseParametersChanged}})],1)],1)]:[_c('date-time-param',{attrs:{\"value\":_vm.dynamicInputValue,\"field\":_vm.field,\"operator\":_vm.operator,\"dynamicValue\":_vm.dynamicValue,\"allowDynamic\":_vm.allowDynamic,\"selectedSearchClauseParameters\":_vm.selectedSearchClauseParameters},on:{\"input\":_vm.dynamicInputValueChanged,\"searchClauseParametersChanged\":_vm.searchClauseParametersChanged}})]],2):(_vm.fieldDataType === _vm.DataType.number)?_c('numeric',{staticClass:\"m-b-0\",attrs:{\"value\":_vm.value},on:{\"input\":_vm.numberValueChanged}}):(_vm.fieldDataType === _vm.DataType.boolean)?_c('b-form-checkbox',{staticClass:\"m-b-0\",attrs:{\"checked\":_vm.value},on:{\"change\":_vm.booleanValueChanged}}):(_vm.fieldDataType === _vm.DataType.mapPoint)?_c('div',{staticClass:\"m-b-0\"},[_c('map-search',{attrs:{\"value\":_vm.value},on:{\"input\":_vm.mapBoundsChanged}})],1):(_vm.isMounted &&\n\t\t_vm.fieldDataType === _vm.DataType.timeSpentAsValue &&\n\t\t_vm.selectedSearchClauseParameters &&\n\t\t_vm.selectedSearchClauseParameters.timeSpentClause)?_c('div',{staticClass:\"m-b-0\"},[((_vm.operator !== null) &&\n\t\t\t\t\t\t\t\t(_vm.operator === _vm.Operator.Equals ||\n\t\t\t\t\t\t\t\t_vm.operator === _vm.Operator.GreaterThan ||\n\t\t\t\t\t\t\t\t_vm.operator === _vm.Operator.LessThan))?[_c('dataSourceSelect',{attrs:{\"value\":_vm.value,\"dataSourceId\":_vm.timeSpentDataSourceId},on:{\"input\":_vm.timeSpentListValueChanged,\"inputLabel\":_vm.timeSpentListLabelChanged}}),_c('numeric',{staticClass:\"m-b-0\",attrs:{\"prepend\":'Hours Spent',\"value\":_vm.selectedSearchClauseParameters.timeSpentClause.hoursSpent},on:{\"input\":_vm.timeSpentHoursChanged}})]:_vm._e()],2):_c('b-form-input',{attrs:{\"type\":\"text\",\"autocomplete\":\"off\",\"value\":_vm.value},on:{\"input\":_vm.valueChanged}})],1):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","export enum DateClauseType {\r\n\tRelativeCurrentDate,\r\n RelativeDateRange,\r\n ExactDate,\r\n CurrentWeek,\r\n CurrentMonth,\r\n WeekNumber,\r\n YearToDate,\r\n DateRange,\r\n MonthRange\r\n}\r\n","const dateRangeLabels = [\r\n\t{\r\n\t\tid: \"PreviousWeek\",\r\n\t\ttitle: \"Previous Week\",\r\n\t\tdynamicValue: true,\r\n\t\tshowWeekStart: true\r\n\t},\r\n\t{\r\n\t\tid: \"CurrentWeek\",\r\n\t\ttitle: \"Current Week\",\r\n\t\tdynamicValue: true,\r\n\t\tshowWeekStart: true\r\n\t},\r\n\t{\r\n\t\tid: \"NextWeek\",\r\n\t\ttitle: \"Next Week\",\r\n\t\tdynamicValue: true,\r\n\t\tshowWeekStart: true\r\n\t},\r\n\t{\r\n\t\tid: \"CurrentMonth\",\r\n\t\ttitle: \"Current Month\",\r\n\t\tdynamicValue: true,\r\n\t\tshowWeekStart: false\r\n\t},\r\n\t{\r\n\t\tid: \"CurrentQuarter\",\r\n\t\ttitle: \"Current Quarter\",\r\n\t\tdynamicValue: true,\r\n\t\tshowWeekStart: false\r\n\t}\r\n]\r\n\r\nconst dateRangeRangeLabels = [\r\n\t{\r\n\t\tid: \"CurrentWeek\",\r\n\t\ttitle: \"Current Week\"\r\n\t},\r\n\t{\r\n\t\tid: \"CurrentMonth\",\r\n\t\ttitle: \"Current Month\"\r\n\t},\r\n\t{\r\n\t\tid: \"WeekNumber\",\r\n\t\ttitle: \"Week Number\"\r\n\t},\r\n\t{\r\n\t\tid: \"MonthRange\",\r\n\t\ttitle: \"Month Range\"\r\n\t},\r\n\t{\r\n\t\tid: \"YearToDate\",\r\n\t\ttitle: \"Year to Date\"\r\n\t},\r\n\t{\r\n\t\tid: \"DateRange\",\r\n\t\ttitle: \"Date Range\"\r\n\t}\r\n]\r\n\r\nexport { dateRangeLabels, dateRangeRangeLabels }\r\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"enhanced-map-wrapper ps__child--consume\"},[_c('skeleton-loader',{staticClass:\"h-100\",attrs:{\"loading\":!_vm.showMap}},[_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.showMap),expression:\"showMap\"}],ref:\"mappingContainer\",staticClass:\"h-100\",attrs:{\"id\":\"divMappingContainer\"}})])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { Component, Vue, Prop, Watch, InjectReactive } from \"vue-property-decorator\"\r\n\r\nimport { get, set } from \"lodash\"\r\n\r\n// @ts-ignore\r\nimport { Datetime } from \"vue-datetime\"\r\nimport vSelect from \"vue-select\"\r\n\r\nimport SkeletonLoader from \"@/components/SkeletonLoader.vue\"\r\n\r\nimport {\r\n\tgetEnhancedMapping,\r\n\tIEnhancedMapping,\r\n\tIMap,\r\n\tIMarker,\r\n\tILatLng,\r\n\tILatLngBounds,\r\n\tMultiMarker,\r\n\tMarkerType,\r\n\tIPolygon,\r\n\textend\r\n} from \"@sureview/v2-mapping\"\r\n\r\nimport { MapProvider, DrawArguments, MarkerDrawType } from \"@/services/mapProvider\"\r\n\r\n@Component({\r\n\tcomponents: {\r\n\t\t\"skeleton-loader\": SkeletonLoader\r\n\t}\r\n})\r\nexport default class MapSearchBounds extends Vue {\r\n\t$refs!: {\r\n\t\tmappingContainer: HTMLElement,\r\n\t}\r\n\r\n\t@Prop()\r\n\tvalue!: string;\r\n\r\n\tpublic enhancedMapping: IEnhancedMapping | null = null;\r\n\tpublic map: IMap | null = null;\r\n\r\n\tpublic mapKey: string = process.env.VUE_APP_GOOGLE_MAPS_API_KEY || \"\";\r\n\tprivate currentDrawing: MultiMarker | null = null;\r\n\tprivate searchBounds: IPolygon | null = null;\r\n\r\n\tprivate showMap: boolean = false;\r\n\r\n\tget markerType () {\r\n\t\treturn new MarkerType({\r\n\t\t\timageUrl: \"./images/map/green_small.svg\",\r\n\t\t\topacity: 0,\r\n\t\t\tline: {\r\n\t\t\t\tcolor: \"#4CAF50\",\r\n\t\t\t\tlinePath: \"solid\"\r\n\t\t\t},\r\n\t\t\tfill: {\r\n\t\t\t\tcolor: \"#4CAF50\",\r\n\t\t\t\topacity: 0.3\r\n\t\t\t}\r\n\t\t}, {\r\n\t\t\tfirst: {\r\n\t\t\t\timageUrl: \"./images/map/green_small.svg\",\r\n\t\t\t\topacity: 1,\r\n\t\t\t\tline: {\r\n\t\t\t\t\tcolor: \"#4CAF50\",\r\n\t\t\t\t\tlinePath: \"solid\"\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t})\r\n\t}\r\n\r\n\t@Watch(\"value\")\r\n\tonValueChanged () {\r\n\t\tif (this.searchBounds) {\r\n\t\t\tthis.searchBounds.remove()\r\n\t\t\tthis.searchBounds = null\r\n\t\t}\r\n\r\n\t\tif (this.map && this.value && this.value !== \"\") {\r\n\t\t\tvar regionPoints = JSON.parse(this.value)\r\n\r\n\t\t\tthis.searchBounds = this.enhancedMapping!.createPolygon(this.map!,\r\n\t\t\t\tregionPoints,\r\n\t\t\t\tthis.markerType,\r\n\t\t\t\t() => {})\r\n\t\t}\r\n\t}\r\n\r\n\tasync mounted () {\r\n\t\tthis.enhancedMapping = await getEnhancedMapping(\"google\", this.mapKey)\r\n\r\n\t\tthis.map = this.enhancedMapping.createMultipleMap(\r\n\t\t\tthis.$refs.mappingContainer,\r\n\t\t\t{ lat: 0, lng: 0 },\r\n\t\t\t1,\r\n\t\t\tfalse,\r\n\t\t\t\"roadmap\",\r\n\t\t\tnull\r\n\t\t)\r\n\r\n\t\tthis.map!.registerEvent(\"onClick\", this.mapClick)\r\n\t\tthis.map!.setCursor(\"crosshair\")\r\n\r\n\t\tif (this.value && this.value !== \"\") {\r\n\t\t\tvar regionPoints = JSON.parse(this.value)\r\n\r\n\t\t\tthis.searchBounds = this.enhancedMapping.createPolygon(this.map,\r\n\t\t\t\tregionPoints,\r\n\t\t\t\tthis.markerType,\r\n\t\t\t\t() => {})\r\n\r\n\t\t\tlet bounds: ILatLngBounds | null = null\r\n\t\t\tregionPoints.forEach((vertexPosition: ILatLng) => {\r\n\t\t\t\tbounds = extend(bounds || {} as ILatLngBounds, vertexPosition)\r\n\t\t\t})\r\n\r\n\t\t\tthis.map.zoom = 16\r\n\r\n\t\t\tif (bounds != null) {\r\n\t\t\t\tVue.nextTick().then(() => {\r\n\t\t\t\t\tthis.map!.zoom = 16\r\n\r\n\t\t\t\t\tVue.nextTick().then(() => {\r\n\t\t\t\t\t\tthis.map!.mapBounds = bounds!\r\n\t\t\t\t\t})\r\n\t\t\t\t\tthis.showMap = true\r\n\t\t\t\t})\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tnavigator.geolocation.getCurrentPosition((pos: any) => {\r\n\t\t\t\t\tthis.map!.center = {\r\n\t\t\t\t\t\tlat: pos.coords.latitude,\r\n\t\t\t\t\t\tlng: pos.coords.longitude\r\n\t\t\t\t\t}\r\n\t\t\t\t\tthis.map!.zoom = 16\r\n\t\t\t\t\tthis.showMap = true\r\n\t\t\t}, () => {\r\n\t\t\t\tthis.showMap = true\r\n\t\t\t})\r\n\t\t}\r\n\t}\r\n\r\n\tbeforeDestroy () {\r\n\t\tif (this.currentDrawing) {\r\n\t\t\tthis.currentDrawing.remove()\r\n\t\t\tthis.currentDrawing = null\r\n\t\t}\r\n\r\n\t\tif (this.searchBounds) {\r\n\t\t\tthis.searchBounds.remove()\r\n\t\t\tthis.searchBounds = null\r\n\t\t}\r\n\r\n\t\tif (this.map) {\r\n\t\t\tthis.enhancedMapping!.releaseMultipleMap(this.map)\r\n\t\t}\r\n\t}\r\n\r\n\tmapClick (clickLocation: { lat: number, lng: number }) {\r\n\t\tif (!this.currentDrawing) {\r\n\t\t\tif (this.searchBounds) {\r\n\t\t\t\tthis.searchBounds.remove()\r\n\t\t\t\tthis.searchBounds = null\r\n\t\t\t}\r\n\r\n\t\t\tthis.currentDrawing = new MultiMarker(this.enhancedMapping!,\r\n\t\t\t\tthis.map!,\r\n\t\t\t\t\"\",\r\n\t\t\t\tthis.markerType,\r\n\t\t\t\t[clickLocation],\r\n\t\t\t\t(clickedMarker: IMarker, index: number) => {\r\n\t\t\t\t\tif (index === 0) {\r\n\t\t\t\t\t\tthis.$emit(\"input\",\r\n\t\t\t\t\t\t\tthis.currentDrawing!.lineMarkers.map((m: any) => m.position))\r\n\r\n\t\t\t\t\t\tVue.nextTick().then(() => {\r\n\t\t\t\t\t\t\tif (this.currentDrawing) {\r\n\t\t\t\t\t\t\t\tthis.currentDrawing.remove()\r\n\t\t\t\t\t\t\t\tthis.currentDrawing = null\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t})\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t)\r\n\t\t} else {\r\n\t\t\tthis.currentDrawing.addPoint(clickLocation)\r\n\t\t}\r\n\t}\r\n}\r\n\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MapSearchBounds.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MapSearchBounds.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./MapSearchBounds.vue?vue&type=template&id=e4f9478e&scoped=true&\"\nimport script from \"./MapSearchBounds.vue?vue&type=script&lang=ts&\"\nexport * from \"./MapSearchBounds.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./MapSearchBounds.vue?vue&type=style&index=0&id=e4f9478e&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"e4f9478e\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.operator === 12 && _vm.allowDynamic === true)?_c('div',[_c('b-form-radio-group',{staticClass:\"m-b-10 m-t-10\",attrs:{\"name\":(\"dateClauseType-\" + _vm.clauseIndex),\"data-cy\":\"date-range-radio\",\"stacked\":\"\"},model:{value:(_vm.dateClauseType),callback:function ($$v) {_vm.dateClauseType=$$v},expression:\"dateClauseType\"}},[_c('b-form-radio',{attrs:{\"value\":_vm.DateClauseType.CurrentWeek}},[_vm._v(\"Current Week\")]),(_vm.selectedDateClauseType === _vm.DateClauseType.CurrentWeek)?_c('div',{staticClass:\"m-l-20\"},[_c('div',{staticClass:\"d-flex align-items-center m-b-10\"},[_c('span',{staticClass:\"m-r-5\"}),_c('v-select',{attrs:{\"data-cy\":\"select-startDayOfWeek\",\"options\":_vm.daysOfWeekNames,\"value\":this.selectedDayOfWeek,\"clearable\":false,\"label\":\"title\",\"placeholder\":\"Select Starting Day of Week\"},on:{\"input\":_vm.startDayOfWeekChanged}})],1)]):_vm._e(),_c('b-form-radio',{attrs:{\"value\":_vm.DateClauseType.CurrentMonth}},[_vm._v(\"Current Month\")]),(_vm.selectedDateClauseType === _vm.DateClauseType.CurrentMonth)?_c('div',{staticClass:\"m-l-20\"}):_vm._e(),_c('b-form-radio',{attrs:{\"value\":_vm.DateClauseType.WeekNumber}},[_vm._v(\"Week Number\")]),(_vm.selectedDateClauseType === _vm.DateClauseType.WeekNumber)?_c('div',{staticClass:\"m-l-20\"},[_c('div',{staticClass:\"d-flex align-items-center m-b-10\"},[_c('span',{staticClass:\"m-r-5\"},[_vm._v(\"Week \")]),_c('numeric',{staticClass:\"m-b-0\",attrs:{\"value\":this.weekNumber},on:{\"input\":_vm.weekNumberChanged}})],1),_c('div',{staticClass:\"d-flex align-items-center m-b-10\"},[_c('span',{staticClass:\"m-r-5\"}),_c('v-select',{attrs:{\"data-cy\":\"select-startDayOfWeek\",\"options\":_vm.daysOfWeekNames,\"value\":this.selectedDayOfWeek,\"clearable\":false,\"label\":\"title\",\"placeholder\":\"Select Starting Day of Week\"},on:{\"input\":_vm.startDayOfWeekChanged}})],1)]):_vm._e(),_c('b-form-radio',{attrs:{\"value\":_vm.DateClauseType.MonthRange}},[_vm._v(\"Month Range\")]),(_vm.selectedDateClauseType === _vm.DateClauseType.MonthRange)?_c('div',{staticClass:\"m-l-20\"},[_c('div',{staticClass:\"d-flex align-items-center\"},[_c('div',{staticClass:\"d-flex flex-column align-items-center m-r-10\"},[_c('month-picker',{attrs:{\"value\":_vm.startMonthRange,\"buttonText\":'Pick Start Month'},on:{\"monthChanged\":_vm.startMonthChanged}})],1),_c('div',{staticClass:\"d-flex flex-column align-items-center m-l-10\"},[_c('month-picker',{attrs:{\"value\":_vm.endMonthRange,\"buttonText\":'Pick End Month',\"minDate\":_vm.startMonthRange,\"isEndMonth\":true},on:{\"monthChanged\":_vm.endMonthChanged}})],1)])]):_vm._e(),_c('b-form-radio',{attrs:{\"value\":_vm.DateClauseType.YearToDate}},[_vm._v(\"Year to Date\")]),(_vm.selectedDateClauseType === _vm.DateClauseType.YearToDate)?_c('div',{staticClass:\"m-l-20\"}):_vm._e(),_c('b-form-radio',{attrs:{\"value\":_vm.DateClauseType.DateRange}},[_vm._v(\"Date Range\")]),(_vm.selectedDateClauseType === _vm.DateClauseType.DateRange)?_c('div',[_c('span',{staticClass:\"mt-3 m-r-5\"},[_vm._v(\"Start Date\")]),_c('datetime',{attrs:{\"value\":_vm.startDate},on:{\"input\":function($event){return _vm.dateRangeDateValueChanged($event,'startDate')}}}),_c('span',{staticClass:\"mt-3 m-r-5\"},[_vm._v(\"End Date\")]),_c('datetime',{attrs:{\"value\":_vm.endDate},on:{\"input\":function($event){return _vm.dateRangeDateValueChanged($event,'endDate')}}})],1):_vm._e()],1)],1):(_vm.allowDynamic === true)?_c('div',[(_vm.selectedDateClauseType !== null)?_c('b-form-radio-group',{staticClass:\"m-b-10 m-t-10\",attrs:{\"name\":(\"dateClauseType-\" + _vm.clauseIndex),\"data-cy\":\"date-radio\",\"stacked\":\"\"},model:{value:(_vm.dateClauseType),callback:function ($$v) {_vm.dateClauseType=$$v},expression:\"dateClauseType\"}},[_c('b-form-radio',{attrs:{\"value\":_vm.DateClauseType.RelativeCurrentDate},on:{\"change\":_vm.dateClauseChanged}},[_vm._v(\"Relative to current date\")]),(_vm.selectedDateClauseType === _vm.DateClauseType.RelativeCurrentDate)?_c('div',{staticClass:\"m-l-20\"},[_c('div',{staticClass:\"d-flex align-items-center m-b-10\"},[_c('span',{staticClass:\"m-r-5\"},[_vm._v(\"Current date plus\")]),_c('numeric',{staticClass:\"m-b-0\",attrs:{\"value\":_vm.dateValue},on:{\"input\":_vm.numberValueChanged}}),_c('span',{staticClass:\"m-l-5\"},[_vm._v(\"days\")])],1)]):_vm._e(),_c('b-form-radio',{attrs:{\"value\":_vm.DateClauseType.RelativeDateRange},on:{\"change\":_vm.dateClauseChanged}},[_vm._v(\"Start of period\")]),(_vm.selectedDateClauseType === _vm.DateClauseType.RelativeDateRange)?_c('div',{staticClass:\"m-l-20\"},[_c('div',{staticClass:\"d-flex align-items-center m-b-10\"},[_c('span',{staticClass:\"m-r-5\"},[_vm._v(\"Start of \")]),_c('v-select',{attrs:{\"data-cy\":\"date-range\",\"options\":_vm.dateRangeLabels,\"value\":_vm.dateValue,\"reduce\":function (i) { return i.id; },\"label\":\"title\",\"placeholder\":\"Select Range\"},on:{\"input\":_vm.valueChanged}})],1),(_vm.hasWeekStart)?_c('div',{staticClass:\"d-flex align-items-center m-b-10\"},[_c('span',{staticClass:\"m-r-5\"},[_vm._v(\"Start of week \")]),_c('v-select',{attrs:{\"data-cy\":\"select-startDayOfWeek\",\"options\":_vm.daysOfWeekNames,\"value\":_vm.selectedDayOfWeek,\"clearable\":false,\"label\":\"title\",\"placeholder\":\"Select Starting Day of Week\"},on:{\"input\":_vm.startDayOfWeekChanged}})],1):_vm._e()]):_vm._e(),_c('b-form-radio',{attrs:{\"value\":2},on:{\"change\":_vm.dateClauseChanged}},[_vm._v(\"Exact date\")]),(_vm.selectedDateClauseType === _vm.DateClauseType.ExactDate)?_c('datetime',{attrs:{\"value\":_vm.dateValue},on:{\"input\":_vm.dateValueChanged}}):_vm._e()],1):_vm._e()],1):_c('div',[_c('datetime',{attrs:{\"value\":_vm.dateValue},on:{\"input\":_vm.dateValueChanged}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"align-items-center m-b-10\"},[_c('div',{staticClass:\"d-flex\"},[(!_vm.isEndMonth)?_c('b',{staticClass:\"p-r-10\",attrs:{\"data-cy\":\"month-label\"}},[_vm._v(\"Start Month:\")]):_c('b',{staticClass:\"p-r-10\",attrs:{\"data-cy\":\"month-label\"}},[_vm._v(\"End Month:\")]),(_vm.selectedMonthLabel)?_c('span',{attrs:{\"data-cy\":\"month\"}},[_vm._v(\" \"+_vm._s(_vm.selectedMonthLabel)+\" \")]):_vm._e()]),_c('b-button',{attrs:{\"variant\":\"primary\",\"data-cy\":\"month-select\"},on:{\"click\":_vm.open}},[_vm._v(\" \"+_vm._s(_vm.buttonText)+\" \")]),_c('div',[(_vm.modalOpen)?_c('div',{key:\"overlay\",staticClass:\"month-picker-overlay\",on:{\"click\":function($event){if($event.target !== $event.currentTarget){ return null; }return _vm.close($event)}}}):_vm._e(),(_vm.modalOpen)?_c('div',{staticClass:\"card month-picker-popup\"},[_c('month-picker',{ref:\"monthPicker\",staticClass:\"form-control\",staticStyle:{\"z-index\":\"100\"},attrs:{\"data-cy\":\"month-picker\",\"variant\":_vm.getDarkMode ? 'dark' : 'default',\"min-date\":_vm.minDateValue,\"max-date\":_vm.maxDateValue,\"default-year\":_vm.selectedYear,\"default-month\":_vm.selectedMonth},on:{\"input\":_vm.monthChanged}})],1):_vm._e()])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { Component, Vue, Prop, Watch } from \"vue-property-decorator\"\r\nimport { MonthPicker, MonthPickerEvent } from \"vue-month-picker\"\r\nimport { Getter } from \"vuex-class\"\r\nimport moment from \"moment\"\r\nimport { BvEvent } from \"bootstrap-vue\"\r\n\r\n@Component({\r\n\tcomponents: {\r\n\t\t\"month-picker\": MonthPicker\r\n\t}\r\n})\r\nexport default class MonthPickerControl extends Vue {\r\n\t@Prop({ type: [String, Date], default: () => null })\r\n\tvalue!: string | Date | null\r\n\r\n\t@Prop({ type: String, default: \"Select Month\" })\r\n\tbuttonText!: string | null\r\n\r\n\t@Prop({ type: [String, Date], default: () => null })\r\n\tminDate!: string | Date | null\r\n\r\n\t@Prop({ type: [String, Date], default: () => null })\r\n\tmaxDate!: string | Date | null\r\n\r\n\t@Prop({ type: Boolean, default: false })\r\n\tisEndMonth!: boolean | null\r\n\r\n\t@Getter getDarkMode!: boolean;\r\n\r\n\tmodalOpen: boolean = false\r\n\r\n\tget minDateValue () : Date | null {\r\n\t\tif (this.minDate) {\r\n\t\t\treturn moment(this.minDate).toDate()\r\n\t\t}\r\n\t\treturn null\r\n\t}\r\n\r\n\tget maxDateValue () : Date | null {\r\n\t\tif (this.maxDate) {\r\n\t\t\tif (moment(this.maxDate!).month() !== moment(this.value!).month()) {\r\n\t\t\t\treturn moment(this.maxDate).toDate()\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn null\r\n\t}\r\n\r\n\tget selectedMonth () : number | null {\r\n\t\tif (this.value) {\r\n\t\t\tif (!this.isEndMonth) {\r\n\t\t\t\treturn moment(this.value).month() + 1\r\n\t\t\t} else {\r\n\t\t\t\treturn moment(this.value).month() + 1\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn moment().month() + 1\r\n\t}\r\n\r\n\tget selectedMonthLabel () : string | null {\r\n\t\tif (this.value) {\r\n\t\t\treturn moment(this.value).format(\"MMMM YYYY\")\r\n\t\t}\r\n\t\treturn null\r\n\t}\r\n\r\n\tget selectedYear () : number | null {\r\n\t\tif (this.value) {\r\n\t\t\treturn moment(this.value).year()\r\n\t\t}\r\n\t\treturn moment().year()\r\n\t}\r\n\r\n\topen (event: BvEvent) {\r\n\t\tevent.target.blur()\r\n\r\n\t\tthis.modalOpen = true\r\n\t}\r\n\r\n\tclose () {\r\n\t\tthis.modalOpen = false\r\n\t}\r\n\r\n\tmonthChanged (newMonth: MonthPickerEvent) {\r\n\t\tif (!this.isEndMonth) {\r\n\t\t\tthis.$emit(\"monthChanged\", newMonth.from)\r\n\t\t} else {\r\n\t\t\tthis.$emit(\"monthChanged\", newMonth.to)\r\n\t\t}\r\n\t\tthis.close()\r\n\t}\r\n}\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MonthPicker.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MonthPicker.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./MonthPicker.vue?vue&type=template&id=dd6a550e&\"\nimport script from \"./MonthPicker.vue?vue&type=script&lang=ts&\"\nexport * from \"./MonthPicker.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./MonthPicker.vue?vue&type=style&index=0&id=dd6a550e&prod&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/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","\r\nimport { Component, Vue, Watch, Prop } from \"vue-property-decorator\"\r\nimport { namespace, Getter, Mutation, Action } from \"vuex-class\"\r\n\r\nimport Guid from \"@/scripts/guid\"\r\n\r\nimport User from \"@/types/user\"\r\nimport { CaseDetails, Team, dataTypeByFieldType, DataType, Field } from \"@/types\"\r\nimport { caseColumns, CaseColumn, usersPlusDynamic } from \"@/types/caseColumns\"\r\nimport { InsightSearch, Operator, InsightCalculation, operatorLabels, operatorsByFieldType } from \"@/types/insights\"\r\nimport { dateRangeLabels } from \"@/types/insights/dateRange\"\r\nimport { DateClauseType } from \"@/types/insights/dateClauseType\"\r\nimport { DynamicValue } from \"@/types/dynamic\"\r\n\r\nimport vSelect from \"vue-select\"\r\n// @ts-ignore\r\nimport VuePerfectScrollbar from \"vue-perfect-scrollbar\"\r\n\r\nimport DataSourceSelect from \"@/components/Fields/DataSourceSelect.vue\"\r\n\r\nimport DateTime from \"@/components/Fields/DateTime.vue\"\r\nimport Numeric from \"@/components/Fields/Numeric.vue\"\r\nimport MapSearchBounds from \"./MapSearchBounds.vue\"\r\n\r\nimport api from \"@/services/api\"\r\nimport { Clause, SearchClauseParameters, DayOfWeek } from \"@/types/view\"\r\nimport { cloneDeep, isNull } from \"lodash\"\r\nimport MonthPicker from \"@/components/Controls/MonthPicker.vue\"\r\n\r\nimport moment from \"moment\"\r\n\r\nconst caseStore = namespace(\"cases\")\r\n\r\n@Component({\r\n\tcomponents: {\r\n\t\t\"v-select\": vSelect,\r\n\t\tdatetime: DateTime,\r\n\t\tnumeric: Numeric,\r\n\t\t\"map-search\": MapSearchBounds,\r\n\t\t\"dataSourceSelect\": DataSourceSelect,\r\n\t\t\"month-picker\": MonthPicker\r\n\t}\r\n})\r\nexport default class DateTimeParameterValue extends Vue {\r\n\t@Getter getDarkMode!: boolean;\r\n\r\n\t@Prop({ default: null })\r\n\tfield!: CaseColumn;\r\n\r\n\t@Prop({ default: null })\r\n\tvalue!: DynamicValue | null;\r\n\r\n\t@Prop({ default: null })\r\n\toperator!: Operator | null;\r\n\r\n\t@Prop({ default: true })\r\n\tallowDynamic!: boolean\r\n\r\n\t@Prop()\r\n\tselectedSearchClauseParameters!: SearchClauseParameters\r\n\r\n\t@Prop({ default: () => Guid.newGuid() })\r\n\tclauseIndex!: number | string;\r\n\r\n\tprivate selectedDayOfWeek: string | null = null;\r\n\tprivate weekNumber: number| null = null;\r\n\tprivate startDate: Date | null = null;\r\n\tprivate endDate: Date | null = null;\r\n\tprivate startMonthRange: Date | null = null;\r\n\tprivate endMonthRange: Date | null = null;\r\n\tprivate selectedDateClauseType: DateClauseType | null = null;\r\n\r\n\tprivate dateRangeLabels = dateRangeLabels\r\n\tprivate DateClauseType = DateClauseType\r\n\r\n\tprivate selectedItem = null;\r\n\tDayOfWeek = DayOfWeek\r\n\r\n\tprivate get dateValue (): string | null {\r\n\t\treturn this.value ? this.value.value : null\r\n\t}\r\n\r\n\tprivate get dynamicValue (): boolean {\r\n\t\treturn this.value ? this.value.dynamic : false\r\n\t}\r\n\r\n\tprivate get daysOfWeekNames (): string[] {\r\n\t\treturn Object.values(DayOfWeek).filter(value => typeof value === \"string\") as string[]\r\n\t}\r\n\r\n\tprivate get monthRangeStartDate (): Date {\r\n\t\treturn this.selectedSearchClauseParameters!.startDate!\r\n\t}\r\n\r\n\tprivate get monthRangeEndDate (): Date {\r\n\t\tvar dateRange = this.selectedSearchClauseParameters!.endDate ? this.selectedSearchClauseParameters.endDate : moment().endOf(\"year\").toDate()\r\n\t\treturn this.selectedSearchClauseParameters!.endDate!\r\n\t}\r\n\r\n\tprivate get hasWeekStart (): boolean {\r\n\t\treturn dateRangeLabels.findAndGet(l => l.id === this.dateValue, l => l.showWeekStart, false)\r\n\t}\r\n\r\n\tprivate get dateClauseType (): DateClauseType | null {\r\n\t\treturn this.selectedDateClauseType\r\n\t}\r\n\r\n\tprivate get shouldBeDynamic (): boolean {\r\n\t\treturn this.selectedDateClauseType !== DateClauseType.ExactDate || this.operator === Operator.DateRange\r\n\t}\r\n\r\n\tprivate set dateClauseType (value: DateClauseType | null) {\r\n\t\tthis.selectedDateClauseType = value\r\n\r\n\t\tvar selectedDateRange = this.selectedDateRange(value!)\r\n\t\tif (selectedDateRange) {\r\n\t\t\tthis.valueChanged(selectedDateRange)\r\n\t\t} else {\r\n\t\t\tthis.valueChanged(null)\r\n\t\t}\r\n\t}\r\n\r\n\tprivate selectedDateRange (value: DateClauseType): string {\r\n\t\tvar selectedDateRange = \"\"\r\n\r\n\t\tswitch (this.selectedDateClauseType) {\r\n\t\t\tcase DateClauseType.CurrentWeek:\r\n\t\t\t\tselectedDateRange = \"CurrentWeek\"\r\n\t\t\t\tbreak\r\n\t\t\tcase DateClauseType.CurrentMonth:\r\n\t\t\t\tselectedDateRange = \"CurrentMonth\"\r\n\t\t\t\tbreak\r\n\t\t\tcase DateClauseType.YearToDate:\r\n\t\t\t\tselectedDateRange = \"YearToDate\"\r\n\t\t\t\tbreak\r\n\t\t\tcase DateClauseType.WeekNumber:\r\n\t\t\t\tselectedDateRange = \"WeekNumber\"\r\n\t\t\t\tbreak\r\n\t\t\tcase DateClauseType.MonthRange:\r\n\t\t\t\tselectedDateRange = \"MonthRange\"\r\n\t\t\t\tbreak\r\n\t\t\tcase DateClauseType.DateRange:\r\n\t\t\t\tselectedDateRange = \"DateRange\"\r\n\t\t\t\tbreak\r\n\t\t}\r\n\t\treturn selectedDateRange\r\n\t}\r\n\r\n\tmounted () {\r\n\t\tthis.selectedDateClauseType = this.getDateClauseType()\r\n\t\tthis.assignSearchClauseParamaters(this.selectedSearchClauseParameters)\r\n\t}\r\n\r\n\t@Watch(\"selectedSearchClauseParameters\")\r\n\tValuePropChanged (newParamaters: SearchClauseParameters) {\r\n\t\tthis.assignSearchClauseParamaters(newParamaters)\r\n\t}\r\n\r\n\tassignSearchClauseParamaters (newParamaters: SearchClauseParameters) {\r\n\t\tif (!newParamaters) {\r\n\t\t\treturn\r\n\t\t}\r\n\r\n\t\tthis.selectedDayOfWeek = this.DayOfWeek[newParamaters.startDayOfWeek]\r\n\r\n\t\tthis.weekNumber = newParamaters.weekNumber ? newParamaters.weekNumber : null\r\n\t\tthis.startDate = newParamaters.startDate ? newParamaters.startDate : null\r\n\t\tthis.endDate = newParamaters.endDate ? newParamaters.endDate : null\r\n\r\n\t\tthis.startMonthRange = newParamaters.startMonthRange ? newParamaters.startMonthRange : null\r\n\t\tthis.endMonthRange = newParamaters.endMonthRange ? newParamaters.endMonthRange : null\r\n\t\tthis.$emit(\"searchClauseParametersChanged\", this.selectedSearchClauseParameters)\r\n\t}\r\n\r\n\tgetDateClauseType (): DateClauseType {\r\n\t\tif (this.value === null) {\r\n\t\t\treturn DateClauseType.RelativeCurrentDate\r\n\t\t}\r\n\r\n\t\tif (this.dynamicValue) {\r\n\t\t\tswitch (this.value.value) {\r\n\t\t\t\tcase \"CurrentWeek\":\r\n\t\t\t\t\treturn DateClauseType.CurrentWeek\r\n\t\t\t\tcase \"CurrentMonth\":\r\n\t\t\t\t\treturn DateClauseType.CurrentMonth\r\n\t\t\t\tcase \"YearToDate\":\r\n\t\t\t\t\treturn DateClauseType.YearToDate\r\n\t\t\t\tcase \"WeekNumber\":\r\n\t\t\t\t\treturn DateClauseType.WeekNumber\r\n\t\t\t\tcase \"DateRange\":\r\n\t\t\t\t\treturn DateClauseType.DateRange\r\n\t\t\t\tcase \"MonthRange\":\r\n\t\t\t\t\treturn DateClauseType.MonthRange\r\n\t\t\t}\r\n\r\n\t\t\tif (this.dateValue && dateRangeLabels.map(c => c.id).includes(this.dateValue)) {\r\n\t\t\t\treturn DateClauseType.RelativeDateRange\r\n\t\t\t} else {\r\n\t\t\t\treturn DateClauseType.RelativeCurrentDate\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn DateClauseType.ExactDate\r\n\t}\r\n\r\n\tstartDayOfWeekChanged (newStartDayOfWeekLabel: string) {\r\n\t\tthis.$set(this.selectedSearchClauseParameters, \"startDayOfWeek\", (DayOfWeek as any)[newStartDayOfWeekLabel])\r\n\t\tthis.$emit(\"searchClauseParametersChanged\", this.selectedSearchClauseParameters)\r\n\t\tthis.selectedDayOfWeek = newStartDayOfWeekLabel\r\n\t}\r\n\r\n\tstartMonthChanged (newStartMonth: Date) {\r\n\t\tvar startMonth = moment(newStartMonth).utc().toDate()\r\n\t\tthis.$set(this.selectedSearchClauseParameters, \"startMonthRange\", startMonth)\r\n\t\tthis.startMonthRange = startMonth\r\n\r\n\t\t// Set endMonth to the start date\r\n\t\tif (this.endMonthRange! < startMonth) {\r\n\t\t\tvar endMonth = moment(startMonth).add(\"month\", 1).subtract(\"millisecond\", 1).toDate()\r\n\t\t\tthis.$set(this.selectedSearchClauseParameters, \"endMonthRange\", endMonth)\r\n\t\t\tthis.endMonthRange = endMonth\r\n\t\t}\r\n\r\n\t\tthis.$emit(\"searchClauseParametersChanged\", this.selectedSearchClauseParameters)\r\n\t}\r\n\r\n\tendMonthChanged (newEndMonth: Date) {\r\n\t\tvar endMonth = moment(newEndMonth).subtract(\"millisecond\", 1).utc().toDate()\r\n\t\tthis.$set(this.selectedSearchClauseParameters, \"endMonthRange\", endMonth)\r\n\t\tthis.endMonthRange = endMonth\r\n\r\n\t\tthis.$emit(\"searchClauseParametersChanged\", this.selectedSearchClauseParameters)\r\n\t}\r\n\r\n\tvalueChanged (newValue: any) {\r\n\t\tvar updatedValue = cloneDeep(this.value) || {\r\n\t\t\tvalue: null,\r\n\t\t\tdynamic: false\r\n\t\t}\r\n\r\n\t\tif (updatedValue.value !== newValue) {\r\n\t\t\tupdatedValue.dynamic = this.shouldBeDynamic\r\n\t\t\tupdatedValue.value = newValue\r\n\r\n\t\t\tthis.$emit(\"input\", updatedValue)\r\n\t\t}\r\n\t}\r\n\r\n\tdateValueChanged (newValue: Date) {\r\n\t\tthis.valueChanged(new Date(newValue.getFullYear(),\r\n\t\t\tnewValue.getMonth(),\r\n\t\t\tnewValue.getDate()\r\n\t\t).toISOString())\r\n\t}\r\n\r\n\tdateClauseChanged (newValue: DateClauseType) {\r\n\t\tif (newValue === DateClauseType.ExactDate) {\r\n\t\t\tthis.dynamicValueChanged(false)\r\n\t\t} else {\r\n\t\t\tthis.dynamicValueChanged(true)\r\n\t\t}\r\n\t}\r\n\r\n\tnumberValueChanged (newValue: number) {\r\n\t\tlet updatedValue = cloneDeep(this.value)\r\n\r\n\t\tif (updatedValue === null) {\r\n\t\t\tupdatedValue = {\r\n\t\t\t\tvalue: null,\r\n\t\t\t\tdynamic: this.selectedDateClauseType !== DateClauseType.ExactDate\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (updatedValue.value !== newValue) {\r\n\t\t\tupdatedValue.value = newValue\r\n\t\t\tthis.$emit(\"input\", updatedValue)\r\n\t\t}\r\n\t}\r\n\r\n\tdynamicValueChanged (newValue: boolean) {\r\n\t\tvar updatedValue = cloneDeep(this.value) || { value: null, dynamic: false }\r\n\r\n\t\tif (updatedValue.dynamic !== newValue) {\r\n\t\t\tupdatedValue.dynamic = newValue\r\n\t\t\tthis.$emit(\"input\", updatedValue)\r\n\t\t}\r\n\t}\r\n\r\n\tdateRangeDateValueChanged (newValue: Date, dateRangeType: string) {\r\n\t\tif (dateRangeType === \"startDate\") {\r\n\t\t\tnewValue.setHours(0, 0, 0, 0)\r\n\t\t\tthis.$set(this.selectedSearchClauseParameters, \"startDate\", newValue)\r\n\t\t\tthis.startDate = newValue\r\n\t\t} else if (dateRangeType === \"endDate\") {\r\n\t\t\tnewValue.setHours(23, 59, 59, 999)\r\n\t\t\tthis.$set(this.selectedSearchClauseParameters, \"endDate\", newValue)\r\n\t\t\tthis.endDate = newValue\r\n\t\t}\r\n\r\n\t\tthis.$emit(\"searchClauseParametersChanged\", this.selectedSearchClauseParameters)\r\n\t}\r\n\r\n\tweekNumberChanged (newWeekNumber: number) {\r\n\t\t// validation\r\n\t\tif (newWeekNumber > 52 || newWeekNumber < 1) {\r\n\t\t\tthis.$set(this.selectedSearchClauseParameters, \"weekNumber\", null)\r\n\t\t\tthis.$emit(\"searchClauseParametersChanged\", this.selectedSearchClauseParameters)\r\n\t\t} else {\r\n\t\t\tthis.$set(this.selectedSearchClauseParameters, \"weekNumber\", newWeekNumber)\r\n\t\t\tthis.$emit(\"searchClauseParametersChanged\", this.selectedSearchClauseParameters)\r\n\t\t}\r\n\t}\r\n}\r\n\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DateTimeParameterValue.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DateTimeParameterValue.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./DateTimeParameterValue.vue?vue&type=template&id=18f4d3a8&\"\nimport script from \"./DateTimeParameterValue.vue?vue&type=script&lang=ts&\"\nexport * from \"./DateTimeParameterValue.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/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","\r\nimport { Component, Vue, Watch, Prop } from \"vue-property-decorator\"\r\nimport { namespace, Getter, Mutation, Action } from \"vuex-class\"\r\n\r\nimport Guid from \"@/scripts/guid\"\r\n\r\nimport User, { LabeledValue } from \"@/types/user\"\r\nimport { CaseDetails, Team, dataTypeByFieldType, DataType, Field, CaseField } from \"@/types\"\r\nimport { caseColumns, CaseColumn, usersPlusDynamic } from \"@/types/caseColumns\"\r\nimport { InsightSearch, Operator, InsightCalculation, operatorLabels, operatorsByFieldType } from \"@/types/insights\"\r\nimport { dateRangeLabels, dateRangeRangeLabels } from \"@/types/insights/dateRange\"\r\nimport { DateClauseType } from \"@/types/insights/dateClauseType\"\r\n\r\nimport vSelect from \"vue-select\"\r\n// @ts-ignore\r\nimport VuePerfectScrollbar from \"vue-perfect-scrollbar\"\r\n\r\nimport DataSourceSelect from \"@/components/Fields/DataSourceSelect.vue\"\r\n\r\nimport DateTime from \"@/components/Fields/DateTime.vue\"\r\nimport Numeric from \"@/components/Fields/Numeric.vue\"\r\nimport UserRole from \"@/components/CaseDetails/Users/UserRole.vue\"\r\nimport MapSearchBounds from \"./MapSearchBounds.vue\"\r\nimport DateTimeParameterValue from \"./DateTimeParameterValue.vue\"\r\n\r\nimport api from \"@/services/api\"\r\nimport { getDefaultSearchClauseParameters, Clause, SearchClauseParameters, DayOfWeek } from \"@/types/view\"\r\nimport { DynamicValue } from \"@/types/dynamic\"\r\nimport { formatDateMixin } from \"@/mixins/formatDateMixin\"\r\nimport positionDropdown from \"@/scripts/VSelectDropdownPosition.ts\"\r\nimport { parse } from \"path\"\r\nimport { watch } from \"fs\"\r\n\r\nconst setup = namespace(\"setup\")\r\n\r\nconst caseStore = namespace(\"cases\")\r\n\r\n@Component({\r\n\tcomponents: {\r\n\t\t\"v-select\": vSelect,\r\n\t\tdatetime: DateTime,\r\n\t\tnumeric: Numeric,\r\n\t\t\"map-search\": MapSearchBounds,\r\n\t\t\"dataSourceSelect\": DataSourceSelect,\r\n\t\t\"date-time-param\": DateTimeParameterValue,\r\n\t\t\"user-role\": UserRole\r\n\t}\r\n})\r\nexport default class ParameterValue extends Vue {\r\n\t@Prop({ default: null })\r\n\tfield!: CaseColumn;\r\n\r\n\t@Prop({ default: () => [] })\r\n\tallCaseFields!: CaseColumn[];\r\n\r\n\t@Prop({ default: null })\r\n\tvalue!: string | null;\r\n\r\n\t/** A list of currently selected field and values. Used to filter sub categories based on category selected. */\r\n\t@Prop({ type: Object, default: () => ({ }) })\r\n\tselectedFields!: Record;\r\n\r\n\t@Prop({ default: false })\r\n\tisNewClause!: boolean;\r\n\r\n\t@Prop({ default: () => Guid.newGuid() })\r\n\tclauseIndex!: number | string;\r\n\r\n\t@Prop({ default: null })\r\n\toperator!: Operator | null;\r\n\r\n\t@Prop({ default: true })\r\n\tdynamicValue!: boolean;\r\n\r\n\t@Prop({ default: true })\r\n\tusersAllowDynamic!: boolean;\r\n\r\n\t@Prop({ default: false })\r\n\tuserRolesAllowTeams!: boolean;\r\n\r\n\t@Prop({ default: () => null })\r\n\tsearchClauseParameters!: SearchClauseParameters;\r\n\r\n\t@Prop({ default: false })\r\n\tshowCollapsed!: boolean\r\n\r\n\t@Prop({ default: false })\r\n\tsetFieldValue!: boolean\r\n\r\n\t@Prop({ default: false })\r\n\tallowMultiple!: boolean\r\n\r\n\t@Prop({ default: true })\r\n\tallowDynamic!: boolean\r\n\r\n\t@setup.State\r\n\tfields!: Field[];\r\n\r\n\t@setup.Action loadFields!: () => Promise;\r\n\r\n\t@Action(\"loadTenantSettings\")\r\n\tprivate loadTenantSettings!: () => Promise\r\n\r\n\tprivate selectedSearchClauseParameters: SearchClauseParameters = this.searchClauseParameters;\r\n\r\n\tprivate timeSpentDataSourceId: string = \"\";\r\n\tprivate isMounted: boolean = false;\r\n\r\n\tasync mounted () {\r\n\t\tawait this.loadTenantSettings() // tech debt - do this once per page refresh or less?\r\n\t\tthis.selectedSearchClauseParameters = this.searchClauseParameters ? this.searchClauseParameters : getDefaultSearchClauseParameters()\r\n\r\n\t\tawait this.loadFields()\r\n\r\n\t\tif (this.fieldDataType === DataType.timeSpentAsValue) {\r\n\t\t\tconst trackingFieldId = this.field.fieldExtensions[\"trackingFieldId\"]\r\n\t\t\tif (this.isNewClause) {\r\n\t\t\t\tthis.selectedSearchClauseParameters.timeSpentClause.trackingFieldId = trackingFieldId\r\n\t\t\t}\r\n\r\n\t\t\tthis.timeSpentDataSourceId = this.getTrackedFieldDataSourceId(trackingFieldId)\r\n\t\t}\r\n\r\n\t\tif (this.isNewClause) {\r\n\t\t\tthis.dynamicValueChanged(true)\r\n\t\t}\r\n\r\n\t\t// for some child components, the relevant props are only set in ParameterValue.vue when it has finished mounting (code directly above), so need to wait until it has fully mounted before rendering children\r\n\t\tthis.isMounted = true\r\n\t}\r\n\r\n\tprivate Operator = Operator;\r\n\tprivate DataType = DataType;\r\n\tprivate DateClauseType = DateClauseType;\r\n\r\n\tprivate calcDropdownPosition = positionDropdown;\r\n\r\n\tprivate fieldValueKey: string | null = null;\r\n\tprivate returnedFieldOptions: any[] = [];\r\n\r\n\tprivate teams: Team[] = [];\r\n\r\n\tranges: any[] = [];\r\n\tprivate rangeFilter: string | null = null;\r\n\r\n\tprivate selectedItem = null;\r\n\r\n\tprivate selectedDayOfWeek: string | null = null;\r\n\r\n\t/** Builds a CaseDetails record from this.selectedFields to be passed to DataSourceSelect */\r\n\tprivate get currentCase () {\r\n\t\tvar allFields = this.fields\r\n\r\n\t\tvar caseFields: {[key: string]: CaseField} = {}\r\n\r\n\t\t// Build up an object containing all 'selectedFields' as an object with each member being of the type [key: string]: CaseField.\r\n\t\tif (this.selectedFields) {\r\n\t\t\tvar caseFieldsKeys = Object.keys(this.selectedFields)\r\n\t\t\tcaseFieldsKeys.forEach(key => {\r\n\t\t\t\tvar field = allFields.find(field => field.id === key)\r\n\r\n\t\t\t\tif (!field) { return }\r\n\r\n\t\t\t\t// CaseField\r\n\t\t\t\tcaseFields[key] = {\r\n\t\t\t\t\toldValue: null,\r\n\t\t\t\t\tvalue: this.selectedFields[key].value,\r\n\t\t\t\t\tlabel: this.selectedFields[key].label,\r\n\t\t\t\t\tvalueObject: null,\r\n\t\t\t\t\tsection: \"\",\r\n\t\t\t\t\torder: 0,\r\n\t\t\t\t\tfield: field,\r\n\t\t\t\t\trequiredCase: false,\r\n\t\t\t\t\trequiredRecord: false\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t}\r\n\r\n\t\t// Build up a blank CaseDetails with just the fields member.\r\n\t\tvar caseDetails: CaseDetails = {\r\n\t\t\tid: \"\",\r\n\t\t\tcaseNumber: \"\",\r\n\t\t\ttitle: \"\",\r\n\t\t\tstatusId: \"\",\r\n\t\t\tseverityId: \"\",\r\n\t\t\ttemplateId: null,\r\n\t\t\ttemplateTitle: null,\r\n\t\t\tassigneeId: null,\r\n\t\t\topenedByUserId: null,\r\n\t\t\tisCase: false,\r\n\t\t\tisClosed: false,\r\n\t\t\tisSensitive: false,\r\n\t\t\tlastUpdatedAt: null,\r\n\t\t\tcategoryTitle: null,\r\n\t\t\tstatusTitle: \"\",\r\n\t\t\tseverityTitle: \"\",\r\n\t\t\tseverityLevel: 0,\r\n\t\t\topenedByUser: null,\r\n\t\t\tareas: [],\r\n\t\t\tsummary: \"\",\r\n\t\t\tfields: caseFields,\r\n\t\t\tsections: [],\r\n\t\t\tsectionDetails: undefined,\r\n\t\t\tlinks: [],\r\n\t\t\tactions: [],\r\n\t\t\tpermissions: null,\r\n\t\t\ttags: null,\r\n\t\t\tusers: [],\r\n\t\t\tcadenceDetails: null,\r\n\t\t\tscheduling: undefined,\r\n\t\t\tbuiltInFieldLocks: null,\r\n\t\t\tpendingTeams: [],\r\n\t\t\tviewingUsers: [],\r\n\t\t\tcadenceEnabled: false,\r\n\t\t\thiddenFromInsights: false\r\n\t\t}\r\n\r\n\t\treturn caseDetails\r\n\t}\r\n\r\n\tprivate get fieldAsFieldType () {\r\n\t\tvar field = this.fields.find(f => f.id === this.field.key)\r\n\r\n\t\tif (field) { return field } else { return undefined }\r\n\t}\r\n\r\n\tpublic get fieldDataType (): DataType | null {\r\n\t\tif (!this.field) return null\r\n\r\n\t\treturn this.field.comparisonType !== undefined\r\n\t\t\t? this.field.comparisonType\r\n\t\t\t: this.field.fieldDataType\r\n\t\t\t\t? this.field.fieldDataType\r\n\t\t\t\t: null\r\n\t}\r\n\r\n\tprivate get daysOfWeekNames (): string[] {\r\n\t\treturn Object.values(DayOfWeek).filter(value => typeof value === \"string\") as string[]\r\n\t}\r\n\r\n\tprivate get dynamicInputValue (): DynamicValue | null {\r\n\t\treturn this.value !== null\r\n\t\t\t? {\r\n\t\t\t\tvalue: this.value,\r\n\t\t\t\tdynamic: this.dynamicValue\r\n\t\t\t}\r\n\t\t\t: null\r\n\t}\r\n\r\n\tprivate get dateTimeText (): string {\r\n\t\tif (!this.field || this.value === null) return \"Select value\"\r\n\r\n\t\tif (this.dynamicValue) {\r\n\t\t\tconst dynamicInt = parseInt(this.value)\r\n\t\t\tif (isNaN(dynamicInt)) {\r\n\t\t\t\tif (this.operator === Operator.DateRange) {\r\n\t\t\t\t\tif (this.value === \"WeekNumber\") {\r\n\t\t\t\t\t\treturn \"Week #\" + (this.selectedSearchClauseParameters && this.selectedSearchClauseParameters.weekNumber\r\n\t\t\t\t\t\t\t? this.selectedSearchClauseParameters.weekNumber\r\n\t\t\t\t\t\t\t: \"\")\r\n\t\t\t\t\t} else if (this.value === \"DateRange\" && this.selectedSearchClauseParameters) {\r\n\t\t\t\t\t\treturn \"From \" +\r\n\t\t\t\t\t\t\t(this.selectedSearchClauseParameters.startDate ? formatDateMixin.methods.displayDateOnlyFromISOString(this.selectedSearchClauseParameters.startDate!) : \"\") +\r\n\t\t\t\t\t\t\t\" to \" + (this.selectedSearchClauseParameters.endDate ? formatDateMixin.methods.displayDateOnlyFromISOString(this.selectedSearchClauseParameters.endDate!) : \"\")\r\n\t\t\t\t\t}\r\n\t\t\t\t\treturn dateRangeRangeLabels.findAndGet(d => d.id === this.value, d => d.title, \"\")\r\n\t\t\t\t} else {\r\n\t\t\t\t\treturn dateRangeLabels.findAndGet(d => d.id === this.value, d => `Start of ${d.title}`, \"\")\r\n\t\t\t\t}\r\n\t\t\t} else if (dynamicInt === 0) {\r\n\t\t\t\treturn \"Today\"\r\n\t\t\t} else if (dynamicInt > 0) {\r\n\t\t\t\treturn dynamicInt + \" days from now\"\r\n\t\t\t} else {\r\n\t\t\t\treturn Math.abs(dynamicInt) + \" days ago\"\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn formatDateMixin.methods.displayDateOnlyFromISOString(new Date(this.value))\r\n\t}\r\n\r\n\tpublic get fieldOptions (): any[] {\r\n\t\tif (this.field && (this.field.dataType === \"date\" || this.field.dataType === \"date-time\" ||\r\n\t\t\tthis.field.fieldDataType === DataType.dateTime)) {\r\n\t\t\tthis.returnedFieldOptions = dateRangeLabels\r\n\t\t}\r\n\t\tif (this.field && this.field.columnValues && this.fieldValueKey !== this.field.key) {\r\n\t\t\tthis.fieldValueKey = this.field.key\r\n\t\t\tthis.returnedFieldOptions = []\r\n\t\t\tthis.field.columnValues(api).then(options => this.returnedFieldOptions = options)\r\n\t\t}\r\n\r\n\t\tif (this.field && (this.field.dataType === \"user-role\" || this.field.dataType === \"subrole\")) {\r\n\t\t\tif (this.operator === Operator.InTeam) {\r\n\t\t\t\tthis.fieldValueKey = null\r\n\t\t\t\tif (this.teams.length === 0) {\r\n\t\t\t\t\tthis.returnedFieldOptions = []\r\n\t\t\t\t\tapi.teamsGet().then(teams => this.teams = teams)\r\n\t\t\t\t}\r\n\r\n\t\t\t\tthis.returnedFieldOptions = this.teams.map(t => {\r\n\t\t\t\t\treturn {\r\n\t\t\t\t\t\tid: t.id,\r\n\t\t\t\t\t\tname: t.title\r\n\t\t\t\t\t}\r\n\t\t\t\t})\r\n\t\t\t} else if (this.fieldValueKey !== this.field.key) {\r\n\t\t\t\tthis.fieldValueKey = this.field.key\r\n\t\t\t\tthis.returnedFieldOptions = [];\r\n\t\t\t\t(this.usersAllowDynamic ? usersPlusDynamic(api) : api.usersGet()).then((options: any) => {\r\n\t\t\t\t\tif (this.userRolesAllowTeams) {\r\n\t\t\t\t\t\tapi.teamsGet().then(teams => {\r\n\t\t\t\t\t\t\tthis.returnedFieldOptions = [\r\n\t\t\t\t\t\t\t\t...options,\r\n\t\t\t\t\t\t\t\t...teams.map(t => {\r\n\t\t\t\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\t\t\t\tid: t.id,\r\n\t\t\t\t\t\t\t\t\t\tname: t.title\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t})\r\n\t\t\t\t\t\t\t].sortBy(\"title\")\r\n\t\t\t\t\t\t})\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tthis.returnedFieldOptions = options\r\n\t\t\t\t\t}\r\n\t\t\t\t})\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (this.value && !this.selectedItem) {\r\n\t\t\tthis.selectedItem = this.returnedFieldOptions.find(i => i.id === this.value)\r\n\t\t}\r\n\r\n\t\treturn this.returnedFieldOptions\r\n\t}\r\n\r\n\tgetTrackedFieldDataSourceId (trackedFieldId: string) : string {\r\n\t\tif (!this.allCaseFields) {\r\n\t\t\tError(\"Missing dependent case fields\")\r\n\t\t}\r\n\r\n\t\tconst trackedField = this.allCaseFields.find(c => c.fieldId === trackedFieldId)\r\n\t\tif (!trackedField || !trackedField.dataSourceId) {\r\n\t\t\tthrow Error(\"Missing time tracked field Data Source ID\")\r\n\t\t}\r\n\r\n\t\treturn trackedField!.dataSourceId!\r\n\t}\r\n\r\n\tsearchClauseParametersChanged (searchClauseParameters: SearchClauseParameters) {\r\n\t\tthis.selectedSearchClauseParameters = searchClauseParameters\r\n\t\tthis.$emit(\"searchClauseParametersChanged\", searchClauseParameters)\r\n\t}\r\n\r\n\ttimeSpentListValueChanged (listValue: string) {\r\n\t\tconst timeSpentClause = this.selectedSearchClauseParameters.timeSpentClause\r\n\t\ttimeSpentClause.searchValue = listValue\r\n\t\tthis.$set(this.selectedSearchClauseParameters, \"timeSpentClause\", timeSpentClause)\r\n\r\n\t\tthis.$emit(\"input\", listValue)\r\n\t\tthis.$emit(\"searchClauseParametersChanged\", this.selectedSearchClauseParameters)\r\n\t}\r\n\r\n\ttimeSpentListLabelChanged (listLabel: string) {\r\n\t\tconst timeSpentClause = this.selectedSearchClauseParameters.timeSpentClause\r\n\t\ttimeSpentClause.searchLabel = listLabel\r\n\t\tthis.$set(this.selectedSearchClauseParameters, \"timeSpentClause\", timeSpentClause)\r\n\r\n\t\tthis.$emit(\"inputLabel\", listLabel)\r\n\t\tthis.$emit(\"searchClauseParametersChanged\", this.selectedSearchClauseParameters)\r\n\t}\r\n\r\n\ttimeSpentHoursChanged (newHoursValue: number) {\r\n\t\tconst timeSpentClause = this.selectedSearchClauseParameters.timeSpentClause\r\n\t\ttimeSpentClause.hoursSpent = newHoursValue\r\n\t\tthis.$set(this.selectedSearchClauseParameters, \"timeSpentClause\", timeSpentClause)\r\n\r\n\t\tthis.$emit(\"searchClauseParametersChanged\", this.selectedSearchClauseParameters)\r\n\t}\r\n\r\n\t@Watch(\"value\")\r\n\tValuePropChanged (newValue: string | null) {\r\n\t\tif (this.selectedItem && !newValue) {\r\n\t\t\tthis.selectedItem = null\r\n\t\t} else {\r\n\t\t\tthis.selectedItem = this.returnedFieldOptions.find(i => i.id === this.value)\r\n\t\t\tif (this.selectedItem === undefined) {\r\n\t\t\t\tthis.selectedItem = null\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tvalueChanged (newValue: string | null) {\r\n\t\tthis.$emit(\"input\", newValue)\r\n\t\tthis.$emit(\"dynamicInput\", {\r\n\t\t\tvalue: newValue,\r\n\t\t\tdynamicValue: false\r\n\t\t})\r\n\t}\r\n\r\n\tvalueItemChanged (newValue: any) {\r\n\t\tconst dynamicValue = newValue && newValue.dynamicValue ? newValue.dynamicValue : false\r\n\t\tif (newValue && dynamicValue !== this.dynamicValue) {\r\n\t\t\tthis.$emit(\"dynamicValueChanged\", dynamicValue)\r\n\t\t}\r\n\r\n\t\tthis.$emit(\"dynamicInput\", {\r\n\t\t\tvalue: newValue ? newValue.id : null,\r\n\t\t\tdynamic: dynamicValue\r\n\t\t})\r\n\r\n\t\tthis.$emit(\"input\", newValue ? newValue.id : null)\r\n\t\tthis.$emit(\"inputValue\", newValue)\r\n\r\n\t\tconst labelProperty = this.field.listLabel\r\n\t\t\t? this.field.listLabel\r\n\t\t\t: this.field.dataType === \"user-role\"\r\n\t\t\t\t? \"name\"\r\n\t\t\t\t: \"label\"\r\n\t\tif (newValue && newValue[labelProperty]) {\r\n\t\t\tthis.$emit(\"inputLabel\", newValue[labelProperty])\r\n\t\t} else {\r\n\t\t\tthis.$emit(\"inputLabel\", null)\r\n\t\t}\r\n\r\n\t\tif (this.selectedItem && !newValue) {\r\n\t\t\tthis.selectedItem = null\r\n\t\t}\r\n\t}\r\n\r\n\tlabelChanged (newLabel: string | null) {\r\n\t\tthis.$emit(\"inputLabel\", newLabel)\r\n\t}\r\n\r\n\tnumberValueChanged (newValue: number) {\r\n\t\tconst value = newValue === null ? null : newValue.toString()\r\n\t\tthis.$emit(\"input\", value)\r\n\t\tthis.$emit(\"dynamicInput\", {\r\n\t\t\tvalue: value,\r\n\t\t\tdynamic: false\r\n\t\t})\r\n\t}\r\n\r\n\tbooleanValueChanged (newValue: boolean) {\r\n\t\tthis.$emit(\"input\", newValue)\r\n\t}\r\n\r\n\tdynamicValueChanged (newValue: boolean) {\r\n\t\tthis.$emit(\"dynamicValueChanged\", newValue === null ? false : newValue)\r\n\t}\r\n\r\n\tmapBoundsChanged (newValue: {lat: number, lng: number}[]) {\r\n\t\tthis.$emit(\"input\", JSON.stringify(newValue))\r\n\t\tthis.$emit(\"inputLabel\", \"Bounds\")\r\n\t}\r\n\r\n\tdynamicInputValueChanged (newValue: DynamicValue | null) {\r\n\t\tthis.$emit(\"dynamicInput\", newValue)\r\n\r\n\t\tthis.$emit(\"dynamicValueChanged\", newValue !== null && newValue.dynamic ? newValue.dynamic : false)\r\n\t\tthis.$emit(\"input\", newValue !== null && newValue.value !== null ? newValue!.value.toString() : null)\r\n\t}\r\n}\r\n\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ParameterValue.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ParameterValue.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ParameterValue.vue?vue&type=template&id=b80d6882&\"\nimport script from \"./ParameterValue.vue?vue&type=script&lang=ts&\"\nexport * from \"./ParameterValue.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./ParameterValue.vue?vue&type=style&index=0&id=b80d6882&prod&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/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","export enum FolderType {\r\n\tInsight,\r\n\tView,\r\n\tSchedule\r\n}\r\n\r\nexport interface Folder {\r\n\tid: string\r\n\ttitle: string\r\n\tfolderType: FolderType\r\n\tteams: string[]\r\n\texpanded?: boolean\r\n}\r\n","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Metrics.vue?vue&type=style&index=0&id=8d0d260a&prod&scoped=true&lang=scss&\"","export const largeAreaSize = 1000\r\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{class:this.themeColours,staticStyle:{\"opacity\":\"0\"},attrs:{\"id\":\"app\"}},[_c('div',{attrs:{\"id\":\"ze-snippet-wrapper\"}}),_c('router-view',{staticClass:\"flex-grow-1\"})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\nimport { Component, Vue, Watch } from \"vue-property-decorator\"\r\nimport { namespace, Getter, Mutation, Action, State } from \"vuex-class\"\r\n\r\nimport \"vue-cal/dist/vuecal.css\"\r\nimport { Route } from \"vue-router\"\r\nimport { getStylesheetName } from \"./utils/ThemeLoader\"\r\n\r\nimport \"quill/dist/quill.core.css\" // import styles\r\nimport \"quill/dist/quill.snow.css\" // for snow theme\r\n\r\n@Component({\r\n\tcomponents: {}\r\n})\r\nexport default class App extends Vue {\r\n\t@Mutation public setScreenWidth!: (width: number) => void;\r\n\t@Mutation public setDarkMode!: (darkMode: boolean) => void;\r\n\r\n\t@State public darkMode!: boolean\r\n\t@Action public applyTheme!: (darkMode: boolean) => void;\r\n\r\n\t@Getter(\"getScreenWidth\") public screenWidth!: number;\r\n\r\n\t@Action public startUp!: () => void;\r\n\r\n\tprivate themeColours!: string;\r\n\r\n\tpublic async created () {\r\n\t\tconst link = document.createElement(\"link\")\r\n\t\tlink.id = \"lightdark\"\r\n\t\tlink.rel = \"stylesheet\"\r\n\r\n\t\tconst isDarkMode = window.matchMedia(\"(prefers-color-scheme: dark)\").matches\r\n\r\n\t\t// This ensures it is default to false, will get set to correct value when a user logs in later\r\n\t\tconst isNewInterface = false\r\n\t\tlink.href = getStylesheetName(isDarkMode, isNewInterface)\r\n\r\n\t\tthis.themeColours = isDarkMode ? \"dark\" : \"light\"\r\n\r\n\t\tdocument.head.appendChild(link)\r\n\r\n\t\tconsole.log(\"Theme\", isDarkMode)\r\n\t\tthis.setDarkMode(isDarkMode)\r\n\r\n\t\tif (this.$route.meta.forceTheme !== undefined) {\r\n\t\t\t// Force theme for theme-specific routes\r\n\t\t\tthis.applyTheme(this.$route.meta.forceTheme)\r\n\t\t}\r\n\t}\r\n\r\n\t@Watch(\"$route\")\r\n\tonRouteChanged (to: Route, from: Route) {\r\n\t\tif (to.meta.forceTheme !== undefined) {\r\n\t\t\tconsole.log(\"Forcing theme\", this.$route.meta.forceTheme)\r\n\t\t\tthis.applyTheme(this.$route.meta.forceTheme)\r\n\t\t} else if (from && from.meta && from.meta.forceTheme !== undefined) {\r\n\t\t\tconsole.log(\"Restoring theme\", this.darkMode)\r\n\t\t\tthis.applyTheme(this.darkMode)\r\n\t\t}\r\n\t}\r\n\r\n\tpublic async mounted () {\r\n\t\tthis.$nextTick(() => {\r\n\t\t\twindow.addEventListener(\"resize\", () => {\r\n\t\t\t\tthis.setScreenWidth(screen.width)\r\n\t\t\t})\r\n\t\t\tthis.setScreenWidth(screen.width)\r\n\t\t})\r\n\r\n\t\tthis.startUp()\r\n\t}\r\n}\r\n","import mod from \"-!../node_modules/cache-loader/dist/cjs.js??ref--13-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/ts-loader/index.js??ref--13-3!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../node_modules/cache-loader/dist/cjs.js??ref--13-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/ts-loader/index.js??ref--13-3!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./App.vue?vue&type=template&id=3dbbc5f8&\"\nimport script from \"./App.vue?vue&type=script&lang=ts&\"\nexport * from \"./App.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./App.vue?vue&type=style&index=0&id=3dbbc5f8&prod&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../node_modules/vue-loader/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","export const controls = {\r\n\tmethods: {\r\n\t\tvSelectMultiHideClear (readonly: boolean) {\r\n\t\t\tif (!readonly) {\r\n\t\t\t\treturn null\r\n\t\t\t}\r\n\r\n\t\t\treturn {\r\n\t\t\t\tDeselect: {\r\n\t\t\t\t\trender: (createElement: any) => null\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n}\n","import { createPopper } from \"@popperjs/core\"\r\n\r\nexport const vSelectOpenUpMixin = {\r\n\tmethods: {\r\n\t\twithPopper (dropdownList: HTMLUListElement, component: any, { width }: { width: string }) {\r\n\t\t\t/**\r\n * We need to explicitly define the dropdown width since\r\n * it is usually inherited from the parent with CSS.\r\n */\r\n\t\t\tdropdownList.style.width = width\r\n\r\n\t\t\t/**\r\n * Here we position the dropdownList relative to the $refs.toggle Element.\r\n *\r\n * The 'offset' modifier aligns the dropdown so that the $refs.toggle and\r\n * the dropdownList overlap by 1 pixel.\r\n *\r\n * The 'toggleClass' modifier adds a 'drop-up' class to the Vue Select\r\n * wrapper so that we can set some styles for when the dropdown is placed\r\n * above.\r\n */\r\n\t\t\tconst popper = createPopper(component.$refs.toggle, dropdownList, {\r\n\t\t\t\tplacement: \"top\",\r\n\t\t\t\tmodifiers: [\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tname: \"offset\",\r\n\t\t\t\t\t\toptions: {\r\n\t\t\t\t\t\t\toffset: [0, -1]\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t},\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tname: \"toggleClass\",\r\n\t\t\t\t\t\tenabled: true,\r\n\t\t\t\t\t\tphase: \"write\",\r\n\t\t\t\t\t\tfn ({ state }) {\r\n\t\t\t\t\t\t\tcomponent.$el.classList.toggle(\"drop-up\", state.placement === \"top\")\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t]\r\n\t\t\t})\r\n\t\t\t/**\r\n * To prevent memory leaks Popper needs to be destroyed.\r\n * If you return function, it will be called just before dropdown is removed from DOM.\r\n */\r\n\t\t\treturn () => popper.destroy()\r\n\t\t}\r\n\t}\r\n}\r\n","// import \"./scss/dark.scss\"\r\n\r\nimport Vue from \"vue\"\r\nimport App from \"./App.vue\"\r\nimport router from \"./router\"\r\nimport store from \"./store\"\r\nimport VueRouter from \"vue-router\"\r\n\r\n// @ts-ignore\r\nimport Sortable from \"vue-sortable\"\r\nimport BootstrapVue from \"bootstrap-vue\"\r\nimport \"@riophae/vue-treeselect/dist/vue-treeselect.css\"\r\n\r\n// @ts-ignore\r\nimport shortkey from \"vue-shortkey\"\r\nimport { formatDateMixin } from \"@/mixins/formatDateMixin\"\r\nimport { calculatedValueDisplay } from \"@/mixins/calculatedValueDisplay\"\r\nimport { filterMixin } from \"@/mixins/filtering\"\r\nimport { utils } from \"@/mixins/utils\"\r\nimport { controls } from \"@/mixins/controls\"\r\nimport { formatFieldsMixin } from \"@/mixins/formatFieldsMixin\"\r\nimport { vSelectOpenUpMixin } from \"@/mixins/v-select\"\r\n\r\n// @ts-ignore\r\nimport VueSanitize from \"vue-sanitize\"\r\nimport \"bootstrap-vue/dist/bootstrap-vue.css\"\r\n\r\nimport Quill from \"quill\"\r\nimport Placeholder from \"@/utils/Placeholder\"\r\n\r\n// @ts-ignore\r\nimport MagicUrl from \"quill-magic-url\"\r\n\r\nVue.config.productionTip = false\r\n\r\nVue.use(VueRouter)\r\nVue.use(BootstrapVue, { BModal: { titleTag: \"h3\" } })\r\nVue.use(shortkey, { prevent: [\".prevent-shortcut\"] })\r\nVue.mixin(formatDateMixin)\r\nVue.mixin(calculatedValueDisplay)\r\nVue.mixin(filterMixin)\r\nVue.mixin(utils)\r\nVue.mixin(controls)\r\nVue.mixin(formatFieldsMixin)\r\nVue.mixin(vSelectOpenUpMixin)\r\nVue.use(Sortable)\r\n\r\n/**\r\n * Vue Sanitize used for displaying text from rich text areas.\r\n */\r\nVue.use(VueSanitize, {\r\n\tallowedAttributes: {\r\n\t\t\"*\": [ \"class\" ],\r\n\t\ta: [ \"href\", \"rel\", \"target\" ]\r\n\t},\r\n\tallowedClasses: {\r\n\t\t\"*\": [\t// Quil.css classes.\r\n\t\t\t\"ql-indent-1\", \"ql-indent-2\", \"ql-indent-3\", \"ql-indent-4\", \"ql-indent-5\", \"ql-indent-6\", \"ql-indent-7\", \"ql-indent-8\", \"ql-indent-9\",\r\n\t\t\t\"ql-video\", \"ql-align-center\", \"ql-align-justify\", \"ql-align-right\", \"ql-font-serif\", \"ql-font-monospace\", \"ql-size-small\", \"ql-size-large\", \"ql-size-huge\", \"ql-direction-rtl\",\r\n\t\t\t\"ql-blank\", \"ql-bg-red\", \"ql-bg-orange\", \"ql-bg-yellow\", \"ql-bg-green\", \"ql-bg-blue\", \"ql-bg-purple\", \"ql-color-white\", \"ql-color-red\", \"ql-color-orange\", \"ql-color-yellow\", \"ql-color-green\", \"ql-color-blue\", \"ql-color-purple\"]\r\n\t}\r\n})\r\n\r\nVue.config.errorHandler = async function (err) {\r\n\tif (typeof window.newrelic !== \"undefined\" && typeof window.newrelic.noticeError === \"function\") {\r\n\t\twindow.newrelic.noticeError(err)\r\n\t}\r\n\t// eslint-disable-next-line no-unsafe-finally\r\n\tthrow err\r\n}\r\n\r\nQuill.register(\"modules/magicUrl\", MagicUrl)\r\nQuill.register(Placeholder)\r\n\r\nnew Vue({\r\n\trouter,\r\n\tstore,\r\n\trender: h => h(App)\r\n}).$mount(\"#app\")\r\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('b-form-group',[(!_vm.readonly)?_c('v-select-3',{staticClass:\"selector\",attrs:{\"clearable\":false,\"options\":_vm.iconTypes,\"label\":\"Icon Type\",\"maxHeight\":\"100px\",\"data-cy\":\"icon-type-select\"},on:{\"input\":_vm.onIconTypeChange},model:{value:(_vm.selectedIconType),callback:function ($$v) {_vm.selectedIconType=$$v},expression:\"selectedIconType\"}}):_vm._e(),(_vm.selectedIconType === 'File Upload' && !this.readonly)?_c('b-form-file',{attrs:{\"placeholder\":\"Choose a file or drop it here...\",\"drop-placeholder\":\"Drop File here...\",\"accept\":\".jpg, .png, .gif\",\"data-cy\":\"file-upload-icon-input\",\"state\":_vm.validImage},model:{value:(_vm.file1),callback:function ($$v) {_vm.file1=$$v},expression:\"file1\"}}):_vm._e(),(_vm.selectedIconType === 'File Upload' && !this.readonly)?_c('button',{staticClass:\"btn btn-primary mr-2 mt-2 mb-2\",attrs:{\"disabled\":!_vm.imageSrc,\"data-cy\":\"clear-icon-button\"},on:{\"click\":_vm.clearIcon}},[_vm._v(\" Clear Icon \")]):_vm._e(),(_vm.selectedIconType == 'URL' && !this.readonly)?_c('b-form-input',{attrs:{\"type\":\"text\",\"data-cy\":\"url-icon-input\",\"placeholder\":\"Enter Icon URL Here\"},model:{value:(_vm.imageSrc),callback:function ($$v) {_vm.imageSrc=$$v},expression:\"imageSrc\"}}):_vm._e(),(_vm.selectedIconType == 'Font Awesome' && !this.readonly)?_c('b-form-input',{attrs:{\"type\":\"text\",\"data-cy\":\"fa-icon-input\",\"placeholder\":\"Enter Font Awesome Icon Here\"},model:{value:(_vm.imageSrc),callback:function ($$v) {_vm.imageSrc=$$v},expression:\"imageSrc\"}}):_vm._e(),_c('div',[(!this.readonly)?_c('label',{staticClass:\"mr-1 mt-1\"},[_vm._v(\"Icon Preview:\")]):_vm._e(),(_vm.validImage == false)?_c('span',{staticClass:\"text-danger\",attrs:{\"data-cy\":\"invalid-file-type-feedback\"}},[_vm._v(_vm._s(_vm.feedbackMessage))]):_vm._e(),(_vm.selectedIconType == 'Font Awesome')?_c('i',{class:_vm.previewIconClass,attrs:{\"data-cy\":\"font-awesome-icon-preview\"}}):_vm._e(),(_vm.selectedIconType != 'Font Awesome' && _vm.imageSrc)?_c('img',{staticClass:\"icon-preview\",attrs:{\"src\":_vm.imageSrc,\"data-cy\":\"file-upload-and-url-icon-preview\"}}):_vm._e()])],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","export const IconMixins = {\r\n\tmethods: {\r\n\t\tbase64Encode (data: any): Promise {\r\n\t\t\treturn new Promise((resolve, reject) => {\r\n\t\t\t\tconst reader = new FileReader()\r\n\t\t\t\treader.readAsDataURL(data)\r\n\t\t\t\treader.onload = () => resolve(reader.result)\r\n\t\t\t\treader.onerror = error => reject(error)\r\n\t\t\t})\r\n\t\t},\r\n\t\tgetIconImage (image: any): string {\r\n\t\t\tconst identifier = image.charAt(0)\r\n\t\t\treturn `data:image/${imageEncodeType.get(identifier)};base64,` + image\r\n\t\t}\r\n\t}\r\n}\r\n\r\nexport const imageEncodeType: Map = new Map([\r\n\t[\"/\", \"jpg\"],\r\n\t[\"i\", \"png\"],\r\n\t[\"R\", \"gif\"]\r\n])\r\n","\r\nimport { IconMixins } from \"@/mixins/IconMixins\"\r\nimport { Vue, Component, Watch, Prop } from \"vue-property-decorator\"\r\nimport vselect3 from \"vue-select\"\r\n\r\nconst { base64Encode } = IconMixins.methods\r\n\r\n@Component({\r\n\tcomponents: {\r\n\t\t\"v-select-3\": vselect3\r\n\t}\r\n})\r\n\r\nexport default class IconUpload extends Vue {\r\n\t@Prop({ required: false, default: null }) private customFieldValue!: string;\r\n\t@Prop({ required: false, default: false }) private readonly!: boolean;\r\n\r\n\tprivate file1: File | null = null;\r\n\tprivate imageSrc: any = null;\r\n\tprivate selectedIconType: string = \"File Upload\";\r\n\tprivate validImage: boolean | null = null;\r\n\tprivate feedbackMessage: string = \"\";\r\n\tprivate readonly iconTypes: string[] = [\"File Upload\", \"URL\", \"Font Awesome\"];\r\n\tprivate readonly fileUploadType: string = \"File Upload\";\r\n\tprivate readonly urlType: string = \"URL\";\r\n\tprivate readonly fontAwesomeType: string = \"Font Awesome\";\r\n\tprivate readonly acceptedFileTypes: string[] = [\"image/jpeg\", \"image/jpg\", \"image/png\", \"image/gif\"];\r\n\tprivate readonly maxFileSizeInBytes: number = 1000000;\r\n\tprivate readonly invalidFileTypeMessage: string = \"Invalid File Type\";\r\n\tprivate readonly invalidFileSizeMessage: string = \"File exceeds 1MB size limit\";\r\n\r\n\tprivate mounted (): void {\r\n\t\tif (this.customFieldValue && this.customFieldValue.startsWith(\"data\")) {\r\n\t\t\tthis.selectedIconType = this.fileUploadType\r\n\t\t\tthis.imageSrc = this.customFieldValue\r\n\t\t}\r\n\r\n\t\tif (this.customFieldValue && this.customFieldValue.toLowerCase().startsWith(\"http\")) {\r\n\t\t\tthis.selectedIconType = this.urlType\r\n\t\t\tthis.imageSrc = this.customFieldValue\r\n\t\t}\r\n\r\n\t\tif (this.customFieldValue && this.customFieldValue.toLowerCase().startsWith(\"fa\")) {\r\n\t\t\tthis.selectedIconType = this.fontAwesomeType\r\n\t\t\tthis.imageSrc = this.customFieldValue\r\n\t\t}\r\n\t}\r\n\r\n\tprivate get previewIconClass (): string {\r\n\t\treturn `mt-1 ${this.imageSrc}`\r\n\t}\r\n\r\n\tprivate isFileValid (file: File): boolean {\r\n\t\tif (!this.acceptedFileTypes.includes(file.type)) {\r\n\t\t\tthis.validImage = false\r\n\t\t\tthis.feedbackMessage = this.invalidFileTypeMessage\r\n\t\t\treturn this.validImage\r\n\t\t}\r\n\r\n\t\tif (file.size > this.maxFileSizeInBytes) {\r\n\t\t\tthis.validImage = false\r\n\t\t\tthis.feedbackMessage = this.invalidFileSizeMessage\r\n\t\t\treturn this.validImage\r\n\t\t}\r\n\r\n\t\tthis.validImage = true\r\n\r\n\t\treturn this.validImage\r\n\t}\r\n\r\n\tprivate onIconTypeChange (): void {\r\n\t\tthis.clearIcon()\r\n\t\tthis.validImage = null\r\n\t}\r\n\r\n\tprivate clearIcon (): void {\r\n\t\tthis.file1 = null\r\n\t\tthis.imageSrc = null\r\n\t}\r\n\r\n\t@Watch(\"file1\")\r\n\tprivate async configureIcon (newValue: any, oldValue: any): Promise {\r\n\t\tif (newValue && newValue !== oldValue && this.isFileValid(newValue)) {\r\n\t\t\ttry {\r\n\t\t\t\tthis.imageSrc = await base64Encode(newValue)\r\n\t\t\t} catch (err) {\r\n\t\t\t\tthis.clearIcon()\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tthis.clearIcon()\r\n\t\t}\r\n\t}\r\n\r\n\t@Watch(\"imageSrc\")\r\n\tprivate onImageSrcChange (): void {\r\n\t\tthis.$emit(\"input\", this.imageSrc)\r\n\t}\r\n}\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--13-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./IconUpload.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--13-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./IconUpload.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./IconUpload.vue?vue&type=template&id=416d4728&scoped=true&\"\nimport script from \"./IconUpload.vue?vue&type=script&lang=ts&\"\nexport * from \"./IconUpload.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./IconUpload.vue?vue&type=style&index=0&id=416d4728&prod&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"416d4728\",\n null\n \n)\n\nexport default component.exports","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./InsightTopResult.vue?vue&type=style&index=0&id=4a3dcdee&prod&scoped=true&lang=scss&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BaseNotificationsMenu.vue?vue&type=style&index=0&id=1b99d12f&prod&scoped=true&lang=scss&\"","import { CaseUser, UserRole } from \"./caseUser\"\r\n\r\n// Data Types are for the underlying values contained within fields.\r\n// Multiple fields can match to the same DataType, for example, both number and dollar both map to number\r\n\r\n// See SVCases.Models.Search.DataTypes in the data service for a matching definition\r\nexport enum DataType {\r\n\tstring = 0,\r\n\tdateTime = 1,\r\n\tnumber = 2,\r\n\tboolean = 3,\r\n\tarray = 4,\r\n\tarrayMultiple = 5,\r\n\tarrayData = 6,\r\n\tcalculated = 7,\r\n\tnone = 8,\r\n\tuserRole = 9,\r\n\tmapPoint = 10,\r\n\tbounds = 11,\r\n\ttimeSpentAsValue = 12,\r\n\tteam = 13,\r\n\tdateRange = 14,\r\n\tsubrole = 15\r\n}\r\n\r\n// New Data Type checklist:\r\n// - Add to enum (Above)\r\n// - Add to SVCases.Models.Search.DataTypes enum in Data Service\r\n// - Add grouping function to groupingFunctions (below) (If relevant)\r\n// - Add operators to dataTypeOperations in @/types/operators.ts\r\n// - Add to dataTypeTests in @/types/operators.ts\r\n// - Add to DataTypeFunctions in @/scripts/dataTypeFunctions.ts\r\n\r\n// Function for grouping by data types\r\nexport const groupingFunctions: { [key in DataType]?: (record: any, groupByValue: any, cache: { [key:string]: any }, groupByOption?: string | null) => { key: string, label: string, value: any }[]} = {\r\n\t[DataType.userRole]: (record: any, groupByValue: UserRole, cache: { [key:string]: any }, groupByOption) => {\n\t\tconst mapUsers: (users: CaseUser[]) => { key: string, label: string, value: any }[] =\r\n\t\t\tusers => users.map(user => {\r\n\t\t\t\tconst userValue = cache[user.id]\r\n\t\t\t\t\t? cache[user.id]\r\n\t\t\t\t\t: cache[user.id] = record.users.find((u: CaseUser) => u.id === user.id)\r\n\t\t\t\treturn {\r\n\t\t\t\t\tkey: user.id,\r\n\t\t\t\t\tlabel: userValue ? userValue.name : user.id,\r\n\t\t\t\t\tvalue: userValue\r\n\t\t\t\t}\r\n\t\t\t})\r\n\r\n\t\tlet returnValues = groupByValue ? [\r\n\t\t\t...(groupByValue.users ? mapUsers(groupByValue.users) : []),\r\n\t\t\t...(groupByValue.subRoles\r\n\t\t\t\t? groupByValue.subRoles.map(role => role.users ? mapUsers(role.users) : []).flat()\r\n\t\t\t\t: [])\r\n\t\t] : []\r\n\r\n\t\tif (groupByOption === \"team\") {\r\n\t\t\treturnValues = returnValues.filter(u => u.value && u.value.teams)\r\n\t\t\t\t.map(u => u.value.teams.map((team: any) => {\r\n\t\t\t\t\treturn {\r\n\t\t\t\t\t\tkey: team.id,\r\n\t\t\t\t\t\tlabel: team.title,\r\n\t\t\t\t\t\tvalue: team\r\n\t\t\t\t\t}\r\n\t\t\t\t}))\r\n\t\t\t\t.flat()\r\n\t\t}\r\n\r\n\t\treturn returnValues.length === 0\r\n\t\t\t? [\r\n\t\t\t\t{\r\n\t\t\t\t\tkey: \"none\",\r\n\t\t\t\t\tlabel: \"None set\",\r\n\t\t\t\t\tvalue: null\r\n\t\t\t\t}\r\n\t\t\t]\r\n\t\t\t: returnValues\r\n\t}\r\n}\r\n\r\nexport const fieldTypesExcludeFromRuleSet = [\r\n\t\"calculated\",\r\n\t\"list-multiple\",\r\n\t\"user-role\",\r\n\t\"list-data\",\r\n\t\"case-number\",\r\n\t\"time-spent\",\r\n\t\"file-only\"\r\n]\r\n\r\nexport const groupByOptions: { [key in DataType]?: {value: string, label: string}[]} = {\r\n\t[DataType.userRole]: [\r\n\t\t{ value: \"user\", label: \"User\" },\r\n\t\t{ value: \"team\", label: \"Team\" }\r\n\t]\r\n}\r\n\r\nexport const groupingOptions = {\r\n\tsubRole: \"subRole\"\r\n}\r\n\r\nexport const dataTypeByFieldType: { [k: string]: DataType } = {\r\n\t\"text\": DataType.string,\r\n\t\"text-area\": DataType.string,\r\n\t\"number\": DataType.number,\r\n\t\"dollar\": DataType.number,\r\n\t\"date\": DataType.dateTime,\r\n\t\"date-time\": DataType.dateTime,\r\n\t\"checkbox\": DataType.boolean,\r\n\t\"list\": DataType.array,\r\n\t\"list-multiple\": DataType.arrayMultiple,\r\n\t\"list-data\": DataType.arrayData,\r\n\t\"user-role\": DataType.userRole,\r\n\t\"map-marker\": DataType.mapPoint,\r\n\t\"calculated\": DataType.number,\r\n\t\"external-link\": DataType.string,\r\n\t\"case-number\": DataType.string,\r\n\t\"time-spent\": DataType.timeSpentAsValue,\r\n\t\"file-only\": DataType.none,\r\n\t\"icon-upload\": DataType.string\r\n}\r\n\r\nexport const dataTypeParameters = [\r\n\t{\r\n\t\tlabel: \"Text\",\r\n\t\tdataType: DataType.string,\r\n\t\tselectSource: false,\r\n\t\tfieldDataTypes: [DataType.string]\r\n\t},\r\n\t{\r\n\t\tlabel: \"Number\",\r\n\t\tdataType: DataType.number,\r\n\t\tselectSource: false,\r\n\t\tfieldDataTypes: [DataType.number]\r\n\t},\r\n\t{\r\n\t\tlabel: \"Date\",\r\n\t\tdataType: DataType.dateTime,\r\n\t\tselectSource: false,\r\n\t\tfieldDataTypes: [DataType.dateTime]\r\n\t},\r\n\t{\r\n\t\tlabel: \"Date Range\",\r\n\t\tdataType: DataType.dateRange,\r\n\t\tselectSource: false,\r\n\t\tfieldDataTypes: [DataType.dateTime]\r\n\t},\r\n\t{\r\n\t\tlabel: \"Data Source\",\r\n\t\tdataType: DataType.array,\r\n\t\tselectSource: true,\r\n\t\tfieldDataTypes: [DataType.array, DataType.arrayMultiple, DataType.arrayData]\r\n\t},\r\n\t{\r\n\t\tlabel: \"User\",\r\n\t\tdataType: DataType.userRole,\r\n\t\tselectSource: false,\r\n\t\tfieldDataTypes: [DataType.userRole]\r\n\t}\r\n]\r\n\r\nexport const dataTypes = {\r\n\tText: \"text\",\r\n\tTextArea: \"text-area\",\r\n\tNumber: \"number\",\r\n\tDollar: \"dollar\",\r\n\tDate: \"date\",\r\n\tDateTime: \"date-time\",\r\n\tCheckbox: \"checkbox\",\r\n\tList: \"list\",\r\n\tListMultiple: \"list-multiple\",\r\n\tDataObject: \"list-data\",\r\n\tUserRole: \"user-role\",\r\n\tMapMarker: \"map-marker\",\r\n\tCalculated: \"calculated\",\r\n\tExternalLink: \"external-link\",\r\n\tCaseNumber: \"case-number\",\r\n\tTimeSpent: \"time-spent\",\r\n\tFileOnly: \"file-only\",\r\n\tIcon: \"icon-upload\"\r\n} as const\r\n","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./OAuthLogin.vue?vue&type=style&index=0&id=4855e8ae&prod&scoped=true&lang=scss&\"","export const maxInputLength = 230\r\n","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./GoTo.vue?vue&type=style&index=0&id=54cbd387&prod&scoped=true&lang=scss&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./HeatMap.vue?vue&type=style&index=0&id=5bd485da&prod&lang=scss&scoped=true&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.cases && _vm.cases.length > 0)?_c('table',{staticClass:\"table b-table table-sm table-sticky\",class:{'table-hover': _vm.rowHoverEnabled},attrs:{\"role\":\"table\",\"data-cy\":(\"table-\" + _vm.tableId)}},[_c('thead',[_c('tr',[_c('th',{staticStyle:{\"padding\":\"0px\",\"border\":\"0px\"},attrs:{\"colspan\":\"100%\"}},[_vm._t(\"default\")],2)]),_c('tr',_vm._l((_vm.columns),function(column){return _c('th',{key:column.key,attrs:{\"aria-sort\":(_vm.currentSortColumn === column.key ? (_vm.currentSortAscending ? 'ascending' : 'descending') : 'none')},on:{\"click\":function($event){return _vm.setSortColumn(column.key, column.fieldDataType)}}},[_vm._v(\" \"+_vm._s(column.label)+\" \")])}),0)]),_c('tbody',_vm._l((_vm.currentPageItems),function(caseItem){return _c('tr',{key:caseItem.id,on:{\"click\":[function($event){if($event.ctrlKey||$event.shiftKey||$event.altKey||$event.metaKey){ return null; }return _vm.rowClick(caseItem.case)},function($event){if(!$event.ctrlKey){ return null; }return _vm.rowClick(caseItem.case, true)}]}},_vm._l((_vm.columns),function(column){return _c('td',{key:column.key,staticStyle:{\"position\":\"relative\"},style:(_vm.cellStyle(column.key, caseItem[column.key].value, column)),attrs:{\"data-cy\":((caseItem.case.id) + \"-\" + (column.key))},on:{\"mouseover\":function($event){return _vm.setHoveringCell(caseItem.case.id, column.key)},\"mouseleave\":function($event){return _vm.clearHoveringCell()}}},[(_vm.cellIsEditable(caseItem.case, column) && _vm.cellIsHovered(caseItem.case.id, column.key) && !_vm.cellIsInEditMode(caseItem.case.id, column.key))?_c('span',{staticClass:\"badge badge-pill btn btn-small btn-circle begin-edit-icon\",attrs:{\"title\":\"Edit Field\"},on:{\"click\":function($event){$event.stopPropagation();return _vm.cellEditBegin(caseItem.case.caseNumber)}}},[_c('span',{staticClass:\"fas fa-pencil\",attrs:{\"data-cy\":\"edit-icon\"}})]):_vm._e(),_c('div',{staticClass:\"cell-background\",style:(_vm.cellBarStyle(caseItem, column.key, caseItem[column.key].value, column))}),(_vm.cellIsInEditMode(caseItem.case.id, column.key))?_c('div',{key:caseItem.case.id + column.key},[_c('form-group',{staticClass:\"col-12\",attrs:{\"labelFor\":'input-'+ _vm.fieldToEdit.id,\"id\":'form-group-' + _vm.fieldToEdit.id,\"inUseBy\":_vm.fieldToEdit.inUseBy,\"currentUserId\":_vm.me ? _vm.me.id : null}},[(_vm.fieldToEdit.field.dataType === 'text')?_c('b-form-input',{attrs:{\"id\":'input-'+ _vm.fieldToEdit.id,\"type\":\"text\",\"autocomplete\":\"off\",\"placeholder\":_vm.fieldToEdit.field.description},model:{value:(_vm.fieldToEdit.value),callback:function ($$v) {_vm.$set(_vm.fieldToEdit, \"value\", $$v)},expression:\"fieldToEdit.value\"}}):(_vm.fieldToEdit.field.dataType === 'checkbox')?_c('b-form-checkbox',{attrs:{\"id\":'input-'+ _vm.fieldToEdit.id},model:{value:(_vm.fieldToEdit.value),callback:function ($$v) {_vm.$set(_vm.fieldToEdit, \"value\", $$v)},expression:\"fieldToEdit.value\"}}):(_vm.fieldToEdit.field.dataType === 'number')?_c('numeric',{attrs:{\"id\":'input-'+ _vm.fieldToEdit.id},model:{value:(_vm.fieldToEdit.value),callback:function ($$v) {_vm.$set(_vm.fieldToEdit, \"value\", $$v)},expression:\"fieldToEdit.value\"}}):(_vm.fieldToEdit.field.dataType === 'dollar')?_c('numeric',{attrs:{\"id\":'input-'+ _vm.fieldToEdit.id,\"precision\":2,\"displayDecimals\":2,\"prepend\":\"$\"},model:{value:(_vm.fieldToEdit.value),callback:function ($$v) {_vm.$set(_vm.fieldToEdit, \"value\", $$v)},expression:\"fieldToEdit.value\"}}):(_vm.fieldToEdit.field.dataType === 'date' || _vm.fieldToEdit.field.dataType === 'date-time')?_c('date-time',{attrs:{\"id\":'input-'+ _vm.fieldToEdit.id,\"includeTime\":_vm.fieldToEdit.field.dataType === 'date-time'},model:{value:(_vm.fieldToEdit.value),callback:function ($$v) {_vm.$set(_vm.fieldToEdit, \"value\", $$v)},expression:\"fieldToEdit.value\"}}):(_vm.fieldToEdit.field.dataType === 'text-area')?_c('text-area-expand',{attrs:{\"id\":'input-'+_vm.fieldToEdit.id,\"min-rows\":1,\"placeholder\":_vm.fieldToEdit.field.description,\"allowRichText\":_vm.fieldToEdit.field.extensions.allowRichText},model:{value:(_vm.fieldToEdit.value),callback:function ($$v) {_vm.$set(_vm.fieldToEdit, \"value\", $$v)},expression:\"fieldToEdit.value\"}}):(_vm.fieldToEdit.field.dataType === 'list' || _vm.fieldToEdit.field.dataType === 'list-multiple')?_c('data-select',{attrs:{\"id\":'input-'+_vm.fieldToEdit.field.id,\"multiple\":_vm.fieldToEdit.field.dataType === 'list-multiple',\"dataSourceId\":_vm.fieldToEdit.field.dataSourceId,\"field\":_vm.fieldToEdit.field,\"currentCase\":_vm.caseToEdit},model:{value:(_vm.fieldToEdit.value),callback:function ($$v) {_vm.$set(_vm.fieldToEdit, \"value\", $$v)},expression:\"fieldToEdit.value\"}}):(_vm.fieldToEdit.field.dataType === 'user-role')?_c('user-role',{attrs:{\"id\":'input-'+ _vm.fieldToEdit.id,\"extensions\":_vm.fieldToEdit.field.extensions,\"userRole\":_vm.fieldToEdit.field.extensions,\"title\":_vm.fieldToEdit.field.title,\"currentCase\":_vm.caseToEdit},model:{value:(_vm.fieldToEdit.value),callback:function ($$v) {_vm.$set(_vm.fieldToEdit, \"value\", $$v)},expression:\"fieldToEdit.value\"}}):_vm._e()],1),_c('div',{staticClass:\"confirm-cancel-edit-icons mt-1\"},[_c('span',{staticClass:\"badge badge-pill btn btn-success btn-small btn-circle confirm\",attrs:{\"title\":\"Confirm Edit\"},on:{\"click\":function($event){$event.stopPropagation();return _vm.cellEditConfirmed(caseItem.case.caseNumber)}}},[_c('span',{staticClass:\"fas fa-check\"})]),_c('span',{staticClass:\"badge badge-pill btn btn-danger btn-small btn-circle cancel\",attrs:{\"title\":\"Cancel Edit\"},on:{\"click\":function($event){$event.stopPropagation();return _vm.cellEditClear(caseItem.case.caseNumber)}}},[_c('span',{staticClass:\"fas fa-times\"})])])],1):(caseItem[column.key] !== undefined)?_c('div',{staticClass:\"cell-content\"},[_c('span',_vm._b({staticClass:\"fas\"},'span',_vm.icon(column.key, caseItem[column.key].value, column),false)),(column.dataType === 'date')?_c('span',[_vm._v(\" \"+_vm._s(_vm.displayDateOnlyFromISOString(caseItem[column.key].value))+\" \")]):(column.dataType === 'date-time')?_c('span',[_vm._v(\" \"+_vm._s(_vm.displayDateFromISOString(caseItem[column.key].value))+\" \")]):(column.dataType === 'case-number')?_c('span',[_vm._v(\" \"+_vm._s(caseItem.case.caseNumber)+\" \")]):(column.dataType === 'external-link')?_c('span',[(caseItem[column.key] && caseItem[column.key].value)?_c('a',{attrs:{\"href\":caseItem[column.key].value,\"target\":\"_blank\"}},[_vm._v(\" \"+_vm._s(caseItem[column.key].value)+\" \")]):_vm._e()]):(column.dataType === 'user')?_c('span',[(caseItem.case && caseItem.case.users && caseItem[column.key].value)?_c('user-image',{attrs:{\"showUserName\":true,\"size\":\"sm\",\"user\":caseItem.case.users.find(function (u) { return u.id === caseItem[column.key].value; })}}):_vm._e()],1):(column.listItemType === 'user')?_c('span',_vm._l((caseItem[column.key].value),function(user){return _c('user-image',{key:user.id,staticClass:\"m-r-10\",attrs:{\"showUserName\":true,\"size\":\"sm\",\"user\":user}})}),1):(column.dataType === 'list' || column.dataType === 'list-multiple')?_c('span',[_vm._v(\" \"+_vm._s(caseItem[column.key] && caseItem[column.key].label ? caseItem[column.key].label : column.displayKey ? caseItem.case[column.displayKey] : column.fieldId ? _vm.getFieldLabel(column.fieldId, caseItem.case) : caseItem[column.key].value && Array.isArray(caseItem[column.key].value) ? caseItem[column.key].value.map(function (i) { return i[column.listLabel || \"label\"]; }).join(\", \") : caseItem[column.key].value)+\" \")]):(column.dataType === 'dollar')?_c('span',[_vm._v(_vm._s(caseItem[column.key] && caseItem[column.key].value !== null ? '$' + caseItem[column.key].value : ''))]):(column.dataType === 'checkbox')?_c('span',[_vm._v(_vm._s(_vm.formatFieldValue(\"checkbox\", caseItem[column.key].value)))]):(column.dataType === 'calculated')?_c('span',{style:(_vm.isTimeSpentCalculationType(column) ? 'white-space: pre-line' : '')},[_vm._v(\" \"+_vm._s(_vm.calculatedFieldDisplayValue(column, caseItem.case))+\" \")]):(column.dataType === 'list-data')?_c('span',[_vm._v(\" \"+_vm._s(caseItem[column.key] ? caseItem[column.key].label : '')+\" \")]):(column.dataType === 'user-picture')?_c('span',[(caseItem.case)?_c('user-image',{attrs:{\"showUserName\":true,\"size\":\"md\",\"user\":caseItem.case}}):_vm._e()],1):(column.dataType === 'map-marker' ||\n\t\t\t\t\t\tcolumn.dataType === 'map-path' ||\n\t\t\t\t\t\tcolumn.dataType === 'map-region')?_c('span',[_vm._v(\" \"+_vm._s(caseItem[column.key].value === null ? '0' : caseItem[column.key].value.length)+\" set \")]):(column.rounding)?_c('span',[_vm._v(\" \"+_vm._s(Math.floor(caseItem[column.key].value))+\" \")]):(column.dataType === 'user-role')?_c('span',[(caseItem[column.key] && caseItem[column.key].value)?[(caseItem[column.key].value.subRoles)?_vm._l((caseItem[column.key].value.subRoles),function(subrole){return _c('div',{key:subrole.title,staticClass:\"d-flex flex-wrap align-items-center\"},[_c('b',{staticClass:\"m-r-10\"},[_vm._v(_vm._s(subrole.title)+\": \")]),(subrole.users)?_vm._l((subrole.users),function(user){return _c('div',{key:user.id,staticClass:\"m-r-10\"},[_c('user-image',{attrs:{\"showUserName\":true,\"size\":\"sm\",\"user\":caseItem.case.users.find(function (u) { return u.id === user.id; } )}},[(user.timeSpent)?_c('label',{staticClass:\"m-b-0 m-l-10 no-wrap\"},[_c('i',{staticClass:\"far fa-clock\"}),_vm._v(\" \"+_vm._s(user.timeSpent)+\" \")]):_vm._e()])],1)}):_vm._e()],2)}):_vm._l((caseItem[column.key].value.users),function(user){return _c('span',{key:user.id,staticClass:\"d-inline-flex flex-wrap align-items-center m-r-10\"},[(caseItem && caseItem.case.users && caseItem[column.key].value)?_c('user-image',{attrs:{\"showUserName\":true,\"size\":\"sm\",\"user\":caseItem.case.users.find(function (u) { return u.id === user.id; } )}},[(user.timeSpent)?_c('label',{staticClass:\"d-inline-flex align-items-center ml-2 mr-2 m-b-0 sm no-wrap\"},[_c('i',{staticClass:\"far fa-clock\"}),_vm._v(\" \"+_vm._s(user.timeSpent)+\" \")]):_vm._e()]):_vm._e()],1)})]:_vm._e()],2):(column.dataType === 'text-area')?_c('div',{staticClass:\"pre-wrap\"},[(caseItem[column.key] && caseItem[column.key].fieldType === 'text-area-rich')?[(caseItem[column.key].value)?_c('p',{staticClass:\"pre-wrap ql-editor\",domProps:{\"innerHTML\":_vm._s(_vm.$sanitize(caseItem[column.key].value))}}):_vm._e()]:[_c('span',{staticClass:\"pre-wrap\"},[_vm._v(\" \"+_vm._s(caseItem[column.key] && caseItem[column.key].value ? caseItem[column.key].value : '')+\" \")])]],2):(column.dataType === 'icon-upload')?_c('span',[_c('icon-upload',{attrs:{\"customFieldValue\":caseItem[column.key].value,\"readonly\":\"true\"}})],1):_c('span',{staticClass:\"pre-wrap\"},[_vm._v(\" \"+_vm._s(caseItem[column.key] && caseItem[column.key].value !== null ? caseItem[column.key].value : '')+\" \")])]):_vm._e()])}),0)}),0)]):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { Component, Vue, Watch, Prop } from \"vue-property-decorator\"\r\nimport { namespace, Getter, Mutation, Action, State } from \"vuex-class\"\r\n\r\nimport { CalculationType, CaseDetails, DataType, User, Case, CaseField, Permission } from \"@/types\"\r\nimport { calculatedValueDisplay } from \"@/mixins/calculatedValueDisplay\"\r\n\r\nimport { cloneDeep, get } from \"lodash\"\r\n\r\n// @ts-ignore\r\nimport VuePerfectScrollbar from \"vue-perfect-scrollbar\"\r\nimport UserImage from \"@/components/UserImage.vue\"\r\nimport DateTime from \"../Fields/DateTime.vue\"\r\nimport Numeric from \"../Fields/Numeric.vue\"\r\n\r\nimport api from \"@/services/api\"\r\nimport moment from \"moment\"\r\n\r\nimport vSelect from \"vue-select\"\r\nimport { FormattingRule, Operator, dataTypeTests } from \"@/types/insights\"\r\nimport { CaseColumn } from \"@/types/caseColumns\"\r\nimport { cellFormatting } from \"@/mixins/cellFormatting\"\r\nimport { UserSettings } from \"@/types/userSettings\"\r\nimport TimeSpentDisplay from \"../CaseDetails/TimeSpentDisplay.vue\"\r\nimport TextAreaToggleExpand from \"../Fields/TextAreaToggleExpand.vue\"\r\nimport UserRole from \"../CaseDetails/Users/UserRole.vue\"\r\nimport FormGroup from \"../Fields/FormGroup.vue\"\r\nimport DataSourceSelect from \"../Fields/DataSourceSelect.vue\"\r\nimport { CurrentPageDetails } from \"@/types/paginatedRequest\"\r\nimport IconUpload from \"@/components/IconUpload.vue\"\r\n\r\nconst caseStore = namespace(\"cases\")\r\n\r\n@Component({\r\n\tcomponents: {\r\n\t\t\"v-select\": vSelect,\r\n\t\t\"user-image\": UserImage,\r\n\t\t\"time-spent-display\": TimeSpentDisplay,\r\n\t\t\"text-area-expand\": TextAreaToggleExpand,\r\n\t\t\"date-time\": DateTime,\r\n\t\t\"numeric\": Numeric,\r\n\t\t\"user-role\": UserRole,\r\n\t\t\"form-group\": FormGroup,\r\n\t\t\"data-select\": DataSourceSelect,\r\n\t\t\"icon-upload\": IconUpload\r\n\t}\r\n})\r\nexport default class CaseTable extends Vue {\r\n\t@Getter(\"getMe\") public me!: User;\r\n\r\n\t@Getter(\"getUserSettings\")\r\n\tpublic userSettings!: UserSettings;\r\n\r\n\t@Getter(\"getTenantSettings\") getTenantSettings!: { [ key: string]: any }\r\n\r\n\t@State tenantEnabledFeatures!: { [key: string]: boolean }\r\n\r\n\t@caseStore.Action(\"setFieldLockPolling\")\r\n\tprivate setFieldLockPolling!: ({ caseDetails, fieldId }: { caseDetails: CaseDetails, fieldId: string }) => void;\r\n\r\n\t@caseStore.Action(\"cancelFieldLockPolling\")\r\n\tprivate cancelFieldLockPolling!: ({ caseDetails, fieldId }: { caseDetails: CaseDetails, fieldId: string }) => void;\r\n\r\n\t@Prop()\r\n\tcolumns!: CaseColumn[];\r\n\r\n\t@Prop({ default: () => { return {} } })\r\n\tformattingRules!: { [key: string]: FormattingRule[] }\r\n\r\n\t@Prop()\r\n\tcases!: CaseDetails[];\r\n\r\n\t@Prop({ default: () => null })\r\n\tcurrentPage!: number | null;\r\n\r\n\t@Prop({ default: true })\r\n\thover!: boolean;\r\n\r\n\t@Prop({ default: 20 })\r\n\tperPage!: number;\r\n\r\n\t@Prop({ default: () => [] })\r\n\tfilterFunctions!: ((record: CaseDetails) => boolean)[];\r\n\r\n\t@Prop({ default: false })\r\n\tpublic displayingUsers!: boolean;\r\n\r\n\t@Prop()\r\n\tvalue!: string;\r\n\r\n\t@Prop({ default: \"\" })\r\n\tsortColumn!: string;\r\n\r\n\t@Prop({ default: false })\r\n\tsortDesc!: boolean;\r\n\r\n\t@Prop({ type: String, default: null })\r\n\ttableId!: string | null;\r\n\r\n\tsortColumnKey: string | null = null\r\n\tsortAscending: boolean = true\r\n\trowHoverEnabled: boolean = this.hover\r\n\r\n\tprivate CalculationType = CalculationType;\r\n\r\n\tget columnValues (): { [key: string]: any }[] {\r\n\t\treturn this.cases.map(c => {\r\n\t\t\treturn this.columns.reduce((values: { [key: string]: any }, column) => {\r\n\t\t\t\tif (c) {\r\n\t\t\t\t\tvalues[column.key] = this.cellValue(column, c)\r\n\t\t\t\t}\r\n\t\t\t\treturn values\r\n\t\t\t}, { case: c })\r\n\t\t})\r\n\t}\r\n\r\n\tget filteredValues (): { [key: string]: any }[] {\r\n\t\treturn this.columnValues\r\n\t}\r\n\r\n\tget sortedColumnValues () {\r\n\t\treturn this.sortColumnKey\r\n\t\t\t? this.filteredValues!.sortByValue(this.sortColumnKey, !this.sortAscending)\r\n\t\t\t: this.filteredValues\r\n\t}\r\n\r\n\tget currentPageItems (): { [key: string]: any }[] {\r\n\t\tif (this.tableId !== null) {\r\n\t\t\treturn this.columnValues\r\n\t\t}\r\n\r\n\t\tif (!this.perPage || this.currentPage === null) {\r\n\t\t\treturn this.sortedColumnValues\r\n\t\t}\r\n\r\n\t\treturn this.sortedColumnValues.slice((this.currentPage - 1) * this.perPage, this.currentPage * this.perPage)\r\n\t}\r\n\r\n\tget undynamicFormattingRules (): { [key: string]: FormattingRule[] } {\r\n\t\tif (!this.formattingRules) {\r\n\t\t\treturn {}\r\n\t\t}\r\n\r\n\t\tconst cloneRules = cloneDeep(this.formattingRules)\r\n\t\tObject.keys(cloneRules).forEach((key: string) => {\r\n\t\t\tcloneRules[key].forEach(rule => {\r\n\t\t\t\tif (rule.dynamicValue) {\r\n\t\t\t\t\tconst column = this.columns.find(c => c.key === key)\r\n\t\t\t\t\tif (column) {\r\n\t\t\t\t\t\tif (column.fieldDataType === DataType.dateTime) {\r\n\t\t\t\t\t\t\tconst now = new Date()\r\n\t\t\t\t\t\t\tnow.setDate(now.getDate() + parseInt(rule.value))\r\n\t\t\t\t\t\t\trule.value = now\r\n\t\t\t\t\t\t} else if (column.fieldDataType === DataType.userRole) {\r\n\t\t\t\t\t\t\trule.value = this.me.id\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t})\r\n\t\treturn cloneRules\r\n\t}\r\n\r\n\t/**\r\n\t * Get field Label value for field ID\r\n\t */\r\n\tpublic getFieldLabel (fieldId: string, caseDetails: CaseDetails): string | null {\r\n\t\tif (!caseDetails.fields || !caseDetails.fields[fieldId]) {\r\n\t\t\treturn \"\"\r\n\t\t}\r\n\r\n\t\tif (Array.isArray(caseDetails.fields[fieldId])) {\r\n\t\t\treturn caseDetails.fields[fieldId].value.map((i: { label: string }) => i.label).join(\", \")\r\n\t\t}\r\n\r\n\t\treturn caseDetails.fields[fieldId].label\r\n\t}\r\n\r\n\tpublic rowClick (caseitem: any, ctrlClick: boolean = false) {\r\n\t\tif (!ctrlClick && this.disableRowClick) {\r\n\t\t\treturn\r\n\t\t}\r\n\r\n\t\tif (!caseitem) {\r\n\t\t\treturn\r\n\t\t} else if (caseitem.caseNumber === \"FORECAST\") {\r\n\t\t\tthis.$emit(\"forecastClicked\", caseitem)\r\n\t\t\treturn\r\n\t\t}\r\n\r\n\t\t// newTab is default\r\n\t\tvar viewsOpening = \"newTab\"\r\n\t\tif (this.userSettings && this.userSettings.settings && this.userSettings.settings.viewsOpening) {\r\n\t\t\tviewsOpening = this.userSettings.settings.viewsOpening\r\n\t\t}\r\n\r\n\t\tlet entityIdentifier = caseitem.caseNumber\r\n\t\tlet endPath = \"cases\"\r\n\r\n\t\tif (this.displayingUsers) {\r\n\t\t\tentityIdentifier = caseitem.id\r\n\t\t\tendPath = \"userprofile\"\r\n\t\t}\r\n\r\n\t\tconst encodedEntityIdentifier = encodeURIComponent(entityIdentifier)\r\n\t\t// Navigate to record in the same tab or in a new tab\r\n\t\tswitch (viewsOpening) {\r\n\t\t\tcase \"sameTab\":\r\n\t\t\t\tif (ctrlClick) {\r\n\t\t\t\t\tlet routeData = this.$router.resolve({ path: `/${endPath}/${encodedEntityIdentifier}` })\r\n\t\t\t\t\twindow.open(routeData.href, \"_blank\")\r\n\t\t\t\t} else {\r\n\t\t\t\t\tthis.$router.push({ path: `/${endPath}/${encodedEntityIdentifier}` })\r\n\t\t\t\t}\r\n\t\t\t\tbreak\r\n\t\t\tcase \"newTab\":\r\n\t\t\t\tif (ctrlClick) {\r\n\t\t\t\t\tthis.$router.push({ path: `/${endPath}/${encodedEntityIdentifier}` })\r\n\t\t\t\t} else {\r\n\t\t\t\t\tlet routeData = this.$router.resolve({ path: `/${endPath}/${encodedEntityIdentifier}` })\r\n\t\t\t\t\twindow.open(routeData.href, \"_blank\")\r\n\t\t\t\t}\r\n\t\t\t\tbreak\r\n\t\t}\r\n\t}\r\n\r\n\tpublic cellValue (column: CaseColumn, caseItem: CaseDetails): any {\r\n\t\tconst value = get(caseItem, column.key)\r\n\r\n\t\tif (column.fieldExtensions && column.fieldExtensions.calculationType === CalculationType.DaysUntilOrFromToday) {\r\n\t\t\tconst fieldValue = get(caseItem, \"fields.\" + column.fieldExtensions.dateField)\r\n\r\n\t\t\tif (fieldValue) {\r\n\t\t\t\tconst fieldValueDate: Date = new Date(fieldValue.value ? fieldValue.value : fieldValue)\r\n\t\t\t\tconst daysDifference = calculatedValueDisplay.methods.localDaysFromToday(fieldValueDate)\r\n\r\n\t\t\t\treturn { value: daysDifference }\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tconst label = column.dynamicField\r\n\t\t\t? (value ? value.label : undefined)\r\n\t\t\t: column.displayKey\r\n\t\t\t\t? get(caseItem, column.displayKey)\r\n\t\t\t\t: undefined\r\n\r\n\t\treturn {\r\n\t\t\tlabel: label,\r\n\t\t\tvalue: (column.dynamicField ? (value ? value.value : null) : value),\r\n\t\t\tfieldType: value && value.fieldDataType\r\n\t\t}\r\n\t}\r\n\r\n\tpublic itemValue (caseItem: any, columnKey: string): any {\r\n\t\tif (!caseItem) {\r\n\t\t\treturn null\r\n\t\t}\r\n\r\n\t\tconst dotIndex = columnKey.indexOf(\".\")\r\n\t\tif (dotIndex > -1) {\r\n\t\t\tconst topLevel = columnKey.substring(0, dotIndex)\r\n\t\t\tconst rest = columnKey.substring(dotIndex + 1)\r\n\t\t\treturn this.itemValue(caseItem[topLevel], rest)\r\n\t\t}\r\n\t\tvar value = caseItem[columnKey]\r\n\r\n\t\t// If the items a calulated field\r\n\t\tif (caseItem.dataType === \"calculated\" && typeof value === \"object\") {\r\n\t\t\t// Add the field's id to the value object\r\n\t\t\tvalue.id = caseItem.id\r\n\t\t}\r\n\r\n\t\treturn value\r\n\t}\r\n\r\n\tpublic calculatedFieldDisplayValue (field: any, caseValue: any): string | null {\r\n\t\tif (!field) {\r\n\t\t\treturn null\r\n\t\t}\r\n\r\n\t\tconst value = this.itemValue(caseValue, field.key)\r\n\t\tconst fieldExtensions = field.extensions ? field.extensions : field.fieldExtensions\r\n\r\n\t\tif (!fieldExtensions || !value) {\r\n\t\t\treturn null\r\n\t\t}\r\n\r\n\t\treturn calculatedValueDisplay.methods.displayCalculatedField(caseValue, fieldExtensions, value.value)\r\n\t}\r\n\r\n\tprivate isTimeSpentCalculationType (field: any) : boolean {\r\n\t\tconst fieldExtensions = field.extensions ? field.extensions : field.fieldExtensions\r\n\t\treturn fieldExtensions && fieldExtensions.calculationType === CalculationType.TimeSpentAs\r\n\t}\r\n\r\n\tprivate cellStyle (key: string, value: any, field: CaseColumn) {\r\n\t\tif (!this.undynamicFormattingRules || !this.undynamicFormattingRules[key]) return null\r\n\t\treturn cellFormatting.cellStyle(this.undynamicFormattingRules[key], value, field)\r\n\t}\r\n\r\n\tprivate cellBarStyle (caseDetails: { [key: string]: any }, key: string, value: any, field: CaseColumn) {\r\n\t\tif (!this.undynamicFormattingRules || !this.undynamicFormattingRules[key]) {\r\n\t\t\treturn {\r\n\t\t\t\tdisplay: \"none\"\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn cellFormatting.cellBarStyle(this.undynamicFormattingRules[key], this.currentPageItems, caseDetails, value, field)\r\n\t}\r\n\r\n\tprivate icon (key: string, value: any, field: CaseColumn) {\r\n\t\tif (!this.undynamicFormattingRules || !this.undynamicFormattingRules[key]) return null\r\n\t\treturn cellFormatting.icon(this.undynamicFormattingRules[key], value, field)\r\n\t}\r\n\r\n\tprivate setSortColumn (columnKey: string, columnDataType: DataType | undefined): void {\r\n\t\tif (this.tableId !== null) {\r\n\t\t\tconst pageDetails: CurrentPageDetails = {\r\n\t\t\t\tsortBy: columnKey,\r\n\t\t\t\tsortDesc: this.sortColumn === columnKey ? !this.sortDesc : false,\r\n\t\t\t\tsortDataType: columnDataType,\r\n\t\t\t\tvalue: this.value,\r\n\t\t\t\ttableId: this.tableId\r\n\t\t\t}\r\n\r\n\t\t\tthis.$emit(\"sortDetails\", pageDetails)\r\n\t\t} else {\r\n\t\t\tif (this.sortColumnKey === columnKey) {\r\n\t\t\t\tthis.sortAscending = !this.sortAscending\r\n\t\t\t} else {\r\n\t\t\t\tthis.sortColumnKey = columnKey\r\n\t\t\t\tthis.sortAscending = true\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t// Edit Table Cell functionality\r\n\r\n\tdisableRowClick: boolean = false\r\n\r\n\tcolumnKeyHovered: string = \"\";\r\n\tcaseIdHovered: string = \"\"\r\n\tcolumnKeyToEdit: string = \"\";\r\n\tcaseIdToEdit: string = \"\"\r\n\r\n\tcaseToEdit: CaseDetails | null = null\r\n\tfieldToEdit: CaseField | null = null\r\n\r\n\tpublic get fieldEditingEnabled () : boolean {\r\n\t\tif (this.getTenantSettings &&\r\n\t\t\t\"allowFieldEditInViews\" in this.getTenantSettings &&\r\n\t\t\t!!this.getTenantSettings[\"allowFieldEditInViews\"]) {\r\n\t\t\treturn true\r\n\t\t}\r\n\t\treturn false\r\n\t}\r\n\r\n\tprivate cellIsEditable (caseHovered: CaseDetails, column: CaseColumn) : boolean {\r\n\t\tif (!this.pageAllowsEdits) {\r\n\t\t\treturn false\r\n\t\t}\r\n\r\n\t\tif (!this.fieldEditingEnabled) {\r\n\t\t\treturn false\r\n\t\t}\r\n\r\n\t\tif (caseHovered.isClosed) {\r\n\t\t\treturn false\r\n\t\t}\r\n\r\n\t\t// Prevents editing of Forecasted Records\r\n\t\tif (!caseHovered.id) {\r\n\t\t\treturn false\r\n\t\t}\r\n\r\n\t\tif (!column.dynamicField) {\r\n\t\t\treturn false\r\n\t\t}\r\n\r\n\t\tconst dynamicFieldId = this.stripFieldsPrefix(column.key)\r\n\r\n\t\tif (caseHovered.fields === null || !(dynamicFieldId in caseHovered.fields)) {\r\n\t\t\treturn false\r\n\t\t}\r\n\t\tconst fieldHovered = caseHovered.fields[dynamicFieldId]\r\n\r\n\t\tconst isEditableType: boolean =\r\n\t\t\t!!column.fieldId &&\r\n\t\t\tcaseHovered.fields &&\r\n\t\t\tcaseHovered.fields[column.fieldId || \"\"] &&\r\n\t\t\t(column.dataType === \"text\" ||\r\n\t\t\tcolumn.dataType === \"text-area\" ||\r\n\t\t\tcolumn.dataType === \"checkbox\" ||\r\n\t\t\tcolumn.dataType === \"number\" ||\r\n\t\t\tcolumn.dataType === \"dollar\" ||\r\n\t\t\tcolumn.dataType === \"date\" ||\r\n\t\t\tcolumn.dataType === \"date-time\" ||\r\n\t\t\tcolumn.dataType === \"user-role\" ||\r\n\t\t\tcolumn.dataType === \"list\" ||\r\n\t\t\tcolumn.dataType === \"list-multiple\")\r\n\r\n\t\tif (!isEditableType) {\r\n\t\t\treturn false\r\n\t\t}\r\n\r\n\t\tconst hasPermission = this.hasPermission(caseHovered, fieldHovered)\r\n\t\treturn hasPermission\r\n\t}\r\n\r\n\t// This checks for field level and case field level permissions and hides pencil icon if not authorized - it's not possible to do anything with *section permissions* for Views as these don't get returned by API (in this case).\r\n\t// Even if an edit is made by a user without permission, the API also checks permissions at api.selectCaseField(..), and disallows it with a NoPermissionException if not authorized\r\n\tprivate hasPermission (caseHovered: CaseDetails, fieldHovered: CaseField): boolean {\r\n\t\tif (fieldHovered.field && fieldHovered.field.displayReadOnly) {\r\n\t\t\treturn false\r\n\t\t}\r\n\r\n\t\tconst teams = this.getPermissionTeams(\"edit\", caseHovered, fieldHovered)\r\n\t\tif (!teams || teams.length === 0) {\r\n\t\t\treturn true\r\n\t\t}\r\n\r\n\t\treturn this.me.teams && teams.some(team => this.me.teams.find((myTeam: any) => myTeam.id === team.id))\r\n\t}\r\n\r\n\tprivate getPermissionTeams (permissionType: keyof Permission, caseHovered: CaseDetails, fieldHovered: CaseField): any[] {\r\n\t\tif (!caseHovered || !fieldHovered) {\r\n\t\t\treturn []\r\n\t\t}\r\n\r\n\t\tvar caseFieldLevelPermissions = fieldHovered.permissions\r\n\t\t\t? caseHovered.isCase ? fieldHovered.permissions.case : fieldHovered.permissions.record\r\n\t\t\t: null\r\n\r\n\t\tif (caseFieldLevelPermissions) {\r\n\t\t\treturn caseFieldLevelPermissions[permissionType]\r\n\t\t}\r\n\r\n\t\tif (fieldHovered.field && fieldHovered.field.permissions) {\r\n\t\t\tconst fieldLevelPermissions =\r\n\t\t\t\t(caseHovered.isCase ? fieldHovered.field.permissions.case : fieldHovered.field.permissions.record)[permissionType]\r\n\t\t\treturn fieldLevelPermissions\r\n\t\t}\r\n\r\n\t\treturn []\r\n\t}\r\n\r\n\tprivate async cellEditBegin (caseNumber: string) {\r\n\t\tthis.caseIdToEdit = this.caseIdHovered\r\n\t\tthis.columnKeyToEdit = this.columnKeyHovered\r\n\t\tconst caseDetails = await api.caseDetails(this.caseIdToEdit)\r\n\t\tconst fieldToEditId = this.stripFieldsPrefix(this.columnKeyToEdit)\r\n\r\n\t\tawait api.selectCaseField(this.caseIdToEdit, fieldToEditId, true)\r\n\t\tthis.setFieldLockPolling({ caseDetails: caseDetails, fieldId: fieldToEditId })\r\n\r\n\t\tthis.caseToEdit = await api.caseDetails(caseNumber)\r\n\r\n\t\tthis.fieldToEdit = this.caseToEdit.fields[fieldToEditId]\r\n\t\tthis.disableRowClick = true\r\n\t\tthis.rowHoverEnabled = false\r\n\t}\r\n\r\n\tprivate stripFieldsPrefix (fieldId: string) : string {\r\n\t\tif (fieldId.startsWith(\"fields.\")) {\r\n\t\t\treturn fieldId.slice(\"fields.\".length)\r\n\t\t}\r\n\t\treturn fieldId\r\n\t}\r\n\r\n\tprivate async cellEditClear () {\r\n\t\tconst caseDetails = await api.caseDetails(this.caseIdToEdit)\r\n\t\tawait api.selectCaseField(this.caseIdToEdit, this.fieldToEdit!.field.id!, false)\r\n\t\tthis.setFieldLockPolling({ caseDetails: caseDetails, fieldId: this.fieldToEdit!.field.id! })\r\n\t\tthis.caseIdToEdit = \"\"\r\n\t\tthis.columnKeyToEdit = \"\"\r\n\t\tthis.caseToEdit = null\r\n\t\tthis.fieldToEdit = null\r\n\t\tthis.disableRowClick = false\r\n\t\tthis.rowHoverEnabled = true\r\n\t}\r\n\r\n\tprivate async cellEditConfirmed (caseNumber: string) {\r\n\t\tawait api.saveCaseField(this.caseToEdit!.id!, this.fieldToEdit!.field.id!, this.fieldToEdit!.value)\r\n\t\tconst updatedCase = await api.caseDetails(caseNumber)\r\n\t\tconst caseIndex = this.cases.findIndex(c => c.caseNumber === caseNumber)\r\n\t\tthis.$set(this.cases, caseIndex, updatedCase)\r\n\t\tawait this.cellEditClear()\r\n\r\n\t\tthis.$emit(\"caseEdited\", caseNumber)\r\n\t}\r\n\r\n\tprivate cellIsHovered (caseIdHovered: string, columnKeyHovered: string) : boolean {\r\n\t\treturn caseIdHovered === this.caseIdHovered && columnKeyHovered === this.columnKeyHovered\r\n\t}\r\n\r\n\tprivate setHoveringCell (caseIdHovered: string, columnKeyHovered: string) {\r\n\t\tthis.columnKeyHovered = columnKeyHovered\r\n\t\tthis.caseIdHovered = caseIdHovered\r\n\t}\r\n\r\n\tprivate clearHoveringCell () {\r\n\t\tthis.columnKeyHovered = \"\"\r\n\t\tthis.caseIdHovered = \"\"\r\n\t}\r\n\r\n\tprivate cellIsInEditMode (caseIdToEdit: string, columnKeyToEdit: string) : boolean {\r\n\t\tif (!this.fieldEditingEnabled) {\r\n\t\t\treturn false\r\n\t\t}\r\n\r\n\t\treturn this.caseIdToEdit === caseIdToEdit &&\r\n\t\tthis.columnKeyToEdit === columnKeyToEdit &&\r\n\t\t!!this.fieldToEdit\r\n\t}\r\n\r\n\tpublic get pageAllowsEdits () {\r\n\t\treturn this.$route.name === \"dashboard\" ||\r\n\t\t\tthis.$route.name === \"overview\" || // views\r\n\t\t\tthis.$route.name === \"insights\"\r\n\t}\r\n\r\n\tprivate get currentSortColumn (): string | null {\r\n\t\treturn this.tableId !== null ? this.sortColumn : this.sortColumnKey\r\n\t}\r\n\r\n\tprivate get currentSortAscending (): boolean {\r\n\t\treturn this.tableId !== null ? !this.sortDesc : this.sortAscending\r\n\t}\r\n}\r\n\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CaseTable.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CaseTable.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./CaseTable.vue?vue&type=template&id=6dd8cf22&scoped=true&\"\nimport script from \"./CaseTable.vue?vue&type=script&lang=ts&\"\nexport * from \"./CaseTable.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./CaseTable.vue?vue&type=style&index=0&id=6dd8cf22&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"6dd8cf22\",\n null\n \n)\n\nexport default component.exports","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Search.vue?vue&type=style&index=0&id=5661661e&prod&scoped=true&lang=scss&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.mapProvider)?_c('div',[_c('a',{staticClass:\"btn btn-secondary m-r-20\",class:_vm.readonly ? 'disabled' : '',attrs:{\"title\":'Add ' + _vm.title},on:{\"click\":_vm.setLocation}},[_vm._v(\" Add \")]),(_vm.value)?_c('div',{staticClass:\"d-inline\"},_vm._l((_vm.value),function(location,index){return _c('b-button-group',{key:index,staticClass:\" m-l-20\"},[_c('a',{staticClass:\"btn btn-secondary\",on:{\"click\":function($event){return _vm.gotoLocation(location)}}},[_vm._v(\" View \"+_vm._s(_vm.value.length > 1 ? \"(\" + (index + 1).toString() + \")\" : \"\")+\" \")]),_c('a',{staticClass:\"btn btn-secondary\",class:_vm.readonly ? 'disabled' : '',attrs:{\"title\":\"Remove location\"},on:{\"click\":function($event){return _vm.removeLocation(location)}}},[_c('i',{staticClass:\"fas fa-times\",attrs:{\"tabindex\":\"0\"}})])])}),1):_vm._e()]):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { Component, Vue, Prop, Watch, InjectReactive, Inject } from \"vue-property-decorator\"\r\n\r\nimport { get, set } from \"lodash\"\r\n\r\n// @ts-ignore\r\nimport { Datetime } from \"vue-datetime\"\r\nimport vSelect from \"vue-select\"\r\n\r\nimport {\r\n\tgetEnhancedMapping,\r\n\tIEnhancedMapping,\r\n\tIMap,\r\n\tIMarker,\r\n\tILatLng,\r\n\tILatLngBounds\r\n} from \"@sureview/v2-mapping\"\r\n\r\nimport { Field } from \"@/types\"\r\n\r\nimport { MapProvider, MarkerDrawType } from \"@/services/mapProvider\"\r\n\r\n\t@Component({\r\n\t\tcomponents: {\r\n\t\t}\r\n\t})\r\nexport default class MapLocation extends Vue {\r\n\t$refs!: {\r\n\t\tmappingContainer: HTMLElement,\r\n\t}\r\n\r\n\t@Inject(\"mapProvider\") mapProvider!: MapProvider;\r\n\r\n\t@Prop()\r\n\tvalue!: any;\r\n\r\n\t@Prop()\r\n\tfieldId!: string;\r\n\r\n\t@Prop()\r\n\ttitle!: string;\r\n\r\n\t@Prop()\r\n\tfieldType!: string;\r\n\r\n\t@Prop()\r\n\tfieldExtensions!: any;\r\n\r\n\t@Prop()\r\n\treadonly!: boolean;\r\n\r\n\tget map (): IMap | null {\r\n\t\treturn this.mapProvider && this.mapProvider.map ? this.mapProvider.map! : null\r\n\t}\r\n\r\n\tget markerIcon (): string {\r\n\t\treturn this.fieldExtensions && this.fieldExtensions.markerColor ? this.fieldExtensions.markerColor : \"red\"\r\n\t}\r\n\r\n\tget drawType (): MarkerDrawType {\r\n\t\tswitch (this.fieldType) {\r\n\t\t\tcase \"map-region\": return MarkerDrawType.Region\r\n\t\t\tcase \"map-path\": return MarkerDrawType.Path\r\n\t\t\tdefault: return MarkerDrawType.Point\r\n\t\t}\r\n\t}\r\n\r\n\t@Watch(\"value\")\r\n\tvalueChanged () {\r\n\t\tthis.mapProvider.drawValue(this.fieldId, this.drawType, this.title, this.markerIcon, this.value)\r\n\t}\r\n\r\n\tmounted () {\r\n\t\tif (this.value) {\r\n\t\t\tthis.mapProvider.drawValue(this.fieldId, this.drawType, this.title, this.markerIcon, this.value)\r\n\t\t}\r\n\t}\r\n\r\n\tbeforeDestroy () {\r\n\t\tthis.mapProvider.drawValue(this.fieldId, this.drawType, this.title, this.markerIcon, [])\r\n\t}\r\n\r\n\tsetLocation () {\r\n\t\tif (this.mapProvider && this.mapProvider.mapElement) {\r\n\t\t\tthis.mapProvider.startDraw({\r\n\t\t\t\tcolorName: this.markerIcon,\r\n\t\t\t\tcolor: \"\",\r\n\t\t\t\tdrawType: this.drawType,\r\n\t\t\t\tmarkerText: this.title,\r\n\t\t\t\tset: (value: any) => {\r\n\t\t\t\t\tconst newValue = this.value ? [...this.value, value] : [value]\r\n\t\t\t\t\tthis.$emit(\"input\", newValue)\r\n\t\t\t\t\tthis.mapProvider.drawValue(this.fieldId, this.drawType, this.title, this.markerIcon, newValue)\r\n\t\t\t\t},\r\n\t\t\t\tcancel: () => {\r\n\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t}\r\n\t}\r\n\r\n\tgotoLocation (location: any) {\r\n\t\tif (this.map) {\r\n\t\t\tthis.mapProvider.goto(location)\r\n\t\t}\r\n\t}\r\n\r\n\tremoveLocation (location: any) {\r\n\t\tif (this.value) {\r\n\t\t\tthis.$emit(\"input\", this.value.filter((v: any) => v !== location))\r\n\t\t}\r\n\t}\r\n}\r\n\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MapLocation.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MapLocation.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./MapLocation.vue?vue&type=template&id=64b0f027&scoped=true&\"\nimport script from \"./MapLocation.vue?vue&type=script&lang=ts&\"\nexport * from \"./MapLocation.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"64b0f027\",\n null\n \n)\n\nexport default component.exports","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MonthPicker.vue?vue&type=style&index=0&id=dd6a550e&prod&lang=scss&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"d-flex flex-column\"},[(_vm.showFilters)?_c('div',[_c('column-filters',{staticClass:\"m-a-5\",attrs:{\"allCaseFields\":_vm.allCaseFields,\"filterColumnGroups\":_vm.filterColumnGroups,\"allowOr\":true},on:{\"applyFilters\":_vm.applyFilters},model:{value:(_vm.filters),callback:function ($$v) {_vm.filters=$$v},expression:\"filters\"}}),(_vm.filtered && _vm.showCalculations && ((_vm.tableCalculations && _vm.tableCalculations.length > 0) || (_vm.calculationTotals && _vm.calculationTotals.length > 0)))?_c('i',[_vm._v(\"Calculations re-applied, based on filtered results\")]):_vm._e()],1):_vm._e(),_c('scrollbar',{staticClass:\"flex-grow-1 pr-3\"},[(_vm.filtered && _vm.resultGroups && _vm.resultGroups.length > 0 && _vm.visibleFilteredResultGroups.length === 0)?_c('div',{staticClass:\"alert alert-secondary m-a-10\"},[_vm._v(\" No results match your filters. \")]):_vm._e(),_vm._l((_vm.visibleFilteredResultGroups),function(group){return _c('div',{key:group.value,staticClass:\"m-b-20\"},[_c('div',[_c('case-table',{attrs:{\"columns\":_vm.columns,\"cases\":group.results,\"currentPage\":_vm.getCurrentPage(group),\"perPage\":_vm.perPage,\"formattingRules\":_vm.formattingRules,\"filterFunctions\":_vm.filterFunctions,\"value\":group.value,\"sortColumn\":_vm.groupPages[group.value].sortBy,\"sortDesc\":_vm.groupPages[group.value].sortDesc,\"tableId\":group.value,\"data-cy\":(\"case-table-\" + (group.value))},on:{\"forecastClicked\":_vm.forecastClicked,\"caseEdited\":_vm.caseEdited,\"sortDetails\":_vm.setSortDetails}},[_c('div',{staticClass:\"case-header card-header bg-secondary position-sticky\"},[_c('div',{staticClass:\"d-flex flex-row align-items-center\"},[_c('b',{staticClass:\"flex-grow-1\"},[_vm._v(\" \"+_vm._s(_vm.formatLabel(_vm.labelFormat, group.label))+\" \")]),(_vm.filtered)?_c('span',{staticClass:\"flex-shrink-1 flex-grow-0\"},[_vm._v(\" Showing \"+_vm._s(group.results.length)+\" out of \"+_vm._s(group.unfilteredLength)+\" results. \")]):_vm._e()]),(group.results && _vm.perPage && group.totalRecords > _vm.perPage && _vm.groupPages[group.value])?_c('div',[_c('b-pagination',{staticClass:\"m-b-0\",attrs:{\"total-rows\":group.totalRecords,\"per-page\":_vm.perPage,\"aria-controls\":\"my-table\",\"data-cy\":(\"table-pagination-\" + (group.value))},on:{\"input\":function($event){return _vm.onPageClick(group)}},model:{value:(_vm.groupPages[group.value].pageNumber),callback:function ($$v) {_vm.$set(_vm.groupPages[group.value], \"pageNumber\", $$v)},expression:\"groupPages[group.value].pageNumber\"}})],1):_vm._e()])])],1),(group.calculations && _vm.tableCalculations.length > 0 && _vm.showCalculations)?_c('div',{staticClass:\"case-header footer-row bg-secondary\"},_vm._l((_vm.tableCalculations),function(calc,index){return _c('span',{key:calc.id || index,staticClass:\"m-r-10 m-l-10\"},[_vm._v(\" \"+_vm._s(calc.label)+\": \"),(calc.groupBy && calc.groupByKeyLabels)?_c('span',{domProps:{\"innerHTML\":_vm._s('[' + _vm.groupByText(calc, group.calculations[calc.key]) + ']')}}):[(group.calculations[calc.key] !== null && group.calculations[calc.key] !== undefined)?_c('span',[_vm._v(_vm._s(_vm.roundCalculationValue(group.calculations[calc.key])))]):_c('span',[_vm._v(\"0\")])]],2)}),0):_vm._e(),(group.calculationTotals && _vm.calculationTotals && _vm.calculationTotals.length > 0)?_c('div',{staticClass:\"case-header footer-row bg-secondary\"},_vm._l((_vm.calculationTotals),function(calcTotal,index){return _c('span',{key:index,staticClass:\"m-r-10 m-l-10\"},[_vm._v(\" \"+_vm._s(calcTotal.title)+\": \"),(calcTotal.groupBy && !calcTotal.collate)?_c('span',{domProps:{\"innerHTML\":_vm._s('[' + _vm.groupTotalsByText(calcTotal, group.calculationTotals[index]) + ']')}}):[(group.calculationTotals[index] !== null && group.calculationTotals[index] !== undefined)?_c('span',[_vm._v(_vm._s(_vm.roundCalculationValue(group.calculationTotals[index])))]):_c('span',{staticStyle:{\"color\":\"#e93c42\"}},[_vm._v(\"Invalid Calculation\")])]],2)}),0):_vm._e()])})],2),(_vm.viewScheduleInstance)?_c('schedule-popup',{attrs:{\"allowScheduleEdit\":false},on:{\"scheduleInstanceUpdated\":_vm.scheduleInstanceUpdated},model:{value:(_vm.viewScheduleInstance),callback:function ($$v) {_vm.viewScheduleInstance=$$v},expression:\"viewScheduleInstance\"}}):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { Component, Vue, Watch, Prop, Emit } from \"vue-property-decorator\"\r\nimport { namespace, Getter } from \"vuex-class\"\r\n\r\nimport { AdvancedSearchFilter, CaseDetails, Field } from \"@/types\"\r\nimport User from \"@/types/user\"\r\nimport { FormattingRule, InsightCalculationTotal, LabelFormat, Insight, InsightCalculation, Operator, DataType } from \"@/types/insights\"\r\nimport { CaseColumn } from \"@/types/caseColumns\"\r\n\r\n// @ts-ignore\r\nimport VuePerfectScrollbar from \"vue-perfect-scrollbar\"\r\nimport CaseTable from \"@/components/CaseList/CaseTable.vue\"\r\nimport ColumnFilters from \"@/components/Search/ColumnFilters.vue\"\r\nimport { UserSettings } from \"@/types/userSettings\"\r\n\r\nimport api from \"@/services/api\"\r\n\r\nimport { filterMixin } from \"@/mixins/filtering\"\r\nimport { CalculationResults, FilteredCalculationResults } from \"@/types/insights/calculatedResults\"\r\nimport { Schedule } from \"@/types/schedule\"\r\nimport { applyFieldChanges } from \"@/scripts/caseDetails\"\r\nimport { formatInsight } from \"@/mixins/FormatInsight\"\r\nimport { CurrentPageDetails } from \"@/types/paginatedRequest\"\r\nimport { Clause } from \"@/types/view\"\r\nimport { isEqual } from \"lodash\"\r\n\r\nconst setup = namespace(\"setup\")\r\n\r\n@Component({\r\n\tcomponents: {\r\n\t\t\"scrollbar\": VuePerfectScrollbar,\r\n\t\t\"case-table\": CaseTable,\r\n\t\t\"column-filters\": ColumnFilters,\r\n\t\t\"schedule-popup\": () => import(\"@/components/Config/Schedules/ScheduleInstance.vue\")\r\n\t}\r\n})\r\nexport default class TableResults extends Vue {\r\n\t@Getter(\"getMe\") public me!: User;\r\n\r\n\t@Getter(\"getScreenWidth\") public screenWidth!: number;\r\n\r\n\t@Getter(\"getUserSettings\")\r\n\tpublic userSettings!: UserSettings;\r\n\r\n\t@setup.State\r\n\tfields!: Field[];\r\n\r\n\t@Prop()\r\n\tresultGroups!: CalculationResults[];\r\n\r\n\t@Prop()\r\n\tcolumns!: any[];\r\n\r\n\t@Prop()\r\n\tallCaseFields!: CaseColumn[];\r\n\r\n\t@Prop({ required: true })\r\n\tinsight!: Insight\r\n\r\n\t@Prop()\r\n\tcalculations: any;\r\n\r\n\t@Prop()\r\n\tcalculationGroupByLabels: any;\r\n\r\n\t@Prop({ default: LabelFormat.Text })\r\n\tlabelFormat!: LabelFormat;\r\n\r\n\t@Prop({ default: true })\r\n\tshowCalculations!: boolean;\r\n\r\n\t@Prop({ default: false })\r\n\tshowFilters!: boolean;\r\n\r\n\t@Prop({ type: Number, default: 20 })\r\n\tperPage!: number;\r\n\r\n\t@Prop({ default: () => [] })\r\n\tadditionalFilters!: AdvancedSearchFilter[]\r\n\r\n\tprivate filters: AdvancedSearchFilter[] = [];\r\n\tfilterFunctions: ((record: CaseDetails) => boolean)[] = [];\r\n\r\n\tprivate groupPages: { [key: string]: CurrentPageDetails } = {};\r\n\tprivate orClauseKey: string = \"or-1\";\r\n\r\n\tprivate viewScheduleInstance: {\r\n\t\tschedule: Schedule,\r\n\t\tdate: Date\r\n\t} | null = null\r\n\r\n\tget tableCalculations () : InsightCalculation[] {\r\n\t\tif (this.calculations) {\r\n\t\t\treturn this.calculations\r\n\t\t}\r\n\t\treturn this.insight.calculations\r\n\t}\r\n\r\n\tget formattingRules () : { [key: string]: FormattingRule[] } {\r\n\t\treturn this.insight.formattingRules || {}\r\n\t}\r\n\r\n\tget calculationTotals () : InsightCalculationTotal[] {\r\n\t\treturn this.insight.calculationTotals || []\r\n\t}\r\n\r\n\tget filterColumnGroups () {\r\n\t\treturn [\r\n\t\t\tthis.columns\r\n\t\t]\r\n\t}\r\n\r\n\tget filteredResultGroups () : FilteredCalculationResults[] {\r\n\t\treturn filterMixin.methods.filterGroups(this.resultGroups, this.filterFunctions, this.labelFormat, this.insight, this.fields)\r\n\t}\r\n\r\n\tget visibleFilteredResultGroups () : any[] {\r\n\t\tif (!this.resultGroups) {\r\n\t\t\treturn []\r\n\t\t}\r\n\r\n\t\tif (!this.filterFunctions || this.filterFunctions.length === 0) {\r\n\t\t\treturn this.resultGroups\r\n\t\t}\r\n\r\n\t\treturn this.filteredResultGroups.filter(g => g.results.length > 0)\r\n\t}\r\n\r\n\tget filtered () : boolean {\r\n\t\treturn this.filterFunctions && this.filterFunctions.length > 0\r\n\t}\r\n\r\n\tprivate beforeMount (): void {\r\n\t\tthis.setGroupPages()\r\n\t}\r\n\r\n\tmounted () {\r\n\t\tif (this.additionalFilters && this.additionalFilters.length > 0) {\r\n\t\t\tthis.applyFilters()\r\n\t\t} else {\r\n\t\t\tthis.resultGroupsChanged()\r\n\t\t}\r\n\t}\r\n\r\n\tprivate setGroupPages (): void {\r\n\t\tthis.groupPages = {}\r\n\r\n\t\tif (!!this.resultGroups && this.resultGroups.length > 0) {\r\n\t\t\tthis.groupPages = this.resultGroups.reduce((acc, resultGroup: CalculationResults) => {\r\n\t\t\t\tacc[resultGroup.value] = {\r\n\t\t\t\t\tvalue: resultGroup.value,\r\n\t\t\t\t\tpageNumber: 1,\r\n\t\t\t\t\tpageSize: this.perPage,\r\n\t\t\t\t\tsortBy: \"\",\r\n\t\t\t\t\tsortDataType: DataType.none,\r\n\t\t\t\t\tsortDesc: false\r\n\t\t\t\t}\r\n\t\t\t\treturn acc\r\n\t\t\t}, {} as { [key: string]: CurrentPageDetails })\r\n\t\t}\r\n\t}\r\n\r\n\t@Watch(\"filteredResultGroups\")\r\n\tprivate resultGroupsChanged (): void {\n\t\tthis.filteredResultGroups.forEach((resultGroup, index) => {\r\n\t\t\tif (!this.groupPages[resultGroup.value]) {\r\n\t\t\t\tVue.set(this.groupPages, resultGroup.value, {\r\n\t\t\t\t\tlabel: resultGroup.value,\r\n\t\t\t\t\tpageNumber: 1\r\n\t\t\t\t})\r\n\t\t\t}\r\n\t\t})\r\n\t\tthis.$emit(\"filteredResultsGroups\", this.filteredResultGroups)\r\n\t}\r\n\r\n\t@Watch(\"additionalFilters\", { deep: true })\r\n\tprivate additionalFiltersChanged (newValue: AdvancedSearchFilter[], oldValue: AdvancedSearchFilter[]): void {\r\n\t\tif (!isEqual(newValue, oldValue)) {\r\n\t\t\tthis.applyFilters()\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Get field Label value for field ID\r\n\t */\r\n\tpublic getFieldLabel (fieldId: string, caseDetails: CaseDetails): string | null {\r\n\t\tif (!caseDetails.fields[fieldId]) {\r\n\t\t\treturn null\r\n\t\t}\r\n\r\n\t\treturn caseDetails.fields[fieldId].label\r\n\t}\r\n\r\n\tprivate groupByText (calculation: any, groupCalculationResult: any): string {\r\n\t\tif (calculation.groupByKeyLabels) {\r\n\t\t\tconst calculationKeys = Object.keys(calculation.groupByKeyLabels).filter(k => groupCalculationResult && groupCalculationResult[k] !== undefined)\r\n\t\t\treturn calculationKeys.map(k => `${calculation.groupByKeyLabels[k]}: ${groupCalculationResult[k] !== null\r\n\t\t\t\t? formatInsight.methods.roundNumber(groupCalculationResult[k], 2)\r\n\t\t\t\t: 0}`)\r\n\t\t\t\t.join(\", \")\r\n\t\t}\r\n\t\treturn \"\"\r\n\t}\r\n\r\n\tprivate groupTotalsByText (calculationTotal: InsightCalculationTotal, result: any): string {\r\n\t\tif (calculationTotal.calculationList && calculationTotal.calculationList.length > 0) {\r\n\t\t\tconst calculation = this.tableCalculations.find((calc: any) => calc.key === calculationTotal.calculationList[0])\r\n\t\t\treturn calculation ? this.groupByText(calculation, result) : \"\"\r\n\t\t}\r\n\t\treturn \"\"\r\n\t}\r\n\r\n\tprivate getCurrentPage (group: any): number {\r\n\t\tif (this.groupPages[group.value]) {\r\n\t\t\tif (this.groupPages[group.value].pageNumber && this.groupPages[group.value].pageNumber !== undefined) {\r\n\t\t\t\treturn this.groupPages[group.value].pageNumber ?? 1\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn 1\r\n\t}\r\n\r\n\tprivate applyFilters () {\r\n\t\tconst filters = [\r\n\t\t\t...this.additionalFilters,\r\n\t\t\t...this.filters\r\n\t\t]\r\n\r\n\t\tthis.groupPages = {}\r\n\t\tthis.$emit(\"reloadInsightByClauses\", this.createClausesFromFilters(filters))\r\n\t}\r\n\r\n\tprivate createClausesFromFilters (filters: AdvancedSearchFilter[]): Clause[] {\n\t\treturn filters.filter(filter => !!filter).map(filter => {\n\t\t\tconst isOrClause = filter.key === this.orClauseKey\r\n\t\t\treturn {\r\n\t\t\t\tfield: isOrClause ? \"\" : filter.key,\r\n\t\t\t\tlabel: isOrClause ? \"\" : filter.columnLabel ?? \"\",\r\n\t\t\t\toperator: isOrClause ? Operator.Equals : filter.operator,\r\n\t\t\t\tvalue: isOrClause ? null : filter.value,\r\n\t\t\t\torClause: isOrClause,\r\n\t\t\t\tsubClauses: !!filter.orFilters && filter.orFilters.length > 0 ? this.createClausesFromFilters(filter.orFilters) : undefined,\r\n\t\t\t\tfieldDataType: isOrClause ? 0 : filter.column?.fieldDataType ?? 0,\r\n\t\t\t\tdynamicField: false,\r\n\t\t\t\tdynamicValue: isOrClause ? false : filter.dynamicValue ?? false\r\n\t\t\t}\r\n\t\t})\r\n\t}\r\n\r\n\tforecastClicked (caseItem: { scheduling: any }) {\r\n\t\tif (!caseItem.scheduling) return\r\n\r\n\t\tthis.viewScheduleInstance = {\r\n\t\t\tschedule: {\r\n\t\t\t\tid: caseItem.scheduling.scheduleId,\r\n\t\t\t\ttitle: caseItem.scheduling.scheduleTitle\r\n\t\t\t} as Schedule,\r\n\t\t\tdate: new Date(caseItem.scheduling.instanceDate)\r\n\t\t}\r\n\t}\r\n\r\n\tasync scheduleInstanceUpdated ({ scheduleId, date, fieldValues }: { scheduleId: string, date: Date, fieldValues: { [ key: string ]: { label: string, value: any }} }) {\r\n\t\tconst dateString = `${date.getFullYear()}-${date.getMonth() + 1}-${date.getDate()}`\r\n\r\n\t\tconst updateInstance = await api.scheduleInstance(scheduleId, date)\r\n\r\n\t\tif (this.resultGroups) {\r\n\t\t\tthis.resultGroups.forEach(group => {\r\n\t\t\t\tif (!group.results) return\r\n\r\n\t\t\t\tgroup.results.filter(r => r.scheduling && r.scheduling.scheduleId === scheduleId && r.scheduling.instanceDate === dateString)\r\n\t\t\t\t\t.forEach(insightRecord => {\r\n\t\t\t\t\t\tapplyFieldChanges(insightRecord, fieldValues)\r\n\t\t\t\t\t\tif (updateInstance.updatedScheduleInstance && updateInstance.updatedScheduleInstance.users) {\r\n\t\t\t\t\t\t\tinsightRecord.users = updateInstance.updatedScheduleInstance.users\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t})\r\n\t\t\t})\r\n\t\t}\r\n\t}\r\n\r\n\tprivate roundCalculationValue (number: string) {\r\n\t\treturn formatInsight.methods.roundNumber(number, 2)\r\n\t}\r\n\r\n\tprivate async caseEdited () {\r\n\t\tif (this.insight.id) {\r\n\t\t\tawait api.insightMarkAsCacheExpired(this.insight.id)\r\n\t\t}\r\n\t}\r\n\r\n\tprivate onPageClick (group: any) {\r\n\t\tthis.$emit(\"loadNextPage\", group.value, this.groupPages[group.value])\r\n\t}\r\n\r\n\t@Emit(\"reloadInsightBySort\")\r\n\tprivate setSortDetails (details: CurrentPageDetails) {\r\n\t\tthis.groupPages[details.tableId ?? details.value] = {\r\n\t\t\tvalue: details.value,\r\n\t\t\tpageNumber: 1,\r\n\t\t\tpageSize: this.perPage,\r\n\t\t\tsortBy: details.sortBy,\r\n\t\t\tsortDesc: details.sortDesc,\r\n\t\t\tsortDataType: details.sortDataType\r\n\t\t}\r\n\r\n\t\treturn this.groupPages[details.value]\r\n\t}\r\n}\r\n\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TableResults.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TableResults.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./TableResults.vue?vue&type=template&id=41fe51c2&scoped=true&\"\nimport script from \"./TableResults.vue?vue&type=script&lang=ts&\"\nexport * from \"./TableResults.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./TableResults.vue?vue&type=style&index=0&id=41fe51c2&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"41fe51c2\",\n null\n \n)\n\nexport default component.exports","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Page.vue?vue&type=style&index=0&id=6f9b6b06&prod&scoped=true&lang=scss&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NewLightDarkSwitch.vue?vue&type=style&index=0&id=4e568010&prod&scoped=true&lang=scss&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('textarea',{ref:\"textarea\",staticClass:\"form-control\",class:{ 'is-invalid': !this.state },attrs:{\"rows\":\"minRows\",\"placeholder\":_vm.placeholder,\"readonly\":_vm.readonly},domProps:{\"value\":_vm.value},on:{\"input\":function($event){_vm.$emit('input', $event.target.value); _vm.expand()},\"change\":function($event){_vm.$emit('change', $event.target.value); _vm.expand()},\"focus\":function($event){_vm.$emit('focus', $event.target.value); _vm.expand()},\"blur\":function($event){return _vm.$emit('blur', $event.target.value)}}})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { Component, Vue, Watch, Prop } from \"vue-property-decorator\"\r\n\r\n@Component({})\r\nexport default class TextAreaExpand extends Vue {\r\n\t$refs!: {\r\n\t\ttextarea: any;\r\n\t}\r\n\r\n\t@Prop({ type: String, default: \"\" })\r\n\tpublic value!: string;\r\n\r\n\t@Prop({ type: Number, default: 1 })\r\n\tpublic minRows!: number;\r\n\r\n\t@Prop({ type: String, default: \"\" })\r\n\tpublic placeholder!: string;\r\n\r\n\t@Prop({ type: Boolean, default: false })\r\n\tpublic readonly!: boolean;\r\n\r\n\t@Prop({ type: Boolean, default: true })\r\n\tpublic state!: boolean;\r\n\r\n\theightWait: NodeJS.Timeout | null = null\r\n\r\n\tpublic get textarea (): any {\r\n\t\treturn this.$refs.textarea\r\n\t}\r\n\r\n\tpublic mounted () {\r\n\t\tif (this.value) {\r\n\t\t\tthis.expand()\r\n\t\t}\r\n\t}\r\n\r\n\t@Watch(\"value\")\r\n\tpublic onValueChanged () {\r\n\t\tthis.expand()\r\n\t}\r\n\r\n\tpublic get scrollHeight () {\r\n\t\treturn this.textarea.scrollHeight\r\n\t}\r\n\r\n\tpublic beforeDestroy () {\r\n\t\tif (this.heightWait) {\r\n\t\t\tclearTimeout(this.heightWait)\r\n\t\t\tthis.heightWait = null\r\n\t\t}\r\n\t}\r\n\r\n\tpublic expand (): void {\r\n\t\tthis.textarea.rows = this.minRows\r\n\t\tVue.nextTick().then(() => {\r\n\t\t\tif (this.textarea.scrollHeight === 0) {\r\n\t\t\t\tthis.heightWait = setTimeout(() => {\r\n\t\t\t\t\tthis.expand()\r\n\t\t\t\t}, 400)\r\n\t\t\t} else {\r\n\t\t\t\tthis.textarea.rows = Math.max(this.minRows, Math.ceil(this.textarea.scrollHeight / 19.5))\r\n\t\t\t\tthis.textarea.height = this.scrollHeight + \"px\"\r\n\t\t\t}\r\n\t\t})\r\n\t}\r\n}\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TextAreaExpand.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TextAreaExpand.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./TextAreaExpand.vue?vue&type=template&id=4aa3112a&scoped=true&\"\nimport script from \"./TextAreaExpand.vue?vue&type=script&lang=ts&\"\nexport * from \"./TextAreaExpand.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./TextAreaExpand.vue?vue&type=style&index=0&id=4aa3112a&prod&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"4aa3112a\",\n null\n \n)\n\nexport default component.exports","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DayOfWeekSetting.vue?vue&type=style&index=0&id=4852e3dc&prod&lang=scss&scoped=true&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ResultsDisplay.vue?vue&type=style&index=0&id=7d03881e&prod&scoped=true&lang=scss&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('b-form-checkbox',{attrs:{\"data-cy\":\"new-interface-switch-checkbox\",\"switch\":_vm.useV2,\"size\":_vm.useV2 ? 'lg' : 'md'},model:{value:(_vm.useV2),callback:function ($$v) {_vm.useV2=$$v},expression:\"useV2\"}},[_c('div',{staticClass:\"col-form-label-sm\"},[_vm._v(\" Use new interface (Experimental!) \")])])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { Component, Vue } from \"vue-property-decorator\"\r\nimport { State, Action } from \"vuex-class\"\r\nimport { BaseState } from \"@/store\"\r\nimport { CurrentUser, UserPreferences } from \"@/types/user\"\r\nimport Label from \"@/components/Dashboard/Label.vue\"\r\n\r\n@Component({\r\n\tcomponents: { Label }\r\n})\r\nexport default class NewInterfaceSwitch extends Vue {\r\n\t@State((state: BaseState) => state.me)\r\n\tme!: CurrentUser\r\n\r\n\t@State((state: BaseState) => state.me!.preferences)\r\n\tuserPreferences: UserPreferences | undefined\r\n\r\n\t@Action(\"updateUserPreferences\")\r\n\tupdatePreferences!: (prefs: UserPreferences) => Promise\r\n\r\n\tget useV2 () {\r\n\t\treturn !(!!this.userPreferences && this.userPreferences.disableV2)\r\n\t}\r\n\r\n\tset useV2 (value: boolean) {\r\n\t\tlet newPreferences: UserPreferences = (!this.userPreferences) ? { disableV2: false } : { ...this.userPreferences }\r\n\t\tnewPreferences.disableV2 = !value\r\n\r\n\t\tthis.updatePreferences(newPreferences)\r\n\t}\r\n}\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NewInterfaceSwitch.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NewInterfaceSwitch.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./NewInterfaceSwitch.vue?vue&type=template&id=ae7c3bdc&scoped=true&\"\nimport script from \"./NewInterfaceSwitch.vue?vue&type=script&lang=ts&\"\nexport * from \"./NewInterfaceSwitch.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"ae7c3bdc\",\n null\n \n)\n\nexport default component.exports","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MFASetup.vue?vue&type=style&index=0&id=506a7c1c&prod&scoped=true&lang=scss&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CasePreview.vue?vue&type=style&index=0&id=6f7c77b4&prod&scoped=true&lang=scss&\"","\r\nimport api from \"@/services/api\"\r\nimport { RecordNameSettings } from \"@/types/recordNameSettings\"\r\n\r\nclass ApiRecordNameSettings {\r\n\tprivate get axios () { return api.getAxios() }\r\n\r\n\tpublic async recordNameSettingsList (): Promise { return (await this.axios.get(\"/recordNameSettings\")).data }\r\n\tpublic async recordNameSettingsSave (recordNameSettings: RecordNameSettings): Promise { return (await this.axios.post(\"/recordNameSettings\", recordNameSettings)).data }\r\n\tpublic async recordNameSettingsDelete (recordNameSettings: RecordNameSettings): Promise { await this.axios.delete(`/recordNameSettings/${recordNameSettings.id}`) }\r\n\tpublic async recordNameSettingsDefault (recordNameSettings: RecordNameSettings): Promise { await this.axios.put(`/recordNameSettings/default/${recordNameSettings.id}`) }\r\n}\r\n\r\nconst apiRecordNameSettings = new ApiRecordNameSettings()\r\nexport default apiRecordNameSettings\r\n","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MapSearchBounds.vue?vue&type=style&index=0&id=e4f9478e&prod&lang=scss&scoped=true&\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./IconUpload.vue?vue&type=style&index=0&id=416d4728&prod&scoped=true&lang=scss&\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Login.vue?vue&type=style&index=0&id=fa60910e&prod&scoped=true&lang=scss&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"skeleton\",class:{ 'loading': _vm.loading }},[_c('div',{staticClass:\"loading-ring-holder\"},[_vm._t(\"preview-contents\"),_c('sv-icon',{attrs:{\"size\":\"lg\"}})],2),_c('div',{staticClass:\"load-contents\"},[_vm._t(\"default\")],2)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { Component, Vue, Watch, Prop } from \"vue-property-decorator\"\r\nimport { namespace, Getter, Mutation, Action } from \"vuex-class\"\r\n\r\nimport SureViewIcon from \"@/components/SureViewIcon.vue\"\r\n\r\n@Component({\r\n\tcomponents: {\r\n\t\t\"sv-icon\": SureViewIcon\r\n\t}\r\n})\r\nexport default class SkeletonLoader extends Vue {\r\n\t@Prop({ default: false })\r\n\tloading!: any;\r\n\r\n\t@Prop({ type: String, default: \"md\" })\r\n\tpublic size!: string;\r\n}\r\n\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--13-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SkeletonLoader.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--13-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SkeletonLoader.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./SkeletonLoader.vue?vue&type=template&id=167fa0c3&\"\nimport script from \"./SkeletonLoader.vue?vue&type=script&lang=ts&\"\nexport * from \"./SkeletonLoader.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticStyle:{\"width\":\"100%\",\"height\":\"100%\"}},[(!_vm.edit && _vm.text)?_c('div',{staticClass:\"labelContainer\"},[_c('b-form-textarea',{staticClass:\"label textarea-label text\",class:_vm.value.size,attrs:{\"readonly\":\"true\"},model:{value:(_vm.text),callback:function ($$v) {_vm.text=$$v},expression:\"text\"}})],1):_vm._e(),(_vm.edit)?_c('div',{staticClass:\"card\"},[_c('div',{staticClass:\"card-body\",staticStyle:{\"height\":\"100%\"}},[_c('table',[_c('tr',[_c('td',[_vm._v(\"Size\")]),_c('td',[_c('v-select',{attrs:{\"options\":_vm.sizes,\"label\":\"size\",\"reduce\":function (size) { return size.code; }},on:{\"input\":_vm.sizeChanged},model:{value:(_vm.fontSize),callback:function ($$v) {_vm.fontSize=$$v},expression:\"fontSize\"}})],1)]),_vm._m(0),_c('tr',[_c('td',{attrs:{\"colspan\":\"2\"},on:{\"pointerdown\":function($event){$event.stopPropagation();}}},[_c('b-form-textarea',{attrs:{\"id\":\"textarea\",\"placeholder\":\"Label\",\"rows\":\"3\",\"max-rows\":\"20\"},model:{value:(_vm.text),callback:function ($$v) {_vm.text=$$v},expression:\"text\"}})],1)])])])]):_vm._e()])}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('tr',[_c('td',[_vm._v(\" Label \")])])}]\n\nexport { render, staticRenderFns }","\r\nimport { Component, Vue, Watch, Prop } from \"vue-property-decorator\"\r\nimport vSelect from \"vue-select\"\r\n\r\n@Component({\r\n\tcomponents: {\r\n\t\t\"v-select\": vSelect\r\n\t}\r\n})\r\nexport default class Label extends Vue {\r\n@Prop()\r\nvalue: any;\r\n\r\n@Prop()\r\nedit!: boolean\r\n\r\ntext: string = \"\";\r\nfontSize: string = \"md\"\r\n\r\nsizes: any[] = [\r\n\t{\r\n\t\tsize: \"Medium\",\r\n\t\tcode: \"md\"\r\n\t},\r\n\t{\r\n\t\tsize: \"Large\",\r\n\t\tcode: \"lg\"\r\n\t},\r\n\t{\r\n\t\tsize: \"Extra Large\",\r\n\t\tcode: \"xl\"\r\n\t}\r\n]\r\n\r\nmounted () {\r\n\tif (this.value) {\r\n\t\tthis.text = this.value.text\r\n\t\tthis.fontSize = this.value.size ? this.value.size : \"md\"\r\n\t}\r\n}\r\n\r\n@Watch(\"size\")\r\nprivate sizeChanged (size: string) {\r\n\tlet value = {\r\n\t\ttext: this.text,\r\n\t\tsize: size\r\n\t}\r\n\tthis.$emit(\"input\", value)\r\n}\r\n\r\n@Watch(\"text\")\r\nprivate textChanged (text: string) {\r\n\tlet value = {\r\n\t\ttext: text,\r\n\t\tsize: this.fontSize\r\n\t}\r\n\tthis.$emit(\"input\", value)\r\n}\r\n\r\nmouseDown () {\r\n}\r\n\r\nmouseMove () {\r\n}\r\n}\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Label.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Label.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Label.vue?vue&type=template&id=b48d6df6&scoped=true&\"\nimport script from \"./Label.vue?vue&type=script&lang=ts&\"\nexport * from \"./Label.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./Label.vue?vue&type=style&index=0&id=b48d6df6&prod&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"b48d6df6\",\n null\n \n)\n\nexport default component.exports"],"sourceRoot":""}