{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/Application/components/BaseComponentMixin.jsx","webpack:///./src/Application/components/vuecontrols/advancedHistory/menuColumnGroups.vue","webpack:///./src/Application/components/vuecontrols/advancedHistory/filter_booleanColumn.vue","webpack:///./src/Application/components/javascript/care-sip-0.15.10.min.js","webpack:///./src/Application/components/vuecontrols/advancedHistory/filter_booleanColumn.vue?3c28","webpack:///./src/App.vue?2a39","webpack:///./src/Application/components/vuecontrols/RoosterEditorBase.vue?7c3e","webpack:///./src/Services/locale.jsx","webpack:///./src/Application/components/vuecontrols/advancedHistory/filter_durationColumn.vue?daa3","webpack:///./src/Application/components/vuecontrols/advancedHistory/cardHistogram.vue","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/Assets/BrokenImage.svg","webpack:///./src/Application/components/vuecontrols/advancedHistory/columnItemList.vue?09cb","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/Assets/Donut.png","webpack:///./src/Shared/filters.js","webpack:///./src/Application/components/vuecontrols/debugDialog.vue?e912","webpack:///src/Application/components/vuecontrols/advancedHistory/menuIntervalSelection.vue","webpack:///./src/Application/components/vuecontrols/advancedHistory/iconComponent.vue?a05c","webpack:///./src/Application/components/vuecontrols/advancedHistory/agGridToolReportColumns.vue?ca3d","webpack:///./src/Application/components/vuecontrols/advancedHistory/filter_booleanColumn.vue?fb56","webpack:///./src/Application/components/AdvancedReports.vue?902b","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/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/Shared/careHelpfulFunctions.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/Application/components/vuecontrols/advancedHistory/agGridToolReportChart.vue?0fad","webpack:///./src/Application/components/vuecontrols/advancedHistory/groupbyItemList.vue?7b75","webpack:///./src/Application/components/vuecontrols/advancedHistory/metricItemList.vue?2f6b","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/advancedHistory/filter_directionColumn.vue?142e","webpack:///./src/Application/components/vuecontrols/verticalTabs.vue?4320","webpack:///./src/Application/components/vuecontrols/advancedHistory/cardHistogram.vue?2cc4","webpack:///./src/Shared/timezoneMap.js","webpack:///./src/Application/careHelpfulFunctions.jsx","webpack:///./src/Services/webSocketService.jsx","webpack:///./src/Application/components/vuecontrols/advancedHistory/agGridToolReportFields.vue?f35f","webpack:///./src/Services/careFetchService.jsx","webpack:///./src/Services/api.jsx","webpack:///./src/Application/components/vuecontrols/advancedHistory/agGridToolReportFields.vue?0117","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/components/vuecontrols/advancedHistory/filter_dateColumn.vue?4f3a","webpack:///./src/Application/components/vuecontrols/advancedHistory/filter_textSetColumn.vue?a065","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/Services/cachingService.jsx","webpack:///./src/Application/components/vuecontrols/advancedHistory/filterCategory.vue?d55f","webpack:///./src/Application/components/vuecontrols/griddy.vue?f3b6","webpack:///src/Application/components/vuecontrols/advancedHistory/filter_directionColumn.vue","webpack:///./src/Application/components/vuecontrols/advancedHistory/agGridToolReportFilters.vue?e587","webpack:///./src/Application/components/vuecontrols/RoosterEditorBase.vue?3f35","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/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/AdvancedHistory.vue?249b","webpack:///./src/Application/components/vuecontrols/advancedHistory/agGridToolReportAllinOne.vue?deb8","webpack:///./src/Application/components/vuecontrols/advancedHistory/overflowPillGroup.vue?9148","webpack:///./src/Application/components/SoftPhone.vue?2c46","webpack:///./src/Application/components/vuecontrols/responsiveDash.vue?c138","webpack:///src/Application/components/vuecontrols/advancedHistory/cardHistogram.vue","webpack:///./src/Application/components/vuecontrols/calendar.vue?aa01","webpack:///./src/Application/components/vuecontrols/advancedHistory/filter_directionColumn.vue","webpack:///./src/Application/components/AdvancedHistory.vue?96a1","webpack:///./src/Application/components/actions/DialogBasicConfirmModal.jsx","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/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","model","selected_items","render","default","DigestAuthentication","Grammar","IncomingRequest","IncomingRequestMessage","IncomingResponse","IncomingResponseMessage","LoggerFactory","NameAddrHeader","OutgoingRequest","OutgoingRequestMessage","Parser","Timers","URI","ClientContext","C","a","DialogStatus","SessionStatus","TypeStrings","UAStatus","Exceptions","u","PublishContext","ReferClientContext","ReferServerContext","RegisterContext","ServerContext","h","InviteClientContext","InviteServerContext","Session","g","Subscription","f","Transport","v","InviteClientTransaction","InviteServerTransaction","NonInviteClientTransaction","NonInviteServerTransaction","Transactions","S","makeUserAgentCoreConfigurationFromUA","UA","T","Utils","y","__importStar","Web","E","version","b","Core","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","core","dialogState","dialogs","set","id","initialDialogStateForUserAgentClient","getHeaders","reverse","parseHeader","uri","cseq","callId","fromTag","toTag","from","to","statusCode","early","localTag","remoteTag","localSequenceNumber","remoteSequenceNumber","localURI","remoteURI","remoteTarget","routeSet","secure","initialDialogStateForUserAgentServer","dispose","delete","configurable","confirm","receiveRequest","method","ACK","recomputeRouteSet","createOutgoingRequestMessage","extraHeaders","body","userAgentCore","makeOutgoingRequestMessage","sequenceGuard","replyStateless","Dialog","BYE","CANCEL","INFO","INVITE","MESSAGE","NOTIFY","OPTIONS","REGISTER","UPDATE","SUBSCRIBE","PUBLISH","REFER","PRACK","content","contentType","contentDisposition","fromBodyLegacy","getBody","getHeader","isBody","__extends","IncomingMessage","headers","addHeader","headerize","hasHeader","parsed","parse","replace","setHeader","toString","startRule","nameAddrHeaderParse","URIParse","expected","found","location","captureStackTrace","buildMessage","charCodeAt","toUpperCase","parts","map","isArray","inverted","description","sort","join","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","displayName","Event","From","host","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","scheme","user","port","host_type","uri_params","uri_headers","decodeURIComponent","password","parseInt","transport","toLowerCase","params","ttl","maddr","lr","sip_version","status_code","reason_phrase","multi_header","position","offset","start","trim","substring","q","expires","parseFloat","tag","setParam","realm","nonce","opaque","stale","algorithm","qop","replaces_from_tag","replaces_to_tag","call_id","early_only","state","reason","retry_after","received","branch","rport","protocol","deltaSeconds","refresher","R","line","column","ignoreCase","end","_","split","substr","test","charAt","_displayName","aor","clone","JSON","stringify","parameters","Parameters","getParam","hasParam","deleteParam","clearParams","normal","deleteHeader","clearHeaders","_raw","toRaw","_toString","_normal","match","escapeUser","encodeURIComponent","Cseq","Rack","Rseq","Math","floor","random","createRandomToken","getReasonPhrase","newTag","str_utf8_length","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","options","getDefaultOptions","__assign","optionTags","ruri","fromURI","makeNameAddrHeader","fromDisplayName","toURI","toDisplayName","callIdPrefix","forceRport","hackViaTcp","userAgentString","viaHost","RegExp","setViaHeader","__importDefault","logger","getLogger","username","ncHex","authenticate","cnonce","updateNcHex","calculateResponse","response","Number","lib","WordArray","Hasher","algo","abs","sin","MD5","extend","_doReset","_hash","init","_doProcessBlock","words","w","A","I","O","x","_doFinalize","_data","_nDataBytes","sigBytes","_process","_createHelper","HmacMD5","_createHmacHelper","Base","mixIn","$super","clamp","ceil","enc","Hex","Latin1","String","fromCharCode","Utf8","escape","unescape","BufferedBlockAlgorithm","reset","_append","blockSize","max","_minBufferSize","min","cfg","update","finalize","HMAC","constructOutgoingResponse","reasonPhrase","reduce","supported","userAgent","via","viaBranch","forEach","referTo","parseMessage","initialTransaction","_signalingState","SignalingState","Initial","ackWait","delegate","start2xxRetransmissionTimer","signalingStateTransition","loggerFactory","log","Closed","_offer","_answer","invite2xxTimer","SessionState","Early","AckWait","Terminated","Confirmed","reConfirm","reinviteUserAgentServer","startReInvite2xxRetransmissionTimer","ack","reinviteUserAgentClient","transaction","ackResponse","bye","TransactionState","ByeUserAgentClient","info","InfoUserAgentClient","invite","ReInviteUserAgentClient","notify","NotifyUserAgentClient","prack","PrackUserAgentClient","refer","ReferUserAgentClient","onAck","ByeUserAgentServer","onBye","accept","InfoUserAgentServer","onInfo","ReInviteUserAgentServer","onInvite","NotifyUserAgentServer","onNotify","PrackUserAgentServer","onPrack","ReferUserAgentServer","onRefer","reliableSequenceGuard","includes","rseq","signalingStateRollback","HaveLocalOffer","signalingState","HaveRemoteOffer","_rollbackOffer","_rollbackAnswer","Stable","T1","retransmitAcceptedResponse","T2","removeListener","onAckTimeout","addListener","SessionDialog","T4","TIMER_B","TIMER_D","TIMER_F","TIMER_H","TIMER_I","TIMER_J","TIMER_K","TIMER_L","TIMER_M","TIMER_N","PROVISIONAL_RESPONSE_INTERVAL","makeId","_request","onRequestTimeout","Transaction","ClientTransaction","_transport","_user","_id","_state","typeToString","on","logTransportError","send","catch","TransportError","onTransportError","setState","onStateChange","emit","EventEmitter","Function","ownKeys","getOwnPropertyNames","isNaN","_events","_eventsCount","_maxListeners","defaultMaxListeners","newListener","listener","unshift","warned","emitter","count","fired","wrapFn","RangeError","getPrototypeOf","setMaxListeners","getMaxListeners","context","prependListener","once","prependOnceListener","off","removeAllListeners","keys","listeners","rawListeners","listenerCount","eventNames","Exception","TransactionStateError","Calling","ackRetransmissionCache","Map","B","timer_B","D","M","receiveResponse","stateTransition","Proceeding","Accepted","Completed","has","timer_D","timer_M","timer_A","Trying","stopProgressExtensionTimer","H","L","lastProvisionalResponse","lastFinalResponse","startProgressExtensionTimer","timer_L","timer_H","timer_I","progressExtensionTimer","setInterval","clearInterval","timer_G","ServerTransaction","F","timer_F","K","timer_K","J","lastResponse","timer_J","UserAgentClient","transactionConstructor","challenged","_transaction","cancel","Route","authenticationGuard","credentials","configuration","authenticationFactory","onTrying","onProgress","onAccept","onRedirect","onReject","userAgentClients","UserAgentServer","acceptable","reply","progress","progressable","redirect","redirectable","rejectable","trying","tryingable","receiveCancel","onCancel","userAgentHeaderFieldValue","supportedOptionTagsResponse","userAgentServers","dialog","session","_autoRefresh","_subscriptionEvent","_subscriptionExpires","_subscriptionExpiresInitial","_subscriptionExpiresLastSet","now","_subscriptionRefresh","_subscriptionRefreshLastSet","_subscriptionState","initialDialogStateForSubscription","N","refreshTimerClear","refreshTimerSet","autoRefresh","subscriptionRefresh","refresh","AllowedMethods","subscriptionEvent","subscriptionExpiresInitial","contact","subscribe","subscriptionState","SubscriptionState","Pending","Active","ReSubscribeUserAgentClient","timer_N","terminate","onTerminated","unsubscribe","onRefresh","refreshTimer","subscriptionExpires","NotifyWait","SubscriptionDialog","waitNotifyStop","Levels","builtinEnabled","_level","loggers","_connector","level","Logger","genericLog","careAppSettings","careService","logDebug","logError","logInfo","print","connector","category","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","initializer","ua","normalizeTarget","fromUri","toUri","fromBodyObj","localIdentity","remoteIdentity","applicants","causes","REQUEST_TIMEOUT","CONNECTION_ERROR","LIBRARY_VERSION","USER_AGENT","SIP","SIPS","INTERNAL_ERROR","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","REQUIRED","SUPPORTED","UNSUPPORTED","SIP_ERROR_CAUSES","REASON_PHRASE","OPTION_TAGS","answermode","eventlist","explicitsub","gin","gruu","histinfo","ice","norefersub","nosub","outbound","path","policy","precondition","pref","privacy","replaces","tdialog","timer","uui","RTP","dtmfType","STATUS_EARLY","STATUS_CONFIRMED","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","ConfigurationError","DTMF","InvalidStateError","MethodParameterError","NotSupportedError","RenegotiationError","RequestSender","SessionDescriptionHandler","SessionDescriptionHandlerError","SessionDescriptionHandlerObserver","STATUS_INIT","STATUS_STARTING","STATUS_READY","STATUS_USER_CLOSED","STATUS_NOT_READY","defer","reducePromises","generateFakeSDP","isDecimal","newUUID","sipErrorCause","getReasonHeaderValue","getCancelReason","buildStatusLine","toBodyObj","ClosedSessionDescriptionHandlerError","TerminatedSessionError","UnsupportedSessionDescriptionContentTypeError","code","parameter","status","unpublishOnClose","pubRequestExpires","publishRefreshTimer","pubRequestBody","pubRequestEtag","publishers","sendPublishRequest","unpublish","close","refreshRequest","applicant","initReferTo","errorListener","sendRequest","receiveNotify","search","activeAfterTransfer","friendlyName","referredSession","findSession","referredBy","incomingRequest","followRefer","inviteOptions","targetSession","sendNotify","getLoggerFactory","assertedIdentity","minCode","maxCode","events","extraContactHeaderParams","instanceId","regId","registrar","mandatory","optional","filter","registered","onTransportDisconnected","generateContactHeader","closeHeaders","closeWithHeaders","registrationTimer","registrationExpiredTimer","unregistered","registrationFailure","registeredBefore","unregister","pendingReinvite","sessionDescriptionHandlerFactory","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","hasDescription","setDescription","sessionDescriptionHandlerOptions","receiveReinvite","init_incoming","passedOptions","getDescription","rejected","canceled","accepted","replacee","connecting","_canceled","noAnswerTimeout","_accept","onContextError","_reliableProgressWaitForPrack","_progress","sessionState","setupSessionDescriptionHandler","sessionDescriptionHandlerFactoryOptions","generateResponseOfferAnswer","setOfferAndGetAnswer","getOffer","offer","handlePrackOfferAnswer","setAnswer","prackNeverArrived","waitForArrivalOfPrack","_progressWithSDP","_reliableProgress","prackArrived","prackRequest","prackResponse","progressResponse","waitingForPrackResolve","waitingForPrackPromise","waitingForPrackReject","getSessionDescriptionHandler","anonymous","earlyMediaSessionDescriptionHandlers","inviteWithoutSdp","isCanceled","received100","sendInvite","careError","outgoingInviteRequest","ackAndBye","disposeEarlyMedia","MIN_DURATION","MAX_DURATION","DEFAULT_DURATION","MIN_INTER_TONE_GAP","DEFAULT_INTER_TONE_GAP","owner","originator","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","custom","usePreloadedRoute","hackIpInContact","hackWssInTransport","constraints","peerConnectionOptions","contactName","contactTransport","defaultFactory","authorizationUser","experimentalFeatures","getConfigurationCheck","ALLOWED_METHODS","ACCEPTED_BODY_TYPES","MAX_FORWARDS","TAG_LENGTH","sipUri","Set","DtmfType","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","sdp","alwaysAcquireMediaFirst","setRemoteDescription","disableAudioFallback","stripVideo","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","_stateEventEmitter","_userAgent","_sessions","_sessionDescriptionHandler","Establishing","Established","_bye","Terminating","_assertedIdentity","_dialog","_replacee","_makeEmitter","RequestPendingError","withoutSdp","sessionDescriptionHandlerModifiers","requestDelegate","_sessionDescriptionHandlerOptions","_sessionDescriptionHandlerModifiers","rollbackOffer","requestOptions","_contact","_referrer","_info","onAckRequest","_renderbody","_rendertype","onByeRequest","onInfoRequest","Info","onInviteRequest","generateResponseOfferAnswerInDialog","onNotifyRequest","Notification","onPrackRequest","onReferRequest","Referral","makeInviter","_referralInviterOptions","rollbackDescription","ContentTypeUnsupportedError","setSessionDescriptionHandler","SessionTerminatedError","StateTransitionError","incomingInfoRequest","incomingNotifyRequest","incomingReferRequest","inviter","_makeInviter","_referred","_referral","index","stripped","exec","stripTcpCandidates","stripTelephoneEvent","cleanJitsiSdpImageattr","stripG722","stripRtpPayload","addMidLines","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","WebSocket","connectionTimeout","boundOnOpen","onOpen","boundOnMessage","boundOnClose","onClose","boundOnError","onWebsocketError","clearKeepAliveTimeout","Uint8Array","startSendingKeepAlives","reconnect","noAvailableServers","resetServerErrorStatus","maxReconnectionAttempts","isError","reconnectionTimeout","weight","sendKeepAlive","keepAliveDebounceTimeout","keepAliveDebounce","keepAliveInterval","defineProperties","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","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","$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","open","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","url","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","colDefsLoaded","dateRangePickerVisible","defaultTime","slot","tool_visible","_v","autoSizeAllColumns","applyDateRangeHandler","_b","sizeColumnsToFit","Refresh","rawName","sideBar","panelactive","reportNameChanged","report_name","loadColumns","advancedVisible","pageSize","proxy","unique_id","column_picker_list","columnDefs","column_filters","source_selected","$event","column_filter_list","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","ReadOnly","showHelp","addColumn","help","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","queryError","sourceTypes","userLookup","customerLookup","chatLookup","column_lookup","globalVars","time_values","time","every","presortSize","serverPaginationMode","pageSizeRules","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","yearStart","today","dayOfYear","week","getDateOfWeek","getRelativeDate","unit_type","unit_value","abs_value","isend","getRelativeDateFromFilter","toDate","setTime","setDate","setMonth","roundToInterval","interval","compareObjects","same","ex","AllCustomers","AllUsers","Users","columnlist","uid","allowcaching","cacheIsLoading","myPromise","resolvePromise","rejectPromise","sourcetypes","customerlist","userlist","chatlist","loadSourceTypes","loadCustomerList","loadUserList","loadChatTouchpoints","sourceTypesList","helps","toLookup","column_list","tasks","MappingTableType","loadLookup","MappingTable","getColumnDefs","cols","Sources","ColumnUse","Computed","SourceField","hide","suppressFiltersToolPanel","Filter","menuTabs","valueFormatter","toSorted","_vm$columnLookup$col$","default_visibility","getDefaultHidden","Dependencies","Modules","column_default_visibility","removeColumn","getColumnHelp","setDefaultHidden","hidden","toggleColumn","tab","allDataTypesSelected","allSourcesSelected","categories","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","filterSources","getFilterValue","columnsFromSearch","panels_open","isIconVisible","column_ids","initial_column_filters","usecurrentuser","usefulltext","isopen","UniqueValuesVisible","showunique","useExclusive","filteredlist","transformValue","updateReport","condition","rules","combiner","condition_types","self","updateReportDebouncer","debounce","operator","conditions","setItemCombiner","SearchableTextColumn","listitems","query_in_progress","isUserID","isAllSelected","initial","DBLookupList","initializeFromValue","usage","loadColumnValues","isDEBUG","DEBUG","allDescription","allowStandardTextFilter","haslookup","standardTextFilterTooltip","updateFilter","isEqual","dataurl","Values","byTransformedField","selectAll","toggleAll","isChecked","updateSelectedItems","toggleValue","relayChange","$set","valueto","removeCondition","getCurrencySymbol","toLocaleString","maximumFractionDigits","filterTo","addCondition","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","clearDateRangeHandler","formatDate","unit","FilterbooleanColumn","FilterchannelTypeColumn","FiltercountColumn","FiltercurrencyColumn","FiltercustomerIDColumn","FilterfloatColumn","FilterdateColumn","FilterdirectionColumn","FilterdurationColumn","FilterpercentColumn","FilterphoneNumColumn","FiltersearchableTextColumn","FiltertextSetColumn","FilteruserIDColumn","limitedFilterKey","usages","limitedFilteringTypes","columns","getColumnComponent","updateFilterValue","clearAll","colid","isFieldOpen","localUpdateFilterValue","hasFilter","getColumnFilterUse","setColumnFilterUse","report_settings","fieldChoices","openpanels","filterDataTypes","filterDataTypes_selection","filterCategory_selection","filterSources_selection","saveFilterFilters","loadFilterFilters","filterCategoriesList","chosenColumns","filterColumns","metricColumns","metrics","_common$column_lookup","newtype","function","fieldChoicesText","showwarn","visiblesources","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","find","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","displaydaterange","textcolor","date1","date2","isValid","menuStateChanged","range1","range2","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","query_elapsed","query_result_size","query_refresh_pending","refreshOnReady","delay_expn","initialState","datamodel","report_model","active_source","active_interval","autoGroupColumnDef","columnVisibility","customMetrics","filter_settings","column_state","viewonly_settings","durationFormatIdx","durationFormats","defaultColDef","editable","defaultAggFunc","toolPanels","labelDefault","labelKey","iconKey","toolPanel","maxWidth","hiddenByDefault","defaultToolPanel","aggFuncs","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","report_description","DataType","DataURL","DataRaw","modelvalue","modelurl","RefreshInterval","precompileIconActions","ReportName","ReportDescription","PublishReportName","vueSet","helpers","convertSetValueToVueSet","setReportNameFunction","PublishReportDescription","setReportDescriptionFunction","FilterModal","IsAnyFilters","IsAnyViewFilterChoices","TimeZone","timezone_expn","Filters","filters_expn","StartDate","EndDate","overflow","padding","IsDashboard","$objectid","modelurlvalue","modelrawvalue","_initialState","stateobj","columnOrder","invisiblecols","orderedColIds","hiddenColIds","toolColumnVisibility","toolColumnDefs","nocolumns","totalHits","ReportModel","defaulthidden","columnSizing","z","leftPinned","pinLeft","rightPinned","pinRight","colmods","dependencies","hasSetTime","notify_object","loadLookupTables","loadReportModel","applyReportModel","delay","cdef","pinned","colvisjson","colhide","QueryString","query_filters","applyTableReport","gridApi","modelChanged","refreshServerSide","EnabledExpression","act","MenuItems","tooltipExpn","Icon","iconExpn","SourceTypes","reassign","lockPosition","suppressMovable","setGridOption","notifyfilterschanged","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","clearSearch","getRowClass","child_count","isServerSideGroup","dataItem","getServerSideGroupKey","masterid","colstate","reportDescChanged","toggleDataFilters","cycleDurationFormats","refreshCells","display_type","show_filters","groupDisplayType","chartOptions","pivot_columns","notifychartchange","notifychartrefresh","updatechartserialization","advancedSettingsVisible","selectedPanel","max_pivot_columns","removeMetric","metric_filter_menuopen","search_metrics","metricsearchresults","metric_types","isMetricGroupVisible","groupColumnLookup","group_filter_menuopen","search_groups","defaultTimeColumn","isGroupDisabledSource","interval_choice","toggleGroupby","getMetricHelp","refreshReport","groupingGroups","isGroupVisible","getGroupColumns","groupbysettings","getMetricItemIcon","getSortedFunctions","evt","isMetricInUse","isDisabledMetric","isDisabledSource","getFunctionDisplayName","getMetricDisplayName","getMetricIconColor","menu_is_open","interval_idx","CardHistogram","intervals","findIndex","getTitle","histogramchanged","Container","Draggable","MenuColumnGroups","PopupMenuSelection","MetricItem","MetricItemList","GroupbyItemList","required","initial_userStartEnd","datetime_interval","notifychange","openadvancedsettings","initial_report_name","initial_report_description","greeting","changing","useStartEnd","groupby","pivoton","interval_selection","metricDataTypes","metricCategories","metricSources","anyMetricfilters","metricDataTypes_selection","metricCategory_selection","metricSources_selection","groupDataTypes","groupCategories","groupSources","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","groupingColumns","metricGroups","groupsources_selected","metricsources_selected","groupsearchresults","_a$Tooltip2","_a$Description2","_a$SourceType2","disableDateGroupInterval","selectedDateColumn","getMetricColumns","setMetricGroupExpansion","filterschanged","refreshtool","_this$getPivotOn","report","onDrop","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","all_series","yKey","setChartType","getChart","isCustomTypeDisabled","override_type","revert","marker_enabled","color","hex","chartOptionsLocal","getAxisSeries","legend_position","isPivotting","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","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","notifyreportchange","preparedChartOptions","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","ChartIsDisabled","suppressAggFuncInHeader","hasUserDateFilter","groupmods","metricmods","columnstate","charting","olddisplay_type","applyInitialDateFilter","lastIndexOf","getWindowDimensions","windowWidth","innerWidth","windowHeight","innerHeight","updateDimensions","agchart","querySelector","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","durationSecondsAsStringWithHours","mset","child","axis","baseseries","rowGroupCols","groupKeys","valueCols","pivotCols","cmstr","vf","append","pivotDefs","pivotResultFields","timed_out","rows_count","generatePivotColumns","transformData","this_saved","rtn","totals","_tooltipvalue","child_names","hiddenchildren","group","metric_col","marryChildren","children","headerValueGetter","regex","prepared","newrow","extractLegendHeaderName","getChartSeriesText","_this$chartOptions","_this$chartOptions$le","_this$chartOptions$le2","_this$chartOptions$le3","node","rowPinned","saveCommonDateRange","updateSimDateRange","gridSortChanged","updateUseStartEnd","cdefs","groupbyordered","moveColumn","oldvalue","CellTemplate","columnDef","ico","condition_expn","cccontext","tooltip","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","startsWith","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","focus","inputEl","select","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","_this$ccmodel5","isFocused","$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","RoosterPickerDataProvider","legacyRoosterPlugins","changeSource","triggerCharacter","RoosterContentChangedPlugin","broadcastContent","legacyPlugins","anchor","defaultSegmentFormat","EditorAdapter","contentdiv","initialNode","HtmlSanitizer","unknownTagReplacement","sanitize","insertNode","updateCursor","replaceSelection","insertOnNewLine","setEditorDomAttribute","_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","endsWith","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","rowDataTemp","jumpToValue","DisableLocalStorage","SchemaURL","schemaurl_watch$","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","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","NotifyDataChange","exportDataAsCsv","allColumns","processCellCallback","_params$column$colDef","_params$column$colDef2","_params$node$data$exp","columnFilterChanged","getFilterModel","valueA","valueB","localeCompare","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","setFilterModel","OnFirstDataRendered","FirstRow","firstRow","LastRow","lastRow","rowSelectionChanged","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","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","ID","_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","findTextInModel","findText","casesensitive","occurrence","display_list","is_vstack_parent","IsBase","showbase","actionControlData","_action$ActionData","_action$ActionData2","sourceIndex","async_url","async_text","async_tooltip","cssClasses","_utils$evaluate$split","LookupText","selectedvalueexpr","SelectedValue","selectedValue","fields","FieldMappings","SourceItem","SourceIndex","startKeyList","initialKeyValue","SortDirection","AdditionalKeyFields","model_all","skipFirst","sortCol","descending","DisableSkipFirst","totalCount","successCallback","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","paddingTop","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","EnableDynamicColumns","DynamicColumns","dynamicColumns","columnTemplates","ColumnTemplates","RowModelType","DataSourceFunction","dsFunc","prepareColumnDefs","dynamicColumnsValue","rowModelType","searchTextReader","QuckSearchText","debounced","generateColumnDef","dc","default_visible","caption","column_defs","_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","setColumnFilterModel","onFilterChanged","Params","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","valueEval","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","_l","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","widthEval","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","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","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","Hangup","SendDtmf","mozRTCPeerConnection","webkitGetUserMedia","mozGetUserMedia","micMissingError","localWSConnectionError","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","onclose","_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","onmessage","_close","onopen","_eventSource","WebSocketTransport","webSocketConstructor","_logMessageContent","_webSocketConstructor","_headers","binaryType","_event","_webSocket","ErrorEvent","readyState","OPEN","_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","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","getDay","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","dispatchEvent","CustomEvent"],"mappings":"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D,KAAM,WACNwB,IAAK,WAIjB,CACIxB,KAAM,YACNsgD,OAAQ,cACR9+C,IAAK,KACL++C,QAAS,CACL,CACIvgD,KAAM,WACNwB,IAAK,WAIjB,CACIxB,KAAM,UACNsgD,OAAQ,UACR9+C,IAAK,KACL++C,QAAS,CACL,CACIvgD,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,UACNsgD,OAAQ,UACR9+C,IAAK,KACL++C,QAAS,CACL,CACIvgD,KAAM,SACNwB,IAAK,WAIjB,CACIxB,KAAM,QACNsgD,OAAQ,QACR9+C,IAAK,KACL++C,QAAS,CACL,CACIvgD,KAAM,QACNwB,IAAK,SAET,CACIxB,KAAM,YACNwB,IAAK,SAET,CACIxB,KAAM,WACNwB,IAAK,SAET,CACIxB,KAAM,YACNwB,IAAK,WAIjB,CACIxB,KAAM,SACNsgD,OAAQ,SACR9+C,IAAK,KACL++C,QAAS,CACL,CACIvgD,KAAM,QACNwB,IAAK,WAIjB,CACIxB,KAAM,OACNsgD,OAAQ,MACR9+C,IAAK,KACL++C,QAAS,CACL,CACIvgD,KAAM,WACNwB,IAAK,WAIjB,CACIxB,KAAM,U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","file":"js/app.db291ab0.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 }","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 }","/*!\n * \n * SIP version 0.15.10\n * Copyright (c) 2014-2019 Junction Networks, Inc \n * Homepage: https://sipjs.com\n * License: https://sipjs.com/license/\n * \n * \n * ~~~SIP.js contains substantial portions of JsSIP under the following license~~~\n * Homepage: http://jssip.net\n * Copyright (c) 2012-2013 José Luis Millán - Versatica \n * \n * Permission is hereby granted, free of charge, to any person obtaining\n * a copy of this software and associated documentation files (the\n * \"Software\"), to deal in the Software without restriction, including\n * without limitation the rights to use, copy, modify, merge, publish,\n * distribute, sublicense, and/or sell copies of the Software, and to\n * permit persons to whom the Software is furnished to do so, subject to\n * the following conditions:\n * \n * The above copyright notice and this permission notice shall be\n * included in all copies or substantial portions of the Software.\n * \n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\n * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\n * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\n * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\n * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\n * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n * \n * ~~~ end JsSIP license ~~~\n * \n * \n * \n * \n */\n!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=0)}([function(e,t,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var i=r(1),n=r(2);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(79);t.ClientContext=s.ClientContext;var o=r(80);t.C=o.C;var a=r(82);t.DialogStatus=a.DialogStatus,t.SessionStatus=a.SessionStatus,t.TypeStrings=a.TypeStrings,t.UAStatus=a.UAStatus;var c=r(84);t.Exceptions=c.Exceptions;var u=r(85);t.PublishContext=u.PublishContext;var d=r(86);t.ReferClientContext=d.ReferClientContext,t.ReferServerContext=d.ReferServerContext;var p=r(88);t.RegisterContext=p.RegisterContext;var l=r(87);t.ServerContext=l.ServerContext;var h=r(89);t.InviteClientContext=h.InviteClientContext,t.InviteServerContext=h.InviteServerContext,t.Session=h.Session;var g=r(92);t.Subscription=g.Subscription;var f=r(93);t.Transport=f.Transport;var v=r(28),m={InviteClientTransaction:v.InviteClientTransaction,InviteServerTransaction:v.InviteServerTransaction,NonInviteClientTransaction:v.NonInviteClientTransaction,NonInviteServerTransaction:v.NonInviteServerTransaction};t.Transactions=m;var S=r(94);t.makeUserAgentCoreConfigurationFromUA=S.makeUserAgentCoreConfigurationFromUA,t.UA=S.UA;var T=r(83);t.Utils=T.Utils;var y=i.__importStar(r(111));t.Web=y;var E=o.C.version;t.version=E;t.name=\"sip.js\";var b=i.__importStar(r(2));t.Core=b},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}));\n/*! *****************************************************************************\nCopyright (c) Microsoft Corporation. All rights reserved.\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at http://www.apache.org/licenses/LICENSE-2.0\n\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\nMERCHANTABLITY OR NON-INFRINGEMENT.\n\nSee the Apache Version 2.0 License for specific language governing permissions\nand limitations under the License.\n***************************************************************************** */\nvar 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])},i(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=o.trys,(n=n.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(1);i.__exportStar(r(3),t),i.__exportStar(r(32),t),i.__exportStar(r(61),t),i.__exportStar(r(5),t),i.__exportStar(r(25),t),i.__exportStar(r(57),t),i.__exportStar(r(28),t),i.__exportStar(r(65),t),i.__exportStar(r(67),t),i.__exportStar(r(27),t)},function(e,t,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var i=r(1);i.__exportStar(r(4),t),i.__exportStar(r(24),t),i.__exportStar(r(56),t)},function(e,t,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var i=r(5),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:undefined,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:undefined,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(1);i.__exportStar(r(6),t),i.__exportStar(r(8),t),i.__exportStar(r(19),t),i.__exportStar(r(11),t),i.__exportStar(r(10),t),i.__exportStar(r(9),t),i.__exportStar(r(17),t),i.__exportStar(r(13),t),i.__exportStar(r(18),t),i.__exportStar(r(22),t),i.__exportStar(r(14),t),i.__exportStar(r(23),t),i.__exportStar(r(15),t)},function(e,t,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),r(1).__exportStar(r(7),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(9),n=r(17),s=r(18);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(1),n=function(e){function t(){return e.call(this)||this}return i.__extends(t,e),t}(r(10).IncomingMessage);t.IncomingRequestMessage=n},function(e,t,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var i=r(11),n=r(16),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(1).__importStar(r(12));!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(1),n=r(13),s=r(15),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([[\"\u000e\",\"\"]],!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('%$;).• &2F\"\"6F7G.‰ &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/ž#0›*;).• &2F\"\"6F7G.‰ &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('%$;).‰ &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/’#0*;).‰ &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.ã &2V\"\"6V7W.× &2f\"\"6f7g.Ë &2h\"\"6h7i.¿ &2:\"\"6:7;.³ &2D\"\"6D7E.§ &22\"\"6273.› &28\"\"6879. &2j\"\"6j7k.ƒ &;&.} &24\"\"6475.q &2l\"\"6l7m.e &2n\"\"6n7o.Y &26\"\"6677.M &2>\"\"6>7?.A &2p\"\"6p7q.5 &2r\"\"6r7s.) &;\\'.# &;('),R('%$;).ī &2F\"\"6F7G.ğ &2J\"\"6J7K.ē &2L\"\"6L7M.ć &2X\"\"6X7Y.û &2P\"\"6P7Q.ï &2H\"\"6H7I.ã &2@\"\"6@7A.× &2d\"\"6d7e.Ë &2R\"\"6R7S.¿ &2N\"\"6N7O.³ &2T\"\"6T7U.§ &2V\"\"6V7W.› &2f\"\"6f7g. &2h\"\"6h7i.ƒ &28\"\"6879.w &2j\"\"6j7k.k &;&.e &24\"\"6475.Y &2l\"\"6l7m.M &2n\"\"6n7o.A &26\"\"6677.5 &2p\"\"6p7q.) &2r\"\"6r7s/Ĵ#0ı*;).ī &2F\"\"6F7G.ğ &2J\"\"6J7K.ē &2L\"\"6L7M.ć &2X\"\"6X7Y.û &2P\"\"6P7Q.ï &2H\"\"6H7I.ã &2@\"\"6@7A.× &2d\"\"6d7e.Ë &2R\"\"6R7S.¿ &2N\"\"6N7O.³ &2T\"\"6T7U.§ &2V\"\"6V7W.› &2f\"\"6f7g. &2h\"\"6h7i.ƒ &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\"\"5!7€.A &4\"\"5!7‚.5 &4ƒ\"\"5!7„.) &;3.# &;.'),R(\"%%;//Q#;&/H$$;J.# &;K0)*;J.# &;K&/,$;&/#$+$)($'#(#'#(\\\"'#&'#/\\\"!&,)\"),R(\"%;//]#;&/T$%$;J.# &;K0)*;J.# &;K&/\\\"!&,)/1$;&/($8$:…$!!)($'#(#'#(\\\"'#&'#\"),R(';..G &2L\"\"6L7M.; &4†\"\"5!7‡./ &4ƒ\"\"5!7„.# &;3'),R('%2j\"\"6j7k/J#4ˆ\"\"5!7‰.5 &4Š\"\"5!7‹.) &4Œ\"\"5!7/#$+\")(\"\\'#&\\'#'),R(\"%;N/M#28\\\"\\\"6879/>$;O.\\\" &\\\"/0$;S/'$8$:Ž$ )($'#(#'#(\\\"'#&'#\"),R(\"%;N/d#28\\\"\\\"6879/U$;O.\\\" &\\\"/G$;S/>$;_/5$;l.\\\" &\\\"/'$8&:& )(&'#(%'#($'#(#'#(\\\"'#&'#\"),R('%3\"\"5$7‘.) &3’\"\"5#7“/\\' 8!:”!! )'),R('%;P/]#%28\"\"6879/,#;R/#$+\")(\"\\'#&\\'#.\" &\"/6$2:\"\"6:7;/\\'$8#:•# )(#\\'#(\"\\'#&\\'#'),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!:–! )'),R('%;T/J#%28\"\"6879/,#;^/#$+\")(\"\\'#&\\'#.\" &\"/#$+\")(\"\\'#&\\'#'),R(\"%;U.) &;\\\\.# &;X/& 8!:—! )\"),R('%$%;V/2#2J\"\"6J7K/#$+\")(\"\\'#&\\'#0<*%;V/2#2J\"\"6J7K/#$+\")(\"\\'#&\\'#&/D#;W/;$2J\"\"6J7K.\" &\"/\\'$8#:˜# )(#\\'#(\"\\'#&\\'#'),R('$4™\"\"5!7š/,#0)*4™\"\"5!7š&&&#'),R('%4$\"\"5!7%/?#$4›\"\"5!7œ0)*4›\"\"5!7œ&/#$+\")(\"\\'#&\\'#'),R('%2l\"\"6l7m/?#;Y/6$2n\"\"6n7o/\\'$8#:# )(#\\'#(\"\\'#&\\'#'),R('%%;Z/³#28\"\"6879/¤$;Z/›$28\"\"6879/Œ$;Z/ƒ$28\"\"6879/t$;Z/k$28\"\"6879/\\\\$;Z/S$28\"\"6879/D$;Z/;$28\"\"6879/,$;[/#$+-)(-\\'#(,\\'#(+\\'#(*\\'#()\\'#((\\'#(\\'\\'#(&\\'#(%\\'#($\\'#(#\\'#(\"\\'#&\\'#.ސ &%2ž\"\"6ž7Ÿ/¤#;Z/›$28\"\"6879/Œ$;Z/ƒ$28\"\"6879/t$;Z/k$28\"\"6879/\\\\$;Z/S$28\"\"6879/D$;Z/;$28\"\"6879/,$;[/#$+,)(,\\'#(+\\'#(*\\'#()\\'#((\\'#(\\'\\'#(&\\'#(%\\'#($\\'#(#\\'#(\"\\'#&\\'#.۹ &%2ž\"\"6ž7Ÿ/Œ#;Z/ƒ$28\"\"6879/t$;Z/k$28\"\"6879/\\\\$;Z/S$28\"\"6879/D$;Z/;$28\"\"6879/,$;[/#$+*)(*\\'#()\\'#((\\'#(\\'\\'#(&\\'#(%\\'#($\\'#(#\\'#(\"\\'#&\\'#.ٺ &%2ž\"\"6ž7Ÿ/t#;Z/k$28\"\"6879/\\\\$;Z/S$28\"\"6879/D$;Z/;$28\"\"6879/,$;[/#$+()((\\'#(\\'\\'#(&\\'#(%\\'#($\\'#(#\\'#(\"\\'#&\\'#.ؓ &%2ž\"\"6ž7Ÿ/\\\\#;Z/S$28\"\"6879/D$;Z/;$28\"\"6879/,$;[/#$+&)(&\\'#(%\\'#($\\'#(#\\'#(\"\\'#&\\'#.ׄ &%2ž\"\"6ž7Ÿ/D#;Z/;$28\"\"6879/,$;[/#$+$)($\\'#(#\\'#(\"\\'#&\\'#.֍ &%2ž\"\"6ž7Ÿ/,#;[/#$+\")(\"\\'#&\\'#.ծ &%2ž\"\"6ž7Ÿ/,#;Z/#$+\")(\"\\'#&\\'#.Տ &%;Z/›#2ž\"\"6ž7Ÿ/Œ$;Z/ƒ$28\"\"6879/t$;Z/k$28\"\"6879/\\\\$;Z/S$28\"\"6879/D$;Z/;$28\"\"6879/,$;[/#$++)(+\\'#(*\\'#()\\'#((\\'#(\\'\\'#(&\\'#(%\\'#($\\'#(#\\'#(\"\\'#&\\'#.Ӈ &%;Z/ª#%28\"\"6879/,#;Z/#$+\")(\"\\'#&\\'#.\" &\"/ƒ$2ž\"\"6ž7Ÿ/t$;Z/k$28\"\"6879/\\\\$;Z/S$28\"\"6879/D$;Z/;$28\"\"6879/,$;[/#$+*)(*\\'#()\\'#((\\'#(\\'\\'#(&\\'#(%\\'#($\\'#(#\\'#(\"\\'#&\\'#.а &%;Z/¹#%28\"\"6879/,#;Z/#$+\")(\"\\'#&\\'#.\" &\"/’$%28\"\"6879/,#;Z/#$+\")(\"\\'#&\\'#.\" &\"/k$2ž\"\"6ž7Ÿ/\\\\$;Z/S$28\"\"6879/D$;Z/;$28\"\"6879/,$;[/#$+))()\\'#((\\'#(\\'\\'#(&\\'#(%\\'#($\\'#(#\\'#(\"\\'#&\\'#.Ί &%;Z/È#%28\"\"6879/,#;Z/#$+\")(\"\\'#&\\'#.\" &\"/¡$%28\"\"6879/,#;Z/#$+\")(\"\\'#&\\'#.\" &\"/z$%28\"\"6879/,#;Z/#$+\")(\"\\'#&\\'#.\" &\"/S$2ž\"\"6ž7Ÿ/D$;Z/;$28\"\"6879/,$;[/#$+()((\\'#(\\'\\'#(&\\'#(%\\'#($\\'#(#\\'#(\"\\'#&\\'#.˕ &%;Z/×#%28\"\"6879/,#;Z/#$+\")(\"\\'#&\\'#.\" &\"/°$%28\"\"6879/,#;Z/#$+\")(\"\\'#&\\'#.\" &\"/‰$%28\"\"6879/,#;Z/#$+\")(\"\\'#&\\'#.\" &\"/b$%28\"\"6879/,#;Z/#$+\")(\"\\'#&\\'#.\" &\"/;$2ž\"\"6ž7Ÿ/,$;[/#$+\\')(\\'\\'#(&\\'#(%\\'#($\\'#(#\\'#(\"\\'#&\\'#.ȑ &%;Z/þ#%28\"\"6879/,#;Z/#$+\")(\"\\'#&\\'#.\" &\"/×$%28\"\"6879/,#;Z/#$+\")(\"\\'#&\\'#.\" &\"/°$%28\"\"6879/,#;Z/#$+\")(\"\\'#&\\'#.\" &\"/‰$%28\"\"6879/,#;Z/#$+\")(\"\\'#&\\'#.\" &\"/b$%28\"\"6879/,#;Z/#$+\")(\"\\'#&\\'#.\" &\"/;$2ž\"\"6ž7Ÿ/,$;Z/#$+()((\\'#(\\'\\'#(&\\'#(%\\'#($\\'#(#\\'#(\"\\'#&\\'#.Ħ &%;Z/Ĝ#%28\"\"6879/,#;Z/#$+\")(\"\\'#&\\'#.\" &\"/õ$%28\"\"6879/,#;Z/#$+\")(\"\\'#&\\'#.\" &\"/Î$%28\"\"6879/,#;Z/#$+\")(\"\\'#&\\'#.\" &\"/§$%28\"\"6879/,#;Z/#$+\")(\"\\'#&\\'#.\" &\"/€$%28\"\"6879/,#;Z/#$+\")(\"\\'#&\\'#.\" &\"/Y$%28\"\"6879/,#;Z/#$+\")(\"\\'#&\\'#.\" &\"/2$2ž\"\"6ž7Ÿ/#$+()((\\'#(\\'\\'#(&\\'#(%\\'#($\\'#(#\\'#(\"\\'#&\\'#/& 8!: ! )'),R('%;#/M#;#.\" &\"/?$;#.\" &\"/1$;#.\" &\"/#$+$)($\\'#(#\\'#(\"\\'#&\\'#'),R(\"%;Z/;#28\\\"\\\"6879/,$;Z/#$+#)(#'#(\\\"'#&'#.# &;\\\\\"),R(\"%;]/o#2J\\\"\\\"6J7K/`$;]/W$2J\\\"\\\"6J7K/H$;]/?$2J\\\"\\\"6J7K/0$;]/'$8':¡' )(''#(&'#(%'#($'#(#'#(\\\"'#&'#\"),R('%2¢\"\"6¢7£/2#4¤\"\"5!7¥/#$+\")(\"\\'#&\\'#.˜ &%2¦\"\"6¦7§/;#4¨\"\"5!7©/,$;!/#$+#)(#\\'#(\"\\'#&\\'#.j &%2ª\"\"6ª7«/5#;!/,$;!/#$+#)(#\\'#(\"\\'#&\\'#.B &%4¬\"\"5!7­/,#;!/#$+\")(\"\\'#&\\'#.# &;!'),R('%%;!.\" &\"/[#;!.\" &\"/M$;!.\" &\"/?$;!.\" &\"/1$;!.\" &\"/#$+%)(%\\'#($\\'#(#\\'#(\"\\'#&\\'#/\\' 8!:®!! )'),R('$%22\"\"6273/,#;`/#$+\")(\"\\'#&\\'#0<*%22\"\"6273/,#;`/#$+\")(\"\\'#&\\'#&'),R(\";a.A &;b.; &;c.5 &;d./ &;e.) &;f.# &;g\"),R('%3¯\"\"5*7°/a#3±\"\"5#7².G &3³\"\"5#7´.; &3µ\"\"5$7¶./ &3·\"\"5#7¸.# &;6/($8\":¹\"! )(\"\\'#&\\'#'),R('%3º\"\"5%7»/I#3¼\"\"5%7½./ &3¾\"\"5\"7¿.# &;6/($8\":À\"! )(\"\\'#&\\'#'),R('%3Á\"\"5\\'7Â/1#;/($8\":Ã\"! )(\"\\'#&\\'#'),R('%3Ä\"\"5$7Å/1#;ð/($8\":Æ\"! )(\"\\'#&\\'#'),R('%3Ç\"\"5&7È/1#;T/($8\":É\"! )(\"\\'#&\\'#'),R('%3Ê\"\"5\"7Ë/N#%2>\"\"6>7?/,#;6/#$+\")(\"\\'#&\\'#.\" &\"/\\'$8\":Ì\" )(\"\\'#&\\'#'),R('%;h/P#%2>\"\"6>7?/,#;i/#$+\")(\"\\'#&\\'#.\" &\"/)$8\":Í\"\"! )(\"\\'#&\\'#'),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#:Î#\"\" )(#\\'#(\"\\'#&\\'#'),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(\";‘.# &;r\"),R(\"%;/G#;'/>$;s/5$;'/,$;„/#$+%)(%'#($'#(#'#(\\\"'#&'#\"),R(\";M.# &;t\"),R(\"%;/E#28\\\"\\\"6879/6$;u.# &;x/'$8#:Ï# )(#'#(\\\"'#&'#\"),R('%;v.# &;w/J#%26\"\"6677/,#;ƒ/#$+\")(\"\\'#&\\'#.\" &\"/#$+\")(\"\\'#&\\'#'),R('%2Ð\"\"6Ð7Ñ/:#;€/1$;w.\" &\"/#$+#)(#\\'#(\"\\'#&\\'#'),R('%24\"\"6475/,#;{/#$+\")(\"\\'#&\\'#'),R(\"%;z/3#$;y0#*;y&/#$+\\\")(\\\"'#&'#\"),R(\";*.) &;+.# &;-\"),R(';+. &;-.‰ &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('%%;\"/‡#$;\".G &;!.A &2@\"\"6@7A.5 &2F\"\"6F7G.) &2J\"\"6J7K0M*;\".G &;!.A &2@\"\"6@7A.5 &2F\"\"6F7G.) &2J\"\"6J7K&/#$+\")(\"\\'#&\\'#/& 8!:Ò! )'),R(\";.# &;‚\"),R('%%;O/2#2:\"\"6:7;/#$+\")(\"\\'#&\\'#.\" &\"/,#;S/#$+\")(\"\\'#&\\'#.\" &\"'),R('$;+.ƒ &;-.} &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/Œ#0‰*;+.ƒ &;-.} &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’\"\"5#7Ó/q#24\"\"6475/b$$;!/�#*;!&&&#/L$2J\"\"6J7K/=$$;!/�#*;!&&&#/\\'$8%:Ô% )(%\\'#($\\'#(#\\'#(\"\\'#&\\'#'),R('2Õ\"\"6Õ7Ö'),R('2×\"\"6×7Ø'),R('2Ù\"\"6Ù7Ú'),R('2Û\"\"6Û7Ü'),R('2Ý\"\"6Ý7Þ'),R('2ß\"\"6ß7à'),R('2á\"\"6á7â'),R('2ã\"\"6ã7ä'),R('2å\"\"6å7æ'),R('2ç\"\"6ç7è'),R('2é\"\"6é7ê'),R(\"%;….Y &;†.S &;ˆ.M &;‰.G &;Š.A &;‹.; &;Œ.5 &;./ &;.) &;Ž.# &;6/& 8!:ë! )\"),R(\"%;„/G#;'/>$;’/5$;'/,$;”/#$+%)(%'#($'#(#'#(\\\"'#&'#\"),R(\"%;“/' 8!:ì!! )\"),R(\"%;!/5#;!/,$;!/#$+#)(#'#(\\\"'#&'#\"),R(\"%$;*.A &;+.; &;-.5 &;3./ &;4.) &;'.# &;(0G*;*.A &;+.; &;-.5 &;3./ &;4.) &;'.# &;(&/& 8!:í! )\"),R(\"%;¶/Y#$%;A/,#;¶/#$+\\\")(\\\"'#&'#06*%;A/,#;¶/#$+\\\")(\\\"'#&'#&/#$+\\\")(\\\"'#&'#\"),R('%;9/N#%2:\"\"6:7;/,#;9/#$+\")(\"\\'#&\\'#.\" &\"/\\'$8\":î\" )(\"\\'#&\\'#'),R(\"%;:.c &%;˜/Y#$%;A/,#;˜/#$+\\\")(\\\"'#&'#06*%;A/,#;˜/#$+\\\")(\\\"'#&'#&/#$+\\\")(\\\"'#&'#/& 8!:ï! )\"),R(\"%;L.# &;™/]#$%;B/,#;›/#$+\\\")(\\\"'#&'#06*%;B/,#;›/#$+\\\")(\\\"'#&'#&/'$8\\\":ð\\\" )(\\\"'#&'#\"),R(\"%;š.\\\" &\\\"/>#;@/5$;M/,$;?/#$+$)($'#(#'#(\\\"'#&'#\"),R(\"%%;6/Y#$%;./,#;6/#$+\\\")(\\\"'#&'#06*%;./,#;6/#$+\\\")(\\\"'#&'#&/#$+\\\")(\\\"'#&'#.# &;H/' 8!:ñ!! )\"),R(\";œ.) &;.# &; \"),R(\"%3ò\\\"\\\"5!7ó/:#;$;Ï/5$;./,$;/#$+%)(%'#($'#(#'#(\\\"'#&'#\"),R(\"%$;!/�#*;!&&&#/' 8!:ŋ!! )\"),R(\"%;Ñ/]#$%;A/,#;Ñ/#$+\\\")(\\\"'#&'#06*%;A/,#;Ñ/#$+\\\")(\\\"'#&'#&/'$8\\\":Ō\\\" )(\\\"'#&'#\"),R(\"%;™/]#$%;B/,#; /#$+\\\")(\\\"'#&'#06*%;B/,#; /#$+\\\")(\\\"'#&'#&/'$8\\\":ō\\\" )(\\\"'#&'#\"),R('%;L.O &;™.I &%;@.\" &\"/:#;t/1$;?.\" &\"/#$+#)(#\\'#(\"\\'#&\\'#/]#$%;B/,#; /#$+\")(\"\\'#&\\'#06*%;B/,#; /#$+\")(\"\\'#&\\'#&/\\'$8\":Ŏ\" )(\"\\'#&\\'#'),R(\"%;Ô/]#$%;B/,#;Õ/#$+\\\")(\\\"'#&'#06*%;B/,#;Õ/#$+\\\")(\\\"'#&'#&/'$8\\\":ŏ\\\" )(\\\"'#&'#\"),R(\"%;–/& 8!:Ő! )\"),R('%3ő\"\"5(7Œ/:#;$;6/5$;;/,$;ì/#$+%)(%'#($'#(#'#(\\\"'#&'#\"),R('%3’\"\"5#7Ó.# &;6/\\' 8!:Ƌ!! )'),R('%3±\"\"5#7ƌ.G &3³\"\"5#7ƍ.; &3·\"\"5#7Ǝ./ &3µ\"\"5$7Ə.# &;6/\\' 8!:Ɛ!! )'),R('%;î/D#%;C/,#;ï/#$+\")(\"\\'#&\\'#.\" &\"/#$+\")(\"\\'#&\\'#'),R(\"%;U.) &;\\\\.# &;X/& 8!:Ƒ! )\"),R('%%;!.\" &\"/[#;!.\" &\"/M$;!.\" &\"/?$;!.\" &\"/1$;!.\" &\"/#$+%)(%\\'#($\\'#(#\\'#(\"\\'#&\\'#/\\' 8!:ƒ!! )'),R('%%;!/?#;!.\" &\"/1$;!.\" &\"/#$+#)(#\\'#(\"\\'#&\\'#/\\' 8!:Ɠ!! )'),R(\";¾\"),R('%;ž/^#$%;B/,#;ó/#$+\")(\"\\'#&\\'#06*%;B/,#;ó/#$+\")(\"\\'#&\\'#&/($8\":Ɣ\"!!)(\"\\'#&\\'#'),R(\";ô.# &; \"),R('%2ƕ\"\"6ƕ7Ɩ/L#;\"\"6>7?'),R('%;Ā/b#28\"\"6879/S$;û/J$%2ƣ\"\"6ƣ7Ƥ/,#;ì/#$+\")(\"\\'#&\\'#.\" &\"/#$+$)($\\'#(#\\'#(\"\\'#&\\'#'),R('%3ƥ\"\"5%7Ʀ.) &3Ƨ\"\"5$7ƨ/\\' 8!:ơ!! )'),R('%3±\"\"5#7².6 &3³\"\"5#7´.* &$;+0#*;+&/\\' 8!:Ʃ!! )'),R(\"%;Ą/‡#2F\\\"\\\"6F7G/x$;ă/o$2F\\\"\\\"6F7G/`$;ă/W$2F\\\"\\\"6F7G/H$;ă/?$2F\\\"\\\"6F7G/0$;ą/'$8):ƪ) )()'#(('#(''#(&'#(%'#($'#(#'#(\\\"'#&'#\"),R(\"%;#/>#;#/5$;#/,$;#/#$+$)($'#(#'#(\\\"'#&'#\"),R(\"%;ă/,#;ă/#$+\\\")(\\\"'#&'#\"),R(\"%;ă/5#;ă/,$;ă/#$+#)(#'#(\\\"'#&'#\"),R(\"%;q/T#$;m0#*;m&/D$%; /,#;ø/#$+\\\")(\\\"'#&'#.\\\" &\\\"/#$+#)(#'#(\\\"'#&'#\"),R('%2ƫ\"\"6ƫ7Ƭ.) &2ƭ\"\"6ƭ7Ʈ/w#;0/n$;Ĉ/e$$%;B/2#;ĉ.# &; /#$+\")(\"\\'#&\\'#0<*%;B/2#;ĉ.# &; /#$+\")(\"\\'#&\\'#&/#$+$)($\\'#(#\\'#(\"\\'#&\\'#'),R(\";™.# &;L\"),R(\"%2Ư\\\"\\\"6Ư7ư/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\",this.parameters)this.parameters.hasOwnProperty(t)&&(e+=\";\"+t,null!==this.parameters[t]&&(e+=\"=\"+this.parameters[t]));return e},t}(r(14).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(1),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;s-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(21),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,r){e=this.words=e||[],this.sigBytes=r!=t?r: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){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(11),n=r(9),s=r(17);!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(1),n=r(5),s=r(25),o=r(27),a=r(28),c=r(42),u=r(44),d=r(46),p=r(47),l=r(48),h=r(49),g=r(50),f=r(51),v=r(52),m=r(53),S=r(54),T=r(55),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(4).Dialog);t.SessionDialog=y},function(e,t,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),r(1).__exportStar(r(26),t)},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=500,n=5e3;t.Timers={T1:i,T2:4e3,T4:n,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\";Object.defineProperty(t,\"__esModule\",{value:!0});var i=r(1);i.__exportStar(r(29),t),i.__exportStar(r(36),t),i.__exportStar(r(38),t),i.__exportStar(r(40),t),i.__exportStar(r(41),t),i.__exportStar(r(36),t),i.__exportStar(r(39),t),i.__exportStar(r(37),t),i.__exportStar(r(30),t)},function(e,t,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var i=r(1),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(30).Transaction);t.ClientTransaction=n},function(e,t,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var i=r(1),n=r(31),s=r(32),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\";var i,n=\"object\"==typeof Reflect?Reflect:null,s=n&&\"function\"==typeof n.apply?n.apply:function(e,t,r){return Function.prototype.apply.call(e,t,r)};i=n&&\"function\"==typeof n.ownKeys?n.ownKeys:Object.getOwnPropertySymbols?function(e){return Object.getOwnPropertyNames(e).concat(Object.getOwnPropertySymbols(e))}:function(e){return Object.getOwnPropertyNames(e)};var o=Number.isNaN||function(e){return e!=e};function a(){a.init.call(this)}e.exports=a,a.EventEmitter=a,a.prototype._events=void 0,a.prototype._eventsCount=0,a.prototype._maxListeners=void 0;var c=10;function u(e){return void 0===e._maxListeners?a.defaultMaxListeners:e._maxListeners}function d(e,t,r,i){var n,s,o,a;if(\"function\"!=typeof r)throw new TypeError('The \"listener\" argument must be of type Function. Received type '+typeof r);if(void 0===(s=e._events)?(s=e._events=Object.create(null),e._eventsCount=0):(void 0!==s.newListener&&(e.emit(\"newListener\",t,r.listener?r.listener:r),s=e._events),o=s[t]),void 0===o)o=s[t]=r,++e._eventsCount;else if(\"function\"==typeof o?o=s[t]=i?[r,o]:[o,r]:i?o.unshift(r):o.push(r),(n=u(e))>0&&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});var i=r(1);i.__exportStar(r(33),t),i.__exportStar(r(34),t),i.__exportStar(r(35),t)},function(e,t,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var i=r(1),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(1),n=function(e){function t(t){return e.call(this,t||\"Transaction state error.\")||this}return i.__extends(t,e),t}(r(33).Exception);t.TransactionStateError=n},function(e,t,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var i=r(1),n=function(e){function t(t){return e.call(this,t||\"Unspecified transport error.\")||this}return i.__extends(t,e),t}(r(33).Exception);t.TransportError=n},function(e,t,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var i=r(1),n=r(27),s=r(29),o=r(37),a=function(e){function t(t,r,i){var s=e.call(this,t,r,i,o.TransactionState.Calling,\"sip.transaction.ict\")||this;return s.ackRetransmissionCache=new Map,s.B=setTimeout((function(){return s.timer_B()}),n.Timers.TIMER_B),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.B&&(clearTimeout(this.B),this.B=void 0),this.D&&(clearTimeout(this.D),this.D=void 0),this.M&&(clearTimeout(this.M),this.M=void 0),e.prototype.dispose.call(this)},Object.defineProperty(t.prototype,\"kind\",{get:function(){return\"ict\"},enumerable:!0,configurable:!0}),t.prototype.ackResponse=function(e){var t=this,r=e.toTag;if(!r)throw new Error(\"To tag undefined.\");var i=\"z9hG4bK\"+Math.floor(1e7*Math.random());e.setViaHeader(i,this.transport.protocol),this.ackRetransmissionCache.set(r,e),this.send(e.toString()).catch((function(e){t.logTransportError(e,\"Failed to send ACK to 2xx response.\")}))},t.prototype.receiveResponse=function(e){var t=this,r=e.statusCode;if(!r||r<100||r>699)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}),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(1),n=r(5),s=r(27),o=r(39),a=r(37),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(1),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(30).Transaction);t.ServerTransaction=n},function(e,t,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var i=r(1),n=r(27),s=r(29),o=r(37),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(1),n=r(27),s=r(39),o=r(37),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});var i=r(1),n=r(5),s=r(28),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(43).UserAgentClient);t.ByeUserAgentClient=o},function(e,t,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var i=r(5),n=r(28),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(1),n=r(28),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(45).UserAgentServer);t.ByeUserAgentServer=s},function(e,t,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var i=r(32),n=r(5),s=r(16),o=r(28),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=r(1),n=r(5),s=r(28),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(43).UserAgentClient);t.InfoUserAgentClient=o},function(e,t,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var i=r(1),n=r(28),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(45).UserAgentServer);t.InfoUserAgentServer=s},function(e,t,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var i=r(1),n=r(5),s=r(28),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(43).UserAgentClient);t.NotifyUserAgentClient=o},function(e,t,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var i=r(1),n=r(28),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(45).UserAgentServer);t.NotifyUserAgentServer=s},function(e,t,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var i=r(1),n=r(5),s=r(28),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(43).UserAgentClient);t.PrackUserAgentClient=o},function(e,t,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var i=r(1),n=r(28),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(45).UserAgentServer);t.PrackUserAgentServer=s},function(e,t,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var i=r(1),n=r(5),s=r(28),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(43).UserAgentClient);t.ReInviteUserAgentClient=o},function(e,t,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var i=r(1),n=r(28),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(45).UserAgentServer);t.ReInviteUserAgentServer=s},function(e,t,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var i=r(1),n=r(5),s=r(28),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(43).UserAgentClient);t.ReferUserAgentClient=o},function(e,t,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var i=r(1),n=r(28),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(45).UserAgentServer);t.ReferUserAgentServer=s},function(e,t,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var i=r(1),n=r(5),s=r(57),o=r(27),a=r(59),c=r(49),u=r(60),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:undefined,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))if(e.prototype.receiveRequest.call(this,t),t.method===n.C.NOTIFY)this.onNotify(t);else 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(4).Dialog);t.SubscriptionDialog=d},function(e,t,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),r(1).__exportStar(r(58),t)},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(5);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});var i=r(1),n=r(5),s=r(28),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(43).UserAgentClient);t.ReSubscribeUserAgentClient=o},function(e,t,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var i=r(1);i.__exportStar(r(62),t),i.__exportStar(r(63),t),i.__exportStar(r(64),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(62),n=r(64),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(careAppSettings.careService){var s=careAppSettings.careService,o=\"careSipJS: Category: \"+t+(r?\", Label: \"+r:\"\")+\", \"+n;switch(e){case\"debug\":s.logDebug(o);break;case\"error\":s.logError(o);break;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});var i=r(62),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}),r(1).__exportStar(r(66),t)},function(e,t,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var i=r(1),n=r(5),s=r(28),o=r(67),a=r(59),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(1);i.__exportStar(r(42),t),i.__exportStar(r(44),t),i.__exportStar(r(68),t),i.__exportStar(r(46),t),i.__exportStar(r(47),t),i.__exportStar(r(69),t),i.__exportStar(r(70),t),i.__exportStar(r(71),t),i.__exportStar(r(72),t),i.__exportStar(r(48),t),i.__exportStar(r(49),t),i.__exportStar(r(73),t),i.__exportStar(r(50),t),i.__exportStar(r(51),t),i.__exportStar(r(52),t),i.__exportStar(r(53),t),i.__exportStar(r(60),t),i.__exportStar(r(74),t),i.__exportStar(r(54),t),i.__exportStar(r(55),t),i.__exportStar(r(75),t),i.__exportStar(r(76),t),i.__exportStar(r(77),t),i.__exportStar(r(78),t),i.__exportStar(r(43),t),i.__exportStar(r(45),t)},function(e,t,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var i=r(1),n=r(28),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(43).UserAgentClient);t.CancelUserAgentClient=s},function(e,t,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var i=r(1),n=r(3),s=r(25),o=r(28),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(43).UserAgentClient);t.InviteUserAgentClient=a},function(e,t,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var i=r(1),n=r(3),s=r(32),o=r(25),a=r(28),c=r(59),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(45).UserAgentServer);t.InviteUserAgentServer=u},function(e,t,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var i=r(1),n=r(28),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(43).UserAgentClient);t.MessageUserAgentClient=s},function(e,t,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var i=r(1),n=r(28),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(45).UserAgentServer);t.MessageUserAgentServer=s},function(e,t,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var i=r(1),n=r(28),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(43).UserAgentClient);t.PublishUserAgentClient=s},function(e,t,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var i=r(1),n=r(28),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(45).UserAgentServer);t.ReSubscribeUserAgentServer=s},function(e,t,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var i=r(1),n=r(28),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(43).UserAgentClient);t.RegisterUserAgentClient=s},function(e,t,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var i=r(1),n=r(28),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(45).UserAgentServer);t.RegisterUserAgentServer=s},function(e,t,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var i=r(1),n=r(56),s=r(57),o=r(27),a=r(28),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(43).UserAgentClient);t.SubscribeUserAgentClient=c},function(e,t,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var i=r(1),n=r(28),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(45).UserAgentServer);t.SubscribeUserAgentServer=s},function(e,t,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var i=r(1),n=r(31),s=r(80),o=r(2),a=r(82),c=r(83),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(81);!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}),t.LIBRARY_VERSION=\"0.15.10\"},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(80),n=r(11),s=r(15);!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(1),n=r(2),s=r(82);!function(e){var t=function(e){function t(){return e.call(this,\"The session description handler has closed.\")||this}return i.__extends(t,e),t}(n.Exception);e.ClosedSessionDescriptionHandlerError=t;var r=function(e){function t(){return e.call(this,\"The session has terminated.\")||this}return i.__extends(t,e),t}(n.Exception);e.TerminatedSessionError=r;var s=function(e){function t(t){return e.call(this,t||\"Unsupported session description content type.\")||this}return i.__extends(t,e),t}(n.Exception);e.UnsupportedSessionDescriptionContentTypeError=s}(t.Exceptions||(t.Exceptions={}));var o=function(e){function t(t,r,i){var n=e.call(this,i)||this;return n.code=t,n.name=r,n.message=i,n}return i.__extends(t,e),t}(n.Exception);!function(e){var t=function(e){function t(t,r){var i=e.call(this,1,\"CONFIGURATION_ERROR\",r?\"Invalid value \"+JSON.stringify(r)+\" for parameter '\"+t+\"'\":\"Missing parameter: \"+t)||this;return i.type=s.TypeStrings.ConfigurationError,i.parameter=t,i.value=r,i}return i.__extends(t,e),t}(o);e.ConfigurationError=t;var r=function(e){function t(t){var r=e.call(this,2,\"INVALID_STATE_ERROR\",\"Invalid status: \"+t)||this;return r.type=s.TypeStrings.InvalidStateError,r.status=t,r}return i.__extends(t,e),t}(o);e.InvalidStateError=r;var n=function(e){function t(t){var r=e.call(this,3,\"NOT_SUPPORTED_ERROR\",t)||this;return r.type=s.TypeStrings.NotSupportedError,r}return i.__extends(t,e),t}(o);e.NotSupportedError=n;var a=function(e){function t(t){var r=e.call(this,5,\"RENEGOTIATION_ERROR\",t)||this;return r.type=s.TypeStrings.RenegotiationError,r}return i.__extends(t,e),t}(o);e.RenegotiationError=a;var c=function(e){function t(t,r,i){var n=e.call(this,6,\"METHOD_PARAMETER_ERROR\",i?\"Invalid value \"+JSON.stringify(i)+\" for parameter '\"+r+\"'\":\"Missing parameter: \"+r)||this;return n.type=s.TypeStrings.MethodParameterError,n.method=t,n.parameter=r,n.value=i,n}return i.__extends(t,e),t}(o);e.MethodParameterError=c;var u=function(e){function t(t,r,i){var n=e.call(this,8,\"SESSION_DESCRIPTION_HANDLER_ERROR\",i||\"Error with Session Description Handler\")||this;return n.type=s.TypeStrings.SessionDescriptionHandlerError,n.method=t,n.error=r,n}return i.__extends(t,e),t}(o);e.SessionDescriptionHandlerError=u}(t.Exceptions||(t.Exceptions={}))},function(e,t,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var i=r(1),n=r(79),s=r(80),o=r(2),a=r(82),c=r(84),u=r(83),d=function(e){function t(t,r,i,n){void 0===n&&(n={});var o=this;if(n.extraHeaders=(n.extraHeaders||[]).slice(),n.contentType=n.contentType||\"text/plain\",\"number\"!=typeof n.expires||n.expires%1!=0?n.expires=3600:n.expires=Number(n.expires),\"boolean\"!=typeof n.unpublishOnClose&&(n.unpublishOnClose=!0),null==r||\"\"===r)throw new c.Exceptions.MethodParameterError(\"Publish\",\"Target\",r);if(void 0===(r=t.normalizeTarget(r)))throw new c.Exceptions.MethodParameterError(\"Publish\",\"Target\",r);if((o=e.call(this,t,s.C.PUBLISH,r,n)||this).type=a.TypeStrings.PublishContext,o.options=n,o.target=r,null==i||\"\"===i)throw new c.Exceptions.MethodParameterError(\"Publish\",\"Event\",i);return o.event=i,o.logger=t.getLogger(\"sip.publish\"),o.pubRequestExpires=o.options.expires,o}return i.__extends(t,e),t.prototype.publish=function(e){this.publishRefreshTimer&&(clearTimeout(this.publishRefreshTimer),this.publishRefreshTimer=void 0),this.options.body=e,this.pubRequestBody=this.options.body,0===this.pubRequestExpires&&(this.pubRequestExpires=this.options.expires,this.pubRequestEtag=void 0),this.ua.publishers[this.target.toString()+\":\"+this.event]||(this.ua.publishers[this.target.toString()+\":\"+this.event]=this),this.sendPublishRequest()},t.prototype.unpublish=function(){this.publishRefreshTimer&&(clearTimeout(this.publishRefreshTimer),this.publishRefreshTimer=void 0),this.pubRequestBody=void 0,this.pubRequestExpires=0,void 0!==this.pubRequestEtag&&this.sendPublishRequest()},t.prototype.close=function(){this.options.unpublishOnClose?this.unpublish():(this.publishRefreshTimer&&(clearTimeout(this.publishRefreshTimer),this.publishRefreshTimer=void 0),this.pubRequestBody=void 0,this.pubRequestExpires=0,this.pubRequestEtag=void 0),this.ua.publishers[this.target.toString()+\":\"+this.event]&&delete this.ua.publishers[this.target.toString()+\":\"+this.event]},t.prototype.onRequestTimeout=function(){e.prototype.onRequestTimeout.call(this),this.emit(\"unpublished\",void 0,s.C.causes.REQUEST_TIMEOUT)},t.prototype.onTransportError=function(){e.prototype.onTransportError.call(this),this.emit(\"unpublished\",void 0,s.C.causes.CONNECTION_ERROR)},t.prototype.receiveResponse=function(e){var t=this,r=e.statusCode||0,i=u.Utils.getReasonPhrase(r);switch(!0){case/^1[0-9]{2}$/.test(r.toString()):this.emit(\"progress\",e,i);break;case/^2[0-9]{2}$/.test(r.toString()):if(e.hasHeader(\"SIP-ETag\")?this.pubRequestEtag=e.getHeader(\"SIP-ETag\"):this.logger.warn(\"SIP-ETag header missing in a 200-class response to PUBLISH\"),e.hasHeader(\"Expires\")){var n=Number(e.getHeader(\"Expires\"));\"number\"==typeof n&&n>=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(1),n=r(79),s=r(80),o=r(2),a=r(82),c=r(84),u=r(87),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(1),n=r(31),s=r(80),o=r(2),a=r(82),c=r(83),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=r(1),n=r(79),s=r(80),o=r(2),a=r(82),c=r(84),u=r(83);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(\"· \"+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(1),n=r(31),s=r(79),o=r(80),a=r(2),c=r(82),u=r(84),d=r(86),p=r(87),l=r(90),h=r(91),g=r(83),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.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.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;if(t.message.method===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();else 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.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=r(1),n=r(31),s=r(80),o=r(82),a=r(84),c=r(83),u=r(91),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?a0?(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(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(\"· \"+s+\": \"+i[s]);break;case\"password\":this.logger.log(\"· \"+s+\": NOT SHOWN\");break;case\"transportConstructor\":this.logger.log(\"· \"+s+\": \"+i[s].name);break;default:this.logger.log(\"· \"+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||\"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(1),n=r(31),s=r(96),o=r(82),a=r(84),c=r(83),u=i.__importStar(r(108)),d=r(109),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.streams?new Promise(((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=r(31),n=r(2),s=r(16),o=r(59),a=r(97),c=r(98),u=r(104),d=r(105),p=r(106),l=r(107),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: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.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.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}),t._makeEmitter=function(e,t){return void 0===t&&(t=\"event\"),{addListener:function(r,i){void 0===i&&(i={}),i.once?e.once(t,r):e.addListener(t,r)},removeListener:function(r){e.removeListener(t,r)},on:function(r){e.on(t,r)},off:function(r){e.removeListener(t,r)},once:function(r){e.once(t,r)}}}},function(e,t,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var i=r(1);i.__exportStar(r(99),t),i.__exportStar(r(100),t),i.__exportStar(r(101),t),i.__exportStar(r(102),t),i.__exportStar(r(103),t)},function(e,t,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var i=r(1),n=function(e){function t(t){return e.call(this,t||\"Unsupported content type.\")||this}return i.__extends(t,e),t}(r(2).Exception);t.ContentTypeUnsupportedError=n},function(e,t,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var i=r(1),n=function(e){function t(t){return e.call(this,t||\"Request pending.\")||this}return i.__extends(t,e),t}(r(2).Exception);t.RequestPendingError=n},function(e,t,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var i=r(1),n=function(e){function t(t){return e.call(this,t||\"Unspecified session description handler error.\")||this}return i.__extends(t,e),t}(r(2).Exception);t.SessionDescriptionHandlerError=n},function(e,t,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var i=r(1),n=function(e){function t(){return e.call(this,\"The session has terminated.\")||this}return i.__extends(t,e),t}(r(2).Exception);t.SessionTerminatedError=n},function(e,t,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var i=r(1),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(2).Exception);t.StateTransitionError=n},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=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});var i=r(2),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}),function(e){e.Initial=\"Initial\",e.Establishing=\"Establishing\",e.Established=\"Established\",e.Terminating=\"Terminating\",e.Terminated=\"Terminated\"}(t.SessionState||(t.SessionState={}))},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;s0&&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 a.Exceptions.ConfigurationError(i);var n=e[i];if(void 0===(s=r.mandatory[i](n)))throw new a.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 a.Exceptions.ConfigurationError(i,n);t[i]=s}var o={};for(var i in t)t.hasOwnProperty(i)&&(o[i]={value:t[i]});var c=Object.defineProperties({},o);for(var i in this.logger.log(\"configuration parameters after validation:\"),t)t.hasOwnProperty(i)&&this.logger.log(\"· \"+i+\": \"+JSON.stringify(t[i]));return c},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=o.scheme.toUpperCase()}return e},keepAliveInterval:function(e){if(u.Utils.isDecimal(e)){var t=Number(e);if(t>0)return t}},keepAliveDebounce:function(e){if(u.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(u.Utils.isDecimal(e)){var t=Number(e);if(t>0)return t}},maxReconnectionAttempts:function(e){if(u.Utils.isDecimal(e)){var t=Number(e);if(t>=0)return t}},reconnectionTimeout:function(e){if(u.Utils.isDecimal(e)){var t=Number(e);if(t>0)return t}}}}},t.C=i,t}(c.Transport);t.Transport=d},function(e,t,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var i=r(1).__importStar(r(108));t.Modifiers=i;var n=r(112);t.Simple=n.Simple;var s=r(95);t.SessionDescriptionHandler=s.SessionDescriptionHandler;var o=r(110);t.Transport=o.Transport},function(e,t,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var i,n=r(1),s=r(31),o=r(94),a=n.__importStar(r(108));!function(e){e[e.STATUS_NULL=0]=\"STATUS_NULL\",e[e.STATUS_NEW=1]=\"STATUS_NEW\",e[e.STATUS_CONNECTING=2]=\"STATUS_CONNECTING\",e[e.STATUS_CONNECTED=3]=\"STATUS_CONNECTED\",e[e.STATUS_COMPLETED=4]=\"STATUS_COMPLETED\"}(i=t.SimpleStatus||(t.SimpleStatus={}));var c=function(e){function t(t){var r=e.call(this)||this;if(t.media.remote.video?r.video=!0:r.video=!1,t.media.remote.audio?r.audio=!0:r.audio=!1,!r.audio&&!r.video)throw new Error(\"At least one remote audio or video element is required for Simple.\");r.options=t;var n=navigator.userAgent.toLowerCase(),s=!1,c=!1;n.indexOf(\"safari\")>-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=4f2b2e70&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!./App.vue?vue&type=style&index=0&id=9c09ca6c&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!./RoosterEditorBase.vue?vue&type=style&index=1&id=38a79da8&prod&lang=css&\"","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};","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=7ecec61e&prod&scoped=true&lang=css&\"","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 }","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: \"zh-cn\"\r\n },\r\n {\r\n name: \"Hong Kong\",\r\n key: \"yui-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: \"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 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 $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&\"","module.exports = __webpack_public_path__ + \"img/BrokenImage.c2497f9a.svg\";","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=5cf89ae4&prod&scoped=true&lang=css&\"","import { render, staticRenderFns } from \"./filter_booleanColumn.vue?vue&type=template&id=4f2b2e70&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=4f2b2e70&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 \"4f2b2e70\",\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=5ef4b3aa&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=5ef4b3aa&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 \"5ef4b3aa\",\n null\n \n)\n\nexport default component.exports","module.exports = \"data:image/png;base64,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\"","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!./debugDialog.vue?vue&type=style&index=0&id=20697d49&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!./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!./AdvancedReports.vue?vue&type=style&index=0&id=650066cc&prod&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:\"pb-2\",staticStyle:{\"display\":\"flex\",\"flex-direction\":\"row\"}},[(false && _vm.dateRangePickerVisible)?_c('c-Date-Range-Picker',{key:_vm.id,staticClass:\"mb-1\",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\":_vm.applyDateRangeHandler,\"clear-date-range\":_vm.clearDateRangeHandler}}):_vm._e(),(_vm.dateRangePickerVisible)?_c('MyCalendar',{attrs:{\"value\":_vm.defaultTime,\"width\":\"430px\",\"label\":\"Select Date Range\",\"isactive\":true,\"activeicon\":\"mdi-calendar\"},on:{\"change\":_vm.applyDateRangeHandler}}):_vm._e(),_c('v-text-field',{staticClass:\"mb-1 ml-2 mt-4\",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:\"mt-2 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:\"mt-4 mr-5 ml-5\",attrs:{\"indeterminate\":\"\",\"color\":\"primary\",\"size\":20}}):_vm._e(),(_vm.System.DEBUG)?_c('span',{staticClass:\"mt-5 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:\"mt-4 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,4282827805)},[_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:\"mt-2 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:\"mt-2 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:\"mt-2 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,\"btnclass\":{ 'mt-2': true }},on:{\"showcolumnselector\":_vm.showColumnSelector,\"showdatafilters\":_vm.showDataFilters}}):_vm._e()],1):_vm._e(),(!_vm.nocolumns && _vm.controlData.IsDashboard)?_c('div',{staticClass:\"pb-2\",staticStyle:{\"display\":\"flex\",\"flex-direction\":\"column\"}},[(false)?_c('c-Date-Range-Picker',{key:_vm.id,staticClass:\"mb-1\",staticStyle:{\"max-width\":\"390px\"},style:({ visibility: _vm.dateRangePickerVisible ? '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',{staticStyle:{\"display\":\"flex\"}},[_c('div',{staticStyle:{\"margin-top\":\"4px\"}},[_c('MyCalendar',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.dateRangePickerVisible),expression:\"dateRangePickerVisible\"}],key:_vm.id,attrs:{\"myclass\":\"mb-1\",\"value\":_vm.defaultTime,\"width\":\"430px\",\"label\":\"Select Date Range\",\"isactive\":true,\"activeicon\":\"mdi-calendar\"},on:{\"change\":_vm.applyDateRangeHandler}})],1),_c('v-text-field',{staticClass:\"mb-1 ml-2 mt-4\",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:\"mt-2 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({staticClass:\"mt-3\",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,2816376540)},[_vm._v(\" Duration Time Format\"),_c('br'),_vm._v(\" Click to cycle through formats \")]),_c('v-btn',{staticClass:\"mt-2 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:\"mt-2 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:\"mt-2 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\":{ 'mt-2': true, '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-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\":\"lightgrey\"},attrs:{\"small\":\"\"}},'v-icon',attrs,false),on),[_vm._v(\"mdi-information-slab-circle\")])]}}],null,false,2586296198)},[_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\";\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 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 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, customerlist, userlist, chatlist, columnlist] = await Promise.all([\n common.loadSourceTypes(),\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.sourceTypes = helps.toLookup(sourcetypes, 'SourceName', 'DisplayName');\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\":\"lightGrey\"},attrs:{\"small\":\"\"}},[_vm._v(\"mdi-information-slab-circle\")])],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=5cf89ae4&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=5cf89ae4&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 \"5cf89ae4\",\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=db2336c6&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 \"db2336c6\",\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\"},[_vm._v(\" Constrain the source data by the field values you choose. \")]),_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},{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',{staticClass:\"pa-1\",staticStyle:{\"_max-height\":\"520px\",\"min-width\":\"400px\"},on:{\"mouseleave\":function($event){_vm.filter_menuopen = false}}},[_c('MetricTypeFilter',{attrs:{\"debugMode\":_vm.debugMode,\"datatypes\":_vm.filterDataTypes,\"initial_datatypes_selection\":_vm.filterDataTypes_selection,\"categories\":_vm.filterCategories,\"initial_category_selection\":_vm.filterCategory_selection,\"sources\":_vm.filterSources,\"initial_sources_selection\":_vm.filterSources_selection},on:{\"datatypes_changed\":(values) => _vm.filterDataTypes_selection = values,\"categories_changed\":(values) => _vm.filterCategory_selection = values,\"sources_changed\":(values) => _vm.filterSources_selection = values,\"anyfilters\":(value) => _vm.anyFilters = value}})],1)],1)]},proxy:true}],null,false,3100083764),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,\"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,\"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,\"getColumnComponent\":_vm.getColumnComponent,\"getFilterValue\":_vm.getFilterValue,\"updateFilterValue\":_vm.updateFilterValue,\"EventBus\":_vm.EventBus}})],1):_vm._e()],2)],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.columns),function(col,i){return _c('v-expansion-panel',{key:i},[_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\"}},[_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},on:{\"change\":(value) => _vm.localUpdateFilterValue(col, value)}}),(!_vm.ReadOnly)?_c('v-switch',{attrs:{\"dense\":\"\",\"hide-details\":\"\",\"inset\":\"\",\"input-value\":_vm.usages[col.ColId] > 0,\"_true-value\":\"true\",\"_false-value\":\"false\"},on:{\"change\":v => _vm.setColumnFilterUse(col, v ? 1 : 0)},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_vm._v(\" Show filter 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\":\"lightgrey\"},attrs:{\"dense\":\"\"}},'v-icon',attrs,false),on),[_vm._v(\"mdi-information-slab-circle\")])]}}],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.usages[col.ColId] > 0 && _vm.hasFilter(col) && !_vm.ReadOnly && _vm.limitedFilteringTypes.includes(col.SourceType))?_c('v-switch',{attrs:{\"dense\":\"\",\"hide-details\":\"\",\"inset\":\"\",\"input-value\":_vm.usages[col.ColId] == 2},on:{\"change\":v => _vm.setColumnFilterUse(col, v ? 2 : 1)},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_vm._v(\" Limit filtering in view mode to selected items only \"),_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\":\"lightgrey\"},attrs:{\"dense\":\"\"}},'v-icon',attrs,false),on),[_vm._v(\"mdi-information-slab-circle\")])]}}],null,true)},[_vm._v(\" In this mode, filter controls are available in view mode, but with restrictions. Users\"),_c('br'),_vm._v(\" can adjust filter settings, but only within the options that were decided upon in Edit\"),_c('br'),_vm._v(\" mode. The filters selected in Edit mode will be the default settings when the report is\"),_c('br'),_vm._v(\" first viewed, providing a predefined starting point while still allowing users some\"),_c('br'),_vm._v(\" flexibility within those constraints. \")])]},proxy:true}],null,true)}):_vm._e()],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-5 mb-2\",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)?_c('v-switch',{staticClass:\"ml-5 mb-2\",attrs:{\"inset\":\"\",\"dense\":\"\",\"hide-details\":\"\"},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_vm._v(\" Use standard text filter \"),_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\":\"lightgrey\"},attrs:{\"dense\":\"\"}},'v-icon',attrs,false),on),[_vm._v(\"mdi-information-slab-circle\")])]}}],null,false,2328451837)},[_c('div',{staticStyle:{\"white-space\":\"normal\",\"word-wrap\":\"break-word\",\"max-width\":\"400px\"}},[_vm._v(_vm._s(_vm.standardTextFilterTooltip))])])]},proxy:true}],null,false,1052191884),model:{value:(_vm.usefulltext),callback:function ($$v) {_vm.usefulltext=$$v},expression:\"usefulltext\"}}):_vm._e()],1),(_vm.usefulltext && _vm.haslookup)?_c('v-alert',{attrs:{\"icon\":\"mdi-alert\",\"dark\":\"\",\"dense\":\"\",\"text\":\"\",\"type\":\"warning\",\"color\":\"outbound\"}},[_vm._v(\" This filter displays values from a corresponding lookup table, translating internal identifiers (which may be GUIDs) into readable text. Standard text filtering 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-4 mr-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)?_c('v-checkbox',{staticClass:\"pt-0 mt-2\",attrs:{\"dense\":\"\",\"hide-details\":\"\"},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_vm._v(\" Show used items only \"),_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\":\"lightgrey\"},attrs:{\"dense\":\"\"}},'v-icon',attrs,false),on),[_vm._v(\"mdi-information-slab-circle\")])]}}],null,false,2328451837)},[_vm._v(\" When on, only list items that were used in the date range selected. \")])]},proxy:true}],null,false,357598955),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.initial && !_vm.usecurrentuser)?_c('v-switch',{staticClass:\"ml-5 mb-2\",attrs:{\"inset\":\"\",\"dense\":\"\",\"hide-details\":\"\"},on:{\"change\":_vm.toggleAll},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_vm._v(\" Include new items in the filter \"),_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\":\"lightgrey\"},attrs:{\"dense\":\"\"}},'v-icon',attrs,false),on),[_vm._v(\"mdi-information-slab-circle\")])]}}],null,false,2328451837)},[_vm._v(\" Toggle on to include items that are selected as well as new items created after the report. Toggle off to include only items that are selected. \")])]},proxy:true}],null,false,3090671028),model:{value:(_vm.useExclusive),callback:function ($$v) {_vm.useExclusive=$$v},expression:\"useExclusive\"}}):_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-row',{key:i,attrs:{\"dense\":\"\"}},[_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('v-row',{attrs:{\"dense\":\"\"}},[_c('v-col',{attrs:{\"cols\":\"4\"}},[_c('v-select',{attrs:{\"outlined\":\"\",\"dense\":\"\",\"hide-details\":\"\",\"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\":\"\",\"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 < 1)?_c('v-row',{attrs:{\"dense\":\"\",\"justify\":\"center\"}},[_c('v-col',{attrs:{\"cols\":\"1\"}},[_c('v-btn-toggle',{attrs:{\"value\":item.combiner},on:{\"change\":(value) => _vm.setItemCombiner(item, i, value)}},[_c('v-btn',{attrs:{\"text\":\"\",\"x-small\":\"\",\"title\":\"And\",\"value\":\"AND\"}},[_vm._v(\" AND \")]),_c('v-btn',{attrs:{\"text\":\"\",\"x-small\":\"\",\"title\":\"Or\",\"value\":\"OR\"}},[_vm._v(\" OR \")])],1)],1)],1):_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!./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=11399176&scoped=true&\"\nimport script from \"./filter_searchableTextColumn.vue?vue&type=script&lang=js&\"\nexport * from \"./filter_searchableTextColumn.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 \"11399176\",\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=494e051b&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=494e051b&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 \"494e051b\",\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=7ecec61e&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=7ecec61e&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 \"7ecec61e\",\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\":\"lightgrey\"},attrs:{\"small\":\"\"}},'v-icon',attrs,false),on),[_vm._v(\"mdi-information-slab-circle\")])]}}],null,false,2586296198)},[_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\":\"lightgrey\"},attrs:{\"small\":\"\"}},'v-icon',attrs,false),on),[_vm._v(\"mdi-information-slab-circle\")])]}}],null,false,2586296198)},[_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=453e2685&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=453e2685&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 \"453e2685\",\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=352ad98d&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=352ad98d&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 \"352ad98d\",\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=29eb16fc&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=29eb16fc&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 \"29eb16fc\",\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},\"input\":_vm.menuStateChanged},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,\"_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-slab-circle \")])]}}],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 ? 'primary' : 'secondary'}},'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=eded07d6&\"\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=eded07d6&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=d3bcbfb2&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=d3bcbfb2&prod&lang=css&\"\nimport style1 from \"./AdvancedHistory.vue?vue&type=style&index=1&id=d3bcbfb2&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 \"d3bcbfb2\",\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:\"pb-2\",staticStyle:{\"display\":\"flex\",\"flex-direction\":\"row\",\"align-items\":\"flex-end\"}},[(!_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({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,\"disabled\":_vm.ChartIsDisabled}},'v-btn',attrs,false),on),[_c('v-icon',[_vm._v(\"mdi-chart-pie\")])],1)]}}],null,false,1042188106)},[_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 using a range that differs \"),_c('br'),_vm._v(\"from the Date / Time filter. (Active) \")]},proxy:true},{key:\"inactivetooltip\",fn:function(){return [_vm._v(\" Simulate using a range that differs \"),_c('br'),_vm._v(\"from the Date / Time filter. (Inactive) \")]},proxy:true}],null,false,3819330121)}):_vm._e(),(_vm.ReadOnly && _vm.IsAnyViewFilterChoices)?_c('v-btn',{staticClass:\"mt-2 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:\"mt-4 mr-5 ml-5\",attrs:{\"indeterminate\":\"\",\"color\":\"primary\",\"size\":20}}):_vm._e(),(_vm.System.DEBUG)?_c('span',{staticClass:\"mt-4 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:\"mt-3 mr-5\",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,3783384443)},[_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:\"mt-2 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:\"mt-2 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:\"mt-2 ml-0\",attrs:{\"disabled\":_vm.query_in_progress,\"plain\":\"\",\"elevation\":0,\"_color\":\"primary\"},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\":{ 'mt-2': true },\"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:\"pb-2\",staticStyle:{\"display\":\"flex\",\"flex-direction\":\"row\"}},[(_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:\"mt-2 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({staticClass:\"mt-3\",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,2816376540)},[_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:\"mt-2 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:\"mt-2 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:\"mt-2 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\":{ 'mt-2': true, '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,\"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,\"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',{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-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\":\"lightgrey\"},attrs:{\"small\":\"\"}},'v-icon',attrs,false),on),[_vm._v(\"mdi-information-slab-circle\")])]}}])},[_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\":\"lightgrey\"},attrs:{\"small\":\"\"}},'v-icon',attrs,false),on),[_vm._v(\"mdi-information-slab-circle\")])]}}])},[_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\":\"lightgrey\"},attrs:{\"small\":\"\"}},'v-icon',attrs,false),on),[_vm._v(\"mdi-information-slab-circle\")])]}}])},[_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\":\"lightgrey\"},attrs:{\"small\":\"\"}},'v-icon',attrs,false),on),[_vm._v(\"mdi-information-slab-circle\")])]}}],null,false,1447648864)},[_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\":\"lightGrey\"},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-slab-circle\")])],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=6f9e5a36&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=6f9e5a36&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 \"6f9e5a36\",\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\":\"lightgrey\"},attrs:{\"small\":\"\"}},[_vm._v(\"mdi-information-slab-circle\")])],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=0ad9a315&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=0ad9a315&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 \"0ad9a315\",\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=01c279d0&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=01c279d0&prod&scoped=true&lang=css&\"\nimport style1 from \"./agGridToolReportFields.vue?vue&type=style&index=1&id=01c279d0&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 \"01c279d0\",\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\"}},[_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:{\"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,\"swatches\":_vm.color_swatches,\"show-swatches\":\"\",\"outlined\":\"\",\"dense\":\"\",\"hide-details\":\"\"},on:{\"input\":_vm.updateChart,\"update:color\":({hex}) => item.color = hex},model:{value:(item.color),callback:function ($$v) {_vm.$set(item, \"color\", $$v)},expression:\"item.color\"}})],1)],1):_vm._e()],1)],1)],1)}),1),(_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=67097ea2&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=67097ea2&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 \"67097ea2\",\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=650066cc&\"\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=650066cc&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 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 (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 hint={this.hintText}\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 if (index === 0) {\r\n content = (\r\n {this.getNameOrValue(this.nameField, item)} {parent.isFocused ?  -  : null }\r\n );\r\n }\r\n else if (index < this.dynamicItemCount) {\r\n content = (\r\n , {this.getNameOrValue(this.nameField, item)} {parent.isFocused ?  -  : null }\r\n );\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 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=38a79da8&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=38a79da8&prod&scoped=true&lang=css&\"\nimport style1 from \"./RoosterEditorBase.vue?vue&type=style&index=1&id=38a79da8&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 \"38a79da8\",\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 // 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 }),\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 // 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 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 data 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 data 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: true,\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.DataType == 'URL')\r\n this.Refresh();\r\n else if (this.controlData.HeaderOptions?.RefreshIconActions\r\n && this.controlData.HeaderOptions?.RefreshIconActions.length > 0)\r\n utils.executeAndCompileAllActions(this.controlData.HeaderOptions.RefreshIconActions, null, this);\r\n else\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\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 //const all_rows = this.modelvalue();\r\n //if (!all_rows) return;\r\n\r\n const to_select_rows = [];\r\n const to_select_keys = {};\r\n\r\n //for (let i = 0; i < selectedArray.length; i++) {\r\n // const key = selectedArray[i];\r\n // const row = all_rows.find(a => Object.keys(key).every(k => a[k] == key[k]));\r\n // if (row) {\r\n // to_select_rows.push(row);\r\n // const str_key = Object.keys(key).map(k => `_${row[k]}`).join('');\r\n // to_select_keys[str_key] = row;\r\n // }\r\n //}\r\n const keys = this.controlData.KeyFields;\r\n const to_find = [...selectedArray];\r\n\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 isSelected = idx >= 0; // selectedArray.some(key => Object.keys(key).every(k => node.data[k] == key[k]));\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 NotifyDataChange() {\r\n\r\n },\r\n async ExportData(all) {\r\n await this.resolveAllAdditionalRowData();\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\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 this.rowClassExpr = utils.compileExpression(this, this.controlData.RowClassExpression);\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);\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 \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 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\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});","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});","export default window.careHelpfulFunctions;","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\n\r\nVue.component('basic-text', {\r\n mixins: [BaseComponent],\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 //text() {\r\n // if (this.controlData.Text)\r\n // return this.controlData.Text;\r\n // return '';\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 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 },\r\n //Created Replaced with preRenderComplete\r\n mounted() {\r\n //if (this.controlData.AsyncLookup === true) {\r\n // this.LookupText();\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 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]] + '\"';\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 this.internalRefresh(clearSelectedRows);\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\",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=1cad2214&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=1cad2214&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 \"1cad2214\",\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 (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 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 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 async Refresh(clearSelectedRows) {\r\n if (this.rowModelType == 'serverSide') {\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 }) => 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 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 coldefs.push(await this.generateColumnDef(h, cd, cd, i, cd.Field, cd.Name, cd.DisplayName, false));\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)\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));\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) {\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 var callcorp = node.colDef.cellRendererParams.callcorp;\r\n var colDef = callcorp?.columnDef;\r\n\r\n let data;\r\n\r\n if (colDef) {\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) => 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) => 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) => 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) => 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) => 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 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 };\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) => 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) => 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) => 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 != 'DefaultFilter') {\r\n cdef.filter = cd.HeaderType;\r\n cdef.menuTabs = ['filterMenuTab', 'generalMenuTab'];\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\r\n async SetColumnFilter(field, filter) {\r\n await this.gridApi.setColumnFilterModel(field, filter);\r\n this.gridApi.onFilterChanged();\r\n },\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 },\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 columnDefs={this.column_defs}\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.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 this.setupPalette(graph, paper)}>\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=0fd35dfe&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=0fd35dfe&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 \"0fd35dfe\",\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 };\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\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 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 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 const webRtcPhoneParams = {\r\n wsUrl: 'wss://' + token.BandID() + appSettings.WhiteLabel.WssSuffix + '/' + encodeURIComponent(this.phoneUniqueInstanceId),\r\n publicIdentity: \"sip:websocket_\" + this.phoneUniqueInstanceId + \"@callcorp.webrtc;transport=ws\", // the publicIdentity \"websocket_\" identifies this unique user agent (phone)\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 };\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 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 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=9c09ca6c&\"\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=9c09ca6c&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","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=67097ea2&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!./groupbyItemList.vue?vue&type=style&index=0&id=0ad9a315&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=6f9e5a36&prod&scoped=true&lang=css&\"","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: true,\r\n transport: HttpTransportType.WebSockets\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!./filter_directionColumn.vue?vue&type=style&index=0&id=5ef4b3aa&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!./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&\"","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","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=01c279d0&prod&scoped=true&lang=css&\"","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};","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=01c279d0&prod&lang=css&\"","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&\"","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=453e2685&prod&scoped=true&lang=scss&\"","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=494e051b&prod&scoped=true&lang=css&\"","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","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!./filterCategory.vue?vue&type=style&index=0&id=352ad98d&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","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=29eb16fc&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=0&id=38a79da8&prod&scoped=true&lang=css&\"","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;","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 '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, 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}, 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!./AdvancedHistory.vue?vue&type=style&index=1&id=d3bcbfb2&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!./overflowPillGroup.vue?vue&type=style&index=0&id=35d62422&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!./SoftPhone.vue?vue&type=style&index=0&id=0fd35dfe&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=1cad2214&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=eded07d6&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:\"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 }","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=d3bcbfb2&prod&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","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\"","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":""}