{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/Application/components/BaseComponentMixin.jsx","webpack:///./src/Application/components/vuecontrols/advancedHistory/menuColumnGroups.vue","webpack:///./src/Application/components/javascript/care-sip-0.15.10.min.js","webpack:///./src/Application/components/vuecontrols/advancedHistory/filter_booleanColumn.vue?56a8","webpack:///./src/Application/components/vuecontrols/advancedHistory/filter_booleanColumn.vue","webpack:///./src/Services/locale.jsx","webpack:///./src/Application/components/vuecontrols/advancedHistory/cardHistogram.vue","webpack:///./src/App.vue?244b","webpack:///./src/Application/components/vuecontrols/advancedHistory/filter_dateColumn.vue?9b06","webpack:///./src/Application/components/actions/DialogBasicModal.jsx","webpack:///./src/Assets/formatpaintercursor.svg","webpack:///src/Application/components/vuecontrols/advancedHistory/filter_booleanColumn.vue","webpack:///./src/Services/promiseHelper.jsx","webpack:///./src/Application/components/vuecontrols/advancedHistory/menuIntervalSelection.vue?6102","webpack:///./src/Application/components/vuecontrols/advancedHistory/metricItem.vue","webpack:///./src/Shared/appSettings.js","webpack:///./src/Application/components/vuecontrols/advancedHistory/filter_directionColumn.vue?9f6e","webpack:///./src/Application/components/vuecontrols/advancedHistory/filter_directionColumn.vue","webpack:///./src/Assets/BrokenImage.svg","webpack:///./src/Application/components/vuecontrols/advancedHistory/filter_booleanColumn.vue?f12b","webpack:///./src/Application/components/vuecontrols/DateRangePicker.vue?c766","webpack:///./src/Application/components/vuecontrols/advancedHistory/metricItem.vue?8510","webpack:///./src/Application/components/vuecontrols/advancedHistory/filter_directionColumn.vue?dff1","webpack:///./src/Application/components/AdvancedHistory.vue?0850","webpack:///./src/Application/components/AdvancedReports.vue?65c3","webpack:///./src/Assets/Donut.png","webpack:///./src/Application/components/vuecontrols/advancedHistory/filterCategory.vue?bb9d","webpack:///./src/Shared/filters.js","webpack:///./src/Application/components/vuecontrols/RoosterEditorBase.vue?d844","webpack:///./src/Application/components/vuecontrols/RoosterEditorBase.vue?fe2c","webpack:///./src/Application/components/vuecontrols/debugDialog.vue?e912","webpack:///./src/Application/components/vuecontrols/advancedHistory/metricItemList.vue?56d7","webpack:///src/Application/components/vuecontrols/advancedHistory/menuIntervalSelection.vue","webpack:///./src/Application/components/vuecontrols/advancedHistory/iconComponent.vue?a05c","webpack:///./src/Application/components/vuecontrols/advancedHistory/filter_directionColumn.vue?43d2","webpack:///./src/Application/components/vuecontrols/advancedHistory/agGridToolReportColumns.vue?ca3d","webpack:///./src/Application/components/vuecontrols/advancedHistory/filter_booleanColumn.vue?fb56","webpack:///./src/Application/components/vuecontrols/advancedHistory/groupbyItemList.vue?c8e3","webpack:///./src/plugins/themes/DefaultTheme.js","webpack:///./src/plugins/themes/MSTeamsTheme.js","webpack:///./src/plugins/vuetify.js","webpack:///./src/App.vue","webpack:///./src/Application/authenticate.jsx","webpack:///./src/Application/components/vuecontrols/inputdialog.jsx","webpack:///./src/Application/dialogListener.jsx","webpack:///./src/Application/components/3rdParty/ResizeObserver.jsx","webpack:///./src/Application/components/3rdParty/AceEditor.jsx","webpack:///./src/Application/components/AccordionGroup.jsx","webpack:///./src/Application/components/Accordion.jsx","webpack:///./src/Application/components/ACDDirectButton.jsx","webpack:///./src/Application/components/actions/DisplayNotificationHeader.jsx","webpack:///./src/Application/components/ChildWithTokenOpener.vue","webpack:///src/Application/components/ChildWithTokenOpener.vue","webpack:///./src/Application/components/ChildWithTokenOpener.vue?13f7","webpack:///./src/Application/components/ChildWithTokenOpener.vue?136f","webpack:///./src/Application/components/ActionService.jsx","webpack:///./src/Application/components/AdvancedHistory.vue","webpack:///./src/Application/components/AgContentDef.jsx","webpack:///./src/Application/components/vuecontrols/DateRangePicker.vue","webpack:///src/Application/components/vuecontrols/DateRangePicker.vue","webpack:///./src/Application/components/vuecontrols/DateRangePicker.vue?3f76","webpack:///./src/Application/components/vuecontrols/DateRangePicker.vue?fa3f","webpack:///./src/Application/components/vuecontrols/advancedHistory/agGridToolReportColumns.vue","webpack:///./src/Application/components/vuecontrols/advancedHistory/common.js","webpack:///./src/Application/components/vuecontrols/advancedHistory/columnItemList.vue","webpack:///src/Application/components/vuecontrols/advancedHistory/columnItemList.vue","webpack:///./src/Application/components/vuecontrols/advancedHistory/columnItemList.vue?808e","webpack:///./src/Application/components/vuecontrols/advancedHistory/columnItemList.vue?7d02","webpack:///./src/Application/components/vuecontrols/advancedHistory/metricTypeFilterPopup.vue","webpack:///src/Application/components/vuecontrols/advancedHistory/metricTypeFilterPopup.vue","webpack:///./src/Application/components/vuecontrols/advancedHistory/metricTypeFilterPopup.vue?b245","webpack:///./src/Application/components/vuecontrols/advancedHistory/metricTypeFilterPopup.vue?ca64","webpack:///./src/Application/components/vuecontrols/advancedHistory/overflowPillGroup.vue","webpack:///src/Application/components/vuecontrols/advancedHistory/overflowPillGroup.vue","webpack:///./src/Application/components/vuecontrols/advancedHistory/overflowPillGroup.vue?a0c4","webpack:///./src/Application/components/vuecontrols/advancedHistory/overflowPillGroup.vue?5565","webpack:///src/Application/components/vuecontrols/advancedHistory/agGridToolReportColumns.vue","webpack:///./src/Application/components/vuecontrols/advancedHistory/agGridToolReportColumns.vue?67e4","webpack:///./src/Application/components/vuecontrols/advancedHistory/agGridToolReportColumns.vue?8cc7","webpack:///./src/Application/components/vuecontrols/advancedHistory/agGridToolReportFilters.vue","webpack:///./src/Application/components/vuecontrols/advancedHistory/filterCategory.vue","webpack:///./src/Application/components/vuecontrols/advancedHistory/filter_textSetColumn.vue","webpack:///./src/Application/components/vuecontrols/advancedHistory/filter_searchableTextColumn.vue","webpack:///src/Application/components/vuecontrols/advancedHistory/filter_searchableTextColumn.vue","webpack:///./src/Application/components/vuecontrols/advancedHistory/filter_searchableTextColumn.vue?9c84","webpack:///./src/Application/components/vuecontrols/advancedHistory/filter_searchableTextColumn.vue?177e","webpack:///src/Application/components/vuecontrols/advancedHistory/filter_textSetColumn.vue","webpack:///./src/Application/components/vuecontrols/advancedHistory/filter_textSetColumn.vue?860f","webpack:///./src/Application/components/vuecontrols/advancedHistory/filter_textSetColumn.vue?3492","webpack:///./src/Application/components/vuecontrols/advancedHistory/filter_durationColumn.vue","webpack:///src/Application/components/vuecontrols/advancedHistory/filter_durationColumn.vue","webpack:///./src/Application/components/vuecontrols/advancedHistory/filter_durationColumn.vue?3b08","webpack:///./src/Application/components/vuecontrols/advancedHistory/filter_durationColumn.vue?7cf8","webpack:///./src/Application/components/vuecontrols/advancedHistory/filter_dateColumn.vue","webpack:///src/Application/components/vuecontrols/advancedHistory/filter_dateColumn.vue","webpack:///./src/Application/components/vuecontrols/advancedHistory/filter_dateColumn.vue?0dd2","webpack:///./src/Application/components/vuecontrols/advancedHistory/filter_dateColumn.vue?87f5","webpack:///src/Application/components/vuecontrols/advancedHistory/filterCategory.vue","webpack:///./src/Application/components/vuecontrols/advancedHistory/filterCategory.vue?df85","webpack:///./src/Application/components/vuecontrols/advancedHistory/filterCategory.vue?3064","webpack:///src/Application/components/vuecontrols/advancedHistory/agGridToolReportFilters.vue","webpack:///./src/Application/components/vuecontrols/advancedHistory/agGridToolReportFilters.vue?c6a2","webpack:///./src/Application/components/vuecontrols/advancedHistory/agGridToolReportFilters.vue?3a8a","webpack:///./src/Application/components/vuecontrols/advancedHistory/iconComponent.vue","webpack:///src/Application/components/vuecontrols/advancedHistory/iconComponent.vue","webpack:///./src/Application/components/vuecontrols/advancedHistory/iconComponent.vue?2aec","webpack:///./src/Application/components/vuecontrols/advancedHistory/iconComponent.vue?7128","webpack:///./src/Application/components/vuecontrols/advancedHistory/columnMenu.vue","webpack:///src/Application/components/vuecontrols/advancedHistory/columnMenu.vue","webpack:///./src/Application/components/vuecontrols/advancedHistory/columnMenu.vue?7b80","webpack:///./src/Application/components/vuecontrols/advancedHistory/columnMenu.vue?4e84","webpack:///./src/Application/components/vuecontrols/calendar.vue","webpack:///src/Application/components/vuecontrols/calendar.vue","webpack:///./src/Application/components/vuecontrols/calendar.vue?81f1","webpack:///./src/Application/components/vuecontrols/calendar.vue?6bf1","webpack:///src/Application/components/AdvancedHistory.vue","webpack:///./src/Application/components/AdvancedHistory.vue?725f","webpack:///./src/Application/components/AdvancedHistory.vue?137a","webpack:///./src/Application/components/AdvancedReports.vue","webpack:///./src/Application/components/vuecontrols/advancedHistory/agGridToolReportFields.vue","webpack:///./src/Application/components/vuecontrols/advancedHistory/metricItemList.vue","webpack:///src/Application/components/vuecontrols/advancedHistory/metricItemList.vue","webpack:///./src/Application/components/vuecontrols/advancedHistory/metricItemList.vue?0131","webpack:///./src/Application/components/vuecontrols/advancedHistory/metricItemList.vue?e522","webpack:///./src/Application/components/vuecontrols/advancedHistory/groupbyItemList.vue","webpack:///src/Application/components/vuecontrols/advancedHistory/groupbyItemList.vue","webpack:///./src/Application/components/vuecontrols/advancedHistory/groupbyItemList.vue?7e7a","webpack:///./src/Application/components/vuecontrols/advancedHistory/groupbyItemList.vue?8223","webpack:///src/Application/components/vuecontrols/advancedHistory/agGridToolReportFields.vue","webpack:///./src/Application/components/vuecontrols/advancedHistory/agGridToolReportFields.vue?5080","webpack:///./src/Application/components/vuecontrols/advancedHistory/agGridToolReportFields.vue?2276","webpack:///./src/Application/components/vuecontrols/advancedHistory/agGridToolReportChart.vue","webpack:///src/Application/components/vuecontrols/advancedHistory/agGridToolReportChart.vue","webpack:///./src/Application/components/vuecontrols/advancedHistory/agGridToolReportChart.vue?cee4","webpack:///./src/Application/components/vuecontrols/advancedHistory/agGridToolReportChart.vue?c564","webpack:///./src/Application/components/vuecontrols/advancedHistory/agGridToolReportAllinOne.vue","webpack:///src/Application/components/vuecontrols/advancedHistory/agGridToolReportAllinOne.vue","webpack:///./src/Application/components/vuecontrols/advancedHistory/agGridToolReportAllinOne.vue?bde8","webpack:///./src/Application/components/vuecontrols/advancedHistory/agGridToolReportAllinOne.vue?a001","webpack:///src/Application/components/AdvancedReports.vue","webpack:///./src/Application/components/AdvancedReports.vue?18e3","webpack:///./src/Application/components/AdvancedReports.vue?a39d","webpack:///./src/Application/components/AgGrid.jsx","webpack:///./src/Application/components/ApexGeneralChart.vue","webpack:///src/Application/components/ApexGeneralChart.vue","webpack:///./src/Application/components/ApexGeneralChart.vue?c60a","webpack:///./src/Application/components/ApexGeneralChart.vue?b5d8","webpack:///./src/Application/components/AppleButton.jsx","webpack:///./src/Application/components/AudioPlayer.vue","webpack:///src/Application/components/AudioPlayer.vue","webpack:///./src/Application/components/AudioPlayer.vue?e657","webpack:///./src/Application/components/AudioPlayer.vue?2b9f","webpack:///./src/Application/components/AutoComplete.jsx","webpack:///./src/Application/components/BadgeHandler.jsx","webpack:///./src/Application/components/BarChart.jsx","webpack:///./src/Application/components/BasicButton.jsx","webpack:///./src/Application/components/BasicFileUpload.vue","webpack:///src/Application/components/BasicFileUpload.vue","webpack:///./src/Application/components/BasicFileUpload.vue?02fa","webpack:///./src/Application/components/BasicFileUpload.vue?df9a","webpack:///./src/Application/components/schemaform/baseFormMixin.jsx","webpack:///./src/Application/components/schemaform/baseFieldsetMixin.jsx","webpack:///./src/Application/components/schemaform/formFieldset.jsx","webpack:///./src/Application/components/schemaform/formArray.jsx","webpack:///./src/Application/components/vuecontrols/verticalTabs.vue","webpack:///src/Application/components/vuecontrols/verticalTabs.vue","webpack:///./src/Application/components/vuecontrols/verticalTabs.vue?b920","webpack:///./src/Application/components/vuecontrols/verticalTabs.vue?a753","webpack:///./src/Application/components/schemaform/formTabArray.jsx","webpack:///./src/Application/components/schemaform/formText.jsx","webpack:///./src/Application/components/schemaform/formPassword.jsx","webpack:///./src/Application/components/schemaform/formTextarea.jsx","webpack:///./src/Application/components/schemaform/formCheckbox.jsx","webpack:///./src/Application/components/schemaform/formCheckboxes.jsx","webpack:///./src/Application/components/schemaform/formSwitch.jsx","webpack:///./src/Application/components/schemaform/formRadios.jsx","webpack:///./src/Application/components/schemaform/formHelp.jsx","webpack:///./src/Application/components/schemaform/formParagraph.jsx","webpack:///./src/Application/components/schemaform/formNumber.jsx","webpack:///./src/Application/components/schemaform/formMediaSelector.jsx","webpack:///./src/Application/components/schemaform/formInputWithHeaderBar.jsx","webpack:///./src/Application/components/schemaform/formTextareaWithHeaderBar.jsx","webpack:///./src/Application/components/schemaform/formLookupList.jsx","webpack:///./src/Application/components/schemaform/formSection.jsx","webpack:///./src/Application/components/schemaform/formSelect.jsx","webpack:///./src/Application/components/vuecontrols/DropdownMultiSelectBase.jsx","webpack:///./src/Application/components/schemaform/formDropdownMultiSelect.jsx","webpack:///./src/Application/components/schemaform/formPhoneNumber.jsx","webpack:///./src/Application/components/schemaform/formDateTime.jsx","webpack:///./src/Application/components/schemaform/formDate.jsx","webpack:///./src/Application/components/schemaform/formTime.jsx","webpack:///./src/Application/components/schemaform/formDatePicker.jsx","webpack:///./src/Application/components/schemaform/formDateRangePicker.jsx","webpack:///./src/Application/components/schemaform/formSingleDatePicker.jsx","webpack:///./src/Application/components/schemaform/formEmail.jsx","webpack:///./src/Application/components/schemaform/formTabs.jsx","webpack:///./src/Application/components/schemaform/formConditional.jsx","webpack:///./src/Application/components/schemaform/formControlsWithLabel.jsx","webpack:///./src/Application/components/schemaform/formBasicIconPicker.jsx","webpack:///./src/Application/components/schemaform/formAnyOf.jsx","webpack:///./src/Application/components/schemaform/formActions.jsx","webpack:///./src/Application/components/schemaform/formButton.jsx","webpack:///./src/Application/components/schemaform/formIconPicker.jsx","webpack:///./src/Application/components/schemaform/formTags.jsx","webpack:///./src/Application/components/schemaform/formTextEditor.jsx","webpack:///./src/Application/components/vuecontrols/RoosterEditorBase.vue","webpack:///./src/Application/components/javascript/roosterFonts.js","webpack:///./src/Application/components/vuecontrols/RoosterDropdownMenu.vue","webpack:///src/Application/components/vuecontrols/RoosterDropdownMenu.vue","webpack:///./src/Application/components/vuecontrols/RoosterDropdownMenu.vue?3349","webpack:///./src/Application/components/vuecontrols/RoosterDropdownMenu.vue?9eba","webpack:///./src/Application/components/javascript/roosterPickerDataProvider.js","webpack:///./src/Application/components/javascript/roosterContentChangedPlugin.js","webpack:///./src/Application/components/javascript/roosterFormatPainterPlugin.js","webpack:///src/Application/components/vuecontrols/RoosterEditorBase.vue","webpack:///./src/Application/components/vuecontrols/RoosterEditorBase.vue?23c7","webpack:///./src/Application/components/vuecontrols/RoosterEditorBase.vue?e2b8","webpack:///./src/Application/components/form/array.jsx","webpack:///./src/Application/components/form/PropertyGrid.jsx","webpack:///./src/Application/components/schemaform/formHtmlEditor.jsx","webpack:///./src/Application/components/schemaform/formReferencedDocumentSchema.jsx","webpack:///./src/Application/components/schemaform/layoutTable.jsx","webpack:///./src/Application/components/schemaform/layoutCard.jsx","webpack:///./src/Application/components/schemaform/formMissing.jsx","webpack:///./src/Application/components/schemaform/formUndefined.jsx","webpack:///./src/Application/components/schemaform/SchemaForm.jsx","webpack:///./src/Application/components/form/input.jsx","webpack:///./src/Application/components/form/inputmultiline.jsx","webpack:///./src/Application/components/form/texteditor.jsx","webpack:///./src/Application/components/form/number.jsx","webpack:///./src/Application/components/form/checkbox.jsx","webpack:///./src/Application/components/form/boolean.jsx","webpack:///./src/Application/components/form/select.jsx","webpack:///./src/Application/components/form/anyof.jsx","webpack:///./src/Application/components/form/nullabletype.jsx","webpack:///./src/Application/components/form/SchemaProperties.jsx","webpack:///./src/Application/components/form/referencedDocumentSchema.jsx","webpack:///./src/Application/components/form/hsmStatementSchema.jsx","webpack:///./src/Application/components/form/lookupList.jsx","webpack:///./src/Application/components/vuecontrols/debugDialog.vue","webpack:///src/Application/components/vuecontrols/debugDialog.vue","webpack:///./src/Application/components/vuecontrols/debugDialog.vue?2cdf","webpack:///./src/Application/components/vuecontrols/debugDialog.vue?b105","webpack:///./src/Application/components/BasicForm.jsx","webpack:///./src/Application/components/BaseAgGridMixin.jsx","webpack:///./src/Application/components/BasicGrid.jsx","webpack:///./src/Application/components/BasicInput.jsx","webpack:///./src/Application/components/BasicLink.jsx","webpack:///./src/Application/components/BasicSwitch.jsx","webpack:///./src/Application/components/BasicTab.jsx","webpack:///./src/Application/components/BasicToggle.jsx","webpack:///./src/Application/components/BasicTree.jsx","webpack:///./src/Application/components/BasicPopupMenu.jsx","webpack:///./src/Application/components/BroadcastListener.jsx","webpack:///./src/Shared/careHelpfulFunctions.jsx","webpack:///./src/Application/components/CalendarPicker.jsx","webpack:///./src/Application/components/CardList.jsx","webpack:///./src/Application/components/CardBrowser.jsx","webpack:///./src/Application/components/CheetahGrid.jsx","webpack:///./src/Application/components/CircleChart.jsx","webpack:///./src/Application/components/ComboBox.jsx","webpack:///./src/Application/components/DocumentBootstrap.jsx","webpack:///./src/Application/components/BaseStackMixin.jsx","webpack:///./src/Application/components/HorizontalStack.jsx","webpack:///./src/Application/components/VerticalStackContent.jsx","webpack:///./src/Application/components/VerticalStack.jsx","webpack:///./src/Application/components/TreeView.jsx","webpack:///./src/Application/components/Text.jsx","webpack:///./src/Application/components/SelectList.jsx","webpack:///./src/Application/components/InfiniteGrid.jsx","webpack:///./src/Application/components/DynamicTab.jsx","webpack:///./src/Application/components/DynamicTabContent.jsx","webpack:///./src/Application/components/DynamicMenuList.jsx","webpack:///./src/Application/components/designer/Accordion.jsx","webpack:///./src/Application/components/designer/BaseComponentMixin.jsx","webpack:///./src/Application/components/designer/ApexGeneralChart.jsx","webpack:///./src/Application/components/designer/AudioPlayer.jsx","webpack:///./src/Application/components/designer/BasicButton.jsx","webpack:///./src/Application/components/designer/form/PropertyGrid.jsx","webpack:///./src/Application/components/designer/BasicGrid.jsx","webpack:///./src/Application/components/designer/Text.jsx","webpack:///./src/Application/components/designer/Icon.jsx","webpack:///./src/Application/components/designer/form/input.jsx","webpack:///./src/Application/components/designer/form/button.jsx","webpack:///./src/Application/components/designer/form/inputmultiline.jsx","webpack:///./src/Application/components/designer/form/number.jsx","webpack:///./src/Application/components/designer/form/section.jsx","webpack:///./src/Application/components/designer/form/checkbox.jsx","webpack:///./src/Application/components/designer/form/select.jsx","webpack:///./src/Application/components/designer/form/anyof.jsx","webpack:///./src/Application/components/designer/form/array.jsx","webpack:///./src/Application/components/designer/form/tabarray.jsx","webpack:///./src/Application/components/designer/form/help.jsx","webpack:///./src/Application/components/designer/form/paragraph.jsx","webpack:///./src/Application/components/designer/form/typeschema.jsx","webpack:///./src/Application/components/designer/form/lookupList.jsx","webpack:///./src/Application/components/designer/fieldPicker.jsx","webpack:///./src/Application/components/designer/form/SchemaForm.jsx","webpack:///./src/Application/components/designer/BasicForm.jsx","webpack:///./src/Application/components/designer/TreeView.jsx","webpack:///./src/Application/components/designer/controlPicker.jsx","webpack:///./src/Application/components/designer/BaseStackMixin.jsx","webpack:///./src/Application/components/designer/HorizontalStack.jsx","webpack:///./src/Application/components/designer/VerticalStackContent.jsx","webpack:///./src/Application/components/designer/VerticalStack.jsx","webpack:///./src/Application/components/designer/DefaultUnknown.jsx","webpack:///./src/Application/components/designer/BasicTree.jsx","webpack:///./src/Application/components/designer/CareCenterMenu.jsx","webpack:///./src/Application/components/designer/FastGrid.jsx","webpack:///./src/Application/components/designer/HSM.jsx","webpack:///./src/Application/components/designer/BackgroundService.jsx","webpack:///./src/Application/components/designer/BasicLink.jsx","webpack:///./src/Application/components/designer/BasicPopupMenu.jsx","webpack:///./src/Application/components/designer/BasicTab.jsx","webpack:///./src/Application/components/designer/CareCenterPopupMenu.jsx","webpack:///./src/Application/components/designer/ControlContainer.jsx","webpack:///./src/Application/components/designer/ControlDesigner.jsx","webpack:///./src/Application/components/designer/actions/DisplayBasicModal.jsx","webpack:///./src/Application/components/designer/DocumentBootstrap.jsx","webpack:///./src/Application/components/designer/DropdownList.jsx","webpack:///./src/Application/components/designer/DynamicControlContainer.jsx","webpack:///./src/Application/components/designer/DynamicMenuList.jsx","webpack:///./src/Application/components/designer/DynamicTab.jsx","webpack:///./src/Application/components/designer/DynamicTabContent.jsx","webpack:///./src/Application/components/designer/DynamicTree.jsx","webpack:///./src/Application/components/designer/ForEach.jsx","webpack:///./src/Application/components/designer/HtmlTable.jsx","webpack:///./src/Application/components/designer/IconPopupMenu.jsx","webpack:///./src/Application/components/designer/Avatar.jsx","webpack:///./src/Application/components/designer/LayoutTile.jsx","webpack:///./src/Application/components/designer/MicAnalyzer.jsx","webpack:///./src/Application/components/designer/NavigationDrawer.jsx","webpack:///./src/Application/components/designer/ProgressBar.jsx","webpack:///./src/Application/components/designer/ProgressCircle.jsx","webpack:///./src/Application/components/designer/RealTimeGrid.jsx","webpack:///./src/Application/components/designer/actions/ReplaceContent.jsx","webpack:///./src/Application/components/designer/SelectList.jsx","webpack:///./src/Application/components/ControlDesigner.jsx","webpack:///./src/Application/components/designer/SplitPanes.jsx","webpack:///./src/Application/components/designer/actions/Tab.jsx","webpack:///./src/Application/components/designer/actions/UserAction.jsx","webpack:///./src/Application/components/designer/usercontrolBrowser.jsx","webpack:///./src/Application/components/designer/UserControl.jsx","webpack:///./src/Application/components/designer/Watcher.jsx","webpack:///./src/Application/components/designer/Wizard.jsx","webpack:///./src/Application/components/ControlContainer.jsx","webpack:///./src/Application/components/ConversationView.jsx","webpack:///./src/Application/components/CssStyle.jsx","webpack:///./src/Application/components/vuecontrols/responsiveDash.vue","webpack:///src/Application/components/vuecontrols/responsiveDash.vue","webpack:///./src/Application/components/vuecontrols/responsiveDash.vue?fe59","webpack:///./src/Application/components/vuecontrols/responsiveDash.vue?4a47","webpack:///./src/Application/components/Dash.jsx","webpack:///./src/Application/components/DateRangePicker.jsx","webpack:///./src/Application/components/DefaultUnknown.jsx","webpack:///./src/Application/components/DebugHsmLog.jsx","webpack:///./src/Application/components/DesktopNotify.jsx","webpack:///./src/Application/components/DropdownList.jsx","webpack:///./src/Application/components/DropdownMultiSelect.jsx","webpack:///./src/Application/components/DynamicControlContainer.jsx","webpack:///./src/Application/components/DynamicTree.jsx","webpack:///./src/Application/components/vuecontrols/agGridDropdownFilter.vue","webpack:///src/Application/components/vuecontrols/agGridDropdownFilter.vue","webpack:///./src/Application/components/vuecontrols/agGridDropdownFilter.vue?0c9a","webpack:///./src/Application/components/vuecontrols/agGridDropdownFilter.vue?756e","webpack:///./src/Application/components/FastGrid.jsx","webpack:///./src/Application/components/vuecontrols/JointPaper.vue","webpack:///src/Application/components/vuecontrols/JointPaper.vue","webpack:///./src/Application/components/vuecontrols/JointPaper.vue?28d8","webpack:///./src/Application/components/vuecontrols/JointPaper.vue?efd6","webpack:///./src/Application/components/FlowChart.jsx","webpack:///./src/Application/components/FileDiff.vue","webpack:///src/Application/components/FileDiff.vue","webpack:///./src/Application/components/FileDiff.vue?49e0","webpack:///./src/Application/components/FileDiff.vue?b6d0","webpack:///./src/Application/components/GoogleButton.jsx","webpack:///./src/Application/components/ForEach.jsx","webpack:///./src/Application/components/ForEachSimple.jsx","webpack:///./src/Application/components/GoogleButton_v2.jsx","webpack:///./src/Services/serverEventCoordinator.jsx","webpack:///./src/Application/components/HSM/HSMContainer.jsx","webpack:///./src/Application/components/HSM/HSMState.jsx","webpack:///./src/Application/components/HSM/UserControlHSM.jsx","webpack:///./src/Application/components/HSM/HSM.jsx","webpack:///./src/Application/components/HtmlEditor.jsx","webpack:///./src/Application/components/HtmlTable.jsx","webpack:///./src/Application/components/Html.jsx","webpack:///./src/Application/components/Icon.jsx","webpack:///./src/Application/components/IconPopupMenu.jsx","webpack:///./src/Application/components/Avatar.jsx","webpack:///./src/Application/components/IconStack.jsx","webpack:///./src/Application/components/IdleTimeout.jsx","webpack:///./src/Application/components/IFrame.jsx","webpack:///./src/Application/components/Image.jsx","webpack:///./src/Application/components/InfiniteConversationView.jsx","webpack:///./src/Application/components/Interval.jsx","webpack:///./src/Application/components/Javascript.jsx","webpack:///./src/Application/components/LineChart.vue","webpack:///src/Application/components/LineChart.vue","webpack:///./src/Application/components/LineChart.vue?53b3","webpack:///./src/Application/components/LineChart.vue?1be4","webpack:///./src/Application/components/MediaApproval.vue","webpack:///src/Application/components/MediaApproval.vue","webpack:///./src/Application/components/MediaApproval.vue?a8d1","webpack:///./src/Application/components/MediaApproval.vue?0431","webpack:///./src/Application/components/MenuFlowChart.jsx","webpack:///./src/Application/components/MultiSelectList.vue","webpack:///./src/Application/components/MultiSelectListItem.vue","webpack:///src/Application/components/MultiSelectListItem.vue","webpack:///./src/Application/components/MultiSelectListItem.vue?7dd4","webpack:///./src/Application/components/MultiSelectListItem.vue?a697","webpack:///src/Application/components/MultiSelectList.vue","webpack:///./src/Application/components/MultiSelectList.vue?ec0d","webpack:///./src/Application/components/MultiSelectList.vue?74b9","webpack:///./src/Application/components/NavigationDrawer.jsx","webpack:///./src/Application/components/Notification.jsx","webpack:///./src/Application/components/PopupMenuButton.jsx","webpack:///./src/Application/components/ProgressBar.jsx","webpack:///./src/Application/components/ProgressCircle.jsx","webpack:///./src/Application/components/RealTimeGrid.jsx","webpack:///./src/Application/components/RealTimeWidgetListener.jsx","webpack:///./src/Application/components/ReCaptcha.jsx","webpack:///./src/Application/components/RoosterEditor.vue","webpack:///src/Application/components/RoosterEditor.vue","webpack:///./src/Application/components/RoosterEditor.vue?dc7b","webpack:///./src/Application/components/RoosterEditor.vue?49d9","webpack:///./src/Application/components/javascript/SAMLButtonSSOPopupManager.js","webpack:///./src/Application/components/RTEventHandler.jsx","webpack:///./src/Application/components/SAMLButton.jsx","webpack:///./src/Application/components/Search.jsx","webpack:///./src/Application/components/ServerEventListener.jsx","webpack:///./src/Application/components/vuecontrols/griddy.vue","webpack:///src/Application/components/vuecontrols/griddy.vue","webpack:///./src/Application/components/vuecontrols/griddy.vue?6f35","webpack:///./src/Application/components/vuecontrols/griddy.vue?3c93","webpack:///./src/Application/components/SlimGrid.jsx","webpack:///./src/Application/components/SoftPhone.vue","webpack:///./src/Application/components/vuecontrols/elapsedTimer.vue","webpack:///src/Application/components/vuecontrols/elapsedTimer.vue","webpack:///./src/Application/components/vuecontrols/elapsedTimer.vue?4ba0","webpack:///./src/Application/components/vuecontrols/elapsedTimer.vue?8b63","webpack:///./src/Application/components/vuecontrols/asyncTextblock.vue","webpack:///src/Application/components/vuecontrols/asyncTextblock.vue","webpack:///./src/Application/components/vuecontrols/asyncTextblock.vue?54bd","webpack:///./src/Application/components/vuecontrols/asyncTextblock.vue?0e87","webpack:///src/Application/components/SoftPhone.vue","webpack:///./src/Application/components/SoftPhone.vue?6033","webpack:///./src/Application/components/SoftPhone.vue?6699","webpack:///./src/Application/components/SoundPlayer.jsx","webpack:///./src/Application/components/SplitButton.jsx","webpack:///./src/Application/components/SplitPanes.jsx","webpack:///./src/Application/components/TextEditor.jsx","webpack:///./src/Application/components/Timeline.jsx","webpack:///./src/Application/components/Timeout.jsx","webpack:///./src/Application/components/TranslationContainer.jsx","webpack:///./src/Application/components/Watcher.jsx","webpack:///./src/Shared/browserHelpers.js","webpack:///./src/Application/components/javascript/webrtc/v1.0/care-webrtc.js","webpack:///./src/Application/components/WebRtcPhone.jsx","webpack:///./src/Application/components/Wizard.jsx","webpack:///./src/Application/components/WizardButton.jsx","webpack:///./src/Application/components/YouTubeVideo.jsx","webpack:///./src/Application/components/ExperimentalTab.jsx","webpack:///./src/Application/components/HiddenContainer.jsx","webpack:///./src/Application/directives/OnEnterDefault.js","webpack:///./src/Application/components/3rdParty/rappid.js","webpack:///./src/Application/startApplication.jsx","webpack:///./src/Services/plantUml.jsx","webpack:///src/App.vue","webpack:///./src/App.vue?8fa6","webpack:///./src/App.vue?3746","webpack:///./src/main.js","webpack:///signalR/webpack/universalModuleDefinition","webpack:///signalR/webpack/bootstrap","webpack:///signalR/webpack/runtime/define property getters","webpack:///signalR/webpack/runtime/global","webpack:///signalR/webpack/runtime/hasOwnProperty shorthand","webpack:///signalR/webpack/runtime/make namespace object","webpack:///signalR/src/ILogger.ts","webpack:///signalR/src/Errors.ts","webpack:///signalR/src/HttpClient.ts","webpack:///signalR/src/Loggers.ts","webpack:///signalR/src/Utils.ts","webpack:///signalR/src/FetchHttpClient.ts","webpack:///signalR/src/XhrHttpClient.ts","webpack:///signalR/src/DefaultHttpClient.ts","webpack:///signalR/src/TextMessageFormat.ts","webpack:///signalR/src/HandshakeProtocol.ts","webpack:///signalR/src/IHubProtocol.ts","webpack:///signalR/src/Subject.ts","webpack:///signalR/src/HubConnection.ts","webpack:///signalR/src/DefaultReconnectPolicy.ts","webpack:///signalR/src/HeaderNames.ts","webpack:///signalR/src/AccessTokenHttpClient.ts","webpack:///signalR/src/ITransport.ts","webpack:///signalR/src/AbortController.ts","webpack:///signalR/src/LongPollingTransport.ts","webpack:///signalR/src/ServerSentEventsTransport.ts","webpack:///signalR/src/WebSocketTransport.ts","webpack:///signalR/src/HttpConnection.ts","webpack:///signalR/src/JsonHubProtocol.ts","webpack:///signalR/src/HubConnectionBuilder.ts","webpack:///signalR/src/browser-index.ts","webpack:///./src/Services/tokenEventListenerService.jsx","webpack:///src/Application/components/vuecontrols/advancedHistory/menuColumnGroups.vue","webpack:///./src/Application/components/vuecontrols/advancedHistory/menuIntervalSelection.vue?fbf4","webpack:///./src/Services/aspNetCoreWebSocketConnection.jsx","webpack:///./src/Services/webSocketConnectionFactory.jsx","webpack:///./src/Application/components/vuecontrols/verticalTabs.vue?4320","webpack:///./src/Application/components/vuecontrols/advancedHistory/cardHistogram.vue?2cc4","webpack:///./src/Application/components/vuecontrols/advancedHistory/agGridToolReportChart.vue?3ec3","webpack:///./src/Shared/timezoneMap.js","webpack:///./src/Application/careHelpfulFunctions.jsx","webpack:///./src/Services/webSocketService.jsx","webpack:///./src/Services/careFetchService.jsx","webpack:///./src/Services/api.jsx","webpack:///./src/Application/components/vuecontrols/advancedHistory/menuColumnGroups.vue?e1be","webpack:///./src/Assets/Numeric.png","webpack:///./src/Application/components/vuecontrols/advancedHistory/metricItem.vue?b090","webpack:///./src/Application/components/vuecontrols/advancedHistory/menuColumnGroups.vue?2faf","webpack:///./src/Application/event-bus.js","webpack:///./src/Application/components/CallcorpPlayer.js","webpack:///./src/Application/components/vuecontrols/advancedHistory/cardHistogram.vue?9b1b","webpack:///src/Application/components/vuecontrols/advancedHistory/metricItem.vue","webpack:///./src/Application/components/SoftPhone.vue?6784","webpack:///./src/Services/cachingService.jsx","webpack:///./src/Application/components/vuecontrols/advancedHistory/filter_searchableTextColumn.vue?d648","webpack:///./src/Application/components/vuecontrols/responsiveDash.vue?699b","webpack:///./src/Application/components/vuecontrols/griddy.vue?f3b6","webpack:///src/Application/components/vuecontrols/advancedHistory/filter_directionColumn.vue","webpack:///./src/Services/localStorageSyncService.js","webpack:///./src/Shared/helperClasses.js","webpack:///./src/Application/components/MultiSelectListItem.vue?294f","webpack:///./src/Assets/Table.png","webpack:///./src/Application/components/vuecontrols/advancedHistory/menuColumnGroups.vue?4a32","webpack:///./src/Application/components/BasicFileUpload.vue?b875","webpack:///./src/Application/components/vuecontrols/advancedHistory/menuIntervalSelection.vue?17b6","webpack:///./src/Shared/methods.js","webpack:///./src/Application/components/vuecontrols/advancedHistory/columnItemList.vue?ebc4","webpack:///./src/Shared/utils.jsx","webpack:///./src/Assets/BlankCard.jpg","webpack:///./src/Application/components/UserControl.jsx","webpack:///./src/Application/components/FileDiff.vue?e043","webpack:///./src/Services/careService.jsx","webpack:///./src/Shared/actionDefaults.js","webpack:///./src/Application/components/MultiSelectList.vue?ceba","webpack:///./src/Assets/BarWithLine.png","webpack:///./src/Services/token.jsx","webpack:///./src/Application/components/vuecontrols/advancedHistory/filter_textSetColumn.vue?5388","webpack:///./src/Application/components/vuecontrols/advancedHistory/agGridToolReportAllinOne.vue?deb8","webpack:///./src/Application/components/AdvancedHistory.vue?0b61","webpack:///./src/Application/components/vuecontrols/advancedHistory/overflowPillGroup.vue?9148","webpack:///src/Application/components/vuecontrols/advancedHistory/cardHistogram.vue","webpack:///./src/Application/components/vuecontrols/calendar.vue?d0f6","webpack:///./src/Application/components/vuecontrols/advancedHistory/filter_durationColumn.vue?8c74","webpack:///./src/Application/components/actions/DialogBasicConfirmModal.jsx","webpack:///./src/Application/components/vuecontrols/advancedHistory/agGridToolReportFields.vue?0e30","webpack:///./src/Application/components/vuecontrols/advancedHistory/agGridToolReportFields.vue?9179","webpack:///./src/Shared/regionCodeList.js","webpack:///./src/Shared/currencyCodes.js","webpack:///./src/Shared/computed.js","webpack:///./src/Application/components/vuecontrols/advancedHistory/menuIntervalSelection.vue","webpack:///./src/Application/components/vuecontrols/advancedHistory/metricItem.vue?28a5","webpack:///./src/Assets/Bar.png","webpack:///./src/Application/components/vuecontrols/advancedHistory/agGridToolReportFilters.vue?2d37","webpack:///./src/Services/editor.jsx"],"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","jsonpScriptSrc","p","exports","module","l","e","promises","installedChunkData","promise","Promise","resolve","reject","onScriptComplete","script","document","createElement","charset","timeout","nc","setAttribute","src","error","Error","event","onerror","onload","clearTimeout","chunk","errorType","type","realSrc","target","message","name","request","undefined","setTimeout","head","appendChild","all","m","c","d","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","oe","err","console","jsonpArray","window","oldJsonpFunction","slice","baseMixin","displayexpr","visibleexpr","prerender_actions","postrender_actions","prerender_complete","vars","styleHints","isready","renderCount","finishedRender","finishedRenderChildren","todisplayfailed","props","root","parentType","controlData","debug","scopeitems","controlscope","cacheControl","computed","Vars","this","todisplay","DisplayExpression","utils","compileExpression","res","evaluate","isvisible","totalItems","sizeOptions","sizeOptionsObj","evaluateObject","sizeStyle","getSizeDefaults","getSize","$parent","Element","$el","isdebug","document_cache","loadInProgress","Location","Date","toLocaleTimeString","VisibleExpression","Javascript","addJavascript","warn","$nointerp","varsexpn","compileObject","StyleHints","SizeOptions","executeAndCompileAllActions","PrerenderActions","preRenderComplete","Name","destroyed","methods","filters","finishRenderHandler","component","renderComplete","PostrenderActions","$emit","postRenderComplete","attrs","staticClass","menuopen","callback","$$v","expression","_c","selection","_vm","columngroups","text","scopedSlots","fn","active","_s","item","staticRenderFns","default","a","u","h","g","f","v","S","T","y","E","b","C","setPrototypeOf","__proto__","Array","constructor","assign","arguments","indexOf","getOwnPropertySymbols","propertyIsEnumerable","getOwnPropertyDescriptor","Reflect","decorate","metadata","next","throw","done","then","label","sent","trys","ops","return","iterator","TypeError","pop","concat","asyncIterator","raw","__exportStar","transactionConstructor","core","delegate","challenged","stale","logger","loggerFactory","getLogger","init","dispose","transaction","configurable","_transaction","cancel","to","from","makeOutgoingRequestMessage","CANCEL","ruri","uri","toTag","fromTag","callId","cseq","extraHeaders","branch","headers","Route","setHeader","state","TransactionState","Proceeding","NonInviteClientTransaction","once","authenticationGuard","statusCode","parseHeader","credentials","configuration","authenticationFactory","authenticate","method","toString","onRequestTimeout","IncomingResponseMessage","reasonPhrase","receiveResponse","onTransportError","test","onTrying","onProgress","onAccept","onRedirect","onReject","onStateChange","Terminated","userAgentClients","delete","transport","id","set","UserAgentClient","newTag","accept","acceptable","TransactionStateError","reply","progress","progressable","redirect","redirectable","forEach","rejectable","trying","tryingable","receiveCancel","onCancel","InviteServerTransaction","Accepted","NonInviteServerTransaction","Trying","userAgent","userAgentHeaderFieldValue","supported","supportedOptionTagsResponse","constructOutgoingResponse","userAgentServers","UserAgentServer","Timers","T1","T2","T4","TIMER_B","TIMER_D","TIMER_F","TIMER_H","TIMER_I","TIMER_J","TIMER_K","TIMER_L","TIMER_M","TIMER_N","PROVISIONAL_RESPONSE_INTERVAL","Math","floor","random","createRandomToken","getReasonPhrase","headerize","Cseq","Rack","Rseq","toLowerCase","replace","split","charAt","toUpperCase","substring","str_utf8_length","encodeURIComponent","100","180","181","182","183","199","200","202","204","300","301","302","305","380","400","401","402","403","404","405","406","407","408","410","412","413","414","415","416","417","420","421","422","423","428","429","430","433","436","437","438","439","440","469","470","478","480","481","482","483","484","485","486","487","488","489","491","493","494","500","501","502","503","504","505","513","580","600","603","604","606","Function","ownKeys","getOwnPropertyNames","Number","isNaN","EventEmitter","_events","_eventsCount","_maxListeners","defaultMaxListeners","newListener","emit","listener","unshift","warned","String","emitter","count","fired","removeListener","wrapFn","RangeError","getPrototypeOf","setMaxListeners","getMaxListeners","context","addListener","on","prependListener","prependOnceListener","off","removeAllListeners","keys","listeners","rawListeners","listenerCount","eventNames","Calling","Completed","Confirmed","AllowedMethods","ACK","BYE","INFO","INVITE","MESSAGE","NOTIFY","OPTIONS","PRACK","REFER","REGISTER","SUBSCRIBE","STATUS_EARLY","STATUS_CONFIRMED","DialogStatus","STATUS_NULL","STATUS_INVITE_SENT","STATUS_1XX_RECEIVED","STATUS_INVITE_RECEIVED","STATUS_WAITING_FOR_ANSWER","STATUS_ANSWERED","STATUS_WAITING_FOR_PRACK","STATUS_WAITING_FOR_ACK","STATUS_CANCELED","STATUS_TERMINATED","STATUS_ANSWERED_WAITING_FOR_PRACK","STATUS_EARLY_MEDIA","SessionStatus","ClientContext","ConfigurationError","Dialog","DigestAuthentication","DTMF","IncomingMessage","IncomingRequest","IncomingResponse","InvalidStateError","InviteClientContext","InviteServerContext","Logger","LoggerFactory","MethodParameterError","NameAddrHeader","NotSupportedError","OutgoingRequest","Parameters","PublishContext","ReferClientContext","ReferServerContext","RegisterContext","RenegotiationError","RequestSender","ServerContext","Session","SessionDescriptionHandler","SessionDescriptionHandlerError","SessionDescriptionHandlerObserver","Subscription","Transport","UA","URI","TypeStrings","STATUS_INIT","STATUS_STARTING","STATUS_READY","STATUS_USER_CLOSED","STATUS_NOT_READY","UAStatus","__importStar","parse","startRule","nameAddrHeaderParse","URIParse","Grammar","dialogState","dialogs","initialDialogStateForUserAgentClient","getHeaders","reverse","early","localTag","remoteTag","localSequenceNumber","remoteSequenceNumber","localURI","remoteURI","remoteTarget","routeSet","secure","initialDialogStateForUserAgentServer","confirm","receiveRequest","recomputeRouteSet","createOutgoingRequestMessage","body","userAgentCore","sequenceGuard","replyStateless","__extends","IncomingRequestMessage","addHeader","getHeader","hasHeader","parsed","_displayName","displayName","aor","clone","JSON","stringify","parameters","setParam","getParam","hasParam","deleteParam","clearParams","makeId","_request","user","setViaHeader","protocol","Transaction","ClientTransaction","_transport","_user","_id","_state","typeToString","logTransportError","send","catch","TransportError","setState","Exception","viaBranch","ServerTransaction","NotifyUserAgentServer","log","Levels","version","LIBRARY_VERSION","USER_AGENT","SIP","SIPS","CONNECTION_ERROR","INTERNAL_ERROR","REQUEST_TIMEOUT","SIP_FAILURE_CODE","ADDRESS_INCOMPLETE","AUTHENTICATION_ERROR","BUSY","DIALOG_ERROR","INCOMPATIBLE_SDP","NOT_FOUND","REDIRECTED","REJECTED","UNAVAILABLE","BAD_MEDIA_DESCRIPTION","CANCELED","EXPIRES","NO_ACK","NO_ANSWER","NO_PRACK","RTP_TIMEOUT","USER_DENIED_MEDIA_ACCESS","WEBRTC_ERROR","WEBRTC_NOT_SUPPORTED","causes","REQUIRED","SUPPORTED","UNSUPPORTED","SIP_ERROR_CAUSES","UPDATE","PUBLISH","REASON_PHRASE","OPTION_TAGS","answermode","eventlist","explicitsub","gin","gruu","histinfo","ice","join","norefersub","nosub","outbound","path","policy","precondition","pref","privacy","replaces","tdialog","timer","uui","RTP","dtmfType","defer","reducePromises","reduce","generateFakeSDP","isDecimal","parseInt","parseFloat","newUUID","normalizeTarget","escapeUser","decodeURIComponent","sipErrorCause","getReasonHeaderValue","getCancelReason","buildStatusLine","fromBodyObj","contentType","contentDisposition","content","toBodyObj","Utils","scheme","host","port","normal","deleteHeader","clearHeaders","_raw","toRaw","_toString","_normal","match","ClosedSessionDescriptionHandlerError","TerminatedSessionError","UnsupportedSessionDescriptionContentTypeError","Exceptions","code","parameter","status","_makeEmitter","Initial","Establishing","Established","Terminating","SessionState","options","getDefaultOptions","__assign","optionTags","fromURI","makeNameAddrHeader","fromDisplayName","toURI","toDisplayName","callIdPrefix","forceRport","hackViaTcp","userAgentString","viaHost","tag","RegExp","trim","OutgoingRequestMessage","ackRetransmissionCache","Map","B","timer_B","D","M","ackResponse","stateTransition","ack","has","timer_D","timer_M","timer_A","InviteClientTransaction","ByeUserAgentClient","ByeUserAgentServer","InfoUserAgentClient","InfoUserAgentServer","NotifyUserAgentClient","signalingStateTransition","PrackUserAgentClient","dialog","PrackUserAgentServer","reinviteUserAgentClient","session","prack","signalingStateRollback","ReInviteUserAgentClient","reinviteUserAgentServer","map","reConfirm","ReInviteUserAgentServer","ReferUserAgentClient","ReferUserAgentServer","_autoRefresh","_subscriptionEvent","_subscriptionExpires","_subscriptionExpiresInitial","_subscriptionExpiresLastSet","now","_subscriptionRefresh","_subscriptionRefreshLastSet","_subscriptionState","initialDialogStateForSubscription","N","refreshTimerClear","refreshTimerSet","max","autoRefresh","subscriptionRefresh","onNotify","refresh","subscriptionEvent","subscriptionExpiresInitial","contact","subscribe","subscriptionState","SubscriptionState","Pending","Active","ReSubscribeUserAgentClient","timer_N","terminate","onTerminated","unsubscribe","expires","onRefresh","refreshTimer","subscriptionExpires","NotifyWait","SubscriptionDialog","waitNotifyStop","category","genericLog","initializer","ua","params","fromUri","toUri","localIdentity","remoteIdentity","applicants","pendingReinvite","_stateEventEmitter","_userAgent","_sessions","_sessionDescriptionHandler","close","_bye","_assertedIdentity","_dialog","_replacee","sessionDescriptionHandlerFactory","invite","RequestPendingError","getBody","ackAndBye","withoutSdp","sessionDescriptionHandlerOptions","sessionDescriptionHandlerModifiers","setOfferAndGetAnswer","requestDelegate","_sessionDescriptionHandlerOptions","_sessionDescriptionHandlerModifiers","setAnswer","rollbackOffer","bye","requestOptions","_contact","getOffer","refer","_referrer","sessionState","Early","AckWait","onAck","onAckTimeout","_info","info","onAckRequest","signalingState","SignalingState","Stable","_renderbody","_rendertype","HaveLocalOffer","HaveRemoteOffer","Closed","onByeRequest","onInfoRequest","onInfo","Info","onInviteRequest","generateResponseOfferAnswerInDialog","onInvite","onNotifyRequest","Notification","onPrackRequest","onReferRequest","Referral","onRefer","makeInviter","_referralInviterOptions","generateResponseOfferAnswer","offer","setupSessionDescriptionHandler","getDescription","fromBodyLegacy","rollbackDescription","hasDescription","ContentTypeUnsupportedError","setDescription","setSessionDescriptionHandler","sessionDescriptionHandlerFactoryOptions","incomingNotifyRequest","isBody","expected","found","location","captureStackTrace","buildMessage","charCodeAt","parts","isArray","inverted","description","sort","SyntaxError","Contact","Name_Addr_Header","Record_Route","Request_Response","SIP_URI","Subscription_State","Supported","Require","Via","absoluteURI","Call_ID","Content_Disposition","Content_Length","Content_Type","CSeq","Event","From","Max_Forwards","Min_SE","Proxy_Authenticate","quoted_string","Refer_To","Replaces","Session_Expires","stun_URI","To","turn_URI","uuid","WWW_Authenticate","challenge","sipfrag","Referred_By","host_type","uri_params","uri_headers","password","ttl","maddr","lr","sip_version","status_code","reason_phrase","multi_header","position","offset","start","q","realm","nonce","opaque","algorithm","qop","replaces_from_tag","replaces_to_tag","call_id","early_only","reason","retry_after","received","rport","deltaSeconds","refresher","R","line","column","ignoreCase","end","_","substr","__importDefault","username","ncHex","cnonce","updateNcHex","calculateResponse","response","lib","WordArray","Hasher","algo","abs","sin","MD5","extend","_doReset","_hash","_doProcessBlock","words","w","A","I","O","x","_doFinalize","_data","_nDataBytes","sigBytes","_process","_createHelper","HmacMD5","_createHmacHelper","Base","mixIn","$super","clamp","ceil","enc","Hex","Latin1","fromCharCode","Utf8","escape","unescape","BufferedBlockAlgorithm","reset","_append","blockSize","_minBufferSize","min","cfg","update","finalize","HMAC","via","referTo","parseMessage","Parser","initialTransaction","_signalingState","ackWait","start2xxRetransmissionTimer","_offer","_answer","invite2xxTimer","startReInvite2xxRetransmissionTimer","notify","onBye","onPrack","reliableSequenceGuard","includes","rseq","_rollbackOffer","_rollbackAnswer","retransmitAcceptedResponse","SessionDialog","stopProgressExtensionTimer","H","L","lastProvisionalResponse","lastFinalResponse","startProgressExtensionTimer","timer_L","timer_H","timer_I","progressExtensionTimer","setInterval","clearInterval","timer_G","F","timer_F","K","timer_K","J","lastResponse","timer_J","builtinEnabled","_level","loggers","_connector","level","careAppSettings","careService","logDebug","logError","logInfo","print","connector","subscribers","clear","transportAccessor","InviteUserAgentClient","MessageUserAgentClient","publish","PublishUserAgentClient","register","RegisterUserAgentClient","SubscribeUserAgentClient","sipjsId","viaForceRport","supportedOptionTags","pubGruu","tempGruu","receiveIncomingRequestFromTransport","receiveRequestFromTransport","receiveIncomingResponseFromTransport","receiveResponseFromTransport","InviteUserAgentServer","values","some","receiveInsideDialogRequest","receiveOutsideDialogRequest","MessageUserAgentServer","onMessage","RegisterUserAgentServer","onRegister","SubscribeUserAgentServer","onSubscribe","UserAgentCore","CancelUserAgentClient","confirmedDialogAcks","confirmedDialogs","earlyDialogs","earlyDialog","confirmedDialog","answer","ReSubscribeUserAgentServer","subscriberId","subscriptionExpiresRequested","waitNotifyStart","subscription","onNotifyTimeout","incomingRequest","assertedIdentity","minCode","maxCode","events","incomingInfoRequest","incomingReferRequest","inviter","referredBy","_makeInviter","_referred","_referral","applicant","initReferTo","errorListener","sendRequest","receiveNotify","search","activeAfterTransfer","friendlyName","referredSession","findSession","followRefer","inviteOptions","targetSession","sendNotify","getLoggerFactory","SessionTerminatedError","StateTransitionError","index","stripped","exec","filter","stripTcpCandidates","sdp","stripTelephoneEvent","cleanJitsiSdpImageattr","stripG722","stripRtpPayload","stripVideo","addMidLines","unpublishOnClose","pubRequestExpires","publishRefreshTimer","pubRequestBody","pubRequestEtag","publishers","sendPublishRequest","unpublish","refreshRequest","extraContactHeaderParams","instanceId","regId","registrar","mandatory","optional","registered","onTransportDisconnected","generateContactHeader","closeHeaders","closeWithHeaders","registrationTimer","registrationExpiredTimer","unregistered","registrationFailure","registeredBefore","unregister","hasOffer","hasAnswer","timers","ackTimer","expiresTimer","userNoAnswerTimer","rel1xxTimer","prackTimer","startTime","endTime","tones","localHold","earlySdp","rel100","dtmf","DTMFValidator","validate","tone","duration","interToneGap","sessionDescriptionHandler","sendDtmf","terminated","referContext","sessions","hold","modifiers","holdModifier","sendReinvite","unhold","reinvite","failed","onDialogError","renderbody","rendertype","receiveReinvite","init_incoming","passedOptions","rejected","canceled","accepted","replacee","connecting","_canceled","noAnswerTimeout","_accept","onContextError","_reliableProgressWaitForPrack","_progress","handlePrackOfferAnswer","prackNeverArrived","waitForArrivalOfPrack","_progressWithSDP","_reliableProgress","prackArrived","prackRequest","prackResponse","progressResponse","waitingForPrackResolve","waitingForPrackPromise","waitingForPrackReject","getSessionDescriptionHandler","anonymous","earlyMediaSessionDescriptionHandlers","inviteWithoutSdp","isCanceled","received100","sendInvite","careError","outgoingInviteRequest","disposeEarlyMedia","generateInvalidToneError","initContext","disposed","subscriptions","retryAfterTimer","__spreadArrays","onAccepted","onFailed","success","failure","subscribed","server","connect","connectPromise","overrideEvent","sendPromise","msg","disconnect","disconnectPromise","afterConnected","isConnected","waitForConnected","unloadListener","stop","loadConfig","CONFIGURATION_ERROR","transportConstructor","transportOptions","autoSendAnInitialProvisionalResponse","allowLegacyNotifications","allowOutOfDialogRefers","registerContext","registerOptions","autostart","isRegistered","autostop","chrome","app","runtime","removeEventListener","setTransportListeners","addEventListener","hostportParams","getSupportedResponseOptions","extraSupported","hackAllowUnregisteredOptionTags","NETWORK_ERROR","onTransportConnected","onTransportReceiveMsg","checkAuthenticationFactory","initialize","noWebRTCWebSocket","custom","usePreloadedRoute","hackIpInContact","hackWssInTransport","constraints","peerConnectionOptions","contactName","contactTransport","defaultFactory","authorizationUser","experimentalFeatures","getConfigurationCheck","ALLOWED_METHODS","ACCEPTED_BODY_TYPES","MAX_FORWARDS","TAG_LENGTH","sipUri","Set","DtmfType","makeUserAgentCoreConfigurationFromUA","observer","dtmfSender","shouldAcquireMedia","CONTENT_TYPE","DIRECTION","NULL","SENDRECV","SENDONLY","RECVONLY","INACTIVE","direction","iceGatheringTimeout","initPeerConnection","checkAndDefaultConstraints","peerConnection","getSenders","track","getLocalStreams","getTracks","getReceivers","getRemoteStreams","resetIceGatheringComplete","acquire","createOfferOrAnswer","RTCOfferOptions","alwaysAcquireMediaFirst","setRemoteDescription","disableAudioFallback","hasBrowserGetSenderSupport","hasBrowserTrackSupport","getAudioTracks","createDTMFSender","insertDTMF","getDirection","getMediaStream","video","streams","navigator","mediaDevices","getUserMedia","createAnswer","createOffer","createRTCSessionDescriptionInit","setLocalDescription","waitForIceGatheringComplete","localDescription","setDirection","addDefaultIceCheckingTimeout","iceCheckingTimeout","addDefaultIceServers","iceServers","urls","audio","Boolean","addTrack","rtcConfiguration","RTCPeerConnection","trackAdded","onaddstream","onicecandidate","candidate","stopIceGatherOnFirstViableCandidate","iceGatheringTimer","triggerIceGatheringComplete","onicegatheringstatechange","iceGatheringState","oniceconnectionstatechange","iceConnectionState","removeTrack","addStream","isIceGatheringComplete","iceGatheringDeferred","directionChanged","STATUS_CONNECTING","STATUS_OPEN","STATUS_CLOSING","STATUS_CLOSED","TransportStatus","reconnectionAttempts","wsServers","ws","onError","statusAssert","force","traceSip","disconnectionPromise","statusTransition","disconnectDeferredResolve","reconnectTimer","stopSendingKeepAlives","wsUri","connectionPromise","getNextWsServer","connectDeferredResolve","connectDeferredReject","disposeWs","endsWith","CareWebSocket","WebSocket","connectionTimeout","boundOnOpen","onOpen","boundOnMessage","boundOnSendMessage","onSendMessage","boundOnClose","onClose","boundOnError","onWebsocketError","open","clearKeepAliveTimeout","Uint8Array","startSendingKeepAlives","reconnect","noAvailableServers","resetServerErrorStatus","maxReconnectionAttempts","isError","reconnectionTimeout","weight","sendKeepAlive","keepAliveDebounceTimeout","keepAliveDebounce","keepAliveInterval","defineProperties","Transactions","Web","Core","MIN_DURATION","MAX_DURATION","DEFAULT_DURATION","MIN_INTER_TONE_GAP","DEFAULT_INTER_TONE_GAP","owner","originator","binaryType","bufferedAmount","extensions","readyState","CONNECTING","OPEN","CLOSING","CLOSED","eventTarget","EventTarget","url","dispatchEvent","onclose","onmessage","onopen","CloseEvent","MessageEvent","Modifiers","Simple","STATUS_NEW","STATUS_CONNECTED","STATUS_COMPLETED","SimpleStatus","media","remote","setupSession","checkRegistration","autoplay","local","volume","hangup","mute","unmute","toggleMute","sendDTMF","setupRemoteMedia","MediaStream","srcObject","play","setupLocalMedia","kind","cleanupMedia","pause","onEnded","destroyMedia","enabled","getVideoTracks","model","selected_items","render","dayjs","localeData","localizedFormat","weekday","utc","customParseFormat","objectSupport","timezone","moment","setLocale","locale","getSupportedLocale","Ls","appSettings","LocaleKey","getWeekdaysLong","weekdays","getWeekdaysShort","weekdaysShort","getWeekdaysMin","weekdaysMin","getMonthLong","months","getMonthShort","monthsShort","getTimezoneConvertedDate","date","tz","format","windowsTimeToIANATime","getDateInLocale","careWindowsToMomentTimezoneMap","windowsTimezone","Intl","supportedValuesOf","guess","busyIcon","visibility","global_variables","api_busy_indicator","Vue","components","cc_form_changed_indicator","cc_form_changed_active","cc_form_changed_linked","cc_form_changed_button","cc_form_changed_form","isbase","action","okay","created","ActionData","DisableFormTracking","titlerenderer","compile","Title","api","apiWrapper","chf","careHelpfulFunctions","eval","_uid","$on","performClose","EventBus","$off","mounted","Root","_self","title","Input","formChangedIndicator","_this$cc_form_changed","_this$cc_form_changed2","AllowClose","generateItems","Controls","items","DynamicControl","getDynamicComponent","ControlType","ControlData","ControlURL","CacheControl","Events","formChanged","_this$cc_form_changed3","_this$cc_form_changed4","dialogresult","dialogResult","Success","DialogResult","FinishFunc","clickedOutside","stopPropagation","preventDefault","CloseOnClickOutside","_mergeJSXProps","generateUUID","finished-render","Body","footer","Footer","header","HideTitleBar","backgroundColor","maxHeight","height","watch","newv","filterType","PromiseWrapper","hover","staticStyle","domProps","class","getMetricItemClass","_u","metricMenu","func","click","addMetric","_e","Type","carei18nLanguages","native","locales","IsVuePortal","hsmlist","hsms","hsm","visible","setVisibility","NoContextLocalStorage","DefaultDebug","currentSetting","disableGuidedAssistant","DEBUG_CONSOLE_LINES","WhiteLabel","CompanyName","DomainName","FavIconString","FavIconType","CompanyLogoString","CompanyLogoType","LoginImageString","LoginImageType","LoginDisplayType","LoginCustomHtml","LoginUrl","ApiUrl","ApiUrlBandTemplate","WssSuffix","GoogleMapApiKey","FacebookAppId","AppleSigninId","GoogleClientId","ACDDirectId","IBSendGridEmailForwardingDomain","SAMLProviders","LanguageKey","Currency","WindowLocation","AvailableLanguages","Environment","PayeezyXLogin","PayeezyUrl","careTokenService","CustomerTimezone","BandID","AccessToken","GetUserEventKey","GetCustomerEventKey","GetChannelName","UpdateToken","LocalStorage","UserID","CustomerID","prefixedKey","localStorage","getItem","localStorageSyncService","dispatchLocalStorageUpdate","removeItem","setItem","UserLocalStorage","GlobalLocalStorage","UnfinishedApis","careApiRequestMonitorService","apisWaiting","GetWaitingAPIs","angular$qService","$rootScope","careApiService","care$qService","careCookieService","careWebSocketService","careActionService","careCenterBase","plantUmlService","careControlHelperService","ServerTimeOffset","ClientTimeSnapshot","ServerTimeSnapshot","InstanceGuid","SystemId","DebugInfo","ConsoleLog","DebugActionLog","TransportSettings","Client","SignalRWebSockets","WebRTCWebSockets","$timeout","waitms","OpenDocumentForDebug","docInfo","parentControlModel","scope","actions","actionBroadcaster","parent","careGlobalVars","careHSMs","careTokenSettings","getTime","sessionStorage","f_date","datevalue","fmt","dt","f_shortDateShortTime","datetime","f_formatDateForLocale","f_formatHourOnlyDateTimeForLocale","f_phoneNumber","phonenum","formatPhoneNumber","f_number","num","digits","num2","NumberFormat","minimumFractionDigits","f_bytes","size","toFixed","f_currency","formatter","style","currency","primaryText","secondaryText","tertiaryText","stateText","primary","primaryActive","navigation","accent","destructive","lightgrey","lightGreyBorder","stateBackground","lightBlueBackground","darkGreyIcon","blue","green","yellow","red","cyan","danger","warning","lightGrey","extraLightGrey","white","black","blueExtraLight","lightGreyHover","asa","att","awrapt","sentmessage","altsentmessage","wrapup","multiples","inbound","ready","notready","fullcapacity","receivedmessage","notready1","notready2","notready3","notready4","notready5","notready6","notready7","notready8","notready9","busy","linked","transfer","reading","unlinked","composing","starting","chatting","answered","pending","userState1","userState2","userState3","userState4","userState5","userState6","userState7","userState8","userState9","userState10","userState11","userState12","userState13","userState14","userState15","tertiarytext","use","Vuetify","VuetifyComponents","directives","VuetifyDirectives","colors","VuetifyColors","themes","defaultTheme","msTeamsTheme","instance","theme","customProperties","variations","light","currenttheme","breakpoint","thresholds","sm","getTheme","check","framework","setTheme","importWhiteLabelSettings","settings","currentthemename","whiteLabel","ColorVariables","currentRoute","pathname","e1","base_uri","showerror","error_message","context_list","credentials_obj","ProviderType","UniqueID","Password","last_baseuri","sync","prop","authargs","MFAToken","access_token","refresh_token","user_list","ctx","FirstName","LastName","userid","contexts","SecurityContexts","SecurityContextTypeID","UserSecurityContextID","userSecurityContextID","setTokens","expires_in","append-icon-cb","confirm_validate","selectContext","default_value","visible1","payload1","$createElement","payLoad","componentOptions","propsData","visible2","payload2","visible3","payload3","visible4","payload4","addResizeHandlers","_resizeObject","contentDocument","defaultView","_w","offsetWidth","_h","offsetHeight","removeResizeHandlers","$nextTick","beforeDestroy","cloneDeep","require","editorId","lang","readOnly","uniqueid","uiAceOptions","editor","beforeContent","hasfocus","gotoLine","row","beautify","doAppy","output","looks_like_html","unpacker_filter","saveEditorPositionAndFoldInfo","setValue","restoreEditorPositionAndFoldInfo","savedFoldData","$foldData","savedScrollTop","getScrollTop","savedCursorPosition","getCursor","nextTick","verifiedFoldData","verifyFoldData","addVerifiedFolds","moveCursorTo","setScrollTop","foldData","foldRange","range","foldWidget","getFoldWidget","foldWidgetRange","getFoldWidgetRange","addFold","source","trailing_comments","comment","unpacked","unpackers","P_A_C_K_E_R","Urlencoded","MyObfuscate","detect","unpack","trimmed","comment_mark","realId","width","display","flexDirection","minHeight","minWidth","resize","flexGrow","ace","edit","getSession","setMode","setAutoScrollEditorIntoView","setReadOnly","getValue","commands","addCommands","bindKey","win","mac","destroy","mixins","BaseComponent","hideHeaderBarEval","groupTitleEval","isOpenEval","hideHeaderBar","HideHeaderBar","groupTitle","GroupTitle","isOpen","IsOpen","Close","Open","ToggleIsOpen","_this$controlData","_this$controlData$Pre","_this$controlData2","_this$controlData2$He","titleContent","PreTitleControls","generateItemsFromArray","HeaderControls","AccordionBody","closeOthersEval","accordionGroupEvals","openedItems","closeOthers","CloseOthers","Translate","styles","resolveStyleHints","openItem","closeItem","toggleOpen","AccordionGroup","groupItem","newscopeitems","toggle-open","reference","mgr","buttonText","autoLogin","autologinexpn","AutoLogin","startACDDirectApp","handleClick","loadFile","hostname","authority","popup_redirect_uri","origin","client_id","response_type","Oidc","UserManager","signinPopup","authArgs","token","id_token","clientId","runActions","Actions","filename","filetype","fileRef","getElementsByTagName","groups","performDisplayNotificationHeader","performRemoveNotificationHeader","GlobalVars","ServiceVars","service_variables","System","Parent","$attrs","c_context","Debug","BreakPoint","groupexpn","Data","complete","k","ref","accessToken","WindowTitle","TitleBarName","refreshToken","tabId","performOpen","targetWindowName","specs","tokenSource","windowTitle","titleBarName","doNotInheritSessionStorage","care","guid","ValueInList","childWindow","ClearSessionStorageBeforeNavigate","$refs","theForm","submit","extraToken","refreshWithExtraToken","SecurityContextsToRemove","Status","StatusText","statusText","ChildWithTokenOpener","current_dialog","dialog_content","dialog_data","dialog_visible","toastitems","show_overlay","overlay","opacity","toast","performAlert","performAPI","performBroadcast","performOpenChildWindow","performClosePopup","performDeleteValue","performDisplayBasicModal","performDisplayConfirmModal","performDisplayPopup","performEvaluateExpression","performDownload","performFlushControlCache","performFlushUrlCache","performForEach","performIfElse","performLogEntry","performReferenceUserAction","performRunActions","performSetValue","performUserIdleReset","performShowWaitOverlay","performHideWaitOverlay","performSleep","performScreenshot","performHelpTourStop","performSetLanguage","performRunControlCommand","performOpenDocumentEditor","performValidateForm","performBadge","bodyMaxLength","titleMaxLength","backdrop","SnotifyPosition","rightBottom","showProgressBar","closeOnClick","pauseOnHover","$snotify","subtext","ontap","onhide","removetoast","remove","getNextDialog","releaseDialog","dialog_close","displayToast","successful","DefaultToast","icon","Toast","SuccessToast","ErrorToast","Message","OnTapActions","input","_res$data","headers_obj","headers_fn","headers_list","namefn","valuefn","Value","provider","apiRequest","flatten","addAccessTokenInHeader","IncludeAccessToken","doNotUseWebsocket","DoNotUseWebsocket","apiprovider","APIRequest","Result","Output","RawResult","StatusCode","ReasonPhrase","alert","MessageData","messagedata","URL","TapActions","HiddenActions","FileName","fileURL","standardizeUrl","link","download","href","removeChild","popupname","Field","DeepCopy","IsArray","PropertyName","ArrayIndex","expr","propname","Expression","ResolveActionPromiseManually","ActionPromiseResolve","async","ActionPromiseReject","ActionType","Expressions","handleResult","performConfirmCloseDialog","doClose","newcontext","Source","LogLevel","cachingService","clearCache","UserAction","ActionURL","referencedAction","executeAction","compiled","actionURL","cache","CacheAction","apiService","compileAction","resolved_compiled","actiondatafunc","OpacityLevel","TimedOverlay","Timer","Duration","screen","mainscreen","canvas","html2canvas","useCORS","msSaveBlob","imageurl","toDataURL","ImageUrl","Language","language","setSelectedLanguage","ControlName","CommandName","controlName","commandName","Control","cmd","ControlScope","ScopeItems","DocumentName","DocumentURL","DocumentType","docName","docUrl","docType","folder","defaultFolder","menuId","getDocumentBy","openForLocalEdit","Folder","Id","GetDocumentBy","targets","FindAllChildrenWithEventListener","all_errors","form","errors","Validate","element","Errors","broadcast","dialogContent","_this$dialog_data$ind","_this$dialog_data$ind2","scrollable","persistent","AllowResize","fullscreen","StartMaximized","componentInstance","queryError","_v","colDefsLoaded","nocolumns","dateRangePickerVisible","proxy","clearSearch","slot","tool_visible","toggleDataFilters","IsAnyFilters","cycleDurationFormats","autoSizeAllColumns","query_in_progress","defaultTime","clearDateRangeHandler","rawName","initialState","aggFuncs","panelactive","report_name","report_description","source_selected","report_category","categoryActions","advancedVisible","pageSizeRules","modelChanged","pageSize","columnDefs","$event","unique_id","initial_column_filters","ReadOnly","column_filters","notifyfilterschanged","contentDef","rowData","rowDataArg","contentDefs","addrowdata","loading","rowIndex","getAdditionalRowData","$$additional_row_data","handleGridExportText","val","exportValues","callcorp","field","add","initValue","valueexpr","urlexpr","elements","displayExpression","control","$objectId","placeholderText","datePickerOpen","calendarConfigs","functionalCalendarFormattedData","onCalendarInput","isDateRangePicker","offsetY","auto","startHour","startMin","is24HourLocale","startMeridiem","timePickerHours","endHour","endMin","endMeridiem","selectedHour","selectedMinute","selectedMeridiem","applySelection","FunctionalCalendar","allowTime","timePickerIncrement","isDisabled","placeholder","allowFutureDate","allowPastDate","futureDateLimit","pastDateLimit","dense","hideDetails","outlined","readonly","singleLine","noinput","calendarData","dateRange","startOf","toISOString","endOf","selectedDate","functionalCalendarDataEmptyData","selected","lastSavedData","defaultModel","actualTimePickerIncrement","presets","subtract","sundayStart","day","dateFormat","isDatePicker","isSingleDatePicker","isDateRange","isMultiple","withTimePicker","calendarsCount","dayNames","getWeekdaysNameListWithMondayFirst","monthNames","localeService","shortMonthNames","disabledDates","limits","limitDates","updateDefaultModel","initializeData","disabled","newvalue","cannotMoveForward","cannotMoveBackward","isEmpty","hour","formatTime","timePickerMin","availableMins","updateStartDate","minute","meridiem","updateEndDate","updateSelectedDate","displayValue","_dayjs$Ls$localeServi","_dayjs$Ls$localeServi2","selectedDateLocale","formats","LT","minimumIntegerDigits","setRange","setStartDateTime","setEndDateTime","startDate","startMinute","originalStartDate","localStartDate","localStartHour","localStartMeridiem","localStartMinute","year","month","endDate","endMinute","originalEndDate","localEndDate","localEndHour","localEndMeridiem","localEndMinute","originalSelectedDate","localSelectedDate","localSelectedHour","localSelectedMeridiem","localSelectedMinute","setSelectedDateTime","cancelSelection","undoChanges","setLastSavedData","moveDay","initializeStartDate","initializeEndDate","initializeSelectedDate","days","anyFilters","filter_menuopen","columnCategories","filterCategories","isCategoryVisible","search_results","showHelp","addColumn","help","isoWeek","common","constants","DISPLAY_RESIZING","DISPLAY_DYNAMIC_GRID","DISPLAY_FLAT_GRID","DISPLAY_CHART","TAB_METRICS","TAB_FILTERS","TAB_CHART_SETTINGS","TAB_ALL_IN_ONE","TAB_MODEL","PIVOT_HEADER_SEP","MILLISECONDS_PER_DAY","MILLISECONDS_PER_HOUR","swatches","cacheLoaded","sourceTypes","userLookup","customerLookup","chatLookup","column_lookup","globalVars","time_values","time","every","presortSize","serverPaginationMode","presortSizeRules","buildRequest","baseurl","byField","transformer","rows","nameField","valueField","fromEntries","remaplookup","lookup","valuefield","formatMetric","col","aggFunc","formatHeader","headerName","getMetricTitle","metric","columnLookup","MetricAggs","FunctionList","ColId","SourceType","getAggregateColumnType","colId","coltype","coldef","BucketScript","ResultType","LookupSettings","LookupURL","expn","ValueType","LookupModelAs","ValueExpression","display_expn","DisplayType","names","ValueField","DisplayField","lookups","padNumber","number","ISO8601ToLocal","getFullYear","getMonth","getDate","getHours","getMinutes","second","getSeconds","ms","getMilliseconds","parseFilter","units","round","getWeek","getDateOfWeek","weekNumber","jan1","UTC","jan1Day","getDay","daysToFirstMonday","setDate","setHours","getRelativeDate","unit_type","unit_value","abs_value","isend","getRelativeDateFromFilter","toDate","setTime","setMonth","roundToInterval","interval","compareObjects","same","ex","toSorted","AllCustomers","AllUsers","Users","columnlist","uid","allowcaching","cacheIsLoading","myPromise","resolvePromise","rejectPromise","sourcetypes","categories","customerlist","userlist","chatlist","loadSourceTypes","loadCategories","loadCustomerList","loadUserList","loadChatTouchpoints","loadColumns","sourceTypesList","categoriesList","helps","toLookup","column_list","tasks","MappingTableType","loadLookup","MappingTable","getColumnDefs","cols","Sources","ColumnUse","Computed","SourceField","hide","suppressFiltersToolPanel","Filter","menuTabs","valueFormatter","_vm$columnLookup$col$","default_visibility","getDefaultHidden","Dependencies","Modules","column_default_visibility","removeColumn","getColumnHelp","setDefaultHidden","hidden","toggleColumn","tab","allDataTypesSelected","allSourcesSelected","allCategoriesSelected","category_selection","selectNoDataTypes","datatypes_selection","selectNoSources","selectAllSources","sources_selection","debugMode","datatypes","sources","initial_datatypes_selection","initial_category_selection","initial_sources_selection","notifyIfAnyFilters","lookupSourceType","selectAllDataTypes","selectAllCategories","selectNoCategories","overflowY","calculation","removePill","pills","typeDescriptor","expanded","hasMorePills","checkOverflow","handler","deep","container","flexContainer","scrollHeight","clientHeight","toggleExpansion","ColumnItemList","MetricTypeFilter","OverflowPillGroup","storageKey","setColumnsDefaultHidden","setColumnsVisible","categoryPanels","divider","columnDataTypes","types","columnDataTypes_selection","columnCategory_selection","columnSources_selection","saveColumnFilters","_this$column_list","cat","Group","FilterCategory","Category","loadColumnFilters","_a$Tooltip","_a$Description","_a$SourceType","CompoundFilter","Tooltip","Description","selected_columns","getColumnsByCategory","visibletypes","flatMap","setPanelState","arr","filterCategoryPrefix","idx","setdefaulthidden","setcolumnvisible","advancedSettings","showwarn","metricColumns","columnsFromSearch","getFilterValue","updateFilterValue","addFilter","addFilterVisible","search_dlg","menuSelectFiltersOpen","columnsFromSearch_dlg","search_colid","_l","addFilterResponse","panels_open","refInFor","setColumnFilterUse","getColumnComponent","usecurrentuser","usefulltext","UniqueValuesVisible","showunique","filteredlist","transformValue","condition","$set","removeCondition","rules","combiner","condition_types","self","updateReportDebouncer","debounce","operator","conditions","updateReport","setItemCombiner","addCondition","SearchableTextColumn","listitems","isUserID","isAllSelected","useExclusive","initial","isopen","DBLookupList","initializeFromValue","usage","loadColumnValues","isDEBUG","DEBUG","allDescription","allowStandardTextFilter","haslookup","standardTextFilterTooltip","updateFilter","isEqual","dataurl","Values","byTransformedField","selectAll","toggleAll","isChecked","updateSelectedItems","toggleValue","relayChange","valueto","getCurrencySymbol","toLocaleString","maximumFractionDigits","filterTo","units_from","abs_from","units_to","value_to","abs_to","round_to","value_from","round_from","relative_units","mon","valueChanged","computeCurrentStart","computeCurrentEnd","friendlyFromUnit","getFriendlyUnit","friendlyToUnit","computeLocalStart","computeLocalEnd","isActive","rule","getRelativeQuery","applyDateRangeHandler","formatDate","unit","yearStart","today","dayOfYear","week","FilterbooleanColumn","FilterchannelTypeColumn","FiltercountColumn","FiltercurrencyColumn","FiltercustomerIDColumn","FilterfloatColumn","FilterdateColumn","FilterdirectionColumn","FilterdurationColumn","FilterpercentColumn","FilterphoneNumColumn","FiltersearchableTextColumn","FiltertextSetColumn","FilteruserIDColumn","limitedFilterKey","usages","limitedFilteringTypes","column_ids","columns","clearAll","setPanelOpenState","colid","added_columns","panel","scrollIntoView","behavior","block","isFieldOpen","localUpdateFilterValue","hasFilter","getColumnFilterUse","isIconVisible","report_settings","fieldChoices","openpanels","filterDataTypes","filterSources","filterDataTypes_selection","filterCategory_selection","filterSources_selection","saveFilterFilters","loadFilterFilters","filterCategoriesList","chosenColumns","filterColumns","metrics","_common$column_lookup","newtype","function","fieldChoicesText","colslist","comp","localeCompare","metricslist","isInUse","inuse","visiblesources","addFilterVisibleDlgState","search_dlg_field","focus","inputEl","querySelector","select","eventBus","selectFilterDlg","selectFilterDlgChanged","find","clearAllFilters","getIconVisible","buttonClick","mnu","getIconDisplay","getMenuEnabled","icons","customdata","Icons","displayExpn","visibleExpn","getIconEnabled","enabledExpn","getMenuVisible","menu","getMenuTitle","titleExpn","command","buttonclass","showingMenu","showColumnSelector","showDataFilters","showAllColumns","toggleColumnVisible","hiddencols","column_order","hideColumSelector","btnclass","Hidden","isHidden","daterange","showtooltip","isactive","preset_choice","date_1_month","date_1_month_changed","date_1_input","date_1","date_1_text_input","date_1_text","time_1","date_2_input","date_2","date_2_text","time_2","isvalid","date_2_month","isafter","iconOnly","activeicon","inactiveicon","activecolor","inactivecolor","myclass","valueobj","oldv","range1","range2","displaydaterange","textcolor","date1","date2","isValid","r0","r1","isBefore","dj","save","isAfter","date_2_text_input","date_1_text_change","date_2_text_change","date_2_month_changed","AgGridVue","AgContentDef","IconComponent","cDateRangePicker","ToolRportColumns","ToolReportFilters","ColumnMenu","MyCalendar","datespan","useStartEnd","query_elapsed","query_result_size","query_refresh_pending","refreshOnReady","delay_expn","datamodel","report_model","active_source","active_interval","autoGroupColumnDef","columnVisibility","customMetrics","filter_settings","extralegtype","column_state","viewonly_settings","column_picker_list","column_filter_list","durationFormatIdx","durationFormats","defaultColDef","editable","defaultAggFunc","sideBar","toolPanels","labelDefault","labelKey","iconKey","toolPanel","maxWidth","hiddenByDefault","defaultToolPanel","cardinality","dataTypeDefinitions","dateColumn","resizable","sortable","keyCreator","valueParser","newValue","timeZone","toLocaleDateString","suppressHeaderMenuButton","dateOnlyColumn","timeOnlyColumn","searchableTextColumn","filterParams","debounceMs","directionColumn","enablePivot","cellClass","booleanColumn","cellDataType","cellRenderer","textSetColumn","refreshValuesOnOpen","channelTypeColumn","getUniqueColValues","comparator","durationColumn","enableValue","headerClass","seconds","durationFormat","neg","hours","minutes","countColumn","floatColumn","percentColumn","customerIDColumn","customerLookupFormatter","customerLookupComparator","userIDColumn","userLookupFormatter","userLookupComparator","currencyColumn","phoneNumColumn","phoneNumLookupFormatter","phoneNumLookupComparator","computedColumn","treeData","groupColDef_byMasterID","cellRendererParams","innerRenderer","starttime","groupColDef_Normal","after_key","query_duration","total_rows","using_aggs","dataSource","getRows","queryFlatTable","show_manage_categories","DataType","DataURL","DataRaw","modelvalue","modelurl","BaseQueryURL","baseurl_expn","RefreshInterval","precompileIconActions","ReportName","ReportDescription","PublishReportName","vueSet","helpers","convertSetValueToVueSet","setReportNameFunction","PublishReportDescription","setReportDescriptionFunction","PublishCategory","setReportCategoryFunction","ShowManageCategories","FilterModal","IsAnyViewFilterChoices","TimeZone","timezone_expn","Filters","filters_expn","StartDate","EndDate","overflow","padding","IsDashboard","$objectid","modelurlvalue","modelrawvalue","_initialState","stateobj","columnOrder","invisiblecols","orderedColIds","hiddenColIds","toolColumnVisibility","toolColumnDefs","totalHits","ReportModel","defaulthidden","columnSizing","z","leftPinned","pinLeft","rightPinned","pinRight","colmods","dependencies","hasSetTime","notify_object","loadLookupTables","refreshCategories","loadReportModel","applyReportModel","delay","Refresh","CategoryID","cdef","pinned","colvisjson","colhide","QueryString","query_filters","applyTableReport","gridApi","refreshServerSide","ID","reportCategoryChanged","EnabledExpression","act","MenuItems","tooltipExpn","Icon","iconExpn","CategoryActions","SourceTypes","reassign","lockPosition","suppressMovable","setGridOption","q_from","startRow","q_size","endRow","rowCount","sortModel","filterModel","took","total","aggs","thisref","getColumnVisibility","timelinetype","ca","cb","colname","notifyCustomMetrics","dsl","colDefs","remove_count","onGridReady","columnApi","stateUpdated","visiblecols","columnSizingModel","columnPinning","leftColIds","rightColIds","onFirstDataRendered","refreshToolPanel","dateFormatter","durationFormatter","phonenumFormatter","getRowClass","child_count","isServerSideGroup","dataItem","getServerSideGroupKey","masterid","sizeColumnsToFit","colstate","reportNameChanged","reportDescChanged","refreshCells","display_type","show_filters","groupDisplayType","chartOptions","groupbyordered","preparedChartOptions","pivot_columns","getChartSeriesText","notifychartchange","notifychartrefresh","updatechartserialization","advancedSettingsVisible","selectedPanel","reportCategories","metric_filter_menuopen","metricSources","search_metrics","metricsearchresults","isMetricInUse","metric_types","isMetricGroupVisible","group","onDrop","group_filter_menuopen","groupSources","search_groups","pivoton","toggleGroupby","isGroupVisible","groupsearchresults","isGroupDisabledSource","getMetricHelp","refreshReport","groupingGroups","groupby","getMetricItemIcon","getSortedFunctions","evt","_b","isDisabledMetric","isDisabledSource","removeMetric","getFunctionDisplayName","getMetricDisplayName","getMetricIconColor","menu_is_open","groupbysettings","interval_idx","CardHistogram","intervals","interval_choice","findIndex","getTitle","histogramchanged","Container","Draggable","MenuColumnGroups","PopupMenuSelection","MetricItem","MetricItemList","GroupbyItemList","required","initial_userStartEnd","datetime_interval","notifychange","openadvancedsettings","initial_report_name","initial_report_description","initial_report_category","initial_show_manage_categories","control_category_actions","greeting","changing","interval_selection","defaultTimeColumn","max_pivot_columns","metricDataTypes","metricCategories","anyMetricfilters","metricDataTypes_selection","metricCategory_selection","metricSources_selection","groupDataTypes","groupCategories","anyGroupfilters","groupDataTypes_selection","groupCategory_selection","groupSources_selection","metricgroup_expanded","columnmetrics_selection","avg","sum","value_count","bucket","group_col_settings_open","saveMetricFilters","saveGroupFilters","notifyGroupOrder","getPivotOn","columngroups_selection","oldinterval","Metric","loadMetricFilters","loadGroupFilters","groupColumnLookup","groupingColumns","metricGroups","groupsources_selected","metricsources_selected","_a$Tooltip2","_a$Description2","_a$SourceType2","disableDateGroupInterval","selectedDateColumn","getGroupColumns","getMetricColumns","setMetricGroupExpansion","filterschanged","refreshtool","_this$getPivotOn","report","removedIndex","addedIndex","args","toIndex","calc","isMetricDisabledSource","showMetricFilter","mlist","setgroupbysettings","changeColumnGroups","changeMetricGroups","changeInterval","updateChart","custom_chart_options","cornerRadius","general_type","general_direction","general_percent","active_tab","isPivotting","all_series","yKey","setChartType","getChart","isCustomTypeDisabled","override_type","revert","marker_enabled","updateColor","chartOptionsLocal","getAxisSeries","legend_position","suppress_metric_suffix","show_debug","initial_settings","legendFormatter","notifyrefresh","updateserialization","active_series_tab","active_axes_tab","maxValues","maxValuesRules","chartTypeSelection","chartTypeList","stacked","normalizedTo","legend_positions","show_series_stroke","disable_show_series_stroke","chartSeries","chartAxes","extraAxes","pivot_series","subtitle","generalTypes","customTypes","color_swatches","series","updated_series","new_s","xKey","updated_axes","axes","new_a","_this$initial_setting","legend","typeSettings","override_stacked","override_norm","override_title","legendItemName","marker","shape","marker_shape","marker_size","label_enabled","strokeWidth","line_width","stroke","color","fill","chartTypes","seriesJSON","axesJSON","stackGroupItems","stackGroup","refreshOnly","chart","override_group","tick","override_axis","x_from","x_goto","old_idx","showSeriesStroke","setChart","setNorm","getNorm","setStackGroup","getImage","getIcon","getItemAxis","addItemAxis","old_axis","extraAxis","setItemAxis","removeExtraAxis","getTickInterval","setTickInterval","hex","colorObject","notifyreportchange","ToolReportFields","ToolReportChart","filerschanged","sessionId","sessionid","span","button","medium","AgChartsVue","ToolReportAllinOne","pinnedBottomRowData","baseurl_flat","baseurl_total","groupDisplayTypes","default_display_type","chartMaxValues","freeze","chartTheme","baseTheme","palette","fills","strokes","dateAndTime","colDef","dayOfWeekColumn","_params$value","hourOfDayColumn","halfHourOfDayColumn","dowAndHodColumn","_params$value2","enableRowGroup","flex","current_page","next_after_key","initial_chart_settings","queryDynamicTable","chartTypeSettings","zoom","enableSelecting","custom_chart_legend","customize_series","customize_axes","totals_row_class","BaseQueryTotalsURL","catId","ChartIsDisabled","suppressAggFuncInHeader","hasUserDateFilter","startsWith","groupmods","metricmods","columnstate","charting","charting_axes","pivoting","copied_axes","olddisplay_type","applyInitialDateFilter","lastIndexOf","getWindowDimensions","windowWidth","innerWidth","windowHeight","innerHeight","updateDimensions","agchart","parentDiv","parentNode","dx","dy","RefreshAll","get_column_list","requery","g1","generatePieChartOptions","generateXYChartOptions","applyChartOptions","ensureIndexVisible","applyDynamicTableReport","applyFlatTableReport","removeAutoGeneratedColumns","dtcol","rowGroup","rowGroupIndex","fields_used","aggcol","changes","lockPinned","tooltipField","applyChartSelection","legendFormatterNoSuffix","pivotcol","getLegendFormatter","legendChannelTypeFormatterNoSuffix","legendChannelTypeFormatter","customizeAxes","customizeSeries","groupcol","metric_list","calloutlabel_formatter","groupcolId","transform","saved_this","angleKey","showInLegend","sectorLabelKey","calloutLabelKey","innerRadiusRatio","outerRadiusRatio","calloutLabel","xaxis_position","yaxis_position","crosshair","renderer","formattedDateCrosshairLabel","durationSecondsAsStringWithHours","mset","durationCrosshairLabel","durationFormattedString","tooltip","defaultTooltip","durationTooltip","child","axis","baseseries","datum","tooltipContent","yLabel","fractionDigits","crosshairText","rowGroupCols","groupKeys","valueCols","pivotCols","cmstr","vf","append","pivotDefs","pivotResultFields","timed_out","rows_count","generatePivotColumns","transformData","this_saved","rtn","totals","_tooltipvalue","metric_col","children","marryChildren","headerValueGetter","regex","prepared","newrow","extractLegendHeaderName","_this$chartOptions","_this$chartOptions$le","_this$chartOptions$le2","_this$chartOptions$le3","node","rowPinned","saveCommonDateRange","updateSimDateRange","gridSortChanged","updateUseStartEnd","cdefs","moveColumn","oldvalue","CellTemplate","columnDef","ico","condition_expn","cccontext","color_expn","tooltip_expn","icon_expn","generateTooltip","datatable_id","modelfunc","searchText","itemsPerPage","ItemsPerPage","prepareColumns","SelectOptions","Enable","checkboxSelection","headerCheckboxSelection","ColumnDefs","hdr","Visible","valueGetter","value_expn","RowModelName","cellfilter_expn","field_extrator","DisplayName","Sortable","gridHeaders","activator","menus","exportAllAsCSV","exportVisibleAsCSV","restoreDefaults","toggleColumnVisibility","clearSelectedRows","modelurl_watch$","$watch","oldval","modelvalue_watch$","Model","Definition","Condition","CellFilter","ValueModelName","Color","SizeColumnsToFit","getSelectedRows","selectedNodes","getSelectedNodes","selectedData","selectedStr","rowCommandClick","btn","cancelBubble","RowIndex","clickIcon","MultiSelect","chartType","chartData","optionsmodel","dataurlexpn","OptionsType","OptionsURL","optionsurlexpn","labelFormatter","opts","LabelFormat","durationSecondsAsString","config","seriesIndex","dataPointIndex","labels","LegendFormat","tooltipFormatter","ToolTipFormat","ChartType","datarawexpn","OptionsRaw","optionsrawexpn","optionsurl","startAppleApp","appleId","AppleID","auth","redirectURI","usePopup","signIn","authorization","VCardPadding","showTimeline","currentTimeString","loaded","urlEval","waveColorEval","progressColorEval","waveColor2Eval","progressColor2Eval","showSpectrogramEval","showTimelineEval","downloadableEval","deletableEval","splitChannelsEval","videoDataEval","wavesurfer","playing","played","totalDuration","currentTime","programaticallySeeking","callCorpPlayer","showingVideo","waveform","waveColor","progressColor","waveColor2","progressColor2","splitChannels","backend","barHeight","fetchParams","plugins","Hover","labelBackground","labelColor","lineColor","TimelinePlugin","wavetimeline","showSpectrogram","Spectrogram","wavespectrogram","colorMap","WaveSurfer","load","getDuration","getCurrentTime","doAudioProcessActions","videoData","vi","callcorpplayer","togglePlay","playPause","deleteRecording","OnDeleteActions","Play","SeekTo","seekTo","GetDuration","Pause","OnFirstPlayActions","showVideo","videos","controlTime","AudioProcessActions","doAudioSeek","pctProgress","waveSurfer","OnDownloadActions","PrimitiveAction","RunAsync","FileURL","Target","Channel0WaveColor","VideoData","Channel0ProgressColor","Channel1WaveColor","Channel1ProgressColor","ShowSpectrogram","ShowTimeline","SplitChannels","downloadable","Downloadable","deletable","hasRole","Deletable","formatTotalTime","durationString","phrenderer","uniqueref","list","widthList","showingList","ItemFields","displayexpn","DisplayText","titleexpn","subtitleexpn","SubTitle","iconexpn","PlaceHolder","urlvalue","urlexpn","SourceURL","sourcevalue","sourceexpn","SourceRaw","filteredList","searchby","FilterFields","Text","KeyPressActions","Length","Clear","sourceData","selectItem","rect","getBoundingClientRect","left","bottom","loadList","ClickActions","OpenOnClick","showList","keydown","choice","IsDropdownOpen","OpenDropdown","textfield","filterfields","sortfields","CloseDropdown","whiteSpace","slots","labelText","DebugTranslationPrefixSetting","menu_items","sourceraw","sourceurl","badges","badgeEventKeys","SourceUrl","performBadgeAction","$watch_todisplay","Menus","DocumentCache","MenuData","MenuContent","cached_content","newval","getChildren","outargs","MenuItemData","MenuPath","Index","item_data","getMenuTree","cached_result","SourceAsMenuItems","ChildMenus","indexa","indexb","resolveBadges","resolveChildBadges","applytoparent","Badge","badgeinfo","badgecontent","CountURL","LookupType","InitialCount","interpolateBadge","lookupBadge","ToolTip","BadgeEventKey","combineBadges","alltt","tooltips","input_tooltip","showbadge","tooltipexpr","Count","Key","badge","tooltipEval","tooltipPlacementEval","disabledEval","objectFitEval","sourcemodel","tooltipPlacement","TooltipPlacement","placement","legendPlacement","legendPlacementEval","LegendPlacement","color_fn","value_fn","width_fn","WidthExpression","size_fn","SizeExpression","rotate","rotate_fn","RotateExpression","title_fn","sourcerawvalue","sourceurlvalue","xaxisCategories","xaxis","_this$controlData$Dat","dataLabels","DataLabels","Enabled","noData","nodata","align","verticalAlign","offsetX","fontSize","IsStacked","stackType","StackType","toolbar","show","ShowToolbar","sparkline","EnableSparkLine","parentHeightOffset","grid","right","plotOptions","bar","horizontal","IsHorizontal","ShowXAxisLabels","axisBorder","axisTicks","yaxis","ShowYAxisLabels","horizontalAlign","LegendPositionAlign","LegendPositionOffset","LegendPosition","getContent","content_fn","Content","iconrenderer","iconpositioner","icongapeval","iconStyleEval","flipHorizontallyEval","flipVerticallyEval","borderEval","animationEval","colorEval","cssClassEval","tooltiprenderer","tooltipLocationEval","isDefaultEval","isdisabledeval","stopPropagationEval","isdisabledfailed","form_changed_indicator","HeaderControlType","IsActive","iconStyle","IconStyle","iconPosition","IconPosition","iconGap","IconGap","flipHorizontally","FlipHorizontally","flipVertically","border","Border","animation","Animation","theColor","isOutlined","cssClass","CssClass","tooltipLocation","TooltipLocation","isDefault","IsDefault","isdisabled","IsDisabled","StopPropagation","buttonClasses","classes","ThemeRightConnector","rightConnector","ThemeLeftConnector","leftConnector","buttonStyles","TextAlign","JustifyContent","iconClasses","flat","Themes","small","condensedBordered","transparent","fab","ToggleIsActive","Width","Mode","Units","Min","MinUnits","Max","MaxUnits","Height","activatorId","doClick","finalContent","isSaving","multiple","aceptTypes","filesChange","files","BaseComponentMixin","finalUploadURL","queryString","successes","uploadURLexpn","uploadPathexpn","aceptTypesexpn","uploadURL","UploadURL","uploadPath","UploadPath","AcceptTypes","AllowMultiple","Label","fileList","constructUploadURL","UploadFilesAutomatically","uploadFileList","finalURL","readFileAsync","file","reader","FileReader","FileUploadActions","readAsDataURL","readAsArrayBuffer","readAsText","uploadFile","FailureActions","FormData","fileName","multipart","SuppressUploadToast","FileUploadFailureActions","doUpload","baseFormMixin","readfunc","writefunc","saved_watches","xxname","cmodel","modelkey","condensed","depth","appearance","layouttype","array_index","hintText","autofocus","notitle","schema","forms","getModelElementReader","getModelElementWriter","readparentfunc","govisible","EventType","itemvalue","old","OnChangeData","FormModel","ParentModel","OldValue","NewValue","$watcher","validateField","autofocus_id","$uniqueId","performValidation","FieldValue","OnRenderData","IsVisible","RunActionsInitially","watches","WatchedField","WatchedValue","Schema","immediate","getElementName","resolveDefault","$$default","last","gohidden","onBlur","_this$element","OnBlurAction","onFocus","_this$element2","OnFocusAction","baseFieldsetMixin","usesColspan","generateElements","LayoutType","elementType","formtype","BaseFieldsetComponent","nopadding","template","rowMapped","colIndex","rowElements","flds","fld","cardClass","formitem","chosenitems","availableitems","loadComplete","addenabled","addLabel","addNewItem","mergeDefaultModel","reOrderItems","Tag","modelkeyroot","divide","nodrag","backgroundImage","selected_item","separator","toggle","addlabel","default_selected","removelabel","dark","activeClass","alltabs_style","getTabItemClass","getTabITemContentClass","selectTab","VerticalTabs","tablabelexpr","selected_tab","show_delete","formatData","TabLabelExpression","tabs_maxHeight","MaxHeight","this_ref","removeTab","_this$element$formatD","itemlabels","buttonContent","HideButtons","borderStyle","borderWidth","borderRadius","borderColor","commonControl","fieldAddonLeft","Rows","translatedhint","lookupurl","lookupraw","prependIconExpr","appendIconsExpr","isdisabledExpr","readOnlyEval","titleMap","enum","LookupInterpolatedExpression","PrependIconExpression","AppendIconsExpression","IsDisabledExpression","lookupurlvalue","lookupurlvalue_watch$","lookuprawvalue","WatchForChanges","items_translated","getItemValue","setItemValue","tmp","isDisabledItem","_this$element$formatD2","displayFormat","displayColumns","chks","chkbx","translatedHintText","titleexpr","bodyexpr","colorexpr","titleExpression","bodyExpression","colorExpression","textColor","soundPlaying","deviceType","deviceTypes","micStream","micLevel","devices","deviceAccessBlocked","selectedDevice","soundurlexpn","DeviceType","sourceInfos","enumerateDevices","sourceInfo","device","deviceId","SoundURL","microphoneChanged","$watchitemvalue","closeMicAnalyser","soundurl","signalIcon","playIcon","newid","stream","setupMicAnalyser","changeDevice","deviceid","javascriptNode","destination","analyser","microphone","AudioContext","createMediaStreamSource","createAnalyser","createScriptProcessor","smoothingTimeConstant","fftSize","onaudioprocess","array","frequencyBinCount","getByteFrequencyData","average","getAverageVolume","PlaySound","Stop","standardizedUrl","fetch","blob","audioBlob","blobUrl","createObjectURL","Audio","setSinkId","crossOrigin","revokeObjectURL","HidePlayButton","textvalue","dolookupexpn","lookupurlexpn","lookuprawexpn","displayexpnfunc","valueexpnfunc","item_text","item_value","item_disabled","lookupitems","arrayfield","arrayelement","keyextractor","LookupExpression","parseExpressionWithFilters","$emptyrow","_this$ParentByType","UniqueValues","ParentByType","arraykeys","chosenitems_key","lookupurl_watch$","lookupraw_watch$","tolookup","TitleMap","record","CacheLookupResult","allowsNull","$allows_null","allowCustom","AllowCustomInput","defaultAsEmpty","DefaultAsEmpty","NotFoundObj","keyup","AutoCompleteInput","_this$element$Control","_this$formatData","_this$formatData2","_this$formatData3","_this$formatData4","ccmodel","selectionLimit","showCheckAll","showUncheckAll","dynamicButtonText","dynamicItemCount","hint","allSelected","_this$ccmodel","_this$ccmodel2","_this$$refs$this$uniq","_this$$refs$this$uniq2","_this$ccmodel3","filteredItems","someSelected","_this$ccmodel4","selectAllIcon","localModel","getNameOrValue","sourceObject","_this$ccmodel6","isLastIndex","isFocused","_this$ccmodel5","$slots","onInput","DropdownMultiSelectBase","_this$element$schema","_this$element$schema$","_this$element$schema2","_this$element$schema3","_this$element$formatD3","_this$element$schema4","_this$element$schema5","_this$element$formatD4","_this$element$schema6","_this$element$schema7","_this$element$formatD5","_this$element$schema8","_this$element$schema9","SelectionLimit","ShowCheckAll","ShowUncheckAll","DynamicButtonText","DynamicItemCount","libphonenumber","customerRegionCode","phoneUtil","PhoneNumberUtil","getInstance","CustomerRegionCode","formattedvalue","syncformatted","parsedPhoneNumber","PhoneNumberFormat","E164","desc","marginLeft","temp_value","blur","pickervisible","itemvalue_aslocaldatetime","padStart","saveDate","cancelDate","dateChanged","sync_fromlocaldatetime","getFormattedDate","accountForTimezone","getTimezoneOffset","setMinutes","str","sync_fromlocaldate","datetimeregex1","datetimeregex2","datetimeregex3","itemvalue_aslocaldate","itemvalue_aslocaltime","sync_fromlocaltime","titleRenderer","defaultRenderer","_this$element3","_this$element3$format","_this$element4","_this$element5","_this$element5$schema","_this$element6","_this$element7","_this$element7$format","_this$element8","_this$element8$format","_this$element9","_this$element9$format","dateRangePicker","AllowTime","AllowFutureDate","AllowPastDate","TimePickerIncrement","tabs_items","defaultTabexpn","tabi","tabs","$$titleexpn","defaultTab","SelectedTabIndex","getcondition","$$condition","tab_body","iconPickerMixin","iconexpnfunc","item_icon","IconUrlType","IconUrlExpression","IconUrlField","getItemIcon","DefaultIcon","zIndex","getCurrentItemIcon","selected_value","form_all","anyOf","resolve_Of","chooseAnyOf","anyOf_remove","generateAllSchemaItems","anyOf_govisible","isTypeRef","sync_anyof","mdiIcons","tcIcons","filteredIcons","setFilteredIcons","iconList","take","currentItemIcon","clearable","menuProps","itemText","itemValue","itemDisabled","returnObject","prependInnerIcon","persistentHint","israw","IsRaw","synctext","editorKeyUp","keyCode","undoSnapshot","redoSnapshot","disableFormatting","roosterModel","setTextColor","setBackgroundColor","disableImagePicker","showEmojiPicker","emojiButtonPosition","addEmoji","FONT_SIZE_OPTIONS","FONT_FAMILY","HEADING_STYLES","option","focusIndex","showMenu","handleKeyPress","showActivator","positionX","positionY","supportSelection","setupSelection","focusHandler","selectCurrent","PickerDataProvider","mountPoint","pickerOptions","insertNodeCallback","dropdownElement","showingDropdown","setIsSuggestingCallback","updateToQuery","getDocument","onIsSuggestingChanged","isSuggesting","childElementCount","createDropdown","deleteDropdown","onDispose","getPositionRect","getFocusedPosition","DropdownClass","RoosterDropdownMenu","vuetify","$mount","pluginPickerSelect","$destroy","innerHTML","refreshDropdown","queryStringUpdated","selectOption","shiftHighlight","RoosterCache","filterRoosterCache","acc","curr","doc","Tags","selectedItem","quickText","RichText","ContentChangedPlugin","EditPlugin","onChange","super","onPluginEvent","eventType","getName","FORMATPAINTERCURSOR_SVG","FORMATPAINTERCURSOR_STYLE","FORMAT_PAINTER_STYLE_KEY","FormatPainterPlugin","painterFormat","applySegmentFormat","setFormatPainterCursor","_this$editor","setEditorStyle","startFormatPainter","getSegmentFormat","formatState","getFormatState","fontFamily","fontName","fontWeight","isBold","italic","isItalic","letterSpacing","strikethrough","isStrikeThrough","superOrSubScriptSequence","isSubscript","isSuperscript","underline","isUnderline","initialContent","allowSend","sendDisabled","sendOnEnter","disableQuickText","DropdownMenu","VEmojiPicker","keyMap","emojiPicker","fontFamilyOptions","headingOptions","fontSizeOptions","pickerDataProvider","formatPainterPlugin","pickerPlugin","emojiI18n","recents","smileys","people","animals","food","activities","travel","objects","symbols","flags","closeEmojiPicker","isDisposed","RoosterPickerDataProvider","legacyRoosterPlugins","changeSource","triggerCharacter","RoosterContentChangedPlugin","broadcastContent","legacyPlugins","anchor","defaultSegmentFormat","EditorAdapter","contentdiv","initialNode","HtmlSanitizer","unknownTagReplacement","sanitize","insertNode","updateCursor","replaceSelection","insertOnNewLine","_this$editor$getSelec","_this$editor$getSelec2","getSelectionRange","getScrollContainer","textContent","_this$headingOptions$","headingLevel","setFontSize","processInsertImageChange","insertimage","insertImage","sendEnter","_this$pickerDataProvi","clearTextArea","emoji","insertContent","setFontName","setHeadingLevel","formatPaint","clearFormat","toggleBold","toggleItalic","toggleUnderline","toggleStrikethrough","toggleBullet","isBullet","toggleNumbering","isNumbering","setAlignment","alignment","setIndentation","indentation","undo","redo","toggleCode","isCodeBlock","toggleQuote","isQuote","toggleBlockQuote","initiateQuickText","setIsSuggesting","which","stripHTML","setContent","removeAllChildNodes","firstChild","emojibutton","offsetTop","offsetLeft","top","newVal","toggleVisible","visible_keys","new_value","getVisibility","getFormElements","form_model","element_model","properties","uniquerowkey","getElementType","canNavigateTo","canNavigate","navigateTo","ctrl","internalNavigateTo","schema_context","getConditionContext","visible_key","vis","navigate","RoosterEditorBase","control_schema","watcher$","doctype","docname","doc1","ControlDataSchema","doc2","ActionDataSchema","generateFormWithSchema","colspan","fieldset_index","getLabel","_this$appearance","_this$appearance2","$$readonly","elementkey","hasFocus","_this$element$key","masterkey","enable_watch","logSchema","model_watch$","applyFieldDefaults","applyObjectDefaults","generateDefaultModel","schemakey","extra","propertygrid","obj","populateDefaultTemplate","openclose","cursor","controls","DefaultTemplate","checked","asjson","uniquekey","useexpressions","sync_json","jsonico","jsontgl","rawjson","enums","getDefaultModel","extractDocument","extractor","extract","$typeSchema","documentEditorTitle","handler1","oTarget","sKey","receiver","model_proxy","Proxy","marginTop","marginBottom","anySelected","newmodel","moveItemUp","moveItemDown","setSelection","copy","cut","paste","rawbuffer","selectNone","newcontrol","replaced","Public","additionalProperties","$DeployID","PrimitiveControl","saveExtractedEntity","heads","foots","tdstyle","btn_styles","select_checkbox","item_label","borderBottomWidth","borderBottomStyle","borderBottomColor","addAnother","oneofschema","typeSchema","oneOf","subelement","opt","NavigateTo","alignItems","changed","renamed","deleted","moveup","movedown","setselection","itemRenamed","oldobj","util","renameProperty","itemDeleted","dup","moveDown","newobj","reorderProperty","moveUp","itemChanged","selections","Property","navigateToModel","FindDesignerChildHsmStatement","StatementName","Arguments","lookupexpn","displayfield","valueexpn","modelAs","out","txt","current_model","breadcrumb","resetBreadcrumb","textChanged","prevmodel","breadcrumbBack","crumbs","bc","crumb_style","margin","paddingBottom","borderCollapse","debug_tab_selected","getCircularReplacer","seen","WeakSet","getJSON","closeForm","debugDialog","schemaurl","schemaraw","formurl","formvalue","hasChanged","IsValid","debug_form","formfinal","noinputexpr","arraystartexpr","destroystrategyexpr","validationExpressions","watch_model","SchemaUrlValue","SchemaRawValue","ModelUrlValue","ModelRawValue","FormUrlValue","FormRawValue","NoInputValue","FormOptions","NoInput","ArrayStartValue","ArrayStart","DestroyStrategyVaue","DestroyStrategy","FormHasChanged","mixModels","Form","DefaultModel","defaultModelexpn","ValidationExpressions","exp","ErrorMessage","publish_watch$","rawmodelvaluewatch$","Record","PublishField","setValueFunction","showForm","checkModelValue","field_key","joinFieldKey","checkFormRequired","_this$schemaForm","_this$schemaForm$$ref","schemaForm","feedback","ActionBroadcastDirection","Messages","MessageType","MessageGroup","saveSchemaForm","FormType","closeme","dataGridRefName","gridcomponent","rowClassExpr","storageFunc","showFilter","headerControls","addrowdata_todo","addrowdata_count","addrowdata_inprogress","addrowdata_promises","selectedRowKeys","selected_rows","selectedRowsData","displayMode","pageSizes","showPageSizeSelector","showInfo","showNavButtons","scrollMode","selectableexpn","pagination","columns_visible","allowExportAll","useBuiltInExport","rowDataTemp","jumpToValue","HasFilters","DisableLocalStorage","SchemaURL","schemaurl_watch$","PersistenceKey","persistencekeyexpn","columnDefEval","columnDefs_watch$","ContentDefs","contentdef","column_eval","cv","cvObj","evalExpression","SelectableExpression","init_columns_visible","pg","performGridRefresh","performGridClearSelectedRows","AdditionalRowData","InitialValue","CacheReply","schemaraw_watch$","watch_date_value$","rowclass_watch$","dataGrid","useLocalStorage","schemaurlvalue","SelectedRows","SelectedRowsAsArray","HasSelectedRows","GridColumns","_this$controlData$Hea","EnableFilter","ShowJumpto","performGridReset","getLeftGridHeaderControls","ClearSelectedRows","getGridHeaderControls","HideDefaultGridControls","HeaderOptions","HideRefreshIcon","RefreshClicked","DisableGridMenu","ExportData","RestoreDefaults","togglePagination","getGridMenuColumnList","agColumnDefs","coldefs","checkboxVisible","RowModelType","headerCheckboxSelectionFilteredOnly","showDisabledCheckboxes","ShowDisabledCheckboxes","cd","calcCellValue","sortComparitor","colSortComparator","CellClassExpression","cellclassexpr","SortAndFilterTemplate","sortandfilterfunc","numberSortComparator","ExportTemplate","exportfunc","getQuickFilterText","SearchOnlyVisibleColumns","dataType","ActionOnlyColumn","autoHeight","AutoHeight","cellFilterFunc","CellFilterFunc","nullchecks","Align","cellStyle","textAlign","GridHeaderControls","LeftGridHeaderControls","LoadSchema","onSortChanged","RefreshActions","isRowSelectable","rowNode","resolveAllAdditionalRowData","_this$controlData$Hea2","_this$controlData$Hea3","RefreshIconActions","RefreshCells","_this$gridApi","deselectAll","SetSelectedRows","selectedArray","shouldClearSelection","to_select_rows","to_select_keys","KeyFields","to_find","forEachNode","isSelected","setSelected","str_key","SizeColumnsToContent","setColumnFilterModel","onFilterChanged","ResetAllColumnFilters","setFilterModel","NotifyDataChange","exportDataAsCsv","allColumns","processCellCallback","_params$column$colDef","_params$column$colDef2","_params$node$data$exp","columnFilterChanged","getFilterModel","valueA","valueB","num1","toggleScrollMode","setColumnVisible","override","RowClassExpression","getGridMenuContent","toggleFilter","refreshDataGrid","resolver","todo","resolveAdditionalRowData","_mergeJSXProps2","EnableTimerWatch","date_value","_this$columnDefs","statestr","stateObj","applyColumnState","columnState","applyOrder","setColumnGroupState","columnGroupState","SizeColumnnsToContent","autoSizeColumn","sortstr","sortObj","sortDef","DefaultSort","filterObj","OnFirstDataRendered","FirstRow","firstRow","LastRow","lastRow","rowSelectionChanged","redrawRows","onSaveGridSortState","getColumnState","onSaveGridColumnState","getColumnGroupState","internalRefresh","typeEval","textEval","placeholderEval","isDisabledEval","publishField","inputType","inputStyles","TextWithChange","OnChangeActions","BlurActions","OnClearActions","ShowClearIcon","change","onClear","textrenderer","fontSizeEval","wrapTextEval","exportCallbacks","asyncUrl","asyncText","asyncTooltip","asyncColor","AsyncLookup","AsyncOptions","asyncUrlComputed","lookupText","FontSize","wrapText","WrapText","Disabled","textStyles","resolveFontSize","thelink","defaultEval","classEval","Default","SwitchState","OnLabel","OffLabel","OnColor","SetSwitchState","TabControls","todisplayexpn","overflowX","bodystyles","Tab","ToggleState","Class","SetToggleState","leaf","nodeTemplate","sourceUrlEval","sourceRawInterpolatedEval","expandedNodeExpressionEval","selectedNodeExpressionEval","selectedNodeData","expandedNodeData","Node","sourceUrl","sourceRawInterpolated","expandedNodeExpression","ExpandedNodeExpression","openNodes","findExpandedNodes","selectedNode","SelectedNodeExpressionEval","findSelectedNode","nodes","ChildArrayName","expandedNodes","findExpandedNodesRecursive","findAncestorNodes","ancestorNodes","findAncestorNodesRecursive","childNode","treeView","activatable","hoverable","transition","openOnClick","itemKey","itemChildren","TreeNodeTemplate","popupMenuPlacementEval","popupMenuBackgroundColorEval","popupMenuFontColorEval","popupMenuWidthEval","popupMenuMinHeightEval","popupMenuMaxHeightEval","popupMenuBodyPaddingEval","menushowing","popupMenuPlacement","PopupMenuPlacement","popupMenuBackgroundColor","PopupMenuBackgroundColor","popupMenuFontColor","PopupMenuFontColor","popupMenuWidth","PopupMenuWidth","popupMenuMinHeight","PopupMenuMinHeight","popupMenuMaxHeight","PopupMenuMaxHeight","popupMenuBodyPadding","PopupMenuBodyPadding","_this$controlData$Pop","_this$controlData$Pop2","_this$controlData$Pop6","_this$controlData$Pop7","_this$controlData$Pop8","_this$controlData$Pop9","menuContent","_this$controlData$Pop3","_this$controlData$Pop4","_this$controlData$Pop5","PopupMenuTitle","menuStateChange","actions_compiled","MessageName","invokeSystemActions","invokeActions","Calendar","paddingTop","theWidth","widthEval","isactiveEval","cal","listCardTemplate","initialSelectedCardEval","selectCardOnClick","clickActions","labelEval","middlePayloadEval","rightPayloadEval","leftIconEval","rightIconEval","listHeightUnitEval","listHeightEval","paddingEval","lineHeightEval","roundCardsEval","hoverColorEval","shadowColorEval","hovering","middlePayload","MiddlePayload","rightPayload","RightPayload","leftIcon","LeftIcon","rightIcon","RightIcon","Padding","hoverColor","HoverColor","mouseEnter","mouseLeave","cardTextContent","onClick","actAsDropdownEval","selectCardOnClickEval","selectedIndex","getSourceUrl","InitialSelectedCardExpression","actAsDropdown","ActAsDropdown","SelectCardOnClick","selectedSourceData","onSelected","ListCardTemplate","dashboardCards","reportCards","selectedCardId","imageMap","Bar","BarWithLine","Donut","Numeric","Table","allCards","dCards","DashboardCards","getThumbnails","ReportCards","returnControl","highlightCard","card","_selectedCard","selectedCard","UserControl","widgetDefs","thumbnail","Image","BlankCard","getCardStyle","ditems","ritems","_utils$global_variabl","IsSystem","CreatedBy","fullname","vueCheetahGrid","userTheme","frozenRowsBgColor","defaultBgColor","frozenRowCount","sort_expn","updateTable","tableHeight","getElementById","footerProps","itemsPerPageOptions","optionsLength","centervalueformatter","globals","seriesTotals","centerhole","CenterHoleSize","centerhole_fn","PieSliceTextFontSize","rgx","centertext","CenterText","PieSliceText","customtimes","customcounts","custompercents","customtooltips","_this$model$values","legendMaxSize","LegendMaxSize","dropShadow","enabledOnSeries","animations","animateGradually","dynamicAnimation","speed","LegendWidth","maxchars","EnableTooltips","pie","donut","background","DisplayCenterValue","showAlways","publishFieldEval","BootstrapURL","_utils$cache$schema_d","schemaAge","schema_date","cacheExpiry","setSchemaBootstrap","global","SetAllDocuments","Records","IsReady","baseStackMixin","master_key","container_list","feedbackItems","isFullScreen","displayFeedbackEval","directionEval","formSizeEval","verticalAlignChildrenEval","horizontalAlignChildrenEval","fullScreenCapableEval","breadCrumbText","breadcrumbtext","feedbackItemsComputed","messageType","displayFeedback","_utils$evaluate","_this$Parent","_this$controlData$Dis","_this$Parent2","DisplayFeedback","Direction","formSize","FormSize","verticalAlignChildren","VerticalAlignChildren","horizontalAlignChildren","HorizontalAlignChildren","fullScreenCapable","FullScreenCapable","BreadCrumb","performDisplayFeedback","performFullScreen","performReplaceContent","performRefresh","breadcrumbtextexpn","Action","messageGroup","messagegroup","messages","finalArray","messagetype","webkitRequestFullScreen","navToBreadCrumb","tempItems","generateItemsFromModel","items_id","item_index","generateBreadCrumbs","bctext","BaseStackMixin","horizontalStackClasses","flexShrink","paddingLeft","getStyleHints","items_style","gap","showContextMenu","clientX","clientY","debug_reveal","refreshchildren","controlURLvalue","openForExternalEdit","controlCustomerId","openDocumentStandAlone","asbase","ControlGroupName","usercontrols","groupitems","stackClasses","isVertical","isHorizontal","overflowSetting","$sourcerawwatch","$sourceurlwatch","_action$ActionData$Me","messages_expn","modelindex","headerContent","customClasses","CustomClasses","resolveCustomClasses","bodyStyle","display_list","is_vstack_parent","IsBase","showbase","actionControlData","_action$ActionData","_action$ActionData2","sourceIndex","findTextInModel","findText","casesensitive","occurrence","async_url","async_text","async_tooltip","cssClasses","_utils$evaluate$split","markdownHtml","Markdown","valueEval","md","MarkdownIt","LookupText","selectedvalueexpr","SelectedValue","selectedValue","fields","FieldMappings","SourceItem","SourceIndex","startKeyList","initialKeyValue","SortDirection","AdditionalKeyFields","model_all","skipFirst","sortCol","descending","DisableSkipFirst","totalCount","successCallback","purgeInfiniteCache","titletext","ActionExpression","StateName","EventName","NextStatePath","suffix","highlight","classNames","SelectedNode","hastype","hasnotype","SelectNode","visctl","selectednode","tree_width","findOccurrence","findCaseSensitive","sourceurl_literal","history","WidthResizeBarVisible","ExpandToSelected","ExpandToNode","findNodePath","expandto","SetModel","splitterMouseDown","splitterMouseMove","splitterMouseUp","initialX","initialWidth","setFindText","resizer","resizeWidth","historybtn","alignSelf","navigateBack","tab_state","selected_tab_expr","selectionHistory","ActiveTabIndex","ListenForTabEvents","openTabAction","performRenameTab","closeTabAction","SelectedTab","changeTab","oldValue","$route","oldVal","UseRouter","RoutingName","matches","fullPath","matchAll","$router","SetActiveTabIndex","routingIndex","CloseActions","go","newIndex","TabTitle","tabtitle","RenameActions","varsobj","TabID","tabID","tabTitle","OnActivateActions","OnDeactivateActions","OpenActions","closeTab","useDark","DarkTheme","bgcolor","fgcolor","BackgroundColor","ForegroundColor","closeicon","tt","ShowCloseIcon","Orientation","dynamictabs","tabRenderCount","renderedTabs","DynamicTabsControl","dynamictabsexpn","activeTabIndex","doChangeSelectedTab","onChangeTagIndex","getItemByIndex","updateTabRenderStatus","handleFinishedRender","OnDeActivateActions","vertical","TransitionDirection","TransitionReversed","menutitle","selected_data","selected_values","contextMenuItem","performSelectMenuItem","MenuTitle","SelectedId","AllItems","getFlatModel","labelForceRefresh","menuTitleBackgroundColor","titlebgcolorexpn","MenuTitleBackgroundColor","menuItemsFiltered","filterChildren","MenuItemName","menuname","SelectMenuActions","finalmodel","dest","$displayexpn","defaultIndex","findItem","selectedvalues","_this$selected_data$i","_this$selected_data$i2","_this$selected_data","_this$selected_data$i3","_this$selected_data$i4","SelectedItem","findBadges","badgelist","ci","SelectItem","menuItemRefresh","getMenuNameAndPath","MenuName","controlOwnerId","shared","OpenEditorForExternalEdit","OwnerId","tv","contextMenu","$ModuleMetaData","ModuleName","designmodel","_k","DesignModel","selected$","SelectedModel","selectedStep$","current_step","Steps","_controlData$PreTitle","_controlData$HeaderCo","baseDesignerMixin","buttonBase","hasNonEmptyValue","iconClass","FlipVertically","iconStyles","GlowColor","Rotation","containerStyles","CaptionFontSize","Caption","btnstyle","boxSizing","choices","formcontrol","controlItems","picker","pickertarget","selectFormElement","addControl","confirmAddControl","cancelAddControl","fieldSchema","pickerInput","addTab","tabItem","$forceUpdate","deleteTab","addbtn","form_item","AllSchemaElements","childform","subkey","tab_style","float","borderTop","borderLeft","borderRight","addtab","selectSchema","selectModel","selectForm","resolved","firstrow","selectedmodel$","addContent","addContentDef","cell","addcdef","even","maxpct","pickercdef","selectColumn","deleteColumn","schema_","getColumnDefTitle","headercontrols","sample","designer_class","control_icons","generatePicker","defaultMixin","getMenus","findParentMenu","targetname","addPlusButton","lastchild","lastindex","menupath","next_index","borderBottom","addChildMenuItem","getPreviousTopMenu","childMenus","getNextTopMenu","getPreviousChildMenu","menuPath","getNextChildMenu","findParent","targetstate","States","ChildStates","jumpToMenu","ExternalNavigate","icontitle","anytabs","selectedTab","general_tab_style","activetab","deleteEnabled","ChildMenuType","RefreshChildMenus","ChildMenuName","ChildMenuURL","PopupMenuName","menu1","menu2","Menu1","Menu2","textDecoration","lastmenu","nextmenu","deleteicon","swapMenuIndexes","deleteMenu","paddingRight","Role","lastindex_top","marginRight","allmenus","tablestyle","getHeaderControls","DynamicAction","getDynamicAction","publicChkbx","nameInput","savenew","navup","dummyData","dummydata","dummykey","dummytext","dummychildren","ItemKey","ItemText","ItemChildren","ItemDisabled","sub_items","UseFlexRow","parentState","state_style","flexWrap","alignContent","font_sizes","title_style","drill","selectState","topstate","current_state","navUp","backgroundSize","titleBar","Tiles","tile","TitleBar","mini","items_top","items_bot","listitem","bot_start_index","tryParseInt","bufferValue","BufferValueExpression","Indeterminate","Query","Reverse","Rounded","Stream","Striped","gridrole_watch$","Columns","createDefaultColumns","Features","createDefaultFeatures","role","ListSource","FieldName","HeaderText","Advanced","InitiallyVisible","IconName","sec","Splitpanes","Pane","addPane","Panes","AllowDoubleClick","pane","resizeEvent","InitialSize","panes","btn2","MinSize","MaxSize","EnablePushAdjacent","ShowFirstSplitter","tabstyle","borderTopColor","borderLeftColor","borderRightColor","borderTopStyle","borderLeftStyle","borderRightStyle","borderTopWidth","borderLeftWidth","borderRightWidth","ExternalNavigateToName","open_title","browse","nextStep","previousStep","editStep","step","deleteStep","FooterControls","links","addStep","headerstyle","backgroundRepeat","borderTopLeftRadius","borderTopRightRadius","breadcrumbs","ShowBreadcrumb","viewjson","viewdsgn","sel_schemaurl","sel_schemaraw","sel_modelurl","sel_modelvalue","sel_model","sel_schema","selectedmodel","originalname","externalactions","updatemodelactions","reset_breadcrumb","can_autoreplace","forceOverwrite","modify_UserName","dynamicControl","cData","designer_width","temp_rawjson","rawjson_ischanged","save_in_progress","doc_revisions","doc_changes","max_months_history","edits","editing_since","js_enabled","js_open","js_code","hsm_errors_open","hsm_errors","valstr","oldvalstr","SelectedSchema","RefreshSelected","timeoutReference","refreshTracking","clearTracking","hasNameChanged","Namespace","Keyspace","modify_DateTime","$Modify_DateTime","modelHasChanged","fullName","nameHasChanged","loadDocRevisions","modelDataHasChanged","readModifyUserName","modelData_watch$","MenuItemType","$Modify_UserID","FullName","syncSchemaName","newname","newns","cleanModel","_rev","Rev","old_id","old_rev","autoReplace","rev","selectNodeInternal","getDynamicHelperControl","dynamicAction","ExternalActions","OpenExternalActions","navigateUp","navigateBreadcrumb","togglerawjson","rawjsonchanged","commitrawjson","revertrawjson","hsmname","ObjectId","db","moddatetime","$doctype","document_refid","since","revision","js_code_changed","findNode","repeat","indent","hsmNavigateTo","getHsmErrors","jump","refreshJSCode","toggleJSOpen","getJavascriptEditor","deployoptions","Deployments","dep","styleLink","deployID","styleID","deploytitle","viewJsonChkbx","viewDesgnChkbx","VarByName","readOnlyText","header2","nameLabel","autoreplace","audit_history","saveUserControl","saveUserControlAsNew","verifyHsm","saveMenuItem","saveMenuItemAsNew","saveSchema","saveSchemaAsNew","saveKeyspace","saveKeyspaceAsNew","loadAuditHistoryVersion","revision_list","loadRevision","commitjson","loadAuditHistory","designer","splitter","bcitems","editing","outofdate","jseditor","hsmerrors","thisrev","thatrev","js_refresh","doneWithTop","conversation","topDateText","messageCount","renderedCount","isLoading","scrollPosition","dataTypeEval","dataURLEval","dataRawEval","rowsPerFetchEval","deconsolidateMessagesEval","messageItemControlTemplateEval","namelookupurl_expn","MessageProperties","NameLookupURL","key_expn","name_expn","text_expn","date_expn","direction_expn","icon_color_expn","IconColor","sendername_expn","SenderName","defaultVal","dataURL","dataRaw","deconsolidateMessages","DeconsolidateMessages","messageItemControlTemplate","MessageItemControlTemplate","loadInitialMessages","getItems","addMessageLines","newMessages","baseScopedContext","getBaseScopedContext","propertiesTemplate","lookupres","messageProperties","newMessage","nameLookupURL","iconColor","senderName","dateString","timeString","originalMessage","isDivider","isNotesAndDisps","consolidateMessages","addDividers","resolveMessageNames","thisMessage","nextMessage","firstMessage","firstMessageKey","timestamp","firstDateDivider","lastDivider","messageIndex","isSameDay","isLaterDay","newDateString","dividerMessage","nextMsgIndex","interactionid","nd_data","lastMessage","scrollBottom","scrollArea","scrollTop","setDateDisplay","messagesContainer","dateDividers","querySelectorAll","currentDivider","parentElement","innerText","handleFinishMsgRender","AddLine","itemIndex","NotesAndDispsControlTemplate","msgIndex","CareConversationView","Style","Dashboard","DashLayout","DashItem","old_title","tb_icon","dialog_width","isEditingTitle","layout","toolbar_icon","removeThis","editTitle","saveTitle","$isEditing","cancelEditTitle","ResponsiveDash","AdvancedReports","AdvancedHistory","iseditable","dashboard","selected_dashboard","numberOfCols","compact","istemplate","templateid","newproperties","dash_tabs","dash_loading","isEditableComputed","EditableExpression","isTemplateComputed","IsTemplate","RefreshFrequency","TemplateId","theaction","lastSelectedDashboard","_this$dash_tabs$","templateId","Layout","AllowPersonalDashboards","DefaultTemplates","Order","TemplateID","toggleEditing","locked","SaveActions","deleteDashboard","_this$dash_tabs$this$","addWidget","cardDefinition","blocked","newItem","FilterId","_c$data","responseControl","_c$data2","DashboardPrompt","widgetDef","DashboardData","ReportID","ReportType","_this$dash_tabs$this$2","_this$dash_tabs$this$3","_this$dash_tabs$this$4","_this$dash_tabs$this$5","_this$dash_tabs$this$6","_this$dash_tabs$this$7","_this$dash_tabs$this$9","_this$dash_tabs$this$10","window_body","saveTabTitle","cancelEditTabTitle","editTabTitle","BrokenImage","dashboardEditButtons","dashboardEditTitleAndSave","saveTab","cancelTab","dashboardListItems","_this$dash_tabs$this$8","allowTimeRenderer","timePickerIncrementRenderer","isDisabledRenderer","placeholderRenderer","allowFutureDateRenderer","publishedModel","ApplyActions","ClearActions","SetTimePicker","ToggleIsTimePicker","FutureDateLimit","PastDateLimit","ShowNotImplemented","umlEval","uml","selectedItemId","umls","Umls","refreshDiagram","doNotStandardizeUrl","topsvg","getElementsByClassName","bottomsvg","restore","onSelect","topsvgdiv","bottomsvgdiv","restoreHeightWidth","restoreTop","originalHeightWidth","zoomFactor","originalTop","amt","scaleHeightWidth","scaleTop","serviceWorkerRegistration","hasPermission","notifyUniqeIdCounter","desktopNotifyActions","closedNotifyCache","performDisplayDesktopNotify","performCloseDesktopNotify","serviceWorker","messageReceived","requestPermission","bodyexpn","firstActionTitle","firstActionTitleexpn","secondActionTitle","secondActionTitleexpn","firstActionIcon","firstActionIconexpn","secondActionIcon","secondActionIconexpn","thecontext","thecontextexpn","notifyName","notifyUniqeId","contextMessage","requireInteraction","desktopServiceId","FocusOnClick","showNotification","argv","getNotifications","notifications","notification","Timeout","DesktopNotifyId","desktopNotifyName","desktopNotifyId","notifyData","actionInfo","FirstActionActions","SecondActionActions","ports","postMessage","windowId","sourceurlexpn","sourcerawexpn","selectedvalueexpn","labelexpn","AutoSource","publishexpn","selectedvalue","FireActionsInitially","i0","itemv","actionData","getItemIndex","nameFieldEval","valueFieldEval","selectionLimitEval","showCheckAllEval","showUncheckAllEval","dynamicButtonTextEval","dynamicItemCountEval","_this$model","_this$model2","_this$model3","_this$controlData$Fie","_this$controlData2$Fi","SelectActions","_this$controlData3","controldataexpr","internalobjectId","actiondataexpr","controldatavalue","paramData","objectId","_this$controldatavalu","ContainerType","selected_key","allkeys","icon_fn","iconTooltip_fn","iconColor_fn","watch_source$","IconExpression","IconTooltipExpression","IconColorExpression","autoExpandAll","AutoExpandAll","autoExpandAll_fn","lazyLoadChildren","LazyLoadChildren","lazyLoadChildren_fn","saveAllKeys","itemkey","itemchildren","updateAll","SetChildItems","added_children","ExpandAll","CollapseAll","OnLazyLoadActions","Items","IconSize","PrependItemControls","prepend","loadChildren","openAll","getItemText","contentClass","uniqueValues","filterChangedCallback","doesFilterPass","isFilterActive","getModel","setModel","AsyncFunction","CellButton","$$Condition","$$Icon","$$Color","$$Tooltip","rowMenuClick","menuOpenClose","OnMenuOpen","State","getEvaluationResults","Menu","Separator","$$displayexpn","menuicon","$$enabledexpn","$$iconexpn","$$iconcolorexpn","iconcolor","rowLinkClick","buttons","CommandButtons","DropdownFilter","column_defs_ready","customColumn","serverDataSource","runUserQuery","er","fail","_this$controlData$Gro","_this$controlData$Gro2","EnableDynamicColumns","DynamicColumns","dynamicColumns","columnTemplates","ColumnTemplates","DataSourceFunction","dsFunc","GroupingOptions","PanelShowExpression","panelshow_expn","ColumnsExpandedExpression","columnsexpanded_expn","prepareColumnDefs","dynamicColumnsValue","rowModelType","searchTextReader","QuckSearchText","debounced","getIsOpenGroupOptionCallback","_this$controlData$Gro3","RememberOpenedGroups","onRowGroupOpened","_this$controlData$Gro4","getGroupingOption","compiled_expn","defaultValue","ret","RowGroup","EnableRowGroup","rowgroup_expn","generateColumnDef","dc","default_visible","caption","column_defs","groupByDefault","_cd$UniqueValues","_cd$UniqueValues2","field_extractor","ItemModelName","def","_colDef$CommandButton","colData","colActionData","equals","Lookup","displayExpr","valueExpr","displayfunc","valuefunc","dataSourceExpr","refData","dataSourceUrl","CacheResults","NotFoundText","notfoundexpn","sorttemplate_expn","HeaderType","filterOptions","FilterOptions","CompareChoices","getUniqueColValuesFunc","RefreshValuesOnOpen","LookupInterpolatedArray","Params","columnKeys","columnVis","getAllDisplayedColumns","gridSize","drawGrid","defaultLink","$joint","shapes","standard","Link","linkPinning","validateConnection","$options","graph","dia","Graph","cellNamespace","joint","paper","Paper","el","cellViewNamespace","interactive","toHex","rgbToHex","G","empty_tree","arghandler","PropertyValue","JointPaper","next_id","selected_menu","closing_tab","internal_apis","properties_schema","properties_object","project_references","ProjectName","projectnameexpn","toolBar","mainTabbedArea","tab_titles","$type","setupGraph","Objects","CodeBlock","onCodeBlockChange","projectTree","References","Classes","ClassName","members","Members","Locals","Enumerable","OrderBy","ToArray","topArea","mainArea","rightTopArea","rightBottomArea","recentsMenu","fileMenu","topMenuBar","scanAllMembers","loadProjectReferences","ProjectRefs","proj","saveSchemaFromMethod","blank_pointerdown","unhighlight","cellView","attributes","Method","ImplementationKey","getWrapperSchema","getWrapperObject","getModelForIcon","cell_pointerup","cell_pointerdblclick","API","ownerid","projectName","$schema","arg","ArgType","DefaultValue","Choices","LookupAPI","LookupAPIDisplayField","LookupAPIValueField","cell_pointerdown","loadFlowchart","item_ids","Item","m1","Rectangle","Left","Top","Right","Bottom","attr","ObjectColor","rx","ry","textWrap","addTo","fillOpacity","Links","graph_item","TargetID","appendLabel","distance","keepGradient","ensureLegibility","SourceVar","Criteria","getFlowchartObjects","cells","getCells","LineWidth","Trace","Break","getLinksForId","targetCell","getCell","prettyHtml","urlLeftEval","urlRightEval","textLeftEval","textRightEval","leftData","rightData","LeftType","urlLeft","RightType","urlRight","LeftUrl","RightUrl","textLeft","LeftText","textRight","RightText","oldString","TextType","newString","diffs","diff","Diff2Html","outputFormat","stack","$watch_source","$$DisplayExpression","_this","gapi","auth2","attachClickHandler","signinBtn","checkStatusOnInitEval","isSignedInToGoogle","userGoogleProfile","renderParams","checkStatusOnInit","CheckStatusOnInit","GoogleEmail","Profile","getEmail","GoogleId","getId","GoogleName","GoogleImage","getImageUrl","GoogleToken","SignedInToGoogle","GoogleAuthArgs","startGoogleApp","cookiepolicy","fetch_basic_profile","param","checkGoogleLoginState","shouldRunActions","isSignedIn","currentUser","authResponse","getAuthResponse","idToken","profile","getBasicProfile","signOut","RunActions","RemoveGoogleAppPermissions","removeGoogleAppPermissions","on_success","googleUser","on_failure","on_current_user","OnGoogleAuthSuccess","OnGoogleAuthFail","google","accounts","ux_mode","renderButton","CredentialResponse","credential","subscribedSession","heartBeatTimer","undeliveredBuffer","registerAndStartBound","stopChannelHeartbeatBound","handleChannelEventBound","handleUnsubscribeEventBound","registerAndStart","stopChannelHeartbeat","handleChannelEvent","unsubscribeForAllEventsHandler","registerChannel","startChannelHeartbeat","channelName","webSocket","Subscribe","reSubscribeToAllSessions","subscribeSuccessful","subscribeForSessionEvents","uniqueId","callbackFunction","callbacks","eventNamesList","eventName","undeliveredBuffer_AttemptDelivery","unsubscribeForSessionEvents","fromUndeliveredBuffer","subscriberFound","cbs","SessionId","undeliveredBuffer_QueueEvent","undeliveredBuffer_RemoveExpired","expireTime","setSeconds","currentDate","getHeartBeatSessionId","heartBeatReceived","sendChannelHeartbeat","post","eventTime","EventTime","rtt","parentHSM","_this$controlData$Con","timeoutexpn","state_references","event_handlers","addStateReference","fullpath","EventHandlers","NextStateData","nextstatedataexpn","GetNextState","NextStatePathOverride","ExternalTransition","SetNextState","nextstatepath","$timeoutfunc","clearSenderEvents","handleEvent","getEventHandler","eventname","EnterActions","timeoutvalue","sendEvent","ExitActions","states_components","FinalState","componentchildren","child_references","currentStatePath","controlurlexpr","uselocalscope","dynamicData","inputcontext","controlURL","payload","controlEvents","controlDataValue","OnControlLoaded","OpenDocumentStandAlone","_this$headers","customerid","$listeners","eventQueue","queueProcessing","stateProcessing","currentHandler","sessionListeners","performHSMEvent","performHSMSetNextState","performHSMStartServerEventListener","performHSMStopServerEventListener","performHSMAddChildHSM","performHSMRemoveChildHSM","addChildReference","registerHSM","removeHSM","removeChildReference","unsubcribeFromAllEvents","CurrentState","CurrentStatePath","initialStatePath","initialStateData","enterState","InitialState","SessionID","eventCoordinator","onServerEventRecieved","Reason","initialstatepath","initialstatedata","HSM","eventData","GetAbsoluteState","FindLCA","fromStatePath","toStatePath","fromParts","toParts","newStatePath","external","lca_point","currentState","lca","currParts","Exit","newParts","Enter","handleQueuedEvents","senderpath","External","SenderPath","pullItemFromQueue","event_setnextstate","stateParts","nxtPath","LastEventReceived","EventActions","stateOverride","NextStateData_expn","_this$controlData$Con2","_this$controlData$Con3","ControlContainer","children_components","newControl","DebugVisibility","CurrentStateName","ChildHSMs","_this$controlData$Con4","_this$controlData$Con5","_this$controlData$Con6","cc","_mergeJSXProps3","wordWrapEval","Editor","Readonly","wordWrap","WordWrap","htmlOptions","menubar","elementpath","browser_spellcheck","branding","statusbar","image_advtab","paste_data_images","paste_enable_default_filters","automatic_uploads","urlconverter_callback","on_save","img","getContext","drawImage","images_upload_handler","blobInfo","imageUrl","base64","forced_root_block","wordBreak","OnInitActions","alternatingRowColor","PaddingTop","PaddingBottom","PaddingLeft","PaddingRight","alternatingRowColorEval","AlternatingRowColor","headerRows","Header","iconColorEval","iconGlowColorEval","captionEval","captionFontSizeEval","rotationEval","asyncIcon","asyncCaption","asyncRotation","asyncLookup","iconGlowColor","captionFontSize","rotation","BackgroundSize","textString","getIconStyles","getIconClass","StackSize","_this$controlData$Cap","_this$controlData$Cap2","fullScreen","warningTimer","logoutTimer","activityTimer","timeoutMinutes","agentOptIn","mouseEventSet","idleResetAction","idleEnableAction","optIn","turnIdleTimeoutOnOrOff","enable","timeoutOverride","cancelTimersAndMouseHandler","handleMouseMove","fullScreenChange","fullscreenElement","Url","Src","srcexpn","objectFit","ObjectFit","image","rowsPerFetch","RowsPerFetch","whereToAdd","handleScroll","scrollAreaRef","loadMoreMessages","ScrollBottom","channeltype","CareInfiniteConversationView","count_expn","counter","Delay","StartImmediately","Start","RunActionsOnLoad","scopeEval","Scope","GlobalJavascript","GChart","titleBacker","colorarray","temp","ChartWidth","height_fn","ChartHeight","fontname_fn","FontName","fontsize_fn","backgroundcolor","backgroundcolor_fn","titlePosition","titlePlacement","isHtml","axisTitlesPosition","AxisTitlesPosition","TitleTextStyle","titleTextStyle","bold","Bold","Italic","Legend","Position","ChartArea","chartArea","Series","LabelInLegend","labelInLegend","lineWidth","VisibleInLegend","visibleInLegend","targetAxisIndex","HAxis","hAxis","BaselineColor","baselineColor","Format","haxis_format_fn","GridLines","gridLines","TextPosition","textPosition","TextStyle","textStyle","Ticks","ticks","VAxes","VAxis","vAxes","configuredVAxis","AlreadyConfigured","configureVAxis","PassedSeries","SetColors","updateData","SetTitle","vconfig","MatchTitle","matchTitle","vaxis_format_fn","actualTicks","SetVAxis","ConfigureVAxis","SetVAxes","SetSeries","TitlePosition","SetTitlePosition","SetTitleTextStyle","SetAxisTitlesPosition","SetChartArea","SetLegend","addDates","dateCols","sizeStyles","checkForAccess","HAS_ACCESS","WAITING","HAS_DISMISSED","HAS_BLOCKED","OTHER_ERROR","deviceStatus","deviceMessage","onSuccessActions","OnSuccessActions","port_defs_mediumfont","portBody","magnet","markup","tagName","selector","className","port_defs_smallfont","DEF_W","DEF_H","DEF_X_SPACE","DEF_Y_SPACE","ref_name","show_flypaper","fly_x","fly_y","projectID","file_menu_is_open","environment","ToolPalette","greeting_docs","menu_docs","flow_icons","greetings","FlowChartID","IDexpn","EnvironmentID","envIDexpn","ReadOnlyExpression","readonlyexpn","InitialFlowChartID","toolPalette","setupPalette","saveAs","viewMenu","flypaper","pointerEvent","env","tools","tooldefinitions","tool","TypeName","prepareTool","$active_watches","highlighters","mask","findView","pageX","pageY","strokeDasharray","onSelectionMouseMove","onSelectionMouseUp","findModelsInArea","elementView","onMultiselectMouseMove","delta","translate","onMultiselectMouseUp","watchAnyLabel","onMouseMove","onMouseUp","flyShape","dropShape","palette_pointerdown","flyGraph","pos","addCell","Ports","PortGroup","setupGenericWidgetPorts","removeButton","linkTools","Remove","targetArrowheadTool","TargetArrowhead","focusOpacity","linktoolsView","ToolsView","e_boundaryTool","elementTools","Boundary","e_removeButton","elementtoolsView","e_boundaryTool2","e_removeButton2","e_enqueueButton","Button","NavigateQueueActions","enqueuetoolsView","linkView","addTools","removeTools","loadFlowchart2","graph_palette","paper_palette","toolName","addGenericWidget","linkItems","src_port","addLink","idlookup","lookupid","IdField","Condition_Func","ArrayField_Func","ArrayElementCondition_Func","ArrayElementIdField","ArrayElementLabelExpression_Func","ArrayField","ArrayElementLabelExpression","ArrayElementCondition","portList","addPorts","typeName","Shape","LabelField","createMenu","HeaderedRectangle","Options","createMenuPorts","port_array","OptionNumber","x_add","OptionType","q1","addEnqueue","EnqueueData","SubMenuData","MenuTemplateName","m2","addMenu","watchMenu","portids","removePort","watchGreeting","watchEnqueue","QueueName","_m1$attributes$ports","CheckLoggedIn","CheckAgentAvailable","updateDynamicPort","_m1$attributes$ports2","updateDynamicListPorts","_m1$attributes$ports3","w1","router","startDirection","cellViewS","magnetS","cellViewT","magnetT","saveGreeting","dialog_output","toJSON","getElements","original","finalModel","isItemSelected","isAvailable","itemSelected","lefticoncomputed","righttextcomputed","righticon","lefticon","typex","cssclass","righttext","hovercolor","righticoncomputed","textcomputed","tooltipcomputed","typecomputed","valuecomputed","colorcomputed","cssclasscomputed","hovercolorcomputed","MultiSelectListItem","selectedValues","selectedTypes","numberOfAllowedTypes","thetypekey","sourceItems","mappedItems","SelectedItems","SelectedTypes","ClearSelectedItems","clearSelectedItems","selectedIndexValues","numberOfAllowedTypesComputed","AllowedTypes","thetypekeyComputed","TypeKey","mapItems","setSelectedItem","itemKeys","propertyToMatch","sourceItem","runAction","deselect","existingItem","removeType","typeSelected","inputObject","rtnVal","isTypeSelected","shouldRemoveType","IsItemSelected","IsTypeSelected","SetSelectedItem","myroot","selectPopupMenuItem","popupShown","tooltipexpn","runMenuActions","itemClicked","togglePopupMenu","menuActivator","childItems","ChildData","Divider","ItemClass","selected_popupitem","tabicon","selected_tab_top","selected_tab_bot","dense_icons","changeTabBot","changeTabTop","bgcolorexpn","bgimageexpn","BackgroundImage","menuItem","old_tab","subbodyexpr","SubBody","subBody","dismissible","Dismissible","notificationControls","menu_data","MenuSourceType","menusourceexpn","MenuJson","menuurlexpn","MenuURL","menuClick","buffervalue_fn","gridName","totalRows","rowdata","seachText","viewname","defaultRowsPerPage","selectableKey","column_visibility","arrayToObject","page","groupBy","groupDesc","mustSort","multiSort","RTEventSource","rteventsource_func","listNameExpn","filtersexpn","Dense","SelectableKey","DefaultRowsPerPage","datawatch$","filters_watch$","rtEvents","RemoveNamedListForRealTime","generateHeaders","listName","serverProperties","AdditionalProperties","uniq","showSelect","singleSelect","updateSearchFilter","actionButtons","RTData","Views","Total","getDataFromApi","listname_watch$","GetNamedListForRealTime","Response","ViewHash","rawdata","updateOptions","sortBy","sortDesc","tosave","fieldName","clickItem","Column","selectedItemsChanged","ClearSelection","isSelectable","active_name","active_args","rtData","rteventsourceexpn","widgetName","widgetnameexpn","ViewName","view","ViewData","ViewIsReady","WidgetName","RemoveView","updateRegistration","AddView","reCaptchaUserResponse","initReCaptcha","grecaptcha","sitekey","RecaptchaSiteKey","UserResponse","preRenderDone","enableFormatting","showSendButton","enableImagePicker","enableQuickText","doSend","maxHeightEval","enableFormattingEval","showSendButtonEval","EnableFormatting","EnableImagePicker","EnableQuickText","ShowSendButton","sendDisabledEval","SendIsDisabled","HtmlRaw","plain","setup","SendActions","PlainText","ClearRooster","InsertText","SAMLPopupManger","childwindow","callbackName","closedWindowChecker","promiseResolve","promiseReject","issuer","SAMLPopupCounter","urlEncodedIssuer","urlEncode","urlEncodedCallbackName","resolveFn","rejectFn","checkForClosedWindow","cleanup","closed","readyToActivate","errorState","allusers","usermap","user_cache","intr_cache","user_filters","team","intr_filters","channelType","queue","legType","widget_views","contactStatesMapping","Linked","Transfer","Reading","Unlinked","Composing","Starting","Chatting","WrapUp","Busy","Delivered","stateNameMapping","Ready","NotReady","Outbound","Inbound","requestedViews","UserList","Select","_item$Value$inqueue","_item$Value$wall","_item$Value$state","_item$Value$ready","_item$Value$wall2","_item$Value$state2","_item$Value$state2$Pa","_item$Value$state3","_item$Value$state3$Pa","_item$Value$state4","_item$Value$state5","_item$Value$state6","zero","qtime","inqueue","StartTime","wtime","wall","stime","rtime","agentlegid","activeContact","activecontact","Payload","ReadyDisplayName","NotReadyDisplayName","intr_list","interactions","_general$Attributes","_general$Attributes2","_general$Attributes3","general","Attributes","AgentLegId","Queue","itime","mappedName","ChannelType","General","dir","canBeSilentMonitored","User","getUserFullName","LoggedIn","ProfileID","Interactions","Team","TimecardState","WallState","ReadyState","QueueState","ActiveContact","CanBeSilentMonitored","Where","present","_item$Value$user","_item$Value$user2","_item$Value$general","_item$Value$general2","_item$Value$user3","_item$Value$user4","_item$Value$general3","_item$Value$general4","_item$Value$general5","_item$Value$general6","_item$Value$general7","_item$Value$general8","_item$Value$general9","_item$Value$general10","_item$Value$general11","_item$Value$general12","_item$Value$general13","_item$Value$general14","_item$Value$general15","_item$Value$inqueue2","_item$Value$inqueue3","_item$Value$inqueue4","_item$Value$user5","_item$Value$general16","_item$Value$general17","_item$Value$general18","_item$Value$general19","_item$Value$general20","_item$Value$general21","_item$Value$general22","_item$Value$general23","_item$Value$general24","_item$Value$user6","_item$Value$user6$Use","UserState","GeneralState","CallerId","CallerIdName","CallerName","Destination","LegType","MasterId","TimeInQueue","InQueue","Competencies","Skill","Languages","TargetUserID","Handling","IsUniversalChat","QueueCount","OriginalTimeInQueue","OriginalInQueueTime","apiKey","apiKey_fn","ApiKey","apiBaseUri","apiBaseUri_fn","ApiBaseUrl","accessor","apipatch","apiput","apipost","apidelete_","apiget","TryToGetResponse","rtEventReceived","activate","StopRealTimeMonitor","Native","StartRealTimeMonitor","RestoreViews","$once","standAloneWebSocket","CreateWebSocketConnection","Connect","connectionId","rtEventHandler","batch","Operation","flushAll","processUpdate","updateUser","Gender","updateUserInQueue","updateInteractionInQueue","updateUserContact","updateInteraction","updateWidgetView","ItemId","EndpointId","apiOptions","apikey","viewName","AddRealTimeMonitorView","refCount","RemoveRealTimeMonitorView","cacheViewName","existingView","responseBody","ResponseBody","textexpn","samlIssuer","issuerexpn","SAMLIssuer","onclick","popupManager","SAMLResponse","SearchText","debounceDelayEval","typingTimer","debounceDelay","DebounceDelay","SearchAction","SearchActions","lastSessionId","sessionidexpn","eventnameexpn","EventData","AllowMultipleSessionIDs","tableBodyHeight","getRowKey","handlePrevious","handleNext","grips","records","resourceURL","keyFields","attrib","greaterThenMinWidth","colName","vm","colWidth","onMouseDown","thElm","startOffset","getAttribute","syncColumnWidths","fetchData","resource","results","setResizeGrips","headerCols","th","grip","widths","clientWidth","bodyCols","Griddy","showFirstlastPage","showCurrentPage","hdrs","filterable","groupable","simpleheaders","simplerows","Value_expn","Condition_expn","giddy_headers","Value_func","Color_expn","_render1","_render2","toggleDoNotDisturbClick","activeCallList","showDialpad","dialstringEnter","dialstring","showingToList","showDetails","senddtmf","callClicked","conferenceSettingsIconClicked","leaveConferenceClicked","conferenceMode","holdrestore","conferenceMemberToggleMute","Muted","copySessionID","incomingAlerting","declineIncomingCall","showJoinConferenceDialog","loadModeratorNamesFocused","showContactDetails","selectedPhoneNumberValue","selectedContact","selectedContactNumber","elapsedTime","elapsedTimeAsString","result_compiled","default_text","result_expression","modelas","error_text","ElapsedTime","AsyncTextblock","callHSM","conferenceStatus","currentFrom","fromList","toList","toContactList","toSelected","phoneTitle","widthToList","contactSelectable","dtmfHistory","bleg_status","callerIdName","moderatorNames","moderatorUserID","CoordinatingHSMName","ChildControlByName","test_Aleg_status","ALegHSM","phoneIcon","phoneColor","phoneIconTooltip","phoneClasses","doNotDisturbColor","DoNotDisturb","callButtonDisabled","generalCallControlsVisible","filteredToList","searchVal","searchList","BLegHSMs","blegs","Call","getSubtitle","getOriginal","agentInfo","_this$callHSM$Vars$AL","_this$callHSM$Vars$AL2","ParamByName","incomingCallFromSettings","IncomingCall","canDropOut","loadFromList","loadToList","loadUserExtension","fromChanged","getToSubTitle","subTitle","isuser","integrationName","phonenumber","last_called","fromMenuInput","fromMenuVisible","UserExtension","toggleConferenceModeClick","CallerDisplayName","_b$Vars$Call$Destinat","_b$Vars$Call$Destinat2","_b$Vars$Call$CallerDi","_b$Vars$Call$CallerId","_b$Vars$Call$CallerId2","_b$Vars$Call$CallerDi2","_b$Vars$Call$Destinat3","_b$Vars$Call$CallerId3","_b$Vars$Call$Payload$","_b$Vars$Call$Payload$2","originaldirection","originalcallerid","originaldestination","PhoneNumbers","selectToItem","contact_id","searchdial","dialstringClick","showToList","cl","simpleSearch","formattedInputNumber","searchTerm","dialString","correctPn","pn","contactLabel","first_display","last_display","ph","phoneNumber","AutoCompleteItems","dialPhone","dialstringDown","dialstringUp","holdAndDialClicked","addCallClicked","blindTransferClicked","DialInfo","endAllClicked","dropOut","muteClicked","aleg","callControlClicked","endOneCall","clipboard","writeText","alphaToDTMF","alpha","dtmfInput","digit","startConferenceClicked","AsModerator","ModeratorName","ModeratorID","endConferenceClicked","joinConferenceClicked","Talking","callerid","acceptIncomingCall","phoneSettingsIconClicked","PhoneSettingsActions","ConferenceSettingsActions","loadModeratorNames","moderatorNamesEnter","moderatorInput","moderatorAccept","GetApiBaseURL","menuactions","MenuActions","paneStyle","FlexBoxContent","languageEval","isRawEval","performTextEditorRefresh","responseData","isRaw","_this$controlData$Siz","_this$controlData$Siz2","_this$controlData2$Si","_this$controlData2$Si2","_this$controlData3$Si","_this$controlData3$Si2","_this$controlData4","_this$controlData4$Si","_this$controlData4$Si2","fontNameEval","heightEval","chartPaddingEval","avoidOverlappingGridLinesEval","backgroundColorEval","barLabelStyleEval","colorByRowLabelEval","groupByRowLabelEval","rowLabelStyleEval","showBarLabelsEval","showRowLabelsEval","singleColorEval","dataTable","usefulHandlerListener","hasActions","googleOnLoadCallback","readyToDraw","chartPadding","ChartPadding","avoidOverlappingGridLines","AvoidOverlappingGridLines","barLabelStyle","BarLabelStyle","colorByRowLabel","ColorByRow","groupByRowLabel","GroupByRow","rowLabelStyle","RowLabelStyle","showBarLabels","ShowBarLabels","showRowLabels","ShowRowLabels","singleColor","SingleColor","formattedData","dataCopy","removeExtraColumns","hasData","getData","visualization","Timeline","DataTable","drawChart","charts","setOnLoadCallback","timeline","removeError","LabelActions","chartReady","scrollWidth","draw","paddingHeight","testDiv","realHeight","getBBox","svgCount","chartHeight","rowLength","usefulHandler","rowLabels","thid","labelArray","acounter","sender","selectedRow","getSelection","arrayInfo","autoOpenModal","editedString","originalValue","keyModel","textfailed","isPossibleHtml","_res","localeIndex","translation","saved","openExpanded","closeExpanded","customerID","globalTranslationList","saveTranslation","theContent","isExpressionOnly","modalSave","openEdit","oldstr","watchfunc","watchedvalue","doActions","DeepWatch","checkDevices","currentMicrophoneId","currentSpeakerId","microphoneId","speakerId","careWebRtcPhone","remoteMediaElement","myPublicIP","callOptions","stripIpsCallback","stripHostIpsFromSdp","RTPStatsInterval","lastPacketReceivedCount","rtpReinviteInProgress","videoRemote","sipjs","connected","phoneCall","safeObj","logMsg","IceServerType","iceSettings","timerEnd","latency","iceOptions","phoneUniqueInstanceId","iceTimeoutStrategy","IceTimeoutStrategy","iceServerType","latencyResult","getIceSettingsAndLatency","SourceIP","BaseIceTimeoutDesktopMs","IceTimeoutLatencyMultiplier","reconnectMaxAttempts","reconnectDelay","publicIdentity","IceServers","iceTransportPolicy","wsUrl","privateIdentity","onWSConnected","onWSDisconnected","onWSConnectionError","returnMessage","wsdisconnect","replaceAll","newsdp","remoteStream","pc","in_call_id","audioId","sourceId","onConnecting","startRTPStatsInterval","restartIceAndReinvite","stopRTPStatsInterval","cause","onHangup","WebRTC","checkRTPStats","stats","getStats","packetsReceived","packetDelta","offerOptions","iceRestart","newOffer","checkState","abortWithPrejudice","sipMessageReceived","SipMessage","switchStream","mediaHandler","mediaStreamManager","release","localMedia","acceptedDTMF","unsupportedBrowser","httpsRequired","webRtcPhone","performWebRTCConnectWebSocket","SpeakerId","speakerIdexpn","SpeakerIdField","callcorpVideoRemote","MicrophoneId","microphoneIdexpn","MicrophoneIdField","Streams","getStreams","iceOptionsExpression","iceOptionsExpressionexpn","ICEOptionsExpression","DisconnectWebSocket","disconnectWebSocket","recoveryApp","targetSessionId","Abort","SipMessageReceived","sipMessage","Hangup","SendDtmf","mozRTCPeerConnection","webkitGetUserMedia","mozGetUserMedia","micMissingError","localWSConnectionError","DisableWebRTCWebSockets","webRtcPhoneParams","localWSConnected","wsconnect","localMicMissingError","browserHelpers","makeCall","doMakeCall","CustomerSecurityContextID","Remote","Local","OnCallConnecting","OnHangup","OnCallRejected","OnCallAnswered","OnWebSocketConnected","OnWebSocketDisconnected","OnWebSocketConnectionError","footerControls","initialStepEval","currentStep","showBreadCrumbEval","breadCrumbs","localSteps","currentStepIndex","CurrentStepName","CurrentStep","titleEval","initialStep","InitialStep","showBreadCrumb","ShowBreadCrumb","steps","NameCompiled","TitleCompiled","ClearBreadcrumbs","clearBreadCrumbs","GotoStepByName","stepName","changeStepByName","NextStep","PreviousStep","setInitialStep","changeStep","addBreadCrumb","nextStepIndex","breadCrumbNavigate","breadCrumb","crumb","generateSteps","iconEval","iconPositionEval","buttonTextEval","buttonType","sourceTypeEval","localizedVideoIdEval","localizedVideoUrl","sourceType","getLocalizedVideo","LocalizedVideoID","compiledId","videoId","videoList","Videos","localizedUrl","languageKey","findVideoByLocale","Locale","selected_index","show_remove","menu_visible","BackgroundImageURL","tabChanged","toggleRemove","ShowTitle","ShowIcon","menuScopedSlots","ShowAddRemove","Dark","directive","onkeydown","nodeName","classList","defaultButtons","install","VueApexCharts","ApexGeneralChart","AudioPlayer","BasicFileUpload","FileDiff","LineChart","MediaApproval","MultiSelectList","RoosterEditor","SoftPhone","RappidPlugin","rootid","global_vars","Theme","service_vars","tokenVars","PrivateVariables","RefreshToken","ExpiresIn","ExpiresAbsoluteTime","CustomerTextToSpeechVoice","CustomerAbbreviation","CustomerName","CustomerPhoneNumberFormat","CustomerDefaultPromptLanguage","E911Compliance","CustomerRoles","UserName","Email","detail","performLogout","getControl","route","query","logout","order","participants","newUml","beginUML","_action$ActionData$De","previousUml","endUML","entries","actors","activateCount","passMessage","lastNoteHexegon","noteHexagon","orientation","addLine","addParticipant","altName","sanitizedName","sanitizeName","actor","parsePosition","note","actorObj","getOrCreateActor","noteRectangle","deactivate","createParticipant","preventRecursion","_this$uml","hideFromTimeline","endAllActivates","_this$uml2","testRun","LicenseManager","setLicenseKey","hash","DialogListener","StartApplication","ActionService","_window","_window$careTokenSett","_window$careTokenSett2","_window2","_window2$careTokenSet","_window2$careTokenSet2","_window3","_window3$careTokenSet","_window3$careTokenSet2","_window4","_window4$careTokenSet","_window4$careTokenSet2","vuePortalOrigin","loadJavaScriptWithAccessToken","tmpCareAppSettings","ImageHash","Css","css","styleSheet","cssText","createTextNode","instanceGuid","TokenService","SessionStorageOrMemory","tmpCareTokenSettings","initializeLocalStorageSync","ApiService","WebSocketService","PlantUML","EventCoordinator","TokenEventListener","CareService","VTooltip","defaultBoundariesElement","productionTip","Snotify","VueRouter","routes","App","factory","definition","globalThis","HttpError","errorMessage","trueProto","TimeoutError","AbortError","UnsupportedTransportError","DisabledTransportError","FailedToStartTransportError","FailedToNegotiateWithServerError","AggregateErrors","innerErrors","HttpResponse","HttpClient","getCookieString","NullLogger","_logLevel","_message","VERSION","Arg","Platform","isBrowser","isWebWorker","isReactNative","getDataDetail","includeContent","isArrayBuffer","byteLength","formatArrayBuffer","pad","ArrayBuffer","sendMessage","transportName","httpClient","getUserAgentHeader","logMessageContent","responseType","withCredentials","createLogger","ConsoleLogger","Information","SubjectSubscription","subject","_subject","_observer","observers","cancelCallback","minimumLogLevel","_minLevel","logLevel","Critical","Warning","userAgentHeaderName","isNode","constructUserAgent","getOsName","getRuntime","getRuntimeVersion","os","runtimeVersion","majorAndMinor","process","platform","versions","getErrorString","getGlobalThis","FetchHttpClient","_logger","_jar","requireFunc","_fetchType","AbortController","_abortControllerType","abortSignal","aborted","abortController","onabort","abort","timeoutId","msTimeout","signal","ok","deserializeContent","cookies","getCookies","arrayBuffer","XhrHttpClient","xhr","XMLHttpRequest","setRequestHeader","responseText","ontimeout","DefaultHttpClient","_httpClient","TextMessageFormat","RecordSeparator","RecordSeparatorCode","HandshakeProtocol","writeHandshakeRequest","handshakeRequest","write","parseHandshakeResponse","messageData","remainingData","binaryData","separatorIndex","responseLength","buffer","textData","responseMessage","Subject","DEFAULT_TIMEOUT_IN_MS","DEFAULT_PING_INTERVAL_IN_MS","HubConnectionState","HubConnection","connection","reconnectPolicy","_nextKeepAlive","_freezeEventListener","isRequired","serverTimeoutInMilliseconds","keepAliveIntervalInMilliseconds","_protocol","_reconnectPolicy","_handshakeProtocol","onreceive","_processIncomingData","_connectionClosed","_callbacks","_methods","_closedCallbacks","_reconnectingCallbacks","_reconnectedCallbacks","_invocationId","_receivedHandshakeResponse","_connectionState","Disconnected","_connectionStarted","_cachedPingMessage","writeMessage","Ping","baseUrl","Reconnecting","_startPromise","_startWithStateTransitions","Connecting","_startInternal","Connected","_stopDuringStartError","handshakePromise","_handshakeResolver","_handshakeRejecter","transferFormat","_sendMessage","_cleanupTimeout","_resetTimeoutPeriod","_resetKeepAliveInterval","features","inherentKeepAlive","_cleanupPingTimer","startPromise","_stopPromise","_stopInternal","Disconnecting","_reconnectDelayHandle","_completeClose","methodName","streamIds","_replaceStreamingParams","invocationDescriptor","_createStreamInvocation","promiseQueue","cancelInvocation","_createCancelInvocation","invocationId","_sendWithProtocol","invocationEvent","Completion","_launchStreams","_createInvocation","invoke","newMethod","handlers","removeIdx","onreconnecting","onreconnected","_processHandshakeResponse","parseMessages","Invocation","_invokeClientMethod","StreamItem","allowReconnect","_timeoutHandle","serverTimeout","_pingServerHandle","nextPing","invocationMessage","_createCompletionMessage","methodsCopy","expectsResponse","exception","completionMessage","prevRes","_cancelCallbacksWithError","_reconnect","reconnectStartTime","previousReconnectAttempts","retryError","nextRetryDelay","_getNextRetryDelay","previousRetryCount","elapsedMilliseconds","retryReason","nextRetryDelayInMilliseconds","nonblocking","streamId","_createStreamItemMessage","argument","_isObservable","StreamInvocation","CancelInvocation","DEFAULT_RETRY_DELAYS_IN_MILLISECONDS","DefaultReconnectPolicy","retryDelays","_retryDelays","retryContext","HeaderNames","Authorization","Cookie","AccessTokenHttpClient","innerClient","accessTokenFactory","_innerClient","_accessTokenFactory","allowRetry","_accessToken","_setAuthorizationHeader","HttpTransportType","TransferFormat","AbortController_AbortController","_isAborted","LongPollingTransport","_pollAbort","_options","_running","isIn","_url","Binary","pollOptions","pollUrl","_closeError","_receiving","_poll","pollAborted","_raiseOnClose","deleteOptions","logMessage","ServerSentEventsTransport","eventSource","opened","EventSource","_close","_eventSource","WebSocketTransport","webSocketConstructor","_logMessageContent","_webSocketConstructor","_headers","_event","_webSocket","ErrorEvent","_isCloseEvent","wasClean","MAX_REDIRECTS","HttpConnection","_stopPromiseResolver","_negotiateVersion","_resolveUrl","webSocketModule","eventSourceModule","_startInternalPromise","_sendQueue","TransportSendQueue","_stopError","_stopConnection","skipNegotiation","WebSockets","_constructTransport","_startTransport","negotiateResponse","redirects","_getNegotiationResponse","ProtocolVersion","_createTransport","negotiateUrl","_resolveNegotiateUrl","negotiateVersion","connectionToken","_createConnectUrl","requestedTransport","requestedTransferFormat","connectUrl","_isITransport","transportExceptions","transports","availableTransports","negotiate","endpoint","transportOrError","_resolveTransportOrError","ServerSentEvents","LongPolling","transportMatches","transferFormats","aTag","actualTransport","_buffer","_executing","_sendBufferedData","PromiseSource","_transportResult","_sendLoopPromise","_sendLoop","_bufferData","transportResult","_concatBuffers","arrayBuffers","totalLength","_resolver","_rejecter","JSON_HUB_PROTOCOL_NAME","JsonHubProtocol","hubMessages","parsedMessage","_isInvocationMessage","_isStreamItemMessage","_isCompletionMessage","_assertNotEmptyString","LogLevelNameMapping","trace","information","critical","none","None","parseLogLevel","mapping","HubConnectionBuilder","configureLogging","logging","isLogger","withUrl","transportTypeOrOptions","isNotEmpty","httpConnectionOptions","withHubProtocol","withAutomaticReconnect","retryDelaysOrReconnectPolicy","build","writable","handleRefreshAsyncBound","handleRefreshAsync","refreshAccessToken","removeTypes","addTypes","$q","tokens","tokenCount","securityContextsToRemove","securityContextsToAdd","tokenRequests","tokenRequest","doNotQueue","AspNetCoreWebSocketConnection","signalrSession","hubConnection","baseuri","queryParams","noticeCallback","channelEventCallback","rtEventCallback","onCloseCallback","URLSearchParams","DisableApiWebSockets","ShowAllLogMessage","Disconnect","IsConnected","IsDisconnected","ConnectionId","ApiRequest","CreateAndSubscribe","Args","GetTestResponse","ReplaceTokenAndChannel","generateGuid","WINDOWS_TO_IANA","windowsName","territory","iana","ianaToWindows_list","ianaToWindows_map","previous","current","windowsToIana_list","windowsToIana_map","ianaToWindows","ianaToWindowsTerritory","ianaSimilar","windowsToIana","windows","browserTimezone","DateTimeFormat","resolvedOptions","timezoneMap","formatDateForLocale","dateTime","customerTimezone","formatHourOnlyDateTimeForLocale","getDateForLocale","displayDateInLocale","regionCodeToName","regionCode","careRegionCodeList","RegionCode","findMissingRegionCodes","countryToMetadata","phoneNumberFormat","forceCustomerPhoneNumberFormat","isPossibleNumber","INTERNATIONAL","RFC3966","NATIONAL","countryCode","getCountryCodeOrDefault","regionCodes","getRegionCodesForCountryCode","newCopy","propertyByIndex","firstProperty","lastProperty","durationMinutesHoursSeconds","mins","elapsedTimeAsSeconds","serverTimeToClientTime","theDate","adjustedDate","clientTimeToServerTime","NUMBER_FORMATS","arg1","arg2","arg3","dateFromString","dateFromAbsoluteMilliseconds","dateFromParts","dateAddSeconds","originaldate","dateAddMinutes","dateAddHours","dateAddDays","getISOWeekOfYear","dowOffset","newYear","weeknum","daynum","nYear","nday","getDateOfISOWeek","simple","dow","ISOweekStart","toInteger","toFloat","toObject","v1","getField","v0","limit","skip","valuea","valueb","keyFunc","valueFunc","keyfield","allowmultiples","asarray","delimiter","toArray","selectMulti","fieldlist","namelist","groupByMulti","keystr","keyobj","filterEqual","filterNotEqual","member","memb","indx","objToClear","urlDecode","roles","hasModule","moduleName","InstalledModules","Version","getModuleConfig","moduleVersion","ModuleConfig","ModuleVersion","getModuleConfigByName","configName","specificModules","configs","hasMobileOrientation","isMobileDevice","vendor","opera","hasSmallScreenResolution","isFullScreenViewMode","webkitIsFullScreen","IsGuidedAssistant","globalMessageBroadcast","encodeBase64","btoa","decodeBase64","atob","oldname","getEvents","$ref","html","DOMParser","parseFromString","waitUntilIdle","isConnecting","ensureConnectionTimer","connectionMessageSent","keepDisconnected","apiRequestQueue","concurrentApiRequests","MAX_CONCURRENT_API_REQUESTS","accessTokenAssignedBound","accessTokenAssigned","startEnsureConnectionTimer","hasUserCustomerOrBandChanged","_this$connection","_this$connection$conn","_this$connection2","_this$connection2$con","_this$connection3","_this$connection3$con","connectionData","bandId","userId","customerId","__","___","WebSocketConnectionId","EventId","forceRenegotiate","stopEnsureConnectionTimer","ensureConnection","oldConnection","_this$connection4","_this$connection5","requestObj","processQueue","queueItem","decConcurrentApiRequests","fullResponse","TestDisconnect","executeShortcut","put","getOrAddItem","finishPromise","noCacheConfig","absoluteUrl","rejecter","matchStartsWith","RequestQueue","apiQueuingControlModel","cacheBandId","cacheUserId","cacheCustomerId","clearRequestQueueBound","clearHttpCacheOnTokenAssignBound","clearRequestQueue","clearHttpCacheOnTokenAssign","startQueuing","endQueuing","processRequestQueue","isQueing","addAccessTokenHeader","cachedGet","delete_","patch","foreachControlModelParent","controlModel","queueApiRequest","parentObj","deferred","loginRequest","prepareObjectForServer","executeAPIPromise","executeAPI","_response$data","logApiStop","wasInCache","webSocketRequest","defaultToast","flattenResults","ClearAccessToken","apiRequestObj","Verb","Uri","stringApiRequestObj","fetchOptions","File","$http","clearHttpCache","CallCorpPlayer","HTMLElement","shadow","attachShadow","_videos","_videoEls","_videoMetadata","maxX","maxY","minX","minY","vIndex","timeoffset","videoEl","getReader","ReadableStream","controller","pump","read","enqueue","positionScreens","containerHeight","containerWidth","fullWidth","fullHeight","hRatio","wRatio","ratio","vHeight","_controlElementSelector","_controlElement","setupControlElement","lastUpdatedDate","setCurrentTime","onplay","onpause","ontimeupdate","_ontimeupdate","player","newTime","customElements","define","MAX_LIST_SIZE","MIN_CACHE_TIME_SECONDS","forceRecaching","caches","getOrCreateCache","cacheName","cachedItems","_cache$cachedItems","cachedItem","lastUsed","CacheItem","queuePromise","fnData","theData","processQueuedPromises","dispatchAllLocalStorage","localStorageCopy","iframe","messageName","contentWindow","requestLocalStorageUpdate","updateLocalStorageKeys","syncLocalStoragePromise","tabIndex","timeoutPromise","race","ObjFunc","PlainWrapper","ObjProxy","oKey","oValue","myproxy","childControlByName","fromname","$children","childControlByType","childControlWithEventName","_c$controlData","allChildrenWithEventName","childControls","allBaseChildControls","getParent","parentByName","CallFunc","PossibleParentByName","PossibleParentByType","HasCContext","ParentByIndex","FindDesigner","FindDesignerChildHsm","FindDesignerChildHsmStatements","ReturnType","ParentByName","ignoreerrors","returnparent","suppresserror","GetParentAt","paramDataFunc","ignoreErrors","ChildControlByType","PossibleChildControls","InputByName","SourceData","SourceKey","RowData","kv","rparts","GenerateUUID","matchingExpression","isToolTip","shouldTranslate","shouldTranslateTooltip","translatedText","ShouldTranslate","ShouldTranslateTooltip","updateTranslationList","FindParentWithEventListener","_p$controlData","_p$controlData2","FindChildWithEventListener","FindAllBaseContainers","finalContext","theJavascript","scanBack","buff","getFilterArgs","inquote1","inquote2","extractFilters","whole","startIndex","endIndex","parseUserExpression","context_name","donotusewith","custommodelas","replacer","p1","saved1","matcher","final","text_res","parseObjectWithUserExpressions","newparent","evaluateUserExpression","custommodel","multiplecustommodels","newresult","filter_replacer","pp0","pp1","pp2","filter_matcher","quote1","quote2","objname","fldname","brackets","usequotes","resolveSizes","getFormattedDateNow","secs","msec","decompileObject","compiledobj","addcomma","resolveReferences","getSchema","copy_of_r","allOf","throwOnError","apicache","validation_patterns","email","hubproxy","default_val","radix","that","dialogTitleImage","actionDefaults","stacktrace","setAccessToken","compileDynamicObject","parsedObject","compiledfunc","haserrorfunc","throwerrors","evaluateDynamicObject","compiled_actions","actionExpn","targetExpn","ActionBroadcastTarget","action_compiled","isCompiled","actionExpression","paramdatafunc","LogMessage","logmessage","preactionExpn","Headers","APIProvider","TargetWindowName","Specs","setvalue","PopupName","OkayButtonText","okaybuttontext","CancelButtonText","cancelbuttontext","NotificationHeaderGroup","FirstActionTitle","SecondActionTitle","icoexpnn","FirstActionIcon","SecondActionIcon","Context","DesktopNotifyName","TimoutMinutes","OptIn","TokenSource","DoNotInheritSessionStorage","NewId","InitialStatePath","InitialStateData","DefaultFolder","MenuItemId","forceRecompile","Self","targetValue","defaultBroadcastDirection","invokeActionBroadcastGlobal","invokeActionEvent","_action$ActionData$Us","SuccessActions","CompleteActions","childIsArray","setBoostrap","userControlName","eventHandlers","returnItems","activatorElement","openDelay","returnItem","cleanModelRecursive","_parent$parent","cacheresult","asraw","verbose","httponly","verb","refreshCache","arrayStart","gatherlogSchema","levels","validateObject","subname","verifyExactType","tempErrorsList","tempErrors","allerrors","minLength","maxLength","pattern","reg","multipleOf","minimum","exclusiveMinimum","maximum","exclusiveMaximum","uniqueMap","uniqueItems","minItems","maxItems","typename","insureModelPath","_context$ParentByType","vitem","basekey","individualKey","getFormType","parentpath","newform","convertStringKeyToArray","generateForm","field_s","poss_f","merge","itemsform","newkey","areas","menuTreeByName","contentTreeByName","menuName","getContentForTree","actionsInProgress","_doc$$ModuleMetaData","_doc$$ModuleMetaData$","groupName","Config","GroupName","area","AddDynamicMenus","getCustomClasses","BorderTop","BorderBottom","BorderLeft","BorderRight","BorderRadius","BorderTopLeftRadius","BorderTopRightRadius","BorderBottomLeftRadius","borderBottomLeftRadius","BorderBottomRightRadius","borderBottomRightRadius","MarginTop","MarginBottom","MarginLeft","MarginRight","BorderTopColor","BorderBottomColor","BorderLeftColor","BorderRightColor","justifyContent","FontWeight","Overflow","CustomStyle","customStyle","styleArray","flexBasis","compileStyleHints","foregroundColor","showChildWindow","performEmitControlEvent","$$ScopeItems","compileScopeItems","public_vars","Variables","public_funcs","js","Functions","Commands","isLoaded","internalLog","translationList","uploadInterval","_appSettings$DebugInf","storedLanguage","localeKey","getBrowserLocale","getTranslatedList","uploadNewLanguageKeys","navigatorLanguage","currentTranslationList","totalKeys","docinfo","transDoc","translateDocInfo","FullPath","DocType","DocURL","PublicBool","_item$MenuItemData","docDesc","langItem","reload","convertCamelToSnake","camelString","alertString","$window","formatJson","json","logDateFormat","logInternally","functionName","lineNumber","$$ID","ShowAllLogMessages","withStackTrace","logErrorWithDocDebugLink","DocInfo","docURL","finishLogError","stackFrames","clearAndExtend","sourceObj","clearObject","originalData","filteredData","recursivelyRemoveUnwantedObjectProperties","CustomerNameChanged","SelectedCustomerChanged","SelectedUserChanged","Logout","UserIdleLogout","UserIdleWarning","UserIdleReset","UserIdleEnable","UnsubscribeAllServerEvents","WebSocketConnected","WebSocketDisconnected","RTWebSocketConnected","RTWebSocketDisconnected","$ROUTE_CHANGE_SUCCESS","RefreshAccessTokenAsync","CloseTab","AccessTokenAssigned","jsBeautify","PublishModel","RelayAction","ControlRenderComplete","AsyncLookupComplete","ChannelEvent","RealTimeEvent","ApiRequestStarted","ApiRequestFinished","ViewSpacesTabSelectByName","FacebookInit","FacebookAuthchange","CCInfoResponse","UIEvent","ParentToChildrenUIEvent","Screenshot","CloseAllOpenPopups","CloseAllOpenDropDowns","Sleep","LogEntry","UnauthorizedApi","DisplayBasicModal","DisplayConfirmModal","DisplayNotificationHeader","RemoveNotificationHeader","Alert","DisplayPopup","ClosePopup","DisplayDesktopNotify","CloseDesktopNotify","Broadcast","EditorShowWindow","FileDownload","FileDelete","FlushControlCache","FlushUrlCache","ForceRecaching","ForEach","IfElse","EvaluateExpression","SetLanguage","OpenChildWindow","OpenChildWindowWithToken","DebugNodeSelected","DebugShowWindow","DebugAddWatch","DebugRemoveWatch","DebugNewUml","SetValue","DeleteValue","ReferenceUserAction","SelectMenuItem","HelpHighlight","HelpHighlightStop","HelpTour","HelpTourStop","ShowWaitOverlay","HideWaitOverlay","FullScreen","OpenDocumentEditor","WebRTCConnectWebSocket","WebRTCVideoConnectWebSocket","HSMSetPersistedState","SchemaModelChanged","FormFieldChanged","ReplaceContent","ChildViewSpace","RenameTab","SystemNotify","HSMEvent","HSMStartServerEventListener","HSMStopServerEventListener","HSMSetNextState","HSMAddChildHSM","HSMRemoveChildHSM","GridRefresh","TextEditorRefresh","GridClearSelectedRows","SchemaFormTabSelectionChanged","ValidateForm","EmitControlEvent","RunControlCommand","ClearAccessTokenBound","SetGAUserID","replaceState","RestartRefreshTimerBasedOnAbsoluteExpireTime","UpdateServiceVars","expireAbsolutetime","remainingSeconds","privateVarible","expiresIn","RefreshTimer","timeObject","expiresAbsoluteTime","userID","customerSecurityContextID","customerName","defaultPromptLanguage","customerRoles","voice","customerAbbreviation","bandID","providerType","userName","_appSettings$ApiURLBa","ApiURLBandTemplate","ApiBase","_info$SecurityContext","_info$SecurityContext2","_info$SecurityContext3","_info$SecurityContext4","Customer","customer","MFA","mfa","ga","ext","ext_min","ext_max","hard","hard_min","hard_max","extended_bounds","hard_bounds","commitChanges","newitem","okayButtonText","cancelButtonText","dialogButtons","regionCodeList","currencyCodeList","Code","SHOWBASE","$vnode","LocationBrief","careCurrencyCodeList","_vm$items$_vm$selecti","childWindows","controlCustomerID","additionalSecurityContext","securityContext","CustomEvent"],"mappings":"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NwB,IAAK,SAET,CACIxB,KAAM,aACNwB,IAAK,SAET,CACIxB,KAAM,aACNwB,IAAK,SAET,CACIxB,KAAM,UACNwB,IAAK,SAET,CACIxB,KAAM,SACNwB,IAAK,SAET,CACIxB,KAAM,UACNwB,IAAK,WAIjB,CACIxB,KAAM,UACN6hD,OAAQ,SACRrgD,IAAK,KACLsgD,QAAS,CACL,CACI9hD,KAAM,uBACNwB,IAAK,cAET,CACIxB,KAAM,aACNwB,IAAK,cAET,CACIxB,KAAM,SACNwB,IAAK,cAET,CACIxB,KAAM,SACNwB,IAAK,SAET,CACIxB,KAAM,SACNwB,IAAK,gBAIjB,CACIxB,KAAM,SACN6hD,OAAQ,aACRrgD,IAAK,KACLsgD,QAAS,CACL,CACI9hD,KAAM,WACNwB,IAAK,WAIjB,CACIxB,KAAM,YACN6hD,OAAQ,cACRrgD,IAAK,KACLsgD,QAAS,CACL,CACI9hD,KAAM,WACNwB,IAAK,WAIjB,CACIxB,KAAM,UACN6hD,OAAQ,UACRrgD,IAAK,KACLsgD,QAAS,CACL,CACI9hD,KAAM,YACNwB,IAAK,SAET,CACIxB,KAAM,UACNwB,IAAK,SAET,CACIxB,KAAM,QACNwB,IAAK,SAET,CACIxB,KAAM,WACNwB,IAAK,SAET,CACIxB,KAAM,aACNwB,IAAK,SAET,CACIxB,KAAM,qBACNwB,IAAK,SAET,CACIxB,KAAM,UACNwB,IAAK,SAET,CACIxB,KAAM,cACNwB,IAAK,SAET,CACIxB,KAAM,YACNwB,IAAK,SAET,CACIxB,KAAM,WACNwB,IAAK,SAET,CACIxB,KAAM,SACNwB,IAAK,SAET,CACIxB,KAAM,YACNwB,IAAK,SAET,CACIxB,KAAM,SACNwB,IAAK,SAET,CACIxB,KAAM,WACNwB,IAAK,SAET,CACIxB,KAAM,OACNwB,IAAK,SAET,CACIxB,KAAM,cACNwB,IAAK,SAET,CACIxB,KAAM,QACNwB,IAAK,SAET,CACIxB,KAAM,gBACNwB,IAAK,SAET,CACIxB,KAAM,UACNwB,IAAK,SAET,CACIxB,KAAM,YACNwB,IAAK,WAIjB,CACIxB,KAAM,UACN6hD,O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","file":"js/app.00d058ed.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 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-2d0c8c13\":\"c274f259\",\"chunk-2d207d28\":\"0caabd5b\"}[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// 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 = \"/Vue/dist/\";\n\n \t// on error function for async loading\n \t__webpack_require__.oe = function(err) { console.error(err); throw err; };\n\n \tvar jsonpArray = window[\"webpackJsonp\"] = window[\"webpackJsonp\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// add entry module to deferred list\n \tdeferredModules.push([0,\"chunk-vendors\"]);\n \t// run deferred modules when ready\n \treturn checkDeferredModules();\n","import Vue from 'vue';\r\nimport utils from '../../Shared/utils.jsx';\r\nimport careHelpfulFunctions from '../careHelpfulFunctions.jsx';\r\nimport methods from '../../Shared/methods';\r\nimport computed from '../../Shared/computed';\r\nimport filters from '../../Shared/filters';\r\nimport apiService from '@/Services/api';\r\nimport { PlainWrapper } from '@/Shared/helperClasses';\r\n\r\nvar baseMixin = {\r\n data: function () {\r\n return {\r\n displayexpr: null,\r\n visibleexpr: null,\r\n prerender_actions: [],\r\n postrender_actions: [],\r\n prerender_complete: false,\r\n vars: {},\r\n styleHints: null,\r\n isready: false,\r\n renderCount: 0,\r\n finishedRender: false,\r\n finishedRenderChildren: [],\r\n todisplayfailed: 1,\r\n }\r\n },\r\n props: {\r\n name: '',\r\n root: null,\r\n type: null,\r\n parentType: '',\r\n controlData: {},\r\n //paramData: null,\r\n debug: null,\r\n scopeitems: null,\r\n controlscope: null,\r\n cacheControl: false\r\n },\r\n computed: {\r\n ...computed,\r\n Vars: function () {\r\n return this.vars;\r\n },\r\n todisplay: function () {\r\n if (!this.prerender_complete)\r\n return false;\r\n\r\n if (!this.displayexpr && this.controlData && this.controlData.DisplayExpression)\r\n this.displayexpr = utils.compileExpression(this, this.controlData.DisplayExpression);\r\n\r\n if (this.displayexpr) {\r\n //if (this.name == 'BtnLaunchDesktop')\r\n // utils.debug(`${this.type} ${this.name} DisplayExpression:${this.controlData.DisplayExpression}`);\r\n\r\n const res = utils.evaluate(this.displayexpr, this, false,\r\n () => {\r\n // This is a callback that will only be called if evaluate throws an exception.\r\n // If this happens, we read the todisplayfield (so Vue knows we care) and then\r\n // after 100ms, we update todisplayfailed to cause Vue to re-evaluate todisplay.\r\n // (cap the retry at 10 times with increasing delay each attempt)\r\n if (this.todisplayfailed >= 0 && this.todisplayfailed < 10)\r\n setTimeout(() => this.todisplayfailed++, 50 * this.todisplayfailed);\r\n });\r\n\r\n //if (this.name == 'BtnLaunchDesktop')\r\n // utils.debug(`${this.type} ${this.name} DisplayExpression:${this.controlData.DisplayExpression} = ${res ? 'True' : 'False'}`);\r\n\r\n //utils.debug(`DisplayExpression for ${this.name} ${this.type} evaluated to ${res ? 'true' : 'false'} ('${this.controlData.DisplayExpression}')`);\r\n return res;\r\n }\r\n else\r\n return true;\r\n },\r\n isvisible: function () {\r\n if (this.visibleexpr) {\r\n \r\n const res = utils.evaluate(this.visibleexpr, this, false,\r\n () => {\r\n // This is a callback that will only be called if evaluate throws an exception.\r\n // If this happens, we read the todisplayfield (so Vue knows we care) and then\r\n // after 100ms, we update todisplayfailed to cause Vue to re-evaluate todisplay.\r\n // (cap the retry at 10 times with increasing delay each attempt)\r\n if (this.todisplayfailed >= 0 && this.todisplayfailed < 10)\r\n setTimeout(() => this.todisplayfailed++, 50 * this.todisplayfailed);\r\n });\r\n\r\n return res;\r\n }\r\n else\r\n return true;\r\n },\r\n // This is the total number of child controls a component has. This should be overridden in controls that\r\n // have child controls.\r\n totalItems() {\r\n return 0;\r\n },\r\n\r\n sizeOptions() {\r\n return this.sizeOptionsObj ? utils.evaluateObject(this.sizeOptionsObj, this) : {};\r\n },\r\n sizeStyle() {\r\n const sizeOptions = { ...this.getSizeDefaults(), ...this.sizeOptions };\r\n return utils.getSize(sizeOptions, this.parentType, this.$parent);\r\n },\r\n Element() {\r\n return this.$el;\r\n }\r\n },\r\n async created() {\r\n if (this.isdebug) {\r\n utils.document_cache.loadInProgress[this.Location] = new Date().toLocaleTimeString();\r\n //utils.debug(`${this.LocationBrief} CREATE`);\r\n }\r\n\r\n if (this.controlData && this.controlData.VisibleExpression)\r\n this.visibleexpr = utils.compileExpression(this, this.controlData.VisibleExpression);\r\n\r\n if (this.controlData && this.controlData.Javascript)\r\n try {\r\n\t\t\t\tthis.addJavascript(this, this.controlData.Javascript);\r\n //const api = utils.apiWrapper; // apiService;\r\n //const chf = careHelpfulFunctions;\r\n //this.Javascript = eval(\"new (\" + this.controlData.Javascript + \")(null, null, api, this, chf);\");\r\n\r\n //for (let key in this.Javascript)\r\n // if (typeof this.Javascript[key] === 'function')\r\n // this.Javascript[key] = this.Javascript[key].bind(this.Javascript);\r\n }\r\n catch (e) {\r\n utils.warn(`Failed evaluating Javascript in ${this.name} ${this.type}: ${this.controlData.Javascript}`, e);\r\n }\r\n\r\n if (this.controlData && this.controlData.Vars) {\r\n if (this.controlData.$nointerp)\r\n // Used in ReplaceContent action - the interpolation happens up front\r\n this.vars = this.controlData.Vars;\r\n else {\r\n const varsexpn = utils.compileObject(this, this.controlData.Vars);\r\n try {\r\n this.vars = utils.evaluateObject(varsexpn, this);\r\n }\r\n catch (e) {\r\n utils.error('error evaluating Vars: ' + e);\r\n }\r\n }\r\n }\r\n\r\n if (this.controlData && this.controlData.StyleHints)\r\n this.styleHints = utils.compileObject(this, this.controlData.StyleHints);\r\n\r\n if (this.controlData && this.controlData.SizeOptions)\r\n this.sizeOptionsObj = utils.compileObject(this, this.controlData.SizeOptions);\r\n\r\n /*******************************************************\r\n ****** As soon as we start async activities, *****\r\n ****** the created() is assumed to be complete, *****\r\n ****** so the mounted and render methods will run *****\r\n *******************************************************/\r\n\r\n // Execute all prerender actions now\r\n if (this.controlData) {\r\n try {\r\n await utils.executeAndCompileAllActions(this.controlData.PrerenderActions, null, this);\r\n } catch(e) {\r\n utils.error(e);\r\n }\r\n\r\n }\r\n\r\n this.prerender_complete = true;\r\n // Every component needs to implement this for the finished Render Complete actions \r\n // so we don't call post-render complete before prerender finishes\r\n //console.log(`${this.Name} BaseComponentMixin create invoking preRenderComplete()`);\r\n this.preRenderComplete();\r\n\r\n //if (this.controlscope && this.controlData && this.controlData.Name) {\r\n if (this.scopeitems && this.controlData && this.controlData.Name) {\r\n // Save an entry in the Control object for this item. Note: this will not be reactive.\r\n // Attempts to make it reactive have caused major issues - infinite update cycles.\r\n this.scopeitems[this.controlData.Name] = this; // new PlainWrapper(this);\r\n }\r\n },\r\n destroyed() {\r\n if (this.scopeitems && this.controlData.Name)\r\n delete this.scopeitems[this.controlData.Name];\r\n },\r\n methods: {\r\n ...methods,\r\n ...filters,\r\n getSizeDefaults() {\r\n // Override in child control if you need to adjust the defaults for size\r\n // Ex: return { Height: { Mode: \"Fill\" } }\r\n return {};\r\n },\r\n finishRenderHandler(component) {\r\n if(this.finishedRender)\r\n return;\r\n if(component)\r\n this.finishedRenderChildren.push(component);\r\n this.renderCount++;\r\n //utils.debug(`finishRenderHandler: ${this.name} <- ${component ? component.name : 'noname'} ${this.renderCount} / ${this.totalItems}`);\r\n if(this.renderCount >= this.totalItems) {\r\n this.renderComplete();\r\n }\r\n },\r\n async renderComplete() {\r\n this.finishedRender = true;\r\n if (this.controlData)\r\n try {\r\n await utils.executeAndCompileAllActions(this.controlData.PostrenderActions, null, this);\r\n } catch (e) {\r\n utils.warn(e);\r\n }\r\n\r\n if (this.isdebug) {\r\n //utils.debug(`${this.LocationBrief} FINISH`);\r\n delete utils.document_cache.loadInProgress[this.Location];\r\n }\r\n this.$emit('finished-render', this);\r\n this.postRenderComplete();\r\n },\r\n preRenderComplete() {\r\n return;\r\n },\r\n postRenderComplete() {\r\n return;\r\n },\r\n },\r\n \r\n};\r\n\r\nexport default baseMixin;","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-menu',{attrs:{\"offset-y\":\"\",\"close-on-content-click\":false,\"close-on-click\":false},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on, attrs }){return [_c('v-btn',_vm._g(_vm._b({staticClass:\"ma-0\",attrs:{\"text\":\"\",\"x-small\":\"\"}},'v-btn',attrs,false),on),[_vm._v(\" \"+_vm._s(_vm.label || 'Column filters')+\" \"),_c('v-icon',{attrs:{\"small\":\"\"}},[_vm._v(\"mdi-menu-down\")])],1)]}}]),model:{value:(_vm.menuopen),callback:function ($$v) {_vm.menuopen=$$v},expression:\"menuopen\"}},[_c('v-card',{on:{\"mouseleave\":function($event){_vm.menuopen = false}}},[_c('v-list',[_c('v-list-item-group',{attrs:{\"multiple\":\"\",\"color\":\"primary\"},model:{value:(_vm.selection),callback:function ($$v) {_vm.selection=$$v},expression:\"selection\"}},[_vm._l((_vm.columngroups),function(item){return [(item.divider)?_c('v-subheader',{key:item.text + '2'},[_vm._v(_vm._s(item.text))]):_vm._e(),(!item.divider)?_c('v-list-item',{key:item.text,staticClass:\"mediumdense\",scopedSlots:_vm._u([{key:\"default\",fn:function({ active }){return [_c('v-list-item-action',[_c('v-checkbox',{attrs:{\"input-value\":active}})],1),_c('v-list-item-content',[_vm._v(\" \"+_vm._s(item.text)+\" \")])]}}],null,true)}):_vm._e()]})],2)],1)],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","!function(e,t){\"object\"==typeof exports&&\"object\"==typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define([],t):\"object\"==typeof exports?exports.SIP=t():e.SIP=t()}(this,(function(){return function(e){var t={};function r(i){if(t[i])return t[i].exports;var n=t[i]={i:i,l:!1,exports:{}};return e[i].call(n.exports,n,n.exports,r),n.l=!0,n.exports}return r.m=e,r.c=t,r.d=function(e,t,i){r.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:i})},r.r=function(e){\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(e,\"__esModule\",{value:!0})},r.t=function(e,t){if(1&t&&(e=r(e)),8&t)return e;if(4&t&&\"object\"==typeof e&&e&&e.__esModule)return e;var i=Object.create(null);if(r.r(i),Object.defineProperty(i,\"default\",{enumerable:!0,value:e}),2&t&&\"string\"!=typeof e)for(var n in e)r.d(i,n,function(t){return e[t]}.bind(null,n));return i},r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,\"a\",t),t},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.p=\"\",r(r.s=118)}([function(e,t,r){\"use strict\";r.r(t),r.d(t,\"__extends\",(function(){return n})),r.d(t,\"__assign\",(function(){return s})),r.d(t,\"__rest\",(function(){return o})),r.d(t,\"__decorate\",(function(){return a})),r.d(t,\"__param\",(function(){return c})),r.d(t,\"__metadata\",(function(){return u})),r.d(t,\"__awaiter\",(function(){return d})),r.d(t,\"__generator\",(function(){return p})),r.d(t,\"__exportStar\",(function(){return l})),r.d(t,\"__values\",(function(){return h})),r.d(t,\"__read\",(function(){return g})),r.d(t,\"__spread\",(function(){return f})),r.d(t,\"__spreadArrays\",(function(){return v})),r.d(t,\"__await\",(function(){return m})),r.d(t,\"__asyncGenerator\",(function(){return S})),r.d(t,\"__asyncDelegator\",(function(){return T})),r.d(t,\"__asyncValues\",(function(){return y})),r.d(t,\"__makeTemplateObject\",(function(){return E})),r.d(t,\"__importStar\",(function(){return b})),r.d(t,\"__importDefault\",(function(){return C}));var i=function(e,t){return(i=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])})(e,t)};function n(e,t){function r(){this.constructor=e}i(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)}var s=function(){return(s=Object.assign||function(e){for(var t,r=1,i=arguments.length;r=0;a--)(n=e[a])&&(o=(s<3?n(o):s>3?n(t,r,o):n(t,r))||o);return s>3&&o&&Object.defineProperty(t,r,o),o}function c(e,t){return function(r,i){t(r,i,e)}}function u(e,t){if(\"object\"==typeof Reflect&&\"function\"==typeof Reflect.metadata)return Reflect.metadata(e,t)}function d(e,t,r,i){return new(r||(r=Promise))((function(n,s){function o(e){try{c(i.next(e))}catch(e){s(e)}}function a(e){try{c(i.throw(e))}catch(e){s(e)}}function c(e){e.done?n(e.value):new r((function(t){t(e.value)})).then(o,a)}c((i=i.apply(e,t||[])).next())}))}function p(e,t){var r,i,n,s,o={label:0,sent:function(){if(1&n[0])throw n[1];return n[1]},trys:[],ops:[]};return s={next:a(0),throw:a(1),return:a(2)},\"function\"==typeof Symbol&&(s[Symbol.iterator]=function(){return this}),s;function a(s){return function(a){return function(s){if(r)throw new TypeError(\"Generator is already executing.\");for(;o;)try{if(r=1,i&&(n=2&s[0]?i.return:s[0]?i.throw||((n=i.return)&&n.call(i),0):i.next)&&!(n=n.call(i,s[1])).done)return n;switch(i=0,n&&(s=[2&s[0],n.value]),s[0]){case 0:case 1:n=s;break;case 4:return o.label++,{value:s[1],done:!1};case 5:o.label++,i=s[1],s=[0];continue;case 7:s=o.ops.pop(),o.trys.pop();continue;default:if(!(n=(n=o.trys).length>0&&n[n.length-1])&&(6===s[0]||2===s[0])){o=0;continue}if(3===s[0]&&(!n||s[1]>n[0]&&s[1]=e.length&&(e=void 0),{value:e&&e[r++],done:!e}}}}function g(e,t){var r=\"function\"==typeof Symbol&&e[Symbol.iterator];if(!r)return e;var i,n,s=r.call(e),o=[];try{for(;(void 0===t||t-- >0)&&!(i=s.next()).done;)o.push(i.value)}catch(e){n={error:e}}finally{try{i&&!i.done&&(r=s.return)&&r.call(s)}finally{if(n)throw n.error}}return o}function f(){for(var e=[],t=0;t1||a(e,t)}))})}function a(e,t){try{(r=n[e](t)).value instanceof m?Promise.resolve(r.value.v).then(c,u):d(s[0][2],r)}catch(e){d(s[0][3],e)}var r}function c(e){a(\"next\",e)}function u(e){a(\"throw\",e)}function d(e,t){e(t),s.shift(),s.length&&a(s[0][0],s[0][1])}}function T(e){var t,r;return t={},i(\"next\"),i(\"throw\",(function(e){throw e})),i(\"return\"),t[Symbol.iterator]=function(){return this},t;function i(i,n){t[i]=e[i]?function(t){return(r=!r)?{value:m(e[i](t)),done:\"return\"===i}:n?n(t):t}:n}}function y(e){if(!Symbol.asyncIterator)throw new TypeError(\"Symbol.asyncIterator is not defined.\");var t,r=e[Symbol.asyncIterator];return r?r.call(e):(e=h(e),t={},i(\"next\"),i(\"throw\"),i(\"return\"),t[Symbol.asyncIterator]=function(){return this},t);function i(r){t[r]=e[r]&&function(t){return new Promise((function(i,n){(function(e,t,r,i){Promise.resolve(i).then((function(t){e({value:t,done:r})}),t)})(i,n,(t=e[r](t)).done,t.value)}))}}}function E(e,t){return Object.defineProperty?Object.defineProperty(e,\"raw\",{value:t}):e.raw=t,e}function b(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}function C(e){return e&&e.__esModule?e:{default:e}}},function(e,t,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var i=r(0);i.__exportStar(r(22),t),i.__exportStar(r(36),t),i.__exportStar(r(69),t),i.__exportStar(r(70),t),i.__exportStar(r(71),t),i.__exportStar(r(36),t),i.__exportStar(r(25),t),i.__exportStar(r(9),t),i.__exportStar(r(23),t)},function(e,t,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var i=r(0);i.__exportStar(r(56),t),i.__exportStar(r(58),t),i.__exportStar(r(60),t),i.__exportStar(r(14),t),i.__exportStar(r(18),t),i.__exportStar(r(17),t),i.__exportStar(r(21),t),i.__exportStar(r(19),t),i.__exportStar(r(35),t),i.__exportStar(r(63),t),i.__exportStar(r(20),t),i.__exportStar(r(64),t),i.__exportStar(r(31),t)},function(e,t,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var i=r(2),n=r(1),s=function(){function e(e,t,r,i){this.transactionConstructor=e,this.core=t,this.message=r,this.delegate=i,this.challenged=!1,this.stale=!1,this.logger=this.loggerFactory.getLogger(\"sip.user-agent-client\"),this.init()}return e.prototype.dispose=function(){this.transaction.dispose()},Object.defineProperty(e.prototype,\"loggerFactory\",{get:function(){return this.core.loggerFactory},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"transaction\",{get:function(){if(!this._transaction)throw new Error(\"Transaction undefined.\");return this._transaction},enumerable:!0,configurable:!0}),e.prototype.cancel=function(t,r){var s=this;if(void 0===r&&(r={}),!this.transaction)throw new Error(\"Transaction undefined.\");if(!this.message.to)throw new Error(\"To undefined.\");if(!this.message.from)throw new Error(\"From undefined.\");var o=this.core.makeOutgoingRequestMessage(i.C.CANCEL,this.message.ruri,this.message.from.uri,this.message.to.uri,{toTag:this.message.toTag,fromTag:this.message.fromTag,callId:this.message.callId,cseq:this.message.cseq},r.extraHeaders);if(o.branch=this.message.branch,this.message.headers.Route&&(o.headers.Route=this.message.headers.Route),t&&o.setHeader(\"Reason\",t),this.transaction.state===n.TransactionState.Proceeding)new e(n.NonInviteClientTransaction,this.core,o);else this.transaction.once(\"stateChanged\",(function(){if(s.transaction&&s.transaction.state===n.TransactionState.Proceeding)new e(n.NonInviteClientTransaction,s.core,o)}));return o},e.prototype.authenticationGuard=function(e){var t,r,i=e.statusCode;if(!i)throw new Error(\"Response status code undefined.\");if(401!==i&&407!==i)return!0;if(401===i?(t=e.parseHeader(\"www-authenticate\"),r=\"authorization\"):(t=e.parseHeader(\"proxy-authenticate\"),r=\"proxy-authorization\"),!t)return this.logger.warn(i+\" with wrong or missing challenge, cannot authenticate\"),!0;if(this.challenged&&(this.stale||!0!==t.stale))return this.logger.warn(i+\" apparently in authentication loop, cannot authenticate\"),!0;if(!this.credentials&&(this.credentials=this.core.configuration.authenticationFactory(),!this.credentials))return this.logger.warn(\"Unable to obtain credentials, cannot authenticate\"),!0;if(!this.credentials.authenticate(this.message,t))return!0;this.challenged=!0,t.stale&&(this.stale=!0);var n=this.message.cseq+=1;return this.message.setHeader(\"cseq\",n+\" \"+this.message.method),this.message.setHeader(r,this.credentials.toString()),this.init(),!1},e.prototype.onRequestTimeout=function(){this.logger.warn(\"User agent client request timed out. Generating internal 408 Request Timeout.\");var e=new i.IncomingResponseMessage;e.statusCode=408,e.reasonPhrase=\"Request Timeout\",this.receiveResponse(e)},e.prototype.onTransportError=function(e){this.logger.error(e.message),this.logger.error(\"User agent client request transport error. Generating internal 503 Service Unavailable.\");var t=new i.IncomingResponseMessage;t.statusCode=503,t.reasonPhrase=\"Service Unavailable\",this.receiveResponse(t)},e.prototype.receiveResponse=function(e){if(this.authenticationGuard(e)){var t=e.statusCode?e.statusCode.toString():\"\";if(!t)throw new Error(\"Response status code undefined.\");switch(!0){case/^100$/.test(t):this.delegate&&this.delegate.onTrying&&this.delegate.onTrying({message:e});break;case/^1[0-9]{2}$/.test(t):this.delegate&&this.delegate.onProgress&&this.delegate.onProgress({message:e});break;case/^2[0-9]{2}$/.test(t):this.delegate&&this.delegate.onAccept&&this.delegate.onAccept({message:e});break;case/^3[0-9]{2}$/.test(t):this.delegate&&this.delegate.onRedirect&&this.delegate.onRedirect({message:e});break;case/^[4-6][0-9]{2}$/.test(t):this.delegate&&this.delegate.onReject&&this.delegate.onReject({message:e});break;default:throw new Error(\"Invalid status code \"+t)}}},e.prototype.init=function(){var e=this,t={loggerFactory:this.loggerFactory,onRequestTimeout:function(){return e.onRequestTimeout()},onStateChange:function(t){t===n.TransactionState.Terminated&&(e.core.userAgentClients.delete(i),r===e._transaction&&e.dispose())},onTransportError:function(t){return e.onTransportError(t)},receiveResponse:function(t){return e.receiveResponse(t)}},r=new this.transactionConstructor(this.message,this.core.transport,t);this._transaction=r;var i=r.id+r.request.method;this.core.userAgentClients.set(i,this)},e}();t.UserAgentClient=s},function(e,t,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var i=r(0);i.__exportStar(r(15),t),i.__exportStar(r(12),t),i.__exportStar(r(73),t),i.__exportStar(r(2),t),i.__exportStar(r(11),t),i.__exportStar(r(27),t),i.__exportStar(r(1),t),i.__exportStar(r(75),t),i.__exportStar(r(51),t),i.__exportStar(r(6),t)},function(e,t,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var i=r(12),n=r(2),s=r(7),o=r(1),a=function(){function e(e,t,r,i){this.transactionConstructor=e,this.core=t,this.message=r,this.delegate=i,this.logger=this.loggerFactory.getLogger(\"sip.user-agent-server\"),this.toTag=r.toTag?r.toTag:s.newTag(),this.init()}return e.prototype.dispose=function(){this.transaction.dispose()},Object.defineProperty(e.prototype,\"loggerFactory\",{get:function(){return this.core.loggerFactory},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"transaction\",{get:function(){if(!this._transaction)throw new Error(\"Transaction undefined.\");return this._transaction},enumerable:!0,configurable:!0}),e.prototype.accept=function(e){if(void 0===e&&(e={statusCode:200}),!this.acceptable)throw new i.TransactionStateError(this.message.method+\" not acceptable in state \"+this.transaction.state+\".\");var t=e.statusCode;if(t<200||t>299)throw new TypeError(\"Invalid statusCode: \"+t);return this.reply(e)},e.prototype.progress=function(e){if(void 0===e&&(e={statusCode:180}),!this.progressable)throw new i.TransactionStateError(this.message.method+\" not progressable in state \"+this.transaction.state+\".\");var t=e.statusCode;if(t<101||t>199)throw new TypeError(\"Invalid statusCode: \"+t);return this.reply(e)},e.prototype.redirect=function(e,t){if(void 0===t&&(t={statusCode:302}),!this.redirectable)throw new i.TransactionStateError(this.message.method+\" not redirectable in state \"+this.transaction.state+\".\");var r=t.statusCode;if(r<300||r>399)throw new TypeError(\"Invalid statusCode: \"+r);var n=new Array;return e.forEach((function(e){return n.push(\"Contact: \"+e.toString())})),t.extraHeaders=(t.extraHeaders||[]).concat(n),this.reply(t)},e.prototype.reject=function(e){if(void 0===e&&(e={statusCode:480}),!this.rejectable)throw new i.TransactionStateError(this.message.method+\" not rejectable in state \"+this.transaction.state+\".\");var t=e.statusCode;if(t<400||t>699)throw new TypeError(\"Invalid statusCode: \"+t);return this.reply(e)},e.prototype.trying=function(e){if(!this.tryingable)throw new i.TransactionStateError(this.message.method+\" not tryingable in state \"+this.transaction.state+\".\");return this.reply({statusCode:100})},e.prototype.receiveCancel=function(e){this.delegate&&this.delegate.onCancel&&this.delegate.onCancel(e)},Object.defineProperty(e.prototype,\"acceptable\",{get:function(){if(this.transaction instanceof o.InviteServerTransaction)return this.transaction.state===o.TransactionState.Proceeding||this.transaction.state===o.TransactionState.Accepted;if(this.transaction instanceof o.NonInviteServerTransaction)return this.transaction.state===o.TransactionState.Trying||this.transaction.state===o.TransactionState.Proceeding;throw new Error(\"Unknown transaction type.\")},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"progressable\",{get:function(){if(this.transaction instanceof o.InviteServerTransaction)return this.transaction.state===o.TransactionState.Proceeding;if(this.transaction instanceof o.NonInviteServerTransaction)return!1;throw new Error(\"Unknown transaction type.\")},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"redirectable\",{get:function(){if(this.transaction instanceof o.InviteServerTransaction)return this.transaction.state===o.TransactionState.Proceeding;if(this.transaction instanceof o.NonInviteServerTransaction)return this.transaction.state===o.TransactionState.Trying||this.transaction.state===o.TransactionState.Proceeding;throw new Error(\"Unknown transaction type.\")},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"rejectable\",{get:function(){if(this.transaction instanceof o.InviteServerTransaction)return this.transaction.state===o.TransactionState.Proceeding;if(this.transaction instanceof o.NonInviteServerTransaction)return this.transaction.state===o.TransactionState.Trying||this.transaction.state===o.TransactionState.Proceeding;throw new Error(\"Unknown transaction type.\")},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"tryingable\",{get:function(){if(this.transaction instanceof o.InviteServerTransaction)return this.transaction.state===o.TransactionState.Proceeding;if(this.transaction instanceof o.NonInviteServerTransaction)return this.transaction.state===o.TransactionState.Trying;throw new Error(\"Unknown transaction type.\")},enumerable:!0,configurable:!0}),e.prototype.reply=function(e){e.toTag||100===e.statusCode||(e.toTag=this.toTag),e.userAgent=e.userAgent||this.core.configuration.userAgentHeaderFieldValue,e.supported=e.supported||this.core.configuration.supportedOptionTagsResponse;var t=n.constructOutgoingResponse(this.message,e);return this.transaction.receiveResponse(e.statusCode,t.message),t},e.prototype.init=function(){var e=this,t={loggerFactory:this.loggerFactory,onStateChange:function(t){t===o.TransactionState.Terminated&&(e.core.userAgentServers.delete(i),e.dispose())},onTransportError:function(t){e.logger.error(t.message),e.delegate&&e.delegate.onTransportError?e.delegate.onTransportError(t):e.logger.error(\"User agent server response transport error.\")}},r=new this.transactionConstructor(this.message,this.core.transport,t);this._transaction=r;var i=r.id;this.core.userAgentServers.set(r.id,this)},e}();t.UserAgentServer=a},function(e,t,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var i=500;t.Timers={T1:i,T2:4e3,T4:5e3,TIMER_B:32e3,TIMER_D:0,TIMER_F:32e3,TIMER_H:32e3,TIMER_I:0,TIMER_J:0,TIMER_K:0,TIMER_L:32e3,TIMER_M:32e3,TIMER_N:32e3,PROVISIONAL_RESPONSE_INTERVAL:6e4}},function(e,t,r){\"use strict\";function i(e,t){void 0===t&&(t=32);for(var r=\"\",i=0;i0&&o.length>n&&!o.warned){o.warned=!0;var c=new Error(\"Possible EventEmitter memory leak detected. \"+o.length+\" \"+String(t)+\" listeners added. Use emitter.setMaxListeners() to increase limit\");c.name=\"MaxListenersExceededWarning\",c.emitter=e,c.type=t,c.count=o.length,a=c,console&&console.warn&&console.warn(a)}return e}function p(){for(var e=[],t=0;t0&&(o=t[0]),o instanceof Error)throw o;var a=new Error(\"Unhandled error.\"+(o?\" (\"+o.message+\")\":\"\"));throw a.context=o,a}var c=n[e];if(void 0===c)return!1;if(\"function\"==typeof c)s(c,this,t);else{var u=c.length,d=f(c,u);for(r=0;r=0;s--)if(r[s]===t||r[s].listener===t){o=r[s].listener,n=s;break}if(n<0)return this;0===n?r.shift():function(e,t){for(;t+1=0;i--)this.removeListener(e,t[i]);return this},a.prototype.listeners=function(e){return h(this,e,!0)},a.prototype.rawListeners=function(e){return h(this,e,!1)},a.listenerCount=function(e,t){return\"function\"==typeof e.listenerCount?e.listenerCount(t):g.call(e,t)},a.prototype.listenerCount=g,a.prototype.eventNames=function(){return this._eventsCount>0?i(this._events):[]}},function(e,t,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),function(e){e.Accepted=\"Accepted\",e.Calling=\"Calling\",e.Completed=\"Completed\",e.Confirmed=\"Confirmed\",e.Proceeding=\"Proceeding\",e.Terminated=\"Terminated\",e.Trying=\"Trying\"}(t.TransactionState||(t.TransactionState={}))},function(e,t,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var i=r(2);t.AllowedMethods=[i.C.ACK,i.C.BYE,i.C.CANCEL,i.C.INFO,i.C.INVITE,i.C.MESSAGE,i.C.NOTIFY,i.C.OPTIONS,i.C.PRACK,i.C.REFER,i.C.REGISTER,i.C.SUBSCRIBE]},function(e,t,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),r(0).__exportStar(r(66),t)},function(e,t,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var i=r(0);i.__exportStar(r(24),t),i.__exportStar(r(67),t),i.__exportStar(r(68),t)},function(e,t,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),function(e){e[e.STATUS_EARLY=1]=\"STATUS_EARLY\",e[e.STATUS_CONFIRMED=2]=\"STATUS_CONFIRMED\"}(t.DialogStatus||(t.DialogStatus={})),function(e){e[e.STATUS_NULL=0]=\"STATUS_NULL\",e[e.STATUS_INVITE_SENT=1]=\"STATUS_INVITE_SENT\",e[e.STATUS_1XX_RECEIVED=2]=\"STATUS_1XX_RECEIVED\",e[e.STATUS_INVITE_RECEIVED=3]=\"STATUS_INVITE_RECEIVED\",e[e.STATUS_WAITING_FOR_ANSWER=4]=\"STATUS_WAITING_FOR_ANSWER\",e[e.STATUS_ANSWERED=5]=\"STATUS_ANSWERED\",e[e.STATUS_WAITING_FOR_PRACK=6]=\"STATUS_WAITING_FOR_PRACK\",e[e.STATUS_WAITING_FOR_ACK=7]=\"STATUS_WAITING_FOR_ACK\",e[e.STATUS_CANCELED=8]=\"STATUS_CANCELED\",e[e.STATUS_TERMINATED=9]=\"STATUS_TERMINATED\",e[e.STATUS_ANSWERED_WAITING_FOR_PRACK=10]=\"STATUS_ANSWERED_WAITING_FOR_PRACK\",e[e.STATUS_EARLY_MEDIA=11]=\"STATUS_EARLY_MEDIA\",e[e.STATUS_CONFIRMED=12]=\"STATUS_CONFIRMED\"}(t.SessionStatus||(t.SessionStatus={})),function(e){e[e.ClientContext=0]=\"ClientContext\",e[e.ConfigurationError=1]=\"ConfigurationError\",e[e.Dialog=2]=\"Dialog\",e[e.DigestAuthentication=3]=\"DigestAuthentication\",e[e.DTMF=4]=\"DTMF\",e[e.IncomingMessage=5]=\"IncomingMessage\",e[e.IncomingRequest=6]=\"IncomingRequest\",e[e.IncomingResponse=7]=\"IncomingResponse\",e[e.InvalidStateError=8]=\"InvalidStateError\",e[e.InviteClientContext=9]=\"InviteClientContext\",e[e.InviteServerContext=10]=\"InviteServerContext\",e[e.Logger=11]=\"Logger\",e[e.LoggerFactory=12]=\"LoggerFactory\",e[e.MethodParameterError=13]=\"MethodParameterError\",e[e.NameAddrHeader=14]=\"NameAddrHeader\",e[e.NotSupportedError=15]=\"NotSupportedError\",e[e.OutgoingRequest=16]=\"OutgoingRequest\",e[e.Parameters=17]=\"Parameters\",e[e.PublishContext=18]=\"PublishContext\",e[e.ReferClientContext=19]=\"ReferClientContext\",e[e.ReferServerContext=20]=\"ReferServerContext\",e[e.RegisterContext=21]=\"RegisterContext\",e[e.RenegotiationError=22]=\"RenegotiationError\",e[e.RequestSender=23]=\"RequestSender\",e[e.ServerContext=24]=\"ServerContext\",e[e.Session=25]=\"Session\",e[e.SessionDescriptionHandler=26]=\"SessionDescriptionHandler\",e[e.SessionDescriptionHandlerError=27]=\"SessionDescriptionHandlerError\",e[e.SessionDescriptionHandlerObserver=28]=\"SessionDescriptionHandlerObserver\",e[e.Subscription=29]=\"Subscription\",e[e.Transport=30]=\"Transport\",e[e.UA=31]=\"UA\",e[e.URI=32]=\"URI\"}(t.TypeStrings||(t.TypeStrings={})),function(e){e[e.STATUS_INIT=0]=\"STATUS_INIT\",e[e.STATUS_STARTING=1]=\"STATUS_STARTING\",e[e.STATUS_READY=2]=\"STATUS_READY\",e[e.STATUS_USER_CLOSED=3]=\"STATUS_USER_CLOSED\",e[e.STATUS_NOT_READY=4]=\"STATUS_NOT_READY\"}(t.UAStatus||(t.UAStatus={}))},function(e,t,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var i=r(0).__importStar(r(59));!function(e){e.parse=function(e,t){var r={startRule:t};try{i.parse(e,r)}catch(e){r.data=-1}return r.data},e.nameAddrHeaderParse=function(t){var r=e.parse(t,\"Name_Addr_Header\");return-1!==r?r:void 0},e.URIParse=function(t){var r=e.parse(t,\"SIP_URI\");return-1!==r?r:void 0}}(t.Grammar||(t.Grammar={}))},function(e,t,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var i=r(0);i.__exportStar(r(16),t),i.__exportStar(r(65),t),i.__exportStar(r(48),t)},function(e,t,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var i=r(2),n=function(){function e(e,t){this.core=e,this.dialogState=t,this.core.dialogs.set(this.id,this)}return e.initialDialogStateForUserAgentClient=function(e,t){var r=t.getHeaders(\"record-route\").reverse(),n=t.parseHeader(\"contact\");if(!n)throw new Error(\"Contact undefined.\");if(!(n instanceof i.NameAddrHeader))throw new Error(\"Contact not instance of NameAddrHeader.\");var s=n.uri,o=e.cseq,a=e.callId,c=e.fromTag,u=t.toTag;if(!a)throw new Error(\"Call id undefined.\");if(!c)throw new Error(\"From tag undefined.\");if(!u)throw new Error(\"To tag undefined.\");if(!e.from)throw new Error(\"From undefined.\");if(!e.to)throw new Error(\"To undefined.\");var d=e.from.uri,p=e.to.uri;if(!t.statusCode)throw new Error(\"Incoming response status code undefined.\");return{id:a+c+u,early:t.statusCode<200,callId:a,localTag:c,remoteTag:u,localSequenceNumber:o,remoteSequenceNumber:void 0,localURI:d,remoteURI:p,remoteTarget:s,routeSet:r,secure:!1}},e.initialDialogStateForUserAgentServer=function(e,t,r){void 0===r&&(r=!1);var n=e.getHeaders(\"record-route\"),s=e.parseHeader(\"contact\");if(!s)throw new Error(\"Contact undefined.\");if(!(s instanceof i.NameAddrHeader))throw new Error(\"Contact not instance of NameAddrHeader.\");var o=s.uri,a=e.cseq,c=e.callId,u=t,d=e.fromTag,p=e.from.uri;return{id:c+u+d,early:r,callId:c,localTag:u,remoteTag:d,localSequenceNumber:void 0,remoteSequenceNumber:a,localURI:e.to.uri,remoteURI:p,remoteTarget:o,routeSet:n,secure:!1}},e.prototype.dispose=function(){this.core.dialogs.delete(this.id)},Object.defineProperty(e.prototype,\"id\",{get:function(){return this.dialogState.id},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"early\",{get:function(){return this.dialogState.early},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"callId\",{get:function(){return this.dialogState.callId},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"localTag\",{get:function(){return this.dialogState.localTag},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"remoteTag\",{get:function(){return this.dialogState.remoteTag},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"localSequenceNumber\",{get:function(){return this.dialogState.localSequenceNumber},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"remoteSequenceNumber\",{get:function(){return this.dialogState.remoteSequenceNumber},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"localURI\",{get:function(){return this.dialogState.localURI},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"remoteURI\",{get:function(){return this.dialogState.remoteURI},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"remoteTarget\",{get:function(){return this.dialogState.remoteTarget},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"routeSet\",{get:function(){return this.dialogState.routeSet},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"secure\",{get:function(){return this.dialogState.secure},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"userAgentCore\",{get:function(){return this.core},enumerable:!0,configurable:!0}),e.prototype.confirm=function(){this.dialogState.early=!1},e.prototype.receiveRequest=function(e){if(e.method!==i.C.ACK){if(this.remoteSequenceNumber){if(e.cseq<=this.remoteSequenceNumber)throw new Error(\"Out of sequence in dialog request. Did you forget to call sequenceGuard()?\");this.dialogState.remoteSequenceNumber=e.cseq}this.remoteSequenceNumber||(this.dialogState.remoteSequenceNumber=e.cseq)}},e.prototype.recomputeRouteSet=function(e){this.dialogState.routeSet=e.getHeaders(\"record-route\").reverse()},e.prototype.createOutgoingRequestMessage=function(e,t){var r,i=this.remoteURI,n=this.remoteTag,s=this.localURI,o=this.localTag,a=this.callId;r=t&&t.cseq?t.cseq:this.dialogState.localSequenceNumber?this.dialogState.localSequenceNumber+=1:this.dialogState.localSequenceNumber=1;var c=this.remoteTarget,u=this.routeSet,d=t&&t.extraHeaders,p=t&&t.body;return this.userAgentCore.makeOutgoingRequestMessage(e,c,s,i,{callId:a,cseq:r,fromTag:o,toTag:n,routeSet:u},d,p)},e.prototype.sequenceGuard=function(e){return e.method===i.C.ACK||(!(this.remoteSequenceNumber&&e.cseq<=this.remoteSequenceNumber)||(this.core.replyStateless(e,{statusCode:500}),!1))},e}();t.Dialog=n},function(e,t,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var i=r(0),n=function(e){function t(){return e.call(this)||this}return i.__extends(t,e),t}(r(18).IncomingMessage);t.IncomingRequestMessage=n},function(e,t,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var i=r(14),n=r(7),s=function(){function e(){this.headers={}}return e.prototype.addHeader=function(e,t){var r={raw:t};e=n.headerize(e),this.headers[e]?this.headers[e].push(r):this.headers[e]=[r]},e.prototype.getHeader=function(e){var t=this.headers[n.headerize(e)];if(t)return t[0]?t[0].raw:void 0},e.prototype.getHeaders=function(e){var t=this.headers[n.headerize(e)],r=[];if(!t)return[];for(var i=0,s=t;i=this.headers[e].length)){var r=this.headers[e][t],s=r.raw;if(r.parsed)return r.parsed;var o=i.Grammar.parse(s,e.replace(/-/g,\"_\"));return-1===o?void this.headers[e].splice(t,1):(r.parsed=o,o)}},e.prototype.s=function(e,t){return void 0===t&&(t=0),this.parseHeader(e,t)},e.prototype.setHeader=function(e,t){this.headers[n.headerize(e)]=[{raw:t}]},e.prototype.toString=function(){return this.data},e}();t.IncomingMessage=s},function(e,t,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var i=r(0),n=function(e){function t(t,r,i){var n=e.call(this,i)||this;return n.uri=t,n._displayName=r,n}return i.__extends(t,e),Object.defineProperty(t.prototype,\"friendlyName\",{get:function(){return this.displayName||this.uri.aor},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,\"displayName\",{get:function(){return this._displayName},set:function(e){this._displayName=e},enumerable:!0,configurable:!0}),t.prototype.clone=function(){return new t(this.uri.clone(),this._displayName,JSON.parse(JSON.stringify(this.parameters)))},t.prototype.toString=function(){var e=this.displayName||\"0\"===this.displayName?'\"'+this.displayName+'\" ':\"\";for(var t in e+=\"<\"+this.uri.toString()+\">\",this.parameters)this.parameters.hasOwnProperty(t)&&(e+=\";\"+t,null!==this.parameters[t]&&(e+=\"=\"+this.parameters[t]));return e},t}(r(20).Parameters);t.NameAddrHeader=n},function(e,t,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var i=function(){function e(e){for(var t in this.parameters={},e)e.hasOwnProperty(t)&&this.setParam(t,e[t])}return e.prototype.setParam=function(e,t){e&&(this.parameters[e.toLowerCase()]=null==t?null:t.toString())},e.prototype.getParam=function(e){if(e)return this.parameters[e.toLowerCase()]},e.prototype.hasParam=function(e){return!!e&&!!this.parameters.hasOwnProperty(e.toLowerCase())},e.prototype.deleteParam=function(e){if(e=e.toLowerCase(),this.parameters.hasOwnProperty(e)){var t=this.parameters[e];return delete this.parameters[e],t}},e.prototype.clearParams=function(){this.parameters={}},e}();t.Parameters=i},function(e,t,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var i=r(0),n=function(e){function t(){return e.call(this)||this}return i.__extends(t,e),t}(r(18).IncomingMessage);t.IncomingResponseMessage=n},function(e,t,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var i=r(0),n=function(e){function t(r,i,n,s,o){var a=e.call(this,i,n,t.makeId(r),s,o)||this;return a._request=r,a.user=n,r.setViaHeader(a.id,i.protocol),a}return i.__extends(t,e),t.makeId=function(e){if(\"CANCEL\"===e.method){if(!e.branch)throw new Error(\"Outgoing CANCEL request without a branch.\");return e.branch}return\"z9hG4bK\"+Math.floor(1e7*Math.random())},Object.defineProperty(t.prototype,\"request\",{get:function(){return this._request},enumerable:!0,configurable:!0}),t.prototype.onRequestTimeout=function(){this.user.onRequestTimeout&&this.user.onRequestTimeout()},t}(r(23).Transaction);t.ClientTransaction=n},function(e,t,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var i=r(0),n=r(8),s=r(12),o=function(e){function t(t,r,i,n,s){var o=e.call(this)||this;return o._transport=t,o._user=r,o._id=i,o._state=n,o.logger=r.loggerFactory.getLogger(s,i),o.logger.debug(\"Constructing \"+o.typeToString()+\" with id \"+o.id+\".\"),o}return i.__extends(t,e),t.prototype.dispose=function(){this.logger.debug(\"Destroyed \"+this.typeToString()+\" with id \"+this.id+\".\")},Object.defineProperty(t.prototype,\"id\",{get:function(){return this._id},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,\"kind\",{get:function(){throw new Error(\"Invalid kind.\")},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,\"state\",{get:function(){return this._state},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,\"transport\",{get:function(){return this._transport},enumerable:!0,configurable:!0}),t.prototype.on=function(t,r){return e.prototype.on.call(this,t,r)},t.prototype.logTransportError=function(e,t){this.logger.error(e.message),this.logger.error(\"Transport error occurred in \"+this.typeToString()+\" with id \"+this.id+\".\"),this.logger.error(t)},t.prototype.send=function(e){var t=this;return this.transport.send(e).catch((function(e){if(e instanceof s.TransportError)throw t.onTransportError(e),e;var r;throw r=e&&\"string\"==typeof e.message?new s.TransportError(e.message):new s.TransportError,t.onTransportError(r),r}))},t.prototype.setState=function(e){this.logger.debug('State change to \"'+e+'\" on '+this.typeToString()+\" with id \"+this.id+\".\"),this._state=e,this._user.onStateChange&&this._user.onStateChange(e),this.emit(\"stateChanged\")},t.prototype.typeToString=function(){return\"UnknownType\"},t}(n.EventEmitter);t.Transaction=o},function(e,t,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var i=r(0),n=function(e){function t(t){var r=this.constructor,i=e.call(this,t)||this;return Object.setPrototypeOf(i,r.prototype),i}return i.__extends(t,e),t}(Error);t.Exception=n},function(e,t,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var i=r(0),n=function(e){function t(t,r,i,n,s){var o=e.call(this,r,i,t.viaBranch,n,s)||this;return o._request=t,o.user=i,o}return i.__extends(t,e),Object.defineProperty(t.prototype,\"request\",{get:function(){return this._request},enumerable:!0,configurable:!0}),t}(r(23).Transaction);t.ServerTransaction=n},function(e,t,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var i=r(0),n=r(1),s=function(e){function t(t,r,i){var s=void 0!==t.userAgentCore?t.userAgentCore:t;return e.call(this,n.NonInviteServerTransaction,s,r,i)||this}return i.__extends(t,e),t}(r(5).UserAgentServer);t.NotifyUserAgentServer=s},function(e,t,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),r(0).__exportStar(r(72),t)},function(e,t,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),function(e){e[e.error=0]=\"error\",e[e.warn=1]=\"warn\",e[e.log=2]=\"log\",e[e.debug=3]=\"debug\"}(t.Levels||(t.Levels={}))},function(e,t,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var i=r(92);!function(e){e.version=i.LIBRARY_VERSION,e.USER_AGENT=\"SIP.js/\"+i.LIBRARY_VERSION,e.SIP=\"sip\",e.SIPS=\"sips\",function(e){e.CONNECTION_ERROR=\"Connection Error\",e.INTERNAL_ERROR=\"Internal Error\",e.REQUEST_TIMEOUT=\"Request Timeout\",e.SIP_FAILURE_CODE=\"SIP Failure Code\",e.ADDRESS_INCOMPLETE=\"Address Incomplete\",e.AUTHENTICATION_ERROR=\"Authentication Error\",e.BUSY=\"Busy\",e.DIALOG_ERROR=\"Dialog Error\",e.INCOMPATIBLE_SDP=\"Incompatible SDP\",e.NOT_FOUND=\"Not Found\",e.REDIRECTED=\"Redirected\",e.REJECTED=\"Rejected\",e.UNAVAILABLE=\"Unavailable\",e.BAD_MEDIA_DESCRIPTION=\"Bad Media Description\",e.CANCELED=\"Canceled\",e.EXPIRES=\"Expires\",e.NO_ACK=\"No ACK\",e.NO_ANSWER=\"No Answer\",e.NO_PRACK=\"No PRACK\",e.RTP_TIMEOUT=\"RTP Timeout\",e.USER_DENIED_MEDIA_ACCESS=\"User Denied Media Access\",e.WEBRTC_ERROR=\"WebRTC Error\",e.WEBRTC_NOT_SUPPORTED=\"WebRTC Not Supported\"}(e.causes||(e.causes={})),function(e){e.REQUIRED=\"required\",e.SUPPORTED=\"supported\",e.UNSUPPORTED=\"none\"}(e.supported||(e.supported={})),e.SIP_ERROR_CAUSES={ADDRESS_INCOMPLETE:[484],AUTHENTICATION_ERROR:[401,407],BUSY:[486,600],INCOMPATIBLE_SDP:[488,606],NOT_FOUND:[404,604],REDIRECTED:[300,301,302,305,380],REJECTED:[403,603],UNAVAILABLE:[480,410,408,430]},e.ACK=\"ACK\",e.BYE=\"BYE\",e.CANCEL=\"CANCEL\",e.INFO=\"INFO\",e.INVITE=\"INVITE\",e.MESSAGE=\"MESSAGE\",e.NOTIFY=\"NOTIFY\",e.OPTIONS=\"OPTIONS\",e.REGISTER=\"REGISTER\",e.UPDATE=\"UPDATE\",e.SUBSCRIBE=\"SUBSCRIBE\",e.PUBLISH=\"PUBLISH\",e.REFER=\"REFER\",e.PRACK=\"PRACK\",e.REASON_PHRASE={100:\"Trying\",180:\"Ringing\",181:\"Call Is Being Forwarded\",182:\"Queued\",183:\"Session Progress\",199:\"Early Dialog Terminated\",200:\"OK\",202:\"Accepted\",204:\"No Notification\",300:\"Multiple Choices\",301:\"Moved Permanently\",302:\"Moved Temporarily\",305:\"Use Proxy\",380:\"Alternative Service\",400:\"Bad Request\",401:\"Unauthorized\",402:\"Payment Required\",403:\"Forbidden\",404:\"Not Found\",405:\"Method Not Allowed\",406:\"Not Acceptable\",407:\"Proxy Authentication Required\",408:\"Request Timeout\",410:\"Gone\",412:\"Conditional Request Failed\",413:\"Request Entity Too Large\",414:\"Request-URI Too Long\",415:\"Unsupported Media Type\",416:\"Unsupported URI Scheme\",417:\"Unknown Resource-Priority\",420:\"Bad Extension\",421:\"Extension Required\",422:\"Session Interval Too Small\",423:\"Interval Too Brief\",428:\"Use Identity Header\",429:\"Provide Referrer Identity\",430:\"Flow Failed\",433:\"Anonymity Disallowed\",436:\"Bad Identity-Info\",437:\"Unsupported Certificate\",438:\"Invalid Identity Header\",439:\"First Hop Lacks Outbound Support\",440:\"Max-Breadth Exceeded\",469:\"Bad Info Package\",470:\"Consent Needed\",478:\"Unresolvable Destination\",480:\"Temporarily Unavailable\",481:\"Call/Transaction Does Not Exist\",482:\"Loop Detected\",483:\"Too Many Hops\",484:\"Address Incomplete\",485:\"Ambiguous\",486:\"Busy Here\",487:\"Request Terminated\",488:\"Not Acceptable Here\",489:\"Bad Event\",491:\"Request Pending\",493:\"Undecipherable\",494:\"Security Agreement Required\",500:\"Internal Server Error\",501:\"Not Implemented\",502:\"Bad Gateway\",503:\"Service Unavailable\",504:\"Server Time-out\",505:\"Version Not Supported\",513:\"Message Too Large\",580:\"Precondition Failure\",600:\"Busy Everywhere\",603:\"Decline\",604:\"Does Not Exist Anywhere\",606:\"Not Acceptable\"},e.OPTION_TAGS={\"100rel\":!0,199:!0,answermode:!0,\"early-session\":!0,eventlist:!0,explicitsub:!0,\"from-change\":!0,\"geolocation-http\":!0,\"geolocation-sip\":!0,gin:!0,gruu:!0,histinfo:!0,ice:!0,join:!0,\"multiple-refer\":!0,norefersub:!0,nosub:!0,outbound:!0,path:!0,policy:!0,precondition:!0,pref:!0,privacy:!0,\"recipient-list-invite\":!0,\"recipient-list-message\":!0,\"recipient-list-subscribe\":!0,replaces:!0,\"resource-priority\":!0,\"sdp-anat\":!0,\"sec-agree\":!0,tdialog:!0,timer:!0,uui:!0},function(e){e.INFO=\"info\",e.RTP=\"rtp\"}(e.dtmfType||(e.dtmfType={}))}(t.C||(t.C={}))},function(e,t,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var i=r(29),n=r(14),s=r(31);!function(e){e.defer=function(){var e={};return e.promise=new Promise((function(t,r){e.resolve=t,e.reject=r})),e},e.reducePromises=function(e,t){return e.reduce((function(e,t){return e=e.then(t)}),Promise.resolve(t))},e.str_utf8_length=function(e){return encodeURIComponent(e).replace(/%[A-F\\d]{2}/g,\"U\").length},e.generateFakeSDP=function(e){if(e){var t=e.indexOf(\"o=\"),r=e.indexOf(\"\\r\\n\",t);return\"v=0\\r\\n\"+e.slice(t,r)+\"\\r\\ns=-\\r\\nt=0 0\\r\\nc=IN IP4 0.0.0.0\"}},e.isDecimal=function(e){var t=parseInt(e,10);return!isNaN(t)&&parseFloat(e)===t},e.createRandomToken=function(e,t){void 0===t&&(t=32);for(var r=\"\",i=0;i699)throw new TypeError(\"Invalid statusCode: \"+t);if(t)return e.getReasonHeaderValue(t,r)},e.buildStatusLine=function(t,r){if(!t||t<100||t>699)throw new TypeError(\"Invalid statusCode: \"+t);if(r&&\"string\"!=typeof r&&!(r instanceof String))throw new TypeError(\"Invalid reason: \"+r);return\"SIP/2.0 \"+t+\" \"+(r=e.getReasonPhrase(t,r))+\"\\r\\n\"},e.fromBodyObj=function(e){var t=e.body,r=e.contentType;return{contentDisposition:function(e){return\"application/sdp\"===e?\"session\":\"render\"}(r),contentType:r,content:t}},e.toBodyObj=function(e){return{body:e.content,contentType:e.contentType}}}(t.Utils||(t.Utils={}))},function(e,t,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var i=r(0),n=function(e){function t(t,r,i,n,s,o){var a=e.call(this,s)||this;if(a.headers={},!i)throw new TypeError('missing or invalid \"host\" parameter');for(var c in t=t||\"sip\",o)o.hasOwnProperty(c)&&a.setHeader(c,o[c]);return a.raw={scheme:t,user:r,host:i,port:n},a.normal={scheme:t.toLowerCase(),user:r,host:i.toLowerCase(),port:n},a}return i.__extends(t,e),Object.defineProperty(t.prototype,\"scheme\",{get:function(){return this.normal.scheme},set:function(e){this.raw.scheme=e,this.normal.scheme=e.toLowerCase()},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,\"user\",{get:function(){return this.normal.user},set:function(e){this.normal.user=this.raw.user=e},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,\"host\",{get:function(){return this.normal.host},set:function(e){this.raw.host=e,this.normal.host=e.toLowerCase()},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,\"aor\",{get:function(){return this.normal.user+\"@\"+this.normal.host},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,\"port\",{get:function(){return this.normal.port},set:function(e){this.normal.port=this.raw.port=e},enumerable:!0,configurable:!0}),t.prototype.setHeader=function(e,t){this.headers[this.headerize(e)]=t instanceof Array?t:[t]},t.prototype.getHeader=function(e){if(e)return this.headers[this.headerize(e)]},t.prototype.hasHeader=function(e){return!!e&&!!this.headers.hasOwnProperty(this.headerize(e))},t.prototype.deleteHeader=function(e){if(e=this.headerize(e),this.headers.hasOwnProperty(e)){var t=this.headers[e];return delete this.headers[e],t}},t.prototype.clearHeaders=function(){this.headers={}},t.prototype.clone=function(){return new t(this._raw.scheme,this._raw.user||\"\",this._raw.host,this._raw.port,JSON.parse(JSON.stringify(this.parameters)),JSON.parse(JSON.stringify(this.headers)))},t.prototype.toRaw=function(){return this._toString(this._raw)},t.prototype.toString=function(){return this._toString(this._normal)},Object.defineProperty(t.prototype,\"_normal\",{get:function(){return this.normal},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,\"_raw\",{get:function(){return this.raw},enumerable:!0,configurable:!0}),t.prototype._toString=function(e){var t=e.scheme+\":\";for(var r in e.scheme.toLowerCase().match(\"^sips?$\")||(t+=\"//\"),e.user&&(t+=this.escapeUser(e.user)+\"@\"),t+=e.host,(e.port||0===e.port)&&(t+=\":\"+e.port),this.parameters)this.parameters.hasOwnProperty(r)&&(t+=\";\"+r,null!==this.parameters[r]&&(t+=\"=\"+this.parameters[r]));var i=[];for(var n in this.headers)if(this.headers.hasOwnProperty(n))for(var s in this.headers[n])this.headers[n].hasOwnProperty(s)&&i.push(n+\"=\"+this.headers[n][s]);return i.length>0&&(t+=\"?\"+i.join(\"&\")),t},t.prototype.escapeUser=function(e){var t;try{t=decodeURIComponent(e)}catch(e){throw e}return encodeURIComponent(t).replace(/%3A/gi,\":\").replace(/%2B/gi,\"+\").replace(/%3F/gi,\"?\").replace(/%2F/gi,\"/\")},t.prototype.headerize=function(e){for(var t={\"Call-Id\":\"Call-ID\",Cseq:\"CSeq\",\"Min-Se\":\"Min-SE\",Rack:\"RAck\",Rseq:\"RSeq\",\"Www-Authenticate\":\"WWW-Authenticate\"},r=e.toLowerCase().replace(/_/g,\"-\").split(\"-\"),i=r.length,n=\"\",s=0;s699)throw new Error(\"Invalid status code \"+r);switch(this.state){case o.TransactionState.Calling:if(r>=100&&r<=199)return this.stateTransition(o.TransactionState.Proceeding),void(this.user.receiveResponse&&this.user.receiveResponse(e));if(r>=200&&r<=299)return this.ackRetransmissionCache.set(e.toTag,void 0),this.stateTransition(o.TransactionState.Accepted),void(this.user.receiveResponse&&this.user.receiveResponse(e));if(r>=300&&r<=699)return this.stateTransition(o.TransactionState.Completed),this.ack(e),void(this.user.receiveResponse&&this.user.receiveResponse(e));break;case o.TransactionState.Proceeding:if(r>=100&&r<=199)return void(this.user.receiveResponse&&this.user.receiveResponse(e));if(r>=200&&r<=299)return this.ackRetransmissionCache.set(e.toTag,void 0),this.stateTransition(o.TransactionState.Accepted),void(this.user.receiveResponse&&this.user.receiveResponse(e));if(r>=300&&r<=699)return this.stateTransition(o.TransactionState.Completed),this.ack(e),void(this.user.receiveResponse&&this.user.receiveResponse(e));break;case o.TransactionState.Accepted:if(r>=200&&r<=299){if(!this.ackRetransmissionCache.has(e.toTag))return this.ackRetransmissionCache.set(e.toTag,void 0),void(this.user.receiveResponse&&this.user.receiveResponse(e));var i=this.ackRetransmissionCache.get(e.toTag);return i?void this.send(i.toString()).catch((function(e){t.logTransportError(e,\"Failed to send retransmission of ACK to 2xx response.\")})):void 0}break;case o.TransactionState.Completed:if(r>=300&&r<=699)return void this.ack(e);break;case o.TransactionState.Terminated:break;default:throw new Error(\"Invalid state \"+this.state)}var n=\"Received unexpected \"+r+\" response while in state \"+this.state+\".\";this.logger.warn(n)},t.prototype.onTransportError=function(e){this.user.onTransportError&&this.user.onTransportError(e),this.stateTransition(o.TransactionState.Terminated,!0)},t.prototype.typeToString=function(){return\"INVITE client transaction\"},t.prototype.ack=function(e){var t=this,r=this.request.ruri,i=this.request.callId,n=this.request.cseq,s=this.request.getHeader(\"from\"),o=e.getHeader(\"to\"),a=this.request.getHeader(\"via\"),c=this.request.getHeader(\"route\");if(!s)throw new Error(\"From undefined.\");if(!o)throw new Error(\"To undefined.\");if(!a)throw new Error(\"Via undefined.\");var u=\"ACK \"+r+\" SIP/2.0\\r\\n\";c&&(u+=\"Route: \"+c+\"\\r\\n\"),u+=\"Via: \"+a+\"\\r\\n\",u+=\"To: \"+o+\"\\r\\n\",u+=\"From: \"+s+\"\\r\\n\",u+=\"Call-ID: \"+i+\"\\r\\n\",u+=\"CSeq: \"+n+\" ACK\\r\\n\",u+=\"Max-Forwards: 70\\r\\n\",u+=\"Content-Length: 0\\r\\n\\r\\n\",this.send(u).catch((function(e){t.logTransportError(e,\"Failed to send ACK to non-2xx response.\")}))},t.prototype.stateTransition=function(e,t){var r=this;void 0===t&&(t=!1);var i=function(){throw new Error(\"Invalid state transition from \"+r.state+\" to \"+e)};switch(e){case o.TransactionState.Calling:i();break;case o.TransactionState.Proceeding:this.state!==o.TransactionState.Calling&&i();break;case o.TransactionState.Accepted:case o.TransactionState.Completed:this.state!==o.TransactionState.Calling&&this.state!==o.TransactionState.Proceeding&&i();break;case o.TransactionState.Terminated:this.state!==o.TransactionState.Calling&&this.state!==o.TransactionState.Accepted&&this.state!==o.TransactionState.Completed&&(t||i());break;default:i()}this.B&&(clearTimeout(this.B),this.B=void 0),o.TransactionState.Proceeding,e===o.TransactionState.Completed&&(this.D=setTimeout((function(){return r.timer_D()}),n.Timers.TIMER_D)),e===o.TransactionState.Accepted&&(this.M=setTimeout((function(){return r.timer_M()}),n.Timers.TIMER_M)),e===o.TransactionState.Terminated&&this.dispose(),this.setState(e)},t.prototype.timer_A=function(){},t.prototype.timer_B=function(){this.logger.debug(\"Timer B expired for INVITE client transaction \"+this.id+\".\"),this.state===o.TransactionState.Calling&&(this.onRequestTimeout(),this.stateTransition(o.TransactionState.Terminated))},t.prototype.timer_D=function(){this.logger.debug(\"Timer D expired for INVITE client transaction \"+this.id+\".\"),this.state===o.TransactionState.Completed&&this.stateTransition(o.TransactionState.Terminated)},t.prototype.timer_M=function(){this.logger.debug(\"Timer M expired for INVITE client transaction \"+this.id+\".\"),this.state===o.TransactionState.Accepted&&this.stateTransition(o.TransactionState.Terminated)},t}(s.ClientTransaction);t.InviteClientTransaction=a},function(e,t,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var i=r(0),n=r(2),s=r(1),o=function(e){function t(t,r,i){var o,a=t.createOutgoingRequestMessage(n.C.BYE,i);return o=e.call(this,s.NonInviteClientTransaction,t.userAgentCore,a,r)||this,t.dispose(),o}return i.__extends(t,e),t}(r(3).UserAgentClient);t.ByeUserAgentClient=o},function(e,t,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var i=r(0),n=r(1),s=function(e){function t(t,r,i){return e.call(this,n.NonInviteServerTransaction,t.userAgentCore,r,i)||this}return i.__extends(t,e),t}(r(5).UserAgentServer);t.ByeUserAgentServer=s},function(e,t,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var i=r(0),n=r(2),s=r(1),o=function(e){function t(t,r,i){var o=t.createOutgoingRequestMessage(n.C.INFO,i);return e.call(this,s.NonInviteClientTransaction,t.userAgentCore,o,r)||this}return i.__extends(t,e),t}(r(3).UserAgentClient);t.InfoUserAgentClient=o},function(e,t,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var i=r(0),n=r(1),s=function(e){function t(t,r,i){return e.call(this,n.NonInviteServerTransaction,t.userAgentCore,r,i)||this}return i.__extends(t,e),t}(r(5).UserAgentServer);t.InfoUserAgentServer=s},function(e,t,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var i=r(0),n=r(2),s=r(1),o=function(e){function t(t,r,i){var o=t.createOutgoingRequestMessage(n.C.NOTIFY,i);return e.call(this,s.NonInviteClientTransaction,t.userAgentCore,o,r)||this}return i.__extends(t,e),t}(r(3).UserAgentClient);t.NotifyUserAgentClient=o},function(e,t,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var i=r(0),n=r(2),s=r(1),o=function(e){function t(t,r,i){var o,a=t.createOutgoingRequestMessage(n.C.PRACK,i);return o=e.call(this,s.NonInviteClientTransaction,t.userAgentCore,a,r)||this,t.signalingStateTransition(a),o}return i.__extends(t,e),t}(r(3).UserAgentClient);t.PrackUserAgentClient=o},function(e,t,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var i=r(0),n=r(1),s=function(e){function t(t,r,i){var s=e.call(this,n.NonInviteServerTransaction,t.userAgentCore,r,i)||this;return t.signalingStateTransition(r),s.dialog=t,s}return i.__extends(t,e),t.prototype.accept=function(t){return void 0===t&&(t={statusCode:200}),t.body&&this.dialog.signalingStateTransition(t.body),e.prototype.accept.call(this,t)},t}(r(5).UserAgentServer);t.PrackUserAgentServer=s},function(e,t,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var i=r(0),n=r(2),s=r(1),o=function(e){function t(t,r,i){var o=this,a=t.createOutgoingRequestMessage(n.C.INVITE,i);return(o=e.call(this,s.InviteClientTransaction,t.userAgentCore,a,r)||this).delegate=r,t.signalingStateTransition(a),t.reinviteUserAgentClient=o,o.dialog=t,o}return i.__extends(t,e),t.prototype.receiveResponse=function(e){var t=this,r=e.statusCode?e.statusCode.toString():\"\";if(!r)throw new Error(\"Response status code undefined.\");switch(!0){case/^100$/.test(r):this.delegate&&this.delegate.onTrying&&this.delegate.onTrying({message:e});break;case/^1[0-9]{2}$/.test(r):this.delegate&&this.delegate.onProgress&&this.delegate.onProgress({message:e,session:this.dialog,prack:function(e){throw new Error(\"Unimplemented.\")}});break;case/^2[0-9]{2}$/.test(r):this.dialog.signalingStateTransition(e),this.delegate&&this.delegate.onAccept&&this.delegate.onAccept({message:e,session:this.dialog,ack:function(e){return t.dialog.ack(e)}});break;case/^3[0-9]{2}$/.test(r):this.dialog.signalingStateRollback(),this.dialog.reinviteUserAgentClient=void 0,this.delegate&&this.delegate.onRedirect&&this.delegate.onRedirect({message:e});break;case/^[4-6][0-9]{2}$/.test(r):this.dialog.signalingStateRollback(),this.dialog.reinviteUserAgentClient=void 0,this.delegate&&this.delegate.onReject&&this.delegate.onReject({message:e});break;default:throw new Error(\"Invalid status code \"+r)}},t}(r(3).UserAgentClient);t.ReInviteUserAgentClient=o},function(e,t,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var i=r(0),n=r(1),s=function(e){function t(t,r,i){var s=e.call(this,n.InviteServerTransaction,t.userAgentCore,r,i)||this;return t.reinviteUserAgentServer=s,s.dialog=t,s}return i.__extends(t,e),t.prototype.accept=function(t){void 0===t&&(t={statusCode:200}),t.extraHeaders=t.extraHeaders||[],t.extraHeaders=t.extraHeaders.concat(this.dialog.routeSet.map((function(e){return\"Record-Route: \"+e})));var r=e.prototype.accept.call(this,t),n=this.dialog,s=i.__assign(i.__assign({},r),{session:n});return t.body&&this.dialog.signalingStateTransition(t.body),this.dialog.reConfirm(),s},t.prototype.progress=function(t){void 0===t&&(t={statusCode:180});var r=e.prototype.progress.call(this,t),n=this.dialog,s=i.__assign(i.__assign({},r),{session:n});return t.body&&this.dialog.signalingStateTransition(t.body),s},t.prototype.redirect=function(e,t){throw void 0===t&&(t={statusCode:302}),this.dialog.signalingStateRollback(),this.dialog.reinviteUserAgentServer=void 0,new Error(\"Unimplemented.\")},t.prototype.reject=function(t){return void 0===t&&(t={statusCode:488}),this.dialog.signalingStateRollback(),this.dialog.reinviteUserAgentServer=void 0,e.prototype.reject.call(this,t)},t}(r(5).UserAgentServer);t.ReInviteUserAgentServer=s},function(e,t,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var i=r(0),n=r(2),s=r(1),o=function(e){function t(t,r,i){var o=t.createOutgoingRequestMessage(n.C.REFER,i);return e.call(this,s.NonInviteClientTransaction,t.userAgentCore,o,r)||this}return i.__extends(t,e),t}(r(3).UserAgentClient);t.ReferUserAgentClient=o},function(e,t,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var i=r(0),n=r(1),s=function(e){function t(t,r,i){var s=void 0!==t.userAgentCore?t.userAgentCore:t;return e.call(this,n.NonInviteServerTransaction,s,r,i)||this}return i.__extends(t,e),t}(r(5).UserAgentServer);t.ReferUserAgentServer=s},function(e,t,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var i=r(0),n=r(2),s=r(27),o=r(6),a=r(10),c=r(26),u=r(49),d=function(e){function t(t,r,i,n,s,o){var a=e.call(this,n,s)||this;return a.delegate=o,a._autoRefresh=!1,a._subscriptionEvent=t,a._subscriptionExpires=r,a._subscriptionExpiresInitial=r,a._subscriptionExpiresLastSet=Math.floor(Date.now()/1e3),a._subscriptionRefresh=void 0,a._subscriptionRefreshLastSet=void 0,a._subscriptionState=i,a.logger=n.loggerFactory.getLogger(\"sip.subscribe-dialog\"),a.logger.log(\"SUBSCRIBE dialog \"+a.id+\" constructed\"),a}return i.__extends(t,e),t.initialDialogStateForSubscription=function(e,t){var r=t.getHeaders(\"record-route\"),i=t.parseHeader(\"contact\");if(!i)throw new Error(\"Contact undefined.\");if(!(i instanceof n.NameAddrHeader))throw new Error(\"Contact not instance of NameAddrHeader.\");var s=i.uri,o=e.cseq,a=e.callId,c=e.fromTag,u=t.fromTag;if(!a)throw new Error(\"Call id undefined.\");if(!c)throw new Error(\"From tag undefined.\");if(!u)throw new Error(\"To tag undefined.\");if(!e.from)throw new Error(\"From undefined.\");if(!e.to)throw new Error(\"To undefined.\");return{id:a+c+u,early:!1,callId:a,localTag:c,remoteTag:u,localSequenceNumber:o,remoteSequenceNumber:void 0,localURI:e.from.uri,remoteURI:e.to.uri,remoteTarget:s,routeSet:r,secure:!1}},t.prototype.dispose=function(){e.prototype.dispose.call(this),this.N&&(clearTimeout(this.N),this.N=void 0),this.refreshTimerClear(),this.logger.log(\"SUBSCRIBE dialog \"+this.id+\" destroyed\")},Object.defineProperty(t.prototype,\"autoRefresh\",{get:function(){return this._autoRefresh},set:function(e){this._autoRefresh=!0,this.refreshTimerSet()},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,\"subscriptionEvent\",{get:function(){return this._subscriptionEvent},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,\"subscriptionExpires\",{get:function(){var e=Math.floor(Date.now()/1e3)-this._subscriptionExpiresLastSet,t=this._subscriptionExpires-e;return Math.max(t,0)},set:function(e){if(e<0)throw new Error(\"Expires must be greater than or equal to zero.\");if(this._subscriptionExpires=e,this._subscriptionExpiresLastSet=Math.floor(Date.now()/1e3),this.autoRefresh){var t=this.subscriptionRefresh;(void 0===t||t>=e)&&this.refreshTimerSet()}},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,\"subscriptionExpiresInitial\",{get:function(){return this._subscriptionExpiresInitial},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,\"subscriptionRefresh\",{get:function(){if(void 0!==this._subscriptionRefresh&&void 0!==this._subscriptionRefreshLastSet){var e=Math.floor(Date.now()/1e3)-this._subscriptionRefreshLastSet,t=this._subscriptionRefresh-e;return Math.max(t,0)}},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,\"subscriptionState\",{get:function(){return this._subscriptionState},enumerable:!0,configurable:!0}),t.prototype.receiveRequest=function(t){if(this.logger.log(\"SUBSCRIBE dialog \"+this.id+\" received \"+t.method+\" request\"),this.sequenceGuard(t))switch(e.prototype.receiveRequest.call(this,t),t.method){case n.C.NOTIFY:this.onNotify(t);break;default:this.logger.log(\"SUBSCRIBE dialog \"+this.id+\" received unimplemented \"+t.method+\" request\"),this.core.replyStateless(t,{statusCode:501})}else this.logger.log(\"SUBSCRIBE dialog \"+this.id+\" rejected out of order \"+t.method+\" request.\")},t.prototype.refresh=function(){var e=\"Allow: \"+a.AllowedMethods.toString(),t={};return t.extraHeaders=(t.extraHeaders||[]).slice(),t.extraHeaders.push(e),t.extraHeaders.push(\"Event: \"+this.subscriptionEvent),t.extraHeaders.push(\"Expires: \"+this.subscriptionExpiresInitial),t.extraHeaders.push(\"Contact: \"+this.core.configuration.contact.toString()),this.subscribe(void 0,t)},t.prototype.subscribe=function(e,t){var r=this;if(void 0===t&&(t={}),this.subscriptionState!==s.SubscriptionState.Pending&&this.subscriptionState!==s.SubscriptionState.Active)throw new Error(\"Invalid state \"+this.subscriptionState+'. May only re-subscribe while in state \"pending\" or \"active\".');this.logger.log(\"SUBSCRIBE dialog \"+this.id+\" sending SUBSCRIBE request\");var i=new u.ReSubscribeUserAgentClient(this,e,t);return this.N=setTimeout((function(){return r.timer_N()}),o.Timers.TIMER_N),i},t.prototype.terminate=function(){this.stateTransition(s.SubscriptionState.Terminated),this.onTerminated()},t.prototype.unsubscribe=function(){var e=\"Allow: \"+a.AllowedMethods.toString(),t={};return t.extraHeaders=(t.extraHeaders||[]).slice(),t.extraHeaders.push(e),t.extraHeaders.push(\"Event: \"+this.subscriptionEvent),t.extraHeaders.push(\"Expires: 0\"),t.extraHeaders.push(\"Contact: \"+this.core.configuration.contact.toString()),this.subscribe(void 0,t)},t.prototype.onNotify=function(e){var t=e.parseHeader(\"Event\").event;if(t&&t===this.subscriptionEvent){this.N&&(clearTimeout(this.N),this.N=void 0);var r=e.parseHeader(\"Subscription-State\");if(r&&r.state){var i=r.state,n=r.expires?Math.max(r.expires,0):void 0;switch(i){case\"pending\":this.stateTransition(s.SubscriptionState.Pending,n);break;case\"active\":this.stateTransition(s.SubscriptionState.Active,n);break;case\"terminated\":this.stateTransition(s.SubscriptionState.Terminated,n);break;default:this.logger.warn(\"Unrecognized subscription state.\")}var o=new c.NotifyUserAgentServer(this,e);this.delegate&&this.delegate.onNotify?this.delegate.onNotify(o):o.accept()}else this.core.replyStateless(e,{statusCode:489})}else this.core.replyStateless(e,{statusCode:489})},t.prototype.onRefresh=function(e){this.delegate&&this.delegate.onRefresh&&this.delegate.onRefresh(e)},t.prototype.onTerminated=function(){this.delegate&&this.delegate.onTerminated&&this.delegate.onTerminated()},t.prototype.refreshTimerClear=function(){this.refreshTimer&&(clearTimeout(this.refreshTimer),this.refreshTimer=void 0)},t.prototype.refreshTimerSet=function(){var e=this;if(this.refreshTimerClear(),this.autoRefresh&&this.subscriptionExpires>0){var t=900*this.subscriptionExpires;this._subscriptionRefresh=Math.floor(t/1e3),this._subscriptionRefreshLastSet=Math.floor(Date.now()/1e3),this.refreshTimer=setTimeout((function(){e.refreshTimer=void 0,e._subscriptionRefresh=void 0,e._subscriptionRefreshLastSet=void 0,e.onRefresh(e.refresh())}),t)}},t.prototype.stateTransition=function(e,t){var r=this,i=function(){r.logger.warn(\"Invalid subscription state transition from \"+r.subscriptionState+\" to \"+e)};switch(e){case s.SubscriptionState.Initial:case s.SubscriptionState.NotifyWait:return void i();case s.SubscriptionState.Pending:if(this.subscriptionState!==s.SubscriptionState.NotifyWait&&this.subscriptionState!==s.SubscriptionState.Pending)return void i();break;case s.SubscriptionState.Active:case s.SubscriptionState.Terminated:if(this.subscriptionState!==s.SubscriptionState.NotifyWait&&this.subscriptionState!==s.SubscriptionState.Pending&&this.subscriptionState!==s.SubscriptionState.Active)return void i();break;default:return void i()}e===s.SubscriptionState.Pending&&t&&(this.subscriptionExpires=t),e===s.SubscriptionState.Active&&t&&(this.subscriptionExpires=t),e===s.SubscriptionState.Terminated&&this.dispose(),this._subscriptionState=e},t.prototype.timer_N=function(){this.subscriptionState!==s.SubscriptionState.Terminated&&(this.stateTransition(s.SubscriptionState.Terminated),this.onTerminated())},t}(r(16).Dialog);t.SubscriptionDialog=d},function(e,t,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var i=r(0),n=r(2),s=r(1),o=function(e){function t(t,r,i){var o=this,a=t.createOutgoingRequestMessage(n.C.SUBSCRIBE,i);return(o=e.call(this,s.NonInviteClientTransaction,t.userAgentCore,a,r)||this).dialog=t,o}return i.__extends(t,e),t.prototype.waitNotifyStop=function(){},t.prototype.receiveResponse=function(t){if(t.statusCode&&t.statusCode>=200&&t.statusCode<300){var r=t.getHeader(\"Expires\");if(r){var i=Number(r);this.dialog.subscriptionExpires>i&&(this.dialog.subscriptionExpires=i)}else this.logger.warn(\"Expires header missing in a 200-class response to SUBSCRIBE\")}if(t.statusCode&&t.statusCode>=400&&t.statusCode<700){-1!==[404,405,410,416,480,481,482,483,484,485,489,501,604].indexOf(t.statusCode)&&this.dialog.terminate()}e.prototype.receiveResponse.call(this,t)},t}(r(3).UserAgentClient);t.ReSubscribeUserAgentClient=o},function(e,t,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var i=r(28),n=function(){function e(e,t,r){this.logger=e,this.category=t,this.label=r}return e.prototype.error=function(e){this.genericLog(i.Levels.error,e)},e.prototype.warn=function(e){this.genericLog(i.Levels.warn,e)},e.prototype.log=function(e){this.genericLog(i.Levels.log,e)},e.prototype.debug=function(e){this.genericLog(i.Levels.debug,e)},e.prototype.genericLog=function(e,t){this.logger.genericLog(e,this.category,this.label,t)},e}();t.Logger=n},function(e,t,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var i=r(0);i.__exportStar(r(37),t),i.__exportStar(r(38),t),i.__exportStar(r(77),t),i.__exportStar(r(39),t),i.__exportStar(r(40),t),i.__exportStar(r(78),t),i.__exportStar(r(79),t),i.__exportStar(r(80),t),i.__exportStar(r(81),t),i.__exportStar(r(41),t),i.__exportStar(r(26),t),i.__exportStar(r(82),t),i.__exportStar(r(42),t),i.__exportStar(r(43),t),i.__exportStar(r(44),t),i.__exportStar(r(45),t),i.__exportStar(r(49),t),i.__exportStar(r(83),t),i.__exportStar(r(46),t),i.__exportStar(r(47),t),i.__exportStar(r(84),t),i.__exportStar(r(85),t),i.__exportStar(r(86),t),i.__exportStar(r(87),t),i.__exportStar(r(3),t),i.__exportStar(r(5),t)},function(e,t,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var i=r(0);i.__exportStar(r(94),t),i.__exportStar(r(95),t),i.__exportStar(r(96),t),i.__exportStar(r(97),t),i.__exportStar(r(98),t)},function(e,t,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var i=r(0),n=r(8),s=r(29),o=r(4),a=r(13),c=r(30),u=function(e){function t(r,i,n,s){var o=e.call(this)||this;return o.data={},t.initializer(o,r,i,n,s),o}return i.__extends(t,e),t.initializer=function(e,t,r,i,n){if(e.type=a.TypeStrings.ClientContext,void 0===i)throw new TypeError(\"Not enough arguments\");e.ua=t,e.logger=t.getLogger(\"sip.clientcontext\"),e.method=r;var s=t.normalizeTarget(i);if(!s)throw new TypeError(\"Invalid target: \"+i);var u=t.userAgentCore.configuration.aor;if(n&&n.params&&n.params.fromUri&&!(u=\"string\"==typeof n.params.fromUri?o.Grammar.URIParse(n.params.fromUri):n.params.fromUri))throw new TypeError(\"Invalid from URI: \"+n.params.fromUri);var d=s;if(n&&n.params&&n.params.toUri&&!(d=\"string\"==typeof n.params.toUri?o.Grammar.URIParse(n.params.toUri):n.params.toUri))throw new TypeError(\"Invalid to URI: \"+n.params.toUri);var p,l,h=((n=(n=Object.create(n||Object.prototype))||{}).extraHeaders||[]).slice(),g=n.params||{};n.body&&(p={body:n.body,contentType:n.contentType?n.contentType:\"application/sdp\"},e.body=p),p&&(l=c.Utils.fromBodyObj(p)),e.request=t.userAgentCore.makeOutgoingRequestMessage(r,s,u,d,g,h,l),e.request.from&&(e.localIdentity=e.request.from),e.request.to&&(e.remoteIdentity=e.request.to)},t.prototype.send=function(){var e=this;return this.ua.userAgentCore.request(this.request,{onAccept:function(t){return e.receiveResponse(t.message)},onProgress:function(t){return e.receiveResponse(t.message)},onRedirect:function(t){return e.receiveResponse(t.message)},onReject:function(t){return e.receiveResponse(t.message)},onTrying:function(t){return e.receiveResponse(t.message)}}),this},t.prototype.receiveResponse=function(e){var t=e.statusCode||0,r=c.Utils.getReasonPhrase(t);switch(!0){case/^1[0-9]{2}$/.test(t.toString()):this.emit(\"progress\",e,r);break;case/^2[0-9]{2}$/.test(t.toString()):this.ua.applicants[this.toString()]&&delete this.ua.applicants[this.toString()],this.emit(\"accepted\",e,r);break;default:this.ua.applicants[this.toString()]&&delete this.ua.applicants[this.toString()],this.emit(\"rejected\",e,r),this.emit(\"failed\",e,r)}},t.prototype.onRequestTimeout=function(){this.emit(\"failed\",void 0,s.C.causes.REQUEST_TIMEOUT)},t.prototype.onTransportError=function(){this.emit(\"failed\",void 0,s.C.causes.CONNECTION_ERROR)},t}(n.EventEmitter);t.ClientContext=u},function(e,t,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var i=r(8),n=r(4),s=r(7),o=r(10),a=r(33),c=r(52),u=r(89),d=r(55),p=r(90),l=r(34),h=function(){function e(e,t){void 0===t&&(t={}),this.pendingReinvite=!1,this._state=l.SessionState.Initial,this._stateEventEmitter=new i.EventEmitter,this.delegate=t.delegate,this._userAgent=e}return e.prototype.dispose=function(){var e=this;switch(this.logger.log(\"Session \"+this.id+\" in state \"+this._state+\" is being disposed\"),delete this.userAgent._sessions[this.id],this._sessionDescriptionHandler&&this._sessionDescriptionHandler.close(),this.state){case l.SessionState.Initial:case l.SessionState.Establishing:break;case l.SessionState.Established:return new Promise((function(t,r){e._bye({onAccept:function(){return t()},onRedirect:function(){return t()},onReject:function(){return t()}})}));case l.SessionState.Terminating:case l.SessionState.Terminated:break;default:throw new Error(\"Unknown state.\")}return Promise.resolve()},Object.defineProperty(e.prototype,\"assertedIdentity\",{get:function(){return this._assertedIdentity},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"dialog\",{get:function(){return this._dialog},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"id\",{get:function(){return this._id},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"replacee\",{get:function(){return this._replacee},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"sessionDescriptionHandler\",{get:function(){return this._sessionDescriptionHandler},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"sessionDescriptionHandlerFactory\",{get:function(){return this.userAgent.configuration.sessionDescriptionHandlerFactory},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"state\",{get:function(){return this._state},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"stateChange\",{get:function(){return a._makeEmitter(this._stateEventEmitter)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"userAgent\",{get:function(){return this._userAgent},enumerable:!0,configurable:!0}),e.prototype.invite=function(e){var t=this;if(void 0===e&&(e={}),this.logger.log(\"Session.invite\"),this.state!==l.SessionState.Established)return Promise.reject(new Error(\"Invalid session state \"+this.state));if(this.pendingReinvite)return Promise.reject(new c.RequestPendingError(\"Reinvite in progress. Please wait until complete, then try again.\"));this.pendingReinvite=!0;var r={onAccept:function(r){var i=n.getBody(r.message);if(!i)return t.logger.error(\"Received 2xx response to re-INVITE without a session description\"),t.ackAndBye(r,400,\"Missing session description\"),t.stateTransition(l.SessionState.Terminated),void(t.pendingReinvite=!1);if(e.withoutSdp){var s={sessionDescriptionHandlerOptions:e.sessionDescriptionHandlerOptions,sessionDescriptionHandlerModifiers:e.sessionDescriptionHandlerModifiers};t.setOfferAndGetAnswer(i,s).then((function(e){r.ack({body:e})})).catch((function(e){t.logger.error(\"Failed to handle offer in 2xx response to re-INVITE\"),t.logger.error(e.message),t.state===l.SessionState.Terminated?r.ack():(t.ackAndBye(r,488,\"Bad Media Description\"),t.stateTransition(l.SessionState.Terminated))})).then((function(){t.pendingReinvite=!1,e.requestDelegate&&e.requestDelegate.onAccept&&e.requestDelegate.onAccept(r)}))}else{s={sessionDescriptionHandlerOptions:t._sessionDescriptionHandlerOptions,sessionDescriptionHandlerModifiers:t._sessionDescriptionHandlerModifiers};t.setAnswer(i,s).then((function(){r.ack()})).catch((function(e){t.logger.error(\"Failed to handle answer in 2xx response to re-INVITE\"),t.logger.error(e.message),t.state!==l.SessionState.Terminated?(t.ackAndBye(r,488,\"Bad Media Description\"),t.stateTransition(l.SessionState.Terminated)):r.ack()})).then((function(){t.pendingReinvite=!1,e.requestDelegate&&e.requestDelegate.onAccept&&e.requestDelegate.onAccept(r)}))}},onProgress:function(e){},onRedirect:function(e){},onReject:function(r){t.logger.warn(\"Received a non-2xx response to re-INVITE\"),t.pendingReinvite=!1,e.withoutSdp?e.requestDelegate&&e.requestDelegate.onReject&&e.requestDelegate.onReject(r):t.rollbackOffer().catch((function(e){if(t.logger.error(\"Failed to rollback offer on non-2xx response to re-INVITE\"),t.logger.error(e.message),t.state!==l.SessionState.Terminated){if(!t.dialog)throw new Error(\"Dialog undefined.\");var r=[];r.push(\"Reason: \"+t.getReasonHeaderValue(500,\"Internal Server Error\")),t.dialog.bye(void 0,{extraHeaders:r}),t.stateTransition(l.SessionState.Terminated)}})).then((function(){e.requestDelegate&&e.requestDelegate.onReject&&e.requestDelegate.onReject(r)}))},onTrying:function(e){}},i=e.requestOptions||{};if(i.extraHeaders=(i.extraHeaders||[]).slice(),i.extraHeaders.push(\"Allow: \"+o.AllowedMethods.toString()),i.extraHeaders.push(\"Contact: \"+this._contact),e.withoutSdp){if(!this.dialog)throw this.pendingReinvite=!1,new Error(\"Dialog undefined.\");return Promise.resolve(this.dialog.invite(r,i))}var s={sessionDescriptionHandlerOptions:e.sessionDescriptionHandlerOptions,sessionDescriptionHandlerModifiers:e.sessionDescriptionHandlerModifiers};return this.getOffer(s).then((function(e){if(!t.dialog)throw t.pendingReinvite=!1,new Error(\"Dialog undefined.\");return i.body=e,t.dialog.invite(r,i)})).catch((function(e){throw t.logger.error(e.message),t.logger.error(\"Failed to send re-INVITE\"),t.pendingReinvite=!1,e}))},e.prototype.refer=function(e,t,r){return this.dialog?(this._referrer=e,Promise.resolve(this.dialog.refer(t,r))):Promise.reject(new Error(\"Session dialog undefined.\"))},e.prototype._bye=function(e,t){var r=this;if(!this.dialog)return Promise.reject(new Error(\"Session dialog undefined.\"));var i=this.dialog;switch(i.sessionState){case n.SessionState.Initial:case n.SessionState.Early:throw new Error(\"Invalid dialog state \"+i.sessionState);case n.SessionState.AckWait:return this.stateTransition(l.SessionState.Terminating),new Promise((function(n,s){i.delegate={onAck:function(){var s=i.bye(e,t);r.stateTransition(l.SessionState.Terminated),n(s)},onAckTimeout:function(){var s=i.bye(e,t);r.stateTransition(l.SessionState.Terminated),n(s)}}}));case n.SessionState.Confirmed:var s=i.bye(e,t);return this.stateTransition(l.SessionState.Terminated),Promise.resolve(s);case n.SessionState.Terminated:throw new Error(\"Invalid dialog state \"+i.sessionState);default:throw new Error(\"Unrecognized state.\")}},e.prototype._info=function(e,t){return this.dialog?Promise.resolve(this.dialog.info(e,t)):Promise.reject(new Error(\"Session dialog undefined.\"))},e.prototype.ackAndBye=function(e,t,r){e.ack();var i=[];t&&i.push(\"Reason: \"+this.getReasonHeaderValue(t,r)),e.session.bye(void 0,{extraHeaders:i})},e.prototype.onAckRequest=function(e){var t=this;if(this.logger.log(\"Session.onAckRequest\"),this.state===l.SessionState.Established||this.state===l.SessionState.Terminating){var r=this.dialog;if(!r)throw new Error(\"Dialog undefined.\");switch(r.signalingState){case n.SignalingState.Initial:this.logger.error(\"Invalid signaling state \"+r.signalingState+\".\");var i=[\"Reason: \"+this.getReasonHeaderValue(488,\"Bad Media Description\")];return r.bye(void 0,{extraHeaders:i}),void this.stateTransition(l.SessionState.Terminated);case n.SignalingState.Stable:var s=n.getBody(e.message);if(!s)return;if(\"render\"===s.contentDisposition)return this._renderbody=s.content,void(this._rendertype=s.contentType);if(\"session\"!==s.contentDisposition)return;var o={sessionDescriptionHandlerOptions:this._sessionDescriptionHandlerOptions,sessionDescriptionHandlerModifiers:this._sessionDescriptionHandlerModifiers};return void this.setAnswer(s,o).catch((function(e){t.logger.error(e.message);var i=[\"Reason: \"+t.getReasonHeaderValue(488,\"Bad Media Description\")];r.bye(void 0,{extraHeaders:i}),t.stateTransition(l.SessionState.Terminated)}));case n.SignalingState.HaveLocalOffer:case n.SignalingState.HaveRemoteOffer:this.logger.error(\"Invalid signaling state \"+r.signalingState+\".\");i=[\"Reason: \"+this.getReasonHeaderValue(488,\"Bad Media Description\")];return r.bye(void 0,{extraHeaders:i}),void this.stateTransition(l.SessionState.Terminated);case n.SignalingState.Closed:default:throw new Error(\"Invalid signaling state \"+r.signalingState+\".\")}}else this.logger.error(\"ACK received while in state \"+this.state+\", dropping request\")},e.prototype.onByeRequest=function(e){this.logger.log(\"Session.onByeRequest\"),this.state===l.SessionState.Established?(e.accept(),this.stateTransition(l.SessionState.Terminated)):this.logger.error(\"BYE received while in state \"+this.state+\", dropping request\")},e.prototype.onInfoRequest=function(e){if(this.logger.log(\"Session.onInfoRequest\"),this.state===l.SessionState.Established)if(this.delegate&&this.delegate.onInfo){var t=new u.Info(e);this.delegate.onInfo(t)}else e.accept();else this.logger.error(\"INFO received while in state \"+this.state+\", dropping request\")},e.prototype.onInviteRequest=function(e){var t=this;if(this.logger.log(\"Session.onInviteRequest\"),this.state===l.SessionState.Established){var r=[\"Contact: \"+this._contact];if(e.message.hasHeader(\"P-Asserted-Identity\")){var i=e.message.getHeader(\"P-Asserted-Identity\");if(!i)throw new Error(\"Header undefined.\");this._assertedIdentity=n.Grammar.nameAddrHeaderParse(i)}var s={sessionDescriptionHandlerOptions:this._sessionDescriptionHandlerOptions,sessionDescriptionHandlerModifiers:this._sessionDescriptionHandlerModifiers};this.generateResponseOfferAnswerInDialog(s).then((function(i){var n=e.accept({statusCode:200,extraHeaders:r,body:i});t.delegate&&t.delegate.onInvite&&t.delegate.onInvite(e.message,n.message,200)})).catch((function(i){if(t.logger.error(i.message),t.logger.error(\"Failed to handle to re-INVITE request\"),!t.dialog)throw new Error(\"Dialog undefined.\");if(t.logger.error(t.dialog.signalingState),t.dialog.signalingState!==n.SignalingState.Stable)t.rollbackOffer().then((function(){var r=e.reject({statusCode:488});t.delegate&&t.delegate.onInvite&&t.delegate.onInvite(e.message,r.message,488)})).catch((function(i){t.logger.error(i.message),t.logger.error(\"Failed to rollback offer on re-INVITE request\");var n=e.reject({statusCode:488});if(t.state!==l.SessionState.Terminated){if(!t.dialog)throw new Error(\"Dialog undefined.\");[].push(\"Reason: \"+t.getReasonHeaderValue(500,\"Internal Server Error\")),t.dialog.bye(void 0,{extraHeaders:r}),t.stateTransition(l.SessionState.Terminated)}t.delegate&&t.delegate.onInvite&&t.delegate.onInvite(e.message,n.message,488)}));else{var s=e.reject({statusCode:488});t.delegate&&t.delegate.onInvite&&t.delegate.onInvite(e.message,s.message,488)}}))}else this.logger.error(\"INVITE received while in state \"+this.state+\", dropping request\")},e.prototype.onNotifyRequest=function(e){if(this.logger.log(\"Session.onNotifyRequest\"),this.state===l.SessionState.Established)if(this._referrer&&this._referrer.delegate&&this._referrer.delegate.onNotify){var t=new d.Notification(e);this._referrer.delegate.onNotify(t)}else if(this.delegate&&this.delegate.onNotify){t=new d.Notification(e);this.delegate.onNotify(t)}else e.accept();else this.logger.error(\"NOTIFY received while in state \"+this.state+\", dropping request\")},e.prototype.onPrackRequest=function(e){if(this.logger.log(\"Session.onPrackRequest\"),this.state===l.SessionState.Established)throw new Error(\"Unimplemented.\");this.logger.error(\"PRACK received while in state \"+this.state+\", dropping request\")},e.prototype.onReferRequest=function(e){var t=this;if(this.logger.log(\"Session.onReferRequest\"),this.state===l.SessionState.Established){if(!e.message.hasHeader(\"refer-to\"))return this.logger.warn(\"Invalid REFER packet. A refer-to header is required. Rejecting.\"),void e.reject();var r=new p.Referral(e,this);this.delegate&&this.delegate.onRefer?this.delegate.onRefer(r):(this.logger.log(\"No delegate available to handle REFER, automatically accepting and following.\"),r.accept().then((function(){return r.makeInviter(t._referralInviterOptions).invite()})).catch((function(e){t.logger.error(e.message)})))}else this.logger.error(\"REFER received while in state \"+this.state+\", dropping request\")},e.prototype.generateResponseOfferAnswer=function(e,t){if(this.dialog)return this.generateResponseOfferAnswerInDialog(t);var r=n.getBody(e.message);return r&&\"session\"===r.contentDisposition?this.setOfferAndGetAnswer(r,t):this.getOffer(t)},e.prototype.generateResponseOfferAnswerInDialog=function(e){if(!this.dialog)throw new Error(\"Dialog undefined.\");switch(this.dialog.signalingState){case n.SignalingState.Initial:return this.getOffer(e);case n.SignalingState.HaveLocalOffer:return Promise.resolve(void 0);case n.SignalingState.HaveRemoteOffer:if(!this.dialog.offer)throw new Error(\"Session offer undefined in signaling state \"+this.dialog.signalingState+\".\");return this.setOfferAndGetAnswer(this.dialog.offer,e);case n.SignalingState.Stable:return this.state!==l.SessionState.Established?Promise.resolve(void 0):this.getOffer(e);case n.SignalingState.Closed:default:throw new Error(\"Invalid signaling state \"+this.dialog.signalingState+\".\")}},e.prototype.getOffer=function(e){var t=this,r=this.setupSessionDescriptionHandler(),i=e.sessionDescriptionHandlerOptions,s=e.sessionDescriptionHandlerModifiers;try{return r.getDescription(i,s).then((function(e){return n.fromBodyLegacy(e)})).catch((function(e){t.logger.error(\"Session.getOffer: SDH getDescription rejected...\");var r=e instanceof Error?e:new Error(e);throw t.logger.error(r.message),r}))}catch(e){this.logger.error(\"Session.getOffer: SDH getDescription threw...\");var o=e instanceof Error?e:new Error(e);return this.logger.error(o.message),Promise.reject(o)}},e.prototype.rollbackOffer=function(){var e=this,t=this.setupSessionDescriptionHandler();if(!t.rollbackDescription)return Promise.resolve();try{return t.rollbackDescription().catch((function(t){e.logger.error(\"Session.rollbackOffer: SDH rollbackDescription rejected...\");var r=t instanceof Error?t:new Error(t);throw e.logger.error(r.message),r}))}catch(e){this.logger.error(\"Session.rollbackOffer: SDH rollbackDescription threw...\");var r=e instanceof Error?e:new Error(e);return this.logger.error(r.message),Promise.reject(r)}},e.prototype.setAnswer=function(e,t){var r=this,i=this.setupSessionDescriptionHandler(),n=t.sessionDescriptionHandlerOptions,s=t.sessionDescriptionHandlerModifiers;try{if(!i.hasDescription(e.contentType))return Promise.reject(new c.ContentTypeUnsupportedError)}catch(e){this.logger.error(\"Session.setAnswer: SDH hasDescription threw...\");var o=e instanceof Error?e:new Error(e);return this.logger.error(o.message),Promise.reject(o)}try{return i.setDescription(e.content,n,s).catch((function(e){r.logger.error(\"Session.setAnswer: SDH setDescription rejected...\");var t=e instanceof Error?e:new Error(e);throw r.logger.error(t.message),t}))}catch(e){this.logger.error(\"Session.setAnswer: SDH setDescription threw...\");o=e instanceof Error?e:new Error(e);return this.logger.error(o.message),Promise.reject(o)}},e.prototype.setOfferAndGetAnswer=function(e,t){var r=this,i=this.setupSessionDescriptionHandler(),s=t.sessionDescriptionHandlerOptions,o=t.sessionDescriptionHandlerModifiers;try{if(!i.hasDescription(e.contentType))return Promise.reject(new c.ContentTypeUnsupportedError)}catch(e){this.logger.error(\"Session.setOfferAndGetAnswer: SDH hasDescription threw...\");var a=e instanceof Error?e:new Error(e);return this.logger.error(a.message),Promise.reject(a)}try{return i.setDescription(e.content,s,o).then((function(){return i.getDescription(s,o)})).then((function(e){return n.fromBodyLegacy(e)})).catch((function(e){r.logger.error(\"Session.setOfferAndGetAnswer: SDH setDescription or getDescription rejected...\");var t=e instanceof Error?e:new Error(e);throw r.logger.error(t.message),t}))}catch(e){this.logger.error(\"Session.setOfferAndGetAnswer: SDH setDescription or getDescription threw...\");a=e instanceof Error?e:new Error(e);return this.logger.error(a.message),Promise.reject(a)}},e.prototype.setSessionDescriptionHandler=function(e){if(this._sessionDescriptionHandler)throw new Error(\"Session description handler defined.\");this._sessionDescriptionHandler=e},e.prototype.setupSessionDescriptionHandler=function(){return this._sessionDescriptionHandler?this._sessionDescriptionHandler:(this._sessionDescriptionHandler=this.sessionDescriptionHandlerFactory(this,this.userAgent.configuration.sessionDescriptionHandlerFactoryOptions),this._sessionDescriptionHandler)},e.prototype.stateTransition=function(e){var t=this,r=function(){throw new Error(\"Invalid state transition from \"+t._state+\" to \"+e)};switch(this._state){case l.SessionState.Initial:e!==l.SessionState.Establishing&&e!==l.SessionState.Established&&e!==l.SessionState.Terminating&&e!==l.SessionState.Terminated&&r();break;case l.SessionState.Establishing:e!==l.SessionState.Established&&e!==l.SessionState.Terminating&&e!==l.SessionState.Terminated&&r();break;case l.SessionState.Established:e!==l.SessionState.Terminating&&e!==l.SessionState.Terminated&&r();break;case l.SessionState.Terminating:e!==l.SessionState.Terminated&&r();break;case l.SessionState.Terminated:r();break;default:throw new Error(\"Unrecognized state.\")}this._state=e,this.logger.log(\"Session \"+this.id+\" transitioned to state \"+this._state),this._stateEventEmitter.emit(\"event\",this._state),e===l.SessionState.Terminated&&this.dispose()},e.prototype.getReasonHeaderValue=function(e,t){var r=e,i=s.getReasonPhrase(e);return!i&&t&&(i=t),\"SIP;cause=\"+r+';text=\"'+i+'\"'},e}();t.Session=h},function(e,t,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var i=function(){function e(e){this.incomingNotifyRequest=e}return Object.defineProperty(e.prototype,\"request\",{get:function(){return this.incomingNotifyRequest.message},enumerable:!0,configurable:!0}),e.prototype.accept=function(e){return this.incomingNotifyRequest.accept(e),Promise.resolve()},e.prototype.reject=function(e){return this.incomingNotifyRequest.reject(e),Promise.resolve()},e}();t.Notification=i},function(e,t,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),r(0).__exportStar(r(57),t)},function(e,t,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),function(e){e.ACK=\"ACK\",e.BYE=\"BYE\",e.CANCEL=\"CANCEL\",e.INFO=\"INFO\",e.INVITE=\"INVITE\",e.MESSAGE=\"MESSAGE\",e.NOTIFY=\"NOTIFY\",e.OPTIONS=\"OPTIONS\",e.REGISTER=\"REGISTER\",e.UPDATE=\"UPDATE\",e.SUBSCRIBE=\"SUBSCRIBE\",e.PUBLISH=\"PUBLISH\",e.REFER=\"REFER\",e.PRACK=\"PRACK\"}(t.C||(t.C={}))},function(e,t,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var i=r(17),n=r(21),s=r(35);function o(e){return!(!e||\"string\"!=typeof e.content||\"string\"!=typeof e.contentType||void 0!==e.contentDisposition)||\"string\"==typeof e.contentDisposition}function a(e){return\"application/sdp\"===e?\"session\":\"render\"}t.fromBodyLegacy=function(e){var t=\"string\"==typeof e?e:e.body,r=\"string\"==typeof e?\"application/sdp\":e.contentType;return{contentDisposition:a(r),contentType:r,content:t}},t.getBody=function(e){var t,r,c,u;if(e instanceof i.IncomingRequestMessage&&e.body&&(t=(u=e.parseHeader(\"Content-Disposition\"))?u.type:void 0,r=e.parseHeader(\"Content-Type\"),c=e.body),e instanceof n.IncomingResponseMessage&&e.body&&(t=(u=e.parseHeader(\"Content-Disposition\"))?u.type:void 0,r=e.parseHeader(\"Content-Type\"),c=e.body),e instanceof s.OutgoingRequestMessage&&e.body)if(t=e.getHeader(\"Content-Disposition\"),r=e.getHeader(\"Content-Type\"),\"string\"==typeof e.body){if(!r)throw new Error(\"Header content type header does not equal body content type.\");c=e.body}else{if(r&&r!==e.body.contentType)throw new Error(\"Header content type header does not equal body content type.\");r=e.body.contentType,c=e.body.body}if(o(e)&&(t=e.contentDisposition,r=e.contentType,c=e.content),c){if(r&&!t&&(t=a(r)),!t)throw new Error(\"Content disposition undefined.\");if(!r)throw new Error(\"Content type undefined.\");return{contentDisposition:t,contentType:r,content:c}}},t.isBody=o},function(e,t,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var i=r(0),n=r(19),s=r(31),o=function(e){function t(r,i,n,s){var o=e.call(this)||this;return o.message=r,o.expected=i,o.found=n,o.location=s,o.name=\"SyntaxError\",\"function\"==typeof Error.captureStackTrace&&Error.captureStackTrace(o,t),o}return i.__extends(t,e),t.buildMessage=function(e,t){function r(e){return e.charCodeAt(0).toString(16).toUpperCase()}function i(e){return e.replace(/\\\\/g,\"\\\\\\\\\").replace(/\"/g,'\\\\\"').replace(/\\0/g,\"\\\\0\").replace(/\\t/g,\"\\\\t\").replace(/\\n/g,\"\\\\n\").replace(/\\r/g,\"\\\\r\").replace(/[\\x00-\\x0F]/g,(function(e){return\"\\\\x0\"+r(e)})).replace(/[\\x10-\\x1F\\x7F-\\x9F]/g,(function(e){return\"\\\\x\"+r(e)}))}function n(e){return e.replace(/\\\\/g,\"\\\\\\\\\").replace(/\\]/g,\"\\\\]\").replace(/\\^/g,\"\\\\^\").replace(/-/g,\"\\\\-\").replace(/\\0/g,\"\\\\0\").replace(/\\t/g,\"\\\\t\").replace(/\\n/g,\"\\\\n\").replace(/\\r/g,\"\\\\r\").replace(/[\\x00-\\x0F]/g,(function(e){return\"\\\\x0\"+r(e)})).replace(/[\\x10-\\x1F\\x7F-\\x9F]/g,(function(e){return\"\\\\x\"+r(e)}))}function s(e){switch(e.type){case\"literal\":return'\"'+i(e.text)+'\"';case\"class\":var t=e.parts.map((function(e){return Array.isArray(e)?n(e[0])+\"-\"+n(e[1]):n(e)}));return\"[\"+(e.inverted?\"^\":\"\")+t+\"]\";case\"any\":return\"any character\";case\"end\":return\"end of input\";case\"other\":return e.description}}return\"Expected \"+function(e){var t,r,i=e.map(s);if(i.sort(),i.length>0){for(t=1,r=1;t\",T(\">\",!1),\"\\\\\",T(\"\\\\\",!1),\"[\",T(\"[\",!1),\"]\",T(\"]\",!1),\"{\",T(\"{\",!1),\"}\",T(\"}\",!1),function(){return\"*\"},function(){return\"/\"},function(){return\"=\"},function(){return\"(\"},function(){return\")\"},function(){return\">\"},function(){return\"<\"},function(){return\",\"},function(){return\";\"},function(){return\":\"},function(){return'\"'},/^[!-']/,y([[\"!\",\"'\"]],!1,!1),/^[*-[]/,y([[\"*\",\"[\"]],!1,!1),/^[\\]-~]/,y([[\"]\",\"~\"]],!1,!1),function(e){return e},/^[#-[]/,y([[\"#\",\"[\"]],!1,!1),/^[\\0-\\t]/,y([[\"\\0\",\"\\t\"]],!1,!1),/^[\\x0B-\\f]/,y([[\"\\v\",\"\\f\"]],!1,!1),/^[\\x0E-\\x7F]/,y([[\"\\x0e\",\"\\x7f\"]],!1,!1),function(){(t=t||{data:{}}).data.uri=new s.URI(t.data.scheme,t.data.user,t.data.host,t.data.port),delete t.data.scheme,delete t.data.user,delete t.data.host,delete t.data.host_type,delete t.data.port},function(){(t=t||{data:{}}).data.uri=new s.URI(t.data.scheme,t.data.user,t.data.host,t.data.port,t.data.uri_params,t.data.uri_headers),delete t.data.scheme,delete t.data.user,delete t.data.host,delete t.data.host_type,delete t.data.port,delete t.data.uri_params,\"SIP_URI\"===t.startRule&&(t.data=t.data.uri)},\"sips\",T(\"sips\",!0),\"sip\",T(\"sip\",!0),function(e){(t=t||{data:{}}).data.scheme=e},function(){(t=t||{data:{}}).data.user=decodeURIComponent(m().slice(0,-1))},function(){(t=t||{data:{}}).data.password=m()},function(){return(t=t||{data:{}}).data.host=m(),t.data.host},function(){return(t=t||{data:{}}).data.host_type=\"domain\",m()},/^[a-zA-Z0-9_\\-]/,y([[\"a\",\"z\"],[\"A\",\"Z\"],[\"0\",\"9\"],\"_\",\"-\"],!1,!1),/^[a-zA-Z0-9\\-]/,y([[\"a\",\"z\"],[\"A\",\"Z\"],[\"0\",\"9\"],\"-\"],!1,!1),function(){return(t=t||{data:{}}).data.host_type=\"IPv6\",m()},\"::\",T(\"::\",!1),function(){return(t=t||{data:{}}).data.host_type=\"IPv6\",m()},function(){return(t=t||{data:{}}).data.host_type=\"IPv4\",m()},\"25\",T(\"25\",!1),/^[0-5]/,y([[\"0\",\"5\"]],!1,!1),\"2\",T(\"2\",!1),/^[0-4]/,y([[\"0\",\"4\"]],!1,!1),\"1\",T(\"1\",!1),/^[1-9]/,y([[\"1\",\"9\"]],!1,!1),function(e){return t=t||{data:{}},e=parseInt(e.join(\"\")),t.data.port=e,e},\"transport=\",T(\"transport=\",!0),\"udp\",T(\"udp\",!0),\"tcp\",T(\"tcp\",!0),\"sctp\",T(\"sctp\",!0),\"tls\",T(\"tls\",!0),function(e){(t=t||{data:{}}).data.uri_params||(t.data.uri_params={}),t.data.uri_params.transport=e.toLowerCase()},\"user=\",T(\"user=\",!0),\"phone\",T(\"phone\",!0),\"ip\",T(\"ip\",!0),function(e){(t=t||{data:{}}).data.uri_params||(t.data.uri_params={}),t.data.uri_params.user=e.toLowerCase()},\"method=\",T(\"method=\",!0),function(e){(t=t||{data:{}}).data.uri_params||(t.data.uri_params={}),t.data.uri_params.method=e},\"ttl=\",T(\"ttl=\",!0),function(e){(t=t||{data:{}}).data.params||(t.data.params={}),t.data.params.ttl=e},\"maddr=\",T(\"maddr=\",!0),function(e){(t=t||{data:{}}).data.uri_params||(t.data.uri_params={}),t.data.uri_params.maddr=e},\"lr\",T(\"lr\",!0),function(){(t=t||{data:{}}).data.uri_params||(t.data.uri_params={}),t.data.uri_params.lr=void 0},function(e,r){(t=t||{data:{}}).data.uri_params||(t.data.uri_params={}),r=null===r?void 0:r[1],t.data.uri_params[e.toLowerCase()]=r},function(e,r){e=e.join(\"\").toLowerCase(),r=r.join(\"\"),(t=t||{data:{}}).data.uri_headers||(t.data.uri_headers={}),t.data.uri_headers[e]?t.data.uri_headers[e].push(r):t.data.uri_headers[e]=[r]},function(){\"Refer_To\"===(t=t||{data:{}}).startRule&&(t.data.uri=new s.URI(t.data.scheme,t.data.user,t.data.host,t.data.port,t.data.uri_params,t.data.uri_headers),delete t.data.scheme,delete t.data.user,delete t.data.host,delete t.data.host_type,delete t.data.port,delete t.data.uri_params)},\"//\",T(\"//\",!1),function(){(t=t||{data:{}}).data.scheme=m()},T(\"SIP\",!0),function(){(t=t||{data:{}}).data.sip_version=m()},\"INVITE\",T(\"INVITE\",!1),\"ACK\",T(\"ACK\",!1),\"VXACH\",T(\"VXACH\",!1),\"OPTIONS\",T(\"OPTIONS\",!1),\"BYE\",T(\"BYE\",!1),\"CANCEL\",T(\"CANCEL\",!1),\"REGISTER\",T(\"REGISTER\",!1),\"SUBSCRIBE\",T(\"SUBSCRIBE\",!1),\"NOTIFY\",T(\"NOTIFY\",!1),\"REFER\",T(\"REFER\",!1),\"PUBLISH\",T(\"PUBLISH\",!1),function(){return(t=t||{data:{}}).data.method=m(),t.data.method},function(e){(t=t||{data:{}}).data.status_code=parseInt(e.join(\"\"))},function(){(t=t||{data:{}}).data.reason_phrase=m()},function(){(t=t||{data:{}}).data=m()},function(){var e,r;for(r=(t=t||{data:{}}).data.multi_header.length,e=0;e\"\"6>7?.A &2@\"\"6@7A.5 &2B\"\"6B7C.) &2D\"\"6D7E'),R(\";).# &;,\"),R('2F\"\"6F7G.} &2H\"\"6H7I.q &2J\"\"6J7K.e &2L\"\"6L7M.Y &2N\"\"6N7O.M &2P\"\"6P7Q.A &2R\"\"6R7S.5 &2T\"\"6T7U.) &2V\"\"6V7W'),R('%%2X\"\"6X7Y/5#;#/,$;#/#$+#)(#\\'#(\"\\'#&\\'#/\"!&,)'),R('%%$;$0#*;$&/,#; /#$+\")(\"\\'#&\\'#.\" &\"/=#$;$/�#*;$&&&#/\\'$8\":Z\" )(\"\\'#&\\'#'),R(';..\" &\"'),R(\"%$;'.# &;(0)*;'.# &;(&/?#28\\\"\\\"6879/0$;//'$8#:[# )(#'#(\\\"'#&'#\"),R('%%$;2/�#*;2&&&#/g#$%$;.0#*;.&/,#;2/#$+\")(\"\\'#&\\'#0=*%$;.0#*;.&/,#;2/#$+\")(\"\\'#&\\'#&/#$+\")(\"\\'#&\\'#/\"!&,)'),R('4\\\\\"\"5!7].# &;3'),R('4^\"\"5!7_'),R('4`\"\"5!7a'),R(';!.) &4b\"\"5!7c'),R('%$;).\\x95 &2F\"\"6F7G.\\x89 &2J\"\"6J7K.} &2L\"\"6L7M.q &2X\"\"6X7Y.e &2P\"\"6P7Q.Y &2H\"\"6H7I.M &2@\"\"6@7A.A &2d\"\"6d7e.5 &2R\"\"6R7S.) &2N\"\"6N7O/\\x9e#0\\x9b*;).\\x95 &2F\"\"6F7G.\\x89 &2J\"\"6J7K.} &2L\"\"6L7M.q &2X\"\"6X7Y.e &2P\"\"6P7Q.Y &2H\"\"6H7I.M &2@\"\"6@7A.A &2d\"\"6d7e.5 &2R\"\"6R7S.) &2N\"\"6N7O&&&#/\"!&,)'),R('%$;).\\x89 &2F\"\"6F7G.} &2L\"\"6L7M.q &2X\"\"6X7Y.e &2P\"\"6P7Q.Y &2H\"\"6H7I.M &2@\"\"6@7A.A &2d\"\"6d7e.5 &2R\"\"6R7S.) &2N\"\"6N7O/\\x92#0\\x8f*;).\\x89 &2F\"\"6F7G.} &2L\"\"6L7M.q &2X\"\"6X7Y.e &2P\"\"6P7Q.Y &2H\"\"6H7I.M &2@\"\"6@7A.A &2d\"\"6d7e.5 &2R\"\"6R7S.) &2N\"\"6N7O&&&#/\"!&,)'),R('2T\"\"6T7U.\\xe3 &2V\"\"6V7W.\\xd7 &2f\"\"6f7g.\\xcb &2h\"\"6h7i.\\xbf &2:\"\"6:7;.\\xb3 &2D\"\"6D7E.\\xa7 &22\"\"6273.\\x9b &28\"\"6879.\\x8f &2j\"\"6j7k.\\x83 &;&.} &24\"\"6475.q &2l\"\"6l7m.e &2n\"\"6n7o.Y &26\"\"6677.M &2>\"\"6>7?.A &2p\"\"6p7q.5 &2r\"\"6r7s.) &;\\'.# &;('),R('%$;).\\u012b &2F\"\"6F7G.\\u011f &2J\"\"6J7K.\\u0113 &2L\"\"6L7M.\\u0107 &2X\"\"6X7Y.\\xfb &2P\"\"6P7Q.\\xef &2H\"\"6H7I.\\xe3 &2@\"\"6@7A.\\xd7 &2d\"\"6d7e.\\xcb &2R\"\"6R7S.\\xbf &2N\"\"6N7O.\\xb3 &2T\"\"6T7U.\\xa7 &2V\"\"6V7W.\\x9b &2f\"\"6f7g.\\x8f &2h\"\"6h7i.\\x83 &28\"\"6879.w &2j\"\"6j7k.k &;&.e &24\"\"6475.Y &2l\"\"6l7m.M &2n\"\"6n7o.A &26\"\"6677.5 &2p\"\"6p7q.) &2r\"\"6r7s/\\u0134#0\\u0131*;).\\u012b &2F\"\"6F7G.\\u011f &2J\"\"6J7K.\\u0113 &2L\"\"6L7M.\\u0107 &2X\"\"6X7Y.\\xfb &2P\"\"6P7Q.\\xef &2H\"\"6H7I.\\xe3 &2@\"\"6@7A.\\xd7 &2d\"\"6d7e.\\xcb &2R\"\"6R7S.\\xbf &2N\"\"6N7O.\\xb3 &2T\"\"6T7U.\\xa7 &2V\"\"6V7W.\\x9b &2f\"\"6f7g.\\x8f &2h\"\"6h7i.\\x83 &28\"\"6879.w &2j\"\"6j7k.k &;&.e &24\"\"6475.Y &2l\"\"6l7m.M &2n\"\"6n7o.A &26\"\"6677.5 &2p\"\"6p7q.) &2r\"\"6r7s&&&#/\"!&,)'),R(\"%;//?#2P\\\"\\\"6P7Q/0$;//'$8#:t# )(#'#(\\\"'#&'#\"),R(\"%;//?#24\\\"\\\"6475/0$;//'$8#:u# )(#'#(\\\"'#&'#\"),R(\"%;//?#2>\\\"\\\"6>7?/0$;//'$8#:v# )(#'#(\\\"'#&'#\"),R(\"%;//?#2T\\\"\\\"6T7U/0$;//'$8#:w# )(#'#(\\\"'#&'#\"),R(\"%;//?#2V\\\"\\\"6V7W/0$;//'$8#:x# )(#'#(\\\"'#&'#\"),R('%2h\"\"6h7i/0#;//\\'$8\":y\" )(\"\\'#&\\'#'),R('%;//6#2f\"\"6f7g/\\'$8\":z\" )(\"\\'#&\\'#'),R(\"%;//?#2D\\\"\\\"6D7E/0$;//'$8#:{# )(#'#(\\\"'#&'#\"),R(\"%;//?#22\\\"\\\"6273/0$;//'$8#:|# )(#'#(\\\"'#&'#\"),R(\"%;//?#28\\\"\\\"6879/0$;//'$8#:}# )(#'#(\\\"'#&'#\"),R(\"%;//0#;&/'$8\\\":~\\\" )(\\\"'#&'#\"),R(\"%;&/0#;//'$8\\\":~\\\" )(\\\"'#&'#\"),R(\"%;=/T#$;G.) &;K.# &;F0/*;G.) &;K.# &;F&/,$;>/#$+#)(#'#(\\\"'#&'#\"),R('4\\x7f\"\"5!7\\x80.A &4\\x81\"\"5!7\\x82.5 &4\\x83\"\"5!7\\x84.) &;3.# &;.'),R(\"%%;//Q#;&/H$$;J.# &;K0)*;J.# &;K&/,$;&/#$+$)($'#(#'#(\\\"'#&'#/\\\"!&,)\"),R(\"%;//]#;&/T$%$;J.# &;K0)*;J.# &;K&/\\\"!&,)/1$;&/($8$:\\x85$!!)($'#(#'#(\\\"'#&'#\"),R(';..G &2L\"\"6L7M.; &4\\x86\"\"5!7\\x87./ &4\\x83\"\"5!7\\x84.# &;3'),R('%2j\"\"6j7k/J#4\\x88\"\"5!7\\x89.5 &4\\x8a\"\"5!7\\x8b.) &4\\x8c\"\"5!7\\x8d/#$+\")(\"\\'#&\\'#'),R(\"%;N/M#28\\\"\\\"6879/>$;O.\\\" &\\\"/0$;S/'$8$:\\x8e$ )($'#(#'#(\\\"'#&'#\"),R(\"%;N/d#28\\\"\\\"6879/U$;O.\\\" &\\\"/G$;S/>$;_/5$;l.\\\" &\\\"/'$8&:\\x8f& )(&'#(%'#($'#(#'#(\\\"'#&'#\"),R('%3\\x90\"\"5$7\\x91.) &3\\x92\"\"5#7\\x93/\\' 8!:\\x94!! )'),R('%;P/]#%28\"\"6879/,#;R/#$+\")(\"\\'#&\\'#.\" &\"/6$2:\"\"6:7;/\\'$8#:\\x95# )(#\\'#(\"\\'#&\\'#'),R(\"$;+.) &;-.# &;Q/2#0/*;+.) &;-.# &;Q&&&#\"),R('2<\"\"6<7=.q &2>\"\"6>7?.e &2@\"\"6@7A.Y &2B\"\"6B7C.M &2D\"\"6D7E.A &22\"\"6273.5 &26\"\"6677.) &24\"\"6475'),R('%$;+._ &;-.Y &2<\"\"6<7=.M &2>\"\"6>7?.A &2@\"\"6@7A.5 &2B\"\"6B7C.) &2D\"\"6D7E0e*;+._ &;-.Y &2<\"\"6<7=.M &2>\"\"6>7?.A &2@\"\"6@7A.5 &2B\"\"6B7C.) &2D\"\"6D7E&/& 8!:\\x96! )'),R('%;T/J#%28\"\"6879/,#;^/#$+\")(\"\\'#&\\'#.\" &\"/#$+\")(\"\\'#&\\'#'),R(\"%;U.) &;\\\\.# &;X/& 8!:\\x97! )\"),R('%$%;V/2#2J\"\"6J7K/#$+\")(\"\\'#&\\'#0<*%;V/2#2J\"\"6J7K/#$+\")(\"\\'#&\\'#&/D#;W/;$2J\"\"6J7K.\" &\"/\\'$8#:\\x98# )(#\\'#(\"\\'#&\\'#'),R('$4\\x99\"\"5!7\\x9a/,#0)*4\\x99\"\"5!7\\x9a&&&#'),R('%4$\"\"5!7%/?#$4\\x9b\"\"5!7\\x9c0)*4\\x9b\"\"5!7\\x9c&/#$+\")(\"\\'#&\\'#'),R('%2l\"\"6l7m/?#;Y/6$2n\"\"6n7o/\\'$8#:\\x9d# )(#\\'#(\"\\'#&\\'#'),R('%%;Z/\\xb3#28\"\"6879/\\xa4$;Z/\\x9b$28\"\"6879/\\x8c$;Z/\\x83$28\"\"6879/t$;Z/k$28\"\"6879/\\\\$;Z/S$28\"\"6879/D$;Z/;$28\"\"6879/,$;[/#$+-)(-\\'#(,\\'#(+\\'#(*\\'#()\\'#((\\'#(\\'\\'#(&\\'#(%\\'#($\\'#(#\\'#(\"\\'#&\\'#.\\u0790 &%2\\x9e\"\"6\\x9e7\\x9f/\\xa4#;Z/\\x9b$28\"\"6879/\\x8c$;Z/\\x83$28\"\"6879/t$;Z/k$28\"\"6879/\\\\$;Z/S$28\"\"6879/D$;Z/;$28\"\"6879/,$;[/#$+,)(,\\'#(+\\'#(*\\'#()\\'#((\\'#(\\'\\'#(&\\'#(%\\'#($\\'#(#\\'#(\"\\'#&\\'#.\\u06f9 &%2\\x9e\"\"6\\x9e7\\x9f/\\x8c#;Z/\\x83$28\"\"6879/t$;Z/k$28\"\"6879/\\\\$;Z/S$28\"\"6879/D$;Z/;$28\"\"6879/,$;[/#$+*)(*\\'#()\\'#((\\'#(\\'\\'#(&\\'#(%\\'#($\\'#(#\\'#(\"\\'#&\\'#.\\u067a &%2\\x9e\"\"6\\x9e7\\x9f/t#;Z/k$28\"\"6879/\\\\$;Z/S$28\"\"6879/D$;Z/;$28\"\"6879/,$;[/#$+()((\\'#(\\'\\'#(&\\'#(%\\'#($\\'#(#\\'#(\"\\'#&\\'#.\\u0613 &%2\\x9e\"\"6\\x9e7\\x9f/\\\\#;Z/S$28\"\"6879/D$;Z/;$28\"\"6879/,$;[/#$+&)(&\\'#(%\\'#($\\'#(#\\'#(\"\\'#&\\'#.\\u05c4 &%2\\x9e\"\"6\\x9e7\\x9f/D#;Z/;$28\"\"6879/,$;[/#$+$)($\\'#(#\\'#(\"\\'#&\\'#.\\u058d &%2\\x9e\"\"6\\x9e7\\x9f/,#;[/#$+\")(\"\\'#&\\'#.\\u056e &%2\\x9e\"\"6\\x9e7\\x9f/,#;Z/#$+\")(\"\\'#&\\'#.\\u054f &%;Z/\\x9b#2\\x9e\"\"6\\x9e7\\x9f/\\x8c$;Z/\\x83$28\"\"6879/t$;Z/k$28\"\"6879/\\\\$;Z/S$28\"\"6879/D$;Z/;$28\"\"6879/,$;[/#$++)(+\\'#(*\\'#()\\'#((\\'#(\\'\\'#(&\\'#(%\\'#($\\'#(#\\'#(\"\\'#&\\'#.\\u04c7 &%;Z/\\xaa#%28\"\"6879/,#;Z/#$+\")(\"\\'#&\\'#.\" &\"/\\x83$2\\x9e\"\"6\\x9e7\\x9f/t$;Z/k$28\"\"6879/\\\\$;Z/S$28\"\"6879/D$;Z/;$28\"\"6879/,$;[/#$+*)(*\\'#()\\'#((\\'#(\\'\\'#(&\\'#(%\\'#($\\'#(#\\'#(\"\\'#&\\'#.\\u0430 &%;Z/\\xb9#%28\"\"6879/,#;Z/#$+\")(\"\\'#&\\'#.\" &\"/\\x92$%28\"\"6879/,#;Z/#$+\")(\"\\'#&\\'#.\" &\"/k$2\\x9e\"\"6\\x9e7\\x9f/\\\\$;Z/S$28\"\"6879/D$;Z/;$28\"\"6879/,$;[/#$+))()\\'#((\\'#(\\'\\'#(&\\'#(%\\'#($\\'#(#\\'#(\"\\'#&\\'#.\\u038a &%;Z/\\xc8#%28\"\"6879/,#;Z/#$+\")(\"\\'#&\\'#.\" &\"/\\xa1$%28\"\"6879/,#;Z/#$+\")(\"\\'#&\\'#.\" &\"/z$%28\"\"6879/,#;Z/#$+\")(\"\\'#&\\'#.\" &\"/S$2\\x9e\"\"6\\x9e7\\x9f/D$;Z/;$28\"\"6879/,$;[/#$+()((\\'#(\\'\\'#(&\\'#(%\\'#($\\'#(#\\'#(\"\\'#&\\'#.\\u02d5 &%;Z/\\xd7#%28\"\"6879/,#;Z/#$+\")(\"\\'#&\\'#.\" &\"/\\xb0$%28\"\"6879/,#;Z/#$+\")(\"\\'#&\\'#.\" &\"/\\x89$%28\"\"6879/,#;Z/#$+\")(\"\\'#&\\'#.\" &\"/b$%28\"\"6879/,#;Z/#$+\")(\"\\'#&\\'#.\" &\"/;$2\\x9e\"\"6\\x9e7\\x9f/,$;[/#$+\\')(\\'\\'#(&\\'#(%\\'#($\\'#(#\\'#(\"\\'#&\\'#.\\u0211 &%;Z/\\xfe#%28\"\"6879/,#;Z/#$+\")(\"\\'#&\\'#.\" &\"/\\xd7$%28\"\"6879/,#;Z/#$+\")(\"\\'#&\\'#.\" &\"/\\xb0$%28\"\"6879/,#;Z/#$+\")(\"\\'#&\\'#.\" &\"/\\x89$%28\"\"6879/,#;Z/#$+\")(\"\\'#&\\'#.\" &\"/b$%28\"\"6879/,#;Z/#$+\")(\"\\'#&\\'#.\" &\"/;$2\\x9e\"\"6\\x9e7\\x9f/,$;Z/#$+()((\\'#(\\'\\'#(&\\'#(%\\'#($\\'#(#\\'#(\"\\'#&\\'#.\\u0126 &%;Z/\\u011c#%28\"\"6879/,#;Z/#$+\")(\"\\'#&\\'#.\" &\"/\\xf5$%28\"\"6879/,#;Z/#$+\")(\"\\'#&\\'#.\" &\"/\\xce$%28\"\"6879/,#;Z/#$+\")(\"\\'#&\\'#.\" &\"/\\xa7$%28\"\"6879/,#;Z/#$+\")(\"\\'#&\\'#.\" &\"/\\x80$%28\"\"6879/,#;Z/#$+\")(\"\\'#&\\'#.\" &\"/Y$%28\"\"6879/,#;Z/#$+\")(\"\\'#&\\'#.\" &\"/2$2\\x9e\"\"6\\x9e7\\x9f/#$+()((\\'#(\\'\\'#(&\\'#(%\\'#($\\'#(#\\'#(\"\\'#&\\'#/& 8!:\\xa0! )'),R('%;#/M#;#.\" &\"/?$;#.\" &\"/1$;#.\" &\"/#$+$)($\\'#(#\\'#(\"\\'#&\\'#'),R(\"%;Z/;#28\\\"\\\"6879/,$;Z/#$+#)(#'#(\\\"'#&'#.# &;\\\\\"),R(\"%;]/o#2J\\\"\\\"6J7K/`$;]/W$2J\\\"\\\"6J7K/H$;]/?$2J\\\"\\\"6J7K/0$;]/'$8':\\xa1' )(''#(&'#(%'#($'#(#'#(\\\"'#&'#\"),R('%2\\xa2\"\"6\\xa27\\xa3/2#4\\xa4\"\"5!7\\xa5/#$+\")(\"\\'#&\\'#.\\x98 &%2\\xa6\"\"6\\xa67\\xa7/;#4\\xa8\"\"5!7\\xa9/,$;!/#$+#)(#\\'#(\"\\'#&\\'#.j &%2\\xaa\"\"6\\xaa7\\xab/5#;!/,$;!/#$+#)(#\\'#(\"\\'#&\\'#.B &%4\\xac\"\"5!7\\xad/,#;!/#$+\")(\"\\'#&\\'#.# &;!'),R('%%;!.\" &\"/[#;!.\" &\"/M$;!.\" &\"/?$;!.\" &\"/1$;!.\" &\"/#$+%)(%\\'#($\\'#(#\\'#(\"\\'#&\\'#/\\' 8!:\\xae!! )'),R('$%22\"\"6273/,#;`/#$+\")(\"\\'#&\\'#0<*%22\"\"6273/,#;`/#$+\")(\"\\'#&\\'#&'),R(\";a.A &;b.; &;c.5 &;d./ &;e.) &;f.# &;g\"),R('%3\\xaf\"\"5*7\\xb0/a#3\\xb1\"\"5#7\\xb2.G &3\\xb3\"\"5#7\\xb4.; &3\\xb5\"\"5$7\\xb6./ &3\\xb7\"\"5#7\\xb8.# &;6/($8\":\\xb9\"! )(\"\\'#&\\'#'),R('%3\\xba\"\"5%7\\xbb/I#3\\xbc\"\"5%7\\xbd./ &3\\xbe\"\"5\"7\\xbf.# &;6/($8\":\\xc0\"! )(\"\\'#&\\'#'),R('%3\\xc1\"\"5\\'7\\xc2/1#;\\x90/($8\":\\xc3\"! )(\"\\'#&\\'#'),R('%3\\xc4\"\"5$7\\xc5/1#;\\xf0/($8\":\\xc6\"! )(\"\\'#&\\'#'),R('%3\\xc7\"\"5&7\\xc8/1#;T/($8\":\\xc9\"! )(\"\\'#&\\'#'),R('%3\\xca\"\"5\"7\\xcb/N#%2>\"\"6>7?/,#;6/#$+\")(\"\\'#&\\'#.\" &\"/\\'$8\":\\xcc\" )(\"\\'#&\\'#'),R('%;h/P#%2>\"\"6>7?/,#;i/#$+\")(\"\\'#&\\'#.\" &\"/)$8\":\\xcd\"\"! )(\"\\'#&\\'#'),R('%$;j/�#*;j&&&#/\"!&,)'),R('%$;j/�#*;j&&&#/\"!&,)'),R(\";k.) &;+.# &;-\"),R('2l\"\"6l7m.e &2n\"\"6n7o.Y &24\"\"6475.M &28\"\"6879.A &2<\"\"6<7=.5 &2@\"\"6@7A.) &2B\"\"6B7C'),R('%26\"\"6677/n#;m/e$$%2<\"\"6<7=/,#;m/#$+\")(\"\\'#&\\'#0<*%2<\"\"6<7=/,#;m/#$+\")(\"\\'#&\\'#&/#$+#)(#\\'#(\"\\'#&\\'#'),R('%;n/A#2>\"\"6>7?/2$;o/)$8#:\\xce#\"\" )(#\\'#(\"\\'#&\\'#'),R(\"$;p.) &;+.# &;-/2#0/*;p.) &;+.# &;-&&&#\"),R(\"$;p.) &;+.# &;-0/*;p.) &;+.# &;-&\"),R('2l\"\"6l7m.e &2n\"\"6n7o.Y &24\"\"6475.M &26\"\"6677.A &28\"\"6879.5 &2@\"\"6@7A.) &2B\"\"6B7C'),R(\";\\x91.# &;r\"),R(\"%;\\x90/G#;'/>$;s/5$;'/,$;\\x84/#$+%)(%'#($'#(#'#(\\\"'#&'#\"),R(\";M.# &;t\"),R(\"%;\\x7f/E#28\\\"\\\"6879/6$;u.# &;x/'$8#:\\xcf# )(#'#(\\\"'#&'#\"),R('%;v.# &;w/J#%26\"\"6677/,#;\\x83/#$+\")(\"\\'#&\\'#.\" &\"/#$+\")(\"\\'#&\\'#'),R('%2\\xd0\"\"6\\xd07\\xd1/:#;\\x80/1$;w.\" &\"/#$+#)(#\\'#(\"\\'#&\\'#'),R('%24\"\"6475/,#;{/#$+\")(\"\\'#&\\'#'),R(\"%;z/3#$;y0#*;y&/#$+\\\")(\\\"'#&'#\"),R(\";*.) &;+.# &;-\"),R(';+.\\x8f &;-.\\x89 &22\"\"6273.} &26\"\"6677.q &28\"\"6879.e &2:\"\"6:7;.Y &2<\"\"6<7=.M &2>\"\"6>7?.A &2@\"\"6@7A.5 &2B\"\"6B7C.) &2D\"\"6D7E'),R('%;|/e#$%24\"\"6475/,#;|/#$+\")(\"\\'#&\\'#0<*%24\"\"6475/,#;|/#$+\")(\"\\'#&\\'#&/#$+\")(\"\\'#&\\'#'),R('%$;~0#*;~&/e#$%22\"\"6273/,#;}/#$+\")(\"\\'#&\\'#0<*%22\"\"6273/,#;}/#$+\")(\"\\'#&\\'#&/#$+\")(\"\\'#&\\'#'),R(\"$;~0#*;~&\"),R(';+.w &;-.q &28\"\"6879.e &2:\"\"6:7;.Y &2<\"\"6<7=.M &2>\"\"6>7?.A &2@\"\"6@7A.5 &2B\"\"6B7C.) &2D\"\"6D7E'),R('%%;\"/\\x87#$;\".G &;!.A &2@\"\"6@7A.5 &2F\"\"6F7G.) &2J\"\"6J7K0M*;\".G &;!.A &2@\"\"6@7A.5 &2F\"\"6F7G.) &2J\"\"6J7K&/#$+\")(\"\\'#&\\'#/& 8!:\\xd2! )'),R(\";\\x81.# &;\\x82\"),R('%%;O/2#2:\"\"6:7;/#$+\")(\"\\'#&\\'#.\" &\"/,#;S/#$+\")(\"\\'#&\\'#.\" &\"'),R('$;+.\\x83 &;-.} &2B\"\"6B7C.q &2D\"\"6D7E.e &22\"\"6273.Y &28\"\"6879.M &2:\"\"6:7;.A &2<\"\"6<7=.5 &2>\"\"6>7?.) &2@\"\"6@7A/\\x8c#0\\x89*;+.\\x83 &;-.} &2B\"\"6B7C.q &2D\"\"6D7E.e &22\"\"6273.Y &28\"\"6879.M &2:\"\"6:7;.A &2<\"\"6<7=.5 &2>\"\"6>7?.) &2@\"\"6@7A&&&#'),R(\"$;y0#*;y&\"),R('%3\\x92\"\"5#7\\xd3/q#24\"\"6475/b$$;!/�#*;!&&&#/L$2J\"\"6J7K/=$$;!/�#*;!&&&#/\\'$8%:\\xd4% )(%\\'#($\\'#(#\\'#(\"\\'#&\\'#'),R('2\\xd5\"\"6\\xd57\\xd6'),R('2\\xd7\"\"6\\xd77\\xd8'),R('2\\xd9\"\"6\\xd97\\xda'),R('2\\xdb\"\"6\\xdb7\\xdc'),R('2\\xdd\"\"6\\xdd7\\xde'),R('2\\xdf\"\"6\\xdf7\\xe0'),R('2\\xe1\"\"6\\xe17\\xe2'),R('2\\xe3\"\"6\\xe37\\xe4'),R('2\\xe5\"\"6\\xe57\\xe6'),R('2\\xe7\"\"6\\xe77\\xe8'),R('2\\xe9\"\"6\\xe97\\xea'),R(\"%;\\x85.Y &;\\x86.S &;\\x88.M &;\\x89.G &;\\x8a.A &;\\x8b.; &;\\x8c.5 &;\\x8f./ &;\\x8d.) &;\\x8e.# &;6/& 8!:\\xeb! )\"),R(\"%;\\x84/G#;'/>$;\\x92/5$;'/,$;\\x94/#$+%)(%'#($'#(#'#(\\\"'#&'#\"),R(\"%;\\x93/' 8!:\\xec!! )\"),R(\"%;!/5#;!/,$;!/#$+#)(#'#(\\\"'#&'#\"),R(\"%$;*.A &;+.; &;-.5 &;3./ &;4.) &;'.# &;(0G*;*.A &;+.; &;-.5 &;3./ &;4.) &;'.# &;(&/& 8!:\\xed! )\"),R(\"%;\\xb6/Y#$%;A/,#;\\xb6/#$+\\\")(\\\"'#&'#06*%;A/,#;\\xb6/#$+\\\")(\\\"'#&'#&/#$+\\\")(\\\"'#&'#\"),R('%;9/N#%2:\"\"6:7;/,#;9/#$+\")(\"\\'#&\\'#.\" &\"/\\'$8\":\\xee\" )(\"\\'#&\\'#'),R(\"%;:.c &%;\\x98/Y#$%;A/,#;\\x98/#$+\\\")(\\\"'#&'#06*%;A/,#;\\x98/#$+\\\")(\\\"'#&'#&/#$+\\\")(\\\"'#&'#/& 8!:\\xef! )\"),R(\"%;L.# &;\\x99/]#$%;B/,#;\\x9b/#$+\\\")(\\\"'#&'#06*%;B/,#;\\x9b/#$+\\\")(\\\"'#&'#&/'$8\\\":\\xf0\\\" )(\\\"'#&'#\"),R(\"%;\\x9a.\\\" &\\\"/>#;@/5$;M/,$;?/#$+$)($'#(#'#(\\\"'#&'#\"),R(\"%%;6/Y#$%;./,#;6/#$+\\\")(\\\"'#&'#06*%;./,#;6/#$+\\\")(\\\"'#&'#&/#$+\\\")(\\\"'#&'#.# &;H/' 8!:\\xf1!! )\"),R(\";\\x9c.) &;\\x9d.# &;\\xa0\"),R(\"%3\\xf2\\\"\\\"5!7\\xf3/:#;$;\\xcf/5$;./,$;\\x90/#$+%)(%'#($'#(#'#(\\\"'#&'#\"),R(\"%$;!/�#*;!&&&#/' 8!:\\u014b!! )\"),R(\"%;\\xd1/]#$%;A/,#;\\xd1/#$+\\\")(\\\"'#&'#06*%;A/,#;\\xd1/#$+\\\")(\\\"'#&'#&/'$8\\\":\\u014c\\\" )(\\\"'#&'#\"),R(\"%;\\x99/]#$%;B/,#;\\xa0/#$+\\\")(\\\"'#&'#06*%;B/,#;\\xa0/#$+\\\")(\\\"'#&'#&/'$8\\\":\\u014d\\\" )(\\\"'#&'#\"),R('%;L.O &;\\x99.I &%;@.\" &\"/:#;t/1$;?.\" &\"/#$+#)(#\\'#(\"\\'#&\\'#/]#$%;B/,#;\\xa0/#$+\")(\"\\'#&\\'#06*%;B/,#;\\xa0/#$+\")(\"\\'#&\\'#&/\\'$8\":\\u014e\" )(\"\\'#&\\'#'),R(\"%;\\xd4/]#$%;B/,#;\\xd5/#$+\\\")(\\\"'#&'#06*%;B/,#;\\xd5/#$+\\\")(\\\"'#&'#&/'$8\\\":\\u014f\\\" )(\\\"'#&'#\"),R(\"%;\\x96/& 8!:\\u0150! )\"),R('%3\\u0151\"\"5(7\\u0152/:#;$;6/5$;;/,$;\\xec/#$+%)(%'#($'#(#'#(\\\"'#&'#\"),R('%3\\x92\"\"5#7\\xd3.# &;6/\\' 8!:\\u018b!! )'),R('%3\\xb1\"\"5#7\\u018c.G &3\\xb3\"\"5#7\\u018d.; &3\\xb7\"\"5#7\\u018e./ &3\\xb5\"\"5$7\\u018f.# &;6/\\' 8!:\\u0190!! )'),R('%;\\xee/D#%;C/,#;\\xef/#$+\")(\"\\'#&\\'#.\" &\"/#$+\")(\"\\'#&\\'#'),R(\"%;U.) &;\\\\.# &;X/& 8!:\\u0191! )\"),R('%%;!.\" &\"/[#;!.\" &\"/M$;!.\" &\"/?$;!.\" &\"/1$;!.\" &\"/#$+%)(%\\'#($\\'#(#\\'#(\"\\'#&\\'#/\\' 8!:\\u0192!! )'),R('%%;!/?#;!.\" &\"/1$;!.\" &\"/#$+#)(#\\'#(\"\\'#&\\'#/\\' 8!:\\u0193!! )'),R(\";\\xbe\"),R('%;\\x9e/^#$%;B/,#;\\xf3/#$+\")(\"\\'#&\\'#06*%;B/,#;\\xf3/#$+\")(\"\\'#&\\'#&/($8\":\\u0194\"!!)(\"\\'#&\\'#'),R(\";\\xf4.# &;\\xa0\"),R('%2\\u0195\"\"6\\u01957\\u0196/L#;\"\"6>7?'),R('%;\\u0100/b#28\"\"6879/S$;\\xfb/J$%2\\u01a3\"\"6\\u01a37\\u01a4/,#;\\xec/#$+\")(\"\\'#&\\'#.\" &\"/#$+$)($\\'#(#\\'#(\"\\'#&\\'#'),R('%3\\u01a5\"\"5%7\\u01a6.) &3\\u01a7\"\"5$7\\u01a8/\\' 8!:\\u01a1!! )'),R('%3\\xb1\"\"5#7\\xb2.6 &3\\xb3\"\"5#7\\xb4.* &$;+0#*;+&/\\' 8!:\\u01a9!! )'),R(\"%;\\u0104/\\x87#2F\\\"\\\"6F7G/x$;\\u0103/o$2F\\\"\\\"6F7G/`$;\\u0103/W$2F\\\"\\\"6F7G/H$;\\u0103/?$2F\\\"\\\"6F7G/0$;\\u0105/'$8):\\u01aa) )()'#(('#(''#(&'#(%'#($'#(#'#(\\\"'#&'#\"),R(\"%;#/>#;#/5$;#/,$;#/#$+$)($'#(#'#(\\\"'#&'#\"),R(\"%;\\u0103/,#;\\u0103/#$+\\\")(\\\"'#&'#\"),R(\"%;\\u0103/5#;\\u0103/,$;\\u0103/#$+#)(#'#(\\\"'#&'#\"),R(\"%;q/T#$;m0#*;m&/D$%; /,#;\\xf8/#$+\\\")(\\\"'#&'#.\\\" &\\\"/#$+#)(#'#(\\\"'#&'#\"),R('%2\\u01ab\"\"6\\u01ab7\\u01ac.) &2\\u01ad\"\"6\\u01ad7\\u01ae/w#;0/n$;\\u0108/e$$%;B/2#;\\u0109.# &;\\xa0/#$+\")(\"\\'#&\\'#0<*%;B/2#;\\u0109.# &;\\xa0/#$+\")(\"\\'#&\\'#&/#$+$)($\\'#(#\\'#(\"\\'#&\\'#'),R(\";\\x99.# &;L\"),R(\"%2\\u01af\\\"\\\"6\\u01af7\\u01b0/5#;g&&(g=p,f=[]),f.push(e))}function _(e,t,r){return new o(o.buildMessage(e,t),e,t,r)}function R(e){return e.split(\"\").map((function(e){return e.charCodeAt(0)-32}))}if(t.data={},(r=function t(r){for(var n,s=d[r],o=0,a=[],c=s.length,h=[],g=[];;){for(;op?(c=o+3+s[o+1],o+=3):(c=o+3+s[o+1]+s[o+2],o+=3+s[o+1]);break;case 18:h.push(c),a.push(o+4+s[o+2]+s[o+3]),e.substr(p,u[s[o+1]].length)===u[s[o+1]]?(c=o+4+s[o+2],o+=4):(c=o+4+s[o+2]+s[o+3],o+=4+s[o+2]);break;case 19:h.push(c),a.push(o+4+s[o+2]+s[o+3]),e.substr(p,u[s[o+1]].length).toLowerCase()===u[s[o+1]]?(c=o+4+s[o+2],o+=4):(c=o+4+s[o+2]+s[o+3],o+=4+s[o+2]);break;case 20:h.push(c),a.push(o+4+s[o+2]+s[o+3]),u[s[o+1]].test(e.charAt(p))?(c=o+4+s[o+2],o+=4):(c=o+4+s[o+2]+s[o+3],o+=4+s[o+2]);break;case 21:g.push(e.substr(p,s[o+1])),p+=s[o+1],o+=2;break;case 22:g.push(u[s[o+1]]),p+=u[s[o+1]].length,o+=2;break;case 23:g.push(i),0===v&&C(u[s[o+1]]),o+=2;break;case 24:l=g[g.length-1-s[o+1]],o+=2;break;case 25:l=p,o++;break;case 26:n=s.slice(o+4,o+4+s[o+3]).map((function(e){return g[g.length-1-e]})),g.splice(g.length-s[o+2],s[o+2],u[s[o+1]].apply(null,n)),o+=4+s[o+3];break;case 27:g.push(t(s[o+1])),o+=2;break;case 28:v++,o++;break;case 29:v--,o++;break;default:throw new Error(\"Invalid opcode: \"+s[o]+\".\")}if(!(h.length>0))break;c=h.pop(),o=a.pop()}return g[0]}(c))!==i&&p===e.length)return r;throw r!==i&&p-1)this.qop=\"auth\";else{if(!(t.qop.indexOf(\"auth-int\")>-1))return this.logger.warn(\"challenge without Digest qop different than 'auth' or 'auth-int', authentication aborted\"),!1;this.qop=\"auth-int\"}else this.qop=void 0;return this.method=e.method,this.uri=e.ruri,this.cnonce=n.createRandomToken(12),this.nc+=1,this.updateNcHex(),4294967296===this.nc&&(this.nc=1,this.ncHex=\"00000001\"),this.calculateResponse(r),!0},e.prototype.toString=function(){var e=[];if(!this.response)throw new Error(\"response field does not exist, cannot generate Authorization header\");return e.push(\"algorithm=\"+this.algorithm),e.push('username=\"'+this.username+'\"'),e.push('realm=\"'+this.realm+'\"'),e.push('nonce=\"'+this.nonce+'\"'),e.push('uri=\"'+this.uri+'\"'),e.push('response=\"'+this.response+'\"'),this.opaque&&e.push('opaque=\"'+this.opaque+'\"'),this.qop&&(e.push(\"qop=\"+this.qop),e.push('cnonce=\"'+this.cnonce+'\"'),e.push(\"nc=\"+this.ncHex)),\"Digest \"+e.join(\", \")},e.prototype.updateNcHex=function(){var e=Number(this.nc).toString(16);this.ncHex=\"00000000\".substr(0,8-e.length)+e},e.prototype.calculateResponse=function(e){var t,r=i.default(this.username+\":\"+this.realm+\":\"+this.password);\"auth\"===this.qop?(t=i.default(this.method+\":\"+this.uri),this.response=i.default(r+\":\"+this.nonce+\":\"+this.ncHex+\":\"+this.cnonce+\":auth:\"+t)):\"auth-int\"===this.qop?(t=i.default(this.method+\":\"+this.uri+\":\"+i.default(e||\"\")),this.response=i.default(r+\":\"+this.nonce+\":\"+this.ncHex+\":\"+this.cnonce+\":auth-int:\"+t)):void 0===this.qop&&(t=i.default(this.method+\":\"+this.uri),this.response=i.default(r+\":\"+this.nonce+\":\"+t))},e}();t.DigestAuthentication=s},function(e,t,r){var i;e.exports=(i=r(62),function(e){var t=i,r=t.lib,n=r.WordArray,s=r.Hasher,o=t.algo,a=[];!function(){for(var t=0;t<64;t++)a[t]=4294967296*e.abs(e.sin(t+1))|0}();var c=o.MD5=s.extend({_doReset:function(){this._hash=new n.init([1732584193,4023233417,2562383102,271733878])},_doProcessBlock:function(e,t){for(var r=0;r<16;r++){var i=t+r,n=e[i];e[i]=16711935&(n<<8|n>>>24)|4278255360&(n<<24|n>>>8)}var s=this._hash.words,o=e[t+0],c=e[t+1],h=e[t+2],g=e[t+3],f=e[t+4],v=e[t+5],m=e[t+6],S=e[t+7],T=e[t+8],y=e[t+9],E=e[t+10],b=e[t+11],C=e[t+12],_=e[t+13],R=e[t+14],w=e[t+15],A=s[0],I=s[1],O=s[2],x=s[3];A=u(A,I,O,x,o,7,a[0]),x=u(x,A,I,O,c,12,a[1]),O=u(O,x,A,I,h,17,a[2]),I=u(I,O,x,A,g,22,a[3]),A=u(A,I,O,x,f,7,a[4]),x=u(x,A,I,O,v,12,a[5]),O=u(O,x,A,I,m,17,a[6]),I=u(I,O,x,A,S,22,a[7]),A=u(A,I,O,x,T,7,a[8]),x=u(x,A,I,O,y,12,a[9]),O=u(O,x,A,I,E,17,a[10]),I=u(I,O,x,A,b,22,a[11]),A=u(A,I,O,x,C,7,a[12]),x=u(x,A,I,O,_,12,a[13]),O=u(O,x,A,I,R,17,a[14]),A=d(A,I=u(I,O,x,A,w,22,a[15]),O,x,c,5,a[16]),x=d(x,A,I,O,m,9,a[17]),O=d(O,x,A,I,b,14,a[18]),I=d(I,O,x,A,o,20,a[19]),A=d(A,I,O,x,v,5,a[20]),x=d(x,A,I,O,E,9,a[21]),O=d(O,x,A,I,w,14,a[22]),I=d(I,O,x,A,f,20,a[23]),A=d(A,I,O,x,y,5,a[24]),x=d(x,A,I,O,R,9,a[25]),O=d(O,x,A,I,g,14,a[26]),I=d(I,O,x,A,T,20,a[27]),A=d(A,I,O,x,_,5,a[28]),x=d(x,A,I,O,h,9,a[29]),O=d(O,x,A,I,S,14,a[30]),A=p(A,I=d(I,O,x,A,C,20,a[31]),O,x,v,4,a[32]),x=p(x,A,I,O,T,11,a[33]),O=p(O,x,A,I,b,16,a[34]),I=p(I,O,x,A,R,23,a[35]),A=p(A,I,O,x,c,4,a[36]),x=p(x,A,I,O,f,11,a[37]),O=p(O,x,A,I,S,16,a[38]),I=p(I,O,x,A,E,23,a[39]),A=p(A,I,O,x,_,4,a[40]),x=p(x,A,I,O,o,11,a[41]),O=p(O,x,A,I,g,16,a[42]),I=p(I,O,x,A,m,23,a[43]),A=p(A,I,O,x,y,4,a[44]),x=p(x,A,I,O,C,11,a[45]),O=p(O,x,A,I,w,16,a[46]),A=l(A,I=p(I,O,x,A,h,23,a[47]),O,x,o,6,a[48]),x=l(x,A,I,O,S,10,a[49]),O=l(O,x,A,I,R,15,a[50]),I=l(I,O,x,A,v,21,a[51]),A=l(A,I,O,x,C,6,a[52]),x=l(x,A,I,O,g,10,a[53]),O=l(O,x,A,I,E,15,a[54]),I=l(I,O,x,A,c,21,a[55]),A=l(A,I,O,x,T,6,a[56]),x=l(x,A,I,O,w,10,a[57]),O=l(O,x,A,I,m,15,a[58]),I=l(I,O,x,A,_,21,a[59]),A=l(A,I,O,x,f,6,a[60]),x=l(x,A,I,O,b,10,a[61]),O=l(O,x,A,I,h,15,a[62]),I=l(I,O,x,A,y,21,a[63]),s[0]=s[0]+A|0,s[1]=s[1]+I|0,s[2]=s[2]+O|0,s[3]=s[3]+x|0},_doFinalize:function(){var t=this._data,r=t.words,i=8*this._nDataBytes,n=8*t.sigBytes;r[n>>>5]|=128<<24-n%32;var s=e.floor(i/4294967296),o=i;r[15+(n+64>>>9<<4)]=16711935&(s<<8|s>>>24)|4278255360&(s<<24|s>>>8),r[14+(n+64>>>9<<4)]=16711935&(o<<8|o>>>24)|4278255360&(o<<24|o>>>8),t.sigBytes=4*(r.length+1),this._process();for(var a=this._hash,c=a.words,u=0;u<4;u++){var d=c[u];c[u]=16711935&(d<<8|d>>>24)|4278255360&(d<<24|d>>>8)}return a},clone:function(){var e=s.clone.call(this);return e._hash=this._hash.clone(),e}});function u(e,t,r,i,n,s,o){var a=e+(t&r|~t&i)+n+o;return(a<>>32-s)+t}function d(e,t,r,i,n,s,o){var a=e+(t&i|r&~i)+n+o;return(a<>>32-s)+t}function p(e,t,r,i,n,s,o){var a=e+(t^r^i)+n+o;return(a<>>32-s)+t}function l(e,t,r,i,n,s,o){var a=e+(r^(t|~i))+n+o;return(a<>>32-s)+t}t.MD5=s._createHelper(c),t.HmacMD5=s._createHmacHelper(c)}(Math),i.MD5)},function(e,t,r){var i;e.exports=(i=i||function(e,t){var r=Object.create||function(){function e(){}return function(t){var r;return e.prototype=t,r=new e,e.prototype=null,r}}(),i={},n=i.lib={},s=n.Base={extend:function(e){var t=r(this);return e&&t.mixIn(e),t.hasOwnProperty(\"init\")&&this.init!==t.init||(t.init=function(){t.$super.init.apply(this,arguments)}),t.init.prototype=t,t.$super=this,t},create:function(){var e=this.extend();return e.init.apply(e,arguments),e},init:function(){},mixIn:function(e){for(var t in e)e.hasOwnProperty(t)&&(this[t]=e[t]);e.hasOwnProperty(\"toString\")&&(this.toString=e.toString)},clone:function(){return this.init.prototype.extend(this)}},o=n.WordArray=s.extend({init:function(e,t){e=this.words=e||[],this.sigBytes=null!=t?t:4*e.length},toString:function(e){return(e||c).stringify(this)},concat:function(e){var t=this.words,r=e.words,i=this.sigBytes,n=e.sigBytes;if(this.clamp(),i%4)for(var s=0;s>>2]>>>24-s%4*8&255;t[i+s>>>2]|=o<<24-(i+s)%4*8}else for(s=0;s>>2]=r[s>>>2];return this.sigBytes+=n,this},clamp:function(){var t=this.words,r=this.sigBytes;t[r>>>2]&=4294967295<<32-r%4*8,t.length=e.ceil(r/4)},clone:function(){var e=s.clone.call(this);return e.words=this.words.slice(0),e},random:function(t){for(var r,i=[],n=function(t){t=t;var r=987654321,i=4294967295;return function(){var n=((r=36969*(65535&r)+(r>>16)&i)<<16)+(t=18e3*(65535&t)+(t>>16)&i)&i;return n/=4294967296,(n+=.5)*(e.random()>.5?1:-1)}},s=0;s>>2]>>>24-n%4*8&255;i.push((s>>>4).toString(16)),i.push((15&s).toString(16))}return i.join(\"\")},parse:function(e){for(var t=e.length,r=[],i=0;i>>3]|=parseInt(e.substr(i,2),16)<<24-i%8*4;return new o.init(r,t/2)}},u=a.Latin1={stringify:function(e){for(var t=e.words,r=e.sigBytes,i=[],n=0;n>>2]>>>24-n%4*8&255;i.push(String.fromCharCode(s))}return i.join(\"\")},parse:function(e){for(var t=e.length,r=[],i=0;i>>2]|=(255&e.charCodeAt(i))<<24-i%4*8;return new o.init(r,t)}},d=a.Utf8={stringify:function(e){try{return decodeURIComponent(escape(u.stringify(e)))}catch(e){throw new Error(\"Malformed UTF-8 data\")}},parse:function(e){return u.parse(unescape(encodeURIComponent(e)))}},p=n.BufferedBlockAlgorithm=s.extend({reset:function(){this._data=new o.init,this._nDataBytes=0},_append:function(e){\"string\"==typeof e&&(e=d.parse(e)),this._data.concat(e),this._nDataBytes+=e.sigBytes},_process:function(t){var r=this._data,i=r.words,n=r.sigBytes,s=this.blockSize,a=n/(4*s),c=(a=t?e.ceil(a):e.max((0|a)-this._minBufferSize,0))*s,u=e.min(4*c,n);if(c){for(var d=0;d699)throw new TypeError(\"Invalid statusCode: \"+t.statusCode);var n=t.reasonPhrase?t.reasonPhrase:i.getReasonPhrase(t.statusCode),s=\"SIP/2.0 \"+t.statusCode+\" \"+n+r;t.statusCode>=100&&t.statusCode,t.statusCode;var o=\"From: \"+e.getHeader(\"From\")+r,a=\"Call-ID: \"+e.callId+r,c=\"CSeq: \"+e.cseq+\" \"+e.method+r,u=e.getHeaders(\"via\").reduce((function(e,t){return e+\"Via: \"+t+r}),\"\"),d=\"To: \"+e.getHeader(\"to\");if(t.statusCode>100&&!e.parseHeader(\"to\").hasParam(\"tag\")){var p=t.toTag;p||(p=i.newTag()),d+=\";tag=\"+p}d+=r;var l=\"\";t.supported&&(l=\"Supported: \"+t.supported.join(\", \")+r);var h=\"\";t.userAgent&&(h=\"User-Agent: \"+t.userAgent+r);var g=\"\";return t.extraHeaders&&(g=t.extraHeaders.reduce((function(e,t){return e+t.trim()+r}),\"\")),s+=u,s+=o,s+=d,s+=c,s+=a,s+=l,s+=h,s+=g,t.body?(s+=\"Content-Type: \"+t.body.contentType+r,s+=\"Content-Length: \"+i.str_utf8_length(t.body.content)+r+r,s+=t.body.content):s+=\"Content-Length: 0\\r\\n\\r\\n\",{message:s}}},function(e,t,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var i=r(14),n=r(17),s=r(21);!function(e){function t(e,t){var r=t,i=0,n=0;if(e.substring(r,r+2).match(/(^\\r\\n)/))return-2;for(;0===i;){if(-1===(n=e.indexOf(\"\\r\\n\",r)))return n;!e.substring(n+2,n+4).match(/(^\\r\\n)/)&&e.charAt(n+2).match(/(^\\s+)/)?r=n+2:i=n}return i}function r(e,t,r,n){var o,a=t.indexOf(\":\",r),c=t.substring(r,a).trim(),u=t.substring(a+1,n).trim();switch(c.toLowerCase()){case\"via\":case\"v\":e.addHeader(\"via\",u),1===e.getHeaders(\"via\").length?(o=e.parseHeader(\"Via\"))&&(e.via=o,e.viaBranch=o.branch):o=0;break;case\"from\":case\"f\":e.setHeader(\"from\",u),(o=e.parseHeader(\"from\"))&&(e.from=o,e.fromTag=o.getParam(\"tag\"));break;case\"to\":case\"t\":e.setHeader(\"to\",u),(o=e.parseHeader(\"to\"))&&(e.to=o,e.toTag=o.getParam(\"tag\"));break;case\"record-route\":if(-1===(o=i.Grammar.parse(u,\"Record_Route\"))){o=void 0;break}if(!(o instanceof Array)){o=void 0;break}o.forEach((function(t){e.addHeader(\"record-route\",u.substring(t.position,t.offset)),e.headers[\"Record-Route\"][e.getHeaders(\"record-route\").length-1].parsed=t.parsed}));break;case\"call-id\":case\"i\":e.setHeader(\"call-id\",u),(o=e.parseHeader(\"call-id\"))&&(e.callId=u);break;case\"contact\":case\"m\":if(-1===(o=i.Grammar.parse(u,\"Contact\"))){o=void 0;break}if(!(o instanceof Array)){o=void 0;break}o.forEach((function(t){e.addHeader(\"contact\",u.substring(t.position,t.offset)),e.headers.Contact[e.getHeaders(\"contact\").length-1].parsed=t.parsed}));break;case\"content-length\":case\"l\":e.setHeader(\"content-length\",u),o=e.parseHeader(\"content-length\");break;case\"content-type\":case\"c\":e.setHeader(\"content-type\",u),o=e.parseHeader(\"content-type\");break;case\"cseq\":e.setHeader(\"cseq\",u),(o=e.parseHeader(\"cseq\"))&&(e.cseq=o.value),e instanceof s.IncomingResponseMessage&&(e.method=o.method);break;case\"max-forwards\":e.setHeader(\"max-forwards\",u),o=e.parseHeader(\"max-forwards\");break;case\"www-authenticate\":e.setHeader(\"www-authenticate\",u),o=e.parseHeader(\"www-authenticate\");break;case\"proxy-authenticate\":e.setHeader(\"proxy-authenticate\",u),o=e.parseHeader(\"proxy-authenticate\");break;case\"refer-to\":case\"r\":e.setHeader(\"refer-to\",u),(o=e.parseHeader(\"refer-to\"))&&(e.referTo=o);break;default:e.addHeader(c.toLowerCase(),u),o=0}return void 0!==o||{error:\"error parsing header '\"+c+\"'\"}}e.getHeader=t,e.parseHeader=r,e.parseMessage=function(e,o){var a=0,c=e.indexOf(\"\\r\\n\");if(-1!==c){var u,d=e.substring(0,c),p=i.Grammar.parse(d,\"Request_Response\");if(-1!==p){var l;for(p.status_code?((u=new s.IncomingResponseMessage).statusCode=p.status_code,u.reasonPhrase=p.reason_phrase):((u=new n.IncomingRequestMessage).method=p.method,u.ruri=p.uri),u.data=e,a=c+2;;){if(-2===(c=t(e,a))){l=a+2;break}if(-1===c)return void o.error(\"malformed message\");if(!0!==r(u,e,a,c))return void o.error(p.error);a=c+2}return u.hasHeader(\"content-length\")?u.body=e.substr(l,Number(u.getHeader(\"content-length\"))):u.body=e.substring(l),u}o.warn('error parsing first line of SIP message: \"'+d+'\"')}else o.warn(\"no CRLF found, not a SIP message, discarded\")}}(t.Parser||(t.Parser={}))},function(e,t,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var i=r(0),n=r(2),s=r(11),o=r(6),a=r(1),c=r(37),u=r(38),d=r(39),p=r(40),l=r(41),h=r(26),g=r(42),f=r(43),v=r(44),m=r(45),S=r(46),T=r(47),y=function(e){function t(t,r,i,n){var o=e.call(this,r,i)||this;return o.initialTransaction=t,o._signalingState=s.SignalingState.Initial,o.ackWait=!1,o.delegate=n,t instanceof a.InviteServerTransaction&&(o.ackWait=!0),o.early||o.start2xxRetransmissionTimer(),o.signalingStateTransition(t.request),o.logger=r.loggerFactory.getLogger(\"sip.invite-dialog\"),o.logger.log(\"INVITE dialog \"+o.id+\" constructed\"),o}return i.__extends(t,e),t.prototype.dispose=function(){e.prototype.dispose.call(this),this._signalingState=s.SignalingState.Closed,this._offer=void 0,this._answer=void 0,this.invite2xxTimer&&(clearTimeout(this.invite2xxTimer),this.invite2xxTimer=void 0),this.logger.log(\"INVITE dialog \"+this.id+\" destroyed\")},Object.defineProperty(t.prototype,\"sessionState\",{get:function(){return this.early?s.SessionState.Early:this.ackWait?s.SessionState.AckWait:this._signalingState===s.SignalingState.Closed?s.SessionState.Terminated:s.SessionState.Confirmed},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,\"signalingState\",{get:function(){return this._signalingState},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,\"offer\",{get:function(){return this._offer},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,\"answer\",{get:function(){return this._answer},enumerable:!0,configurable:!0}),t.prototype.confirm=function(){this.early&&this.start2xxRetransmissionTimer(),e.prototype.confirm.call(this)},t.prototype.reConfirm=function(){this.reinviteUserAgentServer&&this.startReInvite2xxRetransmissionTimer()},t.prototype.ack=function(e){var t;if(void 0===e&&(e={}),this.logger.log(\"INVITE dialog \"+this.id+\" sending ACK request\"),this.reinviteUserAgentClient){if(!(this.reinviteUserAgentClient.transaction instanceof a.InviteClientTransaction))throw new Error(\"Transaction not instance of InviteClientTransaction.\");t=this.reinviteUserAgentClient.transaction,this.reinviteUserAgentClient=void 0}else{if(!(this.initialTransaction instanceof a.InviteClientTransaction))throw new Error(\"Initial transaction not instance of InviteClientTransaction.\");t=this.initialTransaction}e.cseq=t.request.cseq;var r=this.createOutgoingRequestMessage(n.C.ACK,e);return t.ackResponse(r),this.signalingStateTransition(r),{message:r}},t.prototype.bye=function(e,t){if(this.logger.log(\"INVITE dialog \"+this.id+\" sending BYE request\"),this.initialTransaction instanceof a.InviteServerTransaction){if(this.early)throw new Error(\"UAS MUST NOT send a BYE on early dialogs.\");if(this.ackWait&&this.initialTransaction.state!==a.TransactionState.Terminated)throw new Error(\"UAS MUST NOT send a BYE on a confirmed dialog until it has received an ACK for its 2xx response or until the server transaction times out.\")}return new c.ByeUserAgentClient(this,e,t)},t.prototype.info=function(e,t){if(this.logger.log(\"INVITE dialog \"+this.id+\" sending INFO request\"),this.early)throw new Error(\"Dialog not confirmed.\");return new d.InfoUserAgentClient(this,e,t)},t.prototype.invite=function(e,t){if(this.logger.log(\"INVITE dialog \"+this.id+\" sending INVITE request\"),this.early)throw new Error(\"Dialog not confirmed.\");if(this.reinviteUserAgentClient)throw new Error(\"There is an ongoing re-INVITE client transaction.\");if(this.reinviteUserAgentServer)throw new Error(\"There is an ongoing re-INVITE server transaction.\");return new v.ReInviteUserAgentClient(this,e,t)},t.prototype.notify=function(e,t){if(this.logger.log(\"INVITE dialog \"+this.id+\" sending NOTIFY request\"),this.early)throw new Error(\"Dialog not confirmed.\");return new l.NotifyUserAgentClient(this,e,t)},t.prototype.prack=function(e,t){return this.logger.log(\"INVITE dialog \"+this.id+\" sending PRACK request\"),new g.PrackUserAgentClient(this,e,t)},t.prototype.refer=function(e,t){if(this.logger.log(\"INVITE dialog \"+this.id+\" sending REFER request\"),this.early)throw new Error(\"Dialog not confirmed.\");return new S.ReferUserAgentClient(this,e,t)},t.prototype.receiveRequest=function(t){if(this.logger.log(\"INVITE dialog \"+this.id+\" received \"+t.method+\" request\"),t.method===n.C.ACK){if(this.ackWait){if(this.initialTransaction instanceof a.InviteClientTransaction)return void this.logger.warn(\"INVITE dialog \"+this.id+\" received unexpected \"+t.method+\" request, dropping.\");if(this.initialTransaction.request.cseq!==t.cseq)return void this.logger.warn(\"INVITE dialog \"+this.id+\" received unexpected \"+t.method+\" request, dropping.\");this.ackWait=!1}else{if(!this.reinviteUserAgentServer)return void this.logger.warn(\"INVITE dialog \"+this.id+\" received unexpected \"+t.method+\" request, dropping.\");if(this.reinviteUserAgentServer.transaction.request.cseq!==t.cseq)return void this.logger.warn(\"INVITE dialog \"+this.id+\" received unexpected \"+t.method+\" request, dropping.\");this.reinviteUserAgentServer=void 0}return this.signalingStateTransition(t),void(this.delegate&&this.delegate.onAck&&this.delegate.onAck({message:t}))}if(this.sequenceGuard(t)){if(t.method===n.C.INVITE){if(this.reinviteUserAgentServer){var r=[\"Retry-After: \"+(Math.floor(10*Math.random())+1)];return void this.core.replyStateless(t,{statusCode:500,extraHeaders:r})}if(this.reinviteUserAgentClient)return void this.core.replyStateless(t,{statusCode:491})}if(e.prototype.receiveRequest.call(this,t),t.method===n.C.INVITE){var i=t.parseHeader(\"contact\");if(!i)throw new Error(\"Contact undefined.\");if(!(i instanceof n.NameAddrHeader))throw new Error(\"Contact not instance of NameAddrHeader.\");this.dialogState.remoteTarget=i.uri}switch(t.method){case n.C.BYE:var s=new u.ByeUserAgentServer(this,t);this.delegate&&this.delegate.onBye?this.delegate.onBye(s):s.accept(),this.dispose();break;case n.C.INFO:s=new p.InfoUserAgentServer(this,t);this.delegate&&this.delegate.onInfo?this.delegate.onInfo(s):s.reject({statusCode:469,extraHeaders:[\"Recv-Info :\"]});break;case n.C.INVITE:s=new m.ReInviteUserAgentServer(this,t);this.signalingStateTransition(t),this.delegate&&this.delegate.onInvite?this.delegate.onInvite(s):s.reject({statusCode:488});break;case n.C.NOTIFY:s=new h.NotifyUserAgentServer(this,t);this.delegate&&this.delegate.onNotify?this.delegate.onNotify(s):s.accept();break;case n.C.PRACK:s=new f.PrackUserAgentServer(this,t);this.delegate&&this.delegate.onPrack?this.delegate.onPrack(s):s.accept();break;case n.C.REFER:s=new T.ReferUserAgentServer(this,t);this.delegate&&this.delegate.onRefer?this.delegate.onRefer(s):s.reject();break;default:this.logger.log(\"INVITE dialog \"+this.id+\" received unimplemented \"+t.method+\" request\"),this.core.replyStateless(t,{statusCode:501})}}else this.logger.log(\"INVITE dialog \"+this.id+\" rejected out of order \"+t.method+\" request.\")},t.prototype.reliableSequenceGuard=function(e){var t=e.statusCode;if(!t)throw new Error(\"Status code undefined\");if(t>100&&t<200){var r=e.getHeader(\"require\"),i=e.getHeader(\"rseq\"),n=r&&r.includes(\"100rel\")&&i?Number(i):void 0;if(n){if(this.rseq&&this.rseq+1!==n)return!1;this.rseq||(this.rseq=n)}}return!0},t.prototype.signalingStateRollback=function(){this._signalingState!==s.SignalingState.HaveLocalOffer&&this.signalingState!==s.SignalingState.HaveRemoteOffer||this._rollbackOffer&&this._rollbackAnswer&&(this._signalingState=s.SignalingState.Stable,this._offer=this._rollbackOffer,this._answer=this._rollbackAnswer)},t.prototype.signalingStateTransition=function(e){var t=n.getBody(e);if(t&&\"session\"===t.contentDisposition){if(this._signalingState===s.SignalingState.Stable&&(this._rollbackOffer=this._offer,this._rollbackAnswer=this._answer),e instanceof n.IncomingRequestMessage)switch(this._signalingState){case s.SignalingState.Initial:case s.SignalingState.Stable:this._signalingState=s.SignalingState.HaveRemoteOffer,this._offer=t,this._answer=void 0;break;case s.SignalingState.HaveLocalOffer:this._signalingState=s.SignalingState.Stable,this._answer=t;break;case s.SignalingState.HaveRemoteOffer:case s.SignalingState.Closed:break;default:throw new Error(\"Unexpected signaling state.\")}if(e instanceof n.IncomingResponseMessage)switch(this._signalingState){case s.SignalingState.Initial:case s.SignalingState.Stable:this._signalingState=s.SignalingState.HaveRemoteOffer,this._offer=t,this._answer=void 0;break;case s.SignalingState.HaveLocalOffer:this._signalingState=s.SignalingState.Stable,this._answer=t;break;case s.SignalingState.HaveRemoteOffer:case s.SignalingState.Closed:break;default:throw new Error(\"Unexpected signaling state.\")}if(e instanceof n.OutgoingRequestMessage)switch(this._signalingState){case s.SignalingState.Initial:case s.SignalingState.Stable:this._signalingState=s.SignalingState.HaveLocalOffer,this._offer=t,this._answer=void 0;break;case s.SignalingState.HaveLocalOffer:break;case s.SignalingState.HaveRemoteOffer:this._signalingState=s.SignalingState.Stable,this._answer=t;break;case s.SignalingState.Closed:break;default:throw new Error(\"Unexpected signaling state.\")}if(n.isBody(e))switch(this._signalingState){case s.SignalingState.Initial:case s.SignalingState.Stable:this._signalingState=s.SignalingState.HaveLocalOffer,this._offer=t,this._answer=void 0;break;case s.SignalingState.HaveLocalOffer:break;case s.SignalingState.HaveRemoteOffer:this._signalingState=s.SignalingState.Stable,this._answer=t;break;case s.SignalingState.Closed:break;default:throw new Error(\"Unexpected signaling state.\")}}},t.prototype.start2xxRetransmissionTimer=function(){var e=this;if(this.initialTransaction instanceof a.InviteServerTransaction){var t=this.initialTransaction,r=o.Timers.T1,i=function(){e.ackWait?(e.logger.log(\"No ACK for 2xx response received, attempting retransmission\"),t.retransmitAcceptedResponse(),r=Math.min(2*r,o.Timers.T2),e.invite2xxTimer=setTimeout(i,r)):e.invite2xxTimer=void 0};this.invite2xxTimer=setTimeout(i,r);var n=function(){t.state===a.TransactionState.Terminated&&(t.removeListener(\"stateChanged\",n),e.invite2xxTimer&&(clearTimeout(e.invite2xxTimer),e.invite2xxTimer=void 0),e.ackWait&&(e.delegate&&e.delegate.onAckTimeout?e.delegate.onAckTimeout():e.bye()))};t.addListener(\"stateChanged\",n)}},t.prototype.startReInvite2xxRetransmissionTimer=function(){var e=this;if(this.reinviteUserAgentServer&&this.reinviteUserAgentServer.transaction instanceof a.InviteServerTransaction){var t=this.reinviteUserAgentServer.transaction,r=o.Timers.T1,i=function(){e.reinviteUserAgentServer?(e.logger.log(\"No ACK for 2xx response received, attempting retransmission\"),t.retransmitAcceptedResponse(),r=Math.min(2*r,o.Timers.T2),e.invite2xxTimer=setTimeout(i,r)):e.invite2xxTimer=void 0};this.invite2xxTimer=setTimeout(i,r);var n=function(){t.state===a.TransactionState.Terminated&&(t.removeListener(\"stateChanged\",n),e.invite2xxTimer&&(clearTimeout(e.invite2xxTimer),e.invite2xxTimer=void 0),e.reinviteUserAgentServer)};t.addListener(\"stateChanged\",n)}},t}(r(16).Dialog);t.SessionDialog=y},function(e,t,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),function(e){e.Initial=\"Initial\",e.Early=\"Early\",e.AckWait=\"AckWait\",e.Confirmed=\"Confirmed\",e.Terminated=\"Terminated\"}(t.SessionState||(t.SessionState={})),function(e){e.Initial=\"Initial\",e.HaveLocalOffer=\"HaveLocalOffer\",e.HaveRemoteOffer=\"HaveRemoteOffer\",e.Stable=\"Stable\",e.Closed=\"Closed\"}(t.SignalingState||(t.SignalingState={}))},function(e,t,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var i=r(0),n=function(e){function t(t){return e.call(this,t||\"Transaction state error.\")||this}return i.__extends(t,e),t}(r(24).Exception);t.TransactionStateError=n},function(e,t,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var i=r(0),n=function(e){function t(t){return e.call(this,t||\"Unspecified transport error.\")||this}return i.__extends(t,e),t}(r(24).Exception);t.TransportError=n},function(e,t,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var i=r(0),n=r(2),s=r(6),o=r(25),a=r(9),c=function(e){function t(t,r,i){return e.call(this,t,r,i,a.TransactionState.Proceeding,\"sip.transaction.ist\")||this}return i.__extends(t,e),t.prototype.dispose=function(){this.stopProgressExtensionTimer(),this.H&&(clearTimeout(this.H),this.H=void 0),this.I&&(clearTimeout(this.I),this.I=void 0),this.L&&(clearTimeout(this.L),this.L=void 0),e.prototype.dispose.call(this)},Object.defineProperty(t.prototype,\"kind\",{get:function(){return\"ist\"},enumerable:!0,configurable:!0}),t.prototype.receiveRequest=function(e){var t=this;switch(this.state){case a.TransactionState.Proceeding:if(e.method===n.C.INVITE)return void(this.lastProvisionalResponse&&this.send(this.lastProvisionalResponse).catch((function(e){t.logTransportError(e,\"Failed to send retransmission of provisional response.\")})));break;case a.TransactionState.Accepted:if(e.method===n.C.INVITE)return;break;case a.TransactionState.Completed:if(e.method===n.C.INVITE){if(!this.lastFinalResponse)throw new Error(\"Last final response undefined.\");return void this.send(this.lastFinalResponse).catch((function(e){t.logTransportError(e,\"Failed to send retransmission of final response.\")}))}if(e.method===n.C.ACK)return void this.stateTransition(a.TransactionState.Confirmed);break;case a.TransactionState.Confirmed:case a.TransactionState.Terminated:if(e.method===n.C.INVITE||e.method===n.C.ACK)return;break;default:throw new Error(\"Invalid state \"+this.state)}var r=\"INVITE server transaction received unexpected \"+e.method+\" request while in state \"+this.state+\".\";this.logger.warn(r)},t.prototype.receiveResponse=function(e,t){var r=this;if(e<100||e>699)throw new Error(\"Invalid status code \"+e);switch(this.state){case a.TransactionState.Proceeding:if(e>=100&&e<=199)return this.lastProvisionalResponse=t,e>100&&this.startProgressExtensionTimer(),void this.send(t).catch((function(e){r.logTransportError(e,\"Failed to send 1xx response.\")}));if(e>=200&&e<=299)return this.lastFinalResponse=t,this.stateTransition(a.TransactionState.Accepted),void this.send(t).catch((function(e){r.logTransportError(e,\"Failed to send 2xx response.\")}));if(e>=300&&e<=699)return this.lastFinalResponse=t,this.stateTransition(a.TransactionState.Completed),void this.send(t).catch((function(e){r.logTransportError(e,\"Failed to send non-2xx final response.\")}));break;case a.TransactionState.Accepted:if(e>=200&&e<=299)return void this.send(t).catch((function(e){r.logTransportError(e,\"Failed to send 2xx response.\")}));break;case a.TransactionState.Completed:case a.TransactionState.Confirmed:case a.TransactionState.Terminated:break;default:throw new Error(\"Invalid state \"+this.state)}var i=\"INVITE server transaction received unexpected \"+e+\" response from TU while in state \"+this.state+\".\";throw this.logger.error(i),new Error(i)},t.prototype.retransmitAcceptedResponse=function(){var e=this;this.state===a.TransactionState.Accepted&&this.lastFinalResponse&&this.send(this.lastFinalResponse).catch((function(t){e.logTransportError(t,\"Failed to send 2xx response.\")}))},t.prototype.onTransportError=function(e){this.user.onTransportError&&this.user.onTransportError(e)},t.prototype.typeToString=function(){return\"INVITE server transaction\"},t.prototype.stateTransition=function(e){var t=this,r=function(){throw new Error(\"Invalid state transition from \"+t.state+\" to \"+e)};switch(e){case a.TransactionState.Proceeding:r();break;case a.TransactionState.Accepted:case a.TransactionState.Completed:this.state!==a.TransactionState.Proceeding&&r();break;case a.TransactionState.Confirmed:this.state!==a.TransactionState.Completed&&r();break;case a.TransactionState.Terminated:this.state!==a.TransactionState.Accepted&&this.state!==a.TransactionState.Completed&&this.state!==a.TransactionState.Confirmed&&r();break;default:r()}this.stopProgressExtensionTimer(),e===a.TransactionState.Accepted&&(this.L=setTimeout((function(){return t.timer_L()}),s.Timers.TIMER_L)),e===a.TransactionState.Completed&&(this.H=setTimeout((function(){return t.timer_H()}),s.Timers.TIMER_H)),e===a.TransactionState.Confirmed&&(this.I=setTimeout((function(){return t.timer_I()}),s.Timers.TIMER_I)),e===a.TransactionState.Terminated&&this.dispose(),this.setState(e)},t.prototype.startProgressExtensionTimer=function(){var e=this;void 0===this.progressExtensionTimer&&(this.progressExtensionTimer=setInterval((function(){if(e.logger.debug(\"Progress extension timer expired for INVITE server transaction \"+e.id+\".\"),!e.lastProvisionalResponse)throw new Error(\"Last provisional response undefined.\");e.send(e.lastProvisionalResponse).catch((function(t){e.logTransportError(t,\"Failed to send retransmission of provisional response.\")}))}),s.Timers.PROVISIONAL_RESPONSE_INTERVAL))},t.prototype.stopProgressExtensionTimer=function(){void 0!==this.progressExtensionTimer&&(clearInterval(this.progressExtensionTimer),this.progressExtensionTimer=void 0)},t.prototype.timer_G=function(){},t.prototype.timer_H=function(){this.logger.debug(\"Timer H expired for INVITE server transaction \"+this.id+\".\"),this.state===a.TransactionState.Completed&&(this.logger.warn(\"ACK to negative final response was never received, terminating transaction.\"),this.stateTransition(a.TransactionState.Terminated))},t.prototype.timer_I=function(){this.logger.debug(\"Timer I expired for INVITE server transaction \"+this.id+\".\"),this.stateTransition(a.TransactionState.Terminated)},t.prototype.timer_L=function(){this.logger.debug(\"Timer L expired for INVITE server transaction \"+this.id+\".\"),this.state===a.TransactionState.Accepted&&this.stateTransition(a.TransactionState.Terminated)},t}(o.ServerTransaction);t.InviteServerTransaction=c},function(e,t,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var i=r(0),n=r(6),s=r(22),o=r(9),a=function(e){function t(t,r,i){var s=e.call(this,t,r,i,o.TransactionState.Trying,\"sip.transaction.nict\")||this;return s.F=setTimeout((function(){return s.timer_F()}),n.Timers.TIMER_F),s.send(t.toString()).catch((function(e){s.logTransportError(e,\"Failed to send initial outgoing request.\")})),s}return i.__extends(t,e),t.prototype.dispose=function(){this.F&&(clearTimeout(this.F),this.F=void 0),this.K&&(clearTimeout(this.K),this.K=void 0),e.prototype.dispose.call(this)},Object.defineProperty(t.prototype,\"kind\",{get:function(){return\"nict\"},enumerable:!0,configurable:!0}),t.prototype.receiveResponse=function(e){var t=e.statusCode;if(!t||t<100||t>699)throw new Error(\"Invalid status code \"+t);switch(this.state){case o.TransactionState.Trying:if(t>=100&&t<=199)return this.stateTransition(o.TransactionState.Proceeding),void(this.user.receiveResponse&&this.user.receiveResponse(e));if(t>=200&&t<=699)return this.stateTransition(o.TransactionState.Completed),408===t?void this.onRequestTimeout():void(this.user.receiveResponse&&this.user.receiveResponse(e));break;case o.TransactionState.Proceeding:if(t>=100&&t<=199&&this.user.receiveResponse)return this.user.receiveResponse(e);if(t>=200&&t<=699)return this.stateTransition(o.TransactionState.Completed),408===t?void this.onRequestTimeout():void(this.user.receiveResponse&&this.user.receiveResponse(e));case o.TransactionState.Completed:case o.TransactionState.Terminated:return;default:throw new Error(\"Invalid state \"+this.state)}var r=\"Non-INVITE client transaction received unexpected \"+t+\" response while in state \"+this.state+\".\";this.logger.warn(r)},t.prototype.onTransportError=function(e){this.user.onTransportError&&this.user.onTransportError(e),this.stateTransition(o.TransactionState.Terminated,!0)},t.prototype.typeToString=function(){return\"non-INVITE client transaction\"},t.prototype.stateTransition=function(e,t){var r=this;void 0===t&&(t=!1);var i=function(){throw new Error(\"Invalid state transition from \"+r.state+\" to \"+e)};switch(e){case o.TransactionState.Trying:i();break;case o.TransactionState.Proceeding:this.state!==o.TransactionState.Trying&&i();break;case o.TransactionState.Completed:this.state!==o.TransactionState.Trying&&this.state!==o.TransactionState.Proceeding&&i();break;case o.TransactionState.Terminated:this.state!==o.TransactionState.Trying&&this.state!==o.TransactionState.Proceeding&&this.state!==o.TransactionState.Completed&&(t||i());break;default:i()}e===o.TransactionState.Completed&&(this.F&&(clearTimeout(this.F),this.F=void 0),this.K=setTimeout((function(){return r.timer_K()}),n.Timers.TIMER_K)),e===o.TransactionState.Terminated&&this.dispose(),this.setState(e)},t.prototype.timer_F=function(){this.logger.debug(\"Timer F expired for non-INVITE client transaction \"+this.id+\".\"),this.state!==o.TransactionState.Trying&&this.state!==o.TransactionState.Proceeding||(this.onRequestTimeout(),this.stateTransition(o.TransactionState.Terminated))},t.prototype.timer_K=function(){this.state===o.TransactionState.Completed&&this.stateTransition(o.TransactionState.Terminated)},t}(s.ClientTransaction);t.NonInviteClientTransaction=a},function(e,t,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var i=r(0),n=r(6),s=r(25),o=r(9),a=function(e){function t(t,r,i){return e.call(this,t,r,i,o.TransactionState.Trying,\"sip.transaction.nist\")||this}return i.__extends(t,e),t.prototype.dispose=function(){this.J&&(clearTimeout(this.J),this.J=void 0),e.prototype.dispose.call(this)},Object.defineProperty(t.prototype,\"kind\",{get:function(){return\"nist\"},enumerable:!0,configurable:!0}),t.prototype.receiveRequest=function(e){var t=this;switch(this.state){case o.TransactionState.Trying:break;case o.TransactionState.Proceeding:if(!this.lastResponse)throw new Error(\"Last response undefined.\");this.send(this.lastResponse).catch((function(e){t.logTransportError(e,\"Failed to send retransmission of provisional response.\")}));break;case o.TransactionState.Completed:if(!this.lastResponse)throw new Error(\"Last response undefined.\");this.send(this.lastResponse).catch((function(e){t.logTransportError(e,\"Failed to send retransmission of final response.\")}));break;case o.TransactionState.Terminated:break;default:throw new Error(\"Invalid state \"+this.state)}},t.prototype.receiveResponse=function(e,t){var r=this;if(e<100||e>699)throw new Error(\"Invalid status code \"+e);if(e>100&&e<=199)throw new Error(\"Provisional response other than 100 not allowed.\");switch(this.state){case o.TransactionState.Trying:if(this.lastResponse=t,e>=100&&e<200)return this.stateTransition(o.TransactionState.Proceeding),void this.send(t).catch((function(e){r.logTransportError(e,\"Failed to send provisional response.\")}));if(e>=200&&e<=699)return this.stateTransition(o.TransactionState.Completed),void this.send(t).catch((function(e){r.logTransportError(e,\"Failed to send final response.\")}));break;case o.TransactionState.Proceeding:if(this.lastResponse=t,e>=200&&e<=699)return this.stateTransition(o.TransactionState.Completed),void this.send(t).catch((function(e){r.logTransportError(e,\"Failed to send final response.\")}));break;case o.TransactionState.Completed:return;case o.TransactionState.Terminated:break;default:throw new Error(\"Invalid state \"+this.state)}var i=\"Non-INVITE server transaction received unexpected \"+e+\" response from TU while in state \"+this.state+\".\";throw this.logger.error(i),new Error(i)},t.prototype.onTransportError=function(e){this.user.onTransportError&&this.user.onTransportError(e),this.stateTransition(o.TransactionState.Terminated,!0)},t.prototype.typeToString=function(){return\"non-INVITE server transaction\"},t.prototype.stateTransition=function(e,t){var r=this;void 0===t&&(t=!1);var i=function(){throw new Error(\"Invalid state transition from \"+r.state+\" to \"+e)};switch(e){case o.TransactionState.Trying:i();break;case o.TransactionState.Proceeding:this.state!==o.TransactionState.Trying&&i();break;case o.TransactionState.Completed:this.state!==o.TransactionState.Trying&&this.state!==o.TransactionState.Proceeding&&i();break;case o.TransactionState.Terminated:this.state!==o.TransactionState.Proceeding&&this.state!==o.TransactionState.Completed&&(t||i());break;default:i()}e===o.TransactionState.Completed&&(this.J=setTimeout((function(){return r.timer_J()}),n.Timers.TIMER_J)),e===o.TransactionState.Terminated&&this.dispose(),this.setState(e)},t.prototype.timer_J=function(){this.logger.debug(\"Timer J expired for NON-INVITE server transaction \"+this.id+\".\"),this.state===o.TransactionState.Completed&&this.stateTransition(o.TransactionState.Terminated)},t}(s.ServerTransaction);t.NonInviteServerTransaction=a},function(e,t,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),function(e){e.Initial=\"Initial\",e.NotifyWait=\"NotifyWait\",e.Pending=\"Pending\",e.Active=\"Active\",e.Terminated=\"Terminated\"}(t.SubscriptionState||(t.SubscriptionState={}))},function(e,t,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var i=r(0);i.__exportStar(r(28),t),i.__exportStar(r(74),t),i.__exportStar(r(50),t)},function(e,t,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var i=r(28),n=r(50),s=function(){function e(){this.builtinEnabled=!0,this._level=i.Levels.log,this.loggers={},this.logger=this.getLogger(\"sip:loggerfactory\")}return Object.defineProperty(e.prototype,\"level\",{get:function(){return this._level},set:function(e){e>=0&&e<=3?this._level=e:e>3?this._level=3:i.Levels.hasOwnProperty(e)?this._level=e:this.logger.error(\"invalid 'level' parameter value: \"+JSON.stringify(e))},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"connector\",{get:function(){return this._connector},set:function(e){e?\"function\"==typeof e?this._connector=e:this.logger.error(\"invalid 'connector' parameter value: \"+JSON.stringify(e)):this._connector=void 0},enumerable:!0,configurable:!0}),e.prototype.getLogger=function(e,t){if(t&&3===this.level)return new n.Logger(this,e,t);if(this.loggers[e])return this.loggers[e];var r=new n.Logger(this,e);return this.loggers[e]=r,r},e.prototype.genericLog=function(e,t,r,n){if(this.level>=e&&this.builtinEnabled)if(window.careAppSettings.careService){var s=window.careAppSettings.careService,o=\"careSipJS: Category: \"+t+(r?\", Label: \"+r:\"\")+\", \"+n;switch(e){case i.Levels.debug:s.logDebug(o);break;case i.Levels.error:s.logError(o);break;case i.Levels.warn:case i.Levels.log:default:s.logInfo(o)}}else this.print(e,t,r,n);this.connector&&this.connector(i.Levels[e],t,r,n)},e.prototype.print=function(e,t,r,n){if(\"string\"==typeof n){var s=[new Date,t];r&&s.push(r),n=s.concat(n).join(\" | \")}switch(e){case i.Levels.error:console.error(n);break;case i.Levels.warn:console.warn(n);break;case i.Levels.log:console.log(n);break;case i.Levels.debug:console.debug(n)}},e}();t.LoggerFactory=s},function(e,t,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),r(0).__exportStar(r(76),t)},function(e,t,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var i=r(0),n=r(2),s=r(1),o=r(51),a=r(10),c=[\"application/sdp\",\"application/dtmf-relay\"],u=function(){function e(e,t){void 0===t&&(t={}),this.userAgentClients=new Map,this.userAgentServers=new Map,this.configuration=e,this.delegate=t,this.dialogs=new Map,this.subscribers=new Map,this.logger=e.loggerFactory.getLogger(\"sip.user-agent-core\")}return e.prototype.dispose=function(){this.reset()},e.prototype.reset=function(){this.dialogs.forEach((function(e){return e.dispose()})),this.dialogs.clear(),this.subscribers.forEach((function(e){return e.dispose()})),this.subscribers.clear(),this.userAgentClients.forEach((function(e){return e.dispose()})),this.userAgentClients.clear(),this.userAgentServers.forEach((function(e){return e.dispose()})),this.userAgentServers.clear()},Object.defineProperty(e.prototype,\"loggerFactory\",{get:function(){return this.configuration.loggerFactory},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"transport\",{get:function(){var e=this.configuration.transportAccessor();if(!e)throw new Error(\"Transport undefined.\");return e},enumerable:!0,configurable:!0}),e.prototype.invite=function(e,t){return new o.InviteUserAgentClient(this,e,t)},e.prototype.message=function(e,t){return new o.MessageUserAgentClient(this,e,t)},e.prototype.publish=function(e,t){return new o.PublishUserAgentClient(this,e,t)},e.prototype.register=function(e,t){return new o.RegisterUserAgentClient(this,e,t)},e.prototype.subscribe=function(e,t){return new o.SubscribeUserAgentClient(this,e,t)},e.prototype.request=function(e,t){return new o.UserAgentClient(s.NonInviteClientTransaction,this,e,t)},e.prototype.makeOutgoingRequestMessage=function(e,t,r,s,o,a,c){var u=this.configuration.sipjsId,d=this.configuration.displayName,p=this.configuration.viaForceRport,l=this.configuration.hackViaTcp,h=this.configuration.supportedOptionTags.slice();e===n.C.REGISTER&&h.push(\"path\",\"gruu\"),e===n.C.INVITE&&(this.configuration.contact.pubGruu||this.configuration.contact.tempGruu)&&h.push(\"gruu\");var g={callIdPrefix:u,forceRport:p,fromDisplayName:d,hackViaTcp:l,optionTags:h,routeSet:this.configuration.routeSet,userAgentString:this.configuration.userAgentHeaderFieldValue,viaHost:this.configuration.viaHost},f=i.__assign(i.__assign({},g),o);return new n.OutgoingRequestMessage(e,t,r,s,f,a,c)},e.prototype.receiveIncomingRequestFromTransport=function(e){this.receiveRequestFromTransport(e)},e.prototype.receiveIncomingResponseFromTransport=function(e){this.receiveResponseFromTransport(e)},e.prototype.replyStateless=function(e,t){var r=this,s=this.configuration.userAgentHeaderFieldValue,o=this.configuration.supportedOptionTagsResponse;t=i.__assign(i.__assign({},t),{userAgent:s,supported:o});var a=n.constructOutgoingResponse(e,t);return this.transport.send(a.message).catch((function(t){t instanceof Error&&r.logger.error(t.message),r.logger.error(\"Transport error occurred sending stateless reply to \"+e.method+\" request.\")})),a},e.prototype.receiveRequestFromTransport=function(e){var t=e.viaBranch,r=this.userAgentServers.get(t);e.method===n.C.ACK&&r&&r.transaction.state===s.TransactionState.Accepted&&r instanceof o.InviteUserAgentServer?this.logger.warn(\"Discarding out of dialog ACK after 2xx response sent on transaction \"+t+\".\"):e.method!==n.C.CANCEL?r?r.transaction.receiveRequest(e):this.receiveRequest(e):r?(this.replyStateless(e,{statusCode:200}),r.transaction instanceof s.InviteServerTransaction&&r.transaction.state===s.TransactionState.Proceeding&&r instanceof o.InviteUserAgentServer&&r.receiveCancel(e)):this.replyStateless(e,{statusCode:481})},e.prototype.receiveRequest=function(e){if(-1!==a.AllowedMethods.indexOf(e.method)){if(!e.ruri)throw new Error(\"Request-URI undefined.\");if(\"sip\"===e.ruri.scheme){var t=e.ruri,r=function(e){return!!e&&e.user===t.user};if(!r(this.configuration.aor)&&!(r(this.configuration.contact.uri)||r(this.configuration.contact.pubGruu)||r(this.configuration.contact.tempGruu)))return this.logger.warn(\"Request-URI does not point to us.\"),void(e.method!==n.C.ACK&&this.replyStateless(e,{statusCode:404}));if(e.method!==n.C.INVITE||e.hasHeader(\"Contact\")){if(!e.toTag){var i=e.viaBranch;if(!this.userAgentServers.has(i))if(Array.from(this.userAgentServers.values()).some((function(t){return t.transaction.request.fromTag===e.fromTag&&t.transaction.request.callId===e.callId&&t.transaction.request.cseq===e.cseq})))return void this.replyStateless(e,{statusCode:482})}e.toTag?this.receiveInsideDialogRequest(e):this.receiveOutsideDialogRequest(e)}else this.replyStateless(e,{statusCode:400,reasonPhrase:\"Missing Contact Header\"})}else this.replyStateless(e,{statusCode:416})}else{var s=\"Allow: \"+a.AllowedMethods.toString();this.replyStateless(e,{statusCode:405,extraHeaders:[s]})}},e.prototype.receiveInsideDialogRequest=function(e){if(e.method===n.C.NOTIFY){var t=e.parseHeader(\"Event\");if(!t||!t.event)return void this.replyStateless(e,{statusCode:489});var r=e.callId+e.toTag+t.event,i=this.subscribers.get(r);if(i){var s=new o.NotifyUserAgentServer(this,e);return void i.onNotify(s)}}var u=e.callId+e.toTag+e.fromTag,d=this.dialogs.get(u);if(d){if(e.method===n.C.OPTIONS){var p=\"Allow: \"+a.AllowedMethods.toString(),l=\"Accept: \"+c.toString();return void this.replyStateless(e,{statusCode:200,extraHeaders:[p,l]})}d.receiveRequest(e)}else e.method!==n.C.ACK&&this.replyStateless(e,{statusCode:481})},e.prototype.receiveOutsideDialogRequest=function(e){switch(e.method){case n.C.ACK:break;case n.C.BYE:this.replyStateless(e,{statusCode:481});break;case n.C.CANCEL:throw new Error(\"Unexpected out of dialog request method \"+e.method+\".\");case n.C.INFO:this.replyStateless(e,{statusCode:405});break;case n.C.INVITE:var t=new o.InviteUserAgentServer(this,e);this.delegate.onInvite?this.delegate.onInvite(t):t.reject();break;case n.C.MESSAGE:t=new o.MessageUserAgentServer(this,e);this.delegate.onMessage?this.delegate.onMessage(t):t.accept();break;case n.C.NOTIFY:t=new o.NotifyUserAgentServer(this,e);this.delegate.onNotify?this.delegate.onNotify(t):t.reject({statusCode:405});break;case n.C.OPTIONS:var r=\"Allow: \"+a.AllowedMethods.toString(),i=\"Accept: \"+c.toString();this.replyStateless(e,{statusCode:200,extraHeaders:[r,i]});break;case n.C.REFER:t=new o.ReferUserAgentServer(this,e);this.delegate.onRefer?this.delegate.onRefer(t):t.reject({statusCode:405});break;case n.C.REGISTER:t=new o.RegisterUserAgentServer(this,e);this.delegate.onRegister?this.delegate.onRegister(t):t.reject({statusCode:405});break;case n.C.SUBSCRIBE:t=new o.SubscribeUserAgentServer(this,e);this.delegate.onSubscribe?this.delegate.onSubscribe(t):t.reject({statusCode:480});break;default:throw new Error(\"Unexpected out of dialog request method \"+e.method+\".\")}},e.prototype.receiveResponseFromTransport=function(e){if(e.getHeaders(\"via\").length>1)this.logger.warn(\"More than one Via header field present in the response, dropping\");else{var t=e.viaBranch+e.method,r=this.userAgentClients.get(t);r?r.transaction.receiveResponse(e):this.logger.warn(\"Discarding unmatched \"+e.statusCode+\" response to \"+e.method+\" \"+t+\".\")}},e}();t.UserAgentCore=u},function(e,t,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var i=r(0),n=r(1),s=function(e){function t(t,r,i){return e.call(this,n.NonInviteClientTransaction,t,r,i)||this}return i.__extends(t,e),t}(r(3).UserAgentClient);t.CancelUserAgentClient=s},function(e,t,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var i=r(0),n=r(15),s=r(11),o=r(1),a=function(e){function t(t,r,i){var n=e.call(this,o.InviteClientTransaction,t,r,i)||this;return n.confirmedDialogAcks=new Map,n.confirmedDialogs=new Map,n.earlyDialogs=new Map,n.delegate=i,n}return i.__extends(t,e),t.prototype.dispose=function(){this.earlyDialogs.forEach((function(e){return e.dispose()})),this.earlyDialogs.clear(),e.prototype.dispose.call(this)},t.prototype.onTransportError=function(t){if(this.transaction.state===o.TransactionState.Calling)return e.prototype.onTransportError.call(this,t);this.logger.error(t.message),this.logger.error(\"User agent client request transport error while sending ACK.\")},t.prototype.receiveResponse=function(e){var t=this;if(this.authenticationGuard(e)){var r=e.statusCode?e.statusCode.toString():\"\";if(!r)throw new Error(\"Response status code undefined.\");switch(!0){case/^100$/.test(r):return void(this.delegate&&this.delegate.onTrying&&this.delegate.onTrying({message:e}));case/^1[0-9]{2}$/.test(r):if(!e.toTag)return void this.logger.warn(\"Non-100 1xx INVITE response received without a to tag, dropping.\");var i=n.Dialog.initialDialogStateForUserAgentClient(this.message,e),a=this.earlyDialogs.get(i.id);if(!a){if(!((d=this.transaction)instanceof o.InviteClientTransaction))throw new Error(\"Transaction not instance of InviteClientTransaction.\");a=new n.SessionDialog(d,this.core,i),this.earlyDialogs.set(a.id,a)}if(!a.reliableSequenceGuard(e))return void this.logger.warn(\"1xx INVITE reliable response received out of order, dropping.\");a.signalingState!==s.SignalingState.Initial&&a.signalingState!==s.SignalingState.HaveLocalOffer||a.signalingStateTransition(e);var c=a;return void(this.delegate&&this.delegate.onProgress&&this.delegate.onProgress({message:e,session:c,prack:function(e){return c.prack(void 0,e)}}));case/^2[0-9]{2}$/.test(r):i=n.Dialog.initialDialogStateForUserAgentClient(this.message,e);var u=this.confirmedDialogs.get(i.id);if(u){if(l=this.confirmedDialogAcks.get(i.id)){if(!((d=this.transaction)instanceof o.InviteClientTransaction))throw new Error(\"Client transaction not instance of InviteClientTransaction.\");d.ackResponse(l.message)}return}if(u=this.earlyDialogs.get(i.id))u.confirm(),u.recomputeRouteSet(e),this.earlyDialogs.delete(u.id),this.confirmedDialogs.set(u.id,u);else{var d;if(!((d=this.transaction)instanceof o.InviteClientTransaction))throw new Error(\"Transaction not instance of InviteClientTransaction.\");u=new n.SessionDialog(d,this.core,i),this.confirmedDialogs.set(u.id,u)}u.signalingState!==s.SignalingState.Initial&&u.signalingState!==s.SignalingState.HaveLocalOffer||u.signalingStateTransition(e);var p=u;if(this.delegate&&this.delegate.onAccept)this.delegate.onAccept({message:e,session:p,ack:function(e){var r=p.ack(e);return t.confirmedDialogAcks.set(p.id,r),r}});else{var l=p.ack();this.confirmedDialogAcks.set(p.id,l)}return;case/^3[0-9]{2}$/.test(r):return this.earlyDialogs.forEach((function(e){return e.dispose()})),this.earlyDialogs.clear(),void(this.delegate&&this.delegate.onRedirect&&this.delegate.onRedirect({message:e}));case/^[4-6][0-9]{2}$/.test(r):return this.earlyDialogs.forEach((function(e){return e.dispose()})),this.earlyDialogs.clear(),void(this.delegate&&this.delegate.onReject&&this.delegate.onReject({message:e}));default:throw new Error(\"Invalid status code \"+r)}throw new Error(\"Executing what should be an unreachable code path receiving \"+r+\" response.\")}},t}(r(3).UserAgentClient);t.InviteUserAgentClient=a},function(e,t,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var i=r(0),n=r(15),s=r(12),o=r(11),a=r(1),c=r(10),u=function(e){function t(t,r,i){var n=e.call(this,a.InviteServerTransaction,t,r,i)||this;return n.core=t,n}return i.__extends(t,e),t.prototype.dispose=function(){this.earlyDialog&&this.earlyDialog.dispose(),e.prototype.dispose.call(this)},t.prototype.accept=function(t){if(void 0===t&&(t={statusCode:200}),!this.acceptable)throw new s.TransactionStateError(this.message.method+\" not acceptable in state \"+this.transaction.state+\".\");if(!this.confirmedDialog)if(this.earlyDialog)this.earlyDialog.confirm(),this.confirmedDialog=this.earlyDialog,this.earlyDialog=void 0;else{var r=this.transaction;if(!(r instanceof a.InviteServerTransaction))throw new Error(\"Transaction not instance of InviteClientTransaction.\");var u=n.Dialog.initialDialogStateForUserAgentServer(this.message,this.toTag);this.confirmedDialog=new n.SessionDialog(r,this.core,u)}var d=this.message.getHeaders(\"record-route\").map((function(e){return\"Record-Route: \"+e})),p=\"Contact: \"+this.core.configuration.contact.toString(),l=\"Allow: \"+c.AllowedMethods.toString();if(!t.body)if(this.confirmedDialog.signalingState===o.SignalingState.Stable)t.body=this.confirmedDialog.answer;else if(this.confirmedDialog.signalingState===o.SignalingState.Initial||this.confirmedDialog.signalingState===o.SignalingState.HaveRemoteOffer)throw new Error(\"Response must have a body.\");t.statusCode=t.statusCode||200,t.extraHeaders=t.extraHeaders||[],t.extraHeaders=t.extraHeaders.concat(d),t.extraHeaders.push(l),t.extraHeaders.push(p);var h=e.prototype.accept.call(this,t),g=this.confirmedDialog,f=i.__assign(i.__assign({},h),{session:g});return t.body&&this.confirmedDialog.signalingState!==o.SignalingState.Stable&&this.confirmedDialog.signalingStateTransition(t.body),f},t.prototype.progress=function(t){if(void 0===t&&(t={statusCode:180}),!this.progressable)throw new s.TransactionStateError(this.message.method+\" not progressable in state \"+this.transaction.state+\".\");if(!this.earlyDialog){var r=this.transaction;if(!(r instanceof a.InviteServerTransaction))throw new Error(\"Transaction not instance of InviteClientTransaction.\");var c=n.Dialog.initialDialogStateForUserAgentServer(this.message,this.toTag,!0);this.earlyDialog=new n.SessionDialog(r,this.core,c)}var u=this.message.getHeaders(\"record-route\").map((function(e){return\"Record-Route: \"+e})),d=\"Contact: \"+this.core.configuration.contact;t.extraHeaders=t.extraHeaders||[],t.extraHeaders=t.extraHeaders.concat(u),t.extraHeaders.push(d);var p=e.prototype.progress.call(this,t),l=this.earlyDialog,h=i.__assign(i.__assign({},p),{session:l});return t.body&&this.earlyDialog.signalingState!==o.SignalingState.Stable&&this.earlyDialog.signalingStateTransition(t.body),h},t.prototype.redirect=function(t,r){return void 0===r&&(r={statusCode:302}),e.prototype.redirect.call(this,t,r)},t.prototype.reject=function(t){return void 0===t&&(t={statusCode:486}),e.prototype.reject.call(this,t)},t}(r(5).UserAgentServer);t.InviteUserAgentServer=u},function(e,t,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var i=r(0),n=r(1),s=function(e){function t(t,r,i){return e.call(this,n.NonInviteClientTransaction,t,r,i)||this}return i.__extends(t,e),t}(r(3).UserAgentClient);t.MessageUserAgentClient=s},function(e,t,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var i=r(0),n=r(1),s=function(e){function t(t,r,i){var s=e.call(this,n.NonInviteServerTransaction,t,r,i)||this;return s.core=t,s}return i.__extends(t,e),t}(r(5).UserAgentServer);t.MessageUserAgentServer=s},function(e,t,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var i=r(0),n=r(1),s=function(e){function t(t,r,i){return e.call(this,n.NonInviteClientTransaction,t,r,i)||this}return i.__extends(t,e),t}(r(3).UserAgentClient);t.PublishUserAgentClient=s},function(e,t,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var i=r(0),n=r(1),s=function(e){function t(t,r,i){return e.call(this,n.NonInviteServerTransaction,t.userAgentCore,r,i)||this}return i.__extends(t,e),t}(r(5).UserAgentServer);t.ReSubscribeUserAgentServer=s},function(e,t,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var i=r(0),n=r(1),s=function(e){function t(t,r,i){return e.call(this,n.NonInviteClientTransaction,t,r,i)||this}return i.__extends(t,e),t}(r(3).UserAgentClient);t.RegisterUserAgentClient=s},function(e,t,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var i=r(0),n=r(1),s=function(e){function t(t,r,i){var s=e.call(this,n.NonInviteServerTransaction,t,r,i)||this;return s.core=t,s}return i.__extends(t,e),t}(r(5).UserAgentServer);t.RegisterUserAgentServer=s},function(e,t,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var i=r(0),n=r(48),s=r(27),o=r(6),a=r(1),c=function(e){function t(t,r,i){var n=this,o=r.getHeader(\"Event\");if(!o)throw new Error(\"Event undefined\");var c=r.getHeader(\"Expires\");if(!c)throw new Error(\"Expires undefined\");return(n=e.call(this,a.NonInviteClientTransaction,t,r,i)||this).delegate=i,n.subscriberId=r.callId+r.fromTag+o,n.subscriptionExpiresRequested=n.subscriptionExpires=Number(c),n.subscriptionEvent=o,n.subscriptionState=s.SubscriptionState.NotifyWait,n.waitNotifyStart(),n}return i.__extends(t,e),t.prototype.dispose=function(){e.prototype.dispose.call(this)},t.prototype.onNotify=function(e){var t=e.message.parseHeader(\"Event\").event;if(!t||t!==this.subscriptionEvent)return this.logger.warn(\"Failed to parse event.\"),void e.reject({statusCode:489});var r=e.message.parseHeader(\"Subscription-State\");if(!r||!r.state)return this.logger.warn(\"Failed to parse subscription state.\"),void e.reject({statusCode:489});var i=r.state;switch(i){case\"pending\":case\"active\":case\"terminated\":break;default:return this.logger.warn(\"Invalid subscription state \"+i),void e.reject({statusCode:489})}if(\"terminated\"!==i&&!e.message.parseHeader(\"contact\"))return this.logger.warn(\"Failed to parse contact.\"),void e.reject({statusCode:489});if(this.dialog)throw new Error(\"Dialog already created. This implementation only supports install of single subscriptions.\");switch(this.waitNotifyStop(),this.subscriptionExpires=r.expires?Math.min(this.subscriptionExpires,Math.max(r.expires,0)):this.subscriptionExpires,i){case\"pending\":this.subscriptionState=s.SubscriptionState.Pending;break;case\"active\":this.subscriptionState=s.SubscriptionState.Active;break;case\"terminated\":this.subscriptionState=s.SubscriptionState.Terminated;break;default:throw new Error(\"Unrecognized state \"+i+\".\")}if(this.subscriptionState!==s.SubscriptionState.Terminated){var o=n.SubscriptionDialog.initialDialogStateForSubscription(this.message,e.message);this.dialog=new n.SubscriptionDialog(this.subscriptionEvent,this.subscriptionExpires,this.subscriptionState,this.core,o)}if(this.delegate&&this.delegate.onNotify){var a=e,c=this.dialog;this.delegate.onNotify({request:a,subscription:c})}else e.accept()},t.prototype.waitNotifyStart=function(){var e=this;this.N||(this.core.subscribers.set(this.subscriberId,this),this.N=setTimeout((function(){return e.timer_N()}),o.Timers.TIMER_N))},t.prototype.waitNotifyStop=function(){this.N&&(this.core.subscribers.delete(this.subscriberId),clearTimeout(this.N),this.N=void 0)},t.prototype.receiveResponse=function(t){if(this.authenticationGuard(t)){if(t.statusCode&&t.statusCode>=200&&t.statusCode<300){var r=t.getHeader(\"Expires\");if(r){var i=Number(r);i>this.subscriptionExpiresRequested&&this.logger.warn(\"Expires header in a 200-class response to SUBSCRIBE with a higher value than the one in the request\"),ithis.subscriptionExpires&&(this.dialog.subscriptionExpires=this.subscriptionExpires)}t.statusCode&&t.statusCode>=300&&t.statusCode<700&&this.waitNotifyStop(),e.prototype.receiveResponse.call(this,t)}},t.prototype.timer_N=function(){this.logger.warn(\"Timer N expired for SUBSCRIBE user agent client. Timed out waiting for NOTIFY.\"),this.waitNotifyStop(),this.delegate&&this.delegate.onNotifyTimeout&&this.delegate.onNotifyTimeout()},t}(r(3).UserAgentClient);t.SubscribeUserAgentClient=c},function(e,t,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var i=r(0),n=r(1),s=function(e){function t(t,r,i){var s=e.call(this,n.NonInviteServerTransaction,t,r,i)||this;return s.core=t,s}return i.__extends(t,e),t}(r(5).UserAgentServer);t.SubscribeUserAgentServer=s},function(e,t,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var i=r(0),n=r(8),s=r(29),o=r(4),a=r(13),c=r(30),u=function(e){function t(r,i){var n=e.call(this)||this;return n.incomingRequest=i,n.data={},t.initializer(n,r,i),n}return i.__extends(t,e),t.initializer=function(e,t,r){var i=r.message;if(e.type=a.TypeStrings.ServerContext,e.ua=t,e.logger=t.getLogger(\"sip.servercontext\"),e.request=i,i.body&&(e.body=i.body),i.hasHeader(\"Content-Type\")&&(e.contentType=i.getHeader(\"Content-Type\")),e.method=i.method,e.localIdentity=i.to,e.remoteIdentity=i.from,i.hasHeader(\"P-Asserted-Identity\")){var n=i.getHeader(\"P-Asserted-Identity\");n&&(e.assertedIdentity=o.Grammar.nameAddrHeaderParse(n))}},t.prototype.progress=function(e){return void 0===e&&(e={}),e.statusCode=e.statusCode||180,e.minCode=100,e.maxCode=199,e.events=[\"progress\"],this.reply(e)},t.prototype.accept=function(e){return void 0===e&&(e={}),e.statusCode=e.statusCode||200,e.minCode=200,e.maxCode=299,e.events=[\"accepted\"],this.reply(e)},t.prototype.reject=function(e){return void 0===e&&(e={}),e.statusCode=e.statusCode||480,e.minCode=300,e.maxCode=699,e.events=[\"rejected\",\"failed\"],this.reply(e)},t.prototype.reply=function(e){var t=this;void 0===e&&(e={});var r=e.statusCode||100,i=e.minCode||100,n=e.maxCode||699,s=c.Utils.getReasonPhrase(r,e.reasonPhrase),a=e.extraHeaders||[],u=e.body?o.fromBodyLegacy(e.body):void 0,d=e.events||[];if(rn)throw new TypeError(\"Invalid statusCode: \"+r);var p,l={statusCode:r,reasonPhrase:s,extraHeaders:a,body:u},h=r.toString();switch(!0){case/^100$/.test(h):p=this.incomingRequest.trying(l).message;break;case/^1[0-9]{2}$/.test(h):p=this.incomingRequest.progress(l).message;break;case/^2[0-9]{2}$/.test(h):p=this.incomingRequest.accept(l).message;break;case/^3[0-9]{2}$/.test(h):p=this.incomingRequest.redirect([],l).message;break;case/^[4-6][0-9]{2}$/.test(h):p=this.incomingRequest.reject(l).message;break;default:throw new Error(\"Invalid status code \"+r)}return d.forEach((function(e){t.emit(e,p,s)})),this},t.prototype.onRequestTimeout=function(){this.emit(\"failed\",void 0,s.C.causes.REQUEST_TIMEOUT)},t.prototype.onTransportError=function(){this.emit(\"failed\",void 0,s.C.causes.CONNECTION_ERROR)},t}(n.EventEmitter);t.ServerContext=u},function(e,t,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var i=function(){function e(e){this.incomingInfoRequest=e}return Object.defineProperty(e.prototype,\"request\",{get:function(){return this.incomingInfoRequest.message},enumerable:!0,configurable:!0}),e.prototype.accept=function(e){return this.incomingInfoRequest.accept(e),Promise.resolve()},e.prototype.reject=function(e){return this.incomingInfoRequest.reject(e),Promise.resolve()},e}();t.Info=i},function(e,t,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var i=r(4),n=function(){function e(e,t){this.incomingReferRequest=e,this.session=t}return Object.defineProperty(e.prototype,\"referTo\",{get:function(){var e=this.incomingReferRequest.message.parseHeader(\"refer-to\");if(!(e instanceof i.NameAddrHeader))throw new Error(\"Failed to parse Refer-To header.\");return e},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"referredBy\",{get:function(){return this.incomingReferRequest.message.getHeader(\"referred-by\")},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"replaces\",{get:function(){return this.referTo.uri.getHeader(\"replaces\")},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"request\",{get:function(){return this.incomingReferRequest.message},enumerable:!0,configurable:!0}),e.prototype.accept=function(e){return void 0===e&&(e={statusCode:202}),this.incomingReferRequest.accept(e),Promise.resolve()},e.prototype.reject=function(e){return this.incomingReferRequest.reject(e),Promise.resolve()},e.prototype.makeInviter=function(e){if(this.inviter)return this.inviter;var t=this.referTo.uri.clone();t.clearHeaders();var r=((e=e||{}).extraHeaders||[]).slice(),i=this.replaces;i&&r.push(\"Replaces: \"+decodeURIComponent(i));var n=this.referredBy;return n&&r.push(\"Referred-By: \"+n),e.extraHeaders=r,this.inviter=this.session.userAgent._makeInviter(t,e),this.inviter._referred=this.session,this.session._referral=this.inviter,this.inviter},e}();t.Referral=n},,function(e,t,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.LIBRARY_VERSION=\"0.15.10\"},function(e,t,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var i=r(0),n=r(53),s=r(29),o=r(4),a=r(13),c=r(32),u=r(88),d=function(e){function t(t,r,i,n){void 0===n&&(n={});var o=this;if(void 0===t||void 0===r||void 0===i)throw new TypeError(\"Not enough arguments\");return(o=e.call(this,t,s.C.REFER,r.remoteIdentity.uri.toString(),n)||this).type=a.TypeStrings.ReferClientContext,o.options=n,o.extraHeaders=(o.options.extraHeaders||[]).slice(),o.applicant=r,o.target=o.initReferTo(i),o.ua&&o.extraHeaders.push(\"Referred-By: <\"+o.ua.configuration.uri+\">\"),o.extraHeaders.push(\"Contact: \"+r.contact),o.extraHeaders.push(\"Allow: \"+[\"ACK\",\"CANCEL\",\"INVITE\",\"MESSAGE\",\"BYE\",\"OPTIONS\",\"INFO\",\"NOTIFY\",\"REFER\"].toString()),o.extraHeaders.push(\"Refer-To: \"+o.target),o.errorListener=o.onTransportError.bind(o),t.transport&&t.transport.on(\"transportError\",o.errorListener),o}return i.__extends(t,e),t.prototype.refer=function(e){var t=this;void 0===e&&(e={});var r=(this.extraHeaders||[]).slice();return e.extraHeaders&&r.concat(e.extraHeaders),this.applicant.sendRequest(s.C.REFER,{extraHeaders:this.extraHeaders,receiveResponse:function(r){var i=r&&r.statusCode?r.statusCode.toString():\"\";/^1[0-9]{2}$/.test(i)?t.emit(\"referRequestProgress\",t):/^2[0-9]{2}$/.test(i)?t.emit(\"referRequestAccepted\",t):/^[4-6][0-9]{2}$/.test(i)&&t.emit(\"referRequestRejected\",t),e.receiveResponse&&e.receiveResponse(r)}}),this},t.prototype.receiveNotify=function(e){var t=e.message.hasHeader(\"Content-Type\")?e.message.getHeader(\"Content-Type\"):void 0;if(t&&-1!==t.search(/^message\\/sipfrag/)){var r=o.Grammar.parse(e.message.body,\"sipfrag\");if(-1===r)return void e.reject({statusCode:489,reasonPhrase:\"Bad Event\"});switch(!0){case/^1[0-9]{2}$/.test(r.status_code):this.emit(\"referProgress\",this);break;case/^2[0-9]{2}$/.test(r.status_code):this.emit(\"referAccepted\",this),!this.options.activeAfterTransfer&&this.applicant.terminate&&this.applicant.terminate();break;default:this.emit(\"referRejected\",this)}return e.accept(),void this.emit(\"notify\",e.message)}e.reject({statusCode:489,reasonPhrase:\"Bad Event\"})},t.prototype.initReferTo=function(e){var t;if(\"string\"==typeof e){var r=o.Grammar.parse(e,\"Refer_To\");t=r&&r.uri?r.uri:e;var i=this.ua.normalizeTarget(e);if(!i)throw new TypeError(\"Invalid target: \"+e);t=i}else{if(!e.session)throw new Error(\"Session undefined.\");var n=e.remoteIdentity.friendlyName,s=e.session.remoteTarget.toString(),a=e.session.callId,c=e.session.remoteTag,u=e.session.localTag;t='\"'+n+'\" <'+s+\"?Replaces=\"+encodeURIComponent(a+\";to-tag=\"+c+\";from-tag=\"+u)+\">\"}return t},t}(n.ClientContext);t.ReferClientContext=d;var p=function(e){function t(t,r,i){var n=e.call(this,t,r)||this;return n.session=i,n.type=a.TypeStrings.ReferServerContext,n.ua=t,n.status=a.SessionStatus.STATUS_INVITE_RECEIVED,n.fromTag=n.request.fromTag,n.id=n.request.callId+n.fromTag,n.contact=n.ua.contact.toString(),n.logger=t.getLogger(\"sip.referservercontext\",n.id),n.cseq=Math.floor(1e4*Math.random()),n.callId=n.request.callId,n.fromUri=n.request.to.uri,n.fromTag=n.request.to.parameters.tag,n.remoteTarget=n.request.headers.Contact[0].parsed.uri,n.toUri=n.request.from.uri,n.toTag=n.request.fromTag,n.routeSet=n.request.getHeaders(\"record-route\"),n.request.hasHeader(\"refer-to\")?(n.referTo=n.request.parseHeader(\"refer-to\"),n.referredSession=n.ua.findSession(n.request),n.request.hasHeader(\"referred-by\")&&(n.referredBy=n.request.getHeader(\"referred-by\")),n.referTo.uri.hasHeader(\"replaces\")&&(n.replaces=n.referTo.uri.getHeader(\"replaces\")),n.errorListener=n.onTransportError.bind(n),t.transport&&t.transport.on(\"transportError\",n.errorListener),n.status=a.SessionStatus.STATUS_WAITING_FOR_ANSWER,n):(n.logger.warn(\"Invalid REFER packet. A refer-to header is required. Rejecting refer.\"),n.reject(),n)}return i.__extends(t,e),t.prototype.progress=function(){if(this.status!==a.SessionStatus.STATUS_WAITING_FOR_ANSWER)throw new c.Exceptions.InvalidStateError(this.status);this.incomingRequest.trying()},t.prototype.reject=function(t){if(void 0===t&&(t={}),this.status===a.SessionStatus.STATUS_TERMINATED)throw new c.Exceptions.InvalidStateError(this.status);this.logger.log(\"Rejecting refer\"),this.status=a.SessionStatus.STATUS_TERMINATED,e.prototype.reject.call(this,t),this.emit(\"referRequestRejected\",this)},t.prototype.accept=function(e,t){var r=this;if(void 0===e&&(e={}),this.status!==a.SessionStatus.STATUS_WAITING_FOR_ANSWER)throw new c.Exceptions.InvalidStateError(this.status);if(this.status=a.SessionStatus.STATUS_ANSWERED,this.incomingRequest.accept({statusCode:202,reasonPhrase:\"Accepted\"}),this.emit(\"referRequestAccepted\",this),e.followRefer){this.logger.log(\"Accepted refer, attempting to automatically follow it\");var i=this.referTo.uri;if(!i.scheme||!i.scheme.match(\"^sips?$\"))return this.logger.error(\"SIP.js can only automatically follow SIP refer target\"),void this.reject();var n=e.inviteOptions||{},s=(n.extraHeaders||[]).slice();if(this.replaces&&s.push(\"Replaces: \"+decodeURIComponent(this.replaces)),this.referredBy&&s.push(\"Referred-By: \"+this.referredBy),n.extraHeaders=s,i.clearHeaders(),this.targetSession=this.ua.invite(i.toString(),n,t),this.emit(\"referInviteSent\",this),this.targetSession){this.targetSession.once(\"progress\",(function(e){var t=e.statusCode||100,i=e.reasonPhrase;r.sendNotify((\"SIP/2.0 \"+t+\" \"+i).trim()),r.emit(\"referProgress\",r),r.referredSession&&r.referredSession.emit(\"referProgress\",r)})),this.targetSession.once(\"accepted\",(function(){r.logger.log(\"Successfully followed the refer\"),r.sendNotify(\"SIP/2.0 200 OK\"),r.emit(\"referAccepted\",r),r.referredSession&&r.referredSession.emit(\"referAccepted\",r)}));var o=function(e){if(r.status!==a.SessionStatus.STATUS_TERMINATED){if(r.logger.log(\"Refer was not successful. Resuming session\"),e&&429===e.statusCode)return r.logger.log(\"Alerting referrer that identity is required.\"),void r.sendNotify(\"SIP/2.0 429 Provide Referrer Identity\");r.sendNotify(\"SIP/2.0 603 Declined\"),r.status=a.SessionStatus.STATUS_TERMINATED,r.emit(\"referRejected\",r),r.referredSession&&r.referredSession.emit(\"referRejected\")}};this.targetSession.once(\"rejected\",o),this.targetSession.once(\"failed\",o)}}else this.logger.log(\"Accepted refer, but did not automatically follow it\"),this.sendNotify(\"SIP/2.0 200 OK\"),this.emit(\"referAccepted\",this),this.referredSession&&this.referredSession.emit(\"referAccepted\",this)},t.prototype.sendNotify=function(e){if(this.status!==a.SessionStatus.STATUS_ANSWERED)throw new c.Exceptions.InvalidStateError(this.status);if(-1===o.Grammar.parse(e,\"sipfrag\"))throw new Error(\"sipfrag body is required to send notify for refer\");var t={contentDisposition:\"render\",contentType:\"message/sipfrag\",content:e};if(this.session)this.session.notify(void 0,{extraHeaders:[\"Event: refer\",\"Subscription-State: terminated\"],body:t});else{var r=this.ua.userAgentCore.makeOutgoingRequestMessage(s.C.NOTIFY,this.remoteTarget,this.fromUri,this.toUri,{cseq:this.cseq+=1,callId:this.callId,fromTag:this.fromTag,toTag:this.toTag,routeSet:this.routeSet},[\"Event: refer\",\"Subscription-State: terminated\",\"Content-Type: message/sipfrag\"],t),i=this.ua.transport;if(!i)throw new Error(\"Transport undefined.\");var n={loggerFactory:this.ua.getLoggerFactory()};new o.NonInviteClientTransaction(r,i,n)}},t.prototype.on=function(t,r){return e.prototype.on.call(this,t,r)},t}(u.ServerContext);t.ReferServerContext=p},function(e,t,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var i=r(0),n=function(e){function t(t){return e.call(this,t||\"Unsupported content type.\")||this}return i.__extends(t,e),t}(r(4).Exception);t.ContentTypeUnsupportedError=n},function(e,t,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var i=r(0),n=function(e){function t(t){return e.call(this,t||\"Request pending.\")||this}return i.__extends(t,e),t}(r(4).Exception);t.RequestPendingError=n},function(e,t,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var i=r(0),n=function(e){function t(t){return e.call(this,t||\"Unspecified session description handler error.\")||this}return i.__extends(t,e),t}(r(4).Exception);t.SessionDescriptionHandlerError=n},function(e,t,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var i=r(0),n=function(e){function t(){return e.call(this,\"The session has terminated.\")||this}return i.__extends(t,e),t}(r(4).Exception);t.SessionTerminatedError=n},function(e,t,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var i=r(0),n=function(e){function t(t){return e.call(this,t||\"An error occurred during state transition.\")||this}return i.__extends(t,e),t}(r(4).Exception);t.StateTransitionError=n},function(e,t,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var i=function(e,t){for(var r,i=[],n=e.split(/\\r\\n/),s=0;s=0&&n<=this.pubRequestExpires?this.pubRequestExpires=n:this.logger.warn(\"Bad Expires header in a 200-class response to PUBLISH\")}else this.logger.warn(\"Expires header missing in a 200-class response to PUBLISH\");0!==this.pubRequestExpires?(this.publishRefreshTimer=setTimeout((function(){return t.refreshRequest()}),900*this.pubRequestExpires),this.emit(\"published\",e,i)):this.emit(\"unpublished\",e,i);break;case/^412$/.test(r.toString()):void 0!==this.pubRequestEtag&&0!==this.pubRequestExpires?(this.logger.warn(\"412 response to PUBLISH, recovering\"),this.pubRequestEtag=void 0,this.emit(\"progress\",e,i),this.publish(this.options.body)):(this.logger.warn(\"412 response to PUBLISH, recovery failed\"),this.pubRequestExpires=0,this.emit(\"failed\",e,i),this.emit(\"unpublished\",e,i));break;case/^423$/.test(r.toString()):if(0!==this.pubRequestExpires&&e.hasHeader(\"Min-Expires\")){var s=Number(e.getHeader(\"Min-Expires\"));\"number\"==typeof s||s>this.pubRequestExpires?(this.logger.warn(\"423 code in response to PUBLISH, adjusting the Expires value and trying to recover\"),this.pubRequestExpires=s,this.emit(\"progress\",e,i),this.publish(this.options.body)):(this.logger.warn(\"Bad 423 response Min-Expires header received for PUBLISH\"),this.pubRequestExpires=0,this.emit(\"failed\",e,i),this.emit(\"unpublished\",e,i))}else this.logger.warn(\"423 response to PUBLISH, recovery failed\"),this.pubRequestExpires=0,this.emit(\"failed\",e,i),this.emit(\"unpublished\",e,i);break;default:this.pubRequestExpires=0,this.emit(\"failed\",e,i),this.emit(\"unpublished\",e,i)}0===this.pubRequestExpires&&(this.publishRefreshTimer&&(clearTimeout(this.publishRefreshTimer),this.publishRefreshTimer=void 0),this.pubRequestBody=void 0,this.pubRequestEtag=void 0)},t.prototype.send=function(){var e=this;return this.ua.userAgentCore.publish(this.request,{onAccept:function(t){return e.receiveResponse(t.message)},onProgress:function(t){return e.receiveResponse(t.message)},onRedirect:function(t){return e.receiveResponse(t.message)},onReject:function(t){return e.receiveResponse(t.message)},onTrying:function(t){return e.receiveResponse(t.message)}}),this},t.prototype.refreshRequest=function(){if(this.publishRefreshTimer&&(clearTimeout(this.publishRefreshTimer),this.publishRefreshTimer=void 0),this.pubRequestBody=void 0,void 0===this.pubRequestEtag)throw new c.Exceptions.MethodParameterError(\"Publish\",\"Body\",void 0);if(0===this.pubRequestExpires)throw new c.Exceptions.MethodParameterError(\"Publish\",\"Expire\",this.pubRequestExpires);this.sendPublishRequest()},t.prototype.sendPublishRequest=function(){var e=Object.create(this.options||Object.prototype);e.extraHeaders=(this.options.extraHeaders||[]).slice(),e.extraHeaders.push(\"Event: \"+this.event),e.extraHeaders.push(\"Expires: \"+this.pubRequestExpires),void 0!==this.pubRequestEtag&&e.extraHeaders.push(\"SIP-If-Match: \"+this.pubRequestEtag);var t=this.target instanceof o.URI?this.target:this.ua.normalizeTarget(this.target);if(!t)throw new Error(\"ruri undefined.\");var r,i,n=this.options.params||{};void 0!==this.pubRequestBody&&(r={body:this.pubRequestBody,contentType:this.options.contentType}),r&&(i=u.Utils.fromBodyObj(r)),this.request=this.ua.userAgentCore.makeOutgoingRequestMessage(s.C.PUBLISH,t,n.fromUri?n.fromUri:this.ua.userAgentCore.configuration.aor,n.toUri?n.toUri:this.target,n,e.extraHeaders,i),this.send()},t}(n.ClientContext);t.PublishContext=d},function(e,t,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var i=r(0),n=r(53),s=r(29),o=r(4),a=r(13),c=r(32),u=r(30);function d(e){var t={expires:600,extraContactHeaderParams:[],instanceId:void 0,params:{},regId:void 0,registrar:void 0},r={mandatory:{},optional:{expires:function(e){if(u.Utils.isDecimal(e)){var t=Number(e);if(t>=0)return t}},extraContactHeaderParams:function(e){if(e instanceof Array)return e.filter((function(e){return\"string\"==typeof e}))},instanceId:function(e){if(\"string\"==typeof e)return/^uuid:/i.test(e)&&(e=e.substr(5)),-1===o.Grammar.parse(e,\"uuid\")?void 0:e},params:function(e){if(\"object\"==typeof e)return e},regId:function(e){if(u.Utils.isDecimal(e)){var t=Number(e);if(t>=0)return t}},registrar:function(e){if(\"string\"==typeof e){/^sip:/i.test(e)||(e=s.C.SIP+\":\"+e);var t=o.Grammar.URIParse(e);return t?t.user?void 0:t:void 0}}}};for(var i in r.mandatory){if(!e.hasOwnProperty(i))throw new c.Exceptions.ConfigurationError(i);var n=e[i];if(void 0===(a=r.mandatory[i](n)))throw new c.Exceptions.ConfigurationError(i,n);t[i]=a}for(var i in r.optional)if(e.hasOwnProperty(i)){var a;if((n=e[i])instanceof Array&&0===n.length)continue;if(null===n||\"\"===n||void 0===n||\"number\"==typeof n&&isNaN(n))continue;if(void 0===(a=r.optional[i](n)))throw new c.Exceptions.ConfigurationError(i,n);t[i]=a}return t}var p=function(e){function t(t,r){void 0===r&&(r={});var i=this,n=d(r);if(n.regId&&!n.instanceId?n.instanceId=u.Utils.newUUID():!n.regId&&n.instanceId&&(n.regId=1),n.params.toUri=n.params.toUri||t.configuration.uri,n.params.toDisplayName=n.params.toDisplayName||t.configuration.displayName,n.params.callId=n.params.callId||u.Utils.createRandomToken(22),n.params.cseq=n.params.cseq||Math.floor(1e4*Math.random()),!n.registrar){var o={};\"object\"==typeof t.configuration.uri?(o=t.configuration.uri.clone()).user=void 0:o=t.configuration.uri,n.registrar=o}for(var c in(i=e.call(this,t,s.C.REGISTER,n.registrar,n)||this).type=a.TypeStrings.RegisterContext,i.options=n,i.logger=t.getLogger(\"sip.registercontext\"),i.logger.log(\"configuration parameters for RegisterContext after validation:\"),n)n.hasOwnProperty(c)&&i.logger.log(\"\\xb7 \"+c+\": \"+JSON.stringify(n[c]));return i.expires=n.expires,i.contact=t.contact.toString(),i.registered=!1,t.transport.on(\"disconnected\",(function(){return i.onTransportDisconnected()})),i}return i.__extends(t,e),t.prototype.register=function(e){var t=this;void 0===e&&(e={}),this.options=i.__assign(i.__assign({},this.options),e);var r=(this.options.extraHeaders||[]).slice();r.push(\"Contact: \"+this.generateContactHeader(this.expires)),r.push(\"Allow: \"+[\"ACK\",\"CANCEL\",\"INVITE\",\"MESSAGE\",\"BYE\",\"OPTIONS\",\"INFO\",\"NOTIFY\",\"REFER\"].toString()),this.closeHeaders=this.options.closeWithHeaders?(this.options.extraHeaders||[]).slice():[],this.receiveResponse=function(e){if(e.cseq===t.request.cseq){void 0!==t.registrationTimer&&(clearTimeout(t.registrationTimer),t.registrationTimer=void 0);var r=(e.statusCode||0).toString();switch(!0){case/^1[0-9]{2}$/.test(r):t.emit(\"progress\",e);break;case/^2[0-9]{2}$/.test(r):t.emit(\"accepted\",e);var i=void 0;e.hasHeader(\"expires\")&&(i=Number(e.getHeader(\"expires\"))),void 0!==t.registrationExpiredTimer&&(clearTimeout(t.registrationExpiredTimer),t.registrationExpiredTimer=void 0);var n=e.getHeaders(\"contact\").length;if(!n){t.logger.warn(\"no Contact header in response to REGISTER, response ignored\");break}for(var a=void 0;n--;){if((a=e.parseHeader(\"contact\",n)).uri.user===t.ua.contact.uri.user){i=a.getParam(\"expires\");break}a=void 0}if(!a){t.logger.warn(\"no Contact header pointing to us, response ignored\");break}void 0===i&&(i=t.expires),t.registrationTimer=setTimeout((function(){t.registrationTimer=void 0,t.register(t.options)}),1e3*i-3e3),t.registrationExpiredTimer=setTimeout((function(){t.logger.warn(\"registration expired\"),t.registered&&t.unregistered(void 0,s.C.causes.EXPIRES)}),1e3*i),a.hasParam(\"temp-gruu\")&&(t.ua.contact.tempGruu=o.Grammar.URIParse(a.getParam(\"temp-gruu\").replace(/\"/g,\"\"))),a.hasParam(\"pub-gruu\")&&(t.ua.contact.pubGruu=o.Grammar.URIParse(a.getParam(\"pub-gruu\").replace(/\"/g,\"\"))),t.registered=!0,t.emit(\"registered\",e||void 0);break;case/^423$/.test(r):e.hasHeader(\"min-expires\")?(t.expires=Number(e.getHeader(\"min-expires\")),t.register(t.options)):(t.logger.warn(\"423 response received for REGISTER without Min-Expires\"),t.registrationFailure(e,s.C.causes.SIP_FAILURE_CODE));break;default:t.registrationFailure(e,u.Utils.sipErrorCause(e.statusCode||0))}}},this.onRequestTimeout=function(){t.registrationFailure(void 0,s.C.causes.REQUEST_TIMEOUT)},this.onTransportError=function(){t.registrationFailure(void 0,s.C.causes.CONNECTION_ERROR)},this.request.cseq++,this.request.setHeader(\"cseq\",this.request.cseq+\" REGISTER\"),this.request.extraHeaders=r,this.send()},t.prototype.close=function(){var e={all:!1,extraHeaders:this.closeHeaders};this.registeredBefore=this.registered,this.registered&&this.unregister(e)},t.prototype.unregister=function(e){var t=this;void 0===e&&(e={}),this.registered||e.all||this.logger.warn(\"Already unregistered, but sending an unregister anyways.\");var r=(e.extraHeaders||[]).slice();this.registered=!1,void 0!==this.registrationTimer&&(clearTimeout(this.registrationTimer),this.registrationTimer=void 0),e.all?(r.push(\"Contact: *\"),r.push(\"Expires: 0\")):r.push(\"Contact: \"+this.generateContactHeader(0)),this.receiveResponse=function(e){var r=e&&e.statusCode?e.statusCode.toString():\"\";switch(!0){case/^1[0-9]{2}$/.test(r):t.emit(\"progress\",e);break;case/^2[0-9]{2}$/.test(r):t.emit(\"accepted\",e),void 0!==t.registrationExpiredTimer&&(clearTimeout(t.registrationExpiredTimer),t.registrationExpiredTimer=void 0),t.unregistered(e);break;default:t.unregistered(e,u.Utils.sipErrorCause(e.statusCode||0))}},this.onRequestTimeout=function(){},this.request.cseq++,this.request.setHeader(\"cseq\",this.request.cseq+\" REGISTER\"),this.request.extraHeaders=r,this.send()},t.prototype.unregistered=function(e,t){this.registered=!1,this.emit(\"unregistered\",e||void 0,t||void 0)},t.prototype.send=function(){var e=this;return this.ua.userAgentCore.register(this.request,{onAccept:function(t){return e.receiveResponse(t.message)},onProgress:function(t){return e.receiveResponse(t.message)},onRedirect:function(t){return e.receiveResponse(t.message)},onReject:function(t){return e.receiveResponse(t.message)},onTrying:function(t){return e.receiveResponse(t.message)}}),this},t.prototype.registrationFailure=function(e,t){this.emit(\"failed\",e||void 0,t||void 0)},t.prototype.onTransportDisconnected=function(){this.registeredBefore=this.registered,void 0!==this.registrationTimer&&(clearTimeout(this.registrationTimer),this.registrationTimer=void 0),void 0!==this.registrationExpiredTimer&&(clearTimeout(this.registrationExpiredTimer),this.registrationExpiredTimer=void 0),this.registered&&this.unregistered(void 0,s.C.causes.CONNECTION_ERROR)},t.prototype.generateContactHeader=function(e){void 0===e&&(e=0);var t=this.contact;return this.options.regId&&this.options.instanceId&&(t+=\";reg-id=\"+this.options.regId,t+=';+sip.instance=\"\"'),this.options.extraContactHeaderParams&&this.options.extraContactHeaderParams.forEach((function(e){t+=\";\"+e})),t+=\";expires=\"+e},t}(n.ClientContext);t.RegisterContext=p},function(e,t,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var i=r(0),n=r(8),s=r(53),o=r(29),a=r(4),c=r(13),u=r(32),d=r(93),p=r(88),l=r(119),h=r(106),g=r(30),f=function(e){function t(r){var i=e.call(this)||this;if(i.data={},i.type=c.TypeStrings.Session,!r)throw new u.Exceptions.SessionDescriptionHandlerError(\"A session description handler is required for the session to function\");return i.status=t.C.STATUS_NULL,i.pendingReinvite=!1,i.sessionDescriptionHandlerFactory=r,i.hasOffer=!1,i.hasAnswer=!1,i.timers={ackTimer:void 0,expiresTimer:void 0,invite2xxTimer:void 0,userNoAnswerTimer:void 0,rel1xxTimer:void 0,prackTimer:void 0},i.startTime=void 0,i.endTime=void 0,i.tones=void 0,i.localHold=!1,i.earlySdp=void 0,i.rel100=o.C.supported.UNSUPPORTED,i}return i.__extends(t,e),t.prototype.dtmf=function(e,t){var r=this;if(void 0===t&&(t={}),this.status!==c.SessionStatus.STATUS_CONFIRMED&&this.status!==c.SessionStatus.STATUS_WAITING_FOR_ACK)throw new u.Exceptions.InvalidStateError(this.status);h.DTMFValidator.validate(e);var i=function(){if(r.status!==c.SessionStatus.STATUS_TERMINATED&&r.tones&&0!==r.tones.length){var e,n=r.tones.shift();\",\"===n.tone?e=2e3:(n.on(\"failed\",(function(){r.tones=void 0})),n.send(t),e=n.duration+n.interToneGap),setTimeout(i,e)}else r.tones=void 0};e=e.toString();var n=this.ua.configuration.dtmfType;this.sessionDescriptionHandler&&n===o.C.dtmfType.RTP&&(this.sessionDescriptionHandler.sendDtmf(e,t)||(this.logger.warn(\"Attempt to use dtmfType 'RTP' has failed, falling back to INFO packet method\"),n=o.C.dtmfType.INFO));if(n===o.C.dtmfType.INFO){for(var s=[],a=e.split(\"\");a.length>0;)s.push(new l.DTMF(this,a.shift(),t));if(this.tones)return this.tones=this.tones.concat(s),this;this.tones=s,i()}return this},t.prototype.bye=function(e){if(void 0===e&&(e={}),this.status===c.SessionStatus.STATUS_TERMINATED)return this.logger.error(\"Error: Attempted to send BYE in a terminated session.\"),this;this.logger.log(\"terminating Session\");var t=e.statusCode;if(t&&(t<200||t>=700))throw new TypeError(\"Invalid statusCode: \"+t);return e.receiveResponse=function(){},this.sendRequest(o.C.BYE,e).terminated()},t.prototype.refer=function(e,t){if(void 0===t&&(t={}),this.status!==c.SessionStatus.STATUS_CONFIRMED)throw new u.Exceptions.InvalidStateError(this.status);return this.referContext=new d.ReferClientContext(this.ua,this,e,t),this.emit(\"referRequested\",this.referContext),this.referContext.refer(t),this.referContext},t.prototype.sendRequest=function(e,t){if(void 0===t&&(t={}),!this.session)throw new Error(\"Session undefined.\");var r;t.body&&(t.body=g.Utils.fromBodyObj(t.body));var i,n=t.receiveResponse;n&&(r={onAccept:function(e){return n(e.message)},onProgress:function(e){return n(e.message)},onRedirect:function(e){return n(e.message)},onReject:function(e){return n(e.message)},onTrying:function(e){return n(e.message)}});var s=t;switch(e){case o.C.BYE:i=this.session.bye(r,s);break;case o.C.INVITE:i=this.session.invite(r,s);break;case o.C.REFER:i=this.session.refer(r,s);break;default:throw new Error(\"Unexpected \"+e+\". Method not implemented by user agent core.\")}return this.emit(e.toLowerCase(),i.message),this},t.prototype.close=function(){if(this.status===c.SessionStatus.STATUS_TERMINATED)return this;for(var e in this.logger.log(\"closing INVITE session \"+this.id),this.sessionDescriptionHandler&&this.sessionDescriptionHandler.close(),this.timers)this.timers[e]&&clearTimeout(this.timers[e]);return this.status=c.SessionStatus.STATUS_TERMINATED,this.ua.transport&&this.ua.transport.removeListener(\"transportError\",this.errorListener),delete this.ua.sessions[this.id],this},t.prototype.hold=function(e,t){if(void 0===e&&(e={}),void 0===t&&(t=[]),this.status!==c.SessionStatus.STATUS_WAITING_FOR_ACK&&this.status!==c.SessionStatus.STATUS_CONFIRMED)throw new u.Exceptions.InvalidStateError(this.status);this.localHold?this.logger.log(\"Session is already on hold, cannot put it on hold again\"):(e.modifiers=t,this.sessionDescriptionHandler&&e.modifiers.push(this.sessionDescriptionHandler.holdModifier),this.localHold=!0,this.sendReinvite(e))},t.prototype.unhold=function(e,t){if(void 0===e&&(e={}),void 0===t&&(t=[]),this.status!==c.SessionStatus.STATUS_WAITING_FOR_ACK&&this.status!==c.SessionStatus.STATUS_CONFIRMED)throw new u.Exceptions.InvalidStateError(this.status);this.localHold?(e.modifiers=t,this.localHold=!1,this.sendReinvite(e)):this.logger.log(\"Session is not on hold, cannot unhold it\")},t.prototype.reinvite=function(e,t){return void 0===e&&(e={}),void 0===t&&(t=[]),e.modifiers=t,this.sendReinvite(e)},t.prototype.terminate=function(e){return this},t.prototype.onTransportError=function(){this.status!==c.SessionStatus.STATUS_CONFIRMED&&this.status!==c.SessionStatus.STATUS_TERMINATED&&this.failed(void 0,o.C.causes.CONNECTION_ERROR)},t.prototype.onRequestTimeout=function(){this.status===c.SessionStatus.STATUS_CONFIRMED?this.terminated(void 0,o.C.causes.REQUEST_TIMEOUT):this.status!==c.SessionStatus.STATUS_TERMINATED&&(this.failed(void 0,o.C.causes.REQUEST_TIMEOUT),this.terminated(void 0,o.C.causes.REQUEST_TIMEOUT))},t.prototype.onDialogError=function(e){this.status===c.SessionStatus.STATUS_CONFIRMED?this.terminated(e,o.C.causes.DIALOG_ERROR):this.status!==c.SessionStatus.STATUS_TERMINATED&&(this.failed(e,o.C.causes.DIALOG_ERROR),this.terminated(e,o.C.causes.DIALOG_ERROR))},t.prototype.on=function(t,r){return e.prototype.on.call(this,t,r)},t.prototype.onAck=function(e){var t=this,r=function(){clearTimeout(t.timers.ackTimer),clearTimeout(t.timers.invite2xxTimer),t.status=c.SessionStatus.STATUS_CONFIRMED;var r=e.message.getHeader(\"Content-Disposition\");r&&\"render\"===r.type&&(t.renderbody=e.message.body,t.rendertype=e.message.getHeader(\"Content-Type\")),t.emit(\"confirmed\",e.message)};this.status===c.SessionStatus.STATUS_WAITING_FOR_ACK&&(this.sessionDescriptionHandler&&this.sessionDescriptionHandler.hasDescription(e.message.getHeader(\"Content-Type\")||\"\")?(this.hasAnswer=!0,this.sessionDescriptionHandler.setDescription(e.message.body,this.sessionDescriptionHandlerOptions,this.modifiers).catch((function(r){throw t.logger.warn(r),t.terminate({statusCode:\"488\",reasonPhrase:\"Bad Media Description\"}),t.failed(e.message,o.C.causes.BAD_MEDIA_DESCRIPTION),t.terminated(e.message,o.C.causes.BAD_MEDIA_DESCRIPTION),r})).then((function(){return r()}))):r())},t.prototype.receiveRequest=function(e){switch(e.message.method){case o.C.BYE:e.accept(),this.status===c.SessionStatus.STATUS_CONFIRMED&&(this.emit(\"bye\",e.message),this.terminated(e.message,o.C.BYE));break;case o.C.INVITE:this.status===c.SessionStatus.STATUS_CONFIRMED&&(this.logger.log(\"re-INVITE received\"),this.receiveReinvite(e));break;case o.C.INFO:if(this.status===c.SessionStatus.STATUS_CONFIRMED||this.status===c.SessionStatus.STATUS_WAITING_FOR_ACK){if(this.onInfo)return this.onInfo(e.message);var t=e.message.getHeader(\"content-type\");if(t)if(t.match(/^application\\/dtmf-relay/i)){if(e.message.body){var r=e.message.body.split(\"\\r\\n\",2);if(2===r.length){var i=void 0,n=void 0,s=/^(Signal\\s*?=\\s*?)([0-9A-D#*]{1})(\\s)?.*/;s.test(r[0])&&(i=r[0].replace(s,\"$2\"));var a=/^(Duration\\s?=\\s?)([0-9]{1,4})(\\s)?.*/;a.test(r[1])&&(n=parseInt(r[1].replace(a,\"$2\"),10)),i&&n&&new l.DTMF(this,i,{duration:n}).init_incoming(e)}}}else e.reject({statusCode:415,extraHeaders:[\"Accept: application/dtmf-relay\"]})}break;case o.C.REFER:if(this.status===c.SessionStatus.STATUS_CONFIRMED)if(this.logger.log(\"REFER received\"),this.referContext=new d.ReferServerContext(this.ua,e,this.session),this.listeners(\"referRequested\").length)this.emit(\"referRequested\",this.referContext);else{this.logger.log(\"No referRequested listeners, automatically accepting and following the refer\");var u={followRefer:!0};this.passedOptions&&(u.inviteOptions=this.passedOptions),this.referContext.accept(u,this.modifiers)}break;case o.C.NOTIFY:if(this.referContext&&this.referContext.type===c.TypeStrings.ReferClientContext&&e.message.hasHeader(\"event\")&&/^refer(;.*)?$/.test(e.message.getHeader(\"event\")))return void this.referContext.receiveNotify(e);e.accept(),this.emit(\"notify\",e.message)}},t.prototype.receiveReinvite=function(e){var t,r=this;if(this.emit(\"reinvite\",this,e.message),e.message.hasHeader(\"P-Asserted-Identity\")&&(this.assertedIdentity=a.Grammar.nameAddrHeaderParse(e.message.getHeader(\"P-Asserted-Identity\"))),this.sessionDescriptionHandler){if(\"0\"!==e.message.getHeader(\"Content-Length\")||e.message.getHeader(\"Content-Type\")){if(!this.sessionDescriptionHandler.hasDescription(e.message.getHeader(\"Content-Type\")||\"\"))return e.reject({statusCode:415}),void this.emit(\"reinviteFailed\",this);t=this.sessionDescriptionHandler.setDescription(e.message.body,this.sessionDescriptionHandlerOptions,this.modifiers).then(this.sessionDescriptionHandler.getDescription.bind(this.sessionDescriptionHandler,this.sessionDescriptionHandlerOptions,this.modifiers))}else t=this.sessionDescriptionHandler.getDescription(this.sessionDescriptionHandlerOptions,this.modifiers);t.catch((function(t){var i;throw t.type===c.TypeStrings.SessionDescriptionHandlerError?i=500:t.type===c.TypeStrings.RenegotiationError?(r.emit(\"renegotiationError\",t),r.logger.warn(t.toString()),i=488):(r.logger.error(t),i=488),e.reject({statusCode:i}),r.emit(\"reinviteFailed\",r),t})).then((function(t){var i=[\"Contact: \"+r.contact];e.accept({statusCode:200,extraHeaders:i,body:g.Utils.fromBodyObj(t)}),r.status=c.SessionStatus.STATUS_WAITING_FOR_ACK,r.emit(\"reinviteAccepted\",r)}))}else this.logger.warn(\"No SessionDescriptionHandler to reinvite\")},t.prototype.sendReinvite=function(e){var t=this;if(void 0===e&&(e={}),this.pendingReinvite)this.logger.warn(\"Reinvite in progress. Please wait until complete, then try again.\");else if(this.sessionDescriptionHandler){this.pendingReinvite=!0,e.modifiers=e.modifiers||[];var r=(e.extraHeaders||[]).slice();r.push(\"Contact: \"+this.contact),r.push(\"Allow: \"+[\"ACK\",\"CANCEL\",\"INVITE\",\"MESSAGE\",\"BYE\",\"OPTIONS\",\"INFO\",\"NOTIFY\",\"REFER\"].toString()),this.sessionDescriptionHandler.getDescription(e.sessionDescriptionHandlerOptions,e.modifiers).then((function(e){if(!t.session)throw new Error(\"Session undefined.\");var i={onAccept:function(e){if(t.status!==c.SessionStatus.STATUS_TERMINATED)if(t.pendingReinvite){if(t.status=c.SessionStatus.STATUS_CONFIRMED,t.emit(\"ack\",e.ack()),t.pendingReinvite=!1,clearTimeout(t.timers.invite2xxTimer),!t.sessionDescriptionHandler||!t.sessionDescriptionHandler.hasDescription(e.message.getHeader(\"Content-Type\")||\"\"))return t.logger.error(\"2XX response received to re-invite but did not have a description\"),t.emit(\"reinviteFailed\",t),void t.emit(\"renegotiationError\",new u.Exceptions.RenegotiationError(\"2XX response received to re-invite but did not have a description\"));t.sessionDescriptionHandler.setDescription(e.message.body,t.sessionDescriptionHandlerOptions,t.modifiers).catch((function(e){throw t.logger.error(\"Could not set the description in 2XX response\"),t.logger.error(e),t.emit(\"reinviteFailed\",t),t.emit(\"renegotiationError\",e),t.sendRequest(o.C.BYE,{extraHeaders:[\"Reason: \"+g.Utils.getReasonHeaderValue(488,\"Not Acceptable Here\")]}),t.terminated(void 0,o.C.causes.INCOMPATIBLE_SDP),e})).then((function(){t.emit(\"reinviteAccepted\",t)}))}else t.logger.error(\"Received reinvite response, but have no pending reinvite\");else t.logger.error(\"Received reinvite response, but in STATUS_TERMINATED\")},onProgress:function(e){},onRedirect:function(e){t.pendingReinvite=!1,t.logger.log(\"Received a non 1XX or 2XX response to a re-invite\"),t.emit(\"reinviteFailed\",t),t.emit(\"renegotiationError\",new u.Exceptions.RenegotiationError(\"Invalid response to a re-invite\"))},onReject:function(e){t.pendingReinvite=!1,t.logger.log(\"Received a non 1XX or 2XX response to a re-invite\"),t.emit(\"reinviteFailed\",t),t.emit(\"renegotiationError\",new u.Exceptions.RenegotiationError(\"Invalid response to a re-invite\"))},onTrying:function(e){}},n={extraHeaders:r,body:g.Utils.fromBodyObj(e)};t.session.invite(i,n)})).catch((function(e){if(e.type===c.TypeStrings.RenegotiationError)throw t.pendingReinvite=!1,t.emit(\"renegotiationError\",e),t.logger.warn(\"Renegotiation Error\"),t.logger.warn(e.toString()),e;throw t.logger.error(\"sessionDescriptionHandler error\"),t.logger.error(e),e}))}else this.logger.warn(\"No SessionDescriptionHandler, can't reinvite..\")},t.prototype.failed=function(e,t){return this.status===c.SessionStatus.STATUS_TERMINATED?this:(this.emit(\"failed\",e,t),this)},t.prototype.rejected=function(e,t){return this.emit(\"rejected\",e,t),this},t.prototype.canceled=function(){return this.sessionDescriptionHandler&&this.sessionDescriptionHandler.close(),this.emit(\"cancel\"),this},t.prototype.accepted=function(e,t){return e instanceof String||(t=g.Utils.getReasonPhrase(e&&e.statusCode||0,t)),this.startTime=new Date,this.replacee&&(this.replacee.emit(\"replaced\",this),this.replacee.terminate()),this.emit(\"accepted\",e,t),this},t.prototype.terminated=function(e,t){return this.status===c.SessionStatus.STATUS_TERMINATED?this:(this.endTime=new Date,this.close(),this.emit(\"terminated\",e,t),this)},t.prototype.connecting=function(e){return this.emit(\"connecting\",{request:e}),this},t.C=c.SessionStatus,t}(n.EventEmitter);t.Session=f;var v=function(e){function t(t,r){var i=this;if(!t.configuration.sessionDescriptionHandlerFactory)throw t.logger.warn(\"Can't build ISC without SDH Factory\"),new Error(\"ISC Constructor Failed\");(i=e.call(this,t.configuration.sessionDescriptionHandlerFactory)||this)._canceled=!1,i.rseq=Math.floor(1e4*Math.random()),i.incomingRequest=r;var n=r.message;p.ServerContext.initializer(i,t,r),i.type=c.TypeStrings.InviteServerContext;var s=n.parseHeader(\"Content-Disposition\");s&&\"render\"===s.type&&(i.renderbody=n.body,i.rendertype=n.getHeader(\"Content-Type\")),i.status=c.SessionStatus.STATUS_INVITE_RECEIVED,i.fromTag=n.fromTag,i.id=n.callId+i.fromTag,i.request=n,i.contact=i.ua.contact.toString(),i.logger=t.getLogger(\"sip.inviteservercontext\",i.id),i.ua.sessions[i.id]=i;var a=function(e,t){n.hasHeader(e)&&n.getHeader(e).toLowerCase().indexOf(\"100rel\")>=0&&(i.rel100=t)};if(a(\"require\",o.C.supported.REQUIRED),a(\"supported\",o.C.supported.SUPPORTED),i.request.toTag=r.toTag,i.status=c.SessionStatus.STATUS_WAITING_FOR_ANSWER,i.timers.userNoAnswerTimer=setTimeout((function(){r.reject({statusCode:408}),i.failed(n,o.C.causes.NO_ANSWER),i.terminated(n,o.C.causes.NO_ANSWER)}),i.ua.configuration.noAnswerTimeout||60),n.hasHeader(\"expires\")){var u=1e3*Number(n.getHeader(\"expires\")||0);i.timers.expiresTimer=setTimeout((function(){i.status===c.SessionStatus.STATUS_WAITING_FOR_ANSWER&&(r.reject({statusCode:487}),i.failed(n,o.C.causes.EXPIRES),i.terminated(n,o.C.causes.EXPIRES))}),u)}return i.errorListener=i.onTransportError.bind(i),t.transport&&t.transport.on(\"transportError\",i.errorListener),i}return i.__extends(t,e),Object.defineProperty(t.prototype,\"autoSendAnInitialProvisionalResponse\",{get:function(){return this.rel100!==o.C.supported.REQUIRED},enumerable:!0,configurable:!0}),t.prototype.reply=function(e){return void 0===e&&(e={}),this},t.prototype.reject=function(e){var t=this;if(void 0===e&&(e={}),this.status===c.SessionStatus.STATUS_TERMINATED)throw new u.Exceptions.InvalidStateError(this.status);this.logger.log(\"rejecting RTCSession\");var r=e.statusCode||480,i=g.Utils.getReasonPhrase(r,e.reasonPhrase),n=e.extraHeaders||[];if(r<300||r>699)throw new TypeError(\"Invalid statusCode: \"+r);var s=e.body?a.fromBodyLegacy(e.body):void 0,o=r<400?this.incomingRequest.redirect([],{statusCode:r,reasonPhrase:i,extraHeaders:n,body:s}):this.incomingRequest.reject({statusCode:r,reasonPhrase:i,extraHeaders:n,body:s});return[\"rejected\",\"failed\"].forEach((function(e){t.emit(e,o.message,i)})),this.terminated()},t.prototype.accept=function(e){var t=this;return void 0===e&&(e={}),this._accept(e).then((function(e){var r=e.message,i=e.session;i.delegate={onAck:function(e){return t.onAck(e)},onAckTimeout:function(){return t.onAckTimeout()},onBye:function(e){return t.receiveRequest(e)},onInfo:function(e){return t.receiveRequest(e)},onInvite:function(e){return t.receiveRequest(e)},onNotify:function(e){return t.receiveRequest(e)},onPrack:function(e){return t.receiveRequest(e)},onRefer:function(e){return t.receiveRequest(e)}},t.session=i,t.status=c.SessionStatus.STATUS_WAITING_FOR_ACK,t.accepted(r,g.Utils.getReasonPhrase(200))})).catch((function(e){if(t.onContextError(e),!t._canceled)throw e})),this},t.prototype.progress=function(e){var t=this;void 0===e&&(e={});var r=e.statusCode||180;if(r<100||r>199)throw new TypeError(\"Invalid statusCode: \"+r);if(this.status===c.SessionStatus.STATUS_TERMINATED)return this.logger.warn(\"Unexpected call for progress while terminated, ignoring\"),this;if(this.status===c.SessionStatus.STATUS_ANSWERED)return this.logger.warn(\"Unexpected call for progress while answered, ignoring\"),this;if(this.status===c.SessionStatus.STATUS_ANSWERED_WAITING_FOR_PRACK)return this.logger.warn(\"Unexpected call for progress while answered (waiting for prack), ignoring\"),this;if(this.status===c.SessionStatus.STATUS_WAITING_FOR_PRACK)return this.logger.warn(\"Unexpected call for progress while waiting for prack, ignoring\"),this;if(100===e.statusCode){try{this.incomingRequest.trying()}catch(e){if(this.onContextError(e),!this._canceled)throw e}return this}return this.rel100===o.C.supported.REQUIRED||this.rel100===o.C.supported.SUPPORTED&&e.rel100||this.rel100===o.C.supported.SUPPORTED&&this.ua.configuration.rel100===o.C.supported.REQUIRED?(this._reliableProgressWaitForPrack(e).catch((function(e){if(t.onContextError(e),!t._canceled)throw e})),this):(this._progress(e).catch((function(e){if(t.onContextError(e),!t._canceled)throw e})),this)},t.prototype.terminate=function(e){var t=this;if(void 0===e&&(e={}),!this.session)return this.reject(e),this;switch(this.session.sessionState){case a.SessionState.Initial:case a.SessionState.Early:return this.reject(e),this;case a.SessionState.AckWait:return this.session.delegate={onAck:function(){t.sendRequest(o.C.BYE,e)},onAckTimeout:function(){t.sendRequest(o.C.BYE,e)}},this.emit(\"bye\",this.request),this.terminated(),this;case a.SessionState.Confirmed:return this.bye(e),this;case a.SessionState.Terminated:default:return this}},t.prototype.onCancel=function(e){this.status!==c.SessionStatus.STATUS_WAITING_FOR_ANSWER&&this.status!==c.SessionStatus.STATUS_WAITING_FOR_PRACK&&this.status!==c.SessionStatus.STATUS_ANSWERED_WAITING_FOR_PRACK&&this.status!==c.SessionStatus.STATUS_EARLY_MEDIA&&this.status!==c.SessionStatus.STATUS_ANSWERED||(this.status=c.SessionStatus.STATUS_CANCELED,this.incomingRequest.reject({statusCode:487}),this.canceled(),this.rejected(e,o.C.causes.CANCELED),this.failed(e,o.C.causes.CANCELED),this.terminated(e,o.C.causes.CANCELED))},t.prototype.receiveRequest=function(t){var r=this;switch(t.message.method){case o.C.PRACK:this.status===c.SessionStatus.STATUS_WAITING_FOR_PRACK||this.status===c.SessionStatus.STATUS_ANSWERED_WAITING_FOR_PRACK?this.hasAnswer?(clearTimeout(this.timers.rel1xxTimer),clearTimeout(this.timers.prackTimer),t.accept(),this.status===c.SessionStatus.STATUS_ANSWERED_WAITING_FOR_PRACK&&(this.status=c.SessionStatus.STATUS_EARLY_MEDIA,this.accept()),this.status=c.SessionStatus.STATUS_EARLY_MEDIA):(this.sessionDescriptionHandler=this.setupSessionDescriptionHandler(),this.emit(\"SessionDescriptionHandler-created\",this.sessionDescriptionHandler),this.sessionDescriptionHandler.hasDescription(t.message.getHeader(\"Content-Type\")||\"\")?(this.hasAnswer=!0,this.sessionDescriptionHandler.setDescription(t.message.body,this.sessionDescriptionHandlerOptions,this.modifiers).then((function(){clearTimeout(r.timers.rel1xxTimer),clearTimeout(r.timers.prackTimer),t.accept(),r.status===c.SessionStatus.STATUS_ANSWERED_WAITING_FOR_PRACK&&(r.status=c.SessionStatus.STATUS_EARLY_MEDIA,r.accept()),r.status=c.SessionStatus.STATUS_EARLY_MEDIA}),(function(e){r.logger.warn(e),r.terminate({statusCode:\"488\",reasonPhrase:\"Bad Media Description\"}),r.failed(t.message,o.C.causes.BAD_MEDIA_DESCRIPTION),r.terminated(t.message,o.C.causes.BAD_MEDIA_DESCRIPTION)}))):(this.terminate({statusCode:\"488\",reasonPhrase:\"Bad Media Description\"}),this.failed(t.message,o.C.causes.BAD_MEDIA_DESCRIPTION),this.terminated(t.message,o.C.causes.BAD_MEDIA_DESCRIPTION))):this.status===c.SessionStatus.STATUS_EARLY_MEDIA&&t.accept();break;default:e.prototype.receiveRequest.call(this,t)}},t.prototype.setupSessionDescriptionHandler=function(){return this.sessionDescriptionHandler?this.sessionDescriptionHandler:this.sessionDescriptionHandlerFactory(this,this.ua.configuration.sessionDescriptionHandlerFactoryOptions)},t.prototype.generateResponseOfferAnswer=function(e){if(!this.session){var t=a.getBody(this.incomingRequest.message);return t&&\"session\"===t.contentDisposition?this.setOfferAndGetAnswer(t,e):this.getOffer(e)}switch(this.session.signalingState){case a.SignalingState.Initial:return this.getOffer(e);case a.SignalingState.Stable:case a.SignalingState.HaveLocalOffer:return Promise.resolve(void 0);case a.SignalingState.HaveRemoteOffer:if(!this.session.offer)throw new Error(\"Session offer undefined\");return this.setOfferAndGetAnswer(this.session.offer,e);case a.SignalingState.Closed:default:throw new Error(\"Invalid signaling state \"+this.session.signalingState+\".\")}},t.prototype.handlePrackOfferAnswer=function(e,t){if(!this.session)throw new Error(\"Session undefined.\");var r=a.getBody(e.message);if(!r||\"session\"!==r.contentDisposition)return Promise.resolve(void 0);switch(this.session.signalingState){case a.SignalingState.Initial:throw new Error(\"Invalid signaling state \"+this.session.signalingState+\".\");case a.SignalingState.Stable:return this.setAnswer(r,t).then((function(){}));case a.SignalingState.HaveLocalOffer:throw new Error(\"Invalid signaling state \"+this.session.signalingState+\".\");case a.SignalingState.HaveRemoteOffer:return this.setOfferAndGetAnswer(r,t);case a.SignalingState.Closed:default:throw new Error(\"Invalid signaling state \"+this.session.signalingState+\".\")}},t.prototype.canceled=function(){return this._canceled=!0,e.prototype.canceled.call(this)},t.prototype.terminated=function(t,r){return this.prackNeverArrived(),e.prototype.terminated.call(this,t,r)},t.prototype._accept=function(e){var t=this;return void 0===e&&(e={}),this.onInfo=e.onInfo,this.status===c.SessionStatus.STATUS_WAITING_FOR_PRACK?(this.status=c.SessionStatus.STATUS_ANSWERED_WAITING_FOR_PRACK,this.waitForArrivalOfPrack().then((function(){t.status=c.SessionStatus.STATUS_ANSWERED,clearTimeout(t.timers.userNoAnswerTimer)})).then((function(){return t.generateResponseOfferAnswer(e)})).then((function(e){return t.incomingRequest.accept({statusCode:200,body:e})}))):this.status!==c.SessionStatus.STATUS_WAITING_FOR_ANSWER?Promise.reject(new u.Exceptions.InvalidStateError(this.status)):(this.status=c.SessionStatus.STATUS_ANSWERED,this.status=c.SessionStatus.STATUS_ANSWERED,clearTimeout(this.timers.userNoAnswerTimer),this.generateResponseOfferAnswer(e).then((function(e){return t.incomingRequest.accept({statusCode:200,body:e})})))},t.prototype._progress=function(e){void 0===e&&(e={});var t=e.statusCode||180,r=e.reasonPhrase,i=(e.extraHeaders||[]).slice(),n=e.body?a.fromBodyLegacy(e.body):void 0;if(183===t&&!n)return this._progressWithSDP(e);try{var s=this.incomingRequest.progress({statusCode:t,reasonPhrase:r,extraHeaders:i,body:n});return this.emit(\"progress\",s.message,r),this.session=s.session,Promise.resolve(s)}catch(e){return Promise.reject(e)}},t.prototype._progressWithSDP=function(e){var t=this;void 0===e&&(e={});var r=e.statusCode||183,i=e.reasonPhrase,n=(e.extraHeaders||[]).slice();return this.generateResponseOfferAnswer(e).then((function(e){return t.incomingRequest.progress({statusCode:r,reasonPhrase:i,extraHeaders:n,body:e})})).then((function(e){return t.emit(\"progress\",e.message,i),t.session=e.session,e}))},t.prototype._reliableProgress=function(e){var t=this;void 0===e&&(e={});var r=e.statusCode||183,i=e.reasonPhrase,n=(e.extraHeaders||[]).slice();return n.push(\"Require: 100rel\"),n.push(\"RSeq: \"+Math.floor(1e4*Math.random())),this.generateResponseOfferAnswer(e).then((function(e){return t.incomingRequest.progress({statusCode:r,reasonPhrase:i,extraHeaders:n,body:e})})).then((function(e){return t.emit(\"progress\",e.message,i),t.session=e.session,e}))},t.prototype._reliableProgressWaitForPrack=function(e){var t=this;void 0===e&&(e={});var r,i=e.statusCode||183,n=e.reasonPhrase,s=(e.extraHeaders||[]).slice();return s.push(\"Require: 100rel\"),s.push(\"RSeq: \"+this.rseq++),this.status=c.SessionStatus.STATUS_WAITING_FOR_PRACK,new Promise((function(d,p){var l=!0;return t.generateResponseOfferAnswer(e).then((function(e){return r=e,t.incomingRequest.progress({statusCode:i,reasonPhrase:n,extraHeaders:s,body:r})})).then((function(h){var g,f;t.emit(\"progress\",h.message,n),t.session=h.session,h.session.delegate={onPrack:function(r){g=r,clearTimeout(v),clearTimeout(T),l&&(l=!1,t.handlePrackOfferAnswer(g,e).then((function(e){try{f=g.accept({statusCode:200,body:e}),t.status===c.SessionStatus.STATUS_WAITING_FOR_PRACK&&(t.status=c.SessionStatus.STATUS_WAITING_FOR_ANSWER),t.prackArrived(),d({prackRequest:g,prackResponse:f,progressResponse:h})}catch(e){p(e)}})))}};var v=setTimeout((function(){if(l){l=!1,t.logger.warn(\"No PRACK received, rejecting INVITE.\"),clearTimeout(T);try{t.incomingRequest.reject({statusCode:504}),t.terminated(void 0,o.C.causes.NO_PRACK),p(new u.Exceptions.TerminatedSessionError)}catch(e){p(e)}}}),64*a.Timers.T1),m=function(){try{t.incomingRequest.progress({statusCode:i,reasonPhrase:n,extraHeaders:s,body:r})}catch(e){return l=!1,void p(e)}T=setTimeout(m,S*=2)},S=a.Timers.T1,T=setTimeout(m,S)}))}))},t.prototype.onAckTimeout=function(){if(this.status===c.SessionStatus.STATUS_WAITING_FOR_ACK){if(this.logger.log(\"no ACK received for an extended period of time, terminating the call\"),!this.session)throw new Error(\"Session undefined.\");this.session.bye(),this.terminated(void 0,o.C.causes.NO_ACK)}},t.prototype.onContextError=function(e){var t=480;e instanceof a.Exception?e instanceof u.Exceptions.SessionDescriptionHandlerError?(this.logger.error(e.message),e.error&&this.logger.error(e.error)):e instanceof u.Exceptions.TerminatedSessionError?this.logger.warn(\"Incoming session terminated while waiting for PRACK.\"):e instanceof u.Exceptions.UnsupportedSessionDescriptionContentTypeError?t=415:e instanceof a.Exception&&this.logger.error(e.message):e instanceof Error?this.logger.error(e.message):(this.logger.error(\"An error occurred in the session description handler.\"),this.logger.error(e));try{this.incomingRequest.reject({statusCode:t}),this.failed(this.incomingRequest.message,e.message),this.terminated(this.incomingRequest.message,e.message)}catch(e){return}},t.prototype.prackArrived=function(){this.waitingForPrackResolve&&this.waitingForPrackResolve(),this.waitingForPrackPromise=void 0,this.waitingForPrackResolve=void 0,this.waitingForPrackReject=void 0},t.prototype.prackNeverArrived=function(){this.waitingForPrackReject&&this.waitingForPrackReject(new u.Exceptions.TerminatedSessionError),this.waitingForPrackPromise=void 0,this.waitingForPrackResolve=void 0,this.waitingForPrackReject=void 0},t.prototype.waitForArrivalOfPrack=function(){var e=this;if(this.waitingForPrackPromise)throw new Error(\"Already waiting for PRACK\");return this.waitingForPrackPromise=new Promise((function(t,r){e.waitingForPrackResolve=t,e.waitingForPrackReject=r})),this.waitingForPrackPromise},t.prototype.getOffer=function(e){return this.hasOffer=!0,this.getSessionDescriptionHandler().getDescription(e.sessionDescriptionHandlerOptions,e.modifiers).then((function(e){return g.Utils.fromBodyObj(e)}))},t.prototype.setAnswer=function(e,t){this.hasAnswer=!0;var r=this.getSessionDescriptionHandler();return r.hasDescription(e.contentType)?r.setDescription(e.content,t.sessionDescriptionHandlerOptions,t.modifiers):Promise.reject(new u.Exceptions.UnsupportedSessionDescriptionContentTypeError)},t.prototype.setOfferAndGetAnswer=function(e,t){this.hasOffer=!0,this.hasAnswer=!0;var r=this.getSessionDescriptionHandler();return r.hasDescription(e.contentType)?r.setDescription(e.content,t.sessionDescriptionHandlerOptions,t.modifiers).then((function(){return r.getDescription(t.sessionDescriptionHandlerOptions,t.modifiers)})).then((function(e){return g.Utils.fromBodyObj(e)})):Promise.reject(new u.Exceptions.UnsupportedSessionDescriptionContentTypeError)},t.prototype.getSessionDescriptionHandler=function(){var e=this.sessionDescriptionHandler=this.setupSessionDescriptionHandler();return this.emit(\"SessionDescriptionHandler-created\",this.sessionDescriptionHandler),e},t}(f);t.InviteServerContext=v;var m=function(e){function t(t,r,i,n){void 0===i&&(i={}),void 0===n&&(n=[]);var a=this;if(!t.configuration.sessionDescriptionHandlerFactory)throw t.logger.warn(\"Can't build ISC without SDH Factory\"),new Error(\"ICC Constructor Failed\");i.params=i.params||{};var d=i.anonymous||!1,p=g.Utils.newTag();i.params.fromTag=p;var l=t.contact.toString({anonymous:d,outbound:d?!t.contact.tempGruu:!t.contact.pubGruu}),h=(i.extraHeaders||[]).slice();if(d&&t.configuration.uri&&(i.params.fromDisplayName=\"Anonymous\",i.params.fromUri=\"sip:anonymous@anonymous.invalid\",h.push(\"P-Preferred-Identity: \"+t.configuration.uri.toString()),h.push(\"Privacy: id\")),h.push(\"Contact: \"+l),h.push(\"Allow: \"+[\"ACK\",\"CANCEL\",\"INVITE\",\"MESSAGE\",\"BYE\",\"OPTIONS\",\"INFO\",\"NOTIFY\",\"REFER\"].toString()),t.configuration.rel100===o.C.supported.REQUIRED&&h.push(\"Require: 100rel\"),t.configuration.replaces===o.C.supported.REQUIRED&&h.push(\"Require: replaces\"),i.extraHeaders=h,a=e.call(this,t.configuration.sessionDescriptionHandlerFactory)||this,s.ClientContext.initializer(a,t,o.C.INVITE,r,i),a.earlyMediaSessionDescriptionHandlers=new Map,a.type=c.TypeStrings.InviteClientContext,a.passedOptions=i,a.sessionDescriptionHandlerOptions=i.sessionDescriptionHandlerOptions||{},a.modifiers=n,a.inviteWithoutSdp=i.inviteWithoutSdp||!1,a.anonymous=i.anonymous||!1,a.renderbody=i.renderbody||void 0,a.rendertype=i.rendertype||\"text/plain\",a.fromTag=p,a.contact=l,a.status!==c.SessionStatus.STATUS_NULL)throw new u.Exceptions.InvalidStateError(a.status);return a.isCanceled=!1,a.received100=!1,a.method=o.C.INVITE,a.logger=t.getLogger(\"sip.inviteclientcontext\"),t.applicants[a.toString()]=a,a.id=a.request.callId+a.fromTag,a.onInfo=i.onInfo,a.errorListener=a.onTransportError.bind(a),t.transport&&t.transport.on(\"transportError\",a.errorListener),a}return i.__extends(t,e),t.prototype.receiveResponse=function(e){throw new Error(\"Unimplemented.\")},t.prototype.send=function(){return this.sendInvite(),this},t.prototype.invite=function(){var e=this;return this.ua.sessions[this.id]=this,Promise.resolve().then((function(){e.isCanceled||e.status===c.SessionStatus.STATUS_TERMINATED||(e.inviteWithoutSdp?(e.renderbody&&e.rendertype&&(e.request.body={body:e.renderbody,contentType:e.rendertype}),e.status=c.SessionStatus.STATUS_INVITE_SENT,e.send()):(e.sessionDescriptionHandler=e.sessionDescriptionHandlerFactory(e,e.ua.configuration.sessionDescriptionHandlerFactoryOptions||{}),e.emit(\"SessionDescriptionHandler-created\",e.sessionDescriptionHandler),e.sessionDescriptionHandler.getDescription(e.sessionDescriptionHandlerOptions,e.modifiers).then((function(t){e.isCanceled||e.status===c.SessionStatus.STATUS_TERMINATED||(e.hasOffer=!0,e.request.body=t,e.status=c.SessionStatus.STATUS_INVITE_SENT,e.send())}),(function(t){t.type===c.TypeStrings.SessionDescriptionHandlerError&&(e.logger.log(t.message),t.error&&e.logger.log(t.error)),e.status!==c.SessionStatus.STATUS_TERMINATED&&(e.failed({careError:!0,error:t},o.C.causes.WEBRTC_ERROR),e.terminated(void 0,o.C.causes.WEBRTC_ERROR))}))))})),this},t.prototype.cancel=function(e){if(void 0===e&&(e={}),this.status===c.SessionStatus.STATUS_TERMINATED||this.status===c.SessionStatus.STATUS_CONFIRMED)throw new u.Exceptions.InvalidStateError(this.status);if(this.isCanceled)throw new u.Exceptions.InvalidStateError(c.SessionStatus.STATUS_CANCELED);this.isCanceled=!0,this.logger.log(\"Canceling session\");var t=g.Utils.getCancelReason(e.statusCode,e.reasonPhrase);return e.extraHeaders=(e.extraHeaders||[]).slice(),this.outgoingInviteRequest&&(this.logger.warn(\"Canceling session before it was created\"),this.outgoingInviteRequest.cancel(t,e)),this.canceled()},t.prototype.terminate=function(e){return this.status===c.SessionStatus.STATUS_TERMINATED?this:(this.status===c.SessionStatus.STATUS_WAITING_FOR_ACK||this.status===c.SessionStatus.STATUS_CONFIRMED?this.bye(e):this.cancel(e),this)},t.prototype.sendInvite=function(){var e=this;this.outgoingInviteRequest=this.ua.userAgentCore.invite(this.request,{onAccept:function(t){return e.onAccept(t)},onProgress:function(t){return e.onProgress(t)},onRedirect:function(t){return e.onRedirect(t)},onReject:function(t){return e.onReject(t)},onTrying:function(t){return e.onTrying(t)}})},t.prototype.ackAndBye=function(e,t,r,i){if(!this.ua.userAgentCore)throw new Error(\"Method requires user agent core.\");var n=[];r&&n.push(\"Reason: \"+g.Utils.getReasonHeaderValue(r,i));var s=e.ack();this.emit(\"ack\",s.message);var o=t.bye(void 0,{extraHeaders:n});this.emit(\"bye\",o.message)},t.prototype.disposeEarlyMedia=function(){if(!this.earlyMediaSessionDescriptionHandlers)throw new Error(\"Early media session description handlers undefined.\");this.earlyMediaSessionDescriptionHandlers.forEach((function(e){e.close()}))},t.prototype.onAccept=function(e){var t=this;if(!this.earlyMediaSessionDescriptionHandlers)throw new Error(\"Early media session description handlers undefined.\");var r=e.message,i=e.session;if(this.session)this.ackAndBye(e,i);else{if(this.isCanceled)return this.ackAndBye(e,i),void this.emit(\"bye\",this.request);switch(r.hasHeader(\"P-Asserted-Identity\")&&(this.assertedIdentity=a.Grammar.nameAddrHeaderParse(r.getHeader(\"P-Asserted-Identity\"))),this.session=i,this.session.delegate={onAck:function(e){return t.onAck(e)},onBye:function(e){return t.receiveRequest(e)},onInfo:function(e){return t.receiveRequest(e)},onInvite:function(e){return t.receiveRequest(e)},onNotify:function(e){return t.receiveRequest(e)},onPrack:function(e){return t.receiveRequest(e)},onRefer:function(e){return t.receiveRequest(e)}},i.signalingState){case a.SignalingState.Initial:case a.SignalingState.HaveLocalOffer:this.ackAndBye(e,i,400,\"Missing session description\"),this.failed(r,o.C.causes.BAD_MEDIA_DESCRIPTION);break;case a.SignalingState.HaveRemoteOffer:var n=this.sessionDescriptionHandlerFactory(this,this.ua.configuration.sessionDescriptionHandlerFactoryOptions||{});if(this.sessionDescriptionHandler=n,this.emit(\"SessionDescriptionHandler-created\",this.sessionDescriptionHandler),!n.hasDescription(r.getHeader(\"Content-Type\")||\"\")){this.ackAndBye(e,i,400,\"Missing session description\"),this.failed(r,o.C.causes.BAD_MEDIA_DESCRIPTION);break}this.hasOffer=!0,n.setDescription(r.body,this.sessionDescriptionHandlerOptions,this.modifiers).then((function(){return n.getDescription(t.sessionDescriptionHandlerOptions,t.modifiers)})).then((function(i){if(!t.isCanceled&&t.status!==c.SessionStatus.STATUS_TERMINATED){t.status=c.SessionStatus.STATUS_CONFIRMED,t.hasAnswer=!0;var n={contentDisposition:\"session\",contentType:i.contentType,content:i.body},s=e.ack({body:n});t.emit(\"ack\",s.message),t.accepted(r)}})).catch((function(n){if(n.type!==c.TypeStrings.SessionDescriptionHandlerError)throw n;t.logger.warn(\"invalid description\"),t.logger.warn(n.toString()),t.ackAndBye(e,i,488,\"Invalid session description\"),t.failed(r,o.C.causes.BAD_MEDIA_DESCRIPTION)}));break;case a.SignalingState.Stable:var s;if(this.renderbody&&this.rendertype&&(s={body:{contentDisposition:\"render\",contentType:this.rendertype,content:this.renderbody}}),this.hasOffer&&!this.hasAnswer){if(!this.sessionDescriptionHandler)throw new Error(\"Session description handler undefined.\");var u=i.answer;if(!u)throw new Error(\"Answer is undefined.\");this.sessionDescriptionHandler.setDescription(u.content,this.sessionDescriptionHandlerOptions,this.modifiers).then((function(){t.hasAnswer=!0,t.status=c.SessionStatus.STATUS_CONFIRMED;var i=e.ack(s);t.emit(\"ack\",i.message),t.accepted(r)})).catch((function(n){t.logger.error(n),t.ackAndBye(e,i,488,\"Not Acceptable Here\"),t.failed(r,o.C.causes.BAD_MEDIA_DESCRIPTION)}))}else{if(this.sessionDescriptionHandler=this.earlyMediaSessionDescriptionHandlers.get(i.id),!this.sessionDescriptionHandler)throw new Error(\"Session description handler undefined.\");this.earlyMediaSessionDescriptionHandlers.delete(i.id),this.hasOffer=!0,this.hasAnswer=!0,this.status=c.SessionStatus.STATUS_CONFIRMED;var d=e.ack();this.emit(\"ack\",d.message),this.accepted(r)}break;case a.SignalingState.Closed:break;default:throw new Error(\"Unknown session signaling state.\")}this.disposeEarlyMedia()}},t.prototype.onProgress=function(e){var t=this;if(!this.isCanceled){if(!this.outgoingInviteRequest)throw new Error(\"Outgoing INVITE request undefined.\");if(!this.earlyMediaSessionDescriptionHandlers)throw new Error(\"Early media session description handlers undefined.\");var r=e.message,i=e.session;if(this.status=c.SessionStatus.STATUS_1XX_RECEIVED,r.hasHeader(\"P-Asserted-Identity\")&&(this.assertedIdentity=a.Grammar.nameAddrHeaderParse(r.getHeader(\"P-Asserted-Identity\"))),!i)throw new Error(\"Session undefined.\");var n=r.getHeader(\"require\"),s=r.getHeader(\"rseq\"),u=!!(n&&n.includes(\"100rel\")&&s?Number(s):void 0),d=[];if(u&&d.push(\"RAck: \"+r.getHeader(\"rseq\")+\" \"+r.getHeader(\"cseq\")),i.signalingState===a.SignalingState.Initial)return u&&(this.logger.warn(\"First reliable provisional response received MUST contain an offer when INVITE does not contain an offer.\"),e.prack({extraHeaders:d})),void this.emit(\"progress\",r);if(i.signalingState===a.SignalingState.HaveLocalOffer)return u&&e.prack({extraHeaders:d}),void this.emit(\"progress\",r);if(i.signalingState===a.SignalingState.HaveRemoteOffer){if(!u)return void this.logger.warn(\"Non-reliable provisional response MUST NOT contain an initial offer, discarding response.\");var p=this.sessionDescriptionHandlerFactory(this,this.ua.configuration.sessionDescriptionHandlerFactoryOptions||{});return this.emit(\"SessionDescriptionHandler-created\",p),this.earlyMediaSessionDescriptionHandlers.set(i.id,p),void p.setDescription(r.body,this.sessionDescriptionHandlerOptions,this.modifiers).then((function(){return p.getDescription(t.sessionDescriptionHandlerOptions,t.modifiers)})).then((function(i){var n={contentDisposition:\"session\",contentType:i.contentType,content:i.body};e.prack({extraHeaders:d,body:n}),t.status=c.SessionStatus.STATUS_EARLY_MEDIA,t.emit(\"progress\",r)})).catch((function(e){t.status!==c.SessionStatus.STATUS_TERMINATED&&(t.failed(void 0,o.C.causes.WEBRTC_ERROR),t.terminated(void 0,o.C.causes.WEBRTC_ERROR))}))}return i.signalingState===a.SignalingState.Stable?(u&&e.prack({extraHeaders:d}),void this.emit(\"progress\",r)):void 0}},t.prototype.onRedirect=function(e){this.disposeEarlyMedia();var t=e.message,r=t.statusCode,i=g.Utils.sipErrorCause(r||0);this.rejected(t,i),this.failed(t,i),this.terminated(t,i)},t.prototype.onReject=function(e){this.disposeEarlyMedia();var t=e.message,r=t.statusCode,i=g.Utils.sipErrorCause(r||0);this.rejected(t,i),this.failed(t,i),this.terminated(t,i)},t.prototype.onTrying=function(e){this.received100=!0,this.emit(\"progress\",e.message)},t}(f);t.InviteClientContext=m},function(e,t,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var i=function(){function e(){}return e.validate=function(t,r){void 0===r&&(r=!0),\"string\"==typeof t?t=t.toUpperCase():\"number\"==typeof t?t=t.toString():e.generateInvalidToneError(t);var i=r?/^[0-9A-D#*,]+$/i:/^[0-9A-D#*]$/i;return t.match(i)||e.generateInvalidToneError(t),t},e.generateInvalidToneError=function(e){var t=e&&\"boolean\"!=typeof e?e.toString().toLowerCase():e;throw new TypeError(\"Invalid tone(s): \"+t)},e}();t.DTMFValidator=i},function(e,t,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var i=r(0),n=r(8),s=r(29),o=r(4),a=r(10),c=r(13),u=r(30),d=function(e){function t(t,r,i,n){void 0===n&&(n={});var o=e.call(this)||this;o.data={},o.method=s.C.SUBSCRIBE,o.body=void 0,o.type=c.TypeStrings.Subscription,o.ua=t,o.logger=t.getLogger(\"sip.subscription\"),n.body&&(o.body={body:n.body,contentType:n.contentType?n.contentType:\"application/sdp\"});var a=t.normalizeTarget(r);if(!a)throw new TypeError(\"Invalid target: \"+r);if(o.uri=a,o.event=i,void 0===n.expires?o.expires=3600:\"number\"!=typeof n.expires?(t.logger.warn('Option \"expires\" must be a number. Using default of 3600.'),o.expires=3600):o.expires=n.expires,o.extraHeaders=(n.extraHeaders||[]).slice(),o.context=o.initContext(),o.disposed=!1,o.request=o.context.message,!o.request.from)throw new Error(\"From undefined.\");if(!o.request.to)throw new Error(\"From undefined.\");return o.localIdentity=o.request.from,o.remoteIdentity=o.request.to,o.id=o.request.callId+o.request.from.parameters.tag+o.event,o.ua.subscriptions[o.id]=o,o}return i.__extends(t,e),t.prototype.dispose=function(){this.disposed||(this.retryAfterTimer&&(clearTimeout(this.retryAfterTimer),this.retryAfterTimer=void 0),this.context.dispose(),this.disposed=!0,delete this.ua.subscriptions[this.id])},t.prototype.on=function(t,r){return e.prototype.on.call(this,t,r)},t.prototype.emit=function(t){for(var r=[],n=1;n0?(e.accept(),i.emit(\"notify\",{request:e.message})):e.reject({statusCode:481})},onRefer:function(e){i.logger.log(\"Received an out of dialog refer\"),i.configuration.allowOutOfDialogRefers||e.reject({statusCode:405}),i.logger.log(\"Allow out of dialog refers is enabled on the UA\");var t=new p.ReferServerContext(i,e);i.listeners(\"outOfDialogReferRequested\").length?i.emit(\"outOfDialogReferRequested\",t):(i.logger.log(\"No outOfDialogReferRequest listeners, automatically accepting and following the out of dialog refer\"),t.accept({followRefer:!0}))},onSubscribe:function(e){i.emit(\"subscribe\",e)}};return i.userAgentCore=new a.UserAgentCore(u,d),i.registerContext=new l.RegisterContext(i,r.registerOptions),i.registerContext.on(\"failed\",i.emit.bind(i,\"registrationFailed\")),i.registerContext.on(\"registered\",i.emit.bind(i,\"registered\")),i.registerContext.on(\"unregistered\",i.emit.bind(i,\"unregistered\")),i.configuration.autostart&&i.start(),i}return i.__extends(t,e),t.prototype.register=function(e){return void 0===e&&(e={}),e.register&&(this.configuration.register=!0),this.registerContext.register(e),this},t.prototype.unregister=function(e){var t=this;return this.configuration.register=!1,this.transport.afterConnected((function(){t.registerContext.unregister(e)})),this},t.prototype.isRegistered=function(){return this.registerContext.registered},t.prototype.invite=function(e,t,r){var i=this,n=new g.InviteClientContext(this,e,t,r);return this.transport.afterConnected((function(){n.invite(),i.emit(\"inviteSent\",n)})),n},t.prototype.subscribe=function(e,t,r){var i=new f.Subscription(this,e,t,r);return this.transport.afterConnected((function(){return i.subscribe()})),i},t.prototype.publish=function(e,t,r,i){var n=new d.PublishContext(this,e,t,i);return this.transport.afterConnected((function(){n.publish(r)})),n},t.prototype.message=function(e,t,r){if(void 0===r&&(r={}),void 0===t)throw new TypeError(\"Not enough arguments\");return r.contentType=r.contentType||\"text/plain\",r.body=t,this.request(o.C.MESSAGE,e,r)},t.prototype.request=function(e,t,r){var i=new s.ClientContext(this,e,t,r);return this.transport.afterConnected((function(){return i.send()})),i},t.prototype.stop=function(){if(this.logger.log(\"user requested closure...\"),this.status===c.UAStatus.STATUS_USER_CLOSED)return this.logger.warn(\"UA already closed\"),this;for(var e in this.logger.log(\"closing registerContext\"),this.registerContext.close(),this.sessions)this.sessions[e]&&(this.logger.log(\"closing session \"+e),this.sessions[e].terminate());for(var t in this.subscriptions)this.subscriptions[t]&&(this.logger.log(\"unsubscribe \"+t),this.subscriptions[t].unsubscribe());for(var r in this.publishers)this.publishers[r]&&(this.logger.log(\"unpublish \"+r),this.publishers[r].close());for(var i in this.applicants)this.applicants[i]&&this.applicants[i].close();if(this.status=c.UAStatus.STATUS_USER_CLOSED,this.transport.disconnect(),this.userAgentCore.reset(),this.configuration.autostop){var n=!(\"undefined\"==typeof chrome||!chrome.app||!chrome.app.runtime);\"undefined\"==typeof window||\"function\"!=typeof window.removeEventListener||n||window.removeEventListener(\"unload\",this.unloadListener)}return this},t.prototype.start=function(){if(this.logger.log(\"user requested startup...\"),this.status===c.UAStatus.STATUS_INIT?(this.status=c.UAStatus.STATUS_STARTING,this.setTransportListeners(),this.emit(\"transportCreated\",this.transport),this.transport.connect()):this.status===c.UAStatus.STATUS_USER_CLOSED?(this.logger.log(\"resuming\"),this.status=c.UAStatus.STATUS_READY,this.transport.connect()):this.status===c.UAStatus.STATUS_STARTING?this.logger.log(\"UA is in STARTING status, not opening new connection\"):this.status===c.UAStatus.STATUS_READY?this.logger.log(\"UA is in READY status, not resuming\"):this.logger.error(\"Connection is down. Auto-Recovery system is trying to connect\"),this.configuration.autostop){var e=!(\"undefined\"==typeof chrome||!chrome.app||!chrome.app.runtime);\"undefined\"==typeof window||\"function\"!=typeof window.addEventListener||e||window.addEventListener(\"unload\",this.unloadListener)}return this},t.prototype.normalizeTarget=function(e){return v.Utils.normalizeTarget(e,this.configuration.hostportParams)},t.prototype.getLogger=function(e,t){return this.log.getLogger(e,t)},t.prototype.getLoggerFactory=function(){return this.log},t.prototype.getSupportedResponseOptions=function(){var e=[];(this.contact.pubGruu||this.contact.tempGruu)&&e.push(\"gruu\"),this.configuration.rel100===o.C.supported.SUPPORTED&&e.push(\"100rel\"),this.configuration.replaces===o.C.supported.SUPPORTED&&e.push(\"replaces\"),e.push(\"outbound\"),e=e.concat(this.configuration.extraSupported||[]);var t=this.configuration.hackAllowUnregisteredOptionTags||!1,r={};return e=e.filter((function(e){var i=o.C.OPTION_TAGS[e],n=!r[e];return r[e]=!0,(i||t)&&n}))},t.prototype.findSession=function(e){return this.sessions[e.callId+e.fromTag]||this.sessions[e.callId+e.toTag]||void 0},t.prototype.on=function(t,r){return e.prototype.on.call(this,t,r)},t.prototype.onTransportError=function(){this.status!==c.UAStatus.STATUS_USER_CLOSED&&(this.error&&this.error===t.C.NETWORK_ERROR||(this.status=c.UAStatus.STATUS_NOT_READY,this.error=t.C.NETWORK_ERROR))},t.prototype.setTransportListeners=function(){var e=this;this.transport.on(\"connected\",(function(){return e.onTransportConnected()})),this.transport.on(\"message\",(function(t){return e.onTransportReceiveMsg(t)})),this.transport.on(\"transportError\",(function(){return e.onTransportError()}))},t.prototype.onTransportConnected=function(){var e=this;this.configuration.register&&Promise.resolve().then((function(){return e.registerContext.register()}))},t.prototype.onTransportReceiveMsg=function(e){var t=this,r=a.Parser.parseMessage(e,this.getLogger(\"sip.parser\"));if(r)if(this.status===c.UAStatus.STATUS_USER_CLOSED&&r instanceof a.IncomingRequestMessage)this.logger.warn(\"UA received message when status = USER_CLOSED - aborting\");else{var i=function(){for(var e=0,i=[\"from\",\"to\",\"call_id\",\"cseq\",\"via\"];e1)return void this.logger.warn(\"More than one Via header field present in the response. Dropping.\");if(\"replace.me\"!=this.configuration.viaHost&&(r.via.host!==this.configuration.viaHost||void 0!==r.via.port))return void this.logger.warn(\"Via sent-by in the response does not match UA Via host value. Dropping.\");var s;n=v.Utils.str_utf8_length(r.body);if((s=r.getHeader(\"content-length\"))&&n\"}};var h={};for(var s in i)i.hasOwnProperty(s)&&(h[s]=i[s]);for(var s in Object.assign(this.configuration,h),this.logger.log(\"configuration parameters after validation:\"),i)if(i.hasOwnProperty(s))switch(s){case\"uri\":case\"sessionDescriptionHandlerFactory\":this.logger.log(\"\\xb7 \"+s+\": \"+i[s]);break;case\"password\":this.logger.log(\"\\xb7 \"+s+\": NOT SHOWN\");break;case\"transportConstructor\":this.logger.log(\"\\xb7 \"+s+\": \"+i[s].name);break;default:this.logger.log(\"\\xb7 \"+s+\": \"+JSON.stringify(i[s]))}},t.prototype.getConfigurationCheck=function(){return{mandatory:{},optional:{uri:function(e){/^sip:/i.test(e)||(e=o.C.SIP+\":\"+e);var t=a.Grammar.URIParse(e);return t&&t.user?t:void 0},transportConstructor:function(e){if(e instanceof Function)return e},transportOptions:function(e){if(\"object\"==typeof e)return e},authorizationUser:function(e){return-1===a.Grammar.parse('\"'+e+'\"',\"quoted_string\")?void 0:e},displayName:function(e){return-1===a.Grammar.parse('\"'+e+'\"',\"displayName\")?void 0:e},dtmfType:function(e){switch(e){case o.C.dtmfType.RTP:return o.C.dtmfType.RTP;case o.C.dtmfType.INFO:default:return o.C.dtmfType.INFO}},hackViaTcp:function(e){if(\"boolean\"==typeof e)return e},hackIpInContact:function(e){return\"boolean\"==typeof e?e:\"string\"==typeof e&&-1!==a.Grammar.parse(e,\"host\")?e:void 0},hackWssInTransport:function(e){if(\"boolean\"==typeof e)return e},hackAllowUnregisteredOptionTags:function(e){if(\"boolean\"==typeof e)return e},contactTransport:function(e){if(\"string\"==typeof e)return e},extraSupported:function(e){if(e instanceof Array){for(var t=0,r=e;t0)return t}},password:function(e){return String(e)},rel100:function(e){return e===o.C.supported.REQUIRED?o.C.supported.REQUIRED:e===o.C.supported.SUPPORTED?o.C.supported.SUPPORTED:o.C.supported.UNSUPPORTED},replaces:function(e){return e===o.C.supported.REQUIRED?o.C.supported.REQUIRED:e===o.C.supported.SUPPORTED?o.C.supported.SUPPORTED:o.C.supported.UNSUPPORTED},register:function(e){if(\"boolean\"==typeof e)return e},registerOptions:function(e){if(\"object\"==typeof e)return e},usePreloadedRoute:function(e){if(\"boolean\"==typeof e)return e},userAgentString:function(e){if(\"string\"==typeof e)return e},autostart:function(e){if(\"boolean\"==typeof e)return e},autostop:function(e){if(\"boolean\"==typeof e)return e},sessionDescriptionHandlerFactory:function(e){if(e instanceof Function)return e},sessionDescriptionHandlerFactoryOptions:function(e){if(\"object\"==typeof e)return e},authenticationFactory:this.checkAuthenticationFactory,allowLegacyNotifications:function(e){if(\"boolean\"==typeof e)return e},custom:function(e){if(\"object\"==typeof e)return e},contactName:function(e){if(\"string\"==typeof e)return e},experimentalFeatures:function(e){if(\"boolean\"==typeof e)return e}}}},t.C={STATUS_INIT:0,STATUS_STARTING:1,STATUS_READY:2,STATUS_USER_CLOSED:3,STATUS_NOT_READY:4,CONFIGURATION_ERROR:1,NETWORK_ERROR:2,ALLOWED_METHODS:[\"ACK\",\"CANCEL\",\"INVITE\",\"MESSAGE\",\"BYE\",\"OPTIONS\",\"INFO\",\"NOTIFY\",\"REFER\"],ACCEPTED_BODY_TYPES:[\"application/sdp\",\"application/dtmf-relay\"],MAX_FORWARDS:70,TAG_LENGTH:10},t}(n.EventEmitter);function y(e){if(!(e.configuration.uri instanceof a.URI))throw new Error(\"Configuration URI not instance of URI.\");var t=e.configuration.uri,r=e.contact,i=e.configuration.displayName?e.configuration.displayName:\"\",n=!!e.configuration.hackViaTcp,s=e.configuration.usePreloadedRoute&&e.transport.server&&e.transport.server.sipUri?[e.transport.server.sipUri]:[],c=e.configuration.sipjsId||v.Utils.createRandomToken(5),u=[];u.push(\"outbound\"),e.configuration.rel100===o.C.supported.SUPPORTED&&u.push(\"100rel\"),e.configuration.replaces===o.C.supported.SUPPORTED&&u.push(\"replaces\"),e.configuration.extraSupported&&u.push.apply(u,e.configuration.extraSupported),e.configuration.hackAllowUnregisteredOptionTags||(u=u.filter((function(e){return o.C.OPTION_TAGS[e]}))),u=Array.from(new Set(u));var d=e.getSupportedResponseOptions(),p=e.configuration.userAgentString||\"sipjs\";if(!e.configuration.viaHost)throw new Error(\"Configuration via host undefined\");var l=!!e.configuration.forceRport,h=e.configuration.viaHost;return{aor:t,contact:r,displayName:i,hackViaTcp:n,loggerFactory:e.getLoggerFactory(),routeSet:s,sipjsId:c,supportedOptionTags:u,supportedOptionTagsResponse:d,userAgentHeaderFieldValue:p,viaForceRport:l,viaHost:h,authenticationFactory:function(){if(e.configuration.authenticationFactory)return e.configuration.authenticationFactory(e)},transportAccessor:function(){return e.transport}}}t.UA=T,function(e){!function(e){e.RTP=\"rtp\",e.INFO=\"info\"}(e.DtmfType||(e.DtmfType={}))}(T=t.UA||(t.UA={})),t.UA=T,t.makeUserAgentCoreConfigurationFromUA=y},function(e,t,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var i=r(0),n=r(8),s=r(54),o=r(13),a=r(32),c=r(30),u=i.__importStar(r(99)),d=r(120),p=function(e){function t(t,r,i){var n=e.call(this)||this;return n.type=o.TypeStrings.SessionDescriptionHandler,n.options=i||{},n.logger=t,n.observer=r,n.dtmfSender=void 0,n.shouldAcquireMedia=!0,n.CONTENT_TYPE=\"application/sdp\",n.C={DIRECTION:{NULL:null,SENDRECV:\"sendrecv\",SENDONLY:\"sendonly\",RECVONLY:\"recvonly\",INACTIVE:\"inactive\"}},n.logger.log(\"SessionDescriptionHandlerOptions: \"+JSON.stringify(n.options)),n.direction=n.C.DIRECTION.NULL,n.modifiers=n.options.modifiers||[],Array.isArray(n.modifiers)||(n.modifiers=[n.modifiers]),n.iceGatheringTimeout=!1,n.initPeerConnection(n.options.peerConnectionOptions),n.constraints=n.checkAndDefaultConstraints(n.options.constraints),n}return i.__extends(t,e),t.defaultFactory=function(e,r){return new t(e instanceof s.Session?e.userAgent.getLogger(\"sip.sessionDescriptionHandler\",e.id):e.ua.getLogger(\"sip.invitecontext.sessionDescriptionHandler\",e.id),new d.SessionDescriptionHandlerObserver(e,r),r)},t.prototype.close=function(){this.logger.log(\"closing PeerConnection\"),this.peerConnection&&\"closed\"!==this.peerConnection.signalingState&&(this.peerConnection.getSenders?this.peerConnection.getSenders().forEach((function(e){e.track&&e.track.stop()})):(this.logger.warn(\"Using getLocalStreams which is deprecated\"),this.peerConnection.getLocalStreams().forEach((function(e){e.getTracks().forEach((function(e){e.stop()}))}))),this.peerConnection.getReceivers?this.peerConnection.getReceivers().forEach((function(e){e.track&&e.track.stop()})):(this.logger.warn(\"Using getRemoteStreams which is deprecated\"),this.peerConnection.getRemoteStreams().forEach((function(e){e.getTracks().forEach((function(e){e.stop()}))}))),this.resetIceGatheringComplete(),this.peerConnection.close())},t.prototype.getDescription=function(e,t){var r=this;void 0===e&&(e={}),void 0===t&&(t=[]),e.peerConnectionOptions&&this.initPeerConnection(e.peerConnectionOptions);var i=Object.assign({},this.constraints,e.constraints);return i=this.checkAndDefaultConstraints(i),JSON.stringify(i)!==JSON.stringify(this.constraints)&&(this.constraints=i,this.shouldAcquireMedia=!0),Array.isArray(t)||(t=[t]),t=t.concat(this.modifiers),Promise.resolve().then((function(){if(r.shouldAcquireMedia)return r.acquire(r.constraints).then((function(){r.shouldAcquireMedia=!1}))})).then((function(){return r.createOfferOrAnswer(e.RTCOfferOptions,t)})).then((function(e){if(void 0===e.sdp)throw new a.Exceptions.SessionDescriptionHandlerError(\"getDescription\",void 0,\"SDP undefined\");return r.emit(\"getDescription\",e),{body:e.sdp,contentType:r.CONTENT_TYPE}}))},t.prototype.hasDescription=function(e){return e===this.CONTENT_TYPE},t.prototype.holdModifier=function(e){return e.sdp?(/a=(sendrecv|sendonly|recvonly|inactive)/.test(e.sdp)?(e.sdp=e.sdp.replace(/a=sendrecv\\r\\n/g,\"a=sendonly\\r\\n\"),e.sdp=e.sdp.replace(/a=recvonly\\r\\n/g,\"a=inactive\\r\\n\")):e.sdp=e.sdp.replace(/(m=[^\\r]*\\r\\n)/g,\"$1a=sendonly\\r\\n\"),Promise.resolve(e)):Promise.resolve(e)},t.prototype.setDescription=function(e,t,r){var i=this;void 0===t&&(t={}),void 0===r&&(r=[]),t.peerConnectionOptions&&this.initPeerConnection(t.peerConnectionOptions),Array.isArray(r)||(r=[r]),r=r.concat(this.modifiers);var n={type:this.hasOffer(\"local\")?\"answer\":\"offer\",sdp:e};return Promise.resolve().then((function(){if(i.shouldAcquireMedia&&i.options.alwaysAcquireMediaFirst)return i.acquire(i.constraints).then((function(){i.shouldAcquireMedia=!1}))})).then((function(){return c.Utils.reducePromises(r,n)})).catch((function(e){if(e.type===o.TypeStrings.SessionDescriptionHandlerError)throw e;var t=new a.Exceptions.SessionDescriptionHandlerError(\"setDescription\",e,\"The modifiers did not resolve successfully\");throw i.logger.error(t.message),i.emit(\"peerConnection-setRemoteDescriptionFailed\",t),t})).then((function(e){return i.emit(\"setDescription\",e),i.peerConnection.setRemoteDescription(e)})).catch((function(n){if(n.type===o.TypeStrings.SessionDescriptionHandlerError)throw n;if(/^m=video.+$/gm.test(e)&&!t.disableAudioFallback)return t.disableAudioFallback=!0,i.setDescription(e,t,[u.stripVideo].concat(r));var s=new a.Exceptions.SessionDescriptionHandlerError(\"setDescription\",n);throw s.error&&i.logger.error(s.error),i.emit(\"peerConnection-setRemoteDescriptionFailed\",s),s})).then((function(){i.peerConnection.getReceivers?i.emit(\"setRemoteDescription\",i.peerConnection.getReceivers()):i.emit(\"setRemoteDescription\",i.peerConnection.getRemoteStreams()),i.emit(\"confirmed\",i)}))},t.prototype.sendDtmf=function(e,t){if(void 0===t&&(t={}),!this.dtmfSender&&this.hasBrowserGetSenderSupport()){var r=this.peerConnection.getSenders();r.length>0&&(this.dtmfSender=r[0].dtmf)}if(!this.dtmfSender&&this.hasBrowserTrackSupport()){var i=this.peerConnection.getLocalStreams();if(i.length>0){var n=i[0].getAudioTracks();n.length>0&&(this.dtmfSender=this.peerConnection.createDTMFSender(n[0]))}}if(!this.dtmfSender)return!1;try{this.dtmfSender.insertDTMF(e,t.duration,t.interToneGap)}catch(e){if(\"InvalidStateError\"===e.type||\"InvalidCharacterError\"===e.type)return this.logger.error(e),!1;throw e}return this.logger.log(\"DTMF sent via RTP: \"+e.toString()),!0},t.prototype.getDirection=function(){return this.direction},t.prototype.on=function(t,r){return e.prototype.on.call(this,t,r)},t.prototype.getMediaStream=function(e){return e.video&&e.video.streams?new Promise((function(t,r){t(e.video.streams)})):navigator.mediaDevices.getUserMedia(e)},t.prototype.createOfferOrAnswer=function(e,t){var r=this;void 0===e&&(e={}),void 0===t&&(t=[]);var i=this.hasOffer(\"remote\")?\"createAnswer\":\"createOffer\",n=this.peerConnection;return this.logger.log(i),(this.hasOffer(\"remote\")?n.createAnswer:n.createOffer).apply(n,e).catch((function(e){if(e.type===o.TypeStrings.SessionDescriptionHandlerError)throw e;var t=new a.Exceptions.SessionDescriptionHandlerError(\"createOfferOrAnswer\",e,\"peerConnection-\"+i+\"Failed\");throw r.emit(\"peerConnection-\"+i+\"Failed\",t),t})).then((function(e){return c.Utils.reducePromises(t,r.createRTCSessionDescriptionInit(e))})).then((function(e){return r.resetIceGatheringComplete(),r.logger.log(\"Setting local sdp.\"),r.logger.log(\"sdp is \"+e.sdp||!1),n.setLocalDescription(e)})).catch((function(e){if(e.type===o.TypeStrings.SessionDescriptionHandlerError)throw e;var t=new a.Exceptions.SessionDescriptionHandlerError(\"createOfferOrAnswer\",e,\"peerConnection-SetLocalDescriptionFailed\");throw r.emit(\"peerConnection-SetLocalDescriptionFailed\",t),t})).then((function(){return r.waitForIceGatheringComplete()})).then((function(){if(!r.peerConnection.localDescription)throw new a.Exceptions.SessionDescriptionHandlerError(\"Missing local description\");var e=r.createRTCSessionDescriptionInit(r.peerConnection.localDescription);return c.Utils.reducePromises(t,e)})).then((function(e){return r.setDirection(e.sdp||\"\"),e})).catch((function(e){if(e.type===o.TypeStrings.SessionDescriptionHandlerError)throw e;var t=new a.Exceptions.SessionDescriptionHandlerError(\"createOfferOrAnswer\",e);throw r.logger.error(t.toString()),t}))},t.prototype.createRTCSessionDescriptionInit=function(e){return{type:e.type,sdp:e.sdp}},t.prototype.addDefaultIceCheckingTimeout=function(e){return void 0===e.iceCheckingTimeout&&(e.iceCheckingTimeout=5e3),e},t.prototype.addDefaultIceServers=function(e){return e.iceServers||(e.iceServers=[{urls:[\"stun:stun.l.google.com:19302\",\"stun:stun1.l.google.com:19302\",\"stun:stun2.l.google.com:19302\",\"stun:stun3.l.google.com:19302\"]}]),e},t.prototype.checkAndDefaultConstraints=function(e){var t={audio:!0,video:!this.options.alwaysAcquireMediaFirst};return e=e||t,0===Object.keys(e).length&&e.constructor===Object?t:e},t.prototype.hasBrowserTrackSupport=function(){return Boolean(this.peerConnection.addTrack)},t.prototype.hasBrowserGetSenderSupport=function(){return Boolean(this.peerConnection.getSenders)},t.prototype.initPeerConnection=function(e){var t=this;void 0===e&&(e={}),(e=this.addDefaultIceCheckingTimeout(e)).rtcConfiguration=e.rtcConfiguration||{},e.rtcConfiguration=this.addDefaultIceServers(e.rtcConfiguration),this.logger.log(\"initPeerConnection\"),this.peerConnection&&(this.logger.log(\"Already have a peer connection for this session. Tearing down.\"),this.resetIceGatheringComplete(),this.peerConnection.close()),this.peerConnection=new RTCPeerConnection(e.rtcConfiguration),this.logger.log(\"New peer connection created\"),\"ontrack\"in this.peerConnection?this.peerConnection.addEventListener(\"track\",(function(e){t.logger.log(\"track added\"),t.observer.trackAdded(),t.emit(\"addTrack\",e)})):(this.logger.warn(\"Using onaddstream which is deprecated\"),this.peerConnection.onaddstream=function(e){t.logger.log(\"stream added\"),t.emit(\"addStream\",e)}),this.peerConnection.onicecandidate=function(r){t.emit(\"iceCandidate\",r),r.candidate?(t.logger.log(\"ICE candidate received: \"+(null===r.candidate.candidate?null:r.candidate.candidate.trim())),e.stopIceGatherOnFirstViableCandidate&&t.iceGatheringTimer&&r.candidate.candidate&&-1===r.candidate.candidate.indexOf(\"typ host\")&&(t.iceGatheringTimeout=!0,t.logger.log(\"RTCIceChecking timeout canceled early because viable candidate found: \"+r.candidate.candidate),t.triggerIceGatheringComplete())):null===r.candidate&&(t.logger.log(\"ICE candidate gathering complete\"),t.triggerIceGatheringComplete())},this.peerConnection.onicegatheringstatechange=function(){switch(t.logger.log(\"RTCIceGatheringState changed: \"+t.peerConnection.iceGatheringState),t.peerConnection.iceGatheringState){case\"gathering\":t.emit(\"iceGathering\",t),!t.iceGatheringTimer&&e.iceCheckingTimeout&&(t.iceGatheringTimeout=!1,t.iceGatheringTimer=setTimeout((function(){t.logger.log(\"RTCIceChecking Timeout Triggered after \"+e.iceCheckingTimeout+\" milliseconds\"),t.iceGatheringTimeout=!0,t.triggerIceGatheringComplete()}),e.iceCheckingTimeout));break;case\"complete\":t.triggerIceGatheringComplete()}},this.peerConnection.oniceconnectionstatechange=function(){var e;switch(t.peerConnection.iceConnectionState){case\"new\":e=\"iceConnection\";break;case\"checking\":e=\"iceConnectionChecking\";break;case\"connected\":e=\"iceConnectionConnected\";break;case\"completed\":e=\"iceConnectionCompleted\";break;case\"failed\":e=\"iceConnectionFailed\";break;case\"disconnected\":e=\"iceConnectionDisconnected\";break;case\"closed\":e=\"iceConnectionClosed\";break;default:return void t.logger.warn(\"Unknown iceConnection state: \"+t.peerConnection.iceConnectionState)}t.logger.log(\"ICE Connection State changed to \"+e),t.emit(e,t)}},t.prototype.acquire=function(e){var t=this;return e=this.checkAndDefaultConstraints(e),new Promise((function(r,i){t.logger.log(\"acquiring local media\"),t.emit(\"userMediaRequest\",e),e.audio||e.video?t.getMediaStream(e).then((function(e){t.observer.trackAdded(),t.emit(\"userMedia\",e),r(e)})).catch((function(e){t.emit(\"userMediaFailed\",e),i(e)})):r([])})).catch((function(e){if(e.type===o.TypeStrings.SessionDescriptionHandlerError)throw e;var r=new a.Exceptions.SessionDescriptionHandlerError(\"acquire\",e,\"unable to acquire streams\");throw t.logger.error(r.message),r.error&&t.logger.error(r.error),r})).then((function(e){return t.logger.log(\"acquired local media streams\"),t.peerConnection.removeTrack&&t.peerConnection.getSenders().forEach((function(e){t.peerConnection.removeTrack(e)})),e})).catch((function(e){if(e.type===o.TypeStrings.SessionDescriptionHandlerError)throw e;var r=new a.Exceptions.SessionDescriptionHandlerError(\"acquire\",e,\"error removing streams\");throw t.logger.error(r.message),r.error&&t.logger.error(r.error),r})).then((function(e){return[].concat(e).forEach((function(e){t.peerConnection.addTrack?e.getTracks().forEach((function(r){t.peerConnection.addTrack(r,e)})):t.peerConnection.addStream(e)})),Promise.resolve()})).catch((function(e){if(e.type===o.TypeStrings.SessionDescriptionHandlerError)throw e;var r=new a.Exceptions.SessionDescriptionHandlerError(\"acquire\",e,\"error adding stream\");throw t.logger.error(r.message),r.error&&t.logger.error(r.error),r}))},t.prototype.hasOffer=function(e){var t=\"have-\"+e+\"-offer\";return this.peerConnection.signalingState===t},t.prototype.isIceGatheringComplete=function(){return\"complete\"===this.peerConnection.iceGatheringState||this.iceGatheringTimeout},t.prototype.resetIceGatheringComplete=function(){this.iceGatheringTimeout=!1,this.logger.log(\"resetIceGatheringComplete\"),this.iceGatheringTimer&&(clearTimeout(this.iceGatheringTimer),this.iceGatheringTimer=void 0),this.iceGatheringDeferred&&(this.iceGatheringDeferred.reject(),this.iceGatheringDeferred=void 0)},t.prototype.setDirection=function(e){var t=e.match(/a=(sendrecv|sendonly|recvonly|inactive)/);if(null===t)return this.direction=this.C.DIRECTION.NULL,void this.observer.directionChanged();var r=t[1];switch(r){case this.C.DIRECTION.SENDRECV:case this.C.DIRECTION.SENDONLY:case this.C.DIRECTION.RECVONLY:case this.C.DIRECTION.INACTIVE:this.direction=r;break;default:this.direction=this.C.DIRECTION.NULL}this.observer.directionChanged()},t.prototype.triggerIceGatheringComplete=function(){this.isIceGatheringComplete()&&(this.emit(\"iceGatheringComplete\",this),this.iceGatheringTimer&&(clearTimeout(this.iceGatheringTimer),this.iceGatheringTimer=void 0),this.iceGatheringDeferred&&(this.iceGatheringDeferred.resolve(),this.iceGatheringDeferred=void 0))},t.prototype.waitForIceGatheringComplete=function(){return this.logger.log(\"waitForIceGatheringComplete\"),this.isIceGatheringComplete()?(this.logger.log(\"ICE is already complete. Return resolved.\"),Promise.resolve()):(this.iceGatheringDeferred||(this.iceGatheringDeferred=c.Utils.defer()),this.logger.log(\"ICE is not complete. Returning promise\"),this.iceGatheringDeferred?this.iceGatheringDeferred.promise:Promise.resolve())},t}(n.EventEmitter);t.SessionDescriptionHandler=p},function(e,t,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var i,n=r(0),s=r(121),o=r(4),a=r(13),c=r(32),u=r(108),d=r(30);!function(e){e[e.STATUS_CONNECTING=0]=\"STATUS_CONNECTING\",e[e.STATUS_OPEN=1]=\"STATUS_OPEN\",e[e.STATUS_CLOSING=2]=\"STATUS_CLOSING\",e[e.STATUS_CLOSED=3]=\"STATUS_CLOSED\"}(i=t.TransportStatus||(t.TransportStatus={}));var p=function(e){function t(t,r){void 0===r&&(r={});var n=e.call(this,t)||this;return n.type=a.TypeStrings.Transport,n.reconnectionAttempts=0,n.status=i.STATUS_CONNECTING,n.configuration=n.loadConfig(r),n.server=n.configuration.wsServers[0],n}return n.__extends(t,e),t.prototype.isConnected=function(){return this.status===i.STATUS_OPEN},t.prototype.sendPromise=function(e,t){if(void 0===t&&(t={}),void 0===this.ws)return this.onError(\"unable to send message - WebSocket undefined\"),Promise.reject(new Error(\"WebSocket undefined.\"));if(!this.statusAssert(i.STATUS_OPEN,t.force))return this.onError(\"unable to send message - WebSocket not open\"),Promise.reject(new Error(\"WebSocket not open.\"));!0===this.configuration.traceSip&&this.logger.log(\"sending WebSocket message:\\n\\n\"+e+\"\\n\");try{this.ws.send(e)}catch(e){return e instanceof e&&Promise.reject(e),Promise.reject(new Error(\"Failed to send message.\"))}return Promise.resolve({msg:e})},t.prototype.disconnectPromise=function(e){var t=this;return void 0===e&&(e={}),this.disconnectionPromise?this.disconnectionPromise:(e.code=e.code||1e3,this.statusTransition(i.STATUS_CLOSING,e.force)?(this.emit(\"disconnecting\"),this.disconnectionPromise=new Promise((function(r,i){t.disconnectDeferredResolve=r,t.reconnectTimer&&(clearTimeout(t.reconnectTimer),t.reconnectTimer=void 0),t.ws?(t.stopSendingKeepAlives(),t.logger.log(\"closing WebSocket \"+t.server.wsUri),t.ws.close(e.code,e.reason)):i(\"Attempted to disconnect but the websocket doesn't exist\")})),this.disconnectionPromise):this.status===i.STATUS_CLOSED?Promise.resolve({overrideEvent:!0}):this.connectionPromise?this.connectionPromise.then((function(){return Promise.reject(\"The websocket did not disconnect\")})).catch((function(){return Promise.resolve({overrideEvent:!0})})):Promise.reject(\"The websocket did not disconnect\"))},t.prototype.connectPromise=function(e){var t=this;return void 0===e&&(e={}),this.status!==i.STATUS_CLOSING||e.force?this.connectionPromise?this.connectionPromise:(this.server=this.server||this.getNextWsServer(e.force),this.connectionPromise=new Promise((function(r,n){if((t.status===i.STATUS_OPEN||t.status===i.STATUS_CLOSING)&&!e.force)return t.logger.warn(\"WebSocket \"+t.server.wsUri+\" is already connected\"),void n(\"Failed status check - attempted to open a connection but already open/closing\");t.connectDeferredResolve=r,t.connectDeferredReject=n,t.status=i.STATUS_CONNECTING,t.emit(\"connecting\"),t.logger.log(\"connecting to WebSocket \"+t.server.wsUri),t.disposeWs();try{t.server.wsUri.endsWith(\"/NOWEBSOCKET\")?t.ws=new s.CareWebSocket(t.server.wsUri,\"sip\"):t.ws=new WebSocket(t.server.wsUri,\"sip\")}catch(e){return t.ws=void 0,t.statusTransition(i.STATUS_CLOSED,!0),t.onError(\"error connecting to WebSocket \"+t.server.wsUri+\":\"+e),n(\"Failed to create a websocket\"),t.connectDeferredResolve=void 0,void(t.connectDeferredReject=void 0)}if(!t.ws)return n(\"Unexpected instance websocket not set\"),t.connectDeferredResolve=void 0,void(t.connectDeferredReject=void 0);t.connectionTimeout=setTimeout((function(){t.statusTransition(i.STATUS_CLOSED),t.logger.warn(\"took too long to connect - exceeded time set in configuration.connectionTimeout: \"+t.configuration.connectionTimeout+\"s\"),t.emit(\"disconnected\",{code:1e3}),t.connectionPromise=void 0,n(\"Connection timeout\"),t.connectDeferredResolve=void 0,t.connectDeferredReject=void 0;var e=t.ws;t.disposeWs(),e&&e.close(1e3)}),1e3*t.configuration.connectionTimeout),t.boundOnOpen=t.onOpen.bind(t),t.boundOnMessage=t.onMessage.bind(t),t.boundOnSendMessage=t.onSendMessage.bind(t),t.boundOnClose=t.onClose.bind(t),t.boundOnError=t.onWebsocketError.bind(t),t.ws.addEventListener(\"open\",t.boundOnOpen),t.ws.addEventListener(\"message\",t.boundOnMessage),t.ws.addEventListener(\"sendmessage\",t.boundOnSendMessage),t.ws.addEventListener(\"close\",t.boundOnClose),t.ws.addEventListener(\"error\",t.boundOnError),t.ws instanceof s.CareWebSocket&&t.ws.open()})),this.connectionPromise):Promise.reject(\"WebSocket \"+this.server.wsUri+\" is closing\")},t.prototype.onMessage=function(e){var t,r=e.data;if(/^(\\r\\n)+$/.test(r))return this.clearKeepAliveTimeout(),void(!0===this.configuration.traceSip&&this.logger.log(\"received WebSocket message with CRLF Keep Alive response\"));if(r){if(\"string\"!=typeof r){try{t=String.fromCharCode.apply(null,new Uint8Array(r))}catch(e){return void this.logger.warn(\"received WebSocket binary message failed to be converted into string, message discarded\")}!0===this.configuration.traceSip&&this.logger.log(\"received WebSocket binary message:\\n\\n\"+r+\"\\n\")}else!0===this.configuration.traceSip&&this.logger.log(\"received WebSocket text message:\\n\\n\"+r+\"\\n\"),t=r;this.emit(\"message\",t)}else this.logger.warn(\"received empty message, message discarded\")},t.prototype.onSendMessage=function(e){var t=e.data;this.emit(\"sendmessage\",t)},t.prototype.onOpen=function(){if(this.status===i.STATUS_CLOSED){var e=this.ws;return this.disposeWs(),void(e&&e.close(1e3))}this.statusTransition(i.STATUS_OPEN,!0),this.emit(\"connected\"),this.connectionTimeout&&(clearTimeout(this.connectionTimeout),this.connectionTimeout=void 0),this.logger.log(\"WebSocket \"+this.server.wsUri+\" connected\"),void 0!==this.reconnectTimer&&(clearTimeout(this.reconnectTimer),this.reconnectTimer=void 0),this.reconnectionAttempts=0,this.disconnectionPromise=void 0,this.disconnectDeferredResolve=void 0,this.startSendingKeepAlives(),this.connectDeferredResolve?(this.connectDeferredResolve({overrideEvent:!0}),this.connectDeferredResolve=void 0,this.connectDeferredReject=void 0):this.logger.warn(\"Unexpected websocket.onOpen with no connectDeferredResolve\")},t.prototype.onClose=function(e){if(this.logger.log(\"WebSocket disconnected (code: \"+e.code+(e.reason?\"| reason: \"+e.reason:\"\")+\")\"),this.status!==i.STATUS_CLOSING&&(this.logger.warn(\"WebSocket closed without SIP.js requesting it\"),this.emit(\"transportError\")),this.stopSendingKeepAlives(),this.connectionTimeout&&clearTimeout(this.connectionTimeout),this.connectDeferredReject&&this.connectDeferredReject(\"Websocket Closed\"),this.connectionTimeout=void 0,this.connectionPromise=void 0,this.connectDeferredResolve=void 0,this.connectDeferredReject=void 0,this.disconnectDeferredResolve)return this.disconnectDeferredResolve({overrideEvent:!0}),this.statusTransition(i.STATUS_CLOSED),void(this.disconnectDeferredResolve=void 0);this.statusTransition(i.STATUS_CLOSED,!0),this.emit(\"disconnected\",{code:e.code,reason:e.reason}),this.disposeWs(),this.reconnect()},t.prototype.disposeWs=function(){this.ws&&(this.ws.removeEventListener(\"open\",this.boundOnOpen),this.ws.removeEventListener(\"message\",this.boundOnMessage),this.ws.removeEventListener(\"sendmessage\",this.boundOnSendMessage),this.ws.removeEventListener(\"close\",this.boundOnClose),this.ws.removeEventListener(\"error\",this.boundOnError),this.ws=void 0)},t.prototype.onError=function(e){this.logger.warn(\"Transport error: \"+e),this.emit(\"transportError\")},t.prototype.onWebsocketError=function(){this.onError(\"The Websocket had an error\")},t.prototype.reconnect=function(){var e=this;if(this.reconnectionAttempts>0&&this.logger.log(\"Reconnection attempt \"+this.reconnectionAttempts+\" failed\"),this.noAvailableServers())return this.logger.warn(\"attempted to get next ws server but there are no available ws servers left\"),this.logger.warn(\"no available ws servers left - going to closed state\"),this.statusTransition(i.STATUS_CLOSED,!0),this.emit(\"closed\"),void this.resetServerErrorStatus();this.isConnected()&&(this.logger.warn(\"attempted to reconnect while connected - forcing disconnect\"),this.disconnect({force:!0})),this.reconnectionAttempts+=1,this.reconnectionAttempts>this.configuration.maxReconnectionAttempts?(this.logger.warn(\"maximum reconnection attempts for WebSocket \"+this.server.wsUri),this.logger.log(\"transport \"+this.server.wsUri+\" failed | connection state set to 'error'\"),this.server.isError=!0,this.emit(\"transportError\"),this.noAvailableServers()||(this.server=this.getNextWsServer()),this.reconnectionAttempts=0,this.reconnect()):(this.logger.log(\"trying to reconnect to WebSocket \"+this.server.wsUri+\" (reconnection attempt \"+this.reconnectionAttempts+\")\"),this.reconnectTimer=setTimeout((function(){e.connect(),e.reconnectTimer=void 0}),1===this.reconnectionAttempts?0:1e3*this.configuration.reconnectionTimeout))},t.prototype.resetServerErrorStatus=function(){for(var e=0,t=this.configuration.wsServers;et[0].weight?t=[n]:n.weight===t[0].weight&&t.push(n))}return t[Math.floor(Math.random()*t.length)]},t.prototype.noAvailableServers=function(){for(var e=0,t=this.configuration.wsServers;e\",weight:0,wsUri:\"wss://edge.sip.onsip.com\",isError:!1}],connectionTimeout:5,maxReconnectionAttempts:3,reconnectionTimeout:4,keepAliveInterval:0,keepAliveDebounce:10,traceSip:!1},r=this.getConfigurationCheck();for(var i in r.mandatory){if(!e.hasOwnProperty(i))throw new c.Exceptions.ConfigurationError(i);var n=e[i];if(void 0===(s=r.mandatory[i](n)))throw new c.Exceptions.ConfigurationError(i,n);t[i]=s}for(var i in r.optional)if(e.hasOwnProperty(i)){var s;if((n=e[i])instanceof Array&&0===n.length||null===n||\"\"===n||void 0===n||\"number\"==typeof n&&isNaN(n))continue;if(void 0===(s=r.optional[i](n)))throw new c.Exceptions.ConfigurationError(i,n);t[i]=s}var o={};for(var i in t)t.hasOwnProperty(i)&&(o[i]={value:t[i]});var a=Object.defineProperties({},o);for(var i in this.logger.log(\"configuration parameters after validation:\"),t)t.hasOwnProperty(i)&&this.logger.log(\"\\xb7 \"+i+\": \"+JSON.stringify(t[i]));return a},t.prototype.getConfigurationCheck=function(){return{mandatory:{},optional:{wsServers:function(e){if(\"string\"==typeof e)e=[{wsUri:e}];else{if(!(e instanceof Array))return;for(var t=0;t\",n.weight||(n.weight=0),n.isError=!1,n.scheme=s.scheme.toUpperCase()}return e},keepAliveInterval:function(e){if(d.Utils.isDecimal(e)){var t=Number(e);if(t>0)return t}},keepAliveDebounce:function(e){if(d.Utils.isDecimal(e)){var t=Number(e);if(t>0)return t}},traceSip:function(e){if(\"boolean\"==typeof e)return e},connectionTimeout:function(e){if(d.Utils.isDecimal(e)){var t=Number(e);if(t>0)return t}},maxReconnectionAttempts:function(e){if(d.Utils.isDecimal(e)){var t=Number(e);if(t>=0)return t}},reconnectionTimeout:function(e){if(d.Utils.isDecimal(e)){var t=Number(e);if(t>0)return t}}}}},t.C=i,t}(u.Transport);t.Transport=p},,,,,,,function(e,t,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var i=r(0),n=r(4);t.DigestAuthentication=n.DigestAuthentication,t.Grammar=n.Grammar,t.IncomingRequest=n.IncomingRequestMessage,t.IncomingResponse=n.IncomingResponseMessage,t.LoggerFactory=n.LoggerFactory,t.NameAddrHeader=n.NameAddrHeader,t.OutgoingRequest=n.OutgoingRequestMessage,t.Parser=n.Parser,t.Timers=n.Timers,t.URI=n.URI;var s=r(53);t.ClientContext=s.ClientContext;var o=r(29);t.C=o.C;var a=r(13);t.DialogStatus=a.DialogStatus,t.SessionStatus=a.SessionStatus,t.TypeStrings=a.TypeStrings,t.UAStatus=a.UAStatus;var c=r(32);t.Exceptions=c.Exceptions;var u=r(103);t.PublishContext=u.PublishContext;var d=r(93);t.ReferClientContext=d.ReferClientContext,t.ReferServerContext=d.ReferServerContext;var p=r(104);t.RegisterContext=p.RegisterContext;var l=r(88);t.ServerContext=l.ServerContext;var h=r(105);t.InviteClientContext=h.InviteClientContext,t.InviteServerContext=h.InviteServerContext,t.Session=h.Session;var g=r(107);t.Subscription=g.Subscription;var f=r(108);t.Transport=f.Transport;var v=r(1),m={InviteClientTransaction:v.InviteClientTransaction,InviteServerTransaction:v.InviteServerTransaction,NonInviteClientTransaction:v.NonInviteClientTransaction,NonInviteServerTransaction:v.NonInviteServerTransaction};t.Transactions=m;var S=r(109);t.makeUserAgentCoreConfigurationFromUA=S.makeUserAgentCoreConfigurationFromUA,t.UA=S.UA;var T=r(30);t.Utils=T.Utils;var y=i.__importStar(r(122));t.Web=y;var E=o.C.version;t.version=E;t.name=\"sip.js\";var b=i.__importStar(r(4));t.Core=b},function(e,t,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var i=r(0),n=r(8),s=r(29),o=r(13),a=r(32),c=r(30),u=r(106),d=function(e){function t(t,r,i){void 0===i&&(i={});var n=e.call(this)||this;if(n.C={MIN_DURATION:70,MAX_DURATION:6e3,DEFAULT_DURATION:100,MIN_INTER_TONE_GAP:50,DEFAULT_INTER_TONE_GAP:500},n.type=o.TypeStrings.DTMF,void 0===r)throw new TypeError(\"Not enough arguments\");n.logger=t.ua.getLogger(\"sip.invitecontext.dtmf\",t.id),n.owner=t;n.tone=u.DTMFValidator.validate(r,!1);var s=i.duration,a=i.interToneGap;if(s&&!c.Utils.isDecimal(s))throw new TypeError(\"Invalid tone duration: \"+s);if(s?sn.C.MAX_DURATION?(n.logger.warn(\"'duration' value is greater than the maximum allowed, setting it to \"+n.C.MAX_DURATION+\" milliseconds\"),s=n.C.MAX_DURATION):s=Math.abs(s):s=n.C.DEFAULT_DURATION,n.duration=s,a&&!c.Utils.isDecimal(a))throw new TypeError(\"Invalid interToneGap: \"+a);return a?a-1&&n.indexOf(\"chrome\")<0?s=!0:n.indexOf(\"firefox\")>-1&&n.indexOf(\"chrome\")<0&&(c=!0);var u={};return s&&(u.modifiers=[a.stripG722]),c&&(u.alwaysAcquireMediaFirst=!0),r.options.ua.uri?r.anonymous=!1:r.anonymous=!0,r.ua=new o.UA({uri:r.options.ua.uri,authorizationUser:r.options.ua.authorizationUser,password:r.options.ua.password,displayName:r.options.ua.displayName,userAgentString:r.options.ua.userAgentString,register:!0,sessionDescriptionHandlerFactoryOptions:u,transportOptions:{traceSip:r.options.ua.traceSip,wsServers:r.options.ua.wsServers}}),r.state=i.STATUS_NULL,r.logger=r.ua.getLogger(\"sip.simple\"),r.ua.on(\"registered\",(function(){r.emit(\"registered\",r.ua)})),r.ua.on(\"unregistered\",(function(){r.emit(\"unregistered\",r.ua)})),r.ua.on(\"registrationFailed\",(function(){r.emit(\"unregistered\",r.ua)})),r.ua.on(\"invite\",(function(e){if(r.state!==i.STATUS_NULL&&r.state!==i.STATUS_COMPLETED)return r.logger.warn(\"Rejecting incoming call. Simple only supports 1 call at a time\"),void e.reject();r.session=e,r.setupSession(),r.emit(\"ringing\",r.session)})),r.ua.on(\"message\",(function(e){r.emit(\"message\",e)})),r}return n.__extends(t,e),t.prototype.call=function(e){if(this.ua&&this.checkRegistration()){if(this.state===i.STATUS_NULL||this.state===i.STATUS_COMPLETED)return this.options.media.remote.audio&&(this.options.media.remote.audio.autoplay=!0),this.options.media.remote.video&&(this.options.media.remote.video.autoplay=!0),this.options.media.local&&this.options.media.local.video&&(this.options.media.local.video.autoplay=!0,this.options.media.local.video.volume=0),this.session=this.ua.invite(e,{sessionDescriptionHandlerOptions:{constraints:{audio:this.audio,video:this.video}}}),this.setupSession(),this.session;this.logger.warn(\"Cannot make more than a single call with Simple\")}else this.logger.warn(\"A registered UA is required for calling\")},t.prototype.answer=function(){if(this.state===i.STATUS_NEW||this.state===i.STATUS_CONNECTING)return this.options.media.remote.audio&&(this.options.media.remote.audio.autoplay=!0),this.options.media.remote.video&&(this.options.media.remote.video.autoplay=!0),this.session.accept({sessionDescriptionHandlerOptions:{constraints:{audio:this.audio,video:this.video}}});this.logger.warn(\"No call to answer\")},t.prototype.reject=function(){if(this.state===i.STATUS_NEW||this.state===i.STATUS_CONNECTING)return this.session.reject();this.logger.warn(\"Call is already answered\")},t.prototype.hangup=function(){if(this.state===i.STATUS_CONNECTED||this.state===i.STATUS_CONNECTING||this.state===i.STATUS_NEW)return this.state!==i.STATUS_CONNECTED?this.session.cancel():this.session?this.session.bye():void 0;this.logger.warn(\"No active call to hang up on\")},t.prototype.hold=function(){if(this.state===i.STATUS_CONNECTED&&this.session&&!this.session.localHold)return this.mute(),this.logger.log(\"Placing session on hold\"),this.session.hold();this.logger.warn(\"Cannot put call on hold\")},t.prototype.unhold=function(){if(this.state===i.STATUS_CONNECTED&&this.session&&this.session.localHold)return this.unmute(),this.logger.log(\"Placing call off hold\"),this.session.unhold();this.logger.warn(\"Cannot unhold a call that is not on hold\")},t.prototype.mute=function(){this.state===i.STATUS_CONNECTED?(this.logger.log(\"Muting Audio\"),this.toggleMute(!0),this.emit(\"mute\",this)):this.logger.warn(\"An acitve call is required to mute audio\")},t.prototype.unmute=function(){this.state===i.STATUS_CONNECTED?(this.logger.log(\"Unmuting Audio\"),this.toggleMute(!1),this.emit(\"unmute\",this)):this.logger.warn(\"An active call is required to unmute audio\")},t.prototype.sendDTMF=function(e){this.state===i.STATUS_CONNECTED&&this.session?(this.logger.log(\"Sending DTMF tone: \"+e),this.session.dtmf(e)):this.logger.warn(\"An active call is required to send a DTMF tone\")},t.prototype.message=function(e,t){this.ua&&this.checkRegistration()?e&&t?this.ua.message(e,t):this.logger.warn(\"A destination and message are required to send a message\"):this.logger.warn(\"A registered UA is required to send a message\")},t.prototype.checkRegistration=function(){return this.anonymous||this.ua&&this.ua.isRegistered()},t.prototype.setupRemoteMedia=function(){var e=this;if(this.session){var t,r=this.session.sessionDescriptionHandler.peerConnection;r.getReceivers?(t=new MediaStream,r.getReceivers().forEach((function(e){var r=e.track;r&&t.addTrack(r)}))):t=r.getRemoteStreams()[0],this.video?(this.options.media.remote.video.srcObject=t,this.options.media.remote.video.play().catch((function(){e.logger.log(\"play was rejected\")}))):this.audio&&(this.options.media.remote.audio.srcObject=t,this.options.media.remote.audio.play().catch((function(){e.logger.log(\"play was rejected\")})))}else this.logger.warn(\"No session to set remote media on\")},t.prototype.setupLocalMedia=function(){if(this.session){if(this.video&&this.options.media.local&&this.options.media.local.video){var e,t=this.session.sessionDescriptionHandler.peerConnection;t.getSenders?(e=new MediaStream,t.getSenders().forEach((function(t){var r=t.track;r&&\"video\"===r.kind&&e.addTrack(r)}))):e=t.getLocalStreams()[0],this.options.media.local.video.srcObject=e,this.options.media.local.video.volume=0,this.options.media.local.video.play()}}else this.logger.warn(\"No session to set local media on\")},t.prototype.cleanupMedia=function(){this.video&&(this.options.media.remote.video.srcObject=null,this.options.media.remote.video.pause(),this.options.media.local&&this.options.media.local.video&&(this.options.media.local.video.srcObject=null,this.options.media.local.video.pause())),this.audio&&(this.options.media.remote.audio.srcObject=null,this.options.media.remote.audio.pause())},t.prototype.setupSession=function(){var e=this;this.session?(this.state=i.STATUS_NEW,this.emit(\"new\",this.session),this.session.on(\"progress\",(function(){return e.onProgress()})),this.session.on(\"accepted\",(function(){return e.onAccepted()})),this.session.on(\"rejected\",(function(){return e.onEnded()})),this.session.on(\"failed\",(function(){return e.onFailed()})),this.session.on(\"terminated\",(function(){return e.onEnded()}))):this.logger.warn(\"No session to set up\")},t.prototype.destroyMedia=function(){this.session&&this.session.sessionDescriptionHandler&&this.session.sessionDescriptionHandler.close()},t.prototype.toggleMute=function(e){if(this.session){var t=this.session.sessionDescriptionHandler.peerConnection;t.getSenders?t.getSenders().forEach((function(t){t.track&&(t.track.enabled=!e)})):t.getLocalStreams().forEach((function(t){t.getAudioTracks().forEach((function(t){t.enabled=!e})),t.getVideoTracks().forEach((function(t){t.enabled=!e}))}))}else this.logger.warn(\"No session to toggle mute\")},t.prototype.onAccepted=function(){var e=this;this.session?(this.state=i.STATUS_CONNECTED,this.emit(\"connected\",this.session),this.setupLocalMedia(),this.setupRemoteMedia(),this.session.sessionDescriptionHandler&&(this.session.sessionDescriptionHandler.on(\"addTrack\",(function(){e.logger.log(\"A track has been added, triggering new remoteMedia setup\"),e.setupRemoteMedia()})),this.session.sessionDescriptionHandler.on(\"addStream\",(function(){e.logger.log(\"A stream has been added, trigger new remoteMedia setup\"),e.setupRemoteMedia()}))),this.session.on(\"dtmf\",(function(t,r){e.emit(\"dtmf\",r.tone)})),this.session.on(\"bye\",(function(){return e.onEnded()}))):this.logger.warn(\"No session for accepting\")},t.prototype.onProgress=function(){this.state=i.STATUS_CONNECTING,this.emit(\"connecting\",this.session)},t.prototype.onFailed=function(){this.onEnded()},t.prototype.onEnded=function(){this.state=i.STATUS_COMPLETED,this.emit(\"ended\",this.session),this.cleanupMedia()},t.C=i,t}(s.EventEmitter);t.Simple=c}])}));","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./filter_booleanColumn.vue?vue&type=style&index=0&id=49ae20ea&prod&scoped=true&lang=css&\"","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-list-item-group',{attrs:{\"multiple\":\"\"},model:{value:(_vm.selected_items),callback:function ($$v) {_vm.selected_items=$$v},expression:\"selected_items\"}},[_c('v-list-item',{staticClass:\"mediumdense\",attrs:{\"value\":0}},[_c('v-list-item-action',[_c('v-icon',[_vm._v(\" \"+_vm._s(_vm.selected_items.some(a => a === 0) ? 'mdi-checkbox-marked' : 'mdi-checkbox-blank-outline')+\" \")])],1),_c('v-list-item-content',[_vm._v(\" True \")])],1),_c('v-list-item',{staticClass:\"mediumdense\",attrs:{\"value\":1}},[_c('v-list-item-action',[_c('v-icon',[_vm._v(\" \"+_vm._s(_vm.selected_items.some(a => a === 1) ? 'mdi-checkbox-marked' : 'mdi-checkbox-blank-outline')+\" \")])],1),_c('v-list-item-content',[_vm._v(\" False \")])],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import dayjs from 'dayjs';\r\nimport localeData from 'dayjs/plugin/localeData';\r\nimport localizedFormat from 'dayjs/plugin/localizedFormat';\r\nimport customParseFormat from 'dayjs/plugin/customParseFormat';\r\nimport weekday from 'dayjs/plugin/weekday';\r\nimport utc from 'dayjs/plugin/utc';\r\nimport timezone from 'dayjs/plugin/timezone';\r\nimport objectSupport from 'dayjs/plugin/objectSupport';\r\nimport {appSettings} from '../Shared/appSettings';\r\n\r\nimport 'dayjs/locale/af/';\r\nimport 'dayjs/locale/am/';\r\nimport 'dayjs/locale/ar-dz/';\r\nimport 'dayjs/locale/ar-iq/';\r\nimport 'dayjs/locale/ar-kw/';\r\nimport 'dayjs/locale/ar-ly/';\r\nimport 'dayjs/locale/ar-ma/';\r\nimport 'dayjs/locale/ar-sa/';\r\nimport 'dayjs/locale/ar-tn/';\r\nimport 'dayjs/locale/ar/';\r\nimport 'dayjs/locale/az/';\r\nimport 'dayjs/locale/be/';\r\nimport 'dayjs/locale/bg/';\r\nimport 'dayjs/locale/bi/';\r\nimport 'dayjs/locale/bm/';\r\nimport 'dayjs/locale/bn/';\r\nimport 'dayjs/locale/bo/';\r\nimport 'dayjs/locale/bs/';\r\nimport 'dayjs/locale/ca/';\r\nimport 'dayjs/locale/cs/';\r\nimport 'dayjs/locale/cv/';\r\nimport 'dayjs/locale/cy/';\r\nimport 'dayjs/locale/da/';\r\nimport 'dayjs/locale/de-at/';\r\nimport 'dayjs/locale/de-ch/';\r\nimport 'dayjs/locale/de/';\r\nimport 'dayjs/locale/dv/';\r\nimport 'dayjs/locale/el/';\r\nimport 'dayjs/locale/en-au/';\r\nimport 'dayjs/locale/en-ca/';\r\nimport 'dayjs/locale/en-gb/';\r\nimport 'dayjs/locale/en-ie/';\r\nimport 'dayjs/locale/en-il/';\r\nimport 'dayjs/locale/en-in/';\r\nimport 'dayjs/locale/en-nz/';\r\nimport 'dayjs/locale/en-sg/';\r\nimport 'dayjs/locale/en-tt/';\r\nimport 'dayjs/locale/en/';\r\nimport 'dayjs/locale/eo/';\r\nimport 'dayjs/locale/es-do/';\r\nimport 'dayjs/locale/es-mx/';\r\nimport 'dayjs/locale/es-pr/';\r\nimport 'dayjs/locale/es-us/';\r\nimport 'dayjs/locale/es/';\r\nimport 'dayjs/locale/et/';\r\nimport 'dayjs/locale/eu/';\r\nimport 'dayjs/locale/fa/';\r\nimport 'dayjs/locale/fi/';\r\nimport 'dayjs/locale/fo/';\r\nimport 'dayjs/locale/fr-ca/';\r\nimport 'dayjs/locale/fr-ch/';\r\nimport 'dayjs/locale/fr/';\r\nimport 'dayjs/locale/fy/';\r\nimport 'dayjs/locale/ga/';\r\nimport 'dayjs/locale/gd/';\r\nimport 'dayjs/locale/gl/';\r\nimport 'dayjs/locale/gom-latn/';\r\nimport 'dayjs/locale/gu/';\r\nimport 'dayjs/locale/he/';\r\nimport 'dayjs/locale/hi/';\r\nimport 'dayjs/locale/hr/';\r\nimport 'dayjs/locale/ht/';\r\nimport 'dayjs/locale/hu/';\r\nimport 'dayjs/locale/hy-am/';\r\nimport 'dayjs/locale/id/';\r\nimport 'dayjs/locale/is/';\r\nimport 'dayjs/locale/it-ch/';\r\nimport 'dayjs/locale/it/';\r\nimport 'dayjs/locale/ja/';\r\nimport 'dayjs/locale/jv/';\r\nimport 'dayjs/locale/ka/';\r\nimport 'dayjs/locale/kk/';\r\nimport 'dayjs/locale/km/';\r\nimport 'dayjs/locale/kn/';\r\nimport 'dayjs/locale/ko/';\r\nimport 'dayjs/locale/ku/';\r\nimport 'dayjs/locale/ky/';\r\nimport 'dayjs/locale/lb/';\r\nimport 'dayjs/locale/lo/';\r\nimport 'dayjs/locale/lt/';\r\nimport 'dayjs/locale/lv/';\r\nimport 'dayjs/locale/me/';\r\nimport 'dayjs/locale/mi/';\r\nimport 'dayjs/locale/mk/';\r\nimport 'dayjs/locale/ml/';\r\nimport 'dayjs/locale/mn/';\r\nimport 'dayjs/locale/mr/';\r\nimport 'dayjs/locale/ms-my/';\r\nimport 'dayjs/locale/ms/';\r\nimport 'dayjs/locale/mt/';\r\nimport 'dayjs/locale/my/';\r\nimport 'dayjs/locale/nb/';\r\nimport 'dayjs/locale/ne/';\r\nimport 'dayjs/locale/nl-be/';\r\nimport 'dayjs/locale/nl/';\r\nimport 'dayjs/locale/nn/';\r\nimport 'dayjs/locale/oc-lnc/';\r\nimport 'dayjs/locale/pa-in/';\r\nimport 'dayjs/locale/pl/';\r\nimport 'dayjs/locale/pt-br/';\r\nimport 'dayjs/locale/pt/';\r\nimport 'dayjs/locale/rn/';\r\nimport 'dayjs/locale/ro/';\r\nimport 'dayjs/locale/ru/';\r\nimport 'dayjs/locale/rw/';\r\nimport 'dayjs/locale/sd/';\r\nimport 'dayjs/locale/se/';\r\nimport 'dayjs/locale/si/';\r\nimport 'dayjs/locale/sk/';\r\nimport 'dayjs/locale/sl/';\r\nimport 'dayjs/locale/sq/';\r\nimport 'dayjs/locale/sr-cyrl/';\r\nimport 'dayjs/locale/sr/';\r\nimport 'dayjs/locale/ss/';\r\nimport 'dayjs/locale/sv-fi/';\r\nimport 'dayjs/locale/sv/';\r\nimport 'dayjs/locale/sw/';\r\nimport 'dayjs/locale/ta/';\r\nimport 'dayjs/locale/te/';\r\nimport 'dayjs/locale/tet/';\r\nimport 'dayjs/locale/tg/';\r\nimport 'dayjs/locale/th/';\r\nimport 'dayjs/locale/tk/';\r\nimport 'dayjs/locale/tl-ph/';\r\nimport 'dayjs/locale/tlh/';\r\nimport 'dayjs/locale/tr/';\r\nimport 'dayjs/locale/tzl/';\r\nimport 'dayjs/locale/tzm-latn/';\r\nimport 'dayjs/locale/tzm/';\r\nimport 'dayjs/locale/ug-cn/';\r\nimport 'dayjs/locale/uk/';\r\nimport 'dayjs/locale/ur/';\r\nimport 'dayjs/locale/uz-latn/';\r\nimport 'dayjs/locale/uz/';\r\nimport 'dayjs/locale/vi/';\r\nimport 'dayjs/locale/x-pseudo/';\r\nimport 'dayjs/locale/yo/';\r\nimport 'dayjs/locale/zh-cn/';\r\nimport 'dayjs/locale/zh-hk/';\r\nimport 'dayjs/locale/zh-tw/';\r\nimport 'dayjs/locale/zh';\r\n\r\ndayjs.extend(localeData);\r\ndayjs.extend(localizedFormat);\r\ndayjs.extend(weekday);\r\ndayjs.extend(utc);\r\ndayjs.extend(customParseFormat);\r\ndayjs.extend(objectSupport);\r\ndayjs.extend(timezone);\r\n\r\nwindow.moment = dayjs;\r\nwindow.dayjs = dayjs;\r\n\r\nexport default {\r\n setLocale(locale) {\r\n if(locale)\r\n dayjs.locale(this.getSupportedLocale(locale));\r\n },\r\n /**\r\n * Gets a supported locale based on the locale that the user selected. This is important because day.js doesn't have a locale \r\n * for the default locale for each language. This means that en-us does not exist since us is it's default locale for the english\r\n * language.\r\n * \r\n * @param {String} locale The locale to find in day.js\r\n * @returns \r\n */\r\n getSupportedLocale(locale) {\r\n if(dayjs.Ls[locale])\r\n return locale;\r\n else if(locale.includes('-') && dayjs.Ls[locale.split('-')[0]])\r\n return locale.split('-')[0];\r\n return 'en';\r\n },\r\n get selectedDateLocale() {\r\n return this.getSupportedLocale(appSettings.LocaleKey);\r\n },\r\n getWeekdaysLong() {\r\n return dayjs.weekdays();\r\n },\r\n getWeekdaysShort() {\r\n return dayjs.weekdaysShort();\r\n },\r\n getWeekdaysMin() {\r\n return dayjs.weekdaysMin();\r\n },\r\n getMonthLong() {\r\n return dayjs.months();\r\n },\r\n getMonthShort() {\r\n return dayjs.monthsShort();\r\n },\r\n getTimezoneConvertedDate(date, timezone) {\r\n var d = dayjs(date);\r\n\r\n return dayjs.tz(d.format('YYYY-MM-DDTHH:mm:ss'), this.windowsTimeToIANATime(timezone));\r\n },\r\n getDateInLocale(date, timezone) {\r\n return dayjs(date).tz(careWindowsToMomentTimezoneMap[timezone]).format('LLL');\r\n },\r\n windowsTimeToIANATime(windowsTimezone) {\r\n if(Intl.supportedValuesOf('timeZone').includes(windowsTimezone))\r\n return windowsTimezone;\r\n\r\n if (windowsTimezone in careWindowsToMomentTimezoneMap) {\r\n return careWindowsToMomentTimezoneMap[windowsTimezone];\r\n }\r\n\r\n return dayjs.tz.guess();\r\n }\r\n};\r\n\r\n\r\nexport const careWindowsToMomentTimezoneMap = {\r\n //WindowsTZ - MomentTZ\r\n \"UTC-11\": \"Etc/GMT+11\",\r\n \"Dateline Standard Time\": \"Etc/GMT+12\",\r\n \"UTC-11\": \"Etc/GMT+11\",\r\n \"Aleutian Standard Time\": \"America/Adak\",\r\n \"Hawaiian Standard Time\": \"Etc/GMT+10\",\r\n \"Marquesas Standard Time\": \"Pacific/Marquesas\",\r\n \"Alaskan Standard Time\": \"America/Anchorage\",\r\n \"UTC-09\": \"Etc/GMT+9\",\r\n \"Pacific Standard Time (Mexico)\": \"America/Tijuana\",\r\n \"UTC-08\": \"Etc/GMT+8\",\r\n \"Pacific Standard Time\": \"PST8PDT\",\r\n \"US Mountain Standard Time\": \"Etc/GMT+7\",\r\n \"Mountain Standard Time (Mexico)\": \"America/Chihuahua\",\r\n \"Mountain Standard Time\": \"MST7MDT\",\r\n \"Central America Standard Time\": \"Etc/GMT+6\",\r\n \"Central Standard Time\": \"CST6CDT\",\r\n \"Easter Island Standard Time\": \"Pacific/Easter\",\r\n \"Central Standard Time (Mexico)\": \"America/Mexico_City\",\r\n \"Canada Central Standard Time\": \"America/Regina\",\r\n \"SA Pacific Standard Time\": \"Etc/GMT+5\",\r\n \"Eastern Standard Time (Mexico)\": \"America/Cancun\",\r\n \"Eastern Standard Time\": \"EST5EDT\",\r\n \"Haiti Standard Time\": \"America/Port-au-Prince\",\r\n \"Cuba Standard Time\": \"America/Havana\",\r\n \"US Eastern Standard Time\": \"America/Indianapolis\",\r\n \"Paraguay Standard Time\": \"America/Asuncion\",\r\n \"Mid-Atlantic Standard Time\": \"Etc/GMT+2\",\r\n \"Atlantic Standard Time\": \"America/Halifax\",\r\n \"Venezuela Standard Time\": \"America/Caracas\",\r\n \"Central Brazilian Standard Time\": \"America/Cuiaba\",\r\n \"SA Western Standard Time\": \"Etc/GMT+4\",\r\n \"Pacific SA Standard Time\": \"America/Santiago\",\r\n \"Turks And Caicos Standard Time\": \"America/Grand_Turk\",\r\n \"Newfoundland Standard Time\": \"America/St_Johns\",\r\n \"Tocantins Standard Time\": \"America/Araguaina\",\r\n \"E. South America Standard Time\": \"America/Sao_Paulo\",\r\n \"SA Eastern Standard Time\": \"Etc/GMT+3\",\r\n \"Argentina Standard Time\": \"America/Buenos_Aires\",\r\n \"Greenland Standard Time\": \"America/Godthab\",\r\n \"Montevideo Standard Time\": \"America/Montevideo\",\r\n \"Saint Pierre Standard Time\": \"America/Miquelon\",\r\n \"Bahia Standard Time\": \"America/Bahia\",\r\n \"UTC-02\": \"Etc/GMT+2\",\r\n \"Azores Standard Time\": \"Atlantic/Azores\",\r\n \"Cape Verde Standard Time\": \"Etc/GMT+1\",\r\n \"UTC\": \"Etc/GMT\",\r\n \"Morocco Standard Time\": \"Africa/Casablanca\",\r\n \"GMT Standard Time\": \"Europe/London\",\r\n \"Greenwich Standard Time\": \"Atlantic/Reykjavik\",\r\n \"W. Europe Standard Time\": \"Europe/Berlin\",\r\n \"Central Europe Standard Time\": \"Europe/Budapest\",\r\n \"Romance Standard Time\": \"Europe/Paris\",\r\n \"Central European Standard Time\": \"Europe/Warsaw\",\r\n \"W. Central Africa Standard Time\": \"Etc/GMT-1\",\r\n \"Namibia Standard Time\": \"Africa/Windhoek\",\r\n \"Jordan Standard Time\": \"Asia/Amman\",\r\n \"GTB Standard Time\": \"Europe/Bucharest\",\r\n \"Middle East Standard Time\": \"Asia/Beirut\",\r\n \"Egypt Standard Time\": \"Africa/Cairo\",\r\n \"E. Europe Standard Time\": \"Europe/Chisinau\",\r\n \"Syria Standard Time\": \"Asia/Damascus\",\r\n \"West Bank Standard Time\": \"Asia/Hebron\",\r\n \"South Africa Standard Time\": \"Etc/GMT-2\",\r\n \"FLE Standard Time\": \"Europe/Kiev\",\r\n \"Turkey Standard Time\": \"Europe/Istanbul\",\r\n \"Israel Standard Time\": \"Asia/Jerusalem\",\r\n \"Kaliningrad Standard Time\": \"Europe/Kaliningrad\",\r\n \"Libya Standard Time\": \"Africa/Tripoli\",\r\n \"Arabic Standard Time\": \"Asia/Baghdad\",\r\n \"Arab Standard Time\": \"Asia/Riyadh\",\r\n \"Belarus Standard Time\": \"Europe/Minsk\",\r\n \"E. Africa Standard Time\": \"Etc/GMT-3\",\r\n \"Iran Standard Time\": \"Asia/Tehran\",\r\n \"Arabian Standard Time\": \"Etc/GMT-4\",\r\n \"Astrakhan Standard Time\": \"Europe/Ulyanovsk\",\r\n \"Azerbaijan Standard Time\": \"Asia/Baku\",\r\n \"Russia Time Zone 3\": \"Europe/Samara\",\r\n \"Mauritius Standard Time\": \"Indian/Mauritius\",\r\n \"Georgian Standard Time\": \"Asia/Tbilisi\",\r\n \"Caucasus Standard Time\": \"Asia/Yerevan\",\r\n \"Afghanistan Standard Time\": \"Asia/Kabul\",\r\n \"West Asia Standard Time\": \"Etc/GMT-5\",\r\n \"Ekaterinburg Standard Time\": \"Asia/Yekaterinburg\",\r\n \"Pakistan Standard Time\": \"Asia/Karachi\",\r\n \"India Standard Time\": \"Asia/Calcutta\",\r\n \"Sri Lanka Standard Time\": \"Asia/Colombo\",\r\n \"Nepal Standard Time\": \"Asia/Katmandu\",\r\n \"Central Asia Standard Time\": \"Etc/GMT-6\",\r\n \"Bangladesh Standard Time\": \"Asia/Dhaka\",\r\n \"Omsk Standard Time\": \"Asia/Omsk\",\r\n \"Myanmar Standard Time\": \"Asia/Rangoon\",\r\n \"SE Asia Standard Time\": \"Etc/GMT-7\",\r\n \"Altai Standard Time\": \"Asia/Barnaul\",\r\n \"W. Mongolia Standard Time\": \"Asia/Hovd\",\r\n \"North Asia Standard Time\": \"Asia/Novokuznetsk\",\r\n \"N. Central Asia Standard Time\": \"Asia/Novosibirsk\",\r\n \"Tomsk Standard Time\": \"Asia/Tomsk\",\r\n \"China Standard Time\": \"Asia/Shanghai\",\r\n \"North Asia East Standard Time\": \"Asia/Irkutsk\",\r\n \"Singapore Standard Time\": \"Etc/GMT-8\",\r\n \"W. Australia Standard Time\": \"Australia/Perth\",\r\n \"Taipei Standard Time\": \"Asia/Taipei\",\r\n \"Ulaanbaatar Standard Time\": \"Asia/Ulaanbaatar\",\r\n \"North Korea Standard Time\": \"Asia/Pyongyang\",\r\n \"Aus Central W. Standard Time\": \"Australia/Eucla\",\r\n \"Transbaikal Standard Time\": \"Asia/Chita\",\r\n \"Tokyo Standard Time\": \"Etc/GMT-9\",\r\n \"Korea Standard Time\": \"Asia/Seoul\",\r\n \"Yakutsk Standard Time\": \"Asia/Yakutsk\",\r\n \"Cen. Australia Standard Time\": \"Australia/Adelaide\",\r\n \"AUS Central Standard Time\": \"Australia/Darwin\",\r\n \"E. Australia Standard Time\": \"Australia/Brisbane\",\r\n \"AUS Eastern Standard Time\": \"Australia/Sydney\",\r\n \"West Pacific Standard Time\": \"Etc/GMT-10\",\r\n \"Tasmania Standard Time\": \"Australia/Hobart\",\r\n \"Vladivostok Standard Time\": \"Asia/Vladivostok\",\r\n \"Lord Howe Standard Time\": \"Australia/Lord_Howe\",\r\n \"Bougainville Standard Time\": \"Pacific/Bougainville\",\r\n \"Russia Time Zone 10\": \"Asia/Srednekolymsk\",\r\n \"Magadan Standard Time\": \"Asia/Magadan\",\r\n \"Norfolk Standard Time\": \"Pacific/Norfolk\",\r\n \"Sakhalin Standard Time\": \"Asia/Sakhalin\",\r\n \"Central Pacific Standard Time\": \"Etc/GMT-11\",\r\n \"Russia Time Zone 11\": \"Asia/Kamchatka\",\r\n \"New Zealand Standard Time\": \"Pacific/Auckland\",\r\n \"UTC+12\": \"Etc/GMT-12\",\r\n \"Fiji Standard Time\": \"Pacific/Fiji\",\r\n \"Kamchatka Standard Time\": \"Pacific/Fiji\",\r\n \"Chatham Islands Standard Time\": \"Pacific/Chatham\",\r\n \"Tonga Standard Time\": \"Etc/GMT-13\",\r\n \"Samoa Standard Time\": \"Pacific/Apia\",\r\n \"Line Islands Standard Time\": \"Etc/GMT-14\"\r\n};","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-card',{on:{\"mouseleave\":function($event){return _vm.commitChanges()}}},[_c('v-card-title',[_vm._v(_vm._s(_vm.item.headerName))]),_c('v-card-subtitle',[_vm._v(\"Histogram Settings\")]),_c('v-divider'),_c('v-card-text',[_c('v-text-field',{attrs:{\"dense\":\"\",\"outlined\":\"\",\"hide-details\":\"\",\"label\":\"Bucket Interval (sec)\",\"type\":\"number\"},model:{value:(_vm.interval),callback:function ($$v) {_vm.interval=$$v},expression:\"interval\"}}),(false)?_c('v-checkbox',{attrs:{\"dense\":\"\",\"hide-details\":\"\"},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_vm._v(\" Extended Bounds \"),_c('v-tooltip',{attrs:{\"bottom\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on, attrs }){return [_c('v-icon',_vm._g(_vm._b({staticClass:\"ml-1\",attrs:{\"dense\":\"\",\"color\":\"blue-grey lighten-4\"}},'v-icon',attrs,false),on),[_vm._v(\"mdi-help-circle\")])]}}],null,false,2236231171)},[_vm._v(\" Extended bounds ensure the range you have selected is always included even if the data does not exist. \")])]},proxy:true}],null,false,2696061629),model:{value:(_vm.ext),callback:function ($$v) {_vm.ext=$$v},expression:\"ext\"}}):_vm._e(),(false && _vm.ext)?_c('div',{attrs:{\"vstyle\":\"display: flex; flex-direction: row;\"}},[_c('v-text-field',{staticStyle:{\"max-width\":\"100px\"},attrs:{\"dense\":\"\",\"outlined\":\"\",\"hide-details\":\"\",\"label\":\"Min\"},model:{value:(_vm.ext_min),callback:function ($$v) {_vm.ext_min=$$v},expression:\"ext_min\"}}),_c('v-text-field',{staticStyle:{\"max-width\":\"100px\"},attrs:{\"dense\":\"\",\"outlined\":\"\",\"hide-details\":\"\",\"label\":\"Max\"},model:{value:(_vm.ext_max),callback:function ($$v) {_vm.ext_max=$$v},expression:\"ext_max\"}})],1):_vm._e(),(false)?_c('v-checkbox',{attrs:{\"dense\":\"\",\"hide-details\":\"\"},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_vm._v(\" Hard Bounds \"),_c('v-tooltip',{attrs:{\"bottom\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on, attrs }){return [_c('v-icon',_vm._g(_vm._b({staticClass:\"ml-1\",attrs:{\"dense\":\"\",\"color\":\"blue-grey lighten-4\"}},'v-icon',attrs,false),on),[_vm._v(\"mdi-help-circle\")])]}}],null,false,2236231171)},[_vm._v(\" Hard bounds limit the buckets to the specified minimum and maximum. \")])]},proxy:true}],null,false,836242339),model:{value:(_vm.hard),callback:function ($$v) {_vm.hard=$$v},expression:\"hard\"}}):_vm._e(),(false && _vm.hard)?_c('div',{staticStyle:{\"display\":\"flex\",\"flex-direction\":\"row\"}},[_c('v-text-field',{staticStyle:{\"max-width\":\"100px\"},attrs:{\"dense\":\"\",\"outlined\":\"\",\"hide-details\":\"\",\"label\":\"Min\"},model:{value:(_vm.hard_min),callback:function ($$v) {_vm.hard_min=$$v},expression:\"hard_min\"}}),_c('v-text-field',{staticStyle:{\"max-width\":\"100px\"},attrs:{\"dense\":\"\",\"outlined\":\"\",\"hide-details\":\"\",\"label\":\"Max\"},model:{value:(_vm.hard_max),callback:function ($$v) {_vm.hard_max=$$v},expression:\"hard_max\"}})],1):_vm._e()],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","export * from \"-!../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../node_modules/cache-loader/dist/cjs.js??ref--1-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=style&index=0&id=2215e15a&prod&lang=css&\"","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./filter_dateColumn.vue?vue&type=style&index=0&id=4820fc28&prod&scoped=true&lang=scss&\"","import Vue from 'vue';\r\nimport Vuetify from 'vuetify';\r\nimport utils from '../../../Shared/utils.jsx';\r\nimport methods from '../../../Shared/methods';\r\nimport filters from '../../../Shared/filters';\r\nimport computed from '../../../Shared/computed';\r\nimport BaseComponent from '../BaseComponentMixin.jsx';\r\nimport EventBus from '@/Application/event-bus.js';\r\nimport careHelpfulFunctions from '../../careHelpfulFunctions.jsx';\r\n\r\n/* We need a draggable dialog. Here is one possible solution:\r\n * https://github.com/vuetifyjs/vuetify/issues/4058\r\n * \r\n * We also need to support resizing, if I find something, I'll paste here.\r\n * \r\n * */\r\n\r\nconst busyIcon = {\r\n render(h) {\r\n return (\r\n \r\n mdi mdi-cloud-download\r\n \r\n );\r\n }\r\n};\r\n\r\nVue.component('display-basic-modal', {\r\n components: {\r\n busyIcon\r\n },\r\n data: () => ({\r\n vars: {},\r\n value: '',\r\n cc_form_changed_indicator: false,\r\n cc_form_changed_active: false,\r\n cc_form_changed_linked: false,\r\n cc_form_changed_button: null,\r\n cc_form_changed_form: null\r\n }),\r\n props: {\r\n name: '',\r\n root: null,\r\n type: null,\r\n parentType: '',\r\n isbase: true,\r\n action: null,\r\n context: null,\r\n scopeitems: null,\r\n controlscope: null,\r\n\r\n okay: null,\r\n cancel: null,\r\n accept: null,\r\n },\r\n created() {\r\n this.cc_form_changed_active = !this.action.ActionData.DisableFormTracking;\r\n this.titlerenderer = utils.compile(this, this.action.ActionData.Title);\r\n\r\n if (this.action.ActionData && this.action.ActionData.Vars) {\r\n const varsexpn = utils.compileObject(this, this.action.ActionData.Vars);\r\n try {\r\n this.vars = utils.evaluateObject(varsexpn, this.action.context);\r\n }\r\n catch (e) {\r\n utils.log('error evaluating Vars: ' + e);\r\n }\r\n }\r\n\r\n if (this.action.ActionData && this.action.ActionData.Javascript)\r\n try {\r\n const api = utils.apiWrapper; // apiService;\r\n const chf = careHelpfulFunctions;\r\n this.Javascript = eval(\"new (\" + this.action.ActionData.Javascript + \")(null, null, api, this, chf);\");\r\n\r\n for (let key in this.Javascript)\r\n if (typeof this.Javascript[key] === 'function')\r\n this.Javascript[key] = this.Javascript[key].bind(this.Javascript);\r\n }\r\n catch (e) {\r\n utils.warn(`Failed evaluating Javascript in ${this.name} ${this.type}: ${this.action.ActionData.Javascript}`, e);\r\n }\r\n\r\n // Subscribe to a UIAction_Close event, which then emits the close event\r\n // which is handled within ActionService.jsx, where it imbeds \r\n utils.debug(`DialogBasicModal ${this.name} ${this._uid} $on ActionClose`);\r\n this.$on('Action-Close', this.performClose);\r\n EventBus.$on(`Action-Close:${this.name}`, this.performClose);\r\n EventBus.$on(`Action-Close`, this.performClose);\r\n },\r\n destroyed() {\r\n utils.debug(`DialogBasicModal ${this.name} ${this._uid} $off ActionClose`);\r\n this.$off('Action-Close', this.performClose);\r\n EventBus.$off(`Action-Close:${this.name}`, this.performClose);\r\n EventBus.$off(`Action-Close`, this.performClose);\r\n },\r\n mounted() {\r\n },\r\n computed: {\r\n ...computed,\r\n Base: function () {\r\n return this;\r\n },\r\n Name: function () {\r\n return this.name;\r\n },\r\n Root: function () {\r\n return this.root ? this.root._self : this;\r\n },\r\n Vars: function () {\r\n return this.vars;\r\n },\r\n title: function () {\r\n return utils.evaluate(this.titlerenderer, this.action.context);\r\n },\r\n Input: function () {\r\n if (this.context)\r\n return this.context.Input;\r\n else\r\n return null;\r\n },\r\n formChangedIndicator() {\r\n if (!this.cc_form_changed_active)\r\n return false;\r\n\r\n if (!this.cc_form_changed_button?.prerender_complete)\r\n return false;\r\n\r\n if (!this.cc_form_changed_form?.prerender_complete)\r\n return false;\r\n\r\n return this.cc_form_changed_indicator;\r\n },\r\n AllowClose: function () {\r\n // If we have a form changed indicator linked then close is determined based on if the form is changed.\r\n if (this.cc_form_changed_active && this.cc_form_changed_linked)\r\n return !this.cc_form_changed_indicator;\r\n\r\n // Otherwise close is always allowed\r\n return true;\r\n }\r\n },\r\n methods: {\r\n ...methods,\r\n ...filters,\r\n confirm() {\r\n this.okay();\r\n this.accept(this.value);\r\n },\r\n generateItems(h, Controls, items) {\r\n for (let i = 0; i < Controls.length; i++) {\r\n const c = Controls[i];\r\n\r\n let DynamicControl = utils.getDynamicComponent(h, c);\r\n if (!DynamicControl) {\r\n items.push(
Control type of {c.ControlType} is unknown
);\r\n continue;\r\n }\r\n\r\n // Note: c_context causes the VarByName and other methods to search from the specified control rather than the current control\r\n items.push(\r\n \r\n \r\n );\r\n }\r\n },\r\n formChanged() {\r\n if (!this.cc_form_changed_active)\r\n return;\r\n\r\n if (!this.cc_form_changed_button?.prerender_complete)\r\n return;\r\n\r\n if (!this.cc_form_changed_form?.prerender_complete)\r\n return;\r\n\r\n this.cc_form_changed_indicator = true;\r\n },\r\n async performClose(action) {\r\n utils.log(' ** Close Action Received by DialogBasicModal **');\r\n\r\n const dialogresult = action.dialogResult ? utils.evaluateObject(action.dialogResult, action.context) : {};\r\n\r\n //this.cancel();\r\n this.$emit('closeme', {\r\n Success: action.ActionData ? action.ActionData.Success : true,\r\n DialogResult: dialogresult,\r\n AllowClose: true\r\n });\r\n\r\n try {\r\n await utils.success(action);\r\n } catch (e) { }\r\n\r\n // Complete the promise for the executeAction method\r\n action.FinishFunc(true);\r\n },\r\n finishRenderHandler() { },\r\n clickedOutside(e) {\r\n e.stopPropagation();\r\n e.preventDefault();\r\n\r\n if (this.action.ActionData.CloseOnClickOutside != false) {\r\n if ((this.cc_form_changed_active && !this.cc_form_changed_linked) || this.action.ActionData.CloseOnClickOutside) {\r\n this.$emit('closeme', {\r\n Success: this.action.ActionData ? this.action.ActionData.Success : true,\r\n DialogResult: false,\r\n AllowClose: true\r\n });\r\n }\r\n }\r\n }\r\n },\r\n render(h) {\r\n //utils.debug(`DialogBasicModal.render() for ${this.name}`);\r\n\r\n const body = (\r\n this.finishRenderHandler() }}\r\n type=\"VerticalLayout\"\r\n style=\"height: 100%\"\r\n name={this.action.ActionData.Body.Name}\r\n root={this.root}\r\n parentType=\"DialogBasicModal\"\r\n controlData={this.action.ActionData.Body}\r\n scopeitems={this.scopeitems}\r\n controlscope={this.controlscope}\r\n input={this.Input}\r\n >\r\n \r\n );\r\n\r\n const footer = [];\r\n\r\n //if (this.action.ActionData.Body.Controls)\r\n // this.generateItems(h, this.action.ActionData.Body.Controls, body);\r\n\r\n if (this.action.ActionData.Footer && this.action.ActionData.Footer.Controls)\r\n this.generateItems(h, this.action.ActionData.Footer.Controls, footer);\r\n\r\n let header = null;\r\n\r\n if (!this.action.ActionData.HideTitleBar) { \r\n header = (\r\n \r\n \r\n {this.title}\r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n this.$emit('closeme', {\r\n Success: this.action.ActionData ? this.action.ActionData.Success : true,\r\n DialogResult: false,\r\n AllowClose: this.AllowClose\r\n })}>\r\n mdi-close\r\n \r\n \r\n );\r\n }\r\n\r\n //src=\"https://cdn.pixabay.com/photo/2020/07/12/07/47/bee-5396362_1280.jpg\"\r\n //mdi mdi-menu\r\n //mdi mdi-menu-down\r\n let content = (\r\n \r\n {header}\r\n\r\n \r\n {body}\r\n \r\n\r\n \r\n {footer}\r\n \r\n \r\n );\r\n\r\n return content;\r\n }\r\n});\r\n\r\n/*\r\n\r\n
\r\n \r\n {body}\r\n \r\n
\r\n\r\n * */","module.exports = __webpack_public_path__ + \"img/formatpaintercursor.fca25beb.svg\";","\n\n\n\n","class PromiseWrapper {\r\n resolve;\r\n reject;\r\n promise;\r\n\r\n constructor(){\r\n this.resolve = {};\r\n this.reject = {};\r\n this.promise = new Promise((resolve, reject) => {\r\n this.resolve = resolve;\r\n this.reject = reject;\r\n });\r\n }\r\n}\r\n\r\nexport default {\r\n defer() {\r\n return new PromiseWrapper();\r\n },\r\n\r\n all(promises) {\r\n return Promise.all(promises);\r\n }\r\n}\r\n","import { render, staticRenderFns } from \"./menuIntervalSelection.vue?vue&type=template&id=0da3b6e5&scoped=true&\"\nimport script from \"./menuIntervalSelection.vue?vue&type=script&lang=js&\"\nexport * from \"./menuIntervalSelection.vue?vue&type=script&lang=js&\"\nimport style0 from \"./menuIntervalSelection.vue?vue&type=style&index=0&id=0da3b6e5&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 \"0da3b6e5\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-hover',{key:_vm.item.ColId,attrs:{\"open-delay\":\"50\",\"close-delay\":\"50\"},scopedSlots:_vm._u([{key:\"default\",fn:function({ hover }){return [_c('v-list-item',{key:_vm.item.ColId,staticClass:\"ma-0 pa-0 mediumdense mr-4\",staticStyle:{\"max-width\":\"260px\"},attrs:{\"active-class\":\"deep-purple--text text--accent-4\",\"value\":_vm.item.ColId},scopedSlots:_vm._u([{key:\"default\",fn:function({ active }){return [_c('v-icon',{staticClass:\"mr-2\",attrs:{\"dense\":\"\"},domProps:{\"textContent\":_vm._s(_vm.getIcon(_vm.item.SourceType, active))}}),_c('v-list-item-content',{attrs:{\"dense\":\"\"}},[_c('v-list-item-title',{class:_vm.getMetricItemClass(_vm.item),attrs:{\"dense\":\"\"}},[_vm._v(_vm._s(_vm.item.Title))])],1),_c('v-menu',{scopedSlots:_vm._u([{key:\"activator\",fn:function({ on, attrs }){return [_c('v-btn',_vm._g(_vm._b({class:{ 'hidden-element': !hover, 'ma-0': true },attrs:{\"icon\":\"\",\"small\":\"\"},on:{\"click\":function($event){_vm.metricMenu = []}}},'v-btn',attrs,false),on),[_c('v-icon',{attrs:{\"small\":\"\"}},[_vm._v(\"mdi-plus-circle-outline\")])],1)]}}],null,true)},[(_vm.item.MetricAggs.Type == 'function' || _vm.item.MetricAggs.Type == 'filter' || _vm.item.MetricAggs.Type == 'script' || _vm.item.MetricAggs.Type == 'filter_script')?_c('v-list',{attrs:{\"dense\":\"\"}},[_c('v-list-item-group',{attrs:{\"color\":\"primary\"},model:{value:(_vm.metricMenu),callback:function ($$v) {_vm.metricMenu=$$v},expression:\"metricMenu\"}},[_vm._l((_vm.item.MetricAggs.FunctionList),function(func){return [_c('v-list-item',{key:func,attrs:{\"disabled\":_vm.isDisabledMetric(_vm.item, func)},on:{\"click\":function($event){return _vm.addMetric(_vm.item, func)}}},[_c('v-list-item-icon',[_c('v-icon',[_vm._v(_vm._s(_vm.metric_types[func].icon))])],1),_c('v-list-item-title',[_vm._v(_vm._s(_vm.metric_types[func].text))])],1)]})],2)],1):_vm._e(),(_vm.item.MetricAggs.Type == 'bucket_script')?_c('v-list',{attrs:{\"dense\":\"\"}},[_c('v-list-item-group',{attrs:{\"color\":\"primary\"},model:{value:(_vm.metricMenu),callback:function ($$v) {_vm.metricMenu=$$v},expression:\"metricMenu\"}},[_c('v-list-item',{attrs:{\"disabled\":_vm.isDisabledMetric(_vm.item, 'bucket')},on:{\"click\":function($event){return _vm.addMetric(_vm.item, 'bucket')}}},[_c('v-list-item-icon',[_c('v-icon',[_vm._v(_vm._s(_vm.item.MetricAggs.BucketScript.Icon))])],1),_c('v-list-item-title',[_vm._v(_vm._s(_vm.item.MetricAggs.BucketScript.Label))])],1)],1)],1):_vm._e()],1),_c('v-tooltip',{attrs:{\"bottom\":\"\",\"open-delay\":\"350\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on, attrs }){return [_c('v-btn',_vm._g(_vm._b({class:{ 'hidden-element': !hover, 'ma-0': true },attrs:{\"icon\":\"\",\"small\":\"\"},on:{\"click\":function($event){return _vm.showHelp(_vm.item)}}},'v-btn',attrs,false),on),[_c('v-icon',{attrs:{\"small\":\"\"}},[_vm._v(\"mdi-help-circle-outline\")])],1)]}}],null,true)},[_c('span',[_vm._v(_vm._s(_vm.getMetricHelp(_vm.item)))])])]}}],null,true)})]}}])})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Vue from 'vue';\r\nimport token from '@/Services/token';\r\nimport utils from './utils.jsx';\r\nimport localStorageSyncService from '@/Services/localStorageSyncService.js';\r\n\r\nconst carei18nLanguages = [\r\n {\r\n name: \"Afrikaans\",\r\n native: \"Afrikaans\",\r\n key: \"af\",\r\n locales: [\r\n {\r\n name: \"Nambia\",\r\n key: \"af-na\"\r\n },\r\n {\r\n name: \"South Africa\",\r\n key: \"af-za\"\r\n }\r\n ]\r\n },\r\n {\r\n name: \"Albanian\",\r\n native: \"Shqipja\",\r\n key: \"sq\",\r\n locales: [\r\n {\r\n name: \"Albania\",\r\n key: \"sq-al\"\r\n }\r\n ]\r\n },\r\n {\r\n name: \"Arabic\",\r\n native: \"العربية\",\r\n key: \"ar\",\r\n locales: [\r\n {\r\n name: \"Algeria\",\r\n key: \"ar-dz\"\r\n },\r\n {\r\n name: \"Bahrain\",\r\n key: \"ar-bh\"\r\n },\r\n {\r\n name: \"Egypt\",\r\n key: \"ar-eg\"\r\n },\r\n {\r\n name: \"Iraq\",\r\n key: \"ar-iq\"\r\n },\r\n {\r\n name: \"Jordan\",\r\n key: \"ar-jo\"\r\n },\r\n {\r\n name: \"Kuwait\",\r\n key: \"ar-kw\"\r\n },\r\n {\r\n name: \"Lebanon\",\r\n key: \"ar-lb\"\r\n },\r\n {\r\n name: \"Libya\",\r\n key: \"ar-ly\"\r\n },\r\n {\r\n name: \"Morocco\",\r\n key: \"ar-ma\"\r\n },\r\n {\r\n name: \"Oman\",\r\n key: \"ar-om\"\r\n },\r\n {\r\n name: \"Qatar\",\r\n key: \"ar-qa\"\r\n },\r\n {\r\n name: \"Saudi Arabia\",\r\n key: \"ar-sa\"\r\n },\r\n {\r\n name: \"Sudan\",\r\n key: \"ar-sd\"\r\n },\r\n {\r\n name: \"Syria\",\r\n key: \"ar-sy\"\r\n },\r\n {\r\n name: \"Tunisia\",\r\n key: \"ar-tn\"\r\n },\r\n {\r\n name: \"United Arab Emirates\",\r\n key: \"ar-ae\"\r\n },\r\n {\r\n name: \"Yemen\",\r\n key: \"ar-ye\"\r\n }\r\n ]\r\n },\r\n {\r\n name: \"Bangla\",\r\n native: \"বাংলা\",\r\n key: \"bn\",\r\n locales: [\r\n {\r\n name: \"Bangladesh\",\r\n key: \"bn-bd\"\r\n },\r\n {\r\n name: \"India\",\r\n key: \"bn-in\"\r\n }\r\n ]\r\n },\r\n {\r\n name: \"Basque\",\r\n native: \"Basque\",\r\n key: \"eu\",\r\n locales: [\r\n {\r\n name: \"Spain\",\r\n key: \"eu-es\"\r\n }\r\n ]\r\n },\r\n {\r\n name: \"Bulgarian\",\r\n native: \"български\",\r\n key: \"bg\",\r\n locales: [\r\n {\r\n name: \"Bulgaria\",\r\n key: \"bg-bg\"\r\n }\r\n ]\r\n },\r\n {\r\n name: \"Cantonese\",\r\n native: \"粤语\",\r\n key: \"yue\",\r\n locales: [\r\n {\r\n name: \"China\",\r\n key: \"yue-cn\"\r\n },\r\n {\r\n name: \"Hong Kong\",\r\n key: \"yue-hk\"\r\n }\r\n ]\r\n },\r\n {\r\n name: \"Catalan\",\r\n native: \"català\",\r\n key: \"ca\",\r\n locales: [\r\n {\r\n name: \"Spain\",\r\n key: \"ca-es\"\r\n },\r\n {\r\n name: \"France\",\r\n key: \"ca-fr\"\r\n },\r\n {\r\n name: \"Italy\",\r\n key: \"ca-it\"\r\n }\r\n ]\r\n },\r\n {\r\n name: \"Chinese\",\r\n native: \"中文\",\r\n key: \"zh\",\r\n locales: [\r\n {\r\n name: \"China\",\r\n key: \"zh-cn\"\r\n },\r\n {\r\n name: \"Hong Kong\",\r\n key: \"zh-hk\"\r\n },\r\n {\r\n name: \"Taiwan\",\r\n key: \"zh-tw\"\r\n }\r\n ]\r\n },\r\n {\r\n name: \"Croatian\",\r\n native: \"hrvatski\",\r\n key: \"hr\",\r\n locales: [\r\n {\r\n name: \"Croatia\",\r\n key: \"hr-hr\"\r\n },\r\n {\r\n name: \"Bosnia and Herzegovina\",\r\n key: \"hr-ba\"\r\n }\r\n ]\r\n },\r\n {\r\n name: \"Czech\",\r\n native: \"čeština\",\r\n key: \"cs\",\r\n locales: [\r\n {\r\n name: \"Czechia\",\r\n key: \"cs-cz\"\r\n }\r\n ]\r\n },\r\n {\r\n name: \"Danish\",\r\n native: \"Dansk\",\r\n key: \"da\",\r\n locales: [\r\n {\r\n name: \"Denmark\",\r\n key: \"da-dk\"\r\n },\r\n {\r\n name: \"Greenland\",\r\n key: \"da-gl\"\r\n }\r\n ]\r\n },\r\n {\r\n name: \"Dutch\",\r\n native: \"Nederlands\",\r\n key: \"nl\",\r\n locales: [\r\n {\r\n name: \"Belgium\",\r\n key: \"nl-be\"\r\n },\r\n {\r\n name: \"Netherlands\",\r\n key: \"nl-nl\"\r\n }\r\n ]\r\n },\r\n {\r\n name: \"English\",\r\n key: \"en\",\r\n locales: [\r\n {\r\n name: \"Australia\",\r\n key: \"en-au\"\r\n },\r\n {\r\n name: \"Canada\",\r\n key: \"en-ca\"\r\n },\r\n {\r\n name: \"India\",\r\n key: \"en-in\"\r\n },\r\n {\r\n name: \"Ireland\",\r\n key: \"en-ie\"\r\n },\r\n {\r\n name: \"Malta\",\r\n key: \"en-mt\"\r\n },\r\n {\r\n name: \"New Zealand\",\r\n key: \"en-nz\"\r\n },\r\n {\r\n name: \"Philippines\",\r\n key: \"en-ph\"\r\n },\r\n {\r\n name: \"Singapore\",\r\n key: \"en-sg\"\r\n },\r\n {\r\n name: \"South Africa\",\r\n key: \"en-za\"\r\n },\r\n {\r\n name: \"United Kingdom\",\r\n key: \"en-gb\"\r\n },\r\n {\r\n name: \"United States\",\r\n key: \"en-us\"\r\n }\r\n ],\r\n },\r\n {\r\n name: \"Estonian\",\r\n native: \"eesti\",\r\n key: \"et\",\r\n locales: [\r\n {\r\n name: \"Estonia\",\r\n key: \"et-ee\"\r\n }\r\n ]\r\n },\r\n {\r\n name: \"Filipino\",\r\n native: \"Filipino\",\r\n key: \"fil\",\r\n locales: [\r\n {\r\n name: \"Philippines\",\r\n key: \"fil-ph\"\r\n }\r\n ]\r\n },\r\n {\r\n name: \"Finnish\",\r\n native: \"suomi\",\r\n key: \"fi\",\r\n locales: [\r\n {\r\n name: \"Finland\",\r\n key: \"fi-fi\"\r\n }\r\n ]\r\n },\r\n {\r\n name: \"French\",\r\n native: \"Français\",\r\n key: \"fr\",\r\n locales: [\r\n {\r\n name: \"Belgium\",\r\n key: \"fr-be\"\r\n },\r\n {\r\n name: \"Canada\",\r\n key: \"fr-ca\"\r\n },\r\n {\r\n name: \"France\",\r\n key: \"fr-fr\"\r\n },\r\n {\r\n name: \"Luxembourg\",\r\n key: \"fr-lu\"\r\n },\r\n {\r\n name: \"Switzerland\",\r\n key: \"fr-ch\"\r\n }\r\n ]\r\n },\r\n {\r\n name: \"German\",\r\n native: \"Deutsch\",\r\n key: \"de\",\r\n locales: [\r\n {\r\n name: \"Austria\",\r\n key: \"de-at\"\r\n },\r\n {\r\n name: \"Belgium\",\r\n key: \"de-be\"\r\n },\r\n {\r\n name: \"Germany\",\r\n key: \"de-de\"\r\n },\r\n {\r\n name: \"Liechtenstein\",\r\n key: \"de-li\"\r\n },\r\n {\r\n name: \"Luxembourg\",\r\n key: \"de-lu\"\r\n },\r\n {\r\n name: \"Switzerland\",\r\n key: \"de-ch\"\r\n }\r\n\r\n ]\r\n },\r\n {\r\n name: \"Galician\",\r\n native: \"Galician\",\r\n key: \"gl\",\r\n locales: [\r\n {\r\n name: \"Spain\",\r\n key: \"gl-es\"\r\n }\r\n ]\r\n },\r\n {\r\n name: \"Georgian\",\r\n native: \"ქართული ენა\",\r\n key: \"ka\",\r\n locales: [\r\n {\r\n name: \"Georgia\",\r\n key: \"ka-ge\"\r\n }\r\n ]\r\n },\r\n {\r\n name: \"Greek\",\r\n native: \"Ελληνικά\",\r\n key: \"el\",\r\n locales: [\r\n {\r\n name: \"Cyprus\",\r\n key: \"el-cy\"\r\n },\r\n {\r\n name: \"Greece\",\r\n key: \"el-gr\"\r\n }\r\n ]\r\n },\r\n {\r\n name: \"Gujarati\",\r\n native: \"ગુજરાતી\",\r\n key: \"gu\",\r\n locales: [\r\n {\r\n name: \"India\",\r\n key: \"gu-in\"\r\n }\r\n ]\r\n },\r\n {\r\n name: \"Hebrew\",\r\n native: \"עברית\",\r\n key: \"he\",\r\n locales: [\r\n {\r\n name: \"Israel\",\r\n key: \"he-il\"\r\n }\r\n ]\r\n },\r\n {\r\n name: \"Hindi\",\r\n native: \"हिन्दी\",\r\n key: \"hi\",\r\n locales: [\r\n {\r\n name: \"India\",\r\n key: \"hi-in\"\r\n }\r\n ]\r\n },\r\n {\r\n name: \"Hungarian\",\r\n native: \"magyar\",\r\n key: \"hu\",\r\n locales: [\r\n {\r\n name: \"Hungary\",\r\n key: \"hu-hu\"\r\n }\r\n ]\r\n },\r\n {\r\n name: \"Icelandic\",\r\n native: \"íslenska\",\r\n key: \"is\",\r\n locales: [\r\n {\r\n name: \"Iceland\",\r\n key: \"is-is\"\r\n }\r\n ]\r\n },\r\n {\r\n name: \"Indonesian\",\r\n native: \"Indonesia\",\r\n key: \"id\",\r\n locales: [\r\n {\r\n name: \"Indonesia\",\r\n key: \"id-id\"\r\n }\r\n ]\r\n },\r\n {\r\n name: \"Italian\",\r\n native: \"Italiano\",\r\n key: \"it\",\r\n locales: [\r\n {\r\n name: \"Italy\",\r\n key: \"it-it\"\r\n },\r\n {\r\n name: \"Switzerland\",\r\n key: \"it-ch\"\r\n }\r\n ]\r\n },\r\n {\r\n name: \"Japanese\",\r\n native: \"日本語\",\r\n key: \"ja\",\r\n locales: [\r\n {\r\n name: \"Japan\",\r\n key: \"ja-jp\"\r\n }\r\n ]\r\n },\r\n {\r\n name: \"Kannada\",\r\n native: \"ಕನ್ನಡ\",\r\n key: \"kn\",\r\n locales: [\r\n {\r\n name: \"India\",\r\n key: \"kn-in\"\r\n }\r\n ]\r\n },\r\n {\r\n name: \"Korean\",\r\n native: \"한국어\",\r\n key: \"ko\",\r\n locales: [\r\n {\r\n name: \"North Korea\",\r\n key: \"ko-kp\"\r\n },\r\n {\r\n name: \"South Korea\",\r\n key: \"ko-kr\"\r\n }\r\n ]\r\n },\r\n {\r\n name: \"Latvian\",\r\n native: \"latviešu\",\r\n key: \"lv\",\r\n locales: [\r\n {\r\n name: \"Latvia\",\r\n key: \"lv-lv\"\r\n }\r\n ]\r\n },\r\n {\r\n name: \"Lithuanian\",\r\n native: \"lietuvių\",\r\n key: \"lt\",\r\n locales: [\r\n {\r\n name: \"Lithuania\",\r\n key: \"lt-lt\"\r\n }\r\n ]\r\n },\r\n {\r\n name: \"Macedonian\",\r\n native: \"македонски\",\r\n key: \"mk\",\r\n locales: [\r\n {\r\n name: \"Macedonia\",\r\n key: \"mk-mk\"\r\n }\r\n ]\r\n },\r\n {\r\n name: \"Malay\",\r\n native: \"Melayu\",\r\n key: \"ms\",\r\n locales: [\r\n {\r\n name: \"Brunei\",\r\n key: \"ms-bn\"\r\n },\r\n {\r\n name: \"Malaysia\",\r\n key: \"ms-my\"\r\n },\r\n {\r\n name: \"Singapore\",\r\n key: \"ms-sg\"\r\n }\r\n ]\r\n },\r\n {\r\n name: \"Malayalam\",\r\n native: \"മലയാളം\",\r\n key: \"ml\",\r\n locales: [\r\n {\r\n name: \"India\",\r\n key: \"ml-in\"\r\n }\r\n ]\r\n },\r\n {\r\n name: \"Maltese\",\r\n native: \"Malti\",\r\n key: \"mt\",\r\n locales: [\r\n {\r\n name: \"Malta\",\r\n key: \"mt-mt\"\r\n }\r\n ]\r\n },\r\n {\r\n name: \"Mandarin\",\r\n native: \"官话\",\r\n key: \"cmn\",\r\n locales: [\r\n {\r\n name: \"China\",\r\n key: \"cmn-cn\"\r\n },\r\n {\r\n name: \"Taiwan\",\r\n key: \"cmn-tw\"\r\n }\r\n ]\r\n },\r\n {\r\n name: \"Marathi\",\r\n native: \"Marathi\",\r\n key: \"mr\",\r\n locales: [\r\n {\r\n name: \"India\",\r\n key: \"mr-in\"\r\n }\r\n ]\r\n },\r\n {\r\n name: \"Mongolian\",\r\n native: \"монгол хэл\",\r\n key: \"mn\",\r\n locales: [\r\n {\r\n name: \"Mongolia\",\r\n key: \"mn-mn\"\r\n }\r\n ]\r\n },\r\n {\r\n name: \"Burmese\",\r\n native: \"မြန်မာစကား\",\r\n key: \"my\",\r\n locales: [\r\n {\r\n name: \"Myanmar\",\r\n key: \"my-mm\"\r\n }\r\n ]\r\n },\r\n {\r\n name: \"Nepali\",\r\n native: \"नेपाली\",\r\n key: \"ne\",\r\n locales: [\r\n {\r\n name: \"Nepal\",\r\n key: \"ne-np\"\r\n }\r\n ]\r\n },\r\n {\r\n name: \"Norwegian Bokmål\",\r\n native: \"Bokmål\",\r\n key: \"nb\",\r\n locales: [\r\n {\r\n name: \"Norway\",\r\n key: \"nb-no\"\r\n }\r\n ]\r\n },\r\n {\r\n name: \"Norwegian\",\r\n native: \"norsk\",\r\n key: \"no\",\r\n locales: [\r\n {\r\n name: \"Norway\",\r\n key: \"no-no\"\r\n }\r\n ]\r\n },\r\n {\r\n name: \"Polish\",\r\n native: \"polski\",\r\n key: \"pl\",\r\n locales: [\r\n {\r\n name: \"Poland\",\r\n key: \"pl-pl\"\r\n }\r\n ]\r\n },\r\n {\r\n name: \"Portuguese\",\r\n native: \"Português\",\r\n key: \"pt\",\r\n locales: [\r\n {\r\n name: \"Brazil\",\r\n key: \"pt-br\"\r\n },\r\n {\r\n name: \"Portugal\",\r\n key: \"pt-pt\"\r\n }\r\n ]\r\n },\r\n {\r\n name: \"Romanian\",\r\n native: \"română\",\r\n key: \"ro\",\r\n locales: [\r\n {\r\n name: \"Moldova\",\r\n key: \"ro-md\"\r\n },\r\n {\r\n name: \"Romania\",\r\n key: \"ro-ro\"\r\n }\r\n ]\r\n },\r\n {\r\n name: \"Russian\",\r\n native: \"русский\",\r\n key: \"ru\",\r\n locales: [\r\n {\r\n name: \"Belaru\",\r\n key: \"ru-by\"\r\n },\r\n {\r\n name: \"Kyrgyzstan\",\r\n key: \"ru-kg\"\r\n },\r\n {\r\n name: \"Kazakhstan\",\r\n key: \"ru-kz\"\r\n },\r\n {\r\n name: \"Moldova\",\r\n key: \"ru-md\"\r\n },\r\n {\r\n name: \"Russia\",\r\n key: \"ru-ru\"\r\n },\r\n {\r\n name: \"Ukraine\",\r\n key: \"ru-ua\"\r\n }\r\n ]\r\n },\r\n {\r\n name: \"Serbian\",\r\n native: \"српски\",\r\n key: \"sr\",\r\n locales: [\r\n {\r\n name: \"Bosnia & Herzegovina\",\r\n key: \"sr-cyrl-ba\"\r\n },\r\n {\r\n name: \"Montenegro\",\r\n key: \"sr-cyrl-me\"\r\n },\r\n {\r\n name: \"Serbia\",\r\n key: \"sr-cyrl-rs\"\r\n },\r\n {\r\n name: \"Serbia\",\r\n key: \"sr-rs\"\r\n },\r\n {\r\n name: \"Kosovo\",\r\n key: \"sr-cyrl-xk\"\r\n }\r\n ]\r\n },\r\n {\r\n name: \"Slovak\",\r\n native: \"slovenčina\",\r\n key: \"sk\",\r\n locales: [\r\n {\r\n name: \"Slovakia\",\r\n key: \"sk-sk\"\r\n }\r\n ]\r\n },\r\n {\r\n name: \"Slovenian\",\r\n native: \"slovenščina\",\r\n key: \"sl\",\r\n locales: [\r\n {\r\n name: \"Slovenia\",\r\n key: \"sl-si\"\r\n }\r\n ]\r\n },\r\n {\r\n name: \"Spanish\",\r\n native: \"Español\",\r\n key: \"es\",\r\n locales: [\r\n {\r\n name: \"Argentina\",\r\n key: \"es-ar\"\r\n },\r\n {\r\n name: \"Bolivia\",\r\n key: \"es-bo\"\r\n },\r\n {\r\n name: \"Chile\",\r\n key: \"es-cl\"\r\n },\r\n {\r\n name: \"Colombia\",\r\n key: \"es-co\"\r\n },\r\n {\r\n name: \"Costa Rica\",\r\n key: \"es-cr\"\r\n },\r\n {\r\n name: \"Dominican Republic\",\r\n key: \"es-do\"\r\n },\r\n {\r\n name: \"Ecuador\",\r\n key: \"es-ec\"\r\n },\r\n {\r\n name: \"El Salvador\",\r\n key: \"es-sv\"\r\n },\r\n {\r\n name: \"Guatemala\",\r\n key: \"es-gt\"\r\n },\r\n {\r\n name: \"Honduras\",\r\n key: \"es-hn\"\r\n },\r\n {\r\n name: \"Mexico\",\r\n key: \"es-mx\"\r\n },\r\n {\r\n name: \"Nicaragua\",\r\n key: \"es-ni\"\r\n },\r\n {\r\n name: \"Panama\",\r\n key: \"es-pa\"\r\n },\r\n {\r\n name: \"Paraguay\",\r\n key: \"es-py\"\r\n },\r\n {\r\n name: \"Peru\",\r\n key: \"es-pe\"\r\n },\r\n {\r\n name: \"Puerto Rico\",\r\n key: \"es-pr\"\r\n },\r\n {\r\n name: \"Spain\",\r\n key: \"es-es\"\r\n },\r\n {\r\n name: \"United States\",\r\n key: \"es-us\"\r\n },\r\n {\r\n name: \"Uruguay\",\r\n key: \"es-uy\"\r\n },\r\n {\r\n name: \"Venezuela\",\r\n key: \"es-ve\"\r\n }\r\n ]\r\n },\r\n {\r\n name: \"Swedish\",\r\n native: \"Svenska\",\r\n key: \"sv\",\r\n locales: [\r\n {\r\n name: \"Sweden\",\r\n key: \"sv-se\"\r\n }\r\n ]\r\n },\r\n {\r\n name: \"Tamil\",\r\n native: \"தமிழ்\",\r\n key: \"ta\",\r\n locales: [\r\n {\r\n name: \"India\",\r\n key: \"ta-in\"\r\n },\r\n {\r\n name: \"Sri Lanka\",\r\n key: \"ta-lk\"\r\n },\r\n {\r\n name: \"Malaysia\",\r\n key: \"ta-my\"\r\n },\r\n {\r\n name: \"Singapore\",\r\n key: \"ta-sg\"\r\n }\r\n ]\r\n },\r\n {\r\n name: \"Telugu\",\r\n native: \"తెలుగు\",\r\n key: \"te\",\r\n locales: [\r\n {\r\n name: \"India\",\r\n key: \"te-in\"\r\n }\r\n ]\r\n },\r\n {\r\n name: \"Thai\",\r\n native: \"ไทย\",\r\n key: \"th\",\r\n locales: [\r\n {\r\n name: \"Thailand\",\r\n key: \"th-th\"\r\n }\r\n ]\r\n },\r\n {\r\n name: \"Turkish\",\r\n native: \"Türkçe\",\r\n key: \"tr\",\r\n locales: [\r\n {\r\n name: \"Cyprus\",\r\n key: \"tr-cy\"\r\n },\r\n {\r\n name: \"Turkey\",\r\n key: \"tr-tr\"\r\n }\r\n ]\r\n },\r\n {\r\n name: \"Ukrainian\",\r\n native: \"українська\",\r\n key: \"uk\",\r\n locales: [\r\n {\r\n name: \"Ukraine\",\r\n key: \"uk-ua\"\r\n }\r\n ]\r\n },\r\n {\r\n name: \"Urdu\",\r\n native: \"اردو\",\r\n key: \"ur\",\r\n locales: [\r\n {\r\n name: \"India\",\r\n key: \"ur-in\"\r\n },\r\n {\r\n name: \"Pakistan\",\r\n key: \"ur-pk\"\r\n }\r\n ]\r\n },\r\n {\r\n name: \"Vietnamese\",\r\n native: \"Tiếng Việt\",\r\n key: \"vi\",\r\n locales: [\r\n {\r\n name: \"Vietnam\",\r\n key: \"vi-vn\"\r\n }\r\n ]\r\n },\r\n {\r\n name: \"Wu\",\r\n native: \"吴语\",\r\n key: \"wuu\",\r\n locales: [\r\n {\r\n name: \"China\",\r\n key: \"wuu-cn\"\r\n }\r\n ]\r\n },\r\n {\r\n name: \"Zulu\",\r\n native: \"IsiZulu\",\r\n key: \"zu\",\r\n locales: [\r\n {\r\n name: \"South Africa\",\r\n key: \"zu-za\"\r\n }\r\n ]\r\n }\r\n];\r\n\r\nconst appSettings = {\r\n IsVuePortal: true,\r\n get HSMDebugging() {\r\n return utils.hsmlist.hsms.filter(h => h.hsm.visible).map(h => h.name);\r\n },\r\n set HSMDebugging(value) {\r\n utils.hsmlist.setVisibility(value);\r\n },\r\n get ShowNotImplemented() {\r\n return (this.NoContextLocalStorage(\"careAppSettings.ShowNotImplemented\") == 'true');\r\n },\r\n set ShowNotImplemented(value) {\r\n this.NoContextLocalStorage(\"careAppSettings.ShowNotImplemented\", value);\r\n },\r\n DefaultDebug: false, // set by environment and overridden by local storage setting\r\n get ShowUIEvents() {\r\n // by default only error messages are shown in the console log\r\n return (this.NoContextLocalStorage(\"careAppSettings.ShowUIEvents\") == 'true');\r\n },\r\n set ShowUIEvents(value) {\r\n this.NoContextLocalStorage(\"careAppSettings.ShowUIEvents\", value);\r\n },\r\n get DisableApiWebSockets() {\r\n // by default only error messages are shown in the console log\r\n return (this.NoContextLocalStorage(\"careAppSettings.DisableApiWebSockets\") == 'true');\r\n },\r\n set DisableApiWebSockets(value) {\r\n this.NoContextLocalStorage(\"careAppSettings.DisableApiWebSockets\", value);\r\n },\r\n get DisableWebRTCWebSockets() {\r\n // by default only error messages are shown in the console log\r\n return (this.NoContextLocalStorage(\"careAppSettings.DisableWebRTCWebSockets\") == 'true');\r\n },\r\n set DisableWebRTCWebSockets(value) {\r\n this.NoContextLocalStorage(\"careAppSettings.DisableWebRTCWebSockets\", value);\r\n },\r\n\r\n get ShowAllLogMessages() {\r\n // by default only error messages are shown in the console log\r\n return (this.NoContextLocalStorage(\"careAppSettings.ShowAllLogMessages\") == 'true');\r\n },\r\n set ShowAllLogMessages(value) {\r\n this.NoContextLocalStorage(\"careAppSettings.ShowAllLogMessages\", value);\r\n },\r\n get DEBUG() {\r\n var debug = this.NoContextLocalStorage(\"careAppSettings.DEBUG\");\r\n return !debug ? this.DefaultDebug : (debug == 'true');\r\n },\r\n set DEBUG(value) {\r\n this.NoContextLocalStorage(\"careAppSettings.DEBUG\", value);\r\n },\r\n get SHOWBASE() {\r\n var debug = this.NoContextLocalStorage(\"careAppSettings.SHOWBASE\");\r\n return (debug == 'true');\r\n },\r\n set SHOWBASE(value) {\r\n this.NoContextLocalStorage(\"careAppSettings.SHOWBASE\", value);\r\n },\r\n get DebugTranslationPrefixSetting() {\r\n return this.NoContextLocalStorage(\"careAppSettings.DebugTranslationPrefix\") === \"true\";\r\n },\r\n get DebugTranslationPrefix() {\r\n var currentSetting = this.NoContextLocalStorage(\"careAppSettings.DebugTranslationPrefix\");\r\n return (currentSetting === 'true');\r\n },\r\n set DebugTranslationPrefix(value) {\r\n this.NoContextLocalStorage(\"careAppSettings.DebugTranslationPrefix\", value);\r\n },\r\n get DisableGuidedAssistants() {\r\n var disableGuidedAssistant = this.NoContextLocalStorage(\"careAppSettings.DisableGuidedAssistants\");\r\n return (disableGuidedAssistant === 'true');\r\n },\r\n set DisableGuidedAssistants(value) {\r\n this.NoContextLocalStorage(\"careAppSettings.DisableGuidedAssistants\", value);\r\n },\r\n DEBUG_CONSOLE_LINES: 512,\r\n WhiteLabel: {\r\n CompanyName: \"\",\r\n DomainName: \"\",\r\n FavIconString: \"\",\r\n FavIconType: \"\",\r\n CompanyLogoString: \"\",\r\n CompanyLogoType: \"\",\r\n LoginImageString: \"\",\r\n LoginImageType: \"\",\r\n LoginDisplayType: \"\",\r\n LoginCustomHtml: \"\",\r\n LoginUrl: \"\",\r\n ApiUrl: \"\",\r\n ApiUrlBandTemplate: \"\",\r\n WssSuffix: \"\",\r\n GoogleMapApiKey: \"\",\r\n FacebookAppId: \"\",\r\n AppleSigninId: \"\",\r\n GoogleClientId: \"\",\r\n ACDDirectId: \"\",\r\n IBSendGridEmailForwardingDomain: \"\",\r\n SAMLProviders: []\r\n },\r\n get ApiBase() {\r\n return this.WhiteLabel.ApiUrl;\r\n },\r\n get ApiURLBandTemplate() {\r\n return this.WhiteLabel.ApiUrlBandTemplate;\r\n },\r\n get FacebookAppId() {\r\n return this.WhiteLabel.FacebookAppId;\r\n },\r\n get AppleSigninId() {\r\n return this.WhiteLabel.AppleSigninId;\r\n },\r\n get GoogleClientId() {\r\n return this.WhiteLabel.GoogleClientId;\r\n },\r\n get ACDDirectId() {\r\n return this.WhiteLabel.ACDDirectId;\r\n },\r\n get GoogleMapsApiKey() {\r\n return this.WhiteLabel.GoogleMapApiKey;\r\n },\r\n LanguageKey: \"en\",\r\n LocaleKey: \"en\",\r\n Currency: \"USD\",\r\n WindowLocation: window.location,\r\n AvailableLanguages: carei18nLanguages,\r\n Environment: \"\", // \"\" = Production || \"Development\", \"Staging\", \"Local\"\r\n PayeezyXLogin: \"\",\r\n PayeezyUrl: \"\",\r\n get ReportingTimezone() {\r\n if (this.careTokenService)\r\n return this.careTokenService.CustomerTimezone();\r\n else\r\n return '';\r\n },\r\n get BandID() {\r\n if (this.careTokenService)\r\n return this.careTokenService.BandID();\r\n else\r\n return '';\r\n },\r\n get AccessToken() {\r\n if (this.careTokenService)\r\n return this.careTokenService.AccessToken();\r\n else\r\n return '';\r\n },\r\n get UserEventKey() {\r\n if (this.careTokenService)\r\n return this.careTokenService.GetUserEventKey();\r\n else\r\n return '';\r\n },\r\n get CustomerEventKey() {\r\n if (this.careTokenService)\r\n return this.careTokenService.GetCustomerEventKey();\r\n else\r\n return '';\r\n },\r\n get PublicEventKey() {\r\n return 'GeneralEvent_Public';\r\n },\r\n get ChannelName() {\r\n if (this.careTokenService)\r\n return this.careTokenService.GetChannelName();\r\n else\r\n return '';\r\n },\r\n UpdateToken: function (info) {\r\n if (this.careTokenService)\r\n return this.careTokenService.UpdateToken(info);\r\n },\r\n LocalStorage: function (key, value) {\r\n var context = \"\";\r\n\r\n if (this.careTokenService)\r\n context = this.careTokenService.UserID() + '_' + this.careTokenService.CustomerID();\r\n\r\n let prefixedKey = 'user.' + context + '.' + key;\r\n\r\n if (value === undefined)\r\n return localStorage.getItem(prefixedKey);\r\n // When we write new keys, we want to make sure those keys are sent down to our local storage sync service.\r\n localStorageSyncService.dispatchLocalStorageUpdate({ [prefixedKey]: value });\r\n if (value == null)\r\n localStorage.removeItem(prefixedKey);\r\n else\r\n localStorage.setItem(prefixedKey, value);\r\n },\r\n UserLocalStorage: function (key, value) {\r\n var context = \"\";\r\n\r\n if (this.careTokenService)\r\n context = this.careTokenService.UserID();\r\n\r\n let prefixedKey = 'user.' + context + '.' + key;\r\n\r\n if (value === undefined)\r\n return localStorage.getItem(prefixedKey);\r\n \r\n // When we write new keys, we want to make sure those keys are sent down to our local storage sync service.\r\n localStorageSyncService.dispatchLocalStorageUpdate({ [prefixedKey]: value });\r\n \r\n if (value == null)\r\n localStorage.removeItem(prefixedKey);\r\n else\r\n localStorage.setItem(prefixedKey, value);\r\n },\r\n NoContextLocalStorage: function (key, value) {\r\n let prefixedKey = 'user.' + key;\r\n\r\n if (value === undefined)\r\n return localStorage.getItem(prefixedKey);\r\n \r\n // When we write new keys, we want to make sure those keys are sent down to our local storage sync service.\r\n localStorageSyncService.dispatchLocalStorageUpdate({ [prefixedKey]: value });\r\n\r\n if (value == null)\r\n localStorage.removeItem(prefixedKey);\r\n else\r\n localStorage.setItem(prefixedKey, value);\r\n },\r\n GlobalLocalStorage: function (key, value) {\r\n\r\n if (value === undefined)\r\n return localStorage.getItem(key);\r\n\r\n // When we write new keys, we want to make sure those keys are sent down to our local storage sync service.\r\n localStorageSyncService.dispatchLocalStorageUpdate({ [key]: value });\r\n\r\n if (value == null)\r\n localStorage.removeItem(key);\r\n else\r\n localStorage.setItem(key, value);\r\n },\r\n\r\n UnfinishedApis: function () {\r\n if (this.careApiRequestMonitorService && this.careService) {\r\n var apisWaiting = this.careApiRequestMonitorService.GetWaitingAPIs();\r\n var count = careHelpfulFunctions.length(apisWaiting);\r\n\r\n console.log(\"APIs Waiting: \" + count);\r\n if (count)\r\n console.log(JSON.stringify(apisWaiting));\r\n }\r\n },\r\n angular$qService: null,\r\n $rootScope: null,\r\n careApiService: null,\r\n care$qService: null,\r\n careCookieService: null,\r\n careWebSocketService: null,\r\n careTokenService: null,\r\n careService: null,\r\n careActionService: null,\r\n careCenterBase: null,\r\n careApiRequestMonitorService: null,\r\n plantUmlService: null,\r\n careControlHelperService: null,\r\n ServerTimeOffset: null, // difference in server time to client time\r\n ClientTimeSnapshot: null, // client time used to calculate ServerTimeOffset\r\n ServerTimeSnapshot: null, // server time used to calculate ServerTimeOffset\r\n InstanceGuid: null, // Unique guid generated by server. Used to initialize token InstanceGuid if not already existing\r\n SystemId: null, // Used to load default language translations \r\n DebugInfo: {\r\n ConsoleLog: [],\r\n DebugActionLog: []\r\n },\r\n TransportSettings: {\r\n Client: {\r\n SignalRWebSockets: true,\r\n WebRTCWebSockets: true\r\n }\r\n },\r\n $timeout: function (callback, waitms) {\r\n if (!waitms)\r\n //Vue.nextTick(callback);\r\n window.setTimeout(callback, 100); // Set to run after 100ms rather than on nextTick -- specifically to handle the phone number assignment page\r\n else\r\n window.setTimeout(callback, waitms);\r\n },\r\n\r\n OpenDocumentForDebug: function (docInfo, parentControlModel, scope) {\r\n var actions = [\r\n {\r\n \"$typeSchema\": \"/schema/public/Platform.Schema.UIActions.v1/UIAction_Reference\",\r\n \"PrimitiveAction\": true,\r\n \"ActionType\": \"ReferenceUserAction\",\r\n \"RunAsync\": false,\r\n \"ActionData\": {\r\n \"UserAction\": {\r\n \"CacheAction\": true,\r\n \"ActionData\": {\r\n \"docInfo\": docInfo\r\n },\r\n \"ActionURL\": \"public/Authoring/Ctrl-RightClick\"\r\n },\r\n \"Debug\": {\r\n \"BreakPoint\": false\r\n }\r\n }\r\n }\r\n ];\r\n\r\n this.careActionService.actionBroadcaster({\r\n actions: actions,\r\n scope: scope || this.careService.$rootScope,\r\n parent: parentControlModel,\r\n });\r\n }\r\n};\r\n\r\n// Referencable from $controlModel, provides place for users to store global variables\r\nconst careGlobalVars = {};\r\n\r\nconst careHSMs = [];\r\n\r\nconst globalTranslationList = {};\r\n\r\nconst careTokenSettings = {\r\n info: undefined\r\n};\r\n\r\nconst careRequestParams = {};\r\n\r\nconst careInstanceSettings = {\r\n //We don't need a UUID here; we just need something that will be unique among app instantiations. Current time in milliseconds will do nicely.\r\n //However, if we ever do decide that we want to track instances uniquily across tenants, we'll need to revisit this and change it to a UUID.\r\n id: new Date().getTime(),\r\n\r\n instantiationTimeMillis: new Date().getTime(),\r\n userAgent: navigator.userAgent,\r\n amqpChannelName: null //Set by ServerEventCoordinatorService when registering a channel with RabbitMQ\r\n};\r\n\r\nconst careChildWindowCommunication = {\r\n careDebugServiceChildWindow: {}\r\n};\r\n\r\nif (window.sessionStorage && window.sessionStorage.getItem(\"ChildWindowClearSessionStorage\") == \"true\"){\r\n sessionStorage.clear();\r\n}\r\n\r\nexport {\r\n carei18nLanguages,\r\n appSettings,\r\n careGlobalVars,\r\n careHSMs,\r\n globalTranslationList,\r\n careTokenSettings,\r\n careRequestParams,\r\n careInstanceSettings,\r\n careChildWindowCommunication,\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/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./filter_directionColumn.vue?vue&type=script&lang=js&\"; 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/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./filter_directionColumn.vue?vue&type=script&lang=js&\"","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-list-item-group',{attrs:{\"multiple\":\"\"},model:{value:(_vm.selected_items),callback:function ($$v) {_vm.selected_items=$$v},expression:\"selected_items\"}},[_c('v-list-item',{staticClass:\"verydense\",attrs:{\"value\":\"inbound\"}},[_c('v-list-item-action',[_c('v-icon',[_vm._v(\" \"+_vm._s(_vm.selected_items.some(a => a === 'inbound') ? 'mdi-checkbox-marked' : 'mdi-checkbox-blank-outline')+\" \")])],1),_c('v-list-item-content',[_vm._v(\" Inbound \")])],1),_c('v-list-item',{staticClass:\"verydense\",attrs:{\"value\":\"outbound\"}},[_c('v-list-item-action',[_c('v-icon',[_vm._v(\" \"+_vm._s(_vm.selected_items.some(a => a === 'outbound') ? 'mdi-checkbox-marked' : 'mdi-checkbox-blank-outline')+\" \")])],1),_c('v-list-item-content',[_vm._v(\" Outbound \")])],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","module.exports = __webpack_public_path__ + \"img/BrokenImage.c2497f9a.svg\";","import { render, staticRenderFns } from \"./filter_booleanColumn.vue?vue&type=template&id=49ae20ea&scoped=true&\"\nimport script from \"./filter_booleanColumn.vue?vue&type=script&lang=js&\"\nexport * from \"./filter_booleanColumn.vue?vue&type=script&lang=js&\"\nimport style0 from \"./filter_booleanColumn.vue?vue&type=style&index=0&id=49ae20ea&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 \"49ae20ea\",\n null\n \n)\n\nexport default component.exports","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DateRangePicker.vue?vue&type=style&index=0&id=ceac9b5c&prod&scoped=true&lang=css&\"","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./metricItem.vue?vue&type=style&index=0&id=6b4c7fca&prod&scoped=true&lang=css&\"","import { render, staticRenderFns } from \"./filter_directionColumn.vue?vue&type=template&id=7ab82bef&scoped=true&\"\nimport script from \"./filter_directionColumn.vue?vue&type=script&lang=js&\"\nexport * from \"./filter_directionColumn.vue?vue&type=script&lang=js&\"\nimport style0 from \"./filter_directionColumn.vue?vue&type=style&index=0&id=7ab82bef&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 \"7ab82bef\",\n null\n \n)\n\nexport default component.exports","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AdvancedHistory.vue?vue&type=style&index=1&id=43b209a2&prod&scoped=true&lang=css&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AdvancedReports.vue?vue&type=style&index=0&id=9b2cc92a&prod&lang=css&\"","module.exports = \"data:image/png;base64,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\"","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./filterCategory.vue?vue&type=style&index=0&id=10cfa790&prod&scoped=true&lang=css&\"","import Vue from 'vue';\r\nimport utils from './utils.jsx';\r\nimport careHelpfulFunctions from '../Application/careHelpfulFunctions.jsx';\r\nimport {appSettings} from '@/Shared/appSettings';\r\nimport dayjs from 'dayjs';\r\n\r\nconst datetimemin = /\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\dZ?/;\r\nconst datetimesec = /\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d:[0-5]\\dZ?/;\r\nconst dateonly = /\\d{4}-[01]\\d-[0-3]\\dZ?/;\r\n\r\nconst filters = {\r\n f_date: function (datevalue, format) {\r\n if (!datevalue)\r\n return '';\r\n\r\n let fmt;\r\n switch (format) {\r\n case 'longDate': fmt = 'll'; break;\r\n case 'shortDate': fmt = 'l'; break;\r\n default: fmt = 'll LTS'; break;\r\n }\r\n if (datevalue instanceof Date && !isNaN(datevalue)) {\r\n return dayjs(datevalue).format(fmt || 'lll');\r\n }\r\n else if (typeof datevalue === 'string') { // && (datevalue.match(datetimemin) || datevalue.match(datetimesec) || datevalue.match(dateonly))) {\r\n const dt = new Date(datevalue);\r\n if (dt instanceof Date && !isNaN(dt))\r\n return dayjs(dt).format(fmt || 'lll'); \r\n else\r\n return datevalue;\r\n }\r\n else {\r\n return datevalue;\r\n }\r\n },\r\n f_shortDateShortTime(datetime) {\r\n const dt = new Date(datetime);\r\n return dayjs(dt).format('lll');\r\n },\r\n f_formatDateForLocale(datevalue, format) {\r\n return this.f_date(datevalue, format);\r\n },\r\n f_formatHourOnlyDateTimeForLocale(datevalue, format) {\r\n datevalue = datevalue + \":00:00\";\r\n return this.f_date(datevalue, format);\r\n },\r\n f_phoneNumber: function (phonenum, format) {\r\n return careHelpfulFunctions.formatPhoneNumber(phonenum, format);\r\n },\r\n f_number: function (num, digits) {\r\n var num2 = parseFloat(num);\r\n if (typeof num2 === 'number') {\r\n return Intl.NumberFormat(appSettings.LocaleKey, { minimumFractionDigits: digits }).format(num2)\r\n }\r\n else\r\n return num;\r\n },\r\n f_bytes: function (size) {\r\n if (isNaN(size))\r\n size = 0;\r\n\r\n if (size < 1024)\r\n return size + ' Bytes';\r\n\r\n size /= 1024;\r\n\r\n if (size < 1024)\r\n return size.toFixed(2) + ' Kb';\r\n\r\n size /= 1024;\r\n\r\n if (size < 1024)\r\n return size.toFixed(2) + ' Mb';\r\n\r\n size /= 1024;\r\n\r\n if (size < 1024)\r\n return size.toFixed(2) + ' Gb';\r\n\r\n size /= 1024;\r\n\r\n return size.toFixed(2) + ' Tb';\r\n },\r\n f_currency: function (value) {\r\n if (typeof value !== \"number\") {\r\n return value;\r\n }\r\n\r\n // appSettings.Currency comes from the Customer record, field DefaultCurrency. It is\r\n // loaded from the v1/Vue/CallCenterHome5 document where the Apps/Common/Customer API\r\n // is invoked. It is saved as System.Currency = Input.Data.DefaultCurrency\r\n // (8/5/24 DP)\r\n\r\n var formatter = new Intl.NumberFormat(appSettings.LocaleKey, {\r\n style: 'currency',\r\n currency: appSettings.Currency || 'USD'\r\n });\r\n return formatter.format(value);\r\n },\r\n}\r\n\r\n//return f_number(ParentByName('maincontainer').Vars.DisplayTime == 0 ? (util.durationSecondsAsString(RowData().TotalDuration)) : (((RowData().TotalDuration) / 60), 2));\r\n\r\nexport default filters;","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RoosterEditorBase.vue?vue&type=style&index=0&id=40016238&prod&scoped=true&lang=css&\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RoosterEditorBase.vue?vue&type=style&index=1&id=40016238&prod&lang=css&\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./debugDialog.vue?vue&type=style&index=0&id=20697d49&prod&scoped=true&lang=css&\"","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./metricItemList.vue?vue&type=style&index=0&id=dea869f4&prod&scoped=true&lang=css&\"","\n\n\n\n","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./iconComponent.vue?vue&type=style&index=0&id=abc9aaf2&prod&scoped=true&lang=css&\"","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./filter_directionColumn.vue?vue&type=style&index=0&id=7ab82bef&prod&scoped=true&lang=css&\"","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./agGridToolReportColumns.vue?vue&type=style&index=0&id=425554be&prod&scoped=true&lang=css&\"","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/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./filter_booleanColumn.vue?vue&type=script&lang=js&\"; 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/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./filter_booleanColumn.vue?vue&type=script&lang=js&\"","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./groupbyItemList.vue?vue&type=style&index=0&id=4b7b0532&prod&scoped=true&lang=css&\"","/*\r\n Product maintains a list of colors for this file at https://docs.google.com/spreadsheets/d/143ehmL_jT0D6cjzJzHrF74hW0NlQPWh2XgX64wBLHcQ/edit#gid=0\r\n This is meant to allow the designers, product, and developers to all view the same color reference.\r\n Colors listed below must stay in sync with this file in order to yield expected results.\r\n Also verify list with CSSVariables.prj > GetColorNames\r\n Should be the same in vue and standaloneagent\r\n*/\r\nexport default {\r\n /* Text */\r\n primaryText: '#28283C',\r\n secondaryText: '#828294',\r\n tertiaryText: '#A6A6B6',\r\n stateText: '#C8C8DC',\r\n\r\n primary: '#2c92ff',\r\n primaryActive: '#187EEB',\r\n\r\n /* Controls */\r\n header: '#28283C',\r\n navigation: '#3c3c4f',\r\n accent: '#82B1FF',\r\n error: '#ef4a41',\r\n destructive: '#ef4a41',\r\n lightgrey: '#828296',\r\n lightGreyBorder: '#6E6E82',\r\n stateBackground: '#3C3C50',\r\n lightBlueBackground: '#505064',\r\n darkGreyIcon: '#A6A6B6',\r\n\r\n /* Bootstrap Variables. Pending name and color verification from designer */\r\n blue: '#2C92FF',\r\n green: '#4AB574',\r\n yellow: '#FFDE51',\r\n red: '#EF4A41',\r\n cyan: '#E3EEFE',\r\n success: '#4AB574',\r\n danger: '#EF4A41',\r\n warning: '#FFDE51',\r\n info: '#2c92ff',\r\n lightGrey: '#828296',\r\n extraLightGrey: '#fafafa',\r\n white: '#FFF',\r\n black: '#000',\r\n blueExtraLight: '#FAFAFA',\r\n lightGreyHover: '#5e5e6d',\r\n\r\n /* Dashboard */\r\n asa: '#2C92FF',\r\n att: '#702CFF',\r\n awrapt: '#0155A3',\r\n\r\n /* Phone */\r\n sentmessage: '#d5e9ff',\r\n altsentmessage: '#dcf7c3',\r\n wrapup: '#0155A3',\r\n multiples: '#702CFF',\r\n inbound: '#2C92FF',\r\n outbound: '#E07A1A',\r\n ready: '#4ab574',\r\n notready: '#ef4a41',\r\n fullcapacity: '#FFDE51',\r\n receivedmessage: '#F0F0F0',\r\n\r\n /* Not Ready States */\r\n notready1: '#ef4a41', /* same as notready */\r\n notready2: '#d7433b',\r\n notready3: '#bf3b34',\r\n notready4: '#a7342e',\r\n notready5: '#8f2c27',\r\n notready6: '#782521',\r\n notready7: '#601e1a',\r\n notready8: '#481613',\r\n notready9: '#300f0d',\r\n\r\n /* Chart States */\r\n busy: '#828296',\r\n linked: '#2C92FF',\r\n transfer: '#0155A3',\r\n reading: '#702CFF',\r\n unlinked: '#0155A3',\r\n composing: '#E07A1A',\r\n starting: '#828296',\r\n chatting: '#702CFF',\r\n hold: '#0155A3',\r\n answered: '#2C92FF',\r\n pending: '#828296',\r\n\r\n /* User States */\r\n userState1: '#FFDE51',\r\n userState2: '#EDA926',\r\n userState3: '#E07A1A',\r\n userState4: '#D5562E',\r\n userState5: '#B5322C',\r\n userState6: '#7D1D4E',\r\n userState7: '#8D6FCC',\r\n userState8: '#702CFF',\r\n userState9: '#3B02B6',\r\n userState10: '#78B3F0',\r\n userState11: '#4994EC',\r\n userState12: '#0155A3',\r\n userState13: '#74CDDE',\r\n userState14: '#4DA8BE',\r\n userState15: '#39818D'\r\n}","export default {\r\n primaryText: '#242424',\r\n secondaryText: '#424242',\r\n tertiarytext: '#616161',\r\n\r\n primary: '#6264A7',\r\n primaryActive: '#494B83',\r\n\r\n header: '#464775',\r\n stateBackground: '#3D3E66',\r\n lightBlueBackground: '#3D3E66',\r\n \r\n}","import Vue from 'vue';\nimport Vuetify from 'vuetify/lib/framework';\nimport defaultTheme from '@/plugins/themes/DefaultTheme';\nimport msTeamsTheme from '@/plugins/themes/MSTeamsTheme';\nimport * as VuetifyComponents from 'vuetify/lib/components';\nimport * as VuetifyDirectives from 'vuetify/lib/directives';\nimport * as VuetifyColors from 'vuetify/lib/util/colors';\n\nVue.use(Vuetify, {\n components: {\n ...VuetifyComponents,\n },\n directives: VuetifyDirectives,\n colors: VuetifyColors\n});\n\nlet themes = {\n defaultTheme,\n msTeamsTheme\n};\n\nexport default {\n instance: new Vuetify({\n theme: {\n options: { \n customProperties: true, \n variations: false \n },\n themes: {\n light: defaultTheme\n \n },\n currenttheme: \"\",\n },\n breakpoint: {\n thresholds: {\n sm: 625,\n },\n },\n }),\n getTheme(name) {\n let check = (name) ? name : this.instance.framework.theme.currenttheme;\n if (this.instance.framework.theme.themes[check])\n return this.instance.framework.theme.themes[check];\r\n\r\n return this.instance.framework.theme.themes[this.instance.framework.theme.currenttheme];\r\n },\n setTheme(name) {\n this.instance.framework.theme.themes.light = { ...this.instance.framework.theme.themes.light, ...themes[name] };\n },\n importWhiteLabelSettings(settings, currentthemename) {\n this.instance.framework.theme.currenttheme = currentthemename || \"light\";\n themes.whiteLabel = JSON.parse(settings.ColorVariables);\n this.setTheme('whiteLabel');\n }\n}\n","var render = function render(){var _vm=this,_c=_vm._self._c;return (_vm.show)?_c('v-app',{staticStyle:{\"height\":\"100%\",\"overflow\":\"hidden\"}},[_c('dialog-listener'),_c('action-service'),_c('start-application',{attrs:{\"route\":_vm.currentRoute,\"query\":_vm.queryString,\"path\":_vm.pathname},on:{\"start-application-created\":_vm.createServices}})],1):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Vue from 'vue';\r\nimport Vuetify from 'vuetify';\r\nimport EventBus from './event-bus.js';\r\nimport utils from '../Shared/utils.jsx';\r\n\r\nVue.component('authenticate', {\r\n data: () => ({\r\n e1: true,\r\n state: 'credentials',\r\n base_uri: 'https://api.callcorplab.com',\r\n username: '',\r\n password: '',\r\n showerror: false,\r\n error_message: '',\r\n items: [\r\n 'https://api.callcorplab.com',\r\n 'https://api-staging.callcorplab.com',\r\n 'https://api.total.care'\r\n ],\r\n context_list: [],\r\n }),\r\n props: {\r\n root: null,\r\n confirm: null,\r\n cancel: null,\r\n },\r\n mounted() {\r\n var credentials = localStorage['credentials'];\r\n if (credentials) {\r\n var credentials_obj = JSON.parse(credentials);\r\n if (credentials_obj.ProviderType == 'Native' || credentials_obj.ProviderType == '.CARE') {\r\n this.username = credentials_obj.UniqueID;\r\n this.password = credentials_obj.Password;\r\n }\r\n }\r\n var last_baseuri = localStorage['base_uri'];\r\n if (last_baseuri) {\r\n this.base_uri = last_baseuri;\r\n }\r\n },\r\n methods: {\r\n sync(prop, value) {\r\n this[prop] = value;\r\n\r\n if (prop == 'base_uri') {\r\n // localStorage is just so we don't have to keep typing it every time we reload this page\r\n localStorage['base_uri'] = value;\r\n\r\n // sessionStorage is what the Vue app will use for apis\r\n sessionStorage['base_uri'] = value;\r\n }\r\n },\r\n async confirm_validate() {\r\n var authargs = {\r\n ProviderType: 'Native',\r\n UniqueID: this.username,\r\n Password: this.password,\r\n MFAToken: 'KADgy96n02eTtRjHTLOyqDE/MmXfNYXzjsXIDWRijcp9N9yxToZjmbXtPdvOgqyoWunIz7KIHYekJwO8M63r02bv/SNbHW3/M9S75oyqIZhcMToXZd1MojTbMbuTWdRy5RfqMzdNUArWROL6KGC/tBC7qElr7s1pshjD9NkBqJx/TQUTOB28z9ze3WF6YKH3vnVopE1SuCjYITlp6oAK9Q==',\r\n };\r\n\r\n sessionStorage.removeItem('access_token');\r\n sessionStorage['base_uri'] = this.base_uri;\r\n\r\n try {\r\n const res = await utils.api.request('POST', 'Apps/AuthenticateExt', authargs);\r\n if (res.success) {\r\n if (authargs.ProviderType == 'Native' || authargs.ProviderType == '.CARE')\r\n localStorage['credentials'] = JSON.stringify(authargs);\r\n\r\n this.access_token = res.access_token;\r\n this.refresh_token = res.refresh_token;\r\n\r\n sessionStorage.setItem('access_token', this.access_token);\r\n\r\n this.context_list = [];\r\n for (var i = 0; i < res.user_list.length; ++i) {\r\n const user = res.user_list[i];\r\n const ctx = {\r\n type: 'user',\r\n name: user.FirstName + ' ' + user.LastName,\r\n id: user.userid,\r\n contexts: [],\r\n };\r\n this.context_list.push(ctx);\r\n\r\n for (var j = 0; j < user.SecurityContexts.length; j++) {\r\n const context = user.SecurityContexts[j];\r\n if (context.SecurityContextTypeID == 'Customer') {\r\n utils.log('context: ' + JSON.stringify(context));\r\n ctx.contexts.push({\r\n Name: context.Name,\r\n UserSecurityContextID: context.UserSecurityContextID,\r\n SecurityContextTypeID: context.SecurityContextTypeID,\r\n });\r\n }\r\n }\r\n }\r\n this.state = 'choosecarecenter';\r\n }\r\n else {\r\n this.error_message = 'Credentials Invalid';\r\n this.showerror = true;\r\n }\r\n }\r\n catch (e) {\r\n // Inform of the error\r\n this.error_message = e;\r\n this.showerror = true;\r\n }\r\n },\r\n async selectContext(userSecurityContextID) {\r\n const uri = 'Apps/SecurityContext/Add?userSecurityContextID=' + userSecurityContextID;\r\n const res = await utils.api.get(uri);\r\n\r\n this.access_token = res.access_token;\r\n this.root.setTokens(this.access_token, this.refresh_token, res.expires_in);\r\n\r\n this.state = 'credentials';\r\n this.confirm();\r\n },\r\n },\r\n render(h) {\r\n let content;\r\n switch (this.state) {\r\n case 'credentials':\r\n content = (\r\n \r\n \r\n Logon\r\n \r\n\r\n \r\n Please enter your credentials\r\n \r\n\r\n \r\n this.sync('username', value)}>\r\n \r\n (this.e1 = !this.e1)}\r\n type={this.e1 ? 'password' : 'text'}\r\n value={this.password}\r\n on-input={(value) => this.sync('password', value)}>\r\n \r\n this.sync('base_uri', e.target ? e.target.value : e)}\r\n >\r\n \r\n \r\n \r\n Confirm\r\n Cancel\r\n \r\n \r\n {this.error_message}\r\n \r\n \r\n );\r\n break;\r\n\r\n case 'choosecarecenter':\r\n const items = [];\r\n for (let i = 0; i < this.context_list.length; i++) {\r\n const ctx = this.context_list[i];\r\n if (ctx.type == 'user') {\r\n for (let j = 0; j < ctx.contexts.length; j++) {\r\n const context = ctx.contexts[j];\r\n items.push(\r\n this.selectContext(context.UserSecurityContextID)}>\r\n\r\n \r\n mdi mdi-earth\r\n \r\n\r\n \r\n {context.Name}\r\n {ctx.name}\r\n \r\n \r\n );\r\n // title> class=\"grey--text text--darken-4\"\r\n\r\n if (j < ctx.contexts.length - 1)\r\n items.push()\r\n }\r\n }\r\n }\r\n content = (\r\n \r\n Choose your Call Center\r\n
\r\n \r\n {items}\r\n \r\n
\r\n \r\n \r\n Cancel\r\n \r\n
\r\n );\r\n break;\r\n }\r\n\r\n\r\n return content;\r\n }\r\n});","import Vue from 'vue';\r\nimport Vuetify from 'vuetify';\r\nimport utils from '../../../Shared/utils.jsx';\r\n\r\nVue.component('input-dialog', {\r\n data: () => ({\r\n value: '',\r\n }),\r\n props: {\r\n root: null,\r\n okay: null,\r\n cancel: null,\r\n accept: null,\r\n title: '',\r\n label: '',\r\n default_value: null,\r\n },\r\n mounted() {\r\n if (this.default_value)\r\n this.value = this.default_value;\r\n },\r\n methods: {\r\n confirm() {\r\n this.okay();\r\n this.accept(this.value);\r\n }\r\n },\r\n render(h) {\r\n let content = (\r\n \r\n {this.title}\r\n \r\n this.value = value}>\r\n \r\n \r\n \r\n \r\n OK\r\n Cancel\r\n \r\n \r\n ); \r\n\r\n return content;\r\n }\r\n});","import Vue from 'vue';\r\nimport Vuetify from 'vuetify';\r\nimport EventBus from './event-bus.js';\r\nimport auth from './authenticate.jsx';\r\nimport inputdialog from './components/vuecontrols/inputdialog.jsx';\r\nimport dialogBasicModal from './components/actions/DialogBasicModal.jsx';\r\n\r\nexport default Vue.component('dialog-listener', {\r\n data: () => ({\r\n visible1: false,\r\n title: 'Test',\r\n body: 'More test',\r\n payload1: null,\r\n success: true,\r\n result: null,\r\n }),\r\n props: {\r\n\r\n },\r\n created() {\r\n console.log('dialog-listener waiting for SHOW_DIALOG');\r\n\r\n // \"this\" within the $on function does not refer to the Vue component. We must keep a reference separate.\r\n const dialog = this;\r\n\r\n EventBus.$on('SHOW_DIALOG', function (payLoad) {\r\n console.log('dialog-listener SHOW_DIALOG triggered');\r\n\r\n payLoad.componentOptions.propsData.okay = dialog.confirm;\r\n payLoad.componentOptions.propsData.cancel = dialog.cancel;\r\n\r\n dialog.payload1 = payLoad;\r\n dialog.visible1 = true;\r\n });\r\n\r\n EventBus.$on('LOGON', function (payLoad) {\r\n console.log('dialog-listener LOGON triggered');\r\n\r\n dialog.payload1 = ;\r\n\r\n dialog.visible1 = true;\r\n });\r\n\r\n EventBus.$on('DISPLAY_BASIC_MODAL', function (action, context) {\r\n console.log('dialog-listener DISPLAY_BASIC_MODAL triggered');\r\n\r\n dialog.payload1 = (\r\n \r\n \r\n );\r\n dialog.visible1 = true;\r\n });\r\n\r\n EventBus.$on('CLOSE_DIALOG', function (success, result) {\r\n console.log('dialog-listener CLOSE_DIALOG triggered: success:' + (success ? 'true':'false') + ', result:' + JSON.stringify(result));\r\n dialog.success = success;\r\n dialog.result = result;\r\n dialog.visible1 = false;\r\n });\r\n },\r\n methods: {\r\n confirm() {\r\n this.visible1 = false;\r\n },\r\n cancel() {\r\n this.visible1 = false;\r\n }\r\n },\r\n render(h) {\r\n console.log('Rendering dialog... visible1: ' + this.visible1);\r\n //if (!this.visible)\r\n // return null;\r\n\r\n return (\r\n
\r\n \r\n {this.payload1}\r\n \r\n \r\n {this.payload2}\r\n \r\n \r\n {this.payload3}\r\n \r\n \r\n {this.payload4}\r\n \r\n
\r\n );\r\n }\r\n});","import Vue from 'vue';\r\n\r\nVue.component('resize-observer', {\r\n methods: {\r\n notify() {\r\n this.$emit('notify')\r\n },\r\n addResizeHandlers() {\r\n this._resizeObject.contentDocument.defaultView.addEventListener('resize', this.notify)\r\n if (this._w !== this.$el.offsetWidth || this._h !== this.$el.offsetHeight) {\r\n this.notify()\r\n }\r\n },\r\n removeResizeHandlers() {\r\n if (this._resizeObject && this._resizeObject.onload) {\r\n if (this._resizeObject.contentDocument) {\r\n this._resizeObject.contentDocument.defaultView.removeEventListener('resize', this.notify)\r\n }\r\n delete this._resizeObject.onload\r\n }\r\n },\r\n },\r\n mounted() {\r\n this.$nextTick(() => {\r\n this._w = this.$el.offsetWidth\r\n this._h = this.$el.offsetHeight\r\n })\r\n const object = document.createElement('object')\r\n this._resizeObject = object\r\n object.setAttribute('style', 'display: block; position: absolute; top: 0; left: 0; height: 100%; width: 100%; overflow: hidden; pointer-events: none; z-index: -1;')\r\n object.setAttribute('aria-hidden', 'true')\r\n object.onload = this.addResizeHandlers\r\n object.type = 'text/html'\r\n object.data = 'about:blank'\r\n this.$el.appendChild(object)\r\n },\r\n beforeDestroy() {\r\n this.removeResizeHandlers()\r\n },\r\n render(e) {\r\n return
;\r\n }\r\n});","import Vue from 'vue';\r\nimport ResizeObserver from './ResizeObserver.jsx';\r\nimport utils from '@/Shared/utils.jsx';\r\n\r\nconst cloneDeep = require('lodash.clonedeep')\r\n\r\nVue.component('ace-editor', {\r\n //template: '
',\r\n props: {\r\n editorId: {\r\n type: String,\r\n default: ''\r\n },\r\n content: {\r\n type: String,\r\n default: ''\r\n },\r\n lang: {\r\n type: String,\r\n default: 'text'\r\n },\r\n theme: {\r\n type: String,\r\n default: 'github'\r\n },\r\n readOnly: {\r\n type: Boolean,\r\n default: false\r\n }\r\n },\r\n data() {\r\n return {\r\n uniqueid: null,\r\n uiAceOptions: {},\r\n editor: Object,\r\n model: null,\r\n beforeContent: '',\r\n hasfocus: false,\r\n }\r\n },\r\n created() {\r\n this.uniqueid = utils.generateUUID();\r\n },\r\n methods: {\r\n gotoLine(row, column) {\r\n this.editor.gotoLine(row, column, false);\r\n },\r\n beautify(doAppy) {\r\n utils.log(\"beautify()\");\r\n let output;\r\n\r\n if (this.lang == \"json\") { // this.uiAceOptions.mode == \"json\") {\r\n output = JSON.stringify(JSON.parse(this.model), null, \"\\t\");\r\n }\r\n else {\r\n var opts = {\r\n indent_size: 1,\r\n indent_char: '\\t',\r\n max_preserve_newlines: 5,\r\n preserve_newlines: true,\r\n keep_array_indentation: false,\r\n break_chained_methods: false,\r\n indent_scripts: \"normal\",\r\n brace_style: \"expand\", // \"expand\", end-expand, \"collapse\"\r\n space_before_conditional: true,\r\n unescape_strings: false,\r\n jslint_happy: true,\r\n end_with_newline: false,\r\n wrap_line_length: \"0\",\r\n indent_inner_html: true,\r\n comma_first: false,\r\n e4x: false\r\n };\r\n\r\n if (this.uiAceOptions.mode == \"css\") {\r\n output = this.model; //this.css_beautify(this.model, opts);\r\n }\r\n else if (this.looks_like_html(this.model)) {\r\n output = this.model; // this.html_beautify(this.model, opts);\r\n }\r\n else {\r\n output = this.unpacker_filter(this.model); // detect-packers (optional)\r\n output = this.model; // this.js_beautify(this.model, opts);\r\n }\r\n }\r\n\r\n if (doAppy) // if the CTRL-SHIFT-F is pressed to reformat - it is trapped outside angular and therefore need to be wrapped in $apply\r\n {\r\n //Vue.nextTick(function () {\r\n this.saveEditorPositionAndFoldInfo();\r\n this.model = output;\r\n this.editor.setValue(this.model, 1);\r\n this.restoreEditorPositionAndFoldInfo();\r\n //});\r\n }\r\n else {\r\n this.model = output;\r\n }\r\n },\r\n saveEditorPositionAndFoldInfo() {\r\n this.savedFoldData = cloneDeep(this.editor.session.$foldData);\r\n this.savedScrollTop = this.editor.session.getScrollTop();\r\n this.savedCursorPosition = this.editor.session.selection.getCursor();\r\n },\r\n restoreEditorPositionAndFoldInfo() {\r\n const c = this;\r\n Vue.nextTick(function () {\r\n // before restoring the fold data as was, the rows may have changed when reformatting was applied, so we need to verify that the collapsable rows are still collapsable\r\n let verifiedFoldData = c.verifyFoldData(c.savedFoldData);\r\n c.addVerifiedFolds(verifiedFoldData);\r\n\r\n c.editor.session.selection.moveCursorTo(c.savedCursorPosition.row, c.savedCursorPosition.column);\r\n c.editor.session.setScrollTop(c.savedScrollTop);\r\n });\r\n },\r\n verifyFoldData(foldData) {\r\n let verifiedFoldData = [];\r\n\r\n for (let x = 0; x < foldData.length; x++) {\r\n let foldRange = foldData[x].range;\r\n\r\n // Validate that the fold range is still good\r\n let foldWidget = this.editor.session.getFoldWidget(foldRange.start.row);\r\n if (foldWidget == \"start\") {\r\n let foldWidgetRange = this.editor.session.getFoldWidgetRange(foldRange.start.row);\r\n verifiedFoldData.push(foldWidgetRange);\r\n }\r\n }\r\n\r\n return verifiedFoldData;\r\n },\r\n addVerifiedFolds(verifiedFoldData) {\r\n for (let x = 0; x < verifiedFoldData.length; x++) {\r\n this.editor.session.addFold(\"...\", verifiedFoldData[x])\r\n }\r\n },\r\n unpacker_filter(source) {\r\n let trailing_comments = '',\r\n comment = '',\r\n unpacked = '',\r\n found = false;\r\n\r\n // cut trailing comments\r\n do {\r\n found = false;\r\n if (/^\\s*\\/\\* /.test(source)) {\r\n found = true;\r\n comment = source.substr(0, source.indexOf('*/') + 2);\r\n source = source.substr(comment.length).replace(/^\\s+/, '');\r\n trailing_comments += comment + \"\\n\";\r\n }\r\n else if (/^\\s*\\/\\//.test(source)) {\r\n found = true;\r\n comment = source.match(/^\\s*\\/\\/.*/)[0];\r\n source = source.substr(comment.length).replace(/^\\s+/, '');\r\n trailing_comments += comment + \"\\n\";\r\n }\r\n } while (found);\r\n\r\n let unpackers = [P_A_C_K_E_R, Urlencoded, /*JavascriptObfuscator,*/ MyObfuscate];\r\n for (let i = 0; i < unpackers.length; i++) {\r\n if (unpackers[i].detect(source)) {\r\n unpacked = unpackers[i].unpack(source);\r\n if (unpacked != source) {\r\n source = unpacker_filter(unpacked);\r\n }\r\n }\r\n }\r\n\r\n return trailing_comments + source;\r\n },\r\n looks_like_html(source) {\r\n // - looks like html\r\n // - doesn't look like html\r\n\r\n let trimmed = source.replace(/^[ \\t\\n\\r]+/, '');\r\n let comment_mark = '<' + '!-' + '-';\r\n return (trimmed && (trimmed.substring(0, 1) === '<' && trimmed.substring(0, 4) !== comment_mark));\r\n },\r\n },\r\n watch: {\r\n 'content'(value) {\r\n if (this.beforeContent !== value) {\r\n this.editor.setValue(value, 1)\r\n }\r\n }\r\n },\r\n computed: {\r\n realId() {\r\n if (this.editorId)\r\n return this.editorId + '_' + this.uniqueid;\r\n\r\n return 'Editor_' + this.uniqueid;\r\n },\r\n },\r\n render(e) {\r\n // \r\n return (\r\n
\r\n this.editor.resize()}>\r\n
\r\n
\r\n
\r\n );\r\n },\r\n mounted() {\r\n this.model = this.content || '';\r\n this.editor = window.ace.edit(this.realId);\r\n this.editor.setValue(this.model, 1);\r\n\r\n // mode-xxx.js or theme-xxx.jsがある場合のみ有効\r\n this.editor.getSession().setMode(`ace/mode/${this.lang}`);\r\n this.editor.setTheme(`ace/theme/${this.theme}`);\r\n this.editor.setAutoScrollEditorIntoView(true);\r\n this.editor.setReadOnly(this.readOnly);\r\n\r\n setTimeout(() => {\r\n //this.editor.moveCursorTo(1, 1);\r\n this.editor.session.selection.moveCursorTo(0, 0);\r\n this.editor.session.setScrollTop(1);\r\n }, 500);\r\n\r\n this.editor.on('focus', () => {\r\n this.hasfocus = true;\r\n this.$emit('focus', this.editor.getValue());\r\n });\r\n\r\n this.editor.on('blur', () => {\r\n this.hasfocus = false;\r\n this.beforeContent = this.editor.getValue();\r\n this.$emit('change-content', this.editor.getValue());\r\n });\r\n\r\n this.editor.on('change', () => {\r\n this.model = this.editor.getValue();\r\n });\r\n\r\n this.$on('Beautify', this.beautify);\r\n\r\n const c = this;\r\n this.editor.commands.addCommands([\r\n {\r\n name: 'formatDocument',\r\n bindKey: {\r\n win: 'Ctrl-Shift-F',\r\n mac: 'Command-Shift-F'\r\n },\r\n exec: function () {\r\n c.$emit('Beautify', true);\r\n return false;\r\n },\r\n readOnly: true\r\n }\r\n ]);\r\n },\r\n destroyed() {\r\n this.$off('Beautify', this.beautify);\r\n this.editor.destroy();\r\n }\r\n});","import Vue from 'vue';\r\nimport BaseComponent from './BaseComponentMixin.jsx';\r\nimport EventBus from '../event-bus.js';\r\n\r\nimport utils from '../../Shared/utils.jsx';\r\nimport methods from '../../Shared/methods';\r\n\r\nVue.component('accordion-group', {\r\n mixins: [BaseComponent],\r\n data: function () {\r\n return {\r\n hideHeaderBarEval: null,\r\n groupTitleEval: null,\r\n isOpenEval: null\r\n }\r\n },\r\n props: {},\r\n computed: {\r\n hideHeaderBar() {\r\n try {\r\n if(this.hideHeaderBarEval === null && this.controlData.HideHeaderBar)\r\n this.hideHeaderBarEval = utils.compileObject(this, this.controlData.HideHeaderBar);\r\n if(this.hideHeaderBarEval)\r\n return utils.evaluateObject(this.hideHeaderBarEval, this);\r\n return '';\r\n }\r\n catch (e) {\r\n utils.warn('HideHeaderBar could not evaluate expression: ' + this.controlData.HideHeaderBar + '; ' + e);\r\n return '';\r\n }\r\n },\r\n groupTitle() {\r\n try {\r\n if(this.groupTitleEval === null && this.controlData.GroupTitle)\r\n this.groupTitleEval = utils.compile(this, this.controlData.GroupTitle);\r\n if(this.groupTitleEval)\r\n return utils.evaluate(this.groupTitleEval, this);\r\n return '';\r\n }\r\n catch (e) {\r\n utils.warn('GroupTitle could not evaluate expression: ' + this.controlData.GroupTitle + '; ' + e);\r\n return '';\r\n }\r\n },\r\n isOpen() {\r\n try {\r\n if(this.isOpenEval === null && this.controlData.IsOpen)\r\n this.isOpenEval = utils.compileObject(this, this.controlData.IsOpen);\r\n if(this.isOpenEval)\r\n return utils.evaluateObject(this.isOpenEval, this);\r\n return '';\r\n }\r\n catch (e) {\r\n utils.warn('IsOpen could not evaluate expression: ' + this.controlData.IsOpen + '; ' + e);\r\n return '';\r\n }\r\n }\r\n },\r\n created() {\r\n utils.debug(`AccordionGroup created`);\r\n },\r\n //Mounted Replaced with preRenderComplete\r\n methods: {\r\n Close() {\r\n this.$emit('close');\r\n },\r\n Open() {\r\n this.$emit('open');\r\n },\r\n ToggleIsOpen() {\r\n this.$emit('toggle-open')\r\n },\r\n preRenderComplete() {\r\n this.finishRenderHandler(this);\r\n }\r\n },\r\n render(h) {\r\n try {\r\n let content = [];\r\n \r\n // Creating the header bar\r\n if (!this.hideHeaderBar) {\r\n utils.debug(`AccordionGroup render in if(!this.hideHeaderBar)`);\r\n\r\n // The title can have pre title controls, a title, and header controls. We have to figure out which ones we have and \r\n // render them accordingly. We're going to wrap everything in the expansion panel header, and in a div that will emulate a \r\n // horizontal layout\r\n let titleContent = [];\r\n \r\n if(this.controlData?.PreTitleControls?.length)\r\n titleContent.push(
{utils.generateItemsFromArray(h, this, this.controlData.PreTitleControls, null, 'HorizontalLayout', {'finished-render': (item) => this.finishRenderHandler(item) })}
);\r\n \r\n if(this.groupTitle)\r\n titleContent.push(
{this.groupTitle}
);\r\n \r\n if(this.controlData?.HeaderControls?.length)\r\n titleContent.push(
{utils.generateItemsFromArray(h, this, this.controlData.HeaderControls, null, 'HorizontalLayout', {'finished-render': (item) => this.finishRenderHandler(item) })}
);\r\n \r\n content.push(\r\n \r\n
\r\n {titleContent}\r\n
\r\n
\r\n );\r\n }\r\n \r\n if (this.controlData.AccordionBody) {\r\n utils.debug(`AccordionGroup render in if(this.controlData.AccordionBody)`);\r\n\r\n let body = utils.generateItemsFromArray(h, this, this.controlData.AccordionBody, null, 'VerticalLayout', { 'finished-render': (item) => this.finishRenderHandler(item) });\r\n \r\n content.push(\r\n \r\n
\r\n {body}\r\n
\r\n
\r\n )\r\n }\r\n \r\n return (\r\n \r\n {content}\r\n \r\n );\r\n }\r\n catch(e) {\r\n utils.error('AccordionGroup Render failed', e);\r\n return
AccordionGroup Failed to Render {e}
;\r\n }\r\n }\r\n});","import Vue from 'vue';\r\nimport BaseComponent from './BaseComponentMixin.jsx';\r\nimport AccordionGroup from './AccordionGroup';\r\nimport EventBus from '../event-bus.js';\r\n\r\nimport _ from 'lodash';\r\nimport utils from '../../Shared/utils.jsx';\r\nimport methods from '../../Shared/methods';\r\n\r\nVue.component('accordion', {\r\n mixins: [BaseComponent],\r\n data: function () {\r\n return {\r\n closeOthersEval: null,\r\n accordionGroupEvals: null,\r\n openedItems: []\r\n }\r\n },\r\n computed: {\r\n closeOthers() {\r\n try {\r\n if(this.closeOthersEval === null && this.controlData.CloseOthers)\r\n this.closeOthersEval = utils.compile(this, this.Translate(this.controlData.CloseOthers));\r\n if(this.closeOthersEval)\r\n return utils.evaluate(this.closeOthersEval, this);\r\n return '';\r\n }\r\n catch (e) {\r\n utils.warn('CloseOthers could not evaluate expression: ' + this.controlData.CloseOthers + '; ' + e);\r\n return '';\r\n }\r\n },\r\n styles() {\r\n return {\r\n ...this.sizeStyle,\r\n ...utils.resolveStyleHints(this.styleHints, this),\r\n };\r\n }\r\n },\r\n //Mounted Replaced with preRenderComplete\r\n methods: {\r\n openItem(index) {\r\n if (this.closeOthers)\r\n this.openedItems = [index];\r\n else if (!this.openedItems.includes(index)) {\r\n utils.debug(`Accordion ${this.name} openItem(index:${index})`);\r\n this.openedItems.push(index)\r\n }\r\n },\r\n closeItem(index) {\r\n if(this.openedItems.includes(index))\r\n this.openedItems = this.openedItems.filter(item => item != index);\r\n },\r\n toggleOpen(index){\r\n if(this.openedItems.includes(index))\r\n this.closeItem(index);\r\n else\r\n this.openItem(index);\r\n },\r\n preRenderComplete() {\r\n if (this.controlData.AccordionGroup) {\r\n this.openedItems = this.controlData.AccordionGroup.map((v, i) => {\r\n if (v.IsOpen)\r\n return i;\r\n return -1;\r\n }).filter(v => v > -1);\r\n }\r\n\r\n this.finishRenderHandler(this);\r\n }\r\n },\r\n props: {\r\n },\r\n render(h) {\r\n try {\r\n return (\r\n
\r\n \r\n {this.controlData.AccordionGroup.map((groupItem, index) => {\r\n return (\r\n this.openItem(index)}\r\n on-close={() => this.closeItem(index)}\r\n on-toggle-open={() => this.toggleOpen(index)}\r\n on={{ 'finished-render': (reference) => this.finishRenderHandler(reference) }}\r\n root={this.root}\r\n >\r\n )\r\n })}\r\n \r\n
\r\n );\r\n }\r\n catch(e) {\r\n utils.error('Accordion Render failed', e);\r\n return
Accordion Failed to Render {e}
;\r\n }\r\n }\r\n});","import Vue from \"vue\";\r\nimport utils from \"../../Shared/utils.jsx\";\r\nimport BaseComponent from \"./BaseComponentMixin.jsx\";\r\nimport { appSettings } from \"../../Shared/appSettings.js\";\r\n\r\nVue.component(\"acd-direct-button\", {\r\n mixins: [BaseComponent],\r\n data: function() {\r\n return {\r\n mgr: null,\r\n };\r\n },\r\n computed: {\r\n buttonText() {\r\n return this.Translate(\"Sign in with ACD Direct\");\r\n },\r\n autoLogin() {\r\n if (!this.autologinexpn && this.controlData.AutoLogin)\r\n this.autologinexpn = utils.compile(this, this.controlData.AutoLogin);\r\n\r\n return this.autologinexpn ? utils.evaluate(this.autologinexpn, this) : false;\r\n },\r\n styles() {\r\n return {\r\n ...this.sizeStyle,\r\n ...utils.resolveStyleHints(this.styleHints, this),\r\n };\r\n },\r\n },\r\n\r\n //Created replaced with preRenderComplete\r\n methods: {\r\n async preRenderComplete() {\r\n await this.startACDDirectApp();\r\n\r\n this.finishRenderHandler(this);\r\n\r\n if (this.autoLogin === true || this.autoLogin === \"true\")\r\n this.handleClick();\r\n },\r\n async startACDDirectApp() {\r\n if (!appSettings.WhiteLabel.ACDDirectId) return;\r\n\r\n await loadFile(`//${window.location.hostname}/StaticContent/oidc-client-js/v1.11.5/oidc-client.min.js`, \"js\");\r\n\r\n const settings = {\r\n //authority: 'https://staging.callswithoutwalls.com/openId/', // staging\r\n authority: \"https://www.callswithoutwalls.com/openId/\", // production\r\n popup_redirect_uri: window.location.origin + \"/OidcRedirect/ACDDirect\",\r\n client_id: appSettings.WhiteLabel.ACDDirectId,\r\n response_type: \"id_token\",\r\n scope: \"openid\",\r\n };\r\n\r\n this.mgr = new Oidc.UserManager(settings);\r\n },\r\n async handleClick() {\r\n try {\r\n const result = await this.mgr.signinPopup({\r\n state: \"some data\",\r\n });\r\n\r\n const authArgs = {\r\n ProviderType: \"ACDDirect\",\r\n token: result.id_token, // JWT (JSON Web Token)\r\n clientId: appSettings.WhiteLabel.ACDDirectId,\r\n };\r\n\r\n await this.runActions(authArgs);\r\n } catch (err) {}\r\n },\r\n async runActions(authArgs) {\r\n await utils.executeAndCompileAllActions(this.controlData.Actions, authArgs, this);\r\n },\r\n },\r\n render(h) {\r\n try {\r\n if (!this.todisplay) return null;\r\n\r\n return (\r\n \r\n \r\n
\r\n \r\n mdi-headset\r\n \r\n {this.buttonText}\r\n
\r\n
\r\n \r\n );\r\n } catch (e) {\r\n utils.error(\"ACDDirectButton Render failed\", e);\r\n return
ACDDirectButton Failed to Render {e}
;\r\n }\r\n },\r\n loadFile(filename, filetype) {\r\n return new Promise((resolve) => {\r\n let fileRef;\r\n if (filetype === \"js\") {\r\n //if filename is a external JavaScript file\r\n fileRef = document.createElement(\"script\");\r\n fileRef.setAttribute(\"type\", \"text/javascript\");\r\n fileRef.setAttribute(\"src\", filename);\r\n fileRef.onload = resolve;\r\n }\r\n if (typeof fileRef !== \"undefined\") document.getElementsByTagName(\"head\")[0].appendChild(fileRef);\r\n });\r\n },\r\n});\r\n","import Vue from 'vue';\r\nimport Vuetify from 'vuetify';\r\nimport utils from '../../../Shared/utils.jsx';\r\nimport EventBus from '../../event-bus.js';\r\n\r\nVue.component('display-notification-header', {\r\n data: () => ({\r\n content: null,\r\n isvisible: false,\r\n groups: {},\r\n }),\r\n props: {\r\n },\r\n created() {\r\n EventBus.$on('Action-DisplayNotificationHeader', this.performDisplayNotificationHeader);\r\n EventBus.$on('Action-RemoveNotificationHeader', this.performRemoveNotificationHeader);\r\n },\r\n destroyed() {\r\n EventBus.$off('Action-DisplayNotificationHeader', this.performDisplayNotificationHeader);\r\n EventBus.$off('Action-RemoveNotificationHeader', this.performRemoveNotificationHeader);\r\n },\r\n mounted() {\r\n },\r\n computed: {\r\n utils: function () {\r\n return utils;\r\n },\r\n Base: function () {\r\n return this;\r\n },\r\n GlobalVars: function () {\r\n return utils.global_variables;\r\n },\r\n ServiceVars: function () {\r\n return utils.service_variables;\r\n },\r\n System: function () {\r\n return {\r\n LocalStorage: function (key, value) {\r\n return '';\r\n }\r\n };\r\n },\r\n Name: function () {\r\n return this.controlData ? (this.controlData.Name || 'unnamed') : 'no control data';\r\n },\r\n Root: function () {\r\n return this.root ? this.root._self : this;\r\n },\r\n Parent: function () {\r\n let p = this.$parent;\r\n\r\n // Look for a parent object that is a CallCorp control (skip native vue controls)\r\n while (p && !p.root) {\r\n if (p.$attrs && 'c_context' in p.$attrs)\r\n p = p.$attrs.c_context;\r\n else\r\n p = p.$parent;\r\n }\r\n\r\n return p;\r\n },\r\n Vars: function () {\r\n return this.vars;\r\n },\r\n },\r\n methods: {\r\n async performDisplayNotificationHeader(action) {\r\n utils.log(`DisplayNotificationHeader action handler`);\r\n\r\n if (action.ActionData && action.ActionData.Debug && action.ActionData.Debug.BreakPoint) debugger;\r\n\r\n try {\r\n const c = action.ActionData;\r\n if (!c.ControlData || !c.ControlData.Controls)\r\n return\r\n\r\n const name = (action.groupexpn ? utils.evaluate(action.groupexpn, action.context) : '') || '__unnamed__';\r\n\r\n if (c.ControlData.Controls.length === 0) {\r\n if (name in this.groups)\r\n Vue.delete(this.groups, name);\r\n\r\n this.isvisible = Object.keys(this.groups).length > 0;\r\n }\r\n else {\r\n const id = utils.generateUUID();\r\n const content = (\r\n \r\n \r\n );\r\n Vue.set(this.groups, name, content);\r\n this.isvisible = true;\r\n }\r\n\r\n try {\r\n await utils.success(action);\r\n } catch (e) { }\r\n }\r\n catch (e) {\r\n try {\r\n await utils.failure(action, { Data: e });\r\n } catch (e) { }\r\n }\r\n finally {\r\n try {\r\n await utils.complete(action);\r\n }\r\n catch (e) { }\r\n\r\n // Complete the promise for the executeAction method\r\n action.FinishFunc(true);\r\n }\r\n },\r\n async performRemoveNotificationHeader(action) {\r\n utils.log(`RemoveNotificationHeader action handler`);\r\n\r\n if (action.ActionData && action.ActionData.Debug && action.ActionData.Debug.BreakPoint) debugger;\r\n\r\n try {\r\n const name = (action.groupexpn ? utils.evaluate(action.groupexpn, action.context) : '') || '__unnamed__';\r\n\r\n if (name in this.groups)\r\n Vue.delete(this.groups, name);\r\n\r\n this.isvisible = Object.keys(this.groups).length > 0;\r\n\r\n try {\r\n await utils.success(action);\r\n } catch (e) { }\r\n }\r\n catch (e) {\r\n try {\r\n await utils.failure(action, { Data: e });\r\n } catch (e) { }\r\n }\r\n finally {\r\n try {\r\n await utils.complete(action);\r\n }\r\n catch (e) { }\r\n\r\n // Complete the promise for the executeAction method\r\n action.FinishFunc(true);\r\n }\r\n },\r\n },\r\n render(h) {\r\n if (this.isvisible) {\r\n return (\r\n
\r\n {Object.keys(this.groups).map(k => this.groups[k])}\r\n
\r\n );\r\n }\r\n else\r\n return null;\r\n\r\n //return (\r\n // \r\n // {this.content}\r\n // \r\n //);\r\n }\r\n});","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('form',{ref:\"theForm\",attrs:{\"method\":\"post\",\"target\":_vm.target,\"action\":_vm.action}},[_c('input',{attrs:{\"type\":\"hidden\",\"name\":\"accessToken\"},domProps:{\"value\":_vm.accessToken}}),_c('input',{attrs:{\"type\":\"hidden\",\"name\":\"WindowTitle\"},domProps:{\"value\":_vm.WindowTitle}}),_c('input',{attrs:{\"type\":\"hidden\",\"name\":\"TitleBarName\"},domProps:{\"value\":_vm.TitleBarName}}),_c('input',{attrs:{\"type\":\"hidden\",\"name\":\"refreshToken\"},domProps:{\"value\":_vm.refreshToken}})])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\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/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ChildWithTokenOpener.vue?vue&type=script&lang=js&\"; 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/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ChildWithTokenOpener.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ChildWithTokenOpener.vue?vue&type=template&id=9ecb30f6&scoped=true&\"\nimport script from \"./ChildWithTokenOpener.vue?vue&type=script&lang=js&\"\nexport * from \"./ChildWithTokenOpener.vue?vue&type=script&lang=js&\"\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 \"9ecb30f6\",\n null\n \n)\n\nexport default component.exports","import Vue from 'vue';\r\nimport utils from '../../Shared/utils.jsx';\r\nimport methods from '../../Shared/methods';\r\nimport careHelpfulFunctions from '../careHelpfulFunctions.jsx';\r\nimport BaseComponent from './BaseComponentMixin.jsx';\r\nimport EventBus from '../event-bus.js';\r\nimport dialogBasicModal from './actions/DialogBasicModal.jsx';\r\nimport DisplayBasicConfirmModal from './actions/DialogBasicConfirmModal.jsx';\r\nimport NotificationHeader from './actions/DisplayNotificationHeader.jsx';\r\nimport { SnotifyPosition, SnotifyToast, SnotifyToastConfig } from 'vue-snotify';\r\nimport api from '@/Services/api';\r\nimport token from '@/Services/token.jsx';\r\nimport { appSettings } from '@/Shared/appSettings';\r\nimport careService from '@/Services/careService.jsx';\r\nimport html2canvas from 'html2canvas';\r\nimport ChildWithTokenOpener from './ChildWithTokenOpener';\r\nVue.component('child-with-token-opener', ChildWithTokenOpener);\r\nimport cachingService from '@/Services/cachingService';\r\nimport apiService from '@/Services/api';\r\nimport { clone } from 'lodash';\r\n\r\nconst cloneDeep = require('lodash.clonedeep');\r\n\r\nexport default Vue.component('action-service', {\r\n data: function () {\r\n return {\r\n current_dialog: 0,\r\n dialog_content: [null, null, null, null, null],\r\n dialog_data: [null, null, null, null, null],\r\n dialog_visible: [false, false, false, false, false],\r\n toastitems: [],\r\n show_overlay: false,\r\n overlay: { opacity: undefined }\r\n }\r\n },\r\n\r\n created() {\r\n appSettings.careActionService = this;\r\n\r\n EventBus.$on('v-toast', this.toast);\r\n\r\n EventBus.$on('Action-Alert', this.performAlert);\r\n EventBus.$on('Action-ApiRequest', this.performAPI);\r\n EventBus.$on('Action-Broadcast', this.performBroadcast);\r\n EventBus.$on('Action-OpenChildWindow', this.performOpenChildWindow);\r\n EventBus.$on('Action-ClosePopup', this.performClosePopup);\r\n EventBus.$on('Action-DeleteValue', this.performDeleteValue);\r\n EventBus.$on('Action-DisplayBasicModal', this.performDisplayBasicModal);\r\n EventBus.$on('Action-DisplayConfirmModal', this.performDisplayConfirmModal);\r\n EventBus.$on('Action-DisplayPopup', this.performDisplayPopup);\r\n EventBus.$on('Action-EvaluateExpression', this.performEvaluateExpression);\r\n EventBus.$on('Action-FileDownload', this.performDownload);\r\n EventBus.$on('Action-FlushControlCache', this.performFlushControlCache);\r\n EventBus.$on('Action-FlushUrlCache', this.performFlushUrlCache);\r\n EventBus.$on('Action-ForEach', this.performForEach);\r\n EventBus.$on('Action-IfElse', this.performIfElse);\r\n EventBus.$on('Action-LogEntry', this.performLogEntry);\r\n EventBus.$on('Action-ReferenceUserAction', this.performReferenceUserAction);\r\n EventBus.$on('Action-RunActions', this.performRunActions);\r\n EventBus.$on('Action-SetValue', this.performSetValue);\r\n EventBus.$on('Action-UserIdleReset', this.performUserIdleReset);\r\n EventBus.$on('Action-ShowWaitOverlay', this.performShowWaitOverlay);\r\n EventBus.$on('Action-HideWaitOverlay', this.performHideWaitOverlay);\r\n EventBus.$on('Action-Sleep', this.performSleep);\r\n EventBus.$on('Action-Screenshot', this.performScreenshot);\r\n EventBus.$on('Action-HelpTourStop', this.performHelpTourStop);\r\n EventBus.$on('Action-SetLanguage', this.performSetLanguage);\r\n EventBus.$on('Action-RunControlCommand', this.performRunControlCommand);\r\n EventBus.$on('Action-OpenDocumentEditor', this.performOpenDocumentEditor);\r\n EventBus.$on('Action-ValidateForm', this.performValidateForm);\r\n\r\n //temporary until we implement\r\n EventBus.$on('Action-Badge', this.performBadge);\r\n\r\n },\r\n destroyed() {\r\n EventBus.$off('v-toast', this.toast);\r\n\r\n // hot reload runs destroyed, but created does not get re-run, so if we do this, we lose all subscriptions after hot reload (testing....)\r\n EventBus.$off('Action-Alert', this.performAlert);\r\n EventBus.$off('Action-ApiRequest', this.performAPI);\r\n EventBus.$off('Action-Broadcast', this.performBroadcast);\r\n EventBus.$off('Action-OpenChildWindow', this.performOpenChildWindow);\r\n EventBus.$off('Action-ClosePopup', this.performClosePopup);\r\n EventBus.$off('Action-DeleteValue', this.performDeleteValue);\r\n EventBus.$off('Action-DisplayBasicModal', this.performDisplayBasicModal);\r\n EventBus.$off('Action-DisplayConfirmModal', this.performDisplayConfirmModal);\r\n EventBus.$off('Action-DisplayPopup', this.performDisplayPopup);\r\n EventBus.$off('Action-EvaluateExpression', this.performEvaluateExpression);\r\n EventBus.$off('Action-FileDownload', this.performDownload);\r\n EventBus.$off('Action-FlushControlCache', this.performFlushControlCache);\r\n EventBus.$off('Action-FlushUrlCache', this.performFlushUrlCache);\r\n EventBus.$off('Action-ForEach', this.performForEach);\r\n EventBus.$off('Action-IfElse', this.performIfElse);\r\n EventBus.$off('Action-LogEntry', this.performLogEntry);\r\n EventBus.$off('Action-ReferenceUserAction', this.performReferenceUserAction);\r\n EventBus.$off('Action-RunActions', this.performRunActions);\r\n EventBus.$off('Action-SetValue', this.performSetValue);\r\n EventBus.$off('Action-UserIdleReset', this.performUserIdleReset);\r\n EventBus.$off('Action-ShowWaitOverlay', this.performShowWaitOverlay);\r\n EventBus.$off('Action-HideWaitOverlay', this.performHideWaitOverlay);\r\n EventBus.$off('Action-Sleep', this.performSleep);\r\n EventBus.$off('Action-Screenshot', this.performScreenshot);\r\n EventBus.$off('Action-HelpTourStop', this.performHelpTourStop);\r\n EventBus.$off('Action-SetLanguage', this.performSetLanguage);\r\n EventBus.$off('Action-RunControlCommand', this.performRunControlCommand);\r\n EventBus.$off('Action-OpenDocumentEditor', this.performOpenDocumentEditor);\r\n EventBus.$off('Action-ValidateForm', this.performValidateForm);\r\n },\r\n methods: {\r\n toast(info) {\r\n const settings = {\r\n bodyMaxLength: 100,\r\n titleMaxLength: 40,\r\n backdrop: -1,\r\n position: SnotifyPosition.rightBottom,\r\n timeout: info.timeout == 0 ? 0 : info.timeout || 5000,\r\n showProgressBar: false,\r\n closeOnClick: true,\r\n pauseOnHover: true,\r\n id: info.name,\r\n };\r\n\r\n let toast;\r\n switch (info.type) {\r\n case 'success': toast = this.$snotify.success(info.subtext, info.text, settings); break;\r\n case 'info': toast = this.$snotify.info(info.subtext, info.text, settings); break;\r\n case 'warning': toast = this.$snotify.warning(info.subtext, info.text, settings); break;\r\n case 'error': toast = this.$snotify.error(info.subtext, info.text, settings); break;\r\n }\r\n\r\n if (info.ontap)\r\n toast.on('click', (t) => {\r\n utils.executeAndCompileAllActions(info.ontap, { Title: t.title, Body: t.body }, info.context);\r\n });\r\n\r\n if (info.onhide)\r\n toast.on('hidden', (t) => {\r\n utils.executeAndCompileAllActions(info.onhide, { Title: t.title, Body: t.body }, info.context);\r\n });\r\n },\r\n removetoast(id) {\r\n this.$snotify.remove(id);\r\n },\r\n\r\n getNextDialog() {\r\n for (let index = 0; index < this.dialog_visible.length; index++)\r\n if (!this.dialog_visible[index] && this.dialog_content[index] === null)\r\n return index;\r\n\r\n throw 'Dialogs are all in use!';\r\n },\r\n releaseDialog() {\r\n if (this.current_dialog >= 0 && this.current_dialog < this.dialog_visible.length) {\r\n this.dialog_content[this.current_dialog] = null;\r\n this.dialog_data[this.current_dialog] = null;\r\n this.dialog_visible[this.current_dialog] = false;\r\n }\r\n },\r\n\r\n dialog_close(index) {\r\n Vue.set(this.dialog_visible, index, false);\r\n \r\n // After 300ms, clear the content to allow everything within to be disposed\r\n setTimeout(() => { Vue.set(this.dialog_content, index, null) }, 300);\r\n },\r\n\r\n displayToast(action, successful, res) {\r\n // Note: To send a toast from outside this unit, emit v-toast through the event bus:\r\n // EventBus.$emit('v-toast', { ... });\r\n\r\n if (action.ActionData.DefaultToast) {\r\n if (successful)\r\n this.toast({ text: 'Success', subtext: 'The operation completed successfully', type: 'success', icon: 'mdi mdi-check' });\r\n else\r\n this.toast({\r\n text: 'Error',\r\n subtext: res ? res.StatusText : '',\r\n type: 'error',\r\n icon: 'mdi mdi-alert',\r\n ontap: [\r\n {\r\n \"PrimitiveAction\": true,\r\n \"ActionType\": \"DisplayConfirmModal\",\r\n \"RunAsync\": false,\r\n \"ActionData\": {\r\n \"OkayButtonText\": \"Okay\",\r\n \"CancelButtonText\": \"Cancel\",\r\n \"Debug\": {},\r\n \"Title\": \"Error \" + (res ? res.Status : ''),\r\n \"Message\": res ? res.StatusText : ''\r\n }\r\n }\r\n ],\r\n context: action.context,\r\n });\r\n }\r\n else if (action.ActionData.DefaultToast === false && action.ActionData.Toast) {\r\n let toast = successful ? action.ActionData.Toast.SuccessToast : action.ActionData.Toast.ErrorToast;\r\n if (!toast)\r\n return;\r\n\r\n if (toast.Title || toast.Message) {\r\n action.context.Input = { ...res };\r\n const title = toast.title ? utils.evaluate(toast.title, action.context) : 'Saved';\r\n const message = toast.title ? utils.evaluate(toast.message, action.context) : '';\r\n\r\n this.toast({ text: title, subtext: message, type: successful ? 'success' : 'error', ontap: toast.OnTapActions, context: action.context });\r\n }\r\n }\r\n },\r\n\r\n async performAPI(action) {\r\n //utils.log(`ActionService API ${action.ActionData.URL}`);\r\n\r\n if (action.ActionData.Debug && action.ActionData.Debug.BreakPoint) debugger;\r\n\r\n let input;\r\n\r\n try {\r\n let headers;\r\n if (action.headers_fn)\r\n // Evaluates to an array of Name, Value\r\n headers = utils.evaluateObject(action.headers_fn, action.context);\r\n else if (action.headers_list) {\r\n // Construct an array of Name, Value\r\n headers = [];\r\n for (let i = 0; i < action.headers_list.length; i++) {\r\n const h = action.headers_list[i];\r\n const n = utils.evaluate(h.namefn, action.context);\r\n const v = utils.evaluate(h.valuefn, action.context);\r\n headers.push({\r\n Name: n,\r\n Value: v,\r\n });\r\n }\r\n }\r\n\r\n let headers_obj;\r\n if (headers) {\r\n // Transform the headers Name Value array into an object\r\n headers_obj = {};\r\n for (let i = 0; i < headers.length; i++)\r\n headers_obj[headers[i].Name] = headers[i].Value;\r\n }\r\n\r\n let apiRequest = {\r\n method: utils.evaluate(action.method, action.context),\r\n url: utils.evaluate(action.url, action.context),\r\n data: action.data ? utils.evaluateObject(action.data, action.context) : null,\r\n headers: headers_obj,\r\n flatten: false,\r\n addAccessTokenInHeader: action.ActionData.IncludeAccessToken,\r\n doNotUseWebsocket: action.ActionData.DoNotUseWebsocket,\r\n };\r\n\r\n let res;\r\n let provider;\r\n if (action.apiprovider)\r\n provider = utils.evaluate(action.apiprovider, action.context);\r\n\r\n if (provider && provider.APIRequest)\r\n // Optionally defer the API to another implementation (RTEventHandler is one)\r\n res = await provider.APIRequest(apiRequest);\r\n else\r\n res = await api.apiRequest(apiRequest);\r\n\r\n input = {\r\n Status: res.status || '200',\r\n StatusText: res.statusText || 'Success',\r\n Data: (res.data && typeof res.data == 'object' && 'Result' in res.data) ? res.data.Result : res.data,\r\n Output: res.data?.Output,\r\n RawResult: res,\r\n };\r\n\r\n this.displayToast(action, true, input);\r\n\r\n try {\r\n await utils.success(action, input);\r\n } catch (e) { }\r\n }\r\n catch (e) {\r\n // SignalR backwards compatability\r\n var statusCode = e.StatusCode ? e.StatusCode : e.statusCode;\r\n var reasonPhrase = e.ReasonPhrase ? e.ReasonPhrase : e.reasonPhrase;\r\n\r\n this.displayToast(action, false, { Status: statusCode, StatusText: reasonPhrase || e.statusText});\r\n\r\n try {\r\n await utils.failure(action, { Status: statusCode, StatusText: reasonPhrase || e.statusText, RawResult: e });\r\n } catch (e) { }\r\n }\r\n finally {\r\n try {\r\n await utils.complete(action, input);\r\n }\r\n catch (e) { }\r\n\r\n // Complete the promise for the executeAction method\r\n action.FinishFunc(true);\r\n }\r\n },\r\n async performAlert(action) {\r\n utils.log(`ActionService Alert ${action.ActionData.Message}`);\r\n\r\n if (action.ActionData.Debug && action.ActionData.Debug.BreakPoint) debugger;\r\n\r\n try {\r\n const msg = utils.evaluate(action.message, action.context);\r\n\r\n alert(msg);\r\n }\r\n catch (e) {\r\n utils.error(`ActionService Alert ${action.ActionData.Message} failed: ${e}`);\r\n }\r\n finally {\r\n try {\r\n await utils.complete(action);\r\n }\r\n catch (e) { }\r\n\r\n // Complete the promise for the executeAction method\r\n action.FinishFunc(true);\r\n }\r\n },\r\n async performBroadcast(action) {\r\n utils.log(`ActionService Broadcast ${action.ActionData.Message} ${action.ActionData.MessageData}`);\r\n\r\n if (action.ActionData && action.ActionData.Debug && action.ActionData.Debug.BreakPoint) debugger;\r\n\r\n try {\r\n const message = utils.evaluate(action.message, action.context);\r\n const messagedata = utils.evaluateObject(action.messagedata, action.context);\r\n\r\n utils.debug(`Broadcast MessageData:${messagedata}`);\r\n\r\n EventBus.$emit(message, messagedata);\r\n\r\n try {\r\n await utils.success(action);\r\n } catch (e) { }\r\n }\r\n catch (e) {\r\n try {\r\n await utils.failure(action, { Data: e });\r\n } catch (e) { }\r\n }\r\n finally {\r\n try {\r\n await utils.complete(action);\r\n }\r\n catch (e) { }\r\n\r\n // Complete the promise for the executeAction method\r\n action.FinishFunc(true);\r\n }\r\n },\r\n async performOpenChildWindow(action){\r\n if (action.ActionData && action.ActionData.Debug && action.ActionData.Debug.BreakPoint) debugger;\r\n\r\n try {\r\n let targetWindowName = '_blank';\r\n let url = '';\r\n let specs = '';\r\n\r\n if(action.targetWindowName)\r\n targetWindowName = utils.evaluate(action.targetWindowName, action.context);\r\n if(action.URL)\r\n url = utils.evaluate(action.URL, action.context);\r\n if(action.specs)\r\n specs = utils.evaluate(action.specs, action.context);\r\n\r\n // because child windows inherit a copy of the parent's sessionStorage, we throw a value in that tells our system to clear the storage.\r\n // this is because we don't want the access token inhertied to the child window giving it a security context when that wasn't intended.\r\n if (window.sessionStorage)\r\n {\r\n window.sessionStorage.setItem(\"ChildWindowClearSessionStorage\", \"true\");\r\n }\r\n\r\n window.open(url, targetWindowName, specs);\r\n\r\n if (window.sessionStorage)\r\n {\r\n window.sessionStorage.removeItem(\"ChildWindowClearSessionStorage\");\r\n }\r\n\r\n try {\r\n await utils.success(action);\r\n } catch (e) { }\r\n }\r\n catch (e) {\r\n try {\r\n await utils.failure(action, { Data: e });\r\n } catch (e) { }\r\n }\r\n finally {\r\n try {\r\n await utils.complete(action);\r\n }\r\n catch (e) { }\r\n\r\n // Complete the promise for the executeAction method\r\n action.FinishFunc(true);\r\n }\r\n },\r\n async performDisplayPopup(action) {\r\n utils.log(`ActionService DisplayPopup ${action.ActionData.Title} ${action.ActionData.Body}`);\r\n\r\n if (action.ActionData.Debug && action.ActionData.Debug.BreakPoint) debugger;\r\n\r\n try {\r\n this.toast({\r\n name: action.ActionData.Name,\r\n text: action.title ? utils.evaluate(action.title, action.context) : '',\r\n subtext: action.body ? utils.evaluate(action.body, action.context) : '',\r\n timeout: action.timeout ? (action.timeout.code == 0 ? 0 : (utils.evaluate(action.timeout, action.context) || 5000)) : 5000,\r\n type: action.ActionData.Type,\r\n ontap: action.ActionData.TapActions,\r\n onhide: action.ActionData.HiddenActions,\r\n context: action.context\r\n });\r\n\r\n try {\r\n await utils.success(action);\r\n } catch (e) { }\r\n }\r\n catch (e) {\r\n try {\r\n await utils.failure(action, { Data: e });\r\n } catch (e) { }\r\n }\r\n finally {\r\n try {\r\n await utils.complete(action);\r\n }\r\n catch (e) { }\r\n\r\n // Complete the promise for the executeAction method\r\n action.FinishFunc(true);\r\n }\r\n },\r\n async performDownload(action) {\r\n utils.log(`FileDownload ${action.ActionData.FileName}`);\r\n\r\n if (action.ActionData.Debug && action.ActionData.Debug.BreakPoint) debugger;\r\n\r\n try {\r\n const fileURL = utils.evaluate(action.fileURL, action.context);\r\n const target = utils.evaluate(action.target, action.context);\r\n const filename = utils.evaluate(action.filename, action.context);\r\n\r\n let url = api.standardizeUrl(fileURL);\r\n\r\n //New way of downloading - this instructs the browser to treat the URL as something to donwload (as opposed to navigating to it)\r\n url += (url.indexOf('?') > 0 ? '&' : '?');\r\n url += 'access_token=' + encodeURIComponent(token.AccessToken());\r\n // Construct the element\r\n let link = document.createElement(\"a\");\r\n link.download = filename;\r\n if (target)\r\n link.target = target;\r\n // Construct the uri for data download. This is disabled for now, but we might want to use it later. It allows us to download raw data from a variable instead of using a URL.\r\n //var uri = 'data:application/octet-stream;charset=utf-8;base64,' + btoa(action.ActionData.data)\r\n link.href = url;\r\n document.body.appendChild(link); //We append the link to the body for Firefox compatibility.\r\n link.click();\r\n // Cleanup the DOM\r\n document.body.removeChild(link);\r\n \r\n try {\r\n await utils.success(action);\r\n } catch (e) { }\r\n }\r\n catch (e) {\r\n this.displayToast(action, false, e.response);\r\n\r\n try {\r\n await utils.failure(action, { Status: e.status, StatusText: e.response.statusText });\r\n } catch (e) { }\r\n }\r\n finally {\r\n try {\r\n await utils.complete(action);\r\n }\r\n catch (e) { }\r\n\r\n // Complete the promise for the executeAction method\r\n action.FinishFunc(true);\r\n }\r\n },\r\n async performClosePopup(action) {\r\n utils.log(`ActionService ClosePopup ${action.ActionData.Title} ${action.ActionData.Body}`);\r\n\r\n if (action.ActionData.Debug && action.ActionData.Debug.BreakPoint) debugger;\r\n\r\n try {\r\n const id = utils.evaluate(action.popupname, action.context);\r\n this.removetoast(id);\r\n\r\n try {\r\n await utils.success(action);\r\n } catch (e) { }\r\n }\r\n catch (e) {\r\n try {\r\n await utils.failure(action, { Data: e });\r\n } catch (e) { }\r\n }\r\n finally {\r\n try {\r\n await utils.complete(action);\r\n }\r\n catch (e) { }\r\n\r\n // Complete the promise for the executeAction method\r\n action.FinishFunc(true);\r\n }\r\n },\r\n async performSetValue(action) {\r\n utils.log(`ActionService SetValue ${action.ActionData.Field} = ${action.ActionData.Value} (code:${action.expression.code})`);\r\n\r\n if (action.ActionData.Debug && action.ActionData.Debug.BreakPoint) debugger;\r\n\r\n try {\r\n let value = utils.evaluateObject(action.value, action.context);\r\n\r\n if (action.ActionData.DeepCopy)\r\n value = cloneDeep(value);\r\n\r\n action.expression.func(value, action.context, careHelpfulFunctions, Vue);\r\n\r\n try {\r\n await utils.success(action);\r\n }\r\n catch (e) { }\r\n }\r\n catch (e) {\r\n utils.warn(`SetValue failed, value: ${action.ActionData.Value}; compiled statement: ${action.expression.code}`, e);\r\n\r\n try {\r\n await utils.failure(action);\r\n }\r\n catch (e) { }\r\n }\r\n finally {\r\n try {\r\n await utils.complete(action);\r\n }\r\n catch (e) { }\r\n\r\n // Complete the promise for the executeAction method\r\n action.FinishFunc(true);\r\n }\r\n },\r\n async performDeleteValue(action) {\r\n utils.log(`ActionService DeleteValue ${action.ActionData.IsArray ? 'IsArray' : 'IsObject'} ${action.ActionData.PropertyName || action.ActionData.ArrayIndex} (code:${action.expr.code})`);\r\n\r\n if (action.ActionData.Debug && action.ActionData.Debug.BreakPoint) debugger;\r\n\r\n try {\r\n let value;\r\n if (action.propname)\r\n value = utils.evaluate(action.propname, action.context);\r\n\r\n action.expr.func(value, action.context, careHelpfulFunctions, Vue);\r\n }\r\n finally {\r\n try {\r\n await utils.complete(action);\r\n }\r\n catch (e) { }\r\n\r\n // Complete the promise for the executeAction method\r\n action.FinishFunc(true);\r\n }\r\n },\r\n async performEvaluateExpression(action) {\r\n utils.log(`ActionService EvaluateExpression ${action.ActionData.Expression}`);\r\n\r\n if (action.ActionData.Debug && action.ActionData.Debug.BreakPoint) debugger;\r\n\r\n try {\r\n if (action.ActionData.ResolveActionPromiseManually) {\r\n // The code inside action.expression will manually call\r\n // ActionPromiseResolve or ActionPromiseReject. We don't\r\n // need to wait around as that will trigger the FinishFunc\r\n // which is normally called below. So we will exit now.\r\n\r\n action.context.ActionPromiseResolve = async function (result) {\r\n //utils.log(`*** Succeeded invoking Action ${action.ActionType} ActionData:${JSON.stringify(action.ActionData)}`);\r\n try {\r\n await utils.success(action, { Data: result });\r\n }\r\n catch (e) { }\r\n try {\r\n await utils.complete(action);\r\n }\r\n catch (e) { }\r\n\r\n action.FinishFunc(true, result);\r\n };\r\n action.context.ActionPromiseReject = async function (result) {\r\n utils.log(`*** Failed invoking Action ${action.ActionType} ActionData:${JSON.stringify(action.ActionData)}`);\r\n try {\r\n await utils.failure(action, { Data: result });\r\n }\r\n catch (e) { }\r\n try {\r\n await utils.complete(action);\r\n }\r\n catch (e) { }\r\n\r\n action.FinishFunc(false, result);\r\n };\r\n }\r\n\r\n let result;\r\n if (!action.ActionData.Expression || action.ActionData.Expression.includes('PlantUML')) // Ignore all references to PlantUML since they involve referencing old Angular code structures that do not exist\r\n result = true;\r\n else\r\n result = utils.evaluate(action.expression, action.context);\r\n\r\n if (action.ActionData.ResolveActionPromiseManually)\r\n // Bail here since the success/failure/complete and FinishFunc will be triggered\r\n // when the Javascript explicitly calls ActionPromiseResolve or ActionPromiseReject\r\n return;\r\n\r\n if (result)\r\n await utils.success(action, { Data: result });\r\n else\r\n await utils.failure(action, { Data: result });\r\n }\r\n finally {\r\n if (!action.ActionData.ResolveActionPromiseManually) {\r\n\r\n try {\r\n await utils.complete(action);\r\n }\r\n catch (e) { }\r\n\r\n // Complete the promise for the executeAction method\r\n action.FinishFunc(true);\r\n }\r\n }\r\n },\r\n async performIfElse(action) {\r\n utils.log(`ActionService IfElse (${action.ActionData.Expressions.length} expression(s))`);\r\n\r\n if (action.ActionData.Debug && action.ActionData.Debug.BreakPoint) debugger;\r\n\r\n try {\r\n for (let i = 0; i < action.ActionData.Expressions.length; i++) {\r\n const e = action.ActionData.Expressions[i];\r\n let result = !e.expression || utils.evaluate(e.expression, action.context)\r\n if (result) {\r\n //utils.log(` IfElse (${e.Expression}) condition met, invoking ${e.Actions ? e.Actions.length : 0} action(s)`);\r\n await utils.executeAndCompileAllActions(e.Actions, { Result: result }, action.context);\r\n break;\r\n }\r\n //else\r\n // utils.log(` IfElse (${e.Expression}) condition not met`);\r\n }\r\n\r\n await utils.success(action);\r\n }\r\n catch (e) {\r\n try {\r\n await utils.failure(action, { Data: e });\r\n } catch (e) { }\r\n }\r\n finally {\r\n try {\r\n await utils.complete(action);\r\n }\r\n catch (e) { }\r\n\r\n // Complete the promise for the executeAction method\r\n action.FinishFunc(true);\r\n }\r\n },\r\n async performDisplayConfirmModal(action) {\r\n utils.log(`ActionService DisplayConfirmModal`);\r\n\r\n if (action.ActionData.Debug && action.ActionData.Debug.BreakPoint) debugger;\r\n\r\n const index = this.getNextDialog();\r\n const key = utils.generateUUID();\r\n\r\n // Function to be called when the dialog is closed, this will complete\r\n // the DisplayBasicModal action and pass back the dialog result.\r\n const handleResult = async (result) => {\r\n this.dialog_close(index);\r\n\r\n if (result && result.Success)\r\n try {\r\n await utils.success(action, { Success: true, DialogResult: result.DialogResult });\r\n } catch (e) { }\r\n else\r\n try {\r\n await utils.failure(action, { Success: false, DialogResult: result.DialogResult });\r\n } catch (e) { }\r\n\r\n try {\r\n await utils.complete(action);\r\n }\r\n catch (e) { }\r\n\r\n action.FinishFunc(true);\r\n };\r\n\r\n Vue.set(this.dialog_content, index, (\r\n \r\n \r\n ));\r\n Vue.set(this.dialog_visible, index, true);\r\n Vue.set(this.dialog_data, index, action);\r\n this.current_dialog = index;\r\n },\r\n async performDisplayBasicModal(action) {\r\n utils.log(`ActionService DisplayBasicModal`);\r\n\r\n if (action.ActionData.Debug && action.ActionData.Debug.BreakPoint) debugger;\r\n\r\n const index = this.getNextDialog();\r\n const key = utils.generateUUID();\r\n\r\n // Function to be called when the dialog is closed, this will complete\r\n // the DisplayBasicModal action and pass back the dialog result.\r\n const handleResult = async (result) => {\r\n this.dialog_close(index);\r\n\r\n // Store this so a ReferencedUserAction can read it\r\n action.Input = result;\r\n\r\n if (result && result.Success)\r\n try {\r\n await utils.success(action, { DialogResult: result.DialogResult });\r\n } catch (e) { }\r\n else\r\n try {\r\n await utils.failure(action, { DialogResult: result.DialogResult });\r\n } catch (e) { }\r\n\r\n try {\r\n await utils.complete(action, { DialogResult: result.DialogResult });\r\n }\r\n catch (e) { }\r\n\r\n action.FinishFunc(true);\r\n };\r\n\r\n Vue.set(this.dialog_visible, index, true);\r\n Vue.set(this.dialog_data, index, action.ActionData);\r\n Vue.set(this.dialog_content, index, (\r\n this.performConfirmCloseDialog(result, handleResult)}\r\n scopeitems={action.context.scopeitems}\r\n controlscope={action.context.controlscope}\r\n >\r\n \r\n ));\r\n this.current_dialog = index;\r\n },\r\n async performConfirmCloseDialog(result, doClose) {\r\n if (result.AllowClose) {\r\n doClose(result);\r\n return;\r\n }\r\n\r\n const index = this.getNextDialog();\r\n const key = utils.generateUUID();\r\n\r\n // Function to be called when the dialog is closed, this will complete\r\n // the DisplayBasicModal action and pass back the dialog result.\r\n const handleResult = async (r) => {\r\n this.dialog_close(index);\r\n\r\n if (r.Success)\r\n doClose(result);\r\n };\r\n\r\n Vue.set(this.dialog_content, index, (\r\n \r\n \r\n \r\n Unsaved Changes\r\n \r\n\r\n \r\n\r\n handleResult({ Success: false })}>\r\n mdi-close\r\n \r\n \r\n\r\n \r\n Are you sure you want to exit without saving?\r\n \r\n\r\n \r\n handleResult({ Success: false })}>Cancel\r\n handleResult({ Success: true })}>Confirm\r\n \r\n \r\n ));\r\n Vue.set(this.dialog_visible, index, true);\r\n this.current_dialog = index;\r\n },\r\n async performRunActions(action) {\r\n utils.log(`ActionService RunActions`);\r\n\r\n if (action.ActionData && action.ActionData.Debug && action.ActionData.Debug.BreakPoint) debugger;\r\n\r\n try {\r\n let actions = utils.evaluateObject(action.actions, action.context);\r\n let context = action.context;\r\n if (action.newcontext)\r\n context = utils.evaluateObject(action.newcontext, action.context);\r\n\r\n await utils.executeAndCompileAllActions(actions, {}, context);\r\n\r\n try {\r\n await utils.success(action);\r\n } catch (e) { }\r\n }\r\n catch (e) {\r\n try {\r\n await utils.failure(action);\r\n } catch (e) { }\r\n }\r\n finally {\r\n try {\r\n await utils.complete(action);\r\n }\r\n catch (e) { }\r\n\r\n // Complete the promise for the executeAction method\r\n action.FinishFunc(true);\r\n }\r\n\r\n // Complete the promise for the executeAction method\r\n action.FinishFunc(true);\r\n },\r\n async performForEach(action) {\r\n utils.log(`ActionService ForEach ${action.ActionData.Source}`);\r\n\r\n if (action.ActionData && action.ActionData.Debug && action.ActionData.Debug.BreakPoint) debugger;\r\n\r\n try {\r\n let source;\r\n if (action.source)\r\n source = utils.evaluateObject(action.source, action.context);\r\n\r\n if (source && typeof source === 'object' && Array.isArray(source))\r\n for (let i = 0; i < source.length; i++)\r\n await utils.executeAndCompileAllActions(action.ActionData.Actions, { Data: source[i] }, action.context);\r\n else if (source && typeof source === 'object')\r\n for (let key in source)\r\n await utils.executeAndCompileAllActions(action.ActionData.Actions, { Data: source[key] }, action.context);\r\n\r\n try {\r\n await utils.success(action);\r\n } catch (e) { }\r\n }\r\n catch (e) {\r\n try {\r\n await utils.failure(action, { Status: e.status, StatusText: e.statusText });\r\n } catch (e) { }\r\n }\r\n finally {\r\n try {\r\n await utils.complete(action);\r\n }\r\n catch (e) { }\r\n\r\n // Complete the promise for the executeAction method\r\n action.FinishFunc(true);\r\n }\r\n },\r\n async performLogEntry(action) {\r\n utils.log(`ActionService LogEntry ${action.ActionData.Message}`);\r\n\r\n if (action.ActionData && action.ActionData.Debug && action.ActionData.Debug.BreakPoint) debugger;\r\n\r\n try {\r\n const message = action.message ? utils.evaluate(action.message, action.context) : '';\r\n\r\n switch (action.ActionData.LogLevel) {\r\n case 'Info': utils.log(message); break;\r\n\r\n case 'Debug': utils.debug(message); break;\r\n\r\n case 'Error': utils.error(message); break;\r\n }\r\n\r\n try {\r\n await utils.success(action, { Data: message });\r\n } catch (e) { }\r\n }\r\n catch (e) {\r\n try {\r\n await utils.failure(action, { Status: e.status, StatusText: e.statusText });\r\n } catch (e) { }\r\n }\r\n finally {\r\n try {\r\n await utils.complete(action);\r\n }\r\n catch (e) { }\r\n\r\n // Complete the promise for the executeAction method\r\n action.FinishFunc(true);\r\n }\r\n },\r\n async performFlushControlCache(action) {\r\n cachingService.clearCache('APICache');\r\n\r\n action.FinishFunc(true);\r\n },\r\n async performFlushUrlCache(action) {\r\n cachingService.clearCache('APICache');\r\n\r\n action.FinishFunc(true);\r\n },\r\n async performUserIdleReset(action) {\r\n action.FinishFunc(true);\r\n },\r\n async performReferenceUserAction(action) {\r\n utils.log(`ActionService ReferenceUserAction ${action.ActionData.UserAction.ActionURL}`);\r\n\r\n if (action.ActionData && action.ActionData.Debug && action.ActionData.Debug.BreakPoint) debugger;\r\n\r\n try {\r\n let input;\r\n\r\n if (action.referencedAction) {\r\n // This version was compiled up front (utils.compileAction)\r\n await utils.executeAction(action.referencedAction, action.context.Input, action.context);\r\n\r\n input = action.referencedAction.compiled().Input;\r\n }\r\n else {\r\n // The up front compile was unsuccessful, so we are doing it now\r\n const url = utils.evaluate(action.actionURL, action.context);\r\n\r\n let apiRequest = {\r\n method: 'GET',\r\n url: `Document/Action/${url}`,\r\n doNotUseWebsocket: true,\r\n flatten: true,\r\n cache: action.ActionData.UserAction.CacheAction\r\n };\r\n\r\n const res = await apiService.apiRequest(apiRequest);\r\n\r\n await utils.compileAction(action.context, res);\r\n\r\n if (action.ActionData.UserAction.ActionData) {\r\n // Get the compiled action from the newly compiled version so that I can save essential data in it\r\n const resolved_compiled = res.compiled();\r\n\r\n // Build a function that will generate action data to be read as ParamByName(...)\r\n resolved_compiled.actiondatafunc = utils.compileObject(action.context, action.ActionData.UserAction.ActionData);\r\n //resolved_compiled.preactionExpn = actionExpn;\r\n }\r\n\r\n await utils.executeAction(res, action.context.Input, action.context);\r\n\r\n input = res.compiled().Input;\r\n }\r\n\r\n try {\r\n if (!input || !(typeof input === 'object') || !('Success' in input) || input.Success)\r\n await utils.success(action, input);\r\n else\r\n await utils.failure(action, input);\r\n } catch (e) { }\r\n }\r\n catch (e) {\r\n try {\r\n await utils.failure(action);\r\n } catch (e) { }\r\n }\r\n finally {\r\n try {\r\n await utils.complete(action);\r\n }\r\n catch (e) { }\r\n\r\n // Complete the promise for the executeAction method\r\n action.FinishFunc(true);\r\n }\r\n },\r\n async performShowWaitOverlay(action) {\r\n utils.log(`ActionService ShowWaitOverlay`);\r\n\r\n if (action.ActionData && action.ActionData.Debug && action.ActionData.Debug.BreakPoint) debugger;\r\n\r\n try {\r\n if (action.ActionData.OpacityLevel)\r\n this.overlay.opacity = action.ActionData.OpacityLevel;\r\n else\r\n this.overlay.opacity = undefined;\r\n\r\n this.show_overlay = true;\r\n\r\n if (action.ActionData.TimedOverlay && action.ActionData.Timer > 0)\r\n setTimeout(() => { this.show_overlay = false; }, action.ActionData.Timer);\r\n\r\n try {\r\n await utils.success(action);\r\n } catch (e) { }\r\n }\r\n catch (e) {\r\n try {\r\n await utils.failure(action);\r\n } catch (e) { }\r\n }\r\n finally {\r\n try {\r\n await utils.complete(action);\r\n }\r\n catch (e) { }\r\n\r\n // Complete the promise for the executeAction method\r\n action.FinishFunc(true);\r\n }\r\n },\r\n async performHideWaitOverlay(action) {\r\n utils.log(`ActionService HideWaitOverlay`);\r\n\r\n if (action.ActionData && action.ActionData.Debug && action.ActionData.Debug.BreakPoint) debugger;\r\n\r\n try {\r\n this.show_overlay = false;\r\n\r\n try {\r\n await utils.success(action);\r\n } catch (e) { }\r\n }\r\n catch (e) {\r\n try {\r\n await utils.failure(action);\r\n } catch (e) { }\r\n }\r\n finally {\r\n try {\r\n await utils.complete(action);\r\n }\r\n catch (e) { }\r\n\r\n // Complete the promise for the executeAction method\r\n action.FinishFunc(true);\r\n }\r\n },\r\n async performSleep(action) {\r\n utils.log(`ActionService Sleep Duration:${action.ActionData.Duration}`);\r\n\r\n if (action.ActionData && action.ActionData.Debug && action.ActionData.Debug.BreakPoint) debugger;\r\n\r\n if (action.ActionData.Duration > 0)\r\n setTimeout(async () => {\r\n utils.debug(`Sleep expired`);\r\n\r\n try {\r\n await utils.success(action);\r\n } catch (e) { }\r\n\r\n try {\r\n await utils.complete(action);\r\n }\r\n catch (e) { }\r\n\r\n // Complete the promise for the executeAction method\r\n action.FinishFunc(true);\r\n }, action.ActionData.Duration);\r\n },\r\n async performScreenshot(action) {\r\n utils.log(`ActionService Screenshot`);\r\n\r\n if (action.ActionData && action.ActionData.Debug && action.ActionData.Debug.BreakPoint) debugger;\r\n\r\n const screen = action.context.Root.$refs.mainscreen.$el;\r\n\r\n try {\r\n const canvas = await html2canvas(screen, {\r\n backgroundColor: '#FFFFFF',\r\n useCORS: true\r\n });\r\n\r\n if (navigator.msSaveBlob) { // IE10+ \r\n try {\r\n await utils.failure(action, { Error: 'IE is not supported' });\r\n } catch (e) { }\r\n }\r\n else {\r\n let imageurl = canvas.toDataURL('image/png');\r\n\r\n try {\r\n await utils.success(action, { ImageUrl: imageurl });\r\n } catch (e) { }\r\n }\r\n }\r\n catch (e) {\r\n try {\r\n await utils.failure(action, { Error: e });\r\n } catch (e) { }\r\n }\r\n finally {\r\n try {\r\n await utils.complete(action);\r\n }\r\n catch (e) { }\r\n\r\n // Complete the promise for the executeAction method\r\n action.FinishFunc(true);\r\n }\r\n },\r\n //temporary until we implement badge\r\n async performBadge(action) {\r\n action.FinishFunc(true);\r\n },\r\n async performHelpTourStop(action) {\r\n action.FinishFunc(true);\r\n },\r\n async performSetLanguage(action) {\r\n utils.log(`ActionService SetLanguage ${action.ActionData.Language}`);\r\n\r\n if (action.ActionData && action.ActionData.Debug && action.ActionData.Debug.BreakPoint) debugger;\r\n\r\n const lang = utils.evaluate(action.language, action.context);\r\n\r\n try {\r\n careService.setSelectedLanguage(lang);\r\n\r\n try {\r\n await utils.success(action);\r\n } catch (e) { }\r\n }\r\n catch (e) {\r\n try {\r\n await utils.failure(action, { Error: e });\r\n } catch (e) { }\r\n }\r\n finally {\r\n try {\r\n await utils.complete(action);\r\n }\r\n catch (e) { }\r\n\r\n // Complete the promise for the executeAction method\r\n action.FinishFunc(true);\r\n }\r\n },\r\n async performRunControlCommand(action) {\r\n utils.log(`ActionService RunControlCommand ${action.ActionData.ControlName} ${action.ActionData.CommandName}`);\r\n\r\n if (action.ActionData && action.ActionData.Debug && action.ActionData.Debug.BreakPoint) debugger;\r\n\r\n try {\r\n const controlName = utils.evaluate(action.controlName, action.context);\r\n const commandName = utils.evaluate(action.commandName, action.context);\r\n const input = utils.evaluate(action.input, action.context);\r\n\r\n if (action.context.Control[controlName] && action.context.Control[controlName][commandName]) {\r\n const cmd = action.context.Control[controlName][commandName];\r\n if (cmd && cmd.Actions && Array.isArray(cmd.Actions))\r\n await utils.executeAndCompileAllActions(cmd.Actions, input, action.context, cmd.ControlScope, cmd.ScopeItems);\r\n\r\n try {\r\n await utils.success(action);\r\n } catch (e) { }\r\n }\r\n else\r\n try {\r\n await utils.failure(action, { Error: `ControlName:${controlName} and CommandName:${commandName} not found` });\r\n } catch (e) { }\r\n\r\n }\r\n catch (e) {\r\n try {\r\n await utils.failure(action, { Error: e });\r\n } catch (e) { }\r\n }\r\n finally {\r\n try {\r\n await utils.complete(action);\r\n }\r\n catch (e) { }\r\n\r\n // Complete the promise for the executeAction method\r\n action.FinishFunc(true);\r\n }\r\n },\r\n async performOpenDocumentEditor(action) {\r\n utils.log(`ActionService OpenDocumentEditor ${action.ActionData.DocumentName || action.ActionData.DocumentURL} ${action.ActionData.DocumentType}`);\r\n\r\n if (action.ActionData && action.ActionData.Debug && action.ActionData.Debug.BreakPoint) debugger;\r\n\r\n try {\r\n const docName = utils.evaluate(action.docName, action.context);\r\n const docUrl = utils.evaluate(action.docUrl, action.context);\r\n const docType = utils.evaluate(action.docType, action.context);\r\n const folder = utils.evaluate(action.defaultFolder, action.context);\r\n const menuId = utils.evaluate(action.menuId, action.context);\r\n const getDocumentBy = utils.evaluate(action.getDocumentBy, action.context);\r\n\r\n utils.openForLocalEdit({ Name: docName, URL: docUrl, Type: docType, Folder: folder, Id: menuId, GetDocumentBy: getDocumentBy });\r\n\r\n try {\r\n await utils.success(action);\r\n } catch (e) { }\r\n }\r\n catch (e) {\r\n try {\r\n await utils.failure(action, { Error: e });\r\n } catch (e) { }\r\n }\r\n finally {\r\n try {\r\n await utils.complete(action);\r\n }\r\n catch (e) { }\r\n\r\n // Complete the promise for the executeAction method\r\n action.FinishFunc(true);\r\n }\r\n },\r\n async performValidateForm(action) {\r\n utils.log(`ActionService ValidateForm`);\r\n\r\n if (action.ActionData && action.ActionData.Debug && action.ActionData.Debug.BreakPoint) debugger;\r\n\r\n try {\r\n // Find all children that are listening for ValidateForm (all BasicForms)\r\n const targets = action.context.Base.FindAllChildrenWithEventListener(`Action-${action.ActionType}`);\r\n const all_errors = [];\r\n for (let i = 0; i < targets.length; i++) {\r\n const form = targets[i];\r\n const errors = form.Validate();\r\n for (let j = 0; j < errors.length; j++)\r\n all_errors.push(errors[j]);\r\n\r\n utils.log(`BasicForm ${form.name} validation discovered ${errors.length} error(s) [${errors.map(e => e.element + ':' + e.error).join('; ')}]`);\r\n }\r\n\r\n try {\r\n if (all_errors.length === 0)\r\n await utils.success(action);\r\n else\r\n await utils.failure(action, { Errors: all_errors });\r\n } catch (e) { }\r\n }\r\n catch (e) {\r\n utils.warn(`ActionService ValidateForm failed to validate`, e);\r\n\r\n try {\r\n await utils.failure(action);\r\n } catch (e) { }\r\n }\r\n finally {\r\n try {\r\n await utils.complete(action);\r\n }\r\n catch (e) { }\r\n\r\n // Complete the promise for the executeAction method\r\n action.FinishFunc(true);\r\n }\r\n },\r\n\r\n actionBroadcaster(broadcast) {\r\n utils.executeAndCompileAllActions(broadcast.actions, broadcast.input, broadcast.parent || broadcast.context)\r\n }\r\n },\r\n props: {\r\n app: null,\r\n },\r\n render(h) {\r\n const dialogs = this.dialog_content.map((dialogContent,index) => \r\n h(\"v-dialog\", {\r\n props:{\r\n value: this.dialog_visible[index],\r\n scrollable: true,\r\n persistent: true,\r\n 'content-class': this.dialog_data[index]?.AllowResize ? 'dialog-resize' : 'dialog-size',\r\n width: 735,\r\n fullscreen: this.dialog_data[index]?.StartMaximized\r\n },\r\n on: {\r\n 'click:outside': (e) => {\r\n dialogContent.componentInstance.clickedOutside(e);\r\n }\r\n }\r\n }, [dialogContent])\r\n ).filter((dialog,index) => this.dialog_visible[index]);\r\n\r\n return (\r\n
\r\n {dialogs}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n );\r\n }\r\n});","var render = function render(){var _vm=this,_c=_vm._self._c;return (_vm.todisplay)?_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.isvisible),expression:\"isvisible\"}],class:{ 'c-AdvancedHistory': true, [`c-name-${this.name || 'unnamed'}`]: true },style:(_vm.style)},[_c('v-snackbar',{attrs:{\"multi-line\":\"\",\"timeout\":-1,\"value\":!!_vm.queryError,\"color\":\"red\"},scopedSlots:_vm._u([{key:\"action\",fn:function({ attrs }){return [_c('v-btn',_vm._b({attrs:{\"color\":\"white\",\"text\":\"\"},on:{\"click\":function($event){_vm.queryError = ''}}},'v-btn',attrs,false),[_vm._v(\" Close \")])]}}],null,false,2969221663)},[_vm._v(\" \"+_vm._s(_vm.queryError || 'This is a test of a large error message that you should see that might need to wrap it is very large.')+\" \")]),_c('div',{staticStyle:{\"display\":\"flex\",\"flex-direction\":\"row\",\"flex-grow\":\"1\"}},[(!_vm.colDefsLoaded)?_c('div',{staticStyle:{\"display\":\"flex\",\"flex-direction\":\"column\",\"flex-grow\":\"1\",\"background-color\":\"lightGrey\",\"align-items\":\"center\",\"justify-content\":\"center\"}},[_c('v-progress-circular',{attrs:{\"size\":70,\"width\":7,\"color\":\"purple\",\"indeterminate\":\"\"}})],1):_vm._e(),(_vm.colDefsLoaded)?_c('div',{staticStyle:{\"display\":\"flex\",\"flex-direction\":\"column\",\"flex-grow\":\"1\"}},[(!_vm.nocolumns && !_vm.controlData.IsDashboard)?_c('div',{staticClass:\"mb-1 mt-2 gridHeaderButtons\",staticStyle:{\"display\":\"flex\",\"flex-direction\":\"row\",\"align-items\":\"center\"}},[(false && _vm.dateRangePickerVisible)?_c('c-Date-Range-Picker',{key:_vm.id,staticStyle:{\"min-width\":\"440px\"},attrs:{\"type\":\"daterangepicker\",\"allowTime\":true,\"timePickerIncrement\":1,\"isDisabled\":false,\"default\":_vm.defaultTime,\"placeholder\":\"Simulate Date Range\",\"allowFutureDate\":true,\"allowPastDate\":true},on:{\"apply-date-range\":_vm.applyDateRangeHandler,\"clear-date-range\":_vm.clearDateRangeHandler}}):_vm._e(),(_vm.dateRangePickerVisible)?_c('MyCalendar',{attrs:{\"value\":_vm.defaultTime,\"width\":_vm.ReadOnly ? '430px' : '460px',\"label\":\"Simulate Date Range\",\"activeicon\":\"mdi-calendar\",\"isactive\":_vm.ReadOnly || _vm.useStartEnd,\"inactiveicon\":\"mdi-calendar-alert\",\"activecolor\":_vm.ReadOnly ? '' : 'primary',\"inactivecolor\":\"grey lighten-1\",\"showtooltip\":!_vm.ReadOnly},on:{\"change\":_vm.applyDateRangeHandler},scopedSlots:_vm._u([{key:\"activetooltip\",fn:function(){return [_vm._v(\" Simulate the report using a range independent of the one set in the \"),_c('br'),_vm._v(\" Date/Time filter. Simulating has no effect on the published report. \")]},proxy:true},{key:\"inactivetooltip\",fn:function(){return [_vm._v(\" Simulate the report using a range independent of the one set in the \"),_c('br'),_vm._v(\" Date/Time filter. Simulating has no effect on the published report. \")]},proxy:true}],null,false,4159185166)}):_vm._e(),_c('v-text-field',{staticClass:\"ml-2\",staticStyle:{\"flex-grow\":\"0\",\"min-width\":\"280px\",\"_margin-top\":\"4px\",\"_margin-left\":\"10px\"},attrs:{\"dense\":\"\",\"clearable\":\"\",\"hide-details\":\"\",\"placeholder\":\"Quick Search\",\"background-color\":\"white\"},on:{\"click:clear\":_vm.clearSearch},model:{value:(_vm.search),callback:function ($$v) {_vm.search=$$v},expression:\"search\"}},[_c('v-icon',{attrs:{\"slot\":\"prepend-inner\"},slot:\"prepend-inner\"},[_vm._v(\" mdi-magnify \")])],1),(_vm.ReadOnly && _vm.IsAnyViewFilterChoices)?_c('v-btn',{staticClass:\"ml-2\",attrs:{\"plain\":\"\",\"small\":\"\",\"elevation\":0,\"color\":_vm.tool_visible == 1 ? 'primary' : ''},on:{\"click\":_vm.toggleDataFilters}},[_c('v-badge',{attrs:{\"color\":\"primary\",\"dot\":\"\",\"offset-y\":\"25\",\"offset-x\":\"63\",\"value\":_vm.IsAnyFilters}},[_c('v-icon',{staticClass:\"mr-1\"},[_vm._v(\"mdi-filter\")]),_vm._v(\"Filters \")],1)],1):_vm._e(),_c('v-spacer'),(false && _vm.query_in_progress)?_c('v-progress-circular',{staticClass:\"mr-5 ml-5\",attrs:{\"indeterminate\":\"\",\"color\":\"primary\",\"size\":20}}):_vm._e(),(_vm.System.DEBUG)?_c('span',{staticClass:\"pr-3 body-2\",staticStyle:{\"color\":\"grey\"},attrs:{\"title\":\"Total Rows\"}},[_vm._v(\"(\"+_vm._s(_vm.totalHits)+\")\")]):_vm._e(),_c('v-tooltip',{attrs:{\"bottom\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({on, attrs}){return [_c('v-btn',_vm._g(_vm._b({staticClass:\"mr-4\",attrs:{\"small\":\"\",\"outlined\":\"\",\"color\":\"grey darken-2\"},on:{\"click\":_vm.cycleDurationFormats}},'v-btn',attrs,false),on),[_vm._v(\" \"+_vm._s(_vm.durationFormats[_vm.durationFormatIdx].text)+\" \")])]}}],null,false,1603399069)},[_vm._v(\" Duration Time Format\"),_c('br'),_vm._v(\" Click to cycle through formats \")]),(false && _vm.ReadOnly && _vm.IsAnyFilters)?_c('v-icon',{attrs:{\"color\":\"primary\",\"title\":\"Filter(s) Active\"}},[_vm._v(\"mdi-filter\")]):_vm._e(),_c('v-btn',{staticClass:\"ml-0\",attrs:{\"plain\":\"\",\"elevation\":0,\"_color\":\"primary\"},on:{\"click\":_vm.autoSizeAllColumns}},[_c('v-icon',{attrs:{\"title\":\"Size columns to content\"}},[_vm._v(\"mdi-arrow-left-right-bold\")])],1),_c('v-btn',{staticClass:\"ml-0\",attrs:{\"plain\":\"\",\"elevation\":0,\"_color\":\"primary\"},on:{\"click\":_vm.sizeColumnsToFit}},[_c('v-icon',{attrs:{\"title\":\"Size columns to fit\"}},[_vm._v(\"mdi-arrow-expand-horizontal\")])],1),_c('v-btn',{staticClass:\"ml-0\",attrs:{\"disabled\":_vm.query_in_progress,\"plain\":\"\",\"elevation\":0},on:{\"click\":_vm.Refresh}},[_c('v-icon',{class:{ 'icon-spinner': _vm.query_in_progress },attrs:{\"title\":\"Refresh\"}},[_vm._v(\"mdi-cached\")])],1),(_vm.colDefsLoaded && _vm.ReadOnly)?_c('ColumnMenu',{attrs:{\"column_list\":_vm.column_picker_list,\"column_order\":_vm.column_state.columnOrder,\"columnDefs\":_vm.columnDefs,\"column_default_visibility\":_vm.column_default_visibility,\"setColumnsVisible\":_vm.setColumnsVisible,\"debugMode\":_vm.System.DEBUG},on:{\"showcolumnselector\":_vm.showColumnSelector,\"showdatafilters\":_vm.showDataFilters}}):_vm._e()],1):_vm._e(),(!_vm.nocolumns && _vm.controlData.IsDashboard)?_c('div',{staticClass:\"mb-1 mt-2 gridHeaderButtons\",staticStyle:{\"display\":\"flex\",\"flex-direction\":\"column\"}},[(false)?_c('c-Date-Range-Picker',{key:_vm.id,staticStyle:{\"max-width\":\"390px\"},style:({ visibility: _vm.dateRangePickerVisible ? 'initial' : 'hidden' }),attrs:{\"type\":\"daterangepicker\",\"allowTime\":true,\"timePickerIncrement\":1,\"isDisabled\":false,\"default\":_vm.defaultTime,\"placeholder\":\"Simulate Date Range\",\"allowFutureDate\":true,\"allowPastDate\":true},on:{\"apply-date-range\":_vm.applyDateRangeHandler,\"clear-date-range\":_vm.clearDateRangeHandler}}):_vm._e(),_c('div',{staticStyle:{\"display\":\"flex\",\"align-items\":\"center\"}},[_c('div',{staticStyle:{\"margin-top\":\"4px\"}},[_c('MyCalendar',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.dateRangePickerVisible),expression:\"dateRangePickerVisible\"}],key:_vm.id,attrs:{\"value\":_vm.defaultTime,\"width\":\"430px\",\"label\":\"Simulate Date Range\",\"isactive\":true,\"activeicon\":\"mdi-calendar\"},on:{\"change\":_vm.applyDateRangeHandler}})],1),_c('v-text-field',{staticClass:\"ml-2\",staticStyle:{\"flex-grow\":\"0\",\"min-width\":\"280px\",\"_margin-top\":\"4px\",\"_margin-left\":\"10px\"},attrs:{\"dense\":\"\",\"clearable\":\"\",\"hide-details\":\"\",\"placeholder\":\"Quick Search\",\"background-color\":\"white\"},on:{\"click:clear\":_vm.clearSearch},model:{value:(_vm.search),callback:function ($$v) {_vm.search=$$v},expression:\"search\"}},[_c('v-icon',{attrs:{\"slot\":\"prepend-inner\"},slot:\"prepend-inner\"},[_vm._v(\" mdi-magnify \")])],1),_c('v-spacer'),(_vm.ReadOnly)?_c('v-btn',{staticClass:\"ml-0\",attrs:{\"icon\":\"\",\"plain\":\"\",\"elevation\":0,\"color\":_vm.tool_visible == 1 ? 'primary' : 'secondary'},on:{\"click\":_vm.toggleDataFilters}},[_c('v-badge',{attrs:{\"color\":\"primary\",\"dot\":\"\",\"offset-y\":\"25\",\"offset-x\":\"11\",\"value\":_vm.IsAnyFilters}},[_c('v-icon',{staticClass:\"mr-1\"},[_vm._v(\"mdi-filter\")])],1)],1):_vm._e(),_c('v-tooltip',{attrs:{\"bottom\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({on, attrs}){return [_c('v-btn',_vm._g(_vm._b({attrs:{\"small\":\"\",\"outlined\":\"\",\"color\":\"grey darken-2\"},on:{\"click\":_vm.cycleDurationFormats}},'v-btn',attrs,false),on),[_vm._v(\" \"+_vm._s(_vm.durationFormats[_vm.durationFormatIdx].text)+\" \")])]}}],null,false,2428844539)},[_vm._v(\" Duration Time Format\"),_c('br'),_vm._v(\" Click to cycle through formats \")]),_c('v-btn',{staticClass:\"ml-0\",attrs:{\"plain\":\"\",\"elevation\":0,\"color\":\"secondary\",\"icon\":\"\"},on:{\"click\":_vm.autoSizeAllColumns}},[_c('v-icon',{attrs:{\"title\":\"Size columns to content\"}},[_vm._v(\"mdi-arrow-left-right-bold\")])],1),_c('v-btn',{staticClass:\"ml-0\",attrs:{\"plain\":\"\",\"elevation\":0,\"color\":\"secondary\",\"icon\":\"\"},on:{\"click\":_vm.sizeColumnsToFit}},[_c('v-icon',{attrs:{\"title\":\"Size columns to fit\"}},[_vm._v(\"mdi-arrow-expand-horizontal\")])],1),_c('v-btn',{staticClass:\"ml-0\",attrs:{\"disabled\":_vm.query_in_progress,\"plain\":\"\",\"icon\":\"\",\"color\":\"secondary\",\"elevation\":0},on:{\"click\":_vm.Refresh}},[_c('v-icon',{class:{ 'icon-spinner': _vm.query_in_progress },attrs:{\"title\":\"Refresh\"}},[_vm._v(\"mdi-cached\")])],1),(_vm.colDefsLoaded && _vm.ReadOnly)?_c('ColumnMenu',{attrs:{\"column_list\":_vm.column_picker_list,\"column_order\":_vm.column_state.columnOrder,\"columnDefs\":_vm.columnDefs,\"column_default_visibility\":_vm.column_default_visibility,\"setColumnsVisible\":_vm.setColumnsVisible,\"debugMode\":_vm.System.DEBUG,\"btnclass\":{ 'mr-2': false }},on:{\"showcolumnselector\":_vm.showColumnSelector,\"showdatafilters\":_vm.showDataFilters}}):_vm._e()],1)],1):_vm._e(),(_vm.colDefsLoaded)?_c('AgGridVue',{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.nocolumns),expression:\"!nocolumns\"}],class:{ 'ag-theme-alpine': true },style:({ display: 'flex', flexDirection: 'column', flexGrow: '1' }),attrs:{\"_key\":\"unique_id\",\"initialState\":_vm.initialState,\"columnDefs\":_vm.columnDefs,\"defaultColDef\":_vm.defaultColDef,\"serverSideDatasource\":_vm.dataSource,\"cacheBlockSize\":_vm.pageSize,\"enableCellTextSelection\":true,\"sideBar\":_vm.sideBar,\"aggFuncs\":_vm.aggFuncs,\"_enableCharts\":\"true\",\"enableRangeSelection\":true,\"columnTypes\":_vm.dataTypeDefinitions,\"autoGroupColumnDef\":_vm.autoGroupColumnDef,\"maintainColumnOrder\":true,\"treeData\":_vm.treeData,\"getRowClass\":_vm.getRowClass,\"_isServerSideGroup\":\"isServerSideGroup\",\"_getServerSideGroupKey\":\"getServerSideGroupKey\",\"_rowData\":\"dataSource\",\"_datasource\":\"dataSource\",\"rowModelType\":\"serverSide\",\"serverSidePivotResultFieldSeparator\":\"~\"},on:{\"gridReady\":_vm.onGridReady,\"stateUpdated\":_vm.stateUpdated,\"firstDataRendered\":_vm.onFirstDataRendered}}):_vm._e(),(_vm.colDefsLoaded && _vm.nocolumns)?_c('div',{staticStyle:{\"flex-grow\":\"1\",\"background-color\":\"white\",\"border\":\"1px solid silver\",\"display\":\"flex\",\"flex-direction\":\"column\",\"align-content\":\"center\",\"align-items\":\"center\",\"justify-content\":\"center\"}},[_c('div',{staticClass:\"text-caption text-center\",staticStyle:{\"max-width\":\"280px\",\"display\":\"flex\",\"flex-direction\":\"column\"}},[_c('v-icon',{staticClass:\"mb-5\",staticStyle:{\"font-size\":\"80px\"}},[_vm._v(\"mdi-finance\")]),_vm._v(\" Start building your report by selecting columns from the panel on the right \")],1)]):_vm._e()],1):_vm._e(),(_vm.colDefsLoaded && !_vm.ReadOnly)?_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.tool_visible === 0),expression:\"tool_visible === 0\"}],staticClass:\"c-ToolPanel_1 mx-auto w-100 pa-0 history-panel-width\",staticStyle:{\"width\":\"100%\",\"display\":\"flex\",\"flex-direction\":\"column\",\"_min-width\":\"650px\",\"_max-width\":\"650px\"}},[_c('div',{staticStyle:{\"overflow\":\"auto\",\"width\":\"100%\",\"display\":\"flex\",\"flex-direction\":\"column\",\"flex-basis\":\"0\",\"flex-grow\":\"1\",\"background-color\":\"var(--v-extraLightGrey-base)\"}},[_c('v-expansion-panels',{attrs:{\"hover\":\"\",\"accordion\":\"\"},model:{value:(_vm.panelactive),callback:function ($$v) {_vm.panelactive=$$v},expression:\"panelactive\"}},[(!_vm.ReadOnly)?_c('v-expansion-panel',[_c('v-expansion-panel-header',{staticClass:\"text-h6\",scopedSlots:_vm._u([{key:\"actions\",fn:function(){return [_c('v-icon',{attrs:{\"color\":\"primaryText\",\"size\":\"30px\"}},[_vm._v(\" mdi-menu-down \")])]},proxy:true}],null,false,2583930254)},[_vm._v(\" Details \")]),_c('v-expansion-panel-content',[_c('v-card-subtitle',{staticClass:\"mt-0 consistentText\"},[_vm._v(\" Provide basic report information and setup \")]),_c('v-row',{staticClass:\"ml-1\",attrs:{\"dense\":\"\"}},[_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('v-text-field',{staticClass:\"standard-input-field\",attrs:{\"background-color\":\"white\",\"dense\":\"\",\"outlined\":\"\",\"hide-details\":\"\",\"label\":\"Report Name\"},on:{\"input\":_vm.reportNameChanged},model:{value:(_vm.report_name),callback:function ($$v) {_vm.report_name=$$v},expression:\"report_name\"}})],1)],1),_c('v-row',{staticClass:\"ml-1 mt-2\",attrs:{\"dense\":\"\"}},[_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('v-text-field',{staticClass:\"standard-input-field\",attrs:{\"background-color\":\"white\",\"dense\":\"\",\"outlined\":\"\",\"hide-details\":\"\",\"label\":\"Description\"},on:{\"input\":_vm.reportDescChanged},model:{value:(_vm.report_description),callback:function ($$v) {_vm.report_description=$$v},expression:\"report_description\"}})],1)],1),_c('v-row',{staticClass:\"ml-1 mt-2\",attrs:{\"dense\":\"\"}},[_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('v-select',{staticClass:\"standard-input-field\",attrs:{\"dense\":\"\",\"outlined\":\"\",\"hide-details\":\"\",\"label\":\"Source\",\"menu-props\":{ offsetY: true },\"items\":_vm.sourceTypes,\"item-text\":\"DisplayName\",\"item-value\":\"SourceName\"},on:{\"change\":function($event){return _vm.loadColumns(_vm.source_selected, true)}},model:{value:(_vm.source_selected),callback:function ($$v) {_vm.source_selected=$$v},expression:\"source_selected\"}})],1)],1),_c('v-row',{staticClass:\"ml-1 mt-2\",attrs:{\"dense\":\"\"}},[_c('v-col',{attrs:{\"cols\":\"11\"}},[_c('v-autocomplete',{staticClass:\"standard-input-field\",attrs:{\"dense\":\"\",\"outlined\":\"\",\"hide-details\":\"\",\"label\":\"Category\",\"menu-props\":{ offsetY: true},\"items\":_vm.categories,\"item-text\":\"Name\",\"item-value\":\"ID\"},on:{\"input\":_vm.reportCategoryChanged},model:{value:(_vm.report_category),callback:function ($$v) {_vm.report_category=$$v},expression:\"report_category\"}})],1),_c('v-col',{staticClass:\"d-flex align-center justify-center\",attrs:{\"cols\":\"1\"}},[_c('v-tooltip',{attrs:{\"bottom\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on, attrs }){return [_c('v-icon',_vm._g(_vm._b({on:{\"click\":_vm.refreshCategories}},'v-icon',attrs,false),on),[_vm._v(\" mdi-cached \")])]}}],null,false,2309032504)},[_c('span',[_vm._v(\"Refresh category list\")])]),_c('v-tooltip',{attrs:{\"bottom\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on, attrs }){return [(_vm.show_manage_categories)?_c('v-icon',_vm._g(_vm._b({staticClass:\"left-pad-4\",on:{\"click\":_vm.categoryActions}},'v-icon',attrs,false),on),[_vm._v(\" mdi-cog-outline \")]):_vm._e()]}}],null,false,2682531281)},[_c('span',[_vm._v(\"Manage categories\")])])],1)],1),_c('v-expansion-panels',{staticClass:\"mt-3\",model:{value:(_vm.advancedVisible),callback:function ($$v) {_vm.advancedVisible=$$v},expression:\"advancedVisible\"}},[_c('v-expansion-panel',[_c('v-expansion-panel-header',{staticClass:\"pl-3 consistentText\"},[_vm._v(\" Advanced settings \")]),_c('v-expansion-panel-content',[_c('v-card-subtitle',{staticClass:\"consistentText\"},[_vm._v(\"Server-side pagination settings.\")]),_c('v-row',{staticClass:\"mt-3\",attrs:{\"no-gutters\":\"\",\"align\":\"center\"}},[_c('v-col',[_c('v-text-field',{attrs:{\"dense\":\"\",\"outlined\":\"\",\"label\":\"Page Size\",\"type\":\"number\",\"hide-details\":\"\",\"rules\":_vm.pageSizeRules,\"hint\":\"Controls the number of rows to return before paginating\",\"background-color\":\"white\"},on:{\"change\":_vm.modelChanged},model:{value:(_vm.pageSize),callback:function ($$v) {_vm.pageSize=$$v},expression:\"pageSize\"}})],1),_c('v-col',{staticClass:\"pl-2\",attrs:{\"cols\":\"1\"}},[_c('v-tooltip',{attrs:{\"bottom\":\"\",\"open-delay\":\"50\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on, attrs }){return [_c('v-icon',_vm._g(_vm._b({staticStyle:{\"color\":\"var(--v-darkGreyIcon-base)\"},attrs:{\"small\":\"\"}},'v-icon',attrs,false),on),[_vm._v(\"mdi-information\")])]}}],null,false,710186054)},[_vm._v(\" Controls how many rows are shown per page of the report. For example, if a report has 1000 rows and Normal Page Size is set to 100, the report will display 10 pages with 100 rows on each page. \")])],1)],1)],1)],1)],1)],1)],1):_vm._e(),_c('v-expansion-panel',[_c('v-expansion-panel-header',{staticClass:\"text-h6\",scopedSlots:_vm._u([(_vm.ReadOnly)?{key:\"actions\",fn:function(){return [_c('v-icon',{attrs:{\"title\":\"Close\"},on:{\"click\":function($event){_vm.tool_visible = undefined}}},[_vm._v(\"mdi-close\")])]},proxy:true}:{key:\"actions\",fn:function(){return [_c('v-icon',{attrs:{\"color\":\"primaryText\",\"size\":\"30px\"}},[_vm._v(\" mdi-menu-down \")])]},proxy:true}],null,true)},[_vm._v(\" Columns \")]),_c('v-expansion-panel-content',[(_vm.colDefsLoaded)?_c('ToolRportColumns',{key:_vm.unique_id,attrs:{\"isvisible\":true,\"ReadOnly\":_vm.ReadOnly,\"settings\":_vm.settings,\"column_list\":_vm.column_picker_list,\"columnDefs\":_vm.columnDefs,\"column_default_visibility\":_vm.column_default_visibility,\"setColumnsVisible\":_vm.setColumnsVisible,\"setColumnsDefaultHidden\":_vm.setColumnsDefaultHidden,\"storageKey\":_vm.storageKey,\"source\":_vm.source_selected,\"debugMode\":_vm.System.DEBUG}}):_vm._e()],1)],1),_c('v-expansion-panel',[_c('v-expansion-panel-header',{staticClass:\"text-h6\",attrs:{\"hide-actions\":\"\"},scopedSlots:_vm._u([{key:\"default\",fn:function({ open }){return [_vm._v(\" Filters \"),_c('v-card',{staticClass:\"ma-0 pa-0 d-flex\",attrs:{\"flat\":\"\",\"color\":\"transparent\"}},[_c('v-icon',{staticClass:\"mr-auto expandIconSpoof\",class:{'rotate': open},attrs:{\"color\":\"primaryText\",\"size\":\"30px\"}},[_vm._v(\" mdi-menu-down \")]),(_vm.column_filters && Object.keys(_vm.column_filters).length > 0)?_c('v-btn',{staticClass:\"mr-3 v-btn--active\",attrs:{\"plain\":\"\",\"elevation\":0,\"color\":\"primary\",\"title\":\"Clear All Filters\",\"disabled\":!open},on:{\"click\":function($event){$event.stopPropagation();return _vm.clearAllFilters.apply(null, arguments)}}},[_vm._v(\" Clear All \")]):_vm._e()],1)]}}],null,false,212181703)}),_c('v-expansion-panel-content',[_c('ToolReportFilters',{key:_vm.unique_id,attrs:{\"isvisible\":true,\"ReadOnly\":_vm.ReadOnly,\"settings\":_vm.settings,\"column_list\":_vm.column_filter_list,\"column_filters\":_vm.column_filters,\"initial_column_filters\":_vm.initial_column_filters,\"source\":_vm.source_selected,\"EventBus\":_vm.EventBus},on:{\"filterschanged\":_vm.notifyfilterschanged}})],1)],1)],1)],1)]):_vm._e(),(_vm.colDefsLoaded && _vm.ReadOnly && _vm.FilterModal)?_c('div',[_c('v-dialog',{attrs:{\"value\":_vm.tool_visible,\"max-height\":650,\"max-width\":600,\"scrollable\":\"\",\"persistent\":\"\"}},[_c('v-card',{attrs:{\"color\":\"extraLightGrey\"}},[_c('v-app-bar',{staticStyle:{\"background-color\":\"var(--v-navigation-base)\",\"height\":\"60px\"},attrs:{\"flat\":\"\",\"color\":\"rgba(0, 0, 0, 0)\"}},[_c('v-toolbar-title',{staticClass:\"title white--text pl-0\"},[_c('translation-container',{attrs:{\"context\":this,\"value\":\"Report Filters\"}})],1),_c('v-spacer'),_c('busyIcon')],1),_c('v-card-text',{staticClass:\"mt-2\"},[_c('div',{staticStyle:{\"overflow\":\"auto\",\"width\":\"100%\",\"display\":\"flex\",\"flex-direction\":\"column\",\"flex-basis\":\"0\",\"flex-grow\":\"1\"}},[_c('ToolReportFilters',{key:_vm.unique_id,attrs:{\"isvisible\":true,\"ReadOnly\":_vm.ReadOnly,\"settings\":_vm.settings,\"column_list\":_vm.column_filter_list,\"column_filters\":_vm.column_filters,\"initial_column_filters\":_vm.initial_column_filters,\"source\":_vm.source_selected,\"EventBus\":_vm.EventBus},on:{\"filterschanged\":_vm.notifyfilterschanged}})],1)]),_c('v-card-actions',{staticClass:\"ma-2\",staticStyle:{\"justify-content\":\"flex-end\"}},[_c('v-btn',{attrs:{\"elevation\":\"{0}\",\"color\":\"primary\"},on:{\"click\":function($event){_vm.tool_visible = undefined}}},[_c('translation-container',{attrs:{\"context\":this,\"value\":\"Done\"}})],1)],1)],1)],1)],1):_vm._e(),(_vm.colDefsLoaded && _vm.ReadOnly && !_vm.FilterModal)?_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.tool_visible === 1),expression:\"tool_visible === 1\"}],staticClass:\"c-ToolPanel_1 mx-auto w-100 pa-0 history-panel-width\",staticStyle:{\"width\":\"100%\",\"display\":\"flex\",\"flex-direction\":\"column\",\"_min-width\":\"650px\",\"_max-width\":\"650px\"}},[_c('div',{staticStyle:{\"overflow\":\"auto\",\"width\":\"100%\",\"display\":\"flex\",\"flex-direction\":\"column\",\"flex-basis\":\"0\",\"flex-grow\":\"1\"}},[_c('v-expansion-panels',{attrs:{\"accordion\":\"\",\"mandatory\":\"\",\"focusable\":\"\"}},[_c('v-expansion-panel',[_c('v-expansion-panel-header',{scopedSlots:_vm._u([{key:\"actions\",fn:function(){return [(_vm.ReadOnly && _vm.IsAnyFilters)?_c('v-btn',{staticClass:\"mr-3 v-btn--active\",attrs:{\"plain\":\"\",\"elevation\":0,\"color\":\"primary\",\"title\":\"Clear All Filters\"},on:{\"click\":function($event){$event.stopPropagation();return _vm.clearAllFilters.apply(null, arguments)}}},[_vm._v(\"Clear All\")]):_vm._e(),(_vm.ReadOnly)?_c('v-icon',{attrs:{\"title\":\"Close\"},on:{\"click\":function($event){_vm.tool_visible = undefined}}},[_vm._v(\"mdi-close\")]):_vm._e()]},proxy:true}],null,false,2403910563)},[_c('span',{staticClass:\"text-h6\"},[_vm._v(\" Filters \")])]),_c('v-expansion-panel-content',{attrs:{\"color\":\"extraLightGrey\"}},[_c('ToolReportFilters',{key:_vm.unique_id,attrs:{\"isvisible\":true,\"ReadOnly\":_vm.ReadOnly,\"settings\":_vm.settings,\"column_list\":_vm.column_filter_list,\"column_filters\":_vm.column_filters,\"initial_column_filters\":_vm.initial_column_filters,\"source\":_vm.source_selected,\"EventBus\":_vm.EventBus},on:{\"filterschanged\":_vm.notifyfilterschanged}})],1)],1)],1)],1)]):_vm._e(),(_vm.colDefsLoaded && _vm.tool_visible === 2)?_c('v-card',{staticClass:\"c-ToolPanel_1 mx-auto w-100 pa-0 history-panel-width\",staticStyle:{\"width\":\"100%\",\"display\":\"flex\",\"flex-direction\":\"column\",\"_max-width\":\"650px\"}},[_c('v-card',{staticClass:\"mx-auto w-100 pa-0\",staticStyle:{\"overflow\":\"auto\",\"width\":\"100%\",\"display\":\"flex\",\"flex-direction\":\"column\",\"flex-basis\":\"0\",\"flex-grow\":\"1\"},attrs:{\"elevation\":0}},[_c('v-card-title',[_vm._v(\" Report Settings JSON \")]),_c('v-card-text',[_c('pre',[_vm._v(_vm._s(JSON.stringify(_vm.ReportModel,null,3))+\"\\n\")])])],1)],1):_vm._e(),(_vm.colDefsLoaded && !_vm.ReadOnly)?_c('v-btn-toggle',{staticClass:\"mr-n2\",staticStyle:{\"display\":\"flex\",\"flex-direction\":\"column\"},attrs:{\"_manditory\":\"\"},model:{value:(_vm.tool_visible),callback:function ($$v) {_vm.tool_visible=$$v},expression:\"tool_visible\"}},[_c('v-btn',{staticStyle:{\"border\":\"1px solid\",\"border-radius\":\"0px\"},attrs:{\"color\":\"extraLightGrey\",\"large\":\"\",\"icon\":\"\"}},[_c('v-icon',{attrs:{\"title\":\"Column Selector\",\"color\":_vm.tool_visible === 0 ? 'primary': 'secondary'}},[_vm._v(\"mdi-cogs\")])],1),_c('v-btn',{directives:[{name:\"show\",rawName:\"v-show\",value:(false),expression:\"false\"}],staticStyle:{\"border\":\"1px solid\",\"border-radius\":\"0px\"},attrs:{\"color\":\"extraLightGrey\",\"large\":\"\",\"icon\":\"\"}},[_c('v-icon',{attrs:{\"title\":\"Filters\",\"color\":_vm.tool_visible == 1 ? 'primary': 'secondary'}},[_vm._v(_vm._s(_vm.ReadOnly && _vm.IsAnyFilters ? 'mdi-filter' : 'mdi-filter-outline'))])],1),(_vm.System.DEBUG)?_c('v-btn',{staticStyle:{\"border\":\"1px solid\",\"border-radius\":\"0px\"},attrs:{\"color\":\"extraLightGrey\",\"large\":\"\",\"icon\":\"\"}},[_c('v-icon',{attrs:{\"title\":\"Model\",\"color\":_vm.tool_visible == 2 ? 'primary': 'secondary'}},[_vm._v(\"mdi-code-json\")])],1):_vm._e()],1):_vm._e()],1),_c('IconComponent',{directives:[{name:\"show\",rawName:\"v-show\",value:(false),expression:\"false\"}]})],1):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Vue from 'vue';\r\nimport utils from '../../Shared/utils.jsx';\r\nimport methods from '../../Shared/methods';\r\nimport filters from '../../Shared/filters';\r\nimport computed from '../../Shared/computed';\r\n\r\nconst contentDef = {\r\n data: () => ({\r\n name: 'AgContentDef',\r\n Input: {},\r\n rowData: null,\r\n\r\n root: null,\r\n type: null,\r\n rowDataArg: null,\r\n contentDefs: null,\r\n addrowdata: null,\r\n scopeitems: null,\r\n controlscope: null,\r\n loading: null,\r\n\r\n c_context: null,\r\n }),\r\n props: {\r\n },\r\n computed: {\r\n ...computed,\r\n rowIndex: function () {\r\n return this.params.rowIndex;\r\n },\r\n },\r\n methods: {\r\n ...methods,\r\n ...filters,\r\n getAdditionalRowData(name) {\r\n if ('$$additional_row_data' in this.rowData)\r\n return name ? this.rowData.$$additional_row_data[name] : this.rowData.$$additional_row_data;\r\n else\r\n return '';\r\n },\r\n handleGridExportText(val) {\r\n if(this.rowData) {\r\n if(!this.rowData.exportValues)\r\n this.rowData.exportValues = {};\r\n \r\n if(!this.rowData.exportValues[this.params.callcorp.field])\r\n this.rowData.exportValues[this.params.callcorp.field] = [];\r\n \r\n this.rowData.exportValues[this.params.callcorp.field].push(val);\r\n }\r\n }\r\n },\r\n created() {\r\n // To make the row data reactive, assign to the data:\r\n this.rowData = this.params.data;\r\n\r\n // Copy parameters into fields so our interpolations will work\r\n this.root = this.params.callcorp.root;\r\n this.type = this.params.callcorp.type;\r\n this.rowDataArg = this.params.callcorp.rowDataArg;\r\n this.contentDefs = this.params.callcorp.contentDefs;\r\n this.addrowdata = this.params.callcorp.addrowdata;\r\n this.scopeitems = this.params.callcorp.scopeitems;\r\n this.controlscope = this.params.callcorp.controlscope;\r\n this.c_context = this.params.callcorp.context;\r\n this.loading = this.params.callcorp.loading;\r\n\r\n // Add additional_row_data if not already there (first time for each row, we'll compute the AdditionalRowData, but then it is saved on the row)\r\n if (this.params.callcorp.addrowdata && this.rowData && !('$$additional_row_data' in this.rowData)) {\r\n Vue.set(this.rowData, '$$additional_row_data', {});\r\n\r\n for (let j = 0; j < this.params.callcorp.addrowdata.length; j++) {\r\n const add = this.params.callcorp.addrowdata[j];\r\n if (add.initValue)\r\n Vue.set(this.rowData.$$additional_row_data, add.name, utils.evaluateObject(add.initValue, this));\r\n\r\n for (let i = 0; i < add.contentDefs.length; i++) {\r\n const c = add.contentDefs[i];\r\n if (c.displayexpr && !utils.evaluate(c.displayexpr, this))\r\n continue;\r\n\r\n switch (c.type) {\r\n case 'RawInterpolated':\r\n Vue.set(this.rowData.$$additional_row_data, add.name, utils.evaluateObject(c.valueexpr, this));\r\n break;\r\n\r\n case 'AsyncLookup':\r\n Vue.set(this.rowData.$$additional_row_data, add.name, {});\r\n const url = utils.evaluate(c.urlexpr, this);\r\n utils.api.get(url, false, c.cache).then(function (res) {\r\n //utils.debug(`AdditionalRowData[${j},${i}] ${add.name} res:${JSON.stringify(res)} (url:${url}; cache:${c.cache})`);\r\n this.Input = { Data: res };\r\n Vue.set(this.rowData.$$additional_row_data, add.name, utils.evaluateObject(c.valueexpr, this));\r\n }.bind(this));\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n },\r\n render(h) {\r\n const elements = [];\r\n\r\n if (this.loading && this.rowData === undefined) {\r\n return
One moment please…
;\r\n }\r\n\r\n for (let k = 0; k < this.params.callcorp.contentDefs.length; k++) {\r\n const content = this.params.callcorp.contentDefs[k];\r\n\r\n if (!content.Controls) continue;\r\n\r\n if (content.displayExpression)\r\n if (!utils.evaluate(content.displayExpression, this)) continue;\r\n\r\n for (let j = 0; j < content.Controls.length; j++) {\r\n const control = content.Controls[j];\r\n\r\n let DynamicControl = utils.getDynamicComponent(h, control);\r\n if (!DynamicControl) {\r\n elements.push(Control type of {control.ControlType} is unknown);\r\n continue;\r\n }\r\n\r\n elements.push(\r\n this.rowData}\r\n controlURL={control.ControlURL}\r\n controlName={control.Name}\r\n scopeitems={this.params.callcorp.scopeitems}\r\n on-grid-exported-text={this.handleGridExportText}\r\n controlscope={this.params.callcorp.controlscope}\r\n controlEvents={control.Events}>\r\n \r\n );\r\n }\r\n }\r\n\r\n return {elements};\r\n }\r\n};\r\n\r\nexport default contentDef;","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{style:(_vm.sizeStyle)},[_c('v-text-field',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.isvisible),expression:\"isvisible\"}],class:{'c-DateRangePicker': true, [`c-name-${_vm.name || 'unnamed'}`]: true, 'mt-1': true },attrs:{\"dense\":\"\",\"outlined\":\"\",\"readonly\":\"\",\"hint\":_vm.message,\"value\":_vm.displayValue,\"hide-details\":_vm.hideDetails,\"disabled\":_vm.readonly},on:{\"click\":function($event){_vm.datePickerOpen = true}}},[_c('translation-container',{attrs:{\"slot\":\"label\",\"context\":_vm.context,\"value\":_vm.placeholderText},slot:\"label\"}),_c('translation-container',{attrs:{\"slot\":\"message\",\"context\":_vm.context,\"value\":_vm.message},slot:\"message\"}),_c('span',{attrs:{\"slot\":\"prepend-inner\"},slot:\"prepend-inner\"},[(_vm.isSingleDatePicker && !_vm.disabled)?_c('v-icon',{attrs:{\"ignoreslot\":\"prepend\",\"disabled\":_vm.cannotMoveBackward},on:{\"click\":function($event){return _vm.moveDay(-1)}}},[_vm._v(\"mdi-chevron-left\")]):_vm._e(),_c('v-icon',{attrs:{\"_vif\":\"(!disabled)\",\"disabled\":_vm.disabled},on:{\"click\":function($event){_vm.datePickerOpen = true}}},[_vm._v(\"mdi-calendar-cursor\")]),_c('v-menu',{attrs:{\"right\":\"\",\"disabled\":_vm.disabled,\"offset-y\":\"\",\"nudge-bottom\":_vm.message ? 33 : 13,\"nudge-left\":25,\"close-on-content-click\":false},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on, attrs }){return [_c('span',_vm._g(_vm._b({},'span',attrs,false),on))]}}]),model:{value:(_vm.datePickerOpen),callback:function ($$v) {_vm.datePickerOpen=$$v},expression:\"datePickerOpen\"}},[_c('v-card',{staticStyle:{\"display\":\"flex\"}},[(_vm.isDateRangePicker)?_c('v-list',{attrs:{\"dense\":\"\",\"flat\":false}},[_c('v-list-item-group',_vm._l((_vm.presets),function(p){return _c('v-list-item',{key:p.label,on:{\"click\":function($event){return _vm.setRange(p.range)}}},[_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(_vm._s(p.label))])],1)],1)}),1)],1):_vm._e(),_c('FunctionalCalendar',{staticClass:\"vfc-noshadow-callcorp\",attrs:{\"configs\":_vm.calendarConfigs,\"value\":_vm.functionalCalendarFormattedData},on:{\"input\":_vm.onCalendarInput}},[_c('div',{staticClass:\"drp-footer\",attrs:{\"slot\":\"footer\"},slot:\"footer\"},[(_vm.isDateRangePicker && _vm.allowTime)?_c('div',{staticClass:\"drp-time-picker\"},[_c('div',{staticClass:\"drp-left-time-picker\"},[_c('v-select',{staticClass:\"drp-tp-option drp-ltp-hour\",attrs:{\"outlined\":\"\",\"dense\":\"\",\"hide-details\":\"\",\"menu-props\":{ offsetY: true, auto: true },\"items\":_vm.timePickerHours},model:{value:(_vm.startHour),callback:function ($$v) {_vm.startHour=$$v},expression:\"startHour\"}}),_vm._v(\" : \"),_c('v-select',{staticClass:\"drp-tp-option drp-ltp-min\",attrs:{\"outlined\":\"\",\"dense\":\"\",\"hide-details\":\"\",\"menu-props\":{ offsetY: true, auto: true },\"disabled\":_vm.timePickerIncrement == 60,\"items\":_vm.timePickerMin},model:{value:(_vm.startMin),callback:function ($$v) {_vm.startMin=$$v},expression:\"startMin\"}}),(!_vm.is24HourLocale)?_c('v-select',{staticClass:\"drp-tp-option drp-ltp-meridiem\",attrs:{\"outlined\":\"\",\"dense\":\"\",\"hide-details\":\"\",\"menu-props\":{ offsetY: true, auto: true },\"items\":['AM', 'PM']},model:{value:(_vm.startMeridiem),callback:function ($$v) {_vm.startMeridiem=$$v},expression:\"startMeridiem\"}}):_vm._e()],1),_c('div',{staticClass:\"drp-right-time-picker\"},[_c('v-select',{staticClass:\"drp-tp-option drp-rtp-hour\",attrs:{\"outlined\":\"\",\"dense\":\"\",\"hide-details\":\"\",\"menu-props\":{ offsetY: true, auto: true },\"items\":_vm.timePickerHours},model:{value:(_vm.endHour),callback:function ($$v) {_vm.endHour=$$v},expression:\"endHour\"}}),_vm._v(\" : \"),_c('v-select',{staticClass:\"drp-tp-option drp-rtp-min\",attrs:{\"outlined\":\"\",\"dense\":\"\",\"hide-details\":\"\",\"disabled\":_vm.timePickerIncrement == 60,\"menu-props\":{ offsetY: true, auto: true },\"items\":_vm.timePickerMin},model:{value:(_vm.endMin),callback:function ($$v) {_vm.endMin=$$v},expression:\"endMin\"}}),(!_vm.is24HourLocale)?_c('v-select',{staticClass:\"drp-tp-option drp-rtp-meridiem\",attrs:{\"outlined\":\"\",\"dense\":\"\",\"hide-details\":\"\",\"menu-props\":{ offsetY: true, auto: true },\"items\":['AM', 'PM']},model:{value:(_vm.endMeridiem),callback:function ($$v) {_vm.endMeridiem=$$v},expression:\"endMeridiem\"}}):_vm._e()],1)]):_vm._e(),(_vm.isSingleDatePicker && _vm.allowTime)?_c('div',{staticClass:\"dp-time-picker\"},[_c('div',{staticClass:\"dp-time-picker\"},[_c('v-select',{staticClass:\"drp-tp-option dp-ltp-hour\",attrs:{\"outlined\":\"\",\"dense\":\"\",\"hide-details\":\"\",\"menu-props\":{ offsetY: true, auto: true },\"items\":_vm.timePickerHours},model:{value:(_vm.selectedHour),callback:function ($$v) {_vm.selectedHour=$$v},expression:\"selectedHour\"}}),_vm._v(\" : \"),_c('v-select',{staticClass:\"drp-tp-option dp-ltp-min\",attrs:{\"outlined\":\"\",\"dense\":\"\",\"hide-details\":\"\",\"menu-props\":{ offsetY: true, auto: true },\"items\":_vm.timePickerMin},model:{value:(_vm.selectedMinute),callback:function ($$v) {_vm.selectedMinute=$$v},expression:\"selectedMinute\"}}),(!_vm.is24HourLocale)?_c('v-select',{staticClass:\"drp-tp-option dp-ltp-meridiem\",attrs:{\"outlined\":\"\",\"dense\":\"\",\"hide-details\":\"\",\"menu-props\":{ offsetY: true, auto: true },\"items\":['AM', 'PM']},model:{value:(_vm.selectedMeridiem),callback:function ($$v) {_vm.selectedMeridiem=$$v},expression:\"selectedMeridiem\"}}):_vm._e()],1)]):_vm._e(),_c('div',{staticClass:\"drp-footer-btns\"},[_c('span'),_c('v-btn',{attrs:{\"depressed\":\"\",\"text\":\"\"},on:{\"click\":function($event){return _vm.cancelSelection()}}},[_vm._v(\"Cancel\")]),_c('v-btn',{attrs:{\"depressed\":\"\",\"color\":\"primary\",\"text\":\"\"},on:{\"click\":function($event){return _vm.applySelection()}}},[_vm._v(\"Apply\")])],1)])])],1)],1)],1),(_vm.isSingleDatePicker && !_vm.disabled)?_c('v-icon',{attrs:{\"slot\":\"append\",\"disabled\":_vm.cannotMoveForward},on:{\"click\":function($event){return _vm.moveDay(1)}},slot:\"append\"},[_vm._v(\"mdi-chevron-right\")]):_vm._e()],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\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/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DateRangePicker.vue?vue&type=script&lang=js&\"; 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/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DateRangePicker.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./DateRangePicker.vue?vue&type=template&id=ceac9b5c&scoped=true&\"\nimport script from \"./DateRangePicker.vue?vue&type=script&lang=js&\"\nexport * from \"./DateRangePicker.vue?vue&type=script&lang=js&\"\nimport style0 from \"./DateRangePicker.vue?vue&type=style&index=0&id=ceac9b5c&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 \"ceac9b5c\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return (_vm.isvisible)?_c('v-card',{staticClass:\"c-ToolPanelColumns_1 mx-0 w-100 pa-0\",staticStyle:{\"width\":\"100%\",\"display\":\"flex\",\"flex-direction\":\"row\",\"max-width\":\"650px\"},attrs:{\"elevation\":0}},[_c('v-card',{staticClass:\"mx-0 w-100 pa-0\",staticStyle:{\"overflow\":\"auto\",\"width\":\"100%\",\"flex-grow\":\"1\",\"display\":\"flex\",\"flex-direction\":\"column\"},attrs:{\"elevation\":0,\"color\":\"extraLightGrey\"}},[_c('v-card-subtitle',{staticClass:\"mt-0 consistentText\"},[_vm._v(\" Select the columns to include in the report. Use the search box or the filter icon to narrow the choices. \")]),_c('OverflowPillGroup',{staticClass:\"py-0 px-2\",attrs:{\"removePill\":_vm.removeColumn,\"pills\":_vm.selected_columns,\"typeDescriptor\":\"columns\"}}),(false)?_c('v-card-title',{staticClass:\"subtitle-1\"},[_vm._v(\" Selected columns: \"),(_vm.selected_columns.length == 0)?_c('span',{staticClass:\"ml-3 mt-2 mb-2\"},[_vm._v(\"None selected\")]):_vm._e(),_c('v-menu',{attrs:{\"offset-y\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on, attrs }){return [_c('v-btn',_vm._g(_vm._b({attrs:{\"plain\":\"\"}},'v-btn',attrs,false),on),[_vm._v(_vm._s(_vm.selected_columns.length)+\" selected\"),_c('v-icon',[_vm._v(\"mdi-menu-down\")])],1)]}}],null,false,2220504914)},[_c('v-card',{staticStyle:{\"max-width\":\"550px\"},attrs:{\"elevation\":0}},[_c('v-chip-group',{staticClass:\"pl-2\",attrs:{\"active-class\":\"primary--text\",\"column\":\"\"}},_vm._l((_vm.selected_columns),function(item){return _c('v-chip',{key:item.colId,attrs:{\"close\":\"\",\"outlined\":\"\",\"close-icon\":\"mdi-close\",\"color\":\"primary\"},on:{\"click:close\":function($event){return _vm.setcolumnvisible({ColId: item.colId}, false)}}},[[_vm._v(\" \"+_vm._s(item.headerName)+\" \")]],2)}),1)],1)],1)],1):_vm._e(),_c('v-card-actions',[_c('v-text-field',{staticClass:\"mb-4\",attrs:{\"background-color\":\"white\",\"outlined\":\"\",\"dense\":\"\",\"hide-details\":\"\",\"clearable\":\"\",\"label\":\"Search\"},scopedSlots:_vm._u([{key:\"prepend-inner\",fn:function(){return [_c('v-icon',[_vm._v(\"mdi-magnify\")])]},proxy:true},{key:\"append-outer\",fn:function(){return [_c('v-menu',{attrs:{\"offset-y\":\"\",\"close-on-content-click\":false,\"close-on-click\":false},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on, attrs }){return [_c('v-badge',{attrs:{\"color\":\"primary\",\"dot\":\"\",\"offset-y\":\"25\",\"offset-x\":\"10\",\"value\":_vm.anyFilters}},[_c('v-btn',_vm._g(_vm._b({staticClass:\"ma-0\",attrs:{\"icon\":\"\",\"small\":\"\"}},'v-btn',attrs,false),on),[_c('v-icon',[_vm._v(\"mdi-filter\")])],1)],1)]}}],null,false,2523710882),model:{value:(_vm.filter_menuopen),callback:function ($$v) {_vm.filter_menuopen=$$v},expression:\"filter_menuopen\"}},[_c('v-card',{on:{\"mouseleave\":function($event){_vm.filter_menuopen = false}}},[_c('MetricTypeFilter',{attrs:{\"debugMode\":_vm.debugMode,\"datatypes\":_vm.columnDataTypes,\"initial_datatypes_selection\":_vm.columnDataTypes_selection,\"categories\":_vm.columnCategories,\"initial_category_selection\":_vm.columnCategory_selection},on:{\"datatypes_changed\":(values) => _vm.columnDataTypes_selection = values,\"categories_changed\":(values) => _vm.columnCategory_selection = values,\"anyfilters\":(value) => _vm.anyFilters = value}})],1)],1)]},proxy:true}],null,false,2978639067),model:{value:(_vm.search),callback:function ($$v) {_vm.search=$$v},expression:\"search\"}})],1),_vm._l((_vm.filterCategories),function(cat,k){return _c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.search),expression:\"!search\"}],key:k},[(_vm.isCategoryVisible(cat))?_c('v-card-subtitle',{staticClass:\"consistentText\",staticStyle:{\"border-bottom\":\"2px solid lightGrey\"}},[_vm._v(_vm._s(_vm.filterCategoryPrefix(cat).toUpperCase()))]):_vm._e(),(_vm.isCategoryVisible(cat))?_c('ColumnItemList',{attrs:{\"ReadOnly\":_vm.ReadOnly,\"items\":_vm.getColumnsByCategory(cat),\"columnLookup\":_vm.column_lookup,\"column_default_visibility\":_vm.column_default_visibility,\"showHelp\":_vm.showHelp,\"addColumn\":_vm.addColumn,\"removeColumn\":_vm.removeColumn,\"getColumnHelp\":_vm.getColumnHelp},on:{\"setvisible\":_vm.setcolumnvisible,\"setdefaulthidden\":_vm.setdefaulthidden}}):_vm._e()],1)}),(_vm.search)?_c('div',[_c('v-card-subtitle',{staticClass:\"consistentText\",staticStyle:{\"border-bottom\":\"2px solid lightGrey\"}},[_vm._v(\"SEARCH RESULTS\")]),_c('ColumnItemList',{attrs:{\"items\":_vm.search_results,\"ReadOnly\":_vm.ReadOnly,\"columnLookup\":_vm.column_lookup,\"column_default_visibility\":_vm.column_default_visibility,\"showHelp\":_vm.showHelp,\"addColumn\":_vm.addColumn,\"removeColumn\":_vm.removeColumn,\"getColumnHelp\":_vm.getColumnHelp},on:{\"setvisible\":_vm.setcolumnvisible,\"setdefaulthidden\":_vm.setdefaulthidden}})],1):_vm._e()],2),_c('v-dialog',{attrs:{\"max-width\":\"590\"},model:{value:(_vm.help.visible),callback:function ($$v) {_vm.$set(_vm.help, \"visible\", $$v)},expression:\"help.visible\"}},[_c('v-card',[_c('v-card-title',{staticClass:\"text-h5\"},[_vm._v(\" \"+_vm._s(_vm.help.item ? _vm.help.item.Title : '')+\" \")]),_c('v-card-text',{domProps:{\"innerHTML\":_vm._s(_vm.help.item.Description)}}),_c('v-card-actions',[_c('v-spacer'),_c('v-btn',{attrs:{\"color\":\"primary darken-1\",\"text\":\"\"},on:{\"click\":function($event){_vm.help.visible = false}}},[_vm._v(\" Close \")])],1)],1)],1)],1):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { time } from \"ag-charts-community\";\n\nimport utils from '@/Shared/utils.jsx';\nimport filters from '@/Shared/filters.js';\nimport helps from '@/Application/careHelpfulFunctions.jsx';\nimport dayjs from \"dayjs\";\nimport isoWeek from \"dayjs/plugin/isoWeek\";\n\ndayjs.extend(isoWeek);\n\nconst common = {\n constants: {\n DISPLAY_RESIZING: -1,\n DISPLAY_DYNAMIC_GRID: 0,\n DISPLAY_FLAT_GRID: 1,\n DISPLAY_CHART: 2,\n\n TAB_METRICS: 1,\n TAB_FILTERS: 2,\n TAB_CHART_SETTINGS: 3,\n TAB_ALL_IN_ONE: 4,\n TAB_MODEL: 5,\n\n PIVOT_HEADER_SEP: '|',\n\n MILLISECONDS_PER_DAY: 86400000,\n MILLISECONDS_PER_HOUR: 60 * 60 * 1000,\n },\n colors: [\n \"#2DBC71\", // Emerald\n \"#E67E22\", // Carrot\n \"#3498DB\", // Peter River\n \"#9C88FF\", // Amethyst\n \"#4CE137\", // Ufo Green\n \"#FFF200\", // Yellow\n \"#FF9F45\", // Melon\n \"#F368E0\", // Orchid\n \"#FF9FF3\", // Light Pink\n \"#48DBFB\", // Winter Sky\n \"#1DD1A1\", // Mint\n \"#EE5253\", // Pastel Red\n \"#0ABDE3\", // Sky Blue\n \"#10AC84\", // Pacific Green\n \"#5F27CD\", // Purple\n \"#FF5733\", // Reddish\n \"#33FF57\", // Greenish\n \"#3357FF\", // Bluish\n \"#F1C40F\", // Yellow\n \"#E91E63\", // Pink\n \"#9B59B6\", // Purple\n \"#34495E\", // Dark Blue\n \"#16A085\", // Teal\n \"#27AE60\", // Green\n \"#2980B9\", // Blue\n \"#8E44AD\", // Violet\n \"#2C3E50\", // Navy\n \"#F39C12\", // Orange\n \"#D35400\", // Pumpkin\n \"#C0392B\", // Red\n \"#BDC3C7\", // Silver\n \"#7F8C8D\", // Gray\n ],\n swatches: [\n [\"#2ECC71\", \"#E67E22\", \"#3498DB\"],\n [\"#9C88FF\", \"#4CD137\", \"#FFF200\"],\n [\"#FF9F45\", \"#F368E0\", \"#FF9FF3\"],\n [\"#48DBFB\", \"#1DD1A1\", \"#EE5253\"],\n [\"#0ABDE3\", \"#10AC84\", \"#5F27CD\"],\n\n [\"#FF5733\", \"#33FF57\", \"#3357FF\"],\n [\"#F1C40F\", \"#E91E63\", \"#9B59B6\"],\n [\"#34495E\", \"#16A085\", \"#27AE60\"],\n [\"#2980B9\", \"#8E44AD\", \"#2C3E50\"],\n [\"#F39C12\", \"#D35400\", \"#C0392B\"],\n\n [\"#BDC3C7\", \"#7F8C8D\", \"#000000\"]\n ],\n\n cacheLoaded: false,\n queryError: '',\n\n sourceTypes: null,\n userLookup: null,\n customerLookup: null,\n chatLookup: null,\n column_lookup: {},\n columnDefs: [],\n\n globalVars: null,\n\n time_values: [\n time.month.every(1),\n time.month.every(2),\n time.month.every(3),\n time.month.every(6),\n ],\n\n startDate: '2024-02-01T00:09:00.0000000Z',\n endDate: '2024-03-01T00:09:00.0000000Z',\n pageSize: 100,\n presortSize: 1000,\n serverPaginationMode: 1,\n\n pageSizeRules: [value => (value >= 10 && value <= 1000) || 'Between 10 - 1000 only'],\n presortSizeRules: [value => (value >= 10 && value <= 10000) || 'Between 10 - 10,000 only'],\n\n buildRequest: function(baseurl, startDate, endDate) {\n const start = dayjs(startDate).format(\"YYYY-MM-DDTHH:mm:ss.SSS\");\n const end = dayjs(endDate).format(\"YYYY-MM-DDTHH:mm:ss.SSS\");\n return `${baseurl}?StartTime=${start}&EndTime=${end}`;\n },\n byField: function(a, b, field) {\n if (field)\n return a[field] < b[field] ? -1 : a[field] > b[field] ? 1 : 0;\n else\n return a < b ? -1 : a > b ? 1 : 0;\n },\n transformer: function(rows, nameField, valueField) {\n return Object.fromEntries(rows.map(r => [r[valueField], r[nameField]]));\n },\n remaplookup: function(lookup, valuefield) {\n return Object.fromEntries(Object.keys(lookup).map(a => [a, lookup[a][valuefield]]));\n },\n\n formatMetric: function(col) {\n if (!col) return 'N/A';\n\n switch (col.aggFunc) {\n case 'avg':\n switch (col.type) {\n case 'booleanColumn':\n case 'percentColumn': return `Percent (%)`;\n default: return `Average`;\n };\n break;\n case 'sum': return `Total`;\n\n case 'min':\n switch (col.type) {\n case 'durationColumn': return `Shortest`;\n case 'floatColumn':\n case 'countColumn': return `Minimum`;\n case 'dateColumn': return 'Earliest';\n }\n return `Shortest`;\n\n case 'max':\n switch (col.type) {\n case 'durationColumn': return `Longest`;\n case 'floatColumn':\n case 'countColumn': return `Maximum`;\n case 'dateColumn': return 'Latest';\n }\n return `Longest`;\n\n case 'cardinality': return `Distinct`;\n case 'value_count': return `Count`;\n }\n return func;\n },\n formatHeader: function(col) {\n if (!col) return 'N/A';\n\n switch (col.aggFunc) {\n case 'avg':\n switch (col.type) {\n case 'booleanColumn':\n case 'percentColumn': return `${col.headerName} (%)`;\n default: return `Avg ${col.headerName}`;\n }\n break;\n case 'sum': return `Total ${col.headerName}`;\n\n case 'min':\n switch (col.type) {\n case 'durationColumn': return `Shortest ${col.headerName}`;\n case 'floatColumn':\n case 'countColumn': return `Minimum ${col.headerName}`;\n case 'dateColumn': return `Earliest ${col.headerName}`;\n }\n return `Shortest ${col.headerName}`;\n\n case 'max':\n switch (col.type) {\n case 'durationColumn': return `Longest ${col.headerName}`;\n case 'floatColumn':\n case 'countColumn': return `Maximum ${col.headerName}`;\n case 'dateColumn': return `Latest ${col.headerName}`;\n }\n return `Longest ${col.headerName}`;\n\n case 'cardinality': return `Distinct ${col.headerName}`;\n case 'value_count': return `Count ${col.headerName}`;\n }\n return col.headerName;\n },\n\n getMetricTitle: function(metric, columnLookup) {\n if ((metric.MetricAggs.Type == 'function' || metric.MetricAggs.Type == 'filter' || metric.MetricAggs.Type == 'script' || metric.MetricAggs.Type == 'filter_script') && metric.MetricAggs.FunctionList.length > 1)\n return metric.Title;\n else if ((metric.MetricAggs.Type == 'function' || metric.MetricAggs.Type == 'filter' || metric.MetricAggs.Type == 'script' || metric.MetricAggs.Type == 'filter_script') && metric.MetricAggs.FunctionList.length == 1) {\n const col = columnLookup[metric.ColId];\n if (col)\n return `${metric.Title} (${common.formatMetric({ headerName: col.Title, type: col.SourceType, aggFunc: metric.MetricAggs.FunctionList[0] })})`;\n else\n return metric.Title;\n }\n else if (metric.MetricAggs.Type == 'bucket_script')\n return metric.Title;\n else if (metric.MetricAggs.Type == 'placeholder')\n return metric.Title;\n else\n return 'N/A';\n },\n getAggregateColumnType: function(colId, func, coltype) {\n const coldef = common.column_lookup[colId];\n\n if (coldef && coldef.MetricAggs.Type == 'bucket_script')\n return coldef.MetricAggs.BucketScript.ResultType;\n else if (coldef && coldef.MetricAggs.Type == 'placeholder')\n return coldef.SourceType;\n\n switch (func) {\n case 'sum':\n switch (coltype) {\n case 'booleanColumn': return 'countColumn';\n default:\n return coltype;\n }\n break;\n\n case 'avg':\n switch (coltype) {\n case 'booleanColumn': return 'percentColumn';\n case 'countColumn': return 'floatColumn';\n default:\n return coltype;\n }\n break;\n\n case 'cardinality':\n case 'value_count':\n return 'countColumn';\n\n default:\n return coltype;\n };\n },\n\n async loadLookup(column) {\n console.log(`loadLookup URL:${column.LookupSettings.LookupURL} requesting...`);\n try {\n const promise = utils.api.get(column.LookupSettings.LookupURL);\n\n if (!column.expn && column.LookupSettings.ValueType == 'Expression')\n // Create a function to evaluate the expression\n column.expn = new Function(column.LookupSettings.LookupModelAs, 'return ' + column.LookupSettings.ValueExpression + ';');\n\n if (!column.display_expn && column.LookupSettings.DisplayType == 'Expression')\n column.display_expn = new Function(column.LookupSettings.LookupModelAs, 'return ' + column.LookupSettings.DisplayExpression + ';');\n\n // 1st - create a lookup table for translating values into display text\n // 2nd - gather all unique values for showing in the list of choices\n\n const res = await promise;\n\n console.log(`loadLookup URL:${column.LookupSettings.LookupURL} completed with ${res.length} row(s)`);\n\n //const values = [];\n const names = [];\n const lookup = {};\n for (let i = 0; i < res.length; i++) {\n const model = res[i];\n let name;\n let value;\n\n switch (column.LookupSettings.ValueType) {\n case 'Expression':\n value = column.expn(model);\n break;\n\n case 'Fieldname':\n default:\n value = model[column.LookupSettings.ValueField];\n break;\n }\n\n switch (column.LookupSettings.DisplayType) {\n case 'Expression':\n name = column.display_expn(model);\n break;\n\n case 'Fieldname':\n name = model[column.LookupSettings.DisplayField];\n break;\n\n case 'UseValue':\n default:\n name = value;\n break;\n }\n\n if (name !== undefined && value !== undefined && typeof value !== 'object')\n lookup[value] = name;\n\n if (name !== undefined && Array.isArray(value)) {\n names.push({ name: name, values: value });\n }\n\n //if (value !== undefined)\n // values.push(value);\n }\n\n // This table translates the value into the display text\n column.lookups = lookup;\n // This is for the compound filter and holds the unique names with their one-to-many values\n column.names = names;\n\n // This list contains all the unique values found in the source data + any already selected values, sorted\n // this.listitems = [...new Set([...values, ...this.selected_items])].toSorted((a, b) => this.byTransformedField(a, b));\n }\n catch (err) {\n console.error(`loadLookup URL:${column.LookupSettings.LookupURL} FAILED: ${err.reasonPhrase || err.message}`);\n }\n },\n\n padNumber(number, digits) {\n return Array(Math.max(digits - String(number).length + 1, 0)).join(0) + number;\n },\n ISO8601ToLocal(value) {\n // Ex: 2024-08-27T19:18:00.000Z\n const dt = new Date(value);\n \n let year = dt.getFullYear();\n let month = dt.getMonth() + 1;\n let day = dt.getDate();\n let hour = dt.getHours();\n let minute = dt.getMinutes();\n let second = dt.getSeconds();\n let ms = dt.getMilliseconds();\n\n let local = `${year}-${common.padNumber(month, 2)}-${common.padNumber(day, 2)}T${common.padNumber(hour, 2)}:${common.padNumber(minute, 2)}:${common.padNumber(second, 2)}`;\n\n if (ms > 0)\n local += `.${common.padNumber(ms, 3)}`;\n\n return local;\n },\n parseFilter(filter) {\n let match = filter.match(/now([+-]\\d+)?([a-zA-Z])?(\\/[a-zA-Z])?/);\n return {\n value: match[1] !== undefined ? -parseInt(match[1]) : 0,\n units: match[2] || (match[3].length > 1 ? match[3].substr(1, 1) : match[3]),\n round: !!match[3]\n };\n },\n //getWeek: function(date) {\n // let yearStart = new Date(date.getFullYear(), 0, 1);\n // let today = new Date(date.getFullYear(), date.getMonth(), date.getDate());\n // let dayOfYear = ((today - yearStart + 1) / 86400000);\n // let week = Math.ceil(dayOfYear / 7);\n // return week;\n //},\n //getDateOfWeek: function(w, y) {\n // var d = (1 + (w - 1) * 7); // 1st of January + 7 days for each week\n\n // return new Date(y, 0, d);\n //},\n\n\n getWeek: function (date) {\n return dayjs(date).isoWeek();\n\n // Create a copy of the date\n const d = new Date(Date.UTC(date.getFullYear(), date.getMonth(), date.getDate()));\n // Set to nearest Thursday (ISO week starts Monday, week 1 has first Thursday)\n d.setUTCDate(d.getUTCDate() + 4 - (d.getUTCDay() || 7));\n // Get first day of year\n const yearStart = new Date(Date.UTC(d.getUTCFullYear(), 0, 1));\n // Calculate week number\n const weekNum = Math.ceil(((d - yearStart) / 86400000 + 1) / 7);\n return weekNum;\n },\n getDateOfWeek: function (weekNumber, year) {\n // January 1st of the given year\n const jan1 = new Date(Date.UTC(year, 0, 1));\n // Get day of week (0 = Sunday, 1 = Monday, etc.)\n const jan1Day = jan1.getDay(); // jan1.getUTCDay();\n // Calculate days to first Monday of year or last Monday of previous year\n const daysToFirstMonday = (jan1Day <= 4 ? -jan1Day : 7 - jan1Day) + 1;\n // Calculate start of desired week\n const result = new Date(jan1);\n //result.setUTCDate(jan1.getUTCDate() + daysToFirstMonday + (weekNumber - 1) * 7);\n result.setDate(jan1.getDate() + daysToFirstMonday + (weekNumber - 1) * 7);\n result.setHours(0, 0, 0, 0);\n\n return result;\n },\n\n getRelativeDate: function(unit_type, unit_value, abs_value, round, isend) {\n if (unit_type == 'abs')\n return filters.f_date(new Date(abs_value), 'medium');\n\n let now = new Date();\n\n if (unit_type == 'now' || (unit_value === 0 && !round)) {\n if (isend)\n // For end dates using 'now', compute end of day minus 1 second\n return filters.f_date(dayjs(new Date(common.getRelativeDateFromFilter('now+1d/d'))).subtract(1, 'second').toDate(), 'medium');\n else\n return filters.f_date(new Date(), 'medium');\n }\n\n if (round) {\n // Peform rounding first\n // new Date(year, monthIndex, day, hours, minutes, seconds)\n switch (unit_type) {\n case 's': now = new Date(now.getFullYear(), now.getMonth(), now.getDate(), now.getHours(), now.getMinutes(), now.getSeconds()); break;\n case 'm': now = new Date(now.getFullYear(), now.getMonth(), now.getDate(), now.getHours(), now.getMinutes()); break;\n case 'h': now = new Date(now.getFullYear(), now.getMonth(), now.getDate(), now.getHours()); break;\n case 'd': now = new Date(now.getFullYear(), now.getMonth(), now.getDate()); break;\n case 'w': now = common.getDateOfWeek(common.getWeek(now), now.getFullYear()); break;\n case 'M': now = new Date(now.getFullYear(), now.getMonth()); break;\n case 'y': now = new Date(now.getFullYear(), 0); break;\n }\n }\n\n switch (unit_type) {\n //case 'now': return 'Now';\n case 's': now.setTime(now.getTime() - (unit_value * 1000)); break;\n case 'm': now.setTime(now.getTime() - (unit_value * 60 * 1000)); break;\n case 'h': now.setTime(now.getTime() - (unit_value * 60 * 60 * 1000)); break;\n case 'd': now.setDate(now.getDate() - unit_value); break;\n case 'w': now.setDate(now.getDate() - unit_value * 7); break;\n case 'M': now.setMonth(now.getMonth() - unit_value); break;\n case 'y': now.setMonth(now.getMonth() - unit_value * 12); break;\n }\n\n if (isend && ['d','w','M','y'].includes(unit_type))\n // For end dates using days or less granular, compute end of day minus 1 second\n return filters.f_date(dayjs(now).subtract(1, 'second').toDate(), 'medium');\n\n return filters.f_date(now, 'medium');\n },\n getRelativeDateFromFilter(filter, isend) {\n if (filter == 'now') {\n //return new Date().toISOString();\n if (isend) {\n const { value, units, round } = common.parseFilter('now+1d/d');\n const dt = common.getRelativeDate(units, value, null, round);\n return dayjs(new Date(dt)).subtract(1, 'second').toDate().toISOString();\n }\n else {\n const dt = common.getRelativeDate('now', 0, null, false);\n return dt;\n }\n }\n else if (filter && filter.substring(0, 3) == 'now') {\n const { value, units, round } = common.parseFilter(filter);\n return common.getRelativeDate(units, value, null, round, isend);\n }\n else if (filter && filter.includes('T'))\n return common.getRelativeDate('abs', null, filter);\n else\n return new Date().toISOString();\n },\n\n roundToInterval: function (date, interval) {\n return date;\n\n // Note: this method is primarily for the ag-grid to call when formatting a date column.\n // It was determined to be needed when viewing a report where the browser's timezone\n // isn't the same as the call center's timezone, which causes a discrepency between what\n // OpenSearch returns as the rounded (interval) date/time and how the browser formats\n // the time on the screen. Since all times include a full date and time portion (iso8601),\n // we always have the hours and minutes - and when doing interval reports (by day, month, etc)\n // the date/time OpenSearch returns is rounded to the interval (midnight local time) but\n // returned in UTC: \"2024-06-01T00:00:00.000+01:00\" for midnight UK Time, which if\n // displayed in Mountain Time, becomes \"5/30/2024 6:00 PM\" which is in the previous month.\n // By rounding according to the browser's timezone to the nearest day or month (depending on\n // the interval), we hope to compensate for this and display the proper date/time.\n\n let coeff;\n switch (interval) {\n case '1d': coeff = common.constants.MILLISECONDS_PER_DAY; break;\n case '2d': coeff = 2 * common.constants.MILLISECONDS_PER_DAY; break;\n case '3d': coeff = 3 * common.constants.MILLISECONDS_PER_DAY; break;\n case '180d': coeff = 180 * common.constants.MILLISECONDS_PER_DAY; break;\n\n case 'week':\n {\n const week = common.getWeek(date);\n const year = date.getFullYear();\n return common.getDateOfWeek(week, year);\n }\n\n case 'month':\n case 'quarter':\n case 'year':\n {\n // just round to the nearest month for all three (usually are close enough anyway)\n const dayOfMonth = date.getDate();\n const month = date.getMonth();\n const year = date.getFullYear();\n if (dayOfMonth > 15)\n return new Date(year, month + 1, 1);\n else\n return new Date(year, month, 1);\n }\n\n default:\n return date;\n }\n return new Date(Math.round(date.getTime() / coeff) * coeff);\n },\n\n compareObjects(a, b) {\n if (!a && !b) return true;\n if (!a || !b) return false;\n \n // Grab a distinct list of all members from each object\n const keys = [...new Set([...Object.keys(a), ...Object.keys(b)])];\n\n // iterate over all members and ensure they exist in both\n for (let key of keys) {\n if (!(key in b) || !(key in a)) return false;\n\n if (typeof a[key] !== typeof b[key]) return false;\n\n if (Array.isArray(a[key])) {\n if (a[key].length !== b[key].length) return false;\n\n for (let i of a[key]) {\n const same = common.compareObjects(a[key][i], b[key][i]);\n if (!same) return false;\n }\n }\n else if (typeof a[key] === 'object') {\n const same = common.compareObjects(a[key], b[key]);\n if (!same) return false;\n }\n else if (a[key] !== b[key])\n return false;\n }\n return true;\n },\n\n async loadSourceTypes() {\n const res = await utils.api.get('Apps/Platform/Schema/AdvancedReports/v1/ReportingSourceTypes'); // 'Apps/Platform/Schema/AdvancedReports/v1/ReportingSources');\n try {\n return res; // .SourceTypes.toSorted((a, b) => common.byField(a, b, 'DisplayName'));\n }\n catch (ex) {\n console.error(ex.message);\n return [];\n }\n },\n\n async loadCategories() {\n const res = await utils.api.get('Apps/Platform/Schema/Data/v1/ReportCategory/List?IncludeInactive=false');\n try {\n return res.toSorted((a, b) => common.byField(a, b, 'Name'));\n }\n catch (ex) {\n console.error(ex.message);\n return [];\n }\n },\n\n async loadCustomerList() {\n if (common.globalVars && common.globalVars.AllCustomers)\n return common.remaplookup(common.globalVars.AllCustomers, 'Name');\n else {\n const res = await utils.api.get('/Apps/ReportStudio/Utils/GetMyCustomerList');\n return common.transformer(res, 'Name', 'CustomerID');\n }\n },\n async loadUserList() {\n if (common.globalVars && common.globalVars.AllUsers)\n return common.remaplookup(common.globalVars.AllUsers, 'FullName');\n else if (common.globalVars && common.globalVars.Users)\n return common.remaplookup(common.globalVars.Users, 'fullname');\n else {\n const res = await utils.api.get('/Apps/ReportStudio/Utils/GetMyUserList');\n return common.transformer(res, 'FullName', 'UserID');\n }\n },\n async loadChatTouchpoints() {\n const res = await utils.api.get('/Apps/Common/ChatTouchPoints');\n return common.transformer(res, 'Name', 'TouchPointID');\n },\n async loadColumns() {\n const columnlist = await utils.api.get('Apps/Platform/Schema/AdvancedReports/v1/Column/ListByID?OnlyMine=true');\n return columnlist;\n\n // Putting this on ice for now (7/26/24) - nice idea, not needed yet, adds a lot of complexity on the server\n //const morecols = [];\n //for (let c of columnlist) {\n // if (c.DynamicColumn && c.DynamicColumn.ListAPI) {\n // const dc = c.DynamicColumn;\n // const promise = utils.api.get(dc.ListAPI);\n\n // // Generate functions to evaluate the dynamic expressions\n // const title_expn = new Function(dc.ListRowModelAs, `return ${dc.TitleExpression};`);\n // const srcfld_expn = new Function(dc.ListRowModelAs, `return ${dc.SourceFieldExpression};`);\n // const colid_expn = new Function(dc.ListRowModelAs, `return ${dc.ColIdExpression};`);\n\n // const list = await promise;\n\n // for (let x of list) {\n // morecols.push({\n // ...c,\n // Title: title_expn(x),\n // SourceField: srcfld_expn(x),\n // ColId: colid_expn(x),\n // });\n // }\n // }\n //}\n\n //return columnlist.concat(morecols);\n },\n async loadLookupTables(uid, allowcaching) {\n if (allowcaching && common.cacheLoaded) {\n console.log(`_uid:${uid} loadLookupTables already loaded`);\n return;\n }\n\n if (allowcaching && common.cacheIsLoading) {\n console.log(`_uid:${uid} loadLookupTables awaiting on promise...`);\n common.queryError = await common.myPromise;\n console.log(`_uid:${uid} loadLookupTables promise complete`);\n return;\n }\n\n common.cacheIsLoading = true;\n common.myPromise = new Promise(function (resolve, reject) {\n common.resolvePromise = resolve;\n common.rejectPromise = reject;\n });\n\n try {\n common.queryError = '';\n console.log(`_uid:${uid} loadLookupTables beginning...`);\n\n const [sourcetypes, categories, customerlist, userlist, chatlist, columnlist] = await Promise.all([\n common.loadSourceTypes(),\n common.loadCategories(),\n common.loadCustomerList(),\n common.loadUserList(),\n common.loadChatTouchpoints(),\n common.loadColumns(),\n ]);\n\n console.log(`_uid:${uid} loadLookupTables finished initial table loads`);\n\n common.sourceTypesList = sourcetypes;\n common.categoriesList = categories;\n common.sourceTypes = helps.toLookup(sourcetypes, 'SourceName', 'DisplayName');\n common.categories = helps.toLookup(categories, 'ID', 'Name');\n common.customerLookup = customerlist;\n common.userLookup = userlist;\n common.chatLookup = chatlist;\n\n // Grab the sets of columns by usage\n common.column_list = columnlist;\n common.column_lookup = helps.toLookup(columnlist, 'ColId');\n\n console.log(`_uid:${uid} loadLookupTables Lookups beginning...`);\n\n const tasks = [];\n for (let c of columnlist) {\n if (c.SourceType == 'textSetColumn') {\n if (c.MappingTableType == 'LookupAPI') {\n tasks.push(common.loadLookup(c));\n }\n else if (c.MappingTableType == 'LookupList') {\n c.lookups = helps.toLookup(c.MappingTable, 'Key', 'Value');\n }\n }\n }\n\n console.log(`_uid:${uid} loadLookupTables Lookups awaiting ${tasks.length} task(s)...`);\n\n await Promise.all(tasks);\n\n console.log(`_uid:${uid} loadLookupTables Lookups completed (${tasks.length} task(s))`);\n\n common.cacheLoaded = true;\n common.resolvePromise('');\n }\n catch (ex) {\n // If an error occurs, clear the cache flag\n common.cacheLoaded = false;\n\n console.error(`_uid:${uid} Error in loadLookupTables: ${ex.message || ex.reasonPhrase}`);\n common.queryError = ex.message || ex.reasonPhrase;\n common.rejectPromise(ex.message || ex.reasonPhrase);\n }\n finally {\n common.cacheIsLoading = false;\n }\n },\n\n //getColumnDefsForSummary() {\n // let cols = [];\n // for (let c of common.column_list) {\n // if (!c.SourceType) continue;\n\n // const col = {\n // colId: c.ColId,\n // field: c.SourceField,\n // headerName: c.Title,\n // type: c.SourceType,\n // hide: true,\n // suppressFiltersToolPanel: !c.ColumnUse.Filter,\n // menuTabs: ['generalMenuTab'],\n // };\n\n // if (c.lookups) {\n // col.valueFormatter = (v) => {\n // if (typeof v.value === 'object' && Array.isArray(v.value))\n // return v.value.map(a => c.lookups[a] || a).join(', ');\n // else\n // return c.lookups[v.value] || v.value;\n // }\n // }\n // cols.push(col);\n // }\n // if (cols)\n // return cols.toSorted((a, b) => common.byField(a, b, 'headerName'));\n\n\n // // Generate the list of column definitions for ag-grid\n // let cols = common.column_list.filter(a => a.SourceType).map(a => ({\n // colId: a.ColId,\n // field: a.SourceField,\n // headerName: a.Title,\n // type: a.SourceType,\n // hide: true,\n // suppressFiltersToolPanel: !a.ColumnUse.Filter,\n // menuTabs: ['generalMenuTab'],\n // })).toSorted((a, b) => common.byField(a, b, 'headerName'));\n\n // for (let i = 0; i < cols.length; i++) {\n // const row = cols[i];\n // //if (row.colId == 'dispositions')\n // // console.warn(`_uid:${uid} loadLookupTables dispositions type:${row.type}`);\n\n // if (row.type == 'textSetColumn' || row.type == 'phoneNumColumn') {\n // // This is leftover from when we used ag-grid's built-in filter\n // //row.filterParams = {\n // // values: getUniqueColValues(row.colId),\n // // refreshValuesOnOpen: true\n // //};\n // const c = common.column_lookup[row.colId];\n\n // //if (row.colId == 'dispositions')\n // // console.warn(`_uid:${uid} loadLookupTables dispositions column_lookup:${(c ? JSON.stringify(c) : 'unassigned')}`);\n\n // if (c && c.lookups) {\n // //if (row.colId == 'dispositions')\n // // console.warn(`_uid:${uid} loadLookupTables dispositions assigning valueFormatter`);\n\n // row.valueFormatter = (v) => {\n // if (typeof v.value === 'object' && Array.isArray(v.value))\n // return v.value.map(a => c.lookups[a] || a).join(', ');\n // else\n // return c.lookups[v.value] || v.value;\n // }\n // }\n // }\n // }\n //},\n getColumnDefs(source) {\n let cols = [];\n for (let c of common.column_list) {\n if (!c.SourceType || (source && !c.Sources.includes(source))) continue;\n\n const col = {\n colId: c.ColId,\n field: c.ColumnUse.Computed ? c.ColId : c.SourceField.replace('.keyword', ''), // Strip any fields with the .keyword suffix as this will not match the column in the result set\n //field: c.SourceField,\n headerName: c.Title,\n type: c.SourceType,\n hide: true,\n suppressFiltersToolPanel: !c.ColumnUse.Filter,\n menuTabs: ['generalMenuTab'],\n };\n\n if (col.type == 'textSetColumn' && c.lookups) {\n col.valueFormatter = (v) => {\n if (typeof v.value === 'object' && Array.isArray(v.value))\n return v.value.map(a => c.lookups[a] || a).join(', ');\n else\n return c.lookups[v.value] || v.value;\n }\n }\n cols.push(col);\n }\n return cols.toSorted((a, b) => common.byField(a, b, 'headerName'));\n },\n};\n\nexport default common;","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"mt-1 mb-2\",staticStyle:{\"display\":\"flex\",\"flex-direction\":\"row\",\"flex-wrap\":\"wrap\"}},_vm._l((_vm.items),function(col,j){return _c('div',{key:j,staticClass:\"mr-4\",staticStyle:{\"width\":\"300px\",\"max-width\":\"300px\",\"display\":\"flex\",\"flex-direction\":\"row\"}},[_c('v-btn',{staticClass:\"text-normal subtitle-1\",attrs:{\"text\":\"\",\"small\":\"\",\"color\":\"primaryText\",\"_color\":\"(default_visibility[col.ColId] && !ReadOnly) ? 'blue-grey lighten-1' : 'grey darken-4'\"},on:{\"click\":function($event){return _vm.toggleColumn(col)}}},[_c('v-icon',{staticClass:\"mr-1\",attrs:{\"color\":_vm.columnLookup[col.ColId]?.hide ? 'secondaryText' : 'primary'}},[_vm._v(\" \"+_vm._s(_vm.columnLookup[col.ColId]?.hide ? 'mdi-checkbox-blank-outline' :'mdi-checkbox-marked')+\" \")]),_c('span',{staticClass:\"text-truncate\",style:({ maxWidth: _vm.columnLookup[col.ColId]?.hide ? '210px' : '180px' })},[_vm._v(_vm._s(col.Title))])],1),_c('v-spacer'),(!_vm.columnLookup[col.ColId]?.hide && !_vm.ReadOnly)?_c('v-menu',{attrs:{\"offset-y\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on: menu, attrs }){return [_c('v-tooltip',{attrs:{\"bottom\":\"\",\"open-delay\":\"350\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on: tooltip }){return [_c('v-btn',_vm._g(_vm._b({attrs:{\"small\":\"\",\"icon\":\"\"}},'v-btn',attrs,false),{ ...tooltip, ...menu }),[_c('v-icon',{staticStyle:{\"color\":\"lightGrey\"},attrs:{\"small\":\"\"}},[_vm._v(_vm._s(_vm.default_visibility[col.ColId] ? 'mdi-eye-off' : 'mdi-eye'))])],1)]}}],null,true)},[_vm._v(\" Toggle Default Visibility \")])]}}],null,true)},[_c('v-list',{attrs:{\"dense\":\"\"}},[_c('v-list-item-group',{attrs:{\"value\":_vm.getDefaultHidden(col),\"color\":\"primary\"},on:{\"change\":(v) => _vm.setDefaultHidden(col,v)}},[_c('v-list-item',{staticClass:\"mediumdense\"},[_c('v-list-item-title',[_vm._v(\"Default Visible\")])],1),_c('v-list-item',{staticClass:\"mediumdense\"},[_c('v-list-item-title',[_vm._v(\"Default Hidden\")])],1)],1)],1)],1):_vm._e(),_c('v-tooltip',{attrs:{\"bottom\":\"\",\"open-delay\":\"350\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on, attrs }){return [_c('v-btn',_vm._g(_vm._b({class:{ 'ma-0': true },attrs:{\"icon\":\"\",\"small\":\"\"},on:{\"click\":function($event){return _vm.showHelp(col)}}},'v-btn',attrs,false),on),[_c('v-icon',{staticStyle:{\"color\":\"var(--v-darkGreyIcon-base)\"},attrs:{\"small\":\"\"}},[_vm._v(\"mdi-information\")])],1)]}}],null,true)},[_c('span',{staticStyle:{\"font-weight\":\"bold\"}},[_vm._v(_vm._s(col.Category)+\" - \"+_vm._s(col.Title))]),_c('br'),_c('span',[_vm._v(_vm._s(_vm.getColumnHelp(col)))]),_c('br'),(col.Sources)?_c('span',{staticStyle:{\"font-size\":\"smaller\",\"font-style\":\"italic\"}},[_vm._v(\"Source(s): \"+_vm._s(col.Sources.join(', ')))]):_vm._e(),(col.Dependencies && col.Dependencies.Modules.length)?_c('br'):_vm._e(),(col.Dependencies && col.Dependencies.Modules.length)?_c('span',{staticStyle:{\"font-size\":\"smaller\",\"font-style\":\"italic\"}},[_vm._v(\"Module(s): \"+_vm._s(col.Dependencies.Modules.join(', ')))]):_vm._e()])],1)}),0)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\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/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./columnItemList.vue?vue&type=script&lang=js&\"; 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/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./columnItemList.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./columnItemList.vue?vue&type=template&id=1d10c465&scoped=true&\"\nimport script from \"./columnItemList.vue?vue&type=script&lang=js&\"\nexport * from \"./columnItemList.vue?vue&type=script&lang=js&\"\nimport style0 from \"./columnItemList.vue?vue&type=style&index=0&id=1d10c465&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 \"1d10c465\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('v-card',{attrs:{\"flat\":\"\"}},[_c('v-tabs',{attrs:{\"_background-color\":\"deep-purple accent-4\",\"__background-color\":\"grey\",\"_dark\":\"\"},model:{value:(_vm.tab),callback:function ($$v) {_vm.tab=$$v},expression:\"tab\"}},[(_vm.categories)?_c('v-tab',[_c('span',{attrs:{\"color\":\"primary\",\"dot\":\"\",\"offset-y\":\"20\",\"offset-x\":\"30\",\"value\":!_vm.allCategoriesSelected}},[_vm._v(\" Categories \")])]):_vm._e(),(_vm.datatypes)?_c('v-tab',[_c('span',{attrs:{\"color\":\"primary\",\"dot\":\"\",\"offset-y\":\"20\",\"offset-x\":\"30\",\"value\":!_vm.allDataTypesSelected}},[_vm._v(\" Data Types \")])]):_vm._e(),(_vm.debugMode && _vm.sources)?_c('v-tab',[_c('span',{attrs:{\"color\":\"primary\",\"dot\":\"\",\"offset-y\":\"20\",\"offset-x\":\"30\",\"value\":!_vm.allSourcesSelected}},[_vm._v(\" Sources \")])]):_vm._e()],1),_c('v-tabs-items',{model:{value:(_vm.tab),callback:function ($$v) {_vm.tab=$$v},expression:\"tab\"}},[(_vm.categories)?_c('v-tab-item',[_c('v-card',{attrs:{\"flat\":\"\",\"_style\":\"max-height: 500px;\"}},[_c('v-card-subtitle',{staticClass:\"mt-2\"},[_vm._v(\"Filter by category to focus on data related to specific functional areas.\")]),_c('v-btn',{attrs:{\"small\":\"\",\"text\":\"\",\"color\":\"primary\"},on:{\"click\":() => _vm.allCategoriesSelected ? _vm.selectNoCategories() : _vm.selectAllCategories()}},[_vm._v(_vm._s(_vm.allCategoriesSelected ? 'DESELECT ALL' : 'SELECT ALL'))]),_c('v-list',{staticStyle:{\"max-height\":\"500px\",\"overflow\":\"auto\"},attrs:{\"flat\":\"\",\"dense\":\"\"}},[_c('v-list-item-group',{attrs:{\"multiple\":\"\",\"color\":\"primary\"},model:{value:(_vm.category_selection),callback:function ($$v) {_vm.category_selection=$$v},expression:\"category_selection\"}},[_vm._l((_vm.categories),function(item){return [_c('v-list-item',{key:item.text,staticClass:\"mediumdense\",attrs:{\"dense\":\"\"},scopedSlots:_vm._u([{key:\"default\",fn:function({ active }){return [_c('v-list-item-action',[_c('v-checkbox',{attrs:{\"input-value\":active}})],1),_c('v-list-item-content',[_vm._v(\" \"+_vm._s(item.text)+\" \")])]}}],null,true)})]})],2)],1)],1)],1):_vm._e(),(_vm.datatypes)?_c('v-tab-item',[_c('v-card',{attrs:{\"flat\":\"\",\"_style\":\"max-height: 500px;\"}},[_c('v-card-subtitle',{staticClass:\"mt-2\"},[_vm._v(\"Filter by data type (e.g. only show items applicable to durations).\")]),_c('v-btn',{attrs:{\"small\":\"\",\"text\":\"\",\"color\":\"primary\"},on:{\"click\":() => _vm.allDataTypesSelected ? _vm.selectNoDataTypes() : _vm.selectAllDataTypes()}},[_vm._v(_vm._s(_vm.allDataTypesSelected ? 'DESELECT ALL' : 'SELECT ALL'))]),_c('v-list',{staticStyle:{\"max-height\":\"500px\",\"overflow\":\"auto\"},attrs:{\"flat\":\"\",\"dense\":\"\"}},[_c('v-list-item-group',{attrs:{\"multiple\":\"\",\"color\":\"primary\"},model:{value:(_vm.datatypes_selection),callback:function ($$v) {_vm.datatypes_selection=$$v},expression:\"datatypes_selection\"}},[_vm._l((_vm.datatypes),function(item){return [_c('v-list-item',{key:item.text,staticClass:\"mediumdense\",scopedSlots:_vm._u([{key:\"default\",fn:function({ active }){return [_c('v-list-item-action',[_c('v-checkbox',{attrs:{\"input-value\":active}})],1),_c('v-list-item-content',[_vm._v(\" \"+_vm._s(item.text)+\" \")])]}}],null,true)})]})],2)],1)],1)],1):_vm._e(),(_vm.debugMode && _vm.sources)?_c('v-tab-item',[_c('v-card',{attrs:{\"flat\":\"\",\"_style\":\"max-height: 500px;\"}},[_c('v-card-subtitle',{staticClass:\"mt-2\"},[_vm._v(\"Filters by source (e.g. only show items applicable to surveys).\")]),_c('v-btn',{attrs:{\"small\":\"\",\"text\":\"\",\"color\":\"primary\"},on:{\"click\":() => _vm.allSourcesSelected ? _vm.selectNoSources() : _vm.selectAllSources()}},[_vm._v(_vm._s(_vm.allSourcesSelected ? 'DESELECT ALL' : 'SELECT ALL'))]),_c('v-list',{staticStyle:{\"max-height\":\"500px\",\"overflow\":\"auto\"},attrs:{\"flat\":\"\",\"dense\":\"\"}},[_c('v-list-item-group',{attrs:{\"multiple\":\"\",\"color\":\"primary\"},model:{value:(_vm.sources_selection),callback:function ($$v) {_vm.sources_selection=$$v},expression:\"sources_selection\"}},[_vm._l((_vm.sources),function(item){return [_c('v-list-item',{key:item.text,staticClass:\"mediumdense\",scopedSlots:_vm._u([{key:\"default\",fn:function({ active }){return [_c('v-list-item-action',[_c('v-checkbox',{attrs:{\"input-value\":active}})],1),_c('v-list-item-content',[_vm._v(\" \"+_vm._s(_vm.lookupSourceType(item.text) || `(${item.text}) *Missing src`)+\" \")])]}}],null,true)})]})],2)],1)],1)],1):_vm._e()],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\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/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./metricTypeFilterPopup.vue?vue&type=script&lang=js&\"; 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/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./metricTypeFilterPopup.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./metricTypeFilterPopup.vue?vue&type=template&id=379f0193&scoped=true&\"\nimport script from \"./metricTypeFilterPopup.vue?vue&type=script&lang=js&\"\nexport * from \"./metricTypeFilterPopup.vue?vue&type=script&lang=js&\"\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 \"379f0193\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('v-container',[_c('div',{ref:\"flexContainer\",staticClass:\"d-flex flex-row flex-wrap\",style:({\n\t\t\toverflowY: (_vm.expanded ? 'visible' : 'hidden'),\n\t\t\tmaxHeight: (_vm.expanded ? '' : '65px') // Set a fixed max height\n\t\t}),attrs:{\"id\":\"flexContainer\"}},[_c('span',{staticClass:\"align-self-center mr-1 consistentText\"},[_vm._v(\" Selected \"+_vm._s(_vm.typeDescriptor)+\": \")]),_vm._l((_vm.pills),function(item,i){return _c('v-chip',{key:i,staticClass:\"pill\",staticStyle:{\"margin\":\"3px\"},attrs:{\"close\":\"\",\"pill\":\"\",\"text-color\":\"primary\",\"close-icon\":\"mdi-close\",\"color\":\"primaryLighten2\"},on:{\"click:close\":function($event){return _vm.removePill(item)}}},[(item.calculation && item.calculation !== 'bucket')?[_vm._v(\" \"+_vm._s(_vm.formatHeader({ type: item.SourceType, headerName: item.Title, aggFunc: item.calculation }))+\" \")]:[_vm._v(\" \"+_vm._s(item.headerName || item.Name || item.Title)+\" \")]],2)}),(_vm.expanded)?_c('div',{staticClass:\"align-self-center ml-1 consistentText\",staticStyle:{\"text-decoration\":\"underline\"},attrs:{\"role\":\"button\"},on:{\"click\":function($event){return _vm.toggleExpansion()}}},[_vm._v(\" Hide \")]):_vm._e()],2),(_vm.hasMorePills && !_vm.expanded)?_c('div',{staticClass:\"consistentText\",staticStyle:{\"text-decoration\":\"underline\"},attrs:{\"role\":\"button\"},on:{\"click\":function($event){return _vm.toggleExpansion()}}},[_vm._v(\" Show all \")]):_vm._e()])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\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/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./overflowPillGroup.vue?vue&type=script&lang=js&\"; 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/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./overflowPillGroup.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./overflowPillGroup.vue?vue&type=template&id=35d62422&scoped=true&\"\nimport script from \"./overflowPillGroup.vue?vue&type=script&lang=js&\"\nexport * from \"./overflowPillGroup.vue?vue&type=script&lang=js&\"\nimport style0 from \"./overflowPillGroup.vue?vue&type=style&index=0&id=35d62422&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 \"35d62422\",\n null\n \n)\n\nexport default component.exports","\n\n\n\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/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./agGridToolReportColumns.vue?vue&type=script&lang=js&\"; 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/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./agGridToolReportColumns.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./agGridToolReportColumns.vue?vue&type=template&id=425554be&scoped=true&class=c-ToolPanelColumns&\"\nimport script from \"./agGridToolReportColumns.vue?vue&type=script&lang=js&\"\nexport * from \"./agGridToolReportColumns.vue?vue&type=script&lang=js&\"\nimport style0 from \"./agGridToolReportColumns.vue?vue&type=style&index=0&id=425554be&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 \"425554be\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return (_vm.isvisible)?_c('v-card',{staticClass:\"c-ToolPanel_1 mx-auto w-100 pa-0\",staticStyle:{\"width\":\"100%\",\"display\":\"flex\",\"flex-direction\":\"row\",\"max-width\":\"750px\"},attrs:{\"elevation\":0}},[_c('v-card',{staticClass:\"mx-auto w-100 pa-0\",staticStyle:{\"overflow\":\"auto\",\"width\":\"100%\",\"flex-grow\":\"1\",\"display\":\"flex\",\"flex-direction\":\"column\"},attrs:{\"elevation\":0,\"color\":\"grey lighten-5\"}},[_c('v-card-subtitle',{staticClass:\"mt-0 consistentText\"},[_c('span',{staticClass:\"mb-1\",staticStyle:{\"display\":\"flex\",\"align-items\":\"flex-end\"}},[_vm._v(\" Constrain the source data by the field values you choose. \"),_c('v-spacer'),_c('v-switch',{staticClass:\"ma-0\",attrs:{\"dense\":\"\",\"hide-details\":\"\",\"inset\":\"\",\"label\":\"Advanced settings\"},model:{value:(_vm.advancedSettings),callback:function ($$v) {_vm.advancedSettings=$$v},expression:\"advancedSettings\"}})],1)]),_c('v-text-field',{staticClass:\"mb-4\",attrs:{\"outlined\":\"\",\"dense\":\"\",\"hide-details\":\"\",\"clearable\":\"\",\"label\":\"Search\",\"background-color\":\"white\"},scopedSlots:_vm._u([{key:\"prepend-inner\",fn:function(){return [_c('v-icon',[_vm._v(\"mdi-magnify\")])]},proxy:true}],null,false,2173483727),model:{value:(_vm.search),callback:function ($$v) {_vm.search=$$v},expression:\"search\"}}),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.search && _vm.metricColumns.length > 0),expression:\"!search && metricColumns.length > 0\"}]},[(_vm.showwarn)?_c('v-alert',{attrs:{\"dense\":\"\",\"dark\":\"\",\"text\":\"\",\"color\":\"outbound\"}},[_c('template',{slot:\"prepend\"},[_c('v-icon',{staticClass:\"mr-4\",attrs:{\"color\":\"outbound\"}},[_vm._v(\" mdi-alert \")])],1),_vm._v(\" Filtering displayed metrics may hide rows in the grid, but totals will still reflect all data. Filtering on non-displayed metrics, both the grid and totals will adjust to reflect filtered content. \")],2):_vm._e(),_c('v-card-subtitle',{staticStyle:{\"border-bottom\":\"2px solid silver\",\"color\":\"#9d9d9d\"}},[_vm._v(\"METRICS\")]),_c('FilterCategory',{attrs:{\"columns\":_vm.metricColumns,\"column_filters\":_vm.column_filters,\"initial_column_filters\":_vm.initial_column_filters,\"settings\":_vm.settings,\"ReadOnly\":_vm.ReadOnly,\"advancedSettings\":_vm.advancedSettings,\"getColumnComponent\":_vm.getColumnComponent,\"getFilterValue\":_vm.getFilterValue,\"updateFilterValue\":_vm.updateFilterValue,\"EventBus\":_vm.EventBus}})],1),_vm._l((_vm.filterCategoriesList),function(cat,k){return _c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.search),expression:\"!search\"}],key:k},[(_vm.isCategoryVisible(cat))?_c('v-card-subtitle',{staticClass:\"consistentText\",staticStyle:{\"border-bottom\":\"2px solid silver\"}},[_vm._v(_vm._s(_vm.filterCategoryPrefix(cat).toUpperCase()))]):_vm._e(),(_vm.isCategoryVisible(cat))?_c('v-expansion-panels',{attrs:{\"multiple\":\"\",\"hover\":\"\",\"accordion\":\"\",\"value\":_vm.categoryPanels[cat]},on:{\"change\":(value) => _vm.setPanelState(cat,value)}},[_c('FilterCategory',{attrs:{\"columns\":_vm.getColumnsByCategory(cat),\"column_filters\":_vm.column_filters,\"initial_column_filters\":_vm.initial_column_filters,\"settings\":_vm.settings,\"ReadOnly\":_vm.ReadOnly,\"advancedSettings\":_vm.advancedSettings,\"getColumnComponent\":_vm.getColumnComponent,\"getFilterValue\":_vm.getFilterValue,\"updateFilterValue\":_vm.updateFilterValue,\"EventBus\":_vm.EventBus}})],1):_vm._e()],1)}),(_vm.search)?_c('div',[_c('v-card-subtitle',{staticClass:\"consistentText\",staticStyle:{\"border-bottom\":\"2px solid silver\"}},[_vm._v(\"SEARCH RESULTS\")]),_c('FilterCategory',{attrs:{\"columns\":_vm.columnsFromSearch,\"column_filters\":_vm.column_filters,\"initial_column_filters\":_vm.initial_column_filters,\"settings\":_vm.settings,\"ReadOnly\":_vm.ReadOnly,\"advancedSettings\":_vm.advancedSettings,\"getColumnComponent\":_vm.getColumnComponent,\"getFilterValue\":_vm.getFilterValue,\"updateFilterValue\":_vm.updateFilterValue,\"EventBus\":_vm.EventBus}})],1):_vm._e(),_c('div',{staticClass:\"mt-1\",staticStyle:{\"justify-content\":\"unset\",\"border-top\":\"1px solid #e0e0e0\"}},[(!_vm.ReadOnly)?_c('v-btn',{staticClass:\"px-0 customHoverButton mt-1\",attrs:{\"text\":\"\",\"large\":\"\",\"elevation\":\"0\",\"color\":\"primary\"},on:{\"click\":_vm.addFilter}},[_c('v-icon',{staticClass:\"mr-1\",attrs:{\"small\":\"\"}},[_vm._v(\"mdi-plus\")]),_vm._v(\" Add Filter \")],1):_vm._e()],1)],2),_c('v-dialog',{attrs:{\"max-width\":\"590\",\"persistent\":\"\"},model:{value:(_vm.addFilterVisible),callback:function ($$v) {_vm.addFilterVisible=$$v},expression:\"addFilterVisible\"}},[_c('v-card',[_c('v-card-title',{staticClass:\"text-h6\"},[_vm._v(\" Select filters \"),_c('v-spacer'),_c('v-btn',{attrs:{\"icon\":\"\"},on:{\"click\":function($event){_vm.addFilterVisible = false}}},[_c('v-icon',[_vm._v(\"mdi-close\")])],1)],1),_c('v-card-text',[_c('v-menu',{attrs:{\"offset-y\":\"\",\"nudge-top\":\"25\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on, attrs }){return [_c('v-text-field',_vm._g(_vm._b({ref:\"search_dlg_field\",staticStyle:{\"cursor\":\"text !important\"},attrs:{\"outlined\":\"\",\"dense\":\"\",\"clearable\":\"\",\"placeholder\":\"Search\",\"prepend-inner-icon\":\"mdi-magnify\"},on:{\"input\":function($event){_vm.menuSelectFiltersOpen = true}},scopedSlots:_vm._u([{key:\"append\",fn:function(){return [_c('v-icon',_vm._g(_vm._b({},'v-icon',attrs,false),on),[_vm._v(\"mdi-menu-down\")])]},proxy:true}],null,true),model:{value:(_vm.search_dlg),callback:function ($$v) {_vm.search_dlg=$$v},expression:\"search_dlg\"}},'v-text-field',attrs,false),on))]}}],null,false,722618227),model:{value:(_vm.menuSelectFiltersOpen),callback:function ($$v) {_vm.menuSelectFiltersOpen=$$v},expression:\"menuSelectFiltersOpen\"}},[_c('v-list',{staticStyle:{\"max-height\":\"400px\",\"overflow-y\":\"auto\"},attrs:{\"subheader\":\"\",\"flat\":\"\"}},[(_vm.columnsFromSearch_dlg.length > 0)?_c('v-list-item-group',{attrs:{\"value\":_vm.search_colid,\"_change\":\"selectFilterDlgChanged\"}},[_vm._l((_vm.columnsFromSearch_dlg),function(item,index){return [(index == 0 || _vm.columnsFromSearch_dlg[index].Category != _vm.columnsFromSearch_dlg[index - 1].Category)?[_c('v-subheader',{key:`head:${index}`,staticClass:\"ml-2 pl-0\"},[_vm._v(_vm._s(item.Category.toUpperCase()))]),_c('v-divider',{key:`div:${index}`})]:_vm._e(),_c('v-list-item',{key:`body:${index}`,staticClass:\"ml-2\",attrs:{\"value\":item.ColId,\"disabled\":item.isInUse},on:{\"click\":function($event){return _vm.selectFilterDlg(item)}}},[_c('v-list-item-title',[_vm._v(\" \"+_vm._s(item.Title)+\" \")])],1)]})],2):_c('v-list-item',[_c('v-list-item-title',[_vm._v(\" No results found \")])],1)],1)],1)],1),_c('v-card-actions',[_c('v-spacer'),_c('v-btn',{staticClass:\"mb-3 mr-2\",attrs:{\"color\":\"primary\",\"elevation\":0,\"disabled\":!_vm.search_colid || !_vm.search_dlg},on:{\"click\":function($event){return _vm.addFilterResponse(_vm.search_colid)}}},[_vm._v(\" Select \")])],1)],1)],1)],1):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return (_vm.columns.length == 0)?_c('div',{staticClass:\"text-caption ml-3 consistentText\",staticStyle:{\"flex\":\"auto\"}},[_vm._v(\" No items visible - check your filter settings \")]):_c('v-expansion-panels',{attrs:{\"multiple\":\"\",\"accordion\":\"\",\"hover\":\"\"},model:{value:(_vm.panels_open),callback:function ($$v) {_vm.panels_open=$$v},expression:\"panels_open\"}},_vm._l((_vm.added_columns),function(col,i){return _c('v-expansion-panel',{key:i,ref:`panel-${i}`,refInFor:true},[_c('v-expansion-panel-header',{attrs:{\"color\":\"extraLightGrey\"},scopedSlots:_vm._u([{key:\"actions\",fn:function(){return [(_vm.isIconVisible(col))?_c('v-icon',{staticClass:\"mr-3\",attrs:{\"color\":\"primary\",\"title\":\"Clear Filter\"},on:{\"click\":function($event){$event.stopPropagation();return _vm.clear(col)}}},[_vm._v(\"mdi-close-circle-outline\")]):_vm._e(),_c('v-icon',[_vm._v(\"mdi-menu-down\")])]},proxy:true}],null,true)},[_c('span',[_vm._v(\" \"+_vm._s(col.Title)+\" \")])]),_c('v-expansion-panel-content',{attrs:{\"color\":\"extraLightGrey\"}},[_c('v-card',{staticClass:\"pa-1\",attrs:{\"elevation\":0,\"color\":\"extraLightGrey\"}},[(!_vm.ReadOnly)?_c('v-switch',{staticClass:\"ma-0\",attrs:{\"dense\":\"\",\"hide-details\":\"\",\"inset\":\"\",\"input-value\":_vm.usages[col.ColId] > 0},on:{\"change\":v => _vm.setColumnFilterUse(col, v ? 1 : 0)},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_vm._v(\" Allow the filter to be used in view mode \"),_c('v-tooltip',{attrs:{\"bottom\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on, attrs }){return [_c('v-icon',_vm._g(_vm._b({staticClass:\"ml-1\",staticStyle:{\"color\":\"var(--v-darkGreyIcon-base)\"},attrs:{\"dense\":\"\"}},'v-icon',attrs,false),on),[_vm._v(\"mdi-information\")])]}}],null,true)},[_vm._v(\" In this mode, filter controls are visible and accessible in view mode. Users can modify\"),_c('br'),_vm._v(\" the filter settings freely while viewing the report, allowing for dynamic and personalized\"),_c('br'),_vm._v(\" adjustments. The filter selections made in Edit mode will serve as the default settings\"),_c('br'),_vm._v(\" when first entering view mode, but users can freely adjust these as needed. \")])]},proxy:true}],null,true)}):_vm._e(),(!_vm.ReadOnly && _vm.limitedFilteringTypes.includes(col.SourceType))?_c('v-switch',{staticClass:\"ma-0\",attrs:{\"dense\":\"\",\"hide-details\":\"\",\"inset\":\"\",\"input-value\":_vm.usages[col.ColId] == 2,\"disabled\":!(_vm.usages[col.ColId] > 0)},on:{\"change\":v => _vm.setColumnFilterUse(col, v ? 2 : 1)},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_vm._v(\" Only allow filtering on selected items \"),_c('v-tooltip',{attrs:{\"bottom\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on, attrs }){return [_c('v-icon',_vm._g(_vm._b({staticClass:\"ml-1\",staticStyle:{\"color\":\"var(--v-darkGreyIcon-base)\"},attrs:{\"dense\":\"\"}},'v-icon',attrs,false),on),[_vm._v(\"mdi-information\")])]}}],null,true)},[_vm._v(\" When enabled, filter controls are available in view mode with restrictions. Users can adjust\"),_c('br'),_vm._v(\" settings but only within the options defined in Edit mode.\"),_c('br'),_vm._v(\" By default, filters include only selected items (if none are selected, all are assumed selected).\"),_c('br'),_vm._v(\" However, if 'All' is selected while some items remain unselected, the filter switches to \"),_c('br'),_vm._v(\" exclusive mode - excluding unselected items while including selected and newly added ones. \")])]},proxy:true}],null,true)}):_vm._e(),_c(_vm.getColumnComponent(col),{key:_vm.column_ids[col.ColId],tag:\"component\",attrs:{\"item\":col,\"EventBus\":_vm.EventBus,\"settings\":_vm.settings,\"isopen\":_vm.isFieldOpen(i),\"value\":_vm.column_filters[col.ColId],\"initial\":_vm.initial_column_filters != null ? _vm.initial_column_filters[col.ColId] : null,\"advancedSettings\":_vm.advancedSettings},on:{\"change\":(value) => _vm.localUpdateFilterValue(col, value)}})],1)],1)],1)}),1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"textSet-column c-textSetColumn\"},[_c('div',{staticStyle:{\"display\":\"flex\",\"flex-direction\":\"row\"}},[((!_vm.initial || _vm.initial.usage == 1) && _vm.item.SourceType == 'userIDColumn')?_c('v-switch',{staticClass:\"ml-0 mb-2 mr-3\",attrs:{\"label\":\"Constrain to Current User Only\",\"inset\":\"\",\"dense\":\"\",\"hide-details\":\"\"},model:{value:(_vm.usecurrentuser),callback:function ($$v) {_vm.usecurrentuser=$$v},expression:\"usecurrentuser\"}}):_vm._e(),((!_vm.initial || _vm.initial.usage < 2) && !_vm.usecurrentuser && _vm.allowStandardTextFilter && _vm.advancedSettings)?_c('v-switch',{staticClass:\"ma-0\",attrs:{\"inset\":\"\",\"dense\":\"\",\"hide-details\":\"\"},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_vm._v(\" Use conditional filtering \"),_c('v-tooltip',{attrs:{\"bottom\":\"\",\"open-delay\":\"50\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on, attrs }){return [_c('v-icon',_vm._g(_vm._b({staticClass:\"ml-1\",staticStyle:{\"color\":\"var(--v-darkGreyIcon-base)\"},attrs:{\"dense\":\"\"}},'v-icon',attrs,false),on),[_vm._v(\"mdi-information\")])]}}],null,false,2196606397)},[_c('div',{staticStyle:{\"white-space\":\"normal\",\"word-wrap\":\"break-word\",\"max-width\":\"400px\"}},[_vm._v(_vm._s(_vm.standardTextFilterTooltip))])])]},proxy:true}],null,false,398013202),model:{value:(_vm.usefulltext),callback:function ($$v) {_vm.usefulltext=$$v},expression:\"usefulltext\"}}):_vm._e()],1),(_vm.usefulltext && _vm.haslookup)?_c('v-alert',{staticClass:\"mt-2 mb-1\",attrs:{\"icon\":\"mdi-alert\",\"dark\":\"\",\"dense\":\"\",\"text\":\"\",\"type\":\"warning\",\"color\":\"outbound\"}},[_vm._v(\" This field displays values from a corresponding lookup table, translating internal identifiers (which may be GUIDs) into readable text. This mode cannot be used to search for readable text. \")]):_vm._e(),(_vm.usefulltext && !_vm.usecurrentuser)?_c('SearchableTextColumn',{attrs:{\"item\":_vm.item,\"settings\":_vm.settings,\"isopen\":_vm.isopen,\"value\":_vm.value},on:{\"change\":_vm.relayChange}}):_c('div',[(!_vm.usecurrentuser)?_c('div',{staticClass:\"mb-2\",staticStyle:{\"display\":\"flex\",\"flex-direction\":\"row\"}},[_c('v-text-field',{staticClass:\"_search-box ml-1 mr-2 mt-2\",staticStyle:{\"max-width\":\"300px\"},attrs:{\"outlined\":\"\",\"dense\":\"\",\"hide-details\":\"\",\"type\":\"text\",\"placeholder\":\"Search...\",\"background-color\":\"white\"},model:{value:(_vm.search),callback:function ($$v) {_vm.search=$$v},expression:\"search\"}}),(_vm.UniqueValuesVisible && _vm.advancedSettings)?_c('v-checkbox',{staticClass:\"pt-0 mt-4\",attrs:{\"dense\":\"\",\"hide-details\":\"\"},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_vm._v(\" Hide unused items \"),_c('v-tooltip',{attrs:{\"bottom\":\"\",\"open-delay\":\"50\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on, attrs }){return [_c('v-icon',_vm._g(_vm._b({staticClass:\"ml-1\",staticStyle:{\"color\":\"var(--v-darkGreyIcon-base)\"},attrs:{\"dense\":\"\"}},'v-icon',attrs,false),on),[_vm._v(\"mdi-information\")])]}}],null,false,2196606397)},[_vm._v(\" When on, only list items that were used in the date range selected. \")])]},proxy:true}],null,false,1708349249),model:{value:(_vm.showunique),callback:function ($$v) {_vm.showunique=$$v},expression:\"showunique\"}}):_vm._e(),(_vm.query_in_progress)?_c('v-progress-circular',{staticClass:\"ml-2 mt-1\",attrs:{\"indeterminate\":\"\",\"color\":\"primary\",\"size\":20,\"width\":3}}):_vm._e(),(_vm.queryError)?_c('v-icon',{staticClass:\"ml-2 mt-0\",attrs:{\"color\":\"red\",\"title\":_vm.queryError}},[_vm._v(\"mdi-alert-octagram-outline\")]):_vm._e()],1):_vm._e(),(!_vm.usecurrentuser)?_c('v-list-item',{staticClass:\"mediumdense\",on:{\"click\":_vm.selectAll}},[_c('v-list-item-action',[_c('v-icon',[_vm._v(\" \"+_vm._s(_vm.isAllSelected ? 'mdi-checkbox-marked' : 'mdi-checkbox-blank-outline')+\" \")])],1),_c('v-list-item-content',{staticClass:\"removepadding\"},[_vm._v(\" All \")])],1):_vm._e(),_c('v-list',{staticClass:\"ma-0 pa-0\",attrs:{\"flat\":\"\",\"color\":\"grey lighten-5\"}},[(!_vm.usecurrentuser)?_c('v-list-item-group',{staticClass:\"pb-3 pt-0\",staticStyle:{\"max-height\":\"220px\",\"overflow\":\"auto\"},attrs:{\"multiple\":\"\",\"active-class\":\"abc\"},model:{value:(_vm.selected_items),callback:function ($$v) {_vm.selected_items=$$v},expression:\"selected_items\"}},[_vm._l((_vm.filteredlist),function(item){return [_c('v-list-item',{key:item,staticClass:\"mediumdense pt-0 pb-0\",attrs:{\"value\":item}},[_c('v-list-item-action',[_c('v-icon',{attrs:{\"color\":\"grey darken-1\"}},[_vm._v(\" \"+_vm._s(_vm.isChecked(item) ? 'mdi-checkbox-marked' : 'mdi-checkbox-blank-outline')+\" \")])],1),_c('v-list-item-content',{staticClass:\"text-no-wrap removepadding\"},[_vm._v(\" \"+_vm._s(_vm.transformValue(item))+\" \")])],1)]})],2):_vm._e()],1)],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('v-container',{staticClass:\"grey lighten-5\"},[_vm._l((_vm.rules),function(item,i){return _c('v-sheet',{key:i,attrs:{\"dense\":\"\",\"color\":\"extraLightGrey\"}},[_c('v-sheet',{staticClass:\"d-flex flex-row flex-nowrap\"},[_c('v-row',{attrs:{\"dense\":\"\"}},[_c('v-col',{attrs:{\"cols\":\"4\"}},[_c('v-select',{attrs:{\"outlined\":\"\",\"dense\":\"\",\"hide-details\":\"\",\"background-color\":\"white\",\"label\":\"Condition\",\"items\":_vm.condition_types,\"menu-props\":{ offsetY: true }},on:{\"change\":_vm.updateReport},model:{value:(item.condition),callback:function ($$v) {_vm.$set(item, \"condition\", $$v)},expression:\"item.condition\"}})],1),_c('v-col',{attrs:{\"cols\":\"8\"}},[_c('v-text-field',{attrs:{\"outlined\":\"\",\"dense\":\"\",\"hide-details\":\"\",\"background-color\":\"white\",\"label\":\"Value\",\"disabled\":item.condition == 'empty' || item.condition == 'notempty' || item.condition == 'missing'},on:{\"input\":_vm.updateReport},model:{value:(item.value),callback:function ($$v) {_vm.$set(item, \"value\", $$v)},expression:\"item.value\"}})],1)],1),(i > 0)?_c('v-btn',{staticClass:\"mr-n9\",attrs:{\"icon\":\"\"},on:{\"click\":function($event){return _vm.removeCondition()}}},[_c('v-icon',[_vm._v(\"mdi-window-close\")])],1):_vm._e()],1),(i < 1)?_c('v-row',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.rules.length > 1),expression:\"rules.length > 1\"}],attrs:{\"justify\":\"center\"}},[_c('v-radio-group',{staticClass:\"mt-6 mb-1 ml-1\",attrs:{\"value\":item.combiner,\"mandatory\":\"\",\"row\":\"\"},on:{\"change\":(value) => _vm.setItemCombiner(item, i, value)}},[_c('v-radio',{attrs:{\"label\":\"AND\",\"value\":\"AND\"}}),_c('v-radio',{attrs:{\"label\":\"OR\",\"value\":\"OR\"}})],1)],1):_vm._e()],1)}),_c('v-hover',[_c('v-btn',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.rules.length == 1),expression:\"rules.length == 1\"}],staticClass:\"px-0 customHoverButton\",attrs:{\"elevation\":\"0\"},on:{\"click\":function($event){return _vm.addCondition()}}},[_c('v-icon',{staticClass:\"mr-1\",attrs:{\"left\":\"\"}},[_vm._v(\" mdi-plus \")]),_vm._v(\" Add Rule \")],1)],1)],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\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/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./filter_searchableTextColumn.vue?vue&type=script&lang=js&\"; 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/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./filter_searchableTextColumn.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./filter_searchableTextColumn.vue?vue&type=template&id=4c1b9b4a&scoped=true&\"\nimport script from \"./filter_searchableTextColumn.vue?vue&type=script&lang=js&\"\nexport * from \"./filter_searchableTextColumn.vue?vue&type=script&lang=js&\"\nimport style0 from \"./filter_searchableTextColumn.vue?vue&type=style&index=0&id=4c1b9b4a&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 \"4c1b9b4a\",\n null\n \n)\n\nexport default component.exports","\n\n\n\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/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./filter_textSetColumn.vue?vue&type=script&lang=js&\"; 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/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./filter_textSetColumn.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./filter_textSetColumn.vue?vue&type=template&id=3e655d82&scoped=true&\"\nimport script from \"./filter_textSetColumn.vue?vue&type=script&lang=js&\"\nexport * from \"./filter_textSetColumn.vue?vue&type=script&lang=js&\"\nimport style0 from \"./filter_textSetColumn.vue?vue&type=style&index=0&id=3e655d82&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 \"3e655d82\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('v-container',{staticStyle:{\"background-color\":\"var(--v-extraLightGrey-base)\"}},[_vm._l((_vm.rules),function(item,i){return _c('v-sheet',{key:i,attrs:{\"dense\":\"\",\"color\":\"extraLightGrey\"}},[_c('v-sheet',{staticClass:\"d-flex flex-row flex-nowrap\"},[_c('v-row',{attrs:{\"dense\":\"\"}},[_c('v-col',{attrs:{\"cols\":\"6\"}},[_c('v-select',{attrs:{\"outlined\":\"\",\"dense\":\"\",\"hide-details\":\"\",\"label\":\"Condition\",\"items\":_vm.condition_types,\"menu-props\":{ offsetY: true },\"background-color\":\"white\"},on:{\"change\":_vm.updateReport},model:{value:(item.condition),callback:function ($$v) {_vm.$set(item, \"condition\", $$v)},expression:\"item.condition\"}})],1),(item.condition != 'inRange')?_c('v-col',{attrs:{\"cols\":\"6\"}},[_c('v-text-field',{attrs:{\"type\":\"number\",\"label\":\"Value\",\"outlined\":\"\",\"dense\":\"\",\"hide-details\":\"\",\"placeholder\":_vm.placeholder,\"disabled\":item.condition == 'missing',\"background-color\":\"white\"},on:{\"input\":_vm.updateReport},scopedSlots:_vm._u([{key:\"append\",fn:function(){return [_c('span',{staticClass:\"mt-1\"},[_vm._v(_vm._s(_vm.units))])]},proxy:true}],null,true),model:{value:(item.value),callback:function ($$v) {_vm.$set(item, \"value\", _vm._n($$v))},expression:\"item.value\"}})],1):_vm._e(),(item.condition == 'inRange')?_c('v-col',{attrs:{\"cols\":\"3\"}},[_c('v-text-field',{attrs:{\"type\":\"number\",\"label\":\"From\",\"outlined\":\"\",\"dense\":\"\",\"hide-details\":\"\",\"placeholder\":_vm.placeholder,\"background-color\":\"white\"},on:{\"input\":_vm.updateReport},scopedSlots:_vm._u([{key:\"append\",fn:function(){return [_c('span',{staticClass:\"mt-1\"},[_vm._v(_vm._s(_vm.units))])]},proxy:true}],null,true),model:{value:(item.value),callback:function ($$v) {_vm.$set(item, \"value\", _vm._n($$v))},expression:\"item.value\"}})],1):_vm._e(),(item.condition == 'inRange')?_c('v-col',{attrs:{\"cols\":\"3\"}},[_c('v-text-field',{attrs:{\"type\":\"number\",\"label\":\"To\",\"outlined\":\"\",\"dense\":\"\",\"hide-details\":\"\",\"placeholder\":_vm.placeholder,\"background-color\":\"white\"},on:{\"input\":_vm.updateReport},scopedSlots:_vm._u([{key:\"append\",fn:function(){return [_c('span',{staticClass:\"mt-1\"},[_vm._v(_vm._s(_vm.units))])]},proxy:true}],null,true),model:{value:(item.valueto),callback:function ($$v) {_vm.$set(item, \"valueto\", _vm._n($$v))},expression:\"item.valueto\"}})],1):_vm._e()],1),(i > 0)?_c('v-btn',{staticClass:\"mr-n9\",attrs:{\"icon\":\"\"},on:{\"click\":function($event){return _vm.removeCondition()}}},[_c('v-icon',[_vm._v(\"mdi-window-close\")])],1):_vm._e()],1),(i < 1)?_c('v-row',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.rules.length > 1),expression:\"rules.length > 1\"}],attrs:{\"justify\":\"center\"}},[_c('v-radio-group',{staticClass:\"mt-6 mb-1 ml-1\",attrs:{\"value\":item.combiner,\"mandatory\":\"\",\"row\":\"\"},on:{\"change\":(value) => _vm.setItemCombiner(item, i, value)}},[_c('v-radio',{attrs:{\"label\":\"AND\",\"value\":\"AND\"}}),_c('v-radio',{attrs:{\"label\":\"OR\",\"value\":\"OR\"}})],1)],1):_vm._e()],1)}),_c('v-hover',[_c('v-btn',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.rules.length == 1),expression:\"rules.length == 1\"}],staticClass:\"px-0 customHoverButton\",attrs:{\"elevation\":\"0\"},on:{\"click\":function($event){return _vm.addCondition()}}},[_c('v-icon',{staticClass:\"mr-1\",attrs:{\"left\":\"\"}},[_vm._v(\" mdi-plus \")]),_vm._v(\" Add Rule \")],1)],1)],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\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/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./filter_durationColumn.vue?vue&type=script&lang=js&\"; 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/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./filter_durationColumn.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./filter_durationColumn.vue?vue&type=template&id=01631ccc&scoped=true&\"\nimport script from \"./filter_durationColumn.vue?vue&type=script&lang=js&\"\nexport * from \"./filter_durationColumn.vue?vue&type=script&lang=js&\"\nimport style0 from \"./filter_durationColumn.vue?vue&type=style&index=0&id=01631ccc&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 \"01631ccc\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('v-container',{staticClass:\"pt-0 px-0\"},[_c('div',{staticClass:\"consistentText\"},[_vm._v(\" This date range filter allows you to specify dynamic time periods by setting start and end points relative to today (i.e. filter based on a range that adjusts in relation to the current date and time). \")]),_c('div',{staticClass:\"mt-2 consistentText\"},[_vm._v(\" Examples: \")]),_c('ul',{staticClass:\"consistentText\"},[_c('li',[_vm._v(\" Last 7 Days: By setting the From value as \\\"7 days ago\\\" and the To value as \\\"now,\\\" the filter will include data from the past 7 days up to the current moment. \")]),_c('li',[_vm._v(\" Last 30 Days: Similarly, setting the From as \\\"30 days ago\\\" and the To as \\\"now\\\" captures data from the past 30 days.\\\" \")])]),_c('v-container',{staticClass:\"mt-3 customGrid px-0\"},[_c('v-select',{staticStyle:{\"width\":\"100%\"},attrs:{\"outlined\":\"\",\"dense\":\"\",\"hide-details\":\"\",\"items\":_vm.relative_units,\"menu-props\":{ offsetY: true },\"background-color\":\"white\"},on:{\"change\":_vm.updateReport},model:{value:(_vm.units_from),callback:function ($$v) {_vm.units_from=$$v},expression:\"units_from\"}}),(_vm.units_from == 'abs' && _vm.units_from !== 'now')?_c('v-text-field',{staticStyle:{\"grid-column\":\"span 2\"},attrs:{\"outlined\":\"\",\"dense\":\"\",\"hide-details\":\"\",\"type\":\"datetime-local\",\"step\":\"900\",\"label\":\"From\",\"background-color\":\"white\"},on:{\"change\":_vm.updateReport},model:{value:(_vm.abs_from),callback:function ($$v) {_vm.abs_from=$$v},expression:\"abs_from\"}}):_vm._e(),(_vm.units_from != 'abs' && _vm.units_from !== 'now')?_c('v-text-field',{attrs:{\"outlined\":\"\",\"dense\":\"\",\"hide-details\":\"\",\"type\":\"number\",\"label\":\"From\",\"background-color\":\"white\"},on:{\"input\":_vm.updateReport},model:{value:(_vm.value_from),callback:function ($$v) {_vm.value_from=_vm._n($$v)},expression:\"value_from\"}}):_vm._e(),(false && _vm.units_from == 'abs' && _vm.units_from !== 'now')?_c('v-menu',{staticStyle:{\"grid-column\":\"span 2\"},attrs:{\"offset-y\":\"\",\"close-on-content-click\":false,\"close-on-click\":false},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on, attrs }){return [_c('v-text-field',_vm._g(_vm._b({attrs:{\"outlined\":\"\",\"dense\":\"\",\"hide-details\":\"\",\"value\":'12/1/2023',\"type\":\"date\",\"label\":\"From Date\",\"_append-icon\":\"mdi-calendar-month\",\"background-color\":\"white\"}},'v-text-field',attrs,false),on))]}}],null,false,4106731361)},[_c('v-card',[_c('v-card-content',{staticStyle:{\"display\":\"flex\",\"flex-direction\":\"row\"}},[_c('v-date-picker')],1),_c('v-card-actions',[_c('v-btn',[_vm._v(\"OK\")])],1)],1)],1):_vm._e(),(false && _vm.units_from == 'abs' && _vm.units_from !== 'now')?_c('v-menu',{staticStyle:{\"grid-column\":\"span 2\"},attrs:{\"offset-y\":\"\",\"close-on-content-click\":false,\"close-on-click\":false},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on, attrs }){return [_c('v-text-field',_vm._g(_vm._b({attrs:{\"outlined\":\"\",\"dense\":\"\",\"hide-details\":\"\",\"value\":'12:00:00 AM',\"type\":\"time\",\"label\":\"From Time\",\"_append-icon\":\"mdi-calendar-month\",\"background-color\":\"white\"}},'v-text-field',attrs,false),on))]}}],null,false,2989871487)},[_c('v-card',[_c('v-card-content',{staticStyle:{\"display\":\"flex\",\"flex-direction\":\"row\"}},[_c('v-time-picker')],1),_c('v-card-actions',[_c('v-btn',[_vm._v(\"OK\")])],1)],1)],1):_vm._e(),(_vm.units_from !== 'now' && _vm.units_from !== 'abs')?_c('v-row',{staticClass:\"ma-0\"},[_c('v-checkbox',{staticClass:\"my-0 mr-2 pa-0 text-no-wrap\",attrs:{\"dense\":\"\",\"hide-details\":\"\",\"label\":`Round to the ${_vm.friendlyFromUnit}`},on:{\"change\":_vm.updateReport},model:{value:(_vm.round_from),callback:function ($$v) {_vm.round_from=$$v},expression:\"round_from\"}}),_c('v-tooltip',{attrs:{\"bottom\":\"\",\"open-delay\":\"50\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on, attrs }){return [_c('v-icon',_vm._g(_vm._b({staticStyle:{\"color\":\"var(--v-darkGreyIcon-base)\"},attrs:{\"small\":\"\"}},'v-icon',attrs,false),on),[_vm._v(\"mdi-information\")])]}}],null,false,710186054)},[_vm._v(\" When checked, the starting value of the range will be rounded down to the nearest \"+_vm._s(_vm.friendlyFromUnit)+\". When unchecked, the starting value of the range will be calculated from now. \")])],1):_vm._e(),_c('v-select',{staticStyle:{\"grid-row\":\"2\",\"width\":\"100%\"},attrs:{\"outlined\":\"\",\"dense\":\"\",\"hide-details\":\"\",\"items\":_vm.relative_units,\"menu-props\":{ offsetY: true },\"background-color\":\"white\"},on:{\"change\":_vm.updateReport},model:{value:(_vm.units_to),callback:function ($$v) {_vm.units_to=$$v},expression:\"units_to\"}}),(_vm.units_to != 'abs' && _vm.units_to !== 'now')?_c('v-text-field',{staticStyle:{\"grid-row\":\"2\"},attrs:{\"outlined\":\"\",\"dense\":\"\",\"hide-details\":\"\",\"type\":\"number\",\"label\":\"To\",\"background-color\":\"white\"},on:{\"input\":_vm.updateReport},model:{value:(_vm.value_to),callback:function ($$v) {_vm.value_to=_vm._n($$v)},expression:\"value_to\"}}):_vm._e(),(_vm.units_to == 'abs' && _vm.units_to !== 'now')?_c('v-text-field',{staticStyle:{\"grid-row\":\"2\",\"grid-column\":\"span 2\"},attrs:{\"outlined\":\"\",\"dense\":\"\",\"hide-details\":\"\",\"type\":\"datetime-local\",\"step\":\"900\",\"label\":\"To\",\"background-color\":\"white\"},on:{\"change\":_vm.updateReport},model:{value:(_vm.abs_to),callback:function ($$v) {_vm.abs_to=$$v},expression:\"abs_to\"}}):_vm._e(),(_vm.units_to !== 'now' && _vm.units_to !== 'abs')?_c('v-row',{staticClass:\"ma-0\",staticStyle:{\"grid-row\":\"2\"}},[_c('v-checkbox',{staticClass:\"my-0 mr-2 pa-0 text-no-wrap\",attrs:{\"dense\":\"\",\"hide-details\":\"\",\"label\":`Round to the ${_vm.friendlyToUnit}`},on:{\"change\":_vm.updateReport},model:{value:(_vm.round_to),callback:function ($$v) {_vm.round_to=$$v},expression:\"round_to\"}}),_c('v-tooltip',{attrs:{\"bottom\":\"\",\"open-delay\":\"50\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on, attrs }){return [_c('v-icon',_vm._g(_vm._b({staticStyle:{\"color\":\"var(--v-darkGreyIcon-base)\"},attrs:{\"small\":\"\"}},'v-icon',attrs,false),on),[_vm._v(\"mdi-information\")])]}}],null,false,710186054)},[_vm._v(\" When checked, the ending value of the range will be rounded down to the nearest \"+_vm._s(_vm.friendlyToUnit)+\". When unchecked, the ending value of the range will be calculated from now. \")])],1):_vm._e()],1),_c('div',{staticClass:\"mt-3 mb-2 consistentText\"},[_vm._v(\" Sample result \")]),_c('v-row',{staticStyle:{\"background-color\":\"#E3EEFE\"},attrs:{\"dense\":\"\"}},[_c('v-col',{attrs:{\"cols\":\"5\"}},[_c('v-text-field',{attrs:{\"dense\":\"\",\"flat\":\"\",\"solo\":\"\",\"hide-details\":\"\",\"label\":\"From\",\"background-color\":\"transparent\",\"value\":_vm.computeCurrentStart},scopedSlots:_vm._u([{key:\"prepend-inner\",fn:function(){return [_c('v-sheet',{staticStyle:{\"padding-top\":\"1px\",\"color\":\"var(--v-secondaryText-base)\"},attrs:{\"color\":\"transparent\"}},[_vm._v(\" From: \")])]},proxy:true}])})],1),_c('v-col',{staticClass:\"ml-auto\",attrs:{\"cols\":\"5\"}},[_c('v-text-field',{attrs:{\"dense\":\"\",\"flat\":\"\",\"solo\":\"\",\"hide-details\":\"\",\"label\":\"To\",\"background-color\":\"transparent\",\"value\":_vm.computeCurrentEnd},scopedSlots:_vm._u([{key:\"prepend-inner\",fn:function(){return [_c('v-sheet',{staticStyle:{\"padding-top\":\"1px\",\"color\":\"var(--v-secondaryText-base)\"},attrs:{\"color\":\"transparent\"}},[_vm._v(\" To: \")])]},proxy:true}])})],1)],1),(false)?_c('v-row',{staticClass:\"ma-0\",attrs:{\"dense\":\"\"}},[_c('v-col',{attrs:{\"cols\":\"6\"}},[_c('v-text-field',{attrs:{\"filled\":\"\",\"rounded\":\"\",\"dense\":\"\",\"hide-details\":\"\",\"label\":\"Local From\",\"value\":_vm.computeLocalStart}})],1),_c('v-col',{attrs:{\"cols\":\"6\"}},[_c('v-text-field',{attrs:{\"filled\":\"\",\"rounded\":\"\",\"dense\":\"\",\"hide-details\":\"\",\"label\":\"Local To\",\"value\":_vm.computeLocalEnd}})],1)],1):_vm._e(),_c('div',{staticClass:\"mt-5 consistentText\"},[_vm._v(\" Advantages: \")]),_c('ul',{staticClass:\"consistentText\"},[_c('li',[_vm._v(\" Dynamic Adjustment: The range selected updates automatically as time passes, ensuring the filter always reflects latest data. \")]),_c('li',[_vm._v(\" Flexibility: Users can customize the range to suit their needs, whether for recent trends, historical analysis, or specific periods of interest \")])])],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\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/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./filter_dateColumn.vue?vue&type=script&lang=js&\"; 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/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./filter_dateColumn.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./filter_dateColumn.vue?vue&type=template&id=4820fc28&scoped=true&\"\nimport script from \"./filter_dateColumn.vue?vue&type=script&lang=js&\"\nexport * from \"./filter_dateColumn.vue?vue&type=script&lang=js&\"\nimport style0 from \"./filter_dateColumn.vue?vue&type=style&index=0&id=4820fc28&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 \"4820fc28\",\n null\n \n)\n\nexport default component.exports","\n\n\n\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/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./filterCategory.vue?vue&type=script&lang=js&\"; 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/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./filterCategory.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./filterCategory.vue?vue&type=template&id=10cfa790&scoped=true&\"\nimport script from \"./filterCategory.vue?vue&type=script&lang=js&\"\nexport * from \"./filterCategory.vue?vue&type=script&lang=js&\"\nimport style0 from \"./filterCategory.vue?vue&type=style&index=0&id=10cfa790&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 \"10cfa790\",\n null\n \n)\n\nexport default component.exports","\n\n\n\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/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./agGridToolReportFilters.vue?vue&type=script&lang=js&\"; 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/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./agGridToolReportFilters.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./agGridToolReportFilters.vue?vue&type=template&id=08b22184&scoped=true&class=c-ToolPanel&\"\nimport script from \"./agGridToolReportFilters.vue?vue&type=script&lang=js&\"\nexport * from \"./agGridToolReportFilters.vue?vue&type=script&lang=js&\"\nimport style0 from \"./agGridToolReportFilters.vue?vue&type=style&index=0&id=08b22184&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 \"08b22184\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticStyle:{\"margin-top\":\"2px\"}},[_vm._l((_vm.icons),function(item,i){return [(!item.MenuItems || !item.MenuItems.length)?_c('v-tooltip',{key:i,attrs:{\"bottom\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on, attrs }){return [_c('v-btn',_vm._g(_vm._b({directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.getIconDisplay(item)),expression:\"getIconDisplay(item)\"}],class:{ 'hidden-element': !_vm.getIconVisible(item) },attrs:{\"icon\":\"\",\"small\":\"\",\"disabled\":!_vm.getIconEnabled(item)},on:{\"click\":(e) => _vm.buttonClick(e, item)}},'v-btn',attrs,false),on),[_c('v-icon',{attrs:{\"small\":\"\"}},[_vm._v(_vm._s(item.Icon))])],1)]}}],null,true)},[_vm._v(\" \"+_vm._s(item.Tooltip)+\" \")]):_c('v-menu',{key:i,attrs:{\"offset-y\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on: mnu, attrs }){return [_c('v-tooltip',{attrs:{\"bottom\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on: tooltip }){return [_c('v-btn',_vm._g(_vm._b({directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.getIconDisplay(item)),expression:\"getIconDisplay(item)\"}],class:{ 'hidden-element': !_vm.getIconVisible(item) },attrs:{\"icon\":\"\",\"small\":\"\",\"disabled\":!_vm.getIconEnabled(item)},on:{\"click\":(e) => _vm.buttonClick(e, item)}},'v-btn',attrs,false),{ ...tooltip, ...mnu }),[_c('v-icon',{attrs:{\"small\":\"\"}},[_vm._v(_vm._s(item.Icon))])],1)]}}],null,true)},[_vm._v(\" \"+_vm._s(item.Tooltip)+\" \")])]}}],null,true)},[_c('v-list',_vm._l((item.MenuItems),function(menu,mi){return _c('v-list-item',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.getIconDisplay(item)),expression:\"getIconDisplay(item)\"}],key:mi,class:{ 'hidden-element': !_vm.getIconVisible(item) },attrs:{\"disabled\":!_vm.getMenuEnabled(menu)},on:{\"click\":(e) => _vm.menuClick(e, menu)}},[_c('v-list-item-title',[_vm._v(_vm._s(_vm.getMenuTitle(menu)))])],1)}),1)],1)]})],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\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/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./iconComponent.vue?vue&type=script&lang=js&\"; 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/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./iconComponent.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./iconComponent.vue?vue&type=template&id=abc9aaf2&scoped=true&\"\nimport script from \"./iconComponent.vue?vue&type=script&lang=js&\"\nexport * from \"./iconComponent.vue?vue&type=script&lang=js&\"\nimport style0 from \"./iconComponent.vue?vue&type=style&index=0&id=abc9aaf2&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 \"abc9aaf2\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('v-menu',{attrs:{\"offset-y\":\"\",\"left\":\"\",\"close-on-content-click\":false},on:{\"input\":function($event){_vm.command=null}},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on, attrs }){return [_c('v-btn',_vm._g(_vm._b({class:_vm.buttonclass,attrs:{\"plain\":\"\",\"icon\":\"\",\"color\":\"secondary\",\"elevation\":0}},'v-btn',attrs,false),on),[_c('v-icon',[_vm._v(\"mdi-menu\")])],1)]}}]),model:{value:(_vm.showingMenu),callback:function ($$v) {_vm.showingMenu=$$v},expression:\"showingMenu\"}},[_c('v-list',{staticClass:\"overflow-y-auto\",staticStyle:{\"max-height\":\"600px\",\"_overflow\":\"auto\"},attrs:{\"dense\":\"\"}},[_c('v-list-item-group',{model:{value:(_vm.command),callback:function ($$v) {_vm.command=$$v},expression:\"command\"}},[(_vm.debugMode && !_vm.hideColumSelector)?_c('v-list-item',{on:{\"click\":_vm.showColumnSelector}},[_c('v-list-item-icon',[_c('v-icon',[_vm._v(\"mdi-view-grid-plus\")])],1),_c('v-list-item-title',[_vm._v(\"Show Column Selector\")])],1):_vm._e(),(_vm.debugMode)?_c('v-list-item',{on:{\"click\":_vm.showDataFilters}},[_c('v-list-item-icon',[_c('v-icon',[_vm._v(\"mdi-filter\")])],1),_c('v-list-item-title',[_vm._v(\"Show Data Filters\")])],1):_vm._e(),(_vm.debugMode)?_c('v-divider'):_vm._e(),_c('v-list-item',{on:{\"click\":_vm.showAllColumns}},[_c('v-list-item-icon',[_c('v-icon')],1),_c('v-list-item-title',[_vm._v(\"Show all columns\")])],1),_c('v-divider')],1),_c('v-list-item-group',{model:{value:(_vm.selection),callback:function ($$v) {_vm.selection=$$v},expression:\"selection\"}},_vm._l((_vm.items),function(item,i){return _c('v-list-item',{key:i,on:{\"click\":function($event){return _vm.toggleColumnVisible(item)}}},[_c('v-list-item-icon',[_c('v-icon',{attrs:{\"small\":\"\"},domProps:{\"textContent\":_vm._s(_vm.isHidden(item) ? '' : 'mdi-check')}})],1),_c('v-list-item-title',[_vm._v(_vm._s(item.Title))])],1)}),1)],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\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/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./columnMenu.vue?vue&type=script&lang=js&\"; 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/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./columnMenu.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./columnMenu.vue?vue&type=template&id=57b9069d&scoped=true&\"\nimport script from \"./columnMenu.vue?vue&type=script&lang=js&\"\nexport * from \"./columnMenu.vue?vue&type=script&lang=js&\"\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 \"57b9069d\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('v-menu',{ref:\"menu\",attrs:{\"bottom\":\"\",\"right\":!_vm.position || _vm.position == 'right',\"left\":_vm.position == 'left',\"offset-y\":\"\",\"close-on-content-click\":false,\"return-value\":_vm.daterange,\"transition\":!_vm.iconOnly ? 'scale-transition' : 'fade-transition'},on:{\"update:returnValue\":function($event){_vm.daterange=$event},\"update:return-value\":function($event){_vm.daterange=$event}},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on, attrs }){return [(!_vm.iconOnly)?_c('v-text-field',_vm._g(_vm._b({class:_vm.myclass,style:({ minWidth: _vm.width || '460px', maxWidth: _vm.width || '460px' }),attrs:{\"outlined\":\"\",\"dense\":\"\",\"hide-details\":\"\",\"value\":_vm.displaydaterange,\"label\":_vm.label,\"disabled\":!_vm.isactive,\"_prepend-inner-icon\":\"mdi-calendar\",\"readonly\":\"\"},scopedSlots:_vm._u([{key:\"prepend-inner\",fn:function(){return [_c('v-icon',_vm._g(_vm._b({attrs:{\"color\":_vm.isactive ? _vm.activecolor : _vm.inactivecolor},on:{\"click\":function($event){_vm.datePickerOpen = true}}},'v-icon',attrs,false),on),[_vm._v(\" \"+_vm._s(_vm.isactive ? _vm.activeicon : _vm.inactiveicon)+\" \")])]},proxy:true},(_vm.showtooltip)?{key:\"prepend\",fn:function(){return [_c('v-tooltip',{attrs:{\"bottom\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on, attrs }){return [_c('v-icon',_vm._g(_vm._b({attrs:{\"color\":\"grey lighten-1\"},on:{\"click\":function($event){_vm.datePickerOpen = true}}},'v-icon',attrs,false),on),[_vm._v(\" mdi-information \")])]}}],null,true)},[(_vm.isactive)?_c('span',[_vm._t(\"activetooltip\",function(){return [_vm._v(\" Date range picker (Active) \")]})],2):_c('span',[_vm._t(\"inactivetooltip\",function(){return [_vm._v(\" Date range picker (Inactive) \")]})],2)])]},proxy:true}:null],null,true)},'v-text-field',attrs,false),on)):_c('v-btn',_vm._g(_vm._b({staticClass:\"mt-2 ml-0\",attrs:{\"icon\":\"\",\"elevation\":0,\"color\":_vm.isactive ? _vm.activecolor : _vm.inactivecolor}},'v-btn',attrs,false),on),[_c('v-icon',[_vm._v(\" \"+_vm._s(_vm.isactive ? _vm.activeicon : _vm.inactiveicon)+\" \")])],1)]}}]),model:{value:(_vm.datePickerOpen),callback:function ($$v) {_vm.datePickerOpen=$$v},expression:\"datePickerOpen\"}},[_c('v-card',[_c('div',{staticStyle:{\"display\":\"flex\"}},[_c('v-list',{attrs:{\"dense\":\"\",\"flat\":false}},[_c('v-list-item-group',{model:{value:(_vm.preset_choice),callback:function ($$v) {_vm.preset_choice=$$v},expression:\"preset_choice\"}},_vm._l((_vm.presets),function(p){return _c('v-list-item',{key:p.label,on:{\"click\":function($event){return _vm.setRange(p.range)}}},[_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(_vm._s(p.label))])],1)],1)}),1)],1),_c('v-date-picker',{staticStyle:{\"padding\":\"15px\",\"font-size\":\"large\"},attrs:{\"no-title\":\"\",\"scrollable\":\"\",\"show-adjacent-months\":\"\",\"range\":\"\",\"color\":\"primary\",\"picker-date\":_vm.date_1_month},on:{\"update:picker-date\":_vm.date_1_month_changed,\"input\":_vm.date_1_input},model:{value:(_vm.date_1),callback:function ($$v) {_vm.date_1=$$v},expression:\"date_1\"}},[_c('v-text-field',{staticStyle:{\"max-width\":\"114px\",\"margin-right\":\"1px\"},attrs:{\"dense\":\"\",\"solo\":\"\",\"required\":\"\",\"hide-details\":\"\",\"type\":\"date\",\"max\":\"2099-12-31\",\"min\":\"1979-01-01\"},on:{\"input\":_vm.date_1_text_input,\"change\":_vm.date_1_text_change},model:{value:(_vm.date_1_text),callback:function ($$v) {_vm.date_1_text=$$v},expression:\"date_1_text\"}}),_c('v-text-field',{staticStyle:{\"max-width\":\"120px\"},attrs:{\"dense\":\"\",\"solo\":\"\",\"required\":\"\",\"hide-details\":\"\",\"type\":\"time\",\"step\":\"1\"},model:{value:(_vm.time_1),callback:function ($$v) {_vm.time_1=$$v},expression:\"time_1\"}})],1),_c('v-date-picker',{staticStyle:{\"padding\":\"15px\",\"font-size\":\"large\"},attrs:{\"no-title\":\"\",\"scrollable\":\"\",\"show-adjacent-months\":\"\",\"range\":\"\",\"color\":\"primary\",\"picker-date\":_vm.date_2_month},on:{\"update:picker-date\":_vm.date_2_month_changed,\"input\":_vm.date_2_input},model:{value:(_vm.date_2),callback:function ($$v) {_vm.date_2=$$v},expression:\"date_2\"}},[_c('v-text-field',{staticStyle:{\"max-width\":\"114px\",\"margin-right\":\"1px\",\"box-shadow\":\"none !important\"},attrs:{\"dense\":\"\",\"solo\":\"\",\"required\":\"\",\"hide-details\":\"\",\"type\":\"date\",\"max\":\"2099-12-31\",\"min\":\"1979-01-01\"},on:{\"input\":_vm.date_2_text_input,\"change\":_vm.date_2_text_change},model:{value:(_vm.date_2_text),callback:function ($$v) {_vm.date_2_text=$$v},expression:\"date_2_text\"}}),_c('v-text-field',{staticStyle:{\"max-width\":\"120px\"},attrs:{\"dense\":\"\",\"solo\":\"\",\"required\":\"\",\"hide-details\":\"\",\"type\":\"time\",\"step\":\"1\"},model:{value:(_vm.time_2),callback:function ($$v) {_vm.time_2=$$v},expression:\"time_2\"}})],1)],1),_c('v-card-actions',{staticStyle:{\"flex-flow\":\"row-reverse\",\"padding-right\":\"25px\",\"padding-bottom\":\"15px\"}},[_c('v-btn',{attrs:{\"text\":\"\",\"color\":\"primary\",\"disabled\":!_vm.isvalid},on:{\"click\":function($event){return _vm.save()}}},[_vm._v(\" Apply \")]),_c('v-btn',{attrs:{\"text\":\"\",\"_color\":\"primary\"},on:{\"click\":function($event){_vm.datePickerOpen = false}}},[_vm._v(\" Cancel \")]),_c('v-spacer'),(_vm.isafter)?_c('span',{staticClass:\"ml-5\",staticStyle:{\"color\":\"maroon\"}},[_vm._v(\"Warning - start is later than end\")]):_vm._e()],1)],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\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/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./calendar.vue?vue&type=script&lang=js&\"; 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/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./calendar.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./calendar.vue?vue&type=template&id=55480ea8&\"\nimport script from \"./calendar.vue?vue&type=script&lang=js&\"\nexport * from \"./calendar.vue?vue&type=script&lang=js&\"\nimport style0 from \"./calendar.vue?vue&type=style&index=0&id=55480ea8&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 null,\n null\n \n)\n\nexport default component.exports","\r\n\r\n\r\n\r\n\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/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AdvancedHistory.vue?vue&type=script&lang=js&\"; 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/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AdvancedHistory.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./AdvancedHistory.vue?vue&type=template&id=43b209a2&scoped=true&\"\nimport script from \"./AdvancedHistory.vue?vue&type=script&lang=js&\"\nexport * from \"./AdvancedHistory.vue?vue&type=script&lang=js&\"\nimport style0 from \"./AdvancedHistory.vue?vue&type=style&index=0&id=43b209a2&prod&lang=css&\"\nimport style1 from \"./AdvancedHistory.vue?vue&type=style&index=1&id=43b209a2&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 \"43b209a2\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return (_vm.todisplay)?_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.isvisible),expression:\"isvisible\"}],class:{ 'c-AdvancedReports': true, [`c-name-${this.name || 'unnamed'}`]: true },style:(_vm.style)},[_c('v-snackbar',{attrs:{\"multi-line\":\"\",\"timeout\":-1,\"value\":!!_vm.queryError,\"color\":\"red\"},scopedSlots:_vm._u([{key:\"action\",fn:function({ attrs }){return [_c('v-btn',_vm._b({attrs:{\"color\":\"white\",\"text\":\"\"},on:{\"click\":function($event){_vm.queryError = ''}}},'v-btn',attrs,false),[_vm._v(\" Close \")])]}}],null,false,2969221663)},[_vm._v(\" \"+_vm._s(_vm.queryError || 'This is a test of a large error message that you should see that might need to wrap it is very large.')+\" \")]),_c('div',{staticStyle:{\"display\":\"flex\",\"flex-direction\":\"row\",\"flex-grow\":\"1\"}},[(!_vm.colDefsLoaded)?_c('div',{staticStyle:{\"display\":\"flex\",\"flex-direction\":\"column\",\"flex-grow\":\"1\",\"background-color\":\"silver\",\"align-items\":\"center\",\"justify-content\":\"center\"}},[_c('v-progress-circular',{attrs:{\"size\":70,\"width\":7,\"color\":\"purple\",\"indeterminate\":\"\"}})],1):_vm._e(),(_vm.colDefsLoaded)?_c('div',{staticStyle:{\"display\":\"flex\",\"flex-direction\":\"column\",\"flex-grow\":\"1\"}},[(!_vm.controlData.IsDashboard)?_c('div',[(_vm.ReadOnly)?_c('div',{staticStyle:{\"display\":\"flex\",\"flex-direction\":\"row\"}},[_c('span',{staticClass:\"mt-0 ml-1 text-h6\"},[_vm._v(_vm._s(_vm.report_name))]),_c('v-spacer'),(_vm.default_display_type == 2)?_c('v-btn-toggle',{staticClass:\"ml-0 mt-0\",attrs:{\"mandatory\":\"\",\"dense\":\"\"},model:{value:(_vm.display_type),callback:function ($$v) {_vm.display_type=$$v},expression:\"display_type\"}},[_c('v-tooltip',{attrs:{\"bottom\":\"\",\"open-delay\":\"750\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on, attrs }){return [_c('v-btn',_vm._g(_vm._b({attrs:{\"value\":1}},'v-btn',attrs,false),on),[_c('v-icon',[_vm._v(\"mdi-table-large\")])],1)]}}],null,false,559299162)},[_vm._v(\" Flat table \")]),_c('v-tooltip',{attrs:{\"bottom\":\"\",\"open-delay\":\"750\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on, attrs }){return [_c('v-btn',_vm._g(_vm._b({attrs:{\"value\":2}},'v-btn',attrs,false),on),[_c('v-icon',[_vm._v(\"mdi-chart-pie\")])],1)]}}],null,false,1559275754)},[_vm._v(\" Chart \")])],1):_vm._e()],1):_vm._e(),_c('div',{staticClass:\"mb-1 mt-2 gridHeaderButtons\",staticStyle:{\"display\":\"flex\",\"flex-direction\":\"row\",\"align-items\":\"center\"}},[(!_vm.ReadOnly)?_c('v-btn-toggle',{staticClass:\"ml-0 mt-0\",attrs:{\"mandatory\":\"\",\"dense\":\"\"},model:{value:(_vm.display_type),callback:function ($$v) {_vm.display_type=$$v},expression:\"display_type\"}},[_c('v-tooltip',{attrs:{\"bottom\":\"\",\"open-delay\":\"750\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on, attrs }){return [_c('v-btn',_vm._g(_vm._b({staticStyle:{\"height\":\"40px\"},attrs:{\"value\":1}},'v-btn',attrs,false),on),[_c('v-icon',[_vm._v(\"mdi-table-large\")])],1)]}}],null,false,1787861580)},[_vm._v(\" Flat table \")]),_c('v-tooltip',{attrs:{\"bottom\":\"\",\"open-delay\":\"750\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on, attrs }){return [_c('v-btn',_vm._g(_vm._b({staticStyle:{\"height\":\"40px\"},attrs:{\"value\":2,\"disabled\":_vm.ChartIsDisabled}},'v-btn',attrs,false),on),[_c('v-icon',[_vm._v(\"mdi-chart-pie\")])],1)]}}],null,false,2145563484)},[_vm._v(\" Chart \")])],1):_vm._e(),(false && ((_vm.ReadOnly && _vm.hasUserDateFilter) || !_vm.ReadOnly))?_c('c-Date-Range-Picker',{class:_vm.ReadOnly ? '' : 'ml-3',staticStyle:{\"min-width\":\"440px\"},attrs:{\"type\":\"daterangepicker\",\"allowTime\":true,\"timePickerIncrement\":1,\"isDisabled\":false,\"default\":_vm.defaultTime,\"placeholder\":\"Select Date Range\",\"allowFutureDate\":true,\"allowPastDate\":true},on:{\"apply-date-range\":(range) => _vm.ReadOnly ? _vm.applyDateRangeHandler(range) : _vm.updateSimDateRange(range),\"clear-date-range\":_vm.clearDateRangeHandler}}):_vm._e(),((_vm.ReadOnly && _vm.hasUserDateFilter) || !_vm.ReadOnly)?_c('MyCalendar',{attrs:{\"value\":_vm.defaultTime,\"width\":_vm.ReadOnly ? '430px' : '460px',\"myclass\":_vm.ReadOnly ? '' : 'ml-3',\"label\":_vm.ReadOnly ? 'Select Date Range' : 'Simulate Date Range',\"isactive\":_vm.ReadOnly || _vm.useStartEnd,\"activeicon\":\"mdi-calendar\",\"inactiveicon\":\"mdi-calendar-alert\",\"activecolor\":_vm.ReadOnly ? '' : 'primary',\"inactivecolor\":\"grey lighten-1\",\"showtooltip\":!_vm.ReadOnly},on:{\"change\":(range) => _vm.ReadOnly ? _vm.applyDateRangeHandler(range) : _vm.updateSimDateRange(range)},scopedSlots:_vm._u([{key:\"activetooltip\",fn:function(){return [_vm._v(\" Simulate the report using a range independent of the one set in the \"),_c('br'),_vm._v(\" Date/Time filter. Simulating has no effect on the published report. \")]},proxy:true},{key:\"inactivetooltip\",fn:function(){return [_vm._v(\" Simulate the report using a range independent of the one set in the \"),_c('br'),_vm._v(\" Date/Time filter. Simulating has no effect on the published report. \")]},proxy:true}],null,false,4159185166)}):_vm._e(),(_vm.ReadOnly && _vm.IsAnyViewFilterChoices)?_c('v-btn',{staticClass:\"ml-2\",attrs:{\"plain\":\"\",\"small\":\"\",\"elevation\":0,\"color\":_vm.show_filters ? 'primary' : ''},on:{\"click\":function($event){_vm.show_filters = !_vm.show_filters}}},[_c('v-badge',{attrs:{\"color\":\"primary\",\"dot\":\"\",\"offset-y\":\"25\",\"offset-x\":\"63\",\"value\":_vm.IsAnyFilters}},[_c('v-icon',{staticClass:\"mr-1\"},[_vm._v(\"mdi-filter\")]),_vm._v(\"Filters \")],1)],1):_vm._e(),_c('v-spacer'),(false && _vm.query_in_progress)?_c('v-progress-circular',{staticClass:\"mr-5 ml-5\",attrs:{\"indeterminate\":\"\",\"color\":\"primary\",\"size\":20}}):_vm._e(),(_vm.System.DEBUG)?_c('span',{staticClass:\"mr-5\",attrs:{\"title\":\"Query Elapsed Time\"}},[_vm._v(_vm._s(_vm.query_elapsed)+\" \")]):_vm._e(),_c('v-tooltip',{attrs:{\"bottom\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({on, attrs}){return [_c('v-btn',_vm._g(_vm._b({staticClass:\"mr-4\",attrs:{\"small\":\"\",\"outlined\":\"\",\"color\":\"grey darken-2\"},on:{\"click\":_vm.cycleDurationFormats}},'v-btn',attrs,false),on),[_vm._v(\" \"+_vm._s(_vm.durationFormats[_vm.durationFormatIdx].text)+\" \")])]}}],null,false,1603399069)},[_vm._v(\" Duration Time Format\"),_c('br'),_vm._v(\" Click to cycle through formats \")]),(_vm.display_type < _vm.constants.DISPLAY_CHART)?_c('v-btn',{staticClass:\"ml-0\",attrs:{\"plain\":\"\",\"elevation\":0,\"_color\":\"primary\"},on:{\"click\":_vm.autoSizeAllColumns}},[_c('v-icon',{attrs:{\"title\":\"Size columns to content\"}},[_vm._v(\"mdi-arrow-left-right-bold\")])],1):_vm._e(),(_vm.display_type < _vm.constants.DISPLAY_CHART)?_c('v-btn',{staticClass:\"ml-0\",attrs:{\"plain\":\"\",\"elevation\":0,\"_color\":\"primary\"},on:{\"click\":_vm.sizeColumnsToFit}},[_c('v-icon',{attrs:{\"title\":\"Size columns to fit\"}},[_vm._v(\"mdi-arrow-expand-horizontal\")])],1):_vm._e(),_c('v-btn',{staticClass:\"ml-0\",attrs:{\"disabled\":_vm.query_in_progress,\"plain\":\"\",\"elevation\":0,\"_color\":\"primary\"},on:{\"click\":_vm.Refresh}},[_c('v-icon',{class:{ 'icon-spinner': _vm.query_in_progress },attrs:{\"title\":\"Refresh\"}},[_vm._v(\"mdi-cached\")])],1),(_vm.colDefsLoaded && _vm.ReadOnly && _vm.display_type < _vm.constants.DISPLAY_CHART)?_c('ColumnMenu',{attrs:{\"column_list\":_vm.column_picker_list,\"column_order\":_vm.column_order,\"columnDefs\":_vm.columnDefs,\"column_default_visibility\":_vm.column_default_visibility,\"setColumnsVisible\":_vm.setColumnsVisible,\"debugMode\":_vm.System.DEBUG,\"hideColumSelector\":true,\"_showcolumnselector\":\"showColumnSelector\"},on:{\"showdatafilters\":_vm.showDataFilters}}):_vm._e()],1)]):_vm._e(),(_vm.controlData.IsDashboard && _vm.ReadOnly)?_c('div',[_c('div',{staticStyle:{\"display\":\"flex\",\"flex-direction\":\"column\"}},[(false)?_c('c-Date-Range-Picker',{staticStyle:{\"max-width\":\"390px\"},style:({ visibility: _vm.ReadOnly && _vm.hasUserDateFilter ? 'initial' : 'hidden' }),attrs:{\"type\":\"daterangepicker\",\"allowTime\":true,\"timePickerIncrement\":1,\"isDisabled\":false,\"default\":_vm.defaultTime,\"placeholder\":\"Select Date Range\",\"allowFutureDate\":true,\"allowPastDate\":true},on:{\"apply-date-range\":_vm.applyDateRangeHandler,\"clear-date-range\":_vm.clearDateRangeHandler}}):_vm._e(),_c('div',{staticClass:\"mb-1 mt-2 gridHeaderButtons\",staticStyle:{\"display\":\"flex\",\"flex-direction\":\"row\",\"align-items\":\"center\"}},[(_vm.default_display_type == 2)?_c('v-btn-toggle',{staticClass:\"ml-0 mt-0 mr-2\",staticStyle:{\"align-self\":\"flex-end\"},attrs:{\"mandatory\":\"\",\"dense\":\"\"},model:{value:(_vm.display_type),callback:function ($$v) {_vm.display_type=$$v},expression:\"display_type\"}},[_c('v-tooltip',{attrs:{\"bottom\":\"\",\"open-delay\":\"750\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on, attrs }){return [_c('v-btn',_vm._g(_vm._b({attrs:{\"value\":1}},'v-btn',attrs,false),on),[_c('v-icon',[_vm._v(\"mdi-table-large\")])],1)]}}],null,false,559299162)},[_vm._v(\" Flat table \")]),_c('v-tooltip',{attrs:{\"bottom\":\"\",\"open-delay\":\"750\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on, attrs }){return [_c('v-btn',_vm._g(_vm._b({attrs:{\"value\":2}},'v-btn',attrs,false),on),[_c('v-icon',[_vm._v(\"mdi-chart-pie\")])],1)]}}],null,false,1559275754)},[_vm._v(\" Chart \")])],1):_vm._e(),_c('div',{staticStyle:{\"margin-top\":\"4px\"}},[(_vm.ReadOnly && _vm.hasUserDateFilter)?_c('MyCalendar',{attrs:{\"value\":_vm.defaultTime,\"width\":\"430px\",\"label\":\"Select Date Range\",\"isactive\":true,\"activeicon\":\"mdi-calendar\",\"iconOnly\":false,\"showtooltip\":false},on:{\"change\":_vm.applyDateRangeHandler}}):_vm._e()],1),_c('v-spacer'),(_vm.ReadOnly && _vm.IsAnyViewFilterChoices)?_c('v-btn',{staticClass:\"ml-0\",attrs:{\"icon\":\"\",\"plain\":\"\",\"elevation\":0,\"color\":_vm.show_filters ? 'primary' : 'secondary'},on:{\"click\":function($event){_vm.show_filters = !_vm.show_filters}}},[_c('v-badge',{attrs:{\"color\":\"primary\",\"dot\":\"\",\"offset-y\":\"25\",\"offset-x\":\"11\",\"value\":_vm.IsAnyFilters}},[_c('v-icon',{staticClass:\"mr-1\"},[_vm._v(\"mdi-filter\")])],1)],1):_vm._e(),_c('v-tooltip',{attrs:{\"bottom\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({on, attrs}){return [_c('v-btn',_vm._g(_vm._b({attrs:{\"small\":\"\",\"outlined\":\"\",\"color\":\"grey darken-2\"},on:{\"click\":_vm.cycleDurationFormats}},'v-btn',attrs,false),on),[_vm._v(\" \"+_vm._s(_vm.durationFormats[_vm.durationFormatIdx].text)+\" \")])]}}],null,false,2428844539)},[_vm._v(\" Duration Time Format\"),_c('br'),_vm._v(\" Click to cycle through formats \")]),(_vm.display_type < _vm.constants.DISPLAY_CHART)?_c('v-btn',{staticClass:\"ml-0\",attrs:{\"plain\":\"\",\"elevation\":0,\"color\":\"secondary\",\"icon\":\"\"},on:{\"click\":_vm.autoSizeAllColumns}},[_c('v-icon',{attrs:{\"title\":\"Size columns to content\"}},[_vm._v(\"mdi-arrow-left-right-bold\")])],1):_vm._e(),(_vm.display_type < _vm.constants.DISPLAY_CHART)?_c('v-btn',{staticClass:\"ml-0\",attrs:{\"plain\":\"\",\"elevation\":0,\"color\":\"secondary\",\"icon\":\"\"},on:{\"click\":_vm.sizeColumnsToFit}},[_c('v-icon',{attrs:{\"title\":\"Size columns to fit\"}},[_vm._v(\"mdi-arrow-expand-horizontal\")])],1):_vm._e(),_c('v-btn',{staticClass:\"ml-0\",attrs:{\"disabled\":_vm.query_in_progress,\"plain\":\"\",\"elevation\":0,\"color\":\"secondary\",\"icon\":\"\"},on:{\"click\":_vm.RefreshAll}},[_c('v-icon',{class:{ 'icon-spinner': _vm.query_in_progress },attrs:{\"title\":\"Refresh\"}},[_vm._v(\"mdi-cached\")])],1),(_vm.colDefsLoaded && _vm.ReadOnly && _vm.display_type < _vm.constants.DISPLAY_CHART)?_c('ColumnMenu',{attrs:{\"btnclass\":{ 'mr-2': false },\"column_list\":_vm.column_picker_list,\"column_order\":_vm.column_order,\"columnDefs\":_vm.columnDefs,\"column_default_visibility\":_vm.column_default_visibility,\"setColumnsVisible\":_vm.setColumnsVisible,\"debugMode\":_vm.System.DEBUG,\"hideColumSelector\":true,\"_showcolumnselector\":\"showColumnSelector\"},on:{\"showdatafilters\":_vm.showDataFilters}}):_vm._e()],1)],1)]):_vm._e(),(_vm.colDefsLoaded)?_c('AgGridVue',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.display_type < _vm.constants.DISPLAY_CHART && !_vm.nocolumns),expression:\"display_type < constants.DISPLAY_CHART && !nocolumns\"}],key:_vm.unique_id,class:{ 'ag-theme-alpine': true },style:({ display: 'flex', flexDirection: 'column', flexGrow: '1' }),attrs:{\"initialState\":_vm.initialState,\"columnDefs\":_vm.columnDefs,\"defaultColDef\":_vm.defaultColDef,\"serverSideDatasource\":_vm.dataSource,\"cacheBlockSize\":_vm.pageSize,\"maxConcurrentDatasourceRequests\":1,\"enableCellTextSelection\":true,\"sideBar\":_vm.sideBar,\"enableCharts\":false,\"enableRangeSelection\":true,\"columnTypes\":_vm.dataTypeDefinitions,\"autoGroupColumnDef\":_vm.autoGroupColumnDef,\"maintainColumnOrder\":true,\"groupDisplayType\":_vm.groupDisplayType,\"removePivotHeaderRowWhenSingleValueColumn\":false,\"pinnedBottomRowData\":_vm.pinnedBottomRowData,\"getRowClass\":_vm.getRowClass,\"tooltipShowDelay\":500,\"rowModelType\":\"serverSide\",\"serverSidePivotResultFieldSeparator\":\"|\"},on:{\"gridReady\":_vm.onGridReady,\"stateUpdated\":_vm.stateUpdated,\"firstDataRendered\":_vm.onFirstDataRendered,\"sortChanged\":_vm.gridSortChanged}}):_vm._e(),(_vm.colDefsLoaded && _vm.display_type == _vm.constants.DISPLAY_CHART && !_vm.nocolumns)?_c('AgChartsVue',{ref:\"agchart\",staticClass:\"mychart\",attrs:{\"options\":_vm.chartOptions}}):_vm._e(),(_vm.colDefsLoaded && _vm.nocolumns)?_c('div',{staticStyle:{\"flex-grow\":\"1\",\"background-color\":\"white\",\"border\":\"1px solid silver\",\"display\":\"flex\",\"flex-direction\":\"column\",\"align-content\":\"center\",\"align-items\":\"center\",\"justify-content\":\"center\"}},[_c('div',{staticClass:\"text-caption text-center\",staticStyle:{\"max-width\":\"280px\",\"display\":\"flex\",\"flex-direction\":\"column\"}},[_c('v-icon',{staticClass:\"mb-5\",staticStyle:{\"font-size\":\"80px\"}},[_vm._v(\"mdi-finance\")]),_vm._v(\" Start building your report by selecting metrics from the panel on the right \")],1)]):_vm._e()],1):_vm._e(),(_vm.colDefsLoaded && !_vm.ReadOnly)?_c('ToolReportFields',{attrs:{\"isvisible\":_vm.tool_visible === _vm.constants.TAB_METRICS,\"settings\":_vm.settings,\"column_list\":_vm.column_list,\"column_filters\":_vm.column_filters,\"storageKey\":_vm.storageKey,\"report_settings\":_vm.report_settings,\"initial_userStartEnd\":_vm.useStartEnd,\"initial_report_name\":_vm.report_name,\"initial_report_description\":_vm.report_description,\"initial_report_category\":_vm.report_category,\"initial_show_manage_categories\":_vm.show_manage_categories,\"control_category_actions\":_vm.control_category_actions,\"openadvancedsettings\":_vm.openadvancedsettings,\"notifychange\":_vm.notifyreportchange,\"EventBus\":_vm.EventBus,\"debugMode\":_vm.System.DEBUG},on:{\"filterschanged\":_vm.notifyfilterschanged,\"changeusestartend\":(v) => _vm.updateUseStartEnd(v),\"daterangechanged\":_vm.saveCommonDateRange,\"namechanged\":_vm.reportNameChanged,\"descriptionchanged\":_vm.reportDescChanged,\"categorychanged\":_vm.reportCategoryChanged,\"groupbyordered\":_vm.groupbyordered}}):_vm._e(),(_vm.colDefsLoaded && !_vm.ReadOnly)?_c('ToolReportChart',{attrs:{\"isvisible\":_vm.tool_visible === _vm.constants.TAB_CHART_SETTINGS,\"settings\":_vm.settings,\"column_list\":_vm.column_list,\"initial_settings\":_vm.initial_chart_settings,\"chartOptions\":_vm.preparedChartOptions,\"pivot_columns\":_vm.pivot_columns,\"legendFormatter\":_vm.getChartSeriesText,\"notifychange\":_vm.notifychartchange,\"notifyrefresh\":_vm.notifychartrefresh,\"updateserialization\":_vm.updatechartserialization}}):_vm._e(),(_vm.colDefsLoaded && _vm.ReadOnly && _vm.FilterModal)?_c('div',[_c('v-dialog',{attrs:{\"value\":_vm.show_filters,\"max-height\":650,\"max-width\":600,\"scrollable\":\"\",\"persistent\":\"\"}},[_c('v-card',{attrs:{\"color\":\"grey lighten-5\"}},[_c('v-app-bar',{staticStyle:{\"background-color\":\"var(--v-navigation-base)\",\"height\":\"60px\"},attrs:{\"flat\":\"\",\"color\":\"rgba(0, 0, 0, 0)\"}},[_c('v-toolbar-title',{staticClass:\"title white--text pl-0\"},[_c('translation-container',{attrs:{\"context\":this,\"value\":\"Report Filters\"}})],1),_c('v-spacer'),_c('busyIcon')],1),_c('v-card-text',{staticClass:\"mt-2\"},[_c('div',{staticStyle:{\"overflow\":\"auto\",\"width\":\"100%\",\"display\":\"flex\",\"flex-direction\":\"column\",\"flex-basis\":\"0\",\"flex-grow\":\"1\"}},[_c('ToolReportFilters',{attrs:{\"isvisible\":true,\"ReadOnly\":true,\"settings\":_vm.settings,\"column_list\":_vm.column_filter_list,\"column_filters\":_vm.column_filters,\"report_settings\":_vm.report_settings,\"initial_column_filters\":_vm.initial_column_filters,\"EventBus\":_vm.EventBus,\"debugMode\":_vm.System.DEBUG},on:{\"filterschanged\":_vm.notifyfilterschanged}})],1)]),_c('v-card-actions',{staticClass:\"ma-2\",staticStyle:{\"justify-content\":\"flex-end\"}},[_c('v-btn',{attrs:{\"elevation\":\"{0}\",\"color\":\"primary\"},on:{\"click\":function($event){_vm.show_filters = false}}},[_c('translation-container',{attrs:{\"context\":this,\"value\":\"Done\"}})],1)],1)],1)],1)],1):_vm._e(),(_vm.colDefsLoaded && _vm.ReadOnly && !_vm.FilterModal && _vm.show_filters)?_c('div',{staticClass:\"c-ToolPanel_1 mx-auto w-100 pa-0\",staticStyle:{\"width\":\"100%\",\"display\":\"flex\",\"flex-direction\":\"column\",\"min-width\":\"750px\",\"max-width\":\"750px\"}},[_c('div',{staticStyle:{\"overflow\":\"auto\",\"width\":\"100%\",\"display\":\"flex\",\"flex-direction\":\"column\",\"flex-basis\":\"0\",\"flex-grow\":\"1\"}},[_c('v-expansion-panels',{attrs:{\"accordion\":\"\",\"mandatory\":\"\",\"focusable\":\"\"}},[_c('v-expansion-panel',[_c('v-expansion-panel-header',{scopedSlots:_vm._u([{key:\"actions\",fn:function(){return [(_vm.IsAnyFilters)?_c('v-btn',{staticClass:\"mr-3 v-btn--active\",attrs:{\"plain\":\"\",\"elevation\":0,\"color\":\"primary\",\"title\":\"Clear All Filters\"},on:{\"click\":function($event){$event.stopPropagation();return _vm.clearAllFilters.apply(null, arguments)}}},[_vm._v(\"Clear All\")]):_vm._e(),_c('v-icon',{attrs:{\"title\":\"Close\"},on:{\"click\":function($event){_vm.show_filters = false}}},[_vm._v(\"mdi-close\")])]},proxy:true}],null,false,2865624893)},[_c('span',{staticClass:\"text-h6\"},[_vm._v(\" Filters \")])]),_c('v-expansion-panel-content',{attrs:{\"color\":\"grey lighten-5\"}},[_c('ToolReportFilters',{staticClass:\"c-ToolReportFilters\",attrs:{\"isvisible\":true,\"ReadOnly\":true,\"settings\":_vm.settings,\"column_list\":_vm.column_filter_list,\"column_filters\":_vm.column_filters,\"report_settings\":_vm.report_settings,\"initial_column_filters\":_vm.initial_column_filters,\"EventBus\":_vm.EventBus,\"debugMode\":_vm.System.DEBUG},on:{\"filterschanged\":_vm.notifyfilterschanged}})],1)],1)],1)],1)]):_vm._e(),(_vm.colDefsLoaded && _vm.tool_visible === _vm.constants.TAB_MODEL)?_c('v-card',{staticClass:\"c-ToolPanel_1 mx-auto w-100 pa-0\",staticStyle:{\"width\":\"100%\",\"display\":\"flex\",\"flex-direction\":\"column\",\"max-width\":\"750px\"}},[_c('v-card',{staticClass:\"mx-auto w-100 pa-0\",staticStyle:{\"overflow\":\"auto\",\"width\":\"100%\",\"display\":\"flex\",\"flex-direction\":\"column\",\"flex-basis\":\"0\",\"flex-grow\":\"1\"},attrs:{\"elevation\":0}},[_c('v-card-title',[_vm._v(\" Report Settings JSON \")]),_c('v-card-text',[_c('pre',[_vm._v(_vm._s(JSON.stringify(_vm.ReportModel,null,3))+\"\\n\")])])],1)],1):_vm._e(),(_vm.colDefsLoaded && !_vm.ReadOnly)?_c('v-btn-toggle',{staticClass:\"mr-n2\",staticStyle:{\"display\":\"flex\",\"flex-direction\":\"column\"},attrs:{\"_mandatory\":\"\"},model:{value:(_vm.tool_visible),callback:function ($$v) {_vm.tool_visible=$$v},expression:\"tool_visible\"}},[_c('v-btn',{directives:[{name:\"show\",rawName:\"v-show\",value:(false),expression:\"false\"}],attrs:{\"color\":\"extraLightGrey\",\"large\":\"\",\"icon\":\"\"}},[_c('v-icon',[_vm._v(\"mdi-cog-box\")])],1),_c('v-btn',{staticStyle:{\"border\":\"1px solid\",\"border-radius\":\"0px\"},attrs:{\"color\":\"extraLightGrey\",\"large\":\"\",\"icon\":\"\"}},[_c('v-icon',{attrs:{\"title\":\"Metric Selector\",\"color\":_vm.tool_visible == 1 ? 'primary': 'secondary'}},[_vm._v(\"mdi-cogs\")])],1),_c('v-btn',{directives:[{name:\"show\",rawName:\"v-show\",value:(false),expression:\"false\"}],staticStyle:{\"border\":\"1px solid\",\"border-radius\":\"0px\"},attrs:{\"color\":\"extraLightGrey\",\"large\":\"\",\"icon\":\"\"}},[_c('v-icon',{attrs:{\"title\":\"Filters\",\"color\":_vm.tool_visible == 2 ? 'primary': 'secondary'}},[_vm._v(\"mdi-filter-outline\")])],1),_c('v-btn',{staticStyle:{\"border\":\"1px solid\",\"border-radius\":\"0px\"},attrs:{\"color\":\"extraLightGrey\",\"large\":\"\",\"icon\":\"\"}},[_c('v-icon',{attrs:{\"title\":\"Chart Settings\",\"color\":_vm.tool_visible == 3 ? 'primary': 'secondary'}},[_vm._v(\"mdi-tune\")])],1),_c('v-btn',{directives:[{name:\"show\",rawName:\"v-show\",value:(false),expression:\"false\"}],staticStyle:{\"border\":\"1px solid\",\"border-radius\":\"0px\"},attrs:{\"color\":\"extraLightGrey\",\"large\":\"\",\"icon\":\"\"}},[_c('v-icon',{attrs:{\"title\":\"All Settings\",\"color\":_vm.tool_visible == 4 ? 'primary': 'secondary'}},[_vm._v(\"mdi-cogs\")])],1),(_vm.System.DEBUG)?_c('v-btn',{staticStyle:{\"border\":\"1px solid\",\"border-radius\":\"0px\"},attrs:{\"color\":\"extraLightGrey\",\"large\":\"\",\"icon\":\"\"}},[_c('v-icon',{attrs:{\"title\":\"Model\",\"color\":_vm.tool_visible == 5 ? 'primary': 'secondary'}},[_vm._v(\"mdi-code-json\")])],1):_vm._e()],1):_vm._e()],1),_c('v-dialog',{attrs:{\"max-width\":\"590\"},model:{value:(_vm.advancedSettingsVisible),callback:function ($$v) {_vm.advancedSettingsVisible=$$v},expression:\"advancedSettingsVisible\"}},[_c('v-card',[_c('v-card-title',{staticClass:\"text-h5\"},[_vm._v(\" Advanced Settings \")]),_c('v-card-text',[_c('h3',{staticClass:\"mt-2\"},[_vm._v(\"Pagination\")]),_c('v-text-subtitle',[_vm._v(\"Server-side pagination settings.\")]),_c('v-row',{staticClass:\"mt-5\",attrs:{\"no-gutters\":\"\"}},[_c('v-col',{staticClass:\"mr-2\",attrs:{\"cols\":\"4\"}},[_c('v-text-field',{attrs:{\"dense\":\"\",\"outlined\":\"\",\"label\":\"Normal Page Size\",\"type\":\"number\",\"rules\":_vm.pageSizeRules,\"hint\":\"Controls the number of buckets to return before paginating\"},model:{value:(_vm.pageSize),callback:function ($$v) {_vm.pageSize=$$v},expression:\"pageSize\"}})],1),_c('v-col',{attrs:{\"cols\":\"4\"}},[_c('v-text-field',{attrs:{\"dense\":\"\",\"outlined\":\"\",\"label\":\"Presort Page Size\",\"type\":\"number\",\"rules\":_vm.presortSizeRules,\"hint\":\"Controls the number of buckets to analyze on the server when sorting on a metric\"},model:{value:(_vm.presortSize),callback:function ($$v) {_vm.presortSize=$$v},expression:\"presortSize\"}})],1)],1),_c('v-divider',{staticClass:\"mb-3\"}),_c('v-text-subtitle',[_vm._v(\"Server-side pagination algorithm when not sorted by a metric. Metrics require bucket pagination, which is less efficient.\")]),_c('v-radio-group',{model:{value:(_vm.serverPaginationMode),callback:function ($$v) {_vm.serverPaginationMode=$$v},expression:\"serverPaginationMode\"}},[_c('v-radio',{attrs:{\"value\":1,\"label\":\"After-Key Pagination\"}}),_c('v-radio',{attrs:{\"value\":2,\"label\":\"Bucket Pagination\"}})],1)],1),_c('v-card-actions',[_c('v-spacer'),_c('v-btn',{attrs:{\"color\":\"green darken-1\",\"text\":\"\"},on:{\"click\":function($event){_vm.advancedSettingsVisible = false}}},[_vm._v(\" Close \")])],1)],1)],1)],1):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.isvisible),expression:\"isvisible\"}],staticClass:\"c-ToolPanel_1 mx-auto w-100 pa-0\",staticStyle:{\"width\":\"100%\",\"display\":\"flex\",\"flex-direction\":\"column\",\"min-width\":\"750px\",\"max-width\":\"750px\",\"background-color\":\"var(--v-extraLightGrey-base)\"}},[_c('div',{staticStyle:{\"overflow\":\"auto\",\"width\":\"100%\",\"display\":\"flex\",\"flex-direction\":\"column\",\"flex-basis\":\"0\",\"flex-grow\":\"1\"}},[_c('v-expansion-panels',{attrs:{\"accordion\":\"\",\"hover\":\"\"},model:{value:(_vm.selectedPanel),callback:function ($$v) {_vm.selectedPanel=$$v},expression:\"selectedPanel\"}},[_c('v-expansion-panel',[_c('v-expansion-panel-header',{staticClass:\"text-h6\",scopedSlots:_vm._u([{key:\"actions\",fn:function(){return [_c('v-icon',{attrs:{\"color\":\"primaryText\",\"size\":\"30px\"}},[_vm._v(\" mdi-menu-down \")])]},proxy:true}])},[_vm._v(\" Details \")]),_c('v-expansion-panel-content',[_c('v-card-subtitle',{staticClass:\"mt-0 mb-1 consistentText\"},[_vm._v(\" Provide basic report information and setup \")]),_c('v-row',{staticClass:\"ml-1\",attrs:{\"dense\":\"\"}},[_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('v-text-field',{staticClass:\"standard-input-field\",attrs:{\"dense\":\"\",\"outlined\":\"\",\"hide-details\":\"\",\"label\":\"Report Name\",\"background-color\":\"white\"},model:{value:(_vm.report_name),callback:function ($$v) {_vm.report_name=$$v},expression:\"report_name\"}})],1)],1),_c('v-row',{staticClass:\"ml-1 mt-2\",attrs:{\"dense\":\"\"}},[_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('v-text-field',{staticClass:\"standard-input-field\",attrs:{\"dense\":\"\",\"outlined\":\"\",\"hide-details\":\"\",\"label\":\"Description\",\"background-color\":\"white\"},model:{value:(_vm.report_description),callback:function ($$v) {_vm.report_description=$$v},expression:\"report_description\"}})],1)],1),_c('v-row',{staticClass:\"ml-1 mt-2\",attrs:{\"dense\":\"\"}},[_c('v-col',{attrs:{\"cols\":\"11\"}},[_c('v-autocomplete',{staticClass:\"standard-input-field\",attrs:{\"dense\":\"\",\"outlined\":\"\",\"hide-details\":\"\",\"label\":\"Category\",\"menu-props\":{ offsetY: true},\"items\":_vm.reportCategories,\"item-text\":\"Name\",\"item-value\":\"ID\"},model:{value:(_vm.report_category),callback:function ($$v) {_vm.report_category=$$v},expression:\"report_category\"}})],1),_c('v-col',{staticClass:\"d-flex align-center justify-center\",attrs:{\"cols\":\"1\"}},[_c('v-tooltip',{attrs:{\"bottom\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on, attrs }){return [_c('v-icon',_vm._g(_vm._b({on:{\"click\":_vm.refreshCategories}},'v-icon',attrs,false),on),[_vm._v(\" mdi-cached \")])]}}])},[_c('span',[_vm._v(\"Refresh category list\")])]),_c('v-tooltip',{attrs:{\"bottom\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on, attrs }){return [(_vm.show_manage_categories)?_c('v-icon',_vm._g(_vm._b({staticClass:\"left-pad-4\",on:{\"click\":_vm.categoryActions}},'v-icon',attrs,false),on),[_vm._v(\" mdi-cog-outline \")]):_vm._e()]}}])},[_c('span',[_vm._v(\"Manage categories\")])])],1)],1),_c('v-expansion-panels',{staticClass:\"mt-3\",model:{value:(_vm.advancedVisible),callback:function ($$v) {_vm.advancedVisible=$$v},expression:\"advancedVisible\"}},[_c('v-expansion-panel',[_c('v-expansion-panel-header',{staticClass:\"pl-3 consistentText\"},[_vm._v(\" Advanced settings \")]),_c('v-expansion-panel-content',[_c('v-card-subtitle',{staticClass:\"consistentText\"},[_vm._v(\"Server-side pagination settings.\")]),_c('v-row',{staticClass:\"mt-2\",attrs:{\"no-gutters\":\"\",\"align\":\"center\"}},[_c('v-col',{attrs:{\"cols\":\"5\"}},[_c('v-text-field',{staticClass:\"_standard-input-field\",attrs:{\"dense\":\"\",\"outlined\":\"\",\"hide-details\":\"\",\"label\":\"Normal Page Size\",\"type\":\"number\",\"rules\":_vm.pageSizeRules,\"background-color\":\"white\"},model:{value:(_vm.pageSize),callback:function ($$v) {_vm.pageSize=$$v},expression:\"pageSize\"}})],1),_c('v-col',{staticClass:\"pl-2\",attrs:{\"cols\":\"1\"}},[_c('v-tooltip',{attrs:{\"bottom\":\"\",\"open-delay\":\"50\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on, attrs }){return [_c('v-icon',_vm._g(_vm._b({staticStyle:{\"color\":\"var(--v-darkGreyIcon-base)\"},attrs:{\"small\":\"\"}},'v-icon',attrs,false),on),[_vm._v(\"mdi-information\")])]}}])},[_vm._v(\" Controls how many rows are shown per page of the report. For example, if a report has 1000 rows and Normal Page Size is set to 100, the report will display 10 pages with 100 rows on each page. \")])],1),_c('v-col',{attrs:{\"cols\":\"5\"}},[_c('v-text-field',{staticClass:\"_standard-input-field\",attrs:{\"dense\":\"\",\"outlined\":\"\",\"hide-details\":\"\",\"label\":\"Presort Page Size\",\"type\":\"number\",\"rules\":_vm.presortSizeRules,\"background-color\":\"white\"},model:{value:(_vm.presortSize),callback:function ($$v) {_vm.presortSize=$$v},expression:\"presortSize\"}})],1),_c('v-col',{staticClass:\"pl-2\",attrs:{\"cols\":\"1\"}},[_c('v-tooltip',{attrs:{\"bottom\":\"\",\"open-delay\":\"50\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on, attrs }){return [_c('v-icon',_vm._g(_vm._b({staticStyle:{\"color\":\"var(--v-darkGreyIcon-base)\"},attrs:{\"small\":\"\"}},'v-icon',attrs,false),on),[_vm._v(\"mdi-information\")])]}}])},[_vm._v(\" Adjusts the number of rows the server analyzes when sorting by a metric, impacting sort accuracy and performance. \")])],1)],1),_c('v-card-subtitle',{staticClass:\"consistentText\"},[_vm._v(\"Pivot column settings.\")]),_c('v-row',{staticClass:\"mt-2\",attrs:{\"no-gutters\":\"\",\"align\":\"center\"}},[_c('v-col',[_c('v-text-field',{attrs:{\"label\":\"Maximum Columns\",\"type\":\"number\",\"outlined\":\"\",\"dense\":\"\",\"hide-details\":\"\",\"_class\":\"ml-2 mb-2 _standard-input-field\",\"_style\":\"max-width: 100px;\",\"hint\":\"Deterimnes the maximum number of columns derived from unique values from the pivot column\",\"background-color\":\"white\"},on:{\"change\":_vm.refreshReport},model:{value:(_vm.settings.max_pivot_columns),callback:function ($$v) {_vm.$set(_vm.settings, \"max_pivot_columns\", _vm._n($$v))},expression:\"settings.max_pivot_columns\"}})],1),_c('v-col',{staticClass:\"pl-2\",attrs:{\"cols\":\"1\"}},[_c('v-tooltip',{attrs:{\"bottom\":\"\",\"open-delay\":\"50\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on, attrs }){return [_c('v-icon',_vm._g(_vm._b({staticStyle:{\"color\":\"var(--v-darkGreyIcon-base)\"},attrs:{\"small\":\"\"}},'v-icon',attrs,false),on),[_vm._v(\"mdi-information\")])]}}])},[_vm._v(\" Limit the number of columns generated when pivoting on a grouping column. This prevents excessive columns from cluttering the report. \")])],1)],1)],1)],1)],1)],1)],1),_c('v-expansion-panel',[_c('v-expansion-panel-header',{staticClass:\"text-h6\",scopedSlots:_vm._u([{key:\"actions\",fn:function(){return [_c('v-icon',{attrs:{\"color\":\"primaryText\",\"size\":\"30px\"}},[_vm._v(\" mdi-menu-down \")])]},proxy:true}])},[_vm._v(\" Metrics \")]),_c('v-expansion-panel-content',[_c('v-card-subtitle',{staticClass:\"mt-0 consistentText\"},[_vm._v(\" Select the metrics to include in the report. Use the search box or the filter icon to narrow the choices. \")]),_c('OverflowPillGroup',{staticClass:\"py-0 px-2\",attrs:{\"removePill\":_vm.removeMetric,\"pills\":_vm.metrics,\"typeDescriptor\":\"metrics\"}}),_c('v-card-actions',[_c('v-text-field',{staticClass:\"_standard-input-field\",attrs:{\"outlined\":\"\",\"dense\":\"\",\"hide-details\":\"\",\"clearable\":\"\",\"label\":\"Search\",\"background-color\":\"white\"},scopedSlots:_vm._u([{key:\"prepend-inner\",fn:function(){return [_c('v-icon',[_vm._v(\"mdi-magnify\")])]},proxy:true},{key:\"append-outer\",fn:function(){return [_c('v-menu',{attrs:{\"offset-y\":\"\",\"close-on-content-click\":false,\"close-on-click\":false},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on, attrs }){return [_c('v-badge',{attrs:{\"color\":\"primary\",\"dot\":\"\",\"offset-y\":\"25\",\"offset-x\":\"10\",\"value\":_vm.anyMetricfilters}},[_c('v-btn',_vm._g(_vm._b({staticClass:\"ma-0\",attrs:{\"icon\":\"\",\"small\":\"\"}},'v-btn',attrs,false),on),[_c('v-icon',[_vm._v(\"mdi-filter\")])],1)],1)]}}]),model:{value:(_vm.metric_filter_menuopen),callback:function ($$v) {_vm.metric_filter_menuopen=$$v},expression:\"metric_filter_menuopen\"}},[_c('v-card',{staticClass:\"pa-1\",staticStyle:{\"_max-height\":\"500px\",\"min-width\":\"400px\"},on:{\"mouseleave\":function($event){_vm.metric_filter_menuopen = false}}},[_c('MetricTypeFilter',{attrs:{\"debugMode\":_vm.debugMode,\"datatypes\":_vm.metricDataTypes,\"initial_datatypes_selection\":_vm.metricDataTypes_selection,\"categories\":_vm.metricCategories,\"initial_category_selection\":_vm.metricCategory_selection,\"sources\":_vm.metricSources,\"initial_sources_selection\":_vm.metricSources_selection},on:{\"datatypes_changed\":(values) => _vm.metricDataTypes_selection = values,\"categories_changed\":(values) => _vm.metricCategory_selection = values,\"sources_changed\":(values) => _vm.metricSources_selection = values,\"anyfilters\":(value) => _vm.anyMetricfilters = value}})],1)],1)]},proxy:true}]),model:{value:(_vm.search_metrics),callback:function ($$v) {_vm.search_metrics=$$v},expression:\"search_metrics\"}})],1),(_vm.search_metrics)?_c('div',[_c('v-card-subtitle',{staticClass:\"mb-0 pb-0\",staticStyle:{\"border-bottom\":\"1px solid silver\",\"color\":\"#9d9d9d\"}},[_vm._v(\"SEARCH RESULTS\")]),_c('MetricItemList',{attrs:{\"items\":_vm.metricsearchresults,\"columnLookup\":_vm.columnLookup,\"isMetricInUse\":_vm.isMetricInUse,\"getMetricItemIcon\":_vm.getMetricItemIcon,\"showHelp\":_vm.showHelp,\"isDisabledMetric\":_vm.isDisabledMetric,\"isDisabledSource\":_vm.isMetricDisabledSource,\"addMetric\":_vm.addMetric,\"removeMetric\":_vm.removeMetric,\"getMetricHelp\":_vm.getMetricHelp,\"metric_types\":_vm.metric_types}})],1):_vm._l((_vm.metricGroups),function(group,i){return _c('div',{key:i},[(_vm.isMetricGroupVisible(group))?_c('v-card-subtitle',{staticClass:\"mb-0 pb-0 consistentText\",staticStyle:{\"border-bottom\":\"1px solid lightGrey\"}},[_vm._v(_vm._s(group.text.toUpperCase()))]):_vm._e(),(_vm.isMetricGroupVisible(group))?_c('div',[_c('MetricItemList',{attrs:{\"items\":_vm.getMetricColumns(group),\"columnLookup\":_vm.columnLookup,\"isMetricInUse\":_vm.isMetricInUse,\"getMetricItemIcon\":_vm.getMetricItemIcon,\"showHelp\":_vm.showHelp,\"isDisabledMetric\":_vm.isDisabledMetric,\"isDisabledSource\":_vm.isMetricDisabledSource,\"addMetric\":_vm.addMetric,\"removeMetric\":_vm.removeMetric,\"getMetricHelp\":_vm.getMetricHelp,\"metric_types\":_vm.metric_types}})],1):_vm._e()],1)})],2)],1),_c('v-expansion-panel',[_c('v-expansion-panel-header',{staticClass:\"text-h6\",scopedSlots:_vm._u([{key:\"actions\",fn:function(){return [_c('v-icon',{attrs:{\"color\":\"primaryText\",\"size\":\"30px\"}},[_vm._v(\" mdi-menu-down \")])]},proxy:true}])},[_vm._v(\" Groupings \")]),_c('v-expansion-panel-content',[_c('v-card-subtitle',{staticClass:\"mt-0 consistentText\"},[_vm._v(\" Choose the fields you want to group report data by (maximum permitted is four). Remember that only one Date/Time field can be chosen. \")]),_c('v-card-subtitle',{staticClass:\"consistentText mt-0 pt-0\"},[_vm._v(\" Drag and drop the fields already selected to change their order. \")]),_c('v-card-title',{staticClass:\"subtitle-1\",staticStyle:{\"overflow\":\"auto\"}},[_c('div',{staticClass:\"ma-0 pa-0 consistentText\"},[_vm._v(\" Grouping order: \")]),_c('Container',{staticStyle:{\"margin-left\":\"20px\"},attrs:{\"orientation\":\"horizontal\"},on:{\"drop\":_vm.onDrop}},_vm._l((_vm.groupby),function(c,i){return _c('Draggable',{key:c,attrs:{\"index\":i}},[_c('v-chip',{staticClass:\"draggable-item\",attrs:{\"color\":\"primary\",\"outlined\":\"\"}},[_vm._v(\" \"+_vm._s(_vm.groupColumnLookup[c].Title)+\" \")])],1)}),1)],1),_c('v-card-actions',[_c('v-text-field',{staticClass:\"_standard-input-field\",attrs:{\"outlined\":\"\",\"dense\":\"\",\"hide-details\":\"\",\"clearable\":\"\",\"label\":\"Search\",\"background-color\":\"white\"},scopedSlots:_vm._u([{key:\"prepend-inner\",fn:function(){return [_c('v-icon',[_vm._v(\"mdi-magnify\")])]},proxy:true},{key:\"append-outer\",fn:function(){return [_c('v-menu',{attrs:{\"offset-y\":\"\",\"close-on-content-click\":false,\"close-on-click\":false},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on, attrs }){return [_c('v-badge',{attrs:{\"color\":\"primary\",\"dot\":\"\",\"offset-y\":\"25\",\"offset-x\":\"10\",\"value\":_vm.anyGroupfilters}},[_c('v-btn',_vm._g(_vm._b({staticClass:\"ma-0\",attrs:{\"icon\":\"\",\"small\":\"\"}},'v-btn',attrs,false),on),[_c('v-icon',[_vm._v(\"mdi-filter\")])],1)],1)]}}]),model:{value:(_vm.group_filter_menuopen),callback:function ($$v) {_vm.group_filter_menuopen=$$v},expression:\"group_filter_menuopen\"}},[_c('v-card',{staticClass:\"pa-1\",staticStyle:{\"_max-height\":\"500px\",\"min-width\":\"400px\"},on:{\"mouseleave\":function($event){_vm.group_filter_menuopen = false}}},[_c('MetricTypeFilter',{attrs:{\"debugMode\":_vm.debugMode,\"datatypes\":_vm.groupDataTypes,\"initial_datatypes_selection\":_vm.groupDataTypes_selection,\"categories\":_vm.groupCategories,\"initial_category_selection\":_vm.groupCategory_selection,\"sources\":_vm.groupSources,\"initial_sources_selection\":_vm.groupSources_selection},on:{\"datatypes_changed\":(values) => _vm.groupDataTypes_selection = values,\"categories_changed\":(values) => _vm.groupCategory_selection = values,\"sources_changed\":(values) => _vm.groupSources_selection = values,\"anyfilters\":(value) => _vm.anyGroupfilters = value}})],1)],1)]},proxy:true}]),model:{value:(_vm.search_groups),callback:function ($$v) {_vm.search_groups=$$v},expression:\"search_groups\"}})],1),(_vm.getPivotOn)?_c('v-card-actions',[_c('v-checkbox',{staticClass:\"mr-4 mb-0\",attrs:{\"_value\":\"getPivotOn.ColId\",\"dense\":\"\",\"hide-details\":\"\"},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_c('div',{staticClass:\"consistentText\"},[_vm._v(\" \"+_vm._s('Pivot on ' + _vm.getPivotOn.Title)+\" \")])]},proxy:true}],null,false,2328303218),model:{value:(_vm.pivoton),callback:function ($$v) {_vm.pivoton=$$v},expression:\"pivoton\"}}),_c('v-tooltip',{attrs:{\"bottom\":\"\",\"open-delay\":\"50\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on, attrs }){return [_c('v-icon',_vm._g(_vm._b({staticClass:\"mt-2\",staticStyle:{\"color\":\"var(--v-darkGreyIcon-base)\"},attrs:{\"small\":\"\"}},'v-icon',attrs,false),on),[_vm._v(\"mdi-information\")])]}}],null,false,3480758432)},[_vm._v(\" Pivoting is available for the last column in your group list. You can rearrange grouping columns\"),_c('br'),_vm._v(\" by dragging and dropping them in the pills list above. Pivoting generates a distinct column for\"),_c('br'),_vm._v(\" every unique value within each row. \")])],1):_vm._e(),(!_vm.search_groups)?_c('div',[_c('v-card-subtitle',{staticClass:\"mb-0 pb-0 consistentText\",staticStyle:{\"border-bottom\":\"2px solid lightgrey\"}},[_vm._v(\"DATE / TIME\")]),_c('div',[_c('GroupbyItemList',{attrs:{\"items\":[_vm.defaultTimeColumn],\"groupbysettings\":_vm.groupbysettings,\"isMetricInUse\":(g) => _vm.groupby.includes(g.ColId),\"showHelp\":_vm.showHelp,\"isDisabledSource\":_vm.isGroupDisabledSource,\"toggleGroupby\":_vm.toggleGroupby,\"getMetricHelp\":_vm.getMetricHelp,\"metric_types\":_vm.metric_types,\"interval_choice\":_vm.interval_choice},on:{\"settingschanged\":_vm.setgroupbysettings,\"intervalchanged\":(i) => _vm.interval_choice = i}})],1)],1):_vm._e(),(_vm.search_groups)?_c('div',[_c('v-card-subtitle',{staticClass:\"mb-0 pb-0 consistentText\",staticStyle:{\"border-bottom\":\"2px solid lightgrey\"}},[_vm._v(\"SEARCH RESULTS\")]),_c('div',[_c('GroupbyItemList',{attrs:{\"items\":_vm.groupsearchresults,\"groupbysettings\":_vm.groupbysettings,\"isMetricInUse\":(g) => _vm.groupby.includes(g.ColId),\"showHelp\":_vm.showHelp,\"isDisabledSource\":_vm.isGroupDisabledSource,\"toggleGroupby\":_vm.toggleGroupby,\"getMetricHelp\":_vm.getMetricHelp,\"refreshReport\":_vm.refreshReport,\"metric_types\":_vm.metric_types},on:{\"settingschanged\":_vm.setgroupbysettings}})],1)],1):_vm._l((_vm.groupingGroups),function(group,i){return _c('div',{key:i},[(_vm.isGroupVisible(group))?_c('v-card-subtitle',{staticClass:\"mb-0 pb-0 consistentText\",staticStyle:{\"border-bottom\":\"2px solid lightgrey\"}},[_vm._v(_vm._s(group.text.toUpperCase()))]):_vm._e(),(_vm.isGroupVisible(group))?_c('div',[_c('GroupbyItemList',{attrs:{\"items\":_vm.getGroupColumns(group),\"groupbysettings\":_vm.groupbysettings,\"isMetricInUse\":(g) => _vm.groupby.includes(g.ColId),\"showHelp\":_vm.showHelp,\"isDisabledSource\":_vm.isGroupDisabledSource,\"toggleGroupby\":_vm.toggleGroupby,\"getMetricHelp\":_vm.getMetricHelp,\"refreshReport\":_vm.refreshReport,\"metric_types\":_vm.metric_types},on:{\"settingschanged\":_vm.setgroupbysettings}})],1):_vm._e()],1)})],2)],1),_c('v-expansion-panel',[_c('v-expansion-panel-header',{staticClass:\"text-h6\",attrs:{\"hide-actions\":\"\"},scopedSlots:_vm._u([{key:\"default\",fn:function({ open }){return [_vm._v(\" Filters \"),_c('v-card',{staticClass:\"ma-0 pa-0 d-flex\",attrs:{\"flat\":\"\",\"color\":\"transparent\"}},[_c('v-icon',{staticClass:\"mr-auto expandIconSpoof\",class:{'rotate': open},attrs:{\"color\":\"primaryText\",\"size\":\"30px\"}},[_vm._v(\" mdi-menu-down \")]),(_vm.column_filters && Object.keys(_vm.column_filters).length > 0)?_c('v-btn',{staticClass:\"mr-3 v-btn--active\",staticStyle:{\"max-height\":\"30px\"},attrs:{\"plain\":\"\",\"elevation\":0,\"color\":\"primary\",\"title\":\"Clear All Filters\",\"disabled\":!open},on:{\"click\":function($event){$event.stopPropagation();return _vm.clearAllFilters.apply(null, arguments)}}},[_vm._v(\" Clear All \")]):_vm._e()],1)]}}])}),_c('v-expansion-panel-content',[_c('ToolReportFilters',{attrs:{\"isvisible\":true,\"ReadOnly\":false,\"settings\":_vm.settings,\"column_list\":_vm.column_list,\"column_filters\":_vm.column_filters,\"report_settings\":_vm.report_settings,\"EventBus\":_vm.EventBus,\"debugMode\":_vm.debugMode},on:{\"filterschanged\":_vm.filterschanged}})],1)],1)],1)],1),_c('v-dialog',{attrs:{\"max-width\":\"590\"},model:{value:(_vm.help.visible),callback:function ($$v) {_vm.$set(_vm.help, \"visible\", $$v)},expression:\"help.visible\"}},[_c('v-card',[_c('v-card-title',{staticClass:\"text-h5\"},[_vm._v(\" \"+_vm._s(_vm.help.item ? _vm.help.item.Title : '')+\" \")]),_c('v-card-text',{domProps:{\"innerHTML\":_vm._s(_vm.help.item.Description)}}),_c('v-card-actions',[_c('v-spacer'),_c('v-btn',{attrs:{\"color\":\"primary darken-1\",\"text\":\"\"},on:{\"click\":function($event){_vm.help.visible = false}}},[_vm._v(\" Close \")])],1)],1)],1),_c('v-dialog',{attrs:{\"max-width\":\"590\"},model:{value:(_vm.filter.visible),callback:function ($$v) {_vm.$set(_vm.filter, \"visible\", $$v)},expression:\"filter.visible\"}},[_c('v-card',[_c('v-card-title',{staticClass:\"text-h5\"},[_vm._v(\" Filter for \"+_vm._s(_vm.filter.item.calculation)+\"(\"+_vm._s(_vm.filter.item.Title)+\") \")]),_c('v-card-text',[_vm._v(\" This applies a filter to the metric calculation to control which records are included. You may use the same column multiple times with different filters if you like. \"),_c('v-text-field',{staticClass:\"mt-5 mb-5\",attrs:{\"dense\":\"\",\"outlined\":\"\",\"hide-details\":\"\",\"label\":\"Name\",\"background-color\":\"white\"},model:{value:(_vm.filter.item.name),callback:function ($$v) {_vm.$set(_vm.filter.item, \"name\", $$v)},expression:\"filter.item.name\"}}),_vm._v(\" Imagine the filter settings right here. \")],1),_c('v-card-actions',[_c('v-spacer'),_c('v-btn',{attrs:{\"color\":\"green darken-1\",\"text\":\"\"},on:{\"click\":function($event){_vm.filter.visible = false}}},[_vm._v(\" Save \")]),_c('v-btn',{attrs:{\"color\":\"green darken-1\",\"text\":\"\"},on:{\"click\":function($event){_vm.filter.visible = false}}},[_vm._v(\" Cancel \")])],1)],1)],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"mt-1 mb-2\",staticStyle:{\"display\":\"flex\",\"flex-direction\":\"row\",\"flex-wrap\":\"wrap\"}},[(_vm.items.length == 0)?_c('div',{staticClass:\"text-caption ml-3 text--secondary\"},[_vm._v(\" No items visible - check your filter settings \")]):_vm._l((_vm.items),function(metric,j){return _c('div',{key:j,staticClass:\"mr-4\",staticStyle:{\"width\":\"320px\",\"max-width\":\"320px\",\"display\":\"flex\",\"flex-direction\":\"row\"}},[((metric.MetricAggs.Type == 'function' || metric.MetricAggs.Type == 'filter' || metric.MetricAggs.Type == 'script' || metric.MetricAggs.Type == 'filter_script') && metric.MetricAggs.FunctionList.length > 1)?_c('v-menu',{attrs:{\"offset-y\":\"\",\"disabled\":_vm.isDisabledSource(metric),\"close-on-content-click\":false},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on, attrs }){return [_c('v-btn',_vm._g(_vm._b({staticClass:\"text-normal subtitle-1\",attrs:{\"text\":\"\",\"small\":\"\",\"disabled\":_vm.isDisabledSource(metric)},on:{\"click\":function($event){_vm.metricMenu = []}}},'v-btn',attrs,false),on),[_c('v-icon',{staticClass:\"mr-1\",staticStyle:{\"color\":\"var(--v-secondaryText-base)\"},attrs:{\"color\":_vm.getMetricIconColor(metric)}},[_vm._v(_vm._s(_vm.getMetricItemIcon(metric)))]),_c('span',{staticClass:\"text-truncate\",staticStyle:{\"maxWidth\":\"210px\"}},[_vm._v(_vm._s(metric.Title))]),_c('v-icon',{attrs:{\"color\":\"secondaryText\"}},[_vm._v(\"mdi-menu-down\")])],1)]}}],null,true)},[_c('v-list',{attrs:{\"dense\":\"\"}},[_c('v-list-item-group',{attrs:{\"color\":\"primary\"},model:{value:(_vm.metricMenu),callback:function ($$v) {_vm.metricMenu=$$v},expression:\"metricMenu\"}},[_vm._l((_vm.getSortedFunctions(metric)),function(func){return [_c('v-list-item',{key:func,attrs:{\"_disabled\":\"isDisabledMetric(metric, func)\"},on:{\"click\":function($event){_vm.isDisabledMetric(metric, func) ? _vm.removeMetric(metric, func) : _vm.addMetric(metric, func)}}},[_c('v-list-item-icon',[_c('v-icon',{attrs:{\"color\":\"secondaryText\"}},[_vm._v(_vm._s(_vm.isDisabledMetric(metric, func) ? 'mdi-checkbox-marked' : 'mdi-checkbox-blank-outline'))])],1),_c('v-list-item-title',[_vm._v(_vm._s(_vm.getFunctionDisplayName(metric, func)))])],1)]})],2)],1)],1):_vm._e(),((metric.MetricAggs.Type == 'function' || metric.MetricAggs.Type == 'filter' || metric.MetricAggs.Type == 'script' || metric.MetricAggs.Type == 'filter_script') && metric.MetricAggs.FunctionList.length == 1)?_c('v-btn',{staticClass:\"text-normal subtitle-1\",attrs:{\"text\":\"\",\"small\":\"\",\"disabled\":_vm.isDisabledSource(metric)},on:{\"click\":(evt) => _vm.isDisabledMetric(metric, metric.MetricAggs.FunctionList[0]) ? _vm.removeMetric(metric, metric.MetricAggs.FunctionList[0]) : _vm.addMetric(metric, metric.MetricAggs.FunctionList[0])}},[(_vm.isMetricInUse(metric))?_c('v-icon',{staticClass:\"mr-1\",attrs:{\"color\":\"primary\"}},[_vm._v(\"mdi-checkbox-marked\")]):_c('v-icon',{staticClass:\"mr-1\",attrs:{\"color\":\"secondaryText\"}},[_vm._v(\"mdi-checkbox-blank-outline\")]),_c('span',{staticClass:\"text-truncate\",style:({ maxWidth: '230px' })},[_vm._v(_vm._s(_vm.getMetricDisplayName(metric, metric.MetricAggs.FunctionList[0])))])],1):_vm._e(),(metric.MetricAggs.Type == 'bucket_script')?_c('v-btn',{staticClass:\"text-normal subtitle-1\",attrs:{\"text\":\"\",\"small\":\"\",\"disabled\":_vm.isDisabledSource(metric)},on:{\"click\":(evt) => _vm.isDisabledMetric(metric, 'bucket') ? _vm.removeMetric(metric, 'bucket') : _vm.addMetric(metric, 'bucket')}},[(_vm.isMetricInUse(metric))?_c('v-icon',{staticClass:\"mr-1\",attrs:{\"color\":\"primary\"}},[_vm._v(\"mdi-checkbox-marked\")]):_c('v-icon',{staticClass:\"mr-1\",attrs:{\"color\":\"secondaryText\"}},[_vm._v(\"mdi-checkbox-blank-outline\")]),_c('span',{staticClass:\"text-truncate\",style:({ maxWidth: '230px' })},[_vm._v(_vm._s(metric.Title))])],1):_vm._e(),(metric.MetricAggs.Type == 'placeholder')?_c('v-btn',{staticClass:\"text-normal subtitle-1\",attrs:{\"text\":\"\",\"small\":\"\",\"disabled\":_vm.isDisabledSource(metric)},on:{\"click\":(evt) => _vm.isDisabledMetric(metric, 'placeholder') ? _vm.removeMetric(metric, 'placeholder') : _vm.addMetric(metric, 'placeholder')}},[(_vm.isMetricInUse(metric))?_c('v-icon',{staticClass:\"mr-1\",attrs:{\"color\":\"primary\"}},[_vm._v(\"mdi-checkbox-marked\")]):_c('v-icon',{staticClass:\"mr-1\",attrs:{\"color\":\"secondaryText\"}},[_vm._v(\"mdi-checkbox-blank-outline\")]),_c('span',{staticClass:\"text-truncate\",style:({ maxWidth: '230px' })},[_vm._v(_vm._s(metric.Title))])],1):_vm._e(),_c('v-spacer'),_c('v-tooltip',{attrs:{\"bottom\":\"\",\"open-delay\":\"350\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on, attrs }){return [_c('v-btn',_vm._g(_vm._b({class:{ 'ma-0': true },staticStyle:{\"color\":\"var(--v-darkGreyIcon-base)\"},attrs:{\"icon\":\"\",\"small\":\"\"},on:{\"click\":function($event){return _vm.showHelp(metric)}}},'v-btn',attrs,false),on),[_c('v-icon',{attrs:{\"small\":\"\"}},[_vm._v(\"mdi-information\")])],1)]}}],null,true)},[_c('span',{staticStyle:{\"font-weight\":\"bold\"}},[_vm._v(_vm._s(metric.Category)+\" - \"+_vm._s(metric.Title))]),_c('br'),_c('span',[_vm._v(_vm._s(_vm.getMetricHelp(metric)))]),_c('br'),_c('span',{staticStyle:{\"font-size\":\"smaller\",\"font-style\":\"italic\"}},[_vm._v(\"Source(s): \"+_vm._s(metric.Sources.join(', ')))]),(metric.Dependencies && metric.Dependencies.Modules.length)?_c('br'):_vm._e(),(metric.Dependencies && metric.Dependencies.Modules.length)?_c('span',{staticStyle:{\"font-size\":\"smaller\",\"font-style\":\"italic\"}},[_vm._v(\"Module(s): \"+_vm._s(metric.Dependencies.Modules.join(', ')))]):_vm._e()])],1)})],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\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/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./metricItemList.vue?vue&type=script&lang=js&\"; 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/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./metricItemList.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./metricItemList.vue?vue&type=template&id=dea869f4&scoped=true&\"\nimport script from \"./metricItemList.vue?vue&type=script&lang=js&\"\nexport * from \"./metricItemList.vue?vue&type=script&lang=js&\"\nimport style0 from \"./metricItemList.vue?vue&type=style&index=0&id=dea869f4&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 \"dea869f4\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"mt-1 mb-2\",staticStyle:{\"display\":\"flex\",\"flex-direction\":\"row\",\"flex-wrap\":\"wrap\"}},[(_vm.items.length == 0)?_c('div',{staticClass:\"text-caption ml-3 text--secondary\"},[_vm._v(\" No items visible - check your filter settings \")]):_vm._l((_vm.items),function(metric,j){return _c('div',{key:j,staticClass:\"mr-4\",staticStyle:{\"width\":\"320px\",\"max-width\":\"320px\",\"display\":\"flex\",\"flex-direction\":\"row\"}},[_c('v-btn',{staticClass:\"text-normal subtitle-1\",attrs:{\"text\":\"\",\"small\":\"\",\"disabled\":_vm.isDisabledSource(metric)},on:{\"click\":function($event){return _vm.toggleGroupby(metric)}}},[(_vm.isMetricInUse(metric))?_c('v-icon',{staticClass:\"mr-1\",attrs:{\"color\":\"primary\"}},[_vm._v(\"mdi-checkbox-marked\")]):_c('v-icon',{staticClass:\"mr-1\",attrs:{\"color\":\"secondaryText\"}},[_vm._v(\"mdi-checkbox-blank-outline\")]),_c('span',{staticClass:\"text-truncate\",style:({ maxWidth: '230px' })},[_vm._v(_vm._s(_vm.getTitle(metric)))])],1),(_vm.isMetricInUse(metric) && (metric.SourceType == 'durationColumn' || metric.SourceType == 'countColumn' || metric.SourceType == 'floatColumn'))?_c('v-menu',{attrs:{\"left\":\"\",\"offset-y\":\"\",\"close-on-content-click\":false,\"close-on-click\":false},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on, attrs }){return [_c('v-btn',_vm._g(_vm._b({attrs:{\"icon\":\"\",\"small\":\"\"}},'v-btn',attrs,false),on),[_c('v-icon',{attrs:{\"color\":\"secondaryText\"}},[_vm._v(\"mdi-menu-down\")])],1)]}}],null,true),model:{value:(metric.menu_is_open),callback:function ($$v) {_vm.$set(metric, \"menu_is_open\", $$v)},expression:\"metric.menu_is_open\"}},[_c('CardHistogram',{attrs:{\"item\":{ ...metric, ..._vm.groupbysettings[metric.colId] }},on:{\"close\":function($event){metric.menu_is_open=false},\"change\":_vm.histogramchanged}})],1):_vm._e(),(_vm.isMetricInUse(metric) && metric.SourceType == 'dateColumn')?_c('v-menu',{attrs:{\"left\":\"\",\"offset-y\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on, attrs }){return [_c('v-btn',_vm._g(_vm._b({attrs:{\"icon\":\"\",\"small\":\"\"}},'v-btn',attrs,false),on),[_c('v-icon',{attrs:{\"color\":\"secondaryText\"}},[_vm._v(\"mdi-menu-down\")])],1)]}}],null,true),model:{value:(metric.menu_is_open),callback:function ($$v) {_vm.$set(metric, \"menu_is_open\", $$v)},expression:\"metric.menu_is_open\"}},[_c('v-list',[_c('v-list-item-group',{attrs:{\"color\":\"primary\"},model:{value:(_vm.interval_idx),callback:function ($$v) {_vm.interval_idx=$$v},expression:\"interval_idx\"}},_vm._l((_vm.intervals),function(item){return _c('v-list-item',{key:item.value,staticClass:\"mediumdense\",scopedSlots:_vm._u([{key:\"default\",fn:function(){return [_c('v-list-item-title',[_vm._v(\" \"+_vm._s(item.text)+\" \")])]},proxy:true}],null,true)})}),1)],1)],1):_vm._e(),_c('v-spacer'),_c('v-tooltip',{attrs:{\"bottom\":\"\",\"open-delay\":\"350\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on, attrs }){return [_c('v-btn',_vm._g(_vm._b({class:{ 'ma-0': true },attrs:{\"icon\":\"\",\"small\":\"\"},on:{\"click\":function($event){return _vm.showHelp(metric)}}},'v-btn',attrs,false),on),[_c('v-icon',{staticStyle:{\"color\":\"var(--v-darkGreyIcon-base)\"},attrs:{\"small\":\"\"}},[_vm._v(\"mdi-information\")])],1)]}}],null,true)},[_c('span',{staticStyle:{\"font-weight\":\"bold\"}},[_vm._v(_vm._s(metric.Category)+\" - \"+_vm._s(metric.Title))]),_c('br'),_c('span',[_vm._v(_vm._s(_vm.getMetricHelp(metric)))]),_c('br'),(metric.Sources)?_c('span',{staticStyle:{\"font-size\":\"smaller\",\"font-style\":\"italic\"}},[_vm._v(\"Source(s): \"+_vm._s(metric.Sources.join(', ')))]):_vm._e()])],1)})],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\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/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./groupbyItemList.vue?vue&type=script&lang=js&\"; 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/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./groupbyItemList.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./groupbyItemList.vue?vue&type=template&id=4b7b0532&scoped=true&\"\nimport script from \"./groupbyItemList.vue?vue&type=script&lang=js&\"\nexport * from \"./groupbyItemList.vue?vue&type=script&lang=js&\"\nimport style0 from \"./groupbyItemList.vue?vue&type=style&index=0&id=4b7b0532&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 \"4b7b0532\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n\n\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/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./agGridToolReportFields.vue?vue&type=script&lang=js&\"; 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/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./agGridToolReportFields.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./agGridToolReportFields.vue?vue&type=template&id=02dcb2d2&scoped=true&class=c-ToolPanel&\"\nimport script from \"./agGridToolReportFields.vue?vue&type=script&lang=js&\"\nexport * from \"./agGridToolReportFields.vue?vue&type=script&lang=js&\"\nimport style0 from \"./agGridToolReportFields.vue?vue&type=style&index=0&id=02dcb2d2&prod&scoped=true&lang=css&\"\nimport style1 from \"./agGridToolReportFields.vue?vue&type=style&index=1&id=02dcb2d2&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 \"02dcb2d2\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return (_vm.isvisible)?_c('v-card',{staticClass:\"c-ToolPanel_1 mx-auto w-100 pa-0\",staticStyle:{\"width\":\"100%\",\"display\":\"flex\",\"flex-direction\":\"column\",\"min-width\":\"750px\",\"max-width\":\"750px\"},attrs:{\"elevation\":0}},[_c('v-card',{staticClass:\"mx-auto w-100\",staticStyle:{\"overflow\":\"auto\",\"width\":\"100%\",\"display\":\"flex\",\"flex-direction\":\"column\",\"flex-basis\":\"0\",\"flex-grow\":\"1\"},attrs:{\"elevation\":0,\"color\":\"extraLightGrey\"}},[_c('v-expansion-panels',{attrs:{\"mandatory\":\"\",\"accordion\":\"\"}},[_c('v-expansion-panel',[_c('v-expansion-panel-header',{staticClass:\"text-h6\",attrs:{\"hide-actions\":\"\"}},[_vm._v(\" Chart Settings \")]),_c('v-expansion-panel-content',[_c('v-card-subtitle',{staticClass:\"mt-2 pb-0 consistentText\",staticStyle:{\"border-bottom\":\"2px solid silver\"}},[_vm._v(\" GENERAL \")]),_c('v-card-text',{staticClass:\"mt-2 consistentText\"},[_vm._v(\" Applies to all series. \")]),_c('v-card-text',[_c('v-text-field',{staticClass:\"mb-2\",attrs:{\"outlined\":\"\",\"dense\":\"\",\"hide-details\":\"\",\"label\":\"Title\"},on:{\"input\":_vm.updateChart},model:{value:(_vm.custom_chart_options.title.text),callback:function ($$v) {_vm.$set(_vm.custom_chart_options.title, \"text\", $$v)},expression:\"custom_chart_options.title.text\"}}),_c('v-text-field',{staticClass:\"mb-2\",attrs:{\"outlined\":\"\",\"dense\":\"\",\"hide-details\":\"\",\"label\":\"Sub-Title\"},on:{\"input\":_vm.updateChart},model:{value:(_vm.custom_chart_options.subtitle.text),callback:function ($$v) {_vm.$set(_vm.custom_chart_options.subtitle, \"text\", $$v)},expression:\"custom_chart_options.subtitle.text\"}}),_c('v-text-field',{staticClass:\"mb-2\",style:({ visibility: _vm.all_series.some(a => a.type == 'bar') ? 'visible' : 'hidden' }),attrs:{\"type\":\"number\",\"outlined\":\"\",\"dense\":\"\",\"label\":\"Corner Radius\",\"hide-details\":\"\"},on:{\"change\":_vm.updateChart},model:{value:(_vm.cornerRadius),callback:function ($$v) {_vm.cornerRadius=$$v},expression:\"cornerRadius\"}}),_c('v-text-field',{attrs:{\"type\":\"number\",\"rules\":_vm.maxValuesRules,\"outlined\":\"\",\"dense\":\"\",\"label\":\"Maximum Data Points\",\"hint\":\"Constrains the results of the query to this number of rows (default 100, 1-5000 allowed)\"},model:{value:(_vm.maxValues),callback:function ($$v) {_vm.maxValues=$$v},expression:\"maxValues\"}}),_c('v-btn-toggle',{staticClass:\"mr-3\",attrs:{\"mandatory\":\"\"},model:{value:(_vm.general_type),callback:function ($$v) {_vm.general_type=$$v},expression:\"general_type\"}},[_c('v-btn',{attrs:{\"title\":\"Bar\"}},[_c('v-icon',[_vm._v(\"mdi-chart-bar\")])],1),_c('v-btn',{attrs:{\"title\":\"Stacked Bar\"}},[_c('v-icon',[_vm._v(\"mdi-chart-bar-stacked\")])],1),_c('v-btn',{attrs:{\"title\":\"Line\"}},[_c('v-icon',[_vm._v(\"mdi-chart-line\")])],1),_c('v-btn',{attrs:{\"title\":\"Area\"}},[_c('v-icon',[_vm._v(\"mdi-chart-areaspline-variant\")])],1),_c('v-btn',{attrs:{\"title\":\"Stacked Area\"}},[_c('v-icon',[_vm._v(\"mdi-chart-areaspline\")])],1),_c('v-btn',{attrs:{\"title\":\"Pie\"}},[_c('v-icon',[_vm._v(\"mdi-chart-pie\")])],1),_c('v-btn',{attrs:{\"title\":\"Donut\"}},[_c('v-icon',[_vm._v(\"mdi-chart-donut\")])],1)],1),([0,1,7].includes(_vm.general_type))?_c('v-btn-toggle',{staticClass:\"mr-3\",attrs:{\"mandatory\":\"\"},model:{value:(_vm.general_direction),callback:function ($$v) {_vm.general_direction=$$v},expression:\"general_direction\"}},[_c('v-btn',{attrs:{\"title\":\"Vertical\"}},[_c('v-icon',[_vm._v(\"mdi-chart-bar\")])],1),_c('v-btn',{attrs:{\"title\":\"Horizontal\"}},[_c('v-icon',{staticClass:\"mdi-rotate-90\"},[_vm._v(\"mdi-chart-bar\")])],1)],1):_vm._e(),([1,4].includes(_vm.general_type))?_c('v-btn-toggle',{attrs:{\"mandatory\":\"\"},model:{value:(_vm.general_percent),callback:function ($$v) {_vm.general_percent=$$v},expression:\"general_percent\"}},[_c('v-btn',{attrs:{\"title\":\"Standard\"}},[_c('v-icon',{staticClass:\"mdi-rotate-270\"},[_vm._v(\"mdi-format-align-left\")])],1),_c('v-btn',{attrs:{\"title\":\"Normalized to 100\"}},[_c('v-icon',{staticClass:\"mdi-rotate-270\"},[_vm._v(\"mdi-format-align-justify\")])],1)],1):_vm._e()],1)],1),_c('v-expansion-panel-content',[_c('v-card-subtitle',{staticClass:\"mt-2 pb-0 consistentText\",staticStyle:{\"border-bottom\":\"2px solid silver\"}},[_vm._v(\" SPECIFIC \")]),_c('v-card-text',{staticClass:\"mt-2 consistentText\"},[_vm._v(\" Series specific settings. For unique chart types per series, select the mixed chart above. \")]),_c('v-card-text',[_c('v-tabs',{staticClass:\"chart-tabs\",model:{value:(_vm.active_tab),callback:function ($$v) {_vm.active_tab=$$v},expression:\"active_tab\"}},[_c('v-tab',[_vm._v(\"Series\")]),_c('v-tab',[_vm._v(\"Axes\")]),_c('v-tab',[_vm._v(\"Legend\")]),_c('v-tab-item',{staticStyle:{\"background-color\":\"#fafafa\"}},[(!_vm.isPivotting)?_c('v-expansion-panels',{attrs:{\"accordion\":\"\",\"focusable\":\"\"},model:{value:(_vm.selectedPanel),callback:function ($$v) {_vm.selectedPanel=$$v},expression:\"selectedPanel\"}},_vm._l((_vm.all_series),function(item,i){return _c('v-expansion-panel',{key:i},[_c('v-expansion-panel-header',{staticClass:\"text-h6\",staticStyle:{\"font-size\":\"1rem !important\"},attrs:{\"color\":\"grey lighten-5\"}},[_vm._v(\" Series \"+_vm._s(i+1)+\": \"+_vm._s(_vm.legendFormatter({ value: item.yKey }))+\" \")]),_c('v-expansion-panel-content',{attrs:{\"color\":\"grey lighten-5\"}},[_c('v-card-text',[_c('v-btn-toggle',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.general_type < 5),expression:\"general_type < 5\"}],staticClass:\"mr-3\",attrs:{\"mandatory\":\"\",\"value\":_vm.getChart(item),\"_change\":\"(idx) => setChart(item, idx)\"}},[_c('v-btn',{attrs:{\"disabled\":_vm.isCustomTypeDisabled,\"title\":\"Bar\"},on:{\"click\":function($event){return _vm.setChartType(item, 'bar')}}},[_c('v-icon',[_vm._v(\"mdi-chart-bar\")])],1),_c('v-btn',{attrs:{\"disabled\":_vm.isCustomTypeDisabled,\"title\":\"Stacked Bar\"},on:{\"click\":function($event){return _vm.setChartType(item, 'bar', true)}}},[_c('v-icon',[_vm._v(\"mdi-chart-bar-stacked\")])],1),(_vm.general_direction === 0)?_c('v-btn',{attrs:{\"disabled\":_vm.isCustomTypeDisabled,\"title\":\"Line\"},on:{\"click\":function($event){return _vm.setChartType(item, 'line')}}},[_c('v-icon',[_vm._v(\"mdi-chart-line\")])],1):_vm._e(),(_vm.general_direction === 0)?_c('v-btn',{attrs:{\"disabled\":_vm.isCustomTypeDisabled,\"title\":\"Area\"},on:{\"click\":function($event){return _vm.setChartType(item, 'area')}}},[_c('v-icon',[_vm._v(\"mdi-chart-areaspline-variant\")])],1):_vm._e(),(_vm.general_direction === 0)?_c('v-btn',{attrs:{\"disabled\":_vm.isCustomTypeDisabled,\"title\":\"Stacked Area\"},on:{\"click\":function($event){return _vm.setChartType(item, 'area', true)}}},[_c('v-icon',[_vm._v(\"mdi-chart-areaspline\")])],1):_vm._e()],1),_c('v-btn-toggle',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.general_type < 5 && [1,4].includes(_vm.getChart(item))),expression:\"general_type < 5 && [1,4].includes(getChart(item))\"}],attrs:{\"mandatory\":\"\",\"value\":_vm.getNorm(item)},on:{\"change\":(idx) => _vm.setNorm(item, idx)}},[_c('v-btn',{attrs:{\"disabled\":_vm.isCustomTypeDisabled,\"title\":\"Standard\"}},[_c('v-icon',{staticClass:\"mdi-rotate-270\"},[_vm._v(\"mdi-format-align-left\")])],1),_c('v-btn',{attrs:{\"disabled\":_vm.isCustomTypeDisabled,\"title\":\"Normalized to 100\"}},[_c('v-icon',{staticClass:\"mdi-rotate-270\"},[_vm._v(\"mdi-format-align-justify\")])],1)],1),(item.override_type || item.override_stacked)?_c('v-btn',{staticClass:\"ml-5 mt-0\",attrs:{\"title\":\"Revert to Default\",\"icon\":\"\"},on:{\"click\":function($event){return _vm.revert(item)}}},[_c('v-icon',[_vm._v(\"mdi-undo\")])],1):_vm._e()],1),_c('v-card-text',[(item.override_type ? (item.override_type == 'bar' || item.override_type == 'line') : [0,1,2].includes(_vm.general_type))?_c('v-text-field',{staticClass:\"ma-2\",attrs:{\"outlined\":\"\",\"dense\":\"\",\"hint\":\"Customizes the series name as seen in the legend\",\"label\":\"Series Name Override\"},on:{\"input\":_vm.updateChart},model:{value:(item.override_title),callback:function ($$v) {_vm.$set(item, \"override_title\", $$v)},expression:\"item.override_title\"}}):_vm._e(),(item.override_stacked || _vm.generalTypes[_vm.general_type].stacked)?_c('v-select',{staticClass:\"ma-2\",attrs:{\"_vmodel\":\"item.stackGroup\",\"value\":item.override_group || item.stackGroup,\"items\":_vm.stackGroupItems,\"menu-props\":{ offsetY: true },\"outlined\":\"\",\"dense\":\"\",\"hide-details\":\"\",\"label\":\"Group\"},on:{\"change\":(value) => _vm.setStackGroup(item, value)}}):_vm._e(),(item.override_type == 'line' || _vm.generalTypes[_vm.general_type].type == 'line' || item.override_type == 'area' || _vm.generalTypes[_vm.general_type].type == 'area')?_c('div',{staticStyle:{\"display\":\"flex\",\"flex-direction\":\"row\",\"flex-wrap\":\"wrap\"}},[_c('v-checkbox',{staticClass:\"ma-2\",attrs:{\"label\":\"Show Marker\",\"dense\":\"\",\"hide-details\":\"\"},on:{\"change\":_vm.updateChart},model:{value:(item.marker_enabled),callback:function ($$v) {_vm.$set(item, \"marker_enabled\", $$v)},expression:\"item.marker_enabled\"}}),_c('v-checkbox',{staticClass:\"ma-2\",attrs:{\"label\":\"Show Labels\",\"dense\":\"\",\"hide-details\":\"\"},on:{\"change\":_vm.updateChart},model:{value:(item.label_enabled),callback:function ($$v) {_vm.$set(item, \"label_enabled\", $$v)},expression:\"item.label_enabled\"}}),(item.marker_enabled)?_c('v-select',{staticClass:\"ma-2\",attrs:{\"items\":['circle','cross','diamond','heart','plus','pin','square','star','triangle'],\"menu-props\":{ offsetY: true },\"outlined\":\"\",\"dense\":\"\",\"hide-details\":\"\",\"label\":\"Marker Shape\"},on:{\"change\":_vm.updateChart},model:{value:(item.marker_shape),callback:function ($$v) {_vm.$set(item, \"marker_shape\", $$v)},expression:\"item.marker_shape\"}}):_vm._e(),(item.marker_enabled)?_c('v-text-field',{staticClass:\"ma-2\",attrs:{\"outlined\":\"\",\"dense\":\"\",\"hide-details\":\"\",\"label\":\"Marker Size\",\"type\":\"number\"},on:{\"input\":_vm.updateChart},model:{value:(item.marker_size),callback:function ($$v) {_vm.$set(item, \"marker_size\", $$v)},expression:\"item.marker_size\"}}):_vm._e(),_c('v-text-field',{staticClass:\"ma-2\",attrs:{\"outlined\":\"\",\"dense\":\"\",\"hide-details\":\"\",\"label\":\"Line Width\",\"type\":\"number\"},on:{\"input\":_vm.updateChart},model:{value:(item.line_width),callback:function ($$v) {_vm.$set(item, \"line_width\", $$v)},expression:\"item.line_width\"}})],1):_vm._e(),_c('v-select',{staticClass:\"ma-2\",attrs:{\"value\":_vm.getItemAxis(item),\"items\":_vm.chartOptionsLocal.axes.filter(a => a.keys).concat(_vm.extraAxes).map(a => a.title.text),\"menu-props\":{ offsetY: true },\"outlined\":\"\",\"dense\":\"\",\"hide-details\":\"\",\"label\":\"Axis\"},on:{\"change\":(value) => _vm.setItemAxis(item, value)},scopedSlots:_vm._u([{key:\"append-outer\",fn:function(){return [_c('v-btn',{attrs:{\"small\":\"\",\"icon\":\"\"},on:{\"click\":function($event){return _vm.addItemAxis(item)}}},[_c('v-icon',{staticStyle:{\"color\":\"var(--v-primary-base)\"},attrs:{\"title\":\"Add\"}},[_vm._v(\"mdi-plus\")])],1)]},proxy:true}],null,true)}),(item.type !== 'pie' && item.type !== 'donut')?_c('v-container',[_vm._v(\" Color: \"),_c('v-menu',{attrs:{\"offset-y\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on, attrs }){return [_c('v-btn',_vm._g(_vm._b({staticClass:\"ml-4\",attrs:{\"elevation\":0,\"outlined\":\"\",\"small\":\"\"}},'v-btn',attrs,false),on),[_c('v-btn',{style:({ backgroundColor: item.color }),attrs:{\"x-small\":\"\",\"text\":\"\",\"disabled\":\"\"}}),_c('v-icon',[_vm._v(\"mdi-menu-down\")])],1)]}}],null,true)},[_c('v-color-picker',{attrs:{\"label\":\"Color\",\"value\":item.color,\"show-swatches\":\"\",\"hide-canvas\":\"\",\"hide-sliders\":\"\",\"hide-inputs\":\"\",\"outlined\":\"\",\"dense\":\"\",\"hide-details\":\"\"},on:{\"input\":_vm.updateChart,\"update:color\":({hex}) => _vm.updateColor(hex, item)},model:{value:(item.color),callback:function ($$v) {_vm.$set(item, \"color\", $$v)},expression:\"item.color\"}})],1)],1):_vm._e()],1)],1)],1)}),1):_c('v-card-text',[_vm._v(\" Series are automatic when pivotting. \")]),(_vm.show_debug)?_c('pre',{staticStyle:{\"max-height\":\"400px\",\"overflow\":\"auto\",\"font-size\":\"small\"}},[_vm._v(\" \"+_vm._s(_vm.seriesJSON)+\"\\n \")]):_vm._e()],1),_c('v-tab-item',[_c('v-expansion-panels',{attrs:{\"accordion\":\"\",\"focusable\":\"\"},model:{value:(_vm.selectedPanel),callback:function ($$v) {_vm.selectedPanel=$$v},expression:\"selectedPanel\"}},_vm._l((_vm.chartOptionsLocal.axes.concat(_vm.extraAxes)),function(item,i){return _c('v-expansion-panel',{key:i},[_c('v-expansion-panel-header',{staticClass:\"text-h6\",staticStyle:{\"font-size\":\"1rem !important\"},attrs:{\"color\":\"grey lighten-5\"}},[_c('v-icon',{staticStyle:{\"flex\":\"none\"},attrs:{\"left\":\"\"}},[_vm._v(\" \"+_vm._s((item.position == 'bottom' || item.position == 'top') ? 'mdi-alpha-x-box-outline' : 'mdi-alpha-y-box-outline')+\" \")]),_vm._v(\" \"+_vm._s(item.title.text)+\" \"),(i >= _vm.chartOptionsLocal.axes.length)?_c('v-btn',{staticStyle:{\"flex\":\"0 0 auto\"},attrs:{\"icon\":\"\",\"small\":\"\"},on:{\"click\":function($event){return _vm.removeExtraAxis(i - _vm.chartOptionsLocal.axes.length)}}},[_c('v-icon',{attrs:{\"small\":\"\"}},[_vm._v(\"mdi-close-circle\")])],1):_vm._e()],1),_c('v-expansion-panel-content',{staticClass:\"mt-4\",attrs:{\"color\":\"grey lighten-5\"}},[_c('v-text-field',{attrs:{\"label\":\"Title\",\"outlined\":\"\",\"dense\":\"\",\"hide-details\":\"\"},on:{\"input\":_vm.updateChart},model:{value:(item.title.text),callback:function ($$v) {_vm.$set(item.title, \"text\", $$v)},expression:\"item.title.text\"}}),_c('v-select',{staticClass:\"mt-4\",attrs:{\"label\":\"Axis Type\",\"items\":['time','ordinal-time','category','number','log'],\"menu-props\":{ offsetY: true },\"outlined\":\"\",\"dense\":\"\",\"hide-details\":\"\"},on:{\"change\":_vm.updateChart},model:{value:(item.type),callback:function ($$v) {_vm.$set(item, \"type\", $$v)},expression:\"item.type\"}}),_c('v-card-actions',{staticClass:\"pl-0 pr-0\"},[_vm._v(\" Position: \"),(item.position == 'bottom' || item.position == 'top')?_c('v-radio-group',{staticClass:\"ml-2\",attrs:{\"row\":\"\"},on:{\"change\":_vm.updateChart},model:{value:(item.position),callback:function ($$v) {_vm.$set(item, \"position\", $$v)},expression:\"item.position\"}},[_c('v-radio',{attrs:{\"value\":\"top\",\"label\":\"Top\"}}),_c('v-radio',{attrs:{\"value\":\"bottom\",\"label\":\"Bottom\"}})],1):_vm._e(),(item.position == 'left' || item.position == 'right')?_c('v-radio-group',{staticClass:\"ml-2\",attrs:{\"row\":\"\"},on:{\"change\":_vm.updateChart},model:{value:(item.position),callback:function ($$v) {_vm.$set(item, \"position\", $$v)},expression:\"item.position\"}},[_c('v-radio',{attrs:{\"value\":\"left\",\"label\":\"Left\"}}),_c('v-radio',{attrs:{\"value\":\"right\",\"label\":\"Right\"}})],1):_vm._e()],1),_c('v-card-actions',{staticClass:\"pl-0 pr-0\",staticStyle:{\"gap\":\"16px\"}},[(item.type == 'number')?_c('v-text-field',{staticClass:\"mt-0 pt-0\",attrs:{\"label\":\"Tick Interval\",\"outlined\":\"\",\"dense\":\"\",\"hide-details\":\"\",\"type\":\"number\",\"value\":_vm.getTickInterval(item)},on:{\"change\":(v) => _vm.setTickInterval(item, v)}}):_vm._e(),_c('v-text-field',{attrs:{\"label\":\"Tick Min Spacing\",\"outlined\":\"\",\"dense\":\"\",\"hide-details\":\"\",\"type\":\"number\"},on:{\"change\":_vm.updateChart},model:{value:(item.tick.minSpacing),callback:function ($$v) {_vm.$set(item.tick, \"minSpacing\", _vm._n($$v))},expression:\"item.tick.minSpacing\"}}),_c('v-text-field',{attrs:{\"label\":\"Tick Max Spacing\",\"outlined\":\"\",\"dense\":\"\",\"hide-details\":\"\",\"type\":\"number\"},on:{\"change\":_vm.updateChart},model:{value:(item.tick.maxSpacing),callback:function ($$v) {_vm.$set(item.tick, \"maxSpacing\", _vm._n($$v))},expression:\"item.tick.maxSpacing\"}})],1),(item.keys)?_c('v-card-subtitle',{staticClass:\"pl-0 pr-0\"},[_vm._v(\" Series: \"),_vm._l((_vm.getAxisSeries(item.keys)),function(chip,j){return _c('v-chip',{key:j,staticClass:\"ma-2\"},[_vm._v(_vm._s(chip))])})],2):_vm._e(),(_vm.show_debug)?_c('pre',{staticStyle:{\"max-height\":\"400px\",\"overflow\":\"auto\",\"font-size\":\"small\"}},[_vm._v(\" \"+_vm._s(_vm.axesJSON)+\"\\n \")]):_vm._e()],1)],1)}),1)],1),_c('v-tab-item',[_c('v-card',{attrs:{\"color\":\"grey lighten-5\"}},[_c('v-card-text',[_c('v-select',{attrs:{\"outlined\":\"\",\"dense\":\"\",\"hide-details\":\"\",\"_class\":\"mt-2\",\"label\":\"Position\",\"menu-props\":{ offsetY: true },\"items\":_vm.legend_positions},model:{value:(_vm.legend_position),callback:function ($$v) {_vm.legend_position=$$v},expression:\"legend_position\"}}),(_vm.isPivotting)?_c('v-checkbox',{attrs:{\"dense\":\"\",\"hide-details\":\"\",\"label\":\"Suppress Metric Titles Suffix\"},model:{value:(_vm.suppress_metric_suffix),callback:function ($$v) {_vm.suppress_metric_suffix=$$v},expression:\"suppress_metric_suffix\"}}):_vm._e()],1)],1)],1)],1),(false)?_c('v-icon',{attrs:{\"small\":\"\",\"title\":\"Toggle Debug\"},on:{\"click\":function($event){_vm.show_debug=!_vm.show_debug}}},[_vm._v(\"mdi-bug\")]):_vm._e()],1)],1)],1)],1)],1)],1):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\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/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./agGridToolReportChart.vue?vue&type=script&lang=js&\"; 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/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./agGridToolReportChart.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./agGridToolReportChart.vue?vue&type=template&id=cd1497c8&scoped=true&class=c-ToolPanelChart&\"\nimport script from \"./agGridToolReportChart.vue?vue&type=script&lang=js&\"\nexport * from \"./agGridToolReportChart.vue?vue&type=script&lang=js&\"\nimport style0 from \"./agGridToolReportChart.vue?vue&type=style&index=0&id=cd1497c8&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 \"cd1497c8\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.isvisible),expression:\"isvisible\"}],staticClass:\"c-ToolPanel_1 mx-auto w-100 pa-0\",staticStyle:{\"width\":\"100%\",\"display\":\"flex\",\"flex-direction\":\"column\",\"max-width\":\"750px\"}},[_c('div',{staticStyle:{\"overflow\":\"auto\",\"width\":\"100%\",\"display\":\"flex\",\"flex-direction\":\"column\",\"flex-basis\":\"0\",\"flex-grow\":\"1\"}},[_c('v-expansion-panels',{attrs:{\"accordion\":\"\",\"mandatory\":\"\"},model:{value:(_vm.selectedPanel),callback:function ($$v) {_vm.selectedPanel=$$v},expression:\"selectedPanel\"}},[_c('v-expansion-panel',[_c('v-expansion-panel-header',[_c('span',[_c('v-icon',[_vm._v(\"mdi-database-settings\")]),_vm._v(\" Report Fields \")],1)]),_c('v-expansion-panel-content',[_c('ToolReportFields',{attrs:{\"isvisible\":true,\"column_list\":_vm.column_list,\"datetime_interval\":_vm.datetime_interval,\"openadvancedsettings\":_vm.openadvancedsettings,\"notifychange\":_vm.notifyreportchange}})],1)],1),_c('v-expansion-panel',[_c('v-expansion-panel-header',[_c('span',[_c('v-icon',{attrs:{\"color\":Object.keys(_vm.column_filters).length > 0 ? 'primary' : ''}},[_vm._v(\"mdi-filter\")]),_vm._v(\" Data Filters \")],1)]),_c('v-expansion-panel-content',[_c('ToolReportFilters',{attrs:{\"isvisible\":true,\"column_list\":_vm.column_list,\"column_filters\":_vm.column_filters,\"notifychange\":_vm.notifyreportchange},on:{\"filterschanged\":_vm.filerschanged}})],1)],1),_c('v-expansion-panel',[_c('v-expansion-panel-header',[_c('span',[_c('v-icon',[_vm._v(\"mdi-chart-bar\")]),_vm._v(\" Chart Options \")],1)]),_c('v-expansion-panel-content',[_c('ToolReportChart',{attrs:{\"isvisible\":true,\"column_list\":_vm.column_list,\"chartOptions\":_vm.preparedChartOptions,\"legendFormatter\":_vm.legendFormatter,\"notifychange\":_vm.notifychartchange,\"notifyrefresh\":_vm.notifychartrefresh}})],1)],1)],1)],1)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\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/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./agGridToolReportAllinOne.vue?vue&type=script&lang=js&\"; 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/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./agGridToolReportAllinOne.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./agGridToolReportAllinOne.vue?vue&type=template&id=ece93aca&scoped=true&class=c-ToolPanel&\"\nimport script from \"./agGridToolReportAllinOne.vue?vue&type=script&lang=js&\"\nexport * from \"./agGridToolReportAllinOne.vue?vue&type=script&lang=js&\"\nimport style0 from \"./agGridToolReportAllinOne.vue?vue&type=style&index=0&id=ece93aca&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 \"ece93aca\",\n null\n \n)\n\nexport default component.exports","\n\n\n\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/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AdvancedReports.vue?vue&type=script&lang=js&\"; 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/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AdvancedReports.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./AdvancedReports.vue?vue&type=template&id=9b2cc92a&\"\nimport script from \"./AdvancedReports.vue?vue&type=script&lang=js&\"\nexport * from \"./AdvancedReports.vue?vue&type=script&lang=js&\"\nimport style0 from \"./AdvancedReports.vue?vue&type=style&index=0&id=9b2cc92a&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","import Vue from 'vue';\r\nimport BaseComponent from './BaseComponentMixin.jsx';\r\nimport utils from '../../Shared/utils.jsx';\r\n\r\nimport { AgGridVue } from \"ag-grid-vue\";\r\n\r\nconst CellTemplate = {\r\n computed: {\r\n },\r\n render(h) {\r\n const icons = [];\r\n if (this.params.columnDef.Icons)\r\n for (let i = 0; i < this.params.columnDef.Icons.length; i++) {\r\n const ico = this.params.columnDef.Icons[i];\r\n\r\n if (ico.condition_expn && !utils.evaluate(ico.condition_expn, this.params.cccontext, false, null, false, this.params.data))\r\n continue;\r\n\r\n let color;\r\n if (ico.color_expn)\r\n color = utils.evaluate(ico.color_expn, this.params.cccontext, false, null, false, this.params.data);\r\n\r\n let tooltip;\r\n if (ico.tooltip_expn)\r\n tooltip = utils.evaluate(ico.tooltip_expn, this.params.cccontext, false, null, false, this.params.data);\r\n\r\n const icon = utils.evaluate(ico.icon_expn, this.params.cccontext, false, null, false, this.params.data);\r\n\r\n let button;\r\n if (color)\r\n button = {icon};\r\n else\r\n button = {icon};\r\n\r\n if (tooltip)\r\n button = utils.generateTooltip(h, button, tooltip, 'right');\r\n\r\n icons.push(button)\r\n }\r\n\r\n return {icons};\r\n }\r\n};\r\n\r\nVue.component('cc-ag-grid', {\r\n mixins: [BaseComponent],\r\n components: {\r\n AgGridVue,\r\n CellTemplate,\r\n },\r\n data: () => ({\r\n datatable_id: null,\r\n\r\n modelfunc: null,\r\n modelurl: null,\r\n modelvalue: null,\r\n\r\n loading: false,\r\n\r\n gridApi: null,\r\n columnApi: null,\r\n searchText: '',\r\n }),\r\n created() {\r\n this.datatable_id = `data-table-${utils.generateUUID()}`;\r\n this.itemsPerPage = this.controlData.ItemsPerPage || 30;\r\n\r\n if ((this.controlData.DataType === 'URL' || this.controlData.DataType === undefined) && this.controlData.DataURL) {\r\n this.modelurl = utils.compile(this, this.controlData.DataURL);\r\n }\r\n else if (this.controlData.DataType === 'Raw' && this.controlData.Data) {\r\n this.modelvalue = utils.compileObject(this, this.controlData.Data);\r\n }\r\n this.prepareColumns();\r\n },\r\n computed: {\r\n columnDefs: function () {\r\n const h = this.$createElement;\r\n const cols = [];\r\n\r\n if (this.controlData.SelectOptions.Enable)\r\n cols.push({\r\n headerName: '',\r\n sortable: false,\r\n resizable: true,\r\n checkboxSelection: true,\r\n headerCheckboxSelection: true,\r\n pinned: 'left',\r\n width: 50,\r\n });\r\n\r\n for (let i = 0; i < this.controlData.ColumnDefs.length; i++) {\r\n const hdr = this.controlData.ColumnDefs[i];\r\n if (!hdr.Visible)\r\n continue;\r\n\r\n switch (hdr.Type) {\r\n case 'Value':\r\n let valueGetter;\r\n if (hdr.Value && !hdr.value_expn)\r\n hdr.value_expn = utils.compile(this, hdr.Value, false, hdr.RowModelName || 'row');\r\n if (hdr.value_expn)\r\n valueGetter = (node) => utils.evaluate(hdr.value_expn, this, false, null, false, node.data);\r\n\r\n let valueFormatter;\r\n if (hdr.cellfilter_expn && hdr.condition_expn)\r\n valueFormatter = (node) => utils.evaluate(hdr.condition_expn, this, false, null, false, node.data) ? utils.evaluate(hdr.cellfilter_expn, this, false, null, false, [node.data, node.value], true) : '';\r\n else if (hdr.cellfilter_expn && !hdr.condition_expn)\r\n valueFormatter = (node) => utils.evaluate(hdr.cellfilter_expn, this, false, null, false, [node.data, node.value], true);\r\n else if (hdr.condition_expn)\r\n valueFormatter = (node) => utils.evaluate(hdr.condition_expn, this, false, null, false, node.data) ? hdr.field_extrator(node.data) : '';\r\n\r\n cols.push({\r\n headerName: hdr.DisplayName || hdr.Name || hdr.Field,\r\n field: hdr.Field,\r\n sortable: hdr.Sortable,\r\n filter: true,\r\n resizable: true,\r\n valueGetter: valueGetter,\r\n valueFormatter: valueFormatter,\r\n });\r\n break;\r\n\r\n case 'Icons':\r\n cols.push({\r\n headerName: '',\r\n resizable: true,\r\n cellRenderer: 'CellTemplate',\r\n cellRendererParams: {\r\n columnDef: hdr,\r\n cccontext: this,\r\n },\r\n });\r\n break;\r\n }\r\n\r\n }\r\n\r\n return cols;\r\n },\r\n dataSource: function () {\r\n return this.modelfunc ? this.modelfunc() : null;\r\n },\r\n modelurlvalue: function () {\r\n if (this.modelurl)\r\n return utils.evaluate(this.modelurl, this);\r\n else\r\n return '';\r\n },\r\n modelrawvalue: function () {\r\n if (this.modelvalue)\r\n return utils.evaluateObject(this.modelvalue, this);\r\n else\r\n return [];\r\n },\r\n\r\n gridHeaders: function () {\r\n const h = this.$createElement;\r\n const items = [];\r\n items.push(\r\n this.searchText = v}\r\n >\r\n );\r\n\r\n // Separator to push remaining items to right\r\n items.push();\r\n\r\n // Resizer (runs auto-resize for all columns)\r\n items.push(utils.generateTooltip(h,\r\n this.columnApi.autoSizeAllColumns()}>\r\n \r\n mdi-arrow-left-right-bold\r\n \r\n , 'Size columns to content', 'bottom'));\r\n\r\n // Refresh\r\n items.push(utils.generateTooltip(h,\r\n this.Refresh()}>\r\n \r\n mdi-cached\r\n \r\n , 'Refresh', 'bottom'));\r\n\r\n const scopedSlots = {\r\n activator: ({ on, attrs }) =>\r\n \r\n \r\n mdi-menu\r\n \r\n \r\n };\r\n\r\n const menus = [];\r\n\r\n menus.push(\r\n this.exportAllAsCSV(e)}>\r\n \r\n Export all data as csv\r\n \r\n \r\n );\r\n\r\n menus.push(\r\n this.exportVisibleAsCSV(e)}>\r\n \r\n Export visible data as csv\r\n \r\n \r\n );\r\n\r\n menus.push(\r\n this.restoreDefaults(e)}>\r\n \r\n Restore default settings\r\n \r\n \r\n );\r\n\r\n menus.push();\r\n\r\n // Add all columns with check boxes for visible\r\n\r\n for (let i = 0; i < this.controlData.ColumnDefs.length; i++) {\r\n const col = this.controlData.ColumnDefs[i];\r\n if (col.Type != 'Value') continue;\r\n\r\n menus.push(\r\n this.toggleColumnVisibility(e, col)}>\r\n \r\n {col.Visible ? 'mdi-checkbox-marked-outline' : 'mdi-checkbox-blank-outline'}\r\n \r\n \r\n {col.DisplayName || col.Name || col.Field}\r\n \r\n \r\n );\r\n }\r\n\r\n // Menu\r\n const menu =\r\n \r\n \r\n \r\n {menus}\r\n \r\n \r\n ;\r\n\r\n items.push(menu);\r\n\r\n return (\r\n
\r\n {items}\r\n
\r\n );\r\n },\r\n },\r\n //Mounted Replaced with preRenderComplete\r\n methods: {\r\n async preRenderComplete() {\r\n this.finishRenderHandler(this);\r\n await this.Refresh();\r\n },\r\n async Refresh(clearSelectedRows) {\r\n if (clearSelectedRows) {\r\n }\r\n\r\n this.loading = true;\r\n try {\r\n let model;\r\n if (this.controlData.DataType == 'URL' && this.modelurl) {\r\n model = this.modelurlvalue ? await utils.api.get(this.modelurlvalue, false, false) : [];\r\n\r\n if (!this.modelurl_watch$)\r\n this.modelurl_watch$ = this.$watch(\r\n function (newvalue) {\r\n return this.modelurlvalue;\r\n },\r\n function (val, oldval) {\r\n this.Refresh();\r\n }\r\n );\r\n }\r\n else if (this.controlData.DataType == 'Raw' && this.modelvalue)\r\n try {\r\n model = this.modelrawvalue;\r\n\r\n if (!this.modelvalue_watch$)\r\n this.modelvalue_watch$ = this.$watch(\r\n function () {\r\n try {\r\n return this.modelrawvalue;\r\n }\r\n catch (e) {\r\n utils.warn('SlimGrid modelvalue ' + this.controlData.Model.Definition + ' failed to evaluate: ' + e);\r\n return null;\r\n }\r\n },\r\n function (val, oldval) {\r\n this.Refresh();\r\n },\r\n {\r\n deep: false\r\n }\r\n );\r\n }\r\n catch (e) {\r\n utils.warn('BasicGrid modelvalue ' + this.controlData.Data + ' failed to evaluate: ' + e);\r\n model = [];\r\n }\r\n else\r\n model = [];\r\n\r\n this.modelfunc = () => model;\r\n }\r\n finally {\r\n this.loading = false;\r\n }\r\n },\r\n prepareColumns() {\r\n // Generate compiled expressions for all interpolations\r\n for (let i = 0; i < this.controlData.ColumnDefs.length; i++) {\r\n const hdr = this.controlData.ColumnDefs[i];\r\n\r\n if (hdr.Condition && !hdr.condition_expn)\r\n hdr.condition_expn = utils.compileExpression(this, hdr.Condition, hdr.RowModelName || 'row');\r\n\r\n switch (hdr.Type) {\r\n case 'Value':\r\n if (!hdr.field_extrator)\r\n hdr.field_extrator = new Function('f', `return f.${hdr.Field};`);\r\n\r\n if (hdr.Value && !hdr.value_expn)\r\n hdr.value_expn = utils.compile(this, hdr.Value, false, hdr.RowModelName || 'row');\r\n\r\n if (hdr.CellFilter && !hdr.cellfilter_expn)\r\n hdr.cellfilter_expn = utils.compile(this, hdr.CellFilter, false, [hdr.RowModelName || 'row', hdr.ValueModelName || 'value']);\r\n\r\n break;\r\n\r\n case 'Icons':\r\n for (let i = 0; i < hdr.Icons.length; i++) {\r\n const ico = hdr.Icons[i];\r\n\r\n if (ico.Condition && !ico.condition_expn)\r\n ico.condition_expn = utils.compileExpression(this, ico.Condition, hdr.RowModelName || 'row');\r\n\r\n if (!ico.icon_expn)\r\n ico.icon_expn = utils.compile(this, ico.Icon, false, hdr.RowModelName || 'row');\r\n\r\n if (ico.Color && !ico.color_expn)\r\n ico.color_expn = utils.compile(this, ico.Color, false, hdr.RowModelName || 'row');\r\n\r\n if (ico.Tooltip && !ico.tooltip_expn)\r\n ico.tooltip_expn = utils.compile(this, ico.Tooltip, false, hdr.RowModelName || 'row');\r\n }\r\n break;\r\n }\r\n }\r\n },\r\n onGridReady(params) {\r\n this.gridApi = params.api;\r\n this.columnApi = params.columnApi;\r\n },\r\n SizeColumnsToFit() {\r\n this.gridApi.autoSizeAllColumns();\r\n },\r\n getSelectedRows() {\r\n const selectedNodes = this.gridApi.getSelectedNodes();\r\n const selectedData = selectedNodes.map(node => node.data);\r\n const selectedStr = selectedData.map(node => `${node.Name} ${node.Folder}`).join(', ');\r\n alert(selectedStr);\r\n },\r\n rowCommandClick(e, data, btn) {\r\n e.cancelBubble = true;\r\n e.preventDefault();\r\n utils.executeAndCompileAllActions(btn.Actions, { RowIndex: data.rowIndex, Data: data.row.data }, this);\r\n },\r\n clickIcon(e, hdr, ico, item) {\r\n e.cancelBubble = true;\r\n e.preventDefault();\r\n utils.executeAndCompileAllActions(ico.Actions, { Data: item }, this);\r\n },\r\n },\r\n props: {},\r\n render() {\r\n if (!this.todisplay)\r\n return null;\r\n\r\n const style = {\r\n overflow: \"auto\",\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n padding: '8px',\r\n ...this.sizeStyle,\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n\r\n {this.gridHeaders}\r\n\r\n \r\n \r\n \r\n );\r\n }\r\n});","var render = function render(){var _vm=this,_c=_vm._self._c;return (_vm.todisplay)?_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.isvisible),expression:\"isvisible\"}],class:{ 'c-ApexGeneralChart': true, [`c-name-${this.name || 'unnamed'}`]: true },style:(_vm.style)},[_c('apexchart',{attrs:{\"type\":_vm.chartType,\"height\":\"100%\",\"width\":\"100%\",\"series\":_vm.chartData,\"options\":_vm.chartOptions}})],1):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\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/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ApexGeneralChart.vue?vue&type=script&lang=js&\"; 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/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ApexGeneralChart.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ApexGeneralChart.vue?vue&type=template&id=211c9d52&scoped=true&\"\nimport script from \"./ApexGeneralChart.vue?vue&type=script&lang=js&\"\nexport * from \"./ApexGeneralChart.vue?vue&type=script&lang=js&\"\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 \"211c9d52\",\n null\n \n)\n\nexport default component.exports","import Vue from \"vue\";\r\nimport utils from \"../../Shared/utils.jsx\";\r\nimport BaseComponent from \"./BaseComponentMixin.jsx\";\r\nimport { appSettings } from \"../../Shared/appSettings.js\";\r\n\r\nVue.component(\"apple-button\", {\r\n mixins: [BaseComponent],\r\n data: function() {\r\n return {};\r\n },\r\n computed: {\r\n buttonText() {\r\n return this.Translate(\"Sign in with Apple\");\r\n },\r\n styles() {\r\n return {\r\n ...this.sizeStyle,\r\n ...utils.resolveStyleHints(this.styleHints, this),\r\n };\r\n },\r\n },\r\n\r\n //Created replaced with preRenderComplete\r\n methods: {\r\n async preRenderComplete() {\r\n this.startAppleApp();\r\n\r\n this.finishRenderHandler(this);\r\n },\r\n startAppleApp() {\r\n const appleId = appSettings.WhiteLabel.AppleSigninId;\r\n\r\n if (!appleId) return;\r\n\r\n AppleID.auth.init({\r\n clientId: appleId,\r\n scope: \"email\",\r\n redirectURI: window.location.origin,\r\n usePopup: true,\r\n });\r\n },\r\n async handleClick() {\r\n try {\r\n const result = await AppleID.auth.signIn({\r\n clientId: appSettings.WhiteLabel.AppleSigninId,\r\n scope: \"email\",\r\n redirectURI: window.location.origin,\r\n //state: '[STATE]',\r\n //nonce: '[NONCE]',\r\n usePopup: true,\r\n });\r\n\r\n const authArgs = {\r\n ProviderType: \"Apple\",\r\n token: result.authorization.id_token, // JWT (JSON Web Token)\r\n clientId: appSettings.WhiteLabel.AppleSigninId,\r\n };\r\n\r\n await this.runActions(authArgs);\r\n } catch (err) {}\r\n },\r\n async runActions(authArgs) {\r\n await utils.executeAndCompileAllActions(this.controlData.Actions, authArgs, this);\r\n },\r\n },\r\n render(h) {\r\n try {\r\n if (!this.todisplay) return null;\r\n\r\n return (\r\n \r\n \r\n
\r\n mdi-apple\r\n {this.buttonText}\r\n
\r\n
\r\n \r\n );\r\n } catch (e) {\r\n utils.error(\"AppleButton Render failed\", e);\r\n return
AppleButton Failed to Render {e}
;\r\n }\r\n },\r\n});\r\n","var render = function render(){var _vm=this,_c=_vm._self._c;return (this.todisplay)?_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(this.isvisible),expression:\"this.isvisible\"}],class:{ 'c-AudioPlayer': true, [`c-name-${this.name || 'unnamed'}`]: true },style:(_vm.sizeStyle)},[_c('v-card',{staticClass:\"ma-1'\",staticStyle:{\"text-align\":\"center\"}},[_c('v-card-text',{style:(_vm.VCardPadding)},[(_vm.error)?[_c('translation-container',{attrs:{\"context\":_vm.context,\"value\":\"Audio file not found.\"}})]:[_c('div',{staticStyle:{\"padding\":\"0\"}},[_c('div',{staticStyle:{\"overflow\":\"auto\"}},[_c('callcorp-player',{ref:\"callcorpplayer\"})],1),_c('div',{ref:\"waveform\"}),(_vm.showTimeline)?_c('div',{ref:\"wavetimeline\",staticStyle:{\"text-align\":\"left\"},attrs:{\"id\":\"wavetimeline\"}}):_vm._e(),(_vm.showSpectrogram)?_c('div',{ref:\"wavespectrogram\",staticStyle:{\"text-align\":\"left\"},attrs:{\"id\":\"wavespectrogram\"}}):_vm._e(),(_vm.showTimeline)?_c('div',{staticClass:\"mt-2\",staticStyle:{\"margin-bottom\":\"0px\",\"white-space\":\"nowrap\"}},[_vm._v(_vm._s(_vm.currentTimeString)+\" / \"+_vm._s(_vm.durationString))]):_vm._e(),(!_vm.playing)?_c('v-tooltip',{attrs:{\"top\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({on, attrs}){return [_c('v-btn',_vm._g(_vm._b({staticClass:\"ml-2 mr-2 mt-1\",attrs:{\"icon\":\"\",\"color\":\"secondary\",\"disabled\":!_vm.loaded},on:{\"click\":function($event){return _vm.play()}}},'v-btn',attrs,false),on),[_c('v-icon',[_vm._v(\"mdi-play\")])],1)]}}],null,false,2684555372)},[_c('span',[_vm._v(_vm._s(_vm.Translate('Play')))])]):_c('v-tooltip',{attrs:{\"top\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({on, attrs}){return [_c('v-btn',_vm._g(_vm._b({staticClass:\"ml-2 mr-2 mt-1\",attrs:{\"icon\":\"\",\"color\":\"secondary\",\"disabled\":!_vm.loaded},on:{\"click\":function($event){return _vm.pause()}}},'v-btn',attrs,false),on),[_c('v-icon',[_vm._v(\"mdi-pause\")])],1)]}}],null,false,1901649292)},[_c('span',[_vm._v(_vm._s(_vm.Translate('Pause')))])]),(!_vm.showingVideo && _vm.videoData && _vm.videoData.length)?_c('v-tooltip',{attrs:{\"top\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({on, attrs}){return [_c('v-btn',_vm._g(_vm._b({staticClass:\"ml-2 mr-2 mt-1\",attrs:{\"icon\":\"\",\"color\":\"secondary\",\"disabled\":!_vm.loaded},on:{\"click\":function($event){return _vm.showVideo()}}},'v-btn',attrs,false),on),[_c('v-icon',[_vm._v(\"mdi-filmstrip\")])],1)]}}],null,false,511007292)},[_c('span',[_vm._v(_vm._s(_vm.Translate('Show video')))])]):_vm._e(),(_vm.downloadable)?_c('v-tooltip',{attrs:{\"top\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({on, attrs}){return [_c('v-btn',_vm._g(_vm._b({staticClass:\"ml-2 mr-2 mt-1\",attrs:{\"icon\":\"\",\"color\":\"secondary\",\"disabled\":!_vm.loaded},on:{\"click\":function($event){return _vm.download()}}},'v-btn',attrs,false),on),[_c('v-icon',[_vm._v(\"mdi-download\")])],1)]}}],null,false,1442349996)},[_c('span',[_vm._v(_vm._s(_vm.Translate('Download')))])]):_vm._e(),(_vm.deletable)?_c('v-tooltip',{attrs:{\"top\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({on, attrs}){return [_c('v-btn',_vm._g(_vm._b({staticClass:\"ml-2 mr-2 mt-1\",attrs:{\"icon\":\"\",\"color\":\"secondary\",\"target\":\"_blank\",\"disabled\":!_vm.loaded},on:{\"click\":_vm.deleteRecording}},'v-btn',attrs,false),on),[_c('v-icon',[_vm._v(\"mdi-delete\")])],1)]}}],null,false,3562996309)},[_c('span',[_vm._v(_vm._s(_vm.Translate('Delete')))])]):_vm._e()],1)]],2)],1)],1):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\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/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AudioPlayer.vue?vue&type=script&lang=js&\"; 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/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AudioPlayer.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./AudioPlayer.vue?vue&type=template&id=deef260e&scoped=true&\"\nimport script from \"./AudioPlayer.vue?vue&type=script&lang=js&\"\nexport * from \"./AudioPlayer.vue?vue&type=script&lang=js&\"\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 \"deef260e\",\n null\n \n)\n\nexport default component.exports","import Vue from 'vue';\r\nimport utils from '../../Shared/utils.jsx';\r\nimport BaseComponent from './BaseComponentMixin.jsx';\r\nimport { appSettings } from '@/Shared/appSettings.js';\r\n\r\nVue.component('auto-complete', {\r\n mixins: [BaseComponent],\r\n data: function () {\r\n return {\r\n phrenderer: null,\r\n Input: {},\r\n Value: \"\",\r\n\r\n uniqueref: null,\r\n selected: -1,\r\n list: [],\r\n widthList: '100%',\r\n showingList: false,\r\n x: 0,\r\n y: 0,\r\n w: 400,\r\n }\r\n },\r\n props: {},\r\n created() {\r\n this.uniqueref = utils.generateUUID();\r\n\r\n if (this.controlData.ItemFields) {\r\n this.displayexpn = utils.compile(this, this.controlData.ItemFields.DisplayText);\r\n this.titleexpn = utils.compile(this, this.controlData.ItemFields.Title);\r\n this.subtitleexpn = utils.compile(this, this.controlData.ItemFields.SubTitle);\r\n this.iconexpn = utils.compile(this, this.controlData.ItemFields.Icon);\r\n }\r\n },\r\n //Mounted Replaced with preRenderComplete\r\n computed: {\r\n placeholder: function () {\r\n try {\r\n if (!this.phrenderer && this.controlData.PlaceHolder)\r\n this.phrenderer = utils.compile(this, this.controlData.PlaceHolder);\r\n\r\n return this.phrenderer ? utils.evaluate(this.phrenderer, this) : '';\r\n }\r\n catch (e)\r\n {\r\n utils.warn('placeholder could not evaluate expression: ' + this.controlData.PlaceHolder + '; ' + e);\r\n return '';\r\n }\r\n },\r\n label: function () {\r\n return this.placeholder;\r\n },\r\n urlvalue: function () {\r\n if (!this.urlexpn && this.controlData.SourceURL)\r\n this.urlexpn = utils.compile(this, this.controlData.SourceURL);\r\n\r\n return this.urlexpn ? utils.evaluate(this.urlexpn, this) : '';\r\n },\r\n sourcevalue: function () {\r\n if (!this.sourceexpn && this.controlData.SourceRaw)\r\n this.sourceexpn = utils.compileObject(this, this.controlData.SourceRaw);\r\n\r\n return this.sourceexpn ? utils.evaluateObject(this.sourceexpn, this) : null;\r\n },\r\n filteredList: function () {\r\n if (this.searchby && this.controlData.FilterFields && this.controlData.FilterFields.length > 0)\r\n return this.list.filter(a => {\r\n for (let i = 0; i < this.controlData.FilterFields.length; i++)\r\n if (a.value[this.controlData.FilterFields[i]] &&\r\n a.value[this.controlData.FilterFields[i]].toLowerCase().includes(this.searchby.toLowerCase()))\r\n return true;\r\n\r\n return false;\r\n });\r\n else\r\n return this.list;\r\n },\r\n\r\n Text: {\r\n get: function () {\r\n return this.Value;\r\n },\r\n set: function (newvalue) {\r\n this.Value = newvalue;\r\n },\r\n },\r\n },\r\n methods: {\r\n sync(v) {\r\n this.Value = v || '';\r\n this.searchby = v;\r\n\r\n if (!v) {\r\n // Clear was clicked\r\n this.showingList = false;\r\n return;\r\n }\r\n\r\n utils.debug(`AutoComplete.on-change KeyPressActions { Text:${this.Value}, Length:${this.Value.length} }`);\r\n utils.executeAndCompileAllActions(this.controlData.KeyPressActions,\r\n {\r\n Text: this.Value,\r\n Length: this.Value.length\r\n }, this);\r\n },\r\n Clear() {\r\n this.Value = '';\r\n utils.debug(`AutoComplete.Clear()`);\r\n },\r\n preRenderComplete() {\r\n this.finishRenderHandler(this);\r\n },\r\n\r\n async loadList() {\r\n let data;\r\n switch (this.controlData.SourceType) {\r\n case 'Raw':\r\n data = this.controlData.SourceRaw;\r\n break;\r\n\r\n case 'RawInterpolated':\r\n data = this.sourcevalue;\r\n break;\r\n\r\n case 'URL':\r\n data = await utils.api.get(this.urlvalue);\r\n break;\r\n\r\n default:\r\n utils.warn(`AutoComplete ${this.name} SourceType of ${this.controlData.SourceType} is not implemented`);\r\n return;\r\n }\r\n\r\n this.list = data.map(a => {\r\n this.sourceData = a;\r\n\r\n return {\r\n text: utils.evaluate(this.displayexpn, this),\r\n title: utils.evaluate(this.titleexpn, this),\r\n subtitle: utils.evaluate(this.subtitleexpn, this),\r\n icon: utils.evaluate(this.iconexpn, this),\r\n value: a,\r\n };\r\n });\r\n utils.debug(`AutoComplete.loadList()`);\r\n },\r\n selectItem(value) {\r\n this.Value = value.text;\r\n this.selected = -1;\r\n utils.debug(`AutoComplete.selectItem(value:${value})`);\r\n },\r\n async showList(items) {\r\n this.showingList = false;\r\n const rect = this.$refs[this.uniqueref].$el.getBoundingClientRect();\r\n\r\n this.x = rect.left;\r\n this.y = rect.bottom;\r\n this.w = rect.width;\r\n\r\n if (items)\r\n this.list = items;\r\n else\r\n await this.loadList();\r\n\r\n this.$nextTick(() => {\r\n this.showingList = true\r\n });\r\n utils.debug(`AutoComplete.showList(...)`);\r\n },\r\n click(e) {\r\n e.preventDefault();\r\n //this.searchBy = '';\r\n //this.showList();\r\n\r\n utils.debug(`AutoComplete.click() executing ClickActions { Text:${this.Value}, Length:${this.Value.length} }`);\r\n utils.executeAndCompileAllActions(this.controlData.ClickActions,\r\n {\r\n Text: this.Value,\r\n Length: this.Value.length\r\n }, this);\r\n\r\n if (this.controlData.OpenOnClick)\r\n this.showList();\r\n },\r\n keydown(e) {\r\n // handle Enter, Down, and Up\r\n //debugger;\r\n utils.debug(`AutoComplete.keydown(e.key:${e.key})`);\r\n\r\n switch (e.key) {\r\n case 'ArrowDown':\r\n if (this.showingList && this.list.length > 0) {\r\n this.selected++;\r\n if (this.selected >= this.list.length)\r\n this.selected = 0;\r\n }\r\n break;\r\n\r\n case 'ArrowUp':\r\n if (this.showingList && this.list.length > 0) {\r\n this.selected--;\r\n if (this.selected < 0)\r\n this.selected = this.list.length - 1;\r\n }\r\n break;\r\n\r\n case 'Tab':\r\n break;\r\n\r\n case 'Enter':\r\n e.preventDefault();\r\n\r\n if (this.Value && (!this.showingList || this.filteredList.length < 1))\r\n ;//this.dialPhone();\r\n else if (this.showingList && this.selected >= 0 && this.filteredList.length > 0 && this.selected < this.filteredList.length) {\r\n const choice = this.filteredList[this.selected];\r\n this.Value = choice.text;\r\n this.showingList = false;\r\n }\r\n break;\r\n }\r\n },\r\n\r\n IsDropdownOpen() {\r\n return this.showingList;\r\n },\r\n OpenDropdown(items, textfield, filterfields, sortfields) {\r\n // Ex: null,null,['fullname'],['fullname']\r\n utils.debug(`AutoComplete.OpenDropdown(...)`);\r\n\r\n this.showList();\r\n },\r\n CloseDropdown() {\r\n utils.debug(`AutoComplete.CloseDropdown()`);\r\n\r\n this.showingList = false;\r\n },\r\n },\r\n render(h) {\r\n if (!this.todisplay)\r\n return null;\r\n\r\n const style = {\r\n ...this.sizeStyle,\r\n ...utils.resolveStyleHints(this.styleHints, this),\r\n overflow: \"hidden\",\r\n whiteSpace: \"nowrap\",\r\n display: \"inline-block\"\r\n };\r\n\r\n let scopedSlots = {\r\n message: ({ message }) => {\r\n return \r\n }\r\n }\r\n\r\n let slots;\r\n if (this.labelText)\r\n slots = [\r\n ,\r\n ];\r\n\r\n let input = (\r\n {\r\n this.sync(v);\r\n }}\r\n on-click={(e) => this.click(e)}\r\n on-keydown={(e) => this.keydown(e)}\r\n \r\n persistent-hint={appSettings.DebugTranslationPrefixSetting}>\r\n {slots}\r\n \r\n );\r\n\r\n let menu_items = [];\r\n for (let i = 0; i < this.filteredList.length; i++) {\r\n const item = this.filteredList[i];\r\n\r\n menu_items.push(\r\n this.selectItem(item)}>\r\n \r\n {item.icon}\r\n \r\n\r\n \r\n \r\n {item.title}\r\n \r\n\r\n \r\n {item.subtitle}\r\n \r\n \r\n \r\n );\r\n }\r\n\r\n return (\r\n \r\n {input}\r\n\r\n this.showingList = value}\r\n position-x={this.x}\r\n position-y={this.y}\r\n min-width={this.w}\r\n max-height={400}\r\n absolute\r\n offset-y\r\n >\r\n \r\n this.selected = idx}>\r\n {menu_items}\r\n \r\n \r\n \r\n \r\n );\r\n }\r\n});","import Vue from 'vue';\r\nimport utils from '../../Shared/utils.jsx';\r\nimport BaseComponent from './BaseComponentMixin.jsx';\r\nimport careHelpfulFunctions from '../careHelpfulFunctions.jsx';\r\nimport EventBus from '../event-bus.js';\r\n\r\nVue.component('badge-handler', {\r\n mixins: [BaseComponent],\r\n data: function () {\r\n return {\r\n sourceraw: null,\r\n sourceurl: null,\r\n model: null,\r\n\r\n badges: 0,\r\n badgeEventKeys: {},\r\n }\r\n },\r\n async created() {\r\n if (this.controlData.SourceType === 'Raw' && this.controlData.SourceRaw) {\r\n this.sourceraw = utils.compileObject(this, this.controlData.SourceRaw);\r\n }\r\n else if (this.controlData.SourceType === 'Url' && this.controlData.SourceUrl) {\r\n this.sourceurl = utils.compile(this, this.controlData.SourceUrl);\r\n }\r\n\r\n EventBus.$on('Action-Badge', this.performBadgeAction);\r\n },\r\n destroyed() {\r\n EventBus.$off('Action-Badge', this.performBadgeAction);\r\n\r\n if (this.$watch_todisplay)\r\n this.$watch_todisplay();\r\n },\r\n //Mounted Replaced with preRenderComplete\r\n computed: {\r\n Menus: function () {\r\n return utils.document_cache.menus;\r\n },\r\n DocumentCache: function () {\r\n return utils.document_cache;\r\n },\r\n MenuData: function () {\r\n return this.model;\r\n },\r\n MenuContent: function () {\r\n return this.cached_content;\r\n },\r\n },\r\n methods: {\r\n async preRenderComplete() {\r\n if (this.todisplay)\r\n await this.Refresh();\r\n else {\r\n this.$watch_todisplay = this.$watch('todisplay', function (newval) { if (newval) this.Refresh(); });\r\n }\r\n this.finishRenderHandler(this);\r\n },\r\n getChildren: function (data, parent, outargs) {\r\n let path = parent.MenuItemData.Title;\r\n if (parent.MenuPath)\r\n path = parent.MenuPath + '::' + path;\r\n\r\n const list = data.filter(m => m.MenuPath == path).sort((a, b) => parseInt(a.Index) - parseInt(b.Index));\r\n\r\n const result = [];\r\n for (let i = 0; i < list.length; i++) {\r\n const item = list[i];\r\n const child = {\r\n id: `${outargs.index++}`,\r\n name: item.MenuItemData.Title,\r\n icon: item.MenuItemData.Icon,\r\n item_data: item,\r\n }\r\n outargs.content.push(child);\r\n const children = utils.document_cache.getChildren(data, item, outargs);\r\n if (children && children.length > 0)\r\n child.children = children;\r\n\r\n result.push(child);\r\n }\r\n\r\n return result;\r\n },\r\n getMenuTree: function (data) {\r\n const result = [];\r\n const content = [];\r\n const outargs = { index: 0, content: content };\r\n\r\n let root = data.filter(m => !m.MenuPath).sort((a, b) => parseInt(a.Index) - parseInt(b.Index));\r\n for (let i = 0; i < root.length; i++) {\r\n const node = root[i];\r\n const child = {\r\n id: `${outargs.index++}`,\r\n name: node.MenuItemData.Title,\r\n icon: node.MenuItemData.Icon,\r\n item_data: node,\r\n };\r\n outargs.content.push(child);\r\n const children = this.getChildren(data, node, outargs);\r\n if (children && children.length > 0)\r\n child.children = children;\r\n\r\n result.push(child);\r\n }\r\n this.cached_result = result;\r\n this.cached_content = content;\r\n return result;\r\n },\r\n async Refresh() {\r\n let model;\r\n if (this.sourceraw)\r\n try {\r\n model = utils.evaluateObject(this.sourceraw, this);\r\n }\r\n catch (e) {\r\n utils.warn('DynamicTab failed to evaluate SourceRaw ' + this.controlData.SourceRaw + ': ' + e);\r\n }\r\n else if (this.sourceurl)\r\n try {\r\n model = await utils.api.get(utils.evaluate(this.sourceurl, this));\r\n }\r\n catch (e) {\r\n utils.warn('DynamicTab failed to evaluate SourceUrl ' + this.controlData.SourceUrl + ': ' + e);\r\n }\r\n\r\n if (model && this.controlData.SourceAsMenuItems) {\r\n // Convert the source model into a tree (it is being provided as an array of MenuItems)\r\n for (let i = 0; i < model.length; i++) {\r\n const m = model[i];\r\n if (m.ChildMenus)\r\n m.ChildMenus = this.getMenuTree(m.ChildMenus);\r\n }\r\n model = model.slice().sort((a, b) => {\r\n let indexa;\r\n if (typeof a.Index === 'string')\r\n indexa = parseInt(a.Index);\r\n else\r\n indexa = a.Index;\r\n\r\n let indexb;\r\n if (typeof b.Index === 'string')\r\n indexb = parseInt(b.Index);\r\n else\r\n indexb = b.Index;\r\n\r\n return indexa - indexb;\r\n });\r\n }\r\n\r\n this.model = model;\r\n if (model)\r\n this.resolveBadges();\r\n },\r\n resolveBadges() {\r\n for (let i = 0; i < this.model.length; i++) {\r\n const m = this.model[i];\r\n this.resolveChildBadges(m, m.ChildMenus);\r\n }\r\n },\r\n resolveChildBadges(menu, children, applytoparent) {\r\n if (menu.MenuItemData && menu.MenuItemData.Badge) {\r\n const badgeinfo = menu.MenuItemData.Badge;\r\n\r\n if (!menu.MenuItemData.badgecontent && badgeinfo.CountURL && (badgeinfo.LookupType == 'URL' || !badgeinfo.LookupType)) {\r\n Vue.set(menu.MenuItemData, 'badgecontent', { $objectId: utils.generateUUID() });\r\n this.lookupBadge(badgeinfo.CountURL, badgeinfo.ToolTip, menu.MenuItemData.badgecontent, applytoparent);\r\n }\r\n else if (!menu.MenuItemData.badgecontent && badgeinfo.LookupType == 'Interpolated' && badgeinfo.InitialCount) {\r\n Vue.set(menu.MenuItemData, 'badgecontent', { $objectId: utils.generateUUID() });\r\n this.interpolateBadge(badgeinfo, menu.MenuItemData.badgecontent, applytoparent);\r\n }\r\n\r\n if (badgeinfo.BadgeEventKey) {\r\n if (!menu.MenuItemData.badgecontent)\r\n Vue.set(menu.MenuItemData, 'badgecontent', { $objectId: utils.generateUUID() });\r\n\r\n this.badgeEventKeys[badgeinfo.BadgeEventKey] = {\r\n menu: menu,\r\n applytoparent: applytoparent,\r\n };\r\n }\r\n }\r\n\r\n if (children)\r\n for (let j = 0; j < children.length; j++) {\r\n const c = children[j];\r\n this.resolveChildBadges(c.item_data, c.children, (item) => {\r\n if (!menu.MenuItemData.badgecontent)\r\n Vue.set(menu.MenuItemData, 'badgecontent', { $objectId: utils.generateUUID() });\r\n\r\n // Save the value associated with the child badge, then add all children to the total for the current node\r\n menu.MenuItemData.badgecontent[`$child_${item.$objectId}`] = item.count || 0;\r\n menu.MenuItemData.badgecontent[`$childtt_${item.$objectId}`] = item.tooltip || [];\r\n\r\n this.combineBadges(menu.MenuItemData.badgecontent, applytoparent);\r\n });\r\n }\r\n },\r\n combineBadges(badgecontent, applytoparent) {\r\n // Total all children\r\n let all = Object.keys(badgecontent).filter(k => k.substr(0, 7) == '$child_').map(a => badgecontent[a]);\r\n let total = (all && all.length > 0) ? all.reduce((a, c) => a + c) : 0;\r\n total = (total || 0) + (badgecontent.input || 0);\r\n\r\n // Combine all child tooltips\r\n let alltt = Object.keys(badgecontent).filter(k => k.substr(0, 9) == '$childtt_').map(a => badgecontent[a]);\r\n let tooltips = (alltt && alltt.length > 0) ? alltt.reduce((a, c) => [...a, ...c]) : [];\r\n\r\n if (badgecontent.input_tooltip && badgecontent.input > 0)\r\n tooltips.push(badgecontent.input_tooltip);\r\n\r\n Vue.set(badgecontent, 'count', total);\r\n Vue.set(badgecontent, 'tooltip', tooltips);\r\n Vue.set(badgecontent, 'showbadge', total > 0 || badgecontent.showbadge || false);\r\n\r\n if (applytoparent)\r\n applytoparent(badgecontent);\r\n },\r\n\r\n interpolateBadge(badgeinfo, item, applytoparent) {\r\n const expn = utils.compile(this, badgeinfo.InitialCount);\r\n const tooltipexpr = utils.compile(this, badgeinfo.ToolTip, false, 'Input');\r\n\r\n let count = utils.evaluate(expn, this);\r\n if (typeof count === 'string')\r\n count = parseInt(count);\r\n\r\n const tooltip = utils.evaluate(tooltipexpr, this, false, null, false, { Count: count });\r\n\r\n Vue.set(item, 'input', count);\r\n Vue.set(item, 'input_tooltip', tooltip);\r\n\r\n this.combineBadges(item, applytoparent);\r\n },\r\n async lookupBadge(url, tooltip, item, applytoparent) {\r\n if (url) {\r\n try {\r\n\r\n const promise = utils.api.get(url);\r\n const tooltipexpr = utils.compile(this, tooltip, false, 'Input');\r\n const res = await promise;\r\n const input = {\r\n Count: (typeof res === 'object' && res && 'Result' in res) ? res.Result : res,\r\n };\r\n\r\n this.badges++;\r\n utils.debug(`lookupBadge(${url}) : ${input.Count}`);\r\n\r\n if (input.Count > 0) {\r\n const value = utils.evaluate(tooltipexpr, this, false, null, false, input);\r\n Vue.set(item, 'input', input.Count);\r\n Vue.set(item, 'input_tooltip', value);\r\n }\r\n else {\r\n Vue.set(item, 'input', 0);\r\n Vue.set(item, 'input_tooltip', null);\r\n }\r\n\r\n this.combineBadges(item, applytoparent);\r\n } catch (err) {\r\n utils.error('BadgeHandler lookupBadge',err);\r\n }\r\n }\r\n },\r\n\r\n async performBadgeAction(action) {\r\n utils.log(`BadgeHandler Badge ${action.ActionData.Key} ${action.ActionData.Type} ${action.ActionData.Value}`);\r\n\r\n if (action.ActionData.Debug && action.ActionData.Debug.BreakPoint) debugger;\r\n\r\n try {\r\n const type = utils.evaluate(action.type, action.context);\r\n const key = utils.evaluate(action.key, action.context);\r\n\r\n const badge = this.badgeEventKeys[key];\r\n if (badge) {\r\n const badgeinfo = badge.menu.MenuItemData.Badge;\r\n switch (type) {\r\n case 'Refresh':\r\n if (badgeinfo && badgeinfo.CountURL && (badgeinfo.LookupType == 'URL' || !badgeinfo.LookupType))\r\n await this.lookupBadge(badgeinfo.CountURL, badgeinfo.ToolTip, badge.menu.MenuItemData.badgecontent, badge.applytoparent);\r\n else if (badgeinfo && badgeinfo.LookupType == 'Interpolated' && badgeinfo.InitialCount)\r\n this.interpolateBadge(badgeinfo, badge.menu.MenuItemData.badgecontent, badge.applytoparent);\r\n break;\r\n\r\n case 'Value':\r\n let value = utils.evaluate(action.value, action.context);\r\n if (typeof value === 'string')\r\n value = parseInt(value);\r\n\r\n if (badge.menu.MenuItemData.badgecontent) {\r\n const tooltipexpr = utils.compile(this, badgeinfo.ToolTip, false, 'Input');\r\n const tooltip = utils.evaluate(tooltipexpr, this, false, null, false, { Count: value });\r\n\r\n badge.menu.MenuItemData.badgecontent.input = value;\r\n badge.menu.MenuItemData.badgecontent.input_tooltip = tooltip;\r\n\r\n this.combineBadges(badge.menu.MenuItemData.badgecontent, badge.applytoparent);\r\n }\r\n break;\r\n }\r\n\r\n try {\r\n await utils.success(action);\r\n } catch (e) { }\r\n }\r\n else\r\n try {\r\n await utils.failure(action, { Error: `Key '${key}' was not found` });\r\n } catch (e) { }\r\n }\r\n catch (e) {\r\n utils.error(`BadgeHandler Badge ${action.ActionData.Key} ${action.ActionData.Type} ${action.ActionData.Value} failed`, e);\r\n\r\n try {\r\n await utils.failure(action, { Error: e.toString() });\r\n } catch (e) { }\r\n }\r\n finally {\r\n try {\r\n await utils.complete(action);\r\n }\r\n catch (e) { }\r\n\r\n // Complete the promise for the executeAction method\r\n action.FinishFunc(true);\r\n }\r\n },\r\n },\r\n props: {\r\n },\r\n render(h) {\r\n return null; //
BadgeHandler {this.badges} badge(s) resolved
;\r\n }\r\n});","import Vue from 'vue';\r\nimport BaseComponent from './BaseComponentMixin.jsx';\r\nimport utils from '../../Shared/utils.jsx';\r\nimport careHelpfulFunctions from '../careHelpfulFunctions.jsx';\r\n\r\n//import VueApexCharts from 'vue-apexcharts'\r\n//Vue.use(VueApexCharts);\r\n//Vue.component('apexchart', VueApexCharts);\r\n\r\nVue.component('bar-chart', {\r\n mixins: [BaseComponent],\r\n components: {\r\n },\r\n data: function () {\r\n return {\r\n tooltipEval: null,\r\n tooltipPlacementEval: null,\r\n disabledEval: null,\r\n objectFitEval: null,\r\n sourcemodel: null,\r\n }\r\n },\r\n created() {\r\n if (this.controlData.SourceType === 'Raw' && this.controlData.SourceRaw) {\r\n this.sourceraw = this.controlData.SourceRaw;\r\n }\r\n else if (this.controlData.SourceType === 'RawInterpolated' && this.controlData.SourceRaw) {\r\n this.sourceraw = utils.compileObject(this, this.controlData.SourceRaw);\r\n }\r\n else if (this.controlData.SourceType === 'URL' && this.controlData.SourceURL) {\r\n this.sourceurl = utils.compile(this, this.controlData.SourceURL);\r\n }\r\n },\r\n //Created Replaced with preRenderComplete\r\n computed: {\r\n style() {\r\n return {\r\n ...utils.resolveStyleHints(this.styleHints, this),\r\n ...this.sizeStyle,\r\n display: 'flex',\r\n flexDirection: 'column',\r\n overflow: \"none\"\r\n };\r\n },\r\n tooltip() {\r\n try {\r\n if (this.tooltipEval === null && this.controlData.Tooltip)\r\n this.tooltipEval = utils.compile(this, this.Translate(this.controlData.Tooltip));\r\n if (this.tooltipEval)\r\n return utils.evaluate(this.tooltipEval, this);\r\n return '';\r\n }\r\n catch (e) {\r\n utils.warn('Tooltip could not evaluate expression: ' + this.controlData.Tooltip + '; ' + e);\r\n return '';\r\n }\r\n },\r\n tooltipPlacement() {\r\n try {\r\n if (this.tooltipPlacementEval === null && this.controlData.TooltipPlacement)\r\n this.tooltipPlacementEval = utils.compile(this, this.controlData.TooltipPlacement);\r\n let placement = '';\r\n if (this.tooltipPlacementEval)\r\n placement = utils.evaluate(this.tooltipPlacementEval, this);\r\n return placement.split('-')[0].toLowerCase() || 'top';\r\n }\r\n catch (e) {\r\n utils.warn('TooltipPlacement could not evaluate expression: ' + this.controlData.TooltipPlacement + '; ' + e);\r\n return '';\r\n }\r\n },\r\n legendPlacement() {\r\n try {\r\n if (this.legendPlacementEval === null && this.controlData.LegendPlacement)\r\n this.legendPlacementEval = utils.compile(this, this.controlData.LegendPlacement);\r\n let placement = '';\r\n if (this.legendPlacementEval)\r\n placement = utils.evaluate(this.legendPlacementEval, this);\r\n return placement.split('-')[0].toLowerCase() || 'top';\r\n }\r\n catch (e) {\r\n utils.warn('Legend Placement could not evaluate expression: ' + this.controlData.LegendPlacement + '; ' + e);\r\n return '';\r\n }\r\n },\r\n color() {\r\n if (!this.color_fn && this.controlData.Color)\r\n this.color_fn = utils.compile(this, this.controlData.Color);\r\n\r\n return this.color_fn ? utils.evaluate(this.color_fn, this) : undefined;\r\n },\r\n value() {\r\n if (!this.value_fn && this.controlData.ValueExpression)\r\n this.value_fn = utils.compileExpression(this, this.controlData.ValueExpression);\r\n\r\n return this.value_fn ? utils.evaluate(this.value_fn, this) : 0;\r\n },\r\n width() {\r\n if (!this.width_fn && this.controlData.WidthExpression)\r\n this.width_fn = utils.compileExpression(this, this.controlData.WidthExpression);\r\n\r\n return this.width_fn ? utils.evaluate(this.width_fn, this) : 0;\r\n },\r\n size() {\r\n if (!this.size_fn && this.controlData.SizeExpression)\r\n this.size_fn = utils.compileExpression(this, this.controlData.SizeExpression);\r\n\r\n return this.size_fn ? utils.evaluate(this.size_fn, this) : 0;\r\n },\r\n rotate() {\r\n if (!this.rotate_fn && this.controlData.RotateExpression)\r\n this.rotate_fn = utils.compileExpression(this, this.controlData.RotateExpression);\r\n\r\n return this.rotate_fn ? utils.evaluate(this.rotate_fn, this) : 0;\r\n },\r\n\r\n title() {\r\n if (this.controlData.Title && !this.title_fn)\r\n this.title_fn = utils.compile(this, this.controlData.Title);\r\n\r\n return this.title_fn ? utils.evaluate(this.title_fn, this) : '';\r\n },\r\n \r\n\r\n sourcerawvalue: function () {\r\n if (this.controlData.SourceType === 'Raw')\r\n return this.sourceraw;\r\n else\r\n return this.sourceraw ? utils.evaluateObject(this.sourceraw, this) : null;\r\n },\r\n sourceurlvalue: function () {\r\n return this.sourceurl ? utils.evaluate(this.sourceurl, this) : '';\r\n },\r\n model: function () {\r\n switch (this.controlData.SourceType) {\r\n case 'Raw':\r\n return this.sourceraw;\r\n\r\n case 'RawInterpolated':\r\n return this.sourceraw ? utils.evaluateObject(this.sourceraw, this) : null;\r\n\r\n case 'URL':\r\n return this.sourcemodel;\r\n\r\n default:\r\n return null;\r\n }\r\n },\r\n labelFormatter: function () {\r\n const self = this;\r\n\r\n return function (val, opts) {\r\n // Causes the actual values to be shown in each pie slice where\r\n // the val parameter is the percentage, which is less useful.\r\n switch (self.controlData.LabelFormat) {\r\n case 'time': return careHelpfulFunctions.durationSecondsAsString(opts.w.config.series[opts.seriesIndex].data[opts.dataPointIndex]);\r\n case 'percentage': return opts.w.config.series[opts.seriesIndex].data[opts.dataPointIndex].toFixed(0) + '%';\r\n case 'label': return self.model.labels[opts.seriesIndex];\r\n case 'value': return opts.w.config.series[opts.seriesIndex].data[opts.dataPointIndex];\r\n case 'label value': return self.model.labels[opts.seriesIndex] + ' ' + opts.w.config.series[opts.seriesIndex].data[opts.dataPointIndex];\r\n case 'series value': return opts.w.config.series[opts.seriesIndex].name + ' ' + opts.w.config.series[opts.seriesIndex].data[opts.dataPointIndex];\r\n case 'series value time': return opts.w.config.series[opts.seriesIndex].name + ' - ' + careHelpfulFunctions.durationSecondsAsString(opts.w.config.series[opts.seriesIndex].data[opts.dataPointIndex]);\r\n case 'none': return '';\r\n }\r\n return opts.w.config.series[opts.seriesIndex].data[opts.dataPointIndex];\r\n };\r\n },\r\n legendFormatter: function () {\r\n const self = this;\r\n\r\n return function (val, opts) {\r\n // Causes the actual values to be shown in each pie slice where\r\n // the val parameter is the percentage, which is less useful.\r\n switch (self.controlData.LegendFormat) {\r\n case 'time': return careHelpfulFunctions.durationSecondsAsString(opts.w.config.series[opts.seriesIndex].data[opts.dataPointIndex]);\r\n case 'percentage': return opts.w.config.series[opts.seriesIndex].data[opts.dataPointIndex].toFixed(0) + '%';\r\n case 'label': return self.model.labels[opts.seriesIndex];\r\n case 'value': return opts.w.config.series[opts.seriesIndex].data[opts.dataPointIndex];\r\n case 'label value': return self.model.labels[opts.seriesIndex] + ' ' + opts.w.config.series[opts.seriesIndex].data[opts.dataPointIndex];\r\n case 'series value': return opts.w.config.series[opts.seriesIndex].name + ' ' + opts.w.config.series[opts.seriesIndex].data[opts.dataPointIndex];\r\n case 'series value time': return opts.w.config.series[opts.seriesIndex].name + ' - ' + careHelpfulFunctions.durationSecondsAsString(opts.w.config.series[opts.seriesIndex].data[0]);\r\n case 'none': return '';\r\n }\r\n return opts.w.config.series[opts.seriesIndex].data[opts.dataPointIndex];\r\n };\r\n },\r\n tooltipFormatter: function () {\r\n const self = this;\r\n\r\n return function (val, opts) {\r\n // Causes the actual values to be shown in each pie slice where\r\n // the val parameter is the percentage, which is less useful.\r\n switch (self.controlData.ToolTipFormat) {\r\n case 'time': return careHelpfulFunctions.durationSecondsAsString(opts.w.config.series[opts.seriesIndex].data[opts.dataPointIndex]);\r\n case 'percentage': return opts.w.config.series[opts.seriesIndex].data[opts.dataPointIndex].toFixed(0) + '%';\r\n case 'label': return self.model.labels[opts.seriesIndex];\r\n case 'value': return opts.w.config.series[opts.seriesIndex].data[opts.dataPointIndex];\r\n case 'label value': return self.model.labels[opts.seriesIndex] + ' ' + opts.w.config.series[opts.seriesIndex].data[opts.dataPointIndex];\r\n case 'series value': return opts.w.config.series[opts.seriesIndex].name + ' ' + opts.w.config.series[opts.seriesIndex].data[opts.dataPointIndex];\r\n case 'series value time': return opts.w.config.series[opts.seriesIndex].name + ' - ' + careHelpfulFunctions.durationSecondsAsString(opts.w.config.series[opts.seriesIndex].data[opts.dataPointIndex]);\r\n case 'none': return '';\r\n }\r\n return opts.w.config.series[opts.seriesIndex].data[opts.dataPointIndex];\r\n };\r\n },\r\n xaxisCategories() {\r\n return this.model.xaxis\r\n },\r\n chartData() {\r\n return this.model.data;\r\n //return [1,2,3,4,5]; // [44, 55, 41, 17, 15];\r\n },\r\n chartOptions() {\r\n return {\r\n title: {\r\n text: this.title,\r\n },\r\n dataLabels: {\r\n enabled: ('DataLabels' in this.controlData) ? this.controlData.DataLabels?.Enabled : true,\r\n formatter: this.labelFormatter,\r\n\r\n },\r\n noData: {\r\n text: this.Translate(this.model.nodata || \"Not Enough Data To Display\"),\r\n align: 'center',\r\n verticalAlign: 'middle',\r\n offsetX: 0,\r\n offsetY: 0,\r\n style: {\r\n color: 'black',\r\n fontSize: '1.2em',\r\n }\r\n },\r\n chart: {\r\n type: 'bar',\r\n stacked: this.controlData.IsStacked,\r\n stackType: this.controlData.StackType || 'normal',\r\n width: '100%',\r\n height: '100%',\r\n toolbar: {\r\n show: this.controlData.ShowToolbar,\r\n },\r\n sparkline: {\r\n enabled: this.controlData.EnableSparkLine\r\n },\r\n parentHeightOffset: 0,\r\n },\r\n colors: this.model.colors,\r\n grid: {\r\n show: false,\r\n padding: {\r\n left: 0,\r\n right: 0\r\n }\r\n },\r\n stroke: {\r\n show: false,\r\n width: 0\r\n },\r\n plotOptions: {\r\n bar: {\r\n horizontal: this.controlData.IsHorizontal,\r\n },\r\n },\r\n xaxis: {\r\n categories: this.xaxisCategories,\r\n \r\n labels: {\r\n show: this.controlData.ShowXAxisLabels,\r\n },\r\n axisBorder: {\r\n show: this.controlData.ShowXAxisLabels,\r\n },\r\n axisTicks: {\r\n show: this.controlData.ShowXAxisLabels,\r\n },\r\n },\r\n yaxis: {\r\n show: this.controlData.ShowYAxisLabels,\r\n axisBorder: {\r\n show: this.controlData.ShowYAxisLabels,\r\n },\r\n axisTicks: {\r\n show: this.controlData.ShowYAxisLabels,\r\n },\r\n },\r\n legend: {\r\n horizontalAlign: this.controlData.LegendPositionAlign || 'left',\r\n offsetX: this.controlData.LegendPositionOffset || 40,\r\n show: this.controlData.LegendPosition != 'none',\r\n position: this.controlData.LegendPosition != 'none' ? (this.controlData.LegendPosition || 'right') : 'right',\r\n formatter: this.legendFormatter,\r\n },\r\n tooltip: {\r\n y: {\r\n formatter: this.tooltipFormatter,\r\n }\r\n }\r\n };\r\n },\r\n },\r\n methods: {\r\n async preRenderComplete() {\r\n this.finishRenderHandler(this);\r\n this.Refresh();\r\n },\r\n async Refresh() {\r\n if (this.controlData.SourceType === 'URL' && this.controlData.SourceURL) {\r\n this.sourcemodel = await utils.api.get(this.sourceurlvalue);\r\n }\r\n },\r\n\r\n getContent(value) {\r\n if (!this.content_fn && this.controlData.Content)\r\n this.content_fn = utils.compile(this, this.controlData.Content, false, 'value');\r\n\r\n return this.content_fn ? utils.evaluate(this.content_fn, this, false, null, false, value) : null;\r\n },\r\n },\r\n render(h) {\r\n if (!this.todisplay || !this.model)\r\n return null;\r\n\r\n try {\r\n let item = (\r\n
\r\n \r\n \r\n
\r\n );\r\n\r\n if (this.tooltip)\r\n item = utils.generateTooltip(h, item, this.tooltip, this.tooltipPlacement);\r\n\r\n return item;\r\n }\r\n catch (e) {\r\n utils.error('BarChart Render failed', e);\r\n return
BarChart Failed to Render {e}
;\r\n }\r\n }\r\n});","import Vue from \"vue\";\r\nimport utils from \"../../Shared/utils.jsx\";\r\nimport BaseComponent from \"./BaseComponentMixin.jsx\";\r\nimport \"./css/BasicButton.css\";\r\n\r\nVue.component(\"basic-button\", {\r\n mixins: [BaseComponent],\r\n data: function() {\r\n return {\r\n iconrenderer: null,\r\n iconpositioner: null,\r\n icongapeval: null,\r\n iconStyleEval: null,\r\n flipHorizontallyEval: null,\r\n flipVerticallyEval: null,\r\n borderEval: null,\r\n animationEval: null,\r\n colorEval: null,\r\n cssClassEval: null,\r\n tooltiprenderer: null,\r\n tooltipLocationEval: null,\r\n isDefaultEval: null,\r\n isdisabledeval: null,\r\n stopPropagationEval: null,\r\n isdisabledfailed: 1,\r\n isActive: false,\r\n\r\n form_changed_indicator: null,\r\n };\r\n },\r\n props: {},\r\n created() {\r\n if (this.controlData.HeaderControlType) {\r\n switch (this.controlData.HeaderControlType) {\r\n case \"SaveButton\":\r\n if (!this.controlData.Text)\r\n this.controlData.Text = \"Save\";\r\n this.controlData.Color = \"primary\";\r\n\r\n // Scan the parent hierarchy for a variable named $$form_changed_indicator, if found, associate the enabled value\r\n let p = this.$parent;\r\n while (p && !('cc_form_changed_indicator' in p))\r\n p = p.$parent;\r\n\r\n if (p) {\r\n p.cc_form_changed_active = true;\r\n p.cc_form_changed_button = this;\r\n this.form_changed_indicator = () => p.formChangedIndicator;\r\n }\r\n break;\r\n\r\n case \"RemoveButton\":\r\n if (!this.controlData.Text)\r\n this.controlData.Text = \"Remove\";\r\n this.controlData.Color = \"danger\";\r\n break;\r\n\r\n case \"NewButton\":\r\n if (!this.controlData.Text)\r\n this.controlData.Text = \"New\";\r\n break;\r\n\r\n case \"CloneButton\":\r\n if (!this.controlData.Text)\r\n this.controlData.Text = \"Save as New\";\r\n break;\r\n\r\n case \"WizardButton\":\r\n if (!this.controlData.Text)\r\n this.controlData.Text = \"Wizard\";\r\n break;\r\n\r\n case \"EditButton\":\r\n if (!this.controlData.Text)\r\n this.controlData.Text = \"Edit\";\r\n break;\r\n\r\n case \"ExternalLinkButton\":\r\n if (!this.controlData.Text)\r\n this.controlData.Text = \"New Tab\";\r\n break;\r\n }\r\n }\r\n },\r\n //Mounted Replaced with preRenderComplete\r\n computed: {\r\n IsActive: {\r\n get() {\r\n return this.isActive;\r\n },\r\n set(value) {\r\n this.isActive = value;\r\n }\r\n },\r\n text() {\r\n if (this.controlData.Text) return this.controlData.Text;\r\n else return \"\";\r\n },\r\n icon() {\r\n try {\r\n if (this.iconrenderer === null) this.iconrenderer = utils.compile(this, this.controlData.Icon);\r\n let icon = utils.evaluate(this.iconrenderer, this);\r\n\r\n if (icon && this.iconStyle === \"mdi\" && !icon.startsWith(\"mdi-\")) icon = `mdi-${icon}`;\r\n\r\n return icon;\r\n } catch (e) {\r\n utils.warn(\"Icon could not evaluate expression: \" + this.controlData.IconStyle + \"; \" + e);\r\n return \"\";\r\n }\r\n },\r\n iconStyle() {\r\n try {\r\n if (this.iconStyleEval === null && this.controlData.IconStyle)\r\n this.iconStyleEval = utils.compile(this, this.controlData.IconStyle);\r\n if (this.iconStyleEval) return utils.evaluate(this.iconStyleEval, this);\r\n return \"mdi\";\r\n } catch (e) {\r\n utils.warn(\"IconStyle could not evaluate expression: \" + this.controlData.IconStyle + \"; \" + e);\r\n return \"mdi\";\r\n }\r\n },\r\n iconPosition() {\r\n try {\r\n if (this.iconpositioner === null && this.controlData.IconPosition)\r\n this.iconpositioner = utils.compile(this, this.controlData.IconPosition);\r\n if (this.iconpositioner) return utils.evaluate(this.iconpositioner, this);\r\n return \"right\";\r\n } catch (e) {\r\n utils.warn(\"IconPosition could not evaluate expression: \" + this.controlData.IconPosition + \"; \" + e);\r\n return \"\";\r\n }\r\n },\r\n iconGap() {\r\n try {\r\n if (this.icongapeval === null && this.controlData.IconGap)\r\n this.icongapeval = utils.compile(this, this.controlData.IconGap);\r\n if (this.icongapeval) return utils.evaluate(this.icongapeval, this);\r\n return 10;\r\n } catch (e) {\r\n utils.warn(\"IconGap could not evaluate expression: \" + this.controlData.IconGap + \"; \" + e);\r\n return 10;\r\n }\r\n },\r\n flipHorizontally() {\r\n try {\r\n if (this.flipHorizontallyEval === null && this.controlData.FlipHorizontally)\r\n this.flipHorizontallyEval = utils.compile(this, this.controlData.FlipHorizontally);\r\n if (this.flipHorizontallyEval) return utils.evaluate(this.flipHorizontallyEval, this);\r\n return false;\r\n } catch (e) {\r\n utils.warn(\r\n \"flipHorizontally could not evaluate expression: \" + this.controlData.FlipHorizontally + \"; \" + e\r\n );\r\n return false;\r\n }\r\n },\r\n flipVertically() {\r\n try {\r\n if (this.flipVerticallyEval === null && this.controlData.flipVertically)\r\n this.flipVerticallyEval = utils.compile(this, this.controlData.flipVertically);\r\n if (this.flipVerticallyEval) return utils.evaluate(this.flipVerticallyEval, this);\r\n return false;\r\n } catch (e) {\r\n utils.warn(\r\n \"flipVertically could not evaluate expression: \" + this.controlData.flipVertically + \"; \" + e\r\n );\r\n return false;\r\n }\r\n },\r\n border() {\r\n try {\r\n if (this.borderEval === null && this.controlData.Border)\r\n this.borderEval = utils.compile(this, this.controlData.Border);\r\n if (this.borderEval) return utils.evaluate(this.borderEval, this);\r\n return false;\r\n } catch (e) {\r\n utils.warn(\"border could not evaluate expression: \" + this.controlData.Border + \"; \" + e);\r\n return false;\r\n }\r\n },\r\n animation() {\r\n try {\r\n if (this.animationEval === null && this.controlData.Animation)\r\n this.animationEval = utils.compile(this, this.controlData.Animation);\r\n if (this.animationEval) return utils.evaluate(this.animationEval, this);\r\n return \"None\";\r\n } catch (e) {\r\n utils.warn(\"animation could not evaluate expression: \" + this.controlData.Animation + \"; \" + e);\r\n return \"None\";\r\n }\r\n },\r\n color() {\r\n try {\r\n let theColor = \"secondary\";\r\n if (this.colorEval === null && this.controlData.Color)\r\n this.colorEval = utils.compile(this, this.controlData.Color);\r\n if (this.colorEval) theColor = utils.evaluate(this.colorEval, this);\r\n\r\n if (this.isOutlined && theColor) theColor = theColor.replace(\"outline-\", \"\");\r\n else theColor = theColor || \"secondary\";\r\n // This helps with backwards compatibility for a version of Bootstrap that used the word 'default' to describe the secondary button\r\n if (theColor === \"default\") return \"secondary\";\r\n else if (theColor === \"danger\") return \"error\";\r\n return theColor;\r\n } catch (e) {\r\n utils.warn(\"color could not evaluate expression: \" + this.controlData.Color + \"; \" + e);\r\n return \"secondary\";\r\n }\r\n },\r\n cssClass() {\r\n try {\r\n if (this.cssClassEval === null && this.controlData.CssClass)\r\n this.cssClassEval = utils.compile(this, this.controlData.CssClass);\r\n if (this.cssClassEval) return utils.evaluate(this.cssClassEval, this);\r\n return \"\";\r\n } catch (e) {\r\n utils.warn(\"cssClass could not evaluate expression: \" + this.controlData.CssClass + \"; \" + e);\r\n return \"\";\r\n }\r\n },\r\n tooltip() {\r\n try {\r\n if (this.tooltiprenderer === null && this.controlData.Tooltip)\r\n this.tooltiprenderer = utils.compile(this, this.Translate(this.controlData.Tooltip));\r\n if (this.tooltiprenderer) {\r\n return utils.evaluate(this.tooltiprenderer, this);\r\n }\r\n return \"\";\r\n } catch (e) {\r\n utils.warn(\"tooltip could not evaluate expression: \" + this.controlData.Tooltip + \"; \" + e);\r\n return \"\";\r\n }\r\n },\r\n tooltipLocation() {\r\n try {\r\n let location = \"\";\r\n if (this.tooltipLocationEval === null && this.controlData.TooltipLocation)\r\n this.tooltipLocationEval = utils.compile(this, this.controlData.TooltipLocation);\r\n if (this.tooltipLocationEval) location = utils.evaluate(this.tooltipLocationEval, this);\r\n\r\n return location.split(\"-\")[0].toLowerCase() || \"top\";\r\n } catch (e) {\r\n utils.warn(\r\n \"tooltipLocation could not evaluate expression: \" + this.controlData.TooltipLocation + \"; \" + e\r\n );\r\n return \"top\";\r\n }\r\n },\r\n isDefault() {\r\n try {\r\n if (this.isDefaultEval === null && this.controlData.IsDefault)\r\n this.isDefaultEval = utils.compile(this, this.controlData.IsDefault);\r\n if (this.isDefaultEval) return utils.evaluate(this.isDefaultEval, this);\r\n return false;\r\n } catch (e) {\r\n utils.warn(\"Icon could not evaluate expression: \" + this.controlData.IsDefault + \"; \" + e);\r\n return false;\r\n }\r\n },\r\n isdisabled() {\r\n try {\r\n if (this.form_changed_indicator)\r\n return !this.form_changed_indicator();\r\n\r\n if (this.isdisabledeval === null && this.controlData.IsDisabled)\r\n this.isdisabledeval = utils.compile(this, this.controlData.IsDisabled);\r\n\r\n if (this.isdisabledeval) {\r\n const res = utils.evaluate(this.isdisabledeval, this, false, () => {\r\n // This is a callback that will only be called if evaluate throws an exception.\r\n // If this happens, we read the isdisabledfailed (so Vue knows we care) and then\r\n // after 100ms, we update isdisabledfailed to cause Vue to re-evaluate todisplay.\r\n // (cap the retry at 10 times with increasing delay each attempt)\r\n if (this.isdisabledfailed >= 0 && this.isdisabledfailed < 10)\r\n setTimeout(() => this.isdisabledfailed++, 50 * this.isdisabledfailed);\r\n });\r\n\r\n return JSON.parse(res);\r\n }\r\n return false;\r\n } catch (e) {\r\n utils.warn(\"isdisabled could not evaluate expression: \" + this.controlData.IsDisabled + \"; \" + e);\r\n return false;\r\n }\r\n },\r\n stopPropagation() {\r\n try {\r\n if (this.stopPropagationEval === null && this.controlData.StopPropagation)\r\n this.stopPropagationEval = utils.compile(this, this.controlData.StopPropagation);\r\n if (this.stopPropagationEval) return utils.evaluate(this.stopPropagationEval, this);\r\n return false;\r\n } catch (e) {\r\n utils.warn(\r\n \"stopPropagation could not evaluate expression: \" + this.controlData.StopPropagation + \"; \" + e\r\n );\r\n return false;\r\n }\r\n },\r\n styles() {\r\n return {\r\n ...this.sizeStyle,\r\n overflow: \"hidden\",\r\n whiteSpace: \"nowrap\",\r\n ...utils.resolveStyleHints(this.styleHints, this),\r\n };\r\n },\r\n isOutlined() {\r\n return this.controlData.Color && this.controlData.Color.startsWith(\"outline-\");\r\n },\r\n buttonClasses() {\r\n let classes = {\r\n ThemeRightConnector: this.themes.rightConnector,\r\n ThemeLeftConnector: this.themes.leftConnector,\r\n };\r\n\r\n classes[this.cssClass] = true;\r\n return classes;\r\n },\r\n buttonStyles() {\r\n const styles = {};\r\n\r\n if (this.controlData.StyleHints && this.controlData.StyleHints.TextAlign)\r\n switch (this.controlData.StyleHints.TextAlign) {\r\n case 'Left':\r\n styles['justify-content'] = 'left';\r\n break;\r\n\r\n case 'Center':\r\n styles['justify-content'] = 'center';\r\n break;\r\n\r\n case 'Right':\r\n styles['justify-content'] = 'right';\r\n break;\r\n }\r\n else if (this.controlData.StyleHints && this.controlData.StyleHints.JustifyContent)\r\n styles['justify-content'] = this.controlData.StyleHints.JustifyContent;\r\n\r\n return styles;\r\n },\r\n iconClasses() {\r\n return {\r\n \"mdi mdi-flip-vertical\": this.flipVertically,\r\n \"mdi mdi-flip-horizontal\": this.flipHorizontally,\r\n \"mdi mdi-border-all-variant\": this.border,\r\n \"mdi-animate-spin\": this.animation === \"Spin\",\r\n \"mdi-animate-pulse\": this.animation === \"Pulse\",\r\n };\r\n },\r\n themes() {\r\n return {\r\n flat: this.controlData.Themes\r\n ? this.controlData.Themes.includes(\"Flat\") ||\r\n this.controlData.Themes.includes(\"FlatWhite\") ||\r\n this.controlData.Themes.includes(\"Transparent\")\r\n : false,\r\n small: this.controlData.Themes\r\n ? this.controlData.Themes.includes(\"Condensed\") ||\r\n this.controlData.Themes.includes(\"CondensedBordered\")\r\n : false,\r\n condensedBordered: this.controlData.Themes\r\n ? this.controlData.Themes.includes(\"CondensedBordered\")\r\n : false,\r\n transparent: this.controlData.Themes\r\n ? this.controlData.Themes.includes(\"Transparent\") || this.controlData.Themes.includes(\"Condensed\")\r\n : false,\r\n leftConnector: this.controlData.Themes ? this.controlData.Themes.includes(\"LeftConnector\") : false,\r\n rightConnector: this.controlData.Themes ? this.controlData.Themes.includes(\"RightConnector\") : false,\r\n fab: this.controlData.Themes ? this.controlData.Themes.includes(\"FloatingAction\") : false,\r\n };\r\n },\r\n },\r\n methods: {\r\n async doClick(e) {\r\n e.cancelBubble = true;\r\n if (this.stopPropagation) e.stopPropagation();\r\n\r\n await utils.executeAndCompileAllActions(this.controlData.Actions, null, this);\r\n },\r\n preRenderComplete() {\r\n this.finishRenderHandler(this);\r\n },\r\n ToggleIsActive() {\r\n this.isActive = !this.isActive;\r\n }\r\n },\r\n render(h) {\r\n try {\r\n if (!this.todisplay) return null;\r\n\r\n let content = [];\r\n\r\n if (this.text && this.icon) {\r\n if (this.iconPosition === \"Left\")\r\n content.push(\r\n \r\n {this.icon}\r\n \r\n );\r\n content.push();\r\n if (!this.iconPosition || this.iconPosition === \"Right\")\r\n content.push(\r\n \r\n {this.icon}\r\n \r\n );\r\n } else if (this.text)\r\n content.push();\r\n else if (this.icon) {\r\n if (this.styles.color)\r\n content.push(\r\n \r\n {this.icon}\r\n \r\n );\r\n else\r\n content.push(\r\n \r\n {this.icon}\r\n \r\n );\r\n }\r\n\r\n //get sizes\r\n let width, height, minWidth, minHeight, maxWidth, maxHeight;\r\n\r\n if (this.themes.small && !this.text){\r\n width = \"32px\"; //custom size in place of the small vuetify option\r\n height = \"32px\";\r\n }\r\n\r\n if (this.sizeOptions && this.sizeOptions.Width) {\r\n if (this.sizeOptions.Width.Mode === \"Fixed\")\r\n width = `${this.sizeOptions.Width.Value}${this.sizeOptions.Width.Units == \"Percent\" ? \"%\" : this.sizeOptions.Width.Units == \"Em\" ? \"em\" : \"px\"}`;\r\n\r\n if (this.sizeOptions.Width.Min)\r\n minWidth = `${this.sizeOptions.Width.Min}${this.sizeOptions.Width.MinUnits == \"Percent\" ? \"%\" : this.sizeOptions.Width.MinUnits == \"Em\" ? \"em\" : \"px\"}`;\r\n\r\n if (this.sizeOptions.Width.Max)\r\n maxWidth = `${this.sizeOptions.Width.Max}${this.sizeOptions.Width.MaxUnits == \"Percent\" ? \"%\" : this.sizeOptions.Width.MaxUnits == \"Em\" ? \"em\" : \"px\"}`;\r\n }\r\n\r\n if (this.sizeOptions && this.sizeOptions.Height) {\r\n if (this.sizeOptions.Height.Mode === \"Fixed\")\r\n height = `${this.sizeOptions.Height.Value}${this.sizeOptions.Height.Units == \"Percent\" ? \"%\" : this.sizeOptions.Height.Units == \"Em\" ? \"em\" : \"px\"}`;\r\n\r\n if (this.sizeOptions.Height.Min)\r\n minHeight = `${this.sizeOptions.Height.Min}${this.sizeOptions.Height.MinUnits == \"Percent\" ? \"%\" : this.sizeOptions.Height.MinUnits == \"Em\" ? \"em\" : \"px\"}`;\r\n\r\n if (this.sizeOptions.Height.Max)\r\n maxHeight = `${this.sizeOptions.Height.Max}${this.sizeOptions.Height.MaxUnits == \"Percent\" ? \"%\" : this.sizeOptions.Height.MaxUnits == \"Em\" ? \"em\" : \"px\"}`;\r\n }\r\n\r\n let button = (\r\n this.doClick(e)}\r\n type=\"button\"\r\n disabled={this.isdisabled == \"true\" || this.isdisabled == true}\r\n is-default={this.isDefault}\r\n block={this.sizeOptions && this.sizeOptions.Width && this.sizeOptions.Width.Mode === \"Fill\"}\r\n min-width={minWidth}\r\n max-width={maxWidth}\r\n min-height={minHeight}\r\n max-height={maxHeight}\r\n width={width}\r\n height={height}\r\n elevation={0}\r\n >\r\n {content}\r\n \r\n );\r\n\r\n let finalContent = utils.generateTooltip(h, button, this.tooltip, this.tooltipLocation);\r\n\r\n return (\r\n \r\n {finalContent}\r\n \r\n );\r\n } catch (e) {\r\n utils.error(\"BasicButton Render failed\", e);\r\n return
Button Failed to Render {e}
;\r\n }\r\n },\r\n});\r\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('form',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.isvisible),expression:\"isvisible\"}],class:_vm.classes,attrs:{\"enctype\":\"multipart/form-data\",\"novalidate\":\"\"}},[_c('v-file-input',{staticClass:\"input-file ma-1\",attrs:{\"type\":\"file\",\"outlined\":\"\",\"dense\":\"\",\"show-size\":\"\",\"hint\":_vm.tooltip,\"persistent-hint\":\"\",\"placeholder\":_vm.Translate(_vm.labelText),\"prepend-icon\":\"\",\"prepend-inner-icon\":\"mdi-cloud-upload-outline\",\"error-messages\":_vm.errors,\"success-messages\":_vm.successes,\"loading\":_vm.isSaving,\"multiple\":_vm.multiple,\"disabled\":_vm.isSaving,\"accept\":_vm.aceptTypes},on:{\"change\":_vm.filesChange},scopedSlots:_vm._u([{key:\"selection\",fn:function({ index, text }){return [(index < 2)?_c('v-chip',{attrs:{\"color\":\"deep-purple accent-4\",\"dark\":\"\",\"label\":\"\",\"small\":\"\"}},[_vm._v(\" \"+_vm._s(text)+\" \")]):(index === 2)?_c('span',{staticClass:\"text-overline grey--text text--darken-3 mx-2\"},[_vm._v(\" +\"+_vm._s(_vm.files.length - 2)+\" File(s) \")]):_vm._e()]}},(_vm.files.length > 0)?{key:\"append-outer\",fn:function(){return [_c('v-tooltip',{attrs:{\"bottom\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on, attrs }){return [_c('v-btn',_vm._g(_vm._b({attrs:{\"elevation\":\"0\",\"small\":\"\",\"icon\":\"\"},on:{\"click\":_vm.doUpload}},'v-btn',attrs,false),on),[_c('v-icon',{staticClass:\"blink-text\",attrs:{\"color\":\"pink\"}},[_vm._v(\"mdi-folder-upload-outline\")])],1)]}}],null,false,3306183530)},[_c('span',[_vm._v(\"Upload Now\")])])]},proxy:true}:null],null,true),model:{value:(_vm.files),callback:function ($$v) {_vm.files=$$v},expression:\"files\"}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\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/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BasicFileUpload.vue?vue&type=script&lang=js&\"; 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/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BasicFileUpload.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./BasicFileUpload.vue?vue&type=template&id=961ce046&scoped=true&v-if=todisplay&\"\nimport script from \"./BasicFileUpload.vue?vue&type=script&lang=js&\"\nexport * from \"./BasicFileUpload.vue?vue&type=script&lang=js&\"\nimport style0 from \"./BasicFileUpload.vue?vue&type=style&index=0&id=961ce046&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 \"961ce046\",\n null\n \n)\n\nexport default component.exports","import Vue from 'vue';\r\nimport utils from '../../../Shared/utils.jsx';\r\nimport methods from '../../../Shared/methods';\r\nimport filters from '../../../Shared/filters';\r\nimport computed from '../../../Shared/computed';\r\n\r\nconst baseFormMixin = {\r\n data: () => ({\r\n readfunc: null,\r\n writefunc: null,\r\n saved_watches: [],\r\n }),\r\n props: {\r\n xxname: '',\r\n root: null,\r\n form: null,\r\n element: null,\r\n cmodel: null,\r\n modelkey: null,\r\n condensed: false,\r\n depth: 0,\r\n appearance: null,\r\n layouttype: null,\r\n type: null,\r\n array_index: null,\r\n noinput: null,\r\n labelText: null,\r\n hintText: null,\r\n autofocus: false,\r\n notitle: false,\r\n schema: null,\r\n scopeitems: null,\r\n controlscope: null,\r\n directives: null\r\n },\r\n created() {\r\n if (this.element && this.element.key) {\r\n this.readfunc = utils.forms.getModelElementReader(this.element.key, this.modelkey);\r\n this.writefunc = utils.forms.getModelElementWriter(this.element.key, this.modelkey);\r\n\r\n // Make another reader to return the parent\r\n if (this.element.key.length <= 1)\r\n this.readparentfunc = { func: (model) => model, code: '(model) => model' };\r\n else {\r\n // Trim off the last element to refer to the parent\r\n const keys = this.element.key.slice(0, this.element.key.length - 1);\r\n this.readparentfunc = utils.forms.getModelElementReader(keys, this.modelkey);\r\n }\r\n\r\n //utils.debug(` +++ +++ +++ Schema element ${this.name} created, govisible() to populate default data`);\r\n this.govisible();\r\n\r\n // Wire up any events on model values according to the schema definition.\r\n // Consideration: would this be a problem if the same field was in the form more than once?\r\n // Should we try and account for this? Seems difficult at best. We could setup all watches\r\n // at a higher level so we only wired up one per member. Something to consider (5/29/2021 DP)\r\n if (this.element.schema && this.element.schema.events) {\r\n for (let i = 0; i < this.element.schema.events.length; i++) {\r\n const e = this.element.schema.events[i];\r\n switch (e.EventType) {\r\n case 'OnChange':\r\n utils.debug(`Created ${this.name} with watch on change`);\r\n\r\n const w = this.$watch(\r\n function () {\r\n return this.itemvalue;\r\n },\r\n function (newvalue, old) {\r\n utils.debug(`* * * schema OnChange field: ${this.element.key.join('.')}: from ${old} to ${newvalue} firing actions * * *`);\r\n utils.executeAndCompileAllActions(\r\n e.Actions,\r\n {\r\n ...this.OnChangeData,\r\n FormModel: this.cmodel,\r\n ParentModel: this.ParentModel,\r\n OldValue: old,\r\n NewValue: newvalue,\r\n Value: newvalue,\r\n },\r\n this);\r\n }\r\n );\r\n this.saved_watches.push({ $watcher: w, event: e });\r\n break;\r\n }\r\n }\r\n }\r\n\r\n \r\n\r\n // For schema validation (can't use the watch property, the items get evaluated before the create() method runs):\r\n if (this.element.schema) {\r\n const w = this.$watch(function () { return this.itemvalue; }, this.validateField);\r\n this.saved_watches.push({ $watcher: w });\r\n }\r\n }\r\n else\r\n this.readfunc = { func: (model) => model, code: '(model) => model' };\r\n },\r\n async mounted() {\r\n //for (let i = 0; i < this.saved_watches.length; i++) {\r\n // const w = this.saved_watches[i];\r\n // if (w.event && w.event.RunActionsInitially)\r\n // await utils.executeAndCompileAllActions(w.event.Actions, {\r\n // ...this.OnChangeData,\r\n // FormModel: this.cmodel,\r\n // ParentModel: this.ParentModel,\r\n // OldValue: this.itemvalue,\r\n // NewValue: this.itemvalue,\r\n // Value: this.itemvalue,\r\n // }, this);\r\n //}\r\n },\r\n beforeDestroy() {\r\n utils.debug(`beforeDestroy ${this.name} with ${this.saved_watches.length} watches`);\r\n\r\n //this.gohidden();\r\n },\r\n destroyed() {\r\n utils.debug(`Destroyed ${this.name} with ${this.saved_watches.length} watches`);\r\n\r\n // dispose of the watchers\r\n for (let i = 0; i < this.saved_watches; i++)\r\n this.saved_watches[i].$watcher;\r\n },\r\n computed: {\r\n ...computed,\r\n autofocus_id: function () {\r\n if (this.element) {\r\n if (!this.element.$uniqueId)\r\n this.element.$uniqueId = utils.generateUUID();\r\n\r\n return this.element.$uniqueId;\r\n }\r\n else\r\n return undefined;\r\n },\r\n rules: function () {\r\n const r = [];\r\n\r\n if (this.element && this.element.schema)\r\n // Return a function that performs the schema validation on the current field value (v)\r\n r.push(v => {\r\n const errors = utils.schema.performValidation(this.element.schema, v);\r\n\r\n // There may be multiple errors, but the validation line below the field can only show one at a time, just return the first\r\n return errors.length > 0 ? errors[0].error : true;\r\n });\r\n\r\n if (this.element && this.element.required)\r\n r.push(v => {\r\n if (v === null || v === undefined || v === '')\r\n return 'Required';\r\n else\r\n return true;\r\n });\r\n\r\n return r;\r\n },\r\n itemvalue: function () {\r\n try {\r\n if (!this.readfunc && this.element)\r\n this.readfunc = utils.forms.getModelElementReader(this.element.key, this.modelkey);\r\n\r\n if (this.readfunc)\r\n return this.readfunc.func(this.cmodel);\r\n else\r\n return null;\r\n }\r\n catch (e) {\r\n utils.warn(`Failed to evaluate readfunc in ${this.name}: ${(this.readfunc ? this.readfunc.code : '-no code-')}`, e);\r\n }\r\n },\r\n name: function () {\r\n // Use the key array to derive a name\r\n let name = '';\r\n if (this.element && this.element.key && Array.isArray(this.element.key) && this.element.key.length > 0) {\r\n name = this.element.key[0];\r\n for (let i = 1; i < this.element.key.length; i++) {\r\n if (this.element.key[i] != '[]')\r\n name += '.';\r\n\r\n name += this.element.key[i];\r\n }\r\n }\r\n return name;\r\n },\r\n Title: function () {\r\n if (this.element.title)\r\n return this.element.title;\r\n else if (this.element.key) {\r\n let title = this.element.key[this.element.key.length - 1];\r\n if (title == '[]' && this.element.key.length > 1)\r\n title = this.element.key[this.element.key.length - 2];\r\n return title;\r\n }\r\n else\r\n return null;\r\n },\r\n FieldValue: function () {\r\n return this.itemvalue;\r\n },\r\n Value: function () {\r\n return this.itemvalue;\r\n },\r\n ArrayIndex: function () {\r\n let p = this;\r\n while (p && (!('array_index' in p) || (typeof p.array_index === 'undefined'))) {\r\n p = p.$parent;\r\n }\r\n\r\n if (p)\r\n return p.array_index;\r\n else\r\n return -1;\r\n },\r\n FormModel: function () {\r\n return this.cmodel;\r\n },\r\n ParentModel: function () {\r\n try {\r\n if (this.readparentfunc)\r\n {\r\n //utils.forms.insureModelPath(this.cmodel, this.element, this.schema);\r\n return this.readparentfunc.func(this.cmodel);\r\n }\r\n else\r\n return null;\r\n }\r\n catch (e) {\r\n utils.warn(`Failed to evaluate ${this.name} readparentfunc: ${this.readparentfunc ? this.readparentfunc.code : 'N/A'}`, e);\r\n return null;\r\n }\r\n },\r\n OnChangeData: function () {\r\n return {};\r\n },\r\n OnRenderData: function () {\r\n return {};\r\n },\r\n IsVisible: function () {\r\n // This walks up the parent hierarchy checking the condition property to see if this field is visible.\r\n // This is mainly used by the OnChange event handler to insure we do not fire OnChange events if the\r\n // form field is hidden.\r\n let p = this;\r\n while (p) {\r\n if (('condition' in p && !p.condition) || ('todisplay' in p && !p.todisplay))\r\n return false;\r\n\r\n p = p.$parent;\r\n }\r\n return true;\r\n },\r\n },\r\n methods: {\r\n ...methods,\r\n ...filters,\r\n async loadComplete() {\r\n for (let i = 0; i < this.saved_watches.length; i++) {\r\n const w = this.saved_watches[i];\r\n if (w.event && w.event.RunActionsInitially)\r\n await utils.executeAndCompileAllActions(w.event.Actions, {\r\n ...this.OnChangeData,\r\n FormModel: this.cmodel,\r\n ParentModel: this.ParentModel,\r\n OldValue: this.itemvalue,\r\n NewValue: this.itemvalue,\r\n Value: this.itemvalue,\r\n }, this);\r\n }\r\n\r\n if (this.element.schema && this.element.schema.watches) {\r\n for (let i = 0; i < this.element.schema.watches.length; i++) {\r\n const watch = this.element.schema.watches[i];\r\n if (watch.WatchedField) {\r\n const func = utils.compileExpression(this, watch.WatchedField);\r\n\r\n const w = this.$watch(\r\n function () {\r\n return utils.evaluate(func, this);\r\n },\r\n function (newvalue, old) {\r\n utils.executeAndCompileAllActions(\r\n watch.Actions,\r\n {\r\n ...this.OnChangeData,\r\n FormModel: this.cmodel,\r\n ParentModel: this.ParentModel,\r\n OldValue: old,\r\n NewValue: newvalue,\r\n Value: newvalue,\r\n WatchedValue: newvalue,\r\n Schema: this.element.schema,\r\n },\r\n this);\r\n },\r\n {\r\n immediate: watch.RunActionsInitially\r\n }\r\n );\r\n this.saved_watches.push({ $watcher: w, watch: watch });\r\n }\r\n }\r\n }\r\n\r\n if (this.element.schema && this.element.schema.events) {\r\n for (let i = 0; i < this.element.schema.events.length; i++) {\r\n const e = this.element.schema.events[i];\r\n switch (e.EventType) {\r\n case 'OnRender':\r\n utils.executeAndCompileAllActions(\r\n e.Actions,\r\n {\r\n ...this.OnRenderData,\r\n FormModel: this.cmodel,\r\n ParentModel: this.ParentModel,\r\n },\r\n this);\r\n break;\r\n }\r\n }\r\n }\r\n },\r\n validateField() {\r\n if (this.$refs.form)\r\n // This causes the rules to be evaluated (see rules method above)\r\n this.$refs.form.validate();\r\n },\r\n getElementName(element) {\r\n // Use the key array to derive a name\r\n let name = '';\r\n if (element.key && Array.isArray(element.key) && element.key.length > 0) {\r\n name = element.key[0];\r\n for (let i = 1; i < element.key.length; i++) {\r\n if (element.key[i] != '[]')\r\n name += '.';\r\n\r\n name += element.key[i];\r\n }\r\n }\r\n return name;\r\n },\r\n sync(value) {\r\n try {\r\n //utils.debug(`+++ ${this.name} ${this.getElementName(this.element)} sync(${typeof value === 'object' ? JSON.stringify(value0) : value})`);\r\n this.writefunc.func(this.cmodel, value, Vue);\r\n }\r\n catch (e) {\r\n utils.warn('Failed to evaluate writefunc: ' + this.writefunc.code, e);\r\n }\r\n },\r\n\r\n resolveDefault(o) {\r\n if (typeof o.default === 'string' && (o.default.includes('{{' || o.default.includes('{*')))) {\r\n o.$$default = utils.compile(this, o.default);\r\n }\r\n return o.$$default ? utils.evaluate(o.$$default, this) : o.default;\r\n\r\n },\r\n govisible() {\r\n //if (this.element.schema) {\r\n // const value = utils.schema.getDefaultModel(this.element.schema);\r\n\r\n // utils.debug(` +++ Schema element ${this.name} going visible - setting field to ${JSON.stringify(value)}`);\r\n\r\n // this.writefunc.func(this.cmodel, value, Vue);\r\n //}\r\n if (!this.ParentModel) {\r\n //utils.debug(` +++ Schema element ${this.name} has no ParentModel (undefined)`);\r\n return;\r\n }\r\n\r\n // Fill in default value if not already populated\r\n const last = this.element.key[this.element.key.length - 1];\r\n if (last != '[]' && !(last in this.ParentModel)) {\r\n //const oldvalue = this.readfunc.func(this.cmodel);\r\n\r\n if ('default' in this.element) {\r\n //utils.debug(` +++ Schema element ${this.name} going visible - setting field ${last} to ${this.element.default}`);\r\n \r\n const value = this.resolveDefault(this.element);\r\n this.writefunc.func(this.cmodel, value, Vue); // this.element.default, Vue);\r\n }\r\n else if (this.element.schema && ('default' in this.element.schema)) {\r\n //utils.debug(` +++ Schema element ${this.name} going visible - setting field ${last} to ${this.element.schema.default}`);\r\n const value = this.resolveDefault(this.element.schema);\r\n this.writefunc.func(this.cmodel, value, Vue); // this.element.schema.default, Vue);\r\n }\r\n else if (this.element.schema && this.element.schema.type == 'object') {\r\n //utils.debug(` +++ Schema element ${this.name} going visible - setting field ${last} to {}`);\r\n this.writefunc.func(this.cmodel, {}, Vue);\r\n }\r\n else if (this.element.schema && this.element.schema.type == 'array') {\r\n //utils.debug(` +++ Schema element ${this.name} going visible - setting field ${last} to []`);\r\n this.writefunc.func(this.cmodel, [], Vue);\r\n }\r\n //else\r\n // utils.debug(` +++ Schema element ${this.name} going visible - no default, doing nothing (type: ${this.element.schema ? this.element.schema.type : 'unknown'})`);\r\n }\r\n //else\r\n // utils.debug(` +++ Schema element ${this.name} going visible, doing nothing (already set or is [] : ${last})`);\r\n },\r\n gohidden() {\r\n //this.writefunc.func(this.cmodel, null, Vue);\r\n\r\n // Fill in default value if not already populated\r\n const last = this.element.key[this.element.key.length - 1];\r\n if (last != '[]' && (last in this.ParentModel)) {\r\n //utils.debug(` +++ Schema element ${this.name} going hidden - removing ${last} from ParentModel`);\r\n Vue.delete(this.ParentModel, last);\r\n }\r\n },\r\n\r\n onBlur() {\r\n if (this.element?.OnBlurAction && this.element.OnBlurAction.length > 0) {\r\n utils.executeAndCompileAllActions(\r\n this.element.OnBlurAction,\r\n {\r\n FormModel: this.cmodel,\r\n ParentModel: this.ParentModel,\r\n Schema: this.element.schema,\r\n },\r\n this);\r\n }\r\n },\r\n\r\n onFocus() {\r\n if (this.element?.OnFocusAction && this.element.OnFocusAction.length > 0) {\r\n utils.executeAndCompileAllActions(\r\n this.element.OnFocusAction,\r\n {\r\n FormModel: this.cmodel,\r\n ParentModel: this.ParentModel,\r\n Schema: this.element.schema,\r\n },\r\n this);\r\n }\r\n }\r\n },\r\n};\r\n\r\nexport default baseFormMixin;","import Vue from 'vue';\r\nimport BaseComponent from './baseFormMixin.jsx';\r\nimport utils from '../../../Shared/utils.jsx';\r\nimport careHelpfulFunctions from '../../careHelpfulFunctions.jsx';\r\n\r\nconst baseFieldsetMixin = {\r\n mixins: [BaseComponent],\r\n data: () => ({\r\n }),\r\n props: {\r\n },\r\n methods: {\r\n usesColspan(type) {\r\n switch (type) {\r\n case 'fieldset':\r\n case 'conditional':\r\n case 'tabs':\r\n case 'help':\r\n case 'paragraph':\r\n return true;\r\n default:\r\n return false;\r\n }\r\n },\r\n generateElements(h, form, LayoutType) {\r\n const elements = [];\r\n for (let i = 0; i < form.length; i++) {\r\n const element = form[i];\r\n\r\n // Nice idea, but the current component does not have correct values for ParentModel (and potentially others) because \"this\"\r\n // refers to the fieldset, not the element. To marshal the \"this\" properties into the condition function that apply to the\r\n // element will require additional thought. (6/13/2021)\r\n //if (element.$$condition && typeof element.$$condition === 'function' && !element.$$condition(this, careHelpfulFunctions))\r\n // continue;\r\n\r\n //if (!element.type)\r\n // debugger;\r\n\r\n let elementType = (element.type || 'missing').toLowerCase();\r\n let formtype = `sform-${elementType}`;\r\n\r\n let modelkey;\r\n\r\n if (element.key) {\r\n modelkey = [...element.key];\r\n\r\n if (this.modelkey && this.modelkey.length > 0)\r\n for (let j = 0; j < this.modelkey.length && j < modelkey.length; j++)\r\n modelkey[j] = this.modelkey[j];\r\n }\r\n else\r\n modelkey = this.modelkey;\r\n\r\n if (!element.$objectId)\r\n element.$objectId = utils.generateUUID();\r\n\r\n // name={element.title || (element.key ? element.key[element.key.length - 1] : 'unnamed')}\r\n elements.push(\r\n \r\n \r\n );\r\n }\r\n return elements;\r\n }\r\n },\r\n};\r\n\r\nexport default baseFieldsetMixin;","import Vue from 'vue';\r\nimport BaseFieldsetComponent from './baseFieldsetMixin.jsx';\r\nimport utils from '../../../Shared/utils.jsx';\r\n\r\nVue.component('sform-fieldset', {\r\n mixins: [BaseFieldsetComponent],\r\n data: () => ({\r\n }),\r\n props: {\r\n nopadding: false,\r\n columns: null\r\n },\r\n created() {\r\n },\r\n methods: {\r\n },\r\n render() {\r\n if (!this.form)\r\n return null;\r\n\r\n var template = [];\r\n var rows = [];\r\n var rowMapped = [];\r\n const elements = this.generateElements(h, this.form, this.layouttype);\r\n \r\n if (this.columns > 1) {\r\n for (var i = 0; i < this.columns; i++) {\r\n template.push(undefined);\r\n }\r\n \r\n for (var i = 0; i < elements.length; i++) {\r\n var colIndex = i % this.columns;\r\n \r\n if (colIndex == 0) { // new row so make a new row\r\n rows.push([...template]);\r\n }\r\n \r\n rows[rows.length - 1][colIndex] = elements[i];\r\n }\r\n\r\n rowMapped = rows.map((rowElements) => {\r\n var flds = rowElements.map((fld) => {\r\n return ({fld});\r\n });\r\n \r\n return ({ flds });\r\n });\r\n } else {\r\n rowMapped = elements;\r\n }\r\n\r\n let cardClass;\r\n if (this.nopadding)\r\n cardClass = { 'pa-0': true };\r\n else\r\n cardClass = { 'pb-1': true };\r\n\r\n switch (this.layouttype) {\r\n case 'sform-card-layout':\r\n {\r\n let title;\r\n if (this.element && this.Title && !this.element.notitle && !this.notitle)\r\n title = (\r\n \r\n {this.Title}\r\n \r\n );\r\n\r\n return (\r\n \r\n {title}\r\n \r\n {rowMapped}\r\n \r\n \r\n );\r\n }\r\n case 'sform-table-layout':\r\n default:\r\n {\r\n let title;\r\n if (this.element && this.Title && !this.element.notitle)\r\n title = (\r\n \r\n \r\n

{this.Title}

\r\n \r\n \r\n );\r\n\r\n return (\r\n \r\n {title}\r\n {elements}\r\n
\r\n );\r\n }\r\n }\r\n }\r\n});","import Vue from 'vue';\r\nimport BaseComponent from './baseFormMixin.jsx';\r\nimport utils from '../../../Shared/utils.jsx';\r\nimport methods from '../../../Shared/methods';\r\nimport { Container, Draggable } from 'vue-smooth-dnd';\r\n\r\n// DnD implemented via:\r\n// https://kutlugsahin.github.io/vue-smooth-dnd\r\n\r\nVue.component('sform-array', {\r\n mixins: [BaseComponent],\r\n components: { Container, Draggable },\r\n data: () => ({\r\n formitem: null,\r\n chosenitems: null,\r\n availableitems: null,\r\n }),\r\n props: {\r\n layouttype: null,\r\n },\r\n created() {\r\n if (this.form && this.form.length > 0) {\r\n this.formitem = this.form[0];\r\n }\r\n },\r\n mounted() {\r\n this.loadComplete();\r\n },\r\n computed: {\r\n addenabled: function () {\r\n if (this.availableitems && typeof this.availableitems === 'object')\r\n return Object.keys(this.availableitems).every(k => this.availableitems[k]);\r\n else\r\n return true;\r\n },\r\n addLabel: function () {\r\n return this.element.add || 'Add Another';\r\n },\r\n },\r\n methods: {\r\n addNewItem(e) {\r\n if (!this.itemvalue)\r\n this.sync([]); // If the array itself is unassigned, initialize to an empty array\r\n\r\n if (this.itemvalue)\r\n this.itemvalue.push(utils.forms.mergeDefaultModel(null, this.element.schema.items, this));\r\n },\r\n reOrderItems(result) {\r\n // Ex: {\"removedIndex\":2,\"addedIndex\":0}\r\n const item = this.itemvalue[result.removedIndex];\r\n this.itemvalue.splice(result.removedIndex, 1);\r\n this.itemvalue.splice(result.addedIndex, 0, item);\r\n },\r\n },\r\n render() {\r\n if (!this.form || this.form.length < 1)\r\n return null;\r\n\r\n let element;\r\n let Tag;\r\n let formtype;\r\n if (this.form.length > 1) {\r\n // A manually defined array can have multiple items, wrap in a fieldset\r\n // discard\r\n element = {\r\n type: 'fieldset',\r\n items: this.form,\r\n };\r\n Tag = `sform-${element.type}`;\r\n }\r\n else {\r\n element = this.form[0];\r\n Tag = this.layouttype;\r\n formtype = `sform-${element.type}`;\r\n }\r\n\r\n const items = [];\r\n const actions = [];\r\n\r\n let modelkeyroot;\r\n\r\n if (element.key) {\r\n modelkeyroot = [...element.key];\r\n\r\n if (this.modelkey && this.modelkey.length > 0)\r\n for (let j = 0; j < this.modelkey.length && j < modelkeyroot.length; j++)\r\n modelkeyroot[j] = this.modelkey[j];\r\n }\r\n\r\n if (this.itemvalue)\r\n for (let i = 0; i < this.itemvalue.length; i++) {\r\n // Take the index from the arra and replace the indexer expression []\r\n // within the key expression to include the literal index [{i}]\r\n let modelkey = modelkeyroot ? modelkeyroot.map(k => k == '[]' ? `[${i}]` : k) : [];\r\n let divide;\r\n if (i < this.itemvalue.length - 1)\r\n divide = ;\r\n\r\n // name={element.title || (modelkey && modelkey.length > 0 ? modelkey[modelkey.length - 1] : '')}\r\n items.push(\r\n \r\n
\r\n \r\n \r\n 1 && !this.element.nodrag} class=\"column-drag-handle\" style=\"padding:0 10px; margin-top: 5px; cursor: grab;\">☰\r\n this.itemvalue.splice(i, 1)}>\r\n\r\n mdi mdi-close\r\n \r\n
\r\n {divide}\r\n
\r\n );\r\n }\r\n\r\n if (!this.noinput && !this.element.readonly)\r\n actions.push(\r\n this.addNewItem(e)}>\r\n {this.addLabel} mdi mdi-plus\r\n \r\n );\r\n\r\n let title;\r\n if (!this.element.notitle)\r\n title = (\r\n \r\n {this.Title}\r\n \r\n );\r\n\r\n return (\r\n \r\n {title}\r\n\r\n 0} on-drop={(res) => this.reOrderItems(res)} drag-handle-selector=\".column-drag-handle\">\r\n {items}\r\n \r\n\r\n \r\n {actions}\r\n \r\n \r\n );\r\n\r\n //return (\r\n // \r\n // \r\n // {title} {desc}\r\n // \r\n // \r\n // \r\n // 0}>\r\n\r\n // this.reOrderItems(res)} drag-handle-selector=\".column-drag-handle\">\r\n // {items}\r\n // \r\n\r\n // \r\n // \r\n // {actions}\r\n // \r\n // \r\n // \r\n // \r\n //);\r\n }\r\n});","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"cc-tabs\"},[_c('div',{staticClass:\"cc-tabs-container\",style:({ backgroundImage: `url(${_vm.backgroundImage})`, minWidth:150+'px' })},[_c('div',{staticClass:\"cc-tabs-alltabs\",style:(_vm.alltabs_style)},[_c('v-item-group',{staticClass:\"pa-2 cc-tab-item-group\",attrs:{\"active-class\":_vm.activeClass,\"mandatory\":\"\",\"dark\":_vm.dark},model:{value:(_vm.selected_item),callback:function ($$v) {_vm.selected_item=$$v},expression:\"selected_item\"}},_vm._l((_vm.items),function(item){return _c('div',{key:item.id,class:_vm.getTabItemClass(item)},[(!item.separator)?_c('v-item',{scopedSlots:_vm._u([{key:\"default\",fn:function({ active, toggle }){return [_c('v-card',{staticClass:\"d-flex align-center mb-1 cc-tab-item pa-0\",attrs:{\"dark\":_vm.dark,\"height\":\"40\",\"elevation\":\"0\"},on:{\"click\":function($event){return _vm.selectTab(item, toggle)}}},[_c('div',{class:_vm.getTabITemContentClass(item)},[_vm._t(\"label\",function(){return [(item.title)?_c('span',[_vm._v(_vm._s(item.title))]):_vm._e(),(item.icon)?_c('v-icon',{staticClass:\"ml-2\",attrs:{\"small\":\"\"}},[_vm._v(_vm._s(item.icon))]):_vm._e()]},null,item)],2)])]}}],null,true)}):_c('div')],1)}),0)],1),_vm._t(\"default\",function(){return [_c('div',{staticClass:\"cc-tabs-actions\"},[_c('v-btn',{staticClass:\"cc-tabs-actions__button\",attrs:{\"small\":\"\",\"color\":\"primary\"}},[_vm._v(_vm._s(_vm.addlabel || 'Add'))]),_c('v-btn',{staticClass:\"cc-tabs-actions__button\",attrs:{\"small\":\"\",\"color\":\"error\"}},[_vm._v(_vm._s(_vm.addlabel || 'Remove'))])],1)]})],2)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\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/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./verticalTabs.vue?vue&type=script&lang=js&\"; 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/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./verticalTabs.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./verticalTabs.vue?vue&type=template&id=73838222&scoped=true&\"\nimport script from \"./verticalTabs.vue?vue&type=script&lang=js&\"\nexport * from \"./verticalTabs.vue?vue&type=script&lang=js&\"\nimport style0 from \"./verticalTabs.vue?vue&type=style&index=0&id=73838222&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 \"73838222\",\n null\n \n)\n\nexport default component.exports","import Vue from 'vue';\r\nimport BaseComponent from './baseFormMixin.jsx';\r\nimport utils from '../../../Shared/utils.jsx';\r\nimport methods from '../../../Shared/methods';\r\nimport careHelpfulFunctions from '../../careHelpfulFunctions.jsx';\r\nimport { Container, Draggable } from 'vue-smooth-dnd';\r\nimport VerticalTabs from '../vuecontrols/verticalTabs.vue';\r\n\r\n// DnD implemented via:\r\n// https://kutlugsahin.github.io/vue-smooth-dnd\r\n\r\nVue.component('sform-tabarray', {\r\n mixins: [BaseComponent],\r\n components: { Container, Draggable, VerticalTabs },\r\n data: () => ({\r\n formitem: null,\r\n tablabelexpr: null,\r\n selected_tab: -1,\r\n show_delete: false,\r\n chosenitems: null,\r\n availableitems: null,\r\n }),\r\n props: {\r\n layouttype: null,\r\n },\r\n created() {\r\n if (this.form && this.form.length > 0) {\r\n this.formitem = this.form[0];\r\n }\r\n if (this.element.formatData && this.element.formatData.TabLabelExpression) {\r\n this.tablabelexpr = utils.compile(this, '{{' + this.element.formatData.TabLabelExpression + '}}', false, ['ArrayItem', 'ArrayIndex', 'ArrayItemIndex']);\r\n }\r\n else if (this.element.title) {\r\n this.tablabelexpr = utils.compileExpression(this, `\"${ this.element.title }[\" + ArrayItemIndex + \"]\"`, ['ArrayItem', 'ArrayIndex', 'ArrayItemIndex']);\r\n }\r\n },\r\n mounted() {\r\n this.loadComplete();\r\n\r\n if(this.itemvalue.length > 0)\r\n this.selected_tab = 0;\r\n },\r\n computed: {\r\n addenabled: function () {\r\n if (this.availableitems && typeof this.availableitems === 'object') \r\n return Object.keys(this.availableitems).every(k => this.availableitems[k]);\r\n else \r\n return true;\r\n },\r\n tabs_maxHeight: function () {\r\n if (this.element.formatData && this.element.formatData.MaxHeight)\r\n return this.element.formatData.MaxHeight;\r\n else\r\n return null;\r\n }\r\n },\r\n methods: {\r\n addNewItem(e) {\r\n if (this.itemvalue) {\r\n this.itemvalue.push(utils.forms.mergeDefaultModel(null, this.element.schema.items, this));\r\n\r\n const this_ref = this;\r\n Vue.nextTick(function () {\r\n this_ref.selected_tab = this_ref.itemvalue.length - 1;\r\n });\r\n }\r\n },\r\n removeTab(e, index) {\r\n e.cancelBubble = true;\r\n e.stopPropagation();\r\n\r\n if (index <= this.selected_tab && this.selected_tab > 0)\r\n this.selected_tab--;\r\n\r\n this.itemvalue.splice(index, 1);\r\n\r\n if (this.itemvalue.length === 0){\r\n this.selected_tab = -1;\r\n this.show_delete = false;\r\n }\r\n },\r\n reOrderItems(result) {\r\n // Ex: {\"removedIndex\":2,\"addedIndex\":0}\r\n const item = this.itemvalue[result.removedIndex];\r\n this.itemvalue.splice(result.removedIndex, 1);\r\n this.itemvalue.splice(result.addedIndex, 0, item);\r\n },\r\n },\r\n render(h) {\r\n if (!this.form || this.form.length < 1)\r\n return null;\r\n\r\n let element;\r\n\r\n if (this.form.length > 1) {\r\n // A manually defined array can have multiple items, wrap in a fieldset\r\n // discard\r\n element = {\r\n type: 'fieldset',\r\n items: this.form,\r\n };\r\n }\r\n else\r\n element = this.form[0];\r\n\r\n element.title = this.element.title;\r\n\r\n let Tag = `sform-${element.type}`;\r\n\r\n const items = [];\r\n const itemlabels = [];\r\n\r\n let modelkeyroot;\r\n\r\n if (element.key) {\r\n modelkeyroot = [...element.key];\r\n\r\n if (this.modelkey && this.modelkey.length > 0)\r\n for (let j = 0; j < this.modelkey.length && j < modelkeyroot.length; j++)\r\n modelkeyroot[j] = this.modelkey[j];\r\n }\r\n\r\n if (this.itemvalue)\r\n for (let i = 0; i < this.itemvalue.length; i++) {\r\n // Take the index from the arra and replace the indexer expression []\r\n // within the key expression to include the literal index [{i}]\r\n let modelkey = modelkeyroot ? modelkeyroot.map(k => k == '[]' ? `[${i}]` : k) : [];\r\n\r\n const value = this.itemvalue[i];\r\n\r\n let label;\r\n if (this.tablabelexpr)\r\n try {\r\n label = utils.evaluate(this.tablabelexpr, this, false, null, false, [value, i, i], true);\r\n }\r\n catch (e) {\r\n utils.warn(`Failed to evaluate tab array label: ${this.element.formatData.TabLabelExpression}`, e);\r\n label = Err;\r\n }\r\n else if(typeof value === 'object' && 'Name' in value)\r\n label = value.Name;\r\n else\r\n label = `[${i + 1}]`;\r\n\r\n itemlabels.push({\r\n id: i,\r\n title: label,\r\n });\r\n\r\n items.push(\r\n \r\n 0 ? modelkey[modelkey.length - 1] : '')}\r\n root={this.root}\r\n element={element}\r\n form={element.items}\r\n cmodel={this.cmodel}\r\n modelkey={modelkey}\r\n depth={this.depth + 1}\r\n array_index={i}\r\n layouttype={this.layouttype}\r\n appearance={this.appearance}\r\n type=\"FormField_ArrayItem\"\r\n readonly={element.readonly || false}\r\n schema={this.schema}\r\n >\r\n \r\n \r\n );\r\n }\r\n\r\n const scopedSlots = {\r\n label: (item) =>\r\n (\r\n [\r\n {item.title},\r\n this.removeTab(e, item.id)}>\r\n mdi-close-circle\r\n ,\r\n ]\r\n )\r\n };\r\n var buttonContent = (
);\r\n if(!this.element.formatData?.HideButtons) {\r\n buttonContent = (\r\n
\r\n this.addNewItem(e)}>\r\n Add\r\n mdi mdi-plus\r\n \r\n this.show_delete = !this.show_delete}>\r\n {this.show_delete ? 'Cancel' : 'Remove'}\r\n mdi mdi-minus-circle\r\n \r\n
\r\n );\r\n }\r\n\r\n return (\r\n
\r\n this.selected_tab = index}\r\n on-blur={this.onBlur}\r\n on-focus={this.onFocus}\r\n >\r\n {buttonContent}\r\n \r\n\r\n \r\n {items}\r\n \r\n
\r\n );\r\n }\r\n});","import Vue from 'vue';\r\nimport BaseComponent from './baseFormMixin.jsx';\r\nimport utils from '../../../Shared/utils.jsx';\r\nimport { appSettings } from '@/Shared/appSettings.js';\r\n\r\nconst commonControl = {\r\n mixins: [BaseComponent],\r\n data: () => ({\r\n }),\r\n props: {\r\n },\r\n created() {\r\n },\r\n mounted() {\r\n if (this.autofocus)\r\n setTimeout(() => {\r\n const item = this.$refs[this.autofocus_id];\r\n if (item) {\r\n this.$refs[this.autofocus_id].focus();\r\n\r\n let inputEl = this.$refs[this.autofocus_id].$el.querySelector('input');\r\n inputEl.select();\r\n\r\n //this.input = 'test value'\r\n setTimeout(() => {\r\n inputEl.select();\r\n }, 200);\r\n }\r\n }, 250);\r\n\r\n this.loadComplete();\r\n },\r\n computed: {\r\n },\r\n methods: {\r\n },\r\n render(h) {\r\n // This is a working example of a custom component built using a .vue file that will properly use slots in a v-text-input:\r\n //import Demotextinput from './demoTextInput.vue';\r\n //components: {\r\n // Demotextinput,\r\n //}\r\n //let input1 = this.sync(value)}>;\r\n //if (this.appearance)\r\n // input1.data.attrs = { ...input1.data.attrs, ...this.appearance };\r\n //return input1;\r\n\r\n let scopedSlots = {\r\n message: ({message}) => {\r\n return \r\n }\r\n }\r\n\r\n let slots = [\r\n ,\r\n ];\r\n\r\n let input =\r\n this.sync(value)}\r\n on-blur={this.onBlur}\r\n on-focus={this.onFocus}\r\n scopedSlots={scopedSlots}\r\n hint={this.hintText}\r\n persistent-hint={appSettings.DebugTranslationPrefixSetting}\r\n >{slots};\r\n\r\n if (this.appearance)\r\n input.componentOptions.propsData = { ...input.componentOptions.propsData, ...this.appearance };\r\n\r\n if (this.directives) {\r\n if (input.data.directives)\r\n input.data.directives = [...input.data.directives, ...this.directives];\r\n else\r\n input.data.directives = this.directives;\r\n }\r\n\r\n return input;\r\n }\r\n};\r\n\r\nVue.component('sform-text', commonControl);\r\nVue.component('sform-string', commonControl);","import Vue from 'vue';\r\nimport BaseComponent from './baseFormMixin.jsx';\r\nimport utils from '../../../Shared/utils.jsx';\r\nimport methods from '../../../Shared/methods';\r\n\r\nVue.component('sform-password', {\r\n mixins: [BaseComponent],\r\n data: () => ({\r\n }),\r\n props: {\r\n },\r\n created() {\r\n },\r\n mounted() {\r\n this.loadComplete();\r\n },\r\n computed: {\r\n },\r\n methods: {\r\n },\r\n render() {\r\n let scopedSlots = {};\r\n if (this.element.fieldAddonLeft)\r\n scopedSlots['prepend-inner'] = () => this.element.fieldAddonLeft;\r\n\r\n scopedSlots.message = ({ message }) => {\r\n return \r\n };\r\n\r\n let slots = [\r\n ,\r\n ];\r\n\r\n let input =\r\n this.sync(value)}\r\n on-blur={this.onBlur}\r\n on-focus={this.onFocus}>\r\n {slots}\r\n ;\r\n\r\n if (this.appearance)\r\n input.componentOptions.propsData = { ...input.componentOptions.propsData, ...this.appearance };\r\n\r\n if (this.directives) {\r\n if (input.data.directives)\r\n input.data.directives = [...input.data.directives, ...this.directives];\r\n else\r\n input.data.directives = this.directives;\r\n }\r\n\r\n return input;\r\n }\r\n});","import Vue from 'vue';\r\nimport BaseComponent from './baseFormMixin.jsx';\r\nimport utils from '../../../Shared/utils.jsx';\r\nimport methods from '../../../Shared/methods';\r\n\r\nimport { appSettings } from '@/Shared/appSettings.js';\r\n\r\nVue.component('sform-textarea', {\r\n mixins: [BaseComponent],\r\n data: () => ({\r\n }),\r\n props: {\r\n },\r\n created() {\r\n },\r\n mounted() {\r\n this.loadComplete();\r\n },\r\n computed: {\r\n placeholder() {\r\n if (this.element && this.element.schema)\r\n return this.element.schema.placeholder;\r\n else\r\n return undefined;\r\n },\r\n },\r\n methods: {\r\n },\r\n render() {\r\n let scopedSlots = {\r\n message: ({message}) => {\r\n return \r\n }\r\n }\r\n\r\n let slots = [\r\n ,\r\n ];\r\n\r\n let input =\r\n this.sync(value)}\r\n on-blur={this.onBlur}\r\n on-focus={this.onFocus}\r\n scopedSlots={scopedSlots}\r\n hint={this.hintText}\r\n persistent-hint={appSettings.DebugTranslationPrefixSetting}\r\n >{slots};\r\n\r\n if (this.appearance)\r\n input.componentOptions.propsData = { ...input.componentOptions.propsData, ...this.appearance };\r\n\r\n return input;\r\n }\r\n});","import Vue from 'vue';\r\nimport BaseComponent from './baseFormMixin.jsx';\r\nimport utils from '../../../Shared/utils.jsx';\r\nimport methods from '../../../Shared/methods';\r\n\r\nimport { appSettings } from '@/Shared/appSettings.js';\r\n\r\nVue.component('sform-checkbox', {\r\n mixins: [BaseComponent],\r\n data: () => ({\r\n }),\r\n props: {\r\n },\r\n created() {\r\n },\r\n mounted() {\r\n this.loadComplete();\r\n },\r\n computed: {\r\n translatedhint: function () {\r\n return this.Translate(this.hintText);\r\n }\r\n },\r\n methods: {\r\n },\r\n render(h) {\r\n // This doesn't work for unknown reason - attempt to append a tooltip icon in the checkbox label\r\n //let scopedSlots;\r\n //if (this.element.description) {\r\n // const label = this.$parent.getLabel(this.element);\r\n // const helpicon = utils.generateTooltip(h, mdi mdi-information, this.element.description, 'right');\r\n // scopedSlots = {\r\n // append: () => 'My strange label'\r\n // };\r\n // //delete this.appearance.label;\r\n //}\r\n\r\n // Note: component styles (outlined, single-line, etc.) are overridden by the appearance values - which get passed in by the layout control (layoutCard / layoutTable)\r\n \r\n let scopedSlots = {\r\n message: ({message}) => {\r\n return \r\n }\r\n }\r\n\r\n let slots = [\r\n ,\r\n ];\r\n\r\n if (this.hintText) {\r\n let icon = mdi mdi-information;\r\n icon = utils.generateTooltip(h, icon, this.translatedhint, 'right');\r\n icon.data.slot = \"label\";\r\n slots.push(icon);\r\n }\r\n \r\n let input = (\r\n this.sync(value == true)}\r\n scopedSlots={scopedSlots}\r\n on-blur={this.onBlur}\r\n on-focus={this.onFocus}\r\n persistent-hint={appSettings.DebugTranslationPrefixSetting}\r\n >{slots}\r\n );\r\n\r\n if (this.appearance)\r\n input.componentOptions.propsData = { ...input.componentOptions.propsData, ...this.appearance };\r\n\r\n if (this.directives) {\r\n if (input.data.directives)\r\n input.data.directives = [...input.data.directives, ...this.directives];\r\n else\r\n input.data.directives = this.directives;\r\n }\r\n\r\n return input;\r\n }\r\n});","import Vue from \"vue\";\r\nimport BaseComponent from \"./baseFormMixin.jsx\";\r\nimport utils from \"../../../Shared/utils.jsx\";\r\nimport methods from \"../../../Shared/methods\";\r\nimport careHelpfulFunctions from \"../../careHelpfulFunctions.jsx\";\r\n\r\nimport { appSettings } from \"@/Shared/appSettings.js\";\r\n\r\n/* This component handles three different schema configurations:\r\n * 1. items with an enum\r\n * 2. items with a titleMap\r\n * 3. formatData with LookupURL\r\n * \r\n * All three produce a list of items which will generate a set of checkbox input elements.\r\n * \r\n * Example of a titleMap:\r\n\r\n \"Notifications\": {\r\n \"$typeSchema\": \"/schema/public/Platform.Schema.SchemaSchemas.v1/SchemaSchema_Type_Array-CheckBoxes-TitleMap\",\r\n \"type\": \"array\",\r\n \"arrayStart\": \"FormDefault\",\r\n \"format\": \"checkboxes\",\r\n \"uniqueItems\": false,\r\n \"dynamicColumns\": 1,\r\n \"items\": {\r\n \"type\": \"string\",\r\n \"titleMap\": [\r\n {\r\n \"name\": \"Main Contact\",\r\n \"value\": \"Main\"\r\n },\r\n {\r\n \"name\": \"Billing\",\r\n \"value\": \"Billing\"\r\n },\r\n {\r\n \"name\": \"Technical Requests/Issuses\",\r\n \"value\": \"Technical\"\r\n },\r\n {\r\n \"name\": \"Platform Maintenance\",\r\n \"value\": \"Maintenance\"\r\n },\r\n {\r\n \"name\": \"Platform Outage\",\r\n \"value\": \"Outage\"\r\n }\r\n ]\r\n }\r\n }\r\n\r\n * The output of this form element is a string array. Ex: [\"Main\",\"Technical\",\"Maintenance\",...]\r\n */\r\n\r\nVue.component(\"sform-checkboxes-array\", {\r\n mixins: [BaseComponent],\r\n data: () => ({\r\n items: null,\r\n lookupurl: null,\r\n lookupraw: null,\r\n displayexpr: null,\r\n valueexpr: null,\r\n prependIconExpr: null,\r\n appendIconsExpr: null,\r\n isdisabledExpr: null,\r\n readOnlyEval: null,\r\n }),\r\n props: {},\r\n created() {\r\n if (\r\n !this.element.formatData &&\r\n this.element.items &&\r\n this.element.items.length > 0 &&\r\n this.element.items[0].titleMap\r\n ) {\r\n this.items = this.element.items[0].titleMap;\r\n } else if (\r\n !this.element.formatData &&\r\n this.element.items &&\r\n this.element.items.length > 0 &&\r\n this.element.items[0].enum\r\n ) {\r\n this.items = this.element.items[0].enum.map((i) => ({ name: i, value: i }));\r\n } else if (this.element.formatData && this.element.formatData.LookupType == 'URL' && this.element.formatData.LookupURL) {\r\n // Compile url, create functions for mapping item name and item value\r\n this.lookupurl = utils.compile(this, this.element.formatData.LookupURL);\r\n } else if (this.element.formatData && this.element.formatData.LookupInterpolatedExpression) {\r\n this.lookupraw = utils.compileExpression(this, this.element.formatData.LookupInterpolatedExpression);\r\n }\r\n\r\n if (this.element.formatData) { \r\n if (this.element.formatData.DisplayType == \"Expression\" && this.element.formatData.DisplayExpression)\r\n this.displayexpr = new Function(\r\n \"context\",\r\n this.element.formatData.LookupModelAs,\r\n \"util\",\r\n \"with(context) return \" + this.element.formatData.DisplayExpression + \";\"\r\n );\r\n\r\n if (this.element.formatData.ValueType == \"Expression\" && this.element.formatData.ValueExpression)\r\n this.valueexpr = new Function(\r\n \"context\",\r\n this.element.formatData.LookupModelAs,\r\n \"util\",\r\n `with(context) return ${this.element.formatData.ValueExpression};`\r\n );\r\n\r\n if (this.element.formatData.PrependIconExpression)\r\n this.prependIconExpr = new Function(\r\n \"context\",\r\n this.element.formatData.LookupModelAs,\r\n \"util\",\r\n `with(context) return ${this.element.formatData.PrependIconExpression};`\r\n );\r\n\r\n if (this.element.formatData.AppendIconsExpression)\r\n this.appendIconsExpr = new Function(\r\n \"context\",\r\n this.element.formatData.LookupModelAs,\r\n \"util\",\r\n `with(context) return ${this.element.formatData.AppendIconsExpression};`\r\n );\r\n if (this.element.formatData.IsDisabledExpression)\r\n this.isdisabledExpr = new Function(\r\n \"context\",\r\n this.element.formatData.LookupModelAs,\r\n \"util\",\r\n `with(context) return ${this.element.formatData.IsDisabledExpression};`\r\n );\r\n }\r\n\r\n if (this.lookupurlvalue)\r\n this.lookupurlvalue_watch$ = this.$watch(\r\n function () {\r\n return this.lookupurlvalue;\r\n },\r\n function (newval, oldval) {\r\n this.Refresh();\r\n }\r\n );\r\n },\r\n watch: {\r\n lookuprawvalue: function () {\r\n if (this.element.formatData.WatchForChanges) this.Refresh();\r\n },\r\n },\r\n async mounted() {\r\n await this.Refresh();\r\n\r\n this.loadComplete();\r\n },\r\n computed: {\r\n readOnly() {\r\n try {\r\n if(this.readOnlyEval === null && this.element.readonly)\r\n this.readOnlyEval = utils.compile(this, this.element.readonly);\r\n if(this.readOnlyEval)\r\n return JSON.parse(utils.evaluate(this.readOnlyEval, this));\r\n return false;\r\n }\r\n catch (e) {\r\n utils.warn('ReadOnly could not evaluate expression: ' + this.element.readonly + '; ' + e);\r\n return false;\r\n }\r\n },\r\n lookupurlvalue: function() {\r\n if (this.lookupurl)\r\n try {\r\n return utils.evaluate(this.lookupurl, this, false, null, true);\r\n }\r\n catch (e) {\r\n utils.warn(`LookupList lookupurl could not be evaluated: ${this.lookupurl.code}`, e);\r\n return '';\r\n }\r\n else\r\n return '';\r\n },\r\n lookuprawvalue: function() {\r\n return this.lookupraw ? utils.evaluate(this.lookupraw, this) : [];\r\n },\r\n items_translated: function() {\r\n if (this.items)\r\n return this.items.map((item) => {\r\n let name;\r\n let value;\r\n let icon;\r\n let icons;\r\n let isDisabled;\r\n\r\n // If using a LookupURL, do the name/value transformations\r\n if (\r\n this.element.formatData &&\r\n (this.element.formatData.LookupURL || this.element.formatData.LookupInterpolatedExpression)\r\n ) {\r\n name = this.displayexpr\r\n ? this.displayexpr(this._self, item, careHelpfulFunctions)\r\n : item[this.element.formatData.DisplayField];\r\n value = this.valueexpr\r\n ? this.valueexpr(this._self, item, careHelpfulFunctions)\r\n : item[this.element.formatData.ValueField];\r\n } else {\r\n name = item.name;\r\n value = item.value;\r\n }\r\n\r\n if (this.prependIconExpr) {\r\n icon = this.prependIconExpr(this._self, item, careHelpfulFunctions);\r\n }\r\n\r\n if (this.appendIconsExpr) {\r\n icons = this.appendIconsExpr(this._self, item, careHelpfulFunctions);\r\n }\r\n\r\n if (this.isdisabledExpr) {\r\n isDisabled = this.isdisabledExpr(this._self, item, careHelpfulFunctions);\r\n }\r\n\r\n return {\r\n name: name,\r\n value: value,\r\n icon: icon,\r\n icons: icons,\r\n isDisabled: isDisabled\r\n };\r\n });\r\n else return [];\r\n },\r\n },\r\n methods: {\r\n async Refresh() {\r\n if (this.lookupurl) this.items = await utils.api.get(this.lookupurlvalue);\r\n else if (this.lookupraw) this.items = this.lookuprawvalue;\r\n },\r\n getItemValue(key) {\r\n return this.itemvalue ? this.itemvalue.some((v) => v == key) : false;\r\n },\r\n setItemValue(key, enabled) {\r\n let tmp = this.itemvalue;\r\n if (!tmp) tmp = [];\r\n\r\n // Look for the item in the existing array\r\n const idx = tmp.findIndex((i) => i == key);\r\n if (enabled) {\r\n // If we are supposed to add, only add if it isn't already there\r\n if (idx < 0) tmp.push(key);\r\n } else {\r\n // If we are supposed to remove, only remove if it is there\r\n if (idx >= 0) tmp.splice(idx, 1);\r\n }\r\n\r\n // Most often, this isn't necessary since we are modifying the referenced array.\r\n // But in the case where the original value is null, we have to set it.\r\n this.sync(tmp);\r\n },\r\n isDisabledItem(key) {\r\n if (key != null && key == 'true')\r\n {\r\n return true;\r\n }\r\n return false;\r\n },\r\n },\r\n render(h) {\r\n const elements = this.items_translated.map((item) => {\r\n let scopedSlots = {\r\n message: ({ message }) => {\r\n if (this.element.formatData?.Translate)\r\n return \r\n else\r\n return message;\r\n },\r\n };\r\n\r\n let slots = [];\r\n\r\n if (this.element.formatData?.Translate) {\r\n slots = [\r\n ,\r\n ];\r\n }\r\n else {\r\n slots = [\r\n item.name,\r\n ];\r\n }\r\n\r\n if (item.icons) {\r\n slots.push(
{item.icons.map(i => {i})}
);\r\n }\r\n \r\n if (item.icon) {\r\n slots.push({item.icon});\r\n }\r\n //comment\r\n return (\r\n this.setItemValue(item.value, v == true)}\r\n scopedSlots={scopedSlots}\r\n hint={this.hintText}\r\n on-blur={this.onBlur}\r\n on-focus={this.onFocus}\r\n persistent-hint={appSettings.DebugTranslationPrefixSetting}\r\n disabled={this.isDisabledItem(item.isDisabled) || this.readOnly}\r\n >\r\n {slots}\r\n \r\n );\r\n });\r\n\r\n if (this.element.schema.displayFormat == \"Grid\" && this.element.schema.displayColumns > 0) {\r\n var rows = [];\r\n var template = [];\r\n\r\n for (var i = 0; i < this.element.schema.displayColumns; i++) {\r\n template.push(undefined);\r\n }\r\n\r\n for (var i = 0; i < elements.length; i++) {\r\n var colIndex = i % this.element.schema.displayColumns;\r\n\r\n if (colIndex == 0) { // new row so make a new row\r\n rows.push([...template]);\r\n }\r\n\r\n rows[rows.length - 1][colIndex] = elements[i];\r\n }\r\n\r\n var rowMapped = rows.map((rowElements) => {\r\n var chks = rowElements.map((chkbx) => {\r\n return ({chkbx});\r\n });\r\n\r\n return ({ chks });\r\n });\r\n\r\n return (\r\n \r\n {this.Title}\r\n
\r\n {rowMapped}\r\n
\r\n );\r\n } else { \r\n return (\r\n \r\n {this.Title}\r\n
\r\n {elements}\r\n
\r\n );\r\n }\r\n },\r\n});\r\n","import Vue from 'vue';\nimport BaseComponent from './baseFormMixin.jsx';\nimport utils from '../../../Shared/utils.jsx';\nimport methods from '../../../Shared/methods';\n\nimport { appSettings } from '@/Shared/appSettings.js';\n\nVue.component('sform-switch', {\n mixins: [BaseComponent],\n data: () => ({\n }),\n props: {\n },\n created() {\n },\n mounted() {\n this.loadComplete();\n },\n computed: {\n translatedhint: function () {\n return this.Translate(this.hintText);\n }\n },\n methods: {\n },\n render(h) { \n let scopedSlots = {\n message: ({message}) => {\n return \n }\n }\n\n let slots = [\n ,\n ];\n\n if (this.hintText) {\n let icon = mdi mdi-information;\n icon = utils.generateTooltip(h, icon, this.translatedhint, 'right');\n icon.data.slot = \"label\";\n slots.push(icon);\n }\n \n let input = (\n this.sync(value == true)}\n scopedSlots={scopedSlots}\n on-blur={this.onBlur}\n on-focus={this.onFocus}\n persistent-hint={appSettings.DebugTranslationPrefixSetting}\n >{slots}\n );\n\n if (this.appearance)\n input.componentOptions.propsData = { ...input.componentOptions.propsData, ...this.appearance };\n\n if (this.directives) {\n if (input.data.directives)\n input.data.directives = [...input.data.directives, ...this.directives];\n else\n input.data.directives = this.directives;\n }\n\n return input;\n }\n});","import Vue from 'vue';\r\nimport BaseComponent from './baseFormMixin.jsx';\r\nimport utils from '../../../Shared/utils.jsx';\r\nimport methods from '../../../Shared/methods';\r\n\r\nVue.component('sform-radios', {\r\n mixins: [BaseComponent],\r\n data: () => ({\r\n }),\r\n props: {\r\n },\r\n created() {\r\n },\r\n mounted() {\r\n this.loadComplete();\r\n },\r\n computed: {\r\n translatedHintText: function () {\r\n return this.Translate(this.hintText);\r\n },\r\n },\r\n methods: {\r\n },\r\n render(h) {\r\n let items;\r\n if (this.element.enum)\r\n items = this.element.enum.map(e => (\r\n \r\n \r\n \r\n ));\r\n else if (this.element.titleMap)\r\n items = this.element.titleMap.map(e => (\r\n \r\n \r\n \r\n ));\r\n\r\n let title = ;\r\n if (this.hintText)\r\n title = {title} mdi mdi-information;\r\n\r\n let input =\r\n
\r\n {title}\r\n this.sync(value)}\r\n on-blur={this.onBlur}\r\n on-focus={this.onFocus}\r\n >\r\n {items}\r\n \r\n
;\r\n\r\n return input;\r\n }\r\n});","import Vue from 'vue';\r\nimport BaseComponent from './baseFormMixin.jsx';\r\nimport utils from '../../../Shared/utils.jsx';\r\nimport methods from '../../../Shared/methods';\r\n\r\nVue.component('sform-help', {\r\n mixins: [BaseComponent],\r\n data: () => ({\r\n titleexpr: null,\r\n bodyexpr: null,\r\n colorexpr: null,\r\n }),\r\n props: {\r\n },\r\n created() {\r\n // if (this.element.title)\r\n // this.titleexpr = utils.compile(this, this.Translate(this.element.title));\r\n\r\n // if (this.element.body)\r\n // this.bodyexpr = utils.compile(this, this.Translate(this.element.body));\r\n },\r\n mounted() {\r\n this.loadComplete();\r\n },\r\n computed: {\r\n title() {\r\n if(this.element.title)\r\n return ;\r\n else if (this.element.titleExpression) {\r\n if (!this.titleexpr)\r\n this.titleexpr = utils.compileExpression(this, this.element.titleExpression);\r\n\r\n return utils.evaluate(this.titleexpr, this);\r\n }\r\n\r\n return null;\r\n },\r\n body() {\r\n if (this.element.body)\r\n return ;\r\n else if (this.element.bodyExpression) {\r\n if (!this.bodyexpr)\r\n this.bodyexpr = utils.compileExpression(this, this.element.bodyExpression);\r\n\r\n return utils.evaluate(this.bodyexpr, this);\r\n }\r\n\r\n return null;\r\n },\r\n color() {\r\n if (this.element.color)\r\n return this.element.color;\r\n else if (this.element.colorExpression) {\r\n if (!this.colorexpr)\r\n this.colorexpr = utils.compileExpression(this, this.element.colorExpression);\r\n\r\n return utils.evaluate(this.colorexpr, this);\r\n }\r\n\r\n return null;\r\n },\r\n },\r\n methods: {\r\n },\r\n render() {\r\n let type = this.color;\r\n let textColor = this.color;\r\n let icon = 'mdi mdi-information';\r\n\r\n if (type == 'info') {\r\n textColor = 'primary';\r\n icon = 'mdi mdi-information';\r\n }\r\n else if (type == 'warning') {\r\n textColor = 'outbound';\r\n icon = 'mdi mdi-alert'\r\n }\r\n\r\n let title;\r\n let body;\r\n\r\n if (this.title && this.body) {\r\n title = {this.title};\r\n body = {this.body};\r\n }\r\n else if (this.title)\r\n title = {this.title};\r\n else if (this.body)\r\n body = {this.body};\r\n\r\n return (\r\n \r\n \r\n {title}\r\n {body}\r\n \r\n );\r\n }\r\n});","import Vue from 'vue';\r\nimport BaseComponent from './baseFormMixin.jsx';\r\nimport utils from '../../../Shared/utils.jsx';\r\nimport methods from '../../../Shared/methods';\r\n\r\nVue.component('sform-paragraph', {\r\n mixins: [BaseComponent],\r\n data: () => ({\r\n bodyexpr: null,\r\n }),\r\n props: {\r\n },\r\n created() {\r\n if (this.element.body)\r\n this.bodyexpr = utils.compile(this, this.Translate(this.element.body));\r\n },\r\n mounted() {\r\n this.loadComplete();\r\n },\r\n computed: {\r\n body() {\r\n if(this.element.body)\r\n return ;\r\n return null;\r\n }\r\n },\r\n methods: {\r\n },\r\n render() {\r\n return

{this.body}

;\r\n }\r\n});","import Vue from 'vue';\r\nimport BaseComponent from './baseFormMixin.jsx';\r\nimport utils from '../../../Shared/utils.jsx';\r\nimport methods from '../../../Shared/methods';\r\n\r\nimport { appSettings } from '@/Shared/appSettings.js';\r\n\r\nVue.component('sform-number', {\r\n mixins: [BaseComponent],\r\n data: () => ({\r\n }),\r\n props: {\r\n },\r\n created() {\r\n },\r\n mounted() {\r\n this.loadComplete();\r\n },\r\n computed: {\r\n items_translated: function () {\r\n if (this.element.titleMap)\r\n return this.element.titleMap.map(item => ({\r\n name: this.Translate(item.name),\r\n value: item.value,\r\n }));\r\n else\r\n return [];\r\n }\r\n },\r\n methods: {\r\n },\r\n render() {\r\n let input;\r\n\r\n let scopedSlots = {\r\n message: ({message}) => {\r\n return \r\n },\r\n item: ({item, on}) => {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n },\r\n }\r\n\r\n let slots = [\r\n ,\r\n ];\r\n\r\n if (this.element.titleMap)\r\n input =\r\n this.sync(value)}\r\n on-blur={this.onBlur}\r\n on-focus={this.onFocus}\r\n scopedSlots={scopedSlots}\r\n hint={this.hintText}\r\n persistent-hint={appSettings.DebugTranslationPrefixSetting}\r\n >{slots};\r\n else\r\n input =\r\n this.sync(parseFloat(value))}\r\n on-blur={this.onBlur}\r\n on-focus={this.onFocus}\r\n scopedSlots={scopedSlots}\r\n hint={this.hintText}\r\n persistent-hint={appSettings.DebugTranslationPrefixSetting}\r\n >{slots};\r\n\r\n if (this.appearance)\r\n input.componentOptions.propsData = { ...input.componentOptions.propsData, ...this.appearance };\r\n \r\n if (this.directives) {\r\n if (input.data.directives)\r\n input.data.directives = [...input.data.directives, ...this.directives];\r\n else\r\n input.data.directives = this.directives;\r\n }\r\n\r\n return input;\r\n }\r\n});","import Vue from 'vue';\r\nimport BaseComponent from './baseFormMixin.jsx';\r\nimport utils from '../../../Shared/utils.jsx';\r\nimport methods from '../../../Shared/methods';\r\n\r\nimport { appSettings } from '@/Shared/appSettings.js';\r\nimport api from '@/Services/api.jsx';\r\nimport token from '@/Services/token.jsx';\r\n\r\nVue.component('sform-mediaselector', {\r\n mixins: [BaseComponent],\r\n data: () => ({\r\n soundPlaying: false,\r\n deviceType: 'all',\r\n deviceTypes: {\r\n 'Microphone': 'audioinput',\r\n 'Speaker': 'audiooutput',\r\n 'Camera': 'videoinput',\r\n },\r\n context: null,\r\n micStream: null,\r\n micLevel: 0,\r\n\r\n devices: null,\r\n deviceAccessBlocked: false,\r\n selectedDevice: null,\r\n\r\n soundurlexpn: null,\r\n }),\r\n props: {\r\n },\r\n async created() {\r\n this.deviceType = this.element.formatData.DeviceType || 'all';\r\n const sourceInfos = await navigator.mediaDevices.enumerateDevices();\r\n const devices = [];\r\n for (let i = 0; i < sourceInfos.length; i++) {\r\n const sourceInfo = sourceInfos[i];\r\n\r\n // If it's the kind of device we are looking for, then add it.\r\n if (sourceInfo.kind != this.deviceTypes[this.deviceType] && this.deviceType != 'all') {\r\n continue;\r\n }\r\n\r\n const device = {\r\n id: sourceInfo.deviceId,\r\n type: sourceInfo.kind,\r\n };\r\n\r\n // Determine the name of the device\r\n if (sourceInfo.kind === 'audioinput') {\r\n device.name = sourceInfo.label || 'microphone ' + (this.devices.length + 1);\r\n }\r\n else if (sourceInfo.kind === 'audiooutput') {\r\n device.name = sourceInfo.label || 'speakers ' + (this.devices.length + 1);\r\n }\r\n else if (sourceInfo.kind === 'videoinput') {\r\n device.name = sourceInfo.label || 'camera ' + (this.devices.length + 1);\r\n }\r\n else {\r\n device.name = sourceInfo.label;\r\n }\r\n\r\n if (this.itemvalue == device.id)\r\n this.selectedDevice = device;\r\n\r\n devices.push(device);\r\n }\r\n this.devices = devices;\r\n\r\n if (this.element.formatData.SoundURL)\r\n this.soundurlexpn = utils.compile(this, this.element.formatData.SoundURL);\r\n\r\n if (this.deviceType == 'Microphone') {\r\n if (this.selectedDevice)\r\n this.microphoneChanged(this.selectedDevice.id);\r\n\r\n this.$watchitemvalue = this.$watch('itemvalue', function (newvalue) {\r\n this.microphoneChanged(newvalue);\r\n });\r\n }\r\n },\r\n destroyed() {\r\n utils.debug(`formMediaSelector ${this.name} is destroyed`);\r\n\r\n if (this.$watchitemvalue)\r\n this.$watchitemvalue();\r\n\r\n this.closeMicAnalyser();\r\n },\r\n mounted() {\r\n this.loadComplete();\r\n },\r\n computed: {\r\n soundurl: function () {\r\n return this.soundurlexpn ? utils.evaluate(this.soundurlexpn, this) : '';\r\n },\r\n signalIcon: function () {\r\n switch (this.micLevel) {\r\n case 0: return 'mdi-signal-cellular-outline';\r\n case 1: return 'mdi-signal-cellular-1';\r\n case 2: return 'mdi-signal-cellular-2';\r\n case 3: return 'mdi-signal-cellular-3';\r\n default: return 'mdi-signal-off';\r\n }\r\n },\r\n playIcon: function () {\r\n if (this.soundPlaying)\r\n return 'mdi-stop';\r\n else\r\n return 'mdi-play';\r\n },\r\n },\r\n methods: {\r\n async microphoneChanged(newid) {\r\n utils.debug(`microphoneChanged to ${newid}`);\r\n\r\n const constraints = {\r\n audio: { deviceId: newid },\r\n video: false,\r\n };\r\n\r\n try {\r\n const stream = await navigator.mediaDevices.getUserMedia(constraints);\r\n this.closeMicAnalyser();\r\n this.setupMicAnalyser(stream);\r\n }\r\n catch (e) {\r\n if (['PermissionDeniedError', 'PermissionDismissedError'].indexOf(e.name) != -1) {\r\n this.deviceAccessBlocked = true;\r\n }\r\n }\r\n },\r\n\r\n changeDevice(deviceid) {\r\n this.selectedDevice = this.devices.find(d => d.id == deviceid); // device;\r\n this.sync(deviceid);\r\n },\r\n closeMicAnalyser() {\r\n const c = this;\r\n if (c.context) {\r\n c.micStream.getAudioTracks()[0].stop();;\r\n c.javascriptNode.disconnect(c.context.destination);\r\n c.analyser.disconnect(c.javascriptNode);\r\n c.microphone.disconnect(c.analyser);\r\n c.context.close();\r\n\r\n c.context = undefined;\r\n c.microphone = undefined;\r\n c.analyser = undefined;\r\n c.javascriptNode = undefined;\r\n c.micStream = undefined;\r\n }\r\n },\r\n setupMicAnalyser(stream) {\r\n const c = this;\r\n c.context = new AudioContext();\r\n c.microphone = c.context.createMediaStreamSource(stream);\r\n c.analyser = c.context.createAnalyser();\r\n c.javascriptNode = c.context.createScriptProcessor(2048, 1, 1);\r\n c.micStream = stream;\r\n\r\n\r\n c.analyser.smoothingTimeConstant = 0.3;\r\n c.analyser.fftSize = 1024;\r\n\r\n c.microphone.connect(c.analyser);\r\n c.analyser.connect(c.javascriptNode);\r\n c.javascriptNode.connect(c.context.destination);\r\n\r\n c.javascriptNode.onaudioprocess = function () {\r\n if (c.analyser) // sometimes is blank because closeMicAnalyser is called while some async audio is being processed after the var is cleared\r\n {\r\n // get the average, bincount is fftsize / 2\r\n const array = new Uint8Array(c.analyser.frequencyBinCount);\r\n c.analyser.getByteFrequencyData(array);\r\n const average = c.getAverageVolume(array); // here's the volume\r\n\r\n if (average > 0 && average < 20) {\r\n c.micLevel = 1;\r\n }\r\n else if (average >= 20 && average < 40) {\r\n c.micLevel = 2;\r\n }\r\n else if (average >= 40) {\r\n c.micLevel = 3;\r\n }\r\n else {\r\n c.micLevel = 0;\r\n }\r\n }\r\n }\r\n },\r\n getAverageVolume(array) {\r\n let values = 0;\r\n let average;\r\n\r\n var length = array.length;\r\n\r\n // get all the frequency amplitudes\r\n for (var i = 0; i < length; i++) {\r\n values += array[i];\r\n }\r\n\r\n average = values / length;\r\n return average;\r\n },\r\n\r\n PlaySound() {\r\n if (!this.selectedDevice) {\r\n utils.warn('Cannot play, no speaker device is selected');\r\n return;\r\n }\r\n\r\n if (this.soundPlaying) {\r\n this.Stop();\r\n return;\r\n }\r\n\r\n let standardizedUrl = api.standardizeUrl(this.soundurl);\r\n\r\n const this_ref = this;\r\n\r\n fetch(standardizedUrl, {\r\n method: \"GET\",\r\n mode: \"cors\",\r\n credentials: \"include\",\r\n headers: {\r\n \"access_token\": token.AccessToken()\r\n }\r\n })\r\n .then((response) => response.blob())\r\n .then((audioBlob) => {\r\n this.blobUrl = URL.createObjectURL(audioBlob);\r\n this.audio = new Audio();\r\n this.audio.setSinkId(this.selectedDevice.id);\r\n this.audio.crossOrigin = \"use-credentials\";\r\n this.audio.src = this.blobUrl;\r\n this.audio.addEventListener(\"canplaythrough\", event => {\r\n this_ref.soundPlaying = true;\r\n });\r\n this.audio.addEventListener(\"ended\", function () {\r\n this_ref.soundPlaying = false;\r\n });\r\n this.audio.play();\r\n });\r\n },\r\n Stop() {\r\n if (this.audio) {\r\n this.audio.pause();\r\n delete this.audio;\r\n URL.revokeObjectURL(this.blobUrl);\r\n }\r\n this.soundPlaying = false;\r\n },\r\n },\r\n render() {\r\n if (!this.devices)\r\n return null;\r\n\r\n let scopedSlots = {\r\n message: ({ message }) => {\r\n return \r\n }\r\n }\r\n\r\n let slots = [\r\n ,\r\n ];\r\n\r\n switch (this.element.formatData.DeviceType) {\r\n case 'Microphone':\r\n slots.push(\r\n \r\n {this.signalIcon}\r\n \r\n );\r\n break;\r\n\r\n case 'Speaker':\r\n if (!this.element.formatData.HidePlayButton)\r\n slots.push(\r\n this.PlaySound()}>\r\n \r\n {this.playIcon}\r\n \r\n \r\n );\r\n break;\r\n }\r\n\r\n utils.debug(`formMediaSelector rendering ${this.labelText} ${this.name} with ${this.itemvalue}`);\r\n\r\n let input = (\r\n this.changeDevice(value)}\r\n on-blur={this.onBlur}\r\n on-focus={this.onFocus}\r\n scopedSlots={scopedSlots}\r\n hint={this.hintText}\r\n persistent-hint={appSettings.DebugTranslationPrefixSetting}\r\n >\r\n {slots}\r\n \r\n );\r\n\r\n if (this.appearance)\r\n input.componentOptions.propsData = { ...input.componentOptions.propsData, ...this.appearance };\r\n\r\n if (this.directives) {\r\n if (input.data.directives)\r\n input.data.directives = [...input.data.directives, ...this.directives];\r\n else\r\n input.data.directives = this.directives;\r\n }\r\n\r\n return input;\r\n }\r\n});","import Vue from 'vue';\r\nimport BaseComponent from './baseFormMixin.jsx';\r\nimport utils from '../../../Shared/utils.jsx';\r\nimport methods from '../../../Shared/methods';\r\n\r\nimport { appSettings } from '@/Shared/appSettings.js';\r\n\r\nVue.component('sform-inputwithheaderbar', {\r\n mixins: [BaseComponent],\r\n data: () => ({\r\n }),\r\n props: {\r\n },\r\n created() {\r\n },\r\n mounted() {\r\n this.loadComplete();\r\n },\r\n computed: {\r\n },\r\n methods: {\r\n },\r\n render() {\r\n let scopedSlots = {\r\n message: ({ message }) => {\r\n return \r\n }\r\n }\r\n\r\n let slots = [\r\n ,\r\n ];\r\n\r\n const input = (\r\n this.sync(value)}\r\n on-blur={this.onBlur}\r\n on-focus={this.onFocus}\r\n scopedSlots={scopedSlots}\r\n hint={this.hintText}\r\n persistent-hint={appSettings.DebugTranslationPrefixSetting}\r\n >\r\n {slots}\r\n \r\n );\r\n\r\n if (this.appearance)\r\n input.componentOptions.propsData = { ...input.componentOptions.propsData, ...this.appearance };\r\n\r\n if (this.directives) {\r\n if (input.data.directives)\r\n input.data.directives = [...input.data.directives, ...this.directives];\r\n else\r\n input.data.directives = this.directives;\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n {input}\r\n \r\n \r\n );\r\n }\r\n});","import Vue from 'vue';\r\nimport BaseComponent from './baseFormMixin.jsx';\r\nimport utils from '../../../Shared/utils.jsx';\r\nimport methods from '../../../Shared/methods';\r\n\r\nimport { appSettings } from '@/Shared/appSettings.js';\r\n\r\nVue.component('sform-textareawithheaderbar', {\r\n mixins: [BaseComponent],\r\n data: () => ({\r\n }),\r\n props: {\r\n },\r\n created() {\r\n },\r\n mounted() {\r\n this.loadComplete();\r\n },\r\n computed: {\r\n textvalue: function () {\r\n if (typeof this.itemvalue === 'object')\r\n return JSON.stringify(this.itemvalue);\r\n else\r\n return this.itemvalue;\r\n }\r\n },\r\n methods: {\r\n },\r\n render() {\r\n let scopedSlots = {\r\n message: ({message}) => {\r\n return \r\n }\r\n }\r\n\r\n let slots = [\r\n ,\r\n ];\r\n\r\n const input = (\r\n this.sync(value)}\r\n on-blur={this.onBlur}\r\n on-focus={this.onFocus}\r\n scopedSlots={scopedSlots}\r\n hint={this.hintText}\r\n persistent-hint={appSettings.DebugTranslationPrefixSetting}\r\n >{slots}\r\n );\r\n\r\n if (this.appearance)\r\n input.componentOptions.propsData = { ...input.componentOptions.propsData, ...this.appearance };\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n {input}\r\n \r\n \r\n );\r\n }\r\n});","import Vue from 'vue';\r\nimport BaseComponent from './baseFormMixin.jsx';\r\nimport utils from '../../../Shared/utils.jsx';\r\nimport methods from '../../../Shared/methods';\r\nimport careHelpfulFunctions from '../../careHelpfulFunctions.jsx';\r\nimport { appSettings } from '@/Shared/appSettings.js';\r\n\r\nVue.component('sform-lookuplist', {\r\n mixins: [BaseComponent],\r\n data: () => ({\r\n dolookupexpn: null,\r\n lookupurlexpn: null,\r\n lookuprawexpn: null,\r\n\r\n displayexpnfunc: null,\r\n valueexpnfunc: null,\r\n\r\n item_text: null,\r\n item_value: null,\r\n item_disabled: undefined,\r\n lookupitems: [],\r\n loading: false,\r\n\r\n arrayfield: null,\r\n arrayelement: null,\r\n keyextractor: null,\r\n }),\r\n props: {\r\n },\r\n created() {\r\n if (this.element.formatData) {\r\n if (this.element.formatData.LookupExpression)\r\n this.dolookupexpn = utils.compileExpression(this, this.element.formatData.LookupExpression);\r\n\r\n if ((!this.element.formatData.LookupType || this.element.formatData.LookupType == 'URL') && this.element.formatData.LookupURL)\r\n this.lookupurlexpn = utils.compile(this, this.element.formatData.LookupURL);\r\n else if (this.element.formatData.LookupType == 'Interpolated' && this.element.formatData.LookupInterpolatedExpression)\r\n this.lookuprawexpn = utils.compileExpression(this, this.element.formatData.LookupInterpolatedExpression);\r\n\r\n if (this.element.formatData.DisplayType == 'Expression') {\r\n const expr = utils.parseExpressionWithFilters(this.element.formatData.DisplayExpression);\r\n this.displayexpnfunc = {\r\n code: expr,\r\n func: new Function('control', 'util', this.element.formatData.LookupModelAs, `with (control) return ${expr};`)\r\n };\r\n }\r\n if (this.element.formatData.ValueType == 'Expression') {\r\n const expr = utils.parseExpressionWithFilters(this.element.formatData.ValueExpression);\r\n this.valueexpnfunc = {\r\n code: expr,\r\n func: new Function('control', 'util', this.element.formatData.LookupModelAs, `with (control) return ${expr};`)\r\n };\r\n }\r\n\r\n switch (this.element.formatData.DisplayType) {\r\n case 'Fieldname': this.item_text = this.element.formatData.DisplayField; break;\r\n case 'Expression':\r\n this.item_text = (data) => {\r\n try {\r\n return data.$emptyrow ? data[this.element.formatData.DisplayField || 'text'] : this.displayexpnfunc.func(this, careHelpfulFunctions, data);\r\n }\r\n catch (e) {\r\n utils.warn(`LookupList DisplayType Expression failed to evaluate: ${this.displayexpnfunc.code}; original: ${this.element.formatData.DisplayExpression}`, e);\r\n return '';\r\n }\r\n };\r\n break;\r\n }\r\n switch (this.element.formatData.ValueType) {\r\n case 'Fieldname': this.item_value = this.element.formatData.ValueField; break;\r\n case 'Expression':\r\n this.item_value = (data) => {\r\n try {\r\n return data.$emptyrow ? data[this.element.formatData.ValueField || 'value'] : this.valueexpnfunc.func(this, careHelpfulFunctions, data);\r\n }\r\n catch (e) {\r\n utils.warn(`LookupList ValueType Expression failed to evaluate: ${this.valueexpnfunc.code}; original: ${this.element.formatData.ValueExpression}`, e);\r\n return '';\r\n }\r\n };\r\n break;\r\n }\r\n\r\n if (this.element.formatData.UniqueValues) {\r\n // If this item is marked for uniqueness, then we must locate the array where\r\n // the list of items are held. Then as we populate the items for the dropdown,\r\n // we can filter out items that have already been selected in another list.\r\n this.arrayfield = this.ParentByType('FormField_ArrayItem')?.Parent;\r\n if (this.arrayfield) {\r\n // Find the model reference that will allow us to read the array element from all\r\n // other array items.\r\n const keys = [...this.element.key]; // Ex: Queues.[].QueueName\r\n const arraykeys = this.ParentByType('FormField_ArrayItem').element.key; // Ex: Queues.[]\r\n keys.splice(0, arraykeys.length); // Ex: QueueName - isolate the element from the array down\r\n\r\n // This is sufficient for 99% of the use cases, but if the key happens to be in an array\r\n // for example Queues.[].Another.[1].QueueName, then this will fail. But I don't expect this\r\n // to ever be a real issue, so the effort to support it isn't worth it. (7/11/2021)\r\n const item = keys.join('.');\r\n if (item)\r\n this.keyextractor = new Function('item', `return item.${item};`);\r\n else\r\n this.keyextractor = new Function('item', `return item;`);\r\n\r\n this.arrayelement = this.arrayfield.FieldValue;\r\n if (this.arrayelement) {\r\n if (!this.arrayfield.chosenitems) this.arrayfield.chosenitems = {};\r\n if (!this.arrayfield.availableitems) Vue.set(this.arrayfield, 'availableitems', {});\r\n this.arrayfield.chosenitems[this.chosenitems_key] = Object.fromEntries(this.arrayelement.map(a => [this.keyextractor(a), true]));\r\n this.item_disabled = (item) => this.getItemValue(item) != this.itemvalue && this.getItemValue(item) in this.arrayfield.chosenitems[this.chosenitems_key];\r\n }\r\n }\r\n }\r\n }\r\n\r\n if (this.lookupurlexpn)\r\n this.lookupurl_watch$ = this.$watch(\r\n function () {\r\n return this.lookupurl;\r\n },\r\n function (newval, oldval) {\r\n this.Refresh();\r\n }\r\n );\r\n\r\n if (this.lookuprawexpn)\r\n this.lookupraw_watch$ = this.$watch(\r\n function () {\r\n return this.lookupraw;\r\n },\r\n function (newval, oldval) {\r\n this.Refresh();\r\n }\r\n );\r\n },\r\n destroyed() {\r\n if (this.lookupurl_watch$)\r\n this.lookupurl_watch$();\r\n\r\n if (this.lookupraw_watch$)\r\n this.lookupraw_watch$();\r\n\r\n if (this.arrayfield && this.arrayelement) {\r\n // Uniqueness has been requested and we have a reference to the array of items already picked.\r\n // We need to generate a lookup object containing every selected item so that we can disable\r\n // those that are already picked in the current dropdown list.\r\n if (!this.arrayfield.chosenitems) this.arrayfield.chosenitems = {};\r\n this.arrayfield.chosenitems[this.chosenitems_key] = Object.fromEntries(this.arrayelement.map(a => [this.keyextractor(a), true]));\r\n\r\n // Update the array container to control if the Add button is enabled or not\r\n Vue.set(this.arrayfield.availableitems, this.chosenitems_key, this.lookupitems && (this.arrayelement.length < this.lookupitems.length));\r\n }\r\n },\r\n async mounted() {\r\n await this.Refresh();\r\n this.loadComplete();\r\n },\r\n computed: {\r\n chosenitems_key: function () {\r\n // Generate a key that is made from the name. Ex: Queue.[0].Name ==> Queue__0__Name\r\n return this.name.replace(/\\./g, '_').replace(/\\[/g, '_').replace(/\\]/g, '_');\r\n },\r\n tolookup: function () {\r\n if (this.dolookupexpn)\r\n return utils.evaluate(this.dolookupexpn, this);\r\n else\r\n return true;\r\n },\r\n lookupurl: function () {\r\n if (this.lookupurlexpn)\r\n try {\r\n return utils.evaluate(this.lookupurlexpn, this, false, null, true);\r\n }\r\n catch (e) {\r\n utils.warn(`LookupList lookupurl could not be evaluated: ${this.lookupurlexpn.code}`, e);\r\n return '';\r\n }\r\n else\r\n return '';\r\n },\r\n lookupraw: function () {\r\n if (this.lookuprawexpn)\r\n try {\r\n return utils.evaluate(this.lookuprawexpn, this, false, null, true);\r\n }\r\n catch (e) {\r\n utils.warn(`LookupList lookupraw could not be evaluated: ${this.lookuprawexpn.code}`, e);\r\n return [];\r\n }\r\n else\r\n return '';\r\n },\r\n OnChangeData: function () {\r\n // This computed property is mixed into the Input data for a schema OnChange event action (see baseFormMixin.jsx)\r\n return {\r\n TitleMap: this.lookupitems.map(i => ({\r\n value: (typeof this.item_value === 'function') ? this.item_value(i) : i[this.item_value],\r\n record: i,\r\n }))\r\n };\r\n },\r\n TitleMap: function () {\r\n return this.lookupitems.map(i => ({\r\n value: (typeof this.item_value === 'function') ? this.item_value(i) : i[this.item_value],\r\n record: i,\r\n }));\r\n },\r\n },\r\n methods: {\r\n async Refresh() {\r\n if (this.tolookup) {\r\n this.loading = true;\r\n\r\n if (this.lookupurlexpn) {\r\n let url = this.lookupurl;\r\n if (url) {\r\n const res = await utils.api.get(url, false, this.element.formatData.CacheLookupResult);\r\n if (res && typeof res === 'object' && Array.isArray(res))\r\n this.lookupitems = res;\r\n else\r\n this.lookupitems = [];\r\n }\r\n }\r\n else if (this.lookuprawexpn) {\r\n this.lookupitems = this.lookupraw;\r\n }\r\n\r\n const allowsNull = this.element && this.element.schema && this.element.schema.$allows_null ? true : false;\r\n if (allowsNull)\r\n this.lookupitems.push({ $emptyrow: true, [this.element.formatData.DisplayField || 'text']: '', [this.element.formatData.ValueField || 'value']: null });\r\n\r\n const allowCustom = this.element.formatData && this.element.formatData.AllowCustomInput;\r\n const defaultAsEmpty = this.element.formatData && this.element.formatData.DefaultAsEmpty;\r\n\r\n // If no item is already selected, auto-select the first unused item in the list\r\n if (!allowCustom && !allowsNull && !defaultAsEmpty && Array.isArray(this.lookupitems) && this.lookupitems.length > 0) {\r\n if (typeof this.item_value === 'function') {\r\n let idx = this.lookupitems.findIndex(a => this.itemvalue == this.item_value(a));\r\n if (idx < 0) {\r\n if (this.itemvalue !== undefined) {\r\n const NotFoundObj = {\r\n $emptyrow: true,\r\n [this.element.formatData.DisplayField || 'text']: '-Not Found-',\r\n [this.element.formatData.ValueField || 'value']: this.itemvalue\r\n };\r\n\r\n this.lookupitems.push(NotFoundObj);\r\n idx = this.lookupitems.length - 1;\r\n }\r\n else if (this.arrayfield && this.arrayfield.chosenitems && this.arrayfield.chosenitems[this.chosenitems_key])\r\n idx = this.lookupitems.findIndex(a => !(this.item_value(a) in this.arrayfield.chosenitems[this.chosenitems_key]));\r\n else\r\n idx = 0;\r\n\r\n if (idx >= 0)\r\n this.setValue(this.item_value(this.lookupitems[idx]));\r\n }\r\n }\r\n else if (typeof this.item_value === 'string') {\r\n let idx = this.lookupitems.findIndex(a => this.itemvalue == a[this.item_value]);\r\n if (idx < 0) {\r\n if (this.itemvalue !== undefined && this.itemvalue !== \"\") {\r\n const NotFoundObj = {\r\n $emptyrow: true,\r\n [this.element.formatData.DisplayField || 'text']: '-Not Found-',\r\n [this.element.formatData.ValueField || 'value']: this.itemvalue\r\n };\r\n\r\n this.lookupitems.push(NotFoundObj);\r\n idx = this.lookupitems.length - 1;\r\n }\r\n else if (this.arrayfield && this.arrayfield.chosenitems && this.arrayfield.chosenitems[this.chosenitems_key])\r\n idx = this.lookupitems.findIndex(a => !(a[this.item_value] in this.arrayfield.chosenitems[this.chosenitems_key]));\r\n else\r\n idx = 0;\r\n\r\n if (idx >= 0)\r\n this.setValue(this.lookupitems[idx][this.item_value]);\r\n }\r\n }\r\n\r\n if (this.arrayfield && this.arrayelement)\r\n // Update the array container to control if the Add button is enabled or not\r\n Vue.set(this.arrayfield.availableitems, this.chosenitems_key, this.lookupitems && (this.arrayelement.length < this.lookupitems.length));\r\n }\r\n\r\n this.loading = false;\r\n }\r\n },\r\n getItemValue(item) {\r\n if (typeof this.item_value === 'function')\r\n return this.item_value(item);\r\n else if (typeof this.item_value === 'string')\r\n return item[this.item_value];\r\n else\r\n return null;\r\n },\r\n setValue(value) {\r\n this.sync(value);\r\n\r\n if (this.arrayfield && this.arrayelement) {\r\n // Uniqueness has been requested and we have a reference to the array of items already picked.\r\n // We need to generate a lookup object containing every selected item so that we can disable\r\n // those that are already picked in the current dropdown list.\r\n this.arrayfield.chosenitems[this.chosenitems_key] = Object.fromEntries(this.arrayelement.map(a => [this.keyextractor(a), true]));\r\n\r\n // Update the array container to control if the Add button is enabled or not\r\n Vue.set(this.arrayfield.availableitems, this.chosenitems_key, this.lookupitems && (this.arrayelement.length < this.lookupitems.length));\r\n }\r\n },\r\n },\r\n render() {\r\n const items = this.lookupitems || [];\r\n\r\n let Tag = 'v-select';\r\n let keyup = ()=>{};\r\n \r\n if (this.element.formatData.AllowCustomInput) {\r\n Tag = 'v-combobox';\r\n keyup = (e) => this.setValue(e.target.value);\r\n } else if (this.element.formatData.AutoCompleteInput) {\r\n Tag = 'v-autocomplete';\r\n }\r\n\r\n let scopedSlots = {\r\n message: ({ message }) => {\r\n return \r\n }\r\n };\r\n\r\n let slots = [\r\n ,\r\n ];\r\n\r\n // editable={true}\r\n let input = (\r\n this.setValue(value)}\r\n on-keyup={keyup}\r\n scopedSlots={scopedSlots}\r\n on-blur={this.onBlur}\r\n on-focus={this.onFocus}\r\n hint={this.hintText}\r\n persistent-hint={appSettings.DebugTranslationPrefixSetting}\r\n >{slots}\r\n );\r\n\r\n if (this.appearance)\r\n input.componentOptions.propsData = { ...input.componentOptions.propsData, ...this.appearance };\r\n\r\n if (this.directives) {\r\n if (input.data.directives)\r\n input.data.directives = [...input.data.directives, ...this.directives];\r\n else\r\n input.data.directives = this.directives;\r\n }\r\n\r\n return input;\r\n }\r\n});","import Vue from 'vue';\r\nimport BaseComponent from './baseFormMixin.jsx';\r\nimport utils from '../../../Shared/utils.jsx';\r\n\r\nVue.component('sform-section', {\r\n mixins: [BaseComponent],\r\n data: () => ({\r\n }),\r\n props: {\r\n },\r\n created() {\r\n },\r\n mounted() {\r\n this.loadComplete();\r\n },\r\n computed: {\r\n },\r\n methods: {\r\n },\r\n render(h) {\r\n if (!this.schema || !this.form)\r\n return null;\r\n\r\n return (\r\n \r\n \r\n );\r\n }\r\n});\r\n","import Vue from 'vue';\r\nimport BaseComponent from './baseFormMixin.jsx';\r\nimport utils from '../../../Shared/utils.jsx';\r\nimport methods from '../../../Shared/methods';\r\nimport careHelpfulFunctions from '../../careHelpfulFunctions.jsx';\r\n\r\nimport { appSettings } from '@/Shared/appSettings.js';\r\n\r\nVue.component('sform-select', {\r\n mixins: [BaseComponent],\r\n data: () => ({\r\n titleMap: null,\r\n formatData: null,\r\n\r\n dolookupexpn: null,\r\n lookupurlexpn: null,\r\n lookuprawexpn: null,\r\n\r\n displayexpnfunc: null,\r\n valueexpnfunc: null,\r\n\r\n item_text: 'name',\r\n item_value: 'value',\r\n item_disabled: undefined,\r\n lookupitems: null,\r\n\r\n arrayfield: null,\r\n arrayelement: null,\r\n keyextractor: null,\r\n }),\r\n props: {\r\n },\r\n created() {\r\n if (this.element.formatData)\r\n this.formatData = this.element.formatData;\r\n else if (this.element.schema && this.element.schema.formatData)\r\n this.formatData = this.element.schema.formatData;\r\n\r\n if (this.formatData && (this.formatData.LookupType || this.formatData.LookupURL || this.formatData.LookupInterpolatedExpression)) {\r\n if (this.formatData.LookupExpression)\r\n this.dolookupexpn = utils.compileExpression(this, this.formatData.LookupExpression);\r\n\r\n if ((!this.formatData.LookupType || this.formatData.LookupType == 'URL') && this.formatData.LookupURL)\r\n this.lookupurlexpn = utils.compile(this, this.formatData.LookupURL);\r\n else if (this.formatData.LookupType == 'Interpolated' && this.formatData.LookupInterpolatedExpression)\r\n this.lookuprawexpn = utils.compileExpression(this, this.formatData.LookupInterpolatedExpression);\r\n\r\n if (this.formatData.DisplayType == 'Expression') {\r\n const expr = utils.parseExpressionWithFilters(this.formatData.DisplayExpression);\r\n this.displayexpnfunc = {\r\n code: expr,\r\n func: new Function('control', 'util', this.formatData.LookupModelAs, `with (control) return ${expr};`)\r\n };\r\n }\r\n if (this.formatData.ValueType == 'Expression') {\r\n const expr = utils.parseExpressionWithFilters(this.formatData.ValueExpression);\r\n this.valueexpnfunc = {\r\n code: expr,\r\n func: new Function('control', 'util', this.formatData.LookupModelAs, `with (control) return ${expr};`)\r\n };\r\n }\r\n\r\n switch (this.formatData.DisplayType) {\r\n case 'Fieldname': this.item_text = this.formatData.DisplayField; break;\r\n case 'Expression':\r\n this.item_text = (data) => {\r\n try {\r\n return data.$emptyrow ? data[this.element.formatData.DisplayField || 'name'] : this.displayexpnfunc.func(this, careHelpfulFunctions, data);\r\n }\r\n catch (e) {\r\n utils.warn(`LookupList DisplayType Expression failed to evaluate: ${this.displayexpnfunc.code}; original: ${this.formatData.DisplayExpression}`, e);\r\n return '';\r\n }\r\n };\r\n break;\r\n }\r\n switch (this.formatData.ValueType) {\r\n case 'Fieldname': this.item_value = this.formatData.ValueField; break;\r\n case 'Expression':\r\n this.item_value = (data) => {\r\n try {\r\n return data.$emptyrow ? data[this.element.formatData.ValueField || 'value'] : this.valueexpnfunc.func(this, careHelpfulFunctions, data);\r\n }\r\n catch (e) {\r\n utils.warn(`LookupList ValueType Expression failed to evaluate: ${this.valueexpnfunc.code}; original: ${this.formatData.ValueExpression}`, e);\r\n return '';\r\n }\r\n };\r\n break;\r\n }\r\n }\r\n else if (this.element.enum && !this.element.titleMap)\r\n this.titleMap = this.element.enum.map(i => ({ name: i, value: i }));\r\n else\r\n this.titleMap = this.element.titleMap.map(i => ({ name: i.name, value: i.value }));\r\n\r\n if (this.formatData && this.formatData.UniqueValues) {\r\n // If this item is marked for uniqueness, then we must locate the array where\r\n // the list of items are held. Then as we populate the items for the dropdown,\r\n // we can filter out items that have already been selected in another list.\r\n this.arrayfield = this.ParentByType('FormField_ArrayItem')?.Parent;\r\n if (this.arrayfield) {\r\n // Find the model reference that will allow us to read the array element from all\r\n // other array items.\r\n const keys = [...this.element.key]; // Ex: Queues.[].QueueName\r\n const arraykeys = this.ParentByType('FormField_ArrayItem').element.key; // Ex: Queues.[]\r\n keys.splice(0, arraykeys.length); // Ex: QueueName - isolate the element from the array down\r\n\r\n // This is sufficient for 99% of the use cases, but if the key happens to be in an array\r\n // for example Queues.[].Another.[1].QueueName, then this will fail. But I don't expect this\r\n // to ever be a real issue, so the effort to support it isn't worth it. (7/11/2021)\r\n this.keyextractor = new Function('item', `return item${keys.length ? `.${keys.join('.')}` : ''};`);\r\n\r\n this.arrayelement = this.arrayfield.FieldValue;\r\n if (this.arrayelement) { \r\n if (!this.arrayfield.chosenitems) this.arrayfield.chosenitems = {};\r\n if (!this.arrayfield.availableitems) Vue.set(this.arrayfield, 'availableitems', {});\r\n this.arrayfield.chosenitems[this.chosenitems_key] = Object.fromEntries(this.arrayelement.map(a => [this.keyextractor(a), true]));\r\n this.item_disabled = (item) => this.getItemValue(item) != this.itemvalue && this.getItemValue(item) in this.arrayfield.chosenitems[this.chosenitems_key];\r\n }\r\n }\r\n }\r\n },\r\n destroyed() {\r\n if (this.arrayfield && this.arrayelement) {\r\n // Uniqueness has been requested and we have a reference to the array of items already picked.\r\n // We need to generate a lookup object containing every selected item so that we can disable\r\n // those that are already picked in the current dropdown list.\r\n if (!this.arrayfield.chosenitems) this.arrayfield.chosenitems = {};\r\n this.arrayfield.chosenitems[this.chosenitems_key] = Object.fromEntries(this.arrayelement.map(a => [this.keyextractor(a), true]));\r\n\r\n const items = this.lookupitems || this.titleMap;\r\n // Update the array container to control if the Add button is enabled or not\r\n Vue.set(this.arrayfield.availableitems, this.chosenitems_key, items && (this.arrayelement.length < items.length));\r\n }\r\n },\r\n async mounted() {\r\n await this.Refresh();\r\n this.loadComplete();\r\n },\r\n computed: {\r\n chosenitems_key: function () {\r\n // Generate a key that is made from the name. Ex: Queue.[0].Name ==> Queue__0__Name\r\n return this.name.replace(/\\./g, '_').replace(/\\[/g, '_').replace(/\\]/g, '_');\r\n },\r\n tolookup: function () {\r\n if (this.dolookupexpn)\r\n return utils.evaluate(this.dolookupexpn, this);\r\n else\r\n return true;\r\n },\r\n lookupurl: function () {\r\n if (this.lookupurlexpn)\r\n try {\r\n return utils.evaluate(this.lookupurlexpn, this, false, null, true);\r\n }\r\n catch (e) {\r\n utils.warn(`LookupList lookupurl could not be evaluated: ${this.lookupurlexpn.code}`, e);\r\n return '';\r\n }\r\n else\r\n return '';\r\n },\r\n lookupraw: function () {\r\n if (this.lookuprawexpn)\r\n try {\r\n return utils.evaluate(this.lookuprawexpn, this, false, null, true);\r\n }\r\n catch (e) {\r\n utils.warn(`LookupList lookupraw could not be evaluated: ${this.lookuprawexpn.code}`, e);\r\n return [];\r\n }\r\n else\r\n return '';\r\n },\r\n OnChangeData: function () {\r\n // This computed property is mixed into the Input data for a schema OnChange event action (see baseFormMixin.jsx)\r\n const items = this.lookupitems || this.titleMap || [];\r\n return {\r\n TitleMap: items.map(i => ({\r\n value: (typeof this.item_value === 'function') ? this.item_value(i) : i[this.item_value],\r\n record: i,\r\n }))\r\n };\r\n },\r\n TitleMap: function () {\r\n const items = this.lookupitems || this.titleMap || [];\r\n return items.map(i => ({\r\n value: (typeof this.item_value === 'function') ? this.item_value(i) : i[this.item_value],\r\n record: i,\r\n }));\r\n },\r\n listitems: function () {\r\n let items = this.lookupitems || this.titleMap || [];\r\n\r\n if (this.element && this.element.schema && this.element.schema.$allows_null)\r\n return [{ $emptyrow: true, [this.formatData?.DisplayField || 'name']: '', [this.formatData?.ValueField || 'value']: null }, ...items ];\r\n\r\n return items;\r\n },\r\n },\r\n watch: {\r\n lookupurl: function () {\r\n this.Refresh();\r\n },\r\n lookupraw: function () {\r\n this.Refresh();\r\n },\r\n },\r\n methods: {\r\n async Refresh() {\r\n if (this.tolookup) {\r\n if (this.lookupurlexpn) {\r\n let url = this.lookupurl;\r\n if (url)\r\n try {\r\n this.lookupitems = await utils.api.get(url, false, this.formatData.CacheLookupResult);\r\n }\r\n catch (e) {\r\n utils.warn(`Failed in form select lookupurl:${url}`, e);\r\n this.lookupitems = [];\r\n }\r\n }\r\n else if (this.lookuprawexpn) {\r\n this.lookupitems = this.lookupraw;\r\n }\r\n }\r\n\r\n const items = this.lookupitems || this.titleMap;\r\n\r\n const allowCustom = this.formatData && this.formatData.AllowCustomInput;\r\n const defaultAsEmpty = this.element.formatData && this.element.formatData.DefaultAsEmpty;\r\n\r\n const allowsNull = this.element && this.element.schema && this.element.schema.$allows_null ? true : false;\r\n\r\n // If no item is already selected, auto-select the first unused item in the list\r\n if (!allowCustom && !allowsNull && !defaultAsEmpty && Array.isArray(items) && items.length > 0) {\r\n if (typeof this.item_value === 'function') {\r\n let idx = items.findIndex(a => this.itemvalue == this.item_value(a));\r\n if (idx < 0) {\r\n if (this.itemvalue !== undefined) {\r\n const NotFoundObj = {\r\n $emptyrow: true,\r\n [this.element.formatData.DisplayField || 'text']: '-Not Found-',\r\n [this.element.formatData.ValueField || 'value']: null\r\n };\r\n\r\n items.push(NotFoundObj);\r\n idx = items.length - 1;\r\n }\r\n else if (this.arrayfield && this.arrayfield.chosenitems && this.arrayfield.chosenitems[this.chosenitems_key])\r\n idx = items.findIndex(a => !(this.item_value(a) in this.arrayfield.chosenitems[this.chosenitems_key]));\r\n else\r\n idx = 0;\r\n\r\n if (idx >= 0)\r\n this.setValue(this.item_value(items[idx]));\r\n }\r\n }\r\n else if (typeof this.item_value === 'string') {\r\n let idx = items.findIndex(a => this.itemvalue == a[this.item_value]);\r\n if (idx < 0) {\r\n if (this.itemvalue !== undefined && this.itemvalue !== \"\") {\r\n const NotFoundObj = {\r\n $emptyrow: true,\r\n [this.element.formatData.DisplayField || 'text']: '-Not Found-',\r\n [this.element.formatData.ValueField || 'value']: null\r\n };\r\n\r\n items.push(NotFoundObj);\r\n idx = items.length - 1;\r\n }\r\n else if (this.arrayfield && this.arrayfield.chosenitems && this.arrayfield.chosenitems[this.chosenitems_key])\r\n idx = items.findIndex(a => !(a[this.item_value] in this.arrayfield.chosenitems[this.chosenitems_key]));\r\n else\r\n idx = 0;\r\n\r\n if (idx >= 0)\r\n this.setValue(items[idx][this.item_value]);\r\n }\r\n }\r\n\r\n if (this.arrayfield && this.arrayelement)\r\n // Update the array container to control if the Add button is enabled or not\r\n Vue.set(this.arrayfield.availableitems, this.chosenitems_key, items && (this.arrayelement.length < items.length));\r\n }\r\n },\r\n getItemValue(item) {\r\n if (typeof this.item_value === 'function')\r\n return this.item_value(item);\r\n else if (typeof this.item_value === 'string')\r\n return item[this.item_value];\r\n else\r\n return null;\r\n },\r\n setValue(value) {\r\n this.sync(value);\r\n\r\n if (this.arrayfield && this.arrayelement) {\r\n // Uniqueness has been requested and we have a reference to the array of items already picked.\r\n // We need to generate a lookup object containing every selected item so that we can disable\r\n // those that are already picked in the current dropdown list.\r\n this.arrayfield.chosenitems[this.chosenitems_key] = Object.fromEntries(this.arrayelement.map(a => [this.keyextractor(a), true]));\r\n\r\n // Update the array container to control if the Add button is enabled or not\r\n Vue.set(this.arrayfield.availableitems, this.chosenitems_key, (this.lookupitems && this.arrayelement.length < this.lookupitems.length) || (this.titleMap && this.arrayelement.length < this.titleMap.length));\r\n }\r\n },\r\n },\r\n render() {\r\n //const items = this.listitems; // this.lookupitems || this.titleMap || [];\r\n\r\n let Tag = 'v-select';\r\n let keyup = ()=>{};\r\n \r\n if (this.formatData?.AllowCustomInput) {\r\n Tag = 'v-combobox';\r\n keyup = (e) => this.setValue(e.target.value);\r\n } else if (this.formatData?.AutoCompleteInput) {\r\n Tag = 'v-autocomplete';\r\n }\r\n\r\n let scopedSlots = {\r\n message: ({ message }) => {\r\n return \r\n },\r\n };\r\n if (appSettings.DebugTranslationPrefixSetting)\r\n scopedSlots.item = ({ item, on }) => {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n };\r\n\r\n let slots = [\r\n ,\r\n ];\r\n \r\n let input = (\r\n this.setValue(value)}\r\n on-keyup={keyup}\r\n on-blur={this.onBlur}\r\n on-focus={this.onFocus}\r\n scopedSlots={scopedSlots}\r\n hint={this.hintText}\r\n persistent-hint={appSettings.DebugTranslationPrefixSetting}\r\n >{slots}\r\n );\r\n\r\n if (this.appearance)\r\n input.componentOptions.propsData = { ...input.componentOptions.propsData, ...this.appearance };\r\n\r\n if (this.directives) {\r\n if (input.data.directives)\r\n input.data.directives = [...input.data.directives, ...this.directives];\r\n else\r\n input.data.directives = this.directives;\r\n }\r\n\r\n return input;\r\n }\r\n});","import BaseComponent from '../BaseComponentMixin.jsx';\r\nimport methods from '../../../Shared/methods';\r\nimport utils from '../../../Shared/utils.jsx';\r\n\r\nexport default {\r\n name: 'DropdownMultiSelectBase',\r\n data: function () {\r\n return {\r\n uniqueref: null,\r\n }\r\n },\r\n props: {\r\n source: {\r\n type: Array,\r\n default: () => []\r\n },\r\n ccmodel: null,\r\n nameField: null,\r\n valueField: null,\r\n placeholder: {\r\n type: String,\r\n default: ''\r\n },\r\n selectionLimit: {\r\n type: Number,\r\n default: 0\r\n },\r\n showCheckAll: {\r\n type: Boolean,\r\n default: true\r\n },\r\n showUncheckAll: {\r\n type: Boolean,\r\n default: true\r\n },\r\n dynamicButtonText: {\r\n type: Boolean,\r\n default: false\r\n },\r\n dynamicItemCount: {\r\n type: Number,\r\n default: 0\r\n },\r\n hint: {\r\n type: String,\r\n default: ''\r\n },\r\n label: {\r\n type: String,\r\n default: ''\r\n },\r\n hideDetails: {\r\n type: Boolean,\r\n default: true\r\n },\r\n },\r\n created() {\r\n this.uniqueref = utils.generateUUID();\r\n },\r\n computed: {\r\n allSelected() {\r\n return this.ccmodel?.length === this.source.length || (this.selectionLimit > 0 && this.ccmodel?.length === this.selectionLimit) || (this.$refs && this.$refs[this.uniqueref]?.filteredItems?.length == this.ccmodel?.length);\r\n },\r\n someSelected() {\r\n return this.ccmodel?.length > 0 && !this.allSelected;\r\n },\r\n selectAllIcon() {\r\n if (this.allSelected) return 'mdi-close-box'\r\n if (this.someSelected) return 'mdi-minus-box'\r\n return 'mdi-checkbox-blank-outline'\r\n },\r\n localModel() {\r\n if (this.ccmodel && !Array.isArray(this.ccmodel))\r\n return [this.ccmodel];\r\n return this.ccmodel;\r\n }\r\n },\r\n //Created Replaced with preRenderComplete\r\n methods: {\r\n ...methods,\r\n async onInput(item) {\r\n let value = null;\r\n // A selection limit of 0 is meant to mean unlimited length, and a selection limit of 1 will emit a \r\n // single item. We want to pop the last item off of the array if it violates the selection limit \r\n if (Array.isArray(item) && this.selectionLimit != 0 && item.length > this.selectionLimit)\r\n item.pop();\r\n if (!Array.isArray(item))\r\n value = [item];\r\n else\r\n value = item;\r\n\r\n if (!value)\r\n value = [];\r\n\r\n this.$emit('input', value);\r\n },\r\n async toggleAll() {\r\n this.$nextTick(() => {\r\n let value = null;\r\n if (this.allSelected)\r\n value = [];\r\n else\r\n value = this.$refs[this.uniqueref].filteredItems.map(x => {\r\n return this.getNameOrValue(this.valueField, x);\r\n }).slice(0, this.selectionLimit > 0 ? this.selectionLimit : undefined);\r\n\r\n this.$emit('input', value);\r\n });\r\n },\r\n getNameOrValue(valueField, sourceObject) {\r\n if (typeof valueField === 'string')\r\n return sourceObject[valueField];\r\n else if (typeof valueField === 'function')\r\n return valueField(sourceObject);\r\n else\r\n return null;\r\n }\r\n },\r\n render(h) {\r\n try {\r\n let scopedSlots = {\r\n selection: ({ item, index, parent }) => {\r\n // We can really only show information about the selected items if they are strings. Otherwise we can only show that there \r\n // are a certain number selected.\r\n let content = null;\r\n if (this.dynamicButtonText && typeof this.getNameOrValue(this.nameField, item) === 'string') {\r\n let isLastIndex = index+1 == this.localModel.length || index+1 == this.dynamicItemCount;\r\n\r\n if (index === 0) {\r\n content = (\r\n {this.getNameOrValue(this.nameField, item)}{parent.isFocused && isLastIndex ?  -  : null }\r\n );\r\n }\r\n else if (index < this.dynamicItemCount) {\r\n content = (\r\n , {this.getNameOrValue(this.nameField, item)}{parent.isFocused && isLastIndex ?  -  : null }\r\n );\r\n }\r\n } else {\r\n if (index === 0) {\r\n content = (\r\n {this.ccmodel?.length} {this.Translate(\"selected\")}{parent.isFocused ?  -  : null }\r\n );\r\n }\r\n }\r\n\r\n return content;\r\n }\r\n }\r\n\r\n let slots = [{this.$slots.label}];\r\n\r\n if (this.selectionLimit !== 1 && (this.showCheckAll || this.showUncheckAll))\r\n slots.push(\r\n
\r\n \r\n \r\n 0 ? 'primary' : ''}>\r\n {this.selectAllIcon}\r\n \r\n \r\n \r\n \r\n {this.allSelected ? this.Translate(\"Unselect all\") : this.Translate(\"Select all\")}\r\n \r\n \r\n \r\n \r\n
);\r\n\r\n return (\r\n this.onInput(val)}\r\n value={this.selectionLimit === 1 && Array.isArray(this.ccmodel) ? this.ccmodel[0] : this.ccmodel}\r\n placeholder={this.placeholder}\r\n multiple={this.selectionLimit !== 1}\r\n scopedSlots={scopedSlots}\r\n hide-details={this.hideDetails}\r\n hint={this.hint}\r\n label={this.label}\r\n ref={this.uniqueref}\r\n >\r\n {/* We have one button to toggle the check all, so we will show the button if multiple selection is allowed\r\n and either show check all is true or show uncheck all is true */}\r\n {slots}\r\n \r\n );\r\n }\r\n catch (e) {\r\n utils.error('DropdownMultiSelectBase Render failed', e);\r\n return
DropdownMultiSelectBase Failed to Render {e}
;\r\n }\r\n }\r\n};","import Vue from 'vue';\r\nimport BaseComponent from './baseFormMixin.jsx';\r\nimport utils from '../../../Shared/utils.jsx';\r\nimport methods from '../../../Shared/methods';\r\nimport careHelpfulFunctions from '../../careHelpfulFunctions.jsx';\r\nimport { appSettings } from '@/Shared/appSettings.js';\r\nimport DropdownMultiSelectBase from '../vuecontrols/DropdownMultiSelectBase';\r\n\r\nVue.component('sform-dropdownmultiselect', {\r\n mixins: [BaseComponent],\r\n data: () => ({\r\n dolookupexpn: null,\r\n lookupurlexpn: null,\r\n lookuprawexpn: null,\r\n\r\n displayexpnfunc: null,\r\n valueexpnfunc: null,\r\n\r\n item_text: null,\r\n item_value: null,\r\n lookupitems: [],\r\n }),\r\n components: {\r\n DropdownMultiSelectBase\r\n },\r\n props: {\r\n },\r\n created() {\r\n if (this.element.schema && this.element.schema.formatData) {\r\n const formatData = this.element.schema.formatData;\r\n\r\n if (formatData.LookupExpression)\r\n this.dolookupexpn = utils.compileExpression(this, formatData.LookupExpression);\r\n\r\n if ((!formatData.LookupType || formatData.LookupType == 'URL') && formatData.LookupURL)\r\n this.lookupurlexpn = utils.compile(this, formatData.LookupURL);\r\n else if (formatData.LookupType == 'Interpolated' && formatData.LookupInterpolatedExpression)\r\n this.lookuprawexpn = utils.compileExpression(this, formatData.LookupInterpolatedExpression);\r\n\r\n if (formatData.DisplayType == 'Expression') {\r\n const expr = utils.parseExpressionWithFilters(formatData.DisplayExpression);\r\n this.displayexpnfunc = {\r\n code: expr,\r\n func: new Function('control', 'util', formatData.LookupModelAs, `with (control) return ${expr};`)\r\n };\r\n }\r\n if (formatData.ValueType == 'Expression') {\r\n const expr = utils.parseExpressionWithFilters(formatData.ValueExpression);\r\n this.valueexpnfunc = {\r\n code: expr,\r\n func: new Function('control', 'util', formatData.LookupModelAs, `with (control) return ${expr};`)\r\n };\r\n }\r\n\r\n switch (formatData.DisplayType) {\r\n case 'Fieldname': this.item_text = formatData.DisplayField; break;\r\n case 'Expression':\r\n this.item_text = (data) => {\r\n try {\r\n return this.displayexpnfunc.func(this, careHelpfulFunctions, data);\r\n }\r\n catch (e) {\r\n utils.warn(`DropdownMutltiSelect DisplayType Expression failed to evaluate: ${this.displayexpnfunc.code}; original: ${formatData.DisplayExpression}`, e);\r\n return '';\r\n }\r\n };\r\n break;\r\n }\r\n switch (formatData.ValueType) {\r\n case 'Fieldname': this.item_value = formatData.ValueField; break;\r\n case 'Expression':\r\n this.item_value = (data) => {\r\n try {\r\n return this.valueexpnfunc.func(this, careHelpfulFunctions, data);\r\n }\r\n catch (e) {\r\n utils.warn(`DropdownMutltiSelect ValueType Expression failed to evaluate: ${this.valueexpnfunc.code}; original: ${formatData.ValueExpression}`, e);\r\n return '';\r\n }\r\n };\r\n break;\r\n }\r\n }\r\n\r\n // Using a manual watch to avoid having the watch function called immediately\r\n\r\n if (this.lookupurlexpn)\r\n this.lookupurl_watch$ = this.$watch(\r\n function () {\r\n return this.lookupurl;\r\n },\r\n function (newval, oldval) {\r\n this.Refresh();\r\n }\r\n );\r\n\r\n if (this.lookuprawexpn)\r\n this.lookupraw_watch$ = this.$watch(\r\n function () {\r\n return this.lookupraw;\r\n },\r\n function (newval, oldval) {\r\n this.Refresh();\r\n }\r\n );\r\n },\r\n destroyed() {\r\n if (this.lookupurl_watch$)\r\n this.lookupurl_watch$();\r\n\r\n if (this.lookupraw_watch$)\r\n this.lookupraw_watch$();\r\n },\r\n computed: {\r\n tolookup: function () {\r\n if (this.dolookupexpn)\r\n return utils.evaluate(this.dolookupexpn, this);\r\n else\r\n return true;\r\n },\r\n lookupurl: function () {\r\n if (this.lookupurlexpn)\r\n try {\r\n return utils.evaluate(this.lookupurlexpn, this, false, null, true);\r\n }\r\n catch (e) {\r\n utils.warn(`DropdownMutltiSelect lookupurl could not be evaluated: ${this.lookupurlexpn.code}`, e);\r\n return '';\r\n }\r\n else\r\n return '';\r\n },\r\n lookupraw: function () {\r\n if (this.lookuprawexpn)\r\n try {\r\n return utils.evaluate(this.lookuprawexpn, this, false, null, true);\r\n }\r\n catch (e) {\r\n utils.warn(`DropdownMutltiSelect lookupraw could not be evaluated: ${this.lookuprawexpn.code}`, e);\r\n return [];\r\n }\r\n else\r\n return '';\r\n },\r\n },\r\n async mounted() {\r\n await this.Refresh();\r\n this.loadComplete();\r\n },\r\n methods: {\r\n async Refresh() {\r\n if (this.tolookup) {\r\n if (this.lookupurlexpn) {\r\n let url = this.lookupurl;\r\n if (url)\r\n this.lookupitems = await utils.api.get(url, false, this.element.schema ? this.element.schema.formatData.CacheLookupResult : true);\r\n }\r\n else if (this.lookuprawexpn) {\r\n this.lookupitems = this.lookupraw;\r\n }\r\n }\r\n },\r\n },\r\n render() {\r\n let slots = [\r\n ,\r\n ];\r\n\r\n const items = this.lookupitems || [];\r\n\r\n let input = (\r\n this.sync(value)}\r\n on-blur={this.onBlur}\r\n on-focus={this.onFocus}\r\n hint={this.hintText}\r\n persistent-hint={appSettings.DebugTranslationPrefixSetting}\r\n source={items}\r\n selectionLimit={this.element.formatData?.SelectionLimit || this.element.schema?.formatData?.SelectionLimit}\r\n showCheckAll={this.element.formatData?.ShowCheckAll || this.element.schema?.formatData?.ShowCheckAll}\r\n showUncheckAll={this.element.formatData?.ShowUncheckAll || this.element.schema?.formatData?.ShowUncheckAll}\r\n dynamicButtonText={this.element.formatData?.DynamicButtonText || this.element.schema?.formatData?.DynamicButtonText}\r\n dynamicItemCount={this.element.formatData?.DynamicItemCount || this.element.schema?.formatData?.DynamicItemCount}\r\n >{slots}\r\n );\r\n\r\n if (this.appearance)\r\n input.componentOptions.propsData = { ...input.componentOptions.propsData, ...this.appearance };\r\n\r\n if (this.directives) {\r\n if (input.data.directives)\r\n input.data.directives = [...input.data.directives, ...this.directives];\r\n else\r\n input.data.directives = this.directives;\r\n }\r\n\r\n return input;\r\n }\r\n});","import Vue from 'vue';\r\nimport BaseComponent from './baseFormMixin.jsx';\r\nimport utils from '../../../Shared/utils.jsx';\r\nimport methods from '../../../Shared/methods';\r\nimport token from '@/Services/token';\r\n\r\nimport { appSettings } from '@/Shared/appSettings.js';\r\n\r\nconst libphonenumber = require('google-libphonenumber');\r\n\r\nVue.component('sform-phonenumber', {\r\n mixins: [BaseComponent],\r\n data: () => ({\r\n customerRegionCode: null,\r\n }),\r\n props: {\r\n },\r\n created() {\r\n this.phoneUtil = libphonenumber.PhoneNumberUtil.getInstance();\r\n this.customerRegionCode = token.CustomerRegionCode();\r\n if (!this.customerRegionCode)\r\n this.customerRegionCode = 'US';\r\n },\r\n mounted() {\r\n this.loadComplete();\r\n },\r\n computed: {\r\n formattedvalue: function () {\r\n return this.f_phoneNumber(this.itemvalue);\r\n },\r\n },\r\n methods: {\r\n syncformatted(value) {\r\n if (value) {\r\n try {\r\n const parsedPhoneNumber = this.phoneUtil.parse(value, this.customerRegionCode);\r\n this.sync(this.phoneUtil.format(parsedPhoneNumber, libphonenumber.PhoneNumberFormat.E164));\r\n }\r\n catch (e) {\r\n utils.warn(`Warning! phone number failed to parse: ${value}`, e);\r\n this.sync(value);\r\n }\r\n }\r\n },\r\n },\r\n render() {\r\n //if (!this.Condition)\r\n // return null;\r\n\r\n let desc;\r\n if (this.element.description)\r\n desc = mdi mdi-information;\r\n\r\n const title = {this.Title};\r\n\r\n let scopedSlots = {\r\n message: ({message}) => {\r\n return \r\n }\r\n }\r\n\r\n let slots = [\r\n ,\r\n ];\r\n\r\n let input = (\r\n this.temp_value = value}\r\n on-focus={() => {\r\n this.temp_value = this.itemvalue;\r\n this.onBlur();\r\n }}\r\n on-blur={() => {\r\n this.syncformatted(this.temp_value);\r\n this.onFocus();\r\n }}\r\n persistent-hint={appSettings.DebugTranslationPrefixSetting}\r\n hint={this.hintText}\r\n scopedSlots={scopedSlots}\r\n >{slots}\r\n );\r\n\r\n if (this.appearance)\r\n input.componentOptions.propsData = { ...input.componentOptions.propsData, ...this.appearance };\r\n\r\n if (this.directives) {\r\n if (input.data.directives)\r\n input.data.directives = [...input.data.directives, ...this.directives];\r\n else\r\n input.data.directives = this.directives;\r\n }\r\n\r\n return input;\r\n\r\n //return (\r\n // \r\n // \r\n // {title} {desc}\r\n // \r\n // \r\n // {input}\r\n // \r\n // \r\n //);\r\n }\r\n});","import Vue from 'vue';\r\nimport BaseComponent from './baseFormMixin.jsx';\r\nimport utils from '../../../Shared/utils.jsx';\r\nimport methods from '../../../Shared/methods';\r\n\r\nimport { appSettings } from '@/Shared/appSettings.js';\r\n\r\nVue.component('sform-date-time', {\r\n mixins: [BaseComponent],\r\n data: () => ({\r\n pickervisible: false,\r\n datevalue: ''\r\n }),\r\n props: {\r\n },\r\n created() {\r\n },\r\n mounted() {\r\n this.loadComplete();\r\n },\r\n computed: {\r\n itemvalue_aslocaldatetime: function () {\r\n // Cannot use ISO format directly \"2200-07-22T06:00:00Z\"\r\n // The format is \"yyyy-MM-ddThh:mm\" followed by optional \":ss\" or \":ss.SSS\".\r\n\r\n const dt = new Date(Date.parse(this.itemvalue));\r\n const year = dt.getFullYear();\r\n const month = (dt.getMonth() + 1).toString();\r\n const day = (dt.getDate()).toString();\r\n const hour = (dt.getHours()).toString();\r\n const minute = (dt.getMinutes()).toString();\r\n const second = (dt.getSeconds()).toString();\r\n\r\n return `${year}-${month.padStart(2, '0')}-${day.padStart(2, '0')}T${hour.padStart(2, '0')}:${minute.padStart(2, '0')}:${second.padStart(2, '0')}`;\r\n },\r\n },\r\n methods: {\r\n saveDate() {\r\n this.pickervisible = false;\r\n },\r\n cancelDate() {\r\n this.pickervisible = false;\r\n },\r\n dateChanged(value) {\r\n // Ex: \"2021-03\" or \"2021-06-17\"\r\n },\r\n sync_fromlocaldatetime(value) {\r\n const dt = new Date(value);\r\n this.sync(dt.toISOString());\r\n },\r\n },\r\n render() {\r\n let scopedSlots = {\r\n message: ({message}) => {\r\n return \r\n }\r\n }\r\n\r\n let slots = [\r\n ,\r\n ];\r\n\r\n const input = (\r\n this.sync_fromlocaldatetime(value)}\r\n on-blur={this.onBlur}\r\n on-focus={this.onFocus}\r\n scopedSlots={scopedSlots}\r\n hint={this.hintText}\r\n persistent-hint={appSettings.DebugTranslationPrefixSetting}\r\n >{slots}\r\n );\r\n\r\n if (this.appearance)\r\n input.componentOptions.propsData = { ...input.componentOptions.propsData, ...this.appearance };\r\n\r\n if (this.directives) {\r\n if (input.data.directives)\r\n input.data.directives = [...input.data.directives, ...this.directives];\r\n else\r\n input.data.directives = this.directives;\r\n }\r\n\r\n return input;\r\n\r\n /* Using the vuetify date-time pickers...\r\n let popup = (\r\n this.pickervisible = value}\r\n transition=\"scale-transition\"\r\n offset-y\r\n scopedSlots={{\r\n activator: ({ on, attrs }) => {\r\n const input =\r\n this.sync(value)}>\r\n ;\r\n\r\n if (this.appearance)\r\n input.componentOptions.propsData = { ...input.componentOptions.propsData, ...this.appearance };\r\n\r\n return input;\r\n }\r\n }}>\r\n\r\n \r\n \r\n \r\n this.dateChanged(e)}\r\n type=\"date\"\r\n no-title\r\n scrollable>\r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n this.cancelDate(e)}>\r\n Cancel\r\n \r\n this.saveDate(e)}>\r\n OK\r\n \r\n \r\n \r\n \r\n );\r\n\r\n return popup;\r\n */\r\n }\r\n});","import Vue from 'vue';\r\nimport BaseComponent from './baseFormMixin.jsx';\r\nimport utils from '../../../Shared/utils.jsx';\r\nimport methods from '../../../Shared/methods';\r\n\r\nimport { appSettings } from '@/Shared/appSettings.js';\r\n\r\nVue.component('sform-date', {\r\n mixins: [BaseComponent],\r\n data: () => ({\r\n pickervisible: false,\r\n }),\r\n props: {\r\n },\r\n created() {\r\n },\r\n mounted() {\r\n this.loadComplete();\r\n },\r\n computed: {\r\n datevalue() {\r\n return this.getFormattedDate(this.itemvalue, true);\r\n }\r\n },\r\n methods: {\r\n saveDate() {\r\n this.pickervisible = false;\r\n },\r\n cancelDate() {\r\n this.pickervisible = false;\r\n },\r\n dateChanged(value) {\r\n // Ex: \"2021-03\" or \"2021-06-17\"\r\n },\r\n getFormattedDate(value, accountForTimezone) {\r\n if (!value)\r\n return '';\r\n\r\n const dt = new Date(Date.parse(value));\r\n\r\n if (accountForTimezone) {\r\n const offset = dt.getTimezoneOffset();\r\n dt.setMinutes(dt.getMinutes() + offset);\r\n }\r\n\r\n const year = dt.getFullYear();\r\n const month = dt.getMonth() + 1;\r\n const day = dt.getDate();\r\n\r\n const str = `${year}-${month.toString().padStart(2, '0')}-${day.toString().padStart(2, '0')}`;\r\n console.log(`Formatting ${value} to ${str} using ${dt.toString()}`);\r\n return str;\r\n },\r\n sync_fromlocaldate(value) {\r\n const str = this.getFormattedDate(value, true);\r\n\r\n utils.debug(`DatePicker writing date to model value:'${value}' as '${str}'`);\r\n\r\n this.sync(str);\r\n },\r\n },\r\n render() {\r\n let scopedSlots = {\r\n message: ({message}) => {\r\n return \r\n }\r\n }\r\n\r\n let slots = [\r\n ,\r\n ];\r\n\r\n const input = (\r\n this.sync_fromlocaldate(value)}\r\n scopedSlots={scopedSlots}\r\n hint={this.hintText}\r\n on-blur={() => {\r\n this.onBlur();\r\n }} \r\n on-focus={this.onFocus}\r\n persistent-hint={appSettings.DebugTranslationPrefixSetting}\r\n >{slots}\r\n );\r\n\r\n if (this.appearance)\r\n input.componentOptions.propsData = { ...input.componentOptions.propsData, ...this.appearance };\r\n\r\n if (this.directives) {\r\n if (input.data.directives)\r\n input.data.directives = [...input.data.directives, ...this.directives];\r\n else\r\n input.data.directives = this.directives;\r\n }\r\n\r\n return input;\r\n\r\n /* Using the vuetify date-time pickers...\r\n let popup = (\r\n this.pickervisible = value}\r\n transition=\"scale-transition\"\r\n offset-y\r\n scopedSlots={{\r\n activator: ({ on, attrs }) => {\r\n const input =\r\n this.sync(value)}>\r\n ;\r\n\r\n if (this.appearance)\r\n input.componentOptions.propsData = { ...input.componentOptions.propsData, ...this.appearance };\r\n\r\n return input;\r\n }\r\n }}>\r\n\r\n \r\n \r\n \r\n this.dateChanged(e)}\r\n type=\"date\"\r\n no-title\r\n scrollable>\r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n this.cancelDate(e)}>\r\n Cancel\r\n \r\n this.saveDate(e)}>\r\n OK\r\n \r\n \r\n \r\n \r\n );\r\n\r\n return popup;\r\n */\r\n }\r\n});","import Vue from 'vue';\r\nimport BaseComponent from './baseFormMixin.jsx';\r\nimport utils from '../../../Shared/utils.jsx';\r\nimport methods from '../../../Shared/methods';\r\n\r\nimport { appSettings } from '@/Shared/appSettings.js';\r\n\r\nVue.component('sform-time', {\r\n mixins: [BaseComponent],\r\n data: () => ({\r\n }),\r\n props: {\r\n },\r\n created() {\r\n },\r\n mounted() {\r\n this.loadComplete();\r\n },\r\n computed: {\r\n itemvalue_aslocaldatetime: function () {\r\n // Cannot use ISO format directly \"2200-07-22T06:00:00Z\"\r\n // The format is \"yyyy-MM-ddThh:mm\" followed by optional \":ss\" or \":ss.SSS\".\r\n utils.debug(`itemvalue_aslocaldatetime: ${this.itemvalue}`);\r\n\r\n let dt;\r\n if (this.itemvalue)\r\n dt = new Date(Date.parse(this.itemvalue));\r\n else\r\n return undefined;\r\n\r\n const h = dt.getHours().toString();\r\n const m = dt.getMinutes().toString();\r\n const s = dt.getSeconds().toString();\r\n return `${h.padStart(2, '0')}:${m.padStart(2, '0')}:${s.padStart(2, '0')}`;\r\n },\r\n },\r\n methods: {\r\n sync_fromlocaldatetime(value) {\r\n if (!value.includes('T'))\r\n value = '2021-01-01T' + value;\r\n\r\n const dt = new Date(value);\r\n utils.debug(`sync_fromlocaldatetime:'${value}' as '${dt.toISOString()}'`);\r\n this.sync(dt.toISOString());\r\n },\r\n },\r\n render() {\r\n let scopedSlots = {\r\n message: ({message}) => {\r\n return \r\n }\r\n }\r\n\r\n let slots = [\r\n ,\r\n ];\r\n\r\n const input = (\r\n this.sync_fromlocaldatetime(value)}\r\n on-blur={this.onBlur}\r\n on-focus={this.onFocus}\r\n scopedSlots={scopedSlots}\r\n hint={this.hintText}\r\n persistent-hint={appSettings.DebugTranslationPrefixSetting}\r\n >{slots}\r\n );\r\n\r\n if (this.appearance)\r\n input.componentOptions.propsData = { ...input.componentOptions.propsData, ...this.appearance };\r\n\r\n if (this.directives) {\r\n if (input.data.directives)\r\n input.data.directives = [...input.data.directives, ...this.directives];\r\n else\r\n input.data.directives = this.directives;\r\n }\r\n\r\n return input;\r\n }\r\n});","import Vue from 'vue';\r\nimport BaseComponent from './baseFormMixin.jsx';\r\nimport utils from '../../../Shared/utils.jsx';\r\nimport methods from '../../../Shared/methods';\r\n\r\nimport { appSettings } from '@/Shared/appSettings.js';\r\n\r\nconst datetimeregex1 = /\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d/;\r\nconst datetimeregex2 = /\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d:[0-5]\\d/;\r\nconst datetimeregex3 = /(\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d:[0-5]\\d\\.\\d+([+-][0-2]\\d:[0-5]\\d|Z))|(\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d:[0-5]\\d([+-][0-2]\\d:[0-5]\\d|Z))|(\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d([+-][0-2]\\d:[0-5]\\d|Z))/;\r\n\r\nVue.component('sform-datepicker', {\r\n mixins: [BaseComponent],\r\n data: () => ({\r\n }),\r\n props: {\r\n },\r\n created() {\r\n },\r\n mounted() {\r\n this.loadComplete();\r\n },\r\n computed: {\r\n itemvalue_aslocaldate: function () {\r\n // Cannot use ISO format directly \"2200-07-22T06:00:00Z\"\r\n // The format is \"yyyy-MM-dd\"\r\n if (!this.itemvalue)\r\n return '';\r\n\r\n const dt = new Date(Date.parse(this.itemvalue));\r\n const year = dt.getFullYear();\r\n const month = (dt.getMonth() + 1).toString();\r\n const day = (dt.getDate()).toString();\r\n\r\n const str = `${year}-${month.padStart(2, '0')}-${day.padStart(2, '0')}`;\r\n\r\n utils.debug(`DatePicker reading date from model value:'${this.itemvalue}' as '${str}'`);\r\n\r\n return str;\r\n },\r\n itemvalue_aslocaltime: function () {\r\n // Cannot use ISO format directly \"2200-07-22T06:00:00Z\"\r\n // The format is \"hh:mm\" followed by optional \":ss\" or \":ss.SSS\".\r\n if (!this.itemvalue)\r\n return '';\r\n\r\n let str;\r\n if (this.itemvalue.match(datetimeregex1) || this.itemvalue.match(datetimeregex2) || this.itemvalue.match(datetimeregex3)) {\r\n const dt = new Date(Date.parse(this.itemvalue));\r\n const hour = (dt.getHours()).toString();\r\n const minute = (dt.getMinutes()).toString();\r\n const second = (dt.getSeconds()).toString();\r\n\r\n str = `${hour.padStart(2, '0')}:${minute.padStart(2, '0')}:${second.padStart(2, '0')}`;\r\n }\r\n else {\r\n // Assume HH:MM[:SS] (seconds are optional)\r\n const dt = this.itemvalue.split(':');\r\n const hour = dt.length > 0 ? dt[0] : '00';\r\n const minute = dt.length > 1 ? dt[1] : '00';\r\n const second = dt.length > 2 ? dt[2] : '00';\r\n\r\n str = `${hour.padStart(2, '0')}:${minute.padStart(2, '0')}:${second.padStart(2, '0')}`;\r\n }\r\n utils.debug(`DatePicker reading time from model value:'${this.itemvalue}' as '${str}'`);\r\n\r\n return str;\r\n },\r\n },\r\n methods: {\r\n sync_fromlocaldate(value) {\r\n const dt = new Date(value);\r\n const year = dt.getFullYear();\r\n const month = (dt.getMonth() + 1).toString();\r\n const day = (dt.getDate()).toString();\r\n const str = `${year}-${month.padStart(2, '0')}-${day.padStart(2, '0')}`;\r\n\r\n utils.debug(`DatePicker writing date to model value:'${value}' as '${str}'`);\r\n\r\n this.sync(str);\r\n },\r\n sync_fromlocaltime(value) {\r\n // Assume HH:MM[:SS] (seconds are optional)\r\n const dt = value.split(':');\r\n const hour = dt.length > 0 ? dt[0] : '00';\r\n const minute = dt.length > 1 ? dt[1] : '00';\r\n const second = dt.length > 2 ? dt[2] : '00';\r\n const str = `1900-01-01T${hour.padStart(2, '0')}:${minute.padStart(2, '0')}:${second.padStart(2, '0')}`;\r\n\r\n utils.debug(`DatePicker writing time to model value:'${value}' as '${str}'`);\r\n\r\n this.sync(str);\r\n },\r\n },\r\n render() {\r\n let input;\r\n\r\n let scopedSlots = {\r\n message: ({message}) => {\r\n return \r\n }\r\n }\r\n\r\n let slots = [\r\n ,\r\n ];\r\n\r\n if (this.element.format == 'date')\r\n input = (\r\n this.sync_fromlocaldate(value)}\r\n scopedSlots={scopedSlots}\r\n hint={this.hintText}\r\n on-blur={this.onBlur}\r\n on-focus={this.onFocus}\r\n persistent-hint={appSettings.DebugTranslationPrefixSetting}\r\n >{slots}\r\n );\r\n else if (this.element.format == 'time')\r\n input = (\r\n this.sync_fromlocaltime(value)}\r\n scopedSlots={scopedSlots}\r\n hint={this.hintText}\r\n on-blur={this.onBlur}\r\n on-focus={this.onFocus}\r\n persistent-hint={appSettings.DebugTranslationPrefixSetting}\r\n >{slots}\r\n );\r\n\r\n if (input && this.appearance)\r\n input.componentOptions.propsData = { ...input.componentOptions.propsData, ...this.appearance };\r\n\r\n if (this.directives) {\r\n if (input.data.directives)\r\n input.data.directives = [...input.data.directives, ...this.directives];\r\n else\r\n input.data.directives = this.directives;\r\n }\r\n\r\n return input;\r\n }\r\n});","import Vue from 'vue';\r\nimport BaseComponent from './baseFormMixin.jsx';\r\nimport utils from '@/Shared/utils.jsx';\r\nimport cDateRangePicker from '@/Application/components/vuecontrols/DateRangePicker';\r\n\r\nimport { appSettings } from '@/Shared/appSettings.js';\r\n\r\n\r\nVue.component('sform-daterangepicker', {\r\n mixins: [BaseComponent],\r\n components: {cDateRangePicker},\r\n data: () => ({\r\n titleRenderer: null,\r\n defaultRenderer: null,\r\n }),\r\n props: {\r\n },\r\n created() {\r\n },\r\n mounted() {\r\n this.loadComplete();\r\n },\r\n computed: {\r\n default: function() {\r\n try {\r\n if (this.defaultRenderer === null && (this.element.default || this.element.schema.default))\r\n this.defaultRenderer = utils.compile(this, this.element.default || this.element.schema.default);\r\n\r\n if (this.defaultRenderer)\r\n return utils.evaluate(this.defaultRenderer, this);\r\n else\r\n return '';\r\n }\r\n catch (e)\r\n {\r\n utils.warn('Default could not evaluate expression: ' + (this.element.default || this.element.schema.default) + '; ' + e);\r\n return '';\r\n }\r\n },\r\n },\r\n methods: {\r\n applyDateRangeHandler(date) {\r\n this.sync(date);\r\n },\r\n },\r\n render() {\r\n try {\r\n\r\n let dateRangePicker = \r\n\r\n if (this.appearance)\r\n dateRangePicker.componentOptions.propsData = { ...dateRangePicker.componentOptions.propsData, ...this.appearance };\r\n\r\n return dateRangePicker;\r\n }\r\n catch (e) {\r\n utils.error('DateRangePicker Render failed', e);\r\n return
DateRangePicker Failed to Render {e}
;\r\n }\r\n }\r\n});","import Vue from 'vue';\r\nimport BaseComponent from './baseFormMixin.jsx';\r\nimport utils from '@/Shared/utils.jsx';\r\nimport cDateRangePicker from '@/Application/components/vuecontrols/DateRangePicker';\r\n\r\nimport { appSettings } from '@/Shared/appSettings.js';\r\n\r\n\r\nVue.component('sform-singledatepicker', {\r\n mixins: [BaseComponent],\r\n components: {cDateRangePicker},\r\n data: () => ({\r\n titleRenderer: null,\r\n defaultRenderer: null,\r\n }),\r\n props: {\r\n },\r\n created() {\r\n },\r\n mounted() {\r\n this.loadComplete();\r\n },\r\n computed: {\r\n default: function() {\r\n try {\r\n if (this.defaultRenderer === null && this.element.schema.default)\r\n this.defaultRenderer = utils.compile(this, this.element.schema.default);\r\n if (this.defaultRenderer)\r\n return utils.evaluate(this.defaultRenderer, this);\r\n else\r\n return {};\r\n }\r\n catch (e)\r\n {\r\n utils.warn('Default could not evaluate expression: ' + this.element.schema.default + '; ' + e);\r\n return '';\r\n }\r\n },\r\n },\r\n methods: {\r\n applyDateRangeHandler(date) {\r\n this.sync(date);\r\n },\r\n },\r\n render() {\r\n try {\r\n let dateRangePicker = \r\n\r\n if (this.appearance)\r\n dateRangePicker.componentOptions.propsData = { ...dateRangePicker.componentOptions.propsData, ...this.appearance };\r\n\r\n return dateRangePicker;\r\n }\r\n catch (e) {\r\n utils.error('DateRangePicker Render failed', e);\r\n return
DateRangePicker Failed to Render {e}
;\r\n }\r\n }\r\n});","import Vue from 'vue';\r\nimport BaseComponent from './baseFormMixin.jsx';\r\nimport utils from '../../../Shared/utils.jsx';\r\nimport methods from '../../../Shared/methods';\r\n\r\nimport { appSettings } from '@/Shared/appSettings.js';\r\n\r\nVue.component('sform-email', {\r\n mixins: [BaseComponent],\r\n data: () => ({\r\n }),\r\n props: {\r\n },\r\n created() {\r\n },\r\n mounted() {\r\n this.loadComplete();\r\n },\r\n computed: {\r\n\r\n },\r\n methods: {\r\n },\r\n render() {\r\n let scopedSlots = {\r\n message: ({message}) => {\r\n return \r\n }\r\n }\r\n\r\n let slots = [\r\n ,\r\n ];\r\n\r\n const input = (\r\n this.sync(value)}\r\n scopedSlots={scopedSlots}\r\n hint={this.hintText}\r\n persistent-hint={appSettings.DebugTranslationPrefixSetting}\r\n on-blur={this.onBlur}\r\n on-focus={this.onFocus}\r\n >{slots}\r\n );\r\n\r\n if (this.appearance)\r\n input.componentOptions.propsData = { ...input.componentOptions.propsData, ...this.appearance };\r\n \r\n if (this.directives) {\r\n if (input.data.directives)\r\n input.data.directives = [...input.data.directives, ...this.directives];\r\n else\r\n input.data.directives = this.directives;\r\n }\r\n\r\n return input;\r\n }\r\n});","import Vue from 'vue';\r\nimport BaseComponent from './baseFormMixin.jsx';\r\nimport utils from '../../../Shared/utils.jsx';\r\n\r\nVue.component('sform-tabs', {\r\n mixins: [BaseComponent],\r\n data: () => ({\r\n selected_tab: 0,\r\n tabs_items: [],\r\n defaultTabexpn: null,\r\n }),\r\n props: {\r\n },\r\n created() {\r\n for (let tabi = 0; tabi < this.element.tabs.length; tabi++) {\r\n const tab = this.element.tabs[tabi];\r\n if (tab.title)\r\n tab.$$titleexpn = utils.compile(this, this.Translate(tab.title));\r\n }\r\n\r\n if (this.element.defaultTab)\r\n this.defaultTabexpn = utils.compile(this, this.element.defaultTab);\r\n },\r\n mounted() {\r\n if (this.defaultTabexpn) {\r\n const defaultTab = utils.evaluate(this.defaultTabexpn, this);\r\n const idx = this.element.tabs.findIndex(t => t.name == defaultTab);\r\n if (idx >= 0)\r\n this.selected_tab = idx;\r\n }\r\n this.loadComplete();\r\n },\r\n computed: {\r\n name: function () {\r\n return 'FormField_tabs';\r\n },\r\n SelectedTabIndex: function () {\r\n return this.selected_tab;\r\n },\r\n },\r\n methods: {\r\n getcondition(tab) {\r\n if (tab.condition && !tab.$$condition)\r\n tab.$$condition = utils.compileExpression(this, tab.condition);\r\n\r\n if (tab.$$condition)\r\n return utils.evaluate(tab.$$condition, this);\r\n else\r\n return true;\r\n },\r\n },\r\n render() {\r\n const tabs = [];\r\n const tab_body = [];\r\n\r\n for (let tabi = 0; tabi < this.element.tabs.length; tabi++) {\r\n const tab = this.element.tabs[tabi];\r\n\r\n const title = \r\n\r\n tabs.push(\r\n \r\n {title}\r\n \r\n );\r\n\r\n tab_body.push(\r\n \r\n \r\n \r\n \r\n );\r\n }\r\n\r\n return (\r\n \r\n this.selected_tab = index}\r\n on-blur={this.onBlur}\r\n on-focus={this.onFocus}>\r\n {tabs}\r\n \r\n\r\n \r\n {tab_body}\r\n \r\n \r\n );\r\n }\r\n});","import Vue from 'vue';\r\nimport BaseFieldsetComponent from './baseFieldsetMixin.jsx';\r\nimport utils from '../../../Shared/utils.jsx';\r\n\r\nVue.component('sform-conditional', {\r\n mixins: [BaseFieldsetComponent],\r\n data: () => ({\r\n }),\r\n props: {\r\n },\r\n created() {\r\n },\r\n methods: {\r\n\r\n },\r\n render(h) {\r\n if (!this.form)\r\n return null;\r\n\r\n\r\n return (\r\n \r\n {this.generateElements(h, this.form, this.layouttype)}\r\n
\r\n );\r\n }\r\n});","import Vue from 'vue';\r\nimport BaseComponent from './baseFormMixin.jsx';\r\nimport utils from '../../../Shared/utils.jsx';\r\nimport methods from '../../../Shared/methods';\r\n\r\nVue.component('sform-controls-with-label', {\r\n mixins: [BaseComponent],\r\n data: () => ({\r\n }),\r\n props: {\r\n },\r\n created() {\r\n },\r\n mounted() {\r\n this.loadComplete();\r\n },\r\n computed: {\r\n },\r\n methods: {\r\n },\r\n render(h) {\r\n // This is handled in the layoutCard now - any form element can have a Controls array.\r\n\r\n //const items = utils.generateItemsFromArray(h, this, this.element.Controls || [], null, 'ControlsWithLabel');\r\n\r\n //let input = (\r\n // \r\n // {items}\r\n // \r\n //);\r\n\r\n return undefined; // input;\r\n }\r\n});","import Vue from 'vue';\r\nimport BaseComponent from './baseFormMixin.jsx';\r\nimport utils from '../../../Shared/utils.jsx';\r\nimport methods from '../../../Shared/methods';\r\nimport careHelpfulFunctions from '../../careHelpfulFunctions';\r\n\r\nimport { appSettings } from '@/Shared/appSettings.js';\r\n\r\nconst iconPickerMixin = {\r\n mixins: [BaseComponent],\r\n data: () => ({\r\n formatData: null,\r\n\r\n dolookupexpn: null,\r\n lookupurlexpn: null,\r\n lookuprawexpn: null,\r\n\r\n displayexpnfunc: null,\r\n valueexpnfunc: null,\r\n iconexpnfunc: null,\r\n\r\n item_text: 'name',\r\n item_value: 'value',\r\n item_disabled: undefined,\r\n item_icon: null,\r\n\r\n lookupitems: null,\r\n }),\r\n props: {\r\n },\r\n created() {\r\n if (this.element.formatData)\r\n this.formatData = this.element.formatData;\r\n else if (this.element.schema && this.element.schema.formatData)\r\n this.formatData = this.element.schema.formatData;\r\n\r\n if (this.formatData && (this.formatData.LookupType || this.formatData.LookupURL || this.formatData.LookupInterpolatedExpression)) {\r\n if (this.formatData.LookupExpression)\r\n this.dolookupexpn = utils.compileExpression(this, this.formatData.LookupExpression);\r\n\r\n if ((!this.formatData.LookupType || this.formatData.LookupType == 'URL') && this.formatData.LookupURL)\r\n this.lookupurlexpn = utils.compile(this, this.formatData.LookupURL);\r\n else if (this.formatData.LookupType == 'Interpolated' && this.formatData.LookupInterpolatedExpression)\r\n this.lookuprawexpn = utils.compileExpression(this, this.formatData.LookupInterpolatedExpression);\r\n\r\n if (this.formatData.DisplayType == 'Expression') {\r\n const expr = utils.parseExpressionWithFilters(this.formatData.DisplayExpression);\r\n this.displayexpnfunc = {\r\n code: expr,\r\n func: new Function('control', 'util', this.formatData.LookupModelAs, `with (control) return ${expr};`)\r\n };\r\n }\r\n if (this.formatData.ValueType == 'Expression') {\r\n const expr = utils.parseExpressionWithFilters(this.formatData.ValueExpression);\r\n this.valueexpnfunc = {\r\n code: expr,\r\n func: new Function('control', 'util', this.formatData.LookupModelAs, `with (control) return ${expr};`)\r\n };\r\n }\r\n if (this.formatData.IconUrlType == 'Expression') {\r\n const expr = utils.parseExpressionWithFilters(this.formatData.IconUrlExpression);\r\n this.iconexpnfunc = {\r\n code: expr,\r\n func: new Function('control', 'util', this.formatData.LookupModelAs, `with (control) return ${expr};`)\r\n };\r\n }\r\n\r\n switch (this.formatData.DisplayType) {\r\n case 'Fieldname': this.item_text = this.formatData.DisplayField; break;\r\n case 'Expression':\r\n this.item_text = (data) => {\r\n try {\r\n return this.displayexpnfunc.func(this, careHelpfulFunctions, data);\r\n }\r\n catch (e) {\r\n utils.warn(`LookupList DisplayType Expression failed to evaluate: ${this.displayexpnfunc.code}; original: ${this.formatData.DisplayExpression}`, e);\r\n return '';\r\n }\r\n };\r\n break;\r\n }\r\n switch (this.formatData.ValueType) {\r\n case 'Fieldname': this.item_value = this.formatData.ValueField; break;\r\n case 'Expression':\r\n this.item_value = (data) => {\r\n try {\r\n return this.valueexpnfunc.func(this, careHelpfulFunctions, data);\r\n }\r\n catch (e) {\r\n utils.warn(`LookupList ValueType Expression failed to evaluate: ${this.valueexpnfunc.code}; original: ${this.formatData.ValueExpression}`, e);\r\n return '';\r\n }\r\n };\r\n break;\r\n }\r\n switch (this.formatData.IconUrlType) {\r\n case 'Fieldname': this.item_icon = this.formatData.IconUrlField; break;\r\n case 'Expression':\r\n this.item_icon = (data) => {\r\n try {\r\n return this.iconexpnfunc.func(this, careHelpfulFunctions, data);\r\n }\r\n catch (e) {\r\n utils.warn(`formBasicIconPicker IconUrlType Expression failed to evaluate: ${this.iconexpnfunc.code}; original: ${this.formatData.IconUrlExpression}`, e);\r\n return '';\r\n }\r\n };\r\n break;\r\n }\r\n }\r\n },\r\n async mounted() {\r\n await this.Refresh();\r\n this.loadComplete();\r\n },\r\n computed: {\r\n tolookup: function () {\r\n if (this.dolookupexpn)\r\n return utils.evaluate(this.dolookupexpn, this);\r\n else\r\n return true;\r\n },\r\n lookupurl: function () {\r\n if (this.lookupurlexpn)\r\n try {\r\n return utils.evaluate(this.lookupurlexpn, this, false, null, true);\r\n }\r\n catch (e) {\r\n utils.warn(`basiciconpicker lookupurl could not be evaluated: ${this.lookupurlexpn.code}`, e);\r\n return '';\r\n }\r\n else\r\n return '';\r\n },\r\n lookupraw: function () {\r\n if (this.lookuprawexpn)\r\n try {\r\n return utils.evaluate(this.lookuprawexpn, this, false, null, true);\r\n }\r\n catch (e) {\r\n utils.warn(`basiciconpicker lookupraw could not be evaluated: ${this.lookuprawexpn.code}`, e);\r\n return [];\r\n }\r\n else\r\n return '';\r\n },\r\n },\r\n watch: {\r\n lookupurl: function () {\r\n this.Refresh();\r\n },\r\n lookupraw: function () {\r\n this.Refresh();\r\n },\r\n },\r\n methods: {\r\n async Refresh() {\r\n if (this.tolookup) {\r\n if (this.lookupurlexpn) {\r\n let url = this.lookupurl;\r\n if (url)\r\n try {\r\n this.lookupitems = await utils.api.get(url, false, this.formatData.CacheLookupResult);\r\n }\r\n catch (e) {\r\n utils.warn(`Failed in form basiciconpicker lookupurl:${url}`, e);\r\n this.lookupitems = [];\r\n }\r\n }\r\n else if (this.lookuprawexpn) {\r\n this.lookupitems = this.lookupraw;\r\n }\r\n }\r\n },\r\n getItemValue(item) {\r\n if (typeof this.item_value === 'function')\r\n return this.item_value(item);\r\n else if (typeof this.item_value === 'string')\r\n return item[this.item_value];\r\n else\r\n return null;\r\n },\r\n getItemIcon(item) {\r\n var icon = null;\r\n\r\n if (typeof this.item_icon === 'function') {\r\n icon = this.item_icon(item);\r\n } else if (typeof this.item_icon === 'string') {\r\n icon = item[this.item_icon];\r\n }\r\n \r\n if (!icon && this.formatData.DefaultIcon) {\r\n return
{this.formatData.DefaultIcon}
;\r\n } else if (icon) {\r\n return ;\r\n } else {\r\n return null;\r\n }\r\n },\r\n getCurrentItemIcon() {\r\n const value = this.itemvalue;\r\n const index = this.lookupitems.findIndex(a => this.getItemValue(a) == value);\r\n if (index >= 0)\r\n return this.getItemIcon(this.lookupitems[index]);\r\n else\r\n return null;\r\n },\r\n },\r\n render() {\r\n if (!this.lookupitems)\r\n return null;\r\n\r\n let scopedSlots = {\r\n message: ({ message }) => {\r\n return \r\n },\r\n item: ({ item, on }) => {\r\n return (\r\n \r\n \r\n {this.getItemIcon(item)}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n },\r\n };\r\n\r\n let slots = [];\r\n\r\n let icon = this.getCurrentItemIcon();\r\n\r\n if (icon) {\r\n slots.push(icon)\r\n }\r\n\r\n let Tag;\r\n let keyup = ()=>{};\r\n\r\n if (this.element.formatData && this.element.formatData.AllowCustomInput) {\r\n Tag = 'v-combobox';\r\n keyup = (e) => this.sync(e.target.value);\r\n }\r\n else\r\n Tag = 'v-autocomplete';\r\n\r\n let input = (\r\n this.sync(value)}\r\n on-keyup={keyup}\r\n hint={this.hintText}\r\n persistent-hint={appSettings.DebugTranslationPrefixSetting}\r\n scopedSlots={scopedSlots}\r\n >{slots}\r\n );\r\n \r\n\r\n if (this.appearance)\r\n input.componentOptions.propsData = { ...input.componentOptions.propsData, ...this.appearance };\r\n\r\n if (this.directives) {\r\n if (input.data.directives)\r\n input.data.directives = [...input.data.directives, ...this.directives];\r\n else\r\n input.data.directives = this.directives;\r\n }\r\n \r\n return input;\r\n }\r\n};\r\n\r\nVue.component('sform-basiciconpicker', {\r\n mixins: [iconPickerMixin]\r\n});","import Vue from 'vue';\r\nimport BaseComponent from './baseFormMixin.jsx';\r\nimport BaseFieldsetComponent from './baseFieldsetMixin.jsx';\r\nimport utils from '../../../Shared/utils.jsx';\r\nimport methods from '../../../Shared/methods';\r\n\r\nVue.component('sform-anyof', {\r\n mixins: [BaseComponent],\r\n data: function () {\r\n return {\r\n listitems: [],\r\n selected_item: null,\r\n selected_value: null,\r\n form_all: [],\r\n }\r\n },\r\n created() {\r\n const schema = this.element.schema;\r\n\r\n const items = [{ text: '-None-', value: \"!!null!!\" }];\r\n\r\n for (var i = 0; i < schema.anyOf.length; i++) {\r\n const s = schema.anyOf[i];\r\n const item = utils.schema.resolve_Of(s);\r\n\r\n items.push({ text: item.title, value: s.Id });\r\n }\r\n\r\n this.listitems = items;\r\n\r\n this.chooseAnyOf(schema, schema.default, true);\r\n },\r\n mounted() {\r\n this.loadComplete();\r\n },\r\n computed: {\r\n },\r\n methods: {\r\n chooseAnyOf(schema, newvalue, loading) {\r\n if (!loading)\r\n this.anyOf_remove();\r\n\r\n const idx = schema.anyOf.findIndex(s => s.Id == newvalue);\r\n\r\n if (idx >= 0) {\r\n const s = schema.anyOf[idx];\r\n const item = utils.schema.resolve_Of(s);\r\n\r\n this.selected_item = item;\r\n this.selected_value = s.Id;\r\n\r\n const value = { ...this.element };\r\n value.type = 'fieldset';\r\n value.schema = this.selected_item;\r\n value.items = [];\r\n utils.forms.generateAllSchemaItems(value.key, value.items, value.schema);\r\n\r\n this.form_all = [value];\r\n\r\n this.anyOf_govisible();\r\n }\r\n else {\r\n this.selected_item = null;\r\n this.selected_value = newvalue;\r\n this.form_all = [];\r\n }\r\n },\r\n async sync_anyof(value) {\r\n this.chooseAnyOf(this.element.schema, value);\r\n },\r\n govisible() {\r\n // Suppress base mixin default behavior (which populates from the schema default, which would be a string, not an object)\r\n },\r\n anyOf_remove() {\r\n if (!this.ParentModel) {\r\n //utils.debug(` +++ Schema element ${this.name} has no ParentModel (undefined)`);\r\n return;\r\n }\r\n\r\n // Remove the field from the parent model\r\n const last = this.element.key[this.element.key.length - 1];\r\n if (last != '[]' && (last in this.ParentModel)) {\r\n Vue.delete(this.ParentModel, last);\r\n }\r\n },\r\n anyOf_govisible() {\r\n if (!this.ParentModel) {\r\n //utils.debug(` +++ Schema element ${this.name} has no ParentModel (undefined)`);\r\n return;\r\n }\r\n\r\n // Fill in default value if not already populated\r\n const last = this.element.key[this.element.key.length - 1];\r\n if (last != '[]' && !(last in this.ParentModel)) {\r\n if (this.selected_item && ('default' in this.selected_item)) {\r\n //utils.debug(` +++ formAnyOf Schema element ${this.name} going visible - setting field ${last} to ${this.selected_item.default}`);\r\n this.writefunc.func(this.cmodel, this.selected_item.default, Vue);\r\n }\r\n else if (this.selected_item && this.selected_item.type == 'object') {\r\n //utils.debug(` +++ formAnyOf Schema element ${this.name} going visible - setting field ${last} to {}`);\r\n this.writefunc.func(this.cmodel, {}, Vue);\r\n }\r\n else if (this.selected_item && this.selected_item.type == 'array') {\r\n //utils.debug(` +++ formAnyOf Schema element ${this.name} going visible - setting field ${last} to []`);\r\n this.writefunc.func(this.cmodel, [], Vue);\r\n }\r\n //else\r\n // utils.debug(` +++ Schema element ${this.name} going visible - no default, doing nothing (type: ${this.selected_item ? this.selected_item.type : 'unknown'})`);\r\n }\r\n //else\r\n // utils.debug(` +++ Schema element ${this.name} going visible, doing nothing (already set or is [] : ${last})`);\r\n },\r\n },\r\n props: {\r\n },\r\n render(h) {\r\n let input;\r\n\r\n // The $isTypeRef flag will suppress the dropdown list for choosing the AnyOf type - only useful\r\n // if you provide a default in the element definition which includes a $ref to the AnyOf type.\r\n\r\n const isTypeRef = this.element && this.element.schema && this.element.schema['$isTypeRef'];\r\n if (!isTypeRef) {\r\n input = (\r\n this.sync_anyof(value)}>\r\n \r\n );\r\n\r\n if (this.appearance)\r\n input.componentOptions.propsData = { ...input.componentOptions.propsData, ...this.appearance };\r\n\r\n if (this.directives) {\r\n if (input.data.directives)\r\n input.data.directives = [...input.data.directives, ...this.directives];\r\n else\r\n input.data.directives = this.directives;\r\n }\r\n }\r\n\r\n if (this.selected_item) {\r\n let LayoutType = this.layouttype;\r\n return (\r\n \r\n {input}\r\n \r\n \r\n \r\n );\r\n }\r\n else\r\n return input;\r\n }\r\n});","import Vue from 'vue';\r\nimport BaseFieldsetComponent from './baseFieldsetMixin.jsx';\r\nimport utils from '../../../Shared/utils.jsx';\r\n\r\nVue.component('sform-actions', {\r\n mixins: [BaseFieldsetComponent],\r\n data: () => ({\r\n }),\r\n props: {\r\n },\r\n created() {\r\n },\r\n methods: {\r\n },\r\n render() {\r\n if (!this.form)\r\n return null;\r\n\r\n const rows = this.generateElements(h, this.form, this.layouttype);\r\n\r\n return (\r\n \r\n {rows}\r\n \r\n );\r\n }\r\n});","import Vue from 'vue';\r\nimport BaseComponent from './baseFormMixin.jsx';\r\nimport utils from '../../../Shared/utils.jsx';\r\nimport methods from '../../../Shared/methods';\r\n\r\nVue.component('sform-button', {\r\n mixins: [BaseComponent],\r\n data: () => ({\r\n titleexpr: null,\r\n }),\r\n props: {\r\n },\r\n created() {\r\n },\r\n mounted() {\r\n this.loadComplete();\r\n },\r\n computed: {\r\n title() {\r\n if(this.element.title)\r\n return \r\n return null;\r\n },\r\n },\r\n methods: {\r\n click(e) {\r\n e.cancelBubble = true;\r\n e.stopPropagation();\r\n\r\n utils.executeAndCompileAllActions(this.element.Actions, {}, this);\r\n }\r\n },\r\n render() {\r\n let input = this.click(e)}>{this.title};\r\n\r\n return input;\r\n }\r\n});","import Vue from 'vue';\r\nimport BaseComponent from './baseFormMixin.jsx';\r\nimport { appSettings } from '@/Shared/appSettings.js';\r\nimport careHelpfulFunctions from '@/Application/careHelpfulFunctions.jsx';\r\nconst mdiIcons = () => import ('@/JavaScript/mdi/font/v7.1.96/icons.js');\r\nconst tcIcons = () => import('@/JavaScript/totalcareicons/v1/totalcareicons');\r\n\r\nVue.component('sform-iconpicker', {\r\n mixins: [BaseComponent],\r\n data: () => ({\r\n icons: [],\r\n filteredIcons: [],\r\n item_text: 'name',\r\n item_value: 'value',\r\n item_disabled: undefined,\r\n item_icon: null,\r\n }),\r\n props: {\r\n },\r\n created() {\r\n tcIcons().then(icons => { this.icons.push(...icons.default.map(i => {\r\n return {\r\n name: i.name,\r\n displayName: i.name + ' (CI)',\r\n value: 'careicon careicon-'+i.id,\r\n }\r\n })); this.setFilteredIcons(this.itemvalue);});\r\n mdiIcons().then(icons => { this.icons.push(...icons.default.map(i => {\r\n return {\r\n name: i.name,\r\n displayName: i.name + ' (MDI)',\r\n value: 'mdi-'+i.name,\r\n }\r\n })); this.setFilteredIcons(this.itemvalue); });\r\n },\r\n computed: {\r\n iconList: function() {\r\n return _.take(this.filteredIcons, 300);\r\n },\r\n currentItemIcon: function() {\r\n const item = this.iconList.find(i => i.value == this.itemvalue);\r\n return item ? this.getItemIcon(item) : '';\r\n },\r\n },\r\n methods: {\r\n getItemIcon(item) {\r\n return {item.value}\r\n },\r\n setFilteredIcons(filter) {\r\n if(!filter)\r\n filter = '';\r\n this.filteredIcons = careHelpfulFunctions.sort(this.icons.filter(i => i.value.toLowerCase().includes(filter.toLowerCase()) || i.name.toLowerCase().includes(filter.toLowerCase())), \"name\");\r\n }\r\n },\r\n render() {\r\n let scopedSlots = {\r\n message: ({ message }) => {\r\n return \r\n },\r\n item: ({ item, on }) => {\r\n return (\r\n \r\n \r\n {this.getItemIcon(item)}\r\n \r\n \r\n \r\n {item.displayName}\r\n \r\n \r\n \r\n );\r\n }\r\n };\r\n\r\n let input = h('v-autocomplete', {\r\n props: {\r\n class:\"caption pa-0 ma-0\" ,\r\n outlined: true,\r\n singleLine: true,\r\n dense: true,\r\n hideDetails: true,\r\n clearable: true,\r\n style:{ width: \"100%\" },\r\n menuProps:{ offsetY: true, auto: true },\r\n value: this.itemvalue,\r\n items: this.iconList,\r\n itemText:this.item_text,\r\n itemValue:this.item_value,\r\n itemDisabled: this.item_disabled,\r\n returnObject: false,\r\n hint: this.hintText,\r\n label: this.labelText,\r\n prependInnerIcon: this.itemvalue,\r\n persistentHint: appSettings.DebugTranslationPrefixSetting,\r\n },\r\n on: {\r\n 'change': (value) => this.sync(value),\r\n 'update:search-input': (value) => this.setFilteredIcons(value),\r\n 'blur': this.onBlur,\r\n 'focus': this.onFocus\r\n },\r\n scopedSlots: scopedSlots\r\n });\r\n \r\n\r\n if (this.appearance)\r\n input.componentOptions.propsData = { ...input.componentOptions.propsData, ...this.appearance };\r\n\r\n return input;\r\n }\r\n});\r\n","import Vue from 'vue';\r\nimport BaseComponent from './baseFormMixin.jsx';\r\nimport utils from '../../../Shared/utils.jsx';\r\nimport { appSettings } from '@/Shared/appSettings.js';\r\n\r\nVue.component('sform-tags', {\r\n mixins: [BaseComponent],\r\n data: () => ({\r\n }),\r\n props: {\r\n },\r\n created() {\r\n },\r\n mounted() {\r\n if (this.autofocus)\r\n setTimeout(() => {\r\n const item = this.$refs[this.autofocus_id];\r\n if (item) {\r\n this.$refs[this.autofocus_id].focus();\r\n\r\n let inputEl = this.$refs[this.autofocus_id].$el.querySelector('input');\r\n inputEl.select();\r\n\r\n //this.input = 'test value'\r\n setTimeout(() => {\r\n inputEl.select();\r\n }, 200);\r\n }\r\n }, 250);\r\n\r\n this.loadComplete();\r\n },\r\n computed: {\r\n },\r\n methods: {\r\n },\r\n render(h) {\r\n let scopedSlots = {\r\n message: ({message}) => {\r\n return \r\n }\r\n }\r\n\r\n let slots = [\r\n ,\r\n ];\r\n\r\n let input =\r\n this.sync(value)}\r\n on-blur={this.onBlur}\r\n on-focus={this.onFocus}\r\n scopedSlots={scopedSlots}\r\n hint={this.hintText}\r\n persistent-hint={appSettings.DebugTranslationPrefixSetting}\r\n >{slots};\r\n\r\n if (this.appearance)\r\n input.componentOptions.propsData = { ...input.componentOptions.propsData, ...this.appearance };\r\n\r\n return input;\r\n }\r\n});","import Vue from 'vue';\r\nimport BaseComponent from './baseFormMixin.jsx';\r\nimport utils from '../../../Shared/utils.jsx';\r\nimport methods from '../../../Shared/methods';\r\n\r\nVue.component('sform-texteditor', {\r\n mixins: [BaseComponent],\r\n data: () => ({\r\n uniqueid: '',\r\n israw: false,\r\n lang: 'json',\r\n hasfocus: false,\r\n height: \"80px\",\r\n }),\r\n props: {\r\n },\r\n created() {\r\n this.uniqueid = utils.generateUUID();\r\n\r\n if (this.element.formatData) {\r\n this.israw = this.element.formatData.IsRaw;\r\n this.lang = this.element.formatData.Language || 'javascript';\r\n this.height = this.element.formatData.Height ? `${this.element.formatData.Height}px` : '80px';\r\n }\r\n else {\r\n this.israw = false;\r\n this.lang = 'json';\r\n }\r\n },\r\n mounted() {\r\n this.loadComplete();\r\n },\r\n computed: {\r\n textvalue: function () {\r\n if (this.israw)\r\n return this.itemvalue || '';\r\n else\r\n return this.itemvalue ? JSON.stringify(this.itemvalue, null, 4) : '';\r\n },\r\n },\r\n methods: {\r\n synctext(text) {\r\n try {\r\n this.hasfocus = false;\r\n if (this.israw)\r\n this.sync(text);\r\n else\r\n this.sync(JSON.parse(text));\r\n }\r\n catch (e) {\r\n utils.warn('Failed to parse JSON', e);\r\n }\r\n },\r\n },\r\n render() {\r\n const classes = {\r\n 'mb-3': true,\r\n };\r\n\r\n let padding;\r\n if (this.hasfocus)\r\n padding = \"14px 5px 20px 5px\";\r\n else\r\n padding = \"14px 5px 5px 5px\";\r\n\r\n let input = // this.sync(value)}>;\r\n
\r\n \r\n this.synctext(text)}\r\n on-focus={() => {\r\n this.hasfocus = true;\r\n this.onFocus();\r\n }}\r\n on-blur={this.onBlur}\r\n content={this.textvalue}>\r\n \r\n
\r\n {this.element.description}\r\n
\r\n
;\r\n\r\n return input;\r\n }\r\n});","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"d-flex flex-column flex-grow-1\",staticStyle:{\"margin-bottom\":\"0\",\"overflow\":\"auto\",\"width\":\"100%\",\"height\":\"100%\",\"padding\":\"5px\",\"position\":\"relative\"},style:({ minHeight: _vm.minHeight })},[_c('div',{staticClass:\"callcorp-editor d-flex flex-column flex-grow-1\",class:{ 'readonly': _vm.readonly }},[_c('div',{staticClass:\"editor-wrapper editor d-flex flex-column flex-grow-1\"},[_c('div',{staticClass:\"composer-wrapper d-flex flex-column flex-grow-1\",staticStyle:{\"min-height\":\"41px\"}},[_c('div',{ref:\"contentdiv\",staticClass:\"editor__content\",style:({'max-height': this.maxHeight }),attrs:{\"disabled\":_vm.readonly},on:{\"click\":function($event){return _vm.getFormatState()},\"keyup\":[function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\"))return null;if($event.ctrlKey||$event.shiftKey||$event.altKey||$event.metaKey)return null;$event.preventDefault();$event.stopPropagation();return _vm.sendEnter.apply(null, arguments)},_vm.editorKeyUp],\"keydown\":[function($event){if(!$event.type.indexOf('key')&&$event.keyCode!==90)return null;if(!$event.ctrlKey)return null;if($event.shiftKey||$event.altKey||$event.metaKey)return null;$event.stopPropagation();$event.preventDefault();return _vm.undoSnapshot.apply(null, arguments)},function($event){if(!$event.type.indexOf('key')&&$event.keyCode!==90)return null;if(!$event.ctrlKey)return null;if(!$event.shiftKey)return null;if($event.altKey||$event.metaKey)return null;$event.stopPropagation();$event.preventDefault();return _vm.redoSnapshot.apply(null, arguments)}]}})]),(!_vm.readonly)?_c('div',{staticClass:\"menu-bar-container\",staticStyle:{\"border-top\":\"#c0c0c0 1px solid\"}},[_c('div',{staticClass:\"menubar\"},[_c('div',{staticClass:\"d-flex\",staticStyle:{\"overflow\":\"auto\"}},[(!_vm.disableFormatting)?_c('div',{staticClass:\"d-flex\",staticStyle:{\"overflow\":\"auto\",\"gap\":\"5px\",\"align-items\":\"center\"}},[_c('div',{staticStyle:{\"display\":\"flex\"}},[_c('v-btn',{attrs:{\"icon\":\"\",\"medium\":\"\",\"color\":\"black\",\"tile\":\"\",\"title\":_vm.Translate('Undo')},on:{\"click\":function($event){return _vm.undoSnapshot()}}},[_c('v-icon',[_vm._v(\"mdi-arrow-u-left-top\")])],1),_c('v-btn',{attrs:{\"icon\":\"\",\"medium\":\"\",\"color\":\"black\",\"tile\":\"\",\"title\":_vm.Translate('Redo')},on:{\"click\":function($event){return _vm.redoSnapshot()}}},[_c('v-icon',[_vm._v(\"mdi-arrow-u-right-top\")])],1),_c('v-btn',{attrs:{\"icon\":\"\",\"medium\":\"\",\"color\":\"black\",\"tile\":\"\",\"title\":_vm.Translate('Format Painter')},on:{\"click\":function($event){return _vm.formatPaint()}}},[_c('v-icon',[_vm._v(\"mdi-format-paint\")])],1),_c('v-btn',{attrs:{\"icon\":\"\",\"medium\":\"\",\"color\":\"black\",\"tile\":\"\",\"title\":_vm.Translate('Clear Format')},on:{\"click\":function($event){return _vm.clearFormat()}}},[_c('v-icon',[_vm._v(\"mdi-format-clear\")])],1)],1),_c('div',{staticStyle:{\"height\":\"25px\"}},[_c('v-divider',{attrs:{\"vertical\":\"\"}})],1),_c('div',[_c('DropdownMenu',{attrs:{\"options\":_vm.headingOptions,\"value\":_vm.roosterModel.headingLevel,\"show-activator\":\"\",\"max-height\":\"200\"},on:{\"input\":(value) => _vm.setHeadingLevel(value)}})],1),_c('div',{staticStyle:{\"height\":\"25px\"}},[_c('v-divider',{attrs:{\"vertical\":\"\"}})],1),_c('div',[_c('DropdownMenu',{attrs:{\"options\":_vm.fontFamilyOptions,\"value\":_vm.roosterModel.fontName[0],\"show-activator\":\"\",\"max-height\":\"200\"},on:{\"input\":(value) => _vm.setFontName(value)}})],1),_c('div',{staticStyle:{\"height\":\"25px\"}},[_c('v-divider',{attrs:{\"vertical\":\"\"}})],1),_c('div',[_c('DropdownMenu',{attrs:{\"options\":_vm.fontSizeOptions,\"value\":_vm.roosterModel.fontSize[0],\"show-activator\":\"\",\"max-height\":\"200\"},on:{\"input\":(value) => _vm.setFontSize(value)}})],1),_c('div',{staticStyle:{\"height\":\"25px\"}},[_c('v-divider',{attrs:{\"vertical\":\"\"}})],1),_c('div',{staticStyle:{\"display\":\"flex\"}},[_c('v-btn',{class:{ 'is-active': _vm.roosterModel.isBold },attrs:{\"icon\":\"\",\"medium\":\"\",\"color\":\"black\",\"tile\":\"\",\"title\":_vm.Translate('Bold')},on:{\"click\":function($event){return _vm.toggleBold()}}},[_c('v-icon',[_vm._v(\"mdi-format-bold\")])],1),_c('v-btn',{class:{ 'is-active': _vm.roosterModel.isItalic },attrs:{\"icon\":\"\",\"medium\":\"\",\"color\":\"black\",\"tile\":\"\",\"title\":_vm.Translate('Italicize')},on:{\"click\":function($event){return _vm.toggleItalic()}}},[_c('v-icon',[_vm._v(\"mdi-format-italic\")])],1),_c('v-btn',{class:{ 'is-active': _vm.roosterModel.isUnderline },attrs:{\"icon\":\"\",\"medium\":\"\",\"color\":\"black\",\"tile\":\"\",\"title\":_vm.Translate('Underline')},on:{\"click\":function($event){return _vm.toggleUnderline()}}},[_c('v-icon',[_vm._v(\"mdi-format-underline\")])],1),_c('v-btn',{class:{ 'is-active': _vm.roosterModel.isStrikeThrough },attrs:{\"icon\":\"\",\"medium\":\"\",\"color\":\"black\",\"tile\":\"\",\"title\":_vm.Translate('Strikethrough')},on:{\"click\":function($event){return _vm.toggleStrikethrough()}}},[_c('v-icon',[_vm._v(\"mdi-format-strikethrough\")])],1),_c('v-menu',{attrs:{\"offset-y\":\"\",\"close-on-content-click\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on, attrs }){return [_c('v-btn',_vm._g(_vm._b({staticStyle:{\"padding\":\"0\"},attrs:{\"medium\":\"\",\"color\":\"transparent\",\"elevation\":\"0\",\"tile\":\"\",\"min-width\":\"40\"}},'v-btn',attrs,false),on),[_c('v-icon',{attrs:{\"color\":_vm.roosterModel.textColor.toLowerCase() === 'var(--v-white-base)' ? 'black' : _vm.roosterModel.textColor}},[_vm._v(\"mdi-format-color-text\")]),_c('v-icon',{attrs:{\"color\":\"black\"}},[_vm._v(\"mdi-menu-down\")])],1)]}}],null,false,1846964496)},[_c('v-color-picker',{attrs:{\"dot-size\":\"25\",\"swatches-max-height\":\"150\",\"hide-mode-switch\":\"\",\"hide-inputs\":\"\",\"value\":_vm.roosterModel.textColor},on:{\"input\":(value) => _vm.setTextColor(value)}})],1),_c('v-menu',{attrs:{\"offset-y\":\"\",\"close-on-content-click\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on, attrs }){return [_c('v-btn',_vm._g(_vm._b({staticStyle:{\"padding\":\"0\"},attrs:{\"medium\":\"\",\"color\":\"transparent\",\"elevation\":\"0\",\"tile\":\"\",\"min-width\":\"40\"}},'v-btn',attrs,false),on),[_c('v-icon',{staticClass:\"rooster-command-bar-icon\",attrs:{\"color\":_vm.roosterModel.backgroundColor.toLowerCase() === '#ffffff' ? 'black' : _vm.roosterModel.backgroundColor}},[_vm._v(\"mdi-format-color-fill\")]),_c('v-icon',{attrs:{\"color\":\"black\"}},[_vm._v(\"mdi-menu-down\")])],1)]}}],null,false,1943439763)},[_c('v-color-picker',{attrs:{\"dot-size\":\"25\",\"swatches-max-height\":\"150\",\"hide-mode-switch\":\"\",\"hide-inputs\":\"\",\"value\":_vm.roosterModel.backgroundColor},on:{\"input\":(value) => _vm.setBackgroundColor(value)}})],1)],1),_c('div',{staticStyle:{\"height\":\"25px\"}},[_c('v-divider',{attrs:{\"vertical\":\"\"}})],1),_c('div',{staticStyle:{\"display\":\"flex\"}},[_c('v-btn',{attrs:{\"icon\":\"\",\"medium\":\"\",\"color\":\"black\",\"tile\":\"\",\"title\":_vm.Translate('Left align')},on:{\"click\":function($event){return _vm.setAlignment('left')}}},[_c('v-icon',[_vm._v(\"mdi-format-align-left\")])],1),_c('v-btn',{attrs:{\"icon\":\"\",\"medium\":\"\",\"color\":\"black\",\"tile\":\"\",\"title\":_vm.Translate('Center align')},on:{\"click\":function($event){return _vm.setAlignment('center')}}},[_c('v-icon',[_vm._v(\"mdi-format-align-center\")])],1),_c('v-btn',{attrs:{\"icon\":\"\",\"medium\":\"\",\"color\":\"black\",\"tile\":\"\",\"title\":_vm.Translate('Right align')},on:{\"click\":function($event){return _vm.setAlignment('right')}}},[_c('v-icon',[_vm._v(\"mdi-format-align-right\")])],1),_c('v-btn',{attrs:{\"icon\":\"\",\"medium\":\"\",\"color\":\"black\",\"tile\":\"\",\"title\":_vm.Translate('Bulletted list')},on:{\"click\":function($event){return _vm.toggleBullet()}}},[_c('v-icon',[_vm._v(\"mdi-format-list-bulleted\")])],1),_c('v-btn',{attrs:{\"icon\":\"\",\"medium\":\"\",\"color\":\"black\",\"tile\":\"\",\"title\":_vm.Translate('Numbered list')},on:{\"click\":function($event){return _vm.toggleNumbering()}}},[_c('v-icon',[_vm._v(\"mdi-format-list-numbered\")])],1),_c('v-btn',{attrs:{\"icon\":\"\",\"medium\":\"\",\"color\":\"black\",\"tile\":\"\",\"title\":_vm.Translate('Decrease indent')},on:{\"click\":function($event){return _vm.setIndentation('outdent')}}},[_c('v-icon',[_vm._v(\"mdi-format-indent-decrease\")])],1),_c('v-btn',{attrs:{\"icon\":\"\",\"medium\":\"\",\"color\":\"black\",\"tile\":\"\",\"title\":_vm.Translate('Increase indent')},on:{\"click\":function($event){return _vm.setIndentation('indent')}}},[_c('v-icon',[_vm._v(\"mdi-format-indent-increase\")])],1),_c('v-btn',{attrs:{\"icon\":\"\",\"medium\":\"\",\"color\":\"black\",\"tile\":\"\",\"title\":_vm.Translate('Code block')},on:{\"click\":function($event){return _vm.toggleCode()}}},[_c('v-icon',[_vm._v(\"mdi-code-tags\")])],1),_c('v-btn',{attrs:{\"icon\":\"\",\"medium\":\"\",\"color\":\"black\",\"tile\":\"\",\"title\":_vm.Translate('Quote')},on:{\"click\":function($event){return _vm.toggleQuote()}}},[_c('v-icon',[_vm._v(\"mdi-format-quote-close\")])],1)],1)]):_vm._e()]),_c('div',{staticClass:\"d-flex\"},[(!_vm.disableImagePicker)?_c('div',[_c('input',{ref:\"insertimage\",staticStyle:{\"display\":\"none\"},attrs:{\"type\":\"file\",\"id\":\"insert-image\",\"accept\":\"image/png, image/jpeg, image/jpg\",\"files\":_vm.fileList,\"multiple\":\"\"},on:{\"change\":_vm.processInsertImageChange}}),_c('v-btn',{attrs:{\"icon\":\"\",\"medium\":\"\",\"color\":\"black\",\"tile\":\"\",\"title\":_vm.Translate('Insert image')},on:{\"click\":function($event){return _vm.$refs.insertimage.click()}}},[_c('v-icon',[_vm._v(\"mdi-camera-image\")])],1)],1):_vm._e(),_c('div',{ref:\"emojibutton\"},[_c('v-btn',{ref:\"emojibutton\",attrs:{\"icon\":\"\",\"medium\":\"\",\"color\":\"black\",\"tile\":\"\",\"title\":_vm.Translate('Emoji')},on:{\"click\":function($event){$event.stopPropagation();$event.preventDefault();_vm.showEmojiPicker = !_vm.showEmojiPicker}}},[_vm._v(\" 🙂 \")])],1),(!_vm.disableQuickText)?_c('div',[_c('v-btn',{attrs:{\"icon\":\"\",\"medium\":\"\",\"color\":\"black\",\"tile\":\"\",\"title\":_vm.Translate('Quick text')},on:{\"click\":function($event){return _vm.initiateQuickText()}}},[_c('v-icon',[_vm._v(\"mdi-pound\")])],1)],1):_vm._e(),(_vm.allowSend)?_c('div',[_c('v-btn',{attrs:{\"icon\":\"\",\"medium\":\"\",\"color\":\"primary\",\"disabled\":_vm.sendDisabled,\"tile\":\"\",\"title\":_vm.Translate('Send')},on:{\"click\":function($event){return _vm.send()}}},[_c('v-icon',[_vm._v(\"mdi-send-outline\")])],1)],1):_vm._e()])])]):_vm._e()])]),(_vm.showEmojiPicker)?_c('div',{staticStyle:{\"position\":\"absolute\"},style:({ top: _vm.emojiButtonPosition().top, left: _vm.emojiButtonPosition().left }),on:{\"click\":function($event){$event.stopPropagation();}}},[_c('VEmojiPicker',{ref:\"emojipicker\",attrs:{\"i18n\":_vm.emojiI18n},on:{\"select\":_vm.addEmoji}})],1):_vm._e()])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","export let FONT_SIZE_OPTIONS = [\r\n {\r\n \"name\": \"8pt\",\r\n \"value\": \"8pt\",\r\n },\r\n {\r\n \"name\": \"9pt\",\r\n \"value\": \"9pt\",\r\n },\r\n {\r\n \"name\": \"10pt\",\r\n \"value\": \"10pt\",\r\n },\r\n {\r\n \"name\": \"11pt\",\r\n \"value\": \"11pt\",\r\n },\r\n {\r\n \"name\": \"12pt\",\r\n \"value\": \"12pt\",\r\n },\r\n {\r\n \"name\": \"14pt\",\r\n \"value\": \"14pt\",\r\n },\r\n {\r\n \"name\": \"16pt\",\r\n \"value\": \"16pt\",\r\n },\r\n {\r\n \"name\": \"18pt\",\r\n \"value\": \"18pt\",\r\n },\r\n {\r\n \"name\": \"20pt\",\r\n \"value\": \"20pt\",\r\n },\r\n {\r\n \"name\": \"22pt\",\r\n \"value\": \"22pt\",\r\n },\r\n {\r\n \"name\": \"24pt\",\r\n \"value\": \"24pt\",\r\n },\r\n {\r\n \"name\": \"26pt\",\r\n \"value\": \"26pt\",\r\n },\r\n {\r\n \"name\": \"28pt\",\r\n \"value\": \"28pt\",\r\n },\r\n {\r\n \"name\": \"36pt\",\r\n \"value\": \"36pt\",\r\n },\r\n {\r\n \"name\": \"48pt\",\r\n \"value\": \"48pt\",\r\n },\r\n {\r\n \"name\": \"72pt\",\r\n \"value\": \"72pt\",\r\n }\r\n]\r\nexport let FONT_FAMILY = [\r\n {\r\n \"name\": \"Arial\",\r\n \"value\": \"Arial, sans-serif\"\r\n },\r\n {\r\n \"name\": \"Helvetica\",\r\n \"value\": \"Helvetica, sans-serif\"\r\n },\r\n {\r\n \"name\": \"Verdana\",\r\n \"value\": \"Verdana, sans-serif\"\r\n },\r\n {\r\n \"name\": \"Trebuchet MS\",\r\n \"value\": \"Trebuchet MS, sans-serif\"\r\n },\r\n {\r\n \"name\": \"Gill Sans\",\r\n \"value\": \"Gill Sans, sans-serif\"\r\n },\r\n {\r\n \"name\": \"Noto Sans\",\r\n \"value\": \"Noto Sans, sans-serif\"\r\n },\r\n {\r\n \"name\": \"Avantgarde\",\r\n \"value\": \"Avantgarde, TeX Gyre Adventor, URW Gothic L, sans-serif\"\r\n },\r\n {\r\n \"name\": \"Optima\",\r\n \"value\": \"Optima, sans-serif\"\r\n },\r\n {\r\n \"name\": \"Arial Narrow\",\r\n \"value\": \"Arial Narrow, sans-serif\"\r\n },\r\n {\r\n \"name\": \"Sans-serif\",\r\n \"value\": \"sans-serif\"\r\n },\r\n {\r\n \"name\": \"Times New Roman\",\r\n \"value\": \"Times, Times New Roman, serif\"\r\n },\r\n {\r\n \"name\": \"Didot\",\r\n \"value\": \"Didot, serif\"\r\n },\r\n {\r\n \"name\": \"Georgia\",\r\n \"value\": \"Georgia, serif\"\r\n },\r\n {\r\n \"name\": \"Palatino\",\r\n \"value\": \"Palatino, URW Palladio L, serif\"\r\n },\r\n {\r\n \"name\": \"Bookman\",\r\n \"value\": \"Bookman, URW Bookman L, serif\"\r\n },\r\n {\r\n \"name\": \"New Century Schoolbook\",\r\n \"value\": \"New Century Schoolbook, TeX Gyre Schola, serif\"\r\n },\r\n {\r\n \"name\": \"American Typewriter\",\r\n \"value\": \"American Typewriter, serif\"\r\n },\r\n {\r\n \"name\": \"Serif\",\r\n \"value\": \"serif\"\r\n },\r\n {\r\n \"name\": \"Andale Mono\",\r\n \"value\": \"Andale Mono, monospace\"\r\n },\r\n {\r\n \"name\": \"Courier New\",\r\n \"value\": \"Courier New, monospace\"\r\n },\r\n {\r\n \"name\": \"Courier\",\r\n \"value\": \"Courier, monospace\"\r\n },\r\n {\r\n \"name\": \"FreeMono\",\r\n \"value\": \"FreeMono, monospace\"\r\n },\r\n {\r\n \"name\": \"OCR A Std\",\r\n \"value\": \"OCR A Std, monospace\"\r\n },\r\n {\r\n \"name\": \"DejaVu Sans Mono\",\r\n \"value\": \"DejaVu Sans Mono, monospace\"\r\n },\r\n {\r\n \"name\": \"Monospace\",\r\n \"value\": \"monospace\"\r\n },\r\n {\r\n \"name\": \"Comic Sans\",\r\n \"value\": \"Comic Sans MS, Comic Sans, cursive\"\r\n },\r\n {\r\n \"name\": \"Apple Chancery\",\r\n \"value\": \"Apple Chancery, cursive\"\r\n },\r\n {\r\n \"name\": \"Bradley Hand\",\r\n \"value\": \"Bradley Hand, cursive\"\r\n },\r\n {\r\n \"name\": \"Brush Script Std\",\r\n \"value\": \"Brush Script MT, Brush Script Std, cursive\"\r\n },\r\n {\r\n \"name\": \"Snell Roundhand\",\r\n \"value\": \"Snell Roundhand, cursive\"\r\n },\r\n {\r\n \"name\": \"URW Chancery L\",\r\n \"value\": \"URW Chancery L, cursive\"\r\n },\r\n {\r\n \"name\": \"Cursive\",\r\n \"value\": \"cursive\"\r\n },\r\n {\r\n \"name\": \"Impact\",\r\n \"value\": \"Impact, fantasy\"\r\n },\r\n {\r\n \"name\": \"Luminari\",\r\n \"value\": \"Luminari, fantasy\"\r\n },\r\n {\r\n \"name\": \"Chalkduster\",\r\n \"value\": \"Chalkduster, fantasy\"\r\n },\r\n {\r\n \"name\": \"Jazz LET\",\r\n \"value\": \"Jazz LET, fantasy\"\r\n },\r\n {\r\n \"name\": \"Blippo\",\r\n \"value\": \"Blippo, fantasy\"\r\n },\r\n {\r\n \"name\": \"Stencil Std\",\r\n \"value\": \"Stencil Std, fantasy\"\r\n },\r\n {\r\n \"name\": \"Marker Felt\",\r\n \"value\": \"Marker Felt, fantasy\"\r\n },\r\n {\r\n \"name\": \"Trattatello\",\r\n \"value\": \"Trattatello, fantasy\"\r\n },\r\n {\r\n \"name\": \"Fantasy\",\r\n \"value\": \"fantasy\"\r\n }\r\n]\r\n\r\nexport let HEADING_STYLES = [\r\n {\r\n \"name\": \"Normal text\",\r\n \"value\": \"Normal text\"\r\n },\r\n {\r\n \"name\": \"Heading 1\",\r\n \"value\": \"Heading 1\"\r\n },\r\n {\r\n \"name\": \"Heading 2\",\r\n \"value\": \"Heading 2\"\r\n },\r\n {\r\n \"name\": \"Heading 3\",\r\n \"value\": \"Heading 3\"\r\n },\r\n {\r\n \"name\": \"Heading 4\",\r\n \"value\": \"Heading 4\"\r\n },\r\n {\r\n \"name\": \"Heading 5\",\r\n \"value\": \"Heading 5\"\r\n },\r\n {\r\n \"name\": \"Heading 6\",\r\n \"value\": \"Heading 6\"\r\n } \r\n]\r\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',[(_vm.showActivator)?_c('v-menu',{attrs:{\"id\":\"quick-text-menu\",\"offset-y\":\"\",\"max-height\":_vm.maxHeight,\"close-on-content-click\":\"\"},scopedSlots:_vm._u([(_vm.showActivator)?{key:\"activator\",fn:function({ on, attrs }){return [_c('v-btn',_vm._g(_vm._b({staticStyle:{\"padding\":\"0\"},attrs:{\"medium\":\"\",\"color\":\"transparent\",\"elevation\":\"0\",\"tile\":\"\"}},'v-btn',attrs,false),on),[_vm._v(\" \"+_vm._s(_vm.value ? _vm.value.split(',')[0] : '')+\" \"),_c('v-icon',{attrs:{\"color\":\"black\"}},[_vm._v(\"mdi-menu-down\")])],1)]}}:null],null,true)},[_c('v-list',[_c('v-list-item-group',{attrs:{\"color\":\"secondary\"},model:{value:(_vm.focusIndex),callback:function ($$v) {_vm.focusIndex=$$v},expression:\"focusIndex\"}},_vm._l((_vm.options),function(option){return _c('v-list-item',{key:option.value,on:{\"click\":function($event){return _vm.$emit('input', option.value)}},model:{value:(_vm.focusIndex),callback:function ($$v) {_vm.focusIndex=$$v},expression:\"focusIndex\"}},[(_vm.value && option.value === _vm.value)?_c('v-list-item-icon',[_c('v-icon',[_vm._v(\"mdi-check\")])],1):_vm._e(),_c('v-list-item-title',[_vm._v(_vm._s(option.name))])],1)}),1)],1)],1):_c('v-menu',{attrs:{\"id\":\"quick-text-menu\",\"offset-y\":\"\",\"max-height\":_vm.maxHeight,\"absolute\":!_vm.showActivator,\"position-x\":_vm.positionX,\"position-y\":_vm.positionY,\"close-on-content-click\":\"\"},scopedSlots:_vm._u([(_vm.showActivator)?{key:\"activator\",fn:function({ on, attrs }){return [_c('v-btn',_vm._g(_vm._b({staticStyle:{\"padding\":\"0\"},attrs:{\"medium\":\"\",\"color\":\"transparent\",\"elevation\":\"0\",\"tile\":\"\"}},'v-btn',attrs,false),on),[_vm._v(\" \"+_vm._s(_vm.value ? _vm.value.split(',')[0] : '')+\" \"),_c('v-icon',{attrs:{\"color\":\"black\"}},[_vm._v(\"mdi-menu-down\")])],1)]}}:null],null,true),model:{value:(_vm.showMenu),callback:function ($$v) {_vm.showMenu=$$v},expression:\"showMenu\"}},[_c('v-list',[_c('v-list-item-group',{attrs:{\"color\":\"secondary\"},model:{value:(_vm.focusIndex),callback:function ($$v) {_vm.focusIndex=$$v},expression:\"focusIndex\"}},_vm._l((_vm.options),function(option){return _c('v-list-item',{key:option.value,on:{\"click\":function($event){return _vm.$emit('input', option.value)}}},[(_vm.value && option.value === _vm.value)?_c('v-list-item-icon',[_c('v-icon',[_vm._v(\"mdi-check\")])],1):_vm._e(),_c('v-list-item-title',[_vm._v(_vm._s(option.name))])],1)}),1)],1)],1),_c('div',{ref:\"focusHandler\",attrs:{\"tabindex\":\"-1\"},on:{\"keyup\":function($event){$event.preventDefault();$event.stopPropagation();return _vm.handleKeyPress($event)}}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\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/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RoosterDropdownMenu.vue?vue&type=script&lang=js&\"; 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/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RoosterDropdownMenu.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./RoosterDropdownMenu.vue?vue&type=template&id=77e246f2&\"\nimport script from \"./RoosterDropdownMenu.vue?vue&type=script&lang=js&\"\nexport * from \"./RoosterDropdownMenu.vue?vue&type=script&lang=js&\"\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';\r\nimport vuetify from '@/plugins/vuetify';\r\nimport RoosterDropdownMenu from '../vuecontrols/RoosterDropdownMenu';\r\nimport utils from '@/Shared/utils';\r\nimport api from '@/Services/api';\r\nimport {getPositionRect} from 'roosterjs-editor-dom';\r\n\r\nclass PickerDataProvider {\r\n editor; //Editor\r\n mountPoint; //html element\r\n pickerOptions;\r\n insertNodeCallback;\r\n dropdownElement;\r\n showingDropdown;\r\n\r\n constructor() {\r\n this.showingDropdown = false;\r\n }\r\n\r\n /**\r\n * Function called when the plugin is intialized to register two callbacks with the data provider and a reference to the Editor.\r\n * The first is called in order to \"commit\" a new element to the editor body that isn't handled automatically by the editor plugin.\r\n * The second sets the isSuggesting value for situations wherethe UX needs to manipulate the suggesting state that's otherwise plugin managed.\r\n */\r\n async onInitalize(insertNodeCallback, setIsSuggestingCallback, editor) {\r\n this.editor = editor;\r\n this.insertNodeCallback = insertNodeCallback;\r\n\r\n await this.updateToQuery('');\r\n\r\n const document = this.editor.getDocument();\r\n this.mountPoint = document.createElement('section');\r\n this.mountPoint.style.position = 'fixed';\r\n document.body.appendChild(this.mountPoint);\r\n }\r\n\r\n /**\r\n * Function called when the picker changes suggesting state. (e.g. when your dialog opens)\r\n */\r\n onIsSuggestingChanged(isSuggesting) {\r\n if (isSuggesting) {\r\n if (this.mountPoint.childElementCount == 0) {\r\n this.createDropdown();\r\n }\r\n } else {\r\n this.deleteDropdown();\r\n }\r\n }\r\n\r\n onDispose() {\r\n this.deleteDropdown();\r\n this.editor = null;\r\n this.mountPoint = null;\r\n this.pickerOptions = null;\r\n this.insertNodeCallback = null;\r\n this.dropdownElement = null;\r\n this.showingDropdown = false;\r\n }\r\n\r\n createDropdown() {\r\n //Have to use getPosisiontRect from old rooster library because v9 doesn't have this ported over yet\r\n const rect = getPositionRect(this.editor.getFocusedPosition());\r\n\r\n var DropdownClass = Vue.extend(RoosterDropdownMenu);\r\n this.dropdownElement = new DropdownClass({\r\n propsData: {\r\n showActivator: false,\r\n showMenu: true,\r\n options: this.pickerOptions,\r\n maxHeight: \"200\",\r\n positionX: rect.left,\r\n positionY: rect.bottom\r\n },\r\n vuetify: vuetify.instance\r\n });\r\n\r\n this.dropdownElement.$mount();\r\n\r\n this.dropdownElement.$on('input', (input) => this.pluginPickerSelect(input));\r\n\r\n this.mountPoint.appendChild(this.dropdownElement.$el);\r\n\r\n this.showingDropdown = true;\r\n\r\n this.dropdownElement.setupSelection();\r\n }\r\n\r\n deleteDropdown() {\r\n if (this.dropdownElement && this.dropdownElement.$el && this.dropdownElement.$el.parentNode)\r\n {\r\n // remove the element from the DOM\r\n this.dropdownElement.$el.parentNode.removeChild(this.dropdownElement.$el);\r\n\r\n this.dropdownElement.$destroy();\r\n }\r\n this.showingDropdown = false;\r\n if(this.mountPoint)\r\n this.mountPoint.innerHTML = \"\";\r\n }\r\n\r\n refreshDropdown() {\r\n this.deleteDropdown();\r\n this.createDropdown();\r\n }\r\n\r\n /**\r\n * Function called when the query string (text after the trigger symbol) is updated.\r\n * called everytime the query string is updated\r\n */\r\n queryStringUpdated(queryString) {\r\n this.updateToQuery(queryString);\r\n this.refreshDropdown();\r\n }\r\n /**\r\n * Function called when a keypress is issued that would \"select\" a currently highlighted option.\r\n * is called when you select tab or enter while creating the querystring\r\n */\r\n selectOption() {\r\n this.dropdownElement.selectCurrent();\r\n }\r\n /**\r\n * Function called when a keypress is issued that would move the highlight on any picker UX.\r\n */\r\n shiftHighlight() {\r\n this.dropdownElement.setupSelection();\r\n }\r\n async updateToQuery(queryString) {\r\n if (utils.global_variables.RoosterCache && utils.global_variables.RoosterCache['Apps/QuickText/GetQuickTextList']) {\r\n this.pickerOptions = this.filterRoosterCache(queryString.toLowerCase());\r\n }\r\n else {\r\n try {\r\n let res = await api.get('Apps/QuickText/GetQuickTextList');\r\n Vue.set(utils.global_variables, 'RoosterCache', {});\r\n Vue.set(utils.global_variables.RoosterCache, 'Apps/QuickText/GetQuickTextList', res);\r\n this.pickerOptions = this.filterRoosterCache(queryString.toLowerCase());\r\n }\r\n catch(e) {\r\n utils.warn('Failed to get rooster quick text list', e);\r\n }\r\n }\r\n this.editor.focus();\r\n }\r\n\r\n filterRoosterCache(queryString) {\r\n return queryString.split(\" \")\r\n .reduce((acc, curr) =>\r\n acc.filter(doc => doc.Title.toLowerCase().includes(curr.toLowerCase()) || (doc.Tags && doc.Tags.some(t => t.toLowerCase().includes(curr.toLowerCase())))\r\n ), utils.global_variables.RoosterCache['Apps/QuickText/GetQuickTextList'])\r\n .map(document => {\r\n return {\r\n \"name\": document.Title,\r\n \"value\": document.Id\r\n }\r\n })\r\n .sort((a, b) => (a.name > b.name) ? 1 : -1);\r\n\r\n }\r\n\r\n \r\n pluginPickerSelect(selectedItem) {\r\n if (selectedItem) {\r\n let quickText = utils.global_variables.RoosterCache['Apps/QuickText/GetQuickTextList'].find(item => item.Id === selectedItem);\r\n const span = this.editor.getDocument().createElement('span');\r\n span.innerHTML = quickText.Text.RichText;\r\n this.insertNodeCallback(span);\r\n } \r\n }\r\n}\r\n\r\nexport default PickerDataProvider;","import { EditPlugin } from 'roosterjs-content-model-plugins';\r\nimport careHelpfulFunctions from '../../careHelpfulFunctions.jsx';\r\n\r\nclass ContentChangedPlugin extends EditPlugin{\r\n onChange;\r\n\r\n constructor(onChange) {\r\n super();\r\n if(onChange)\r\n this.onChange = careHelpfulFunctions.debounce(onChange, 250);\r\n }\r\n\r\n dispose() {\r\n this.onChange = null;\r\n }\r\n\r\n onPluginEvent(event) {\r\n // ContentChanged event = 'input'\r\n if((event.eventType == 'input' || event.eventType == 'contentChanged') && this.editor && this.onChange)\r\n this.onChange()\r\n }\r\n\r\n getName() {\r\n return 'ContentChangedPlugin'\r\n }\r\n}\r\n\r\nexport default ContentChangedPlugin;","import { applySegmentFormat, getFormatState } from 'roosterjs-content-model-api';\r\nimport { EditPlugin } from 'roosterjs-content-model-plugins';\r\n\r\n\r\nconst FORMATPAINTERCURSOR_SVG = require('/src/Assets/formatpaintercursor.svg');\r\nconst FORMATPAINTERCURSOR_STYLE = `cursor: url(\"${FORMATPAINTERCURSOR_SVG}\") 8.5 16, auto`;\r\nconst FORMAT_PAINTER_STYLE_KEY = '_FormatPainter';\r\n\r\n/**\r\n * Format painter handler works together with a format painter button tot let implement format painter functioinality\r\n */\r\n// export class FormatPainterHandler {\r\n// /**\r\n// * Let editor enter format painter state\r\n// */\r\n// startFormatPainter(): void;\r\n// }\r\n\r\n/**\r\n * Format painter plugin helps implement format painter functionality.\r\n * To use this plugin, you need a button to let editor enter format painter state by calling formatPainterPlugin.startFormatPainter(),\r\n * then this plugin will handle the rest work.\r\n */\r\nclass FormatPainterPlugin extends EditPlugin {\r\n\r\n getName() {\r\n return 'FormatPainter';\r\n }\r\n\r\n initialize(editor) {\r\n this.editor = editor;\r\n }\r\n\r\n dispose() {\r\n this.editor = null;\r\n }\r\n\r\n onPluginEvent(event) {\r\n if (this.editor && event.eventType == 'mouseUp') {\r\n if (this.painterFormat) {\r\n applySegmentFormat(this.editor, this.painterFormat);\r\n\r\n this.setFormatPainterCursor(null);\r\n }\r\n }\r\n }\r\n\r\n setFormatPainterCursor(format) {\r\n this.painterFormat = format;\r\n\r\n this.editor?.setEditorStyle(\r\n FORMAT_PAINTER_STYLE_KEY,\r\n this.painterFormat ? FORMATPAINTERCURSOR_STYLE : null\r\n );\r\n }\r\n\r\n startFormatPainter() {\r\n if (this.editor) {\r\n const format = getSegmentFormat(this.editor);\r\n\r\n this.setFormatPainterCursor(format);\r\n }\r\n }\r\n}\r\n\r\nfunction getSegmentFormat(editor) {\r\n const formatState = getFormatState(editor);\r\n\r\n return {\r\n backgroundColor: formatState.backgroundColor,\r\n fontFamily: formatState.fontName,\r\n fontSize: formatState.fontSize,\r\n fontWeight: formatState.isBold ? 'bold' : 'normal',\r\n italic: formatState.isItalic,\r\n letterSpacing: formatState.letterSpacing,\r\n strikethrough: formatState.isStrikeThrough,\r\n superOrSubScriptSequence: formatState.isSubscript\r\n ? 'sub'\r\n : formatState.isSuperscript\r\n ? 'super'\r\n : '',\r\n textColor: formatState.textColor,\r\n underline: formatState.isUnderline,\r\n };\r\n}\r\n\r\nexport default FormatPainterPlugin;","\r\n\r\n\r\n\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/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RoosterEditorBase.vue?vue&type=script&lang=js&\"; 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/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RoosterEditorBase.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./RoosterEditorBase.vue?vue&type=template&id=40016238&scoped=true&\"\nimport script from \"./RoosterEditorBase.vue?vue&type=script&lang=js&\"\nexport * from \"./RoosterEditorBase.vue?vue&type=script&lang=js&\"\nimport style0 from \"./RoosterEditorBase.vue?vue&type=style&index=0&id=40016238&prod&scoped=true&lang=css&\"\nimport style1 from \"./RoosterEditorBase.vue?vue&type=style&index=1&id=40016238&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 \"40016238\",\n null\n \n)\n\nexport default component.exports","import Vue from 'vue';\r\nimport utils from '../../../Shared/utils.jsx';\r\nimport formAnyOf from './anyof.jsx';\r\nimport methods from '../../../Shared/methods';\r\nimport EventBus from '../../event-bus.js';\r\nimport { Container, Draggable } from 'vue-smooth-dnd';\r\n\r\nVue.component('form-array-label', {\r\n data: function () {\r\n return {\r\n titleexpn: null\r\n }\r\n },\r\n async mounted() {\r\n if (this.cmodel.$typeSchema) {\r\n const schema = await utils.schema.get(this.cmodel.$typeSchema);\r\n const res = utils.schema.resolve_Of(schema);\r\n\r\n // {{ActionExpression ? '?(' + ActionExpression.substring(0,8) + (ActionExpression.length>8?'...':'') + ') ' : ''}} {{ActionData.Expression}}\r\n if (res.documentEditorTitle) {\r\n // Build a proxy to enable the title expression to refer to missing elements in the model without throwing an exception\r\n const handler1 = {\r\n has: function (oTarget, sKey) {\r\n return sKey !== '_self';\r\n },\r\n get: function (target, prop, receiver) {\r\n return prop in target ? target[prop] : null;\r\n }\r\n };\r\n this.model_proxy = new Proxy(this.cmodel, handler1);\r\n\r\n this.titleexpn = utils.compile(this, res.documentEditorTitle);\r\n }\r\n }\r\n },\r\n computed: {\r\n title: function () {\r\n if (this.titleexpn)\r\n try {\r\n return utils.evaluate(this.titleexpn, this.model_proxy);\r\n }\r\n catch (e) {\r\n utils.warn('Array documentEditorTitle failed to evaluate: ' + this.titleexpn + '; ' + e);\r\n return null;\r\n }\r\n else\r\n return null;\r\n },\r\n },\r\n props: {\r\n cmodel: null,\r\n visible: false,\r\n },\r\n render(h) {\r\n const style = {\r\n //display: \"inline\",\r\n fontFamily: \"Arial\",\r\n fontSize: \"small\", // x-small before\r\n overflow: \"hidden\",\r\n whiteSpace: \"nowrap\",\r\n maxWidth: \"350px\",\r\n marginTop: \"2px\",\r\n marginBottom: \"1px\",\r\n };\r\n return
{this.title}
;\r\n }\r\n});\r\n\r\nfunction toggleVisible(control, key) {\r\n const default_value = 'true';\r\n const value = control.visible_keys[key] || localStorage.getItem(key);\r\n\r\n if (!value) {\r\n // No setting, save the opposite of the default_value\r\n const new_value = default_value === 'true' ? 'false' : 'true';\r\n localStorage.setItem(key, new_value);\r\n Vue.set(control.visible_keys, key, new_value);\r\n utils.log('Saved ' + key + ' as ' + new_value);\r\n }\r\n else {\r\n const new_value = value === 'true' ? 'false' : 'true';\r\n if (new_value === default_value) {\r\n // When the value is the default, remove the entry\r\n localStorage.removeItem(key);\r\n Vue.delete(control.visible_keys, key);\r\n utils.log('Deleted ' + key);\r\n }\r\n else {\r\n // Otherwise, we must store the value\r\n localStorage.setItem(key, new_value);\r\n Vue.set(control.visible_keys, key, new_value);\r\n utils.log('Saved ' + key + ' as ' + new_value);\r\n }\r\n }\r\n}\r\n\r\nfunction getVisibility(control, key) {\r\n const default_value = 'true';\r\n let value = control.visible_keys[key];\r\n if (!value) {\r\n value = localStorage.getItem(key);\r\n if (value)\r\n Vue.set(control.visible_keys, key, value);\r\n }\r\n\r\n if (!value)\r\n return default_value === 'true';\r\n else\r\n return value === 'true';\r\n}\r\n\r\n\r\nVue.component('form-array', {\r\n data: function () {\r\n return {\r\n selected:[],\r\n visible_keys: {},\r\n\r\n uniquekey: null,\r\n asjson: false,\r\n }\r\n },\r\n created() {\r\n this.uniquekey = utils.generateUUID();\r\n },\r\n computed: {\r\n ...utils.forms.computed,\r\n anySelected: function () {\r\n if (!this.selected || this.selected.length == 0) return false;\r\n for (let i = 0; i < this.selected.length; i++)\r\n if (this.selected[i]) return true;\r\n return false;\r\n }\r\n },\r\n methods: {\r\n ...methods,\r\n async addAnother() {\r\n if (!this.cmodel[this.schemakey])\r\n Vue.set(this.cmodel, this.schemakey, []);\r\n\r\n //const s = await utils.schema.resolve(this.schema.items);\r\n const schema = utils.schema.resolve_Of(this.schema.items);\r\n const newmodel = utils.schema.getDefaultModel(schema);\r\n this.cmodel[this.schemakey].push(newmodel);\r\n },\r\n removeItem(index) {\r\n this.cmodel[this.schemakey].splice(index, 1);\r\n },\r\n moveItemUp(index) {\r\n if (index > 0)\r\n {\r\n const item = this.cmodel[this.schemakey][index];\r\n this.cmodel[this.schemakey].splice(index, 1);\r\n this.cmodel[this.schemakey].splice(index - 1, 0, item);\r\n }\r\n },\r\n moveItemDown(index) {\r\n if (index < this.cmodel[this.schemakey].length - 1) {\r\n const item = this.cmodel[this.schemakey][index];\r\n this.cmodel[this.schemakey].splice(index, 1);\r\n this.cmodel[this.schemakey].splice(index + 1, 0, item);\r\n }\r\n },\r\n\r\n setSelection(index, checked) {\r\n while (index >= this.selected.length)\r\n this.selected.push(false);\r\n\r\n Vue.set(this.selected, index, checked);\r\n },\r\n copy() {\r\n const controls = this.cmodel[this.schemakey];\r\n const selected = [];\r\n for (let i = 0; i < this.selected.length; i++)\r\n if (this.selected[i])\r\n selected.push(controls[i]);\r\n\r\n localStorage.setItem('careClipboard', JSON.stringify(selected));\r\n },\r\n cut() {\r\n const controls = this.cmodel[this.schemakey];\r\n const selected = [];\r\n for (let i = 0; i < this.selected.length; i++)\r\n if (this.selected[i])\r\n selected.push(controls[i]);\r\n\r\n localStorage.setItem('careClipboard', JSON.stringify(selected));\r\n\r\n for (let i = this.selected.length - 1; i >= 0; i--)\r\n if (this.selected[i])\r\n controls.splice(i, 1);\r\n\r\n this.selected = [];\r\n },\r\n paste() {\r\n const rawbuffer = localStorage.getItem('careClipboard');\r\n if (rawbuffer && typeof rawbuffer === 'string')\r\n {\r\n try {\r\n const data = JSON.parse(rawbuffer);\r\n if (typeof data === 'object' && Array.isArray(data)) {\r\n if (!this.cmodel[this.schemakey])\r\n Vue.set(this.cmodel, this.schemakey, []);\r\n\r\n const controls = this.cmodel[this.schemakey];\r\n for (let i = 0; i < data.length; i++)\r\n {\r\n if ('$objectId' in data[i]) data[i].$objectId = utils.generateUUID();\r\n controls.push(data[i]);\r\n }\r\n }\r\n }\r\n catch (e)\r\n {\r\n alert('Failed to parse data from clipboard buffer: ' + e);\r\n }\r\n }\r\n },\r\n selectAll() {\r\n const controls = this.cmodel[this.schemakey];\r\n\r\n this.selected = new Array(controls.length);\r\n\r\n for (let i = 0; i < this.selected.length; i++)\r\n Vue.set(this.selected, i, true);\r\n },\r\n selectNone() {\r\n this.selected = [];\r\n },\r\n extractor(control, prop, index) {\r\n const accept = async (value) => {\r\n const newmodel = control.cmodel[index];\r\n let newcontrol;\r\n let replaced;\r\n let type;\r\n switch (this.schema.items.Id) {\r\n case '/Apps/Schema/AnyOf/schema/public/Platform.Schema.BaseTypes.v1/DynamicControl':\r\n // Build a new user control and embed a reference in place of control.cmodel[index]\r\n type = 'UserControl';\r\n newcontrol = {\r\n $typeSchema: '/schema/public/Platform.Schema.Documents.v1/Document_UserControl',\r\n Name: value,\r\n Data: newmodel,\r\n Public: false,\r\n ControlDataSchema: {\r\n type: 'object',\r\n additionalProperties: true,\r\n properties: {},\r\n },\r\n $DeployID: 'dev',\r\n };\r\n replaced = {\r\n $typeSchema: '/schema/public/Platform.Schema.DynamicControls.v1/DynamicControl_Reference',\r\n PrimitiveControl: false,\r\n CacheControl: true,\r\n ControlData: {},\r\n ControlURL: newcontrol.Name,\r\n $objectId: utils.generateUUID(),\r\n };\r\n break;\r\n\r\n case '/Apps/Schema/AnyOf/schema/public/Platform.Schema.BaseTypes.v1/UIAction':\r\n // Build a new user action and embed a reference in place of control.cmodel[index]\r\n type = 'Action';\r\n newcontrol = {\r\n $typeSchema: '/schema/public/Platform.Schema.Documents.v1/Document_UserAction',\r\n Name: value,\r\n Data: newmodel,\r\n Public: false,\r\n ActionDataSchema: {\r\n type: 'object',\r\n additionalProperties: true,\r\n properties: {},\r\n },\r\n $DeployID: 'dev',\r\n };\r\n replaced = {\r\n $typeSchema: '/schema/public/Platform.Schema.UIActions.v1/UIAction_Reference',\r\n PrimitiveAction: true,\r\n ActionType: 'ReferenceUserAction',\r\n ActionData: {\r\n UserAction: {\r\n ActionData: {},\r\n ActionURL: newcontrol.Name,\r\n CacheAction: true,\r\n }\r\n },\r\n RunAsync: false,\r\n $objectId: utils.generateUUID(),\r\n };\r\n break;\r\n\r\n default:\r\n return;\r\n }\r\n\r\n if (this.root.saveExtractedEntity) {\r\n // Save the new control or action\r\n const success = await this.root.saveExtractedEntity(type, newcontrol);\r\n\r\n // Replace the current item with the new content which points to the newly saved entity\r\n if (success)\r\n Vue.set(control.cmodel, index, replaced);\r\n }\r\n };\r\n\r\n let title;\r\n let label;\r\n switch (this.schema.items.Id) {\r\n case '/Apps/Schema/AnyOf/schema/public/Platform.Schema.BaseTypes.v1/DynamicControl':\r\n title = 'Extract User Control';\r\n label = 'New User Control Name';\r\n break;\r\n\r\n case '/Apps/Schema/AnyOf/schema/public/Platform.Schema.BaseTypes.v1/UIAction':\r\n title = 'Extract User Action';\r\n label = 'New User Action Name';\r\n break;\r\n\r\n default:\r\n return;\r\n }\r\n\r\n EventBus.$emit('SHOW_DIALOG', (\r\n \r\n \r\n ));\r\n },\r\n reOrderItems(result) {\r\n // Ex: {\"removedIndex\":2,\"addedIndex\":0}\r\n const cmodel = this.cmodel[this.schemakey] || [];\r\n // Note: the indexes are off by 1 for some reason, compensating (-1)\r\n const item = cmodel[result.removedIndex - 1];\r\n cmodel.splice(result.removedIndex - 1, 1);\r\n cmodel.splice(result.addedIndex - 1, 0, item);\r\n },\r\n\r\n sync(text) {\r\n try {\r\n this.cmodel[this.schemakey] = JSON.parse(text);\r\n }\r\n catch (e) {\r\n utils.warn('array in propertygrid could not parse JSON', e);\r\n }\r\n },\r\n },\r\n props: {\r\n name: '',\r\n schemakey: '',\r\n root: null,\r\n schema: null,\r\n cmodel: null,\r\n extra: null,\r\n readonly: false,\r\n path: null,\r\n child: 0,\r\n navigateTo: null,\r\n canNavigate: false,\r\n propertygrid: false,\r\n },\r\n render(h) {\r\n if (!this.Condition || !this.schema || !this.schema.items)\r\n return null;\r\n\r\n let desc;\r\n if (this.schema.description)\r\n desc = ;\r\n\r\n const schema = utils.schema.resolve_Of(this.schema.items);\r\n const name = {this.name};\r\n\r\n const heads = [];\r\n const input = [];\r\n const foots = [];\r\n const cmodel = this.cmodel[this.schemakey] || [];\r\n\r\n const visible_key = [...(this.path || []), this.schemakey].join('.');\r\n const vis = getVisibility(this, visible_key);\r\n const icon = vis ? : ;\r\n const openclose = toggleVisible(this, visible_key)}>{icon};\r\n\r\n const jsonico = this.asjson ? : ;\r\n const jsontgl = this.asjson =! this.asjson}>{jsonico};\r\n\r\n const tdstyle = {\r\n backgroundColor: \"#f8f8f8\",\r\n };\r\n\r\n if (vis) {\r\n if (this.asjson || typeof cmodel === 'string') {\r\n // Allows viewing/editing the raw JSON of the element model\r\n const rawjson = JSON.stringify(cmodel, null, 4);\r\n return (\r\n \r\n \r\n {name} {jsontgl} {openclose} {desc}\r\n \r\n\r\n \r\n
\r\n this.sync(text)}\r\n content={rawjson}>\r\n \r\n
\r\n \r\n\r\n \r\n );\r\n }\r\n\r\n const btn_styles = {\r\n 'font-size': \"x-small\"\r\n };\r\n\r\n if (this.canNavigate) {\r\n input.push(\r\n \r\n Copy\r\n Cut\r\n Paste\r\n\r\n Select All\r\n Select None\r\n \r\n );\r\n }\r\n\r\n let Tag = utils.schema.getElementType(schema);\r\n if (!Tag && schema.type == 'object')\r\n Tag = 'property-grid';\r\n\r\n if (Tag)\r\n for (let i = 0; i < cmodel.length; i++) {\r\n const item = cmodel[i];\r\n\r\n let select_checkbox;\r\n let item_label;\r\n let style = {\r\n marginBottom: \"1px\",\r\n borderBottomWidth: \"1px\",\r\n borderBottomStyle: \"solid\",\r\n borderBottomColor: \"silver\",\r\n borderRadius: \"3px\",\r\n };\r\n\r\n if (this.canNavigate) {\r\n select_checkbox = i && this.selected[i]} on-change={(e) => this.setSelection(i, e.target.checked)} />;\r\n item_label = (\r\n \r\n \r\n );\r\n }\r\n\r\n if (item && typeof item === 'object' && !item.$objectId)\r\n item.$objectId = utils.generateUUID();\r\n\r\n input.push(\r\n \r\n \r\n {select_checkbox}\r\n this.navigateTo(control, prop, value || item)}\r\n canNavigate={this.canNavigate}\r\n extractor={(control, prop) => this.extractor(control, prop, i)}\r\n propertygrid={this.propertygrid}\r\n >\r\n \r\n this.moveItemUp(i)}>mdi mdi-arrow-up\r\n this.moveItemDown(i)}>mdi mdi-arrow-down\r\n this.removeItem(i)}>mdi mdi-close\r\n 1} class=\"column-drag-handle\" style=\"float:right; padding:0 10px; margin-top: 5px; cursor: grab;\">☰\r\n \r\n
{item_label}\r\n
\r\n );\r\n }\r\n\r\n foots.push(\r\n \r\n this.addAnother()}>Add Another mdi mdi-plus\r\n \r\n );\r\n }\r\n else\r\n heads.push({cmodel.length} Item(s));\r\n\r\n return (\r\n \r\n \r\n {name} {jsontgl} {openclose} {desc}\r\n \r\n \r\n {heads}\r\n this.reOrderItems(res)} drag-handle-selector=\".column-drag-handle\">\r\n {input}\r\n \r\n {foots}\r\n \r\n \r\n );\r\n }\r\n});","import Vue from 'vue';\r\nimport formInput from './input.jsx';\r\nimport formInputMulti from './inputmultiline.jsx';\r\nimport formTextEditor from './texteditor.jsx';\r\nimport formNumber from './number.jsx';\r\nimport formCheckbox from './checkbox.jsx';\r\nimport formBoolean from './boolean.jsx';\r\nimport formSelect from './select.jsx';\r\nimport formAnyOf from './anyof.jsx';\r\nimport formArray from './array.jsx';\r\nimport nullableType from './nullabletype.jsx';\r\nimport schemaProperties from './SchemaProperties.jsx';\r\nimport ReferencedDocumentSchema from './referencedDocumentSchema.jsx';\r\nimport HsmStatementSchema from './hsmStatementSchema.jsx';\r\nimport LookupList from './lookupList.jsx';\r\nimport utils from '../../../Shared/utils.jsx';\r\nimport methods from '../../../Shared/methods';\r\n\r\nfunction toggleVisible(control, key, child)\r\n{\r\n const default_value = child <= 0 ? 'true' : 'false';\r\n const value = control.visible_keys[key] || localStorage.getItem(key);\r\n\r\n if (!value)\r\n {\r\n // No setting, save the opposite of the default_value\r\n const new_value = default_value === 'true' ? 'false' : 'true';\r\n localStorage.setItem(key, new_value);\r\n Vue.set(control.visible_keys, key, new_value);\r\n utils.log('Saved ' + key + ' as ' + new_value);\r\n }\r\n else\r\n {\r\n const new_value = value === 'true' ? 'false' : 'true';\r\n if (new_value === default_value)\r\n {\r\n // When the value is the default, remove the entry\r\n localStorage.removeItem(key);\r\n Vue.delete(control.visible_keys, key);\r\n utils.log('Deleted ' + key);\r\n }\r\n else\r\n {\r\n // Otherwise, we must store the value\r\n localStorage.setItem(key, new_value);\r\n Vue.set(control.visible_keys, key, new_value);\r\n utils.log('Saved ' + key + ' as ' + new_value);\r\n }\r\n }\r\n}\r\n\r\nfunction getVisibility(control, key, child)\r\n{\r\n const default_value = child <= 0 ? 'true' : 'false';\r\n let value = control.visible_keys[key];\r\n if (!value) {\r\n value = localStorage.getItem(key);\r\n if (value)\r\n Vue.set(control.visible_keys, key, value);\r\n }\r\n\r\n if (!value)\r\n return default_value === 'true';\r\n else\r\n return value === 'true';\r\n}\r\n\r\nfunction getFormElements(h, control, schema, form_model, element_model, elements, root, child, path)\r\n{\r\n let cmodel = element_model;\r\n if (cmodel === undefined || cmodel === null)\r\n return;\r\n\r\n // Generating an objectId just so Vue will have a unique key associated with each element. Otherwise, changing the cmodel\r\n // will not necessarily cause it to re-render the contents.\r\n if (!cmodel.$objectId)\r\n Vue.set(cmodel, '$objectId', utils.generateUUID());\r\n\r\n let index = 0;\r\n for (let key in schema.properties) {\r\n if (key.substr(0, 1) == '$' && key !== '$ref') continue;\r\n\r\n const uniquerowkey = cmodel.$objectId + '_' + key + '_' + index + '_' + child;\r\n index++;\r\n\r\n const value = element_model[key];\r\n let element = utils.schema.resolve_Of(schema.properties[key]);\r\n let Tag = utils.schema.getElementType(element);\r\n\r\n if (!Tag && element.type == 'object') {\r\n if (!cmodel[key])\r\n Vue.set(cmodel, key, {});\r\n\r\n if (element.$$condition && typeof element.$$condition === 'function')\r\n try {\r\n const schema_context = utils.schema.getConditionContext(control, { FormModel: control.cmodel, ParentModel: cmodel });\r\n\r\n if (!element.$$condition(schema_context)) continue;\r\n }\r\n catch (e) {\r\n utils.warn('Schema condition expression ' + element.condition + ' failed to evaluate: ' + e);\r\n }\r\n\r\n const visible_key = [...path, key].join('.');\r\n const vis = getVisibility(control, visible_key, child);\r\n const icon = vis ? : ;\r\n\r\n elements.push(\r\n toggleVisible(control, visible_key, child)}>\r\n \r\n {icon} {element.title || key}\r\n \r\n \r\n );\r\n if (vis) {\r\n if (element.format === 'SchemaProperty')\r\n elements.push(\r\n \r\n \r\n control.internalNavigateTo(element, cmodel, key, ctrl, prop, value)}>\r\n \r\n \r\n \r\n );\r\n else\r\n getFormElements(h, control, element, form_model, cmodel[key], elements, root, child + 1, [...path, key]);\r\n }\r\n continue;\r\n }\r\n\r\n elements.push(\r\n control.internalNavigateTo(element, cmodel, key, ctrl, prop, value)}>\r\n \r\n );\r\n }\r\n}\r\n\r\nconst getCircularReplacer = () => {\r\n const seen = new WeakSet();\r\n return (key, value) => {\r\n if (typeof value === \"object\" && value !== null) {\r\n if (seen.has(value)) {\r\n return;\r\n }\r\n seen.add(value);\r\n }\r\n return value;\r\n };\r\n};\r\n\r\nVue.component('property-grid', {\r\n data: () => ({\r\n current_model: null,\r\n breadcrumb: [],\r\n visible_keys: {},\r\n //pinned_tabs: [{ \"Title\": \"Properties\" }],\r\n //selected_tab_index: 0\r\n }),\r\n created() {\r\n this.current_model = this.cmodel;\r\n this.$parent.$on('reset-breadcrumb', this.resetBreadcrumb);\r\n },\r\n props: {\r\n name: '',\r\n schemakey: null,\r\n root: null,\r\n schema: null,\r\n form: null,\r\n cmodel: null,\r\n child: 0,\r\n readonly: false,\r\n extra: null,\r\n navigateToModel: null,\r\n navigateTo: null,\r\n canNavigate: false,\r\n },\r\n computed: {\r\n ...utils.forms.computed,\r\n canNavigateTo: function () {\r\n return this.navigateToModel ? true : false;\r\n }\r\n },\r\n methods: {\r\n textChanged(prop, cmodel, value) {\r\n try {\r\n const obj = JSON.parse(value);\r\n Vue.set(cmodel, prop, obj);\r\n }\r\n catch (e)\r\n {\r\n utils.warn('Property grid failed to convert value to object: ' + e);\r\n }\r\n },\r\n internalNavigateTo(schema, cmodel, key, ctrl, prop, value) {\r\n if (this.navigateTo)\r\n this.navigateTo(ctrl, prop, value);\r\n else if (this.navigateToModel) {\r\n this.breadcrumb.push({ cmodel: this.cmodel, prevmodel: cmodel });\r\n if ((value === null || typeof value === 'undefined') && prop in cmodel)\r\n this.navigateToModel(cmodel[prop]);\r\n else\r\n this.navigateToModel(value);\r\n }\r\n },\r\n breadcrumbBack(index) {\r\n if (this.navigateToModel) {\r\n const newmodel = this.breadcrumb[index].cmodel;\r\n if (index === 0)\r\n this.breadcrumb = [];\r\n else\r\n this.breadcrumb = this.breadcrumb.slice(0, index);\r\n\r\n this.navigateToModel(newmodel);\r\n }\r\n },\r\n resetBreadcrumb() {\r\n this.breadcrumb = [];\r\n }\r\n },\r\n render(h) {\r\n let schema = this.schema;\r\n let elements = [];\r\n if (!schema)\r\n return null;\r\n\r\n schema = utils.schema.resolve_Of(schema);\r\n\r\n if (schema.type !== 'object')\r\n return
Schema must be an object
;\r\n\r\n //console.log(`--- property-grid render:`);\r\n //console.log(`--- cmodel: ${JSON.stringify(this.cmodel, getCircularReplacer(), 3)}`);\r\n //console.log(`--- schema: ${JSON.stringify(this.schema, getCircularReplacer(), 3)}`);\r\n\r\n //TODO: Handle user selected type - $typeSchema is UserSelectedType (or similar), members include $ref that has a format (not sure how we should recognize it correctly)\r\n\r\n let cmodel = this.cmodel;\r\n if (this.schemakey !== null && !(typeof this.schemakey === 'undefined'))\r\n cmodel = this.cmodel[this.schemakey];\r\n\r\n if (this.breadcrumb && this.breadcrumb.length > 0)\r\n {\r\n const crumbs = [];\r\n for (let i = 0; i < this.breadcrumb.length; i++)\r\n {\r\n const bc = this.breadcrumb[i];\r\n let name;\r\n if (bc.prevmodel && bc.prevmodel.title)\r\n name = bc.prevmodel.title;\r\n else if (bc.prevmodel && bc.prevmodel.Name)\r\n name = bc.prevmodel.Name;\r\n else\r\n name = bc.cmodel.$typeSchema;\r\n\r\n if (name) {\r\n // Example: /schema/public/Platform.Schema.DynamicControls.v1/DynamicControl_HSM_State\r\n name = name.split('/');\r\n name = name[name.length - 1];\r\n if (name.includes('_')) {\r\n name = name.split('_');\r\n name = name[name.length - 1];\r\n }\r\n }\r\n else\r\n name = 'Back';\r\n\r\n const crumb_style = {\r\n margin: \"5px\",\r\n cursor: \"pointer\",\r\n color: \"white\",\r\n backgroundColor: \"gray\",\r\n //textDecoration: \"underline\",\r\n fontSize: \"small\",\r\n fontFamily: \"Arial\",\r\n margin: \"3px\",\r\n padding: \"2px\",\r\n borderRadius: \"2px\",\r\n };\r\n\r\n crumbs.push(\r\n this.breadcrumbBack(i)}> {name}\r\n );\r\n }\r\n elements.push(\r\n \r\n \r\n {crumbs}\r\n \r\n \r\n );\r\n }\r\n\r\n getFormElements(h, this, schema, this.FormModel, cmodel, elements, this.root, this.child, [ schema.Id ]);\r\n\r\n //const tabs = [];\r\n //const tab_contents = [];\r\n //for (let i = 0; i < this.pinned_tabs.length; i++)\r\n //{\r\n // const pin = this.pinned_tabs[i];\r\n // let color;\r\n // if (i == this.selected_tab_index)\r\n // color = { color: \"black\", backgroundColor: \"white\", borderStyle: \"solid solid none solid\" };\r\n // else\r\n // color = { color: \"silver\", backgroundColor: \"gray\", borderStyle: \"none\" };\r\n\r\n // tabs.push(\r\n // this.selected_tab_index = i}>\r\n // {pin.Title}\r\n // \r\n // );\r\n //}\r\n\r\n //const mainstyle = { width: \"100%\" };\r\n //if (this.selected_tab_index !== 0)\r\n // mainstyle.display = \"none\";\r\n\r\n return (\r\n \r\n {elements}\r\n
\r\n );\r\n }\r\n});","import Vue from 'vue';\r\nimport BaseComponent from './baseFormMixin.jsx';\r\nimport utils from '../../../Shared/utils.jsx';\r\nimport RoosterEditorBase from '../vuecontrols/RoosterEditorBase.vue';\r\nimport Editor from '@tinymce/tinymce-vue';\r\n\r\nVue.component('sform-htmleditor', {\r\n mixins: [BaseComponent],\r\n components: {\r\n RoosterEditorBase\r\n },\r\n data: () => ({\r\n }),\r\n props: {\r\n },\r\n created() {\r\n },\r\n mounted() {\r\n this.loadComplete();\r\n },\r\n computed: {\r\n readOnly() {\r\n try {\r\n if(this.readOnlyEval === null && this.element.readonly)\r\n this.readOnlyEval = utils.compile(this, this.element.readonly);\r\n if(this.readOnlyEval)\r\n return utils.evaluate(this.readOnlyEval, this);\r\n return false;\r\n }\r\n catch (e) {\r\n utils.warn('ReadOnly could not evaluate expression: ' + this.element.readonly + '; ' + e);\r\n return false;\r\n }\r\n },\r\n },\r\n methods: {\r\n async onChange(value) {\r\n this.sync(value);\r\n },\r\n },\r\n render() {\r\n const classes = {\r\n 'mb-3': true,\r\n };\r\n\r\n let padding;\r\n if (this.hasfocus)\r\n padding = \"14px 5px 20px 5px\";\r\n else\r\n padding = \"14px 5px 5px 5px\";\r\n\r\n let input = // this.sync(value)}>;\r\n
\r\n \r\n \r\n
\r\n {this.element.description}\r\n
\r\n
;\r\n\r\n return input;\r\n }\r\n});","import Vue from 'vue';\r\nimport BaseComponent from './baseFormMixin.jsx';\r\nimport utils from '../../../Shared/utils.jsx';\r\nimport { appSettings } from '@/Shared/appSettings.js';\r\n\r\nVue.component('sform-referenceddocumentschema', {\r\n mixins: [BaseComponent],\r\n data: () => ({\r\n control_schema: null,\r\n form_all: null,\r\n }),\r\n props: {\r\n },\r\n created() {\r\n if (this.element.schema)\r\n this.watcher$ = this.$watch('element.schema.formatData.DocumentName', function (val, oldval) { this.Refresh(); });\r\n },\r\n destroyed() {\r\n if (this.watcher$)\r\n this.watcher$();\r\n },\r\n async mounted() {\r\n await this.loadComplete();\r\n await this.Refresh();\r\n },\r\n computed: {\r\n },\r\n methods: {\r\n async Refresh() {\r\n if (!this.element.schema)\r\n return;\r\n\r\n const doctype = this.element.schema.formatData.DocumentType; // UserControl or UserAction\r\n const docname = this.element.schema.formatData.DocumentName;\r\n\r\n if (docname) {\r\n let doc1 = await utils.api.get('Apps/UIWhole/' + doctype + '/' + docname);\r\n\r\n if (!doc1)\r\n doc1 = await utils.api.get('Apps/UIWhole/' + doctype + '/public/' + docname);\r\n\r\n switch (doctype) {\r\n case 'UserControl': this.control_schema = doc1.ControlDataSchema; break;\r\n case 'Action': this.control_schema = doc2.ActionDataSchema; break;\r\n default:\r\n this.control_schema = null;\r\n return;\r\n }\r\n\r\n if (this.control_schema) {\r\n await utils.schema.resolve(this.control_schema);\r\n this.form_all = utils.forms.generateFormWithSchema(['*'], this.control_schema);\r\n }\r\n }\r\n else\r\n this.control_schema = null;\r\n }\r\n },\r\n render(h) {\r\n if (!this.control_schema || !this.form_all)\r\n return null;\r\n\r\n return (\r\n \r\n \r\n );\r\n }\r\n});","import Vue from 'vue';\r\nimport utils from '../../../Shared/utils.jsx';\r\n\r\nVue.component('sform-table-layout', {\r\n data: () => ({\r\n }),\r\n props: {\r\n formtype: null,\r\n colspan: false,\r\n name: '',\r\n root: null,\r\n form: null,\r\n element: null,\r\n cmodel: null,\r\n modelkey: null,\r\n fieldset_index: null,\r\n layouttype: null,\r\n condensed: false,\r\n depth: 0,\r\n },\r\n created() {\r\n },\r\n computed: {\r\n },\r\n methods: {\r\n getLabel(element) {\r\n if (element.title)\r\n return element.title;\r\n else if (element.key) {\r\n let title = element.key[element.key.length - 1];\r\n if (title == '[]' && element.key.length > 1)\r\n title = element.key[element.key.length - 2];\r\n return title;\r\n }\r\n else\r\n return null;\r\n }\r\n },\r\n render() {\r\n //if (!this.Condition)\r\n // return null;\r\n\r\n const Tag = this.formtype;\r\n\r\n const item = (\r\n \r\n \r\n );\r\n\r\n if (this.colspan) {\r\n return (\r\n \r\n \r\n {item}\r\n \r\n \r\n );\r\n }\r\n else {\r\n let desc;\r\n if (this.element.description)\r\n desc = mdi mdi-information;\r\n\r\n const label = {this.getLabel(this.element)} {desc};\r\n\r\n const style = {\r\n width: \"1px\"\r\n };\r\n const classes = {};\r\n if (this.formtype == 'sform-array') {\r\n style.verticalAlign = 'top';\r\n classes[\"pt-2\"] = true;\r\n }\r\n\r\n return (\r\n \r\n \r\n {label}\r\n \r\n \r\n {item}\r\n \r\n \r\n );\r\n }\r\n }\r\n});","import Vue from 'vue';\r\nimport utils from '../../../Shared/utils.jsx';\r\nimport careHelpfulFunctions from '../../careHelpfulFunctions.jsx';\r\nimport methods from '../../../Shared/methods';\r\nimport filters from '../../../Shared/filters';\r\nimport computed from '../../../Shared/computed';\r\n\r\nVue.component('sform-card-layout', {\r\n data: () => ({\r\n readfunc: null,\r\n writefunc: null,\r\n readparentfunc: null,\r\n }),\r\n props: {\r\n formtype: null,\r\n colspan: false,\r\n xxname: '',\r\n root: null,\r\n form: null,\r\n element: null,\r\n cmodel: null,\r\n modelkey: null,\r\n fieldset_index: null,\r\n array_index: null,\r\n layouttype: null,\r\n condensed: false,\r\n depth: 0,\r\n type: null,\r\n noinput: null,\r\n autofocus: false,\r\n notitle: false,\r\n schema: null,\r\n scopeitems: null,\r\n controlscope: null,\r\n appearance: null,\r\n directives: null\r\n },\r\n created() {\r\n if (this.element && this.element.key) {\r\n this.readfunc = utils.forms.getModelElementReader(this.element.key, this.modelkey);\r\n this.writefunc = utils.forms.getModelElementWriter(this.element.key, this.modelkey);\r\n\r\n // Make another reader to return the parent .\r\n if (this.element.key.length <= 1) {\r\n this.readparentfunc = { func: (model) => model, code: '(model) => model' };\r\n }\r\n else {\r\n // Trim off the last element to refer to the parent\r\n const keys = this.element.key.slice(0, this.element.key.length - 1);\r\n this.readparentfunc = utils.forms.getModelElementReader(keys, this.modelkey);\r\n }\r\n\r\n //utils.debug(` +++ +++ Schema element ${this.name} setting reader to ${this.readfunc.code}`);\r\n //utils.debug(` +++ +++ Schema element ${this.name} setting writer to ${this.writefunc.code}`);\r\n //utils.debug(` +++ +++ Schema element ${this.name} setting ParentModel reader to ${this.readparentfunc.code}`);\r\n //utils.debug(` +++ +++ Schema element ${this.name} visible? ${this.condition ? 'YES' : 'NO'}`);\r\n\r\n //if (this.condition)\r\n // this.govisible();\r\n }\r\n },\r\n async mounted() {\r\n //this.$watchfunc = this.$watch(\r\n // function () { return this.condition; },\r\n // function (newvalue) {\r\n // if (newvalue)\r\n // this.govisible();\r\n // else\r\n // this.gohidden();\r\n // }\r\n //);\r\n },\r\n destroyed() {\r\n //this.$watchfunc();\r\n },\r\n computed: {\r\n ...computed,\r\n name: function () {\r\n // Use the key array to derive a name\r\n let name = '';\r\n if (this.element && this.element.key && Array.isArray(this.element.key) && this.element.key.length > 0) {\r\n name = this.element.key[0];\r\n for (let i = 1; i < this.element.key.length; i++) {\r\n if (this.element.key[i] != '[]')\r\n name += '.';\r\n\r\n name += this.element.key[i];\r\n }\r\n }\r\n return name + '_card';\r\n },\r\n label: function () {\r\n if (this.element.title) {\r\n return this.element.title;// this.Translate(this.element.title);\r\n }\r\n else if (this.element.key) {\r\n let title = this.element.key[this.element.key.length - 1];\r\n if (title == '[]' && this.element.key.length > 1)\r\n title = this.element.key[this.element.key.length - 2];\r\n return title;//this.Translate(title);\r\n }\r\n else\r\n return null;\r\n },\r\n description: function () {\r\n return this.element.description ? this.element.description : null;\r\n },\r\n condition: function () {\r\n if (this.element && this.element.$$condition && typeof this.element.$$condition === 'function')\r\n try {\r\n return this.element.$$condition(this, careHelpfulFunctions);\r\n }\r\n catch (e) {\r\n utils.warn(`Input element failed to evaluate condition for ${this.modelkey ? this.modelkey.join('.') : '?'} as ${this.layouttype}: ${this.element.condition || (this.element.schema ? (this.element.schema.condition || 'NA') : 'NA')}`, e);\r\n return true;\r\n }\r\n else\r\n return true;\r\n },\r\n readonly: function () {\r\n if (this.$$readonly)\r\n return utils.evaluate(this.$$readonly, this);\r\n\r\n let expn = this.element.readonly || this.appearance?.readonly;\r\n if (typeof expn === 'string' && ((expn.substr(0, 2) === '{%' && expn.substr(expn.length - 2, 2) === '%}') || (expn.substr(0, 2) === '{#' && expn.substr(expn.length - 2, 2) === '#}'))) {\r\n expn = expn.substr(2, expn.length - 4);\r\n this.$$readonly = utils.compileExpression(this, expn);\r\n return utils.evaluate(this.$$readonly, this);\r\n }\r\n else\r\n return this.element.readonly || this.appearance?.readonly;\r\n },\r\n itemvalue: function () {\r\n try {\r\n return this.readfunc.func(this.cmodel);\r\n }\r\n catch (e) {\r\n utils.warn('Failed to evaluate readfunc: ' + this.readfunc.code, e);\r\n return null;\r\n }\r\n },\r\n elementkey: function () {\r\n if (!this.element.$objectId)\r\n this.element.$objectId = utils.generateUUID();\r\n\r\n return `${this.name}_${this.element.$objectId}`;\r\n },\r\n FieldValue: {\r\n get: function () {\r\n return this.itemvalue;\r\n },\r\n set: function (value) {\r\n this.writefunc.func(this.cmodel, value, Vue);\r\n }\r\n },\r\n ArrayIndex: function () {\r\n let p = this;\r\n while (p && (!('array_index' in p) || (typeof p.array_index === 'undefined'))) {\r\n p = p.$parent;\r\n }\r\n\r\n if (p)\r\n return p.array_index;\r\n else\r\n return -1;\r\n },\r\n FormModel: function () {\r\n return this.cmodel;\r\n },\r\n ParentModel: function () {\r\n try {\r\n if (this.readparentfunc)\r\n {\r\n //utils.forms.insureModelPath(this.cmodel, this.element, this.schema);\r\n return this.readparentfunc.func(this.cmodel);\r\n }\r\n else\r\n return null;\r\n }\r\n catch (e) {\r\n utils.warn(`Failed to evaluate ${this.name} readparentfunc: ${this.readparentfunc ? this.readparentfunc.code : 'N/A'}`, e);\r\n return null;\r\n }\r\n },\r\n },\r\n methods: {\r\n ...methods,\r\n ...filters,\r\n //insureModelPath() {\r\n // // This walks down from the root schema to insure the model is initialized up to the ParentModel\r\n // if (this.element.key)\r\n // for (let i = 0; i < this.element.key.length - 1; i++) {\r\n // if (this.element.key[i] == '[]')\r\n // // Bail out if we are walking through an array path\r\n // // (We might make this work sometime, but I don't think it's necessary)\r\n // break;\r\n\r\n // const key = this.element.key.slice(0, i + 1);\r\n // let m = this.cmodel;\r\n // for (let j = 0; j < key.length - 1; j++)\r\n // m = m[key[j]];\r\n \r\n // let s = this.schema;\r\n // for (let i = 0; i < key.length; i++)\r\n // s = s.properties[key[i]];\r\n \r\n // if (s.type == 'object' && !m[key[key.length - 1]])\r\n // Vue.set(m, key[key.length - 1], {});\r\n // else if (s.type == 'array' && !m[key[key.length - 1]])\r\n // Vue.set(m, key[key.length - 1], []);\r\n // }\r\n\r\n //},\r\n govisible() {\r\n //if (this.element.schema) {\r\n // const value = utils.schema.getDefaultModel(this.element.schema);\r\n\r\n // utils.debug(` +++ Schema element ${this.name} going visible - setting field to ${JSON.stringify(value)}`);\r\n\r\n // this.writefunc.func(this.cmodel, value, Vue);\r\n //}\r\n if (!this.ParentModel) {\r\n //utils.debug(` +++ Schema element ${this.name} has no ParentModel (undefined)`);\r\n return;\r\n }\r\n\r\n // Fill in default value if not already populated\r\n const last = this.element.key[this.element.key.length - 1];\r\n if (last != '[]' && !(last in this.ParentModel)) {\r\n if ('default' in this.element) {\r\n //utils.debug(` +++ Schema element ${this.name} going visible - setting field ${last} to ${this.element.default}`);\r\n this.writefunc.func(this.cmodel, this.element.default, Vue);\r\n }\r\n else if (this.element.schema && ('default' in this.element.schema)) {\r\n //utils.debug(` +++ Schema element ${this.name} going visible - setting field ${last} to ${this.element.schema.default}`);\r\n this.writefunc.func(this.cmodel, this.element.schema.default, Vue);\r\n }\r\n else if (this.element.schema && this.element.schema.type == 'object') {\r\n this.writefunc.func(this.cmodel, {}, Vue);\r\n }\r\n else if (this.element.schema && this.element.schema.type == 'array') {\r\n this.writefunc.func(this.cmodel, [], Vue);\r\n }\r\n }\r\n },\r\n gohidden() {\r\n //this.writefunc.func(this.cmodel, null, Vue);\r\n\r\n // Fill in default value if not already populated\r\n const last = this.element.key[this.element.key.length - 1];\r\n if (last != '[]' && (last in this.ParentModel)) {\r\n //utils.debug(` +++ Schema element ${this.name} going hidden - removing ${last} from ParentModel`);\r\n Vue.delete(this.ParentModel, last);\r\n }\r\n },\r\n generateElements(h, form, LayoutType) {\r\n const elements = [];\r\n for (let i = 0; i < form.length; i++) {\r\n const element = form[i];\r\n\r\n let formtype = `sform-${element.type}`;\r\n\r\n let modelkey;\r\n\r\n if (element.key) {\r\n modelkey = [...element.key];\r\n\r\n if (this.modelkey && this.modelkey.length > 0)\r\n for (let j = 0; j < this.modelkey.length && j < modelkey.length; j++)\r\n if (!modelkey[j] || modelkey[j] == '[]')\r\n modelkey[j] = this.modelkey[j];\r\n }\r\n else\r\n modelkey = this.modelkey;\r\n\r\n if (!element.$objectId)\r\n element.$objectId = utils.generateUUID();\r\n\r\n elements.push(\r\n \r\n \r\n );\r\n }\r\n return elements;\r\n }\r\n },\r\n render() {\r\n if (!this.condition)\r\n return null;\r\n\r\n const appearance = {\r\n dense: true,\r\n hideDetails: false,\r\n outlined: true,\r\n singleLine: false,\r\n //label: this.label,\r\n //hint: this.description,\r\n readonly: this.readonly || this.element.noinput,\r\n disabled: this.readonly\r\n };\r\n\r\n const directives = [\r\n {\r\n name: \"on-enter-default\"\r\n }\r\n ];\r\n\r\n const Tag = this.formtype;\r\n\r\n let item = (\r\n \r\n \r\n );\r\n\r\n let items;\r\n\r\n if (this.form && this.form.length > 0 &&\r\n this.element.type != 'tabarray' &&\r\n this.element.type != 'array' &&\r\n this.element.type != 'fieldset' &&\r\n this.element.type != 'section' &&\r\n this.element.type != 'anyof' &&\r\n this.element.type != 'actions' &&\r\n this.element.type != 'conditional' &&\r\n this.element.schema?.type != 'array' &&\r\n this.element.schema?.type != 'object') {\r\n // A sub-items array exists on this element, which means we need to render more fields in a row\r\n // next to the current one. (Very odd way to describe this, but it's all odd anyway.)\r\n items = this.generateElements(h, this.form, this.layouttype);\r\n }\r\n else if (this.element.Controls && this.element.Controls.length > 0)\r\n items = utils.generateItemsFromArray(h, this, this.element.Controls, null, 'LayoutCard');\r\n\r\n if (items)\r\n item = (\r\n \r\n
\r\n {item}\r\n {items}\r\n
\r\n
\r\n );\r\n else\r\n item = (\r\n \r\n {item}\r\n \r\n );\r\n\r\n return item;\r\n\r\n }\r\n});","import Vue from 'vue';\r\nimport BaseComponent from './baseFormMixin.jsx';\r\nimport utils from '../../../Shared/utils.jsx';\r\n\r\nVue.component('sform-missing', {\r\n mixins: [BaseComponent],\r\n data: () => ({\r\n }),\r\n props: {\r\n },\r\n created() {\r\n },\r\n mounted() {\r\n this.loadComplete();\r\n },\r\n computed: {\r\n },\r\n methods: {\r\n },\r\n render(h) {\r\n const style = {\r\n backgroundColor: 'pink',\r\n };\r\n return Unknown field: {this.element?.key?.join('.') || 'No key'};\r\n }\r\n});\r\n","import Vue from 'vue';\r\nimport BaseComponent from './baseFormMixin.jsx';\r\nimport utils from '../../../Shared/utils.jsx';\r\nimport methods from '../../../Shared/methods';\r\n\r\nimport { appSettings } from '@/Shared/appSettings.js';\r\n\r\nVue.component('sform-undefined', {\r\n mixins: [BaseComponent],\r\n data: () => ({\r\n }),\r\n props: {\r\n },\r\n created() {\r\n },\r\n mounted() {\r\n this.loadComplete();\r\n },\r\n computed: {\r\n },\r\n methods: {\r\n },\r\n render(h) {\r\n // This is a catch-all for form controls that are failing to resolve\r\n let scopedSlots = {\r\n message: ({message}) => {\r\n return \r\n }\r\n }\r\n\r\n let slots = [\r\n ,\r\n ];\r\n\r\n let input =\r\n {slots};\r\n\r\n if (this.appearance)\r\n input.componentOptions.propsData = { ...input.componentOptions.propsData, ...this.appearance };\r\n\r\n if (this.directives) {\r\n if (input.data.directives)\r\n input.data.directives = [...input.data.directives, ...this.directives];\r\n else\r\n input.data.directives = this.directives;\r\n }\r\n\r\n return input;\r\n }\r\n});","import Vue from 'vue';\r\nimport formFieldset from './formFieldset.jsx';\r\nimport formArray from './formArray.jsx';\r\nimport formTabArray from './formTabArray.jsx';\r\nimport formText from './formText.jsx';\r\nimport formPassword from './formPassword.jsx';\r\nimport formTextarea from './formTextarea.jsx';\r\nimport formCheckbox from './formCheckbox.jsx';\r\nimport formCheckboxes from './formCheckboxes.jsx';\r\nimport formSwitch from './formSwitch.jsx';\r\nimport formRadios from './formRadios.jsx';\r\nimport formHelp from './formHelp.jsx';\r\nimport formParagraph from './formParagraph.jsx';\r\nimport formNumber from './formNumber.jsx';\r\nimport formMediaSelector from './formMediaSelector.jsx';\r\nimport formInputWithHeaderBar from './formInputWithHeaderBar.jsx';\r\nimport formTextareaWithHeaderBar from './formTextareaWithHeaderBar.jsx';\r\nimport formLookupList from './formLookupList.jsx';\r\nimport formSection from './formSection.jsx';\r\nimport formSelect from './formSelect.jsx';\r\nimport formDropdownMultiSelect from './formDropdownMultiSelect.jsx';\r\nimport formPhoneNumber from './formPhoneNumber.jsx';\r\nimport formDateTime from './formDateTime.jsx';\r\nimport formDate from './formDate.jsx';\r\nimport formTime from './formTime.jsx';\r\nimport formDatePicker from './formDatePicker.jsx';\r\nimport formDateRangePicker from './formDateRangePicker.jsx';\r\nimport formSingleDatePicker from './formSingleDatePicker.jsx';\r\nimport formEmail from './formEmail.jsx';\r\nimport formTabs from './formTabs.jsx';\r\nimport formConditional from './formConditional.jsx';\r\nimport formControlsWithLabel from './formControlsWithLabel.jsx';\r\nimport formBasicIconPicker from './formBasicIconPicker.jsx';\r\nimport formAnyOf from './formAnyOf.jsx';\r\nimport formActions from './formActions.jsx';\r\nimport formButton from './formButton.jsx';\r\nimport formIconPicker from './formIconPicker.jsx';\r\nimport formTags from './formTags.jsx';\r\nimport formTextEditor from './formTextEditor.jsx';\r\nimport formHtmlEditor from './formHtmlEditor.jsx';\r\nimport formReferencedDocumentSchema from './formReferencedDocumentSchema.jsx';\r\nimport tableLayout from './layoutTable.jsx';\r\nimport layoutCard from './layoutCard.jsx';\r\n\r\nimport formMissing from './formMissing.jsx';\r\nimport formUndefined from './formUndefined.jsx';\r\n\r\nimport utils from '../../../Shared/utils.jsx';\r\nimport methods from '../../../Shared/methods';\r\nimport filters from '../../../Shared/filters';\r\nimport careHelpfulFunctions from '../../careHelpfulFunctions.jsx';\r\n\r\nVue.component('schema-form', {\r\n data: () => ({\r\n masterkey: null,\r\n form_all: null,\r\n }),\r\n props: {\r\n name: '',\r\n root: null,\r\n schema: null,\r\n form: null,\r\n cmodel: null,\r\n noinput: null,\r\n scopeitems: null,\r\n controlscope: null,\r\n enable_watch: false,\r\n },\r\n watch: {\r\n schema: function (newvalue, oldvalue) {\r\n if (!this.schema || (this.schema && this.schema.type == 'object')) {\r\n if (this.schema)\r\n utils.schema.logSchema('----SchemaForm schema changed, generating form_all: ', this.schema, 3);\r\n\r\n let form = this.form;\r\n if (!form || form.length == 0)\r\n form = ['*'];\r\n else\r\n // Make a deep copy to avoid changing the original\r\n form = JSON.parse(JSON.stringify(this.form));\r\n\r\n this.form_all = utils.forms.generateFormWithSchema(form, this.schema);\r\n this.masterkey = utils.generateUUID();\r\n\r\n if (this.schema) {\r\n utils.debug(`SchemaForm ${this.name} schema changed, merging in new schema into model...`);\r\n //utils.forms.mergeDefaultModel(this.cmodel, this.schema, this.$parent); // Pass BasicForm as the context (it has all properties needed for interpolation)\r\n }\r\n\r\n this.$emit('formfinal', this.form_all, this);\r\n }\r\n }\r\n },\r\n created() {\r\n this.masterkey = utils.generateUUID();\r\n\r\n let form = this.form;\r\n if (!form || form.length == 0)\r\n form = []; // ['*'];\r\n else\r\n // Make a deep copy to avoid changing the original\r\n form = JSON.parse(JSON.stringify(this.form));\r\n\r\n if (!this.schema || (this.schema && (this.schema.type == 'object' || !this.schema.type))) {\r\n if (this.schema)\r\n utils.schema.logSchema('----SchemaForm created, generating form_all: ', this.schema, 3);\r\n\r\n this.form_all = utils.forms.generateFormWithSchema(form, this.schema);\r\n this.$emit('formfinal', this.form_all, this);\r\n }\r\n\r\n if (this.schema)\r\n utils.forms.mergeDefaultModel(this.cmodel, this.schema, this.$parent); // Pass BasicForm as the context (it has all properties needed for interpolation)\r\n\r\n if (this.enable_watch) {\r\n this.model_watch$ = this.$watch(\r\n function () { return this.cmodel; },\r\n function (newvalue) {\r\n this.$emit('change', newvalue);\r\n },\r\n {\r\n deep: true\r\n }\r\n );\r\n }\r\n },\r\n destroyed() {\r\n if (this.model_watch$)\r\n this.model_watch$();\r\n },\r\n methods: {\r\n applyFieldDefaults(schema, model, key, conditions, context) {\r\n //utils.debug(`+++ SchemaForm.applyFieldDefaults(key:${key})`);\r\n\r\n let s = schema;\r\n if (key in model) {\r\n // Data is already present in the model\r\n\r\n if (s.type == 'object')\r\n // Recursively apply defaults to all properties of the object\r\n this.applyObjectDefaults(s, model[key], conditions, context);\r\n else if (s.type == 'array') {\r\n s = s.items;\r\n for (let i = 0; i < model[key].length; i++) {\r\n switch (s.type) {\r\n case 'object':\r\n if (!model[key][i] && !s.$allows_null)\r\n model[key][i] = {};\r\n\r\n if (model[key][i])\r\n this.applyObjectDefaults(s, model[key][i], conditions, context);\r\n break;\r\n\r\n case 'array':\r\n if (!model[key][i] && !s.$allows_null)\r\n model[key][i] = [];\r\n break;\r\n\r\n default:\r\n if ((model[key][i] === undefined || model[key][i] === null) && 'default' in s)\r\n model[key][i] = s.default;\r\n break;\r\n }\r\n //this.applyFieldDefaults(s, model, key, conditions, context);\r\n }\r\n }\r\n }\r\n else {\r\n if (s.type == 'object') {\r\n if (!s.$allows_null)\r\n model[key] = {};\r\n\r\n // Recursively apply defaults to all properties of the object\r\n this.applyObjectDefaults(s, model[key], conditions, context);\r\n }\r\n else if (s.type == 'array') {\r\n if (!s.$allows_null)\r\n model[key] = [];\r\n }\r\n else if ('default' in s)\r\n model[key] = s.default;\r\n }\r\n },\r\n applyObjectDefaults(schema, model, conditions, context) {\r\n //utils.debug(`+++ SchemaForm.applyObjectDefaults()`);\r\n\r\n for (let key in schema.properties) {\r\n let s = schema.properties[key];\r\n s = utils.schema.resolve_Of(s);\r\n\r\n if (!conditions && s.$$condition)\r\n continue;\r\n else if (conditions && !s.$$condition)\r\n continue;\r\n\r\n if (s.$$condition) {\r\n context.ParentModel = model;\r\n\r\n // new Function('context', 'util', 'with (context) return ' + s.condition + ';');\r\n if (!s.$$condition(context, careHelpfulFunctions))\r\n continue;\r\n }\r\n this.applyFieldDefaults(s, model, key, conditions, context);\r\n\r\n //if (key in model) {\r\n // // Data is already present in the model\r\n\r\n // if (s.type == 'object')\r\n // // Recursively apply defaults to all properties of the object\r\n // this.applyObjectDefaults(s, model[key], conditions, context);\r\n // else if (s.type == 'array') {\r\n // s = s.items;\r\n // for (let i = 0; i < model[key].length; i++) {\r\n // switch (s.type) {\r\n // case 'object':\r\n // if (!model[key][i] && !s.$allows_null)\r\n // model[key][i] = {};\r\n\r\n // if (model[key][i])\r\n // this.applyObjectDefaults(s, model[key][i], conditions, context);\r\n // break;\r\n\r\n // case 'array':\r\n // if (!model[key][i] && !s.$allows_null)\r\n // model[key][i] = [];\r\n // break;\r\n\r\n // default:\r\n // if ((model[key][i] === undefined || model[key][i] === null) && 'default' in s)\r\n // model[key][i] = s.default;\r\n // break;\r\n // }\r\n // //this.applyFieldDefaults(s, model, key, conditions, context);\r\n // }\r\n // }\r\n // continue;\r\n //}\r\n\r\n //if (s.type == 'object') {\r\n // if (!s.$allows_null)\r\n // model[key] = {};\r\n\r\n // // Recursively apply defaults to all properties of the object\r\n // this.applyObjectDefaults(s, model[key], conditions, context);\r\n //}\r\n //else if (s.type == 'array') {\r\n // if (!s.$allows_null)\r\n // model[key] = [];\r\n //}\r\n //else if ('default' in s)\r\n // model[key] = s.default;\r\n }\r\n },\r\n generateDefaultModel() {\r\n // For all elements in schema, ignoring fields that have false conditions, generate\r\n // the default values in the model. As the model changes, the conditions may also\r\n // change. So the first pass will involve only fields without a condition. Then a\r\n // second pass will look at those with a condition. Following the second pass, a\r\n // third and final pass will check for any fields that may have true conditions\r\n // that did not the previous pass.\r\n const context = {\r\n ...methods,\r\n ...filters,\r\n FormModel: this.cmodel,\r\n };\r\n\r\n this.applyObjectDefaults(this.schema, this.cmodel, false, context);\r\n }\r\n },\r\n render() {\r\n if (!this.form_all || this.form_all.length === 0)\r\n return null;\r\n\r\n return (\r\n { e.preventDefault(); return false; }}>\r\n \r\n \r\n \r\n );\r\n }\r\n});","import Vue from 'vue';\r\nimport utils from '../../../Shared/utils.jsx';\r\nimport methods from '../../../Shared/methods';\r\n\r\nVue.component('form-input', {\r\n data: function () {\r\n return {\r\n }\r\n },\r\n created() {\r\n },\r\n computed: {\r\n ...utils.forms.computed,\r\n },\r\n methods: {\r\n ...methods,\r\n sync(prop, value) {\r\n if (!(prop in this.cmodel))\r\n Vue.set(this.cmodel, prop, value);\r\n else\r\n this.cmodel[prop] = value\r\n },\r\n },\r\n props: {\r\n name: '',\r\n schemakey: '',\r\n root: null,\r\n schema: null,\r\n cmodel: null,\r\n extra: null,\r\n readonly: false,\r\n child: 0,\r\n propertygrid: false,\r\n },\r\n render(h) {\r\n if (!this.Condition)\r\n return null;\r\n\r\n let desc;\r\n if (this.schema.description)\r\n desc = ;\r\n\r\n const name = {this.name};\r\n\r\n let input;\r\n if (this.readonly)\r\n input = ;\r\n else\r\n input = this.sync(this.schemakey, value)}>;\r\n\r\n return (\r\n \r\n \r\n {name} {desc}\r\n \r\n \r\n {input}\r\n \r\n \r\n );\r\n }\r\n});","import Vue from 'vue';\r\nimport utils from '../../../Shared/utils.jsx';\r\nimport methods from '../../../Shared/methods';\r\n\r\nVue.component('form-input-multiline', {\r\n data: function () {\r\n return {\r\n }\r\n },\r\n created() {\r\n },\r\n computed: {\r\n ...utils.forms.computed,\r\n },\r\n methods: {\r\n ...methods,\r\n sync(prop, value) {\r\n let obj;\r\n try {\r\n obj = JSON.parse(value);\r\n }\r\n catch (e) {\r\n utils.warn('Input multiline failed to convert value to object: ' + e);\r\n return;\r\n }\r\n\r\n Vue.set(this.cmodel, prop, obj);\r\n },\r\n },\r\n props: {\r\n name: '',\r\n schemakey: '',\r\n root: null,\r\n schema: null,\r\n cmodel: null,\r\n extra: null,\r\n readonly: false,\r\n child: 0,\r\n },\r\n render(h) {\r\n if (!this.Condition)\r\n return null;\r\n\r\n let desc;\r\n if (this.schema.description)\r\n desc = ;\r\n\r\n const name = {this.name};\r\n\r\n let value = this.cmodel[this.schemakey] ? JSON.stringify(this.cmodel[this.schemakey], null, 4) : '';\r\n\r\n let input;\r\n if (this.readonly)\r\n input = [];\r\n else\r\n input = [];\r\n\r\n return (\r\n \r\n \r\n {name} {desc}\r\n \r\n \r\n {input}\r\n \r\n \r\n );\r\n }\r\n});","import Vue from 'vue';\r\nimport utils from '../../../Shared/utils.jsx';\r\nimport methods from '../../../Shared/methods';\r\n\r\nVue.component('form-text-editor', {\r\n data: function () {\r\n return {\r\n israw: false,\r\n visible_keys: {},\r\n type: 'FormField',\r\n }\r\n },\r\n created() {\r\n },\r\n computed: {\r\n ...utils.forms.computed,\r\n },\r\n methods: {\r\n ...methods,\r\n sync(prop, value) {\r\n if (this.israw)\r\n Vue.set(this.cmodel, prop, value);\r\n else {\r\n let obj;\r\n try {\r\n obj = JSON.parse(value);\r\n }\r\n catch (e) {\r\n utils.warn('Input text editor failed to convert value to object: ' + e);\r\n return;\r\n }\r\n\r\n Vue.set(this.cmodel, prop, obj);\r\n }\r\n },\r\n populateDefaultTemplate(e, template) {\r\n Vue.set(this.cmodel, this.name, template);\r\n },\r\n },\r\n props: {\r\n name: '',\r\n schemakey: '',\r\n root: null,\r\n schema: null,\r\n cmodel: null,\r\n extra: null,\r\n readonly: false,\r\n path: null,\r\n child: 0,\r\n uniquerowkey: null,\r\n },\r\n render(h) {\r\n if (!this.Condition)\r\n return null;\r\n\r\n let desc;\r\n if (this.schema.description)\r\n desc = ;\r\n\r\n const name = {this.name};\r\n\r\n const visible_key = [...this.path, this.schemakey].join('.');\r\n const vis = utils.getVisibility(this, visible_key, 'false');\r\n const icon = vis ? : ;\r\n const openclose = utils.toggleVisible(this, visible_key, 'false')}>{icon};\r\n\r\n let value;\r\n let lang;\r\n if (this.schema.formatData) {\r\n this.israw = this.schema.formatData.IsRaw;\r\n lang = this.schema.formatData.Language || 'javascript';\r\n }\r\n else {\r\n this.israw = false;\r\n lang = 'json';\r\n }\r\n\r\n if (this.israw)\r\n value = this.cmodel[this.schemakey] || '';\r\n else\r\n value = this.cmodel[this.schemakey] ? JSON.stringify(this.cmodel[this.schemakey], null, 4) : '';\r\n\r\n let input;\r\n let link;\r\n let height = '100px';\r\n if (this.schema.formatData && this.schema.formatData.Height)\r\n height = this.schema.formatData.Height + 'px';\r\n\r\n let controls;\r\n if (this.schema.formatData && this.schema.formatData.Controls && this.schema.formatData.Controls.length > 0) {\r\n controls = [];\r\n for (let i = 0; i < this.schema.formatData.Controls.length; i++) {\r\n const c = this.schema.formatData.Controls[i];\r\n\r\n let DynamicControl = utils.getDynamicComponent(h, c);\r\n if (!DynamicControl)\r\n DynamicControl = 'default-unknown';\r\n\r\n if (!c.$objectId) c.$objectId = utils.generateUUID();\r\n\r\n controls.push(\r\n \r\n \r\n );\r\n }\r\n }\r\n\r\n if (vis) {\r\n if (this.readonly)\r\n input = (\r\n \r\n \r\n \r\n );\r\n else {\r\n if (controls)\r\n controls =
{controls}
;\r\n\r\n input = (\r\n \r\n {controls}\r\n
\r\n this.sync(this.schemakey, text)}\r\n content={value || ''}>\r\n \r\n
\r\n \r\n );\r\n if (this.schema.formatData && this.schema.formatData.DefaultTemplate)\r\n link = (\r\n this.populateDefaultTemplate(e, this.schema.formatData.DefaultTemplate)}>\r\n \r\n \r\n );\r\n }\r\n }\r\n else\r\n input = (\r\n \r\n {value.length} byte(s)\r\n \r\n );\r\n\r\n return (\r\n \r\n \r\n {name} {openclose} {desc} {link}\r\n \r\n {input}\r\n \r\n );\r\n }\r\n});","import Vue from 'vue';\r\nimport utils from '../../../Shared/utils.jsx';\r\nimport methods from '../../../Shared/methods';\r\n\r\nVue.component('form-number', {\r\n data: function () {\r\n return {\r\n }\r\n },\r\n created() {\r\n },\r\n computed: {\r\n ...utils.forms.computed,\r\n },\r\n methods: {\r\n ...methods,\r\n sync(prop, value) {\r\n const v = parseFloat(value);\r\n if (!(prop in this.cmodel))\r\n Vue.set(this.cmodel, prop, v);\r\n else\r\n this.cmodel[prop] = v;\r\n }\r\n },\r\n props: {\r\n name: '',\r\n schemakey: '',\r\n root: null,\r\n schema: null,\r\n cmodel: null,\r\n extra: null,\r\n readonly: false,\r\n child: 0,\r\n propertygrid: false,\r\n },\r\n render(h) {\r\n if (!this.Condition)\r\n return null;\r\n\r\n let desc;\r\n if (this.schema.description)\r\n desc = ;\r\n\r\n const name = {this.name};\r\n\r\n let input;\r\n if (this.readonly)\r\n input = ;\r\n else\r\n input = this.sync(this.schemakey, value)}>;\r\n\r\n return (\r\n \r\n \r\n {name} {desc}\r\n \r\n \r\n {input}\r\n \r\n \r\n );\r\n }\r\n});","import Vue from 'vue';\r\nimport utils from '../../../Shared/utils.jsx';\r\nimport methods from '../../../Shared/methods';\r\n\r\nVue.component('form-checkbox', {\r\n data: function () {\r\n return {\r\n }\r\n },\r\n created() {\r\n },\r\n computed: {\r\n ...utils.forms.computed,\r\n },\r\n methods: {\r\n ...methods,\r\n sync(prop, value) {\r\n if (!(prop in this.cmodel))\r\n Vue.set(this.cmodel, prop, value);\r\n else\r\n this.cmodel[prop] = value;\r\n }\r\n },\r\n props: {\r\n name: '',\r\n schemakey: '',\r\n root: null,\r\n schema: null,\r\n cmodel: null,\r\n readonly: false,\r\n child: 0,\r\n },\r\n render(h) {\r\n if (!this.Condition)\r\n return null;\r\n\r\n let desc;\r\n if (this.schema.description)\r\n desc = ;\r\n\r\n const name = {this.name};\r\n let input;\r\n\r\n if (this.readonly)\r\n input = ;\r\n else\r\n input = this.sync(this.schemakey, e.target.checked)} />;\r\n\r\n return (\r\n \r\n \r\n {name} {desc}\r\n \r\n \r\n {input}\r\n \r\n \r\n );\r\n }\r\n});","import Vue from 'vue';\r\nimport utils from '../../../Shared/utils.jsx';\r\nimport methods from '../../../Shared/methods';\r\n//import combo from '../3rdParty/Combo.jsx';\r\n//import combo from '../vuecontrols/combobox.jsx';\r\n//import ResizeObserver from '../3rdParty/ResizeObserver.jsx';\r\n\r\nVue.component('form-boolean', {\r\n data: function () {\r\n return {\r\n asjson: false,\r\n uniquekey: null,\r\n }\r\n },\r\n created() {\r\n this.uniquekey = utils.generateUUID();\r\n },\r\n computed: {\r\n ...utils.forms.computed,\r\n },\r\n methods: {\r\n ...methods,\r\n //resize() {\r\n // this.sel_height = this.$refs.app.clientHeight;\r\n // this.sel_width = this.$refs.app.clientWidth;\r\n // utils.log('boolean resize: sel_height: ' + this.sel_height + ', sel_width: ' + this.sel_width);\r\n //},\r\n sync(prop, value) {\r\n let v = value;\r\n if (!this.useexpressions)\r\n // Convert true and false to actual boolean values\r\n if (v == 'false') v = false; else if (v == 'true') v = true;\r\n\r\n if (!(prop in this.cmodel))\r\n Vue.set(this.cmodel, prop, v);\r\n else\r\n this.cmodel[prop] = v;\r\n },\r\n sync_json(text) {\r\n try {\r\n this.cmodel[this.schemakey] = JSON.parse(text);\r\n }\r\n catch (e) {\r\n utils.warn('boolean in propertygrid could not parse JSON', e);\r\n }\r\n },\r\n },\r\n props: {\r\n name: '',\r\n schemakey: '',\r\n root: null,\r\n schema: null,\r\n cmodel: null,\r\n readonly: false,\r\n child: 0,\r\n useexpressions: false,\r\n propertygrid: false,\r\n },\r\n render(h) {\r\n if (!this.Condition)\r\n return null;\r\n\r\n let desc;\r\n if (this.schema.description)\r\n desc = ;\r\n\r\n const name = {this.name};\r\n let input;\r\n\r\n const jsonico = this.asjson ? : ;\r\n const jsontgl = this.asjson = !this.asjson}>{jsonico};\r\n\r\n if (this.asjson || typeof this.cmodel[this.schemakey] === 'string') {\r\n // Allows viewing/editing the raw JSON of the element model\r\n const rawjson = JSON.stringify(this.cmodel[this.schemakey], null, 4);\r\n return (\r\n \r\n \r\n {name} {jsontgl} {desc}\r\n \r\n\r\n \r\n
\r\n this.sync_json(text)}\r\n content={rawjson}>\r\n \r\n
\r\n \r\n\r\n \r\n );\r\n }\r\n\r\n if (this.readonly)\r\n input = ;\r\n else if (this.useexpressions) {\r\n input = (\r\n this.sync(this.schemakey, value)}>\r\n \r\n );\r\n }\r\n else {\r\n input = (\r\n this.sync(this.schemakey, value)}>\r\n \r\n );\r\n }\r\n\r\n return (\r\n \r\n \r\n {name} {jsontgl} {desc}\r\n \r\n \r\n {input}\r\n \r\n \r\n );\r\n }\r\n});","import Vue from 'vue';\r\nimport utils from '../../../Shared/utils.jsx';\r\nimport methods from '../../../Shared/methods';\r\n\r\nVue.component('form-select', {\r\n data: function () {\r\n return {\r\n condition_expn: null\r\n }\r\n },\r\n created() {\r\n },\r\n computed: {\r\n ...utils.forms.computed,\r\n },\r\n methods: {\r\n ...methods,\r\n sync(prop, value) {\r\n if (Array.isArray(this.cmodel))\r\n {\r\n if (prop < this.cmodel.length)\r\n Vue.set(this.cmodel, prop, value);\r\n else {\r\n while (this.cmodel.length < prop)\r\n this.cmodel.push(null);\r\n\r\n this.cmodel.push(value);\r\n }\r\n }\r\n else\r\n {\r\n if (!(prop in this.cmodel))\r\n Vue.set(this.cmodel, prop, value);\r\n else\r\n this.cmodel[prop] = value\r\n }\r\n }\r\n },\r\n props: {\r\n name: '',\r\n schemakey: '',\r\n root: null,\r\n schema: null,\r\n cmodel: null,\r\n extra: null,\r\n readonly: false,\r\n child: 0,\r\n propertygrid: false,\r\n },\r\n render(h) {\r\n if (!this.Condition)\r\n return null;\r\n\r\n let desc;\r\n if (this.schema.description)\r\n desc = ;\r\n\r\n const name = {this.name};\r\n if (this.readonly)\r\n return (\r\n \r\n \r\n {name} {desc}\r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n\r\n const schema = this.schema;\r\n\r\n if (schema.formatData && schema.formatData.AllowCustomInput) {\r\n return (\r\n \r\n \r\n {name} {desc}\r\n \r\n \r\n this.sync(this.schemakey, e.target ? e.target.value : e)}\r\n on-keyup={(e) => this.sync(this.schemakey, e.target ? e.target.value : e)}>\r\n \r\n \r\n \r\n );\r\n }\r\n\r\n const items = [];\r\n const enums = schema.enum || schema.titleMap;\r\n if (Array.isArray(enums)) {\r\n if (!this.cmodel[this.schemakey])\r\n items.push({ text: \"Please select one\", value: \"\", disabled: true });\r\n else if (schema.$allows_null)\r\n items.push({ text: \"\", value: null, disabled: false });\r\n\r\n for (var i = 0; i < enums.length; i++) {\r\n const item = enums[i];\r\n if (item && typeof item === 'object')\r\n {\r\n items.push({ text: item.name, value: item.value, disabled: false });\r\n }\r\n else\r\n {\r\n items.push({ text: item, value: item, disabled: false });\r\n }\r\n }\r\n }\r\n\r\n return (\r\n \r\n \r\n {name} {desc}\r\n \r\n \r\n this.sync(this.schemakey, value)}>\r\n \r\n \r\n \r\n );\r\n }\r\n});","import Vue from 'vue';\r\nimport utils from '../../../Shared/utils.jsx';\r\nimport methods from '../../../Shared/methods';\r\n\r\nVue.component('form-anyof', {\r\n data: function () {\r\n return {\r\n condition_expn: null\r\n }\r\n },\r\n created() {\r\n },\r\n computed: {\r\n ...utils.forms.computed,\r\n },\r\n methods: {\r\n ...methods,\r\n async sync(prop, value) {\r\n let item;\r\n if (value == '!!null!!')\r\n item = {};\r\n else {\r\n let schema = this.schema.anyOf[value];\r\n schema = utils.schema.resolve_Of(schema);\r\n item = utils.schema.getDefaultModel(schema);\r\n }\r\n\r\n if (Array.isArray(this.cmodel)) {\r\n if (prop < this.cmodel.length)\r\n Vue.set(this.cmodel, prop, item);\r\n else {\r\n while (this.cmodel.length < prop)\r\n this.cmodel.push(null);\r\n\r\n this.cmodel.push(item);\r\n }\r\n }\r\n else\r\n {\r\n Vue.set(this.cmodel, prop, item);\r\n }\r\n },\r\n extractDocument() {\r\n debugger;\r\n }\r\n },\r\n props: {\r\n name: '',\r\n schemakey: '',\r\n root: null,\r\n schema: null,\r\n cmodel: null,\r\n extra: null,\r\n readonly: false,\r\n child: 0,\r\n navigateTo: null,\r\n canNavigate: false,\r\n extractor: null,\r\n propertygrid: false,\r\n },\r\n render(h) {\r\n if (!this.Condition)\r\n return null;\r\n\r\n let desc;\r\n if (this.schema.description)\r\n desc = ;\r\n\r\n const name = {this.name};\r\n if (this.readonly)\r\n return (\r\n \r\n \r\n {name} {desc}\r\n \r\n \r\n \r\n \r\n \r\n );\r\n\r\n const items = [];\r\n const schema = this.schema;\r\n let value;\r\n let found = false;\r\n for (var i = 0; i < schema.anyOf.length; i++) {\r\n const item = schema.anyOf[i];\r\n\r\n if (this.cmodel[this.schemakey] && (this.cmodel[this.schemakey].$typeSchema === item.Id)) {\r\n found = true;\r\n value = i;\r\n }\r\n\r\n items.push({ text: item.title, value: i });\r\n }\r\n\r\n items.splice(0, 0, { text: '-None-', value: \"!!null!!\" });\r\n\r\n let navigate;\r\n let extract;\r\n if (this.canNavigate && found) {\r\n navigate = this.navigateTo(this, this.name)}>;\r\n\r\n if (this.extractor && (this.schema.Id == '/Apps/Schema/AnyOf/schema/public/Platform.Schema.BaseTypes.v1/DynamicControl' ||\r\n this.schema.Id == '/Apps/Schema/AnyOf/schema/public/Platform.Schema.BaseTypes.v1/UIAction'))\r\n extract = (\r\n \r\n this.extractor(this, this.name)}>\r\n \r\n );\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n {name} {desc} {navigate}\r\n \r\n \r\n \r\n this.sync(this.schemakey, value)}>\r\n \r\n \r\n {extract}\r\n \r\n );\r\n }\r\n});","import Vue from 'vue';\r\nimport utils from '../../../Shared/utils.jsx';\r\nimport methods from '../../../Shared/methods';\r\n\r\nVue.component('nullable-type', {\r\n data: () => ({\r\n oneofschema: null,\r\n list: null,\r\n }),\r\n props: {\r\n name: null,\r\n cmodel: null,\r\n typeSchema: null,\r\n form_model: null,\r\n child: 0,\r\n root: null,\r\n schema: null,\r\n path: null,\r\n navigateTo: null,\r\n canNavigate: false,\r\n uniquerowkey: null,\r\n propertygrid: false,\r\n },\r\n methods: {\r\n async changed(value) {\r\n const s = await utils.schema.get(value);\r\n this.oneofschema = utils.schema.resolve_Of(s);\r\n this.form_model.oneOf[1] = utils.schema.getDefaultModel(this.oneofschema);\r\n }\r\n },\r\n async created() {\r\n if (this.form_model && this.form_model.oneOf && this.form_model.oneOf.length == 2) {\r\n const s = await utils.schema.get(this.form_model.oneOf[1].$typeSchema);\r\n this.oneofschema = utils.schema.resolve_Of(s);\r\n }\r\n this.list = await utils.schema.get('/Apps/Schema/AnyOf/schema/public/Platform.Schema.BaseTypes.v1/SchemaSchema');\r\n },\r\n render() {\r\n if (!this.list)\r\n return null;\r\n\r\n let element;\r\n if (this.form_model && this.form_model.oneOf && this.form_model.oneOf.length == 2)\r\n element = this.form_model.oneOf[1];\r\n\r\n const options = [];\r\n let value;\r\n let selected = false;\r\n for (let i = 0; i < this.list.anyOf.length; i++) {\r\n const opt = this.list.anyOf[i];\r\n\r\n if (element && (element.$typeSchema === opt.Id)) {\r\n value = opt.Id;\r\n selected = true;\r\n }\r\n options.push({ text: opt.title, value: opt.Id, disabled: false });\r\n }\r\n if (!selected)\r\n options.splice(0, 0, { text: \"Please select one\", value: \"\", disabled: true });\r\n\r\n //let select_checkbox;\r\n let navigate;\r\n //if (this.canNavigate && this.form_model) {\r\n // //select_checkbox = this.setselection(this.name, e.target.checked)} />;\r\n // navigate = this.navigateTo(this, this.name)}>\r\n // mdi mdi-open-in-new\r\n // ;\r\n //}\r\n\r\n let subelement;\r\n if (element) {\r\n subelement = ( this.NavigateTo(element, cmodel, key, ctrl, prop, value)}>\r\n );\r\n }\r\n\r\n const btn_styles = {\r\n 'font-size': \"x-small\"\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n {navigate}\r\n Nullable Type:\r\n this.changed(value)}>\r\n \r\n \r\n {subelement}\r\n \r\n \r\n );\r\n }\r\n});\r\n","import Vue from 'vue';\r\nimport utils from '../../../Shared/utils.jsx';\r\nimport util from '../../careHelpfulFunctions.jsx';\r\n\r\nVue.component('schema-item', {\r\n data: () => ({\r\n schema: null,\r\n list: null,\r\n }),\r\n props: {\r\n name: null,\r\n cmodel: null,\r\n typeSchema: null,\r\n renamed: null,\r\n changed: null,\r\n deleted: null,\r\n moveup: null,\r\n movedown: null,\r\n selected: null,\r\n setselection: null,\r\n navigateTo: null,\r\n canNavigate: false,\r\n propertygrid: false,\r\n },\r\n async created() {\r\n if (this.typeSchema) {\r\n\r\n const s = await utils.schema.get(this.typeSchema);\r\n this.schema = utils.schema.resolve_Of(s);\r\n }\r\n this.list = await utils.schema.get('/Apps/Schema/AnyOf/schema/public/Platform.Schema.BaseTypes.v1/SchemaSchema');\r\n },\r\n render() {\r\n if (!this.list)\r\n return null;\r\n\r\n const options = [];\r\n let value;\r\n let selected = false;\r\n for (let i = 0; i < this.list.anyOf.length; i++)\r\n {\r\n const opt = this.list.anyOf[i];\r\n\r\n if (this.schema && (this.schema.title === opt.title))\r\n {\r\n value = opt.Id;\r\n selected = true;\r\n }\r\n options.push({ text: opt.title, value: opt.Id, disabled: false });\r\n }\r\n if (!selected)\r\n options.splice(0, 0, { text: \"Please select one\", value: \"\", disabled: true });\r\n\r\n let select_checkbox;\r\n let navigate;\r\n if (this.canNavigate && this.typeSchema) {\r\n select_checkbox = this.setselection(this.name, e.target.checked)} />;\r\n //select_checkbox = this.setselection(this.name, value)}>;\r\n navigate = this.navigateTo(this, this.name)}>\r\n mdi mdi-open-in-new\r\n ;\r\n }\r\n\r\n const btn_styles = {\r\n 'font-size': \"x-small\"\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n {select_checkbox}\r\n {navigate}\r\n this.renamed(this.name, value)}>\r\n \r\n \r\n \r\n this.changed(this.name, value)}>\r\n \r\n \r\n \r\n this.moveup(this.name)}>mdi mdi-arrow-up\r\n this.movedown(this.name)}>mdi mdi-arrow-down\r\n this.deleted(this.name)}>mdi mdi-close\r\n \r\n \r\n );\r\n }\r\n});\r\n\r\nVue.component('schema-properties', {\r\n data: () => ({\r\n selected: {},\r\n }),\r\n computed: {\r\n ...utils.forms.computed,\r\n anySelected: function () {\r\n return Object.keys(this.selected).length > 0;\r\n }\r\n },\r\n props: {\r\n name: '',\r\n schema: null,\r\n schemakey: null,\r\n root: null,\r\n cmodel: null,\r\n navigate: null,\r\n canNavigate: false,\r\n propertygrid: false,\r\n },\r\n methods: {\r\n async itemChanged(prop, value) {\r\n let s = await utils.schema.get(value);\r\n s = utils.schema.resolve_Of(s);\r\n const m = utils.schema.getDefaultModel(s);\r\n Vue.set(this.cmodel[this.schemakey], prop, m);\r\n },\r\n itemRenamed(prop, value) {\r\n if (prop == value)\r\n return; // Don't do anything, the name didn't change\r\n\r\n const oldobj = this.cmodel[this.schemakey];\r\n if (value in oldobj) {\r\n alert('Property ' + value + ' is already used');\r\n return; // Can't rename to the name of an existing property\r\n }\r\n const properties = util.renameProperty(oldobj, prop, value);\r\n Vue.set(this.cmodel, this.schemakey, properties);\r\n },\r\n itemDeleted(prop) {\r\n Vue.delete(this.cmodel[this.schemakey], prop);\r\n },\r\n addAnother() {\r\n const properties = this.cmodel[this.schemakey]; \r\n let key = 'Unnamed';\r\n let dup = 1;\r\n while (key in properties)\r\n key = 'Unnamed_' + (dup++);\r\n\r\n Vue.set(properties, key, { $objectId: utils.generateUUID() });\r\n },\r\n moveDown(prop) {\r\n const properties = this.cmodel[this.schemakey];\r\n const newobj = util.reorderProperty(properties, prop, 1);\r\n Vue.set(this.cmodel, this.schemakey, newobj);\r\n },\r\n moveUp(prop) {\r\n const properties = this.cmodel[this.schemakey];\r\n const newobj = util.reorderProperty(properties, prop, -1);\r\n Vue.set(this.cmodel, this.schemakey, newobj);\r\n },\r\n setSelection(name, checked) {\r\n if (checked)\r\n Vue.set(this.selected, name, checked);\r\n else\r\n Vue.delete(this.selected, name);\r\n },\r\n copy() {\r\n const properties = this.cmodel[this.schemakey];\r\n const selected = [];\r\n for (let key in this.selected)\r\n selected.push({ key: key, value: properties[key] });\r\n\r\n localStorage.setItem('careClipboard', JSON.stringify(selected));\r\n },\r\n cut() {\r\n const properties = this.cmodel[this.schemakey];\r\n const selected = [];\r\n for (let key in this.selected) {\r\n selected.push({ key: key, value: properties[key] });\r\n Vue.delete(properties, key);\r\n }\r\n\r\n localStorage.setItem('careClipboard', JSON.stringify(selected));\r\n\r\n this.selected = {};\r\n },\r\n paste() {\r\n const rawbuffer = localStorage.getItem('careClipboard');\r\n if (rawbuffer && typeof rawbuffer === 'string') {\r\n try {\r\n const data = JSON.parse(rawbuffer);\r\n if (typeof data === 'object' && Array.isArray(data)) {\r\n if (!this.cmodel[this.schemakey])\r\n Vue.set(this.cmodel, this.schemakey, {});\r\n\r\n const properties = this.cmodel[this.schemakey];\r\n for (let i = 0; i < data.length; i++) {\r\n const item = data[i];\r\n if (!('key' in item && 'value' in item)) continue;\r\n\r\n let key = item.key;\r\n let dup = 1;\r\n while (key in properties)\r\n key = item.key + '_' + (dup++);\r\n\r\n if (item.value.$objectId)\r\n item.value.$objectId = utils.generateUUID();\r\n\r\n Vue.set(properties, key, item.value);\r\n }\r\n }\r\n }\r\n catch (e) {\r\n alert('Failed to parse data from clipboard buffer: ' + e);\r\n }\r\n }\r\n },\r\n selectAll() {\r\n const properties = this.cmodel[this.schemakey];\r\n for (let key in properties)\r\n Vue.set(this.selected, key, true);\r\n },\r\n selectNone() {\r\n this.selected = {};\r\n },\r\n },\r\n render(h) {\r\n const elements = [];\r\n const cmodel = this.cmodel[this.schemakey];\r\n for (let key in cmodel) {\r\n if (key.substr(0, 1) === '$') continue;\r\n const item = cmodel[key];\r\n\r\n elements.push(\r\n this.itemChanged(prop, value)}\r\n renamed={(prop, value) => this.itemRenamed(prop, value)}\r\n deleted={(prop, value) => this.itemDeleted(prop, value)}\r\n moveup={(prop) => this.moveUp(prop)}\r\n movedown={(prop) => this.moveDown(prop)}\r\n selected={this.selected}\r\n setselection={(prop, checked) => this.setSelection(prop, checked)}\r\n navigateTo={(control, prop) => this.navigate(control, prop, item)}\r\n canNavigate={this.canNavigate}\r\n propertygrid={this.propertygrid}>\r\n );\r\n }\r\n\r\n const btn_styles = {\r\n 'font-size': \"x-small\"\r\n };\r\n const selections = (\r\n \r\n Copy\r\n Cut\r\n Paste\r\n\r\n Select All\r\n Select None\r\n \r\n );\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {elements}\r\n \r\n \r\n \r\n
\r\n {selections}\r\n
Property NameProperty Type
\r\n this.addAnother()}>mdi mdi-plus Add Another\r\n
\r\n );\r\n }\r\n});","import Vue from 'vue';\r\nimport utils from '../../../Shared/utils.jsx';\r\nimport methods from '../../../Shared/methods';\r\n\r\nVue.component('referenced-document-schema', {\r\n data: function () {\r\n return {\r\n condition_expn: null,\r\n control_schema: null,\r\n }\r\n },\r\n created() {\r\n switch (this.schema.formatData.DocumentType)\r\n {\r\n case 'UserControl':\r\n this.watcher$ = this.$watch('cmodel.ControlURL', function (val, oldval) { this.Refresh(); });\r\n break;\r\n\r\n case 'Action':\r\n this.watcher$ = this.$watch('cmodel.ActionURL', function (val, oldval) { this.Refresh(); });\r\n break;\r\n }\r\n },\r\n destroyed() {\r\n if (this.watcher$)\r\n this.watcher$();\r\n },\r\n async mounted() {\r\n this.Refresh();\r\n },\r\n computed: {\r\n ...utils.forms.computed,\r\n },\r\n methods: {\r\n ...methods,\r\n async Refresh() {\r\n const doctype = this.schema.formatData.DocumentType; // UserControl or UserAction\r\n\r\n switch (doctype) {\r\n case 'UserControl':\r\n let doc1 = await utils.api.get('Apps/UIWhole/' + doctype + '/' + this.cmodel.ControlURL);\r\n if (!doc1)\r\n doc1 = await utils.api.get('Apps/UIWhole/' + doctype + '/public/' + this.cmodel.ControlURL);\r\n if (doc1)\r\n this.control_schema = await utils.schema.resolve(doc1.ControlDataSchema);\r\n break;\r\n\r\n case 'Action':\r\n const doc2 = await utils.api.get('Apps/UIWhole/' + doctype + '/' + this.cmodel.ActionURL);\r\n if (!doc2)\r\n doc2 = await utils.api.get('Apps/UIWhole/' + doctype + '/public/' + this.cmodel.ActionURL);\r\n if (doc2)\r\n this.control_schema = await utils.schema.resolve(doc2.ActionDataSchema);\r\n break;\r\n\r\n case 'Schema':\r\n const property = this.cmodel[this.schema.formatData.Property];\r\n utils.log('Property: ' + property);\r\n break;\r\n\r\n default:\r\n return;\r\n }\r\n }\r\n },\r\n props: {\r\n name: '',\r\n schemakey: '',\r\n root: null,\r\n schema: null,\r\n cmodel: null,\r\n extra: null,\r\n readonly: false,\r\n child: 0,\r\n },\r\n render(h) {\r\n if (!this.Condition)\r\n return null;\r\n\r\n let desc;\r\n if (this.schema.description)\r\n desc = ;\r\n\r\n const doctype = this.schema.formatData.DocumentType; // UserControl or UserAction\r\n const choice =\r\n doctype === 'UserControl' ?\r\n this.cmodel.ControlURL :\r\n this.cmodel.ActionURL; // current choice (for actions, it is different, how do I determine?)\r\n\r\n const name = {this.name};\r\n let form;\r\n if (this.control_schema) {\r\n form = (\r\n \r\n \r\n );\r\n }\r\n else\r\n form = Loading...;\r\n\r\n return (\r\n \r\n \r\n {name} {desc}\r\n \r\n \r\n {form}\r\n \r\n \r\n );\r\n }\r\n});","import Vue from 'vue';\r\nimport utils from '../../../Shared/utils.jsx';\r\nimport methods from '../../../Shared/methods';\r\n\r\nVue.component('hsm-statement-schema', {\r\n data: function () {\r\n return {\r\n condition_expn: null,\r\n control_schema: null,\r\n }\r\n },\r\n created() {\r\n this.watcher$ = this.$watch('cmodel.StatementName', function (val, oldval) { this.Refresh(); });\r\n },\r\n destroyed() {\r\n if (this.watcher$)\r\n this.watcher$();\r\n },\r\n mounted() {\r\n this.Refresh();\r\n },\r\n computed: {\r\n ...utils.forms.computed,\r\n },\r\n methods: {\r\n ...methods,\r\n Refresh() {\r\n const c = this.FindDesignerChildHsmStatement(this.cmodel.StatementName);\r\n if (c) {\r\n this.control_schema = {\r\n type: 'object',\r\n properties: c.ControlData.Arguments,\r\n };\r\n //if (!this.control_schema.type)\r\n // this.control_schema.type = 'object';\r\n }\r\n }\r\n },\r\n props: {\r\n name: '',\r\n schemakey: '',\r\n root: null,\r\n schema: null,\r\n cmodel: null,\r\n extra: null,\r\n readonly: false,\r\n child: 0,\r\n },\r\n render(h) {\r\n //if (!this.Condition)\r\n // return null;\r\n\r\n let desc;\r\n if (this.schema.description)\r\n desc = ;\r\n\r\n if (!this.cmodel.Arguments)\r\n this.cmodel.Arguments = {};\r\n\r\n const name = {this.name};\r\n let form;\r\n if (this.control_schema) {\r\n form = (\r\n \r\n \r\n );\r\n }\r\n else\r\n form = Loading...;\r\n\r\n return (\r\n \r\n \r\n {name} {desc}\r\n \r\n \r\n {form}\r\n \r\n \r\n );\r\n }\r\n});","import Vue from 'vue';\r\nimport utils from '../../../Shared/utils.jsx';\r\nimport methods from '../../../Shared/methods';\r\n\r\nVue.component('string-lookup-list', {\r\n data: function () {\r\n return {\r\n condition_expn: null,\r\n list: null,\r\n lookupurl: null,\r\n lookupexpn: null,\r\n displayexpn: null,\r\n displayfield: null,\r\n valueexpn: null,\r\n valuefield: null,\r\n }\r\n },\r\n created() {\r\n if (this.schema.formatData.LookupType === 'URL' || (!this.schema.formatData.LookupType && this.schema.formatData.LookupURL))\r\n this.lookupurl = utils.compile(this, this.schema.formatData.LookupURL);\r\n else if (this.schema.formatData.LookupType === 'Interpolated')\r\n this.lookupexpn = utils.compileExpression(this, this.schema.formatData.LookupInterpolatedExpression);\r\n\r\n const modelAs = this.schema.formatData.LookupModelAs || 'cmodel';\r\n if (this.schema.formatData.DisplayType === 'Expression')\r\n // this.displayexpn = utils.compileExpression(this, this.schema.formatData.DisplayExpression);\r\n this.displayexpn = new Function('context', modelAs, 'with (context) return ' + this.schema.formatData.DisplayExpression + ';');\r\n else\r\n this.displayfield = new Function(modelAs, 'return ' + modelAs + '.' + (this.schema.formatData.DisplayField || 'Name'));\r\n\r\n if (!this.schema.formatData.ValueType || this.schema.formatData.ValueType === 'Expression')\r\n // this.valueexpn = utils.compileExpression(this, this.schema.formatData.ValueExpression); //new Function(modelAs, 'return ' + this.schema.formatData.ValueExpression);\r\n this.valueexpn = new Function('context', modelAs, 'with (context) return ' + this.schema.formatData.ValueExpression + ';');\r\n else\r\n this.valuefield = new Function(modelAs, 'return ' + modelAs + '.' + (this.schema.formatData.ValueField || 'Value'));\r\n },\r\n async mounted() {\r\n this.Refresh();\r\n },\r\n computed: {\r\n ...utils.forms.computed,\r\n },\r\n methods: {\r\n ...methods,\r\n sync(prop, value) {\r\n let v = value;\r\n if (v == '!!null!!') v = null;\r\n\r\n if (Array.isArray(this.cmodel))\r\n {\r\n if (prop < this.cmodel.length)\r\n Vue.set(this.cmodel, prop, v);\r\n else {\r\n while (this.cmodel.length < prop)\r\n this.cmodel.push(null);\r\n\r\n this.cmodel.push(v);\r\n }\r\n }\r\n else\r\n {\r\n if (!(prop in this.cmodel))\r\n Vue.set(this.cmodel, prop, v);\r\n else\r\n this.cmodel[prop] = v;\r\n }\r\n },\r\n async Refresh() {\r\n if (this.lookupurl)\r\n {\r\n this.list = await utils.api.get(utils.evaluate(this.lookupurl, this), false, this.schema.formatData.CacheLookupResult);\r\n }\r\n else if (this.lookupexpn)\r\n {\r\n this.list = utils.evaluate(this.lookupexpn, this, false);\r\n }\r\n\r\n if (this.list && typeof this.list === 'object' && !Array.isArray(this.list))\r\n {\r\n // Convert our object into an array using Key and Value\r\n this.list = Object.keys(this.list).reduce((out, key) => {\r\n out.push({\r\n Key: key,\r\n Value: this.list[key]\r\n });\r\n return out;\r\n }, []);\r\n }\r\n }\r\n },\r\n props: {\r\n name: '',\r\n schemakey: '',\r\n root: null,\r\n schema: null,\r\n cmodel: null,\r\n extra: null,\r\n readonly: false,\r\n child: 0,\r\n propertygrid: false,\r\n },\r\n render(h) {\r\n if (!this.Condition)\r\n return null;\r\n\r\n let desc;\r\n if (this.schema.description)\r\n desc = ;\r\n\r\n const name = {this.name};\r\n\r\n if (!this.list)\r\n return (\r\n \r\n \r\n {name} {desc}\r\n \r\n \r\n this.sync(this.schemakey, value)}>\r\n \r\n \r\n );\r\n\r\n // \r\n\r\n const items = [];\r\n const choice = this.cmodel[this.schemakey];\r\n const schema = this.schema;\r\n\r\n if (schema.formatData && schema.formatData.AllowCustomInput) {\r\n for (var i = 0; i < this.list.length; i++) {\r\n const item = this.list[i];\r\n const value = this.valueexpn ? this.valueexpn({ ...this }, item) : this.valuefield(item);\r\n const txt = this.displayexpn ? this.displayexpn({ ...this }, item) : this.displayfield(item);\r\n\r\n items.push({\r\n text: txt,\r\n value: value,\r\n });\r\n }\r\n\r\n return (\r\n \r\n \r\n {name} {desc}\r\n \r\n \r\n this.sync(this.schemakey, e.target ? e.target.value : e)}\r\n on-keyup={(e) => this.sync(this.schemakey, e.target ? e.target.value : e)}>\r\n \r\n \r\n \r\n );\r\n }\r\n\r\n let found = false;\r\n for (var i = 0; i < this.list.length; i++) {\r\n const item = this.list[i];\r\n const value = this.valueexpn ? this.valueexpn({ ...this }, item) : this.valuefield(item);\r\n const txt = this.displayexpn ? this.displayexpn({ ...this }, item) : this.displayfield(item);\r\n\r\n if (choice == value)\r\n found = true;\r\n\r\n items.push({\r\n text: txt,\r\n value: value,\r\n disabled: false,\r\n });\r\n }\r\n\r\n if (schema.$allows_null)\r\n items.splice(0, 0, { text: \"\", value: \"!!null!!\", disabled: false });\r\n else if (!found)\r\n items.splice(0, 0, { text: \"Please choose one\", value: choice, disabled: true });\r\n\r\n return (\r\n \r\n \r\n {name} {desc}\r\n \r\n \r\n this.sync(this.schemakey, value)}>\r\n \r\n \r\n \r\n );\r\n }\r\n});","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('v-card',[_c('v-app-bar',{staticStyle:{\"background-color\":\"var(--v-navigation-base)\",\"height\":\"60px\"},attrs:{\"flat\":\"\",\"color\":\"rgba(0, 0, 0, 0)\"}},[_c('v-app-bar-nav-icon',{attrs:{\"color\":\"white\"}}),_c('v-toolbar-title',{staticClass:\"title white--text pl-0\"},[_vm._v(\" Debug Form \")]),_c('v-spacer'),_c('v-btn',{attrs:{\"color\":\"white\",\"icon\":\"\"},on:{\"click\":_vm.closeForm}},[_c('v-icon',[_vm._v(\"mdi-close-box\")])],1)],1),_c('v-card-text',{staticStyle:{\"height\":\"100%\",\"paddingBottom\":\"0px\"}},[_c('v-tabs',{model:{value:(_vm.debug_tab_selected),callback:function ($$v) {_vm.debug_tab_selected=$$v},expression:\"debug_tab_selected\"}},[_c('v-tab',[_vm._v(\"Model\")]),_c('v-tab',[_vm._v(\"Schema\")]),_c('v-tab',[_vm._v(\"Form\")])],1),_c('v-tabs-items',{staticStyle:{\"height\":\"90%\"},model:{value:(_vm.debug_tab_selected),callback:function ($$v) {_vm.debug_tab_selected=$$v},expression:\"debug_tab_selected\"}},[_c('v-tab-item',{key:\"0\"},[_c('pre',{staticStyle:{\"width\":\"100%\",\"height\":\"100%\",\"overflow\":\"auto\",\"margin\":\"0\"}},[_vm._v(_vm._s(_vm.getJSON(_vm.cmodel || {})))])]),_c('v-tab-item',{key:\"1\"},[_c('pre',{staticStyle:{\"width\":\"100%\",\"height\":\"100%\",\"overflow\":\"auto\",\"margin\":\"0\"}},[_vm._v(_vm._s(_vm.getJSON(_vm.form || [])))])]),_c('v-tab-item',{key:\"2\"},[_c('pre',{staticStyle:{\"width\":\"100%\",\"height\":\"100%\",\"overflow\":\"auto\",\"margin\":\"0\"}},[_vm._v(_vm._s(_vm.getJSON(_vm.schema || {})))])])],1)],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\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/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./debugDialog.vue?vue&type=script&lang=js&\"; 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/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./debugDialog.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./debugDialog.vue?vue&type=template&id=20697d49&scoped=true&\"\nimport script from \"./debugDialog.vue?vue&type=script&lang=js&\"\nexport * from \"./debugDialog.vue?vue&type=script&lang=js&\"\nimport style0 from \"./debugDialog.vue?vue&type=style&index=0&id=20697d49&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 \"20697d49\",\n null\n \n)\n\nexport default component.exports","import Vue from 'vue';\r\nimport BaseComponent from './BaseComponentMixin.jsx';\r\nimport SchemaForm from './schemaform/SchemaForm.jsx';\r\nimport PropertyGrid from './form/PropertyGrid.jsx';\r\nimport utils from '../../Shared/utils.jsx';\r\nimport EventBus from '../event-bus.js';\r\n//import Tv4 from '@/JavaScript/tv4/v1.0.17/care-tv4';\r\nimport careHelpfulFunctions from '../careHelpfulFunctions.jsx';\r\n\r\nimport debugDialog from './vuecontrols/debugDialog.vue';\r\n\r\nconst getCircularReplacer = () => {\r\n const seen = new WeakSet();\r\n return (key, value) => {\r\n if (typeof value === \"object\" && value !== null) {\r\n if (seen.has(value)) {\r\n return;\r\n }\r\n seen.add(value);\r\n }\r\n return value;\r\n };\r\n};\r\n\r\nVue.component('basic-form', {\r\n mixins: [BaseComponent],\r\n components: {\r\n debugDialog\r\n },\r\n data: () => ({\r\n schemaurl: null,\r\n schemaraw: null,\r\n modelurl: null,\r\n modelvalue: null,\r\n defaultModel: {},\r\n formurl: null,\r\n formvalue: null,\r\n schema: null,\r\n model: {},\r\n form: ['*'],\r\n hasChanged: false,\r\n isValid: false,\r\n IsValid: function () {\r\n Validate();\r\n return this.isValid;\r\n },\r\n\r\n debug_form: false,\r\n debug_tab_selected: 0,\r\n formfinal: null,\r\n\r\n noinputexpr: null,\r\n arraystartexpr: null,\r\n destroystrategyexpr: null,\r\n\r\n validationExpressions: null,\r\n watch_model: false,\r\n notify_object: null,\r\n }),\r\n props: {},\r\n computed: {\r\n Model: function () {\r\n return this.model;\r\n },\r\n FormModel: function () {\r\n return this.model;\r\n },\r\n SchemaUrlValue: function () {\r\n return this.schemaurl ? utils.evaluate(this.schemaurl, this) : '';\r\n },\r\n SchemaRawValue: function () {\r\n return this.schemaraw ? utils.evaluateObject(this.schemaraw, this) : null;\r\n },\r\n ModelUrlValue: function () {\r\n return this.modelurl ? utils.evaluate(this.modelurl, this) : '';\r\n },\r\n ModelRawValue: function () {\r\n return this.modelvalue ? utils.evaluateObject(this.modelvalue, this) : null;\r\n },\r\n FormUrlValue: function () {\r\n return this.formurl ? utils.evaluate(this.formurl, this) : '';\r\n },\r\n FormRawValue: function () {\r\n return this.formvalue ? utils.evaluateObject(this.formvalue, this) : null;\r\n },\r\n NoInputValue: function () {\r\n if (this.noinputexpr)\r\n return utils.evaluateObject(this.noinputexpr, this);\r\n else\r\n return this.controlData.FormOptions.NoInput;\r\n },\r\n ArrayStartValue: function () {\r\n if (this.arraystartexpr)\r\n return utils.evaluateObject(this.arraystartexpr, this);\r\n else\r\n return this.controlData.FormOptions.ArrayStart;\r\n },\r\n DestroyStrategyVaue: function () {\r\n if (this.destroystrategyexpr)\r\n return utils.evaluateObject(this.destroystrategyexpr, this);\r\n else\r\n return this.controlData.FormOptions.DestroyStrategy;\r\n },\r\n FormHasChanged: function () {\r\n return this.hasChanged;\r\n },\r\n\r\n title() {\r\n if (this.controlData.Title)\r\n return (\r\n \r\n );\r\n return null;\r\n },\r\n },\r\n watch: {\r\n SchemaUrlValue: function (newvalue) {\r\n if (!this.prerender_complete) return;\r\n utils.debug(`BasicForm ${this.name} SchemaUrlValue changed:${newvalue} - Refreshing`);\r\n this.Refresh();\r\n },\r\n SchemaRawValue: function (newvalue) {\r\n if (!this.prerender_complete) return;\r\n utils.debug(`BasicForm ${this.name} SchemaRawValue changed - Refreshing`);\r\n this.Refresh();\r\n },\r\n FormUrlValue: function (newvalue) {\r\n if (!this.prerender_complete) return;\r\n utils.debug(`BasicForm ${this.name} FormUrlValue changed: ${newvalue} - Refreshing`);\r\n this.Refresh();\r\n },\r\n FormRawValue: function (newvalue) {\r\n if (!this.prerender_complete) return;\r\n utils.debug(`BasicForm ${this.name} FormRawValue changed - Refreshing`);\r\n this.Refresh();\r\n },\r\n ModelUrlValue: async function (newvalue, oldvalue) {\r\n if (!this.prerender_complete) return;\r\n utils.debug(`BasicForm ${this.name} url changed from ${oldvalue} to ${newvalue}`);\r\n this.model = await utils.api.get(newvalue);\r\n utils.forms.mixModels(this.defaultModel, this.model);\r\n },\r\n //ModelRawValue: function (newvalue) {\r\n // if (!this.prerender_complete) return;\r\n // utils.debug(`BasicForm ${this.name} model raw value changed`);\r\n // this.model = newvalue;\r\n // utils.forms.mixModels(this.defaultModel, this.model);\r\n //}\r\n },\r\n created() {\r\n if (this.controlData.Schema && this.controlData.Schema.Type == 'URL' && this.controlData.Schema.Definition)\r\n this.schemaurl = utils.compile(this, this.controlData.Schema.Definition);\r\n else if (this.controlData.Schema && (this.controlData.Schema.Type == 'Raw' || this.controlData.Schema.Type == 'RawInterpolated') && this.controlData.Schema.Definition)\r\n this.schemaraw = utils.compileObject(this, this.controlData.Schema.Definition);\r\n else if (this.controlData.Schema)\r\n this.schema = this.controlData.Schema.Definition;\r\n\r\n if (this.controlData.Model && this.controlData.Model.Type == 'URL' && this.controlData.Model.Definition)\r\n this.modelurl = utils.compile(this, this.controlData.Model.Definition);\r\n else if (this.controlData.Model && this.controlData.Model.Type == 'Raw' && this.controlData.Model.Definition)\r\n this.model = this.controlData.Model.Definition;\r\n else if (this.controlData.Model && this.controlData.Model.Type == 'RawInterpolated' && this.controlData.Model.Definition)\r\n this.modelvalue = utils.compileObject(this, this.controlData.Model.Definition);\r\n\r\n if (this.controlData.Form && this.controlData.Form.Type == 'URL' && this.controlData.Form.Definition)\r\n this.formurl = utils.compile(this, this.controlData.Form.Definition);\r\n else if (this.controlData.Form && this.controlData.Form.Type == 'Raw' && this.controlData.Form.Definition)\r\n this.form = this.controlData.Form.Definition;\r\n else if (this.controlData.Form && this.controlData.Form.Type == 'RawInterpolated' && this.controlData.Form.Definition)\r\n this.formvalue = utils.compileObject(this, this.controlData.Form.Definition);\r\n else if (this.controlData.Form)\r\n this.form = this.controlData.Form.Definition;\r\n\r\n if (this.controlData.DefaultModel) {\r\n const defaultModelexpn = utils.compileObject(this, this.controlData.DefaultModel);\r\n this.defaultModel = utils.evaluateObject(defaultModelexpn, this);\r\n }\r\n\r\n if (this.controlData.FormOptions.NoInput && typeof this.controlData.FormOptions.NoInput === 'string')\r\n this.noinputexpr = utils.compileObject(this, this.controlData.FormOptions.NoInput);\r\n\r\n if (this.controlData.FormOptions.ArrayStart && typeof this.controlData.FormOptions.ArrayStart === 'string')\r\n this.arraystartexpr = utils.compileObject(this, this.controlData.FormOptions.ArrayStart);\r\n\r\n if (this.controlData.FormOptions.DestroyStrategy && typeof this.controlData.FormOptions.DestroyStrategy === 'string')\r\n this.destroystrategyexpr = utils.compileObject(this, this.controlData.FormOptions.DestroyStrategy);\r\n\r\n\r\n if (this.controlData.ValidationExpressions) {\r\n let validationExpressions = [];\r\n this.controlData.ValidationExpressions.forEach(exp => {\r\n validationExpressions.push({\r\n expn: utils.compileExpression(this, exp.Expression),\r\n error: utils.compile(this, exp.ErrorMessage),\r\n });\r\n });\r\n this.validationExpressions = validationExpressions;\r\n }\r\n\r\n // Moved this into ActionService\r\n //EventBus.$on('Action-ValidateForm', this.performValidateForm);\r\n\r\n this.$on('Action-ValidateForm', this.performValidateForm);\r\n\r\n if (this.name)\r\n EventBus.$on(`Action-ValidateForm:${this.name}`, this.performValidateForm);\r\n\r\n },\r\n //Mounted Replaced with preRenderComplete\r\n destroyed() {\r\n if (this.publish_watch$) {\r\n this.publish_watch$();\r\n }\r\n if (this.rawmodelvaluewatch$)\r\n this.rawmodelvaluewatch$();\r\n\r\n // Moved this into ActionService\r\n //EventBus.$off('Action-ValidateForm', this.performValidateForm);\r\n\r\n this.$off('Action-ValidateForm', this.performValidateForm);\r\n\r\n if (this.name)\r\n EventBus.$off(`Action-ValidateForm:${this.name}`, this.performValidateForm);\r\n },\r\n methods: {\r\n async preRenderComplete() {\r\n utils.debug(`BasicForm ${this.name} preRenderComplete - Refreshing`);\r\n await this.Refresh();\r\n this.finishRenderHandler(this);\r\n },\r\n async Refresh() {\r\n if (this.publish_watch$) {\r\n this.publish_watch$();\r\n this.publish_watch$ = undefined;\r\n }\r\n\r\n if (this.controlData.Schema && this.controlData.Schema.Type == 'URL' && this.schemaurl)\r\n try {\r\n // This is async and takes some time, so clearing the schema first insures that the form will dispose of all schema-dependent fields while we wait.\r\n this.schema = {};\r\n\r\n const schemaurl = this.SchemaUrlValue;\r\n\r\n if (schemaurl.toLowerCase().substr(0, 5) == 'apps/')\r\n this.schema = await utils.api.get(schemaurl);\r\n else\r\n this.schema = await utils.schema.get(schemaurl, true);\r\n\r\n //this.schema = utils.schema.resolve_Of(s);\r\n }\r\n catch (e) {\r\n utils.warn(`BasicForm ${this.name} schemaurl ${this.controlData.Schema.Definition} failed to load (${this.SchemaUrlValue}): `, e);\r\n this.schema = null;\r\n }\r\n else if (this.schemaraw) {\r\n this.schema = this.SchemaRawValue;\r\n await utils.schema.resolve(this.schema);\r\n }\r\n else if (this.schema)\r\n await utils.schema.resolve(this.schema);\r\n\r\n //if (this.schema)\r\n // this.schema = utils.schema.resolve_Of(this.schema);\r\n\r\n if (this.controlData.Model && this.controlData.Model.Type == 'URL' && this.modelurl) {\r\n if (this.ModelUrlValue)\r\n try {\r\n this.model = {};\r\n this.model = await utils.api.get(this.ModelUrlValue);\r\n\r\n if (this.model && this.model.Record)\r\n this.model = this.model.Record;\r\n }\r\n catch (e) {\r\n utils.warn(`BasicForm failed to get model via URL: ${this.ModelUrlValue}`, e);\r\n }\r\n }\r\n else if (this.controlData.Model && this.controlData.Model.Type == 'RawInterpolated' && this.modelvalue)\r\n try {\r\n this.model = this.ModelRawValue || {};\r\n\r\n if (typeof this.controlData.Model.Definition === 'string' &&\r\n this.controlData.Model.Definition.startsWith('{%') &&\r\n this.controlData.Model.Definition.endsWith('%}') &&\r\n !this.rawmodelvaluewatch$)\r\n this.rawmodelvaluewatch$ = this.$watch(\r\n function () {\r\n return this.ModelRawValue;\r\n },\r\n function (newv, oldv) {\r\n this.Refresh();\r\n }\r\n );\r\n }\r\n catch (e) {\r\n utils.warn('BasicForm modelvalue ' + this.controlData.Model.Definition + ' failed to evaluate: ' + e);\r\n this.model = {};\r\n }\r\n else if (this.controlData.Model && this.controlData.Model.Type == 'Raw' && this.controlData.Model.Definition)\r\n this.model = this.controlData.Model.Definition;\r\n else\r\n this.model = {};\r\n\r\n if (this.controlData.Form && this.controlData.Form.Type == 'URL' && this.formurl) {\r\n this.form = [];\r\n this.form = await utils.api.get(this.FormUrlValue);\r\n }\r\n else if (this.controlData.Form && this.controlData.Form.Type == 'RawInterpolated' && this.formvalue)\r\n try {\r\n this.form = this.FormRawValue;\r\n }\r\n catch (e) {\r\n utils.warn('BasicForm formvalue ' + this.controlData.Form.Definition + ' failed to evaluate: ' + e);\r\n this.form = {};\r\n }\r\n else if (this.controlData.Form && (this.controlData.Form.Type == 'Raw' || this.controlData.Form.Type == 'Inline') && this.controlData.Form.Definition)\r\n this.form = this.controlData.Form.Definition;\r\n\r\n if (!this.model)\r\n this.model = {};\r\n\r\n utils.forms.mixModels(this.defaultModel, this.model);\r\n\r\n if (this.controlData.PublishField) {\r\n let vueSet = utils.helpers.convertSetValueToVueSet(this.controlData.PublishField, 'value');\r\n this.setValueFunction = new Function('value', 'context', 'util', 'vue', `with (context) { ${vueSet} }`);\r\n }\r\n\r\n // Look for a form_changed_indicator up the parent hierarchy\r\n let p = this.$parent;\r\n while (p && (!('cc_form_changed_indicator' in p) || !p.cc_form_changed_active))\r\n p = p.$parent;\r\n\r\n if (p) {\r\n p.cc_form_changed_linked = true;\r\n p.cc_form_changed_form = this;\r\n this.notify_object = p;\r\n }\r\n\r\n this.watch_model = !!(this.notify_object || this.setValueFunction);\r\n\r\n this.hasChanged = false;\r\n this.isready = true;\r\n },\r\n modelChanged(newvalue) {\r\n if (this.setValueFunction)\r\n this.setValueFunction(newvalue, this, careHelpfulFunctions, Vue);\r\n\r\n this.hasChanged = true;\r\n utils.warn(`BasicForm ${this.name} change fired, notifying ${this.notify_object ? this.notify_object.name : 'null'}`);\r\n\r\n // If the form model changes set the cc_form_changed_indicator\r\n if (this.notify_object) {\r\n utils.warn(`BasicForm ${this.name} change fired, notifying ${this.notify_object ? this.notify_object.name : 'null'}`);\r\n //utils.warn(JSON.stringify(newvalue));\r\n\r\n this.notify_object.formChanged();\r\n }\r\n },\r\n showForm(e) {\r\n e.cancelBubble = true;\r\n e.stopPropagation();\r\n\r\n this.debug_form = true;\r\n },\r\n checkModelValue(form, field_key, model, errors) {\r\n let m = model;\r\n for (let j = 0; j < field_key.length && typeof m === 'object' && !!m; j++) {\r\n const k = field_key[j];\r\n\r\n if (k == '[]' && Array.isArray(m) && m.length > 0) {\r\n // We have encountered an array indicator that is non-specific.\r\n // We now need to generate a loop for each element in the model's array and\r\n // call checkFormRequired using the indexes in place of [] for each element.\r\n const key = [...field_key];\r\n for (let x = 0; x < m.length; x++) {\r\n key[j] = x;\r\n this.checkModelValue(form, key, model, errors);\r\n }\r\n return;\r\n }\r\n\r\n m = m[k];\r\n }\r\n\r\n if (m === null || m === undefined || m === '') {\r\n errors.push({\r\n element: utils.forms.joinFieldKey(field_key),\r\n error: `Missing Required field named ${form.title || field_key[field_key.length - 1]}`,\r\n reason: 'required'\r\n });\r\n }\r\n },\r\n checkFormRequired(form, model, errors) {\r\n for (let i = 0; i < form.length; i++) {\r\n const field = form[i];\r\n\r\n if (field.required)\r\n this.checkModelValue(field, field.key, model, errors);\r\n\r\n if (field.items)\r\n this.checkFormRequired(field.items, model, errors);\r\n }\r\n },\r\n Validate() {\r\n let errors = this.schema ? utils.schema.performValidation(this.schema, this.model) : [];\r\n\r\n //if (this.formfinal)\r\n // this.checkFormRequired(this.formfinal, this.model, errors);\r\n\r\n // Remove duplicates\r\n errors = errors.filter((e, index) => {\r\n return errors.findIndex(a => a.element == e.element && a.reason == e.reason) === index;\r\n });\r\n\r\n if (this.validationExpressions)\r\n this.validationExpressions.forEach(exp => {\r\n const isvalid = utils.evaluate(exp.expn, this);\r\n if (!isvalid)\r\n errors.push({\r\n element: 'Root object',\r\n error: utils.evaluate(exp.error, this),\r\n reason: 'validation'\r\n });\r\n });\r\n\r\n // Invoke validation on each field using the Vuetify form validation rules\r\n if (this.schemaForm?.$refs?.form) {\r\n const res = this.schemaForm.$refs.form.validate();\r\n if (!res) errors.push({\r\n element: 'Form fields',\r\n error: 'Form field validation failed',\r\n reason: 'validation'\r\n });\r\n }\r\n\r\n //set is valid based on if we have errors or not.\r\n this.isValid = errors ? errors.length == 0 : true;\r\n\r\n // Send a DisplayFeedback action to display the errors (or clear them if needed)\r\n const feedback = {\r\n PrimitiveAction: true,\r\n ActionType: 'DisplayFeedback',\r\n ActionBroadcastDirection: 'Parent',\r\n ActionData: {\r\n Messages: [{\r\n MessageType: 'Error',\r\n Message: errors.map(e => `${e.error}`).join('
')\r\n }],\r\n MessageGroup: this.name || 'unnamed_form',\r\n },\r\n };\r\n\r\n utils.debug(`BasicForm:${this.name} invoking DisplayFeedback with ${errors.length} errors`);\r\n utils.executeAndCompileAllActions([feedback], { Errors: errors }, this);\r\n\r\n return errors;\r\n },\r\n async performValidateForm(action) {\r\n utils.log(`BasicForm ValidateForm`);\r\n\r\n if (action.ActionData && action.ActionData.Debug && action.ActionData.Debug.BreakPoint) debugger;\r\n\r\n try {\r\n const errors = this.Validate();\r\n\r\n utils.log(`BasicForm ${this.name} validation discovered ${errors.length} error(s) [${errors.map(e => e.element + ':' + e.error).join('; ')}]`);\r\n\r\n try {\r\n if (errors.length === 0)\r\n await utils.success(action);\r\n else\r\n await utils.failure(action, { Errors: errors });\r\n } catch (e) { }\r\n }\r\n catch (e) {\r\n utils.warn(`BasicForm ${this.name} failed to validate`, e);\r\n\r\n try {\r\n await utils.failure(action);\r\n } catch (e) { }\r\n }\r\n finally {\r\n try {\r\n await utils.complete(action);\r\n }\r\n catch (e) { }\r\n\r\n // Complete the promise for the executeAction method\r\n action.FinishFunc(true);\r\n }\r\n },\r\n saveSchemaForm(f, s) {\r\n this.formfinal = f;\r\n this.schemaForm = s;\r\n },\r\n },\r\n render() {\r\n if (!this.isready || !this.prerender_complete || !this.todisplay || !this.model)\r\n return null;\r\n\r\n let Control = 'schema-form';\r\n if (this.controlData.FormType === 'PropertyGrid')\r\n Control = 'property-grid';\r\n\r\n const style = {\r\n overflow: \"auto\",\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n ...utils.getSize({ Width: { Mode: 'Fill' }, ...this.sizeOptions }, this.parentType, this.$parent),\r\n ...utils.resolveStyleHints(this.styleHints, this),\r\n //padding: \"10px\"\r\n };\r\n\r\n const control = (\r\n this.saveSchemaForm(f, s)}\r\n on-change={(v) => this.modelChanged(v)}\r\n scopeitems={this.scopeitems}\r\n controlscope={this.controlscope}\r\n >\r\n \r\n );\r\n\r\n // Provide a debug form that will show the contents of the model as formatted JSON\r\n if (this.isdebug)\r\n return (\r\n \r\n

{this.title}

\r\n this.showForm(e)}>\r\n {control}\r\n\r\n \r\n this.debug_form = false}>\r\n \r\n \r\n \r\n );\r\n else\r\n return (\r\n
\r\n

{this.title}

\r\n {control}\r\n
\r\n );\r\n }\r\n});","import Vue from 'vue';\r\nimport BaseComponent from './BaseComponentMixin.jsx';\r\nimport careHelpfulFunctions from '../careHelpfulFunctions.jsx';\r\nimport utils from '../../Shared/utils.jsx';\r\nimport EventBus from '../event-bus.js';\r\nimport methods from '../../Shared/methods';\r\nimport { debounce } from \"lodash\";\r\n\r\nimport { AgGridVue } from \"ag-grid-vue\";\r\n\r\nimport AgContentDef from './AgContentDef.jsx';\r\n\r\nvar baseMixin = {\r\n mixins: [BaseComponent],\r\n components: {\r\n AgGridVue,\r\n AgContentDef,\r\n },\r\n data: () => ({\r\n unique_id: '',\r\n dataGridRefName: null,\r\n gridcomponent: null,\r\n menu_is_open: false,\r\n\r\n schemaurl: null,\r\n schemaraw: null,\r\n rowClassExpr: null,\r\n modelurl: null,\r\n modelvalue: null,\r\n schema: null,\r\n modelfunc: null,\r\n storageFunc: null,\r\n showFilter: false,\r\n headerControls: {},\r\n addrowdata: [],\r\n addrowdata_todo: 0,\r\n addrowdata_count: 0,\r\n addrowdata_inprogress: false,\r\n addrowdata_promises: [],\r\n\r\n selectedRowKeys: [],\r\n selected_rows: {},\r\n selectedRowsData: [],\r\n columnDefs: null,\r\n\r\n displayMode: 'full',\r\n pageSizes: [10, 15, 20, 25, 30, 35, 40, 45, 50],\r\n showPageSizeSelector: true,\r\n showInfo: true,\r\n showNavButtons: true,\r\n scrollMode: \"virtual\",\r\n\r\n loading: false,\r\n selectableexpn: null,\r\n\r\n pagination: false,\r\n columns_visible: [], // Array of boolean to show/hide a column\r\n allowExportAll: true,\r\n useBuiltInExport: false,\r\n // Don't allow these to be reactive, messes up reactivity for some reason\r\n // gridApi: null,\r\n // columnApi: null,\r\n\r\n searchText: '',\r\n rowDataTemp: null,\r\n jumpToValue: '',\r\n HasFilters: false,\r\n }),\r\n props: {\r\n },\r\n created() {\r\n this.unique_id = utils.generateUUID();\r\n this.dataGridRefName = `dataGrid_${utils.generateUUID()}`;\r\n\r\n if (this.controlData.DisableLocalStorage != undefined && this.controlData.DisableLocalStorage != null) {\r\n this.storageFunc = utils.compile(this, this.controlData.DisableLocalStorage);\r\n }\r\n\r\n if (this.controlData.SchemaURL)\r\n {\r\n this.schemaurl = utils.compile(this, this.controlData.SchemaURL);\r\n\r\n this.schemaurl_watch$ = this.$watch(\r\n function () {\r\n try {\r\n return utils.evaluate(this.schemaurl, this);\r\n }\r\n catch (e)\r\n {\r\n utils.warn('BasicGrid schemaurl ' + this.controlData.SchemaURL + ' failed to evaluate: ' + e);\r\n return '';\r\n }\r\n },\r\n function (val, oldval) {\r\n this.Refresh(true);\r\n }\r\n );\r\n }\r\n \r\n\r\n if ((this.controlData.DataType === 'URL' || this.controlData.DataType === undefined) && this.controlData.DataURL)\r\n {\r\n this.modelurl = utils.compile(this, this.controlData.DataURL);\r\n }\r\n else if (this.controlData.DataType === 'Raw' && this.controlData.Data)\r\n {\r\n this.modelvalue = utils.compileObject(this, this.controlData.Data);\r\n }\r\n\r\n if (this.controlData.PersistenceKey)\r\n {\r\n this.persistencekeyexpn = utils.compile(this, this.controlData.PersistenceKey);\r\n }\r\n\r\n // Special case here to handle interpolated column definitions (used in Advanced History reports)\r\n if (typeof this.controlData.ColumnDefs === 'string' && (this.controlData.ColumnDefs.includes('{#') || this.controlData.ColumnDefs.includes('{%'))) {\r\n const columnDefEval = utils.compileObject(this, this.controlData.ColumnDefs);\r\n this.columnDefs = utils.evaluateObject(columnDefEval, this);\r\n\r\n if (this.controlData.ColumnDefs.includes('{%')) {\r\n const self = this;\r\n this.columnDefs_watch$ = this.$watch(\r\n function () { return utils.evaluateObject(columnDefEval, self); },\r\n function (newv) {\r\n this.columnDefs = newv;\r\n }\r\n );\r\n }\r\n }\r\n else\r\n this.columnDefs = this.controlData.ColumnDefs || [];\r\n\r\n if (this.columnDefs) {\r\n for (let i = 0; i < this.columnDefs.length; i++) {\r\n const cdef = this.columnDefs[i];\r\n if (cdef.ContentDefs) {\r\n for (let j = 0; j < cdef.ContentDefs.length; j++) {\r\n const contentdef = cdef.ContentDefs[j];\r\n if (contentdef.DisplayExpression) {\r\n contentdef.displayExpression = utils.compileExpression(this, contentdef.DisplayExpression);\r\n }\r\n }\r\n }\r\n else if (cdef.Field) {\r\n cdef.column_eval = new Function('model', 'return model.' + cdef.Field + ' || \"\";');\r\n }\r\n }\r\n }\r\n\r\n // Read this.columns_visible from local storage if present\r\n const cv = this.System.LocalStorage(this.storageKey + '-columns_visible');\r\n \r\n if (cv) {\r\n const cvObj = JSON.parse(cv);\r\n\r\n if (Array.isArray(cvObj)) {\r\n Vue.set(this, 'columns_visible', cvObj);\r\n }\r\n }\r\n\r\n if (Array.isArray(this.columnDefs)) {\r\n if (!cv || this.columns_visible.length !== this.columnDefs.length) {\r\n this.columns_visible = this.columnDefs.map(d => {\r\n if (!('Visible' in d)) {\r\n return true;\r\n }\r\n\r\n if (typeof d.Visible === \"string\" && d.Visible.length > 0) {\r\n let evalExpression = utils.compile(this, d.Visible);\r\n return utils.evaluateObject(evalExpression, this) === true;\r\n }\r\n \r\n return d.Visible === true;\r\n });\r\n }\r\n }\r\n\r\n\r\n if (this.controlData.SelectOptions && this.controlData.SelectOptions.Enable && this.controlData.SelectOptions.SelectableExpression)\r\n this.selectableexpn = utils.compileExpression(this, this.controlData.SelectOptions.SelectableExpression, 'row'); \r\n // This is a temporary non-reactive copy of the visibility flags for use when generating the columns.\r\n // We don't want the columns to react to this object changing since we'll be calling into the columnApi\r\n // directly to toggle a column's visibility (much faster).\r\n this.init_columns_visible = [...this.columns_visible];\r\n\r\n // Read pagination settings if present\r\n const pg = this.System.LocalStorage(this.storageKey + '-standard_pagination');\r\n if (typeof pg === 'string')\r\n this.pagination = pg == 'true';\r\n\r\n // Subscribe to a UIAction_GridRefresh event\r\n this.$on('Action-GridRefresh', this.performGridRefresh);\r\n this.$on('Action-GridClearSelectedRows', this.performGridClearSelectedRows);\r\n\r\n EventBus.$on('Action-GridRefresh', this.performGridRefresh);\r\n EventBus.$on('Action-GridClearSelectedRows', this.performGridClearSelectedRows);\r\n\r\n // Subscribe by name so Target can be directed to a specific container\r\n if (this.controlData.Name) {\r\n this.$on(`Action-GridRefresh:${this.controlData.Name}`, this.performGridRefresh);\r\n EventBus.$on(`Action-GridRefresh:${this.controlData.Name}`, this.performGridRefresh);\r\n\r\n this.$on(`Action-GridClearSelectedRows:${this.controlData.Name}`, this.performGridClearSelectedRows);\r\n EventBus.$on(`Action-GridClearSelectedRows:${this.controlData.Name}`, this.performGridClearSelectedRows);\r\n }\r\n\r\n // AdditionalRowData contains expressions and async lookups that are evaluated once for the whole\r\n // dataset at load time. As the data materializes, rows that reference it will get updated.\r\n if (this.controlData.AdditionalRowData)\r\n for (let i = 0; i < this.controlData.AdditionalRowData.length; i++) {\r\n const add = this.controlData.AdditionalRowData[i];\r\n this.addrowdata.push({\r\n name: add.Name,\r\n initValue: add.InitialValue ? utils.compileObject(this, add.InitialValue) : null,\r\n contentDefs: add.ContentDefs.map(c => ({\r\n displayexpr: c.DisplayExpression ? utils.compileExpression(this, c.DisplayExpression) : null,\r\n type: c.DataType,\r\n valueexpr: c.Value ? utils.compileObject(this, c.Value) : null,\r\n urlexpr: (c.URL && c.DataType == 'AsyncLookup') ? utils.compile(this, c.URL) : null,\r\n cache: c.CacheReply !== undefined ? c.CacheReply : true,\r\n }))\r\n });\r\n }\r\n },\r\n destroyed() {\r\n utils.log('Full BasicGrid destroyed()');\r\n if (this.schemaurl_watch$) this.schemaurl_watch$(); // disposes of the watcher\r\n if (this.schemaraw_watch$) this.schemaraw_watch$();\r\n if (this.modelurl_watch$) this.modelurl_watch$();\r\n if (this.modelvalue_watch$) this.modelvalue_watch$();\r\n if (this.columnDefs_watch$) this.columnDefs_watch$();\r\n\r\n this.$off('Action-GridRefresh', this.performGridRefresh);\r\n this.$off('Action-GridClearSelectedRows', this.performGridClearSelectedRows);\r\n\r\n EventBus.$off('Action-GridRefresh', this.performGridRefresh);\r\n EventBus.$off('Action-GridClearSelectedRows', this.performGridClearSelectedRows);\r\n\r\n if (this.controlData.Name) {\r\n this.$off(`Action-GridRefresh:${this.controlData.Name}`, this.performGridRefresh);\r\n EventBus.$off(`Action-GridRefresh:${this.controlData.Name}`, this.performGridRefresh);\r\n\r\n this.$off(`Action-GridClearSelectedRows:${this.controlData.Name}`, this.performGridClearSelectedRows);\r\n EventBus.$off(`Action-GridClearSelectedRows:${this.controlData.Name}`, this.performGridClearSelectedRows);\r\n }\r\n if (this.watch_date_value$)\r\n this.watch_date_value$();\r\n if (this.rowclass_watch$)\r\n this.rowclass_watch$();\r\n },\r\n computed: {\r\n dataGrid: function () {\r\n const r = this.$refs[this.dataGridRefName];\r\n if (r)\r\n return r.instance;\r\n else\r\n return undefined;\r\n },\r\n Model: function () {\r\n if (this.modelfunc)\r\n return this.modelfunc();\r\n else\r\n return null;\r\n },\r\n useLocalStorage: function () {\r\n if (this.storageFunc) {\r\n return !utils.evaluate(this.storageFunc, this);\r\n }\r\n\r\n return true;\r\n },\r\n storageKey: function () {\r\n if (this.persistencekeyexpn) {\r\n const key = utils.evaluate(this.persistencekeyexpn, this);\r\n return `basicGrid-${this.parentType}-${key || this.controlData.Name || 'unnamed'}-${this.controlData.$objectid || 'noid'}`;\r\n }\r\n else\r\n return `basicGrid-${this.parentType}-${this.controlData.Name || 'unnamed'}-${this.controlData.$objectid || 'noid'}`;\r\n },\r\n schemaurlvalue: function () {\r\n if (this.schemaurl)\r\n return utils.evaluate(this.schemaurl, this);\r\n else\r\n return '';\r\n },\r\n modelurlvalue: function () {\r\n if (this.modelurl)\r\n return utils.evaluate(this.modelurl, this);\r\n else\r\n return '';\r\n },\r\n modelrawvalue: function () {\r\n if (this.modelvalue)\r\n return utils.evaluateObject(this.modelvalue, this);\r\n else\r\n return [];\r\n },\r\n\r\n Rows: function () {\r\n return []; // this.modelfunc();\r\n },\r\n SelectedRows: function () {\r\n return this.selected_rows;\r\n },\r\n SelectedRowsAsArray: function () {\r\n return this.selectedRowsData;\r\n },\r\n HasSelectedRows: function () {\r\n return false;\r\n },\r\n GridColumns: function () {\r\n return this.columnDefs;\r\n },\r\n\r\n gridHeaders: function () {\r\n const h = this.$createElement;\r\n const items = [];\r\n\r\n if (this.controlData.EnableFilter) {\r\n items.push(\r\n this.searchText = v}\r\n >\r\n );\r\n }\r\n else if (this.controlData.ShowJumpto) {\r\n items.push( {\r\n this.jumpToValue = v;\r\n this.performGridReset(true);\r\n }}\r\n >\r\n );\r\n }\r\n\r\n this.getLeftGridHeaderControls(items);\r\n\r\n // Separator to push remaining items to right\r\n items.push();\r\n\r\n if (this.addrowdata_todo)\r\n items.push(\r\n \r\n \r\n );\r\n\r\n if (this.selectedRowsData.length > 0)\r\n items.push(\r\n ( {this.selectedRowsData.length} Selected\r\n this.ClearSelectedRows()}>\r\n mdi-close-circle\r\n )\r\n \r\n );\r\n\r\n this.getGridHeaderControls(items);\r\n\r\n if (!this.controlData.HideDefaultGridControls) {\r\n // Resizer (runs auto-resize for all columns)\r\n items.push(utils.generateTooltip(h,\r\n this.gridApi.autoSizeAllColumns()}>\r\n \r\n mdi-arrow-left-right-bold\r\n \r\n , 'Size columns to content', 'bottom'));\r\n\r\n // Resizer fit to screen (runs resize for all columns to fit all within screen width)\r\n items.push(utils.generateTooltip(h,\r\n this.gridApi.sizeColumnsToFit()}>\r\n \r\n mdi-arrow-expand-horizontal\r\n \r\n , 'Size columns to fit', 'bottom'));\r\n\r\n if (!this.controlData.HeaderOptions?.HideRefreshIcon) {\r\n // Refresh\r\n items.push(utils.generateTooltip(h,\r\n this.RefreshClicked()}>\r\n \r\n mdi-cached\r\n \r\n , 'Refresh', 'bottom'));\r\n }\r\n }\r\n\r\n if (!this.controlData.DisableGridMenu) {\r\n const scopedSlots = {\r\n activator: ({ on, attrs }) =>\r\n \r\n \r\n mdi-menu\r\n \r\n \r\n };\r\n\r\n const menus = [];\r\n\r\n if(this.allowExportAll)\r\n menus.push(\r\n { this.menu_is_open = false; this.ExportData(true); }}>\r\n \r\n mdi-table-arrow-right\r\n \r\n \r\n Export all columns as csv\r\n \r\n \r\n );\r\n\r\n menus.push(\r\n { this.menu_is_open = false; this.ExportData(false); }}>\r\n \r\n mdi-table-arrow-right\r\n \r\n \r\n Export visible columns as csv\r\n \r\n \r\n );\r\n\r\n menus.push(\r\n this.RestoreDefaults(e)}>\r\n \r\n mdi-file-undo\r\n \r\n \r\n Restore default settings\r\n \r\n \r\n );\r\n\r\n menus.push();\r\n\r\n menus.push(\r\n { this.menu_is_open = false; this.togglePagination(); }}>\r\n \r\n {this.pagination ? 'mdi-check' : ''}\r\n \r\n \r\n Use standard pagination\r\n \r\n \r\n );\r\n\r\n menus.push();\r\n\r\n // Add all columns with check boxes for visible\r\n\r\n this.getGridMenuColumnList(h, menus);\r\n\r\n // Menu\r\n const menu =\r\n this.menu_is_open = state}\r\n >\r\n \r\n \r\n {menus}\r\n \r\n \r\n ;\r\n\r\n items.push(menu);\r\n }\r\n\r\n return (\r\n
\r\n {items}\r\n
\r\n );\r\n },\r\n agColumnDefs: function() {\r\n let coldefs;\r\n if (this.columnDefs && this.columnDefs.length > 0) {\r\n coldefs = [];\r\n\r\n let checkboxVisible = true;\r\n if (this.selectableexpn)\r\n checkboxVisible = ({ data }) => utils.evaluate(this.selectableexpn, this, false, null, false, data);\r\n\r\n if (this.controlData.SelectOptions.Enable)\r\n coldefs.push({\r\n headerName: '',\r\n sortable: false,\r\n resizable: true,\r\n checkboxSelection: checkboxVisible,\r\n headerCheckboxSelection: this.controlData.RowModelType != 'serverSide',\r\n headerCheckboxSelectionFilteredOnly: true,\r\n showDisabledCheckboxes: this.controlData.SelectOptions.ShowDisabledCheckboxes == true,\r\n pinned: 'left',\r\n width: 50,\r\n });\r\n\r\n for (let i = 0; i < this.columnDefs.length; i++) {\r\n const cd = this.columnDefs[i];\r\n let sortComparitor = this.colSortComparator; // this.numberSortComparator;\r\n\r\n if (!cd.visibleexpr && cd.Visible && typeof cd.Visible === 'string') {\r\n cd.visibleexpr = utils.compileObject(this, cd.Visible);\r\n }\r\n\r\n if (cd.CellClassExpression && !cd.cellclassexpr)\r\n cd.cellclassexpr = utils.compileExpression(this, cd.CellClassExpression);\r\n\r\n let cssClass;\r\n if (cd.cellclassexpr)\r\n cssClass = ({ node }) => { this.rowDataTemp = node.data; return utils.evaluate(cd.cellclassexpr, this); }\r\n\r\n let calcCellValue;\r\n let exportCellValue;\r\n\r\n\r\n if (cd.SortAndFilterTemplate) {\r\n if (!cd.sortandfilterfunc) \r\n cd.sortandfilterfunc = utils.compile(this, cd.SortAndFilterTemplate);\r\n\r\n if (cd.SortAndFilterTemplate.includes('{#') || cd.SortAndFilterTemplate.includes('{%'))\r\n sortComparitor = this.numberSortComparator;\r\n\r\n calcCellValue = (node) => { this.rowDataTemp = node.data; return utils.evaluate(cd.sortandfilterfunc, this); };\r\n }\r\n\r\n if (cd.ExportTemplate) {\r\n if (!cd.exportfunc) \r\n cd.exportfunc = utils.compile(this, cd.ExportTemplate);\r\n\r\n // if there is an export template, update the calcCellValue to use the exportfunc rather than the sortandfilter func (which is used by default if no ExportTemplate is provided)\r\n calcCellValue = (node) => { this.rowDataTemp = node.data; return utils.evaluate(cd.exportfunc, this); };\r\n }\r\n\r\n\r\n cd.getQuickFilterText = params => {\r\n if (this.controlData.SearchOnlyVisibleColumns && (params.colDef.hide || !params.value))\r\n return '';\r\n\r\n // in order to support different values for searching vs grid export, the getQuickFilterText returns the value in the sortandfilterfunc (if there is one)\r\n // other wise params.value will be the result of the valueGetter which could be the export function (if there is one), the sortandfilterfunc (if no ExportTemplate but a SortAndFilterTemplate was provided), or the default value (if no ExportTemplate and no SortAndFilterTemplate)\r\n if (cd.sortandfilterfunc) {\r\n this.rowDataTemp = params.data;\r\n return utils.evaluate(cd.sortandfilterfunc, this);\r\n }\r\n else \r\n return params.value?.toString();\r\n };\r\n\r\n let cdef;\r\n\r\n if (cd.ContentDefs && cd.ContentDefs.length > 0) {\r\n // This code is used when the grid cell has a ContentDefs array defined, which\r\n // will insert custom controls into the grid cell using this template named here:\r\n // (the template gets its definition above and generates a content-def component)\r\n\r\n let dataType;\r\n if (cd.CellFilter) {\r\n const parts = cd.CellFilter.split(':');\r\n if (parts[0] == 'number')\r\n dataType = 'number';\r\n else if (parts[0].includes('date'))\r\n dataType = 'date';\r\n else if (parts[0].includes('time'))\r\n dataType = 'datetime';\r\n }\r\n\r\n cdef = {\r\n headerName: cd.ActionOnlyColumn ? '' : (cd.DisplayName || cd.Name || cd.Field),\r\n field: cd.ActionOnlyColumn ? '' : (cd.Field || cd.Name),\r\n colId: cd.Name || cd.Field,\r\n sortable: cd.Sortable && !cd.ActionOnlyColumn,\r\n filter: true && !cd.ActionOnlyColumn,\r\n resizable: true,\r\n comparator: sortComparitor,\r\n hide: !this.init_columns_visible[i],\r\n getQuickFilterText: cd.getQuickFilterText || undefined,\r\n valueGetter: calcCellValue,\r\n autoHeight: cd.AutoHeight,\r\n cellRenderer: 'AgContentDef',\r\n cellRendererParams: {\r\n callcorp: {\r\n root: this.root,\r\n contentDefs: cd.ContentDefs,\r\n addrowdata: this.addrowdata,\r\n scopeitems: this.scopeitems,\r\n controlscope: this.controlscope,\r\n field: cd.Field || cd.Name,\r\n context: this,\r\n loading: i == 0 // mark column as the loading column\r\n }\r\n },\r\n };\r\n }\r\n else {\r\n // This code is used when the grid cell does not have a ContentDefs array, so \r\n // the contents are automatically generated as the value of the record\r\n let dataType;\r\n if (cd.CellFilter) {\r\n const parts = cd.CellFilter.split(':');\r\n if (parts[0] == 'number')\r\n dataType = 'number';\r\n else if (parts[0].includes('date'))\r\n dataType = 'date';\r\n else if (parts[0].includes('time'))\r\n dataType = 'datetime';\r\n }\r\n\r\n if (cd.CellFilter && !cd.cellFilterFunc) {\r\n // Take ex: date:'medium'\r\n // Generate function as:\r\n // return context.f_date(data.field, 'medium') -- context === this\r\n const parts = cd.CellFilter.split(':');\r\n const code = `return context.f_${parts[0]}(data.${cd.Field},${parts[1]});`;\r\n const func = new Function('context', 'data', code);\r\n cd.cellFilterFunc = (node) => {\r\n if (node.data) {\r\n try { return func(this, node.data); } catch (e) {\r\n utils.warn(`Grid cell failed to evaluate ${code}`, e); return '';\r\n }\r\n } else {\r\n return '';\r\n }\r\n };\r\n }\r\n else if (!cd.CellFilter && !cd.CellFilterFunc) {\r\n let nullchecks = '';\r\n if (cd.Field && cd.Field.includes('.')) {\r\n const parts = cd.Field.split('.');\r\n for (let i = 0; i < parts.length - 1; i++)\r\n nullchecks += (nullchecks ? ' && ' : '') + `data.${parts[i]}`;\r\n nullchecks += ` ? (!!value!!) : ''`;\r\n }\r\n let code = `typeof data.${cd.Field} === 'object' ? JSON.stringify(data.${cd.Field}) : data.${cd.Field}`;\r\n\r\n if (nullchecks)\r\n code = nullchecks.replace('!!value!!', code);\r\n\r\n code = 'return ' + code + ';';\r\n const func = new Function('data', code);\r\n cd.cellFilterFunc = (node) => {\r\n if (node.data) {\r\n try { return func(node.data); } catch (e) {\r\n utils.warn(`Grid cell failed to evaluate ${code}`, e); return '';\r\n }\r\n } else {\r\n return '';\r\n }\r\n };\r\n }\r\n\r\n if (this.type == 'BasicGrid' && !calcCellValue) {\r\n // This affects the sorting when using a BasicGrid, but the InfiniteGrid lets the server\r\n // do the sorting, so this isn't necessary and it causes problems in the logic that tells\r\n // the server what column we are sorting on. So we have to skip this for the InfiniteGrid.\r\n const code = `return typeof data.${cd.Field} === 'object' ? JSON.stringify(data.${cd.Field}) : data.${cd.Field};`;\r\n const func = new Function('data', code);\r\n calcCellValue = (node) => {\r\n try { return func(node.data); } catch (e) {\r\n utils.warn(`Grid cell failed to evaluate ${code}`, e); return '';\r\n }\r\n };\r\n }\r\n\r\n cdef = {\r\n headerName: cd.DisplayName || cd.Name || cd.Field,\r\n field: cd.Field || cd.Name,\r\n colId: cd.Name || cd.Field,\r\n sortable: cd.Sortable,\r\n filter: true,\r\n resizable: true,\r\n comparator: sortComparitor,\r\n autoHeight: cd.AutoHeight,\r\n hide: !this.init_columns_visible[i],\r\n getQuickFilterText: cd.getQuickFilterText || undefined\r\n };\r\n if (calcCellValue)\r\n cdef.valueGetter = calcCellValue;\r\n\r\n if (cd.cellFilterFunc)\r\n cdef.valueFormatter = cd.cellFilterFunc;\r\n }\r\n\r\n if (cssClass)\r\n cdef.cellClass = cssClass;\r\n\r\n switch (cd.Align) {\r\n case 'Right': cdef.type = 'rightAligned'; break;\r\n case 'Center': cdef.cellStyle = { textAlign: 'center' }; break; // center doesn't work, not sure why\r\n }\r\n\r\n if (this.type == 'InfiniteGrid')\r\n cdef.suppressHeaderMenuButton = true;\r\n\r\n coldefs.push(cdef);\r\n }\r\n }\r\n return coldefs;\r\n },\r\n\r\n totalItems() {\r\n let count = this.controlData.GridHeaderControls ? this.controlData.GridHeaderControls.length : 0;\r\n\r\n if (this.controlData.LeftGridHeaderControls)\r\n count += this.controlData.LeftGridHeaderControls.length;\r\n\r\n return count + 1;\r\n },\r\n },\r\n methods: {\r\n preRenderComplete() {\r\n //this.finishRenderHandler(this);\r\n },\r\n\r\n async postRenderComplete() {\r\n await this.LoadSchema();\r\n await this.Refresh(false);\r\n },\r\n async performGridReset(clearSelectedRows) {\r\n if (clearSelectedRows)\r\n this.ClearSelectedRows();\r\n\r\n if (this.gridApi)\r\n this.gridApi.onSortChanged();\r\n },\r\n\r\n async performGridRefresh(action) {\r\n utils.log(`${this.type} ${this.name} GridRefresh`);\r\n\r\n if (action.ActionData.Debug && action.ActionData.Debug.BreakPoint) debugger;\r\n\r\n try {\r\n await this.Refresh(action.ActionData.ClearSelectedRows);\r\n \r\n if (this.controlData.RefreshActions)\r\n await utils.executeAndCompileAllActions(this.controlData.RefreshActions, null, this);\r\n\r\n try {\r\n await utils.success(action);\r\n } catch (e) { }\r\n }\r\n catch (e) {\r\n try {\r\n await utils.failure(action);\r\n } catch (e) { }\r\n }\r\n finally {\r\n try {\r\n await utils.complete(action);\r\n }\r\n catch (e) { }\r\n\r\n // Complete the promise for the executeAction method\r\n action.FinishFunc(true);\r\n }\r\n },\r\n isRowSelectable(rowNode) {\r\n if (this.controlData.SelectOptions.Enable) {\r\n if (this.selectableexpn) {\r\n // dynamic decision\r\n return utils.evaluate(this.selectableexpn, this, false, null, false, rowNode.data);\r\n } else {\r\n // no expression but we are enabled.\r\n return true;\r\n }\r\n } else {\r\n // we are not enabled.\r\n return false;\r\n }\r\n },\r\n async performGridClearSelectedRows(action) {\r\n utils.log(`${this.type} ${this.name} GridClearSelectedRows`);\r\n\r\n if (action.ActionData.Debug && action.ActionData.Debug.BreakPoint) debugger;\r\n\r\n try {\r\n this.ClearSelectedRows();\r\n\r\n try {\r\n await utils.success(action);\r\n } catch (e) { }\r\n }\r\n catch (e) {\r\n try {\r\n await utils.failure(action);\r\n } catch (e) { }\r\n }\r\n finally {\r\n try {\r\n await utils.complete(action);\r\n }\r\n catch (e) { }\r\n\r\n // Complete the promise for the executeAction method\r\n action.FinishFunc(true);\r\n }\r\n },\r\n async LoadSchema() {\r\n if (this.schemaurl)\r\n try {\r\n this.schema = await utils.schema.get(this.schemaurlvalue);\r\n }\r\n catch (e) {\r\n utils.warn('BasicGrid schemaurl ' + this.controlData.SchemaURL + ' failed to retrieve: ' + e);\r\n this.schema = null;\r\n }\r\n },\r\n async internalRefresh(clearSelectedRows) {\r\n if (clearSelectedRows)\r\n this.ClearSelectedRows();\r\n\r\n //this.modelfunc = null;\r\n\r\n let model;\r\n if (this.controlData.DataType === 'URL' && this.modelurl) {\r\n try {\r\n model = this.modelurlvalue ? await utils.api.get(this.modelurlvalue, false, false) : [];\r\n }\r\n catch (e) {\r\n\r\n // SignalR backwards compatability\r\n var statusCode = e.StatusCode ? e.StatusCode : e.statusCode;\r\n var reasonPhrase = e.ReasonPhrase ? e.ReasonPhrase : e.reasonPhrase;\r\n\r\n let msg = `Failed in API call to ${this.modelurlvalue}`;\r\n utils.warn(`${this.type} ${this.name} ${msg}`, e);\r\n msg = `API call failed: ${reasonPhrase}`;\r\n EventBus.$emit('v-toast', {\r\n text: 'Error',\r\n subtext: e ? msg : 'Unknown error',\r\n type: 'error',\r\n icon: 'mdi mdi-alert',\r\n ontap: [\r\n {\r\n \"PrimitiveAction\": true,\r\n \"ActionType\": \"DisplayConfirmModal\",\r\n \"RunAsync\": false,\r\n \"ActionData\": {\r\n \"OkayButtonText\": \"Okay\",\r\n \"CancelButtonText\": \"Cancel\",\r\n \"Debug\": {},\r\n \"Title\": \"Error \" + (e ? statusCode : ''),\r\n \"Message\": `Failed in API call to ${this.modelurlvalue} - ${reasonPhrase}`\r\n }\r\n }\r\n ],\r\n context: this,\r\n });\r\n }\r\n\r\n if (!this.modelurl_watch$)\r\n this.modelurl_watch$ = this.$watch(\r\n function () {\r\n return this.modelurlvalue;\r\n },\r\n function (val, oldval) {\r\n utils.debug(`BasicGridMixin ${this.name} URL value changed to: ${val}`);\r\n this.Refresh();\r\n }\r\n );\r\n }\r\n else if (this.controlData.DataType == 'Raw' && this.modelvalue)\r\n try {\r\n model = this.modelrawvalue;\r\n \r\n if (!this.modelvalue_watch$)\r\n this.modelvalue_watch$ = this.$watch(\r\n function () {\r\n try {\r\n return this.modelrawvalue;\r\n }\r\n catch (e) {\r\n utils.warn('Full BasicGrid modelvalue ' + this.controlData.Model.Definition + ' failed to evaluate: ' + e);\r\n return null;\r\n }\r\n },\r\n function (val, oldval) {\r\n this.Refresh();\r\n },\r\n {\r\n deep: false\r\n }\r\n );\r\n }\r\n catch (e) {\r\n utils.warn('BasicGrid modelvalue ' + this.controlData.Data + ' failed to evaluate: ' + e);\r\n model = [];\r\n }\r\n else\r\n model = [];\r\n\r\n this.modelfunc = () => model;\r\n\r\n if (this.gridApi)\r\n this.gridApi.refreshCells();\r\n\r\n setTimeout(() => this.resolveAllAdditionalRowData(), 1000);\r\n },\r\n\r\n RefreshClicked() {\r\n if (this.controlData.HeaderOptions?.RefreshIconActions && this.controlData.HeaderOptions?.RefreshIconActions.length > 0) {\r\n utils.executeAndCompileAllActions(this.controlData.HeaderOptions.RefreshIconActions, null, this);\r\n } else if (this.controlData.DataType === 'Raw') {\r\n utils.executeAndCompileAllActions([\r\n {\r\n \"PrimitiveAction\": true,\r\n \"ActionType\": \"Refresh\",\r\n \"RunAsync\": false,\r\n \"ActionData\": {\r\n \"Debug\": {\r\n \"BreakPoint\": false\r\n }\r\n },\r\n }\r\n ], {}, this);\r\n } else {\r\n this.Refresh();\r\n }\r\n\r\n },\r\n RefreshCells() {\r\n this.gridApi.refreshCells();\r\n },\r\n ClearSelectedRows() {\r\n utils.debug(`${this.type} ${this.name} ClearSelectedRows()`);\r\n\r\n this.selected_rows = {};\r\n this.selectedRowsData = [];\r\n this.gridApi?.deselectAll();\r\n },\r\n SetSelectedRows(selectedArray, shouldClearSelection) {\r\n utils.debug(`BasicGrid ${this.name}.SetSelectedRows(${JSON.stringify(selectedArray)})`);\r\n\r\n // selectedArray is an array containing objects with the KeyFields - ex: KeyFields:['ID','Name']\r\n // then selectedArray might be [{'ID':'1', 'Name':'James'}, {'ID':'2', 'Name': 'Sam'}]\r\n\r\n // Therefore, to update the grid properly, we have to locate each row by key and update the selected_rows and selectedRowsData:\r\n\r\n const to_select_rows = [];\r\n const to_select_keys = {};\r\n\r\n const keys = this.controlData.KeyFields;\r\n const to_find = [...selectedArray];\r\n\r\n this.gridApi.deselectAll();\r\n this.gridApi.forEachNode(node => {\r\n // Set if this should be selected\r\n // const idx = to_find.findIndex(key => Object.keys(key).every(k => node.data[k] == key[k]));\r\n const idx = to_find.findIndex(item => keys.every(k => node.data[k] == item[k])); // Changed so it only compares the keys as defined above (KeyFields) - 3/12/25 DP\r\n // Allows an existing row or rows to be passed in as the selectedArray. Needed in FastGrid serverRowModel refresh.\r\n const isSelected = idx >= 0;\r\n node.setSelected(isSelected);\r\n if (isSelected) {\r\n // Remove the found item from the to_find array to reduce how many items we have to skip over\r\n to_find.splice(idx, 1);\r\n // Save the row data in the selected rows array\r\n to_select_rows.push(node.data);\r\n // Build the row key and save in the selected keys object\r\n const str_key = keys.map(k => `_${node.data[k]}`).join('');\r\n to_select_keys[str_key] = node.data;\r\n }\r\n });\r\n\r\n if (shouldClearSelection) {\r\n this.selected_rows = to_select_keys;\r\n this.selectedRowsData = to_select_rows;\r\n }\r\n else {\r\n Object.keys(to_select_keys).forEach(key => Vue.set(this.selected_rows, key, to_select_keys[key]));\r\n to_select_rows.forEach(item => this.selectedRowsData.push(item));\r\n }\r\n },\r\n SizeColumnsToContent() {\r\n this.gridApi.autoSizeAllColumns();\r\n },\r\n\r\n async SetColumnFilter(field, filter) {\r\n await this.gridApi.setColumnFilterModel(field, filter);\r\n this.gridApi.onFilterChanged();\r\n },\r\n ResetAllColumnFilters() {\r\n this.gridApi.setFilterModel(null);\r\n this.gridApi.onFilterChanged();\r\n },\r\n\r\n NotifyDataChange() {\r\n\r\n },\r\n async ExportData(all) {\r\n await this.resolveAllAdditionalRowData();\r\n\r\n this.gridApi.exportDataAsCsv({ allColumns: all, processCellCallback: this.processCellCallback });\r\n },\r\n processCellCallback(params){\r\n try{\r\n if(this.allowExportAll){\r\n return params.value;\r\n }\r\n else if(params.column.colDef?.cellRendererParams?.callcorp && params.column.colDef.field && params.node.data.exportValues && params.node.data.exportValues[params.column.colDef.field]){\r\n return params.node.data.exportValues[params.column.colDef.field]?.join(' ') || \"\";\r\n }\r\n else return \"\";\r\n }catch(err){\r\n debugger;\r\n }\r\n },\r\n\r\n columnFilterChanged(e) {\r\n if (!this.gridApi) return;\r\n \r\n var filterModel = this.gridApi.getFilterModel();\r\n\r\n if (this.useLocalStorage) {\r\n this.System.LocalStorage(this.storageKey + '-column_filters', JSON.stringify(filterModel));\r\n }\r\n\r\n this.HasFilters = filterModel ? Object.keys(filterModel).length > 0 : false;\r\n },\r\n\r\n colSortComparator(valueA, valueB) {\r\n // Enable case insensitive sort\r\n if (typeof valueA === 'string' && typeof valueB === 'string')\r\n return valueA.toLowerCase().localeCompare(valueB.toLowerCase());\r\n else if (typeof valueA === 'integer' && typeof valueB === 'integer')\r\n return valueA - valueB;\r\n else if (typeof valueA === 'number' && typeof valueB === 'number')\r\n return valueA - valueB;\r\n else\r\n return 0;\r\n },\r\n numberSortComparator(num1, num2) {\r\n // Enable nmerical sort\r\n return num1 - num2;\r\n },\r\n toggleScrollMode(e) {\r\n if (this.scrollMode == 'virtual')\r\n this.scrollMode = 'standard';\r\n else\r\n this.scrollMode = 'virtual';\r\n },\r\n toggleColumnVisible(field, index) {\r\n // This directly alters the visibility\r\n this.gridApi.setColumnsVisible([field], !this.columns_visible[index]);\r\n\r\n // The checkboxes in the grid menu are bound to this\r\n Vue.set(this.columns_visible, index, !this.columns_visible[index]);\r\n\r\n if (this.useLocalStorage) {\r\n this.System.LocalStorage(this.storageKey + '-columns_visible', JSON.stringify(this.columns_visible));\r\n }\r\n },\r\n setColumnVisible(field, index, value, override) {\r\n // This directly alters the visibility\r\n \r\n if (this.gridApi) {\r\n this.gridApi.setColumnsVisible([field], value);\r\n if(override)\r\n Vue.set(this.init_columns_visible, index, value);\r\n }\r\n else {\r\n Vue.set(this.init_columns_visible, index, value);\r\n Vue.set(this.columns_visible, index, value);\r\n }\r\n \r\n },\r\n togglePagination() {\r\n this.pagination = !this.pagination;\r\n\r\n if (this.useLocalStorage) {\r\n this.System.LocalStorage(this.storageKey + '-standard_pagination', this.pagination ? 'true' : 'false');\r\n }\r\n\r\n this.unique_id = utils.generateUUID();\r\n },\r\n\r\n getRowClass(params) {\r\n if (this.controlData.RowClassExpression)\r\n {\r\n if (!this.rowClassExpr)\r\n this.rowClassExpr = utils.compileExpression(this, this.controlData.RowClassExpression, 'row');\r\n\r\n //set row data and index for interpolation to work.\r\n this.rowDataTemp = params.data;\r\n this.rowIndex = params.rowIndex;\r\n\r\n try {\r\n return utils.evaluate(this.rowClassExpr, this, false, false, false, params.data);\r\n }\r\n catch (e)\r\n {\r\n utils.warn('Grid RowClassExpression ' + this.controlData.RowClassExpression + ' failed to evaluate: ' + e);\r\n return '';\r\n }\r\n }\r\n },\r\n\r\n getGridMenuColumnList(h, menus) {\r\n for (let i = 0; i < this.columnDefs.length; i++) {\r\n const col = this.columnDefs[i];\r\n if (col.ActionOnlyColumn) continue;\r\n\r\n menus.push(\r\n this.toggleColumnVisible(col.Name || col.Field, i)}>\r\n \r\n {this.columns_visible[i] ? 'mdi-check' : ''}\r\n \r\n \r\n {col.DisplayName || col.Name || col.Field}\r\n \r\n \r\n );\r\n }\r\n },\r\n //unused\r\n getGridMenuContent(h, data) {\r\n const items = this.getGridMenuColumnList(h);\r\n\r\n return (\r\n menu }}\r\n >\r\n \r\n \r\n \r\n \r\n Export all data as csv\r\n \r\n \r\n\r\n \r\n \r\n Export visible data as csv\r\n \r\n \r\n\r\n \r\n \r\n Restore default settings\r\n \r\n \r\n\r\n \r\n\r\n \r\n\r\n Grid Options\r\n \r\n\r\n this.toggleScrollMode(e)}>\r\n \r\n {this.scrollMode == \"standard\" ? 'mdi-checkbox-marked-outline' : 'mdi-checkbox-blank-outline'}\r\n \r\n \r\n Standard Paging\r\n \r\n \r\n\r\n this.toggleFilter(e)}>\r\n \r\n {this.showFilter ? 'mdi-checkbox-marked-outline' : 'mdi-checkbox-blank-outline'}\r\n \r\n \r\n Show Column Filters\r\n \r\n \r\n\r\n \r\n\r\n \r\n\r\n Columns Visible\r\n \r\n {items}\r\n \r\n \r\n \r\n );\r\n },\r\n\r\n refreshDataGrid() {\r\n this.Refresh(false);\r\n },\r\n\r\n async resolveAllAdditionalRowData() {\r\n if (!this.addrowdata || !this.addrowdata.length)\r\n return;\r\n\r\n if (this.addrowdata_inprogress) {\r\n let resolver;\r\n const promise = new Promise(function (resolve, reject) { resolver = resolve; });\r\n this.addrowdata_promises.push(resolver);\r\n await promise;\r\n return;\r\n }\r\n\r\n try {\r\n this.addrowdata_inprogress = true;\r\n this.addrowdata_promises = [];\r\n\r\n const model = this.modelfunc();\r\n const todo = [];\r\n for (let i = 0; i < model.length; i++) {\r\n const row = model[i];\r\n if (!('$$additional_row_data' in row))\r\n todo.push(row);\r\n }\r\n\r\n if (todo.length < 1)\r\n return;\r\n\r\n this.addrowdata_count = todo.length;\r\n this.addrowdata_todo = todo.length;\r\n\r\n const promises = [];\r\n for (let i = 0; i < todo.length; i++) {\r\n promises.push(this.resolveAdditionalRowData(i, todo[i]));\r\n }\r\n await Promise.all(promises);\r\n }\r\n finally {\r\n this.addrowdata_inprogress = false;\r\n\r\n if (this.addrowdata_promises.length)\r\n this.addrowdata_promises.forEach(r => r());\r\n }\r\n },\r\n async resolveAdditionalRowData(rowIndex, row) {\r\n try {\r\n this.rowDataTemp = row;\r\n\r\n if (this.addrowdata && !('$$additional_row_data' in row)) {\r\n Vue.set(row, '$$additional_row_data', {});\r\n\r\n for (let j = 0; j < this.addrowdata.length; j++) {\r\n const add = this.addrowdata[j];\r\n if (add.initValue) {\r\n Vue.set(row.$$additional_row_data, add.name, utils.evaluateObject(add.initValue, this));\r\n }\r\n\r\n for (let i = 0; i < add.contentDefs.length; i++) {\r\n const c = add.contentDefs[i];\r\n if (c.displayexpr && !utils.evaluate(c.displayexpr, this))\r\n continue;\r\n\r\n // Set on the component so the interpolation can read RowIndex() and RowData() as expected\r\n this.rowIndex = rowIndex;\r\n this.rowDataTemp = row;\r\n\r\n switch (c.type) {\r\n case 'RawInterpolated':\r\n Vue.set(row.$$additional_row_data, add.name, utils.evaluateObject(c.valueexpr, this));\r\n break;\r\n\r\n case 'AsyncLookup':\r\n Vue.set(row.$$additional_row_data, add.name, {});\r\n const url = utils.evaluate(c.urlexpr, this);\r\n const res = await utils.api.get(url, false, c.cache)\r\n\r\n // Set on component so the interpolation can read Input as expected\r\n this.Input = { Data: res };\r\n Vue.set(row.$$additional_row_data, add.name, utils.evaluateObject(c.valueexpr, this));\r\n\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n catch (e) {\r\n utils.warn(`${this.type} ${this.name} AdditionalRowData[${rowIndex}] error`, e);\r\n }\r\n finally {\r\n this.addrowdata_todo--;\r\n }\r\n },\r\n getAdditionalRowData(name) {\r\n if (this.rowDataTemp && ('$$additional_row_data' in this.rowDataTemp))\r\n return name ? this.rowDataTemp.$$additional_row_data[name] : this.rowDataTemp.$$additional_row_data;\r\n else\r\n return {};\r\n },\r\n\r\n getGridHeaderControls(items) {\r\n if (this.controlData.GridHeaderControls && Array.isArray(this.controlData.GridHeaderControls) && this.controlData.GridHeaderControls.length > 0) {\r\n for (let i = 0; i < this.controlData.GridHeaderControls.length; i++) {\r\n const c = this.controlData.GridHeaderControls[i];\r\n\r\n let DynamicControl = utils.getDynamicComponent(h, c);\r\n\r\n if (!DynamicControl)\r\n DynamicControl = 'default-unknown';\r\n\r\n items.push(\r\n this.finishRenderHandler(reference) }}\r\n type={c.ControlType}\r\n name={c.ControlData.Name ? c.ControlData.Name : ''}\r\n root={this.root}\r\n parentType=\"HorizontalStack\"\r\n controlData={c.ControlData}\r\n controlURL={c.ControlURL}\r\n controlName={c.Name}\r\n scopeitems={this.scopeitems}\r\n controlscope={this.controlscope}\r\n cacheControl={c.CacheControl}\r\n controlEvents={c.Events}>\r\n );\r\n }\r\n }\r\n },\r\n getLeftGridHeaderControls(items) {\r\n if (this.controlData.LeftGridHeaderControls && Array.isArray(this.controlData.LeftGridHeaderControls) && this.controlData.LeftGridHeaderControls.length > 0) {\r\n for (let i = 0; i < this.controlData.LeftGridHeaderControls.length; i++) {\r\n const c = this.controlData.LeftGridHeaderControls[i];\r\n\r\n let DynamicControl = utils.getDynamicComponent(h, c);\r\n\r\n if (!DynamicControl)\r\n DynamicControl = 'default-unknown';\r\n\r\n items.push(\r\n this.finishRenderHandler(reference) }}\r\n type={c.ControlType}\r\n name={c.ControlData.Name ? c.ControlData.Name : ''}\r\n root={this.root}\r\n parentType=\"HorizontalStack\"\r\n controlData={c.ControlData}\r\n controlURL={c.ControlURL}\r\n controlName={c.Name}\r\n scopeitems={this.scopeitems}\r\n controlscope={this.controlscope}\r\n controlEvents={c.Events}\r\n >\r\n );\r\n }\r\n }\r\n // if (!this.controlData.DisableGridMenu)\r\n },\r\n\r\n RestoreDefaults() {\r\n this.menu_is_open = false;\r\n\r\n // Clear all persistent settings\r\n this.System.LocalStorage(this.storageKey + '-state', null);\r\n this.System.LocalStorage(this.storageKey + '-columns_visible', null);\r\n this.System.LocalStorage(this.storageKey + '-standard_pagination', null);\r\n this.System.LocalStorage(this.storageKey + '-column_filters', null);\r\n this.System.LocalStorage(this.storageKey + '-expanded-groups', null);\r\n \r\n if (Array.isArray(this.columnDefs))\r\n this.columns_visible = this.columnDefs.map(d => !('Visible' in d) || d.Visible);\r\n\r\n // Force reload\r\n this.unique_id = utils.generateUUID();\r\n },\r\n onGridReady(params) {\r\n this.gridApi = params.api;\r\n this.columnApi = params.columnApi;\r\n\r\n if (this.controlData.EnableTimerWatch)\r\n this.watch_date_value$ = this.$watch(function () {\r\n return utils.helpers.chf.date_value.value;\r\n }, function (newvalue) {\r\n this.gridApi.refreshCells();\r\n });\r\n\r\n this.finishRenderHandler(this);\r\n },\r\n onFirstDataRendered(params) {\r\n const statestr = this.System.LocalStorage(this.storageKey + '-state');\r\n const stateObj = statestr ? JSON.parse(statestr) : null;\r\n\r\n if (stateObj) {\r\n params.api.applyColumnState({state: stateObj.columnState, applyOrder: true});\r\n this.gridApi.setColumnGroupState(stateObj.columnGroupState);\r\n }\r\n else if (this.controlData.SizeColumnnsToContent)\r\n this.SizeColumnsToFit();\r\n else if (this.controlData.ColumnDefs)\r\n for (let i = 0; i < this.controlData.ColumnDefs.length; i++)\r\n if (this.controlData.ColumnDefs[i].Width == 'SizeToContent' && this.controlData.ColumnDefs[i].Field)\r\n this.gridApi.autoSizeColumn(this.controlData.ColumnDefs[i].Field);\r\n\r\n const sortstr = this.System.LocalStorage(this.storageKey + '-sort');\r\n const sortObj = sortstr ? JSON.parse(sortstr) : null;\r\n const sortDef = this.columnDefs?.find(c => (this.controlData.DefaultSort && c.Field == this.controlData.DefaultSort) || (!this.controlData.DefaultSort && c.Sortable));\r\n \r\n if (sortObj) {\r\n this.gridApi.applyColumnState(sortObj);\r\n } else if (sortDef) {\r\n const sort = [{ colId: sortDef.Field, sort: 'desc' }];\r\n this.gridApi.applyColumnState(sort);\r\n }\r\n \r\n const column_filters = this.System.LocalStorage(this.storageKey + '-column_filters');\r\n const filterObj = column_filters ? JSON.parse(column_filters) : null;\r\n\r\n if (filterObj)\r\n this.gridApi.setFilterModel(filterObj);\r\n\r\n setTimeout(() => this.resolveAllAdditionalRowData(), 1000);\r\n //Vue.nextTick(() => this.resolveAllAdditionalRowData());\r\n\r\n if (this.controlData.OnFirstDataRendered)\r\n utils.executeAndCompileAllActions(this.controlData.OnFirstDataRendered, { Data: { FirstRow: params.firstRow, LastRow: params.lastRow } }, this);\r\n },\r\n SizeColumnsToFit() {\r\n this.gridApi.autoSizeAllColumns();\r\n },\r\n rowSelectionChanged(e) {\r\n const rows = this.gridApi.getSelectedNodes();\r\n\r\n utils.log(`rowSelectionChanged - ${rows.length} row(s) selected`);\r\n\r\n // rows[0].data\r\n // this.selectedRowKeys = rows.map(d => this.controlData.Keys.map(k => ({ [k]: d.data[k] })));\r\n\r\n if (this.controlData.KeyFields) {\r\n const selected_rows = {};\r\n for (let i = 0; i < rows.length; i++) {\r\n const row = rows[i].data;\r\n if(!row) continue;\r\n const key = this.controlData.KeyFields.map(k => `_${row[k]}`).join('');\r\n selected_rows[key] = row;\r\n }\r\n this.selected_rows = selected_rows;\r\n }\r\n this.selectedRowsData = rows.map(d => d.data);\r\n\r\n // If a row class expression is present, tell the grid to redraw in case the selection criteria affects the row class\r\n if (this.controlData.RowClassExpression)\r\n this.gridApi.redrawRows();\r\n },\r\n\r\n onSaveGridSortState(e) {\r\n if (!this.gridApi) return;\r\n\r\n let sortModel = this.gridApi.getColumnState().map(a => ({ colId: a.colId, sort: a.sort }));\r\n\r\n if (this.useLocalStorage) {\r\n this.System.LocalStorage(this.storageKey + '-sort', JSON.stringify(sortModel));\r\n }\r\n },\r\n onSaveGridColumnState: debounce(function (e) {\r\n if (!this.gridApi || (!e.column && e.type == 'columnMoved')) return;\r\n\r\n let columnState = this.gridApi.getColumnState();\r\n let columnGroupState = this.gridApi.getColumnGroupState();\r\n\r\n const state = {\r\n columnState: columnState,\r\n columnGroupState: columnGroupState,\r\n };\r\n\r\n if (this.useLocalStorage) {\r\n this.System.LocalStorage(this.storageKey + '-state', JSON.stringify(state));\r\n }\r\n }, 250),\r\n }\r\n};\r\n\r\nexport default baseMixin;","import Vue from 'vue';\r\nimport BaseComponent from './BaseAgGridMixin.jsx';\r\nimport utils from '../../Shared/utils.jsx';\r\n\r\nimport { AgGridVue } from \"ag-grid-vue\";\r\n\r\nVue.component('basic-grid', {\r\n mixins: [BaseComponent],\r\n components: {\r\n AgGridVue,\r\n },\r\n data: () => ({\r\n }),\r\n created() {\r\n },\r\n computed: {\r\n dataSource: function () {\r\n return this.modelfunc ? this.modelfunc() : null;\r\n },\r\n },\r\n //Mounted Replaced with preRenderComplete\r\n methods: {\r\n preRenderComplete() {\r\n this.finishRenderHandler(this);\r\n },\r\n async Refresh(clearSelectedRows) {\r\n this.internalRefresh(clearSelectedRows);\r\n },\r\n getSizeDefaults() {\r\n // Override in child control if you need to adjust the defaults for size\r\n // Ex: return { Height: { Mode: \"Fill\" } }\r\n return {\r\n Height: { Mode: \"Fill\" },\r\n Width: { Mode: \"Fill\" }\r\n };\r\n },\r\n },\r\n props: {},\r\n render() {\r\n if (!this.todisplay)\r\n return null;\r\n\r\n const style = {\r\n overflow: \"auto\",\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n minHeight: \"400px\",\r\n padding: '8px',\r\n ...this.sizeStyle,\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n\r\n {this.gridHeaders}\r\n this.onFirstDataRendered(e)}\r\n on-selection-changed={(e) => this.rowSelectionChanged(e)}\r\n columnDefs={this.agColumnDefs}\r\n rowData={this.dataSource}\r\n rowSelection={this.controlData.SelectOptions.MultiSelect ? \"multiple\" : null}\r\n isRowSelectable={this.isRowSelectable}\r\n enableCellTextSelection={true}\r\n ensureDomOrder={true}\r\n quickFilterText={this.searchText}\r\n suppressScrollOnNewData={true}\r\n suppressRowClickSelection={true}\r\n suppressCellSelection={true}\r\n suppressDragLeaveHidesColumns={true}\r\n pagination={this.pagination}\r\n paginationAutoPageSize={this.pagination}\r\n getRowClass={this.getRowClass}\r\n onFilterChanged={this.columnFilterChanged}\r\n on-sort-changed={this.onSaveGridSortState}\r\n on-column-visible={this.onSaveGridColumnState}\r\n on-column-pinned={this.onSaveGridColumnState}\r\n on-column-resized={this.onSaveGridColumnState}\r\n on-column-moved={this.onSaveGridColumnState}\r\n on-column-row-group-changed={this.onSaveGridColumnState}\r\n >\r\n \r\n \r\n );\r\n\r\n //const style = {\r\n // overflow: \"auto\",\r\n // display: \"flex\",\r\n // flexDirection: \"column\",\r\n // ...this.sizeStyle,\r\n // maxHeight: \"1000px\",\r\n //};\r\n\r\n //return (\r\n // this.onToolbarPreparing(e)}\r\n // on-selection-changed={(s) => this.onSelectionChanged(s)}\r\n // >\r\n // \r\n // \r\n // \r\n // \r\n // {selector}\r\n\r\n // {coldefs}\r\n\r\n // \r\n // \r\n // \r\n // \r\n // \r\n // \r\n //);\r\n }\r\n});","import Vue from 'vue';\r\nimport BaseComponent from './BaseComponentMixin.jsx';\r\nimport careHelpfulFunctions from '../careHelpfulFunctions.jsx';\r\n\r\nimport utils from '../../Shared/utils.jsx';\r\nimport methods from '../../Shared/methods';\r\n\r\nVue.component('basic-input', {\r\n mixins: [BaseComponent],\r\n data: function () {\r\n return {\r\n typeEval: null,\r\n textEval: null,\r\n placeholderEval: null,\r\n setValueFunction: null,\r\n isDisabledEval: null,\r\n model: ''\r\n }\r\n },\r\n props: {},\r\n created() {\r\n if(this.text)\r\n this.publishField = this.text;\r\n },\r\n //Mounted Replaced with preRenderComplete\r\n computed: {\r\n inputType() {\r\n try {\r\n if(this.typeEval === null && this.controlData.Type)\r\n this.typeEval = utils.compile(this, this.controlData.Type);\r\n if(this.typeEval)\r\n return utils.evaluate(this.typeEval, this);\r\n return 'text';\r\n }\r\n catch (e) {\r\n utils.warn('Type could not evaluate expression: ' + this.controlData.Type + '; ' + e);\r\n return 'text';\r\n }\r\n },\r\n text() {\r\n try {\r\n if(this.textEval === null && this.controlData.Text)\r\n this.textEval = utils.compile(this, this.controlData.Text);\r\n if(this.textEval)\r\n return utils.evaluate(this.textEval, this);\r\n return '';\r\n }\r\n catch (e) {\r\n utils.warn('Text could not evaluate expression: ' + this.controlData.Text + '; ' + e);\r\n return '';\r\n }\r\n },\r\n placeholder() {\r\n try {\r\n if(this.placeholderEval === null && this.controlData.PlaceHolder)\r\n this.placeholderEval = utils.compile(this, this.controlData.PlaceHolder);\r\n if(this.placeholderEval)\r\n return utils.evaluate(this.placeholderEval, this);\r\n return '';\r\n }\r\n catch (e) {\r\n utils.warn('Placeholder could not evaluate expression: ' + this.controlData.PlaceHolder + '; ' + e);\r\n return '';\r\n }\r\n },\r\n publishField: {\r\n set(value){\r\n if(this.setValueFunction === null && this.controlData.PublishField) {\r\n let vueSet = utils.helpers.convertSetValueToVueSet(this.controlData.PublishField, 'value');\r\n this.setValueFunction = new Function('value', 'context', 'util', 'vue', `with (context) { ${vueSet} }`);\r\n }\r\n if(this.setValueFunction) {\r\n this.setValueFunction(value, this, careHelpfulFunctions, Vue);\r\n }\r\n this.model = value;\r\n },\r\n get() {\r\n return this.model;\r\n }\r\n },\r\n isDisabled() {\r\n try {\r\n if(this.isDisabledEval === null && this.controlData.IsDisabled)\r\n this.isDisabledEval = utils.compile(this, this.controlData.IsDisabled);\r\n if(this.isDisabledEval)\r\n return utils.evaluate(this.isDisabledEval, this);\r\n return false;\r\n }\r\n catch (e) {\r\n utils.warn('IsDisabled could not evaluate expression: ' + this.controlData.IsDisabled + '; ' + e);\r\n return false;\r\n }\r\n },\r\n inputStyles() {\r\n return {\r\n ...utils.resolveStyleHints(this.styleHints, this),\r\n };\r\n },\r\n\r\n Text: {\r\n set(value) {\r\n this.publishField = value;\r\n },\r\n get() {\r\n return this.model;\r\n }\r\n },\r\n TextWithChange: {\r\n set(value) {\r\n this.publishField = value;\r\n\r\n utils.executeAndCompileAllActions(this.controlData.OnChangeActions, { Data: value }, this);\r\n },\r\n get() {\r\n return this.model;\r\n }\r\n },\r\n },\r\n \r\n methods: {\r\n onInput(item) {\r\n this.publishField = item;\r\n },\r\n async onChange(input) {\r\n await utils.executeAndCompileAllActions(this.controlData.OnChangeActions, { Text: input }, this);\r\n },\r\n async onBlur(input) {\r\n await utils.executeAndCompileAllActions(this.controlData.BlurActions, { Text: input }, this);\r\n },\r\n async onClear(e) {\r\n this.publishField = '';\r\n await utils.executeAndCompileAllActions(this.controlData.OnClearActions, null, this);\r\n },\r\n preRenderComplete() {\r\n this.finishRenderHandler(this);\r\n },\r\n },\r\n render(h) {\r\n try {\r\n if (!this.todisplay)\r\n return null;\r\n \r\n return (\r\n \r\n {\r\n h('v-text-field', {\r\n props: {\r\n type: this.inputType,\r\n value: this.model,\r\n placeholder: this.placeholder,\r\n style: this.inputStyles,\r\n hideDetails: true,\r\n dense: true,\r\n outlined: true,\r\n disabled: this.isDisabled,\r\n clearable: this.controlData.ShowClearIcon,\r\n label: this.controlData.Title\r\n },\r\n on: {\r\n input: this.onInput,\r\n change: this.onChange,\r\n blur: (e) => this.onBlur(e.target.value),\r\n 'click:clear': (e) => this.onClear(e),\r\n }\r\n })\r\n }\r\n \r\n );\r\n }\r\n catch(e) {\r\n utils.error('BasicInput Render failed', e);\r\n return
BasicInput Failed to Render {e}
;\r\n }\r\n }\r\n});","import Vue from 'vue';\r\nimport utils from '../../Shared/utils.jsx';\r\nimport BaseComponent from './BaseComponentMixin.jsx';\r\nimport './css/BasicLink.css';\r\n\r\nVue.component('basic-link', {\r\n mixins: [BaseComponent],\r\n data: function () {\r\n return {\r\n textrenderer: null,\r\n fontSizeEval: null,\r\n wrapTextEval: null,\r\n colorEval: null,\r\n tooltiprenderer: null,\r\n tooltipLocationEval: null,\r\n isdisabledeval: null,\r\n exportCallbacks: null,\r\n asyncUrl: null,\r\n asyncText: null,\r\n asyncTooltip: null,\r\n asyncColor: null,\r\n Input: {},\r\n // activatorId: '',\r\n link: null\r\n }\r\n },\r\n props: {},\r\n created() {\r\n if(this.controlData.AsyncLookup === true) {\r\n this.asyncUrl = utils.compile(this, this.controlData.AsyncOptions.URL);\r\n\r\n if(this.controlData.AsyncOptions.Text)\r\n this.asyncText = utils.compile(this, this.controlData.AsyncOptions.Text);\r\n \r\n if(this.controlData.AsyncOptions.Tooltip)\r\n this.asyncTooltip = utils.compile(this, this.controlData.AsyncOptions.Tooltip);\r\n\r\n if(this.controlData.AsyncOptions.Color)\r\n this.asyncColor = utils.compile(this, this.controlData.AsyncOptions.Color);\r\n }\r\n },\r\n //Mounted Replaced with preRenderComplete\r\n watch: {\r\n asyncUrlComputed: function() {\r\n if(this.controlData.AsyncLookup === true)\r\n this.lookupText();\r\n },\r\n },\r\n computed: {\r\n text() {\r\n if(this.controlData.Text)\r\n return (\r\n \r\n );\r\n return null;\r\n },\r\n fontSize() {\r\n if(this.fontSizeEval === null && this.controlData.FontSize)\r\n this.fontSizeEval = utils.compile(this, this.controlData.FontSize);\r\n if(this.fontSizeEval)\r\n return utils.evaluate(this.fontSizeEval, this);\r\n return '14px';\r\n },\r\n wrapText() {\r\n if(this.wrapTextEval === null && this.controlData.WrapText)\r\n this.wrapTextEval = utils.compile(this, this.controlData.WrapText);\r\n if(this.wrapTextEval)\r\n return utils.evaluate(this.wrapTextEval, this);\r\n return 'nowrap';\r\n },\r\n color() {\r\n if(this.colorEval === null && this.controlData.Color)\r\n this.colorEval = utils.compile(this, this.controlData.Color);\r\n if(this.colorEval)\r\n return utils.evaluate(this.colorEval, this);\r\n return '';\r\n },\r\n tooltip() {\r\n if(this.tooltiprenderer === null && this.controlData.Tooltip)\r\n this.tooltiprenderer = utils.compile(this, this.Translate(this.controlData.Tooltip));\r\n if(this.tooltiprenderer) {\r\n // if(!this.activatorId) this.activatorId = utils.generateUniqueDomId();\r\n return utils.evaluate(this.tooltiprenderer, this);\r\n }\r\n return null;\r\n },\r\n tooltipLocation() {\r\n let location = '';\r\n if(this.tooltipLocationEval === null && this.controlData.TooltipLocation)\r\n this.tooltipLocationEval = utils.compile(this, this.controlData.TooltipLocation);\r\n if(this.tooltipLocationEval)\r\n location = utils.evaluate(this.tooltipLocationEval, this);\r\n \r\n return location.split('-')[0].toLowerCase() || 'top';\r\n },\r\n disabled() {\r\n if(this.isdisabledeval === null && this.controlData.Disabled)\r\n this.isdisabledeval = utils.compile(this, this.controlData.Disabled);\r\n if(this.isdisabledeval)\r\n return utils.evaluate(this.isdisabledeval, this) == 'true';\r\n return false;\r\n },\r\n asyncUrlComputed() {\r\n if(this.asyncUrl)\r\n return utils.evaluate(this.asyncUrl, this)\r\n return ''\r\n },\r\n textStyles() {\r\n const styles = {};\r\n\r\n if (this.controlData.FontSize)\r\n styles['font-size'] = utils.resolveFontSize(this.controlData.FontSize);\r\n\r\n if (this.controlData.Color)\r\n try {\r\n styles.color = this.color;\r\n }\r\n catch (e) {\r\n utils.warn('Color could not evaluate expression: ' + this.controlData.Color + '; ' + e);\r\n styles.color = \"blue\";\r\n }\r\n else\r\n styles.color = 'blue';\r\n\r\n return styles;\r\n },\r\n styles() {\r\n return {\r\n ...this.textStyles,\r\n ...utils.resolveStyleHints(this.styleHints, this),\r\n overflow: \"hidden\",\r\n whiteSpace: this.wrapText,\r\n //display: \"inline-block\"\r\n }\r\n },\r\n },\r\n methods: {\r\n async doClick(e) {\r\n if(!this.disabled) {\r\n e.cancelBubble = true;\r\n e.stopPropagation();\r\n \r\n await utils.executeAndCompileAllActions(this.controlData.Actions, null, this);\r\n }\r\n },\r\n async lookupText() {\r\n try {\r\n const res = await utils.api.get(this.asyncUrlComputed);\r\n if (res)\r\n Vue.set(this.Input, 'Data', res);\r\n else\r\n Vue.set(this.Input, 'Data', '');\r\n\r\n if(this.asyncText)\r\n this.textrenderer = this.asyncText;\r\n if(this.asyncTooltip)\r\n this.tooltiprenderer = this.asyncTooltip;\r\n if(this.asyncColor)\r\n this.colorEval = this.asyncColor;\r\n }\r\n catch (e)\r\n {\r\n utils.warn('Async lookup failed to evaluate url: ' + this.controlData.AsyncOptions.URL + '; ' + e, e);\r\n }\r\n },\r\n async preRenderComplete() {\r\n if(this.controlData.AsyncLookup === true)\r\n await this.lookupText();\r\n this.finishRenderHandler(this);\r\n },\r\n },\r\n render(h) {\r\n if (!this.todisplay)\r\n return null;\r\n\r\n try {\r\n let link = this.doClick(e)}\r\n href={!this.disabled ? 'javascript:void(0)' : false}>\r\n {this.text}\r\n
;\r\n\r\n let content = utils.generateTooltip(h, link, this.tooltip, this.tooltipLocation);\r\n\r\n return (\r\n \r\n {content}\r\n \r\n );\r\n }\r\n catch (e) {\r\n utils.error('BasicLink Render failed', e);\r\n return
BasikLink Failed to Render {e}
;\r\n }\r\n }\r\n});","import Vue from 'vue';\r\nimport BaseComponent from './BaseComponentMixin.jsx';\r\nimport EventBus from '../event-bus.js';\r\n\r\nimport utils from '../../Shared/utils.jsx';\r\nimport methods from '../../Shared/methods';\r\n\r\n/**\r\n * Not supported:\r\n * *KnobLabel\r\n * *SwitchSize\r\n * *IsDefault\r\n */\r\n\r\nVue.component('basic-switch', {\r\n mixins: [BaseComponent],\r\n data: function () {\r\n return {\r\n defaultEval: null,\r\n colorEval: null,\r\n tooltipEval: null,\r\n tooltipLocationEval: null,\r\n classEval: null,\r\n isDisabledEval: null,\r\n value: false\r\n }\r\n },\r\n props: {},\r\n created() {\r\n this.value = (utils.evaluate(utils.compile(this, this.controlData.Default), this) == 'true');\r\n },\r\n //Mounted Replaced with preRenderComplete\r\n computed: {\r\n SwitchState() {\r\n return this.value;\r\n },\r\n label() {\r\n if(this.value) \r\n return this.controlData.OnLabel ? this.controlData.OnLabel : ''\r\n else\r\n return this.controlData.OffLabel ? this.controlData.OffLabel : ''\r\n },\r\n color() {\r\n try {\r\n let theColor = 'primary';\r\n if(this.colorEval === null && this.controlData.OnColor)\r\n this.colorEval = utils.compile(this, this.controlData.OnColor);\r\n if(this.colorEval)\r\n theColor = utils.evaluate(this.colorEval, this);\r\n \r\n theColor = theColor || 'primary'\r\n \r\n // This helps with backwards compatibility for a version of Bootstrap that used the word 'default' to describe the secondary button\r\n if(theColor === 'default')\r\n return 'secondary';\r\n else if(theColor === 'danger')\r\n return 'error';\r\n return theColor;\r\n }\r\n catch (e) {\r\n utils.warn('Color could not evaluate expression: ' + this.controlData.OnColor + '; ' + e);\r\n return 'primary';\r\n }\r\n },\r\n tooltip() {\r\n try {\r\n if(this.tooltipEval === null && this.controlData.Tooltip)\r\n this.tooltipEval = utils.compile(this, this.Translate(this.controlData.Tooltip));\r\n if(this.tooltipEval)\r\n return utils.evaluate(this.tooltipEval, this);\r\n return '';\r\n }\r\n catch (e) {\r\n utils.warn('Tooltip could not evaluate expression: ' + this.controlData.Tooltip + '; ' + e);\r\n return '';\r\n }\r\n },\r\n tooltipLocation() {\r\n try {\r\n if(this.tooltipLocationEval === null && this.controlData.TooltipLocation)\r\n this.tooltipLocationEval = utils.compile(this, this.Translate(this.controlData.TooltipLocation));\r\n if(this.tooltipLocationEval)\r\n return utils.evaluate(this.tooltipLocationEval, this).split('-')[0].toLowerCase() || 'top';\r\n return 'top';\r\n }\r\n catch (e) {\r\n utils.warn('Tooltiplocation could not evaluate expression: ' + this.controlData.TooltipLocation + '; ' + e);\r\n return 'top';\r\n }\r\n },\r\n isDisabled() {\r\n try {\r\n if(this.isDisabledEval === null && this.controlData.IsDisabled)\r\n this.isDisabledEval = utils.compile(this, this.Translate(this.controlData.IsDisabled));\r\n if(this.isDisabledEval)\r\n return utils.evaluate(this.isDisabledEval, this) == 'true';\r\n return false;\r\n }\r\n catch (e) {\r\n utils.warn('IsDisabled could not evaluate expression: ' + this.controlData.IsDisabled + '; ' + e);\r\n return false;\r\n }\r\n }\r\n },\r\n methods: {\r\n async onChange(value) {\r\n await utils.executeAndCompileAllActions(this.controlData.Actions, { Value: value }, this);\r\n },\r\n preRenderComplete() {\r\n this.finishRenderHandler(this);\r\n },\r\n SetSwitchState(value) {\r\n this.value = value;\r\n }\r\n },\r\n render(h) {\r\n if(!this.todisplay)\r\n return null;\r\n\r\n try {\r\n\r\n let content = (\r\n \r\n \r\n \r\n );\r\n\r\n let finalContent = utils.generateTooltip(h, content, this.tooltip, this.tooltipLocation);\r\n\r\n return (\r\n
\r\n {finalContent}\r\n
\r\n );\r\n }\r\n catch(e) {\r\n utils.error('BasicSwitch Render failed', e);\r\n return
BasicSwitch Failed to Render {e}
;\r\n }\r\n \r\n }\r\n});","import Vue from 'vue';\r\nimport utils from '../../Shared/utils.jsx';\r\nimport BaseComponent from './BaseComponentMixin.jsx';\r\n\r\nVue.component('basic-tab', {\r\n mixins: [BaseComponent],\r\n data: function () {\r\n return {\r\n selected_tab: null,\r\n }\r\n },\r\n props: {},\r\n created() {\r\n for (let tabi = 0; tabi < this.controlData.TabControls.length; tabi++) {\r\n const tab = this.controlData.TabControls[tabi];\r\n if (tab.DisplayExpression)\r\n tab.todisplayexpn = utils.compileExpression(this, tab.DisplayExpression);\r\n if (tab.Title)\r\n tab.titleexpr = utils.compile(this, tab.Title);\r\n }\r\n },\r\n //Mounted Replaced with preRenderComplete\r\n computed: {\r\n styles: function () {\r\n return {\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n flexGrow: \"1\",\r\n ...this.sizeStyle,\r\n ...utils.resolveStyleHints(this.styleHints, this),\r\n overflowX: \"clip\",\r\n whiteSpace: \"nowrap\",\r\n };\r\n },\r\n bodystyles: function () {\r\n return {\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n flexGrow: \"1\",\r\n overflow: \"auto\",\r\n };\r\n },\r\n classes() {\r\n return {\r\n 'c-BasicTab': true, \r\n [`c-name-${this.Name}`]: true\r\n }\r\n },\r\n\r\n Tab: function () {\r\n // Public property\r\n const tab = this.controlData.TabControls[this.selected_tab];\r\n if (tab)\r\n return {\r\n Title: tab.titleexpr ? utils.evaluate(tab.titleexpr, this) : 'Untitled',\r\n Controls: tab.Controls,\r\n };\r\n else\r\n return {};\r\n },\r\n },\r\n methods: {\r\n preRenderComplete() {\r\n this.finishRenderHandler(this);\r\n },\r\n },\r\n render(h) {\r\n if (!this.todisplay)\r\n return null;\r\n\r\n try {\r\n const tabs = [];\r\n const tab_body = [];\r\n \r\n for (let tabi = 0; tabi < this.controlData.TabControls.length; tabi++) {\r\n const tab = this.controlData.TabControls[tabi];\r\n if (tab.todisplayexpn)\r\n if (!utils.evaluate(tab.todisplayexpn, this))\r\n continue;\r\n\r\n const title = ;\r\n\r\n tabs.push(\r\n \r\n {title}\r\n \r\n );\r\n \r\n const items = [];\r\n \r\n for (let i = 0; i < tab.Controls.length; i++) {\r\n const c = tab.Controls[i];\r\n \r\n if (!(typeof c === 'object'))\r\n continue;\r\n \r\n let DynamicControl = utils.getDynamicComponent(h, c);\r\n \r\n if (!DynamicControl)\r\n DynamicControl = 'default-unknown';\r\n \r\n if (!c.$objectId) c.$objectId = utils.generateUUID();\r\n \r\n let id = c.$objectId;\r\n \r\n items.push(\r\n \r\n \r\n );\r\n }\r\n \r\n tab_body.push(\r\n \r\n {items}\r\n \r\n );\r\n }\r\n \r\n return (\r\n \r\n this.selected_tab=index}>\r\n {tabs}\r\n \r\n \r\n \r\n {tab_body}\r\n \r\n \r\n );\r\n }\r\n catch (e) {\r\n utils.error('BasicTab Render failed', e);\r\n return
BasicTab Failed to Render {e}
;\r\n }\r\n }\r\n});","import Vue from 'vue';\r\nimport BaseComponent from './BaseComponentMixin.jsx';\r\nimport EventBus from '../event-bus.js';\r\n\r\nimport utils from '../../Shared/utils.jsx';\r\nimport methods from '../../Shared/methods';\r\n\r\nVue.component('basic-toggle', {\r\n mixins: [BaseComponent],\r\n data: function () {\r\n return {\r\n defaultEval: null,\r\n colorEval: null,\r\n tooltipEval: null,\r\n tooltipLocationEval: null,\r\n classEval: null,\r\n value: false\r\n }\r\n },\r\n props: {},\r\n created() {\r\n this.value = (utils.evaluate(utils.compile(this, this.controlData.Default), this) == 'true');\r\n },\r\n //Mounted Replaced with preRenderComplete\r\n computed: {\r\n ToggleState() {\r\n return this.value;\r\n },\r\n label() {\r\n if(this.value) \r\n return this.controlData.OnLabel ? this.controlData.OnLabel : ''\r\n else\r\n return this.controlData.OffLabel ? this.controlData.OffLabel : ''\r\n },\r\n color() {\r\n try {\r\n let theColor = 'primary';\r\n if(this.colorEval === null && this.controlData.OnColor)\r\n this.colorEval = utils.compile(this, this.controlData.OnColor);\r\n if(this.colorEval)\r\n theColor = utils.evaluate(this.colorEval, this);\r\n \r\n theColor = theColor || 'primary'\r\n \r\n // This helps with backwards compatibility for a version of Bootstrap that used the word 'default' to describe the secondary button\r\n if(theColor === 'default')\r\n return 'secondary';\r\n else if(theColor === 'danger')\r\n return 'error';\r\n return theColor;\r\n }\r\n catch (e) {\r\n utils.warn('Color could not evaluate expression: ' + this.controlData.OnColor + '; ' + e);\r\n return 'primary';\r\n }\r\n },\r\n tooltip() {\r\n try {\r\n if(this.tooltipEval === null && this.controlData.Tooltip)\r\n this.tooltipEval = utils.compile(this, this.Translate(this.controlData.Tooltip));\r\n if(this.tooltipEval)\r\n return utils.evaluate(this.tooltipEval, this);\r\n return '';\r\n }\r\n catch (e) {\r\n utils.warn('Tooltip could not evaluate expression: ' + this.controlData.Tooltip + '; ' + e);\r\n return '';\r\n }\r\n },\r\n tooltipLocation() {\r\n try {\r\n if(this.tooltipLocationEval === null && this.controlData.TooltipLocation)\r\n this.tooltipLocationEval = utils.compile(this, this.Translate(this.controlData.TooltipLocation));\r\n if(this.tooltipLocationEval)\r\n return utils.evaluate(this.tooltipLocationEval, this).split('-')[0].toLowerCase() || 'top';\r\n return 'top';\r\n }\r\n catch (e) {\r\n utils.warn('Tooltiplocation could not evaluate expression: ' + this.controlData.TooltipLocation + '; ' + e);\r\n return 'top';\r\n }\r\n },\r\n class() {\r\n try {\r\n if(this.classEval === null && this.controlData.Class)\r\n this.classEval = utils.compile(this, this.Translate(this.controlData.Class));\r\n if(this.classEval)\r\n return utils.evaluate(this.classEval, this).split('-')[0].toLowerCase() || 'top';\r\n return '';\r\n }\r\n catch (e) {\r\n utils.warn('Class could not evaluate expression: ' + this.controlData.Class + '; ' + e);\r\n return '';\r\n }\r\n }\r\n },\r\n methods: {\r\n async onChange(value) {\r\n await utils.executeAndCompileAllActions(this.controlData.Actions, { Value: value }, this);\r\n },\r\n preRenderComplete() {\r\n this.finishRenderHandler(this);\r\n },\r\n SetToggleState(value) {\r\n this.value = value;\r\n }\r\n },\r\n render(h) {\r\n if(!this.todisplay)\r\n return null;\r\n\r\n try {\r\n\r\n let content = (\r\n \r\n \r\n \r\n );\r\n\r\n let finalContent = utils.generateTooltip(h, content, this.tooltip, this.tooltipLocation);\r\n\r\n return (\r\n
\r\n {finalContent}\r\n
\r\n );\r\n }\r\n catch(e) {\r\n utils.error('BasicToggle Render failed', e);\r\n return
BasicToggle Failed to Render {e}
;\r\n }\r\n \r\n }\r\n});","import Vue from 'vue';\r\nimport BaseComponent from './BaseComponentMixin.jsx';\r\nimport EventBus from '../event-bus.js';\r\n\r\nimport utils from '../../Shared/utils.jsx';\r\nimport methods from '../../Shared/methods';\r\n\r\nVue.component('basic-tree-node', {\r\n props: {\r\n sourceData: {\r\n type: Object,\r\n default: () => {}\r\n },\r\n leaf: {\r\n type: Boolean,\r\n default: true\r\n },\r\n open: {\r\n type: Boolean, \r\n default: false\r\n },\r\n nodeTemplate: {\r\n type: Array,\r\n default: () => []\r\n },\r\n root: {\r\n type: Object, \r\n default: null\r\n },\r\n parent: {\r\n type: Object,\r\n default: null\r\n }\r\n },\r\n\r\n render(h) {\r\n //if(!this.leaf)\r\n // return (\r\n // {this.sourceData.Key}\r\n // )\r\n //else\r\n {\r\n let items = utils.generateItemsFromArray(h, this.parent, this.nodeTemplate, null, 'BasicTree');\r\n return (\r\n
\r\n {items}\r\n
\r\n )\r\n }\r\n }\r\n});\r\n\r\nVue.component('basic-tree', {\r\n mixins: [BaseComponent],\r\n //Created Replaced with preRenderComplete\r\n data() {\r\n return {\r\n sourceUrlEval: null,\r\n data: {},\r\n sourceRawInterpolatedEval: null,\r\n expandedNodeExpressionEval: null,\r\n selectedNodeExpressionEval: null,\r\n open: [],\r\n selectedNodeData: [],\r\n expandedNodeData: [],\r\n Node: {},\r\n }\r\n },\r\n watch: {\r\n sourceUrl: async function() {\r\n this.data = await utils.api.get(utils.evaluate(this.sourceUrlEval, this));\r\n }\r\n },\r\n computed: {\r\n sourceUrl() {\r\n return utils.evaluate(this.sourceUrlEval, this);\r\n },\r\n sourceRawInterpolated() {\r\n return utils.evaluateObject(this.sourceRawInterpolatedEval, this);\r\n },\r\n sourceData() {\r\n switch(this.controlData.SourceType) {\r\n case 'Url':\r\n case 'Raw': \r\n return this.data;\r\n case 'RawInterpolated': return this.sourceRawInterpolated;\r\n default: return [];\r\n }\r\n },\r\n expandedNodeExpression() {\r\n if(this.expandedNodeExpressionEval === null && this.controlData.ExpandedNodeExpression)\r\n this.expandedNodeExpressionEval = utils.compileExpression(this, this.controlData.ExpandedNodeExpression);\r\n if(this.expandedNodeExpressionEval)\r\n return utils.evaluate(this.expandedNodeExpressionEval, this);\r\n return '';\r\n },\r\n openNodes() {\r\n return this.findExpandedNodes(this.sourceData);\r\n },\r\n selectedNode() {\r\n if(this.selectedNodeExpressionEval === null && this.controlData.SelectedNodeExpressionEval)\r\n this.selectedNodeExpressionEval = utils.compileExpression(this, this.controlData.SelectedNodeExpressionEval)\r\n if(this.selectedNodeExpressionEval)\r\n return this.findSelectedNode(this.sourceData);\r\n return [];\r\n },\r\n styles() {\r\n return {\r\n ...utils.resolveStyleHints(this.styleHints, this),\r\n ...this.sizeStyle\r\n }\r\n }\r\n },\r\n methods: {\r\n async preRenderComplete() {\r\n switch(this.controlData.SourceType) {\r\n case 'Url':\r\n this.sourceUrlEval = utils.compile(this, this.controlData.SourceUrl);\r\n this.data = await utils.api.get(utils.evaluate(this.sourceUrlEval, this));\r\n break;\r\n case 'Raw': \r\n this.data = this.controlData.SourceRaw;\r\n break;\r\n case 'RawInterpolated':\r\n this.sourceRawInterpolatedEval = utils.compileObject(this, this.controlData.SourceRaw);\r\n break;\r\n }\r\n this.finishRenderHandler(this);\r\n },\r\n findSelectedNode(nodes) {\r\n nodes.forEach(node => {\r\n this.Node = node;\r\n if(utils.evaluate(this.selectedNodeExpressionEval, this))\r\n this.selectedNode = [node.Key];\r\n if(node[this.controlData.ChildArrayName] && node[this.controlData.ChildArrayName].length > 0)\r\n this.findSelectedNode(node[this.controlData.ChildArrayName])\r\n });\r\n this.Node = {};\r\n return;\r\n },\r\n findExpandedNodes(nodes) {\r\n let expandedNodes = new Set();\r\n this.findExpandedNodesRecursive(nodes, expandedNodes);\r\n this.Node = {};\r\n return Array.from(expandedNodes);\r\n },\r\n findExpandedNodesRecursive(nodes, expandedNodes) {\r\n nodes.forEach(node => {\r\n this.Node = node;\r\n if(this.expandedNodeExpression){\r\n expandedNodes.add(node.Key)\r\n this.findAncestorNodes(node, this.sourceData).forEach(item => expandedNodes.add(item));\r\n }\r\n // depth first traverse\r\n if(node[this.controlData.ChildArrayName] && node[this.controlData.ChildArrayName].length > 0)\r\n this.findExpandedNodesRecursive(node[this.controlData.ChildArrayName], expandedNodes);\r\n });\r\n },\r\n findAncestorNodes(node, nodes) {\r\n let ancestorNodes = new Set();\r\n this.findAncestorNodesRecursive(node, nodes, ancestorNodes);\r\n return Array.from(ancestorNodes);\r\n },\r\n findAncestorNodesRecursive(childNode, nodes, ancestorNodes) {\r\n nodes.forEach(node => {\r\n if(node.Key === childNode.Key)\r\n return;\r\n else {\r\n if(node[this.controlData.ChildArrayName] && node[this.controlData.ChildArrayName].length > 0) {\r\n ancestorNodes.add(node.Key);\r\n this.findAncestorNodesRecursive(childNode, node[this.controlData.ChildArrayName], ancestorNodes);\r\n }\r\n else \r\n return;\r\n }\r\n })\r\n },\r\n },\r\n props: {},\r\n render(h) {\r\n if(!this.todisplay)\r\n return null;\r\n try {\r\n let treeView = h('v-treeview', {\r\n props: {\r\n activatable: true,\r\n hoverable: true,\r\n transition: true,\r\n openOnClick: true,\r\n dense: true,\r\n class: 'ma-1',\r\n items: this.sourceData || [],\r\n open: this.openNodes,\r\n itemKey: 'Key',\r\n itemText: 'Key',\r\n itemChildren: this.controlData.ChildArrayName || 'children'\r\n },\r\n scopedSlots: {\r\n label: ({ item, leaf, open }) => \r\n \r\n },\r\n });\r\n\r\n // JSX cannot handle an event with a colon in the middle (update:active) so I have to declare this manually:\r\n return(\r\n \r\n {treeView}\r\n \r\n ) \r\n }\r\n catch (e) {\r\n utils.error('BasicTree Render failed', e);\r\n return
BasicTree Failed to Render {e}
;\r\n }\r\n }\r\n});","import Vue from 'vue';\r\nimport BaseComponent from './BaseComponentMixin.jsx';\r\nimport utils from '../../Shared/utils.jsx';\r\nimport EventBus from '../event-bus.js';\r\n\r\nVue.component('basic-popup-menu', {\r\n mixins: [BaseComponent],\r\n data: function () {\r\n return {\r\n textrenderer: null,\r\n iconrenderer: null,\r\n iconpositioner: null,\r\n icongapeval: null,\r\n flipHorizontallyEval: null,\r\n flipVerticallyEval: null,\r\n borderEval: null,\r\n animationEval: null,\r\n colorEval: null,\r\n cssClassEval: null,\r\n tooltiprenderer: null,\r\n tooltipLocationEval: null,\r\n popupMenuPlacementEval: null,\r\n popupMenuBackgroundColorEval: null,\r\n popupMenuFontColorEval: null,\r\n popupMenuWidthEval: null,\r\n popupMenuMinHeightEval: null,\r\n popupMenuMaxHeightEval: null,\r\n popupMenuBodyPaddingEval: null,\r\n isDefaultEval: null,\r\n isdisabledeval: null,\r\n\r\n menushowing: false,\r\n }\r\n },\r\n props: {},\r\n computed: {\r\n text() {\r\n if(this.controlData.Text)\r\n return (\r\n \r\n );\r\n return null;\r\n },\r\n icon() {\r\n if(this.iconrenderer === null)\r\n this.iconrenderer = utils.compile(this, this.controlData.Icon);\r\n let icon = utils.evaluate(this.iconrenderer, this);\r\n\r\n return icon;\r\n },\r\n iconPosition() {\r\n if(this.iconpositioner === null && this.controlData.IconPosition)\r\n this.iconpositioner = utils.compile(this, this.controlData.IconPosition);\r\n if(this.iconpositioner)\r\n return utils.evaluate(this.iconpositioner, this);\r\n return 'right';\r\n },\r\n iconGap(){\r\n if(this.icongapeval === null && this.controlData.IconGap)\r\n this.icongapeval = utils.compile(this, this.controlData.IconGap);\r\n if(this.icongapeval)\r\n return utils.evaluate(this.icongapeval, this);\r\n return 10;\r\n },\r\n flipHorizontally() {\r\n if(this.flipHorizontallyEval === null && this.controlData.FlipHorizontally)\r\n this.flipHorizontallyEval = utils.compile(this, this.controlData.FlipHorizontally);\r\n if(this.flipHorizontallyEval)\r\n return utils.evaluate(this.flipHorizontallyEval, this);\r\n return false;\r\n },\r\n flipVertically() {\r\n if(this.flipVerticallyEval === null && this.controlData.flipVertically)\r\n this.flipVerticallyEval = utils.compile(this, this.controlData.flipVertically);\r\n if(this.flipVerticallyEval)\r\n return utils.evaluate(this.flipVerticallyEval, this);\r\n return false;\r\n },\r\n border() {\r\n if(this.borderEval === null && this.controlData.Border)\r\n this.borderEval = utils.compile(this, this.controlData.Border);\r\n if(this.borderEval)\r\n return utils.evaluate(this.borderEval, this);\r\n return false;\r\n },\r\n animation() {\r\n if(this.animationEval === null && this.controlData.Animation)\r\n this.animationEval = utils.compile(this, this.controlData.Animation);\r\n if(this.animationEval)\r\n return utils.evaluate(this.animationEval, this);\r\n return 'None';\r\n },\r\n color() {\r\n let theColor = 'secondary';\r\n if(this.colorEval === null && this.controlData.Color)\r\n this.colorEval = utils.compile(this, this.controlData.Color);\r\n if(this.colorEval)\r\n theColor = utils.evaluate(this.colorEval, this);\r\n \r\n if(this.isOutlined && theColor)\r\n theColor = theColor.replace('outline-', '');\r\n else \r\n theColor = theColor || 'secondary';\r\n // This helps with backwards compatibility for a version of Bootstrap that used the word 'default' to describe the secondary button\r\n return theColor === 'default' ? 'secondary' : theColor;\r\n },\r\n cssClass() {\r\n if(this.cssClassEval === null && this.controlData.CssClass)\r\n this.cssClassEval = utils.compile(this, this.controlData.CssClass);\r\n if(this.cssClassEval)\r\n return utils.evaluate(this.cssClassEval, this);\r\n return '';\r\n },\r\n tooltip() {\r\n if(this.tooltiprenderer === null && this.controlData.Tooltip)\r\n this.tooltiprenderer = utils.compile(this, this.Translate(this.controlData.Tooltip));\r\n if(this.tooltiprenderer) {\r\n return utils.evaluate(this.tooltiprenderer, this);\r\n }\r\n return '';\r\n },\r\n tooltipLocation() {\r\n let location = '';\r\n if(this.tooltipLocationEval === null && this.controlData.TooltipLocation)\r\n this.tooltipLocationEval = utils.compile(this, this.controlData.TooltipLocation);\r\n if(this.tooltipLocationEval) \r\n location = utils.evaluate(this.tooltipLocationEval, this);\r\n \r\n return location.split('-')[0].toLowerCase() || 'top';\r\n },\r\n popupMenuPlacement() {\r\n if(this.popupMenuPlacementEval === null && this.controlData.PopupMenuPlacement)\r\n this.popupMenuPlacementEval = utils.compile(this, this.controlData.PopupMenuPlacement);\r\n if(this.popupMenuPlacementEval)\r\n return utils.evaluate(this.popupMenuPlacementEval, this);\r\n return 'bottom';\r\n },\r\n popupMenuBackgroundColor() {\r\n if(this.popupMenuBackgroundColorEval === null && this.controlData.PopupMenuBackgroundColor)\r\n this.popupMenuBackgroundColorEval = utils.compile(this, this.controlData.PopupMenuBackgroundColor);\r\n if(this.popupMenuBackgroundColorEval)\r\n return utils.evaluate(this.popupMenuBackgroundColorEval, this);\r\n return '';\r\n },\r\n popupMenuFontColor() {\r\n if(this.popupMenuFontColorEval === null && this.controlData.PopupMenuFontColor)\r\n this.popupMenuFontColorEval = utils.compile(this, this.controlData.PopupMenuFontColor);\r\n if(this.popupMenuFontColorEval)\r\n return utils.evaluate(this.popupMenuFontColorEval, this);\r\n return '';\r\n },\r\n popupMenuWidth() {\r\n if(this.popupMenuWidthEval === null && this.controlData.PopupMenuWidth)\r\n this.popupMenuWidthEval = utils.compile(this, this.controlData.PopupMenuWidth);\r\n if(this.popupMenuWidthEval)\r\n return utils.evaluate(this.popupMenuWidthEval, this);\r\n return '';\r\n },\r\n popupMenuMinHeight() {\r\n if (this.popupMenuMinHeightEval === null && this.controlData.PopupMenuMinHeight)\r\n this.popupMenuMinHeightEval = utils.compile(this, this.controlData.PopupMenuMinHeight);\r\n if (this.popupMenuMinHeightEval)\r\n return utils.evaluate(this.popupMenuMinHeightEval, this);\r\n return '';\r\n },\r\n popupMenuMaxHeight() {\r\n if (this.popupMenuMaxHeightEval === null && this.controlData.PopupMenuMaxHeight)\r\n this.popupMenuMaxHeightEval = utils.compile(this, this.controlData.PopupMenuMaxHeight);\r\n if (this.popupMenuMaxHeightEval)\r\n return utils.evaluate(this.popupMenuMaxHeightEval, this);\r\n return 'auto';\r\n },\r\n popupMenuBodyPadding() {\r\n if(this.popupMenuBodyPaddingEval === null && this.controlData.PopupMenuBodyPadding)\r\n this.popupMenuBodyPaddingEval = utils.compile(this, this.controlData.PopupMenuBodyPadding);\r\n if(this.popupMenuBodyPaddingEval)\r\n return utils.evaluate(this.popupMenuBodyPaddingEval, this);\r\n return '';\r\n },\r\n isDefault() {\r\n if(this.isDefaultEval === null && this.controlData.IsDefault)\r\n this.isDefaultEval = utils.compile(this, this.controlData.IsDefault);\r\n if(this.isDefaultEval)\r\n return utils.evaluate(this.isDefaultEval, this);\r\n return false;\r\n },\r\n isdisabled() {\r\n if(this.isdisabledeval === null && this.controlData.IsDisabled)\r\n this.isdisabledeval = utils.compile(this, this.controlData.IsDisabled);\r\n if(this.isdisabledeval)\r\n return utils.evaluate(this.isdisabledeval, this);\r\n return false;\r\n },\r\n isOutlined() {\r\n return this.controlData.Color && this.controlData.Color.startsWith('outline-');\r\n },\r\n buttonClasses() {\r\n let classes = {\r\n 'ThemeRightConnector': this.themes.rightConnector,\r\n 'ThemeLeftConnector': this.themes.leftConnector,\r\n };\r\n\r\n classes[this.cssClass] = true;\r\n\r\n return classes;\r\n },\r\n iconClasses() {\r\n return {\r\n 'mdi mdi-flip-vertical': this.flipVertically, \r\n 'mdi mdi-flip-horizontal': this.flipHorizontally,\r\n 'mdi mdi-border-all-variant': this.border,\r\n 'mdi-animate-spin': this.animation === 'Spin',\r\n 'mdi-animate-pulse': this.animation === 'Pulse',\r\n }\r\n },\r\n themes() {\r\n return {\r\n flat: this.controlData.Themes ? this.controlData.Themes.includes(\"Flat\") || this.controlData.Themes.includes(\"FlatWhite\") || this.controlData.Themes.includes(\"Transparent\") : false,\r\n small: this.controlData.Themes ? this.controlData.Themes.includes(\"Condensed\") || this.controlData.Themes.includes(\"CondensedBordered\") : false,\r\n condensedBordered: this.controlData.Themes ? this.controlData.Themes.includes(\"CondensedBordered\") : false,\r\n transparent: this.controlData.Themes ? this.controlData.Themes.includes(\"Transparent\") : false,\r\n leftConnector: this.controlData.Themes ? this.controlData.Themes.includes(\"LeftConnector\") : false,\r\n rightConnector: this.controlData.Themes ? this.controlData.Themes.includes(\"RightConnector\") : false,\r\n }\r\n },\r\n styles() {\r\n return {\r\n ...utils.resolveStyleHints(this.styleHints, this),\r\n overflow: \"hidden\",\r\n whiteSpace: \"nowrap\",\r\n };\r\n }\r\n },\r\n created() {\r\n // Subscribe to a UIAction_Close event, which then emits the close event\r\n // which is handled within ActionService.jsx, where it imbeds \r\n this.$on('Action-Close', this.performClose);\r\n\r\n if (this.controlData.Name) {\r\n this.$on(`Action-Close:${this.controlData.Name}`, this.performClose);\r\n EventBus.$on(`Action-Close:${this.controlData.Name}`, this.performClose);\r\n }\r\n },\r\n //Mounted Replaced with preRenderComplete\r\n methods: {\r\n async performClose(action) {\r\n utils.log(' ** Close Action Received by BasicPopupMenu **');\r\n\r\n this.menushowing = false;\r\n\r\n try {\r\n await utils.success(action);\r\n } catch (e) { }\r\n\r\n // Complete the promise for the executeAction method\r\n action.FinishFunc(true);\r\n },\r\n async menuStateChange(value) {\r\n this.menushowing = value;\r\n\r\n if (value && this.controlData.Actions && this.controlData.Actions.length)\r\n await utils.executeAndCompileAllActions(this.controlData.Actions, null, this);\r\n },\r\n async doClick(e) {\r\n e.cancelBubble = true;\r\n e.stopPropagation();\r\n\r\n if(this.controlData.Actions.length)\r\n await utils.executeAndCompileAllActions(this.controlData.Actions, null, this);\r\n },\r\n preRenderComplete() {\r\n this.finishRenderHandler(this);\r\n },\r\n },\r\n render(h) {\r\n try {\r\n if (!this.todisplay)\r\n return null;\r\n \r\n let content = [];\r\n \r\n if (this.text && this.icon) {\r\n if (this.iconPosition === 'Left') content.push({this.icon});\r\n content.push(this.text);\r\n if (!this.iconPosition || this.iconPosition === 'Right') content.push({this.icon});\r\n }\r\n else if (this.text)\r\n content.push(this.text);\r\n else if (this.icon)\r\n content.push({this.icon});\r\n \r\n const scopedSlots = {\r\n activator: ({ on, attrs }) => {\r\n let button = (\r\n this.doClick(e)}\r\n type=\"button\"\r\n disabled={this.isdisabled == 'true'}\r\n is-default={this.isDefault}\r\n block={this.sizeOptions && this.sizeOptions.Width && this.sizeOptions.Width.Mode === 'Fill'}\r\n {...{ on }}\r\n {...{ attrs }}>\r\n {content}\r\n \r\n );\r\n\r\n return utils.generateTooltip(h, button, this.tooltip, this.tooltipLocation);\r\n }\r\n };\r\n \r\n let menuContent = utils.generateItemsFromArray(h, this, this.controlData.Controls || [], null, 'BasicPopupMenu');\r\n let titleContent = [];\r\n let title = null;\r\n \r\n if (this.controlData.PopupMenuTitle?.Text && this.controlData.PopupMenuTitle?.Icon) {\r\n if (this.controlData.PopupMenuTitle?.IconPosition === 'Left') titleContent.push({this.controlData.PopupMenuTitle.Icon});\r\n titleContent.push(this.controlData.PopupMenuTitle.Text);\r\n if (!this.controlData.PopupMenuTitle?.IconPosition || this.controlData.PopupMenuTitle?.IconPosition === 'Right') titleContent.push({this.controlData.PopupMenuTitle.Icon});\r\n }\r\n else if (this.controlData.PopupMenuTitle?.Text)\r\n titleContent.push(this.controlData.PopupMenuTitle?.Text);\r\n else if (this.controlData.PopupMenuTitle?.Icon)\r\n titleContent.push({this.controlData.PopupMenuTitle?.Icon});\r\n\r\n if(titleContent.length)\r\n title =
{titleContent}
;\r\n \r\n return (\r\n \r\n this.menuStateChange(value)}\r\n offset-y={this.popupMenuPlacement === 'top' || this.popupMenuPlacement === 'bottom' || this.popupMenuPlacement === 'right-top'}\r\n min-width=\"0\"\r\n max-height={this.popupMenuMaxHeight}\r\n disabled={this.isdisabled == 'true'}\r\n bottom={this.popupMenuPlacement === 'bottom'}\r\n top={this.popupMenuPlacement === 'top' || this.popupMenuPlacement === 'right-top'}\r\n left={this.popupMenuPlacement === 'left'}\r\n right={this.popupMenuPlacement === 'right' || this.popupMenuPlacement === 'right-top'}\r\n offset-x={this.popupMenuPlacement === 'right' || this.popupMenuPlacement === 'left' || this.popupMenuPlacement === 'right-top'}\r\n scopedSlots={scopedSlots}\r\n close-on-content-click={false}\r\n >\r\n \r\n
\r\n {title}\r\n {menuContent}\r\n
\r\n
\r\n \r\n \r\n );\r\n }\r\n catch (e) {\r\n utils.error('BasicPopupMenu Render failed', e);\r\n return
BasicPopupMenu Failed to Render {e}
;\r\n }\r\n }\r\n});","import Vue from 'vue';\r\nimport BaseComponent from './BaseComponentMixin.jsx';\r\nimport EventBus from '../event-bus.js';\r\nimport utils from '../../Shared/utils.jsx';\r\n\r\nVue.component('broadcast-listener', {\r\n mixins: [BaseComponent],\r\n data: function () {\r\n return {\r\n actions: [],\r\n actions_compiled: false,\r\n }\r\n },\r\n props: {},\r\n computed: {\r\n },\r\n created() {\r\n if (this.controlData.MessageType === 'System' && this.controlData.MessageName) {\r\n EventBus.$on(this.controlData.MessageName, this.invokeSystemActions);\r\n this.$on(this.controlData.MessageName, this.invokeSystemActions);\r\n }\r\n else if (this.controlData.MessageType === 'Action' && this.controlData.ActionType) {\r\n EventBus.$on(`Action-${this.controlData.ActionType}`, this.invokeActions);\r\n this.$on(`Action-${this.controlData.ActionType}`, this.invokeActions);\r\n if (this.controlData.Name)\r\n EventBus.$on(`Action-${this.controlData.ActionType}:${this.controlData.Name}`, this.invokeActions);\r\n }\r\n },\r\n //Mounted Replaced with preRenderComplete\r\n destroyed() {\r\n if (this.controlData.MessageType === 'System' && this.controlData.MessageName) {\r\n EventBus.$off(this.controlData.MessageName, this.invokeSystemActions);\r\n this.$off(this.controlData.MessageName, this.invokeSystemActions);\r\n }\r\n else if (this.controlData.MessageType === 'Action' && this.controlData.ActionType) {\r\n EventBus.$off(`Action-${this.controlData.ActionType}`, this.invokeActions);\r\n this.$off(`Action-${this.controlData.ActionType}`, this.invokeActions);\r\n if (this.controlData.Name)\r\n EventBus.$off(`Action-${this.controlData.ActionType}:${this.controlData.Name}`, this.invokeActions);\r\n }\r\n },\r\n methods: {\r\n async invokeSystemActions(data) {\r\n await utils.executeAndCompileAllActions(this.controlData.Actions, data, data?.context || this);\r\n },\r\n async invokeActions(action) {\r\n if (this.controlData.ActionType != 'Message' || (action && action.ActionData.Message && action.ActionData.Message == this.controlData.Message)) {\r\n const message = action.message ? utils.evaluate(action.message, action.context) : action?.Message;\r\n const messagedata = action.messagedata ? utils.evaluateObject(action.messagedata, action.context) : action?.ActionData;\r\n const input = {\r\n Message: message,\r\n MessageData: messagedata,\r\n }\r\n await utils.executeAndCompileAllActions(this.controlData.Actions, input, this); // !!! help, I drowning !!! -- was: action?.context || this);\r\n }\r\n },\r\n preRenderComplete() {\r\n this.finishRenderHandler(this);\r\n },\r\n },\r\n render(h) {\r\n return null;\r\n }\r\n});","export default window.careHelpfulFunctions;","import Vue from 'vue';\nimport BaseComponent from './BaseComponentMixin.jsx';\nimport utils from '../../Shared/utils.jsx';\nimport Calendar from '@/Application/components/vuecontrols/calendar.vue';\nimport careHelpfulFunctions from '@/Shared/careHelpfulFunctions';\n\nimport common from './vuecontrols/advancedHistory/common.js';\n\nVue.component('calendar-picker', {\n mixins: [BaseComponent],\n components: {\n Calendar\n },\n data: function () {\n return {\n defaultTime: null,\n startDate: null,\n endDate: null,\n }\n },\n created() {\n this.startDate = common.getRelativeDateFromFilter('now-1y/d');\n this.endDate = common.getRelativeDateFromFilter('now', true);\n\n this.defaultTime = JSON.stringify({ startDate: this.startDate, endDate: this.endDate });\n },\n computed: {\n styles() {\n return {\n overflow: \"hidden\",\n whiteSpace: \"nowrap\",\n paddingTop: \"3px\",\n //marginLeft: \"8px\",\n ...utils.resolveStyleHints(this.styleHints, this),\n };\n },\n width() {\n let theWidth = \"430px\";\n if (!this.widthEval && this.controlData.Width)\n this.widthEval = utils.compile(this, this.controlData.Width);\n if (this.widthEval) theWidth = utils.evaluate(this.widthEval, this);\n return theWidth;\n },\n isActive() {\n if (!this.isactiveEval && this.controlData.EnabledExpression)\n this.isactiveEval = utils.compileExpression(this, this.controlData.EnabledExpression);\n if (this.isactiveEval)\n return utils.evaluate(this.isactiveEval, this);\n return true;\n },\n StartDate() {\n return this.startDate;\n },\n EndDate() {\n return this.endDate;\n },\n },\n methods: {\n async preRenderComplete() {\n this.finishRenderHandler(this);\n },\n async applyDateRangeHandler(range) {\n this.startDate = range.startDate;\n this.endDate = range.endDate;\n\n await utils.executeAndCompileAllActions(this.controlData.Actions, { StartDate: this.startDate, EndDate: this.EndDate }, this);\n },\n },\n render(h) {\n if(!this.todisplay)\n return null;\n\n try {\n let cal = (\n \n \n );\n\n return (\n \n {cal}\n \n );\n }\n catch (e) {\n utils.error('CalendarPicker Render failed', e);\n return
CalendarPicker Failed to Render {e}
;\n }\n }\n});","import Vue from 'vue';\r\nimport BaseComponent from './BaseComponentMixin.jsx';\r\nimport EventBus from '../event-bus.js';\r\n\r\nimport utils from '../../Shared/utils.jsx';\r\nimport methods from '../../Shared/methods';\r\n\r\n/**\r\n * Not Implemented:\r\n * *RoundCards\r\n * *ShadowColor\r\n */\r\n\r\nVue.component('card-list-item', {\r\n mixins: [BaseComponent],\r\n props: {\r\n sourceData: null,\r\n listCardTemplate: {},\r\n initialSelectedCardEval: null,\r\n selectCardOnClick: false,\r\n clickActions: null\r\n },\r\n data() {\r\n return {\r\n labelEval: null,\r\n middlePayloadEval: null,\r\n rightPayloadEval: null,\r\n colorEval: null,\r\n cssClassEval: null,\r\n leftIconEval: null,\r\n rightIconEval: null,\r\n listHeightUnitEval: null,\r\n listHeightEval: null,\r\n paddingEval: null,\r\n lineHeightEval: null,\r\n roundCardsEval: null,\r\n hoverColorEval: null,\r\n shadowColorEval: null,\r\n hovering: false\r\n }\r\n },\r\n mounted() {\r\n if(this.initialSelectedCardEval && utils.evaluate(this.initialSelectedCardEval, this))\r\n this.$emit('selected');\r\n\r\n this.renderComplete();\r\n },\r\n computed: {\r\n label() {\r\n try {\r\n if(this.labelEval === null && this.listCardTemplate.Label)\r\n this.labelEval = utils.compile(this, this.listCardTemplate.Label);\r\n if(this.labelEval)\r\n return utils.evaluate(this.labelEval, this);\r\n return '';\r\n }\r\n catch (e) {\r\n utils.warn('Label could not evaluate expression: ' + this.listCardTemplate.Label + '; ' + e);\r\n return '';\r\n }\r\n },\r\n middlePayload() {\r\n if(this.listCardTemplate.MiddlePayload)\r\n return this.listCardTemplate.MiddlePayload;\r\n return '';\r\n },\r\n rightPayload() {\r\n if(this.listCardTemplate.RightPayload)\r\n return this.listCardTemplate.RightPayload;\r\n return '';\r\n },\r\n color() {\r\n try {\r\n if(this.colorEval === null && this.listCardTemplate.Color)\r\n this.colorEval = utils.compile(this, this.listCardTemplate.Color);\r\n if(this.colorEval)\r\n return utils.evaluate(this.colorEval, this);\r\n return '';\r\n }\r\n catch (e) {\r\n utils.warn('Color could not evaluate expression: ' + this.listCardTemplate.Color + '; ' + e);\r\n return '';\r\n }\r\n },\r\n cssClass() {\r\n try {\r\n if(this.cssClassEval === null && this.listCardTemplate.CssClass)\r\n this.cssClassEval = utils.compile(this, this.listCardTemplate.CssClass);\r\n if(this.cssClassEval)\r\n return utils.evaluate(this.cssClassEval, this);\r\n return '';\r\n }\r\n catch (e) {\r\n utils.warn('CssClass could not evaluate expression: ' + this.listCardTemplate.CssClass + '; ' + e);\r\n return '';\r\n }\r\n },\r\n leftIcon() {\r\n try {\r\n if(this.leftIconEval === null && this.listCardTemplate.LeftIcon)\r\n this.leftIconEval = utils.compile(this, this.listCardTemplate.LeftIcon);\r\n if(this.leftIconEval)\r\n return utils.evaluate(this.leftIconEval, this);\r\n return '';\r\n }\r\n catch (e) {\r\n utils.warn('LeftIcon could not evaluate expression: ' + this.listCardTemplate.LeftIcon + '; ' + e);\r\n return '';\r\n }\r\n },\r\n rightIcon() {\r\n try {\r\n if(this.rightIconEval === null && this.listCardTemplate.RightIcon)\r\n this.rightIconEval = utils.compile(this, this.listCardTemplate.RightIcon);\r\n if(this.rightIconEval)\r\n return utils.evaluate(this.rightIconEval, this);\r\n return '';\r\n }\r\n catch (e) {\r\n utils.warn('RightIcon could not evaluate expression: ' + this.listCardTemplate.RightIcon + '; ' + e);\r\n return '';\r\n }\r\n },\r\n padding() {\r\n try {\r\n if(this.paddingEval === null && this.listCardTemplate.Padding)\r\n this.paddingEval = utils.compile(this, this.listCardTemplate.Padding);\r\n if(this.paddingEval)\r\n return utils.evaluate(this.paddingEval, this);\r\n return 0;\r\n }\r\n catch (e) {\r\n utils.warn('Padding could not evaluate expression: ' + this.listCardTemplate.Padding + '; ' + e);\r\n return 0;\r\n }\r\n },\r\n hoverColor() {\r\n try {\r\n if(this.hoverColorEval === null && this.listCardTemplate.HoverColor)\r\n this.hoverColorEval = utils.compile(this, this.listCardTemplate.HoverColor);\r\n if(this.hoverColorEval)\r\n return utils.evaluate(this.hoverColorEval, this);\r\n return '';\r\n }\r\n catch (e) {\r\n utils.warn('HoverColor could not evaluate expression: ' + this.listCardTemplate.HoverColor + '; ' + e);\r\n return '';\r\n }\r\n }\r\n },\r\n methods: {\r\n mouseEnter() {\r\n this.hovering = true;\r\n },\r\n mouseLeave() {\r\n this.hovering = false;\r\n },\r\n async onClick(e) {\r\n if(this.selectCardOnClick)\r\n this.$emit('selected');\r\n\r\n if(this.clickActions)\r\n utils.executeAndCompileAllActions(this.clickActions, {Value: this.sourceData}, this); \r\n \r\n this.$emit('click', e);\r\n }\r\n },\r\n render() {\r\n let content = [];\r\n if(this.label)\r\n content.push((\r\n \r\n {this.label}\r\n \r\n ));\r\n \r\n if(this.middlePayload || this.rightPayload || this.leftIcon || this.rightIcon) {\r\n let cardTextContent = [];\r\n\r\n if(this.leftIcon)\r\n cardTextContent.push((\r\n \r\n {this.leftIcon}\r\n \r\n ));\r\n\r\n if(this.middlePayload)\r\n cardTextContent.push((\r\n \r\n \r\n \r\n ));\r\n \r\n if(this.rightPayload)\r\n cardTextContent.push((\r\n \r\n \r\n \r\n ));\r\n\r\n if(this.rightIcon)\r\n cardTextContent.push((\r\n \r\n {this.rightIcon}\r\n \r\n ));\r\n\r\n content.push((\r\n \r\n {cardTextContent}\r\n \r\n ));\r\n }\r\n\r\n return (\r\n \r\n {content}\r\n \r\n );\r\n }\r\n})\r\n\r\nVue.component('card-list', {\r\n mixins: [BaseComponent],\r\n data() {\r\n return {\r\n sourceUrlEval: null,\r\n sourceRawInterpolatedEval: null,\r\n data: null,\r\n actAsDropdownEval: null,\r\n initialSelectedCardEval: null,\r\n selectCardOnClickEval: null,\r\n selectedIndex: 0,\r\n menushowing: false\r\n }\r\n },\r\n async created() {\r\n switch(this.controlData.SourceType.toLowerCase()) {\r\n case 'url': {\r\n this.sourceUrlEval = utils.compile(this, this.controlData.SourceURL);\r\n await this.getSourceUrl();\r\n break;\r\n }\r\n case 'rawinterpolated':\r\n case 'raw': {\r\n this.sourceRawInterpolatedEval = utils.compileObject(this, this.controlData.Source);\r\n break;\r\n }\r\n }\r\n\r\n if(this.controlData.InitialSelectedCardExpression)\r\n this.initialSelectedCardEval = utils.compile(this, this.controlData.InitialSelectedCardExpression);\r\n\r\n this.renderComplete();\r\n },\r\n //Mounted Replaced with preRenderComplete\r\n computed: {\r\n totalItems() {\r\n return this.source.length + 1;\r\n },\r\n sourceUrl() {\r\n try {\r\n return utils.evaluate(this.sourceUrlEval, this) || [];\r\n }\r\n catch(err) {\r\n return [];\r\n }\r\n },\r\n sourceRawInterpolated(){\r\n try {\r\n return utils.evaluateObject(this.sourceRawInterpolatedEval, this) || [];\r\n }\r\n catch(err) {\r\n return [];\r\n }\r\n },\r\n source() {\r\n switch(this.controlData.SourceType.toLowerCase()) {\r\n case 'url':\r\n return this.data;\r\n case 'raw': \r\n case 'rawinterpolated': return this.sourceRawInterpolated;\r\n default: return [];\r\n }\r\n },\r\n actAsDropdown() {\r\n try {\r\n if(this.actAsDropdownEval === null && this.controlData.ActAsDropdown)\r\n this.actAsDropdownEval = utils.compile(this, this.controlData.ActAsDropdown);\r\n if(this.actAsDropdownEval)\r\n return utils.evaluate(this.actAsDropdownEval, this);\r\n return false;\r\n }\r\n catch (e) {\r\n utils.warn('ActAsDropdown could not evaluate expression: ' + this.controlData.ActAsDropdown + '; ' + e);\r\n return false;\r\n }\r\n },\r\n selectCardOnClick() {\r\n try {\r\n if(this.selectCardOnClickEval === null && this.controlData.SelectCardOnClick)\r\n this.selectCardOnClickEval = utils.compile(this, this.controlData.SelectCardOnClick);\r\n if(this.selectCardOnClickEval)\r\n return utils.evaluate(this.selectCardOnClickEval, this);\r\n return false;\r\n }\r\n catch (e) {\r\n utils.warn('SelectCardOnClick could not evaluate expression: ' + this.controlData.SelectCardOnClick + '; ' + e);\r\n return false;\r\n }\r\n },\r\n selectedSourceData() {\r\n return this.source[this.selectedIndex];\r\n }\r\n },\r\n methods: {\r\n preRenderComplete() {\r\n this.finishRenderHandler(this);\r\n },\r\n async getSourceUrl() {\r\n this.data = await utils.api.get(this.sourceUrl);\r\n },\r\n onSelected(index) {\r\n this.selectedIndex = index\r\n }\r\n },\r\n props: {\r\n },\r\n\r\n render(h) {\r\n try {\r\n if (!this.todisplay)\r\n return null;\r\n\r\n let items = this.source.map((sourceData, index) => {\r\n return (\r\n this.onSelected(index)}\r\n >\r\n );\r\n });\r\n\r\n let content = null;\r\n if(this.actAsDropdown) {\r\n const scopedSlots = {\r\n activator: ({ on, attrs }) => {\r\n return (\r\n \r\n \r\n );\r\n }\r\n };\r\n\r\n content = (\r\n this.menushowing = value}\r\n scopedSlots={scopedSlots}\r\n offset-y\r\n eager\r\n >\r\n \r\n {items}\r\n \r\n \r\n );\r\n }\r\n else \r\n content = items;\r\n \r\n return (\r\n
\r\n {content}\r\n
\r\n );\r\n }\r\n catch(e) {\r\n utils.error('CardList Render failed', e);\r\n return
CardList Failed to Render {e}
;\r\n }\r\n }\r\n});","import Vue from 'vue';\r\nimport Vuetify from 'vuetify';\r\nimport utils from '../../Shared/utils.jsx';\r\nimport Bar from '../../Assets/Bar.png';\r\nimport BarWithLine from '../../Assets/BarWithLine.png';\r\nimport BlankCard from '../../Assets/BlankCard.jpg';\r\nimport Donut from '../../Assets/Donut.png';\r\nimport Numeric from '../../Assets/Numeric.png';\r\nimport Table from '../../Assets/Table.png';\r\n\r\nVue.component('card-browser', {\r\n data: () => ({\r\n selected_tab: 0,\r\n dashboardCards: [],\r\n reportCards: [],\r\n filter: '',\r\n selectedCardId: '',\r\n imageMap: {\r\n \"Bar\": Bar,\r\n \"BarWithLine\": BarWithLine,\r\n \"Donut\": Donut,\r\n \"Numeric\": Numeric,\r\n \"Table\": Table,\r\n }\r\n }),\r\n props: {\r\n confirm: null,\r\n cancel: null,\r\n },\r\n async created() {},\r\n mounted() {\r\n this.Refresh();\r\n },\r\n methods: {\r\n async Refresh() {\r\n var allCards = await utils.api.get('Apps/Platform/Schema/RealTime/v1/WidgetDefinition/ListAllPossibleByID');\r\n var dCards = allCards.DashboardCards;\r\n await this.getThumbnails(dCards);\r\n this.dashboardCards = dCards;\r\n\r\n this.reportCards = allCards.ReportCards;\r\n \r\n },\r\n returnControl(id, title) {\r\n this.confirm(id, title);\r\n this.selectedCardId = null;\r\n },\r\n search(value) {\r\n this.filter = value;\r\n },\r\n highlightCard(card) {\r\n this.selectedCardId = card.ID;\r\n },\r\n select() {\r\n if(this.dashboardCards.length == 0)\r\n return;\r\n \r\n let selectedCard = this.dashboardCards.find(c => c.ID == this.selectedCardId);\r\n if(selectedCard && !selectedCard?.UserControl)\r\n return;\r\n else if (!selectedCard) {\r\n selectedCard = this.reportCards.find(c => c.ID == this.selectedCardId);\r\n if(!selectedCard)\r\n return;\r\n }\r\n\r\n this.confirm(selectedCard);\r\n this.selectedCardId = null;\r\n },\r\n async getThumbnails(widgetDefs){\r\n widgetDefs.forEach(w => {\r\n w.thumbnail = this.imageMap[w.Image] || BlankCard;\r\n })\r\n \r\n return;\r\n },\r\n getCardStyle(card){\r\n let style = {};\r\n if(card.ID == this.selectedCardId)\r\n {\r\n style = {\r\n border: \"2px solid var(--v-primaryActive-base)\"\r\n }\r\n }\r\n return style;\r\n },\r\n },\r\n render(h) {\r\n let ditems;\r\n if (this.dashboardCards.length > 0){\r\n ditems = this.dashboardCards.filter(c => ((!this.filter || c.Name.toLowerCase().includes(this.filter.toLowerCase())) && c.UserControl)).map(c => (\r\n \r\n this.highlightCard(c)} \r\n style={this.getCardStyle(c)}>\r\n \r\n {c.Name}\r\n \r\n \r\n ));\r\n }\r\n else\r\n ditems = Loading...;\r\n\r\n let ritems;\r\n if (this.reportCards.length > 0){\r\n ritems = this.reportCards.filter(c => !this.filter || c.Name.toLowerCase().includes(this.filter.toLowerCase()) ).map(c => (\r\n \r\n this.highlightCard(c)} \r\n style={this.getCardStyle(c)}>\r\n \r\n {c.Name} \r\n Shared By: {c.IsSystem ? 'System' : (utils.global_variables.Users[c.CreatedBy]?.fullname || 'Unknown')}\r\n \r\n \r\n ));\r\n }\r\n else\r\n ritems = No Reports available; \r\n\r\n return (\r\n \r\n \r\n \r\n Add new card\r\n \r\n\r\n \r\n\r\n \r\n mdi-close\r\n \r\n \r\n \r\n\r\n
\r\n this.search(value)}\r\n >\r\n \r\n this.Refresh()}>mdi-refresh\r\n
\r\n this.selected_tab = index}>\r\n Dashboard Cards\r\n Shared Reports\r\n \r\n \r\n \r\n
\r\n \r\n \r\n {ditems}\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n {ritems}\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n\r\n \r\n \r\n \r\n this.select()}>Add\r\n \r\n
\r\n );\r\n }\r\n});","import Vue from 'vue';\r\nimport BaseComponent from './BaseComponentMixin.jsx';\r\nimport utils from '../../Shared/utils.jsx';\r\n\r\nimport vueCheetahGrid from 'vue-cheetah-grid'\r\nVue.use(vueCheetahGrid)\r\n\r\n//const materialDesignTheme = vueCheetahGrid.cheetahGrid.themes.MATERIAL_DESIGN;\r\n\r\nVue.component('cc-cheetah-grid', {\r\n mixins: [BaseComponent],\r\n components: {\r\n },\r\n data: () => ({\r\n datatable_id: null,\r\n\r\n modelfunc: null,\r\n modelurl: null,\r\n modelvalue: null,\r\n\r\n loading: false,\r\n\r\n userTheme: {\r\n color: '#2c3e50',\r\n //frozenRowsColor: '#2c3e50',\r\n frozenRowsBgColor: '#e8e8e8',\r\n //borderColor: '#35495e',\r\n //frozenRowsBorderColor: '#35495e',\r\n //checkbox: {\r\n // checkBgColor: '#35495e',\r\n // borderColor: '#35495e',\r\n //},\r\n defaultBgColor({ row, grid }) {\r\n // change the color of the even rows.\r\n if (row < grid.frozenRowCount) {\r\n return null;\r\n }\r\n return row % 2 === 0 ? '#f8f8f8' : 'white';\r\n },\r\n },\r\n }),\r\n created() {\r\n this.datatable_id = `data-table-${utils.generateUUID()}`;\r\n this.itemsPerPage = this.controlData.ItemsPerPage || 30;\r\n\r\n if ((this.controlData.DataType === 'URL' || this.controlData.DataType === undefined) && this.controlData.DataURL) {\r\n this.modelurl = utils.compile(this, this.controlData.DataURL);\r\n }\r\n else if (this.controlData.DataType === 'Raw' && this.controlData.Data) {\r\n this.modelvalue = utils.compileObject(this, this.controlData.Data);\r\n }\r\n },\r\n computed: {\r\n columnDefs: function () {\r\n const h = this.$createElement;\r\n const cols = [];\r\n\r\n if (this.controlData.SelectOptions.Enable && this.controlData.SelectOptions.MultiSelect)\r\n cols.push(\r\n \r\n );\r\n\r\n for (let i = 0; i < this.controlData.ColumnDefs.length; i++) {\r\n const hdr = this.controlData.ColumnDefs[i];\r\n if (!hdr.Visible)\r\n continue;\r\n\r\n switch (hdr.Type) {\r\n case 'Value':\r\n let field = hdr.Field;\r\n let filter;\r\n\r\n if (!hdr.field_extrator) {\r\n hdr.field_extrator = new Function('f', `return f.${hdr.Field};`);\r\n }\r\n\r\n if (hdr.CellFilter && !hdr.cellfilter_expn)\r\n hdr.cellfilter_expn = utils.compile(this, hdr.CellFilter, false, hdr.ValueModelName || 'value');\r\n\r\n if (hdr.cellfilter_expn)\r\n filter = (v) => utils.evaluate(hdr.cellfilter_expn, this, false, null, false, v);\r\n\r\n if (hdr.Condition && !hdr.condition_expn) {\r\n hdr.condition_expn = utils.compileExpression(this, hdr.Condition, hdr.RowModelName || 'row');\r\n }\r\n\r\n if (hdr.Value && !hdr.value_expn)\r\n hdr.value_expn = utils.compile(this, hdr.Value, false, hdr.RowModelName || 'row');\r\n\r\n if (hdr.value_expn && hdr.condition_expn)\r\n field = (v) => utils.evaluate(hdr.condition_expn, this, false, null, false, v) ? utils.evaluate(hdr.value_expn, this, false, null, false, v) : null;\r\n else if (hdr.value_expn)\r\n field = (v) => utils.evaluate(hdr.value_expn, this, false, null, false, v);\r\n else if (hdr.condition_expn)\r\n field = (v) => utils.evaluate(hdr.condition_expn, this, false, null, false, v) ? hdr.field_extrator(v) : null;\r\n\r\n const sort_expn = true; /* (v,x,y,z) => {\r\n utils.debug(`Sort column ${x} order ${v}`);\r\n return v;\r\n }; */\r\n\r\n cols.push(\r\n \r\n {hdr.DisplayName || hdr.Name || hdr.Field}\r\n \r\n );\r\n break;\r\n\r\n case 'Icons':\r\n cols.push(\r\n 2}\r\n\r\n >\r\n \r\n );\r\n break;\r\n }\r\n \r\n }\r\n\r\n return cols;\r\n },\r\n dataSource: function () {\r\n return this.modelfunc ? this.modelfunc() : [];\r\n },\r\n modelurlvalue: function () {\r\n if (this.modelurl)\r\n return utils.evaluate(this.modelurl, this);\r\n else\r\n return '';\r\n },\r\n modelrawvalue: function () {\r\n if (this.modelvalue)\r\n return utils.evaluateObject(this.modelvalue, this);\r\n else\r\n return [];\r\n },\r\n },\r\n //Mounted Replaced with preRenderComplete\r\n methods: {\r\n async preRenderComplete() {\r\n this.finishRenderHandler(this);\r\n await this.Refresh();\r\n\r\n //const self = this;\r\n //self.updateTable();\r\n //window.onresize = function (event) {\r\n // self.updateTable();\r\n //};\r\n },\r\n async Refresh(clearSelectedRows) {\r\n if (clearSelectedRows) {\r\n }\r\n\r\n this.loading = true;\r\n try {\r\n let model;\r\n if (this.controlData.DataType == 'URL' && this.modelurl) {\r\n model = this.modelurlvalue ? await utils.api.get(this.modelurlvalue, false, false) : [];\r\n\r\n if (!this.modelurl_watch$)\r\n this.modelurl_watch$ = this.$watch(\r\n function (newvalue) {\r\n return this.modelurlvalue;\r\n },\r\n function (val, oldval) {\r\n this.Refresh();\r\n }\r\n );\r\n }\r\n else if (this.controlData.DataType == 'Raw' && this.modelvalue)\r\n try {\r\n model = this.modelrawvalue;\r\n\r\n if (!this.modelvalue_watch$)\r\n this.modelvalue_watch$ = this.$watch(\r\n function () {\r\n try {\r\n return this.modelrawvalue;\r\n }\r\n catch (e) {\r\n utils.warn('SlimGrid modelvalue ' + this.controlData.Model.Definition + ' failed to evaluate: ' + e);\r\n return null;\r\n }\r\n },\r\n function (val, oldval) {\r\n this.Refresh();\r\n },\r\n {\r\n deep: false\r\n }\r\n );\r\n }\r\n catch (e) {\r\n utils.warn('BasicGrid modelvalue ' + this.controlData.Data + ' failed to evaluate: ' + e);\r\n model = [];\r\n }\r\n else\r\n model = [];\r\n\r\n this.modelfunc = () => model;\r\n }\r\n finally {\r\n this.loading = false;\r\n }\r\n },\r\n rowCommandClick(e, data, btn) {\r\n e.cancelBubble = true;\r\n e.preventDefault();\r\n utils.executeAndCompileAllActions(btn.Actions, { RowIndex: data.rowIndex, Data: data.row.data }, this);\r\n },\r\n clickIcon(e, hdr, ico, item) {\r\n e.cancelBubble = true;\r\n e.preventDefault();\r\n utils.executeAndCompileAllActions(ico.Actions, { Data: item }, this);\r\n },\r\n\r\n updateTable() {\r\n const tableHeight = document.getElementById(this.datatable_id).offsetHeight - 54 - 58;\r\n this.itemsPerPage = parseInt(tableHeight / 32);\r\n utils.debug(`** SlimGrid: tableHeight: ${tableHeight}, itemsPerPage:${this.itemsPerPage}`);\r\n\r\n if (this.dataSource.length < this.itemsPerPage)\r\n this.itemsPerPage = this.dataSource.length;\r\n \r\n if (this.itemsPerPage > 1)\r\n this.itemsPerPage--;\r\n\r\n if (!this.footerProps.itemsPerPageOptions.includes(this.itemsPerPage)) {\r\n if (this.footerProps.itemsPerPageOptions.length == this.optionsLength) {\r\n this.footerProps.itemsPerPageOptions.unshift(this.itemsPerPage);\r\n } else {\r\n this.footerProps.itemsPerPageOptions.shift();\r\n this.footerProps.itemsPerPageOptions.unshift(this.itemsPerPage);\r\n }\r\n }\r\n },\r\n },\r\n props: {},\r\n render() {\r\n if (!this.todisplay)\r\n return null;\r\n\r\n const style = {\r\n overflow: \"auto\",\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n padding: '8px',\r\n ...this.sizeStyle,\r\n };\r\n\r\n return (\r\n \r\n {this.columnDefs}\r\n \r\n );\r\n }\r\n});","import Vue from 'vue';\r\nimport BaseComponent from './BaseComponentMixin.jsx';\r\nimport utils from '../../Shared/utils.jsx';\r\nimport \"./css/CircleChart.css\";\r\n\r\n//import VueApexCharts from 'vue-apexcharts'\r\n//Vue.use(VueApexCharts);\r\n//Vue.component('apexchart', VueApexCharts);\r\n\r\nVue.component('circle-chart', {\r\n mixins: [BaseComponent],\r\n components: {\r\n },\r\n data: function () {\r\n return {\r\n tooltipEval: null,\r\n tooltipPlacementEval: null,\r\n disabledEval: null,\r\n objectFitEval: null,\r\n sourcemodel: null,\r\n centervalueformatter: function (w) {\r\n // Sum of all values in series\r\n return w.globals.seriesTotals.reduce((a, b) => {\r\n return a + b\r\n }, 0)\r\n },\r\n }\r\n },\r\n created() {\r\n if (this.controlData.SourceType === 'Raw' && this.controlData.SourceRaw) {\r\n this.sourceraw = this.controlData.SourceRaw;\r\n }\r\n else if (this.controlData.SourceType === 'RawInterpolated' && this.controlData.SourceRaw) {\r\n this.sourceraw = utils.compileObject(this, this.controlData.SourceRaw);\r\n }\r\n else if (this.controlData.SourceType === 'URL' && this.controlData.SourceURL) {\r\n this.sourceurl = utils.compile(this, this.controlData.SourceURL);\r\n }\r\n },\r\n //Created Replaced with preRenderComplete\r\n computed: {\r\n style() {\r\n return {\r\n ...utils.resolveStyleHints(this.styleHints, this),\r\n ...this.sizeStyle,\r\n display: 'flex',\r\n flexDirection: 'column',\r\n overflow: \"hidden\",\r\n };\r\n },\r\n tooltip() {\r\n try {\r\n if (this.tooltipEval === null && this.controlData.Tooltip)\r\n this.tooltipEval = utils.compile(this, this.Translate(this.controlData.Tooltip));\r\n if (this.tooltipEval)\r\n return utils.evaluate(this.tooltipEval, this);\r\n return '';\r\n }\r\n catch (e) {\r\n utils.warn('Tooltip could not evaluate expression: ' + this.controlData.Tooltip + '; ' + e);\r\n return '';\r\n }\r\n },\r\n tooltipPlacement() {\r\n try {\r\n if (this.tooltipPlacementEval === null && this.controlData.TooltipPlacement)\r\n this.tooltipPlacementEval = utils.compile(this, this.controlData.TooltipPlacement);\r\n let placement = '';\r\n if (this.tooltipPlacementEval)\r\n placement = utils.evaluate(this.tooltipPlacementEval, this);\r\n return placement.split('-')[0].toLowerCase() || 'top';\r\n }\r\n catch (e) {\r\n utils.warn('TooltipPlacement could not evaluate expression: ' + this.controlData.TooltipPlacement + '; ' + e);\r\n return '';\r\n }\r\n },\r\n color() {\r\n if (!this.color_fn && this.controlData.Color)\r\n this.color_fn = utils.compile(this, this.controlData.Color);\r\n\r\n return this.color_fn ? utils.evaluate(this.color_fn, this) : undefined;\r\n },\r\n value() {\r\n if (!this.value_fn && this.controlData.ValueExpression)\r\n this.value_fn = utils.compileExpression(this, this.controlData.ValueExpression);\r\n\r\n return this.value_fn ? utils.evaluate(this.value_fn, this) : 0;\r\n },\r\n width() {\r\n if (!this.width_fn && this.controlData.WidthExpression)\r\n this.width_fn = utils.compileExpression(this, this.controlData.WidthExpression);\r\n\r\n return this.width_fn ? utils.evaluate(this.width_fn, this) : 0;\r\n },\r\n size() {\r\n if (!this.size_fn && this.controlData.SizeExpression)\r\n this.size_fn = utils.compileExpression(this, this.controlData.SizeExpression);\r\n\r\n return this.size_fn ? utils.evaluate(this.size_fn, this) : 0;\r\n },\r\n rotate() {\r\n if (!this.rotate_fn && this.controlData.RotateExpression)\r\n this.rotate_fn = utils.compileExpression(this, this.controlData.RotateExpression);\r\n\r\n return this.rotate_fn ? utils.evaluate(this.rotate_fn, this) : 0;\r\n },\r\n\r\n title() {\r\n if (this.controlData.Title && !this.title_fn)\r\n this.title_fn = utils.compile(this, this.controlData.Title);\r\n\r\n return this.title_fn ? utils.evaluate(this.title_fn, this) : '';\r\n },\r\n centerhole() {\r\n if (this.controlData.CenterHoleSize && !this.centerhole_fn)\r\n this.centerhole_fn = utils.compileExpression(this, this.controlData.CenterHoleSize);\r\n\r\n const value = this.centerhole_fn ? utils.evaluate(this.centerhole_fn, this) : 0;\r\n\r\n return (value * 100).toFixed(0) + '%';\r\n },\r\n fontSize() {\r\n if (this.controlData.PieSliceTextFontSize) {\r\n var rgx = /^[0-9]*$/;\r\n\r\n if (rgx.test(this.controlData.PieSliceTextFontSize))\r\n return `${this.controlData.PieSliceTextFontSize}px`;\r\n else\r\n return this.controlData.PieSliceTextFontSize;\r\n }\r\n\r\n return '24px';\r\n },\r\n centertext() {\r\n if (!this.content_fn && this.controlData.CenterText)\r\n this.content_fn = utils.compile(this, this.controlData.CenterText);\r\n\r\n return this.content_fn ? utils.evaluate(this.content_fn, this) : null;\r\n },\r\n\r\n sourcerawvalue: function () {\r\n if (this.controlData.SourceType === 'Raw')\r\n return this.sourceraw;\r\n else\r\n return this.sourceraw ? utils.evaluateObject(this.sourceraw, this) : null;\r\n },\r\n sourceurlvalue: function () {\r\n return this.sourceurl ? utils.evaluate(this.sourceurl, this) : '';\r\n },\r\n model: function () {\r\n switch (this.controlData.SourceType) {\r\n case 'Raw':\r\n return this.sourceraw;\r\n\r\n case 'RawInterpolated':\r\n return this.sourceraw ? utils.evaluateObject(this.sourceraw, this) : null;\r\n\r\n case 'URL':\r\n return this.sourcemodel;\r\n\r\n default:\r\n return null;\r\n }\r\n },\r\n labelFormatter: function () {\r\n const self = this;\r\n\r\n return function (val, opts) {\r\n // Causes the actual values to be shown in each pie slice where\r\n // the val parameter is the percentage, which is less useful.\r\n switch (self.controlData.PieSliceText) {\r\n case 'percentage': return val.toFixed(0) + '%';\r\n case 'label': return self.model.labels[opts.seriesIndex];\r\n case 'time': return self.model.customtimes[opts.seriesIndex];\r\n case 'value': return opts.w.config.series[opts.seriesIndex];\r\n case 'none': return '';\r\n case 'custom': return [self.model.customcounts[opts.seriesIndex],\r\n self.model.customtimes[opts.seriesIndex],\r\n self.model.custompercents[opts.seriesIndex]]\r\n ;\r\n }\r\n return opts.w.config.series[opts.seriesIndex];\r\n };\r\n },\r\n tooltipFormatter: function () {\r\n const self = this;\r\n return function ({ series, seriesIndex, dataPointIndex, w }) {\r\n return self.model.customtooltips !== undefined ? self.model.customtooltips[seriesIndex] : self.model.labels[seriesIndex];\r\n }\r\n },\r\n chartData() {\r\n return this.model.values;\r\n //return [1,2,3,4,5]; // [44, 55, 41, 17, 15];\r\n },\r\n chartOptions() {\r\n const legendMaxSize = this.controlData.LegendMaxSize;\r\n const opts = {\r\n height: '100%',\r\n width: '100%',\r\n title: {\r\n text: this.title,\r\n style: {\r\n fontSize: '24px',\r\n fontWeight: 'bold',\r\n fontFamily: undefined,\r\n color: '#263238'\r\n },\r\n },\r\n chart: {\r\n dropShadow: {\r\n enabled: false,\r\n enabledOnSeries: undefined,\r\n top: 0,\r\n left: 0,\r\n blur: 0,\r\n opacity: 0\r\n },\r\n animations: {\r\n enabled: false,\r\n animateGradually: {\r\n enabled: false,\r\n delay: 150\r\n },\r\n dynamicAnimation: {\r\n enabled: false,\r\n speed: 350\r\n }\r\n }\r\n },\r\n noData: {\r\n text: this.Translate(this.model.nodata || \"Not Enough Data To Display\"),\r\n align: 'center',\r\n verticalAlign: 'middle',\r\n offsetX: 0,\r\n offsetY: 0,\r\n style: { \r\n color: 'black',\r\n fontSize: '1.2em',\r\n }\r\n },\r\n legend: {\r\n show: (this.controlData.LegendPosition != 'none' && this.model.values?.length > 0),\r\n position: this.controlData.LegendPosition || 'right',\r\n width: this.controlData.LegendWidth || 130,\r\n \r\n formatter: function (val, opts) {\r\n let maxchars = val.length;\r\n if(legendMaxSize === undefined){\r\n maxchars = 12;\r\n }else if(legendMaxSize > 0) {\r\n maxchars = legendMaxSize;\r\n }else{\r\n return val; // i.e when set to 0 or less\r\n }\r\n return val.length > maxchars ? `${val.substring(0, maxchars)}…` : val;\r\n }\r\n },\r\n //labels: this.model.labels, \r\n //colors: this.model.colors,\r\n //[\r\n // 'Inbound',\r\n // 'Ready',\r\n // 'Wrap Up',\r\n // 'Not Ready',\r\n // 'Outbound',\r\n //],\r\n tooltip: {\r\n custom: this.tooltipFormatter,\r\n enabled: this.controlData.EnableTooltips || false,\r\n },\r\n dataLabels: {\r\n enabled: true,\r\n formatter: this.labelFormatter,\r\n //function(val, opts) {\r\n // // Causes the actual values to be shown in each pie slice where\r\n // // the val parameter is the percentage, which is less useful.\r\n // switch (this.controlData.PieSliceText) {\r\n // case 'percentage': return val.toFixed(0);\r\n // case 'label': return this.model.labels[opts.seriesIndex];\r\n // case 'value': return opts.w.config.series[opts.seriesIndex];\r\n // case 'none': return null;\r\n // }\r\n // return opts.w.config.series[opts.seriesIndex];\r\n //},\r\n style: {\r\n fontSize: this.fontSize,\r\n fontFamily: 'Helvetica, Arial, sans-serif',\r\n fontWeight: 'normal',\r\n colors: ['white']\r\n },\r\n dropShadow: {\r\n enabled: false,\r\n enabledOnSeries: undefined,\r\n top: 0,\r\n left: 0,\r\n blur: 0,\r\n opacity: 0\r\n }\r\n },\r\n plotOptions: {\r\n pie: {\r\n donut: {\r\n size: this.centerhole, // '50%',\r\n background: 'transparent',\r\n labels: {\r\n show: this.controlData.DisplayCenterValue, // Turns on/off center value\r\n name: {\r\n show: false, // Turns on/off center label\r\n },\r\n value: {\r\n // Represents the center value text font\r\n fontSize: '48px',\r\n fontFamily: 'Helvetica, Arial, sans-serif',\r\n fontWeight: 600,\r\n color: undefined,\r\n offsetY: 16,\r\n },\r\n total: {\r\n show: this.controlData.DisplayCenterValue, // Turns on/off center value\r\n showAlways: this.controlData.DisplayCenterValue,\r\n\r\n // Controls the center label text\r\n //label: 'Logged In',\r\n\r\n // Represents the center label \"Total\" text font\r\n //fontSize: '16px',\r\n //fontFamily: 'Helvetica, Arial, sans-serif',\r\n //fontWeight: 400,\r\n //color: '#373d3f',\r\n\r\n formatter: this.centervalueformatter,\r\n }\r\n }\r\n }\r\n }\r\n }\r\n };\r\n\r\n if (this.model.labels)\r\n opts.labels = this.model.labels;\r\n if (this.model.colors)\r\n opts.colors = this.model.colors;\r\n\r\n return opts;\r\n },\r\n },\r\n methods: {\r\n async preRenderComplete() {\r\n this.finishRenderHandler(this);\r\n this.Refresh();\r\n },\r\n async Refresh() {\r\n if (this.controlData.SourceType === 'URL' && this.controlData.SourceURL) {\r\n this.sourcemodel = await utils.api.get(this.sourceurlvalue);\r\n }\r\n },\r\n\r\n getContent(value) {\r\n if (!this.content_fn && this.controlData.Content)\r\n this.content_fn = utils.compile(this, this.controlData.Content, false, 'value');\r\n\r\n return this.content_fn ? utils.evaluate(this.content_fn, this, false, null, false, value) : null;\r\n },\r\n },\r\n render(h) {\r\n if (!this.todisplay || !this.model)\r\n return null;\r\n\r\n try {\r\n let item = (\r\n \r\n {this.centertext}\r\n \r\n );\r\n\r\n if (this.tooltip)\r\n item = utils.generateTooltip(h, item, this.tooltip, this.tooltipPlacement);\r\n\r\n return item;\r\n }\r\n catch (e) {\r\n utils.error('CircleChart Render failed', e);\r\n return
CircleChart Failed to Render {e}
;\r\n }\r\n }\r\n});","import Vue from 'vue';\r\nimport BaseComponent from './BaseComponentMixin.jsx';\r\nimport careHelpfulFunctions from '../careHelpfulFunctions.jsx';\r\n\r\nimport utils from '../../Shared/utils.jsx';\r\n\r\nVue.component('combo-box', {\r\n mixins: [BaseComponent],\r\n data: function () {\r\n return {\r\n publishFieldEval: null,\r\n setValueFunction: null,\r\n sourceUrlEval: null,\r\n sourceRawInterpolatedEval: null,\r\n data: [],\r\n model: ''\r\n }\r\n },\r\n props: {},\r\n watch: {\r\n sourceUrl: async function() {\r\n this.data = await utils.api.get(utils.evaluate(this.sourceUrlEval, this));\r\n }\r\n },\r\n computed: {\r\n publishField: {\r\n set(value){\r\n if(this.setValueFunction === null && this.controlData.PublishField) {\r\n let vueSet = utils.helpers.convertSetValueToVueSet(this.controlData.PublishField, 'value');\r\n this.setValueFunction = new Function('value', 'context', 'util', 'vue', `with (context) { ${vueSet} }`);\r\n }\r\n if(this.setValueFunction) {\r\n this.setValueFunction(value, this, careHelpfulFunctions, Vue)\r\n }\r\n this.model = value;\r\n },\r\n get() {\r\n return this.model;\r\n }\r\n },\r\n sourceUrl() {\r\n return utils.evaluate(this.sourceUrlEval, this);\r\n },\r\n sourceRawInterpolated(){\r\n return utils.evaluateObject(this.sourceRawInterpolatedEval, this);\r\n },\r\n sourceData() {\r\n switch(this.controlData.SourceType.toLowerCase()) {\r\n case 'url':\r\n case 'raw': \r\n return this.data;\r\n case 'rawinterpolated': return this.sourceRawInterpolated;\r\n default: return [];\r\n }\r\n },\r\n styles() {\r\n return {\r\n ...utils.resolveStyleHints(this.styleHints, this),\r\n ...this.sizeStyle\r\n }\r\n }\r\n },\r\n //Created Replaced with preRenderComplete\r\n methods: {\r\n // The combobox does not support the item-value prop, so the on input event emits the entire item. If the item is only \r\n // a string, we can just save it off. If we have a value field, we can get that from the object. If we don't have anything, we'll just \r\n // save the whole object.\r\n onInput(item) {\r\n if(typeof item === 'string')\r\n this.publishField = item;\r\n else if(this.controlData.ValueField)\r\n this.publishField = item[this.controlData.ValueField];\r\n else \r\n this.publishField = item;\r\n },\r\n async preRenderComplete() {\r\n switch(this.controlData.SourceType.toLowerCase()) {\r\n case 'url': {\r\n this.sourceUrlEval = utils.compile(this, this.controlData.SourceURL);\r\n this.data = await utils.api.get(this.sourceUrl);\r\n break;\r\n }\r\n case 'raw': {\r\n this.data = this.controlData.SourceRaw;\r\n break;\r\n }\r\n case 'rawinterpolated': {\r\n this.sourceRawInterpolatedEval = utils.compileObject(this, this.controlData.SourceRaw);\r\n break;\r\n }\r\n }\r\n this.finishRenderHandler(this);\r\n },\r\n },\r\n render(h) {\r\n if (!this.todisplay)\r\n return null;\r\n try {\r\n return (\r\n \r\n \r\n \r\n );\r\n }\r\n catch (e) {\r\n utils.error('ComboBox Render failed', e);\r\n return
ComboBox Failed to Render {e}
;\r\n }\r\n }\r\n});","import Vue from 'vue';\r\nimport utils from '../../Shared/utils.jsx';\r\nimport methods from '../../Shared/methods';\r\nimport api from '@/Services/api';\r\n\r\nVue.component('document-bootstrap', {\r\n data: function () {\r\n return {\r\n urlexpn: null,\r\n ready: false,\r\n }\r\n },\r\n async created() {\r\n this.urlexpn = utils.compile(this, this.controlData.BootstrapURL);\r\n },\r\n async mounted() {\r\n try {\r\n const url = utils.evaluate(this.urlexpn, this);\r\n \r\n if (this.controlData.Type && this.controlData.Type == 'Schema') {\r\n\r\n const schemaAge = new Date().getTime() - (utils.cache().schema_date?.getTime() || 0);\r\n const cacheExpiry = 60 * 1000;\r\n if(schemaAge > cacheExpiry){\r\n // Load all the schema documents (required by the document editor)\r\n let apiRequest = {\r\n method: 'GET',\r\n url: url || 'Apps/Schema/Bootstrap/Load',\r\n doNotUseWebsocket: true,\r\n flatten: true\r\n };\r\n const s = await api.apiRequest(apiRequest);\r\n if (s)\r\n await utils.setSchemaBootstrap(s);\r\n else\r\n alert('Bad response');\r\n \r\n utils.log(`DocumentBootstrap Schema finished, loaded ${Object.keys(s || {}).length} record(s) from API`);\r\n }else{\r\n utils.log(`DocumentBootstrap Schema finished, loaded ${Object.keys(utils.cache().schema || {}).length} record(s) from cache`);\r\n }\r\n\r\n this.ready = true;\r\n }\r\n else if (!this.controlData.Type || this.controlData.Type == 'MenuItems') {\r\n // Load the menu documents (based upon user and call center, from installed modules)\r\n let apiRequest = {\r\n method: 'GET',\r\n url: url,\r\n doNotUseWebsocket: true,\r\n flatten: true\r\n };\r\n const res = await api.apiRequest(apiRequest);\r\n\r\n if (res.Success)\r\n utils.global.SetAllDocuments(res.Records);\r\n else\r\n alert('Bad response, JSON: ' + JSON.stringify(res));\r\n\r\n utils.log('DocumentBootstrap MenuItems finished, loaded ' + Object.keys(utils.document_cache.menus).length);\r\n this.ready = true;\r\n }\r\n else if (this.controlData.Type == 'SettingsMenuList') {\r\n // Load the menu documents (used by the user profile (Settings) page)\r\n let apiRequest = {\r\n method: 'GET',\r\n url: url,\r\n doNotUseWebsocket: true,\r\n flatten: true\r\n };\r\n const res = await api.apiRequest(apiRequest);\r\n\r\n if (res && Array.isArray(res))\r\n utils.global.SetAllDocuments(res);\r\n else\r\n alert('Bad response, JSON: ' + JSON.stringify(res));\r\n\r\n utils.log('DocumentBootstrap SettingsMenuList finished, loaded ' + Object.keys(utils.document_cache.menus).length);\r\n this.ready = true;\r\n }\r\n\r\n this.$emit('finished-render', this);\r\n }\r\n catch (e) {\r\n utils.warn('DocumentBootstrap failed to evaluate BootstrapURL ' + this.controlData.BootstrapURL + ': ' + e);\r\n }\r\n },\r\n computed: {\r\n ...utils.global,\r\n Root: function () {\r\n return this.root._self;\r\n },\r\n IsReady: function () {\r\n return this.ready;\r\n }\r\n },\r\n methods: {\r\n ...methods,\r\n },\r\n props: {\r\n name: '',\r\n root: null,\r\n parentType: '',\r\n controlData: {}\r\n },\r\n render(h) {\r\n return null;\r\n }\r\n});","import Vue from 'vue';\r\nimport utils from '../../Shared/utils.jsx';\r\nimport careHelpfulFunctions from '../careHelpfulFunctions.jsx';\r\nimport BaseComponent from './BaseComponentMixin.jsx';\r\nimport EventBus from '../event-bus.js';\r\n\r\nvar baseStackMixin = {\r\n mixins: [BaseComponent],\r\n data: function () {\r\n return {\r\n master_key: null,\r\n container_list: [],\r\n sourceraw: null,\r\n sourceurl: null,\r\n model: null,\r\n feedbackItems: [],\r\n isFullScreen: false,\r\n renderCount: 0,\r\n\r\n displayFeedbackEval: null,\r\n directionEval: null,\r\n formSizeEval: null,\r\n verticalAlignChildrenEval: null,\r\n horizontalAlignChildrenEval: null,\r\n paddingEval: null,\r\n fullScreenCapableEval: null\r\n }\r\n },\r\n props: {},\r\n computed: {\r\n Vars: function () {\r\n if (this.container_list.length === 0)\r\n return this.vars;\r\n else\r\n return this.container_list[this.container_list.length - 1].vars;\r\n },\r\n breadCrumbText: function () {\r\n if (this.breadcrumbtext) \r\n return utils.evaluate(this.breadcrumbtext, this);\r\n else\r\n return null;\r\n },\r\n totalItems() {\r\n // Add one to include the component itself.\r\n let total = 1;\r\n\r\n // Each of the controls in the controls array will be rendered at least once.\r\n if(Array.isArray(this.controlData.Controls)) {\r\n total += this.controlData.Controls.length;\r\n }\r\n \r\n // There is a model and it is an object. In this case, we will repeat all of the controls for each item in the model.\r\n if(this.model && typeof this.model === 'object') {\r\n if(Array.isArray(this.model))\r\n total += total * this.model.length;\r\n else \r\n total += total * Object.keys(this.model).length;\r\n }\r\n\r\n return total;\r\n },\r\n feedbackItemsComputed() {\r\n if(this.feedbackItems.length) {\r\n let items = this.feedbackItems.map(item => {\r\n let type = item.messageType;\r\n let textColor = item.messageType;\r\n let icon = 'mdi mdi-information';\r\n\r\n if (type == 'Info') {\r\n textColor = 'primary';\r\n icon = 'mdi mdi-information';\r\n }\r\n else if (type == 'Warning') {\r\n textColor = 'outbound';\r\n icon = 'mdi mdi-alert'\r\n }\r\n else if (type == 'Error') {\r\n textColor = 'error';\r\n icon = 'mdi mdi-alert'\r\n }\r\n else if (type == 'Success') {\r\n textColor = 'success';\r\n icon = 'mdi mdi-information'\r\n }\r\n\r\n let body;\r\n if (item.message)\r\n body = {item.message};\r\n\r\n return (\r\n \r\n \r\n {body}\r\n \r\n );\r\n });\r\n \r\n return (\r\n
\r\n {items}\r\n
\r\n );\r\n }\r\n return null;\r\n },\r\n displayFeedback() {\r\n if(!this.displayFeedbackEval && this.controlData.DisplayFeedback)\r\n this.displayFeedbackEval = utils.compile(this, this.controlData.DisplayFeedback);\r\n if(this.displayFeedbackEval)\r\n return !!(utils.evaluate(this.displayFeedbackEval, this)?.toLowerCase() === 'true' || this.Parent?.isbase);\r\n return !!(this.controlData?.DisplayFeedback?.toLowerCase() === 'true' || this.Parent?.isbase);\r\n },\r\n direction(){\r\n if(!this.directionEval && this.controlData.Direction)\r\n this.directionEval = utils.compile(this, this.controlData.Direction);\r\n if(this.directionEval)\r\n return utils.evaluate(this.directionEval, this);\r\n return 'Normal';\r\n },\r\n formSize(){\r\n if(!this.formSizeEval && this.controlData.FormSize)\r\n this.formSizeEval = utils.compile(this, this.controlData.FormSize);\r\n if(this.formSizeEval)\r\n return utils.evaluate(this.formSizeEval, this);\r\n return 'Normal';\r\n },\r\n verticalAlignChildren() {\r\n if(!this.verticalAlignChildrenEval && this.controlData.VerticalAlignChildren)\r\n this.verticalAlignChildrenEval = utils.compile(this, this.controlData.VerticalAlignChildren);\r\n if(this.verticalAlignChildrenEval)\r\n return utils.evaluate(this.verticalAlignChildrenEval, this);\r\n return '';\r\n },\r\n horizontalAlignChildren() {\r\n if(!this.horizontalAlignChildrenEval && this.controlData.HorizontalAlignChildren)\r\n this.horizontalAlignChildrenEval = utils.compile(this, this.controlData.HorizontalAlignChildren);\r\n if(this.horizontalAlignChildrenEval)\r\n return utils.evaluate(this.horizontalAlignChildrenEval, this);\r\n return '';\r\n },\r\n padding() {\r\n if(!this.paddingEval && this.controlData.Padding)\r\n this.paddingEval = utils.compile(this, this.controlData.Padding);\r\n if(this.paddingEval)\r\n return utils.evaluate(this.paddingEval, this);\r\n return '';\r\n },\r\n fullScreenCapable() {\r\n if(!this.fullScreenCapableEval && this.controlData.FullScreenCapable !== undefined)\r\n this.fullScreenCapableEval = utils.compile(this, this.controlData.FullScreenCapable !== undefined);\r\n if(this.fullScreenCapableEval)\r\n return utils.evaluate(this.fullScreenCapableEval, this);\r\n return '';\r\n }\r\n },\r\n async created() {\r\n this.master_key = utils.generateUUID();\r\n\r\n if (this.controlData.SourceType === 'Raw' && this.controlData.SourceRaw) {\r\n this.sourceraw = utils.compileObject(this, this.controlData.SourceRaw);\r\n }\r\n else if (this.controlData.SourceType === 'Url' && this.controlData.SourceUrl) {\r\n this.sourceurl = utils.compile(this, this.controlData.SourceUrl);\r\n }\r\n if (this.controlData.BreadCrumb && this.controlData.BreadCrumb.Text) {\r\n if (!this.breadcrumbtext)\r\n this.breadcrumbtext = utils.compile(this, this.controlData.BreadCrumb.Text);\r\n }\r\n\r\n // Subscribe to the UIAction_DisplayFeedback event\r\n if(this.displayFeedback) {\r\n this.$on('Action-DisplayFeedback', this.performDisplayFeedback);\r\n \r\n if(this.controlData.Name) {\r\n this.$on(`Action-DisplayFeedback:${this.controlData.Name}`, this.performDisplayFeedback);\r\n EventBus.$on(`Action-DisplayFeedback:${this.controlData.Name}`, this.performDisplayFeedback);\r\n }\r\n }\r\n\r\n // Subscribe to the UIAction_FullScreen event\r\n if(this.fullScreenCapable) {\r\n this.$on('Action-FullScreen', this.performFullScreen);\r\n \r\n if(this.controlData.Name) {\r\n this.$on(`Action-FullScreen:${this.controlData.Name}`, this.performFullScreen);\r\n EventBus.$on(`Action-FullScreen:${this.controlData.Name}`, this.performFullScreen);\r\n }\r\n }\r\n\r\n // Subscribe to a UIAction_ReplaceContent event\r\n this.$on('Action-ReplaceContent', this.performReplaceContent);\r\n this.$on('Action-Refresh', this.performRefresh);\r\n EventBus.$on('Action-Refresh', this.performRefresh);\r\n\r\n // Subscribe by name so Target can be directed to a specific container\r\n if (this.controlData.Name) {\r\n this.$on(`Action-ReplaceContent:${this.controlData.Name}`, this.performReplaceContent);\r\n this.$on(`Action-Refresh:${this.controlData.Name}`, this.performRefresh);\r\n EventBus.$on(`Action-Refresh:${this.controlData.Name}`, this.performRefresh);\r\n }\r\n\r\n // Switch isready to cause the render to run again\r\n this.isready = true;\r\n },\r\n //Mounted Replaced with preRenderComplete\r\n destroyed() {\r\n if (this.watcher$)\r\n this.watcher$();\r\n\r\n // Unsubscribe from the UIAction_DisplayFeedback event\r\n if(this.displayFeedback) {\r\n this.$off('Action-DisplayFeedback', this.performDisplayFeedback);\r\n \r\n if(this.controlData.Name) {\r\n this.$off(`Action-DisplayFeedback:${this.controlData.Name}`, this.performDisplayFeedback);\r\n EventBus.$off(`Action-DisplayFeedback:${this.controlData.Name}`, this.performDisplayFeedback);\r\n }\r\n }\r\n\r\n // Unsubscribe from the UIAction_FullScreen event\r\n if(this.fullScreenCapable) {\r\n this.$off('Action-FullScreen', this.performFullScreen);\r\n \r\n if(this.controlData.Name) {\r\n this.$off(`Action-FullScreen:${this.controlData.Name}`, this.performFullScreen);\r\n EventBus.$off(`Action-FullScreen:${this.controlData.Name}`, this.performFullScreen);\r\n }\r\n }\r\n\r\n this.$off('Action-ReplaceContent', this.performReplaceContent);\r\n this.$off('Action-Refresh', this.performRefresh);\r\n EventBus.$off('Action-Refresh', this.performRefresh);\r\n\r\n // Subscribe by name so Target can be directed to a specific container\r\n if (this.controlData.Name) {\r\n this.$off(`Action-ReplaceContent:${this.controlData.Name}`, this.performReplaceContent);\r\n this.$off(`Action-Refresh:${this.controlData.Name}`, this.performRefresh);\r\n EventBus.$off(`Action-Refresh:${this.controlData.Name}`, this.performRefresh);\r\n }\r\n },\r\n methods: {\r\n async preRenderComplete() {\r\n await this.Refresh();\r\n this.finishRenderHandler();\r\n \r\n // Add a manual watch to the results of the sourceraw expression - if it changes, refresh\r\n if (this.sourceraw)\r\n this.watcher$ = this.$watch(\r\n function () {\r\n try {\r\n //utils.log('VerticalStack watching ' + this.controlData.SourceRaw);\r\n return utils.evaluateObject(this.sourceraw, this);\r\n }\r\n catch (e) {\r\n utils.log('VerticalStack watcher failed to evaluate expression ' + this.controlData.SourceRaw + '; ' + e);\r\n return null;\r\n }\r\n },\r\n function (val, oldval) {\r\n utils.log('VerticalStack watcher change detected on ' + this.controlData.SourceRaw);\r\n this.Refresh();\r\n }\r\n );\r\n },\r\n async performRefresh(action) {\r\n utils.log(`BaseStackMixin ${this.name} Refresh action`);\r\n\r\n if (action.ActionData && action.ActionData.Debug && action.ActionData.Debug.BreakPoint) debugger;\r\n\r\n try {\r\n // Reload any dynamic content (sources)\r\n await this.Refresh();\r\n\r\n // Update the master key which will cause all child controls to reload\r\n this.master_key = utils.generateUUID();\r\n\r\n try {\r\n await utils.success(action);\r\n } catch (e) { }\r\n }\r\n catch (e) {\r\n try {\r\n await utils.failure(action, { Data: e });\r\n } catch (e) { }\r\n }\r\n finally {\r\n try {\r\n await utils.complete(action);\r\n }\r\n catch (e) { }\r\n\r\n // Complete the promise for the executeAction method\r\n action.FinishFunc(true);\r\n }\r\n },\r\n async Refresh() {\r\n if (this.sourceraw)\r\n try {\r\n this.model = utils.evaluateObject(this.sourceraw, this);\r\n }\r\n catch (e) {\r\n utils.warn(this.type + ' failed to evaluate SourceRaw ' + this.controlData.SourceRaw + ': ' + e);\r\n }\r\n else if (this.sourceurl)\r\n try {\r\n this.model = await utils.api.get(utils.evaluate(this.sourceurl, this));\r\n }\r\n catch (e) {\r\n utils.warn(this.type + ' failed to evaluate SourceUrl ' + this.controlData.SourceUrl + ': ' + e);\r\n }\r\n },\r\n async performReplaceContent(action) {\r\n utils.log(`${this.type} ReplaceContent`);\r\n\r\n if (action.ActionData.Debug && action.ActionData.Debug.BreakPoint) debugger;\r\n\r\n try {\r\n action.controlData.id = utils.generateUUID();\r\n //action.vars = utils.evaluateObject(action.varsexpn, action.context);\r\n if (action.breadcrumbtextexpn) {\r\n action.controlData.breadcrumbtext = utils.evaluate(action.breadcrumbtextexpn, action.context);\r\n }\r\n\r\n // Insure the container fully redraws\r\n //for (let i = 0; i < action.ActionData.ControlData.Controls.length; i++)\r\n // action.ActionData.ControlData.Controls[i].$objectId = utils.generateUUID();\r\n\r\n //TODO: Need these to run, however, the technique for replacing content may be off. This\r\n // needs to run as a prerender the same as when a control is loading for the first time.\r\n // Which means Postrender will also need to happen as normal.\r\n // action.ActionData.ControlData.PrerenderActions\r\n\r\n action.controlData.Vars = utils.evaluateObject(action.varsexpn, action.context);\r\n\r\n if (action.ActionData.ControlData.BreadCrumb && action.ActionData.ControlData.BreadCrumb.Action == 'Append') {\r\n this.container_list.push(action.controlData);\r\n }\r\n else {\r\n this.container_list = [action.controlData];\r\n }\r\n\r\n try {\r\n await utils.success(action);\r\n } catch (e) { }\r\n }\r\n catch (e) {\r\n try {\r\n await utils.failure(action, { Status: e.status, StatusText: e.response.statusText });\r\n } catch (e) { }\r\n }\r\n finally {\r\n try {\r\n await utils.complete(action);\r\n }\r\n catch (e) { }\r\n\r\n // Complete the promise for the executeAction method\r\n action.FinishFunc(true);\r\n }\r\n },\r\n performDisplayFeedback(action) {\r\n try {\r\n utils.log(`${this.type} DisplayFeedback ${action.ActionData.Title} ${action.ActionData.Body}`);\r\n \r\n if (action.ActionData.Debug && action.ActionData.Debug.BreakPoint) debugger;\r\n \r\n let messageGroup = action.messagegroup ? utils.evaluate(action.messagegroup) : '';\r\n \r\n if(messageGroup) {\r\n // If there is a message group, the new messages will replace any existing items for \r\n // that message group. We'll loop through the array backwards so we don't mess things up \r\n // when we remove an item.\r\n let i = this.feedbackItems.length;\r\n while(i--) {\r\n if(this.feedbackItems[i].messageGroup === messageGroup) {\r\n this.feedbackItems.splice(i, 1);\r\n }\r\n }\r\n }\r\n \r\n if(action.messages.length) {\r\n let finalArray = [];\r\n \r\n action.messages.forEach(message => {\r\n finalArray.push({\r\n messageType: message.messagetype,\r\n message: utils.evaluate(message.message),\r\n messageGroup: messageGroup,\r\n });\r\n });\r\n \r\n this.feedbackItems.push(...finalArray);\r\n }\r\n\r\n utils.success(action)\r\n } \r\n catch (e) {\r\n utils.failure(action, { Status: e.status, StatusText: e.response.statusText })\r\n }\r\n finally {\r\n utils.complete(action);\r\n\r\n action.FinishFunc(true);\r\n }\r\n },\r\n performFullScreen(action) {\r\n try {\r\n utils.log(`ActionService FullScreen ${action.ActionData.Title} ${action.ActionData.Body}`);\r\n\r\n if (action.ActionData.Debug && action.ActionData.Debug.BreakPoint) debugger;\r\n\r\n this.$el.webkitRequestFullScreen();\r\n this.isFullScreen = true;\r\n\r\n utils.success(action);\r\n }\r\n catch(e) {\r\n utils.failure(action, { Status: e.status, StatusText: e.response.statusText });\r\n }\r\n finally {\r\n utils.complete(action);\r\n\r\n action.FinishFunc(true);\r\n }\r\n },\r\n navToBreadCrumb(e, index) {\r\n if (index < 0)\r\n this.container_list.splice(0, this.container_list.length);\r\n else\r\n this.container_list.splice(index + 1, this.container_list.length - index);\r\n },\r\n\r\n generateItems(h, controlData, items, model, index, parentType) {\r\n let tempItems = []\r\n for (let i = 0; i < controlData.Controls.length; i++) {\r\n const c = controlData.Controls[i];\r\n if (!(typeof c === 'object'))\r\n continue;\r\n\r\n let DynamicControl = utils.getDynamicComponent(h, c);\r\n\r\n if (!DynamicControl)\r\n DynamicControl = 'default-unknown';\r\n\r\n if (!c.$objectId) c.$objectId = utils.generateUUID();\r\n\r\n let id = `${this.master_key}_${c.$objectId}`;\r\n if (index) id = `${index}_${id}`;\r\n\r\n tempItems.push(\r\n this.finishRenderHandler() }}\r\n type={c.ControlType}\r\n name={c.ControlData ? c.ControlData.Name : ''}\r\n root={this.root}\r\n parentType={parentType}\r\n controlData={c.ControlData}\r\n controlURL={c.ControlURL}\r\n sourceData={model}\r\n cacheControl={c.CacheControl}\r\n controlEvents={c.Events}>\r\n \r\n );\r\n }\r\n if(this.direction === 'Reversed')\r\n tempItems.reverse();\r\n items.push(...tempItems);\r\n },\r\n getHeader(h, controlData) {\r\n if (controlData.HeaderControls && controlData.HeaderControls.length > 0) {\r\n const header = [];\r\n\r\n for (let i = 0; i < controlData.HeaderControls.length; i++) {\r\n const c = controlData.HeaderControls[i];\r\n let DynamicControl = utils.getDynamicComponent(h, c);\r\n if (!DynamicControl)\r\n DynamicControl = 'default-unknown';\r\n\r\n if (!c.$objectId) c.$objectId = utils.generateUUID();\r\n\r\n let id = `${this.master_key}_${c.$objectId}_${i}`;\r\n\r\n header.push(\r\n this.finishRenderHandler() }}\r\n key={id}\r\n name={c.ControlData.Name}\r\n root={this.root}\r\n parentType=\"HorizontalStack\"\r\n controlData={c.ControlData}\r\n controlURL={c.ControlURL}\r\n controlName={c.Name}\r\n scopeitems={this.scopeitems}\r\n controlscope={this.controlscope}\r\n cacheControl={this.CacheControl}\r\n controlEvents={c.Events}>\r\n \r\n );\r\n }\r\n return header;\r\n }\r\n return null;\r\n },\r\n generateItemsFromModel(h, items, controlData, items_id, parentType) {\r\n if (this.model && typeof this.model === 'object') {\r\n if (Array.isArray(this.model))\r\n for (let i = 0; i < this.model.length; i++) {\r\n const item = this.model[i];\r\n const item_index = `${i}_${items_id}`;\r\n this.generateItems(h, controlData, items, item, item_index, parentType);\r\n }\r\n else\r\n Object.keys(this.model).forEach(key => {\r\n const item = this.model[key];\r\n const item_index = `${key}_${items_id}`;\r\n\r\n this.generateItems(h, controlData, items, item, item_index, parentType);\r\n });\r\n }\r\n else if (controlData.Controls)\r\n this.generateItems(h, controlData, items, null, items_id, parentType);\r\n },\r\n generateBreadCrumbs(h) {\r\n if (this.controlData.BreadCrumb && this.controlData.BreadCrumb.Text) {\r\n const crumbs = [];\r\n \r\n crumbs.push( this.navToBreadCrumb(e, -1)}>{this.breadCrumbText});\r\n crumbs.push(mdi mdi-chevron-right);\r\n\r\n for (let i = 0; i < this.container_list.length; i++) {\r\n const c = this.container_list[i];\r\n if (c.BreadCrumb && c.BreadCrumb.Action == 'Append' && c.breadcrumbtext) {\r\n const bctext = c.breadcrumbtext;\r\n \r\n crumbs.push( this.navToBreadCrumb(e, i)}>{bctext});\r\n crumbs.push(mdi mdi-chevron-right);\r\n }\r\n }\r\n \r\n return (
{crumbs}
);\r\n }\r\n else\r\n return null;\r\n },\r\n },\r\n props: {\r\n parentType: null,\r\n }\r\n};\r\n\r\nexport default baseStackMixin;","import Vue from 'vue';\r\nimport utils from '../../Shared/utils.jsx';\r\nimport BaseStackMixin from './BaseStackMixin.jsx';\r\n\r\nVue.component('stack-horizontal', {\r\n mixins: [BaseStackMixin],\r\n data: function () {\r\n return {\r\n }\r\n },\r\n computed: {\r\n horizontalStackClasses() {\r\n let classes = [];\r\n if(this.verticalAlignChildren) {\r\n switch(this.verticalAlignChildren.toLowerCase()) {\r\n case 'top':\r\n classes.push('align-start');\r\n break;\r\n case 'center': {\r\n classes.push('align-center');\r\n break;\r\n }\r\n case 'bottom': {\r\n classes.push('align-end');\r\n break;\r\n }\r\n }\r\n }\r\n\r\n if(this.horizontalAlignChildren) {\r\n switch(this.horizontalAlignChildren.toLowerCase()) {\r\n case 'left':\r\n classes.push('justify-start');\r\n break;\r\n case 'middle': {\r\n classes.push('justify-center');\r\n break;\r\n }\r\n case 'right': {\r\n classes.push('justify-end');\r\n break;\r\n }\r\n case 'spacearound': {\r\n classes.push('justify-space-around');\r\n break;\r\n }\r\n case 'spacebetween': {\r\n classes.push('justify-space-between');\r\n break;\r\n }\r\n case 'spaceevenly': {\r\n classes.push('justify-space-evenly');\r\n break;\r\n }\r\n }\r\n }\r\n\r\n return classes\r\n },\r\n },\r\n async created() {\r\n },\r\n destroyed() {\r\n },\r\n async mounted() {\r\n },\r\n methods: {\r\n },\r\n props: {\r\n },\r\n render(h) {\r\n try {\r\n if (!this.isready || !this.prerender_complete || !this.todisplay)\r\n return null;\r\n \r\n if (!this.controlData.Controls)\r\n return
;\r\n \r\n let items = [];\r\n let items_id = '_0';\r\n \r\n let controlData = this.controlData;\r\n \r\n if (this.container_list.length > 0) {\r\n controlData = this.container_list[this.container_list.length - 1].ActionData.ControlData;\r\n items_id = `_${this.container_list.length}`;\r\n }\r\n \r\n this.generateItemsFromModel(h, items, controlData, items_id, 'HorizontalStack');\r\n \r\n let header = this.getHeader(h, controlData);\r\n \r\n if(header)\r\n header = \r\n
\r\n {header}\r\n
;\r\n \r\n const breadcrumb = this.generateBreadCrumbs(h);\r\n \r\n const style = {\r\n overflow: this.parentType == \"ContentDef\" ? \"hidden\" : \"auto\",\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n ...this.sizeStyle,\r\n ...utils.getStyleHints(this.controlData.StyleHints),\r\n };\r\n \r\n const items_style = {\r\n overflow: this.parentType == \"ContentDef\" ? \"hidden\" : \"auto\",\r\n display: \"flex\",\r\n flexDirection: \"row\",\r\n flexGrow: 1,\r\n gap: this.padding ? this.padding + 'px' : ''\r\n };\r\n \r\n if (this.sizeOptions && this.sizeOptions.Width.Mode === 'Auto' && this.parentType === 'VerticalStack') {\r\n // In this unique case, we must use the opposite direction on the parent and embed another div\r\n // to force the 'auto' width -- otherwise, \r\n items_style.flexDirection = 'column';\r\n delete items_style.gap;\r\n items = (\r\n
\r\n {items}\r\n
\r\n );\r\n }\r\n \r\n return (\r\n \r\n {header}\r\n {breadcrumb}\r\n {this.feedbackItemsComputed}\r\n
\r\n {items}\r\n
\r\n \r\n );\r\n }\r\n catch (e) {\r\n utils.error('HorizontalLayout Render failed', e);\r\n return
HorizontalLayout Failed to Render {e}
;\r\n }\r\n }\r\n});","import Vue from 'vue';\r\nimport utils from '../../Shared/utils.jsx';\r\nimport BaseComponentMixin from './BaseComponentMixin.jsx';\r\nimport BaseStackMixin from './BaseStackMixin.jsx';\r\nimport EventBus from '../event-bus.js';\r\n\r\nVue.component('stack-vertical-content-debug', {\r\n data: function () {\r\n return {\r\n showMenu: false,\r\n }\r\n },\r\n props: {\r\n debug: null,\r\n },\r\n methods: {\r\n showContextMenu(e) {\r\n e.preventDefault()\r\n this.showMenu = false\r\n this.x = e.clientX\r\n this.y = e.clientY\r\n this.$nextTick(() => {\r\n this.showMenu = true\r\n })\r\n },\r\n },\r\n render(h) {\r\n return (\r\n this.debug.refreshchildren(e)}\r\n on-contextmenu={(e) => this.showContextMenu(e)}\r\n >\r\n \r\n \r\n \r\n {this.debug.controlURLvalue}\r\n \r\n\r\n \r\n\r\n \r\n this.debug.refreshchildren(e)}>\r\n \r\n mdi-refresh\r\n \r\n\r\n \r\n Reload\r\n Flushes cache and reloads\r\n \r\n \r\n\r\n this.debug.openForLocalEdit(e, this.debug.controlURLvalue)}>\r\n \r\n mdi-pencil\r\n \r\n\r\n \r\n Edit\r\n Local Tab\r\n \r\n \r\n\r\n this.debug.openForExternalEdit(e, this.debug.controlURLvalue, this.debug.controlCustomerId, true)}>\r\n \r\n mdi-pencil-box-multiple\r\n \r\n\r\n \r\n Edit\r\n New Window\r\n \r\n \r\n\r\n this.debug.openForExternalEdit(e, this.debug.controlURLvalue, this.debug.controlCustomerId, false)}>\r\n \r\n mdi-pencil-box-multiple-outline\r\n \r\n\r\n \r\n Edit\r\n New Browser Tab\r\n \r\n \r\n\r\n this.debug.openDocumentStandAlone(e, this.debug.controlURLvalue)}>\r\n \r\n mdi-play-box-multiple\r\n \r\n\r\n \r\n Open Stand-Alone\r\n New Window\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n );\r\n }\r\n});\r\n\r\nVue.component('stack-vertical-content', {\r\n mixins: [BaseComponentMixin],\r\n data: function () {\r\n return {\r\n master_key: null,\r\n sourceraw: null,\r\n sourceurl: null,\r\n model: null,\r\n feedbackItems: [],\r\n\r\n displayFeedbackEval: null,\r\n directionEval: null,\r\n formSizeEval: null,\r\n verticalAlignChildrenEval: null,\r\n horizontalAlignChildrenEval: null,\r\n paddingEval: null,\r\n\r\n cc_form_changed_indicator: false,\r\n cc_form_changed_active: false,\r\n cc_form_changed_linked: false,\r\n cc_form_changed_button: null,\r\n cc_form_changed_form: null\r\n }\r\n },\r\n computed: {\r\n isbase: function () {\r\n return this.asbase;\r\n //return this.type == 'ControlContainer' || this.asbase;\r\n },\r\n totalItems() {\r\n let total = 0;\r\n\r\n // Each of the controls in the controls array will be rendered at least once.\r\n if (Array.isArray(this.controlData.Controls)) {\r\n total += this.controlData.Controls.length;\r\n }\r\n\r\n // There is a model and it is an object. In this case, we will repeat all of the controls for each item in the model.\r\n if (this.model && typeof this.model === 'object') {\r\n if (Array.isArray(this.model))\r\n total = total * this.model.length;\r\n else\r\n total = total * Object.keys(this.model).length;\r\n }\r\n\r\n // Control Groups for adding customizations based on installed modules\r\n if (this.controlData && this.controlData.ControlGroupName && this.controlData.ControlGroupName in utils.document_cache.usercontrols) {\r\n let groupitems = utils.document_cache.usercontrols[this.controlData.ControlGroupName];\r\n if (Array.isArray(groupitems))\r\n total += groupitems.length;\r\n }\r\n\r\n // Add one to include the component itself.\r\n total++;\r\n\r\n return total;\r\n },\r\n feedbackItemsComputed() {\r\n let items = [];\r\n if (this.feedbackItems.length) {\r\n items = this.feedbackItems.map(item => {\r\n let type = item.messageType;\r\n let textColor = item.messageType;\r\n let icon = 'mdi mdi-information';\r\n\r\n if (type == 'Info') {\r\n textColor = 'primary';\r\n icon = 'mdi mdi-information';\r\n }\r\n else if (type == 'Warning') {\r\n textColor = 'outbound';\r\n icon = 'mdi mdi-alert'\r\n }\r\n else if (type == 'Error') {\r\n textColor = 'error';\r\n icon = 'mdi mdi-alert'\r\n }\r\n else if (type == 'Success') {\r\n textColor = 'success';\r\n icon = 'mdi mdi-information'\r\n }\r\n\r\n let body;\r\n if (item.message)\r\n body = ;\r\n\r\n return (\r\n \r\n \r\n {body}\r\n \r\n );\r\n });\r\n }\r\n\r\n return (\r\n
\r\n \r\n {items}\r\n \r\n
\r\n );\r\n },\r\n displayFeedback() {\r\n if (!this.displayFeedbackEval && this.controlData.DisplayFeedback)\r\n this.displayFeedbackEval = utils.compile(this, this.controlData.DisplayFeedback);\r\n\r\n let displayFeedback = (this.displayFeedbackEval ? utils.evaluate(this.displayFeedbackEval, this) : 'Default').toLowerCase();\r\n\r\n return displayFeedback == 'true' || (displayFeedback == 'default' && this.isbase);\r\n },\r\n direction() {\r\n if (!this.directionEval && this.controlData.Direction)\r\n this.directionEval = utils.compile(this, this.controlData.Direction);\r\n if (this.directionEval)\r\n return utils.evaluate(this.directionEval, this);\r\n return 'Normal';\r\n },\r\n formSize() {\r\n if (!this.formSizeEval && this.controlData.FormSize)\r\n this.formSizeEval = utils.compile(this, this.controlData.FormSize);\r\n if (this.formSizeEval)\r\n return utils.evaluate(this.formSizeEval, this);\r\n return 'Normal';\r\n },\r\n verticalAlignChildren() {\r\n if (!this.verticalAlignChildrenEval && this.controlData.VerticalAlignChildren)\r\n this.verticalAlignChildrenEval = utils.compile(this, this.controlData.VerticalAlignChildren);\r\n if (this.verticalAlignChildrenEval)\r\n return utils.evaluate(this.verticalAlignChildrenEval, this);\r\n return '';\r\n },\r\n horizontalAlignChildren() {\r\n if (!this.horizontalAlignChildrenEval && this.controlData.HorizontalAlignChildren)\r\n this.horizontalAlignChildrenEval = utils.compile(this, this.controlData.HorizontalAlignChildren);\r\n if (this.horizontalAlignChildrenEval)\r\n return utils.evaluate(this.horizontalAlignChildrenEval, this);\r\n return '';\r\n },\r\n stackClasses() {\r\n let classes = [];\r\n if(this.isVertical) {\r\n if (this.horizontalAlignChildren) {\r\n switch (this.horizontalAlignChildren.toLowerCase()) {\r\n case 'middle': {\r\n classes.push('align-center');\r\n break;\r\n }\r\n case 'right': {\r\n classes.push('align-end');\r\n break;\r\n }\r\n default:\r\n classes.push('align-start');\r\n break;\r\n }\r\n }\r\n else {\r\n classes.push('align-start');\r\n }\r\n \r\n if (this.verticalAlignChildren) {\r\n switch (this.verticalAlignChildren.toLowerCase()) {\r\n case 'center': {\r\n classes.push('justify-center');\r\n break;\r\n }\r\n case 'bottom': {\r\n classes.push('justify-end');\r\n break;\r\n }\r\n case 'spacearound': {\r\n classes.push('justify-space-around');\r\n break;\r\n }\r\n case 'spacebetween': {\r\n classes.push('justify-space-between');\r\n break;\r\n }\r\n case 'spaceevenly': {\r\n classes.push('justify-space-evenly');\r\n break;\r\n }\r\n default:\r\n classes.push('justify-start');\r\n break;\r\n }\r\n }\r\n else {\r\n classes.push('justify-start');\r\n }\r\n }\r\n else {\r\n if(this.verticalAlignChildren) {\r\n switch(this.verticalAlignChildren.toLowerCase()) {\r\n case 'center': {\r\n classes.push('align-center');\r\n break;\r\n }\r\n case 'bottom': {\r\n classes.push('align-end');\r\n break;\r\n }\r\n default:\r\n classes.push('align-start');\r\n break;\r\n }\r\n }\r\n else {\r\n classes.push('align-start');\r\n }\r\n \r\n if(this.horizontalAlignChildren) {\r\n switch(this.horizontalAlignChildren.toLowerCase()) {\r\n case 'middle': {\r\n classes.push('justify-center');\r\n break;\r\n }\r\n case 'right': {\r\n classes.push('justify-end');\r\n break;\r\n }\r\n case 'spacearound': {\r\n classes.push('justify-space-around');\r\n break;\r\n }\r\n case 'spacebetween': {\r\n classes.push('justify-space-between');\r\n break;\r\n }\r\n case 'spaceevenly': {\r\n classes.push('justify-space-evenly');\r\n break;\r\n }\r\n default:\r\n classes.push('justify-start');\r\n break;\r\n }\r\n }\r\n else {\r\n classes.push('justify-start');\r\n }\r\n }\r\n\r\n return classes\r\n },\r\n padding() {\r\n if (!this.paddingEval && this.controlData.Padding)\r\n this.paddingEval = utils.compile(this, this.controlData.Padding);\r\n if (this.paddingEval)\r\n return utils.evaluate(this.paddingEval, this);\r\n return '';\r\n },\r\n isVertical() {\r\n return this.type && (this.type.toLowerCase().includes('vertical') || this.type.toLowerCase() === 'controlcontainer');\r\n },\r\n isHorizontal() {\r\n return this.type && this.type.toLowerCase().includes('horizontal');\r\n },\r\n overflowSetting() {\r\n if (this.isHorizontal && (this.parentType === 'ContentDef' || this.parentType == 'LayoutCard'))\r\n return 'hidden';\r\n else\r\n return 'auto';\r\n },\r\n formChangedIndicator() {\r\n if (!this.cc_form_changed_active)\r\n return false;\r\n\r\n if (!this.cc_form_changed_button?.prerender_complete)\r\n return false;\r\n\r\n if (!this.cc_form_changed_form?.prerender_complete)\r\n return false;\r\n\r\n return this.cc_form_changed_indicator;\r\n },\r\n sourcerawvalue: function () {\r\n if (this.sourceraw)\r\n return utils.evaluateObject(this.sourceraw, this);\r\n else\r\n return null;\r\n },\r\n sourceurlvalue: function () {\r\n if (this.sourceurl)\r\n return utils.evaluate(this.sourceurl, this);\r\n else\r\n return '';\r\n },\r\n\r\n Input: function () {\r\n if ('input' in this.$attrs)\r\n return this.$attrs.input;\r\n else\r\n return null;\r\n },\r\n },\r\n async created() {\r\n //utils.debug(`VerticalStackContent:${this.type}:${this.name}:${this._uid} create...`);\r\n\r\n this.master_key = utils.generateUUID();\r\n\r\n if (this.controlData.SourceType === 'Raw' && this.controlData.SourceRaw) {\r\n this.sourceraw = utils.compileObject(this, this.controlData.SourceRaw);\r\n\r\n if (this.todisplay)\r\n this.$sourcerawwatch = this.$watch(\r\n function () { return this.sourcerawvalue; },\r\n function (newvalue, oldvalue) {\r\n this.Refresh();\r\n },\r\n {\r\n deep: true\r\n }\r\n );\r\n }\r\n else if (this.controlData.SourceType === 'Url' && this.controlData.SourceUrl) {\r\n this.sourceurl = utils.compile(this, this.controlData.SourceUrl);\r\n\r\n this.$sourceurlwatch = this.$watch(\r\n function () { return this.sourceurlvalue; },\r\n function (newvalue, oldvalue) {\r\n this.Refresh();\r\n });\r\n \r\n }\r\n\r\n // Subscribe to the UIAction_DisplayFeedback event\r\n if (this.displayFeedback) {\r\n this.$on('Action-DisplayFeedback', this.performDisplayFeedback);\r\n\r\n if (this.controlData.Name) {\r\n this.$on(`Action-DisplayFeedback:${this.controlData.Name}`, this.performDisplayFeedback);\r\n EventBus.$on(`Action-DisplayFeedback:${this.controlData.Name}`, this.performDisplayFeedback);\r\n }\r\n }\r\n\r\n // Switch isready to cause the render to run again\r\n this.isready = true;\r\n },\r\n watch: {\r\n todisplay: function (newvalue) {\r\n if (newvalue && !this.$sourcerawwatch)\r\n this.$sourcerawwatch = this.$watch(\r\n function () { return this.sourcerawvalue; },\r\n function (newvalue, oldvalue) {\r\n this.Refresh();\r\n },\r\n {\r\n deep: true\r\n }\r\n );\r\n },\r\n },\r\n //Mounted Replaced with preRenderComplete\r\n destroyed() {\r\n // Unsubscribe from the UIAction_DisplayFeedback event\r\n if (this.displayFeedback) {\r\n this.$off('Action-DisplayFeedback', this.performDisplayFeedback);\r\n\r\n if (this.controlData.Name) {\r\n this.$off(`Action-DisplayFeedback:${this.controlData.Name}`, this.performDisplayFeedback);\r\n EventBus.$off(`Action-DisplayFeedback:${this.controlData.Name}`, this.performDisplayFeedback);\r\n }\r\n }\r\n\r\n if (this.$sourcerawwatch)\r\n this.$sourcerawwatch();\r\n if (this.$sourceurlwatch)\r\n this.$sourceurlwatch();\r\n },\r\n methods: {\r\n async preRenderComplete() {\r\n //utils.debug(`VerticalStackContent:${this.type}:${this.name}:${this._uid} preRenderComplete`);\r\n\r\n await this.Refresh();\r\n this.finishRenderHandler(this);\r\n },\r\n formChanged() {\r\n if (!this.cc_form_changed_active)\r\n return;\r\n\r\n if (!this.cc_form_changed_button?.prerender_complete)\r\n return;\r\n\r\n if (!this.cc_form_changed_form?.prerender_complete)\r\n return;\r\n\r\n this.cc_form_changed_indicator = true;\r\n },\r\n async performRefresh(action) {\r\n utils.log(`BaseStackMixin ${this.name} Refresh action`);\r\n\r\n if (action.ActionData && action.ActionData.Debug && action.ActionData.Debug.BreakPoint) debugger;\r\n\r\n try {\r\n // Reload any dynamic content (sources)\r\n await this.Refresh();\r\n\r\n // Update the master key which will cause all child controls to reload\r\n this.master_key = utils.generateUUID();\r\n\r\n try {\r\n await utils.success(action);\r\n } catch (e) { }\r\n }\r\n catch (e) {\r\n try {\r\n await utils.failure(action, { Data: e });\r\n } catch (e) { }\r\n }\r\n finally {\r\n try {\r\n await utils.complete(action);\r\n }\r\n catch (e) { }\r\n\r\n // Complete the promise for the executeAction method\r\n action.FinishFunc(true);\r\n }\r\n },\r\n async Refresh() {\r\n if (this.sourceraw)\r\n this.model = this.sourcerawvalue;\r\n else if (this.sourceurl)\r\n try {\r\n this.model = await utils.api.get(this.sourceurlvalue);\r\n }\r\n catch (e) {\r\n utils.warn(this.type + ' failed to evaluate SourceUrl ' + this.controlData.SourceUrl + ': ' + e);\r\n }\r\n // this.finishRenderHandler();\r\n },\r\n performDisplayFeedback(action) {\r\n try {\r\n utils.log(`${this.type} ${this.name} DisplayFeedback ${action.ActionData.MessageGroup} ${action.ActionData.Messages?.length || '0'}`);\r\n\r\n if (action.ActionData.Debug && action.ActionData.Debug.BreakPoint) debugger;\r\n\r\n let messageGroup = action.messagegroup ? utils.evaluate(action.messagegroup) : '';\r\n\r\n // If there is a message group, the new messages will replace any existing items for \r\n // that message group. We'll loop through the array backwards so we don't mess things up \r\n // when we remove an item.\r\n let i = this.feedbackItems.length;\r\n while (i--) {\r\n if (this.feedbackItems[i].messageGroup === messageGroup) {\r\n this.feedbackItems.splice(i, 1);\r\n }\r\n }\r\n\r\n let finalArray = [];\r\n\r\n if (action.messages_expn) {\r\n const messages = utils.evaluateObject(action.messages_expn, action.context);\r\n\r\n if (typeof messages === 'object' && Array.isArray(messages) && messages.length)\r\n messages.forEach(message => {\r\n finalArray.push({\r\n messageType: message.MessageType,\r\n message: message.Message,\r\n messageGroup: messageGroup,\r\n });\r\n });\r\n }\r\n else if (typeof action.messages === 'object' && Array.isArray(action.messages) && action.messages.length) {\r\n action.messages.forEach(message => {\r\n finalArray.push({\r\n messageType: message.messagetype,\r\n message: utils.evaluate(message.message, action.context),\r\n messageGroup: messageGroup,\r\n });\r\n });\r\n }\r\n\r\n if (finalArray.length > 0)\r\n this.feedbackItems.push(...finalArray);\r\n\r\n utils.success(action)\r\n }\r\n catch (e) {\r\n utils.failure(action, { Error: e })\r\n }\r\n finally {\r\n utils.complete(action);\r\n\r\n action.FinishFunc(true);\r\n }\r\n },\r\n\r\n generateItems(h, controlData, items, model, index, parentType, modelindex) {\r\n let tempItems = []\r\n for (let i = 0; i < controlData.Controls.length; i++) {\r\n const c = controlData.Controls[i];\r\n if (!(typeof c === 'object'))\r\n continue;\r\n\r\n let DynamicControl = utils.getDynamicComponent(h, c);\r\n\r\n if (!DynamicControl)\r\n DynamicControl = 'default-unknown';\r\n\r\n if (!c.$objectId) c.$objectId = utils.generateUUID();\r\n\r\n let id = `${this.master_key}_${c.$objectId}`;\r\n if (index) id = `${index}_${id}`;\r\n\r\n tempItems.push(\r\n this.finishRenderHandler(reference) }}\r\n type={c.ControlType}\r\n name={c.ControlData ? c.ControlData.Name : ''}\r\n root={this.root}\r\n parentType={parentType}\r\n controlData={c.ControlData}\r\n controlURL={c.ControlURL}\r\n sourceData={model}\r\n sourceIndex={modelindex}\r\n controlName={c.Name}\r\n scopeitems={this.scopeitems}\r\n controlscope={this.controlscope}\r\n on-grid-exported-text={(val) => this.$emit(\"grid-exported-text\", val)}\r\n cacheControl={c.CacheControl}\r\n controlEvents={c.Events}\r\n >\r\n \r\n );\r\n }\r\n if (this.direction === 'Reversed')\r\n tempItems.reverse();\r\n items.push(...tempItems);\r\n },\r\n getHeader(h, controlData) {\r\n if (controlData.HeaderControls && controlData.HeaderControls.length > 0) {\r\n const header = [];\r\n\r\n for (let i = 0; i < controlData.HeaderControls.length; i++) {\r\n const c = controlData.HeaderControls[i];\r\n let DynamicControl = utils.getDynamicComponent(h, c);\r\n if (!DynamicControl)\r\n DynamicControl = 'default-unknown';\r\n\r\n if (!c.$objectId) c.$objectId = utils.generateUUID();\r\n\r\n let id = `${this.master_key}_${c.$objectId}_${i}`;\r\n\r\n header.push(\r\n this.finishRenderHandler(reference) }}\r\n type={c.ControlType}\r\n key={id}\r\n name={c.ControlData ? (c.ControlData.Name || 'unnamed') : 'unnamed'}\r\n root={this.root}\r\n parentType=\"HorizontalStack\"\r\n controlData={c.ControlData}\r\n controlURL={c.ControlURL}\r\n controlName={c.Name}\r\n scopeitems={this.scopeitems}\r\n controlscope={this.controlscope}\r\n on-grid-exported-text={(val) => this.$emit(\"grid-exported-text\", val)}\r\n cacheControl={c.CacheControl}\r\n controlEvents={c.Events}\r\n >\r\n \r\n );\r\n }\r\n return header;\r\n }\r\n return null;\r\n },\r\n generateItemsFromModel(h, items, controlData, items_id, parentType) {\r\n if (this.model && typeof this.model === 'object') {\r\n if (Array.isArray(this.model))\r\n for (let i = 0; i < this.model.length; i++) {\r\n const item = this.model[i];\r\n const item_index = `${i}_${items_id}`;\r\n this.generateItems(h, controlData, items, item, item_index, parentType, i);\r\n }\r\n else\r\n Object.keys(this.model).forEach(key => {\r\n const item = this.model[key];\r\n const item_index = `${key}_${items_id}`;\r\n\r\n this.generateItems(h, controlData, items, item, item_index, parentType, key);\r\n });\r\n }\r\n else if (controlData.Controls)\r\n this.generateItems(h, controlData, items, null, items_id, parentType);\r\n\r\n // Control Groups for adding customizations based on installed modules\r\n if (controlData.ControlGroupName && controlData.ControlGroupName in utils.document_cache.usercontrols) {\r\n let groupitems = utils.document_cache.usercontrols[controlData.ControlGroupName];\r\n groupitems = { Controls: groupitems.map(c => c.Data) };\r\n this.generateItems(h, groupitems, items, null, items_id, parentType);\r\n }\r\n },\r\n },\r\n props: {\r\n type: null,\r\n asbase: false,\r\n },\r\n render(h) {\r\n try {\r\n if (!this.prerender_complete || !this.todisplay)\r\n return null;\r\n \r\n let items = [];\r\n let items_id = '_0';\r\n \r\n let controlData = this.controlData;\r\n \r\n const header = this.getHeader(h, controlData);\r\n let headerContent = null;\r\n if (header)\r\n headerContent = \r\n
\r\n {header}\r\n
;\r\n\r\n this.generateItemsFromModel(h, items, controlData, items_id, this.type);\r\n\r\n const style = {\r\n overflow: 'auto',\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n ...utils.resolveStyleHints(this.styleHints, this),\r\n width: this.isFullScreen ? '100%' : '', // Support full screen\r\n flexGrow: \"1\",\r\n flexShrink: \"1\"\r\n };\r\n\r\n let customClasses = \"\";\r\n if (this.styleHints && this.styleHints.CustomClasses) {\r\n customClasses = utils.resolveCustomClasses(this.styleHints, this);\r\n }\r\n \r\n const bodyStyle = {\r\n overflow: this.overflowSetting,\r\n display: \"flex\",\r\n flexDirection: this.isVertical ? \"column\" : 'row',\r\n flexGrow: 1,\r\n gap: this.padding ? this.padding + 'px' : '',\r\n padding: this.padding ? this.padding + 'px' : '',\r\n };\r\n\r\n let debug;\r\n if (this.debug)\r\n // Insert the debug refresh icon in the upper left corner of the control.\r\n // Hold down the control key to make this visible. Right click for more options.\r\n debug = (\r\n \r\n \r\n );\r\n\r\n return (\r\n \r\n {debug}\r\n {headerContent}\r\n {this.feedbackItemsComputed}\r\n
\r\n {items}\r\n
\r\n \r\n );\r\n }\r\n catch (e) {\r\n utils.error('VerticalStackContent Render failed', e);\r\n return
VerticalStackContent Failed to Render {e}
;\r\n }\r\n }\r\n});","import Vue from 'vue';\r\nimport utils from '../../Shared/utils.jsx';\r\nimport BaseStackMixin from './BaseStackMixin.jsx';\r\nimport VerticalStackContent from './VerticalStackContent.jsx';\r\nimport EventBus from '../event-bus.js';\r\nimport methods from '../../Shared/methods';\r\nimport computed from '../../Shared/computed';\r\nimport careHelpfulFunctions from '../../Shared/careHelpfulFunctions.jsx';\r\nconst cloneDeep = require('lodash.clonedeep')\r\n\r\nVue.component('stack-vertical', {\r\n data: function () {\r\n return {\r\n items_id: '_0',\r\n displayexpr: null,\r\n visibleexpr: null,\r\n container_list: [],\r\n display_list: [],\r\n isFullScreen: false,\r\n renderCount: 0,\r\n finishedRender: false,\r\n finishedRenderChildren: [],\r\n is_vstack_parent: true,\r\n }\r\n },\r\n async created() {\r\n if (this.isdebug) {\r\n utils.document_cache.loadInProgress[this.Location] = new Date().toLocaleTimeString();\r\n //utils.debug(`${this.LocationBrief} CREATE`);\r\n }\r\n\r\n if (this.controlData.DisplayExpression)\r\n this.displayexpr = utils.compileExpression(this, this.controlData.DisplayExpression);\r\n\r\n if (this.controlData.VisibleExpression)\r\n this.visibleexpr = utils.compileExpression(this, this.controlData.VisibleExpression);\r\n\r\n if (this.controlData.BreadCrumb && this.controlData.BreadCrumb.Text) {\r\n if (!this.breadcrumbtext)\r\n this.breadcrumbtext = utils.compile(this, this.controlData.BreadCrumb.Text);\r\n }\r\n\r\n if (this.controlData && this.controlData.SizeOptions)\r\n this.sizeOptionsObj = utils.compileObject(this, this.controlData.SizeOptions);\r\n\r\n // Subscribe to the UIAction_FullScreen event\r\n if (this.fullScreenCapable) {\r\n this.$on('Action-FullScreen', this.performFullScreen);\r\n\r\n if (this.controlData.Name) {\r\n this.$on(`Action-FullScreen:${this.controlData.Name}`, this.performFullScreen);\r\n EventBus.$on(`Action-FullScreen:${this.controlData.Name}`, this.performFullScreen);\r\n }\r\n }\r\n\r\n if (this.asbase || this.controlData.IsBase) {\r\n // Subscribe to a UIAction_ReplaceContent event\r\n this.$on('Action-ReplaceContent', this.performReplaceContent);\r\n this.$on('Action-Refresh', this.performRefresh);\r\n }\r\n\r\n // Subscribe by name so Target can be directed to a specific container\r\n if (this.controlData.Name) {\r\n this.$on(`Action-ReplaceContent:${this.controlData.Name}`, this.performReplaceContent);\r\n this.$on(`Action-Refresh:${this.controlData.Name}`, this.performRefresh);\r\n EventBus.$on(`Action-ReplaceContent:${this.controlData.Name}`, this.performReplaceContent);\r\n }\r\n },\r\n computed: {\r\n ...computed,\r\n todisplay: function () {\r\n let displayExpn = this.displayexpr;\r\n if (this.container_list.length > 0)\r\n displayExpn = this.display_list[this.display_list.length - 1];\r\n\r\n if (displayExpn) {\r\n const res = utils.evaluate(displayExpn, this, false,\r\n () => {\r\n // This is a callback that will only be called if evaluate throws an exception.\r\n // If this happens, we read the todisplayfield (so Vue knows we care) and then\r\n // after 100ms, we update todisplayfailed to cause Vue to re-evaluate todisplay.\r\n // (cap the retry at 10 times with increasing delay each attempt)\r\n if (this.todisplayfailed >= 0 && this.todisplayfailed < 10)\r\n setTimeout(() => this.todisplayfailed++, 50 * this.todisplayfailed);\r\n });\r\n\r\n //utils.debug(`DisplayExpression for ${this.name} ${this.type} evaluated to ${res ? 'true' : 'false'} ('${this.controlData.DisplayExpression}')`);\r\n return res;\r\n }\r\n else\r\n return true;\r\n },\r\n isvisible: function () {\r\n if (this.visibleexpr) {\r\n\r\n const res = utils.evaluate(this.visibleexpr, this, false,\r\n () => {\r\n // This is a callback that will only be called if evaluate throws an exception.\r\n // If this happens, we read the todisplayfield (so Vue knows we care) and then\r\n // after 100ms, we update todisplayfailed to cause Vue to re-evaluate todisplay.\r\n // (cap the retry at 10 times with increasing delay each attempt)\r\n if (this.todisplayfailed >= 0 && this.todisplayfailed < 10)\r\n setTimeout(() => this.todisplayfailed++, 50 * this.todisplayfailed);\r\n });\r\n\r\n return res;\r\n }\r\n else\r\n return true;\r\n },\r\n verticalAlignChildren() {\r\n if (!this.verticalAlignChildrenEval && this.controlData.VerticalAlignChildren)\r\n this.verticalAlignChildrenEval = utils.compile(this, this.controlData.VerticalAlignChildren);\r\n if (this.verticalAlignChildrenEval)\r\n return utils.evaluate(this.verticalAlignChildrenEval, this);\r\n return '';\r\n },\r\n horizontalAlignChildren() {\r\n if (!this.horizontalAlignChildrenEval && this.controlData.HorizontalAlignChildren)\r\n this.horizontalAlignChildrenEval = utils.compile(this, this.controlData.HorizontalAlignChildren);\r\n if (this.horizontalAlignChildrenEval)\r\n return utils.evaluate(this.horizontalAlignChildrenEval, this);\r\n return '';\r\n },\r\n breadCrumbText: function () {\r\n if (this.breadcrumbtext)\r\n return utils.evaluate(this.breadcrumbtext, this);\r\n else\r\n return null;\r\n },\r\n totalItems() {\r\n return 0;\r\n },\r\n fullScreenCapable() {\r\n if (!this.fullScreenCapableEval && this.controlData.FullScreenCapable !== undefined)\r\n this.fullScreenCapableEval = utils.compile(this, this.controlData.FullScreenCapable !== undefined);\r\n if (this.fullScreenCapableEval)\r\n return utils.evaluate(this.fullScreenCapableEval, this);\r\n return '';\r\n },\r\n name: function () {\r\n return this.controlData.Name + '__parent';\r\n },\r\n\r\n style() {\r\n let controlData = this.controlData;\r\n\r\n // Ignore the size for replace content (no size field is available, so just use the original size)\r\n //if (this.container_list.length > 0) {\r\n // controlData = this.container_list[this.container_list.length - 1];\r\n //}\r\n\r\n let sizeOptions;\r\n if (controlData.SizeOptions) {\r\n const sizeOptionsObj = utils.compileObject(this, controlData.SizeOptions);\r\n sizeOptions = utils.evaluateObject(sizeOptionsObj, this);\r\n }\r\n\r\n const style = {\r\n overflow: 'auto',\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n ...utils.resolveStyleHints(this.styleHints, this),\r\n width: this.isFullScreen ? '100%' : '', // Support full screen\r\n ...utils.getSize(sizeOptions, this.parentType, this.$parent),\r\n };\r\n if ((this.asbase || this.controlData.IsBase) && this.showbase) {\r\n style.border = \"solid 1px blue\";\r\n style.margin = \"2px\";\r\n style.padding = \"2px\";\r\n }\r\n\r\n return style;\r\n },\r\n\r\n Input: function () {\r\n if ('input' in this.$attrs)\r\n return this.$attrs.input;\r\n else\r\n return null;\r\n },\r\n },\r\n destroyed() {\r\n // Unsubscribe from the UIAction_FullScreen event\r\n if (this.fullScreenCapable) {\r\n this.$off('Action-FullScreen', this.performFullScreen);\r\n\r\n if (this.controlData.Name) {\r\n this.$off(`Action-FullScreen:${this.controlData.Name}`, this.performFullScreen);\r\n EventBus.$off(`Action-FullScreen:${this.controlData.Name}`, this.performFullScreen);\r\n }\r\n }\r\n\r\n this.$off('Action-ReplaceContent', this.performReplaceContent);\r\n this.$off('Action-Refresh', this.performRefresh);\r\n\r\n // Subscribe by name so Target can be directed to a specific container\r\n if (this.controlData.Name) {\r\n this.$off(`Action-ReplaceContent:${this.controlData.Name}`, this.performReplaceContent);\r\n this.$off(`Action-Refresh:${this.controlData.Name}`, this.performRefresh);\r\n EventBus.$off(`Action-ReplaceContent:${this.controlData.Name}`, this.performReplaceContent);\r\n }\r\n\r\n },\r\n mounted() {\r\n if (!this.todisplay)\r\n this.renderComplete();\r\n },\r\n methods: {\r\n ...methods,\r\n async performReplaceContent(action) {\r\n utils.log(`${this.type} ${this.controlData.Name} ReplaceContent`);\r\n\r\n if (action.ActionData.Debug && action.ActionData.Debug.BreakPoint) debugger;\r\n\r\n try {\r\n const actionControlData = cloneDeep(action.controlData);\r\n\r\n actionControlData.id = utils.generateUUID();\r\n actionControlData.$nointerp = true;\r\n\r\n //action.vars = utils.evaluateObject(action.varsexpn, action.context);\r\n if (action.breadcrumbtextexpn) {\r\n actionControlData.breadcrumbtext = utils.evaluate(action.breadcrumbtextexpn, action.context);\r\n }\r\n\r\n actionControlData.Vars = utils.evaluateObject(action.varsexpn, action.context);\r\n\r\n let displayexpn = null;\r\n if (actionControlData.DisplayExpression)\r\n displayexpn = utils.compileExpression(this, actionControlData.DisplayExpression);\r\n \r\n if (action.ActionData.ControlData.BreadCrumb && action.ActionData.ControlData.BreadCrumb.Action == 'Append') {\r\n this.container_list.push(actionControlData);\r\n this.display_list.push(displayexpn);\r\n }\r\n else {\r\n this.container_list = [actionControlData];\r\n this.display_list = [displayexpn];\r\n }\r\n\r\n try {\r\n await utils.success(action);\r\n } catch (e) { }\r\n }\r\n catch (e) {\r\n utils.warn(`VerticalStack_parent ${this.name} ReplaceContent failed`, e);\r\n\r\n try {\r\n await utils.failure(action);\r\n } catch (e) { }\r\n }\r\n finally {\r\n try {\r\n await utils.complete(action);\r\n }\r\n catch (e) { }\r\n\r\n // Complete the promise for the executeAction method\r\n action.FinishFunc(true);\r\n }\r\n },\r\n async performRefresh(action) {\r\n utils.log(`${this.type} ${this.controlData.Name} Refresh`);\r\n\r\n if (action.ActionData?.Debug && action.ActionData?.Debug.BreakPoint) debugger;\r\n\r\n try {\r\n // Changing the key for the user control causes Vue to reload\r\n this.items_id = utils.generateUUID();\r\n \r\n try {\r\n await utils.success(action);\r\n } catch (e) { }\r\n }\r\n catch (e) {\r\n try {\r\n await utils.failure(action);\r\n } catch (e) { }\r\n }\r\n finally {\r\n try {\r\n await utils.complete(action);\r\n }\r\n catch (e) { }\r\n\r\n // Complete the promise for the executeAction method\r\n action.FinishFunc(true);\r\n }\r\n },\r\n performFullScreen(action) {\r\n try {\r\n utils.log(`ActionService FullScreen ${action.ActionData.Title} ${action.ActionData.Body}`);\r\n\r\n if (action.ActionData.Debug && action.ActionData.Debug.BreakPoint) debugger;\r\n\r\n this.$el.webkitRequestFullScreen();\r\n this.isFullScreen = true;\r\n\r\n utils.success(action);\r\n }\r\n catch (e) {\r\n utils.failure(action, { Status: e.status, StatusText: e.response.statusText });\r\n }\r\n finally {\r\n utils.complete(action);\r\n\r\n action.FinishFunc(true);\r\n }\r\n },\r\n navToBreadCrumb(e, index) {\r\n if (index < 0)\r\n this.container_list.splice(0, this.container_list.length);\r\n else\r\n this.container_list.splice(index + 1, this.container_list.length - index);\r\n },\r\n generateBreadCrumbs(h) {\r\n if (this.controlData.BreadCrumb && this.controlData.BreadCrumb.Text) {\r\n const crumbs = [];\r\n \r\n crumbs.push(\r\n this.navToBreadCrumb(e, -1)}>{this.breadCrumbText}\r\n );\r\n crumbs.push(mdi mdi-chevron-right);\r\n\r\n for (let i = 0; i < this.container_list.length; i++) {\r\n const c = this.container_list[i];\r\n if (c.BreadCrumb && c.BreadCrumb.Action == 'Append' && c.breadcrumbtext) {\r\n const bctext = c.breadcrumbtext;\r\n\r\n crumbs.push(\r\n this.navToBreadCrumb(e, i)}>{bctext}\r\n );\r\n crumbs.push(mdi mdi-chevron-right);\r\n }\r\n }\r\n \r\n return (
{crumbs}
);\r\n }\r\n else\r\n return null;\r\n },\r\n finishRenderHandler(component) {\r\n if (this.finishedRender)\r\n return;\r\n this.renderCount++;\r\n this.finishedRenderChildren.push(component);\r\n\r\n if (this.renderCount >= this.totalItems) {\r\n this.renderComplete();\r\n }\r\n },\r\n async renderComplete() {\r\n this.finishedRender = true;\r\n if (this.isdebug) {\r\n //utils.debug(`${this.LocationBrief} FINISH *`);\r\n delete utils.document_cache.loadInProgress[this.Location];\r\n }\r\n this.$emit('finished-render', this);\r\n },\r\n },\r\n props: {\r\n root: null,\r\n parentType : null,\r\n controlData: null,\r\n sourceIndex: null,\r\n sourceData: null,\r\n type: null,\r\n asbase: false,\r\n debug: null,\r\n scopeitems: null,\r\n controlscope: null,\r\n },\r\n render(h) {\r\n try {\r\n // This component contains the ReplaceContent action listener and then\r\n // just acts as a simple wrapper for stack-vertical-content where the\r\n // content lives.\r\n\r\n if (!this.todisplay)\r\n return null;\r\n\r\n let items_id = this.items_id;\r\n \r\n let controlData = this.controlData;\r\n \r\n if (this.container_list.length > 0) {\r\n controlData = this.container_list[this.container_list.length - 1];\r\n items_id = `_${this.items_id}_${controlData.id || this.container_list.length}`;\r\n }\r\n \r\n const breadcrumb = this.generateBreadCrumbs(h);\r\n\r\n return (\r\n \r\n \r\n {breadcrumb}\r\n \r\n this.finishRenderHandler(reference) }}\r\n type={this.type}\r\n name={controlData.Name}\r\n root={this.root}\r\n parentType={this.parentType}\r\n controlData={controlData}\r\n sourceIndex={this.sourceIndex}\r\n sourceData={this.sourceData}\r\n asbase={this.asbase}\r\n debug={this.debug}\r\n scopeitems={this.scopeitems}\r\n controlscope={this.controlscope}\r\n on-grid-exported-text={(val) => this.$emit(\"grid-exported-text\", val)}\r\n input={this.Input}\r\n >\r\n \r\n \r\n \r\n );\r\n }\r\n catch (e) {\r\n utils.error('VerticalLayout Render failed', e);\r\n return
VerticalLayout Failed to Render {e}
;\r\n }\r\n }\r\n});","import Vue from 'vue';\r\nimport utils from '../../Shared/utils.jsx';\r\nimport methods from '../../Shared/methods';\r\nimport BaseComponent from './BaseComponentMixin.jsx';\r\n\r\nfunction findTextInModel(cmodel, findText, casesensitive, occurrence) {\r\n if (!cmodel) return null;\r\n\r\n if (Array.isArray(cmodel))\r\n for (let i = 0; i < cmodel.length; i++) {\r\n const node = cmodel[i];\r\n if (typeof node === 'object') {\r\n const found = findTextInModel(node, findText, casesensitive, occurrence);\r\n if (found)\r\n return found;\r\n }\r\n \r\n if (typeof node === 'string')\r\n if (((casesensitive && node.includes(findText)) || (!casesensitive && node.toLowerCase().includes(findText))) && --occurrence.value <= 0)\r\n return cmodel;\r\n }\r\n else\r\n for (let key in cmodel) {\r\n if (key.substr(0, 1) === '$') continue;\r\n const node = cmodel[key];\r\n\r\n if (((casesensitive && key.includes(findText)) || (!casesensitive && key.toLowerCase().includes(findText))) && --occurrence.value <= 0)\r\n return cmodel;\r\n\r\n if (typeof node === 'object') {\r\n const found = findTextInModel(node, findText, casesensitive, occurrence);\r\n if (found)\r\n return found;\r\n }\r\n\r\n if (typeof node === 'string')\r\n if (((casesensitive && node.includes(findText)) || (!casesensitive && node.toLowerCase().includes(findText))) && --occurrence.value <= 0)\r\n return cmodel;\r\n }\r\n\r\n return null;\r\n}\r\n\r\nVue.component('tree-label', {\r\n data: () => ({\r\n title: null,\r\n titletext: null,\r\n schema: null,\r\n color: null,\r\n }),\r\n created() {\r\n if (this.cmodel && '$typeSchema' in this.cmodel)\r\n this.$watch('cmodel.$typeSchema', function (val,oldval) { if (this.typeSchema) this.Refresh(); });\r\n },\r\n mounted() {\r\n if (this.typeSchema)\r\n this.Refresh();\r\n },\r\n computed: {\r\n ControlData: function () {\r\n return this.cmodel.ControlData;\r\n },\r\n ActionData: function () {\r\n return this.cmodel.ActionData;\r\n },\r\n ActionExpression: function () {\r\n return this.cmodel.ActionExpression;\r\n },\r\n Field: function () {\r\n return this.cmodel.Field;\r\n },\r\n Name: function () {\r\n return this.cmodel.Name;\r\n },\r\n StateName: function () {\r\n return this.cmodel.StateName;\r\n },\r\n EventName: function () {\r\n return this.cmodel.EventName;\r\n },\r\n NextStatePath: function () {\r\n return this.cmodel.NextStatePath;\r\n },\r\n },\r\n methods: {\r\n ...methods,\r\n async Refresh() {\r\n try {\r\n this.schema = await utils.schema.get(this.typeSchema);\r\n const res = utils.schema.resolve_Of(this.schema);\r\n\r\n this.titletext = res.title;\r\n\r\n if (res.documentEditorTitle)\r\n this.title = utils.compile(this, res.documentEditorTitle);\r\n else\r\n this.title = null;\r\n }\r\n catch (e) {\r\n utils.warn('Error resolving documentEditorTitle in TreeView with typeSchema:' + this.typeSchema + '; ' + e);\r\n this.title = '';\r\n }\r\n }\r\n },\r\n props: {\r\n label: '',\r\n text: '',\r\n typeSchema: null,\r\n cmodel: null,\r\n parent: null,\r\n },\r\n render() {\r\n let title = this.titletext || this.text || '';\r\n if (this.title)\r\n try {\r\n title = utils.evaluate(this.title, this.cmodel);\r\n }\r\n catch (e) {\r\n utils.warn('TreeView title failed to evaluate title: ' + e);\r\n }\r\n\r\n let label = this.label;\r\n const suffix = title || (this.schema ? this.schema.title : '');\r\n if (suffix)\r\n label += ': ' + suffix;\r\n\r\n //const color = ('$typeSchema' in this.cmodel) ? 'black' : 'gray';\r\n let highlight;\r\n if (this.cmodel.ActionExpression && this.cmodel.ActionExpression.startsWith('false'))\r\n highlight = true;\r\n\r\n const classNames = {\r\n 'treeview-node': true,\r\n selected: this.parent.SelectedNode == this.cmodel,\r\n highlight: highlight,\r\n hastype: '$typeSchema' in this.cmodel && !highlight,\r\n hasnotype: !('$typeSchema' in this.cmodel) && !highlight,\r\n };\r\n\r\n let styles;\r\n if (this.color)\r\n styles = { color: this.color };\r\n\r\n //if (this.parent.SelectedNode == this.cmodel) style={{ whiteSpace: \"nowrap\", fontWeight: \"bold\" }} \r\n return this.parent.SelectNode(this.cmodel)}> {label};\r\n //else\r\n // return this.parent.SelectNode(this.cmodel)}> {label};\r\n }\r\n});\r\n\r\nVue.component('tree-node', {\r\n data: () => ({\r\n schema: null,\r\n title: null,\r\n }),\r\n methods: {\r\n ...methods,\r\n toggleVisible: function(key)\r\n {\r\n this.cmodel[key] = this.cmodel[key] === 'true' ? 'false' : 'true';\r\n }\r\n },\r\n props: {\r\n name: '',\r\n root: null,\r\n parent: null,\r\n cmodel: null,\r\n level: 0,\r\n },\r\n render() {\r\n if (!this.cmodel)\r\n return null;\r\n\r\n const elements = [];\r\n if (Array.isArray(this.cmodel))\r\n for (let i = 0; i < this.cmodel.length; i++) {\r\n const node = this.cmodel[i];\r\n\r\n if (typeof node === 'object') {\r\n const visible_key = '$' + i + '_expanded';\r\n if (!this.cmodel[visible_key])\r\n Vue.set(this.cmodel, visible_key, this.level <= 0 ? 'true' : 'false');\r\n\r\n const vis = this.cmodel[visible_key] === 'true';\r\n const visctl = vis ? : ;\r\n\r\n elements.push(\r\n
\r\n this.toggleVisible(visible_key)}>{visctl}\r\n \r\n
\r\n );\r\n\r\n if (vis)\r\n elements.push();\r\n }\r\n //else\r\n // elements.push([{i}]);\r\n }\r\n else\r\n for (let key in this.cmodel)\r\n {\r\n if (key.substr(0, 1) === '$') continue;\r\n const node = this.cmodel[key];\r\n\r\n if (node && typeof node === 'object')\r\n {\r\n const visible_key = '$' + key + '_expanded';\r\n if (!this.cmodel[visible_key])\r\n Vue.set(this.cmodel, visible_key, this.level <= 0 ? 'true' : 'false');\r\n\r\n const vis = this.cmodel[visible_key] === 'true';\r\n const visctl = vis ? : ;\r\n\r\n elements.push(\r\n
\r\n this.toggleVisible(visible_key)}>{visctl}\r\n \r\n
\r\n );\r\n if (vis)\r\n elements.push();\r\n }\r\n //else\r\n // elements.push({key});\r\n }\r\n\r\n return (\r\n
\r\n {elements}\r\n
\r\n );\r\n }\r\n});\r\n\r\nVue.component('tree-view', {\r\n mixins: [BaseComponent],\r\n data: () => ({\r\n title: null,\r\n sourceurl: null,\r\n sourceraw: null,\r\n cmodel: null,\r\n selectednode: {},\r\n actions: [],\r\n resizable: false,\r\n tree_width: 400,\r\n findText: '',\r\n findOccurrence: 1,\r\n findCaseSensitive: false,\r\n sourceurl_literal: null,\r\n history: []\r\n }),\r\n async created() {\r\n if (this.controlData.SourceType === 'Url' && this.controlData.SourceUrl)\r\n {\r\n this.sourceurl = utils.compile(this, this.controlData.SourceUrl);\r\n\r\n this.$watch(\r\n function () {\r\n return utils.evaluate(this.sourceurl, this);\r\n },\r\n function (val, oldval) {\r\n this.Refresh();\r\n }\r\n );\r\n }\r\n else if (this.controlData.SourceType === 'Raw' && this.controlData.SourceRaw)\r\n this.sourceraw = utils.compileObject(this, this.controlData.SourceRaw);\r\n\r\n this.title = utils.compile(this, this.controlData.Title);\r\n\r\n this.resizable = (\r\n this.controlData.WidthResizeBarVisible &&\r\n this.controlData.SizeOptions &&\r\n this.controlData.SizeOptions.Width &&\r\n this.controlData.SizeOptions.Width.Mode == 'Fixed' &&\r\n this.controlData.SizeOptions.Width.Units == 'Pixels' &&\r\n this.controlData.SizeOptions.Width.Value ) ? true : false;\r\n\r\n if (this.resizable)\r\n this.tree_width = parseInt(this.controlData.SizeOptions.Width.Value);\r\n\r\n //if (this.controlData.Actions)\r\n // for (var i = 0; i < this.controlData.Actions.length; i++)\r\n // this.actions.push(await utils.compileAction(this, this.controlData.Actions[i]));\r\n },\r\n //Mounted Replaced with preRenderComplete\r\n computed: {\r\n Model: function () {\r\n return this.cmodel;\r\n },\r\n SelectedNode: function ()\r\n {\r\n return this.selectednode;\r\n },\r\n },\r\n methods: {\r\n async preRenderComplete() {\r\n await this.Refresh();\r\n this.finishRenderHandler(this);\r\n },\r\n ExpandToSelected()\r\n {\r\n this.ExpandToNode(this.selectednode);\r\n },\r\n ExpandToNode(node)\r\n {\r\n const path = [];\r\n if (utils.findNodePath(path, this.cmodel, node))\r\n {\r\n // path now points to the node in the cmodel, just walk back down and flag all elements as expanded\r\n for (let i = 0; i < path.length - 1; i++)\r\n {\r\n const item = path[i];\r\n\r\n let visible_key;\r\n if ('name' in item)\r\n visible_key = '$' + item.name + '_expanded';\r\n else if ('index' in item)\r\n visible_key = '$' + item.index + '_expanded';\r\n\r\n Vue.set(item.node, visible_key, 'true');\r\n }\r\n return path;\r\n }\r\n },\r\n SelectNode(node, expandto)\r\n {\r\n let path;\r\n this.selectednode = node;\r\n if (expandto)\r\n path = this.ExpandToNode(node);\r\n\r\n utils.executeAndCompileAllActions(this.controlData.Actions, null, this);\r\n\r\n //for (var i = 0; i < this.actions.length; i++)\r\n // utils.executeAction(this.actions[i], null, this);\r\n\r\n return path;\r\n },\r\n SetModel(cmodel) {\r\n this.cmodel = cmodel;\r\n },\r\n async SetSourceUrl(value) {\r\n if (this.sourceurl_literal) {\r\n this.history.push(this.sourceurl_literal);\r\n this.sourceurl_literal = value;\r\n }\r\n this.cmodel = null;\r\n this.cmodel = await utils.api.get(value);\r\n },\r\n async Refresh() {\r\n if (this.controlData.SourceType == 'Url' && this.sourceurl) {\r\n this.cmodel = null;\r\n this.sourceurl_literal = utils.evaluate(this.sourceurl, this);\r\n this.cmodel = await utils.api.get(this.sourceurl_literal);\r\n }\r\n else if (this.sourceraw)\r\n this.cmodel = utils.evaluateObject(this.sourceraw, this);\r\n else\r\n this.cmodel = {};\r\n },\r\n splitterMouseDown(e) {\r\n document.addEventListener('mousemove', this.splitterMouseMove);\r\n document.addEventListener('mouseup', this.splitterMouseUp);\r\n this.initialX = e.clientX;\r\n this.initialWidth = this.tree_width;\r\n e.cancelBubble = true;\r\n e.stopPropagation();\r\n },\r\n splitterMouseMove(e) {\r\n const dx = e.clientX - this.initialX;\r\n this.tree_width = this.initialWidth + dx;\r\n e.cancelBubble = true;\r\n e.stopPropagation();\r\n },\r\n splitterMouseUp(e) {\r\n document.removeEventListener('mousemove', this.splitterMouseMove);\r\n document.removeEventListener('mouseup', this.splitterMouseUp);\r\n e.cancelBubble = true;\r\n e.stopPropagation();\r\n },\r\n setFindText(value) {\r\n if (this.findText !== value) {\r\n this.findText = value;\r\n this.findOccurrence = 0;\r\n }\r\n },\r\n find(e, value) {\r\n // If you keep clicking Find, it will progressively search for more matches. If you change\r\n // the find text, it will reset findOccurrence to 0 which will make it start at the beginning.\r\n this.findOccurrence++;\r\n\r\n const v = this.findCaseSensitive ? value : value.toLowerCase();\r\n const node = findTextInModel(this.cmodel, v, this.findCaseSensitive, { value: this.findOccurrence });\r\n if (node) {\r\n const path = this.SelectNode(node, true);\r\n // Walk up the path until we find a $typeSchema member - leave that as the selected node\r\n for (let i = path.length - 1; i >= 0; i--) {\r\n const item = path[i];\r\n if ('$typeSchema' in item.node) {\r\n if (item.node != node)\r\n this.SelectNode(item.node, false);\r\n break;\r\n }\r\n }\r\n }\r\n else {\r\n // If no match is found, always reset to the beginning, deselect everything\r\n this.findOccurrence = 0;\r\n this.SelectNode(null, false);\r\n }\r\n },\r\n async navigateBack() {\r\n if (this.history.length > 0) {\r\n const last = this.history[this.history.length - 1];\r\n this.history.splice(this.history.length - 1);\r\n\r\n this.cmodel = null;\r\n this.cmodel = await utils.api.get(last);\r\n }\r\n }\r\n },\r\n props: {\r\n },\r\n render() {\r\n if (!this.todisplay)\r\n return null;\r\n\r\n if (!this.cmodel)\r\n return
Loading...
;\r\n\r\n const style = {\r\n borderStyle: 'solid',\r\n borderWidth: '1px',\r\n //padding: \"5px\",\r\n //overflow: \"auto\",\r\n display: \"flex\",\r\n flexDirection: \"row\",\r\n flexGrow: \"0\",\r\n flexShrink: \"1\",\r\n fontSize: \"14px\"\r\n };\r\n\r\n let resizer;\r\n let resizeWidth;\r\n if (this.resizable) {\r\n resizer = (\r\n this.splitterMouseDown(e)}>\r\n \r\n );\r\n resizeWidth = {\r\n minWidth: this.tree_width + 'px',\r\n maxWidth: this.tree_width + 'px'\r\n };\r\n style.alignSelf = \"normal\";\r\n }\r\n else\r\n style = { ...style, ...utils.getSize(this.controlData.SizeOptions, this.parentType, this.$parent) };\r\n\r\n let historybtn;\r\n if (this.history.length > 0)\r\n historybtn = (\r\n this.navigateBack()}>\r\n mdi mdi-arrow-left-circle\r\n \r\n );\r\n\r\n return (\r\n \r\n
\r\n

{historybtn} {utils.evaluate(this.title, this)}

\r\n
\r\n this.setFindText(value)} style={{ maxWidth: \"220px\" }} >\r\n this.find(e, this.findText)}>mdi mdi-magnify\r\n this.findCaseSensitive = !this.findCaseSensitive}>mdi mdi-format-size\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n {resizer}\r\n \r\n );\r\n }\r\n});","import Vue from 'vue';\r\nimport utils from '../../Shared/utils.jsx';\r\nimport BaseComponent from './BaseComponentMixin.jsx';\r\nimport EventBus from '@/Application/event-bus';\r\nimport MarkdownIt from 'markdown-it';\r\n\r\nVue.component('basic-text', {\r\n mixins: [\r\n BaseComponent,\r\n ],\r\n data: function () {\r\n return {\r\n textrenderer: null,\r\n tooltiprenderer: null,\r\n colorEval: null,\r\n fontSizeEval: null,\r\n wrapTextEval: null,\r\n cssClassEval: null,\r\n async_url: null,\r\n async_text: null,\r\n async_tooltip: null,\r\n Input: {},\r\n\r\n textvalue: null\r\n }\r\n },\r\n created() {\r\n this.textvalue = this.controlData.Text || '';\r\n },\r\n computed: {\r\n tooltip() {\r\n try {\r\n if(this.tooltiprenderer === null && this.controlData.Tooltip)\r\n this.tooltiprenderer = utils.compile(this, this.Translate(this.controlData.Tooltip));\r\n if(this.tooltiprenderer)\r\n return utils.evaluate(this.tooltiprenderer, this);\r\n return '';\r\n }\r\n catch (e) {\r\n utils.warn('Tooltip could not evaluate expression: ' + this.controlData.Tooltip + '; ' + e);\r\n return '';\r\n }\r\n },\r\n wrapText() {\r\n try {\r\n if(this.wrapTextEval === null && this.controlData.WrapText)\r\n this.wrapTextEval = utils.compile(this, this.controlData.WrapText);\r\n if(this.wrapTextEval)\r\n return utils.evaluate(this.wrapTextEval, this) == 'true' ? 'normal' : 'nowrap';\r\n return 'nowrap';\r\n }\r\n catch (e) {\r\n utils.warn('Wrap text could not evaluate expression: ' + this.controlData.WrapText + '; ' + e);\r\n return 'nowrap';\r\n }\r\n },\r\n fontSize() {\r\n try {\r\n if(this.fontSizeEval === null && this.controlData.FontSize)\r\n this.fontSizeEval = utils.compile(this, this.controlData.FontSize);\r\n if(this.fontSizeEval)\r\n return utils.resolveFontSize(utils.evaluate(this.fontSizeEval, this));\r\n return '';\r\n }\r\n catch (e) {\r\n utils.warn('Font size could not evaluate expression: ' + this.controlData.FontSize + '; ' + e);\r\n return '14px';\r\n }\r\n },\r\n color() {\r\n try {\r\n if(this.colorEval === null && this.controlData.Color)\r\n this.colorEval = utils.compile(this, this.controlData.Color);\r\n if(this.colorEval)\r\n return utils.evaluate(this.colorEval, this);\r\n return '';\r\n }\r\n catch (e) {\r\n utils.warn('Color could not evaluate expression: ' + this.controlData.Color + '; ' + e);\r\n return '#444';\r\n }\r\n },\r\n cssClasses() {\r\n try {\r\n let classes = {};\r\n if(this.cssClassEval === null && this.controlData.CssClass)\r\n this.cssClassEval = utils.compile(this, this.controlData.CssClass);\r\n if(this.cssClassEval)\r\n return utils.evaluate(this.cssClassEval, this)?.split(' ')?.forEach(item => classes[item] = true);\r\n\r\n \r\n\r\n return classes;\r\n }\r\n catch (e) {\r\n utils.warn('CssClasses could not evaluate expression: ' + this.controlData.CssClass + '; ' + e);\r\n return {};\r\n }\r\n },\r\n customClasses() {\r\n let classes = { 'c-Text': true, [`c-name-${this.name || 'unnamed'}`]: true };\r\n\r\n let customClasses = \"\";\r\n if (this.styleHints && this.styleHints.CustomClasses) {\r\n customClasses = utils.resolveCustomClasses(this.styleHints, this);\r\n if (customClasses) {\r\n customClasses = customClasses.split(' ');\r\n for (let i = 0; i < customClasses.length; i++) {\r\n classes[customClasses[i]] = true;\r\n }\r\n }\r\n }\r\n\r\n return classes;\r\n },\r\n textStyles() {\r\n let styles = {};\r\n\r\n if (this.fontSize)\r\n styles['font-size'] = this.fontSize;\r\n\r\n if (this.color)\r\n styles.color = this.color;\r\n //else\r\n // styles.color = '#444';\r\n\r\n return {\r\n ...styles,\r\n ...utils.resolveStyleHints(this.styleHints, this),\r\n overflow: \"visible\", // \"hidden\",\r\n whiteSpace: this.wrapText,\r\n //lineHeight: this.wrapText == \"normal\" ? \"normal\" : \"inherit\", // Messes up all grid rows, reduces height, looks bad\r\n display: \"inline-block\"\r\n };\r\n },\r\n size() {\r\n return { ...this.sizeStyle, display: 'flex', flexDirection: 'column' };\r\n },\r\n markdownHtml() {\r\n if (!this.controlData?.Markdown)\r\n return \"\";\r\n\r\n var valueEval = utils.compile(this, this.textvalue);\r\n\r\n if (valueEval) {\r\n const res = utils.evaluate(valueEval, this)\r\n \r\n const md = MarkdownIt()\r\n const result = md.render(res);\r\n \r\n return result;\r\n }\r\n\r\n return \"\";\r\n }\r\n },\r\n methods: {\r\n preRenderComplete() {\r\n if (this.controlData.AsyncLookup === true) {\r\n this.async_url = utils.compile(this, this.controlData.AsyncOptions.URL);\r\n this.async_text = utils.compile(this, this.controlData.AsyncOptions.Text);\r\n this.async_tooltip = utils.compile(this, this.controlData.AsyncOptions.Tooltip);\r\n }\r\n this.finishRenderHandler(this);\r\n\r\n if (this.controlData.AsyncLookup === true) {\r\n this.LookupText();\r\n }\r\n },\r\n async LookupText() {\r\n try {\r\n const url = utils.evaluate(this.async_url, this);\r\n if (url) {\r\n const res = await utils.api.get(url);\r\n if (res)\r\n Vue.set(this.Input, 'Data', res);\r\n else\r\n Vue.set(this.Input, 'Data', '');\r\n\r\n // Update text with the expression from the async text property - should cause translation component to re-evaluate\r\n this.textvalue = this.controlData.AsyncOptions.Text;\r\n //this.textrenderer = this.async_text;\r\n this.tooltiprenderer = this.async_tooltip;\r\n }\r\n }\r\n catch (e)\r\n {\r\n utils.warn('Async lookup failed to evaluate url: ' + this.controlData.AsyncOptions.URL + '; ' + e, e);\r\n }\r\n }\r\n },\r\n props: {\r\n },\r\n render(h) {\r\n try {\r\n if (!this.todisplay)\r\n return null;\r\n\r\n if (this.controlData?.Markdown) {\r\n return (\r\n \r\n \r\n \r\n \r\n );\r\n }\r\n \r\n return (\r\n \r\n this.$emit(\"grid-exported-text\", val)}\r\n >\r\n \r\n );\r\n }\r\n catch(e) {\r\n utils.error('Text Render failed', e);\r\n return
Text Failed to Render {e}
;\r\n }\r\n }\r\n});","import Vue from 'vue';\r\nimport utils from '../../Shared/utils.jsx';\r\nimport BaseComponent from './BaseComponentMixin.jsx';\r\n\r\nVue.component('select-list', {\r\n mixins: [BaseComponent],\r\n data: function () {\r\n return {\r\n source: [],\r\n sourceurl: null,\r\n sourceraw: null,\r\n\r\n selectedvalueexpr: null,\r\n }\r\n },\r\n created() {\r\n switch (this.controlData.SourceType)\r\n {\r\n case 'Raw':\r\n this.sourceraw = utils.compileObject(this, this.controlData.Source);\r\n break;\r\n\r\n case 'URL':\r\n this.sourceurl = utils.compile(this, this.controlData.SourceURL);\r\n break;\r\n }\r\n\r\n if (this.controlData.SelectedValue)\r\n this.selectedvalueexpr = utils.compile(this, this.controlData.SelectedValue);\r\n },\r\n //Mounted Replaced with preRenderComplete\r\n computed: {\r\n selectedValue: function () {\r\n const fields = this.controlData.FieldMappings;\r\n\r\n let value;\r\n if (this.selectedvalueexpr)\r\n value = utils.evaluate(this.selectedvalueexpr, this);\r\n\r\n return this.source.findIndex(s => s[fields.Value] == value);\r\n }\r\n },\r\n methods: {\r\n async preRenderComplete() {\r\n await this.Refresh();\r\n this.finishRenderHandler(this);\r\n },\r\n async Refresh() {\r\n if (this.sourceurl) {\r\n this.source = await utils.api.get(utils.evaluate(this.sourceurl, this));\r\n }\r\n else if (this.sourceraw) {\r\n this.source = utils.evaluateObject(this.sourceraw, this);\r\n }\r\n },\r\n selectItem(e, index, item) {\r\n const fields = this.controlData.FieldMappings;\r\n\r\n this.utils.executeAndCompileAllActions(this.controlData.Actions, { Value: item[fields.Value], SourceItem: item, SourceIndex: index }, this);\r\n },\r\n },\r\n props: {\r\n },\r\n render(h) {\r\n if(!this.todisplay)\r\n return null;\r\n \r\n try {\r\n const fields = this.controlData.FieldMappings;\r\n const items = [];\r\n const source = this.source || [];\r\n \r\n for (let i = 0; i < source.length; i++) {\r\n const item = source[i];\r\n \r\n items.push(\r\n this.selectItem(e, i, item)}>\r\n \r\n \r\n {item[fields.Title]}\r\n {item[fields.Description]}\r\n \r\n \r\n );\r\n }\r\n \r\n const style = {\r\n ...this.sizeStyle,\r\n ...utils.resolveStyleHints(this.styleHints, this),\r\n };\r\n\r\n let customClasses = \"\";\r\n if (this.styleHints && this.styleHints.CustomClasses) {\r\n customClasses = utils.resolveCustomClasses(this.styleHints, this);\r\n }\r\n \r\n return (\r\n \r\n \r\n \r\n {items}\r\n \r\n \r\n \r\n );\r\n }\r\n catch(e){\r\n utils.error('SelectList Render failed', e);\r\n return
SelectList Failed to Render {e}
;\r\n }\r\n }\r\n});","import Vue from 'vue';\r\nimport BaseComponent from './BaseAgGridMixin.jsx';\r\nimport utils from '../../Shared/utils.jsx';\r\n\r\nimport { AgGridVue } from \"ag-grid-vue\";\r\n\r\nVue.component('infinite-grid', {\r\n mixins: [BaseComponent],\r\n components: {\r\n AgGridVue,\r\n },\r\n data: () => ({\r\n sortDef: null,\r\n startKeyList: null,\r\n pageSize: 100,\r\n allowExportAll: false,\r\n dataSource: null,\r\n }),\r\n created() {\r\n // Find the default sort column or the first one marked sortable\r\n this.sortDef = this.columnDefs.find(c => (this.controlData.DefaultSort && c.Field == this.controlData.DefaultSort) || (!this.controlData.DefaultSort && c.Sortable));\r\n if (!this.sortDef) {\r\n utils.warn(`InfiniteGrid ${this.name} - No default sortable column found - at least one column must be sortable; DataURL: ${this.controlData.DataURL}`);\r\n return;\r\n }\r\n\r\n const initialKeyValue = ((this.controlData.SortDirection == \"desc\") ? \"%ff%ff\" : \"\");\r\n\r\n let keys = '\"' + encodeURIComponent(this.jumpToValue) + initialKeyValue + '\"'; // add the initial value to handle asc/desc properly\r\n\r\n // Add an empty or an infinite value for each key field to generate the proper start key ([\"\",\"\",\"\"] or [\"%ff%ff\",\"%ff%ff\",\"%ff%ff\"])\r\n if (this.sortDef.AdditionalKeyFields)\r\n for (let x = 0; x < this.sortDef.AdditionalKeyFields.length; x++)\r\n keys += ',\"' + initialKeyValue + '\"';\r\n\r\n this.startKeyList = \"[\" + keys + \"]\";\r\n\r\n // NOTE: Intentionally left model_all non-reactive by not including in the data properties (above) - large datasets will cause performance issues\r\n if (!this.model_all) this.model_all = [];\r\n\r\n const c = this;\r\n\r\n this.dataSource = {\r\n getRows: async (params) => {\r\n //debugger;\r\n\r\n // sort and filter parameters:\r\n // params.sortModel : [{\"sort\":\"asc\",\"colId\":\"ObjectType\"}]\r\n // params.filterModel\r\n \r\n if (c.modelurl) {\r\n let url = c.modelurlvalue;\r\n let pageSize = params.endRow - params.startRow; // loadOptions.take;\r\n let skipFirst = false;\r\n let sortCol = c.sortDef.Field;\r\n let descending = c.controlData.SortDirection == \"desc\";\r\n\r\n utils.debug(`InfiniteGrid load; params: ${JSON.stringify(params)} name:${c.name} url:${url}...`);\r\n\t\t\t\t\t//utils.debug(`InfiniteGrid load; Options: ${JSON.stringify(loadOptions)} name:${c.name} url:${url}...`);\r\n\t\t\t\t\t//if (loadOptions.filter)\r\n\t\t\t\t\t//\treturn null;\r\n\r\n if (params.sortModel && params.sortModel.length > 0) {\r\n sortCol = params.sortModel[0].colId;\r\n descending = params.sortModel[0].sort == 'desc';\r\n\r\n c.sortDef = c.columnDefs.find(c => c.Field == sortCol);\r\n }\r\n //if (loadOptions.sort && loadOptions.sort.length > 0 && typeof loadOptions.sort[0].selector === 'string') {\r\n // sortCol = loadOptions.sort[0].selector;\r\n // descending = loadOptions.sort[0].desc;\r\n\r\n // c.sortDef = c.columnDefs.find(c => c.Field == sortCol);\r\n //}\r\n\r\n if (params.startRow === 0) { //(loadOptions.skip === 0) {\r\n\r\n const initialKeyValue = (descending ? \"%ff%ff\" : \"\");\r\n\r\n let keys = '\"' + encodeURIComponent(c.jumpToValue) + initialKeyValue + '\"'; // add the initial value to handle asc/desc properly\r\n\r\n // Add an empty or an infinite value for each key field to generate the proper start key ([\"\",\"\",\"\"] or [\"%ff%ff\",\"%ff%ff\",\"%ff%ff\"])\r\n if (c.sortDef.AdditionalKeyFields)\r\n for (let x = 0; x < c.sortDef.AdditionalKeyFields.length; x++)\r\n keys += ',\"' + initialKeyValue + '\"';\r\n\r\n c.startKeyList = \"[\" + keys + \"]\";\r\n c.model_all = [];\r\n }\r\n else if (params.startRow > 0 && c.model_all.length > 0) { //(loadOptions.skip > 0 && c.model_all.length > 0) {\r\n // Find the last row that will be skipped or the end of the list, this will be used for the new startKey\r\n //const last = c.model_all[loadOptions.skip <= c.model_all.length ? (loadOptions.skip - 1) : (c.model_all.length - 1)];\r\n const last = c.model_all[params.startRow <= c.model_all.length ? (params.startRow - 1) : (c.model_all.length - 1)];\r\n\r\n const initialKeyValue = encodeURIComponent(last[sortCol]);\r\n\r\n let keys = '\"' + initialKeyValue + '\"'; // add the initial value to handle asc/desc properly\r\n\r\n if (c.sortDef.AdditionalKeyFields)\r\n for (let x = 0; x < c.sortDef.AdditionalKeyFields.length; x++)\r\n keys += ',\"' + last[c.sortDef.AdditionalKeyFields[x]].replace(/\\\\/g, \"\\\\\\\\\") + '\"';\r\n\r\n c.startKeyList = \"[\" + keys + \"]\";\r\n // pageSize++;\r\n skipFirst = (c.Vars.DisableSkipFirst === undefined || !c.Vars.DisableSkipFirst);\r\n }\r\n\r\n // Append sort column, startKey, maxRows, and descending flag\r\n url += (url.indexOf('?') == -1 ? \"?\" : \"&\") + // Example: /Apps/FilesExt/\r\n \"sortcol=\" + sortCol.toLowerCase() + \"&\" + // Example: filenamenopath\r\n \"startKey=\" + c.startKeyList + \"&\" +\r\n \"maxRows=\" + (skipFirst ? pageSize + 1 : pageSize) + \"&\" +\r\n \"descending=\" + (descending ? 'true' : 'false');\r\n\r\n //Ex:\r\n //url += '?sortcol=objecttype&startKey=[\"\",\"\"]&maxRows=100&descending=false';\r\n\r\n let model = await utils.api.get(url, false, false);\r\n\r\n let totalCount; // = 10000;\r\n \r\n\r\n if (skipFirst)\r\n model.shift();\r\n\r\n // Track all rows in a master array\r\n if (c.model_all.length > 0) {\r\n // we have already run once...\r\n if (c.model_all.length > params.startRow) {\r\n // override all spots in model_all with the model\r\n c.model_all.splice(params.startRow, model.length, ...model);\r\n }\r\n else {\r\n c.model_all = c.model_all.concat(model);\r\n }\r\n \r\n }\r\n else {\r\n c.model_all = model;\r\n }\r\n\r\n \r\n if (model.length < pageSize) {\r\n // Hit the end, insure the total count is correct\r\n totalCount = c.model_all.length;// - (skipFirst ? 1 : 0);\r\n if (totalCount < 0) totalCount = 0;\r\n }\r\n //c.model_all = c.model_all.concat(model);\r\n\r\n utils.debug(`InfiniteGrid successCallback(model:${model.length}, totalCount:${totalCount})`);\r\n utils.debug(`InfiniteGrid successCallback(model:${model.length}, pagesize:${pageSize})`);\r\n //utils.debug(`model_all: ${JSON.stringify(c.model_all)}`);\r\n //utils.debug(`model: ${JSON.stringify(model)}`);\r\n utils.debug(`params: ${JSON.stringify(params)}`);\r\n params.successCallback(model, totalCount);\r\n //return {\r\n // data: model,\r\n // totalCount: totalCount,\r\n // summary: 0,\r\n // groupCount: 0\r\n //};\r\n }\r\n },\r\n };\r\n },\r\n //Mounted Replaced with preRenderComplete\r\n destroyed() {\r\n }, \r\n computed: {\r\n },\r\n methods: {\r\n preRenderComplete() {\r\n this.finishRenderHandler(this);\r\n },\r\n async Refresh(clearSelectedRows) {\r\n if (this.gridApi) {\r\n if (clearSelectedRows) {\r\n this.gridApi.deselectAll();\r\n }\r\n \r\n this.gridApi.purgeInfiniteCache();\r\n }\r\n }\r\n },\r\n props: {\r\n },\r\n render(h) {\r\n if (!this.todisplay)\r\n return null;\r\n\r\n const style = {\r\n overflow: \"auto\",\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n minHeight: \"400px\",\r\n padding: '8px',\r\n ...this.sizeStyle,\r\n };\r\n\r\n return (\r\n \r\n {this.gridHeaders}\r\n this.onFirstDataRendered(e)}\r\n on-selection-changed={(e) => this.rowSelectionChanged(e)}\r\n rowModelType=\"infinite\"\r\n columnDefs={this.agColumnDefs}\r\n datasource={this.dataSource}\r\n rowSelection={this.controlData.SelectOptions.MultiSelect ? \"multiple\" : null}\r\n isRowSelectable={this.isRowSelectable}\r\n enableCellTextSelection={true}\r\n ensureDomOrder={true}\r\n quickFilterText={this.searchText}\r\n suppressScrollOnNewData={true}\r\n suppressRowClickSelection={true}\r\n suppressDragLeaveHidesColumns={true}\r\n suppressCellSelection={true}\r\n pagination={this.pagination}\r\n paginationAutoPageSize={this.pagination}\r\n getRowClass={this.getRowClass}\r\n on-sort-changed={this.onSaveGridSortState}\r\n on-column-visible={this.onSaveGridColumnState}\r\n on-column-pinned={this.onSaveGridColumnState}\r\n on-column-resized={this.onSaveGridColumnState}\r\n on-column-moved={this.onSaveGridColumnState}\r\n on-column-row-group-changed={this.onSaveGridColumnState}\r\n >\r\n \r\n \r\n );\r\n\r\n //const style = {\r\n // overflow: \"auto\",\r\n // display: \"flex\",\r\n // flexDirection: \"column\",\r\n // maxHeight: \"1000px\",\r\n // ...this.sizeStyle,\r\n //};\r\n\r\n //let scopedSlots = {};\r\n //let coldefs = this.getColDefs(scopedSlots);\r\n //this.getHeaderControls(scopedSlots);\r\n\r\n //let selector;\r\n //if (this.controlData.SelectOptions.Enable)\r\n // selector = ;\r\n\r\n //return (\r\n // this.onToolbarPreparing(e)}\r\n // on-selection-changed={(s) => this.onSelectionChanged(s)}\r\n // >\r\n // \r\n // \r\n // \r\n // \r\n // \r\n // {selector}\r\n\r\n // {coldefs}\r\n // \r\n //);\r\n }\r\n});","import Vue from 'vue';\r\nimport BaseComponent from './BaseComponentMixin.jsx';\r\nimport utils from '../../Shared/utils.jsx';\r\nimport EventBus from '../event-bus.js';\r\n\r\nVue.component('dynamic-tab', {\r\n mixins: [BaseComponent],\r\n data: function () {\r\n return {\r\n sourceraw: null,\r\n sourceurl: null,\r\n model: null,\r\n tab_state: {\r\n index: 0\r\n },\r\n selected_tab_expr: null,\r\n selectionHistory: [],\r\n }\r\n },\r\n async created() {\r\n if (this.controlData.ActiveTabIndex)\r\n this.selected_tab_expr = utils.compileExpression(this, this.controlData.ActiveTabIndex);\r\n\r\n if (this.controlData.SourceType === 'Raw' && this.controlData.SourceRaw) {\r\n this.sourceraw = utils.compileObject(this, this.controlData.SourceRaw);\r\n }\r\n else if (this.controlData.SourceType === 'Url' && this.controlData.SourceUrl) {\r\n this.sourceurl = utils.compile(this, this.controlData.SourceUrl);\r\n }\r\n\r\n if (this.controlData.ListenForTabEvents) {\r\n EventBus.$on('Action-Tab', this.openTabAction);\r\n EventBus.$on('Action-RenameTab', this.performRenameTab);\r\n\r\n if (this.controlData.Name) {\r\n // Subscribe by name so Target can be directed to a specific control\r\n EventBus.$on(`Action-Tab:${this.controlData.Name}`, this.openTabAction);\r\n EventBus.$on(`Action-RenameTab:${this.controlData.Name}`, this.performRenameTab);\r\n }\r\n }\r\n\r\n this.$on('Action-Close', this.closeTabAction);\r\n\r\n // Subscribe by name so Target can be directed to a specific control\r\n if (this.controlData.Name)\r\n this.$on(`Action-Close:${this.controlData.Name}`, this.closeTabAction);\r\n },\r\n destroyed() {\r\n if (this.controlData.ListenForTabEvents) {\r\n EventBus.$off('Action-Tab', this.openTabAction);\r\n EventBus.$off('Action-RenameTab', this.performRenameTab);\r\n\r\n if (this.controlData.Name) {\r\n // Subscribe by name so Target can be directed to a specific control\r\n EventBus.$off(`Action-Tab:${this.controlData.Name}`, this.openTabAction);\r\n EventBus.$off(`Action-RenameTab:${this.controlData.Name}`, this.performRenameTab);\r\n }\r\n }\r\n\r\n this.$off('Action-Close', this.closeTabAction);\r\n\r\n // Subscribe by name so Target can be directed to a specific control\r\n if (this.controlData.Name)\r\n this.$off(`Action-Close:${this.controlData.Name}`, this.closeTabAction);\r\n\r\n },\r\n //Mounted Replaced with preRenderComplete\r\n computed: {\r\n SelectedTab: function () {\r\n if (this.selected_tab_expr)\r\n return utils.evaluate(this.selected_tab_expr, this);\r\n else\r\n return -1;\r\n },\r\n ActiveTabIndex: {\r\n get: function () {\r\n return this.SelectedTab;\r\n },\r\n set: function (index) {\r\n this.changeTab(index);\r\n }\r\n },\r\n Menus: function () {\r\n return utils.document_cache.menus;\r\n },\r\n },\r\n watch: {\r\n // whenever selected_tab_expr changes, this function will run\r\n SelectedTab: function (newValue, oldValue) {\r\n utils.log(`DynamicTab ${this.name} SelectedTab changed from ${oldValue} to ${newValue}`);\r\n\r\n if (typeof newValue === 'string')\r\n this.changeTab(parseInt(newValue));\r\n else\r\n this.changeTab(newValue);\r\n },\r\n $route: function (newVal, oldVal) {\r\n if (this.controlData.UseRouter) {\r\n var rgx = new RegExp(`${this.controlData.RoutingName}/([^/]*)`, 'ig');\r\n var matches = [...newVal.fullPath.matchAll(rgx)];\r\n \r\n if (matches[0] && matches[0].length >= 2) {\r\n utils.debug(`Tab newVal: ${newVal.fullPath}; oldVal: ${oldVal.fullPath};`);\r\n var index = this.model.findIndex(o => o.$objectid == matches[0][1]);\r\n //setDynamicTab\r\n utils.executeAndCompileAllActions(this.controlData.Actions, { Data: index }, this);\r\n }\r\n }\r\n }\r\n },\r\n methods: {\r\n async preRenderComplete() {\r\n await this.Refresh();\r\n this.finishRenderHandler(this);\r\n },\r\n async Refresh() {\r\n if (this.sourceraw)\r\n try {\r\n this.model = utils.evaluateObject(this.sourceraw, this);\r\n }\r\n catch (e) {\r\n utils.warn('DynamicTab failed to evaluate SourceRaw ' + this.controlData.SourceRaw + ': ' + e);\r\n }\r\n else if (this.sourceurl)\r\n try {\r\n this.model = await utils.api.get(utils.evaluate(this.sourceurl, this));\r\n }\r\n catch (e) {\r\n utils.warn('DynamicTab failed to evaluate SourceUrl ' + this.controlData.SourceUrl + ': ' + e);\r\n }\r\n },\r\n async changeTab(index) {\r\n utils.log(`DynamicTab ${this.name} changeTab(index:${index})`);\r\n\r\n // index of selected tab\r\n if (this.model.length > 0)\r\n {\r\n if (this.controlData.UseRouter) {\r\n if (!this.$route.fullPath.endsWith(`#/${this.controlData.RoutingName}/${this.model[index].$objectid}`))\r\n this.$router.push({ path: `#/${this.controlData.RoutingName}/${this.model[index].$objectid}` });\r\n }\r\n else if (this.selectionHistory[this.selectionHistory.length-1] != this.model[index].$objectid) {\r\n this.selectionHistory.push(this.model[index].$objectid);\r\n \r\n await utils.executeAndCompileAllActions(this.controlData.Actions, { Data: index }, this);\r\n }\r\n }\r\n },\r\n SetActiveTabIndex(index) {\r\n if (index !== this.SelectedTab)\r\n this.changeTab(index);\r\n },\r\n async closeTab(e, index) {\r\n if (e) {\r\n e.cancelBubble = true;\r\n e.stopPropagation();\r\n }\r\n\r\n utils.log(`DynamicTab ${this.name} closeTab(index:${index})`);\r\n \r\n var routingIndex = -1;\r\n\r\n if (this.controlData.UseRouter) {\r\n var rgx = new RegExp(`${this.controlData.RoutingName}/([^/]*)`, 'ig');\r\n var matches = [...this.$route.fullPath.matchAll(rgx)];\r\n \r\n if (matches[0] && matches[0].length >= 2)\r\n routingIndex = this.model.findIndex(o => o.$objectid == matches[0][1]);\r\n }\r\n \r\n //closeTab\r\n await utils.executeAndCompileAllActions(this.controlData.CloseActions, { Data: index }, this);\r\n \r\n //Navigate\r\n if (this.controlData.UseRouter) {\r\n if (routingIndex == index)\r\n this.$router.go(-1);\r\n else {\r\n var rgx = new RegExp(`${this.controlData.RoutingName}/([^/]*)`, 'ig');\r\n var matches = [...this.$route.fullPath.matchAll(rgx)];\r\n \r\n if (matches[0] && matches[0].length >= 2) {\r\n var newIndex = this.model.findIndex(o => o.$objectid == matches[0][1]);\r\n await utils.executeAndCompileAllActions(this.controlData.Actions, { Data: newIndex }, this);\r\n }\r\n }\r\n } else {\r\n //set old to navigate to it on next tick\r\n var old = -1;\r\n\r\n if (this.model && this.model.length) {\r\n for (var i = this.selectionHistory.length - 1; i >= 0; i--) {\r\n var tab = this.model.findIndex(o => o.$objectid == this.selectionHistory[i]);\r\n\r\n if (tab != -1 && tab != index-1) {\r\n old = tab;\r\n this.selectionHistory.splice(i);\r\n break;\r\n }\r\n }\r\n }\r\n\r\n const c = this;\r\n Vue.nextTick(() => {\r\n if (old >= index) { \r\n utils.executeAndCompileAllActions(this.controlData.Actions, { Data: old - 1 }, c);\r\n }\r\n });\r\n }\r\n },\r\n\r\n async performRenameTab(action) {\r\n utils.log(`DynamicTab RenameTab ${action.ActionData.TabTitle}`);\r\n\r\n if (action.ActionData && action.ActionData.Debug && action.ActionData.Debug.BreakPoint) debugger;\r\n\r\n if (action.tabtitle) {\r\n const title = utils.evaluate(action.tabtitle, action.context);\r\n\r\n await utils.executeAndCompileAllActions(this.controlData.RenameActions, { TabTitle: title, Index: this.SelectedTab }, this);\r\n\r\n try {\r\n await utils.complete(action);\r\n }\r\n catch (e) { }\r\n\r\n // Complete the promise for the executeAction method\r\n action.FinishFunc(true);\r\n }\r\n },\r\n async openTabAction(action) {\r\n utils.log(`DynamicTab openTabAction`);\r\n\r\n if (action.ActionData && action.ActionData.Debug && action.ActionData.Debug.BreakPoint) debugger;\r\n\r\n if (action.ActionData) {\r\n if (action.actiondatafunc) {\r\n if (!action.context.$attrs) action.context.$attrs = {};\r\n\r\n action.context.$attrs['paramData'] = utils.evaluateObject(action.actiondatafunc, action.context);\r\n }\r\n\r\n // Clone the action's ControlData so we get a full copy, with no duplicate references\r\n const controlData = JSON.parse(JSON.stringify(action.ActionData.ControlData));\r\n\r\n // Evaluate the ControlData.Vars here (still using action.context rather than this...)\r\n // Note that action.vars also exists and resolves the same as action.varsobj - no difference\r\n if (action.varsobj) {\r\n controlData.Vars = utils.evaluateObject(action.varsobj, action.context);\r\n controlData.$nointerp = true;\r\n }\r\n\r\n const act = {\r\n Name: action.ActionData.Name,\r\n TabID: action.tabID ? utils.evaluate(action.tabID, action.context) : '',\r\n TabTitle: action.tabTitle ? utils.evaluate(action.tabTitle, action.context) : '',\r\n ActionData: action.context.$attrs ? (action.context.$attrs['paramData'] || {}) : {},\r\n ControlData: controlData,\r\n OnActivateActions: action.ActionData.OnActivateActions || [],\r\n OnDeactivateActions: action.ActionData.OnDeactivateActions || [],\r\n context: action.context,\r\n };\r\n\r\n await utils.executeAndCompileAllActions(this.controlData.OpenActions, { Data: act }, this);\r\n\r\n var index = this.model.findIndex(o => o.ID == act.TabID);\r\n\r\n await this.changeTab(index);\r\n\r\n try {\r\n await utils.complete(action);\r\n }\r\n catch (e) { }\r\n\r\n // Complete the promise for the executeAction method\r\n action.FinishFunc(true);\r\n }\r\n },\r\n async closeTabAction(action) {\r\n // This handles the Close action which is emitted by UIAction_Close, which is typically broadcast from a child\r\n utils.log(`DynamicTab closeTabAction`);\r\n\r\n if (action.ActionData.Debug && action.ActionData.Debug.BreakPoint) debugger;\r\n\r\n await this.closeTab(null, this.SelectedTab);\r\n },\r\n },\r\n props: {\r\n },\r\n render(h) {\r\n if (!this.todisplay || !this.controlData)\r\n return null;\r\n\r\n let items = [];\r\n\r\n const useDark = this.controlData.DarkTheme || false;\r\n\r\n let bgcolor;\r\n if (this.controlData.StyleHints && this.controlData.StyleHints.BackgroundColor)\r\n bgcolor = this.controlData.StyleHints.BackgroundColor;\r\n\r\n let fgcolor;\r\n if (this.controlData.StyleHints && this.controlData.StyleHints.ForegroundColor)\r\n fgcolor = this.controlData.StyleHints.ForegroundColor;\r\n\r\n if (this.model) {\r\n for (let tabi = 0; tabi < this.model.length; tabi++) {\r\n const tab = this.model[tabi];\r\n if (!tab.$objectid)\r\n tab.$objectid = utils.generateUUID();\r\n\r\n if (tab.Icon && tab.Icon.includes('{'))\r\n tab.Icon = 'mdi mdi-phone';\r\n\r\n if (!tab.ID)\r\n tab.ID = utils.generateUUID();\r\n\r\n let tooltip = tab.Tooltip;\r\n\r\n let icon;\r\n let title = tab.Title;\r\n if (title.length > 25) {\r\n title = title.substr(0, 25) + '...';\r\n if (!tooltip)\r\n tooltip = tab.Title;\r\n }\r\n\r\n if (tooltip) {\r\n if (tab.Icon)\r\n icon = {tab.Icon};\r\n //icon = {tab.Icon} }}>{tooltip};\r\n\r\n const tt = { content: tooltip, placement: \"bottom-center\", offset: 10, delay: { show: 1000, hide: 300, } };\r\n title = {title};\r\n }\r\n else {\r\n if (tab.Icon)\r\n icon = {tab.Icon};\r\n }\r\n\r\n let closeicon;\r\n if (this.controlData.ShowCloseIcon)\r\n closeicon = (\r\n this.closeTab(e, tabi)}>\r\n mdi mdi-close-circle\r\n \r\n );\r\n\r\n items.push(\r\n this.closeTab(e, tabi)}\r\n on-click={(e) => this.changeTab(tabi)}\r\n style={`backgroundColor: ${bgcolor}; color: ${fgcolor};`}>\r\n {icon}\r\n {title}\r\n {closeicon}\r\n \r\n );\r\n }\r\n }\r\n\r\n //next-icon=\"mdi mdi-menu-right\"\r\n //prev-icon=\"mdi mdi-menu-left\"\r\n return (\r\n \r\n {items}\r\n \r\n );\r\n }\r\n});","import Vue from 'vue';\r\nimport BaseComponent from './BaseComponentMixin.jsx';\r\nimport utils from '../../Shared/utils.jsx';\r\n\r\nVue.component('dynamic-tab-content', {\r\n mixins: [BaseComponent],\r\n data: function () {\r\n return {\r\n sourceraw: null,\r\n sourceurl: null,\r\n dynamictabs: null,\r\n tab_state: {\r\n index: 0\r\n },\r\n selected_tab: -1,\r\n selected_tab_expr: null,\r\n model: null,\r\n tabRenderCount: {},\r\n renderedTabs: new Set()\r\n }\r\n },\r\n created() {\r\n if (this.controlData.SourceType === 'Raw' && this.controlData.SourceRaw) {\r\n this.sourceraw = utils.compileObject(this, this.controlData.SourceRaw);\r\n }\r\n else if (this.controlData.SourceType === 'Url' && this.controlData.SourceUrl) {\r\n this.sourceurl = utils.compile(this, this.controlData.SourceUrl);\r\n }\r\n\r\n if (this.controlData.ActiveTabIndex)\r\n this.selected_tab_expr = utils.compileExpression(this, this.controlData.ActiveTabIndex);\r\n\r\n if (this.controlData.ListenForTabEvents) {\r\n this.$on('Action-Close', this.closeTabAction);\r\n this.$on('Action-RenameTab', this.performRenameTab);\r\n\r\n // Subscribe by name so Target can be directed to a specific control\r\n if (this.controlData.Name) {\r\n this.$on(`Action-Close:${this.controlData.Name}`, this.closeTabAction);\r\n this.$on(`Action-RenameTab:${this.controlData.Name}`, this.performRenameTab);\r\n }\r\n }\r\n\r\n if (this.controlData.DynamicTabsControl) {\r\n const dynamictabsexpn = utils.compileExpression(this, this.controlData.DynamicTabsControl);\r\n this.dynamictabs = utils.evaluate(dynamictabsexpn, this);\r\n }\r\n },\r\n destroyed() {\r\n if (this.controlData.ListenForTabEvents) {\r\n this.$off('Action-Close', this.closeTabAction);\r\n this.$off('Action-RenameTab', this.performRenameTab);\r\n\r\n // Subscribe by name so Target can be directed to a specific control\r\n if (this.controlData.Name) {\r\n this.$off(`Action-Close:${this.controlData.Name}`, this.closeTabAction);\r\n this.$off(`Action-RenameTab:${this.controlData.Name}`, this.performRenameTab);\r\n }\r\n }\r\n },\r\n //Mounted Replaced with preRenderComplete\r\n computed: {\r\n activeTabIndex: function () {\r\n let index;\r\n if (this.selected_tab_expr)\r\n index = utils.evaluate(this.selected_tab_expr, this);\r\n else\r\n return 0;\r\n\r\n if (typeof index === 'string')\r\n return parseInt(index);\r\n else\r\n return index;\r\n },\r\n Menus: function () {\r\n return utils.document_cache.menus;\r\n },\r\n sourcerawvalue: function () {\r\n return (this.sourceraw) ? utils.evaluateObject(this.sourceraw, this) : null;\r\n },\r\n sourceurlvalue: function () {\r\n return this.sourceurl ? utils.evaluate(this.sourceurl, this) : '';\r\n },\r\n // This is the total number of child controls a component has. This should be overridden in child controls that don't \r\n // have their children stored on a property called Controls.\r\n totalItems() {\r\n let count = 0;\r\n\r\n // These dynamically load, so I can't wait for them at initialization\r\n //if (this.model && typeof this.model === 'object') {\r\n // if (Array.isArray(this.model))\r\n // count = this.model.length;\r\n // else\r\n // count = Object.keys(this.model).length;\r\n //}\r\n\r\n // Add one to include the component itself.\r\n if (Array.isArray(this.controlData.Controls))\r\n count = (this.controlData.Controls.length * count) + 1;\r\n\r\n return count;\r\n },\r\n sources() {\r\n let sources = [];\r\n\r\n if (this.model && typeof this.model === 'object') {\r\n if (Array.isArray(this.model))\r\n for (let i = 0; i < this.model.length; i++) {\r\n sources.push( this.model[i]);\r\n }\r\n else\r\n Object.keys(this.model).forEach(key => {\r\n sources.push(this.model[key]);\r\n });\r\n }\r\n\r\n return sources;\r\n }\r\n },\r\n watch: {\r\n sourcerawvalue: function () {\r\n this.Refresh();\r\n },\r\n sourceurlvalue: function () {\r\n this.Refresh();\r\n },\r\n activeTabIndex: function (newval, oldval) {\r\n //utils.debug(`DynamicTabContent ${this.name} activeTabIndex changed from ${oldval} to ${newval}`);\r\n\r\n this.doChangeSelectedTab(newval);\r\n },\r\n selected_tab: function (newval, oldval) {\r\n utils.debug(`DynamicTabContent ${this.name} selected_tab (watch) has changed from ${oldval} to ${newval}`);\r\n },\r\n },\r\n methods: {\r\n async preRenderComplete() {\r\n await this.Refresh();\r\n this.finishRenderHandler(this);\r\n }, \r\n async Refresh() {\r\n if (this.sourceraw)\r\n try {\r\n this.model = this.sourcerawvalue;\r\n }\r\n catch (e) {\r\n utils.warn('DynamicTabContent failed to evaluate SourceRaw ' + this.controlData.SourceRaw + ': ' + e);\r\n }\r\n else if (this.sourceurl)\r\n try {\r\n this.model = await utils.api.get(this.sourceurlvalue);\r\n }\r\n catch (e) {\r\n utils.warn('DynamicTabContent failed to evaluate SourceUrl ' + this.controlData.SourceUrl + ': ' + e);\r\n }\r\n\r\n this.renderedTabs.clear();\r\n this.tabRenderCount = {};\r\n Vue.nextTick(() => this.selected_tab = this.activeTabIndex);\r\n },\r\n onChangeTagIndex(index) {\r\n if (!(index === undefined)) {\r\n this.selected_tab = index;\r\n }\r\n },\r\n async performRenameTab(action) {\r\n if (this.dynamictabs) {\r\n this.dynamictabs.performRenameTab(action);\r\n return;\r\n }\r\n\r\n utils.log(`DynamicTabContent RenameTab ${action.ActionData.TabTitle}`);\r\n\r\n if (action.ActionData && action.ActionData.Debug && action.ActionData.Debug.BreakPoint) debugger;\r\n\r\n if (action.tabtitle) {\r\n const title = utils.evaluate(action.tabtitle, action.context);\r\n\r\n await utils.executeAndCompileAllActions(this.controlData.RenameActions, { TabTitle: title, Index: this.selected_tab }, this);\r\n\r\n try {\r\n await utils.complete(action);\r\n }\r\n catch (e) { }\r\n\r\n // Complete the promise for the executeAction method\r\n action.FinishFunc(true);\r\n }\r\n },\r\n async closeTabAction(action) {\r\n // This handles the Close action which is emitted by UIAction_Close, which is typically broadcast from a child\r\n if (this.dynamictabs) {\r\n this.dynamictabs.closeTabAction(action);\r\n return;\r\n }\r\n\r\n utils.log(`DynamicTabContent closeTabAction`);\r\n\r\n if (action.ActionData.Debug && action.ActionData.Debug.BreakPoint) debugger;\r\n\r\n await utils.executeAndCompileAllActions(this.controlData.CloseActions, { Data: this.selected_tab }, this);\r\n\r\n try {\r\n await utils.complete(action);\r\n }\r\n catch (e) { }\r\n\r\n // Complete the promise for the executeAction method\r\n action.FinishFunc(true)\r\n },\r\n getItemByIndex(index) {\r\n if(index >= 0 && index < this.sources.length)\r\n return this.sources[index];\r\n return null;\r\n },\r\n updateTabRenderStatus(index) {\r\n if(!this.renderedTabs.has(index)) {\r\n if(!this.tabRenderCount[index])\r\n this.tabRenderCount[index] = 1;\r\n else\r\n this.tabRenderCount[index] = this.tabRenderCount[index] + 1;\r\n \r\n if(this.tabRenderCount[index] === this.controlData.Controls.length) {\r\n this.renderedTabs.add(index);\r\n this.$nextTick(async () => {\r\n await utils.executeAndCompileAllActions(this.controlData.OnActivateActions, { Data: this.getItemByIndex(this.selected_tab) }, this);\r\n });\r\n }\r\n \r\n }\r\n },\r\n handleFinishedRender(reference, index) {\r\n this.finishRenderHandler(reference);\r\n this.updateTabRenderStatus(index);\r\n },\r\n\r\n async doChangeSelectedTab(newval) {\r\n if (this.controlData.OnDeActivateActions && this.selected_tab >= 0) {\r\n const data = this.getItemByIndex(this.selected_tab);\r\n if (data)\r\n utils.executeAndCompileAllActions(this.controlData.OnDeActivateActions, { Data: data }, this);\r\n }\r\n\r\n await Vue.nextTick();\r\n\r\n //utils.debug(`DynamicTabContent ${this.name} changing selected_tab from ${this.selected_tab} to ${newval}`);\r\n this.selected_tab = newval;\r\n\r\n if (this.renderedTabs.has(this.selected_tab)) {\r\n await Vue.nextTick();\r\n\r\n utils.executeAndCompileAllActions(this.controlData.OnActivateActions, { Data: this.getItemByIndex(this.selected_tab) }, this);\r\n } \r\n },\r\n },\r\n props: {\r\n },\r\n render(h) {\r\n if (!this.todisplay || !this.controlData) {\r\n return null;\r\n }\r\n //utils.log(`DynamicTabContent ${this.Name} rendering; model:${this.model ? this.model.length : 0}`);\r\n\r\n const style = {\r\n overflow: \"auto\",\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n //flexGrow: \"1\",\r\n ...this.sizeStyle,\r\n ...utils.resolveStyleHints(this.styleHints, this),\r\n };\r\n\r\n //utils.log(` * * * DynamicTabContent:${this.name} style display:${style.display},flexDirection:${style.flexDirection},flexGrow:${style.flexGrow},overflow:${style.overflow} * * *`);\r\n\r\n const items = [];\r\n\r\n if (this.sources.length > 0)\r\n // Repeat all controls for each element in the source\r\n for (let k = 0; k < this.sources.length; k++) {\r\n const src = this.sources[k];\r\n const elements = [];\r\n\r\n if (!src.ID)\r\n src.ID = utils.generateUUID();\r\n\r\n for (let i = 0; i < this.controlData.Controls.length; i++) {\r\n const c = this.controlData.Controls[i];\r\n if (!(typeof c === 'object'))\r\n continue;\r\n\r\n let DynamicControl = utils.getDynamicComponent(h, c);\r\n\r\n if (!DynamicControl)\r\n DynamicControl = 'default-unknown';\r\n\r\n if (!c.$objectId) c.$objectId = utils.generateUUID();\r\n\r\n let id = `${c.$objectId}_${src.ID}_${i}`;\r\n\r\n elements.push(\r\n this.handleFinishedRender(reference, k) }}\r\n controlName={c.Name}\r\n scopeitems={this.scopeitems}\r\n controlscope={this.controlscope}\r\n cacheControl={c.CacheControl}\r\n controlEvents={c.Events}\r\n >\r\n \r\n );\r\n }\r\n\r\n items.push(\r\n \r\n {elements}\r\n \r\n );\r\n }\r\n else\r\n // Emit one control per page\r\n for (let i = 0; i < this.controlData.Controls.length; i++) {\r\n const c = this.controlData.Controls[i];\r\n if (!(typeof c === 'object'))\r\n continue;\r\n\r\n let DynamicControl = utils.getDynamicComponent(h, c);\r\n\r\n if (!DynamicControl)\r\n DynamicControl = 'default-unknown';\r\n\r\n if (!c.$objectId) c.$objectId = utils.generateUUID();\r\n\r\n items.push(\r\n \r\n this.finishRenderHandler(reference) }}\r\n controlName={c.Name}\r\n scopeitems={this.scopeitems}\r\n controlscope={this.controlscope}\r\n cacheControl={c.CacheControl}\r\n controlEvents={c.Events}\r\n >\r\n \r\n \r\n );\r\n }\r\n\r\n let vertical = false;\r\n switch (this.controlData.TransitionDirection) {\r\n case 'Vertical': vertical = true; break;\r\n }\r\n let reverse = false;\r\n if (this.controlData.TransitionReversed)\r\n reverse = true;\r\n\r\n return (\r\n \r\n {items}\r\n \r\n );\r\n }\r\n});\r\n\r\n//on-change={ (index) => this.onChangeTagIndex(index) }","import Vue from 'vue';\r\nimport utils from '../../Shared/utils.jsx';\r\nimport BaseComponent from './BaseComponentMixin.jsx';\r\nimport careHelpfulFunctions from '../careHelpfulFunctions.jsx';\r\nimport EventBus from '../event-bus.js';\r\n\r\nVue.component('dynamic-menu-list', {\r\n mixins: [BaseComponent],\r\n data: function () {\r\n return {\r\n menutitle: null,\r\n sourceraw: null,\r\n sourceurl: null,\r\n model: null,\r\n tab_state: {\r\n index: 0\r\n },\r\n selected_item: null,\r\n selected_data: null,\r\n selected_values: [],\r\n\r\n cached_content: null,\r\n\r\n contextMenuItem: null,\r\n showMenu: false,\r\n x: 0,\r\n y: 0,\r\n }\r\n },\r\n async created() {\r\n if (this.controlData.SourceType === 'Raw' && this.controlData.SourceRaw) {\r\n this.sourceraw = utils.compileObject(this, this.controlData.SourceRaw);\r\n }\r\n else if (this.controlData.SourceType === 'Url' && this.controlData.SourceUrl) {\r\n this.sourceurl = utils.compile(this, this.controlData.SourceUrl);\r\n }\r\n\r\n EventBus.$on('Action-SelectMenuItem-Menu', this.performSelectMenuItem);\r\n },\r\n //Mounted Replaced with preRenderComplete\r\n destroyed() {\r\n EventBus.$off('Action-SelectMenuItem-Menu', this.performSelectMenuItem);\r\n },\r\n computed: {\r\n MenuTitle() {\r\n const title = this.controlData.MenuTitle;\r\n if (title)\r\n return (\r\n \r\n );\r\n return null;\r\n },\r\n SelectedId: function () {\r\n return this.selected_item;\r\n },\r\n Menus: function () {\r\n return utils.document_cache.menus;\r\n },\r\n DocumentCache: function () {\r\n // This used to be in the SourceRaw:\r\n // \"{# utils.document_cache.getMenuTree(SourceData().MenuItemData.ChildMenuName) #}\"\r\n\r\n return utils.document_cache;\r\n },\r\n MenuData: function () {\r\n return this.model;\r\n },\r\n MenuContent: function () {\r\n return this.cached_content;\r\n },\r\n AllItems: function () {\r\n // Returns a flattened array of all menu items\r\n const flat = [];\r\n this.getFlatModel(this.model, flat);\r\n return flat;\r\n },\r\n\r\n labelForceRefresh: function () {\r\n return this.Translate('Force Refresh');\r\n },\r\n menuTitleBackgroundColor: function () {\r\n if (!this.titlebgcolorexpn && this.controlData.MenuTitleBackgroundColor)\r\n this.titlebgcolorexpn = utils.compile(this, this.controlData.MenuTitleBackgroundColor);\r\n\r\n return this.titlebgcolorexpn ? utils.evaluate(this.titlebgcolorexpn, this) : undefined;\r\n },\r\n menuItemsFiltered: function () {\r\n if (this.model) {\r\n let model = [];\r\n this.filterChildren(this.model, model);\r\n return model;\r\n }\r\n else\r\n return [];\r\n },\r\n },\r\n methods: {\r\n async preRenderComplete() {\r\n await this.Refresh();\r\n this.finishRenderHandler(this);\r\n },\r\n async performSelectMenuItem(action) {\r\n // Note: this action is only triggered by the NavigationDrawer after it receives the base SelectMenuItem. This\r\n // is to allow the menu to materialize before trying to select it.\r\n utils.log(`DynamicMenuList SelectMenuItem-Menu ${action.ActionData.MenuItemName}`);\r\n\r\n if (action.ActionData.Debug && action.ActionData.Debug.BreakPoint) debugger;\r\n\r\n try {\r\n const name = utils.evaluate(action.menuname, action.context);\r\n\r\n utils.executeAndCompileAllActions(this.controlData.SelectMenuActions, { Data: name }, this);\r\n\r\n try {\r\n await utils.success(action);\r\n } catch (e) { }\r\n }\r\n catch (e) {\r\n try {\r\n await utils.failure(action, { Data: e });\r\n } catch (e) { }\r\n }\r\n finally {\r\n try {\r\n await utils.complete(action);\r\n }\r\n catch (e) { }\r\n\r\n // Complete the promise for the executeAction method\r\n action.FinishFunc(true);\r\n }\r\n },\r\n filterChildren: function (sourcemodel, finalmodel) {\r\n for (let i = 0; i < sourcemodel.length; i++) {\r\n const item = sourcemodel[i];\r\n const dest = { ...item };\r\n if (dest.item_data && dest.item_data.MenuItemData.ControlData && dest.item_data.MenuItemData.ControlData.DisplayExpression && !dest.$displayexpn)\r\n dest.$displayexpn = utils.compileExpression(this, dest.item_data.MenuItemData.ControlData.DisplayExpression);\r\n\r\n if (dest.item_data && dest.item_data.MenuItemData.ControlData && dest.item_data.MenuItemData.ControlData.DisplayExpression && dest.$displayexpn) {\r\n if (!utils.evaluate(dest.$displayexpn, this))\r\n continue;\r\n }\r\n\r\n if (item.children) {\r\n const children = [];\r\n this.filterChildren(item.children, children);\r\n dest.children = children;\r\n\r\n // if there are no children do not add the parent\r\n if (children.length > 0)\r\n finalmodel.push(dest);\r\n }\r\n else \r\n finalmodel.push(dest);\r\n }\r\n },\r\n getFlatModel: function (model, flat) {\r\n for (let i = 0; i < model.length; i++) {\r\n const a = model[i];\r\n flat.push(a);\r\n if (a.children)\r\n this.getFlatModel(a.children, flat);\r\n }\r\n },\r\n getChildren: function (data, parent, outargs) {\r\n let path = parent.MenuItemData.Title;\r\n if (parent.MenuPath)\r\n path = parent.MenuPath + '::' + path;\r\n\r\n const list = data.filter(m => m.MenuPath == path).sort((a, b) => parseInt(a.Index) - parseInt(b.Index));\r\n\r\n const result = [];\r\n for (let i = 0; i < list.length; i++) {\r\n const item = list[i];\r\n const child = {\r\n id: `${outargs.index++}`,\r\n name: item.MenuItemData.Title,\r\n icon: item.MenuItemData.Icon,\r\n item_data: item,\r\n }\r\n outargs.content.push(child);\r\n const children = utils.document_cache.getChildren(data, item, outargs);\r\n if (children && children.length > 0)\r\n child.children = children;\r\n\r\n result.push(child);\r\n }\r\n\r\n return result;\r\n },\r\n getMenuTree: function (data) {\r\n const result = [];\r\n const content = [];\r\n const outargs = { index: 0, content: content };\r\n\r\n let root = data.filter(m => !m.MenuPath).sort((a, b) => parseInt(a.Index) - parseInt(b.Index));\r\n for (let i = 0; i < root.length; i++) {\r\n const node = root[i];\r\n const child = {\r\n id: `${outargs.index++}`,\r\n name: node.MenuItemData.Title,\r\n icon: node.MenuItemData.Icon,\r\n item_data: node,\r\n };\r\n outargs.content.push(child);\r\n const children = this.getChildren(data, node, outargs);\r\n if (children && children.length > 0)\r\n child.children = children;\r\n\r\n result.push(child);\r\n }\r\n this.cached_result = result;\r\n this.cached_content = content;\r\n return result;\r\n },\r\n async Refresh() {\r\n let model;\r\n if (this.sourceraw)\r\n try {\r\n model = utils.evaluateObject(this.sourceraw, this);\r\n }\r\n catch (e) {\r\n utils.warn('DynamicTab failed to evaluate SourceRaw ' + this.controlData.SourceRaw + ': ' + e);\r\n }\r\n else if (this.sourceurl)\r\n try {\r\n model = await utils.api.get(utils.evaluate(this.sourceurl, this));\r\n }\r\n catch (e) {\r\n utils.warn('DynamicTab failed to evaluate SourceUrl ' + this.controlData.SourceUrl + ': ' + e);\r\n }\r\n\r\n if (this.controlData.SourceAsMenuItems) {\r\n if (!model)\r\n debugger;\r\n\r\n // Convert the source model into a tree (it is being provided as an array of MenuItems)\r\n this.model = this.getMenuTree(model);\r\n\r\n const defaultIndex = this.model.findIndex(a => a.item_data.MenuItemData.IsDefault);\r\n if (defaultIndex >= 0) {\r\n this.onInput([this.model[defaultIndex].id]);\r\n }\r\n }\r\n else\r\n this.model = model;\r\n },\r\n findItem(parent, id) {\r\n if (parent && typeof parent === 'object' && Array.isArray(parent))\r\n for (let i = 0; i < parent.length; i++) {\r\n const child = parent[i];\r\n if (child.id == id)\r\n return child;\r\n\r\n if (child.children) {\r\n const item = this.findItem(child.children, id);\r\n if (item)\r\n return item;\r\n }\r\n }\r\n return null;\r\n },\r\n async onInput(selectedvalues) {\r\n // selectedvalues is an array of Ids that match the id property within the selected menu item\r\n if (this.selected_data && this.selected_item && this.selected_data.item_data?.MenuItemData?.OnDeactivateActions) { //deactivate the previously selected menu\r\n await utils.executeAndCompileAllActions(this.selected_data.item_data.MenuItemData.OnDeactivateActions, { Data: this.selected_item, SelectedItem: this.selected_data }, this);\r\n this.selected_values = [];\r\n this.selected_item = null;\r\n this.selected_data = null;\r\n }\r\n\r\n if (selectedvalues.length > 0) { //activate and set the menu that is now selected\r\n this.selected_values = selectedvalues;\r\n this.selected_item = selectedvalues[0];\r\n\r\n this.selected_data = this.findItem(this.model, this.selected_item); //get menu item\r\n\r\n if (this.selected_data?.item_data?.MenuItemData?.OnActivateActions) {\r\n await utils.executeAndCompileAllActions(this.selected_data.item_data.MenuItemData.OnActivateActions, { Data: this.selected_item, SelectedItem: this.selected_data }, this);\r\n }\r\n\r\n await utils.executeAndCompileAllActions(this.controlData.Actions, { Data: this.selected_item, SelectedItem: this.selected_data }, this);\r\n }\r\n },\r\n async lookupBadge(url, tooltip, item) {\r\n if (url) {\r\n const promise = utils.api.get(url);\r\n const tooltipexpr = utils.compile(this, tooltip);\r\n const res = await promise;\r\n this.Input = {\r\n Count: (typeof res === 'object' && res && 'Result' in res) ? res.Result : res,\r\n };\r\n if (this.Input.Count > 0) {\r\n const value = utils.evaluate(tooltipexpr, this);\r\n Vue.set(item, 'badgecontent', this.Input.Count < 100 ? `${this.Input.Count}` : \"99+\");\r\n Vue.set(item, 'tooltip', value);\r\n Vue.set(item, 'showbadge', true);\r\n }\r\n else {\r\n Vue.set(item, 'showbadge', false);\r\n }\r\n }\r\n },\r\n findBadges(item) {\r\n const badgelist = [];\r\n\r\n if (item.item_data.MenuItemData) {\r\n const badgeinfo = item.item_data.MenuItemData.Badge;\r\n if (badgeinfo && !item.badgecontent && (badgeinfo.LookupType == 'URL' || (!badgeinfo.LookupType && badgeinfo.CountURL))) {\r\n badgelist.push(badgeinfo);\r\n }\r\n }\r\n if (item.children) {\r\n const ci = item.children.filter(a => a.item_data && a.item_data.MenuItemData && a.item_data.MenuItemData.Badge && (a.item_data.MenuItemData.Badge.LookupType || a.item_data.MenuItemData.Badge.CountURL));\r\n for (let i = 0; i < ci.length; i++) {\r\n const c = ci[i];\r\n const b = this.findBadges(c);\r\n for (let j = 0; j < b.length; j++)\r\n badgelist.push(b[j]);\r\n }\r\n }\r\n return badgelist;\r\n },\r\n SelectItem(id) {\r\n this.selected_values = [id];\r\n },\r\n menuItemRefresh(e, item) {\r\n e.cancelBubble = true;\r\n e.stopPropagation();\r\n\r\n utils.api.clearCache();\r\n\r\n if (item.MenuItemData && item.MenuItemData.ControlData)\r\n item.MenuItemData.ControlData.$objectId = utils.generateUUID();\r\n },\r\n showContextMenu(e, item) {\r\n this.contextMenuItem = item;\r\n e.preventDefault()\r\n this.showMenu = false\r\n this.x = e.clientX\r\n this.y = e.clientY\r\n this.$nextTick(() => {\r\n this.showMenu = true\r\n })\r\n },\r\n getMenuNameAndPath(menu) {\r\n let name = menu.MenuName + ' / ';\r\n if (menu.MenuPath)\r\n name += menu.MenuPath + ' / ';\r\n\r\n name += menu.MenuItemData.Title;\r\n\r\n return name;\r\n },\r\n openForLocalEdit(e, item) {\r\n e.preventDefault()\r\n utils.openForLocalEdit({ Type: 'MenuItem', Id: item._id, Name: this.getMenuNameAndPath(item) });\r\n },\r\n openForExternalEdit(e, item, controlOwnerId, shared) {\r\n e.preventDefault();\r\n utils.OpenEditorForExternalEdit({ Type: 'MenuItem', Id: item._id, Name: this.getMenuNameAndPath(item), OwnerId: controlOwnerId }, shared);\r\n },\r\n },\r\n props: {\r\n },\r\n render(h) {\r\n if (!this.todisplay || !this.controlData)\r\n return null;\r\n\r\n const style = {\r\n minWidth: \"25px\",\r\n ...this.sizeStyle,\r\n ...utils.resolveStyleHints(this.styleHints, this),\r\n };\r\n\r\n let title;\r\n if (this.MenuTitle) // class=\"indigo\"\r\n title = (\r\n \r\n {this.MenuTitle}\r\n \r\n );\r\n\r\n const scopedSlots = {\r\n label: ({ item }) => {\r\n //if (item.item_data && item.item_data.MenuItemData.ControlData && item.item_data.MenuItemData.ControlData.DisplayExpression && !item.$displayexpn)\r\n // item.$displayexpn = utils.compileExpression(this, item.item_data.MenuItemData.ControlData.DisplayExpression);\r\n \r\n //if (item.item_data && item.item_data.MenuItemData.ControlData && item.item_data.MenuItemData.ControlData.DisplayExpression && item.$displayexpn)\r\n // item.disabled = !utils.evaluate(item.$displayexpn, this);\r\n\r\n let title;\r\n if (item.icon)\r\n title =
{item.icon}
;\r\n else\r\n title =
;\r\n\r\n if (item.badgecontent) {\r\n title = {title};\r\n }\r\n else if (item.item_data && item.item_data.MenuItemData && item.item_data.MenuItemData.badgecontent) {\r\n const badgeinfo = item.item_data.MenuItemData.badgecontent;\r\n\r\n title = {title};\r\n\r\n if (badgeinfo.tooltip && Array.isArray(badgeinfo.tooltip) && badgeinfo.tooltip.length > 0)\r\n title = utils.generateTooltip(h, title, badgeinfo.tooltip.map(t => {t}
), 'top');\r\n }\r\n \r\n return title;\r\n },\r\n append: ({ item }) => {\r\n let refresh;\r\n\r\n // For the selected menu item, add a refresh button\r\n if (this && this.selected_values.some(a => a == item.id)) {\r\n refresh = this.menuItemRefresh(e, item.item_data)}\r\n on-contextmenu={(e) => this.showContextMenu(e, item.item_data)}>\r\n mdi-refresh\r\n ;\r\n\r\n refresh = utils.generateTooltip(h, refresh, this.labelForceRefresh, 'right');\r\n }\r\n\r\n return refresh;\r\n },\r\n };\r\n\r\n // JSX cannot handle an event with a colon in the middle (update:active) so I have to declare this manually:\r\n const tv = h('v-treeview', {\r\n props: {\r\n activatable: true,\r\n hoverable: true,\r\n transition: true,\r\n openOnClick: true,\r\n dense: true,\r\n class: 'ma-1',\r\n items: this.menuItemsFiltered || [],\r\n active: this.selected_values,\r\n },\r\n scopedSlots: scopedSlots,\r\n on: {\r\n 'update:active': (e) => this.onInput(e),\r\n }\r\n });\r\n\r\n let contextMenu;\r\n if (this.isdebug && this.contextMenuItem)\r\n contextMenu = (\r\n \r\n \r\n \r\n \r\n {this.contextMenuItem.$ModuleMetaData.ModuleName}\r\n {this.getMenuNameAndPath(this.contextMenuItem)}\r\n \r\n \r\n\r\n \r\n\r\n \r\n this.menuItemRefresh(e, this.contextMenuItem)}>\r\n \r\n mdi-refresh\r\n \r\n\r\n \r\n Reload\r\n Flushes cache and reloads\r\n \r\n \r\n\r\n this.openForLocalEdit(e, this.contextMenuItem)}>\r\n \r\n mdi-pencil\r\n \r\n\r\n \r\n Edit Menu Item\r\n Local Tab\r\n \r\n \r\n\r\n this.openForExternalEdit(e, this.contextMenuItem, this.contextMenuItem.CustomerID, true)}>\r\n \r\n mdi-pencil-box-multiple\r\n \r\n\r\n \r\n Edit Menu Item\r\n New Window\r\n \r\n \r\n\r\n this.openForExternalEdit(e, this.contextMenuItem, this.contextMenuItem.CustomerID, false)}>\r\n \r\n mdi-pencil-box-multiple-outline\r\n \r\n\r\n \r\n Edit Menu Item\r\n New Browser Tab\r\n \r\n \r\n\r\n \r\n \r\n \r\n );\r\n \r\n return (\r\n \r\n \r\n {title}\r\n\r\n {tv}\r\n \r\n {contextMenu}\r\n \r\n );\r\n }\r\n});","import Vue from 'vue';\r\nimport utils from '../../../Shared/utils.jsx';\r\nimport methods from '../../../Shared/methods';\r\n\r\nVue.component('accordion-group-dsgn', {\r\n props: {\r\n name: '',\r\n root: null,\r\n designmodel: null,\r\n controlData: null,\r\n },\r\n methods: {\r\n generateItems(h, controls, parentType) {\r\n let items = [];\r\n for (var i = 0; i < controls.length; i++) {\r\n const control = controls[i];\r\n let DynamicControl = utils.getDynamicComponent(h, control);\r\n\r\n const _k = i + '_' + control.ControlType + '_' + control.$objectId;\r\n\r\n if (!DynamicControl)\r\n DynamicControl = 'default-unknown';\r\n\r\n DynamicControl += '-dsgn';\r\n\r\n items.push(\r\n \r\n \r\n );\r\n }\r\n return items;\r\n }\r\n },\r\n render(h) {\r\n try {\r\n let content = [];\r\n\r\n // Creating the header bar\r\n // The title can have pre title controls, a title, and header controls. We have to figure out which ones we have and \r\n // render them accordingly. We're going to wrap everything in the expansion panel header, and in a div that will emulate a \r\n // horizontal layout\r\n let titleContent = [];\r\n\r\n if (this.controlData?.PreTitleControls?.length)\r\n titleContent.push(
{this.generateItems(h, this.controlData.PreTitleControls, 'HorizontalLayout')}
);\r\n\r\n if (this.groupTitle)\r\n titleContent.push(
{this.groupTitle}
);\r\n\r\n if (this.controlData?.HeaderControls?.length)\r\n titleContent.push(
{this.generateItems(h, this.controlData.HeaderControls, 'HorizontalLayout')}
);\r\n\r\n content.push(\r\n \r\n
\r\n {titleContent}\r\n
\r\n
\r\n );\r\n\r\n if (this.controlData.AccordionBody) {\r\n utils.debug(`AccordionGroup render in if(this.controlData.AccordionBody)`);\r\n\r\n let body = this.generateItems(h, this.controlData.AccordionBody, 'VerticalLayout');\r\n\r\n content.push(\r\n \r\n
\r\n {body}\r\n
\r\n
\r\n )\r\n }\r\n\r\n return (\r\n \r\n {content}\r\n \r\n );\r\n }\r\n catch (e) {\r\n utils.error('AccordionGroup Render failed', e);\r\n return
AccordionGroup Failed to Render {e}
;\r\n }\r\n }\r\n});\r\n\r\nVue.component('accordion-dsgn', {\r\n data: function () {\r\n return {\r\n openedItems: [0],\r\n }\r\n },\r\n computed: {\r\n Root: function () {\r\n return this.root._self;\r\n },\r\n DesignModel: function () {\r\n return this.designmodel;\r\n },\r\n selected$: function () {\r\n return this.Root.SelectedNode && this.Root.SelectedModel == this.designmodel;\r\n },\r\n selectedStep$: function () {\r\n if (this.current_step >= 0 && this.current_step < this.controlData.Steps.length)\r\n return this.Root.SelectedNode && this.Root.SelectedModel == this.controlData.Steps[this.current_step];\r\n else\r\n return false;\r\n },\r\n },\r\n methods: {\r\n ...methods,\r\n handleClick(e) {\r\n this.Root.SelectNode(this);\r\n e.cancelBubble = true;\r\n e.stopPropagation();\r\n },\r\n\r\n openItem(index) {\r\n if (this.closeOthers)\r\n this.openedItems = [index];\r\n else if (!this.openedItems.includes(index)) {\r\n utils.debug(`Accordion ${this.name} openItem(index:${index})`);\r\n this.openedItems.push(index)\r\n }\r\n },\r\n closeItem(index) {\r\n if(this.openedItems.includes(index))\r\n this.openedItems = this.openedItems.filter(item => item != index);\r\n },\r\n toggleOpen(index){\r\n if(this.openedItems.includes(index))\r\n this.closeItem(index);\r\n else\r\n this.openItem(index);\r\n },\r\n\r\n generateItems(h, controls, parentType) {\r\n let items = [];\r\n for (var i = 0; i < controls.length; i++) {\r\n const control = controls[i];\r\n let DynamicControl = utils.getDynamicComponent(h, control);\r\n\r\n const _k = i + '_' + control.ControlType + '_' + control.$objectId;\r\n\r\n if (!DynamicControl)\r\n DynamicControl = 'default-unknown';\r\n\r\n DynamicControl += '-dsgn';\r\n\r\n items.push(\r\n \r\n \r\n );\r\n }\r\n return items;\r\n },\r\n getContent(groupTitle, controlData) {\r\n let content = [];\r\n\r\n // Creating the header bar\r\n // The title can have pre title controls, a title, and header controls. We have to figure out which ones we have and \r\n // render them accordingly. We're going to wrap everything in the expansion panel header, and in a div that will emulate a \r\n // horizontal layout\r\n let titleContent = [];\r\n\r\n if (controlData?.PreTitleControls?.length)\r\n titleContent.push(
{this.generateItems(h, controlData.PreTitleControls, 'HorizontalLayout')}
);\r\n\r\n if (groupTitle)\r\n titleContent.push(
{groupTitle}
);\r\n\r\n if (controlData?.HeaderControls?.length)\r\n titleContent.push(
{this.generateItems(h, controlData.HeaderControls, 'HorizontalLayout')}
);\r\n\r\n content.push(\r\n \r\n
\r\n {titleContent}\r\n
\r\n
\r\n );\r\n\r\n if (controlData.AccordionBody) {\r\n utils.debug(`AccordionGroup render in if(this.controlData.AccordionBody)`);\r\n\r\n let body = this.generateItems(h, controlData.AccordionBody, 'VerticalLayout');\r\n\r\n content.push(\r\n \r\n
\r\n {body}\r\n
\r\n
\r\n )\r\n }\r\n\r\n return (\r\n \r\n {content}\r\n \r\n );\r\n }\r\n },\r\n props: {\r\n name: '',\r\n root: null,\r\n designmodel: null,\r\n parentType: '',\r\n controlData: {}\r\n },\r\n render(h) {\r\n\r\n const style = {\r\n overflow: \"auto\",\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n border: \"1px solid #ddd\",\r\n margin: \"3px\",\r\n borderRadius: \"3px\",\r\n /*zIndex: 2,*/\r\n ...utils.getSize(this.controlData.SizeOptions, this.parentType, this.$parent)\r\n };\r\n\r\n try {\r\n return (\r\n this.handleClick(e)}>\r\n
\r\n\r\n \r\n {this.controlData.AccordionGroup.map((groupItem, index) => this.getContent('', groupItem))}\r\n \r\n \r\n );\r\n }\r\n catch(e) {\r\n utils.error('Accordion Render failed', e);\r\n return
Accordion Failed to Render {e}
;\r\n }\r\n }\r\n});","import Vue from 'vue';\r\nimport utils from '../../../Shared/utils.jsx';\r\nimport methods from '../../../Shared/methods';\r\nimport filters from '../../../Shared/filters';\r\n\r\n/*********\r\n * \r\n * DESIGNER base component\r\n * \r\n * !!! Don't confuse this version with the normal version, this is the DESIGNER version !!!\r\n * \r\n *********/\r\n\r\nvar baseDesignerMixin = {\r\n data: function () {\r\n return {\r\n }\r\n },\r\n computed: {\r\n utils: function () {\r\n return utils;\r\n },\r\n Base: function () {\r\n let p = this;\r\n\r\n while (p && !p.isbase)\r\n p = p.$parent;\r\n\r\n return p || this.root._self;\r\n },\r\n GlobalVars: function () {\r\n return utils.global_variables;\r\n },\r\n ServiceVars: function () {\r\n return utils.service_variables;\r\n },\r\n System: function () {\r\n return {\r\n LocalStorage: function (key, value) {\r\n var context = \"\";\r\n\r\n //if (this.careTokenService)\r\n // context = this.careTokenService.UserID() + '_' + this.careTokenService.CustomerID();\r\n\r\n if (value === undefined)\r\n return localStorage.getItem('user.' + context + '.' + key);\r\n else if (value == null)\r\n localStorage.removeItem('user.' + context + '.' + key);\r\n else\r\n localStorage.setItem('user.' + context + '.' + key, value);\r\n },\r\n UserLocalStorage: function (key, value) {\r\n var context = \"\";\r\n\r\n //if (this.careTokenService)\r\n // context = this.careTokenService.UserID();\r\n\r\n if (value === undefined)\r\n return localStorage.getItem('user.' + context + '.' + key);\r\n else if (value == null)\r\n localStorage.removeItem('user.' + context + '.' + key);\r\n else\r\n localStorage.setItem('user.' + context + '.' + key, value);\r\n },\r\n NoContextLocalStorage: function (key, value) {\r\n if (value === undefined)\r\n return localStorage.getItem('user.' + key);\r\n else if (value == null)\r\n localStorage.removeItem('user.' + key);\r\n else\r\n localStorage.setItem('user.' + key, value);\r\n },\r\n };\r\n },\r\n Name: function () {\r\n return this.controlData ? (this.controlData.Name || 'unnamed') : 'no control data';\r\n },\r\n Root: function () {\r\n return this.root._self;\r\n },\r\n Parent: function () {\r\n let p = this.$parent;\r\n\r\n // Look for a parent object that is a CallCorp control (skip native vue controls)\r\n while (p && !p.root) {\r\n if (p.$attrs && 'c_context' in p.$attrs)\r\n p = p.$attrs.c_context;\r\n else\r\n p = p.$parent;\r\n }\r\n\r\n return p;\r\n },\r\n Vars: function () {\r\n return this.controlData ? this.controlData.Vars : {};\r\n },\r\n selected$: function () {\r\n return this.Root.SelectedNode && this.Root.SelectedModel == this.designmodel;\r\n },\r\n },\r\n async created() {\r\n },\r\n async mounted() {\r\n },\r\n async updated() {\r\n },\r\n methods: {\r\n ...methods,\r\n ...filters,\r\n handleClick(e) {\r\n this.Root.SelectNode(this);\r\n e.cancelBubble = true;\r\n e.stopPropagation();\r\n },\r\n },\r\n props: {\r\n name: '',\r\n root: null,\r\n designmodel: null,\r\n type: null,\r\n parentType: '',\r\n controlData: {},\r\n },\r\n};\r\n\r\nexport default baseDesignerMixin;","import Vue from 'vue';\r\nimport BaseComponent from './BaseComponentMixin.jsx';\r\nimport utils from '../../../Shared/utils.jsx';\r\n\r\nVue.component('apex-general-chart-dsgn', {\r\n mixins: [BaseComponent],\r\n components: {\r\n },\r\n data: function () {\r\n return {\r\n datamodel: null,\r\n optionsmodel: null,\r\n }\r\n },\r\n created() {\r\n },\r\n //Created Replaced with preRenderComplete\r\n computed: {\r\n style() {\r\n return {\r\n ...utils.resolveStyleHints(this.styleHints, this),\r\n ...utils.getSize(this.controlData.SizeOptions, this.parentType, this.$parent),\r\n display: 'flex',\r\n flexDirection: 'column',\r\n overflow: \"none\"\r\n };\r\n },\r\n\r\n chartType: function () {\r\n // bar, line, etc.\r\n return this.controlData.ChartType;\r\n },\r\n chartData: function () {\r\n switch (this.controlData.DataType) {\r\n case 'Raw':\r\n case 'RawInterpolated':\r\n return JSON.parse(JSON.stringify(this.controlData.DataRaw));\r\n\r\n case 'URL':\r\n return this.datamodel;\r\n\r\n default:\r\n return null;\r\n }\r\n },\r\n chartOptions: function () {\r\n switch (this.controlData.OptionsType) {\r\n case 'Raw':\r\n case 'RawInterpolated':\r\n return JSON.parse(JSON.stringify(this.controlData.OptionsRaw));\r\n\r\n case 'URL':\r\n return this.optionsmodel;\r\n\r\n default:\r\n return null;\r\n }\r\n },\r\n },\r\n methods: {\r\n async preRenderComplete() {\r\n this.finishRenderHandler(this);\r\n this.Refresh();\r\n },\r\n async Refresh() {\r\n if (this.controlData.OptionsType === 'URL' && !this.controlData.OptionsURL.includes('{')) {\r\n this.optionsmodel = await utils.api.get(this.controlData.OptionsURL);\r\n }\r\n else\r\n this.optionsmodel = {};\r\n\r\n if (this.controlData.DataType === 'URL' && !this.controlData.DataURL.includes('{')) {\r\n this.datamodel = await utils.api.get(this.controlData.DataURL);\r\n }\r\n else\r\n this.datamodel = [];\r\n },\r\n },\r\n render(h) {\r\n return (\r\n
\r\n this.handleClick(e)}\r\n >\r\n
\r\n \r\n\r\n \r\n \r\n
\r\n );\r\n }\r\n});\r\n","import Vue from 'vue';\r\nimport utils from '../../../Shared/utils.jsx';\r\nimport BaseComponent from './BaseComponentMixin.jsx';\r\n\r\nVue.component('audio-player-dsgn', {\r\n mixins: [BaseComponent],\r\n data: function () {\r\n return {\r\n }\r\n },\r\n render(h) {\r\n let name;\r\n if (!this.name)\r\n name = this.type;\r\n else\r\n name = this.name + ':' + this.type || 'Unnamed';\r\n\r\n return (\r\n this.handleClick(e)}>\r\n
\r\n {name}
\r\n \r\n );\r\n }\r\n});","import Vue from 'vue';\r\nimport utils from '../../../Shared/utils.jsx';\r\nimport methods from '../../../Shared/methods';\r\nimport BaseComponent from './BaseComponentMixin.jsx';\r\n\r\nconst buttonBase = {\r\n mixins: [BaseComponent],\r\n data: function () {\r\n return {\r\n }\r\n },\r\n created() {\r\n },\r\n computed: {\r\n text() {\r\n return this.controlData.Text;\r\n },\r\n icon() {\r\n let icon = this.controlData.Icon;\r\n\r\n if (icon && icon.startsWith('{'))\r\n return 'mdi mdi-help-circle';\r\n\r\n return icon;\r\n },\r\n iconPosition() {\r\n if (this.controlData.IconPosition)\r\n return this.controlData.IconPosition;\r\n return 'right';\r\n },\r\n iconGap() {\r\n if (this.controlData.IconGap)\r\n return this.controlData.IconGap;\r\n return 10;\r\n },\r\n flipHorizontally() {\r\n if (this.controlData.FlipHorizontally)\r\n return this.controlData.FlipHorizontally;\r\n return false;\r\n },\r\n flipVertically() {\r\n if (this.controlData.flipVertically)\r\n return this.controlData.flipVertically;\r\n return false;\r\n },\r\n border() {\r\n if (this.controlData.Border)\r\n return this.controlData.Border;\r\n return false;\r\n },\r\n animation() {\r\n if (this.controlData.Animation)\r\n return this.controlData.Animation;\r\n return 'None';\r\n },\r\n color() {\r\n let theColor = 'secondary';\r\n if (this.controlData.Color)\r\n theColor = this.controlData.Color;\r\n\r\n if (this.isOutlined && theColor)\r\n theColor = theColor.replace('outline-', '');\r\n else\r\n theColor = theColor || 'secondary';\r\n // This helps with backwards compatibility for a version of Bootstrap that used the word 'default' to describe the secondary button\r\n return theColor === 'default' ? 'secondary' : theColor;\r\n },\r\n cssClass() {\r\n if (this.controlData.CssClass)\r\n return this.controlData.CssClass;\r\n return '';\r\n },\r\n tooltip() {\r\n if (this.controlData.Tooltip)\r\n return this.controlData.Tooltip;\r\n return '';\r\n },\r\n tooltipLocation() {\r\n let location = this.controlData.TooltipLocation || '';\r\n return location.split('-')[0].toLowerCase() || 'auto';\r\n },\r\n isDefault() {\r\n if (this.controlData.IsDefault)\r\n return this.controlData.IsDefault;\r\n return false;\r\n },\r\n isdisabled() {\r\n if (this.controlData.IsDisabled)\r\n return this.controlData.IsDisabled == 'true';\r\n return false;\r\n },\r\n stopPropagation() {\r\n if (this.controlData.StopPropagation)\r\n return this.controlData.StopPropagation;\r\n return false;\r\n },\r\n styles() {\r\n return {\r\n ...utils.getStyleHints(this.controlData.StyleHints),\r\n overflow: \"hidden\",\r\n whiteSpace: \"nowrap\",\r\n };\r\n },\r\n sizeStyle() {\r\n return utils.getSize(this.controlData.SizeOptions, this.parentType, this.$parent);\r\n },\r\n isOutlined() {\r\n return this.controlData.Color && this.controlData.Color.startsWith('outline-');\r\n },\r\n buttonClasses() {\r\n let classes = {\r\n 'ThemeRightConnector': this.themes.rightConnector,\r\n 'ThemeLeftConnector': this.themes.leftConnector,\r\n };\r\n\r\n classes[this.cssClass] = true;\r\n\r\n return classes;\r\n },\r\n iconClasses() {\r\n return {\r\n 'mdi mdi-flip-vertical': this.flipVertically,\r\n 'mdi mdi-flip-horizontal': this.flipHorizontally,\r\n 'mdi mdi-border-all-variant': this.border,\r\n 'mdi-animate-spin': this.animation === 'Spin',\r\n 'mdi-animate-pulse': this.animation === 'Pulse',\r\n }\r\n },\r\n themes() {\r\n return {\r\n flat: this.controlData.Themes ? this.controlData.Themes.includes(\"Flat\") || this.controlData.Themes.includes(\"FlatWhite\") || this.controlData.Themes.includes(\"Transparent\") : false,\r\n small: this.controlData.Themes ? this.controlData.Themes.includes(\"Condensed\") || this.controlData.Themes.includes(\"CondensedBordered\") : false,\r\n condensedBordered: this.controlData.Themes ? this.controlData.Themes.includes(\"CondensedBordered\") : false,\r\n transparent: this.controlData.Themes ? this.controlData.Themes.includes(\"Transparent\") : false,\r\n leftConnector: this.controlData.Themes ? this.controlData.Themes.includes(\"LeftConnector\") : false,\r\n rightConnector: this.controlData.Themes ? this.controlData.Themes.includes(\"RightConnector\") : false,\r\n }\r\n },\r\n },\r\n methods: {\r\n handleClick(e) {\r\n this.Root.SelectNode(this);\r\n e.cancelBubble = true;\r\n e.stopPropagation();\r\n },\r\n },\r\n props: {\r\n },\r\n render(h) {\r\n //const style = {\r\n // maxWidth: \"250px\", // Just for the designer\r\n // ...utils.getSize(this.controlData.SizeOptions, this.parentType, this.$parent),\r\n // overflow: \"hidden\",\r\n // whiteSpace: \"nowrap\",\r\n // border: '1px solid black',\r\n // padding: '2px',\r\n // margin: '1px',\r\n //};\r\n\r\n\r\n //let icon;\r\n //if (this.controlData.Icon && (this.controlData.Icon.includes('{{') || this.controlData.Icon.includes('{*')))\r\n // icon = 'mdi mdi-help-circle';\r\n //else\r\n // icon = this.controlData.Icon;\r\n\r\n //let text = this.controlData.Text;\r\n\r\n //if (!text && !icon) {\r\n // // This is found in the WizardButton\r\n // if (this.controlData.Type)\r\n // switch (this.controlData.Type) {\r\n // case 'Back': text = 'Back'; icon = 'mdi mdi-chevron-double-left'; break;\r\n // case 'Next': text = 'Next'; icon = 'mdi mdi-chevron-double-right'; break;\r\n // case 'Finish': text = 'Finish'; break;\r\n // }\r\n // else\r\n // text = 'Untitled';\r\n //}\r\n\r\n let content = [];\r\n\r\n if (this.text && this.icon) {\r\n if (this.iconPosition === 'Left') content.push({this.icon});\r\n content.push(this.text);\r\n if (!this.iconPosition || this.iconPosition === 'Right') content.push({this.icon});\r\n }\r\n else if (this.text)\r\n content.push(this.text);\r\n else if (this.icon)\r\n content.push({this.icon});\r\n else if (this.controlData.Type)\r\n switch (this.controlData.Type) {\r\n case 'Next':\r\n case 'Back':\r\n case 'Finish':\r\n content.push(this.controlData.Type);\r\n break;\r\n }\r\n\r\n return (\r\n this.handleClick(e)}>\r\n
\r\n \r\n {content}\r\n \r\n \r\n );\r\n\r\n //return (\r\n //
\r\n // this.handleClick(e)}\r\n // type=\"button\"\r\n // title={this.controlData.Tooltip}>\r\n //
\r\n // {text} \r\n // \r\n //
\r\n //);\r\n }\r\n};\r\n\r\nVue.component('basic-button-dsgn', {\r\n mixins: [buttonBase]\r\n});\r\n\r\nVue.component('wizard-button-dsgn', {\r\n mixins: [buttonBase]\r\n});","import Vue from 'vue';\r\nimport formInput from './input.jsx';\r\n//import formNumber from './number.jsx';\r\n//import formCheckbox from './checkbox.jsx';\r\nimport formSelect from './select.jsx';\r\nimport formAnyOf from './anyof.jsx';\r\nimport formArray from './array.jsx';\r\n//import schemaProperties from './SchemaProperties.jsx';\r\nimport utils from '../../../../Shared/utils.jsx';\r\nimport methods from '../../../../Shared/methods';\r\n\r\nfunction toggleVisible(cmodel, key)\r\n{\r\n cmodel[key] = cmodel[key] === 'true' ? 'false' : 'true';\r\n utils.log('Key : ' + key + ' = ' + cmodel[key]);\r\n}\r\n\r\nfunction getFormElements(h, control, schema, element_model, elements, root, child)\r\n{\r\n for (let key in schema.properties) {\r\n if (key.substr(0, 1) == '$') continue;\r\n const value = element_model[key];\r\n let element = utils.schema.resolve_Of(schema.properties[key]);\r\n let cmodel = element_model;\r\n let Tag;\r\n\r\n switch (element.type) {\r\n case 'string':\r\n if (('anyOf' in element))\r\n Tag = 'form-anyof-dsgn';\r\n else if (('enum' in element) || ('titleMap' in element))\r\n Tag = 'form-select-dsgn';\r\n else\r\n Tag = 'form-input-dsgn';\r\n break;\r\n case 'integer':\r\n case 'number': Tag = 'form-number'; break;\r\n case 'boolean': Tag = 'form-checkbox'; break;\r\n case 'array': Tag = 'form-array-dsgn'; break;\r\n case 'object':\r\n if (!cmodel[key])\r\n Vue.set(cmodel, key, {});\r\n\r\n const visible_key = '$' + key + '_visible';\r\n if (!cmodel[visible_key])\r\n Vue.set(cmodel, visible_key, child <= 0 ? 'true' : 'false');\r\n\r\n const vis = cmodel[visible_key] === 'true';\r\n\r\n elements.push(\r\n toggleVisible(cmodel, visible_key)}>\r\n \r\n [{vis ? '-' : '+'}] {element.title || key}\r\n \r\n \r\n );\r\n if (vis) {\r\n if (element.format === 'SchemaProperty')\r\n elements.push(\r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n else\r\n getFormElements(h, control, element, cmodel[key], elements, root, child + 1);\r\n }\r\n continue;\r\n default:\r\n if ('$typeSchema' in element) {\r\n const typeSchema = element.$typeSchema;\r\n const parts = typeSchema.split('/');\r\n elements.push();\r\n continue;\r\n }\r\n\r\n if ('format' in element)\r\n switch (element.format)\r\n {\r\n case 'TextEditor':\r\n elements.push(\r\n \r\n \r\n {element.title || key}
\r\n \r\n \r\n \r\n \r\n \r\n );\r\n //elements.push();\r\n continue;\r\n }\r\n\r\n let type = ('anyOf' in element) ? 'anyOf' :\r\n ('allOf' in element) ? 'allOf' :\r\n ('oneOf' in element) ? 'oneOf' :\r\n ('unknown:' + element.type);\r\n\r\n utils.log('skipping type: ' + type);\r\n Tag = 'div';\r\n continue;\r\n }\r\n\r\n elements.push(\r\n \r\n \r\n );\r\n }\r\n}\r\n\r\nVue.component('property-grid-dsgn', {\r\n data: () => ({\r\n }),\r\n props: {\r\n name: '',\r\n schemakey: null,\r\n root: null,\r\n schema: null,\r\n form: null,\r\n cmodel: null,\r\n child: 0,\r\n readonly: false,\r\n extra: null\r\n },\r\n methods: {\r\n textChanged(prop, cmodel, value) {\r\n try {\r\n const obj = JSON.parse(value);\r\n Vue.set(cmodel, prop, obj);\r\n }\r\n catch (e)\r\n {\r\n utils.warn('Property grid failed to convert value to object: ' + e);\r\n }\r\n }\r\n },\r\n render(h) {\r\n let schema = this.schema;\r\n let elements = [];\r\n if (!schema)\r\n return null;\r\n\r\n schema = utils.schema.resolve_Of(schema);\r\n\r\n if (schema.type !== 'object')\r\n return
Schema must be an object
;\r\n\r\n let cmodel = this.cmodel;\r\n if (this.schemakey !== null && !(typeof this.schemakey === 'undefined'))\r\n cmodel = this.cmodel[this.schemakey];\r\n\r\n getFormElements(h, this, schema, cmodel, elements, this.root, this.child);\r\n \r\n return (\r\n \r\n {elements}\r\n
\r\n );\r\n }\r\n});","import Vue from 'vue';\r\nimport utils from '../../../Shared/utils.jsx';\r\nimport methods from '../../../Shared/methods';\r\n\r\nfunction hasNonEmptyValue(text) {\r\n if (!text)\r\n return false;\r\n\r\n if (typeof text === 'string')\r\n if (!text.trim())\r\n return false;\r\n\r\n return true;\r\n}\r\n\r\nVue.component('grid-cell-dsgn', {\r\n data: () => ({\r\n\r\n }),\r\n props: {\r\n root: null,\r\n schema: null,\r\n cmodel: null,\r\n columnDef: null,\r\n selected$: false,\r\n firstrow: false,\r\n addControl: null,\r\n },\r\n computed: {\r\n Root: function () {\r\n return this.root._self;\r\n },\r\n selectedmodel$: function () {\r\n return this.Root.SelectedModel && this.Root.SelectedModel == this.columnDef;\r\n },\r\n },\r\n methods: {\r\n addContent(e, content) {\r\n this.addControl(content);\r\n e.cancelBubble = true;\r\n e.stopPropagation();\r\n },\r\n addContentDef(e) {\r\n if (!this.columnDef.ContentDefs)\r\n Vue.set(this.columnDef, 'ContentDefs', []);\r\n\r\n this.columnDef.ContentDefs.push({\r\n $typeSchema: '/schema/public/Platform.Schema.DynamicControls.v1/DynamicControl_Grid_ContentDef',\r\n $objectId: utils.generateUUID(),\r\n Controls: [],\r\n });\r\n e.cancelBubble = true;\r\n e.stopPropagation();\r\n }\r\n },\r\n render() {\r\n const cdef = this.columnDef;\r\n if (!cdef) return null;\r\n\r\n try {\r\n if (cdef.ContentDefs && cdef.ContentDefs.length >= 0) {\r\n const elements = [];\r\n for (let i = 0; i < cdef.ContentDefs.length; i++) {\r\n const content = cdef.ContentDefs[i];\r\n if (!content.Controls) continue;\r\n\r\n for (let j = 0; j < content.Controls.length; j++) {\r\n const control = content.Controls[j];\r\n\r\n let DynamicControl = utils.getDynamicComponent(h, control);\r\n if (!DynamicControl) {\r\n elements.push(Control type of {control.ControlType} is unknown);\r\n continue;\r\n }\r\n DynamicControl += '-dsgn';\r\n\r\n elements.push(\r\n \r\n \r\n );\r\n }\r\n\r\n if (this.firstrow && this.selected$ && this.selectedmodel$)\r\n elements.push(\r\n
\r\n {utils.generateTooltip(h,\r\n this.addContent(e, content)}>\r\n mdi mdi-plus-circle\r\n ,\r\n `Add control to column def #${i + 1}`, 'right')}\r\n
\r\n );\r\n }\r\n\r\n if (this.firstrow && this.selected$ && this.selectedmodel$)\r\n elements.push(\r\n
\r\n {utils.generateTooltip(h,\r\n this.addContentDef(e)}>\r\n mdi mdi-plus-circle\r\n ,\r\n 'Add column def', 'right')}\r\n
\r\n );\r\n\r\n return (\r\n \r\n
\r\n {elements}\r\n
\r\n \r\n );\r\n }\r\n else if (cdef.Field && (cdef.Field in this.cmodel)) {\r\n const cell = this.cmodel[cdef.Field];\r\n let text;\r\n if (cell === null || typeof cell === 'undefined')\r\n text = '';\r\n else if (typeof cell === 'string')\r\n text = cell;\r\n else if (typeof cell === 'boolean')\r\n text = cell ? 'true' : 'false';\r\n else if (typeof cell === 'number' || typeof cell === 'integer')\r\n text = cell;\r\n else\r\n text = JSON.stringify(cell);\r\n\r\n let addcdef;\r\n if (this.firstrow && this.selected$ && this.selectedmodel$)\r\n addcdef = (\r\n
\r\n {utils.generateTooltip(h,\r\n this.addContentDef(e)}>\r\n mdi mdi-plus-circle\r\n ,\r\n 'Add column def', 'right')}\r\n
\r\n );\r\n\r\n return (\r\n \r\n {text} {addcdef}\r\n \r\n );\r\n }\r\n else {\r\n let addcdef;\r\n if (this.firstrow && this.selected$ && this.selectedmodel$)\r\n addcdef = (\r\n
\r\n {utils.generateTooltip(h,\r\n this.addContentDef(e)}>\r\n mdi mdi-plus-circle\r\n ,\r\n 'Add column def', 'right')}\r\n
\r\n );\r\n\r\n return (\r\n \r\n {addcdef}\r\n \r\n );\r\n }\r\n\r\n return null;\r\n }\r\n catch (e) {\r\n return error;\r\n }\r\n }\r\n});\r\n\r\nVue.component('grid-row-dsgn', {\r\n data: () => ({\r\n\r\n }),\r\n props: {\r\n name: '',\r\n root: null,\r\n schema: null,\r\n cmodel: null,\r\n columnDefs: null,\r\n even: false,\r\n selected$: false,\r\n firstrow: false,\r\n addControl: null,\r\n },\r\n computed: {\r\n Root: function () {\r\n return this.root._self;\r\n },\r\n selectedmodel$: function () {\r\n return this.Root.SelectedModel && this.Root.SelectedModel == this.columnDef;\r\n },\r\n },\r\n render() \r\n {\r\n if (!this.cmodel)\r\n return null;\r\n\r\n try {\r\n const columns = [];\r\n\r\n if (this.columnDefs && typeof this.columnDefs === 'object' && Array.isArray(this.columnDefs) && this.columnDefs.length > 0) {\r\n const maxpct = 100 / this.columnDefs.length;\r\n for (let i = 0; i < this.columnDefs.length; i++) {\r\n const cdef = this.columnDefs[i];\r\n\r\n columns.push(\r\n \r\n \r\n );\r\n }\r\n }\r\n else {\r\n const maxpct = 100 / Object.keys(this.cmodel).length;\r\n for (let key in this.cmodel) {\r\n const cdef = {\r\n Field: key,\r\n };\r\n columns.push(\r\n \r\n \r\n );\r\n }\r\n }\r\n\r\n const style = {};\r\n\r\n style.backgroundColor = this.even ? \"#f0f0f0\" : \"white\";\r\n\r\n return (\r\n \r\n {columns}\r\n \r\n );\r\n }\r\n catch (e) {\r\n return (\r\n \r\n Exception in grid-row-dsgn: {e}\r\n \r\n );\r\n }\r\n }\r\n});\r\n\r\nVue.component('basic-grid-dsgn', {\r\n data: () => ({\r\n displayexpr: null,\r\n schemaurl: null,\r\n schemaraw: null,\r\n modelurl: null,\r\n modelvalue: null,\r\n schema: null,\r\n model: {},\r\n pickervisible: false,\r\n picker: null,\r\n pickercdef: null,\r\n }),\r\n created() {\r\n },\r\n mounted() {\r\n this.Refresh();\r\n },\r\n computed: {\r\n Root: function () {\r\n return this.root._self;\r\n },\r\n Model: function () {\r\n return this.model;\r\n },\r\n selected$: function () {\r\n return this.Root.SelectedNode && this.Root.SelectedNode == this;\r\n },\r\n },\r\n methods: {\r\n ...methods,\r\n handleClick(e) {\r\n this.Root.SelectNode(this);\r\n e.cancelBubble = true;\r\n e.stopPropagation();\r\n },\r\n selectColumn(e, index) {\r\n this.Root.SelectNode(this, this.controlData.ColumnDefs[index]);\r\n e.cancelBubble = true;\r\n e.stopPropagation();\r\n },\r\n deleteColumn(e, index) {\r\n this.controlData.ColumnDefs.splice(index, 1);\r\n e.cancelBubble = true;\r\n e.stopPropagation();\r\n },\r\n addColumn(e) {\r\n if (!this.controlData.ColumnDefs)\r\n Vue.set(this.controlData, 'ColumnDefs', []);\r\n\r\n this.controlData.ColumnDefs.push({\r\n $typeSchema: '/schema/public/Platform.Schema.DynamicControls.v1/DynamicControl_Grid_ColumnDef',\r\n Align: 'Left',\r\n DisplayName: '',\r\n Field: 'field' + (this.controlData.ColumnDefs.length+1),\r\n Sortable: true,\r\n Visible: true,\r\n Width: 'Auto',\r\n });\r\n this.Root.SelectNode(this, this.controlData.ColumnDefs[this.controlData.ColumnDefs.length - 1]);\r\n e.cancelBubble = true;\r\n e.stopPropagation();\r\n },\r\n async Refresh() {\r\n if (this.controlData.SchemaURL)\r\n try {\r\n this.schema = await utils.schema.get(this.controlData.SchemaURL);\r\n }\r\n catch (e) {\r\n utils.warn('Design BasicGrid schemaurl ' + this.controlData.SchemaURL + ' failed to load: ' + e);\r\n this.schema = null;\r\n }\r\n\r\n if (this.controlData.DataType == 'URL' && this.controlData.DataURL)\r\n try {\r\n this.model = await utils.api.get(this.controlData.DataURL);\r\n }\r\n catch (e) {\r\n utils.warn('Design BasicGrid DataURL ' + this.controlData.DataURL + ' failed to load: ' + e);\r\n this.model = [{}];\r\n }\r\n else if (this.controlData.DataType == 'Raw' && this.controlData.Data && Array.isArray(this.controlData.Data)) {\r\n this.model = this.controlData.Data;\r\n }\r\n else\r\n this.model = [{}];\r\n },\r\n\r\n addControl(cdef) {\r\n this.pickercdef = cdef;\r\n this.picker = ;\r\n this.pickervisible = true;\r\n },\r\n async confirmAddControl(id, title) {\r\n this.pickervisible = false;\r\n\r\n try {\r\n const schema_ = await utils.schema.get(id);\r\n const schema = utils.schema.resolve_Of(schema_)\r\n const model = utils.schema.getDefaultModel(schema);\r\n this.pickercdef.Controls.push(model);\r\n }\r\n catch (e) {\r\n alert(e);\r\n }\r\n },\r\n cancelAddControl() {\r\n this.pickervisible = false;\r\n },\r\n pickerInput(value) {\r\n this.pickervisible = value;\r\n },\r\n getColumnDefTitle(cdef) {\r\n if (hasNonEmptyValue(cdef.DisplayName))\r\n return cdef.DisplayName;\r\n else\r\n return cdef.Field || cdef.Name || 'Unnamed';\r\n },\r\n },\r\n props: {\r\n name: '',\r\n root: null,\r\n designmodel: null,\r\n parentType: '',\r\n controlData: {}\r\n },\r\n render() {\r\n let headercontrols;\r\n const elements = [];\r\n\r\n if (this.controlData.GridHeaderControls && this.controlData.GridHeaderControls.length > 0) {\r\n headercontrols = [];\r\n for (let j = 0; j < this.controlData.GridHeaderControls.length; j++) {\r\n const control = this.controlData.GridHeaderControls[j];\r\n\r\n let DynamicControl = utils.getDynamicComponent(h, control);\r\n if (!DynamicControl) {\r\n elements.push(Control type of {control.ControlType} is unknown);\r\n continue;\r\n }\r\n DynamicControl += '-dsgn';\r\n\r\n headercontrols.push(\r\n \r\n \r\n );\r\n }\r\n }\r\n\r\n let header;\r\n if (this.controlData.ColumnDefs && typeof this.controlData.ColumnDefs === 'object' && Array.isArray(this.controlData.ColumnDefs) && this.controlData.ColumnDefs.length > 0)\r\n {\r\n header = [];\r\n for (let i = 0; i < this.controlData.ColumnDefs.length; i++) {\r\n const cdef = this.controlData.ColumnDefs[i];\r\n\r\n header.push(\r\n \r\n this.selectColumn(e, i)}>\r\n {this.getColumnDefTitle(cdef)}\r\n this.deleteColumn(e, i)}>\r\n \r\n \r\n \r\n I\r\n \r\n );\r\n // The \"I\" within the hidden span above is required to keep the cell visible since the other two elements are using absolute position\r\n }\r\n elements.push({header});\r\n }\r\n else if (this.model && this.model.length > 0)\r\n {\r\n header = [];\r\n const sample = this.model[0];\r\n for (let head in sample)\r\n {\r\n header.push(\r\n \r\n {head}\r\n \r\n );\r\n }\r\n elements.push({header});\r\n }\r\n\r\n if (!this.model)\r\n elements.push(Loading...);\r\n else {\r\n let c = this.model.length;\r\n if (c > 10) c = 10;\r\n for (let i = 0; i < c; i++) {\r\n const row = this.model[i];\r\n if (!row.$objectId)\r\n row.$objectId = utils.generateUUID();\r\n\r\n elements.push(\r\n \r\n \r\n );\r\n }\r\n }\r\n\r\n let designer_class = {\r\n 'designer-container-selected-clickthrough': this.selected$\r\n };\r\n if (!this.selected$)\r\n designer_class[\"designer-container-hovering\"] = true;\r\n else\r\n designer_class[\"designer-container-hovering__selected\"] = true;\r\n\r\n if (headercontrols)\r\n headercontrols =\r\n
\r\n {headercontrols}\r\n
;\r\n\r\n return (\r\n this.handleClick(e)}>\r\n
\r\n\r\n
this.addColumn(e)} style={{ top: \"1px\", right: \"1px\", display: this.selected$ ? \"block\" : \"none\" }}>
\r\n {headercontrols}\r\n \r\n {elements}\r\n
\r\n\r\n this.pickerInput(value)}>\r\n {this.picker}\r\n \r\n \r\n );\r\n }\r\n});","import Vue from 'vue';\r\nimport utils from '../../../Shared/utils.jsx';\r\nimport methods from '../../../Shared/methods';\r\n\r\nVue.component('basic-text-dsgn', {\r\n data: function () {\r\n return {\r\n }\r\n },\r\n created() {\r\n },\r\n computed: {\r\n Root: function () {\r\n return this.root._self;\r\n },\r\n textStyles: function () {\r\n const styles = {};\r\n\r\n if (this.controlData.FontSize)\r\n styles['font-size'] = utils.resolveFontSize(this.controlData.FontSize);\r\n\r\n if (this.controlData.Color)\r\n styles.color = this.controlData.Color;\r\n else\r\n styles.color = '#444';\r\n\r\n return styles;\r\n },\r\n selected$: function () {\r\n return this.Root.SelectedNode && this.Root.SelectedModel == this.designmodel;\r\n },\r\n },\r\n methods: {\r\n ...methods,\r\n handleClick(e) {\r\n this.Root.SelectNode(this);\r\n e.cancelBubble = true;\r\n e.stopPropagation();\r\n },\r\n },\r\n props: {\r\n name: '',\r\n root: null,\r\n designmodel: null,\r\n parentType: '',\r\n controlData: {}\r\n },\r\n render(h) {\r\n const style = {\r\n ...utils.getSize(this.controlData.SizeOptions, this.parentType, this.$parent),\r\n ...this.textStyles,\r\n overflow: \"hidden\",\r\n whiteSpace: \"nowrap\",\r\n display: \"inline-block\"\r\n };\r\n\r\n return (\r\n
\r\n this.handleClick(e)}\r\n title={this.controlData.Tooltip}>\r\n
\r\n {this.controlData.Text || 'Empty'}\r\n \r\n
\r\n );\r\n }\r\n});","import Vue from 'vue';\r\nimport utils from '../../../Shared/utils.jsx';\r\nimport methods from '../../../Shared/methods';\r\n\r\nVue.component('basic-icon-dsgn', {\r\n data: function () {\r\n return {\r\n }\r\n },\r\n created() {\r\n },\r\n computed: {\r\n Root: function () {\r\n return this.root._self;\r\n },\r\n selected$: function () {\r\n return this.Root.SelectedNode && this.Root.SelectedModel == this.designmodel;\r\n },\r\n icon() {\r\n let icon = this.controlData.Icon;\r\n\r\n if (this.controlData.IconStyle === 'mdi' && !icon.startsWith('mdi-'))\r\n icon = `mdi-${icon}`;\r\n\r\n return icon;\r\n },\r\n iconClasses: function () {\r\n //let icon;\r\n //if (!this.controlData.Icon || this.controlData.Icon.includes('{{') || this.controlData.Icon.includes('{*'))\r\n // icon = 'mdi mdi-help-circle';\r\n //else\r\n // icon = this.controlData.Icon || 'mdi mdi-help-circle';\r\n\r\n let iconClass = '';\r\n iconClass += (this.controlData.FlipHorizontally) ? ' mdi mdi-flip-vertical ' : '';\r\n iconClass += (this.controlData.FlipVertically) ? ' mdi mdi-flip-horizontal ' : '';\r\n iconClass += (this.controlData.Border) ? ' mdi mdi-border-all-variant ' : '';\r\n iconClass += (this.controlData.Animation == \"Spin\") ? ' mdi-animate-spin ' : '';\r\n iconClass += (this.controlData.Animation == \"Pulse\") ? ' mdi-animate-pulse ' : '';\r\n return iconClass;\r\n },\r\n iconStyles: function () {\r\n const styles = {};\r\n\r\n styles.margin = '15%';\r\n\r\n if (this.controlData.GlowColor)\r\n styles['text-shadow'] = `0 0 0.2em ${this.controlData.GlowColor}`;\r\n\r\n if (this.controlData.FontSize)\r\n styles['font-size'] = utils.resolveFontSize(this.controlData.FontSize);\r\n\r\n if (this.controlData.Rotation)\r\n styles.transform = `rotate(${this.controlData.Rotation}deg)`;\r\n\r\n if (this.controlData.Color)\r\n styles.color = this.controlData.Color;\r\n\r\n return styles;\r\n },\r\n sizeStyle() {\r\n return utils.getSize(this.controlData.SizeOptions, this.parentType, this.$parent);\r\n },\r\n containerStyles() {\r\n let styles = {\r\n ...utils.resolveStyleHints(this.controlData.StyleHints, this),\r\n ...this.sizeStyle,\r\n display: 'flex',\r\n flexDirection: 'column',\r\n alignItems: 'center'\r\n };\r\n return styles;\r\n },\r\n },\r\n methods: {\r\n ...methods,\r\n handleClick(e) {\r\n this.Root.SelectNode(this);\r\n e.cancelBubble = true;\r\n e.stopPropagation();\r\n },\r\n },\r\n props: {\r\n name: '',\r\n root: null,\r\n rowData: null,\r\n designmodel: null,\r\n parentType: '',\r\n controlData: {}\r\n },\r\n render(h) {\r\n let icon = {this.icon};\r\n\r\n return (\r\n this.handleClick(e)}>\r\n
\r\n {/**/}\r\n {icon}\r\n
{this.controlData.Caption }
\r\n \r\n );\r\n }\r\n});","import Vue from 'vue';\r\nimport utils from '../../../../Shared/utils.jsx';\r\nimport methods from '../../../../Shared/methods';\r\n\r\nVue.component('form-input-dsgn', {\r\n data: function () {\r\n return {\r\n }\r\n },\r\n created() {\r\n },\r\n computed: {\r\n ...utils.forms.computed,\r\n selected$: function () {\r\n return this.Root.SelectedNode && this.Root.SelectedNode == this;\r\n },\r\n },\r\n methods: {\r\n ...methods,\r\n handleClick(e) {\r\n this.Root.SelectNode(this);\r\n e.cancelBubble = true;\r\n e.stopPropagation();\r\n },\r\n },\r\n props: {\r\n name: '',\r\n schemakey: '',\r\n root: null,\r\n designmodel: null,\r\n schema: null,\r\n cmodel: null,\r\n extra: null,\r\n readonly: false,\r\n child: 0,\r\n },\r\n render(h) {\r\n const name = {this.name};\r\n const placeholder = this.schema.placeholder || '';\r\n\r\n let input;\r\n if (this.readonly)\r\n input = ;\r\n else\r\n input = ;\r\n\r\n let desc;\r\n if (this.schema.description)\r\n desc = ;\r\n\r\n return (\r\n \r\n \r\n this.handleClick(e)}>\r\n
\r\n {name}{desc}\r\n \r\n \r\n \r\n this.handleClick(e)}>\r\n
\r\n {input}\r\n \r\n \r\n \r\n );\r\n }\r\n});","import Vue from 'vue';\r\nimport utils from '../../../../Shared/utils.jsx';\r\nimport methods from '../../../../Shared/methods';\r\n\r\nVue.component('form-button-dsgn', {\r\n data: function () {\r\n return {\r\n }\r\n },\r\n created() {\r\n },\r\n computed: {\r\n ...utils.forms.computed,\r\n selected$: function () {\r\n return this.Root.SelectedNode && this.Root.SelectedNode == this;\r\n },\r\n },\r\n methods: {\r\n ...methods,\r\n handleClick(e) {\r\n this.Root.SelectNode(this);\r\n e.cancelBubble = true;\r\n e.stopPropagation();\r\n },\r\n },\r\n props: {\r\n name: '',\r\n schemakey: '',\r\n root: null,\r\n designmodel: null,\r\n schema: null,\r\n cmodel: null,\r\n extra: null,\r\n readonly: false,\r\n child: 0,\r\n },\r\n render(h) {\r\n const btnstyle = {\r\n border: '1px solid black',\r\n padding: '2px',\r\n margin: '1px',\r\n };\r\n return (\r\n \r\n \r\n this.handleClick(e)}>\r\n
\r\n \r\n \r\n \r\n \r\n );\r\n }\r\n});","import Vue from 'vue';\r\nimport utils from '../../../../Shared/utils.jsx';\r\nimport methods from '../../../../Shared/methods';\r\n\r\nVue.component('form-input-multiline-dsgn', {\r\n data: function () {\r\n return {\r\n }\r\n },\r\n created() {\r\n },\r\n computed: {\r\n ...utils.forms.computed,\r\n selected$: function () {\r\n return this.Root.SelectedNode && this.Root.SelectedNode == this;\r\n },\r\n },\r\n methods: {\r\n ...methods,\r\n handleClick(e) {\r\n this.Root.SelectNode(this);\r\n e.cancelBubble = true;\r\n e.stopPropagation();\r\n },\r\n },\r\n props: {\r\n name: '',\r\n schemakey: '',\r\n root: null,\r\n designmodel: null,\r\n schema: null,\r\n cmodel: null,\r\n extra: null,\r\n readonly: false,\r\n child: 0,\r\n },\r\n render(h) {\r\n const name = {this.name};\r\n\r\n let value = this.cmodel[this.schemakey] ? JSON.stringify(this.cmodel[this.schemakey], null, 4) : '';\r\n\r\n let input;\r\n if (this.readonly)\r\n input = [];\r\n else\r\n input = [];\r\n\r\n return (\r\n \r\n \r\n this.handleClick(e)}>\r\n
\r\n {name}\r\n \r\n \r\n \r\n this.handleClick(e)}>\r\n
\r\n {input}\r\n \r\n \r\n \r\n );\r\n }\r\n});","import Vue from 'vue';\r\nimport utils from '../../../../Shared/utils.jsx';\r\nimport methods from '../../../../Shared/methods';\r\n\r\nVue.component('form-number-dsgn', {\r\n data: function () {\r\n return {\r\n }\r\n },\r\n created() {\r\n },\r\n computed: {\r\n ...utils.forms.computed,\r\n selected$: function () {\r\n return this.Root.SelectedNode && this.Root.SelectedNode == this;\r\n },\r\n },\r\n methods: {\r\n ...methods,\r\n handleClick(e) {\r\n this.Root.SelectNode(this);\r\n e.cancelBubble = true;\r\n e.stopPropagation();\r\n },\r\n },\r\n props: {\r\n name: '',\r\n schemakey: '',\r\n root: null,\r\n designmodel: null,\r\n schema: null,\r\n cmodel: null,\r\n extra: null,\r\n readonly: false,\r\n child: 0,\r\n },\r\n render(h) {\r\n const name = {this.name};\r\n const placeholder = this.schema.placeholder || '';\r\n\r\n let input;\r\n if (this.readonly)\r\n input = ;\r\n else\r\n input = ;\r\n\r\n let desc;\r\n if (this.schema.description)\r\n desc = ;\r\n\r\n return (\r\n \r\n \r\n this.handleClick(e)}>\r\n
\r\n {name}{desc}\r\n \r\n \r\n \r\n this.handleClick(e)}>\r\n
\r\n {input}\r\n \r\n \r\n \r\n );\r\n }\r\n});","import Vue from 'vue';\r\nimport utils from '../../../../Shared/utils.jsx';\r\nimport methods from '../../../../Shared/methods';\r\n\r\nVue.component('form-section-dsgn', {\r\n data: function () {\r\n return {\r\n }\r\n },\r\n created() {\r\n },\r\n computed: {\r\n ...utils.forms.computed,\r\n selected$: function () {\r\n return this.Root.SelectedNode && this.Root.SelectedNode == this;\r\n },\r\n },\r\n methods: {\r\n ...methods,\r\n handleClick(e) {\r\n this.Root.SelectNode(this);\r\n e.cancelBubble = true;\r\n e.stopPropagation();\r\n },\r\n },\r\n props: {\r\n name: '',\r\n schemakey: '',\r\n root: null,\r\n designmodel: null,\r\n schema: null,\r\n cmodel: null,\r\n extra: null,\r\n readonly: false,\r\n child: 0,\r\n },\r\n render(h) {\r\n const name = Section;\r\n\r\n var template = [];\r\n var rows = [];\r\n var rowMapped = [];\r\n var cols = this.schema.ControlData.columns > 0 ? this.schema.ControlData.columns : 1;\r\n\r\n for (var i = 0; i < cols; i++) {\r\n template.push(undefined);\r\n }\r\n \r\n for (var i = 0; i < this.schema.items.length; i++) {\r\n var colIndex = i % cols;\r\n \r\n if (colIndex == 0) { // new row so make a new row\r\n rows.push([...template]);\r\n }\r\n \r\n rows[rows.length - 1][colIndex] = this.schema.items[i];\r\n }\r\n\r\n rowMapped = rows.map((rowElements) => {\r\n var flds = rowElements.map((fld) => {\r\n return (
{fld.title ? fld.title : fld.key}
);\r\n });\r\n\r\n return (
this.handleClick(e)}>\r\n
\r\n
{ flds }
\r\n
);\r\n });\r\n\r\n return (\r\n \r\n \r\n
this.handleClick(e)}>\r\n
\r\n { name }\r\n
\r\n \r\n {rowMapped}\r\n \r\n );\r\n }\r\n});","import Vue from 'vue';\r\nimport utils from '../../../../Shared/utils.jsx';\r\nimport methods from '../../../../Shared/methods';\r\n\r\nVue.component('form-checkbox-dsgn', {\r\n data: function () {\r\n return {\r\n }\r\n },\r\n created() {\r\n },\r\n computed: {\r\n ...utils.forms.computed,\r\n selected$: function () {\r\n return this.Root.SelectedNode && this.Root.SelectedNode == this;\r\n },\r\n },\r\n methods: {\r\n ...methods,\r\n handleClick(e) {\r\n this.Root.SelectNode(this);\r\n e.cancelBubble = true;\r\n e.stopPropagation();\r\n },\r\n },\r\n props: {\r\n name: '',\r\n schemakey: '',\r\n root: null,\r\n designmodel: null,\r\n schema: null,\r\n cmodel: null,\r\n readonly: false,\r\n child: 0,\r\n },\r\n render(h) {\r\n const name = {this.name};\r\n let input;\r\n\r\n if (this.readonly)\r\n input = ;\r\n else\r\n input = ;\r\n\r\n return (\r\n \r\n \r\n this.handleClick(e)}>\r\n
\r\n {name}\r\n \r\n \r\n \r\n this.handleClick(e)}>\r\n
\r\n {input}\r\n \r\n \r\n \r\n );\r\n }\r\n});","import Vue from 'vue';\r\nimport utils from '../../../../Shared/utils.jsx';\r\nimport methods from '../../../../Shared/methods';\r\n\r\nVue.component('form-select-dsgn', {\r\n data: function () {\r\n return {\r\n }\r\n },\r\n created() {\r\n },\r\n computed: {\r\n ...utils.forms.computed,\r\n selected$: function () {\r\n return this.Root.SelectedNode && this.Root.SelectedNode == this;\r\n },\r\n },\r\n methods: {\r\n ...methods,\r\n handleClick(e) {\r\n this.Root.SelectNode(this);\r\n e.cancelBubble = true;\r\n e.stopPropagation();\r\n },\r\n },\r\n props: {\r\n name: '',\r\n schemakey: '',\r\n root: null,\r\n designmodel: null,\r\n schema: null,\r\n cmodel: null,\r\n extra: null,\r\n readonly: false,\r\n child: 0,\r\n },\r\n render(h) {\r\n const name = {this.name};\r\n\r\n let desc;\r\n if (this.schema.description)\r\n desc = ;\r\n\r\n if (this.readonly)\r\n return (\r\n \r\n \r\n this.handleClick(e)}>\r\n
\r\n {name}{desc}\r\n \r\n \r\n \r\n this.handleClick(e)}>\r\n
\r\n \r\n \r\n \r\n \r\n );\r\n\r\n const items = [];\r\n const schema = this.schema;\r\n const enums = schema.enum || schema.titleMap;\r\n if (Array.isArray(enums)) {\r\n if (!this.cmodel[this.schemakey])\r\n items.push();\r\n\r\n for (var i = 0; i < enums.length; i++) {\r\n const item = enums[i];\r\n if (item && typeof item === 'object')\r\n {\r\n if (this.cmodel[this.schemakey] === item.value)\r\n items.push();\r\n }\r\n else\r\n {\r\n if (this.cmodel[this.schemakey] === item)\r\n items.push();\r\n }\r\n }\r\n }\r\n \r\n return (\r\n \r\n \r\n this.handleClick(e)}>\r\n
\r\n {name}{desc}\r\n \r\n \r\n \r\n this.handleClick(e)}>\r\n
\r\n \r\n \r\n \r\n \r\n );\r\n }\r\n});","import Vue from 'vue';\r\nimport utils from '../../../../Shared/utils.jsx';\r\nimport methods from '../../../../Shared/methods';\r\n\r\nVue.component('form-anyof-dsgn', {\r\n data: function () {\r\n return {\r\n }\r\n },\r\n created() {\r\n },\r\n computed: {\r\n ...utils.forms.computed,\r\n },\r\n methods: {\r\n ...methods,\r\n },\r\n props: {\r\n name: '',\r\n schemakey: '',\r\n root: null,\r\n schema: null,\r\n cmodel: null,\r\n extra: null,\r\n readonly: false,\r\n child: 0,\r\n },\r\n render(h) {\r\n const name = {this.name};\r\n if (this.readonly)\r\n return (\r\n \r\n \r\n {name}\r\n \r\n \r\n \r\n \r\n \r\n );\r\n\r\n const items = [];\r\n const schema = this.schema;\r\n\r\n if (!this.cmodel[this.schemakey])\r\n items.push();\r\n\r\n for (var i = 0; i < schema.anyOf.length; i++) {\r\n const item = schema.anyOf[i];\r\n\r\n if (this.cmodel[this.schemakey] && (this.cmodel[this.schemakey].$typeSchema === item.Id))\r\n items.push();\r\n }\r\n \r\n return (\r\n \r\n \r\n {name}\r\n \r\n \r\n \r\n \r\n \r\n );\r\n }\r\n});","import Vue from 'vue';\r\nimport utils from '../../../../Shared/utils.jsx';\r\nimport formAnyOf from './anyof.jsx';\r\nimport methods from '../../../../Shared/methods';\r\n\r\nVue.component('form-array-dsgn', {\r\n data: function () {\r\n return {\r\n }\r\n },\r\n created() {\r\n },\r\n computed: {\r\n ...utils.forms.computed,\r\n selected$: function () {\r\n return this.Root.SelectedNode && this.Root.SelectedNode == this;\r\n },\r\n },\r\n methods: {\r\n ...methods,\r\n handleClick(e) {\r\n this.Root.SelectNode(this);\r\n e.cancelBubble = true;\r\n e.stopPropagation();\r\n },\r\n },\r\n props: {\r\n name: '',\r\n schemakey: '',\r\n root: null,\r\n designmodel: null,\r\n schema: null,\r\n cmodel: null,\r\n extra: null,\r\n readonly: false,\r\n child: 0,\r\n },\r\n render(h) {\r\n const schema = utils.schema.resolve_Of(this.schema.items);\r\n const name = {this.name};\r\n\r\n const input = [];\r\n const cmodel = this.cmodel[this.schemakey] || [];\r\n\r\n for (let i = 0; i < cmodel.length; i++)\r\n {\r\n const item = cmodel[i];\r\n let Tag;\r\n switch (schema.type) {\r\n case 'string':\r\n if (('anyOf' in schema))\r\n Tag = 'form-anyof-dsgn';\r\n else if (('enum' in schema) || ('titleMap' in schema))\r\n Tag = 'form-select-dsgn';\r\n else\r\n Tag = 'form-input-dsgn';\r\n break;\r\n\r\n case 'object':\r\n Tag = 'property-grid-dsgn';\r\n break;\r\n\r\n default:\r\n continue;\r\n }\r\n\r\n input.push(\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n );\r\n }\r\n\r\n input.push(\r\n \r\n );\r\n\r\n return (\r\n \r\n \r\n this.handleClick(e)}>\r\n
\r\n {name}\r\n \r\n \r\n \r\n this.handleClick(e)}>\r\n
\r\n {input}\r\n \r\n \r\n \r\n );\r\n }\r\n});","import Vue from 'vue';\r\nimport utils from '../../../../Shared/utils.jsx';\r\nimport formAnyOf from './anyof.jsx';\r\nimport methods from '../../../../Shared/methods';\r\n\r\nVue.component('form-tabarray-dsgn', {\r\n data: function () {\r\n return {\r\n }\r\n },\r\n created() {\r\n },\r\n computed: {\r\n ...utils.forms.computed,\r\n selected$: function () {\r\n return this.Root.SelectedNode && this.Root.SelectedNode == this;\r\n },\r\n },\r\n methods: {\r\n ...methods,\r\n handleClick(e) {\r\n this.Root.SelectNode(this);\r\n e.cancelBubble = true;\r\n e.stopPropagation();\r\n },\r\n },\r\n props: {\r\n name: '',\r\n schemakey: '',\r\n root: null,\r\n designmodel: null,\r\n schema: null,\r\n cmodel: null,\r\n extra: null,\r\n readonly: false,\r\n child: 0,\r\n },\r\n render(h) {\r\n const schema = utils.schema.resolve_Of(this.schema.items);\r\n const name = {this.name};\r\n\r\n const input = [];\r\n const cmodel = this.cmodel[this.schemakey] || [];\r\n\r\n for (let i = 0; i < cmodel.length; i++)\r\n {\r\n const item = cmodel[i];\r\n let Tag;\r\n switch (schema.type) {\r\n case 'string':\r\n if (('anyOf' in schema))\r\n Tag = 'form-anyof-dsgn';\r\n else if (('enum' in schema) || ('titleMap' in schema))\r\n Tag = 'form-select-dsgn';\r\n else\r\n Tag = 'form-input-dsgn';\r\n break;\r\n\r\n case 'object':\r\n Tag = 'property-grid-dsgn';\r\n break;\r\n\r\n default:\r\n continue;\r\n }\r\n\r\n input.push(\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n );\r\n }\r\n\r\n input.push(\r\n \r\n );\r\n\r\n return (\r\n \r\n \r\n this.handleClick(e)}>\r\n
\r\n {name}\r\n \r\n \r\n \r\n this.handleClick(e)}>\r\n
\r\n {input}\r\n \r\n \r\n \r\n );\r\n }\r\n});","import Vue from 'vue';\r\nimport utils from '../../../../Shared/utils.jsx';\r\nimport methods from '../../../../Shared/methods';\r\n\r\nVue.component('form-help-dsgn', {\r\n data: function () {\r\n return {\r\n }\r\n },\r\n created() {\r\n },\r\n computed: {\r\n ...utils.forms.computed,\r\n selected$: function () {\r\n return this.Root.SelectedNode && this.Root.SelectedNode == this;\r\n },\r\n },\r\n methods: {\r\n ...methods,\r\n handleClick(e) {\r\n this.Root.SelectNode(this);\r\n e.cancelBubble = true;\r\n e.stopPropagation();\r\n },\r\n sync(value) {\r\n this.schema.body = value;\r\n }\r\n },\r\n props: {\r\n name: '',\r\n schemakey: '',\r\n root: null,\r\n designmodel: null,\r\n schema: null,\r\n cmodel: null,\r\n extra: null,\r\n readonly: false,\r\n child: 0,\r\n },\r\n render(h) {\r\n const style = {\r\n margin: \"5px\",\r\n padding: \"5px\",\r\n borderColor: \"green\",\r\n borderStyle: \"solid\",\r\n borderWidth: \"2px\",\r\n borderRadius: \"5px\",\r\n whiteSpace: \"normal\",\r\n boxSizing: \"border-box\",\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n };\r\n\r\n let content;\r\n if (this.selected$)\r\n content = ;\r\n else\r\n content = this.schema.body;\r\n\r\n return (\r\n \r\n \r\n this.handleClick(e)}>\r\n
\r\n {content}\r\n \r\n \r\n \r\n );\r\n }\r\n});","import Vue from 'vue';\r\nimport utils from '../../../../Shared/utils.jsx';\r\nimport methods from '../../../../Shared/methods';\r\n\r\nVue.component('form-paragraph-dsgn', {\r\n data: function () {\r\n return {\r\n }\r\n },\r\n created() {\r\n },\r\n computed: {\r\n ...utils.forms.computed,\r\n selected$: function () {\r\n return this.Root.SelectedNode && this.Root.SelectedNode == this;\r\n },\r\n },\r\n methods: {\r\n ...methods,\r\n handleClick(e) {\r\n this.Root.SelectNode(this);\r\n e.cancelBubble = true;\r\n e.stopPropagation();\r\n },\r\n sync(value) {\r\n this.schema.body = value;\r\n }\r\n },\r\n props: {\r\n name: '',\r\n schemakey: '',\r\n root: null,\r\n designmodel: null,\r\n schema: null,\r\n cmodel: null,\r\n extra: null,\r\n readonly: false,\r\n child: 0,\r\n },\r\n render(h) {\r\n const style = {\r\n padding: \"5px\",\r\n whiteSpace: \"normal\",\r\n boxSizing: \"border-box\",\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n };\r\n\r\n let content;\r\n if (this.selected$)\r\n content = ;\r\n else\r\n content = this.schema.body;\r\n\r\n return (\r\n \r\n \r\n this.handleClick(e)}>\r\n
\r\n {content}\r\n \r\n \r\n \r\n );\r\n }\r\n});","import Vue from 'vue';\r\nimport utils from '../../../../Shared/utils.jsx';\r\nimport methods from '../../../../Shared/methods';\r\n\r\nVue.component('form-typeschema-dsgn', {\r\n data: function () {\r\n return {\r\n }\r\n },\r\n created() {\r\n },\r\n computed: {\r\n ...utils.forms.computed,\r\n },\r\n methods: {\r\n ...methods,\r\n },\r\n props: {\r\n name: '',\r\n value: '',\r\n readonly: false,\r\n },\r\n render(h) {\r\n const name = {this.name};\r\n\r\n let input;\r\n if (this.readonly)\r\n input = ;\r\n else\r\n input = ;\r\n\r\n return (\r\n \r\n \r\n {name}\r\n \r\n \r\n {input}\r\n \r\n \r\n );\r\n }\r\n});","import Vue from 'vue';\r\nimport utils from '../../../../Shared/utils.jsx';\r\nimport methods from '../../../../Shared/methods';\r\n\r\nVue.component('string-lookup-list-dsgn', {\r\n data: function () {\r\n return {\r\n condition_expn: null,\r\n list: null,\r\n lookupurl: null,\r\n displayexpn: null,\r\n valueexpn: null,\r\n }\r\n },\r\n created() {\r\n },\r\n computed: {\r\n ...utils.forms.computed,\r\n selected$: function () {\r\n return this.Root.SelectedNode && this.Root.SelectedNode == this;\r\n },\r\n },\r\n methods: {\r\n ...methods,\r\n handleClick(e) {\r\n this.Root.SelectNode(this);\r\n e.cancelBubble = true;\r\n e.stopPropagation();\r\n },\r\n },\r\n props: {\r\n name: '',\r\n schemakey: '',\r\n root: null,\r\n designmodel: null,\r\n schema: null,\r\n cmodel: null,\r\n extra: null,\r\n readonly: false,\r\n child: 0,\r\n },\r\n render(h) {\r\n const name = {this.name};\r\n\r\n let text;\r\n if (this.schema && this.schema.formatData)\r\n text = this.schema.formatData.LookupURL;\r\n\r\n let desc;\r\n if (this.schema.description)\r\n desc = ;\r\n\r\n return (\r\n \r\n \r\n this.handleClick(e)}>\r\n
\r\n {name}{desc}\r\n \r\n \r\n \r\n this.handleClick(e)}>\r\n
\r\n \r\n \r\n \r\n \r\n );\r\n }\r\n});","import Vue from 'vue';\r\nimport Vuetify from 'vuetify';\r\nimport EventBus from '../../event-bus.js';\r\nimport utils from '../../../Shared/utils.jsx';\r\n\r\nVue.component('field-picker', {\r\n data: () => ({\r\n filter: '',\r\n selected: {},\r\n choices: {},\r\n controls: null,\r\n }),\r\n props: {\r\n schema: null,\r\n confirm: null,\r\n cancel: null,\r\n },\r\n created() {\r\n },\r\n async mounted() {\r\n const formcontrol = await utils.schema.get('/Apps/Schema/AnyOf/schema/public/Platform.Schema.BaseTypes.v1/FormControl');\r\n if (formcontrol)\r\n this.controls = formcontrol.anyOf;\r\n },\r\n computed: {\r\n },\r\n methods: {\r\n returnControl() {\r\n const selected = {};\r\n for (let key in this.selected) {\r\n if (this.selected[key])\r\n selected[key] = {\r\n type: this.controls[this.choices[key]],\r\n };\r\n }\r\n debugger;\r\n this.confirm(selected);\r\n },\r\n toggle(e, key) {\r\n Vue.set(this.selected, key, e.target.checked)\r\n },\r\n selectAll(e) {\r\n if (!e.target.checked) {\r\n this.selected = {};\r\n return;\r\n }\r\n\r\n for (let key in this.schema.properties)\r\n Vue.set(this.selected, key, true);\r\n },\r\n },\r\n render(h) {\r\n if (!this.controls)\r\n return
Loading...
;\r\n\r\n let defaultIndex = 0;\r\n const controlItems = [];\r\n for (let i = 0; i < this.controls.length; i++) {\r\n const c = this.controls[i];\r\n if (c.Id === \"/schema/public/Platform.Schema.FormControls.v1/FormControl_AutoField\")\r\n defaultIndex = i;\r\n\r\n controlItems.push({ text: c.title, value: i });\r\n }\r\n\r\n const items = [];\r\n for (let key in this.schema.properties) {\r\n const c = this.schema.properties[key];\r\n if (!(key in this.choices))\r\n Vue.set(this.choices, key, defaultIndex);\r\n\r\n items.push(\r\n \r\n this.toggle(e,key)} />\r\n {key}\r\n {c.type}\r\n \r\n this.choices[key] = value}>\r\n \r\n \r\n {c.description}\r\n \r\n );\r\n }\r\n\r\n return (\r\n \r\n Fields\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {items}\r\n
this.selectAll(e)} />NameTypeControlDescription
\r\n
\r\n \r\n \r\n Add\r\n Cancel\r\n \r\n
\r\n );\r\n }\r\n// Add\r\n});","import Vue from 'vue';\r\nimport formInput from './input.jsx';\r\nimport formButton from './button.jsx';\r\nimport formInputMulti from './inputmultiline.jsx';\r\nimport formNumber from './number.jsx';\r\nimport formSection from './section.jsx';\r\nimport formCheckbox from './checkbox.jsx';\r\nimport formSelect from './select.jsx';\r\nimport formAnyOf from './anyof.jsx';\r\nimport formArray from './array.jsx';\r\nimport formTabarray from './tabarray.jsx';\r\nimport formHelp from './help.jsx';\r\nimport formParagraph from './paragraph.jsx';\r\nimport formTypeschema from './typeschema.jsx';\r\nimport LookupList from './lookupList.jsx';\r\nimport utils from '../../../../Shared/utils.jsx';\r\nimport methods from '../../../../Shared/methods';\r\nimport fieldPicker from './../fieldPicker.jsx';\r\n\r\nVue.component('schema-form-dsgn', {\r\n data: () => ({\r\n tab_state: {},\r\n properties: [],\r\n pickervisible: false,\r\n picker: null,\r\n pickertarget: 'body',\r\n }),\r\n props: {\r\n name: '',\r\n schemakey: null,\r\n root: null,\r\n schema: null,\r\n form: null,\r\n cmodel: null,\r\n designmodel: null,\r\n child: 0,\r\n readonly: false,\r\n extra: null,\r\n selected: null,\r\n selectFormElement: null,\r\n },\r\n methods: {\r\n addControl(e, target) {\r\n this.pickertarget = target;\r\n this.picker = ;\r\n this.pickervisible = true;\r\n e.cancelBubble = true;\r\n e.stopPropagation();\r\n },\r\n async confirmAddControl(fields) {\r\n this.pickervisible = false;\r\n\r\n //const autofield = await utils.schema.get('/schema/public/Platform.Schema.FormControls.v1/FormControl_AutoField');\r\n //const schema = utils.schema.resolve_Of(autofield);\r\n\r\n if (this.form && this.form.length === 1 && (typeof this.form[0] === 'string') && this.form[0] == '*')\r\n this.form.splice(0, 1);\r\n\r\n for (let key in fields) {\r\n const v = fields[key];\r\n if (!v) continue;\r\n\r\n const fieldSchema = utils.schema.resolve_Of(v.type);\r\n\r\n const m = utils.schema.getDefaultModel(fieldSchema); // schema);\r\n m.key = key;\r\n m.$objectid = utils.generateUUID();\r\n this.form.push(m);\r\n }\r\n },\r\n cancelAddControl() {\r\n this.pickervisible = false;\r\n },\r\n pickerInput(value) {\r\n this.pickervisible = value;\r\n },\r\n addTab(e, tabs, state) {\r\n const tabItem = {\r\n $typeSchema: '/schema/public/Platform.Schema.FormControls.v1/FormControl_Tabs_TabItem',\r\n title: 'Untitled',\r\n name: '',\r\n items: []\r\n };\r\n tabs.push(tabItem);\r\n state.index = tabs.length - 1;\r\n\r\n e.cancelBubble = true;\r\n e.stopPropagation();\r\n\r\n this.selectFormElement(tabItem);\r\n\r\n this.$forceUpdate();\r\n },\r\n selectTab(e, state, tabi, tabItem) {\r\n state.index = tabi;\r\n if ('$typeSchema' in tabItem)\r\n this.selectFormElement(tabItem);\r\n \r\n e.cancelBubble = true;\r\n e.stopPropagation();\r\n },\r\n deleteTab(e, state, element, tabi) {\r\n element.tabs.splice(tabi, 1);\r\n if (state.index >= element.tabs.length)\r\n state.index = element.tabs.length - 1;\r\n\r\n const tabItem = element.tabs.length > 0 ? element.tabs[element.tabs.length - 1] : null;\r\n if ('$typeSchema' in tabItem)\r\n this.selectFormElement(tabItem);\r\n else\r\n this.selectFormElement(null);\r\n\r\n e.cancelBubble = true;\r\n e.stopPropagation();\r\n\r\n this.$forceUpdate();\r\n }\r\n },\r\n render() {\r\n let schema = this.schema;\r\n if (!schema)\r\n schema = { type: 'object' };\r\n\r\n let elements = [];\r\n let child = this.child;\r\n\r\n schema = utils.schema.resolve_Of(schema);\r\n\r\n if (schema.type !== 'object')\r\n return
Schema must be an object
;\r\n\r\n const form = {};\r\n let properties = []; //this.properties;\r\n\r\n if (this.form)\r\n for (let i = 0; i < this.form.length; i++) {\r\n const form_item = this.form[i];\r\n if (typeof form_item === 'string') {\r\n if (form_item === '*') {\r\n for (let key in schema.properties)\r\n if (key.substr(0, 1) !== '$' && !properties.includes(key))\r\n properties.push(key);\r\n }\r\n else\r\n properties.push(form_item);\r\n }\r\n else if (typeof form_item === 'object' && form_item.AllSchemaElements) {\r\n for (let key in schema.properties)\r\n if (key.substr(0, 1) !== '$' && !properties.includes(key))\r\n properties.push(key);\r\n }\r\n else if (typeof form_item === 'object' && 'key' in form_item) {\r\n properties.push(form_item.key);\r\n form[form_item.key] = form_item;\r\n }\r\n else if (typeof form_item === 'object' && !('key' in form_item)) {\r\n properties.push(form_item);\r\n }\r\n }\r\n\r\n for (let i = 0; i < properties.length; i++)\r\n {\r\n let childform = null;\r\n const key = properties[i];\r\n //if (key.substr(0, 1) == '$') continue;\r\n\r\n let element;\r\n\r\n if (typeof key === 'object') {\r\n element = key;\r\n }\r\n else {\r\n const value = this.cmodel[key];\r\n if ('properties' in schema) {\r\n if (key in schema.properties)\r\n element = utils.schema.resolve_Of(schema.properties[key]);\r\n else if (key.includes('.')) {\r\n // Dot notation for the key: field.subfield.etc\r\n const parts = key.split('.');\r\n let s = schema;\r\n for (let x = 0; s && x < parts.length; x++) {\r\n const subkey = parts[x];\r\n if ('properties' in s && subkey in s.properties)\r\n s = s.properties[subkey];\r\n }\r\n if (s)\r\n element = utils.schema.resolve_Of(s);\r\n }\r\n }\r\n else\r\n element = form[key];\r\n\r\n if (!element)\r\n continue;\r\n\r\n element = {\r\n ...element,\r\n ...form[key],\r\n };\r\n }\r\n\r\n let cmodel = this.cmodel;\r\n let Tag;\r\n child = this.child;\r\n\r\n if (element)\r\n if ('format' in element)\r\n switch (element.format) {\r\n case 'TextEditor':\r\n Tag = 'form-input-multiline';\r\n break;\r\n\r\n case 'ReferencedDocumentSchema':\r\n Tag = 'referenced-document-schema';\r\n break;\r\n\r\n case 'LookupList':\r\n Tag = 'string-lookup-list-dsgn';\r\n break;\r\n }\r\n\r\n if (element && !Tag)\r\n switch (element.type) {\r\n case 'layoutWrap':\r\n case 'actions':\r\n elements.push(\r\n \r\n \r\n );\r\n continue;\r\n\r\n case 'tabs':\r\n let state;\r\n if (!(element.$objectid in this.tab_state))\r\n Vue.set(this.tab_state, element.$objectid, { index: 0 });\r\n\r\n state = this.tab_state[element.$objectid];\r\n\r\n const tabs = [];\r\n for (let tabi = 0; tabi < element.tabs.length; tabi++) {\r\n if (!('$typeSchema' in element.tabs[tabi]))\r\n element.tabs[tabi]['$typeSchema'] = '/schema/public/Platform.Schema.FormControls.v1/FormControl_Tabs_TabItem';\r\n\r\n const tab_style = {\r\n float: \"left\",\r\n borderTop: \"1px solid black\",\r\n borderLeft: \"1px solid black\",\r\n borderRight: \"1px solid black\",\r\n padding: \"2px 5px 1px\"\r\n };\r\n if (tabi === state.index) {\r\n tab_style.fontWeight = \"bold\";\r\n }\r\n else {\r\n tab_style.backgroundColor = \"gray\";\r\n tab_style.color = \"silver\";\r\n }\r\n\r\n let icon;\r\n if (this.selected && state.index === tabi)\r\n icon = (\r\n this.deleteTab(e, state, element, tabi)}>\r\n \r\n \r\n );\r\n\r\n tabs.push(\r\n
this.selectTab(e, state, tabi, element.tabs[tabi])}>\r\n {element.tabs[tabi].title}{icon}
);\r\n }\r\n\r\n if (this.selected) {\r\n // Include an Add button to add a new tab\r\n const addtab = (\r\n \r\n this.addTab(e, element.tabs, state)} />\r\n \r\n );\r\n tabs.push(
{addtab}
);\r\n }\r\n\r\n // Now push the contents of just the active tab\r\n if (state.index >= 0 && state.index < element.tabs.length)\r\n tabs.push(\r\n \r\n \r\n );\r\n\r\n elements.push(\r\n
\r\n {tabs}\r\n
\r\n );\r\n continue;\r\n\r\n case 'button':\r\n Tag = 'form-button-dsgn'; break;\r\n case 'help':\r\n Tag = 'form-help-dsgn'; break;\r\n case 'paragraph':\r\n Tag = 'form-paragraph-dsgn'; break;\r\n case 'textarea':\r\n case 'textareaWithHeaderBar': Tag = 'form-input-multiline-dsgn'; break;\r\n\r\n case 'string':\r\n case 'text':\r\n case 'phonenumber':\r\n if (('anyOf' in element))\r\n Tag = 'form-anyof-dsgn';\r\n else if (('enum' in element) || ('titleMap' in element))\r\n Tag = 'form-select-dsgn';\r\n else\r\n Tag = 'form-input-dsgn';\r\n break;\r\n case 'integer':\r\n case 'number': Tag = 'form-number-dsgn'; break;\r\n case 'boolean': Tag = 'form-checkbox-dsgn'; break;\r\n case 'array': Tag = 'form-array-dsgn'; break;\r\n case 'section': Tag = 'form-section-dsgn'; break;\r\n case 'tabarray':\r\n Tag = 'form-tabarray-dsgn';\r\n break;\r\n case 'fieldset':\r\n elements.push(\r\n \r\n \r\n );\r\n continue;\r\n //Tag = 'form-fieldset-dsgn'; break;\r\n case 'object':\r\n Tag = 'schema-form-dsgn';\r\n if (!cmodel[key])\r\n Vue.set(cmodel, key, {});\r\n cmodel = cmodel[key];\r\n childform = ['*'];\r\n child = 1;\r\n break;\r\n default:\r\n if ('$typeSchema' in element) {\r\n const typeSchema = element.$typeSchema;\r\n const parts = typeSchema.split('/');\r\n elements.push();\r\n continue;\r\n }\r\n\r\n let type = ('anyOf' in element) ? 'anyOf' :\r\n ('allOf' in element) ? 'allOf' :\r\n ('oneOf' in element) ? 'oneOf' :\r\n ('unknown:' + element.type);\r\n\r\n utils.log('skipping type: ' + type);\r\n Tag = 'div';\r\n break;\r\n }\r\n\r\n if (Tag)\r\n elements.push(\r\n \r\n \r\n );\r\n }\r\n\r\n let addbtn;\r\n if (this.selected)\r\n addbtn = (\r\n
\r\n this.addControl(e, 'body')}>\r\n mdi mdi-plus-circle\r\n \r\n
\r\n );\r\n\r\n if (this.child > 0)\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n {elements}\r\n \r\n {addbtn}\r\n\r\n this.pickerInput(value)}>\r\n {this.picker}\r\n \r\n \r\n
\r\n

{this.name}

\r\n
\r\n \r\n \r\n );\r\n else\r\n return (\r\n \r\n {elements}\r\n \r\n {addbtn}\r\n\r\n this.pickerInput(value)}>\r\n {this.picker}\r\n \r\n \r\n
\r\n );\r\n \r\n }\r\n});","import Vue from 'vue';\r\nimport SchemaForm from './form/SchemaForm.jsx';\r\nimport PropertyGrid from './form/PropertyGrid.jsx';\r\nimport utils from '../../../Shared/utils.jsx';\r\nimport methods from '../../../Shared/methods';\r\n\r\nVue.component('basic-form-dsgn', {\r\n data: () => ({\r\n displayexpr: null,\r\n schemaurl: null,\r\n schemaraw: null,\r\n modelurl: null,\r\n modelvalue: null,\r\n schema: {},\r\n model: {},\r\n form: ['*'],\r\n }),\r\n created() {\r\n },\r\n mounted() {\r\n this.Refresh();\r\n },\r\n computed: {\r\n Root: function () {\r\n return this.root._self;\r\n },\r\n Model: function () {\r\n return this.model;\r\n },\r\n DesignModel: function () {\r\n return this.designmodel;\r\n },\r\n selected$: function () {\r\n return this.Root.SelectedNode && this.Root.SelectedNode == this;\r\n },\r\n },\r\n methods: {\r\n ...methods,\r\n handleClick(e) {\r\n this.Root.SelectNode(this);\r\n e.cancelBubble = true;\r\n e.stopPropagation();\r\n },\r\n selectSchema(e) {\r\n this.Root.SelectNode(this, this.controlData.Schema);\r\n e.cancelBubble = true;\r\n e.stopPropagation();\r\n },\r\n selectModel(e) {\r\n this.Root.SelectNode(this, this.controlData.Model);\r\n e.cancelBubble = true;\r\n e.stopPropagation();\r\n },\r\n selectForm(e) {\r\n this.Root.SelectNode(this, this.controlData.Form);\r\n e.cancelBubble = true;\r\n e.stopPropagation();\r\n },\r\n selectFormElement(element) {\r\n this.Root.SelectNode(this, element);\r\n },\r\n async Refresh() {\r\n try {\r\n if (this.controlData.Schema.Type === 'URL' && this.controlData.Schema.Definition)\r\n this.schema = await utils.schema.get(this.controlData.Schema.Definition);\r\n else if (this.controlData.Schema.Definition) \r\n this.schema = this.controlData.Schema.Definition;\r\n else\r\n this.schema = null;\r\n }\r\n catch (e)\r\n {\r\n this.schema = null;\r\n }\r\n\r\n try {\r\n if (this.controlData.Model.Type === 'URL' && this.controlData.Model.Definition)\r\n this.model = await utils.api.get(this.controlData.Model.Definition);\r\n else if (this.controlData.Model.Definition && typeof this.controlData.Model.Definition === 'object')\r\n this.model = this.controlData.Model.Definition;\r\n else\r\n this.model = {};\r\n }\r\n catch (e)\r\n {\r\n this.model = {};\r\n }\r\n\r\n try {\r\n if (this.controlData.Form.Type === 'URL' && this.controlData.Form.Definition)\r\n this.form = await utils.api.get(this.controlData.Form.Definition);\r\n else if (this.controlData.Form.Definition)\r\n this.form = this.controlData.Form.Definition;\r\n }\r\n catch (e) {\r\n this.form = ['*'];\r\n }\r\n\r\n if (this.schema) {\r\n const resolved = utils.schema.resolve_Of(this.schema);\r\n\r\n for (var key in resolved.properties) {\r\n const element = resolved.properties[key];\r\n\r\n if (('default' in element) && !(key in this.model)) {\r\n Vue.set(this.model, key, element['default']);\r\n }\r\n else if (element.type === 'object' && !(key in this.model)) {\r\n const model = utils.schema.getDefaultModel(element);\r\n Vue.set(this.model, key, model);\r\n }\r\n }\r\n }\r\n }\r\n },\r\n props: {\r\n name: '',\r\n root: null,\r\n designmodel: null,\r\n parentType: '',\r\n controlData: {}\r\n },\r\n render() {\r\n let Control = 'schema-form-dsgn';\r\n if (this.controlData.FormType === 'PropertyGrid')\r\n Control = 'property-grid-dsgn';\r\n\r\n let title;\r\n if (this.controlData.Title)\r\n title =

{this.controlData.Title}

;\r\n\r\n\r\n return (\r\n this.handleClick(e)}>\r\n\r\n
\r\n
this.selectForm(e)} style={{ top: \"4px\", right: \"124px\", display: this.selected$ ? \"block\" : \"none\" }}>Form
\r\n
this.selectModel(e)} style={{ top: \"4px\", right: \"64px\", display: this.selected$ ? \"block\" : \"none\" }}>Model
\r\n
this.selectSchema(e)} style={{ top: \"4px\", right: \"4px\", display: this.selected$ ? \"block\" : \"none\" }}>Schema
\r\n\r\n {title}\r\n \r\n \r\n );\r\n }\r\n});","import Vue from 'vue';\r\nimport utils from '../../../Shared/utils.jsx';\r\nimport methods from '../../../Shared/methods';\r\n\r\nVue.component('tree-label-dsgn', {\r\n data: () => ({\r\n title: null,\r\n titletext: null,\r\n schema: null,\r\n }),\r\n mounted() {\r\n if (this.typeSchema)\r\n this.Refresh();\r\n },\r\n computed: {\r\n ControlData: function () {\r\n return this.model.ControlData;\r\n },\r\n ActionData: function () {\r\n return this.model.ActionData;\r\n },\r\n ActionExpression: function () {\r\n return this.model.ActionExpression;\r\n },\r\n selected$: function () {\r\n return this.Root.SelectedModel == this.designmodel;\r\n },\r\n },\r\n methods: {\r\n ...methods,\r\n async Refresh() {\r\n this.schema = await utils.schema.get(this.typeSchema);\r\n const res = utils.schema.resolve_Of(this.schema);\r\n\r\n this.titletext = res.title;\r\n\r\n if (res.documentEditorTitle)\r\n this.title = utils.compile(this, res.documentEditorTitle);\r\n else\r\n this.title = null;\r\n }\r\n },\r\n props: {\r\n label: '',\r\n text: '',\r\n typeSchema: null,\r\n model: null,\r\n parent: null,\r\n designmodel: null,\r\n },\r\n render() {\r\n let title = this.titletext || this.text || '';\r\n if (this.title)\r\n title = utils.evaluate(this.title, this);\r\n\r\n let label = this.label;\r\n const suffix = title || (this.schema ? this.schema.title : '');\r\n if (suffix)\r\n label += ': ' + suffix;\r\n\r\n const color = ('$typeSchema' in this.model) ? 'black' : 'gray';\r\n\r\n if (this.parent.SelectedNode == this.model)\r\n return {label};\r\n else\r\n return {label};\r\n }\r\n});\r\n\r\nVue.component('tree-node-dsgn', {\r\n data: () => ({\r\n schema: null,\r\n title: null,\r\n }),\r\n methods: {\r\n ...methods,\r\n toggleVisible: function(key)\r\n {\r\n this.model[key] = this.model[key] === 'true' ? 'false' : 'true';\r\n }\r\n },\r\n props: {\r\n name: '',\r\n root: null,\r\n parent: null,\r\n model: null,\r\n level: 0,\r\n },\r\n render() {\r\n if (!this.model)\r\n return null;\r\n\r\n const elements = [];\r\n if (Array.isArray(this.model))\r\n for (let i = 0; i < this.model.length; i++) {\r\n const node = this.model[i];\r\n\r\n if (typeof node === 'object') {\r\n const visible_key = '$' + i + '_visible';\r\n if (!this.model[visible_key])\r\n Vue.set(this.model, visible_key, this.level <= 0 ? 'true' : 'false');\r\n\r\n const vis = this.model[visible_key] === 'true';\r\n\r\n elements.push(\r\n
\r\n this.toggleVisible(visible_key)}>[{vis ? '-' : '+'}]\r\n \r\n
\r\n );\r\n\r\n if (vis)\r\n elements.push();\r\n }\r\n //else\r\n // elements.push([{i}]);\r\n }\r\n else\r\n for (let key in this.model)\r\n {\r\n if (key.substr(0, 1) === '$') continue;\r\n const node = this.model[key];\r\n\r\n if (typeof node === 'object')\r\n {\r\n const visible_key = '$' + key + '_expanded';\r\n if (!this.model[visible_key])\r\n Vue.set(this.model, visible_key, this.level <= 0 ? 'true' : 'false');\r\n\r\n const vis = this.model[visible_key] === 'true';\r\n\r\n elements.push(\r\n
\r\n this.toggleVisible(visible_key)}>[{vis ? '-' : '+'}]\r\n \r\n
\r\n );\r\n if (vis)\r\n elements.push();\r\n }\r\n //else\r\n // elements.push({key});\r\n }\r\n\r\n return (\r\n
\r\n {elements}\r\n
\r\n );\r\n }\r\n});\r\n\r\nVue.component('tree-view-dsgn', {\r\n data: () => ({\r\n sourceurl: null,\r\n sourceraw: null,\r\n model: null,\r\n selectednode: {},\r\n }),\r\n mounted() {\r\n this.Refresh();\r\n },\r\n computed: {\r\n Root: function () {\r\n return this.root._self;\r\n },\r\n Model: function () {\r\n return this.model;\r\n },\r\n DesignModel: function () {\r\n return this.designmodel;\r\n },\r\n selected$: function () {\r\n return this.Root.SelectedModel == this.designmodel;\r\n },\r\n },\r\n methods: {\r\n ...methods,\r\n SelectNode(node)\r\n {\r\n this.selectednode = node;\r\n },\r\n handleClick(e) {\r\n this.Root.SelectNode(this);\r\n e.cancelBubble = true;\r\n e.stopPropagation();\r\n },\r\n async Refresh() {\r\n try {\r\n if (this.controlData.SourceType == 'Url' && this.controlData.SourceUrl)\r\n this.model = await utils.api.get(this.controlData.SourceUrl);\r\n else if (this.controlData.SourceRaw)\r\n this.model = this.controlData.SourceRaw;\r\n else\r\n this.model = {};\r\n }\r\n catch (e)\r\n {\r\n this.model = {};\r\n }\r\n }\r\n },\r\n props: {\r\n name: '',\r\n root: null,\r\n designmodel: null,\r\n parentType: '',\r\n controlData: {}\r\n },\r\n render() {\r\n if (!this.model)\r\n return (\r\n this.handleClick(e)}>\r\n
\r\n

{this.controlData.Title}

\r\n \r\n );\r\n else\r\n return (\r\n this.handleClick(e)}>\r\n
\r\n

{this.controlData.Title}

\r\n
\r\n \r\n
\r\n \r\n \r\n );\r\n }\r\n});","import Vue from 'vue';\r\nimport Vuetify from 'vuetify';\r\nimport EventBus from '../../event-bus.js';\r\nimport utils from '../../../Shared/utils.jsx';\r\n\r\nconst control_icons = {\r\n 'AudioPlayer': { 'icon': 'mdi mdi-volume-high', 'color': 'orange' },\r\n 'AutoComplete': { 'icon': 'mdi-textbox', 'color': 'blue' },\r\n 'BasicButton': { 'icon': 'present_to_all', 'color': 'blue' },\r\n 'BasicFileUpload': { 'icon': 'file_upload', 'color': 'red darken-4' },\r\n 'BasicForm': { 'icon': 'format_align_left', 'color': 'deep-purple darken-1' },\r\n 'BasicGrid': { 'icon': 'grid_on', 'color': 'cyan darken-1' },\r\n 'BasicLink': { 'icon': 'link', 'color': 'blue darken-2' },\r\n 'BasicSwitch': { 'icon': 'mdi mdi-toggle-switch', 'color': 'lime darken-2' },\r\n 'BasicTab': { 'icon': 'mdi mdi-folder', 'color': 'orange' },\r\n 'BroadcastListener': { 'icon': 'radio', 'color': 'teal accent-3' },\r\n 'CardList': { 'icon': 'view_list', 'color': 'blue' },\r\n 'CircleChart': { 'icon': 'pie_chart', 'color': 'blue' },\r\n 'ComboBox': { 'icon': '', 'color': 'blue' },\r\n 'ControlContainer': { 'icon': 'check_box_outline_blank', 'color': 'blue' },\r\n 'Control Designer': { 'icon': 'slideshow', 'color': 'blue' },\r\n 'ConversationView': { 'icon': 'chat_bubble_outline', 'color': 'blue' },\r\n 'CssStyle': { 'icon': 'mdi mdi-language-css3', 'color': 'blue' },\r\n 'Dashboard': { 'icon': 'dashboard', 'color': 'blue' },\r\n 'DebugConsole': { 'icon': 'bug_report', 'color': 'blue' },\r\n 'DebugHsmLog': { 'icon': 'bug_report', 'color': 'blue' },\r\n 'DebugHsmRenderer': { 'icon': 'bug_report', 'color': 'blue' },\r\n 'DebugModelWatcher': { 'icon': 'bug_report', 'color': 'blue' },\r\n 'DesktopNotify': { 'icon': 'mdi mdi-flag-outline', 'color': 'blue' },\r\n 'DocumentEditor': { 'icon': 'mdi-file-tree', 'color': 'blue' },\r\n 'DropdownList': { 'icon': 'arrow_drop_down_circle', 'color': 'blue' },\r\n 'DynamicMenuList': { 'icon': 'mdi mdi-view-list-outline', 'color': 'blue' },\r\n 'DynamicTab': { 'icon': 'mdi mdi-folder-outline', 'color': 'blue' },\r\n 'FacebookButton': { 'icon': 'mdi mdi-facebook', 'color': 'indigo' },\r\n 'FlowChart': { 'icon': 'mdi-chart-scatterplot-hexbin', 'color': 'amber darken-3' },\r\n 'ForEach': { 'icon': 'repeat_one', 'color': 'orange darken-1' },\r\n 'FreshDeskChat': { 'icon': 'headset_mic', 'color': 'green lighten-2' },\r\n 'FusionChart': { 'icon': 'insert_chart', 'color': 'blue' },\r\n 'GoogleButton': { 'icon': 'mdi mdi-google', 'color': 'blue' },\r\n 'GoogleMap': { 'icon': 'mdi mdi-map', 'color': 'blue' },\r\n 'Header Bar': { 'icon': '', 'color': 'blue' },\r\n 'Horizontal Layout': { 'icon': 'mdi-page-layout-sidebar-left', 'color': 'blue' },\r\n 'HSM': { 'icon': 'mdi mdi-group', 'color': 'yellow darken-2' },\r\n 'Html': { 'icon': '', 'color': 'blue' },\r\n 'HtmlEditor': { 'icon': 'format_color_text', 'color': 'blue' },\r\n 'HtmlTable': { 'icon': 'mdi mdi-table-large', 'color': 'brown' },\r\n 'Icon': { 'icon': 'insert_emoticon', 'color': 'pink darken-4' },\r\n 'IconStack': { 'icon': 'mdi-emoticon-cool', 'color': 'pink darken-4' },\r\n 'InfiniteConversationView': { 'icon': 'chat_bubble_outline', 'color': 'indigo lighten-1' },\r\n 'ConversationView': { 'icon': 'chat_bubble_outline', 'color': 'indigo lighten-1' },\r\n 'InfiniteGrid': { 'icon': 'grid_on', 'color': 'light-blue darken-1' },\r\n 'Interval': { 'icon': 'av_timer', 'color': 'red lighten-2' },\r\n 'Javascript': { 'icon': 'mdi mdi-jsfiddle', 'color': 'red' },\r\n 'KeyPad': { 'icon': 'dialpad', 'color': 'blue' },\r\n 'LayoutTile': { 'icon': '', 'color': 'blue' },\r\n 'LineChart': { 'icon': 'mdi mdi-chart-line-variant', 'color': 'blue' },\r\n 'MediaApproval': { 'icon': '', 'color': 'blue' },\r\n 'MediaSelector': { 'icon': 'mic_none', 'color': 'blue' },\r\n 'MicAnalyzer': { 'icon': 'mdi mdi-chip', 'color': 'green darken-4' },\r\n 'NetworkTest': { 'icon': 'mdi-help-network', 'color': 'blue' },\r\n 'PaymentInfo': { 'icon': 'payment', 'color': 'deep-orange darken-3' },\r\n 'ProgressBar': { 'icon': 'mdi mdi-refresh', 'color': 'blue' },\r\n 'PropertyGrid': { 'icon': 'mdi-table-settings', 'color': 'blue' },\r\n 'RealTimeEventListener': { 'icon': 'event', 'color': 'blue' },\r\n 'Recaptcha': { 'icon': 'fingerprint', 'color': 'blue-grey darken-1' },\r\n 'Reference User Control': { 'icon': 'mdi mdi-file-code-outline', 'color': 'blue' },\r\n 'SelectList': { 'icon': 'mdi mdi-format-list-bulleted', 'color': 'blue' },\r\n 'ServerEventListener': { 'icon': 'event', 'color': 'red' },\r\n 'SignalStrength': { 'icon': 'mdi mdi-signal', 'color': 'blue' },\r\n 'SoundPlayer': { 'icon': 'mdi mdi-microphone-message', 'color': 'blue' },\r\n 'SpeechToText': { 'icon': 'speaker_notes', 'color': 'blue' },\r\n 'SplitButton': { 'icon': 'system_update_alt', 'color': 'blue' },\r\n 'Static Bar': { 'icon': '', 'color': 'blue' },\r\n 'Text': { 'icon': 'text_fields', 'color': 'blue' },\r\n 'TextEditor': { 'icon': 'subject', 'color': 'blue' },\r\n 'Timeline': { 'icon': 'trending_flat', 'color': 'blue' },\r\n 'Timeout': { 'icon': 'mdi mdi-clock-outline', 'color': 'blue' },\r\n 'Tree View': { 'icon': 'toc', 'color': 'blue' },\r\n 'Vertical Layout': { 'icon': 'mdi-page-layout-header', 'color': 'blue' },\r\n '(ignore) VueEmbedReact': { 'icon': '', 'color': 'blue' },\r\n 'Watcher': { 'icon': 'remove_red_eye', 'color': 'blue' },\r\n 'WebRtcPhone': { 'icon': 'phonelink', 'color': 'blue' },\r\n 'Wizard': { 'icon': 'mdi mdi-auto-fix', 'color': 'blue' },\r\n 'Wizard_Old': { 'icon': '', 'color': 'blue' },\r\n 'WizardButton': { 'icon': 'mdi mdi-chevron-right-circle-outline', 'color': 'blue' },\r\n 'YouTubeVideo': { 'icon': 'mdi mdi-youtube', 'color': 'red' },\r\n};\r\n\r\nVue.component('control-picker', {\r\n data: () => ({\r\n list: [],\r\n filter: '',\r\n }),\r\n props: {\r\n confirm: null,\r\n cancel: null,\r\n },\r\n created() {\r\n },\r\n async mounted() {\r\n const schema = await utils.schema.get('/Apps/Schema/AnyOf/schema/public/Platform.Schema.BaseTypes.v1/DynamicControl');\r\n this.list = schema.anyOf;\r\n for (let i = 0; i < this.list.length; i++)\r\n utils.log(\"'\" + this.list[i].title + \"': { 'icon': '', 'color': '' },\");\r\n },\r\n methods: {\r\n returnControl(id, title) {\r\n this.confirm(id, title);\r\n },\r\n search(value) {\r\n this.filter = value;\r\n }\r\n },\r\n render(h) {\r\n const items = this.list.filter(c => (!this.filter || c.title.toLowerCase().includes(this.filter.toLowerCase()))).map(c => (\r\n \r\n \r\n {utils.generateTooltip(h,\r\n this.returnControl(c.Id, c.title)}>\r\n \r\n {c.title in control_icons ? (control_icons[c.title].icon || 'widgets') : 'widgets'}\r\n \r\n ,\r\n c.title, 'top')}\r\n {c.title}\r\n \r\n \r\n ));\r\n\r\n return (\r\n \r\n Controls\r\n \r\n this.search(value)}\r\n >\r\n \r\n \r\n \r\n \r\n {items}\r\n \r\n \r\n \r\n \r\n \r\n Cancel\r\n \r\n \r\n );\r\n }\r\n});","import Vue from 'vue';\r\nimport utils from '../../../Shared/utils.jsx';\r\nimport BaseComponent from './BaseComponentMixin.jsx';\r\nimport controlPicker from './controlPicker.jsx';\r\n\r\nvar baseStackMixin = {\r\n mixins: [BaseComponent],\r\n data: function () {\r\n return {\r\n model: [],\r\n pickervisible: false,\r\n picker: null,\r\n pickertarget: 'body',\r\n }\r\n },\r\n computed: {\r\n DesignModel: function () {\r\n return this.designmodel;\r\n },\r\n selected$: function () {\r\n return this.Root.SelectedNode && this.Root.SelectedModel == this.designmodel;\r\n },\r\n },\r\n async created() {\r\n },\r\n destroyed() {\r\n },\r\n async mounted() {\r\n await this.Refresh();\r\n },\r\n methods: {\r\n addControl(e, target) {\r\n this.pickertarget = target;\r\n this.picker = ;\r\n this.pickervisible = true;\r\n e.cancelBubble = true;\r\n e.stopPropagation();\r\n },\r\n async confirmAddControl(id, title) {\r\n this.pickervisible = false;\r\n\r\n try {\r\n const schema_ = await utils.schema.get(id);\r\n const schema = utils.schema.resolve_Of(schema_)\r\n const model = utils.schema.getDefaultModel(schema);\r\n\r\n switch (this.pickertarget) {\r\n case 'header':\r\n if (!this.controlData.HeaderControls)\r\n Vue.set(this.controlData, 'HeaderControls', []);\r\n\r\n this.controlData.HeaderControls.push(model);\r\n // Hmmm. How to select the node, it isn't created yet, not until it is rendered when this layout stack re-renders\r\n //this.Root.SelectNode(model);\r\n break;\r\n\r\n case 'body':\r\n if (!this.controlData.Controls)\r\n Vue.set(this.controlData, 'Controls', []);\r\n\r\n this.controlData.Controls.push(model);\r\n //this.Root.SelectNode(model);\r\n break;\r\n }\r\n }\r\n catch (e) {\r\n alert(e);\r\n }\r\n },\r\n cancelAddControl() {\r\n this.pickervisible = false;\r\n },\r\n pickerInput(value) {\r\n this.pickervisible = value;\r\n },\r\n async Refresh() {\r\n if (this.controlData.SourceRaw)\r\n this.model = this.controlData.SourceRaw;\r\n // Ignore this for now -- rendering the source data in design mode is kind of annoying\r\n //else if (this.controlData.SourceUrl)\r\n // try {\r\n // this.model = await utils.api.get(this.controlData.SourceUrl);\r\n // }\r\n // catch (e) {\r\n // utils.warn('VerticalStack failed to evaluate SourceUrl ' + this.controlData.SourceUrl + ': ' + e);\r\n // }\r\n },\r\n generateItems(h, controlData, items, model, index, parentType) {\r\n if (!controlData || !controlData.Controls)\r\n return;\r\n\r\n for (let i = 0; i < controlData.Controls.length; i++) {\r\n const c = controlData.Controls[i];\r\n if (!(typeof c === 'object'))\r\n continue;\r\n\r\n let DynamicControl = utils.getDynamicComponent(h, c);\r\n\r\n if (!DynamicControl)\r\n DynamicControl = 'default-unknown';\r\n\r\n DynamicControl += '-dsgn';\r\n\r\n if (!c.$objectId) c.$objectId = utils.generateUUID();\r\n\r\n let id = c.$objectId;\r\n if (index) id += '_' + index;\r\n\r\n items.push(\r\n \r\n \r\n );\r\n }\r\n },\r\n getHeader(h, controlData) {\r\n if (controlData.HeaderControls && controlData.HeaderControls.length > 0) {\r\n const header = [];\r\n\r\n for (let i = 0; i < controlData.HeaderControls.length; i++) {\r\n const c = controlData.HeaderControls[i];\r\n let DynamicControl = utils.getDynamicComponent(h, c);\r\n if (!DynamicControl)\r\n DynamicControl = 'default-unknown';\r\n\r\n DynamicControl += '-dsgn';\r\n\r\n if (!c.$objectId) c.$objectId = utils.generateUUID();\r\n\r\n let id = `${c.$objectId}_${i}`;\r\n\r\n header.push(\r\n \r\n \r\n );\r\n }\r\n return header;\r\n }\r\n return null;\r\n },\r\n generateItemsFromModel(h, items, controlData, items_id, parentType) {\r\n if (controlData.Controls)\r\n this.generateItems(h, controlData, items, null, items_id, parentType);\r\n },\r\n generateBreadCrumbs(h) {\r\n if (this.controlData.BreadCrumb && this.controlData.BreadCrumb.Text) {\r\n const crumbs = [];\r\n crumbs.push(\r\n {this.controlData.BreadCrumb.Text}\r\n );\r\n crumbs.push(mdi mdi-chevron-right);\r\n return (\r\n
{crumbs}
\r\n );\r\n }\r\n else\r\n return null;\r\n },\r\n generatePicker(h) {\r\n return (\r\n this.pickerInput(value)}>\r\n {this.picker}\r\n \r\n );\r\n },\r\n },\r\n props: {\r\n parentType: null,\r\n }\r\n};\r\n\r\nexport default baseStackMixin;","import Vue from 'vue';\r\nimport BasicButton from './BasicButton.jsx';\r\nimport Text from './Text.jsx';\r\nimport Icon from './Icon.jsx';\r\n//import SelectList from './SelectList.jsx';\r\nimport BasicForm from './BasicForm.jsx';\r\nimport BasicGrid from './BasicGrid.jsx';\r\nimport TreeView from './TreeView.jsx';\r\nimport utils from '../../../Shared/utils.jsx';\r\nimport methods from '../../../Shared/methods';\r\nimport controlPicker from './controlPicker.jsx';\r\nimport BaseStackMixin from './BaseStackMixin.jsx';\r\n\r\nVue.component('stack-horizontal-dsgn', {\r\n mixins: [BaseStackMixin],\r\n data: function () {\r\n return {\r\n }\r\n },\r\n computed: {\r\n horizontalStackClasses() {\r\n let classes = [];\r\n if (this.controlData.VerticalAlignChildren) {\r\n switch (this.controlData.VerticalAlignChildren.toLowerCase()) {\r\n case 'top':\r\n classes.push('align-start');\r\n break;\r\n case 'center': {\r\n classes.push('align-center');\r\n break;\r\n }\r\n case 'bottom': {\r\n classes.push('align-end');\r\n break;\r\n }\r\n }\r\n }\r\n\r\n if (this.controlData.HorizontalAlignChildren) {\r\n switch (this.controlData.HorizontalAlignChildren.toLowerCase()) {\r\n case 'left':\r\n classes.push('justify-start');\r\n break;\r\n case 'middle': {\r\n classes.push('justify-center');\r\n break;\r\n }\r\n case 'right': {\r\n classes.push('justify-end');\r\n break;\r\n }\r\n case 'spacearound': {\r\n classes.push('justify-space-around');\r\n break;\r\n }\r\n case 'spacebetween': {\r\n classes.push('justify-space-between');\r\n break;\r\n }\r\n case 'spaceevenly': {\r\n classes.push('justify-space-evenly');\r\n break;\r\n }\r\n }\r\n }\r\n\r\n return classes\r\n },\r\n },\r\n render(h) {\r\n let items = [];\r\n let items_id = '_0';\r\n\r\n let controlData = this.controlData;\r\n\r\n this.generateItemsFromModel(h, items, controlData, items_id, 'HorizontalStack');\r\n\r\n let header = this.getHeader(h, controlData);\r\n if (this.selected$ || header) {\r\n if (!header) header = [];\r\n if (this.selected$)\r\n header.push(\r\n addControl(e, 'header')}>\r\n mdi mdi-plus-circle\r\n \r\n );\r\n }\r\n\r\n if (this.selected$)\r\n items.push(\r\n this.addControl(e, 'body')}>\r\n mdi mdi-plus-circle\r\n \r\n );\r\n\r\n items.push(this.generatePicker(h));\r\n\r\n const breadcrumb = this.generateBreadCrumbs(h);\r\n\r\n const style = {\r\n overflow: this.parentType == \"ContentDef\" ? \"hidden\" : \"auto\",\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n ...utils.getSize(controlData.SizeOptions, this.parentType, this.$parent),\r\n ...utils.getStyleHints(controlData.StyleHints),\r\n };\r\n\r\n const items_style = {\r\n overflow: this.parentType == \"ContentDef\" ? \"hidden\" : \"auto\",\r\n display: \"flex\",\r\n flexDirection: \"row\",\r\n flexGrow: 1,\r\n gap: this.padding ? this.padding + 'px' : ''\r\n };\r\n\r\n if (this.controlData.SizeOptions && this.controlData.SizeOptions.Width.Mode === 'Auto' && this.parentType === 'VerticalStack') {\r\n // In this unique case, we must use the opposite direction on the parent and embed another div\r\n // to force the 'auto' width -- otherwise, \r\n items_style.flexDirection = 'column';\r\n delete items_style.gap;\r\n items = (\r\n
\r\n {items}\r\n
\r\n );\r\n }\r\n\r\n return (\r\n this.handleClick(e)}>\r\n
\r\n {header}\r\n {breadcrumb}\r\n
\r\n {items}\r\n
\r\n \r\n );\r\n }\r\n});","import Vue from 'vue';\r\nimport BasicButton from './BasicButton.jsx';\r\nimport Text from './Text.jsx';\r\nimport Icon from './Icon.jsx';\r\n//import SelectList from './SelectList.jsx';\r\nimport BasicForm from './BasicForm.jsx';\r\nimport BasicGrid from './BasicGrid.jsx';\r\nimport TreeView from './TreeView.jsx';\r\nimport utils from '../../../Shared/utils.jsx';\r\nimport methods from '../../../Shared/methods';\r\nimport controlPicker from './controlPicker.jsx';\r\nimport BaseStackMixin from './BaseStackMixin.jsx';\r\nimport BaseComponentMixin from './BaseComponentMixin.jsx';\r\n\r\nVue.component('stack-vertical-content-dsgn', {\r\n mixins: [BaseComponentMixin],\r\n data: function () {\r\n return {\r\n pickervisible: false,\r\n picker: null,\r\n pickertarget: 'body',\r\n }\r\n },\r\n computed: {\r\n direction() {\r\n if (this.controlData.Direction)\r\n return this.controlData.Direction;\r\n return 'Normal';\r\n },\r\n stackClasses() {\r\n let classes = [];\r\n if (this.isVertical) {\r\n if (this.controlData.HorizontalAlignChildren) {\r\n switch (this.controlData.HorizontalAlignChildren.toLowerCase()) {\r\n case 'middle': {\r\n classes.push('align-center');\r\n break;\r\n }\r\n case 'right': {\r\n classes.push('align-end');\r\n break;\r\n }\r\n default:\r\n classes.push('align-start');\r\n break;\r\n }\r\n }\r\n else {\r\n classes.push('align-start');\r\n }\r\n\r\n if (this.controlData.VerticalAlignChildren) {\r\n switch (this.controlData.VerticalAlignChildren.toLowerCase()) {\r\n case 'center': {\r\n classes.push('justify-center');\r\n break;\r\n }\r\n case 'bottom': {\r\n classes.push('justify-end');\r\n break;\r\n }\r\n case 'spacearound': {\r\n classes.push('justify-space-around');\r\n break;\r\n }\r\n case 'spacebetween': {\r\n classes.push('justify-space-between');\r\n break;\r\n }\r\n case 'spaceevenly': {\r\n classes.push('justify-space-evenly');\r\n break;\r\n }\r\n default:\r\n classes.push('justify-start');\r\n break;\r\n }\r\n }\r\n else {\r\n classes.push('justify-start');\r\n }\r\n }\r\n else {\r\n if (this.controlData.VerticalAlignChildren) {\r\n switch (this.controlData.VerticalAlignChildren.toLowerCase()) {\r\n case 'center': {\r\n classes.push('align-center');\r\n break;\r\n }\r\n case 'bottom': {\r\n classes.push('align-end');\r\n break;\r\n }\r\n default:\r\n classes.push('align-start');\r\n break;\r\n }\r\n }\r\n else {\r\n classes.push('align-start');\r\n }\r\n\r\n if (this.controlData.HorizontalAlignChildren) {\r\n switch (this.controlData.HorizontalAlignChildren.toLowerCase()) {\r\n case 'middle': {\r\n classes.push('justify-center');\r\n break;\r\n }\r\n case 'right': {\r\n classes.push('justify-end');\r\n break;\r\n }\r\n case 'spacearound': {\r\n classes.push('justify-space-around');\r\n break;\r\n }\r\n case 'spacebetween': {\r\n classes.push('justify-space-between');\r\n break;\r\n }\r\n case 'spaceevenly': {\r\n classes.push('justify-space-evenly');\r\n break;\r\n }\r\n default:\r\n classes.push('justify-start');\r\n break;\r\n }\r\n }\r\n else {\r\n classes.push('justify-start');\r\n }\r\n }\r\n\r\n return classes\r\n },\r\n isVertical() {\r\n return this.type && (this.type.toLowerCase().includes('vertical') || this.type.toLowerCase() === 'controlcontainer');\r\n },\r\n isHorizontal() {\r\n return this.type && this.type.toLowerCase().includes('horizontal');\r\n },\r\n overflowSetting() {\r\n if (this.isHorizontal && this.parentType === \"ContentDef\")\r\n return 'hidden';\r\n else\r\n return 'auto';\r\n },\r\n },\r\n mounted() {\r\n },\r\n methods: {\r\n generateItems(h, controlData, items, model, index, parentType) {\r\n let tempItems = []\r\n for (let i = 0; i < controlData.Controls.length; i++) {\r\n const c = controlData.Controls[i];\r\n if (!(typeof c === 'object'))\r\n continue;\r\n\r\n let DynamicControl = utils.getDynamicComponent(h, c);\r\n\r\n if (!DynamicControl)\r\n DynamicControl = 'default-unknown';\r\n\r\n DynamicControl += '-dsgn'; \r\n\r\n if (!c.$objectId) c.$objectId = utils.generateUUID();\r\n\r\n let id = `${this.master_key}_${c.$objectId}`;\r\n if (index) id = `${index}_${id}`;\r\n\r\n tempItems.push(\r\n \r\n \r\n );\r\n }\r\n if (this.direction === 'Reversed')\r\n tempItems.reverse();\r\n items.push(...tempItems);\r\n },\r\n getHeader(h, controlData) {\r\n if (controlData.HeaderControls && controlData.HeaderControls.length > 0) {\r\n const header = [];\r\n\r\n for (let i = 0; i < controlData.HeaderControls.length; i++) {\r\n const c = controlData.HeaderControls[i];\r\n let DynamicControl = utils.getDynamicComponent(h, c);\r\n if (!DynamicControl)\r\n DynamicControl = 'default-unknown';\r\n\r\n DynamicControl += '-dsgn';\r\n\r\n if (!c.$objectId) c.$objectId = utils.generateUUID();\r\n\r\n let id = `${this.master_key}_${c.$objectId}_${i}`;\r\n\r\n header.push(\r\n this.finishRenderHandler() }}\r\n type={c.ControlType}\r\n key={id}\r\n name={c.ControlData ? (c.ControlData.Name || 'unnamed') : 'unnamed'}\r\n root={this.root}\r\n designmodel={c}\r\n parentType=\"HorizontalStack\"\r\n controlData={c.ControlData}\r\n controlURL={c.ControlURL}>\r\n \r\n );\r\n }\r\n return header;\r\n }\r\n return null;\r\n },\r\n generateItemsFromModel(h, items, controlData, items_id, parentType) {\r\n if (controlData.Controls)\r\n this.generateItems(h, controlData, items, null, items_id, parentType);\r\n },\r\n\r\n addControl(e, target) {\r\n this.pickertarget = target;\r\n this.picker = ;\r\n this.pickervisible = true;\r\n e.cancelBubble = true;\r\n e.stopPropagation();\r\n },\r\n async confirmAddControl(id, title) {\r\n this.pickervisible = false;\r\n\r\n try {\r\n const schema_ = await utils.schema.get(id);\r\n const schema = utils.schema.resolve_Of(schema_)\r\n const model = utils.schema.getDefaultModel(schema);\r\n\r\n switch (this.pickertarget) {\r\n case 'header':\r\n if (!this.controlData.HeaderControls)\r\n Vue.set(this.controlData, 'HeaderControls', []);\r\n\r\n this.controlData.HeaderControls.push(model);\r\n // Hmmm. How to select the node, it isn't created yet, not until it is rendered when this layout stack re-renders\r\n //this.Root.SelectNode(model);\r\n break;\r\n\r\n case 'body':\r\n if (!this.controlData.Controls)\r\n Vue.set(this.controlData, 'Controls', []);\r\n\r\n this.controlData.Controls.push(model);\r\n //this.Root.SelectNode(model);\r\n break;\r\n }\r\n }\r\n catch (e) {\r\n alert(e);\r\n }\r\n },\r\n cancelAddControl() {\r\n this.pickervisible = false;\r\n },\r\n pickerInput(value) {\r\n this.pickervisible = value;\r\n },\r\n generatePicker(h) {\r\n return (\r\n this.pickerInput(value)}>\r\n {this.picker}\r\n \r\n );\r\n },\r\n },\r\n props: {\r\n type: null,\r\n parentType: null,\r\n asbase: false,\r\n },\r\n render(h) {\r\n let items = [];\r\n let items_id = '_0';\r\n\r\n let controlData = this.controlData;\r\n\r\n let header = this.getHeader(h, controlData);\r\n let headerContent = null;\r\n if (this.selected$ || header) {\r\n if (this.selected$) {\r\n if (!header) header = [];\r\n header.push(\r\n this.addControl(e, 'header')}>\r\n mdi mdi-plus-circle\r\n \r\n );\r\n }\r\n if (header)\r\n headerContent =\r\n
\r\n {header}\r\n
;\r\n }\r\n\r\n this.generateItemsFromModel(h, items, controlData, items_id, this.type);\r\n\r\n if (this.selected$)\r\n items.push(\r\n this.addControl(e, 'body')}>\r\n mdi mdi-plus-circle\r\n \r\n );\r\n\r\n const style = {\r\n overflow: \"auto\",\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n ...utils.getStyleHints(controlData.StyleHints),\r\n minWidth: \"15px\",\r\n flexGrow: \"1\",\r\n flexShrink: \"1\"\r\n };\r\n\r\n //...utils.getSize(controlData.SizeOptions, this.parentType, this.$parent),\r\n\r\n const bodyStyle = {\r\n overflow: this.overflowSetting,\r\n display: \"flex\",\r\n flexDirection: this.isVertical ? \"column\" : 'row',\r\n flexGrow: 1,\r\n gap: this.padding ? this.padding + 'px' : ''\r\n };\r\n\r\n return (\r\n this.handleClick(e)}>\r\n
\r\n\r\n {headerContent}\r\n
\r\n {items}\r\n
\r\n\r\n {this.generatePicker(h)}\r\n \r\n );\r\n }\r\n});","import Vue from 'vue';\r\nimport BasicButton from './BasicButton.jsx';\r\nimport Text from './Text.jsx';\r\nimport Icon from './Icon.jsx';\r\n//import SelectList from './SelectList.jsx';\r\nimport BasicForm from './BasicForm.jsx';\r\nimport BasicGrid from './BasicGrid.jsx';\r\nimport TreeView from './TreeView.jsx';\r\nimport utils from '../../../Shared/utils.jsx';\r\nimport methods from '../../../Shared/methods';\r\nimport controlPicker from './controlPicker.jsx';\r\nimport BaseStackMixin from './BaseStackMixin.jsx';\r\nimport VerticalStackContent from './VerticalStackContent.jsx';\r\n\r\nVue.component('stack-vertical-dsgn', {\r\n data: function () {\r\n return {\r\n items_id: '_0',\r\n }\r\n },\r\n computed: {\r\n },\r\n mounted() {\r\n },\r\n methods: {\r\n generateBreadCrumbs(h) {\r\n if (this.controlData.BreadCrumb && this.controlData.BreadCrumb.Text) {\r\n const crumbs = [];\r\n crumbs.push(\r\n {this.controlData.BreadCrumb.Text}\r\n );\r\n crumbs.push(mdi mdi-chevron-right);\r\n return (\r\n
{crumbs}
\r\n );\r\n }\r\n else\r\n return null;\r\n },\r\n },\r\n props: {\r\n root: null,\r\n designmodel: null,\r\n parentType: null,\r\n controlData: null,\r\n sourceData: null,\r\n type: null,\r\n asbase: false,\r\n },\r\n render(h) {\r\n let items_id = this.items_id;\r\n\r\n let controlData = this.controlData;\r\n\r\n const style = {\r\n overflow: \"auto\",\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n minWidth: \"15px\",\r\n ...utils.getSize(controlData.SizeOptions, this.parentType, this.$parent),\r\n ...utils.getStyleHints(controlData.StyleHints),\r\n };\r\n\r\n const breadcrumb = this.generateBreadCrumbs(h);\r\n \r\n return (\r\n \r\n\r\n {breadcrumb}\r\n this.finishRenderHandler() }}\r\n designmodel={this.designmodel}\r\n type={this.type}\r\n name={controlData.Name}\r\n root={this.root}\r\n parentType={this.parentType}\r\n controlData={controlData}\r\n sourceData={this.sourceData}\r\n asbase={this.asbase}\r\n >\r\n \r\n \r\n );\r\n }\r\n});","import Vue from 'vue';\r\nimport utils from '../../../Shared/utils.jsx';\r\nimport BaseComponent from './BaseComponentMixin.jsx';\r\n\r\nvar defaultMixin = {\r\n mixins: [BaseComponent],\r\n data: function () {\r\n return {\r\n }\r\n },\r\n render(h) {\r\n let name;\r\n if (!this.name)\r\n name = this.type;\r\n else\r\n name = this.name + ':' + this.type || 'Unnamed';\r\n\r\n return (\r\n this.handleClick(e)}>\r\n
\r\n {name}
\r\n \r\n );\r\n }\r\n};\r\n\r\nVue.component('default-unknown-dsgn', {\r\n mixins: [defaultMixin]\r\n});\r\n\r\nVue.component('interval-dsgn', {\r\n mixins: [defaultMixin]\r\n});\r\n\r\nVue.component('broadcast-listener-dsgn', {\r\n mixins: [defaultMixin]\r\n});\r\n\r\nVue.component('css-style-dsgn', {\r\n mixins: [defaultMixin]\r\n});\r\n\r\nVue.component('infinite-grid-dsgn', {\r\n mixins: [defaultMixin]\r\n});\r\n\r\nVue.component('slim-grid-dsgn', {\r\n mixins: [defaultMixin]\r\n});\r\n\r\nVue.component('date-range-picker-dsgn', {\r\n mixins: [defaultMixin]\r\n});\r\n\r\nVue.component('dropdown-multi-select-dsgn', {\r\n mixins: [defaultMixin]\r\n});\r\n\r\nVue.component('basic-input-dsgn', {\r\n mixins: [defaultMixin]\r\n});\r\n\r\nVue.component('html-component-dsgn', {\r\n mixins: [defaultMixin]\r\n});\r\n\r\nVue.component('basic-file-upload-dsgn', {\r\n mixins: [defaultMixin]\r\n});\r\n\r\nVue.component('popup-menu-button-dsgn', {\r\n mixins: [defaultMixin]\r\n});\r\n\r\nVue.component('rt-event-handler-dsgn', {\r\n mixins: [defaultMixin]\r\n});\r\n\r\nVue.component('flow-chart-dsgn', {\r\n mixins: [defaultMixin]\r\n});\r\n\r\nVue.component('soft-phone-dsgn', {\r\n mixins: [defaultMixin]\r\n});\r\n\r\nVue.component('dash-dsgn', {\r\n mixins: [defaultMixin]\r\n});\r\n\r\nVue.component('cc-timeline-dsgn', {\r\n mixins: [defaultMixin]\r\n});\r\n\r\nVue.component('infinite-conversation-view-dsgn', {\r\n mixins: [defaultMixin]\r\n});\r\n\r\nVue.component('rooster-editor-dsgn', {\r\n mixins: [defaultMixin]\r\n});\r\n\r\nVue.component('google-button-dsgn', {\r\n mixins: [defaultMixin]\r\n});\r\n\r\nVue.component('apple-button-dsgn', {\r\n mixins: [defaultMixin]\r\n});\r\n\r\nVue.component('acd-direct-button-dsgn', {\r\n mixins: [defaultMixin]\r\n});\r\n\r\nVue.component('server-event-listener-dsgn', {\r\n mixins: [defaultMixin]\r\n});\r\n\r\nVue.component('saml-button-dsgn', {\r\n mixins: [defaultMixin]\r\n});\r\n\r\nVue.component('text-editor-dsgn', {\r\n mixins: [defaultMixin]\r\n});\r\n\r\nVue.component('circle-chart-dsgn', {\r\n mixins: [defaultMixin]\r\n});\r\n\r\nVue.component('bar-chart-dsgn', {\r\n mixins: [defaultMixin]\r\n});\r\n\r\n//Vue.component('real-time-grid-dsgn', {\r\n// mixins: [defaultMixin]\r\n//});\r\n\r\nVue.component('realtime-widget-listener-dsgn', {\r\n mixins: [defaultMixin]\r\n});\r\n\r\nVue.component('advanced-history-dsgn', {\r\n mixins: [defaultMixin]\r\n});\r\n\r\nVue.component('advanced-reports-dsgn', {\r\n mixins: [defaultMixin]\r\n});\r\n","import Vue from 'vue';\r\nimport utils from '../../../Shared/utils.jsx';\r\nimport methods from '../../../Shared/methods';\r\n\r\nfunction generateItems(h, control, items, model, index) {\r\n if (!control.controlData || !control.controlData.TreeNodeTemplate)\r\n return;\r\n\r\n for (let i = 0; i < control.controlData.TreeNodeTemplate.length; i++) {\r\n const c = control.controlData.TreeNodeTemplate[i];\r\n if (!(typeof c === 'object'))\r\n continue;\r\n\r\n let DynamicControl = utils.getDynamicComponent(h, c);\r\n\r\n if (!DynamicControl)\r\n DynamicControl = 'default-unknown';\r\n\r\n DynamicControl += '-dsgn';\r\n\r\n if (!c.$objectId) c.$objectId = utils.generateUUID();\r\n\r\n let id = c.$objectId;\r\n if (index) id += '_' + index;\r\n\r\n items.push(\r\n
\r\n \r\n \r\n
\r\n );\r\n }\r\n}\r\n\r\nVue.component('basic-tree-dsgn', {\r\n data: function () {\r\n return {\r\n model: [],\r\n pickervisible: false,\r\n picker: null,\r\n pickertarget: 'body',\r\n }\r\n },\r\n computed: {\r\n Root: function () {\r\n return this.root._self;\r\n },\r\n Vars: function () {\r\n if (!this.controlData.Vars)\r\n Vue.set(this.controlData, 'Vars', {});\r\n\r\n return this.controlData.Vars;\r\n },\r\n DesignModel: function () {\r\n return this.designmodel;\r\n },\r\n selected$: function () {\r\n return this.Root.SelectedNode && this.Root.SelectedModel == this.designmodel;\r\n },\r\n },\r\n mounted() {\r\n this.Refresh();\r\n },\r\n methods: {\r\n ...methods,\r\n handleClick(e) {\r\n this.Root.SelectNode(this);\r\n e.cancelBubble = true;\r\n e.stopPropagation();\r\n },\r\n addControl(e, target) {\r\n this.pickertarget = target;\r\n this.picker = ;\r\n this.pickervisible = true;\r\n e.cancelBubble = true;\r\n e.stopPropagation();\r\n },\r\n async confirmAddControl(id, title) {\r\n this.pickervisible = false;\r\n\r\n try {\r\n const schema_ = await utils.schema.get(id);\r\n const schema = utils.schema.resolve_Of(schema_)\r\n const model = utils.schema.getDefaultModel(schema);\r\n\r\n switch (this.pickertarget) {\r\n case 'header':\r\n if (!this.controlData.HeaderControls)\r\n Vue.set(this.controlData, 'HeaderControls', []);\r\n\r\n this.controlData.HeaderControls.push(model);\r\n // Hmmm. How to select the node, it isn't created yet, not until it is rendered when this layout stack re-renders\r\n //this.Root.SelectNode(model);\r\n break;\r\n\r\n case 'body':\r\n if (!this.controlData.Controls)\r\n Vue.set(this.controlData, 'Controls', []);\r\n\r\n this.controlData.Controls.push(model);\r\n //this.Root.SelectNode(model);\r\n break;\r\n }\r\n }\r\n catch (e) {\r\n alert(e);\r\n }\r\n },\r\n cancelAddControl() {\r\n this.pickervisible = false;\r\n },\r\n pickerInput(value) {\r\n this.pickervisible = value;\r\n },\r\n async Refresh() {\r\n if (this.controlData.SourceRaw)\r\n this.model = this.controlData.SourceRaw;\r\n // Ignore this for now -- rendering the source data in design mode is kind of annoying\r\n //else if (this.controlData.SourceUrl)\r\n // try {\r\n // this.model = await utils.api.get(this.controlData.SourceUrl);\r\n // }\r\n // catch (e) {\r\n // utils.warn('VerticalStack failed to evaluate SourceUrl ' + this.controlData.SourceUrl + ': ' + e);\r\n // }\r\n }\r\n },\r\n props: {\r\n name: '',\r\n root: null,\r\n designmodel: null,\r\n parentType: '',\r\n controlData: {}\r\n },\r\n render(h) {\r\n let items = [];\r\n\r\n if (this.model && typeof this.model === 'object' && Array.isArray(this.model) && this.model.length > 0) {\r\n for (let i = 0; i < (this.model.length < 10 ? this.model.length : 10); i++) {\r\n const item = this.model[i];\r\n\r\n generateItems(h, this, items, item, i);\r\n }\r\n }\r\n else\r\n generateItems(h, this, items, null, null);\r\n\r\n if (this.selected$)\r\n items.push(\r\n
\r\n {utils.generateTooltip(h,\r\n this.addControl(e, 'body')}>\r\n mdi mdi-plus-circle\r\n ,\r\n 'Add control to body', 'right')}\r\n
\r\n );\r\n\r\n const style = {\r\n overflow: \"auto\",\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n minWidth: \"25px\",\r\n ...utils.getSize(this.controlData.SizeOptions, this.parentType, this.$parent),\r\n ...utils.getStyleHints(this.controlData.StyleHints),\r\n };\r\n\r\n return (\r\n this.handleClick(e)}>\r\n
\r\n\r\n {items}\r\n\r\n this.pickerInput(value)}>\r\n {this.picker}\r\n \r\n \r\n );\r\n }\r\n});","import Vue from 'vue';\r\nimport HorizontalStack from './HorizontalStack.jsx';\r\nimport VerticalStack from './VerticalStack.jsx';\r\nimport BasicButton from './BasicButton.jsx';\r\nimport Text from './Text.jsx';\r\nimport Icon from './Icon.jsx';\r\n//import SelectList from './SelectList.jsx';\r\nimport BasicForm from './BasicForm.jsx';\r\nimport BasicGrid from './BasicGrid.jsx';\r\nimport TreeView from './TreeView.jsx';\r\nimport DefaultUnknown from './DefaultUnknown.jsx';\r\nimport utils from '../../../Shared/utils.jsx';\r\nimport methods from '../../../Shared/methods';\r\nimport controlPicker from './controlPicker.jsx';\r\n\r\nfunction flatMap(arr, mapFunc) {\r\n const result = [];\r\n for (const [index, elem] of arr.entries()) {\r\n const x = mapFunc(elem, index, arr);\r\n // We allow mapFunc() to return non-Arrays\r\n if (Array.isArray(x)) {\r\n result.push(...x);\r\n } else {\r\n result.push(x);\r\n }\r\n }\r\n return result;\r\n}\r\nfunction getMenus(menu)\r\n{\r\n let items = [menu.element];\r\n for (let i = 0; i < menu.children.length; i++)\r\n items = [...items, ...getMenus(menu.children[i])];\r\n\r\n return items;\r\n}\r\nfunction findParentMenu(parent, path)\r\n{\r\n let targetname = path;\r\n if (path.includes('::'))\r\n targetname = path.split('::')[0];\r\n\r\n const menu = parent.find(m => m.name === targetname);\r\n if (!menu)\r\n return null;\r\n\r\n if (path.includes('::')) {\r\n const index = path.indexOf('::');\r\n targetname = path.substr(index + 2);\r\n return findParentMenu(menu.children, targetname);\r\n }\r\n return menu;\r\n}\r\nfunction addPlusButton(h, context, level, menus) {\r\n for (let i = 0; i < menus.length; i++) {\r\n const menu = menus[i];\r\n if (menu.children.length > 0) {\r\n const lastchild = menu.children[menu.children.length - 1];\r\n let lastindex = \"0\";\r\n let menupath = \"\";\r\n if (lastchild.menu) {\r\n lastindex = lastchild.menu.Index;\r\n menupath = lastchild.menu.MenuPath;\r\n }\r\n\r\n const next_index = parseInt(lastindex) + 1;\r\n\r\n menu.children.push({\r\n menu: null,\r\n name: '',\r\n element: (\r\n \r\n \r\n \r\n context.addChildMenuItem(e, next_index, menupath)}>\r\n \r\n \r\n \r\n ),\r\n children: [],\r\n });\r\n\r\n addPlusButton(h, context, level + 1, menu.children);\r\n }\r\n else if (menu.menu && (!menu.menu.MenuItemData.ControlData || !menu.menu.MenuItemData.ControlData.Controls || menu.menu.MenuItemData.ControlData.Controls.length == 0)) {\r\n // This is a top-level menu with no body, we will assume it is for child menus and add a plus, if not, when they add a body, this will disappear.\r\n let menupath = menu.menu.MenuPath || '';\r\n if (menupath) menupath += '::';\r\n menupath += menu.menu.MenuItemData.Title;\r\n\r\n const next_index = menu.menu.Index + \"1\";\r\n\r\n menu.children.push({\r\n menu: null,\r\n name: '',\r\n element: (\r\n \r\n \r\n \r\n context.addChildMenuItem(e, next_index, menupath)}>\r\n \r\n \r\n \r\n ),\r\n children: [],\r\n });\r\n }\r\n }\r\n}\r\nfunction getPreviousTopMenu(index, childMenus) {\r\n index--;\r\n while (index >= 0)\r\n {\r\n const menu = childMenus[index];\r\n if (!menu.MenuPath) return menu;\r\n index--;\r\n }\r\n return null;\r\n}\r\nfunction getNextTopMenu(index, childMenus) {\r\n index++;\r\n while (index < childMenus.length) {\r\n const menu = childMenus[index];\r\n if (!menu.MenuPath) return menu;\r\n index++;\r\n }\r\n return null;\r\n}\r\nfunction getPreviousChildMenu(menuPath, index, childMenus) {\r\n // Scan childMenus looking for the same MenuPath, find the one just before the one with the specified index\r\n let menu;\r\n for (let i = 0; i < childMenus.length; i++) {\r\n if (childMenus[i].MenuPath == menuPath) {\r\n if (childMenus[i].Index == index && menu) return menu;\r\n menu = childMenus[i];\r\n }\r\n }\r\n return null;\r\n}\r\nfunction getNextChildMenu(menuPath, index, childMenus) {\r\n // Scan childMenus looking for the same MenuPath, find the one just after the one with the specified index\r\n let menu;\r\n for (let i = 0; i < childMenus.length; i++) {\r\n if (childMenus[i].MenuPath == menuPath) {\r\n if (childMenus[i].Index == index && !menu)\r\n menu = childMenus[i];\r\n else if (menu)\r\n return childMenus[i];\r\n }\r\n }\r\n return null;\r\n}\r\n\r\nVue.component('carecenter-menu-dsgn', {\r\n data: function () {\r\n return {\r\n childMenus: null,\r\n deleteEnabled: false,\r\n pickervisible: false,\r\n picker: null,\r\n pickertarget: 'body',\r\n }\r\n },\r\n created() {\r\n if (this.designmodel && this.designmodel._id)\r\n this.$watch('designmodel._id', function (val, oldval) {\r\n if ((!this.controlData || !this.controlData.Controls || this.controlData.Controls.length === 0) && this.designmodel.MenuItemData.ChildMenuType)\r\n this.RefreshChildMenus();\r\n else\r\n this.childMenus = null;\r\n });\r\n },\r\n computed: {\r\n Root: function () {\r\n return this.root._self;\r\n },\r\n selected$: function () {\r\n return this.Root.SelectedNode && this.Root.SelectedModel == this.designmodel;\r\n }\r\n },\r\n mounted() {\r\n if ((!this.controlData || !this.controlData.Controls || this.controlData.Controls.length === 0) && this.designmodel.MenuItemData.ChildMenuType)\r\n this.RefreshChildMenus();\r\n else\r\n this.childMenus = null;\r\n\r\n },\r\n methods: {\r\n ...methods,\r\n handleClick(e) {\r\n this.Root.SelectNode(this);\r\n e.cancelBubble = true;\r\n e.stopPropagation();\r\n },\r\n DesignModel: function () {\r\n return this.designmodel;\r\n },\r\n async RefreshChildMenus() {\r\n switch (this.designmodel.MenuItemData.ChildMenuType) {\r\n case 'MenuName':\r\n this.childMenus = await utils.api.get('Apps/MenuItems/ListAll/' + this.designmodel.MenuItemData.ChildMenuName);\r\n break;\r\n\r\n case 'URL':\r\n this.childMenus = await utils.api.get(this.designmodel.MenuItemData.ChildMenuURL);\r\n break;\r\n\r\n case 'PopupMenu':\r\n this.childMenus = await utils.api.get('Apps/MenuItems/ListAll/' + this.designmodel.MenuItemData.PopupMenuName);\r\n break;\r\n\r\n default:\r\n return;\r\n }\r\n this.childMenus.sort((a, b) => a.Index - b.Index);\r\n },\r\n jumpToMenu(e, menu) {\r\n this.childMenus = null;\r\n this.Root.ExternalNavigate('Apps/UI/MenuItem/' + menu._id);\r\n\r\n e.cancelBubble = true;\r\n e.stopPropagation();\r\n },\r\n addChildMenuItem(e, index, path) {\r\n this.childMenus = null;\r\n let url = 'Apps/SchemaBootstrap/NewEmptyDocument/MenuChild';\r\n url += '?MenuName=' + this.designmodel.MenuItemData.ChildMenuName;\r\n url += '&MenuIndex=' + index;\r\n url += '&MenuPath=' + (path || '');\r\n url += '&uuid=' + utils.generateUUID(); // Causes the URL to be unique to insure the Vue engine will re-render\r\n\r\n this.Root.ExternalNavigate(url);\r\n\r\n e.cancelBubble = true;\r\n e.stopPropagation();\r\n },\r\n async swapMenuIndexes(e, menu1, menu2) {\r\n const url = 'Apps/UI/SwapMenuItemIndexes/' + menu1._id + '/' + menu2._id;\r\n const res = await utils.api.get(url);\r\n if (res.Menu1.Success.Success && res.Menu2.Success.Success)\r\n this.RefreshChildMenus();\r\n else\r\n alert(JSON.stringify(res, null, 4));\r\n },\r\n async deleteMenu(e, menu) {\r\n const url = 'Apps/UI/MenuItem/' + menu._id;\r\n const res = await utils.api.request('DELETE', url);\r\n if (res === true)\r\n this.RefreshChildMenus();\r\n else\r\n alert(JSON.stringify(res, null, 4));\r\n },\r\n addControl(e, target) {\r\n this.pickertarget = target;\r\n this.picker = ;\r\n this.pickervisible = true;\r\n e.cancelBubble = true;\r\n e.stopPropagation();\r\n },\r\n async confirmAddControl(id, title) {\r\n this.pickervisible = false;\r\n\r\n try {\r\n const schema_ = await utils.schema.get(id);\r\n const schema = utils.schema.resolve_Of(schema_)\r\n const model = utils.schema.getDefaultModel(schema);\r\n\r\n switch (this.pickertarget) {\r\n case 'header':\r\n if (!this.controlData.HeaderControls)\r\n Vue.set(this.controlData, 'HeaderControls', []);\r\n\r\n this.controlData.HeaderControls.push(model);\r\n // Hmmm. How to select the node, it isn't created yet, not until it is rendered when this layout stack re-renders\r\n //this.Root.SelectNode(model);\r\n break;\r\n\r\n case 'body':\r\n if (!this.controlData.Controls)\r\n Vue.set(this.controlData, 'Controls', []);\r\n\r\n this.controlData.Controls.push(model);\r\n //this.Root.SelectNode(model);\r\n break;\r\n }\r\n }\r\n catch (e) {\r\n alert(e);\r\n }\r\n },\r\n cancelAddControl() {\r\n this.pickervisible = false;\r\n },\r\n pickerInput(value) {\r\n this.pickervisible = value;\r\n },\r\n },\r\n props: {\r\n name: '',\r\n root: null,\r\n designmodel: null,\r\n controlData: {}\r\n },\r\n render(h) {\r\n let icontitle;\r\n if (this.designmodel.MenuItemData.Icon && this.designmodel.MenuItemData.Icon.Icon)\r\n icontitle = (\r\n \r\n {this.designmodel.MenuItemData.Title}\r\n \r\n );\r\n else if (this.designmodel.MenuItemData.Icon)\r\n icontitle = (\r\n \r\n {this.designmodel.MenuItemData.Title}\r\n \r\n );\r\n else\r\n icontitle = (\r\n \r\n {this.designmodel.MenuItemData.Title}\r\n \r\n );\r\n\r\n if (this.childMenus) {\r\n const menus = [];\r\n\r\n const style = {\r\n textDecoration: \"underline\",\r\n cursor: \"pointer\",\r\n overflow: \"hidden\",\r\n whiteSpace: \"nowrap\",\r\n display: \"inline-block\",\r\n padding: \"5px 15px 5px 15px\",\r\n width: \"300px\",\r\n };\r\n\r\n for (let i = 0; i < this.childMenus.length; i++) {\r\n const menu = this.childMenus[i];\r\n let icon;\r\n if (menu.MenuItemData.Icon)\r\n icon = ;\r\n\r\n let label = menu.MenuItemData.Title;\r\n let menuname;\r\n if (menu.MenuItemData.Name)\r\n menuname = ({menu.MenuItemData.Name});\r\n\r\n if (menu.MenuPath) continue;\r\n\r\n const lastmenu = getPreviousTopMenu(i, this.childMenus);\r\n const nextmenu = getNextTopMenu(i, this.childMenus);\r\n\r\n let moveUp;\r\n let moveDown;\r\n let deleteicon;\r\n if (lastmenu)\r\n moveUp = this.swapMenuIndexes(e, menu, lastmenu)}>;\r\n if (nextmenu)\r\n moveDown = this.swapMenuIndexes(e, menu, nextmenu)}>;\r\n if (this.deleteEnabled)\r\n deleteicon = this.deleteMenu(e, menu)} title=\"Delete\">;\r\n\r\n menus.push({\r\n menu: menu,\r\n name: menu.MenuItemData.Title,\r\n element: (\r\n \r\n \r\n this.jumpToMenu(e, menu)}>\r\n {icon} {label} {menuname}\r\n \r\n \r\n \r\n {menu.Role}\r\n \r\n \r\n {deleteicon} [{menu.Index}]\r\n \r\n \r\n \r\n {moveUp} {moveDown}\r\n \r\n \r\n \r\n ),\r\n children: [],\r\n });\r\n }\r\n let lastindex_top = \"0\";\r\n if (menus.length > 0)\r\n {\r\n const lastmenu = menus[menus.length - 1];\r\n lastindex_top = lastmenu.menu.Index;\r\n }\r\n const next_index = parseInt(lastindex_top) + 1;\r\n menus.push({\r\n menu: null,\r\n name: '',\r\n element: (\r\n \r\n \r\n \r\n this.addChildMenuItem(e, next_index)}>\r\n \r\n \r\n \r\n ),\r\n children: [],\r\n });\r\n\r\n for (let i = 0; i < this.childMenus.length; i++) {\r\n const menu = this.childMenus[i];\r\n let icon;\r\n if (menu.MenuItemData.Icon)\r\n icon = ;\r\n\r\n let label = menu.MenuItemData.Title;\r\n let menuname;\r\n if (menu.MenuItemData.Name)\r\n menuname = ({menu.MenuItemData.Name});\r\n\r\n if (menu.MenuPath) {\r\n const parent = findParentMenu(menus, menu.MenuPath);\r\n if (parent) {\r\n const lastmenu = getPreviousChildMenu(menu.MenuPath, menu.Index, this.childMenus);\r\n const nextmenu = getNextChildMenu(menu.MenuPath, menu.Index, this.childMenus);\r\n\r\n let moveUp;\r\n let moveDown;\r\n let deleteicon;\r\n if (lastmenu)\r\n moveUp = this.swapMenuIndexes(e, menu, lastmenu)}>;\r\n if (nextmenu)\r\n moveDown = this.swapMenuIndexes(e, menu, nextmenu)}>;\r\n if (this.deleteEnabled)\r\n deleteicon = this.deleteMenu(e, menu)} title=\"Delete\">;\r\n\r\n const count = (menu.MenuPath.match(/::/g) || []).length + 1;\r\n parent.children.push({\r\n menu: menu,\r\n name: menu.MenuItemData.Title,\r\n element: (\r\n \r\n \r\n this.jumpToMenu(e, menu)}>\r\n {icon} {label} {menuname}\r\n \r\n \r\n \r\n {menu.Role}\r\n \r\n \r\n {deleteicon} [{menu.Index}]\r\n \r\n \r\n \r\n {moveUp} {moveDown}\r\n \r\n \r\n \r\n ),\r\n children: [],\r\n });\r\n\r\n continue;\r\n }\r\n else\r\n label = [menu.MenuPath, , label];\r\n }\r\n }\r\n\r\n addPlusButton(h, this, 1, menus);\r\n\r\n let allmenus = [];\r\n for (let i = 0; i < menus.length; i++)\r\n allmenus = [...allmenus, ...getMenus(menus[i])];\r\n\r\n const tablestyle = {\r\n margin: \"10px\",\r\n padding: \"10px\",\r\n borderStyle: \"solid\",\r\n borderColor: \"black\",\r\n borderWidth: \"1px\",\r\n borderRadius: \"5px\",\r\n };\r\n\r\n return (\r\n this.handleClick(e)}>\r\n
\r\n
this.deleteEnabled = !this.deleteEnabled} style={{ top: \"4px\", right: \"4px\", display: this.selected$ ? \"block\" : \"none\" }}>{this.deleteEnabled ? 'Cancel' : 'Delete Items'}
\r\n\r\n {icontitle}\r\n \r\n {allmenus}\r\n
\r\n \r\n );\r\n }\r\n else if (!this.controlData || !this.controlData.Controls)\r\n return null;\r\n\r\n let items = [];\r\n\r\n if (this.selected$ || (this.controlData.HeaderControls && this.controlData.HeaderControls.length > 0)) {\r\n utils.getHeaderControls(h, this.controlData, items, this.root, \"ControlContainer\", this.addControl, this.selected$);\r\n }\r\n\r\n for (let i = 0; i < this.controlData.Controls.length; i++)\r\n {\r\n const control = this.controlData.Controls[i];\r\n let DynamicControl = utils.getDynamicComponent(h, control);\r\n\r\n if (!DynamicControl)\r\n DynamicControl = 'default-unknown';\r\n\r\n DynamicControl += '-dsgn';\r\n\r\n items.push(\r\n \r\n \r\n );\r\n }\r\n\r\n if (this.selected$) {\r\n items.push(\r\n
\r\n {utils.generateTooltip(h,\r\n this.addControl(e, 'body')}>\r\n mdi mdi-plus-circle\r\n ,\r\n 'Add control to body', 'right')}\r\n
\r\n );\r\n }\r\n\r\n return (\r\n this.handleClick(e)}>\r\n
\r\n {icontitle}\r\n {this.name}
\r\n {items}\r\n\r\n this.pickerInput(value)}>\r\n {this.picker}\r\n \r\n \r\n );\r\n }\r\n});","import Vue from 'vue';\r\nimport utils from '../../../Shared/utils.jsx';\r\nimport methods from '../../../Shared/methods';\r\n\r\nfunction hasNonEmptyValue(text) {\r\n if (!text)\r\n return false;\r\n\r\n if (typeof text === 'string')\r\n if (!text.trim())\r\n return false;\r\n\r\n return true;\r\n}\r\n\r\nVue.component('fast-grid-dsgn', {\r\n data: () => ({\r\n displayexpr: null,\r\n schemaurl: null,\r\n schemaraw: null,\r\n modelurl: null,\r\n modelvalue: null,\r\n schema: null,\r\n model: {},\r\n pickervisible: false,\r\n picker: null,\r\n pickercdef: null,\r\n }),\r\n created() {\r\n },\r\n mounted() {\r\n this.Refresh();\r\n },\r\n computed: {\r\n Root: function () {\r\n return this.root._self;\r\n },\r\n Model: function () {\r\n return this.model;\r\n },\r\n selected$: function () {\r\n return this.Root.SelectedNode && this.Root.SelectedNode == this;\r\n },\r\n },\r\n methods: {\r\n ...methods,\r\n handleClick(e) {\r\n this.Root.SelectNode(this);\r\n e.cancelBubble = true;\r\n e.stopPropagation();\r\n },\r\n selectColumn(e, index) {\r\n this.Root.SelectNode(this, this.controlData.ColumnDefs[index]);\r\n e.cancelBubble = true;\r\n e.stopPropagation();\r\n },\r\n deleteColumn(e, index) {\r\n this.controlData.ColumnDefs.splice(index, 1);\r\n e.cancelBubble = true;\r\n e.stopPropagation();\r\n },\r\n addColumn(e) {\r\n if (!this.controlData.ColumnDefs)\r\n Vue.set(this.controlData, 'ColumnDefs', []);\r\n\r\n this.controlData.ColumnDefs.push({\r\n $typeSchema: '/schema/public/Platform.Schema.DynamicControls.v1/DynamicControl_Grid_ColumnDef',\r\n Align: 'Left',\r\n DisplayName: '',\r\n Field: 'field' + (this.controlData.ColumnDefs.length+1),\r\n Sortable: true,\r\n Visible: true,\r\n Width: 'Auto',\r\n });\r\n this.Root.SelectNode(this, this.controlData.ColumnDefs[this.controlData.ColumnDefs.length - 1]);\r\n e.cancelBubble = true;\r\n e.stopPropagation();\r\n },\r\n async Refresh() {\r\n if (this.controlData.SchemaURL)\r\n try {\r\n this.schema = await utils.schema.get(this.controlData.SchemaURL);\r\n }\r\n catch (e) {\r\n utils.warn('Design BasicGrid schemaurl ' + this.controlData.SchemaURL + ' failed to load: ' + e);\r\n this.schema = null;\r\n }\r\n\r\n if (this.controlData.DataType == 'URL' && this.controlData.DataURL)\r\n try {\r\n this.model = await utils.api.get(this.controlData.DataURL);\r\n }\r\n catch (e) {\r\n utils.warn('Design BasicGrid DataURL ' + this.controlData.DataURL + ' failed to load: ' + e);\r\n this.model = [{}];\r\n }\r\n else if (this.controlData.DataType == 'Raw' && this.controlData.Data && Array.isArray(this.controlData.Data)) {\r\n this.model = this.controlData.Data;\r\n }\r\n else\r\n this.model = [{}];\r\n },\r\n\r\n addControl(cdef) {\r\n this.pickercdef = cdef;\r\n this.picker = ;\r\n this.pickervisible = true;\r\n },\r\n async confirmAddControl(id, title) {\r\n this.pickervisible = false;\r\n\r\n try {\r\n const schema_ = await utils.schema.get(id);\r\n const schema = utils.schema.resolve_Of(schema_)\r\n const model = utils.schema.getDefaultModel(schema);\r\n this.pickercdef.Controls.push(model);\r\n }\r\n catch (e) {\r\n alert(e);\r\n }\r\n },\r\n cancelAddControl() {\r\n this.pickervisible = false;\r\n },\r\n pickerInput(value) {\r\n this.pickervisible = value;\r\n },\r\n getColumnDefTitle(cdef) {\r\n if (hasNonEmptyValue(cdef.DisplayName))\r\n return cdef.DisplayName;\r\n else\r\n return cdef.Field || cdef.Name || 'Unnamed';\r\n },\r\n },\r\n props: {\r\n name: '',\r\n root: null,\r\n designmodel: null,\r\n parentType: '',\r\n controlData: {}\r\n },\r\n render() {\r\n let headercontrols;\r\n const elements = [];\r\n\r\n if (this.controlData.GridHeaderControls && this.controlData.GridHeaderControls.length > 0) {\r\n headercontrols = [];\r\n for (let j = 0; j < this.controlData.GridHeaderControls.length; j++) {\r\n const control = this.controlData.GridHeaderControls[j];\r\n\r\n let DynamicControl = utils.getDynamicComponent(h, control);\r\n if (!DynamicControl) {\r\n elements.push(Control type of {control.ControlType} is unknown);\r\n continue;\r\n }\r\n DynamicControl += '-dsgn';\r\n\r\n headercontrols.push(\r\n \r\n \r\n );\r\n }\r\n }\r\n\r\n let header;\r\n if (this.controlData.ColumnDefs && this.controlData.ColumnDefs.length > 0)\r\n {\r\n header = [];\r\n for (let i = 0; i < this.controlData.ColumnDefs.length; i++) {\r\n const cdef = this.controlData.ColumnDefs[i];\r\n\r\n header.push(\r\n \r\n this.selectColumn(e, i)}>\r\n {this.getColumnDefTitle(cdef)}\r\n this.deleteColumn(e, i)}>\r\n \r\n \r\n \r\n I\r\n \r\n );\r\n // The \"I\" within the hidden span above is required to keep the cell visible since the other two elements are using absolute position\r\n }\r\n elements.push({header});\r\n }\r\n else if (this.model && this.model.length > 0)\r\n {\r\n header = [];\r\n const sample = this.model[0];\r\n for (let head in sample)\r\n {\r\n header.push(\r\n \r\n {head}\r\n \r\n );\r\n }\r\n elements.push({header});\r\n }\r\n\r\n if (!this.model)\r\n elements.push(Loading...);\r\n else {\r\n let c = this.model.length;\r\n if (c > 10) c = 10;\r\n for (let i = 0; i < c; i++) {\r\n const row = this.model[i];\r\n if (!row.$objectId)\r\n row.$objectId = utils.generateUUID();\r\n\r\n elements.push(\r\n \r\n \r\n );\r\n }\r\n }\r\n\r\n let designer_class = {\r\n 'designer-container-selected-clickthrough': this.selected$\r\n };\r\n if (!this.selected$)\r\n designer_class[\"designer-container-hovering\"] = true;\r\n else\r\n designer_class[\"designer-container-hovering__selected\"] = true;\r\n\r\n if (headercontrols)\r\n headercontrols =\r\n
\r\n {headercontrols}\r\n
;\r\n\r\n return (\r\n this.handleClick(e)}>\r\n
\r\n\r\n
this.addColumn(e)} style={{ top: \"1px\", right: \"1px\", display: this.selected$ ? \"block\" : \"none\" }}>
\r\n {headercontrols}\r\n \r\n {elements}\r\n
\r\n\r\n this.pickerInput(value)}>\r\n {this.picker}\r\n \r\n \r\n );\r\n }\r\n});","import Vue from 'vue';\r\nimport utils from '../../../Shared/utils.jsx';\r\nimport methods from '../../../Shared/methods';\r\n\r\nVue.component('hsm-state-dsgn', {\r\n data: function () {\r\n return {\r\n\r\n }\r\n },\r\n created() {\r\n\r\n },\r\n computed: {\r\n\r\n },\r\n methods: {\r\n\r\n },\r\n props: {\r\n state: null,\r\n parentState: null,\r\n isSelected: false,\r\n hsm: null,\r\n size: 0,\r\n },\r\n render(h) {\r\n const state_style = {\r\n borderStyle: \"solid\",\r\n borderWidth: \"1px\",\r\n borderRadius: \"5px\",\r\n overflow: \"hidden\",\r\n };\r\n switch (this.size) {\r\n case 1:\r\n state_style.maxWidth = \"60px\";\r\n state_style.minWidth = \"60px\";\r\n state_style.maxHeight = \"18px\";\r\n state_style.minHeight = \"18px\";\r\n state_style.margin = \"5px\";\r\n state_style.padding = \"2px\";\r\n break;\r\n case 2:\r\n state_style.maxWidth = \"160px\";\r\n state_style.minWidth = \"160px\";\r\n state_style.maxHeight = \"100px\";\r\n state_style.minHeight = \"100px\";\r\n state_style.margin = \"10px\";\r\n state_style.padding = \"5px\";\r\n state_style.display = \"flex\";\r\n state_style.flexDirection = \"row\";\r\n state_style.flexWrap = \"wrap\";\r\n break;\r\n case 3:\r\n //state_style.Width = \"90%\";\r\n //state_style.Height = \"90%\";\r\n state_style.flexGrow = \"1\";\r\n state_style.margin = \"10px\";\r\n state_style.padding = \"10px\";\r\n state_style.display = \"flex\";\r\n state_style.flexDirection = \"row\";\r\n state_style.flexWrap = \"wrap\";\r\n state_style.alignContent = \"flex-start\";\r\n state_style.overflow = \"auto\";\r\n break;\r\n }\r\n\r\n const items = [];\r\n\r\n if (this.size > 1 && this.state.ChildStates)\r\n for (let i = 0; i < this.state.ChildStates.length; i++)\r\n {\r\n const child = this.state.ChildStates[i];\r\n\r\n items.push(\r\n this.isSelected(state)}>\r\n \r\n );\r\n }\r\n\r\n const font_sizes = ['', 'xx-small', 'small', 'medium'];\r\n\r\n const title_style = {\r\n fontSize: font_sizes[this.size],\r\n width: \"100%\",\r\n maxHeight: \"24px\",\r\n textAlign: \"center\",\r\n borderBottomWidth: \"1px\",\r\n borderBottomStyle: \"solid\",\r\n backgroundColor: \"antiquewhite\",\r\n };\r\n\r\n let title;\r\n if (this.size == 2)\r\n title =
this.hsm.drill(e, this.state)}>{this.state.StateName}
;\r\n else\r\n title =
{this.state.StateName}
;\r\n\r\n return (\r\n this.hsm.selectState(e, this.state, this.parentState)}>\r\n
\r\n {title}\r\n {items}\r\n \r\n );\r\n }\r\n});\r\n\r\nfunction findParent(root, targetstate) {\r\n let list;\r\n if ('States' in root)\r\n list = root.States;\r\n else if ('ChildStates' in root)\r\n list = root.ChildStates;\r\n else\r\n return null;\r\n\r\n for (let i = 0; i < list.length; i++)\r\n {\r\n const state = list[i];\r\n if (state == targetstate)\r\n return root;\r\n\r\n if ('ChildStates' in state)\r\n {\r\n const c = findParent(state, targetstate);\r\n if (c) return c;\r\n }\r\n }\r\n return null;\r\n}\r\n\r\nVue.component('hsm-new-dsgn', {\r\n data: function () {\r\n return {\r\n topstate: null,\r\n current_state: null,\r\n }\r\n },\r\n created() {\r\n if (this.controlData.States && this.controlData.States.length === 1)\r\n this.topstate = this.controlData.States[0];\r\n },\r\n destroyed() {\r\n }, \r\n computed: {\r\n Root: function () {\r\n return this.root._self;\r\n },\r\n selected$: function () {\r\n return this.Root.SelectedNode && this.Root.SelectedModel == this.designmodel;\r\n },\r\n },\r\n methods: {\r\n ...methods,\r\n handleClick(e) {\r\n this.Root.SelectNode(this);\r\n e.cancelBubble = true;\r\n e.stopPropagation();\r\n },\r\n selectState(e, state, topstate) {\r\n //if (topstate)\r\n // this.topstate = topstate;\r\n\r\n this.Root.SelectNode(this, state);\r\n this.current_state = state;\r\n e.cancelBubble = true;\r\n e.stopPropagation();\r\n },\r\n drill(e, state) {\r\n this.topstate = state;\r\n this.Root.SelectNode(this, state);\r\n this.current_state = state;\r\n\r\n e.cancelBubble = true;\r\n e.stopPropagation();\r\n },\r\n navUp(e) {\r\n const p = findParent(this.controlData, this.topstate);\r\n\r\n if (p && (p.StateName || p.Name)) {\r\n this.current_state = this.topstate;\r\n this.topstate = p;\r\n\r\n this.Root.SelectNode(this, this.current_state);\r\n }\r\n else if (!p)\r\n {\r\n this.current_state = this.topstate;\r\n this.topstate = null;\r\n\r\n this.Root.SelectNode(this);\r\n }\r\n\r\n e.cancelBubble = true;\r\n e.stopPropagation();\r\n }\r\n },\r\n props: {\r\n name: '',\r\n root: null,\r\n designmodel: null,\r\n parentType: '',\r\n controlData: {}\r\n },\r\n render(h) {\r\n const items = [];\r\n let title;\r\n\r\n const size = {\r\n Width: { Mode: \"Fill\" },\r\n Height: { Mode: \"Fill\" }\r\n };\r\n\r\n const style = {\r\n ...utils.getSize(size, this.parentType, this.$parent),\r\n padding: \"5px\",\r\n display: \"flex\",\r\n flexDirection: \"row\",\r\n flexWrap: \"wrap\",\r\n alignContent: \"flex-start\",\r\n };\r\n\r\n if (!this.topstate || this.topstate == this.controlData) {\r\n // This renders each top level state as a medium size box\r\n for (let i = 0; i < this.controlData.States.length; i++) {\r\n const s = this.controlData.States[i];\r\n items.push(\r\n this.current_state == state}>\r\n \r\n );\r\n }\r\n\r\n return (\r\n this.handleClick(e)}\r\n style={style}>\r\n
\r\n
this.navUp(e)} style={{ top: \"4px\", right: \"4px\", display: this.topstate ? \"block\" : \"none\" }}>Parent
\r\n {items}\r\n \r\n );\r\n }\r\n\r\n // This renders one top level state full screen\r\n return (\r\n this.handleClick(e)}\r\n style={style}>\r\n
\r\n
this.navUp(e)} style={{ top: \"4px\", right: \"4px\", display: this.topstate ? \"block\" : \"none\" }}>Parent
\r\n this.current_state == state}>\r\n \r\n \r\n );\r\n }\r\n});","import Vue from 'vue';\r\nimport HorizontalStack from './HorizontalStack.jsx';\r\nimport VerticalStack from './VerticalStack.jsx';\r\nimport BasicButton from './BasicButton.jsx';\r\nimport Text from './Text.jsx';\r\nimport Icon from './Icon.jsx';\r\n//import SelectList from './SelectList.jsx';\r\nimport BasicForm from './BasicForm.jsx';\r\nimport BasicGrid from './BasicGrid.jsx';\r\nimport TreeView from './TreeView.jsx';\r\nimport DefaultUnknown from './DefaultUnknown.jsx';\r\nimport utils from '../../../Shared/utils.jsx';\r\nimport methods from '../../../Shared/methods';\r\n\r\nfunction flatMap(arr, mapFunc) {\r\n const result = [];\r\n for (const [index, elem] of arr.entries()) {\r\n const x = mapFunc(elem, index, arr);\r\n // We allow mapFunc() to return non-Arrays\r\n if (Array.isArray(x)) {\r\n result.push(...x);\r\n } else {\r\n result.push(x);\r\n }\r\n }\r\n return result;\r\n}\r\n\r\nfunction getMenus(menu)\r\n{\r\n let items = [menu.element];\r\n for (let i = 0; i < menu.children.length; i++)\r\n items = [...items, ...getMenus(menu.children[i])];\r\n\r\n return items;\r\n}\r\n\r\nfunction findParentMenu(parent, path)\r\n{\r\n let targetname = path;\r\n if (path.includes('::'))\r\n targetname = path.split('::')[0];\r\n\r\n const menu = parent.find(m => m.name === targetname);\r\n if (!menu)\r\n return null;\r\n\r\n if (path.includes('::')) {\r\n const index = path.indexOf('::');\r\n targetname = path.substr(index + 2);\r\n return findParentMenu(menu.children, targetname);\r\n }\r\n return menu;\r\n}\r\n\r\nVue.component('background-service-dsgn', {\r\n data: function () {\r\n return {\r\n childMenus: null,\r\n }\r\n },\r\n created() {\r\n },\r\n computed: {\r\n Root: function () {\r\n return this.root._self;\r\n },\r\n selected$: function () {\r\n return this.Root.SelectedNode && this.Root.SelectedModel == this.designmodel;\r\n }\r\n },\r\n methods: {\r\n ...methods,\r\n handleClick(e) {\r\n this.Root.SelectNode(this);\r\n e.cancelBubble = true;\r\n e.stopPropagation();\r\n },\r\n DesignModel: function () {\r\n return this.designmodel;\r\n },\r\n jumpToMenu(e, menu) {\r\n this.childMenus = null;\r\n this.Root.ExternalNavigate('Apps/UI/MenuItem/' + menu._id);\r\n\r\n e.cancelBubble = true;\r\n e.stopPropagation();\r\n }\r\n },\r\n props: {\r\n name: '',\r\n root: null,\r\n designmodel: null,\r\n controlData: {}\r\n },\r\n render(h) {\r\n let icontitle = (\r\n \r\n {this.designmodel.MenuItemData.Title}\r\n \r\n );\r\n\r\n if (!this.controlData || !this.controlData.Controls)\r\n return null;\r\n\r\n let items = [];\r\n for (let i = 0; i < this.controlData.Controls.length; i++)\r\n {\r\n const control = this.controlData.Controls[i];\r\n let DynamicControl = utils.getDynamicComponent(h, control);\r\n\r\n if (!DynamicControl)\r\n DynamicControl = 'default-unknown';\r\n\r\n DynamicControl += '-dsgn';\r\n\r\n items.push(\r\n \r\n \r\n );\r\n }\r\n return (\r\n this.handleClick(e)}>\r\n
\r\n {icontitle}\r\n {this.name}
\r\n {items}\r\n \r\n );\r\n }\r\n});","import Vue from 'vue';\r\nimport utils from '../../../Shared/utils.jsx';\r\nimport methods from '../../../Shared/methods';\r\n\r\nVue.component('basic-link-dsgn', {\r\n data: function () {\r\n return {\r\n }\r\n },\r\n created() {\r\n },\r\n computed: {\r\n Root: function () {\r\n return this.root._self;\r\n },\r\n textStyles: function () {\r\n const styles = {};\r\n\r\n if (this.controlData.FontSize)\r\n styles['font-size'] = utils.resolveFontSize(this.controlData.FontSize);\r\n\r\n if (this.controlData.Color)\r\n styles.color = this.controlData.Color;\r\n else\r\n styles.color = 'blue';\r\n\r\n return styles;\r\n },\r\n selected$: function () {\r\n return this.Root.SelectedNode && this.Root.SelectedModel == this.designmodel;\r\n },\r\n },\r\n methods: {\r\n ...methods,\r\n handleClick(e) {\r\n this.Root.SelectNode(this);\r\n e.cancelBubble = true;\r\n e.stopPropagation();\r\n },\r\n },\r\n props: {\r\n name: '',\r\n root: null,\r\n designmodel: null,\r\n parentType: '',\r\n controlData: {}\r\n },\r\n render(h) {\r\n return (\r\n
\r\n this.handleClick(e)}\r\n title={this.controlData.Tooltip}>\r\n
\r\n {this.controlData.Text}\r\n \r\n
\r\n );\r\n }\r\n});","import Vue from 'vue';\r\nimport utils from '../../../Shared/utils.jsx';\r\nimport methods from '../../../Shared/methods';\r\n\r\nVue.component('basic-popup-menu-dsgn', {\r\n data: function () {\r\n return {\r\n }\r\n },\r\n created() {\r\n },\r\n computed: {\r\n Root: function () {\r\n return this.root._self;\r\n },\r\n selected$: function () {\r\n return this.Root.SelectedNode && this.Root.SelectedModel == this.designmodel;\r\n },\r\n },\r\n methods: {\r\n ...methods,\r\n handleClick(e) {\r\n this.Root.SelectNode(this);\r\n e.cancelBubble = true;\r\n e.stopPropagation();\r\n },\r\n },\r\n props: {\r\n name: '',\r\n root: null,\r\n designmodel: null,\r\n parentType: '',\r\n controlData: {}\r\n },\r\n render(h) {\r\n const style = {\r\n maxWidth: \"250px\", // Just for the designer\r\n ...utils.getSize(this.controlData.SizeOptions, this.parentType, this.$parent),\r\n overflow: \"hidden\",\r\n whiteSpace: \"nowrap\",\r\n border: '1px solid black',\r\n padding: '2px',\r\n margin: '1px',\r\n };\r\n\r\n let icon;\r\n if (this.controlData.Icon && (this.controlData.Icon.includes('{{') || this.controlData.Icon.includes('{*')))\r\n icon = 'mdi mdi-help-circle';\r\n else\r\n icon = this.controlData.Icon;\r\n\r\n let text = this.controlData.Text;\r\n\r\n if (!text && !icon) {\r\n // This is found in the WizardButton\r\n if (this.controlData.Type)\r\n switch (this.controlData.Type) {\r\n case 'Back': text = 'Back'; icon = 'mdi mdi-chevron-double-left'; break;\r\n case 'Next': text = 'Next'; icon = 'mdi mdi-chevron-double-right'; break;\r\n case 'Finish': text = 'Finish'; break;\r\n }\r\n else\r\n text = 'Untitled';\r\n }\r\n\r\n return (\r\n
\r\n this.handleClick(e)}\r\n type=\"button\"\r\n title={this.controlData.Tooltip}>\r\n
\r\n {text} \r\n \r\n
\r\n );\r\n }\r\n});","import Vue from 'vue';\r\nimport utils from '../../../Shared/utils.jsx';\r\nimport methods from '../../../Shared/methods';\r\n\r\nVue.component('basic-tab-dsgn', {\r\n data: function () {\r\n return {\r\n tab_state: {\r\n index: 0\r\n },\r\n pickervisible: false,\r\n picker: null,\r\n }\r\n },\r\n created() {\r\n },\r\n computed: {\r\n Root: function () {\r\n return this.root._self;\r\n },\r\n DesignModel: function () {\r\n return this.designmodel;\r\n },\r\n selected$: function () {\r\n let anytabs = false;\r\n if (this.controlData && this.controlData.TabControls)\r\n for (let i = 0; i < this.controlData.TabControls.length; i++)\r\n if (this.Root.SelectedModel == this.controlData.TabControls[i]) {\r\n anytabs = true;\r\n break;\r\n }\r\n\r\n return this.Root.SelectedNode && (this.Root.SelectedModel == this.designmodel || anytabs);\r\n },\r\n },\r\n methods: {\r\n ...methods,\r\n handleClick(e) {\r\n this.Root.SelectNode(this);\r\n e.cancelBubble = true;\r\n e.stopPropagation();\r\n },\r\n selectTab(e, index) {\r\n this.tab_state.index = index;\r\n if ('$typeSchema' in this.controlData.TabControls[index])\r\n this.Root.SelectNode(this, this.controlData.TabControls[index]);\r\n\r\n e.cancelBubble = true;\r\n e.stopPropagation();\r\n },\r\n async addTab(e) {\r\n let s = await utils.schema.get('/schema/public/Platform.Schema.DynamicControls.v1/DynamicControl_BasicTab_TabItem');\r\n s = utils.schema.resolve_Of(s);\r\n const tabItem = utils.schema.getDefaultModel(s);\r\n tabItem.Title = 'Untitled';\r\n\r\n if (!this.controlData.TabControls)\r\n Vue.set(this.controlData, 'TabControls', []);\r\n\r\n this.controlData.TabControls.push(tabItem);\r\n this.tab_state.index = this.controlData.TabControls.length - 1;\r\n this.Root.SelectNode(this, tabItem);\r\n\r\n e.cancelBubble = true;\r\n e.stopPropagation();\r\n },\r\n deleteTab(e, index) {\r\n this.controlData.TabControls.splice(index, 1);\r\n if (this.tab_state.index >= this.controlData.TabControls.length) {\r\n this.tab_state.index = this.controlData.TabControls.length - 1;\r\n if (this.tab_state.index >= 0)\r\n this.Root.SelectNode(this, this.controlData.TabControls[this.tab_state.index]);\r\n }\r\n\r\n e.cancelBubble = true;\r\n e.stopPropagation();\r\n },\r\n addControl(e, target) {\r\n this.picker = ;\r\n this.pickervisible = true;\r\n e.cancelBubble = true;\r\n e.stopPropagation();\r\n },\r\n async confirmAddControl(id, title) {\r\n this.pickervisible = false;\r\n\r\n try {\r\n const schema_ = await utils.schema.get(id);\r\n const schema = utils.schema.resolve_Of(schema_)\r\n const model = utils.schema.getDefaultModel(schema);\r\n const selectedTab = this.controlData.TabControls[this.tab_state.index];\r\n if (!selectedTab.Controls)\r\n Vue.set(selectedTab, 'Controls', []);\r\n\r\n selectedTab.Controls.push(model);\r\n }\r\n catch (e) {\r\n alert(e);\r\n }\r\n },\r\n cancelAddControl() {\r\n this.pickervisible = false;\r\n },\r\n pickerInput(value) {\r\n this.pickervisible = value;\r\n },\r\n },\r\n props: {\r\n name: '',\r\n type: '',\r\n root: null,\r\n designmodel: null,\r\n parentType: '',\r\n controlData: {}\r\n },\r\n render(h) {\r\n if (!this.controlData)\r\n return null;\r\n\r\n let items = [];\r\n const general_tab_style = {\r\n float: \"left\",\r\n borderTop: \"1px solid black\",\r\n borderLeft: \"1px solid black\",\r\n borderRight: \"1px solid black\",\r\n borderRadius: \"5px 5px 0 0\",\r\n maxWidth: \"250px\",\r\n minWidth: \"50px\",\r\n padding: \"2px 5px 1px\"\r\n };\r\n\r\n const tabs = this.controlData.TabControls || [];\r\n for (let tabi = 0; tabi < tabs.length; tabi++) {\r\n const tab = tabs[tabi];\r\n if (!tab.$objectid)\r\n tab.$objectid = utils.generateUUID();\r\n\r\n const tab_style = {\r\n ...general_tab_style\r\n };\r\n\r\n let icon;\r\n if (tabi === this.tab_state.index) {\r\n tab_style.backgroundColor = \"silver\";\r\n tab_style.fontWeight = \"bold\";\r\n\r\n if (this.selected$)\r\n icon = (\r\n this.deleteTab(e, tabi)}>\r\n \r\n \r\n );\r\n }\r\n else {\r\n tab_style.backgroundColor = \"gray\";\r\n tab_style.color = \"silver\";\r\n }\r\n\r\n\r\n items.push(\r\n this.selectTab(e, tabi)}>\r\n {tab.Title}{icon}\r\n \r\n );\r\n }\r\n if (tabs.length === 0)\r\n items.push(\r\n \r\n Empty Tabs - Click + to add\r\n \r\n );\r\n\r\n if (this.selected$) {\r\n // Include an Add button to add a new tab\r\n const addtab = (\r\n \r\n this.addTab(e)} />\r\n \r\n );\r\n items.push(
{addtab}
);\r\n }\r\n\r\n const activetab = tabs[this.tab_state.index];\r\n const body = [];\r\n\r\n if (activetab && activetab.Controls)\r\n for (var i = 0; i < activetab.Controls.length; i++) {\r\n const control = activetab.Controls[i];\r\n let DynamicControl = utils.getDynamicComponent(h, control);\r\n\r\n const _k = i + '_' + control.ControlType + '_' + control.$objectId;\r\n\r\n if (!DynamicControl)\r\n DynamicControl = 'default-unknown';\r\n\r\n DynamicControl += '-dsgn';\r\n\r\n body.push(\r\n \r\n \r\n );\r\n }\r\n\r\n const style = {\r\n overflow: \"auto\",\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n minWidth: \"25px\",\r\n ...utils.getSize(this.controlData.SizeOptions, this.parentType, this.$parent),\r\n ...utils.getStyleHints(this.controlData.StyleHints),\r\n };\r\n\r\n if (this.selected$ && activetab)\r\n body.push(\r\n
\r\n {utils.generateTooltip(h,\r\n this.addControl(e, 'body')}>\r\n mdi mdi-plus-circle\r\n ,\r\n 'Add control to tab', 'right')}\r\n
\r\n );\r\n\r\n return (\r\n this.handleClick(e)}>\r\n
\r\n\r\n
\r\n {items}\r\n
\r\n\r\n {body}\r\n\r\n this.pickerInput(value)}>\r\n {this.picker}\r\n \r\n \r\n );\r\n }\r\n});","import Vue from 'vue';\r\nimport HorizontalStack from './HorizontalStack.jsx';\r\nimport VerticalStack from './VerticalStack.jsx';\r\nimport BasicButton from './BasicButton.jsx';\r\nimport Text from './Text.jsx';\r\nimport Icon from './Icon.jsx';\r\n//import SelectList from './SelectList.jsx';\r\nimport BasicForm from './BasicForm.jsx';\r\nimport BasicGrid from './BasicGrid.jsx';\r\nimport TreeView from './TreeView.jsx';\r\nimport DefaultUnknown from './DefaultUnknown.jsx';\r\nimport utils from '../../../Shared/utils.jsx';\r\nimport methods from '../../../Shared/methods';\r\n\r\nfunction flatMap(arr, mapFunc) {\r\n const result = [];\r\n for (const [index, elem] of arr.entries()) {\r\n const x = mapFunc(elem, index, arr);\r\n // We allow mapFunc() to return non-Arrays\r\n if (Array.isArray(x)) {\r\n result.push(...x);\r\n } else {\r\n result.push(x);\r\n }\r\n }\r\n return result;\r\n}\r\nfunction getMenus(menu)\r\n{\r\n let items = [menu.element];\r\n for (let i = 0; i < menu.children.length; i++)\r\n items = [...items, ...getMenus(menu.children[i])];\r\n\r\n return items;\r\n}\r\nfunction findParentMenu(parent, path)\r\n{\r\n let targetname = path;\r\n if (path.includes('::'))\r\n targetname = path.split('::')[0];\r\n\r\n const menu = parent.find(m => m.name === targetname);\r\n if (!menu)\r\n return null;\r\n\r\n if (path.includes('::')) {\r\n const index = path.indexOf('::');\r\n targetname = path.substr(index + 2);\r\n return findParentMenu(menu.children, targetname);\r\n }\r\n return menu;\r\n}\r\nfunction addPlusButton(h, context, level, menus) {\r\n for (let i = 0; i < menus.length; i++) {\r\n const menu = menus[i];\r\n if (menu.children.length > 0) {\r\n const lastchild = menu.children[menu.children.length - 1];\r\n let lastindex = \"0\";\r\n let menupath = \"\";\r\n if (lastchild.menu) {\r\n lastindex = lastchild.menu.Index;\r\n menupath = lastchild.menu.MenuPath;\r\n }\r\n\r\n const next_index = parseInt(lastindex) + 1;\r\n\r\n menu.children.push({\r\n menu: null,\r\n name: '',\r\n element: (\r\n \r\n \r\n \r\n context.addChildMenuItem(e, next_index, menupath)}>\r\n \r\n \r\n \r\n ),\r\n children: [],\r\n });\r\n\r\n addPlusButton(h, context, level + 1, menu.children);\r\n }\r\n else if (menu.menu && (!menu.menu.MenuItemData.ControlData || !menu.menu.MenuItemData.ControlData.Controls || menu.menu.MenuItemData.ControlData.Controls.length == 0)) {\r\n // This is a top-level menu with no body, we will assume it is for child menus and add a plus, if not, when they add a body, this will disappear.\r\n let menupath = menu.menu.MenuPath || '';\r\n if (menupath) menupath += '::';\r\n menupath += menu.menu.MenuItemData.Title;\r\n\r\n const next_index = menu.menu.Index + \"1\";\r\n\r\n menu.children.push({\r\n menu: null,\r\n name: '',\r\n element: (\r\n \r\n \r\n \r\n context.addChildMenuItem(e, next_index, menupath)}>\r\n \r\n \r\n \r\n ),\r\n children: [],\r\n });\r\n }\r\n }\r\n}\r\nfunction getPreviousTopMenu(index, childMenus) {\r\n index--;\r\n while (index >= 0)\r\n {\r\n const menu = childMenus[index];\r\n if (!menu.MenuPath) return menu;\r\n index--;\r\n }\r\n return null;\r\n}\r\nfunction getNextTopMenu(index, childMenus) {\r\n index++;\r\n while (index < childMenus.length) {\r\n const menu = childMenus[index];\r\n if (!menu.MenuPath) return menu;\r\n index++;\r\n }\r\n return null;\r\n}\r\nfunction getPreviousChildMenu(menuPath, index, childMenus) {\r\n // Scan childMenus looking for the same MenuPath, find the one just before the one with the specified index\r\n let menu;\r\n for (let i = 0; i < childMenus.length; i++) {\r\n if (childMenus[i].MenuPath == menuPath) {\r\n if (childMenus[i].Index == index && menu) return menu;\r\n menu = childMenus[i];\r\n }\r\n }\r\n return null;\r\n}\r\nfunction getNextChildMenu(menuPath, index, childMenus) {\r\n // Scan childMenus looking for the same MenuPath, find the one just after the one with the specified index\r\n let menu;\r\n for (let i = 0; i < childMenus.length; i++) {\r\n if (childMenus[i].MenuPath == menuPath) {\r\n if (childMenus[i].Index == index && !menu)\r\n menu = childMenus[i];\r\n else if (menu)\r\n return childMenus[i];\r\n }\r\n }\r\n return null;\r\n}\r\n\r\nVue.component('carecenter-popupmenu-dsgn', {\r\n data: function () {\r\n return {\r\n childMenus: null,\r\n deleteEnabled: false,\r\n }\r\n },\r\n created() {\r\n if (this.designmodel && this.designmodel._id)\r\n this.$watch('designmodel._id', function (val, oldval) {\r\n if ((!this.controlData || !this.controlData.Controls || this.controlData.Controls.length === 0) && this.designmodel.MenuItemData.ChildMenuType)\r\n this.RefreshChildMenus();\r\n else\r\n this.childMenus = null;\r\n });\r\n },\r\n computed: {\r\n Root: function () {\r\n return this.root._self;\r\n },\r\n selected$: function () {\r\n return this.Root.SelectedNode && this.Root.SelectedModel == this.designmodel;\r\n }\r\n },\r\n mounted() {\r\n if ((!this.controlData || !this.controlData.Controls || this.controlData.Controls.length === 0) && this.designmodel.MenuItemData.ChildMenuType)\r\n this.RefreshChildMenus();\r\n else\r\n this.childMenus = null;\r\n\r\n },\r\n methods: {\r\n ...methods,\r\n handleClick(e) {\r\n this.Root.SelectNode(this);\r\n e.cancelBubble = true;\r\n e.stopPropagation();\r\n },\r\n DesignModel: function () {\r\n return this.designmodel;\r\n },\r\n async RefreshChildMenus() {\r\n switch (this.designmodel.MenuItemData.ChildMenuType) {\r\n case 'MenuName':\r\n this.childMenus = await utils.api.get('Apps/MenuItems/ListAll/' + this.designmodel.MenuItemData.ChildMenuName);\r\n break;\r\n\r\n case 'URL':\r\n this.childMenus = await utils.api.get(this.designmodel.MenuItemData.ChildMenuURL);\r\n break;\r\n\r\n default:\r\n return;\r\n }\r\n this.childMenus.sort((a, b) => a.Index - b.Index);\r\n },\r\n jumpToMenu(e, menu) {\r\n this.childMenus = null;\r\n this.Root.ExternalNavigate('Apps/UI/MenuItem/' + menu._id);\r\n\r\n e.cancelBubble = true;\r\n e.stopPropagation();\r\n },\r\n addChildMenuItem(e, index, path) {\r\n this.childMenus = null;\r\n let url = 'Apps/SchemaBootstrap/NewEmptyDocument/MenuChild';\r\n url += '?MenuName=' + this.designmodel.MenuItemData.ChildMenuName;\r\n url += '&MenuIndex=' + index;\r\n url += '&MenuPath=' + (path || '');\r\n url += '&uuid=' + utils.generateUUID(); // Causes the URL to be unique to insure the Vue engine will re-render\r\n\r\n this.Root.ExternalNavigate(url);\r\n\r\n e.cancelBubble = true;\r\n e.stopPropagation();\r\n },\r\n async swapMenuIndexes(e, menu1, menu2) {\r\n const url = 'Apps/UI/SwapMenuItemIndexes/' + menu1._id + '/' + menu2._id;\r\n const res = await utils.api.get(url);\r\n if (res.Menu1.Success.Success && res.Menu2.Success.Success)\r\n this.RefreshChildMenus();\r\n else\r\n alert(JSON.stringify(res, null, 4));\r\n },\r\n async deleteMenu(e, menu) {\r\n const url = 'Apps/UI/MenuItem/' + menu._id;\r\n const res = await utils.api.request('DELETE', url);\r\n if (res === true)\r\n this.RefreshChildMenus();\r\n else\r\n alert(JSON.stringify(res, null, 4));\r\n }\r\n },\r\n props: {\r\n name: '',\r\n root: null,\r\n designmodel: null,\r\n controlData: {}\r\n },\r\n render(h) {\r\n let icontitle;\r\n if (this.designmodel.MenuItemData.Icon)\r\n icontitle = (\r\n \r\n {this.designmodel.MenuItemData.Title}\r\n \r\n );\r\n else\r\n icontitle = (\r\n \r\n {this.designmodel.MenuItemData.Title}\r\n \r\n );\r\n\r\n if (!this.controlData || !this.controlData.Actions)\r\n return null;\r\n\r\n let items = [];\r\n for (let i = 0; i < this.controlData.Actions.length; i++)\r\n {\r\n const action = this.controlData.Actions[i];\r\n let DynamicAction = utils.getDynamicAction(action);\r\n\r\n if (!DynamicAction)\r\n DynamicAction = 'default-unknown';\r\n\r\n DynamicAction += '-dsgn';\r\n\r\n items.push(\r\n \r\n \r\n );\r\n }\r\n return (\r\n this.handleClick(e)}>\r\n
\r\n {icontitle}\r\n {this.name}
\r\n {items}\r\n \r\n );\r\n }\r\n});","import Vue from 'vue';\r\nimport HorizontalStack from './HorizontalStack.jsx';\r\nimport VerticalStack from './VerticalStack.jsx';\r\nimport BasicButton from './BasicButton.jsx';\r\nimport Text from './Text.jsx';\r\nimport Icon from './Icon.jsx';\r\n//import SelectList from './SelectList.jsx';\r\nimport BasicForm from './BasicForm.jsx';\r\nimport BasicGrid from './BasicGrid.jsx';\r\nimport TreeView from './TreeView.jsx';\r\nimport DefaultUnknown from './DefaultUnknown.jsx';\r\nimport utils from '../../../Shared/utils.jsx';\r\nimport methods from '../../../Shared/methods';\r\n\r\nVue.component('control-container-dsgn', {\r\n data: function () {\r\n return {\r\n }\r\n },\r\n computed: {\r\n Root: function () {\r\n return this.root._self;\r\n },\r\n selected$: function () {\r\n return this.Root.SelectedNode && this.Root.SelectedModel == this.designmodel;\r\n }\r\n },\r\n methods: {\r\n ...methods,\r\n handleClick(e) {\r\n this.Root.SelectNode(this);\r\n e.cancelBubble = true;\r\n e.stopPropagation();\r\n },\r\n DesignModel: function () {\r\n return this.designmodel;\r\n },\r\n },\r\n props: {\r\n name: '',\r\n root: null,\r\n designmodel: null,\r\n controlData: {}\r\n },\r\n render(h) {\r\n if (!this.controlData.Controls)\r\n return
;\r\n\r\n let items = [];\r\n for (var i = 0; i < this.controlData.Controls.length; i++)\r\n {\r\n const control = this.controlData.Controls[i];\r\n let DynamicControl = utils.getDynamicComponent(h, control);\r\n\r\n if (!DynamicControl)\r\n DynamicControl = 'default-unknown';\r\n\r\n DynamicControl += '-dsgn';\r\n\r\n items.push(\r\n \r\n \r\n );\r\n }\r\n return (\r\n this.handleClick(e)}>\r\n
\r\n {this.name}
\r\n {items}\r\n \r\n );\r\n }\r\n});","import Vue from 'vue';\r\nimport utils from '../../../Shared/utils.jsx';\r\nimport methods from '../../../Shared/methods';\r\n\r\nVue.component('control-designer-dsgn', {\r\n data: function () {\r\n return {\r\n }\r\n },\r\n computed: {\r\n Root: function () {\r\n return this.root._self;\r\n },\r\n selected$: function () {\r\n return this.Root.SelectedNode && this.Root.SelectedModel == this.designmodel;\r\n }\r\n },\r\n methods: {\r\n ...methods,\r\n handleClick(e) {\r\n this.Root.SelectNode(this);\r\n e.cancelBubble = true;\r\n e.stopPropagation();\r\n },\r\n DesignModel: function () {\r\n return this.designmodel;\r\n },\r\n },\r\n props: {\r\n name: '',\r\n root: null,\r\n designmodel: null,\r\n parentType: '',\r\n controlData: {}\r\n },\r\n render(h) {\r\n const publicChkbx = ;\r\n const nameInput = ;\r\n const save = ;\r\n const savenew = ;\r\n const navup =
;\r\n\r\n const style = {\r\n backgroundColor: \"#a0ffa0\",\r\n overflow: \"auto\",\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n ...utils.getSize(this.controlData.SizeOptions, this.parentType, this.$parent),\r\n };\r\n\r\n return (\r\n this.handleClick(e)}>\r\n
\r\n Public: {publicChkbx} Name: {nameInput} {save} {savenew} {navup}\r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n\r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n \r\n );\r\n }\r\n});","import Vue from 'vue';\r\nimport utils from '../../../../Shared/utils.jsx';\r\nimport methods from '../../../../Shared/methods';\r\n\r\nVue.component('display-basic-modal-dsgn', {\r\n data: function () {\r\n return {\r\n }\r\n },\r\n computed: {\r\n Root: function () {\r\n return this.root._self;\r\n },\r\n Vars: function () {\r\n if (!this.controlData.Vars)\r\n Vue.set(this.controlData, 'Vars', {});\r\n\r\n return this.controlData.Vars;\r\n },\r\n DesignModel: function () {\r\n return this.designmodel;\r\n },\r\n selected$: function () {\r\n return this.Root.SelectedNode && this.Root.SelectedModel == this.designmodel;\r\n },\r\n },\r\n methods: {\r\n ...methods,\r\n handleClick(e) {\r\n this.Root.SelectNode(this);\r\n e.cancelBubble = true;\r\n e.stopPropagation();\r\n },\r\n },\r\n props: {\r\n name: '',\r\n root: null,\r\n designmodel: null,\r\n parentType: '',\r\n controlData: {}\r\n },\r\n render(h) {\r\n const style = {\r\n overflow: \"auto\",\r\n width: \"500px\",\r\n borderRadius: \"10px\",\r\n borderStyle: \"solid\",\r\n borderColor: \"gray\",\r\n padding: \"10px\",\r\n margin: \"10px\",\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n };\r\n\r\n const container = (\r\n \r\n \r\n );\r\n\r\n const footer = (\r\n \r\n \r\n );\r\n\r\n return (\r\n this.handleClick(e)}>\r\n
\r\n {this.controlData.Title}\r\n {container}\r\n
\r\n {footer}\r\n \r\n );\r\n }\r\n});","import Vue from 'vue';\r\nimport utils from '../../../Shared/utils.jsx';\r\nimport BaseComponent from './BaseComponentMixin.jsx';\r\n\r\nVue.component('document-bootstrap-dsgn', {\r\n mixins: [BaseComponent],\r\n data: function () {\r\n return {\r\n }\r\n },\r\n render(h) {\r\n let name;\r\n if (!this.name)\r\n name = this.type;\r\n else\r\n name = this.name + ':' + this.type || 'Unnamed';\r\n\r\n return (\r\n this.handleClick(e)}>\r\n
\r\n {name}
\r\n \r\n );\r\n }\r\n});","import Vue from 'vue';\r\nimport utils from '../../../Shared/utils.jsx';\r\nimport BaseComponent from './BaseComponentMixin.jsx';\r\n\r\nVue.component('dropdown-list-dsgn', {\r\n mixins: [BaseComponent],\r\n data: function () {\r\n return {\r\n Value: null,\r\n items: [],\r\n }\r\n },\r\n created() {\r\n },\r\n computed: {\r\n },\r\n mounted() {\r\n this.Refresh();\r\n },\r\n methods: {\r\n async Refresh() {\r\n },\r\n },\r\n props: {\r\n },\r\n render(h) {\r\n const style = {\r\n ...utils.getSize(this.controlData.SizeOptions, this.parentType, this.$parent),\r\n ...utils.getStyleHints(this.controlData.StyleHints, this),\r\n overflow: \"hidden\",\r\n whiteSpace: \"nowrap\",\r\n display: \"inline-block\",\r\n minWidth: \"300px\",\r\n };\r\n\r\n const fields = this.controlData.FieldMappings;\r\n\r\n let select = (\r\n \r\n \r\n );\r\n\r\n if (this.label)\r\n select = {this.controlData.Label} {select};\r\n\r\n return (\r\n this.handleClick(e)}>\r\n
\r\n {select}\r\n \r\n );\r\n }\r\n});","import Vue from 'vue';\r\nimport utils from '../../../Shared/utils.jsx';\r\nimport BaseComponent from './BaseComponentMixin.jsx';\r\n\r\nVue.component('dynamic-control-container-dsgn', {\r\n mixins: [BaseComponent],\r\n data: function () {\r\n return {\r\n }\r\n },\r\n render(h) {\r\n let name;\r\n if (!this.name)\r\n name = this.type;\r\n else\r\n name = this.name + ':' + this.type || 'Unnamed';\r\n\r\n const style = {\r\n paddingRight: \"4px\",\r\n paddingBottom: \"4px\",\r\n ...utils.getSize(this.controlData ? this.controlData.SizeOptions : null, this.parentType, this.$parent)\r\n };\r\n//
\r\n\r\n return (\r\n this.handleClick(e)}>\r\n\r\n \r\n
\r\n {name}
\r\n mdi mdi-puzzle-edit\r\n
\r\n \r\n );\r\n }\r\n});","import Vue from 'vue';\r\nimport utils from '../../../Shared/utils.jsx';\r\nimport methods from '../../../Shared/methods';\r\nimport BaseStackMixin from './BaseStackMixin.jsx';\r\nimport BaseComponent from './BaseComponentMixin.jsx';\r\n\r\nVue.component('dynamic-menu-list-dsgn', {\r\n mixins: [BaseComponent],\r\n data: function () {\r\n return {\r\n tab_state: {\r\n index: 0\r\n },\r\n model: [\r\n {\r\n name: 'Sample 1',\r\n icon: 'mdi mdi-cog',\r\n tooltip: 'A sample',\r\n item_data: {\r\n MenuItemData: {\r\n Badge: {\r\n CountURL: '123',\r\n ToolTip: 'Badge Tooltip',\r\n }\r\n }\r\n }\r\n },\r\n {\r\n name: 'Sample 2',\r\n icon: 'mdi mdi-cogs',\r\n tooltip: 'A sample 2',\r\n item_data: {\r\n MenuItemData: {\r\n Badge: null\r\n }\r\n }\r\n }\r\n ],\r\n }\r\n },\r\n async created() {\r\n if (this.controlData.SourceType === 'Raw' && this.controlData.SourceRaw) {\r\n if (Array.isArray(this.controlData.SourceRaw))\r\n this.model = this.controlData.SourceRaw;\r\n }\r\n },\r\n computed: {\r\n },\r\n render(h) {\r\n if (!this.controlData)\r\n return null;\r\n\r\n const style = {\r\n minWidth: \"25px\",\r\n ...utils.getSize(this.controlData.SizeOptions, this.parentType, this.$parent),\r\n ...utils.getStyleHints(this.controlData.StyleHints),\r\n };\r\n\r\n let title;\r\n if (this.controlData.MenuTitle)\r\n title = (\r\n \r\n {this.controlData.MenuTitle}\r\n \r\n );\r\n\r\n const scopedSlots = {\r\n label: ({ item }) => {\r\n let title;\r\n if (item.icon)\r\n title = {item.icon} {item.name};\r\n else\r\n title = {item.name};\r\n\r\n if (item.item_data.MenuItemData) {\r\n const badgeinfo = item.item_data.MenuItemData.Badge;\r\n if (badgeinfo) {\r\n title = {title};\r\n }\r\n }\r\n return title;\r\n }\r\n };\r\n\r\n const tv = h('v-treeview', {\r\n props: {\r\n activatable: true,\r\n hoverable: true,\r\n transition: true,\r\n openOnClick: true,\r\n dense: true,\r\n class: 'ma-1',\r\n items: this.model || [],\r\n active: this.selected_values,\r\n },\r\n scopedSlots: scopedSlots,\r\n });\r\n\r\n return (\r\n this.handleClick(e)}>\r\n
\r\n\r\n \r\n {title}\r\n\r\n {tv}\r\n \r\n \r\n );\r\n }\r\n});","import Vue from 'vue';\r\nimport utils from '../../../Shared/utils.jsx';\r\nimport methods from '../../../Shared/methods';\r\n\r\nVue.component('dynamic-tab-dsgn', {\r\n data: function () {\r\n return {\r\n tab_state: {\r\n index: 0\r\n },\r\n }\r\n },\r\n created() {\r\n },\r\n computed: {\r\n Root: function () {\r\n return this.root._self;\r\n },\r\n DesignModel: function () {\r\n return this.designmodel;\r\n },\r\n selected$: function () {\r\n let anytabs = false;\r\n if (this.controlData && this.controlData.TabControls)\r\n for (let i = 0; i < this.controlData.TabControls.length; i++)\r\n if (this.Root.SelectedModel == this.controlData.TabControls[i]) {\r\n anytabs = true;\r\n break;\r\n }\r\n\r\n return this.Root.SelectedNode && (this.Root.SelectedModel == this.designmodel || anytabs);\r\n },\r\n },\r\n methods: {\r\n ...methods,\r\n handleClick(e) {\r\n this.Root.SelectNode(this);\r\n e.cancelBubble = true;\r\n e.stopPropagation();\r\n },\r\n },\r\n props: {\r\n name: '',\r\n type: '',\r\n root: null,\r\n designmodel: null,\r\n parentType: '',\r\n controlData: {}\r\n },\r\n render(h) {\r\n if (!this.controlData)\r\n return null;\r\n\r\n const general_tab_style = {\r\n float: \"left\",\r\n borderTop: \"1px solid black\",\r\n borderLeft: \"1px solid black\",\r\n borderRight: \"1px solid black\",\r\n borderRadius: \"5px 5px 0 0\",\r\n maxWidth: \"250px\",\r\n minWidth: \"50px\",\r\n padding: \"2px 5px 1px\",\r\n backgroundColor: \"gray\",\r\n color: \"silver\",\r\n };\r\n\r\n const style = {\r\n overflow: \"auto\",\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n minWidth: \"25px\",\r\n ...utils.getSize(this.controlData.SizeOptions, this.parentType, this.$parent),\r\n ...utils.getStyleHints(this.controlData.StyleHints),\r\n };\r\n\r\n return (\r\n this.handleClick(e)}>\r\n
\r\n\r\n
\r\n
\r\n Dynamic Tab\r\n
\r\n
\r\n \r\n );\r\n }\r\n});","import Vue from 'vue';\r\nimport utils from '../../../Shared/utils.jsx';\r\nimport methods from '../../../Shared/methods';\r\nimport BaseStackMixin from './BaseStackMixin.jsx';\r\n\r\nVue.component('dynamic-tab-content-dsgn', {\r\n mixins: [BaseStackMixin],\r\n data: function () {\r\n return {\r\n tab_state: {\r\n index: 0\r\n },\r\n }\r\n },\r\n render(h) {\r\n let items = [];\r\n let items_id = '_0';\r\n\r\n let controlData = this.controlData;\r\n\r\n this.generateItemsFromModel(h, items, controlData, items_id, 'VerticalStack');\r\n\r\n if (this.selected$)\r\n items.push(\r\n this.addControl(e, 'body')}>\r\n mdi mdi-plus-circle\r\n \r\n );\r\n\r\n const style = {\r\n overflow: \"auto\",\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n minWidth: \"25px\",\r\n ...utils.getSize(controlData.SizeOptions, this.parentType, this.$parent),\r\n ...utils.getStyleHints(controlData.StyleHints),\r\n };\r\n\r\n return (\r\n this.handleClick(e)}>\r\n
\r\n\r\n {items}\r\n\r\n {this.generatePicker(h)}\r\n \r\n );\r\n }\r\n});","import Vue from 'vue';\r\nimport BaseComponent from './BaseComponentMixin.jsx';\r\nimport utils from '../../../Shared/utils.jsx';\r\n\r\nVue.component('dynamic-tree-dsgn', {\r\n mixins: [BaseComponent],\r\n data: function () {\r\n return {\r\n model: [],\r\n }\r\n },\r\n async created() {\r\n if (this.controlData.SourceType === 'Raw' && this.controlData.SourceRaw) {\r\n this.model = this.controlData.SourceRaw || this.dummyData;\r\n }\r\n else if (this.controlData.SourceType === 'Url' && this.controlData.SourceUrl) {\r\n if (this.controlData.SourceUrl.includes('{'))\r\n this.model = this.dummyData;\r\n else\r\n this.model = (await utils.api.get(this.controlData.SourceUrl)) || this.dummyData;\r\n }\r\n },\r\n computed: {\r\n dummyData: function () {\r\n const dummydata = [];\r\n\r\n let dummykey = 'id';\r\n let dummytext = 'name';\r\n let dummychildren = 'children';\r\n\r\n if (this.controlData.ItemKey) dummykey = this.controlData.ItemKey;\r\n if (this.controlData.ItemText) dummytext = this.controlData.ItemText;\r\n if (this.controlData.ItemChildren) dummychildren = this.controlData.ItemChildren;\r\n\r\n dummydata.push({\r\n [dummykey]: 'Item0',\r\n [dummytext]: 'Value0',\r\n [dummychildren]: [{\r\n [dummykey]: 'ChildItem0',\r\n [dummytext]: 'ChildValue0',\r\n }],\r\n\r\n [dummykey]: 'Item1',\r\n [dummytext]: 'Value1',\r\n [dummychildren]: [{\r\n [dummykey]: 'ChildItem1',\r\n [dummytext]: 'ChildValue1',\r\n }],\r\n });\r\n return dummydata;\r\n },\r\n },\r\n methods: {\r\n },\r\n render(h) {\r\n try {\r\n const style = {\r\n ...utils.getStyleHints(this.controlData.StyleHints),\r\n ...utils.getSize(this.controlData.SizeOptions, this.parentType, this.$parent),\r\n minWidth: \"25px\",\r\n overflow: \"auto\",\r\n };\r\n\r\n const scopedSlots = {};\r\n\r\n const props = {\r\n activatable: true,\r\n hoverable: true,\r\n transition: true,\r\n openOnClick: true,\r\n dense: true,\r\n class: 'ma-1',\r\n items: this.model || this.dummyData,\r\n active: this.selected_values,\r\n };\r\n\r\n if (this.controlData.ItemText) props.itemText = this.controlData.ItemText;\r\n if (this.controlData.ItemKey) props.itemKey = this.controlData.ItemKey;\r\n if (this.controlData.ItemDisabled) props.itemDisabled = this.controlData.ItemDisabled;\r\n if (this.controlData.ItemChildren) props.itemChildren = this.controlData.ItemChildren;\r\n\r\n // JSX cannot handle an event with a colon in the middle (update:active) so I have to declare this manually:\r\n const tv = h('v-treeview', {\r\n props: props,\r\n scopedSlots: scopedSlots,\r\n });\r\n\r\n return (\r\n this.handleClick(e)}\r\n style={style}>\r\n
\r\n {tv}\r\n \r\n );\r\n }\r\n catch (e) {\r\n utils.error('DynamicTreeDsgn Render failed', e);\r\n return
DynamicTreeDsgn Failed to Render {e}
;\r\n }\r\n }\r\n});","import Vue from 'vue';\r\nimport utils from '../../../Shared/utils.jsx';\r\nimport BaseComponentMixin from './BaseComponentMixin.jsx';\r\n\r\nVue.component('for-each-dsgn', {\r\n mixins: [BaseComponentMixin],\r\n data: function () {\r\n return {\r\n model: [],\r\n sourceraw: null,\r\n sourceurl: null,\r\n\r\n pickervisible: false,\r\n picker: null,\r\n pickertarget: 'body',\r\n }\r\n },\r\n created() {\r\n\r\n },\r\n destroyed() {\r\n },\r\n computed: {\r\n style() {\r\n return {};\r\n },\r\n },\r\n //Replaced with preRenderComplete\r\n mounted() {\r\n this.Refresh();\r\n },\r\n methods: {\r\n async Refresh() {\r\n if (this.controlData.SourceType === 'Raw' && this.controlData.SourceRaw && (typeof this.controlData.SourceRaw === 'object')) {\r\n this.model = this.controlData.SourceRaw;\r\n }\r\n else if (this.controlData.SourceType === 'Url' && this.controlData.SourceUrl) {\r\n try {\r\n this.model = await utils.api.get(this.controlData.SourceUrl);\r\n }\r\n catch\r\n {\r\n this.model = [];\r\n }\r\n }\r\n },\r\n generateItems(h, contentDefs, items, model, index, parentType) {\r\n for (let j = 0; j < contentDefs.length; j++) {\r\n const cd = contentDefs[j];\r\n\r\n if (cd && cd.Controls)\r\n for (let i = 0; i < cd.Controls.length; i++) {\r\n const c = cd.Controls[i];\r\n if (!(typeof c === 'object'))\r\n continue;\r\n\r\n let DynamicControl = utils.getDynamicComponent(h, c);\r\n\r\n if (!DynamicControl)\r\n DynamicControl = 'default-unknown';\r\n\r\n DynamicControl += '-dsgn';\r\n\r\n if (!c.$objectId) c.$objectId = utils.generateUUID();\r\n\r\n let id = `${this.master_key}_${c.$objectId}`;\r\n if (index) id = `${index}_${id}`;\r\n\r\n items.push(\r\n \r\n \r\n );\r\n }\r\n\r\n if (this.selected$ && cd)\r\n items.push(\r\n this.addControl(e, cd)}>\r\n mdi mdi-plus-circle\r\n \r\n );\r\n }\r\n },\r\n addContent(e) {\r\n if (!this.controlData.ContentDefs)\r\n Vue.set(this.controlData, 'ContentDefs', []);\r\n\r\n this.controlData.ContentDefs.push({\r\n $typeSchema: \"/schema/public/Platform.Schema.DynamicControls.v1/DynamicControl_ForEach_ContentDef\",\r\n Controls: [],\r\n });\r\n },\r\n addControl(e, target) {\r\n this.pickertarget = target;\r\n this.picker = ;\r\n this.pickervisible = true;\r\n e.cancelBubble = true;\r\n e.stopPropagation();\r\n },\r\n async confirmAddControl(id, title) {\r\n this.pickervisible = false;\r\n\r\n try {\r\n const schema_ = await utils.schema.get(id);\r\n const schema = utils.schema.resolve_Of(schema_)\r\n const model = utils.schema.getDefaultModel(schema);\r\n\r\n if (!this.pickertarget.Controls)\r\n Vue.set(this.pickertarget, 'Controls', []);\r\n\r\n this.pickertarget.Controls.push(model);\r\n }\r\n catch (e) {\r\n alert(e);\r\n }\r\n },\r\n cancelAddControl() {\r\n this.pickervisible = false;\r\n },\r\n pickerInput(value) {\r\n this.pickervisible = value;\r\n },\r\n generatePicker(h) {\r\n return (\r\n this.pickerInput(value)}>\r\n {this.picker}\r\n \r\n );\r\n },\r\n },\r\n props: {\r\n type: null,\r\n parentType: null,\r\n },\r\n render(h) {\r\n try {\r\n let items = [];\r\n let items_id = '_0';\r\n\r\n if (this.model && typeof this.model === 'object' && this.controlData.ContentDefs) {\r\n if (Array.isArray(this.model) && this.model.length > 0)\r\n for (let i = 0; i < this.model.length; i++) {\r\n const item = this.model[i];\r\n const item_index = `${i}_${items_id}`;\r\n const sub_items = [];\r\n this.generateItems(h, this.controlData.ContentDefs, sub_items, item, item_index, this.parentType);\r\n\r\n items.push(
{sub_items}
);\r\n }\r\n else if (Object.keys(this.model).length > 0)\r\n for (let key in this.model) {\r\n const item = this.model[key];\r\n const item_index = `${key}_${items_id}`;\r\n const sub_items = [];\r\n this.generateItems(h, this.controlData.ContentDefs, sub_items, item, item_index, this.parentType);\r\n\r\n items.push(
{sub_items}
);\r\n }\r\n else {\r\n const sub_items = [];\r\n this.generateItems(h, this.controlData.ContentDefs, sub_items, null, '0', this.parentType);\r\n\r\n items.push(
{sub_items}
);\r\n }\r\n }\r\n else if (this.controlData.ContentDefs) {\r\n const sub_items = [];\r\n this.generateItems(h, this.controlData.ContentDefs, sub_items, null, '0', this.parentType);\r\n\r\n items.push(
{sub_items}
);\r\n }\r\n\r\n if (this.selected$)\r\n items.push(\r\n this.addContent(e)}>\r\n mdi mdi-plus-circle\r\n \r\n );\r\n\r\n const style = {\r\n overflow: this.parentType == \"ContentDef\" ? \"hidden\" : \"auto\",\r\n display: \"flex\",\r\n flexDirection: this.controlData.UseFlexRow ? \"row\" : \"column\",\r\n ...this.sizeStyle,\r\n ...utils.getStyleHints(this.controlData.StyleHints),\r\n };\r\n\r\n //if (this.sizeOptions && this.sizeOptions.Width.Mode === 'Auto' && this.parentType === 'VerticalStack') {\r\n // // In this unique case, we must use the opposite direction on the parent and embed another div\r\n // // to force the 'auto' width -- otherwise, \r\n // style.flexDirection = 'column';\r\n\r\n // items = (\r\n //
\r\n // {items}\r\n //
\r\n // );\r\n //}\r\n\r\n return (\r\n this.handleClick(e)}>\r\n
\r\n {items}\r\n {this.generatePicker(h)}\r\n \r\n );\r\n }\r\n catch(e) {\r\n utils.error('ForEach Render failed', e);\r\n return
ForEach Failed to Render {e}
;\r\n }\r\n }\r\n});","import Vue from 'vue';\r\nimport utils from '../../../Shared/utils.jsx';\r\nimport methods from '../../../Shared/methods';\r\n\r\nVue.component('table-cell-dsgn', {\r\n data: () => ({\r\n\r\n }),\r\n props: {\r\n root: null,\r\n schema: null,\r\n model: null,\r\n columnDef: null,\r\n selected$: false,\r\n firstrow: false,\r\n addControl: null,\r\n },\r\n computed: {\r\n Root: function () {\r\n return this.root._self;\r\n },\r\n selectedmodel$: function () {\r\n return this.Root.SelectedModel && this.Root.SelectedModel == this.columnDef;\r\n },\r\n },\r\n methods: {\r\n addContent(e, content) {\r\n this.addControl(content);\r\n e.cancelBubble = true;\r\n e.stopPropagation();\r\n },\r\n addContentDef(e) {\r\n if (!this.columnDef.ContentDefs)\r\n Vue.set(this.columnDef, 'ContentDefs', []);\r\n\r\n this.columnDef.ContentDefs.push({\r\n $typeSchema: '/schema/public/Platform.Schema.DynamicControls.v1/DynamicControl_Grid_ContentDef',\r\n $objectId: utils.generateUUID(),\r\n Controls: [],\r\n });\r\n e.cancelBubble = true;\r\n e.stopPropagation();\r\n }\r\n },\r\n render() {\r\n const cdef = this.columnDef;\r\n if (!cdef) return null;\r\n\r\n try {\r\n if (cdef.ContentDefs && cdef.ContentDefs.length >= 0) {\r\n const elements = [];\r\n for (let i = 0; i < cdef.ContentDefs.length; i++) {\r\n const content = cdef.ContentDefs[i];\r\n if (!content.Controls) continue;\r\n\r\n for (let j = 0; j < content.Controls.length; j++) {\r\n const control = content.Controls[j];\r\n\r\n let DynamicControl = utils.getDynamicComponent(h, control);\r\n if (!DynamicControl) {\r\n elements.push(Control type of {control.ControlType} is unknown);\r\n continue;\r\n }\r\n DynamicControl += '-dsgn';\r\n\r\n elements.push(\r\n \r\n \r\n );\r\n }\r\n\r\n if (this.firstrow && this.selected$ && this.selectedmodel$)\r\n elements.push(\r\n
\r\n \r\n this.addContent(e, content)}>\r\n mdi mdi-plus-circle\r\n \r\n Add control to column def #{i + 1}\r\n \r\n
\r\n );\r\n }\r\n\r\n if (this.firstrow && this.selected$ && this.selectedmodel$)\r\n elements.push(\r\n
\r\n \r\n this.addContentDef(e)}>\r\n mdi mdi-plus-circle\r\n \r\n Add column def\r\n \r\n
\r\n );\r\n\r\n return (\r\n \r\n
\r\n {elements}\r\n
\r\n \r\n );\r\n }\r\n else if (cdef.Field && (cdef.Field in this.model)) {\r\n const cell = this.model[cdef.Field];\r\n let text;\r\n if (cell === null || typeof cell === 'undefined')\r\n text = '';\r\n else if (typeof cell === 'string')\r\n text = cell;\r\n else if (typeof cell === 'boolean')\r\n text = cell ? 'true' : 'false';\r\n else if (typeof cell === 'number' || typeof cell === 'integer')\r\n text = cell;\r\n else\r\n text = JSON.stringify(cell);\r\n\r\n let addcdef;\r\n if (this.firstrow && this.selected$ && this.selectedmodel$)\r\n addcdef = (\r\n
\r\n \r\n this.addContentDef(e)}>\r\n mdi mdi-plus-circle\r\n \r\n Add column def\r\n \r\n
\r\n );\r\n\r\n return (\r\n \r\n {text} {addcdef}\r\n \r\n );\r\n }\r\n else {\r\n let addcdef;\r\n if (this.firstrow && this.selected$ && this.selectedmodel$)\r\n addcdef = (\r\n
\r\n \r\n this.addContentDef(e)}>\r\n mdi mdi-plus-circle\r\n \r\n Add column def\r\n \r\n
\r\n );\r\n\r\n return (\r\n \r\n {addcdef}\r\n \r\n );\r\n }\r\n\r\n return null;\r\n }\r\n catch (e) {\r\n return error;\r\n }\r\n }\r\n});\r\n\r\nVue.component('table-row-dsgn', {\r\n data: () => ({\r\n\r\n }),\r\n props: {\r\n name: '',\r\n root: null,\r\n schema: null,\r\n model: null,\r\n columnDefs: null,\r\n even: false,\r\n selected$: false,\r\n firstrow: false,\r\n addControl: null,\r\n },\r\n computed: {\r\n Root: function () {\r\n return this.root._self;\r\n },\r\n selectedmodel$: function () {\r\n return this.Root.SelectedModel && this.Root.SelectedModel == this.columnDef;\r\n },\r\n },\r\n render() \r\n {\r\n if (!this.model)\r\n return null;\r\n\r\n const columns = [];\r\n\r\n if (this.columnDefs && this.columnDefs.length > 0) {\r\n const maxpct = 100 / this.columnDefs.length;\r\n for (let i = 0; i < this.columnDefs.length; i++) {\r\n const cdef = this.columnDefs[i];\r\n\r\n columns.push(\r\n \r\n \r\n );\r\n }\r\n }\r\n else {\r\n const maxpct = 100 / Object.keys(this.model).length;\r\n for (let key in this.model) {\r\n const cdef = {\r\n Field: key,\r\n };\r\n columns.push(\r\n \r\n \r\n );\r\n }\r\n }\r\n\r\n const style = {};\r\n\r\n style.backgroundColor = this.even ? \"#f0f0f0\" : \"white\";\r\n\r\n return (\r\n \r\n {columns}\r\n \r\n );\r\n }\r\n});\r\n\r\nVue.component('html-table-dsgn', {\r\n data: () => ({\r\n displayexpr: null,\r\n modelurl: null,\r\n modelvalue: null,\r\n model: {},\r\n pickervisible: false,\r\n picker: null,\r\n pickercdef: null,\r\n }),\r\n created() {\r\n },\r\n mounted() {\r\n this.Refresh();\r\n },\r\n computed: {\r\n Root: function () {\r\n return this.root._self;\r\n },\r\n Model: function () {\r\n return this.model;\r\n },\r\n selected$: function () {\r\n return this.Root.SelectedNode && this.Root.SelectedNode == this;\r\n },\r\n },\r\n methods: {\r\n ...methods,\r\n handleClick(e) {\r\n this.Root.SelectNode(this);\r\n e.cancelBubble = true;\r\n e.stopPropagation();\r\n },\r\n selectColumn(e, index) {\r\n this.Root.SelectNode(this, this.controlData.ColumnDefs[index]);\r\n e.cancelBubble = true;\r\n e.stopPropagation();\r\n },\r\n deleteColumn(e, index) {\r\n this.controlData.ColumnDefs.splice(index, 1);\r\n e.cancelBubble = true;\r\n e.stopPropagation();\r\n },\r\n addColumn(e) {\r\n if (!this.controlData.ColumnDefs)\r\n Vue.set(this.controlData, 'ColumnDefs', []);\r\n\r\n this.controlData.ColumnDefs.push({\r\n $typeSchema: '/schema/public/Platform.Schema.DynamicControls.v1/DynamicControl_Grid_ColumnDef',\r\n Align: 'Left',\r\n DisplayName: '',\r\n Field: 'field' + (this.controlData.ColumnDefs.length+1),\r\n Sortable: true,\r\n Visible: true,\r\n Width: 'Auto',\r\n });\r\n this.Root.SelectNode(this, this.controlData.ColumnDefs[this.controlData.ColumnDefs.length - 1]);\r\n e.cancelBubble = true;\r\n e.stopPropagation();\r\n },\r\n async Refresh() {\r\n if (this.controlData.SourceType == 'Url' && this.controlData.SourceUrl)\r\n try {\r\n this.model = await utils.api.get(this.controlData.SourceUrl);\r\n }\r\n catch (e) {\r\n utils.warn('Design HtmlTable SourceUrl ' + this.controlData.SourceUrl + ' failed to load: ' + e);\r\n this.model = [{}];\r\n }\r\n else if (this.controlData.SourceType == 'Raw' && this.controlData.SourceRaw && Array.isArray(this.controlData.SourceRaw)) {\r\n this.model = this.controlData.SourceRaw;\r\n }\r\n else\r\n this.model = [{}];\r\n },\r\n\r\n addControl(cdef) {\r\n this.pickercdef = cdef;\r\n this.picker = ;\r\n this.pickervisible = true;\r\n },\r\n async confirmAddControl(id, title) {\r\n this.pickervisible = false;\r\n\r\n try {\r\n const schema_ = await utils.schema.get(id);\r\n const schema = utils.schema.resolve_Of(schema_)\r\n const model = utils.schema.getDefaultModel(schema);\r\n this.pickercdef.Controls.push(model);\r\n }\r\n catch (e) {\r\n alert(e);\r\n }\r\n },\r\n cancelAddControl() {\r\n this.pickervisible = false;\r\n },\r\n pickerInput(value) {\r\n this.pickervisible = value;\r\n },\r\n },\r\n props: {\r\n name: '',\r\n root: null,\r\n designmodel: null,\r\n parentType: '',\r\n controlData: {}\r\n },\r\n render() {\r\n const elements = [];\r\n\r\n let header;\r\n if (this.controlData.ColumnDefs && this.controlData.ColumnDefs.length > 0)\r\n {\r\n header = [];\r\n for (let i = 0; i < this.controlData.ColumnDefs.length; i++) {\r\n const cdef = this.controlData.ColumnDefs[i];\r\n\r\n header.push(\r\n \r\n this.selectColumn(e, i)}>\r\n {cdef.DisplayName || cdef.Field || cdef.Name}\r\n \r\n this.deleteColumn(e, i)}>\r\n \r\n );\r\n }\r\n elements.push({header});\r\n }\r\n else if (this.model && this.model.length > 0)\r\n {\r\n header = [];\r\n const sample = this.model[0];\r\n for (let head in sample)\r\n {\r\n header.push(\r\n \r\n {head}\r\n \r\n );\r\n }\r\n elements.push({header});\r\n }\r\n\r\n if (!this.model)\r\n elements.push(Loading...);\r\n else {\r\n let c = this.model.length;\r\n if (c > 10) c = 10;\r\n for (let i = 0; i < c; i++) {\r\n const row = this.model[i];\r\n if (!row.$objectId)\r\n row.$objectId = utils.generateUUID();\r\n\r\n elements.push(\r\n \r\n \r\n );\r\n }\r\n }\r\n\r\n return (\r\n this.handleClick(e)}>\r\n
\r\n\r\n
this.addColumn(e)} style={{ top: \"1px\", right: \"1px\", display: this.selected$ ? \"block\" : \"none\" }}>
\r\n\r\n \r\n {elements}\r\n
\r\n\r\n this.pickerInput(value)}>\r\n {this.picker}\r\n \r\n \r\n );\r\n }\r\n});","import Vue from 'vue';\r\nimport utils from '../../../Shared/utils.jsx';\r\nimport methods from '../../../Shared/methods';\r\n\r\nVue.component('icon-popup-menu-dsgn', {\r\n data: function () {\r\n return {\r\n }\r\n },\r\n created() {\r\n },\r\n computed: {\r\n Root: function () {\r\n return this.root._self;\r\n },\r\n selected$: function () {\r\n return this.Root.SelectedNode && this.Root.SelectedModel == this.designmodel;\r\n },\r\n iconClass: function () {\r\n let icon;\r\n if (!this.controlData.Icon || this.controlData.Icon.includes('{{') || this.controlData.Icon.includes('{*'))\r\n icon = 'mdi mdi-help-circle';\r\n else\r\n icon = this.controlData.Icon || 'mdi mdi-help-circle';\r\n\r\n let iconClass = icon;\r\n iconClass += (this.controlData.FlipHorizontally) ? ' mdi mdi-flip-vertical ' : '';\r\n iconClass += (this.controlData.FlipVertically) ? ' mdi mdi-flip-horizontal ' : '';\r\n iconClass += (this.controlData.Border) ? ' mdi mdi-border-all-variant ' : '';\r\n iconClass += (this.controlData.Animation == \"Spin\") ? ' mdi-animate-spin ' : '';\r\n iconClass += (this.controlData.Animation == \"Pulse\") ? ' mdi-animate-pulse ' : '';\r\n return iconClass;\r\n },\r\n iconStyles: function () {\r\n const styles = {};\r\n\r\n if (this.controlData.FontSize)\r\n styles['font-size'] = utils.resolveFontSize(this.controlData.FontSize);\r\n\r\n if (this.controlData.Color)\r\n styles.color = this.controlData.Color;\r\n else\r\n styles.color = '#444';\r\n\r\n return styles;\r\n }\r\n },\r\n methods: {\r\n ...methods,\r\n handleClick(e) {\r\n this.Root.SelectNode(this);\r\n e.cancelBubble = true;\r\n e.stopPropagation();\r\n },\r\n },\r\n props: {\r\n name: '',\r\n root: null,\r\n designmodel: null,\r\n parentType: '',\r\n controlData: {}\r\n },\r\n render(h) {\r\n return (\r\n this.handleClick(e)}>\r\n
\r\n \r\n
{this.controlData.Caption}
\r\n \r\n );\r\n }\r\n});","import Vue from 'vue';\nimport utils from '../../../Shared/utils.jsx';\nimport methods from '../../../Shared/methods.js';\n\nVue.component('basic-avatar-dsgn', {\n data: function () {\n return {\n }\n },\n created() {\n },\n computed: {\n Root: function () {\n return this.root._self;\n },\n textStyles: function () {\n const styles = {};\n\n if (this.controlData.FontSize)\n styles['font-size'] = utils.resolveFontSize(this.controlData.FontSize);\n\n if (this.controlData.Color)\n styles.color = this.controlData.Color;\n else\n styles.color = '#444';\n\n return styles;\n },\n selected$: function () {\n return this.Root.SelectedNode && this.Root.SelectedModel == this.designmodel;\n },\n },\n methods: {\n ...methods,\n handleClick(e) {\n this.Root.SelectNode(this);\n e.cancelBubble = true;\n e.stopPropagation();\n },\n },\n props: {\n name: '',\n root: null,\n designmodel: null,\n parentType: '',\n controlData: {}\n },\n render(h) {\n const style = {\n ...utils.getSize(this.controlData.SizeOptions, this.parentType, this.$parent),\n ...this.textStyles,\n };\n\n return (\n \n this.handleClick(e)}\n title={this.controlData.Tooltip}>\n
\n {this.controlData.Text || 'Empty'}\n \n
\n );\n }\n});","import Vue from 'vue';\r\nimport HorizontalStack from './HorizontalStack.jsx';\r\nimport VerticalStack from './VerticalStack.jsx';\r\nimport BasicButton from './BasicButton.jsx';\r\nimport Text from './Text.jsx';\r\nimport Icon from './Icon.jsx';\r\n//import SelectList from './SelectList.jsx';\r\nimport BasicForm from './BasicForm.jsx';\r\nimport BasicGrid from './BasicGrid.jsx';\r\nimport TreeView from './TreeView.jsx';\r\nimport DefaultUnknown from './DefaultUnknown.jsx';\r\nimport utils from '../../../Shared/utils.jsx';\r\nimport methods from '../../../Shared/methods';\r\n\r\nVue.component('tile-item-dsgn', {\r\n data: function () {\r\n return {\r\n }\r\n },\r\n computed: {\r\n Root: function () {\r\n return this.root._self;\r\n },\r\n selected$: function () {\r\n return this.Root.SelectedNode && this.Root.SelectedModel == this.designmodel;\r\n }\r\n },\r\n methods: {\r\n ...methods,\r\n handleClick(e) {\r\n this.Root.SelectNode(this);\r\n e.cancelBubble = true;\r\n e.stopPropagation();\r\n },\r\n DesignModel: function () {\r\n return this.designmodel;\r\n },\r\n },\r\n props: {\r\n name: '',\r\n root: null,\r\n designmodel: null,\r\n controlData: {},\r\n parentType: '',\r\n titleBar: {}\r\n },\r\n render() {\r\n if (!this.controlData.Controls)\r\n return null;\r\n\r\n const items = [];\r\n\r\n for (var i = 0; i < this.controlData.Controls.length; i++) {\r\n const control = this.controlData.Controls[i];\r\n let DynamicControl = utils.getDynamicComponent(h, control);\r\n\r\n if (!DynamicControl)\r\n DynamicControl = 'default-unknown';\r\n\r\n DynamicControl += '-dsgn';\r\n\r\n items.push(\r\n \r\n \r\n );\r\n }\r\n\r\n const size = utils.getSize(this.controlData.SizeOptions, this.parentType, this.$parent);\r\n\r\n if (!('width' in size))\r\n size.width = \"500px\";\r\n\r\n if (!('height' in size))\r\n size.height = \"700px\";\r\n\r\n return (\r\n this.handleClick(e)}>\r\n
\r\n \r\n
\r\n {items}\r\n \r\n );\r\n }\r\n});\r\n\r\nVue.component('layout-tile-dsgn', {\r\n data: function () {\r\n return {\r\n }\r\n },\r\n computed: {\r\n Root: function () {\r\n return this.root._self;\r\n },\r\n selected$: function () {\r\n return this.Root.SelectedNode && this.Root.SelectedModel == this.designmodel;\r\n }\r\n },\r\n methods: {\r\n ...methods,\r\n handleClick(e) {\r\n this.Root.SelectNode(this);\r\n e.cancelBubble = true;\r\n e.stopPropagation();\r\n },\r\n DesignModel: function () {\r\n return this.designmodel;\r\n },\r\n },\r\n props: {\r\n name: '',\r\n root: null,\r\n designmodel: null,\r\n parentType: '',\r\n controlData: {}\r\n },\r\n render(h) {\r\n if (!this.controlData.Tiles)\r\n return
No tiles
;\r\n\r\n let items = [];\r\n\r\n for (let i = 0; i < this.controlData.Tiles.length; i++)\r\n {\r\n const tile = this.controlData.Tiles[i];\r\n items.push(\r\n \r\n );\r\n }\r\n\r\n const size = utils.getSize(this.controlData.SizeOptions, this.parentType, this.$parent);\r\n\r\n if (!('width' in size))\r\n size.width = \"1200px\";\r\n\r\n if (!('height' in size))\r\n size.height = \"700px\";\r\n\r\n return (\r\n this.handleClick(e)}>\r\n
\r\n {items}\r\n \r\n );\r\n }\r\n});","import Vue from 'vue';\r\nimport utils from '../../../Shared/utils.jsx';\r\nimport methods from '../../../Shared/methods';\r\n\r\nVue.component('mic-analyzer-dsgn', {\r\n data: function () {\r\n return {\r\n }\r\n },\r\n created() {\r\n },\r\n computed: {\r\n Root: function () {\r\n return this.root._self;\r\n },\r\n selected$: function () {\r\n return this.Root.SelectedNode && this.Root.SelectedModel == this.designmodel;\r\n },\r\n },\r\n methods: {\r\n ...methods,\r\n handleClick(e) {\r\n this.Root.SelectNode(this);\r\n e.cancelBubble = true;\r\n e.stopPropagation();\r\n },\r\n },\r\n props: {\r\n name: '',\r\n root: null,\r\n designmodel: null,\r\n parentType: '',\r\n controlData: {}\r\n },\r\n render(h) {\r\n const style = {\r\n ...utils.getSize(this.controlData.SizeOptions, this.parentType, this.$parent),\r\n backgroundColor: \"silver\",\r\n overflow: \"hidden\",\r\n whiteSpace: \"nowrap\",\r\n display: \"inline-block\"\r\n };\r\n\r\n return (\r\n this.handleClick(e)}>\r\n
\r\n {'|'}\r\n \r\n );\r\n }\r\n});","import Vue from 'vue';\r\nimport utils from '../../../Shared/utils.jsx';\r\nimport BaseComponent from './BaseComponentMixin.jsx';\r\n\r\nVue.component('navigation-drawer-dsgn', {\r\n mixins: [BaseComponent],\r\n data: function () {\r\n return {\r\n model: null,\r\n mini: true,\r\n }\r\n },\r\n async created() {\r\n if (this.controlData.SourceType === 'Raw' && this.controlData.SourceRaw) {\r\n if (Array.isArray(this.controlData.SourceRaw))\r\n this.model = this.controlData.SourceRaw;\r\n else\r\n this.model = [\r\n {\r\n Icon: 'mdi mdi-home-variant',\r\n Title: 'Home',\r\n location: 'Top'\r\n },\r\n {\r\n Icon: 'mdi mdi-view-list-outline',\r\n Title: 'Administration',\r\n location: 'Top'\r\n },\r\n {\r\n Icon: 'mdi mdi-account',\r\n Title: 'User',\r\n location: 'Bottom'\r\n }\r\n ];\r\n }\r\n else if (this.controlData.SourceType === 'Url' && this.controlData.SourceUrl) {\r\n this.sourceurl = utils.compile(this, this.controlData.SourceUrl);\r\n\r\n try {\r\n this.model = await utils.api.get(utils.evaluate(this.sourceurl, this));\r\n }\r\n catch (e) { }\r\n }\r\n },\r\n render(h) {\r\n let name;\r\n if (!this.name)\r\n name = this.type;\r\n else\r\n name = this.name + ':' + this.type || 'Unnamed';\r\n\r\n let items_top = [];\r\n let items_bot = [];\r\n\r\n if (this.model) {\r\n //this.bot_start_index = this.model.findIndex(m => m.location == 'Bottom');\r\n\r\n for (let tabi = 0; tabi < this.model.length; tabi++) {\r\n const tab = this.model[tabi];\r\n let items;\r\n if (tab.location == 'Top')\r\n items = items_top;\r\n else\r\n items = items_bot;\r\n\r\n if (!tab.$objectid)\r\n tab.$objectid = utils.generateUUID();\r\n\r\n if (tab.Icon && tab.Icon.includes('{'))\r\n tab.Icon = 'mdi mdi-phone';\r\n\r\n let icon;\r\n if (false && tab.Tooltip) {\r\n if (tab.Icon)\r\n icon = {tab.Icon} }}>{tab.Tooltip};\r\n }\r\n else {\r\n if (tab.Icon)\r\n icon = {tab.Icon};\r\n }\r\n\r\n // Example of how to do a badge, either an icon or a literal string can be done:\r\n //icon = {icon};\r\n //icon = {icon};\r\n\r\n const listitem = (\r\n \r\n {icon}\r\n \r\n {tab.Title || tab.Tooltip}\r\n \r\n \r\n );\r\n\r\n items.push(listitem);\r\n }\r\n\r\n this.bot_start_index = items_top.length;\r\n }\r\n\r\n const style = {\r\n ...utils.getSize(this.controlData.SizeOptions, this.parentType, this.$parent),\r\n //maxWidth: \"86px\"\r\n };\r\n\r\n const useDark = this.controlData.DarkTheme || false;\r\n\r\n const scopedSlots = {\r\n append: () => (\r\n \r\n \r\n {items_bot}\r\n \r\n \r\n )\r\n };\r\n\r\n return (\r\n this.handleClick(e)}>\r\n
\r\n\r\n \r\n\r\n \r\n \r\n {items_top}\r\n \r\n \r\n\r\n \r\n \r\n );\r\n\r\n //return (\r\n // this.handleClick(e)}>\r\n //
\r\n // {name}
\r\n // \r\n //);\r\n }\r\n});","import Vue from 'vue';\r\nimport BaseComponent from './BaseComponentMixin.jsx';\r\nimport utils from '../../../Shared/utils.jsx';\r\n\r\nVue.component('cc-progress-bar-dsgn', {\r\n mixins: [BaseComponent],\r\n data: function () {\r\n return {\r\n }\r\n },\r\n computed: {\r\n style() {\r\n return {\r\n ...utils.getStyleHints(this.controlData.StyleHints),\r\n ...utils.getSize(this.controlData.SizeOptions, this.parentType, this.$parent),\r\n overflow: \"none\",\r\n };\r\n },\r\n color() {\r\n if (this.controlData.Color && !this.controlData.Color.includes('{'))\r\n return this.controlData.Color;\r\n else\r\n return 'orange';\r\n },\r\n value() {\r\n if (this.controlData.ValueExpression)\r\n return utils.helpers.tryParseInt(this.controlData.ValueExpression, 35);\r\n else\r\n return 35;\r\n },\r\n bufferValue() {\r\n if (this.controlData.BufferValueExpression)\r\n return utils.helpers.tryParseInt(this.controlData.ValueExpression, 100);\r\n else\r\n return 100;\r\n },\r\n height() {\r\n if (this.controlData.SizeOptions && this.controlData.SizeOptions.Height && this.controlData.SizeOptions.Height.Mode == 'Fixed')\r\n return this.controlData.SizeOptions.Height.Value || 4;\r\n else\r\n return 4;\r\n },\r\n },\r\n methods: {\r\n },\r\n render(h) {\r\n try {\r\n let scopedSlots;\r\n if (this.controlData.Content)\r\n scopedSlots = {\r\n default: ({ value }) => {this.controlData.Content}\r\n };\r\n \r\n return (\r\n this.handleClick(e)}\r\n >\r\n
\r\n \r\n \r\n \r\n );\r\n }\r\n catch (e) {\r\n utils.error('ProgressBar Render failed', e);\r\n return
ProgressBar Failed to Render {e}
;\r\n }\r\n }\r\n});","import Vue from 'vue';\r\nimport BaseComponent from './BaseComponentMixin.jsx';\r\nimport utils from '../../../Shared/utils.jsx';\r\n\r\nVue.component('cc-progress-circle-dsgn', {\r\n mixins: [BaseComponent],\r\n data: function () {\r\n return {\r\n tooltipEval: null,\r\n tooltipPlacementEval: null,\r\n disabledEval: null,\r\n objectFitEval: null,\r\n }\r\n },\r\n //Created Replaced with preRenderComplete\r\n computed: {\r\n style() {\r\n return {\r\n ...utils.getStyleHints(this.controlData.StyleHints),\r\n ...utils.getSize(this.controlData.SizeOptions, this.parentType, this.$parent),\r\n overflow: \"none\",\r\n };\r\n },\r\n color() {\r\n if (this.controlData.Color && !this.controlData.Color.includes('{'))\r\n return this.controlData.Color;\r\n else\r\n return 'orange';\r\n },\r\n value() {\r\n if (this.controlData.ValueExpression)\r\n return utils.helpers.tryParseInt(this.controlData.ValueExpression, 35);\r\n else\r\n return 35;\r\n },\r\n width() {\r\n if (this.controlData.WidthExpression)\r\n return utils.helpers.tryParseInt(this.controlData.WidthExpression, 10);\r\n else\r\n return 10;\r\n },\r\n size() {\r\n if (this.controlData.SizeExpression)\r\n return utils.helpers.tryParseInt(this.controlData.SizeExpression, 25);\r\n else\r\n return 25;\r\n },\r\n rotate() {\r\n if (this.controlData.RotateExpression)\r\n return utils.helpers.tryParseInt(this.controlData.RotateExpression, 0);\r\n else\r\n return 0;\r\n },\r\n },\r\n methods: {\r\n },\r\n render(h) {\r\n try {\r\n return (\r\n this.handleClick(e)}\r\n >\r\n
\r\n \r\n {this.controlData.Content}\r\n \r\n \r\n );\r\n }\r\n catch (e) {\r\n utils.error('ProgressCircle Render failed', e);\r\n return
ProgressCircle Failed to Render {e}
;\r\n }\r\n }\r\n});","import Vue from 'vue';\r\nimport utils from '../../../Shared/utils.jsx';\r\nimport methods from '../../../Shared/methods';\r\nimport BaseComponent from './BaseComponentMixin.jsx';\r\n\r\nVue.component('real-time-grid-dsgn', {\r\n mixins: [BaseComponent],\r\n data: () => ({\r\n pickervisible: false,\r\n picker: null,\r\n pickercdef: null,\r\n }),\r\n created() {\r\n this.gridrole_watch$ = this.$watch('controlData.GridRole', function (newval, oldval) {\r\n if (oldval == 'Custom' && newval != 'Custom' && (!this.controlData.Columns || !this.controlData.Columns.length)) {\r\n this.createDefaultColumns(newval);\r\n }\r\n if (oldval == 'Custom' && newval != 'Custom' && (!this.controlData.Features || !this.controlData.Features.length)) {\r\n this.createDefaultFeatures(newval);\r\n }\r\n });\r\n },\r\n destroyed() {\r\n if (this.gridrole_watch$)\r\n this.gridrole_watch$();\r\n },\r\n mounted() {\r\n },\r\n computed: {\r\n },\r\n methods: {\r\n createDefaultColumns(role) {\r\n switch (this.controlData.ListSource) {\r\n case 'UserList':\r\n case 'AllUsers':\r\n this.controlData.Columns = [\r\n {\r\n FieldName: '_UserList_Features_',\r\n HeaderText: '',\r\n Advanced: {\r\n ValueType: 'Features',\r\n Sortable: false,\r\n InitiallyVisible: true,\r\n Align: 'start',\r\n }\r\n },\r\n {\r\n FieldName: 'FullName',\r\n HeaderText: 'User',\r\n Advanced: {\r\n ValueType: 'Text',\r\n Sortable: true,\r\n InitiallyVisible: true,\r\n Align: 'start',\r\n }\r\n },\r\n {\r\n FieldName: 'Color',\r\n HeaderText: 'Presence',\r\n Advanced: {\r\n ValueType: 'ColoredIcon',\r\n Sortable: true,\r\n InitiallyVisible: true,\r\n Align: 'start',\r\n }\r\n },\r\n {\r\n FieldName: 'StateName',\r\n HeaderText: 'State',\r\n Advanced: {\r\n ValueType: 'Text',\r\n Sortable: true,\r\n InitiallyVisible: true,\r\n Align: 'start',\r\n }\r\n },\r\n {\r\n FieldName: 'StartTime',\r\n HeaderText: 'Time',\r\n Advanced: {\r\n ValueType: 'ElapsedTime',\r\n Sortable: true,\r\n InitiallyVisible: true,\r\n Align: 'start',\r\n }\r\n },\r\n {\r\n FieldName: 'UserID',\r\n HeaderText: 'UserID',\r\n Advanced: {\r\n ValueType: 'Text',\r\n Sortable: true,\r\n InitiallyVisible: false,\r\n Align: 'start',\r\n }\r\n },\r\n {\r\n FieldName: 'Queue',\r\n HeaderText: 'Queue',\r\n Advanced: {\r\n ValueType: 'Text',\r\n Sortable: true,\r\n InitiallyVisible: true,\r\n Align: 'start',\r\n }\r\n },\r\n {\r\n FieldName: 'Interactions',\r\n HeaderText: 'Active Interaction',\r\n Advanced: {\r\n ValueType: 'Icon',\r\n IconName: \"{{ row.length ? GlobalVars.ChannelTypes[row[0].ChannelType].Icon : '' }}\",\r\n Sortable: true,\r\n InitiallyVisible: true,\r\n Align: 'start',\r\n }\r\n },\r\n ];\r\n break;\r\n\r\n case 'Interactions':\r\n this.controlData.Columns = [\r\n {\r\n FieldName: '_Interactions_Features_',\r\n HeaderText: '',\r\n Advanced: {\r\n ValueType: 'Features',\r\n Sortable: false,\r\n InitiallyVisible: true,\r\n Align: 'start',\r\n }\r\n },\r\n {\r\n FieldName: 'CallerId',\r\n HeaderText: 'Originator',\r\n Advanced: {\r\n ValueType: 'PhoneNumber',\r\n Sortable: true,\r\n InitiallyVisible: true,\r\n Align: 'start',\r\n }\r\n },\r\n {\r\n FieldName: 'FullName',\r\n HeaderText: 'User Handling',\r\n Advanced: {\r\n ValueType: 'Text',\r\n Sortable: true,\r\n InitiallyVisible: true,\r\n Align: 'start',\r\n }\r\n },\r\n {\r\n FieldName: 'StateName',\r\n HeaderText: 'State',\r\n Advanced: {\r\n ValueType: 'Text',\r\n Sortable: true,\r\n InitiallyVisible: true,\r\n Align: 'start',\r\n }\r\n },\r\n {\r\n FieldName: 'ChannelType',\r\n HeaderText: 'Channel Type',\r\n Advanced: {\r\n ValueType: 'Text',\r\n Sortable: true,\r\n InitiallyVisible: false,\r\n Align: 'start',\r\n }\r\n },\r\n {\r\n FieldName: 'Queue',\r\n HeaderText: 'Queue',\r\n Advanced: {\r\n ValueType: 'Text',\r\n Sortable: true,\r\n InitiallyVisible: false,\r\n Align: 'start',\r\n }\r\n },\r\n {\r\n FieldName: 'StartTime',\r\n HeaderText: 'Duration',\r\n Advanced: {\r\n ValueType: 'ElapsedTime',\r\n Sortable: true,\r\n InitiallyVisible: true,\r\n Align: 'start',\r\n }\r\n },\r\n {\r\n FieldName: 'Destination',\r\n HeaderText: 'Destination',\r\n Advanced: {\r\n ValueType: 'PhoneNumber',\r\n Sortable: true,\r\n InitiallyVisible: false,\r\n Align: 'start',\r\n }\r\n },\r\n ];\r\n break;\r\n }\r\n },\r\n createDefaultFeatures(role) {\r\n switch (this.controlData.ListSource) {\r\n case 'UserList':\r\n case 'AllUsers':\r\n this.controlData.Features = [\r\n \"Call\", \"ForceLogoff\", \"Presence\", \"SessionDetails\", \"SilentMonitor\", \"Chat\"\r\n ];\r\n break;\r\n\r\n case 'Interactions':\r\n this.controlData.Features = [\r\n \"ChannelType\", \"InQueue\", \"Requeue\"\r\n ];\r\n break;\r\n }\r\n },\r\n },\r\n props: {\r\n },\r\n render() {\r\n let name;\r\n if (!this.name)\r\n name = this.type;\r\n else\r\n name = this.name + ':' + this.type || 'Unnamed';\r\n\r\n return (\r\n this.handleClick(e)}>\r\n
\r\n {name}
\r\n \r\n );\r\n }\r\n});","import Vue from 'vue';\r\nimport utils from '../../../../Shared/utils.jsx';\r\nimport methods from '../../../../Shared/methods';\r\n\r\nVue.component('replace-content-action-dsgn', {\r\n data: function () {\r\n return {\r\n }\r\n },\r\n computed: {\r\n Root: function () {\r\n return this.root._self;\r\n },\r\n Vars: function () {\r\n if (!this.controlData.Vars)\r\n Vue.set(this.controlData, 'Vars', {});\r\n\r\n return this.controlData.Vars;\r\n },\r\n DesignModel: function () {\r\n return this.designmodel;\r\n },\r\n selected$: function () {\r\n return this.Root.SelectedNode && this.Root.SelectedModel == this.designmodel;\r\n },\r\n },\r\n methods: {\r\n ...methods,\r\n handleClick(e) {\r\n this.Root.SelectNode(this);\r\n e.cancelBubble = true;\r\n e.stopPropagation();\r\n },\r\n },\r\n props: {\r\n name: '',\r\n root: null,\r\n designmodel: null,\r\n parentType: '',\r\n controlData: {}\r\n },\r\n render(h) {\r\n const container = (\r\n \r\n \r\n );\r\n\r\n return (\r\n this.handleClick(e)}>\r\n
\r\n {container}\r\n \r\n );\r\n }\r\n});","import Vue from 'vue';\r\nimport utils from '../../../Shared/utils.jsx';\r\nimport methods from '../../../Shared/methods';\r\nimport axios from 'axios';\r\nimport BaseComponent from './BaseComponentMixin.jsx';\r\n\r\nVue.component('select-list-dsgn', {\r\n mixins: [BaseComponent],\r\n data: function () {\r\n return {\r\n source: null,\r\n }\r\n },\r\n created() {\r\n },\r\n mounted() {\r\n this.Refresh();\r\n },\r\n computed: {\r\n },\r\n methods: {\r\n async Refresh()\r\n {\r\n if (this.controlData.SourceType === 'URL')\r\n try {\r\n this.source = await utils.api.get(this.controlData.SourceURL, true);\r\n }\r\n catch (e) {\r\n }\r\n else if (this.controlData.SourceType == 'Raw') {\r\n if (typeof this.controlData.Source === 'object' && Array.isArray(this.controlData.Source))\r\n this.source = this.controlData.Source;\r\n }\r\n }\r\n },\r\n props: {\r\n },\r\n render(h)\r\n {\r\n const fields = this.controlData.FieldMappings;\r\n let items = [];\r\n let source = this.source;\r\n if (!source) {\r\n const obj = {};\r\n obj[fields.Title] = \"Title\";\r\n obj[fields.Description] = \"Description\";\r\n source = [obj];\r\n }\r\n\r\n for (let i = 0; i < source.length; i++) {\r\n const item = source[i];\r\n\r\n items.push(\r\n \r\n\r\n \r\n {item[fields.Title]}\r\n {item[fields.Description]}\r\n \r\n \r\n );\r\n }\r\n\r\n const style = {\r\n overflow: \"auto\",\r\n ...utils.getSize(this.controlData.SizeOptions, this.parentType, this.$parent),\r\n ...utils.getStyleHints(this.controlData.StyleHints, this),\r\n };\r\n\r\n return (\r\n this.handleClick(e)}>\r\n
\r\n \r\n \r\n {items}\r\n \r\n \r\n \r\n );\r\n }\r\n});","import Vue from 'vue';\r\n//import SchemaForm from './form/SchemaForm.jsx';\r\nimport PropertyGrid from './form/PropertyGrid.jsx';\r\n\r\nimport Accordion from './designer/Accordion.jsx';\r\nimport ApexGeneralChart from './designer/ApexGeneralChart.jsx';\r\nimport AudioPlayer from './designer/AudioPlayer.jsx';\r\nimport BackgroundSvc from './designer/BackgroundService.jsx';\r\nimport BasicLink from './designer/BasicLink.jsx';\r\nimport BasicPopupMenu from './designer/BasicPopupMenu.jsx';\r\nimport BasicTab from './designer/BasicTab.jsx';\r\nimport BasicTree from './designer/BasicTree.jsx';\r\nimport CareCenterMenu from './designer/CareCenterMenu.jsx';\r\nimport CareCenterPopupMenu from './designer/CareCenterPopupMenu.jsx';\r\nimport ControlContainerDsgn from './designer/ControlContainer.jsx';\r\nimport ControlDesignerDsgn from './designer/ControlDesigner.jsx';\r\nimport DisplayBasicModal from './designer/actions/DisplayBasicModal.jsx';\r\nimport DocumentBootstrap from './designer/DocumentBootstrap.jsx';\r\nimport DropdownList from './designer/DropdownList.jsx';\r\nimport DynamicControlContainer from './designer/DynamicControlContainer.jsx';\r\nimport DynamicMenuList from './designer/DynamicMenuList.jsx';\r\nimport DynamicTab from './designer/DynamicTab.jsx';\r\nimport DynamicTabContent from './designer/DynamicTabContent.jsx';\r\nimport DynamicTree from './designer/DynamicTree.jsx';\r\nimport FastGrid from './designer/FastGrid.jsx';\r\nimport ForEach from './designer/ForEach.jsx';\r\nimport HSM from './designer/HSM.jsx';\r\nimport HorizontalStack from './designer/HorizontalStack.jsx';\r\nimport HtmlTable from './designer/HtmlTable.jsx';\r\nimport IconPopupMenu from './designer/IconPopupMenu.jsx';\r\nimport Avatar from './designer/Avatar.jsx';\r\nimport LayoutTile from './designer/LayoutTile.jsx';\r\nimport MicAnalyzer from './designer/MicAnalyzer.jsx';\r\nimport NavigationDrawer from './designer/NavigationDrawer.jsx';\r\nimport ProgressBar from './designer/ProgressBar.jsx';\r\nimport ProgressCircle from './designer/ProgressCircle.jsx';\r\nimport RealTimeGrid from './designer/RealTimeGrid.jsx';\r\nimport ReplaceContent from './designer/actions/ReplaceContent.jsx';\r\nimport SelectList from './designer/SelectList.jsx';\r\nimport SplitPanes from './designer/SplitPanes.jsx';\r\nimport Tab from './designer/actions/Tab.jsx';\r\nimport UserAction from './designer/actions/UserAction.jsx';\r\nimport UserControl from './designer/UserControl.jsx';\r\nimport VerticalStack from './designer/VerticalStack.jsx';\r\nimport Watcher from './designer/Watcher.jsx';\r\nimport Wizard from './designer/Wizard.jsx';\r\n\r\nimport utils from '../../Shared/utils.jsx';\r\nimport methods from '../../Shared/methods';\r\nimport filters from '@/Shared/filters.js';\r\nimport api from '@/Services/api';\r\n\r\nfunction formatDate(date) {\r\n var month = '' + (date.getMonth() + 1);\r\n var day = '' + date.getDate();\r\n var year = date.getFullYear();\r\n var hour = '' + date.getHours();\r\n if (hour.length == 1) hour = '0' + hour;\r\n var min = '' + date.getMinutes();\r\n if (min.length == 1) min = '0' + min;\r\n var sec = '' + date.getSeconds();\r\n if (sec.length == 1) sec = '0' + sec;\r\n\r\n if (month.length < 2) month = '0' + month;\r\n if (day.length < 2) day = '0' + day;\r\n\r\n return [month, day, year].join('-') + ' ' + hour + ':' + min;\r\n};\r\n\r\nVue.component('control-designer', {\r\n data: function () {\r\n return {\r\n displayexpr: null,\r\n mode: null,\r\n viewjson: false,\r\n viewdsgn: true,\r\n sourceurl: null,\r\n sourceraw: null,\r\n\r\n sel_schemaurl: null,\r\n sel_schemaraw: null,\r\n sel_modelurl: null,\r\n sel_modelvalue: null,\r\n sel_model: null,\r\n sel_schema: null,\r\n\r\n model: null,\r\n schema: null,\r\n selectednode: null,\r\n selectedmodel: null,\r\n originalname: null,\r\n actions: [],\r\n externalactions: [],\r\n updatemodelactions: [],\r\n\r\n reset_breadcrumb: 0,\r\n can_autoreplace: false,\r\n forceOverwrite: false,\r\n modify_UserName: '',\r\n\r\n ControlURL: '',\r\n dynamicControl: '',\r\n type: '',\r\n designmodel: null,\r\n cData: null,\r\n history: [],\r\n designer_width: 800,\r\n\r\n temp_rawjson: '',\r\n rawjson_ischanged: false,\r\n\r\n save_in_progress: false,\r\n doc_revisions: [],\r\n doc_changes: [],\r\n max_months_history: 18,\r\n edits: null,\r\n editing_since: null,\r\n\r\n js_enabled: false,\r\n js_open: false,\r\n js_code: null,\r\n hsm_errors_open: false,\r\n hsm_errors: [],\r\n }\r\n },\r\n async created() {\r\n if (this.controlData.DisplayExpression)\r\n this.displayexpr = utils.compileExpression(this, this.controlData.DisplayExpression);\r\n\r\n if (this.controlData.SourceType === 'Url' && this.controlData.SourceUrl) {\r\n this.sourceurl = utils.compile(this, this.controlData.SourceUrl);\r\n\r\n this.$watch(\r\n function () {\r\n return utils.evaluate(this.sourceurl, this);\r\n },\r\n function (val, oldval) {\r\n utils.log('ControlDesigner detected change in sourceurl; old:' + oldval + ', new:' + val + '; refreshing');\r\n this.Refresh();\r\n this.viewjson = false;\r\n }\r\n );\r\n }\r\n else if (this.controlData.SourceType === 'Raw' && this.controlData.SourceRaw) {\r\n this.sourceraw = utils.compileObject(this, this.controlData.SourceRaw);\r\n\r\n this.$watch(\r\n function () {\r\n try {\r\n return utils.evaluateObject(this.sourceraw, this);\r\n }\r\n catch (e) {\r\n utils.warn('Watch on ControlDesigner SourceRaw ' + this.controlData.SourceRaw + ' failed to evaluate: ' + e);\r\n return null;\r\n }\r\n },\r\n function (val, oldval) {\r\n const valstr = JSON.stringify(val);\r\n const oldvalstr = JSON.stringify(oldval);\r\n\r\n if (valstr !== oldvalstr) {\r\n this.Refresh();\r\n this.viewjson = false;\r\n }\r\n },\r\n {\r\n deep: false\r\n }\r\n );\r\n }\r\n\r\n if (this.controlData.SelectedSchema.Type == 'URL' && this.controlData.SelectedSchema.Definition) {\r\n this.sel_schemaurl = utils.compile(this, this.controlData.SelectedSchema.Definition);\r\n\r\n this.schemaurl_watch$ = this.$watch(\r\n function () {\r\n try {\r\n return utils.evaluate(this.sel_schemaurl, this);\r\n }\r\n catch (e) {\r\n utils.warn('ControlDesigner sel_schemaurl ' + this.controlData.SelectedSchema.Definition + ' failed to evaluate: ' + e);\r\n return '';\r\n }\r\n },\r\n function (val, oldval) {\r\n utils.log('ControlDesigner detected change in sel_schemaurl; old:' + oldval + ', new:' + val + '; ' + (val ? 'refreshing selected' : 'not refreshing (blank value)'));\r\n if (val)\r\n this.RefreshSelected();\r\n }\r\n );\r\n }\r\n else if (this.controlData.SelectedSchema.Type == 'Raw' && this.controlData.SelectedSchema.Definition) {\r\n this.sel_schemaraw = utils.compileObject(this, this.controlData.SelectedSchema.Definition);\r\n\r\n this.schemaraw_watch$ = this.$watch(\r\n function () {\r\n return utils.evaluateObject(this.sel_schemaraw, this);\r\n },\r\n function (val, oldval) {\r\n utils.log('ControlDesigner detected change in sel_schemaraw; refreshing selected');\r\n this.RefreshSelected();\r\n }\r\n );\r\n }\r\n else\r\n this.sel_schema = this.controlData.SelectedSchema.Definition;\r\n\r\n if (this.controlData.SelectedModel.Type == 'URL' && this.controlData.SelectedModel.Definition) {\r\n this.sel_modelurl = utils.compile(this, this.controlData.SelectedModel.Definition);\r\n\r\n this.modelurl_watch$ = this.$watch(\r\n function () {\r\n return utils.evaluate(this.sel_modelurl, this);\r\n },\r\n function (val, oldval) {\r\n utils.log('ControlDesigner detected change in sel_modelurl; old:' + oldval + ', new:' + val + '; refreshing selected');\r\n this.RefreshSelected();\r\n }\r\n );\r\n }\r\n else if (this.controlData.SelectedModel.Type == 'Raw' && this.controlData.SelectedModel.Definition)\r\n this.sel_model = this.controlData.SelectedModel.Definition;\r\n else if (this.controlData.SelectedModel.Type == 'RawInterpolated' && this.controlData.SelectedModel.Definition) {\r\n this.sel_modelvalue = utils.compileObject(this, this.controlData.SelectedModel.Definition);\r\n\r\n this.modelvalue_watch$ = this.$watch(\r\n function () {\r\n try {\r\n return utils.evaluateObject(this.sel_modelvalue, this);\r\n }\r\n catch (e) {\r\n utils.warn('ControlDesigner sel_modelvalue ' + this.controlData.SelectedModel.Definition + ' failed to evaluate: ' + e);\r\n return null;\r\n }\r\n },\r\n function (val, oldval) {\r\n utils.log('ControlDesigner detected change in sel_modelvalue; refreshing selected');\r\n this.RefreshSelected();\r\n },\r\n {\r\n deep: false\r\n }\r\n );\r\n }\r\n\r\n //if (this.controlData.Actions)\r\n // for (var i = 0; i < this.controlData.Actions.length; i++)\r\n // this.actions.push(await utils.compileAction(this, this.controlData.Actions[i]));\r\n\r\n //if (this.controlData.ExternalActions)\r\n // for (var i = 0; i < this.controlData.ExternalActions.length; i++)\r\n // this.externalactions.push(await utils.compileAction(this, this.controlData.ExternalActions[i]));\r\n\r\n //if (this.controlData.UpdateModelActions)\r\n // for (var i = 0; i < this.controlData.UpdateModelActions.length; i++)\r\n // this.updatemodelactions.push(await utils.compileAction(this, this.controlData.UpdateModelActions[i]));\r\n\r\n // Trigger a function every 60 seconds to insure we keep the Redis tracking info up to date\r\n const tmp = this;\r\n this.timeoutReference = window.setTimeout(async () => {\r\n tmp.refreshTracking();\r\n }, 10 * 1000);\r\n\r\n this.$emit('finished-render', this);\r\n },\r\n mounted() {\r\n this.Refresh();\r\n },\r\n beforeDestroy() {\r\n this.clearTracking();\r\n\r\n if (this.timeoutReference)\r\n window.clearTimeout(this.timeoutReference);\r\n\r\n this.timeoutReference = null;\r\n },\r\n computed: {\r\n Root: function () {\r\n return this.root._self;\r\n },\r\n Model: function () {\r\n return this.model;\r\n },\r\n SelectedNode: function () {\r\n return this.selectednode;\r\n },\r\n SelectedModel: function () {\r\n return this.selectedmodel;\r\n },\r\n hasNameChanged: function () {\r\n switch (this.mode) {\r\n case 'UserControl':\r\n case 'Action':\r\n case 'UserDefinedArea':\r\n return this.model && (this.model.Name !== this.originalname);\r\n\r\n case 'MenuItem':\r\n return this.model && this.model.MenuItemData && (this.model.MenuItemData.Title !== this.originalname);\r\n\r\n case 'Schema':\r\n return this.model && (this.model.Namespace + '.' + this.model.Name) !== this.originalname;\r\n\r\n case 'Cassandra':\r\n return this.model && (this.model.Keyspace !== this.originalname);\r\n\r\n default:\r\n return false;\r\n }\r\n },\r\n modify_DateTime: function () {\r\n if (!this.model || !this.model.$Modify_DateTime)\r\n return '';\r\n\r\n const dt = new Date(Date.parse(this.model.$Modify_DateTime));\r\n return formatDate(dt);\r\n },\r\n },\r\n methods: {\r\n ...methods,\r\n ...filters,\r\n async Refresh() {\r\n utils.log('Refresh');\r\n if (this.controlData.SourceType == 'Url' && this.sourceurl)\r\n try {\r\n const url = utils.evaluate(this.sourceurl, this);\r\n if (url) {\r\n let apiRequest = {\r\n method: 'GET',\r\n url: url,\r\n doNotUseWebsocket: true,\r\n flatten: true\r\n };\r\n this.model = await api.apiRequest(apiRequest);\r\n }\r\n // this.model = await utils.api.get();\r\n }\r\n catch (e) {\r\n utils.warn('ControlDesigner Source Url ' + this.controlData.SourceUrl + ' failed to evaluate: ' + e);\r\n }\r\n else if (this.sourceraw)\r\n try {\r\n this.model = utils.evaluateObject(this.sourceraw, this);\r\n }\r\n catch (e) {\r\n utils.warn('ControlDesigner Source Raw ' + this.controlData.SourceRaw + ' failed to evaluate: ' + e);\r\n }\r\n\r\n this.editing_since = new Date();\r\n this.history = [];\r\n this.reset_breadcrumb = 0;\r\n this.save_in_progress = false;\r\n this.can_autoreplace = false;\r\n this.forceOverwrite = false;\r\n this.rawjson_ischanged = false;\r\n this.modelHasChanged();\r\n try {\r\n this.fullName = await utils.api.get('Apps/User/FullName');\r\n }\r\n catch (e) {\r\n utils.log('Apps/User/FullName failed: ' + e);\r\n }\r\n if (!this.fullName) this.fullName = 'Query Error';\r\n },\r\n async RefreshSelected() {\r\n if (this.controlData.SelectedSchema.Type == 'URL' && this.sel_schemaurl)\r\n try {\r\n const url = utils.evaluate(this.sel_schemaurl, this);\r\n if (url)\r\n this.sel_schema = await utils.schema.get(url);\r\n else\r\n this.sel_schema = null;\r\n }\r\n catch (e) {\r\n utils.warn('ControlDesigner sel_schemaurl ' + this.controlData.SelectedSchema.Definition + ' failed to evaluate: ' + e);\r\n this.sel_schema = null;\r\n }\r\n else if (this.sel_schemaraw) {\r\n this.sel_schema = utils.evaluateObject(this.sel_schemaraw, this);\r\n await utils.schema.resolve(this.sel_schema);\r\n }\r\n else if (this.sel_schema)\r\n await utils.schema.resolve(this.sel_schema);\r\n\r\n if (this.controlData.SelectedModel.Type == 'URL' && this.sel_modelurl) {\r\n const url = utils.evaluate(this.sel_modelurl, this);\r\n if (url) {\r\n let apiRequest = {\r\n method: 'GET',\r\n url: url,\r\n doNotUseWebsocket: true,\r\n flatten: true\r\n };\r\n this.sel_model = await api.apiRequest(apiRequest);\r\n }\r\n // this.sel_model = await utils.api.get(url);\r\n }\r\n else if (this.controlData.SelectedModel.Type == 'RawInterpolated' && this.sel_modelvalue)\r\n try {\r\n this.sel_model = utils.evaluateObject(this.sel_modelvalue, this);\r\n }\r\n catch (e) {\r\n utils.warn('ControlDesigner sel_modelvalue ' + this.controlData.SelectedModel.Definition + ' failed to evaluate: ' + e);\r\n this.sel_model = {};\r\n }\r\n else if (this.controlData.SelectedModel.Type == 'Raw' && this.controlData.SelectedModel.Definition)\r\n this.sel_model = this.controlData.SelectedModel.Definition;\r\n else\r\n this.sel_model = {};\r\n\r\n if (this.sel_schema && this.sel_model) {\r\n const resolved = utils.schema.resolve_Of(this.sel_schema);\r\n\r\n for (var key in resolved.properties) {\r\n const element = resolved.properties[key];\r\n\r\n if (('default' in element) && !(key in this.sel_model)) {\r\n Vue.set(this.sel_model, key, element['default']);\r\n }\r\n else if (element.type === 'object' && !(key in this.sel_model)) {\r\n const model = utils.schema.getDefaultModel(element);\r\n Vue.set(this.sel_model, key, model);\r\n }\r\n }\r\n }\r\n },\r\n nameHasChanged() {\r\n switch (this.mode) {\r\n case 'UserControl':\r\n case 'Action':\r\n case 'UserDefinedArea':\r\n this.originalname = this.model ? this.model.Name : '';\r\n break;\r\n case 'MenuItem':\r\n this.originalname = this.model ? this.model.MenuItemData.Title : '';\r\n break;\r\n case 'Schema':\r\n this.originalname = this.model ? (this.model.Namespace + '.' + this.model.Name) : '';\r\n break;\r\n case 'Cassandra':\r\n this.originalname = this.model ? this.model.Keyspace : '';\r\n break;\r\n }\r\n this.editing_since = new Date();\r\n },\r\n modelHasChanged() {\r\n if (this.model)\r\n switch (this.model.$typeSchema) {\r\n case \"/schema/public/Platform.Schema.Documents.v1/Document_UserControl\":\r\n case \"/schema/public/Platform.Schema.Documents.v1/Document_UserControlTest\":this.mode = 'UserControl'; break;\r\n case \"/schema/public/Platform.Schema.Documents.v1/Document_UserAction\": this.mode = 'Action'; break;\r\n case \"/schema/public/Platform.Schema.Documents.v1/Document_UserDefinedArea\": this.mode = 'UserDefinedArea'; break;\r\n case \"/schema/public/Platform.Schema.Documents.v1/Document_CareCenterMenuItem\":\r\n case \"/schema/public/Platform.Schema.Documents.v1/Document_CareCenterMenuChildMenuItem\":\r\n case \"/schema/public/Platform.Schema.Documents.v1/Document_CareCenterMenuPopupMenuItem\":\r\n case \"/schema/public/Platform.Schema.Documents.v1/Document_BackgroundServices\":\r\n this.mode = 'MenuItem';\r\n break;\r\n\r\n case \"/schema/public/Platform.Schema.Documents.v1/Document_Schema\": this.mode = \"Schema\"; break;\r\n case \"/schema/public/Platform.Schema.Documents.v1/Document_CassandraKeyspace\": this.mode = \"Cassandra\"; break;\r\n\r\n default:\r\n if ('ControlType' in this.model)\r\n this.mode = 'UserControl';\r\n else\r\n this.mode = 'Unknown';\r\n break;\r\n }\r\n\r\n this.loadDocRevisions();\r\n this.nameHasChanged();\r\n this.modelDataHasChanged();\r\n if (this.model)\r\n this.readModifyUserName();\r\n\r\n this.selectednode = null;\r\n this.selectedmodel = null;\r\n this.history = [];\r\n\r\n utils.executeAndCompileAllActions(this.controlData.Actions, { SelectedModel: this.selectedmodel }, this);\r\n //for (var i = 0; i < this.actions.length; i++)\r\n // utils.executeAction(this.actions[i], null, this);\r\n },\r\n modelDataHasChanged() {\r\n if (this.modelData_watch$) {\r\n this.modelData_watch$(); // Release watch\r\n this.modelData_watch$ = null;\r\n }\r\n\r\n if (this.model) {\r\n switch (this.model.$typeSchema) {\r\n case \"/schema/public/Platform.Schema.Documents.v1/Document_UserControl\":\r\n case \"/schema/public/Platform.Schema.Documents.v1/Document_UserControlTest\":\r\n this.dynamicControl = utils.getDynamicComponent(null, this.model.Data);\r\n this.type = this.model.Data.ControlType;\r\n this.designmodel = this.model.Data;\r\n this.cData = this.model.Data.ControlData;\r\n // Monitor the Data because this isn't watched anywhere else\r\n this.modelData_watch$ = this.$watch(\r\n function () {\r\n return this.model.Data;\r\n },\r\n function (val, oldval) {\r\n utils.log('modelData_watch$ fired for UserControl');\r\n this.modelDataHasChanged();\r\n });\r\n break;\r\n\r\n case \"/schema/public/Platform.Schema.Documents.v1/Document_UserAction\":\r\n this.dynamicControl = utils.getDynamicAction(this.model.Data);\r\n if (this.dynamicControl) {\r\n this.type = this.model.Data.ActionType;\r\n this.designmodel = this.model.Data;\r\n this.cData = this.model.Data.ActionData; \r\n }\r\n else {\r\n this.type = this.model.Data.ActionType; // 'Unknown';\r\n this.designmodel = this.model.Data;\r\n this.cData = this.model.Data.ActionData ? this.model.Data.ActionData : this.model.Data;\r\n }\r\n // Monitor the Data because this isn't watched anywhere else\r\n this.modelData_watch$ = this.$watch(\r\n function () {\r\n return this.model.Data;\r\n },\r\n function (val, oldval) {\r\n utils.log('modelData_watch$ fired for UserAction');\r\n this.modelDataHasChanged();\r\n });\r\n break;\r\n\r\n case \"/schema/public/Platform.Schema.Documents.v1/Document_UserDefinedArea\":\r\n this.dynamicControl = 'stack-vertical';\r\n this.type = 'VerticalStack';\r\n this.designmodel = this.model;\r\n this.cData = this.model;\r\n break;\r\n\r\n case \"/schema/public/Platform.Schema.Documents.v1/Document_CareCenterMenuPopupMenuItem\":\r\n this.dynamicControl = 'carecenter-popupmenu';\r\n this.type = this.model.MenuItemType;\r\n this.designmodel = this.model;\r\n this.cData = this.model.MenuItemData;\r\n break;\r\n\r\n case \"/schema/public/Platform.Schema.Documents.v1/Document_CareCenterMenuItem\":\r\n case \"/schema/public/Platform.Schema.Documents.v1/Document_CareCenterMenuChildMenuItem\":\r\n this.dynamicControl = 'carecenter-menu';\r\n this.type = this.model.MenuItemType;\r\n this.designmodel = this.model;\r\n this.cData = this.model.MenuItemData.ControlData;\r\n break;\r\n\r\n case \"/schema/public/Platform.Schema.Documents.v1/Document_BackgroundServices\":\r\n this.dynamicControl = 'background-service';\r\n this.type = this.model.MenuItemType;\r\n this.designmodel = this.model;\r\n this.cData = this.model.MenuItemData;\r\n break;\r\n\r\n case \"/schema/public/Platform.Schema.Documents.v1/Document_Schema\":\r\n this.type = 'Unknown';\r\n this.designmodel = null;\r\n this.cData = null;\r\n break;\r\n\r\n case \"/schema/public/Platform.Schema.Documents.v1/Document_CassandraKeyspace\":\r\n this.type = 'Unknown';\r\n this.designmodel = null;\r\n this.cData = null;\r\n break;\r\n\r\n default:\r\n if ('ControlType' in this.model) {\r\n this.dynamicControl = utils.getDynamicComponent(null, this.model);\r\n this.type = this.model.ControlType;\r\n this.designmodel = this.model;\r\n this.cData = this.model.ControlData;\r\n }\r\n else {\r\n this.type = 'Unknown';\r\n this.designmodel = this.model;\r\n this.cData = this.model.Data ? this.model.Data.ControlData : {};\r\n }\r\n break;\r\n }\r\n\r\n if (!this.dynamicControl)\r\n this.dynamicControl = 'default-unknown';\r\n\r\n this.dynamicControl += '-dsgn';\r\n }\r\n },\r\n async readModifyUserName() {\r\n if (this.model.$Modify_UserID) {\r\n const uri = 'Apps/Common/UserInfo/' + this.model.$Modify_UserID;\r\n const res = await utils.api.get(uri);\r\n\r\n this.modify_UserName = res.FullName;\r\n }\r\n else\r\n this.modify_UserName = '';\r\n },\r\n sync(prop, value) {\r\n let model = this.model;\r\n if (prop.includes('.')) {\r\n const parts = prop.split('.');\r\n for (let i = 0; i < parts.length - 1; i++)\r\n model = model[parts[i]];\r\n\r\n Vue.set(model, parts[parts.length - 1], value);\r\n }\r\n else\r\n Vue.set(model, prop, value);\r\n },\r\n syncSchemaName(value) {\r\n let newname = value;\r\n let newns = '';\r\n const idx = newname.lastIndexOf('.');\r\n if (idx >= 0) {\r\n newns = newname.substr(0, idx);\r\n newname = newname.substr(idx + 1);\r\n }\r\n Vue.set(this.model, 'Namespace', newns);\r\n Vue.set(this.model, 'Name', newname);\r\n },\r\n async saveKeyspace() {\r\n const uri = 'Apps/Raw/CassandraKeyspace';\r\n\r\n if (this.model.$DeployID == 'sync') this.model.$DeployID = 'dev';\r\n\r\n this.save_in_progress = true;\r\n const data = utils.cleanModel(this.model);\r\n const res = await utils.api.request('POST', uri, data, false, true);\r\n this.save_in_progress = false;\r\n\r\n if (res.Result) {\r\n // Update these so we can save again\r\n this.model._id = res.Output.Id;\r\n this.model._rev = res.Output.Rev;\r\n this.nameHasChanged();\r\n this.loadDocRevisions();\r\n }\r\n else\r\n alert(\"Could not save! \" + JSON.stringify(res, null, 4));\r\n },\r\n async saveKeyspaceAsNew() {\r\n const uri = 'Apps/Raw/CassandraKeyspace';\r\n\r\n const old_id = this.model._id;\r\n const old_rev = this.model._rev;\r\n\r\n Vue.delete(this.model, '_id');\r\n Vue.delete(this.model, '_rev');\r\n\r\n if (this.model.$DeployID == 'sync') this.model.$DeployID = 'dev';\r\n\r\n try {\r\n this.save_in_progress = true;\r\n const res = await utils.api.request('POST', uri, utils.cleanModel(this.model), false, true);\r\n this.save_in_progress = false;\r\n\r\n if (res.Result) {\r\n // Update these so we can save again\r\n this.model._id = res.Output.Id;\r\n this.model._rev = res.Output.Rev;\r\n this.nameHasChanged();\r\n this.doc_revisions = [];\r\n }\r\n else {\r\n // Restore these so we can save again\r\n this.model._id = old_id;\r\n this.model._rev = old_rev;\r\n\r\n alert(\"Could not save! \" + JSON.stringify(res, null, 4));\r\n }\r\n }\r\n catch (e) {\r\n // Restore these so we can save again\r\n this.model._id = old_id;\r\n this.model._rev = old_rev;\r\n\r\n alert(\"Error saving: \" + e);\r\n this.save_in_progress = false;\r\n }\r\n },\r\n async saveUserControl(type, autoReplace) {\r\n let rev;\r\n let uri = 'Apps/Raw/UI/' + (type || 'UserControl');\r\n if (autoReplace) {\r\n uri += '?AutoReplace=' + (autoReplace ? 'true' : 'false');\r\n rev = this.model._rev;\r\n Vue.delete(this.model, '_rev');\r\n }\r\n\r\n if (this.model.$DeployID == 'sync') this.model.$DeployID = 'dev';\r\n\r\n this.save_in_progress = true;\r\n const data = utils.cleanModel(this.model);\r\n let res;\r\n try {\r\n res = await utils.api.request('POST', uri, data, false, true);\r\n }\r\n catch (e) {\r\n alert(`${JSON.stringify(e, null, 4)}`);\r\n }\r\n finally {\r\n this.save_in_progress = false;\r\n }\r\n\r\n if (res && res.Result) {\r\n //alert('Saved! ' + JSON.stringify(res, null, 4));\r\n\r\n // Update these so we can save again\r\n this.model._id = res.Output.Id;\r\n this.model._rev = res.Output.Rev;\r\n this.forceOverwrite = false;\r\n this.can_autoreplace = false;\r\n this.originalname = this.model.Name;\r\n this.loadDocRevisions();\r\n }\r\n else {\r\n alert(\"Could not save! \" + JSON.stringify(res, null, 4));\r\n\r\n if (rev)\r\n this.model._rev = rev;\r\n\r\n if (res && res.Output && res.Output.StatusCode == 409) // 409 : Conflict\r\n this.can_autoreplace = true;\r\n }\r\n },\r\n async saveMenuItem(autoReplace) {\r\n // POST, URL: https://api-dev1.callcorplab.com/Apps/Raw/UI/MenuItem\r\n let rev;\r\n let uri = 'Apps/Raw/UI/MenuItem';\r\n if (autoReplace) {\r\n uri += '?AutoReplace=' + (autoReplace ? 'true' : 'false');\r\n rev = this.model._rev;\r\n Vue.delete(this.model, '_rev');\r\n }\r\n\r\n if (this.model.$DeployID == 'sync') this.model.$DeployID = 'dev';\r\n\r\n this.save_in_progress = true;\r\n const data = utils.cleanModel(this.model);\r\n const res = await utils.api.request('POST', uri, data, false, true);\r\n this.save_in_progress = false;\r\n\r\n if (res.Result) {\r\n //alert('Saved! ' + JSON.stringify(res, null, 4));\r\n\r\n // Update these so we can save again\r\n this.model._id = res.Output.Id;\r\n this.model._rev = res.Output.Rev;\r\n this.forceOverwrite = false;\r\n this.can_autoreplace = false;\r\n this.originalname = this.model.MenuItemData.Title;\r\n this.loadDocRevisions();\r\n }\r\n else {\r\n alert(\"Could not save! \" + JSON.stringify(res, null, 4));\r\n\r\n if (rev)\r\n this.model._rev = rev;\r\n\r\n if (res.Output.StatusCode == 409) // 409 : Conflict\r\n this.can_autoreplace = true;\r\n }\r\n },\r\n async saveSchema() {\r\n const uri = 'Apps/Raw/Schema';\r\n\r\n if (this.model.$DeployID == 'sync') this.model.$DeployID = 'dev';\r\n\r\n this.save_in_progress = true;\r\n const data = utils.cleanModel(this.model);\r\n let res;\r\n try {\r\n res = await utils.api.request('POST', uri, data, false, true);\r\n }\r\n catch (e) {\r\n alert(`${JSON.stringify(e, null, 4)}`);\r\n }\r\n finally {\r\n this.save_in_progress = false;\r\n }\r\n\r\n if (res && res.Result) {\r\n // Update these so we can save again\r\n this.model._id = res.Output.Id;\r\n this.model._rev = res.Output.Rev;\r\n this.originalname = this.model.Namespace + '.' + this.model.Name;\r\n this.loadDocRevisions();\r\n }\r\n else\r\n alert(\"Could not save! \" + JSON.stringify(res, null, 4));\r\n },\r\n async saveUserControlAsNew(type) {\r\n const uri = 'Apps/Raw/UI/' + (type || 'UserControl');\r\n\r\n const old_id = this.model._id;\r\n const old_rev = this.model._rev;\r\n\r\n Vue.delete(this.model, '_id');\r\n Vue.delete(this.model, '_rev');\r\n\r\n if (this.model.$DeployID == 'sync') this.model.$DeployID = 'dev';\r\n\r\n this.save_in_progress = true;\r\n const res = await utils.api.request('POST', uri, utils.cleanModel(this.model), false, true);\r\n this.save_in_progress = false;\r\n\r\n if (res.Result) {\r\n // Update these so we can save again\r\n this.model._id = res.Output.Id;\r\n this.model._rev = res.Output.Rev;\r\n this.nameHasChanged();\r\n\r\n //alert('Saved as New! ' + JSON.stringify(res, null, 4));\r\n this.doc_revisions = [];\r\n }\r\n else {\r\n // Restore these so we can save again\r\n this.model._id = old_id;\r\n this.model._rev = old_rev;\r\n\r\n alert(\"Could not save! \" + JSON.stringify(res, null, 4));\r\n }\r\n },\r\n async saveMenuItemAsNew() {\r\n const uri = 'Apps/Raw/UI/MenuItem';\r\n\r\n const old_id = this.model._id;\r\n const old_rev = this.model._rev;\r\n\r\n Vue.delete(this.model, '_id');\r\n Vue.delete(this.model, '_rev');\r\n\r\n if (this.model.$DeployID == 'sync') this.model.$DeployID = 'dev';\r\n\r\n this.save_in_progress = true;\r\n const res = await utils.api.request('POST', uri, utils.cleanModel(this.model), false, true);\r\n this.save_in_progress = false;\r\n\r\n if (res.Result) {\r\n // Update these so we can save again\r\n this.model._id = res.Output.Id;\r\n this.model._rev = res.Output.Rev;\r\n this.nameHasChanged();\r\n\r\n //alert('Saved as New! ' + JSON.stringify(res, null, 4));\r\n this.doc_revisions = [];\r\n }\r\n else {\r\n // Restore these so we can save again\r\n this.model._id = old_id;\r\n this.model._rev = old_rev;\r\n\r\n alert(\"Could not save! \" + JSON.stringify(res, null, 4));\r\n }\r\n },\r\n async saveSchemaAsNew() {\r\n const uri = 'Apps/Raw/Schema';\r\n\r\n const old_id = this.model._id;\r\n const old_rev = this.model._rev;\r\n\r\n Vue.delete(this.model, '_id');\r\n Vue.delete(this.model, '_rev');\r\n\r\n if (this.model.$DeployID == 'sync') this.model.$DeployID = 'dev';\r\n\r\n try {\r\n this.save_in_progress = true;\r\n const res = await utils.api.request('POST', uri, utils.cleanModel(this.model), false, true);\r\n this.save_in_progress = false;\r\n\r\n if (res.Result) {\r\n // Update these so we can save again\r\n this.model._id = res.Output.Id;\r\n this.model._rev = res.Output.Rev;\r\n this.nameHasChanged();\r\n this.doc_revisions = [];\r\n }\r\n else {\r\n // Restore these so we can save again\r\n this.model._id = old_id;\r\n this.model._rev = old_rev;\r\n\r\n alert(\"Could not save! \" + JSON.stringify(res, null, 4));\r\n }\r\n }\r\n catch (e) {\r\n // Restore these so we can save again\r\n this.model._id = old_id;\r\n this.model._rev = old_rev;\r\n\r\n alert(\"Error saving: \" + e);\r\n this.save_in_progress = false;\r\n }\r\n },\r\n async saveExtractedEntity(type, newmodel) {\r\n const uri = 'Apps/Raw/UI/' + (type || 'UserControl');\r\n\r\n this.save_in_progress = true;\r\n const res = await utils.api.request('POST', uri, utils.cleanModel(newmodel), false, true);\r\n this.save_in_progress = false;\r\n\r\n if (!res.Result) {\r\n alert(\"Could not save! \" + JSON.stringify(res, null, 4));\r\n }\r\n return res.Result;\r\n },\r\n selectNodeInternal(node, model) {\r\n // node: The parent object that is currently in the property grid\r\n // model: The object that is being navigated to, which will become the object in the property grid\r\n this.selectednode = node;\r\n this.selectedmodel = model || node.designmodel;\r\n\r\n // This fires the ControlDesigner's Actions, which can/may alter the property grid for us (can't remember yet)\r\n utils.executeAndCompileAllActions(this.controlData.Actions, { SelectedModel: this.selectedmodel }, this);\r\n //for (var i = 0; i < this.actions.length; i++)\r\n // utils.executeAction(this.actions[i], null, this);\r\n\r\n // This looks specifically for UserActions and checks to see if there is a designer. If so, the ControlDesigner\r\n // will save the previous designer into a breadcrumb and change the display to show the action's designer.\r\n\r\n // We also wish to render a designer for the BasicPopupMenu's controls (they display when clicking on the button).\r\n // To do this, we need to know what the parent (node) is and that we are attempting to view the control's controls.\r\n // Discovered that node.designmodel.ControlType == 'BasicPopupMenu'\r\n if (model && node && node.designmodel) {\r\n let dynamicControl = utils.getDynamicHelperControl(node.designmodel.ControlType, model);\r\n if (dynamicControl) {\r\n this.history.push({\r\n dynamicControl: this.dynamicControl,\r\n type: this.type,\r\n designmodel: this.designmodel,\r\n cData: this.cData,\r\n });\r\n\r\n dynamicControl += '-dsgn';\r\n\r\n this.dynamicControl = dynamicControl;\r\n this.type = model.ControlType;\r\n this.designmodel = model;\r\n this.cData = model.ControlData;\r\n return;\r\n }\r\n }\r\n\r\n if (model && model.$typeSchema && model.$typeSchema.includes('/schema/public/Platform.Schema.UIActions.v1/UIAction_')) {\r\n let dynamicAction = utils.getDynamicAction(model);\r\n if (!dynamicAction)\r\n return;\r\n\r\n this.history.push({\r\n dynamicControl: this.dynamicControl,\r\n type: this.type,\r\n designmodel: this.designmodel,\r\n cData: this.cData,\r\n });\r\n\r\n dynamicAction += '-dsgn';\r\n\r\n this.dynamicControl = dynamicAction; // 'stack-vertical-dsgn';\r\n this.type = model.ActionType;\r\n this.designmodel = model;\r\n this.cData = model.ActionData;\r\n }\r\n },\r\n SelectNode(node, model) {\r\n this.selectednode = node;\r\n this.selectedmodel = model || node.designmodel;\r\n\r\n utils.executeAndCompileAllActions(this.controlData.Actions, { SelectedModel: this.selectedmodel }, this);\r\n\r\n //for (var i = 0; i < this.actions.length; i++)\r\n // utils.executeAction(this.actions[i], null, this);\r\n\r\n // Tell property grid to clear the breadcrumb since we are being navigated externally.\r\n this.$emit('reset-breadcrumb');\r\n },\r\n ExternalNavigate(url) {\r\n utils.log('ControlDesigner.ExternalNavigate(url:' + url + ')');\r\n this.ControlURL = url;\r\n\r\n utils.executeAndCompileAllActions(this.controlData.ExternalActions, { ControlURL: url }, this);\r\n //for (var i = 0; i < this.externalactions.length; i++)\r\n // utils.executeAction(this.externalactions[i], null, this);\r\n },\r\n ExternalNavigateToName(type, name) {\r\n utils.executeAndCompileAllActions(this.controlData.OpenExternalActions, { Type: type, Name: name }, this);\r\n },\r\n navigateUp() {\r\n if (this.selectednode) {\r\n this.selectNodeInternal(this.selectednode.$parent);\r\n }\r\n },\r\n navigateToModel(value) {\r\n this.selectNodeInternal(this.selectednode, value);\r\n },\r\n navigateBreadcrumb(index) {\r\n const bc = this.history[index];\r\n this.dynamicControl = bc.dynamicControl;\r\n this.type = bc.type;\r\n this.designmodel = bc.designmodel;\r\n this.cData = bc.cData;\r\n\r\n if (index === 0)\r\n this.history = [];\r\n else\r\n this.history = this.history.slice(0, index);\r\n\r\n //for (var i = 0; i < this.actions.length; i++)\r\n // utils.executeAction(this.actions[i]);\r\n },\r\n\r\n splitterMouseDown(e) {\r\n document.addEventListener('mousemove', this.splitterMouseMove);\r\n document.addEventListener('mouseup', this.splitterMouseUp);\r\n this.initialX = e.clientX;\r\n this.initialWidth = this.designer_width;\r\n e.cancelBubble = true;\r\n e.stopPropagation();\r\n },\r\n splitterMouseMove(e) {\r\n const dx = e.clientX - this.initialX;\r\n this.designer_width = this.initialWidth + dx;\r\n e.cancelBubble = true;\r\n e.stopPropagation();\r\n },\r\n splitterMouseUp(e) {\r\n document.removeEventListener('mousemove', this.splitterMouseMove);\r\n document.removeEventListener('mouseup', this.splitterMouseUp);\r\n e.cancelBubble = true;\r\n e.stopPropagation();\r\n },\r\n\r\n togglerawjson(visible) {\r\n if (visible) {\r\n this.temp_rawjson = JSON.stringify(this.model, null, 4);\r\n this.rawjson_ischanged = false;\r\n }\r\n this.viewjson = visible;\r\n },\r\n rawjsonchanged(text) {\r\n this.temp_rawjson = text;\r\n this.rawjson_ischanged = true;\r\n },\r\n commitrawjson() {\r\n try {\r\n const obj = JSON.parse(this.temp_rawjson);\r\n this.rawjson_ischanged = false;\r\n\r\n for (let prop in this.model)\r\n if (this.model.hasOwnProperty(prop))\r\n delete this.model[prop];\r\n \r\n for (let prop in obj)\r\n if (obj.hasOwnProperty(prop))\r\n Vue.set(this.model, prop, obj[prop]);\r\n\r\n this.modelHasChanged();\r\n\r\n return true;\r\n }\r\n catch (e) {\r\n alert(e);\r\n return false;\r\n }\r\n },\r\n revertrawjson() {\r\n this.temp_rawjson = JSON.stringify(this.model, null, 4);\r\n this.rawjson_ischanged = false;\r\n },\r\n test() {\r\n const origin = window.location.origin;\r\n const path = window.location.pathname;\r\n const name = (this.model.Public ? 'public/' : '') + this.model.Name;\r\n //const access_token = encodeURIComponent(this.Root.Root.access_token);\r\n\r\n const url = origin + path + '#' + name;\r\n\r\n window.open(url, '_blank');\r\n },\r\n async verifyHsm() {\r\n const hsmname = (this.model.Public ? 'public/' : '') + this.model.Name;\r\n const url = 'Apps/HSM/Errors/' + hsmname + '?forceReload=true';\r\n try {\r\n const res = await utils.api.get(url);\r\n if (res)\r\n this.hsm_errors = res;\r\n else\r\n this.hsm_errors = [];\r\n }\r\n catch (e) {\r\n utils.log(JSON.stringify(e));\r\n\r\n this.hsm_errors = [{\r\n Type: 'Critical',\r\n Name: this.model.Name,\r\n Message: e.response.statusText,\r\n ObjectId: ''\r\n }];\r\n }\r\n },\r\n revert(e) {\r\n this.model = null;\r\n this.Refresh();\r\n },\r\n async loadDocRevisions() {\r\n let db = 'ui';\r\n\r\n if (this.model && this.model._id)\r\n this.doc_revisions = await utils.api.get('Apps/DocumentRevisions/' + db + '?id=' + encodeURIComponent(this.model._id));\r\n else\r\n this.doc_revisions = [];\r\n },\r\n async loadAuditHistory() {\r\n if (this.model && this.model._id)\r\n // Apps/AuditHistory/ChangesById?DocumentID=83b91d21-c43b-4c89-8733-549ff6a6ff28&sortcol=time&startKey=[]&descending=true&maxMonths=12\r\n this.doc_changes = await utils.api.get('Apps/AuditHistory/ChangesById?DocumentId=' + encodeURIComponent(this.model._id) + '&sortcol=time&startKey=[]&descending=true&maxMonths=' + this.max_months_history);\r\n else\r\n this.doc_changes = [];\r\n },\r\n async loadRevision(rev) {\r\n let db = 'ui';\r\n let url = 'Apps/Document/' + db + '/' + this.model._id + '?rev=' + rev;\r\n this.ExternalNavigate(url);\r\n },\r\n async loadAuditHistoryVersion(moddatetime) {\r\n let doc = this.doc_changes.find(a => a.time == moddatetime);\r\n let url;\r\n if (doc == null)\r\n url = 'Apps/Raw/UI/' + this.model.$doctype + '/' + this.model._id;\r\n else\r\n url = 'Apps/AuditHistory/ChangedContent/' + doc.document_refid;\r\n\r\n this.ExternalNavigate(url);\r\n },\r\n async refreshTracking() {\r\n if (this.model && this.model._id) {\r\n const obj = {\r\n user: this.fullName || 'Unknown',\r\n since: this.editing_since ? this.editing_since.toString() : new Date(),\r\n revision: this.model ? this.model._rev : '',\r\n };\r\n try {\r\n const edits = await utils.api.request('POST', 'Apps/UIExt/Tracker?key=' + this.model._id, obj);\r\n Vue.set(this, 'edits', edits);\r\n }\r\n catch (e) {\r\n utils.error('Error posting to edit tracker', e);\r\n }\r\n }\r\n const tmp = this;\r\n this.timeoutReference = window.setTimeout(async () => {\r\n tmp.refreshTracking();\r\n }, 10 * 1000);\r\n },\r\n clearTracking() {\r\n if (!this.model || !this.model._id) return;\r\n utils.api.request('DELETE', 'Apps/UIExt/Tracker?key=' + this.model._id);\r\n },\r\n\r\n js_code_changed(text) {\r\n if (this.js_code)\r\n this.js_code.Javascript = text;\r\n },\r\n findNode(parent, id) {\r\n if (parent && typeof parent === 'object' && '$objectId' in parent)\r\n if (parent['$objectId'] == id)\r\n return parent;\r\n else\r\n utils.log(' '.repeat(this.indent) + '$objectId = ' + parent['$objectId']);\r\n\r\n if (!parent)\r\n return null;\r\n\r\n this.indent = this.indent + 1;\r\n\r\n const keys = Object.keys(parent);\r\n for (let j = 0; j < keys.length; j++) {\r\n const key = keys[j];\r\n const child = parent[key];\r\n utils.log(' '.repeat(this.indent) + 'key:' + key);\r\n\r\n if (typeof child === 'object') {\r\n if (Array.isArray(child)) {\r\n utils.log(' '.repeat(this.indent) + 'is array');\r\n for (let i = 0; i < child.length; i++) {\r\n const node = this.findNode(child[i], id);\r\n if (node) return node;\r\n }\r\n }\r\n else {\r\n utils.log(' '.repeat(this.indent) + 'is object, scanning child');\r\n const node = this.findNode(child, id);\r\n if (node) return node;\r\n }\r\n }\r\n else\r\n utils.log(' '.repeat(this.indent) + key + ' : ' + child);\r\n }\r\n this.indent = this.indent - 1;\r\n return null;\r\n },\r\n hsmNavigateTo: function (id) {\r\n this.indent = 0;\r\n let node = this.findNode(this.model, id);\r\n if (node) {\r\n this.navigateToModel(node);\r\n\r\n //this.selectednode = node;\r\n\r\n //for (var i = 0; i < this.actions.length; i++)\r\n // utils.executeAction(this.actions[i]);\r\n }\r\n },\r\n getHsmErrors: function (h) {\r\n const style = {\r\n overflow: \"auto\",\r\n display: \"flex\",\r\n \"flex-direction\": \"column\",\r\n \"min-height\": \"100px\",\r\n \"min-width\": \"600px\",\r\n \"padding\": \"5px 10px 0 0\",\r\n \"margin\": \"0\",\r\n \"resize\": \"both\"\r\n };\r\n const errors = [];\r\n for (let i = 0; i < this.hsm_errors.length; i++) {\r\n const e = this.hsm_errors[i];\r\n let jump;\r\n if (e.ObjectId)\r\n jump = this.hsmNavigateTo(e.ObjectId)}>Goto;\r\n else\r\n jump = Error;\r\n\r\n errors.push(\r\n \r\n {jump}\r\n {e.Type}\r\n {e.Message}\r\n \r\n );\r\n }\r\n return (\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n {errors}\r\n
TypeError
\r\n
\r\n
\r\n
);\r\n },\r\n refreshJSCode: function () {\r\n this.js_enabled = false;\r\n this.js_open = false;\r\n this.js_code = null;\r\n },\r\n toggleJSOpen: function () {\r\n this.js_open = !this.js_open;\r\n this.js_enabled = true;\r\n },\r\n getJavascriptEditor: function (h) {\r\n const style = {\r\n overflow: \"auto\",\r\n display: \"flex\",\r\n \"flex-direction\": \"column\",\r\n \"min-height\": \"300px\",\r\n \"min-width\": \"600px\",\r\n \"padding\": \"0 10px 10px 10px\",\r\n \"margin\": \"0\",\r\n \"resize\": \"both\",\r\n \"direction\": \"rtl\",\r\n \"transform\": \"rotate(180deg)\"\r\n };\r\n\r\n if (!this.js_enabled)\r\n return null;\r\n\r\n return h('div', {\r\n staticStyle: style,\r\n directives: [{\r\n name: \"show\",\r\n rawName: \"v-show\",\r\n value: (this.js_open),\r\n expression: \"js_open\"\r\n }]\r\n }, [\r\n
\r\n
\r\n this.js_code_changed(text)}>\r\n \r\n
\r\n
\r\n ]);\r\n }\r\n },\r\n props: {\r\n name: '',\r\n root: null,\r\n parentType: '',\r\n controlData: {}\r\n },\r\n render(h) {\r\n if (!this.model)\r\n return
Loading...
;\r\n\r\n const deployoptions = [];\r\n deployoptions.push({ text: \"Not Assigned\", value: null });\r\n if (Array.isArray(this.controlData.Deployments))\r\n {\r\n for (let i = 0; i < this.controlData.Deployments.length; i++)\r\n {\r\n const dep = this.controlData.Deployments[i];\r\n deployoptions.push({ text: dep.Name, value: dep.Value });\r\n }\r\n }\r\n\r\n const styleLink = \"https://docs.google.com/presentation/d/1O-ReVkqQJXzXr5DUkY8YSSqIbuLqm4f511zjdYSmnzg/edit#slide=id.p\";\r\n let styleID = Style Guide;\r\n\r\n let deployID;\r\n const deploytitle = \"Sets the deployment flag for this document\";\r\n if (this.viewjson)\r\n deployID = Test Only ;\r\n else\r\n deployID = Test Only this.model.$DeployID = e.target.checked ? 'ignore' : 'none'} />;\r\n\r\n let publicChkbx;\r\n if (this.viewjson)\r\n publicChkbx = Public: ;\r\n else\r\n publicChkbx = Public: this.sync(\"Public\", e.target.checked)} />;\r\n\r\n let viewJsonChkbx;\r\n if (this.viewjson)\r\n viewJsonChkbx = this.togglerawjson(false)}>mdi mdi-cog;\r\n else\r\n viewJsonChkbx = this.togglerawjson(true)}>mdi mdi-cog;\r\n\r\n let viewDesgnChkbx;\r\n if (this.mode == 'Schema')\r\n viewDesgnChkbx = null;\r\n else if (this.viewjson)\r\n viewDesgnChkbx = mdi mdi-window-restore;\r\n else if (this.viewdsgn)\r\n viewDesgnChkbx = this.viewdsgn = false}>mdi mdi-window-restore;\r\n else\r\n viewDesgnChkbx = this.viewdsgn = true}>mdi mdi-window-restore;\r\n\r\n let navup;\r\n if (!this.viewjson) {\r\n if (this.selectedmodel)\r\n navup = this.navigateUp()}> Up mdi-arrow-up;\r\n else\r\n navup = Up mdi-arrow-up;\r\n }\r\n\r\n const readOnly = this.VarByName('Customer') && (this.VarByName('Customer').CustomerID !== this.model.CustomerID);\r\n let readOnlyText;\r\n if (readOnly)\r\n readOnlyText = Read-Only;\r\n\r\n let header, header2;\r\n let nameLabel;\r\n let nameInput;\r\n let autoreplace;\r\n let save;\r\n let savenew;\r\n let test;\r\n let compile;\r\n let audit_history;\r\n switch (this.mode) {\r\n case 'UserControl':\r\n case 'Action':\r\n case 'UserDefinedArea':\r\n {\r\n nameLabel = \"Name:\";\r\n if (this.viewjson)\r\n nameInput = ;\r\n else\r\n nameInput = this.sync(\"Name\", value)}>;\r\n\r\n if (this.save_in_progress)\r\n save = Save;\r\n else if (readOnly)\r\n save = Save;\r\n else if (this.rawjson_ischanged)\r\n save = Save;\r\n else\r\n save = this.saveUserControl(this.mode, this.forceOverwrite)}>{this.hasNameChanged ? 'Rename' : 'Save'};\r\n\r\n if (this.can_autoreplace)\r\n autoreplace = Force Overwrite: this.forceOverwrite = e.target.checked} />;\r\n\r\n if (this.save_in_progress)\r\n savenew = Save As New;\r\n else if ((this.hasNameChanged || readOnly) && !this.rawjson_ischanged)\r\n savenew = this.saveUserControlAsNew(this.mode)}>Save As New;\r\n else\r\n savenew = Save As New;\r\n\r\n test = this.test()}>Test;\r\n\r\n if (this.model.Data && this.model.Data.ControlType == 'Hsm')\r\n compile = this.verifyHsm()}>Verify HSM;\r\n\r\n break;\r\n }\r\n\r\n case 'MenuItem':\r\n {\r\n nameLabel = \"Menu Title:\";\r\n if (this.viewjson)\r\n nameInput = ;\r\n else\r\n nameInput = this.sync(\"MenuItemData.Title\", value)}>;\r\n\r\n if (this.save_in_progress)\r\n save = Save;\r\n else if (readOnly)\r\n save = Save;\r\n else if (this.rawjson_ischanged)\r\n save = Save;\r\n else\r\n save = this.saveMenuItem(this.forceOverwrite)}>{this.hasNameChanged ? 'Rename' : 'Save'};\r\n\r\n if (this.can_autoreplace)\r\n autoreplace = Force Overwrite: this.forceOverwrite = e.target.checked} />;\r\n\r\n if (this.save_in_progress)\r\n savenew = Save As New;\r\n else if ((this.hasNameChanged || readOnly) && !this.rawjson_ischanged)\r\n savenew = this.saveMenuItemAsNew()}>Save As New;\r\n else\r\n savenew = Save As New;\r\n\r\n break;\r\n }\r\n\r\n case 'Schema':\r\n {\r\n viewDesgnChkbx = null;\r\n nameLabel = \"Schema Name:\";\r\n if (this.viewjson)\r\n nameInput = ;\r\n else\r\n nameInput = this.syncSchemaName(value)}>;\r\n\r\n if (this.save_in_progress)\r\n save = Save;\r\n else if (readOnly)\r\n save = Save;\r\n else if (this.rawjson_ischanged)\r\n save = Save;\r\n else\r\n save = this.saveSchema()}>{this.hasNameChanged ? 'Rename' : 'Save'};\r\n\r\n if (this.save_in_progress)\r\n savenew = Save As New;\r\n else if ((this.hasNameChanged || readOnly) && !this.rawjson_ischanged)\r\n savenew = this.saveSchemaAsNew()}>Save As New;\r\n else\r\n savenew = Save As New;\r\n\r\n break;\r\n }\r\n\r\n case 'Cassandra':\r\n {\r\n // Cassandra files are never public, disable checkbox\r\n publicChkbx = null;\r\n viewDesgnChkbx = null;\r\n nameLabel = \"Keyspace:\";\r\n if (this.viewjson)\r\n nameInput = ;\r\n else\r\n nameInput = this.sync(\"Keyspace\", value)}>;\r\n\r\n if (this.save_in_progress)\r\n save = Save;\r\n else if (readOnly)\r\n save = Save;\r\n else if (this.rawjson_ischanged)\r\n save = Save;\r\n else\r\n save = this.saveKeyspace()}>{this.hasNameChanged ? 'Rename' : 'Save'};\r\n\r\n if (this.save_in_progress)\r\n savenew = Save As New;\r\n else if ((this.hasNameChanged || readOnly) && !this.rawjson_ischanged)\r\n savenew = this.saveKeyspaceAsNew()}>Save As New;\r\n else\r\n savenew = Save As New;\r\n\r\n break;\r\n }\r\n }\r\n\r\n if (this.doc_changes && this.doc_changes.length) {\r\n let items = this.doc_changes.map(a => );\r\n // If the current document is in the changes list, don't bother adding it. Otherwise, put the current at the top of the list\r\n if (!this.doc_changes.find(a => a.time == this.model.$Modify_DateTime))\r\n items = [\r\n ,\r\n ...items\r\n ];\r\n audit_history = (\r\n \r\n );\r\n }\r\n\r\n header = (this.VarByName('Customer') && (this.VarByName('Customer').CustomerID == \"50\")) ? [styleID, deployID, viewJsonChkbx, viewDesgnChkbx, publicChkbx, nameLabel, nameInput] : [deployID, viewJsonChkbx, viewDesgnChkbx, publicChkbx, nameLabel, nameInput];\r\n //header = [styleID, deployID, viewJsonChkbx, viewDesgnChkbx, publicChkbx, nameLabel, nameInput];\r\n header2 = [readOnlyText, save, savenew, autoreplace, navup, compile]; // Removed test as 2nd from last (8/17/23) not useful anyway\r\n\r\n const style = {\r\n overflow: \"auto\",\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n ...utils.getSize(this.controlData.SizeOptions, this.parentType, this.$parent),\r\n };\r\n\r\n let revision_list;\r\n if (this.doc_revisions.length > 0)\r\n revision_list = (\r\n \r\n );\r\n\r\n if (this.viewjson)\r\n {\r\n let commitjson;\r\n if (this.rawjson_ischanged)\r\n commitjson = [ this.commitrawjson()}>Commit, this.revertrawjson()}>Cancel ];\r\n else\r\n commitjson = Commit;\r\n\r\n //v-tooltip - 3rd party tooltip (must be installed)\r\n //{header2} {commitjson} Revision History: {revision_list}\r\n return (\r\n
\r\n
\r\n {header}\r\n
\r\n
\r\n {header2} \r\n {commitjson} \r\n mdi-information\r\n mdi-information-outline\r\n Revision History: {revision_list}\r\n {audit_history} this.loadAuditHistory()}>mdi-refresh\r\n
\r\n\r\n
\r\n
\r\n this.rawjsonchanged(text)}>\r\n \r\n
\r\n
\r\n
\r\n );\r\n }\r\n\r\n const form = [\"*\"];\r\n\r\n const DynamicControl = this.dynamicControl;\r\n\r\n let breadcrumbs;\r\n if (this.history.length > 0) {\r\n const crumb_style = {\r\n cursor: \"pointer\",\r\n color: \"white\",\r\n backgroundColor: \"gray\",\r\n //textDecoration: \"underline\",\r\n fontSize: \"small\",\r\n fontFamily: \"Arial\",\r\n margin: \"3px\",\r\n padding: \"2px\",\r\n borderRadius: \"2px\",\r\n };\r\n const bcitems = [];\r\n for (let i = 0; i < this.history.length; i++)\r\n {\r\n const bc = this.history[i];\r\n bcitems.push(\r\n this.navigateBreadcrumb(i)}>\r\n {bc.cData.Name || bc.type}\r\n \r\n );\r\n }\r\n breadcrumbs =
{bcitems}
;\r\n }\r\n\r\n let designer;\r\n let splitter;\r\n if (this.viewdsgn && (this.mode != 'Schema' && this.mode != 'Cassandra')) {\r\n designer = (\r\n
\r\n {breadcrumbs}\r\n \r\n \r\n
\r\n );\r\n splitter = (\r\n this.splitterMouseDown(e)}>\r\n \r\n );\r\n }\r\n\r\n const editing = [];\r\n let outofdate;\r\n if (this.edits) {\r\n const colors = [ 'orange', 'yellow', 'cyan', 'magenta', 'lime'];\r\n for (let i = 0; i < this.edits.length; i++) {\r\n if (this.edits[i].user == this.fullName)\r\n continue;\r\n\r\n let thisrev, thatrev;\r\n if (this.model && this.model._rev && this.edits[i].revision) {\r\n thisrev = parseInt( this.model._rev.split('-')[0] );\r\n thatrev = parseInt( this.edits[i].revision.split('-')[0] );\r\n if (thatrev > thisrev)\r\n outofdate = (\r\n \r\n \r\n \r\n );\r\n }\r\n\r\n const color = colors[i % colors.length];\r\n const dt = new Date(this.edits[i].since);\r\n editing.push(\r\n \r\n \r\n \r\n );\r\n }\r\n }\r\n\r\n let revision;\r\n if (this.model._rev)\r\n revision = {this.model._rev.split('-')[0]};\r\n else\r\n revision = New;\r\n\r\n if (!this.js_code) {\r\n if (this.model.Data && this.model.Data.ControlData && this.model.Data.ControlData.Javascript)\r\n this.js_code = this.model.Data.ControlData;\r\n }\r\n\r\n let jseditor;\r\n if (this.js_code)\r\n {\r\n let js_refresh;\r\n if (this.js_open)\r\n js_refresh = this.refreshJSCode()} />;\r\n\r\n jseditor = (\r\n
\r\n {this.getJavascriptEditor(h)}\r\n this.toggleJSOpen()}>Javascript\r\n {js_refresh}\r\n
);\r\n }\r\n\r\n let hsmerrors;\r\n if (this.hsm_errors.length > 0)\r\n hsmerrors = (\r\n
\r\n {this.hsm_errors_open ? this.getHsmErrors(h) : null}\r\n this.hsm_errors_open = !this.hsm_errors_open}>HSM Errors\r\n
);\r\n\r\n return (\r\n
\r\n
\r\n {header}\r\n
\r\n
\r\n {outofdate}\r\n {header2} \r\n mdi-information-outline\r\n Revision:{revision_list} ({this.modify_UserName} @ {this.modify_DateTime})\r\n {audit_history} this.loadAuditHistory()}>mdi-refresh\r\n {editing}\r\n
\r\n\r\n
\r\n {designer}\r\n {splitter}\r\n\r\n
\r\n \r\n
\r\n
\r\n\r\n {jseditor}\r\n {hsmerrors}\r\n
\r\n );\r\n }\r\n});","import Vue from 'vue';\r\nimport BaseComponent from './BaseComponentMixin.jsx';\r\nimport utils from '../../../Shared/utils.jsx';\r\n\r\nimport { Splitpanes, Pane } from 'splitpanes';\r\n\r\nVue.component('split-panes-dsgn', {\r\n mixins: [BaseComponent],\r\n components: {\r\n Splitpanes,\r\n Pane,\r\n },\r\n data: function () {\r\n return {\r\n master_key: null,\r\n\r\n pickervisible: false,\r\n picker: null,\r\n pickertarget: 'body',\r\n }\r\n },\r\n created() {\r\n this.master_key = utils.generateUUID();\r\n },\r\n //Created Replaced with preRenderComplete\r\n computed: {\r\n },\r\n methods: {\r\n generateItems(h, controlData, index, parentType) {\r\n const items = [];\r\n for (let i = 0; i < controlData.Controls.length; i++) {\r\n const c = controlData.Controls[i];\r\n if (!(typeof c === 'object'))\r\n continue;\r\n\r\n let DynamicControl = utils.getDynamicComponent(h, c);\r\n\r\n if (!DynamicControl)\r\n DynamicControl = 'default-unknown';\r\n\r\n DynamicControl += '-dsgn';\r\n\r\n if (!c.$objectId) c.$objectId = utils.generateUUID();\r\n\r\n let id = `${this.master_key}_${c.$objectId}`;\r\n if (index) id = `${index}_${id}`;\r\n\r\n items.push(\r\n \r\n \r\n );\r\n }\r\n return items;\r\n },\r\n\r\n addPane(e) {\r\n e.cancelBubble = true;\r\n e.stopPropagation();\r\n\r\n if (!this.controlData.Panes)\r\n Vue.set(this.controlData, 'Panes', []);\r\n\r\n this.controlData.Panes.push({\r\n DisplayExpression: '',\r\n Controls: [],\r\n AllowDoubleClick: true,\r\n });\r\n },\r\n addControl(e, target) {\r\n this.pickertarget = target;\r\n this.picker = ;\r\n this.pickervisible = true;\r\n e.cancelBubble = true;\r\n e.stopPropagation();\r\n },\r\n async confirmAddControl(id, title) {\r\n this.pickervisible = false;\r\n\r\n try {\r\n const schema_ = await utils.schema.get(id);\r\n const schema = utils.schema.resolve_Of(schema_)\r\n const model = utils.schema.getDefaultModel(schema);\r\n\r\n const pane = this.controlData.Panes[this.pickertarget];\r\n\r\n if (!pane.Controls)\r\n Vue.set(pane, 'Controls', []);\r\n\r\n pane.Controls.push(model);\r\n //this.Root.SelectNode(model);\r\n }\r\n catch (e) {\r\n alert(e);\r\n }\r\n },\r\n cancelAddControl() {\r\n this.pickervisible = false;\r\n },\r\n pickerInput(value) {\r\n this.pickervisible = value;\r\n },\r\n generatePicker(h) {\r\n return (\r\n this.pickerInput(value)}>\r\n {this.picker}\r\n \r\n );\r\n },\r\n resizeEvent(e) {\r\n for (let i = 0; i < e.length && i < this.controlData.Panes.length; i++) {\r\n this.controlData.Panes[i].InitialSize = parseFloat(e[i].size.toFixed(2));\r\n }\r\n },\r\n },\r\n render(h) {\r\n try {\r\n const panes = [];\r\n\r\n if (this.selected$ && (!this.controlData.Panes || !this.controlData.Panes.length)) {\r\n panes.push(\r\n \r\n this.addPane(e)}>\r\n mdi mdi-plus-circle\r\n \r\n \r\n );\r\n }\r\n else if (this.controlData.Panes)\r\n for (let i = 0; i < this.controlData.Panes.length; i++) {\r\n const p = this.controlData.Panes[i];\r\n\r\n let btn;\r\n if (this.selected$)\r\n btn = (\r\n this.addControl(e, i)}>\r\n mdi mdi-plus-circle\r\n \r\n );\r\n\r\n let btn2;\r\n if (this.selected$ && i === this.controlData.Panes.length - 1)\r\n btn2 = (\r\n this.addPane(e)}>\r\n mdi mdi-plus-circle\r\n \r\n );\r\n\r\n panes.push(\r\n \r\n {this.generateItems(h, p, i, \"VerticalLayout\")}\r\n {btn}\r\n {btn2}\r\n \r\n );\r\n }\r\n\r\n const style = {\r\n ...utils.getStyleHints(this.controlData.StyleHints),\r\n ...utils.getSize(this.controlData.SizeOptions, this.parentType, this.$parent),\r\n minWidth: \"15px\",\r\n };\r\n\r\n return (\r\n this.handleClick(e)}\r\n >\r\n
\r\n this.resizeEvent(e)}\r\n >\r\n {panes}\r\n \r\n\r\n {this.generatePicker(h)}\r\n \r\n );\r\n }\r\n catch (e) {\r\n utils.error('SplitPanesDsgn Render failed', e);\r\n return
SplitPanesDsgn Failed to Render {e}
;\r\n }\r\n }\r\n});","import Vue from 'vue';\r\nimport utils from '../../../../Shared/utils.jsx';\r\nimport methods from '../../../../Shared/methods';\r\n\r\nVue.component('tab-action-dsgn', {\r\n data: function () {\r\n return {\r\n }\r\n },\r\n computed: {\r\n Root: function () {\r\n return this.root._self;\r\n },\r\n Vars: function () {\r\n if (!this.controlData.Vars)\r\n Vue.set(this.controlData, 'Vars', {});\r\n\r\n return this.controlData.Vars;\r\n },\r\n DesignModel: function () {\r\n return this.designmodel;\r\n },\r\n selected$: function () {\r\n return this.Root.SelectedNode && this.Root.SelectedModel == this.designmodel;\r\n },\r\n },\r\n methods: {\r\n ...methods,\r\n handleClick(e) {\r\n this.Root.SelectNode(this);\r\n e.cancelBubble = true;\r\n e.stopPropagation();\r\n },\r\n },\r\n props: {\r\n name: '',\r\n root: null,\r\n designmodel: null,\r\n parentType: '',\r\n controlData: {}\r\n },\r\n render(h) {\r\n const tabstyle = {\r\n backgroundColor: \"#f8f8f8\", \r\n //borderRadius: \"8px 8px\",// first value applies to top-left corner, second value applies to top-right corner, third value applies to bottom-right corner, and fourth value applies to bottom-left corner\r\n borderTopColor: \"gray\",\r\n borderLeftColor: \"gray\",\r\n borderRightColor: \"gray\",\r\n borderTopStyle: \"solid\",\r\n borderLeftStyle: \"solid\",\r\n borderRightStyle: \"solid\",\r\n borderTopWidth: \"1px\",\r\n borderLeftWidth: \"1px\",\r\n borderRightWidth: \"1px\",\r\n paddingLeft: \"2px\",\r\n paddingRight: \"2px\",\r\n paddingTop: \"2px\",\r\n paddingBottom: \"2px\",\r\n };\r\n\r\n const container = (\r\n \r\n \r\n );\r\n\r\n return (\r\n this.handleClick(e)}>\r\n
\r\n
{this.controlData.TabTitle}
\r\n {container}\r\n \r\n );\r\n }\r\n});","import Vue from 'vue';\r\nimport utils from '../../../../Shared/utils.jsx';\r\nimport methods from '../../../../Shared/methods';\r\n\r\nVue.component('dynamic-user-action-dsgn', {\r\n data: function () {\r\n return {\r\n action: {},\r\n }\r\n },\r\n created() {\r\n this.watcher$ = this.$watch('designmodel.UserAction.ActionURL', function (val, oldval) {\r\n this.Refresh();\r\n });\r\n },\r\n destroyed() {\r\n this.watcher$();\r\n }, \r\n async mounted() {\r\n await this.Refresh();\r\n },\r\n props: {\r\n name: '',\r\n root: null,\r\n designmodel: null,\r\n controlData: null,\r\n },\r\n computed: {\r\n Root: function () {\r\n return this.root._self;\r\n },\r\n selected$: function () {\r\n return this.Root.SelectedNode && this.Root.SelectedModel == this.designmodel;\r\n },\r\n },\r\n methods: {\r\n ...methods,\r\n async Refresh()\r\n {\r\n const a = await utils.api.get('Apps/UI/Action/' + this.designmodel.ActionData.UserAction.ActionURL);\r\n this.action = a;\r\n },\r\n SelectNode(node) {\r\n // Ignore node arg, we will only allow the designer to edit the action definition, not\r\n // individual members of a user action (because it is in a separate document)\r\n this.Root.SelectNode(this);\r\n },\r\n handleClick(e) {\r\n this.Root.SelectNode(this);\r\n e.cancelBubble = true;\r\n e.stopPropagation();\r\n },\r\n open(e) {\r\n this.Root.ExternalNavigateToName('Action', this.designmodel.ActionData.UserAction.ActionURL);\r\n //this.Root.ExternalNavigate('Apps/UIWhole/Action/' + this.designmodel.ActionData.UserAction.ActionURL);\r\n\r\n e.cancelBubble = true;\r\n e.stopPropagation();\r\n },\r\n },\r\n render(h) {\r\n if (!this.action.ActionData)\r\n return
Not assigned...
;\r\n\r\n let DynamicControl = utils.getDynamicAction(this.action);\r\n\r\n if (!DynamicControl)\r\n DynamicControl = 'default-unknown';\r\n\r\n DynamicControl += '-dsgn';\r\n\r\n const open_title = \"Open \" + this.designmodel.ActionData.UserAction.ActionURL;\r\n\r\n return (\r\n this.handleClick(e)}>\r\n
this.open(e)} style={{ top: \"4px\", left: \"4px\", display: this.selected$ ? \"block\" : \"none\" }}>Open
\r\n
\r\n \r\n \r\n \r\n );\r\n }\r\n});\r\n\r\n","import Vue from 'vue';\r\nimport Vuetify from 'vuetify';\r\nimport EventBus from '../../event-bus.js';\r\nimport utils from '../../../Shared/utils.jsx';\r\n\r\nVue.component('usercontrol-browser', {\r\n data: () => ({\r\n list: [],\r\n filter: '',\r\n }),\r\n props: {\r\n confirm: null,\r\n cancel: null,\r\n },\r\n created() {\r\n },\r\n mounted() {\r\n this.Refresh();\r\n },\r\n methods: {\r\n async Refresh() {\r\n this.list = await utils.api.get('Apps/UserControls/List');\r\n },\r\n returnControl(id, title) {\r\n this.confirm(id, title);\r\n },\r\n search(value) {\r\n this.filter = value;\r\n },\r\n },\r\n render(h) {\r\n let items;\r\n if (this.list.length > 0)\r\n items = this.list.filter(c => (!this.filter || c.Name.toLowerCase().includes(this.filter.toLowerCase()))).map(c => (\r\n \r\n this.confirm(c.Name)}>{c.Name}\r\n \r\n ));\r\n else\r\n items = Loading...;\r\n\r\n return (\r\n \r\n\r\n \r\n \r\n User Controls\r\n \r\n\r\n \r\n this.Refresh()}>\r\n mdi-refresh\r\n \r\n\r\n \r\n mdi-close-box\r\n \r\n \r\n \r\n\r\n \r\n this.search(value)}\r\n >\r\n \r\n \r\n \r\n {items}\r\n
\r\n
\r\n \r\n \r\n Cancel\r\n \r\n
\r\n );\r\n }\r\n});","import Vue from 'vue';\r\nimport utils from '../../../Shared/utils.jsx';\r\nimport methods from '../../../Shared/methods';\r\nimport usercontrolBrowser from './usercontrolBrowser.jsx';\r\n\r\nVue.component('dynamic-user-control-dsgn', {\r\n data: function () {\r\n return {\r\n control: {},\r\n pickervisible: false,\r\n picker: null,\r\n }\r\n },\r\n created() {\r\n this.watcher$ = this.$watch('designmodel.ControlURL', function (val, oldval) {\r\n this.Refresh();\r\n });\r\n },\r\n destroyed() {\r\n this.watcher$();\r\n }, \r\n async mounted() {\r\n await this.Refresh();\r\n },\r\n props: {\r\n name: '',\r\n root: null,\r\n designmodel: null,\r\n controlData: null,\r\n },\r\n computed: {\r\n Root: function () {\r\n return this.root._self;\r\n },\r\n selected$: function () {\r\n return this.Root.SelectedNode && this.Root.SelectedModel == this.designmodel;\r\n },\r\n },\r\n methods: {\r\n ...methods,\r\n async Refresh()\r\n {\r\n if (this.designmodel.ControlURL) {\r\n try {\r\n let c = await utils.api.get('Apps/UI/UserControl/' + this.designmodel.ControlURL);\r\n if (!c)\r\n c = await utils.api.get('Apps/UI/UserControl/public/' + this.designmodel.ControlURL);\r\n\r\n this.control = c;\r\n }\r\n catch (e) {\r\n this.control = {};\r\n }\r\n }\r\n else\r\n this.control = {};\r\n },\r\n SelectNode(node) {\r\n // Ignore node arg, we will only allow the designer to edit the control definition, not\r\n // individual members of a user control (because it is in a separate document)\r\n this.Root.SelectNode(this);\r\n },\r\n handleClick(e) {\r\n this.Root.SelectNode(this);\r\n e.cancelBubble = true;\r\n e.stopPropagation();\r\n },\r\n open(e) {\r\n this.Root.ExternalNavigateToName('UserControl', this.designmodel.ControlURL);\r\n //this.Root.ExternalNavigate('Apps/UIWhole/UserControl/' + this.designmodel.ControlURL);\r\n\r\n e.cancelBubble = true;\r\n e.stopPropagation();\r\n },\r\n browse(e) {\r\n this.picker = ;\r\n this.pickervisible = true;\r\n e.cancelBubble = true;\r\n e.stopPropagation();\r\n },\r\n confirm(name) {\r\n this.pickervisible = false;\r\n this.designmodel.ControlURL = name;\r\n this.Refresh();\r\n },\r\n cancel() {\r\n this.pickervisible = false;\r\n },\r\n pickerInput(value) {\r\n this.pickervisible = value;\r\n },\r\n },\r\n render(h) {\r\n if (!this.control.ControlData)\r\n return (\r\n this.handleClick(e)}>\r\n
this.browse(e)} style={{ top: \"4px\", left: \"44px\", display: this.selected$ ? \"block\" : \"none\" }}>Browse
\r\n\r\n
\r\n\r\n this.pickerInput(value)}>\r\n {this.picker}\r\n \r\n \r\n );\r\n\r\n let DynamicControl = utils.getDynamicComponent(h, this.control);\r\n\r\n if (!DynamicControl)\r\n DynamicControl = 'default-unknown';\r\n\r\n DynamicControl += '-dsgn';\r\n\r\n const open_title = \"Open \" + this.designmodel.ControlURL;\r\n\r\n return (\r\n this.handleClick(e)}>\r\n
this.open(e)} style={{ top: \"4px\", left: \"4px\", display: this.selected$ ? \"block\" : \"none\" }}>Open
\r\n
this.browse(e)} style={{ top: \"4px\", left: \"44px\", display: this.selected$ ? \"block\" : \"none\" }}>Browse
\r\n\r\n
\r\n \r\n \r\n\r\n this.pickerInput(value)}>\r\n {this.picker}\r\n \r\n \r\n );\r\n }\r\n});\r\n\r\n","import Vue from 'vue';\r\nimport utils from '../../../Shared/utils.jsx';\r\nimport methods from '../../../Shared/methods';\r\n\r\nVue.component('basic-watcher-dsgn', {\r\n data: function () {\r\n return {\r\n }\r\n },\r\n created() {\r\n },\r\n computed: {\r\n Root: function () {\r\n return this.root._self;\r\n },\r\n selected$: function () {\r\n return this.Root.SelectedNode && this.Root.SelectedModel == this.designmodel;\r\n },\r\n },\r\n methods: {\r\n ...methods,\r\n handleClick(e) {\r\n this.Root.SelectNode(this);\r\n e.cancelBubble = true;\r\n e.stopPropagation();\r\n },\r\n },\r\n props: {\r\n name: '',\r\n type: '',\r\n root: null,\r\n designmodel: null,\r\n parentType: '',\r\n controlData: {}\r\n },\r\n render(h) {\r\n let name;\r\n if (!this.name)\r\n name = this.type;\r\n else\r\n name = this.name + ':' + 'Watcher';\r\n\r\n return (\r\n this.handleClick(e)}>\r\n
\r\n \r\n \r\n );\r\n }\r\n});","import Vue from 'vue';\r\nimport utils from '../../../Shared/utils.jsx';\r\nimport methods from '../../../Shared/methods';\r\n\r\nVue.component('cc-wizard-dsgn', {\r\n data: function () {\r\n return {\r\n current_step: 0,\r\n\r\n pickervisible: false,\r\n picker: null,\r\n pickertarget: 'body',\r\n }\r\n },\r\n computed: {\r\n Root: function () {\r\n return this.root._self;\r\n },\r\n DesignModel: function () {\r\n return this.designmodel;\r\n },\r\n selected$: function () {\r\n return this.Root.SelectedNode && this.Root.SelectedModel == this.designmodel;\r\n },\r\n selectedStep$: function () {\r\n if (this.current_step >= 0 && this.current_step < this.controlData.Steps.length)\r\n return this.Root.SelectedNode && this.Root.SelectedModel == this.controlData.Steps[this.current_step];\r\n else\r\n return false;\r\n },\r\n },\r\n methods: {\r\n ...methods,\r\n handleClick(e) {\r\n this.Root.SelectNode(this);\r\n e.cancelBubble = true;\r\n e.stopPropagation();\r\n },\r\n nextStep(e) {\r\n this.current_step++;\r\n if (this.current_step >= this.controlData.Steps.length)\r\n this.current_step = 0;\r\n\r\n e.cancelBubble = true;\r\n e.stopPropagation();\r\n },\r\n previousStep(e) {\r\n this.current_step--;\r\n if (this.current_step < 0)\r\n this.current_step = this.controlData.Steps.length - 1;\r\n\r\n e.cancelBubble = true;\r\n e.stopPropagation();\r\n },\r\n editStep(e) {\r\n const step = this.controlData.Steps[this.current_step];\r\n this.Root.SelectNode(this, step);\r\n\r\n e.cancelBubble = true;\r\n e.stopPropagation();\r\n },\r\n async addStep(e) {\r\n e.cancelBubble = true;\r\n e.stopPropagation();\r\n\r\n const schema_ = await utils.schema.get('/schema/public/Platform.Schema.DynamicControls.v1/DynamicControl_WizardStep');\r\n const schema = utils.schema.resolve_Of(schema_)\r\n const model = utils.schema.getDefaultModel(schema);\r\n\r\n if (!model.Title) model.Title = 'New Step';\r\n if (!model.Name) model.Name = 'Unnamed';\r\n\r\n if (!this.controlData.Steps)\r\n this.controlData.Steps = [];\r\n\r\n this.controlData.Steps.push(model);\r\n this.current_step = this.controlData.Steps.length - 1;\r\n },\r\n deleteStep(e) {\r\n if (this.current_step >= 0 && this.current_step < this.controlData.Steps.length) {\r\n this.controlData.Steps.splice(this.current_step, 1);\r\n\r\n if (this.current_step >= this.controlData.Steps.length)\r\n this.current_step -= 1;\r\n\r\n //if (this.current_step >= 0 && this.current_step < this.controlData.Steps.length) {\r\n //const step = this.controlData.Steps[this.current_step];\r\n //this.Root.SelectNode(this, step);\r\n //}\r\n //else\r\n // this.Root.SelectNode(this);\r\n }\r\n e.cancelBubble = true;\r\n e.stopPropagation();\r\n },\r\n\r\n addControl(e, target) {\r\n this.pickertarget = target;\r\n this.picker = ;\r\n this.pickervisible = true;\r\n e.cancelBubble = true;\r\n e.stopPropagation();\r\n },\r\n async confirmAddControl(id, title) {\r\n this.pickervisible = false;\r\n\r\n try {\r\n const schema_ = await utils.schema.get(id);\r\n const schema = utils.schema.resolve_Of(schema_)\r\n const model = utils.schema.getDefaultModel(schema);\r\n\r\n switch (this.pickertarget) {\r\n case 'body':\r\n if (!this.controlData.Steps[this.current_step].Controls)\r\n Vue.set(this.controlData.Steps[this.current_step], 'Controls', []);\r\n\r\n this.controlData.Steps[this.current_step].Controls.push(model);\r\n //this.Root.SelectNode(model);\r\n break;\r\n\r\n case 'footer':\r\n if (!this.controlData.Steps[this.current_step].FooterControls)\r\n Vue.set(this.controlData.Steps[this.current_step], 'FooterControls', []);\r\n\r\n this.controlData.Steps[this.current_step].FooterControls.push(model);\r\n break;\r\n }\r\n }\r\n catch (e) {\r\n alert(e);\r\n }\r\n },\r\n cancelAddControl() {\r\n this.pickervisible = false;\r\n },\r\n pickerInput(value) {\r\n this.pickervisible = value;\r\n },\r\n },\r\n props: {\r\n name: '',\r\n root: null,\r\n designmodel: null,\r\n parentType: '',\r\n controlData: {}\r\n },\r\n render(h) {\r\n if (this.Root.SelectedNode == this._self && this.Root.SelectedModel &&\r\n this.Root.SelectedModel.$typeSchema == '/schema/public/Platform.Schema.DynamicControls.v1/DynamicControl_WizardStep') {\r\n for (let i = 0; i < this.controlData.Steps.length; i++) {\r\n if (this.controlData.Steps[i] == this.Root.SelectedModel) {\r\n this.current_step = i;\r\n break;\r\n }\r\n }\r\n }\r\n\r\n let items = [];\r\n if (this.current_step >= 0 && this.current_step < this.controlData.Steps.length) {\r\n const step = this.controlData.Steps[this.current_step];\r\n\r\n let body = [];\r\n if (step.Controls) {\r\n for (var i = 0; i < step.Controls.length; i++) {\r\n const control = step.Controls[i];\r\n let DynamicControl = utils.getDynamicComponent(h, control);\r\n\r\n const _k = i + '_' + control.ControlType + '_' + control.$objectId;\r\n\r\n if (!DynamicControl)\r\n DynamicControl = 'default-unknown';\r\n\r\n DynamicControl += '-dsgn';\r\n\r\n body.push(\r\n \r\n \r\n );\r\n }\r\n }\r\n\r\n if (this.selectedStep$)\r\n body.push(\r\n this.addControl(e, 'body')}>\r\n mdi mdi-plus-circle\r\n \r\n );\r\n\r\n items.push(\r\n
\r\n {body}\r\n
\r\n );\r\n\r\n let footer = [];\r\n\r\n if (step.FooterControls) {\r\n for (var i = 0; i < step.FooterControls.length; i++) {\r\n const control = step.FooterControls[i];\r\n let DynamicControl = utils.getDynamicComponent(h, control);\r\n\r\n const _k = i + '_' + control.ControlType + '_' + control.$objectId;\r\n\r\n if (!DynamicControl)\r\n DynamicControl = 'default-unknown';\r\n\r\n DynamicControl += '-dsgn';\r\n\r\n footer.push(\r\n
\r\n \r\n \r\n
\r\n );\r\n }\r\n }\r\n\r\n if (this.selectedStep$)\r\n footer.push(\r\n this.addControl(e, 'footer')}>\r\n mdi mdi-plus-circle\r\n \r\n );\r\n\r\n items.push(\r\n
\r\n {footer}\r\n
\r\n );\r\n }\r\n\r\n const style = {\r\n overflow: \"auto\",\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n border: \"1px solid #ddd\",\r\n margin: \"3px\",\r\n borderRadius: \"3px\",\r\n ...utils.getSize(this.controlData.SizeOptions, this.parentType, this.$parent)\r\n };\r\n\r\n const links = [];\r\n links.push(
this.addStep(e)} style={{ top: \"6px\", right: \"120px\", fontSize: \"large\", display: this.selected$ ? 'block' : 'none' }}>
);\r\n links.push(
this.previousStep(e)} style={{ top: \"6px\", right: \"100px\", fontSize: \"large\", display: this.selected$ ? 'block' : 'none' }}>
);\r\n links.push(
this.editStep(e)} style={{ top: \"8px\", right: \"65px\", fontSize: \"medium\", display: this.selected$ ? 'block' : 'none' }}>[ {this.current_step + 1} ]
);\r\n links.push(
this.nextStep(e)} style={{ top: \"6px\", right: \"40px\", fontSize: \"large\", display: this.selected$ ? 'block' : 'none' }}>
);\r\n links.push(
this.deleteStep(e)} style={{ top: \"6px\", right: \"10px\", fontSize: \"large\", display: this.selected$ ? 'block' : 'none' }}>
);\r\n\r\n let title;\r\n if (this.controlData.Title)\r\n title = this.controlData.Title;\r\n\r\n const headerstyle = {\r\n backgroundColor: \"#f5f5f5\",\r\n backgroundImage: \"linear-gradient(to bottom,#f5f5f5 0,#e8e8e8 100%)\",\r\n backgroundRepeat: \"repeat-x\",\r\n padding: \"10px 15px\",\r\n borderTopLeftRadius: \"3px\",\r\n borderTopRightRadius: \"3px\",\r\n };\r\n\r\n let breadcrumbs;\r\n if (this.controlData.ShowBreadcrumb) {\r\n breadcrumbs = [];\r\n for (let i = 0; i < this.controlData.Steps.length && i < this.current_step + 1; i++) {\r\n breadcrumbs.push({this.controlData.Steps[i].Title});\r\n if (i < this.current_step)\r\n breadcrumbs.push();\r\n }\r\n breadcrumbs =
{breadcrumbs}
;\r\n }\r\n\r\n \r\n\r\n return (\r\n this.handleClick(e)}>\r\n
\r\n

{title}

\r\n {breadcrumbs}\r\n {links}\r\n this.editStep(e)}>\r\n
\r\n {items}\r\n \r\n\r\n this.pickerInput(value)}>\r\n {this.picker}\r\n \r\n \r\n );\r\n }\r\n});","import Vue from 'vue';\r\nimport DocumentBootstrap from './DocumentBootstrap.jsx';\r\nimport HorizontalStack from './HorizontalStack.jsx';\r\nimport VerticalStack from './VerticalStack.jsx';\r\nimport BasicButton from './BasicButton.jsx';\r\nimport Text from './Text.jsx';\r\nimport SelectList from './SelectList.jsx';\r\nimport BasicForm from './BasicForm.jsx';\r\nimport BasicGrid from './BasicGrid.jsx';\r\nimport InfiniteGrid from './InfiniteGrid.jsx';\r\nimport TreeView from './TreeView.jsx';\r\nimport DynamicTab from './DynamicTab.jsx';\r\nimport DynamicTabContent from './DynamicTabContent.jsx';\r\nimport DynamicMenuList from './DynamicMenuList.jsx';\r\nimport ControlDesigner from './ControlDesigner.jsx';\r\nimport utils from '../../Shared/utils.jsx';\r\nimport methods from '../../Shared/methods';\r\n\r\nVue.component('control-container', {\r\n data: function () {\r\n return {\r\n }\r\n },\r\n computed: {\r\n Root: function () {\r\n return this.root._self;\r\n },\r\n Vars: function () {\r\n if (!this.controlData.Vars)\r\n Vue.set(this.controlData, 'Vars', {});\r\n\r\n return this.controlData.Vars;\r\n }\r\n },\r\n methods: {\r\n ...methods\r\n },\r\n props: {\r\n name: '',\r\n root: null,\r\n controlData: {}\r\n },\r\n render(h) {\r\n if (!this.controlData.Controls)\r\n return
;\r\n\r\n let items = [];\r\n for (var i = 0; i < this.controlData.Controls.length; i++)\r\n {\r\n const control = this.controlData.Controls[i];\r\n let DynamicControl = utils.getDynamicComponent(h, control);\r\n if (!DynamicControl)\r\n {\r\n items.push(
Control type of {control.ControlType} is unknown
);\r\n continue;\r\n }\r\n\r\n items.push(\r\n \r\n \r\n );\r\n }\r\n\r\n return
{items}
;\r\n }\r\n});","import Vue from \"vue\";\r\nimport utils from \"../../Shared/utils.jsx\";\r\nimport BaseComponent from \"./BaseComponentMixin.jsx\";\r\nimport { appSettings } from \"../../Shared/appSettings.js\";\r\nimport { times, debounce } from \"lodash\";\r\nimport \"./css/InfiniteConversationView.css\";\r\n\r\nVue.component(\"conversation-view-message\", {\r\n mixins: [BaseComponent],\r\n props: {},\r\n});\r\n\r\nVue.component(\"conversation-view\", {\r\n mixins: [BaseComponent],\r\n data: function() {\r\n return {\r\n // functionality\r\n doneWithTop: false,\r\n conversation: [],\r\n topDateText: null,\r\n messageCount: 0,\r\n renderedCount: 0,\r\n isLoading: false,\r\n scrollPosition: null,\r\n\r\n // evals\r\n dataTypeEval: null,\r\n dataURLEval: null,\r\n dataRawEval: null,\r\n rowsPerFetchEval: null,\r\n deconsolidateMessagesEval: null,\r\n messageItemControlTemplateEval: null,\r\n };\r\n },\r\n created() {\r\n this.namelookupurl_expn = utils.compile(this, this.controlData.MessageProperties.NameLookupURL, false, 'Input');\r\n this.key_expn = utils.compile(this, this.controlData.MessageProperties.Key, false, 'Input');\r\n this.name_expn = utils.compile(this, this.controlData.MessageProperties.Name, false, 'Input');\r\n this.text_expn = utils.compile(this, this.controlData.MessageProperties.Text, false, 'Input');\r\n this.date_expn = utils.compile(this, this.controlData.MessageProperties.Date, false, 'Input');\r\n this.direction_expn = utils.compile(this, this.controlData.MessageProperties.Direction, false, 'Input');\r\n this.color_expn = utils.compile(this, this.controlData.MessageProperties.Color, false, 'Input');\r\n this.icon_expn = utils.compile(this, this.controlData.MessageProperties.Icon, false, 'Input');\r\n this.icon_color_expn = utils.compile(this, this.controlData.MessageProperties.IconColor, false, 'Input');\r\n this.tooltip_expn = utils.compile(this, this.controlData.MessageProperties.Tooltip, false, 'Input');\r\n this.sendername_expn = utils.compile(this, this.controlData.MessageProperties.SenderName, false, 'Input');\r\n },\r\n computed: {\r\n dataType() {\r\n const defaultVal = \"Url\";\r\n\r\n try {\r\n if (this.dataTypeEval === null && this.controlData.DataType)\r\n this.dataTypeEval = utils.compile(this, this.controlData.DataType);\r\n\r\n if (this.dataTypeEval) {\r\n return utils.evaluate(this.dataTypeEval, this);\r\n }\r\n\r\n return defaultVal;\r\n } catch (e) {\r\n utils.warn(\"DataType could not evaluate expression: \" + this.controlData.DataType + \"; \" + e);\r\n\r\n return defaultVal;\r\n }\r\n },\r\n dataURL() {\r\n const defaultVal = \"\";\r\n\r\n try {\r\n if (this.dataURLEval === null && this.controlData.DataURL)\r\n this.dataURLEval = utils.compile(this, this.controlData.DataURL);\r\n\r\n if (this.dataURLEval) {\r\n return utils.evaluate(this.dataURLEval, this);\r\n }\r\n\r\n return defaultVal;\r\n } catch (e) {\r\n utils.warn(\"DataURL could not evaluate expression: \" + this.controlData.DataURL + \"; \" + e);\r\n\r\n return defaultVal;\r\n }\r\n },\r\n dataRaw() {\r\n const defaultVal = [];\r\n\r\n try {\r\n if (this.dataRawEval === null && this.controlData.DataRaw)\r\n this.dataRawEval = utils.compile(this, this.controlData.DataRaw);\r\n\r\n if (this.dataRawEval) {\r\n return utils.evaluate(this.dataRawEval, this);\r\n }\r\n\r\n return defaultVal;\r\n } catch (e) {\r\n utils.warn(\"DataRaw could not evaluate expression: \" + this.controlData.DataType + \"; \" + e);\r\n\r\n return defaultVal;\r\n }\r\n },\r\n deconsolidateMessages() {\r\n const defaultVal = false;\r\n\r\n try {\r\n if (this.deconsolidateMessagesEval === null && this.controlData.DeconsolidateMessages)\r\n this.deconsolidateMessagesEval = utils.compile(this, this.controlData.DeconsolidateMessages);\r\n\r\n if (this.deconsolidateMessagesEval) {\r\n return utils.evaluate(this.deconsolidateMessagesEval, this);\r\n }\r\n\r\n return defaultVal;\r\n } catch (e) {\r\n utils.warn(\r\n \"DeconsolidateMessages could not evaluate expression: \" +\r\n this.controlData.DeconsolidateMessages +\r\n \"; \" +\r\n e\r\n );\r\n\r\n return defaultVal;\r\n }\r\n },\r\n messageItemControlTemplate() {\r\n const defaultVal = \"\";\r\n\r\n try {\r\n if (this.messageItemControlTemplateEval === null && this.controlData.MessageItemControlTemplate)\r\n this.messageItemControlTemplateEval = utils.compile(\r\n this,\r\n this.controlData.MessageItemControlTemplate\r\n );\r\n\r\n if (this.messageItemControlTemplateEval) {\r\n return utils.evaluate(this.messageItemControlTemplateEval, this);\r\n }\r\n\r\n return defaultVal;\r\n } catch (e) {\r\n utils.warn(\r\n \"MessageItemControlTemplate could not evaluate expression: \" +\r\n this.controlData.MessageItemControlTemplate +\r\n \"; \" +\r\n e\r\n );\r\n\r\n return defaultVal;\r\n }\r\n },\r\n styles() {\r\n return {\r\n ...this.sizeStyle,\r\n ...utils.resolveStyleHints(this.styleHints, this),\r\n overflow: \"auto\",\r\n };\r\n },\r\n },\r\n methods: {\r\n async preRenderComplete() {\r\n await this.init();\r\n\r\n await this.finishRenderHandler(this);\r\n },\r\n async init() {\r\n // Url\r\n if (this.dataType === \"Url\") {\r\n await this.loadInitialMessages();\r\n }\r\n // RawInterpolated\r\n else {\r\n this.doneWithTop = true; // there are no more messages to retrieve\r\n }\r\n },\r\n async loadInitialMessages() {\r\n this.isLoading = true;\r\n const messages = await this.getItems();\r\n await this.addMessageLines(messages);\r\n this.isLoading = false;\r\n\r\n return true;\r\n },\r\n async getItems() {\r\n if (this.dataType === \"RawInterpolated\") {\r\n this.doneWithTop = true;\r\n return this.dataRaw;\r\n } else {\r\n try {\r\n let messages = await utils.api.get(this.dataURL,true,false,false);\r\n this.messageCount = messages.length;\r\n\r\n // get message count\r\n\r\n messages.reverse();\r\n\r\n return messages;\r\n } catch (err) {\r\n return null;\r\n }\r\n }\r\n },\r\n async addMessageLines(messages) {\r\n if (!messages.length) {\r\n return;\r\n }\r\n\r\n let newMessages = [];\r\n let baseScopedContext = utils.getBaseScopedContext(this);\r\n const propertiesTemplate = this.controlData.MessageProperties;\r\n\r\n for (let message of messages) {\r\n if (message) {\r\n baseScopedContext.rowData = message;\r\n\r\n this.rowData = message;\r\n\r\n //const lookupurl = utils.evaluate(this.namelookupurl_expn, this, false, null, false, message);\r\n const lookupres = {}; //await utils.api.get(lookupurl);\r\n\r\n // Get interpolated values\r\n let messageProperties = {\r\n NameLookupURL: utils.evaluate(this.namelookupurl_expn, this, false, null, false, lookupres),\r\n Key: utils.evaluate(this.key_expn, this, false, null, false, lookupres),\r\n Name: utils.evaluate(this.name_expn, this, false, null, false, lookupres),\r\n Text: utils.evaluate(this.text_expn, this, false, null, false, lookupres),\r\n Date: utils.evaluate(this.date_expn, this, false, null, false, lookupres),\r\n Direction: utils.evaluate(this.direction_expn, this, false, null, false, lookupres),\r\n Color: utils.evaluate(this.color_expn, this, false, null, false, lookupres),\r\n Icon: utils.evaluate(this.icon_expn, this, false, null, false, lookupres),\r\n IconColor: utils.evaluate(this.icon_color_expn, this, false, null, false, lookupres),\r\n Tooltip: utils.evaluate(this.tooltip_expn, this, false, null, false, lookupres), \r\n SenderName: utils.evaluate(this.sendername_expn, this, false, null, false, lookupres),\r\n };\r\n //Object.keys(propertiesTemplate).forEach((key) => {\r\n // const compiled = utils.compile(baseScopedContext, propertiesTemplate[key]);\r\n // const evaluated = utils.evaluate(compiled, baseScopedContext);\r\n\r\n // messageProperties[key] = evaluated;\r\n //});\r\n\r\n let newMessage = {\r\n key: messageProperties.Key,\r\n direction: messageProperties.Direction.charAt(0).toUpperCase() + messageProperties.Direction.slice(1),\r\n nameLookupURL: messageProperties.NameLookupURL,\r\n name: messageProperties.Name, // this will be set by the lookup code\r\n color: messageProperties.Color || \"white\", //randomColor,\r\n icon: messageProperties.Icon,\r\n iconColor: messageProperties.IconColor,\r\n tooltip: messageProperties.Tooltip,\r\n senderName: messageProperties.SenderName,\r\n date: messageProperties.Date ? new Date(messageProperties.Date) : undefined,\r\n dateString: undefined, // set below\r\n timeString: undefined, // set below\r\n originalMessage: message,\r\n messageGroup: [message],\r\n isDivider: false,\r\n isNotesAndDisps: false,\r\n };\r\n\r\n if (messageProperties.Date) {\r\n // Getting date and time and formatting them properly\r\n let dateString = newMessage.date.toLocaleDateString();\r\n let timeString = newMessage.date.toLocaleTimeString([], { hour: \"2-digit\", minute: \"2-digit\" });\r\n if (timeString.startsWith(\"0\")) timeString = timeString.substring(1);\r\n\r\n newMessage.dateString = dateString;\r\n newMessage.timeString = timeString;\r\n }\r\n\r\n newMessages.push(newMessage);\r\n }\r\n }\r\n\r\n \r\n this.conversation = this.conversation.concat(newMessages);\r\n \r\n\r\n if (propertiesTemplate) {\r\n if (propertiesTemplate.Date) {\r\n // consolidate messages within same min\r\n if (!this.deconsolidateMessages) {\r\n this.consolidateMessages();\r\n }\r\n\r\n // add date dividers\r\n this.addDividers();\r\n }\r\n\r\n // do name lookups\r\n if (propertiesTemplate.NameLookupURL) {\r\n await this.resolveMessageNames();\r\n }\r\n }\r\n\r\n return;\r\n },\r\n consolidateMessages() {\r\n let index = 0;\r\n\r\n // go through conversation messages. Add message to next if they are from same source within same minute\r\n while (true) {\r\n if (index > this.conversation.length - 2)\r\n // note the -2, this is because we always want a \"next\" message avail - so we loop up to the next to last message\r\n break;\r\n\r\n let thisMessage = this.conversation[index];\r\n let nextMessage = this.conversation[index + 1];\r\n\r\n if (\r\n !(thisMessage.isDivider || nextMessage.isDivider) &&\r\n thisMessage.direction == nextMessage.direction &&\r\n thisMessage.nameLookupURL == nextMessage.nameLookupURL &&\r\n (nextMessage.date - thisMessage.date) / 1000 < 60\r\n ) {\r\n // consolidate message - add thisMessage to next and remove thisMessage\r\n\r\n if (nextMessage.messageGroup.length > 1) {\r\n thisMessage.messageGroup.push(...nextMessage.messageGroup);\r\n } else {\r\n thisMessage.messageGroup.push(nextMessage.originalMessage);\r\n }\r\n\r\n nextMessage.messageGroup = thisMessage.messageGroup;\r\n this.conversation.splice(index, 1);\r\n // don't increment index because we just merged records and try consolidation again.\r\n }\r\n\r\n index++;\r\n }\r\n return;\r\n },\r\n async resolveMessageNames() {\r\n /**\r\n * Note (10/22/2021): This was not currently used in the Angular implementation, so it is not implemented here. \r\n * - Benton\r\n */\r\n return;\r\n },\r\n addDividers() {\r\n // We want to make sure we have a date at the beginning of the conversation string\r\n let firstMessage = this.conversation[0];\r\n let firstMessageKey = firstMessage.key;\r\n\r\n if (firstMessage.messageGroup && firstMessage.messageGroup.length > 1) {\r\n firstMessageKey = firstMessage.messageGroup[0].timestamp;\r\n }\r\n\r\n let firstDateDivider = {\r\n key: firstMessageKey,\r\n date: firstMessage.date,\r\n dateString: firstMessage.date.toLocaleDateString(),\r\n isDivider: true,\r\n isNotesAndDisps: false,\r\n };\r\n\r\n this.conversation.splice(0, 0, firstDateDivider);\r\n\r\n let lastDivider = firstDateDivider;\r\n for (let messageIndex = 1; messageIndex < this.conversation.length; messageIndex++) {\r\n let message = this.conversation[messageIndex];\r\n\r\n if (message) {\r\n // If we already have a divider at this location, we need to remove it. This happens when\r\n // the message at the top of the conversation is not the first of that day.\r\n if (message.isDivider && this.isSameDay(message.date, lastDivider.date)) {\r\n this.conversation.splice(messageIndex, 1);\r\n }\r\n // A divider has already been placed at this spot, there is no need to add another one\r\n else if (message.isDivider) {\r\n lastDivider = message;\r\n }\r\n // skip notes and dispositions container\r\n else if (message.isNotesAndDisps) {\r\n continue;\r\n }\r\n // If the next message is on a later day, we want to place a divider between them\r\n else if (this.isLaterDay(lastDivider.date, message.date)) {\r\n let newDateString = message.date.toLocaleDateString();\r\n\r\n let dividerMessage = {\r\n key: message.key,\r\n date: message.date,\r\n dateString: newDateString,\r\n isDivider: true,\r\n isNotesAndDisps: false,\r\n };\r\n\r\n this.conversation.splice(messageIndex, 0, dividerMessage);\r\n\r\n lastDivider = dividerMessage;\r\n }\r\n\r\n let nextMsgIndex = messageIndex + 1;\r\n if (nextMsgIndex < this.conversation.length) {\r\n let nextMessage = this.conversation[nextMsgIndex];\r\n if (\r\n message.originalMessage &&\r\n \"interactionid\" in message.originalMessage &&\r\n nextMessage.originalMessage &&\r\n \"interactionid\" in nextMessage.originalMessage &&\r\n message.originalMessage.interactionid != nextMessage.originalMessage.interactionid &&\r\n \"nd_data\" in message.originalMessage\r\n ) {\r\n let dividerMessage = {\r\n key: message.key,\r\n data: {\r\n interactionid: message.originalMessage.interactionid,\r\n nd_data: message.originalMessage.nd_data,\r\n },\r\n isDivider: false,\r\n isNotesAndDisps: true,\r\n };\r\n\r\n messageIndex += 1;\r\n this.conversation.splice(messageIndex, 0, dividerMessage);\r\n }\r\n }\r\n }\r\n }\r\n\r\n let lastMessage = this.conversation[this.conversation.length - 1];\r\n if (!lastMessage.isNotesAndDisps && \"nd_data\" in lastMessage.originalMessage) {\r\n let dividerMessage = {\r\n key: lastMessage.key,\r\n data: {\r\n interactionid: lastMessage.originalMessage.interactionid,\r\n nd_data: lastMessage.originalMessage.nd_data,\r\n },\r\n isDivider: false,\r\n isNotesAndDisps: true,\r\n };\r\n\r\n this.conversation.push(dividerMessage);\r\n }\r\n\r\n return;\r\n },\r\n isLaterDay(date1, date2) {\r\n if (!date1 || !date2) {\r\n return false;\r\n }\r\n\r\n return (\r\n date2.getDate() > date1.getDate() ||\r\n date2.getMonth() > date1.getMonth() ||\r\n date2.getFullYear() > date1.getFullYear()\r\n );\r\n },\r\n isSameDay(date1, date2) {\r\n return (\r\n date2.getDate() == date1.getDate() &&\r\n date2.getMonth() == date1.getMonth() &&\r\n date2.getFullYear() == date1.getFullYear()\r\n );\r\n },\r\n scrollBottom: debounce(function() {\r\n Vue.nextTick(() => {\r\n if (this.scrollPosition) {\r\n this.$refs.scrollArea.scrollTop = this.$refs.scrollArea.scrollHeight - this.scrollPosition;\r\n } else {\r\n this.$refs.scrollArea.scrollTop = this.$refs.scrollArea.scrollHeight;\r\n }\r\n }, this);\r\n }, 50),\r\n setDateDisplay() {\r\n // Get the container and all of its divider children.\r\n let messagesContainer = this.$refs.scrollArea;\r\n let dateDividers = document.querySelectorAll(\".date-divider\");\r\n if (messagesContainer && dateDividers.length) {\r\n // Keeping track of the current divider. When we find the first element that is in the scrollable window, we'll set the content\r\n // of the top divider.\r\n let currentDivider;\r\n dateDividers.forEach((divider) => {\r\n divider = divider.parentElement;\r\n if (messagesContainer.scrollTop + messagesContainer.offsetTop >= divider.offsetTop) {\r\n currentDivider = divider;\r\n }\r\n });\r\n\r\n // We found the top divider. Make it visible and set its contents.\r\n if (currentDivider) {\r\n this.topDateText = currentDivider.innerText;\r\n } else {\r\n this.topDateText = \"\";\r\n }\r\n }\r\n },\r\n \r\n handleFinishMsgRender(e) {\r\n this.renderedCount += 1;\r\n\r\n if (this.renderedCount >= this.messageCount) {\r\n Vue.nextTick(() => this.scrollBottom(), this);\r\n }\r\n },\r\n\r\n AddLine(message) {\r\n this.addMessageLines([message], 'bottom');\r\n },\r\n Clear() {\r\n this.conversation = [];\r\n },\r\n },\r\n render(h) {\r\n try {\r\n if (!this.todisplay) return null;\r\n // generate items of controls\r\n\r\n const elements = this.conversation.map((item, itemIndex) => {\r\n // date divider\r\n if (item.isDivider) {\r\n return (\r\n
\r\n \r\n
{item.dateString}
\r\n
\r\n );\r\n }\r\n\r\n // notes and disps divider\r\n else if (item.isNotesAndDisps) {\r\n let items = utils.generateItemsFromArray(h, this, this.controlData.NotesAndDispsControlTemplate, item.data, 'VerticalLayout');\r\n return
{items}
;\r\n }\r\n\r\n // messages\r\n else {\r\n const messages = item.messageGroup.map((message, msgIndex) => {\r\n let controls = utils.generateItemsFromArray(\r\n h,\r\n this,\r\n this.messageItemControlTemplate,\r\n message,\r\n \"ConversationView\",\r\n { \"finished-render\": (e) => this.handleFinishMsgRender(e) }\r\n );\r\n\r\n if(item.icon) {\r\n controls = \r\n \r\n {controls}\r\n ;\r\n }\r\n if(item.tooltip){\r\n controls = utils.generateTooltip(h, controls, item.tooltip, \"left\");\r\n }\r\n\r\n return (\r\n \r\n
\r\n {item.timeString}\r\n
\r\n {controls}\r\n
\r\n
\r\n \r\n );\r\n });\r\n\r\n return
{messages}
;\r\n }\r\n });\r\n\r\n return (\r\n \r\n {/* sticky top date */}\r\n
\r\n
{this.topDateText}
\r\n
\r\n\r\n {/* messages */}\r\n
{elements}
\r\n \r\n );\r\n } catch (e) {\r\n utils.error(\"ConversationView Render failed\", e);\r\n return
ConversationView Failed to Render {e}
;\r\n }\r\n },\r\n});\r\n","import Vue from 'vue';\r\nimport BaseComponent from './BaseComponentMixin.jsx';\r\nimport EventBus from '../event-bus.js';\r\n\r\nimport utils from '../../Shared/utils.jsx';\r\nimport methods from '../../Shared/methods';\r\n\r\nVue.component('css-style', {\r\n mixins: [BaseComponent],\r\n data: function () {\r\n return {\r\n }\r\n },\r\n //Mounted Replaced with preRenderComplete\r\n computed: {\r\n },\r\n methods: {\r\n preRenderComplete() {\r\n this.finishRenderHandler(this);\r\n },\r\n },\r\n props: {\r\n },\r\n render(h) {\r\n return ;\r\n }\r\n});","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticStyle:{\"display\":\"flex\",\"flex-grow\":\"1\"},attrs:{\"id\":\"app\"}},[(_vm.layout.items.length == 0)?_c('div',{staticStyle:{\"display\":\"grid\",\"grid-template-rows\":\"1fr 1fr 1fr\",\"width\":\"100%\"}},[_c('v-icon',{staticStyle:{\"font-size\":\"20vh\",\"top\":\"80px\",\"color\":\"#BDBDBD\"}},[_vm._v(\"mdi-chart-box-plus-outline\")]),_c('div',{staticStyle:{\"display\":\"flex\",\"flex-direction\":\"column\",\"justify-content\":\"center\",\"align-items\":\"center\",\"flex-grow\":\"1\",\"gap\":\"10px\"}},[_vm._m(0),(!_vm.editing)?_c('div',[_vm._v(\"Select \"),_c('v-icon',[_vm._v(\"mdi-pencil\")]),_vm._v(\" to begin adding cards from the library.\")],1):_vm._e()])],1):_vm._e(),(_vm.layout.items.length > 0)?_c('dashboard',{staticStyle:{\"display\":\"flex\",\"flex-direction\":\"column\",\"flex-grow\":\"1\",\"height\":\"1px\",\"width\":\"1px\"},attrs:{\"id\":'dashExample'}},_vm._l(([_vm.layout]),function(l){return _c('dash-layout',_vm._b({key:l.breakpoint,attrs:{\"debug\":false}},'dash-layout',l,false),_vm._l((l.items),function(item){return _c('dash-item',_vm._b({key:item.id,scopedSlots:_vm._u([{key:\"resizeBottomRight\",fn:function(){return [_c('svg',{staticClass:\"b-icon bi bi-arrow-down-right mx-auto\",attrs:{\"width\":\"1em\",\"height\":\"1em\",\"viewBox\":\"0 0 20 20\",\"focusable\":\"false\",\"role\":\"img\",\"alt\":\"icon\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"fill\":\"#42b983\",\"data-v-11c9e491\":\"\"}},[_c('g',{attrs:{\"data-v-11c9e491\":\"\"}},[_c('path',{attrs:{\"fill-rule\":\"evenodd\",\"d\":\"M14 9.5a.5.5 0 01.5.5v5a.5.5 0 01-.5.5H9a.5.5 0 010-1h4.5V10a.5.5 0 01.5-.5z\",\"clip-rule\":\"evenodd\"}}),_c('path',{attrs:{\"fill-rule\":\"evenodd\",\"d\":\"M4.646 5.646a.5.5 0 01.708 0l9 9a.5.5 0 01-.708.708l-9-9a.5.5 0 010-.708z\",\"clip-rule\":\"evenodd\"}})])])]},proxy:true}],null,true)},'dash-item',item,false,true),[_c('v-card',{staticClass:\"content\",staticStyle:{\"user-select\":\"text\"},attrs:{\"elevation\":\"3\"}},[_c('v-app-bar',{staticStyle:{\"flex-grow\":\"0\"},attrs:{\"dense\":\"\",\"flat\":\"\",\"color\":\"rgba(0, 0, 0, 0)\"}},[_c('v-app-bar-nav-icon',{directives:[{name:\"show\",rawName:\"v-show\",value:(false),expression:\"false\"}],attrs:{\"color\":\"black\"}}),(_vm.editing && item.$isEditing)?_c('v-toolbar-title',{staticClass:\"text-h6 black--text pl-0\"},[_c('v-text-field',{staticClass:\"pt-1 pb-1\",attrs:{\"dense\":\"\",\"hide-details\":\"\",\"outlined\":\"\"},model:{value:(item.title),callback:function ($$v) {_vm.$set(item, \"title\", $$v)},expression:\"item.title\"}})],1):_c('v-toolbar-title',{staticClass:\"text-h6 black--text pl-0\"},[_vm._v(\" \"+_vm._s(item.title || ('Untitled ' + item.id))+\" \")]),(_vm.editing && !item.$isEditing)?_c('v-btn',{attrs:{\"small\":\"\",\"icon\":\"\"},on:{\"click\":function($event){return _vm.editTitle($event, item)}}},[_c('v-icon',{attrs:{\"small\":\"\"}},[_vm._v(\"mdi-pencil\")])],1):_vm._e(),(_vm.editing && item.$isEditing)?_c('v-btn',{attrs:{\"small\":\"\",\"icon\":\"\"},on:{\"click\":function($event){return _vm.saveTitle($event, item)}}},[_c('v-icon',{attrs:{\"small\":\"\"}},[_vm._v(\"mdi-check\")])],1):_vm._e(),(_vm.editing && item.$isEditing)?_c('v-btn',{attrs:{\"small\":\"\",\"icon\":\"\"},on:{\"click\":function($event){return _vm.cancelEditTitle($event, item)}}},[_c('v-icon',{attrs:{\"small\":\"\"}},[_vm._v(\"mdi-close\")])],1):_vm._e(),_c('v-spacer'),_c('div',[(_vm.editing)?_c('v-btn',{attrs:{\"small\":\"\",\"icon\":\"\"},on:{\"click\":function($event){return _vm.removeThis($event, item)}}},[_c('v-icon',{attrs:{\"color\":\"error\"}},[_vm._v(\" mdi-trash-can-outline \")])],1):_vm._e()],1)],1),_c('div',{staticClass:\"dashitem_content\"},[_vm._t(\"content\",function(){return [_vm._v(\" This is the content \")]},null,item)],2)],1)],1)}),1)}),1):_vm._e(),_c('v-dialog',{attrs:{\"value\":_vm.pickervisible,\"max-width\":_vm.dialog_width,\"scrollable\":\"\"}},[_c('v-card',[_c('v-app-bar',{style:({backgroundColor: 'var(--v-navigation-base)', maxHeight: '60px', height: '60px'}),attrs:{\"flat\":\"\",\"color\":\"rgba(0, 0, 0, 0)\"}},[_c('v-toolbar-title',{staticClass:\"title white--text pl-0\"},[_vm._v(\" Delete Card \")]),_c('v-spacer'),_c('busyIcon'),_c('v-btn',{attrs:{\"color\":\"white\",\"icon\":\"\"},on:{\"click\":() => {this.pickervisible = false; this.selectedItem = -1;}}},[_c('v-icon',[_vm._v(\"mdi-close\")])],1)],1),_c('v-card-text',{staticClass:\"mt-2\"},[_vm._v(\" Are you sure you want to delete? \")]),_c('v-card-actions',{staticStyle:{\"justify-content\":\"flex-end\"}},[_c('v-btn',{attrs:{\"color\":\"primary\",\"elevation\":0},on:{\"click\":(e) => {this.$emit('remove', this.selectedItem); this.pickervisible = false;}}},[_vm._v(\"Yes\")])],1)],1)],1)],1)\n}\nvar staticRenderFns = [function (){var _vm=this,_c=_vm._self._c;return _c('div',[_c('b',{staticStyle:{\"font-size\":\"24px\"}},[_vm._v(\" Start building your dashboard! \")])])\n}]\n\nexport { render, staticRenderFns }","\r\n\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/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./responsiveDash.vue?vue&type=script&lang=js&\"; 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/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./responsiveDash.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./responsiveDash.vue?vue&type=template&id=bcb803b2&scoped=true&\"\nimport script from \"./responsiveDash.vue?vue&type=script&lang=js&\"\nexport * from \"./responsiveDash.vue?vue&type=script&lang=js&\"\nimport style0 from \"./responsiveDash.vue?vue&type=style&index=0&id=bcb803b2&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 \"bcb803b2\",\n null\n \n)\n\nexport default component.exports","import Vue from \"vue\";\r\nimport BaseComponent from \"./BaseComponentMixin.jsx\";\r\nimport utils from \"../../Shared/utils.jsx\";\r\nimport EventBus from \"../event-bus.js\";\r\nimport api from '@/Services/api';\r\nimport \"./css/Dash.css\";\r\nimport ResponsiveDash from \"./vuecontrols/responsiveDash.vue\";\r\nimport AdvancedReports from './AdvancedReports.vue';\r\nimport AdvancedHistory from './AdvancedHistory.vue';\r\nimport BrokenImage from '../../Assets/BrokenImage.svg';\r\n\r\nconst cloneDeep = require('lodash.clonedeep')\r\n\r\nconst busyIcon = {\r\n render(h) {\r\n return (\r\n \r\n mdi mdi-cloud-download\r\n
\r\n );\r\n }\r\n};\r\n\r\nVue.component(\"dash\", {\r\n mixins: [BaseComponent],\r\n components: {\r\n ResponsiveDash,\r\n busyIcon,\r\n AdvancedReports,\r\n AdvancedHistory\r\n },\r\n data: function() {\r\n return {\r\n iseditable: null,\r\n delay_expn: 0,\r\n dashboard: 0,\r\n editing: false,\r\n selected_dashboard: -1,\r\n layout: {\r\n breakpoint: \"xl\",\r\n numberOfCols: 24,\r\n compact: true,\r\n items: [],\r\n },\r\n picker: null,\r\n pickervisible: false,\r\n istemplate: null,\r\n templateid: null,\r\n newproperties: {},\r\n //menuActions: null,\r\n dash_tabs: [],\r\n dash_loading: true,\r\n dialog_width: 860,\r\n };\r\n },\r\n //Mounted Replaced with preRenderComplete\r\n computed: {\r\n style() {\r\n return {\r\n \"display\": \"flex\",\r\n \"flex-direction\": \"column\",\r\n ...this.sizeStyle,\r\n };\r\n },\r\n isEditableComputed: function () {\r\n try {\r\n\r\n if (this.iseditable === null && this.controlData.EditableExpression !== null)\r\n this.iseditable = utils.compile(this, this.controlData.EditableExpression);\r\n\r\n let iseditable = utils.evaluate(this.iseditable, this) || false;\r\n return iseditable;\r\n } catch (e) {\r\n utils.warn(\"Editable Expression could not evaluate expression: \" + this.controlData.EditableExpression + \"; \" + e);\r\n return \"\";\r\n }\r\n },\r\n isTemplateComputed: function () {\r\n try {\r\n if (this.istemplate === null && this.controlData.IsTemplate !== null)\r\n this.istemplate = utils.compile(this, this.controlData.IsTemplate);\r\n\r\n let istemplate = utils.evaluate(this.istemplate, this) || false;\r\n return istemplate;\r\n } catch (e) {\r\n utils.warn(\"Template Expression could not evaluate expression: \" + this.controlData.IsTemplate + \"; \" + e);\r\n return \"\";\r\n }\r\n }\r\n },\r\n created() {\r\n if (this.controlData.RefreshFrequency)\r\n this.delay_expn = utils.compileExpression(this, this.controlData.RefreshFrequency);\r\n \r\n if(this.isTemplateComputed && this.controlData.TemplateId)\r\n this.templateid = utils.compile(this, this.controlData.TemplateId)\r\n \r\n },\r\n destroyed() {\r\n if (this.interval) clearInterval(this.interval);\r\n },\r\n methods: {\r\n async runPassedInActions(theaction) {\r\n let actions = [];\r\n actions.push(theaction);\r\n await utils.executeAndCompileAllActions(actions, this, this);\r\n },\r\n async preRenderComplete() {\r\n this.finishRenderHandler(this);\r\n await this.Refresh();\r\n this.dash_loading = false;\r\n\r\n const delay = this.delay_expn ? utils.evaluate(this.delay_expn, this) : 0;\r\n\r\n if (delay)\r\n this.interval = setInterval(() => {\r\n EventBus.$emit(\"RefreshWidgets\");\r\n }, delay * 1000);\r\n\r\n const lastSelectedDashboard = this.System.LocalStorage(`Dashboard_${this.controlData.Name || 'undefined'}`);\r\n if(lastSelectedDashboard) {\r\n this.dashboard = this.dash_tabs.findIndex(dt => dt.ID == lastSelectedDashboard);\r\n if(this.dashboard == -1) {\r\n this.dashboard = 0;\r\n this.System.LocalStorage(`Dashboard_${this.controlData.Name || 'undefined'}`, this.dash_tabs[0]?.ID);\r\n\r\n }\r\n }\r\n },\r\n async Refresh() {\r\n try {\r\n let data;\r\n const templateId = this.templateid ? utils.evaluate(this.templateid, this) : 0;\r\n if(this.isTemplateComputed) {\r\n if(templateId) {\r\n data = await utils.api.get(`Apps/Platform/Schema/Data/v1/DashboardTemplate?ID=${templateId}`, false, false);\r\n data = [data];\r\n }\r\n else \r\n data = [{\r\n Name: \"{Template Name}\",\r\n Layout: {\r\n breakpoint: \"xl\",\r\n numberOfCols: 24,\r\n compact: true,\r\n items: [],\r\n },\r\n }];\r\n } else {\r\n data = await utils.api.request('POST', `Apps/Data/v1/UserDashboards/ListAllMyDashboards?AllowPersonalDashboards=${this.controlData.AllowPersonalDashboards}`, this.controlData.DefaultTemplates, false, true);\r\n data = data.Result;\r\n }\r\n\r\n if (data && data.length > 0) {\r\n this.dash_tabs = data\r\n .sort((a, b) => a.Order - b.Order)\r\n .map(d => ({\r\n Title: d.Name,\r\n Description: d.Description,\r\n ID: d.ID,\r\n editing: false,\r\n layout: d.Layout,\r\n TemplateID: d.TemplateID\r\n }));\r\n }\r\n }\r\n catch (e) {\r\n utils.warn(`Failed to load dashboards (Apps/Data/v1/UserDashboards/ListByID)`, e);\r\n }\r\n },\r\n async cancelTab(t) {\r\n if(t.ID) {\r\n this.toggleEditing(t);\r\n await this.Refresh();\r\n } else {\r\n this.dash_tabs.pop();\r\n this.dashboard = this.dash_tabs.length - 1;\r\n this.System.LocalStorage(`Dashboard_${this.controlData.Name || 'undefined'}`, this.dash_tabs[this.dashboard].ID)\r\n\r\n }\r\n },\r\n async saveTab(t) {\r\n const data = {\r\n ID: t.ID,\r\n Name: t.Title,\r\n Description: t.Description,\r\n Layout: {\r\n breakpoint: t.layout.breakpoint,\r\n numberOfCols: t.layout.numberOfCols,\r\n compact: t.layout.compact,\r\n items: t.layout.items.map(i => ({\r\n id: i.id,\r\n x: i.x,\r\n y: i.y,\r\n width: i.width,\r\n height: i.height,\r\n locked: true,\r\n title: i.title,\r\n ControlURL: i.ControlURL,\r\n ControlData: i.ControlData,\r\n })),\r\n },\r\n Order: this.dash_tabs.findIndex(a => a.Title == t.Title),\r\n };\r\n if(t.TemplateID)\r\n data.TemplateID = t.TemplateID;\r\n\r\n let res;\r\n\r\n if(this.isTemplateComputed) {\r\n res = await utils.api.request('POST', 'Apps/Platform/Schema/Data/v1/DashboardTemplate?AutoReplace=true', data);\r\n } else {\r\n res = await utils.api.request('POST', 'Apps/Data/v1/UserDashboards/SaveMyDashboard?AutoReplace=true', data);\r\n }\r\n\r\n if (res.Success) {\r\n t.ID = res.ID;\r\n this.toggleEditing(t);\r\n \r\n if(this.controlData.SaveActions && this.controlData.SaveActions.length > 0)\r\n await utils.executeAndCompileAllActions(this.controlData.SaveActions, null, this);\r\n }\r\n },\r\n async deleteTab(t) {\r\n this.dialog_width = 400;\r\n this.picker = (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n this.pickervisible = false}>\r\n mdi-close\r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n this.deleteDashboard(t)}>\r\n \r\n \r\n \r\n\r\n \r\n );\r\n this.pickervisible = true;\r\n },\r\n async deleteDashboard(t) {\r\n if (t.ID) {\r\n if(t.TemplateID)\r\n await utils.api.request('POST', `Apps/Data/v1/UserDashboards/UserSoftDeleteTemplateDashboard?AutoReplace=true`, t);\r\n else\r\n await utils.api.request('DELETE', `Apps/Data/v1/UserDashboards?ID=${t.ID}`);\r\n }\r\n this.pickervisible = false;\r\n const idx = this.dash_tabs.findIndex(a => a == t);\r\n if (idx >= 0)\r\n this.dash_tabs.splice(idx, 1);\r\n\r\n if (this.dashboard >= this.dash_tabs.length) {\r\n this.dashboard = this.dash_tabs.length - 1;\r\n this.System.LocalStorage(`Dashboard_${this.controlData.Name || 'undefined'}`, this.dash_tabs[this.dashboard]?.ID)\r\n }\r\n \r\n },\r\n\r\n addTab(e) {\r\n const t = {\r\n Title: 'Untitled',\r\n editing: true,\r\n layout: {\r\n breakpoint: \"xl\",\r\n numberOfCols: 24,\r\n compact: true,\r\n items: [],\r\n }\r\n };\r\n\r\n this.dash_tabs.push(t);\r\n\r\n this.dashboard = this.dash_tabs.length - 1;\r\n this.System.LocalStorage(`Dashboard_${this.controlData.Name || 'undefined'}`, this.dash_tabs[this.dashboard].ID)\r\n },\r\n toggleEditing(t) {\r\n t.editing = !t.editing;\r\n\r\n for (let i = 0; i < t.layout.items.length; i++) {\r\n t.layout.items[i].locked = !t.editing;\r\n Vue.delete(t.layout.items[i], \"$isEditing\");\r\n }\r\n\r\n if (!t.editing) {\r\n // Save layout\r\n const data = JSON.stringify(t.layout.items);\r\n this.System.LocalStorage(\"dash.layout.1\", data);\r\n }\r\n },\r\n\r\n addWidget(t, cardDefinition, props) {\r\n let newid = '1';\r\n if (t.layout.items.length > 0) {\r\n const id = Math.max(...t.layout.items.map(i => parseInt(i.id)));\r\n newid = `${id + 1}`;\r\n }\r\n let x = 0, y = 0;\r\n let blocked = true;\r\n\r\n // Scan across and down looking for an opening\r\n for (y = 0; ; y++) {\r\n for (x = 0; x < t.layout.numberOfCols; x++) {\r\n blocked = t.layout.items.some(i =>\r\n (i.x <= x && (i.x + i.width - 1) >= x) &&\r\n (i.y <= y && (i.y + i.height - 1) >= y));\r\n\r\n if (!blocked) break;\r\n }\r\n\r\n if (!blocked) break;\r\n }\r\n \r\n var newItem = {\r\n id: newid,\r\n x: x,\r\n y: y,\r\n width: cardDefinition.Width,\r\n height: cardDefinition.Height,\r\n locked: false,\r\n title: cardDefinition.Name,\r\n ControlURL: cardDefinition.UserControl,\r\n ControlData: {...cloneDeep(props), FilterId: utils.generateUUID()},\r\n };\r\n\r\n t.layout.items.push(newItem);\r\n this.pickervisible = false;\r\n },\r\n\r\n removeItem(t, item) {\r\n const idx = t.layout.items.findIndex((i) => i.id == item.id);\r\n if (idx >= 0) t.layout.items.splice(idx, 1);\r\n },\r\n browse(t) {\r\n this.dialog_width = 860;\r\n this.picker = (\r\n this.confirm(cardDefinition, t)}\r\n cancel={this.cancel}\r\n >\r\n );\r\n this.pickervisible = true;\r\n },\r\n async confirm(cardDefinition, t) {\r\n this.pickervisible = false;\r\n \r\n if(cardDefinition.UserControl) {\r\n // grab the control, find the schema, present a form to edit the properties\r\n let apiRequest = {\r\n method: 'GET',\r\n url: `Apps/UIWhole/UserControl/${cardDefinition.UserControl}`,\r\n doNotUseWebsocket: true,\r\n flatten: false,\r\n cache: false,\r\n };\r\n\r\n let c = await api.apiRequest(apiRequest);\r\n let responseControl = c.data?.Result || c.data;\r\n if (!responseControl) {\r\n apiRequest.url = `Apps/UIWhole/UserControl/public/${cardDefinition.UserControl}`;\r\n c = await await api.apiRequest(apiRequest);\r\n responseControl = c.data?.Result || c.data;\r\n }\r\n\r\n // Open a dialog with a form to input properties from the schema\r\n const s = responseControl.ControlDataSchema;\r\n if(Object.keys(s.properties).length > 0 && s.properties[\"DashboardPrompt\"] && Object.keys(s.properties.DashboardPrompt).length > 0 ){\r\n this.dialog_width = 860;\r\n this.picker = (\r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n\r\n \r\n\r\n this.pickervisible = false}>\r\n mdi-close\r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n this.addWidget(t, cardDefinition, this.newproperties)}>\r\n \r\n \r\n \r\n\r\n \r\n );\r\n this.pickervisible = true;\r\n } else {\r\n this.addWidget(t, cardDefinition, cardDefinition.Type == \"Numeric\" ? { Metric : cardDefinition.Metric } : {});\r\n }\r\n } else if(cardDefinition.Type == \"Aggregate\" || cardDefinition.Type == \"Detail\") {\r\n var widgetDef = {\r\n Width: 11,\r\n Height: 7,\r\n UserControl: \"ReportStudio/DashboardReport\",\r\n Name: cardDefinition.Name,\r\n };\r\n var controlData = {\r\n DashboardData: {\r\n RefreshInterval: cardDefinition.Status.RefreshInterval || \"Never\",\r\n ReportName: cardDefinition.Name,\r\n ReportID: cardDefinition.ID,\r\n ReportType: cardDefinition.Type\r\n },\r\n ReportID: cardDefinition.ID\r\n }\r\n this.addWidget(t, widgetDef, controlData)\r\n\r\n }\r\n },\r\n cancel() {\r\n this.pickervisible = false;\r\n },\r\n getHeader(h) {\r\n const header = [];\r\n header.push(\r\n this.toggleEditing(this.dash_tabs[this.dashboard])}>\r\n mdi-pencil\r\n \r\n );\r\n\r\n if (this.controlData.HeaderControls && this.controlData.HeaderControls.length > 0) {\r\n for (let i = 0; i < this.controlData.HeaderControls.length; i++) {\r\n const c = this.controlData.HeaderControls[i];\r\n let DynamicControl = utils.getDynamicComponent(h, c);\r\n if (!DynamicControl)\r\n DynamicControl = 'default-unknown';\r\n \r\n if (!c.$objectId)\r\n c.$objectId = utils.generateUUID();\r\n \r\n let id = `${c.$objectId}_${i}`;\r\n \r\n header.push(\r\n this.finishRenderHandler(reference) }}\r\n type={c.ControlType}\r\n key={id}\r\n name={c.ControlData ? (c.ControlData.Name || 'unnamed') : 'unnamed'}\r\n root={this.root}\r\n parentType=\"HorizontalStack\"\r\n controlData={c.ControlData}\r\n controlURL={c.ControlURL}\r\n controlName={c.Name}\r\n cacheControl={c.CacheControl}\r\n controlEvents={c.Events}\r\n >\r\n \r\n );\r\n }\r\n return header;\r\n }\r\n \r\n return header;\r\n }\r\n },\r\n props: {},\r\n render(h) {\r\n if (!this.todisplay || this.dash_loading) return null;\r\n\r\n const tabs = [];\r\n const window_body = [];\r\n\r\n for (let i = 0; i < this.dash_tabs.length; i++) {\r\n const t = this.dash_tabs[i];\r\n\r\n let title = t.Title;\r\n if (t.editing)\r\n {\r\n if (t.$isEditing) {\r\n title =\r\n
\r\n t.Title = e}>\r\n {utils.generateTooltip(h, this.saveTabTitle(e, t)}>mdi-check, 'Save', 'right')}\r\n {utils.generateTooltip(h, this.cancelEditTabTitle(e, t)}>mdi-close, 'Cancel', 'right')}\r\n
;\r\n }\r\n else {\r\n title =\r\n \r\n {t.Title}\r\n {utils.generateTooltip(h, this.editTabTitle(e, t)}>mdi-pencil, 'Edit', 'right')}\r\n ;\r\n }\r\n }\r\n else if (!t.ID)\r\n title += ' (Not Saved)';\r\n\r\n const scopedSlots = {\r\n content: (item) => {\r\n if (item.ControlURL == \"ReportUnavailable\") {\r\n return (\r\n
\r\n \r\n
This report has been removed
from the Card Library
\r\n
\r\n )\r\n }\r\n // if (item.ControlURL == \"AdvancedReports\") {\r\n // return (\r\n // this.finishRenderHandler(reference) }}\r\n // root={this.root}\r\n // parentType=\"Dash\"\r\n // isDashboard={true}\r\n // controlData={item.ControlData}\r\n // controlURL={item.ControlURL}\r\n // />\r\n // );\r\n // } else if (item.ControlURL == \"AdvancedHistory\") {\r\n // return (\r\n // this.finishRenderHandler(reference) }}\r\n // root={this.root}\r\n // parentType=\"Dash\"\r\n // isDashboard={true}\r\n // controlData={item.ControlData}\r\n // controlURL={item.ControlURL}\r\n // />\r\n // );\r\n // } \r\n else if (item.ControlURL) {\r\n return (\r\n this.finishRenderHandler(reference) }}\r\n root={this.root}\r\n parentType=\"Dash\"\r\n isDashboard={true}\r\n controlData={item.ControlData}\r\n controlURL={item.ControlURL}\r\n >\r\n );\r\n } else {\r\n let addbtn;\r\n if (t.editing)\r\n addbtn = (\r\n this.browse(e, t, item)}>\r\n mdi-plus\r\n \r\n );\r\n\r\n return (\r\n
\r\n : {item.id}\r\n
\r\n {addbtn}\r\n
\r\n );\r\n }\r\n },\r\n };\r\n\r\n window_body.push(\r\n \r\n this.removeItem(t, item)}\r\n >\r\n \r\n );\r\n }\r\n\r\n var dashboardEditButtons = [\r\n (\r\n this.browse(this.dash_tabs[this.dashboard])}>\r\n \r\n mdi-plus\r\n \r\n ),\r\n (\r\n this.deleteTab(this.dash_tabs[this.dashboard])}>\r\n \r\n mdi-trash-can-outline\r\n \r\n ),\r\n ]\r\n\r\n const header = this.getHeader(h);\r\n \r\n\r\n var dashboardEditTitleAndSave = [\r\n (\r\n
\r\n this.dash_tabs[this.dashboard].Title = e}>\r\n
\r\n ),\r\n (\r\n this.saveTab(this.dash_tabs[this.dashboard])}>\r\n \r\n \r\n ),\r\n (\r\n this.cancelTab(this.dash_tabs[this.dashboard])}>\r\n \r\n \r\n )\r\n\r\n ]\r\n\r\n var dashboardListItems = this.dash_tabs.map((d, index) => {\r\n return (\r\n {this.dashboard = index; this.System.LocalStorage(`Dashboard_${this.controlData.Name || 'undefined'}`, this.dash_tabs[this.dashboard].ID)}} color={this.dashboard == index ? 'secondary' : ''}>\r\n mdi-view-dashboard \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n });\r\n\r\n if(this.isEditableComputed && !this.isTemplateComputed)\r\n dashboardListItems.push([\r\n (),\r\n (\r\n this.addTab()}>\r\n mdi-plus \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n ])\r\n\r\n return (\r\n
\r\n { \r\n this.dash_tabs.length ?\r\n
\r\n
\r\n
\r\n { \r\n !this.dash_tabs[this.dashboard]?.editing ?\r\n (\r\n \r\n {this.dash_tabs[this.dashboard]?.Title}\r\n mdi-menu-down\r\n \r\n ),\r\n }}\r\n >\r\n \r\n \r\n {dashboardListItems}\r\n \r\n \r\n \r\n : null\r\n } \r\n
\r\n
\r\n {\r\n this.dash_tabs[this.dashboard]?.editing ? \r\n
\r\n {dashboardEditTitleAndSave}\r\n
\r\n : null\r\n }\r\n
\r\n
\r\n
\r\n {\r\n this.dash_tabs[this.dashboard]?.editing ? \r\n dashboardEditButtons \r\n : header\r\n }\r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n {window_body}\r\n \r\n \r\n {this.picker}\r\n \r\n \r\n
\r\n : \r\n
\r\n mdi-view-dashboard-edit-outline\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n this.addTab()}>\r\n \r\n \r\n
\r\n
\r\n }\r\n
\r\n );\r\n },\r\n});","import Vue from 'vue';\r\nimport BaseComponent from './BaseComponentMixin.jsx';\r\nimport utils from '../../Shared/utils.jsx';\r\nimport cDateRangePicker from '@/Application/components/vuecontrols/DateRangePicker';\r\nimport careHelpfulFunctions from '@/Shared/careHelpfulFunctions';\r\n\r\n\r\n\r\nVue.component('date-range-picker', {\r\n mixins: [BaseComponent],\r\n components: {cDateRangePicker},\r\n data: function () {\r\n return {\r\n setValueFunction: null,\r\n allowTimeRenderer: null,\r\n timePickerIncrementRenderer: null,\r\n isDisabledRenderer: null,\r\n placeholderRenderer: null,\r\n defaultRenderer: null,\r\n allowFutureDateRenderer: null,\r\n publishedModel: null,\r\n allowTime: null\r\n }\r\n },\r\n created() {\r\n this.allowTime = this.controlData.AllowTime;\r\n },\r\n computed: {\r\n publishField: {\r\n set(value){\r\n if(this.setValueFunction === null && this.controlData.PublishField){\r\n let vueSet = utils.helpers.convertSetValueToVueSet(this.controlData.PublishField, 'value');\r\n this.setValueFunction = new Function('value', 'context', 'util', 'vue', `with (context) { ${vueSet} }`);\r\n }\r\n if(this.setValueFunction) {\r\n this.setValueFunction(value, this, careHelpfulFunctions, Vue)\r\n }\r\n \r\n this.publishedModel = value;\r\n },\r\n get() {\r\n return this.publishedModel;\r\n }\r\n },\r\n isDisabled: function() {\r\n try {\r\n if (this.isDisabledRenderer === null && this.controlData.IsDisabled)\r\n this.isDisabledRenderer = utils.compile(this, this.controlData.IsDisabled);\r\n if (this.isDisabledRenderer)\r\n return utils.evaluate(this.isDisabledRenderer, this);\r\n else\r\n return false;\r\n }\r\n catch (e)\r\n {\r\n utils.warn('IsDisabled could not evaluate expression: ' + this.controlData.IsDisabled + '; ' + e);\r\n return '';\r\n }\r\n },\r\n default: function() {\r\n try {\r\n if (this.defaultRenderer === null && this.controlData.Default)\r\n this.defaultRenderer = utils.compile(this, this.controlData.Default);\r\n if (this.defaultRenderer)\r\n return utils.evaluate(this.defaultRenderer, this);\r\n else\r\n return {};\r\n }\r\n catch (e)\r\n {\r\n utils.warn('Default could not evaluate expression: ' + this.controlData.Default + '; ' + e);\r\n return '';\r\n }\r\n },\r\n },\r\n methods: {\r\n async preRenderComplete() {\r\n this.finishRenderHandler(this);\r\n },\r\n async applyDateRangeHandler(date) {\r\n if(this.controlData.PublishField)\r\n this.publishField = date;\r\n await utils.executeAndCompileAllActions(this.controlData.ApplyActions, date, this);\r\n\r\n },\r\n async clearDateRangeHandler() {\r\n await utils.executeAndCompileAllActions(this.controlData.ClearActions, null, this);\r\n },\r\n SetTimePicker(value) {\r\n this.allowTime = value;\r\n },\r\n ToggleIsTimePicker() {\r\n this.allowTime = !this.allowTime\r\n }\r\n },\r\n render(h) {\r\n if(!this.todisplay)\r\n return null;\r\n\r\n try {\r\n return \r\n }\r\n catch (e) {\r\n utils.error('DateRangePicker Render failed', e);\r\n return
DateRangePicker Failed to Render {e}
;\r\n }\r\n }\r\n});","import Vue from 'vue';\r\nimport utils from '../../Shared/utils.jsx';\r\nimport methods from '../../Shared/methods';\r\nimport BaseComponentMixin from './BaseComponentMixin.jsx';\r\nimport { appSettings } from '@/Shared/appSettings';\r\n\r\nVue.component('default-unknown', {\r\n mixins: [BaseComponentMixin],\r\n data: function () {\r\n return {\r\n }\r\n },\r\n computed: {\r\n },\r\n created() {\r\n },\r\n //mounted() {\r\n // this.$emit(\"finished-render\", this);\r\n //},\r\n methods: {\r\n preRenderComplete() {\r\n this.finishRenderHandler(this);\r\n },\r\n },\r\n props: {\r\n },\r\n render(h) {\r\n //if (!this.todisplay)\r\n // return null;\r\n\r\n let name;\r\n if (!this.name)\r\n name = this.type;\r\n else\r\n name = this.name + ':' + this.type || 'Unnamed';\r\n\r\n return (\r\n
\r\n {name}
\r\n
\r\n );\r\n }\r\n});","import Vue from 'vue';\r\nimport BaseComponent from './BaseComponentMixin.jsx';\r\nimport api from '@/Services/api'\r\n\r\nimport utils from '@/Shared/utils.jsx';\r\n\r\nVue.component('debug-hsm-log', {\r\n mixins: [BaseComponent],\r\n data: function () {\r\n return {\r\n data: null,\r\n umlEval: null,\r\n model: '',\r\n uml: null,\r\n selectedItemId: 0,\r\n }\r\n },\r\n //Created Replaced with preRenderComplete\r\n computed: {\r\n umls() {\r\n return utils.evaluateObject(this.umlEval, this);\r\n },\r\n },\r\n methods: {\r\n async preRenderComplete() {\r\n this.umlEval = utils.compileObject(this, this.controlData.Umls);\r\n \r\n this.selectedItemId = this.umls.length - 1;\r\n this.refreshDiagram();\r\n this.finishRenderHandler(this);\r\n },\r\n refreshDiagram() {\r\n this.uml = this.umls[this.selectedItemId];\r\n if (this.uml) {\r\n var type = this.uml.url ? \"url\" : \"data\";\r\n var data = type == \"data\" ? this.uml.data : {};\r\n var url = type == \"data\" ? \"/PlantUml/Create\" : this.uml.url;\r\n // generate the image on the server. It will return the new image name, which is then used to render the image\r\n api.apiRequest({\r\n method: 'POST',\r\n data: {\r\n data: data\r\n },\r\n url: url,\r\n doNotUseWebsocket: true,\r\n doNotStandardizeUrl: true\r\n }).then(response => {\r\n var topsvg = this.$el.getElementsByClassName('topsvg')[0];\r\n var bottomsvg = this.$el.getElementsByClassName('bottomsvg')[0];\r\n topsvg.innerHTML = response.data;\r\n bottomsvg.innerHTML = response.data;\r\n this.restore();\r\n this.zoom(-30); // zoom out by 30% initially\r\n });\r\n }\r\n },\r\n onSelect(index) {\r\n this.selectedItemId = index;\r\n this.refreshDiagram();\r\n },\r\n restore() {\r\n var topsvgdiv = this.$el.getElementsByClassName('topsvg')[0];\r\n var topsvg = this.$el.getElementsByClassName('topsvg')[0].children[0];\r\n var bottomsvgdiv = this.$el.getElementsByClassName('bottomsvg')[0]; \r\n var bottomsvg = this.$el.getElementsByClassName('bottomsvg')[0].children[0];\r\n\r\n this.restoreHeightWidth(topsvgdiv);\r\n this.restoreHeightWidth(topsvg);\r\n this.restoreTop(bottomsvgdiv);\r\n this.restoreHeightWidth(bottomsvg);\r\n },\r\n restoreHeightWidth(element) {\r\n if (element?.originalHeightWidth) {\r\n element.style.height = element.originalHeightWidth.height;\r\n element.style.width = element.originalHeightWidth.width;\r\n element.zoomFactor = 100;\r\n }\r\n },\r\n restoreTop(element) {\r\n if (element?.originalTop) {\r\n element.style.top = element.originalTop.top;\r\n element.zoomFactor = 100;\r\n }\r\n },\r\n zoom(amt) {\r\n var topsvgdiv = this.$el.getElementsByClassName('topsvg')[0]; // adjust the height on the stationary header\r\n var topsvg = this.$el.getElementsByClassName('topsvg')[0].children[0]; // adjust the svg itselv\r\n var bottomsvgdiv = this.$el.getElementsByClassName('bottomsvg')[0]; // adjust the top offset on the non-stationary image\r\n var bottomsvg = this.$el.getElementsByClassName('bottomsvg')[0].children[0];\r\n\r\n this.scaleHeightWidth(topsvgdiv, amt);\r\n this.scaleHeightWidth(topsvg, amt);\r\n this.scaleTop(bottomsvgdiv, amt);\r\n this.scaleHeightWidth(bottomsvg, amt);\r\n },\r\n scaleHeightWidth(element, amt) {\r\n if (!element.originalHeightWidth) {\r\n element.originalHeightWidth = {\r\n height: element.style.height,\r\n width: element.style.width\r\n }\r\n\r\n element.zoomFactor = 100;\r\n }\r\n\r\n element.zoomFactor += amt;\r\n\r\n var height = Number(element.originalHeightWidth.height.replace(\"px\", \"\"));\r\n height = height * (element.zoomFactor / 100.0);\r\n element.style.height = height + \"px\";\r\n\r\n // the stationary header doesn't have a width, so don't adjust if no width defined\r\n if (element.originalHeightWidth.width) {\r\n var width = Number(element.originalHeightWidth.width.replace(\"px\", \"\"));\r\n width = width * (element.zoomFactor / 100.0);\r\n element.style.width = width + \"px\";\r\n }\r\n },\r\n scaleTop(element, amt) {\r\n if (!element?.originalTop) {\r\n element.originalTop = {\r\n top: element.style.top,\r\n }\r\n\r\n element.zoomFactor = 100;\r\n }\r\n\r\n element.zoomFactor += amt;\r\n\r\n var top = Number(element.originalTop.top.replace(\"px\", \"\"));\r\n top = top * (element.zoomFactor / 100.0);\r\n element.style.top = top + \"px\";\r\n }\r\n },\r\n props: {},\r\n render(h) {\r\n if(!this.todisplay)\r\n return null;\r\n\r\n try {\r\n return (\r\n
\r\n {this.umls.length > 0\r\n ? ( \r\n
\r\n \r\n
\r\n ) \r\n : null}\r\n
\r\n this.zoom(-10)}>Zoom out\r\n this.zoom(10)}>Zoom In\r\n this.restore()}>Restore\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n );\r\n }\r\n catch (e) {\r\n utils.error('DebugHsmLog Render failed', e);\r\n return
DebugHsmLog Failed to Render {e}
;\r\n }\r\n }\r\n});","import Vue from 'vue';\r\nimport BaseComponent from './BaseComponentMixin.jsx';\r\nimport EventBus from '../event-bus.js';\r\nimport utils from '../../Shared/utils.jsx';\r\n\r\nVue.component('desktop-notify', {\r\n mixins: [BaseComponent],\r\n data: function () {\r\n return {\r\n serviceWorkerRegistration: null,\r\n hasPermission: false,\r\n notifyUniqeIdCounter: 1,\r\n desktopNotifyActions: {},\r\n closedNotifyCache: {}, // tracks notifications that were closed by Id but not found in notification list. This could mean the notification hadn't finished showing yet (being rendered async)\r\n }\r\n },\r\n computed: {\r\n },\r\n created() {\r\n EventBus.$on(`Action-DisplayDesktopNotify`, this.performDisplayDesktopNotify);\r\n EventBus.$on(`Action-CloseDesktopNotify`, this.performCloseDesktopNotify);\r\n\r\n let c = this;\r\n\r\n // Set up the service worker.\r\n navigator.serviceWorker.register('/sw_v2.js', { scope: '/' })\r\n .then(function (serviceWorkerRegistration) {\r\n // registration worked\r\n //utils.debug('Registration succeeded. Scope is ' + serviceWorkerRegistration.scope);\r\n\r\n c.serviceWorkerRegistration = serviceWorkerRegistration;\r\n\r\n navigator.serviceWorker.addEventListener('message', c.messageReceived);\r\n })\r\n .catch(function (error) {\r\n // registration failed\r\n utils.error('Registration failed with ' + error, error);\r\n });\r\n\r\n\r\n // Set up the listener for messages from the service worker.\r\n Notification.requestPermission(function (result) {\r\n c.hasPermission = (result === 'granted');\r\n });\r\n },\r\n //Mounted Replaced with preRenderComplete\r\n destroyed() {\r\n EventBus.$off(`Action-DisplayDesktopNotify`, this.performDisplayDesktopNotify);\r\n EventBus.$off(`Action-CloseDesktopNotify`, this.performCloseDesktopNotify);\r\n\r\n if (this.serviceWorkerRegistration)\r\n navigator.serviceWorker.removeEventListener('message', this.messageReceived);\r\n },\r\n methods: {\r\n async performDisplayDesktopNotify(action) {\r\n utils.log(`DesktopNotify DisplayDesktopNotify`);\r\n\r\n if (action.ActionData && action.ActionData.Debug && action.ActionData.Debug.BreakPoint) debugger;\r\n\r\n const title = utils.evaluate(action.titleexpn, action.context);\r\n const body = utils.evaluate(action.bodyexpn, action.context);\r\n const icon = utils.evaluate(action.iconexpn, action.context);\r\n\r\n const firstActionTitle = utils.evaluate(action.firstActionTitleexpn, action.context);\r\n const secondActionTitle = utils.evaluate(action.secondActionTitleexpn, action.context);\r\n const firstActionIcon = utils.evaluate(action.firstActionIconexpn, action.context);\r\n const secondActionIcon = utils.evaluate(action.secondActionIconexpn, action.context);\r\n const thecontext = utils.evaluate(action.thecontextexpn, action.context);\r\n\r\n if (this.hasPermission && this.serviceWorkerRegistration) {\r\n const notifyName = action.ActionData.Name; // if DisplayDesktopNotify is called without a Name, you can still close using the notifyUniqeId returned\r\n const notifyUniqeId = this.notifyUniqeIdCounter++;\r\n\r\n // Save based on unique Id so that we can open more than one at the same time\r\n this.desktopNotifyActions[notifyUniqeId] = action;\r\n\r\n const actions = [];\r\n if (firstActionTitle) {\r\n actions.push({\r\n title: firstActionTitle,\r\n action: 'first',\r\n icon: firstActionIcon || undefined,\r\n });\r\n }\r\n if (secondActionTitle) {\r\n actions.push({\r\n title: secondActionTitle,\r\n action: 'second',\r\n icon: secondActionIcon || undefined,\r\n });\r\n }\r\n\r\n const options = {\r\n type: \"basic\",\r\n body: body,\r\n icon: icon,\r\n contextMessage: thecontext,\r\n requireInteraction: true,\r\n actions: actions,\r\n tag: notifyUniqeId, // tag is specifed on principle...we don't actually use it\r\n data: {\r\n desktopServiceId: this.desktopServiceId,\r\n notifyName: notifyName,\r\n notifyUniqeId: notifyUniqeId,\r\n options: {\r\n focus: action.ActionData.FocusOnClick,\r\n },\r\n },\r\n };\r\n\r\n const c = this;\r\n\r\n // Display the notification\r\n // Note: There appears to be a bug in chrome where sometimes the notification shows, but the notification doesn't actually work\r\n // I can only reproduce the error when quickly creating notifications in a loop (e.g. TestDesktopNotify(50)), in which case the \r\n // notification shows, but isn't returned in getNotifications(). Also the notification doesn't react to clicks on the actions (it will close if the X is pressed, but no message is sent)\r\n // in such cases the notification seems to be unhealthy - it displayed but didn't get added to the notification list properly and therefore can't be interacted with properly.\r\n // I wasn't able to produce the problem under normal circumstances (even running 1 dialog manually really fast) - nonetheless there is a problem in chrome somewhere. \r\n this.serviceWorkerRegistration.showNotification(title, options).then(function (argv) {\r\n //care.logDebug('Desktop Notify:: Show - showed ' + notifyUniqeId);\r\n\r\n // showNotification doesn't happen instantly and allows a window of time for a close to happen before the notification has actually shown. So once it shows, \r\n // we check the c.closedNotifyCache to see if we should immediatly close ourselves\r\n if (c.closedNotifyCache[notifyUniqeId]) {\r\n delete c.closedNotifyCache[notifyUniqeId];\r\n\r\n c.serviceWorkerRegistration.getNotifications().then(\r\n function (notifications) {\r\n //care.logDebug('Desktop Notify:: Show - found in closedNotifyCache...closing notifications ' + notifyUniqeId + ', notifications ' + notifications.length );\r\n\r\n for (var x = 0; x < notifications.length; x++) {\r\n var notification = notifications[x];\r\n\r\n if (notification.data &&\r\n notification.data.desktopServiceId == c.desktopServiceId &&\r\n notification.data.notifyUniqeId == notifyUniqeId) {\r\n utils.debug('Desktop Notify:: Close - closing from cache ' + notifyUniqeId + \", notifications: \" + notifications.length);\r\n notification.close();\r\n break;\r\n }\r\n }\r\n\r\n if (x == notifications.length)\r\n utils.debug('Desktop Notify:: Close - NOT FOUND from cache ' + notifyUniqeId + \", notifications: \" + notifications.length);\r\n }\r\n );\r\n }\r\n else if (action.ActionData.Timeout) {\r\n setTimeout(function () {\r\n // the notification may already be closed (if the user closed manually), so don't error if we can't find it\r\n c.serviceWorkerRegistration.getNotifications().then(\r\n function (notifications) {\r\n for (var x = 0; x < notifications.length; x++) {\r\n var notification = notifications[x];\r\n\r\n if (notification.data &&\r\n notification.data.desktopServiceId == c.desktopServiceId &&\r\n notification.data.notifyUniqeId == notifyUniqeId) {\r\n notification.close();\r\n break;\r\n }\r\n }\r\n }\r\n );\r\n\r\n }, action.ActionData.Timeout);\r\n }\r\n });\r\n\r\n utils.success(action, { DesktopNotifyId: notifyUniqeId });\r\n //actionInfo.Finished(careActionCompletionStatus.SUCCESS, { DesktopNotifyId: notifyUniqeId });\r\n }\r\n else {\r\n utils.failure(action);\r\n //actionInfo.Finished(careActionCompletionStatus.FAIL);\r\n }\r\n\r\n try {\r\n await utils.complete(action);\r\n }\r\n catch (e) { }\r\n\r\n // Complete the promise for the executeAction method\r\n action.FinishFunc(true);\r\n },\r\n async performCloseDesktopNotify(action) {\r\n utils.log(`DesktopNotify CloseDesktopNotify`);\r\n\r\n if (action.ActionData && action.ActionData.Debug && action.ActionData.Debug.BreakPoint) debugger;\r\n\r\n if (this.hasPermission && this.serviceWorkerRegistration) {\r\n var notifyName = utils.evaluate(action.desktopNotifyName, action.context);\r\n var notifyUniqeId = utils.evaluate(action.desktopNotifyId, action.context);\r\n\r\n let c = this;\r\n\r\n // Get a list of the notifications.\r\n this.serviceWorkerRegistration.getNotifications().then(\r\n function (notifications) {\r\n // Loop through the notifications until a match is found. If the DesktopNotifyId is specified, it is the only criteria used to match. Otherwise it uses the name.\r\n // then delete the data and close the notifications.\r\n for (var x = 0; x < notifications.length; x++) {\r\n var notification = notifications[x];\r\n\r\n if (notification.data &&\r\n notification.data.desktopServiceId == c.desktopServiceId &&\r\n (\r\n (\r\n notifyUniqeId && notification.data.notifyUniqeId == notifyUniqeId\r\n )\r\n ||\r\n (\r\n !notifyUniqeId && notification.data.notifyName == notifyName\r\n )\r\n )\r\n ) {\r\n delete c.desktopNotifyActions[notification.data.notifyUniqeId];\r\n //care.logDebug('Desktop Notify:: Close FOUND ' + notifyUniqeId + ' closing, Notification Count: ' + notifications.length);\r\n notification.close();\r\n break;\r\n }\r\n }\r\n\r\n // if no notification was found and an Id was specified, then the notification may not have finished showing yet (it renders Async and therefore we can close before it is fully shown)\r\n // so cache that it was intended to close. When notifications show, they check the cached closed list to see if they have been programatically closed already.\r\n if (x == notifications.length && notifyUniqeId) {\r\n c.closedNotifyCache[notifyUniqeId] = true;\r\n //care.logDebug('Desktop Notify:: Close NOT FOUND ' + notifyUniqeId + \", Notification Count: \" + notifications.length);\r\n }\r\n }\r\n );\r\n }\r\n\r\n utils.success(action);\r\n // Complete the promise for the executeAction method\r\n action.FinishFunc(true);\r\n\r\n //actionInfo.Finished(careActionCompletionStatus.SUCCESS);\r\n },\r\n preRenderComplete() {\r\n this.finishRenderHandler(this);\r\n },\r\n\r\n messageReceived(event) {\r\n utils.log('Desktop Notify:: message received ' + event.data.action);\r\n\r\n // if we receive a message requesting a guid, the respond with this services ids\r\n if (event.data.action == 'guid') {\r\n event.ports[0].postMessage({ desktopServiceId: this.desktopServiceId, windowId: event.data.windowId });\r\n return;\r\n }\r\n\r\n var notifyUniqeId = event.data.notifyData.notifyUniqeId;\r\n if (!notifyUniqeId) {\r\n return;\r\n }\r\n\r\n var actionInfo = this.desktopNotifyActions[notifyUniqeId];\r\n if (actionInfo) {\r\n // Based on the action, run the associated actions.\r\n var runActions = null;\r\n\r\n if (event.data.action == 'first') {\r\n runActions = actionInfo.ActionData.FirstActionActions;\r\n }\r\n else if (event.data.action == 'second') {\r\n runActions = actionInfo.ActionData.SecondActionActions;\r\n }\r\n else if (event.data.action == 'close') {\r\n runActions = actionInfo.ActionData.CloseActions;\r\n }\r\n\r\n if (runActions) {\r\n utils.executeAndCompileAllActions(runActions, null, actionInfo.context);\r\n\r\n // actionService.actionBroadcaster({\r\n // actions: runActions,\r\n // scope: actionInfo.scope,\r\n // parent: actionInfo.$controlModel\r\n // });\r\n }\r\n\r\n // Clean up actions\r\n delete this.desktopNotifyActions[notifyUniqeId];\r\n }\r\n }\r\n },\r\n props: {\r\n },\r\n render(h) {\r\n return null;\r\n }\r\n});","import Vue from 'vue';\r\nimport utils from '../../Shared/utils.jsx';\r\nimport BaseComponent from './BaseComponentMixin.jsx';\r\nimport careHelpfulFunctions from '../careHelpfulFunctions.jsx';\r\n\r\nVue.component('dropdown-list', {\r\n mixins: [BaseComponent],\r\n data: function () {\r\n return {\r\n sourceurlexpn: null,\r\n sourcerawexpn: null,\r\n selectedvalueexpn: null,\r\n labelexpn: null,\r\n\r\n selected_item: null,\r\n items: [],\r\n nameField: 'Name',\r\n valueField: 'Value',\r\n }\r\n },\r\n async created() {\r\n if (this.controlData.SourceType == 'URL' || (!this.controlData.SourceType && this.controlData.SourceURL))\r\n this.sourceurlexpn = utils.compile(this, this.controlData.SourceURL);\r\n\r\n if (this.controlData.SourceType == 'Raw')\r\n this.sourcerawexpn = utils.compileObject(this, this.controlData.Source);\r\n\r\n if (this.controlData.SelectedValue) {\r\n if (this.controlData.SelectedValue.startsWith('{#') || this.controlData.SelectedValue.startsWith('{%'))\r\n this.selectedvalueexpn = utils.compileObject(this, this.controlData.SelectedValue);\r\n else\r\n this.selectedvalueexpn = utils.compile(this, this.controlData.SelectedValue);\r\n }\r\n\r\n if (!this.controlData.FieldMappings.AutoSource) {\r\n let name = utils.compile(this, this.controlData.FieldMappings.Name);\r\n let value = utils.compile(this, this.controlData.FieldMappings.Value);\r\n\r\n this.nameField = (item) => {\r\n this.sourceData = item;\r\n return utils.evaluate(name, this);\r\n };\r\n this.valueField = (item) => {\r\n this.sourceData = item;\r\n return utils.evaluate(value, this);\r\n };\r\n }\r\n if (this.controlData.PublishField) {\r\n let vueSet = utils.helpers.convertSetValueToVueSet(this.controlData.PublishField, 'value');\r\n this.publishexpn = new Function('context', 'util', 'value', 'vue', `with (context) { ${vueSet} }`);\r\n }\r\n },\r\n //Mounted Replaced with preRenderComplete\r\n computed: {\r\n label: function () {\r\n if (this.controlData.Label)\r\n this.labelexpn = utils.compile(this, this.controlData.Label);\r\n\r\n if (this.labelexpn)\r\n return utils.evaluate(this.labelexpn, this);\r\n else\r\n return '';\r\n },\r\n\r\n styles: function () {\r\n return {\r\n ...utils.resolveStyleHints(this.styleHints, this),\r\n };\r\n },\r\n sourceurlvalue: function () {\r\n if (this.sourceurlexpn)\r\n return utils.evaluate(this.sourceurlexpn, this);\r\n else\r\n return '';\r\n },\r\n sourcerawvalue: function () {\r\n if (this.sourcerawexpn)\r\n return utils.evaluateObject(this.sourcerawexpn, this);\r\n else\r\n return null;\r\n },\r\n selectedvalue: function () {\r\n if (this.selectedvalueexpn) {\r\n if (this.controlData.SelectedValue.startsWith('{#') || this.controlData.SelectedValue.startsWith('{%'))\r\n return utils.evaluateObject(this.selectedvalueexpn, this);\r\n else\r\n return utils.evaluate(this.selectedvalueexpn, this);\r\n }\r\n else\r\n return null;\r\n },\r\n SelectedValue: function () {\r\n // This is the public accessor\r\n if (this.selected_item)\r\n return this.getValue(this.selected_item);\r\n else\r\n return null;\r\n }\r\n },\r\n methods: {\r\n async preRenderComplete() {\r\n await this.Refresh();\r\n this.finishRenderHandler(this);\r\n\r\n if (this.controlData.FireActionsInitially)\r\n await sync(this.selected_item);\r\n },\r\n async Refresh() {\r\n if (this.sourceurlvalue)\r\n try {\r\n this.items = await utils.api.get(this.sourceurlvalue);\r\n }\r\n catch (e) {\r\n utils.warn(`DropdownList ${this.name} failed to retrieve SourceURL: ${this.controlData.SourceURL}`, e);\r\n }\r\n\r\n if (this.sourcerawexpn)\r\n this.items = this.sourcerawvalue;\r\n\r\n if (this.controlData.FieldMappings.AutoSource && this.items && this.items.length > 0) {\r\n // Auto-detect name and value fields\r\n const i0 = this.items[0];\r\n if ('name' in i0) this.nameField = 'name';\r\n else if ('Name' in i0) this.nameField = 'Name';\r\n else if ('title' in i0) this.nameField = 'title';\r\n else if ('Title' in i0) this.nameField = 'Title';\r\n else {\r\n const keys = Object.keys(i0);\r\n const idx = keys.findIndex(k => typeof i0[k] === 'string');\r\n this.nameField = idx >= 0 ? keys[idx] : 'name';\r\n }\r\n\r\n if ('value' in i0) this.valueField = 'value';\r\n else if ('Value' in i0) this.valueField = 'Value';\r\n else if ('id' in i0) this.valueField = 'id';\r\n else if ('Id' in i0) this.valueField = 'Id';\r\n else if ('ID' in i0) this.valueField = 'ID';\r\n else {\r\n const keys = Object.keys(i0);\r\n const idx = keys.findIndex(k => k != this.nameField);\r\n this.valueField = idx >= 0 ? keys[1] : nameField;\r\n }\r\n }\r\n\r\n this.selected_item = this.items.find(item => this.getValue(item) === this.selectedvalue); // computed property\r\n },\r\n async sync(value) {\r\n this.selected_item = value;\r\n if (this.publishexpn)\r\n this.publishexpn(this, careHelpfulFunctions, this.getValue(value), Vue);\r\n\r\n //let item = value; // this.items.find(item => this.getValue(item) === this.getValue(value));\r\n\r\n let name = this.getName(value);\r\n let itemv = this.getValue(value);\r\n let index = this.items.findIndex(item => this.getValue(item) === itemv);\r\n\r\n let actionData = {\r\n Value: itemv, \r\n SourceItem: {\r\n Name: name,\r\n Value: itemv,\r\n SourceItem: {\r\n Name: name,\r\n Value: itemv,\r\n },\r\n SourceIndex: index\r\n },\r\n SourceIndex: index\r\n }\r\n\r\n await utils.executeAndCompileAllActions(this.controlData.Actions, actionData, this);\r\n\r\n if (typeof value === 'object')\r\n utils.log(`DropdownList changed to: ${JSON.stringify(value)} (object)`);\r\n else\r\n utils.log(`DropdownList changed to: ${value} (value)`);\r\n },\r\n getValue(item) {\r\n if (typeof this.valueField === 'function')\r\n return this.valueField(item);\r\n else if (item)\r\n return item[this.valueField];\r\n else\r\n return null;\r\n },\r\n getName(item) {\r\n if(typeof this.nameField === 'function')\r\n return this.nameField(item);\r\n else \r\n return item[this.nameField];\r\n },\r\n\r\n getItemIndex(value) {\r\n return this.source.findIndex(item => this.getValue(item) === value);\r\n }\r\n },\r\n props: {\r\n },\r\n render(h) {\r\n if (!this.todisplay)\r\n return null;\r\n\r\n return (\r\n
\r\n \r\n
\r\n );\r\n }\r\n});","import Vue from 'vue';\r\nimport BaseComponent from './BaseComponentMixin.jsx';\r\nimport EventBus from '../event-bus.js';\r\nimport careHelpfulFunctions from '../careHelpfulFunctions.jsx';\r\n\r\nimport utils from '../../Shared/utils.jsx';\r\nimport methods from '../../Shared/methods';\r\nimport DropdownMultiSelectBase from './vuecontrols/DropdownMultiSelectBase';\r\n\r\nVue.component('dropdown-multi-select', {\r\n mixins: [BaseComponent],\r\n data: function () {\r\n return {\r\n setValueFunction: null,\r\n sourceUrlEval: null,\r\n sourceRawInterpolatedEval: null,\r\n data: [],\r\n model: [],\r\n nameFieldEval: null,\r\n valueFieldEval: null,\r\n placeholderEval: null,\r\n selectionLimitEval: null,\r\n showCheckAllEval: null,\r\n showUncheckAllEval: null,\r\n dynamicButtonTextEval: null,\r\n dynamicItemCountEval: null,\r\n defaultEval: null\r\n }\r\n },\r\n components: {\r\n DropdownMultiSelectBase\r\n },\r\n computed: {\r\n publishField: {\r\n set(value){\r\n if(this.setValueFunction === null && this.controlData.PublishField){\r\n let vueSet = utils.helpers.convertSetValueToVueSet(this.controlData.PublishField, 'value');\r\n this.setValueFunction = new Function('value', 'context', 'util', 'vue', `with (context) { ${vueSet} }`);\r\n }\r\n if(this.setValueFunction) {\r\n this.setValueFunction(value, this, careHelpfulFunctions, Vue)\r\n }\r\n if(this.selectionLimit === 1)\r\n this.model = value[0] || '';\r\n else \r\n this.model = value;\r\n },\r\n get() {\r\n return this.model;\r\n }\r\n },\r\n allSelected() {\r\n return this.model?.length === this.source.length || (this.selectionLimit > 0 && this.model?.length === this.selectionLimit);\r\n },\r\n someSelected() {\r\n return this.model?.length > 0 && !this.allSelected;\r\n },\r\n selectAllIcon(){\r\n if (this.allSelected) return 'mdi-close-box'\r\n if (this.someSelected) return 'mdi-minus-box'\r\n return 'mdi-checkbox-blank-outline'\r\n },\r\n sourceUrl() {\r\n return utils.evaluate(this.sourceUrlEval, this);\r\n },\r\n sourceRawInterpolated(){\r\n return utils.evaluateObject(this.sourceRawInterpolatedEval, this);\r\n },\r\n source() {\r\n switch(this.controlData.SourceType.toLowerCase()) {\r\n case 'url':\r\n return this.data;\r\n case 'raw': \r\n case 'rawinterpolated': return this.sourceRawInterpolated;\r\n default: return [];\r\n }\r\n },\r\n nameField() {\r\n try {\r\n if(this.nameFieldEval === null && this.controlData?.FieldMappings?.Name)\r\n this.nameFieldEval = utils.compile(this, this.controlData.FieldMappings.Name);\r\n if(this.nameFieldEval)\r\n return utils.evaluate(this.nameFieldEval, this);\r\n return 'Name';\r\n }\r\n catch (e) {\r\n utils.warn('NameField could not evaluate expression: ' + this.controlData.FieldMappings.Name + '; ' + e);\r\n return 'Name';\r\n }\r\n },\r\n valueField() {\r\n try {\r\n if(this.valueFieldEval === null && this.controlData?.FieldMappings?.Value)\r\n this.valueFieldEval = utils.compile(this, this.controlData.FieldMappings.Value);\r\n if(this.valueFieldEval)\r\n return utils.evaluate(this.valueFieldEval, this);\r\n return 'Value';\r\n }\r\n catch (e) {\r\n utils.warn('ValueField could not evaluate expression: ' + this.controlData.FieldMappings.Value + '; ' + e);\r\n return 'Value';\r\n }\r\n },\r\n placeholder() {\r\n try {\r\n if(this.placeholderEval === null && this.controlData.PlaceHolder)\r\n this.placeholderEval = utils.compile(this, this.controlData.PlaceHolder);\r\n if(this.placeholderEval)\r\n return utils.evaluate(this.placeholderEval, this);\r\n return '';\r\n }\r\n catch (e) {\r\n utils.warn('Placeholder could not evaluate expression: ' + this.controlData.PlaceHolder + '; ' + e);\r\n return '';\r\n }\r\n },\r\n selectionLimit() {\r\n try {\r\n if(this.selectionLimitEval === null && this.controlData.SelectionLimit)\r\n this.selectionLimitEval = utils.compile(this, this.controlData.SelectionLimit);\r\n if(this.selectionLimitEval) {\r\n try {\r\n return Number.parseInt(utils.evaluate(this.selectionLimitEval, this));\r\n\r\n }\r\n catch(err) {\r\n return utils.evaluate(this.selectionLimitEval, this);\r\n }\r\n }\r\n return 0;\r\n }\r\n catch (e) {\r\n utils.warn('SelectionLimit could not evaluate expression: ' + this.controlData.SelectionLimit + '; ' + e);\r\n return 0;\r\n }\r\n },\r\n showCheckAll() {\r\n try {\r\n if(this.showCheckAllEval === null && this.controlData.ShowCheckAll)\r\n this.showCheckAllEval = utils.compile(this, this.controlData.ShowCheckAll);\r\n if(this.showCheckAllEval)\r\n return utils.evaluate(this.showCheckAllEval, this);\r\n return true;\r\n }\r\n catch (e) {\r\n utils.warn('ShowCheckAll could not evaluate expression: ' + this.controlData.ShowCheckAll + '; ' + e);\r\n return true;\r\n }\r\n },\r\n showUncheckAll() {\r\n try {\r\n if(this.showUncheckAllEval === null && this.controlData.ShowUncheckAll)\r\n this.showUncheckAllEval = utils.compile(this, this.controlData.ShowUncheckAll);\r\n if(this.showUncheckAllEval)\r\n return utils.evaluate(this.showUncheckAllEval, this);\r\n return true;\r\n }\r\n catch (e) {\r\n utils.warn('ShowUncheckAll could not evaluate expression: ' + this.controlData.ShowUncheckAll + '; ' + e);\r\n return true;\r\n }\r\n },\r\n dynamicButtonText() {\r\n try {\r\n if(this.dynamicButtonTextEval === null && this.controlData.DynamicButtonText)\r\n this.dynamicButtonTextEval = utils.compile(this, this.controlData.DynamicButtonText);\r\n if(this.dynamicButtonTextEval)\r\n return utils.evaluate(this.dynamicButtonTextEval, this);\r\n return false;\r\n }\r\n catch (e) {\r\n utils.warn('DynamicButtonText could not evaluate expression: ' + this.controlData.DynamicButtonText + '; ' + e);\r\n return false;\r\n }\r\n },\r\n dynamicItemCount() {\r\n try {\r\n if(this.dynamicItemCountEval === null && this.controlData.DynamicItemCount)\r\n this.dynamicItemCountEval = utils.compile(this, this.controlData.DynamicItemCount);\r\n if(this.dynamicItemCountEval)\r\n return utils.evaluate(this.dynamicItemCountEval, this);\r\n return 0;\r\n }\r\n catch (e) {\r\n utils.warn('DynamicItemCount could not evaluate expression: ' + this.controlData.DynamicItemCount + '; ' + e);\r\n return 0;\r\n }\r\n },\r\n default() {\r\n try {\r\n if(this.defaultEval === null && this.controlData.Default)\r\n this.defaultEval = utils.compile(this, this.controlData.Default);\r\n if(this.defaultEval)\r\n return utils.evaluate(this.defaultEval, this);\r\n return '';\r\n }\r\n catch (e) {\r\n utils.warn('Default could not evaluate expression: ' + this.controlData.Default + '; ' + e);\r\n return '';\r\n }\r\n },\r\n styles() {\r\n return {\r\n ...utils.resolveStyleHints(this.styleHints, this),\r\n }\r\n }\r\n },\r\n //Created Replaced with preRenderComplete\r\n methods: {\r\n async preRenderComplete() {\r\n switch(this.controlData.SourceType.toLowerCase()) {\r\n case 'url': {\r\n this.sourceUrlEval = utils.compile(this, this.controlData.SourceURL);\r\n this.data = await utils.api.get(this.sourceUrl);\r\n break;\r\n }\r\n case 'raw':\r\n case 'rawinterpolated': {\r\n this.sourceRawInterpolatedEval = utils.compileObject(this, this.controlData.Source);\r\n break;\r\n }\r\n }\r\n \r\n if(this.default) {\r\n this.publishField = this.default;\r\n }\r\n \r\n this.finishRenderHandler(this);\r\n },\r\n async onInput(item) {\r\n this.publishField = item;\r\n\r\n await utils.executeAndCompileAllActions(this.controlData.SelectActions, { Text: 'DropdownMultiSelectActions' }, this);\r\n },\r\n },\r\n props: {\r\n },\r\n render(h) {\r\n if(!this.todisplay)\r\n return null;\r\n try {\r\n let slots = [];\r\n\r\n if (this.controlData?.Title) {\r\n slots.push({this.controlData.Title});\r\n }\r\n\r\n return (\r\n
\r\n {slots}\r\n
\r\n );\r\n }\r\n catch (e) {\r\n utils.error('DropdownMultiSelect Render failed', e);\r\n return
DropdownMultiSelect Failed to Render {e}
;\r\n }\r\n }\r\n});","import Vue from 'vue';\r\nimport BaseComponent from './BaseComponentMixin.jsx';\r\nimport utils from '../../Shared/utils.jsx';\r\n\r\nVue.component('dynamic-control-container', {\r\n mixins: [BaseComponent],\r\n data: function () {\r\n return {\r\n isbase: false,\r\n controldataexpr: null,\r\n internalobjectId: utils.generateUUID(),\r\n\r\n actiondataexpr: null,\r\n }\r\n },\r\n created() {\r\n this.isbase = this.controlData.IsBase;\r\n\r\n if (this.controlData.Content) {\r\n this.controldataexpr = utils.compileObject(this, this.controlData.Content);\r\n }\r\n\r\n if (this.controlData.ActionData) {\r\n this.actiondataexpr = utils.compileObject(this, this.controlData.ActionData);\r\n }\r\n },\r\n destroyed() {\r\n if (this.watcher$)\r\n this.watcher$();\r\n },\r\n mounted() {\r\n },\r\n props: {\r\n },\r\n computed: {\r\n controldatavalue: function () {\r\n if (this.controldataexpr) {\r\n const obj = utils.evaluateObject(this.controldataexpr, this);\r\n\r\n if (obj && !obj.$objectId)\r\n obj.$objectId = utils.generateUUID();\r\n\r\n return obj;\r\n }\r\n else\r\n return null;\r\n },\r\n paramData: function () {\r\n return this.actiondataexpr ? utils.evaluateObject(this.actiondataexpr, this) : null;\r\n },\r\n objectId: function () {\r\n return `${this.internalobjectId}_${this.controldatavalue?.$objectId}`;\r\n },\r\n },\r\n methods: {\r\n async preRenderComplete() {\r\n if (!this.todisplay || !this.controldatavalue)\r\n this.finishRenderHandler(this);\r\n },\r\n },\r\n render(h) {\r\n if (!this.todisplay || !this.controldatavalue)\r\n return null;\r\n\r\n let Tag = 'stack-vertical';\r\n if (!this.isvisible)\r\n Tag = 'hidden-container';\r\n\r\n return (\r\n this.finishRenderHandler(reference) }}\r\n class={{ 'c-DynamicControlContainer': true, [`c-name-${this.name || 'unnamed'}`]: true }}\r\n style={{ flexGrow: \"1\", flexShrink: \"unset\" }}\r\n asbase={this.isbase}\r\n name={this.controldatavalue.Name}\r\n root={this.root}\r\n parentType={this.parentType}\r\n controlData={this.controldatavalue}>\r\n \r\n );\r\n }\r\n});","import Vue from 'vue';\r\nimport BaseComponent from './BaseComponentMixin.jsx';\r\nimport utils from '../../Shared/utils.jsx';\r\n\r\nVue.component('dynamic-tree', {\r\n mixins: [BaseComponent],\r\n data: function () {\r\n return {\r\n unique_id: null,\r\n selected_values: [],\r\n selected_key: null,\r\n\r\n model: [],\r\n allkeys: {},\r\n\r\n icon_fn: null,\r\n iconTooltip_fn: null,\r\n iconColor_fn: null,\r\n }\r\n },\r\n created() {\r\n this.unique_id = `tree_${utils.generateUUID()}`;\r\n\r\n if (this.controlData.SourceType === 'Raw' && this.controlData.SourceRaw) {\r\n this.watch_source$ = this.$watch('sourcerawvalue', function () { this.Refresh(); });\r\n }\r\n else if (this.controlData.SourceType === 'Url' && this.controlData.SourceUrl) {\r\n this.watch_source$ = this.$watch('sourceurlvalue', function () { this.Refresh(); });\r\n }\r\n\r\n if (this.controlData.IconExpression)\r\n this.icon_fn = utils.compileExpression(this, this.controlData.IconExpression, 'node');\r\n if (this.controlData.IconTooltipExpression)\r\n this.iconTooltip_fn = utils.compileExpression(this, this.controlData.IconTooltipExpression, 'node');\r\n if (this.controlData.IconColorExpression)\r\n this.iconColor_fn = utils.compileExpression(this, this.controlData.IconColorExpression, 'node');\r\n },\r\n destroyed() {\r\n if (this.watch_source$)\r\n this.watch_source$();\r\n },\r\n //Created Replaced with preRenderComplete\r\n computed: {\r\n sourcerawvalue: function () {\r\n if (!this.sourceraw)\r\n this.sourceraw = utils.compileObject(this, this.controlData.SourceRaw);\r\n\r\n return utils.evaluateObject(this.sourceraw, this);\r\n },\r\n sourceurlvalue: function () {\r\n if (!this.sourceurl)\r\n this.sourceurl = utils.compile(this, this.controlData.SourceUrl);\r\n\r\n return utils.evaluate(this.sourceurl, this);\r\n },\r\n autoExpandAll: function () {\r\n if (typeof this.controlData.AutoExpandAll === 'string' && !this.autoExpandAll_fn)\r\n this.autoExpandAll_fn = utils.compileObject(this, this.controlData.AutoExpandAll);\r\n\r\n if (this.autoExpandAll_fn)\r\n return utils.evaluateObject(this.autoExpandAll_fn, this);\r\n\r\n return this.controlData.AutoExpandAll;\r\n },\r\n lazyLoadChildren: function () {\r\n if (typeof this.controlData.LazyLoadChildren === 'string' && !this.lazyLoadChildren_fn)\r\n this.lazyLoadChildren_fn = utils.compileObject(this, this.controlData.LazyLoadChildren);\r\n\r\n if (this.lazyLoadChildren_fn)\r\n return utils.evaluateObject(this.lazyLoadChildren_fn, this);\r\n\r\n return this.controlData.LazyLoadChildren;\r\n },\r\n },\r\n methods: {\r\n async preRenderComplete() {\r\n this.finishRenderHandler(this);\r\n\r\n this.Refresh();\r\n },\r\n saveAllKeys(items) {\r\n const itemkey = this.controlData.ItemKey || 'id';\r\n const itemchildren = this.controlData.ItemChildren || 'children';\r\n\r\n for (let i = 0; i < items.length; i++) {\r\n const item = items[i];\r\n this.allkeys[item[itemkey]] = item;\r\n\r\n if (item[itemchildren] && Array.isArray(item[itemchildren]))\r\n this.saveAllKeys(item[itemchildren]);\r\n }\r\n },\r\n\r\n async Refresh() {\r\n for (var prop in this.allkeys) {\r\n if (this.allkeys.hasOwnProperty(prop))\r\n Vue.delete(this.allkeys, prop);\r\n }\r\n\r\n let model;\r\n if (this.sourceraw)\r\n try {\r\n model = this.sourcerawvalue;\r\n }\r\n catch (e) {\r\n utils.warn('DynamicTree failed to evaluate SourceRaw ' + this.controlData.SourceRaw + ': ' + e);\r\n }\r\n else if (this.sourceurl)\r\n try {\r\n model = await utils.api.get(this.sourceurlvalue);\r\n }\r\n catch (e) {\r\n utils.warn('DynamicTree failed to evaluate SourceUrl ' + this.controlData.SourceUrl + ': ' + e);\r\n }\r\n\r\n this.saveAllKeys(model);\r\n\r\n this.model = model;\r\n\r\n const c = this;\r\n if (this.autoExpandAll && this.unique_id in this.$refs)\r\n Vue.nextTick(function () {\r\n c.$refs[c.unique_id].updateAll(true);\r\n });\r\n },\r\n\r\n SetChildItems(model) {\r\n // Add keys for newly added items\r\n for (let i = 0; i < model.length; i++)\r\n this.allkeys[model[i][this.controlData.ItemKey || 'id']] = model[i];\r\n\r\n this.added_children = model;\r\n },\r\n ExpandAll() {\r\n const c = this;\r\n if (this.unique_id in this.$refs)\r\n Vue.nextTick(function () {\r\n c.$refs[c.unique_id].updateAll(true);\r\n });\r\n },\r\n CollapseAll() {\r\n const c = this;\r\n if (this.unique_id in this.$refs)\r\n Vue.nextTick(function () {\r\n c.$refs[c.unique_id].updateAll(false);\r\n });\r\n },\r\n\r\n async loadChildren(item) {\r\n await utils.executeAndCompileAllActions(this.controlData.OnLazyLoadActions, { Data: item }, this);\r\n if (this.added_children) {\r\n item.Items.push(...this.added_children);\r\n this.added_children = null;\r\n }\r\n return;\r\n\r\n let url = utils.evaluate(this.sourceurl, this);\r\n\r\n const model = await utils.api.get(`${url}?Namespace=${item.Key}`);\r\n\r\n if (!model) {\r\n utils.log('No data');\r\n return;\r\n }\r\n\r\n for (let i = 0; i < model.length; i++)\r\n this.allkeys[model[i][this.controlData.ItemKey || 'id']] = model[i];\r\n\r\n //utils.log(JSON.stringify(model));\r\n\r\n item.Items.push(...model.map(a => ({ ...a, Name: a.Type == 'Namespace' ? a.Key.substr(item.Key.length + 1) : a.Name })));\r\n },\r\n async onInput(selectedvalues) {\r\n // selectedvalues is an array of Ids that match the id property within the selected menu item\r\n if (selectedvalues.length > 0) {\r\n this.selected_values = selectedvalues;\r\n this.selected_key = selectedvalues[0];\r\n const value = this.allkeys[this.selected_key];\r\n\r\n //utils.log(`DynamicTree onInput:${JSON.stringify(selectedvalues)}; value:${JSON.stringify(value)}`);\r\n\r\n utils.executeAndCompileAllActions(this.controlData.SelectMenuActions, { Data: this.selected_key, SelectedItem: value }, this);\r\n }\r\n },\r\n },\r\n render(h) {\r\n if(!this.todisplay)\r\n return null;\r\n \r\n try {\r\n\r\n const style = {\r\n minWidth: \"25px\",\r\n ...this.sizeStyle,\r\n ...utils.resolveStyleHints(this.styleHints, this),\r\n overflow: \"auto\",\r\n };\r\n\r\n const scopedSlots = {};\r\n\r\n if (this.controlData.IconExpression) {\r\n scopedSlots.append = (node) => {\r\n let icon = utils.evaluate(this.icon_fn, this, false, null, false, node);\r\n\r\n if (icon) {\r\n let color;\r\n let tooltip;\r\n if (this.iconColor_fn) color = utils.evaluate(this.iconColor_fn, this, false, null, false, node);\r\n if (this.iconTooltip_fn) tooltip = utils.evaluate(this.iconTooltip_fn, this, false, null, false, node);\r\n\r\n switch (this.controlData.IconSize) {\r\n case 'Small':\r\n icon = {icon};\r\n break;\r\n\r\n case 'Extra Small':\r\n icon = {icon};\r\n break;\r\n\r\n default:\r\n icon = {icon};\r\n break;\r\n }\r\n\r\n if (tooltip)\r\n icon = utils.generateTooltip(h, icon, tooltip, 'right');\r\n\r\n return icon;\r\n }\r\n else\r\n return undefined;\r\n };\r\n }\r\n\r\n if (this.controlData.PrependItemControls?.length) {\r\n scopedSlots.prepend = (node) => {\r\n return
\r\n {utils.generateItemsFromArray(h, this, this.controlData.PrependItemControls, node, 'HorizontalLayout', {'finished-render': (item) => this.finishRenderHandler(item) })}\r\n
;\r\n\r\n } \r\n }\r\n\r\n const props = {\r\n activatable: true,\r\n hoverable: true,\r\n transition: true,\r\n openOnClick: true,\r\n dense: true,\r\n class: 'ma-1',\r\n items: this.model || [],\r\n active: this.selected_values,\r\n };\r\n\r\n if (this.controlData.ItemText) props.itemText = this.controlData.ItemText;\r\n if (this.controlData.ItemKey) props.itemKey = this.controlData.ItemKey;\r\n if (this.controlData.ItemDisabled) props.itemDisabled = this.controlData.ItemDisabled;\r\n if (this.controlData.ItemChildren) props.itemChildren = this.controlData.ItemChildren;\r\n if (this.lazyLoadChildren) props.loadChildren = this.loadChildren;\r\n if (this.autoExpandAll) props.openAll = true;\r\n\r\n // JSX cannot handle an event with a colon in the middle (update:active) so I have to declare this manually:\r\n const tv = h('v-treeview', {\r\n ref: this.unique_id,\r\n props: props,\r\n scopedSlots: scopedSlots,\r\n on: {\r\n 'update:active': (e) => this.onInput(e),\r\n }\r\n });\r\n\r\n return (\r\n \r\n {tv}\r\n \r\n );\r\n }\r\n catch (e) {\r\n utils.error('DynamicTree Render failed', e);\r\n return
DynamicTree Failed to Render {e}
;\r\n }\r\n }\r\n});","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticStyle:{\"display\":\"inline-block\",\"max-width\":\"400px\"}},[_c('v-card-text',[_vm._v(_vm._s(_vm.label))]),_c('v-select',{staticClass:\"ml-3 mr-3\",attrs:{\"clearable\":\"\",\"deletable-chips\":\"\",\"multiple\":\"\",\"outlined\":\"\",\"dense\":\"\",\"chips\":\"\",\"item-text\":_vm.getItemText,\"items\":_vm.items,\"menu-props\":_vm.menuProps},on:{\"change\":function($event){return _vm.updateFilter()}},model:{value:(_vm.choices),callback:function ($$v) {_vm.choices=$$v},expression:\"choices\"}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\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/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./agGridDropdownFilter.vue?vue&type=script&lang=js&\"; 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/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./agGridDropdownFilter.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./agGridDropdownFilter.vue?vue&type=template&id=b61f9206&scoped=true&\"\nimport script from \"./agGridDropdownFilter.vue?vue&type=script&lang=js&\"\nexport * from \"./agGridDropdownFilter.vue?vue&type=script&lang=js&\"\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 \"b61f9206\",\n null\n \n)\n\nexport default component.exports","import Vue from 'vue';\r\nimport BaseComponent from './BaseAgGridMixin.jsx';\r\nimport utils from '../../Shared/utils.jsx';\r\nimport careHelpfulFunctions from '../careHelpfulFunctions.jsx';\r\nimport careService from '@/Services/careService.jsx';\r\n\r\nimport { AgGridVue } from \"ag-grid-vue\";\r\nimport DropdownFilter from './vuecontrols/agGridDropdownFilter.vue';\r\nimport _ from 'lodash';\r\n\r\nconst AsyncFunction = async function () { }.constructor;\r\n\r\nconst CellButton = {\r\n data: () => ({\r\n type: 'CellButton',\r\n }),\r\n created() {\r\n if (this.btn.Condition && !this.btn.$$Condition)\r\n this.btn.$$Condition = utils.compileExpression(this, this.btn.Condition, this.cd.RowModelName || 'row');\r\n\r\n if (this.btn.Icon && !this.btn.$$Icon)\r\n this.btn.$$Icon = utils.compile(this, this.btn.Icon, false, this.cd.RowModelName || 'row');\r\n\r\n if (this.btn.Color && !this.btn.$$Color)\r\n this.btn.$$Color = utils.compile(this, this.btn.Color, false, this.cd.RowModelName || 'row');\r\n\r\n if (this.btn.Tooltip && !this.btn.$$Tooltip)\r\n this.btn.$$Tooltip = utils.compile(this, this.btn.Tooltip, false, this.cd.RowModelName || 'row');\r\n },\r\n props: {\r\n root: null,\r\n btn: null,\r\n cd: null,\r\n scopeitems: null,\r\n controlscope: null,\r\n c_context: null,\r\n rowData: null,\r\n },\r\n methods: {\r\n rowMenuClick(e, data, btn, m) {\r\n //e.cancelBubble = true;\r\n //e.preventDefault();\r\n utils.executeAndCompileAllActions(m.Actions, { RowIndex: -1, Data: this.rowData }, this.c_context);\r\n },\r\n menuOpenClose(state, data, btn, m) {\r\n if (btn.OnMenuOpen)\r\n utils.executeAndCompileAllActions(btn.OnMenuOpen, { RowIndex: -1, Data: this.rowData, State: state }, this.c_context);\r\n },\r\n rowCommandClick(e, data, btn) {\r\n e.cancelBubble = true;\r\n e.preventDefault();\r\n utils.executeAndCompileAllActions(btn.Actions, { RowIndex: -1, Data: this.rowData }, this.c_context);\r\n },\r\n //used in the grid to calculate the value of the command column.\r\n getEvaluationResults(button, context, data) {\r\n var condition = (button.$$Condition ? utils.evaluate(button.$$Condition, context, false, null, false, data) : null);\r\n\r\n return {\r\n condition: condition,\r\n color: (button.$$Color && condition ? utils.evaluate(button.$$Color, context, false, null, false, data) : null),\r\n icon: (button.$$Icon && condition ? utils.evaluate(button.$$Icon, context, false, null, false, data) : null)\r\n };\r\n }\r\n },\r\n render(h) {\r\n const data = this.rowData;\r\n const btn = this.btn;\r\n\r\n if(!data) return;\r\n\r\n if (btn.$$Condition && !utils.evaluate(btn.$$Condition, this.c_context, false, null, false, data))\r\n return null;\r\n\r\n let color;\r\n if (btn.$$Color)\r\n color = utils.evaluate(btn.$$Color, this.c_context, false, null, false, data);\r\n\r\n let icon;\r\n if (btn.$$Icon)\r\n icon = utils.evaluate(btn.$$Icon, this.c_context, false, null, false, data);\r\n\r\n let b;\r\n if (btn.Menu && btn.Menu.length > 0) {\r\n const scopedSlots = {\r\n activator: ({ on, attrs }) =>\r\n \r\n \r\n {icon}\r\n \r\n \r\n };\r\n\r\n const items = [];\r\n for (let i = 0; i < btn.Menu.length; i++) {\r\n const m = btn.Menu[i];\r\n if (m.Separator)\r\n items.push();\r\n else {\r\n if (m.DisplayExpression && !m.$$displayexpn) \r\n m.$$displayexpn = utils.compileExpression(this, m.DisplayExpression, this.cd.RowModelName || 'row');\r\n\r\n if (m.$$displayexpn && !utils.evaluate(m.$$displayexpn, this.c_context, false, null, false, data))\r\n return;\r\n\r\n if (m.EnabledExpression && !m.$$enabledexpn)\r\n m.$$enabledexpn = utils.compileExpression(this, m.EnabledExpression, this.cd.RowModelName || 'row');\r\n\r\n if (m.Icon && !m.$$iconexpn)\r\n m.$$iconexpn = utils.compile(this, m.Icon, this.cd.RowModelName || 'row');\r\n\r\n if (m.Icon && m.IconColor && !m.$$iconcolorexpn)\r\n m.$$iconcolorexpn = utils.compile(this, m.IconColor, this.cd.RowModelName || 'row');\r\n\r\n let menuicon;\r\n if (m.$$iconexpn) {\r\n let iconcolor;\r\n if (m.$$iconcolorexpn)\r\n iconcolor = utils.evaluate(m.$$iconcolorexpn, this.c_context, false, null, false, data);\r\n\r\n menuicon =\r\n \r\n {utils.evaluate(m.$$iconexpn, this.c_context, false, null, false, data)}\r\n ;\r\n }\r\n\r\n items.push(\r\n this.rowMenuClick(e, data, btn, m)}>\r\n {menuicon}\r\n \r\n {m.Title}\r\n \r\n\r\n \r\n );\r\n }\r\n }\r\n\r\n b = (\r\n this.menuOpenClose(state, data, btn)}\r\n >\r\n \r\n \r\n {items}\r\n \r\n \r\n \r\n );\r\n }\r\n else if (btn.Actions && btn.Actions.length > 0)\r\n b = (\r\n this.rowCommandClick(e, data, btn)}>\r\n \r\n {icon}\r\n \r\n \r\n );\r\n else\r\n b = (\r\n \r\n \r\n {icon}\r\n \r\n \r\n );\r\n\r\n if (btn.$$Tooltip) {\r\n const tooltip = utils.evaluate(btn.$$Tooltip, this.c_context, false, null, false, data);\r\n if (tooltip)\r\n b = utils.generateTooltip(h, b, tooltip, 'right');\r\n }\r\n\r\n return b;\r\n }\r\n};\r\n\r\nconst CellTemplate = {\r\n components: {\r\n CellButton,\r\n },\r\n data: () => ({\r\n root: null,\r\n type: 'CellTemplate',\r\n columnDef: null,\r\n scopeitems: null,\r\n controlscope: null,\r\n\r\n c_context: null,\r\n rowData: null,\r\n }),\r\n created() {\r\n // Copy parameters into fields so our interpolations will work\r\n this.root = this.params.callcorp.root;\r\n this.columnDef = this.params.callcorp.columnDef;\r\n this.scopeitems = this.params.callcorp.scopeitems;\r\n this.controlscope = this.params.callcorp.controlscope;\r\n this.c_context = this.params.callcorp.context;\r\n this.rowData = this.params.data; // <-- for reactivity\r\n },\r\n methods: {\r\n rowCommandClick(e, data, btn) {\r\n e.cancelBubble = true;\r\n e.preventDefault();\r\n utils.executeAndCompileAllActions(btn.Actions, { RowIndex: -1, Data: this.params.data }, this.c_context);\r\n },\r\n rowLinkClick(e, data, actions) {\r\n e.cancelBubble = true;\r\n e.preventDefault();\r\n utils.executeAndCompileAllActions(actions, { RowIndex: -1, Data: this.params.data }, this.c_context);\r\n },\r\n rowMenuClick(e, data, btn, m) {\r\n //e.cancelBubble = true;\r\n //e.preventDefault();\r\n utils.executeAndCompileAllActions(m.Actions, { RowIndex: -1, Data: this.params.data }, this.c_context);\r\n },\r\n menuOpenClose(state, data, btn, m) {\r\n if (btn.OnMenuOpen)\r\n utils.executeAndCompileAllActions(btn.OnMenuOpen, { RowIndex: -1, Data: this.params.data, State: state }, this.c_context);\r\n },\r\n },\r\n render(h) {\r\n const buttons = [];\r\n const cd = this.columnDef;\r\n if (cd.condition_expn)\r\n if (!utils.evaluate(cd.condition_expn, this.c_context, false, null, false, this.params.data))\r\n return null;\r\n\r\n if (this.columnDef.CommandButtons)\r\n for (let j = 0; j < this.columnDef.CommandButtons.length; j++) {\r\n const btn = this.columnDef.CommandButtons[j];\r\n\r\n buttons.push(\r\n \r\n \r\n );\r\n }\r\n\r\n return {buttons};\r\n }\r\n};\r\n\r\nVue.component('fast-grid', {\r\n mixins: [BaseComponent],\r\n components: {\r\n AgGridVue,\r\n CellTemplate,\r\n DropdownFilter,\r\n },\r\n data: function () {\r\n return {\r\n column_defs_ready: false,\r\n dataTypeDefinitions: {\r\n customColumn: {\r\n filter: 'agTextColumnFilter',\r\n filterParams: { debounceMs: 1000 },\r\n }\r\n },\r\n serverDataSource: {\r\n getRows: async (server) => {\r\n const params = server.request;\r\n console.log(`params: ${JSON.stringify(params)}`);\r\n\r\n // params: {\"startRow\":0,\"endRow\":100,\"sortModel\":[{\"sort\":\"asc\",\"colId\":\"starttime\"}],\"filterModel\":{}}\r\n // params: {\"startRow\":0,\"endRow\":100,\"sortModel\":[{\"sort\":\"desc\",\"colId\":\"prequeuetime\"}],\r\n // \"filterModel\":{\"callerid\":{\"filterType\":\"text\",\"type\":\"contains\",\"filter\":\"5432\"}}}\r\n\r\n try {\r\n const output = await this.runUserQuery(params);\r\n server.success(output);\r\n\r\n // Ensure we preserve any selected rows\r\n if (this.selectedRowsData && this.selectedRowsData.length > 0)\r\n this.SetSelectedRows(this.selectedRowsData, true);\r\n }\r\n catch (er) {\r\n console.error(`serverDataSource.getRows failed:`);\r\n console.error(JSON.stringify(params));\r\n console.error(er);\r\n server.fail();\r\n }\r\n }\r\n }\r\n }\r\n },\r\n created() {\r\n if (this.controlData.EnableDynamicColumns && this.controlData.DynamicColumns) {\r\n this.dynamicColumns = utils.compileObject(this, this.controlData.DynamicColumns, 'rows');\r\n this.columnTemplates = careHelpfulFunctions.toLookup(this.controlData.ColumnTemplates, 'Name');\r\n }\r\n\r\n if (this.controlData.SelectOptions && this.controlData.SelectOptions.Enable && this.controlData.SelectOptions.SelectableExpression)\r\n this.selectableexpn = utils.compileExpression(this, this.controlData.SelectOptions.SelectableExpression, 'row');\r\n\r\n if (this.controlData.RowModelType == 'serverSide' && this.controlData.DataSourceFunction) {\r\n this.dsFunc = new AsyncFunction(['baseurl', 'args', 'api', 'care', 'util', 'Control', 'Params'], this.controlData.DataSourceFunction);\r\n\r\n this.modelurl_watch$ = this.$watch(\r\n function () {\r\n return this.modelurlvalue;\r\n },\r\n function (val, oldval) {\r\n utils.debug(`FastGrid ${this.name} URL value changed to: ${val}`);\r\n this.Refresh();\r\n }\r\n );\r\n }\r\n\r\n if(this.controlData.GroupingOptions?.PanelShowExpression){\r\n this.controlData.GroupingOptions.panelshow_expn = utils.compileExpression(this, this.controlData.GroupingOptions.PanelShowExpression, 'rows');\r\n }\r\n if(this.controlData.GroupingOptions?.ColumnsExpandedExpression){\r\n this.controlData.GroupingOptions.columnsexpanded_expn = utils.compileExpression(this, this.controlData.GroupingOptions.ColumnsExpandedExpression, 'rows');\r\n }\r\n\r\n this.useBuiltInExport = true;\r\n\r\n this.prepareColumnDefs();\r\n },\r\n computed: {\r\n dataSource: function () {\r\n return this.modelfunc ? this.modelfunc() : null;\r\n },\r\n dynamicColumnsValue: function () {\r\n return utils.evaluateObject(this.dynamicColumns, this, this.dataSource);\r\n },\r\n rowModelType: function () {\r\n return this.controlData.RowModelType || 'clientSide';\r\n },\r\n searchTextReader: function () {\r\n // The quick filter text cannot be used for serverSide row model, so this\r\n // only applies when using clientSide.\r\n return this.rowModelType == 'clientSide' ? this.searchText : '';\r\n },\r\n QuckSearchText: function () {\r\n return this.searchText;\r\n },\r\n },\r\n watch: {\r\n dataSource: function (newVal, oldVal) {\r\n if (!this.column_defs_ready) {\r\n this.prepareColumnDefs();\r\n }\r\n },\r\n searchText: function (newVal, oldVal) {\r\n if (this.rowModelType == 'serverSide') {\r\n const thisref = this;\r\n let debounced = _.debounce(function () {\r\n thisref.Refresh();\r\n }, 500);\r\n debounced();\r\n }\r\n },\r\n },\r\n //Mounted Replaced with preRenderComplete\r\n methods: {\r\n \r\n getIsOpenGroupOptionCallback(){\r\n if(!this.controlData.GroupingOptions?.RememberOpenedGroups) return null;\r\n\r\n return (e) => {\r\n let data = this.System.LocalStorage(this.storageKey + '-expanded-groups') || \"{}\";\r\n let obj = {};\r\n try { obj = JSON.parse(data); }catch{ return false; };\r\n return obj[e.rowNode.id] == 1;\r\n }\r\n },\r\n\r\n onRowGroupOpened(e) {\r\n \r\n if(!this.controlData.GroupingOptions?.RememberOpenedGroups) return;\r\n\r\n let data = this.System.LocalStorage(this.storageKey + '-expanded-groups') || \"{}\";\r\n let obj = {};\r\n try { obj = JSON.parse(data); }catch{ };\r\n\r\n obj[e.node.id] = e.node.expanded ? 1 : 0;\r\n this.System.LocalStorage(this.storageKey + '-expanded-groups',JSON.stringify(obj));\r\n },\r\n\r\n getGroupingOption(field, compiled_expn, defaultValue){\r\n\r\n if(!this.controlData.GroupingOptions) return defaultValue;\r\n\r\n if(compiled_expn && this.controlData.GroupingOptions[compiled_expn]){\r\n let expn = this.controlData.GroupingOptions[compiled_expn];\r\n let ret = utils.evaluate(expn, this,false,false, false, null,null);\r\n return ret ? ret : defaultValue;\r\n }\r\n\r\n let value = this.controlData.GroupingOptions[field];\r\n return value ? value : defaultValue;\r\n },\r\n\r\n async Refresh(clearSelectedRows) {\r\n if (this.rowModelType == 'serverSide') {\r\n if (clearSelectedRows)\r\n this.ClearSelectedRows();\r\n\r\n if (this.gridApi)\r\n this.gridApi.refreshServerSide();\r\n // Else do nothing, we are initializing still\r\n }\r\n else\r\n this.internalRefresh(clearSelectedRows);\r\n },\r\n\r\n prepareColumns() {\r\n // Generate compiled expressions for all interpolations\r\n for (let i = 0; i < this.columnDefs.length; i++) {\r\n const cd = this.columnDefs[i];\r\n\r\n if (cd.Condition)\r\n cd.condition_expn = utils.compileExpression(this, cd.Condition, cd.RowModelName || 'row');\r\n\r\n for (let j = 0; j < cd.CommandButtons.length; j++) {\r\n const btn = cd.CommandButtons[j];\r\n\r\n if (btn.Condition)\r\n btn.$$Condition = utils.compileExpression(this, btn.Condition, cd.RowModelName || 'row');\r\n\r\n if (btn.Icon)\r\n btn.$$Icon = utils.compile(this, btn.Icon, false, cd.RowModelName || 'row');\r\n\r\n if (btn.Color)\r\n btn.$$Color = utils.compile(this, btn.Color, false, cd.RowModelName || 'row');\r\n\r\n if (btn.Tooltip)\r\n btn.$$Tooltip = utils.compile(this, btn.Tooltip, false, cd.RowModelName || 'row');\r\n }\r\n }\r\n },\r\n\r\n async prepareColumnDefs() {\r\n const h = this.$createElement;\r\n let coldefs;\r\n if (!this.controlData.EnableDynamicColumns && this.columnDefs && this.columnDefs.length > 0) {\r\n coldefs = [];\r\n\r\n if (this.controlData.SelectOptions.Enable) {\r\n let checkboxVisible = true;\r\n if (this.selectableexpn)\r\n checkboxVisible = ({ data }) => !data || utils.evaluate(this.selectableexpn, this, false, null, false, data);\r\n\r\n coldefs.push({\r\n headerName: '',\r\n sortable: false,\r\n resizable: true,\r\n checkboxSelection: checkboxVisible,\r\n headerCheckboxSelection: this.controlData.RowModelType != 'serverSide',\r\n headerCheckboxSelectionFilteredOnly: true,\r\n showDisabledCheckboxes: this.controlData.SelectOptions.ShowDisabledCheckboxes == true,\r\n pinned: 'left',\r\n width: 50\r\n });\r\n }\r\n\r\n for (let i = 0; i < this.columnDefs.length; i++) {\r\n const cd = this.columnDefs[i];\r\n\r\n utils.debug(`pushing regular coldef for field:${cd.Field} as name:${cd.Name}`);\r\n \r\n let rowGroup = cd.RowGroup;\r\n if(cd.EnableRowGroup && typeof rowGroup === \"string\"){\r\n let rowgroup_expn = utils.compileExpression(this, cd.RowGroup, 'ColumnDef');\r\n rowGroup = utils.evaluate(rowgroup_expn, this,false,false,false,cd);\r\n }\r\n\r\n coldefs.push(await this.generateColumnDef(h, cd, cd, i, cd.Field, cd.Name, cd.DisplayName, false, cd.Visible, cd.EnableRowGroup, rowGroup));\r\n }\r\n }\r\n else if (this.controlData.EnableDynamicColumns && this.dynamicColumns && this.columnTemplates) {\r\n coldefs = [];\r\n\r\n if (this.controlData.SelectOptions.Enable) {\r\n let checkboxVisible = true;\r\n if (this.selectableexpn)\r\n checkboxVisible = ({ data }) => utils.evaluate(this.selectableexpn, this, false, null, false, data)\r\n\r\n coldefs.push({\r\n headerName: '',\r\n sortable: false,\r\n resizable: true,\r\n checkboxSelection: checkboxVisible,\r\n headerCheckboxSelection: true,\r\n showDisabledCheckboxes: this.controlData.SelectOptions.ShowDisabledCheckboxes == true,\r\n pinned: 'left',\r\n width: 50,\r\n });\r\n }\r\n\r\n const dc = this.dynamicColumnsValue;\r\n if (dc && Array.isArray(dc)) {\r\n // Read this.columns_visible from local storage if present\r\n const cv = this.System.LocalStorage(this.storageKey + '-columns_visible');\r\n if (cv && this.useLocalStorage)\r\n Vue.set(this, 'columns_visible', JSON.parse(cv));\r\n\r\n if (!cv || this.columns_visible.length !== dc.length)\r\n this.columns_visible = dc.map(d => d.default_visible === undefined ? true : d.default_visible);\r\n\r\n this.init_columns_visible = [...this.columns_visible];\r\n\r\n for (let i = 0; i < dc.length; i++) {\r\n const cd = this.columnTemplates[dc[i].template];\r\n if (!cd) continue;\r\n\r\n utils.debug(`pushing templated coldef for field:${dc[i].field}, template:${dc[i].template}`);\r\n coldefs.push(await this.generateColumnDef(h, cd, dc[i], i, dc[i].field, '', dc[i].caption, true, dc[i].default_visible === undefined ? true : dc[i].default_visible, false, false));\r\n }\r\n }\r\n }\r\n\r\n this.column_defs = coldefs;\r\n this.column_defs_ready = true;\r\n },\r\n async generateColumnDef(h, cd, col, index, field, name, caption, istemplate, default_visible, enableRowGroup, groupByDefault) {\r\n // cd is the columnDef - which, for a template, is reused for multiple columns.\r\n // col is either the columnDef or the dynamicColumn - it is passed as a place to cache\r\n // compiled expressions for the column since it needs to be distinct per column even\r\n // for dynamic columns. For non-templated columns, it is the same as cd.\r\n\r\n if (!cd.visibleexpr && cd.Visible && typeof cd.Visible === 'string') {\r\n cd.visibleexpr = utils.compileObject(this, cd.Visible);\r\n }\r\n\r\n let field_extractor = col.field_extractor;\r\n if (!field_extractor)\r\n field_extractor = new Function('f', `return f != null ? f.${field} : null;`);\r\n\r\n // Cache this to prevent regular recompile\r\n //if (!istemplate)\r\n col.field_extractor = field_extractor;\r\n\r\n if (cd.Condition && !col.condition_expn)\r\n col.condition_expn = utils.compileExpression(this, cd.Condition, [cd.RowModelName || 'row', cd.ItemModelName || 'item']);\r\n \r\n let cellFilterFunc;\r\n\r\n if (cd.ActionOnlyColumn) {\r\n const def = ({\r\n headerName: cd.DisplayName,\r\n resizable: true,\r\n sortable: false,\r\n menuTabs: [],\r\n cellRenderer: 'CellTemplate',\r\n cellRendererParams: {\r\n callcorp: {\r\n root: this.root,\r\n columnDef: cd,\r\n scopeitems: this.scopeitems,\r\n controlscope: this.controlscope,\r\n context: this,\r\n }\r\n },\r\n valueGetter: (node) => {\r\n \r\n var callcorp = node.colDef.cellRendererParams.callcorp;\r\n var colDef = callcorp?.columnDef;\r\n\r\n let data;\r\n\r\n if (colDef && node.data) {\r\n data = {\r\n colData: col.condition_expn ? utils.evaluate(col.condition_expn, callcorp.context, false, null, false, node.data) : null,\r\n colActionData: colDef.CommandButtons?.map(button => CellButton.methods.getEvaluationResults(button, callcorp.context, node.data))\r\n };\r\n } else {\r\n data = {\r\n colData: null,\r\n colActionData: null\r\n }\r\n }\r\n\r\n return data;\r\n },\r\n equals: (l, r) => {\r\n return _.isEqual(l, r);\r\n }\r\n });\r\n if (cd.Width > 0) {\r\n def.width = parseInt(cd.Width);\r\n }\r\n\r\n return def;\r\n }\r\n else {\r\n let dataType;\r\n if (cd.DataType && cd.DataType != 'default')\r\n dataType = cd.DataType;\r\n\r\n let valueGetter;\r\n if (cd.Value && !col.value_expn)\r\n col.value_expn = utils.compile(this, cd.Value, false, [cd.RowModelName || 'row', cd.ItemModelName || 'item']);\r\n\r\n if (col.condition_expn && col.value_expn)\r\n valueGetter = (node) => node.data && utils.evaluate(col.condition_expn, this, false, null, false, [node.data, field_extractor(node.data)], true) ? utils.evaluate(col.value_expn, this, false, null, false, [node.data, field_extractor(node.data)], true) : '';\r\n else if (col.value_expn)\r\n valueGetter = (node) => node.data && utils.evaluate(col.value_expn, this, false, null, false, [node.data, field_extractor(node.data)], true);\r\n //else if (cd.condition_expn)\r\n // valueGetter = (node) => utils.evaluate(cd.condition_expn, this, false, null, false, [node.data, field_extractor(node.data)], true) ? field_extractor(node.data) : '';\r\n\r\n let valueFormatter;\r\n if (cd.CellFilter && !col.cellfilter_expn) {\r\n const filter = `{{ row.${field} | ${cd.CellFilter} }}`;\r\n col.cellfilter_expn = utils.compile(this, filter, false, ['row', cd.ItemModelName || 'item']);\r\n }\r\n if (col.cellfilter_expn && col.condition_expn)\r\n valueFormatter = (node) => node.data && utils.evaluate(col.condition_expn, this, false, null, false, [node.data, field_extractor(node.data)], true) ? utils.evaluate(col.cellfilter_expn, this, false, null, false, [node.data, field_extractor(node.data)], true) : '';\r\n else if (col.cellfilter_expn && !col.condition_expn)\r\n valueFormatter = (node) => node.data && utils.evaluate(col.cellfilter_expn, this, false, null, false, [node.data, field_extractor(node.data)], true);\r\n else if (col.condition_expn && !valueGetter)\r\n valueFormatter = (node) => node.data && utils.evaluate(col.condition_expn, this, false, null, false, [node.data, field_extractor(node.data)], true) ? field_extractor(node.data) : '';\r\n\r\n if (!valueGetter && !valueFormatter) {\r\n const code = `return data !== null && typeof data === 'object' ? JSON.stringify(data) : data;`;\r\n const func = new Function('data', code);\r\n valueFormatter = (node) => {\r\n try { return func(field_extractor(node.data)); } catch (e) {\r\n utils.warn(`Grid cell failed to evaluate ${code}`, e); return '';\r\n }\r\n };\r\n }\r\n\r\n const cdef = {\r\n headerName: caption || name || field,\r\n field: field,\r\n colId: name || field,\r\n sortable: cd.Sortable,\r\n filter: true,\r\n resizable: true,\r\n comparator: this.colSortComparator,\r\n hide: !this.init_columns_visible[index],\r\n rowGroup: groupByDefault == true,\r\n enableRowGroup: enableRowGroup == true\r\n };\r\n\r\n // This will hold the lookup table to transform cell values into display values\r\n let lookup;\r\n\r\n if (cd.Lookup && cd.Lookup.SourceType != 'None') {\r\n // Lookups can't use a value getter or formatter, it overrides the lookup\r\n valueGetter = null;\r\n valueFormatter = null;\r\n\r\n let displayExpr;\r\n switch (cd.Lookup.DisplayType) {\r\n case 'Field':\r\n displayExpr = cd.Lookup.DisplayField;\r\n break;\r\n case 'Expression':\r\n const displayfunc = utils.compileExpression(this, cd.Lookup.DisplayExpression, cd.RowModelName);\r\n displayExpr = (item) => utils.evaluate(displayfunc, this, false, null, false, item);\r\n break;\r\n }\r\n let valueExpr;\r\n switch (cd.Lookup.ValueType) {\r\n case 'Field':\r\n valueExpr = cd.Lookup.ValueField;\r\n break;\r\n case 'Expression':\r\n const valuefunc = utils.compileExpression(this, cd.Lookup.ValueExpression, cd.RowModelName);\r\n valueExpr = (item) => utils.evaluate(valuefunc, this, false, null, false, item);\r\n break;\r\n }\r\n\r\n const transformer = (rows) => Object.fromEntries(rows.map(r => {\r\n const value = typeof valueExpr === 'string' ? r[valueExpr] : valueExpr(r);\r\n const display = typeof displayExpr === 'string' ? r[displayExpr] : displayExpr(r);\r\n return [value, display];\r\n }));\r\n\r\n let dataSource;\r\n switch (cd.Lookup.SourceType) {\r\n case 'Raw':\r\n if (!cd.Lookup.dataSourceExpr)\r\n cd.Lookup.dataSourceExpr = utils.compileObject(this, cd.Lookup.SourceRaw);\r\n\r\n dataSource = utils.evaluateObject(cd.Lookup.dataSourceExpr, this);\r\n\r\n // Transform the array into an object\r\n // cdef.refData = transformer(dataSource);\r\n lookup = transformer(dataSource || []);\r\n valueGetter = (node) => lookup[field_extractor(node.data)];\r\n break;\r\n\r\n case 'URL':\r\n cdef.refData = {};\r\n\r\n if (!cd.Lookup.dataSourceUrl)\r\n cd.Lookup.dataSourceUrl = utils.compile(this, cd.Lookup.SourceURL);\r\n\r\n let url = utils.evaluate(cd.Lookup.dataSourceUrl, this);\r\n let res = await utils.api.get(url, false, cd.Lookup.CacheResults);\r\n\r\n utils.debug(`Lookup returned: ${JSON.stringify(res)}`);\r\n\r\n //cdef.refData = transformer(res);\r\n lookup = transformer(res);\r\n\r\n utils.debug(`Transformed to: ${JSON.stringify(cdef.refData)}`);\r\n break;\r\n }\r\n\r\n if (lookup) {\r\n if (cd.Lookup.NotFoundText && !cd.Lookup.notfoundexpn)\r\n cd.Lookup.notfoundexpn = utils.compile(this, cd.Lookup.NotFoundText, null, cd.RowModelName);\r\n\r\n valueGetter = (node) => node?.data && (lookup[field_extractor(node.data)] || (cd.Lookup.notfoundexpn ? utils.evaluate(cd.Lookup.notfoundexpn, this, null, null, null, node.data) : ''));\r\n valueFormatter = valueGetter;\r\n\r\n cdef.valueGetter = valueGetter;\r\n }\r\n\r\n // Enterprise feature\r\n //cdef.filter = 'agSetColumnFilter'; \r\n //cdef.cellEditor = 'select';\r\n //cdef.cellEditorParams = { values: Object.keys(cdef.refData) };\r\n\r\n // cdef.refData = { key: value, ... }\r\n }\r\n\r\n if (valueFormatter)\r\n cdef.valueFormatter = valueFormatter;\r\n\r\n if (valueGetter)\r\n cdef.valueFormatter = valueGetter;\r\n //cdef.valueGetter = valueGetter;\r\n\r\n if (cd.SortAndFilterTemplate) {\r\n if (!col.sorttemplate_expn)\r\n col.sorttemplate_expn = utils.compile(this, cd.SortAndFilterTemplate, false, [cd.RowModelName || 'row', cd.ItemModelName || 'item']);\r\n\r\n if (col.condition_expn)\r\n cdef.valueGetter = (node) => node.data && utils.evaluate(col.condition_expn, this, false, null, false, [node.data, field_extractor(node.data)], true) ? utils.evaluate(col.sorttemplate_expn, this, false, null, false, [node.data, field_extractor(node.data)], true) : '';\r\n else\r\n cdef.valueGetter = (node) => node.data && utils.evaluate(col.sorttemplate_expn, this, false, null, false, [node.data, field_extractor(node.data)], true);\r\n }\r\n\r\n if (cd.Align == 'Right') {\r\n cdef.cellClass = 'right-aligned-cell'; // 'rightAligned';\r\n cdef.headerClass = 'ag-right-aligned-header';\r\n }\r\n\r\n if (cd.HeaderType && cd.HeaderType != 'StandardMenu') {\r\n cdef.filter = cd.HeaderType == 'NoFilter' ? false : cd.HeaderType;\r\n cdef.menuTabs = ['filterMenuTab'];\r\n\r\n if(cd.HeaderType != \"DefaultFilter\"){\r\n cdef.menuTabs.push('generalMenuTab');\r\n }\r\n\r\n switch (cd.HeaderType) {\r\n case 'DropdownFilter':\r\n cdef.filterParams = {\r\n label: `Select Filter for ${cdef.DisplayName || cdef.name || cdef.field}:`,\r\n };\r\n break;\r\n\r\n case 'agMultiColumnFilter':\r\n cdef.filterParams = {\r\n filters: [\r\n {\r\n filter: 'agTextColumnFilter',\r\n filterParams: {\r\n filterOptions: cd.FilterOptions.CompareChoices,\r\n buttons: ['clear'],\r\n }\r\n },\r\n {\r\n filter: 'agSetColumnFilter',\r\n filterParams: {\r\n values: this.getUniqueColValuesFunc(cd),\r\n refreshValuesOnOpen: cd.UniqueValues?.RefreshValuesOnOpen,\r\n }\r\n }\r\n ],\r\n };\r\n if (lookup)\r\n cdef.filterParams.filters[0].valueFormatter = (params) => lookup[params.value];\r\n break;\r\n\r\n case 'agSetColumnFilter':\r\n cdef.filterParams = {\r\n values: this.getUniqueColValuesFunc(cd),\r\n refreshValuesOnOpen: cd.UniqueValues?.RefreshValuesOnOpen\r\n };\r\n if (lookup)\r\n cdef.filterParams.valueFormatter = (params) => lookup[params.value];\r\n break;\r\n\r\n case 'agTextColumnFilter':\r\n case 'agNumberColumnFilter':\r\n case 'agDateColumnFilter':\r\n cdef.filterParams = {\r\n filterOptions: cd.FilterOptions.CompareChoices,\r\n buttons: ['clear'],\r\n };\r\n break;\r\n }\r\n\r\n console.log('columnDef: ' + JSON.stringify(cdef, null, 3));\r\n }\r\n\r\n if (false && cd.LinkActions && cd.LinkActions.length > 0) {\r\n const scopedSlots = {\r\n default: ({ data }) =>\r\n this.rowLinkClick(e, data, cd.LinkActions)}\r\n >\r\n {cellFilterFunc(data.row.data)}\r\n \r\n };\r\n\r\n const buttons = [];\r\n buttons.push(\r\n \r\n \r\n );\r\n return (\r\n \r\n {buttons}\r\n \r\n );\r\n }\r\n else\r\n return cdef;\r\n }\r\n },\r\n getUniqueColValuesFunc(cd) {\r\n if (!cd.UniqueValues) return [];\r\n\r\n if (cd.UniqueValues.ValueType == 'Expression' && cd.UniqueValues.ValueExpression && !cd.UniqueValues.valueexpn)\r\n cd.UniqueValues.valueexpn = utils.compileExpression(this, cd.UniqueValues.ValueExpression, cd.UniqueValues.LookupModelAs);\r\n\r\n switch (cd.UniqueValues.LookupType) {\r\n case 'URL':\r\n if (!cd.UniqueValues.lookupurlexpn && cd.UniqueValues.LookupURL)\r\n cd.UniqueValues.lookupurlexpn = utils.compile(this, cd.UniqueValues.LookupURL);\r\n\r\n return async (params) => {\r\n if (!cd.UniqueValues.lookupurlexpn)\r\n params.success([]);\r\n else\r\n try {\r\n const dataurl = utils.evaluate(cd.UniqueValues.lookupurlexpn, this);\r\n\r\n console.log(`getUniqueColValues url: ` + dataurl.split('&').join('\\n'));\r\n\r\n let res = await utils.api.get(dataurl);\r\n\r\n switch (cd.UniqueValues.ValueType) {\r\n case 'Fieldname':\r\n res = res.map(a => a[cd.UniqueValues.ValueField]);\r\n break;\r\n case 'Expression':\r\n res = res.map(a => utils.evaluate(cd.UniqueValues.valueexpn, this, false, false, false, a));\r\n break;\r\n }\r\n console.log('getUniqueColValues res:' + JSON.stringify(res, null, 3));\r\n params.success(res);\r\n }\r\n catch (err) {\r\n params.success([]);\r\n console.error(`Failed in getUniqueColValuesFunc (LookupURL:${cd.UniqueValues.LookupURL}):`);\r\n console.error(err);\r\n }\r\n };\r\n\r\n case 'Interpolated':\r\n if (!cd.UniqueValues.lookupexpn && cd.UniqueValues.LookupInterpolatedArray)\r\n cd.UniqueValues.lookupexpn = utils.compileObject(this, cd.UniqueValues.LookupInterpolatedArray);\r\n\r\n return (params) => {\r\n if (!cd.UniqueValues.lookupexpn)\r\n params.success([]);\r\n else\r\n try {\r\n let res = utils.evaluateObject(cd.UniqueValues.lookupexpn, this);\r\n\r\n switch (cd.UniqueValues.ValueType) {\r\n case 'Fieldname':\r\n res = res.map(a => a[cd.UniqueValues.ValueField]);\r\n break;\r\n case 'Expression':\r\n res = res.map(a => utils.evaluate(cd.UniqueValues.valueexpn, this, false, false, false, a));\r\n break;\r\n }\r\n params.success(res);\r\n }\r\n catch (err) {\r\n params.success([]);\r\n console.error(`Failed in getUniqueColValuesFunc (LookupInterpolatedArray:${JSON.stringify(cd.UniqueValues.LookupInterpolatedArray)}):`);\r\n console.error(err);\r\n }\r\n };\r\n\r\n default:\r\n return [];\r\n }\r\n },\r\n\r\n getGridMenuColumnList(h, menus) {\r\n if (!this.controlData.EnableDynamicColumns && this.columnDefs && this.columnDefs.length > 0) {\r\n for (let i = 0; i < this.columnDefs.length; i++) {\r\n const col = this.columnDefs[i];\r\n if (col.ActionOnlyColumn) continue;\r\n\r\n menus.push(\r\n this.toggleColumnVisible(col.Name || col.Field, i)}>\r\n \r\n {this.columns_visible[i] ? 'mdi-check' : ''}\r\n \r\n \r\n {col.DisplayName || col.Name || col.Field}\r\n \r\n \r\n );\r\n }\r\n }\r\n else if (this.controlData.EnableDynamicColumns && this.dynamicColumns && this.columnTemplates) {\r\n const dc = this.dynamicColumnsValue;\r\n if (dc && Array.isArray(dc)) {\r\n for (let i = 0; i < dc.length; i++) {\r\n const cd = this.columnTemplates[dc[i].template];\r\n if (!cd || !dc[i].field) continue;\r\n\r\n //utils.debug(`pushing templated coldef for field:${dc[i].field}, template:${dc[i].template}`);\r\n //coldefs.push(await this.generateColumnDef(h, cd, i, dc[i].field, '', dc[i].caption, true, dc[i].default_visible === undefined ? true : dc[i].default_visible));\r\n\r\n menus.push(\r\n this.toggleColumnVisible(dc[i].field, i)}>\r\n \r\n {this.columns_visible[i] ? 'mdi-check' : ''}\r\n \r\n \r\n {dc[i].caption || dc[i].field}\r\n \r\n \r\n );\r\n }\r\n }\r\n }\r\n },\r\n\r\n preRenderComplete() {\r\n this.finishRenderHandler(this);\r\n },\r\n rowCommandClick(e, data, btn) {\r\n e.cancelBubble = true;\r\n e.preventDefault();\r\n utils.executeAndCompileAllActions(btn.Actions, { RowIndex: data.rowIndex, Data: data.row.data }, this);\r\n },\r\n rowLinkClick(e, data, actions) {\r\n e.cancelBubble = true;\r\n e.preventDefault();\r\n utils.executeAndCompileAllActions(actions, { RowIndex: data.rowIndex, Data: data.row.data }, this);\r\n },\r\n rowMenuClick(e, data, btn, m) {\r\n //e.cancelBubble = true;\r\n //e.preventDefault();\r\n utils.executeAndCompileAllActions(m.Actions, { RowIndex: data.rowIndex, Data: data.row.data }, this);\r\n },\r\n menuOpenClose(state, data, btn, m) {\r\n if (btn.OnMenuOpen)\r\n utils.executeAndCompileAllActions(btn.OnMenuOpen, { RowIndex: data.rowIndex, Data: data.row.data, State: state }, this);\r\n },\r\n async runUserQuery(args) {\r\n //const q_from = args.startRow;\r\n //const q_size = args.endRow - args.startRow;\r\n //let dataurl = `${this.modelurlvalue}&PageSize=${q_size}&From=${q_from}`;\r\n\r\n // Invoke a user defined function and pass the params as well as a function\r\n // that is the API getter function to be used from within the user defined\r\n // function to submit the API request to fetch the actual data.\r\n if (this.dsFunc) {\r\n //const api = utils.apiWrapper;\r\n const chf = careHelpfulFunctions;\r\n const care = careService;\r\n const Control = this.scopeitems;\r\n const Params = this.Params;\r\n\r\n return await this.dsFunc(this.modelurlvalue, args, utils.api, care, chf, Control, Params);\r\n }\r\n\r\n return { rowData: [], rowCount: 0 };\r\n },\r\n async ExportData(all) {\r\n await this.resolveAllAdditionalRowData();\r\n\r\n let columnKeys = this.column_defs.filter(c => c.colId);\r\n\r\n if (!all) {\r\n let columnVis = this.gridApi.getAllDisplayedColumns();\r\n columnVis = careHelpfulFunctions.toLookup(columnVis, 'colId');\r\n columnKeys = columnKeys.filter(c => c.colId in columnVis);\r\n }\r\n\r\n this.gridApi.exportDataAsCsv({ columnKeys: columnKeys.map(c => c.colId) });\r\n },\r\n },\r\n props: {},\r\n render() {\r\n if (!this.todisplay || !this.column_defs_ready)\r\n return null;\r\n\r\n const style = {\r\n overflow: \"auto\",\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n padding: '8px',\r\n ...this.sizeStyle,\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n\r\n {this.gridHeaders}\r\n {/*{this.pagination ? 'Paging' : 'Normal'}*/}\r\n {/*
*/}\r\n {/* {this.modelurlvalue}*/}\r\n {/* -*/}\r\n {/* dataSource: {this.dataSource ? (this.dataSource.length + ' record(s)') : 'empty'}*/}\r\n {/* this.modelfunc = null}>Clear DS*/}\r\n {/*
*/}\r\n this.onFirstDataRendered(e)}\r\n on-selection-changed={(e) => this.rowSelectionChanged(e)}\r\n on-row-group-opened={(e) => this.onRowGroupOpened(e)}\r\n columnDefs={this.column_defs}\r\n rowData={this.dataSource}\r\n autoGroupColumnDef={{ pinned: this.getGroupingOption('Pinned', null, false), lockPosition: this.getGroupingOption('LockPosition', null, false) }}\r\n isGroupOpenByDefault={this.getIsOpenGroupOptionCallback()}\r\n rowSelection={this.controlData.SelectOptions.MultiSelect ? \"multiple\" : null}\r\n groupSelectsChildren={this.getGroupingOption('SelectChildren', null, false)}\r\n groupDisplayType={this.getGroupingOption('DisplayType', null, null)}\r\n rowGroupPanelShow={this.getGroupingOption('PanelShow', 'panelshow_expn', 'never')}\r\n groupDefaultExpanded={this.getGroupingOption('ColumnsExpanded', 'columnsexpanded_expn', 0)}\r\n groupLockGroupColumns={this.getGroupingOption('ColumnsLocked', null, 0)}\r\n suppressGroupRowsSticky={this.getGroupingOption('SuppressSticky', null, false)}\r\n groupAllowUnbalanced={this.getGroupingOption('AllowUnbalanced', null, false)}\r\n showOpenedGroup={this.getGroupingOption('ShowOpenedGroup', null, false)}\r\n suppressMenuHide={true}\r\n isRowSelectable={this.isRowSelectable}\r\n enableCellTextSelection={true}\r\n ensureDomOrder={true}\r\n quickFilterText={this.searchTextReader}\r\n suppressScrollOnNewData={true}\r\n suppressRowClickSelection={true}\r\n suppressDragLeaveHidesColumns={true}\r\n suppressCellSelection={true}\r\n pagination={this.pagination}\r\n paginationAutoPageSize={this.pagination}\r\n getRowClass={this.getRowClass}\r\n rowModelType={this.rowModelType}\r\n serverSideDatasource={this.serverDataSource}\r\n columnTypes={this.dataTypeDefinitions}\r\n onFilterChanged={this.columnFilterChanged}\r\n on-sort-changed={this.onSaveGridSortState}\r\n on-column-visible={this.onSaveGridColumnState}\r\n on-column-pinned={this.onSaveGridColumnState}\r\n on-column-resized={this.onSaveGridColumnState}\r\n on-column-moved={this.onSaveGridColumnState}\r\n on-column-row-group-changed={this.onSaveGridColumnState}\r\n >\r\n \r\n \r\n );\r\n\r\n /*\r\n\r\n * */\r\n\r\n\r\n //rowHeight={26}\r\n\r\n //const style = {\r\n // overflow: \"auto\",\r\n // display: \"flex\",\r\n // flexDirection: \"column\",\r\n // ...this.sizeStyle,\r\n // maxHeight: \"1000px\",\r\n //};\r\n\r\n //let scopedSlots = {};\r\n //this.getHeaderControls(scopedSlots);\r\n\r\n //return (\r\n // this.onToolbarPreparing(e)}\r\n // on-selection-changed={(s) => this.onSelectionChanged(s)}\r\n // >\r\n // \r\n // \r\n // \r\n // {this.paging}\r\n // {this.pager}\r\n // \r\n // \r\n // {selector}\r\n\r\n // {this.coldefs}\r\n // \r\n //);\r\n\r\n // \r\n }\r\n});","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{ref:\"joint\"})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\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/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./JointPaper.vue?vue&type=script&lang=js&\"; 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/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./JointPaper.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./JointPaper.vue?vue&type=template&id=9602c462&scoped=true&\"\nimport script from \"./JointPaper.vue?vue&type=script&lang=js&\"\nexport * from \"./JointPaper.vue?vue&type=script&lang=js&\"\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 \"9602c462\",\n null\n \n)\n\nexport default component.exports","import Vue from 'vue';\r\nimport BaseComponent from './BaseComponentMixin.jsx';\r\nimport EventBus from '../event-bus.js';\r\nimport utils from '@/Shared/utils';\r\n\r\nimport JointPaper from './vuecontrols/JointPaper';\r\nimport { Splitpanes, Pane } from 'splitpanes';\r\n\r\nfunction toHex(n) {\r\n n = parseInt(n, 10);\r\n if (isNaN(n)) return \"00\";\r\n n = Math.max(0, Math.min(n, 255));\r\n return \"0123456789ABCDEF\".charAt((n - n % 16) / 16)\r\n + \"0123456789ABCDEF\".charAt(n % 16);\r\n}\r\n\r\nfunction rgbToHex(R, G, B) {\r\n return toHex(R) + toHex(G) + toHex(B)\r\n}\r\n\r\nconst empty_tree =\r\n [\r\n {\r\n id: 1,\r\n name: 'Unnamed.prj',\r\n children: [\r\n {\r\n id: 2,\r\n name: 'API References',\r\n children: [\r\n {\r\n id: 3,\r\n name: 'System'\r\n },\r\n {\r\n id: 4,\r\n name: 'Platform'\r\n }\r\n ]\r\n },\r\n {\r\n id: 5,\r\n name: 'Project References',\r\n children: [],\r\n },\r\n {\r\n id: 6,\r\n name: 'Resources',\r\n children: [],\r\n },\r\n {\r\n id: 7,\r\n name: 'Enums',\r\n children: [],\r\n },\r\n {\r\n id: 8,\r\n name: 'Application',\r\n children: [],\r\n }\r\n ]\r\n }\r\n ];\r\n\r\n// The arghandler is an object used with a Proxy to control reading and writing\r\n// to an icon which has all parameters saved in an array called Arguments. Each\r\n// param has a PropertyName and PropertyValue as opposed to being an object\r\n// with first class properties.\r\nconst arghandler = {\r\n get(target, prop, receiver) {\r\n const f = target.find(a => a.PropertyName == prop);\r\n if (f)\r\n return f.PropertyValue;\r\n\r\n return undefined;\r\n },\r\n set(target, prop, value) {\r\n const f = target.find(a => a.PropertyName == prop);\r\n if (f)\r\n f.PropertyValue = value;\r\n\r\n return true;\r\n },\r\n has(target, prop) {\r\n return !!target.find(a => a.PropertyName == prop);\r\n }\r\n}\r\n\r\nVue.component('flow-chart', {\r\n mixins: [BaseComponent],\r\n components: {\r\n JointPaper,\r\n Splitpanes,\r\n Pane,\r\n },\r\n data: function () {\r\n return {\r\n next_id: 1,\r\n selected_menu: -1,\r\n selected_tab: 0,\r\n loading: true,\r\n\r\n\t\t\tbackground: {\r\n\t\t\t\tcolor: '#fffffb'\r\n\t\t\t},\r\n\t\t\tgridSize: 10,\r\n\t\t\tdrawGrid: true,\r\n model: null,\r\n\r\n tabs: [],\r\n\r\n closing_tab: -1,\r\n\r\n internal_apis: {},\r\n properties_schema: null,\r\n properties_object: null,\r\n\r\n project_references: {},\r\n }\r\n\t},\r\n\tcreated() {\r\n if (this.controlData.ProjectName)\r\n this.projectnameexpn = utils.compileObject(this, this.controlData.ProjectName);\r\n },\r\n //Mounted Replaced with preRenderComplete\r\n computed: {\r\n toolBar: function () {\r\n const h = this.$createElement;\r\n\r\n let loading;\r\n if (this.loading)\r\n loading = (\r\n \r\n );\r\n\r\n return (\r\n
\r\n {loading}\r\n
\r\n
\r\n
\r\n );\r\n },\r\n mainTabbedArea: function () {\r\n const h = this.$createElement;\r\n const tab_titles = [];\r\n const tab_body = [];\r\n\r\n for (let i = 0; i < this.tabs.length; i++) {\r\n const t = this.tabs[i];\r\n\r\n let content;\r\n let icon;\r\n switch (t.obj.$type) {\r\n case 'MethodLib.Serialization.ProjectClassFlowchart, CompilerCore':\r\n icon = (\r\n \r\n mdi-sitemap\r\n \r\n );\r\n content = (\r\n this.setupGraph(graph, paper, t.obj.Objects)}>\r\n \r\n );\r\n break;\r\n\r\n case 'MethodLib.Serialization.ProjectClassCode, CompilerCore':\r\n icon = (\r\n \r\n mdi-code-braces-box\r\n \r\n );\r\n content = (\r\n this.onCodeBlockChange(t, value)}>\r\n \r\n );\r\n break;\r\n }\r\n\r\n tab_titles.push(\r\n this.closeTab(e, t, i)}>\r\n {icon}\r\n\r\n {t.Name.split('/').pop()}\r\n\r\n this.closeTab(e, t, i)}>\r\n \r\n mdi-close-circle-outline\r\n \r\n \r\n \r\n );\r\n\r\n\r\n tab_body.push(\r\n \r\n
\r\n {content}\r\n
\r\n
\r\n );\r\n }\r\n\r\n return ([\r\n this.changeTab(t)} style=\"flex-grow: 0;\">\r\n {tab_titles}\r\n \r\n ,\r\n \r\n {tab_body}\r\n \r\n ]);\r\n },\r\n projectTree: function () {\r\n const h = this.$createElement;\r\n\r\n let items;\r\n\r\n if (!this.model)\r\n items = empty_tree;\r\n else {\r\n items = [\r\n {\r\n id: this.next_id++,\r\n name: this.model.Name,\r\n icon: 'mdi-file-table-box',\r\n children: [\r\n {\r\n id: this.next_id++,\r\n name: 'API References',\r\n icon: 'mdi-folder',\r\n children: this.model.References.map(a => ({\r\n id: this.next_id++,\r\n name: a,\r\n })),\r\n },\r\n {\r\n id: this.next_id++,\r\n name: 'Project References',\r\n icon: 'mdi-folder',\r\n children: [],\r\n },\r\n {\r\n id: this.next_id++,\r\n name: 'Resources',\r\n icon: 'mdi-folder',\r\n children: [],\r\n },\r\n {\r\n id: this.next_id++,\r\n name: 'Enums',\r\n icon: 'mdi-folder',\r\n children: this.model.Classes.filter(c => c.$type == 'MethodLib.Serialization.ProjectClassEnum, CompilerCore').map(c => ({\r\n id: this.next_id++,\r\n name: c.ClassName,\r\n obj: c,\r\n children: c.Values.map(v => ({\r\n id: this.next_id++,\r\n name: v,\r\n }))\r\n })),\r\n },\r\n ]\r\n }\r\n ];\r\n\r\n for (let i = 0; i < this.model.Classes.length; i++) {\r\n const c = this.model.Classes[i];\r\n if (c.$type == 'MethodLib.Serialization.ProjectClassEnum, CompilerCore')\r\n continue;\r\n\r\n let members = (c.Members ? c.Members.filter(m => m.$type != 'MethodLib.Serialization.ProjectClassField, CompilerCore').map(m => ({\r\n id: this.next_id++,\r\n name: m.Name,\r\n icon: m.$type == 'MethodLib.Serialization.ProjectClassFlowchart, CompilerCore' ? 'mdi-sitemap' : 'mdi-code-braces-box',\r\n obj: m,\r\n editable: true,\r\n children: m.Locals ? m.Locals.map(o => ({\r\n id: this.next_id++,\r\n name: o.Name,\r\n obj: o,\r\n })) : [],\r\n })) : []);\r\n\r\n members = Enumerable.From(members).OrderBy(a => a.name).ToArray();\r\n\r\n items[0].children.push({\r\n id: this.next_id++,\r\n name: c.ClassName,\r\n obj: c,\r\n icon: 'mdi-application',\r\n children: [\r\n {\r\n id: this.next_id++,\r\n name: 'Data Fields',\r\n icon: 'mdi-folder',\r\n children: c.Members.filter(m => m.$type == 'MethodLib.Serialization.ProjectClassField, CompilerCore').map(m => ({\r\n id: this.next_id++,\r\n name: m.Name,\r\n }))\r\n },\r\n ...members],\r\n });\r\n }\r\n }\r\n\r\n return (\r\n {\r\n return {item.name}\r\n },\r\n prepend: ({ item, leaf, open }) => {\r\n if (item.icon)\r\n return {item.icon};\r\n else\r\n return null;\r\n },\r\n append: ({ item, active }) => {\r\n if (active && item.editable)\r\n return this.open(e, item)}>mdi-pencil;\r\n else\r\n return null;\r\n },\r\n }}\r\n >\r\n \r\n );\r\n },\r\n properties: function () {\r\n const h = this.$createElement;\r\n\r\n if (!this.properties_schema)\r\n return Nothing selected;\r\n\r\n return (\r\n \r\n \r\n );\r\n },\r\n\r\n topArea: function () {\r\n return this.toolBar;\r\n },\r\n mainArea: function () {\r\n return this.mainTabbedArea;\r\n },\r\n rightTopArea: function () {\r\n return this.projectTree;\r\n },\r\n rightBottomArea: function () {\r\n return this.properties;\r\n },\r\n\r\n recentsMenu: function () {\r\n const h = this.$createElement;\r\n\r\n return [\r\n { }}>\r\n \r\n \r\n Last item 1\r\n \r\n \r\n ,\r\n\r\n { }}>\r\n \r\n \r\n Last item 2\r\n \r\n \r\n \r\n ];\r\n },\r\n fileMenu: function () {\r\n const h = this.$createElement;\r\n\r\n return [\r\n { }}>\r\n \r\n mdi-folder-open\r\n \r\n\r\n \r\n \r\n Open\r\n \r\n \r\n ,\r\n\r\n ,\r\n\r\n { }}>\r\n \r\n mdi-content-save\r\n \r\n\r\n \r\n \r\n Save\r\n \r\n \r\n ,\r\n\r\n { }}>\r\n \r\n \r\n \r\n\r\n \r\n \r\n Save As...\r\n \r\n \r\n ,\r\n\r\n ,\r\n\r\n \r\n \r\n \r\n\r\n \r\n\r\n \r\n \r\n Recent\r\n \r\n \r\n\r\n \r\n mdi-menu-right\r\n \r\n \r\n }}\r\n >\r\n \r\n \r\n {this.recentsMenu}\r\n \r\n \r\n ,\r\n\r\n ,\r\n\r\n { }}>\r\n \r\n mdi-close-box-outline\r\n \r\n\r\n \r\n \r\n Close\r\n \r\n \r\n ,\r\n ];\r\n },\r\n topMenuBar: function () {\r\n const h = this.$createElement;\r\n\r\n const title = this.model ? this.model.Name : 'Unnamed Project';\r\n\r\n return (\r\n
\r\n \r\n \r\n File\r\n \r\n }}\r\n >\r\n \r\n this.selected_menu--}>\r\n {this.fileMenu}\r\n \r\n \r\n \r\n\r\n \r\n {title}\r\n \r\n\r\n \r\n mdi-close-box-outline\r\n \r\n
\r\n );\r\n },\r\n },\r\n methods: {\r\n preRenderComplete() {\r\n this.finishRenderHandler(this);\r\n this.Refresh();\r\n\t\t},\r\n async Refresh() {\r\n let fn;\r\n\r\n if (this.projectnameexpn)\r\n fn = utils.evaluate(this.projectnameexpn, this);\r\n\r\n if (fn)\r\n this.model = await utils.api.get(`Apps/Project/${fn}`);\r\n else if (this.Query('fn'))\r\n this.model = await utils.api.get(`Apps/Project/${this.Query('fn')}`);\r\n //else\r\n // this.model = {};\r\n\r\n this.scanAllMembers(this.model);\r\n\r\n await this.loadProjectReferences(this.model);\r\n\r\n this.loading = false;\r\n },\r\n async loadProjectReferences(model) {\r\n if (Array.isArray(model.ProjectRefs) && model.ProjectRefs.length > 0) {\r\n for (let i = 0; i < model.ProjectRefs.length; i++) {\r\n const fn = model.ProjectRefs[i];\r\n if (fn in this.project_references)\r\n continue;\r\n\r\n let proj;\r\n if (fn.length > 1 && fn.substr(0, 1) == '$')\r\n proj = await utils.api.get(`Apps/Projects/Published/${fn.substr(1)}`);\r\n else\r\n proj = await utils.api.get(`Apps/Project/${fn}`);\r\n\r\n if (proj) {\r\n this.scanAllMembers(proj);\r\n this.project_references[fn] = proj;\r\n await this.loadProjectReferences(proj);\r\n }\r\n }\r\n }\r\n },\r\n changeTab(index) {\r\n utils.debug(`try changeTab(index:${index})`);\r\n if (index === undefined || index == this.closing_tab) {\r\n this.closing_tab = -1;\r\n return;\r\n }\r\n\r\n this.selected_tab = index;\r\n },\r\n open(e, item) {\r\n e.cancelBubble = true;\r\n e.stopPropagation();\r\n\r\n for (let i = 0; i < this.tabs.length; i++) {\r\n const t = this.tabs[i];\r\n\r\n if (t.id == item.id) {\r\n // Tab already open, activate it\r\n this.selected_tab = i;\r\n return;\r\n }\r\n }\r\n\r\n this.tabs.push({\r\n id: item.id,\r\n Name: item.name,\r\n obj: item.obj,\r\n });\r\n\r\n this.selected_tab = this.tabs.length - 1;\r\n },\r\n onCodeBlockChange(tab, value) {\r\n tab.obj.CodeBlock = value;\r\n },\r\n closeTab(e, tab, index) {\r\n e.cancelBubble = true;\r\n e.stopPropagation();\r\n\r\n this.closing_tab = index;\r\n\r\n const old = this.selected_tab;\r\n\r\n this.tabs.splice(index, 1);\r\n\r\n const c = this;\r\n Vue.nextTick(() => {\r\n if (old >= index) {\r\n c.selected_tab = old - 1;\r\n }\r\n });\r\n },\r\n\r\n scanAllMembers(model) {\r\n for (let i = 0; i < model.Classes.length; i++) {\r\n const c = model.Classes[i];\r\n if (c.Members)\r\n for (let j = 0; j < c.Members.length; j++) {\r\n const m = c.Members[j];\r\n if (m.Key) {\r\n \r\n\r\n this.saveSchemaFromMethod(m);\r\n }\r\n }\r\n }\r\n },\r\n\r\n blank_pointerdown(evt, x, y) {\r\n if (this.selected)\r\n this.selected.unhighlight(this.selected.el);\r\n\r\n this.selected = null;\r\n this.properties_schema = null;\r\n this.properties_object = null;\r\n },\r\n async cell_pointerdown(cellView, evt, x, y) {\r\n if (this.selected)\r\n this.selected.unhighlight(this.selected.el);\r\n\r\n cellView.highlight(cellView.el);\r\n this.selected = cellView;\r\n\r\n const method = cellView.model.attributes.Method;\r\n const type = encodeURIComponent(method.$type);\r\n const key = method.ImplementationKey ? encodeURIComponent(method.ImplementationKey) : '';\r\n let schema = method.ImplementationKey ? this.internal_apis[method.ImplementationKey] : null;\r\n if (!schema)\r\n schema = await utils.api.get(`Apps/WebFlowHelpers/GetIconSchema?Type=${type}&APIKey=${key}`);\r\n\r\n //if (method.Name == 'BridgeCalls')\r\n // debugger;\r\n\r\n // For MethodItems, method.Arguments contains the model data - we'll have to transform them into a regular JSON object\r\n this.properties_schema = this.getWrapperSchema(schema);\r\n this.properties_object = this.getWrapperObject(this.getModelForIcon(method), cellView.model.attributes);\r\n\r\n //var method = cellView.model.attributes.Method;\r\n // method.$type: \"DevClient.SetItem, CompilerCore\"\r\n //\r\n // var model = getMethodModel(method);\r\n // Do something - like send this to a modal dialog\r\n },\r\n cell_pointerup(cellView, evt, x, y) {\r\n if (this.changed) {\r\n // After movement, we rebuild all the objects (maybe we now have more options)\r\n //this.model.Objects = this.getFlowchartObjects();\r\n //care.logInfo('rebuilt model from movement');\r\n }\r\n\r\n this.changed = false;\r\n },\r\n cell_pointerdblclick(cellView, evt, x, y) {\r\n const method = cellView.model.attributes.Method;\r\n //const model = this.getMethodModel(method);\r\n \r\n },\r\n\r\n getWrapperSchema(schema) {\r\n const p = {\r\n type: 'object',\r\n properties: {\r\n API: {\r\n type: 'object',\r\n properties: {\r\n Id: {\r\n type: 'string',\r\n readonly: true,\r\n },\r\n Namespace: {\r\n type: 'string',\r\n readonly: true,\r\n condition: 'ParentModel.Namespace'\r\n },\r\n Name: {\r\n type: 'string',\r\n readonly: true,\r\n }\r\n }\r\n },\r\n Arguments: schema,\r\n }\r\n };\r\n\r\n return p;\r\n },\r\n getWrapperObject(model, icon) {\r\n const o = {\r\n API: {\r\n Id: icon.ID,\r\n Namespace: icon.Method.Namespace,\r\n Name: icon.Method.Name,\r\n },\r\n Arguments: model,\r\n };\r\n\r\n return o;\r\n },\r\n async getSchemaForCLRType(type) {\r\n switch (type) {\r\n case 'string':\r\n case 'System.String':\r\n return {\r\n type: 'string',\r\n };\r\n case 'bool':\r\n case 'System.Boolean':\r\n return {\r\n type: 'boolean',\r\n };\r\n case 'float':\r\n case 'double':\r\n case 'System.Float':\r\n case 'System.Double':\r\n return {\r\n type: 'number',\r\n };\r\n case 'int':\r\n case 'long':\r\n case 'System.Int16':\r\n case 'System.Int32':\r\n case 'System.Int64':\r\n return {\r\n type: 'integer',\r\n };\r\n case 'object':\r\n case 'CompilerCore.Evaluators.JsonObj':\r\n return {\r\n type: 'object',\r\n };\r\n case 'DateTime':\r\n case 'System.DateTime':\r\n return {\r\n type: 'string',\r\n format: 'date-time',\r\n };\r\n\r\n default:\r\n return await utils.api.get(`Apps/WebFlowHelpers/GetIconSchema?Type=${encodeURIComponent(type)}`);\r\n }\r\n },\r\n async getSchemaForUserType(ownerid, type, projectName) {\r\n return { type: 'object', properties: {} };\r\n },\r\n async saveSchemaFromMethod(item) {\r\n //if (item.Name == 'BridgeCalls')\r\n // debugger;\r\n\r\n const schema = {\r\n $schema: `${location.protocol}//${location.hostname}/schema/public/v1/schema-draft04#`,\r\n id: `${location.protocol}//${location.hostname}/Apps/APISchema/${item.ImplementationKey}`,\r\n type: 'object',\r\n description: item.Description,\r\n properties: {},\r\n };\r\n\r\n for (let i = 0; i < item.Arguments.length; i++) {\r\n const a = item.Arguments[i];\r\n if (a.Hidden) continue;\r\n\r\n let arg = {\r\n type: 'string',\r\n title: `${a.Name}: ${a.ArgType}`\r\n };\r\n \r\n schema.properties[a.Name] = arg;\r\n\r\n if (a.DefaultValue)\r\n arg.default = a.DefaultValue;\r\n if (a.Description)\r\n arg.description = a.Description;\r\n\r\n if (a.Choices && a.Choices.length > 0) {\r\n arg.enum = a.Choices;\r\n }\r\n else if (a.ArgType == 'bool')\r\n {\r\n arg.titleMap = [{ name: 'true', value: 'true' }, { name: 'false', value: 'false' }];\r\n arg.formatData = { AllowCustomInput: true };\r\n }\r\n else if (a.LookupAPI) {\r\n arg.formatData = {};\r\n arg.format = 'LookupList';\r\n arg.formatData.LookupURL = a.LookupAPI;\r\n arg.formatData.AllowCustomInput = true;\r\n if (a.LookupAPIDisplayField) {\r\n arg.formatData.DisplayType = 'Fieldname';\r\n arg.formatData.DisplayField = a.LookupAPIDisplayField;\r\n }\r\n if (a.LookupAPIValueField) {\r\n arg.formatData.ValueType = 'Fieldname';\r\n arg.formatData.ValueField = a.LookupAPIValueField;\r\n }\r\n }\r\n }\r\n\r\n this.internal_apis[item.Key] = schema;\r\n },\r\n getModelForIcon(item) {\r\n if (!item.Arguments)\r\n return item;\r\n\r\n // Use a Proxy to translate object format into array format. All\r\n // arguments are actually stored in an array with PropertyName and PropertyValue\r\n // instead of being a normal object. But for the property editor\r\n // to work right, we need the model to appear as a standard object.\r\n // We could have just built a temporary object based on the array, however,\r\n // it wouldn't allow writing changes back because it would write to the temp\r\n // object and not the original array. The Proxy writes back to the actual\r\n // array.\r\n return new Proxy(item.Arguments, arghandler);\r\n\r\n // NOTE: This does not work for dropdown lists - the property grid checks\r\n // to see if the model is an array, which returns TRUE even though the proxy\r\n // is pretending it is an object - which it should be treated as. so...\r\n },\r\n\r\n setupGraph(graph, paper, objects) {\r\n const c = this;\r\n this.graph = graph;\r\n this.paper = paper;\r\n\r\n paper.on('blank:pointerdown', this.blank_pointerdown);\r\n paper.on('cell:pointerdown', this.cell_pointerdown);\r\n paper.on('cell:pointerup', this.cell_pointerup);\r\n paper.on('cell:pointerdblclick', this.cell_pointerdblclick);\r\n\r\n graph.on('change:position change:size change:source change:target change:vertices add remove', function (cell) {\r\n c.changed = true;\r\n });\r\n\r\n this.loadFlowchart(graph, paper, objects);\r\n\r\n\t\t//\tconst rect = new this.$joint.shapes.standard.Rectangle();\r\n\t\t//\trect.position(100, 30);\r\n\t\t//\trect.resize(100, 40);\r\n\t\t//\trect.attr({\r\n\t\t//\t\tbody: {\r\n\t\t//\t\t\tfill: 'blue'\r\n\t\t//\t\t},\r\n\t\t//\t\tlabel: {\r\n\t\t//\t\t\ttext: 'Hello',\r\n\t\t//\t\t\tfill: 'white'\r\n\t\t//\t\t}\r\n\t\t//\t});\r\n\t\t//\trect.addTo(graph);\r\n\t\t//\tconst rect2 = rect.clone();\r\n\t\t//\trect2.translate(300, 0);\r\n\t\t//\trect2.attr('label/text', 'World!');\r\n\t\t//\trect2.addTo(graph);\r\n\t\t//\tconst link = new this.$joint.shapes.standard.Link();\r\n\t\t//\tlink.source(rect);\r\n\t\t//\tlink.target(rect2);\r\n\t\t//\tlink.addTo(graph);\r\n\t\t},\r\n loadFlowchart(graph, paper, items) {\r\n graph.clear();\r\n\r\n const item_ids = [];\r\n for (let i = 0; i < items.length; i++) {\r\n const item = items[i];\r\n let label = item.Label || item.Text;\r\n if (label == 'DevClient.StartItem') label = 'Start()';\r\n\r\n // Keep an internal dictionary of all methods declared in this project\r\n // storing the inferred schema for each key. This is needed to allow\r\n // the property inspector the ability to show the right properties for\r\n // each internal method.\r\n if (item.Item && item.Item.ImplementationKey)\r\n this.saveSchemaFromMethod(item.Item);\r\n\r\n let type = item.$type.split('.')[2].split(',')[0];\r\n switch (type) {\r\n case 'PropertiesGraphicsMethod':\r\n const m1 = new this.$joint.shapes.standard.Rectangle();\r\n m1.position(item.Left, item.Top);\r\n m1.resize(item.Right - item.Left, item.Bottom - item.Top)\r\n m1.attr({ body: { fill: 'blue' }, label: { text: 'unused', fill: 'white' } });\r\n\r\n label = item.Item.Name + '()';\r\n\r\n const color = rgbToHex(item.ObjectColor.R, item.ObjectColor.G, item.ObjectColor.B);\r\n m1.attr({\r\n body: { fill: '#f2f2f2', rx: 5, ry: 5, strokeWidth: 0.5, stroke: '#' + color },\r\n label: {\r\n textWrap: { text: label, width: -10, height: 25 },\r\n fill: '#' + color, //'#3498DB',\r\n fontSize: 12,\r\n fontWeight: 'normal'\r\n }\r\n });\r\n\r\n m1.prop({ Method: item.Item, ID: item.ID });\r\n\r\n m1.addTo(graph);\r\n\r\n item_ids[item.ID] = { id: m1.id, obj: m1 };\r\n break;\r\n\r\n case 'PropertiesGraphicsText':\r\n const rect = new this.$joint.shapes.standard.Rectangle();\r\n rect.position(item.Left, item.Top);\r\n rect.resize(item.Right - item.Left, item.Bottom - item.Top);\r\n rect.attr({\r\n body: { fillOpacity: 0, rx: 5, ry: 5, strokeWidth: 0, stroke: 'black' },\r\n label: {\r\n textWrap: { text: label, width: -15 }, // Was just text\r\n fill: '#3498DB',\r\n fontSize: 12,\r\n fontWeight: 'normal'\r\n }\r\n });\r\n rect.addTo(graph);\r\n break;\r\n }\r\n }\r\n\r\n // Do the links\r\n for (let i = 0; i < items.length; i++) {\r\n const item = items[i];\r\n if (!item.Links) continue;\r\n\r\n const graph_item = item_ids[item.ID].obj;\r\n\r\n for (let j = 0; j < item.Links.length; j++) {\r\n const target = item_ids[item.Links[j].TargetID].obj;\r\n\r\n const link = new this.$joint.shapes.standard.Link();\r\n link.source(graph_item);\r\n link.target(target);\r\n link.attr('line/stroke', 'blue');\r\n link.attr({\r\n line: {\r\n stroke: 'blue',\r\n strokeWidth: 0.5,\r\n // targetMarker: {\r\n // fill: 'yellow',\r\n // d: 'M 10 0 L 0 5 L 10 10 z'\r\n // }\r\n },\r\n });\r\n if (item.Links[j].Label)\r\n link.appendLabel({\r\n attrs: {\r\n text: {\r\n fill: 'blue',\r\n text: item.Links[j].Label\r\n },\r\n body: {\r\n fill: 'white',\r\n strokeWidth: 0.5,\r\n stroke: 'silver',\r\n }\r\n },\r\n position: {\r\n distance: 0.5,\r\n args: {\r\n keepGradient: true,\r\n ensureLegibility: true\r\n }\r\n }\r\n });\r\n\r\n //link.attr({\r\n // '.connection': { stroke: 'blue' },\r\n // '.marker-target': { fill: 'yellow', d: 'M 10 0 L 0 5 L 10 10 z' }\r\n //});\r\n //link.set('smooth', true);\r\n\r\n link.prop({\r\n Label: item.Links[j].Label,\r\n SourceVar: item.Links[j].SourceVar,\r\n Criteria: item.Links[j].Criteria\r\n });\r\n //link.router('orthogonal');\r\n link.connector('rounded');\r\n link.connector('jumpover', { size: 10 });\r\n\r\n link.addTo(graph);\r\n }\r\n }\r\n },\r\n\r\n getFlowchartObjects() {\r\n const cells = this.graph.getCells();\r\n const objects = [];\r\n\r\n for (let i = 0; i < cells.length; i++) {\r\n let cell = cells[i];\r\n if (cell.attributes.Method) {\r\n let item = {\r\n $type: 'MethodLib.Serialization.PropertiesGraphicsMethod, CompilerCore',\r\n Item: cell.attributes.Method,\r\n Links: [],\r\n ID: cell.attributes.ID,\r\n Label: cell.attributes.attrs.text.text,\r\n LineWidth: 0.5,\r\n ObjectColor: {\r\n R: 30, G: 144, B: 255, A: 255\r\n },\r\n Left: cell.attributes.position.x,\r\n Top: cell.attributes.position.y,\r\n Right: cell.attributes.position.x + cell.attributes.size.width,\r\n Bottom: cell.attributes.position.y + cell.attributes.size.height,\r\n Trace: false,\r\n Break: 0\r\n };\r\n let links = getLinksForId(cell.attributes.id);\r\n for (let j = 0; j < links.length; j++) {\r\n let link = links[j];\r\n let targetCell = this.graph.getCell(link.attributes.target.id);\r\n item.Links.push({\r\n Label: link.attributes.Label,\r\n SourceVar: link.attributes.SourceVar,\r\n Criteria: link.attributes.Criteria,\r\n TargetID: targetCell.attributes.ID\r\n })\r\n }\r\n\r\n // color is in cell.attributes.attrs.rect.fill or stroke\r\n objects.push(item);\r\n }\r\n }\r\n return objects;\r\n },\r\n },\r\n props: {\r\n },\r\n\trender(h) {\r\n\t\t//if (!this.model)\r\n\t\t//\treturn null;\r\n\r\n const style = {\r\n ...this.sizeStyle,\r\n ...utils.resolveStyleHints(this.styleHints, this),\r\n display: 'flex',\r\n flexDirection: 'column',\r\n height: '1px', // needed by flex-grow\r\n };\r\n\r\n return (\r\n \r\n\r\n {this.topMenuBar}\r\n\r\n {this.topArea}\r\n\r\n \r\n \r\n {this.mainArea}\r\n \r\n\r\n \r\n \r\n \r\n
\r\n {this.rightTopArea}\r\n
\r\n
\r\n\r\n \r\n
\r\n {this.rightBottomArea}\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n );\r\n }\r\n});","var render = function render(){var _vm=this,_c=_vm._self._c;return (this.todisplay)?_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(this.isvisible),expression:\"this.isvisible\"}],class:{ 'c-FileDiff': true, [`c-name-${this.name || 'unnamed'}`]: true },style:(_vm.sizeStyle),attrs:{\"id\":_vm.editorId}},[_c('div',{domProps:{\"innerHTML\":_vm._s(_vm.prettyHtml)}})]):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\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/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FileDiff.vue?vue&type=script&lang=js&\"; 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/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FileDiff.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./FileDiff.vue?vue&type=template&id=7d4bd204&\"\nimport script from \"./FileDiff.vue?vue&type=script&lang=js&\"\nexport * from \"./FileDiff.vue?vue&type=script&lang=js&\"\nimport style0 from \"./FileDiff.vue?vue&type=style&index=0&id=7d4bd204&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","import Vue from \"vue\";\r\nimport utils from \"../../Shared/utils.jsx\";\r\nimport BaseComponent from \"./BaseComponentMixin.jsx\";\r\nimport { appSettings } from \"../../Shared/appSettings.js\";\r\n\r\n//import GoogleLogin from 'vue-google-login';\r\n//import { OAuth2Client } from \"@byteowls/capacitor-oauth2\";\r\n\r\n//import GSignInButton from 'vue-google-signin-button'\r\n//Vue.use(GSignInButton)\r\n\r\nVue.component('g-signin-button', {\r\n name: 'g-signin-button',\r\n data: function () {\r\n return {\r\n notready: true,\r\n };\r\n },\r\n render: function render(h) {\r\n //return d('button', { attrs: { class: 'g-signin-button' }, ref: 'signinBtn' }, this.$slots.default)\r\n return (\r\n \r\n );\r\n },\r\n props: {\r\n params: {\r\n type: Object,\r\n required: !0,\r\n default: function _default() { return {} }\r\n }\r\n },\r\n mounted: function mounted() {\r\n var _this = this;\r\n return window.gapi ?\r\n this.params.client_id ?\r\n void window.gapi.load('auth2', function () {\r\n var d = window.gapi.auth2.init(_this.params);\r\n\r\n _this.notready = false;\r\n\r\n d.attachClickHandler(_this.$refs.signinBtn, {}, function (e) {\r\n _this.$emit('success', e)\r\n },\r\n function (e) {\r\n _this.$emit('error', e), _this.$emit('failure', e)\r\n })\r\n }) :\r\n void a('params.client_id must be specified.') :\r\n void a('\"https://apis.google.com/js/api:client.js\" needs to be included as a \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/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LineChart.vue?vue&type=script&lang=js&\"; 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/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LineChart.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./LineChart.vue?vue&type=template&id=3ec37e7f&scoped=true&v-if=todisplay&\"\nimport script from \"./LineChart.vue?vue&type=script&lang=js&\"\nexport * from \"./LineChart.vue?vue&type=script&lang=js&\"\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 \"3ec37e7f\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return (this.todisplay)?_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(this.isvisible),expression:\"this.isvisible\"}],class:{ 'c-MediaApproval': true, [`c-name-${this.name || 'unnamed'}`]: true },style:(_vm.sizeStyles)},[(_vm.deviceStatus === 2)?_c('v-card',{staticClass:\"ma-2\",attrs:{\"dark\":\"\",\"color\":_vm.color}},[_c('v-card-text',[_c('translation-container',{attrs:{\"context\":_vm.context,\"value\":_vm.Translate('Please click')}}),_c('v-btn',{attrs:{\"elevation\":\"0\",\"primary\":\"\",\"text\":\"\"},on:{\"click\":function($event){return _vm.checkForAccess()}}},[_c('translation-container',{attrs:{\"context\":_vm.context,\"value\":_vm.Translate('here')}})],1),_c('translation-container',{attrs:{\"context\":_vm.context,\"value\":_vm.Translate('to bring up the approval window.')}})],1)],1):_c('v-alert',{staticClass:\"mb-3\",attrs:{\"dark\":\"\",\"text\":\"\",\"color\":_vm.color}},[_c('template',{slot:\"prepend\"},[_c('v-icon',{staticClass:\"mr-4\",attrs:{\"color\":_vm.color}},[_vm._v(\" \"+_vm._s(_vm.icon)+\" \")])],1),_c('v-card-text',[_c('translation-container',{attrs:{\"context\":_vm.context,\"value\":_vm.message}}),(_vm.deviceStatus === 4)?_c('span',[_vm._v(_vm._s(this.deviceMessage))]):_vm._e()],1)],2)],1):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\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/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MediaApproval.vue?vue&type=script&lang=js&\"; 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/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MediaApproval.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./MediaApproval.vue?vue&type=template&id=03e76907&scoped=true&\"\nimport script from \"./MediaApproval.vue?vue&type=script&lang=js&\"\nexport * from \"./MediaApproval.vue?vue&type=script&lang=js&\"\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 \"03e76907\",\n null\n \n)\n\nexport default component.exports","import Vue from 'vue';\r\nimport BaseComponent from './BaseComponentMixin.jsx';\r\nimport EventBus from '../event-bus.js';\r\nimport utils from '@/Shared/utils';\r\n\r\nimport JointPaper from './vuecontrols/JointPaper';\r\nimport { Splitpanes, Pane } from 'splitpanes';\r\n\r\nfunction toHex(n) {\r\n n = parseInt(n, 10);\r\n if (isNaN(n)) return \"00\";\r\n n = Math.max(0, Math.min(n, 255));\r\n return \"0123456789ABCDEF\".charAt((n - n % 16) / 16)\r\n + \"0123456789ABCDEF\".charAt(n % 16);\r\n}\r\n\r\nfunction rgbToHex(R, G, B) {\r\n return toHex(R) + toHex(G) + toHex(B)\r\n}\r\n\r\nconst getCircularReplacer = () => {\r\n const seen = new WeakSet();\r\n return (key, value) => {\r\n if (typeof value === \"object\" && value !== null) {\r\n if (seen.has(value)) {\r\n return;\r\n }\r\n seen.add(value);\r\n }\r\n return value;\r\n };\r\n};\r\n\r\nconst port_defs_start = {\r\n position: {\r\n name: 'right'\r\n },\r\n attrs: {\r\n portBody: {\r\n magnet: true,\r\n r: 10,\r\n fill: '#E6A502',\r\n stroke: '#023047'\r\n }\r\n },\r\n label: {\r\n position: {\r\n name: 'right',\r\n args: { y: 12 }\r\n },\r\n markup: [{\r\n tagName: 'text',\r\n selector: 'label',\r\n className: 'label-text'\r\n }]\r\n },\r\n markup: [{\r\n tagName: 'circle',\r\n selector: 'portBody'\r\n }]\r\n};\r\n\r\nconst port_defs_mediumfont = {\r\n position: {\r\n name: 'bottom'\r\n },\r\n attrs: {\r\n portBody: {\r\n magnet: true,\r\n r: 10,\r\n fill: '#E6A502',\r\n stroke: '#023047',\r\n strokeWidth: 0.5,\r\n }\r\n },\r\n label: {\r\n position: {\r\n name: 'bottom',\r\n args: { y: 12 }\r\n },\r\n markup: [{\r\n tagName: 'text',\r\n selector: 'label',\r\n className: 'label-text-medium'\r\n }]\r\n },\r\n markup: [{\r\n tagName: 'circle',\r\n selector: 'portBody'\r\n }]\r\n};\r\n\r\nconst port_defs_smallfont = {\r\n position: {\r\n name: 'bottom'\r\n },\r\n attrs: {\r\n portBody: {\r\n magnet: true,\r\n r: 10,\r\n fill: '#E6A502',\r\n stroke: '#023047',\r\n strokeWidth: 0.5,\r\n }\r\n },\r\n label: {\r\n position: {\r\n name: 'bottom',\r\n args: { y: 12 }\r\n },\r\n markup: [{\r\n tagName: 'text',\r\n selector: 'label',\r\n className: 'label-text'\r\n }]\r\n },\r\n markup: [{\r\n tagName: 'circle',\r\n selector: 'portBody'\r\n }]\r\n};\r\n\r\nconst DEF_W = 140;\r\nconst DEF_H = 80;\r\n\r\nconst DEF_X_SPACE = 260;\r\nconst DEF_Y_SPACE = 180;\r\n\r\nVue.component('menu-flow-chart', {\r\n mixins: [BaseComponent],\r\n components: {\r\n JointPaper,\r\n Splitpanes,\r\n Pane,\r\n },\r\n data: function () {\r\n return {\r\n ref_name: null,\r\n show_flypaper: false,\r\n fly_x: 0,\r\n fly_y: 0,\r\n\r\n projectID: null,\r\n projectName: null,\r\n\r\n file_menu_is_open: false,\r\n\r\n dialog_visible: false,\r\n dialog_width: '600',\r\n dialog_content: null,\r\n\r\n next_id: 1,\r\n selected_menu: -1,\r\n selected_tab: 0,\r\n loading: true,\r\n\r\n\t\t\tbackground: {\r\n\t\t\t\tcolor: '#ffffff'\r\n\t\t\t},\r\n\t\t\tgridSize: 1,\r\n\t\t\tdrawGrid: false,\r\n model: null,\r\n environment: {\r\n ToolPalette: [\r\n \"Greeting\",\r\n \"Menu\",\r\n \"Enqueue\",\r\n \"Announcement\",\r\n \"DialByName\",\r\n \"RingAll\",\r\n \"HuntGroup\",\r\n \"TransferExtension\",\r\n \"TransferUser\",\r\n \"TransferExternal\",\r\n \"Voicemail\",\r\n \"Custom\",\r\n \"API\",\r\n \"TrueOrFalse\",\r\n \"SetValue\",\r\n \"Hangup\"\r\n ]\r\n },\r\n\r\n tabs: [],\r\n\r\n closing_tab: -1,\r\n\r\n internal_apis: {},\r\n properties_schema: null,\r\n properties_object: null,\r\n\r\n // documents\r\n greeting_docs: {},\r\n menu_docs: {},\r\n flow_icons: {},\r\n\r\n // graph items\r\n greetings: {},\r\n menus: {},\r\n\r\n selection: {\r\n active: false,\r\n start: { x: 0, y: 0 },\r\n end: { x: 0, y: 0 },\r\n items: [],\r\n }\r\n }\r\n\t},\r\n created() {\r\n this.ref_name = utils.generateUUID();\r\n\r\n if (this.controlData.FlowChartID)\r\n this.IDexpn = utils.compileObject(this, this.controlData.FlowChartID);\r\n\r\n if (this.controlData.EnvironmentID)\r\n this.envIDexpn = utils.compileObject(this, this.controlData.EnvironmentID);\r\n\r\n if (this.controlData.ReadOnlyExpression)\r\n this.readonlyexpn = utils.compileExpression(this, this.controlData.ReadOnlyExpression);\r\n },\r\n //Mounted Replaced with preRenderComplete\r\n computed: {\r\n InitialFlowChartID: function () {\r\n return this.IDexpn ? utils.evaluate(this.IDexpn, this) : false;\r\n },\r\n EnvironmentID: function () {\r\n return this.envIDexpn ? utils.evaluate(this.envIDexpn, this) : false;\r\n },\r\n readonly: function () {\r\n return this.readonlyexpn ? utils.evaluate(this.readonlyexpn, this) : false;\r\n },\r\n\r\n toolBar: function () {\r\n const h = this.$createElement;\r\n\r\n let loading;\r\n if (this.loading)\r\n loading = (\r\n \r\n );\r\n\r\n return (\r\n
\r\n {loading}\r\n
\r\n
\r\n
\r\n );\r\n },\r\n mainTabbedArea: function () {\r\n const h = this.$createElement;\r\n\r\n const content = (\r\n this.setupGraph(graph, paper)}>\r\n \r\n );\r\n\r\n const tab_titles = [];\r\n const tab_body = [];\r\n\r\n tab_titles.push(\r\n \r\n Flowchart\r\n \r\n );\r\n\r\n tab_body.push(\r\n \r\n
\r\n {content}\r\n
\r\n
\r\n );\r\n\r\n return ([\r\n \r\n {tab_titles}\r\n \r\n ,\r\n \r\n {tab_body}\r\n \r\n ]);\r\n },\r\n toolPalette: function () {\r\n const h = this.$createElement;\r\n\r\n return (\r\n
\r\n this.setupPalette(graph, paper)}>\r\n \r\n
\r\n );\r\n },\r\n properties: function () {\r\n const h = this.$createElement;\r\n\r\n if (!this.properties_schema)\r\n return Nothing selected;\r\n\r\n return (\r\n \r\n \r\n );\r\n },\r\n\r\n topArea: function () {\r\n return this.toolBar;\r\n },\r\n mainArea: function () {\r\n return this.mainTabbedArea;\r\n },\r\n rightTopArea: function () {\r\n return this.toolPalette;\r\n },\r\n rightBottomArea: function () {\r\n return this.properties;\r\n },\r\n\r\n recentsMenu: function () {\r\n const h = this.$createElement;\r\n\r\n return [\r\n { this.file_menu_is_open = false; }}>\r\n \r\n \r\n Last item 1\r\n \r\n \r\n ,\r\n\r\n { this.file_menu_is_open = false; }}>\r\n \r\n \r\n Last item 2\r\n \r\n \r\n \r\n ];\r\n },\r\n fileMenu: function () {\r\n const h = this.$createElement;\r\n\r\n return [\r\n { this.file_menu_is_open = false; this.graph.clear(); }}>\r\n \r\n mdi-plus\r\n \r\n\r\n \r\n \r\n New\r\n \r\n \r\n ,\r\n\r\n { this.file_menu_is_open = false; }}>\r\n \r\n mdi-folder-open\r\n \r\n\r\n \r\n \r\n Open\r\n \r\n \r\n ,\r\n\r\n ,\r\n\r\n { this.file_menu_is_open = false; this.save(); }}>\r\n \r\n mdi-content-save\r\n \r\n\r\n \r\n \r\n Save\r\n \r\n \r\n ,\r\n\r\n { this.file_menu_is_open = false; this.saveAs(); }}>\r\n \r\n mdi-content-save-add\r\n \r\n\r\n \r\n \r\n Save As...\r\n \r\n \r\n ,\r\n\r\n ,\r\n\r\n \r\n \r\n \r\n\r\n \r\n\r\n \r\n \r\n Recent\r\n \r\n \r\n\r\n \r\n mdi-menu-right\r\n \r\n \r\n }}\r\n >\r\n \r\n \r\n {this.recentsMenu}\r\n \r\n \r\n ,\r\n\r\n ,\r\n\r\n { this.file_menu_is_open = false; }}>\r\n \r\n mdi-close-box-outline\r\n \r\n\r\n \r\n \r\n Close\r\n \r\n \r\n ,\r\n ];\r\n },\r\n viewMenu: function () {\r\n const h = this.$createElement;\r\n\r\n return [\r\n { this.loadFlowchart(this.graph, this.paper); }}>\r\n \r\n mdi-refresh\r\n \r\n\r\n \r\n \r\n Refresh\r\n \r\n \r\n \r\n ];\r\n },\r\n topMenuBar: function () {\r\n const h = this.$createElement;\r\n\r\n const title = this.projectName || 'Unnamed Project';\r\n\r\n //\r\n return (\r\n
\r\n this.file_menu_is_open = value}\r\n scopedSlots={{\r\n activator: ({ on, attrs }) =>\r\n \r\n File\r\n \r\n }}\r\n >\r\n \r\n this.selected_menu--}>\r\n {this.fileMenu}\r\n \r\n \r\n \r\n\r\n \r\n \r\n View\r\n \r\n }}\r\n >\r\n \r\n this.selected_menu--}>\r\n {this.viewMenu}\r\n \r\n \r\n \r\n
\r\n );\r\n },\r\n\r\n flypaper: function () {\r\n const h = this.$createElement;\r\n\r\n let flypaper;\r\n if (this.show_flypaper) {\r\n const style = {\r\n position: \"fixed\",\r\n zIndex: \"999\",\r\n opacity: \".7\",\r\n pointerEvent: \"none\",\r\n left: `${this.fly_x}px`,\r\n top: `${this.fly_y}px`,\r\n maxWidth: `${DEF_W}px`,\r\n maxHeight: `${DEF_H}px`,\r\n };\r\n flypaper =
;\r\n }\r\n\r\n return flypaper;\r\n },\r\n },\r\n methods: {\r\n preRenderComplete() {\r\n this.finishRenderHandler(this);\r\n this.Refresh();\r\n },\r\n async Refresh() {\r\n let id = this.InitialFlowChartID;\r\n let env = this.EnvironmentID;\r\n\r\n if (!id && this.Query('id'))\r\n id = this.Query('id');\r\n\r\n // Load the flowchart\r\n if (id)\r\n this.model = await utils.api.get(`Apps/Platform/Schema/FlowWidgets/v1/FlowChart?ID=${id}`);\r\n\r\n // Load the environment settings which includes the tools to be included in the tool palette\r\n if (env)\r\n this.environment = await utils.api.get(`Apps/Platform/Schema/FlowWidgets/v1/EnvironmentSettings?ID=${env}`);\r\n\r\n // Get the definitions for all the tool palette tools\r\n const tools = await utils.api.get(`Apps/Platform/Schema/FlowWidgets/v1/ToolDefinition/ListByTypeName`)\r\n\r\n this.tooldefinitions = {};\r\n\r\n // Store the tool definitions into an object keyed on the tool TypeName\r\n for (let i = 0; i < tools.length; i++) {\r\n const tool = tools[i];\r\n this.tooldefinitions[tool.TypeName] = tool;\r\n this.prepareTool(tool);\r\n }\r\n\r\n if (this.model) {\r\n this.projectID = this.model.ID;\r\n this.projectName = this.model.Name;\r\n }\r\n\r\n this.loading = false;\r\n },\r\n\r\n log(obj) {\r\n console.log(JSON.stringify(obj, getCircularReplacer(), 4))\r\n },\r\n\r\n blank_pointerdown(evt, x, y) {\r\n if (this.selected)\r\n this.selected.unhighlight(this.selected.el);\r\n\r\n this.selected = null;\r\n this.properties_schema = null;\r\n this.properties_object = null;\r\n\r\n //if (this.$menu_watch) {\r\n // this.$menu_watch(); // Dispose of the previous watch\r\n //}\r\n if (this.$active_watches) {\r\n for (let w of this.$active_watches) w();\r\n this.$active_watches = [];\r\n }\r\n\r\n // Unhighlight previous selection\r\n if (this.selection.items.length > 0) {\r\n for (let i = 0; i < this.selection.items.length; i++) {\r\n const item = this.selection.items[i];\r\n this.$joint.highlighters.mask.remove(item.findView(this.paper));\r\n }\r\n this.selection.items = [];\r\n }\r\n\r\n this.selection.active = true;\r\n this.selection.shape = new this.$joint.shapes.standard.Rectangle();\r\n\r\n this.selection.offset = { x: evt.pageX - x, y: evt.pageY - y };\r\n this.selection.start = { x: x, y: y };\r\n this.selection.end = { x: x, y: y };\r\n\r\n this.selection.shape.position(x, y);\r\n this.selection.shape.resize(1, 1);\r\n this.selection.shape.attr({\r\n body: {\r\n fillOpacity: '0',\r\n stroke: '#cf4040',\r\n strokeWidth: 0.5,\r\n strokeDasharray: \"5,5\",\r\n },\r\n label: {\r\n text: ''\r\n }\r\n });\r\n this.selection.shape.addTo(this.graph);\r\n\r\n document.body.addEventListener('mousemove', this.onSelectionMouseMove);\r\n document.body.addEventListener('mouseup', this.onSelectionMouseUp);\r\n },\r\n\r\n onSelectionMouseMove(evt) {\r\n if (this.selection.active) {\r\n this.selection.end = {\r\n x: evt.pageX - this.selection.offset.x,\r\n y: evt.pageY - this.selection.offset.y\r\n };\r\n\r\n this.selection.shape.resize(\r\n this.selection.end.x - this.selection.start.x,\r\n this.selection.end.y - this.selection.start.y\r\n );\r\n }\r\n },\r\n onSelectionMouseUp(evt) {\r\n this.selection.active = false;\r\n this.selection.shape.remove();\r\n\r\n document.body.removeEventListener('mousemove', this.onSelectionMouseMove);\r\n document.body.removeEventListener('mouseup', this.onSelectionMouseUp);\r\n\r\n // From the bounding box, find all shapes within\r\n const list = this.graph.findModelsInArea({\r\n x: this.selection.start.x,\r\n y: this.selection.start.y,\r\n width: this.selection.end.x - this.selection.start.x,\r\n height: this.selection.end.y - this.selection.start.y,\r\n });\r\n this.selection.items = this.selection.items.concat(list);\r\n\r\n for (let i = 0; i < list.length; i++) {\r\n const item = list[i];\r\n const elementView = item.findView(this.paper);\r\n\r\n this.$joint.highlighters.mask.add(elementView, { selector: 'root' }, 'element-highlight', {\r\n deep: true,\r\n attrs: {\r\n 'stroke': '#FF4365',\r\n 'stroke-width': 3\r\n }\r\n });\r\n }\r\n },\r\n\r\n onMultiselectMouseMove(evt) {\r\n const delta = {\r\n x: evt.pageX - this.selection.offset.x,\r\n y: evt.pageY - this.selection.offset.y,\r\n }\r\n this.selection.offset = { x: evt.pageX, y: evt.pageY };\r\n\r\n for (let i = 0; i < this.selection.items.length; i++) {\r\n const item = this.selection.items[i];\r\n if (item != this.selected.model)\r\n item.translate(delta.x, delta.y);\r\n }\r\n },\r\n onMultiselectMouseUp(evt) {\r\n document.body.removeEventListener('mousemove', this.onMultiselectMouseMove);\r\n document.body.removeEventListener('mouseup', this.onMultiselectMouseUp);\r\n },\r\n\r\n async cell_pointerdown(cellView, evt, x, y) {\r\n if (this.selected)\r\n this.selected.unhighlight(this.selected.el);\r\n\r\n cellView.highlight(cellView.el);\r\n this.selected = cellView;\r\n\r\n // Unhighlight previous selection if the currently clicked on item is not in the selection list\r\n if (this.selection.items.length > 0 && !this.selection.items.find(a => a == cellView.model)) {\r\n for (let i = 0; i < this.selection.items.length; i++) {\r\n const item = this.selection.items[i];\r\n this.$joint.highlighters.mask.remove(item.findView(this.paper));\r\n }\r\n this.selection.items = [];\r\n }\r\n\r\n if (this.selection.items.length > 0) {\r\n // Prepare to move all items in selection\r\n this.selection.offset = { x: evt.pageX, y: evt.pageY };\r\n this.selection.start = { x: x, y: y };\r\n\r\n document.body.addEventListener('mousemove', this.onMultiselectMouseMove);\r\n document.body.addEventListener('mouseup', this.onMultiselectMouseUp);\r\n }\r\n\r\n let s;\r\n if (typeof cellView.model.attributes.Schema === 'string')\r\n s = await utils.schema.get(cellView.model.attributes.Schema, true);\r\n else if (typeof cellView.model.attributes.Schema === 'object')\r\n s = cellView.model.attributes.Schema;\r\n\r\n this.properties_schema = s;\r\n if (typeof cellView.model.attributes.Model === 'function')\r\n this.properties_object = cellView.model.attributes.Model();\r\n\r\n //if (this.$menu_watch) {\r\n // this.$menu_watch(); // Dispose of the previous watch\r\n //}\r\n\r\n if (this.$active_watches) {\r\n for (let w of this.$active_watches) w();\r\n this.$active_watches = [];\r\n }\r\n\r\n //if (cellView.model.attributes.Type == 'Menu')\r\n // this.$menu_watch = this.watchMenu(cellView.model, this.properties_object);\r\n //else if (cellView.model.attributes.Type == 'Greeting')\r\n // this.$menu_watch = this.watchGreeting(cellView.model, this.properties_object);\r\n //else if (cellView.model.attributes.Type == 'Enqueue')\r\n // this.$menu_watch = this.watchEnqueue(cellView.model, this.properties_object);\r\n //else\r\n this.$active_watches = this.watchAnyLabel(cellView.model, this.properties_object);\r\n },\r\n cell_pointerup(cellView, evt, x, y) {\r\n if (this.changed) {\r\n // After movement, we rebuild all the objects (maybe we now have more options)\r\n }\r\n\r\n if (typeof cellView.model.attributes.Model === 'function') {\r\n const m = cellView.model.attributes.Model();\r\n m.x = cellView.model.attributes.position.x;\r\n m.y = cellView.model.attributes.position.y;\r\n m.w = cellView.model.attributes.size.width;\r\n m.h = cellView.model.attributes.size.height;\r\n }\r\n\r\n this.changed = false;\r\n },\r\n cell_pointerdblclick(cellView, evt, x, y) {\r\n const method = cellView.model.attributes.Method;\r\n //const model = this.getMethodModel(method);\r\n \r\n },\r\n\r\n onMouseMove(evt) {\r\n this.fly_x = evt.pageX - this.offset.x;\r\n this.fly_y = evt.pageY - this.offset.y;\r\n },\r\n onMouseUp(evt) {\r\n const x = evt.pageX;\r\n const y = evt.pageY;\r\n const target = this.paper.$el.offset();\r\n\r\n // Dropped over paper ?\r\n if (x > target.left && x < target.left + this.paper.$el.width() && y > target.top && y < target.top + this.paper.$el.height()) {\r\n const s = this.flyShape.clone();\r\n this.dropShape(s, x - target.left - this.offset.x, y - target.top - this.offset.y);\r\n }\r\n\r\n document.body.removeEventListener('mousemove', this.onMouseMove);\r\n document.body.removeEventListener('mouseup', this.onMouseUp);\r\n this.flyShape.remove();\r\n this.flyShape = null;\r\n this.show_flypaper = false;\r\n },\r\n palette_pointerdown(cellView, evt, x, y) {\r\n this.show_flypaper = true;\r\n\r\n Vue.nextTick(() => {\r\n const flyGraph = new this.$joint.dia.Graph();\r\n const flyPaper = new this.$joint.dia.Paper({\r\n el: this.$refs[this.ref_name],\r\n model: flyGraph,\r\n interactive: false\r\n });\r\n this.flyShape = cellView.model.clone();\r\n const pos = cellView.model.position();\r\n this.offset = {\r\n x: x - pos.x,\r\n y: y - pos.y\r\n };\r\n\r\n this.flyShape.position(0, 0);\r\n flyGraph.addCell(this.flyShape);\r\n\r\n this.fly_x = evt.pageX - this.offset.x;\r\n this.fly_y = evt.pageY - this.offset.y;\r\n\r\n document.body.addEventListener('mousemove', this.onMouseMove);\r\n document.body.addEventListener('mouseup', this.onMouseUp);\r\n\r\n });\r\n \r\n /*\r\n $('body').append('
');\r\n var flyGraph = new joint.dia.Graph,\r\n flyPaper = new joint.dia.Paper({\r\n el: $('#flyPaper'),\r\n model: flyGraph,\r\n interactive: false\r\n }),\r\n flyShape = cellView.model.clone(),\r\n pos = cellView.model.position(),\r\n offset = {\r\n x: x - pos.x,\r\n y: y - pos.y\r\n };\r\n\r\n flyShape.position(0, 0);\r\n flyGraph.addCell(flyShape);\r\n $(\"#flyPaper\").offset({\r\n left: e.pageX - offset.x,\r\n top: e.pageY - offset.y\r\n });\r\n $('body').on('mousemove.fly', function (e) {\r\n $(\"#flyPaper\").offset({\r\n left: e.pageX - offset.x,\r\n top: e.pageY - offset.y\r\n });\r\n });\r\n $('body').on('mouseup.fly', function (e) {\r\n var x = e.pageX,\r\n y = e.pageY,\r\n target = paper.$el.offset();\r\n\r\n // Dropped over paper ?\r\n if (x > target.left && x < target.left + paper.$el.width() && y > target.top && y < target.top + paper.$el.height()) {\r\n var s = flyShape.clone();\r\n s.position(x - target.left - offset.x, y - target.top - offset.y);\r\n graph.addCell(s);\r\n }\r\n $('body').off('mousemove.fly').off('mouseup.fly');\r\n flyShape.remove();\r\n $('#flyPaper').remove();\r\n });\r\n */\r\n },\r\n\r\n async dropShape(shape, x, y) {\r\n // s.attributes.Schema -> resolve and get default model for\r\n // s.attributes.Model -> assign to above generated model\r\n\r\n let schema = shape.attributes.Schema;\r\n if (typeof schema === 'string') {\r\n schema = await utils.schema.get(schema, true);\r\n }\r\n const m = utils.schema.getDefaultModel(schema);\r\n m.Name = 'Unnamed';\r\n m.x = x; m.y = y;\r\n m.w = DEF_W; m.h = DEF_H;\r\n\r\n shape.prop({ Model: () => m });\r\n shape.position(x, y);\r\n this.graph.addCell(shape);\r\n\r\n //Vue.set(this.menu_docs, m.Name, m);\r\n Vue.set(this.flow_icons, shape.id, m); // To ensure Vue makes the model reactive\r\n\r\n const tool = this.tooldefinitions[shape.attributes.Type];\r\n if (!tool || !tool.Ports || tool.Ports.length < 1 || tool.PortGroup == 'none')\r\n return;\r\n\r\n this.prepareTool(tool);\r\n\r\n this.setupGenericWidgetPorts(shape, tool, m);\r\n },\r\n\r\n async getSchemaForCLRType(type) {\r\n switch (type) {\r\n case 'string':\r\n case 'System.String':\r\n return {\r\n type: 'string',\r\n };\r\n case 'bool':\r\n case 'System.Boolean':\r\n return {\r\n type: 'boolean',\r\n };\r\n case 'float':\r\n case 'double':\r\n case 'System.Float':\r\n case 'System.Double':\r\n return {\r\n type: 'number',\r\n };\r\n case 'int':\r\n case 'long':\r\n case 'System.Int16':\r\n case 'System.Int32':\r\n case 'System.Int64':\r\n return {\r\n type: 'integer',\r\n };\r\n case 'object':\r\n case 'CompilerCore.Evaluators.JsonObj':\r\n return {\r\n type: 'object',\r\n };\r\n case 'DateTime':\r\n case 'System.DateTime':\r\n return {\r\n type: 'string',\r\n format: 'date-time',\r\n };\r\n\r\n default:\r\n return await utils.api.get(`Apps/WebFlowHelpers/GetIconSchema?Type=${encodeURIComponent(type)}`);\r\n }\r\n },\r\n async getSchemaForUserType(ownerid, type, projectName) {\r\n return { type: 'object', properties: {} };\r\n },\r\n\r\n setupGraph(graph, paper) {\r\n const c = this;\r\n this.graph = graph;\r\n this.paper = paper;\r\n\r\n const removeButton = new this.$joint.linkTools.Remove();\r\n const targetArrowheadTool = new this.$joint.linkTools.TargetArrowhead({\r\n focusOpacity: 0.5\r\n });\r\n\r\n const linktoolsView = new this.$joint.dia.ToolsView({\r\n tools: [removeButton, targetArrowheadTool ]\r\n });\r\n\r\n const e_boundaryTool = new this.$joint.elementTools.Boundary();\r\n const e_removeButton = new this.$joint.elementTools.Remove({ x: '50%', y: '0' });\r\n\r\n const elementtoolsView = new this.$joint.dia.ToolsView({\r\n tools: [ e_boundaryTool, e_removeButton ]\r\n });\r\n\r\n const e_boundaryTool2 = new this.$joint.elementTools.Boundary();\r\n const e_removeButton2 = new this.$joint.elementTools.Remove({ x: '50%', y: '0' });\r\n const e_enqueueButton = new this.$joint.elementTools.Button({\r\n markup: [{\r\n tagName: 'circle',\r\n selector: 'button',\r\n title: 'markup title',\r\n attributes: {\r\n 'r': 14,\r\n 'fill': '#001DFF',\r\n 'cursor': 'pointer',\r\n \r\n }\r\n }, {\r\n tagName: 'path',\r\n selector: 'icon',\r\n title: 'attribute title',\r\n attributes: {\r\n 'd': 'M -2 4 2 4 M 0 3 0 0 M -2 -1 1 -1 M -1 -4 1 -4',\r\n 'transform': 'scale(1.5)',\r\n 'fill': 'none',\r\n 'stroke': '#FFFFFF',\r\n 'stroke-width': 2,\r\n 'pointer-events': 'none',\r\n }\r\n }],\r\n x: '20%',\r\n y: '20%',\r\n title: 'base title',\r\n offset: {\r\n x: 0,\r\n y: 0\r\n },\r\n rotate: true,\r\n action: function (evt, elementView) {\r\n const q = elementView.model.attributes.Model();\r\n \r\n utils.executeAndCompileAllActions(c.controlData.NavigateQueueActions, { Data: q }, c);\r\n }\r\n });\r\n\r\n const enqueuetoolsView = new this.$joint.dia.ToolsView({\r\n tools: [e_boundaryTool2, e_removeButton2, e_enqueueButton]\r\n });\r\n\r\n //const e_boundaryTool2 = new this.$joint.elementTools.Boundary();\r\n //const e_removeButton2 = new this.$joint.elementTools.Remove({ x: '50%', y: '0' });\r\n\r\n //const entryButton = new this.$joint.elementTools.Button({\r\n // markup: [{\r\n // tagName: 'circle',\r\n // selector: 'button',\r\n // attributes: {\r\n // 'r': 7,\r\n // 'fill': '#001DFF',\r\n // 'cursor': 'pointer'\r\n // }\r\n // }, {\r\n // tagName: 'path',\r\n // selector: 'icon',\r\n // attributes: {\r\n // 'd': 'M -2 4 2 4 M 0 3 0 0 M -2 -1 1 -1 M -1 -4 1 -4',\r\n // 'fill': 'none',\r\n // 'stroke': '#FFFFFF',\r\n // 'stroke-width': 2,\r\n // 'pointer-events': 'none'\r\n // }\r\n // }],\r\n // x: '100%',\r\n // y: '100%',\r\n // offset: {\r\n // x: 0,\r\n // y: 0\r\n // },\r\n // rotate: true,\r\n // action: function (evt) {\r\n // alert('This is the entry point for the flowchart!');\r\n // }\r\n //});\r\n //const elementStartToolsView = new this.$joint.dia.ToolsView({\r\n // tools: [entryButton, e_boundaryTool2, e_removeButton2]\r\n //});\r\n\r\n\r\n if (!this.readonly) {\r\n paper.on('link:mouseenter', function (linkView) {\r\n linkView.addTools(linktoolsView);\r\n });\r\n\r\n paper.on('link:mouseleave', function (linkView) {\r\n linkView.removeTools();\r\n });\r\n\r\n paper.on('element:mouseenter', function (elementView) {\r\n switch (elementView.model.attributes.Type) {\r\n case 'Enqueue':\r\n elementView.addTools(enqueuetoolsView);\r\n break;\r\n\r\n default:\r\n elementView.addTools(elementtoolsView);\r\n break;\r\n }\r\n });\r\n\r\n paper.on('element:mouseleave', function (elementView) {\r\n elementView.removeTools();\r\n });\r\n }\r\n\r\n paper.on('blank:pointerdown', this.blank_pointerdown);\r\n\r\n paper.on('cell:pointerdown', this.cell_pointerdown);\r\n paper.on('cell:pointerup', this.cell_pointerup);\r\n paper.on('cell:pointerdblclick', this.cell_pointerdblclick);\r\n\r\n graph.on('change:position change:size change:source change:target change:vertices add remove', function (cell) {\r\n c.changed = true;\r\n });\r\n\r\n this.loadFlowchart2(graph, paper);\r\n },\r\n setupPalette(graph, paper) {\r\n const c = this;\r\n this.graph_palette = graph;\r\n this.paper_palette = paper;\r\n\r\n let x = 10;\r\n let y = 10;\r\n for (let i = 0; i < this.environment.ToolPalette.length; i++) {\r\n const toolName = this.environment.ToolPalette[i];\r\n const tool = this.tooldefinitions[toolName];\r\n //const func = `add${tool}Widget`;\r\n\r\n if (i % 3 == 0) {\r\n x = 10;\r\n if (i >= 3)\r\n y += DEF_H + 10;\r\n }\r\n\r\n this.addGenericWidget(graph, paper, toolName, tool.Tooltip, x, y, DEF_W, DEF_H)\r\n //this[func](graph, paper, tool, x, y, DEF_W, DEF_H);\r\n\r\n x += DEF_W + 10;\r\n }\r\n /*\r\n this.addGreetingWidget(graph, paper, 'Greeting', 10, 10, DEF_W, DEF_H);\r\n this.addMenuWidget(graph, paper, 'Menu', 10 + DEF_W + 10, 10, DEF_W, DEF_H);\r\n this.addEnqueueWidget(graph, paper, 'Enqueue', 10 + DEF_W + DEF_W + 10 + 10, 10, DEF_W, DEF_H);\r\n\r\n this.addDialByNameWidget(graph, paper, 'Dial-by-Name', 10, 10 + DEF_H + 10, DEF_W, DEF_H);\r\n this.addRingAllWidget(graph, paper, 'Ring-All', 10 + DEF_W + 10, 10 + DEF_H + 10, DEF_W, DEF_H);\r\n this.addTransferExternalWidget(graph, paper, 'Transfer External', 10 + DEF_W + DEF_W + 10 + 10, 10 + DEF_H + 10, DEF_W, DEF_H);\r\n\r\n this.addCustomWidget(graph, paper, 'Custom Flow', 10, 10 + 2*DEF_H + 2*10, DEF_W, DEF_H);\r\n this.addVoicemailWidget(graph, paper, 'Voicemail', 10 + DEF_W + 10, 10 + 2 * DEF_H + 2 * 10, DEF_W, DEF_H);\r\n this.addAPIWidget(graph, paper, 'API', 10 + DEF_W + DEF_W + 10 + 10, 10 + 2 * DEF_H + 2 * 10, DEF_W, DEF_H);\r\n\r\n this.addTrueOrFalseWidget(graph, paper, 'True/False', 10, 10 + 3 * DEF_H + 3 * 10, DEF_W, DEF_H);\r\n this.addHangupWidget(graph, paper, 'Hang Up', 10 + DEF_W + 10, 10 + 3 * DEF_H + 3 * 10, DEF_W, DEF_H);\r\n this.addAnnouncementWidget(graph, paper, 'Announce', 10 + DEF_W + DEF_W + 10 + 10, 10 + 3 * DEF_H + 3 * 10, DEF_W, DEF_H);\r\n\r\n this.addStartHereWidget(graph, paper, 'Start', 10, 10 + 4 * DEF_H + 4 * 10, 2 * DEF_W / 3, DEF_H);\r\n this.addPhoneWidget(graph, paper, 'Phone', 10 + DEF_W + 10, 10 + 4 * DEF_H + 4 * 10, 2 * DEF_W / 3, DEF_H);\r\n */\r\n paper.on('cell:pointerdown', this.palette_pointerdown);\r\n },\r\n\r\n //// New FlowWidgets 2.0 ////\r\n\r\n linkItems(graph, paper, m1, target, port) {\r\n const src = m1.attributes.ports.items.find(p => p.attrs.label.text == port);\r\n const src_port = {\r\n id: m1.id,\r\n magnet: 'portBody',\r\n port: src.id,\r\n };\r\n this.addLink(graph, paper, src_port, target, port);\r\n },\r\n\r\n async loadFlowchart2(graph, paper) {\r\n graph.clear();\r\n\r\n // Clear references to pre-existing graph items\r\n this.greetings = {};\r\n this.menus = {};\r\n\r\n if (!this.model)\r\n return;\r\n\r\n const idlookup = {};\r\n const lookupid = {};\r\n\r\n // Step 1. Add all icons to the graph\r\n for (let i = 0; i < this.model.Graph.length; i++) {\r\n const item = this.model.Graph[i];\r\n let m1 = this.addGenericWidget(graph, paper, item.Type, item.Model, item.Model.x, item.Model.y, item.Model.w, item.Model.h);\r\n if (!m1)\r\n continue;\r\n\r\n idlookup[m1.id] = item;\r\n lookupid[item.Id] = m1;\r\n }\r\n\r\n // Step 2. Add links between icons\r\n for (let i = 0; i < this.model.Graph.length; i++) {\r\n const item = this.model.Graph[i];\r\n\r\n // Locate the newly created shape for this item\r\n const m1 = lookupid[item.Id];\r\n const tool = this.tooldefinitions[item.Type];\r\n if (!tool || !tool.Ports || !tool.Ports.length || tool.PortGroup == 'none')\r\n continue;\r\n\r\n for (let j = 0; j < tool.Ports.length; j++) {\r\n const p = tool.Ports[j];\r\n switch (p.Type) {\r\n case 'Fixed':\r\n if (item.Model[p.IdField]) {\r\n const target = lookupid[item.Model[p.IdField]];\r\n if (target) this.linkItems(graph, paper, m1, target, p.Label);\r\n }\r\n break;\r\n\r\n case 'Dynamic':\r\n if (p.Condition_Func(item.Model) && item.Model[p.IdField]) {\r\n const target = lookupid[item.Model[p.IdField]];\r\n if (target) this.linkItems(graph, paper, m1, target, p.Label);\r\n }\r\n break;\r\n\r\n case 'DynamicList':\r\n const array = p.ArrayField_Func(item.Model);\r\n if (typeof array === 'object' && Array.isArray(array))\r\n for (let k = 0; k < array.length; k++) {\r\n const opt = array[k];\r\n if (p.ArrayElementCondition_Func(item.Model, opt) && opt[p.ArrayElementIdField] && p.ArrayElementLabelExpression_Func(item.Model, opt)) {\r\n const target = lookupid[opt[p.ArrayElementIdField]];\r\n if (target) this.linkItems(graph, paper, m1, target, p.ArrayElementLabelExpression_Func(item.Model, opt));\r\n }\r\n }\r\n break;\r\n }\r\n }\r\n }\r\n },\r\n\r\n prepareTool(tool) {\r\n for (let i = 0; i < tool.Ports.length; i++) {\r\n const p = tool.Ports[i];\r\n\r\n switch (p.Type) {\r\n case 'Dynamic':\r\n if (!p.Condition_Func)\r\n p.Condition_Func = new Function('Model', `return ${p.Condition};`);\r\n break;\r\n\r\n case 'DynamicList':\r\n if (!p.ArrayField_Func)\r\n p.ArrayField_Func = new Function('Model', `return ${p.ArrayField};`);\r\n if (!p.ArrayElementLabelExpression_Func)\r\n p.ArrayElementLabelExpression_Func = new Function('Model', 'Item', `return ${p.ArrayElementLabelExpression};`);\r\n if (!p.ArrayElementCondition_Func)\r\n p.ArrayElementCondition_Func = new Function('Model', 'Item', `return ${p.ArrayElementCondition};`);\r\n\r\n break;\r\n }\r\n }\r\n },\r\n setupGenericWidgetPorts(m1, tool, model) {\r\n const portList = [];\r\n\r\n for (let i = 0; i < tool.Ports.length; i++) {\r\n const p = tool.Ports[i];\r\n\r\n switch (p.Type) {\r\n case 'Fixed':\r\n portList.push({ group: 'out', attrs: { label: { text: p.Label } } });\r\n break;\r\n\r\n case 'Dynamic':\r\n {\r\n if (p.Condition_Func(model))\r\n portList.push({ group: 'out', attrs: { label: { text: p.Label } } });\r\n }\r\n break;\r\n\r\n case 'DynamicList':\r\n {\r\n const array = p.ArrayField_Func(model);\r\n if (typeof array === 'object' && Array.isArray(array))\r\n for (let j = 0; j < array.length; j++) {\r\n const item = array[j];\r\n if (p.ArrayElementCondition_Func(model, item))\r\n portList.push({ group: 'out', attrs: { label: { text: p.ArrayElementLabelExpression_Func(model, item) } } });\r\n }\r\n }\r\n break;\r\n }\r\n }\r\n\r\n m1.addPorts(portList);\r\n },\r\n\r\n addGenericWidget(graph, paper, typeName, model, x, y, w, h) {\r\n const tool = this.tooldefinitions[typeName];\r\n if (!tool)\r\n return;\r\n\r\n this.prepareTool(tool);\r\n\r\n let m1;\r\n if (tool.PortGroup == 'none')\r\n m1 = new this.$joint.shapes.standard[tool.Shape]();\r\n else\r\n m1 = new this.$joint.shapes.standard[tool.Shape]({\r\n ports: {\r\n groups: {\r\n 'out': tool.PortGroup == 'smallfont' ? port_defs_smallfont : tool.PortGroup == 'mediumfont' ? port_defs_mediumfont : null,\r\n }\r\n }\r\n });\r\n\r\n let title;\r\n if (model && typeof model === 'object') {\r\n title = model[tool.LabelField];\r\n }\r\n else if (model && typeof model === 'string') {\r\n title = model;\r\n }\r\n\r\n m1.position(x, y);\r\n m1.resize(w, h)\r\n m1.attr('root/title', tool.Tooltip);\r\n let textWrap = { text: title, width: -10, height: h };\r\n switch (tool.Shape) {\r\n case 'EmbeddedImage':\r\n m1.attr('image/xlinkHref', tool.Image);\r\n textWrap.width = -70;\r\n break;\r\n\r\n case 'HeaderedRectangle':\r\n m1.attr('headerText/text', tool.HeaderText);\r\n m1.attr('header', tool.Header);\r\n m1.attr('bodyText', { textWrap: { text: title, width: -10, height: h } });\r\n break;\r\n }\r\n m1.attr({\r\n body: tool.Body,\r\n label: {\r\n textWrap: textWrap,\r\n fill: '#000',\r\n fontSize: 12,\r\n fontWeight: 'normal'\r\n }\r\n });\r\n m1.prop({ Type: tool.TypeName, Model: () => model, Schema: tool.Schema });\r\n\r\n if (model && typeof model === 'object' && tool.Ports && tool.Ports.length > 0 && tool.PortGroup != 'none') {\r\n this.setupGenericWidgetPorts(m1, tool, model);\r\n }\r\n\r\n m1.addTo(graph);\r\n return m1;\r\n },\r\n\r\n createMenu(model, x, y, w, h) {\r\n const m1 = new this.$joint.shapes.standard.HeaderedRectangle({ // Rectangle({\r\n position: { x: x, y: y },\r\n size: { width: w, height: h },\r\n attrs: {\r\n },\r\n ports: {\r\n groups: {\r\n 'out': port_defs_smallfont\r\n }\r\n }\r\n });\r\n\r\n let title;\r\n if (model && typeof model === 'object') {\r\n Vue.set(this.menu_docs, model.Name, model);\r\n this.menus[model.Name] = m1;\r\n\r\n title = model?.Name;\r\n }\r\n else if (model && typeof model === 'string') {\r\n title = model;\r\n }\r\n\r\n m1.attr('root/title', 'joint.shapes.standard.HeaderedRectangle');\r\n m1.attr('headerText/text', 'Menu');\r\n m1.attr('bodyText/text', title);\r\n\r\n m1.attr({\r\n header: { fill: '#f8d0d0', rx: 2, ry: 2, strokeWidth: 0.5, stroke: '#000' },\r\n body: { fill: '#f8c0c0', rx: 5, ry: 5, strokeWidth: 0.5, stroke: '#000' },\r\n label: {\r\n textWrap: { text: title, width: -10, height: 25 },\r\n fill: '#000',\r\n fontSize: 12,\r\n fontWeight: 'normal'\r\n }\r\n });\r\n m1.prop({ Type: 'Menu', Model: () => model, Schema: 'schema/public/Platform.Schema.ACD.v1/MenuTemplate' });\r\n\r\n if (model && model.Options && model.Options.length > 0) {\r\n this.createMenuPorts(m1, model);\r\n }\r\n return m1;\r\n },\r\n createMenuPorts(m1, model) {\r\n const port_array = [];\r\n\r\n for (let i = 0; i < model.Options.length; i++) {\r\n const opt = model.Options[i];\r\n port_array.push({\r\n group: 'out',\r\n attrs: { label: { text: opt.OptionNumber } }\r\n });\r\n }\r\n\r\n m1.addPorts(port_array);\r\n },\r\n async linkMenu(m1, graph, paper, model, x, y) {\r\n let x_add = 0;\r\n if (model && model.Options && model.Options.length > 0)\r\n for (let i = 0; i < model.Options.length; i++) {\r\n const opt = model.Options[i];\r\n\r\n const src = m1.attributes.ports.items.find(p => p.attrs.label.text == opt.OptionNumber);\r\n const src_port = {\r\n id: m1.id,\r\n magnet: 'portBody',\r\n port: src.id,\r\n };\r\n\r\n switch (opt.OptionType) {\r\n case 'Enqueue':\r\n const q1 = await this.addEnqueue(graph, paper, opt.EnqueueData, x + DEF_X_SPACE * x_add, y + DEF_Y_SPACE, DEF_W, DEF_H);\r\n\r\n // Link together the menu with the enqueue icon\r\n this.addLink(graph, paper, src_port, q1, opt.OptionNumber);\r\n x_add++;\r\n break;\r\n\r\n case 'SubMenu':\r\n const m = this.menus[opt.SubMenuData.MenuTemplateName];\r\n if (m) {\r\n // Link together the menu with pre-existing sub-menu\r\n this.addLink(graph, paper, src_port, m, opt.OptionNumber);\r\n }\r\n else {\r\n let menu = this.menu_docs[opt.SubMenuData.MenuTemplateName];\r\n if (!menu)\r\n menu = await utils.api.get(`Apps/UserDB/SchemaRecordByKey.v2/public/Platform.Schema.ACD.v1/MenuTemplate?rowkey={\"Name\":\"${opt.SubMenuData.MenuTemplateName}\"}`);\r\n\r\n const m2 = await this.addMenu(graph, paper, menu, x + DEF_X_SPACE * x_add, y + DEF_Y_SPACE, DEF_W, DEF_H);\r\n\r\n // Link together the menu with the sub-menu\r\n this.addLink(graph, paper, src_port, m2, opt.OptionNumber);\r\n\r\n x_add++;\r\n }\r\n break;\r\n\r\n default:\r\n continue;\r\n }\r\n }\r\n\r\n },\r\n watchMenu(m1, model, x, y) {\r\n if (!model.Options)\r\n Vue.set(model, 'Options', []);\r\n\r\n // Add watch to the Options array which will refresh the list of ports\r\n return this.$watch(\r\n function () {\r\n const discard1 = model.Name;\r\n const discard2 = model.Description;\r\n return model.Options;\r\n },\r\n function (newv, oldv) {\r\n m1.attr('bodyText/textWrap/text', model.Name);\r\n m1.attr('root/title', model.Description);\r\n\r\n let portids = m1.attributes.ports.items;\r\n if (!portids) portids = [];\r\n\r\n // For each menu option, see if we have a port for it. If not, add the port\r\n const port_array = [];\r\n for (let i = 0; i < model.Options.length; i++) {\r\n const opt = model.Options[i];\r\n\r\n // Skip options that have no digit assigned\r\n if (!opt.OptionNumber)\r\n continue;\r\n\r\n const port = portids.find(p => p.attrs.label.text == opt.OptionNumber);\r\n if (!port) {\r\n port_array.push({\r\n group: 'out',\r\n attrs: { label: { text: opt.OptionNumber } }\r\n });\r\n }\r\n }\r\n if (port_array.length > 0)\r\n m1.addPorts(port_array);\r\n\r\n // Next, for each port, see if we have a menu option for it. If not, remove the port.\r\n for (let i = 0; i < portids.length; i++) {\r\n var opt = model.Options.find(o => o.OptionNumber == portids[i].attrs.label.text);\r\n if (!opt)\r\n m1.removePort(portids[i].id);\r\n }\r\n },\r\n {\r\n deep: true\r\n }\r\n );\r\n },\r\n watchGreeting(m1, model) {\r\n return this.$watch(\r\n function () {\r\n return model.Name || model.Description;\r\n },\r\n function (newv, oldv) {\r\n m1.attr('label/textWrap/text', model.Name);\r\n m1.attr('root/title', model.Description);\r\n },\r\n );\r\n },\r\n watchEnqueue(m1, model) {\r\n if (!model.QueueName)\r\n Vue.set(model, 'QueueName', '');\r\n\r\n return this.$watch(\r\n function () {\r\n return model;\r\n },\r\n function (newv, oldv) {\r\n m1.attr('label/textWrap/text', model.QueueName);\r\n\r\n let portids = m1.attributes.ports?.items;\r\n if (!portids) portids = [];\r\n\r\n const port_array = [];\r\n\r\n if (model.CheckLoggedIn && !portids.find(p => p.attrs.label.text == 'NoAgents'))\r\n port_array.push({\r\n group: 'out',\r\n attrs: { label: { text: 'NoAgents' } }\r\n });\r\n else if (!model.CheckLoggedIn && portids.find(p => p.attrs.label.text == 'NoAgents'))\r\n m1.removePort(portids.find(p => p.attrs.label.text == 'NoAgents').id);\r\n\r\n if (model.CheckLoggedIn && model.CheckAgentAvailable && !portids.find(p => p.attrs.label.text == 'N/A'))\r\n port_array.push({\r\n group: 'out',\r\n attrs: { label: { text: 'N/A' } }\r\n });\r\n else if ((!model.CheckLoggedIn || !model.CheckAgentAvailable) && portids.find(p => p.attrs.label.text == 'N/A'))\r\n m1.removePort(portids.find(p => p.attrs.label.text == 'N/A').id);\r\n\r\n if (port_array.length > 0)\r\n m1.addPorts(port_array);\r\n },\r\n {\r\n deep: true\r\n }\r\n );\r\n },\r\n\r\n updateDynamicPort(m1, p, model, value) {\r\n let portids = m1.attributes.ports?.items;\r\n if (!portids) portids = [];\r\n\r\n if (value && !portids.find(p => p.attrs.label.text == p.Label))\r\n m1.addPorts([{\r\n group: 'out',\r\n attrs: { label: { text: p.Label } }\r\n }]);\r\n else if (!value && portids.find(p => p.attrs.label.text == p.Label))\r\n m1.removePort(portids.find(p => p.attrs.label.text == p.Label).id);\r\n },\r\n updateDynamicListPorts(m1, p, model, array) {\r\n let portids = m1.attributes.ports?.items;\r\n if (!portids) portids = [];\r\n\r\n // For each menu option, see if we have a port for it. If not, add the port\r\n const port_array = [];\r\n for (let i = 0; i < array.length; i++) {\r\n const opt = array[i];\r\n\r\n // Skip options that have a false condition\r\n if (!p.ArrayElementCondition_Func(model, opt))\r\n continue;\r\n\r\n // Evaluate the label for this port\r\n const value = p.ArrayElementLabelExpression_Func(model, opt);\r\n const port = portids.find(p => p.attrs.label.text == value);\r\n if (!port) {\r\n port_array.push({\r\n group: 'out',\r\n attrs: { label: { text: value } }\r\n });\r\n }\r\n }\r\n if (port_array.length > 0)\r\n m1.addPorts(port_array);\r\n\r\n // Next, for each port, see if we have an item for it. If not, remove the port.\r\n for (let i = 0; i < portids.length; i++) {\r\n var opt = array.find(o => p.ArrayElementCondition_Func(model, o) && p.ArrayElementLabelExpression_Func(model, o) == portids[i].attrs.label.text);\r\n if (opt === undefined)\r\n m1.removePort(portids[i].id);\r\n }\r\n },\r\n\r\n watchAnyLabel(m1, model) {\r\n const tool = this.tooldefinitions[m1.attributes.Type];\r\n if (!tool) return null;\r\n\r\n this.prepareTool(tool);\r\n\r\n // Watch the label first\r\n const w1 = this.$watch(\r\n function () {\r\n return model[tool.LabelField];\r\n },\r\n function (newv, oldv) {\r\n switch (tool.Shape) {\r\n case 'HeaderedRectangle':\r\n m1.attr('bodyText/textWrap/text', newv);\r\n break;\r\n default:\r\n m1.attr('label/textWrap/text', newv);\r\n break;\r\n }\r\n },\r\n );\r\n\r\n const watches = [ w1 ];\r\n if (tool.Ports && tool.Ports.length && tool.PortGroup != 'none') {\r\n // For each port, create a watch that will know when the settings change related to a dynamic port\r\n for (let i = 0; i < tool.Ports.length; i++) {\r\n const p = tool.Ports[i];\r\n switch (p.Type) {\r\n case 'Dynamic':\r\n // Watch the dynamic condition (note that fixed ports do not need to be watched)\r\n watches.push(this.$watch(\r\n function () {\r\n // Evaluate the condition to be watched\r\n return p.Condition_Func(model);\r\n },\r\n function (newv, oldv) {\r\n // The condition changed, update the port - add or remove based on the condition\r\n this.updateDynamicPort(m1, p, model, newv);\r\n },\r\n ));\r\n break;\r\n\r\n case 'DynamicList':\r\n // Watch the dynamic array\r\n // First, ensure the array has been initialized\r\n //if (!p.ArrayField_Func(model)) {\r\n // const f = new Function('Model', `${p.ArrayField} = [];`);\r\n //}\r\n watches.push(this.$watch(\r\n function () {\r\n // Evaluate the condition to be watched\r\n return p.ArrayField_Func(model);\r\n },\r\n function (newv, oldv) {\r\n // The condition changed, update the port - add or remove based on the condition\r\n this.updateDynamicListPorts(m1, p, model, newv);\r\n },\r\n {\r\n deep: true\r\n }\r\n ));\r\n break;\r\n }\r\n }\r\n }\r\n return watches;\r\n },\r\n\r\n defaultLink() {\r\n const link = new this.$joint.shapes.standard.Link();\r\n link.attr('line/stroke', 'blue');\r\n link.attr({\r\n line: {\r\n stroke: 'blue',\r\n strokeWidth: 0.5,\r\n },\r\n });\r\n link.router('manhattan', {\r\n startDirection: 'bottom'\r\n });\r\n link.connector('rounded');\r\n link.connector('jumpover', { size: 10 });\r\n\r\n return link;\r\n },\r\n validateConnection(cellViewS, magnetS, cellViewT, magnetT, end, linkView) {\r\n // Prevent linking to magnets (ports)\r\n //if (!magnetT && cellViewT !== cellViewS) {\r\n // console.log(`validateConnection-cellViewT:`);\r\n // //this.log(cellViewT);\r\n // debugger;\r\n //}\r\n return !magnetT; // && (cellViewS.model.attributes.Type != 'Greeting' || (cellViewS.model.attributes.Type == 'Greeting' && cellViewT.model.attributes.Type == 'Menu'));\r\n },\r\n addLink(graph, paper, source, target, label) {\r\n const link = new this.$joint.shapes.standard.Link();\r\n link.source(source);\r\n link.target(target);\r\n link.attr('line/stroke', 'blue');\r\n link.attr({\r\n line: {\r\n stroke: 'blue',\r\n strokeWidth: 0.5,\r\n },\r\n });\r\n if (label)\r\n link.appendLabel({\r\n attrs: {\r\n text: {\r\n fill: 'blue',\r\n text: label\r\n },\r\n body: {\r\n fill: 'white',\r\n strokeWidth: 0.5,\r\n stroke: 'silver',\r\n }\r\n },\r\n position: {\r\n distance: 0.5,\r\n args: {\r\n keepGradient: true,\r\n ensureLegibility: true\r\n }\r\n }\r\n });\r\n\r\n link.prop({\r\n Label: label,\r\n });\r\n //link.router('manhattan');\r\n link.router('manhattan', {\r\n startDirection: 'bottom'\r\n });\r\n\r\n link.connector('rounded');\r\n link.connector('jumpover', { size: 10 });\r\n\r\n link.addTo(graph);\r\n return link;\r\n },\r\n\r\n save() {\r\n if (!this.projectName)\r\n this.saveAs();\r\n else\r\n this.saveGreeting({ name: this.projectName });\r\n },\r\n saveAs() {\r\n this.file_menu_is_open = false;\r\n\r\n const dialog_output = {\r\n name: \"Unnamed\",\r\n };\r\n this.dialog_width = 400;\r\n this.dialog_content = (\r\n \r\n \r\n \r\n \r\n Save As...\r\n \r\n\r\n \r\n\r\n this.dialog_visible = false}>\r\n mdi-close-box\r\n \r\n \r\n \r\n\r\n \r\n
\r\n Choose a name to save this greeting flowchart as. Then from a phone number,\r\n you may select Greeting Flowchart as the type and pick the name you save as.\r\n
\r\n\r\n dialog_output.name = value}\r\n >\r\n
\r\n \r\n \r\n { this.dialog_visible = false; this.saveGreeting(dialog_output); } }>OK\r\n this.dialog_visible = false}>Cancel\r\n \r\n
\r\n );\r\n this.dialog_visible = true;\r\n },\r\n async saveGreeting(dialog_output) {\r\n const raw = this.graph.toJSON();\r\n\r\n // Reconstitute the models into the output json (it is stored as a function to allow reactivity to be preserved)\r\n // and store the link destinations in the model.\r\n const all = this.graph.getElements();\r\n for (let i = 0; i < raw.cells.length; i++) {\r\n const cell = raw.cells[i];\r\n const original = all.find(a => a.id == cell.id);\r\n if (original && typeof original.attributes.Model === 'function') {\r\n // We know this is a regular tool, not a link\r\n cell.Model = original.attributes.Model();\r\n cell.Model.x = cell.position.x;\r\n cell.Model.y = cell.position.y;\r\n\r\n // Now check for ports and if found, locate the port id in a link to see where it goes\r\n if (cell.ports && cell.ports.items && cell.ports.items.length > 0)\r\n for (let j = 0; j < cell.ports.items.length; j++) {\r\n const port = cell.ports.items[j];\r\n const link = raw.cells.find(a => a.type == 'standard.Link' && a.source.port == port.id);\r\n if (link) {\r\n const target = raw.cells.find(a => a.id == link.target.id);\r\n if (target) {\r\n // Found the target of the port - now see what kind of port it is and save the target into the model\r\n const tool = this.tooldefinitions[cell.Type];\r\n if (tool && tool.Ports && tool.Ports.length > 0 && tool.PortGroup != 'none')\r\n this.prepareTool(tool);\r\n for (let k = 0; k < tool.Ports.length; k++) {\r\n const p = tool.Ports[k];\r\n switch (p.Type) {\r\n case 'Fixed':\r\n case 'Dynamic':\r\n // For Fixed and Dynamic ports, the IdField specifies what field within the Model\r\n // gets assigned the target id.\r\n if (p.Label == port.attrs.label.text)\r\n cell.Model[p.IdField] = target.id;\r\n break;\r\n\r\n case 'DynamicList':\r\n // For DynamicLists, there is an array and each element in the array may have its own field\r\n const array = p.ArrayField_Func(cell.Model);\r\n if (typeof array === 'object' && Array.isArray(array)) {\r\n const opt = array.find(o => p.ArrayElementLabelExpression_Func(cell.Model, o) == port.attrs.label.text);\r\n if (opt !== undefined)\r\n opt[p.ArrayElementIdField] = target.id;\r\n }\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n const finalModel = {\r\n ID: this.projectID,\r\n Name: dialog_output.name,\r\n Description: '',\r\n Graph: raw.cells.filter(a => a.type != 'standard.Link').map(a => ({\r\n Id: a.id,\r\n Type: a.Type,\r\n Model: a.Model,\r\n }))\r\n };\r\n\r\n //this.log(raw);\r\n //this.log(finalModel);\r\n\r\n const res = await utils.api.apiRequest('POST', `Apps/Platform/Schema/FlowWidgets/v1/FlowChart?AutoReplace=true`, finalModel);\r\n if (res && res.Success) {\r\n this.projectName = dialog_output.name;\r\n this.projectID = res.ID;\r\n }\r\n },\r\n },\r\n props: {\r\n },\r\n\trender(h) {\r\n\t\t//if (!this.model)\r\n\t\t//\treturn null;\r\n if (this.loading)\r\n return null;\r\n\r\n const style = {\r\n ...this.sizeStyle,\r\n ...utils.resolveStyleHints(this.styleHints, this),\r\n display: 'flex',\r\n flexDirection: 'column',\r\n height: '1px', // needed by flex-grow\r\n };\r\n\r\n return (\r\n \r\n\r\n {this.flypaper}\r\n\r\n {this.topMenuBar}\r\n\r\n {this.topArea}\r\n\r\n \r\n \r\n {this.mainArea}\r\n \r\n\r\n \r\n \r\n \r\n
\r\n Tool Palette\r\n {this.rightTopArea}\r\n
\r\n
\r\n\r\n \r\n
\r\n Properties\r\n {this.rightBottomArea}\r\n
\r\n
\r\n \r\n \r\n \r\n\r\n \r\n {this.dialog_content}\r\n \r\n \r\n );\r\n }\r\n});","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.isvisible),expression:\"isvisible\"}],staticClass:\"MultiSelectList c-caremultiselectlist\",style:(_vm.styles)},[_c('div',{staticClass:\"careDynamicControlContent MultiSelectList\"},[_c('v-list',[_c('v-list-item-group',{attrs:{\"value\":_vm.selectedIndexValues,\"multiple\":\"\"}},_vm._l((_vm.sourceItems),function(item,i){return _c('v-list-item',{key:i,class:{isSelected: _vm.isItemSelected(item), disabled: !_vm.isAvailable(item)},attrs:{\"disabled\":!_vm.isAvailable(item)},on:{\"click\":function($event){return _vm.itemSelected(item, true, true)}}},[_c('MultiSelectListItem',{key:i,attrs:{\"sourceData\":item.data,\"template\":_vm.controlData.MultiSelectListItemTemplate,\"index\":i}})],1)}),1)],1)],1)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('v-tooltip',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.isvisible),expression:\"isvisible\"}],attrs:{\"top\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on, attrs }){return [_c('div',_vm._g(_vm._b({class:_vm.cssclasscomputed},'div',attrs,false),on),[_c('v-icon',{attrs:{\"color\":_vm.colorcomputed}},[_vm._v(\" \"+_vm._s(_vm.lefticoncomputed)+\" \")]),_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(_vm._s(_vm.textcomputed))])],1),_c('v-list-item-icon',[_c('v-icon',[_vm._v(\" \"+_vm._s(_vm.righticoncomputed)+\" \")])],1),_c('div',{staticClass:\"mslRightTextContext\"},[_vm._v(\" \"+_vm._s(_vm.righttextcomputed)+\" \")])],1)]}}])},[_c('span',[_vm._v(_vm._s(_vm.tooltipcomputed))])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n\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/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MultiSelectListItem.vue?vue&type=script&lang=js&\"; 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/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MultiSelectListItem.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./MultiSelectListItem.vue?vue&type=template&id=6b6d2196&scoped=true&v-if=todisplay&\"\nimport script from \"./MultiSelectListItem.vue?vue&type=script&lang=js&\"\nexport * from \"./MultiSelectListItem.vue?vue&type=script&lang=js&\"\nimport style0 from \"./MultiSelectListItem.vue?vue&type=style&index=0&id=6b6d2196&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 \"6b6d2196\",\n null\n \n)\n\nexport default component.exports","\r\n\r\n\r\n\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/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MultiSelectList.vue?vue&type=script&lang=js&\"; 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/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MultiSelectList.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./MultiSelectList.vue?vue&type=template&id=95274fc2&scoped=true&v-if=todisplay&\"\nimport script from \"./MultiSelectList.vue?vue&type=script&lang=js&\"\nexport * from \"./MultiSelectList.vue?vue&type=script&lang=js&\"\nimport style0 from \"./MultiSelectList.vue?vue&type=style&index=0&id=95274fc2&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 \"95274fc2\",\n null\n \n)\n\nexport default component.exports","import Vue from 'vue';\r\nimport BaseComponent from './BaseComponentMixin.jsx';\r\nimport utils from '../../Shared/utils.jsx';\r\nimport careHelpfulFunctions from '../careHelpfulFunctions.jsx';\r\nimport EventBus from '../event-bus.js';\r\n\r\nVue.component('navigation-drawer-popupmenuitem', {\r\n mixins: [BaseComponent],\r\n data: function () {\r\n return {\r\n iconexpn: null,\r\n titleexpn: null,\r\n }\r\n },\r\n created() {\r\n this.iconexpn = utils.compile(this, this.controlData.Icon);\r\n this.titleexpn = utils.compile(this, this.controlData.Title);\r\n },\r\n props: {\r\n myroot: null,\r\n child: null,\r\n dense: false,\r\n },\r\n computed: {\r\n icon: function () {\r\n return utils.evaluate(this.iconexpn, this);\r\n },\r\n title: function () {\r\n return utils.evaluate(this.titleexpn, this);\r\n },\r\n },\r\n methods: {\r\n selectPopupMenuItem(e) {\r\n utils.executeAndCompileAllActions(this.controlData.Actions, null, this);\r\n },\r\n },\r\n render(h) {\r\n if (!this.todisplay)\r\n return null;\r\n // v-show={this.todisplay}\r\n return (\r\n this.selectPopupMenuItem(e)}>\r\n {this.icon}\r\n {this.title}\r\n \r\n );\r\n }\r\n});\r\n\r\nVue.component('navigation-drawer-item', {\r\n mixins: [BaseComponent],\r\n data: function () {\r\n return {\r\n iconexpn: null,\r\n popupShown: false\r\n }\r\n },\r\n created() {\r\n this.iconexpn = utils.compile(this, this.data.Icon.Icon);\r\n this.tooltipexpn = utils.compile(this, this.data.Icon.Tooltip);\r\n },\r\n props: {\r\n tabi: 0,\r\n data: null,\r\n dense: false,\r\n },\r\n methods: {\r\n selectPopupMenuItem(e, menu) {\r\n if (menu.Data && menu.Data.MenuItemData)\r\n utils.executeAndCompileAllActions(menu.Data && menu.Data.MenuItemData.Actions, null, this);\r\n },\r\n preRenderComplete() {\r\n this.finishRenderHandler(this);\r\n },\r\n runMenuActions(e, tab) {\r\n e.cancelBubble = true;\r\n e.stopPropagation();\r\n\r\n if (tab.Actions)\r\n utils.executeAndCompileAllActions(tab.Actions, null, this);\r\n },\r\n itemClicked(e) {\r\n // debugger;\r\n // e.stopPropagation();\r\n },\r\n togglePopupMenu(e) {\r\n this.popupShown = !this.popupShown;\r\n e.stopPropagation();\r\n }\r\n },\r\n computed: {\r\n icon: function () {\r\n return utils.evaluate(this.iconexpn, this);\r\n },\r\n tooltip: function () {\r\n return utils.evaluate(this.tooltipexpn, this);\r\n },\r\n },\r\n render(h) {\r\n //if (!this.todisplay)\r\n // return null;\r\n\r\n let icon;\r\n let click = this.itemClicked;\r\n const tab = this.data;\r\n\r\n if (tab.kind == 'PopupMenu') {\r\n click = this.togglePopupMenu;\r\n \r\n let menuActivator;\r\n if (this.icon)\r\n menuActivator = {this.icon};\r\n\r\n if (this.tooltip)\r\n menuActivator = utils.generateTooltip(h, menuActivator, this.tooltip, 'right');\r\n\r\n let childItems = [];\r\n if (tab.ChildData)\r\n for (let k = 0; k < tab.ChildData.length; k++) {\r\n const child = tab.ChildData[k];\r\n\r\n if (!child.$objectid)\r\n child.$objectid = utils.generateUUID();\r\n\r\n if (child.Divider)\r\n childItems.push();\r\n\r\n //utils.debug(`NavigationDrawerItem Icon:${child.Data.MenuItemData.Icon} Title:${child.Data.MenuItemData.Title} DisplayExpression:'${child.Data.MenuItemData.DisplayExpression}'`);\r\n childItems.push(\r\n \r\n \r\n );\r\n }\r\n\r\n icon = (\r\n this.popupShown = value}\r\n scopedSlots={{\r\n activator: ({ on }) => {\r\n menuActivator.data.on = { ...menuActivator.data.on, ...on };\r\n \r\n return menuActivator;\r\n }\r\n }}\r\n >\r\n \r\n this.selected_popupitem = []}>\r\n\r\n {childItems}\r\n \r\n \r\n \r\n );\r\n }\r\n else if (tab.kind == 'ActionsOnly') {\r\n if (this.icon) {\r\n const tabicon = this.icon;\r\n click = (e) => this.runMenuActions(e, tab);\r\n\r\n if (tabicon)\r\n icon = {tabicon};\r\n\r\n icon = {icon};\r\n\r\n if (this.tooltip)\r\n icon = utils.generateTooltip(h, icon, this.tooltip, 'right');\r\n }\r\n }\r\n else if (tab.kind == 'StaticTab') {\r\n if (this.icon) {\r\n const tabicon = this.icon;\r\n\r\n if (tabicon)\r\n icon = {tabicon};\r\n }\r\n\r\n if (this.controlData.badgecontent) {\r\n const badgeinfo = this.controlData.badgecontent;\r\n\r\n if (badgeinfo.showbadge && badgeinfo.count) {\r\n let tooltip = careHelpfulFunctions.copy(badgeinfo.tooltip || []);\r\n if (!tooltip)\r\n tooltip = [];\r\n\r\n if (Array.isArray(tooltip) && this.tooltip)\r\n tooltip.splice(0, 0, this.tooltip);\r\n\r\n if (tooltip && Array.isArray(tooltip) && tooltip.length > 0) {\r\n icon = utils.generateTooltip(h, icon, tooltip.map(t => {t}
), 'right');\r\n }\r\n\r\n icon = = 100 ? 18 : 11} value={badgeinfo.showbadge && badgeinfo.count} content={badgeinfo.count < 100 ? badgeinfo.count : '99+'} color=\"error\">{icon};\r\n }\r\n else if (this.tooltip)\r\n icon = utils.generateTooltip(h, icon, this.tooltip, 'right');\r\n }\r\n else {\r\n if (this.tooltip)\r\n icon = utils.generateTooltip(h, icon, this.tooltip, 'right');\r\n }\r\n }\r\n\r\n return (\r\n click(e)}>\r\n {icon}\r\n \r\n {tab.Title || tab.Tooltip}\r\n \r\n \r\n );\r\n }\r\n});\r\n\r\nVue.component('navigation-drawer', {\r\n mixins: [BaseComponent],\r\n data: function () {\r\n return {\r\n sourceraw: null,\r\n sourceurl: null,\r\n model: null,\r\n tab_state: {\r\n index: 0\r\n },\r\n mini: true,\r\n bot_start_index: 0,\r\n\r\n selected_tab: -1,\r\n selected_tab_top: 0,\r\n selected_tab_bot: -1,\r\n selected_tab_expr: null,\r\n\r\n selected_popupitem: -1,\r\n\r\n actions: [],\r\n Javascript: null,\r\n\r\n dense_icons: false,\r\n }\r\n },\r\n async created() {\r\n if (this.controlData.ActiveTabIndex)\r\n this.selected_tab_expr = utils.compileExpression(this, this.controlData.ActiveTabIndex);\r\n\r\n if (this.controlData.SourceType === 'Raw' && this.controlData.SourceRaw) {\r\n this.sourceraw = utils.compileObject(this, this.controlData.SourceRaw);\r\n }\r\n else if (this.controlData.SourceType === 'Url' && this.controlData.SourceUrl) {\r\n this.sourceurl = utils.compile(this, this.controlData.SourceUrl);\r\n }\r\n\r\n if (this.controlData.IconSize)\r\n this.dense_icons = this.controlData.IconSize == 'Dense';\r\n\r\n EventBus.$on('Action-SelectMenuItem', this.performSelectMenuItem);\r\n\r\n // Add a manual watch to the results of the selected_tab_expr - if it changes, change the selected tab\r\n this.watcher$ = this.$watch(\r\n function () {\r\n try {\r\n return utils.evaluate(this.selected_tab_expr, this);\r\n }\r\n catch (e) {\r\n return null;\r\n }\r\n },\r\n function (val, oldval) {\r\n let index;\r\n if (typeof val === 'string')\r\n index = parseInt(val);\r\n else\r\n index = val;\r\n\r\n utils.debug(`NavigationDrawer.$watch(index:${index}) (val:${val},oldva:${oldval})`);\r\n\r\n if (index >= this.bot_start_index)\r\n this.changeTabBot(index - this.bot_start_index);\r\n else\r\n this.changeTabTop(index);\r\n }\r\n );\r\n },\r\n //Mounted Replaced with preRenderComplete\r\n destroyed() {\r\n EventBus.$off('Action-SelectMenuItem', this.performSelectMenuItem);\r\n },\r\n computed: {\r\n totalItems() {\r\n let total = 0;\r\n\r\n // Each of the tabs in the controls array will be rendered at least once.\r\n if (Array.isArray(this.model)) {\r\n total += this.model.length;\r\n }\r\n\r\n // Add one to include the component itself.\r\n total++;\r\n\r\n return total;\r\n },\r\n ActiveTabIndex: function () {\r\n let index;\r\n if (this.selected_tab_expr)\r\n index = utils.evaluate(this.selected_tab_expr, this);\r\n else\r\n return 0;\r\n\r\n if (typeof index === 'string')\r\n return parseInt(index);\r\n else\r\n return index;\r\n },\r\n Menus: function () {\r\n return utils.document_cache.menus;\r\n },\r\n\r\n backgroundColor: function () {\r\n if (!this.bgcolorexpn && this.controlData.BackgroundColor)\r\n this.bgcolorexpn = utils.compile(this, this.controlData.BackgroundColor);\r\n\r\n return this.bgcolorexpn ? utils.evaluate(this.bgcolorexpn, this) : undefined;\r\n },\r\n backgroundImage: function () {\r\n if (!this.bgimageexpn && this.controlData.BackgroundImage)\r\n this.bgimageexpn = utils.compile(this, this.controlData.BackgroundImage);\r\n\r\n return this.bgimageexpn ? utils.evaluate(this.bgimageexpn, this) : undefined;\r\n },\r\n },\r\n methods: {\r\n async preRenderComplete() {\r\n await this.Refresh();\r\n this.finishRenderHandler(this);\r\n },\r\n async performSelectMenuItem(action) {\r\n utils.log(`NavigationDrawer SelectMenuItem ${action.ActionData.MenuItemName}`);\r\n\r\n if (action.ActionData.Debug && action.ActionData.Debug.BreakPoint) debugger;\r\n\r\n try {\r\n const name = utils.evaluate(action.menuname, action.context);\r\n\r\n utils.executeAndCompileAllActions(this.controlData.SelectMenuActions, { Data: name }, this);\r\n\r\n // Create a delayed action to signal the menu item since the menu may not be materialized yet. By waiting,\r\n // we allow the menu to load and register for the SelectMenuItem-Menu event.\r\n this.System.$timeout(() => { EventBus.$emit('Action-SelectMenuItem-Menu', action); }, 250);\r\n\r\n try {\r\n await utils.success(action);\r\n } catch (e) { }\r\n }\r\n catch (e) {\r\n try {\r\n await utils.failure(action, { Data: e });\r\n } catch (e) { }\r\n }\r\n finally {\r\n try {\r\n await utils.complete(action);\r\n }\r\n catch (e) { }\r\n\r\n // Complete the promise for the executeAction method\r\n action.FinishFunc(true);\r\n }\r\n },\r\n\r\n async Refresh() {\r\n if (this.sourceraw)\r\n try {\r\n this.model = utils.evaluateObject(this.sourceraw, this);\r\n }\r\n catch (e) {\r\n utils.warn('DynamicTab failed to evaluate SourceRaw ' + this.controlData.SourceRaw + ': ' + e);\r\n }\r\n else if (this.sourceurl)\r\n try {\r\n this.model = await utils.api.get(utils.evaluate(this.sourceurl, this));\r\n }\r\n catch (e) {\r\n utils.warn('DynamicTab failed to evaluate SourceUrl ' + this.controlData.SourceUrl + ': ' + e);\r\n }\r\n\r\n },\r\n async changeTab(index) {\r\n utils.debug(`NavigationDrawer.changeTab(index:${index}) - firing Actions`);\r\n\r\n let runActions = true;\r\n let i = index;\r\n\r\n if (isNaN(i))\r\n i = this.selected_tab;\r\n\r\n if (i > -1 && this.model && this.model.length > i) {\r\n var menuItem = this.model[i];\r\n\r\n if (menuItem?.kind && (menuItem.kind == \"PopupMenu\" || menuItem.kind == \"ActionsOnly\")) {\r\n runActions = false; //do not run actions for popup menus or action only menus\r\n }\r\n }\r\n \r\n // Perform Actions that will actually change the visible static tab\r\n if (runActions)\r\n utils.executeAndCompileAllActions(this.controlData.Actions, { Data: index }, this);\r\n\r\n // index of selected tab\r\n this.selected_tab = index;\r\n },\r\n changeTabTop(index) {\r\n utils.debug(`NavigationDrawer.changeTabTop(index:${index})`);\r\n\r\n if (!isNaN(index) && index > -1 && this.model && this.model.length > index) {\r\n const menuItem = this.model[index];\r\n \r\n if (menuItem?.kind && (menuItem.kind == \"PopupMenu\" || menuItem.kind == \"ActionsOnly\")) {\r\n const old_tab = this.selected_tab_top;\r\n this.selected_tab_top = index;\r\n Vue.nextTick(() => this.selected_tab_top = old_tab);\r\n return;\r\n }\r\n }\r\n\r\n this.selected_tab_top = index;\r\n this.selected_tab_bot = -1;\r\n\r\n if (this.controlData.UseRouter) {\r\n if (this.model[index] && this.model[index].type != 'OpenTabs' && !this.$route.fullPath.endsWith(`#/${this.controlData.RoutingName}/${this.model[index].$objectid}`))\r\n this.$router.push({ path: `#/${this.controlData.RoutingName}/${this.model[index].$objectid}` });\r\n else\r\n this.changeTab(index);\r\n }\r\n else\r\n this.changeTab(index);\r\n },\r\n changeTabBot(index) {\r\n utils.debug(`NavigationDrawer.changeTabBot(index:${index}) this.selected_tab_bot:${this.selected_tab_bot}`);\r\n\r\n if (!isNaN(index) && (index + this.bot_start_index) > -1 && this.model && this.model.length > (index + this.bot_start_index)) {\r\n const menuItem = this.model[index + this.bot_start_index];\r\n \r\n if (menuItem?.kind && (menuItem.kind == \"PopupMenu\" || menuItem.kind == \"ActionsOnly\")) {\r\n const old_tab = this.selected_tab_bot;\r\n this.selected_tab_bot = index;\r\n Vue.nextTick(() => this.selected_tab_bot = old_tab);\r\n return;\r\n }\r\n }\r\n\r\n this.selected_tab_top = -1;\r\n this.selected_tab_bot = index;\r\n\r\n if (this.controlData.UseRouter) {\r\n if (this.model[index + this.bot_start_index] && this.model[index + this.bot_start_index].type != 'OpenTabs' && !this.$route.fullPath.endsWith(`#/${this.controlData.RoutingName}/${this.model[index + this.bot_start_index].$objectid}`))\r\n this.$router.push({ path: `#/${this.controlData.RoutingName}/${this.model[index + this.bot_start_index].$objectid}` });\r\n else\r\n this.changeTab(index + this.bot_start_index);\r\n }\r\n else\r\n this.changeTab(index + this.bot_start_index);\r\n },\r\n selectPopupMenuItem(e, menu) {\r\n //e.cancelBubble = true;\r\n //e.stopPropagation();\r\n //alert('Popup Menu ' + menu.Title);\r\n //this.selected_popupitem = -1;\r\n //debugger;\r\n\r\n if (menu.Data && menu.Data.MenuItemData)\r\n utils.executeAndCompileAllActions(menu.Data && menu.Data.MenuItemData.Actions, null, this);\r\n },\r\n SetActiveTabIndex(index) {\r\n utils.debug(`NavigationDrawer.SetActiveTabIndex(index:${index}) note selected_tab:${this.selected_tab}`);\r\n\r\n if (index !== this.selected_tab)\r\n this.changeTab(index);\r\n },\r\n },\r\n watch: {\r\n //selected_tab: function (newval, oldval) {\r\n // utils.debug(`NavigationDrawer.selected_tab changed from ${oldval} to ${newval}`);\r\n //},\r\n //selected_tab_bot: function(newval, oldval) {\r\n // utils.debug(`NavigationDrawer.selected_tab_bot changed from ${oldval} to ${newval}`);\r\n //},\r\n $route: function (newVal, oldVal) {\r\n if (this.controlData.UseRouter) {\r\n //need to check for /Tab/guid and set the active index to open tabs if necessary\r\n var rgx = new RegExp(`${this.controlData.RoutingName}/([^/]*)`, 'ig');\r\n var matches = [...newVal.fullPath.matchAll(rgx)];\r\n \r\n if (matches[0] && matches[0].length >= 2) {\r\n utils.debug(`Navigation newVal: ${newVal.fullPath}; oldVal: ${oldVal.fullPath};`);\r\n var index = this.model.findIndex(o => o.$objectid == matches[0][1]);\r\n this.changeTab(index);\r\n } \r\n }\r\n }\r\n },\r\n props: {\r\n },\r\n render(h) {\r\n if (!this.todisplay || !this.controlData)\r\n return null;\r\n\r\n let items_top = [];\r\n let items_bot = [];\r\n\r\n if (this.model) {\r\n for (let tabi = 0; tabi < this.model.length; tabi++) {\r\n const tab = this.model[tabi];\r\n let items;\r\n if (tab.location == 'Top')\r\n items = items_top;\r\n else\r\n items = items_bot;\r\n\r\n if (!tab.$objectid)\r\n tab.$objectid = utils.generateUUID();\r\n\r\n items.push(\r\n this.finishRenderHandler(reference) }}\r\n class={{ 'c-NavigationDrawerItem': true, [`c-name-${(this.name + '_' + tabi) || 'unnamed'}`]: true }}\r\n key={tab.$objectid}\r\n tabi={tabi}\r\n name={this.name + '_' + tabi}\r\n root={this.root}\r\n type=\"NavigationDrawerItem\"\r\n parentType=\"NavigationDrawer\"\r\n data={tab}\r\n dense={this.dense_icons}\r\n controlData={tab.Data.MenuItemData}>\r\n \r\n );\r\n }\r\n\r\n this.bot_start_index = items_top.length;\r\n }\r\n\r\n const style = {\r\n ...this.sizeStyle,\r\n //maxWidth: \"86px\"\r\n };\r\n\r\n const useDark = this.controlData.DarkTheme || false;\r\n\r\n const scopedSlots = {\r\n append: () => (\r\n \r\n this.changeTabBot(e)}\r\n value={this.selected_tab_bot}>\r\n\r\n {items_bot}\r\n \r\n \r\n )\r\n };\r\n\r\n return (\r\n \r\n\r\n \r\n this.changeTabTop(e)}\r\n value={this.selected_tab_top}>\r\n\r\n {items_top}\r\n \r\n \r\n\r\n \r\n );\r\n }\r\n});","import Vue from 'vue';\r\nimport BaseComponent from './BaseComponentMixin.jsx';\r\n\r\nimport utils from '../../Shared/utils.jsx';\r\n\r\nVue.component('notification', {\r\n mixins: [BaseComponent],\r\n data: () => ({\r\n titleexpr: null,\r\n bodyexpr: null,\r\n subbodyexpr: null,\r\n colorexpr: null,\r\n }),\r\n props: {\r\n },\r\n created() {\r\n if (this.controlData.Title)\r\n this.titleexpr = utils.compile(this, this.controlData.Title);\r\n\r\n if (this.controlData.Body)\r\n this.bodyexpr = utils.compile(this, this.controlData.Body);\r\n \r\n if (this.controlData.SubBody)\r\n this.subbodyexpr = utils.compile(this, this.controlData.SubBody);\r\n },\r\n mounted() {\r\n },\r\n computed: {\r\n title() {\r\n if(this.titleexpr)\r\n return ;\r\n return null;\r\n },\r\n body() {\r\n if (this.bodyexpr)\r\n return ;\r\n return null;\r\n },\r\n subBody() {\r\n if (this.subbodyexpr)\r\n return ;\r\n return null;\r\n },\r\n color() {\r\n if (this.controlData.Color)\r\n return this.controlData.Color;\r\n\r\n return null;\r\n },\r\n dismissible() {\r\n if (this.controlData.Dismissible)\r\n return this.controlData.Dismissible;\r\n\r\n return null;\r\n },\r\n styles() {\r\n return {\r\n margin: '0 10px',\r\n ...this.sizeStyle,\r\n ...utils.resolveStyleHints(this.styleHints, this),\r\n };\r\n }\r\n },\r\n methods: {\r\n preRenderComplete() {\r\n this.finishRenderHandler(this);\r\n }\r\n },\r\n render() {\r\n if (!this.prerender_complete || !this.todisplay)\r\n return null;\r\n\r\n let type = this.color;\r\n let textColor = this.color;\r\n let icon = 'mdi mdi-information';\r\n\r\n if (type == 'info') {\r\n textColor = 'primary';\r\n icon = 'mdi mdi-information';\r\n }\r\n else if (type == 'warning') {\r\n textColor = 'outbound';\r\n icon = 'mdi mdi-alert'\r\n }\r\n else if (type == 'error') {\r\n textColor = 'error';\r\n icon = 'mdi mdi-alert'\r\n }\r\n else if (type == 'success') {\r\n textColor = 'success';\r\n icon = 'mdi mdi-information'\r\n }\r\n\r\n\r\n let title;\r\n let body;\r\n let notificationControls;\r\n\r\n if(this.controlData?.Controls?.length)\r\n notificationControls =
{utils.generateItemsFromArray(h, this, this.controlData.Controls, null, 'HorizontalLayout', {'finished-render': (item) => this.finishRenderHandler(item) })}
;\r\n\r\n if (this.title && this.body) {\r\n title = {this.title};\r\n body = {this.body};\r\n }\r\n else if (this.title)\r\n title = {this.title};\r\n else if (this.body)\r\n body = {this.body};\r\n\r\n return (\r\n
\r\n \r\n \r\n {title}\r\n {body}\r\n {this.subBody}\r\n \r\n \r\n
\r\n\r\n );\r\n }\r\n});","import Vue from 'vue';\r\nimport BaseComponent from './BaseComponentMixin.jsx';\r\n\r\nimport utils from '../../Shared/utils.jsx';\r\nimport methods from '../../Shared/methods';\r\n\r\nVue.component('popup-menu-button', {\r\n mixins: [BaseComponent],\r\n data: function () {\r\n return {\r\n textrenderer: null,\r\n iconrenderer: null,\r\n iconpositioner: null,\r\n icongapeval: null,\r\n flipHorizontallyEval: null,\r\n flipVerticallyEval: null,\r\n borderEval: null,\r\n animationEval: null,\r\n colorEval: null,\r\n cssClassEval: null,\r\n tooltiprenderer: null,\r\n tooltipLocationEval: null,\r\n popupMenuPlacementEval: null,\r\n popupMenuBackgroundColorEval: null,\r\n popupMenuFontColorEval: null,\r\n popupMenuWidthEval: null,\r\n popupMenuBodyPaddingEval: null,\r\n isDefaultEval: null,\r\n isdisabledeval: null,\r\n\r\n menu_data: null,\r\n }\r\n },\r\n created() {\r\n this.textrenderer = utils.compile(this, this.controlData.Text);\r\n this.tooltiprenderer = utils.compile(this, this.controlData.Tooltip);\r\n this.iconrenderer = utils.compile(this, this.controlData.Icon);\r\n this.isdisabledeval = utils.compile(this, this.controlData.IsDisabled);\r\n\r\n switch (this.controlData.MenuSourceType) {\r\n case 'Json':\r\n this.menusourceexpn = utils.compileObject(this, this.controlData.MenuJson);\r\n this.menu_data = utils.evaluateObject(this.menusourceexpn, this);\r\n\r\n if (!this.modelvalue_watch$)\r\n this.modelvalue_watch$ = this.$watch(\r\n function () {\r\n try {\r\n return utils.evaluateObject(this.menusourceexpn, this);\r\n }\r\n catch (e) {\r\n utils.warn('PopupMenuButton MenuJson ' + this.controlData.MenuJson + ' failed to evaluate', e);\r\n return null;\r\n }\r\n },\r\n function (val, oldval) {\r\n this.Refresh();\r\n },\r\n {\r\n deep: false\r\n }\r\n );\r\n break;\r\n\r\n case 'URL':\r\n this.menuurlexpn = utils.compile(this, this.controlData.MenuURL);\r\n break;\r\n\r\n case 'Inline':\r\n default:\r\n this.menu_data = this.controlData.Menu;\r\n break;\r\n }\r\n },\r\n destroyed() {\r\n if (this.modelvalue_watch$)\r\n this.modelvalue_watch$();\r\n },\r\n //Mounted Replaced with preRenderComplete\r\n computed: {\r\n text() {\r\n if (this.controlData.Text)\r\n return (\r\n \r\n );\r\n return null;\r\n },\r\n icon() {\r\n if (this.iconrenderer === null)\r\n this.iconrenderer = utils.compile(this, this.controlData.Icon);\r\n let icon = utils.evaluate(this.iconrenderer, this);\r\n\r\n return icon;\r\n },\r\n iconPosition() {\r\n if (this.iconpositioner === null && this.controlData.IconPosition)\r\n this.iconpositioner = utils.compile(this, this.controlData.IconPosition);\r\n if (this.iconpositioner)\r\n return utils.evaluate(this.iconpositioner, this);\r\n return 'right';\r\n },\r\n iconGap() {\r\n if (this.icongapeval === null && this.controlData.IconGap)\r\n this.icongapeval = utils.compile(this, this.controlData.IconGap);\r\n if (this.icongapeval)\r\n return utils.evaluate(this.icongapeval, this);\r\n return 10;\r\n },\r\n flipHorizontally() {\r\n if (this.flipHorizontallyEval === null && this.controlData.FlipHorizontally)\r\n this.flipHorizontallyEval = utils.compile(this, this.controlData.FlipHorizontally);\r\n if (this.flipHorizontallyEval)\r\n return utils.evaluate(this.flipHorizontallyEval, this);\r\n return false;\r\n },\r\n flipVertically() {\r\n if (this.flipVerticallyEval === null && this.controlData.flipVertically)\r\n this.flipVerticallyEval = utils.compile(this, this.controlData.flipVertically);\r\n if (this.flipVerticallyEval)\r\n return utils.evaluate(this.flipVerticallyEval, this);\r\n return false;\r\n },\r\n border() {\r\n if (this.borderEval === null && this.controlData.Border)\r\n this.borderEval = utils.compile(this, this.controlData.Border);\r\n if (this.borderEval)\r\n return utils.evaluate(this.borderEval, this);\r\n return false;\r\n },\r\n animation() {\r\n if (this.animationEval === null && this.controlData.Animation)\r\n this.animationEval = utils.compile(this, this.controlData.Animation);\r\n if (this.animationEval)\r\n return utils.evaluate(this.animationEval, this);\r\n return 'None';\r\n },\r\n color() {\r\n let theColor = 'secondary';\r\n if (this.colorEval === null && this.controlData.Color)\r\n this.colorEval = utils.compile(this, this.controlData.Color);\r\n if (this.colorEval)\r\n theColor = utils.evaluate(this.colorEval, this);\r\n\r\n if (this.isOutlined && theColor)\r\n theColor = theColor.replace('outline-', '');\r\n else\r\n theColor = theColor || 'secondary';\r\n // This helps with backwards compatibility for a version of Bootstrap that used the word 'default' to describe the secondary button\r\n return theColor === 'default' ? 'secondary' : theColor;\r\n },\r\n cssClass() {\r\n if (this.cssClassEval === null && this.controlData.CssClass)\r\n this.cssClassEval = utils.compile(this, this.controlData.CssClass);\r\n if (this.cssClassEval)\r\n return utils.evaluate(this.cssClassEval, this);\r\n return '';\r\n },\r\n tooltip() {\r\n if (this.tooltiprenderer === null && this.controlData.Tooltip)\r\n this.tooltiprenderer = utils.compile(this, this.Translate(this.controlData.Tooltip));\r\n if (this.tooltiprenderer) {\r\n return utils.evaluate(this.tooltiprenderer, this);\r\n }\r\n return '';\r\n },\r\n tooltipLocation() {\r\n let location = '';\r\n if (this.tooltipLocationEval === null && this.controlData.TooltipLocation)\r\n this.tooltipLocationEval = utils.compile(this, this.controlData.TooltipLocation);\r\n if (this.tooltipLocationEval)\r\n location = utils.evaluate(this.tooltipLocationEval, this);\r\n\r\n return location.split('-')[0].toLowerCase() || 'top';\r\n },\r\n popupMenuPlacement() {\r\n if (this.popupMenuPlacementEval === null && this.controlData.PopupMenuPlacement)\r\n this.popupMenuPlacementEval = utils.compile(this, this.controlData.PopupMenuPlacement);\r\n if (this.popupMenuPlacementEval)\r\n return utils.evaluate(this.popupMenuPlacementEval, this);\r\n return 'bottom';\r\n },\r\n popupMenuBackgroundColor() {\r\n if (this.popupMenuBackgroundColorEval === null && this.controlData.PopupMenuBackgroundColor)\r\n this.popupMenuBackgroundColorEval = utils.compile(this, this.controlData.PopupMenuBackgroundColor);\r\n if (this.popupMenuBackgroundColorEval)\r\n return utils.evaluate(this.popupMenuBackgroundColorEval, this);\r\n return '';\r\n },\r\n popupMenuFontColor() {\r\n if (this.popupMenuFontColorEval === null && this.controlData.PopupMenuFontColor)\r\n this.popupMenuFontColorEval = utils.compile(this, this.controlData.PopupMenuFontColor);\r\n if (this.popupMenuFontColorEval)\r\n return utils.evaluate(this.popupMenuFontColorEval, this);\r\n return '';\r\n },\r\n popupMenuWidth() {\r\n if (this.popupMenuWidthEval === null && this.controlData.PopupMenuWidth)\r\n this.popupMenuWidthEval = utils.compile(this, this.controlData.PopupMenuWidth);\r\n if (this.popupMenuWidthEval)\r\n return utils.evaluate(this.popupMenuWidthEval, this);\r\n return '';\r\n },\r\n popupMenuBodyPadding() {\r\n if (this.popupMenuBodyPaddingEval === null && this.controlData.PopupMenuBodyPadding)\r\n this.popupMenuBodyPaddingEval = utils.compile(this, this.controlData.PopupMenuBodyPadding);\r\n if (this.popupMenuBodyPaddingEval)\r\n return utils.evaluate(this.popupMenuBodyPaddingEval, this);\r\n return '';\r\n },\r\n isDefault() {\r\n if (this.isDefaultEval === null && this.controlData.IsDefault)\r\n this.isDefaultEval = utils.compile(this, this.controlData.IsDefault);\r\n if (this.isDefaultEval)\r\n return utils.evaluate(this.isDefaultEval, this);\r\n return false;\r\n },\r\n isdisabled() {\r\n if (this.isdisabledeval === null && this.controlData.IsDisabled)\r\n this.isdisabledeval = utils.compile(this, this.controlData.IsDisabled);\r\n if (this.isdisabledeval)\r\n return utils.evaluate(this.isdisabledeval, this);\r\n return false;\r\n },\r\n isOutlined() {\r\n return this.controlData.Color && this.controlData.Color.startsWith('outline-');\r\n },\r\n buttonClasses() {\r\n let classes = {\r\n 'ThemeRightConnector': this.themes.rightConnector,\r\n 'ThemeLeftConnector': this.themes.leftConnector,\r\n };\r\n\r\n classes[this.cssClass] = true;\r\n\r\n return classes;\r\n },\r\n iconClasses() {\r\n return {\r\n 'mdi mdi-flip-vertical': this.flipVertically,\r\n 'mdi mdi-flip-horizontal': this.flipHorizontally,\r\n 'mdi mdi-border-all-variant': this.border,\r\n 'mdi-animate-spin': this.animation === 'Spin',\r\n 'mdi-animate-pulse': this.animation === 'Pulse',\r\n }\r\n },\r\n themes() {\r\n return {\r\n flat: this.controlData.Themes ? this.controlData.Themes.includes(\"Flat\") || this.controlData.Themes.includes(\"FlatWhite\") || this.controlData.Themes.includes(\"Transparent\") : false,\r\n small: this.controlData.Themes ? this.controlData.Themes.includes(\"Condensed\") || this.controlData.Themes.includes(\"CondensedBordered\") : false,\r\n condensedBordered: this.controlData.Themes ? this.controlData.Themes.includes(\"CondensedBordered\") : false,\r\n transparent: this.controlData.Themes ? this.controlData.Themes.includes(\"Transparent\") : false,\r\n leftConnector: this.controlData.Themes ? this.controlData.Themes.includes(\"LeftConnector\") : false,\r\n rightConnector: this.controlData.Themes ? this.controlData.Themes.includes(\"RightConnector\") : false,\r\n }\r\n },\r\n styles() {\r\n return {\r\n ...utils.resolveStyleHints(this.styleHints, this),\r\n overflow: \"hidden\",\r\n whiteSpace: \"nowrap\",\r\n };\r\n }\r\n },\r\n methods: {\r\n preRenderComplete(){\r\n this.finishRenderHandler(this);\r\n this.Refresh();\r\n },\r\n async Refresh() {\r\n switch (this.controlData.MenuSourceType) {\r\n\r\n case 'Json':\r\n this.menu_data = utils.evaluateObject(this.menusourceexpn, this);\r\n break;\r\n\r\n case 'URL':\r\n const url = utils.evaluate(this.menuurlexpn, this);\r\n this.menu_data = await utils.api.get(url);\r\n break;\r\n }\r\n },\r\n async doClick(e, h) {\r\n e.cancelBubble = true;\r\n e.stopPropagation();\r\n },\r\n menuOpenClose(state) {\r\n if (this.controlData.OnMenuOpen)\r\n utils.executeAndCompileAllActions(this.controlData.OnMenuOpen, { State: state }, this);\r\n },\r\n menuClick(e, m) {\r\n if (m.Actions)\r\n utils.executeAndCompileAllActions(m.Actions, {}, this);\r\n },\r\n },\r\n props: {\r\n },\r\n render(h) {\r\n if (!this.todisplay)\r\n return null;\r\n\r\n let content = [];\r\n\r\n if (this.text && this.icon) {\r\n if (this.iconPosition === 'Left') content.push({this.icon});\r\n content.push(this.text);\r\n if (!this.iconPosition || this.iconPosition === 'Right') content.push({this.icon});\r\n }\r\n else if (this.text)\r\n content.push(this.text);\r\n else if (this.icon)\r\n content.push({this.icon});\r\n\r\n let menu;\r\n\r\n if (this.menu_data && this.menu_data.length > 0) {\r\n const scopedSlots = {\r\n activator: ({ on, attrs }) => {\r\n let button = (\r\n \r\n {content}\r\n \r\n );\r\n\r\n return utils.generateTooltip(h, button, this.tooltip, this.tooltipLocation);\r\n }\r\n };\r\n\r\n const items = [];\r\n for (let i = 0; i < this.menu_data.length; i++) {\r\n const m = this.menu_data[i];\r\n if (m.Separator)\r\n items.push();\r\n else {\r\n if (m.EnabledExpression && !m.$$enabledexpn)\r\n m.$$enabledexpn = utils.compileExpression(this, m.EnabledExpression);\r\n\r\n if (m.Icon && !m.$$iconexpn)\r\n m.$$iconexpn = utils.compile(this, m.Icon);\r\n\r\n if (m.Icon && m.IconColor && !m.$$iconcolorexpn)\r\n m.$$iconcolorexpn = utils.compile(this, m.IconColor);\r\n\r\n if(m.Title && !m.$$titleexpn)\r\n m.$$titleexpn = utils.compile(this, m.Title);\r\n\r\n let menuicon;\r\n if (m.$$iconexpn) {\r\n let iconcolor;\r\n if (m.$$iconcolorexpn)\r\n iconcolor = utils.evaluate(m.$$iconcolorexpn, this);\r\n\r\n menuicon =\r\n \r\n {utils.evaluate(m.$$iconexpn, this)}\r\n ;\r\n }\r\n\r\n items.push(\r\n this.menuClick(e, m)}>\r\n {menuicon}\r\n \r\n {utils.evaluate(m.$$titleexpn, this)}\r\n \r\n\r\n \r\n );\r\n }\r\n }\r\n\r\n menu = (\r\n this.menuOpenClose(state)}\r\n >\r\n \r\n \r\n {items}\r\n \r\n \r\n \r\n );\r\n }\r\n else\r\n menu =\r\n \r\n {content}\r\n ;\r\n\r\n return (\r\n \r\n {menu}\r\n \r\n );\r\n }\r\n});","import Vue from 'vue';\r\nimport BaseComponent from './BaseComponentMixin.jsx';\r\nimport utils from '../../Shared/utils.jsx';\r\n\r\nVue.component('cc-progress-bar', {\r\n mixins: [BaseComponent],\r\n data: function () {\r\n return {\r\n tooltipEval: null,\r\n tooltipPlacementEval: null,\r\n disabledEval: null,\r\n objectFitEval: null,\r\n }\r\n },\r\n //Created Replaced with preRenderComplete\r\n computed: {\r\n style() {\r\n return {\r\n ...utils.resolveStyleHints(this.styleHints, this),\r\n ...this.sizeStyle,\r\n overflow: \"none\",\r\n };\r\n },\r\n tooltip() {\r\n try {\r\n if (this.tooltipEval === null && this.controlData.Tooltip)\r\n this.tooltipEval = utils.compile(this, this.Translate(this.controlData.Tooltip));\r\n if (this.tooltipEval)\r\n return utils.evaluate(this.tooltipEval, this);\r\n return '';\r\n }\r\n catch (e) {\r\n utils.warn('Tooltip could not evaluate expression: ' + this.controlData.Tooltip + '; ' + e);\r\n return '';\r\n }\r\n },\r\n tooltipPlacement() {\r\n try {\r\n if (this.tooltipPlacementEval === null && this.controlData.TooltipPlacement)\r\n this.tooltipPlacementEval = utils.compile(this, this.controlData.TooltipPlacement);\r\n let placement = '';\r\n if (this.tooltipPlacementEval)\r\n placement = utils.evaluate(this.tooltipPlacementEval, this);\r\n return placement.split('-')[0].toLowerCase() || 'top';\r\n }\r\n catch (e) {\r\n utils.warn('TooltipPlacement could not evaluate expression: ' + this.controlData.TooltipPlacement + '; ' + e);\r\n return '';\r\n }\r\n },\r\n color() {\r\n if (!this.color_fn && this.controlData.Color)\r\n this.color_fn = utils.compile(this, this.controlData.Color);\r\n\r\n return this.color_fn ? utils.evaluate(this.color_fn, this) : undefined;\r\n },\r\n value() {\r\n if (!this.value_fn && this.controlData.ValueExpression)\r\n this.value_fn = utils.compileExpression(this, this.controlData.ValueExpression);\r\n\r\n return this.value_fn ? utils.evaluate(this.value_fn, this) : 0;\r\n },\r\n bufferValue() {\r\n if (!this.buffervalue_fn && this.controlData.BufferValueExpression)\r\n this.buffervalue_fn = utils.compileExpression(this, this.controlData.BufferValueExpression);\r\n\r\n return this.buffervalue_fn ? utils.evaluate(this.buffervalue_fn, this) : 100;\r\n },\r\n height() {\r\n if (this.controlData.SizeOptions && this.controlData.SizeOptions.Height && this.controlData.SizeOptions.Height.Mode == 'Fixed')\r\n return this.controlData.SizeOptions.Height.Value || 4;\r\n else\r\n return 4;\r\n },\r\n },\r\n methods: {\r\n async preRenderComplete() {\r\n this.finishRenderHandler(this);\r\n },\r\n getContent(value) {\r\n if (!this.content_fn && this.controlData.Content)\r\n this.content_fn = utils.compile(this, this.controlData.Content, false, 'value');\r\n\r\n return this.content_fn ? utils.evaluate(this.content_fn, this, false, null, false, value) : null;\r\n },\r\n },\r\n render(h) {\r\n if(!this.todisplay)\r\n return null;\r\n\r\n try {\r\n let scopedSlots;\r\n if (this.controlData.Content)\r\n scopedSlots = {\r\n default: ({ value }) => {this.getContent(value)}\r\n };\r\n \r\n let item = (\r\n \r\n \r\n );\r\n\r\n if (this.tooltip)\r\n item = utils.generateTooltip(h, item, this.tooltip, this.tooltipPlacement);\r\n\r\n return item;\r\n }\r\n catch (e) {\r\n utils.error('ProgressBar Render failed', e);\r\n return
ProgressBar Failed to Render {e}
;\r\n }\r\n }\r\n});","import Vue from 'vue';\r\nimport BaseComponent from './BaseComponentMixin.jsx';\r\nimport utils from '../../Shared/utils.jsx';\r\n\r\nVue.component('cc-progress-circle', {\r\n mixins: [BaseComponent],\r\n data: function () {\r\n return {\r\n tooltipEval: null,\r\n tooltipPlacementEval: null,\r\n disabledEval: null,\r\n objectFitEval: null,\r\n }\r\n },\r\n //Created Replaced with preRenderComplete\r\n computed: {\r\n style() {\r\n return {\r\n ...utils.resolveStyleHints(this.styleHints, this),\r\n ...this.sizeStyle,\r\n overflow: \"none\",\r\n };\r\n },\r\n tooltip() {\r\n try {\r\n if (this.tooltipEval === null && this.controlData.Tooltip)\r\n this.tooltipEval = utils.compile(this, this.Translate(this.controlData.Tooltip));\r\n if (this.tooltipEval)\r\n return utils.evaluate(this.tooltipEval, this);\r\n return '';\r\n }\r\n catch (e) {\r\n utils.warn('Tooltip could not evaluate expression: ' + this.controlData.Tooltip + '; ' + e);\r\n return '';\r\n }\r\n },\r\n tooltipPlacement() {\r\n try {\r\n if (this.tooltipPlacementEval === null && this.controlData.TooltipPlacement)\r\n this.tooltipPlacementEval = utils.compile(this, this.controlData.TooltipPlacement);\r\n let placement = '';\r\n if (this.tooltipPlacementEval)\r\n placement = utils.evaluate(this.tooltipPlacementEval, this);\r\n return placement.split('-')[0].toLowerCase() || 'top';\r\n }\r\n catch (e) {\r\n utils.warn('TooltipPlacement could not evaluate expression: ' + this.controlData.TooltipPlacement + '; ' + e);\r\n return '';\r\n }\r\n },\r\n color() {\r\n if (!this.color_fn && this.controlData.Color)\r\n this.color_fn = utils.compile(this, this.controlData.Color);\r\n\r\n return this.color_fn ? utils.evaluate(this.color_fn, this) : undefined;\r\n },\r\n value() {\r\n if (!this.value_fn && this.controlData.ValueExpression)\r\n this.value_fn = utils.compileExpression(this, this.controlData.ValueExpression);\r\n\r\n return this.value_fn ? utils.evaluate(this.value_fn, this) : 0;\r\n },\r\n width() {\r\n if (!this.width_fn && this.controlData.WidthExpression)\r\n this.width_fn = utils.compileExpression(this, this.controlData.WidthExpression);\r\n\r\n return this.width_fn ? utils.evaluate(this.width_fn, this) : 0;\r\n },\r\n size() {\r\n if (!this.size_fn && this.controlData.SizeExpression)\r\n this.size_fn = utils.compileExpression(this, this.controlData.SizeExpression);\r\n\r\n return this.size_fn ? utils.evaluate(this.size_fn, this) : 0;\r\n },\r\n rotate() {\r\n if (!this.rotate_fn && this.controlData.RotateExpression)\r\n this.rotate_fn = utils.compileExpression(this, this.controlData.RotateExpression);\r\n\r\n return this.rotate_fn ? utils.evaluate(this.rotate_fn, this) : 0;\r\n },\r\n content() {\r\n if (!this.content_fn && this.controlData.Content)\r\n this.content_fn = utils.compile(this, this.controlData.Content);\r\n\r\n return this.content_fn ? utils.evaluate(this.content_fn, this) : null;\r\n },\r\n },\r\n methods: {\r\n async preRenderComplete() {\r\n this.finishRenderHandler(this);\r\n },\r\n getContent(value) {\r\n if (!this.content_fn && this.controlData.Content)\r\n this.content_fn = utils.compile(this, this.controlData.Content, false, 'value');\r\n\r\n return this.content_fn ? utils.evaluate(this.content_fn, this, false, null, false, value) : null;\r\n },\r\n },\r\n render(h) {\r\n if(!this.todisplay)\r\n return null;\r\n\r\n try {\r\n let item = (\r\n \r\n {this.content}\r\n \r\n );\r\n\r\n if (this.tooltip)\r\n item = utils.generateTooltip(h, item, this.tooltip, this.tooltipPlacement);\r\n\r\n return item;\r\n }\r\n catch (e) {\r\n utils.error('ProgressCircle Render failed', e);\r\n return
ProgressCircle Failed to Render {e}
;\r\n }\r\n }\r\n});","import Vue from 'vue';\r\nimport utils from '../../Shared/utils.jsx';\r\nimport careHelpfulFunctions from '../careHelpfulFunctions.jsx';\r\nimport BaseComponent from './BaseComponentMixin.jsx';\r\nimport \"./css/RealTimeGrid.css\";\r\n\r\n/*\r\n This grid is based on the Vuetify data grid because Ag-Grid's version that supports server-side data sources\r\n requires the enterprise license for all features. The Vuetify version is not as advanced, but does offer\r\n enough features for the initial proof of concept, which is for real-time data grids that rely upon the\r\n new back-end real-time data feeds. (10/19/2022)\r\n*/\r\n\r\nconst CellButton = {\r\n data: () => ({\r\n type: 'CellButton',\r\n }),\r\n created() {\r\n if (this.btn.Condition && !this.btn.$$Condition)\r\n this.btn.$$Condition = utils.compileExpression(this, this.btn.Condition, this.cd.RowModelName || 'row');\r\n\r\n if (this.btn.Icon && !this.btn.$$Icon)\r\n this.btn.$$Icon = utils.compile(this, this.btn.Icon, false, this.cd.RowModelName || 'row');\r\n\r\n if (this.btn.Color && !this.btn.$$Color)\r\n this.btn.$$Color = utils.compile(this, this.btn.Color, false, this.cd.RowModelName || 'row');\r\n\r\n if (this.btn.Tooltip && !this.btn.$$Tooltip)\r\n this.btn.$$Tooltip = utils.compile(this, this.btn.Tooltip, false, this.cd.RowModelName || 'row');\r\n },\r\n props: {\r\n btn: null,\r\n cd: null,\r\n c_context: null,\r\n rowData: null,\r\n },\r\n methods: {\r\n rowMenuClick(e, data, btn, m) {\r\n //e.cancelBubble = true;\r\n //e.preventDefault();\r\n utils.executeAndCompileAllActions(m.Actions, { RowIndex: -1, Data: this.rowData.item }, this.c_context);\r\n },\r\n menuOpenClose(state, data, btn, m) {\r\n if (btn.OnMenuOpen)\r\n utils.executeAndCompileAllActions(btn.OnMenuOpen, { RowIndex: -1, Data: this.rowData.item, State: state }, this.c_context);\r\n },\r\n rowCommandClick(e, data, btn) {\r\n e.cancelBubble = true;\r\n e.preventDefault();\r\n utils.executeAndCompileAllActions(btn.Actions, { RowIndex: -1, Data: this.rowData.item }, this.c_context);\r\n },\r\n //used in the grid to calculate the value of the command column.\r\n getEvaluationResults(button, context, data) {\r\n var condition = (button.$$Condition ? utils.evaluate(button.$$Condition, context, false, null, false, data) : null);\r\n\r\n return {\r\n condition: condition,\r\n color: (button.$$Color && condition ? utils.evaluate(button.$$Color, context, false, null, false, data) : null),\r\n icon: (button.$$Icon && condition ? utils.evaluate(button.$$Icon, context, false, null, false, data) : null)\r\n };\r\n }\r\n },\r\n render(h) {\r\n const data = this.rowData.item;\r\n const btn = this.btn;\r\n\r\n if (btn.$$Condition && !utils.evaluate(btn.$$Condition, this.c_context, false, null, false, data))\r\n return null;\r\n\r\n let color;\r\n if (btn.$$Color)\r\n color = utils.evaluate(btn.$$Color, this.c_context, false, null, false, data);\r\n\r\n let icon;\r\n if (btn.$$Icon)\r\n icon = utils.evaluate(btn.$$Icon, this.c_context, false, null, false, data);\r\n\r\n let b;\r\n if (btn.Menu && btn.Menu.length > 0) {\r\n const scopedSlots = {\r\n activator: ({ on, attrs }) =>\r\n \r\n \r\n {icon}\r\n \r\n \r\n };\r\n\r\n const items = [];\r\n for (let i = 0; i < btn.Menu.length; i++) {\r\n const m = btn.Menu[i];\r\n if (m.Separator)\r\n items.push();\r\n else {\r\n if (m.EnabledExpression && !m.$$enabledexpn)\r\n m.$$enabledexpn = utils.compileExpression(this, m.EnabledExpression, this.cd.RowModelName || 'row');\r\n\r\n if (m.Icon && !m.$$iconexpn)\r\n m.$$iconexpn = utils.compile(this, m.Icon, this.cd.RowModelName || 'row');\r\n\r\n if (m.Icon && m.IconColor && !m.$$iconcolorexpn)\r\n m.$$iconcolorexpn = utils.compile(this, m.IconColor, this.cd.RowModelName || 'row');\r\n\r\n let menuicon;\r\n if (m.$$iconexpn) {\r\n let iconcolor;\r\n if (m.$$iconcolorexpn)\r\n iconcolor = utils.evaluate(m.$$iconcolorexpn, this.c_context, false, null, false, data);\r\n\r\n menuicon =\r\n \r\n {utils.evaluate(m.$$iconexpn, this.c_context, false, null, false, data)}\r\n ;\r\n }\r\n\r\n items.push(\r\n this.rowMenuClick(e, data, btn, m)}>\r\n {menuicon}\r\n \r\n {m.Title}\r\n \r\n\r\n \r\n );\r\n }\r\n }\r\n\r\n b = (\r\n this.menuOpenClose(state, data, btn)}\r\n >\r\n \r\n \r\n {items}\r\n \r\n \r\n \r\n );\r\n }\r\n else if (btn.Actions && btn.Actions.length > 0)\r\n b = (\r\n this.rowCommandClick(e, data, btn)}>\r\n \r\n {icon}\r\n \r\n \r\n );\r\n else\r\n b = (\r\n \r\n \r\n {icon}\r\n \r\n \r\n );\r\n\r\n if (btn.$$Tooltip) {\r\n const tooltip = utils.evaluate(btn.$$Tooltip, this.c_context, false, null, false, data);\r\n if (tooltip)\r\n b = utils.generateTooltip(h, b, tooltip, 'right');\r\n }\r\n\r\n return b;\r\n }\r\n};\r\n\r\nVue.component('real-time-grid', {\r\n mixins: [BaseComponent],\r\n components: {\r\n CellButton,\r\n },\r\n data: function () {\r\n return {\r\n id: null,\r\n gridName: null,\r\n\r\n totalRows: 0,\r\n rowdata: [],\r\n loading: false,\r\n options: {},\r\n dense: false,\r\n seachText: \"\",\r\n \r\n viewname: 'UserList~!!~null',\r\n // listName: 'AllUsers',\r\n sortCol: 'StartTime',\r\n descending: false,\r\n start: 0,\r\n length: 10,\r\n defaultRowsPerPage: 5,\r\n\r\n selected_items: [],\r\n selectableKey: \"id\",\r\n // searchFilters: {},\r\n column_visibility: null,\r\n\r\n menu_is_open: false,\r\n }\r\n },\r\n async created() {\r\n this.gridName = `RealTimeGrid_${this.controlData.Name || 'Unnamed'}`;\r\n const settings = this.System.LocalStorage(this.gridName + '.ColumnSettings');\r\n if (settings)\r\n this.column_visibility = JSON.parse(settings);\r\n else if (this.controlData.ColumnDefs && this.controlData.ColumnDefs.length)\r\n this.column_visibility = careHelpfulFunctions.arrayToObject(this.controlData.ColumnDefs, a => a.Field, b => b.Visible);\r\n else\r\n this.column_visibility = [];\r\n\r\n const options = this.System.LocalStorage(this.gridName + '.Options');\r\n if (options)\r\n this.options = { ...JSON.parse(options), page: 1, groupBy: [], groupDesc: [], mustSort: false, multiSort: false };\r\n\r\n if (this.controlData.RTEventSource)\r\n this.rteventsource_func = utils.compileExpression(this, this.controlData.RTEventSource);\r\n \r\n if (this.controlData.ListSource)\r\n this.listNameExpn = utils.compileObject(this, this.controlData.ListSource);\r\n\r\n if (this.controlData.Filters)\r\n this.filtersexpn = utils.compileObject(this, this.controlData.Filters);\r\n\r\n if (this.controlData.SelectOptions && this.controlData.SelectOptions.Enable && this.controlData.SelectOptions.SelectableExpression)\r\n this.selectableexpn = utils.compileExpression(this, this.controlData.SelectOptions.SelectableExpression, 'row');\r\n\r\n this.dense = !!this.controlData.Dense;\r\n\r\n if (this.controlData.SelectOptions && this.controlData.SelectOptions.Enable && this.controlData.SelectOptions.SelectableKey)\r\n this.selectableKey = this.controlData.SelectOptions.SelectableKey\r\n\r\n if(this.controlData.DefaultRowsPerPage)\r\n this.defaultRowsPerPage = this.controlData.DefaultRowsPerPage;\r\n },\r\n //Mounted Replaced with preRenderComplete\r\n destroyed() {\r\n if (this.datawatch$)\r\n this.datawatch$();\r\n\r\n if (this.filters_watch$)\r\n this.filters_watch$();\r\n\r\n if (this.viewname && this.id)\r\n this.rtEvents.RemoveNamedListForRealTime(this.viewname, this.id);\r\n }, \r\n computed: {\r\n headers: function () {\r\n // Generate a list of headers that are physically in the grid - invisible columns are excluded\r\n let headers = this.generateHeaders();\r\n\r\n return [\r\n ...headers.filter(h => this.column_visibility[h.value]),\r\n // {\r\n // value: '_menu_',\r\n // text: '',\r\n // align: 'end',\r\n // sortable: false,\r\n // }\r\n ];\r\n },\r\n filters: function () {\r\n return this.filtersexpn ? utils.evaluateObject(this.filtersexpn, this) : null;\r\n },\r\n listName: function() {\r\n return this.listNameExpn ? utils.evaluateObject(this.listNameExpn, this) : null;\r\n },\r\n serverProperties: function () {\r\n // Generate a list of columns to send to the web server to be included in the server push\r\n const columns = this.generateHeaders().filter(a => a.value && a.value != '_menu_').map(a => a.value);\r\n var serverProperties = columns;\r\n if(this.controlData.AdditionalProperties) {\r\n const additionalProperties = this.controlData.AdditionalProperties.filter(a => a).map(b => b.trim());\r\n serverProperties = _.uniq([...columns,...additionalProperties]);\r\n }\r\n\r\n return serverProperties;\r\n },\r\n footer: function () {\r\n return {\r\n itemsPerPageOptions: Array.from({length: 30}, (_, i) => i + 1) //initialize 1 to 30\r\n };\r\n },\r\n showSelect: function () {\r\n return this.controlData.SelectOptions.Enable;\r\n },\r\n singleSelect: function () {\r\n return !this.controlData.SelectOptions.MultiSelect;\r\n },\r\n menuContent: function () {\r\n // Return a popup menu that lists all available columns with a check box to turn on and off each\r\n\r\n const h = this.$createElement;\r\n\r\n const menus = [];\r\n\r\n if (this.controlData.ColumnDefs && this.controlData.ColumnDefs.length)\r\n for (let c of this.controlData.ColumnDefs.filter(cd => cd.Field)) {\r\n menus.push(\r\n { this.menu_is_open = false; this.toggleColumnVisibility(c.Field); }}>\r\n \r\n {this.column_visibility[c.Field] ? 'mdi-check' : ''}\r\n \r\n \r\n {c.DisplayName || c.Field}\r\n \r\n \r\n );\r\n }\r\n\r\n const scopedSlots = {\r\n activator: ({ on, attrs }) =>\r\n \r\n \r\n mdi-menu\r\n \r\n \r\n };\r\n\r\n return (\r\n this.menu_is_open = state}\r\n >\r\n \r\n \r\n {menus}\r\n \r\n \r\n \r\n );\r\n },\r\n rtEvents: function () {\r\n if (this.rteventsource_func)\r\n return utils.evaluate(this.rteventsource_func, this);\r\n else\r\n return null;\r\n },\r\n scopedSlots: function () {\r\n const h = this.$createElement;\r\n\r\n const slots = {\r\n ['top']: () => \r\n
\r\n { this.controlData.EnableFilter ?\r\n this.updateSearchFilter(value)}\r\n > : \r\n
\r\n } \r\n \r\n {this.menuContent}\r\n
,\r\n };\r\n\r\n\r\n if (this.controlData.ColumnDefs && this.controlData.ColumnDefs.length)\r\n for (let cd of this.controlData.ColumnDefs) {\r\n const name = `item.${cd.Field}`;\r\n \r\n let field_extractor = cd.field_extractor;\r\n if (!field_extractor)\r\n field_extractor = new Function('f', `return f.${cd.Field};`);\r\n\r\n if (cd.Condition && !cd.condition_expn)\r\n cd.condition_expn = utils.compileExpression(this, cd.Condition, [cd.RowModelName || 'row', cd.ItemModelName || 'item']);\r\n\r\n if(cd.ActionOnlyColumn) {\r\n if (cd.condition_expn)\r\n slots[name] = (node) => utils.evaluate(cd.condition_expn, this, false, null, false, [node.item, field_extractor(node.item)], true) ? this.actionButtons(node, cd) : '';\r\n else\r\n slots[name] = (node) => this.actionButtons(node, cd);\r\n } else {\r\n let dataType;\r\n \r\n if (cd.DataType && cd.DataType != 'default')\r\n dataType = cd.DataType;\r\n \r\n let valueGetter;\r\n if (cd.Value && !cd.value_expn)\r\n cd.value_expn = utils.compile(this, cd.Value, false, [cd.RowModelName || 'row', cd.ItemModelName || 'item']);\r\n \r\n if (cd.condition_expn && cd.value_expn)\r\n valueGetter = (node) => utils.evaluate(cd.condition_expn, this, false, null, false, [node.item, field_extractor(node.item)], true) ? utils.evaluate(cd.value_expn, this, false, null, false, [node.item, field_extractor(node.item)], true) : '';\r\n else if (cd.value_expn)\r\n valueGetter = (node) => utils.evaluate(cd.value_expn, this, false, null, false, [node.item, field_extractor(node.item)], true);\r\n \r\n let valueFormatter;\r\n if (cd.CellFilter && !cd.cellfilter_expn) {\r\n const filter = `{{ row.${cd.Field} | ${cd.CellFilter} }}`;\r\n cd.cellfilter_expn = utils.compile(this, filter, false, ['row', cd.ItemModelName || 'item']);\r\n }\r\n if (cd.cellfilter_expn && cd.condition_expn)\r\n valueFormatter = (node) => utils.evaluate(cd.condition_expn, this, false, null, false, [node.item, field_extractor(node.item)], true) ? utils.evaluate(cd.cellfilter_expn, this, false, null, false, [node.item, field_extractor(node.item)], true) : '';\r\n else if (cd.cellfilter_expn && !cd.condition_expn)\r\n valueFormatter = (node) => utils.evaluate(cd.cellfilter_expn, this, false, null, false, [node.item, field_extractor(node.item)], true);\r\n else if (cd.condition_expn && !valueGetter)\r\n valueFormatter = (node) => utils.evaluate(cd.condition_expn, this, false, null, false, [node.item, field_extractor(node.item)], true) ? field_extractor(node.item) : '';\r\n \r\n if (!valueGetter && !valueFormatter) {\r\n const code = `return typeof data === 'object' ? JSON.stringify(data) : data;`;\r\n const func = new Function('data', code);\r\n valueFormatter = (node) => {\r\n try { return func(field_extractor(node.item)); } catch (e) {\r\n utils.warn(`Grid cell failed to evaluate ${code}`, e); return '';\r\n }\r\n };\r\n }\r\n \r\n if (valueFormatter)\r\n slots[name] = valueFormatter;\r\n \r\n if (valueGetter)\r\n slots[name] = valueGetter;\r\n }\r\n }\r\n\r\n if (!Object.keys(slots).length)\r\n return undefined;\r\n\r\n return slots;\r\n },\r\n\r\n //-- Public Properties --//\r\n\r\n SelectedRowsAsArray: {\r\n get: function () {\r\n return this.selected_items;\r\n },\r\n set: function (value) {\r\n this.selected_items = value;\r\n }\r\n },\r\n },\r\n methods: {\r\n preRenderComplete() {\r\n this.finishRenderHandler(this);\r\n\r\n if (!this.GlobalVars.RTData.Views[this.viewname])\r\n Vue.set(this.GlobalVars.RTData.Views, this.viewname, { Total: 0, Data: [] });\r\n\r\n this.datawatch$ = this.$watch(\r\n function () {\r\n return this.GlobalVars.RTData.Views[this.viewname];\r\n },\r\n function (newv, oldv) {\r\n this.rowdata = this.GlobalVars.RTData.Views[this.viewname].Data;\r\n this.totalRows = this.GlobalVars.RTData.Views[this.viewname].Total;\r\n }\r\n );\r\n\r\n if (!this.filters_watch$)\r\n this.filters_watch$ = this.$watch(\r\n function (newvalue) {\r\n return this.filters;\r\n },\r\n function (val, oldval) {\r\n this.getDataFromApi();\r\n },\r\n {\r\n deep: true\r\n }\r\n );\r\n\r\n if (!this.listname_watch$)\r\n this.listname_watch$ = this.$watch(\r\n function (newvalue) {\r\n return this.listName;\r\n },\r\n function (val, oldval) {\r\n this.getDataFromApi();\r\n },\r\n {\r\n deep: true\r\n }\r\n );\r\n },\r\n updateSearchFilter(filter) {\r\n this.searchText = filter;\r\n\r\n this.getDataFromApi();\r\n },\r\n async getDataFromApi() {\r\n this.loading = true;\r\n\r\n // request data\r\n\r\n let res;\r\n let filter = this.filters;\r\n \r\n if(!filter)\r\n filter = {};\r\n\r\n if(this.searchText) {\r\n filter[\"_any_\"] = this.searchText;\r\n }\r\n\r\n \r\n\r\n try {\r\n res = await this.rtEvents.GetNamedListForRealTime(\r\n this.listName, this.sortCol, this.descending, this.start, this.length, this.serverProperties, filter, this.id);\r\n\r\n }\r\n catch (error) {\r\n this.loading = false;\r\n return;\r\n }\r\n\r\n let viewname = this.viewname;\r\n if (res && res.Response) {\r\n viewname = res.ViewHash;\r\n this.id = res.ID;\r\n const rawdata = res.Response;\r\n Vue.set(this.GlobalVars.RTData.Views, viewname,\r\n {\r\n Total: rawdata.Total,\r\n Data: rawdata.Data,\r\n });\r\n\r\n this.rowdata = rawdata.Data;\r\n this.totalRows = rawdata.Total;\r\n\r\n if (res.ViewHash !== this.viewname && this.viewname) {\r\n // No need to remove the old view, subscribing to a new view updates the old view and we don't have to clear it\r\n // this.rtEvents.RemoveNamedListForRealTime(this.viewname, this.id);\r\n }\r\n this.viewname = viewname;\r\n this.loading = false;\r\n return;\r\n }\r\n\r\n if (!this.GlobalVars.RTData.Views[viewname])\r\n Vue.set(this.GlobalVars.RTData.Views, viewname, { Total: 0, Data: [] });\r\n\r\n this.rowdata = this.GlobalVars.RTData.Views[viewname].Data;\r\n this.totalRows = this.GlobalVars.RTData.Views[viewname].Total;\r\n\r\n this.viewname = viewname;\r\n this.loading = false;\r\n },\r\n updateOptions(args) {\r\n // Ex: {\"page\":1,\"itemsPerPage\":10,\"sortBy\":[\"FullName\"],\"sortDesc\":[true],\"groupBy\":[],\"groupDesc\":[],\"mustSort\":false,\"multiSort\":false}\r\n utils.debug('RealTimeGrid.updateOptions: ' + JSON.stringify(args));\r\n\r\n this.sortCol = args.sortBy.length > 0 ? args.sortBy[0] : null;\r\n this.descending = args.sortDesc.length > 0 ? args.sortDesc[0] : false;\r\n this.start = (args.page - 1) * args.itemsPerPage;\r\n this.length = args.itemsPerPage;\r\n\r\n this.options = args;\r\n this.getDataFromApi();\r\n\r\n // Save only the options we care to save\r\n const tosave = { itemsPerPage: args.itemsPerPage, sortBy: args.sortBy, sortDesc: args.sortDesc };\r\n\r\n this.System.LocalStorage(this.gridName + '.Options', JSON.stringify(tosave));\r\n },\r\n toggleColumnVisibility(fieldName) {\r\n if (this.column_visibility[fieldName])\r\n Vue.set(this.column_visibility, fieldName, false);\r\n else\r\n Vue.set(this.column_visibility, fieldName, true);\r\n\r\n this.System.LocalStorage(this.gridName + '.ColumnSettings', JSON.stringify(this.column_visibility));\r\n\r\n this.getDataFromApi();\r\n },\r\n clickItem(e, column, row, value) {\r\n utils.executeAndCompileAllActions(column.Advanced.Actions, { Data: row, Value: value, Column: column }, this);\r\n },\r\n selectedItemsChanged(items) {\r\n this.selected_items = items;\r\n },\r\n actionButtons(item, cd) {\r\n let buttons = [];\r\n \r\n for(let cb of cd.CommandButtons) {\r\n buttons.push(\r\n \r\n \r\n )\r\n }\r\n return buttons;\r\n },\r\n generateHeaders() {\r\n const headers = [];\r\n\r\n if (this.controlData.ColumnDefs)\r\n for (let c of this.controlData.ColumnDefs) {\r\n let cdef = {\r\n value: c.Field,\r\n text: c.DisplayName || c.Field,\r\n align: 'start',\r\n sortable: !c.ActionOnlyColumn,\r\n };\r\n if (c.Align !== undefined)\r\n cdef.align = c.Align;\r\n if (c.Sortable !== undefined)\r\n cdef.sortable = c.Sortable;\r\n\r\n headers.push(cdef);\r\n }\r\n\r\n return headers;\r\n },\r\n\r\n //-- Public Methods --//\r\n\r\n ClearSelection() {\r\n this.selected_items = [];\r\n },\r\n },\r\n props: {\r\n },\r\n render(h) {\r\n if (!this.todisplay)\r\n return null;\r\n\r\n const style = {\r\n overflow: \"auto\",\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n padding: '8px',\r\n ...this.sizeStyle,\r\n };\r\n\r\n this.rowdata.forEach((r) => {\r\n if (this.selectableexpn)\r\n r.isSelectable = utils.evaluate(this.selectableexpn, this, false, null, false, r);\r\n })\r\n\r\n const grid = (\r\n \r\n this.selectedItemsChanged(items)}\r\n value={this.selected_items}\r\n calculate-widths\r\n fixed-header={true}\r\n >\r\n \r\n \r\n );\r\n\r\n return grid;\r\n }\r\n});","import Vue from 'vue';\r\nimport BaseComponent from './BaseComponentMixin.jsx';\r\nimport EventBus from '../event-bus.js';\r\nimport utils from '../../Shared/utils.jsx';\r\n\r\nVue.component('realtime-widget-listener', {\r\n mixins: [BaseComponent],\r\n data: function () {\r\n return {\r\n active_name: null,\r\n active_args: null,\r\n }\r\n },\r\n props: {},\r\n computed: {\r\n rtData: function () {\r\n return this.rteventsourceexpn ? utils.evaluate(this.rteventsourceexpn, this) : null;\r\n },\r\n widgetName: function () {\r\n return this.widgetnameexpn ? utils.evaluate(this.widgetnameexpn, this) : null;\r\n },\r\n filters: function () {\r\n return this.filtersexpn ? utils.evaluateObject(this.filtersexpn, this) : null;\r\n },\r\n\r\n //---- Public properties ----//\r\n\r\n ViewName: function () {\r\n let view = this.active_name;\r\n\r\n if (this.active_args && JSON.stringify(this.active_args) != '{}')\r\n view += '~!!~' + JSON.stringify(this.active_args);\r\n\r\n return view;\r\n },\r\n ViewData: function () {\r\n return this.rtData.Views[this.ViewName];\r\n },\r\n ViewIsReady: function () {\r\n return !!this.rtData.Views && !!(this.rtData.Views[this.ViewName]);\r\n },\r\n },\r\n created() {\r\n if (this.controlData.RTEventSource)\r\n this.rteventsourceexpn = utils.compileExpression(this, this.controlData.RTEventSource);\r\n\r\n if (this.controlData.WidgetName)\r\n this.widgetnameexpn = utils.compile(this, this.controlData.WidgetName);\r\n\r\n if (this.controlData.Filters)\r\n this.filtersexpn = utils.compileObject(this, this.controlData.Filters);\r\n },\r\n //Mounted Replaced with preRenderComplete\r\n destroyed() {\r\n if (this.filters_watch$)\r\n this.filters_watch$();\r\n\r\n if (this.active_name)\r\n this.rtData.RemoveView(this.active_name, this.active_args);\r\n },\r\n methods: {\r\n preRenderComplete() {\r\n this.finishRenderHandler(this);\r\n\r\n this.updateRegistration();\r\n\r\n if (!this.filters_watch$)\r\n this.filters_watch$ = this.$watch(\r\n function (newvalue) {\r\n return this.filters;\r\n },\r\n function (val, oldval) {\r\n this.updateRegistration();\r\n },\r\n {\r\n deep: true\r\n }\r\n );\r\n },\r\n updateRegistration() {\r\n if (this.active_name)\r\n this.rtData.RemoveView(this.active_name, this.active_args);\r\n\r\n if (this.widgetName)\r\n this.rtData.AddView(this.widgetName, this.filters);\r\n\r\n this.active_name = this.widgetName;\r\n this.active_args = this.filters;\r\n },\r\n },\r\n render(h) {\r\n return null;\r\n }\r\n});","import Vue from \"vue\";\r\nimport utils from \"../../Shared/utils.jsx\";\r\nimport BaseComponent from \"./BaseComponentMixin.jsx\";\r\nimport { appSettings } from \"../../Shared/appSettings.js\";\r\n\r\nVue.component(\"recaptcha\", {\r\n mixins: [BaseComponent],\r\n data: function() {\r\n return {\r\n reCaptchaUserResponse: null,\r\n };\r\n },\r\n computed: {\r\n styles() {\r\n return {\r\n ...this.sizeStyle,\r\n ...utils.resolveStyleHints(this.styleHints, this),\r\n };\r\n },\r\n },\r\n //Created replaced with preRenderComplete\r\n methods: {\r\n async preRenderComplete() {\r\n this.initReCaptcha();\r\n\r\n this.finishRenderHandler(this);\r\n },\r\n async initReCaptcha() {\r\n var self = this;\r\n\r\n setTimeout(function() {\r\n grecaptcha.render(\"grecaptcha\", {\r\n sitekey: appSettings.WhiteLabel.RecaptchaSiteKey,\r\n callback: function(response) {\r\n self.reCaptchaUserResponse = response;\r\n self.runActions({ UserResponse: response });\r\n },\r\n \"expired-callback\": function() {\r\n self.reCaptchaUserResponse = \"\";\r\n },\r\n \"data-size\": \"compact\",\r\n });\r\n });\r\n },\r\n async runActions(payload) {\r\n await utils.executeAndCompileAllActions(this.controlData.Actions, payload, this);\r\n },\r\n },\r\n render(h) {\r\n try {\r\n if (!this.todisplay) return null;\r\n\r\n return (\r\n \r\n
\r\n \r\n );\r\n } catch (e) {\r\n utils.error(\"ReCaptcha Render failed\", e);\r\n return
ReCaptcha Failed to Render {e}
;\r\n }\r\n },\r\n});\r\n","var render = function render(){var _vm=this,_c=_vm._self._c;return (this.todisplay)?_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(this.isvisible),expression:\"this.isvisible\"}],staticClass:\"d-flex flex-column\",class:{ 'c-RoosterEditor': true, [`c-name-${this.name || 'unnamed'}`]: true },staticStyle:{\"width\":\"fit-content\"},style:(_vm.sizeStyle)},[(_vm.preRenderDone)?_c('RoosterEditorBase',{attrs:{\"readonly\":_vm.readOnly,\"max-height\":_vm.maxHeight,\"initial-content\":_vm.source,\"disable-formatting\":!_vm.enableFormatting,\"allow-send\":_vm.showSendButton,\"send-on-enter\":_vm.showSendButton,\"send-disabled\":_vm.sendDisabled,\"disableImagePicker\":!_vm.enableImagePicker,\"disableQuickText\":!_vm.enableQuickText},on:{\"input\":_vm.sync,\"send\":_vm.doSend}}):_vm._e()],1):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\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/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RoosterEditor.vue?vue&type=script&lang=js&\"; 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/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RoosterEditor.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./RoosterEditor.vue?vue&type=template&id=5ca06105&\"\nimport script from \"./RoosterEditor.vue?vue&type=script&lang=js&\"\nexport * from \"./RoosterEditor.vue?vue&type=script&lang=js&\"\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 careHelpfulFunctions from \"@/Application/careHelpfulFunctions\";\r\n\r\nexport default function SAMLPopupManger()\r\n{\r\n var c = this;\r\n\r\n var childwindow = null;\r\n var callbackName = null;\r\n var closedWindowChecker = null;\r\n var promise = null;\r\n var promiseResolve = null;\r\n var promiseReject = null;\r\n\r\n // public methods\r\n c.open = open;\r\n\r\n function open(issuer)\r\n {\r\n if (!window.SAMLPopupCounter)\r\n window.SAMLPopupCounter = 1;\r\n else \r\n window.SAMLPopupCounter++;\r\n\r\n callbackName = \"popup_SAMLSSO\" + window.SAMLPopupCounter;\r\n\r\n var urlEncodedIssuer = careHelpfulFunctions.urlEncode(issuer);\r\n var urlEncodedCallbackName = careHelpfulFunctions.urlEncode(callbackName);\r\n\r\n promise = new Promise((resolveFn, rejectFn) => {\r\n promiseResolve = resolveFn;\r\n promiseReject = rejectFn;\r\n });\r\n\r\n window[callbackName] = callbackFunction;\r\n\r\n childwindow = window.open(\"/SSO/SAMLPopup?Issuer=\" + urlEncodedIssuer + \"&callbackName=\" + urlEncodedCallbackName, \"_blank\", \"location=no,toolbar=no,width=500,height=500,left=100,top=100;\");\r\n closedWindowChecker = window.setInterval(checkForClosedWindow, 500);\r\n\r\n return promise;\r\n }\r\n\r\n function callbackFunction(result)\r\n {\r\n cleanup();\r\n promiseResolve(result);\r\n }\r\n\r\n function reject(error)\r\n {\r\n cleanup();\r\n promiseReject(error);\r\n }\r\n\r\n function checkForClosedWindow()\r\n {\r\n if (!childwindow || childwindow.closed)\r\n reject(\"window closed\");\r\n }\r\n\r\n function cleanup()\r\n {\r\n if (childwindow && !childwindow.closed)\r\n childwindow.close();\r\n\r\n childwindow = null;\r\n\r\n if (closedWindowChecker)\r\n window.clearInterval(closedWindowChecker);\r\n\r\n closedWindowChecker = null;\r\n\r\n if (window[callbackName])\r\n delete window[callbackName];\r\n }\r\n}","import Vue from 'vue';\r\nimport BaseComponent from './BaseComponentMixin.jsx';\r\nimport utils from '../../Shared/utils.jsx';\r\nimport webSocket from '@/Services/webSocketService';\r\nimport EventBus from '@/Application/event-bus';\r\nimport careHelpfulFunctions from '@/Application/careHelpfulFunctions.jsx';\r\nimport apiService from '@/Services/api';\r\nimport defaultTheme from '@/plugins/themes/DefaultTheme';\r\nimport { CreateWebSocketConnection } from '@/Services/webSocketConnectionFactory';\r\n\r\nVue.component('rt-event-handler', {\r\n mixins: [BaseComponent],\r\n data: function () {\r\n return {\r\n isActive: false,\r\n readyToActivate: false,\r\n errorState: '',\r\n\r\n userlist: [],\r\n allusers: {},\r\n usermap: {},\r\n cache: {\r\n user_cache: {},\r\n intr_cache: {},\r\n\r\n user_filters: {\r\n team: null,\r\n },\r\n intr_filters: {\r\n channelType: null,\r\n team: null,\r\n queue: null,\r\n legType: null,\r\n },\r\n widget_views: {\r\n\r\n },\r\n },\r\n contactStatesMapping: {\r\n Linked: 'Answered',\r\n Transfer: 'Transfer',\r\n Reading: 'Reading',\r\n Unlinked: 'Hold',\r\n Composing: 'Composing',\r\n Starting: 'Pending',\r\n Chatting: 'Chatting',\r\n WrapUp: 'WrapUp',\r\n Busy: 'Busy',\r\n Delivered: 'Delivered',\r\n },\r\n stateNameMapping: {\r\n Ready: 'Ready',\r\n NotReady: 'Not Ready',\r\n Outbound: 'Outbound',\r\n Inbound: 'Inbound',\r\n WrapUp: 'Wrap Up',\r\n Busy: 'Busy',\r\n },\r\n requestedViews: [],\r\n }\r\n },\r\n props: {},\r\n computed: {\r\n UserList: function () {\r\n let result = Enumerable.From(this.cache.user_cache)\r\n .Select(item => {\r\n // Look over all state entities and find the most recent\r\n const zero = '0001-01-01T00:00:00';\r\n let qtime = Date.parse(item.Value.inqueue?.StartTime || zero);\r\n let wtime = Date.parse(item.Value.wall?.StartTime || zero);\r\n let stime = Date.parse(item.Value.state?.StartTime || zero);\r\n let rtime = Date.parse(item.Value.ready?.StartTime || zero);\r\n let last = new Date(Math.max(qtime, wtime, stime, rtime));\r\n let agentlegid = '';\r\n let activeContact = item.Value.activecontact || '';\r\n\r\n let state = (item.Value.wall?.Name == 'Ready' ? item.Value.state?.Payload?.ReadyDisplayName : item.Value.state?.Payload?.NotReadyDisplayName) || item.Value.state?.Name;\r\n\r\n state = this.stateNameMapping[state] || state; // map to beautified\r\n let intr_list = null;\r\n if (item.Value.interactions && Object.keys(item.Value.interactions).length > 0) {\r\n intr_list = Object.keys(item.Value.interactions).map(i => {\r\n const value = item.Value.interactions[i].Value;\r\n const general = item.Value.interactions[i].Session.general || {};\r\n if (general.Attributes?.AgentLegId)\r\n agentlegid = general.Attributes?.AgentLegId;\r\n\r\n let queue = value?.Attributes.Queue;\r\n if (queue === \"\")\r\n queue = general.Attributes?.Queue;\r\n\r\n let itime = Date.parse(value.StartTime);\r\n last = new Date(Math.max(last, itime));\r\n activeContact = i; // how do we know what is there active contact?\r\n let mappedName = this.contactStatesMapping[value?.Name] || value?.Name;\r\n return {\r\n SessionId: i,\r\n State: mappedName,\r\n ChannelType: value?.Attributes.ChannelType,\r\n Queue: queue,\r\n Direction: value?.Attributes.Direction,\r\n Attributes: value?.Attributes,\r\n StartTime: value.StartTime,\r\n General: general,\r\n };\r\n });\r\n\r\n if (intr_list.length == 1) {\r\n let dir = intr_list[0].Direction;\r\n let direction = dir.charAt(0).toUpperCase() + dir.slice(1);\r\n state = `${direction} ${intr_list[0].ChannelType} ${intr_list[0].State}`;\r\n }\r\n else if (intr_list.length > 1)\r\n state = 'Multiples';\r\n \r\n }\r\n\r\n let color = item.Value.inqueue ? defaultTheme.green : defaultTheme.red; // green & red\r\n if (intr_list) {\r\n if (intr_list.every(i => i.State.toLowerCase() == 'wrapup' || i.State.toLowerCase() == 'wrap up'))\r\n color = defaultTheme.wrapup;\r\n else if (intr_list.every(i => i.Direction == 'inbound'))\r\n color = defaultTheme.inbound;\r\n else if (intr_list.every(i => i.Direction == 'outbound'))\r\n color = defaultTheme.outbound;\r\n else if (intr_list.length > 0)\r\n color = defaultTheme.multiples;\r\n }\r\n let canBeSilentMonitored = false;\r\n if (agentlegid && agentlegid.length > 0 && intr_list.findIndex(i => (i.Queue != \"\" && i.Queue != undefined && i.Queue != null)) >=0 )\r\n canBeSilentMonitored = true;\r\n\r\n return {\r\n UserID: item.Key,\r\n User: this.allusers[item.Key],\r\n FullName: this.getUserFullName(item.Key) || 'Unknown',\r\n LoggedIn: item.Value.wall ? true : false,\r\n StateName: state,\r\n Color: color,\r\n ProfileID: item.Value.state?.Profile,\r\n Interactions: intr_list,\r\n IsReady: item.Value.inqueue ? true : false,\r\n Team: item.Value.state?.Attributes.Team,\r\n TimecardState: item.Value.state,\r\n WallState: item.Value.wall,\r\n ReadyState: item.Value.ready,\r\n QueueState: item.Value.inqueue,\r\n StartTime: last.toISOString(),\r\n AgentLegId: agentlegid,\r\n ActiveContact: activeContact,\r\n OwnerId: item.Value.ownerid,\r\n CanBeSilentMonitored: canBeSilentMonitored,\r\n };\r\n });\r\n\r\n if (typeof this.cache.user_filters.team === 'string')\r\n result = result.Where(a => a.Team == this.cache.user_filters.team);\r\n else if (Array.isArray(this.cache.user_filters.team))\r\n result = result.Where(a => this.cache.user_filters.team.some(b => b == a.Team));\r\n\r\n const list = result.ToArray();\r\n const present = {};\r\n\r\n // Save list of users as an object map so consumers can easily lookup a user's state\r\n for (let i = 0; i < list.length; i++) {\r\n Vue.set(this.usermap, list[i].UserID, list[i]);\r\n present[list[i].UserID] = true;\r\n }\r\n\r\n // Remove any users that are no longer present\r\n for (let key in this.usermap)\r\n if (!(key in present))\r\n Vue.delete(this.usermap, key);\r\n\r\n return list;\r\n },\r\n AllUsers: function () {\r\n let result = Enumerable.From(this.userlist)\r\n .Select(user => {\r\n const item = this.usermap[user.UserID];\r\n\r\n return {\r\n UserID: user.UserID,\r\n User: this.allusers[user.UserID],\r\n FullName: user.FullName,\r\n LoggedIn: !!item,\r\n StateName: item ? item.StateName : 'LoggedOff',\r\n Color: item?.Color || 'silver',\r\n ProfileID: item ? item.ProfileID : null,\r\n Interactions: item ? item.Interactions : null,\r\n IsReady: item ? item.IsReady : null,\r\n Team: item ? item.Team : null,\r\n TimecardState: item ? item.TimecardState : null,\r\n WallState: item ? item.WallState : null,\r\n ReadyState: item ? item.ReadyState : null,\r\n QueueState: item ? item.QueueState : null,\r\n StartTime: item ? item.StartTime : null,\r\n };\r\n });\r\n\r\n return result.ToArray();\r\n },\r\n Interactions: function () {\r\n let result = Enumerable.From(this.cache.intr_cache)\r\n .Where(item => item.Value.type != 'Unknown')\r\n .Select(item => ({\r\n SessionId: item.Key,\r\n ChannelType: item.Value.type,\r\n StateName: (this.contactStatesMapping[item.Value.user?.Value.Name] || item.Value.user?.Value.Name) || (this.contactStatesMapping[item.Value.general?.Name] || item.Value.general?.Name) || 'Unknown',\r\n UserState: (this.contactStatesMapping[item.Value.user?.Value.Name] || item.Value.user?.Value.Name) || 'NA',\r\n GeneralState: (this.contactStatesMapping[item.Value.general?.Name] || item.Value.general?.Name) || 'Unknown',\r\n CallerId: item.Value.general?.Attributes.CallerId,\r\n CallerIdName: item.Value.general?.Attributes.CallerIdName,\r\n CallerName: item.Value.general?.Attributes.CallerName,\r\n Destination: item.Value.general?.Attributes.Destination,\r\n Direction: item.Value.general?.Attributes.Direction,\r\n LegType: item.Value.general?.Attributes.LegType,\r\n Location: item.Value.general?.Attributes.Location,\r\n MasterId: item.Value.general?.Attributes.MasterId,\r\n Team: item.Value.general?.Attributes.Team,\r\n TimeInQueue: item.Value.general?.Attributes.TimeInQueue,\r\n InQueue: item.Value.inqueue ? true : false,\r\n Queue: item.Value.general?.Attributes.Queue || \"\",\r\n Competencies: item.Value.inqueue?.Attributes.Skill,\r\n Languages: item.Value.inqueue?.Attributes.Language,\r\n TargetUserID: item.Value.inqueue?.Attributes.UserID,\r\n Handling: item.Value.user ? true : false,\r\n UserID: item.Value.user?.UserID,\r\n FullName: item.Value.user ? this.getUserFullName(item.Value.user.UserID) : '',\r\n StartTime: item.Value.general?.StartTime,\r\n IsUniversalChat: item.Value.general?.Payload?.IsUniversalChat,\r\n QueueCount: item.Value.general?.Payload?.QueueCount,\r\n AgentLegId: item.Value.general?.Attributes.AgentLegId || '',\r\n OriginalTimeInQueue: (item.Value.general?.Attributes.OriginalInQueueTime) ? item.Value.general?.Attributes.OriginalInQueueTime : item.Value.general?.StartTime,\r\n OwnerId: item.Value.user?.User?.ownerid,\r\n }));\r\n\r\n if (typeof this.cache.intr_filters.channelType === 'string')\r\n result = result.Where(a => a.ChannelType == this.cache.intr_filters.channelType);\r\n else if (Array.isArray(this.cache.intr_filters.channelType))\r\n result = result.Where(a => this.cache.intr_filters.channelType.some(b => b == a.ChannelType));\r\n\r\n if (typeof this.cache.intr_filters.team === 'string')\r\n result = result.Where(a => a.Team == this.cache.intr_filters.team);\r\n else if (Array.isArray(this.cache.intr_filters.team))\r\n result = result.Where(a => this.cache.intr_filters.team.some(b => b == a.Team));\r\n\r\n if (typeof this.cache.intr_filters.queue === 'string')\r\n result = result.Where(a => a.Queue == this.cache.intr_filters.queue);\r\n else if (Array.isArray(this.cache.intr_filters.queue))\r\n result = result.Where(a => this.cache.intr_filters.queue.some(b => b == a.Queue));\r\n\r\n if (typeof this.cache.intr_filters.legType === 'string')\r\n result = result.Where(a => a.LegType == this.cache.intr_filters.legType);\r\n else if (Array.isArray(this.cache.intr_filters.legType))\r\n result = result.Where(a => this.cache.intr_filters.legType.some(b => b == a.LegType));\r\n\r\n return result.ToArray();\r\n },\r\n\r\n apiKey: function () {\r\n if (!this.apiKey_fn && this.controlData.ApiKey)\r\n this.apiKey_fn = utils.compile(this, this.controlData.ApiKey);\r\n\r\n return this.apiKey_fn ? utils.evaluate(this.apiKey_fn, this) : '';\r\n },\r\n apiBaseUri: function () {\r\n if (!this.apiBaseUri_fn && this.controlData.ApiBaseUrl)\r\n this.apiBaseUri_fn = utils.compile(this, this.controlData.ApiBaseUrl);\r\n\r\n return this.apiBaseUri_fn ? utils.evaluate(this.apiBaseUri_fn, this) : '';\r\n },\r\n },\r\n created() {\r\n if (this.controlData.PublishField) {\r\n\r\n // PublishField allows the location for the published data to be configurable.\r\n // If no PublishField is used, then simply read the data by accessing the control.\r\n // Ex: Control.rteventhandler1.UserList\r\n // Ex: Root.ChildControlByName('rteventhandler1').UserList\r\n\r\n // Assign a reference to the cache variable such that it will remain reactive.\r\n // Typical use is for PublishField to be in GlobalVars, for example:\r\n // GlobalVars.RTData\r\n\r\n // Create an object with getter methods to read the UserList and Interactions:\r\n const self = this;\r\n const accessor = {\r\n get UserList() {\r\n return self.UserList;\r\n },\r\n get AllUsers() {\r\n return self.AllUsers;\r\n },\r\n get UserMap() {\r\n return self.usermap;\r\n },\r\n get Interactions() {\r\n return self.Interactions;\r\n },\r\n get Views() {\r\n return self.cache.widget_views;\r\n },\r\n get user_cache() {\r\n return self.cache.user_cache;\r\n },\r\n get interaction_cache() {\r\n return self.cache.intr_cache;\r\n },\r\n get UserFilters() {\r\n return self.cache.user_filters;\r\n },\r\n get InteractionFilters() {\r\n return self.cache.intr_filters;\r\n },\r\n get IsActive() {\r\n return self.isActive;\r\n },\r\n APIRequest: this.APIRequest, // returns a function\r\n apipatch: this.apipatch,\r\n apiput: this.apiput,\r\n apipost: this.apipost,\r\n apidelete_: this.apidelete_,\r\n apiget: this.apiget,\r\n AddView: this.AddView,\r\n RemoveView: this.RemoveView,\r\n GetNamedListForRealTime: this.GetNamedListForRealTime,\r\n RemoveNamedListForRealTime: this.RemoveNamedListForRealTime,\r\n TryToGetResponse: this.TryToGetResponse,\r\n };\r\n\r\n // Using a function here to allow PublishField to contain dot notation or other valid Javascript syntax\r\n // The resulting code would then effectively do this (using GlobalVars.RTData as PublishField):\r\n // this.GlobalVars.RTData = accessor;\r\n\r\n let code = `base.${this.controlData.PublishField} = value;`;\r\n let func = new Function('base', 'value', code);\r\n func(this, accessor);\r\n }\r\n\r\n EventBus.$on('RealTimeBatch', this.rtEventReceived);\r\n },\r\n //Mounted Replaced with preRenderComplete\r\n destroyed() {\r\n EventBus.$off('RealTimeBatch', this.rtEventReceived);\r\n EventBus.$off('WebSocketConnected', this.activate);\r\n\r\n webSocket.StopRealTimeMonitor();\r\n },\r\n watch: {\r\n todisplay: function (value, old) {\r\n if (value && !old && this.readyToActivate)\r\n this.activate();\r\n }\r\n },\r\n methods: {\r\n async preRenderComplete() {\r\n this.finishRenderHandler(this);\r\n\r\n this.readyToActivate = true;\r\n\r\n if (!this.todisplay)\r\n return;\r\n\r\n //await this.activate();\r\n },\r\n async activate() {\r\n try {\r\n this.userlist = await this.APIRequest({ method: 'get', url: 'Apps/GetCustomerUsers', flatten: true });\r\n\r\n this.allusers = careHelpfulFunctions.toLookup(this.userlist, 'UserID');\r\n\r\n if (this.controlData.Native) {\r\n await webSocket.StartRealTimeMonitor({});\r\n this.RestoreViews();\r\n this.isActive = true;\r\n EventBus.$once('WebSocketConnected', this.activate);\r\n }\r\n else\r\n this.connect();\r\n } catch (err) {\r\n utils.error('Error activating RTEventHandler', err);\r\n }\r\n },\r\n async connect() {\r\n // Establish a custom stand-alone websocket to listen for real-time events\r\n // from an arbitrary web server / call center.\r\n\r\n try {\r\n this.standAloneWebSocket = await CreateWebSocketConnection(this.apiBaseUri);\r\n await this.standAloneWebSocket.Connect(\r\n //baseuri\r\n this.apiBaseUri,\r\n //queryParams\r\n { 'apikey': this.apiKey },\r\n //noticeCallback\r\n (message, arg, connectionId, time) => { utils.log(`Notice: ${message}, ${arg}, ${connectionId}, ${time}`); },\r\n //channelEventCallback\r\n (event) => { utils.log(`Event: ${JSON.stringify(event)}`); },\r\n //rtEventCallback\r\n this.rtEventHandler,\r\n //onCloseCallback\r\n (error) => { utils.error(\"RTEventHandler onCloseCallback\"); });\r\n await this.subscribe();\r\n }\r\n catch (err) {\r\n utils.warn(`RTEventHandler standalone WebSocket failedr: ${this.apiBaseUri}`, err);\r\n }\r\n },\r\n async subscribe() {\r\n // Cause the web server to send us RT events (real-time stats)\r\n try {\r\n await this.standAloneWebSocket.StartRealTimeMonitor({});\r\n this.isActive = true;\r\n }\r\n catch (e) {\r\n this.errorState = JSON.stringify(e);\r\n this.isActive = false;\r\n utils.warn(`RTEventHandler failed to invoke StartRealTimeMonitor: ${this.apiBaseUri}`, e);\r\n }\r\n },\r\n\r\n getUserFullName(userid) {\r\n const u = this.allusers[userid];\r\n return u ? u.FullName : 'Unknown';\r\n },\r\n\r\n rtEventHandler(value) {\r\n // This is only used in the cross-call center scenario\r\n const batch = [];\r\n for (let i = 0; i < value.length; i++) {\r\n\r\n utils.debug('signalR RTEvent: ' + value[i]);\r\n const eventData = JSON.parse(value[i]);\r\n batch.push(eventData);\r\n }\r\n this.rtEventReceived(batch);\r\n },\r\n rtEventReceived(batch) {\r\n utils.debug(`RTEvent batch: ${batch.length} event(s) received`);\r\n \r\n for (let i = 0; i < batch.length; i++)\r\n if (Array.isArray(batch[i]))\r\n for (let j = 0; j < batch[i].length; j++) {\r\n const item = batch[i][j];\r\n switch (item.Operation) {\r\n case 'Flush':\r\n this.flushAll();\r\n break;\r\n\r\n case 'Add':\r\n case 'Change':\r\n this.processUpdate(item, false);\r\n break;\r\n\r\n case 'Remove':\r\n this.processUpdate(item, true);\r\n break;\r\n }\r\n }\r\n else {\r\n switch (batch[i].Operation) {\r\n case 'Flush':\r\n this.flushAll();\r\n break;\r\n\r\n case 'Add':\r\n case 'Change':\r\n this.processUpdate(batch[i], false);\r\n break;\r\n\r\n case 'Remove':\r\n this.processUpdate(batch[i], true);\r\n break;\r\n }\r\n }\r\n },\r\n flushAll() {\r\n this.cache.user_cache = {};\r\n this.cache.intr_cache = {};\r\n },\r\n processUpdate(item, remove) {\r\n switch (item.Type) {\r\n case 'ReadyUser':\r\n case 'UserState':\r\n case 'WallUser':\r\n this.updateUser(item, remove);\r\n break;\r\n\r\n case 'Endpoint':\r\n switch (item.Gender) {\r\n case 0: // Agent\r\n this.updateUserInQueue(item, remove);\r\n break;\r\n\r\n case 1: // Caller\r\n this.updateInteractionInQueue(item, remove);\r\n break;\r\n }\r\n break;\r\n\r\n case 'UserCall':\r\n case 'UserContact':\r\n this.updateUserContact(item, remove);\r\n break;\r\n\r\n case 'Call':\r\n case \"Callback\":\r\n case 'EMail':\r\n case 'SMS':\r\n case 'Chat':\r\n this.updateInteraction(item, remove);\r\n break;\r\n\r\n case 'WidgetView':\r\n this.updateWidgetView(item);\r\n break;\r\n\r\n default:\r\n if (item.Type.startsWith('CustomChannel~')) {\r\n item.Type = item.Type.substr('CustomChannel~'.length);\r\n this.updateInteraction(item, remove);\r\n }\r\n break;\r\n }\r\n },\r\n\r\n updateUser(item, remove) {\r\n const userid = item.ItemId.split(':')[0];\r\n const ownerid = item.OwnerId;\r\n let user = this.cache.user_cache[userid];\r\n \r\n if (!user && remove) {\r\n // Ignore a remove for an unknown user\r\n return;\r\n }\r\n if (!user && !remove) {\r\n user = {\r\n ready: null,\r\n state: null,\r\n wall: null,\r\n inqueue: null,\r\n interactions: null,\r\n ownerid: ownerid,\r\n };\r\n Vue.set(this.cache.user_cache, userid, user);\r\n }\r\n\r\n switch (item.Type) {\r\n case 'ReadyUser':\r\n if (remove)\r\n user.ready = null;\r\n else {\r\n item.Value.Attributes = utils.helpers.chf.toLookup(item.Value.Attributes, 'Type', 'Value', true, false);\r\n user.ready = item.Value;\r\n }\r\n break;\r\n\r\n case 'UserState':\r\n if (remove)\r\n user.state = null;\r\n else {\r\n item.Value.Attributes = utils.helpers.chf.toLookup(item.Value.Attributes, 'Type', 'Value', false);\r\n user.state = item.Value;\r\n }\r\n break;\r\n\r\n case 'WallUser':\r\n if (remove)\r\n user.wall = null;\r\n else {\r\n item.Value.Attributes = utils.helpers.chf.toLookup(item.Value.Attributes, 'Type', 'Value', true, false);\r\n user.wall = item.Value;\r\n }\r\n break;\r\n }\r\n\r\n // If all state info is gone, remove the user\r\n if (remove && !user.ready && !user.state && !user.wall && !user.inqueue && !user.interactions)\r\n Vue.delete(this.cache.user_cache, userid);\r\n },\r\n updateInteraction(item, remove) {\r\n const sessionId = item.ItemId;\r\n let session = this.cache.intr_cache[sessionId];\r\n if (!session && remove) {\r\n // Ignore a remove for an unknown interaction\r\n return;\r\n }\r\n if (!session && !remove) {\r\n session = {\r\n type: item.Type,\r\n general: null,\r\n user: null,\r\n inqueue: null,\r\n };\r\n Vue.set(this.cache.intr_cache, sessionId, session);\r\n }\r\n\r\n if (remove) {\r\n session.general = null;\r\n }\r\n else {\r\n item.Value.Attributes = utils.helpers.chf.toLookup(item.Value.Attributes, 'Type', 'Value', true, false);\r\n session.type = item.Type;\r\n session.general = item.Value;\r\n }\r\n\r\n // If all state info is gone, remove the interaction\r\n if (remove && !session.general && !session.inqueue)\r\n Vue.delete(this.cache.intr_cache, sessionId);\r\n },\r\n\r\n updateUserInQueue(item, remove) {\r\n const userid = item.EndpointId;\r\n let user = this.cache.user_cache[userid];\r\n if (!user && remove) {\r\n // Ignore a remove for an unknown user\r\n return;\r\n }\r\n if (!user && !remove) {\r\n user = {\r\n ready: null,\r\n state: null,\r\n wall: null,\r\n inqueue: null,\r\n interactions: null,\r\n };\r\n Vue.set(this.cache.user_cache, userid, user);\r\n }\r\n\r\n if (remove)\r\n user.inqueue = null;\r\n else {\r\n item.Attributes = utils.helpers.chf.toLookup(item.Attributes, 'Key', 'Value', true, false);\r\n if (item.Attributes.Queue)\r\n item.Queue = utils.helpers.chf.toLookup(item.Attributes.Queue, 'Value', 'Rank', false);\r\n if (item.Attributes.Skill)\r\n item.Skill = utils.helpers.chf.toLookup(item.Attributes.Skill, 'Value', 'Rank', false);\r\n if (item.Attributes.Language)\r\n item.Language = utils.helpers.chf.toLookup(item.Attributes.Language, 'Value', 'Rank', false);\r\n user.inqueue = item;\r\n }\r\n\r\n // If all state info is gone, remove the user\r\n if (remove && !user.ready && !user.state && !user.wall && !user.inqueue && !user.interactions)\r\n Vue.delete(this.cache.user_cache, userid);\r\n },\r\n updateInteractionInQueue(item, remove) {\r\n const sessionId = item.EndpointId;\r\n let session = this.cache.intr_cache[sessionId];\r\n if (!session && remove) {\r\n // Ignore a remove for an unknown interaction\r\n return;\r\n }\r\n if (!session && !remove) {\r\n session = {\r\n type: item.Type,\r\n general: null,\r\n user: null,\r\n inqueue: null,\r\n };\r\n Vue.set(this.cache.intr_cache, sessionId, session);\r\n }\r\n\r\n if (remove) {\r\n session.inqueue = null;\r\n }\r\n else {\r\n item.Attributes = utils.helpers.chf.toLookup(item.Attributes, 'Key', 'Value', true, false);\r\n session.inqueue = item;\r\n }\r\n\r\n // If all state info is gone, remove the interaction\r\n if (remove && !session.general && !session.inqueue)\r\n Vue.delete(this.cache.intr_cache, sessionId);\r\n },\r\n\r\n updateUserContact(item, remove) {\r\n const userid = item.ItemId.split(':')[0];\r\n const sessionId = item.ItemId.split(':')[1];\r\n let user = this.cache.user_cache[userid];\r\n let session = this.cache.intr_cache[sessionId];\r\n if (!user && !session && remove) {\r\n // Ignore a remove for an unknown user and interaction\r\n return;\r\n }\r\n if (!user && !remove) {\r\n user = {\r\n ready: null,\r\n state: null,\r\n wall: null,\r\n inqueue: null,\r\n interactions: null,\r\n };\r\n Vue.set(this.cache.user_cache, userid, user);\r\n }\r\n if (!session && !remove) {\r\n session = {\r\n type: 'Unknown',\r\n general: null,\r\n user: null,\r\n inqueue: null,\r\n };\r\n Vue.set(this.cache.intr_cache, sessionId, session);\r\n }\r\n if (remove) {\r\n Vue.delete(user.interactions, sessionId);\r\n if (session)\r\n session.user = null;\r\n\r\n user.activecontact = '';\r\n \r\n if (Object.keys(user.interactions).length == 1) {\r\n user.activecontact = Object.keys(user.interactions)[0]; // key is the sessionid\r\n }\r\n\r\n // If all state info is gone, remove the user\r\n if (!user.ready && !user.state && !user.wall && !user.inqueue && !user.interactions)\r\n Vue.delete(this.cache.user_cache, userid);\r\n }\r\n else {\r\n if (!user.interactions)\r\n Vue.set(user, 'interactions', {});\r\n\r\n Vue.set(user, 'activecontact', sessionId);\r\n\r\n if (item.Value.Attributes)\r\n item.Value.Attributes = utils.helpers.chf.toLookup(item.Value.Attributes, 'Type', 'Value', true, false);\r\n\r\n session.user = { UserID: userid, User: user, Value: item.Value };\r\n Vue.set(user.interactions, sessionId, { Session: session, Value: item.Value });\r\n }\r\n },\r\n\r\n updateWidgetView(item) {\r\n Vue.set(this.cache.widget_views, item.Name, item.Data);\r\n },\r\n\r\n async APIRequest(options) {\r\n const apiOptions = { ...options };\r\n\r\n if (!this.controlData.Native)\r\n {\r\n apiOptions.url = this.apiBaseUri;\r\n\r\n if (options.url.startsWith('/'))\r\n apiOptions.url += options.url;\r\n else\r\n apiOptions.url += '/' + options.url;\r\n\r\n if (!apiOptions.headers)\r\n apiOptions.headers = {};\r\n\r\n apiOptions.headers.apikey = this.apiKey;\r\n apiOptions.doNotUseWebsocket = true; // ON CROSS CENTER WE CANNOT USE WEBSOCKETS\r\n }\r\n\r\n return await apiService.apiRequest(apiOptions);\r\n },\r\n async apiget(url) {\r\n return await this.APIRequest({\r\n method: 'GET',\r\n url: url,\r\n flatten: true\r\n });\r\n },\r\n async apidelete_(url) {\r\n return await this.APIRequest({\r\n method: 'DELETE',\r\n url: url,\r\n flatten: true\r\n });\r\n },\r\n async apipost(url, data) {\r\n return await this.APIRequest({\r\n method: 'POST',\r\n data: data,\r\n url: url,\r\n flatten: true\r\n });\r\n },\r\n async apiput(url, data) {\r\n return await this.APIRequest({\r\n method: 'PUT',\r\n data: data,\r\n url: url,\r\n flatten: true\r\n });\r\n },\r\n async apipatch(url, data) {\r\n return await this.APIRequest({\r\n method: 'PATCH',\r\n data: data,\r\n url: url,\r\n flatten: true\r\n });\r\n },\r\n\r\n RestoreViews() {\r\n utils.debug(`RestoreViews() ${this.requestedViews.length} item(s)`);\r\n\r\n // Clone the array to allow the functions to modify it\r\n for (let view of [...this.requestedViews])\r\n {\r\n utils.debug(`RestoreViews() view:${JSON.stringify(view)}`);\r\n\r\n switch (view.type) {\r\n case 'view':\r\n this.AddView(view.name, view.args, true);\r\n break;\r\n\r\n case 'list':\r\n this.GetNamedListForRealTime(view.listName, view.sortCol, view.descending, view.start, view.length, view.columns, view.filters, view.id);\r\n break;\r\n }\r\n }\r\n },\r\n AddView(viewName, args, restore) {\r\n if (restore) {\r\n // No need to do any tracking if we are just restoring\r\n if (this.controlData.Native)\r\n webSocket.AddRealTimeMonitorView(viewName, args);\r\n else if (this.standAloneWebSocket)\r\n this.standAloneWebSocket.AddRealTimeMonitorView(viewName, args);\r\n return;\r\n }\r\n\r\n const idx = this.requestedViews.findIndex(a => a.type == 'view' && a.name == viewName && JSON.stringify(a.args) == JSON.stringify(args));\r\n\r\n if (idx >= 0)\r\n this.requestedViews[idx].refCount++;\r\n\r\n if (this.controlData.Native)\r\n webSocket.AddRealTimeMonitorView(viewName, args);\r\n else if (this.standAloneWebSocket)\r\n this.standAloneWebSocket.AddRealTimeMonitorView(viewName, args);\r\n\r\n // Save the view requested so that if we detect a reset websocket, we can re-register (ensure we don't add a duplicate)\r\n if (idx < 0)\r\n this.requestedViews.push({\r\n type: 'view',\r\n name: viewName,\r\n args: args,\r\n refCount: 1,\r\n });\r\n },\r\n RemoveView(viewName, args) {\r\n const idx = this.requestedViews.findIndex(a => a.type == 'view' && a.name == viewName && JSON.stringify(a.args) == JSON.stringify(args));\r\n\r\n if (idx >= 0)\r\n this.requestedViews[idx].refCount--;\r\n\r\n if (idx < 0 || this.requestedViews[idx].refCount <= 0) {\r\n // If there are no more references to this view, we should unsubscribe to stop the server from sending it\r\n if (this.controlData.Native)\r\n webSocket.RemoveRealTimeMonitorView(viewName, args);\r\n else if (this.standAloneWebSocket)\r\n this.standAloneWebSocket.RemoveRealTimeMonitorView(viewName, args);\r\n }\r\n\r\n if (idx >= 0 && this.requestedViews[idx].refCount <= 0) {\r\n this.requestedViews.splice(idx, 1);\r\n \r\n let cacheViewName = viewName;\r\n if (args && JSON.stringify(args) != '{}')\r\n cacheViewName += '~!!~' + JSON.stringify(args);\r\n Vue.delete(this.cache.widget_views, cacheViewName);\r\n }\r\n\r\n },\r\n async GetNamedListForRealTime(listName, sortCol, descending, start, length, columns, filters, id) {\r\n utils.debug(`GetNamedListForRealTime(listName:${listName}, sortCol:${sortCol}, descending:${descending}, start:${start}, length:${length}, columns:${JSON.stringify(columns)}, filters:${JSON.stringify(filters)}, id:${id})`);\r\n\r\n if (id === undefined || id === null)\r\n id = utils.generateUUID();\r\n\r\n // Before saving, ensure we don't add a duplicate\r\n var existingView = this.requestedViews.find(a => a.type == 'list' && a.id == id);\r\n\r\n const args = {\r\n listName: listName,\r\n id: id,\r\n sortCol: sortCol,\r\n descending: descending,\r\n start: start,\r\n length: length,\r\n columns: columns,\r\n filters: filters,\r\n };\r\n\r\n // Save the view requested so that if we detect a reset websocket, we can re-register\r\n if (!existingView)\r\n this.requestedViews.push({ type: 'list', ...args });\r\n else\r\n Object.assign(existingView, args);\r\n\r\n let data;\r\n if (this.controlData.Native)\r\n data = await webSocket.GetNamedListForRealTime(listName, id, sortCol, descending, start, length, columns, filters);\r\n else if (this.standAloneWebSocket)\r\n data = await this.standAloneWebSocket.GetNamedListForRealTime(listName, id, sortCol, descending, start, length, columns, filters);\r\n\r\n // SignalR backwards compatability\r\n var statusCode = data.StatusCode ? data.StatusCode : data.statusCode;\r\n var responseBody = data.ResponseBody ? data.ResponseBody : data.responseBody;\r\n\r\n if (data && statusCode == 200 && responseBody) {\r\n data = responseBody;\r\n\r\n // The data contains the snapshot of the report data we want, but it will also\r\n // be registered on the web server to send regular updates for that same query.\r\n // The RTData will arrive under the ViewHash, which is why we need to know. The\r\n // ID is part of the ViewHash, but if we need to alter our query parameters\r\n // because, for example, the user changes sort order, page number, etc., then\r\n // we need to update the same query without causing the server to cache yet\r\n // another view. So the ID is important for that.\r\n return {\r\n Response: data,\r\n ViewHash: `${listName}~!!~${id}`,\r\n ID: id,\r\n };\r\n }\r\n\r\n throw `GetNamedListForRealTime failed: ${JSON.stringify(data)}`;\r\n },\r\n async RemoveNamedListForRealTime(listName, id) {\r\n utils.debug(`RemoveNamedListForRealTime(listName:${listName}, id:${id}`);\r\n\r\n // Before saving, ensure we don't add a duplicate\r\n const idx = this.requestedViews.findIndex(a => a.type == 'list' && a.id == id);\r\n\r\n // Save the view requested so that if we detect a reset websocket, we can re-register\r\n if (idx >= 0)\r\n this.requestedViews.splice(idx, 1);\r\n\r\n if (this.controlData.Native)\r\n await webSocket.RemoveNamedListForRealTime(listName, id);\r\n else if (this.standAloneWebSocket)\r\n await this.standAloneWebSocket.RemoveNamedListForRealTime(listName, id);\r\n\r\n var cacheViewName = listName + '~!!~' + id;\r\n Vue.delete(this.cache.widget_views, cacheViewName);\r\n },\r\n async TryToGetResponse() {\r\n if (this.controlData.Native)\r\n return await webSocket.TryToGetResponse();\r\n else if (this.standAloneWebSocket)\r\n return await this.standAloneWebSocket.TryToGetResponse();\r\n },\r\n },\r\n render(h) {\r\n if (this.isdebug) {\r\n let icon = mdi-chart-pie;\r\n let tooltip;\r\n if (this.isActive)\r\n tooltip = 'Real-Time Event Listener Active (Debug is enabled)';\r\n else if (this.errorState)\r\n tooltip = this.errorState;\r\n else\r\n tooltip = 'Real-Time Event Listener Waiting... (Debug is enabled)';\r\n\r\n icon = utils.generateTooltip(h, icon, tooltip, 'right');\r\n\r\n return (\r\n
\r\n {icon}\r\n
\r\n );\r\n }\r\n\r\n return null;\r\n }\r\n});","import Vue from \"vue\";\r\nimport utils from \"../../Shared/utils.jsx\";\r\nimport BaseComponent from \"./BaseComponentMixin.jsx\";\r\nimport { appSettings } from \"../../Shared/appSettings.js\";\r\nimport SAMLPopupManger from \"./javascript/SAMLButtonSSOPopupManager\";\r\n\r\nVue.component(\"saml-button\", {\r\n mixins: [BaseComponent],\r\n data: function() {\r\n return {\r\n textexpn: null,\r\n };\r\n },\r\n computed: {\r\n buttonText() {\r\n if (!this.textexpn && this.controlData.Text)\r\n this.textexpn = utils.compile(this, this.controlData.Text);\r\n\r\n const text = this.textexpn ? utils.evaluate(this.textexpn, this) : '';\r\n\r\n return this.Translate(text);\r\n },\r\n samlIssuer() {\r\n if (!this.issuerexpn && this.controlData.SAMLIssuer)\r\n this.issuerexpn = utils.compile(this, this.controlData.SAMLIssuer);\r\n\r\n return this.issuerexpn ? utils.evaluate(this.issuerexpn, this) : '';\r\n },\r\n autoLogin() {\r\n if (!this.autologinexpn && this.controlData.AutoLogin)\r\n this.autologinexpn = utils.compile(this, this.controlData.AutoLogin);\r\n\r\n return this.autologinexpn ? utils.evaluate(this.autologinexpn, this) : false;\r\n },\r\n styles() {\r\n return {\r\n ...this.sizeStyle,\r\n ...utils.resolveStyleHints(this.styleHints, this),\r\n };\r\n },\r\n },\r\n\r\n //Created replaced with preRenderComplete\r\n methods: {\r\n async preRenderComplete() {\r\n this.finishRenderHandler(this);\r\n\r\n if (this.autoLogin === true || this.autoLogin === \"true\")\r\n this.onclick();\r\n },\r\n async RunActions(authArgs) {\r\n await utils.executeAndCompileAllActions(this.controlData.Actions, authArgs, this);\r\n },\r\n\r\n onclick() {\r\n const popupManager = new SAMLPopupManger();\r\n popupManager.open(this.samlIssuer).then((SAMLResponse) => {\r\n var authargs = {\r\n ProviderType: 'SAML',\r\n token: SAMLResponse,\r\n };\r\n\r\n this.RunActions(authargs);\r\n },\r\n (result) => {\r\n // SAML login was not successful (user either didn't login properly or closed dialog) \r\n }\r\n );\r\n\r\n //care.sendUIEvent(c.$controlModel, \"Click\");\r\n },\r\n },\r\n render(h) {\r\n try {\r\n if (!this.todisplay) return null;\r\n\r\n return (\r\n \r\n \r\n
\r\n \r\n mdi-headset\r\n \r\n {this.buttonText}\r\n
\r\n
\r\n \r\n );\r\n } catch (e) {\r\n utils.error(\"SAMLButton Render failed\", e);\r\n return
SAMLButton Failed to Render {e}
;\r\n }\r\n },\r\n});\r\n","import Vue from 'vue';\r\nimport BaseComponent from './BaseComponentMixin.jsx';\r\nimport EventBus from '../event-bus.js';\r\n\r\nimport utils from '../../Shared/utils.jsx';\r\nimport methods from '../../Shared/methods';\r\n\r\nVue.component('search', {\r\n mixins: [BaseComponent],\r\n data: function () {\r\n return {\r\n Input: {\r\n SearchText: ''\r\n },\r\n debounceDelayEval: null,\r\n fontSizeEval: null,\r\n colorEval: null,\r\n cssClassEval: null,\r\n typingTimer: null\r\n }\r\n },\r\n computed: {\r\n debounceDelay(){\r\n if(this.debounceDelayEval === null && this.controlData.DebounceDelay)\r\n this.debounceDelayEval = utils.compile(this, this.controlData.DebounceDelay);\r\n if(this.debounceDelayEval)\r\n return utils.evaluate(this.debounceDelayEval, this);\r\n return '';\r\n },\r\n fontSize() {\r\n if(this.fontSizeEval === null && this.controlData.FontSize)\r\n this.fontSizeEval = utils.compile(this, this.controlData.FontSize);\r\n if(this.fontSizeEval)\r\n return utils.resolveFontSize(utils.evaluate(this.fontSizeEval, this));\r\n return '';\r\n },\r\n color() {\r\n if(this.colorEval === null && this.controlData.Color)\r\n this.colorEval = utils.compile(this, this.controlData.Color);\r\n if(this.colorEval)\r\n return utils.evaluate(this.colorEval, this);\r\n return '';\r\n },\r\n cssClass() {\r\n if(this.cssClassEval === null && this.controlData.CssClass)\r\n this.cssClassEval = utils.compile(this, this.controlData.CssClass);\r\n if(this.cssClassEval)\r\n return utils.evaluate(this.cssClassEval, this);\r\n return '';\r\n },\r\n },\r\n //Mounted Replaced with preRenderComplete\r\n methods: {\r\n preRenderComplete() {\r\n this.finishRenderHandler(this);\r\n },\r\n search() {\r\n if (this.typingTimer != null)\r\n clearTimeout(this.typingTimer); // clear any original timer that may still be active.\r\n\r\n // this will wait for .5 second for any additional typing (or additional async lookups to finish) so we don't fire the filter too quickly\r\n this.typingTimer = setTimeout(() =>\r\n {\r\n utils.executeAndCompileAllActions(this.controlData.SearchAction || this.controlData.SearchActions, this.Input, this);\r\n }, this.controlData.DebounceDelay || 500);\r\n }\r\n },\r\n props: {\r\n },\r\n render(h) {\r\n if(!this.todisplay)\r\n return null;\r\n \r\n try {\r\n return (\r\n \r\n this.search(e)}\r\n style={{'font-size': utils.resolve}}\r\n hide-details\r\n dense\r\n outlined\r\n prepend-inner-icon=\"mdi-magnify\"\r\n vModel={this.Input.SearchText}\r\n >\r\n \r\n );\r\n }\r\n catch (e) {\r\n utils.error('Search Render failed', e);\r\n return
Search Failed to Render {e}
;\r\n }\r\n }\r\n});","import Vue from 'vue';\r\nimport BaseComponent from './BaseComponentMixin.jsx';\r\nimport utils from '../../Shared/utils.jsx';\r\nimport eventCoordinator from '@/Services/serverEventCoordinator';\r\n\r\nVue.component('server-event-listener', {\r\n mixins: [BaseComponent],\r\n data: function () {\r\n return {\r\n id: utils.generateUUID(),\r\n lastSessionId: null,\r\n }\r\n },\r\n props: {},\r\n computed: {\r\n },\r\n created() {\r\n },\r\n //Mounted Replaced with preRenderComplete\r\n destroyed() {\r\n if (this.lastSessionId)\r\n this.unsubscribe(this.lastSessionId, this.eventname);\r\n },\r\n computed: {\r\n sessionid: function () {\r\n if (!this.sessionidexpn)\r\n this.sessionidexpn = utils.compile(this, this.controlData.SessionID)\r\n\r\n return utils.evaluate(this.sessionidexpn, this);\r\n },\r\n eventname: function () {\r\n if (!this.eventnameexpn)\r\n this.eventnameexpn = utils.compile(this, this.controlData.EventName);\r\n\r\n return utils.evaluate(this.eventnameexpn, this);\r\n },\r\n },\r\n watch: {\r\n sessionid: function (newvalue, oldvalue) {\r\n if (oldvalue)\r\n this.unsubscribe(oldvalue, this.eventname);\r\n\r\n if (newvalue)\r\n this.subscribe(newvalue, this.eventname);\r\n\r\n this.lastSessionId = newvalue;\r\n },\r\n },\r\n methods: {\r\n preRenderComplete() {\r\n if (this.sessionid)\r\n this.subscribe(this.sessionid, this.eventname);\r\n\r\n this.lastSessionId = this.sessionid;\r\n\r\n this.finishRenderHandler(this);\r\n },\r\n onServerEventRecieved(eventData) {\r\n utils.executeAndCompileAllActions(this.controlData.Actions, { EventData: eventData }, this);\r\n },\r\n\r\n subscribe(sessionid, eventname) {\r\n if (this.controlData.AllowMultipleSessionIDs)\r\n sessionid.split(' ').forEach(s => eventCoordinator.subscribeForSessionEvents(s, this.id, eventname, this.onServerEventRecieved));\r\n else\r\n eventCoordinator.subscribeForSessionEvents(sessionid, this.id, eventname, this.onServerEventRecieved);\r\n },\r\n unsubscribe(sessionid, eventname) {\r\n if (this.controlData.AllowMultipleSessionIDs)\r\n sessionid.split(' ').forEach(s => eventCoordinator.unsubscribeForSessionEvents(s, this.id, eventname));\r\n else\r\n eventCoordinator.unsubscribeForSessionEvents(sessionid, this.id, eventname);\r\n },\r\n },\r\n render(h) {\r\n return null;\r\n }\r\n});","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"wrapper\",style:({width: _vm.width, height: _vm.height + 'px'})},[_c('div',{staticClass:\"grid-header\"},[_c('span',{staticClass:\"title\"},[_vm._v(_vm._s(_vm.title))])]),_c('div',{staticClass:\"grid-body\",style:({height: _vm.tableBodyHeight + 'px'})},[_c('div',{staticClass:\"table-header-wrapper\"},[_c('table',{staticClass:\"table-header\"},[_c('tr',_vm._l((_vm.columns),function(column){return _c('th',{key:column.field,attrs:{\"data-column-name\":column.name,\"width\":column.width ? column.width : '100'}},[_vm._v(\" \"+_vm._s(column.label))])}),0)])]),_c('div',{staticClass:\"table-body-wrapper\"},[_c('table',{staticClass:\"table-body\"},_vm._l((_vm.dataSource),function(row){return _c('tr',{key:_vm.getRowKey(row)},_vm._l((_vm.columns),function(column){return _c('td',{key:column.field,attrs:{\"width\":column.width ? column.width : '100'}},[_vm._v(\" \"+_vm._s(_vm.val(row, column.field)))])}),0)}),0)])]),_c('div',{staticClass:\"grid-footer\"},[(!_vm.error)?_c('div',[_c('span',[_c('a',{on:{\"click\":_vm.handlePrevious}},[_vm._v(\"Previous\")])]),_c('span',[_vm._v(_vm._s(_vm.page))]),_c('span',[_c('a',{on:{\"click\":_vm.handleNext}},[_vm._v(\"Next\")])])]):_c('span',[_vm._v(_vm._s(_vm.error))])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\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/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./griddy.vue?vue&type=script&lang=js&\"; 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/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./griddy.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./griddy.vue?vue&type=template&id=768ce49d&scoped=true&\"\nimport script from \"./griddy.vue?vue&type=script&lang=js&\"\nexport * from \"./griddy.vue?vue&type=script&lang=js&\"\nimport style0 from \"./griddy.vue?vue&type=style&index=0&id=768ce49d&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 \"768ce49d\",\n null\n \n)\n\nexport default component.exports","import Vue from 'vue';\r\nimport BaseComponent from './BaseComponentMixin.jsx';\r\nimport utils from '../../Shared/utils.jsx';\r\n\r\nimport Griddy from './vuecontrols/griddy.vue';\r\n\r\nVue.component('slim-grid', {\r\n mixins: [BaseComponent],\r\n components: {\r\n Griddy\r\n },\r\n data: () => ({\r\n datatable_id: null,\r\n\r\n modelfunc: null,\r\n modelurl: null,\r\n modelvalue: null,\r\n\r\n loading: false,\r\n search: '',\r\n\r\n itemsPerPage: 30,\r\n footerProps: {\r\n showFirstlastPage: true,\r\n showCurrentPage: true,\r\n itemsPerPageOptions: [10, 20, 30, 40, 50, 60, 70, 80, 90, 100],\r\n },\r\n }),\r\n created() {\r\n this.datatable_id = `data-table-${utils.generateUUID()}`;\r\n this.itemsPerPage = this.controlData.ItemsPerPage || 30;\r\n\r\n if ((this.controlData.DataType === 'URL' || this.controlData.DataType === undefined) && this.controlData.DataURL) {\r\n this.modelurl = utils.compile(this, this.controlData.DataURL);\r\n }\r\n else if (this.controlData.DataType === 'Raw' && this.controlData.Data) {\r\n this.modelvalue = utils.compileObject(this, this.controlData.Data);\r\n }\r\n },\r\n computed: {\r\n headers: function () {\r\n const hdrs = [];\r\n for (let i = 0; i < this.controlData.ColumnDefs.length; i++) {\r\n const hdr = this.controlData.ColumnDefs[i];\r\n if (hdr.Visible)\r\n hdrs.push({\r\n text: hdr.DisplayName || hdr.Name || hdr.Field,\r\n value: (hdr.Type == 'Value' || hdr.Type == 'Link') ? hdr.Field : `$$field_${i}`,\r\n align: hdr.Align,\r\n sortable: hdr.Sortable,\r\n filterable: true,\r\n groupable: false,\r\n divider: false,\r\n class: undefined,\r\n cellClass: undefined,\r\n width: undefined,\r\n filter: undefined,\r\n sort: undefined,\r\n });\r\n }\r\n\r\n return hdrs;\r\n },\r\n simpleheaders: function () {\r\n const h = this.$createElement;\r\n const hdrs = [];\r\n for (let i = 0; i < this.controlData.ColumnDefs.length; i++) {\r\n const hdr = this.controlData.ColumnDefs[i];\r\n if (hdr.Visible)\r\n hdrs.push(\r\n \r\n {hdr.DisplayName || hdr.Name || hdr.Field}\r\n \r\n );\r\n }\r\n\r\n return (\r\n \r\n {hdrs}\r\n \r\n );\r\n },\r\n simplerows: function () {\r\n const h = this.$createElement;\r\n const items = [];\r\n for (let j = 0; j < this.dataSource.length; j++) {\r\n const row = this.dataSource[j];\r\n const cells = [];\r\n\r\n for (let i = 0; i < this.controlData.ColumnDefs.length; i++) {\r\n const hdr = this.controlData.ColumnDefs[i];\r\n if (hdr.Visible) {\r\n let value;\r\n\r\n if (hdr.Value && !hdr.Value_expn)\r\n hdr.Value_expn = utils.compile(this, hdr.Value, false, hdr.RowModelName);\r\n\r\n if (hdr.Value_expn)\r\n value = utils.evaluate(hdr.Value_expn, this, false, null, false, row);\r\n else\r\n value = row[hdr.Field];\r\n\r\n switch (hdr.Type) {\r\n case 'Value':\r\n break;\r\n\r\n case 'Link':\r\n value = {value};\r\n break;\r\n\r\n case 'Icons':\r\n const icons = [];\r\n for (let k = 0; k < hdr.Icons.length; k++) {\r\n const ico = hdr.Icons[k];\r\n if (ico.Condition && !ico.Condition_expn)\r\n ico.Condition_expn = utils.compileExpression(this, ico.Condition, hdr.RowModelName);\r\n\r\n let condition = true;\r\n if (ico.Condition_expn)\r\n condition = utils.evaluate(ico.Condition_expn, this, false, null, false, row);\r\n\r\n let icon = {ico.Icon};\r\n\r\n if (ico.Tooltip)\r\n icon = utils.generateTooltip(h, icon, ico.Tooltip, 'right');\r\n\r\n icons.push(icon);\r\n }\r\n value = icons;\r\n break;\r\n }\r\n\r\n cells.push({value});\r\n }\r\n }\r\n\r\n items.push(\r\n \r\n {cells}\r\n \r\n );\r\n }\r\n return items;\r\n },\r\n giddy_headers: function () {\r\n const hdrs = [];\r\n for (let i = 0; i < this.controlData.ColumnDefs.length; i++) {\r\n const hdr = this.controlData.ColumnDefs[i];\r\n if (hdr.Visible)\r\n hdrs.push({\r\n name: hdr.Name || hdr.Field || `$$field_${i}`,\r\n label: hdr.DisplayName || hdr.Name || hdr.Field,\r\n field: hdr.Field || `$$field_${i}`,\r\n width: '200',\r\n });\r\n }\r\n\r\n return hdrs;\r\n },\r\n keyFields: function () {\r\n return this.controlData.KeyFields;\r\n },\r\n\r\n scopedSlots: function () {\r\n const h = this.$createElement;\r\n const slots = {};\r\n for (let i = 0; i < this.controlData.ColumnDefs.length; i++) {\r\n const hdr = this.controlData.ColumnDefs[i];\r\n if (hdr.Type == 'Value' && hdr.Value) {\r\n if (!hdr.Value_func)\r\n hdr.Value_func = utils.compile(this, hdr.Value, false, hdr.RowModelName);\r\n\r\n if (hdr.Value_func)\r\n slots[`item.${hdr.Field}`] = ({ item }) => utils.evaluate(hdr.Value_func, this, false, null, false, item);\r\n }\r\n else if (hdr.Type == 'Link' && !hdr.Value) {\r\n if (!hdr.Value_func)\r\n hdr.Value_func = utils.compile(this, `row.${hdr.Field}`, false, 'row');\r\n\r\n slots[`item.${hdr.Field}`] = ({ item }) => {utils.evaluate(hdr.Value_func, this, false, null, false, item)};\r\n }\r\n else if (hdr.Type == 'Link' && hdr.Value) {\r\n if (!hdr.Value_func)\r\n hdr.Value_func = utils.compile(this, hdr.Value, false, 'row');\r\n\r\n slots[`item.${hdr.Field}`] = ({ item }) => {utils.evaluate(hdr.Value_func, this, false, null, false, item)};\r\n }\r\n else if (hdr.Type == 'Icons' && hdr.Icons.length > 0) {\r\n slots[`item.$$field_${i}`] = ({ item }) => {\r\n const icons = [];\r\n for (let j = 0; j < hdr.Icons.length; j++) {\r\n const ico = hdr.Icons[j];\r\n\r\n if (ico.Condition && !ico.Condition_expn)\r\n ico.Condition_expn = utils.compileExpression(this, ico.Condition, hdr.RowModelName);\r\n\r\n if (ico.Condition_expn && !utils.evaluate(ico.Condition_expn, this, false, null, false, item))\r\n continue;\r\n\r\n if (ico.Color && !ico.Color_expn)\r\n ico.Color_expn = utils.compile(this, ico.Color, false, hdr.RowModelName);\r\n\r\n let color;\r\n if (ico.Color_expn)\r\n color = utils.evaluate(ico.Color_expn, this, false, null, false, item);\r\n\r\n if (ico.Actions && ico.Actions.length > 0)\r\n icons.push( this.clickIcon(e, hdr, ico, item)}>{ico.Icon});\r\n else\r\n icons.push({ico.Icon});\r\n }\r\n return icons;\r\n };\r\n }\r\n else if (hdr.Type == 'Actions') {\r\n\r\n }\r\n }\r\n\r\n return slots;\r\n },\r\n dataSource: function () {\r\n return this.modelfunc ? this.modelfunc() : [];\r\n },\r\n modelurlvalue: function () {\r\n if (this.modelurl)\r\n return utils.evaluate(this.modelurl, this);\r\n else\r\n return '';\r\n },\r\n modelrawvalue: function () {\r\n if (this.modelvalue)\r\n return utils.evaluateObject(this.modelvalue, this);\r\n else\r\n return [];\r\n },\r\n },\r\n //Mounted Replaced with preRenderComplete\r\n methods: {\r\n async preRenderComplete() {\r\n this.finishRenderHandler(this);\r\n await this.Refresh();\r\n\r\n const self = this;\r\n self.updateTable();\r\n //window.onresize = function (event) {\r\n // self.updateTable();\r\n //};\r\n },\r\n async Refresh(clearSelectedRows) {\r\n if (clearSelectedRows) {\r\n }\r\n\r\n this.loading = true;\r\n try {\r\n let model;\r\n if (this.controlData.DataType == 'URL' && this.modelurl) {\r\n model = this.modelurlvalue ? await utils.api.get(this.modelurlvalue, false, false) : [];\r\n\r\n if (!this.modelurl_watch$)\r\n this.modelurl_watch$ = this.$watch(\r\n function (newvalue) {\r\n return this.modelurlvalue;\r\n },\r\n function (val, oldval) {\r\n this.Refresh();\r\n }\r\n );\r\n }\r\n else if (this.controlData.DataType == 'Raw' && this.modelvalue)\r\n try {\r\n model = this.modelrawvalue;\r\n\r\n if (!this.modelvalue_watch$)\r\n this.modelvalue_watch$ = this.$watch(\r\n function () {\r\n try {\r\n return this.modelrawvalue;\r\n }\r\n catch (e) {\r\n utils.warn('SlimGrid modelvalue ' + this.controlData.Model.Definition + ' failed to evaluate: ' + e);\r\n return null;\r\n }\r\n },\r\n function (val, oldval) {\r\n this.Refresh();\r\n },\r\n {\r\n deep: false\r\n }\r\n );\r\n }\r\n catch (e) {\r\n utils.warn('BasicGrid modelvalue ' + this.controlData.Data + ' failed to evaluate: ' + e);\r\n model = [];\r\n }\r\n else\r\n model = [];\r\n\r\n this.modelfunc = () => model;\r\n }\r\n finally {\r\n this.loading = false;\r\n }\r\n },\r\n rowCommandClick(e, data, btn) {\r\n e.cancelBubble = true;\r\n e.preventDefault();\r\n utils.executeAndCompileAllActions(btn.Actions, { RowIndex: data.rowIndex, Data: data.row.data }, this);\r\n },\r\n clickIcon(e, hdr, ico, item) {\r\n e.cancelBubble = true;\r\n e.preventDefault();\r\n utils.executeAndCompileAllActions(ico.Actions, { Data: item }, this);\r\n },\r\n\r\n updateTable() {\r\n const tableHeight = document.getElementById(this.datatable_id).offsetHeight - 54 - 58;\r\n this.itemsPerPage = parseInt(tableHeight / 32);\r\n utils.debug(`** SlimGrid: tableHeight: ${tableHeight}, itemsPerPage:${this.itemsPerPage}`);\r\n\r\n if (this.dataSource.length < this.itemsPerPage)\r\n this.itemsPerPage = this.dataSource.length;\r\n \r\n if (this.itemsPerPage > 1)\r\n this.itemsPerPage--;\r\n\r\n if (!this.footerProps.itemsPerPageOptions.includes(this.itemsPerPage)) {\r\n if (this.footerProps.itemsPerPageOptions.length == this.optionsLength) {\r\n this.footerProps.itemsPerPageOptions.unshift(this.itemsPerPage);\r\n } else {\r\n this.footerProps.itemsPerPageOptions.shift();\r\n this.footerProps.itemsPerPageOptions.unshift(this.itemsPerPage);\r\n }\r\n }\r\n },\r\n },\r\n props: {},\r\n _render1() {\r\n if (!this.todisplay)\r\n return null;\r\n\r\n const style = {\r\n overflow: \"auto\",\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n padding: '8px',\r\n ...this.sizeStyle,\r\n \r\n };\r\n\r\n let scopedSlots = {};\r\n\r\n return (\r\n \r\n this.search = v}>\r\n \r\n \r\n );\r\n },\r\n _render2() {\r\n if (!this.todisplay)\r\n return null;\r\n\r\n const style = {\r\n overflow: \"auto\",\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n padding: '8px',\r\n ...this.sizeStyle,\r\n };\r\n\r\n return (\r\n \r\n \r\n {this.simpleheaders}\r\n \r\n \r\n {this.simplerows}\r\n \r\n \r\n );\r\n },\r\n render() {\r\n if (!this.todisplay)\r\n return null;\r\n\r\n const style = {\r\n overflow: \"auto\",\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n padding: '8px',\r\n ...this.sizeStyle,\r\n };\r\n\r\n return (\r\n \r\n \r\n );\r\n }\r\n});","var render = function render(){var _vm=this,_c=_vm._self._c;return (_vm.todisplay)?_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.isvisible),expression:\"isvisible\"}],staticClass:\"c-SoftPhone\",style:(_vm.styles)},[(!_vm.callHSM)?_c('div',[_c('span',[_vm._v(\"Error! Missing CoordinatingHSM\")])]):_c('div',{staticClass:\"headerbar pa-2\"},[_c('v-tooltip',{attrs:{\"right\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on, attrs }){return [_c('v-icon',_vm._g(_vm._b({class:_vm.phoneClasses,attrs:{\"color\":_vm.phoneColor}},'v-icon',attrs,false),on),[_vm._v(\" \"+_vm._s(_vm.phoneIcon)+\" \")])]}}],null,false,2775410883)},[_c('span',[_vm._v(_vm._s(_vm.Translate(_vm.phoneIconTooltip)))])]),_c('span',{staticClass:\"ml-3\"},[_vm._v(\" \"+_vm._s(_vm.phoneTitle)+\" \")]),_c('span',{staticStyle:{\"flex-grow\":\"1\"}}),_c('v-tooltip',{attrs:{\"right\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on, attrs }){return [_c('v-btn',_vm._g(_vm._b({attrs:{\"icon\":\"\",\"small\":\"\"},on:{\"click\":_vm.toggleDoNotDisturbClick}},'v-btn',attrs,false),on),[_c('v-icon',{attrs:{\"color\":_vm.doNotDisturbColor,\"small\":\"\"}},[_vm._v(\" mdi-cancel \")])],1)]}}],null,false,2628859190)},[_c('span',[_vm._v(\"Toggle Do-Not-Disturb\")])]),_c('v-tooltip',{attrs:{\"right\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on, attrs }){return [_c('v-btn',_vm._g(_vm._b({attrs:{\"icon\":\"\",\"small\":\"\",\"disabled\":_vm.activeCallList.length > 0},on:{\"click\":_vm.toggleConferenceModeClick}},'v-btn',attrs,false),on),[_c('v-icon',{attrs:{\"color\":\"gray\"}},[_vm._v(\" \"+_vm._s(_vm.conferenceMode ? 'mdi-account' : 'mdi-account-group')+\" \")])],1)]}}],null,false,282909224)},[_c('span',[_vm._v(_vm._s(_vm.conferenceMode ? _vm.Translate('Switch to Normal') : _vm.Translate('Switch to Conference Mode')))])])],1),(!_vm.conferenceMode)?_c('div',{staticClass:\"inputbar ma-2\"},[_c('v-form',[_c('v-select',{attrs:{\"outlined\":\"\",\"dense\":\"\",\"label\":\"From\",\"menu-props\":{offsetY:true, auto:true},\"items\":_vm.fromList,\"value\":_vm.currentFrom},on:{\"change\":_vm.fromChanged}}),_c('v-text-field',{ref:\"searchdial\",attrs:{\"outlined\":\"\",\"dense\":\"\",\"autofocus\":\"\",\"hide-details\":\"\",\"clearable\":\"\",\"label\":\"Search / Dial\",\"placeholder\":\"Search / Dial\",\"append-icon\":_vm.activeCallList.length > 0 ? 'mdi-dialpad' : undefined},on:{\"click:append\":function($event){_vm.showDialpad = !_vm.showDialpad},\"input\":_vm.dialstringChanged,\"click\":_vm.dialstringClick,\"keydown\":[function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\"))return null;return _vm.dialstringEnter.apply(null, arguments)},function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"down\",40,$event.key,[\"Down\",\"ArrowDown\"]))return null;return _vm.dialstringDown.apply(null, arguments)},function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"up\",38,$event.key,[\"Up\",\"ArrowUp\"]))return null;return _vm.dialstringUp.apply(null, arguments)}]},model:{value:(_vm.dialstring),callback:function ($$v) {_vm.dialstring=$$v},expression:\"dialstring\"}}),_c('v-menu',{attrs:{\"position-x\":_vm.x,\"position-y\":_vm.y,\"absolute\":\"\",\"offset-y\":\"\"},model:{value:(_vm.showingToList),callback:function ($$v) {_vm.showingToList=$$v},expression:\"showingToList\"}},[_c('v-list',{attrs:{\"multiple\":\"\",\"max-height\":\"400px\"}},[_c('v-list-item-group',{model:{value:(_vm.toSelected),callback:function ($$v) {_vm.toSelected=$$v},expression:\"toSelected\"}},_vm._l((_vm.filteredToList),function(item,index){return _c('v-list-item',{key:index,attrs:{\"title\":item.subtitle},on:{\"click\":function($event){return _vm.selectToItem(item)}}},[_c('v-list-item-icon',[_c('v-icon',{attrs:{\"small\":\"\"},domProps:{\"textContent\":_vm._s(item.icon)}})],1),_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(\" \"+_vm._s(item.title)+\" \")]),_c('v-list-item-subtitle',[_vm._v(\" \"+_vm._s(item.subtitle)+\" \")])],1),_c('v-list-item-content',[(item.contact_id)?_c('v-btn',{attrs:{\"color\":\"blue darken-1\",\"text\":\"\"},on:{\"click\":function($event){return _vm.showDetails($event, item.value)}}},[_vm._v(\" Details \")]):_vm._e()],1)],1)}),1)],1)],1)],1)],1):_vm._e(),(!_vm.conferenceMode && _vm.showDialpad && _vm.activeCallList.length > 0)?_c('div',{staticClass:\"dialpad ma-2\"},[_c('v-text-field',{staticClass:\"mb-3\",attrs:{\"outlined\":\"\",\"hide-details\":\"\",\"dense\":\"\"},on:{\"keydown\":_vm.dtmfInput},model:{value:(_vm.dtmfHistory),callback:function ($$v) {_vm.dtmfHistory=$$v},expression:\"dtmfHistory\"}}),_c('v-row',[_c('v-btn',{attrs:{\"icon\":\"\",\"x-large\":\"\"},on:{\"click\":function($event){return _vm.senddtmf('1')}}},[_c('div',{staticClass:\"dialpadbutton\"},[_c('div',{staticClass:\"digit\"},[_vm._v(\"1\")]),_c('div',{staticClass:\"alpha\",staticStyle:{\"opacity\":\"0\"}},[_vm._v(\"_\")])])]),_c('v-btn',{attrs:{\"icon\":\"\",\"x-large\":\"\"},on:{\"click\":function($event){return _vm.senddtmf('2')}}},[_c('div',{staticClass:\"dialpadbutton\"},[_c('div',{staticClass:\"digit\"},[_vm._v(\"2\")]),_c('div',{staticClass:\"alpha\"},[_vm._v(\"ABC\")])])]),_c('v-btn',{attrs:{\"icon\":\"\",\"x-large\":\"\"},on:{\"click\":function($event){return _vm.senddtmf('3')}}},[_c('div',{staticClass:\"dialpadbutton\"},[_c('div',{staticClass:\"digit\"},[_vm._v(\"3\")]),_c('div',{staticClass:\"alpha\"},[_vm._v(\"DEF\")])])])],1),_c('v-row',[_c('v-btn',{attrs:{\"icon\":\"\",\"x-large\":\"\"},on:{\"click\":function($event){return _vm.senddtmf('4')}}},[_c('div',{staticClass:\"dialpadbutton\"},[_c('div',{staticClass:\"digit\"},[_vm._v(\"4\")]),_c('div',{staticClass:\"alpha\"},[_vm._v(\"GHI\")])])]),_c('v-btn',{attrs:{\"icon\":\"\",\"x-large\":\"\"},on:{\"click\":function($event){return _vm.senddtmf('5')}}},[_c('div',{staticClass:\"dialpadbutton\"},[_c('div',{staticClass:\"digit\"},[_vm._v(\"5\")]),_c('div',{staticClass:\"alpha\"},[_vm._v(\"JKL\")])])]),_c('v-btn',{attrs:{\"icon\":\"\",\"x-large\":\"\"},on:{\"click\":function($event){return _vm.senddtmf('6')}}},[_c('div',{staticClass:\"dialpadbutton\"},[_c('div',{staticClass:\"digit\"},[_vm._v(\"6\")]),_c('div',{staticClass:\"alpha\"},[_vm._v(\"MNO\")])])])],1),_c('v-row',[_c('v-btn',{attrs:{\"icon\":\"\",\"x-large\":\"\"},on:{\"click\":function($event){return _vm.senddtmf('7')}}},[_c('div',{staticClass:\"dialpadbutton\"},[_c('div',{staticClass:\"digit\"},[_vm._v(\"7\")]),_c('div',{staticClass:\"alpha\"},[_vm._v(\"PQRS\")])])]),_c('v-btn',{attrs:{\"icon\":\"\",\"x-large\":\"\"},on:{\"click\":function($event){return _vm.senddtmf('8')}}},[_c('div',{staticClass:\"dialpadbutton\"},[_c('div',{staticClass:\"digit\"},[_vm._v(\"8\")]),_c('div',{staticClass:\"alpha\"},[_vm._v(\"TUV\")])])]),_c('v-btn',{attrs:{\"icon\":\"\",\"x-large\":\"\"},on:{\"click\":function($event){return _vm.senddtmf('9')}}},[_c('div',{staticClass:\"dialpadbutton\"},[_c('div',{staticClass:\"digit\"},[_vm._v(\"9\")]),_c('div',{staticClass:\"alpha\"},[_vm._v(\"WXYZ\")])])])],1),_c('v-row',[_c('v-btn',{attrs:{\"icon\":\"\",\"x-large\":\"\"},on:{\"click\":function($event){return _vm.senddtmf('*')}}},[_c('div',{staticClass:\"dialpadbutton\"},[_c('div',{staticClass:\"digit\"},[_vm._v(\"*\")]),_c('div',{staticClass:\"alpha\",staticStyle:{\"opacity\":\"0\"}},[_vm._v(\"_\")])])]),_c('v-btn',{attrs:{\"icon\":\"\",\"x-large\":\"\"},on:{\"click\":function($event){return _vm.senddtmf('0')}}},[_c('div',{staticClass:\"dialpadbutton\"},[_c('div',{staticClass:\"digit\"},[_vm._v(\"0\")]),_c('div',{staticClass:\"alpha\"},[_vm._v(\"+\")])])]),_c('v-btn',{attrs:{\"icon\":\"\",\"x-large\":\"\"},on:{\"click\":function($event){return _vm.senddtmf('#')}}},[_c('div',{staticClass:\"dialpadbutton\"},[_c('div',{staticClass:\"digit\"},[_vm._v(\"#\")]),_c('div',{staticClass:\"alpha\",staticStyle:{\"opacity\":\"0\"}},[_vm._v(\"_\")])])])],1)],1):_vm._e(),(!_vm.conferenceMode)?_c('div',{staticClass:\"dialbar ma-2\"},[_c('v-tooltip',{attrs:{\"right\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on, attrs }){return [_c('v-btn',_vm._g(_vm._b({staticClass:\"ml-3\",attrs:{\"icon\":\"\",\"small\":\"\"},on:{\"click\":_vm.phoneSettingsIconClicked}},'v-btn',attrs,false),on),[_c('v-icon',{attrs:{\"color\":\"blue\"}},[_vm._v(\" mdi-cog \")])],1)]}}],null,false,3015709359)},[_c('span',[_vm._v(\" \"+_vm._s(_vm.Translate('Phone Settings')))])]),_c('span',{staticStyle:{\"flex-grow\":\"1\"}}),(_vm.activeCallList.length < 1)?_c('v-btn',{attrs:{\"color\":\"primary\",\"disabled\":_vm.callButtonDisabled},on:{\"click\":_vm.callClicked}},[_vm._v(\" Call \")]):_vm._e(),(_vm.activeCallList.length >= 1)?_c('v-item-group',{staticClass:\"v-btn-toggle\"},[_c('v-btn',{attrs:{\"color\":\"primary\"},on:{\"click\":_vm.holdAndDialClicked}},[_vm._v(\" \"+_vm._s(_vm.Translate('Hold and dial'))+\" \")]),_c('v-menu',{attrs:{\"offset-y\":\"\",\"left\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on, attrs }){return [_c('v-btn',_vm._g(_vm._b({attrs:{\"color\":\"primary\"}},'v-btn',attrs,false),on),[_c('v-icon',{staticClass:\"white--text\"},[_vm._v(\"mdi-arrow-down-drop-circle\")])],1)]}}],null,false,279206270)},[_c('v-list',[_c('v-list-item',{on:{\"click\":_vm.addCallClicked}},[_c('v-list-item-title',[_vm._v(\" \"+_vm._s(_vm.Translate('Add call (conference)'))+\" \")])],1),_c('v-list-item',{on:{\"click\":_vm.blindTransferClicked}},[_c('v-list-item-title',[_vm._v(\" \"+_vm._s(_vm.Translate('Blind transfer'))+\" \")])],1)],1)],1)],1):_vm._e()],1):_vm._e(),(_vm.conferenceMode)?_c('div',{staticClass:\"conferencebar ma-2\"},[_c('v-tooltip',{attrs:{\"right\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on, attrs }){return [_c('v-btn',_vm._g(_vm._b({staticClass:\"ml-3\",attrs:{\"icon\":\"\",\"small\":\"\"},on:{\"click\":_vm.conferenceSettingsIconClicked}},'v-btn',attrs,false),on),[_c('v-icon',{attrs:{\"color\":\"blue\"}},[_vm._v(\" mdi-cog \")])],1)]}}],null,false,3386266061)},[_c('span',[_vm._v(_vm._s(_vm.Translate('Conference Settings')))])]),(_vm.callHSM.CurrentState == 'Master.Idle')?_c('v-btn',{attrs:{\"color\":\"primary\",\"disabled\":!_vm.callHSM.Vars.Mailbox.ConferenceBridge.Enabled},on:{\"click\":_vm.startConferenceClicked}},[_vm._v(\" \"+_vm._s(_vm.Translate('Start Conference'))+\" \")]):_vm._e(),(_vm.callHSM.CurrentState == 'Master.Conference' && _vm.conferenceStatus.AsModerator)?_c('v-btn',{attrs:{\"color\":\"primary\"},on:{\"click\":_vm.endConferenceClicked}},[_vm._v(\" \"+_vm._s(_vm.Translate('End Conference'))+\" \")]):_vm._e(),(_vm.callHSM.CurrentState == 'Master.Idle')?_c('v-btn',{attrs:{\"color\":\"primary\"},on:{\"click\":_vm.joinConferenceClicked}},[_vm._v(\" \"+_vm._s(_vm.Translate('Join Conference'))+\" \")]):_vm._e(),(_vm.callHSM.CurrentState == 'Master.Conference' && !_vm.conferenceStatus.AsModerator)?_c('v-btn',{attrs:{\"color\":\"primary\"},on:{\"click\":_vm.leaveConferenceClicked}},[_vm._v(\" \"+_vm._s(_vm.Translate('Leave Conference'))+\" \")]):_vm._e()],1):_vm._e(),(_vm.generalCallControlsVisible)?_c('div',{staticClass:\"activecalls ma-2\"},[_c('div',{staticClass:\"generalcallcontrols pa-2\"},[_c('v-btn',{attrs:{\"outlined\":\"\",\"color\":\"primary\"},on:{\"click\":_vm.muteClicked}},[_vm._v(\" \"+_vm._s(_vm.callHSM.Vars.ALegHSM.Vars.Muted ? 'Unmute' : 'Mute')+\" \"),_c('v-icon',[_vm._v(\" \"+_vm._s(_vm.callHSM.Vars.ALegHSM.Vars.Muted ? 'mdi-microphone-off' : 'mdi-microphone')+\" \")])],1),_c('span',{staticStyle:{\"flex-grow\":\"1\"}}),(!_vm.conferenceMode && _vm.activeCallList.length > 1)?_c('v-btn',{staticClass:\"mr-2\",attrs:{\"color\":\"red\",\"outlined\":\"\",\"depressed\":\"\",\"disabled\":!_vm.canDropOut},on:{\"click\":_vm.dropOut}},[_vm._v(\" \"+_vm._s(_vm.Translate('Drop Out'))+\" \"),_c('v-icon',{staticClass:\"ml-2\"},[_vm._v(\" mdi-location-exit \")])],1):_vm._e(),(!_vm.conferenceMode)?_c('v-btn',{attrs:{\"color\":\"error\",\"depressed\":\"\"},on:{\"click\":_vm.endAllClicked}},[_vm._v(\" \"+_vm._s(_vm.activeCallList.length > 1 ? _vm.Translate('End All') : _vm.Translate('End'))+\" \"),_c('v-icon',{staticClass:\"ml-2\"},[_vm._v(\" mdi-phone-hangup \")])],1):_vm._e(),(_vm.conferenceMode && _vm.callHSM.Vars.ALegHSM.CurrentState=='Listening.Active' && _vm.conferenceStatus.ModeratorName)?_c('span',[_vm._v(\" \"+_vm._s(_vm.Translate('Moderator:'))+\" \"+_vm._s(_vm.conferenceStatus.ModeratorName)+\" \")]):_vm._e()],1),_c('div',{staticClass:\"callcontrolscontainer\"},_vm._l((_vm.activeCallList),function(item,index){return _c('div',{key:index,class:{ callcontrols: true, 'pa-4': true, [_vm.conferenceMode ? 'call_state_conference' : item.class]: true }},[(!_vm.conferenceMode)?_c('v-tooltip',{attrs:{\"right\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on, attrs }){return [_c('v-btn',_vm._g(_vm._b({attrs:{\"color\":item.holdrestore.color,\"depressed\":\"\"},on:{\"click\":function($event){return _vm.callControlClicked(item.call)}}},'v-btn',attrs,false),on),[_c('v-icon',[_vm._v(\" \"+_vm._s(item.holdrestore.icon)+\" \")])],1)]}}],null,true)},[_c('span',[_vm._v(_vm._s(_vm.Translate(item.holdrestore.tooltip)))])]):_vm._e(),_c('v-icon',[_vm._v(\" \"+_vm._s(item.call.Vars.Call && item.call.Vars.Call.Talking && !item.call.Vars.Muted ? 'mdi-volume-high' : 'mdi-volume-low')+\" \")]),(_vm.conferenceMode)?_c('v-tooltip',{attrs:{\"right\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on, attrs }){return [_c('v-btn',_vm._g(_vm._b({attrs:{\"color\":\"error\",\"icon\":\"\",\"depressed\":\"\",\"larger\":\"\"},on:{\"click\":function($event){return _vm.conferenceMemberToggleMute(item.call)}}},'v-btn',attrs,false),on),[_c('v-icon',{attrs:{\"color\":\"black\",\"larger\":\"\"}},[_vm._v(\" \"+_vm._s(item.call.Vars.Muted ? 'mdi-microphone-off' : 'mdi-microphone')+\" \")])],1)]}}],null,true)},[_c('span',[_vm._v(_vm._s(_vm.Translate('Mute')))])]):_vm._e(),_c('ElapsedTime',{attrs:{\"starttime\":item.StartTime}}),_c('div',{staticStyle:{\"display\":\"flex\",\"flex-direction\":\"column\",\"align-items\":\"start\"}},[_c('span',{staticClass:\"from_title\"},[_vm._v(_vm._s(item.title))]),_c('span',{staticClass:\"from_subtitle\"},[_vm._v(_vm._s(item.subtitle))])]),_c('span',{staticStyle:{\"flex-grow\":\"1\"}}),(_vm.conferenceMode && _vm.conferenceStatus.AsModerator && item.call.Vars.RaisedHand)?_c('v-tooltip',{attrs:{\"right\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on, attrs }){return [_c('v-btn',_vm._g(_vm._b({attrs:{\"color\":\"error\",\"icon\":\"\",\"depressed\":\"\"},on:{\"click\":function($event){item.call.Vars.RaisedHand = false}}},'v-btn',attrs,false),on),[_c('v-icon',{attrs:{\"color\":\"green\"}},[_vm._v(\" mdi mdi-hand-back-right-outline \")])],1)]}}],null,true)},[_c('span',[_vm._v(_vm._s(_vm.Translate(\"Participant's hand is raised\")))])]):_vm._e(),(_vm.activeCallList.length > 1)?_c('v-tooltip',{attrs:{\"right\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on, attrs }){return [_c('v-btn',_vm._g(_vm._b({attrs:{\"color\":\"error\",\"icon\":\"\",\"depressed\":\"\"},on:{\"click\":function($event){return _vm.endOneCall(item.call)}}},'v-btn',attrs,false),on),[_c('v-icon',[_vm._v(\" mdi-phone-hangup \")])],1)]}}],null,true)},[_c('span',[_vm._v(_vm._s(_vm.Translate('Hang up')))])]):_vm._e(),_c('v-menu',{attrs:{\"offset-y\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on, attrs }){return [_c('v-btn',_vm._g(_vm._b({attrs:{\"icon\":\"\"}},'v-btn',attrs,false),on),[_c('v-icon',[_vm._v(\" mdi-dots-vertical \")])],1)]}}],null,true)},[_c('v-list',[_c('v-list-item-group',[_c('v-list-item',{on:{\"click\":function($event){return _vm.copySessionID(item.call)}}},[_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(\"Copy Session ID\")])],1)],1)],1)],1)],1)],1)}),0)]):_vm._e(),(_vm.incomingAlerting)?_c('div',{staticClass:\"alertingbar ma-2\"},[_c('span',[_vm._v(_vm._s(_vm.Translate('You have an incoming call from')))]),_c('AsyncTextblock',{staticClass:\"incomingAlertingStyles\",attrs:{\"settings\":_vm.incomingCallFromSettings}}),_c('div',{staticClass:\"incomingAlertingButtons\"},[_c('v-btn',{attrs:{\"color\":\"success\"},on:{\"click\":_vm.acceptIncomingCall}},[_vm._v(\" \"+_vm._s(_vm.Translate('Accept'))+\" \"),_c('v-icon',{staticClass:\"ml-3\"},[_vm._v(\"mdi-phone\")])],1),_c('v-btn',{attrs:{\"color\":\"error\"},on:{\"click\":_vm.declineIncomingCall}},[_vm._v(\" \"+_vm._s(_vm.Translate('Decline'))+\" \"),_c('v-icon',{staticClass:\"ml-3\"},[_vm._v(\"mdi-phone-missed\")])],1)],1)],1):_vm._e(),_c('v-dialog',{attrs:{\"width\":\"735\",\"value\":_vm.showJoinConferenceDialog,\"persistent\":\"\"}},[_c('v-card',[_c('v-app-bar',{staticStyle:{\"background-color\":\"var(--v-navigation-base)\",\"height\":\"60px\"},attrs:{\"flat\":\"\",\"color\":\"rgba(0, 0, 0, 0)\"}},[_c('v-toolbar-title',{staticClass:\"title white--text pl-0\"},[_vm._v(\" \"+_vm._s(_vm.Translate('Join Conference'))+\" \")]),_c('v-spacer'),_c('v-btn',{attrs:{\"color\":\"white\",\"icon\":\"\"},on:{\"click\":function($event){_vm.showJoinConferenceDialog=false}}},[_c('v-icon',[_vm._v(\"mdi-close\")])],1)],1),_c('v-card-text',{staticClass:\"mt-2 pa-3\"},[_c('p',{staticStyle:{\"font-size\":\"larger\"}},[_vm._v(\" \"+_vm._s(_vm.Translate('Please choose the moderator of the conference to join:'))+\" \")]),_c('v-form',{staticClass:\"mt-3\"},[_c('v-autocomplete',{attrs:{\"outlined\":\"\",\"dense\":\"\",\"autofocus\":\"\",\"clearable\":\"\",\"label\":\"Moderator Name\",\"items\":_vm.moderatorNames},on:{\"focus\":_vm.loadModeratorNamesFocused,\"keydown\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\"))return null;return _vm.moderatorNamesEnter.apply(null, arguments)},\"input\":_vm.moderatorInput}})],1)],1),_c('v-card-actions',{staticStyle:{\"justify-content\":\"flex-end\"}},[_c('v-btn',{attrs:{\"color\":\"primary\",\"disabled\":!_vm.moderatorUserID},on:{\"click\":_vm.moderatorAccept}},[_vm._v(\" \"+_vm._s(_vm.Translate('OK'))+\" \")]),_c('v-btn',{attrs:{\"color\":\"secondary\"},on:{\"click\":function($event){_vm.showJoinConferenceDialog=false}}},[_vm._v(\" \"+_vm._s(_vm.Translate('Cancel'))+\" \")])],1)],1)],1),(_vm.showContactDetails)?_c('v-dialog',{attrs:{\"max-width\":\"450\",\"scrollable\":\"\",\"value\":_vm.showContactDetails,\"persistent\":\"\"}},[_c('v-card',{attrs:{\"width\":\"450\"}},[_c('v-card-title',[_c('span',{staticClass:\"text-h5\"},[_vm._v(\"Contact Details\")]),_c('v-spacer'),_c('v-btn',{attrs:{\"icon\":\"\",\"color\":\"secondary\"},on:{\"click\":function($event){_vm.showContactDetails = false}}},[_c('v-icon',[_vm._v(\"mdi-close\")])],1)],1),_c('v-container',[_c('v-card-text',[_c('v-row',[_c('v-col',{attrs:{\"cols\":\"12\",\"sm\":\"6\",\"md\":\"4\"}},[_c('div',{staticClass:\"d-flex flex-column\",staticStyle:{\"font-size\":\"1rem\"}},[_c('span',{staticClass:\"text-caption\"},[_vm._v(_vm._s(_vm.Translate('First name')))]),_c('span',[_vm._v(_vm._s(_vm.selectedContact.first_display))])])]),_c('v-col',{attrs:{\"cols\":\"12\",\"sm\":\"6\",\"md\":\"4\"}},[_c('div',{staticClass:\"d-flex flex-column\",staticStyle:{\"font-size\":\"1rem\"}},[_c('span',{staticClass:\"text-caption\"},[_vm._v(_vm._s(_vm.Translate('Last name')))]),_c('span',[_vm._v(_vm._s(_vm.selectedContact.last_display))])])]),_c('v-col',{attrs:{\"cols\":\"12\",\"sm\":\"6\",\"md\":\"4\"}},[_c('div',{staticClass:\"d-flex flex-column\",staticStyle:{\"font-size\":\"1rem\"}},[_c('span',{staticClass:\"text-caption\"},[_vm._v(_vm._s(_vm.Translate('Middle name')))]),_c('span',[_vm._v(_vm._s(_vm.selectedContact.middle_display))])])]),_c('v-col',{attrs:{\"cols\":\"12\",\"sm\":\"6\",\"md\":\"4\"}},[_c('div',{staticClass:\"d-flex flex-column\",staticStyle:{\"font-size\":\"1rem\"}},[_c('span',{staticClass:\"text-caption\"},[_vm._v(_vm._s(_vm.Translate('Job title')))]),_c('span',[_vm._v(_vm._s(_vm.selectedContact.JobTitle))])])]),_c('v-col',{attrs:{\"cols\":\"12\",\"sm\":\"6\",\"md\":\"4\"}},[_c('div',{staticClass:\"d-flex flex-column\",staticStyle:{\"font-size\":\"1rem\"}},[_c('span',{staticClass:\"text-caption\"},[_vm._v(_vm._s(_vm.Translate('Company')))]),_c('span',[_vm._v(_vm._s(_vm.selectedContact.CompanyName))])])]),_c('v-col',{attrs:{\"cols\":\"12\",\"sm\":\"6\",\"md\":\"4\"}},[_c('div',{staticClass:\"d-flex flex-column\",staticStyle:{\"font-size\":\"1rem\"}},[_c('span',{staticClass:\"text-caption\"},[_vm._v(_vm._s(_vm.Translate('Department')))]),_c('span',[_vm._v(_vm._s(_vm.selectedContact.Department))])])])],1)],1),_c('div',[_c('v-card-title',[_c('span',{staticClass:\"text-h5\"},[_vm._v(_vm._s(_vm.Translate('Phone Numbers')))])]),_c('v-card-text',{staticClass:\"d-flex align-center\"},[_c('v-radio-group',{model:{value:(_vm.selectedPhoneNumberValue),callback:function ($$v) {_vm.selectedPhoneNumberValue=$$v},expression:\"selectedPhoneNumberValue\"}},_vm._l((_vm.selectedContact.PhoneNumbers),function(phoneNumber,index){return _c('v-radio',{key:index,attrs:{\"value\":index},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_c('div',{staticClass:\"d-flex flex-column\",staticStyle:{\"font-size\":\"1rem\"}},[_c('span',{staticClass:\"text-caption\"},[_vm._v(_vm._s(phoneNumber.type))]),_c('span',[_vm._v(_vm._s(_vm.util.formatPhoneNumber(phoneNumber.phonenumber)))])])]},proxy:true}],null,true)})}),1)],1)],1)],1),_c('v-card-actions',{attrs:{\"tile\":\"\"}},[_c('v-spacer'),_c('v-btn',{attrs:{\"color\":\"primary\",\"block\":\"\"},on:{\"click\":_vm.selectedContactNumber}},[_vm._v(\" \"+_vm._s(_vm.Translate('Select'))+\" \")]),_c('v-spacer')],1)],1)],1):_vm._e()],1):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',[_vm._v(_vm._s(_vm.elapsedTime))])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\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/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./elapsedTimer.vue?vue&type=script&lang=js&\"; 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/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./elapsedTimer.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./elapsedTimer.vue?vue&type=template&id=69310895&scoped=true&\"\nimport script from \"./elapsedTimer.vue?vue&type=script&lang=js&\"\nexport * from \"./elapsedTimer.vue?vue&type=script&lang=js&\"\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 \"69310895\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',[_vm._v(_vm._s(_vm.text))])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\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/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./asyncTextblock.vue?vue&type=script&lang=js&\"; 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/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./asyncTextblock.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./asyncTextblock.vue?vue&type=template&id=1371a5cb&scoped=true&\"\nimport script from \"./asyncTextblock.vue?vue&type=script&lang=js&\"\nexport * from \"./asyncTextblock.vue?vue&type=script&lang=js&\"\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 \"1371a5cb\",\n null\n \n)\n\nexport default component.exports","\r\n\r\n\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/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SoftPhone.vue?vue&type=script&lang=js&\"; 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/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SoftPhone.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./SoftPhone.vue?vue&type=template&id=0feaf1c0&scoped=true&\"\nimport script from \"./SoftPhone.vue?vue&type=script&lang=js&\"\nexport * from \"./SoftPhone.vue?vue&type=script&lang=js&\"\nimport style0 from \"./SoftPhone.vue?vue&type=style&index=0&id=0feaf1c0&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 \"0feaf1c0\",\n null\n \n)\n\nexport default component.exports","import Vue from 'vue';\r\nimport BaseComponent from './BaseComponentMixin.jsx';\r\nimport './css/BasicButton.css';\r\nimport token from '@/Services/token';\r\n\r\nVue.component('sound-player', {\r\n mixins: [BaseComponent],\r\n data: function () {\r\n return {\r\n State: 'Stopped',\r\n }\r\n },\r\n //Mounted Replaced with preRenderComplete\r\n computed: {\r\n },\r\n methods: {\r\n preRenderComplete() {\r\n this.finishRenderHandler(this);\r\n },\r\n PlaySound(fn) {\r\n let src;\r\n if (fn.startsWith('http'))\r\n src = fn;\r\n else \r\n src = new URL(fn, token.GetApiBaseURL()).href;\r\n \r\n const this_ref = this;\r\n\r\n fetch(src, {\r\n method: \"GET\",\r\n mode: \"cors\",\r\n credentials: \"include\",\r\n headers: {\r\n \"access_token\": token.AccessToken()\r\n }\r\n })\r\n .then((response) => response.blob())\r\n .then((audioBlob) => {\r\n this.blobUrl = URL.createObjectURL(audioBlob);\r\n this.audio = new Audio();\r\n this.audio.crossOrigin = \"use-credentials\";\r\n this.audio.src = this.blobUrl;\r\n this.audio.addEventListener(\"canplaythrough\", event => {\r\n this_ref.State = 'Playing';\r\n });\r\n this.audio.addEventListener(\"ended\", function () {\r\n this_ref.State = 'Stopped';\r\n });\r\n this.State = 'Loading';\r\n this.audio.play();\r\n }); \r\n },\r\n Stop() {\r\n if (this.audio) {\r\n this.audio.pause();\r\n delete this.audio;\r\n URL.revokeObjectURL(this.blobUrl);\r\n }\r\n this.State = 'Stopped';\r\n }\r\n },\r\n props: {\r\n },\r\n render(h) {\r\n return null;\r\n }\r\n});","import Vue from 'vue';\r\nimport utils from '../../Shared/utils.jsx';\r\nimport BaseComponent from './BaseComponentMixin.jsx';\r\n\r\nVue.component('split-button', {\r\n mixins: [BaseComponent],\r\n data: function () {\r\n return {\r\n textrenderer: null,\r\n tooltiprenderer: null,\r\n iconrenderer: null,\r\n isdisabledeval: null,\r\n menuactions: [],\r\n }\r\n },\r\n async created() {\r\n this.isdisabledeval = utils.compile(this, this.controlData.IsDisabled);\r\n },\r\n //Mounted Replaced with preRenderComplete\r\n computed: {\r\n isdisabled: function () {\r\n return utils.evaluate(this.isdisabledeval, this);\r\n },\r\n styles: function () {\r\n return {\r\n ...this.sizeStyle,\r\n ...utils.resolveStyleHints(this.styleHints, this),\r\n overflow: \"hidden\",\r\n whiteSpace: \"nowrap\",\r\n };\r\n }\r\n },\r\n methods: {\r\n preRenderComplete() {\r\n this.finishRenderHandler(this);\r\n },\r\n async doClick(e) {\r\n e.cancelBubble = true;\r\n e.stopPropagation();\r\n\r\n await utils.executeAndCompileAllActions(this.controlData.MenuActions, null, this);\r\n },\r\n },\r\n props: {\r\n },\r\n render(h) {\r\n if (!this.todisplay)\r\n return null;\r\n\r\n //const style = {\r\n // ...utils.getSize(this.controlData.SizeOptions, this.parentType, this.$parent),\r\n // ...utils.resolveStyleHints(this.styleHints, this),\r\n // overflow: \"hidden\",\r\n // whiteSpace: \"nowrap\",\r\n //};\r\n\r\n let content = [];\r\n\r\n content.push(mdi mdi-menu-down);\r\n\r\n const flat = this.controlData.Themes ? this.controlData.Themes.includes(\"Flat\") : false;\r\n const small = this.controlData.Themes ? this.controlData.Themes.includes(\"Condensed\") : false;\r\n\r\n const menu = null; // ;\r\n\r\n return (\r\n \r\n this.doClick(e)}\r\n type=\"button\"\r\n title={this.tooltip}\r\n disabled={this.isdisabled == 'true'}>\r\n {content}\r\n \r\n {menu}\r\n \r\n );\r\n }\r\n});","import Vue from 'vue';\r\nimport BaseComponent from './BaseComponentMixin.jsx';\r\nimport EventBus from '../event-bus.js';\r\n\r\nimport utils from '../../Shared/utils.jsx';\r\nimport methods from '../../Shared/methods';\r\n\r\nimport { Splitpanes, Pane } from 'splitpanes';\r\n\r\nVue.component('split-panes', {\r\n mixins: [BaseComponent],\r\n components: {\r\n Splitpanes,\r\n Pane,\r\n },\r\n data: function () {\r\n return {\r\n }\r\n },\r\n created() {\r\n for (let i = 0; i < this.controlData.Panes.length; i++) {\r\n const p = this.controlData.Panes[i];\r\n if (p.DisplayExpression)\r\n p.displayexpr = utils.compileExpression(this, p.DisplayExpression);\r\n }\r\n },\r\n //Created Replaced with preRenderComplete\r\n computed: {\r\n },\r\n methods: {\r\n async preRenderComplete() {\r\n this.finishRenderHandler(this);\r\n },\r\n },\r\n render(h) {\r\n if(!this.todisplay)\r\n return null;\r\n \r\n try {\r\n const panes = [];\r\n\r\n for (let i = 0; i < this.controlData.Panes.length; i++) {\r\n const p = this.controlData.Panes[i];\r\n if (p.displayexpr && !utils.evaluate(p.displayexpr, this))\r\n continue;\r\n\r\n let paneStyle;\r\n if (p.FlexBoxContent || p.FlexBoxContent === undefined)\r\n paneStyle = {\r\n display: 'flex',\r\n flexDirection: 'column',\r\n flexGrow: '1',\r\n height: '100px',\r\n };\r\n\r\n panes.push(\r\n \r\n
\r\n {utils.generateItemsFromArray(h, this, p.Controls, null, \"VerticalLayout\")}\r\n
\r\n \r\n );\r\n }\r\n\r\n const style = {\r\n ...this.sizeStyle,\r\n ...utils.resolveStyleHints(this.styleHints, this),\r\n // display: \"flex\",\r\n // flexDirection: \"column\",\r\n // overflow: \"auto\",\r\n };\r\n\r\n return (\r\n \r\n {panes}\r\n \r\n );\r\n }\r\n catch (e) {\r\n utils.error('SplitPanes Render failed', e);\r\n return
SplitPanes Failed to Render {e}
;\r\n }\r\n }\r\n});","import Vue from 'vue';\r\nimport BaseComponent from './BaseComponentMixin.jsx';\r\nimport careHelpfulFunctions from '../careHelpfulFunctions.jsx';\r\nimport AceEditor from './3rdParty/AceEditor.jsx';\r\nimport EventBus from '../event-bus.js';\r\n\r\nimport utils from '../../Shared/utils.jsx';\r\nimport methods from '../../Shared/methods';\r\n\r\nVue.component('text-editor', {\r\n mixins: [BaseComponent],\r\n data: function () {\r\n return {\r\n languageEval: null,\r\n sourceUrlEval: null,\r\n sourceRawInterpolatedEval: null,\r\n isRawEval: null, \r\n model: null,\r\n setValueFunction: null,\r\n data: null\r\n }\r\n },\r\n async created() {\r\n this.publishField = this.source;\r\n\r\n EventBus.$on('Action-TextEditorRefresh', this.performTextEditorRefresh);\r\n this.$on('Action-TextEditorRefresh', this.performTextEditorRefresh);\r\n\r\n // Subscribe by name so Target can be directed to a specific container\r\n if (this.controlData.Name) {\r\n EventBus.$on(`Action-TextEditorRefresh:${this.controlData.Name}`, this.performTextEditorRefresh);\r\n this.$on(`Action-TextEditorRefresh:${this.controlData.Name}`, this.performTextEditorRefresh);\r\n }\r\n },\r\n //Mounted Replaced with preRenderComplete\r\n destroyed() {\r\n this.$off('Action-TextEditorRefresh', this.performTextEditorRefresh);\r\n\r\n if (this.controlData.Name) {\r\n this.$off(`Action-TextEditorRefresh:${this.controlData.Name}`, this.performTextEditorRefresh);\r\n }\r\n },\r\n computed: {\r\n publishField: {\r\n set(value){\r\n if(this.setValueFunction === null && this.controlData.PublishField) {\r\n let vueSet = utils.helpers.convertSetValueToVueSet(this.controlData.PublishField, 'value');\r\n this.setValueFunction = new Function('value', 'context', 'util', 'vue', `with (context) { ${vueSet} }`);\r\n }\r\n if(this.setValueFunction) {\r\n this.setValueFunction(value, this, careHelpfulFunctions, Vue)\r\n }\r\n this.model = value;\r\n },\r\n get() {\r\n return this.model;\r\n }\r\n },\r\n language() {\r\n try {\r\n if(this.languageEval === null && this.controlData.Language)\r\n this.languageEval = utils.compile(this, this.controlData.Language);\r\n if(this.languageEval)\r\n return utils.evaluate(this.languageEval, this) || 'json';\r\n return 'json';\r\n }\r\n catch (e) {\r\n utils.warn('Language could not evaluate expression: ' + this.controlData.Language + '; ' + e);\r\n return '';\r\n }\r\n },\r\n sourceUrl() {\r\n try {\r\n if(this.sourceUrlEval === null && this.controlData.DataURL)\r\n this.sourceUrlEval = utils.compile(this, this.controlData.DataURL);\r\n if(this.sourceUrlEval)\r\n return utils.evaluate(this.sourceUrlEval, this);\r\n return '';\r\n }\r\n catch (e) {\r\n utils.warn('Source URL could not evaluate expression: ' + this.controlData.DataURL + '; ' + e);\r\n return '';\r\n }\r\n },\r\n sourceRawInterpolated() {\r\n try {\r\n if(this.sourceRawInterpolatedEval === null && this.controlData.Data)\r\n this.sourceRawInterpolatedEval = utils.compileObject(this, this.controlData.Data)\r\n if(this.sourceRawInterpolatedEval)\r\n return utils.evaluateObject(this.sourceRawInterpolatedEval, this);\r\n return '';\r\n }\r\n catch (e) {\r\n utils.warn('Sorce raw interpolated could not evaluate expression: ' + this.controlData.Data + '; ' + e);\r\n return '';\r\n }\r\n },\r\n source() {\r\n let responseData = [];\r\n switch(this.controlData.DataType.toLowerCase()) {\r\n case 'url':\r\n responseData = this.data;\r\n break;\r\n case 'raw': \r\n case 'rawinterpolated': \r\n responseData = this.sourceRawInterpolated;\r\n break;\r\n }\r\n if(this.isRaw)\r\n return responseData;\r\n return JSON.stringify(responseData, 4, 4);\r\n },\r\n isRaw() {\r\n try {\r\n if(this.isRawEval === null && this.controlData.IsRaw)\r\n this.isRawEval = utils.compile(this, this.controlData.IsRaw);\r\n if(this.isRawEval)\r\n return utils.evaluate(this.isRawEval, this);\r\n return '';\r\n }\r\n catch (e) {\r\n utils.warn('IsRaw could not evaluate expression: ' + this.controlData.IsRaw + '; ' + e);\r\n return '';\r\n }\r\n },\r\n styles() {\r\n let styles = {\r\n ...this.sizeStyle\r\n }\r\n\r\n if(this.controlData?.SizeOptions?.Height?.Mode === 'Auto' || this.controlData?.SizeOptions?.Height?.Mode === 'Fill')\r\n styles.minHeight = '100px';\r\n\r\n if(this.controlData?.SizeOptions?.Width?.Mode === 'Auto' || this.controlData?.SizeOptions?.Width?.Mode === 'Fill')\r\n styles.minWidth = '200px'\r\n\r\n return styles;\r\n }\r\n },\r\n methods: {\r\n async preRenderComplete() {\r\n await this.Refresh();\r\n this.finishRenderHandler(this);\r\n },\r\n async Refresh() {\r\n switch (this.controlData.DataType) {\r\n case 'URL': {\r\n this.data = await utils.api.get(this.sourceUrl);\r\n break;\r\n }\r\n }\r\n this.publishField = this.source;\r\n },\r\n async performTextEditorRefresh(action) {\r\n utils.log(`${this.type} ${this.name} TextEditorRefresh`);\r\n\r\n if (action.ActionData && action.ActionData.Debug && action.ActionData.Debug.BreakPoint) debugger;\r\n\r\n try {\r\n // Changing the key for the user control causes Vue to reload\r\n await this.Refresh();\r\n\r\n try {\r\n await utils.success(action);\r\n } catch (e) { }\r\n }\r\n catch (e) {\r\n try {\r\n await utils.failure(action);\r\n } catch (e) { }\r\n }\r\n finally {\r\n try {\r\n await utils.complete(action);\r\n }\r\n catch (e) { }\r\n\r\n // Complete the promise for the executeAction method\r\n action.FinishFunc(true);\r\n }\r\n },\r\n onChange(value) {\r\n this.publishField = value;\r\n },\r\n },\r\n props: {\r\n },\r\n render(h) {\r\n if(!this.todisplay)\r\n return null;\r\n\r\n try {\r\n return (\r\n
\r\n \r\n
\r\n );\r\n }\r\n catch(e){\r\n utils.error('TextEditor Render failed', e);\r\n return
TextEditor Failed to Render {e}
;\r\n }\r\n }\r\n});","import Vue from 'vue';\r\nimport utils from '../../Shared/utils.jsx';\r\nimport BaseComponent from './BaseComponentMixin.jsx';\r\nimport cloneDeep from 'lodash.clonedeep';\r\n\r\nVue.component('cc-timeline', {\r\n mixins: [BaseComponent],\r\n data: function () {\r\n return {\r\n sourceUrlEval: null,\r\n data: null,\r\n sourceRawInterpolatedEval: null,\r\n tooltiprenderer: null,\r\n fontNameEval: null,\r\n fontSizeEval: null,\r\n heightEval: null,\r\n widthEval: null,\r\n chartPaddingEval: null,\r\n avoidOverlappingGridLinesEval: null,\r\n backgroundColorEval: null,\r\n barLabelStyleEval: null,\r\n colorByRowLabelEval: null,\r\n groupByRowLabelEval: null,\r\n rowLabelStyleEval: null,\r\n showBarLabelsEval: null,\r\n showRowLabelsEval: null,\r\n singleColorEval: null,\r\n chart: null,\r\n dataTable: null,\r\n usefulHandlerListener: null,\r\n hasActions: false,\r\n googleOnLoadCallback: null,\r\n readyToDraw: false\r\n }\r\n },\r\n computed: {\r\n sourceUrl() {\r\n try {\r\n return utils.evaluate(this.sourceUrlEval, this) || null;\r\n }\r\n catch (err) {\r\n return null;\r\n }\r\n },\r\n sourceRawInterpolated() {\r\n try {\r\n return utils.evaluateObject(this.sourceRawInterpolatedEval, this) || null;\r\n }\r\n catch (err) {\r\n return null;\r\n }\r\n },\r\n source() {\r\n switch (this.controlData.SourceType.toLowerCase()) {\r\n case 'url':\r\n return this.data;\r\n case 'raw':\r\n case 'rawinterpolated': return this.sourceRawInterpolated;\r\n default: return null;\r\n }\r\n },\r\n fontName() {\r\n try {\r\n if (this.fontNameEval === null && this.controlData.FontName)\r\n this.fontNameEval = utils.compile(this, this.controlData.FontName);\r\n if (this.fontNameEval)\r\n return utils.evaluate(this.fontNameEval, this);\r\n return 'Arial';\r\n }\r\n catch (e) {\r\n utils.warn('Timeline could not evaluate expression: ' + this.controlData.FontName + '; ' + e);\r\n return 'Arial';\r\n }\r\n },\r\n fontSize() {\r\n try {\r\n if (this.fontSizeEval === null && this.controlData.FontSize)\r\n this.fontSizeEval = utils.compile(this, this.controlData.FontSize);\r\n if (this.fontSizeEval)\r\n return utils.evaluate(this.fontSizeEval, this);\r\n return 'automatic';\r\n }\r\n catch (e) {\r\n utils.warn('Timeline could not evaluate expression: ' + this.controlData.FontSize + '; ' + e);\r\n return 'automatic';\r\n }\r\n },\r\n height() {\r\n try {\r\n if (this.heightEval === null && this.controlData.Height)\r\n this.heightEval = utils.compile(this, this.controlData.Height);\r\n if (this.heightEval)\r\n return utils.evaluate(this.heightEval, this);\r\n return '';\r\n }\r\n catch (e) {\r\n utils.warn('Timeline could not evaluate expression: ' + this.controlData.Height + '; ' + e);\r\n return '';\r\n }\r\n },\r\n width() {\r\n try {\r\n if (this.widthEval === null && this.controlData.Width)\r\n this.widthEval = utils.compile(this, this.controlData.Width);\r\n if (this.widthEval)\r\n return utils.evaluate(this.widthEval, this);\r\n return '';\r\n }\r\n catch (e) {\r\n utils.warn('Timeline could not evaluate expression: ' + this.controlData.Width + '; ' + e);\r\n return '';\r\n }\r\n },\r\n chartPadding() {\r\n try {\r\n if (this.chartPaddingEval === null && this.controlData.ChartPadding)\r\n this.chartPaddingEval = utils.compile(this, this.controlData.ChartPadding);\r\n if (this.chartPaddingEval)\r\n return utils.evaluate(this.chartPaddingEval, this);\r\n return '';\r\n }\r\n catch (e) {\r\n utils.warn('Timeline could not evaluate expression: ' + this.controlData.ChartPadding + '; ' + e);\r\n return '';\r\n }\r\n },\r\n avoidOverlappingGridLines() {\r\n try {\r\n if (this.avoidOverlappingGridLinesEval === null && this.controlData.AvoidOverlappingGridLines)\r\n this.avoidOverlappingGridLinesEval = utils.compileObject(this, this.controlData.AvoidOverlappingGridLines);\r\n if (this.avoidOverlappingGridLinesEval)\r\n return utils.evaluateObject(this.avoidOverlappingGridLinesEval, this);\r\n return false;\r\n }\r\n catch (e) {\r\n utils.warn('Timeline could not evaluate expression: ' + this.controlData.AvoidOverlappingGridLines + '; ' + e);\r\n return false;\r\n }\r\n },\r\n backgroundColor() {\r\n try {\r\n if (this.backgroundColorEval === null && this.controlData.BackgroundColor)\r\n this.backgroundColorEval = utils.compile(this, this.controlData.BackgroundColor);\r\n if (this.backgroundColorEval)\r\n return utils.evaluate(this.backgroundColorEval, this);\r\n return '';\r\n }\r\n catch (e) {\r\n utils.warn('Timeline could not evaluate expression: ' + this.controlData.BackgroundColor + '; ' + e);\r\n return '';\r\n }\r\n },\r\n barLabelStyle() {\r\n try {\r\n if (this.barLabelStyleEval === null && this.controlData.BarLabelStyle)\r\n this.barLabelStyleEval = utils.compile(this, this.controlData.BarLabelStyle);\r\n if (this.barLabelStyleEval)\r\n return utils.evaluate(this.barLabelStyleEval, this);\r\n return '';\r\n }\r\n catch (e) {\r\n utils.warn('Timeline could not evaluate expression: ' + this.controlData.BarLabelStyle + '; ' + e);\r\n return '';\r\n }\r\n },\r\n colorByRowLabel() {\r\n try {\r\n if (this.colorByRowLabelEval === null && this.controlData.ColorByRow)\r\n this.colorByRowLabelEval = utils.compileObject(this, this.controlData.ColorByRow);\r\n if (this.colorByRowLabelEval)\r\n return utils.evaluateObject(this.colorByRowLabelEval, this);\r\n return false;\r\n }\r\n catch (e) {\r\n utils.warn('Timeline could not evaluate expression: ' + this.controlData.ColorByRow + '; ' + e);\r\n return false;\r\n }\r\n },\r\n groupByRowLabel() {\r\n try {\r\n if (this.groupByRowLabelEval === null && this.controlData.GroupByRow)\r\n this.groupByRowLabelEval = utils.compileObject(this, this.Translate(this.controlData.GroupByRow));\r\n if (this.groupByRowLabelEval)\r\n return utils.evaluateObject(this.groupByRowLabelEval, this);\r\n return true;\r\n }\r\n catch (e) {\r\n utils.warn('Timeline could not evaluate expression: ' + this.controlData.GroupByRow + '; ' + e);\r\n return true;\r\n }\r\n },\r\n rowLabelStyle() {\r\n try {\r\n if (this.rowLabelStyleEval === null && this.controlData.RowLabelStyle)\r\n this.rowLabelStyleEval = utils.compile(this, this.controlData.RowLabelStyle);\r\n if (this.rowLabelStyleEval)\r\n return utils.evaluate(this.rowLabelStyleEval, this);\r\n return '';\r\n }\r\n catch (e) {\r\n utils.warn('Timeline could not evaluate expression: ' + this.controlData.RowLabelStyle + '; ' + e);\r\n return '';\r\n }\r\n },\r\n showBarLabels() {\r\n try {\r\n if (this.showBarLabelsEval === null && this.controlData.ShowBarLabels)\r\n this.showBarLabelsEval = utils.compileObject(this, this.controlData.ShowBarLabels);\r\n if (this.showBarLabelsEval)\r\n return utils.evaluateObject(this.showBarLabelsEval, this);\r\n return true;\r\n }\r\n catch (e) {\r\n utils.warn('Timeline could not evaluate expression: ' + this.controlData.ShowBarLabels + '; ' + e);\r\n return true;\r\n }\r\n },\r\n showRowLabels() {\r\n try {\r\n if (this.showRowLabelsEval === null && this.controlData.ShowRowLabels)\r\n this.showRowLabelsEval = utils.compileObject(this, this.controlData.ShowRowLabels);\r\n if (this.showRowLabelsEval)\r\n return utils.evaluateObject(this.showRowLabelsEval, this);\r\n return true;\r\n }\r\n catch (e) {\r\n utils.warn('Timeline could not evaluate expression: ' + this.controlData.ShowRowLabels + '; ' + e);\r\n return true;\r\n }\r\n },\r\n singleColor() {\r\n try {\r\n if (this.singleColorEval === null && this.controlData.SingleColor)\r\n this.singleColorEval = utils.compileObject(this, this.controlData.SingleColor);\r\n if (this.singleColorEval)\r\n return utils.evaluateObject(this.singleColorEval, this);\r\n return '';\r\n }\r\n catch (e) {\r\n utils.warn('Timeline could not evaluate expression: ' + this.controlData.SingleColor + '; ' + e);\r\n return '';\r\n }\r\n },\r\n formattedData() {\r\n let dataCopy = cloneDeep(this.source);\r\n\r\n if (dataCopy) {\r\n dataCopy = this.addDates(dataCopy);\r\n dataCopy = this.removeExtraColumns(dataCopy);\r\n }\r\n\r\n return dataCopy;\r\n },\r\n styles() {\r\n let styles = {\r\n ...this.sizeStyle,\r\n overflow: 'hidden',\r\n border: '1px solid silver',\r\n };\r\n\r\n if (this.hasActions)\r\n styles.cursor = 'pointer'\r\n return styles;\r\n },\r\n hasData() {\r\n return this.source !== null && this.source.rows && this.source.rows.length !== 0;\r\n }\r\n },\r\n //Created Replaced with preRenderComplete\r\n mounted() {\r\n },\r\n watch: {\r\n isvisible: function () {\r\n this.getChart();\r\n },\r\n todisplay: function () {\r\n this.getChart();\r\n }\r\n },\r\n methods: {\r\n async Refresh() {\r\n await this.getData();\r\n this.getChart();\r\n },\r\n async preRenderComplete() {\r\n await this.getData()\r\n\r\n this.finishRenderHandler(this);\r\n\r\n this.readyToDraw = true;\r\n\r\n this.getChart();\r\n },\r\n async getData() {\r\n switch (this.controlData.SourceType.toLowerCase()) {\r\n case 'url': {\r\n this.sourceUrlEval = utils.compile(this, this.controlData.SourceURL);\r\n this.data = this.sourceUrl ? await utils.api.get(this.sourceUrl) : null;\r\n break;\r\n }\r\n case 'rawinterpolated':\r\n case 'raw': {\r\n this.sourceRawInterpolatedEval = utils.compileObject(this, this.controlData.SourceRaw);\r\n break;\r\n }\r\n }\r\n },\r\n getChart() {\r\n if (!this.readyToDraw)\r\n return;\r\n if (google.visualization) {\r\n this.$nextTick(() => {\r\n if (this.$refs.chart)\r\n this.chart = new google.visualization.Timeline(this.$refs.chart);\r\n\r\n this.dataTable = new google.visualization.DataTable();\r\n\r\n this.drawChart();\r\n });\r\n }\r\n else if (!this.googleOnLoadCallback) {\r\n this.googleOnLoadCallback = google.charts.setOnLoadCallback(this.getChart);\r\n }\r\n },\r\n drawChart() {\r\n if (!this.hasData)\r\n return;\r\n\r\n this.dataTable = new google.visualization.DataTable(this.formattedData);\r\n\r\n let options = {\r\n timeline: {\r\n barLabelStyle: this.barLabelStyle,\r\n colorByRowLabel: this.colorByRowLabel,\r\n groupByRowLabel: this.groupByRowLabel,\r\n rowLabelStyle: this.rowLabelStyle,\r\n showBarLabels: this.showBarLabels,\r\n showRowLabels: this.showRowLabels,\r\n singleColor: this.singleColor,\r\n },\r\n height: this.height,\r\n width: this.width,\r\n backgroundColor: this.backgroundColor,\r\n fontName: this.fontName,\r\n fontSize: this.fontSize,\r\n avoidOverlappingGridLines: this.avoidOverlappingGridLines,\r\n tooltip: { isHtml: true },\r\n };\r\n\r\n if (this.colors) options.colors = this.colors;\r\n\r\n google.visualization.events.addListener(this.chart, 'error', function (err) {\r\n // supress the errors... i dont know why, but hide them!\r\n google.visualization.errors.removeError(err.id);\r\n });\r\n\r\n if (this.controlData.Actions || this.controlData.LabelActions)\r\n google.visualization.events.addListener(this.chart, 'ready', this.chartReady);\r\n\r\n // must use a timeout to allow the controls to render on the page first so we can truly know if hidden or not\r\n this.$nextTick(() => {\r\n // the chart must not be drawn while hidden.\r\n // if the chart is drawn while hidden the legends will overlap and look terrible, known bug in google chart themselves\r\n if (this.isvisible && this.todisplay) {\r\n // get element height and width, use parent width for sizing on width\r\n options.width = (this.$el.parentElement.scrollWidth - 1); // no scrollbars!!!\r\n options.height = (this.$el.scrollHeight - 1);\r\n\r\n if (!this.height) {\r\n // gotta draw it so we can resize it\r\n this.chart.draw(this.dataTable, options);\r\n\r\n // this will allow us to \"shrink\" to the smallest size possible without scroll bars, to only be used if they do not explicitly set a height on timeline chart\r\n var paddingHeight = this.chartPadding;\r\n var testDiv = this.$el.querySelector('svg'); // find the google chart component svg\r\n if (testDiv) {\r\n var realHeight = testDiv.children[1].getBBox().height; // height of the chart rows\r\n // multiple lines have a seperate SVG for the bottom timeline, grab the correct timeline\r\n var svgCount = this.$el.querySelectorAll('svg').length;\r\n if (svgCount > 1) {\r\n realHeight = this.$el.querySelectorAll('svg')[1].getBBox().height;\r\n }\r\n\r\n\r\n var chartHeight = parseInt(realHeight) + parseInt(paddingHeight); // add in the custom padding or 55 offset if they did not supply it\r\n options.height = chartHeight;\r\n }\r\n //}\r\n //redraw with realheight\r\n //c.chart.draw(c.dataTable, options);\r\n }\r\n else if (options.height < parseInt(this.height)) {\r\n options.height = parseInt(this.height);\r\n }\r\n\r\n this.chart.draw(this.dataTable, options);\r\n }\r\n });\r\n },\r\n addDates(data) {\r\n var dateCols = [];\r\n for (var i = 0; i < data.cols.length; i++) {\r\n var col = data.cols[i];\r\n if (col.type == 'date') {\r\n dateCols.push(i);\r\n }\r\n }\r\n\r\n for (var row of data.rows) {\r\n for (var i of dateCols) {\r\n row.c[i].v = new Date(row.c[i].v);\r\n }\r\n }\r\n return data;\r\n },\r\n removeExtraColumns(data) {\r\n for (var row of data.rows) {\r\n var rowLength = row.c.length;\r\n row.c.splice(5, rowLength); // remove the id columns since they cannot be used in the timeline\r\n }\r\n return data;\r\n },\r\n chartReady() {\r\n if ((this.controlData.Actions && this.controlData.Actions.length > 0)) {\r\n // give elements a pointer\r\n this.hasActions = true;\r\n if (this.usefulHandlerListener)\r\n google.visualization.events.removeListener(this.usefulHandlerListener);\r\n this.usefulHandlerListener = google.visualization.events.addListener(this.chart, 'select', this.usefulHandler);\r\n }\r\n if ((this.controlData.LabelActions && this.controlData.LabelActions.length > 0)) {\r\n let counter = 0;\r\n var rowLabels = thid.$el.getElementsByTagName('text');\r\n Array.prototype.forEach.call(rowLabels, function (label) {\r\n if (label.getAttribute('text-anchor') === 'end') {\r\n c.labelArray[counter] = label.innerHTML;\r\n label.style = 'cursor: pointer';\r\n (function (acounter) {\r\n label.addEventListener('click', function (sender, acounter) {\r\n utils.executeAndCompileAllActions(this.controlData.LabelActions, { Data: sender.target.innerHTML }, this);\r\n }, false);\r\n })(counter)\r\n\r\n counter++;\r\n }\r\n });\r\n }\r\n },\r\n async usefulHandler(e) {\r\n var selectedRow = this.chart.getSelection()[0].row;\r\n var arrayInfo = this.source.rows[selectedRow].c;\r\n // var arrayInfo = this.formattedData.rows[selectedRow].c; // includes timelineid AND userid\r\n\r\n await utils.executeAndCompileAllActions(this.controlData.Actions, { Data: arrayInfo }, this);\r\n }\r\n },\r\n props: {\r\n },\r\n render(h) {\r\n try {\r\n if (!this.todisplay)\r\n return null;\r\n\r\n return (\r\n \r\n {!this.hasData ?\r\n
{this.Translate('- No data currently available -')}
:\r\n
\r\n }\r\n \r\n );\r\n }\r\n catch (e) {\r\n utils.error('Timeline Render failed', e);\r\n return
Timeline Failed to Render {e}
;\r\n }\r\n }\r\n});","import Vue from 'vue';\r\nimport BaseComponent from './BaseComponentMixin.jsx';\r\nimport EventBus from '../event-bus.js';\r\n\r\nimport utils from '../../Shared/utils.jsx';\r\nimport methods from '../../Shared/methods';\r\n\r\nVue.component('timeout', {\r\n mixins: [BaseComponent],\r\n data: function () {\r\n return {\r\n delay_expn: 0,\r\n actions: [],\r\n actions_compiled: false,\r\n }\r\n },\r\n computed: {\r\n },\r\n created() {\r\n this.delay_expn = utils.compileExpression(this, this.controlData.Delay);\r\n },\r\n //Mounted Replaced with preRenderComplete\r\n destroyed() {\r\n this.Stop();\r\n },\r\n methods: {\r\n preRenderComplete() {\r\n if (this.controlData.StartImmediately)\r\n this.Start();\r\n this.finishRenderHandler(this);\r\n },\r\n Start() {\r\n const delay = utils.evaluate(this.delay_expn, this);\r\n\r\n if (!this.timeout) {\r\n this.timeout = setTimeout(() => {\r\n this.invokeActions();\r\n this.timeout = null;\r\n }, delay);\r\n }\r\n },\r\n Stop() {\r\n if (this.timeout)\r\n clearTimeout(this.timeout);\r\n\r\n this.timeout = null;\r\n },\r\n async invokeActions() {\r\n if (this.controlData.Actions && !this.actions_compiled) {\r\n for (var i = 0; i < this.controlData.Actions.length; i++)\r\n try {\r\n const a = await utils.compileAction(this, this.controlData.Actions[i])\r\n if (a)\r\n this.actions.push(a);\r\n }\r\n catch (e) {\r\n utils.error(`BroadcastListener ${this.name} Actions[${i}] error compiling: ${e}`);\r\n }\r\n\r\n this.actions_compiled = true;\r\n }\r\n\r\n for (var i = 0; i < this.actions.length; i++)\r\n await utils.executeAction(this.actions[i], null, this);\r\n }\r\n },\r\n props: {\r\n },\r\n render(h) {\r\n return null;\r\n }\r\n});","import Vue from 'vue';\r\nimport { appSettings } from '@/Shared/appSettings.js';\r\nimport careService from '@/Services/careService';\r\nimport token from '@/Services/token';\r\nimport './css/TranslationContainer.css';\r\n\r\nimport utils from '../../Shared/utils.jsx';\r\nimport api from '@/Services/api';\r\nimport methods from '../../Shared/methods';\r\n\r\nVue.component('translation-container', {\r\n data: function () {\r\n return {\r\n valueEval: null,\r\n editing: false,\r\n expanded: this.autoOpenModal,\r\n editedString: this.value,\r\n originalValue: this.value,\r\n keyModel: null,\r\n textfailed: 1,\r\n }\r\n },\r\n props: {\r\n context: {\r\n type: Object, \r\n default: () => {}\r\n },\r\n value: {\r\n type: String, \r\n default: \"\"\r\n },\r\n isPossibleHtml: {\r\n type: Boolean,\r\n default: false\r\n },\r\n autoOpenModal: {\r\n type: Boolean,\r\n default: false\r\n }\r\n },\r\n computed: {\r\n textString() {\r\n try {\r\n if(this.valueEval === null && this.value)\r\n this.valueEval = utils.compile(this.context._self, this.context._self.Translate(this.value));\r\n\r\n if (this.valueEval) {\r\n const res = utils.evaluate(this.valueEval, this.context._self, false\r\n /* Only activate this if required, it could be a high cost if too many text fields have errors\r\n , () => {\r\n // This is a callback that will only be called if evaluate throws an exception.\r\n // If this happens, we read the textfailed (so Vue knows we care) and then\r\n // after 100ms, we update textfailed to cause Vue to re-evaluate textString.\r\n // (cap the retry at 10 times with increasing delay each attempt)\r\n if (this.textfailed >= 0 && this.textfailed < 10)\r\n setTimeout(() => this.textfailed++, 50 * this.textfailed);\r\n }\r\n */\r\n );\r\n this.$emit(\"grid-exported-text\", res);\r\n return res;\r\n }\r\n this.$emit(\"grid-exported-text\", '');\r\n return '';\r\n }\r\n catch (e) {\r\n utils.warn('TranslationContainer textString could not evaluate expression: ' + this.value + '; ' + e);\r\n return '';\r\n }\r\n }\r\n },\r\n watch: {\r\n value: function () {\r\n this.valueEval = null;\r\n }\r\n },\r\n methods: {\r\n async openEdit(e) {\r\n this.stopPropagation(e);\r\n\r\n if(!this.keyModel) {\r\n let res;\r\n try {\r\n res = await api.get(`Apps/Translation/TranslationKey?TranslationKeyID=${encodeURIComponent(this.value)}`);\r\n }\r\n catch(e){\r\n utils.warn('Failed to get translation key');\r\n }\r\n\r\n if(res?.data?.Result) {\r\n this.keyModel = res.data.Result;\r\n\r\n // If we have a locale for the user's currently selected locale, we want to show that in the input box. By default it shows the original \r\n // document text, but this will update it to be the translation for the current language.\r\n if(this.keyModel.locales.length) {\r\n let localeIndex = this.keyModel.locales.findIndex(locale => locale.locale === appSettings.LanguageKey);\r\n\r\n if(localeIndex >= 0) {\r\n this.editedString = this.keyModel.locales[localeIndex].translation;\r\n this.originalValue = this.keyModel.locales[localeIndex].translation;\r\n }\r\n }\r\n this.keyModel.saved = true;\r\n }\r\n else \r\n this.keyModel = { saved: false };\r\n }\r\n if(this.autoOpenModal)\r\n this.expanded = true;\r\n this.editing = true;\r\n },\r\n openExpanded(e) {\r\n this.stopPropagation(e);\r\n\r\n this.expanded = true;\r\n },\r\n closeExpanded(e) {\r\n this.stopPropagation(e);\r\n\r\n this.expanded = false;\r\n\r\n if(this.autoOpenModal)\r\n this.editing = false;\r\n },\r\n async saveTranslation(e) {\r\n this.stopPropagation(e);\r\n if(this.editedString === this.originalValue) {\r\n this.editing = false;\r\n return;\r\n }\r\n\r\n // This key is already saved. We only need to update it\r\n if(this.keyModel.saved) {\r\n let localeIndex = -1;\r\n\r\n // There are no locales\r\n if(!this.keyModel.locales || !Array.isArray(this.keyModel.locales) || !this.keyModel.locales.length)\r\n this.keyModel.locales = [\r\n {\r\n locale: appSettings.LanguageKey,\r\n translation: this.editedString\r\n }\r\n ];\r\n else {\r\n localeIndex = this.keyModel.locales.findIndex(locale => locale.locale === appSettings.LanguageKey);\r\n\r\n // The current locale is in the list of saved translations, so we just need to update it.\r\n if(localeIndex >= 0)\r\n this.keyModel.locales[localeIndex].translation = this.editedString;\r\n // The current locale does not exist, so we will add it to the array\r\n else\r\n this.keyModel.locales.push(\r\n {\r\n locale: appSettings.LanguageKey,\r\n translation: this.editedString\r\n }\r\n )\r\n }\r\n }\r\n // This key has not been saved, so we need to create a new model for it. \r\n else {\r\n this.keyModel = {\r\n key: this.value,\r\n description: \"\",\r\n customerID: token.CustomerID(),\r\n locales: [\r\n {\r\n locale: appSettings.LanguageKey,\r\n translation: this.editedString\r\n }\r\n ]\r\n }\r\n }\r\n\r\n try {\r\n api.post('Apps/Translation/TranslationKey', this.keyModel);\r\n if(!careService.globalTranslationList[this.keyModel.customerID || token.CustomerID()])\r\n careService.globalTranslationList[this.keyModel.customerID || token.CustomerID()] = {};\r\n careService.globalTranslationList[this.keyModel.customerID || token.CustomerID()][this.editedString] = this.editedString;\r\n this.keyModel = null;\r\n this.originalValue = this.editedString;\r\n this.valueEval = utils.compile(this.context._self, this.context._self.Translate(this.editedString));\r\n this.editing = false;\r\n }\r\n catch(e) {\r\n utils.warn('Failed to save translation key ' + this.value);\r\n }\r\n },\r\n async modalSave(e) {\r\n this.expanded = false;\r\n await this.saveTranslation(e);\r\n },\r\n stopPropagation(e) {\r\n e.stopPropagation();\r\n return;\r\n }\r\n },\r\n render(h) {\r\n if(!this.value)\r\n return null;\r\n\r\n let theContent = this.textString;\r\n\r\n if(this.isPossibleHtml && theContent.includes('<') && theContent.includes('>'))\r\n theContent =
;\r\n \r\n if(appSettings.DebugTranslationPrefixSetting && !this.context._self.isExpressionOnly(this.value)) {\r\n let content;\r\n\r\n if(this.editing)\r\n content = [\r\n \r\n mdi-check\r\n ,\r\n \r\n \r\n \r\n mdi-arrow-expand\r\n \r\n \r\n ,\r\n \r\n \r\n \r\n \r\n \r\n mdi-close\r\n \r\n \r\n \r\n
\r\n \r\n {this.value}\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n
\r\n \r\n ];\r\n else \r\n content = [\r\n \r\n mdi-pencil\r\n ,\r\n {theContent}\r\n ]\r\n\r\n return (\r\n
{content}
\r\n )\r\n }\r\n else {\r\n return (\r\n {theContent}\r\n )\r\n }\r\n }\r\n});","import Vue from 'vue';\r\nimport utils from '../../Shared/utils.jsx';\r\nimport BaseComponent from './BaseComponentMixin.jsx';\r\n\r\nVue.component('basic-watcher', {\r\n mixins: [BaseComponent],\r\n data: function () {\r\n return {\r\n oldstr: '',\r\n watchfunc: null,\r\n }\r\n },\r\n async created() {\r\n this.watchfunc = utils.compileExpression(this, this.controlData.WatchedField);\r\n //const f = new Function('context', 'with (context) return ' + this.controlData.WatchedField + ';');\r\n\r\n // Save serialized version so we can compare when the watch fires\r\n if (typeof tmp === 'object')\r\n this.oldstr = JSON.stringify(tmp);\r\n\r\n this.watcher$ = this.$watch(\r\n function () {\r\n try {\r\n //utils.log('Watcher watching ' + this.controlData.WatchedField);\r\n return this.watchedvalue;\r\n }\r\n catch (e) {\r\n utils.log('Watcher failed to evaluate expression ' + this.controlData.WatchedField + '; ' + e);\r\n return null;\r\n }\r\n },\r\n function (val) {\r\n utils.log('Watcher change detected on ' + this.controlData.WatchedField + ', executing actions');\r\n\r\n const valstr = typeof val === 'object' ? JSON.stringify(val) : val;\r\n\r\n //utils.debug('From: ' + this.oldstr);\r\n //utils.debug('To: ' + valstr);\r\n\r\n if (valstr != this.oldstr) {\r\n this.oldstr = valstr;\r\n this.doActions(val);\r\n }\r\n },\r\n {\r\n deep: this.controlData.DeepWatch\r\n }\r\n );\r\n },\r\n //Mounted Replaced with preRenderComplete\r\n destroyed() {\r\n this.watcher$();\r\n }, \r\n computed: {\r\n watchedvalue: function () {\r\n return utils.evaluate(this.watchfunc, this);\r\n },\r\n },\r\n methods: {\r\n preRenderComplete() {\r\n if (this.controlData.RunActionsInitially)\r\n this.doActions(this.watchedvalue);\r\n\r\n this.finishRenderHandler(this);\r\n },\r\n async doActions(newvalue) {\r\n await utils.executeAndCompileAllActions(this.controlData.Actions, { NewValue: newvalue }, this);\r\n },\r\n },\r\n props: {\r\n },\r\n render(h) {\r\n return null;\r\n }\r\n});","\r\nexport default {\r\n checkDevices: async function (currentMicrophoneId, currentSpeakerId) {\r\n const sourceInfos = await navigator.mediaDevices.enumerateDevices();\r\n\r\n let microphoneId = null;\r\n let speakerId = 'default';\r\n for (let i = 0; i !== sourceInfos.length; ++i) {\r\n const sourceInfo = sourceInfos[i];\r\n if (currentMicrophoneId == sourceInfo.deviceId) {\r\n microphoneId = currentMicrophoneId;\r\n }\r\n\r\n if (currentSpeakerId == sourceInfo.deviceId) {\r\n speakerId = currentSpeakerId;\r\n }\r\n\r\n if (microphoneId == currentMicrophoneId && speakerId == currentSpeakerId) {\r\n break;\r\n }\r\n }\r\n\r\n return { microphoneId, speakerId };\r\n }\r\n};","import utils from '@/Shared/utils.jsx';\r\nimport token from '@/Services/token';\r\n\r\nimport { appSettings } from '@/Shared/appSettings';\r\n\r\nimport * as SIP from '../../care-sip-0.15.10.min.js'; // Use min version for production\r\nexport default class careWebRtcPhone {\r\n myPublicIP;\r\n callOptions = {};\r\n stripIpsCallback = [(description) => { return this.stripHostIpsFromSdp(description, this.myPublicIP); } ];\r\n RTPStatsInterval;\r\n // Initialize the last packet received count to -1 to make sure that we don't renegotiate on the first check. We always\r\n // renegotiate if the difference between our received and last received is 0.\r\n lastPacketReceivedCount = -1;\r\n rtpReinviteInProgress = false;\r\n\r\n constructor(remoteMediaElement) {\r\n this.videoRemote = remoteMediaElement;\r\n\r\n this.sipjs = {\r\n webSocket: null, // also known as UserAgent\r\n connected: false,\r\n phoneCall: null\r\n };\r\n\r\n //this.wsconnect = wsconnect;\r\n //this.hangup = hangup;\r\n //this.wsdisconnect = wsdisconnect;\r\n //this.call = call;\r\n //this.switchStream = switchStream;\r\n //this.sendDtmf = sendDtmf;\r\n //this.muteMicrophone = muteMicrophone;\r\n }\r\n\r\n log(type, message, obj) {\r\n if (appSettings.careService && appSettings.careControlHelperService) {\r\n //let care = appSettings.careService;\r\n //let controlHelper = appSettings.careControlHelperService;\r\n let safeObj = \"\";\r\n\r\n // Removed serializing the object, it's rather bloated and wasn't helful\r\n // if (obj)\r\n // safeObj = \", \"+JSON.stringify(controlHelper.makeSafeCopy(obj, null));\r\n\r\n let logMsg = \"careWebRTC: [careWebRtcPhone] \" + message + safeObj;\r\n\r\n if (type == \"log\")\r\n utils.debug(logMsg);\r\n else if (type == \"info\")\r\n utils.log(logMsg);\r\n }\r\n else {\r\n if (type == \"log\")\r\n utils.debug(\"careWebRTC: [careWebRtcPhone] \" + message);\r\n else if (type == \"info\")\r\n utils.log(\"careWebRTC: [careWebRtcPhone] \" + message, obj);\r\n }\r\n }\r\n\r\n async getIceSettingsAndLatency(IceServerType, ownerid, userid) {\r\n var timer = Date.now();\r\n\r\n let iceSettings = await utils.api.get(`Apps/ICE/GetIceSettings?IceServerType=${encodeURIComponent(IceServerType)}&ownerid=${encodeURIComponent(ownerid)}&userid=${encodeURIComponent(userid)}`);\r\n\r\n var timerEnd = Date.now();\r\n return {\r\n iceSettings: iceSettings,\r\n latency: timerEnd - timer\r\n };\r\n }\r\n\r\n\r\n async wsconnect(params, iceOptions, phoneUniqueInstanceId) {\r\n // make sure user has permission to microphone before connecting\r\n try {\r\n var iceTimeoutStrategy = iceOptions.IceTimeoutStrategy || \"First Candidate\";\r\n var iceServerType = iceOptions.IceServerType || \"STUN, TURN & TLS\";\r\n\r\n var latencyResult = await this.getIceSettingsAndLatency(iceServerType, \"phoneUniqueInstanceId\", phoneUniqueInstanceId);\r\n this.myPublicIP = latencyResult.iceSettings.SourceIP;\r\n\r\n var iceCheckingTimeout = 0;\r\n var stopIceGatherOnFirstViableCandidate = false;\r\n switch (iceTimeoutStrategy)\r\n {\r\n case \"Gather Complete\":\r\n iceCheckingTimeout = 0; // wait for ice gather complete event\r\n break;\r\n\r\n case \"Latency Adjusted\":\r\n /* changed from default 5000 to baseTimeout + latency, mobile is extremely fast at this so separate mobilebaseTimeout */\r\n iceCheckingTimeout = latencyResult.iceSettings.BaseIceTimeoutDesktopMs + (latencyResult.latency * latencyResult.iceSettings.IceTimeoutLatencyMultiplier);\r\n console.debug(`webrtc: DesktopBaseTimeout: ${latencyResult.iceSettings.BaseIceTimeoutDesktopMs}, Latency: ${latencyResult.latency}, LatencyMultiplier: ${latencyResult.iceSettings.IceTimeoutLatencyMultiplier}, iceCheckingTimeout: ${iceCheckingTimeout}`);\r\n break;\r\n\r\n case \"First Candidate\":\r\n default:\r\n stopIceGatherOnFirstViableCandidate = true;\r\n iceCheckingTimeout = 10000; // was 5000 but see a handful of agents each day that reach timeout - increasing to see if that helps\r\n break;\r\n }\r\n\r\n await navigator.mediaDevices.getUserMedia({ audio: true });\r\n\r\n params.reconnectMaxAttempts = isNaN(params.reconnectMaxAttempts) ? -1 : parseInt(params.reconnectMaxAttempts);\r\n params.reconnectDelay = isNaN(params.reconnectDelay) ? 5 : parseInt(params.reconnectDelay) || 1;\r\n if (params.reconnectDelay > 60)\r\n params.reconnectDelay = Math.ceil(params.reconnectDelay / 1000);\r\n\r\n this.params = params;\r\n\r\n let options = {\r\n autostart: false, /* if this is true then we can't register the callbacks before it starts */\r\n uri: params.publicIdentity,\r\n //reliable: SIP.C.supported.SUPPORTED,\r\n rel100: SIP.C.supported.SUPPORTED,\r\n sessionDescriptionHandlerFactoryOptions: {\r\n peerConnectionOptions: {\r\n rtcConfiguration: {\r\n iceServers: latencyResult.iceSettings.IceServers,\r\n iceTransportPolicy: (iceServerType == \"TURN\" || iceServerType == \"TLS\") ? \"relay\" : \"all\"\r\n },\r\n iceCheckingTimeout: iceCheckingTimeout, \r\n stopIceGatherOnFirstViableCandidate: stopIceGatherOnFirstViableCandidate\r\n }\r\n },\r\n transportOptions: {\r\n wsServers: [params.wsUrl],\r\n maxReconnectionAttempts: params.reconnectMaxAttempts >= 0 ? params.reconnectMaxAttempts : 10,\r\n reconnectionTimeout: params.reconnectDelay,\r\n traceSip: true,\r\n connectionTimeout: 10 // 10 second websocket connectionTimeout (default is 5s)\r\n },\r\n authorizationUser: params.privateIdentity,\r\n password: params.password,\r\n register: false,\r\n noWebRTCWebSocket: params.noWebRTCWebSocket\r\n };\r\n\r\n this.sipjs.webSocket = new SIP.UA(options);\r\n\r\n const c = this;\r\n\r\n this.sipjs.webSocket.on('transportCreated', function (transport) {\r\n transport.on('connected', function (arg) {\r\n c.sipjs.connected = true;\r\n c.log('info', 'connected', arg);\r\n params.onWSConnected && params.onWSConnected();\r\n });\r\n\r\n transport.on('disconnected', function (arg) {\r\n c.log('log', c.sipjs.connected);\r\n\r\n // if the websocket is disconnected (e.g. kamailio failover), it will send a code 1006 and then reattempt to connect. \r\n // We need to ignore the disconnect event to give it a chance to reconnect. If the reconnect attempt fails\r\n // we will get another event with code 1000 - which will cause the real disconnect events to fire.\r\n if (arg.code == 1006)\r\n return;\r\n\r\n if (!this.sipjs.connected)\r\n params.onWSConnectionError && params.onWSConnectionError({ reason: \"Server unreachable\", source: arg });\r\n else\r\n params.onWSDisconnected && params.onWSDisconnected({ source: arg });\r\n\r\n c.sipjs.connected = false;\r\n c.log('info', 'disconnected', arg);\r\n });\r\n\r\n if (params.noWebRTCWebSocket) {\r\n transport.on('sendmessage', async function (arg) {\r\n var returnMessage = await utils.api.apiRequest(\"POST\", `Apps/Kamailio/SendWebRTCSipMessage`, arg);\r\n\r\n if (returnMessage.success)\r\n transport.ws.message(returnMessage.message);\r\n else {\r\n transport.ws.error(returnMessage.error);\r\n console.debug(\"noWebRTCWebSocket Error: \" + returnMessage.error);\r\n }\r\n });\r\n }\r\n });\r\n\r\n\r\n\r\n // this is for incoming calls (which we don't currently support), immediatly rejected\r\n this.sipjs.webSocket.on('invite', function (session) {\r\n c.log('info', 'invite', session);\r\n session.reject();\r\n });\r\n\r\n this.sipjs.webSocket.start();\r\n\r\n return true;\r\n }\r\n catch (err) {\r\n return false;\r\n }\r\n }\r\n\r\n wsdisconnect() {\r\n if (this.sipjs.phoneCall) {\r\n this.log('info', 'wsdisconnect() (has sipjs.phoneCall : true) calling sipjs.phoneCall.close()');\r\n\r\n this.sipjs.phoneCall.close();\r\n delete this.sipjs.phoneCall;\r\n }\r\n\r\n if (this.sipjs.webSocket) {\r\n this.log('info', 'wsdisconnect() (has sipjs.webSocket : true) calling sipjs.webSocket.stop()');\r\n\r\n this.sipjs.webSocket.stop();\r\n delete this.sipjs.webSocket;\r\n }\r\n }\r\n\r\n\r\n stripHostIpsFromSdp(description, myPublicIP) {\r\n const that = this;\r\n\r\n const myPromise = new Promise((resolve, reject) => {\r\n\r\n // this modifier is called for both the outgoing sdp as well an incoming. We only want to modify the outgoing (i.e. offer)\r\n if (description.type == \"offer\")\r\n {\r\n // This is invoked at least twice before the call is actually place. Once, when the sdp is first created and before any ice candidates have been discovered and \r\n // after ice canidate discovery is complete. We are only interested in modifying after the ice canidates are discovered. \r\n // if there are no canidates yet, then simply return\r\n if (description.sdp.indexOf(\"a=candidate\") == -1) {\r\n resolve(description);\r\n return;\r\n }\r\n\r\n // if the sdp has a local host entry matching the publicIP address returned by the call to GetIceSettings, then don't strip the entry\r\n // this means the client has an actual public IP assigned to their computer (very rare) and we don't want to strip that public IP from the local candidate list\r\n if (description.sdp.match(new RegExp(`candidate.*${myPublicIP.replaceAll(\".\", \"\\\\.\")}.*typ host`, 'g')))\r\n {\r\n console.debug(`IP ${myPublicIP} found, sending all candidates`);\r\n resolve(description);\r\n return;\r\n }\r\n\r\n\r\n /* this remove host IPs from candidate list, leaving only STUN discovered (i.e. remote) IPs (they have \"typ srflx\" instead of \"typ host\") */\r\n let newsdp = description.sdp.replace(/a=candidate.*typ host.*[\\r\\n]*/g, '');\r\n\r\n /* If there are no candidates left after triming, restore full list */\r\n if (newsdp.indexOf(\"a=candidate\") == -1)\r\n {\r\n resolve(description);\r\n }\r\n else\r\n {\r\n description.sdp = newsdp;\r\n resolve(description);\r\n }\r\n }\r\n else\r\n resolve(description);\r\n });\r\n\r\n return myPromise;\r\n }\r\n\r\n \r\n setupRemoteMedia(phoneCall) {\r\n // If there is a video track, it will attach the video and audio to the same element\r\n let pc = phoneCall.sessionDescriptionHandler.peerConnection;\r\n let remoteStream;\r\n if (pc.getReceivers) {\r\n remoteStream = new MediaStream();\r\n pc.getReceivers().forEach(function (receiver) {\r\n let track = receiver.track;\r\n if (track) {\r\n remoteStream.addTrack(track);\r\n }\r\n });\r\n }\r\n else {\r\n remoteStream = pc.getRemoteStreams()[0];\r\n }\r\n\r\n const c = this;\r\n\r\n this.videoRemote.srcObject = remoteStream;\r\n this.videoRemote.play().catch(function () {\r\n c.log('info', \"play was rejected\");\r\n });\r\n }\r\n\r\n //Destination should be a sip address like: sip:1234@realm.com\r\n async call(destination, in_call_id, extraHeaders, audioId, iceOptions) {\r\n // make sure user has permission to access to microphone\r\n const c = this;\r\n\r\n try {\r\n await navigator.mediaDevices.getUserMedia({ audio: true });\r\n\r\n let audio = true;\r\n if (audioId) {\r\n audio = {\r\n optional: [\r\n {\r\n sourceId: audioId\r\n }\r\n ]\r\n };\r\n }\r\n\r\n extraHeaders = extraHeaders || [];\r\n\r\n if (destination) {\r\n c.callOptions = {\r\n params: {\r\n callId: in_call_id\r\n },\r\n extraHeaders: extraHeaders,\r\n sessionDescriptionHandlerOptions: {\r\n constraints: {\r\n audio: audio,\r\n video: false\r\n }\r\n }\r\n };\r\n\r\n let phoneCall = this.sipjs.webSocket.invite(destination, c.callOptions, c.stripIpsCallback); // don't specify a strip function if sending all candidates\r\n\r\n phoneCall.on('progress', function (response) {\r\n c.log('info', 'progress', response);\r\n if (response instanceof SIP.IncomingResponse) {\r\n c.params.onConnecting && c.params.onConnecting();\r\n }\r\n });\r\n\r\n phoneCall.on('accepted', function (arg) {\r\n c.log('info', 'accepted', arg);\r\n\r\n c.setupRemoteMedia(phoneCall, audio);\r\n\r\n phoneCall.sessionDescriptionHandler.on(\"addTrack\", function () {\r\n c.log('info', \"A track has been added, triggering new remoteMedia setup\");\r\n setupRemoteMedia(audio);\r\n });\r\n\r\n phoneCall.sessionDescriptionHandler.on(\"addStream\", function () {\r\n // Deprecated.Note: This has been deprecated in the WebRTC api for the new addTrack event instead\r\n c.log('info', \"A stream has been added, trigger new remoteMedia setup\");\r\n setupRemoteMedia(audio);\r\n });\r\n\r\n phoneCall.sessionDescriptionHandler.on(\"iceConnectionConnected\", () => {\r\n c.log('info', \"webrtc:iceConnectionConnected\");\r\n c.startRTPStatsInterval();\r\n });\r\n\r\n phoneCall.sessionDescriptionHandler.on(\"iceConnectionDisconnected\", () => {\r\n c.log('info', \"webrtc:iceConnectionDisconnected\");\r\n \r\n // If the ice connection has disconnected, we'll try to force a reinvite.\r\n c.restartIceAndReinvite(\"iceConnectionDisconnected\");\r\n \r\n // At this point there's no sense continuing to poll the RTP stats anymore. We'll stop doing that\r\n // until the ice connection is reconnected.\r\n c.stopRTPStatsInterval();\r\n });\r\n\r\n c.params.onAccepted && c.params.onAccepted();\r\n });\r\n\r\n phoneCall.on('rejected', function (arg) {\r\n c.stopRTPStatsInterval();\r\n c.log('info', 'rejected', arg);\r\n let param = {\r\n \"code\": arg ? arg.status_code : null,\r\n \"message\": arg ? arg.reason_phrase : null,\r\n \"source\": arg\r\n };\r\n\r\n c.params.onCancel && c.params.onCancel(param);\r\n });\r\n\r\n phoneCall.on('failed', function (reason, cause) {\r\n c.log('info', 'failed', reason);\r\n\r\n c.stopRTPStatsInterval();\r\n\r\n if (cause == SIP.C.causes.WEBRTC_ERROR && reason && reason.careError) {\r\n // Media aquisition error\r\n let param = {\r\n \"code\": \"\",\r\n \"message\": \"Cannot access microphone, may be blocked in browser settings\", // reason.error.name,\r\n \"source\": reason\r\n };\r\n\r\n c.params.onCancel && c.params.onCancel(param);\r\n }\r\n });\r\n\r\n phoneCall.on('terminated', function (arg) {\r\n c.log('info', 'terminated', arg);\r\n c.stopRTPStatsInterval();\r\n });\r\n\r\n phoneCall.on('cancel', function (arg) {\r\n c.log('info', 'cancel', arg);\r\n delete c.sipjs.phoneCall;\r\n\r\n c.params.onCancel && c.params.onCancel();\r\n });\r\n\r\n phoneCall.on('reinvite', function (arg) {\r\n c.log('info', 'reinvite', arg);\r\n });\r\n\r\n phoneCall.on('referRequested', function (arg) {\r\n c.log('info', 'referRequested', arg);\r\n });\r\n\r\n phoneCall.on('replaced', function (arg) {\r\n c.log('info', 'replaced', arg);\r\n });\r\n\r\n phoneCall.on('dtmf', function (arg) {\r\n c.log('info', 'dtmf', arg);\r\n });\r\n\r\n phoneCall.on('directionChanged', function (arg) {\r\n c.log('info', 'directionChanged', arg);\r\n });\r\n\r\n phoneCall.on('bye', function (arg) {\r\n c.stopRTPStatsInterval();\r\n c.log('info', 'bye', arg);\r\n delete c.sipjs.phoneCall;\r\n c.params.onHangup && c.params.onHangup();\r\n });\r\n\r\n c.sipjs.phoneCall = phoneCall;\r\n window.WebRTC = c;\r\n }\r\n return true;\r\n }\r\n catch (err) {\r\n return false;\r\n }\r\n }\r\n\r\n startRTPStatsInterval() {\r\n this.stopRTPStatsInterval();\r\n\r\n this.RTPStatsInterval = setInterval(() => {\r\n return this.checkRTPStats();\r\n }, 1000);\r\n }\r\n\r\n stopRTPStatsInterval() {\r\n if(this.RTPStatsInterval)\r\n clearInterval(this.RTPStatsInterval);\r\n // Initialize the last packet received count to -1 to make sure that we don't renegotiate on the first check. We always\r\n // renegotiate if the difference between our received and last received is 0.\r\n this.lastPacketReceivedCount = -1;\r\n this.rtpReinviteInProgress = false;\r\n }\r\n\r\n async checkRTPStats() {\r\n let stats = await this.sipjs.phoneCall.sessionDescriptionHandler.peerConnection.getStats();\r\n stats.forEach(report => {\r\n if (report.type === 'inbound-rtp' && report.kind === 'audio') {\r\n let packetsReceived = report.packetsReceived;\r\n\r\n // If we've never received packets, we won't consider a reinvite.\r\n if(packetsReceived <= 0) {\r\n this.log('info', \"webrtc: RTP Stats timer fired. No packets received yet.\");\r\n return;\r\n }\r\n\r\n let packetDelta = packetsReceived - this.lastPacketReceivedCount;\r\n this.lastPacketReceivedCount = packetsReceived;\r\n\r\n // If we haven't received packets since our last report, we know there is some kind of problem. We'll restart our ICE session and send a reinvite.\r\n\r\n // IMPORTANT: We don't stop the RTPStatsInterval here because we don't actually get an iceConnectionConnected event when we do a renivite before the \r\n // ICE connection state has disconnected. This interval should notice a disconnect after one second, and the ice connection state only changes after\r\n // 5 seconds of problems. Instead we use the rtpReinviteInProgress flag to prevent us from calling this multiple times.\r\n if(packetDelta === 0 && !this.rtpReinviteInProgress) {\r\n // We'll track when we're trying a restart based on missed packets. If we continue to miss packets, we won't retry this again until\r\n // we start receiving packets.\r\n this.rtpReinviteInProgress = true;\r\n this.log('info', \"webrtc: 0 packets received. Triggering reinvite\");\r\n this.restartIceAndReinvite(\"MissedPackets\");\r\n }\r\n // If the packet delta is not zero (we've started getting audio packets again) and we have a reinvite in progress, that means it worked and we should start tracking again.\r\n else if(packetDelta !== 0 && this.rtpReinviteInProgress){\r\n this.log('info', \"webrtc: Packets received. Restarting RTP stats timer\");\r\n this.rtpReinviteInProgress = false;\r\n }\r\n }\r\n });\r\n }\r\n\r\n async restartIceAndReinvite(reason) {\r\n try {\r\n this.log('info', \"webrtc: Restarting ICE and sending re-INVITE.\");\r\n\r\n if (!this.sipjs.phoneCall) {\r\n console.error(\"webrtc: Cannot reinvite: Call is not active.\");\r\n return;\r\n }\r\n\r\n const peerConnection = this.sipjs.phoneCall.sessionDescriptionHandler.peerConnection;\r\n\r\n // Create a new offer with iceRestart to gather new ICE candidates\r\n const offerOptions = { iceRestart: true };\r\n const newOffer = await peerConnection.createOffer(offerOptions);\r\n\r\n // Set local description to start the ICE gathering process\r\n await peerConnection.setLocalDescription(newOffer);\r\n this.log('info', \"webrtc: Local description set. Waiting for ICE candidates...\");\r\n\r\n // Ensure all ICE candidates are gathered before proceeding\r\n await this.waitForIceGatheringComplete(peerConnection);\r\n\r\n this.callOptions.extraHeaders.push(`X-WS-ICE-RESTART: ${reason}`);\r\n\r\n this.log('info', \"webrtc: Ice candidate gathering complete. Sending re-INVITE.\");\r\n\r\n // Send re-INVITE with the new SDP\r\n this.sipjs.phoneCall.reinvite(this.callOptions, this.stripIpsCallback);\r\n\r\n this.log('info', \"webrtc: Re-INVITE with ICE restart sent.\");\r\n } catch (error) {\r\n console.error(\"webrtc: Error during ICE restart and re-INVITE:\", error);\r\n }\r\n }\r\n\r\n // Helper to wait for ICE gathering to complete\r\n waitForIceGatheringComplete(peerConnection) {\r\n return new Promise((resolve) => {\r\n if (peerConnection.iceGatheringState === \"complete\") {\r\n resolve(); // Already complete\r\n } else {\r\n const checkState = () => {\r\n if (peerConnection.iceGatheringState === \"complete\") {\r\n peerConnection.removeEventListener(\"icegatheringstatechange\", checkState);\r\n console.debug(\"webrtc: ICE gathering completed.\");\r\n resolve();\r\n }\r\n };\r\n peerConnection.addEventListener(\"icegatheringstatechange\", checkState);\r\n }\r\n });\r\n }\r\n\r\n hangup(abortWithPrejudice) // abortWithPrejudice = true when a failover occurs and we need to terminate the current call (which won't exist on the new Freeswitch so there is no need to send a BYE) so we can start a new call\r\n {\r\n this.log('info', `hangup(abortWithPrejudice:${abortWithPrejudice}) has call: ${this.sipjs.phoneCall ? 'true' : 'false'}`, abortWithPrejudice);\r\n\r\n if (!this.sipjs.phoneCall)\r\n return;\r\n\r\n if (this.sipjs.phoneCall.session && !abortWithPrejudice) {\r\n this.log('info', `sipjs.phoneCall.bye()`);\r\n\r\n // the phoneCall.on(\"bye\") should be invoked which will delete the phoneCall and call the hangup events\r\n this.sipjs.phoneCall.bye();\r\n }\r\n else {\r\n this.log('info', `sipjs.phoneCall.close()`);\r\n\r\n this.sipjs.phoneCall.close();\r\n delete this.sipjs.phoneCall;\r\n this.params.onHangup && this.params.onHangup();\r\n }\r\n }\r\n\r\n sipMessageReceived(message)\r\n {\r\n this.sipjs.webSocket.transport.ws.message(message.SipMessage);\r\n }\r\n\r\n switchStream(constraints) {\r\n let phoneCall = this.sipjs.phoneCall;\r\n // Directly call the release method on the mediaStreamManager to\r\n // clean up the stream(s).\r\n phoneCall.mediaHandler.mediaStreamManager.release(\r\n phoneCall.mediaHandler.localMedia\r\n );\r\n\r\n // Remove localMedia to circumvent localMedia already being set.\r\n phoneCall.mediaHandler.localMedia = null;\r\n\r\n // Create the new stream via the mediaHandler.\r\n phoneCall.mediaHandler.getDescription(constraints);\r\n }\r\n\r\n //dtmf should be a character included in this list: '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '#', '*'.\r\n sendDtmf(digit) {\r\n let acceptedDTMF = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '#', '*'];\r\n\r\n if (acceptedDTMF.indexOf(digit) >= 0)\r\n this.sipjs.phoneCall.dtmf(digit);\r\n else\r\n this.log('log', 'dtmf not supported');\r\n }\r\n\r\n /*\r\n function muteMicrophone(mute, success, error)\r\n {\r\n if (this.sipjs.hasOwnProperty('phoneCall'))\r\n {\r\n if (mute)\r\n this.sipjs.phoneCall.mute();\r\n else\r\n this.sipjs.phoneCall.unmute();\r\n\r\n success && success();\r\n }\r\n else\r\n {\r\n error && error();\r\n }\r\n };\r\n */\r\n}\r\n","import Vue from 'vue';\r\nimport utils from '../../Shared/utils.jsx';\r\nimport BaseComponent from './BaseComponentMixin.jsx';\r\nimport { appSettings } from '@/Shared/appSettings';\r\nimport browserHelpers from '@/Shared/browserHelpers';\r\nimport token from '@/Services/token.jsx';\r\nimport careWebRtcPhone from './javascript/webrtc/v1.0/care-webrtc';\r\nimport EventBus from '../event-bus.js';\r\n\r\nVue.component('web-rtc-phone', {\r\n mixins: [BaseComponent],\r\n data: function () {\r\n return {\r\n phoneUniqueInstanceId: null,\r\n unsupportedBrowser: false,\r\n httpsRequired: false,\r\n webRtcPhone: null,\r\n loaded: false,\r\n speakerId: null,\r\n microphoneId: null,\r\n\r\n state: 'init',\r\n }\r\n },\r\n created() {\r\n //this.callcorpVideoRemote = document.getElementById('callcorpVideoRemote');\r\n //this.localVideo = document.getElementById(\"localVideo\");\r\n //this.remoteVideo = document.getElementById(\"remoteVideo\"); // not used I think\r\n\r\n this.phoneUniqueInstanceId = appSettings.InstanceGuid;\r\n },\r\n destroyed() {\r\n EventBus.$off('Action-WebRTCConnectWebSocket', this.performWebRTCConnectWebSocket);\r\n this.$off('Action-WebRTCConnectWebSocket', this.performWebRTCConnectWebSocket);\r\n\r\n if (this.name) {\r\n EventBus.$off(`Action-WebRTCConnectWebSocket:${this.name}`, this.performWebRTCConnectWebSocket);\r\n this.$off(`Action-WebRTCConnectWebSocket:${this.name}`, this.performWebRTCConnectWebSocket);\r\n }\r\n },\r\n //Mounted Replaced with preRenderComplete\r\n computed: {\r\n // Public properties //\r\n SpeakerId: {\r\n get: function () {\r\n if (this.speakerId)\r\n return this.speakerId;\r\n \r\n if (!this.speakerIdexpn && this.controlData.SpeakerIdField)\r\n this.speakerIdexpn = utils.compile(this, this.controlData.SpeakerIdField);\r\n \r\n return this.speakerIdexpn ? utils.evaluate(this.speakerIdexpn, this) : ''; \r\n },\r\n set: function (value) {\r\n if (this.speakerId !== value) {\r\n this.speakerId = value;\r\n const remoteMediaElement = this.$refs.callcorpVideoRemote;\r\n\r\n if (remoteMediaElement.setSinkId) {\r\n remoteMediaElement.setSinkId(value).then(\r\n function () { },\r\n function () {\r\n remoteMediaElement.setSinkId('default');\r\n }\r\n );\r\n }\r\n }\r\n }\r\n },\r\n MicrophoneId: {\r\n get: function () {\r\n if (this.microphoneId)\r\n return this.microphoneId;\r\n \r\n if (!this.microphoneIdexpn && this.controlData.MicrophoneIdField)\r\n this.microphoneIdexpn = utils.compile(this, this.controlData.MicrophoneIdField);\r\n\r\n return this.microphoneIdexpn ? utils.evaluate(this.microphoneIdexpn, this) : '';\r\n },\r\n set: function (value) {\r\n if (this.microphoneId !== value) {\r\n this.microphoneId = value;\r\n if (this.webRtcPhone && this.webRtcPhone.sipjs.phoneCall && this.webRtcPhone.sipjs.phoneCall.mediaHandler) {\r\n let audio = true;\r\n if (this.microphoneId) {\r\n audio = { deviceId: this.microphoneId };\r\n }\r\n\r\n this.webRtcPhone.switchStream({\r\n constraints: {\r\n audio: audio,\r\n video: false\r\n }\r\n });\r\n }\r\n }\r\n }\r\n },\r\n Streams: function () {\r\n return this.getStreams();\r\n }\r\n // ----------------- //\r\n },\r\n methods: {\r\n iceOptionsExpression: function () {\r\n // internal interpolated property\r\n\r\n if (!this.iceOptionsExpressionexpn && this.controlData.ICEOptionsExpression)\r\n this.iceOptionsExpressionexpn = utils.compileExpression(this, this.controlData.ICEOptionsExpression);\r\n\r\n return this.iceOptionsExpressionexpn ? utils.evaluate(this.iceOptionsExpressionexpn, this) : '';\r\n },\r\n\r\n preRenderComplete() {\r\n this.init();\r\n\r\n this.finishRenderHandler(this);\r\n },\r\n\r\n // Public methods //\r\n DisconnectWebSocket() {\r\n utils.debug(`careWebRTC: WebRtcPhone.DisconnectWebSocket()`);\r\n this.disconnectWebSocket();\r\n },\r\n Call(callId, recoveryApp, targetSessionId) {\r\n utils.debug(`careWebRTC: WebRtcPhone.Call(callId:${callId}, ${targetSessionId})`);\r\n this.call(callId, recoveryApp, targetSessionId);\r\n },\r\n Abort() {\r\n utils.debug(`careWebRTC: WebRtcPhone.Abort()`);\r\n this.hangup(true);\r\n },\r\n SipMessageReceived(sipMessage) {\r\n utils.debug(`careWebRTC: WebRtcPhone.SipMessageReceived()`);\r\n this.sipMessageReceived(sipMessage);\r\n },\r\n Hangup() {\r\n utils.debug(`careWebRTC: WebRtcPhone.Hangup()`);\r\n this.hangup(false);\r\n },\r\n SendDtmf(digit) {\r\n utils.debug(`careWebRTC: WebRtcPhone.SendDtmf(digit:${digit})`);\r\n this.sendDtmf(digit);\r\n },\r\n // ------------- //\r\n\r\n init() {\r\n if (window.location.protocol != \"https:\") {\r\n this.httpsRequired = true;\r\n }\r\n else if (window.mozRTCPeerConnection || navigator.webkitGetUserMedia || navigator.getUserMedia || navigator.mozGetUserMedia || (navigator.mediaDevices && navigator.mediaDevices.getUserMedia)) {\r\n //const remoteMediaElement = $element.find('#callcorpVideoRemote')[0];\r\n\r\n this.webRtcPhone = new careWebRtcPhone(this.$refs.callcorpVideoRemote);\r\n this.loaded = true;\r\n }\r\n else {\r\n this.unsupportedBrowser = true;\r\n }\r\n\r\n EventBus.$on('Action-WebRTCConnectWebSocket', this.performWebRTCConnectWebSocket);\r\n this.$on('Action-WebRTCConnectWebSocket', this.performWebRTCConnectWebSocket);\r\n //care.subscribe(careActionType.WEBRTC_CONNECT_WEBSOCKET, connectWebSocketHandler, $scope); // note that the scope for this subscribe is \"$scope\"\r\n\r\n if (this.name) {\r\n EventBus.$on(`Action-WebRTCConnectWebSocket:${this.name}`, this.performWebRTCConnectWebSocket);\r\n this.$on(`Action-WebRTCConnectWebSocket:${this.name}`, this.performWebRTCConnectWebSocket);\r\n }\r\n //care.subscribeByName(careActionType.WEBRTC_CONNECT_WEBSOCKET, c.controlData.Name, connectWebSocketHandler, $scope); // note that the scope for this subscribe is \"$scope\"\r\n\r\n //care.finishRender(c.$controlModel, c.finishedRenderCallback); // DynamicControls should invoke when done rendering (can be invoked multiple times if control is re-rendered)\r\n\r\n this.state = 'idle';\r\n },\r\n\r\n async localWSConnectionError(error) {\r\n this.onWSConnectionError(error);\r\n //actionInfo.Finished(careActionCompletionStatus.FAIL, { Message: error.reason });\r\n\r\n await utils.failure(this.action, { Message: error.reason });\r\n await utils.complete(this.action);\r\n\r\n // Complete the promise for the executeAction method\r\n this.action.FinishFunc(true);\r\n\r\n this.state = 'failed';\r\n },\r\n async localWSConnected() {\r\n this.onWSConnected();\r\n //actionInfo.Finished(careActionCompletionStatus.SUCCESS);\r\n\r\n await utils.success(this.action);\r\n await utils.complete(this.action);\r\n\r\n // Complete the promise for the executeAction method\r\n this.action.FinishFunc(true);\r\n\r\n this.state = 'connected';\r\n },\r\n async localMicMissingError(result) {\r\n if (!result) {\r\n this.micMissingError(result);\r\n //actionInfo.Finished(careActionCompletionStatus.FAIL);\r\n\r\n await utils.failure(this.action);\r\n await utils.complete(this.action);\r\n\r\n // Complete the promise for the executeAction method\r\n this.action.FinishFunc(true);\r\n\r\n this.state = 'failed';\r\n }\r\n },\r\n async performWebRTCConnectWebSocket(action) {\r\n utils.log(`WebRtcPhone WebRTCConnectWebSocket`);\r\n\r\n this.state = 'connecting';\r\n\r\n if (action.ActionData && action.ActionData.Debug && action.ActionData.Debug.BreakPoint) debugger;\r\n\r\n try {\r\n // Save for use in callbacks\r\n this.action = action;\r\n\r\n if (this.httpsRequired) {\r\n const reason = \"Https Required\";\r\n utils.error('careWebRTC: ' + reason);\r\n this.localWSConnectionError({ reason: reason });\r\n }\r\n else if (this.unsupportedBrowser) {\r\n const reason = \"Unsupported browser\";\r\n utils.error('careWebRTC: ' + reason);\r\n this.localWSConnectionError({ reason: reason });\r\n }\r\n else if (!this.loaded) {\r\n const reason = \"WebRTC Phone not loaded\";\r\n utils.error('careWebRTC: ' + reason);\r\n this.localWSConnectionError({ reason: reason });\r\n }\r\n else {\r\n var noWebRTCWebSocket = appSettings.DisableWebRTCWebSockets || !appSettings.TransportSettings.Client.WebRTCWebSockets;\r\n\r\n const webRtcPhoneParams = {\r\n wsUrl: 'wss://' + token.BandID() + appSettings.WhiteLabel.WssSuffix + '/' + encodeURIComponent(this.phoneUniqueInstanceId),\r\n onWSConnected: this.localWSConnected, // WebSocket established\r\n onAccepted: this.onAccepted, // OB Call Answered\r\n onHangup: this.onHangup, // SIP Bye Message received (server initiated hangup)\r\n onCancel: this.onCancel, // Call rejected\r\n onConnecting: this.onConnecting, // Sip progress message\r\n onWSDisconnected: this.onWSDisconnected,\r\n onWSConnectionError: this.localWSConnectionError,\r\n reconnectMaxAttempts: 6, // Unlimited autoreconnect attempts\r\n reconnectDelay: 4000, // New autoreconnect attempt every 4 seconds\r\n noWebRTCWebSocket: noWebRTCWebSocket\r\n };\r\n\r\n if (noWebRTCWebSocket) {\r\n webRtcPhoneParams.publicIdentity = `sip:websocket_${this.phoneUniqueInstanceId}@replace.me;transport=tls`; // the publicIdentity \"websocket_\" identifies this unique user agent (phone)\r\n webRtcPhoneParams.wsUrl += \"/NOWEBSOCKET\";\r\n }\r\n else {\r\n webRtcPhoneParams.publicIdentity = `sip:websocket_${this.phoneUniqueInstanceId}@callcorp.webrtc;transport=ws`; // the publicIdentity \"websocket_\" identifies this unique user agent (phone)\r\n }\r\n\r\n utils.log(\"careWebRTC: WebRTC Connecting...\");\r\n const result = await this.webRtcPhone.wsconnect(webRtcPhoneParams, this.iceOptionsExpression(), this.phoneUniqueInstanceId);\r\n this.localMicMissingError(result);\r\n }\r\n }\r\n catch (e) {\r\n utils.warn(`careWebRTC: WebRtcPhone ${this.name} failed WebRTCConnectWebSocket`, e);\r\n\r\n try {\r\n await utils.failure(action);\r\n\r\n // Complete the promise for the executeAction method\r\n action.FinishFunc(true);\r\n\r\n this.state = 'failed';\r\n } catch (e) { }\r\n }\r\n },\r\n\r\n // the callId must be a guid and should have been retrieved from server using api /Apps/Data/NewGuid.\r\n async call(callId, recoveryApp, targetSessionId) {\r\n utils.log(\"WebRTC call(callId:\" + callId + \", recoveryApp: \" + recoveryApp + \") in progress...\");\r\n\r\n this.state = 'calling';\r\n\r\n callId = callId || utils.generateUUID();\r\n\r\n const { microphoneId, speakerId } = await browserHelpers.checkDevices(this.MicrophoneId, this.SpeakerId);\r\n\r\n this.makeCall(callId, microphoneId, speakerId, recoveryApp, this.iceOptionsExpression(), targetSessionId);\r\n },\r\n\r\n makeCall(callId, microphoneId, speakerId, recoveryApp, iceOptions, targetSessionId) {\r\n utils.log(\"careWebRTC: WebRTC makeCall(callId:\" + callId + \",microphoneId:\" + microphoneId + \",speakerId:\" + speakerId + \") in progress...\");\r\n\r\n const remoteMediaElement = this.$refs.callcorpVideoRemote;\r\n\r\n if (!remoteMediaElement) {\r\n utils.log(\"careWebRTC: WebRTC makeCall failed to locate callcorpVideoRemote element - null returned\");\r\n return;\r\n }\r\n\r\n const c = this;\r\n\r\n const doMakeCall = async function () {\r\n const extraHeaders = [\r\n \"X-OwnerID: \" + token.CustomerID(),\r\n \"X-UserID: \" + token.UserID()\r\n ];\r\n\r\n // if WebRTC leg is being recovered because of a Freeswitch failover, then add a header to associate the new call with the original call we are replacing/recovering\r\n if (recoveryApp) {\r\n extraHeaders.push(\"X-RecoveryApp: \" + recoveryApp);\r\n }\r\n if (targetSessionId)\r\n extraHeaders.push(`X-TargetSessionId: ${targetSessionId}`);\r\n\r\n // the phone number we dial (session_) is used by kamailio to determine the proper freeswitch to route the call to\r\n // the headers X-OwnerID & X-UserID are the equivilent of the CustomerSecurityContextID, and are used by freeswitch to associate call to customer and user\r\n const result = await c.webRtcPhone.call(\r\n \"sip:session_\" + token.CustomerSecurityContextID() + \"@callcorp.webrtc\", // phone number we are dialing\r\n callId, /* pass in the call-id (guid) generated by server api */\r\n extraHeaders, // extra headers to pass in sip invite [\"X-ExampleHeader: 1\"]\r\n microphoneId,\r\n iceOptions\r\n );\r\n\r\n c.micMissingError(result);\r\n };\r\n\r\n if (remoteMediaElement.setSinkId) {\r\n remoteMediaElement.setSinkId(speakerId)\r\n .then(\r\n function () {\r\n utils.log(\"careWebRTC: WebRTC makeCall.setSinkId(speakerId:\" + speakerId + \") about to invoke c.webRtcPhone.call(...)\");\r\n doMakeCall();\r\n }\r\n )\r\n .catch(function (error) {\r\n utils.log(\"WebRTC makeCall.setSinkId(speakerId:\" + speakerId + \") failed with \" + error);\r\n });\r\n }\r\n else {\r\n doMakeCall();\r\n }\r\n },\r\n getStreams() {\r\n const streams = {\r\n Remote: this.webRtcPhone.sipjs.phoneCall.getRemoteStreams()[0],\r\n Local: this.webRtcPhone.sipjs.phoneCall.getLocalStreams()[0]\r\n };\r\n return streams;\r\n },\r\n hangup(abortWithPrejudice) {\r\n utils.log(\"careWebRTC: Starting Hangup\" + (abortWithPrejudice ? \" (aborting call)\" : \"\"));\r\n this.webRtcPhone.hangup(abortWithPrejudice);\r\n },\r\n sipMessageReceived(sipMessage) {\r\n utils.log(\"careWebRTC: sipMessageReceived\");\r\n this.webRtcPhone.sipMessageReceived(sipMessage);\r\n },\r\n sendDtmf(digit) {\r\n this.webRtcPhone.sendDtmf(digit);\r\n },\r\n disconnectWebSocket() {\r\n if (this.webRtcPhone)\r\n this.webRtcPhone.wsdisconnect();\r\n },\r\n onConnecting() {\r\n utils.log(\"careWebRTC: WebRTC Connecting...\");\r\n this.runActions(this.controlData.OnCallConnecting);\r\n },\r\n onHangup() {\r\n utils.log(\"careWebRTC: Hangup\");\r\n this.runActions(this.controlData.OnHangup);\r\n },\r\n onCancel(status) {\r\n let message = 'Your call has been canceled';\r\n\r\n if (status && status.message)\r\n message += ': ' + status.message;\r\n\r\n if (status && status.code)\r\n message += ' (' + status.code + ')';\r\n\r\n utils.log(\"careWebRTC: WebRTC Cancel: \" + message);\r\n this.runActions(this.controlData.OnCallRejected, { Message: message });\r\n },\r\n // OB phone call answered\r\n onAccepted() {\r\n utils.log(\"careWebRTC: WebRTC Accepted\");\r\n this.state = 'accepted';\r\n this.runActions(this.controlData.OnCallAnswered);\r\n },\r\n onWSConnected() {\r\n utils.log(\"careWebRTC: WebRTC WebSocket connected\");\r\n this.state = 'connected';\r\n this.runActions(this.controlData.OnWebSocketConnected);\r\n },\r\n onWSDisconnected() {\r\n utils.log(\"careWebRTC: WebRTC WebSocket Disconnected\");\r\n this.state = 'disconnected';\r\n this.runActions(this.controlData.OnWebSocketDisconnected); // You have been disconnected\r\n },\r\n onWSConnectionError(error) {\r\n utils.log(\"careWebRTC: WebRTC WebSocket Connection Error: \" + error.reason);\r\n this.state = 'error';\r\n this.runActions(this.controlData.OnWebSocketConnectionError, { Message: error.reason }); // Could not reach the server\r\n this.disconnectWebSocket(); // stop retrying\r\n },\r\n runActions(actions, input) {\r\n // causes a digest like $apply(),only it won't get an error if it is already in a digest cycle. Because this could be invoked from within or outside a digest, we do the safe method\r\n utils.log(\"careWebRTC: start webRTCPhoneActions.runActions \");\r\n utils.executeAndCompileAllActions(actions, input, this);\r\n },\r\n micMissingError(result) {\r\n if (!result) {\r\n const error = {\r\n name: 'missing_mic',\r\n reason: 'Please verify that our site has permission to access your microphone.'\r\n };\r\n this.state = 'missing_mic';\r\n this.onWSConnectionError(error);\r\n }\r\n },\r\n },\r\n props: {\r\n },\r\n render(h) {\r\n let media = ;\r\n\r\n if (this.isdebug)\r\n return (\r\n
\r\n mdi-monitor-cellphone\r\n {media} {this.state}\r\n
\r\n );\r\n\r\n return media;\r\n }\r\n});","import Vue from 'vue';\r\nimport BaseComponent from './BaseComponentMixin.jsx';\r\nimport EventBus from '../event-bus.js';\r\nimport cloneDeep from 'lodash.clonedeep';\r\n\r\nimport utils from '../../Shared/utils.jsx';\r\nimport methods from '../../Shared/methods';\r\n\r\nVue.component('wizard-step', {\r\n props: {\r\n step: {},\r\n context: null\r\n },\r\n data() {\r\n return {\r\n show: false,\r\n }\r\n },\r\n async mounted() {\r\n try {\r\n await utils.executeAndCompileAllActions(this.step.PrerenderActions, null, this.context);\r\n } catch (e) {\r\n utils.error(e);\r\n }\r\n this.show = true;\r\n },\r\n render(h) {\r\n if (!this.show)\r\n return null;\r\n let controls = null;\r\n let footerControls = null;\r\n\r\n if (this.step.Controls && this.step.Controls.length)\r\n controls = utils.generateItemsFromArray(h, this.context, this.step.Controls, null, 'VerticalLayout', null);\r\n if (this.step.FooterControls && this.step.FooterControls.length)\r\n footerControls = utils.generateItemsFromArray(h, this.context, this.step.FooterControls, null, 'HorizontalLayout', null);\r\n\r\n return (\r\n
\r\n \r\n {controls}\r\n \r\n \r\n {footerControls}\r\n \r\n
\r\n );\r\n }\r\n});\r\n\r\nVue.component('cc-wizard', {\r\n mixins: [BaseComponent],\r\n data: function () {\r\n return {\r\n initialStepEval: null,\r\n currentStep: null,\r\n showBreadCrumbEval: null,\r\n colorEval: null,\r\n breadCrumbs: [],\r\n localSteps: [],\r\n\r\n currentStepIndex: 0,\r\n }\r\n },\r\n //Mounted Replaced with preRenderComplete\r\n computed: {\r\n /**\r\n * Begin public computed\r\n */\r\n CurrentStepName() {\r\n if(this.currentStep)\r\n return this.currentStep.Name;\r\n return ''\r\n },\r\n CurrentStep() {\r\n return this.currentStep;\r\n },\r\n /**\r\n * End public computed\r\n */\r\n styles() {\r\n return {\r\n ...utils.resolveStyleHints(this.styleHints, this),\r\n ...this.sizeStyle\r\n };\r\n },\r\n title() {\r\n try {\r\n if(!this.titleEval && this.controlData.Title)\r\n this.titleEval = utils.compile(this, this.controlData.Title);\r\n if(this.titleEval)\r\n return utils.evaluate(this.titleEval, this);\r\n return '';\r\n }\r\n catch (e) {\r\n utils.warn('Title could not evaluate expression: ' + this.controlData.Title + '; ' + e);\r\n return '';\r\n }\r\n },\r\n initialStep() {\r\n try {\r\n if(this.initialStepEval === null && this.controlData.InitialStep)\r\n this.initialStepEval = utils.compile(this, this.controlData.InitialStep);\r\n if(this.initialStepEval)\r\n return utils.evaluate(this.initialStepEval, this);\r\n return '';\r\n }\r\n catch (e) {\r\n utils.warn('InitialStep could not evaluate expression: ' + this.controlData.InitialStep + '; ' + e);\r\n return '';\r\n }\r\n },\r\n showBreadCrumb() {\r\n try {\r\n if(this.showBreadCrumbEval === null && this.controlData.ShowBreadCrumb)\r\n this.showBreadCrumbEval = utils.compile(this, this.controlData.ShowBreadCrumb);\r\n if(this.showBreadCrumbEval)\r\n return utils.evaluate(this.showBreadCrumbEval, this);\r\n return false;\r\n }\r\n catch (e) {\r\n utils.warn('ShowBreadCrumb could not evaluate expression: ' + this.controlData.ShowBreadCrumb + '; ' + e);\r\n return false;\r\n }\r\n },\r\n color() {\r\n try {\r\n if(this.colorEval === null && this.controlData.Color)\r\n this.colorEval = utils.compile(this, this.controlData.Color);\r\n if(this.colorEval)\r\n return utils.evaluate(this.colorEval, this);\r\n return '';\r\n }\r\n catch (e) {\r\n utils.warn('Color could not evaluate expression: ' + this.controlData.Color + '; ' + e);\r\n return '';\r\n }\r\n },\r\n steps() {\r\n try {\r\n if(this.controlData.Steps && this.controlData.Steps.length) {\r\n // Create a local copy of the steps so that we can interpolate the values of each step.\r\n if(!this.localSteps.length)\r\n this.localSteps = cloneDeep(this.controlData.Steps);\r\n \r\n // Compile all of the expressions that need to be interpolated for each step\r\n for(let step of this.localSteps) {\r\n if(step.Name && !step.NameCompiled)\r\n step.NameCompiled = utils.compile(this, this.Translate(step.Name));\r\n if(step.Title && !step.TitleCompiled)\r\n step.TitleCompiled = utils.compile(this, this.Translate(step.Title));\r\n\r\n // If there is a compiled value, replace the original version with the evaluated expression\r\n if(step.NameCompiled)\r\n step.Name = utils.evaluate(step.NameCompiled, this);\r\n if(step.TitleCompiled)\r\n step.Title = utils.evaluate(step.TitleCompiled, this);\r\n }\r\n\r\n return this.localSteps;\r\n }\r\n else \r\n return []\r\n }\r\n catch (e) {\r\n utils.warn('Steps could not evaluate expression: ' + this.controlData.Steps + '; ' + e);\r\n return [];\r\n }\r\n }\r\n },\r\n methods: {\r\n /**\r\n * Begin public methods\r\n */\r\n ClearBreadcrumbs() {\r\n this.clearBreadCrumbs();\r\n },\r\n GotoStepByName(stepName) {\r\n this.changeStepByName(stepName);\r\n },\r\n NextStep() {\r\n this.nextStep();\r\n },\r\n PreviousStep() {\r\n this.previousStep();\r\n },\r\n /**\r\n * End public methods\r\n */\r\n preRenderComplete() {\r\n this.setInitialStep();\r\n this.finishRenderHandler(this);\r\n },\r\n setInitialStep() {\r\n if(this.controlData.Steps && this.controlData.Steps.length) {\r\n if(this.initialStep)\r\n this.changeStepByName(this.initialStep);\r\n else\r\n this.changeStep(this.steps[0], 0);\r\n }\r\n },\r\n changeStep(step, index) {\r\n this.currentStepIndex = index;\r\n /////\r\n this.currentStep = step;\r\n step.index = index;\r\n this.addBreadCrumb(step);\r\n },\r\n addBreadCrumb(step) {\r\n this.breadCrumbs.push(step);\r\n },\r\n changeStepByName(stepName) {\r\n for(let i in this.steps) {\r\n let step = this.steps[i];\r\n if(step.Name === stepName) {\r\n this.changeStep(step, parseInt(i));\r\n return;\r\n }\r\n }\r\n },\r\n nextStep() {\r\n let nextStepIndex = this.currentStep.index + 1\r\n if(nextStepIndex < this.steps.length) {\r\n this.changeStep(this.steps[nextStepIndex], nextStepIndex);\r\n }\r\n },\r\n previousStep() {\r\n let index = this.breadCrumbs.length - 2;\r\n this.breadCrumbNavigate(this.breadCrumbs[index], index);\r\n },\r\n breadCrumbNavigate(breadCrumb, index) {\r\n // remove all items in the array including selected breadcrumb, since it will be added in the changeStep\r\n this.breadCrumbs.splice(index, this.breadCrumbs.length - index);\r\n\r\n this.changeStep(breadCrumb, breadCrumb.index);\r\n },\r\n clearBreadCrumbs() {\r\n this.breadCrumbs = [this.currentStep];\r\n },\r\n generateBreadCrumbs(h) {\r\n if (this.breadCrumbs && this.breadCrumbs.length) {\r\n const crumbs = [];\r\n for (let i = 0; i < this.breadCrumbs.length; i++) {\r\n const crumb = this.breadCrumbs[i];\r\n crumbs.push(= this.breadCrumbs.length - 1} on-click={(e) => this.breadCrumbNavigate(crumb, i)}>{crumb.Title || crumb.Name});\r\n crumbs.push(mdi mdi-chevron-right);\r\n }\r\n return (\r\n
{crumbs}
\r\n );\r\n }\r\n else\r\n return null;\r\n },\r\n generateSteps(h) {\r\n let items = [];\r\n for (let i = 0; i < this.steps.length; i++) {\r\n const step = this.steps[i];\r\n items.push(\r\n \r\n \r\n \r\n )\r\n }\r\n return items;\r\n },\r\n },\r\n props: {\r\n },\r\n render(h) {\r\n try {\r\n if (!this.todisplay)\r\n return null;\r\n\r\n let crumbs = this.generateBreadCrumbs(h);\r\n let items = this.generateSteps(h);\r\n\r\n return (\r\n \r\n \r\n {this.title}\r\n \r\n\r\n \r\n {crumbs}\r\n \r\n\r\n \r\n {items}\r\n \r\n \r\n );\r\n }\r\n catch(e) {\r\n utils.error('Wizard Render failed', e);\r\n return
Wizard Failed to Render {e}
;\r\n }\r\n }\r\n});","import Vue from 'vue';\r\nimport BaseComponent from './BaseComponentMixin.jsx';\r\nimport EventBus from '../event-bus.js';\r\n\r\nimport utils from '../../Shared/utils.jsx';\r\nimport methods from '../../Shared/methods';\r\n\r\nVue.component('wizard-button', {\r\n mixins: [BaseComponent],\r\n data: function () {\r\n return {\r\n typeEval: null,\r\n iconEval: null,\r\n iconPositionEval: null,\r\n buttonTextEval: null,\r\n tooltiprenderer: null,\r\n isdisabledeval: null,\r\n isDefaultEval: null,\r\n colorEval: null\r\n }\r\n },\r\n //Mounted Replaced with preRenderComplete\r\n computed: {\r\n buttonType() {\r\n try {\r\n if(this.typeEval === null && this.controlData.Type)\r\n this.typeEval = utils.compile(this, this.controlData.Type);\r\n if(this.typeEval)\r\n return utils.evaluate(this.typeEval, this);\r\n return 'Next';\r\n }\r\n catch (e) {\r\n utils.warn('Type could not evaluate expression: ' + this.controlData.Type + '; ' + e);\r\n return 'Next';\r\n }\r\n },\r\n buttonText() {\r\n try {\r\n if(this.buttonType === 'Next' || this.buttonType === 'Back' || this.buttonType === 'Finish')\r\n return this.buttonType;\r\n if(this.buttonTextEval === null && this.controlData.Text)\r\n this.buttonTextEval = utils.compile(this, this.Translate(this.controlData.Text));\r\n if(this.buttonTextEval)\r\n return utils.evaluate(this.buttonTextEval, this);\r\n return 'Next';\r\n }\r\n catch (e) {\r\n utils.warn('Text could not evaluate expression: ' + this.controlData.Text + '; ' + e);\r\n return 'Next';\r\n }\r\n },\r\n icon() {\r\n try {\r\n if(this.iconEval === null && this.controlData.Icon)\r\n this.iconEval = utils.compile(this, this.controlData.Icon);\r\n if(this.iconEval)\r\n return utils.evaluate(this.iconEval, this);\r\n if(this.buttonType === 'Back')\r\n return 'mdi mdi-chevron-double-left';\r\n else if(this.buttonType === 'Next')\r\n return 'mdi mdi-chevron-double-right';\r\n return '';\r\n }\r\n catch (e) {\r\n utils.warn('Icon could not evaluate expression: ' + this.controlData.Icon + '; ' + e);\r\n return 'mdi mdi-chevron-double-right';\r\n }\r\n },\r\n iconPosition() {\r\n try {\r\n if(this.buttonType === 'Next')\r\n return 'Right';\r\n else if(this.buttonType === 'Back')\r\n return 'Left';\r\n if(this.iconPositionEval === null && this.controlData.IconPosition)\r\n this.iconPositionEval = utils.compile(this, this.controlData.IconPosition);\r\n if(this.iconPositionEval)\r\n return utils.evaluate(this.iconPositionEval, this);\r\n return 'Right';\r\n }\r\n catch (e) {\r\n utils.warn('IconPosition could not evaluate expression: ' + this.controlData.IconPosition + '; ' + e);\r\n return 'Right';\r\n }\r\n },\r\n themes() {\r\n return {\r\n flat: this.controlData.Themes ? this.controlData.Themes.includes(\"Flat\") || this.controlData.Themes.includes(\"FlatWhite\") || this.controlData.Themes.includes(\"Transparent\") : false,\r\n small: this.controlData.Themes ? this.controlData.Themes.includes(\"Condensed\") || this.controlData.Themes.includes(\"CondensedBordered\") : false,\r\n condensedBordered: this.controlData.Themes ? this.controlData.Themes.includes(\"CondensedBordered\") : false,\r\n transparent: this.controlData.Themes ? this.controlData.Themes.includes(\"Transparent\") || this.controlData.Themes.includes(\"Condensed\") : false,\r\n leftConnector: this.controlData.Themes ? this.controlData.Themes.includes(\"LeftConnector\") : false,\r\n rightConnector: this.controlData.Themes ? this.controlData.Themes.includes(\"RightConnector\") : false,\r\n }\r\n },\r\n tooltip() {\r\n try {\r\n if(this.tooltiprenderer === null && this.controlData.Tooltip)\r\n this.tooltiprenderer = utils.compile(this, this.Translate(this.controlData.Tooltip));\r\n if(this.tooltiprenderer){\r\n return utils.evaluate(this.tooltiprenderer, this);\r\n }\r\n return '';\r\n }\r\n catch(e) {\r\n utils.warn('tooltip could not evaluate expression: ' + this.controlData.Tooltip + '; ' + e);\r\n return '';\r\n }\r\n },\r\n buttonClasses() {\r\n let classes = {\r\n 'ThemeRightConnector': this.themes.rightConnector,\r\n 'ThemeLeftConnector': this.themes.leftConnector,\r\n };\r\n\r\n return classes;\r\n },\r\n styles() {\r\n return {\r\n ...utils.resolveStyleHints(this.styleHints, this),\r\n overflow: \"hidden\",\r\n whiteSpace: \"nowrap\",\r\n };\r\n },\r\n isDisabled(){\r\n try {\r\n if(this.isdisabledeval === null && this.controlData.IsDisabled)\r\n this.isdisabledeval = utils.compile(this, this.controlData.IsDisabled);\r\n \r\n if (this.isdisabledeval) {\r\n const res = utils.evaluate(this.isdisabledeval, this, false,\r\n () => {\r\n // This is a callback that will only be called if evaluate throws an exception.\r\n // If this happens, we read the isdisabledfailed (so Vue knows we care) and then\r\n // after 100ms, we update isdisabledfailed to cause Vue to re-evaluate todisplay.\r\n // (cap the retry at 10 times with increasing delay each attempt)\r\n if (this.isdisabledfailed >= 0 && this.isdisabledfailed < 10)\r\n setTimeout(() => this.isdisabledfailed++, 50 * this.isdisabledfailed);\r\n });\r\n \r\n return res;\r\n }\r\n return false;\r\n }\r\n catch(e) {\r\n utils.warn('isdisabled could not evaluate expression: ' + this.controlData.IconStyle + '; ' + e);\r\n return false;\r\n }\r\n },\r\n isDefault() {\r\n try {\r\n if(this.isDefaultEval === null && this.controlData.IsDefault)\r\n this.isDefaultEval = utils.compile(this, this.controlData.IsDefault);\r\n if(this.isDefaultEval)\r\n return utils.evaluate(this.isDefaultEval, this);\r\n return false;\r\n }\r\n catch(e) {\r\n utils.warn('Icon could not evaluate expression: ' + this.controlData.IconStyle + '; ' + e);\r\n return false;\r\n }\r\n },\r\n color() {\r\n try {\r\n let theColor = \"primary\";\r\n if (this.colorEval === null && this.controlData.Color)\r\n this.colorEval = utils.compile(this, this.controlData.Color);\r\n if (this.colorEval) theColor = utils.evaluate(this.colorEval, this);\r\n\r\n if (this.isOutlined && theColor) theColor = theColor.replace(\"outline-\", \"\");\r\n else theColor = theColor || \"secondary\";\r\n // This helps with backwards compatibility for a version of Bootstrap that used the word 'default' to describe the secondary button\r\n if (theColor === \"default\") return \"secondary\";\r\n else if (theColor === \"danger\") return \"error\";\r\n return theColor;\r\n } catch (e) {\r\n utils.warn(\"color could not evaluate expression: \" + this.controlData.Color + \"; \" + e);\r\n return \"secondary\";\r\n }\r\n },\r\n isOutlined() {\r\n // Default for non-Next and non-Finish buttons is outline-primary.\r\n if (!this.controlData.Color && this.buttonType !== 'Next' && this.buttonType !== 'Finish')\r\n return true;\r\n\r\n return this.controlData.Color && this.controlData.Color.startsWith(\"outline-\");\r\n },\r\n },\r\n methods: {\r\n preRenderComplete() {\r\n this.finishRenderHandler(this);\r\n },\r\n async doClick(e) {\r\n if ((!this.controlData.Actions || !this.controlData.Actions.length) && this.ParentByType('Wizard')) {\r\n switch (this.buttonType) {\r\n case 'Back':\r\n this.ParentByType('Wizard').PreviousStep();\r\n break;\r\n\r\n case 'Next':\r\n this.ParentByType('Wizard').NextStep();\r\n break;\r\n }\r\n }\r\n else {\r\n await utils.executeAndCompileAllActions(this.controlData.Actions, null, this);\r\n }\r\n }\r\n },\r\n props: {\r\n },\r\n render(h) {\r\n try {\r\n if (!this.todisplay)\r\n return null;\r\n \r\n let content = [];\r\n \r\n if (this.icon) {\r\n if (this.iconPosition === 'Left') content.push({this.icon});\r\n content.push({this.buttonText});\r\n if (!this.iconPosition || this.iconPosition === 'Right') content.push({this.icon});\r\n }\r\n else\r\n content.push({this.buttonText});\r\n\r\n let button = (\r\n this.doClick(e)}\r\n type=\"button\"\r\n disabled={this.isDisabled == 'true' || this.isDisabled == true}\r\n is-default={this.isDefault}\r\n block={this.sizeOptions && this.sizeOptions.Width && this.sizeOptions.Width.Mode === 'Fill'}>\r\n {content}\r\n \r\n );\r\n\r\n let finalContent = utils.generateTooltip(h, button, this.tooltip, 'top');\r\n \r\n return (\r\n \r\n {finalContent}\r\n \r\n );\r\n }\r\n catch (e) {\r\n utils.error('BasicButton Render failed', e);\r\n return
Button Failed to Render {e}
;\r\n }\r\n }\r\n});","import Vue from \"vue\";\r\nimport utils from \"../../Shared/utils.jsx\";\r\nimport BaseComponent from \"./BaseComponentMixin.jsx\";\r\nimport { appSettings } from \"../../Shared/appSettings.js\";\r\n\r\nVue.component(\"youtube-video\", {\r\n mixins: [BaseComponent],\r\n data: function() {\r\n return {\r\n sourceTypeEval: null,\r\n localizedVideoIdEval: null,\r\n urlEval: null,\r\n localizedVideoUrl: null\r\n };\r\n },\r\n computed: {\r\n sourceType() {\r\n try {\r\n if (this.sourceTypeEval === null && this.controlData.SourceType)\r\n this.sourceTypeEval = utils.compile(this, this.controlData.SourceType);\r\n \r\n if (this.sourceTypeEval) {\r\n return utils.evaluate(this.sourceTypeEval, this);\r\n } \r\n \r\n return \"URL\";\r\n } catch (e) {\r\n utils.warn(\"Source type could not evaluate expression: \" + this.controlData.SourceType + \"; \" + e);\r\n return \"URL\";\r\n }\r\n },\r\n url() {\r\n try {\r\n if (this.localizedVideoUrl) {\r\n return this.localizedVideoUrl; \r\n }\r\n\r\n if (this.urlEval === null && this.controlData.URL) {\r\n this.urlEval = utils.compile(this, this.controlData.URL);\r\n }\r\n\r\n if (this.urlEval) {\r\n return utils.evaluate(this.urlEval, this);\r\n }\r\n\r\n return \"\";\r\n } catch (e) {\r\n utils.warn(\"URL could not evaluate expression: \" + this.controlData.URL + \"; \" + e);\r\n return \"\";\r\n }\r\n },\r\n styles() {\r\n return {\r\n ...this.sizeStyle,\r\n ...utils.resolveStyleHints(this.styleHints, this)\r\n }\r\n }\r\n },\r\n //Created replaced with preRenderComplete\r\n methods: {\r\n async preRenderComplete() {\r\n if (this.controlData.SourceType === \"Localized Video\") {\r\n await this.getLocalizedVideo(this.controlData.LocalizedVideoID); \r\n }\r\n\r\n this.finishRenderHandler(this);\r\n\r\n },\r\n async getLocalizedVideo(id) {\r\n const compiledId = utils.compile(this, id);\r\n const videoId = utils.evaluate(compiledId, this);\r\n const url = `Apps/Common/LocalizedVideo?id=${videoId}`;\r\n\r\n const res = await utils.api.get(url);\r\n const videoList = res.Videos;\r\n\r\n let localizedUrl;\r\n\r\n if (!videoList.length) {\r\n return;\r\n }\r\n else if (videoList.length === 1) {\r\n localizedUrl = videoList[0].Link;\r\n }\r\n else {\r\n const languageKey = appSettings.LanguageKey;\r\n\r\n localizedUrl = this.findVideoByLocale(videoList, languageKey);\r\n\r\n if (!localizedUrl) {\r\n localizedUrl = this.findVideoByLocale(videoList, 'en')\r\n }\r\n \r\n if (!localizedUrl) {\r\n localizedUrl = videoList[0].Link;\r\n }\r\n }\r\n\r\n this.localizedVideoUrl = localizedUrl;\r\n }, \r\n findVideoByLocale(videoList, locale) {\r\n var video = videoList.find(item => item.Locale == locale);\r\n \r\n if (video) {\r\n return video.Link;\r\n }\r\n else \r\n {\r\n return null;\r\n }\r\n }\r\n },\r\n props: {},\r\n render(h) {\r\n try {\r\n if (!this.todisplay) return null;\r\n\r\n return (\r\n
\r\n\r\n \r\n
\r\n );\r\n } catch (e) {\r\n utils.error(\"YouTubeVideo Render failed\", e);\r\n return
YouTubeVideo Failed to Render {e}
;\r\n }\r\n },\r\n});\r\n","import Vue from 'vue';\r\nimport BaseComponent from './BaseComponentMixin.jsx';\r\nimport utils from '../../Shared/utils.jsx';\r\nimport EventBus from '../event-bus.js';\r\n\r\nimport VerticalTabs from './vuecontrols/verticalTabs.vue';\r\n\r\nVue.component('experimental-tab', {\r\n mixins: [BaseComponent],\r\n components: {\r\n VerticalTabs\r\n },\r\n data: function () {\r\n return {\r\n items: null,\r\n selected_index: 5,\r\n\r\n show_remove: false,\r\n menu_visible: false,\r\n x: 0,\r\n y: 0,\r\n }\r\n },\r\n async created() {\r\n if (this.controlData.SourceType == 'Raw') {\r\n this.sourcerawexpn = utils.compileObject(this, this.controlData.SourceRaw);\r\n }\r\n else if (this.controlData.SourceType == 'Url') {\r\n this.sourceurlexpn = utils.compile(this, this.controlData.SourceUrl);\r\n }\r\n },\r\n //Mounted Replaced with preRenderComplete\r\n destroyed() {\r\n },\r\n computed: {\r\n sourcerawvalue: function () {\r\n return this.sourcerawexpn ? utils.evaluateObject(this.sourcerawexpn, this) : null;\r\n },\r\n sourceurlvalue: function () {\r\n return this.sourceurlexpn ? utils.evaluate(this.sourceurlexpn, this) : '';\r\n },\r\n backgroundImage: function () {\r\n if (!this.bgimageexpn && this.controlData.BackgroundImageURL)\r\n this.bgimageexpn = utils.compile(this, this.controlData.BackgroundImageURL);\r\n\r\n if (this.bgimageexpn)\r\n return utils.evaluate(this.bgimageexpn, this);\r\n else\r\n return '';\r\n },\r\n },\r\n watch: {\r\n },\r\n methods: {\r\n tabChanged(index) {\r\n utils.debug(`Tab selected ${index}`);\r\n this.selected_index = index;\r\n },\r\n async preRenderComplete() {\r\n await this.Refresh();\r\n\r\n this.finishRenderHandler(this);\r\n },\r\n async Refresh() {\r\n if (this.controlData.SourceType == 'Raw') {\r\n this.items = this.sourcerawvalue;\r\n }\r\n else if (this.controlData.SourceType == 'Url') {\r\n const url = this.sourceurlvalue;\r\n if (url)\r\n this.items = utils.api.get(url);\r\n else\r\n this.items = null;\r\n }\r\n },\r\n add(e) {\r\n this.$emit('add');\r\n },\r\n toggleRemove(e) {\r\n this.show_remove = !this.show_remove;\r\n },\r\n remove(e, item) {\r\n e.cancelBubble = true;\r\n e.stopPropagation();\r\n this.$emit('remove', item);\r\n },\r\n showMenu(item) {\r\n\r\n },\r\n },\r\n props: {\r\n },\r\n render(h) {\r\n if (!this.todisplay || !this.controlData)\r\n return null;\r\n\r\n const style = {\r\n ...this.sizeStyle,\r\n };\r\n\r\n const items = this.items || [\r\n { id: 1, title: 'Tab Number One-1 item', icon: 'mdi-refresh' },\r\n { id: 2, title: 'Tab Number Two-2', icon: 'mdi-calendar-check' },\r\n { id: 3, title: 'Tab Number Three-3', icon: 'mdi-account-circle' },\r\n { id: 4, title: 'Tab Number Four-4', icon: 'mdi-close-circle' },\r\n { id: 5, title: 'Tab Number Five-5', icon: 'mdi-close-circle-outline' },\r\n { id: 6, title: 'Tab Number Six-6', icon: 'mdi-close-circle-outline' },\r\n { id: 7, title: 'Tab Number Seven-7', icon: 'mdi-close-circle-outline' },\r\n { id: 8, title: 'Tab Number Eight-8', icon: 'mdi-close-circle-outline' },\r\n { id: 9, title: 'Tab Number One-1', icon: 'mdi-refresh' },\r\n { id: 10, title: 'Tab Number Two-2', icon: 'mdi-calendar-check' },\r\n { id: 11, title: 'Tab Number Three-3 item', icon: 'mdi-account-circle' },\r\n { id: 12, title: 'Tab Number Four-4', icon: 'mdi-close-circle' },\r\n { id: 13, title: 'Tab Number Five-5', icon: 'mdi-close-circle-outline' },\r\n { id: 14, title: 'Tab Number Six-6', icon: 'mdi-close-circle-outline' },\r\n { id: 15, title: 'Tab Number Seven-7', icon: 'mdi-close-circle-outline' },\r\n { id: 16, title: 'Tab Number Eight-8', icon: 'mdi-close-circle-outline' },\r\n ];\r\n\r\n const scopedSlots = {};\r\n if (this.controlData.ShowTitle)\r\n scopedSlots.label = (item) =>\r\n (\r\n [\r\n {item.title},\r\n this.remove(e, item)}>\r\n mdi-close-circle\r\n ,\r\n ]\r\n );\r\n else if (this.controlData.ShowIcon)\r\n scopedSlots.label = (item) => {\r\n let icon = {item.icon};\r\n\r\n if (item.menu) {\r\n const menuScopedSlots = {\r\n activator: ({ on, attrs }) => {item.icon}\r\n };\r\n\r\n icon = (\r\n \r\n \r\n \r\n this.refreshchildren(e)}>\r\n \r\n mdi-refresh\r\n \r\n\r\n \r\n Reload\r\n Flushes cache and reloads\r\n \r\n \r\n\r\n this.openForLocalEdit(e, this.controlURLvalue)}>\r\n \r\n mdi-pencil\r\n \r\n\r\n \r\n Edit\r\n Local Tab\r\n \r\n \r\n\r\n this.openForExternalEdit(e, this.controlURLvalue)}>\r\n \r\n mdi-pencil-box-multiple\r\n \r\n\r\n \r\n Edit\r\n New Window\r\n \r\n \r\n\r\n this.openDocumentStandAlone(e, this.controlURLvalue)}>\r\n \r\n mdi-play-box-multiple\r\n \r\n\r\n \r\n Open Stand-Alone\r\n New Window\r\n \r\n \r\n\r\n \r\n \r\n \r\n );\r\n }\r\n\r\n return icon;\r\n };\r\n\r\n let remove;\r\n if (this.controlData.ShowAddRemove) {\r\n if (this.show_remove)\r\n remove = this.toggleRemove(e)}>Cancel;\r\n else\r\n remove = this.toggleRemove(e)}>Remove;\r\n }\r\n\r\n return (\r\n this.tabChanged(index)}\r\n on-menu={(item) => this.showMenu(item)}\r\n >\r\n\r\n
\r\n this.add(e)}>Add\r\n {remove}\r\n
\r\n \r\n );\r\n //{items.map((i, index) => {i.content})}\r\n }\r\n});","import Vue from 'vue';\r\nimport BaseComponent from './BaseComponentMixin.jsx';\r\n\r\nVue.component('hidden-container', {\r\n mixins: [BaseComponent],\r\n data: function () {\r\n return {\r\n }\r\n },\r\n //Mounted Replaced with preRenderComplete\r\n computed: {\r\n },\r\n methods: {\r\n preRenderComplete() {\r\n this.finishRenderHandler(this);\r\n },\r\n },\r\n props: {\r\n },\r\n render(h) {\r\n return null;\r\n }\r\n});","import Vue from 'vue';\r\n\r\nVue.directive('on-enter-default', {\r\n bind(el) {\r\n el.onkeydown = (event) => {\r\n // Enter\r\n if (event.keyCode == 13){\r\n\r\n // Textareas report when 'enter' is pressed, but we want to ignore textareas since they don't submit forms.\r\n if (event.target.nodeName == 'BUTTON' ||\r\n (event.target.nodeName == 'TEXTAREA' && !event.target.attributes[\"ignore-enter\"])){\r\n return;\r\n }\r\n\r\n //twitter emoji text area is a div, but has a class of twemoji-textarea\r\n if (event.target.classList.toString().indexOf(\"textarea\") > -1){\r\n return;\r\n }\r\n\r\n var defaultButtons = document.querySelectorAll(\"button[is-default='true']:not([disabled]):not([style='display:none']):not([style='visibility:hidden'])\");\r\n\r\n for (var button of defaultButtons){\r\n button.click();\r\n event.preventDefault();\r\n return;\r\n }\r\n\r\n // no default button was found, but if ignore-enter = true we still ignore the enter\r\n if (event.target.nodeName == 'TEXTAREA' && event.target.attributes[\"ignore-enter\"]){\r\n event.preventDefault();\r\n return;\r\n }\r\n }\r\n };\r\n }\r\n});","import 'jointjs/dist/joint.core.css';\r\n\r\nimport { dia } from 'jointjs/src/core.mjs';\r\nimport * as standard from 'jointjs/src/shapes/standard.mjs';\r\nimport * as linkTools from 'jointjs/src/linkTools/index.mjs';\r\nimport * as elementTools from 'jointjs/src/elementTools/index.mjs';\r\nimport * as highlighters from 'jointjs/src/highlighters/index.mjs';\r\n\r\nexport default {\r\n\tinstall: function (Vue) {\r\n\t\tlet joint = { dia };\r\n\t\tjoint.shapes = { standard };\r\n\t\tjoint.linkTools = linkTools;\r\n\t\tjoint.elementTools = elementTools;\r\n\t\tjoint.highlighters = highlighters;\r\n\t\tObject.defineProperty(Vue.prototype, '$joint', { value: joint });\r\n\t}\r\n};","import Vue from \"vue\";\r\nimport Vuetify from \"vuetify\";\r\nimport EventBus from \"./event-bus.js\";\r\nimport axios from \"axios\";\r\nimport ace from \"./components/3rdParty/AceEditor.jsx\";\r\nimport utils from \"../Shared/utils.jsx\";\r\nimport methods from \"../Shared/methods.js\";\r\nimport filters from \"../Shared/filters.js\";\r\nimport computed from \"../Shared/computed.js\";\r\nimport careHelpfulFunctions from \"./careHelpfulFunctions.jsx\";\r\nimport BaseComponent from \"./components/BaseComponentMixin.jsx\";\r\nimport token from \"@/Services/token\";\r\nimport api from \"@/Services/api\";\r\n\r\nimport VueApexCharts from 'vue-apexcharts'\r\nVue.use(VueApexCharts);\r\nVue.component('apexchart', VueApexCharts);\r\n\r\n// Import all CallCorp controls which will register them with Vue\r\nimport Accordion from \"./components/Accordion.jsx\";\r\nimport ACDDirectButton from \"./components/ACDDirectButton.jsx\";\r\nimport ActionService from \"./components/ActionService.jsx\";\r\nimport AdvancedHistory from \"./components/AdvancedHistory.vue\";\r\nVue.component(\"advanced-history\", AdvancedHistory);\r\nimport AdvancedReports from \"./components/AdvancedReports.vue\";\r\nVue.component(\"advanced-reports\", AdvancedReports);\r\nimport AgGrid from \"./components/AgGrid.jsx\";\r\nimport ApexGeneralChart from \"./components/ApexGeneralChart.vue\";\r\nVue.component(\"apex-general-chart\", ApexGeneralChart);\r\nimport AppleButton from \"./components/AppleButton.jsx\";\r\nimport AudioPlayer from \"./components/AudioPlayer.vue\";\r\nVue.component(\"audio-player\", AudioPlayer);\r\nimport AutoComplete from \"./components/AutoComplete.jsx\";\r\nimport BadgeHandler from './components/BadgeHandler.jsx';\r\nimport BarChart from \"./components/BarChart.jsx\";\r\nimport BasicButton from \"./components/BasicButton.jsx\";\r\nimport BasicFileUpload from \"./components/BasicFileUpload.vue\";\r\nVue.component(\"basic-file-upload\", BasicFileUpload);\r\nimport BasicForm from \"./components/BasicForm.jsx\";\r\nimport BasicGrid from \"./components/BasicGrid.jsx\";\r\nimport BasicInput from \"./components/BasicInput\";\r\nimport BasicLink from \"./components/BasicLink.jsx\";\r\nimport BasicSwitch from \"./components/BasicSwitch.jsx\";\r\nimport BasicTab from \"./components/BasicTab.jsx\";\r\nimport BasicToggle from \"./components/BasicToggle.jsx\";\r\nimport BasicTree from \"./components/BasicTree.jsx\";\r\nimport BasicPopupMenu from \"./components/BasicPopupMenu.jsx\";\r\nimport BroadcastListener from \"./components/BroadcastListener.jsx\";\r\nimport \"./components/CallcorpPlayer\";\r\nimport CalendarPicker from \"./components/CalendarPicker.jsx\";\r\nimport CardList from \"./components/CardList.jsx\";\r\nimport CardBrowser from \"./components/CardBrowser.jsx\";\r\nimport CheetahGrid from \"./components/CheetahGrid.jsx\";\r\nimport CircleChart from \"./components/CircleChart.jsx\";\r\nimport ComboBox from \"./components/ComboBox.jsx\";\r\nimport ControlContainer from \"./components/ControlContainer.jsx\";\r\nimport ControlDesigner from \"./components/ControlDesigner.jsx\";\r\nimport ConversationView from \"./components/ConversationView.jsx\";\r\nimport CssStyle from \"./components/CssStyle.jsx\";\r\nimport Dash from \"./components/Dash.jsx\";\r\nimport DateRangePicker from \"./components/DateRangePicker.jsx\";\r\nimport DefaultUnknown from \"./components/DefaultUnknown.jsx\";\r\nimport DebugHsmLog from \"./components/DebugHsmLog.jsx\";\r\nimport DesktopNotify from \"./components/DesktopNotify.jsx\";\r\nimport DocumentBootstrap from \"./components/DocumentBootstrap.jsx\";\r\nimport DropdownList from \"./components/DropdownList.jsx\";\r\nimport DropdownMultiSelect from \"./components/DropdownMultiSelect.jsx\";\r\nimport DynamicControlContainer from \"./components/DynamicControlContainer.jsx\";\r\nimport DynamicMenuList from \"./components/DynamicMenuList.jsx\";\r\nimport DynamicTab from \"./components/DynamicTab.jsx\";\r\nimport DynamicTabContent from \"./components/DynamicTabContent.jsx\";\r\nimport DynamicTree from \"./components/DynamicTree.jsx\";\r\nimport FastGrid from \"./components/FastGrid.jsx\";\r\nimport FlowChart from \"./components/FlowChart.jsx\";\r\nimport FileDiff from \"./components/FileDiff.vue\";\r\nVue.component(\"file-diff\", FileDiff);\r\nimport ForEach from \"./components/ForEach.jsx\";\r\nimport ForEachSimple from \"./components/ForEachSimple.jsx\";\r\n//import Hsm from './components/HSM.jsx';\r\nimport GoogleButton from \"./components/GoogleButton.jsx\";\r\nimport GoogleButton_v2 from \"./components/GoogleButton_v2.jsx\";\r\nimport HsmNew from \"./components/HSM/HSM.jsx\";\r\nimport HorizontalStack from \"./components/HorizontalStack.jsx\";\r\nimport HtmlEditor from \"./components/HtmlEditor.jsx\";\r\nimport HtmlTable from \"./components/HtmlTable.jsx\";\r\nimport Html from \"./components/Html.jsx\";\r\nimport Icon from \"./components/Icon.jsx\";\r\nimport IconPopupMenu from \"./components/IconPopupMenu.jsx\";\r\nimport Avatar from \"./components/Avatar.jsx\";\r\nimport IconStack from \"./components/IconStack.jsx\";\r\nimport IdleTimeout from \"./components/IdleTimeout.jsx\";\r\nimport IFrame from \"./components/IFrame.jsx\";\r\nimport Image from \"./components/Image.jsx\";\r\nimport InfiniteConversationView from \"./components/InfiniteConversationView.jsx\";\r\nimport InfiniteGrid from \"./components/InfiniteGrid.jsx\";\r\nimport Interval from \"./components/Interval.jsx\";\r\nimport Javascript from \"./components/Javascript.jsx\";\r\nimport LineChart from \"./components/LineChart.vue\";\r\nVue.component(\"line-chart\", LineChart);\r\nimport MediaApproval from \"./components/MediaApproval.vue\";\r\nimport MenuFlowChart from \"./components/MenuFlowChart.jsx\";\r\nVue.component(\"media-approval\", MediaApproval);\r\nimport MultiSelectList from \"./components/MultiSelectList.vue\";\r\nVue.component(\"multiselectlist\", MultiSelectList);\r\nimport MultiSelectListItem from \"./components/MultiSelectListItem.vue\";\r\nVue.component(\"multiselectlistitem\", MultiSelectListItem);\r\nimport NavigationDrawer from \"./components/NavigationDrawer.jsx\";\r\nimport Notification from \"./components/Notification.jsx\";\r\nimport PopupMenuButton from \"./components/PopupMenuButton.jsx\";\r\nimport ProgressBar from \"./components/ProgressBar.jsx\";\r\nimport ProgressCircle from \"./components/ProgressCircle.jsx\";\r\nimport RealTimeGrid from \"./components/RealTimeGrid.jsx\";\r\nimport RealTimeWidgetListener from \"./components/RealTimeWidgetListener.jsx\";\r\nimport ReCaptcha from \"./components/ReCaptcha.jsx\";\r\nimport RoosterEditor from \"./components/RoosterEditor.vue\";\r\nVue.component(\"rooster-editor\", RoosterEditor);\r\nimport RTEventHandler from \"./components/RTEventHandler.jsx\";\r\nimport SAMLButton from \"./components/SAMLButton.jsx\";\r\nimport Search from \"./components/Search.jsx\";\r\nimport SelectList from \"./components/SelectList.jsx\";\r\nimport ServerEventListener from \"./components/ServerEventListener.jsx\";\r\nimport SlimGrid from \"./components/SlimGrid.jsx\";\r\nimport SoftPhone from \"./components/SoftPhone.vue\";\r\nVue.component(\"soft-phone\", SoftPhone);\r\nimport SoundPlayer from \"./components/SoundPlayer.jsx\";\r\nimport SplitButton from \"./components/SplitButton.jsx\";\r\nimport SplitPanes from \"./components/SplitPanes.jsx\";\r\nimport Text from \"./components/Text.jsx\";\r\nimport TextEditor from \"./components/TextEditor.jsx\";\r\nimport Timeline from \"./components/Timeline.jsx\";\r\nimport Timeout from \"./components/Timeout.jsx\";\r\nimport TranslationContainer from \"./components/TranslationContainer.jsx\";\r\nimport TreeView from \"./components/TreeView.jsx\";\r\nimport UserControl from \"./components/UserControl.jsx\";\r\nimport VerticalStack from \"./components/VerticalStack.jsx\";\r\nimport Watcher from \"./components/Watcher.jsx\";\r\nimport WebRtcPhone from \"./components/WebRtcPhone.jsx\";\r\nimport Wizard from './components/Wizard.jsx';\r\nimport WizardButton from './components/WizardButton.jsx';\r\nimport YouTubeVideo from \"./components/YouTubeVideo.jsx\";\r\n\r\nimport ExperimentalTab from \"./components/ExperimentalTab.jsx\";\r\nimport HiddenContainer from \"./components/HiddenContainer.jsx\";\r\n\r\nimport OnEnterDefault from \"./directives/OnEnterDefault\";\r\nimport dayjs from \"dayjs\";\r\n\r\nimport RappidPlugin from './components/3rdParty/rappid';\r\nimport vuetify from '@/plugins/vuetify';\r\n\r\nVue.use(RappidPlugin);\r\n\r\nexport default Vue.component(\"start-application\", {\r\n data: () => ({\r\n rootid: \"\",\r\n loading: true,\r\n access_token: null,\r\n refresh_token: null,\r\n control: null,\r\n CustomerID: null,\r\n date_value: {\r\n value: null,\r\n },\r\n global_vars: {\r\n api_busy_indicator: false,\r\n debug_reveal: false,\r\n Theme: vuetify.getTheme(),\r\n },\r\n service_vars: {\r\n tokenVars: {},\r\n },\r\n\r\n PrivateVariables: {\r\n AccessToken: { Value: null },\r\n RefreshToken: { Value: null },\r\n ExpiresIn: { Value: null },\r\n ExpiresAbsoluteTime: { Value: null },\r\n UserSecurityContextID: { Value: null },\r\n UserID: { Value: null },\r\n CustomerSecurityContextID: { Value: null },\r\n CustomerTextToSpeechVoice: { Value: null },\r\n CustomerAbbreviation: { Value: null },\r\n CustomerID: { Value: null },\r\n CustomerName: { Value: null },\r\n CustomerTimezone: { Value: null },\r\n CustomerRegionCode: { Value: null },\r\n CustomerPhoneNumberFormat: { Value: null },\r\n CustomerDefaultPromptLanguage: { Value: null },\r\n E911Compliance: { Value: null },\r\n CustomerRoles: { Value: null },\r\n BandID: { Value: null },\r\n ProviderType: { Value: null },\r\n UserName: { Value: null },\r\n Email: { Value: null}\r\n },\r\n }),\r\n created() {\r\n token.PrivateVariables = this.PrivateVariables;\r\n // Attempt to initialize the private variables from sessionStorage if found\r\n if (sessionStorage)\r\n for (let key in this.PrivateVariables) {\r\n if (typeof this.PrivateVariables[key] === 'object') {\r\n const value = sessionStorage.getItem(key);\r\n if (value !== undefined)\r\n this.PrivateVariables[key].Value = value;\r\n }\r\n }\r\n\r\n window.addEventListener(\"keydown\", (e) => {\r\n if (e.key == \"Control\" || e.key == \"ControlLeft\" || e.key == \"ControlRight \") {\r\n this.global_vars.debug_reveal = true;\r\n }\r\n });\r\n window.addEventListener(\"keyup\", (e) => {\r\n if (e.key == \"Control\" || e.key == \"ControlLeft\" || e.key == \"ControlRight \") {\r\n this.global_vars.debug_reveal = false;\r\n }\r\n });\r\n window.addEventListener(\"event-bus-listener\", (e) => {\r\n if (Array.isArray(e.detail.args))\r\n EventBus.$emit(e.detail.name, ...e.detail.args);\r\n else\r\n EventBus.$emit(e.detail.name, e.detail.args);\r\n });\r\n\r\n this.rootid = utils.generateUUID();\r\n EventBus.$on(\"Logout\", this.performLogout);\r\n EventBus.$on(\"SelectedCustomerChanged\", this.performLogout);\r\n\r\n this.date_value.value = new Date();\r\n careHelpfulFunctions.date_value = this.date_value;\r\n utils.global_variables = this.global_vars;\r\n utils.service_variables = this.service_vars;\r\n\r\n this.interval = setInterval(() => {\r\n this.date_value.value = new Date();\r\n }, 1000);\r\n\r\n this.$emit(\"start-application-created\");\r\n\r\n this.getControl();\r\n },\r\n destroyed() {\r\n EventBus.$off(\"Logout\", this.performLogout);\r\n EventBus.$off(\"SelectedCustomerChanged\", this.performLogout);\r\n },\r\n async mounted() {\r\n },\r\n async mounted() {},\r\n props: {\r\n route: \"\",\r\n query: \"\",\r\n path: \"\",\r\n },\r\n computed: {\r\n ...computed,\r\n },\r\n methods: {\r\n ...methods,\r\n ...filters,\r\n performLogout() {\r\n this.rootid = utils.generateUUID();\r\n\r\n //clear any global variables as needed.\r\n utils.logout();\r\n },\r\n getControl: async function() {\r\n // Load the master user control to get everything running\r\n if (!this.control) {\r\n if (this.route) {\r\n let route = this.route.substr(1);\r\n if (route.includes('!')) route = route.replace('!', '');\r\n if (route.startsWith(\"/\")) route = route.substr(1);\r\n if (route.includes(\"?\")) route = route.substring(0, route.indexOf(\"?\"));\r\n if (route.startsWith(\"Control\")) route = route.replace(\"Control\", \"\");\r\n\r\n if (!route)\r\n route = 'v1/Vue/CallCenterPortal';\r\n else if (route.startsWith('#'))\r\n route = 'v1/Vue/CallCenterPortal';\r\n\r\n this.control = await api.get(\"Document/UserControl/\" + route);\r\n }\r\n else\r\n this.control = await api.get(\"Document/UserControl/v1/Vue/CallCenterPortal\");\r\n }\r\n },\r\n },\r\n render(h) {\r\n if (!this.control) return \"Loading...\";\r\n\r\n let DynamicControl = utils.getDynamicComponent(h, this.control);\r\n if (!DynamicControl) return
Control type of {this.control.ControlType} is unknown
;\r\n\r\n return (\r\n \r\n );\r\n },\r\n});\r\n","import EventBus from \"@/Application/event-bus\";\r\nimport utils from \"@/Shared/utils\";\r\nimport {appSettings} from '@/Shared/appSettings';\r\n\r\nexport default {\r\n umls: [],\r\n uml: null,\r\n order: 10000,\r\n participants: {},\r\n \r\n //This method is only called from the App.Vue when the site gets created so we can subscribe\r\n created() {\r\n appSettings.plantUmlService = this;\r\n EventBus.$on(\"Action-DebugNewUml\", this.newUml.bind(this));\r\n \r\n this.beginUML('First');\r\n },\r\n //This method is only called from the App.Vue when the site gets destroyed so we can unsubscribe\r\n destroyed() {\r\n EventBus.$off(\"Action-DebugNewUml\", this.newUml.bind(this))\r\n },\r\n async newUml(action) {\r\n /*********** ACTION DEBUG **********/\r\n if (action?.ActionData?.Debug?.BreakPoint) debugger;\r\n /**********************************/\r\n\r\n try {\r\n if (this.uml.timeline.length >= 1)\r\n {\r\n var previousUml = this.uml;\r\n\r\n this.endUML();\r\n this.beginUML(action.ActionData.Name);\r\n\r\n // carry forward any activated timelines and also the current state (represented by the lastNoteHexegon) so the nesting will remain the same\r\n for (const [key, item] of Object.entries(previousUml.actors)) {\r\n if (item.activateCount) {\r\n for (var x = 0; x < item.activateCount; x++) { \r\n this.passMessage(key, key, '... (from prev diagram)', '->', '#blue'); // in order to have the activate nest properly in the diagram it needs a message prior to it\r\n this.activate(key);\r\n };\r\n\r\n if (item.lastNoteHexegon)\r\n this.noteHexagon(item.lastNoteHexegon.text, key, item.lastNoteHexegon.orientation, item.lastNoteHexegon.color);\r\n }\r\n }\r\n }\r\n try {\r\n await utils.success(action);\r\n } catch (e) { }\r\n } catch (e) {\r\n try {\r\n await utils.failure(action, { Data: e });\r\n } catch (e) { }\r\n } finally {\r\n try {\r\n await utils.complete(action);\r\n }\r\n catch (e) { }\r\n\r\n // Complete the promise for the executeAction method\r\n action?.FinishFunc(true);\r\n }\r\n },\r\n beginUML(name) {\r\n if (this.uml) {\r\n utils.error(\"UML already started.\");\r\n return;\r\n }\r\n\r\n this.uml = {\r\n name: name,\r\n data: \"\",\r\n participants: [],\r\n timeline: [],\r\n actors: {}\r\n };\r\n this.umls.push(this.uml);\r\n\r\n // limit the number of items in the array to 10\r\n if (this.umls.length > 10)\r\n this.umls.splice(0, 1);// remove the first element\r\n\r\n this.addLine(\"@startuml\", true);\r\n },\r\n endUML() {\r\n if (!this.uml) {\r\n utils.error(\"UML already ended.\");\r\n return;\r\n }\r\n \r\n this.addLine(\"@enduml\", true);\r\n this.uml = null;\r\n },\r\n addParticipant(name, altName, order) {\r\n if (this.uml) {\r\n // we keep a global participants list because we stop and start umls constantly (for the same HSM). When the HSM is first created and the participant added, it has an altName\r\n // when a new uml diagram starts, we will dynamically add the participant when it is first used and we'll need to know what the altName was when it was first used.\r\n if (!this.participants[name]) {\r\n // add to global list of participants\r\n this.participants[name] = {\r\n altName: altName || name, // if no alt name given use the original unsanatized name\r\n order: order || this.order++\r\n };\r\n }\r\n\r\n // if participant is not already in the local uml, add to the local uml's participant list \r\n if (this.uml.participants.indexOf(name) == -1) {\r\n this.uml.participants.push(name);\r\n\r\n if (!altName)\r\n altName = this.participants[name].altName; // if no alt name is given, then use the one from the global participants list\r\n\r\n var order = this.participants[name].order;\r\n var sanitizedName = this.sanitizeName(name, true);\r\n\r\n this.addLine(`participant \"${altName}\" as ${sanitizedName} order ${order}`);\r\n }\r\n }\r\n },\r\n passMessage(from, to, message, style, color) {\r\n color = color || '';\r\n style = style || '';\r\n\r\n from = this.sanitizeName(from);\r\n to = this.sanitizeName(to);\r\n if (!style) {\r\n style = '->';\r\n } \r\n if (color) {\r\n color = `[${color}]`;\r\n }\r\n this.addLine(`${from} ${color}${style} ${to}: ${message}`);\r\n },\r\n /*\r\n Orientation:\r\n left\r\n right\r\n over\r\n Actor:\r\n [actor]\r\n [actor], [actor]..\r\n Color:\r\n #[color]\r\n */\r\n noteHexagon(text, actor, orientation, color) {\r\n var position = this.parsePosition(orientation, actor);\r\n this.note('h', text, position, color);\r\n\r\n var actorObj = this.getOrCreateActor(actor);\r\n actorObj.lastNoteHexegon = {\r\n text: text,\r\n orientation: orientation,\r\n color: color\r\n };\r\n },\r\n noteRectangle(text, actor, orientation, color) {\r\n var position = this.parsePosition(orientation, actor);\r\n this.note('r', text, position, color);\r\n },\r\n /*\r\n Use noteHexagon or noteRectangle unless you have specific needs.\r\n Type:\r\n r - rectangle\r\n h - hexagon\r\n Position:\r\n Should be from parsePosition\r\n */\r\n note(type, text, position, color) {\r\n color = color || '';\r\n\r\n this.addLine(`${type}note ${position} ${color}\\n${text}\\nend${type}note`);\r\n },\r\n activate(actor) {\r\n var actorObj = this.getOrCreateActor(actor);\r\n actorObj.activateCount++;\r\n\r\n actor = this.sanitizeName(actor);\r\n this.addLine(`activate ${actor}`);\r\n },\r\n deactivate(actor) {\r\n var actorObj = this.getOrCreateActor(actor);\r\n actorObj.activateCount--;\r\n\r\n actor = this.sanitizeName(actor);\r\n this.addLine(`deactivate ${actor}`);\r\n },\r\n createParticipant(actor) {\r\n this.addLine(`create \"${actor}\"`);\r\n },\r\n sanitizeName(name, preventRecursion) {\r\n if (!name)\r\n return '';\r\n\r\n // if the participant doesn't exist yet in the uml diagram, then add\r\n if (!preventRecursion && this.uml?.participants.indexOf(name) == -1) \r\n this.addParticipant(name);\r\n\r\n return name.replace(/-/g, '');\r\n },\r\n parsePosition(position, actor) {\r\n actor = this.sanitizeName(actor);\r\n if (!position || position == 'over') {\r\n position = `over ${actor}`;\r\n } else if (position == 'left') {\r\n position = `left of ${actor}`;\r\n } else if (position == 'right') {\r\n position = `right of ${actor}`;\r\n }\r\n return position;\r\n },\r\n addLine(line, hideFromTimeline) {\r\n if (!this.uml) {\r\n utils.error(\"No UML to add to.\");\r\n return;\r\n }\r\n this.uml.data += line + '\\n';\r\n\r\n if (!hideFromTimeline)\r\n this.uml.timeline.push(line);\r\n },\r\n // called when hsm is being destroyed\r\n endAllActivates(actor) {\r\n var actorObj = this.getOrCreateActor(actor);\r\n for (var x = actorObj.activateCount; x > 0; x--) {\r\n this.passMessage(actor, actor, 'Ending', '->', '#red'); // in order to have the activate nest properly in the diagram it needs a message prior to it\r\n this.deactivate(actor);\r\n delete this.participants[actor]; // remove from global participants list\r\n }\r\n },\r\n // used to track some information about an actor so if a new UML diagram is started, it can display activated timelines properly\r\n getOrCreateActor(actor) {\r\n var actorObj = this.uml?.actors[actor];\r\n\r\n if (!actorObj) {\r\n actorObj = {\r\n activateCount: 0,\r\n lastNoteHexegon: null\r\n };\r\n\r\n this.uml.actors[actor] = actorObj;\r\n }\r\n\r\n return actorObj;\r\n },\r\n testRun() {\r\n this.beginUML();\r\n this.addParticipant('Bob');\r\n this.addParticipant('Alice');\r\n this.passMessage('Bob', 'Alice', 'Hello!');\r\n this.passMessage('Alice', 'Bob', 'Hello! How are you?');\r\n this.createParticipant('Eve');\r\n this.passMessage('Bob', 'Eve', 'I am doing so well!');\r\n this.endUML();\r\n }\r\n // testRun();\r\n // utils.log('HSM:', c.umls);\r\n\r\n\r\n}; ","\r\n\r\n\r\n\r\n\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/cache-loader/dist/cjs.js??ref--1-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js&\"; 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/cache-loader/dist/cjs.js??ref--1-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./App.vue?vue&type=template&id=2215e15a&\"\nimport script from \"./App.vue?vue&type=script&lang=js&\"\nexport * from \"./App.vue?vue&type=script&lang=js&\"\nimport style0 from \"./App.vue?vue&type=style&index=0&id=2215e15a&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","import Vue from 'vue';\r\nimport vuetify from './plugins/vuetify';\r\nimport App from './App.vue';\r\nimport VTooltip from 'v-tooltip';\r\nimport Snotify from 'vue-snotify';\r\nimport VueRouter from 'vue-router';\r\n\r\nVue.use(VTooltip, {\r\n defaultBoundariesElement: '.v-application--wrap',\r\n});\r\nVue.config.productionTip = false;\r\n\r\nVue.use(Snotify);\r\nVue.use(VueRouter);\r\n\r\nconst routes = [\r\n //define routes here.\r\n]\r\n\r\nconst router = new VueRouter({\r\n routes\r\n})\r\n\r\nnew Vue({\r\n vuetify: vuetify.instance,\r\n render: h => h(App),\r\n router\r\n}).$mount('#app');\r\n","(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"signalR\"] = factory();\n\telse\n\t\troot[\"signalR\"] = factory();\n})(self, () => {\nreturn ","// The require scope\nvar __webpack_require__ = {};\n\n","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\n\r\n// These values are designed to match the ASP.NET Log Levels since that's the pattern we're emulating here.\r\n/** Indicates the severity of a log message.\r\n *\r\n * Log Levels are ordered in increasing severity. So `Debug` is more severe than `Trace`, etc.\r\n */\r\nexport enum LogLevel {\r\n /** Log level for very low severity diagnostic messages. */\r\n Trace = 0,\r\n /** Log level for low severity diagnostic messages. */\r\n Debug = 1,\r\n /** Log level for informational diagnostic messages. */\r\n Information = 2,\r\n /** Log level for diagnostic messages that indicate a non-fatal problem. */\r\n Warning = 3,\r\n /** Log level for diagnostic messages that indicate a failure in the current operation. */\r\n Error = 4,\r\n /** Log level for diagnostic messages that indicate a failure that will terminate the entire application. */\r\n Critical = 5,\r\n /** The highest possible log level. Used when configuring logging to indicate that no log messages should be emitted. */\r\n None = 6,\r\n}\r\n\r\n/** An abstraction that provides a sink for diagnostic messages. */\r\nexport interface ILogger {\r\n /** Called by the framework to emit a diagnostic message.\r\n *\r\n * @param {LogLevel} logLevel The severity level of the message.\r\n * @param {string} message The message.\r\n */\r\n log(logLevel: LogLevel, message: string): void;\r\n}\r\n","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\n\r\nimport { HttpTransportType } from \"./ITransport\";\r\n\r\n/** Error thrown when an HTTP request fails. */\r\nexport class HttpError extends Error {\r\n // @ts-ignore: Intentionally unused.\r\n // eslint-disable-next-line @typescript-eslint/naming-convention\r\n private __proto__: Error;\r\n\r\n /** The HTTP status code represented by this error. */\r\n public statusCode: number;\r\n\r\n /** Constructs a new instance of {@link @microsoft/signalr.HttpError}.\r\n *\r\n * @param {string} errorMessage A descriptive error message.\r\n * @param {number} statusCode The HTTP status code represented by this error.\r\n */\r\n constructor(errorMessage: string, statusCode: number) {\r\n const trueProto = new.target.prototype;\r\n super(`${errorMessage}: Status code '${statusCode}'`);\r\n this.statusCode = statusCode;\r\n\r\n // Workaround issue in Typescript compiler\r\n // https://github.com/Microsoft/TypeScript/issues/13965#issuecomment-278570200\r\n this.__proto__ = trueProto;\r\n }\r\n}\r\n\r\n/** Error thrown when a timeout elapses. */\r\nexport class TimeoutError extends Error {\r\n // @ts-ignore: Intentionally unused.\r\n // eslint-disable-next-line @typescript-eslint/naming-convention\r\n private __proto__: Error;\r\n\r\n /** Constructs a new instance of {@link @microsoft/signalr.TimeoutError}.\r\n *\r\n * @param {string} errorMessage A descriptive error message.\r\n */\r\n constructor(errorMessage: string = \"A timeout occurred.\") {\r\n const trueProto = new.target.prototype;\r\n super(errorMessage);\r\n\r\n // Workaround issue in Typescript compiler\r\n // https://github.com/Microsoft/TypeScript/issues/13965#issuecomment-278570200\r\n this.__proto__ = trueProto;\r\n }\r\n}\r\n\r\n/** Error thrown when an action is aborted. */\r\nexport class AbortError extends Error {\r\n // @ts-ignore: Intentionally unused.\r\n // eslint-disable-next-line @typescript-eslint/naming-convention\r\n private __proto__: Error;\r\n\r\n /** Constructs a new instance of {@link AbortError}.\r\n *\r\n * @param {string} errorMessage A descriptive error message.\r\n */\r\n constructor(errorMessage: string = \"An abort occurred.\") {\r\n const trueProto = new.target.prototype;\r\n super(errorMessage);\r\n\r\n // Workaround issue in Typescript compiler\r\n // https://github.com/Microsoft/TypeScript/issues/13965#issuecomment-278570200\r\n this.__proto__ = trueProto;\r\n }\r\n}\r\n\r\n/** Error thrown when the selected transport is unsupported by the browser. */\r\n/** @private */\r\nexport class UnsupportedTransportError extends Error {\r\n // @ts-ignore: Intentionally unused.\r\n // eslint-disable-next-line @typescript-eslint/naming-convention\r\n private __proto__: Error;\r\n\r\n /** The {@link @microsoft/signalr.HttpTransportType} this error occurred on. */\r\n public transport: HttpTransportType;\r\n\r\n /** The type name of this error. */\r\n public errorType: string;\r\n\r\n /** Constructs a new instance of {@link @microsoft/signalr.UnsupportedTransportError}.\r\n *\r\n * @param {string} message A descriptive error message.\r\n * @param {HttpTransportType} transport The {@link @microsoft/signalr.HttpTransportType} this error occurred on.\r\n */\r\n constructor(message: string, transport: HttpTransportType) {\r\n const trueProto = new.target.prototype;\r\n super(message);\r\n this.transport = transport;\r\n this.errorType = 'UnsupportedTransportError';\r\n\r\n // Workaround issue in Typescript compiler\r\n // https://github.com/Microsoft/TypeScript/issues/13965#issuecomment-278570200\r\n this.__proto__ = trueProto;\r\n }\r\n}\r\n\r\n/** Error thrown when the selected transport is disabled by the browser. */\r\n/** @private */\r\nexport class DisabledTransportError extends Error {\r\n // @ts-ignore: Intentionally unused.\r\n // eslint-disable-next-line @typescript-eslint/naming-convention\r\n private __proto__: Error;\r\n\r\n /** The {@link @microsoft/signalr.HttpTransportType} this error occurred on. */\r\n public transport: HttpTransportType;\r\n\r\n /** The type name of this error. */\r\n public errorType: string;\r\n\r\n /** Constructs a new instance of {@link @microsoft/signalr.DisabledTransportError}.\r\n *\r\n * @param {string} message A descriptive error message.\r\n * @param {HttpTransportType} transport The {@link @microsoft/signalr.HttpTransportType} this error occurred on.\r\n */\r\n constructor(message: string, transport: HttpTransportType) {\r\n const trueProto = new.target.prototype;\r\n super(message);\r\n this.transport = transport;\r\n this.errorType = 'DisabledTransportError';\r\n\r\n // Workaround issue in Typescript compiler\r\n // https://github.com/Microsoft/TypeScript/issues/13965#issuecomment-278570200\r\n this.__proto__ = trueProto;\r\n }\r\n}\r\n\r\n/** Error thrown when the selected transport cannot be started. */\r\n/** @private */\r\nexport class FailedToStartTransportError extends Error {\r\n // @ts-ignore: Intentionally unused.\r\n // eslint-disable-next-line @typescript-eslint/naming-convention\r\n private __proto__: Error;\r\n\r\n /** The {@link @microsoft/signalr.HttpTransportType} this error occurred on. */\r\n public transport: HttpTransportType;\r\n\r\n /** The type name of this error. */\r\n public errorType: string;\r\n\r\n /** Constructs a new instance of {@link @microsoft/signalr.FailedToStartTransportError}.\r\n *\r\n * @param {string} message A descriptive error message.\r\n * @param {HttpTransportType} transport The {@link @microsoft/signalr.HttpTransportType} this error occurred on.\r\n */\r\n constructor(message: string, transport: HttpTransportType) {\r\n const trueProto = new.target.prototype;\r\n super(message);\r\n this.transport = transport;\r\n this.errorType = 'FailedToStartTransportError';\r\n\r\n // Workaround issue in Typescript compiler\r\n // https://github.com/Microsoft/TypeScript/issues/13965#issuecomment-278570200\r\n this.__proto__ = trueProto;\r\n }\r\n}\r\n\r\n/** Error thrown when the negotiation with the server failed to complete. */\r\n/** @private */\r\nexport class FailedToNegotiateWithServerError extends Error {\r\n // @ts-ignore: Intentionally unused.\r\n // eslint-disable-next-line @typescript-eslint/naming-convention\r\n private __proto__: Error;\r\n\r\n /** The type name of this error. */\r\n public errorType: string;\r\n\r\n /** Constructs a new instance of {@link @microsoft/signalr.FailedToNegotiateWithServerError}.\r\n *\r\n * @param {string} message A descriptive error message.\r\n */\r\n constructor(message: string) {\r\n const trueProto = new.target.prototype;\r\n super(message);\r\n this.errorType = 'FailedToNegotiateWithServerError';\r\n\r\n // Workaround issue in Typescript compiler\r\n // https://github.com/Microsoft/TypeScript/issues/13965#issuecomment-278570200\r\n this.__proto__ = trueProto;\r\n }\r\n}\r\n\r\n/** Error thrown when multiple errors have occurred. */\r\n/** @private */\r\nexport class AggregateErrors extends Error {\r\n // @ts-ignore: Intentionally unused.\r\n // eslint-disable-next-line @typescript-eslint/naming-convention\r\n private __proto__: Error;\r\n\r\n /** The collection of errors this error is aggregating. */\r\n public innerErrors: Error[];\r\n\r\n /** Constructs a new instance of {@link @microsoft/signalr.AggregateErrors}.\r\n *\r\n * @param {string} message A descriptive error message.\r\n * @param {Error[]} innerErrors The collection of errors this error is aggregating.\r\n */\r\n constructor(message: string, innerErrors: Error[]) {\r\n const trueProto = new.target.prototype;\r\n super(message);\r\n\r\n this.innerErrors = innerErrors;\r\n\r\n // Workaround issue in Typescript compiler\r\n // https://github.com/Microsoft/TypeScript/issues/13965#issuecomment-278570200\r\n this.__proto__ = trueProto;\r\n }\r\n}\r\n","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\n\r\nimport { AbortSignal } from \"./AbortController\";\r\nimport { MessageHeaders } from \"./IHubProtocol\";\r\n\r\n/** Represents an HTTP request. */\r\nexport interface HttpRequest {\r\n /** The HTTP method to use for the request. */\r\n method?: string;\r\n\r\n /** The URL for the request. */\r\n url?: string;\r\n\r\n /** The body content for the request. May be a string or an ArrayBuffer (for binary data). */\r\n content?: string | ArrayBuffer;\r\n\r\n /** An object describing headers to apply to the request. */\r\n headers?: MessageHeaders;\r\n\r\n /** The XMLHttpRequestResponseType to apply to the request. */\r\n responseType?: XMLHttpRequestResponseType;\r\n\r\n /** An AbortSignal that can be monitored for cancellation. */\r\n abortSignal?: AbortSignal;\r\n\r\n /** The time to wait for the request to complete before throwing a TimeoutError. Measured in milliseconds. */\r\n timeout?: number;\r\n\r\n /** This controls whether credentials such as cookies are sent in cross-site requests. */\r\n withCredentials?: boolean;\r\n}\r\n\r\n/** Represents an HTTP response. */\r\nexport class HttpResponse {\r\n /** Constructs a new instance of {@link @microsoft/signalr.HttpResponse} with the specified status code.\r\n *\r\n * @param {number} statusCode The status code of the response.\r\n */\r\n constructor(statusCode: number);\r\n\r\n /** Constructs a new instance of {@link @microsoft/signalr.HttpResponse} with the specified status code and message.\r\n *\r\n * @param {number} statusCode The status code of the response.\r\n * @param {string} statusText The status message of the response.\r\n */\r\n constructor(statusCode: number, statusText: string);\r\n\r\n /** Constructs a new instance of {@link @microsoft/signalr.HttpResponse} with the specified status code, message and string content.\r\n *\r\n * @param {number} statusCode The status code of the response.\r\n * @param {string} statusText The status message of the response.\r\n * @param {string} content The content of the response.\r\n */\r\n constructor(statusCode: number, statusText: string, content: string);\r\n\r\n /** Constructs a new instance of {@link @microsoft/signalr.HttpResponse} with the specified status code, message and binary content.\r\n *\r\n * @param {number} statusCode The status code of the response.\r\n * @param {string} statusText The status message of the response.\r\n * @param {ArrayBuffer} content The content of the response.\r\n */\r\n constructor(statusCode: number, statusText: string, content: ArrayBuffer);\r\n\r\n /** Constructs a new instance of {@link @microsoft/signalr.HttpResponse} with the specified status code, message and binary content.\r\n *\r\n * @param {number} statusCode The status code of the response.\r\n * @param {string} statusText The status message of the response.\r\n * @param {string | ArrayBuffer} content The content of the response.\r\n */\r\n constructor(statusCode: number, statusText: string, content: string | ArrayBuffer);\r\n constructor(\r\n public readonly statusCode: number,\r\n public readonly statusText?: string,\r\n public readonly content?: string | ArrayBuffer) {\r\n }\r\n}\r\n\r\n/** Abstraction over an HTTP client.\r\n *\r\n * This class provides an abstraction over an HTTP client so that a different implementation can be provided on different platforms.\r\n */\r\nexport abstract class HttpClient {\r\n /** Issues an HTTP GET request to the specified URL, returning a Promise that resolves with an {@link @microsoft/signalr.HttpResponse} representing the result.\r\n *\r\n * @param {string} url The URL for the request.\r\n * @returns {Promise} A Promise that resolves with an {@link @microsoft/signalr.HttpResponse} describing the response, or rejects with an Error indicating a failure.\r\n */\r\n public get(url: string): Promise;\r\n\r\n /** Issues an HTTP GET request to the specified URL, returning a Promise that resolves with an {@link @microsoft/signalr.HttpResponse} representing the result.\r\n *\r\n * @param {string} url The URL for the request.\r\n * @param {HttpRequest} options Additional options to configure the request. The 'url' field in this object will be overridden by the url parameter.\r\n * @returns {Promise} A Promise that resolves with an {@link @microsoft/signalr.HttpResponse} describing the response, or rejects with an Error indicating a failure.\r\n */\r\n public get(url: string, options: HttpRequest): Promise;\r\n public get(url: string, options?: HttpRequest): Promise {\r\n return this.send({\r\n ...options,\r\n method: \"GET\",\r\n url,\r\n });\r\n }\r\n\r\n /** Issues an HTTP POST request to the specified URL, returning a Promise that resolves with an {@link @microsoft/signalr.HttpResponse} representing the result.\r\n *\r\n * @param {string} url The URL for the request.\r\n * @returns {Promise} A Promise that resolves with an {@link @microsoft/signalr.HttpResponse} describing the response, or rejects with an Error indicating a failure.\r\n */\r\n public post(url: string): Promise;\r\n\r\n /** Issues an HTTP POST request to the specified URL, returning a Promise that resolves with an {@link @microsoft/signalr.HttpResponse} representing the result.\r\n *\r\n * @param {string} url The URL for the request.\r\n * @param {HttpRequest} options Additional options to configure the request. The 'url' field in this object will be overridden by the url parameter.\r\n * @returns {Promise} A Promise that resolves with an {@link @microsoft/signalr.HttpResponse} describing the response, or rejects with an Error indicating a failure.\r\n */\r\n public post(url: string, options: HttpRequest): Promise;\r\n public post(url: string, options?: HttpRequest): Promise {\r\n return this.send({\r\n ...options,\r\n method: \"POST\",\r\n url,\r\n });\r\n }\r\n\r\n /** Issues an HTTP DELETE request to the specified URL, returning a Promise that resolves with an {@link @microsoft/signalr.HttpResponse} representing the result.\r\n *\r\n * @param {string} url The URL for the request.\r\n * @returns {Promise} A Promise that resolves with an {@link @microsoft/signalr.HttpResponse} describing the response, or rejects with an Error indicating a failure.\r\n */\r\n public delete(url: string): Promise;\r\n\r\n /** Issues an HTTP DELETE request to the specified URL, returning a Promise that resolves with an {@link @microsoft/signalr.HttpResponse} representing the result.\r\n *\r\n * @param {string} url The URL for the request.\r\n * @param {HttpRequest} options Additional options to configure the request. The 'url' field in this object will be overridden by the url parameter.\r\n * @returns {Promise} A Promise that resolves with an {@link @microsoft/signalr.HttpResponse} describing the response, or rejects with an Error indicating a failure.\r\n */\r\n public delete(url: string, options: HttpRequest): Promise;\r\n public delete(url: string, options?: HttpRequest): Promise {\r\n return this.send({\r\n ...options,\r\n method: \"DELETE\",\r\n url,\r\n });\r\n }\r\n\r\n /** Issues an HTTP request to the specified URL, returning a {@link Promise} that resolves with an {@link @microsoft/signalr.HttpResponse} representing the result.\r\n *\r\n * @param {HttpRequest} request An {@link @microsoft/signalr.HttpRequest} describing the request to send.\r\n * @returns {Promise} A Promise that resolves with an HttpResponse describing the response, or rejects with an Error indicating a failure.\r\n */\r\n public abstract send(request: HttpRequest): Promise;\r\n\r\n /** Gets all cookies that apply to the specified URL.\r\n *\r\n * @param url The URL that the cookies are valid for.\r\n * @returns {string} A string containing all the key-value cookie pairs for the specified URL.\r\n */\r\n // @ts-ignore\r\n public getCookieString(url: string): string {\r\n return \"\";\r\n }\r\n}\r\n","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\n\r\nimport { ILogger, LogLevel } from \"./ILogger\";\r\n\r\n/** A logger that does nothing when log messages are sent to it. */\r\nexport class NullLogger implements ILogger {\r\n /** The singleton instance of the {@link @microsoft/signalr.NullLogger}. */\r\n public static instance: ILogger = new NullLogger();\r\n\r\n private constructor() {}\r\n\r\n /** @inheritDoc */\r\n // eslint-disable-next-line\r\n public log(_logLevel: LogLevel, _message: string): void {\r\n }\r\n}\r\n","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\n\r\nimport { HttpClient } from \"./HttpClient\";\r\nimport { ILogger, LogLevel } from \"./ILogger\";\r\nimport { NullLogger } from \"./Loggers\";\r\nimport { IStreamSubscriber, ISubscription } from \"./Stream\";\r\nimport { Subject } from \"./Subject\";\r\nimport { IHttpConnectionOptions } from \"./IHttpConnectionOptions\";\r\n\r\n// Version token that will be replaced by the prepack command\r\n/** The version of the SignalR client. */\r\n\r\nexport const VERSION: string = \"0.0.0-DEV_BUILD\";\r\n/** @private */\r\nexport class Arg {\r\n public static isRequired(val: any, name: string): void {\r\n if (val === null || val === undefined) {\r\n throw new Error(`The '${name}' argument is required.`);\r\n }\r\n }\r\n public static isNotEmpty(val: string, name: string): void {\r\n if (!val || val.match(/^\\s*$/)) {\r\n throw new Error(`The '${name}' argument should not be empty.`);\r\n }\r\n }\r\n\r\n public static isIn(val: any, values: any, name: string): void {\r\n // TypeScript enums have keys for **both** the name and the value of each enum member on the type itself.\r\n if (!(val in values)) {\r\n throw new Error(`Unknown ${name} value: ${val}.`);\r\n }\r\n }\r\n}\r\n\r\n/** @private */\r\nexport class Platform {\r\n // react-native has a window but no document so we should check both\r\n public static get isBrowser(): boolean {\r\n return typeof window === \"object\" && typeof window.document === \"object\";\r\n }\r\n\r\n // WebWorkers don't have a window object so the isBrowser check would fail\r\n public static get isWebWorker(): boolean {\r\n return typeof self === \"object\" && \"importScripts\" in self;\r\n }\r\n\r\n // react-native has a window but no document\r\n static get isReactNative(): boolean {\r\n return typeof window === \"object\" && typeof window.document === \"undefined\";\r\n }\r\n\r\n // Node apps shouldn't have a window object, but WebWorkers don't either\r\n // so we need to check for both WebWorker and window\r\n public static get isNode(): boolean {\r\n return !this.isBrowser && !this.isWebWorker && !this.isReactNative;\r\n }\r\n}\r\n\r\n/** @private */\r\nexport function getDataDetail(data: any, includeContent: boolean): string {\r\n let detail = \"\";\r\n if (isArrayBuffer(data)) {\r\n detail = `Binary data of length ${data.byteLength}`;\r\n if (includeContent) {\r\n detail += `. Content: '${formatArrayBuffer(data)}'`;\r\n }\r\n } else if (typeof data === \"string\") {\r\n detail = `String data of length ${data.length}`;\r\n if (includeContent) {\r\n detail += `. Content: '${data}'`;\r\n }\r\n }\r\n return detail;\r\n}\r\n\r\n/** @private */\r\nexport function formatArrayBuffer(data: ArrayBuffer): string {\r\n const view = new Uint8Array(data);\r\n\r\n // Uint8Array.map only supports returning another Uint8Array?\r\n let str = \"\";\r\n view.forEach((num) => {\r\n const pad = num < 16 ? \"0\" : \"\";\r\n str += `0x${pad}${num.toString(16)} `;\r\n });\r\n\r\n // Trim of trailing space.\r\n return str.substr(0, str.length - 1);\r\n}\r\n\r\n// Also in signalr-protocol-msgpack/Utils.ts\r\n/** @private */\r\nexport function isArrayBuffer(val: any): val is ArrayBuffer {\r\n return val && typeof ArrayBuffer !== \"undefined\" &&\r\n (val instanceof ArrayBuffer ||\r\n // Sometimes we get an ArrayBuffer that doesn't satisfy instanceof\r\n (val.constructor && val.constructor.name === \"ArrayBuffer\"));\r\n}\r\n\r\n/** @private */\r\nexport async function sendMessage(logger: ILogger, transportName: string, httpClient: HttpClient, url: string,\r\n content: string | ArrayBuffer, options: IHttpConnectionOptions): Promise {\r\n const headers: {[k: string]: string} = {};\r\n\r\n const [name, value] = getUserAgentHeader();\r\n headers[name] = value;\r\n\r\n logger.log(LogLevel.Trace, `(${transportName} transport) sending data. ${getDataDetail(content, options.logMessageContent!)}.`);\r\n\r\n const responseType = isArrayBuffer(content) ? \"arraybuffer\" : \"text\";\r\n const response = await httpClient.post(url, {\r\n content,\r\n headers: { ...headers, ...options.headers},\r\n responseType,\r\n timeout: options.timeout,\r\n withCredentials: options.withCredentials,\r\n });\r\n\r\n logger.log(LogLevel.Trace, `(${transportName} transport) request complete. Response status: ${response.statusCode}.`);\r\n}\r\n\r\n/** @private */\r\nexport function createLogger(logger?: ILogger | LogLevel): ILogger {\r\n if (logger === undefined) {\r\n return new ConsoleLogger(LogLevel.Information);\r\n }\r\n\r\n if (logger === null) {\r\n return NullLogger.instance;\r\n }\r\n\r\n if ((logger as ILogger).log !== undefined) {\r\n return logger as ILogger;\r\n }\r\n\r\n return new ConsoleLogger(logger as LogLevel);\r\n}\r\n\r\n/** @private */\r\nexport class SubjectSubscription implements ISubscription {\r\n private _subject: Subject;\r\n private _observer: IStreamSubscriber;\r\n\r\n constructor(subject: Subject, observer: IStreamSubscriber) {\r\n this._subject = subject;\r\n this._observer = observer;\r\n }\r\n\r\n public dispose(): void {\r\n const index: number = this._subject.observers.indexOf(this._observer);\r\n if (index > -1) {\r\n this._subject.observers.splice(index, 1);\r\n }\r\n\r\n if (this._subject.observers.length === 0 && this._subject.cancelCallback) {\r\n this._subject.cancelCallback().catch((_) => { });\r\n }\r\n }\r\n}\r\n\r\n/** @private */\r\nexport class ConsoleLogger implements ILogger {\r\n private readonly _minLevel: LogLevel;\r\n\r\n // Public for testing purposes.\r\n public out: {\r\n error(message: any): void,\r\n warn(message: any): void,\r\n info(message: any): void,\r\n log(message: any): void,\r\n };\r\n\r\n constructor(minimumLogLevel: LogLevel) {\r\n this._minLevel = minimumLogLevel;\r\n this.out = console;\r\n }\r\n\r\n public log(logLevel: LogLevel, message: string): void {\r\n if (logLevel >= this._minLevel) {\r\n const msg = `[${new Date().toISOString()}] ${LogLevel[logLevel]}: ${message}`;\r\n switch (logLevel) {\r\n case LogLevel.Critical:\r\n case LogLevel.Error:\r\n this.out.error(msg);\r\n break;\r\n case LogLevel.Warning:\r\n this.out.warn(msg);\r\n break;\r\n case LogLevel.Information:\r\n this.out.info(msg);\r\n break;\r\n default:\r\n // console.debug only goes to attached debuggers in Node, so we use console.log for Trace and Debug\r\n this.out.log(msg);\r\n break;\r\n }\r\n }\r\n }\r\n}\r\n\r\n/** @private */\r\nexport function getUserAgentHeader(): [string, string] {\r\n let userAgentHeaderName = \"X-SignalR-User-Agent\";\r\n if (Platform.isNode) {\r\n userAgentHeaderName = \"User-Agent\";\r\n }\r\n return [ userAgentHeaderName, constructUserAgent(VERSION, getOsName(), getRuntime(), getRuntimeVersion()) ];\r\n}\r\n\r\n/** @private */\r\nexport function constructUserAgent(version: string, os: string, runtime: string, runtimeVersion: string | undefined): string {\r\n // Microsoft SignalR/[Version] ([Detailed Version]; [Operating System]; [Runtime]; [Runtime Version])\r\n let userAgent: string = \"Microsoft SignalR/\";\r\n\r\n const majorAndMinor = version.split(\".\");\r\n userAgent += `${majorAndMinor[0]}.${majorAndMinor[1]}`;\r\n userAgent += ` (${version}; `;\r\n\r\n if (os && os !== \"\") {\r\n userAgent += `${os}; `;\r\n } else {\r\n userAgent += \"Unknown OS; \";\r\n }\r\n\r\n userAgent += `${runtime}`;\r\n\r\n if (runtimeVersion) {\r\n userAgent += `; ${runtimeVersion}`;\r\n } else {\r\n userAgent += \"; Unknown Runtime Version\";\r\n }\r\n\r\n userAgent += \")\";\r\n return userAgent;\r\n}\r\n\r\n// eslint-disable-next-line spaced-comment\r\n/*#__PURE__*/ function getOsName(): string {\r\n if (Platform.isNode) {\r\n switch (process.platform) {\r\n case \"win32\":\r\n return \"Windows NT\";\r\n case \"darwin\":\r\n return \"macOS\";\r\n case \"linux\":\r\n return \"Linux\";\r\n default:\r\n return process.platform;\r\n }\r\n } else {\r\n return \"\";\r\n }\r\n}\r\n\r\n// eslint-disable-next-line spaced-comment\r\n/*#__PURE__*/ function getRuntimeVersion(): string | undefined {\r\n if (Platform.isNode) {\r\n return process.versions.node;\r\n }\r\n return undefined;\r\n}\r\n\r\nfunction getRuntime(): string {\r\n if (Platform.isNode) {\r\n return \"NodeJS\";\r\n } else {\r\n return \"Browser\";\r\n }\r\n}\r\n\r\n/** @private */\r\nexport function getErrorString(e: any): string {\r\n if (e.stack) {\r\n return e.stack;\r\n } else if (e.message) {\r\n return e.message;\r\n }\r\n return `${e}`;\r\n}\r\n\r\n/** @private */\r\nexport function getGlobalThis(): unknown {\r\n // globalThis is semi-new and not available in Node until v12\r\n if (typeof globalThis !== \"undefined\") {\r\n return globalThis;\r\n }\r\n if (typeof self !== \"undefined\") {\r\n return self;\r\n }\r\n if (typeof window !== \"undefined\") {\r\n return window;\r\n }\r\n if (typeof global !== \"undefined\") {\r\n return global;\r\n }\r\n throw new Error(\"could not find global\");\r\n}","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\n\r\n// @ts-ignore: This will be removed from built files and is here to make the types available during dev work\r\nimport { CookieJar } from \"@types/tough-cookie\";\r\n\r\nimport { AbortError, HttpError, TimeoutError } from \"./Errors\";\r\nimport { HttpClient, HttpRequest, HttpResponse } from \"./HttpClient\";\r\nimport { ILogger, LogLevel } from \"./ILogger\";\r\nimport { Platform, getGlobalThis, isArrayBuffer } from \"./Utils\";\r\n\r\nexport class FetchHttpClient extends HttpClient {\r\n private readonly _abortControllerType: { prototype: AbortController, new(): AbortController };\r\n private readonly _fetchType: (input: RequestInfo, init?: RequestInit) => Promise;\r\n private readonly _jar?: CookieJar;\r\n\r\n private readonly _logger: ILogger;\r\n\r\n public constructor(logger: ILogger) {\r\n super();\r\n this._logger = logger;\r\n\r\n if (typeof fetch === \"undefined\") {\r\n // In order to ignore the dynamic require in webpack builds we need to do this magic\r\n // @ts-ignore: TS doesn't know about these names\r\n const requireFunc = typeof __webpack_require__ === \"function\" ? __non_webpack_require__ : require;\r\n\r\n // Cookies aren't automatically handled in Node so we need to add a CookieJar to preserve cookies across requests\r\n this._jar = new (requireFunc(\"tough-cookie\")).CookieJar();\r\n this._fetchType = requireFunc(\"node-fetch\");\r\n\r\n // node-fetch doesn't have a nice API for getting and setting cookies\r\n // fetch-cookie will wrap a fetch implementation with a default CookieJar or a provided one\r\n this._fetchType = requireFunc(\"fetch-cookie\")(this._fetchType, this._jar);\r\n } else {\r\n this._fetchType = fetch.bind(getGlobalThis());\r\n }\r\n if (typeof AbortController === \"undefined\") {\r\n // In order to ignore the dynamic require in webpack builds we need to do this magic\r\n // @ts-ignore: TS doesn't know about these names\r\n const requireFunc = typeof __webpack_require__ === \"function\" ? __non_webpack_require__ : require;\r\n\r\n // Node needs EventListener methods on AbortController which our custom polyfill doesn't provide\r\n this._abortControllerType = requireFunc(\"abort-controller\");\r\n } else {\r\n this._abortControllerType = AbortController;\r\n }\r\n }\r\n\r\n /** @inheritDoc */\r\n public async send(request: HttpRequest): Promise {\r\n // Check that abort was not signaled before calling send\r\n if (request.abortSignal && request.abortSignal.aborted) {\r\n throw new AbortError();\r\n }\r\n\r\n if (!request.method) {\r\n throw new Error(\"No method defined.\");\r\n }\r\n if (!request.url) {\r\n throw new Error(\"No url defined.\");\r\n }\r\n\r\n const abortController = new this._abortControllerType();\r\n\r\n let error: any;\r\n // Hook our abortSignal into the abort controller\r\n if (request.abortSignal) {\r\n request.abortSignal.onabort = () => {\r\n abortController.abort();\r\n error = new AbortError();\r\n };\r\n }\r\n\r\n // If a timeout has been passed in, setup a timeout to call abort\r\n // Type needs to be any to fit window.setTimeout and NodeJS.setTimeout\r\n let timeoutId: any = null;\r\n if (request.timeout) {\r\n const msTimeout = request.timeout!;\r\n timeoutId = setTimeout(() => {\r\n abortController.abort();\r\n this._logger.log(LogLevel.Warning, `Timeout from HTTP request.`);\r\n error = new TimeoutError();\r\n }, msTimeout);\r\n }\r\n\r\n if (request.content === \"\") {\r\n request.content = undefined;\r\n }\r\n if (request.content) {\r\n // Explicitly setting the Content-Type header for React Native on Android platform.\r\n request.headers = request.headers || {};\r\n if (isArrayBuffer(request.content)) {\r\n request.headers[\"Content-Type\"] = \"application/octet-stream\";\r\n } else {\r\n request.headers[\"Content-Type\"] = \"text/plain;charset=UTF-8\";\r\n }\r\n }\r\n\r\n let response: Response;\r\n try {\r\n response = await this._fetchType(request.url!, {\r\n body: request.content,\r\n cache: \"no-cache\",\r\n credentials: request.withCredentials === true ? \"include\" : \"same-origin\",\r\n headers: {\r\n \"X-Requested-With\": \"XMLHttpRequest\",\r\n ...request.headers,\r\n },\r\n method: request.method!,\r\n mode: \"cors\",\r\n redirect: \"follow\",\r\n signal: abortController.signal,\r\n });\r\n } catch (e) {\r\n if (error) {\r\n throw error;\r\n }\r\n this._logger.log(\r\n LogLevel.Warning,\r\n `Error from HTTP request. ${e}.`,\r\n );\r\n throw e;\r\n } finally {\r\n if (timeoutId) {\r\n clearTimeout(timeoutId);\r\n }\r\n if (request.abortSignal) {\r\n request.abortSignal.onabort = null;\r\n }\r\n }\r\n\r\n if (!response.ok) {\r\n const errorMessage = await deserializeContent(response, \"text\") as string;\r\n throw new HttpError(errorMessage || response.statusText, response.status);\r\n }\r\n\r\n const content = deserializeContent(response, request.responseType);\r\n const payload = await content;\r\n\r\n return new HttpResponse(\r\n response.status,\r\n response.statusText,\r\n payload,\r\n );\r\n }\r\n\r\n public getCookieString(url: string): string {\r\n let cookies: string = \"\";\r\n if (Platform.isNode && this._jar) {\r\n // @ts-ignore: unused variable\r\n this._jar.getCookies(url, (e, c) => cookies = c.join(\"; \"));\r\n }\r\n return cookies;\r\n }\r\n}\r\n\r\nfunction deserializeContent(response: Response, responseType?: XMLHttpRequestResponseType): Promise {\r\n let content;\r\n switch (responseType) {\r\n case \"arraybuffer\":\r\n content = response.arrayBuffer();\r\n break;\r\n case \"text\":\r\n content = response.text();\r\n break;\r\n case \"blob\":\r\n case \"document\":\r\n case \"json\":\r\n throw new Error(`${responseType} is not supported.`);\r\n default:\r\n content = response.text();\r\n break;\r\n }\r\n\r\n return content;\r\n}\r\n","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\n\r\nimport { AbortError, HttpError, TimeoutError } from \"./Errors\";\r\nimport { HttpClient, HttpRequest, HttpResponse } from \"./HttpClient\";\r\nimport { ILogger, LogLevel } from \"./ILogger\";\r\nimport { isArrayBuffer } from \"./Utils\";\r\n\r\nexport class XhrHttpClient extends HttpClient {\r\n private readonly _logger: ILogger;\r\n\r\n public constructor(logger: ILogger) {\r\n super();\r\n this._logger = logger;\r\n }\r\n\r\n /** @inheritDoc */\r\n public send(request: HttpRequest): Promise {\r\n // Check that abort was not signaled before calling send\r\n if (request.abortSignal && request.abortSignal.aborted) {\r\n return Promise.reject(new AbortError());\r\n }\r\n\r\n if (!request.method) {\r\n return Promise.reject(new Error(\"No method defined.\"));\r\n }\r\n if (!request.url) {\r\n return Promise.reject(new Error(\"No url defined.\"));\r\n }\r\n\r\n return new Promise((resolve, reject) => {\r\n const xhr = new XMLHttpRequest();\r\n\r\n xhr.open(request.method!, request.url!, true);\r\n xhr.withCredentials = request.withCredentials === undefined ? true : request.withCredentials;\r\n xhr.setRequestHeader(\"X-Requested-With\", \"XMLHttpRequest\");\r\n if (request.content === \"\") {\r\n request.content = undefined;\r\n }\r\n if (request.content) {\r\n // Explicitly setting the Content-Type header for React Native on Android platform.\r\n if (isArrayBuffer(request.content)) {\r\n xhr.setRequestHeader(\"Content-Type\", \"application/octet-stream\");\r\n } else {\r\n xhr.setRequestHeader(\"Content-Type\", \"text/plain;charset=UTF-8\");\r\n }\r\n }\r\n\r\n const headers = request.headers;\r\n if (headers) {\r\n Object.keys(headers)\r\n .forEach((header) => {\r\n xhr.setRequestHeader(header, headers[header]);\r\n });\r\n }\r\n\r\n if (request.responseType) {\r\n xhr.responseType = request.responseType;\r\n }\r\n\r\n if (request.abortSignal) {\r\n request.abortSignal.onabort = () => {\r\n xhr.abort();\r\n reject(new AbortError());\r\n };\r\n }\r\n\r\n if (request.timeout) {\r\n xhr.timeout = request.timeout;\r\n }\r\n\r\n xhr.onload = () => {\r\n if (request.abortSignal) {\r\n request.abortSignal.onabort = null;\r\n }\r\n\r\n if (xhr.status >= 200 && xhr.status < 300) {\r\n resolve(new HttpResponse(xhr.status, xhr.statusText, xhr.response || xhr.responseText));\r\n } else {\r\n reject(new HttpError(xhr.response || xhr.responseText || xhr.statusText, xhr.status));\r\n }\r\n };\r\n\r\n xhr.onerror = () => {\r\n this._logger.log(LogLevel.Warning, `Error from HTTP request. ${xhr.status}: ${xhr.statusText}.`);\r\n reject(new HttpError(xhr.statusText, xhr.status));\r\n };\r\n\r\n xhr.ontimeout = () => {\r\n this._logger.log(LogLevel.Warning, `Timeout from HTTP request.`);\r\n reject(new TimeoutError());\r\n };\r\n\r\n xhr.send(request.content);\r\n });\r\n }\r\n}\r\n","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\n\r\nimport { AbortError } from \"./Errors\";\r\nimport { FetchHttpClient } from \"./FetchHttpClient\";\r\nimport { HttpClient, HttpRequest, HttpResponse } from \"./HttpClient\";\r\nimport { ILogger } from \"./ILogger\";\r\nimport { Platform } from \"./Utils\";\r\nimport { XhrHttpClient } from \"./XhrHttpClient\";\r\n\r\n/** Default implementation of {@link @microsoft/signalr.HttpClient}. */\r\nexport class DefaultHttpClient extends HttpClient {\r\n private readonly _httpClient: HttpClient;\r\n\r\n /** Creates a new instance of the {@link @microsoft/signalr.DefaultHttpClient}, using the provided {@link @microsoft/signalr.ILogger} to log messages. */\r\n public constructor(logger: ILogger) {\r\n super();\r\n\r\n if (typeof fetch !== \"undefined\" || Platform.isNode) {\r\n this._httpClient = new FetchHttpClient(logger);\r\n } else if (typeof XMLHttpRequest !== \"undefined\") {\r\n this._httpClient = new XhrHttpClient(logger);\r\n } else {\r\n throw new Error(\"No usable HttpClient found.\");\r\n }\r\n }\r\n\r\n /** @inheritDoc */\r\n public send(request: HttpRequest): Promise {\r\n // Check that abort was not signaled before calling send\r\n if (request.abortSignal && request.abortSignal.aborted) {\r\n return Promise.reject(new AbortError());\r\n }\r\n\r\n if (!request.method) {\r\n return Promise.reject(new Error(\"No method defined.\"));\r\n }\r\n if (!request.url) {\r\n return Promise.reject(new Error(\"No url defined.\"));\r\n }\r\n\r\n return this._httpClient.send(request);\r\n }\r\n\r\n public getCookieString(url: string): string {\r\n return this._httpClient.getCookieString(url);\r\n }\r\n}\r\n","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\n\r\n// Not exported from index\r\n/** @private */\r\nexport class TextMessageFormat {\r\n public static RecordSeparatorCode = 0x1e;\r\n public static RecordSeparator = String.fromCharCode(TextMessageFormat.RecordSeparatorCode);\r\n\r\n public static write(output: string): string {\r\n return `${output}${TextMessageFormat.RecordSeparator}`;\r\n }\r\n\r\n public static parse(input: string): string[] {\r\n if (input[input.length - 1] !== TextMessageFormat.RecordSeparator) {\r\n throw new Error(\"Message is incomplete.\");\r\n }\r\n\r\n const messages = input.split(TextMessageFormat.RecordSeparator);\r\n messages.pop();\r\n return messages;\r\n }\r\n}\r\n","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\n\r\nimport { TextMessageFormat } from \"./TextMessageFormat\";\r\nimport { isArrayBuffer } from \"./Utils\";\r\n\r\n/** @private */\r\nexport interface HandshakeRequestMessage {\r\n readonly protocol: string;\r\n readonly version: number;\r\n}\r\n\r\n/** @private */\r\nexport interface HandshakeResponseMessage {\r\n readonly error: string;\r\n readonly minorVersion: number;\r\n}\r\n\r\n/** @private */\r\nexport class HandshakeProtocol {\r\n // Handshake request is always JSON\r\n public writeHandshakeRequest(handshakeRequest: HandshakeRequestMessage): string {\r\n return TextMessageFormat.write(JSON.stringify(handshakeRequest));\r\n }\r\n\r\n public parseHandshakeResponse(data: any): [any, HandshakeResponseMessage] {\r\n let messageData: string;\r\n let remainingData: any;\r\n\r\n if (isArrayBuffer(data)) {\r\n // Format is binary but still need to read JSON text from handshake response\r\n const binaryData = new Uint8Array(data);\r\n const separatorIndex = binaryData.indexOf(TextMessageFormat.RecordSeparatorCode);\r\n if (separatorIndex === -1) {\r\n throw new Error(\"Message is incomplete.\");\r\n }\r\n\r\n // content before separator is handshake response\r\n // optional content after is additional messages\r\n const responseLength = separatorIndex + 1;\r\n messageData = String.fromCharCode.apply(null, Array.prototype.slice.call(binaryData.slice(0, responseLength)));\r\n remainingData = (binaryData.byteLength > responseLength) ? binaryData.slice(responseLength).buffer : null;\r\n } else {\r\n const textData: string = data;\r\n const separatorIndex = textData.indexOf(TextMessageFormat.RecordSeparator);\r\n if (separatorIndex === -1) {\r\n throw new Error(\"Message is incomplete.\");\r\n }\r\n\r\n // content before separator is handshake response\r\n // optional content after is additional messages\r\n const responseLength = separatorIndex + 1;\r\n messageData = textData.substring(0, responseLength);\r\n remainingData = (textData.length > responseLength) ? textData.substring(responseLength) : null;\r\n }\r\n\r\n // At this point we should have just the single handshake message\r\n const messages = TextMessageFormat.parse(messageData);\r\n const response = JSON.parse(messages[0]);\r\n if (response.type) {\r\n throw new Error(\"Expected a handshake response from the server.\");\r\n }\r\n const responseMessage: HandshakeResponseMessage = response;\r\n\r\n // multiple messages could have arrived with handshake\r\n // return additional data to be parsed as usual, or null if all parsed\r\n return [remainingData, responseMessage];\r\n }\r\n}\r\n","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\n\r\nimport { ILogger } from \"./ILogger\";\r\nimport { TransferFormat } from \"./ITransport\";\r\n\r\n/** Defines the type of a Hub Message. */\r\nexport enum MessageType {\r\n /** Indicates the message is an Invocation message and implements the {@link @microsoft/signalr.InvocationMessage} interface. */\r\n Invocation = 1,\r\n /** Indicates the message is a StreamItem message and implements the {@link @microsoft/signalr.StreamItemMessage} interface. */\r\n StreamItem = 2,\r\n /** Indicates the message is a Completion message and implements the {@link @microsoft/signalr.CompletionMessage} interface. */\r\n Completion = 3,\r\n /** Indicates the message is a Stream Invocation message and implements the {@link @microsoft/signalr.StreamInvocationMessage} interface. */\r\n StreamInvocation = 4,\r\n /** Indicates the message is a Cancel Invocation message and implements the {@link @microsoft/signalr.CancelInvocationMessage} interface. */\r\n CancelInvocation = 5,\r\n /** Indicates the message is a Ping message and implements the {@link @microsoft/signalr.PingMessage} interface. */\r\n Ping = 6,\r\n /** Indicates the message is a Close message and implements the {@link @microsoft/signalr.CloseMessage} interface. */\r\n Close = 7,\r\n}\r\n\r\n/** Defines a dictionary of string keys and string values representing headers attached to a Hub message. */\r\nexport interface MessageHeaders {\r\n /** Gets or sets the header with the specified key. */\r\n [key: string]: string;\r\n}\r\n\r\n/** Union type of all known Hub messages. */\r\nexport type HubMessage =\r\n InvocationMessage |\r\n StreamInvocationMessage |\r\n StreamItemMessage |\r\n CompletionMessage |\r\n CancelInvocationMessage |\r\n PingMessage |\r\n CloseMessage;\r\n\r\n/** Defines properties common to all Hub messages. */\r\nexport interface HubMessageBase {\r\n /** A {@link @microsoft/signalr.MessageType} value indicating the type of this message. */\r\n readonly type: MessageType;\r\n}\r\n\r\n/** Defines properties common to all Hub messages relating to a specific invocation. */\r\nexport interface HubInvocationMessage extends HubMessageBase {\r\n /** A {@link @microsoft/signalr.MessageHeaders} dictionary containing headers attached to the message. */\r\n readonly headers?: MessageHeaders;\r\n /** The ID of the invocation relating to this message.\r\n *\r\n * This is expected to be present for {@link @microsoft/signalr.StreamInvocationMessage} and {@link @microsoft/signalr.CompletionMessage}. It may\r\n * be 'undefined' for an {@link @microsoft/signalr.InvocationMessage} if the sender does not expect a response.\r\n */\r\n readonly invocationId?: string;\r\n}\r\n\r\n/** A hub message representing a non-streaming invocation. */\r\nexport interface InvocationMessage extends HubInvocationMessage {\r\n /** @inheritDoc */\r\n readonly type: MessageType.Invocation;\r\n /** The target method name. */\r\n readonly target: string;\r\n /** The target method arguments. */\r\n readonly arguments: any[];\r\n /** The target methods stream IDs. */\r\n readonly streamIds?: string[];\r\n}\r\n\r\n/** A hub message representing a streaming invocation. */\r\nexport interface StreamInvocationMessage extends HubInvocationMessage {\r\n /** @inheritDoc */\r\n readonly type: MessageType.StreamInvocation;\r\n\r\n /** The invocation ID. */\r\n readonly invocationId: string;\r\n /** The target method name. */\r\n readonly target: string;\r\n /** The target method arguments. */\r\n readonly arguments: any[];\r\n /** The target methods stream IDs. */\r\n readonly streamIds?: string[];\r\n}\r\n\r\n/** A hub message representing a single item produced as part of a result stream. */\r\nexport interface StreamItemMessage extends HubInvocationMessage {\r\n /** @inheritDoc */\r\n readonly type: MessageType.StreamItem;\r\n\r\n /** The invocation ID. */\r\n readonly invocationId: string;\r\n\r\n /** The item produced by the server. */\r\n readonly item?: any;\r\n}\r\n\r\n/** A hub message representing the result of an invocation. */\r\nexport interface CompletionMessage extends HubInvocationMessage {\r\n /** @inheritDoc */\r\n readonly type: MessageType.Completion;\r\n /** The invocation ID. */\r\n readonly invocationId: string;\r\n /** The error produced by the invocation, if any.\r\n *\r\n * Either {@link @microsoft/signalr.CompletionMessage.error} or {@link @microsoft/signalr.CompletionMessage.result} must be defined, but not both.\r\n */\r\n readonly error?: string;\r\n /** The result produced by the invocation, if any.\r\n *\r\n * Either {@link @microsoft/signalr.CompletionMessage.error} or {@link @microsoft/signalr.CompletionMessage.result} must be defined, but not both.\r\n */\r\n readonly result?: any;\r\n}\r\n\r\n/** A hub message indicating that the sender is still active. */\r\nexport interface PingMessage extends HubMessageBase {\r\n /** @inheritDoc */\r\n readonly type: MessageType.Ping;\r\n}\r\n\r\n/** A hub message indicating that the sender is closing the connection.\r\n *\r\n * If {@link @microsoft/signalr.CloseMessage.error} is defined, the sender is closing the connection due to an error.\r\n */\r\nexport interface CloseMessage extends HubMessageBase {\r\n /** @inheritDoc */\r\n readonly type: MessageType.Close;\r\n /** The error that triggered the close, if any.\r\n *\r\n * If this property is undefined, the connection was closed normally and without error.\r\n */\r\n readonly error?: string;\r\n\r\n /** If true, clients with automatic reconnects enabled should attempt to reconnect after receiving the CloseMessage. Otherwise, they should not. */\r\n readonly allowReconnect?: boolean;\r\n}\r\n\r\n/** A hub message sent to request that a streaming invocation be canceled. */\r\nexport interface CancelInvocationMessage extends HubInvocationMessage {\r\n /** @inheritDoc */\r\n readonly type: MessageType.CancelInvocation;\r\n /** The invocation ID. */\r\n readonly invocationId: string;\r\n}\r\n\r\n/** A protocol abstraction for communicating with SignalR Hubs. */\r\nexport interface IHubProtocol {\r\n /** The name of the protocol. This is used by SignalR to resolve the protocol between the client and server. */\r\n readonly name: string;\r\n /** The version of the protocol. */\r\n readonly version: number;\r\n /** The {@link @microsoft/signalr.TransferFormat} of the protocol. */\r\n readonly transferFormat: TransferFormat;\r\n\r\n /** Creates an array of {@link @microsoft/signalr.HubMessage} objects from the specified serialized representation.\r\n *\r\n * If {@link @microsoft/signalr.IHubProtocol.transferFormat} is 'Text', the `input` parameter must be a string, otherwise it must be an ArrayBuffer.\r\n *\r\n * @param {string | ArrayBuffer} input A string or ArrayBuffer containing the serialized representation.\r\n * @param {ILogger} logger A logger that will be used to log messages that occur during parsing.\r\n */\r\n parseMessages(input: string | ArrayBuffer, logger: ILogger): HubMessage[];\r\n\r\n /** Writes the specified {@link @microsoft/signalr.HubMessage} to a string or ArrayBuffer and returns it.\r\n *\r\n * If {@link @microsoft/signalr.IHubProtocol.transferFormat} is 'Text', the result of this method will be a string, otherwise it will be an ArrayBuffer.\r\n *\r\n * @param {HubMessage} message The message to write.\r\n * @returns {string | ArrayBuffer} A string or ArrayBuffer containing the serialized representation of the message.\r\n */\r\n writeMessage(message: HubMessage): string | ArrayBuffer;\r\n}\r\n","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\n\r\nimport { IStreamResult, IStreamSubscriber, ISubscription } from \"./Stream\";\r\nimport { SubjectSubscription } from \"./Utils\";\r\n\r\n/** Stream implementation to stream items to the server. */\r\nexport class Subject implements IStreamResult {\r\n /** @internal */\r\n public observers: IStreamSubscriber[];\r\n\r\n /** @internal */\r\n public cancelCallback?: () => Promise;\r\n\r\n constructor() {\r\n this.observers = [];\r\n }\r\n\r\n public next(item: T): void {\r\n for (const observer of this.observers) {\r\n observer.next(item);\r\n }\r\n }\r\n\r\n public error(err: any): void {\r\n for (const observer of this.observers) {\r\n if (observer.error) {\r\n observer.error(err);\r\n }\r\n }\r\n }\r\n\r\n public complete(): void {\r\n for (const observer of this.observers) {\r\n if (observer.complete) {\r\n observer.complete();\r\n }\r\n }\r\n }\r\n\r\n public subscribe(observer: IStreamSubscriber): ISubscription {\r\n this.observers.push(observer);\r\n return new SubjectSubscription(this, observer);\r\n }\r\n}\r\n","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\n\r\nimport { HandshakeProtocol, HandshakeRequestMessage, HandshakeResponseMessage } from \"./HandshakeProtocol\";\r\nimport { IConnection } from \"./IConnection\";\r\nimport { AbortError } from \"./Errors\";\r\nimport { CancelInvocationMessage, CompletionMessage, IHubProtocol, InvocationMessage, MessageType, StreamInvocationMessage, StreamItemMessage } from \"./IHubProtocol\";\r\nimport { ILogger, LogLevel } from \"./ILogger\";\r\nimport { IRetryPolicy } from \"./IRetryPolicy\";\r\nimport { IStreamResult } from \"./Stream\";\r\nimport { Subject } from \"./Subject\";\r\nimport { Arg, getErrorString, Platform } from \"./Utils\";\r\n\r\nconst DEFAULT_TIMEOUT_IN_MS: number = 30 * 1000;\r\nconst DEFAULT_PING_INTERVAL_IN_MS: number = 15 * 1000;\r\n\r\n/** Describes the current state of the {@link HubConnection} to the server. */\r\nexport enum HubConnectionState {\r\n /** The hub connection is disconnected. */\r\n Disconnected = \"Disconnected\",\r\n /** The hub connection is connecting. */\r\n Connecting = \"Connecting\",\r\n /** The hub connection is connected. */\r\n Connected = \"Connected\",\r\n /** The hub connection is disconnecting. */\r\n Disconnecting = \"Disconnecting\",\r\n /** The hub connection is reconnecting. */\r\n Reconnecting = \"Reconnecting\",\r\n}\r\n\r\n/** Represents a connection to a SignalR Hub. */\r\nexport class HubConnection {\r\n private readonly _cachedPingMessage: string | ArrayBuffer;\r\n // Needs to not start with _ for tests\r\n // eslint-disable-next-line @typescript-eslint/naming-convention\r\n private readonly connection: IConnection;\r\n private readonly _logger: ILogger;\r\n private readonly _reconnectPolicy?: IRetryPolicy;\r\n private _protocol: IHubProtocol;\r\n private _handshakeProtocol: HandshakeProtocol;\r\n private _callbacks: { [invocationId: string]: (invocationEvent: StreamItemMessage | CompletionMessage | null, error?: Error) => void };\r\n private _methods: { [name: string]: (((...args: any[]) => void) | ((...args: any[]) => any))[] };\r\n private _invocationId: number;\r\n\r\n private _closedCallbacks: ((error?: Error) => void)[];\r\n private _reconnectingCallbacks: ((error?: Error) => void)[];\r\n private _reconnectedCallbacks: ((connectionId?: string) => void)[];\r\n\r\n private _receivedHandshakeResponse: boolean;\r\n private _handshakeResolver!: (value?: PromiseLike<{}>) => void;\r\n private _handshakeRejecter!: (reason?: any) => void;\r\n private _stopDuringStartError?: Error;\r\n\r\n private _connectionState: HubConnectionState;\r\n // connectionStarted is tracked independently from connectionState, so we can check if the\r\n // connection ever did successfully transition from connecting to connected before disconnecting.\r\n private _connectionStarted: boolean;\r\n private _startPromise?: Promise;\r\n private _stopPromise?: Promise;\r\n private _nextKeepAlive: number = 0;\r\n\r\n // The type of these a) doesn't matter and b) varies when building in browser and node contexts\r\n // Since we're building the WebPack bundle directly from the TypeScript, this matters (previously\r\n // we built the bundle from the compiled JavaScript).\r\n private _reconnectDelayHandle?: any;\r\n private _timeoutHandle?: any;\r\n private _pingServerHandle?: any;\r\n\r\n private _freezeEventListener = () =>\r\n {\r\n this._logger.log(LogLevel.Warning, \"The page is being frozen, this will likely lead to the connection being closed and messages being lost. For more information see the docs at https://docs.microsoft.com/aspnet/core/signalr/javascript-client#bsleep\");\r\n };\r\n\r\n /** The server timeout in milliseconds.\r\n *\r\n * If this timeout elapses without receiving any messages from the server, the connection will be terminated with an error.\r\n * The default timeout value is 30,000 milliseconds (30 seconds).\r\n */\r\n public serverTimeoutInMilliseconds: number;\r\n\r\n /** Default interval at which to ping the server.\r\n *\r\n * The default value is 15,000 milliseconds (15 seconds).\r\n * Allows the server to detect hard disconnects (like when a client unplugs their computer).\r\n * The ping will happen at most as often as the server pings.\r\n * If the server pings every 5 seconds, a value lower than 5 will ping every 5 seconds.\r\n */\r\n public keepAliveIntervalInMilliseconds: number;\r\n\r\n /** @internal */\r\n // Using a public static factory method means we can have a private constructor and an _internal_\r\n // create method that can be used by HubConnectionBuilder. An \"internal\" constructor would just\r\n // be stripped away and the '.d.ts' file would have no constructor, which is interpreted as a\r\n // public parameter-less constructor.\r\n public static create(connection: IConnection, logger: ILogger, protocol: IHubProtocol, reconnectPolicy?: IRetryPolicy): HubConnection {\r\n return new HubConnection(connection, logger, protocol, reconnectPolicy);\r\n }\r\n\r\n private constructor(connection: IConnection, logger: ILogger, protocol: IHubProtocol, reconnectPolicy?: IRetryPolicy) {\r\n Arg.isRequired(connection, \"connection\");\r\n Arg.isRequired(logger, \"logger\");\r\n Arg.isRequired(protocol, \"protocol\");\r\n\r\n this.serverTimeoutInMilliseconds = DEFAULT_TIMEOUT_IN_MS;\r\n this.keepAliveIntervalInMilliseconds = DEFAULT_PING_INTERVAL_IN_MS;\r\n\r\n this._logger = logger;\r\n this._protocol = protocol;\r\n this.connection = connection;\r\n this._reconnectPolicy = reconnectPolicy;\r\n this._handshakeProtocol = new HandshakeProtocol();\r\n\r\n this.connection.onreceive = (data: any) => this._processIncomingData(data);\r\n this.connection.onclose = (error?: Error) => this._connectionClosed(error);\r\n\r\n this._callbacks = {};\r\n this._methods = {};\r\n this._closedCallbacks = [];\r\n this._reconnectingCallbacks = [];\r\n this._reconnectedCallbacks = [];\r\n this._invocationId = 0;\r\n this._receivedHandshakeResponse = false;\r\n this._connectionState = HubConnectionState.Disconnected;\r\n this._connectionStarted = false;\r\n\r\n this._cachedPingMessage = this._protocol.writeMessage({ type: MessageType.Ping });\r\n }\r\n\r\n /** Indicates the state of the {@link HubConnection} to the server. */\r\n get state(): HubConnectionState {\r\n return this._connectionState;\r\n }\r\n\r\n /** Represents the connection id of the {@link HubConnection} on the server. The connection id will be null when the connection is either\r\n * in the disconnected state or if the negotiation step was skipped.\r\n */\r\n get connectionId(): string | null {\r\n return this.connection ? (this.connection.connectionId || null) : null;\r\n }\r\n\r\n /** Indicates the url of the {@link HubConnection} to the server. */\r\n get baseUrl(): string {\r\n return this.connection.baseUrl || \"\";\r\n }\r\n\r\n /**\r\n * Sets a new url for the HubConnection. Note that the url can only be changed when the connection is in either the Disconnected or\r\n * Reconnecting states.\r\n * @param {string} url The url to connect to.\r\n */\r\n set baseUrl(url: string) {\r\n if (this._connectionState !== HubConnectionState.Disconnected && this._connectionState !== HubConnectionState.Reconnecting) {\r\n throw new Error(\"The HubConnection must be in the Disconnected or Reconnecting state to change the url.\");\r\n }\r\n\r\n if (!url) {\r\n throw new Error(\"The HubConnection url must be a valid url.\");\r\n }\r\n\r\n this.connection.baseUrl = url;\r\n }\r\n\r\n /** Starts the connection.\r\n *\r\n * @returns {Promise} A Promise that resolves when the connection has been successfully established, or rejects with an error.\r\n */\r\n public start(): Promise {\r\n this._startPromise = this._startWithStateTransitions();\r\n return this._startPromise;\r\n }\r\n\r\n private async _startWithStateTransitions(): Promise {\r\n if (this._connectionState !== HubConnectionState.Disconnected) {\r\n return Promise.reject(new Error(\"Cannot start a HubConnection that is not in the 'Disconnected' state.\"));\r\n }\r\n\r\n this._connectionState = HubConnectionState.Connecting;\r\n this._logger.log(LogLevel.Debug, \"Starting HubConnection.\");\r\n\r\n try {\r\n await this._startInternal();\r\n\r\n if (Platform.isBrowser) {\r\n // Log when the browser freezes the tab so users know why their connection unexpectedly stopped working\r\n window.document.addEventListener(\"freeze\", this._freezeEventListener);\r\n }\r\n\r\n this._connectionState = HubConnectionState.Connected;\r\n this._connectionStarted = true;\r\n this._logger.log(LogLevel.Debug, \"HubConnection connected successfully.\");\r\n } catch (e) {\r\n this._connectionState = HubConnectionState.Disconnected;\r\n this._logger.log(LogLevel.Debug, `HubConnection failed to start successfully because of error '${e}'.`);\r\n return Promise.reject(e);\r\n }\r\n }\r\n\r\n private async _startInternal() {\r\n this._stopDuringStartError = undefined;\r\n this._receivedHandshakeResponse = false;\r\n // Set up the promise before any connection is (re)started otherwise it could race with received messages\r\n const handshakePromise = new Promise((resolve, reject) => {\r\n this._handshakeResolver = resolve;\r\n this._handshakeRejecter = reject;\r\n });\r\n\r\n await this.connection.start(this._protocol.transferFormat);\r\n\r\n try {\r\n const handshakeRequest: HandshakeRequestMessage = {\r\n protocol: this._protocol.name,\r\n version: this._protocol.version,\r\n };\r\n\r\n this._logger.log(LogLevel.Debug, \"Sending handshake request.\");\r\n\r\n await this._sendMessage(this._handshakeProtocol.writeHandshakeRequest(handshakeRequest));\r\n\r\n this._logger.log(LogLevel.Information, `Using HubProtocol '${this._protocol.name}'.`);\r\n\r\n // defensively cleanup timeout in case we receive a message from the server before we finish start\r\n this._cleanupTimeout();\r\n this._resetTimeoutPeriod();\r\n this._resetKeepAliveInterval();\r\n\r\n await handshakePromise;\r\n\r\n // It's important to check the stopDuringStartError instead of just relying on the handshakePromise\r\n // being rejected on close, because this continuation can run after both the handshake completed successfully\r\n // and the connection was closed.\r\n if (this._stopDuringStartError) {\r\n // It's important to throw instead of returning a rejected promise, because we don't want to allow any state\r\n // transitions to occur between now and the calling code observing the exceptions. Returning a rejected promise\r\n // will cause the calling continuation to get scheduled to run later.\r\n // eslint-disable-next-line @typescript-eslint/no-throw-literal\r\n throw this._stopDuringStartError;\r\n }\r\n\r\n if (!this.connection.features.inherentKeepAlive) {\r\n await this._sendMessage(this._cachedPingMessage);\r\n }\r\n } catch (e) {\r\n this._logger.log(LogLevel.Debug, `Hub handshake failed with error '${e}' during start(). Stopping HubConnection.`);\r\n\r\n this._cleanupTimeout();\r\n this._cleanupPingTimer();\r\n\r\n // HttpConnection.stop() should not complete until after the onclose callback is invoked.\r\n // This will transition the HubConnection to the disconnected state before HttpConnection.stop() completes.\r\n await this.connection.stop(e);\r\n throw e;\r\n }\r\n }\r\n\r\n /** Stops the connection.\r\n *\r\n * @returns {Promise} A Promise that resolves when the connection has been successfully terminated, or rejects with an error.\r\n */\r\n public async stop(): Promise {\r\n // Capture the start promise before the connection might be restarted in an onclose callback.\r\n const startPromise = this._startPromise;\r\n\r\n this._stopPromise = this._stopInternal();\r\n await this._stopPromise;\r\n\r\n try {\r\n // Awaiting undefined continues immediately\r\n await startPromise;\r\n } catch (e) {\r\n // This exception is returned to the user as a rejected Promise from the start method.\r\n }\r\n }\r\n\r\n private _stopInternal(error?: Error): Promise {\r\n if (this._connectionState === HubConnectionState.Disconnected) {\r\n this._logger.log(LogLevel.Debug, `Call to HubConnection.stop(${error}) ignored because it is already in the disconnected state.`);\r\n return Promise.resolve();\r\n }\r\n\r\n if (this._connectionState === HubConnectionState.Disconnecting) {\r\n this._logger.log(LogLevel.Debug, `Call to HttpConnection.stop(${error}) ignored because the connection is already in the disconnecting state.`);\r\n return this._stopPromise!;\r\n }\r\n\r\n this._connectionState = HubConnectionState.Disconnecting;\r\n\r\n this._logger.log(LogLevel.Debug, \"Stopping HubConnection.\");\r\n\r\n if (this._reconnectDelayHandle) {\r\n // We're in a reconnect delay which means the underlying connection is currently already stopped.\r\n // Just clear the handle to stop the reconnect loop (which no one is waiting on thankfully) and\r\n // fire the onclose callbacks.\r\n this._logger.log(LogLevel.Debug, \"Connection stopped during reconnect delay. Done reconnecting.\");\r\n\r\n clearTimeout(this._reconnectDelayHandle);\r\n this._reconnectDelayHandle = undefined;\r\n\r\n this._completeClose();\r\n return Promise.resolve();\r\n }\r\n\r\n this._cleanupTimeout();\r\n this._cleanupPingTimer();\r\n this._stopDuringStartError = error || new AbortError(\"The connection was stopped before the hub handshake could complete.\");\r\n\r\n // HttpConnection.stop() should not complete until after either HttpConnection.start() fails\r\n // or the onclose callback is invoked. The onclose callback will transition the HubConnection\r\n // to the disconnected state if need be before HttpConnection.stop() completes.\r\n return this.connection.stop(error);\r\n }\r\n\r\n /** Invokes a streaming hub method on the server using the specified name and arguments.\r\n *\r\n * @typeparam T The type of the items returned by the server.\r\n * @param {string} methodName The name of the server method to invoke.\r\n * @param {any[]} args The arguments used to invoke the server method.\r\n * @returns {IStreamResult} An object that yields results from the server as they are received.\r\n */\r\n public stream(methodName: string, ...args: any[]): IStreamResult {\r\n const [streams, streamIds] = this._replaceStreamingParams(args);\r\n const invocationDescriptor = this._createStreamInvocation(methodName, args, streamIds);\r\n\r\n // eslint-disable-next-line prefer-const\r\n let promiseQueue: Promise;\r\n\r\n const subject = new Subject();\r\n subject.cancelCallback = () => {\r\n const cancelInvocation: CancelInvocationMessage = this._createCancelInvocation(invocationDescriptor.invocationId);\r\n\r\n delete this._callbacks[invocationDescriptor.invocationId];\r\n\r\n return promiseQueue.then(() => {\r\n return this._sendWithProtocol(cancelInvocation);\r\n });\r\n };\r\n\r\n this._callbacks[invocationDescriptor.invocationId] = (invocationEvent: CompletionMessage | StreamItemMessage | null, error?: Error) => {\r\n if (error) {\r\n subject.error(error);\r\n return;\r\n } else if (invocationEvent) {\r\n // invocationEvent will not be null when an error is not passed to the callback\r\n if (invocationEvent.type === MessageType.Completion) {\r\n if (invocationEvent.error) {\r\n subject.error(new Error(invocationEvent.error));\r\n } else {\r\n subject.complete();\r\n }\r\n } else {\r\n subject.next((invocationEvent.item) as T);\r\n }\r\n }\r\n };\r\n\r\n promiseQueue = this._sendWithProtocol(invocationDescriptor)\r\n .catch((e) => {\r\n subject.error(e);\r\n delete this._callbacks[invocationDescriptor.invocationId];\r\n });\r\n\r\n this._launchStreams(streams, promiseQueue);\r\n\r\n return subject;\r\n }\r\n\r\n private _sendMessage(message: any) {\r\n this._resetKeepAliveInterval();\r\n return this.connection.send(message);\r\n }\r\n\r\n /**\r\n * Sends a js object to the server.\r\n * @param message The js object to serialize and send.\r\n */\r\n private _sendWithProtocol(message: any) {\r\n return this._sendMessage(this._protocol.writeMessage(message));\r\n }\r\n\r\n /** Invokes a hub method on the server using the specified name and arguments. Does not wait for a response from the receiver.\r\n *\r\n * The Promise returned by this method resolves when the client has sent the invocation to the server. The server may still\r\n * be processing the invocation.\r\n *\r\n * @param {string} methodName The name of the server method to invoke.\r\n * @param {any[]} args The arguments used to invoke the server method.\r\n * @returns {Promise} A Promise that resolves when the invocation has been successfully sent, or rejects with an error.\r\n */\r\n public send(methodName: string, ...args: any[]): Promise {\r\n const [streams, streamIds] = this._replaceStreamingParams(args);\r\n const sendPromise = this._sendWithProtocol(this._createInvocation(methodName, args, true, streamIds));\r\n\r\n this._launchStreams(streams, sendPromise);\r\n\r\n return sendPromise;\r\n }\r\n\r\n /** Invokes a hub method on the server using the specified name and arguments.\r\n *\r\n * The Promise returned by this method resolves when the server indicates it has finished invoking the method. When the promise\r\n * resolves, the server has finished invoking the method. If the server method returns a result, it is produced as the result of\r\n * resolving the Promise.\r\n *\r\n * @typeparam T The expected return type.\r\n * @param {string} methodName The name of the server method to invoke.\r\n * @param {any[]} args The arguments used to invoke the server method.\r\n * @returns {Promise} A Promise that resolves with the result of the server method (if any), or rejects with an error.\r\n */\r\n public invoke(methodName: string, ...args: any[]): Promise {\r\n const [streams, streamIds] = this._replaceStreamingParams(args);\r\n const invocationDescriptor = this._createInvocation(methodName, args, false, streamIds);\r\n\r\n const p = new Promise((resolve, reject) => {\r\n // invocationId will always have a value for a non-blocking invocation\r\n this._callbacks[invocationDescriptor.invocationId!] = (invocationEvent: StreamItemMessage | CompletionMessage | null, error?: Error) => {\r\n if (error) {\r\n reject(error);\r\n return;\r\n } else if (invocationEvent) {\r\n // invocationEvent will not be null when an error is not passed to the callback\r\n if (invocationEvent.type === MessageType.Completion) {\r\n if (invocationEvent.error) {\r\n reject(new Error(invocationEvent.error));\r\n } else {\r\n resolve(invocationEvent.result);\r\n }\r\n } else {\r\n reject(new Error(`Unexpected message type: ${invocationEvent.type}`));\r\n }\r\n }\r\n };\r\n\r\n const promiseQueue = this._sendWithProtocol(invocationDescriptor)\r\n .catch((e) => {\r\n reject(e);\r\n // invocationId will always have a value for a non-blocking invocation\r\n delete this._callbacks[invocationDescriptor.invocationId!];\r\n });\r\n\r\n this._launchStreams(streams, promiseQueue);\r\n });\r\n\r\n return p;\r\n }\r\n\r\n /** Registers a handler that will be invoked when the hub method with the specified method name is invoked.\r\n *\r\n * @param {string} methodName The name of the hub method to define.\r\n * @param {Function} newMethod The handler that will be raised when the hub method is invoked.\r\n */\r\n public on(methodName: string, newMethod: (...args: any[]) => any): void\r\n public on(methodName: string, newMethod: (...args: any[]) => void): void {\r\n if (!methodName || !newMethod) {\r\n return;\r\n }\r\n\r\n methodName = methodName.toLowerCase();\r\n if (!this._methods[methodName]) {\r\n this._methods[methodName] = [];\r\n }\r\n\r\n // Preventing adding the same handler multiple times.\r\n if (this._methods[methodName].indexOf(newMethod) !== -1) {\r\n return;\r\n }\r\n\r\n this._methods[methodName].push(newMethod);\r\n }\r\n\r\n /** Removes all handlers for the specified hub method.\r\n *\r\n * @param {string} methodName The name of the method to remove handlers for.\r\n */\r\n public off(methodName: string): void;\r\n\r\n /** Removes the specified handler for the specified hub method.\r\n *\r\n * You must pass the exact same Function instance as was previously passed to {@link @microsoft/signalr.HubConnection.on}. Passing a different instance (even if the function\r\n * body is the same) will not remove the handler.\r\n *\r\n * @param {string} methodName The name of the method to remove handlers for.\r\n * @param {Function} method The handler to remove. This must be the same Function instance as the one passed to {@link @microsoft/signalr.HubConnection.on}.\r\n */\r\n public off(methodName: string, method: (...args: any[]) => void): void;\r\n public off(methodName: string, method?: (...args: any[]) => void): void {\r\n if (!methodName) {\r\n return;\r\n }\r\n\r\n methodName = methodName.toLowerCase();\r\n const handlers = this._methods[methodName];\r\n if (!handlers) {\r\n return;\r\n }\r\n if (method) {\r\n const removeIdx = handlers.indexOf(method);\r\n if (removeIdx !== -1) {\r\n handlers.splice(removeIdx, 1);\r\n if (handlers.length === 0) {\r\n delete this._methods[methodName];\r\n }\r\n }\r\n } else {\r\n delete this._methods[methodName];\r\n }\r\n\r\n }\r\n\r\n /** Registers a handler that will be invoked when the connection is closed.\r\n *\r\n * @param {Function} callback The handler that will be invoked when the connection is closed. Optionally receives a single argument containing the error that caused the connection to close (if any).\r\n */\r\n public onclose(callback: (error?: Error) => void): void {\r\n if (callback) {\r\n this._closedCallbacks.push(callback);\r\n }\r\n }\r\n\r\n /** Registers a handler that will be invoked when the connection starts reconnecting.\r\n *\r\n * @param {Function} callback The handler that will be invoked when the connection starts reconnecting. Optionally receives a single argument containing the error that caused the connection to start reconnecting (if any).\r\n */\r\n public onreconnecting(callback: (error?: Error) => void): void {\r\n if (callback) {\r\n this._reconnectingCallbacks.push(callback);\r\n }\r\n }\r\n\r\n /** Registers a handler that will be invoked when the connection successfully reconnects.\r\n *\r\n * @param {Function} callback The handler that will be invoked when the connection successfully reconnects.\r\n */\r\n public onreconnected(callback: (connectionId?: string) => void): void {\r\n if (callback) {\r\n this._reconnectedCallbacks.push(callback);\r\n }\r\n }\r\n\r\n private _processIncomingData(data: any) {\r\n this._cleanupTimeout();\r\n\r\n if (!this._receivedHandshakeResponse) {\r\n data = this._processHandshakeResponse(data);\r\n this._receivedHandshakeResponse = true;\r\n }\r\n\r\n // Data may have all been read when processing handshake response\r\n if (data) {\r\n // Parse the messages\r\n const messages = this._protocol.parseMessages(data, this._logger);\r\n\r\n for (const message of messages) {\r\n switch (message.type) {\r\n case MessageType.Invocation:\r\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\r\n this._invokeClientMethod(message);\r\n break;\r\n case MessageType.StreamItem:\r\n case MessageType.Completion: {\r\n const callback = this._callbacks[message.invocationId];\r\n if (callback) {\r\n if (message.type === MessageType.Completion) {\r\n delete this._callbacks[message.invocationId];\r\n }\r\n try {\r\n callback(message);\r\n } catch (e) {\r\n this._logger.log(LogLevel.Error, `Stream callback threw error: ${getErrorString(e)}`);\r\n }\r\n }\r\n break;\r\n }\r\n case MessageType.Ping:\r\n // Don't care about pings\r\n break;\r\n case MessageType.Close: {\r\n this._logger.log(LogLevel.Information, \"Close message received from server.\");\r\n\r\n const error = message.error ? new Error(\"Server returned an error on close: \" + message.error) : undefined;\r\n\r\n if (message.allowReconnect === true) {\r\n // It feels wrong not to await connection.stop() here, but processIncomingData is called as part of an onreceive callback which is not async,\r\n // this is already the behavior for serverTimeout(), and HttpConnection.Stop() should catch and log all possible exceptions.\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\r\n this.connection.stop(error);\r\n } else {\r\n // We cannot await stopInternal() here, but subsequent calls to stop() will await this if stopInternal() is still ongoing.\r\n this._stopPromise = this._stopInternal(error);\r\n }\r\n\r\n break;\r\n }\r\n default:\r\n this._logger.log(LogLevel.Warning, `Invalid message type: ${message.type}.`);\r\n break;\r\n }\r\n }\r\n }\r\n\r\n this._resetTimeoutPeriod();\r\n }\r\n\r\n private _processHandshakeResponse(data: any): any {\r\n let responseMessage: HandshakeResponseMessage;\r\n let remainingData: any;\r\n\r\n try {\r\n [remainingData, responseMessage] = this._handshakeProtocol.parseHandshakeResponse(data);\r\n } catch (e) {\r\n const message = \"Error parsing handshake response: \" + e;\r\n this._logger.log(LogLevel.Error, message);\r\n\r\n const error = new Error(message);\r\n this._handshakeRejecter(error);\r\n throw error;\r\n }\r\n if (responseMessage.error) {\r\n const message = \"Server returned handshake error: \" + responseMessage.error;\r\n this._logger.log(LogLevel.Error, message);\r\n\r\n const error = new Error(message);\r\n this._handshakeRejecter(error);\r\n throw error;\r\n } else {\r\n this._logger.log(LogLevel.Debug, \"Server handshake complete.\");\r\n }\r\n\r\n this._handshakeResolver();\r\n return remainingData;\r\n }\r\n\r\n private _resetKeepAliveInterval() {\r\n if (this.connection.features.inherentKeepAlive) {\r\n return;\r\n }\r\n\r\n // Set the time we want the next keep alive to be sent\r\n // Timer will be setup on next message receive\r\n this._nextKeepAlive = new Date().getTime() + this.keepAliveIntervalInMilliseconds;\r\n\r\n this._cleanupPingTimer();\r\n }\r\n\r\n private _resetTimeoutPeriod() {\r\n if (!this.connection.features || !this.connection.features.inherentKeepAlive) {\r\n // Set the timeout timer\r\n this._timeoutHandle = setTimeout(() => this.serverTimeout(), this.serverTimeoutInMilliseconds);\r\n\r\n // Set keepAlive timer if there isn't one\r\n if (this._pingServerHandle === undefined)\r\n {\r\n let nextPing = this._nextKeepAlive - new Date().getTime();\r\n if (nextPing < 0) {\r\n nextPing = 0;\r\n }\r\n\r\n // The timer needs to be set from a networking callback to avoid Chrome timer throttling from causing timers to run once a minute\r\n this._pingServerHandle = setTimeout(async () => {\r\n if (this._connectionState === HubConnectionState.Connected) {\r\n try {\r\n await this._sendMessage(this._cachedPingMessage);\r\n } catch {\r\n // We don't care about the error. It should be seen elsewhere in the client.\r\n // The connection is probably in a bad or closed state now, cleanup the timer so it stops triggering\r\n this._cleanupPingTimer();\r\n }\r\n }\r\n }, nextPing);\r\n }\r\n }\r\n }\r\n\r\n // eslint-disable-next-line @typescript-eslint/naming-convention\r\n private serverTimeout() {\r\n // The server hasn't talked to us in a while. It doesn't like us anymore ... :(\r\n // Terminate the connection, but we don't need to wait on the promise. This could trigger reconnecting.\r\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\r\n this.connection.stop(new Error(\"Server timeout elapsed without receiving a message from the server.\"));\r\n }\r\n\r\n private async _invokeClientMethod(invocationMessage: InvocationMessage) {\r\n const methodName = invocationMessage.target.toLowerCase();\r\n const methods = this._methods[methodName];\r\n if (!methods) {\r\n this._logger.log(LogLevel.Warning, `No client method with the name '${methodName}' found.`);\r\n\r\n // No handlers provided by client but the server is expecting a response still, so we send an error\r\n if (invocationMessage.invocationId) {\r\n this._logger.log(LogLevel.Warning, `No result given for '${methodName}' method and invocation ID '${invocationMessage.invocationId}'.`);\r\n await this._sendWithProtocol(this._createCompletionMessage(invocationMessage.invocationId, \"Client didn't provide a result.\", null));\r\n }\r\n return;\r\n }\r\n\r\n // Avoid issues with handlers removing themselves thus modifying the list while iterating through it\r\n const methodsCopy = methods.slice();\r\n\r\n // Server expects a response\r\n const expectsResponse = invocationMessage.invocationId ? true : false;\r\n // We preserve the last result or exception but still call all handlers\r\n let res;\r\n let exception;\r\n let completionMessage;\r\n for (const m of methodsCopy) {\r\n try {\r\n const prevRes = res;\r\n res = await m.apply(this, invocationMessage.arguments);\r\n if (expectsResponse && res && prevRes) {\r\n this._logger.log(LogLevel.Error, `Multiple results provided for '${methodName}'. Sending error to server.`);\r\n completionMessage = this._createCompletionMessage(invocationMessage.invocationId!, `Client provided multiple results.`, null);\r\n }\r\n // Ignore exception if we got a result after, the exception will be logged\r\n exception = undefined;\r\n } catch (e) {\r\n exception = e;\r\n this._logger.log(LogLevel.Error, `A callback for the method '${methodName}' threw error '${e}'.`);\r\n }\r\n }\r\n if (completionMessage) {\r\n await this._sendWithProtocol(completionMessage);\r\n } else if (expectsResponse) {\r\n // If there is an exception that means either no result was given or a handler after a result threw\r\n if (exception) {\r\n completionMessage = this._createCompletionMessage(invocationMessage.invocationId!, `${exception}`, null);\r\n } else if (res !== undefined) {\r\n completionMessage = this._createCompletionMessage(invocationMessage.invocationId!, null, res);\r\n } else {\r\n this._logger.log(LogLevel.Warning, `No result given for '${methodName}' method and invocation ID '${invocationMessage.invocationId}'.`);\r\n // Client didn't provide a result or throw from a handler, server expects a response so we send an error\r\n completionMessage = this._createCompletionMessage(invocationMessage.invocationId!, \"Client didn't provide a result.\", null);\r\n }\r\n await this._sendWithProtocol(completionMessage);\r\n } else {\r\n if (res) {\r\n this._logger.log(LogLevel.Error, `Result given for '${methodName}' method but server is not expecting a result.`);\r\n }\r\n }\r\n }\r\n\r\n private _connectionClosed(error?: Error) {\r\n this._logger.log(LogLevel.Debug, `HubConnection.connectionClosed(${error}) called while in state ${this._connectionState}.`);\r\n\r\n // Triggering this.handshakeRejecter is insufficient because it could already be resolved without the continuation having run yet.\r\n this._stopDuringStartError = this._stopDuringStartError || error || new AbortError(\"The underlying connection was closed before the hub handshake could complete.\");\r\n\r\n // If the handshake is in progress, start will be waiting for the handshake promise, so we complete it.\r\n // If it has already completed, this should just noop.\r\n if (this._handshakeResolver) {\r\n this._handshakeResolver();\r\n }\r\n\r\n this._cancelCallbacksWithError(error || new Error(\"Invocation canceled due to the underlying connection being closed.\"));\r\n\r\n this._cleanupTimeout();\r\n this._cleanupPingTimer();\r\n\r\n if (this._connectionState === HubConnectionState.Disconnecting) {\r\n this._completeClose(error);\r\n } else if (this._connectionState === HubConnectionState.Connected && this._reconnectPolicy) {\r\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\r\n this._reconnect(error);\r\n } else if (this._connectionState === HubConnectionState.Connected) {\r\n this._completeClose(error);\r\n }\r\n\r\n // If none of the above if conditions were true were called the HubConnection must be in either:\r\n // 1. The Connecting state in which case the handshakeResolver will complete it and stopDuringStartError will fail it.\r\n // 2. The Reconnecting state in which case the handshakeResolver will complete it and stopDuringStartError will fail the current reconnect attempt\r\n // and potentially continue the reconnect() loop.\r\n // 3. The Disconnected state in which case we're already done.\r\n }\r\n\r\n private _completeClose(error?: Error) {\r\n if (this._connectionStarted) {\r\n this._connectionState = HubConnectionState.Disconnected;\r\n this._connectionStarted = false;\r\n\r\n if (Platform.isBrowser) {\r\n window.document.removeEventListener(\"freeze\", this._freezeEventListener);\r\n }\r\n\r\n try {\r\n this._closedCallbacks.forEach((c) => c.apply(this, [error]));\r\n } catch (e) {\r\n this._logger.log(LogLevel.Error, `An onclose callback called with error '${error}' threw error '${e}'.`);\r\n }\r\n }\r\n }\r\n\r\n private async _reconnect(error?: Error) {\r\n const reconnectStartTime = Date.now();\r\n let previousReconnectAttempts = 0;\r\n let retryError = error !== undefined ? error : new Error(\"Attempting to reconnect due to a unknown error.\");\r\n\r\n let nextRetryDelay = this._getNextRetryDelay(previousReconnectAttempts++, 0, retryError);\r\n\r\n if (nextRetryDelay === null) {\r\n this._logger.log(LogLevel.Debug, \"Connection not reconnecting because the IRetryPolicy returned null on the first reconnect attempt.\");\r\n this._completeClose(error);\r\n return;\r\n }\r\n\r\n this._connectionState = HubConnectionState.Reconnecting;\r\n\r\n if (error) {\r\n this._logger.log(LogLevel.Information, `Connection reconnecting because of error '${error}'.`);\r\n } else {\r\n this._logger.log(LogLevel.Information, \"Connection reconnecting.\");\r\n }\r\n\r\n if (this._reconnectingCallbacks.length !== 0) {\r\n try {\r\n this._reconnectingCallbacks.forEach((c) => c.apply(this, [error]));\r\n } catch (e) {\r\n this._logger.log(LogLevel.Error, `An onreconnecting callback called with error '${error}' threw error '${e}'.`);\r\n }\r\n\r\n // Exit early if an onreconnecting callback called connection.stop().\r\n if (this._connectionState !== HubConnectionState.Reconnecting) {\r\n this._logger.log(LogLevel.Debug, \"Connection left the reconnecting state in onreconnecting callback. Done reconnecting.\");\r\n return;\r\n }\r\n }\r\n\r\n while (nextRetryDelay !== null) {\r\n this._logger.log(LogLevel.Information, `Reconnect attempt number ${previousReconnectAttempts} will start in ${nextRetryDelay} ms.`);\r\n\r\n await new Promise((resolve) => {\r\n this._reconnectDelayHandle = setTimeout(resolve, nextRetryDelay!);\r\n });\r\n this._reconnectDelayHandle = undefined;\r\n\r\n if (this._connectionState !== HubConnectionState.Reconnecting) {\r\n this._logger.log(LogLevel.Debug, \"Connection left the reconnecting state during reconnect delay. Done reconnecting.\");\r\n return;\r\n }\r\n\r\n try {\r\n await this._startInternal();\r\n\r\n this._connectionState = HubConnectionState.Connected;\r\n this._logger.log(LogLevel.Information, \"HubConnection reconnected successfully.\");\r\n\r\n if (this._reconnectedCallbacks.length !== 0) {\r\n try {\r\n this._reconnectedCallbacks.forEach((c) => c.apply(this, [this.connection.connectionId]));\r\n } catch (e) {\r\n this._logger.log(LogLevel.Error, `An onreconnected callback called with connectionId '${this.connection.connectionId}; threw error '${e}'.`);\r\n }\r\n }\r\n\r\n return;\r\n } catch (e) {\r\n this._logger.log(LogLevel.Information, `Reconnect attempt failed because of error '${e}'.`);\r\n\r\n if (this._connectionState !== HubConnectionState.Reconnecting) {\r\n this._logger.log(LogLevel.Debug, `Connection moved to the '${this._connectionState}' from the reconnecting state during reconnect attempt. Done reconnecting.`);\r\n // The TypeScript compiler thinks that connectionState must be Connected here. The TypeScript compiler is wrong.\r\n if (this._connectionState as any === HubConnectionState.Disconnecting) {\r\n this._completeClose();\r\n }\r\n return;\r\n }\r\n\r\n retryError = e instanceof Error ? e : new Error(e.toString());\r\n nextRetryDelay = this._getNextRetryDelay(previousReconnectAttempts++, Date.now() - reconnectStartTime, retryError);\r\n }\r\n }\r\n\r\n this._logger.log(LogLevel.Information, `Reconnect retries have been exhausted after ${Date.now() - reconnectStartTime} ms and ${previousReconnectAttempts} failed attempts. Connection disconnecting.`);\r\n\r\n this._completeClose();\r\n }\r\n\r\n private _getNextRetryDelay(previousRetryCount: number, elapsedMilliseconds: number, retryReason: Error) {\r\n try {\r\n return this._reconnectPolicy!.nextRetryDelayInMilliseconds({\r\n elapsedMilliseconds,\r\n previousRetryCount,\r\n retryReason,\r\n });\r\n } catch (e) {\r\n this._logger.log(LogLevel.Error, `IRetryPolicy.nextRetryDelayInMilliseconds(${previousRetryCount}, ${elapsedMilliseconds}) threw error '${e}'.`);\r\n return null;\r\n }\r\n }\r\n\r\n private _cancelCallbacksWithError(error: Error) {\r\n const callbacks = this._callbacks;\r\n this._callbacks = {};\r\n\r\n Object.keys(callbacks)\r\n .forEach((key) => {\r\n const callback = callbacks[key];\r\n try {\r\n callback(null, error);\r\n } catch (e) {\r\n this._logger.log(LogLevel.Error, `Stream 'error' callback called with '${error}' threw error: ${getErrorString(e)}`);\r\n }\r\n });\r\n }\r\n\r\n private _cleanupPingTimer(): void {\r\n if (this._pingServerHandle) {\r\n clearTimeout(this._pingServerHandle);\r\n this._pingServerHandle = undefined;\r\n }\r\n }\r\n\r\n private _cleanupTimeout(): void {\r\n if (this._timeoutHandle) {\r\n clearTimeout(this._timeoutHandle);\r\n }\r\n }\r\n\r\n private _createInvocation(methodName: string, args: any[], nonblocking: boolean, streamIds: string[]): InvocationMessage {\r\n if (nonblocking) {\r\n if (streamIds.length !== 0) {\r\n return {\r\n arguments: args,\r\n streamIds,\r\n target: methodName,\r\n type: MessageType.Invocation,\r\n };\r\n } else {\r\n return {\r\n arguments: args,\r\n target: methodName,\r\n type: MessageType.Invocation,\r\n };\r\n }\r\n } else {\r\n const invocationId = this._invocationId;\r\n this._invocationId++;\r\n\r\n if (streamIds.length !== 0) {\r\n return {\r\n arguments: args,\r\n invocationId: invocationId.toString(),\r\n streamIds,\r\n target: methodName,\r\n type: MessageType.Invocation,\r\n };\r\n } else {\r\n return {\r\n arguments: args,\r\n invocationId: invocationId.toString(),\r\n target: methodName,\r\n type: MessageType.Invocation,\r\n };\r\n }\r\n }\r\n }\r\n\r\n private _launchStreams(streams: IStreamResult[], promiseQueue: Promise): void {\r\n if (streams.length === 0) {\r\n return;\r\n }\r\n\r\n // Synchronize stream data so they arrive in-order on the server\r\n if (!promiseQueue) {\r\n promiseQueue = Promise.resolve();\r\n }\r\n\r\n // We want to iterate over the keys, since the keys are the stream ids\r\n // eslint-disable-next-line guard-for-in\r\n for (const streamId in streams) {\r\n streams[streamId].subscribe({\r\n complete: () => {\r\n promiseQueue = promiseQueue.then(() => this._sendWithProtocol(this._createCompletionMessage(streamId)));\r\n },\r\n error: (err) => {\r\n let message: string;\r\n if (err instanceof Error) {\r\n message = err.message;\r\n } else if (err && err.toString) {\r\n message = err.toString();\r\n } else {\r\n message = \"Unknown error\";\r\n }\r\n\r\n promiseQueue = promiseQueue.then(() => this._sendWithProtocol(this._createCompletionMessage(streamId, message)));\r\n },\r\n next: (item) => {\r\n promiseQueue = promiseQueue.then(() => this._sendWithProtocol(this._createStreamItemMessage(streamId, item)));\r\n },\r\n });\r\n }\r\n }\r\n\r\n private _replaceStreamingParams(args: any[]): [IStreamResult[], string[]] {\r\n const streams: IStreamResult[] = [];\r\n const streamIds: string[] = [];\r\n for (let i = 0; i < args.length; i++) {\r\n const argument = args[i];\r\n if (this._isObservable(argument)) {\r\n const streamId = this._invocationId;\r\n this._invocationId++;\r\n // Store the stream for later use\r\n streams[streamId] = argument;\r\n streamIds.push(streamId.toString());\r\n\r\n // remove stream from args\r\n args.splice(i, 1);\r\n }\r\n }\r\n\r\n return [streams, streamIds];\r\n }\r\n\r\n private _isObservable(arg: any): arg is IStreamResult {\r\n // This allows other stream implementations to just work (like rxjs)\r\n return arg && arg.subscribe && typeof arg.subscribe === \"function\";\r\n }\r\n\r\n private _createStreamInvocation(methodName: string, args: any[], streamIds: string[]): StreamInvocationMessage {\r\n const invocationId = this._invocationId;\r\n this._invocationId++;\r\n\r\n if (streamIds.length !== 0) {\r\n return {\r\n arguments: args,\r\n invocationId: invocationId.toString(),\r\n streamIds,\r\n target: methodName,\r\n type: MessageType.StreamInvocation,\r\n };\r\n } else {\r\n return {\r\n arguments: args,\r\n invocationId: invocationId.toString(),\r\n target: methodName,\r\n type: MessageType.StreamInvocation,\r\n };\r\n }\r\n }\r\n\r\n private _createCancelInvocation(id: string): CancelInvocationMessage {\r\n return {\r\n invocationId: id,\r\n type: MessageType.CancelInvocation,\r\n };\r\n }\r\n\r\n private _createStreamItemMessage(id: string, item: any): StreamItemMessage {\r\n return {\r\n invocationId: id,\r\n item,\r\n type: MessageType.StreamItem,\r\n };\r\n }\r\n\r\n private _createCompletionMessage(id: string, error?: any, result?: any): CompletionMessage {\r\n if (error) {\r\n return {\r\n error,\r\n invocationId: id,\r\n type: MessageType.Completion,\r\n };\r\n }\r\n\r\n return {\r\n invocationId: id,\r\n result,\r\n type: MessageType.Completion,\r\n };\r\n }\r\n}\r\n","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\n\r\nimport { IRetryPolicy, RetryContext } from \"./IRetryPolicy\";\r\n\r\n// 0, 2, 10, 30 second delays before reconnect attempts.\r\nconst DEFAULT_RETRY_DELAYS_IN_MILLISECONDS = [0, 2000, 10000, 30000, null];\r\n\r\n/** @private */\r\nexport class DefaultReconnectPolicy implements IRetryPolicy {\r\n private readonly _retryDelays: (number | null)[];\r\n\r\n constructor(retryDelays?: number[]) {\r\n this._retryDelays = retryDelays !== undefined ? [...retryDelays, null] : DEFAULT_RETRY_DELAYS_IN_MILLISECONDS;\r\n }\r\n\r\n public nextRetryDelayInMilliseconds(retryContext: RetryContext): number | null {\r\n return this._retryDelays[retryContext.previousRetryCount];\r\n }\r\n}\r\n","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\n\r\nexport abstract class HeaderNames {\r\n static readonly Authorization = \"Authorization\";\r\n static readonly Cookie = \"Cookie\";\r\n}\r\n","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\n\r\nimport { HeaderNames } from \"./HeaderNames\";\r\nimport { HttpClient, HttpRequest, HttpResponse } from \"./HttpClient\";\r\n\r\n/** @private */\r\nexport class AccessTokenHttpClient extends HttpClient {\r\n private _innerClient: HttpClient;\r\n _accessToken: string | undefined;\r\n _accessTokenFactory: (() => string | Promise) | undefined;\r\n\r\n constructor(innerClient: HttpClient, accessTokenFactory: (() => string | Promise) | undefined) {\r\n super();\r\n\r\n this._innerClient = innerClient;\r\n this._accessTokenFactory = accessTokenFactory;\r\n }\r\n\r\n public async send(request: HttpRequest): Promise {\r\n let allowRetry = true;\r\n if (this._accessTokenFactory && (!this._accessToken || (request.url && request.url.indexOf(\"/negotiate?\") > 0))) {\r\n // don't retry if the request is a negotiate or if we just got a potentially new token from the access token factory\r\n allowRetry = false;\r\n this._accessToken = await this._accessTokenFactory();\r\n }\r\n this._setAuthorizationHeader(request);\r\n const response = await this._innerClient.send(request);\r\n\r\n if (allowRetry && response.statusCode === 401 && this._accessTokenFactory) {\r\n this._accessToken = await this._accessTokenFactory();\r\n this._setAuthorizationHeader(request);\r\n return await this._innerClient.send(request);\r\n }\r\n return response;\r\n }\r\n\r\n private _setAuthorizationHeader(request: HttpRequest) {\r\n if (!request.headers) {\r\n request.headers = {};\r\n }\r\n if (this._accessToken) {\r\n request.headers[HeaderNames.Authorization] = `Bearer ${this._accessToken}`\r\n }\r\n // don't remove the header if there isn't an access token factory, the user manually added the header in this case\r\n else if (this._accessTokenFactory) {\r\n if (request.headers[HeaderNames.Authorization]) {\r\n delete request.headers[HeaderNames.Authorization];\r\n }\r\n }\r\n }\r\n\r\n public getCookieString(url: string): string {\r\n return this._innerClient.getCookieString(url);\r\n }\r\n}","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\n\r\n// This will be treated as a bit flag in the future, so we keep it using power-of-two values.\r\n/** Specifies a specific HTTP transport type. */\r\nexport enum HttpTransportType {\r\n /** Specifies no transport preference. */\r\n None = 0,\r\n /** Specifies the WebSockets transport. */\r\n WebSockets = 1,\r\n /** Specifies the Server-Sent Events transport. */\r\n ServerSentEvents = 2,\r\n /** Specifies the Long Polling transport. */\r\n LongPolling = 4,\r\n}\r\n\r\n/** Specifies the transfer format for a connection. */\r\nexport enum TransferFormat {\r\n /** Specifies that only text data will be transmitted over the connection. */\r\n Text = 1,\r\n /** Specifies that binary data will be transmitted over the connection. */\r\n Binary = 2,\r\n}\r\n\r\n/** An abstraction over the behavior of transports. This is designed to support the framework and not intended for use by applications. */\r\nexport interface ITransport {\r\n connect(url: string, transferFormat: TransferFormat): Promise;\r\n send(data: any): Promise;\r\n stop(): Promise;\r\n onreceive: ((data: string | ArrayBuffer) => void) | null;\r\n onclose: ((error?: Error) => void) | null;\r\n}\r\n","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\n\r\n// Rough polyfill of https://developer.mozilla.org/en-US/docs/Web/API/AbortController\r\n// We don't actually ever use the API being polyfilled, we always use the polyfill because\r\n// it's a very new API right now.\r\n\r\n// Not exported from index.\r\n/** @private */\r\nexport class AbortController implements AbortSignal {\r\n private _isAborted: boolean = false;\r\n public onabort: (() => void) | null = null;\r\n\r\n public abort(): void {\r\n if (!this._isAborted) {\r\n this._isAborted = true;\r\n if (this.onabort) {\r\n this.onabort();\r\n }\r\n }\r\n }\r\n\r\n get signal(): AbortSignal {\r\n return this;\r\n }\r\n\r\n get aborted(): boolean {\r\n return this._isAborted;\r\n }\r\n}\r\n\r\n/** Represents a signal that can be monitored to determine if a request has been aborted. */\r\nexport interface AbortSignal {\r\n /** Indicates if the request has been aborted. */\r\n aborted: boolean;\r\n /** Set this to a handler that will be invoked when the request is aborted. */\r\n onabort: (() => void) | null;\r\n}\r\n","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\n\r\nimport { AbortController } from \"./AbortController\";\r\nimport { HttpError, TimeoutError } from \"./Errors\";\r\nimport { HttpClient, HttpRequest } from \"./HttpClient\";\r\nimport { ILogger, LogLevel } from \"./ILogger\";\r\nimport { ITransport, TransferFormat } from \"./ITransport\";\r\nimport { Arg, getDataDetail, getUserAgentHeader, sendMessage } from \"./Utils\";\r\nimport { IHttpConnectionOptions } from \"./IHttpConnectionOptions\";\r\n\r\n// Not exported from 'index', this type is internal.\r\n/** @private */\r\nexport class LongPollingTransport implements ITransport {\r\n private readonly _httpClient: HttpClient;\r\n private readonly _logger: ILogger;\r\n private readonly _options: IHttpConnectionOptions;\r\n private readonly _pollAbort: AbortController;\r\n\r\n private _url?: string;\r\n private _running: boolean;\r\n private _receiving?: Promise;\r\n private _closeError?: Error;\r\n\r\n public onreceive: ((data: string | ArrayBuffer) => void) | null;\r\n public onclose: ((error?: Error) => void) | null;\r\n\r\n // This is an internal type, not exported from 'index' so this is really just internal.\r\n public get pollAborted(): boolean {\r\n return this._pollAbort.aborted;\r\n }\r\n\r\n constructor(httpClient: HttpClient, logger: ILogger, options: IHttpConnectionOptions) {\r\n this._httpClient = httpClient;\r\n this._logger = logger;\r\n this._pollAbort = new AbortController();\r\n this._options = options;\r\n\r\n this._running = false;\r\n\r\n this.onreceive = null;\r\n this.onclose = null;\r\n }\r\n\r\n public async connect(url: string, transferFormat: TransferFormat): Promise {\r\n Arg.isRequired(url, \"url\");\r\n Arg.isRequired(transferFormat, \"transferFormat\");\r\n Arg.isIn(transferFormat, TransferFormat, \"transferFormat\");\r\n\r\n this._url = url;\r\n\r\n this._logger.log(LogLevel.Trace, \"(LongPolling transport) Connecting.\");\r\n\r\n // Allow binary format on Node and Browsers that support binary content (indicated by the presence of responseType property)\r\n if (transferFormat === TransferFormat.Binary &&\r\n (typeof XMLHttpRequest !== \"undefined\" && typeof new XMLHttpRequest().responseType !== \"string\")) {\r\n throw new Error(\"Binary protocols over XmlHttpRequest not implementing advanced features are not supported.\");\r\n }\r\n\r\n const [name, value] = getUserAgentHeader();\r\n const headers = { [name]: value, ...this._options.headers };\r\n\r\n const pollOptions: HttpRequest = {\r\n abortSignal: this._pollAbort.signal,\r\n headers,\r\n timeout: 100000,\r\n withCredentials: this._options.withCredentials,\r\n };\r\n\r\n if (transferFormat === TransferFormat.Binary) {\r\n pollOptions.responseType = \"arraybuffer\";\r\n }\r\n\r\n // Make initial long polling request\r\n // Server uses first long polling request to finish initializing connection and it returns without data\r\n const pollUrl = `${url}&_=${Date.now()}`;\r\n this._logger.log(LogLevel.Trace, `(LongPolling transport) polling: ${pollUrl}.`);\r\n const response = await this._httpClient.get(pollUrl, pollOptions);\r\n if (response.statusCode !== 200) {\r\n this._logger.log(LogLevel.Error, `(LongPolling transport) Unexpected response code: ${response.statusCode}.`);\r\n\r\n // Mark running as false so that the poll immediately ends and runs the close logic\r\n this._closeError = new HttpError(response.statusText || \"\", response.statusCode);\r\n this._running = false;\r\n } else {\r\n this._running = true;\r\n }\r\n\r\n this._receiving = this._poll(this._url, pollOptions);\r\n }\r\n\r\n private async _poll(url: string, pollOptions: HttpRequest): Promise {\r\n try {\r\n while (this._running) {\r\n try {\r\n const pollUrl = `${url}&_=${Date.now()}`;\r\n this._logger.log(LogLevel.Trace, `(LongPolling transport) polling: ${pollUrl}.`);\r\n const response = await this._httpClient.get(pollUrl, pollOptions);\r\n\r\n if (response.statusCode === 204) {\r\n this._logger.log(LogLevel.Information, \"(LongPolling transport) Poll terminated by server.\");\r\n\r\n this._running = false;\r\n } else if (response.statusCode !== 200) {\r\n this._logger.log(LogLevel.Error, `(LongPolling transport) Unexpected response code: ${response.statusCode}.`);\r\n\r\n // Unexpected status code\r\n this._closeError = new HttpError(response.statusText || \"\", response.statusCode);\r\n this._running = false;\r\n } else {\r\n // Process the response\r\n if (response.content) {\r\n this._logger.log(LogLevel.Trace, `(LongPolling transport) data received. ${getDataDetail(response.content, this._options.logMessageContent!)}.`);\r\n if (this.onreceive) {\r\n this.onreceive(response.content);\r\n }\r\n } else {\r\n // This is another way timeout manifest.\r\n this._logger.log(LogLevel.Trace, \"(LongPolling transport) Poll timed out, reissuing.\");\r\n }\r\n }\r\n } catch (e) {\r\n if (!this._running) {\r\n // Log but disregard errors that occur after stopping\r\n this._logger.log(LogLevel.Trace, `(LongPolling transport) Poll errored after shutdown: ${e.message}`);\r\n } else {\r\n if (e instanceof TimeoutError) {\r\n // Ignore timeouts and reissue the poll.\r\n this._logger.log(LogLevel.Trace, \"(LongPolling transport) Poll timed out, reissuing.\");\r\n } else {\r\n // Close the connection with the error as the result.\r\n this._closeError = e;\r\n this._running = false;\r\n }\r\n }\r\n }\r\n }\r\n } finally {\r\n this._logger.log(LogLevel.Trace, \"(LongPolling transport) Polling complete.\");\r\n\r\n // We will reach here with pollAborted==false when the server returned a response causing the transport to stop.\r\n // If pollAborted==true then client initiated the stop and the stop method will raise the close event after DELETE is sent.\r\n if (!this.pollAborted) {\r\n this._raiseOnClose();\r\n }\r\n }\r\n }\r\n\r\n public async send(data: any): Promise {\r\n if (!this._running) {\r\n return Promise.reject(new Error(\"Cannot send until the transport is connected\"));\r\n }\r\n return sendMessage(this._logger, \"LongPolling\", this._httpClient, this._url!, data, this._options);\r\n }\r\n\r\n public async stop(): Promise {\r\n this._logger.log(LogLevel.Trace, \"(LongPolling transport) Stopping polling.\");\r\n\r\n // Tell receiving loop to stop, abort any current request, and then wait for it to finish\r\n this._running = false;\r\n this._pollAbort.abort();\r\n\r\n try {\r\n await this._receiving;\r\n\r\n // Send DELETE to clean up long polling on the server\r\n this._logger.log(LogLevel.Trace, `(LongPolling transport) sending DELETE request to ${this._url}.`);\r\n\r\n const headers: {[k: string]: string} = {};\r\n const [name, value] = getUserAgentHeader();\r\n headers[name] = value;\r\n\r\n const deleteOptions: HttpRequest = {\r\n headers: { ...headers, ...this._options.headers },\r\n timeout: this._options.timeout,\r\n withCredentials: this._options.withCredentials,\r\n };\r\n await this._httpClient.delete(this._url!, deleteOptions);\r\n\r\n this._logger.log(LogLevel.Trace, \"(LongPolling transport) DELETE request sent.\");\r\n } finally {\r\n this._logger.log(LogLevel.Trace, \"(LongPolling transport) Stop finished.\");\r\n\r\n // Raise close event here instead of in polling\r\n // It needs to happen after the DELETE request is sent\r\n this._raiseOnClose();\r\n }\r\n }\r\n\r\n private _raiseOnClose() {\r\n if (this.onclose) {\r\n let logMessage = \"(LongPolling transport) Firing onclose event.\";\r\n if (this._closeError) {\r\n logMessage += \" Error: \" + this._closeError;\r\n }\r\n this._logger.log(LogLevel.Trace, logMessage);\r\n this.onclose(this._closeError);\r\n }\r\n }\r\n}\r\n","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\n\r\nimport { HttpClient } from \"./HttpClient\";\r\nimport { MessageHeaders } from \"./IHubProtocol\";\r\nimport { ILogger, LogLevel } from \"./ILogger\";\r\nimport { ITransport, TransferFormat } from \"./ITransport\";\r\nimport { Arg, getDataDetail, getUserAgentHeader, Platform, sendMessage } from \"./Utils\";\r\nimport { IHttpConnectionOptions } from \"./IHttpConnectionOptions\";\r\n\r\n/** @private */\r\nexport class ServerSentEventsTransport implements ITransport {\r\n private readonly _httpClient: HttpClient;\r\n private readonly _accessToken: string | undefined;\r\n private readonly _logger: ILogger;\r\n private readonly _options: IHttpConnectionOptions;\r\n private _eventSource?: EventSource;\r\n private _url?: string;\r\n\r\n public onreceive: ((data: string | ArrayBuffer) => void) | null;\r\n public onclose: ((error?: Error) => void) | null;\r\n\r\n constructor(httpClient: HttpClient, accessToken: string | undefined, logger: ILogger,\r\n options: IHttpConnectionOptions) {\r\n this._httpClient = httpClient;\r\n this._accessToken = accessToken;\r\n this._logger = logger;\r\n this._options = options;\r\n\r\n this.onreceive = null;\r\n this.onclose = null;\r\n }\r\n\r\n public async connect(url: string, transferFormat: TransferFormat): Promise {\r\n Arg.isRequired(url, \"url\");\r\n Arg.isRequired(transferFormat, \"transferFormat\");\r\n Arg.isIn(transferFormat, TransferFormat, \"transferFormat\");\r\n\r\n this._logger.log(LogLevel.Trace, \"(SSE transport) Connecting.\");\r\n\r\n // set url before accessTokenFactory because this._url is only for send and we set the auth header instead of the query string for send\r\n this._url = url;\r\n\r\n if (this._accessToken) {\r\n url += (url.indexOf(\"?\") < 0 ? \"?\" : \"&\") + `access_token=${encodeURIComponent(this._accessToken)}`;\r\n }\r\n\r\n return new Promise((resolve, reject) => {\r\n let opened = false;\r\n if (transferFormat !== TransferFormat.Text) {\r\n reject(new Error(\"The Server-Sent Events transport only supports the 'Text' transfer format\"));\r\n return;\r\n }\r\n\r\n let eventSource: EventSource;\r\n if (Platform.isBrowser || Platform.isWebWorker) {\r\n eventSource = new this._options.EventSource!(url, { withCredentials: this._options.withCredentials });\r\n } else {\r\n // Non-browser passes cookies via the dictionary\r\n const cookies = this._httpClient.getCookieString(url);\r\n const headers: MessageHeaders = {};\r\n headers.Cookie = cookies;\r\n const [name, value] = getUserAgentHeader();\r\n headers[name] = value;\r\n\r\n eventSource = new this._options.EventSource!(url, { withCredentials: this._options.withCredentials, headers: { ...headers, ...this._options.headers} } as EventSourceInit);\r\n }\r\n\r\n try {\r\n eventSource.onmessage = (e: MessageEvent) => {\r\n if (this.onreceive) {\r\n try {\r\n this._logger.log(LogLevel.Trace, `(SSE transport) data received. ${getDataDetail(e.data, this._options.logMessageContent!)}.`);\r\n this.onreceive(e.data);\r\n } catch (error) {\r\n this._close(error);\r\n return;\r\n }\r\n }\r\n };\r\n\r\n // @ts-ignore: not using event on purpose\r\n eventSource.onerror = (e: Event) => {\r\n // EventSource doesn't give any useful information about server side closes.\r\n if (opened) {\r\n this._close();\r\n } else {\r\n reject(new Error(\"EventSource failed to connect. The connection could not be found on the server,\"\r\n + \" either the connection ID is not present on the server, or a proxy is refusing/buffering the connection.\"\r\n + \" If you have multiple servers check that sticky sessions are enabled.\"));\r\n }\r\n };\r\n\r\n eventSource.onopen = () => {\r\n this._logger.log(LogLevel.Information, `SSE connected to ${this._url}`);\r\n this._eventSource = eventSource;\r\n opened = true;\r\n resolve();\r\n };\r\n } catch (e) {\r\n reject(e);\r\n return;\r\n }\r\n });\r\n }\r\n\r\n public async send(data: any): Promise {\r\n if (!this._eventSource) {\r\n return Promise.reject(new Error(\"Cannot send until the transport is connected\"));\r\n }\r\n return sendMessage(this._logger, \"SSE\", this._httpClient, this._url!, data, this._options);\r\n }\r\n\r\n public stop(): Promise {\r\n this._close();\r\n return Promise.resolve();\r\n }\r\n\r\n private _close(e?: Error) {\r\n if (this._eventSource) {\r\n this._eventSource.close();\r\n this._eventSource = undefined;\r\n\r\n if (this.onclose) {\r\n this.onclose(e);\r\n }\r\n }\r\n }\r\n}\r\n","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\n\r\nimport { HeaderNames } from \"./HeaderNames\";\r\nimport { HttpClient } from \"./HttpClient\";\r\nimport { MessageHeaders } from \"./IHubProtocol\";\r\nimport { ILogger, LogLevel } from \"./ILogger\";\r\nimport { ITransport, TransferFormat } from \"./ITransport\";\r\nimport { WebSocketConstructor } from \"./Polyfills\";\r\nimport { Arg, getDataDetail, getUserAgentHeader, Platform } from \"./Utils\";\r\n\r\n/** @private */\r\nexport class WebSocketTransport implements ITransport {\r\n private readonly _logger: ILogger;\r\n private readonly _accessTokenFactory: (() => string | Promise) | undefined;\r\n private readonly _logMessageContent: boolean;\r\n private readonly _webSocketConstructor: WebSocketConstructor;\r\n private readonly _httpClient: HttpClient;\r\n private _webSocket?: WebSocket;\r\n private _headers: MessageHeaders;\r\n\r\n public onreceive: ((data: string | ArrayBuffer) => void) | null;\r\n public onclose: ((error?: Error) => void) | null;\r\n\r\n constructor(httpClient: HttpClient, accessTokenFactory: (() => string | Promise) | undefined, logger: ILogger,\r\n logMessageContent: boolean, webSocketConstructor: WebSocketConstructor, headers: MessageHeaders) {\r\n this._logger = logger;\r\n this._accessTokenFactory = accessTokenFactory;\r\n this._logMessageContent = logMessageContent;\r\n this._webSocketConstructor = webSocketConstructor;\r\n this._httpClient = httpClient;\r\n\r\n this.onreceive = null;\r\n this.onclose = null;\r\n this._headers = headers;\r\n }\r\n\r\n public async connect(url: string, transferFormat: TransferFormat): Promise {\r\n Arg.isRequired(url, \"url\");\r\n Arg.isRequired(transferFormat, \"transferFormat\");\r\n Arg.isIn(transferFormat, TransferFormat, \"transferFormat\");\r\n this._logger.log(LogLevel.Trace, \"(WebSockets transport) Connecting.\");\r\n\r\n let token: string;\r\n if (this._accessTokenFactory) {\r\n token = await this._accessTokenFactory();\r\n }\r\n\r\n return new Promise((resolve, reject) => {\r\n url = url.replace(/^http/, \"ws\");\r\n let webSocket: WebSocket | undefined;\r\n const cookies = this._httpClient.getCookieString(url);\r\n let opened = false;\r\n\r\n if (Platform.isNode || Platform.isReactNative) {\r\n const headers: {[k: string]: string} = {};\r\n const [name, value] = getUserAgentHeader();\r\n headers[name] = value;\r\n if (token) {\r\n headers[HeaderNames.Authorization] = `Bearer ${token}`;\r\n }\r\n\r\n if (cookies) {\r\n headers[HeaderNames.Cookie] = cookies;\r\n }\r\n\r\n // Only pass headers when in non-browser environments\r\n webSocket = new this._webSocketConstructor(url, undefined, {\r\n headers: { ...headers, ...this._headers },\r\n });\r\n }\r\n else\r\n {\r\n if (token) {\r\n url += (url.indexOf(\"?\") < 0 ? \"?\" : \"&\") + `access_token=${encodeURIComponent(token)}`;\r\n }\r\n }\r\n\r\n if (!webSocket) {\r\n // Chrome is not happy with passing 'undefined' as protocol\r\n webSocket = new this._webSocketConstructor(url);\r\n }\r\n\r\n if (transferFormat === TransferFormat.Binary) {\r\n webSocket.binaryType = \"arraybuffer\";\r\n }\r\n\r\n webSocket.onopen = (_event: Event) => {\r\n this._logger.log(LogLevel.Information, `WebSocket connected to ${url}.`);\r\n this._webSocket = webSocket;\r\n opened = true;\r\n resolve();\r\n };\r\n\r\n webSocket.onerror = (event: Event) => {\r\n let error: any = null;\r\n // ErrorEvent is a browser only type we need to check if the type exists before using it\r\n if (typeof ErrorEvent !== \"undefined\" && event instanceof ErrorEvent) {\r\n error = event.error;\r\n } else {\r\n error = \"There was an error with the transport\";\r\n }\r\n\r\n this._logger.log(LogLevel.Information, `(WebSockets transport) ${error}.`);\r\n };\r\n\r\n webSocket.onmessage = (message: MessageEvent) => {\r\n this._logger.log(LogLevel.Trace, `(WebSockets transport) data received. ${getDataDetail(message.data, this._logMessageContent)}.`);\r\n if (this.onreceive) {\r\n try {\r\n this.onreceive(message.data);\r\n } catch (error) {\r\n this._close(error);\r\n return;\r\n }\r\n }\r\n };\r\n\r\n webSocket.onclose = (event: CloseEvent) => {\r\n // Don't call close handler if connection was never established\r\n // We'll reject the connect call instead\r\n if (opened) {\r\n this._close(event);\r\n } else {\r\n let error: any = null;\r\n // ErrorEvent is a browser only type we need to check if the type exists before using it\r\n if (typeof ErrorEvent !== \"undefined\" && event instanceof ErrorEvent) {\r\n error = event.error;\r\n } else {\r\n error = \"WebSocket failed to connect. The connection could not be found on the server,\"\r\n + \" either the endpoint may not be a SignalR endpoint,\"\r\n + \" the connection ID is not present on the server, or there is a proxy blocking WebSockets.\"\r\n + \" If you have multiple servers check that sticky sessions are enabled.\";\r\n }\r\n\r\n reject(new Error(error));\r\n }\r\n };\r\n });\r\n }\r\n\r\n public send(data: any): Promise {\r\n if (this._webSocket && this._webSocket.readyState === this._webSocketConstructor.OPEN) {\r\n this._logger.log(LogLevel.Trace, `(WebSockets transport) sending data. ${getDataDetail(data, this._logMessageContent)}.`);\r\n this._webSocket.send(data);\r\n return Promise.resolve();\r\n }\r\n\r\n return Promise.reject(\"WebSocket is not in the OPEN state\");\r\n }\r\n\r\n public stop(): Promise {\r\n if (this._webSocket) {\r\n // Manually invoke onclose callback inline so we know the HttpConnection was closed properly before returning\r\n // This also solves an issue where websocket.onclose could take 18+ seconds to trigger during network disconnects\r\n this._close(undefined);\r\n }\r\n\r\n return Promise.resolve();\r\n }\r\n\r\n private _close(event?: CloseEvent | Error): void {\r\n // webSocket will be null if the transport did not start successfully\r\n if (this._webSocket) {\r\n // Clear websocket handlers because we are considering the socket closed now\r\n this._webSocket.onclose = () => {};\r\n this._webSocket.onmessage = () => {};\r\n this._webSocket.onerror = () => {};\r\n this._webSocket.close();\r\n this._webSocket = undefined;\r\n }\r\n\r\n this._logger.log(LogLevel.Trace, \"(WebSockets transport) socket closed.\");\r\n if (this.onclose) {\r\n if (this._isCloseEvent(event) && (event.wasClean === false || event.code !== 1000)) {\r\n this.onclose(new Error(`WebSocket closed with status code: ${event.code} (${event.reason || \"no reason given\"}).`));\r\n } else if (event instanceof Error) {\r\n this.onclose(event);\r\n } else {\r\n this.onclose();\r\n }\r\n }\r\n }\r\n\r\n private _isCloseEvent(event?: any): event is CloseEvent {\r\n return event && typeof event.wasClean === \"boolean\" && typeof event.code === \"number\";\r\n }\r\n}\r\n","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\n\r\nimport { AccessTokenHttpClient } from \"./AccessTokenHttpClient\";\r\nimport { DefaultHttpClient } from \"./DefaultHttpClient\";\r\nimport { AggregateErrors, DisabledTransportError, FailedToNegotiateWithServerError, FailedToStartTransportError, HttpError, UnsupportedTransportError, AbortError } from \"./Errors\";\r\nimport { IConnection } from \"./IConnection\";\r\nimport { IHttpConnectionOptions } from \"./IHttpConnectionOptions\";\r\nimport { ILogger, LogLevel } from \"./ILogger\";\r\nimport { HttpTransportType, ITransport, TransferFormat } from \"./ITransport\";\r\nimport { LongPollingTransport } from \"./LongPollingTransport\";\r\nimport { ServerSentEventsTransport } from \"./ServerSentEventsTransport\";\r\nimport { Arg, createLogger, getUserAgentHeader, Platform } from \"./Utils\";\r\nimport { WebSocketTransport } from \"./WebSocketTransport\";\r\n\r\n/** @private */\r\nconst enum ConnectionState {\r\n Connecting = \"Connecting\",\r\n Connected = \"Connected\",\r\n Disconnected = \"Disconnected\",\r\n Disconnecting = \"Disconnecting\",\r\n}\r\n\r\n/** @private */\r\nexport interface INegotiateResponse {\r\n connectionId?: string;\r\n connectionToken?: string;\r\n negotiateVersion?: number;\r\n availableTransports?: IAvailableTransport[];\r\n url?: string;\r\n accessToken?: string;\r\n error?: string;\r\n}\r\n\r\n/** @private */\r\nexport interface IAvailableTransport {\r\n transport: keyof typeof HttpTransportType;\r\n transferFormats: (keyof typeof TransferFormat)[];\r\n}\r\n\r\nconst MAX_REDIRECTS = 100;\r\n\r\n/** @private */\r\nexport class HttpConnection implements IConnection {\r\n private _connectionState: ConnectionState;\r\n // connectionStarted is tracked independently from connectionState, so we can check if the\r\n // connection ever did successfully transition from connecting to connected before disconnecting.\r\n private _connectionStarted: boolean;\r\n private readonly _httpClient: AccessTokenHttpClient;\r\n private readonly _logger: ILogger;\r\n private readonly _options: IHttpConnectionOptions;\r\n // Needs to not start with _ to be available for tests\r\n // eslint-disable-next-line @typescript-eslint/naming-convention\r\n private transport?: ITransport;\r\n private _startInternalPromise?: Promise;\r\n private _stopPromise?: Promise;\r\n private _stopPromiseResolver: (value?: PromiseLike) => void = () => {};\r\n private _stopError?: Error;\r\n private _accessTokenFactory?: () => string | Promise;\r\n private _sendQueue?: TransportSendQueue;\r\n\r\n public readonly features: any = {};\r\n public baseUrl: string;\r\n public connectionId?: string;\r\n public onreceive: ((data: string | ArrayBuffer) => void) | null;\r\n public onclose: ((e?: Error) => void) | null;\r\n\r\n private readonly _negotiateVersion: number = 1;\r\n\r\n constructor(url: string, options: IHttpConnectionOptions = {}) {\r\n Arg.isRequired(url, \"url\");\r\n\r\n this._logger = createLogger(options.logger);\r\n this.baseUrl = this._resolveUrl(url);\r\n\r\n options = options || {};\r\n options.logMessageContent = options.logMessageContent === undefined ? false : options.logMessageContent;\r\n if (typeof options.withCredentials === \"boolean\" || options.withCredentials === undefined) {\r\n options.withCredentials = options.withCredentials === undefined ? true : options.withCredentials;\r\n } else {\r\n throw new Error(\"withCredentials option was not a 'boolean' or 'undefined' value\");\r\n }\r\n options.timeout = options.timeout === undefined ? 100 * 1000 : options.timeout;\r\n\r\n let webSocketModule: any = null;\r\n let eventSourceModule: any = null;\r\n\r\n if (Platform.isNode && typeof require !== \"undefined\") {\r\n // In order to ignore the dynamic require in webpack builds we need to do this magic\r\n // @ts-ignore: TS doesn't know about these names\r\n const requireFunc = typeof __webpack_require__ === \"function\" ? __non_webpack_require__ : require;\r\n webSocketModule = requireFunc(\"ws\");\r\n eventSourceModule = requireFunc(\"eventsource\");\r\n }\r\n\r\n if (!Platform.isNode && typeof WebSocket !== \"undefined\" && !options.WebSocket) {\r\n options.WebSocket = WebSocket;\r\n } else if (Platform.isNode && !options.WebSocket) {\r\n if (webSocketModule) {\r\n options.WebSocket = webSocketModule;\r\n }\r\n }\r\n\r\n if (!Platform.isNode && typeof EventSource !== \"undefined\" && !options.EventSource) {\r\n options.EventSource = EventSource;\r\n } else if (Platform.isNode && !options.EventSource) {\r\n if (typeof eventSourceModule !== \"undefined\") {\r\n options.EventSource = eventSourceModule;\r\n }\r\n }\r\n\r\n this._httpClient = new AccessTokenHttpClient(options.httpClient || new DefaultHttpClient(this._logger), options.accessTokenFactory);\r\n this._connectionState = ConnectionState.Disconnected;\r\n this._connectionStarted = false;\r\n this._options = options;\r\n\r\n this.onreceive = null;\r\n this.onclose = null;\r\n }\r\n\r\n public start(): Promise;\r\n public start(transferFormat: TransferFormat): Promise;\r\n public async start(transferFormat?: TransferFormat): Promise {\r\n transferFormat = transferFormat || TransferFormat.Binary;\r\n\r\n Arg.isIn(transferFormat, TransferFormat, \"transferFormat\");\r\n\r\n this._logger.log(LogLevel.Debug, `Starting connection with transfer format '${TransferFormat[transferFormat]}'.`);\r\n\r\n if (this._connectionState !== ConnectionState.Disconnected) {\r\n return Promise.reject(new Error(\"Cannot start an HttpConnection that is not in the 'Disconnected' state.\"));\r\n }\r\n\r\n this._connectionState = ConnectionState.Connecting;\r\n\r\n this._startInternalPromise = this._startInternal(transferFormat);\r\n await this._startInternalPromise;\r\n\r\n // The TypeScript compiler thinks that connectionState must be Connecting here. The TypeScript compiler is wrong.\r\n if (this._connectionState as any === ConnectionState.Disconnecting) {\r\n // stop() was called and transitioned the client into the Disconnecting state.\r\n const message = \"Failed to start the HttpConnection before stop() was called.\";\r\n this._logger.log(LogLevel.Error, message);\r\n\r\n // We cannot await stopPromise inside startInternal since stopInternal awaits the startInternalPromise.\r\n await this._stopPromise;\r\n\r\n return Promise.reject(new AbortError(message));\r\n } else if (this._connectionState as any !== ConnectionState.Connected) {\r\n // stop() was called and transitioned the client into the Disconnecting state.\r\n const message = \"HttpConnection.startInternal completed gracefully but didn't enter the connection into the connected state!\";\r\n this._logger.log(LogLevel.Error, message);\r\n return Promise.reject(new AbortError(message));\r\n }\r\n\r\n this._connectionStarted = true;\r\n }\r\n\r\n public send(data: string | ArrayBuffer): Promise {\r\n if (this._connectionState !== ConnectionState.Connected) {\r\n return Promise.reject(new Error(\"Cannot send data if the connection is not in the 'Connected' State.\"));\r\n }\r\n\r\n if (!this._sendQueue) {\r\n this._sendQueue = new TransportSendQueue(this.transport!);\r\n }\r\n\r\n // Transport will not be null if state is connected\r\n return this._sendQueue.send(data);\r\n }\r\n\r\n public async stop(error?: Error): Promise {\r\n if (this._connectionState === ConnectionState.Disconnected) {\r\n this._logger.log(LogLevel.Debug, `Call to HttpConnection.stop(${error}) ignored because the connection is already in the disconnected state.`);\r\n return Promise.resolve();\r\n }\r\n\r\n if (this._connectionState === ConnectionState.Disconnecting) {\r\n this._logger.log(LogLevel.Debug, `Call to HttpConnection.stop(${error}) ignored because the connection is already in the disconnecting state.`);\r\n return this._stopPromise;\r\n }\r\n\r\n this._connectionState = ConnectionState.Disconnecting;\r\n\r\n this._stopPromise = new Promise((resolve) => {\r\n // Don't complete stop() until stopConnection() completes.\r\n this._stopPromiseResolver = resolve;\r\n });\r\n\r\n // stopInternal should never throw so just observe it.\r\n await this._stopInternal(error);\r\n await this._stopPromise;\r\n }\r\n\r\n private async _stopInternal(error?: Error): Promise {\r\n // Set error as soon as possible otherwise there is a race between\r\n // the transport closing and providing an error and the error from a close message\r\n // We would prefer the close message error.\r\n this._stopError = error;\r\n\r\n try {\r\n await this._startInternalPromise;\r\n } catch (e) {\r\n // This exception is returned to the user as a rejected Promise from the start method.\r\n }\r\n\r\n // The transport's onclose will trigger stopConnection which will run our onclose event.\r\n // The transport should always be set if currently connected. If it wasn't set, it's likely because\r\n // stop was called during start() and start() failed.\r\n if (this.transport) {\r\n try {\r\n await this.transport.stop();\r\n } catch (e) {\r\n this._logger.log(LogLevel.Error, `HttpConnection.transport.stop() threw error '${e}'.`);\r\n this._stopConnection();\r\n }\r\n\r\n this.transport = undefined;\r\n } else {\r\n this._logger.log(LogLevel.Debug, \"HttpConnection.transport is undefined in HttpConnection.stop() because start() failed.\");\r\n }\r\n }\r\n\r\n private async _startInternal(transferFormat: TransferFormat): Promise {\r\n // Store the original base url and the access token factory since they may change\r\n // as part of negotiating\r\n let url = this.baseUrl;\r\n this._accessTokenFactory = this._options.accessTokenFactory;\r\n this._httpClient._accessTokenFactory = this._accessTokenFactory;\r\n\r\n try {\r\n if (this._options.skipNegotiation) {\r\n if (this._options.transport === HttpTransportType.WebSockets) {\r\n // No need to add a connection ID in this case\r\n this.transport = this._constructTransport(HttpTransportType.WebSockets);\r\n // We should just call connect directly in this case.\r\n // No fallback or negotiate in this case.\r\n await this._startTransport(url, transferFormat);\r\n } else {\r\n throw new Error(\"Negotiation can only be skipped when using the WebSocket transport directly.\");\r\n }\r\n } else {\r\n let negotiateResponse: INegotiateResponse | null = null;\r\n let redirects = 0;\r\n\r\n do {\r\n negotiateResponse = await this._getNegotiationResponse(url);\r\n // the user tries to stop the connection when it is being started\r\n if (this._connectionState === ConnectionState.Disconnecting || this._connectionState === ConnectionState.Disconnected) {\r\n throw new AbortError(\"The connection was stopped during negotiation.\");\r\n }\r\n\r\n if (negotiateResponse.error) {\r\n throw new Error(negotiateResponse.error);\r\n }\r\n\r\n if ((negotiateResponse as any).ProtocolVersion) {\r\n throw new Error(\"Detected a connection attempt to an ASP.NET SignalR Server. This client only supports connecting to an ASP.NET Core SignalR Server. See https://aka.ms/signalr-core-differences for details.\");\r\n }\r\n\r\n if (negotiateResponse.url) {\r\n url = negotiateResponse.url;\r\n }\r\n\r\n if (negotiateResponse.accessToken) {\r\n // Replace the current access token factory with one that uses\r\n // the returned access token\r\n const accessToken = negotiateResponse.accessToken;\r\n this._accessTokenFactory = () => accessToken;\r\n // set the factory to undefined so the AccessTokenHttpClient won't retry with the same token, since we know it won't change until a connection restart\r\n this._httpClient._accessToken = accessToken;\r\n this._httpClient._accessTokenFactory = undefined;\r\n }\r\n\r\n redirects++;\r\n }\r\n while (negotiateResponse.url && redirects < MAX_REDIRECTS);\r\n\r\n if (redirects === MAX_REDIRECTS && negotiateResponse.url) {\r\n throw new Error(\"Negotiate redirection limit exceeded.\");\r\n }\r\n\r\n await this._createTransport(url, this._options.transport, negotiateResponse, transferFormat);\r\n }\r\n\r\n if (this.transport instanceof LongPollingTransport) {\r\n this.features.inherentKeepAlive = true;\r\n }\r\n\r\n if (this._connectionState === ConnectionState.Connecting) {\r\n // Ensure the connection transitions to the connected state prior to completing this.startInternalPromise.\r\n // start() will handle the case when stop was called and startInternal exits still in the disconnecting state.\r\n this._logger.log(LogLevel.Debug, \"The HttpConnection connected successfully.\");\r\n this._connectionState = ConnectionState.Connected;\r\n }\r\n\r\n // stop() is waiting on us via this.startInternalPromise so keep this.transport around so it can clean up.\r\n // This is the only case startInternal can exit in neither the connected nor disconnected state because stopConnection()\r\n // will transition to the disconnected state. start() will wait for the transition using the stopPromise.\r\n } catch (e) {\r\n this._logger.log(LogLevel.Error, \"Failed to start the connection: \" + e);\r\n this._connectionState = ConnectionState.Disconnected;\r\n this.transport = undefined;\r\n\r\n // if start fails, any active calls to stop assume that start will complete the stop promise\r\n this._stopPromiseResolver();\r\n return Promise.reject(e);\r\n }\r\n }\r\n\r\n private async _getNegotiationResponse(url: string): Promise {\r\n const headers: {[k: string]: string} = {};\r\n const [name, value] = getUserAgentHeader();\r\n headers[name] = value;\r\n\r\n const negotiateUrl = this._resolveNegotiateUrl(url);\r\n this._logger.log(LogLevel.Debug, `Sending negotiation request: ${negotiateUrl}.`);\r\n try {\r\n const response = await this._httpClient.post(negotiateUrl, {\r\n content: \"\",\r\n headers: { ...headers, ...this._options.headers },\r\n timeout: this._options.timeout,\r\n withCredentials: this._options.withCredentials,\r\n });\r\n\r\n if (response.statusCode !== 200) {\r\n return Promise.reject(new Error(`Unexpected status code returned from negotiate '${response.statusCode}'`));\r\n }\r\n\r\n const negotiateResponse = JSON.parse(response.content as string) as INegotiateResponse;\r\n if (!negotiateResponse.negotiateVersion || negotiateResponse.negotiateVersion < 1) {\r\n // Negotiate version 0 doesn't use connectionToken\r\n // So we set it equal to connectionId so all our logic can use connectionToken without being aware of the negotiate version\r\n negotiateResponse.connectionToken = negotiateResponse.connectionId;\r\n }\r\n return negotiateResponse;\r\n } catch (e) {\r\n let errorMessage = \"Failed to complete negotiation with the server: \" + e;\r\n if (e instanceof HttpError) {\r\n if (e.statusCode === 404) {\r\n errorMessage = errorMessage + \" Either this is not a SignalR endpoint or there is a proxy blocking the connection.\";\r\n }\r\n }\r\n this._logger.log(LogLevel.Error, errorMessage);\r\n\r\n return Promise.reject(new FailedToNegotiateWithServerError(errorMessage));\r\n }\r\n }\r\n\r\n private _createConnectUrl(url: string, connectionToken: string | null | undefined) {\r\n if (!connectionToken) {\r\n return url;\r\n }\r\n\r\n return url + (url.indexOf(\"?\") === -1 ? \"?\" : \"&\") + `id=${connectionToken}`;\r\n }\r\n\r\n private async _createTransport(url: string, requestedTransport: HttpTransportType | ITransport | undefined, negotiateResponse: INegotiateResponse, requestedTransferFormat: TransferFormat): Promise {\r\n let connectUrl = this._createConnectUrl(url, negotiateResponse.connectionToken);\r\n if (this._isITransport(requestedTransport)) {\r\n this._logger.log(LogLevel.Debug, \"Connection was provided an instance of ITransport, using that directly.\");\r\n this.transport = requestedTransport;\r\n await this._startTransport(connectUrl, requestedTransferFormat);\r\n\r\n this.connectionId = negotiateResponse.connectionId;\r\n return;\r\n }\r\n\r\n const transportExceptions: any[] = [];\r\n const transports = negotiateResponse.availableTransports || [];\r\n let negotiate: INegotiateResponse | undefined = negotiateResponse;\r\n for (const endpoint of transports) {\r\n const transportOrError = this._resolveTransportOrError(endpoint, requestedTransport, requestedTransferFormat);\r\n if (transportOrError instanceof Error) {\r\n // Store the error and continue, we don't want to cause a re-negotiate in these cases\r\n transportExceptions.push(`${endpoint.transport} failed:`);\r\n transportExceptions.push(transportOrError);\r\n } else if (this._isITransport(transportOrError)) {\r\n this.transport = transportOrError;\r\n if (!negotiate) {\r\n try {\r\n negotiate = await this._getNegotiationResponse(url);\r\n } catch (ex) {\r\n return Promise.reject(ex);\r\n }\r\n connectUrl = this._createConnectUrl(url, negotiate.connectionToken);\r\n }\r\n try {\r\n await this._startTransport(connectUrl, requestedTransferFormat);\r\n this.connectionId = negotiate.connectionId;\r\n return;\r\n } catch (ex) {\r\n this._logger.log(LogLevel.Error, `Failed to start the transport '${endpoint.transport}': ${ex}`);\r\n negotiate = undefined;\r\n transportExceptions.push(new FailedToStartTransportError(`${endpoint.transport} failed: ${ex}`, HttpTransportType[endpoint.transport]));\r\n\r\n if (this._connectionState !== ConnectionState.Connecting) {\r\n const message = \"Failed to select transport before stop() was called.\";\r\n this._logger.log(LogLevel.Debug, message);\r\n return Promise.reject(new AbortError(message));\r\n }\r\n }\r\n }\r\n }\r\n\r\n if (transportExceptions.length > 0) {\r\n return Promise.reject(new AggregateErrors(`Unable to connect to the server with any of the available transports. ${transportExceptions.join(\" \")}`, transportExceptions));\r\n }\r\n return Promise.reject(new Error(\"None of the transports supported by the client are supported by the server.\"));\r\n }\r\n\r\n private _constructTransport(transport: HttpTransportType): ITransport {\r\n switch (transport) {\r\n case HttpTransportType.WebSockets:\r\n if (!this._options.WebSocket) {\r\n throw new Error(\"'WebSocket' is not supported in your environment.\");\r\n }\r\n return new WebSocketTransport(this._httpClient, this._accessTokenFactory, this._logger, this._options.logMessageContent!, this._options.WebSocket, this._options.headers || {});\r\n case HttpTransportType.ServerSentEvents:\r\n if (!this._options.EventSource) {\r\n throw new Error(\"'EventSource' is not supported in your environment.\");\r\n }\r\n return new ServerSentEventsTransport(this._httpClient, this._httpClient._accessToken, this._logger, this._options);\r\n case HttpTransportType.LongPolling:\r\n return new LongPollingTransport(this._httpClient, this._logger, this._options);\r\n default:\r\n throw new Error(`Unknown transport: ${transport}.`);\r\n }\r\n }\r\n\r\n private _startTransport(url: string, transferFormat: TransferFormat): Promise {\r\n this.transport!.onreceive = this.onreceive;\r\n this.transport!.onclose = (e) => this._stopConnection(e);\r\n return this.transport!.connect(url, transferFormat);\r\n }\r\n\r\n private _resolveTransportOrError(endpoint: IAvailableTransport, requestedTransport: HttpTransportType | undefined, requestedTransferFormat: TransferFormat): ITransport | Error {\r\n const transport = HttpTransportType[endpoint.transport];\r\n if (transport === null || transport === undefined) {\r\n this._logger.log(LogLevel.Debug, `Skipping transport '${endpoint.transport}' because it is not supported by this client.`);\r\n return new Error(`Skipping transport '${endpoint.transport}' because it is not supported by this client.`);\r\n } else {\r\n if (transportMatches(requestedTransport, transport)) {\r\n const transferFormats = endpoint.transferFormats.map((s) => TransferFormat[s]);\r\n if (transferFormats.indexOf(requestedTransferFormat) >= 0) {\r\n if ((transport === HttpTransportType.WebSockets && !this._options.WebSocket) ||\r\n (transport === HttpTransportType.ServerSentEvents && !this._options.EventSource)) {\r\n this._logger.log(LogLevel.Debug, `Skipping transport '${HttpTransportType[transport]}' because it is not supported in your environment.'`);\r\n return new UnsupportedTransportError(`'${HttpTransportType[transport]}' is not supported in your environment.`, transport);\r\n } else {\r\n this._logger.log(LogLevel.Debug, `Selecting transport '${HttpTransportType[transport]}'.`);\r\n try {\r\n return this._constructTransport(transport);\r\n } catch (ex) {\r\n return ex;\r\n }\r\n }\r\n } else {\r\n this._logger.log(LogLevel.Debug, `Skipping transport '${HttpTransportType[transport]}' because it does not support the requested transfer format '${TransferFormat[requestedTransferFormat]}'.`);\r\n return new Error(`'${HttpTransportType[transport]}' does not support ${TransferFormat[requestedTransferFormat]}.`);\r\n }\r\n } else {\r\n this._logger.log(LogLevel.Debug, `Skipping transport '${HttpTransportType[transport]}' because it was disabled by the client.`);\r\n return new DisabledTransportError(`'${HttpTransportType[transport]}' is disabled by the client.`, transport);\r\n }\r\n }\r\n }\r\n\r\n private _isITransport(transport: any): transport is ITransport {\r\n return transport && typeof (transport) === \"object\" && \"connect\" in transport;\r\n }\r\n\r\n private _stopConnection(error?: Error): void {\r\n this._logger.log(LogLevel.Debug, `HttpConnection.stopConnection(${error}) called while in state ${this._connectionState}.`);\r\n\r\n this.transport = undefined;\r\n\r\n // If we have a stopError, it takes precedence over the error from the transport\r\n error = this._stopError || error;\r\n this._stopError = undefined;\r\n\r\n if (this._connectionState === ConnectionState.Disconnected) {\r\n this._logger.log(LogLevel.Debug, `Call to HttpConnection.stopConnection(${error}) was ignored because the connection is already in the disconnected state.`);\r\n return;\r\n }\r\n\r\n if (this._connectionState === ConnectionState.Connecting) {\r\n this._logger.log(LogLevel.Warning, `Call to HttpConnection.stopConnection(${error}) was ignored because the connection is still in the connecting state.`);\r\n throw new Error(`HttpConnection.stopConnection(${error}) was called while the connection is still in the connecting state.`);\r\n }\r\n\r\n if (this._connectionState === ConnectionState.Disconnecting) {\r\n // A call to stop() induced this call to stopConnection and needs to be completed.\r\n // Any stop() awaiters will be scheduled to continue after the onclose callback fires.\r\n this._stopPromiseResolver();\r\n }\r\n\r\n if (error) {\r\n this._logger.log(LogLevel.Error, `Connection disconnected with error '${error}'.`);\r\n } else {\r\n this._logger.log(LogLevel.Information, \"Connection disconnected.\");\r\n }\r\n\r\n if (this._sendQueue) {\r\n this._sendQueue.stop().catch((e) => {\r\n this._logger.log(LogLevel.Error, `TransportSendQueue.stop() threw error '${e}'.`);\r\n });\r\n this._sendQueue = undefined;\r\n }\r\n\r\n this.connectionId = undefined;\r\n this._connectionState = ConnectionState.Disconnected;\r\n\r\n if (this._connectionStarted) {\r\n this._connectionStarted = false;\r\n try {\r\n if (this.onclose) {\r\n this.onclose(error);\r\n }\r\n } catch (e) {\r\n this._logger.log(LogLevel.Error, `HttpConnection.onclose(${error}) threw error '${e}'.`);\r\n }\r\n }\r\n }\r\n\r\n private _resolveUrl(url: string): string {\r\n // startsWith is not supported in IE\r\n if (url.lastIndexOf(\"https://\", 0) === 0 || url.lastIndexOf(\"http://\", 0) === 0) {\r\n return url;\r\n }\r\n\r\n if (!Platform.isBrowser) {\r\n throw new Error(`Cannot resolve '${url}'.`);\r\n }\r\n\r\n // Setting the url to the href propery of an anchor tag handles normalization\r\n // for us. There are 3 main cases.\r\n // 1. Relative path normalization e.g \"b\" -> \"http://localhost:5000/a/b\"\r\n // 2. Absolute path normalization e.g \"/a/b\" -> \"http://localhost:5000/a/b\"\r\n // 3. Networkpath reference normalization e.g \"//localhost:5000/a/b\" -> \"http://localhost:5000/a/b\"\r\n const aTag = window.document.createElement(\"a\");\r\n aTag.href = url;\r\n\r\n this._logger.log(LogLevel.Information, `Normalizing '${url}' to '${aTag.href}'.`);\r\n return aTag.href;\r\n }\r\n\r\n private _resolveNegotiateUrl(url: string): string {\r\n const index = url.indexOf(\"?\");\r\n let negotiateUrl = url.substring(0, index === -1 ? url.length : index);\r\n if (negotiateUrl[negotiateUrl.length - 1] !== \"/\") {\r\n negotiateUrl += \"/\";\r\n }\r\n negotiateUrl += \"negotiate\";\r\n negotiateUrl += index === -1 ? \"\" : url.substring(index);\r\n\r\n if (negotiateUrl.indexOf(\"negotiateVersion\") === -1) {\r\n negotiateUrl += index === -1 ? \"?\" : \"&\";\r\n negotiateUrl += \"negotiateVersion=\" + this._negotiateVersion;\r\n }\r\n return negotiateUrl;\r\n }\r\n}\r\n\r\nfunction transportMatches(requestedTransport: HttpTransportType | undefined, actualTransport: HttpTransportType) {\r\n return !requestedTransport || ((actualTransport & requestedTransport) !== 0);\r\n}\r\n\r\n/** @private */\r\nexport class TransportSendQueue {\r\n private _buffer: any[] = [];\r\n private _sendBufferedData: PromiseSource;\r\n private _executing: boolean = true;\r\n private _transportResult?: PromiseSource;\r\n private _sendLoopPromise: Promise;\r\n\r\n constructor(private readonly _transport: ITransport) {\r\n this._sendBufferedData = new PromiseSource();\r\n this._transportResult = new PromiseSource();\r\n\r\n this._sendLoopPromise = this._sendLoop();\r\n }\r\n\r\n public send(data: string | ArrayBuffer): Promise {\r\n this._bufferData(data);\r\n if (!this._transportResult) {\r\n this._transportResult = new PromiseSource();\r\n }\r\n return this._transportResult.promise;\r\n }\r\n\r\n public stop(): Promise {\r\n this._executing = false;\r\n this._sendBufferedData.resolve();\r\n return this._sendLoopPromise;\r\n }\r\n\r\n private _bufferData(data: string | ArrayBuffer): void {\r\n if (this._buffer.length && typeof(this._buffer[0]) !== typeof(data)) {\r\n throw new Error(`Expected data to be of type ${typeof(this._buffer)} but was of type ${typeof(data)}`);\r\n }\r\n\r\n this._buffer.push(data);\r\n this._sendBufferedData.resolve();\r\n }\r\n\r\n private async _sendLoop(): Promise {\r\n while (true) {\r\n await this._sendBufferedData.promise;\r\n\r\n if (!this._executing) {\r\n if (this._transportResult) {\r\n this._transportResult.reject(\"Connection stopped.\");\r\n }\r\n\r\n break;\r\n }\r\n\r\n this._sendBufferedData = new PromiseSource();\r\n\r\n const transportResult = this._transportResult!;\r\n this._transportResult = undefined;\r\n\r\n const data = typeof(this._buffer[0]) === \"string\" ?\r\n this._buffer.join(\"\") :\r\n TransportSendQueue._concatBuffers(this._buffer);\r\n\r\n this._buffer.length = 0;\r\n\r\n try {\r\n await this._transport.send(data);\r\n transportResult.resolve();\r\n } catch (error) {\r\n transportResult.reject(error);\r\n }\r\n }\r\n }\r\n\r\n private static _concatBuffers(arrayBuffers: ArrayBuffer[]): ArrayBuffer {\r\n const totalLength = arrayBuffers.map((b) => b.byteLength).reduce((a, b) => a + b);\r\n const result = new Uint8Array(totalLength);\r\n let offset = 0;\r\n for (const item of arrayBuffers) {\r\n result.set(new Uint8Array(item), offset);\r\n offset += item.byteLength;\r\n }\r\n\r\n return result.buffer;\r\n }\r\n}\r\n\r\nclass PromiseSource {\r\n private _resolver?: () => void;\r\n private _rejecter!: (reason?: any) => void;\r\n public promise: Promise;\r\n\r\n constructor() {\r\n this.promise = new Promise((resolve, reject) => [this._resolver, this._rejecter] = [resolve, reject]);\r\n }\r\n\r\n public resolve(): void {\r\n this._resolver!();\r\n }\r\n\r\n public reject(reason?: any): void {\r\n this._rejecter!(reason);\r\n }\r\n}\r\n","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\n\r\nimport { CompletionMessage, HubMessage, IHubProtocol, InvocationMessage, MessageType, StreamItemMessage } from \"./IHubProtocol\";\r\nimport { ILogger, LogLevel } from \"./ILogger\";\r\nimport { TransferFormat } from \"./ITransport\";\r\nimport { NullLogger } from \"./Loggers\";\r\nimport { TextMessageFormat } from \"./TextMessageFormat\";\r\n\r\nconst JSON_HUB_PROTOCOL_NAME: string = \"json\";\r\n\r\n/** Implements the JSON Hub Protocol. */\r\nexport class JsonHubProtocol implements IHubProtocol {\r\n\r\n /** @inheritDoc */\r\n public readonly name: string = JSON_HUB_PROTOCOL_NAME;\r\n /** @inheritDoc */\r\n public readonly version: number = 1;\r\n\r\n /** @inheritDoc */\r\n public readonly transferFormat: TransferFormat = TransferFormat.Text;\r\n\r\n /** Creates an array of {@link @microsoft/signalr.HubMessage} objects from the specified serialized representation.\r\n *\r\n * @param {string} input A string containing the serialized representation.\r\n * @param {ILogger} logger A logger that will be used to log messages that occur during parsing.\r\n */\r\n public parseMessages(input: string, logger: ILogger): HubMessage[] {\r\n // The interface does allow \"ArrayBuffer\" to be passed in, but this implementation does not. So let's throw a useful error.\r\n if (typeof input !== \"string\") {\r\n throw new Error(\"Invalid input for JSON hub protocol. Expected a string.\");\r\n }\r\n\r\n if (!input) {\r\n return [];\r\n }\r\n\r\n if (logger === null) {\r\n logger = NullLogger.instance;\r\n }\r\n\r\n // Parse the messages\r\n const messages = TextMessageFormat.parse(input);\r\n\r\n const hubMessages = [];\r\n for (const message of messages) {\r\n const parsedMessage = JSON.parse(message) as HubMessage;\r\n if (typeof parsedMessage.type !== \"number\") {\r\n throw new Error(\"Invalid payload.\");\r\n }\r\n switch (parsedMessage.type) {\r\n case MessageType.Invocation:\r\n this._isInvocationMessage(parsedMessage);\r\n break;\r\n case MessageType.StreamItem:\r\n this._isStreamItemMessage(parsedMessage);\r\n break;\r\n case MessageType.Completion:\r\n this._isCompletionMessage(parsedMessage);\r\n break;\r\n case MessageType.Ping:\r\n // Single value, no need to validate\r\n break;\r\n case MessageType.Close:\r\n // All optional values, no need to validate\r\n break;\r\n default:\r\n // Future protocol changes can add message types, old clients can ignore them\r\n logger.log(LogLevel.Information, \"Unknown message type '\" + parsedMessage.type + \"' ignored.\");\r\n continue;\r\n }\r\n hubMessages.push(parsedMessage);\r\n }\r\n\r\n return hubMessages;\r\n }\r\n\r\n /** Writes the specified {@link @microsoft/signalr.HubMessage} to a string and returns it.\r\n *\r\n * @param {HubMessage} message The message to write.\r\n * @returns {string} A string containing the serialized representation of the message.\r\n */\r\n public writeMessage(message: HubMessage): string {\r\n return TextMessageFormat.write(JSON.stringify(message));\r\n }\r\n\r\n private _isInvocationMessage(message: InvocationMessage): void {\r\n this._assertNotEmptyString(message.target, \"Invalid payload for Invocation message.\");\r\n\r\n if (message.invocationId !== undefined) {\r\n this._assertNotEmptyString(message.invocationId, \"Invalid payload for Invocation message.\");\r\n }\r\n }\r\n\r\n private _isStreamItemMessage(message: StreamItemMessage): void {\r\n this._assertNotEmptyString(message.invocationId, \"Invalid payload for StreamItem message.\");\r\n\r\n if (message.item === undefined) {\r\n throw new Error(\"Invalid payload for StreamItem message.\");\r\n }\r\n }\r\n\r\n private _isCompletionMessage(message: CompletionMessage): void {\r\n if (message.result && message.error) {\r\n throw new Error(\"Invalid payload for Completion message.\");\r\n }\r\n\r\n if (!message.result && message.error) {\r\n this._assertNotEmptyString(message.error, \"Invalid payload for Completion message.\");\r\n }\r\n\r\n this._assertNotEmptyString(message.invocationId, \"Invalid payload for Completion message.\");\r\n }\r\n\r\n private _assertNotEmptyString(value: any, errorMessage: string): void {\r\n if (typeof value !== \"string\" || value === \"\") {\r\n throw new Error(errorMessage);\r\n }\r\n }\r\n}\r\n","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\n\r\nimport { DefaultReconnectPolicy } from \"./DefaultReconnectPolicy\";\r\nimport { HttpConnection } from \"./HttpConnection\";\r\nimport { HubConnection } from \"./HubConnection\";\r\nimport { IHttpConnectionOptions } from \"./IHttpConnectionOptions\";\r\nimport { IHubProtocol } from \"./IHubProtocol\";\r\nimport { ILogger, LogLevel } from \"./ILogger\";\r\nimport { IRetryPolicy } from \"./IRetryPolicy\";\r\nimport { HttpTransportType } from \"./ITransport\";\r\nimport { JsonHubProtocol } from \"./JsonHubProtocol\";\r\nimport { NullLogger } from \"./Loggers\";\r\nimport { Arg, ConsoleLogger } from \"./Utils\";\r\n\r\nconst LogLevelNameMapping: {[k: string]: LogLevel} = {\r\n trace: LogLevel.Trace,\r\n debug: LogLevel.Debug,\r\n info: LogLevel.Information,\r\n information: LogLevel.Information,\r\n warn: LogLevel.Warning,\r\n warning: LogLevel.Warning,\r\n error: LogLevel.Error,\r\n critical: LogLevel.Critical,\r\n none: LogLevel.None,\r\n};\r\n\r\nfunction parseLogLevel(name: string): LogLevel {\r\n // Case-insensitive matching via lower-casing\r\n // Yes, I know case-folding is a complicated problem in Unicode, but we only support\r\n // the ASCII strings defined in LogLevelNameMapping anyway, so it's fine -anurse.\r\n const mapping = LogLevelNameMapping[name.toLowerCase()];\r\n if (typeof mapping !== \"undefined\") {\r\n return mapping;\r\n } else {\r\n throw new Error(`Unknown log level: ${name}`);\r\n }\r\n}\r\n\r\n/** A builder for configuring {@link @microsoft/signalr.HubConnection} instances. */\r\nexport class HubConnectionBuilder {\r\n /** @internal */\r\n public protocol?: IHubProtocol;\r\n /** @internal */\r\n public httpConnectionOptions?: IHttpConnectionOptions;\r\n /** @internal */\r\n public url?: string;\r\n /** @internal */\r\n public logger?: ILogger;\r\n\r\n /** If defined, this indicates the client should automatically attempt to reconnect if the connection is lost. */\r\n /** @internal */\r\n public reconnectPolicy?: IRetryPolicy;\r\n\r\n /** Configures console logging for the {@link @microsoft/signalr.HubConnection}.\r\n *\r\n * @param {LogLevel} logLevel The minimum level of messages to log. Anything at this level, or a more severe level, will be logged.\r\n * @returns The {@link @microsoft/signalr.HubConnectionBuilder} instance, for chaining.\r\n */\r\n public configureLogging(logLevel: LogLevel): HubConnectionBuilder;\r\n\r\n /** Configures custom logging for the {@link @microsoft/signalr.HubConnection}.\r\n *\r\n * @param {ILogger} logger An object implementing the {@link @microsoft/signalr.ILogger} interface, which will be used to write all log messages.\r\n * @returns The {@link @microsoft/signalr.HubConnectionBuilder} instance, for chaining.\r\n */\r\n public configureLogging(logger: ILogger): HubConnectionBuilder;\r\n\r\n /** Configures custom logging for the {@link @microsoft/signalr.HubConnection}.\r\n *\r\n * @param {string} logLevel A string representing a LogLevel setting a minimum level of messages to log.\r\n * See {@link https://docs.microsoft.com/aspnet/core/signalr/configuration#configure-logging|the documentation for client logging configuration} for more details.\r\n */\r\n public configureLogging(logLevel: string): HubConnectionBuilder;\r\n\r\n /** Configures custom logging for the {@link @microsoft/signalr.HubConnection}.\r\n *\r\n * @param {LogLevel | string | ILogger} logging A {@link @microsoft/signalr.LogLevel}, a string representing a LogLevel, or an object implementing the {@link @microsoft/signalr.ILogger} interface.\r\n * See {@link https://docs.microsoft.com/aspnet/core/signalr/configuration#configure-logging|the documentation for client logging configuration} for more details.\r\n * @returns The {@link @microsoft/signalr.HubConnectionBuilder} instance, for chaining.\r\n */\r\n public configureLogging(logging: LogLevel | string | ILogger): HubConnectionBuilder;\r\n public configureLogging(logging: LogLevel | string | ILogger): HubConnectionBuilder {\r\n Arg.isRequired(logging, \"logging\");\r\n\r\n if (isLogger(logging)) {\r\n this.logger = logging;\r\n } else if (typeof logging === \"string\") {\r\n const logLevel = parseLogLevel(logging);\r\n this.logger = new ConsoleLogger(logLevel);\r\n } else {\r\n this.logger = new ConsoleLogger(logging);\r\n }\r\n\r\n return this;\r\n }\r\n\r\n /** Configures the {@link @microsoft/signalr.HubConnection} to use HTTP-based transports to connect to the specified URL.\r\n *\r\n * The transport will be selected automatically based on what the server and client support.\r\n *\r\n * @param {string} url The URL the connection will use.\r\n * @returns The {@link @microsoft/signalr.HubConnectionBuilder} instance, for chaining.\r\n */\r\n public withUrl(url: string): HubConnectionBuilder;\r\n\r\n /** Configures the {@link @microsoft/signalr.HubConnection} to use the specified HTTP-based transport to connect to the specified URL.\r\n *\r\n * @param {string} url The URL the connection will use.\r\n * @param {HttpTransportType} transportType The specific transport to use.\r\n * @returns The {@link @microsoft/signalr.HubConnectionBuilder} instance, for chaining.\r\n */\r\n public withUrl(url: string, transportType: HttpTransportType): HubConnectionBuilder;\r\n\r\n /** Configures the {@link @microsoft/signalr.HubConnection} to use HTTP-based transports to connect to the specified URL.\r\n *\r\n * @param {string} url The URL the connection will use.\r\n * @param {IHttpConnectionOptions} options An options object used to configure the connection.\r\n * @returns The {@link @microsoft/signalr.HubConnectionBuilder} instance, for chaining.\r\n */\r\n public withUrl(url: string, options: IHttpConnectionOptions): HubConnectionBuilder;\r\n public withUrl(url: string, transportTypeOrOptions?: IHttpConnectionOptions | HttpTransportType): HubConnectionBuilder {\r\n Arg.isRequired(url, \"url\");\r\n Arg.isNotEmpty(url, \"url\");\r\n\r\n this.url = url;\r\n\r\n // Flow-typing knows where it's at. Since HttpTransportType is a number and IHttpConnectionOptions is guaranteed\r\n // to be an object, we know (as does TypeScript) this comparison is all we need to figure out which overload was called.\r\n if (typeof transportTypeOrOptions === \"object\") {\r\n this.httpConnectionOptions = { ...this.httpConnectionOptions, ...transportTypeOrOptions };\r\n } else {\r\n this.httpConnectionOptions = {\r\n ...this.httpConnectionOptions,\r\n transport: transportTypeOrOptions,\r\n };\r\n }\r\n\r\n return this;\r\n }\r\n\r\n /** Configures the {@link @microsoft/signalr.HubConnection} to use the specified Hub Protocol.\r\n *\r\n * @param {IHubProtocol} protocol The {@link @microsoft/signalr.IHubProtocol} implementation to use.\r\n */\r\n public withHubProtocol(protocol: IHubProtocol): HubConnectionBuilder {\r\n Arg.isRequired(protocol, \"protocol\");\r\n\r\n this.protocol = protocol;\r\n return this;\r\n }\r\n\r\n /** Configures the {@link @microsoft/signalr.HubConnection} to automatically attempt to reconnect if the connection is lost.\r\n * By default, the client will wait 0, 2, 10 and 30 seconds respectively before trying up to 4 reconnect attempts.\r\n */\r\n public withAutomaticReconnect(): HubConnectionBuilder;\r\n\r\n /** Configures the {@link @microsoft/signalr.HubConnection} to automatically attempt to reconnect if the connection is lost.\r\n *\r\n * @param {number[]} retryDelays An array containing the delays in milliseconds before trying each reconnect attempt.\r\n * The length of the array represents how many failed reconnect attempts it takes before the client will stop attempting to reconnect.\r\n */\r\n public withAutomaticReconnect(retryDelays: number[]): HubConnectionBuilder;\r\n\r\n /** Configures the {@link @microsoft/signalr.HubConnection} to automatically attempt to reconnect if the connection is lost.\r\n *\r\n * @param {IRetryPolicy} reconnectPolicy An {@link @microsoft/signalR.IRetryPolicy} that controls the timing and number of reconnect attempts.\r\n */\r\n public withAutomaticReconnect(reconnectPolicy: IRetryPolicy): HubConnectionBuilder;\r\n public withAutomaticReconnect(retryDelaysOrReconnectPolicy?: number[] | IRetryPolicy): HubConnectionBuilder {\r\n if (this.reconnectPolicy) {\r\n throw new Error(\"A reconnectPolicy has already been set.\");\r\n }\r\n\r\n if (!retryDelaysOrReconnectPolicy) {\r\n this.reconnectPolicy = new DefaultReconnectPolicy();\r\n } else if (Array.isArray(retryDelaysOrReconnectPolicy)) {\r\n this.reconnectPolicy = new DefaultReconnectPolicy(retryDelaysOrReconnectPolicy);\r\n } else {\r\n this.reconnectPolicy = retryDelaysOrReconnectPolicy;\r\n }\r\n\r\n return this;\r\n }\r\n\r\n /** Creates a {@link @microsoft/signalr.HubConnection} from the configuration options specified in this builder.\r\n *\r\n * @returns {HubConnection} The configured {@link @microsoft/signalr.HubConnection}.\r\n */\r\n public build(): HubConnection {\r\n // If httpConnectionOptions has a logger, use it. Otherwise, override it with the one\r\n // provided to configureLogger\r\n const httpConnectionOptions = this.httpConnectionOptions || {};\r\n\r\n // If it's 'null', the user **explicitly** asked for null, don't mess with it.\r\n if (httpConnectionOptions.logger === undefined) {\r\n // If our logger is undefined or null, that's OK, the HttpConnection constructor will handle it.\r\n httpConnectionOptions.logger = this.logger;\r\n }\r\n\r\n // Now create the connection\r\n if (!this.url) {\r\n throw new Error(\"The 'HubConnectionBuilder.withUrl' method must be called before building the connection.\");\r\n }\r\n const connection = new HttpConnection(this.url, httpConnectionOptions);\r\n\r\n return HubConnection.create(\r\n connection,\r\n this.logger || NullLogger.instance,\r\n this.protocol || new JsonHubProtocol(),\r\n this.reconnectPolicy);\r\n }\r\n}\r\n\r\nfunction isLogger(logger: any): logger is ILogger {\r\n return logger.log !== undefined;\r\n}\r\n","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\n\r\n// This is where we add any polyfills we'll need for the browser. It is the entry module for browser-specific builds.\r\n\r\n// Copy from Array.prototype into Uint8Array to polyfill on IE. It's OK because the implementations of indexOf and slice use properties\r\n// that exist on Uint8Array with the same name, and JavaScript is magic.\r\n// We make them 'writable' because the Buffer polyfill messes with it as well.\r\nif (!Uint8Array.prototype.indexOf) {\r\n Object.defineProperty(Uint8Array.prototype, \"indexOf\", {\r\n value: Array.prototype.indexOf,\r\n writable: true,\r\n });\r\n}\r\nif (!Uint8Array.prototype.slice) {\r\n Object.defineProperty(Uint8Array.prototype, \"slice\", {\r\n // wrap the slice in Uint8Array so it looks like a Uint8Array.slice call\r\n // eslint-disable-next-line object-shorthand\r\n value: function(start?: number, end?: number) { return new Uint8Array(Array.prototype.slice.call(this, start, end)); },\r\n writable: true,\r\n });\r\n}\r\nif (!Uint8Array.prototype.forEach) {\r\n Object.defineProperty(Uint8Array.prototype, \"forEach\", {\r\n value: Array.prototype.forEach,\r\n writable: true,\r\n });\r\n}\r\n\r\nexport * from \"./index\";\r\n","import EventBus from '@/Application/event-bus';\r\nimport $q from '@/Services/promiseHelper';\r\nimport care from '@/Services/careService';\r\nimport token from '@/Services/token';\r\nimport api from '@/Services/api';\r\n\r\nexport default { \r\n handleRefreshAsyncBound: null,\r\n\r\n created() {\r\n this.handleRefreshAsyncBound = this.handleRefreshAsync.bind(this);\r\n\r\n EventBus.$on('RefreshAccessTokenAsync', this.handleRefreshAsyncBound);\r\n },\r\n\r\n destroyed() {\r\n EventBus.$off('RefreshAccessTokenAsync', this.handleRefreshAsyncBound);\r\n },\r\n\r\n async handleRefreshAsync() {\r\n try {\r\n let response = await this.refreshAccessToken(1);\r\n\r\n if(response.data.Result.success)\r\n token.UpdateToken(response.data.Result);\r\n }\r\n catch(e) {\r\n care.logError(e, true);\r\n }\r\n },\r\n\r\n refreshWithExtraToken(removeTypes, addTypes) {\r\n let promise = $q.defer();\r\n\r\n // get 2 tokens, return one back to caller\r\n this.refreshAccessToken(2, removeTypes, addTypes).then(function (response){\r\n if (response.data.Result.success){\r\n // update the local token with the first token in the response\r\n token.UpdateToken(response.data.Result);\r\n\r\n // return the second token for use in opening a child window with it's own accessToken\r\n promise.resolve(response.data.Result.tokens[1]);\r\n }\r\n else {\r\n promise.reject();\r\n }\r\n },\r\n function(error) {\r\n promise.reject(error);\r\n });\r\n\r\n return promise.promise;\r\n },\r\n\r\n refreshAccessToken(tokenCount, securityContextsToRemove, securityContextsToAdd){\r\n care.logInfo(\"Refreshing AccessToken\");\r\n\r\n let tokenRequests = [];\r\n\r\n for (let x = 0; x < tokenCount; x++){\r\n let tokenRequest = {};\r\n\r\n // the first token will not remove any types. Additional tokens will remove the specified security context types\r\n if (x > 0){\r\n if (securityContextsToRemove)\r\n tokenRequest.removeTypes = securityContextsToRemove;\r\n\r\n if (securityContextsToAdd)\r\n tokenRequest.addTypes = [ securityContextsToAdd ];\r\n }\r\n\r\n tokenRequests.push(tokenRequest);\r\n }\r\n\r\n // return the promise from the api\r\n return api.apiRequest({\r\n method: 'POST',\r\n url: '/Apps/RefreshTokenWithOptions',\r\n data: {\r\n access_token: token.AccessToken(),\r\n refresh_token: token.RefreshToken(),\r\n tokens: tokenRequests\r\n },\r\n addAccessTokenInHeader: false, // do not add access token to header when refreshing (it maybe expired and would be verified & rejected before processing the RefreshToken request)\r\n doNotQueue: true // because the refresh_token is passed in the \"data\" element, if it is expired, queueing the request and running later would just refresh with an expired token and cause constant reauthentication. \r\n });\r\n }\r\n}","\n\n\n\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/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./menuIntervalSelection.vue?vue&type=script&lang=js&\"; 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/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./menuIntervalSelection.vue?vue&type=script&lang=js&\"","import { HubConnectionBuilder, LogLevel, HubConnectionState, HttpTransportType } from '@/JavaScript/Microsoft.AspNetCore.SignalR.JS/v7.0.2/signalr';\r\nimport api from '@/Services/api';\r\nimport token from '@/Services/token';\r\nimport utils from '@/Shared/utils';\r\nimport { appSettings } from '@/Shared/appSettings';\r\n\r\nexport class AspNetCoreWebSocketConnection {\r\n hubConnection;\r\n signalrSession;\r\n\r\n constructor(signalrSession) {\r\n this.signalrSession = signalrSession;\r\n }\r\n\r\n Connect(baseuri, queryParams, noticeCallback, channelEventCallback, rtEventCallback, onCloseCallback) {\r\n var url = `${baseuri}/EventingHub?SignalrSession=${this.signalrSession}&${new URLSearchParams(queryParams).toString()}`;\r\n\r\n var options = {\r\n skipNegotiation: (appSettings.TransportSettings.Client.SignalRWebSockets && !appSettings.DisableApiWebSockets) ? true : false,\r\n transport: (appSettings.TransportSettings.Client.SignalRWebSockets && !appSettings.DisableApiWebSockets) ? HttpTransportType.WebSockets : HttpTransportType.ServerSentEvents\r\n };\r\n\r\n if (!queryParams || !queryParams.apikey)\r\n options.accessTokenFactory = () => { return token.AccessToken(); };\r\n\r\n this.hubConnection = new HubConnectionBuilder()\r\n .withUrl(url, options)\r\n .configureLogging(appSettings.ShowAllLogMessage ? LogLevel.Information : LogLevel.None)\r\n .build();\r\n\r\n this.hubConnection.onclose((err) => {\r\n utils.log(`SignalR State Changed (onclose)=> ${JSON.stringify(err)} ${JSON.stringify(this.hubConnection.state)} ${new Date().toISOString()}`)\r\n })\r\n\r\n this.hubConnection.on(\"Notice\", noticeCallback);\r\n this.hubConnection.on('Event', channelEventCallback);\r\n this.hubConnection.on('RTEvent', rtEventCallback);\r\n this.hubConnection.on('Close', () =>\r\n {\r\n utils.log(\"Server Side request to close WebSocketConnection\");\r\n onCloseCallback();\r\n });\r\n\r\n return this.hubConnection.start();\r\n }\r\n\r\n\r\n\r\n Disconnect() {\r\n utils.log(\"signalR WebSocketConnection - Disconnect()\");\r\n\r\n this.hubConnection.stop();\r\n }\r\n\r\n async invoke(method, body) {\r\n return await this.hubConnection.invoke(method, body);\r\n }\r\n\r\n IsConnected() {\r\n if (this.hubConnection)\r\n return this.hubConnection.state === HubConnectionState.Connected;\r\n return false;\r\n }\r\n\r\n IsDisconnected() {\r\n if (this.hubConnection)\r\n return this.hubConnection.state !== HubConnectionState.Connected;\r\n return false;\r\n }\r\n ConnectionId() {\r\n return this.hubConnection.connectionId;\r\n }\r\n\r\n ApiRequest(body) {\r\n return this.hubConnection.invoke('APIRequest', body);\r\n }\r\n\r\n CreateAndSubscribe(channelName) {\r\n return this.hubConnection.invoke('CreateAndSubscribe', channelName);\r\n }\r\n\r\n Subscribe(channelName) {\r\n // this \"Subscribe\" is different than the \"SubscribeForSessionEvents\". This sets up the callback on webserver for receiveing events from the channel\r\n // whereas SubscribeForSessionEvents binds the channel for certain events\r\n return this.hubConnection.invoke('Subscribe', channelName)\r\n .then(() => {\r\n return api.get(`Apps/Eventing/Subscribe/${token.GetUserEventKey()}/${channelName}`);\r\n });\r\n }\r\n\r\n StartRealTimeMonitor(filter) {\r\n return this.hubConnection.invoke('StartRealTimeMonitor', filter);\r\n }\r\n\r\n StopRealTimeMonitor() {\r\n return this.hubConnection.invoke('StopRealTimeMonitor');\r\n }\r\n\r\n AddRealTimeMonitorView(viewName, args) {\r\n return this.hubConnection.invoke('AddRealTimeMonitorView', { Name: viewName, Args: args });\r\n }\r\n\r\n RemoveRealTimeMonitorView(viewName, args) {\r\n return this.hubConnection.invoke('RemoveRealTimeMonitorView', { Name: viewName, Args: args });\r\n }\r\n\r\n GetNamedListForRealTime(listName, id, sortCol, descending, start, length, columns, filters) {\r\n return this.hubConnection.invoke('GetNamedListForRealTime', {\r\n listName: listName,\r\n id: id,\r\n sortCol: sortCol,\r\n descending: descending,\r\n start: start,\r\n length: length,\r\n columns: columns,\r\n filters: filters\r\n });\r\n }\r\n\r\n RemoveNamedListForRealTime(listName, id) {\r\n return this.hubConnection.invoke('RemoveNamedListForRealTime', { listName: listName, id: id });\r\n }\r\n\r\n GetTestResponse() {\r\n return this.hubConnection.invoke('GetTestResponse', {});\r\n }\r\n\r\n RefreshToken(token) {\r\n return this.hubConnection.invoke('RefreshToken', token);\r\n }\r\n\r\n ReplaceTokenAndChannel(data) {\r\n return this.hubConnection.invoke('ReplaceTokenAndChannel', data);\r\n }\r\n}\r\n","import { AspNetCoreWebSocketConnection } from './aspNetCoreWebSocketConnection';\r\nimport utils from '@/Shared/utils';\r\n\r\nexport async function CreateWebSocketConnection(baseuri) { \r\n\r\n var signalrSession = utils.generateGuid();\r\n\r\n /**\r\n * 10/17/2023: Benton Smith\r\n * \r\n * Added the below request to make sure that we have a request that includes cookies before negotiating our signalr websocket. \r\n * Without this code, the signalr negotiation happens without cookies, which prevents us from doing sticky sessions. \r\n * \r\n * The problem we set out to solve was that if a user's websocket disconnected, they sometimes re-connected to a different web \r\n * server. We prevent this in two ways:\r\n * 1) For all requests for a single websocket negotiation, we use SignalrSession to make sure that subsequent requests to \r\n * negotiate a single websocket go to the same web server.\r\n * 2) For requests between websocket sessions, like a reconnect, we use cookies. This makes sure that if your websocket disconnects\r\n * and you negotiate a new one, you'll go to the same server despite having a different SignlarSession GUID.\r\n * \r\n * This fetch request includes the \"credentials\": 'include' property to make sure that we get cookies back and include them in our request.\r\n */\r\n await fetch(`${baseuri}/Apps/Web/MyIPAddress?SignalrSession=${signalrSession}`, { credentials: 'include' });\r\n\r\n return new AspNetCoreWebSocketConnection(signalrSession);\r\n}","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./verticalTabs.vue?vue&type=style&index=0&id=73838222&prod&scoped=true&lang=css&\"","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/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./cardHistogram.vue?vue&type=script&lang=js&\"; 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/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./cardHistogram.vue?vue&type=script&lang=js&\"","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./agGridToolReportChart.vue?vue&type=style&index=0&id=cd1497c8&prod&scoped=true&lang=css&\"","const WINDOWS_TO_IANA = [\r\n {\r\n windowsName: 'Dateline Standard Time',\r\n territory: '001',\r\n iana: ['Etc/GMT+12'],\r\n },\r\n {\r\n windowsName: 'Dateline Standard Time',\r\n territory: 'ZZ',\r\n iana: ['Etc/GMT+12'],\r\n },\r\n {\r\n windowsName: 'UTC-11',\r\n territory: '001',\r\n iana: ['Etc/GMT+11'],\r\n },\r\n {\r\n windowsName: 'UTC-11',\r\n territory: 'AS',\r\n iana: ['Pacific/Pago_Pago'],\r\n },\r\n {\r\n windowsName: 'UTC-11',\r\n territory: 'NU',\r\n iana: ['Pacific/Niue'],\r\n },\r\n {\r\n windowsName: 'UTC-11',\r\n territory: 'UM',\r\n iana: ['Pacific/Midway'],\r\n },\r\n {\r\n windowsName: 'UTC-11',\r\n territory: 'ZZ',\r\n iana: ['Etc/GMT+11'],\r\n },\r\n {\r\n windowsName: 'Aleutian Standard Time',\r\n territory: '001',\r\n iana: ['America/Adak'],\r\n },\r\n {\r\n windowsName: 'Aleutian Standard Time',\r\n territory: 'US',\r\n iana: ['America/Adak'],\r\n },\r\n {\r\n windowsName: 'Hawaiian Standard Time',\r\n territory: '001',\r\n iana: ['Pacific/Honolulu'],\r\n },\r\n {\r\n windowsName: 'Hawaiian Standard Time',\r\n territory: 'CK',\r\n iana: ['Pacific/Rarotonga'],\r\n },\r\n {\r\n windowsName: 'Hawaiian Standard Time',\r\n territory: 'PF',\r\n iana: ['Pacific/Tahiti'],\r\n },\r\n {\r\n windowsName: 'Hawaiian Standard Time',\r\n territory: 'UM',\r\n iana: ['Pacific/Johnston'],\r\n },\r\n {\r\n windowsName: 'Hawaiian Standard Time',\r\n territory: 'US',\r\n iana: ['Pacific/Honolulu'],\r\n },\r\n {\r\n windowsName: 'Hawaiian Standard Time',\r\n territory: 'ZZ',\r\n iana: ['Etc/GMT+10'],\r\n },\r\n {\r\n windowsName: 'Marquesas Standard Time',\r\n territory: '001',\r\n iana: ['Pacific/Marquesas'],\r\n },\r\n {\r\n windowsName: 'Marquesas Standard Time',\r\n territory: 'PF',\r\n iana: ['Pacific/Marquesas'],\r\n },\r\n {\r\n windowsName: 'Alaskan Standard Time',\r\n territory: '001',\r\n iana: ['America/Anchorage'],\r\n },\r\n {\r\n windowsName: 'Alaskan Standard Time',\r\n territory: 'US',\r\n iana: [\r\n 'America/Anchorage',\r\n 'America/Juneau',\r\n 'America/Metlakatla',\r\n 'America/Nome',\r\n 'America/Sitka',\r\n 'America/Yakutat',\r\n ],\r\n },\r\n {\r\n windowsName: 'UTC-09',\r\n territory: '001',\r\n iana: ['Etc/GMT+9'],\r\n },\r\n {\r\n windowsName: 'UTC-09',\r\n territory: 'PF',\r\n iana: ['Pacific/Gambier'],\r\n },\r\n {\r\n windowsName: 'UTC-09',\r\n territory: 'ZZ',\r\n iana: ['Etc/GMT+9'],\r\n },\r\n {\r\n windowsName: 'Pacific Standard Time (Mexico)',\r\n territory: '001',\r\n iana: ['America/Tijuana'],\r\n },\r\n {\r\n windowsName: 'Pacific Standard Time (Mexico)',\r\n territory: 'MX',\r\n iana: ['America/Tijuana', 'America/Santa_Isabel'],\r\n },\r\n {\r\n windowsName: 'UTC-08',\r\n territory: '001',\r\n iana: ['Etc/GMT+8'],\r\n },\r\n {\r\n windowsName: 'UTC-08',\r\n territory: 'PN',\r\n iana: ['Pacific/Pitcairn'],\r\n },\r\n {\r\n windowsName: 'UTC-08',\r\n territory: 'ZZ',\r\n iana: ['Etc/GMT+8'],\r\n },\r\n {\r\n windowsName: 'Pacific Standard Time',\r\n territory: '001',\r\n iana: ['America/Los_Angeles'],\r\n },\r\n {\r\n windowsName: 'Pacific Standard Time',\r\n territory: 'CA',\r\n iana: ['America/Vancouver'],\r\n },\r\n {\r\n windowsName: 'Pacific Standard Time',\r\n territory: 'US',\r\n iana: ['America/Los_Angeles'],\r\n },\r\n {\r\n windowsName: 'Pacific Standard Time',\r\n territory: 'ZZ',\r\n iana: ['PST8PDT'],\r\n },\r\n {\r\n windowsName: 'US Mountain Standard Time',\r\n territory: '001',\r\n iana: ['America/Phoenix'],\r\n },\r\n {\r\n windowsName: 'US Mountain Standard Time',\r\n territory: 'CA',\r\n iana: ['America/Creston', 'America/Dawson_Creek', 'America/Fort_Nelson'],\r\n },\r\n {\r\n windowsName: 'US Mountain Standard Time',\r\n territory: 'MX',\r\n iana: ['America/Hermosillo'],\r\n },\r\n {\r\n windowsName: 'US Mountain Standard Time',\r\n territory: 'US',\r\n iana: ['America/Phoenix'],\r\n },\r\n {\r\n windowsName: 'US Mountain Standard Time',\r\n territory: 'ZZ',\r\n iana: ['Etc/GMT+7'],\r\n },\r\n {\r\n windowsName: 'Mountain Standard Time (Mexico)',\r\n territory: '001',\r\n iana: ['America/Chihuahua'],\r\n },\r\n {\r\n windowsName: 'Mountain Standard Time (Mexico)',\r\n territory: 'MX',\r\n iana: ['America/Chihuahua', 'America/Mazatlan'],\r\n },\r\n {\r\n windowsName: 'Mountain Standard Time',\r\n territory: '001',\r\n iana: ['America/Denver'],\r\n },\r\n {\r\n windowsName: 'Mountain Standard Time',\r\n territory: 'CA',\r\n iana: ['America/Edmonton', 'America/Cambridge_Bay', 'America/Inuvik', 'America/Yellowknife'],\r\n },\r\n {\r\n windowsName: 'Mountain Standard Time',\r\n territory: 'MX',\r\n iana: ['America/Ojinaga'],\r\n },\r\n {\r\n windowsName: 'Mountain Standard Time',\r\n territory: 'US',\r\n iana: ['America/Denver', 'America/Boise'],\r\n },\r\n {\r\n windowsName: 'Mountain Standard Time',\r\n territory: 'ZZ',\r\n iana: ['MST7MDT'],\r\n },\r\n {\r\n windowsName: 'Yukon Standard Time',\r\n territory: '001',\r\n iana: ['America/Whitehorse'],\r\n },\r\n {\r\n windowsName: 'Yukon Standard Time',\r\n territory: 'CA',\r\n iana: ['America/Whitehorse', 'America/Dawson'],\r\n },\r\n {\r\n windowsName: 'Central America Standard Time',\r\n territory: '001',\r\n iana: ['America/Guatemala'],\r\n },\r\n {\r\n windowsName: 'Central America Standard Time',\r\n territory: 'BZ',\r\n iana: ['America/Belize'],\r\n },\r\n {\r\n windowsName: 'Central America Standard Time',\r\n territory: 'CR',\r\n iana: ['America/Costa_Rica'],\r\n },\r\n {\r\n windowsName: 'Central America Standard Time',\r\n territory: 'EC',\r\n iana: ['Pacific/Galapagos'],\r\n },\r\n {\r\n windowsName: 'Central America Standard Time',\r\n territory: 'GT',\r\n iana: ['America/Guatemala'],\r\n },\r\n {\r\n windowsName: 'Central America Standard Time',\r\n territory: 'HN',\r\n iana: ['America/Tegucigalpa'],\r\n },\r\n {\r\n windowsName: 'Central America Standard Time',\r\n territory: 'NI',\r\n iana: ['America/Managua'],\r\n },\r\n {\r\n windowsName: 'Central America Standard Time',\r\n territory: 'SV',\r\n iana: ['America/El_Salvador'],\r\n },\r\n {\r\n windowsName: 'Central America Standard Time',\r\n territory: 'ZZ',\r\n iana: ['Etc/GMT+6'],\r\n },\r\n {\r\n windowsName: 'Central Standard Time',\r\n territory: '001',\r\n iana: ['America/Chicago'],\r\n },\r\n {\r\n windowsName: 'Central Standard Time',\r\n territory: 'CA',\r\n iana: ['America/Winnipeg', 'America/Rainy_River', 'America/Rankin_Inlet', 'America/Resolute'],\r\n },\r\n {\r\n windowsName: 'Central Standard Time',\r\n territory: 'MX',\r\n iana: ['America/Matamoros'],\r\n },\r\n {\r\n windowsName: 'Central Standard Time',\r\n territory: 'US',\r\n iana: [\r\n 'America/Chicago',\r\n 'America/Indiana/Knox',\r\n 'America/Indiana/Tell_City',\r\n 'America/Menominee',\r\n 'America/North_Dakota/Beulah',\r\n 'America/North_Dakota/Center',\r\n 'America/North_Dakota/New_Salem',\r\n ],\r\n },\r\n {\r\n windowsName: 'Central Standard Time',\r\n territory: 'ZZ',\r\n iana: ['CST6CDT'],\r\n },\r\n {\r\n windowsName: 'Easter Island Standard Time',\r\n territory: '001',\r\n iana: ['Pacific/Easter'],\r\n },\r\n {\r\n windowsName: 'Easter Island Standard Time',\r\n territory: 'CL',\r\n iana: ['Pacific/Easter'],\r\n },\r\n {\r\n windowsName: 'Central Standard Time (Mexico)',\r\n territory: '001',\r\n iana: ['America/Mexico_City'],\r\n },\r\n {\r\n windowsName: 'Central Standard Time (Mexico)',\r\n territory: 'MX',\r\n iana: ['America/Mexico_City', 'America/Bahia_Banderas', 'America/Merida', 'America/Monterrey'],\r\n },\r\n {\r\n windowsName: 'Canada Central Standard Time',\r\n territory: '001',\r\n iana: ['America/Regina'],\r\n },\r\n {\r\n windowsName: 'Canada Central Standard Time',\r\n territory: 'CA',\r\n iana: ['America/Regina', 'America/Swift_Current'],\r\n },\r\n {\r\n windowsName: 'SA Pacific Standard Time',\r\n territory: '001',\r\n iana: ['America/Bogota'],\r\n },\r\n {\r\n windowsName: 'SA Pacific Standard Time',\r\n territory: 'BR',\r\n iana: ['America/Rio_Branco', 'America/Eirunepe'],\r\n },\r\n {\r\n windowsName: 'SA Pacific Standard Time',\r\n territory: 'CA',\r\n iana: ['America/Coral_Harbour'],\r\n },\r\n {\r\n windowsName: 'SA Pacific Standard Time',\r\n territory: 'CO',\r\n iana: ['America/Bogota'],\r\n },\r\n {\r\n windowsName: 'SA Pacific Standard Time',\r\n territory: 'EC',\r\n iana: ['America/Guayaquil'],\r\n },\r\n {\r\n windowsName: 'SA Pacific Standard Time',\r\n territory: 'JM',\r\n iana: ['America/Jamaica'],\r\n },\r\n {\r\n windowsName: 'SA Pacific Standard Time',\r\n territory: 'KY',\r\n iana: ['America/Cayman'],\r\n },\r\n {\r\n windowsName: 'SA Pacific Standard Time',\r\n territory: 'PA',\r\n iana: ['America/Panama'],\r\n },\r\n {\r\n windowsName: 'SA Pacific Standard Time',\r\n territory: 'PE',\r\n iana: ['America/Lima'],\r\n },\r\n {\r\n windowsName: 'SA Pacific Standard Time',\r\n territory: 'ZZ',\r\n iana: ['Etc/GMT+5'],\r\n },\r\n {\r\n windowsName: 'Eastern Standard Time (Mexico)',\r\n territory: '001',\r\n iana: ['America/Cancun'],\r\n },\r\n {\r\n windowsName: 'Eastern Standard Time (Mexico)',\r\n territory: 'MX',\r\n iana: ['America/Cancun'],\r\n },\r\n {\r\n windowsName: 'Eastern Standard Time',\r\n territory: '001',\r\n iana: ['America/New_York'],\r\n },\r\n {\r\n windowsName: 'Eastern Standard Time',\r\n territory: 'BS',\r\n iana: ['America/Nassau'],\r\n },\r\n {\r\n windowsName: 'Eastern Standard Time',\r\n territory: 'CA',\r\n iana: [\r\n 'America/Toronto',\r\n 'America/Iqaluit',\r\n 'America/Montreal',\r\n 'America/Nipigon',\r\n 'America/Pangnirtung',\r\n 'America/Thunder_Bay',\r\n ],\r\n },\r\n {\r\n windowsName: 'Eastern Standard Time',\r\n territory: 'US',\r\n iana: [\r\n 'America/New_York',\r\n 'America/Detroit',\r\n 'America/Indiana/Petersburg',\r\n 'America/Indiana/Vincennes',\r\n 'America/Indiana/Winamac',\r\n 'America/Kentucky/Monticello',\r\n 'America/Louisville',\r\n ],\r\n },\r\n {\r\n windowsName: 'Eastern Standard Time',\r\n territory: 'ZZ',\r\n iana: ['EST5EDT'],\r\n },\r\n {\r\n windowsName: 'Haiti Standard Time',\r\n territory: '001',\r\n iana: ['America/Port-au-Prince'],\r\n },\r\n {\r\n windowsName: 'Haiti Standard Time',\r\n territory: 'HT',\r\n iana: ['America/Port-au-Prince'],\r\n },\r\n {\r\n windowsName: 'Cuba Standard Time',\r\n territory: '001',\r\n iana: ['America/Havana'],\r\n },\r\n {\r\n windowsName: 'Cuba Standard Time',\r\n territory: 'CU',\r\n iana: ['America/Havana'],\r\n },\r\n {\r\n windowsName: 'US Eastern Standard Time',\r\n territory: '001',\r\n iana: ['America/Indianapolis'],\r\n },\r\n {\r\n windowsName: 'US Eastern Standard Time',\r\n territory: 'US',\r\n iana: ['America/Indianapolis', 'America/Indiana/Marengo', 'America/Indiana/Vevay'],\r\n },\r\n {\r\n windowsName: 'Turks And Caicos Standard Time',\r\n territory: '001',\r\n iana: ['America/Grand_Turk'],\r\n },\r\n {\r\n windowsName: 'Turks And Caicos Standard Time',\r\n territory: 'TC',\r\n iana: ['America/Grand_Turk'],\r\n },\r\n {\r\n windowsName: 'Paraguay Standard Time',\r\n territory: '001',\r\n iana: ['America/Asuncion'],\r\n },\r\n {\r\n windowsName: 'Paraguay Standard Time',\r\n territory: 'PY',\r\n iana: ['America/Asuncion'],\r\n },\r\n {\r\n windowsName: 'Atlantic Standard Time',\r\n territory: '001',\r\n iana: ['America/Halifax'],\r\n },\r\n {\r\n windowsName: 'Atlantic Standard Time',\r\n territory: 'BM',\r\n iana: ['Atlantic/Bermuda'],\r\n },\r\n {\r\n windowsName: 'Atlantic Standard Time',\r\n territory: 'CA',\r\n iana: ['America/Halifax', 'America/Glace_Bay', 'America/Goose_Bay', 'America/Moncton'],\r\n },\r\n {\r\n windowsName: 'Atlantic Standard Time',\r\n territory: 'GL',\r\n iana: ['America/Thule'],\r\n },\r\n {\r\n windowsName: 'Venezuela Standard Time',\r\n territory: '001',\r\n iana: ['America/Caracas'],\r\n },\r\n {\r\n windowsName: 'Venezuela Standard Time',\r\n territory: 'VE',\r\n iana: ['America/Caracas'],\r\n },\r\n {\r\n windowsName: 'Central Brazilian Standard Time',\r\n territory: '001',\r\n iana: ['America/Cuiaba'],\r\n },\r\n {\r\n windowsName: 'Central Brazilian Standard Time',\r\n territory: 'BR',\r\n iana: ['America/Cuiaba', 'America/Campo_Grande'],\r\n },\r\n {\r\n windowsName: 'SA Western Standard Time',\r\n territory: '001',\r\n iana: ['America/La_Paz'],\r\n },\r\n {\r\n windowsName: 'SA Western Standard Time',\r\n territory: 'AG',\r\n iana: ['America/Antigua'],\r\n },\r\n {\r\n windowsName: 'SA Western Standard Time',\r\n territory: 'AI',\r\n iana: ['America/Anguilla'],\r\n },\r\n {\r\n windowsName: 'SA Western Standard Time',\r\n territory: 'AW',\r\n iana: ['America/Aruba'],\r\n },\r\n {\r\n windowsName: 'SA Western Standard Time',\r\n territory: 'BB',\r\n iana: ['America/Barbados'],\r\n },\r\n {\r\n windowsName: 'SA Western Standard Time',\r\n territory: 'BL',\r\n iana: ['America/St_Barthelemy'],\r\n },\r\n {\r\n windowsName: 'SA Western Standard Time',\r\n territory: 'BO',\r\n iana: ['America/La_Paz'],\r\n },\r\n {\r\n windowsName: 'SA Western Standard Time',\r\n territory: 'BQ',\r\n iana: ['America/Kralendijk'],\r\n },\r\n {\r\n windowsName: 'SA Western Standard Time',\r\n territory: 'BR',\r\n iana: ['America/Manaus', 'America/Boa_Vista', 'America/Porto_Velho'],\r\n },\r\n {\r\n windowsName: 'SA Western Standard Time',\r\n territory: 'CA',\r\n iana: ['America/Blanc-Sablon'],\r\n },\r\n {\r\n windowsName: 'SA Western Standard Time',\r\n territory: 'CW',\r\n iana: ['America/Curacao'],\r\n },\r\n {\r\n windowsName: 'SA Western Standard Time',\r\n territory: 'DM',\r\n iana: ['America/Dominica'],\r\n },\r\n {\r\n windowsName: 'SA Western Standard Time',\r\n territory: 'DO',\r\n iana: ['America/Santo_Domingo'],\r\n },\r\n {\r\n windowsName: 'SA Western Standard Time',\r\n territory: 'GD',\r\n iana: ['America/Grenada'],\r\n },\r\n {\r\n windowsName: 'SA Western Standard Time',\r\n territory: 'GP',\r\n iana: ['America/Guadeloupe'],\r\n },\r\n {\r\n windowsName: 'SA Western Standard Time',\r\n territory: 'GY',\r\n iana: ['America/Guyana'],\r\n },\r\n {\r\n windowsName: 'SA Western Standard Time',\r\n territory: 'KN',\r\n iana: ['America/St_Kitts'],\r\n },\r\n {\r\n windowsName: 'SA Western Standard Time',\r\n territory: 'LC',\r\n iana: ['America/St_Lucia'],\r\n },\r\n {\r\n windowsName: 'SA Western Standard Time',\r\n territory: 'MF',\r\n iana: ['America/Marigot'],\r\n },\r\n {\r\n windowsName: 'SA Western Standard Time',\r\n territory: 'MQ',\r\n iana: ['America/Martinique'],\r\n },\r\n {\r\n windowsName: 'SA Western Standard Time',\r\n territory: 'MS',\r\n iana: ['America/Montserrat'],\r\n },\r\n {\r\n windowsName: 'SA Western Standard Time',\r\n territory: 'PR',\r\n iana: ['America/Puerto_Rico'],\r\n },\r\n {\r\n windowsName: 'SA Western Standard Time',\r\n territory: 'SX',\r\n iana: ['America/Lower_Princes'],\r\n },\r\n {\r\n windowsName: 'SA Western Standard Time',\r\n territory: 'TT',\r\n iana: ['America/Port_of_Spain'],\r\n },\r\n {\r\n windowsName: 'SA Western Standard Time',\r\n territory: 'VC',\r\n iana: ['America/St_Vincent'],\r\n },\r\n {\r\n windowsName: 'SA Western Standard Time',\r\n territory: 'VG',\r\n iana: ['America/Tortola'],\r\n },\r\n {\r\n windowsName: 'SA Western Standard Time',\r\n territory: 'VI',\r\n iana: ['America/St_Thomas'],\r\n },\r\n {\r\n windowsName: 'SA Western Standard Time',\r\n territory: 'ZZ',\r\n iana: ['Etc/GMT+4'],\r\n },\r\n {\r\n windowsName: 'Pacific SA Standard Time',\r\n territory: '001',\r\n iana: ['America/Santiago'],\r\n },\r\n {\r\n windowsName: 'Pacific SA Standard Time',\r\n territory: 'CL',\r\n iana: ['America/Santiago'],\r\n },\r\n {\r\n windowsName: 'Newfoundland Standard Time',\r\n territory: '001',\r\n iana: ['America/St_Johns'],\r\n },\r\n {\r\n windowsName: 'Newfoundland Standard Time',\r\n territory: 'CA',\r\n iana: ['America/St_Johns'],\r\n },\r\n {\r\n windowsName: 'Tocantins Standard Time',\r\n territory: '001',\r\n iana: ['America/Araguaina'],\r\n },\r\n {\r\n windowsName: 'Tocantins Standard Time',\r\n territory: 'BR',\r\n iana: ['America/Araguaina'],\r\n },\r\n {\r\n windowsName: 'E. South America Standard Time',\r\n territory: '001',\r\n iana: ['America/Sao_Paulo'],\r\n },\r\n {\r\n windowsName: 'E. South America Standard Time',\r\n territory: 'BR',\r\n iana: ['America/Sao_Paulo'],\r\n },\r\n {\r\n windowsName: 'SA Eastern Standard Time',\r\n territory: '001',\r\n iana: ['America/Cayenne'],\r\n },\r\n {\r\n windowsName: 'SA Eastern Standard Time',\r\n territory: 'AQ',\r\n iana: ['Antarctica/Rothera', 'Antarctica/Palmer'],\r\n },\r\n {\r\n windowsName: 'SA Eastern Standard Time',\r\n territory: 'BR',\r\n iana: [\r\n 'America/Fortaleza',\r\n 'America/Belem',\r\n 'America/Maceio',\r\n 'America/Recife',\r\n 'America/Santarem',\r\n ],\r\n },\r\n {\r\n windowsName: 'SA Eastern Standard Time',\r\n territory: 'FK',\r\n iana: ['Atlantic/Stanley'],\r\n },\r\n {\r\n windowsName: 'SA Eastern Standard Time',\r\n territory: 'GF',\r\n iana: ['America/Cayenne'],\r\n },\r\n {\r\n windowsName: 'SA Eastern Standard Time',\r\n territory: 'SR',\r\n iana: ['America/Paramaribo'],\r\n },\r\n {\r\n windowsName: 'SA Eastern Standard Time',\r\n territory: 'ZZ',\r\n iana: ['Etc/GMT+3'],\r\n },\r\n {\r\n windowsName: 'Argentina Standard Time',\r\n territory: '001',\r\n iana: ['America/Buenos_Aires'],\r\n },\r\n {\r\n windowsName: 'Argentina Standard Time',\r\n territory: 'AR',\r\n iana: [\r\n 'America/Buenos_Aires',\r\n 'America/Argentina/La_Rioja',\r\n 'America/Argentina/Rio_Gallegos',\r\n 'America/Argentina/Salta',\r\n 'America/Argentina/San_Juan',\r\n 'America/Argentina/San_Luis',\r\n 'America/Argentina/Tucuman',\r\n 'America/Argentina/Ushuaia',\r\n 'America/Catamarca',\r\n 'America/Cordoba',\r\n 'America/Jujuy',\r\n 'America/Mendoza',\r\n ],\r\n },\r\n {\r\n windowsName: 'Greenland Standard Time',\r\n territory: '001',\r\n iana: ['America/Godthab'],\r\n },\r\n {\r\n windowsName: 'Greenland Standard Time',\r\n territory: 'GL',\r\n iana: ['America/Godthab'],\r\n },\r\n {\r\n windowsName: 'Montevideo Standard Time',\r\n territory: '001',\r\n iana: ['America/Montevideo'],\r\n },\r\n {\r\n windowsName: 'Montevideo Standard Time',\r\n territory: 'UY',\r\n iana: ['America/Montevideo'],\r\n },\r\n {\r\n windowsName: 'Magallanes Standard Time',\r\n territory: '001',\r\n iana: ['America/Punta_Arenas'],\r\n },\r\n {\r\n windowsName: 'Magallanes Standard Time',\r\n territory: 'CL',\r\n iana: ['America/Punta_Arenas'],\r\n },\r\n {\r\n windowsName: 'Saint Pierre Standard Time',\r\n territory: '001',\r\n iana: ['America/Miquelon'],\r\n },\r\n {\r\n windowsName: 'Saint Pierre Standard Time',\r\n territory: 'PM',\r\n iana: ['America/Miquelon'],\r\n },\r\n {\r\n windowsName: 'Bahia Standard Time',\r\n territory: '001',\r\n iana: ['America/Bahia'],\r\n },\r\n {\r\n windowsName: 'Bahia Standard Time',\r\n territory: 'BR',\r\n iana: ['America/Bahia'],\r\n },\r\n {\r\n windowsName: 'UTC-02',\r\n territory: '001',\r\n iana: ['Etc/GMT+2'],\r\n },\r\n {\r\n windowsName: 'UTC-02',\r\n territory: 'BR',\r\n iana: ['America/Noronha'],\r\n },\r\n {\r\n windowsName: 'UTC-02',\r\n territory: 'GS',\r\n iana: ['Atlantic/South_Georgia'],\r\n },\r\n {\r\n windowsName: 'UTC-02',\r\n territory: 'ZZ',\r\n iana: ['Etc/GMT+2'],\r\n },\r\n {\r\n windowsName: 'Azores Standard Time',\r\n territory: '001',\r\n iana: ['Atlantic/Azores'],\r\n },\r\n {\r\n windowsName: 'Azores Standard Time',\r\n territory: 'GL',\r\n iana: ['America/Scoresbysund'],\r\n },\r\n {\r\n windowsName: 'Azores Standard Time',\r\n territory: 'PT',\r\n iana: ['Atlantic/Azores'],\r\n },\r\n {\r\n windowsName: 'Cape Verde Standard Time',\r\n territory: '001',\r\n iana: ['Atlantic/Cape_Verde'],\r\n },\r\n {\r\n windowsName: 'Cape Verde Standard Time',\r\n territory: 'CV',\r\n iana: ['Atlantic/Cape_Verde'],\r\n },\r\n {\r\n windowsName: 'Cape Verde Standard Time',\r\n territory: 'ZZ',\r\n iana: ['Etc/GMT+1'],\r\n },\r\n {\r\n windowsName: 'UTC',\r\n territory: '001',\r\n iana: ['Etc/UTC'],\r\n },\r\n {\r\n windowsName: 'UTC',\r\n territory: 'ZZ',\r\n iana: ['Etc/UTC', 'Etc/GMT'],\r\n },\r\n {\r\n windowsName: 'GMT Standard Time',\r\n territory: '001',\r\n iana: ['Europe/London'],\r\n },\r\n {\r\n windowsName: 'GMT Standard Time',\r\n territory: 'ES',\r\n iana: ['Atlantic/Canary'],\r\n },\r\n {\r\n windowsName: 'GMT Standard Time',\r\n territory: 'FO',\r\n iana: ['Atlantic/Faeroe'],\r\n },\r\n {\r\n windowsName: 'GMT Standard Time',\r\n territory: 'GB',\r\n iana: ['Europe/London'],\r\n },\r\n {\r\n windowsName: 'GMT Standard Time',\r\n territory: 'GG',\r\n iana: ['Europe/Guernsey'],\r\n },\r\n {\r\n windowsName: 'GMT Standard Time',\r\n territory: 'IE',\r\n iana: ['Europe/Dublin'],\r\n },\r\n {\r\n windowsName: 'GMT Standard Time',\r\n territory: 'IM',\r\n iana: ['Europe/Isle_of_Man'],\r\n },\r\n {\r\n windowsName: 'GMT Standard Time',\r\n territory: 'JE',\r\n iana: ['Europe/Jersey'],\r\n },\r\n {\r\n windowsName: 'GMT Standard Time',\r\n territory: 'PT',\r\n iana: ['Europe/Lisbon', 'Atlantic/Madeira'],\r\n },\r\n {\r\n windowsName: 'Greenwich Standard Time',\r\n territory: '001',\r\n iana: ['Atlantic/Reykjavik'],\r\n },\r\n {\r\n windowsName: 'Greenwich Standard Time',\r\n territory: 'BF',\r\n iana: ['Africa/Ouagadougou'],\r\n },\r\n {\r\n windowsName: 'Greenwich Standard Time',\r\n territory: 'CI',\r\n iana: ['Africa/Abidjan'],\r\n },\r\n {\r\n windowsName: 'Greenwich Standard Time',\r\n territory: 'GH',\r\n iana: ['Africa/Accra'],\r\n },\r\n {\r\n windowsName: 'Greenwich Standard Time',\r\n territory: 'GL',\r\n iana: ['America/Danmarkshavn'],\r\n },\r\n {\r\n windowsName: 'Greenwich Standard Time',\r\n territory: 'GM',\r\n iana: ['Africa/Banjul'],\r\n },\r\n {\r\n windowsName: 'Greenwich Standard Time',\r\n territory: 'GN',\r\n iana: ['Africa/Conakry'],\r\n },\r\n {\r\n windowsName: 'Greenwich Standard Time',\r\n territory: 'GW',\r\n iana: ['Africa/Bissau'],\r\n },\r\n {\r\n windowsName: 'Greenwich Standard Time',\r\n territory: 'IS',\r\n iana: ['Atlantic/Reykjavik'],\r\n },\r\n {\r\n windowsName: 'Greenwich Standard Time',\r\n territory: 'LR',\r\n iana: ['Africa/Monrovia'],\r\n },\r\n {\r\n windowsName: 'Greenwich Standard Time',\r\n territory: 'ML',\r\n iana: ['Africa/Bamako'],\r\n },\r\n {\r\n windowsName: 'Greenwich Standard Time',\r\n territory: 'MR',\r\n iana: ['Africa/Nouakchott'],\r\n },\r\n {\r\n windowsName: 'Greenwich Standard Time',\r\n territory: 'SH',\r\n iana: ['Atlantic/St_Helena'],\r\n },\r\n {\r\n windowsName: 'Greenwich Standard Time',\r\n territory: 'SL',\r\n iana: ['Africa/Freetown'],\r\n },\r\n {\r\n windowsName: 'Greenwich Standard Time',\r\n territory: 'SN',\r\n iana: ['Africa/Dakar'],\r\n },\r\n {\r\n windowsName: 'Greenwich Standard Time',\r\n territory: 'TG',\r\n iana: ['Africa/Lome'],\r\n },\r\n {\r\n windowsName: 'Sao Tome Standard Time',\r\n territory: '001',\r\n iana: ['Africa/Sao_Tome'],\r\n },\r\n {\r\n windowsName: 'Sao Tome Standard Time',\r\n territory: 'ST',\r\n iana: ['Africa/Sao_Tome'],\r\n },\r\n {\r\n windowsName: 'Morocco Standard Time',\r\n territory: '001',\r\n iana: ['Africa/Casablanca'],\r\n },\r\n {\r\n windowsName: 'Morocco Standard Time',\r\n territory: 'EH',\r\n iana: ['Africa/El_Aaiun'],\r\n },\r\n {\r\n windowsName: 'Morocco Standard Time',\r\n territory: 'MA',\r\n iana: ['Africa/Casablanca'],\r\n },\r\n {\r\n windowsName: 'W. Europe Standard Time',\r\n territory: '001',\r\n iana: ['Europe/Berlin'],\r\n },\r\n {\r\n windowsName: 'W. Europe Standard Time',\r\n territory: 'AD',\r\n iana: ['Europe/Andorra'],\r\n },\r\n {\r\n windowsName: 'W. Europe Standard Time',\r\n territory: 'AT',\r\n iana: ['Europe/Vienna'],\r\n },\r\n {\r\n windowsName: 'W. Europe Standard Time',\r\n territory: 'CH',\r\n iana: ['Europe/Zurich'],\r\n },\r\n {\r\n windowsName: 'W. Europe Standard Time',\r\n territory: 'DE',\r\n iana: ['Europe/Berlin', 'Europe/Busingen'],\r\n },\r\n {\r\n windowsName: 'W. Europe Standard Time',\r\n territory: 'GI',\r\n iana: ['Europe/Gibraltar'],\r\n },\r\n {\r\n windowsName: 'W. Europe Standard Time',\r\n territory: 'IT',\r\n iana: ['Europe/Rome'],\r\n },\r\n {\r\n windowsName: 'W. Europe Standard Time',\r\n territory: 'LI',\r\n iana: ['Europe/Vaduz'],\r\n },\r\n {\r\n windowsName: 'W. Europe Standard Time',\r\n territory: 'LU',\r\n iana: ['Europe/Luxembourg'],\r\n },\r\n {\r\n windowsName: 'W. Europe Standard Time',\r\n territory: 'MC',\r\n iana: ['Europe/Monaco'],\r\n },\r\n {\r\n windowsName: 'W. Europe Standard Time',\r\n territory: 'MT',\r\n iana: ['Europe/Malta'],\r\n },\r\n {\r\n windowsName: 'W. Europe Standard Time',\r\n territory: 'NL',\r\n iana: ['Europe/Amsterdam'],\r\n },\r\n {\r\n windowsName: 'W. Europe Standard Time',\r\n territory: 'NO',\r\n iana: ['Europe/Oslo'],\r\n },\r\n {\r\n windowsName: 'W. Europe Standard Time',\r\n territory: 'SE',\r\n iana: ['Europe/Stockholm'],\r\n },\r\n {\r\n windowsName: 'W. Europe Standard Time',\r\n territory: 'SJ',\r\n iana: ['Arctic/Longyearbyen'],\r\n },\r\n {\r\n windowsName: 'W. Europe Standard Time',\r\n territory: 'SM',\r\n iana: ['Europe/San_Marino'],\r\n },\r\n {\r\n windowsName: 'W. Europe Standard Time',\r\n territory: 'VA',\r\n iana: ['Europe/Vatican'],\r\n },\r\n {\r\n windowsName: 'Central Europe Standard Time',\r\n territory: '001',\r\n iana: ['Europe/Budapest'],\r\n },\r\n {\r\n windowsName: 'Central Europe Standard Time',\r\n territory: 'AL',\r\n iana: ['Europe/Tirane'],\r\n },\r\n {\r\n windowsName: 'Central Europe Standard Time',\r\n territory: 'CZ',\r\n iana: ['Europe/Prague'],\r\n },\r\n {\r\n windowsName: 'Central Europe Standard Time',\r\n territory: 'HU',\r\n iana: ['Europe/Budapest'],\r\n },\r\n {\r\n windowsName: 'Central Europe Standard Time',\r\n territory: 'ME',\r\n iana: ['Europe/Podgorica'],\r\n },\r\n {\r\n windowsName: 'Central Europe Standard Time',\r\n territory: 'RS',\r\n iana: ['Europe/Belgrade'],\r\n },\r\n {\r\n windowsName: 'Central Europe Standard Time',\r\n territory: 'SI',\r\n iana: ['Europe/Ljubljana'],\r\n },\r\n {\r\n windowsName: 'Central Europe Standard Time',\r\n territory: 'SK',\r\n iana: ['Europe/Bratislava'],\r\n },\r\n {\r\n windowsName: 'Romance Standard Time',\r\n territory: '001',\r\n iana: ['Europe/Paris'],\r\n },\r\n {\r\n windowsName: 'Romance Standard Time',\r\n territory: 'BE',\r\n iana: ['Europe/Brussels'],\r\n },\r\n {\r\n windowsName: 'Romance Standard Time',\r\n territory: 'DK',\r\n iana: ['Europe/Copenhagen'],\r\n },\r\n {\r\n windowsName: 'Romance Standard Time',\r\n territory: 'ES',\r\n iana: ['Europe/Madrid', 'Africa/Ceuta'],\r\n },\r\n {\r\n windowsName: 'Romance Standard Time',\r\n territory: 'FR',\r\n iana: ['Europe/Paris'],\r\n },\r\n {\r\n windowsName: 'Central European Standard Time',\r\n territory: '001',\r\n iana: ['Europe/Warsaw'],\r\n },\r\n {\r\n windowsName: 'Central European Standard Time',\r\n territory: 'BA',\r\n iana: ['Europe/Sarajevo'],\r\n },\r\n {\r\n windowsName: 'Central European Standard Time',\r\n territory: 'HR',\r\n iana: ['Europe/Zagreb'],\r\n },\r\n {\r\n windowsName: 'Central European Standard Time',\r\n territory: 'MK',\r\n iana: ['Europe/Skopje'],\r\n },\r\n {\r\n windowsName: 'Central European Standard Time',\r\n territory: 'PL',\r\n iana: ['Europe/Warsaw'],\r\n },\r\n {\r\n windowsName: 'W. Central Africa Standard Time',\r\n territory: '001',\r\n iana: ['Africa/Lagos'],\r\n },\r\n {\r\n windowsName: 'W. Central Africa Standard Time',\r\n territory: 'AO',\r\n iana: ['Africa/Luanda'],\r\n },\r\n {\r\n windowsName: 'W. Central Africa Standard Time',\r\n territory: 'BJ',\r\n iana: ['Africa/Porto-Novo'],\r\n },\r\n {\r\n windowsName: 'W. Central Africa Standard Time',\r\n territory: 'CD',\r\n iana: ['Africa/Kinshasa'],\r\n },\r\n {\r\n windowsName: 'W. Central Africa Standard Time',\r\n territory: 'CF',\r\n iana: ['Africa/Bangui'],\r\n },\r\n {\r\n windowsName: 'W. Central Africa Standard Time',\r\n territory: 'CG',\r\n iana: ['Africa/Brazzaville'],\r\n },\r\n {\r\n windowsName: 'W. Central Africa Standard Time',\r\n territory: 'CM',\r\n iana: ['Africa/Douala'],\r\n },\r\n {\r\n windowsName: 'W. Central Africa Standard Time',\r\n territory: 'DZ',\r\n iana: ['Africa/Algiers'],\r\n },\r\n {\r\n windowsName: 'W. Central Africa Standard Time',\r\n territory: 'GA',\r\n iana: ['Africa/Libreville'],\r\n },\r\n {\r\n windowsName: 'W. Central Africa Standard Time',\r\n territory: 'GQ',\r\n iana: ['Africa/Malabo'],\r\n },\r\n {\r\n windowsName: 'W. Central Africa Standard Time',\r\n territory: 'NE',\r\n iana: ['Africa/Niamey'],\r\n },\r\n {\r\n windowsName: 'W. Central Africa Standard Time',\r\n territory: 'NG',\r\n iana: ['Africa/Lagos'],\r\n },\r\n {\r\n windowsName: 'W. Central Africa Standard Time',\r\n territory: 'TD',\r\n iana: ['Africa/Ndjamena'],\r\n },\r\n {\r\n windowsName: 'W. Central Africa Standard Time',\r\n territory: 'TN',\r\n iana: ['Africa/Tunis'],\r\n },\r\n {\r\n windowsName: 'W. Central Africa Standard Time',\r\n territory: 'ZZ',\r\n iana: ['Etc/GMT-1'],\r\n },\r\n {\r\n windowsName: 'Jordan Standard Time',\r\n territory: '001',\r\n iana: ['Asia/Amman'],\r\n },\r\n {\r\n windowsName: 'Jordan Standard Time',\r\n territory: 'JO',\r\n iana: ['Asia/Amman'],\r\n },\r\n {\r\n windowsName: 'GTB Standard Time',\r\n territory: '001',\r\n iana: ['Europe/Bucharest'],\r\n },\r\n {\r\n windowsName: 'GTB Standard Time',\r\n territory: 'CY',\r\n iana: ['Asia/Nicosia', 'Asia/Famagusta'],\r\n },\r\n {\r\n windowsName: 'GTB Standard Time',\r\n territory: 'GR',\r\n iana: ['Europe/Athens'],\r\n },\r\n {\r\n windowsName: 'GTB Standard Time',\r\n territory: 'RO',\r\n iana: ['Europe/Bucharest'],\r\n },\r\n {\r\n windowsName: 'Middle East Standard Time',\r\n territory: '001',\r\n iana: ['Asia/Beirut'],\r\n },\r\n {\r\n windowsName: 'Middle East Standard Time',\r\n territory: 'LB',\r\n iana: ['Asia/Beirut'],\r\n },\r\n {\r\n windowsName: 'Egypt Standard Time',\r\n territory: '001',\r\n iana: ['Africa/Cairo'],\r\n },\r\n {\r\n windowsName: 'Egypt Standard Time',\r\n territory: 'EG',\r\n iana: ['Africa/Cairo'],\r\n },\r\n {\r\n windowsName: 'E. Europe Standard Time',\r\n territory: '001',\r\n iana: ['Europe/Chisinau'],\r\n },\r\n {\r\n windowsName: 'E. Europe Standard Time',\r\n territory: 'MD',\r\n iana: ['Europe/Chisinau'],\r\n },\r\n {\r\n windowsName: 'Syria Standard Time',\r\n territory: '001',\r\n iana: ['Asia/Damascus'],\r\n },\r\n {\r\n windowsName: 'Syria Standard Time',\r\n territory: 'SY',\r\n iana: ['Asia/Damascus'],\r\n },\r\n {\r\n windowsName: 'West Bank Standard Time',\r\n territory: '001',\r\n iana: ['Asia/Hebron'],\r\n },\r\n {\r\n windowsName: 'West Bank Standard Time',\r\n territory: 'PS',\r\n iana: ['Asia/Hebron', 'Asia/Gaza'],\r\n },\r\n {\r\n windowsName: 'South Africa Standard Time',\r\n territory: '001',\r\n iana: ['Africa/Johannesburg'],\r\n },\r\n {\r\n windowsName: 'South Africa Standard Time',\r\n territory: 'BI',\r\n iana: ['Africa/Bujumbura'],\r\n },\r\n {\r\n windowsName: 'South Africa Standard Time',\r\n territory: 'BW',\r\n iana: ['Africa/Gaborone'],\r\n },\r\n {\r\n windowsName: 'South Africa Standard Time',\r\n territory: 'CD',\r\n iana: ['Africa/Lubumbashi'],\r\n },\r\n {\r\n windowsName: 'South Africa Standard Time',\r\n territory: 'LS',\r\n iana: ['Africa/Maseru'],\r\n },\r\n {\r\n windowsName: 'South Africa Standard Time',\r\n territory: 'MW',\r\n iana: ['Africa/Blantyre'],\r\n },\r\n {\r\n windowsName: 'South Africa Standard Time',\r\n territory: 'MZ',\r\n iana: ['Africa/Maputo'],\r\n },\r\n {\r\n windowsName: 'South Africa Standard Time',\r\n territory: 'RW',\r\n iana: ['Africa/Kigali'],\r\n },\r\n {\r\n windowsName: 'South Africa Standard Time',\r\n territory: 'SZ',\r\n iana: ['Africa/Mbabane'],\r\n },\r\n {\r\n windowsName: 'South Africa Standard Time',\r\n territory: 'ZA',\r\n iana: ['Africa/Johannesburg'],\r\n },\r\n {\r\n windowsName: 'South Africa Standard Time',\r\n territory: 'ZM',\r\n iana: ['Africa/Lusaka'],\r\n },\r\n {\r\n windowsName: 'South Africa Standard Time',\r\n territory: 'ZW',\r\n iana: ['Africa/Harare'],\r\n },\r\n {\r\n windowsName: 'South Africa Standard Time',\r\n territory: 'ZZ',\r\n iana: ['Etc/GMT-2'],\r\n },\r\n {\r\n windowsName: 'FLE Standard Time',\r\n territory: '001',\r\n iana: ['Europe/Kiev'],\r\n },\r\n {\r\n windowsName: 'FLE Standard Time',\r\n territory: 'AX',\r\n iana: ['Europe/Mariehamn'],\r\n },\r\n {\r\n windowsName: 'FLE Standard Time',\r\n territory: 'BG',\r\n iana: ['Europe/Sofia'],\r\n },\r\n {\r\n windowsName: 'FLE Standard Time',\r\n territory: 'EE',\r\n iana: ['Europe/Tallinn'],\r\n },\r\n {\r\n windowsName: 'FLE Standard Time',\r\n territory: 'FI',\r\n iana: ['Europe/Helsinki'],\r\n },\r\n {\r\n windowsName: 'FLE Standard Time',\r\n territory: 'LT',\r\n iana: ['Europe/Vilnius'],\r\n },\r\n {\r\n windowsName: 'FLE Standard Time',\r\n territory: 'LV',\r\n iana: ['Europe/Riga'],\r\n },\r\n {\r\n windowsName: 'FLE Standard Time',\r\n territory: 'UA',\r\n iana: ['Europe/Kiev', 'Europe/Uzhgorod', 'Europe/Zaporozhye'],\r\n },\r\n {\r\n windowsName: 'Israel Standard Time',\r\n territory: '001',\r\n iana: ['Asia/Jerusalem'],\r\n },\r\n {\r\n windowsName: 'Israel Standard Time',\r\n territory: 'IL',\r\n iana: ['Asia/Jerusalem'],\r\n },\r\n {\r\n windowsName: 'South Sudan Standard Time',\r\n territory: '001',\r\n iana: ['Africa/Juba'],\r\n },\r\n {\r\n windowsName: 'South Sudan Standard Time',\r\n territory: 'SS',\r\n iana: ['Africa/Juba'],\r\n },\r\n {\r\n windowsName: 'Kaliningrad Standard Time',\r\n territory: '001',\r\n iana: ['Europe/Kaliningrad'],\r\n },\r\n {\r\n windowsName: 'Kaliningrad Standard Time',\r\n territory: 'RU',\r\n iana: ['Europe/Kaliningrad'],\r\n },\r\n {\r\n windowsName: 'Sudan Standard Time',\r\n territory: '001',\r\n iana: ['Africa/Khartoum'],\r\n },\r\n {\r\n windowsName: 'Sudan Standard Time',\r\n territory: 'SD',\r\n iana: ['Africa/Khartoum'],\r\n },\r\n {\r\n windowsName: 'Libya Standard Time',\r\n territory: '001',\r\n iana: ['Africa/Tripoli'],\r\n },\r\n {\r\n windowsName: 'Libya Standard Time',\r\n territory: 'LY',\r\n iana: ['Africa/Tripoli'],\r\n },\r\n {\r\n windowsName: 'Namibia Standard Time',\r\n territory: '001',\r\n iana: ['Africa/Windhoek'],\r\n },\r\n {\r\n windowsName: 'Namibia Standard Time',\r\n territory: 'NA',\r\n iana: ['Africa/Windhoek'],\r\n },\r\n {\r\n windowsName: 'Arabic Standard Time',\r\n territory: '001',\r\n iana: ['Asia/Baghdad'],\r\n },\r\n {\r\n windowsName: 'Arabic Standard Time',\r\n territory: 'IQ',\r\n iana: ['Asia/Baghdad'],\r\n },\r\n {\r\n windowsName: 'Turkey Standard Time',\r\n territory: '001',\r\n iana: ['Europe/Istanbul'],\r\n },\r\n {\r\n windowsName: 'Turkey Standard Time',\r\n territory: 'TR',\r\n iana: ['Europe/Istanbul'],\r\n },\r\n {\r\n windowsName: 'Arab Standard Time',\r\n territory: '001',\r\n iana: ['Asia/Riyadh'],\r\n },\r\n {\r\n windowsName: 'Arab Standard Time',\r\n territory: 'BH',\r\n iana: ['Asia/Bahrain'],\r\n },\r\n {\r\n windowsName: 'Arab Standard Time',\r\n territory: 'KW',\r\n iana: ['Asia/Kuwait'],\r\n },\r\n {\r\n windowsName: 'Arab Standard Time',\r\n territory: 'QA',\r\n iana: ['Asia/Qatar'],\r\n },\r\n {\r\n windowsName: 'Arab Standard Time',\r\n territory: 'SA',\r\n iana: ['Asia/Riyadh'],\r\n },\r\n {\r\n windowsName: 'Arab Standard Time',\r\n territory: 'YE',\r\n iana: ['Asia/Aden'],\r\n },\r\n {\r\n windowsName: 'Belarus Standard Time',\r\n territory: '001',\r\n iana: ['Europe/Minsk'],\r\n },\r\n {\r\n windowsName: 'Belarus Standard Time',\r\n territory: 'BY',\r\n iana: ['Europe/Minsk'],\r\n },\r\n {\r\n windowsName: 'Russian Standard Time',\r\n territory: '001',\r\n iana: ['Europe/Moscow'],\r\n },\r\n {\r\n windowsName: 'Russian Standard Time',\r\n territory: 'RU',\r\n iana: ['Europe/Moscow', 'Europe/Kirov'],\r\n },\r\n {\r\n windowsName: 'Russian Standard Time',\r\n territory: 'UA',\r\n iana: ['Europe/Simferopol'],\r\n },\r\n {\r\n windowsName: 'E. Africa Standard Time',\r\n territory: '001',\r\n iana: ['Africa/Nairobi'],\r\n },\r\n {\r\n windowsName: 'E. Africa Standard Time',\r\n territory: 'AQ',\r\n iana: ['Antarctica/Syowa'],\r\n },\r\n {\r\n windowsName: 'E. Africa Standard Time',\r\n territory: 'DJ',\r\n iana: ['Africa/Djibouti'],\r\n },\r\n {\r\n windowsName: 'E. Africa Standard Time',\r\n territory: 'ER',\r\n iana: ['Africa/Asmera'],\r\n },\r\n {\r\n windowsName: 'E. Africa Standard Time',\r\n territory: 'ET',\r\n iana: ['Africa/Addis_Ababa'],\r\n },\r\n {\r\n windowsName: 'E. Africa Standard Time',\r\n territory: 'KE',\r\n iana: ['Africa/Nairobi'],\r\n },\r\n {\r\n windowsName: 'E. Africa Standard Time',\r\n territory: 'KM',\r\n iana: ['Indian/Comoro'],\r\n },\r\n {\r\n windowsName: 'E. Africa Standard Time',\r\n territory: 'MG',\r\n iana: ['Indian/Antananarivo'],\r\n },\r\n {\r\n windowsName: 'E. Africa Standard Time',\r\n territory: 'SO',\r\n iana: ['Africa/Mogadishu'],\r\n },\r\n {\r\n windowsName: 'E. Africa Standard Time',\r\n territory: 'TZ',\r\n iana: ['Africa/Dar_es_Salaam'],\r\n },\r\n {\r\n windowsName: 'E. Africa Standard Time',\r\n territory: 'UG',\r\n iana: ['Africa/Kampala'],\r\n },\r\n {\r\n windowsName: 'E. Africa Standard Time',\r\n territory: 'YT',\r\n iana: ['Indian/Mayotte'],\r\n },\r\n {\r\n windowsName: 'E. Africa Standard Time',\r\n territory: 'ZZ',\r\n iana: ['Etc/GMT-3'],\r\n },\r\n {\r\n windowsName: 'Iran Standard Time',\r\n territory: '001',\r\n iana: ['Asia/Tehran'],\r\n },\r\n {\r\n windowsName: 'Iran Standard Time',\r\n territory: 'IR',\r\n iana: ['Asia/Tehran'],\r\n },\r\n {\r\n windowsName: 'Arabian Standard Time',\r\n territory: '001',\r\n iana: ['Asia/Dubai'],\r\n },\r\n {\r\n windowsName: 'Arabian Standard Time',\r\n territory: 'AE',\r\n iana: ['Asia/Dubai'],\r\n },\r\n {\r\n windowsName: 'Arabian Standard Time',\r\n territory: 'OM',\r\n iana: ['Asia/Muscat'],\r\n },\r\n {\r\n windowsName: 'Arabian Standard Time',\r\n territory: 'ZZ',\r\n iana: ['Etc/GMT-4'],\r\n },\r\n {\r\n windowsName: 'Astrakhan Standard Time',\r\n territory: '001',\r\n iana: ['Europe/Astrakhan'],\r\n },\r\n {\r\n windowsName: 'Astrakhan Standard Time',\r\n territory: 'RU',\r\n iana: ['Europe/Astrakhan', 'Europe/Ulyanovsk'],\r\n },\r\n {\r\n windowsName: 'Azerbaijan Standard Time',\r\n territory: '001',\r\n iana: ['Asia/Baku'],\r\n },\r\n {\r\n windowsName: 'Azerbaijan Standard Time',\r\n territory: 'AZ',\r\n iana: ['Asia/Baku'],\r\n },\r\n {\r\n windowsName: 'Russia Time Zone 3',\r\n territory: '001',\r\n iana: ['Europe/Samara'],\r\n },\r\n {\r\n windowsName: 'Russia Time Zone 3',\r\n territory: 'RU',\r\n iana: ['Europe/Samara'],\r\n },\r\n {\r\n windowsName: 'Mauritius Standard Time',\r\n territory: '001',\r\n iana: ['Indian/Mauritius'],\r\n },\r\n {\r\n windowsName: 'Mauritius Standard Time',\r\n territory: 'MU',\r\n iana: ['Indian/Mauritius'],\r\n },\r\n {\r\n windowsName: 'Mauritius Standard Time',\r\n territory: 'RE',\r\n iana: ['Indian/Reunion'],\r\n },\r\n {\r\n windowsName: 'Mauritius Standard Time',\r\n territory: 'SC',\r\n iana: ['Indian/Mahe'],\r\n },\r\n {\r\n windowsName: 'Saratov Standard Time',\r\n territory: '001',\r\n iana: ['Europe/Saratov'],\r\n },\r\n {\r\n windowsName: 'Saratov Standard Time',\r\n territory: 'RU',\r\n iana: ['Europe/Saratov'],\r\n },\r\n {\r\n windowsName: 'Georgian Standard Time',\r\n territory: '001',\r\n iana: ['Asia/Tbilisi'],\r\n },\r\n {\r\n windowsName: 'Georgian Standard Time',\r\n territory: 'GE',\r\n iana: ['Asia/Tbilisi'],\r\n },\r\n {\r\n windowsName: 'Volgograd Standard Time',\r\n territory: '001',\r\n iana: ['Europe/Volgograd'],\r\n },\r\n {\r\n windowsName: 'Volgograd Standard Time',\r\n territory: 'RU',\r\n iana: ['Europe/Volgograd'],\r\n },\r\n {\r\n windowsName: 'Caucasus Standard Time',\r\n territory: '001',\r\n iana: ['Asia/Yerevan'],\r\n },\r\n {\r\n windowsName: 'Caucasus Standard Time',\r\n territory: 'AM',\r\n iana: ['Asia/Yerevan'],\r\n },\r\n {\r\n windowsName: 'Afghanistan Standard Time',\r\n territory: '001',\r\n iana: ['Asia/Kabul'],\r\n },\r\n {\r\n windowsName: 'Afghanistan Standard Time',\r\n territory: 'AF',\r\n iana: ['Asia/Kabul'],\r\n },\r\n {\r\n windowsName: 'West Asia Standard Time',\r\n territory: '001',\r\n iana: ['Asia/Tashkent'],\r\n },\r\n {\r\n windowsName: 'West Asia Standard Time',\r\n territory: 'AQ',\r\n iana: ['Antarctica/Mawson'],\r\n },\r\n {\r\n windowsName: 'West Asia Standard Time',\r\n territory: 'KZ',\r\n iana: ['Asia/Oral', 'Asia/Aqtau', 'Asia/Aqtobe', 'Asia/Atyrau'],\r\n },\r\n {\r\n windowsName: 'West Asia Standard Time',\r\n territory: 'MV',\r\n iana: ['Indian/Maldives'],\r\n },\r\n {\r\n windowsName: 'West Asia Standard Time',\r\n territory: 'TF',\r\n iana: ['Indian/Kerguelen'],\r\n },\r\n {\r\n windowsName: 'West Asia Standard Time',\r\n territory: 'TJ',\r\n iana: ['Asia/Dushanbe'],\r\n },\r\n {\r\n windowsName: 'West Asia Standard Time',\r\n territory: 'TM',\r\n iana: ['Asia/Ashgabat'],\r\n },\r\n {\r\n windowsName: 'West Asia Standard Time',\r\n territory: 'UZ',\r\n iana: ['Asia/Tashkent', 'Asia/Samarkand'],\r\n },\r\n {\r\n windowsName: 'West Asia Standard Time',\r\n territory: 'ZZ',\r\n iana: ['Etc/GMT-5'],\r\n },\r\n {\r\n windowsName: 'Ekaterinburg Standard Time',\r\n territory: '001',\r\n iana: ['Asia/Yekaterinburg'],\r\n },\r\n {\r\n windowsName: 'Ekaterinburg Standard Time',\r\n territory: 'RU',\r\n iana: ['Asia/Yekaterinburg'],\r\n },\r\n {\r\n windowsName: 'Pakistan Standard Time',\r\n territory: '001',\r\n iana: ['Asia/Karachi'],\r\n },\r\n {\r\n windowsName: 'Pakistan Standard Time',\r\n territory: 'PK',\r\n iana: ['Asia/Karachi'],\r\n },\r\n {\r\n windowsName: 'Qyzylorda Standard Time',\r\n territory: '001',\r\n iana: ['Asia/Qyzylorda'],\r\n },\r\n {\r\n windowsName: 'Qyzylorda Standard Time',\r\n territory: 'KZ',\r\n iana: ['Asia/Qyzylorda'],\r\n },\r\n {\r\n windowsName: 'India Standard Time',\r\n territory: '001',\r\n iana: ['Asia/Calcutta'],\r\n },\r\n {\r\n windowsName: 'India Standard Time',\r\n territory: 'IN',\r\n iana: ['Asia/Calcutta'],\r\n },\r\n {\r\n windowsName: 'Sri Lanka Standard Time',\r\n territory: '001',\r\n iana: ['Asia/Colombo'],\r\n },\r\n {\r\n windowsName: 'Sri Lanka Standard Time',\r\n territory: 'LK',\r\n iana: ['Asia/Colombo'],\r\n },\r\n {\r\n windowsName: 'Nepal Standard Time',\r\n territory: '001',\r\n iana: ['Asia/Katmandu'],\r\n },\r\n {\r\n windowsName: 'Nepal Standard Time',\r\n territory: 'NP',\r\n iana: ['Asia/Katmandu'],\r\n },\r\n {\r\n windowsName: 'Central Asia Standard Time',\r\n territory: '001',\r\n iana: ['Asia/Almaty'],\r\n },\r\n {\r\n windowsName: 'Central Asia Standard Time',\r\n territory: 'AQ',\r\n iana: ['Antarctica/Vostok'],\r\n },\r\n {\r\n windowsName: 'Central Asia Standard Time',\r\n territory: 'CN',\r\n iana: ['Asia/Urumqi'],\r\n },\r\n {\r\n windowsName: 'Central Asia Standard Time',\r\n territory: 'IO',\r\n iana: ['Indian/Chagos'],\r\n },\r\n {\r\n windowsName: 'Central Asia Standard Time',\r\n territory: 'KG',\r\n iana: ['Asia/Bishkek'],\r\n },\r\n {\r\n windowsName: 'Central Asia Standard Time',\r\n territory: 'KZ',\r\n iana: ['Asia/Almaty', 'Asia/Qostanay'],\r\n },\r\n {\r\n windowsName: 'Central Asia Standard Time',\r\n territory: 'ZZ',\r\n iana: ['Etc/GMT-6'],\r\n },\r\n {\r\n windowsName: 'Bangladesh Standard Time',\r\n territory: '001',\r\n iana: ['Asia/Dhaka'],\r\n },\r\n {\r\n windowsName: 'Bangladesh Standard Time',\r\n territory: 'BD',\r\n iana: ['Asia/Dhaka'],\r\n },\r\n {\r\n windowsName: 'Bangladesh Standard Time',\r\n territory: 'BT',\r\n iana: ['Asia/Thimphu'],\r\n },\r\n {\r\n windowsName: 'Omsk Standard Time',\r\n territory: '001',\r\n iana: ['Asia/Omsk'],\r\n },\r\n {\r\n windowsName: 'Omsk Standard Time',\r\n territory: 'RU',\r\n iana: ['Asia/Omsk'],\r\n },\r\n {\r\n windowsName: 'Myanmar Standard Time',\r\n territory: '001',\r\n iana: ['Asia/Rangoon'],\r\n },\r\n {\r\n windowsName: 'Myanmar Standard Time',\r\n territory: 'CC',\r\n iana: ['Indian/Cocos'],\r\n },\r\n {\r\n windowsName: 'Myanmar Standard Time',\r\n territory: 'MM',\r\n iana: ['Asia/Rangoon'],\r\n },\r\n {\r\n windowsName: 'SE Asia Standard Time',\r\n territory: '001',\r\n iana: ['Asia/Bangkok'],\r\n },\r\n {\r\n windowsName: 'SE Asia Standard Time',\r\n territory: 'AQ',\r\n iana: ['Antarctica/Davis'],\r\n },\r\n {\r\n windowsName: 'SE Asia Standard Time',\r\n territory: 'CX',\r\n iana: ['Indian/Christmas'],\r\n },\r\n {\r\n windowsName: 'SE Asia Standard Time',\r\n territory: 'ID',\r\n iana: ['Asia/Jakarta', 'Asia/Pontianak'],\r\n },\r\n {\r\n windowsName: 'SE Asia Standard Time',\r\n territory: 'KH',\r\n iana: ['Asia/Phnom_Penh'],\r\n },\r\n {\r\n windowsName: 'SE Asia Standard Time',\r\n territory: 'LA',\r\n iana: ['Asia/Vientiane'],\r\n },\r\n {\r\n windowsName: 'SE Asia Standard Time',\r\n territory: 'TH',\r\n iana: ['Asia/Bangkok'],\r\n },\r\n {\r\n windowsName: 'SE Asia Standard Time',\r\n territory: 'VN',\r\n iana: ['Asia/Saigon'],\r\n },\r\n {\r\n windowsName: 'SE Asia Standard Time',\r\n territory: 'ZZ',\r\n iana: ['Etc/GMT-7'],\r\n },\r\n {\r\n windowsName: 'Altai Standard Time',\r\n territory: '001',\r\n iana: ['Asia/Barnaul'],\r\n },\r\n {\r\n windowsName: 'Altai Standard Time',\r\n territory: 'RU',\r\n iana: ['Asia/Barnaul'],\r\n },\r\n {\r\n windowsName: 'W. Mongolia Standard Time',\r\n territory: '001',\r\n iana: ['Asia/Hovd'],\r\n },\r\n {\r\n windowsName: 'W. Mongolia Standard Time',\r\n territory: 'MN',\r\n iana: ['Asia/Hovd'],\r\n },\r\n {\r\n windowsName: 'North Asia Standard Time',\r\n territory: '001',\r\n iana: ['Asia/Krasnoyarsk'],\r\n },\r\n {\r\n windowsName: 'North Asia Standard Time',\r\n territory: 'RU',\r\n iana: ['Asia/Krasnoyarsk', 'Asia/Novokuznetsk'],\r\n },\r\n {\r\n windowsName: 'N. Central Asia Standard Time',\r\n territory: '001',\r\n iana: ['Asia/Novosibirsk'],\r\n },\r\n {\r\n windowsName: 'N. Central Asia Standard Time',\r\n territory: 'RU',\r\n iana: ['Asia/Novosibirsk'],\r\n },\r\n {\r\n windowsName: 'Tomsk Standard Time',\r\n territory: '001',\r\n iana: ['Asia/Tomsk'],\r\n },\r\n {\r\n windowsName: 'Tomsk Standard Time',\r\n territory: 'RU',\r\n iana: ['Asia/Tomsk'],\r\n },\r\n {\r\n windowsName: 'China Standard Time',\r\n territory: '001',\r\n iana: ['Asia/Shanghai'],\r\n },\r\n {\r\n windowsName: 'China Standard Time',\r\n territory: 'CN',\r\n iana: ['Asia/Shanghai'],\r\n },\r\n {\r\n windowsName: 'China Standard Time',\r\n territory: 'HK',\r\n iana: ['Asia/Hong_Kong'],\r\n },\r\n {\r\n windowsName: 'China Standard Time',\r\n territory: 'MO',\r\n iana: ['Asia/Macau'],\r\n },\r\n {\r\n windowsName: 'North Asia East Standard Time',\r\n territory: '001',\r\n iana: ['Asia/Irkutsk'],\r\n },\r\n {\r\n windowsName: 'North Asia East Standard Time',\r\n territory: 'RU',\r\n iana: ['Asia/Irkutsk'],\r\n },\r\n {\r\n windowsName: 'Singapore Standard Time',\r\n territory: '001',\r\n iana: ['Asia/Singapore'],\r\n },\r\n {\r\n windowsName: 'Singapore Standard Time',\r\n territory: 'BN',\r\n iana: ['Asia/Brunei'],\r\n },\r\n {\r\n windowsName: 'Singapore Standard Time',\r\n territory: 'ID',\r\n iana: ['Asia/Makassar'],\r\n },\r\n {\r\n windowsName: 'Singapore Standard Time',\r\n territory: 'MY',\r\n iana: ['Asia/Kuala_Lumpur', 'Asia/Kuching'],\r\n },\r\n {\r\n windowsName: 'Singapore Standard Time',\r\n territory: 'PH',\r\n iana: ['Asia/Manila'],\r\n },\r\n {\r\n windowsName: 'Singapore Standard Time',\r\n territory: 'SG',\r\n iana: ['Asia/Singapore'],\r\n },\r\n {\r\n windowsName: 'Singapore Standard Time',\r\n territory: 'ZZ',\r\n iana: ['Etc/GMT-8'],\r\n },\r\n {\r\n windowsName: 'W. Australia Standard Time',\r\n territory: '001',\r\n iana: ['Australia/Perth'],\r\n },\r\n {\r\n windowsName: 'W. Australia Standard Time',\r\n territory: 'AU',\r\n iana: ['Australia/Perth'],\r\n },\r\n {\r\n windowsName: 'Taipei Standard Time',\r\n territory: '001',\r\n iana: ['Asia/Taipei'],\r\n },\r\n {\r\n windowsName: 'Taipei Standard Time',\r\n territory: 'TW',\r\n iana: ['Asia/Taipei'],\r\n },\r\n {\r\n windowsName: 'Ulaanbaatar Standard Time',\r\n territory: '001',\r\n iana: ['Asia/Ulaanbaatar'],\r\n },\r\n {\r\n windowsName: 'Ulaanbaatar Standard Time',\r\n territory: 'MN',\r\n iana: ['Asia/Ulaanbaatar', 'Asia/Choibalsan'],\r\n },\r\n {\r\n windowsName: 'Aus Central W. Standard Time',\r\n territory: '001',\r\n iana: ['Australia/Eucla'],\r\n },\r\n {\r\n windowsName: 'Aus Central W. Standard Time',\r\n territory: 'AU',\r\n iana: ['Australia/Eucla'],\r\n },\r\n {\r\n windowsName: 'Transbaikal Standard Time',\r\n territory: '001',\r\n iana: ['Asia/Chita'],\r\n },\r\n {\r\n windowsName: 'Transbaikal Standard Time',\r\n territory: 'RU',\r\n iana: ['Asia/Chita'],\r\n },\r\n {\r\n windowsName: 'Tokyo Standard Time',\r\n territory: '001',\r\n iana: ['Asia/Tokyo'],\r\n },\r\n {\r\n windowsName: 'Tokyo Standard Time',\r\n territory: 'ID',\r\n iana: ['Asia/Jayapura'],\r\n },\r\n {\r\n windowsName: 'Tokyo Standard Time',\r\n territory: 'JP',\r\n iana: ['Asia/Tokyo'],\r\n },\r\n {\r\n windowsName: 'Tokyo Standard Time',\r\n territory: 'PW',\r\n iana: ['Pacific/Palau'],\r\n },\r\n {\r\n windowsName: 'Tokyo Standard Time',\r\n territory: 'TL',\r\n iana: ['Asia/Dili'],\r\n },\r\n {\r\n windowsName: 'Tokyo Standard Time',\r\n territory: 'ZZ',\r\n iana: ['Etc/GMT-9'],\r\n },\r\n {\r\n windowsName: 'North Korea Standard Time',\r\n territory: '001',\r\n iana: ['Asia/Pyongyang'],\r\n },\r\n {\r\n windowsName: 'North Korea Standard Time',\r\n territory: 'KP',\r\n iana: ['Asia/Pyongyang'],\r\n },\r\n {\r\n windowsName: 'Korea Standard Time',\r\n territory: '001',\r\n iana: ['Asia/Seoul'],\r\n },\r\n {\r\n windowsName: 'Korea Standard Time',\r\n territory: 'KR',\r\n iana: ['Asia/Seoul'],\r\n },\r\n {\r\n windowsName: 'Yakutsk Standard Time',\r\n territory: '001',\r\n iana: ['Asia/Yakutsk'],\r\n },\r\n {\r\n windowsName: 'Yakutsk Standard Time',\r\n territory: 'RU',\r\n iana: ['Asia/Yakutsk', 'Asia/Khandyga'],\r\n },\r\n {\r\n windowsName: 'Cen. Australia Standard Time',\r\n territory: '001',\r\n iana: ['Australia/Adelaide'],\r\n },\r\n {\r\n windowsName: 'Cen. Australia Standard Time',\r\n territory: 'AU',\r\n iana: ['Australia/Adelaide', 'Australia/Broken_Hill'],\r\n },\r\n {\r\n windowsName: 'AUS Central Standard Time',\r\n territory: '001',\r\n iana: ['Australia/Darwin'],\r\n },\r\n {\r\n windowsName: 'AUS Central Standard Time',\r\n territory: 'AU',\r\n iana: ['Australia/Darwin'],\r\n },\r\n {\r\n windowsName: 'E. Australia Standard Time',\r\n territory: '001',\r\n iana: ['Australia/Brisbane'],\r\n },\r\n {\r\n windowsName: 'E. Australia Standard Time',\r\n territory: 'AU',\r\n iana: ['Australia/Brisbane', 'Australia/Lindeman'],\r\n },\r\n {\r\n windowsName: 'AUS Eastern Standard Time',\r\n territory: '001',\r\n iana: ['Australia/Sydney'],\r\n },\r\n {\r\n windowsName: 'AUS Eastern Standard Time',\r\n territory: 'AU',\r\n iana: ['Australia/Sydney', 'Australia/Melbourne'],\r\n },\r\n {\r\n windowsName: 'West Pacific Standard Time',\r\n territory: '001',\r\n iana: ['Pacific/Port_Moresby'],\r\n },\r\n {\r\n windowsName: 'West Pacific Standard Time',\r\n territory: 'AQ',\r\n iana: ['Antarctica/DumontDUrville'],\r\n },\r\n {\r\n windowsName: 'West Pacific Standard Time',\r\n territory: 'FM',\r\n iana: ['Pacific/Truk'],\r\n },\r\n {\r\n windowsName: 'West Pacific Standard Time',\r\n territory: 'GU',\r\n iana: ['Pacific/Guam'],\r\n },\r\n {\r\n windowsName: 'West Pacific Standard Time',\r\n territory: 'MP',\r\n iana: ['Pacific/Saipan'],\r\n },\r\n {\r\n windowsName: 'West Pacific Standard Time',\r\n territory: 'PG',\r\n iana: ['Pacific/Port_Moresby'],\r\n },\r\n {\r\n windowsName: 'West Pacific Standard Time',\r\n territory: 'ZZ',\r\n iana: ['Etc/GMT-10'],\r\n },\r\n {\r\n windowsName: 'Tasmania Standard Time',\r\n territory: '001',\r\n iana: ['Australia/Hobart'],\r\n },\r\n {\r\n windowsName: 'Tasmania Standard Time',\r\n territory: 'AU',\r\n iana: ['Australia/Hobart', 'Australia/Currie', 'Antarctica/Macquarie'],\r\n },\r\n {\r\n windowsName: 'Vladivostok Standard Time',\r\n territory: '001',\r\n iana: ['Asia/Vladivostok'],\r\n },\r\n {\r\n windowsName: 'Vladivostok Standard Time',\r\n territory: 'RU',\r\n iana: ['Asia/Vladivostok', 'Asia/Ust-Nera'],\r\n },\r\n {\r\n windowsName: 'Lord Howe Standard Time',\r\n territory: '001',\r\n iana: ['Australia/Lord_Howe'],\r\n },\r\n {\r\n windowsName: 'Lord Howe Standard Time',\r\n territory: 'AU',\r\n iana: ['Australia/Lord_Howe'],\r\n },\r\n {\r\n windowsName: 'Bougainville Standard Time',\r\n territory: '001',\r\n iana: ['Pacific/Bougainville'],\r\n },\r\n {\r\n windowsName: 'Bougainville Standard Time',\r\n territory: 'PG',\r\n iana: ['Pacific/Bougainville'],\r\n },\r\n {\r\n windowsName: 'Russia Time Zone 10',\r\n territory: '001',\r\n iana: ['Asia/Srednekolymsk'],\r\n },\r\n {\r\n windowsName: 'Russia Time Zone 10',\r\n territory: 'RU',\r\n iana: ['Asia/Srednekolymsk'],\r\n },\r\n {\r\n windowsName: 'Magadan Standard Time',\r\n territory: '001',\r\n iana: ['Asia/Magadan'],\r\n },\r\n {\r\n windowsName: 'Magadan Standard Time',\r\n territory: 'RU',\r\n iana: ['Asia/Magadan'],\r\n },\r\n {\r\n windowsName: 'Norfolk Standard Time',\r\n territory: '001',\r\n iana: ['Pacific/Norfolk'],\r\n },\r\n {\r\n windowsName: 'Norfolk Standard Time',\r\n territory: 'NF',\r\n iana: ['Pacific/Norfolk'],\r\n },\r\n {\r\n windowsName: 'Sakhalin Standard Time',\r\n territory: '001',\r\n iana: ['Asia/Sakhalin'],\r\n },\r\n {\r\n windowsName: 'Sakhalin Standard Time',\r\n territory: 'RU',\r\n iana: ['Asia/Sakhalin'],\r\n },\r\n {\r\n windowsName: 'Central Pacific Standard Time',\r\n territory: '001',\r\n iana: ['Pacific/Guadalcanal'],\r\n },\r\n {\r\n windowsName: 'Central Pacific Standard Time',\r\n territory: 'AQ',\r\n iana: ['Antarctica/Casey'],\r\n },\r\n {\r\n windowsName: 'Central Pacific Standard Time',\r\n territory: 'FM',\r\n iana: ['Pacific/Ponape', 'Pacific/Kosrae'],\r\n },\r\n {\r\n windowsName: 'Central Pacific Standard Time',\r\n territory: 'NC',\r\n iana: ['Pacific/Noumea'],\r\n },\r\n {\r\n windowsName: 'Central Pacific Standard Time',\r\n territory: 'SB',\r\n iana: ['Pacific/Guadalcanal'],\r\n },\r\n {\r\n windowsName: 'Central Pacific Standard Time',\r\n territory: 'VU',\r\n iana: ['Pacific/Efate'],\r\n },\r\n {\r\n windowsName: 'Central Pacific Standard Time',\r\n territory: 'ZZ',\r\n iana: ['Etc/GMT-11'],\r\n },\r\n {\r\n windowsName: 'Russia Time Zone 11',\r\n territory: '001',\r\n iana: ['Asia/Kamchatka'],\r\n },\r\n {\r\n windowsName: 'Russia Time Zone 11',\r\n territory: 'RU',\r\n iana: ['Asia/Kamchatka', 'Asia/Anadyr'],\r\n },\r\n {\r\n windowsName: 'New Zealand Standard Time',\r\n territory: '001',\r\n iana: ['Pacific/Auckland'],\r\n },\r\n {\r\n windowsName: 'New Zealand Standard Time',\r\n territory: 'AQ',\r\n iana: ['Antarctica/McMurdo'],\r\n },\r\n {\r\n windowsName: 'New Zealand Standard Time',\r\n territory: 'NZ',\r\n iana: ['Pacific/Auckland'],\r\n },\r\n {\r\n windowsName: 'UTC+12',\r\n territory: '001',\r\n iana: ['Etc/GMT-12'],\r\n },\r\n {\r\n windowsName: 'UTC+12',\r\n territory: 'KI',\r\n iana: ['Pacific/Tarawa'],\r\n },\r\n {\r\n windowsName: 'UTC+12',\r\n territory: 'MH',\r\n iana: ['Pacific/Majuro', 'Pacific/Kwajalein'],\r\n },\r\n {\r\n windowsName: 'UTC+12',\r\n territory: 'NR',\r\n iana: ['Pacific/Nauru'],\r\n },\r\n {\r\n windowsName: 'UTC+12',\r\n territory: 'TV',\r\n iana: ['Pacific/Funafuti'],\r\n },\r\n {\r\n windowsName: 'UTC+12',\r\n territory: 'UM',\r\n iana: ['Pacific/Wake'],\r\n },\r\n {\r\n windowsName: 'UTC+12',\r\n territory: 'WF',\r\n iana: ['Pacific/Wallis'],\r\n },\r\n {\r\n windowsName: 'UTC+12',\r\n territory: 'ZZ',\r\n iana: ['Etc/GMT-12'],\r\n },\r\n {\r\n windowsName: 'Fiji Standard Time',\r\n territory: '001',\r\n iana: ['Pacific/Fiji'],\r\n },\r\n {\r\n windowsName: 'Fiji Standard Time',\r\n territory: 'FJ',\r\n iana: ['Pacific/Fiji'],\r\n },\r\n {\r\n windowsName: 'Chatham Islands Standard Time',\r\n territory: '001',\r\n iana: ['Pacific/Chatham'],\r\n },\r\n {\r\n windowsName: 'Chatham Islands Standard Time',\r\n territory: 'NZ',\r\n iana: ['Pacific/Chatham'],\r\n },\r\n {\r\n windowsName: 'UTC+13',\r\n territory: '001',\r\n iana: ['Etc/GMT-13'],\r\n },\r\n {\r\n windowsName: 'UTC+13',\r\n territory: 'KI',\r\n iana: ['Pacific/Enderbury'],\r\n },\r\n {\r\n windowsName: 'UTC+13',\r\n territory: 'TK',\r\n iana: ['Pacific/Fakaofo'],\r\n },\r\n {\r\n windowsName: 'UTC+13',\r\n territory: 'ZZ',\r\n iana: ['Etc/GMT-13'],\r\n },\r\n {\r\n windowsName: 'Tonga Standard Time',\r\n territory: '001',\r\n iana: ['Pacific/Tongatapu'],\r\n },\r\n {\r\n windowsName: 'Tonga Standard Time',\r\n territory: 'TO',\r\n iana: ['Pacific/Tongatapu'],\r\n },\r\n {\r\n windowsName: 'Samoa Standard Time',\r\n territory: '001',\r\n iana: ['Pacific/Apia'],\r\n },\r\n {\r\n windowsName: 'Samoa Standard Time',\r\n territory: 'WS',\r\n iana: ['Pacific/Apia'],\r\n },\r\n {\r\n windowsName: 'Line Islands Standard Time',\r\n territory: '001',\r\n iana: ['Pacific/Kiritimati'],\r\n },\r\n {\r\n windowsName: 'Line Islands Standard Time',\r\n territory: 'KI',\r\n iana: ['Pacific/Kiritimati'],\r\n },\r\n {\r\n windowsName: 'Line Islands Standard Time',\r\n territory: 'ZZ',\r\n iana: ['Etc/GMT-14'],\r\n },\r\n];\r\n\r\nconst ianaToWindows_list = WINDOWS_TO_IANA.flatMap(k => k.iana.map(i => ({ name: i, value: k })));\r\nconst ianaToWindows_map = ianaToWindows_list.reduce((previous, current) => (previous[current.name] = current.value, previous), {});\r\n\r\nconst windowsToIana_list = WINDOWS_TO_IANA.map(k => (\r\n {\r\n name: k.territory + '~' + k.windowsName,\r\n value: k.iana\r\n }\r\n));\r\n\r\nconst windowsToIana_map = windowsToIana_list.reduce((previous, current) => (previous[current.name] = current.value, previous), {});\r\n\r\nexport default {\r\n WINDOWS_TO_IANA: WINDOWS_TO_IANA,\r\n\r\n ianaToWindows: function (iana) {\r\n return ianaToWindows_map[iana].windowsName;\r\n },\r\n\r\n ianaToWindowsTerritory: function (iana) {\r\n return ianaToWindows_map[iana].territory;\r\n },\r\n\r\n ianaSimilar: function (iana) {\r\n return ianaToWindows_map[iana].iana;\r\n },\r\n\r\n windowsToIana: function (territory, windows, all, index) {\r\n const key = territory + '~' + windows;\r\n if (all)\r\n return windowsToIana_map[key];\r\n else if (index !== undefined)\r\n return windowsToIana_map[key][index];\r\n else\r\n return windowsToIana_map[key][0];\r\n },\r\n};","import Vue from 'vue';\r\n\r\nimport {careHSMs} from '@/Shared/appSettings';\r\nimport utils from '@/Shared/utils.jsx';\r\nimport timezoneMap from '@/Shared/timezoneMap';\r\nimport token from '@/Services/token';\r\nimport locale, { careWindowsToMomentTimezoneMap } from '@/Services/locale';\r\nimport { appSettings, careGlobalVars } from '@/Shared/appSettings';\r\n\r\nconst libphonenumber = require('google-libphonenumber');\r\n//const phoneUtil = require('google-libphonenumber').PhoneNumberUtil.getInstance();\r\n\r\nconst cloneDeep = require('lodash.clonedeep')\r\n\r\nconst careHelpfulFunctions =\r\n{\r\n generateUUID: function() {\r\n var d = new Date().getTime();\r\n var uuid = 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {\r\n var r = (d + Math.random() * 16) % 16 | 0;\r\n d = Math.floor(d / 16);\r\n return (c == 'x' ? r : (r & 0x3 | 0x8)).toString(16);\r\n });\r\n return uuid;\r\n },\r\n\r\n // The date_value object is replaced with a reactive object owned in the startApplication.jsx unit.\r\n // This allows a single timer to update the value which all other uses can bind to.\r\n date_value: {\r\n value: null,\r\n },\r\n debug: function (msg) {\r\n utils.debug(msg);\r\n },\r\n\r\n browserTimezone: function () {\r\n const iana = Intl.DateTimeFormat().resolvedOptions().timeZone; // moment().tz.guess(); // guesses the users timezone, returns a moment timezone name;\r\n return timezoneMap.ianaToWindows(iana);\r\n },\r\n formatDateForLocale: function (dateTime, format, customerTimezone) {\r\n let fmt;\r\n \r\n switch (format) {\r\n case 'longDate': fmt = 'll'; break;\r\n case 'shortDate': fmt = 'l'; break;\r\n default: fmt = 'll LTS'; break;\r\n }\r\n\r\n return (dateTime ? moment(dateTime) : moment()).tz(careWindowsToMomentTimezoneMap[customerTimezone]).format((fmt).replace(/d/g, 'D').replace(/y/g, 'Y').replace(/a/g, 'A'));\r\n },\r\n formatHourOnlyDateTimeForLocale: function (dateTime, format, customerTimezone) {\r\n dateTime = dateTime + \":00:00\";\r\n \r\n let fmt;\r\n \r\n switch (format) {\r\n case 'longDate': fmt = 'll'; break;\r\n case 'shortDate': fmt = 'l'; break;\r\n default: fmt = 'll LTS'; break;\r\n }\r\n\r\n return (dateTime ? moment(dateTime) : moment()).tz(careWindowsToMomentTimezoneMap[customerTimezone]).format((fmt).replace(/d/g, 'D').replace(/y/g, 'Y').replace(/a/g, 'A'));\r\n },\r\n getDateForLocale: function (dateTime, customerTimezone) {\r\n return locale.getTimezoneConvertedDate(dateTime, customerTimezone);\r\n },\r\n displayDateInLocale: function (dateTime, customerTimezone) {\r\n return locale.getDateInLocale(dateTime, customerTimezone);\r\n },\r\n regionCodeToName: function (regionCode) {\r\n var c = careRegionCodeList.find(function (element, index, array) {\r\n if (element.RegionCode == regionCode)\r\n return element;\r\n });\r\n\r\n if (c)\r\n return c.Name;\r\n },\r\n findMissingRegionCodes: function () {\r\n for (var prop in libphonenumber.metadata.countryToMetadata) {\r\n var name = careHelpfulFunctions.regionCodeToName(prop);\r\n if (!name)\r\n console.log(prop + \": \" + name);\r\n }\r\n },\r\n formatPhoneNumber: function (phoneNumber, format) {\r\n if (!phoneNumber)\r\n return phoneNumber;\r\n\r\n // isPossibleNumber returns different results in different regions. For instance, a US region will return false for a 4 digit number\r\n // but a UK region will return true. Because short nubmers (<= 5 digits) are never real phone numbers - we skip \r\n // calling E.164 formatting for those. Giving some consistincy accross regions for skipping short numbers.\r\n if (phoneNumber.length <= 5) \r\n return phoneNumber;\r\n\r\n\r\n try {\r\n var phoneNumberFormat;\r\n var phoneUtil = libphonenumber.PhoneNumberUtil.getInstance();\r\n\r\n var customerRegionCode = token.CustomerRegionCode();\r\n if (!customerRegionCode)\r\n customerRegionCode = 'US';\r\n\r\n var forceCustomerPhoneNumberFormat = token.CustomerPhoneNumberFormat() || \"National\";\r\n\r\n var parsedPhoneNumber = phoneUtil.parse(phoneNumber, customerRegionCode);\r\n\r\n // if not a valid number return number unchanged\r\n if (!phoneUtil.isPossibleNumber(parsedPhoneNumber)) {\r\n return phoneNumber;\r\n }\r\n\r\n switch (format) {\r\n case 'E164':\r\n phoneNumberFormat = libphonenumber.PhoneNumberFormat.E164;\r\n break;\r\n case 'INTERNATIONAL':\r\n phoneNumberFormat = libphonenumber.PhoneNumberFormat.INTERNATIONAL;\r\n break;\r\n case 'RFC3966':\r\n phoneNumberFormat = libphonenumber.PhoneNumberFormat.RFC3966;\r\n break;\r\n case 'NATIONAL':\r\n phoneNumberFormat = libphonenumber.PhoneNumberFormat.NATIONAL;\r\n break;\r\n\r\n default: // If a specific format was not given, then pic NATIONAL if the phonenumber is in the customer's RegionCode or INTERNATIONAL if it is outside the customer's region\r\n var countryCode = parsedPhoneNumber.getCountryCodeOrDefault();\r\n var regionCodes = phoneUtil.getRegionCodesForCountryCode(countryCode);\r\n\r\n if (regionCodes.find(\r\n function (code) {\r\n return code == customerRegionCode;\r\n })\r\n ) {\r\n if (forceCustomerPhoneNumberFormat == \"E.164\")\r\n phoneNumberFormat = libphonenumber.PhoneNumberFormat.E164;\r\n else\r\n phoneNumberFormat = libphonenumber.PhoneNumberFormat.NATIONAL;\r\n }\r\n else\r\n phoneNumberFormat = libphonenumber.PhoneNumberFormat.INTERNATIONAL;\r\n break;\r\n }\r\n\r\n return phoneUtil.format(parsedPhoneNumber, phoneNumberFormat);\r\n }\r\n catch (err) {\r\n return phoneNumber;\r\n }\r\n },\r\n\r\n // return deep copy of source\r\n copy: function (source) {\r\n var newCopy = cloneDeep(source);\r\n return newCopy;\r\n },\r\n\r\n // returns length of array or number of properties in object\r\n length: function (obj) {\r\n if (Array.isArray(obj)) {\r\n return obj.length;\r\n }\r\n else if (typeof obj === 'object') {\r\n return Object.keys(obj).length;\r\n }\r\n\r\n return 0;\r\n },\r\n\r\n propertyByIndex: function (obj, index) {\r\n if (Array.isArray(obj)) {\r\n return obj[index];\r\n }\r\n else if (typeof obj === 'object') {\r\n return obj[Object.keys(obj)[index]];\r\n }\r\n else\r\n return null;\r\n },\r\n\r\n firstProperty: function (obj) {\r\n if (Array.isArray(obj)) {\r\n return obj[0];\r\n }\r\n else if (typeof obj === 'object') {\r\n return obj[Object.keys(obj)[0]];\r\n }\r\n else\r\n return null;\r\n },\r\n\r\n lastProperty: function (obj) {\r\n if (Array.isArray(obj)) {\r\n return obj[obj.length - 1];\r\n }\r\n else if (typeof obj === 'object') {\r\n return obj[Object.keys(obj)[Object.keys(obj).length - 1]];\r\n }\r\n else\r\n return null;\r\n },\r\n\r\n durationSecondsAsString: function (seconds) {\r\n var seconds = Math.floor(seconds);\r\n\r\n var hours = Math.floor(seconds / (60 * 60));\r\n var seconds = seconds - (hours * 60 * 60);\r\n\r\n var minutes = Math.floor(seconds / 60);\r\n var seconds = seconds - (minutes * 60);\r\n\r\n var result = \"\";\r\n if (hours)\r\n result = hours + \":\" + ((minutes <= 9) ? \"0\" : \"\") + minutes + \":\" + ((seconds <= 9) ? \"0\" : \"\") + seconds;\r\n else if (minutes)\r\n result = ((minutes <= 9) ? \"0\" : \"\") + minutes + \":\" + ((seconds <= 9) ? \"0\" : \"\") + seconds;\r\n else if (seconds)\r\n result = \"00:\" + ((seconds <= 9) ? \"0\" : \"\") + seconds;\r\n else\r\n result = \"00:00\";\r\n\r\n return result;\r\n },\r\n\r\n durationSecondsAsStringWithHours: function (seconds) {\r\n var seconds = Math.floor(seconds);\r\n\r\n var hours = Math.floor(seconds / (60 * 60));\r\n var seconds = seconds - (hours * 60 * 60);\r\n\r\n var minutes = Math.floor(seconds / 60);\r\n var seconds = seconds - (minutes * 60);\r\n\r\n var result = \"\";\r\n if (hours)\r\n result = ((hours <= 9) ? \"0\" : \"\") + hours + \":\" + ((minutes <= 9) ? \"0\" : \"\") + minutes + \":\" + ((seconds <= 9) ? \"0\" : \"\") + seconds;\r\n else if (minutes)\r\n result = ((minutes <= 9) ? \"0\" : \"\") + minutes + \":\" + ((seconds <= 9) ? \"0\" : \"\") + seconds;\r\n else if (seconds)\r\n result = \"00:\" + ((seconds <= 9) ? \"0\" : \"\") + seconds;\r\n else\r\n result = \"00:00\";\r\n\r\n return result;\r\n },\r\n\r\n\r\n\r\n durationMinutesHoursSeconds: function (mins) {\r\n var hours = Math.floor(mins / 60);\r\n var minutes = Math.floor((mins - ((hours * 3600)) / 60));\r\n var seconds = Math.round((mins * 60) - (hours * 3600) - (minutes * 60));\r\n\r\n if (seconds == 60){\r\n minutes++;\r\n seconds = 0;\r\n }\r\n\r\n if (minutes >= 60) {\r\n hours++;\r\n minutes = minutes-60;\r\n }\r\n // Appends 0 when unit is less than 10\r\n if (hours < 10) { hours = \"0\" + hours; }\r\n if (minutes < 10) { minutes = \"0\" + minutes; }\r\n if (seconds < 10) { seconds = \"0\" + seconds; }\r\n return hours + ':' + minutes + ':' + seconds;\r\n\r\n },\r\n\r\n elapsedTimeAsString: function (startTime, endTime) {\r\n if (startTime > endTime) {\r\n //console.log(\"endTime: \" + endTime + \" should be larger than startTime: \" + startTime);\r\n startTime = endTime;\r\n }\r\n\r\n var seconds = Math.floor((endTime - startTime) / 1000);\r\n\r\n return this.formatTotalTime(seconds);\r\n },\r\n\r\n elapsedTimeAsSeconds: function (startTime, endTime) {\r\n if (startTime > endTime) {\r\n //console.log(\"endTime: \" + endTime + \" should be larger than startTime: \" + startTime);\r\n startTime = endTime;\r\n }\r\n\r\n return Math.floor((endTime - startTime) / 1000);\r\n },\r\n\r\n formatTotalTime(seconds) {\r\n var hours = Math.floor(seconds / (60 * 60));\r\n seconds = seconds - (hours * 60 * 60);\r\n\r\n var minutes = Math.floor(seconds / 60);\r\n seconds = Math.floor(seconds - (minutes * 60));\r\n\r\n var result = \"\";\r\n if (hours)\r\n result = hours + \":\" + ((minutes <= 9) ? \"0\" : \"\") + minutes + \":\" + ((seconds <= 9) ? \"0\" : \"\") + seconds;\r\n else if (minutes)\r\n result = ((minutes <= 9) ? \"0\" : \"\") + minutes + \":\" + ((seconds <= 9) ? \"0\" : \"\") + seconds;\r\n else if (seconds)\r\n result = \"00:\" + ((seconds <= 9) ? \"0\" : \"\") + seconds;\r\n else\r\n result = \"00:00\";\r\n return result;\r\n },\r\n\r\n serverTimeToClientTime: function (theDate) {\r\n var adjustedDate = theDate + appSettings.ServerTimeOffset;\r\n return adjustedDate;\r\n },\r\n\r\n clientTimeToServerTime: function (theDate) {\r\n return theDate - appSettings.ServerTimeOffset;\r\n },\r\n\r\n get localeSettings() {\r\n return {\r\n NUMBER_FORMATS: {}\r\n };\r\n //appSettings.$locale;\r\n },\r\n\r\n format: function (filter, arg1, arg2, arg3) {\r\n return ''; //appSettings.$filter(filter)(arg1, arg2, arg3);\r\n },\r\n\r\n date: function () {\r\n return careHelpfulFunctions.date_value.value;\r\n //var date = new Date();\r\n //return date;\r\n },\r\n\r\n dateFromString: function (value) {\r\n var theDate = Date.parse(value);\r\n return theDate;\r\n },\r\n\r\n dateFromAbsoluteMilliseconds: function (ms) {\r\n return new Date(ms);\r\n },\r\n\r\n dateFromParts: function (year, month, day, hour, minute, second, ms) {\r\n return new Date(year, month, day, hour, minute, second, ms);\r\n },\r\n\r\n dateAddSeconds: function (originaldate, seconds) {\r\n return new Date(originaldate.getTime() + seconds * 1000);\r\n },\r\n\r\n dateAddMinutes: function (originaldate, minutes) {\r\n return new Date(originaldate.getTime() + minutes * 60 * 1000);\r\n },\r\n\r\n dateAddHours: function (originaldate, hours) {\r\n return new Date(originaldate.getTime() + hours * 60 * 60 * 1000);\r\n },\r\n\r\n dateAddDays: function (originaldate, days) {\r\n return new Date(originaldate.getTime() + days * 24 * 60 * 60 * 1000);\r\n },\r\n\r\n getISOWeekOfYear: function (dt, dowOffset) {\r\n dowOffset = typeof (dowOffset) == 'int' ? dowOffset : 0; //default dowOffset to zero\r\n var newYear = new Date(dt.getFullYear(), 0, 1);\r\n var day = newYear.getDay() - dowOffset; //the day of week the year begins on\r\n day = (day >= 0 ? day : day + 7);\r\n var daynum = Math.floor((dt.getTime() - newYear.getTime() -\r\n (dt.getTimezoneOffset() - newYear.getTimezoneOffset()) * 60000) / 86400000) + 1;\r\n var weeknum;\r\n //if the year starts before the middle of a week\r\n if (day < 4) {\r\n weeknum = Math.floor((daynum + day - 1) / 7) + 1;\r\n if (weeknum > 52) {\r\n nYear = new Date(dt.getFullYear() + 1, 0, 1);\r\n nday = nYear.getDay() - dowOffset;\r\n nday = nday >= 0 ? nday : nday + 7;\r\n /*if the next year starts before the middle of\r\n the week, it is week #1 of that year*/\r\n weeknum = nday < 4 ? 1 : 53;\r\n }\r\n }\r\n else {\r\n weeknum = Math.floor((daynum + day - 1) / 7);\r\n }\r\n return weeknum;\r\n },\r\n\r\n getDateOfISOWeek: function (w, y) {\r\n var simple = new Date(y, 0, 1 + (w - 1) * 7);\r\n var dow = simple.getDay();\r\n var ISOweekStart = simple;\r\n if (dow <= 4)\r\n ISOweekStart.setDate(simple.getDate() - simple.getDay() + 1);\r\n else\r\n ISOweekStart.setDate(simple.getDate() + 8 - simple.getDay());\r\n return ISOweekStart;\r\n },\r\n\r\n toInteger: function (value) {\r\n return parseInt(value);\r\n },\r\n\r\n toFloat: function (value) {\r\n return parseFloat(value);\r\n },\r\n\r\n toObject: function (s) {\r\n return JSON.parse(s);\r\n },\r\n\r\n toString: function (j, indent) {\r\n if (indent)\r\n return JSON.stringify(j, null, indent);\r\n else\r\n return JSON.stringify(j);\r\n },\r\n\r\n /*\r\n The following functions operate upon object arrays.\r\n These emulate some of the features found in C# LinQ\r\n and match methods on the server-side JsonObj class.\r\n \r\n When field is the argument, you can pass a string\r\n representing the field within each object using dot\r\n notation:\r\n [\r\n { \"name\": { \"first\": \"fred\", \"last\": \"smith\" } },\r\n { \"name\": { \"first\": \"sam\", \"last\": \"jones\" },\r\n ...\r\n ]\r\n \r\n A field of \"name.first\" would reference \"fred\" and \"sam\"\r\n */\r\n\r\n sum: function (array, field) {\r\n // Computes the sum of the values of the named field from each row in array\r\n\r\n var value = 0;\r\n for (var i = 0; i < array.length; i++) {\r\n var v1 = field ? careHelpfulFunctions.getField(array[i], field) : array[i];\r\n value += v1;\r\n }\r\n return value;\r\n },\r\n\r\n average: function (array, field) {\r\n // Computes the average of the values of the named field from each row in array\r\n\r\n var value = 0;\r\n for (var i = 0; i < array.length; i++) {\r\n var v1 = field ? careHelpfulFunctions.getField(array[i], field) : array[i];\r\n value += v1;\r\n }\r\n return value / array.length;\r\n },\r\n\r\n max: function (array, field) {\r\n // Computes the max value from the array of objects in the named field\r\n\r\n if (array.length < 1)\r\n return 0;\r\n\r\n var v0 = careHelpfulFunctions.getField(array[0], field);\r\n for (var i = 1; i < array.length; i++) {\r\n var v1 = field ? careHelpfulFunctions.getField(array[i], field) : array[i];\r\n if (v1 > v0)\r\n v0 = v1;\r\n }\r\n return v0;\r\n },\r\n\r\n min: function (array, field) {\r\n // Computes the min value from the array of objects in the named field\r\n\r\n if (array.length < 1)\r\n return 0;\r\n\r\n var v0 = careHelpfulFunctions.getField(array[0], field);\r\n for (var i = 1; i < array.length; i++) {\r\n var v1 = field ? careHelpfulFunctions.getField(array[i], field) : array[i];\r\n if (v1 < v0)\r\n v0 = v1;\r\n }\r\n return v0;\r\n },\r\n\r\n take: function (array, limit) {\r\n // Takes the first \"limit\" elements from array\r\n\r\n var tmp = [];\r\n for (var i = 0; i < array.length && i < limit; i++)\r\n tmp.push(array[i]);\r\n return tmp;\r\n },\r\n\r\n skip: function (array, count) {\r\n // Skips the \"count\" elements are returns the remaining\r\n\r\n var tmp = [];\r\n for (var i = count; i < array.length; i++)\r\n tmp.push(array[i]);\r\n return tmp;\r\n },\r\n\r\n reverse: function (array) {\r\n // For convenience, reverses the order of the array elements\r\n\r\n return array.reverse();\r\n },\r\n\r\n sort: function (array, field) {\r\n // Sorts the objects in array based upon the named field within each object\r\n\r\n var tmp = [];\r\n for (var i = 0; i < array.length; i++)\r\n tmp.push(array[i]);\r\n\r\n tmp.sort(function (a, b) {\r\n var valuea = careHelpfulFunctions.getField(a, field);\r\n var valueb = careHelpfulFunctions.getField(b, field);\r\n\r\n if (typeof valuea === 'string') {\r\n if (valuea < valueb)\r\n return -1;\r\n else if (valuea > valueb)\r\n return 1;\r\n else\r\n return 0;\r\n }\r\n else if (typeof valuea === 'number') {\r\n return valuea - valueb;\r\n }\r\n else if (typeof valuea === 'boolean') {\r\n if (valuea && !valueb)\r\n return 1;\r\n else if (valueb && !valuea)\r\n return -1;\r\n else\r\n return 0;\r\n }\r\n else\r\n return 0;\r\n });\r\n return tmp;\r\n },\r\n\r\n arrayToObject: function (array, keyFunc, valueFunc) {\r\n var tmp = {};\r\n for (let v of array)\r\n tmp[keyFunc(v)] = valueFunc ? valueFunc(v) : v;\r\n return tmp;\r\n },\r\n\r\n toLookup: function (array, keyfield, valuefield, allowmultiples, asarray, delimiter) {\r\n // Converts the array to a lookup list (object) with the named keyfield as the key and the named valuefield as the value\r\n\r\n // Example array: [{'name':'joe','city':'provo'},{'name':'sam':'city':'lehi'}]\r\n // toLookup(array, 'name', 'city'):\r\n // {'joe':'provo','sam':'lehi'}\r\n\r\n delimiter = delimiter || ',';\r\n\r\n var tmp = {};\r\n for (var i = 0; i < array.length; i++) {\r\n var item = array[i];\r\n var value;\r\n if (valuefield)\r\n value = careHelpfulFunctions.getField(item, valuefield);\r\n else\r\n value = item;\r\n\r\n var field = careHelpfulFunctions.getField(item, keyfield);\r\n if (!field)\r\n continue;\r\n\r\n if (field in tmp && allowmultiples && asarray && Array.isArray(tmp[field]))\r\n tmp[field].push(value);\r\n else if (field in tmp && allowmultiples && asarray && !Array.isArray(tmp[field]))\r\n tmp[field] = [tmp[field], value];\r\n else if (field in tmp && allowmultiples && (typeof tmp[field] === 'object') && (typeof value === 'object'))\r\n tmp[field] = tmp[field][valuefield] + delimiter + value[valuefield];\r\n else if (field in tmp && allowmultiples && (typeof value === 'object'))\r\n tmp[field] = tmp[field] + delimiter + value[valuefield]; \r\n else if (field in tmp && allowmultiples)\r\n tmp[field] = tmp[field] + delimiter + value;\r\n else\r\n tmp[field] = value;\r\n }\r\n return tmp;\r\n },\r\n\r\n toArray: function (object) {\r\n // Converts the object into an array as:\r\n // [\r\n // {\r\n // \"key\": \"\",\r\n // \"value\": { ... }\r\n // }\r\n // ]\r\n\r\n const arr = [];\r\n\r\n for (let key in object)\r\n if (object.hasOwnProperty(key))\r\n arr.push({ key: key, value: object[key] });\r\n\r\n return arr;\r\n },\r\n\r\n select: function (array, field) {\r\n // Returns a new array made up of just the value from the named field from each row\r\n\r\n var tmp = [];\r\n for (var i = 0; i < array.length; i++) {\r\n var item = array[i];\r\n tmp.push(careHelpfulFunctions.getField(item, field));\r\n }\r\n return tmp;\r\n },\r\n\r\n selectMulti: function (array, fieldlist, namelist) {\r\n // Returns a new array made up of just the list of fields (fieldslist is an array) from each row\r\n\r\n var tmp = [];\r\n for (var i = 0; i < array.length; i++) {\r\n var item = array[i];\r\n var row = {};\r\n for (var j = 0; j < fieldlist.length; j++) {\r\n var fields = fieldlist[j].split('.');\r\n if (namelist)\r\n row[namelist[j]] = careHelpfulFunctions.getField(item, fieldlist[j]);\r\n else\r\n row[fields[fields.length - 1]] = careHelpfulFunctions.getField(item, fieldlist[j]);\r\n }\r\n tmp.push(row);\r\n }\r\n return tmp;\r\n },\r\n\r\n groupBy: function (array, field) {\r\n var group = {};\r\n for (var i = 0; i < array.length; i++) {\r\n var item = array[i];\r\n var key = careHelpfulFunctions.getField(item, field);\r\n if (!group[key])\r\n group[key] = [];\r\n\r\n group[key].push(item);\r\n }\r\n var result = [];\r\n for (var key in group) {\r\n if (group.hasOwnProperty(key)) {\r\n var value = group[key];\r\n var record = {\r\n key: key,\r\n values: value\r\n };\r\n result.push(record);\r\n }\r\n }\r\n return result;\r\n },\r\n\r\n groupByMulti: function (array, fieldlist) {\r\n var group = {};\r\n for (var i = 0; i < array.length; i++) {\r\n var item = array[i];\r\n var keys = [];\r\n for (var j = 0; j < fieldlist.length; j++) {\r\n var k = careHelpfulFunctions.getField(item, fieldlist[j]);\r\n keys.push(k);\r\n }\r\n var keystr = JSON.stringify(keys);\r\n if (!group[keystr])\r\n group[keystr] = [];\r\n\r\n group[keystr].push(item);\r\n }\r\n var result = [];\r\n for (var key in group) {\r\n if (group.hasOwnProperty(key)) {\r\n var keyobj = JSON.parse(key);\r\n var value = group[key];\r\n var record = {\r\n key: keyobj,\r\n values: value\r\n };\r\n result.push(record);\r\n }\r\n }\r\n return result;\r\n },\r\n\r\n filterEqual: function (array, field, value) {\r\n // Returns a new array containing only the rows where the named field matches value\r\n\r\n var tmp = [];\r\n for (var i = 0; i < array.length; i++) {\r\n var item = array[i];\r\n var f = careHelpfulFunctions.getField(item, field);\r\n if (f == value)\r\n tmp.push(item);\r\n }\r\n return tmp;\r\n },\r\n\r\n filterNotEqual: function (array, field, value) {\r\n // Returns a new array containing only the rows where the named field does not match value\r\n\r\n var tmp = [];\r\n for (var i = 0; i < array.length; i++) {\r\n var item = array[i];\r\n var f = careHelpfulFunctions.getField(item, field);\r\n if (f != value)\r\n tmp.push(item);\r\n }\r\n return tmp;\r\n },\r\n\r\n getField: function (obj, name) {\r\n // Gets a field from the object using dot notation to walk the object hierarchy\r\n\r\n var members = name.split('.');\r\n var i = 0;\r\n while (i < members.length) {\r\n var member = members[i++];\r\n if (i == members.length && member.includes('(') && member.includes(')')) {\r\n var func = member.substr(0, member.indexOf('('));\r\n var args = member.substr(member.indexOf('('));\r\n args = args.substr(1, args.length - 2);\r\n if (args.length == 0) args = null;\r\n switch (func) {\r\n case 'count': obj = obj.length; break;\r\n case 'average': obj = careHelpfulFunctions.average(obj, args); break;\r\n case 'max': obj = careHelpfulFunctions.max(obj, args); break;\r\n case 'min': obj = careHelpfulFunctions.min(obj, args); break;\r\n case 'sum': obj = careHelpfulFunctions.sum(obj, args); break;\r\n case 'asdate': obj = Date.parse(obj); break;\r\n default:\r\n obj = null;\r\n break;\r\n }\r\n }\r\n else if (member.includes('[') && member.includes(']')) {\r\n var memb = member.substr(0, member.indexOf('['));\r\n var indx = member.substr(member.indexOf('['));\r\n obj = obj[memb][parseInt(indx.substr(1, indx.length - 2))];\r\n }\r\n else\r\n obj = obj[member];\r\n }\r\n\r\n return obj;\r\n },\r\n\r\n /**********************************************************/\r\n\r\n clear: function (objToClear) {\r\n // modify the existing object so existing references remain intact\r\n if (Array.isArray(objToClear)) {\r\n objToClear.splice(0);\r\n }\r\n else if (typeof objToClear === 'object') {\r\n for (var prop in objToClear) {\r\n if (objToClear.hasOwnProperty(prop))\r\n Vue.delete(objToClear, prop);\r\n }\r\n }\r\n },\r\n\r\n urlEncode: function (text) {\r\n return window.encodeURIComponent(text);\r\n },\r\n\r\n urlDecode: function (text) {\r\n return window.decodeURIComponent(text);\r\n },\r\n\r\n hasRole: function (role) { // TODO: Finish\r\n //return true;\r\n\r\n const roles = token.CustomerRoles(); // appSettings.careTokenService.CustomerRoles();\r\n\r\n if (roles) {\r\n const found = roles.includes(role);\r\n\r\n //utils.debug(` ** ** ** ** hasRole('${role}'):${found ? 'yes' : 'no'} ** ** ** ** `);\r\n\r\n return found;\r\n }\r\n\r\n //utils.debug(` ** ** ** ** hasRole('${role}') roles is unassigned!! ** ** ** ** `);\r\n\r\n return false;\r\n },\r\n\r\n hasModule: function (moduleName, version) {\r\n if (utils.global_variables.InstalledModules) {\r\n var found = utils.global_variables.InstalledModules.find(item => {\r\n return (item.Name === moduleName && (version === undefined || item.Version === version));\r\n });\r\n\r\n //utils.debug(` ** ** ** ** hasModule('${moduleName}'):${found ? 'yes' : 'no'} ** ** ** ** `);\r\n\r\n return !!found;\r\n }\r\n\r\n //utils.debug(` ** ** ** ** hasModule('${moduleName}'): InstalledModules is not assigned ** ** ** ** `);\r\n\r\n return false;\r\n },\r\n\r\n //moduleName and moduleVersion are both optional.\r\n getModuleConfig: function (moduleName, moduleVersion) {\r\n if (careGlobalVars.ModuleConfig) {\r\n return careGlobalVars.ModuleConfig.filter(config => (!moduleName || config.ModuleName == moduleName) && (!moduleVersion || config.ModuleVersion == moduleVersion));\r\n }\r\n return [];\r\n },\r\n\r\n //moduleName and moduleVersion are both optional.\r\n getModuleConfigByName: function (configName, moduleName, moduleVersion) {\r\n if (careGlobalVars.ModuleConfig) {\r\n var specificModules = careGlobalVars.ModuleConfig.filter(config => (!moduleName || config.ModuleName == moduleName) && (!moduleVersion || config.ModuleVersion == moduleVersion));\r\n var configs = [];\r\n for (var i = 0; i < specificModules.length; i++) {\r\n for (var key in specificModules[i]) {\r\n if (key == configName) {\r\n var config = {\r\n ModuleName: specificModules[i].ModuleName,\r\n ModuleVersion: specificModules[i].ModuleVersion\r\n };\r\n config[key] = specificModules[i][key];\r\n configs.push(config);\r\n }\r\n }\r\n }\r\n return configs;\r\n }\r\n return [];\r\n },\r\n\r\n /*** Functions to help determine mobile devices or small screen resolutions ***/\r\n hasMobileOrientation: function () {\r\n // mobile devices have window orientation and desktops do not. tablets, chrome ultrabooks, other desktop androids behave like mobile, so may need to consider that\r\n return (typeof window.orientation !== \"undefined\");\r\n },\r\n\r\n isMobileDevice: function () {\r\n var check = false;\r\n (function (a) { if (/(android|bb\\d+|meego).+mobile|avantgo|bada\\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\\.(browser|link)|vodafone|wap|windows ce|xda|xiino/i.test(a) || /1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\\-(n|u)|c55\\/|capi|ccwa|cdm\\-|cell|chtm|cldc|cmd\\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\\-s|devi|dica|dmob|do(c|p)o|ds(12|\\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\\-|_)|g1 u|g560|gene|gf\\-5|g\\-mo|go(\\.w|od)|gr(ad|un)|haie|hcit|hd\\-(m|p|t)|hei\\-|hi(pt|ta)|hp( i|ip)|hs\\-c|ht(c(\\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\\-(20|go|ma)|i230|iac( |\\-|\\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\\/)|klon|kpt |kwc\\-|kyo(c|k)|le(no|xi)|lg( g|\\/(k|l|u)|50|54|\\-[a-w])|libw|lynx|m1\\-w|m3ga|m50\\/|ma(te|ui|xo)|mc(01|21|ca)|m\\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\\-2|po(ck|rt|se)|prox|psio|pt\\-g|qa\\-a|qc(07|12|21|32|60|\\-[2-7]|i\\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\\-|oo|p\\-)|sdk\\/|se(c(\\-|0|1)|47|mc|nd|ri)|sgh\\-|shar|sie(\\-|m)|sk\\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\\-|v\\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\\-|tdg\\-|tel(i|m)|tim\\-|t\\-mo|to(pl|sh)|ts(70|m\\-|m3|m5)|tx\\-9|up(\\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\\-|your|zeto|zte\\-/i.test(a.substr(0, 4))) check = true; })(navigator.userAgent || navigator.vendor || window.opera);\r\n return check;\r\n },\r\n\r\n hasSmallScreenResolution: function (x, y) {\r\n // allow user to pass in their own definition of small screen size, but if they dont pass in anything we will set to 800 for width, and 600 for height\r\n if (x === undefined || x === 'undefined')\r\n x = 800;\r\n\r\n if (y === undefined || y === 'undefined')\r\n y = 600;\r\n\r\n if (window.innerWidth <= x && window.innerHeight <= y) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n },\r\n\r\n isFullScreenViewMode: function () {\r\n return document.webkitIsFullScreen;\r\n },\r\n\r\n get hostname() {\r\n return window.location.hostname;\r\n },\r\n\r\n get window() {\r\n return window;\r\n },\r\n\r\n get guidedAssistantHSMs() {\r\n return careHSMs?.filter(c => c.controlData.IsGuidedAssistant);\r\n },\r\n\r\n globalMessageBroadcast: function (message, data) {\r\n utils.globalMessageBroadcast(message, data);\r\n },\r\n encodeBase64: function (data) {\r\n return btoa(data);\r\n },\r\n decodeBase64: function (data) {\r\n return atob(data);\r\n },\r\n\r\n renameProperty: function (object, oldname, newname) {\r\n // Renames a property of an object while preserving the order of the properties\r\n const arr = careHelpfulFunctions.toArray(object);\r\n const idx = arr.findIndex(e => e.key == oldname);\r\n if (idx >= 0) {\r\n arr[idx].key = newname;\r\n return careHelpfulFunctions.toLookup(arr, \"key\", \"value\");\r\n }\r\n return object;\r\n },\r\n\r\n reorderProperty: function (object, name, direction) {\r\n // Changes the order of a property within an object\r\n // direction: 1 = down, -1 = up\r\n const arr = careHelpfulFunctions.toArray(object);\r\n const idx = arr.findIndex(e => e.key == name);\r\n switch (direction) {\r\n case 1: // down\r\n if (idx < arr.length - 1)\r\n arr.splice(idx + 1, 0, arr.splice(idx, 1)[0]);\r\n break;\r\n case -1: // up\r\n if (idx > 0)\r\n arr.splice(idx - 1, 0, arr.splice(idx, 1)[0]);\r\n break;\r\n default:\r\n return object;\r\n }\r\n return careHelpfulFunctions.toLookup(arr, \"key\", \"value\");\r\n },\r\n\r\n getEvents: function (props) {\r\n // This is specifically to filter out items from a schema to extract only those that are defined as UIActions, and then just return an array of the event names.\r\n const events = [];\r\n for (let key in props) {\r\n const p = props[key];\r\n if (p.type == 'array' && p.items && p.items.$ref == '/Apps/Schema/AnyOf/schema/public/Platform.Schema.BaseTypes.v1/UIAction')\r\n events.push({ name: key });\r\n }\r\n return events;\r\n },\r\n\r\n stripHTML(html) {\r\n // eslint-disable-next-line no-useless-escape\r\n html = html.replace(//gi, \"\\n\");\r\n let doc = new DOMParser().parseFromString(html, 'text/html');\r\n return doc.body.textContent.trim().replace(/\\u200B/g, '');\r\n },\r\n debounce(func, timeout = 300){\r\n let timer;\r\n return (...args) => {\r\n clearTimeout(timer);\r\n timer = setTimeout(() => { func.apply(this, args); }, timeout);\r\n };\r\n },\r\n\r\n waitUntilIdle: function (f) {\r\n Vue.nextTick(f);\r\n }\r\n};\r\n\r\nexport default careHelpfulFunctions;","import Vue from 'vue';\r\nimport EventBus from '@/Application/event-bus';\r\nimport token from '@/Services/token';\r\nimport utils from '@/Shared/utils';\r\nimport $q from '@/Services/promiseHelper';\r\nimport { appSettings } from '@/Shared/appSettings';\r\nimport { CreateWebSocketConnection } from '@/Services/webSocketConnectionFactory';\r\n\r\nexport default {\r\n connection: null,\r\n isConnecting: false,\r\n ensureConnectionTimer: null,\r\n connectionMessageSent: false,\r\n keepDisconnected: false,\r\n apiRequestQueue: [],\r\n concurrentApiRequests: 0,\r\n MAX_CONCURRENT_API_REQUESTS: 6,\r\n accessTokenAssignedBound: null,\r\n\r\n //This method is only called from the App.Vue when the site gets created so we can subscribe\r\n async created() {\r\n this.accessTokenAssignedBound = this.accessTokenAssigned.bind(this);\r\n appSettings.careWebSocketService = this;\r\n EventBus.$on(\"AccessTokenAssigned\", this.accessTokenAssignedBound);\r\n await this.startEnsureConnectionTimer();\r\n },\r\n //This method is only called from the App.Vue when the site gets destroyed so we can unsubscribe\r\n destroyed() {\r\n EventBus.$off(\"AccessTokenAssigned\", this.accessTokenAssignedBound);\r\n },\r\n accessTokenAssigned() {\r\n if (!token.AccessToken() || (this.connection && this.hasUserCustomerOrBandChanged())) {\r\n // if we no longer have a token, or the user/customer/band has changed immediately kill connection (don't wait for ensureConnectionTimer)\r\n utils.debug(\"WebSocket ACCESSTOKEN_ASSIGNED change\");\r\n this.disconnect();\r\n }\r\n\r\n if (this.IsConnected()) {\r\n // update access token\r\n this.connection.RefreshToken(token.AccessToken()).catch(() => {\r\n // if the RefreshToken didn't work for any reason, disconnect so we don't have a connection using invalid/wrong token. \r\n // ensureConnectionTimer will reestablish connection with most recent token\r\n utils.debug(\"WebSocket RefreshToken fail\");\r\n this.disconnect();\r\n });\r\n }\r\n },\r\n hasUserCustomerOrBandChanged() {\r\n return (this.connection?.connectionData?.bandId != token.BandID() ||\r\n this.connection?.connectionData?.userId != token.UserID() ||\r\n this.connection?.connectionData?.customerId != token.CustomerID());\r\n },\r\n async ensureConnection() {\r\n if (this.isConnecting) {\r\n console.log('already trying a connection');\r\n return;\r\n }\r\n // if the connection has become disconnected/unhealthly, then formally disconnect\r\n // Note we purposefully use IsDisconnected and not !IsConnected, to allow for connecting and reconnecting states\r\n if (this.connection && this.IsDisconnected()) {\r\n utils.error('Websocket disconnected.');\r\n this.disconnect()\r\n }\r\n\r\n // create a new connection\r\n if (!this.connection && !this.keepDisconnected) {\r\n // don't establish a websocket until we have a band (customer is selected)\r\n if (token.AccessToken() && token.BandID()) {\r\n try {\r\n utils.error('Attempting reconnect');\r\n\r\n // If the connection fails for some reason (i.e. error, timeout, etc) the connection state will become \"disconnected\" and ensureConnection will formally disconnect and attempt to reconnect \r\n var baseUrl = token.GetApiBaseURL();\r\n this.isConnecting = true;\r\n this.connection = await CreateWebSocketConnection(baseUrl);\r\n await this.connection.Connect(baseUrl,\r\n //queryParams\r\n {},\r\n // Connection Notice callback\r\n (_, __, connectionId, ___) => {\r\n\r\n this.isConnecting = false;\r\n\r\n utils.log('Websocket Notice Event, WebSocketConnectionId: ' + connectionId);\r\n appSettings.WebSocketConnectionId = connectionId;\r\n\r\n // Publishing connected event here, as this is positive confirmation the websocket is connected, and severside session is setup\r\n utils.debug(`webSocketService Emitting WebSocketConnected`);\r\n this.connectionMessageSent = true;\r\n EventBus.$emit('WebSocketConnected');\r\n },\r\n // channelEventCallback\r\n (value) => {\r\n //var eventData = JSON.parse(value);\r\n for (let i = 0; i < value.length; i++) {\r\n const eventData = JSON.parse(value[i]);\r\n utils.debug('signalR Event: ' + eventData.EventName + ' (' + eventData.EventId + '): ' + value[i]);\r\n EventBus.$emit(\"ChannelEvent\", eventData);\r\n }\r\n },\r\n // rtEventCallback\r\n (value) => {\r\n //var eventData = JSON.parse(value);\r\n const batch = [];\r\n for (let i = 0; i < value.length; i++) {\r\n const eventData = JSON.parse(value[i]);\r\n batch.push(eventData);\r\n\r\n utils.debug('signalR RTEvent: ' + value[i]);\r\n EventBus.$emit(\"RealTimeEvent\", eventData);\r\n }\r\n EventBus.$emit('RealTimeBatch', batch);\r\n },\r\n // On close callback\r\n this.forceRenegotiate.bind(this)\r\n );\r\n this.isConnecting = false;\r\n }\r\n catch (err) {\r\n this.isConnecting = false;\r\n utils.log('Websocket connection failed: ' + err.name + ', ' + err.message)\r\n utils.log(err)\r\n\r\n if (err.name == \"Error\" && (err.message.includes('Unauthorized') || err.message.includes('WebSocket failed to connect'))) {\r\n this.stopEnsureConnectionTimer();\r\n // Whenever we run into a token problem (such as an expired token), force logout (which will stop the refresh timer too) and display login dialog \r\n EventBus.$emit(\"Logout\");\r\n }\r\n\r\n }\r\n }\r\n } \r\n },\r\n forceRenegotiate() {\r\n // Stop the ensure connection timer. We're going to call the ensure connection method directly, so we'll \r\n // stop it to avoid having it be called twice.\r\n this.stopEnsureConnectionTimer();\r\n\r\n // Force the old websocket to disconnect immediately\r\n this.disconnect();\r\n\r\n // Set the websocket to reconnect. Normally that just sets the keep disconnected flag to false and waits for the\r\n // ensure connection timer, but we'll intentionally call the ensure connection timer to make sure it happens quickly\r\n this.ensureConnection();\r\n\r\n // Restart the normal ensure connection timer.\r\n this.startEnsureConnectionTimer();\r\n },\r\n\r\n disconnect() {\r\n utils.debug(\"WebSocket Service disconnect() called\");\r\n\r\n if (this.connection) {\r\n let oldConnection = this.connection;\r\n this.connection = null;\r\n // only send WEB_SOCKET_DISCONNECTED message if a WEB_SOCKET_CONNECTED was sent\r\n if (this.connectionMessageSent) {\r\n EventBus.$emit('WebSocketDisconnected');\r\n this.connectionMessageSent = false;\r\n }\r\n return oldConnection.Disconnect();\r\n }\r\n },\r\n IsConnected() {\r\n if (this.isConnecting)\r\n return false;\r\n return this.connection?.IsConnected();\r\n },\r\n IsDisconnected() {\r\n if (this.isConnecting)\r\n return false;\r\n return this.connection?.IsDisconnected();\r\n },\r\n async startEnsureConnectionTimer() {\r\n if (!this.ensureConnectionTimer) {\r\n await this.ensureConnection(); // immediately call so we don't have to wait for the 1 second interval to make initial connection\r\n this.ensureConnectionTimer = setInterval(this.ensureConnection.bind(this), 1000);\r\n }\r\n },\r\n stopEnsureConnectionTimer() {\r\n if (this.ensureConnectionTimer) {\r\n clearInterval(this.ensureConnectionTimer);\r\n this.ensureConnectionTimer = null;\r\n }\r\n this.disconnect();\r\n },\r\n APIRequest(requestObj) {\r\n var promise = $q.defer();\r\n\r\n this.apiRequestQueue.push({\r\n requestObj: requestObj,\r\n promise: promise\r\n });\r\n\r\n this.processQueue();\r\n\r\n return promise.promise;\r\n },\r\n processQueue() {\r\n if (this.concurrentApiRequests >= this.MAX_CONCURRENT_API_REQUESTS) {\r\n // if we are executing too many requests concurrently then wait and when one of the requests finishes it will call processQueue() to trigger the next one to run\r\n utils.log(\"Throttling WebSocketAPI Request (exceeded concurrent limit: \" + this.MAX_CONCURRENT_API_REQUESTS + \"), # in queue:\" + this.apiRequestQueue.length);\r\n return;\r\n }\r\n\r\n var queueItem = this.apiRequestQueue.shift(); // pop the first item off the array\r\n\r\n if (queueItem === undefined) // reached last element\r\n return;\r\n\r\n // should have been verified before invoking this method\r\n if (!this.IsConnected()) {\r\n queueItem.promise.reject({\r\n status: 503, // Service Unavailable\r\n fullResponse: \"websocket hub not active\"\r\n });\r\n\r\n return;\r\n }\r\n\r\n this.concurrentApiRequests++;\r\n\r\n this.connection.ApiRequest(queueItem.requestObj)\r\n .then(response => {\r\n this.decConcurrentApiRequests();\r\n\r\n var statusCode = response.StatusCode ? response.StatusCode : response.statusCode;\r\n var responseBody = response.ResponseBody ? response.ResponseBody : response.responseBody;\r\n\r\n if (statusCode == 200) {\r\n queueItem.promise.resolve({\r\n data: responseBody\r\n });\r\n } else {\r\n queueItem.promise.reject({\r\n status: statusCode,\r\n fullResponse: response\r\n });\r\n }\r\n })\r\n .catch(error => {\r\n this.decConcurrentApiRequests();\r\n\r\n queueItem.promise.reject({\r\n status: 502, // Bad Gateway\r\n fullResponse: error\r\n });\r\n });\r\n },\r\n decConcurrentApiRequests() {\r\n if (this.concurrentApiRequests > 0)\r\n this.concurrentApiRequests--;\r\n\r\n this.processQueue();\r\n },\r\n Subscribe(channelName) {\r\n if (this.IsConnected())\r\n this.connection.Subscribe(channelName);\r\n },\r\n StartRealTimeMonitor(filter) {\r\n if (this.IsConnected())\r\n this.connection.StartRealTimeMonitor(filter);\r\n },\r\n StopRealTimeMonitor() {\r\n if (this.IsConnected())\r\n this.connection.StopRealTimeMonitor();\r\n },\r\n AddRealTimeMonitorView(viewName, args) {\r\n if (this.IsConnected())\r\n return this.connection.AddRealTimeMonitorView(viewName, args);\r\n },\r\n RemoveRealTimeMonitorView(viewName, args) {\r\n if (this.IsConnected())\r\n return this.connection.RemoveRealTimeMonitorView(viewName, args);\r\n },\r\n GetNamedListForRealTime(listName, id, sortCol, descending, start, length, columns, filters) {\r\n if (this.IsConnected())\r\n return this.connection.GetNamedListForRealTime(listName, id, sortCol, descending, start, length, columns, filters);\r\n },\r\n RemoveNamedListForRealTime(listName, id) {\r\n if (this.IsConnected())\r\n return this.connection.RemoveNamedListForRealTime(listName, id);\r\n },\r\n GetTestResponse() {\r\n if (this.IsConnected())\r\n return this.connection.GetTestResponse();\r\n },\r\n TestDisconnect(value) {\r\n if (value) {\r\n this.disconnect();\r\n this.keepDisconnected = true;\r\n } else\r\n this.keepDisconnected = false;\r\n },\r\n};\r\n\r\n","import cachingService from '@/Services/cachingService';\r\n\r\nexport default {\r\n get(url, config) {\r\n return this.executeShortcut(url, 'GET', undefined, config);\r\n },\r\n head(url, config) {\r\n return this.executeShortcut(url, 'HEAD', undefined, config);\r\n },\r\n post(url, data, config) {\r\n return this.executeShortcut(url, 'POST', data, config);\r\n },\r\n put(url, data, config) {\r\n return this.executeShortcut(url, 'PUT', data, config);\r\n },\r\n delete(url, config) {\r\n return this.executeShortcut(url, 'DELETE', undefined, config);\r\n },\r\n executeShortcut(url, method, data, config) {\r\n config = config || {};\r\n config.method = method;\r\n config.url = url;\r\n config.body = data;\r\n\r\n return this.request(config);\r\n },\r\n request(config) {\r\n if (config.cache) {\r\n return cachingService.getOrAddItem(\r\n 'APICache',\r\n config.url, // the url serves as the cache key\r\n function (finishPromise) // function to get item if not in cache\r\n {\r\n var noCacheConfig = {...config}; // make shallow copy so we can delete the caching option without affecting original object\r\n delete noCacheConfig.cache; // we do not want the normal fetch to handle the caching, so delete the option (we will be handling caching ourselves)\r\n\r\n fetch((noCacheConfig.url || noCacheConfig.absoluteUrl), noCacheConfig).then(\r\n async function (response)\r\n {\r\n if (response.status >= 200 && response.status < 300) {\r\n var text = await response.text()\r\n var data = text;\r\n try {\r\n data = JSON.parse(text);\r\n } catch (err) {\r\n data = text;\r\n }\r\n \r\n finishPromise.resolve({\r\n data: data,\r\n headers: response.headers\r\n });\r\n } else\r\n finishPromise.reject(response);\r\n },\r\n function (error)\r\n {\r\n finishPromise.reject(error);\r\n }\r\n );\r\n }\r\n );\r\n } else {\r\n let resolver, rejecter;\r\n\r\n const promise = new Promise(function (resolve, reject) {\r\n resolver = resolve;\r\n rejecter = reject;\r\n });\r\n\r\n fetch((config.url || config.absoluteUrl), config)\r\n .then(async function(response) {\r\n if (response.status >= 200 && response.status < 300) {\r\n var text = await response.text()\r\n var data = text;\r\n try {\r\n data = JSON.parse(text);\r\n } catch (err) {\r\n data = text;\r\n }\r\n \r\n resolver({\r\n data: data,\r\n headers: response.headers\r\n });\r\n } else\r\n rejecter(response);\r\n })\r\n .catch(error => {\r\n rejecter(error);\r\n });\r\n\r\n return promise;\r\n\r\n // if not caching then return normal fetch promise\r\n //let response = await fetch((config.url || config.absoluteUrl), config);\r\n //try {\r\n // return {\r\n // data: await response.json()\r\n // }\r\n //} catch {\r\n // return { data: {} }\r\n //}\r\n }\r\n },\r\n clearCache(key, matchStartsWith) {\r\n cachingService.clearCache('APICache', key, matchStartsWith);\r\n }\r\n};","import token from '@/Services/token';\r\nimport care from '@/Services/careService';\r\nimport EventBus from '@/Application/event-bus';\r\nimport utils from '@/Shared/utils';\r\nimport $q from '@/Services/promiseHelper';\r\nimport webSocket from '@/Services/webSocketService';\r\nimport $http from '@/Services/careFetchService';\r\nimport axios from 'axios';\r\nimport { appSettings } from '@/Shared/appSettings';\r\n\r\n\r\nexport default {\r\n RequestQueue: [],\r\n apiQueuingControlModel: null,\r\n cacheBandId: null,\r\n cacheUserId: null,\r\n cacheCustomerId: null,\r\n clearRequestQueueBound: null,\r\n clearHttpCacheOnTokenAssignBound: null,\r\n\r\n //This method is only called from the App.Vue when the site gets created so we can subscribe\r\n created() {\r\n appSettings.careApiService = this;\r\n\r\n this.clearRequestQueueBound = this.clearRequestQueue.bind(this);\r\n this.clearHttpCacheOnTokenAssignBound = this.clearHttpCacheOnTokenAssign.bind(this);\r\n\r\n EventBus.$on('Logout', this.clearRequestQueueBound);\r\n EventBus.$on('AccessTokenAssigned', this.clearHttpCacheOnTokenAssignBound);\r\n EventBus.$on('SelectedCustomerChanged', this.clearRequestQueueBound);\r\n },\r\n\r\n //This method is only called from the App.Vue when the site gets destroyed so we can unsubscribe\r\n destroyed() {\r\n EventBus.$off('Logout', this.clearRequestQueueBound);\r\n EventBus.$off('AccessTokenAssigned', this.clearHttpCacheOnTokenAssignBound);\r\n EventBus.$off('SelectedCustomerChanged', this.clearRequestQueueBound);\r\n },\r\n // Listen for a \"LoginComplete\" event (sent at the end of the login dialog sequence) to cause any requests queued up (while waiting for a valid token) to be run.\r\n startQueuing(data) {\r\n this.apiQueuingControlModel = data;\r\n },\r\n endQueuing() {\r\n this.apiQueuingControlModel = null;\r\n this.processRequestQueue();\r\n },\r\n isQueing() {\r\n return !!this.apiQueuingControlModel;\r\n },\r\n standardizeUrl(url) {\r\n // Check if the url starts with \"http or //\", if not then add the ApiBase\r\n if (url && !url.match(\"^http|^//\")) {\r\n if (!url.match(\"^/\")) // if the url doesn't have an absolute path, add a leading /\r\n url = '/' + url;\r\n\r\n url = token.GetApiBaseURL() + url;\r\n }\r\n\r\n return url;\r\n },\r\n addAccessTokenHeader(requestOptions) {\r\n var accessToken = token.AccessToken();\r\n\r\n if (accessToken)\r\n requestOptions.headers['access_token'] = accessToken;\r\n },\r\n cachedGet(url) {\r\n return this.apiRequest({\r\n method: 'GET',\r\n cache: true,\r\n url: url,\r\n flatten: true\r\n });\r\n },\r\n get(url) {\r\n return this.apiRequest({\r\n method: 'GET',\r\n url: url,\r\n flatten: true\r\n });\r\n },\r\n delete_(url) {\r\n return this.apiRequest({\r\n method: 'DELETE',\r\n url: url,\r\n flatten: true\r\n });\r\n },\r\n post(url, data) {\r\n return this.apiRequest({\r\n method: 'POST',\r\n data: data,\r\n url: url,\r\n flatten: true\r\n });\r\n },\r\n put(url, data) {\r\n return this.apiRequest({\r\n method: 'PUT',\r\n data: data,\r\n url: url,\r\n flatten: true\r\n });\r\n },\r\n patch(url, data) {\r\n return this.apiRequest({\r\n method: 'PATCH',\r\n data: data,\r\n url: url,\r\n flatten: true\r\n });\r\n },\r\n foreachControlModelParent(controlModel, fn) {\r\n while (controlModel) {\r\n if (fn(controlModel)) // parent found\r\n return controlModel;\r\n\r\n controlModel = controlModel.Parent;\r\n }\r\n\r\n return null;\r\n },\r\n queueApiRequest(controlModel) {\r\n if (!this.isQueing())\r\n return false;\r\n\r\n // if ApiQueuing (presummably we are in the login dialog sequence) then all APIs not invoked from a child of the controlModel that enabled the queuing should queue.\r\n // if no controlModel passed in then we can't determine if it's a child of the controlModel that enabled queuing - so return true\r\n if (controlModel) {\r\n // loop through controlModel parents, see if any match ApiQueuingControlModel\r\n var obj = this.foreachControlModelParent(controlModel, (parentObj) => parentObj == this.apiQueuingControlModel);\r\n\r\n if (obj) // a parent of the controlModel matched the apiQueuingControlModel (meaning we are a child of the action that requested ApiQueuing, so we don't queue this request\r\n return false;\r\n }\r\n\r\n return true;\r\n },\r\n apiRequest(apiOptions) {\r\n apiOptions.method = apiOptions.method || 'GET';\r\n apiOptions.addAccessTokenInHeader = (apiOptions.addAccessTokenInHeader === undefined) ? true : apiOptions.addAccessTokenInHeader;\r\n apiOptions.deferred = apiOptions.deferred || $q.defer();\r\n apiOptions.cache = apiOptions.cache || false;\r\n apiOptions.multipart = apiOptions.multipart || false;\r\n apiOptions.doNotQueue = apiOptions.doNotQueue || false;\r\n apiOptions.loginRequest = apiOptions.loginRequest || false;\r\n apiOptions.doNotUseWebsocket = apiOptions.doNotUseWebsocket || false;\r\n apiOptions.doNotStandardizeUrl = apiOptions.doNotStandardizeUrl || false;\r\n\r\n // If the login dialog is displayed, then simply queue requests (other than the requests related to the Login itself\r\n if (!apiOptions.loginRequest && this.queueApiRequest(apiOptions.context)) {\r\n if (!apiOptions.doNotQueue)\r\n this.RequestQueue.push(apiOptions);\r\n } else {\r\n var requestOptions = {\r\n method: apiOptions.method,\r\n url: apiOptions.doNotStandardizeUrl ? apiOptions.url : this.standardizeUrl(apiOptions.url),\r\n cache: apiOptions.cache,\r\n headers: apiOptions.headers || {},\r\n absoluteUrl: !!(apiOptions.url.match(\"^http|^//\")), // used to determine if websocket can be used (external addresses don't use websocket), we also don't include the access token for external calls\r\n addAccessTokenInHeader: apiOptions.addAccessTokenInHeader,\r\n doNotUseWebsocket: apiOptions.doNotUseWebsocket\r\n };\r\n\r\n if (apiOptions.multipart) {\r\n requestOptions.data = apiOptions.data;\r\n requestOptions.multipart = apiOptions.multipart;\r\n } else {\r\n // This will remove any unwanted properties from data before sending back to server. ($$hashKeys added by the grid)\r\n requestOptions.data = care.prepareObjectForServer(apiOptions.data);\r\n }\r\n\r\n\r\n\r\n\r\n\r\n if (apiOptions.addAccessTokenInHeader && !requestOptions.absoluteUrl) // Normally, the only time we don't add the accessToken to the header is when refreshing tokens\r\n this.addAccessTokenHeader(requestOptions);\r\n\r\n var startTime = new Date().getTime();\r\n EventBus.$emit('ApiRequestStarted', { startTime: startTime, options: requestOptions });\r\n utils.global_variables.api_busy_indicator = true;\r\n\r\n var executeAPIPromise = this.executeAPI(requestOptions, startTime);\r\n executeAPIPromise\r\n .then(response => {\r\n this.logApiStop(requestOptions, startTime, executeAPIPromise.wasInCache, executeAPIPromise.webSocketRequest, response);\r\n\r\n EventBus.$emit('ApiRequestFinished', {\r\n success: true,\r\n options: requestOptions,\r\n defaultToast: apiOptions.defaultToast,\r\n toast: apiOptions.toast,\r\n context: apiOptions.context,\r\n });\r\n utils.global_variables.api_busy_indicator = false;\r\n\r\n let flattenResults = response.data?.Result || response.data;\r\n if(response.headers)\r\n response.headers = Object.assign(...Array.from(response.headers).map(([k,v]) => ({[k]: v})));\r\n apiOptions.deferred.resolve(apiOptions.flatten ? flattenResults : response); // echo successful request to chained promises\r\n })\r\n .catch(error => {\r\n const reason = error.fullResponse || error.response || error; // error.fullResponse;\r\n this.logApiStop(requestOptions, startTime, executeAPIPromise.wasInCache, executeAPIPromise.webSocketRequest);\r\n\r\n EventBus.$emit('ApiRequestFinished', {\r\n success: false,\r\n options: requestOptions,\r\n error: reason,\r\n defaultToast: apiOptions.defaultToast,\r\n toast: apiOptions.toast,\r\n context: apiOptions.context,\r\n });\r\n utils.global_variables.api_busy_indicator = false;\r\n\r\n // if it's a token problem and this api call was not initated by the login process, then queue up and begin login \r\n //if (reason.StatusCode == 401 && !this.isQueing()) {\r\n if (((reason.StatusCode ? reason.StatusCode : reason.statusCode) || reason.status) == 401 && !this.isQueing()) {\r\n token.ClearAccessToken(); // Whenever we run into a token problem (such as an expired token), clear the current token (which will stop the refresh timer too) and display login dialog\r\n\r\n // Queue up request. These will be processed after successful login (when there is a valid token)\r\n if (!apiOptions.doNotQueue)\r\n this.RequestQueue.push(apiOptions);\r\n\r\n EventBus.$emit('UnauthorizedApi');\r\n } else {\r\n // not a token problem, echo reason to chained promises\r\n apiOptions.deferred.reject(reason);\r\n }\r\n });\r\n }\r\n\r\n return apiOptions.deferred.promise; // by returning the request promise, the caller can add it's own \".then\" methods for success/failure\r\n },\r\n logApiStop(requestOptions, startTime, wasInCache, webSocketRequest, response) {\r\n var duration = (new Date().getTime()) - startTime;\r\n utils.debug((webSocketRequest ? \"websocket\" : \"http\") + \" apiRequest \" + (wasInCache ? \"**FOUND IN CACHE** \" : \"\") + \"Stop: Method: \" + requestOptions.method +\r\n \", URL: \" + requestOptions.url +\r\n \", Duration: \" + duration + \"ms\");\r\n },\r\n async executeAPI(requestOptions, startTime) {\r\n var logMsg = \"Start: Method: \" + requestOptions.method + \", URL: \" + requestOptions.url + \", StartTime: \" + startTime + ((typeof requestOptions.data === 'object') ? (\", APIRequestData: \" + JSON.stringify(requestOptions.data)) : \"\");\r\n\r\n // If this is a cached request, use the standard angular request which handles caching already.\r\n if (!requestOptions.absoluteUrl &&\r\n !requestOptions.cache &&\r\n !requestOptions.multipart && // multi-part request. Needs to use $http\r\n !requestOptions.doNotUseWebsocket &&\r\n requestOptions.addAccessTokenInHeader && // only use websocket if we are using the accesstoken. Technically the access token in the header isn't used at all for a websocket, because the connection has the token cached from when it was established\r\n webSocket.IsConnected()) {\r\n\r\n var apiRequestObj = {\r\n Verb: requestOptions.method.toUpperCase(),\r\n Uri: requestOptions.url,\r\n Body: requestOptions.data\r\n };\r\n\r\n // The request is changed to a string (rather than sending object and having SignalR convert) because SignalR (server side) has a max JSON deserialization depth of 20\r\n // if we send deeply nested objects SignalR would error.\r\n var stringApiRequestObj = JSON.stringify(apiRequestObj);\r\n\r\n // WebSockets are best for short messages. If the message is too big we use a normal HTTP request rather than websocket.\r\n // The signalR team recommends keeping messages < 32K \r\n if (stringApiRequestObj.length < 32768) {\r\n utils.debug(\"websocket apiRequest: \" + logMsg, \"color: lightblue\");\r\n return await webSocket.APIRequest(stringApiRequestObj);\r\n\r\n // Old code\r\n var webSocketAPIPromise = webSocket.APIRequest(stringApiRequestObj); // returns a promise\r\n webSocketAPIPromise.webSocketRequest = true; // Flag indicating it was a websocket request\r\n return webSocketAPIPromise;\r\n }\r\n }\r\n\r\n utils.debug(\"http apiRequest: \" + logMsg);\r\n\r\n let fetchOptions = { ...requestOptions };\r\n if (requestOptions.data && requestOptions.method.toUpperCase() != 'GET')\r\n fetchOptions.body = (requestOptions.data instanceof FormData || requestOptions.data instanceof File || typeof requestOptions.data === 'string') ? requestOptions.data : JSON.stringify(requestOptions.data);\r\n if(!fetchOptions.cache)\r\n delete fetchOptions.cache;\r\n delete fetchOptions.data;\r\n if(fetchOptions.multipart)\r\n delete fetchOptions.multipart;\r\n\r\n return await $http.request(fetchOptions); // returns a promise\r\n\r\n //const config = {\r\n // headers: requestOptions.headers,\r\n // method: requestOptions.method.toLowerCase(),\r\n // url: requestOptions.url,\r\n // data: requestOptions.data,\r\n //};\r\n //return await axios.request(config);\r\n },\r\n processRequestQueue() {\r\n // this will loop until there are no more items in the requestQueue\r\n while (true) {\r\n var apiOptions = this.RequestQueue.shift(); // pop the first item off the array\r\n\r\n if (apiOptions === undefined) // reached last element\r\n break;\r\n\r\n this.apiRequest(apiOptions);\r\n }\r\n },\r\n clearRequestQueue() {\r\n this.RequestQueue = [];\r\n },\r\n clearHttpCacheOnTokenAssign(event) {\r\n var bandId = token.BandID();\r\n var userId = token.UserID();\r\n var customerId = token.CustomerID();\r\n\r\n // don't flush the cache if the band, user and customer are the same as the last time.\r\n if (this.cacheBandId !== bandId || this.cacheUserId !== userId || this.cacheCustomerId !== customerId) {\r\n this.cacheBandId = bandId;\r\n this.cacheUserId = userId;\r\n this.cacheCustomerId = customerId;\r\n\r\n this.clearHttpCache();\r\n }\r\n },\r\n clearHttpCache(url, matchStartsWith) {\r\n utils.debug(\"Flushed HTTP Cache\");\r\n\r\n if (typeof (url) === 'undefined') {\r\n $http.clearCache();\r\n } else {\r\n url = this.standardizeUrl(url);\r\n $http.clearCache(url, matchStartsWith);\r\n }\r\n }\r\n};","import { render, staticRenderFns } from \"./menuColumnGroups.vue?vue&type=template&id=fbe2fdc2&scoped=true&\"\nimport script from \"./menuColumnGroups.vue?vue&type=script&lang=js&\"\nexport * from \"./menuColumnGroups.vue?vue&type=script&lang=js&\"\nimport style0 from \"./menuColumnGroups.vue?vue&type=style&index=0&id=fbe2fdc2&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 \"fbe2fdc2\",\n null\n \n)\n\nexport default component.exports","module.exports = \"data:image/png;base64,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\"","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/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./metricItem.vue?vue&type=script&lang=js&\"; 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/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./metricItem.vue?vue&type=script&lang=js&\"","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/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./menuColumnGroups.vue?vue&type=script&lang=js&\"; 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/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./menuColumnGroups.vue?vue&type=script&lang=js&\"","import Vue from 'vue';\r\nconst EventBus = new Vue();\r\nexport default EventBus;","class CallCorpPlayer extends HTMLElement { \r\n constructor() {\r\n super();\r\n this.shadow = this.attachShadow({mode:'open'});\r\n this.shadow.innerHTML = `
`;\r\n\r\n this._accessToken = \"\";\r\n this._videos = [];\r\n this._videoEls = [];\r\n this._videoMetadata = [];\r\n\r\n this.height = 500;\r\n\r\n //this.addEventListener(\"click\", this.onClickHandler.bind(this));\r\n // this.shadow.addEventListener(\"slotchange\", this.onSlotChange.bind(this));\r\n }\r\n\r\n set videos(value) {\r\n var self = this;\r\n self._videos = value;\r\n var minX = 0;\r\n var minY = 0;\r\n var maxX;\r\n var maxY;\r\n\r\n self.shadow.querySelector(\".cc-videos\").setAttribute(\"style\", `position:relative;height:${self.height}px;width:100%;`);\r\n\r\n self._videos.forEach((video, vIndex) => {\r\n video.class = `cc-video-${vIndex}`;\r\n\r\n video.width = parseInt(video.width, 10);\r\n video.height = parseInt(video.height, 10);\r\n video.x = parseInt(video.x, 10);\r\n video.y = parseInt(video.y, 10);\r\n video.timeoffset = parseInt(video.timeoffset, 10);\r\n\r\n var videoEl = document.createElement(\"video\");\r\n //videoEl.setAttribute(\"controls\", \"controls\");\r\n videoEl.setAttribute(\"muted\", \"muted\");\r\n videoEl.setAttribute(\"class\", video.class);\r\n //videoEl.dataset.timeoffset = video.timeoffset;\r\n self.shadow.querySelector(\".cc-videos\").appendChild(videoEl);\r\n self._videoEls.push(videoEl);\r\n //videoEl.onloadeddata = self.positionScreens;\r\n\r\n //{src: \"X.mp4\", type: \"video/mp4\", width: 3840, height: 1440, x: 3840, y: 296, timeoffset: -471}\r\n self._videoMetadata.push(video);\r\n \r\n if (video.x || video.x === 0) {\r\n if ((!minX && minX !== 0) || minX > video.x) {\r\n minX = video.x;\r\n }\r\n if ((!maxX && maxX !== 0) || maxX < (video.x + video.width)) {\r\n maxX = video.x + video.width;\r\n }\r\n }\r\n if (video.y || video.y === 0) {\r\n if ((!minY && minY !== 0) || minY > video.y) {\r\n minY = video.y;\r\n }\r\n\r\n if ((!maxY && maxY !== 0) || maxY < (video.y + video.height)) {\r\n maxY = video.y + video.height;\r\n }\r\n }\r\n\r\n var accessToken = this._accessToken;\r\n\r\n (async function() {\r\n var response = await fetch(video.src, {\r\n method: \"GET\",\r\n mode: \"cors\",\r\n credentials: \"include\",\r\n headers: {\r\n \"access_token\": accessToken\r\n }\r\n })\r\n .then(response => response.body)\r\n .then(body => {\r\n const reader = body.getReader();\r\n return new ReadableStream({\r\n start(controller) {\r\n return pump();\r\n function pump() {\r\n return reader.read().then(({ done, value }) => {\r\n // When no more data needs to be consumed, close the stream\r\n if (done) {\r\n controller.close();\r\n return;\r\n }\r\n // Enqueue the next data chunk into our target stream\r\n controller.enqueue(value);\r\n return pump();\r\n });\r\n }\r\n }\r\n });\r\n })\r\n .then(stream => new Response(stream))\r\n .then(response => response.blob())\r\n .then(blob => URL.createObjectURL(blob))\r\n .then(url => videoEl.src = url)\r\n .catch(err => console.error(err));\r\n })();\r\n });\r\n\r\n self.minX = minX;\r\n self.minY = minY;\r\n self.maxX = maxX;\r\n self.maxY = maxY;\r\n\r\n self.positionScreens();\r\n }\r\n\r\n positionScreens() {\r\n if (!this.minX && !this.maxX) {\r\n return;\r\n }\r\n\r\n var minX = this.minX;\r\n var minY = this.minY;\r\n var maxX = this.maxX;\r\n var maxY = this.maxY;\r\n var containerHeight = this.shadow.querySelector(\".cc-videos\").offsetHeight;\r\n var containerWidth = this.shadow.querySelector(\".cc-videos\").offsetWidth;\r\n console.log({ containerHeight, containerWidth });\r\n var fullWidth = maxX - minX;\r\n var fullHeight = maxY - minY;\r\n var hRatio = (fullHeight / containerHeight);\r\n var wRatio = (fullWidth / containerWidth);\r\n var ratio = Math.max(hRatio, wRatio);\r\n\r\n var self = this;\r\n //{src: \"X.mp4\", type: \"video/mp4\", width: 3840, height: 1440, x: 3840, y: 296, timeoffset: -471, class}\r\n this._videoMetadata.forEach((videoData) => {\r\n var video = self.shadow.querySelector(`.${videoData.class}`);\r\n video.setAttribute(\"style\", \"\");\r\n var height = videoData.height;\r\n var width = videoData.width;\r\n \r\n var vHeight = height / ratio;\r\n var top = ((videoData.y - minY) / ratio);\r\n var left = ((videoData.x - minX) / ratio);\r\n video.style.position = \"absolute\";\r\n video.style.width = `${(width / ratio)}px`;\r\n video.style.height = `${vHeight}px`;\r\n video.style.top = `${top}px`;\r\n video.style.left = `${left}px`;\r\n\r\n });\r\n }\r\n\r\n set accessToken(value) {\r\n this._accessToken = value;\r\n }\r\n \r\n get videos() {\r\n return this._videos;\r\n }\r\n\r\n set controlElementSelector(value) {\r\n this._controlElementSelector = value;\r\n this._controlElement = document.querySelector(value);\r\n this.setupControlElement();\r\n }\r\n\r\n set playing(value) {\r\n this._videoEls.forEach(video => {\r\n if (value) {\r\n video.play();\r\n } else {\r\n video.pause();\r\n }\r\n });\r\n }\r\n\r\n set controlTime(value)\r\n {\r\n this.lastUpdatedDate = this.lastUpdatedDate || new Date();\r\n var now = new Date();\r\n if (now - this.lastUpdatedDate >= 1000)\r\n {\r\n this.setCurrentTime(value);\r\n this.lastUpdatedDate = new Date();\r\n }\r\n }\r\n\r\n setupControlElement() {\r\n var self = this;\r\n // this._controlElement.onseeked = function() {\r\n // self.setCurrentTime(self._controlElement.currentTime);\r\n // };\r\n this._controlElement.onplay = function() {\r\n self.playing = true;\r\n };\r\n this._controlElement.onpause = function() {\r\n self.playing = false;\r\n };\r\n this._controlElement.ontimeupdate = function(event) {\r\n self._ontimeupdate(self, event);\r\n };\r\n }\r\n\r\n _ontimeupdate(player) {\r\n player.lastUpdatedDate = player.lastUpdatedDate || new Date();\r\n var now = new Date();\r\n if (now - player.lastUpdatedDate >= 1000) {\r\n player.setCurrentTime(player._controlElement.currentTime);\r\n player.lastUpdatedDate = new Date();\r\n }\r\n }\r\n\r\n setCurrentTime(newTime) {\r\n var self = this;\r\n this._videoEls.forEach(video => {\r\n if (Math.abs(video.currentTime - newTime) >= 1)\r\n {\r\n video.currentTime = newTime;\r\n if (self.playing) {\r\n video.play();\r\n }\r\n }\r\n });\r\n }\r\n}\r\n\r\nwindow.customElements.define('callcorp-player', CallCorpPlayer);","import { render, staticRenderFns } from \"./cardHistogram.vue?vue&type=template&id=29a8dad0&scoped=true&\"\nimport script from \"./cardHistogram.vue?vue&type=script&lang=js&\"\nexport * from \"./cardHistogram.vue?vue&type=script&lang=js&\"\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 \"29a8dad0\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SoftPhone.vue?vue&type=style&index=0&id=0feaf1c0&prod&scoped=true&lang=css&\"","import $q from '@/Services/promiseHelper';\r\n\r\nexport default {\r\n MAX_LIST_SIZE: 2000,\r\n MIN_CACHE_TIME_SECONDS: 300,\r\n forceRecaching: false,\r\n caches: {},\r\n\r\n getOrCreateCache(cacheName) {\r\n var cache = this.caches[cacheName];\r\n\r\n if (!cache) {\r\n cache = { cachedItems: [] };\r\n this.caches[cacheName] = cache;\r\n }\r\n\r\n return cache;\r\n },\r\n getOrAddItem(cacheName, key, fn, data) {\r\n var cache = this.getOrCreateCache(cacheName);\r\n\r\n var promise = $q.defer();\r\n var item;\r\n\r\n cache?.cachedItems?.every((cachedItem, index) => {\r\n if (cachedItem.key != key)\r\n return true;\r\n\r\n // if we are forcingRecaching, then delete item from cache so it will be recached\r\n if (this.forceRecaching)\r\n cache.cachedItems.splice(index, 1); // delete from array\r\n else\r\n {\r\n item = cachedItem;\r\n item.lastUsed = new Date(); // track last time the item was used (this will allow us to purge old items so we don't grow cache memory forever)\r\n \r\n // move the found item to the top of the array list. Thus Items will be in most recently used order, making frequently referenced items towards the top of the list\r\n if (index != 0)\r\n {\r\n cache.cachedItems.splice(index, 1); // delete from array\r\n cache.cachedItems.unshift(item); // unshift inserts items to the top of the array \r\n }\r\n }\r\n return false;\r\n });\r\n\r\n if (item) {\r\n promise.promise.wasInCache = true; // put a flag in the promise to indicate the item was found in cache\r\n } else {\r\n // if the item wasn't found in cache, create a new item and add to cache\r\n item = new CacheItem(key, fn, data);\r\n cache.cachedItems.unshift(item); // unshift inserts new items to the top of the array so used items will be found faster\r\n\r\n // The array is in most recently used order, so the last item in the array is the oldest item. \r\n // loop backwards and remove any items over MAX_LIST_SIZE and older than 1 hour. This means the shorted amount of time we will cache something is 1 hour\r\n for (var y = cache.cachedItems.length - 1; y >= this.MAX_LIST_SIZE; y--) {\r\n // trim up any items over the max that are older than MIN_CACHE_TIME_SECONDS\r\n var seconds = (new Date() - item.lastUsed) / 1000;\r\n if (seconds > this.MIN_CACHE_TIME_SECONDS)\r\n cache.cachedItems.splice(y, 1); // delete from array\r\n else \r\n break; // as soon as we find an item less than 1 hour old we can exit, because we are looping through an ordered list\r\n }\r\n }\r\n\r\n item.queuePromise(promise); // queue a promise to be resolved when item is complete. If the item is already complete this will immediately resolve the promise.\r\n return promise.promise;\r\n },\r\n clearCache(cacheName, key, matchStartsWith) {\r\n var cache = this.getOrCreateCache(cacheName);\r\n\r\n if (!key) {\r\n cache.cachedItems = [];\r\n return;\r\n }\r\n\r\n // when removing items from cache we do a case insensitive compare\r\n key = key.toLowerCase();\r\n\r\n for (var x = cache.cachedItems.length - 1; x >= 0; x--) {\r\n if ((matchStartsWith && cache.cachedItems[x].key.toLowerCase().startsWith(key)) ||\r\n (!matchStartsWith && cache.cachedItems[x].key.toLowerCase() == key)\r\n ) {\r\n cache.cachedItems.splice(x, 1); // remove the matching item from cache\r\n }\r\n }\r\n }\r\n};\r\n\r\nclass CacheItem {\r\n state = \"new\";\r\n promiseQueue = [];\r\n success;\r\n data;\r\n key;\r\n finishPromise = $q.defer();\r\n lastUsed = new Date(); // track last time the item was used (this will allow us to purge old items so we don't grow cache memory forever)\r\n\r\n constructor(key, fn, fnData) {\r\n this.key = key;\r\n this.finishPromise.promise.then((theData) => {\r\n // only allow item to be finished once.\r\n if (this.state == \"new\") {\r\n this.success = true;\r\n this.data = theData;\r\n this.state = \"finished\";\r\n }\r\n\r\n this.processQueuedPromises();\r\n },\r\n (theData) => {\r\n // only allow item to be finished once.\r\n if (this.state == \"new\") {\r\n this.success = false;\r\n this.data = theData;\r\n this.state = \"finished\";\r\n }\r\n\r\n this.processQueuedPromises();\r\n });\r\n\r\n fn(this.finishPromise, fnData); // invoke the function to get the data to cache. This function should invoke \"resolve/reject\" and pass the data to cache.\r\n }\r\n\r\n queuePromise(promise) {\r\n this.promiseQueue.push(promise);\r\n this.processQueuedPromises(); // if the item is already finished, then the queue will imediatly be processed - otherwise it will wait until finish is called\r\n }\r\n\r\n processQueuedPromises() {\r\n if (this.state != \"finished\")\r\n return;\r\n\r\n while (true) {\r\n var promise = this.promiseQueue.shift(); // removes the first item of the array, and returns that item\r\n\r\n if (!promise)\r\n break;\r\n\r\n this.success ? promise.resolve({...this.data}) : promise.reject({...this.data});\r\n }\r\n }\r\n}","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./filter_searchableTextColumn.vue?vue&type=style&index=0&id=4c1b9b4a&prod&scoped=true&lang=css&\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./responsiveDash.vue?vue&type=style&index=0&id=bcb803b2&prod&scoped=true&lang=css&\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./griddy.vue?vue&type=style&index=0&id=768ce49d&prod&scoped=true&lang=css&\"","\n\n\n\n","import { appSettings } from \"@/Shared/appSettings\";\r\n\r\nexport default {\r\n /**\r\n * This method makes a copy of local storage and calls the dispatch method. This will send all local storage values to the containing page.\r\n */\r\n dispatchAllLocalStorage() {\r\n let localStorageCopy = JSON.parse(JSON.stringify(localStorage));\r\n\r\n this.dispatchLocalStorageUpdate(localStorageCopy);\r\n },\r\n /**\r\n * Method to dispatch a local storage update to the ancestor page. The ancestor page should handle this \r\n * message by putting all objects that you pass in the data object in local storage.\r\n *\r\n * @param {Object} data An object containing only key value pairs where the value is a string. These keys will be written to local storage on the\r\n * parent window, so all keys and values must be valid to be placed in local storage. \r\n */\r\n dispatchLocalStorageUpdate(data) {\r\n if(!this.iframe)\r\n return;\r\n let message = {\r\n messageName: 'UpdateLocalStorageKeys',\r\n messageData: data\r\n };\r\n\r\n this.iframe.contentWindow.postMessage(message, `${this.origin}/localstoragesync`);\r\n },\r\n /**\r\n * Method to request a local storage update from our embedded iframe. \r\n */\r\n requestLocalStorageUpdate() {\r\n if(!this.iframe)\r\n return;\r\n\r\n let message = {\r\n messageName: 'RequestLocalStorageUpdate'\r\n };\r\n\r\n this.iframe.contentWindow.postMessage(message, `${this.origin}/localstoragesync`);\r\n },\r\n /**\r\n * Method to read an object and put each key in local storage. If a key or value fails to be put in local storage, we'll ignore the error and move on \r\n * as to ensure we write all keys.\r\n * \r\n * @param {Object} data An object containing only key value pairs where the value is a string. These keys will be written to local storage,\r\n * so all keys and values must be valid to be placed in local storage. \r\n */\r\n updateLocalStorageKeys(data) {\r\n Object.keys(data).forEach(key => {\r\n try{\r\n let value = data[key];\r\n if(value === undefined || value === null)\r\n localStorage.removeItem(key);\r\n else\r\n localStorage.setItem(key, data[key]);\r\n }\r\n catch(err) { console.error(err) }\r\n });\r\n },\r\n /**\r\n * This method starts a process that will make sure we mirror our local storage between different bands. It will send a message to an iframe that we've \r\n * embedded that has the generic host for all bands. This makes sure that even if we're on a band-specific domain, we still have all of our important local\r\n * storage values.\r\n * \r\n * @param { String } origin The origin that we want to use to sync our local storage with. \r\n */\r\n initializeLocalStorageSync(origin) {\r\n this.origin = origin;\r\n\r\n let syncLocalStoragePromise = new Promise((resolve) => {\r\n // The iframe will communicate to us through the postMessage method, which sends messages to our window. \r\n window.addEventListener('message', (event) => {\r\n // CRITICAL: If we don't check the origin, then theoretically anyone could send us messages that we would listen to. \r\n if(event.origin !== this.origin)\r\n return;\r\n if(event.data.messageName === 'UpdateLocalStorageKeys') {\r\n this.updateLocalStorageKeys(event.data.messageData);\r\n }\r\n });\r\n\r\n // We use an iframe to sync local storage between domains. If we have already created an iframe, we'll go ahead and request that it updates us \r\n // with the most recent version of it's local storage. This is highly unlikely, but can happen during development. No sense making multiple iframes.\r\n let iframe = document.querySelector('#callcorp-localstoragesync-frame');\r\n if(iframe) {\r\n this.requestLocalStorageUpdate();\r\n this.dispatchAllLocalStorage();\r\n }\r\n else {\r\n // Create an iframe that embeds a special page that will allow us to communicate between it and us. \r\n iframe = document.createElement('iframe');\r\n iframe.id = 'callcorp-localstoragesync-frame';\r\n iframe.style.display = 'none';\r\n iframe.style.height = '0';\r\n iframe.style.width = '0';\r\n iframe.tabIndex = -1;\r\n iframe.src = `${this.origin}/localstoragesync`;\r\n iframe.onload = () => {\r\n this.dispatchAllLocalStorage();\r\n resolve();\r\n }\r\n document.body.appendChild(iframe);\r\n }\r\n this.iframe = iframe;\r\n });\r\n\r\n let timeoutPromise = new Promise((resolve) => setTimeout(() => {\r\n resolve();\r\n }, 2000));\r\n\r\n return Promise.race([syncLocalStoragePromise, timeoutPromise]);\r\n },\r\n iframe: null,\r\n origin: null,\r\n};","import Vue from 'vue';\r\nimport utils from './utils.jsx';\r\nimport careHelpfulFunctions from '../Application/careHelpfulFunctions.jsx';\r\n\r\n// Wrapper for a compiled expression. Allows recognition of the compiled expression and\r\n// also allows us to store the original string (for debugging).\r\nclass ObjFunc {\r\n constructor(code, func) {\r\n this.code = code;\r\n if (!func)\r\n this.func = new Function('context', 'util', 'with (context) return ' + code + ';');\r\n else\r\n this.func = func;\r\n }\r\n}\r\n\r\n// Allows objects to be added to an ObjProxy without them getting read through a proxy themselves\r\nclass PlainWrapper {\r\n constructor(obj) {\r\n this.obj = () => obj;\r\n }\r\n}\r\n\r\n// This is a proxy wrapper for an object with interpolated expressions within its children.\r\n// Allows the user control to defer resolution of the property values to the child components\r\n// that want to read them. Prevents the user control from being refreshed when any of the\r\n// dependent values change and allows child components to refresh instead.\r\nclass ObjProxy {\r\n constructor(target) {\r\n this.target = () => target;\r\n this.handler = {\r\n //context: null, // Set by the evaluateObject method\r\n get: function (oTarget, oKey, receiver) {\r\n const item = Reflect.get(oTarget, oKey, receiver);\r\n\r\n if (item instanceof ObjFunc)\r\n return item.func(this.context, careHelpfulFunctions);\r\n else if (item === undefined || item === null)\r\n return item;\r\n else if (item instanceof PlainWrapper)\r\n return item.obj();\r\n else if (typeof item === 'object')\r\n return new Proxy(item, this);\r\n else\r\n return item;\r\n },\r\n set: function (oTarget, oKey, oValue, receiver) {\r\n return Reflect.set(oTarget, oKey, oValue, receiver);\r\n },\r\n has: function (oTarget, oKey) {\r\n return Reflect.has(oTarget, oKey);\r\n },\r\n };\r\n this.myproxy = () => new Proxy(target, this.handler);\r\n }\r\n}\r\n\r\nexport {\r\n PlainWrapper,\r\n ObjProxy,\r\n ObjFunc,\r\n};","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MultiSelectListItem.vue?vue&type=style&index=0&id=6b6d2196&prod&scoped=true&lang=css&\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKgAAABpCAYAAACu/2ilAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAF1SURBVHgB7dwxisNAEADB8XG/0P+fph8ov8MLjo3XIDqoiicyzWA0Qo/ruv4Gon4GwgRKmkBJEyhpAiVNoKQJlDSBkiZQ0gRKmkBJEyhpAiVNoKQJlDSBkvY7Ued5Dvc5jmOKbFDSBEqaQEkTKGkCJU2gpAmUtOxz0Jd3z+dez0vNfTdXZYOSJlDSBEqaQEkTKGkCJU2gpD2qH7D1Pui9vA8KG1ySzE2ZDUqaQEkTKGkCJU2gpAmUNIGS5pLE4pIEG1ySzE2ZDUqaQEkTKGkCJU2gpAmUNIGS5pLE4pIEG1ySzE2ZDUqaQEkTKGkCJU2gpAmUNIGS5pLE4pIEG1ySzE2ZDUqaQEkTKGkCJU2gpAmUNIGS5pLE4pIEG1ySzE2ZDUqaQEkTKGkCJU2gpAmUNIGS5pLE4pL0oeoPxr2yGxSe/AclTaCkCZQ0gZImUNIESppASRMoaQIlTaCkCZQ0gZImUNIESppASRMoaQIlTaCkCZS0f92U1wJHfiHEAAAAAElFTkSuQmCC\"","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./menuColumnGroups.vue?vue&type=style&index=0&id=fbe2fdc2&prod&scoped=true&lang=css&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BasicFileUpload.vue?vue&type=style&index=0&id=961ce046&prod&lang=scss&scoped=true&\"","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./menuIntervalSelection.vue?vue&type=style&index=0&id=0da3b6e5&prod&scoped=true&lang=css&\"","import Vue from 'vue';\r\nimport utils from './utils.jsx';\r\nimport { appSettings } from './appSettings.js';\r\nimport token from '@/Services/token';\r\nimport careService from '@/Services/careService';\r\nimport careHelpfulFunctions from '@/Application/careHelpfulFunctions';\r\n\r\n//let indent = 0;\r\n\r\nfunction childControlByName(children, name, fromname) {\r\n if (!children || children.length === 0) return null;\r\n\r\n //const indent_chars = '-'.repeat(indent);\r\n //utils.debug(`${indent_chars} childControlByName(children:${children.length}, name:${name}) fromname:${fromname} children:[${children.map(c => c.name).join(',')}]`);\r\n\r\n //indent++;\r\n try {\r\n for (var i = 0; i < children.length; i++) {\r\n if (children[i].name == name)\r\n return children[i];\r\n\r\n let child = childControlByName(children[i].componentchildren || children[i].$children, name, children[i].name);\r\n if (child) return child;\r\n }\r\n }\r\n finally {\r\n // indent--;\r\n }\r\n\r\n return null;\r\n}\r\nfunction childControlByType(children, type) {\r\n if (!children) return null;\r\n\r\n for (var i = 0; i < children.length; i++) {\r\n if (children[i].type == type)\r\n return children[i];\r\n\r\n let child = childControlByType(children[i].componentchildren || children[i].$children, type);\r\n if (child) return child;\r\n }\r\n\r\n return null;\r\n}\r\nfunction childControlWithEventName(children, eventname, target) {\r\n if (!children) return null;\r\n\r\n for (var i = 0; i < children.length; i++) {\r\n const c = children[i];\r\n if (c._events && (eventname in c._events) && (!target || (target && c.controlData?.Name === target)))\r\n return c;\r\n\r\n let child = childControlWithEventName(c.componentchildren || c.$children, eventname, target);\r\n if (child) return child;\r\n }\r\n\r\n return null;\r\n}\r\nfunction allChildrenWithEventName(children, eventname, list) {\r\n if (!children) return 0;\r\n\r\n for (var i = 0; i < children.length; i++) {\r\n const c = children[i];\r\n if (c._events && (eventname in c._events))\r\n list.push(c);\r\n\r\n allChildrenWithEventName(c.componentchildren || c.$children, eventname, list);\r\n }\r\n\r\n return list.length > 0;\r\n}\r\nfunction childControls(children, parent, list, level) {\r\n if (!children) return;\r\n\r\n for (var i = 0; i < children.length; i++) {\r\n list.push({ type: children[i].type, name: children[i].name, parent: parent, level: level });\r\n\r\n childControls(children[i].componentchildren || children[i].$children, children[i].name, list, level + 1);\r\n }\r\n}\r\nfunction allBaseChildControls(children, list) {\r\n if (!children) return;\r\n\r\n for (var i = 0; i < children.length; i++) {\r\n if (children[i].isbase) {\r\n list.push(children[i])\r\n }\r\n\r\n allBaseChildControls(children[i].componentchildren || children[i].$children, list);\r\n }\r\n}\r\nfunction getParent(p) {\r\n if (p.$attrs && ('c_context' in p.$attrs))\r\n return p.$attrs.c_context;\r\n else if ('c_context' in p)\r\n return p.c_context;\r\n else if (typeof p.$parent === 'function')\r\n return p.$parent();\r\n else\r\n return p.$parent;\r\n}\r\nfunction parentByName(p, name) {\r\n // c_context is set in a DialogBasicModal so we scan up from the source control instead of the dialog\r\n\r\n while (p && (p.name != name || (!p.controlData && !p.element && !p.isbase))) {\r\n if (p.$attrs && 'c_context' in p.$attrs)\r\n p = p.$attrs.c_context;\r\n else\r\n p = getParent(p);\r\n }\r\n\r\n return p;\r\n}\r\n\r\nconst methods = {\r\n CallFunc: function (name, a, b, c, d, e, f, g) {\r\n let func;\r\n\r\n let p = this;\r\n\r\n // c_context is set in a DialogBasicModal so we scan up from the source control instead of the dialog\r\n if (this.$attrs && 'c_context' in this.$attrs)\r\n p = this.$attrs.c_context;\r\n\r\n while (p) {\r\n //console.log('CallFunc(' + name + ') scanning ' + p.name);\r\n if (p.Javascript && name in p.Javascript) {\r\n func = p.Javascript[name];\r\n break;\r\n }\r\n\r\n if (p.$attrs && 'c_context' in p.$attrs)\r\n p = p.$attrs.c_context;\r\n else\r\n p = getParent(p);\r\n }\r\n\r\n if (func)\r\n try {\r\n return func(a, b, c, d, e, f, g);\r\n }\r\n catch (e) {\r\n console.warn(`CallFunc(${name}) failed in ${p.name || p.Name || 'unnamed'}: ${e}`, e);\r\n console.log(func);\r\n throw (e);\r\n //if (p.controlData && p.controlData.Javascript)\r\n // console.log(p.controlData.Javascript);\r\n }\r\n else\r\n console.warn('CallFunc(' + name + ') found no matches');\r\n\r\n return null;\r\n },\r\n PossibleParentByName: function () {\r\n const list = [];\r\n let p = this;\r\n\r\n // c_context is set in a DialogBasicModal so we scan up from the source control instead of the dialog\r\n\r\n while (p) {\r\n if (p.$attrs && 'c_context' in p.$attrs)\r\n p = p.$attrs.c_context;\r\n else\r\n p = getParent(p);\r\n\r\n if (p && p.controlData && p.controlData.Name)\r\n list.push(p.controlData.Name);\r\n else\r\n list.push('-');\r\n }\r\n\r\n return list;\r\n },\r\n PossibleParentByType: function () {\r\n const list = [];\r\n let p = this;\r\n\r\n // c_context is set in a DialogBasicModal so we scan up from the source control instead of the dialog\r\n let i = 0;\r\n while (p) {\r\n if (p && (p.controlData && (p.name || p.type || p.controlData.Name || p.$attrs.type)))\r\n list.push({ Name: p.name || p.controlData.Name || p.$attrs.name, Type: p.type || p.$attrs.type, HasCContext: 'c_context' in this.$attrs, uid: p._uid, isbase: p.isbase, index: i++ });\r\n else\r\n list.push(`-${p ? p._uid : 'null'}${p.name ? (' ' + p.name) : ''}-`);\r\n\r\n if (p.$attrs && 'c_context' in p.$attrs)\r\n p = p.$attrs.c_context;\r\n else\r\n p = getParent(p);\r\n }\r\n\r\n return list;\r\n },\r\n ParentByIndex: function (index) {\r\n let p = this;\r\n\r\n // c_context is set in a DialogBasicModal so we scan up from the source control instead of the dialog\r\n let i = 0;\r\n while (p) {\r\n if (p && (p.controlData && (p.name || p.type || p.controlData.Name || p.$attrs.type))) {\r\n if (i == index) break;\r\n i++;\r\n }\r\n\r\n if (p.$attrs && 'c_context' in p.$attrs)\r\n p = p.$attrs.c_context;\r\n else\r\n p = getParent(p);\r\n }\r\n\r\n return p;\r\n },\r\n FindDesigner: function () {\r\n let p = this;\r\n\r\n while (p) {\r\n p = getParent(p);\r\n if (p && p.controlData && p.controlData.Title === 'Designer' && p.controlData.Name === 'design1')\r\n return p;\r\n }\r\n return null;\r\n },\r\n FindDesignerChildHsm: function () {\r\n let p = this;\r\n\r\n while (p) {\r\n p = getParent(p);\r\n if (p && p.controlData && p.controlData.Title === 'Designer' && p.controlData.Name === 'design1' && p.Model && p.Model.Data && p.Model.Data.ControlType === 'Hsm') {\r\n return p.Model.Data;\r\n }\r\n }\r\n return null;\r\n },\r\n FindDesignerChildHsmStatements: function () {\r\n let p = this;\r\n\r\n while (p) {\r\n p = getParent(p);\r\n if (p && p.controlData && p.controlData.Title === 'Designer' && p.controlData.Name === 'design1' && p.Model && p.Model.Data && p.Model.Data.ControlType === 'Hsm') {\r\n return p.Model.Data.ControlData.ControlContainer.Controls.filter(c => c.ControlType === 'HSM_Statements').map(c => ({\r\n Name: c.ControlData.Name,\r\n Arguments: c.ControlData.Arguments,\r\n ReturnType: c.ControlData.ReturnType,\r\n }));\r\n }\r\n }\r\n return [];\r\n },\r\n FindDesignerChildHsmStatement: function (name) {\r\n let p = this;\r\n\r\n while (p) {\r\n p = getParent(p);\r\n if (p && p.controlData && p.controlData.Title === 'Designer' && p.controlData.Name === 'design1' && p.Model && p.Model.Data && p.Model.Data.ControlType === 'Hsm') {\r\n return p.Model.Data.ControlData.ControlContainer.Controls.find(c => c.ControlType === 'HSM_Statements' && c.ControlData.Name === name);\r\n }\r\n }\r\n return undefined;\r\n },\r\n ParentByName: function (name, ignoreerrors, debug) {\r\n let parent = parentByName(this, name);\r\n if (!parent && name.includes('..'))\r\n // Angular named form items field..field for children of an array.\r\n // VuePortal uses field[].field for the same thing.\r\n parent = parentByName(this, name.replace('..', '[].'));\r\n\r\n if (!parent && !ignoreerrors)\r\n utils.warn(`ParentByName(${name}) did not find a match`);\r\n\r\n return parent;\r\n },\r\n ParentByType: function (type) {\r\n let p = this;\r\n\r\n // c_context is set in a DialogBasicModal so we scan up from the source control instead of the dialog\r\n\r\n while (p && (!p.type || (p.type && p.type !== type)) && ((p.controlData && p.controlData.Type && p.controlData.Type !== type) || !p.controlData || !p.controlData.Type)) {\r\n if (p.$attrs && 'c_context' in p.$attrs)\r\n p = p.$attrs.c_context;\r\n else\r\n p = getParent(p);\r\n }\r\n\r\n return p;\r\n },\r\n VarByName: function (name, returnparent, suppresserror) {\r\n let p = this;\r\n\r\n // c_context is set in a DialogBasicModal so we scan up from the source control instead of the dialog\r\n\r\n while (p) {\r\n if (p.Vars && name in p.Vars) {\r\n if (returnparent)\r\n return p.Vars;\r\n else\r\n return p.Vars[name];\r\n }\r\n\r\n if (p.$attrs && 'c_context' in p.$attrs)\r\n p = p.$attrs.c_context;\r\n else\r\n p = getParent(p);\r\n }\r\n\r\n if (!suppresserror)\r\n utils.warn(`VarByName('${name}') did not find a match`);\r\n\r\n return null;\r\n },\r\n GetParentAt: function (index) {\r\n let p = this;\r\n\r\n // c_context is set in a DialogBasicModal so we scan up from the source control instead of the dialog\r\n\r\n let i = 0;\r\n while (p && i < index) {\r\n if (p.$attrs && 'c_context' in p.$attrs)\r\n p = p.$attrs.c_context;\r\n else\r\n p = getParent(p);\r\n\r\n i++;\r\n }\r\n return p;\r\n },\r\n ParamByName: function (name, returnparent, suppresserror, log) {\r\n let p = this;\r\n\r\n // c_context is set in a DialogBasicModal so we scan up from the source control instead of the dialog\r\n\r\n while (p && (\r\n (\r\n (!(p.$attrs && 'paramData' in p.$attrs) || p.$attrs.paramData === null) &&\r\n (!('paramData' in p) || p.paramData === null) &&\r\n (!('paramDataFunc' in p) || p.paramDataFunc === null)\r\n ) ||\r\n (\r\n p.$attrs.paramData && !(name in p.$attrs.paramData)\r\n ) ||\r\n (\r\n p.paramData && !(name in p.paramData)\r\n ) ||\r\n (\r\n p.paramDataFunc && !(name in p.paramDataFunc)\r\n )\r\n )) {\r\n if (log)\r\n console.log(`Searching... ParamByName @${(p.Name || p.type || 'unnamed')}`);\r\n\r\n if (p.$attrs && 'c_context' in p.$attrs)\r\n p = p.$attrs.c_context;\r\n else\r\n p = getParent(p);\r\n }\r\n\r\n if (p) {\r\n if (log)\r\n console.log(`Found ParamByName @${(p.Name || p.type || 'unnamed')}`);\r\n\r\n if (returnparent)\r\n return p.$attrs.paramData || p.paramData || p.paramDataFunc;\r\n else\r\n return p.paramData ? p.paramData[name] : (p.$attrs.paramData ? p.$attrs.paramData[name] : (p.paramDataFunc ? p.paramDataFunc[name] : null));\r\n }\r\n else {\r\n if (log)\r\n console.log('Not found');\r\n\r\n if (!suppresserror)\r\n utils.warn(`ParamByName('${name}') did not find a match`);\r\n\r\n return '';\r\n }\r\n },\r\n ChildControlByName: function (name, ignoreErrors) {\r\n let child = childControlByName(this.componentchildren || this.$children, name);\r\n if (!child && name.includes('..'))\r\n // Angular named form items field..field for children of an array.\r\n // VuePortal uses field[].field for the same thing.\r\n child = childControlByName(this.componentchildren || this.$children, name.replace('..', '[].'));\r\n return child;\r\n },\r\n ChildControlByType: function (type, ignoreErrors) {\r\n return childControlByType(this.componentchildren || this.$children, type);\r\n },\r\n PossibleChildControls: function () {\r\n const list = [];\r\n\r\n childControls(this.componentchildren || this.$children, this.name, list, 0);\r\n\r\n return list;\r\n },\r\n InputByName: function (name) {\r\n let p = this;\r\n\r\n // c_context is set in a DialogBasicModal so we scan up from the source control instead of the dialog\r\n\r\n while (p && !('Input' in p && p.Input && (typeof p.Input === 'object') && name in p.Input)) {\r\n //console.log(`SourceData @${(p.controlData ? p.controlData.Name : 'unnamed')}`);\r\n if (p.$attrs && 'c_context' in p.$attrs)\r\n p = p.$attrs.c_context;\r\n else\r\n p = getParent(p);\r\n }\r\n\r\n if (p)\r\n return p.Input[name];\r\n else\r\n return null;\r\n },\r\n SourceData: function () {\r\n let p = this;\r\n\r\n // c_context is set in a DialogBasicModal so we scan up from the source control instead of the dialog\r\n while (p && !('sourceData' in p && p.sourceData) && (!('sourceData' in p.$attrs) || p.$attrs.sourceData === null || p.$attrs.sourceData === undefined)) {\r\n //console.log(`SourceData @${(p.controlData ? p.controlData.Name : 'unnamed')}`);\r\n if (p.$attrs && 'c_context' in p.$attrs)\r\n p = p.$attrs.c_context;\r\n else\r\n p = getParent(p);\r\n }\r\n\r\n if (p) {\r\n if ('sourceData' in p && typeof p.sourceData === 'function')\r\n return p.sourceData();\r\n else if ('sourceData' in p)\r\n return p.sourceData;\r\n\r\n if (typeof p.$attrs.sourceData === 'function')\r\n return p.$attrs.sourceData();\r\n else\r\n return p.$attrs.sourceData;\r\n }\r\n else\r\n return null;\r\n },\r\n SourceKey: function () {\r\n let p = this;\r\n\r\n // c_context is set in a DialogBasicModal so we scan up from the source control instead of the dialog\r\n\r\n //while (p && !('sourceIndex' in p) && (!('sourceIndex' in p.$attrs) || p.$attrs.sourceIndex === null)) {\r\n while (p && !('sourceIndex' in p && p.sourceIndex) && (!('sourceIndex' in p.$attrs) || p.$attrs.sourceIndex === null || p.$attrs.sourceIndex === undefined)) {\r\n //console.log(`SourceData @${(p.controlData ? p.controlData.Name : 'unnamed')}`);\r\n if (p.$attrs && 'c_context' in p.$attrs)\r\n p = p.$attrs.c_context;\r\n else\r\n p = getParent(p);\r\n }\r\n\r\n if (p) {\r\n if ('sourceIndex' in p)\r\n return p.sourceIndex;\r\n\r\n return p.$attrs.sourceIndex;\r\n }\r\n else\r\n return null;\r\n },\r\n RowData: function () {\r\n let p = this;\r\n\r\n // c_context is set in a DialogBasicModal so we scan up from the source control instead of the dialog\r\n\r\n while (p && !('rowData' in p) && (!('rowData' in p.$attrs) || p.$attrs.rowData === null) && !('rowDataTemp' in p)) {\r\n p = getParent(p);\r\n }\r\n\r\n if (p) {\r\n // rowDataTemp is used in the grid cells cor SortAndFilterTemplate\r\n if ('rowDataTemp' in p)\r\n return p.rowDataTemp;\r\n else if ('rowData' in p && typeof p.rowData === 'function')\r\n return p.rowData();\r\n else if ('rowData' in p)\r\n return p.rowData;\r\n\r\n if (typeof p.$attrs.rowData === 'function')\r\n return p.$attrs.rowData();\r\n else\r\n return p.$attrs.rowData;\r\n }\r\n else\r\n return null;\r\n },\r\n RowIndex: function () {\r\n let p = this;\r\n\r\n // c_context is set in a DialogBasicModal so we scan up from the source control instead of the dialog\r\n\r\n while (p && !('rowIndex' in p)) {\r\n if (p.$attrs && 'c_context' in p.$attrs)\r\n p = p.$attrs.c_context;\r\n else\r\n p = getParent(p);\r\n }\r\n\r\n if (p) {\r\n if ('rowIndex' in p)\r\n return p.rowIndex;\r\n else\r\n return -1;\r\n }\r\n else\r\n return -1;\r\n },\r\n AdditionalRowData: function (name) {\r\n let p = this;\r\n\r\n while (p && !('getAdditionalRowData' in p)) {\r\n if (p.$attrs && 'c_context' in p.$attrs)\r\n p = p.$attrs.c_context;\r\n else\r\n p = getParent(p);\r\n }\r\n\r\n if (p)\r\n return p.getAdditionalRowData(name);\r\n else\r\n return null;\r\n },\r\n Query: function (name) {\r\n return this.QueryString(name);\r\n },\r\n QueryString: function (name) {\r\n if (!this.Root.query || !(typeof this.Root.query === 'string'))\r\n return undefined;\r\n\r\n const parts = this.Root.query.substring(1).split('&');\r\n for (let i = 0; i < parts.length; i++) {\r\n const kv = parts[i].split('=');\r\n if (kv[0] == name)\r\n return kv.length > 1 ? decodeURIComponent(kv[1]) : '';\r\n }\r\n\r\n // Allow the route portion to include query parameters\r\n // Ex: /lobby?NoHeader=true#/Control/OmniChannel/v2/Chat/Preview?data=...\r\n if (this.Root.route && this.Root.route.includes('?')) {\r\n const idx = this.Root.route.indexOf('?');\r\n const route = this.Root.route.substr(idx + 1);\r\n const rparts = route.split('&');\r\n for (let i = 0; i < rparts.length; i++) {\r\n const kv = rparts[i].split('=');\r\n if (kv[0] == name)\r\n return kv.length > 1 ? decodeURIComponent(kv[1]) : '';\r\n }\r\n }\r\n return undefined;\r\n },\r\n GenerateUUID: function () {\r\n var d = new Date().getTime();\r\n var uuid = 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {\r\n var r = (d + Math.random() * 16) % 16 | 0;\r\n d = Math.floor(d / 16);\r\n return (c == 'x' ? r : (r & 0x3 | 0x8)).toString(16);\r\n });\r\n return uuid;\r\n },\r\n isExpressionOnly(text) {\r\n let matchingExpression = new RegExp(\"{{.*?\\\\}\\\\}|{\\\\*.*?\\\\*\\\\}|{\\\\#.*?\\\\#\\\\}|{\\\\%.*?\\\\%\\\\}\", \"g\"); // the \"?\" makes the expression minimal (not greedy), only capturing characters upto the first \"#}\"\r\n\r\n let matches = text.match(matchingExpression); // See if there are any matches for object substitution in the string\r\n\r\n return matches && matches.length === 1 && matches[0] === text;\r\n },\r\n Translate: function (text, isToolTip) {\r\n if (!text || typeof text === 'number')\r\n return text;\r\n\r\n if (this.isExpressionOnly(text))\r\n return text;\r\n\r\n // we ran into an issue where a multi-megabyte image was translated, creating a very large key- which resulted in replication issues.\r\n // to prevent that from happening in the future a key length protection was put in place. 500 was an arbitrary value and may need to be adjusted if it is determinded to be improper.\r\n if (text.length > 500)\r\n return text;\r\n\r\n\r\n let customerId = '50'; // if no customerid specified use the SystemId\r\n\r\n if (careService.globalTranslationList[token.CustomerID()] && (text in careService.globalTranslationList[token.CustomerID()]))\r\n customerId = token.CustomerID();\r\n\r\n let docInfo;\r\n\r\n // TODO: Implement doc info\r\n // if (c && ((c.$controlModel && c.$controlModel.DocInfo) || (c.DocInfo))) {\r\n // docInfo = (c.$controlModel && c.$controlModel.DocInfo) ? c.$controlModel.DocInfo() : c.DocInfo();\r\n // if (docInfo && docInfo.CustomerID)\r\n // customerid = docInfo.CustomerID;\r\n // }\r\n\r\n let shouldTranslate = true;\r\n let shouldTranslateTooltip = true;\r\n let translatedText = text;\r\n\r\n if (this.controlData) {\r\n if ('ShouldTranslate' in this.controlData)\r\n shouldTranslate = this.controlData.ShouldTranslate;\r\n\r\n if ('ShouldTranslateTooltip' in this.controlData)\r\n shouldTranslateTooltip = this.controlData.ShouldTranslateTooltip;\r\n }\r\n\r\n if ((!isToolTip && shouldTranslate) || (isToolTip && shouldTranslateTooltip)) {\r\n //check translist for translation\r\n if (careService.globalTranslationList[customerId] && (text in careService.globalTranslationList[customerId])) {\r\n translatedText = careService.globalTranslationList[customerId][text] || text; // if the value is empty string \"\", return the text (this translation list is optimized to return \"\" if the key and value are the same)\r\n }\r\n else if ((text || \"\").trim()) {\r\n careService.updateTranslationList(text, docInfo);\r\n }\r\n }\r\n\r\n return appSettings.DebugTranslationPrefixSetting ? (\"XX-\" + translatedText) : translatedText;\r\n },\r\n FindParentWithEventListener(eventname, target, log) {\r\n let p = this;\r\n\r\n if (p._events && (eventname in p._events) && (!target || p.controlData?.Name === target)) {\r\n if (log)\r\n utils.log(`Found @this ${this.name || this.type}`);\r\n\r\n return p;\r\n }\r\n\r\n // c_context is set in a DialogBasicModal so we scan up from the source control instead of the dialog\r\n if (this.$attrs && 'c_context' in this.$attrs) {\r\n if (log)\r\n utils.log(`A c_context is in @${this.name || p.type}`);\r\n\r\n p = this.$attrs.c_context;\r\n }\r\n\r\n while (p && ((!p._events || !(eventname in p._events)) || (target && p.controlData?.Name !== target))) {\r\n if (log)\r\n utils.log(`Skipping @${p.name || p.type}`);\r\n\r\n p = getParent(p);\r\n }\r\n\r\n if (log)\r\n if (p)\r\n utils.log(`Found @${p.name || p.type}`);\r\n else\r\n utils.log('Not found');\r\n\r\n return p;\r\n },\r\n FindChildWithEventListener(eventname, target) {\r\n if (this._events && (eventname in this._events))\r\n return this;\r\n\r\n return childControlWithEventName(this.componentchildren || this.$children, eventname, target);\r\n },\r\n FindAllChildrenWithEventListener(eventname) {\r\n const list = [];\r\n if (this._events && (eventname in this._events))\r\n list.push(this);\r\n\r\n allChildrenWithEventName(this.componentchildren || this.$children, eventname, list);\r\n return list;\r\n },\r\n FindAllBaseContainers() {\r\n const list = [];\r\n\r\n allBaseChildControls(this.componentchildren || this.$children, list);\r\n return list;\r\n },\r\n addJavascript(context, code) {\r\n const finalContext = context || this;\r\n const api = utils.apiWrapper; // apiService;\r\n const chf = careHelpfulFunctions;\r\n const care = careService;\r\n\r\n let theJavascript = eval(\"new (\" + code + \")(care, null, api, finalContext, chf);\");\r\n\r\n if (this.Javascript)\r\n this.Javascript = { ...this.Javascript, ...theJavascript };\r\n else\r\n this.Javascript = eval(\"new (\" + code + \")(null, null, api, this, chf);\");\r\n\r\n for (let key in this.Javascript)\r\n if (typeof this.Javascript[key] === 'function')\r\n this.Javascript[key] = this.Javascript[key].bind(this.Javascript);\r\n }\r\n}\r\n\r\nexport default methods;","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./columnItemList.vue?vue&type=style&index=0&id=1d10c465&prod&scoped=true&lang=css&\"","import Vue from 'vue';\r\nimport axios from 'axios';\r\nimport methods from './methods.js';\r\nimport filters from './filters.js';\r\nimport EventBus from '../Application/event-bus.js';\r\nimport careHelpfulFunctions from '../Application/careHelpfulFunctions.jsx';\r\nimport actionDefaults from './actionDefaults';\r\nimport apiService from '@/Services/api';\r\nimport cachingService from '@/Services/cachingService';\r\nimport { ObjFunc, ObjProxy } from '@/Shared/helperClasses';\r\nimport editor from '@/Services/editor.jsx';\r\nimport _ from 'lodash';\r\n\r\nfunction scanBack(buff) {\r\n // Scan backwards in buff looking for a whole expression which will be the first parameter of the filter function.\r\n // Once detected, return the remaining buffer without the extracted expression.\r\n let i = buff.length - 1;\r\n let level = 0;\r\n while (i >= 0) {\r\n switch (buff[i]) {\r\n case ')': level++; break;\r\n case '(':\r\n if (level <= 0) {\r\n // End here\r\n return { expression: buff.substr(i + 1), buff: buff.substr(0, i + 1) };\r\n }\r\n level--;\r\n break;\r\n //case '+':\r\n //case '-':\r\n //case '*':\r\n //case '/':\r\n //case ':':\r\n // // Assume that pipes have higher priority than other operators, so if we encounter\r\n // // another operator, end the expression (unless we are in parenthesis).\r\n // if (level <= 0) {\r\n // // End here\r\n // return { expression: buff.substr(i + 1), buff: buff.substr(0, i + 1) };\r\n // }\r\n // break;\r\n }\r\n i--;\r\n }\r\n\r\n return { expression: buff, buff: '' };\r\n}\r\n\r\nfunction getFilterArgs(buff, index) {\r\n let j = index;\r\n let data = '';\r\n let inquote1 = false;\r\n let inquote2 = false;\r\n let level = 0;\r\n while (j < buff.length) {\r\n switch (buff[j]) {\r\n case '(': if (!inquote1 && !inquote2) level++; break;\r\n case '|':\r\n case ')': if (!inquote1 && !inquote2 && level <= 0) return { args: data, index: j }; else level--; break;\r\n case '\"': if (!inquote2) inquote1 = !inquote1; break;\r\n case \"'\": if (!inquote1) inquote2 = !inquote2; break;\r\n case ':': if (!inquote1 && !inquote2 && level === 0) { data += ','; j++; continue; } break;\r\n }\r\n data += buff[j];\r\n j++;\r\n }\r\n return { args: data, index: j };\r\n}\r\n\r\nfunction extractFilters(whole) {\r\n // Parse pipe filter expression - the replacer rewrites it as a javascript function:\r\n // someexpression | datetime:'medium'\r\n // f_datetime(someexpression, 'medium')\r\n\r\n // Real example (from detailed history grid):\r\n // ParentByName('maincontainer').Vars.DisplayTime == 0 ? (util.durationSecondsAsString( RowData().XferDuration )) : ((RowData().XferDuration)/60 | number : 2 )\r\n // To:\r\n // ParentByName('maincontainer').Vars.DisplayTime == 0 ? (util.durationSecondsAsString( RowData().XferDuration )) : (f_number((RowData().XferDuration)/60 , 2) )\r\n\r\n // Input.Data=='NotFound' ? ( RowData().Direction == 'inbound' ? ((RowData().CallerName || RowData().RemoteParty) | phoneNumber) : (RowData().RemoteParty | phoneNumber) ) : Input.Data\r\n // To:\r\n //\r\n\r\n let i = 0;\r\n let buff = '';\r\n while (i < whole.length) {\r\n if (whole[i] === '|' && (i >= whole.length - 1 || whole[i + 1] !== '|') && (i <= 0 || whole[i-1] !== '|')) {\r\n // Scan forward to get the filter name and arguments ( | name [: args])\r\n let j = i + 1;\r\n // Skip whitespace\r\n while (j < whole.length && whole[j] == ' ' || whole[j] == '\\t') j++;\r\n // Take until word break\r\n let startIndex = j;\r\n while (j < whole.length && !(/\\s/.test(whole[j]) || whole[j] == ':' || whole[j] == ')')) j++;\r\n let endIndex = j;\r\n // Filter name\r\n let name = whole.substring(startIndex, endIndex);\r\n // Skip whitespace\r\n while (j < whole.length && whole[j] == ' ' || whole[j] == '\\t') j++;\r\n\r\n let args = '';\r\n if (j < whole.length && whole[j] == ':') {\r\n // Grab filter arguments (scan to the end or to an ending paranthesis)\r\n let res = getFilterArgs(whole, j + 1);\r\n args = res.args;\r\n j = res.index;\r\n }\r\n\r\n // Scan back to the prior characters looking for a whole expression (bounded by nothing or parenthesis)\r\n let input = scanBack(buff);\r\n buff = input.buff;\r\n if (args)\r\n buff += `f_${name}(${input.expression},${args})`;\r\n else\r\n buff += `f_${name}(${input.expression})`;\r\n\r\n i = j;\r\n continue;\r\n }\r\n else\r\n buff += whole[i];\r\n\r\n i++;\r\n }\r\n return buff;\r\n}\r\n\r\nfunction parseUserExpression(original, debug, context_name, donotusewith, custommodelas) {\r\n if (!context_name)\r\n context_name = 'context';\r\n\r\n // This is an algorithm that can be used to generate a function to perform interpolation\r\n // using a pre-generated dynamic function. It will take anything in between double curlys {{...}}\r\n // and build an array with the static text surrounding functions that execute the inner code\r\n // as JavaScript returning strings.\r\n\r\n // Example original string:\r\n // var original = 'This is a {{VarByName(\"Test\").length}} of the parsing {{ParamByName(\"One\")}} the end.';\r\n // Final output:\r\n // This is a 6 of the parsing the end.\r\n\r\n if (!original || !(typeof original === 'string'))\r\n return new ObjFunc('', (context) => original);\r\n\r\n const saved = original;\r\n original = original.replace(/\\{\\*/g, \"{{\");\r\n original = original.replace(/\\*\\}/g, \"}}\");\r\n original = original.replace(/\\{#/g, \"{{\");\r\n original = original.replace(/#\\}/g, \"}}\");\r\n original = original.replace(/\\{%/g, \"{{\");\r\n original = original.replace(/%\\}/g, \"}}\");\r\n original = original.replace(/\\\\\\{/g, '&Opnc;');\r\n original = original.replace(/\\\\\\}/g, '&Clsc;');\r\n\r\n let result = [];\r\n let raw = [];\r\n let last = 0;\r\n function replacer(match, p1, offset, whole) {\r\n // p1 is the text located in between the curlys\r\n if (offset > 0) {\r\n const tmp = whole.substr(last, offset - last);\r\n result.push(tmp);\r\n raw.push(tmp);\r\n }\r\n\r\n const saved1 = p1;\r\n p1 = p1.replace(/&Opnc;/g, '{');\r\n p1 = p1.replace(/&Clsc;/g, '}');\r\n p1 = extractFilters(p1);\r\n\r\n // f contains a new JavaScript function to evaluate the code\r\n let f;\r\n if (donotusewith) {\r\n f = 'return ' + p1 + ';';\r\n }\r\n else {\r\n f = 'with (context) {';\r\n if (debug)\r\n f += 'debugger;';\r\n f += 'return ' + p1 + ';';\r\n f += '}';\r\n }\r\n // This builds a dynamic function - context is a value passed in at execution time, it will\r\n // contain the current context functions, such as VarByName, etc. These can be called directly\r\n // within the code since we wrapped the body in a with( ) clause.\r\n let x;\r\n if (custommodelas && Array.isArray(custommodelas))\r\n x = new ObjFunc(saved1, new Function([context_name, 'util', ...custommodelas].join(','), f));\r\n else if (custommodelas)\r\n x = new ObjFunc(saved1, new Function(context_name, 'util', custommodelas, f));\r\n else\r\n x = new ObjFunc(saved1, new Function(context_name, 'util', f));\r\n\r\n result.push(x); // eval(p1)\r\n raw.push(p1);\r\n\r\n last = offset + match.length;\r\n\r\n // The return is ignored (maybe I can use something other than .replace)\r\n return '';\r\n }\r\n\r\n const matcher = /\\{\\{([^}]+)\\}\\}/g;\r\n original.replace(matcher, replacer);\r\n\r\n if (last < original.length) {\r\n const tmp = original.substr(last);\r\n result.push(tmp);\r\n raw.push(tmp);\r\n }\r\n\r\n const final = (...args) => {\r\n let text = '';\r\n for (var i = 0; i < result.length; i++)\r\n if (typeof result[i] === 'object' && result[i] instanceof ObjFunc) {\r\n const text_res = result[i].func.apply(null, args);\r\n if (text_res === undefined || text_res === null)\r\n ;\r\n else if (typeof text_res === 'object')\r\n text += JSON.stringify(text_res);\r\n else\r\n text += text_res;\r\n }\r\n else\r\n text += result[i];\r\n\r\n return text;\r\n };\r\n\r\n //const final = (context, util, custommodel) => {\r\n // let text = '';\r\n // for (var i = 0; i < result.length; i++)\r\n // if (typeof result[i] === 'object' && result[i] instanceof ObjFunc) {\r\n // const text_res = result[i].func(context, careHelpfulFunctions, custommodel);\r\n // if (text_res === undefined || text_res === null)\r\n // ;\r\n // else if (typeof text_res === 'object')\r\n // text += JSON.stringify(text_res);\r\n // else\r\n // text += text_res;\r\n // }\r\n // else\r\n // text += result[i];\r\n\r\n // return text;\r\n //};\r\n\r\n return new ObjFunc(saved, final);\r\n}\r\n\r\nfunction parseObjectWithUserExpressions(control, parent, custommodelas) {\r\n if (parent === null)\r\n return parent;\r\n\r\n if (typeof parent === 'string') {\r\n // {# object #}\r\n if ((parent.substr(0, 2) === '{#' && parent.substr(parent.length - 2, 2) === '#}') ||\r\n (parent.substr(0, 2) === '{%' && parent.substr(parent.length - 2, 2) === '%}')) {\r\n const expn = parent.substr(2, parent.length - 4);\r\n\r\n if (custommodelas && Array.isArray(custommodelas))\r\n return new ObjFunc(expn, new Function(['context', 'util', ...custommodelas].join(','), 'with (context) return ' + expn + ';'));\r\n else if (custommodelas)\r\n return new ObjFunc(expn, new Function('context', 'util', custommodelas, 'with (context) return ' + expn + ';'));\r\n else\r\n return new ObjFunc(expn, new Function('context', 'util', 'with (context) return ' + expn + ';'));\r\n }\r\n else {\r\n return parseUserExpression(parent, false, null, false, custommodelas);\r\n }\r\n }\r\n\r\n if (typeof parent === 'object') {\r\n if (Array.isArray(parent)) {\r\n let newparent = [];\r\n for (var i = 0; i < parent.length; i++)\r\n newparent.push(parseObjectWithUserExpressions(control, parent[i], custommodelas));\r\n return newparent;\r\n }\r\n else {\r\n let newparent = {};\r\n for (var key in parent) {\r\n const item = parent[key];\r\n // Prevent an object with an action array from being compiled at this stage (actions are compiled as they are executed)\r\n if (typeof item === 'object' && Array.isArray(item) && item.some(i => i && typeof i === 'object' && 'ActionType' in i))\r\n newparent[key] = item;\r\n else\r\n newparent[key] = parseObjectWithUserExpressions(control, item, custommodelas);\r\n }\r\n return newparent;\r\n }\r\n }\r\n\r\n return parent;\r\n}\r\n\r\nfunction evaluateUserExpression(result, context, custommodel, multiplecustommodels) {\r\n if (result === null || typeof result === 'undefined')\r\n return result;\r\n\r\n if (typeof result === 'object' && result != null && result instanceof ObjFunc) {\r\n if (multiplecustommodels)\r\n return result.func.apply(null, [context, careHelpfulFunctions, ...custommodel]);\r\n else\r\n return result.func(context, careHelpfulFunctions, custommodel);\r\n }\r\n\r\n if (Array.isArray(result)) {\r\n let newresult = [];\r\n for (var i = 0; i < result.length; i++)\r\n newresult.push(evaluateUserExpression(result[i], context, custommodel, multiplecustommodels));\r\n return newresult;\r\n }\r\n else if (typeof result === 'object') {\r\n let newresult = {};\r\n for (var key in result)\r\n newresult[key] = evaluateUserExpression(result[key], context, custommodel, multiplecustommodels);\r\n return newresult;\r\n }\r\n else\r\n return result;\r\n}\r\n\r\nfunction parseExpressionWithFilters(original, debug) {\r\n function filter_replacer(match, pp0, pp1, pp2, offset, whole) {\r\n // pp1 is the text of the filter expression, Ex: \"|datetime:'medium'\"\r\n const filter = pp1.substring(1).split(':');\r\n const args = filter[1];\r\n if (args)\r\n return `f_${filter[0].trim()}(${pp0},${args})${pp2}`;\r\n else\r\n return `f_${filter[0].trim()}(${pp0})${pp2}`;\r\n }\r\n // Regex to parse pipe filter expression - the replacer rewrites it as a javascript function:\r\n // someexpression | datetime:'medium'\r\n // datetime(someexpression, medium)\r\n // const filter_matcher = /(\\b.+[^\\|])(\\|[^\\|].+)$/g;\r\n const filter_matcher = /(\\b.+[^\\|])\\|(\\s*\\w+)(.*$)/g;\r\n return original.replace(filter_matcher, filter_replacer);\r\n}\r\n\r\nfunction convertSetValueToVueSet(source, value) {\r\n //TODO: transform\r\n // Base.ChildControlByName('resultform',true).Model.data = value\r\n //into\r\n // Vue.set(Base.ChildControlByName('resultform',true).Model, 'data', value)\r\n\r\n //TODO: transform\r\n // VarByName('BLegHSMs')[Input.HSM.UniqueID] = value\r\n //into\r\n // Vue.set(VarByName('BLegHSMs'), Input.HSM.UniqueID, value)\r\n\r\n let quote1 = false;\r\n let quote2 = false;\r\n let objname = '';\r\n let fldname = '';\r\n let brackets = 0;\r\n let usequotes = true;\r\n let i = source.length - 1;\r\n while (i >= 0) {\r\n switch (source[i]) {\r\n case '\"':\r\n fldname = source[i] + fldname;\r\n if (!quote2) quote1 = !quote1;\r\n break;\r\n case '\\'':\r\n fldname = source[i] + fldname;\r\n if (!quote1) quote2 = !quote2;\r\n break;\r\n case '.':\r\n if (quote1 || quote2 || brackets > 0) {\r\n fldname = source[i] + fldname;\r\n break;\r\n }\r\n objname = source.substr(0, i);\r\n i = 0;\r\n break;\r\n\r\n case ']':\r\n if (brackets > 0 || quote1 || quote2)\r\n fldname = source[i] + fldname;\r\n\r\n if (!quote1 && !quote2)\r\n brackets++;\r\n break;\r\n\r\n case '[':\r\n if (quote1 || quote2) {\r\n fldname = source[i] + fldname;\r\n break;\r\n }\r\n brackets--;\r\n if (brackets === 0) {\r\n objname = source.substr(0, i);\r\n usequotes = false;\r\n i = 0;\r\n break;\r\n }\r\n else\r\n fldname = source[i] + fldname;\r\n break;\r\n\r\n default:\r\n fldname = source[i] + fldname;\r\n break;\r\n }\r\n i--;\r\n }\r\n if (!fldname)\r\n return '';\r\n\r\n if (usequotes) {\r\n if (fldname.includes('\"'))\r\n fldname = \"'\" + fldname + \"'\";\r\n else\r\n fldname = '\"' + fldname + '\"';\r\n }\r\n\r\n if (!objname)\r\n return `vue.set(context, ${fldname}, ${value})`;\r\n else\r\n return `vue.set(${objname}, ${fldname}, ${value})`;\r\n}\r\n\r\nfunction resolveSizes(size) {\r\n switch (size) {\r\n case 'UltraSmall': return '1px';\r\n case 'ExtraSmall': return '2.5px';\r\n case 'Small': return '5px';\r\n case 'Medium': return '10px';\r\n case 'Large': return '20px';\r\n case 'Larger': return '40px';\r\n case 'ExtraLarge': return '80px';\r\n default:\r\n return '0px';\r\n }\r\n}\r\n\r\nfunction getFormattedDateNow() {\r\n const now = new Date();\r\n const hours = now.getHours().toString().padStart(2, '0');\r\n const mins = now.getMinutes().toString().padStart(2, '0');\r\n const secs = now.getSeconds().toString().padStart(2, '0');\r\n const msec = now.getMilliseconds().toString().padStart(3, '0');\r\n return `${hours}:${mins}:${secs}.${msec}`;\r\n}\r\n\r\nfunction decompileObject(compiledobj) {\r\n let str = '{';\r\n let addcomma = false;\r\n for (let key in compiledobj) {\r\n if (addcomma)\r\n str += ',';\r\n\r\n str += `\"${key}\":`;\r\n\r\n try {\r\n const item = compiledobj[key];\r\n if (typeof item === 'object' && item instanceof ObjFunc)\r\n str += `\"${item.code}\"`;\r\n else if (typeof item === 'object' && item instanceof ObjProxy)\r\n str += `[proxy]`; // \"${decompileObject(compiledobj[key].target)}\"`;\r\n else if (typeof item === 'object')\r\n str += decompileObject(item);\r\n else if (typeof item === 'string')\r\n str += `\"${item}\"`;\r\n else if (item === undefined || item === null)\r\n str += 'null';\r\n else\r\n str += item;\r\n }\r\n catch (e) {\r\n str += `[error: ${e.toString()}]`;\r\n utils.warn(`Could not decompileObject at key: ${key}`, e);\r\n }\r\n\r\n addcomma = true;\r\n }\r\n str += '}';\r\n return str;\r\n}\r\n\r\nconst cache = {\r\n access_token: null,\r\n schema: {},\r\n schema_date: null,\r\n async setBoostrap(s) {\r\n cache.schema = s;\r\n cache.schema_date = new Date();\r\n utils.log(new Date() + ' Resolving ' + Object.keys(s).length + ' schema documents...');\r\n let i = 0;\r\n for (var key in cache.schema) {\r\n i++;\r\n if (key == '/schema/public/Platform.Schema.Data.v1/schema-draft04')\r\n continue;\r\n //utils.log('[' + i + '] key:' + key + '...');\r\n try {\r\n await cache.resolveReferences(cache.schema[key]);\r\n }\r\n catch (e) {\r\n utils.log('Could not resolve schema, removing from set:' + key);\r\n delete cache.schema[key];\r\n }\r\n }\r\n utils.log(new Date() + ' Finished resolving ' + Object.keys(s).length + ' schema documents');\r\n },\r\n async resolveReferences(schema) {\r\n let s = schema;\r\n\r\n if ('$ref' in s) {\r\n const r = await cache.getSchema(s['$ref']);\r\n if (!r) {\r\n utils.log(' $ref not found: ' + s['$ref']);\r\n throw 'Schema not found for ' + s['$ref'];\r\n }\r\n r.Id = s['$ref'];\r\n\r\n // this is garbage!! the use case dictates that I must make a copy of the $ref\r\n // schema object in order to allow the reference definition to override certain\r\n // fields. what a pile of junk! truly horrendous. (DP - 6/26/2021)\r\n if (s.condition || s.title || ('default' in s)) {\r\n const copy_of_r = { ...r };\r\n\r\n if (s.condition)\r\n copy_of_r.condition = s.condition;\r\n\r\n if (s.title)\r\n copy_of_r.title = s.title;\r\n\r\n if ('default' in s)\r\n copy_of_r.default = s.default;\r\n\r\n if ('$isTypeRef' in s)\r\n copy_of_r['$isTypeRef'] = s['$isTypeRef'];\r\n\r\n if ('condition' in copy_of_r && copy_of_r.condition && typeof copy_of_r.condition === 'string') {\r\n copy_of_r.$$condition = new Function('context', 'util', 'with (context) return ' + copy_of_r.condition + ';');\r\n }\r\n\r\n return copy_of_r;\r\n }\r\n return r;\r\n }\r\n\r\n if ('allOf' in s) {\r\n for (var i = 0; i < s.allOf.length; i++) {\r\n const a = s.allOf[i];\r\n s.allOf[i] = await cache.resolveReferences(a);\r\n }\r\n }\r\n else if ('oneOf' in s) {\r\n for (var i = 0; i < s.oneOf.length; i++) {\r\n const a = s.oneOf[i];\r\n s.oneOf[i] = await cache.resolveReferences(a);\r\n }\r\n }\r\n else if ('anyOf' in s) {\r\n for (var i = 0; i < s.anyOf.length; i++) {\r\n const a = s.anyOf[i];\r\n s.anyOf[i] = await cache.resolveReferences(a);\r\n }\r\n }\r\n else if ('properties' in s) {\r\n const tmp = {};\r\n for (var key in s.properties) {\r\n if (key.substr(0, 1) === '$' && key !== '$ref') continue;\r\n try {\r\n tmp[key] = await cache.resolveReferences(s.properties[key]);\r\n }\r\n catch (e) {\r\n utils.log('Failed to resolve key: ' + key + '; ' + e);\r\n throw e;\r\n }\r\n }\r\n s.properties = tmp;\r\n }\r\n else if ('items' in s) {\r\n s.items = await cache.resolveReferences(s.items);\r\n }\r\n\r\n if ('condition' in s && s.condition && typeof s.condition === 'string') {\r\n //utils.log('Compiling schema condition ' + s.condition);\r\n //s.condition_src$ = s.condition;\r\n s.$$condition = new Function('context', 'util', 'with (context) return ' + s.condition + ';');\r\n }\r\n\r\n return s;\r\n },\r\n async getSchema(id, throwOnError) {\r\n if (id in cache.schema)\r\n return cache.schema[id];\r\n else if (`/${id}` in cache.schema)\r\n return cache.schema[`/${id}`];\r\n\r\n utils.log('Schema cache MISS - loading ' + id);\r\n\r\n let path = id; // Apps/UIWhole/Schema/public/Platform.Schema.SchemaSchemas.v1/SchemaSchema_Type_String\r\n if (path.substr(0, 1) === '/') path = path.substr(1);\r\n\r\n try {\r\n if (path.substr(0, 18) === 'Apps/Schema/AnyOf/') {\r\n path = 'Apps/Schema/GetSchemaAnyOf/' + path.substr(18);\r\n\r\n const s = await utils.api.get(path, false, true, true);\r\n if (!('anyOf' in s)) throw 'Not a valid schema doc, missing anyOf property';\r\n\r\n cache.schema[id] = s;\r\n await cache.resolveReferences(s);\r\n return s;\r\n }\r\n else {\r\n path = 'Apps/UIWhole/' + path;\r\n\r\n const s = await utils.api.get(path, false, true, true);\r\n if (!('Schema' in s)) throw 'Not a valid schema doc, missing Schema property';\r\n\r\n if ('$ref' in s.Schema) {\r\n s.Schema = await cache.getSchema(s.Schema['$ref']);\r\n s.Schema.Id = path;\r\n }\r\n else {\r\n cache.schema[id] = s.Schema;\r\n await cache.resolveReferences(s.Schema);\r\n }\r\n\r\n return s.Schema;\r\n }\r\n }\r\n catch (e) {\r\n utils.warn('getSchema(' + id + ') failed', e);\r\n if (throwOnError)\r\n throw (e);\r\n\r\n return null;\r\n }\r\n }\r\n};\r\n\r\nconst apicache = {\r\n urls: {}\r\n};\r\n\r\nconst validation_patterns = {\r\n datetime: /(\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d:[0-5]\\d\\.\\d+)|(\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d:[0-5]\\d)|(\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d)/,\r\n email: /^(([^<>()[\\]\\\\.,;:\\s@\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/,\r\n};\r\n\r\nconst utils = {\r\n baseuri: 'https://api.callcorplab.com',\r\n hubproxy: null,\r\n helpers: {\r\n extractFilters: extractFilters,\r\n convertSetValueToVueSet: convertSetValueToVueSet,\r\n chf: careHelpfulFunctions,\r\n parseUserExpression: parseUserExpression,\r\n tryParseInt: function (val, default_val, radix) {\r\n try {\r\n radix = radix || 10;\r\n default_val = default_val || 0;\r\n\r\n //validate this is not null or undefined\r\n if (val !== null && val !== undefined) {\r\n //convert to integer\r\n var that = parseInt(val, radix);\r\n\r\n //check to see if it is not NaN, if not parse\r\n if (isNaN(that))\r\n return default_val;\r\n else\r\n return that;\r\n }\r\n }\r\n catch (err) {\r\n console.log(err);\r\n }\r\n //this is not a number\r\n return default_val;\r\n },\r\n dialogTitleImage: '',\r\n EventBus: EventBus,\r\n },\r\n actionDefaults: function () {\r\n return actionDefaults;\r\n },\r\n toggleVisible(control, key, default_value = 'true') {\r\n //const default_value = 'true';\r\n const value = control.visible_keys[key] || localStorage.getItem(key);\r\n\r\n if (!value) {\r\n // No setting, save the opposite of the default_value\r\n const new_value = default_value === 'true' ? 'false' : 'true';\r\n localStorage.setItem(key, new_value);\r\n Vue.set(control.visible_keys, key, new_value);\r\n utils.log('Saved ' + key + ' as ' + new_value);\r\n }\r\n else {\r\n const new_value = value === 'true' ? 'false' : 'true';\r\n if (new_value === default_value) {\r\n // When the value is the default, remove the entry\r\n localStorage.removeItem(key);\r\n Vue.delete(control.visible_keys, key);\r\n utils.log('Deleted ' + key);\r\n }\r\n else {\r\n // Otherwise, we must store the value\r\n localStorage.setItem(key, new_value);\r\n Vue.set(control.visible_keys, key, new_value);\r\n utils.log('Saved ' + key + ' as ' + new_value);\r\n }\r\n }\r\n },\r\n getVisibility(control, key, default_value = 'true') {\r\n //const default_value = 'true';\r\n let value = control.visible_keys[key];\r\n if (!value) {\r\n value = localStorage.getItem(key);\r\n if (value)\r\n Vue.set(control.visible_keys, key, value);\r\n }\r\n\r\n if (!value)\r\n return default_value === 'true';\r\n else\r\n return value === 'true';\r\n },\r\n log(text) {\r\n console.log(`${getFormattedDateNow()} ${text}`);\r\n },\r\n debug(text, styles, stacktrace) {\r\n console.debug(`%c${getFormattedDateNow()} ${text}`, styles || 'color: #008000;');\r\n if (stacktrace)\r\n console.trace();\r\n },\r\n warn(text, err) {\r\n console.warn(`${getFormattedDateNow()} ${text}`);\r\n if (err && err.stack)\r\n console.log(err.stack);\r\n else if (err && typeof err === 'object')\r\n console.log(JSON.stringify(err));\r\n },\r\n error(text, err) {\r\n console.error(`${getFormattedDateNow()} ${text}`);\r\n if (err && err.stack)\r\n console.log(err.stack);\r\n else if (err && typeof err === 'object')\r\n console.log(JSON.stringify(err));\r\n },\r\n generateUUID() {\r\n var d = new Date().getTime();\r\n var uuid = 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {\r\n var r = (d + Math.random() * 16) % 16 | 0;\r\n d = Math.floor(d / 16);\r\n return (c == 'x' ? r : (r & 0x3 | 0x8)).toString(16);\r\n });\r\n return uuid;\r\n },\r\n setAccessToken(token) {\r\n cache.access_token = token;\r\n },\r\n childControlByName(children, name) {\r\n if (!children) return null;\r\n\r\n for (var i = 0; i < children.length; i++) {\r\n if (children[i].name == name)\r\n return children[i];\r\n\r\n let child = utils.childControlByName(children[i].$children, name);\r\n if (child) return child;\r\n }\r\n\r\n return null;\r\n },\r\n parseExpressionWithFilters: parseExpressionWithFilters,\r\n compile(control, text, debug, custommodelas) {\r\n if (text === null || typeof text === 'undefined') return null;\r\n if (!(typeof text === 'string')) return text;\r\n\r\n try {\r\n return parseUserExpression(text, debug, undefined, undefined, custommodelas);\r\n }\r\n catch (e) {\r\n utils.warn(`Failed to compile: ${text}`, e);\r\n return null;\r\n }\r\n },\r\n compileExpression(control, expression, custommodelas) {\r\n let expr;\r\n try {\r\n if (typeof expression === 'string')\r\n {\r\n expr = expression;\r\n\r\n if ((expr.startsWith('{%') || expr.startsWith('{#')) && (expr.endsWith('%}') || expr.endsWith('#}')))\r\n expr = expr.substr(2, expr.length - 4);\r\n\r\n expr = parseExpressionWithFilters(expr);\r\n }\r\n else\r\n expr = expression;\r\n\r\n if (custommodelas && Array.isArray(custommodelas))\r\n return new ObjFunc(expression, new Function(['context', 'util', ...custommodelas].join(','), 'with (context) return ' + expr + ';'));\r\n else if (custommodelas)\r\n return new ObjFunc(expression, new Function('context', 'util', custommodelas, 'with (context) return ' + expr + ';'));\r\n else\r\n return new ObjFunc(expression, new Function('context', 'util', 'with (context) return ' + expr + ';'));\r\n }\r\n catch (e) {\r\n utils.warn(`Failed to compile expression: ${expr || expression}`, e);\r\n return null;\r\n }\r\n },\r\n compileObject(control, model, custommodelas) {\r\n return parseObjectWithUserExpressions(control, model, custommodelas);\r\n },\r\n compileDynamicObject(control, model) {\r\n const parsedObject = parseObjectWithUserExpressions(control, model);\r\n\r\n if (parsedObject instanceof ObjFunc)\r\n return parsedObject;\r\n else if (parsedObject === undefined || parsedObject === null)\r\n return parsedObject;\r\n else\r\n return new ObjProxy(parsedObject);\r\n },\r\n evaluate(compiledfunc, context, debug, haserrorfunc, throwerrors, custommodel, multiplecustommodels) {\r\n if (!compiledfunc || !compiledfunc.func || !(compiledfunc instanceof ObjFunc))\r\n return compiledfunc;\r\n\r\n if (debug)\r\n debugger;\r\n\r\n try {\r\n let ctx;\r\n if (context && ('_self' in context))\r\n ctx = context._self;\r\n else\r\n ctx = context;\r\n\r\n if (multiplecustommodels)\r\n return compiledfunc.func.apply(null, [ctx, careHelpfulFunctions, ...custommodel]);\r\n else\r\n return compiledfunc.func(ctx, careHelpfulFunctions, custommodel);\r\n }\r\n catch (e) {\r\n let msg = `Failed to evaluate - [${compiledfunc.code}] in ${context.name || context.Name || context.type || 'unnamed'} : ${e}`;\r\n if (haserrorfunc)\r\n msg += ' - attempt will be retried';\r\n\r\n utils.warn(msg, e);\r\n if (haserrorfunc)\r\n haserrorfunc();\r\n if (throwerrors)\r\n throw(e);\r\n return null;\r\n }\r\n },\r\n evaluateObject(compiledobj, context, custommodel, multiplecustommodels) {\r\n try {\r\n let ctx;\r\n if (context && ('_self' in context))\r\n ctx = context._self;\r\n else\r\n ctx = context;\r\n\r\n return evaluateUserExpression(compiledobj, ctx, custommodel, multiplecustommodels);\r\n }\r\n catch (e) {\r\n if (typeof compiledobj === 'object' && compiledobj instanceof ObjFunc)\r\n utils.warn('Failed to evaluate object - ' + compiledobj.code + ' : ' + e, e);\r\n else if (typeof compiledobj === 'object')\r\n utils.warn('Failed to evaluate object - ' + decompileObject(compiledobj) + ' : ' + e, e);\r\n\r\n return null;\r\n }\r\n },\r\n evaluateDynamicObject(compiledobj, context) {\r\n try {\r\n if (compiledobj instanceof ObjFunc)\r\n return evaluateUserExpression(compiledobj, context);\r\n else if (compiledobj instanceof ObjProxy) {\r\n compiledobj.handler.context = context;\r\n return compiledobj.myproxy();\r\n }\r\n else {\r\n utils.warn(`evaluateObject called on a non-compiled object`);\r\n return compiledobj;\r\n }\r\n }\r\n catch (e) {\r\n if (typeof compiledobj === 'object' && compiledobj instanceof ObjFunc)\r\n utils.warn('Failed to evaluate object - ' + compiledobj.code + ' : ' + e, e);\r\n else if (typeof compiledobj === 'object')\r\n utils.warn('Failed to evaluate object - ' + decompileObject(compiledobj) + ' : ' + e, e);\r\n\r\n return null;\r\n }\r\n },\r\n async compileActions(control, actions) {\r\n if (!actions)\r\n return [];\r\n\r\n const compiled_actions = [];\r\n for (let i = 0; i < actions.length; i++)\r\n compiled_actions.push(await utils.compileAction(control, actions[i]));\r\n return compiled_actions;\r\n },\r\n async compileAction(control, action) {\r\n try {\r\n //utils.log('[compileAction] Compiling ' + action.ActionType + '...');\r\n\r\n if (action.ActionData && action.ActionData.Debug && action.ActionData.Debug.BreakPoint)\r\n debugger;\r\n\r\n try {\r\n let actionExpn;\r\n if (action.ActionExpression)\r\n actionExpn = utils.compileExpression(control, action.ActionExpression);\r\n else\r\n actionExpn = null;\r\n\r\n let targetExpn;\r\n if (action.ActionBroadcastTarget)\r\n targetExpn = utils.compile(control, action.ActionBroadcastTarget);\r\n else\r\n targetExpn = null;\r\n\r\n // Declare a new object for the compiled action, and copy the existing action definition (top level deep, nested objects are shallow, which works well in this case)\r\n const action_compiled = { ...action };\r\n\r\n action.isCompiled = true;\r\n\r\n // The compiled property is a function that returns the actual compiled version, so Vue won't make it reactive.\r\n // When we go to execute the action, if we have only the original object, we can read the compiled version through\r\n // this function. No other top-level members of the original action will be modified, as this would trigger Vue.\r\n action.compiled = () => action_compiled;\r\n\r\n action_compiled.actionExpression = actionExpn;\r\n action_compiled.targetExpn = targetExpn;\r\n action_compiled.paramdatafunc = action.actiondatafunc;\r\n\r\n action_compiled.context = {\r\n $parent: control,\r\n $createElement: control.$createElement,\r\n $attrs: {},\r\n name: (action.ActionData ? action.ActionData.Name : null) || ('Action:' + action.ActionType),\r\n root: control.root,\r\n Parent: control,\r\n Root: control.Root,\r\n Base: control.Base,\r\n System: control.System,\r\n GlobalVars: control.GlobalVars,\r\n ...methods,\r\n ...filters,\r\n };\r\n\r\n if (action.ActionData && action.ActionData.Debug && action.ActionData.Debug.LogLevel && action.ActionData.Debug.LogMessage)\r\n action_compiled.logmessage = utils.compile(control, action.ActionData.Debug.LogMessage);\r\n\r\n if (action.ActionData && action.ActionData.Vars)\r\n action_compiled.vars = utils.compileObject(control, action.ActionData.Vars);\r\n\r\n // Moved to executeAction (ctx, i.e. context, must be the current context on each execution - known only at execute time :( so sad)\r\n //if (action.ActionData && action.ActionData.Javascript) {\r\n // const api = utils.apiWrapper;\r\n // const ctx = action_compiled.context; // control;\r\n // const chf = careHelpfulFunctions;\r\n // action_compiled.context.Javascript = eval(\"new (\" + action.ActionData.Javascript + \")(null, null, api, ctx, chf);\");\r\n\r\n // for (let key in action_compiled.context.Javascript)\r\n // if (typeof action_compiled.context.Javascript[key] === 'function')\r\n // action_compiled.context.Javascript[key] = action_compiled.context.Javascript[key].bind(action_compiled.context.Javascript);\r\n //}\r\n\r\n // Moved to executeAction\r\n //for (let key in action_compiled.context)\r\n // if (typeof action_compiled.context[key] === 'function')\r\n // action_compiled.context[key] = action_compiled.context[key].bind(action_compiled.context);\r\n\r\n //const args = [];\r\n //if (action.ActionData)\r\n // for (let key in action.ActionData)\r\n // if (!(typeof action.ActionData[key] === 'object') && !key.startsWith('$'))\r\n // args.push(`${key}:${action.ActionData[key]}`);\r\n\r\n //utils.log(`Compiling Action ${action.ActionType} ActionData:${JSON.stringify(args)}`);\r\n\r\n switch (action.ActionType) {\r\n case 'ReferenceUserAction':\r\n utils.log('[compileAction] Loading ReferenceUserAction: ' + action.ActionData.UserAction.ActionURL);\r\n\r\n //utils.log('[compileAction] ReferenceUserAction compiling ActionURL...');\r\n\r\n // Support interpolation for ActionURL\r\n const actionURL = utils.compile(control, action.ActionData.UserAction.ActionURL);\r\n\r\n try {\r\n const url = utils.evaluate(actionURL, control);\r\n\r\n let apiRequest = {\r\n method: 'GET',\r\n url: `Document/Action/${url}`,\r\n doNotUseWebsocket: true,\r\n flatten: true,\r\n cache: action.ActionData.UserAction.CacheAction\r\n };\r\n\r\n const res = await apiService.apiRequest(apiRequest);\r\n\r\n //utils.log(`[compileAction] ReferenceUserAction compiling new action ${res.ActionType}...`);\r\n\r\n await utils.compileAction(control, res);\r\n\r\n if (action.ActionData.UserAction.ActionData) {\r\n // Get the compiled action from the newly compiled version so that I can save essential data in it\r\n const resolved_compiled = res.compiled();\r\n\r\n // Build a function that will generate action data to be read as ParamByName(...)\r\n resolved_compiled.actiondatafunc = utils.compileObject(control, action.ActionData.UserAction.ActionData);\r\n resolved_compiled.preactionExpn = actionExpn;\r\n // Save ActionData so we can all it's SuccessActions, FailureActions, CompleteActions\r\n // resolved_compiled.originalActionData = action.ActionData;\r\n }\r\n action_compiled.referencedAction = res;\r\n }\r\n catch (e)\r\n {\r\n utils.log(`Compiling only URL for ReferencedUserAction URL:${action.ActionData.UserAction.ActionURL} - deferring to runtime`);\r\n\r\n action_compiled.referencedAction = null;\r\n action_compiled.actionURL = actionURL;\r\n }\r\n\r\n // Change the function that returns the compiled action to now return the resolved and compiled action\r\n // action.compiled = res.compiled;\r\n break;\r\n\r\n case 'Alert':\r\n action_compiled.message = utils.compile(control, action.ActionData.Message);\r\n break;\r\n\r\n case 'ApiRequest':\r\n action_compiled.method = utils.compile(control, action.ActionData.Method);\r\n action_compiled.url = utils.compile(control, action.ActionData.URL);\r\n action_compiled.data = action.ActionData.Data ? utils.compileObject(control, action.ActionData.Data) : null;\r\n\r\n if (action.ActionData.Headers && typeof action.ActionData.Headers === 'string') {\r\n // Interpolate all headers as an object\r\n action_compiled.headers_fn = utils.compileObject(control, action.ActionData.Headers);\r\n }\r\n else if (action.ActionData.Headers && Array.isArray(action.ActionData.Headers) && action.ActionData.Headers.length > 0) {\r\n // Interpolate headers one at a time\r\n action_compiled.headers_list = [];\r\n for (let i = 0; i < action.ActionData.Headers.length; i++) {\r\n const h = action.ActionData.Headers[i];\r\n const namefn = utils.compile(control, h.Name);\r\n const valuefn = utils.compile(control, h.Value);\r\n action_compiled.headers_list.push({\r\n namefn: namefn,\r\n valuefn: valuefn,\r\n });\r\n }\r\n }\r\n\r\n if (action.ActionData.APIProvider)\r\n action_compiled.apiprovider = utils.compileExpression(control, action.ActionData.APIProvider);\r\n\r\n if (action.ActionData.Toast && action.ActionData.Toast.SuccessToast && action.ActionData.Toast.SuccessToast.Title)\r\n action_compiled.ActionData.Toast.SuccessToast.title = utils.compile(control, action.ActionData.Toast.SuccessToast.Title);\r\n\r\n if (action.ActionData.Toast && action.ActionData.Toast.SuccessToast && action.ActionData.Toast.SuccessToast.Message)\r\n action_compiled.ActionData.Toast.SuccessToast.message = utils.compile(control, action.ActionData.Toast.SuccessToast.Message);\r\n\r\n if (action.ActionData.Toast && action.ActionData.Toast.ErrorToast && action.ActionData.Toast.ErrorToast.Title)\r\n action_compiled.ActionData.Toast.ErrorToast.title = utils.compile(control, action.ActionData.Toast.ErrorToast.Title);\r\n\r\n if (action.ActionData.Toast && action.ActionData.Toast.ErrorToast && action.ActionData.Toast.ErrorToast.Message)\r\n action_compiled.ActionData.Toast.ErrorToast.message = utils.compile(control, action.ActionData.Toast.ErrorToast.Message);\r\n\r\n break;\r\n\r\n case 'Badge':\r\n action_compiled.type = utils.compile(control, action.ActionData.Type);\r\n action_compiled.key = utils.compile(control, action.ActionData.Key);\r\n action_compiled.value = utils.compile(control, action.ActionData.Value);\r\n break;\r\n\r\n case 'OpenChildWindow':\r\n if (action.ActionData.TargetWindowName)\r\n action_compiled.targetWindowName = utils.compile(control, action.ActionData.TargetWindowName);\r\n \r\n if (action.ActionData.URL)\r\n action_compiled.URL = utils.compile(control, action.ActionData.URL);\r\n\r\n if (action.ActionData.Specs)\r\n action_compiled.specs = utils.compile(control, action.ActionData.Specs);\r\n\r\n break;\r\n\r\n case 'SetValue':\r\n let value;\r\n if (action.ActionData.Value && (((typeof action.ActionData.Value === 'string') && action.ActionData.Value.substr(0, 2) === '{#') || typeof action.ActionData.Value === 'object'))\r\n value = utils.compileObject(control, action.ActionData.Value);\r\n else\r\n value = utils.compile(control, action.ActionData.Value);\r\n\r\n //Ex: transforms\r\n // Base.ChildControlByName('resultform',true).Model.data = value\r\n //into\r\n // Vue.set(Base.ChildControlByName('resultform',true).Model, 'data', value)\r\n\r\n //Ex: transforms\r\n // VarByName('BLegHSMs')[Input.HSM.UniqueID] = value\r\n //into\r\n // Vue.set(VarByName('BLegHSMs'), Input.HSM.UniqueID, value)\r\n\r\n let setvalue = convertSetValueToVueSet(action.ActionData.Field, 'value');\r\n let code = `with (context) { ${setvalue}; }`;\r\n\r\n action_compiled.expression = { code: code, func: new Function('value', 'context', 'util', 'vue', code) };\r\n action_compiled.value = value;\r\n break;\r\n\r\n case 'DeleteValue':\r\n if (action.ActionData.IsArray) {\r\n const index = utils.compileExpression(control, action.ActionData.ArrayIndex);\r\n const code = `with (context) {${action.ActionData.Array}.splice($$deleteValueIndex,1); }`;\r\n const expr = new Function('$$deleteValueIndex', 'context', 'util', 'Vue', code);\r\n\r\n action_compiled.propname = index;\r\n action_compiled.expr = { code: code, func: expr };\r\n }\r\n else {\r\n const propname = utils.compile(control, action.ActionData.PropertyName);\r\n const code = `with (context) { Vue.delete(${action.ActionData.Object}, $$deletePropName); }`;\r\n const expr = new Function('$$deletePropName', 'context', 'util', 'Vue', code);\r\n\r\n action_compiled.propname = propname;\r\n action_compiled.expr = { code: code, func: expr };\r\n }\r\n break;\r\n\r\n case \"EvaluateExpression\":\r\n action_compiled.expression = utils.compileExpression(control, action.ActionData.Expression);\r\n break;\r\n\r\n case 'IfElse':\r\n for (let i = 0; i < action_compiled.ActionData.Expressions.length; i++) {\r\n const e = action_compiled.ActionData.Expressions[i];\r\n if (e.Expression)\r\n e.expression = utils.compileExpression(control, e.Expression);\r\n }\r\n break;\r\n\r\n case 'Close':\r\n let dialogResult;\r\n if (action.ActionData && action.ActionData.DialogResult !== undefined)\r\n dialogResult = utils.compileObject(control, action.ActionData.DialogResult);\r\n\r\n action_compiled.dialogResult = dialogResult;\r\n break;\r\n\r\n case 'ForEach':\r\n let source;\r\n if (action.ActionData && action.ActionData.Source !== undefined)\r\n source = utils.compileObject(control, action.ActionData.Source);\r\n\r\n action_compiled.source = source;\r\n break;\r\n\r\n case 'Tab':\r\n if (action.ActionData.TabID)\r\n action_compiled.tabID = utils.compile(control, action.ActionData.TabID);\r\n\r\n if (action.ActionData.TabTitle)\r\n action_compiled.tabTitle = utils.compile(control, action.ActionData.TabTitle);\r\n\r\n if (action.ActionData.ControlData && action.ActionData.ControlData.Vars)\r\n action_compiled.varsobj = utils.compileObject(control, action.ActionData.ControlData.Vars);\r\n\r\n break;\r\n\r\n case 'ReplaceContent':\r\n action_compiled.controlData = { ...action.ActionData.ControlData };\r\n\r\n if (action.ActionData.ControlData.Vars)\r\n action_compiled.varsexpn = utils.compileObject(control, action.ActionData.ControlData.Vars);\r\n\r\n if (action.ActionData.ControlData.BreadCrumb && action.ActionData.ControlData.BreadCrumb.Text)\r\n action_compiled.breadcrumbtextexpn = utils.compile(control, action.ActionData.ControlData.BreadCrumb.Text);\r\n\r\n break;\r\n\r\n case 'DisplayPopup':\r\n if (action.ActionData.Title)\r\n action_compiled.title = utils.compile(control, action.ActionData.Title);\r\n\r\n if (action.ActionData.Body)\r\n action_compiled.body = utils.compile(control, action.ActionData.Body);\r\n\r\n if (action.ActionData.Timeout)\r\n action_compiled.timeout = utils.compileExpression(control, action.ActionData.Timeout);\r\n break;\r\n\r\n case 'ClosePopup':\r\n if (action.ActionData.PopupName)\r\n action_compiled.popupname = utils.compile(control, action.ActionData.PopupName);\r\n break;\r\n\r\n case 'DisplayConfirmModal':\r\n if (action.ActionData.Title)\r\n action_compiled.title = utils.compile(control, action.ActionData.Title);\r\n\r\n if (action.ActionData.Message)\r\n action_compiled.message = utils.compile(control, action.ActionData.Message);\r\n\r\n if (action.ActionData.OkayButtonText)\r\n action_compiled.okaybuttontext = utils.compile(control, action.ActionData.OkayButtonText);\r\n\r\n if (action.ActionData.CancelButtonText)\r\n action_compiled.cancelbuttontext = utils.compile(control, action.ActionData.CancelButtonText);\r\n break;\r\n\r\n case 'LogEntry':\r\n if (action.ActionData.Message)\r\n action_compiled.message = utils.compile(control, action.ActionData.Message);\r\n break;\r\n\r\n case 'RenameTab':\r\n if (action.ActionData.TabTitle)\r\n action_compiled.tabtitle = utils.compile(control, action.ActionData.TabTitle);\r\n break;\r\n\r\n case 'Broadcast':\r\n if (action.ActionData.Message)\r\n action_compiled.message = utils.compile(control, action.ActionData.Message);\r\n\r\n if (action.ActionData.MessageData)\r\n action_compiled.messagedata = utils.compileObject(control, action.ActionData.MessageData);\r\n break;\r\n\r\n case 'SelectMenuItem':\r\n if (action.ActionData.MenuItemName)\r\n action_compiled.menuname = utils.compile(control, action.ActionData.MenuItemName);\r\n break;\r\n\r\n case 'DisplayFeedback':\r\n utils.debug(`Compiling DisplayFeedback with ${action.ActionData.Messages?.length || 0} messages`);\r\n if (typeof action.ActionData.Messages === 'object' && Array.isArray(action.ActionData.Messages)) {\r\n action_compiled.messages = [];\r\n for (let i = 0; i < action.ActionData.Messages.length; i++) {\r\n const m = action.ActionData.Messages[i];\r\n if (m.Message)\r\n action_compiled.messages.push({\r\n messagetype: m.MessageType || 'Info',\r\n message: utils.compile(control, m.Message)\r\n });\r\n }\r\n }\r\n else if (typeof action.ActionData.Messages === 'string') {\r\n // Interpolated\r\n action_compiled.messages_expn = utils.compileObject(action.context, action.ActionData.Messages);\r\n }\r\n\r\n if (action.ActionData.MessageGroup)\r\n action_compiled.messagegroup = utils.compile(control, action.ActionData.MessageGroup);\r\n\r\n break;\r\n\r\n case 'DisplayNotificationHeader':\r\n case 'RemoveNotificationHeader':\r\n if (action.ActionData.NotificationHeaderGroup)\r\n action_compiled.groupexpn = utils.compile(control, control.Translate(action.ActionData.NotificationHeaderGroup));\r\n break;\r\n\r\n case 'DisplayDesktopNotify':\r\n action_compiled.titleexpn = utils.compile(control, control.Translate(action.ActionData.Title));\r\n action_compiled.bodyexpn = utils.compile(control, control.Translate(action.ActionData.Body));\r\n action_compiled.firstActionTitleexpn = utils.compile(control, control.Translate(action.ActionData.FirstActionTitle));\r\n action_compiled.secondActionTitleexpn = utils.compile(control, control.Translate(action.ActionData.SecondActionTitle));\r\n\r\n action_compiled.icoexpnn = utils.compile(control, action.ActionData.Icon);\r\n action_compiled.firstActionIconexpn = utils.compile(control, action.ActionData.FirstActionIcon);\r\n action_compiled.secondActionIconexpn = utils.compile(control, action.ActionData.SecondActionIcon);\r\n action_compiled.thecontextexpn = utils.compile(control, action.ActionData.Context);\r\n break;\r\n\r\n case 'CloseDesktopNotify':\r\n action_compiled.desktopNotifyName = utils.compile(control, action.ActionData.DesktopNotifyName);\r\n action_compiled.desktopNotifyId = utils.compile(control, action.ActionData.DesktopNotifyId);\r\n break;\r\n\r\n case 'UserIdleReset':\r\n action_compiled.timeoutMinutes = utils.compile(control, action.ActionData.TimoutMinutes);\r\n action_compiled.optIn = utils.compile(control, action.ActionData.OptIn);\r\n break;\r\n\r\n case 'UserIdleEnable':\r\n action_compiled.enable = utils.compile(control, action.ActionData.Enable);\r\n break;\r\n\r\n case 'OpenChildWindowWithToken':\r\n action_compiled.targetWindowName = utils.compile(control, action.ActionData.TargetWindowName);\r\n action_compiled.url = utils.compile(control, action.ActionData.URL);\r\n action_compiled.specs = utils.compile(control, action.ActionData.Specs);\r\n action_compiled.tokenSource = utils.compile(control, action.ActionData.TokenSource);\r\n action_compiled.windowTitle = utils.compile(control, action.ActionData.WindowTitle);\r\n action_compiled.titleBarName = utils.compile(control, action.ActionData.TitleBarName);\r\n action_compiled.doNotInheritSessionStorage = utils.compile(control, action.ActionData.DoNotInheritSessionStorage);\r\n action_compiled.accessToken = utils.compile(control, action.ActionData.AccessToken);\r\n action_compiled.refreshToken = utils.compile(control, action.ActionData.RefreshToken);\r\n break;\r\n\r\n case 'HSMStartServerEventListener':\r\n action_compiled.sessionid = utils.compile(this, action.ActionData.SessionID);\r\n action_compiled.eventname = utils.compile(this, action.ActionData.EventName);\r\n break;\r\n\r\n case 'HSMStopServerEventListener':\r\n action_compiled.sessionid = utils.compile(this, action.ActionData.SessionID);\r\n action_compiled.eventname = utils.compile(this, action.ActionData.EventName);\r\n break;\r\n\r\n case 'HSMAddChildHSM':\r\n action_compiled.newid = utils.compile(this, action.ActionData.NewId);\r\n action_compiled.initialstatepath = utils.compile(this, action.ActionData.InitialStatePath);\r\n action_compiled.initialstatedata = utils.compile(this, action.ActionData.InitialStateData);\r\n break;\r\n\r\n case 'HSMRemoveChildHSM':\r\n action_compiled.uniqueid = utils.compile(this, action.ActionData.UniqueID);\r\n break;\r\n\r\n case 'HSMEvent':\r\n action_compiled.eventName = utils.compile(this, action.ActionData.EventName);\r\n if (action.ActionData.Data)\r\n action_compiled.data = utils.compileObject(this, action.ActionData.Data);\r\n break;\r\n\r\n case 'HSMSetNextState':\r\n action_compiled.nextstatepath = utils.compile(this, action.ActionData.NextStatePath);\r\n if (action.ActionData.Data)\r\n action_compiled.data = utils.compileObject(this, action.ActionData.Data);\r\n break;\r\n\r\n case 'SetLanguage':\r\n action_compiled.language = utils.compile(this, action.ActionData.Language);\r\n break;\r\n\r\n case 'FileDownload':\r\n action_compiled.fileURL = utils.compile(this, action.ActionData.FileURL);\r\n action_compiled.target = utils.compile(this, action.ActionData.Target);\r\n action_compiled.filename = utils.compile(this, action.ActionData.FileName);\r\n break;\r\n\r\n case 'EmitControlEvent':\r\n action_compiled.eventName = utils.compile(this, action.ActionData.EventName);\r\n action_compiled.input = utils.compileObject(this, action.ActionData.Input);\r\n break;\r\n\r\n case 'RunControlCommand':\r\n action_compiled.controlName = utils.compile(this, action.ActionData.ControlName);\r\n action_compiled.commandName = utils.compile(this, action.ActionData.CommandName);\r\n action_compiled.input = utils.compileObject(this, action.ActionData.Input);\r\n break;\r\n\r\n case 'RunActions':\r\n action_compiled.actions = utils.compileObject(this, action.ActionData.Actions);\r\n if (action.ActionData.Context)\r\n action_compiled.newcontext = utils.compileObject(this, action.ActionData.Context);\r\n break;\r\n\r\n case 'OpenDocumentEditor':\r\n action_compiled.docName = utils.compile(this, action.ActionData.DocumentName);\r\n action_compiled.docUrl = utils.compile(this, action.ActionData.DocumentURL);\r\n action_compiled.docType = utils.compile(this, action.ActionData.DocumentType);\r\n action_compiled.defaultFolder = utils.compile(this, action.ActionData.DefaultFolder);\r\n action_compiled.menuId = utils.compile(this, action.ActionData.MenuItemId);\r\n action_compiled.getDocumentBy = utils.compile(this, action.ActionData.GetDocumentBy);\r\n break;\r\n\r\n case 'Message':\r\n action_compiled.message = utils.compile(this, action.ActionData.Message);\r\n action_compiled.messagedata = utils.compileObject(this, action.ActionData.MessageData);\r\n break;\r\n\r\n }\r\n return action;\r\n }\r\n finally {\r\n //utils.log('[compileAction] Compiling ' + action.ActionType + ' complete');\r\n }\r\n }\r\n catch (e) {\r\n const args = [];\r\n if (action.ActionData && (typeof action.ActionData === 'object'))\r\n for (let key in action.ActionData)\r\n if (!(typeof action.ActionData[key] === 'object') && !key.startsWith('$'))\r\n args.push(`${key}:${action.ActionData[key]}`);\r\n\r\n utils.error(`compileAction(action.ActionType:${action.ActionType} ActionData:${JSON.stringify(args)}) failed: ${e}`, e);\r\n return null;\r\n }\r\n },\r\n async executeAndCompileAllActions(actions, input, context, controlscope, scopeitems) {\r\n if (actions)\r\n for (var i = 0; i < actions.length; i++) {\r\n const a = actions[i];\r\n if (!a.isCompiled || this.forceRecompile(a))\r\n await utils.compileAction(context, a);\r\n\r\n //utils.document_cache.actionsInProgress[context.Location + '-' + a.ActionType] = a;\r\n await utils.executeAction(a, input, context, controlscope, scopeitems);\r\n //delete utils.document_cache.actionsInProgress[context.Location + '-' + a.ActionType];\r\n }\r\n },\r\n async executeAndCompileAction(action, input, context, controlscope, scopeitems) {\r\n if (!action.isCompiled || this.forceRecompile(action))\r\n await utils.compileAction(context, action);\r\n\r\n return await utils.executeAction(action, input, context, controlscope, scopeitems);\r\n },\r\n executeAction(action, input, context, controlscope, scopeitems) {\r\n if (!action.isCompiled)\r\n throw `executeAction attempted to run an action that hasn't been compiled yet: ActionType:${action.ActionType}`;\r\n\r\n const a = action.compiled();\r\n\r\n if (a.ActionData && a.ActionData.Debug && a.ActionData.Debug.BreakPoint)\r\n debugger;\r\n\r\n a.context.$parent = context;\r\n a.context.Input = input;\r\n a.context.Base = context.Base;\r\n a.context.Self = a.context;\r\n a.context.type = a.ActionType;\r\n\r\n a.context.root = context.root;\r\n a.context.Parent = context;\r\n a.context.Root = context.Root;\r\n\r\n a.context.Vars = a.vars ? utils.evaluateObject(a.vars, a.context) : {};\r\n a.context.controlscope = controlscope || context.controlscope;\r\n a.context.scopeitems = scopeitems || context.scopeitems;\r\n a.context.$children = context.$children;\r\n\r\n a.context.Control = a.context.scopeitems; // controlscope || context.controlscope;\r\n a.context.Params = controlscope || context.controlscope;\r\n\r\n if (a.actiondatafunc)\r\n a.context.paramData = utils.evaluateObject(a.actiondatafunc, context);\r\n\r\n if (a.ActionData && a.ActionData.Javascript) {\r\n const api = apiService;\r\n const ctx = a.context; // control;\r\n const chf = careHelpfulFunctions;\r\n a.context.Javascript = eval(\"new (\" + a.ActionData.Javascript + \")(null, null, api, ctx, chf);\");\r\n\r\n for (let key in a.context.Javascript)\r\n if (typeof a.context.Javascript[key] === 'function')\r\n a.context.Javascript[key] = a.context.Javascript[key].bind(a.context.Javascript);\r\n }\r\n\r\n for (let key in a.context)\r\n if (typeof a.context[key] === 'function')\r\n a.context[key] = a.context[key].bind(a.context);\r\n\r\n const args = [];\r\n if (a.ActionData)\r\n for (let key in a.ActionData)\r\n if (!(typeof a.ActionData[key] === 'object') && !key.startsWith('$'))\r\n args.push(`${key}:${a.ActionData[key]}`);\r\n\r\n if (a.actionExpression && !utils.evaluate(a.actionExpression, a.context)) {\r\n //utils.log(` *** Skipped invoking Action ${a.ActionType} ActionExpression:'${a.ActionExpression}'==false ActionData:${JSON.stringify(args)}`);\r\n return Promise.resolve();\r\n }\r\n else if (a.preactionExpn && !utils.evaluate(a.preactionExpn, a.context)) {\r\n //utils.log(` *** Skipped invoking Action ${a.ActionType} Pre-ActionExpression:'${a.preactionExpn.code}'==false ActionData:${JSON.stringify(args)}`);\r\n return Promise.resolve();\r\n }\r\n\r\n if (a.logmessage)\r\n try {\r\n switch (a.ActionData.Debug.LogLevel) {\r\n case 'Info': utils.log(utils.evaluate(a.logmessage, a.context)); break;\r\n case 'Debug': utils.debug(utils.evaluate(a.logmessage, a.context)); break;\r\n case 'Error': utils.error(utils.evaluate(a.logmessage, a.context)); break;\r\n }\r\n }\r\n catch (e) { }\r\n\r\n ////** Angular version uses CareGlobals.js which defines all actions and their default value **////\r\n if (!a.ActionBroadcastDirection) {\r\n if (a.ActionType in actionDefaults)\r\n a.ActionBroadcastDirection = actionDefaults[a.ActionType].defaultBroadcastDirection;\r\n }\r\n\r\n if (a.ActionBroadcastDirection == \"GlobalNoTarget_BaseContainerChildrenWithTarget\")\r\n a.ActionBroadcastDirection = a.ActionBroadcastTarget ? \"BaseContainerChildren\" : \"Global\";\r\n\r\n let targetValue;\r\n if (a.targetExpn)\r\n targetValue = utils.evaluate(a.targetExpn, a.context);\r\n\r\n let target;\r\n if (a.ActionBroadcastDirection) {\r\n switch (a.ActionBroadcastDirection) {\r\n case 'Parent':\r\n target = a.context.FindParentWithEventListener(`Action-${a.ActionType}:${targetValue}`);\r\n if (target)\r\n return utils.invokeActionEvent(target, `Action-${a.ActionType}:${targetValue}`, a, args);\r\n\r\n target = a.context.FindParentWithEventListener(`Action-${a.ActionType}`, targetValue);\r\n if (target)\r\n return utils.invokeActionEvent(target, `Action-${a.ActionType}`, a, args);\r\n else\r\n return Promise.resolve();\r\n\r\n case 'BaseContainerChildren':\r\n target = context.Base.FindChildWithEventListener(`Action-${a.ActionType}:${targetValue}`);\r\n if (target)\r\n return utils.invokeActionEvent(target, `Action-${a.ActionType}:${targetValue}`, a, args);\r\n\r\n target = context.Base.FindChildWithEventListener(`Action-${a.ActionType}`, targetValue);\r\n if (target)\r\n return utils.invokeActionEvent(target, `Action-${a.ActionType}`, a, args);\r\n else\r\n return Promise.resolve();\r\n\r\n case 'Children':\r\n target = a.context.FindChildWithEventListener(`Action-${a.ActionType}:${targetValue}`);\r\n if (target)\r\n return utils.invokeActionEvent(target, `Action-${a.ActionType}:${targetValue}`, a, args);\r\n\r\n target = a.context.FindChildWithEventListener(`Action-${a.ActionType}`);\r\n if (target)\r\n return utils.invokeActionEvent(target, `Action-${a.ActionType}`, a, args);\r\n else\r\n return Promise.resolve();\r\n\r\n case 'Global':\r\n return utils.invokeActionBroadcastGlobal(a, args, targetValue);\r\n }\r\n }\r\n else\r\n return utils.invokeActionBroadcastGlobal(a, args);\r\n },\r\n invokeActionEvent(target, msg, a, args) {\r\n //let msg = `Action-${a.ActionType}`;\r\n\r\n if (a.RunAsync) {\r\n //utils.log(`*** Invoking Action ${a.ActionType} ASYNC ActionData:${JSON.stringify(args)}`);\r\n\r\n a.FinishFunc = function (success, result) { };\r\n\r\n //utils.log(`executeAction emitting to ${target.name || target.type} ${a.ActionType} async...`);\r\n\r\n target.$emit(msg, a);\r\n\r\n return Promise.resolve();\r\n }\r\n\r\n //utils.log(`*** Invoking Action ${a.ActionType} ActionData:${JSON.stringify(args)}...`);\r\n\r\n let resolver, rejecter;\r\n\r\n const promise = new Promise(function (resolve, reject) {\r\n resolver = resolve;\r\n rejecter = reject;\r\n });\r\n\r\n // Send event and then use a Promise to wait for the response, this allows the caller of executeAction to use await.\r\n a.FinishFunc = function (success, result) {\r\n if (success) {\r\n // utils.log(`*** Succeeded invoking Action ${a.ActionType} ActionData:${JSON.stringify(args)}`);\r\n\r\n resolver(result);\r\n }\r\n else {\r\n utils.log(`*** Failed invoking Action ${a.ActionType} ActionData:${JSON.stringify(args)}`);\r\n\r\n rejecter(result);\r\n }\r\n };\r\n // Add these for manual action completion\r\n a.ActionPromiseResolve = function (result) {\r\n //utils.log(`*** Succeeded invoking Action ${a.ActionType} ActionData:${JSON.stringify(args)}`);\r\n resolver(result);\r\n };\r\n a.ActionPromiseReject = function (result) {\r\n utils.log(`*** Failed invoking Action ${a.ActionType} ActionData:${JSON.stringify(args)}`);\r\n rejecter(result);\r\n };\r\n\r\n //utils.log(`executeAction emitting to ${target.name || target.type} ${a.ActionType}...`);\r\n target.$emit(msg, a);\r\n\r\n return promise;\r\n },\r\n invokeActionBroadcastGlobal(a, args, target) {\r\n let msg = `Action-${a.ActionType}`;\r\n if (target)\r\n msg += `:${target}`;\r\n\r\n if (a.RunAsync) {\r\n //utils.log(`*** Invoking Action Global broadcast ${a.ActionType} ASYNC ActionData:${JSON.stringify(args)}`);\r\n\r\n a.FinishFunc = function (success, result) { };\r\n\r\n //utils.log(`executeAction emitting ${a.ActionType} async...`);\r\n EventBus.$emit(msg, a);\r\n\r\n return Promise.resolve();\r\n }\r\n\r\n //utils.log(`*** Invoking Action Global broadcast ${a.ActionType} ActionData:${JSON.stringify(args)}...`);\r\n\r\n let resolver, rejecter;\r\n\r\n const promise = new Promise(function (resolve, reject) {\r\n resolver = resolve;\r\n rejecter = reject;\r\n });\r\n\r\n // Send event and then use a Promise to wait for the response, this allows the caller of executeAction to use await.\r\n a.FinishFunc = function (success, result) {\r\n if (success) {\r\n //utils.log(`*** Succeeded invoking Action Global broadcast ${a.ActionType} ActionData:${JSON.stringify(args)}`);\r\n\r\n resolver(result);\r\n }\r\n else {\r\n //utils.log(`*** Failed invoking Action Global broadcast ${a.ActionType} ActionData:${JSON.stringify(args)}`);\r\n\r\n rejecter(result);\r\n }\r\n };\r\n\r\n EventBus.$emit(msg, a);\r\n\r\n return promise;\r\n },\r\n async forceRecompile(action)\r\n {\r\n const expression = action.ActionData?.UserAction?.CacheAction;\r\n \r\n if(expression !== null && expression !== undefined)\r\n {\r\n return expression === false || expression === 'false';\r\n }\r\n return false;\r\n },\r\n async success(action, input) {\r\n //utils.log(`Action:${action.ActionType} success`);\r\n\r\n if (action.ActionData.SuccessActions)\r\n for (let i = 0; i < action.ActionData.SuccessActions.length; i++) {\r\n const a = action.ActionData.SuccessActions[i];\r\n try {\r\n if (!a.isCompiled || this.forceRecompile(a)) {\r\n await utils.compileAction(action.context, a);\r\n }\r\n\r\n await utils.executeAction(a, input, action.context);\r\n }\r\n catch (e) {\r\n utils.warn('executeAction ' + a.ActionType + ' failed: ' + e);\r\n }\r\n }\r\n },\r\n async failure(action, input) {\r\n //utils.log(`Action:${action.ActionType} failure`);\r\n\r\n if (action.ActionData.FailureActions) {\r\n for (let i = 0; i < action.ActionData.FailureActions.length; i++) {\r\n const a = action.ActionData.FailureActions[i];\r\n try {\r\n if (!a.isCompiled || this.forceRecompile(a)) {\r\n await utils.compileAction(action.context, a);\r\n }\r\n\r\n await utils.executeAction(a, input, action.context);\r\n }\r\n catch (e) {\r\n utils.warn('executeAction ' + a.ActionType + ' failed: ' + e);\r\n }\r\n }\r\n }\r\n },\r\n async complete(action, input) {\r\n //utils.log(`Action:${action.ActionType} complete`);\r\n\r\n if (action.ActionData.CompleteActions)\r\n for (let i = 0; i < action.ActionData.CompleteActions.length; i++) {\r\n const a = action.ActionData.CompleteActions[i];\r\n try {\r\n if (!a.isCompiled || this.forceRecompile(a)) {\r\n await utils.compileAction(action.context, a);\r\n }\r\n\r\n await utils.executeAction(a, input, action.context);\r\n }\r\n catch (e) {\r\n utils.warn('executeAction ' + a.ActionType + ' failed: ' + e);\r\n }\r\n }\r\n },\r\n findNodePath(path, parent, node) {\r\n if (parent == node)\r\n return true;\r\n\r\n if (path.length > 60)\r\n throw 'findNodePath is too deep. > 60; ' + JSON.stringify(path.map((a) => a.name || a.index));\r\n\r\n const p = path.map((a) => a.name || a.index);\r\n\r\n if (Array.isArray(parent)) {\r\n for (let i = 0; i < parent.length; i++) {\r\n const item = parent[i];\r\n\r\n if (typeof item === 'object' && !Array.isArray(item)) {\r\n path.push({ index: i, node: parent, childIsArray: Array.isArray(item) });\r\n\r\n if (utils.findNodePath(path, item, node))\r\n return true;\r\n\r\n path.pop();\r\n }\r\n }\r\n }\r\n else {\r\n for (let key in parent) {\r\n if (key.substr(0, 1) === '$' || key === 'anyOf' || key === 'allOf' || key === 'oneOf' || key === 'elm') continue;\r\n if (key === '$schema')\r\n // Never traverse a schema - they are recusive\r\n return false;\r\n\r\n const item = parent[key];\r\n\r\n if (typeof item === 'object') {\r\n path.push({ name: key, node: parent, childIsArray: Array.isArray(item) });\r\n\r\n if (utils.findNodePath(path, item, node))\r\n return true;\r\n\r\n path.pop();\r\n }\r\n }\r\n }\r\n return false;\r\n },\r\n async setSchemaBootstrap(s) {\r\n await cache.setBoostrap(s);\r\n },\r\n getDynamicComponent(h, control, userControlName) {\r\n let DynamicControl;\r\n if (control.PrimitiveControl === false) {\r\n // Handler for user control\r\n DynamicControl = userControlName || 'dynamic-user-control';\r\n }\r\n else\r\n switch (control.ControlType) {\r\n case 'ExperimentalTab': DynamicControl = 'experimental-tab'; break;\r\n\r\n case 'Accordion': DynamicControl = 'accordion'; break;\r\n\t\t\t\tcase 'ACDDirectButton': DynamicControl = 'acd-direct-button'; break;\r\n case 'ActionService': DynamicControl = 'action-service'; break;\r\n case 'AdvancedHistory': DynamicControl = 'advanced-history'; break;\r\n case 'AdvancedReports': DynamicControl = 'advanced-reports'; break;\r\n case 'AgGrid': DynamicControl = 'cc-ag-grid'; break;\r\n case 'ApexGeneralChart': DynamicControl = 'apex-general-chart'; break;\r\n case 'AppleButton': DynamicControl = 'apple-button'; break;\r\n case 'AudioPlayer': DynamicControl = 'audio-player'; break;\r\n case 'AutoComplete': DynamicControl = 'auto-complete'; break;\r\n case 'Avatar': DynamicControl = 'basic-avatar'; break;\r\n case 'BadgeHandler': DynamicControl = 'badge-handler'; break;\r\n case 'BarChart': DynamicControl = 'bar-chart'; break;\r\n case 'BasicButton': DynamicControl = 'basic-button'; break;\r\n case 'BasicFileUpload': DynamicControl = 'basic-file-upload'; break;\r\n case 'BasicForm': DynamicControl = 'basic-form'; break;\r\n case 'BasicGrid': DynamicControl = 'basic-grid'; break;\r\n case 'BasicInput': DynamicControl = 'basic-input'; break;\r\n case 'BasicLink': DynamicControl = 'basic-link'; break;\r\n case 'BasicPopupMenu': DynamicControl = 'basic-popup-menu'; break;\r\n case 'BasicSwitch': DynamicControl = 'basic-switch'; break;\r\n case 'BasicTab': DynamicControl = 'basic-tab'; break;\r\n case 'BasicToggle': DynamicControl = 'basic-toggle'; break;\r\n case 'BasicTree': DynamicControl = 'basic-tree'; break;\r\n case 'BroadcastListener': DynamicControl = 'broadcast-listener'; break;\r\n case 'CalendarPicker': DynamicControl = 'calendar-picker'; break;\r\n case 'CardList': DynamicControl = 'card-list'; break;\r\n case 'CheetahGrid': DynamicControl = 'cc-cheetah-grid'; break;\r\n case 'CircleChart': DynamicControl = 'circle-chart'; break;\r\n case 'ComboBox': DynamicControl = 'combo-box'; break;\r\n case 'ControlContainer': DynamicControl = 'stack-vertical'; break;\r\n case 'ControlDesigner': DynamicControl = 'control-designer'; break;\r\n case 'ConversationView': DynamicControl = 'conversation-view'; break;\r\n case 'CssStyle': DynamicControl = 'css-style'; break;\r\n case 'Dash': DynamicControl = 'dash'; break;\r\n case 'DateRangePicker': DynamicControl = 'date-range-picker'; break;\r\n case 'DebugHsmLog': DynamicControl = 'debug-hsm-log'; break;\r\n case 'DesktopNotify': DynamicControl = 'desktop-notify'; break;\r\n case 'DocumentBootstrap': DynamicControl = 'document-bootstrap'; break;\r\n case 'DropdownList': DynamicControl = 'dropdown-list'; break;\r\n case 'DropdownMultiSelect': DynamicControl = 'dropdown-multi-select'; break;\r\n case 'DynamicControlContainer': DynamicControl = 'dynamic-control-container'; break;\r\n case 'DynamicMenuList': DynamicControl = 'dynamic-menu-list'; break;\r\n case 'DynamicTab': DynamicControl = 'dynamic-tab'; break;\r\n case 'DynamicTabContent': DynamicControl = 'dynamic-tab-content'; break;\r\n case 'DynamicTree': DynamicControl = 'dynamic-tree'; break;\r\n case 'FastGrid': DynamicControl = 'fast-grid'; break;\r\n case 'FileDiff': DynamicControl = 'file-diff'; break;\r\n case 'FlowChart': DynamicControl = 'flow-chart'; break;\r\n case 'ForEach': DynamicControl = 'for-each'; break;\r\n case 'ForEachSimple': DynamicControl = 'for-each-simple'; break;\r\n case 'GoogleButton': DynamicControl = 'google-button-v2'; break;\r\n case 'HeaderBar': DynamicControl = 'stack-horizontal'; break;\r\n case 'HorizontalLayout': DynamicControl = 'stack-vertical'; break;\r\n case 'HsmNew': DynamicControl = 'hsm-new'; break;\r\n case 'Hsm':\r\n //if (control.ControlData.Name == 'myhsm')\r\n DynamicControl = 'hsm-new';\r\n //else\r\n // DynamicControl = 'hsm';\r\n break;\r\n case 'HtmlEditor': DynamicControl = 'html-editor'; break;\r\n case 'HtmlTable': DynamicControl = 'html-table'; break;\r\n case 'Html': DynamicControl = 'html-component'; break;\r\n case 'Icon': DynamicControl = 'basic-icon'; break;\r\n case 'IconPopupMenu': DynamicControl = 'icon-popup-menu'; break;\r\n case 'IconStack': DynamicControl = 'icon-stack'; break;\r\n case 'IFrame': DynamicControl = 'iframe-component'; break;\r\n case 'Image': DynamicControl = 'image-control'; break;\r\n case 'InfiniteConversationView': DynamicControl = 'infinite-conversation-view'; break;\r\n case 'InfiniteGrid': DynamicControl = 'infinite-grid'; break;\r\n case 'Interval': DynamicControl = 'interval'; break;\r\n case 'Javascript': DynamicControl = 'javascript'; break;\r\n case 'Layout':\r\n case 'LayoutStack':\r\n // Legacy stack container\r\n switch (control.ControlData.Orientation) {\r\n case 'Vertical': DynamicControl = 'stack-vertical'; break;\r\n case 'Horizontal': DynamicControl = 'stack-horizontal'; break;\r\n }\r\n break;\r\n case 'LayoutTile': DynamicControl = 'layout-tile'; break;\r\n case 'LayoutWrap': DynamicControl = 'stack-vertical'; break;\r\n //case 'MicAnalyzer': DynamicControl = 'mic-analyzer'; break;\r\n case 'LineChart': DynamicControl = 'line-chart'; break;\r\n case 'MediaApproval': DynamicControl = 'media-approval'; break;\r\n case 'MenuFlowChart': DynamicControl = 'menu-flow-chart'; break;\r\n case 'MultiSelectList': DynamicControl = 'multiselectlist'; break;\r\n case 'MultiSelectListItem': DynamicControl = 'multiselectlistitem'; break;\r\n case 'NavigationDrawer': DynamicControl = 'navigation-drawer'; break;\r\n case 'Notification': DynamicControl = 'notification'; break;\r\n case 'PopupMenuButton': DynamicControl = 'popup-menu-button'; break;\r\n case 'ProgressBar': DynamicControl = 'cc-progress-bar'; break;\r\n case 'ProgressCircle': DynamicControl = 'cc-progress-circle'; break;\r\n case 'RealTimeGrid': DynamicControl = 'real-time-grid'; break;\r\n case 'RealTimeWidgetListener': DynamicControl = 'realtime-widget-listener'; break;\r\n case 'Recaptcha': DynamicControl = 'recaptcha'; break;\r\n case 'RoosterEditor': DynamicControl = 'rooster-editor'; break;\r\n case 'RTEventHandler': DynamicControl = 'rt-event-handler'; break;\r\n case 'SAMLButton': DynamicControl = 'saml-button'; break;\r\n case 'Search': DynamicControl = 'search'; break;\r\n case 'SelectList': DynamicControl = 'select-list'; break;\r\n case 'ServerEventListener': DynamicControl = 'server-event-listener'; break;\r\n case 'SlimGrid': DynamicControl = 'slim-grid'; break;\r\n case 'SoftPhone': DynamicControl = 'soft-phone'; break;\r\n case 'SoundPlayer': DynamicControl = 'sound-player'; break;\r\n case 'SplitButton': DynamicControl = 'split-button'; break;\r\n case 'SplitPanes': DynamicControl = 'split-panes'; break;\r\n case 'Text': DynamicControl = 'basic-text'; break;\r\n case 'TextEditor': DynamicControl = 'text-editor'; break;\r\n case 'Timeline': DynamicControl = 'cc-timeline'; break;\r\n case 'Timeout': DynamicControl = 'timeout'; break;\r\n case 'TreeView': DynamicControl = 'tree-view'; break;\r\n case 'VerticalLayout': DynamicControl = 'stack-vertical'; break;\r\n case 'Watcher': DynamicControl = 'basic-watcher'; break;\r\n case 'WebRtcPhone': DynamicControl = 'web-rtc-phone'; break;\r\n case 'Wizard': DynamicControl = 'cc-wizard'; break;\r\n case 'WizardButton': DynamicControl = 'wizard-button'; break;\r\n\t\t\t\tcase 'YouTubeVideo': DynamicControl = 'youtube-video'; break;\r\n }\r\n return DynamicControl;\r\n },\r\n getDynamicAction(action) {\r\n let DynamicAction;\r\n switch (action.ActionType) {\r\n case 'DisplayBasicModal': DynamicAction = 'display-basic-modal'; break;\r\n case 'DisplayBasicConfirmModal': DynamicAction = 'display-basic-confirm-modal'; break;\r\n case 'Tab': DynamicAction = 'tab-action'; break;\r\n case 'ReplaceContent': DynamicAction = 'replace-content-action'; break;\r\n case 'ReferenceUserAction': DynamicAction = 'dynamic-user-action'; break;\r\n }\r\n return DynamicAction;\r\n },\r\n getDynamicHelperControl(parentType, control) {\r\n if (parentType == 'BasicPopupMenu' || parentType == 'IconPopupMenu')\r\n return utils.getDynamicComponent(null, control);\r\n\r\n return null;\r\n },\r\n getHeaderControls(h, controlData, items, root, parentType, addControl, selected) {\r\n //** Note: THIS IS ONLY USED IN THE DESIGNER **//\r\n let header = [];\r\n\r\n if (controlData.HeaderControls)\r\n for (let i = 0; i < controlData.HeaderControls.length; i++) {\r\n const c = controlData.HeaderControls[i];\r\n let DynamicControl = utils.getDynamicComponent(h, c);\r\n if (!DynamicControl)\r\n DynamicControl = 'default-unknown';\r\n\r\n DynamicControl += '-dsgn';\r\n\r\n if (!c.$objectId) c.$objectId = utils.generateUUID();\r\n\r\n header.push(\r\n \r\n \r\n );\r\n }\r\n\r\n if (selected)\r\n header.push(\r\n
\r\n {utils.generateTooltip(h,\r\n addControl(e, 'header')}>\r\n mdi mdi-plus-circle\r\n ,\r\n 'Add control to header', 'right')}\r\n
\r\n );\r\n\r\n items.push(\r\n
\r\n
\r\n {header}\r\n
\r\n
\r\n );\r\n },\r\n generateItemsFromArray(h, context, items, model, parentType, eventHandlers) {\r\n let returnItems = [];\r\n\r\n if(items && Array.isArray(items)) {\r\n items.forEach((c, index) => {\r\n if (!(typeof c === 'object'))\r\n return;\r\n \r\n let DynamicControl = utils.getDynamicComponent(h, c);\r\n \r\n if (!DynamicControl)\r\n DynamicControl = 'default-unknown';\r\n \r\n if (!c.$objectId) c.$objectId = utils.generateUUID();\r\n \r\n let id = c.$objectId;\r\n if (index) id += '_' + index;\r\n \r\n returnItems.push(\r\n \r\n \r\n );\r\n });\r\n }\r\n\r\n return returnItems;\r\n },\r\n generateTooltip(h, activatorElement, content, position, key, classes, openDelay, slot) {\r\n let returnItem = activatorElement;\r\n\r\n if (!content) {\r\n return returnItem;\r\n }\r\n else {\r\n let scopedSlots = {\r\n activator: ({ on }) => {\r\n activatorElement.data.on = { ...activatorElement.data.on, ...on };\r\n\r\n return activatorElement;\r\n }\r\n }\r\n\r\n let item;\r\n if (openDelay)\r\n if(Array.isArray(content) || (typeof content === 'object'))\r\n item = (\r\n {content}\r\n );\r\n else\r\n item = (\r\n \r\n );\r\n else\r\n if(Array.isArray(content) || (typeof content === 'object'))\r\n item = (\r\n {content}\r\n );\r\n else\r\n item = (\r\n \r\n );\r\n \r\n\r\n if (slot)\r\n item.slot = slot;\r\n\r\n return item;\r\n }\r\n },\r\n cleanModel(model) {\r\n let parent = {\r\n key: null,\r\n parent: null\r\n };\r\n return this.cleanModelRecursive(model, null);\r\n },\r\n cleanModelRecursive(model, parent) {\r\n // Removes $field_expanded properties\r\n let newmodel;\r\n if (model && typeof model === 'object') {\r\n if (Array.isArray(model))\r\n newmodel = [];\r\n else\r\n newmodel = {};\r\n\r\n const keys = Object.keys(model);\r\n for (let i = 0; i < keys.length; i++) {\r\n const key = keys[i];\r\n let newparent = {\r\n key: key,\r\n parent: parent\r\n };\r\n if (typeof key === 'string' && key.substring(0, 1) === '$' && key.substring(key.length - 9) === '_expanded')\r\n continue;\r\n else if (typeof key === 'string' && key.toLowerCase() === '$objectid')\r\n if (parent?.key === \"ControlData\" && parent?.parent?.key === \"MenuItemData\") // $objectid needed for menu force refresh button.\r\n newmodel[key] = utils.cleanModelRecursive(model[key], newparent);\r\n else\r\n continue;\r\n else\r\n newmodel[key] = utils.cleanModelRecursive(model[key], newparent);\r\n }\r\n }\r\n else\r\n newmodel = model;\r\n\r\n return newmodel;\r\n },\r\n cache() {\r\n return cache;\r\n },\r\n apiWrapper: {\r\n // This is used as the api parameter for Javascript sections, it wraps the result in data.Result\r\n async get(url, asarray, cacheresult) {\r\n const res = await utils.api.get(url, asarray, cacheresult);\r\n return {\r\n data: { Result: res }\r\n };\r\n },\r\n async post(url, data, asarray, asraw) {\r\n const res = await utils.api.request(\"POST\", url, data, asarray, asraw);\r\n return {\r\n data: { Result: res }\r\n }; \r\n },\r\n async put(url, data, asarray, asraw) {\r\n const res = await utils.api.request(\"PUT\", url, data, asarray, asraw);\r\n return {\r\n data: { Result: res }\r\n }; \r\n },\r\n async apiRequest(options) {\r\n return await apiService.apiRequest(options);\r\n },\r\n },\r\n api: {\r\n clearCache() {\r\n apicache.urls = {};\r\n cachingService.clearCache('APICache');\r\n },\r\n\r\n verbose: false,\r\n async get(url, asarray, cacheresult, httponly) {\r\n\r\n if (cacheresult && url in apicache.urls)\r\n return apicache.urls[url];\r\n\r\n let config = {\r\n method: 'GET',\r\n url: url,\r\n flatten: true,\r\n cache: cacheresult,\r\n doNotUseWebsocket: httponly,\r\n };\r\n let result = await apiService.apiRequest(config);\r\n if (!asarray) {\r\n if (cacheresult) apicache.urls[url] = result;\r\n\r\n return result;\r\n }\r\n\r\n if (Array.isArray(result)) {\r\n if (cacheresult) apicache.urls[url] = result;\r\n\r\n return result;\r\n } else {\r\n const res = Object.keys(result).map((k) => ({ key: k, ...result[k] }));\r\n\r\n if (cacheresult) apicache.urls[url] = res;\r\n\r\n return res;\r\n }\r\n },\r\n async request(method, url, data, asarray, asraw) {\r\n let apiRequest = {\r\n method: method.toLowerCase(),\r\n url: url,\r\n data: data\r\n };\r\n\r\n let res = await apiService.apiRequest(apiRequest);\r\n\r\n if (asraw)\r\n return res.data;\r\n\r\n const result = ((typeof res.data === 'object') && 'Result' in res.data) ? res.data.Result : res.data;\r\n if (!asarray)\r\n return result;\r\n\r\n if (Array.isArray(result))\r\n return result;\r\n else\r\n return Object.keys(result).map((k) => ({ key: k, ...result[k] }));\r\n },\r\n async apiRequest(verb, uri, body) {\r\n return await this.request(verb, uri, body);\r\n },\r\n },\r\n schema: {\r\n refreshCache() {\r\n\r\n },\r\n\r\n async get(id, throwOnError) {\r\n return await cache.getSchema(id, throwOnError);\r\n },\r\n async resolve(schema) {\r\n return await cache.resolveReferences(schema);\r\n },\r\n getDefaultModel(schema) {\r\n //utils.debug(`+++ utils.getDefaultModel`);\r\n\r\n switch (schema.type) {\r\n case 'string':\r\n return schema['default'] || '';\r\n\r\n case 'boolean':\r\n return schema['default'] || false;\r\n\r\n case 'object':\r\n const model = {};\r\n if ('Id' in schema)\r\n model.$typeSchema = schema.Id;\r\n\r\n for (var key in schema.properties) {\r\n const s = schema.properties[key];\r\n const o = utils.schema.resolve_Of(s);\r\n\r\n if ('default' in o)\r\n model[key] = o.default;\r\n else if (key == '$objectId')\r\n model[key] = utils.generateUUID();\r\n else if ('properties' in o)\r\n model[key] = utils.schema.getDefaultModel(o);\r\n else if (o.type == 'array' && o.arrayStart == 'EmptyArray')\r\n model[key] = [];\r\n else if (o.format == 'nullableType')\r\n model[key] = [\r\n {\r\n type: 'null'\r\n },\r\n {\r\n '$typeSchema': '/schema/public/Platform.Schema.SchemaSchemas.v1/SchemaSchema_Type_String',\r\n type: 'string',\r\n '$objectId': utils.generateUUID()\r\n }\r\n ];\r\n }\r\n return model;\r\n\r\n default:\r\n return schema['default'];\r\n }\r\n },\r\n resolve_Of(schema) {\r\n if ('allOf' in schema) {\r\n // Combine all properties from each allOf element into one final object (note that type must be object for all)\r\n let s = {};\r\n for (var i = 0; i < schema.allOf.length; i++) {\r\n const a = utils.schema.resolve_Of(schema.allOf[i]);\r\n if ('type' in a)\r\n s = { ...s, ...a };\r\n else {\r\n //s.type = s.type || a.type;\r\n if ('properties' in a)\r\n s.properties = s.properties ? { ...s.properties, ...a.properties } : a.properties;\r\n if ('anyOf' in a)\r\n s.anyOf = s.anyOf ? [...a.anyOf, ...s.anyOf] : a.anyOf;\r\n if ('default' in a)\r\n s.default = s.default || a.default;\r\n }\r\n }\r\n return { ...s, ...schema };\r\n }\r\n if ('oneOf' in schema) {\r\n if (schema.oneOf[0].type === 'null')\r\n return { ...schema.oneOf[1], ...schema, $allows_null: true };\r\n }\r\n if ('anyOf' in schema) {\r\n //const enums = [];\r\n //for (var i = 0; i < schema.anyOf.length; i++) {\r\n // enums.push({\r\n // name: schema.anyOf[i].title,\r\n // value: schema.anyOf[i].Id,\r\n // data: {\r\n // $typeSchema: schema.anyOf[i].Id\r\n // },\r\n // });\r\n //}\r\n\r\n const s = {\r\n type: 'string',\r\n //enum: enums,\r\n ...schema\r\n };\r\n\r\n return s;\r\n }\r\n return schema;\r\n },\r\n getConditionContext(control, data) {\r\n const schema_context = {\r\n $parent: control,\r\n ...data,\r\n ...methods,\r\n };\r\n\r\n for (let key in schema_context)\r\n if (typeof schema_context[key] === 'function')\r\n schema_context[key] = schema_context[key].bind(schema_context);\r\n\r\n return schema_context;\r\n },\r\n getElementType(element) {\r\n if ('format' in element)\r\n switch (element.format) {\r\n case 'TextEditor':\r\n return 'form-text-editor';\r\n\r\n case 'ReferencedDocumentSchema':\r\n return 'referenced-document-schema';\r\n\r\n case 'HSMStatement_Schema':\r\n return 'hsm-statement-schema';\r\n\r\n case 'LookupList':\r\n return 'string-lookup-list';\r\n\r\n case 'nullableType':\r\n return 'nullable-type';\r\n }\r\n\r\n switch (element.type) {\r\n case 'string':\r\n if (('anyOf' in element))\r\n return 'form-anyof';\r\n else if (('enum' in element) || ('titleMap' in element))\r\n return 'form-select';\r\n else\r\n return 'form-input';\r\n\r\n case 'integer':\r\n case 'number': return 'form-number';\r\n case 'boolean': return 'form-boolean'; // NEW!!! Not debugged yet, on its way\r\n //case 'boolean': Tag = 'form-checkbox'; break;\r\n case 'array': return 'form-array';\r\n case 'object': return null;\r\n default:\r\n let type = ('anyOf' in element) ? 'anyOf' :\r\n ('allOf' in element) ? 'allOf' :\r\n ('oneOf' in element) ? 'oneOf' :\r\n ('unknown:' + element.type);\r\n\r\n utils.log('skipping type: ' + type);\r\n //Tag = 'div';\r\n break;\r\n }\r\n\r\n return null;\r\n },\r\n gatherlogSchema(s, levels, txt) {\r\n txt.type = s.type;\r\n if (levels > 0)\r\n if ('properties' in s)\r\n for (let key in s.properties) {\r\n txt[key] = {};\r\n utils.schema.logSchema(s.properties[key], --levels, txt[key]);\r\n }\r\n },\r\n logSchema(text, s, levels) {\r\n let txt = {};\r\n utils.schema.gatherlogSchema(s, levels, txt);\r\n utils.debug(text + JSON.stringify(txt));\r\n },\r\n\r\n validateObject(name, s, model, errors) {\r\n const additionalProperties = s.additionalProperties === undefined || s.additionalProperties === true;\r\n\r\n // Walk through each item in the model and schema, verify the rules and insure\r\n // all required fields are populated, and no others are found (unless allowed).\r\n for (let key in s.properties) {\r\n if (key.startsWith('$$')) continue;\r\n\r\n const p = utils.schema.resolve_Of(s.properties[key]); // schema for this property\r\n const m = model[key]; // model for this property\r\n\r\n // Form name of element being verified\r\n const subname = name ? `${name}.${key}` : key;\r\n utils.schema.validate(subname, p, m, errors);\r\n }\r\n\r\n if (s.required)\r\n for (let i = 0; i < s.required.length; i++) {\r\n const key = s.required[i];\r\n if (!(key in model))\r\n errors.push({\r\n element: name ? `${name}.${key}` : key,\r\n error: `Missing required field named ${key}`,\r\n reason: 'required'\r\n });\r\n }\r\n\r\n if (!additionalProperties)\r\n for (let key in model) {\r\n if (!key.startsWith('$$') && !(key in s.properties))\r\n errors.push({\r\n element: name ? `${name}.${key}` : key,\r\n error: `Found a field named ${key} that is not defined in the schema`,\r\n reason: 'notallowed'\r\n });\r\n }\r\n },\r\n verifyExactType(type, model) {\r\n switch (type) {\r\n case 'string':\r\n return typeof model === 'string';\r\n\r\n case 'number':\r\n return typeof model === 'number';\r\n\r\n case 'integer':\r\n return (typeof model === 'number') && (model % 1 === 0);\r\n\r\n case 'object':\r\n return (typeof model === 'object') && !Array.isArray(model);\r\n\r\n case 'array':\r\n return (typeof model === 'object') && Array.isArray(model);\r\n\r\n case 'boolean':\r\n return (typeof model === 'boolean');\r\n\r\n case 'null':\r\n return model === null || model === undefined;\r\n }\r\n },\r\n validate(name, s, model, errors) {\r\n if (Array.isArray(s.type)) {\r\n // For a type that's an array, find which type is being used of the possible choices\r\n let t;\r\n for (let i = 0; i < s.type.length; i++) {\r\n if (utils.schema.verifyExactType(s.type[i], model)) {\r\n t = s.type[i];\r\n break;\r\n }\r\n }\r\n\r\n if (t && typeof t === 'string')\r\n // Simple type check, no schema object to do further validation\r\n return;\r\n else if (t && typeof t === 'object')\r\n utils.schema.validate(name, t, model, errors);\r\n else\r\n errors.push({\r\n element: name || 'Root object',\r\n error: `Found type ${typeof model}, expected type to be one of ${s.type.join(',')}`,\r\n reason: 'badtype'\r\n });\r\n }\r\n else if ('anyOf' in s && Array.isArray(s.anyOf)) {\r\n // Allows any of the listed types\r\n let tempErrorsList = [];\r\n for (let i = 0; i < s.anyOf.length; i++) {\r\n let t = utils.schema.resolve_Of(s.anyOf[i]);\r\n let tempErrors = [];\r\n utils.schema.validate(name, t, model, tempErrors);\r\n if (tempErrors.length === 0)\r\n return;\r\n\r\n tempErrorsList.push(tempErrors);\r\n }\r\n let allerrors = tempErrorsList.flatMap(e => e);\r\n for (let i = 0; i < allerrors.length; i++)\r\n errors.push(allerrors[i]);\r\n return;\r\n }\r\n else if (typeof s.type === 'string') {\r\n if (model === null) // Removed this: model === undefined || \r\n {\r\n if (!(s.$allows_null || s.type == 'null'))\r\n errors.push({\r\n element: name || 'Root object',\r\n error: `Missing value in element ${name}, expected ${s.type}.`,\r\n reason: 'missing'\r\n });\r\n\r\n return;\r\n }\r\n else if (typeof model === 'undefined')\r\n // Skip missing fields (how do we know to do this?)\r\n return;\r\n\r\n const ok = utils.schema.verifyExactType(s.type, model);\r\n\r\n if (!ok) {\r\n let typename = typeof model;\r\n if (typename === 'number')\r\n typename = isNaN(model) ? 'invalid number' : 'type number';\r\n else\r\n typename = `type ${typename}`;\r\n\r\n errors.push({\r\n element: name || 'Root object',\r\n error: `Found ${typename} in element ${name}, expected type ${s.type}.`\r\n });\r\n }\r\n else\r\n switch (s.type) {\r\n case 'string':\r\n if (s.minLength && (typeof s.minLength === 'number') && model.length < s.minLength)\r\n errors.push({\r\n element: name,\r\n error: `Minimum length ${s.minLength}`,\r\n reason: 'range'\r\n });\r\n if (s.maxLength && (typeof s.maxLength === 'number') && model.length > s.maxLength)\r\n errors.push({\r\n element: name,\r\n error: `Maximum length ${s.maxLength}`,\r\n reason: 'range'\r\n });\r\n if (s.pattern && (typeof s.pattern === 'string')) {\r\n const reg = new RegExp(s.pattern);\r\n if (!reg.test(model))\r\n errors.push({\r\n element: name,\r\n error: `Invalid pattern`,\r\n reason: 'pattern'\r\n });\r\n }\r\n if (s.format && (typeof s.format === 'string')) {\r\n // Note: draft 6 & 7 are new and therefore, skipped for now as the Angular version\r\n // was based on an earlier draft anyway. These will be nice enhancements one day.\r\n switch (s.format) {\r\n case 'date-time':\r\n if (!validation_patterns.datetime.test(model)) {\r\n errors.push({\r\n element: name,\r\n error: `Invalid date-time`,\r\n reason: 'pattern'\r\n });\r\n }\r\n break;\r\n case 'email':\r\n if (!validation_patterns.email.test(model)) {\r\n errors.push({\r\n element: name,\r\n error: `Invalid email address`,\r\n reason: 'pattern'\r\n });\r\n }\r\n break;\r\n case 'hostname':\r\n case 'ipv4':\r\n case 'ipv6':\r\n case 'uri':\r\n break;\r\n\r\n case 'time': // draft 7\r\n case 'date': // draft 7\r\n case 'idn-email': // draft 7\r\n case 'idn-hostname': // draft 7\r\n case 'uri-reference': // draft 6\r\n case 'iri': // draft 7\r\n case 'iri-reference': // draft 7\r\n case 'url-template': // draft 6\r\n case 'json-pointer': // draft 6\r\n case 'relative-json-pointer': // draft 7\r\n case 'regex': // draft 7\r\n break;\r\n }\r\n }\r\n break;\r\n\r\n case 'number':\r\n case 'integer':\r\n if (s.multipleOf && (typeof s.multipleOf === 'number') && !(model % s.multipleOf === 0))\r\n errors.push({\r\n element: name,\r\n error: `Not a multiple of ${s.multipleOf}`,\r\n reason: 'range'\r\n });\r\n\r\n if ((typeof s.minimum === 'number') && (s.exclusiveMinimum === undefined || s.exclusiveMinimum === false) && model < s.minimum)\r\n errors.push({\r\n element: name,\r\n error: `Value is below the minimum of ${s.minimum}`,\r\n reason: 'range'\r\n });\r\n else if ((typeof s.minimum === 'number') && (s.exclusiveMinimum === true) && model <= s.minimum)\r\n errors.push({\r\n element: name,\r\n error: `Value is at or below the minimum of ${s.minimum}`,\r\n reason: 'range'\r\n });\r\n\r\n if ((typeof s.maximum === 'number') && (s.exclusiveMaximum === undefined || s.exclusiveMaximum === false) && model > s.maximum)\r\n errors.push({\r\n element: name,\r\n error: `Value is more than the maximum of ${s.maximum}`,\r\n reason: 'range'\r\n });\r\n else if ((typeof s.maximum === 'number') && (s.exclusiveMaximum === true) && model >= s.maximum)\r\n errors.push({\r\n element: name,\r\n error: `Value is at or above the maximum of ${s.maximum}`,\r\n reason: 'range'\r\n });\r\n\r\n if ((typeof s.exclusiveMinimum === 'number') && model <= s.exclusiveMinimum)\r\n errors.push({\r\n element: name,\r\n error: `Value is at or below the minimum of ${s.exclusiveMinimum}`,\r\n reason: 'range'\r\n });\r\n if ((typeof s.exclusiveMaximum === 'number') && model >= s.exclusiveMaximum)\r\n errors.push({\r\n element: name,\r\n error: `Value is at or above the maximum of ${s.exclusiveMaximum}`,\r\n reason: 'range'\r\n });\r\n break;\r\n\r\n case 'object':\r\n utils.schema.validateObject(name, s, model, errors);\r\n break;\r\n\r\n case 'array':\r\n let uniqueMap;\r\n if (s.uniqueItems)\r\n uniqueMap = {};\r\n\r\n for (let i = 0; i < model.length; i++) {\r\n const m = model[i];\r\n if (s.uniqueItems) {\r\n let key;\r\n if (typeof m === 'object')\r\n key = JSON.stringify(m || {});\r\n else\r\n key = m;\r\n\r\n if (key in uniqueMap) {\r\n errors.push({\r\n element: name,\r\n error: `Non-unique item found at index ${i + 1}`,\r\n reason: 'duplicate'\r\n });\r\n }\r\n else\r\n uniqueMap[key] = true;\r\n }\r\n utils.schema.validate(`${name}[${i}]`, s.items, m, errors);\r\n }\r\n\r\n if (s.minItems !== null && s.minItems > model.length) {\r\n errors.push({\r\n element: name,\r\n error: `Not enough items in ${s.title}`,\r\n reason: 'length'\r\n });\r\n }\r\n\r\n if (s.maxItems !== null && s.maxItems < model.length) {\r\n errors.push({\r\n element: name,\r\n error: `Too many items in ${s.title}`,\r\n reason: 'length'\r\n });\r\n }\r\n\r\n break;\r\n }\r\n }\r\n },\r\n performValidation(schema, model) {\r\n const s = utils.schema.resolve_Of(schema);\r\n\r\n const errors = [];\r\n utils.schema.validate('', s, model, errors);\r\n return errors;\r\n }\r\n },\r\n forms: {\r\n insureModelPath(cmodel, element, schema) {\r\n // This walks down from the root schema to insure the model is initialized up to the ParentModel\r\n if (element.key)\r\n for (let i = 0; i < element.key.length - 1; i++) {\r\n if (element.key[i] == '[]')\r\n // Bail out if we are walking through an array path\r\n // (We might make this work sometime, but I don't think it's necessary)\r\n break;\r\n\r\n const key = element.key.slice(0, i + 1);\r\n let m = cmodel;\r\n for (let j = 0; j < key.length - 1; j++)\r\n m = m[key[j]];\r\n\r\n let s = schema;\r\n for (let i = 0; i < key.length; i++)\r\n s = s.properties[key[i]];\r\n\r\n if (s.type == 'object' && !m[key[key.length - 1]])\r\n Vue.set(m, key[key.length - 1], {});\r\n else if (s.type == 'array' && !m[key[key.length - 1]])\r\n Vue.set(m, key[key.length - 1], []);\r\n }\r\n\r\n },\r\n mixModels(initial, model) {\r\n //utils.debug(`+++ utils.mixModels`);\r\n // takes items in initial that aren't in model and adds them\r\n for (let key in initial) {\r\n if (!(key in model))\r\n Vue.set(model, key, initial[key]);\r\n\r\n if (typeof initial[key] === 'object' && typeof model[key] === 'object')\r\n utils.forms.mixModels(initial[key], model[key]);\r\n }\r\n },\r\n mergeDefaultModel(model, schema, context) {\r\n //utils.debug(`+++ utils.mergeDefaultModel`);\r\n\r\n switch (schema.type)\r\n {\r\n case 'string':\r\n return (typeof model === 'undefined' || model === null) ? schema['default'] : model;\r\n\r\n case 'boolean':\r\n return (typeof model == 'undefined' || model === null) ? (schema['default'] || false) : model;\r\n\r\n case 'object':\r\n if (!model) model = {};\r\n for (var key in schema.properties) {\r\n const s = schema.properties[key];\r\n const o = utils.schema.resolve_Of(s);\r\n\r\n if (o.$allows_null && (!(key in model) || typeof model[key] == 'undefined' || model[key] === null)) {\r\n // Do nothing. If we can have null (and nothing is yet defined), no need to prepopulate anything\r\n }\r\n else if ('anyOf' in o) {\r\n // Do nothing, we can't assume anything about which type in an anyOf to use\r\n }\r\n else if ('default' in o && (!(key in model) || typeof model[key] == 'undefined')) {\r\n if (typeof o.default === 'string' && (o.default.includes('{{' || o.default.includes('{*')))) {\r\n o.$$default = utils.compile(context, o.default);\r\n }\r\n const default_value = o.$$default ? utils.evaluate(o.$$default, context) : o.default;\r\n Vue.set(model, key, model[key] || default_value);\r\n }\r\n else if ('properties' in o) {\r\n const v = utils.forms.mergeDefaultModel(model[key], o, context);\r\n if (typeof v !== 'undefined')\r\n Vue.set(model, key, v);\r\n }\r\n else if ('items' in o) {\r\n const v = utils.forms.mergeDefaultModel(model[key], o, context);\r\n if (typeof v !== 'undefined')\r\n Vue.set(model, key, v);\r\n }\r\n else if ('type' in o) {\r\n const v = utils.forms.mergeDefaultModel(model[key], o, context);\r\n if (typeof v !== 'undefined')\r\n Vue.set(model, key, v);\r\n }\r\n }\r\n return model;\r\n\r\n case 'array':\r\n if (!model) {\r\n let a = schema.arrayStart;\r\n if (a == 'FormDefault') {\r\n if ('ArrayStartValue' in context)\r\n a = context.ArrayStartValue;\r\n else\r\n a = context.ParentByType('BasicForm')?.ArrayStartValue || 'Nothing';\r\n }\r\n\r\n switch (a) {\r\n case 'EmptyArray':\r\n return [];\r\n\r\n case 'DefaultItem':\r\n // The default must come from the items to know if it's an object or\r\n // a primitive type...\r\n const vitem = utils.forms.mergeDefaultModel(undefined, schema.items, context);\r\n if (typeof vitem !== 'undefined')\r\n return [vitem];\r\n else\r\n return undefined;\r\n\r\n case 'Nothing':\r\n default:\r\n return undefined;\r\n }\r\n }\r\n for (let i = 0; i < model.length; i++) {\r\n const v = utils.forms.mergeDefaultModel(model[i], schema.items, context);\r\n if (typeof v !== 'undefined')\r\n Vue.set(model, i, v);\r\n }\r\n return model;\r\n\r\n default:\r\n return (typeof model === 'undefined' || model === null) ? schema['default'] : model;\r\n }\r\n },\r\n getModelElementReader(key, basekey) {\r\n // Ex:\r\n // [ 'Field1', '[]', 'subfield1' ]\r\n // return model.Field1[i].subfield1;\r\n let s = 'model';\r\n for (let i = 0; i < key.length; i++) {\r\n const t = (basekey && i < basekey.length) ? basekey[i] : key[i];\r\n if (t.startsWith('['))\r\n s += (basekey && i < basekey.length) ? basekey[i] : key[i];\r\n else {\r\n let keys = t.split('.');\r\n\r\n for(let individualKey of keys) {\r\n s += '[\"' + individualKey + '\"]';\r\n }\r\n }\r\n }\r\n\r\n const code = `return ${s};`;\r\n try {\r\n return {\r\n code: code,\r\n func: new Function('model', code)\r\n };\r\n } catch (e) {\r\n utils.warn(`Failed to generate modelElementReader for ${JSON.stringify(key)} / ${basekey ? JSON.stringify(basekey) : ''}: ${code}`, e);\r\n return null;\r\n }\r\n },\r\n getModelElementWriter(key, basekey) {\r\n // Ex:\r\n // [ 'Field1', '[0]' ]\r\n // Vue.set(model.Field1, 0, value);\r\n\r\n // Ex:\r\n // [ 'Field1', '[1]', 'subfield1' ]\r\n // Vue.set(model.Field1[1], 'subfield1', value);\r\n\r\n let s = 'model';\r\n let f;\r\n for (let i = 0; i < key.length; i++) {\r\n const e = (basekey && i < basekey.length) ? basekey[i] : key[i];\r\n\r\n if (i < key.length - 1) {\r\n if (e.startsWith('['))\r\n s += e;\r\n else\r\n s += '.' + e;\r\n }\r\n else {\r\n if (e.startsWith('['))\r\n f = e.substr(1, e.length - 2);\r\n else\r\n f = \"'\" + e + \"'\";\r\n }\r\n }\r\n\r\n const code = `vue.set(${s}, ${f}, value);`;\r\n try {\r\n return {\r\n code: code,\r\n func: new Function('model', 'value', 'vue', code)\r\n };\r\n }\r\n catch (e) {\r\n utils.warn(`Failed to generate modelElementWriter for ${JSON.stringify(key)} / ${basekey ? JSON.stringify(basekey) : ''}: ${code}`, e);\r\n return null;\r\n }\r\n },\r\n getFormType: function (schema) {\r\n if ('format' in schema && schema.format) {\r\n switch (schema.format.toLowerCase()) {\r\n case 'tabarray':\r\n case 'texteditor':\r\n case 'array':\r\n return schema.format.toLowerCase();\r\n\r\n case 'checkboxes':\r\n return `${schema.format}-${schema.type}`.toLowerCase();\r\n }\r\n //if (typeof schema.type === 'string')\r\n // return `${schema.format}-${schema.type}`.toLowerCase();\r\n //else\r\n return `${schema.format}`.toLowerCase();\r\n }\r\n\r\n //switch (schema.format) {\r\n // case 'TextEditor':\r\n // return 'input-multiline';\r\n // case 'MediaSelector':\r\n //}\r\n\r\n switch (schema.type) {\r\n case 'string':\r\n if (('anyOf' in schema))\r\n return 'anyof';\r\n else if (('enum' in schema) || ('titleMap' in schema))\r\n return 'select';\r\n else\r\n return 'text';\r\n\r\n case 'object': return 'fieldset';\r\n case 'boolean': return 'checkbox';\r\n case 'integer':\r\n case 'number': return 'number';\r\n default:\r\n utils.log(`Emitting form type for schema type: '${schema.type || ''}'`);\r\n return schema.type;\r\n }\r\n },\r\n generateAllSchemaItems: function (parentpath, newform, schema) {\r\n const s = utils.schema.resolve_Of(schema);\r\n switch (s.type) {\r\n case 'array':\r\n switch (s.items.type) {\r\n case 'object':\r\n const value = {\r\n key: [...parentpath, '[]'],\r\n type: utils.forms.getFormType(s.items),\r\n formatData: s.items.formatData,\r\n title: s.items.title,\r\n description: s.items.description,\r\n notitle: s.items.notitle || false,\r\n titleMap: s.items.titleMap,\r\n enum: s.items.enum,\r\n readonly: s.items.readonly,\r\n schema: s.items,\r\n condition: s.items.condition,\r\n $$condition: s.items.$$condition,\r\n items: [],\r\n };\r\n utils.forms.generateAllSchemaItems(value.key, value.items, s.items);\r\n newform.push(value);\r\n break;\r\n\r\n case 'array':\r\n break;\r\n\r\n default:\r\n newform.push({\r\n key: [...parentpath, '[]'],\r\n type: utils.forms.getFormType(s.items),\r\n formatData: s.items.formatData,\r\n title: s.items.title,\r\n description: s.items.description,\r\n titleMap: s.items.titleMap,\r\n enum: s.items.enum,\r\n readonly: s.items.readonly,\r\n condition: s.items.condition,\r\n $$condition: s.items.$$condition,\r\n schema: s.items,\r\n });\r\n break;\r\n }\r\n break;\r\n\r\n case 'object':\r\n for (let key in s.properties) {\r\n if (key.substr(0, 1) == '$') continue;\r\n\r\n const item = utils.schema.resolve_Of(s.properties[key]);\r\n if (item.type == 'object') {\r\n const path = [...parentpath, key];\r\n const value = {\r\n key: path,\r\n type: utils.forms.getFormType(item),\r\n formatData: item.formatData,\r\n title: item.title,\r\n description: item.description,\r\n notitle: item.notitle || false,\r\n titleMap: item.titleMap,\r\n enum: item.enum,\r\n readonly: item.readonly,\r\n condition: item.condition,\r\n $$condition: item.$$condition,\r\n schema: item,\r\n items: [],\r\n };\r\n utils.forms.generateAllSchemaItems(path, value.items, item);\r\n newform.push(value);\r\n }\r\n else if (item.type == 'array') {\r\n const value = {\r\n key: [...parentpath, key],\r\n type: utils.forms.getFormType(item),\r\n formatData: item.formatData,\r\n title: item.title,\r\n description: item.description,\r\n notitle: item.notitle || false,\r\n titleMap: item.titleMap,\r\n enum: item.enum,\r\n readonly: item.readonly,\r\n condition: item.condition,\r\n $$condition: item.$$condition,\r\n schema: item,\r\n items: [],\r\n };\r\n const path = [...parentpath, key];\r\n utils.forms.generateAllSchemaItems(path, value.items, item);\r\n newform.push(value);\r\n }\r\n else {\r\n const value = {\r\n key: [...parentpath, key],\r\n type: utils.forms.getFormType(item),\r\n formatData: item.formatData,\r\n title: item.title,\r\n description: item.description,\r\n titleMap: item.titleMap,\r\n enum: item.enum,\r\n readonly: item.readonly,\r\n condition: item.condition,\r\n $$condition: item.$$condition,\r\n schema: item,\r\n };\r\n newform.push(value);\r\n }\r\n }\r\n break;\r\n\r\n default:\r\n const value = {\r\n key: s.key ? [...parentpath, s.key] : parentpath,\r\n type: utils.forms.getFormType(s),\r\n formatData: s.formatData,\r\n title: s.title,\r\n description: s.description,\r\n titleMap: s.titleMap,\r\n enum: s.enum,\r\n readonly: s.readonly,\r\n condition: s.condition,\r\n $$condition: s.$$condition,\r\n schema: s,\r\n };\r\n newform.push(value);\r\n break;\r\n }\r\n },\r\n convertStringKeyToArray: function (key) {\r\n // In: field.field[].field[].field\r\n // Out: [ 'field', 'field', '[]', 'field', '[]', 'field' ]\r\n return key.split(/(\\.|\\[[^\\.]*\\])/).filter(k => k && k !== '.');\r\n },\r\n generateForm: function (form, newform, s) {\r\n for (let i = 0; i < form.length; i++) {\r\n const item = form[i];\r\n if (!item) continue;\r\n\r\n let value;\r\n if (typeof item === 'string') {\r\n if (item == '*')\r\n value = { AllSchemaElements: true };\r\n else\r\n value = { key: item };\r\n }\r\n else if (typeof item === 'object') {\r\n value = { ...item };\r\n }\r\n\r\n if ((value.AllSchemaElements || value.key == '*') && s) {\r\n utils.forms.generateAllSchemaItems([], newform, s);\r\n continue;\r\n }\r\n\r\n // Transform text syntax (field.field) into an array (['field','field'])\r\n if (value.key && typeof value.key === 'string')\r\n value.key = utils.forms.convertStringKeyToArray(value.key);\r\n\r\n if (s && value.key) {\r\n // Locate the final schema member\r\n let field_s = s;\r\n for (let k = 0; k < value.key.length; k++) {\r\n const key = value.key[k];\r\n if ('oneOf' in field_s) {\r\n // If this type is a OneOf, find any type that contains the key we are looking for\r\n const oneOf = field_s.oneOf;\r\n const poss_f = oneOf.find(o => o.properties && (key in o.properties));\r\n if (poss_f)\r\n field_s = utils.schema.resolve_Of(poss_f);\r\n }\r\n\r\n if (key.startsWith('[') && key.endsWith(']') && field_s.items) {\r\n field_s = utils.schema.resolve_Of(field_s.items);\r\n }\r\n else if (field_s.properties && (key in field_s.properties)) {\r\n field_s = utils.schema.resolve_Of(field_s.properties[key]);\r\n }\r\n else {\r\n field_s = null;\r\n break;\r\n }\r\n }\r\n\r\n if (field_s) {\r\n if (value.schema)\r\n {\r\n //value.schema = { ...field_s, ...value.schema };\r\n value.schema = _.merge(field_s, value.schema);\r\n }\r\n else\r\n value.schema = field_s;\r\n\r\n if (!value.type)\r\n value.type = utils.forms.getFormType(value.schema);\r\n if (!value.title)\r\n value.title = value.schema.title;\r\n if (!value.description)\r\n value.description = value.schema.description;\r\n if (!value.formatData)\r\n value.formatData = value.schema.formatData;\r\n if (!value.titleMap)\r\n value.titleMap = value.schema.titleMap;\r\n if (!value.enum)\r\n value.enum = value.schema.enum;\r\n if (!('notitle' in value))\r\n value.notitle = value.schema.notitle;\r\n if (typeof value.readonly === 'undefined')\r\n value.readonly = value.schema.readonly;\r\n if (typeof value.noinput === 'undefined')\r\n value.noinput = value.schema.noinput;\r\n if (!value.required && s.required)\r\n value.required = s.required.includes(value.key[value.key.length - 1]);\r\n if (!value.condition) {\r\n value.condition = value.schema.condition;\r\n value.$$condition = value.schema.$$condition;\r\n }\r\n else if (value.condition && typeof value.condition === 'string' && !value.$$condition) {\r\n //value.condition_src$ = value.condition;\r\n value.$$condition = new Function('context', 'util', 'with (context) return ' + value.condition + ';');\r\n }\r\n\r\n switch (value.schema.type) {\r\n case 'object':\r\n if (!value.items) {\r\n value.items = [];\r\n utils.forms.generateAllSchemaItems(value.key, value.items, value.schema);\r\n }\r\n else {\r\n const itemsform = [];\r\n utils.forms.generateForm(value.items, itemsform, s);\r\n value = {\r\n key: value.key,\r\n type: value.type,\r\n title: value.title,\r\n description: value.description,\r\n formatData: value.formatData,\r\n titleMap: value.titleMap,\r\n enum: value.enum,\r\n schema: value.schema,\r\n readonly: typeof value.readonly == 'undefined' ? value.schema.readonly : value.readonly,\r\n condition: value.condition || value.schema.condition,\r\n $$condition: value.$$condition || value.schema.$$condition,\r\n items: itemsform,\r\n };\r\n }\r\n break;\r\n\r\n case 'array':\r\n if (!value.items) {\r\n value.items = [];\r\n utils.forms.generateAllSchemaItems(value.key, value.items, value.schema);\r\n }\r\n else {\r\n const itemsform = [];\r\n utils.forms.generateForm(value.items, itemsform, s);\r\n const newkey = [...value.key, '[]'];\r\n value = {\r\n key: value.key,\r\n type: value.type,\r\n title: value.title,\r\n description: value.description,\r\n add: value.add,\r\n formatData: value.formatData,\r\n titleMap: value.titleMap,\r\n enum: value.enum,\r\n notitle: value.notitle,\r\n nodrag: value.nodrag,\r\n schema: value.schema,\r\n uniqueItems: value.schema.uniqueItems,\r\n readonly: typeof value.readonly == 'undefined' ? value.schema.readonly : value.readonly,\r\n condition: value.condition || value.schema.condition,\r\n $$condition: value.$$condition || value.schema.$$condition,\r\n items: [\r\n {\r\n key: newkey,\r\n type: 'fieldset',\r\n items: itemsform,\r\n }\r\n ],\r\n };\r\n }\r\n break;\r\n\r\n default:\r\n if (value.items) {\r\n const itemsform = [];\r\n utils.forms.generateForm(value.items, itemsform, s);\r\n value.items = itemsform;\r\n }\r\n break;\r\n }\r\n }\r\n else if (value.condition && typeof value.condition === 'string' && !value.$$condition) {\r\n //value.condition_src$ = value.condition;\r\n try {\r\n value.$$condition = new Function('context', 'util', 'with (context) return ' + value.condition + ';');\r\n }\r\n catch (e) {\r\n utils.warn(`Failed to create condition function for '${value.condition}' at form element ${item.key} ${item.type}`, e);\r\n }\r\n }\r\n }\r\n else {\r\n if (value.condition && typeof value.condition === 'string' && !value.$$condition) {\r\n //value.condition_src$ = value.condition;\r\n value.$$condition = new Function('context', 'util', 'with (context) return ' + value.condition + ';');\r\n }\r\n\r\n if (value.items) {\r\n if (value.condition && typeof value.condition === 'string' && !value.$$condition) {\r\n //value.condition_src$ = value.condition;\r\n value.$$condition = new Function('context', 'util', 'with (context) return ' + value.condition + ';');\r\n }\r\n //value.schema = s;\r\n value.items = utils.forms.generateFormWithSchema(value.items, s);\r\n }\r\n else if (value.tabs) {\r\n for (let j = 0; j < value.tabs.length; j++) {\r\n const tab = value.tabs[j];\r\n tab.items = utils.forms.generateFormWithSchema(tab.items, s);\r\n }\r\n }\r\n }\r\n newform.push(value);\r\n }\r\n },\r\n generateFormWithSchema: function (form, schema) {\r\n const s = schema ? utils.schema.resolve_Of(schema) : null;\r\n if (s && s.type != 'object')\r\n return [];\r\n\r\n const newform = [];\r\n utils.forms.generateForm(form, newform, s);\r\n return newform;\r\n },\r\n joinFieldKey(key) {\r\n let keystr = '';\r\n for (let i = 0; i < key.length; i++) {\r\n const k = key[i];\r\n if (k == '[]')\r\n keystr += k;\r\n else if (typeof k === 'number')\r\n keystr += `[${k}]`;\r\n else\r\n keystr += keystr ? `.${k}` : k;\r\n }\r\n return keystr;\r\n },\r\n computed: {\r\n // Note: This section is only used in the property grid for the designer\r\n Root: function () {\r\n return this.root._self;\r\n },\r\n ParentModel: function () {\r\n return this.cmodel;\r\n },\r\n FormModel: function () {\r\n if ('form_model' in this.$attrs)\r\n return this.$attrs.form_model;\r\n else\r\n return this.cmodel;\r\n },\r\n FieldValue: function () {\r\n if (this.cmodel && this.schemakey)\r\n return this.cmodel[this.schemakey];\r\n else if (this.cmodel)\r\n return this.cmodel;\r\n else\r\n return null;\r\n },\r\n Condition: function () {\r\n // Note: schema conditions are pre-compiled into functions in cache.resolveReferences above\r\n\r\n if (this.schema.$$condition && typeof this.schema.$$condition === 'function')\r\n try {\r\n const context = utils.schema.getConditionContext(this, { FormModel: this.FormModel, ParentModel: this.cmodel });\r\n\r\n return this.schema.$$condition(context); // this);\r\n }\r\n catch (e) {\r\n utils.warn('Schema condition expression ' + this.schema.condition + ' failed to evaluate: ' + e);\r\n return true;\r\n }\r\n else\r\n return true;\r\n },\r\n //util: { ...careHelpfulFunctions },\r\n },\r\n cleanModel: function (model) {\r\n // Removes $xxx_expanded properties (used only to track tree node state)\r\n if (typeof model === 'object') {\r\n if (Array.isArray(model)) {\r\n for (let i = 0; i < model.length; i++) {\r\n utils.forms.cleanModel(model[i]);\r\n }\r\n }\r\n else {\r\n for (let key in model) {\r\n if ((key.startsWith('$') && key.endsWith('_expanded')) || key == '$objectId')\r\n delete model[key];\r\n else\r\n utils.forms.cleanModel(model[key]);\r\n }\r\n }\r\n }\r\n },\r\n },\r\n global_variables: {},\r\n service_variables: {},\r\n document_cache: {\r\n menus: {},\r\n usercontrols: {},\r\n areas: {},\r\n menuTreeByName: {},\r\n contentTreeByName: {},\r\n getChildren: function (data, parent, outargs) {\r\n let path = parent.MenuItemData.Title;\r\n if (parent.MenuPath)\r\n path = parent.MenuPath + '::' + path;\r\n\r\n const list = data.filter(m => m.MenuPath == path).sort((a, b) => parseInt(a.Index) - parseInt(b.Index));\r\n\r\n const result = [];\r\n for (let i = 0; i < list.length; i++) {\r\n const item = list[i];\r\n const child = {\r\n id: `${outargs.index++}`,\r\n name: item.MenuItemData.Title,\r\n icon: item.MenuItemData.Icon,\r\n item_data: item,\r\n }\r\n outargs.content.push(child);\r\n const children = utils.document_cache.getChildren(data, item, outargs);\r\n if (children && children.length > 0)\r\n child.children = children;\r\n\r\n result.push(child);\r\n }\r\n\r\n return result;\r\n },\r\n getMenuTree: function (menuName) {\r\n if (menuName in utils.document_cache.menuTreeByName)\r\n return utils.document_cache.menuTreeByName[menuName];\r\n\r\n const data = utils.document_cache.menus[menuName];\r\n const result = [];\r\n const content = [];\r\n const outargs = { index: 0, content: content };\r\n\r\n let root = data.filter(m => !m.MenuPath).sort((a, b) => parseInt(a.Index) - parseInt(b.Index));\r\n for (let i = 0; i < root.length; i++) {\r\n const node = root[i];\r\n const child = {\r\n id: `${outargs.index++}`,\r\n name: node.MenuItemData.Title,\r\n icon: node.MenuItemData.Icon,\r\n item_data: node,\r\n };\r\n outargs.content.push(child);\r\n const children = utils.document_cache.getChildren(data, node, outargs);\r\n if (children && children.length > 0)\r\n child.children = children;\r\n\r\n result.push(child);\r\n }\r\n utils.document_cache.menuTreeByName[menuName] = result;\r\n utils.document_cache.contentTreeByName[menuName] = content;\r\n return result;\r\n },\r\n getContentForTree: function (menuName) {\r\n if (utils.document_cache.contentTreeByName[menuName])\r\n return utils.document_cache.contentTreeByName[menuName];\r\n\r\n utils.document_cache.getMenuTree(menuName);\r\n return utils.document_cache.contentTreeByName[menuName];\r\n },\r\n loadInProgress: {},\r\n actionsInProgress: {},\r\n clearCache: function () {\r\n utils.document_cache.menus = {};\r\n utils.document_cache.usercontrols = {};\r\n utils.document_cache.areas = {};\r\n utils.document_cache.menuTreeByName = {};\r\n utils.document_cache.contentTreeByName = {};\r\n }\r\n },\r\n global: {\r\n SetAllDocuments: function (all) {\r\n if (typeof all === 'object' && Array.isArray(all)) {\r\n // Reset this so hot reload works\r\n utils.document_cache.menus = {};\r\n\r\n for (let i = 0; i < all.length; i++) {\r\n const doc = all[i];\r\n\r\n if (doc.$doctype == 'MenuItem') {\r\n const menuName = doc.MenuName;\r\n if (!(menuName in utils.document_cache.menus))\r\n utils.document_cache.menus[menuName] = [];\r\n\r\n utils.document_cache.menus[menuName].push(doc);\r\n }\r\n else if (doc.$doctype == 'UserControl') {\r\n const groupName = doc.$ModuleMetaData?.Config?.GroupName;\r\n if (groupName) {\r\n if (!(groupName in utils.document_cache.usercontrols))\r\n utils.document_cache.usercontrols[groupName] = [];\r\n\r\n utils.document_cache.usercontrols[groupName].push(doc);\r\n }\r\n }\r\n else if (doc.$doctype == 'UserDefinedArea') {\r\n const location = doc.Location;\r\n if (!(location in utils.document_cache.areas))\r\n utils.document_cache.areas[location] = [];\r\n\r\n utils.document_cache.areas[location].push(doc);\r\n\r\n //const order = doc.Order;\r\n //const controls = doc.Controls;\r\n }\r\n }\r\n\r\n // Sort the contents of the areas by Order\r\n for (let key in utils.document_cache.areas) {\r\n var area = utils.document_cache.areas[key];\r\n area.sort((a, b) => a.Order - b.Order);\r\n }\r\n }\r\n },\r\n AddDynamicMenus: function (all) {\r\n for (let i = 0; i < all.length; i++) {\r\n const doc = all[i];\r\n\r\n const menuName = doc.MenuName;\r\n if (!(menuName in utils.document_cache.menus))\r\n utils.document_cache.menus[menuName] = [];\r\n\r\n utils.document_cache.menus[menuName].push(doc);\r\n }\r\n },\r\n },\r\n hsmlist: {\r\n hsms: [],\r\n registerHSM: function(name, hsm) {\r\n utils.hsmlist.hsms.push({ name: name, hsm: hsm });\r\n },\r\n removeHSM: function (name) {\r\n const idx = utils.hsmlist.hsms.findIndex(h => h.name == name);\r\n if (idx >= 0)\r\n utils.hsmlist.hsms.splice(idx, 1);\r\n },\r\n setVisibility: function (values) {\r\n for (let i = 0; i < utils.hsmlist.hsms.length; i++) {\r\n const hsm = utils.hsmlist.hsms[i];\r\n hsm.hsm.setVisibility(values.some(v => v == hsm.name));\r\n }\r\n },\r\n },\r\n getCustomClasses(styleHints) {\r\n debugger;\r\n return \"\";\r\n },\r\n getStyleHints(styleHints) {\r\n const style = {};\r\n if (!styleHints)\r\n return style;\r\n\r\n if (styleHints.BackgroundColor)\r\n style.backgroundColor = styleHints.BackgroundColor;\r\n\r\n if (styleHints.ForegroundColor)\r\n style.color = styleHints.ForegroundColor;\r\n\r\n if (styleHints.BorderTop && styleHints.BorderTop !== 'Unspecified') {\r\n style.borderTop = resolveSizes(styleHints.BorderTop);\r\n style.borderTopStyle = 'solid';\r\n }\r\n if (styleHints.BorderBottom && styleHints.BorderBottom !== 'Unspecified') {\r\n style.borderBottom = resolveSizes(styleHints.BorderBottom);\r\n style.borderBottomStyle = 'solid';\r\n }\r\n if (styleHints.BorderLeft && styleHints.BorderLeft !== 'Unspecified') {\r\n style.borderLeft = resolveSizes(styleHints.BorderLeft);\r\n style.borderLeftStyle = 'solid';\r\n }\r\n if (styleHints.BorderRight && styleHints.BorderRight !== 'Unspecified') {\r\n style.borderRight = resolveSizes(styleHints.BorderRight);\r\n style.borderRightStyle = 'solid';\r\n }\r\n\r\n if (styleHints.BorderRadius) {\r\n style.borderRadius = styleHints.BorderRadius;\r\n }\r\n else {\r\n if (styleHints.BorderTopLeftRadius)\r\n style.borderTopLeftRadius = styleHints.BorderTopLeftRadius;\r\n\r\n if (styleHints.BorderTopRightRadius)\r\n style.borderTopRightRadius = styleHints.BorderTopRightRadius;\r\n\r\n if (styleHints.BorderBottomLeftRadius)\r\n style.borderBottomLeftRadius = styleHints.BorderBottomLeftRadius;\r\n\r\n if (styleHints.BorderBottomRightRadius)\r\n style.borderBottomRightRadius = styleHints.BorderBottomRightRadius;\r\n }\r\n\r\n if (styleHints.MarginTop && styleHints.MarginTop !== 'Unspecified') {\r\n style.marginTop = resolveSizes(styleHints.MarginTop);\r\n }\r\n if (styleHints.MarginBottom && styleHints.MarginBottom !== 'Unspecified') {\r\n style.marginBottom = resolveSizes(styleHints.MarginBottom);\r\n }\r\n if (styleHints.MarginLeft && styleHints.MarginLeft !== 'Unspecified') {\r\n style.marginLeft = resolveSizes(styleHints.MarginLeft);\r\n }\r\n if (styleHints.MarginRight && styleHints.MarginRight !== 'Unspecified') {\r\n style.marginRight = resolveSizes(styleHints.MarginRight);\r\n }\r\n\r\n if (styleHints.PaddingTop && styleHints.PaddingTop !== 'Unspecified') {\r\n style.paddingTop = resolveSizes(styleHints.PaddingTop);\r\n }\r\n if (styleHints.PaddingBottom && styleHints.PaddingBottom !== 'Unspecified') {\r\n style.paddingBottom = resolveSizes(styleHints.PaddingBottom);\r\n }\r\n if (styleHints.PaddingLeft && styleHints.PaddingLeft !== 'Unspecified') {\r\n style.paddingLeft = resolveSizes(styleHints.PaddingLeft);\r\n }\r\n if (styleHints.PaddingRight && styleHints.PaddingRight !== 'Unspecified') {\r\n style.paddingRight = resolveSizes(styleHints.PaddingRight);\r\n }\r\n\r\n if (styleHints.BorderTopColor) {\r\n style.borderTopColor = styleHints.BorderTopColor;\r\n }\r\n if (styleHints.BorderBottomColor) {\r\n style.borderBottomColor = styleHints.BorderBottomColor;\r\n }\r\n if (styleHints.BorderLeftColor) {\r\n style.borderLeftColor = styleHints.BorderLeftColor;\r\n }\r\n if (styleHints.BorderRightColor) {\r\n style.borderRightColor = styleHints.BorderRightColor;\r\n }\r\n if (styleHints.JustifyContent) {\r\n style.justifyContent = styleHints.JustifyContent;\r\n }\r\n if (styleHints.TextAlign) {\r\n style.textAlign = styleHints.TextAlign;\r\n }\r\n if (styleHints.FontSize) {\r\n style.fontSize = this.resolveFontSize(styleHints.FontSize);\r\n }\r\n if (styleHints.FontWeight) {\r\n style.fontWeight = styleHints.FontWeight.toLowerCase();\r\n }\r\n\r\n if (styleHints.IsVisible) {\r\n style.visibility = (styleHints.IsVisible + '').toLowerCase() == 'true' ? 'visible' : 'hidden';\r\n }\r\n\r\n if (styleHints.Overflow && typeof styleHints.Overflow === 'string') {\r\n style.overflow = styleHints.Overflow.toLowerCase();\r\n }\r\n\r\n if (styleHints.ForegroundColor) {\r\n style.color = styleHints.ForegroundColor + \" !important\";\r\n }\r\n\r\n if (styleHints.BackgroundColor) {\r\n style.backgroundColor = styleHints.BackgroundColor;\r\n }\r\n\r\n // TODO: Blink and custom classes\r\n\r\n if (styleHints.CustomStyle) {\r\n if (typeof styleHints.CustomStyle === 'object')\r\n for (const [key, item] of Object.entries(styleHints.CustomStyle)) {\r\n style[key] = item;\r\n }\r\n else if (typeof styleHints.CustomStyle === 'string')\r\n styleHints.CustomStyle.split(';').forEach(customStyle => {\r\n let styleArray = customStyle.split(':');\r\n if (styleArray && styleArray?.length > 1)\r\n style[styleArray[0].trim()] = styleArray[1].trim();\r\n });\r\n }\r\n\r\n return style;\r\n },\r\n getSize(sizeOptions, parentType, parent) {\r\n const style = {};\r\n if (!sizeOptions) {\r\n if (parentType === 'App') {\r\n style.height = \"100%\";\r\n style.width = \"100%\";\r\n }\r\n return style;\r\n }\r\n\r\n if (sizeOptions.Height)\r\n switch (sizeOptions.Height.Mode) {\r\n case 'Fill':\r\n switch (parentType) {\r\n case 'App': style.height = \"100%\"; break;\r\n case 'VerticalStack':\r\n case 'VerticalLayout':\r\n case 'ControlContainer':\r\n case 'BasicTab':\r\n style.flexGrow = \"1\";\r\n break;\r\n case 'HorizontalStack':\r\n case 'HorizontalLayout':\r\n style.alignSelf = \"normal\";\r\n break;\r\n }\r\n\r\n if (sizeOptions.Height.Min)\r\n style.minHeight = sizeOptions.Height.Min + \"px\";\r\n if (sizeOptions.Height.Max)\r\n style.maxHeight = sizeOptions.Height.Max + \"px\";\r\n\r\n break;\r\n\r\n case 'Fixed':\r\n switch (sizeOptions.Height.Units) {\r\n case 'Pixels':\r\n switch (parentType) {\r\n case 'VerticalStack':\r\n case 'ControlContainer':\r\n case 'VerticalLayout':\r\n style.minHeight = sizeOptions.Height.Value + 'px'; style.maxHeight = sizeOptions.Height.Value + 'px'; break;\r\n default:\r\n style.height = sizeOptions.Height.Value + 'px';\r\n break;\r\n }\r\n break;\r\n case 'Percent':\r\n switch (parentType) {\r\n case 'VerticalStack':\r\n case 'ControlContainer':\r\n case 'VerticalLayout':\r\n style.flexBasis = sizeOptions.Height.Value + '%'; break;\r\n default:\r\n style.height = sizeOptions.Height.Value + '%';\r\n break;\r\n }\r\n break;\r\n default:\r\n if (sizeOptions.Height.Value == '0')\r\n style.height = '0';\r\n if (sizeOptions.Width.Value == '0')\r\n style.width = '0';\r\n }\r\n\r\n switch (parentType) {\r\n case 'VerticalStack':\r\n case 'ControlContainer':\r\n case 'VerticalLayout':\r\n style.flexGrow = '0'; style.flexShrink = '0'; break;\r\n }\r\n\r\n if (sizeOptions.Height.Min)\r\n style.minHeight = sizeOptions.Height.Min + \"px\";\r\n\r\n style.overflow = 'auto';\r\n break;\r\n\r\n case 'Auto':\r\n default: // If unassigned, treat as Auto\r\n switch (parentType) {\r\n case 'VerticalStack':\r\n case 'ControlContainer':\r\n case 'VerticalLayout':\r\n style.flexGrow = '0'; style.flexShrink = '0'; break;\r\n }\r\n\r\n if (sizeOptions.Height.Max)\r\n style.maxHeight = sizeOptions.Height.Max + \"px\";\r\n if (sizeOptions.Height.Min)\r\n style.minHeight = sizeOptions.Height.Min + \"px\";\r\n\r\n break;\r\n }\r\n else {\r\n switch (parentType) {\r\n case 'VerticalStack':\r\n case 'ControlContainer':\r\n case 'VerticalLayout':\r\n style.flexGrow = '0'; style.flexShrink = '0'; break;\r\n }\r\n }\r\n\r\n if (sizeOptions.Width)\r\n switch (sizeOptions.Width.Mode) {\r\n case 'Fixed':\r\n switch (sizeOptions.Width.Units) {\r\n case 'Pixels':\r\n switch (parentType) {\r\n case 'HorizontalStack':\r\n case 'HorizontalLayout':\r\n style.minWidth = sizeOptions.Width.Value + 'px'; style.maxWidth = sizeOptions.Width.Value + 'px'; break;\r\n default:\r\n style.width = sizeOptions.Width.Value + 'px';\r\n break;\r\n }\r\n break;\r\n case 'Percent':\r\n switch (parentType) {\r\n case 'HorizontalStack':\r\n case 'HorizontalLayout':\r\n style.flexBasis = sizeOptions.Width.Value + '%'; break;\r\n default:\r\n style.width = sizeOptions.Width.Value + '%';\r\n break;\r\n }\r\n break;\r\n }\r\n\r\n switch (parentType) {\r\n case 'HorizontalStack':\r\n case 'HorizontalLayout':\r\n style.flexGrow = '0'; style.flexShrink = '0'; break;\r\n }\r\n\r\n if (sizeOptions.Width.Min)\r\n style.minWidth = sizeOptions.Width.Min + \"px\";\r\n\r\n style.overflow = 'auto';\r\n break;\r\n\r\n case 'Auto':\r\n switch (parentType) {\r\n case 'ContentDef':\r\n case 'HorizontalStack':\r\n case 'HorizontalLayout':\r\n style.flexGrow = '0'; style.flexShrink = '0'; break;\r\n }\r\n\r\n if (sizeOptions.Width.Min)\r\n style.minWidth = sizeOptions.Width.Min + \"px\";\r\n if (sizeOptions.Width.Max)\r\n style.maxWidth = sizeOptions.Width.Max + \"px\";\r\n\r\n switch (sizeOptions.Width.Align) {\r\n case 'Right': style.marginLeft = 'auto !important'; break;\r\n case 'Left': style.marginRight = 'auto !important'; break;\r\n case 'Middle': style.marginLeft = style.marginRight = 'auto !important'; break;\r\n }\r\n\r\n break;\r\n\r\n case 'Fill':\r\n default: // If unassigned, treat as Fill\r\n switch (parentType) {\r\n case 'App': style.width = \"100%\"; break;\r\n case 'VerticalStack':\r\n case 'VerticalLayout':\r\n case 'ControlContainer':\r\n style.alignSelf = \"normal\";\r\n break; // Nothing, default is to fill\r\n case 'HorizontalStack':\r\n case 'HorizontalLayout':\r\n style.flexGrow = \"1\"; break;\r\n }\r\n\r\n if (sizeOptions.Width.Min)\r\n style.minWidth = sizeOptions.Width.Min + \"px\";\r\n if (sizeOptions.Width.Max)\r\n style.maxWidth = sizeOptions.Width.Max + \"px\";\r\n\r\n break;\r\n }\r\n else {\r\n // If Width is undefined, the default is to Auto\r\n switch (parentType) {\r\n case 'ContentDef':\r\n case 'HorizontalStack':\r\n case 'HorizontalLayout':\r\n style.flexGrow = '0'; style.flexShrink = '0'; break;\r\n }\r\n\r\n // If Width is undefined, the default is to Fill\r\n //switch (parentType) {\r\n // case 'App': style.width = \"100%\"; break;\r\n // case 'VerticalStack':\r\n // case 'VerticalLayout':\r\n // case 'ControlContainer':\r\n // style.alignSelf = \"normal\";\r\n // break; // Nothing, default is to fill\r\n // case 'HorizontalStack':\r\n // case 'HorizontalLayout':\r\n // style.flexGrow = \"1\"; break;\r\n //}\r\n }\r\n\r\n return style;\r\n },\r\n resolveFontSize(size) {\r\n if (!size)\r\n return '';\r\n\r\n switch (size) {\r\n case 'xx-smaller': return '.72em';\r\n case 'x-smaller': return '.8em';\r\n case 'smaller': return '.9em';\r\n case 'normal': return '1em';\r\n case 'larger': return '1.2em';\r\n case 'x-larger': return '1.6em';\r\n case 'xx-larger': return '2.4em';\r\n case 'humongous': return '4em';\r\n case 'colossal': return '6em';\r\n case 'x-colossal': return '8em';\r\n case 'xx-colossal': return '10em';\r\n }\r\n },\r\n compileStyleHints(styleHints) {\r\n const styles = {};\r\n\r\n if (styleHints.BackgroundColor)\r\n styles.backgroundColor = utils.compile(null, styleHints.BackgroundColor);\r\n\r\n if (styleHints.ForegroundColor)\r\n styles.foregroundColor = utils.compile(null, styleHints.ForegroundColor);\r\n\r\n return styles;\r\n },\r\n resolveCustomClasses(styleHints, context) {\r\n if (!styleHints || !styleHints.CustomClasses) {\r\n return \"\"\r\n }\r\n\r\n const customClasses = utils.evaluate(styleHints.CustomClasses, context);\r\n return customClasses;\r\n }, \r\n resolveStyleHints(styleHints, context) {\r\n if (!styleHints) return {};\r\n\r\n // Evaluate expressions within the style hints object\r\n const styles = utils.evaluateObject(styleHints, context);\r\n if (!styles) return {};\r\n\r\n // Insure background color is honored (required for vuetify buttons)\r\n if (styles.BackgroundColor)\r\n styles.BackgroundColor += ' !important';\r\n\r\n // Translate key words into actual styles\r\n return utils.getStyleHints(styles);\r\n },\r\n openForLocalEdit(args) {\r\n // Construct a Tab action and pass the document URL (fn) as a parameter\r\n EventBus.$emit('OpenDocumentEditor', args);\r\n },\r\n async globalMessageBroadcast(message, data) {\r\n const actions = [\r\n {\r\n PrimitiveAction: true,\r\n ActionType: 'Broadcast',\r\n ActionBroadcastDirection: 'Global',\r\n ActionData: {\r\n Message: message,\r\n MessageData: data,\r\n },\r\n }\r\n ];\r\n\r\n await this.executeAndCompileAllActions(actions, data, this);\r\n },\r\n OpenEditorForExternalEdit(args, shared) {\r\n if (shared)\r\n editor.showChildWindow(args);\r\n else {\r\n // This requires manually logging in, but it allows the edit window to be bookmarked, etc.\r\n const url = `/?ControlURL=v1/Vue/ExternalEditor_v2&type=${args.Type}&name=${encodeURIComponent(args.Name)}&id=${args.Id}`; // #v1/Vue/ExternalEditor_v2`;\r\n window.open(url, '_blank', 'noopener');\r\n }\r\n },\r\n OpenDocumentStandAlone(args) {\r\n //const url = `/#${name}`;\r\n\r\n //TODO: Generate a new Token\r\n const url = `/?ControlURL=${args.Name}`;\r\n\r\n window.open(url, '_blank', 'noopener');\r\n },\r\n\r\n renameProperty: function (object, oldname, newname) {\r\n // Renames a property of an object while preserving the order of the properties\r\n const arr = utils.toArray(object);\r\n const idx = arr.findIndex(e => e.key == oldname);\r\n if (idx >= 0) {\r\n arr[idx].key = newname;\r\n return careHelpfulFunctions.toLookup(arr, \"key\", \"value\");\r\n }\r\n return object;\r\n },\r\n\r\n reorderProperty: function (object, name, direction) {\r\n // Changes the order of a property within an object\r\n // direction: 1 = down, -1 = up\r\n const arr = utils.toArray(object);\r\n const idx = arr.findIndex(e => e.key == name);\r\n switch (direction) {\r\n case 1: // down\r\n if (idx < arr.length - 1)\r\n arr.splice(idx + 1, 0, arr.splice(idx, 1)[0]);\r\n break;\r\n case -1: // up\r\n if (idx > 0)\r\n arr.splice(idx - 1, 0, arr.splice(idx, 1)[0]);\r\n break;\r\n default:\r\n return object;\r\n }\r\n return careHelpfulFunctions.toLookup(arr, \"key\", \"value\");\r\n },\r\n\r\n getBaseScopedContext(control, input, vars, sourceData) {\r\n let context = {\r\n ...methods,\r\n $parent: control,\r\n GlobalVars: utils.global_variables,\r\n Base: control.Base,\r\n root: control.Root,\r\n Root: control.Root,\r\n Self: control,\r\n scopeitems: control.scopeitems,\r\n controlscope: control.controlscope,\r\n Control: control.Control,\r\n };\r\n\r\n if (input) {\r\n context.Input = input;\r\n }\r\n\r\n if (vars) {\r\n context.Vars = vars;\r\n }\r\n\r\n if(sourceData) {\r\n context.SourceData = sourceData;\r\n }\r\n\r\n return context;\r\n },\r\n\r\n logout() {\r\n if (utils.document_cache)\r\n utils.document_cache.clearCache();\r\n },\r\n\r\n generateGuid() {\r\n var d = new Date().getTime();\r\n var uuid = 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {\r\n var r = (d + Math.random() * 16) % 16 | 0;\r\n d = Math.floor(d / 16);\r\n return (c == 'x' ? r : (r & 0x3 | 0x8)).toString(16);\r\n });\r\n return uuid;\r\n }\r\n};\r\n\r\nexport default utils;","module.exports = __webpack_public_path__ + \"img/BlankCard.79ca2824.jpg\";","import Vue from 'vue';\r\nimport utils from '../../Shared/utils.jsx';\r\nimport BaseComponent from './BaseComponentMixin.jsx';\r\nimport EventBus from '../event-bus.js';\r\nimport api from '@/Services/api';\r\nimport careHelpfulFunctions from '../careHelpfulFunctions.jsx';\r\nimport careService from '@/Services/careService.jsx';\r\nimport { PlainWrapper, ObjProxy } from '@/Shared/helperClasses';\r\n\r\nVue.component('dynamic-user-control', {\r\n mixins: [BaseComponent],\r\n data: function () {\r\n return {\r\n key: null,\r\n control: null,\r\n headers: {},\r\n //controldataexpr: null,\r\n controlurlexpr: null,\r\n newscopeitems: {},\r\n uselocalscope: false,\r\n\r\n showMenu: false,\r\n x: 0,\r\n y: 0,\r\n\r\n dynamicData: false,\r\n }\r\n },\r\n created() {\r\n this.key = utils.generateUUID();\r\n\r\n if (this.controlData) {\r\n this.controldataexpr = this.utils.compileDynamicObject(this, this.controlData);\r\n\r\n // Intentionally not putting this in the data property - keeps it from getting modified by Vue (which it would do to make it reactive)\r\n this.controldatavalue = this.utils.evaluateDynamicObject(this.controldataexpr, this);\r\n }\r\n\r\n if (this.controlURL)\r\n this.controlurlexpr = this.utils.compile(this, this.controlURL);\r\n\r\n this.watcher$ = this.$watch(\r\n function () {\r\n if (this.controlURL)\r\n return this.controlURLvalue;\r\n else\r\n return null;\r\n },\r\n function (val, oldval) {\r\n this.Refresh();\r\n }\r\n );\r\n\r\n // Listen for EmitControlEvent actions\r\n this.$on('Action-EmitControlEvent', this.performEmitControlEvent);\r\n },\r\n destroyed() {\r\n this.watcher$();\r\n\r\n this.$off('Action-EmitControlEvent', this.performEmitControlEvent);\r\n\r\n // Remove this user control from the parent's Control object\r\n if (this.scopeitems && this.controlName && (this.controlName in this.scopeitems))\r\n delete this.scopeitems[this.controlName];\r\n }, \r\n async mounted() {\r\n await this.Refresh();\r\n },\r\n props: {\r\n controlURL: '',\r\n controlName: '',\r\n payload: null,\r\n controlEvents: null,\r\n },\r\n computed: {\r\n controlURLvalue: function () {\r\n if (this.controlurlexpr)\r\n return utils.evaluate(this.controlurlexpr, this);\r\n else\r\n return '';\r\n },\r\n controlDataValue: function () {\r\n return this.controldatavalue;\r\n },\r\n sizeStyle() {\r\n //const sizeOptions = { ...this.getSizeDefaults(), ...utils.getSize(this.control.ControlData.SizeOptions, this.parentType, this.$parent) };\r\n //return sizeOptions;\r\n //return { display: 'flex', flexDirection: 'column', ...sizeOptions };\r\n\r\n return { display: 'flex', flexDirection: 'column', flexGrow: '1', overflow: 'auto', position: 'relative', alignSelf: 'normal' };\r\n },\r\n\r\n Params: function () {\r\n // When Params is referenced in the context of InitialValues for Variables, it must\r\n // refer to the parameter values passed into the control, which are read through the\r\n // controldatavalue proxy. But the unpredictable references to Params will come from\r\n // expressions embedded within parameters that were provided by the parent context.\r\n // In that case, Params must refer to the parent's Params object, which is the controlscope\r\n // object passed into this component via its props.\r\n\r\n return this.uselocalscope ? this.controldatavalue : this.controlscope;\r\n },\r\n Control: function () {\r\n // When Control is referenced in the context of InitialValues for Variables, it must\r\n // refer to the local context, which contains references to the child controls. But\r\n // the unpredictable references to Control will come from expressions embedded within\r\n // parameters that were provided by the parent context. In that case, Control must\r\n // refer to the parent's Control context, which is the scopeitems passed into this\r\n // component via its props.\r\n\r\n return this.uselocalscope ? this.newscopeitems : this.scopeitems;\r\n },\r\n },\r\n methods: {\r\n async refreshchildren(e) {\r\n utils.api.clearCache();\r\n await this.Refresh();\r\n this.key = utils.generateUUID();\r\n },\r\n async Refresh()\r\n {\r\n if (this.controlURL) {\r\n try {\r\n //utils.debug(`UserControl loading from URL: ${this.controlURLvalue}`);\r\n //utils.api.clearCache();\r\n\r\n let apiRequest = {\r\n method: 'GET',\r\n url: `Document/UserControl/${this.controlURLvalue}`,\r\n doNotUseWebsocket: true,\r\n flatten: false,\r\n cache: this.cacheControl || false\r\n };\r\n \r\n let c = await api.apiRequest(apiRequest);\r\n let responseControl = c.data?.Result || c.data;\r\n if (!responseControl) {\r\n apiRequest.url = `Document/UserControl/public/${this.controlURLvalue}`;\r\n c = await await api.apiRequest(apiRequest);\r\n responseControl = c.data?.Result || c.data;\r\n }\r\n\r\n if (responseControl.$$ScopeItems) {\r\n this.compileScopeItems(responseControl.$$ScopeItems);\r\n //delete responseControl.$$ScopeItems;\r\n }\r\n else {\r\n // Create default empty control scope for children\r\n // this.newscopeitems = {};\r\n\r\n // Add an empty object as this user control to the parent's control scope object, since we\r\n // have no $$ScopeItems to embed into our public object.\r\n if (this.scopeitems && this.controlName)\r\n this.scopeitems[this.controlName] = {}; // new PlainWrapper({});\r\n }\r\n\r\n this.control = responseControl;\r\n this.headers = c.headers;\r\n }\r\n catch (e) {\r\n utils.warn(`UserControl ${this.controlURL} failed to load`, e);\r\n this.control = {};\r\n }\r\n }\r\n else\r\n this.control = {};\r\n\r\n if (this.controlEvents && this.controlEvents.OnControlLoaded)\r\n await utils.executeAndCompileAllActions(this.controlEvents.OnControlLoaded, null, this);\r\n },\r\n compileScopeItems(items) {\r\n // this.newscopeitems becomes this.scopeitems for all child controls, which\r\n // is read as Control. This contains all the Variables, Functions, and control\r\n // references within the entire user control.\r\n\r\n // Params will be used to access this.controldatavalue, which is the proxy that\r\n // allows reading parameters passed into the user control from the parent. It\r\n // is provided to the child controls via the controlscope property.\r\n\r\n const public_vars = { };\r\n if (items.Variables) {\r\n // Cause computed Control value to read from controldatavalue instead of controlscope\r\n this.uselocalscope = true;\r\n\r\n for (let i = 0; i < items.Variables.length; i++) {\r\n const v = items.Variables[i];\r\n\r\n if (typeof v.InitialValue === 'string' && !v.InitialValue.startsWith('{#')) {\r\n const f = utils.compile(this, v.InitialValue);\r\n Vue.set(this.newscopeitems, v.Name, utils.evaluate(f, this));\r\n }\r\n else {\r\n const f = utils.compileObject(this, v.InitialValue);\r\n Vue.set(this.newscopeitems, v.Name, utils.evaluateObject(f, this));\r\n }\r\n \r\n if (v.Public)\r\n public_vars[v.Name] = this.newscopeitems[v.Name];\r\n }\r\n\r\n this.uselocalscope = false;\r\n }\r\n\r\n const public_funcs = { };\r\n let js = 'function controller(basicService, scope, api, controlModel, util, promiseHelper)\\n{\\n';\r\n if(items.Functions) {\r\n for (let i = 0; i < items.Functions.length; i++) {\r\n const f = items.Functions[i];\r\n js += `\\nthis.${f.Name} = ${f.Body};\\n`;\r\n \r\n if (f.Public)\r\n public_funcs[f.Name] = true;\r\n }\r\n }\r\n js += '}';\r\n\r\n const finalContext = this;\r\n const api = utils.apiWrapper; // apiService;\r\n const chf = careHelpfulFunctions;\r\n const care = careService;\r\n const Control = this.newscopeitems;\r\n const Params = this.controldatavalue;\r\n\r\n let theJavascript = eval(\"new (\" + js + \")(care, null, api, finalContext, chf, Control, Params);\");\r\n\r\n for (let key in theJavascript)\r\n if (typeof theJavascript[key] === 'function') {\r\n this.newscopeitems[key] = theJavascript[key].bind(this.newscopeitems);\r\n\r\n if (key in public_funcs)\r\n public_vars[key] = this.newscopeitems[key];\r\n }\r\n\r\n if(items.Commands) {\r\n for (let i = 0; i < items.Commands.length; i++) {\r\n const cmd = items.Commands[i];\r\n public_vars[cmd.Name] = { Actions: cmd.Actions, ControlScope: this.controldatavalue, ScopeItems: this.newscopeitems };\r\n }\r\n }\r\n\r\n this.commands = items.Commands;\r\n\r\n // Add this user control to the parent's Control object so they can refer to\r\n // the public variables and functions in this control by name.\r\n if (this.scopeitems && this.controlName)\r\n this.scopeitems[this.controlName] = public_vars; // new PlainWrapper(public_vars);\r\n },\r\n showContextMenu(e) {\r\n e.preventDefault()\r\n this.showMenu = false\r\n this.x = e.clientX\r\n this.y = e.clientY\r\n this.$nextTick(() => {\r\n this.showMenu = true\r\n })\r\n },\r\n openForLocalEdit(e, fn) {\r\n e.preventDefault();\r\n utils.openForLocalEdit({ Type: 'UserControl', Name: fn });\r\n },\r\n openForExternalEdit(e, fn, controlOwnerId, shared) {\r\n e.preventDefault();\r\n utils.OpenEditorForExternalEdit({ Type: 'UserControl', Name: fn, OwnerId: controlOwnerId }, shared);\r\n },\r\n openDocumentStandAlone(e, fn) {\r\n e.preventDefault();\r\n utils.OpenDocumentStandAlone({ Name: fn });\r\n },\r\n\r\n async performEmitControlEvent(action) {\r\n utils.log(`UserControl EmitControlEvent ${action.ActionData.EventName}`);\r\n\r\n if (action.ActionData.Debug && action.ActionData.Debug.BreakPoint) debugger;\r\n\r\n try {\r\n const eventName = utils.evaluate(action.eventName, action.context);\r\n const input = utils.evaluateObject(action.input, action.context);\r\n\r\n if (this.controlDataValue[eventName]) {\r\n // context is \"this\" because we want the actions to execute in the scope of the user control's parent, not the action's parent\r\n await utils.executeAndCompileAllActions(this.controlDataValue[eventName], input, this);\r\n }\r\n\r\n try {\r\n await utils.success(action);\r\n }\r\n catch (e) { }\r\n }\r\n catch (e) {\r\n utils.error(`ActionService EmitControlEvent ${action.ActionData.EventName} failed`, e);\r\n\r\n try {\r\n await utils.failure(action);\r\n }\r\n catch (e) { }\r\n }\r\n finally {\r\n try {\r\n await utils.complete(action);\r\n }\r\n catch (e) { }\r\n\r\n // Complete the promise for the executeAction method\r\n action.FinishFunc(true);\r\n }\r\n },\r\n },\r\n render(h) {\r\n /*\r\n * KNOWN ISSUE (7/9/2021):\r\n * When the contents of this referenced user control is nonvisual (i.e. Javascript),\r\n * the container that we output is still taking up space in the DOM and throws off\r\n * the layout of the surrounding controls. See the administrative Phone Settings\r\n * screen for an example. In that screen, I moved the Javascript reference control\r\n * down to the bottom of the page. It was above the form and it would force the form\r\n * to align to the bottom of the window.\r\n */\r\n\r\n if (!this.control || !this.control.ControlData) {\r\n //utils.debug(`UserControl URL:${this.controlURLvalue} rendering blank *********** *!*!*!*`);\r\n\r\n return (\r\n \r\n
\">\r\n
\r\n
\r\n );\r\n }\r\n\r\n //utils.debug(`UserControl URL:${this.controlURLvalue} rendering *********** *!*!*!*`);\r\n\r\n let DynamicControl = utils.getDynamicComponent(h, this.control);\r\n\r\n if (!DynamicControl)\r\n DynamicControl = 'default-unknown';\r\n\r\n //utils.debug(`*********** *!*!*!* UserControl ${this.name || ''} URL:${this.controlURLvalue} of ${DynamicControl} parent ${this.parentType} from ${this.controlURL} *!*!*!*`); // - ${JSON.stringify(this.control.ControlData.SizeOptions || {})} - ${JSON.stringify(this.sizeStyle || {})}`);\r\n\r\n let debug;\r\n if (this.isdebug)\r\n debug = {\r\n controlURLvalue: this.controlURLvalue,\r\n controlCustomerId: this.headers?.customerid,\r\n refreshchildren: this.refreshchildren,\r\n openForLocalEdit: this.openForLocalEdit,\r\n openForExternalEdit: this.openForExternalEdit,\r\n openDocumentStandAlone: this.openDocumentStandAlone,\r\n };\r\n\r\n return (\r\n \r\n this.finishRenderHandler(reference) }}\r\n type={this.control.ControlType}\r\n name={this.control.ControlData.Name}\r\n root={this.root}\r\n asbase={this.asbase}\r\n parentType={this.parentType}\r\n controlData={this.control.ControlData}\r\n paramData={this.controlDataValue}\r\n payload={this.payload}\r\n on={this.$listeners}\r\n debug={debug}\r\n scopeitems={this.newscopeitems}\r\n controlscope={this.controldatavalue}\r\n cacheControl={this.control.CacheControl}\r\n controlEvents={this.control.Events}\r\n >\r\n \r\n \r\n );\r\n\r\n // style=\"display: flex; flex-direction: column; flex-grow: 1; overflow: auto; position: relative; align-self: normal\">\r\n /*\r\n * This code has been moved to the VerticalStackContent since I cannot add the debug refresh icon\r\n * without altering the structure of the HTML and breaking the layout. (9/14/2021)\r\n * \r\n if (false && this.isdebug)\r\n return (\r\n \r\n \r\n this.refreshchildren(e)}\r\n on-contextmenu={(e) => this.showContextMenu(e)}\r\n >\r\n
\r\n \r\n this.finishRenderHandler(reference) }}\r\n type={this.control.ControlType} \r\n name={this.control.ControlData.Name} \r\n root={this.root} \r\n asbase={this.asbase}\r\n parentType={this.parentType}\r\n controlData={this.control.ControlData} \r\n paramData={this.controlDataValue}\r\n payload={this.payload}\r\n on={this.$listeners}>\r\n \r\n \r\n \r\n \r\n \r\n {this.controlURLvalue}\r\n \r\n\r\n \r\n\r\n \r\n this.refreshchildren(e)}>\r\n \r\n mdi-refresh\r\n \r\n\r\n \r\n Reload\r\n Flushes cache and reloads\r\n \r\n \r\n\r\n this.openForLocalEdit(e, this.controlURLvalue)}>\r\n \r\n mdi-pencil\r\n \r\n\r\n \r\n Edit\r\n Local Tab\r\n \r\n \r\n\r\n this.openForExternalEdit(e, this.controlURLvalue)}>\r\n \r\n mdi-pencil-box-multiple\r\n \r\n\r\n \r\n Edit\r\n New Window\r\n \r\n \r\n\r\n this.openDocumentStandAlone(e, this.controlURLvalue)}>\r\n \r\n mdi-play-box-multiple\r\n \r\n\r\n \r\n Open Stand-Alone\r\n New Window\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n );\r\n else\r\n */\r\n\r\n }\r\n});\r\n\r\n","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FileDiff.vue?vue&type=style&index=0&id=7d4bd204&prod&lang=css&\"","import Vue from 'vue';\r\nimport _ from 'lodash';\r\nimport apiService from '@/Services/api';\r\nimport token from '@/Services/token';\r\nimport utils from '@/Shared/utils';\r\nimport { appSettings, carei18nLanguages } from '@/Shared/appSettings';\r\nimport localeService from '@/Services/locale';\r\n\r\nexport default {\r\n isLoaded: false,\r\n internalLog: null,\r\n translationList: {},\r\n globalTranslationList: {},\r\n uploadInterval: null,\r\n\r\n //This method is only called from the App.Vue when the site gets created so we can subscribe\r\n async created() {\r\n appSettings.careService = this;\r\n this.internalLog = appSettings?.DebugInfo?.ConsoleLog;\r\n let storedLanguage = null;\r\n let localeKey = appSettings.NoContextLocalStorage('careLocaleKey');\r\n // This is a backwards compatibility fix. The locale key was once set in local storage without using our wrapper. We want to make sure we read \r\n // that out. The setSelectedLanguage method call below will make sure we save it using our wrapper.\r\n if (!localeKey)\r\n localeKey = localStorage.getItem('careLocaleKey');\r\n\r\n let languageKey = appSettings.NoContextLocalStorage('careLanguageKey');\r\n // This is a backwards compatibility fix. The language key was once set in local storage without using our wrapper. We want to make sure we read \r\n // that out. The setSelectedLanguage method call below will make sure we save it using our wrapper.\r\n if (!languageKey)\r\n languageKey = localStorage.getItem('careLanguageKey')\r\n\r\n if (localeKey !== null) {\r\n storedLanguage = localeKey;\r\n } else if (languageKey !== null) {\r\n storedLanguage = languageKey;\r\n } else {\r\n storedLanguage = this.getBrowserLocale();\r\n }\r\n\r\n this.setSelectedLanguage(storedLanguage);\r\n\r\n await this.getTranslatedList();\r\n\r\n // TODO: Once we add the doc info, we can start uploading new language keys on an interval\r\n this.uploadInterval = setInterval(() => {\r\n this.uploadNewLanguageKeys();\r\n }, 300000);\r\n\r\n // run the job to update translations \r\n this.isLoaded = true;\r\n },\r\n getBrowserLocale() {\r\n let navigatorLanguage = navigator.language;\r\n\r\n // remove any sub language part and only use the main language setting\r\n if (navigatorLanguage.indexOf('-') > -1) {\r\n navigatorLanguage = navigatorLanguage.substr(0, navigatorLanguage.indexOf('-'));\r\n }\r\n\r\n return navigatorLanguage;\r\n },\r\n async uploadNewLanguageKeys() {\r\n\r\n if (!_.isEmpty(this.translationList)) {\r\n // call API in promise then refresh /Translation/TranslationList\r\n let currentTranslationList = this.translationList;\r\n let totalKeys = 0;\r\n for (let property in currentTranslationList)\r\n totalKeys += Object.keys(currentTranslationList[property]).length;\r\n\r\n try {\r\n let res = await apiService.apiRequest({\r\n method: 'POST',\r\n data: currentTranslationList,\r\n url: '/Language/UpdateTranslationList',\r\n doNotUseWebsocket: true\r\n });\r\n\r\n if (res) {\r\n this.translationList = {};\r\n this.logInfo(\"Translation Keys Added: \" + totalKeys);\r\n }\r\n\r\n }\r\n catch (error) {\r\n this.logError(`Error adding Translation Keys reason: ${error.type}`);\r\n }\r\n\r\n\r\n }\r\n },\r\n updateTranslationList(key, docinfo) {\r\n let customerid = \"50\";\r\n if (docinfo?.CustomerID)\r\n customerid = docinfo.CustomerID;\r\n\r\n if (!this.translationList[customerid] || !this.translationList[customerid][key]) {\r\n // add the missing key to the translation list to be uploaded to server\r\n if (!this.translationList[customerid])\r\n this.translationList[customerid] = {};\r\n\r\n let transDoc = this.translateDocInfo(docinfo);\r\n this.translationList[customerid][key] = transDoc;\r\n\r\n // also add to the current in memory translation list\r\n if (!this.globalTranslationList[customerid])\r\n this.globalTranslationList[customerid] = {};\r\n\r\n this.globalTranslationList[customerid][key] = \"\"; // if the key and value are the same we optimize by making the value \"\"\r\n }\r\n },\r\n translateDocInfo(docinfo) {\r\n //This is temporary until we have DocInfo Populated\r\n return {\r\n ObjectId: null,\r\n FullPath: null,\r\n DocType: null,\r\n DocURL: null,\r\n CustomerID: \"50\",\r\n Id: null,\r\n PublicBool: false,\r\n Description: \"Website Experience translation\"\r\n };\r\n /* C# needs object names it can translate instead of $objectId and public */\r\n var rtnVal = null;\r\n\r\n if (docinfo) {\r\n rtnVal = {\r\n ObjectId: docinfo.$objectId,\r\n FullPath: docinfo.fullPath,\r\n DocType: docinfo.docType,\r\n DocURL: docinfo.docURL,\r\n CustomerID: docinfo.CustomerID,\r\n Id: docinfo.id,\r\n PublicBool: docinfo.public,\r\n Description: docinfo.description\r\n };\r\n }\r\n return rtnVal;\r\n },\r\n getDescription(item) {\r\n var docDesc = item.Name || item.DocURL || item.ControlURL || \"\";\r\n\r\n if (item.MenuName)\r\n docDesc = item.MenuName;\r\n\r\n if (item.MenuPath)\r\n docDesc += \"/\" + item.MenuPath;\r\n\r\n if (item.MenuItemData?.Title)\r\n docDesc += \"/\" + item.MenuItemData.Title;\r\n\r\n return docDesc;\r\n },\r\n async getTranslatedList() {\r\n try {\r\n var res = await apiService.apiRequest({\r\n method: 'GET',\r\n url: \"/Language/TranslationList/\" + appSettings.LanguageKey,\r\n doNotUseWebsocket: true\r\n });\r\n\r\n this.globalTranslationList = res.data;\r\n return res;\r\n }\r\n catch (error) {\r\n this.logError(\"ERROR Retreiving Translation List Keys. \" + error);\r\n return error;\r\n }\r\n },\r\n //Accepts a language key such as \"en\" for English, \"de\" for German\r\n setSelectedLanguage(language) {\r\n this.uploadNewLanguageKeys(); // send off what we have to database\r\n\r\n language = language.toLowerCase();\r\n\r\n let locale = '';\r\n\r\n if (language.includes('-')) {\r\n let parts = language.split('-');\r\n locale = language;\r\n language = parts[0];\r\n } else {\r\n locale = language;\r\n }\r\n\r\n let lang = carei18nLanguages.find(langItem => langItem.key == language || langItem.name.toLowerCase() == language);\r\n\r\n if (lang) {\r\n appSettings.LanguageKey = lang.key;\r\n appSettings.NoContextLocalStorage('careLanguageKey', appSettings.LanguageKey);\r\n\r\n appSettings.LocaleKey = locale;\r\n appSettings.NoContextLocalStorage('careLocaleKey', locale);\r\n\r\n localeService.setLocale(locale);\r\n\r\n //if (token.UserID()) {\r\n // apiService.apiRequest({\r\n // method: \"POST\",\r\n // url: \"/Apps/Locales/SaveUserLocale?Locale=\" + language,\r\n // doNotUseWebsocket: true\r\n // }).catch( \r\n // error => {\r\n // logError(\"ERROR Saving User Locale. \" + error);\r\n // }\r\n // );\r\n //}\r\n\r\n if (this.isLoaded) {\r\n // system refresh if we change language after were loaded. This is done so the language list can reload and the controls can all update with new translations\r\n window.location.reload();\r\n }\r\n\r\n return;\r\n }\r\n else {\r\n utils.error(\"Invalid LanguageKey: \" + language);\r\n\r\n // fall back to english\r\n this.setSelectedLanguage(\"en-us\");\r\n }\r\n },\r\n guid() {\r\n return utils.generateUUID();\r\n },\r\n convertCamelToSnake(camelString) {\r\n var result = camelString.replace(/(?:^|\\.?)([A-Z])/g, function (x, y) { return \"-\" + y.toLowerCase() }).replace(/^\\-/, \"\");\r\n return result;\r\n },\r\n alert(alertString) {\r\n this.logInfo(alertString);\r\n $window.alert(alertString);\r\n },\r\n formatJson(json) {\r\n return typeof json === 'string' ? json : JSON.stringify(json, undefined, 2);\r\n },\r\n logDateFormat() {\r\n var date = new Date();\r\n return `${date.getHours()}:${date.getMinutes()}:${date.getSeconds()}.${date.getMilliseconds()}`;\r\n },\r\n logInternally(type, date, message, functionName, lineNumber, fileName) {\r\n if (this.internalLog.length > appSettings.DEBUG_CONSOLE_LINES) {\r\n this.internalLog.splice(0, 1);\r\n }\r\n\r\n this.internalLog.push({\r\n type: type,\r\n date: date,\r\n message: message,\r\n functionName: functionName,\r\n lineNumber: lineNumber,\r\n fileName: fileName,\r\n $$ID: this.guid()\r\n });\r\n },\r\n logInfo(message, css) {\r\n var date = this.logDateFormat();\r\n\r\n if (appSettings.ShowAllLogMessages) {\r\n console.log(`%c${date} - ${message}`, (css || 'color: green'));\r\n this.logInternally('info', date, message);\r\n }\r\n },\r\n logDebug(message, css) {\r\n if (appSettings.ShowAllLogMessages) {\r\n var date = this.logDateFormat();\r\n\r\n console.log(`%c${date} - ${message}`, (css || 'color: blue'));\r\n this.logInternally('debug', date, message);\r\n }\r\n },\r\n // NOTE: if you log with stacktrace, the console message will be out of order because the stack trace is retrieved async and will appear in log when data is returned\r\n // this can make looking at console stream very confusing because the error messages do not appear when they occured (although timestamp will be correct)\r\n logError(message, withStackTrace) {\r\n var date = this.logDateFormat();\r\n\r\n //if (withStackTrace)\r\n //{\r\n // var traceResult = StackTrace.get({ offline: true });\r\n\r\n // if (traceResult.promise)\r\n // traceResult.promise.then(stackFrames => this.finishLogError(stackFrames, message, date) );\r\n // else\r\n // this.finishLogError(traceResult.result, message, date);\r\n //}\r\n //else\r\n {\r\n console.error(`%c${date} - ${message}`, 'color: red');\r\n this.logInternally('error', date, message);\r\n }\r\n },\r\n logErrorWithDocDebugLink(message, context) {\r\n var docInfo = JSON.stringify(context.DocInfo());\r\n\r\n obj = {\r\n get OpenDocument() {\r\n appSettings.OpenDocumentForDebug(JSON.parse(docInfo));\r\n return \"Opening Document\";\r\n },\r\n docInfo: JSON.parse(docInfo)\r\n };\r\n\r\n var date = this.logDateFormat();\r\n console.error(`%c${date} - ${message}\\nDocument: ${context.DocInfo().docURL}\\nOpen Document: %o`, 'color: red', obj);\r\n this.logInternally('error', date, message);\r\n },\r\n finishLogError(stackFrames, message, date) {\r\n if (stackFrames.length > 2) {\r\n var fileName = stackFrames[2].fileName;\r\n var functionName = stackFrames[2].functionName;\r\n var lineNumber = stackFrames[2].lineNumber;\r\n\r\n console.log(`%c${date} - ${message}, %c${functionName}(), %cLine: ${lineNumber}, %c${fileName}`,\r\n 'color: red', 'color: green', 'color: purple', 'color: brown');\r\n\r\n this.logInternally('error', date, message, functionName, lineNumber, fileName);\r\n }\r\n },\r\n urlEncode(uri) {\r\n return window.encodeURIComponent(uri);\r\n },\r\n ValueInList(value, list) {\r\n if (value && list && _.isArray(list)) {\r\n return !!list.find(element => element == value);\r\n } else if (value === list) {\r\n return true;\r\n }\r\n return false;\r\n },\r\n\r\n // remove all the properties on an object and then copy the properties from another object into it.\r\n // this is done so that references to the original object remain intact - rather than assign a new object\r\n clearAndExtend(objToClear, sourceObj) {\r\n // modify the existing model object so existing references remain intact\r\n this.clearObject(objToClear);\r\n Object.assign(objToClear, sourceObj);\r\n },\r\n clearObject(objToClear) {\r\n // modify the existing model object so existing references remain intact\r\n for (let prop in objToClear) {\r\n if (objToClear.hasOwnProperty(prop))\r\n Vue.delete(objToClear, prop);\r\n }\r\n },\r\n\r\n // This will remove any unwanted properties from data before sending back to server. ($$hashKeys added by the grid)\r\n prepareObjectForServer(originalData) {\r\n if (!originalData)\r\n return originalData;\r\n\r\n var filteredData = _.cloneDeep(originalData); // makes a deep copy of the object\r\n\r\n // remove all unwanted properties from copy\r\n this.recursivelyRemoveUnwantedObjectProperties(filteredData);\r\n\r\n return filteredData;\r\n },\r\n\r\n recursivelyRemoveUnwantedObjectProperties(obj) {\r\n if (!obj)\r\n return;\r\n\r\n // this will loop through all array or object members\r\n for (const [key, item] of Object.entries(obj)) {\r\n if (typeof key == 'string' && (key.substr(0, 2) == \"$$\" || (key.startsWith('$') && key.endsWith('_expanded')))) {\r\n delete obj[key];\r\n } else if (typeof item == 'object')\r\n this.recursivelyRemoveUnwantedObjectProperties(item);\r\n };\r\n }\r\n\r\n};","// defaultBroadcastDirection: \"Global\", \"Parent\", \"Children\", \"BaseContainerChildren\"\r\nconst actionDefaults = {\r\n // System Messages, not intended for ActionMessages\r\n\r\n CustomerNameChanged: { name: 'CustomerNameChanged', defaultBroadcastDirection: \"Global\" },\r\n SelectedCustomerChanged: { name: 'SelectedCustomerChanged', defaultBroadcastDirection: \"Global\" },\r\n SelectedUserChanged: { name: 'SelectedUserChanged', defaultBroadcastDirection: \"Global\" },\r\n Logout: { name: 'Logout', defaultBroadcastDirection: \"Global\" },\r\n UserIdleLogout: { name: 'UserIdleLogout', defaultBroadcastDirection: \"Global\" },\r\n UserIdleWarning: { name: 'UserIdleWarning', defaultBroadcastDirection: \"Global\" },\r\n UserIdleReset: { name: 'UserIdleReset', defaultBroadcastDirection: \"Global\" },\r\n UserIdleEnable: { name: 'UserIdleEnable', defaultBroadcastDirection: \"Global\" },\r\n UnsubscribeAllServerEvents: { name: 'UnsubscribeAllServerEvents', defaultBroadcastDirection: \"Global\" },\r\n WebSocketConnected: { name: 'WebSocketConnected', defaultBroadcastDirection: \"Global\" },\r\n WebSocketDisconnected: { name: 'WebSocketDisconnected', defaultBroadcastDirection: \"Global\" },\r\n RTWebSocketConnected: { name: 'RTWebSocketConnected', defaultBroadcastDirection: \"Global\" },\r\n RTWebSocketDisconnected: { name: 'RTWebSocketDisconnected', defaultBroadcastDirection: \"Global\" },\r\n $ROUTE_CHANGE_SUCCESS: { name: '$routeChangeSuccess', defaultBroadcastDirection: \"Global\" },\r\n RefreshAccessTokenAsync: { name: 'RefreshAccessTokenAsync', defaultBroadcastDirection: \"Global\" },\r\n CloseTab: { name: 'CloseTab', defaultBroadcastDirection: \"Global\" },\r\n AccessTokenAssigned: { name: 'AccessTokenAssigned', defaultBroadcastDirection: \"Global\" },\r\n jsBeautify: { name: 'jsBeautify', defaultBroadcastDirection: \"Parent\" },\r\n PublishModel: { name: 'PublishModel', defaultBroadcastDirection: \"Parent\" },\r\n RelayAction: { name: 'RelayAction', defaultBroadcastDirection: \"Parent\" },\r\n ControlRenderComplete: { name: 'ControlRenderComplete', defaultBroadcastDirection: \"Parent\" },\r\n AsyncLookupComplete: { name: 'AsyncLookupComplete', defaultBroadcastDirection: \"Parent\" },\r\n ChannelEvent: { name: 'ChannelEvent', defaultBroadcastDirection: \"Global\" }, // websocket events\r\n RealTimeEvent: { name: 'RealTimeEvent', defaultBroadcastDirection: \"Global\" }, // websocket events\r\n RealTimeEvent: { name: 'RealTimeEvent', defaultBroadcastDirection: \"Global\" }, // rt websocket events\r\n ApiRequestStarted: { name: 'ApiRequestStarted', defaultBroadcastDirection: \"Global\" },\r\n ApiRequestFinished: { name: 'ApiRequestFinished', defaultBroadcastDirection: \"Global\" },\r\n ViewSpacesTabSelectByName: { name: 'ViewSpacesTabSelectByName', defaultBroadcastDirection: \"Global\" },\r\n FacebookInit: { name: 'FacebookInit', defaultBroadcastDirection: \"Global\" },\r\n FacebookAuthchange: { name: 'FacebookAuthchange', defaultBroadcastDirection: \"Global\" },\r\n CCInfoResponse: { name: 'CCInfoResponse', defaultBroadcastDirection: \"Global\" },\r\n UIEvent: { name: 'UIEvent', defaultBroadcastDirection: \"Global\" },\r\n ParentToChildrenUIEvent: { name: 'ParentToChildrenUIEvent', defaultBroadcastDirection: \"Global\" },\r\n Screenshot: { name: 'Screenshot', defaultBroadcastDirection: \"Global\" },\r\n CloseAllOpenPopups: { name: 'CloseAllOpenPopups', defaultBroadcastDirection: \"Global\" },\r\n CloseAllOpenDropDowns: { name: 'CloseAllOpenDropDowns', defaultBroadcastDirection: \"Global\" },\r\n\r\n\r\n //----------------------------------------------------------------------------------------------------------------------------------------------\r\n\r\n // Action - GLOBAL Broadcast messages\r\n Sleep: { name: 'Sleep', defaultBroadcastDirection: \"Global\" },\r\n LogEntry: { name: 'LogEntry', defaultBroadcastDirection: \"Global\" },\r\n UnauthorizedApi: { name: 'UnauthorizedApi', defaultBroadcastDirection: \"Global\" },\r\n DisplayBasicModal: { name: 'DisplayBasicModal', defaultBroadcastDirection: \"Global\" },\r\n DisplayConfirmModal: { name: 'DisplayConfirmModal', defaultBroadcastDirection: \"Global\" },\r\n DisplayNotificationHeader: { name: 'DisplayNotificationHeader', defaultBroadcastDirection: \"Global\" },\r\n RemoveNotificationHeader: { name: 'RemoveNotificationHeader', defaultBroadcastDirection: \"Global\" },\r\n Alert: { name: 'Alert', defaultBroadcastDirection: \"Global\" },\r\n DisplayPopup: { name: 'DisplayPopup', defaultBroadcastDirection: \"Global\" },\r\n ClosePopup: { name: 'ClosePopup', defaultBroadcastDirection: \"Global\" },\r\n DisplayDesktopNotify: { name: 'DisplayDesktopNotify', defaultBroadcastDirection: \"Global\" },\r\n CloseDesktopNotify: { name: 'CloseDesktopNotify', defaultBroadcastDirection: \"Global\" },\r\n Broadcast: { name: 'Broadcast', defaultBroadcastDirection: \"Global\" },\r\n EditorShowWindow: { name: 'EditorShowWindow', defaultBroadcastDirection: \"Global\" },\r\n FileDownload: { name: 'FileDownload', defaultBroadcastDirection: \"Global\" },\r\n FileDelete: { name: 'FileDelete', defaultBroadcastDirection: \"Global\" },\r\n Tab: { name: 'Tab', defaultBroadcastDirection: \"Global\" },\r\n ApiRequest: { name: 'ApiRequest', defaultBroadcastDirection: \"Global\" },\r\n FlushControlCache: { name: 'FlushControlCache', defaultBroadcastDirection: \"Global\" },\r\n FlushUrlCache: { name: 'FlushUrlCache', defaultBroadcastDirection: \"Global\" },\r\n ForceRecaching: { name: 'ForceRecaching', defaultBroadcastDirection: \"Global\" },\r\n ForEach: { name: 'ForEach', defaultBroadcastDirection: \"Global\" },\r\n IfElse: { name: 'IfElse', defaultBroadcastDirection: \"Global\" },\r\n EvaluateExpression: { name: 'EvaluateExpression', defaultBroadcastDirection: \"Global\" },\r\n SetLanguage: { name: 'SetLanguage', defaultBroadcastDirection: \"Global\" },\r\n OpenChildWindow: { name: 'OpenChildWindow', defaultBroadcastDirection: \"Global\" },\r\n OpenChildWindowWithToken: { name: 'OpenChildWindowWithToken', defaultBroadcastDirection: \"Global\" },\r\n DebugNodeSelected: { name: 'DebugNodeSelected', defaultBroadcastDirection: \"Global\" },\r\n DebugShowWindow: { name: 'DebugShowWindow', defaultBroadcastDirection: \"Global\" },\r\n DebugAddWatch: { name: 'DebugAddWatch', defaultBroadcastDirection: \"Global\" },\r\n DebugRemoveWatch: { name: 'DebugRemoveWatch', defaultBroadcastDirection: \"Global\" },\r\n DebugNewUml: { name: 'DebugNewUml', defaultBroadcastDirection: \"Global\" },\r\n SetValue: { name: 'SetValue', defaultBroadcastDirection: \"Global\" },\r\n DeleteValue: { name: 'DeleteValue', defaultBroadcastDirection: \"Global\" },\r\n ReferenceUserAction: { name: 'ReferenceUserAction', defaultBroadcastDirection: \"Global\" },\r\n Badge: { name: 'Badge', defaultBroadcastDirection: \"Global\" },\r\n SelectMenuItem: { name: 'SelectMenuItem', defaultBroadcastDirection: \"Global\" },\r\n RunActions: { name: 'RunActions', defaultBroadcastDirection: \"Global\" },\r\n HelpHighlight: { name: 'HelpHighlight', defaultBroadcastDirection: \"Global\" },\r\n HelpHighlightStop: { name: 'HelpHighlightStop', defaultBroadcastDirection: \"Global\" },\r\n HelpTour: { name: 'HelpTour', defaultBroadcastDirection: \"Global\" },\r\n HelpTourStop: { name: 'HelpTourStop', defaultBroadcastDirection: \"Global\" },\r\n ShowWaitOverlay: { name: 'ShowWaitOverlay', defaultBroadcastDirection: \"Global\" },\r\n HideWaitOverlay: { name: 'HideWaitOverlay', defaultBroadcastDirection: \"Global\" },\r\n FullScreen: { name: 'FullScreen', defaultBroadcastDirection: \"Global\" },\r\n OpenDocumentEditor: { name: 'OpenDocumentEditor', defaultBroadcastDirection: \"Global\" },\r\n\r\n WebRTCConnectWebSocket: { name: 'WebRTCConnectWebSocket', defaultBroadcastDirection: \"Global\" },\r\n WebRTCVideoConnectWebSocket: { name: 'WebRTCVideoConnectWebSocket', defaultBroadcastDirection: \"Global\" },\r\n HSMSetPersistedState: { name: 'HSMSetPersistedState', defaultBroadcastDirection: \"Parent\" },\r\n\r\n // Action - PARENT Broadcast messages\r\n SchemaModelChanged: { name: 'SchemaModelChanged', defaultBroadcastDirection: \"Parent\" },\r\n FormFieldChanged: { name: 'FormFieldChanged', defaultBroadcastDirection: \"Parent\" },\r\n ReplaceContent: { name: 'ReplaceContent', defaultBroadcastDirection: \"Parent\" }, // ActionBroadcastTarget allowed\r\n DisplayFeedback: { name: 'DisplayFeedback', defaultBroadcastDirection: \"Parent\" }, // ActionBroadcastTarget allowed\r\n ChildViewSpace: { name: 'ChildViewSpace', defaultBroadcastDirection: \"Parent\" },\r\n Close: { name: 'Close', defaultBroadcastDirection: \"Parent\" },\r\n\r\n Refresh: { name: 'Refresh', defaultBroadcastDirection: \"Parent\" }, // ActionBroadcastTarget allowed\r\n RenameTab: { name: 'RenameTab', defaultBroadcastDirection: \"Global\" }, // \"Parent\" }, // For Vue, changed to Global (Tabs are not parents of content)\r\n SystemNotify: { name: 'SystemNotify', defaultBroadcastDirection: \"Parent\" }, // Normally used by internal controls that need to send messages\r\n\r\n HSMEvent: { name: 'HSMEvent', defaultBroadcastDirection: \"Parent\" },\r\n HSMStartServerEventListener: { name: 'HSMStartServerEventListener', defaultBroadcastDirection: \"Parent\" },\r\n HSMStopServerEventListener: { name: 'HSMStopServerEventListener', defaultBroadcastDirection: \"Parent\" },\r\n HSMSetNextState: { name: 'HSMSetNextState', defaultBroadcastDirection: \"Parent\" },\r\n HSMAddChildHSM: { name: 'HSMAddChildHSM', defaultBroadcastDirection: \"Parent\" },\r\n HSMRemoveChildHSM: { name: 'HSMRemoveChildHSM', defaultBroadcastDirection: \"Parent\" },\r\n\r\n // Action - Sent to base container, reflected back to children by baseContainer\r\n GridRefresh: { name: 'GridRefresh', defaultBroadcastDirection: \"BaseContainerChildren\" }, // ActionBroadcastTarget allowed\r\n TextEditorRefresh: { name: 'TextEditorRefresh', defaultBroadcastDirection: \"BaseContainerChildren\" }, // ActionBroadcastTarget allowed\r\n GridClearSelectedRows: { name: 'GridClearSelectedRows', defaultBroadcastDirection: \"BaseContainerChildren\" }, // ActionBroadcastTarget allowed\r\n SchemaFormTabSelectionChanged: { name: 'SchemaFormTabSelectionChanged', defaultBroadcastDirection: \"BaseContainerChildren\" }, // ActionBroadcastTarget allowed\r\n Message: { name: 'Message', defaultBroadcastDirection: \"BaseContainerChildren\" }, // generally used by form field events to trigger actions on other form fields\r\n ValidateForm: { name: 'ValidateForm', defaultBroadcastDirection: \"GlobalNoTarget_BaseContainerChildrenWithTarget\" },\r\n\r\n // New for VuePortal\r\n EmitControlEvent: { name: 'EmitControlEvent', defaultBroadcastDirection: \"Parent\" },\r\n RunControlCommand: { name: 'RunControlCommand', defaultBroadcastDirection: \"Global\" },\r\n};\r\n\r\nexport default actionDefaults;","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MultiSelectList.vue?vue&type=style&index=0&id=95274fc2&prod&scoped=true&lang=css&\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKgAAABpCAYAAACu/2ilAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAASKSURBVHgB7d3XSqRLFIbhGnNWzKKCBx4I3v+NCIKCoBgQVIxtDrP5alPS48h0sMOqVe8Dzd/DnIh+rMr1/6pUKr8DYFRPAAwjoDCNgMI0AgrTCChMI6AwjYDCNAIK0wgoTCOgMI2AwjQCCtMIKEzLKqAnJyfxg3JQQWEaAYVpBBSmEVCHnp+fgxd9wbHb29twd3cXmjE+Ph4mJiZCbu7v78PW1lb82Tc3N0PuqKDOnJ+fx+fg4GDwgIA6c3l5GZ/z8/PBAwLqiJp39T9VPXPsnnyHgDpyenoan17CKQTUEQ0KZWlpKXhBQJ1Q3zM176Ojo8ELAurE2dlZfK6srARPCKgDqpxXV1fx++TkZPCEgDqQqufc3Jyb+c+EgDqQJue9zH1WI6CZUzi9zX1WI6CZ8zo4SghoxrRypLlPVU+PzbsQ0Ix5XDn6ioBmSv3ONDhaXV0NXhHQTB0dHcWnx6mlaq43LOem3g3Wb29vn9Wzv78/nnTNdYN1LVTQDN3c3MSn1tz7+nzXGAKaGVVPjd7F27LmdwhoZkqqnkJAM1Ja9RQCmpHSqqcQ0EyUWD2FgGYindZUOEupnkJAM6DK+fT0FIPp6ThHPQhoBlLfUxPxJVVPIaDGKZzqfyqYY2NjoTQE1DAFM1VPr9vpaiGghqWBUUnTSl+xWaQJnbg1r3pgVNK00ldUUIOqm/YSB0bVCKhBaWCkpr3EgVE1AmqMug9q3ktv2hMCasj7+/vnBWClN+0JATVkf38/fHx8xIFU6U17QkCNODg4iAfhaNr/REAN0PHhdIRYE/I9PfxZEn4TXaaqeXx8HL/Pzs7S7/yCgHaRwrm9vR2nlHQr8sLCQsCfCGgX7ezsxJCOjIyEtbW1gL8R0C7Z29sLDw8P8dKFjY2NgO8R0C7QrSC6eEH9Tb0NzvPNID9Fj7zDNFpPu5QIZ20EtIO0xp42gayvr8e+J/6NJr5DvoZTl36hNgLaAdXhXF5eJpwNIKBtVh3O6enpMDU1FVA/+qBtok0fendRumxB4WQDSOMIaBtoZeji4iK8vLzEdXWtrw8MDAQ0joC2mM4RaRopHRVWOFlfbx6/uRbSZuPr6+v4fWhoKG7+YGfSzxDQFlC1VNVU9RTt52RPZ2sQ0B9S1dRHgyI15RoMqXqiNQhok1QtFcxUNYeHh8PMzAxNeosR0AZpe9zh4eHnxQ1UzfYioHXSZLt2IKXXv6hS6nCbPlTN9iGgNSiYOpKRjgOLVoM06U4w24+AfkP9Sm0m3t3djSN0UVOuYxlaR1cz3+zdTGgMAQ3/L0s+Pj7GlR8tTerfibbEafCzuLj4OeGugKIzigloqoSvr68xgAqjbvLQM/1foqZbAx8dYvP8JuEcuA6oTkzWQ4HUWrlG4unp9d2XuSmmgqbmWc/e3t741EdHLlgrt+tXpVL5HTKht/qKNv2iDMyTwDQCCtMIKEwjoDCNgMI0AgrTCChMI6AwLcsllDRhj8bltoRLBYVpWS11ojxUUJhGQGEaAYVpBBSmEVCYRkBhGgGFaQQUphFQmEZAYRoBhWn/AS40tORTNGj0AAAAAElFTkSuQmCC\"","import utils from '@/Shared/utils';\r\nimport Vue from 'vue';\r\nimport EventBus from '@/Application/event-bus';\r\nimport {appSettings, careTokenSettings} from '@/Shared/appSettings';\r\n\r\nexport default {\r\n PrivateVariables: {\r\n // The contents of this are set from startApplication.jsx in order to let them be reactive\r\n },\r\n\r\n ClearAccessTokenBound: null,\r\n\r\n //This method is only called from the App.Vue when the site gets created so we can subscribe\r\n created() {\r\n appSettings.careTokenService = this;\r\n utils.log(\"Initializing Token Management\");\r\n this.SetGAUserID();\r\n \r\n // If the server did not echo back tokenInfo (server will echo token info when a child window opens with token) \r\n if (window.careTokenSettings?.info) {\r\n console.log('##### In the if care token settings: ');\r\n console.log(window.careTokenSettings);\r\n \r\n this.UpdateToken(window.careTokenSettings.info); \r\n // if careTokenSettings.info is set, it's because a form posted info and it is being echo'd back. If you refresh the page, you will cause the original form info\r\n // to resubmit, which will echo back the old token... The token could be expired, or even for the wrong company (if they had subsequently changed companies).\r\n // this will prevent a refresh from resubitting the form data, but making it a simple get request to the current url.\r\n window.history.replaceState(null, null, window.location.href); \r\n }\r\n\r\n this.ClearAccessTokenBound = this.ClearAccessToken.bind(this);\r\n\r\n EventBus.$on('Logout', this.ClearAccessTokenBound); // On logout clear the access token\r\n\r\n // If the browser is refreshed, then the token refresh timer must be set based on the remaining time before expiration. This calculates the remaining time and restarts the refresh timer.\r\n this.RestartRefreshTimerBasedOnAbsoluteExpireTime();\r\n this.UpdateServiceVars();\r\n },\r\n //This method is only called from the App.Vue when the site gets destroyed so we can unsubscribe\r\n destroyed() {\r\n EventBus.$off('Logout', this.ClearAccessTokenBound);\r\n\r\n this.UpdateServiceVars();\r\n },\r\n \r\n RestartRefreshTimerBasedOnAbsoluteExpireTime() {\r\n var expireAbsolutetime = this.ExpiresAbsoluteTime(); // read cached token expiration time (in client absolute time)\r\n\r\n if (expireAbsolutetime) {\r\n utils.log(\"Cached ExpireAbsolutetime: \" + expireAbsolutetime);\r\n\r\n // calculate remaining time\r\n var now = new Date();\r\n var remainingSeconds = Math.floor((new Date(expireAbsolutetime) - now) / 1000);\r\n utils.log(\"Calculated remaining(seconds): \" + remainingSeconds);\r\n\r\n // Assigning ExpiresIn, causes the refresh timer to start.\r\n if (remainingSeconds > 0) \r\n this.ExpiresIn(remainingSeconds);\r\n }\r\n },\r\n /* Stores data in sessionStorage (not shared between browser windows) or falls-back to memory in unavailable */\r\n /* mainly used to store data (such as accesstoken) between browser refreshes so user doesn't have to relogin */\r\n SessionStorageOrMemory(privateVarible, key, value) {\r\n // Changing to always read from the privateVariable - these are initialized at startup in startApplication.jsx\r\n // Updates will store in privateVariable and in sessionStorage\r\n\r\n if (typeof (value) === 'undefined') {\r\n //if (sessionStorage)\r\n // return sessionStorage.getItem(key);\r\n //else\r\n if (privateVarible)\r\n return privateVarible.Value;\r\n else\r\n return undefined;\r\n } else {\r\n if (sessionStorage) {\r\n if (value == null)\r\n sessionStorage.removeItem(key);\r\n else\r\n sessionStorage.setItem(key, value);\r\n }\r\n //else\r\n if (privateVarible)\r\n privateVarible.Value = value;\r\n }\r\n },\r\n AccessToken(accessToken) {\r\n if (typeof(accessToken) === 'undefined')\r\n return this.SessionStorageOrMemory(this.PrivateVariables.AccessToken, \"AccessToken\", accessToken);\r\n else {\r\n this.SessionStorageOrMemory(this.PrivateVariables.AccessToken, \"AccessToken\", accessToken);\r\n utils.debug(`AccessTokenAssigned -- break here!`);\r\n EventBus.$emit('AccessTokenAssigned');\r\n }\r\n },\r\n RefreshToken(refreshToken) {\r\n return this.SessionStorageOrMemory(this.PrivateVariables.RefreshToken, \"RefreshToken\", refreshToken);\r\n },\r\n // expiresIn is expressed in seconds\r\n ExpiresIn(expiresIn) {\r\n var result = this.SessionStorageOrMemory(this.PrivateVariables.ExpiresIn, \"ExpiresIn\", expiresIn);\r\n\r\n // if we are setting the expiration date, then we also need to update the refreshTimer\r\n if (expiresIn) {\r\n // clear any previous timer so it can be re-setup\r\n if (this.RefreshTimer != null) {\r\n clearTimeout(this.RefreshTimer);\r\n this.RefreshTimer = null;\r\n }\r\n\r\n if (expiresIn > 0) {\r\n this.RefreshTimer = setTimeout(this.RefreshAccessTokenAsync, expiresIn * 1000); // the server has a 1 min cushion, so it is okay to refresh at the expiresIn\r\n\r\n // Set the absolute expire time, this will be used on browser refresh to restart the timer based on cached value.\r\n var timeObject = new Date();\r\n this.ExpiresAbsoluteTime(new Date(timeObject.getTime() + (expiresIn * 1000)));\r\n utils.log(\"RefreshToken expiresIn (seconds): \" + expiresIn + \", ExpireAbsolutetime: \" + this.ExpiresAbsoluteTime());\r\n }\r\n else\r\n this.ExpiresAbsoluteTime(null);\r\n }\r\n\r\n return result;\r\n },\r\n RefreshAccessTokenAsync() {\r\n // Initiate async accesstoken refresh\r\n EventBus.$emit('RefreshAccessTokenAsync');\r\n },\r\n ExpiresAbsoluteTime(expiresAbsoluteTime) {\r\n return this.SessionStorageOrMemory(this.PrivateVariables.ExpiresAbsoluteTime, \"ExpiresAbsoluteTime\", expiresAbsoluteTime);\r\n },\r\n UserSecurityContextID(userSecurityContextID) {\r\n if (typeof(userSecurityContextID) === 'undefined') {\r\n return this.SessionStorageOrMemory(this.PrivateVariables.UserSecurityContextID, \"UserSecurityContextID\", userSecurityContextID);\r\n } else if (this.UserSecurityContextID() != userSecurityContextID){\r\n // only broadcast if the value actually changed\r\n this.SessionStorageOrMemory(this.PrivateVariables.UserSecurityContextID, \"UserSecurityContextID\", userSecurityContextID);\r\n EventBus.$emit('SelectedUserChanged');\r\n }\r\n },\r\n UserID(userID) {\r\n if (typeof(userID) === 'undefined')\r\n return this.SessionStorageOrMemory(this.PrivateVariables.UserID, \"UserID\", userID);\r\n else {\r\n this.SessionStorageOrMemory(this.PrivateVariables.UserID, \"UserID\", userID);\r\n this.SetGAUserID();\r\n }\r\n },\r\n Email(email) {\r\n if (typeof (email) === 'undefined')\r\n return this.SessionStorageOrMemory(this.PrivateVariables.Email, \"Email\", email);\r\n else {\r\n this.SessionStorageOrMemory(this.PrivateVariables.Email, \"Email\", email);\r\n }\r\n },\r\n CustomerSecurityContextID(customerSecurityContextID) {\r\n if (typeof(customerSecurityContextID) === 'undefined')\r\n return this.SessionStorageOrMemory(this.PrivateVariables.CustomerSecurityContextID, \"CustomerSecurityContextID\", customerSecurityContextID);\r\n else {\r\n // only broadcast if the value actually changed\r\n if (this.CustomerSecurityContextID() != customerSecurityContextID) {\r\n this.SessionStorageOrMemory(this.PrivateVariables.CustomerSecurityContextID, \"CustomerSecurityContextID\", customerSecurityContextID);\r\n EventBus.$emit('SelectedCustomerChanged');\r\n }\r\n }\r\n },\r\n CustomerID(customerID) {\r\n if (typeof(customerID) === 'undefined')\r\n return this.SessionStorageOrMemory(this.PrivateVariables.CustomerID, \"CustomerID\", customerID);\r\n else {\r\n this.SessionStorageOrMemory(this.PrivateVariables.CustomerID, \"CustomerID\", customerID);\r\n this.SetGAUserID();\r\n }\r\n },\r\n CustomerName(customerName) {\r\n if (typeof(customerName) === 'undefined') {\r\n return this.SessionStorageOrMemory(this.PrivateVariables.CustomerName, \"CustomerName\", customerName);\r\n } else if (this.CustomerName() != customerName) {\r\n document.title = customerName;\r\n // only broadcast if the value actually changed\r\n this.SessionStorageOrMemory(this.PrivateVariables.CustomerName, \"CustomerName\", customerName);\r\n this.SetGAUserID();\r\n EventBus.$emit('CustomerNameChanged');\r\n }\r\n },\r\n CustomerTimezone(customerTimezone) {\r\n return this.SessionStorageOrMemory(this.PrivateVariables.CustomerTimezone, \"CustomerTimezone\", customerTimezone);\r\n },\r\n CustomerRegionCode(customerRegionCode) {\r\n return this.SessionStorageOrMemory(this.PrivateVariables.CustomerRegionCode, \"CustomerRegionCode\", customerRegionCode);\r\n },\r\n CustomerPhoneNumberFormat(phoneNumberFormat) {\r\n return this.SessionStorageOrMemory(this.PrivateVariables.CustomerPhoneNumberFormat, \"CustomerPhoneNumberFormat\", phoneNumberFormat);\r\n },\r\n CustomerDefaultPromptLanguage(defaultPromptLanguage) {\r\n return this.SessionStorageOrMemory(this.PrivateVariables.CustomerDefaultPromptLanguage, \"CustomerDefaultPromptLanguage\", defaultPromptLanguage);\r\n },\r\n E911Compliance(E911Compliance) {\r\n return this.SessionStorageOrMemory(this.PrivateVariables.E911Compliance, \"E911Compliance\", E911Compliance);\r\n },\r\n CustomerRoles(customerRoles) {\r\n if (customerRoles)\r\n {\r\n utils.debug(` ** ** ** ** customerRoles being assigned now: ${JSON.stringify(customerRoles)} ** ** ** ** `);\r\n\r\n return this.SessionStorageOrMemory(this.PrivateVariables.CustomerRoles, \"CustomerRoles\", JSON.stringify(customerRoles));\r\n }\r\n else \r\n return JSON.parse(this.SessionStorageOrMemory(this.PrivateVariables.CustomerRoles, \"CustomerRoles\", customerRoles));\r\n },\r\n CustomerTextToSpeechVoice(voice) {\r\n return this.SessionStorageOrMemory(this.PrivateVariables.CustomerTextToSpeechVoice, \"CustomerTextToSpeechVoice\", voice);\r\n },\r\n CustomerAbbreviation(customerAbbreviation) {\r\n return this.SessionStorageOrMemory(this.PrivateVariables.CustomerAbbreviation, \"CustomerAbbreviation\", customerAbbreviation);\r\n },\r\n BandID(bandID) {\r\n return this.SessionStorageOrMemory(this.PrivateVariables.BandID, \"BandID\", bandID);\r\n },\r\n ProviderType(providerType) {\r\n return this.SessionStorageOrMemory(this.PrivateVariables.ProviderType, \"ProviderType\", providerType);\r\n },\r\n UserName(userName) {\r\n return this.SessionStorageOrMemory(this.PrivateVariables.UserName, \"UserName\", userName);\r\n },\r\n ClearAccessToken() {\r\n this.BandID(null);\r\n this.AccessToken(null);\r\n this.RefreshToken(null);\r\n this.ExpiresIn(0); // a value of 0 will NOT setup a new refresh timer\r\n // NOTE: UserSecurityContextID is left untouched, so when user logs-in again it can reselect their context\r\n this.UpdateServiceVars();\r\n },\r\n GetApiBaseURL() {\r\n // If we have selected a customer and therefore have a bandId, all requests should go to that band\r\n var bandId = this.BandID();\r\n\r\n if (bandId)\r\n return appSettings?.ApiURLBandTemplate?.replace(\"{bandId}\", bandId); // example \"https://api-{bandId}.callcorp.com\"\r\n else\r\n return appSettings.ApiBase; // if there is no band (haven't selected a customer) then use the generic base ApiURL\r\n },\r\n GetUserEventKey() {\r\n return this.UserID() + \"_\" + this.CustomerID();\r\n },\r\n GetCustomerEventKey() {\r\n return \"GeneralEvent_\" + this.CustomerID();\r\n },\r\n GetChannelName() {\r\n var userName = this.UserID() ? this.UserID() : \"UnknownUser\";\r\n\r\n // remove special characters that will hinder the subscriptions\r\n userName = userName.replaceAll(\":\", \"\").replaceAll(\"/\", \"\");\r\n userName = window.encodeURIComponent(userName);\r\n\r\n var channelName = \"vuePortal_\" + userName + \"_\" + appSettings.InstanceGuid;\r\n\r\n return channelName;\r\n },\r\n \r\n // This takes the full response from an Api request that returns the users security contexts\r\n /*\r\n Example Info object:\r\n {\r\n \"success\": true,\r\n \"expires_in\": 1200,\r\n \"access_token\": null,\r\n \"refresh_token\": null,\r\n \"SecurityContexts\": {\r\n \"Public\": {\r\n \"UserSecurityContextID\": \"\",\r\n \"SecurityContextTypeID\": \"Public\",\r\n \"Data\": null,\r\n \"UserID\": null,\r\n \"PermissionSetID\": null,\r\n \"BandID\": null\r\n },\r\n \"MFA\": {\r\n \"UserSecurityContextID\": \"\",\r\n \"SecurityContextTypeID\": \"MFA\",\r\n \"Data\": \".CARE;test@test.com\",\r\n \"UserID\": null,\r\n \"PermissionSetID\": null,\r\n \"BandID\": null\r\n },\r\n \"User\": {\r\n \"UserSecurityContextID\": \"\",\r\n \"SecurityContextTypeID\": \"User\",\r\n \"Data\": \"\"\",\r\n \"UserID\": \"\"\",\r\n \"PermissionSetID\": null,\r\n \"BandID\": null,\r\n \"Email\": \"\"\r\n },\r\n \"Customer\": {\r\n \"UserSecurityContextID\": \"\",\r\n \"SecurityContextTypeID\": \"Customer\",\r\n \"Data\": \"\",\r\n \"UserID\": \"\",\r\n \"PermissionSetID\": null,\r\n \"BandID\": \"\"\r\n }\r\n },\r\n \"user_list\": null,\r\n \"tokens\": [\r\n {\r\n \"access_token\": \"\",\r\n \"refresh_token\": \"\"\r\n },\r\n {\r\n \"access_token\": \"\",\r\n \"refresh_token\": \"\"\r\n }\r\n ]\r\n }\r\n */\r\n UpdateToken(info) {\r\n /** Customer \r\n ** this has to be done before the access token is assigned, because AccessToken() will broadcast a message that causes websockets to be reestablished, \r\n ** and it will need the updated bandId and CustomerID to create the correct websocket uri for the band\r\n **/\r\n if (info.SecurityContexts?.Customer) {\r\n var customer = info.SecurityContexts.Customer;\r\n this.BandID(customer.BandID);\r\n this.CustomerID(customer.Data);\r\n } else {\r\n this.BandID(null);\r\n this.CustomerID(null);\r\n }\r\n\r\n /** MFA **/\r\n if (info.SecurityContexts?.MFA) {\r\n var mfa = info.SecurityContexts.MFA;\r\n\r\n // Sample Data: \".CARE;test@test.com\"\r\n var parts = mfa.Data.split(';');\r\n this.ProviderType(parts[0]);\r\n this.UserName(parts[1]);\r\n } else {\r\n this.ProviderType(null);\r\n this.UserName(null);\r\n }\r\n\r\n /** User **/\r\n if (info.SecurityContexts?.User) {\r\n var user = info.SecurityContexts.User;\r\n\r\n this.UserSecurityContextID(user.UserSecurityContextID);\r\n this.UserID(user.Data);\r\n this.Email(user.Email);\r\n } else {\r\n this.UserSecurityContextID(null);\r\n this.UserID(null);\r\n this.Email(null);\r\n }\r\n\r\n /* Token - Read either the main token or the first in the array of tokens. */\r\n var tokenSource = (info.tokens ? info.tokens[0] : info);\r\n\r\n if (tokenSource.access_token)\r\n this.AccessToken(tokenSource.access_token);\r\n\r\n if (tokenSource.refresh_token)\r\n this.RefreshToken(tokenSource.refresh_token);\r\n\r\n if (info.expires_in)\r\n this.ExpiresIn(info.expires_in);\r\n\r\n\r\n /** Customer */\r\n /* This must be done AFTER the access token is assigned because it will cause the customer name API to be retrieved, and that needs to be done with the new access token */\r\n if (info.SecurityContexts?.Customer)\r\n {\r\n var customer = info.SecurityContexts.Customer;\r\n\r\n this.CustomerSecurityContextID(customer.UserSecurityContextID);\r\n this.UserID(customer.UserID); // this will override the UserID from the User security context (if exists), however, should be same so won't matter\r\n } else {\r\n // Do not clear the CustomerSecurityContextID. When re-authenticating for an expired token, the system will re-select the prev customer.\r\n // CustomerSecurityContextID(null);\r\n }\r\n\r\n this.UpdateServiceVars();\r\n },\r\n SetGAUserID() {\r\n if (window.ga) {\r\n window.ga('set', 'userId', (this.UserName() || \"\") + \"_\" + (this.UserID() || ''));\r\n window.ga('set', 'CustomerName', (this.CustomerName() || \"\")); // custom dimension for tracking by CustomerName\r\n }\r\n },\r\n UpdateServiceVars() {\r\n Vue.set(utils.service_variables.tokenVars, 'AccessToken', this.AccessToken())\r\n Vue.set(utils.service_variables.tokenVars, 'RefreshToken', this.RefreshToken())\r\n Vue.set(utils.service_variables.tokenVars, 'ExpiresIn', this.ExpiresIn())\r\n Vue.set(utils.service_variables.tokenVars, 'ExpiresAbsoluteTime', this.ExpiresAbsoluteTime())\r\n Vue.set(utils.service_variables.tokenVars, 'UserSecurityContextID', this.UserSecurityContextID())\r\n Vue.set(utils.service_variables.tokenVars, 'UserID', this.UserID())\r\n Vue.set(utils.service_variables.tokenVars, 'Email', this.Email())\r\n Vue.set(utils.service_variables.tokenVars, 'CustomerSecurityContextID', this.CustomerSecurityContextID())\r\n Vue.set(utils.service_variables.tokenVars, 'CustomerID', this.CustomerID())\r\n Vue.set(utils.service_variables.tokenVars, 'CustomerName', this.CustomerName())\r\n Vue.set(utils.service_variables.tokenVars, 'CustomerTimezone', this.CustomerTimezone())\r\n Vue.set(utils.service_variables.tokenVars, 'CustomerRegionCode', this.CustomerRegionCode())\r\n Vue.set(utils.service_variables.tokenVars, 'E911Compliance', this.E911Compliance())\r\n Vue.set(utils.service_variables.tokenVars, 'CustomerRoles', this.CustomerRoles())\r\n Vue.set(utils.service_variables.tokenVars, 'CustomerAbbreviation', this.CustomerAbbreviation())\r\n Vue.set(utils.service_variables.tokenVars, 'BandID', this.BandID())\r\n Vue.set(utils.service_variables.tokenVars, 'ProviderType', this.ProviderType())\r\n Vue.set(utils.service_variables.tokenVars, 'UserName', this.UserName())\r\n Vue.set(utils.service_variables.tokenVars, 'InstanceGuid', appSettings.InstanceGuid)\r\n }\r\n};","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./filter_textSetColumn.vue?vue&type=style&index=0&id=3e655d82&prod&scoped=true&lang=css&\"","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./agGridToolReportAllinOne.vue?vue&type=style&index=0&id=ece93aca&prod&scoped=true&lang=css&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AdvancedHistory.vue?vue&type=style&index=0&id=43b209a2&prod&lang=css&\"","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./overflowPillGroup.vue?vue&type=style&index=0&id=35d62422&prod&scoped=true&lang=css&\"","\n\n\n\n","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./calendar.vue?vue&type=style&index=0&id=55480ea8&prod&_scoped=true&lang=css&\"","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./filter_durationColumn.vue?vue&type=style&index=0&id=01631ccc&prod&scoped=true&lang=css&\"","import Vue from 'vue';\r\nimport Vuetify from 'vuetify';\r\nimport utils from '../../../Shared/utils.jsx';\r\nimport methods from '../../../Shared/methods';\r\nimport filters from '../../../Shared/filters';\r\nimport computed from '../../../Shared/computed';\r\nimport BaseComponent from '../BaseComponentMixin.jsx';\r\nimport EventBus from '@/Application/event-bus.js';\r\nimport careHelpfulFunctions from '../../careHelpfulFunctions.jsx';\r\n\r\n/* We need a draggable dialog. Here is one possible solution:\r\n * https://github.com/vuetifyjs/vuetify/issues/4058\r\n * \r\n * We also need to support resizing, if I find something, I'll paste here.\r\n * \r\n * */\r\n\r\nconst busyIcon = {\r\n render(h) {\r\n return (\r\n \r\n mdi mdi-cloud-download\r\n \r\n );\r\n }\r\n};\r\n\r\nVue.component('display-basic-confirm-modal', {\r\n components: {\r\n busyIcon\r\n },\r\n data: () => ({\r\n vars: {},\r\n value: '',\r\n }),\r\n props: {\r\n name: '',\r\n root: null,\r\n type: null,\r\n parentType: '',\r\n isbase: true,\r\n action: null,\r\n context: null,\r\n scopeitems: null,\r\n controlscope: null,\r\n\r\n okay: null,\r\n cancel: null,\r\n accept: null,\r\n },\r\n created() {\r\n if (this.action.ActionData && this.action.ActionData.Vars) {\r\n const varsexpn = utils.compileObject(this, this.action.ActionData.Vars);\r\n try {\r\n this.vars = utils.evaluateObject(varsexpn, this.action.context);\r\n }\r\n catch (e) {\r\n utils.log('error evaluating Vars: ' + e);\r\n }\r\n }\r\n\r\n if (this.action.ActionData && this.action.ActionData.Javascript)\r\n try {\r\n const api = utils.apiWrapper; // apiService;\r\n const chf = careHelpfulFunctions;\r\n this.Javascript = eval(\"new (\" + this.action.ActionData.Javascript + \")(null, null, api, this, chf);\");\r\n\r\n for (let key in this.Javascript)\r\n if (typeof this.Javascript[key] === 'function')\r\n this.Javascript[key] = this.Javascript[key].bind(this.Javascript);\r\n }\r\n catch (e) {\r\n utils.warn(`Failed evaluating Javascript in ${this.name} ${this.type}: ${this.action.ActionData.Javascript}`, e);\r\n }\r\n\r\n\r\n // Subscribe to a UIAction_Close event, which then emits the close event\r\n // which is handled within ActionService.jsx, where it imbeds \r\n utils.debug(`DialogBasicConfirmModal ${this.name} ${this._uid} $on ActionClose`);\r\n this.$on('Action-Close', this.performClose);\r\n EventBus.$on(`Action-Close:${this.name}`, this.performClose);\r\n EventBus.$on(`Action-Close`, this.performClose);\r\n },\r\n destroyed() {\r\n utils.debug(`DialogBasicConfirmModal ${this.name} ${this._uid} $off ActionClose`);\r\n this.$off('Action-Close', this.performClose);\r\n EventBus.$off(`Action-Close:${this.name}`, this.performClose);\r\n EventBus.$off(`Action-Close`, this.performClose);\r\n },\r\n mounted() {\r\n },\r\n computed: {\r\n ...computed,\r\n Base: function () {\r\n return this;\r\n },\r\n Name: function () {\r\n return this.name;\r\n },\r\n Root: function () {\r\n return this.root ? this.root._self : this;\r\n },\r\n Vars: function () {\r\n return this.vars;\r\n },\r\n title: function () {\r\n return this.action.title ? utils.evaluate(this.action.title, this.action.context) : '';\r\n },\r\n message: function () {\r\n return this.action.message ? utils.evaluate(this.action.message, this.action.context) : '';\r\n },\r\n okayButtonText: function () {\r\n return this.action.okaybuttontext ? utils.evaluate(this.action.okaybuttontext, this.action.context) : '';\r\n },\r\n cancelButtonText: function () {\r\n return this.action.cancelbuttontext ? utils.evaluate(this.action.cancelbuttontext, this.action.context) : '';\r\n }\r\n },\r\n methods: {\r\n ...methods,\r\n ...filters,\r\n async performClose(action) {\r\n utils.log(' ** Close Action Received by DialogBasicConfirmModal **');\r\n\r\n this.$emit('closeme');\r\n\r\n try {\r\n await utils.success(action);\r\n } catch (e) { }\r\n\r\n // Complete the promise for the executeAction method\r\n action.FinishFunc(true);\r\n },\r\n finishRenderHandler() { },\r\n clickedOutside(e) {\r\n e.stopPropagation();\r\n e.preventDefault();\r\n }\r\n },\r\n render(h) {\r\n const dialogButtons = [];\r\n if (this.cancelButtonText) dialogButtons.push(( this.$emit('closeme', { Success: false, DialogResult: this.cancelButtonText })}>{this.cancelButtonText}));\r\n if (this.okayButtonText) dialogButtons.push(( this.$emit('closeme', { Success: true, DialogResult: this.okayButtonText })}>{this.okayButtonText}));\r\n\r\n let content = (\r\n \r\n \r\n \r\n {this.title}\r\n \r\n\r\n \r\n\r\n \r\n\r\n this.$emit('closeme')}>\r\n mdi-close\r\n \r\n \r\n\r\n \r\n {this.message}\r\n \r\n\r\n \r\n {dialogButtons}\r\n \r\n \r\n );\r\n\r\n return content;\r\n }\r\n});\r\n","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./agGridToolReportFields.vue?vue&type=style&index=1&id=02dcb2d2&prod&lang=css&\"","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./agGridToolReportFields.vue?vue&type=style&index=0&id=02dcb2d2&prod&scoped=true&lang=css&\"","const regionCodeList = [\r\n { Name: \"Afghanistan\", RegionCode: \"AF\" },\r\n { Name: \"Aland Islands\", RegionCode: \"AX\" },\r\n { Name: \"Albania\", RegionCode: \"AL\" },\r\n { Name: \"Algeria\", RegionCode: \"DZ\" },\r\n { Name: \"American Samoa\", RegionCode: \"AS\" },\r\n { Name: \"Andorra\", RegionCode: \"AD\" },\r\n { Name: \"Angola\", RegionCode: \"AO\" },\r\n { Name: \"Anguilla\", RegionCode: \"AI\" },\r\n { Name: \"Antarctica\", RegionCode: \"AQ\" },\r\n { Name: \"Antigua and Barbuda\", RegionCode: \"AG\" },\r\n { Name: \"Argentina\", RegionCode: \"AR\" },\r\n { Name: \"Armenia\", RegionCode: \"AM\" },\r\n { Name: \"Aruba\", RegionCode: \"AW\" },\r\n { Name: \"Ascension Island\", RegionCode: \"AC\" },\r\n { Name: \"Australia\", RegionCode: \"AU\" },\r\n { Name: \"Austria\", RegionCode: \"AT\" },\r\n { Name: \"Azerbaijan\", RegionCode: \"AZ\" },\r\n { Name: \"Bahamas\", RegionCode: \"BS\" },\r\n { Name: \"Bahrain\", RegionCode: \"BH\" },\r\n { Name: \"Bangladesh\", RegionCode: \"BD\" },\r\n { Name: \"Barbados\", RegionCode: \"BB\" },\r\n { Name: \"Belarus\", RegionCode: \"BY\" },\r\n { Name: \"Belgium\", RegionCode: \"BE\" },\r\n { Name: \"Belize\", RegionCode: \"BZ\" },\r\n { Name: \"Benin\", RegionCode: \"BJ\" },\r\n { Name: \"Bermuda\", RegionCode: \"BM\" },\r\n { Name: \"Bhutan\", RegionCode: \"BT\" },\r\n { Name: \"Bolivia\", RegionCode: \"BO\" },\r\n { Name: \"Bonaire, Sint Eustatius and Saba\", RegionCode: \"BQ\" },\r\n { Name: \"Bosnia and Herzegovina\", RegionCode: \"BA\" },\r\n { Name: \"Botswana\", RegionCode: \"BW\" },\r\n { Name: \"Brazil\", RegionCode: \"BR\" },\r\n { Name: \"British Indian Ocean Territory\", RegionCode: \"IO\" },\r\n { Name: \"British Virgin Islands\", RegionCode: \"VG\" },\r\n { Name: \"Brunei\", RegionCode: \"BN\" },\r\n { Name: \"Bulgaria\", RegionCode: \"BG\" },\r\n { Name: \"Burkina Faso\", RegionCode: \"BF\" },\r\n { Name: \"Burundi\", RegionCode: \"BI\" },\r\n { Name: \"Cambodia\", RegionCode: \"KH\" },\r\n { Name: \"Cameroon\", RegionCode: \"CM\" },\r\n { Name: \"Canada\", RegionCode: \"CA\" },\r\n { Name: \"Cape Verde\", RegionCode: \"CV\" },\r\n { Name: \"Cayman Islands\", RegionCode: \"KY\" },\r\n { Name: \"Central African Republic\", RegionCode: \"CF\" },\r\n { Name: \"Chad\", RegionCode: \"TD\" },\r\n { Name: \"Chile\", RegionCode: \"CL\" },\r\n { Name: \"China\", RegionCode: \"CN\" },\r\n { Name: \"Christmas Island\", RegionCode: \"CX\" },\r\n { Name: \"Cocos Islands\", RegionCode: \"CC\" },\r\n { Name: \"Colombia\", RegionCode: \"CO\" },\r\n { Name: \"Comoros\", RegionCode: \"KM\" },\r\n { Name: \"Cook Islands\", RegionCode: \"CK\" },\r\n { Name: \"Costa Rica\", RegionCode: \"CR\" },\r\n { Name: \"Croatia\", RegionCode: \"HR\" },\r\n { Name: \"Cuba\", RegionCode: \"CU\" },\r\n { Name: \"Curacao\", RegionCode: \"CW\" },\r\n { Name: \"Cyprus\", RegionCode: \"CY\" },\r\n { Name: \"Czech Republic\", RegionCode: \"CZ\" },\r\n { Name: \"Democratic Republic of the Congo\", RegionCode: \"CD\" },\r\n { Name: \"Denmark\", RegionCode: \"DK\" },\r\n { Name: \"Djibouti\", RegionCode: \"DJ\" },\r\n { Name: \"Dominica\", RegionCode: \"DM\" },\r\n { Name: \"Dominican Republic\", RegionCode: \"DO\" },\r\n { Name: \"East Timor\", RegionCode: \"TL\" },\r\n { Name: \"Ecuador\", RegionCode: \"EC\" },\r\n { Name: \"Egypt\", RegionCode: \"EG\" },\r\n { Name: \"El Salvador\", RegionCode: \"SV\" },\r\n { Name: \"Equatorial Guinea\", RegionCode: \"GQ\" },\r\n { Name: \"Eritrea\", RegionCode: \"ER\" },\r\n { Name: \"Estonia\", RegionCode: \"EE\" },\r\n { Name: \"Ethiopia\", RegionCode: \"ET\" },\r\n { Name: \"Falkland Islands\", RegionCode: \"FK\" },\r\n { Name: \"Faroe Islands\", RegionCode: \"FO\" },\r\n { Name: \"Fiji\", RegionCode: \"FJ\" },\r\n { Name: \"Finland\", RegionCode: \"FI\" },\r\n { Name: \"France\", RegionCode: \"FR\" },\r\n { Name: \"French Guiana\", RegionCode: \"GF\" },\r\n { Name: \"French Polynesia\", RegionCode: \"PF\" },\r\n { Name: \"Gabon\", RegionCode: \"GA\" },\r\n { Name: \"Gambia\", RegionCode: \"GM\" },\r\n { Name: \"Georgia\", RegionCode: \"GE\" },\r\n { Name: \"Germany\", RegionCode: \"DE\" },\r\n { Name: \"Ghana\", RegionCode: \"GH\" },\r\n { Name: \"Gibraltar\", RegionCode: \"GI\" },\r\n { Name: \"Greece\", RegionCode: \"GR\" },\r\n { Name: \"Greenland\", RegionCode: \"GL\" },\r\n { Name: \"Grenada\", RegionCode: \"GD\" },\r\n { Name: \"Guadeloupe\", RegionCode: \"GP\" },\r\n { Name: \"Guam\", RegionCode: \"GU\" },\r\n { Name: \"Guatemala\", RegionCode: \"GT\" },\r\n { Name: \"Guernsey\", RegionCode: \"GG\" },\r\n { Name: \"Guinea\", RegionCode: \"GN\" },\r\n { Name: \"Guinea-Bissau\", RegionCode: \"GW\" },\r\n { Name: \"Guyana\", RegionCode: \"GY\" },\r\n { Name: \"Haiti\", RegionCode: \"HT\" },\r\n { Name: \"Honduras\", RegionCode: \"HN\" },\r\n { Name: \"Hong Kong\", RegionCode: \"HK\" },\r\n { Name: \"Hungary\", RegionCode: \"HU\" },\r\n { Name: \"Iceland\", RegionCode: \"IS\" },\r\n { Name: \"India\", RegionCode: \"IN\" },\r\n { Name: \"Indonesia\", RegionCode: \"ID\" },\r\n { Name: \"Iran\", RegionCode: \"IR\" },\r\n { Name: \"Iraq\", RegionCode: \"IQ\" },\r\n { Name: \"Ireland\", RegionCode: \"IE\" },\r\n { Name: \"Isle of Man\", RegionCode: \"IM\" },\r\n { Name: \"Israel\", RegionCode: \"IL\" },\r\n { Name: \"Italy\", RegionCode: \"IT\" },\r\n { Name: \"Ivory Coast\", RegionCode: \"CI\" },\r\n { Name: \"Jamaica\", RegionCode: \"JM\" },\r\n { Name: \"Japan\", RegionCode: \"JP\" },\r\n { Name: \"Jersey\", RegionCode: \"JE\" },\r\n { Name: \"Jordan\", RegionCode: \"JO\" },\r\n { Name: \"Kazakhstan\", RegionCode: \"KZ\" },\r\n { Name: \"Kenya\", RegionCode: \"KE\" },\r\n { Name: \"Kiribati\", RegionCode: \"KI\" },\r\n { Name: \"Kosovo\", RegionCode: \"XK\" },\r\n { Name: \"Kuwait\", RegionCode: \"KW\" },\r\n { Name: \"Kyrgyzstan\", RegionCode: \"KG\" },\r\n { Name: \"Laos\", RegionCode: \"LA\" },\r\n { Name: \"Latvia\", RegionCode: \"LV\" },\r\n { Name: \"Lebanon\", RegionCode: \"LB\" },\r\n { Name: \"Lesotho\", RegionCode: \"LS\" },\r\n { Name: \"Liberia\", RegionCode: \"LR\" },\r\n { Name: \"Libya\", RegionCode: \"LY\" },\r\n { Name: \"Liechtenstein\", RegionCode: \"LI\" },\r\n { Name: \"Lithuania\", RegionCode: \"LT\" },\r\n { Name: \"Luxembourg\", RegionCode: \"LU\" },\r\n { Name: \"Macau\", RegionCode: \"MO\" },\r\n { Name: \"Macedonia\", RegionCode: \"MK\" },\r\n { Name: \"Madagascar\", RegionCode: \"MG\" },\r\n { Name: \"Malawi\", RegionCode: \"MW\" },\r\n { Name: \"Malaysia\", RegionCode: \"MY\" },\r\n { Name: \"Maldives\", RegionCode: \"MV\" },\r\n { Name: \"Mali\", RegionCode: \"ML\" },\r\n { Name: \"Malta\", RegionCode: \"MT\" },\r\n { Name: \"Marshall Islands\", RegionCode: \"MH\" },\r\n { Name: \"Martinique\", RegionCode: \"MQ\" },\r\n { Name: \"Mauritania\", RegionCode: \"MR\" },\r\n { Name: \"Mauritius\", RegionCode: \"MU\" },\r\n { Name: \"Mayotte\", RegionCode: \"YT\" },\r\n { Name: \"Mexico\", RegionCode: \"MX\" },\r\n { Name: \"Micronesia\", RegionCode: \"FM\" },\r\n { Name: \"Moldova\", RegionCode: \"MD\" },\r\n { Name: \"Monaco\", RegionCode: \"MC\" },\r\n { Name: \"Mongolia\", RegionCode: \"MN\" },\r\n { Name: \"Montenegro\", RegionCode: \"ME\" },\r\n { Name: \"Montserrat\", RegionCode: \"MS\" },\r\n { Name: \"Morocco\", RegionCode: \"MA\" },\r\n { Name: \"Mozambique\", RegionCode: \"MZ\" },\r\n { Name: \"Myanmar\", RegionCode: \"MM\" },\r\n { Name: \"Namibia\", RegionCode: \"NA\" },\r\n { Name: \"Nauru\", RegionCode: \"NR\" },\r\n { Name: \"Nepal\", RegionCode: \"NP\" },\r\n { Name: \"Netherlands Antilles\", RegionCode: \"AN\" },\r\n { Name: \"Netherlands\", RegionCode: \"NL\" },\r\n { Name: \"New Caledonia\", RegionCode: \"NC\" },\r\n { Name: \"New Zealand\", RegionCode: \"NZ\" },\r\n { Name: \"Nicaragua\", RegionCode: \"NI\" },\r\n { Name: \"Niger\", RegionCode: \"NE\" },\r\n { Name: \"Nigeria\", RegionCode: \"NG\" },\r\n { Name: \"Niue\", RegionCode: \"NU\" },\r\n { Name: \"Norfolk Island\", RegionCode: \"NF\" },\r\n { Name: \"North Korea\", RegionCode: \"KP\" },\r\n { Name: \"Northern Mariana Islands\", RegionCode: \"MP\" },\r\n { Name: \"Norway\", RegionCode: \"NO\" },\r\n { Name: \"Oman\", RegionCode: \"OM\" },\r\n { Name: \"Pakistan\", RegionCode: \"PK\" },\r\n { Name: \"Palau\", RegionCode: \"PW\" },\r\n { Name: \"Palestine\", RegionCode: \"PS\" },\r\n { Name: \"Panama\", RegionCode: \"PA\" },\r\n { Name: \"Papua New Guinea\", RegionCode: \"PG\" },\r\n { Name: \"Paraguay\", RegionCode: \"PY\" },\r\n { Name: \"Peru\", RegionCode: \"PE\" },\r\n { Name: \"Philippines\", RegionCode: \"PH\" },\r\n { Name: \"Pitcairn\", RegionCode: \"PN\" },\r\n { Name: \"Poland\", RegionCode: \"PL\" },\r\n { Name: \"Portugal\", RegionCode: \"PT\" },\r\n { Name: \"Puerto Rico\", RegionCode: \"PR\" },\r\n { Name: \"Qatar\", RegionCode: \"QA\" },\r\n { Name: \"Republic of the Congo\", RegionCode: \"CG\" },\r\n { Name: \"Reunion\", RegionCode: \"RE\" },\r\n { Name: \"Romania\", RegionCode: \"RO\" },\r\n { Name: \"Russia\", RegionCode: \"RU\" },\r\n { Name: \"Rwanda\", RegionCode: \"RW\" },\r\n { Name: \"Saint Barthelemy\", RegionCode: \"BL\" },\r\n { Name: \"Saint Helena\", RegionCode: \"SH\" },\r\n { Name: \"Saint Kitts and Nevis\", RegionCode: \"KN\" },\r\n { Name: \"Saint Lucia\", RegionCode: \"LC\" },\r\n { Name: \"Saint Martin\", RegionCode: \"MF\" },\r\n { Name: \"Saint Pierre and Miquelon\", RegionCode: \"PM\" },\r\n { Name: \"Saint Vincent and the Grenadines\", RegionCode: \"VC\" },\r\n { Name: \"Samoa\", RegionCode: \"WS\" },\r\n { Name: \"San Marino\", RegionCode: \"SM\" },\r\n { Name: \"Sao Tome and Principe\", RegionCode: \"ST\" },\r\n { Name: \"Saudi Arabia\", RegionCode: \"SA\" },\r\n { Name: \"Senegal\", RegionCode: \"SN\" },\r\n { Name: \"Serbia\", RegionCode: \"RS\" },\r\n { Name: \"Seychelles\", RegionCode: \"SC\" },\r\n { Name: \"Sierra Leone\", RegionCode: \"SL\" },\r\n { Name: \"Singapore\", RegionCode: \"SG\" },\r\n { Name: \"Sint Maarten\", RegionCode: \"SX\" },\r\n { Name: \"Slovakia\", RegionCode: \"SK\" },\r\n { Name: \"Slovenia\", RegionCode: \"SI\" },\r\n { Name: \"Solomon Islands\", RegionCode: \"SB\" },\r\n { Name: \"Somalia\", RegionCode: \"SO\" },\r\n { Name: \"South Africa\", RegionCode: \"ZA\" },\r\n { Name: \"South Korea\", RegionCode: \"KR\" },\r\n { Name: \"South Sudan\", RegionCode: \"SS\" },\r\n { Name: \"Spain\", RegionCode: \"ES\" },\r\n { Name: \"Sri Lanka\", RegionCode: \"LK\" },\r\n { Name: \"Sudan\", RegionCode: \"SD\" },\r\n { Name: \"Suriname\", RegionCode: \"SR\" },\r\n { Name: \"Svalbard and Jan Mayen\", RegionCode: \"SJ\" },\r\n { Name: \"Swaziland\", RegionCode: \"SZ\" },\r\n { Name: \"Sweden\", RegionCode: \"SE\" },\r\n { Name: \"Switzerland\", RegionCode: \"CH\" },\r\n { Name: \"Syria\", RegionCode: \"SY\" },\r\n { Name: \"Taiwan\", RegionCode: \"TW\" },\r\n { Name: \"Tajikistan\", RegionCode: \"TJ\" },\r\n { Name: \"Tanzania\", RegionCode: \"TZ\" },\r\n { Name: \"Thailand\", RegionCode: \"TH\" },\r\n { Name: \"Togo\", RegionCode: \"TG\" },\r\n { Name: \"Tokelau\", RegionCode: \"TK\" },\r\n { Name: \"Tonga\", RegionCode: \"TO\" },\r\n { Name: \"Trinidad and Tobago\", RegionCode: \"TT\" },\r\n { Name: \"Tristan da Cunha\", RegionCode: \"TA\" },\r\n { Name: \"Tunisia\", RegionCode: \"TN\" },\r\n { Name: \"Turkey\", RegionCode: \"TR\" },\r\n { Name: \"Turkmenistan\", RegionCode: \"TM\" },\r\n { Name: \"Turks and Caicos Islands\", RegionCode: \"TC\" },\r\n { Name: \"Tuvalu\", RegionCode: \"TV\" },\r\n { Name: \"U.S. Virgin Islands\", RegionCode: \"VI\" },\r\n { Name: \"Uganda\", RegionCode: \"UG\" },\r\n { Name: \"Ukraine\", RegionCode: \"UA\" },\r\n { Name: \"United Arab Emirates\", RegionCode: \"AE\" },\r\n { Name: \"United Kingdom\", RegionCode: \"GB\" },\r\n { Name: \"United States\", RegionCode: \"US\" },\r\n { Name: \"Uruguay\", RegionCode: \"UY\" },\r\n { Name: \"Uzbekistan\", RegionCode: \"UZ\" },\r\n { Name: \"Vanuatu\", RegionCode: \"VU\" },\r\n { Name: \"Vatican\", RegionCode: \"VA\" },\r\n { Name: \"Venezuela\", RegionCode: \"VE\" },\r\n { Name: \"Vietnam\", RegionCode: \"VN\" },\r\n { Name: \"Wallis and Futuna\", RegionCode: \"WF\" },\r\n { Name: \"Western Sahara\", RegionCode: \"EH\" },\r\n { Name: \"Yemen\", RegionCode: \"YE\" },\r\n { Name: \"Zambia\", RegionCode: \"ZM\" },\r\n { Name: \"Zimbabwe\", RegionCode: \"ZW\" }\r\n];\r\n\r\nexport default regionCodeList;","const currencyCodeList = [\n { Code: \"XUA\", Name: \"ADB Unit of Account\" },\n { Code: \"AFN\", Name: \"Afghani\" },\n { Code: \"DZD\", Name: \"Algerian Dinar\" },\n { Code: \"ARS\", Name: \"Argentine Peso\" },\n { Code: \"AMD\", Name: \"Armenian Dram\" },\n { Code: \"AWG\", Name: \"Aruban Florin\" },\n { Code: \"AUD\", Name: \"Australian Dollar\" },\n { Code: \"AZN\", Name: \"Azerbaijan Manat\" },\n { Code: \"BSD\", Name: \"Bahamian Dollar\" },\n { Code: \"BHD\", Name: \"Bahraini Dinar\" },\n { Code: \"THB\", Name: \"Baht\" },\n { Code: \"PAB\", Name: \"Balboa\" },\n { Code: \"BBD\", Name: \"Barbados Dollar\" },\n { Code: \"BYN\", Name: \"Belarusian Ruble\" },\n { Code: \"BZD\", Name: \"Belize Dollar\" },\n { Code: \"BMD\", Name: \"Bermudian Dollar\" },\n { Code: \"BOB\", Name: \"Boliviano\" },\n { Code: \"VES\", Name: \"Bolívar Soberano\" },\n { Code: \"XBA\", Name: \"Bond Markets Unit European Composite Unit (EURCO)\" },\n { Code: \"XBB\", Name: \"Bond Markets Unit European Monetary Unit (E.M.U.-6)\" },\n { Code: \"XBD\", Name: \"Bond Markets Unit European Unit of Account 17 (E.U.A.-17)\" },\n { Code: \"XBC\", Name: \"Bond Markets Unit European Unit of Account 9 (E.U.A.-9)\" },\n { Code: \"BRL\", Name: \"Brazilian Real\" },\n { Code: \"BND\", Name: \"Brunei Dollar\" },\n { Code: \"BGN\", Name: \"Bulgarian Lev\" },\n { Code: \"BIF\", Name: \"Burundi Franc\" },\n { Code: \"CVE\", Name: \"Cabo Verde Escudo\" },\n { Code: \"CAD\", Name: \"Canadian Dollar\" },\n { Code: \"KYD\", Name: \"Cayman Islands Dollar\" },\n { Code: \"XOF\", Name: \"CFA Franc BCEAO\" },\n { Code: \"XAF\", Name: \"CFA Franc BEAC\" },\n { Code: \"XPF\", Name: \"CFP Franc\" },\n { Code: \"CLP\", Name: \"Chilean Peso\" },\n { Code: \"XTS\", Name: \"Codes specifically reserved for testing purposes\" },\n { Code: \"COP\", Name: \"Colombian Peso\" },\n { Code: \"KMF\", Name: \"Comorian Franc\" },\n { Code: \"CDF\", Name: \"Congolese Franc\" },\n { Code: \"BAM\", Name: \"Convertible Mark\" },\n { Code: \"NIO\", Name: \"Cordoba Oro\" },\n { Code: \"CRC\", Name: \"Costa Rican Colon\" },\n { Code: \"CUP\", Name: \"Cuban Peso\" },\n { Code: \"CZK\", Name: \"Czech Koruna\" },\n { Code: \"GMD\", Name: \"Dalasi\" },\n { Code: \"DKK\", Name: \"Danish Krone\" },\n { Code: \"MKD\", Name: \"Denar\" },\n { Code: \"DJF\", Name: \"Djibouti Franc\" },\n { Code: \"STN\", Name: \"Dobra\" },\n { Code: \"DOP\", Name: \"Dominican Peso\" },\n { Code: \"VND\", Name: \"Dong\" },\n { Code: \"XCD\", Name: \"East Caribbean Dollar\" },\n { Code: \"EGP\", Name: \"Egyptian Pound\" },\n { Code: \"SVC\", Name: \"El Salvador Colon\" },\n { Code: \"ETB\", Name: \"Ethiopian Birr\" },\n { Code: \"EUR\", Name: \"Euro\" },\n { Code: \"FKP\", Name: \"Falkland Islands Pound\" },\n { Code: \"FJD\", Name: \"Fiji Dollar\" },\n { Code: \"HUF\", Name: \"Forint\" },\n { Code: \"GHS\", Name: \"Ghana Cedi\" },\n { Code: \"GIP\", Name: \"Gibraltar Pound\" },\n { Code: \"XAU\", Name: \"Gold\" },\n { Code: \"HTG\", Name: \"Gourde\" },\n { Code: \"PYG\", Name: \"Guarani\" },\n { Code: \"GNF\", Name: \"Guinean Franc\" },\n { Code: \"GYD\", Name: \"Guyana Dollar\" },\n { Code: \"HKD\", Name: \"Hong Kong Dollar\" },\n { Code: \"UAH\", Name: \"Hryvnia\" },\n { Code: \"ISK\", Name: \"Iceland Krona\" },\n { Code: \"INR\", Name: \"Indian Rupee\" },\n { Code: \"IRR\", Name: \"Iranian Rial\" },\n { Code: \"IQD\", Name: \"Iraqi Dinar\" },\n { Code: \"JMD\", Name: \"Jamaican Dollar\" },\n { Code: \"JOD\", Name: \"Jordanian Dinar\" },\n { Code: \"KES\", Name: \"Kenyan Shilling\" },\n { Code: \"PGK\", Name: \"Kina\" },\n { Code: \"HRK\", Name: \"Kuna\" },\n { Code: \"KWD\", Name: \"Kuwaiti Dinar\" },\n { Code: \"AOA\", Name: \"Kwanza\" },\n { Code: \"MMK\", Name: \"Kyat\" },\n { Code: \"LAK\", Name: \"Lao Kip\" },\n { Code: \"GEL\", Name: \"Lari\" },\n { Code: \"LBP\", Name: \"Lebanese Pound\" },\n { Code: \"ALL\", Name: \"Lek\" },\n { Code: \"HNL\", Name: \"Lempira\" },\n { Code: \"SLL\", Name: \"Leone\" },\n { Code: \"LRD\", Name: \"Liberian Dollar\" },\n { Code: \"LYD\", Name: \"Libyan Dinar\" },\n { Code: \"SZL\", Name: \"Lilangeni\" },\n { Code: \"LSL\", Name: \"Loti\" },\n { Code: \"MGA\", Name: \"Malagasy Ariary\" },\n { Code: \"MWK\", Name: \"Malawi Kwacha\" },\n { Code: \"MYR\", Name: \"Malaysian Ringgit\" },\n { Code: \"MUR\", Name: \"Mauritius Rupee\" },\n { Code: \"MXN\", Name: \"Mexican Peso\" },\n { Code: \"MXV\", Name: \"Mexican Unidad de Inversion (UDI)\" },\n { Code: \"MDL\", Name: \"Moldovan Leu\" },\n { Code: \"MAD\", Name: \"Moroccan Dirham\" },\n { Code: \"MZN\", Name: \"Mozambique Metical\" },\n { Code: \"BOV\", Name: \"Mvdol\" },\n { Code: \"NGN\", Name: \"Naira\" },\n { Code: \"ERN\", Name: \"Nakfa\" },\n { Code: \"NAD\", Name: \"Namibia Dollar\" },\n { Code: \"NPR\", Name: \"Nepalese Rupee\" },\n { Code: \"ANG\", Name: \"Netherlands Antillean Guilder\" },\n { Code: \"ILS\", Name: \"New Israeli Sheqel\" },\n { Code: \"TWD\", Name: \"New Taiwan Dollar\" },\n { Code: \"NZD\", Name: \"New Zealand Dollar\" },\n { Code: \"BTN\", Name: \"Ngultrum\" },\n { Code: \"KPW\", Name: \"North Korean Won\" },\n { Code: \"NOK\", Name: \"Norwegian Krone\" },\n { Code: \"MRU\", Name: \"Ouguiya\" },\n { Code: \"TOP\", Name: \"Pa'anga\" },\n { Code: \"PKR\", Name: \"Pakistan Rupee\" },\n { Code: \"XPD\", Name: \"Palladium\" },\n { Code: \"MOP\", Name: \"Pataca\" },\n { Code: \"CUC\", Name: \"Peso Convertible\" },\n { Code: \"UYU\", Name: \"Peso Uruguayo\" },\n { Code: \"PHP\", Name: \"Philippine Peso\" },\n { Code: \"XPT\", Name: \"Platinum\" },\n { Code: \"GBP\", Name: \"Pound Sterling\" },\n { Code: \"BWP\", Name: \"Pula\" },\n { Code: \"QAR\", Name: \"Qatari Rial\" },\n { Code: \"GTQ\", Name: \"Quetzal\" },\n { Code: \"ZAR\", Name: \"Rand\" },\n { Code: \"OMR\", Name: \"Rial Omani\" },\n { Code: \"KHR\", Name: \"Riel\" },\n { Code: \"RON\", Name: \"Romanian Leu\" },\n { Code: \"MVR\", Name: \"Rufiyaa\" },\n { Code: \"IDR\", Name: \"Rupiah\" },\n { Code: \"RUB\", Name: \"Russian Ruble\" },\n { Code: \"RWF\", Name: \"Rwanda Franc\" },\n { Code: \"SHP\", Name: \"Saint Helena Pound\" },\n { Code: \"SAR\", Name: \"Saudi Riyal\" },\n { Code: \"XDR\", Name: \"SDR (Special Drawing Right)\" },\n { Code: \"RSD\", Name: \"Serbian Dinar\" },\n { Code: \"SCR\", Name: \"Seychelles Rupee\" },\n { Code: \"XAG\", Name: \"Silver\" },\n { Code: \"SGD\", Name: \"Singapore Dollar\" },\n { Code: \"PEN\", Name: \"Sol\" },\n { Code: \"SBD\", Name: \"Solomon Islands Dollar\" },\n { Code: \"KGS\", Name: \"Som\" },\n { Code: \"SOS\", Name: \"Somali Shilling\" },\n { Code: \"TJS\", Name: \"Somoni\" },\n { Code: \"SSP\", Name: \"South Sudanese Pound\" },\n { Code: \"LKR\", Name: \"Sri Lanka Rupee\" },\n { Code: \"XSU\", Name: \"Sucre\" },\n { Code: \"SDG\", Name: \"Sudanese Pound\" },\n { Code: \"SRD\", Name: \"Surinam Dollar\" },\n { Code: \"SEK\", Name: \"Swedish Krona\" },\n { Code: \"CHF\", Name: \"Swiss Franc\" },\n { Code: \"SYP\", Name: \"Syrian Pound\" },\n { Code: \"BDT\", Name: \"Taka\" },\n { Code: \"WST\", Name: \"Tala\" },\n { Code: \"TZS\", Name: \"Tanzanian Shilling\" },\n { Code: \"KZT\", Name: \"Tenge\" },\n { Code: \"XXX\", Name: \"The codes assigned for transactions where no currency is involved\" },\n { Code: \"TTD\", Name: \"Trinidad and Tobago Dollar\" },\n { Code: \"MNT\", Name: \"Tugrik\" },\n { Code: \"TND\", Name: \"Tunisian Dinar\" },\n { Code: \"TRY\", Name: \"Turkish Lira\" },\n { Code: \"TMT\", Name: \"Turkmenistan New Manat\" },\n { Code: \"AED\", Name: \"UAE Dirham\" },\n { Code: \"UGX\", Name: \"Uganda Shilling\" },\n { Code: \"CLF\", Name: \"Unidad de Fomento\" },\n { Code: \"COU\", Name: \"Unidad de Valor Real\" },\n { Code: \"UYW\", Name: \"Unidad Previsional\" },\n { Code: \"UYI\", Name: \"Uruguay Peso en Unidades Indexadas (UI)\" },\n { Code: \"USD\", Name: \"US Dollar\" },\n { Code: \"USN\", Name: \"US Dollar (Next day)\" },\n { Code: \"UZS\", Name: \"Uzbekistan Sum\" },\n { Code: \"VUV\", Name: \"Vatu\" },\n { Code: \"CHE\", Name: \"WIR Euro\" },\n { Code: \"CHW\", Name: \"WIR Franc\" },\n { Code: \"KRW\", Name: \"Won\" },\n { Code: \"YER\", Name: \"Yemeni Rial\" },\n { Code: \"JPY\", Name: \"Yen\" },\n { Code: \"CNY\", Name: \"Yuan Renminbi\" },\n { Code: \"ZMW\", Name: \"Zambian Kwacha\" },\n { Code: \"ZWL\", Name: \"Zimbabwe Dollar\" },\n { Code: \"PLN\", Name: \"Zloty\" },\n];\n\nexport default currencyCodeList;","import Vue from 'vue';\r\nimport utils from './utils.jsx';\r\nimport apiService from '@/Services/api';\r\nimport { appSettings } from './appSettings';\r\nimport regionCodeList from './regionCodeList';\r\nimport currencyCodeList from './currencyCodes';\r\nimport token from '@/Services/token';\r\n\r\nconst computed = {\r\n utils: function () {\r\n return utils;\r\n },\r\n isdebug: function () {\r\n return appSettings.DEBUG;\r\n },\r\n showbase: function () {\r\n return appSettings.SHOWBASE;\r\n },\r\n apiService: function () {\r\n return apiService\r\n },\r\n Base: function () {\r\n let p = this;\r\n\r\n while (p && !p.isbase)\r\n if (p.$attrs && 'c_context' in p.$attrs)\r\n p = p.$attrs.c_context;\r\n else\r\n p = p.$parent;\r\n\r\n return p || this.root._self;\r\n },\r\n Params: function () {\r\n return this.controlscope || {};\r\n },\r\n Control: function () {\r\n //return (this.usecontroldatavalue ? this.controldatavalue : this.controlscope) || {};\r\n //return this.controlscope || {};\r\n return this.scopeitems;\r\n },\r\n GlobalVars: function () {\r\n return utils.global_variables;\r\n },\r\n ServiceVars: function () {\r\n return utils.service_variables;\r\n },\r\n Self: function() {\r\n return this;\r\n },\r\n System: function () { return appSettings; },\r\n Name: function () {\r\n return this.controlData ? (this.controlData.Name || 'unnamed') : 'no control data';\r\n },\r\n Root: function () {\r\n return this.root._self;\r\n },\r\n Parent: function () {\r\n let p = this.$parent;\r\n\r\n // Look for a parent object that is a CallCorp control (skip native vue controls)\r\n while (p && (!p.root || p.is_vstack_parent)) {\r\n if (p.$attrs && 'c_context' in p.$attrs)\r\n p = p.$attrs.c_context;\r\n else\r\n p = p.$parent;\r\n }\r\n\r\n return p;\r\n },\r\n Location: function () {\r\n let path = [];\r\n let p = this;\r\n while (p) {\r\n if ((p.name || p.type)) // && (!p.name || !p.name.includes('__parent')))\r\n {\r\n if (p.name && p.name.includes('__parent'))\r\n path.push({ name: '', type: 'p', id: p._uid });\r\n else\r\n path.push({ name: p.name, type: p.type, id: p._uid });\r\n }\r\n\r\n p = p.$parent;\r\n }\r\n if (path.length === 0)\r\n path.push({ type: this.$vnode.tag });\r\n\r\n return path.reverse().map(i => `${(i.name ? (i.name + '_' + i.id) : '') || ('[' + i.type + '_' + i.id + ']')}`).join('.');\r\n },\r\n LocationBrief: function () {\r\n let res = this.Location;\r\n let idx = res.indexOf('.staticTabContent_');\r\n if (idx >= 0) {\r\n res = res.substr(idx + 1);\r\n idx = res.indexOf('.');\r\n if (idx >= 0)\r\n res = '[base].' + res.substr(idx + 1);\r\n }\r\n\r\n return res;\r\n //return res.replace('[p].[ControlContainer].[p].[VerticalLayout].[p].mainContainer.[p].mainArea.dynamicTabContent.staticTabContent.', '[std].');\r\n },\r\n careRegionCodeList: function () {\r\n return regionCodeList;\r\n },\r\n careCurrencyCodeList: function () {\r\n return currencyCodeList;\r\n },\r\n}\r\n\r\nexport default computed;","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-menu',{attrs:{\"offset-y\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on, attrs }){return [_c('v-btn',_vm._g(_vm._b({staticClass:\"ma-0\",attrs:{\"text\":\"\",\"x-small\":\"\"}},'v-btn',attrs,false),on),[_vm._v(\" \"+_vm._s(_vm.label)+_vm._s(_vm.items[_vm.selection]?.text || 'Not selected')+\" \"),_c('v-icon',{attrs:{\"small\":\"\"}},[_vm._v(\"mdi-menu-down\")])],1)]}}])},[_c('v-list',[_c('v-list-item-group',{attrs:{\"color\":\"primary\"},model:{value:(_vm.selection),callback:function ($$v) {_vm.selection=$$v},expression:\"selection\"}},_vm._l((_vm.items),function(item){return _c('v-list-item',{key:item.value,staticClass:\"mediumdense\",scopedSlots:_vm._u([{key:\"default\",fn:function(){return [_c('v-list-item-title',[_vm._v(\" \"+_vm._s(item.text)+\" \")])]},proxy:true}],null,true)})}),1)],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./metricItem.vue?vue&type=template&id=6b4c7fca&scoped=true&\"\nimport script from \"./metricItem.vue?vue&type=script&lang=js&\"\nexport * from \"./metricItem.vue?vue&type=script&lang=js&\"\nimport style0 from \"./metricItem.vue?vue&type=style&index=0&id=6b4c7fca&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 \"6b4c7fca\",\n null\n \n)\n\nexport default component.exports","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKgAAABpCAYAAACu/2ilAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAF+SURBVHgB7d0xboNAAAXRdZTWXID7H40LAL0jWUqVKi6SWfOehLjA6Bew0t7O83wMiPoYECZQ0gRKmkBJEyhpAiVNoKQJlDSBkiZQ0gRKmkBJEyhpUwW6bdvz4TosKGkCJU2gpAmUtM/xxvZ9H8dxjFfc7/exLMvgf1lQ0gRKmkBJEyhpAiVNoKQJlDSBkiZQ0gRKmkBJEyhpAiVNoKQJlDSBkvbWB5Zn44D1TxaUNIGSJlDSBEqaQEkTKGkCJU2gpAmUNIGSJlDSBEqawyIvcKjj71hQ0gRKmkBJEyhpAiVNoKQJlDSBkiZQ0gRKmkBJEyhpAiVNoKQJlDSBkiZQ0gRKmkBJEyhpAiVNoKQJlDSBkiZQ0gRKmkBJEyhpAiVNoKQJlDSBknY7z/MxJrFt2/O9ruvgGiwoaQIlTaCkCZQ0gZImUNIESppASZvyprnvD/b83mw33VlQ0qb61cn1WFDSBEqaQEkTKGkCJU2gpAmUNIGSJlDSBEqaQEn7AnpbKcdmKSSaAAAAAElFTkSuQmCC\"","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./agGridToolReportFilters.vue?vue&type=style&index=0&id=08b22184&prod&scoped=true&lang=css&\"","import token from '@/Services/token';\r\nimport refreshToken from '@/Services/tokenEventListenerService';\r\nimport api from '@/Services/api';\r\n\r\nexport default { \r\n childWindows: [],\r\n \r\n showChildWindow(args) {\r\n var controlCustomerID = args.OwnerId;\r\n\r\n if (!this.childWindows[controlCustomerID] || this.childWindows[controlCustomerID].closed) {\r\n // get a handle to the already opened debug window if there is one, or open new window\r\n const url = `/?ControlURL=v1/Vue/ExternalEditor_v2&type=${args.Type}&name=${encodeURIComponent(args.Name)}&id=${args.Id}`;\r\n\r\n const sessionStorage = window.sessionStorage;\r\n this.childWindows[controlCustomerID] = window.open(url, \"_blank\", \"toolbar=no\");\r\n this.childWindows[controlCustomerID].sessionStorage.clear();\r\n\r\n // If the Customer we're currently logged into doesn't own the document, but the user belongs to the owner's company, then get a token for that company\r\n if (controlCustomerID != token.CustomerID()) {\r\n api.get('/Apps/SecurityContexts/Available').then(result => {\r\n var additionalSecurityContext;\r\n var customerid = token.CustomerID();\r\n\r\n result.forEach(user => {\r\n user.SecurityContexts.forEach(securityContext => {\r\n // we found the context for the control owner\r\n if (securityContext.SecurityContextTypeID == 'Customer' && securityContext.ID == controlCustomerID) {\r\n customerid = controlCustomerID;\r\n additionalSecurityContext = securityContext.UserSecurityContextID;\r\n }\r\n });\r\n });\r\n\r\n refreshToken.refreshWithExtraToken(undefined, additionalSecurityContext).then(extraToken => {\r\n this.childWindows[controlCustomerID].sessionStorage.setItem('AccessToken',extraToken.access_token);\r\n this.childWindows[controlCustomerID].sessionStorage.setItem('RefreshToken',extraToken.refresh_token);\r\n this.childWindows[controlCustomerID].sessionStorage.setItem('BandID', sessionStorage.getItem('BandID'));\r\n this.childWindows[controlCustomerID].sessionStorage.setItem('UserID', sessionStorage.getItem('UserID'));\r\n this.childWindows[controlCustomerID].sessionStorage.setItem('CustomerID', customerid);\r\n });\r\n });\r\n }\r\n else\r\n refreshToken.refreshWithExtraToken(undefined, null).then(extraToken => {\r\n this.childWindows[controlCustomerID].sessionStorage.setItem('AccessToken',extraToken.access_token);\r\n this.childWindows[controlCustomerID].sessionStorage.setItem('RefreshToken',extraToken.refresh_token);\r\n this.childWindows[controlCustomerID].sessionStorage.setItem('BandID', sessionStorage.getItem('BandID'));\r\n this.childWindows[controlCustomerID].sessionStorage.setItem('UserID', sessionStorage.getItem('UserID'));\r\n this.childWindows[controlCustomerID].sessionStorage.setItem('CustomerID', token.CustomerID());\r\n });\r\n } else {\r\n this.childWindows[controlCustomerID].dispatchEvent(new CustomEvent('event-bus-listener', { detail: {name: 'OpenDocumentEditor', args: args}}));\r\n }\r\n this.childWindows[controlCustomerID].focus();\r\n },\r\n}"],"sourceRoot":""}