{"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/Application/components/vuecontrols/debugDialog.vue?31f5","webpack:///./src/Assets/Donut.png","webpack:///./src/Shared/filters.js","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","log","Name","preRenderComplete","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","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","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","EnableDynamicColumns","DynamicColumns","dynamicColumns","columnTemplates","ColumnTemplates","prepareColumnDefs","dynamicColumnsValue","generateColumnDef","dc","default_visible","caption","column_defs","field_extractor","ItemModelName","def","_colDef$CommandButton","colData","colActionData","equals","Lookup","displayExpr","valueExpr","displayfunc","valuefunc","dataSourceExpr","refData","dataSourceUrl","CacheResults","NotFoundText","notfoundexpn","sorttemplate_expn","HeaderType","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","Params","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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,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,UACNsgD,OAAQ,SACR9+C,IAAK,KACL++C,QAAS,CACL,CACIvgD,KAAM,SACNwB,IAAK,SAET,CACIxB,KAAM,SACNwB,IAAK,WAI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","file":"js/app.7b65255a.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","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=43436ea1&prod&scoped=true&lang=css&\"","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;","\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=f3094aa0&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 \"f3094aa0\",\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\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 //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(\"Schema\")]),_c('v-tab',[_vm._v(\"Form\")]),_c('v-tab',[_vm._v(\"Model\")])],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.schema || {})))])]),_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.cmodel || {})))])])],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=43436ea1&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=43436ea1&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 \"43436ea1\",\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 + '; refreshing selected');\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 }\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\n\r\nimport { AgGridVue } from \"ag-grid-vue\";\r\nimport DropdownFilter from './vuecontrols/agGridDropdownFilter.vue';\r\nimport _ from 'lodash';\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 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 if (btn.Condition && !btn.$$Condition)\r\n btn.$$Condition = utils.compileExpression(this, btn.Condition, cd.RowModelName || 'row');\r\n\r\n if (btn.Icon && !btn.$$Icon)\r\n btn.$$Icon = utils.compile(this, btn.Icon, false, cd.RowModelName || 'row');\r\n\r\n if (btn.Color && !btn.$$Color)\r\n btn.$$Color = utils.compile(this, btn.Color, false, cd.RowModelName || 'row');\r\n\r\n if (btn.Tooltip && !btn.$$Tooltip)\r\n btn.$$Tooltip = utils.compile(this, btn.Tooltip, false, cd.RowModelName || 'row');\r\n\r\n const data = this.rowData; // this.params.data;\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, cd.RowModelName || 'row');\r\n\r\n if (m.Icon && !m.$$iconexpn)\r\n m.$$iconexpn = utils.compile(this, m.Icon, cd.RowModelName || 'row');\r\n\r\n if (m.Icon && m.IconColor && !m.$$iconcolorexpn)\r\n m.$$iconcolorexpn = utils.compile(this, m.IconColor, 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 buttons.push(b);\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: () => ({\r\n column_defs_ready: false,\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 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 },\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 },\r\n //Mounted Replaced with preRenderComplete\r\n methods: {\r\n async Refresh(clearSelectedRows) {\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.${field};`);\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 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 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 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 let lookup;\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.filterParams = {\r\n label: `Select Filter for ${cdef.DisplayName || cdef.name || cdef.field}:`,\r\n };\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\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.Field || col.Name, 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 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.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 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":""}