{"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/vuecontrols/advancedHistory/filter_textSetColumn.vue?1c77","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/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/AdvancedHistory.vue?9847","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/event-bus.js","webpack:///./src/Application/components/AdvancedHistory.vue?9a62","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/AdvancedReports.vue?7e08","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/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/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","startACDDirectApp","loadFile","hostname","authority","popup_redirect_uri","origin","client_id","response_type","Oidc","UserManager","signinPopup","authArgs","token","id_token","clientId","runActions","Actions","handleClick","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","$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","nodata","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","nocolumns","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","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","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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KAAM,UACNwB,IAAK,WAIjB,CACIxB,KAAM,SACNsgD,OAAQ,UACR9+C,IAAK,KACL++C,QAAS,CACL,CACIvgD,KAAM,UACNwB,IAAK,SAET,CACIxB,KAAM,UACNwB,IAAK,SAET,CACIxB,KAAM,QACNwB,IAAK,SAET,CACIxB,KAAM,OACNwB,IAAK,SAET,CACIxB,KAAM,SACNwB,IAAK,SAET,CACIxB,KAAM,SACNwB,IAAK,SAET,CACIxB,KAAM,UACNwB,IAAK,SAET,CACIxB,KAAM,QACNwB,IAAK,SAET,CACIxB,KAAM,UACNwB,IAAK,SAET,CACIxB,KAAM,OACNwB,IAAK,SAET,CACIxB,KAAM,QACNwB,IAAK,SAET,CACIxB,KAAM,eACNwB,IAAK,SAET,CACIxB,KAAM,QACNwB,IAAK,SAET,CACIxB,KAAM,QACNwB,IAAK,SAET,CACIxB,KAAM,UACNwB,IAAK,SAET,CACIxB,KAAM,uBACNwB,IAAK,SAET,CACIxB,KAAM,QACNwB,IAAK,WAIjB,CACIxB,KAAM,SACNsgD,OAAQ,QACR9+C,IAAK,KACL++C,QAAS,CACL,CACIvgD,KAAM,aACNwB,IAAK,SAET,CACIxB,KAAM,QACNwB,IAAK,WAIjB,CACIxB,KAAM,SACNsgD,OAAQ,SACR9+C,IAAK,KACL++C,QAAS,CACL,CACIvgD,KAAM,QACNwB,IAAK,WAIjB,CACIxB,KAAM,YACNsgD,OAAQ,YACR9+C,IAAK,KACL++C,QAAS,CACL,CACIvgD,KAAM,WACNwB,IAAK,WAIjB,CACIxB,KAAM,YACNsgD,OAAQ,QACR9+C,IAAK,MACL++C,QAAS,CACL,CACIvgD,KAAM,QACNwB,IAAK,SAET,CACIxB,KAAM,YACNwB,IAAK,YAIjB,CACIxB,KAAM,UACNsgD,OAAQ,SACR9+C,IAAK,KACL++C,QAAS,CACL,CACIvgD,KAAM,QACNwB,IAAK,SAET,CACIxB,KAAM,SACNwB,IAAK,SAET,CACIxB,KAAM,QACNwB,IAAK,WAIjB,CACIxB,KAAM,UACNsgD,OAAQ,KACR9+C,IAAK,KACL++C,QAAS,CACL,CACIvgD,KAAM,QACNw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M,WACNwB,IAAK,WAIjB,CACIxB,KAAM,UACNsgD,OAAQ,UACR9+C,IAAK,KACL++C,QAAS,CACL,CACIvgD,KAAM,YACNwB,IAAK,SAET,CACIxB,KAAM,UACNwB,IAAK,SAET,CACIxB,KAAM,QACNwB,IAAK,SAET,CACIxB,KAAM,WACNwB,IAAK,SAET,CACIxB,KAAM,aACNwB,IAAK,SAET,CACIxB,KAAM,qBACNwB,IAAK,SAET,CACIxB,KAAM,UACNwB,IAAK,SAET,CACIxB,KAAM,cACNwB,IAAK,SAET,CACIxB,KAAM,YACNwB,IAAK,SAET,CACIxB,KAAM,WACNwB,IAAK,SAET,CACIxB,KAAM,SACNwB,IAAK,SAET,CACIxB,KAAM,YACNwB,IAAK,SAET,CACIxB,KAAM,SACNwB,IAAK,SAET,CACIxB,KAAM,WACNwB,IAAK,SAET,CACIxB,KAAM,OACNwB,IAAK,SAET,CACIxB,KAAM,cACNwB,IAAK,SAET,CACIxB,KAAM,QACNwB,IAAK,SAET,CACIxB,KAAM,gBACNwB,IAAK,SAET,CACIxB,KAAM,UACNwB,IAAK,SAET,CACIxB,KAAM,YACNwB,IAAK,WAIjB,CACIxB,KAAM,UACNsgD,OAAQ,UACR9+C,IAAK,KACL++C,QAAS,CACL,CACIvgD,KAAM,SACNwB,IAAK,WAIjB,CACIxB,KAAM,QACNsgD,OAAQ,QACR9+C,IAAK,KACL++C,QAAS,CACL,CACIvgD,KAAM,QACNwB,IAAK,SAET,CACIxB,KAAM,YACNwB,IAAK,SAET,CACIxB,KAAM,WACNwB,IAAK,SAET,CACIxB,KAAM,YACNwB,IAAK,WAIjB,CACIxB,KAAM,SACNsgD,OAAQ,SACR9+C,IAAK,KACL++C,QAAS,CACL,CACIvgD,KAAM,QACNwB,IAAK,WAIjB,CACIxB,KAAM,OACNsgD,OAAQ,MACR9+C,IAAK,KACL++C,QAAS,CACL,CACIvgD,KAAM,WACNwB,IAAK,WAIjB,CACIxB,KAAM,UACNsgD,OAAQ,SACR9+C,IAAK,KACL++C,QAAS,CACL,CACIvgD,KAAM,SACNwB,IAAK,SAET,CACIxB,KAAM,SACNwB,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","file":"js/app.977dc97a.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 }","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=98df3ef2&prod&scoped=true&lang=css&\"","import Vue from 'vue';\r\nimport Vuetify from 'vuetify';\r\nimport utils from '../../../Shared/utils.jsx';\r\nimport methods from '../../../Shared/methods';\r\nimport filters from '../../../Shared/filters';\r\nimport computed from '../../../Shared/computed';\r\nimport BaseComponent from '../BaseComponentMixin.jsx';\r\nimport EventBus from '@/Application/event-bus.js';\r\nimport careHelpfulFunctions from '../../careHelpfulFunctions.jsx';\r\n\r\n/* We need a draggable dialog. Here is one possible solution:\r\n * https://github.com/vuetifyjs/vuetify/issues/4058\r\n * \r\n * We also need to support resizing, if I find something, I'll paste here.\r\n * \r\n * */\r\n\r\nconst busyIcon = {\r\n render(h) {\r\n return (\r\n \r\n mdi mdi-cloud-download\r\n \r\n );\r\n }\r\n};\r\n\r\nVue.component('display-basic-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&\"","/*\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 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.startACDDirectApp();\r\n\r\n this.finishRenderHandler(this);\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=7ff8a082&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 \"7ff8a082\",\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.nodata && !_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.nodata && _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.nodata),expression:\"!nodata\"}],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.nodata)?_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('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=98df3ef2&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=98df3ef2&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 \"98df3ef2\",\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=676e97c1&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=676e97c1&prod&lang=css&\"\nimport style1 from \"./AdvancedHistory.vue?vue&type=style&index=1&id=676e97c1&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 \"676e97c1\",\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\":true,\"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=64b2b5ee&\"\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=64b2b5ee&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=613da239&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 \"613da239\",\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 => `_${row[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 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\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 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 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&\"","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=676e97c1&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&\"","import Vue from 'vue';\r\nconst EventBus = new Vue();\r\nexport default EventBus;","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=676e97c1&prod&lang=css&\"","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!./AdvancedReports.vue?vue&type=style&index=0&id=64b2b5ee&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!./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!./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 }","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":""}