{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/Application/components/BaseComponentMixin.jsx","webpack:///./src/Application/components/javascript/care-sip-0.15.10.min.js","webpack:///./src/Services/locale.jsx","webpack:///./src/Application/components/actions/DialogBasicModal.jsx","webpack:///./src/Assets/formatpaintercursor.svg","webpack:///./src/Services/promiseHelper.jsx","webpack:///./src/Shared/appSettings.js","webpack:///./src/App.vue?9fe1","webpack:///./src/Application/components/vuecontrols/debugDialog.vue?31f5","webpack:///./src/Assets/Donut.png","webpack:///./src/Shared/filters.js","webpack:///./src/Application/components/SoftPhone.vue?930a","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/AdvancedHistory.vue","webpack:///./src/Application/components/AdvancedHistory.vue?725f","webpack:///./src/Application/components/AdvancedHistory.vue?137a","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/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/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:///./src/Application/components/FileDiff.vue?9015","webpack:///signalR/webpack/universalModuleDefinition","webpack:///signalR/webpack/bootstrap","webpack:///signalR/webpack/runtime/define property getters","webpack:///signalR/webpack/runtime/global","webpack:///signalR/webpack/runtime/hasOwnProperty shorthand","webpack:///signalR/webpack/runtime/make namespace object","webpack:///signalR/src/ILogger.ts","webpack:///signalR/src/Errors.ts","webpack:///signalR/src/HttpClient.ts","webpack:///signalR/src/Loggers.ts","webpack:///signalR/src/Utils.ts","webpack:///signalR/src/FetchHttpClient.ts","webpack:///signalR/src/XhrHttpClient.ts","webpack:///signalR/src/DefaultHttpClient.ts","webpack:///signalR/src/TextMessageFormat.ts","webpack:///signalR/src/HandshakeProtocol.ts","webpack:///signalR/src/IHubProtocol.ts","webpack:///signalR/src/Subject.ts","webpack:///signalR/src/HubConnection.ts","webpack:///signalR/src/DefaultReconnectPolicy.ts","webpack:///signalR/src/HeaderNames.ts","webpack:///signalR/src/AccessTokenHttpClient.ts","webpack:///signalR/src/ITransport.ts","webpack:///signalR/src/AbortController.ts","webpack:///signalR/src/LongPollingTransport.ts","webpack:///signalR/src/ServerSentEventsTransport.ts","webpack:///signalR/src/WebSocketTransport.ts","webpack:///signalR/src/HttpConnection.ts","webpack:///signalR/src/JsonHubProtocol.ts","webpack:///signalR/src/HubConnectionBuilder.ts","webpack:///signalR/src/browser-index.ts","webpack:///./src/Services/tokenEventListenerService.jsx","webpack:///./src/Services/aspNetCoreWebSocketConnection.jsx","webpack:///./src/Services/webSocketConnectionFactory.jsx","webpack:///./src/Application/components/vuecontrols/verticalTabs.vue?4320","webpack:///./src/Shared/timezoneMap.js","webpack:///./src/Application/careHelpfulFunctions.jsx","webpack:///./src/Services/webSocketService.jsx","webpack:///./src/Services/careFetchService.jsx","webpack:///./src/Services/api.jsx","webpack:///./src/Assets/Numeric.png","webpack:///./src/Application/event-bus.js","webpack:///./src/Application/components/CallcorpPlayer.js","webpack:///./src/Services/cachingService.jsx","webpack:///./src/Application/components/vuecontrols/griddy.vue?f3b6","webpack:///./src/Application/components/vuecontrols/RoosterEditorBase.vue?71ca","webpack:///./src/Services/localStorageSyncService.js","webpack:///./src/Shared/helperClasses.js","webpack:///./src/Application/components/vuecontrols/responsiveDash.vue?5b69","webpack:///./src/Application/components/MultiSelectListItem.vue?294f","webpack:///./src/Assets/Table.png","webpack:///./src/Application/components/BasicFileUpload.vue?b875","webpack:///./src/Shared/methods.js","webpack:///./src/Shared/utils.jsx","webpack:///./src/Assets/BlankCard.jpg","webpack:///./src/Application/components/UserControl.jsx","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/RoosterEditorBase.vue?6ad5","webpack:///./src/Application/components/actions/DialogBasicConfirmModal.jsx","webpack:///./src/Shared/regionCodeList.js","webpack:///./src/Shared/computed.js","webpack:///./src/Application/components/vuecontrols/DateRangePicker.vue?03e9","webpack:///./src/Assets/Bar.png","webpack:///./src/Services/editor.jsx"],"names":["webpackJsonpCallback","data","moduleId","chunkId","chunkIds","moreModules","executeModules","i","resolves","length","Object","prototype","hasOwnProperty","call","installedChunks","push","modules","parentJsonpFunction","shift","deferredModules","apply","checkDeferredModules","result","deferredModule","fulfilled","j","depId","splice","__webpack_require__","s","installedModules","jsonpScriptSrc","p","exports","module","l","e","promises","installedChunkData","promise","Promise","resolve","reject","onScriptComplete","script","document","createElement","charset","timeout","nc","setAttribute","src","error","Error","event","onerror","onload","clearTimeout","chunk","errorType","type","realSrc","target","message","name","request","undefined","setTimeout","head","appendChild","all","m","c","d","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","oe","err","console","jsonpArray","window","oldJsonpFunction","slice","baseMixin","displayexpr","visibleexpr","prerender_actions","postrender_actions","prerender_complete","vars","styleHints","isready","renderCount","finishedRender","finishedRenderChildren","todisplayfailed","props","root","parentType","controlData","debug","scopeitems","controlscope","cacheControl","computed","Vars","this","todisplay","DisplayExpression","utils","compileExpression","res","evaluate","isvisible","totalItems","sizeOptions","sizeOptionsObj","evaluateObject","sizeStyle","getSizeDefaults","getSize","$parent","Element","$el","isdebug","document_cache","loadInProgress","Location","Date","toLocaleTimeString","VisibleExpression","Javascript","addJavascript","warn","$nointerp","varsexpn","compileObject","StyleHints","SizeOptions","executeAndCompileAllActions","PrerenderActions","preRenderComplete","Name","destroyed","methods","filters","finishRenderHandler","component","renderComplete","PostrenderActions","$emit","postRenderComplete","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","text","parts","map","isArray","inverted","description","sort","join","SyntaxError","Contact","Name_Addr_Header","Record_Route","Request_Response","SIP_URI","Subscription_State","Supported","Require","Via","absoluteURI","Call_ID","Content_Disposition","Content_Length","Content_Type","CSeq","displayName","Event","From","host","Max_Forwards","Min_SE","Proxy_Authenticate","quoted_string","Refer_To","Replaces","Session_Expires","stun_URI","To","turn_URI","uuid","WWW_Authenticate","challenge","sipfrag","Referred_By","scheme","user","port","host_type","uri_params","uri_headers","decodeURIComponent","password","parseInt","transport","toLowerCase","params","ttl","maddr","lr","sip_version","status_code","reason_phrase","multi_header","position","offset","start","trim","substring","q","expires","parseFloat","tag","setParam","realm","nonce","opaque","stale","algorithm","qop","replaces_from_tag","replaces_to_tag","call_id","early_only","state","reason","retry_after","received","branch","rport","protocol","deltaSeconds","refresher","R","line","column","ignoreCase","end","_","split","substr","test","charAt","_displayName","aor","clone","JSON","stringify","parameters","Parameters","getParam","hasParam","deleteParam","clearParams","normal","deleteHeader","clearHeaders","_raw","toRaw","_toString","_normal","match","escapeUser","encodeURIComponent","Cseq","Rack","Rseq","Math","floor","random","createRandomToken","getReasonPhrase","newTag","str_utf8_length","100","180","181","182","183","199","200","202","204","300","301","302","305","380","400","401","402","403","404","405","406","407","408","410","412","413","414","415","416","417","420","421","422","423","428","429","430","433","436","437","438","439","440","469","470","478","480","481","482","483","484","485","486","487","488","489","491","493","494","500","501","502","503","504","505","513","580","600","603","604","606","options","getDefaultOptions","__assign","optionTags","ruri","fromURI","makeNameAddrHeader","fromDisplayName","toURI","toDisplayName","callIdPrefix","forceRport","hackViaTcp","userAgentString","viaHost","RegExp","setViaHeader","__importDefault","logger","getLogger","username","ncHex","authenticate","cnonce","updateNcHex","calculateResponse","response","Number","lib","WordArray","Hasher","algo","abs","sin","MD5","extend","_doReset","_hash","init","_doProcessBlock","words","w","A","I","O","x","_doFinalize","_data","_nDataBytes","sigBytes","_process","_createHelper","HmacMD5","_createHmacHelper","Base","mixIn","$super","clamp","ceil","enc","Hex","Latin1","String","fromCharCode","Utf8","escape","unescape","BufferedBlockAlgorithm","reset","_append","blockSize","max","_minBufferSize","min","cfg","update","finalize","HMAC","constructOutgoingResponse","reasonPhrase","reduce","supported","userAgent","via","viaBranch","forEach","referTo","parseMessage","initialTransaction","_signalingState","SignalingState","Initial","ackWait","delegate","start2xxRetransmissionTimer","signalingStateTransition","loggerFactory","log","Closed","_offer","_answer","invite2xxTimer","SessionState","Early","AckWait","Terminated","Confirmed","reConfirm","reinviteUserAgentServer","startReInvite2xxRetransmissionTimer","ack","reinviteUserAgentClient","transaction","ackResponse","bye","TransactionState","ByeUserAgentClient","info","InfoUserAgentClient","invite","ReInviteUserAgentClient","notify","NotifyUserAgentClient","prack","PrackUserAgentClient","refer","ReferUserAgentClient","onAck","ByeUserAgentServer","onBye","accept","InfoUserAgentServer","onInfo","ReInviteUserAgentServer","onInvite","NotifyUserAgentServer","onNotify","PrackUserAgentServer","onPrack","ReferUserAgentServer","onRefer","reliableSequenceGuard","includes","rseq","signalingStateRollback","HaveLocalOffer","signalingState","HaveRemoteOffer","_rollbackOffer","_rollbackAnswer","Stable","T1","retransmitAcceptedResponse","T2","removeListener","onAckTimeout","addListener","SessionDialog","T4","TIMER_B","TIMER_D","TIMER_F","TIMER_H","TIMER_I","TIMER_J","TIMER_K","TIMER_L","TIMER_M","TIMER_N","PROVISIONAL_RESPONSE_INTERVAL","makeId","_request","onRequestTimeout","Transaction","ClientTransaction","_transport","_user","_id","_state","typeToString","on","logTransportError","send","catch","TransportError","onTransportError","setState","onStateChange","emit","EventEmitter","Function","ownKeys","getOwnPropertyNames","isNaN","_events","_eventsCount","_maxListeners","defaultMaxListeners","newListener","listener","unshift","warned","emitter","count","fired","wrapFn","RangeError","getPrototypeOf","setMaxListeners","getMaxListeners","context","prependListener","once","prependOnceListener","off","removeAllListeners","keys","listeners","rawListeners","listenerCount","eventNames","Exception","TransactionStateError","Calling","ackRetransmissionCache","Map","B","timer_B","D","M","receiveResponse","stateTransition","Proceeding","Accepted","Completed","has","timer_D","timer_M","timer_A","Trying","stopProgressExtensionTimer","H","L","lastProvisionalResponse","lastFinalResponse","startProgressExtensionTimer","timer_L","timer_H","timer_I","progressExtensionTimer","setInterval","clearInterval","timer_G","ServerTransaction","F","timer_F","K","timer_K","J","lastResponse","timer_J","UserAgentClient","transactionConstructor","challenged","_transaction","cancel","Route","authenticationGuard","credentials","configuration","authenticationFactory","onTrying","onProgress","onAccept","onRedirect","onReject","userAgentClients","UserAgentServer","acceptable","reply","progress","progressable","redirect","redirectable","rejectable","trying","tryingable","receiveCancel","onCancel","userAgentHeaderFieldValue","supportedOptionTagsResponse","userAgentServers","dialog","session","_autoRefresh","_subscriptionEvent","_subscriptionExpires","_subscriptionExpiresInitial","_subscriptionExpiresLastSet","now","_subscriptionRefresh","_subscriptionRefreshLastSet","_subscriptionState","initialDialogStateForSubscription","N","refreshTimerClear","refreshTimerSet","autoRefresh","subscriptionRefresh","refresh","AllowedMethods","subscriptionEvent","subscriptionExpiresInitial","contact","subscribe","subscriptionState","SubscriptionState","Pending","Active","ReSubscribeUserAgentClient","timer_N","terminate","onTerminated","unsubscribe","onRefresh","refreshTimer","subscriptionExpires","NotifyWait","SubscriptionDialog","waitNotifyStop","Levels","builtinEnabled","_level","loggers","_connector","level","Logger","genericLog","careAppSettings","careService","logDebug","logError","logInfo","print","connector","category","subscribers","clear","transportAccessor","InviteUserAgentClient","MessageUserAgentClient","publish","PublishUserAgentClient","register","RegisterUserAgentClient","SubscribeUserAgentClient","sipjsId","viaForceRport","supportedOptionTags","pubGruu","tempGruu","receiveIncomingRequestFromTransport","receiveRequestFromTransport","receiveIncomingResponseFromTransport","receiveResponseFromTransport","InviteUserAgentServer","values","some","receiveInsideDialogRequest","receiveOutsideDialogRequest","MessageUserAgentServer","onMessage","RegisterUserAgentServer","onRegister","SubscribeUserAgentServer","onSubscribe","UserAgentCore","CancelUserAgentClient","confirmedDialogAcks","confirmedDialogs","earlyDialogs","earlyDialog","confirmedDialog","answer","ReSubscribeUserAgentServer","subscriberId","subscriptionExpiresRequested","waitNotifyStart","subscription","onNotifyTimeout","initializer","ua","normalizeTarget","fromUri","toUri","fromBodyObj","localIdentity","remoteIdentity","applicants","causes","REQUEST_TIMEOUT","CONNECTION_ERROR","LIBRARY_VERSION","USER_AGENT","SIP","SIPS","INTERNAL_ERROR","SIP_FAILURE_CODE","ADDRESS_INCOMPLETE","AUTHENTICATION_ERROR","BUSY","DIALOG_ERROR","INCOMPATIBLE_SDP","NOT_FOUND","REDIRECTED","REJECTED","UNAVAILABLE","BAD_MEDIA_DESCRIPTION","CANCELED","EXPIRES","NO_ACK","NO_ANSWER","NO_PRACK","RTP_TIMEOUT","USER_DENIED_MEDIA_ACCESS","WEBRTC_ERROR","WEBRTC_NOT_SUPPORTED","REQUIRED","SUPPORTED","UNSUPPORTED","SIP_ERROR_CAUSES","REASON_PHRASE","OPTION_TAGS","answermode","eventlist","explicitsub","gin","gruu","histinfo","ice","norefersub","nosub","outbound","path","policy","precondition","pref","privacy","replaces","tdialog","timer","uui","RTP","dtmfType","STATUS_EARLY","STATUS_CONFIRMED","STATUS_NULL","STATUS_INVITE_SENT","STATUS_1XX_RECEIVED","STATUS_INVITE_RECEIVED","STATUS_WAITING_FOR_ANSWER","STATUS_ANSWERED","STATUS_WAITING_FOR_PRACK","STATUS_WAITING_FOR_ACK","STATUS_CANCELED","STATUS_TERMINATED","STATUS_ANSWERED_WAITING_FOR_PRACK","STATUS_EARLY_MEDIA","ConfigurationError","DTMF","InvalidStateError","MethodParameterError","NotSupportedError","RenegotiationError","RequestSender","SessionDescriptionHandler","SessionDescriptionHandlerError","SessionDescriptionHandlerObserver","STATUS_INIT","STATUS_STARTING","STATUS_READY","STATUS_USER_CLOSED","STATUS_NOT_READY","defer","reducePromises","generateFakeSDP","isDecimal","newUUID","sipErrorCause","getReasonHeaderValue","getCancelReason","buildStatusLine","toBodyObj","ClosedSessionDescriptionHandlerError","TerminatedSessionError","UnsupportedSessionDescriptionContentTypeError","code","parameter","status","unpublishOnClose","pubRequestExpires","publishRefreshTimer","pubRequestBody","pubRequestEtag","publishers","sendPublishRequest","unpublish","close","refreshRequest","applicant","initReferTo","errorListener","sendRequest","receiveNotify","search","activeAfterTransfer","friendlyName","referredSession","findSession","referredBy","incomingRequest","followRefer","inviteOptions","targetSession","sendNotify","getLoggerFactory","assertedIdentity","minCode","maxCode","events","extraContactHeaderParams","instanceId","regId","registrar","mandatory","optional","filter","registered","onTransportDisconnected","generateContactHeader","closeHeaders","closeWithHeaders","registrationTimer","registrationExpiredTimer","unregistered","registrationFailure","registeredBefore","unregister","pendingReinvite","sessionDescriptionHandlerFactory","hasOffer","hasAnswer","timers","ackTimer","expiresTimer","userNoAnswerTimer","rel1xxTimer","prackTimer","startTime","endTime","tones","localHold","earlySdp","rel100","dtmf","DTMFValidator","validate","tone","duration","interToneGap","sessionDescriptionHandler","sendDtmf","terminated","referContext","sessions","hold","modifiers","holdModifier","sendReinvite","unhold","reinvite","failed","onDialogError","renderbody","rendertype","hasDescription","setDescription","sessionDescriptionHandlerOptions","receiveReinvite","init_incoming","passedOptions","getDescription","rejected","canceled","accepted","replacee","connecting","_canceled","noAnswerTimeout","_accept","onContextError","_reliableProgressWaitForPrack","_progress","sessionState","setupSessionDescriptionHandler","sessionDescriptionHandlerFactoryOptions","generateResponseOfferAnswer","setOfferAndGetAnswer","getOffer","offer","handlePrackOfferAnswer","setAnswer","prackNeverArrived","waitForArrivalOfPrack","_progressWithSDP","_reliableProgress","prackArrived","prackRequest","prackResponse","progressResponse","waitingForPrackResolve","waitingForPrackPromise","waitingForPrackReject","getSessionDescriptionHandler","anonymous","earlyMediaSessionDescriptionHandlers","inviteWithoutSdp","isCanceled","received100","sendInvite","careError","outgoingInviteRequest","ackAndBye","disposeEarlyMedia","MIN_DURATION","MAX_DURATION","DEFAULT_DURATION","MIN_INTER_TONE_GAP","DEFAULT_INTER_TONE_GAP","owner","originator","generateInvalidToneError","initContext","disposed","subscriptions","retryAfterTimer","__spreadArrays","onAccepted","onFailed","success","failure","subscribed","server","connect","connectPromise","overrideEvent","sendPromise","msg","disconnect","disconnectPromise","afterConnected","isConnected","waitForConnected","unloadListener","stop","loadConfig","CONFIGURATION_ERROR","transportConstructor","transportOptions","autoSendAnInitialProvisionalResponse","allowLegacyNotifications","allowOutOfDialogRefers","registerContext","registerOptions","autostart","isRegistered","autostop","chrome","app","runtime","removeEventListener","setTransportListeners","addEventListener","hostportParams","getSupportedResponseOptions","extraSupported","hackAllowUnregisteredOptionTags","NETWORK_ERROR","onTransportConnected","onTransportReceiveMsg","checkAuthenticationFactory","initialize","custom","usePreloadedRoute","hackIpInContact","hackWssInTransport","constraints","peerConnectionOptions","contactName","contactTransport","defaultFactory","authorizationUser","experimentalFeatures","getConfigurationCheck","ALLOWED_METHODS","ACCEPTED_BODY_TYPES","MAX_FORWARDS","TAG_LENGTH","sipUri","Set","DtmfType","observer","dtmfSender","shouldAcquireMedia","CONTENT_TYPE","DIRECTION","NULL","SENDRECV","SENDONLY","RECVONLY","INACTIVE","direction","iceGatheringTimeout","initPeerConnection","checkAndDefaultConstraints","peerConnection","getSenders","track","getLocalStreams","getTracks","getReceivers","getRemoteStreams","resetIceGatheringComplete","acquire","createOfferOrAnswer","RTCOfferOptions","sdp","alwaysAcquireMediaFirst","setRemoteDescription","disableAudioFallback","stripVideo","hasBrowserGetSenderSupport","hasBrowserTrackSupport","getAudioTracks","createDTMFSender","insertDTMF","getDirection","getMediaStream","video","streams","navigator","mediaDevices","getUserMedia","createAnswer","createOffer","createRTCSessionDescriptionInit","setLocalDescription","waitForIceGatheringComplete","localDescription","setDirection","addDefaultIceCheckingTimeout","iceCheckingTimeout","addDefaultIceServers","iceServers","urls","audio","Boolean","addTrack","rtcConfiguration","RTCPeerConnection","trackAdded","onaddstream","onicecandidate","candidate","stopIceGatherOnFirstViableCandidate","iceGatheringTimer","triggerIceGatheringComplete","onicegatheringstatechange","iceGatheringState","oniceconnectionstatechange","iceConnectionState","removeTrack","addStream","isIceGatheringComplete","iceGatheringDeferred","directionChanged","_stateEventEmitter","_userAgent","_sessions","_sessionDescriptionHandler","Establishing","Established","_bye","Terminating","_assertedIdentity","_dialog","_replacee","_makeEmitter","RequestPendingError","withoutSdp","sessionDescriptionHandlerModifiers","requestDelegate","_sessionDescriptionHandlerOptions","_sessionDescriptionHandlerModifiers","rollbackOffer","requestOptions","_contact","_referrer","_info","onAckRequest","_renderbody","_rendertype","onByeRequest","onInfoRequest","Info","onInviteRequest","generateResponseOfferAnswerInDialog","onNotifyRequest","Notification","onPrackRequest","onReferRequest","Referral","makeInviter","_referralInviterOptions","rollbackDescription","ContentTypeUnsupportedError","setSessionDescriptionHandler","SessionTerminatedError","StateTransitionError","incomingInfoRequest","incomingNotifyRequest","incomingReferRequest","inviter","_makeInviter","_referred","_referral","index","stripped","exec","stripTcpCandidates","stripTelephoneEvent","cleanJitsiSdpImageattr","stripG722","stripRtpPayload","addMidLines","STATUS_CONNECTING","STATUS_OPEN","STATUS_CLOSING","STATUS_CLOSED","TransportStatus","reconnectionAttempts","wsServers","ws","onError","statusAssert","force","traceSip","disconnectionPromise","statusTransition","disconnectDeferredResolve","reconnectTimer","stopSendingKeepAlives","wsUri","connectionPromise","getNextWsServer","connectDeferredResolve","connectDeferredReject","disposeWs","WebSocket","connectionTimeout","boundOnOpen","onOpen","boundOnMessage","boundOnClose","onClose","boundOnError","onWebsocketError","clearKeepAliveTimeout","Uint8Array","startSendingKeepAlives","reconnect","noAvailableServers","resetServerErrorStatus","maxReconnectionAttempts","isError","reconnectionTimeout","weight","sendKeepAlive","keepAliveDebounceTimeout","keepAliveDebounce","keepAliveInterval","defineProperties","Modifiers","Simple","STATUS_NEW","STATUS_CONNECTED","STATUS_COMPLETED","SimpleStatus","media","remote","setupSession","checkRegistration","autoplay","local","volume","hangup","mute","unmute","toggleMute","sendDTMF","setupRemoteMedia","MediaStream","srcObject","play","setupLocalMedia","kind","cleanupMedia","pause","onEnded","destroyMedia","enabled","getVideoTracks","dayjs","localeData","localizedFormat","weekday","utc","customParseFormat","objectSupport","timezone","moment","setLocale","locale","getSupportedLocale","Ls","appSettings","LocaleKey","getWeekdaysLong","weekdays","getWeekdaysShort","weekdaysShort","getWeekdaysMin","weekdaysMin","getMonthLong","months","getMonthShort","monthsShort","getTimezoneConvertedDate","date","tz","format","windowsTimeToIANATime","getDateInLocale","careWindowsToMomentTimezoneMap","windowsTimezone","Intl","supportedValuesOf","guess","busyIcon","render","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","PromiseWrapper","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","WindowLocation","AvailableLanguages","Environment","PayeezyXLogin","PayeezyUrl","careTokenService","CustomerTimezone","BandID","AccessToken","GetUserEventKey","GetCustomerEventKey","GetChannelName","UpdateToken","LocalStorage","UserID","CustomerID","prefixedKey","localStorage","getItem","localStorageSyncService","dispatchLocalStorageUpdate","removeItem","setItem","UserLocalStorage","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","callback","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","_c","staticStyle","currentRoute","_vm","pathname","staticRenderFns","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","model","beforeContent","hasfocus","gotoLine","row","beautify","doAppy","output","looks_like_html","unpacker_filter","saveEditorPositionAndFoldInfo","setValue","restoreEditorPositionAndFoldInfo","savedFoldData","$foldData","savedScrollTop","getScrollTop","savedCursorPosition","selection","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","watch","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","item","HeaderControls","AccordionBody","closeOthersEval","accordionGroupEvals","openedItems","closeOthers","CloseOthers","Translate","styles","resolveStyleHints","openItem","closeItem","toggleOpen","AccordionGroup","$$v","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","attrs","domProps","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","Type","TapActions","HiddenActions","FileName","fileURL","standardizeUrl","link","download","href","click","removeChild","popupname","Field","expression","DeepCopy","func","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","rawName","class","slot","contentDef","rowData","rowDataArg","contentDefs","addrowdata","loading","rowIndex","getAdditionalRowData","$$additional_row_data","handleGridExportText","val","exportValues","callcorp","field","add","initValue","valueexpr","urlexpr","elements","displayExpression","control","$objectId","$event","datePickerOpen","placeholderText","disabled","scopedSlots","staticClass","calendarConfigs","functionalCalendarFormattedData","onCalendarInput","isDateRangePicker","offsetY","auto","startHour","startMin","is24HourLocale","startMeridiem","timePickerHours","endHour","endMin","endMeridiem","selectedHour","selectedMinute","_v","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","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","IconComponent","sessionId","sessionid","buttonClick","span","button","medium","AgGridVue","cDateRangePicker","unique_id","datespan","datamodel","defaultTime","baseurl","dataSource","getRows","q_from","startRow","q_size","endRow","dataurl","sortModel","colId","filterModel","rows","successCallback","total","overflow","padding","columnDefs","resizable","valueFormatter","dateFormatter","phonenumFormatter","durationFormatter","Refresh","gridApi","refreshInfiniteCache","onGridReady","columnApi","onFirstDataRendered","autoSizeAllColumns","applyDateRangeHandler","clearDateRangeHandler","clearSearch","CellTemplate","icons","columnDef","Icons","ico","condition_expn","cccontext","color","tooltip","color_expn","tooltip_expn","icon_expn","generateTooltip","datatable_id","modelfunc","modelurl","modelvalue","searchText","itemsPerPage","ItemsPerPage","DataType","DataURL","prepareColumns","cols","SelectOptions","Enable","headerName","sortable","checkboxSelection","headerCheckboxSelection","pinned","ColumnDefs","hdr","Visible","valueGetter","value_expn","RowModelName","node","cellfilter_expn","field_extrator","DisplayName","Sortable","cellRendererFramework","cellRendererParams","modelurlvalue","modelrawvalue","gridHeaders","activator","menus","exportAllAsCSV","exportVisibleAsCSV","restoreDefaults","col","toggleColumnVisibility","menu","clearSelectedRows","modelurl_watch$","$watch","oldval","modelvalue_watch$","Model","Definition","deep","Condition","CellFilter","ValueModelName","Icon","Color","Tooltip","SizeColumnsToFit","getSelectedRows","selectedNodes","getSelectedNodes","selectedData","selectedStr","rowCommandClick","btn","cancelBubble","RowIndex","clickIcon","MultiSelect","chartType","chartData","chartOptions","_e","optionsmodel","dataurlexpn","OptionsType","OptionsURL","optionsurlexpn","labelFormatter","self","opts","LabelFormat","durationSecondsAsString","config","series","seriesIndex","dataPointIndex","labels","legendFormatter","LegendFormat","tooltipFormatter","ToolTipFormat","ChartType","DataRaw","datarawexpn","OptionsRaw","optionsrawexpn","optionsurl","startAppleApp","appleId","AppleID","auth","redirectURI","usePopup","signIn","authorization","VCardPadding","showSpectrogram","showTimeline","_s","currentTimeString","_u","fn","loaded","WaveSurfer","spectrogram","wsSpectogram","timeline","wsTimeline","cursor","wsCursor","urlEval","waveColorEval","progressColorEval","waveColor2Eval","progressColor2Eval","showSpectrogramEval","showTimelineEval","downloadableEval","deletableEval","splitChannelsEval","videoDataEval","wavesurfer","playing","played","totalDuration","currentTime","programaticallySeeking","callCorpPlayer","showingVideo","container","waveform","waveColor","progressColor","waveColor2","progressColor2","splitChannels","barHeight","xhr","requestHeaders","plugins","showTime","customShowTimeStyle","customStyle","wavetimeline","wavespectrogram","fftSamples","colorMap","load","getDuration","seconds","getCurrentTime","doAudioProcessActions","videoData","vi","callcorpplayer","togglePlay","playPause","deleteRecording","OnDeleteActions","Play","SeekTo","seekTo","GetDuration","Pause","OnFirstPlayActions","showVideo","videos","controlTime","AudioProcessActions","doAudioSeek","pctProgress","waveSurfer","lastIndexOf","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","SourceType","sourceData","subtitle","selectItem","rect","getBoundingClientRect","left","bottom","loadList","ClickActions","OpenOnClick","showList","keydown","choice","IsDropdownOpen","OpenDropdown","textfield","filterfields","sortfields","CloseDropdown","whiteSpace","slots","labelText","DebugTranslationPrefixSetting","menu_items","idx","sourceraw","sourceurl","badges","badgeEventKeys","SourceUrl","performBadgeAction","$watch_todisplay","Menus","DocumentCache","MenuData","MenuContent","cached_content","newval","getChildren","outargs","MenuItemData","MenuPath","Index","child","item_data","children","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","expn","tooltipexpr","Count","Key","badge","tooltipEval","tooltipPlacementEval","disabledEval","objectFitEval","sourcemodel","tooltipPlacement","TooltipPlacement","placement","legendPlacement","legendPlacementEval","LegendPlacement","color_fn","value_fn","ValueExpression","width_fn","WidthExpression","size_fn","SizeExpression","rotate","rotate_fn","RotateExpression","title_fn","sourcerawvalue","sourceurlvalue","xaxisCategories","xaxis","_this$controlData$Dat","dataLabels","DataLabels","Enabled","noData","nodata","align","verticalAlign","offsetX","fontSize","chart","stacked","IsStacked","stackType","StackType","toolbar","show","ShowToolbar","sparkline","EnableSparkLine","parentHeightOffset","grid","right","stroke","plotOptions","bar","horizontal","IsHorizontal","categories","ShowXAxisLabels","axisBorder","axisTicks","yaxis","ShowYAxisLabels","legend","horizontalAlign","LegendPositionAlign","LegendPositionOffset","LegendPosition","getContent","content_fn","Content","iconrenderer","iconpositioner","icongapeval","iconStyleEval","flipHorizontallyEval","flipVerticallyEval","borderEval","animationEval","colorEval","cssClassEval","tooltiprenderer","tooltipLocationEval","isDefaultEval","isdisabledeval","stopPropagationEval","isdisabledfailed","isActive","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","maxWidth","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","append","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","rules","performValidation","required","FieldValue","OnRenderData","IsVisible","condition","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","columns","template","rowMapped","colIndex","rowElements","flds","fld","cardClass","Container","Draggable","formitem","chosenitems","availableitems","loadComplete","addenabled","every","addLabel","addNewItem","mergeDefaultModel","reOrderItems","removedIndex","addedIndex","Tag","modelkeyroot","divide","nodrag","backgroundImage","selected_item","separator","active","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","querySelector","select","fieldAddonLeft","Rows","translatedhint","lookupurl","lookupraw","prependIconExpr","appendIconsExpr","isdisabledExpr","titleMap","enum","LookupURL","LookupInterpolatedExpression","DisplayType","LookupModelAs","ValueType","PrependIconExpression","AppendIconsExpression","IsDisabledExpression","lookupurlvalue","lookupurlvalue_watch$","lookuprawvalue","WatchForChanges","items_translated","DisplayField","ValueField","getItemValue","setItemValue","tmp","findIndex","isDisabledItem","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","find","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","fromEntries","lookupurl_watch$","lookupraw_watch$","tolookup","TitleMap","record","CacheLookupResult","allowsNull","$allows_null","allowCustom","AllowCustomInput","defaultAsEmpty","DefaultAsEmpty","NotFoundObj","keyup","AutoCompleteInput","_this$element$Control","listitems","_this$formatData","_this$formatData2","_this$formatData3","_this$formatData4","ccmodel","nameField","valueField","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","toggleAll","onInput","DropdownMultiSelectBase","_this$element$schema","_this$element$schema$","_this$element$formatD2","_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","getFullYear","getMonth","getDate","getHours","getMinutes","second","getSeconds","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","tab","$$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","parentNode","$destroy","innerHTML","refreshDropdown","queryStringUpdated","selectOption","shiftHighlight","RoosterCache","filterRoosterCache","acc","curr","doc","Tags","selectedItem","quickText","RichText","ContentChangedPlugin","EditPlugin","onChange","super","debounce","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","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","readOnlyEval","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","oldvalue","logSchema","model_watch$","applyFieldDefaults","conditions","applyObjectDefaults","generateDefaultModel","schemakey","extra","propertygrid","obj","populateDefaultTemplate","openclose","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","selectAll","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","valuefield","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","IsValid","debug_form","formfinal","noinputexpr","arraystartexpr","destroystrategyexpr","validationExpressions","watch_model","notify_object","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","newv","oldv","PublishField","vueSet","helpers","convertSetValueToVueSet","setValueFunction","modelChanged","showForm","checkModelValue","field_key","joinFieldKey","checkFormRequired","_this$schemaForm","_this$schemaForm$$ref","isvalid","schemaForm","feedback","ActionBroadcastDirection","Messages","MessageType","MessageGroup","saveSchemaForm","FormType","closeme","AgContentDef","dataGridRefName","gridcomponent","menu_is_open","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$","cdef","ContentDefs","contentdef","column_eval","cv","storageKey","cvObj","SelectableExpression","init_columns_visible","pg","performGridRefresh","performGridClearSelectedRows","AdditionalRowData","InitialValue","CacheReply","schemaraw_watch$","watch_date_value$","rowclass_watch$","dataGrid","useLocalStorage","$objectid","schemaurlvalue","SelectedRows","SelectedRowsAsArray","HasSelectedRows","GridColumns","_this$controlData$Hea","EnableFilter","ShowJumpto","performGridReset","getLeftGridHeaderControls","ClearSelectedRows","getGridHeaderControls","HideDefaultGridControls","sizeColumnsToFit","HeaderOptions","HideRefreshIcon","RefreshClicked","DisableGridMenu","ExportData","RestoreDefaults","togglePagination","getGridMenuColumnList","agColumnDefs","coldefs","checkboxVisible","headerCheckboxSelectionFilteredOnly","cd","calcCellValue","sortComparitor","colSortComparator","CellClassExpression","cellclassexpr","SearchOnlyVisibleColumns","getQuickFilterText","_params$value","colDef","hide","SortAndFilterTemplate","sortandfilterfunc","numberSortComparator","dataType","ActionOnlyColumn","comparator","autoHeight","AutoHeight","cellFilterFunc","CellFilterFunc","nullchecks","cellClass","Align","cellStyle","textAlign","suppressMenu","GridHeaderControls","LeftGridHeaderControls","LoadSchema","onSortChanged","RefreshActions","refreshCells","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","toggleColumnVisible","setColumnVisible","override","getRowClass","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","setSortModel","column_filters","filterObj","setFilterModel","rowSelectionChanged","onSaveGridSortState","getSortModel","onSaveGridColumnState","getColumnState","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","selectedCardId","imageMap","Bar","BarWithLine","Donut","Numeric","Table","tempList","getThumbnails","returnControl","highlightCard","card","ID","selectedCard","UserControl","widgetDefs","thumbnail","Image","BlankCard","getCardStyle","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","delay","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","displayExpn","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","Description","startKeyList","pageSize","initialKeyValue","SortDirection","AdditionalKeyFields","model_all","skipFirst","sortCol","descending","DisableSkipFirst","totalCount","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","dx","setFindText","resizer","resizeWidth","historybtn","alignSelf","navigateBack","tab_state","selected_tab_expr","selectionHistory","ActiveTabIndex","ListenForTabEvents","openTabAction","performRenameTab","closeTabAction","SelectedTab","changeTab","newValue","oldValue","$route","oldVal","UseRouter","RoutingName","matches","fullPath","matchAll","$router","SetActiveTabIndex","routingIndex","CloseActions","go","newIndex","TabTitle","tabtitle","RenameActions","varsobj","act","TabID","tabID","tabTitle","OnActivateActions","OnDeactivateActions","OpenActions","closeTab","useDark","DarkTheme","bgcolor","fgcolor","BackgroundColor","ForegroundColor","closeicon","tt","ShowCloseIcon","Orientation","dynamictabs","tabRenderCount","renderedTabs","DynamicTabsControl","dynamictabsexpn","activeTabIndex","sources","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","transform","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","addColumn","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","save","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","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","formatDate","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","revert","db","moddatetime","time","$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","toLocaleDateString","consolidateMessages","addDividers","resolveMessageNames","thisMessage","nextMessage","firstMessage","firstMessageKey","timestamp","firstDateDivider","lastDivider","messageIndex","isSameDay","isLaterDay","newDateString","dividerMessage","nextMsgIndex","interactionid","nd_data","lastMessage","date1","date2","scrollBottom","scrollArea","scrollTop","scrollHeight","setDateDisplay","messagesContainer","dateDividers","querySelectorAll","currentDivider","divider","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","iseditable","delay_expn","dashboard","selected_dashboard","numberOfCols","compact","istemplate","templateid","newproperties","dash_tabs","dash_loading","isEditableComputed","EditableExpression","isTemplateComputed","IsTemplate","RefreshFrequency","TemplateId","interval","theaction","lastSelectedDashboard","templateId","Layout","AllowPersonalDashboards","DefaultTemplates","Order","TemplateID","toggleEditing","locked","SaveActions","deleteDashboard","addWidget","cardDefinition","blocked","newItem","FilterId","_c$data","responseControl","_c$data2","DashboardPrompt","Metric","_this$dash_tabs$this$","_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$8","_this$dash_tabs$this$9","window_body","saveTabTitle","cancelEditTabTitle","editTabTitle","dashboardEditButtons","dashboardEditTitleAndSave","saveTab","cancelTab","dashboardListItems","_this$dash_tabs$this$7","allowTimeRenderer","timePickerIncrementRenderer","isDisabledRenderer","placeholderRenderer","allowFutureDateRenderer","publishedModel","ApplyActions","ClearActions","SetTimePicker","ToggleIsTimePicker","FutureDateLimit","PastDateLimit","ShowNotImplemented","umlEval","uml","selectedItemId","umls","Umls","refreshDiagram","doNotStandardizeUrl","topsvg","getElementsByClassName","bottomsvg","restore","zoom","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","updateFilter","filterChangedCallback","doesFilterPass","isFilterActive","getModel","setModel","CellButton","$$Condition","$$Icon","$$Color","$$Tooltip","rowMenuClick","menuOpenClose","OnMenuOpen","State","getEvaluationResults","Menu","Separator","$$displayexpn","menuicon","EnabledExpression","$$enabledexpn","$$iconexpn","$$iconcolorexpn","iconcolor","rowLinkClick","buttons","CommandButtons","DropdownFilter","column_defs_ready","EnableDynamicColumns","DynamicColumns","dynamicColumns","columnTemplates","toLookup","ColumnTemplates","prepareColumnDefs","dynamicColumnsValue","generateColumnDef","dc","default_visible","caption","column_defs","field_extractor","ItemModelName","def","_colDef$CommandButton","colData","colActionData","equals","isEqual","Lookup","displayExpr","valueExpr","displayfunc","valuefunc","transformer","lookup","dataSourceExpr","refData","dataSourceUrl","CacheResults","sorttemplate_expn","HeaderType","filterParams","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","Values","members","Members","editable","Locals","Enumerable","OrderBy","ToArray","topArea","mainArea","rightTopArea","rightBottomArea","recentsMenu","fileMenu","topMenuBar","scanAllMembers","loadProjectReferences","ProjectRefs","proj","saveSchemaFromMethod","blank_pointerdown","evt","unhighlight","cellView","attributes","Method","ImplementationKey","getWrapperSchema","getWrapperObject","getModelForIcon","cell_pointerup","cell_pointerdblclick","API","ownerid","projectName","$schema","Hidden","arg","ArgType","DefaultValue","Choices","LookupAPI","LookupAPIDisplayField","LookupAPIValueField","cell_pointerdown","loadFlowchart","item_ids","Item","m1","Rectangle","Left","Top","Right","Bottom","attr","fill","ObjectColor","rx","ry","strokeWidth","textWrap","addTo","fillOpacity","Links","graph_item","TargetID","appendLabel","distance","args","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","newString","TextType","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","z","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","handler","NextStateData","nextstatedataexpn","GetNextState","NextStatePathOverride","ExternalTransition","SetNextState","nextstatepath","$timeoutfunc","clearSenderEvents","handleEvent","getEventHandler","eventname","EnterActions","timeoutvalue","sendEvent","ExitActions","states_components","FinalState","componentchildren","child_references","isactive","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","fullname","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","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","units","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","shape","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","group","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","selected_items","selectableKey","column_visibility","arrayToObject","page","groupBy","groupDesc","mustSort","multiSort","RTEventSource","rteventsource_func","listNameExpn","Filters","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","cb","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","ReadOnly","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","userlist","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","AllUsers","_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","_item$Data","apiOptions","apikey","viewName","AddRealTimeMonitorView","refCount","RemoveRealTimeMonitorView","cacheViewName","existingView","responseBody","ResponseBody","textexpn","samlIssuer","issuerexpn","SAMLIssuer","onclick","popupManager","SAMLResponse","SearchText","debounceDelayEval","typingTimer","debounceDelay","DebounceDelay","SearchAction","SearchActions","$set","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","toggleConferenceModeClick","fromList","currentFrom","activeCallList","showDialpad","dialstringEnter","dialstringDown","dialstring","showingToList","toSelected","filteredToList","dtmfInput","dtmfHistory","senddtmf","callClicked","_b","callHSM","endConferenceClicked","joinConferenceClicked","conferenceMode","dropOut","endAllClicked","callcontrols","callControlClicked","holdrestore","conferenceMemberToggleMute","endOneCall","incomingCallFromSettings","showJoinConferenceDialog","moderatorNames","moderatorNamesEnter","elapsedTime","starttime","elapsedTimeAsString","result_compiled","default_text","result_expression","modelas","error_text","ElapsedTime","AsyncTextblock","conferenceStatus","toList","phoneTitle","widthToList","bleg_status","callerIdName","moderatorUserID","CoordinatingHSMName","ChildControlByName","test_Aleg_status","ALegHSM","phoneIcon","phoneColor","phoneIconTooltip","phoneClasses","doNotDisturbColor","DoNotDisturb","callButtonDisabled","generalCallControlsVisible","BLegHSMs","blegs","Call","getTitle","getSubtitle","getOriginal","agentInfo","_this$callHSM$Vars$AL","_this$callHSM$Vars$AL2","incomingAlerting","ParamByName","IncomingCall","canDropOut","loadFromList","loadToList","loadUserExtension","fromChanged","getToSubTitle","subTitle","isuser","integrationName","phonenumber","last_called","fromMenuInput","fromMenuVisible","UserExtension","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","selectToItem","searchdial","dialstringClick","showToList","dialstringChanged","AutoCompleteItems","dialPhone","dialstringUp","holdAndDialClicked","addCallClicked","blindTransferClicked","DialInfo","muteClicked","aleg","Muted","copySessionID","clipboard","writeText","alphaToDTMF","alpha","digit","startConferenceClicked","AsModerator","ModeratorName","ModeratorID","leaveConferenceClicked","Talking","callerid","acceptIncomingCall","declineIncomingCall","phoneSettingsIconClicked","PhoneSettingsActions","conferenceSettingsIconClicked","ConferenceSettingsActions","loadModeratorNamesFocused","loadModeratorNames","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","getChart","getData","visualization","Timeline","DataTable","drawChart","charts","setOnLoadCallback","removeError","LabelActions","chartReady","scrollWidth","draw","paddingHeight","testDiv","realHeight","getBBox","svgCount","chartHeight","rowLength","usefulHandler","rowLabels","thid","labelArray","acounter","sender","selectedRow","getSelection","arrayInfo","valueEval","expanded","autoOpenModal","editedString","originalValue","keyModel","textfailed","isPossibleHtml","textString","_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","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","stripHostIpsFromSdp","myPromise","replaceAll","newsdp","remoteStream","pc","in_call_id","audioId","sourceId","phoneCallOptions","onConnecting","cause","onHangup","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","AdvancedHistory","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","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","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","ex","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","flatMap","ianaToWindows_map","previous","current","windowsToIana_list","windowsToIana_map","ianaToWindows","ianaToWindowsTerritory","ianaSimilar","windowsToIana","windows","browserTimezone","DateTimeFormat","resolvedOptions","timeZone","timezoneMap","formatDateForLocale","dateTime","customerTimezone","formatHourOnlyDateTimeForLocale","getDateForLocale","displayDateInLocale","regionCodeToName","regionCode","careRegionCodeList","RegionCode","findMissingRegionCodes","countryToMetadata","phoneNumber","phoneNumberFormat","forceCustomerPhoneNumberFormat","isPossibleNumber","INTERNATIONAL","RFC3966","NATIONAL","countryCode","getCountryCodeOrDefault","regionCodes","getRegionCodesForCountryCode","newCopy","propertyByIndex","firstProperty","lastProperty","hours","minutes","durationSecondsAsStringWithHours","durationMinutesHoursSeconds","mins","round","elapsedTimeAsSeconds","serverTimeToClientTime","theDate","adjustedDate","clientTimeToServerTime","NUMBER_FORMATS","arg1","arg2","arg3","dateFromString","dateFromAbsoluteMilliseconds","ms","dateFromParts","dateAddSeconds","originaldate","dateAddMinutes","dateAddHours","dateAddDays","getISOWeekOfYear","dowOffset","newYear","getDay","weeknum","daynum","nYear","nday","getDateOfISOWeek","simple","dow","ISOweekStart","setDate","toInteger","toFloat","toObject","sum","v1","getField","v0","limit","skip","valuea","valueb","keyFunc","valueFunc","keyfield","allowmultiples","asarray","delimiter","toArray","arr","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","innerWidth","innerHeight","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","uid","ParentByIndex","FindDesigner","FindDesignerChildHsm","FindDesignerChildHsmStatements","ReturnType","ParentByName","ignoreerrors","returnparent","suppresserror","GetParentAt","paramDataFunc","ignoreErrors","ChildControlByType","PossibleChildControls","InputByName","SourceData","SourceKey","RowData","QueryString","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","getMilliseconds","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","initial","_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","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","okayButtonText","cancelButtonText","dialogButtons","regionCodeList","DEBUG","SHOWBASE","$vnode","LocationBrief","childWindows","controlCustomerID","additionalSecurityContext","securityContext","dispatchEvent","CustomEvent"],"mappings":"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AK,KACL88C,QAAS,CACL,CACIt+C,KAAM,aACNwB,IAAK,SAET,CACIxB,KAAM,QACNwB,IAAK,WAIjB,CACIxB,KAAM,SACNq+C,OAAQ,SACR78C,IAAK,KACL88C,QAAS,CACL,CACIt+C,KAAM,QACNwB,IAAK,WAIjB,CACIxB,KAAM,YACNq+C,OAAQ,YACR78C,IAAK,KACL88C,QAAS,CACL,CACIt+C,KAAM,WACNwB,IAAK,WAIjB,CACIxB,KAAM,YACNq+C,OAAQ,QACR78C,IAAK,MACL88C,QAAS,CACL,CACIt+C,KAAM,QACNwB,IAAK,SAET,CACIxB,KAAM,YACNwB,IAAK,YAIjB,CACIxB,KAAM,UACNq+C,OAAQ,SACR78C,IAAK,KACL88C,QAAS,CACL,CACIt+C,KAAM,QACNwB,IAAK,SAET,CACIxB,KAAM,SACNwB,IAAK,SAET,CACIxB,KAAM,QACNwB,IAAK,WAIjB,CACIxB,KAAM,UACNq+C,OAAQ,KACR78C,IAAK,KACL88C,QAAS,CACL,CACIt+C,KAAM,QACNwB,IAAK,SAET,CACIxB,KAAM,YACNwB,IAAK,SAET,CACIxB,KAAM,SACNwB,IAAK,WAIjB,CACIxB,KAAM,WACNq+C,OAAQ,WACR78C,IAAK,KACL88C,QAAS,CACL,CACIt+C,KAAM,UACNwB,IAAK,SAET,CACIxB,KAAM,yBACNwB,IAAK,WAIjB,CACIxB,KAAM,QACNq+C,OAAQ,UACR78C,IAAK,KACL88C,QAAS,CACL,CACIt+C,KAAM,UACNwB,IAAK,WAIjB,CACIxB,KAAM,SACNq+C,OAAQ,QACR78C,IAAK,KACL88C,QAAS,CACL,CACIt+C,KAAM,UACNwB,IAAK,SAET,CACIxB,KAAM,YACNwB,IAAK,WAIjB,CACIxB,KAAM,QACNq+C,OAAQ,aACR78C,IAAK,KACL88C,QAAS,CACL,CACIt+C,KAAM,UACNwB,IAAK,SAET,CACIxB,KAAM,cACNwB,IAAK,WAIjB,CACIxB,KAAM,UACNwB,IAAK,KACL88C,QAAS,CACL,CACIt+C,KAAM,YACNwB,IAAK,SAET,CACIxB,KAAM,SACNwB,IAAK,SAET,CACIxB,KAAM,QACNwB,IAAK,SAET,CACIxB,KAAM,UACNwB,IAAK,SAET,CACIxB,KAAM,QACNwB,IAAK,SAET,CACIxB,KAAM,cACNwB,IAAK,SAET,CACIxB,KAAM,cACNwB,IAAK,SAET,CACIxB,KAAM,YACNwB,IAAK,SAET,CACIxB,KAAM,eACNwB,IAAK,SAET,CACIxB,KAAM,iBACNwB,IAAK,SAET,CACIxB,KAAM,gBACNwB,IAAK,WAIjB,CACIxB,KAAM,WACNq+C,OAAQ,QACR78C,IAAK,KACL88C,QAAS,CACL,CACIt+C,KAAM,UACNwB,IAAK,WAIjB,CACIxB,KAAM,WACNq+C,OAAQ,WACR78C,IAAK,MACL88C,QAAS,CACL,CACIt+C,KAAM,cACNwB,IAAK,YAIjB,CACIxB,KAAM,UACNq+C,OAAQ,QACR78C,IAAK,KACL88C,QAAS,CACL,CACIt+C,KAAM,UACNwB,IAAK,WAIjB,CACIxB,KAAM,SACNq+C,OAAQ,WACR78C,IAAK,KACL88C,QAAS,CACL,CACIt+C,KAAM,UACNwB,IAAK,SAET,CACIxB,KAAM,SACNwB,IAAK,SAET,CACIxB,KAAM,SACNwB,IAAK,SAET,CACIxB,KAAM,aACNwB,IAAK,SAET,CACIxB,KAAM,cACNwB,IAAK,WAIjB,CACIxB,KAAM,SACNq+C,OAAQ,UACR78C,IAAK,KACL88C,QAAS,CACL,CACIt+C,KAAM,UACNwB,IAAK,SAET,CACIxB,KAAM,UACNwB,IAAK,SAET,CACIxB,KAAM,UACNwB,IAAK,SAET,CACIxB,KAAM,gBACNwB,IAAK,SAET,CACIxB,KAAM,aACNwB,IAAK,SAET,CACIxB,KAAM,cACNwB,IAAK,WAKjB,CACIxB,KAAM,WACNq+C,OAAQ,WACR78C,IAAK,KACL88C,QAAS,CACL,CACIt+C,KAAM,QACNwB,IAAK,WAIjB,CACIxB,KAAM,WACNq+C,OAAQ,cACR78C,IAAK,KACL88C,QAAS,CACL,CACIt+C,KAAM,UACNwB,IAAK,WAIjB,CACIxB,KAAM,QACNq+C,OAAQ,WACR78C,IAAK,KACL88C,QAAS,CACL,CACIt+C,KAAM,SACNwB,IAAK,SAET,CACIxB,KAAM,SACNwB,IAAK,WAIjB,CACIxB,KAAM,WACNq+C,OAAQ,UACR78C,IAAK,KACL88C,QAAS,CACL,CACIt+C,KAAM,QACNwB,IAAK,WAIjB,CACIxB,KAAM,SACNq+C,OAAQ,QACR78C,IAAK,KACL88C,QAAS,CACL,CACIt+C,KAAM,SACNwB,IAAK,WAIjB,CACIxB,KAAM,QACNq+C,OAAQ,SACR78C,IAAK,KACL88C,QAAS,CACL,CACIt+C,KAAM,QACNwB,IAAK,WAIjB,CACIxB,KAAM,YACNq+C,OAAQ,SACR78C,IAAK,KACL88C,QAAS,CACL,CACIt+C,KAAM,UACNwB,IAAK,WAIjB,CACIxB,KAAM,YACNq+C,OAAQ,WACR78C,IAAK,KACL88C,QAAS,CACL,CACIt+C,KAAM,UACNwB,IAAK,WAIjB,CACIxB,KAAM,aACNq+C,OAAQ,YACR78C,IAAK,KACL88C,QAAS,CACL,CACIt+C,KAAM,YACNwB,IAAK,WAIjB,CACIxB,KAAM,UACNq+C,OAAQ,WACR78C,IAAK,KACL88C,QAAS,CACL,CACIt+C,KAAM,QACNwB,IAAK,SAET,CACIxB,KAAM,cACNwB,IAAK,WAIjB,CACIxB,KAAM,WACNq+C,OAAQ,MACR78C,IAAK,KACL88C,QAAS,CACL,CACIt+C,KAAM,QACNwB,IAAK,WAIjB,CACIxB,KAAM,UACNq+C,OAAQ,QACR78C,IAAK,KACL88C,QAAS,CACL,CACIt+C,KAAM,QACNwB,IAAK,WAIjB,CACIxB,KAAM,SACNq+C,OAAQ,MACR78C,IAAK,KACL88C,QAAS,CACL,CACIt+C,KAAM,cACNwB,IAAK,SAET,CACIxB,KAAM,cACNwB,IAAK,WAIjB,CACIxB,KAAM,UACNq+C,OAAQ,WACR78C,IAAK,KACL88C,QAAS,CACL,CACIt+C,KAAM,SACNwB,IAAK,WAIjB,CACIxB,KAAM,aACNq+C,OAAQ,WACR78C,IAAK,KACL88C,QAAS,CACL,CACIt+C,KAAM,YACNwB,IAAK,WAIjB,CACIxB,KAAM,aACNq+C,OAAQ,aACR78C,IAAK,KACL88C,QAAS,CACL,CACIt+C,KAAM,YACNwB,IAAK,WAIjB,CACIxB,KAAM,QACNq+C,OAAQ,SACR78C,IAAK,KACL88C,QAAS,CACL,CACIt+C,KAAM,SACNwB,IAAK,SAET,CACIxB,KAAM,WACNwB,IAAK,SAET,CACIxB,KAAM,YACNwB,IAAK,WAIjB,CACIxB,KAAM,YACNq+C,OAAQ,SACR78C,IAAK,KACL88C,QAAS,CACL,CACIt+C,KAAM,QACNwB,IAAK,WAIjB,CACIxB,KAAM,UACNq+C,OAAQ,QACR78C,IAAK,KACL88C,QAAS,CACL,CACIt+C,KAAM,QACNwB,IAAK,WAIjB,CACIxB,KAAM,UACNq+C,OAAQ,UACR78C,IAAK,KACL88C,QAAS,CACL,CACIt+C,KAAM,QACNwB,IAAK,WAIjB,CACIxB,KAAM,YACNq+C,OAAQ,aACR78C,IAAK,KACL88C,QAAS,CACL,CACIt+C,KAAM,WACNwB,IAAK,WAIjB,CACIxB,KAAM,UACNq+C,OAAQ,aACR78C,IAAK,KACL88C,QAAS,CACL,CACIt+C,KAAM,UACNwB,IAAK,WAIjB,CACIxB,KAAM,SACNq+C,OAAQ,SACR78C,IAAK,KACL88C,QAAS,CACL,CACIt+C,KAAM,QACNwB,IAAK,WAIjB,CACIxB,KAAM,mBACNq+C,OAAQ,SACR78C,IAAK,KACL88C,QAAS,CACL,CACIt+C,KAAM,SACNwB,IAAK,WAIjB,CACIxB,KAAM,YACNq+C,OAAQ,QACR78C,IAAK,KACL88C,QAAS,CACL,CACIt+C,KAAM,SACNwB,IAAK,WAIjB,CACIxB,KAAM,SACNq+C,OAAQ,SACR78C,IAAK,KACL88C,QAAS,CACL,CACIt+C,KAAM,SACNwB,IAAK,WAIjB,CACIxB,KAAM,aACNq+C,OAAQ,YACR78C,IAAK,KACL88C,QAAS,CACL,CACIt+C,KAAM,SACNwB,IAAK,SAET,CACIxB,KAAM,WACNwB,IAAK,WAIjB,CACIxB,KAAM,WACNq+C,OAAQ,SACR78C,IAAK,KACL88C,QAAS,CACL,CACIt+C,KAAM,UACNwB,IAAK,SAET,CACIxB,KAAM,UACNwB,IAAK,WAIjB,CACIxB,KAAM,UACNq+C,OAAQ,UACR78C,IAAK,KACL88C,QAAS,CACL,CACIt+C,KAAM,SACNwB,IAAK,SAET,CACIxB,KAAM,aACNwB,IAAK,SAET,CACIxB,KAAM,aACNwB,IAAK,SAET,CACIxB,KAAM,UACNwB,IAAK,SAET,CACIxB,KAAM,SACNwB,IAAK,SAET,CACIxB,KAAM,UACNwB,IAAK,WAIjB,CACIxB,KAAM,UACNq+C,OAAQ,SACR78C,IAAK,KACL88C,QAAS,CACL,CACIt+C,KAAM,uBACNwB,IAAK,cAET,CACIxB,KAAM,aACNwB,IAAK,cAET,CACIxB,KAAM,SACNwB,IAAK,cAET,CACIxB,KAAM,SACNwB,IAAK,SAET,CACIxB,KAAM,SACNwB,IAAK,gBAIjB,CACIxB,KAAM,SACNq+C,OAAQ,aACR78C,IAAK,KACL88C,QAAS,CACL,CACIt+C,KAAM,WACNwB,IAAK,WAIjB,CACIxB,KAAM,YACNq+C,OAAQ,cACR78C,IAAK,KACL88C,QAAS,CACL,CACIt+C,KAAM,WACNwB,IAAK,WAIjB,CACIxB,KAAM,UACNq+C,OAAQ,UACR78C,IAAK,KACL88C,QAAS,CACL,CACIt+C,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,KA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","file":"js/app.489c3b52.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-2d0aa621\":\"0fc23420\",\"chunk-2d0c8c13\":\"c274f259\"}[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 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;","/*!\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}])}));","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};","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\";","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 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 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 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};","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=3a4abc16&prod&lang=css&\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./debugDialog.vue?vue&type=style&index=0&id=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 // NEED TO MAKE THIS DYNAMIC FOR CURRENCY CODE\r\n // FOR NOW USD WILL BE FINE \r\n\r\n var formatter = new Intl.NumberFormat(appSettings.LocaleKey, {\r\n style: 'currency',\r\n currency: 'USD'\r\n });\r\n return formatter.format(value);\r\n },\r\n}\r\n\r\n//return f_number(ParentByName('maincontainer').Vars.DisplayTime == 0 ? (util.durationSecondsAsString(RowData().TotalDuration)) : (((RowData().TotalDuration) / 60), 2));\r\n\r\nexport default filters;","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SoftPhone.vue?vue&type=style&index=0&id=bd8b1d66&prod&scoped=true&lang=css&\"","/*\r\n Product maintains a list of colors for this file at https://docs.google.com/spreadsheets/d/143ehmL_jT0D6cjzJzHrF74hW0NlQPWh2XgX64wBLHcQ/edit#gid=0\r\n This is meant to allow the designers, product, and developers to all view the same color reference.\r\n Colors listed below must stay in sync with this file in order to yield expected results.\r\n Also verify list with CSSVariables.prj > GetColorNames\r\n Should be the same in vue and standaloneagent\r\n*/\r\nexport default {\r\n /* Text */\r\n primaryText: '#28283C',\r\n secondaryText: '#828294',\r\n tertiaryText: '#A6A6B6',\r\n stateText: '#C8C8DC',\r\n\r\n primary: '#2c92ff',\r\n primaryActive: '#187EEB',\r\n\r\n /* Controls */\r\n header: '#28283C',\r\n navigation: '#3c3c4f',\r\n accent: '#82B1FF',\r\n error: '#ef4a41',\r\n destructive: '#ef4a41',\r\n lightgrey: '#828296',\r\n lightGreyBorder: '#6E6E82',\r\n stateBackground: '#3C3C50',\r\n lightBlueBackground: '#505064',\r\n darkGreyIcon: '#A6A6B6',\r\n\r\n /* Bootstrap Variables. Pending name and color verification from designer */\r\n blue: '#2C92FF',\r\n green: '#4AB574',\r\n yellow: '#FFDE51',\r\n red: '#EF4A41',\r\n cyan: '#E3EEFE',\r\n success: '#4AB574',\r\n danger: '#EF4A41',\r\n warning: '#FFDE51',\r\n info: '#2c92ff',\r\n lightGrey: '#828296',\r\n extraLightGrey: '#fafafa',\r\n white: '#FFF',\r\n black: '#000',\r\n blueExtraLight: '#FAFAFA',\r\n lightGreyHover: '#5e5e6d',\r\n\r\n /* Dashboard */\r\n asa: '#2C92FF',\r\n att: '#702CFF',\r\n awrapt: '#0155A3',\r\n\r\n /* Phone */\r\n sentmessage: '#d5e9ff',\r\n altsentmessage: '#dcf7c3',\r\n wrapup: '#0155A3',\r\n multiples: '#702CFF',\r\n inbound: '#2C92FF',\r\n outbound: '#E07A1A',\r\n ready: '#4ab574',\r\n notready: '#ef4a41',\r\n fullcapacity: '#FFDE51',\r\n receivedmessage: '#F0F0F0',\r\n\r\n /* Not Ready States */\r\n notready1: '#ef4a41', /* same as notready */\r\n notready2: '#d7433b',\r\n notready3: '#bf3b34',\r\n notready4: '#a7342e',\r\n notready5: '#8f2c27',\r\n notready6: '#782521',\r\n notready7: '#601e1a',\r\n notready8: '#481613',\r\n notready9: '#300f0d',\r\n\r\n /* Chart States */\r\n busy: '#828296',\r\n linked: '#2C92FF',\r\n transfer: '#0155A3',\r\n reading: '#702CFF',\r\n unlinked: '#0155A3',\r\n composing: '#E07A1A',\r\n starting: '#828296',\r\n chatting: '#702CFF',\r\n hold: '#0155A3',\r\n answered: '#2C92FF',\r\n pending: '#828296',\r\n\r\n /* User States */\r\n userState1: '#FFDE51',\r\n userState2: '#EDA926',\r\n userState3: '#E07A1A',\r\n userState4: '#D5562E',\r\n userState5: '#B5322C',\r\n userState6: '#7D1D4E',\r\n userState7: '#8D6FCC',\r\n userState8: '#702CFF',\r\n userState9: '#3B02B6',\r\n userState10: '#78B3F0',\r\n userState11: '#4994EC',\r\n userState12: '#0155A3',\r\n userState13: '#74CDDE',\r\n userState14: '#4DA8BE',\r\n userState15: '#39818D'\r\n}","export default {\r\n primaryText: '#242424',\r\n secondaryText: '#424242',\r\n tertiarytext: '#616161',\r\n\r\n primary: '#6264A7',\r\n primaryActive: '#494B83',\r\n\r\n header: '#464775',\r\n stateBackground: '#3D3E66',\r\n lightBlueBackground: '#3D3E66',\r\n \r\n}","import Vue from 'vue';\nimport Vuetify from 'vuetify/lib/framework';\nimport defaultTheme from '@/plugins/themes/DefaultTheme';\nimport msTeamsTheme from '@/plugins/themes/MSTeamsTheme';\nimport * as VuetifyComponents from 'vuetify/lib/components';\nimport * as VuetifyDirectives from 'vuetify/lib/directives';\nimport * as VuetifyColors from 'vuetify/lib/util/colors';\n\nVue.use(Vuetify, {\n components: {\n ...VuetifyComponents,\n },\n directives: VuetifyDirectives,\n colors: VuetifyColors\n});\n\nlet themes = {\n defaultTheme,\n msTeamsTheme\n};\n\nexport default {\n instance: new Vuetify({\n theme: {\n options: { \n customProperties: true, \n variations: false \n },\n themes: {\n light: defaultTheme\n \n },\n currenttheme: \"\",\n },\n breakpoint: {\n thresholds: {\n sm: 625,\n },\n },\n }),\n getTheme(name) {\n let check = (name) ? name : this.instance.framework.theme.currenttheme;\n if (this.instance.framework.theme.themes[check])\n return this.instance.framework.theme.themes[check];\r\n\r\n return this.instance.framework.theme.themes[this.instance.framework.theme.currenttheme];\r\n },\n setTheme(name) {\n this.instance.framework.theme.themes.light = { ...this.instance.framework.theme.themes.light, ...themes[name] };\n },\n importWhiteLabelSettings(settings, currentthemename) {\n this.instance.framework.theme.currenttheme = currentthemename || \"light\";\n themes.whiteLabel = JSON.parse(settings.ColorVariables);\n this.setTheme('whiteLabel');\n }\n}\n","var render = function render(){var _vm=this,_c=_vm._self._c;return (_vm.show)?_c('v-app',{staticStyle:{\"height\":\"100%\",\"overflow\":\"hidden\"}},[_c('dialog-listener'),_c('action-service'),_c('start-application',{attrs:{\"route\":_vm.currentRoute,\"query\":_vm.queryString,\"path\":_vm.pathname},on:{\"start-application-created\":_vm.createServices}})],1):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Vue from 'vue';\r\nimport Vuetify from 'vuetify';\r\nimport EventBus from './event-bus.js';\r\nimport utils from '../Shared/utils.jsx';\r\n\r\nVue.component('authenticate', {\r\n data: () => ({\r\n e1: true,\r\n state: 'credentials',\r\n base_uri: 'https://api.callcorplab.com',\r\n username: '',\r\n password: '',\r\n showerror: false,\r\n error_message: '',\r\n items: [\r\n 'https://api.callcorplab.com',\r\n 'https://api-staging.callcorplab.com',\r\n 'https://api.total.care'\r\n ],\r\n context_list: [],\r\n }),\r\n props: {\r\n root: null,\r\n confirm: null,\r\n cancel: null,\r\n },\r\n mounted() {\r\n var credentials = localStorage['credentials'];\r\n if (credentials) {\r\n var credentials_obj = JSON.parse(credentials);\r\n if (credentials_obj.ProviderType == 'Native' || credentials_obj.ProviderType == '.CARE') {\r\n this.username = credentials_obj.UniqueID;\r\n this.password = credentials_obj.Password;\r\n }\r\n }\r\n var last_baseuri = localStorage['base_uri'];\r\n if (last_baseuri) {\r\n this.base_uri = last_baseuri;\r\n }\r\n },\r\n methods: {\r\n sync(prop, value) {\r\n this[prop] = value;\r\n\r\n if (prop == 'base_uri') {\r\n // localStorage is just so we don't have to keep typing it every time we reload this page\r\n localStorage['base_uri'] = value;\r\n\r\n // sessionStorage is what the Vue app will use for apis\r\n sessionStorage['base_uri'] = value;\r\n }\r\n },\r\n async confirm_validate() {\r\n var authargs = {\r\n ProviderType: 'Native',\r\n UniqueID: this.username,\r\n Password: this.password,\r\n MFAToken: 'KADgy96n02eTtRjHTLOyqDE/MmXfNYXzjsXIDWRijcp9N9yxToZjmbXtPdvOgqyoWunIz7KIHYekJwO8M63r02bv/SNbHW3/M9S75oyqIZhcMToXZd1MojTbMbuTWdRy5RfqMzdNUArWROL6KGC/tBC7qElr7s1pshjD9NkBqJx/TQUTOB28z9ze3WF6YKH3vnVopE1SuCjYITlp6oAK9Q==',\r\n };\r\n\r\n sessionStorage.removeItem('access_token');\r\n sessionStorage['base_uri'] = this.base_uri;\r\n\r\n try {\r\n const res = await utils.api.request('POST', 'Apps/AuthenticateExt', authargs);\r\n if (res.success) {\r\n if (authargs.ProviderType == 'Native' || authargs.ProviderType == '.CARE')\r\n localStorage['credentials'] = JSON.stringify(authargs);\r\n\r\n this.access_token = res.access_token;\r\n this.refresh_token = res.refresh_token;\r\n\r\n sessionStorage.setItem('access_token', this.access_token);\r\n\r\n this.context_list = [];\r\n for (var i = 0; i < res.user_list.length; ++i) {\r\n const user = res.user_list[i];\r\n const ctx = {\r\n type: 'user',\r\n name: user.FirstName + ' ' + user.LastName,\r\n id: user.userid,\r\n contexts: [],\r\n };\r\n this.context_list.push(ctx);\r\n\r\n for (var j = 0; j < user.SecurityContexts.length; j++) {\r\n const context = user.SecurityContexts[j];\r\n if (context.SecurityContextTypeID == 'Customer') {\r\n utils.log('context: ' + JSON.stringify(context));\r\n ctx.contexts.push({\r\n Name: context.Name,\r\n UserSecurityContextID: context.UserSecurityContextID,\r\n SecurityContextTypeID: context.SecurityContextTypeID,\r\n });\r\n }\r\n }\r\n }\r\n this.state = 'choosecarecenter';\r\n }\r\n else {\r\n this.error_message = 'Credentials Invalid';\r\n this.showerror = true;\r\n }\r\n }\r\n catch (e) {\r\n // Inform of the error\r\n this.error_message = e;\r\n this.showerror = true;\r\n }\r\n },\r\n async selectContext(userSecurityContextID) {\r\n const uri = 'Apps/SecurityContext/Add?userSecurityContextID=' + userSecurityContextID;\r\n const res = await utils.api.get(uri);\r\n\r\n this.access_token = res.access_token;\r\n this.root.setTokens(this.access_token, this.refresh_token, res.expires_in);\r\n\r\n this.state = 'credentials';\r\n this.confirm();\r\n },\r\n },\r\n render(h) {\r\n let content;\r\n switch (this.state) {\r\n case 'credentials':\r\n content = (\r\n \r\n \r\n Logon\r\n \r\n\r\n \r\n Please enter your credentials\r\n \r\n\r\n \r\n this.sync('username', value)}>\r\n \r\n (this.e1 = !this.e1)}\r\n type={this.e1 ? 'password' : 'text'}\r\n value={this.password}\r\n on-input={(value) => this.sync('password', value)}>\r\n \r\n this.sync('base_uri', e.target ? e.target.value : e)}\r\n >\r\n \r\n \r\n \r\n Confirm\r\n Cancel\r\n \r\n \r\n {this.error_message}\r\n \r\n \r\n );\r\n break;\r\n\r\n case 'choosecarecenter':\r\n const items = [];\r\n for (let i = 0; i < this.context_list.length; i++) {\r\n const ctx = this.context_list[i];\r\n if (ctx.type == 'user') {\r\n for (let j = 0; j < ctx.contexts.length; j++) {\r\n const context = ctx.contexts[j];\r\n items.push(\r\n this.selectContext(context.UserSecurityContextID)}>\r\n\r\n \r\n mdi mdi-earth\r\n \r\n\r\n \r\n {context.Name}\r\n {ctx.name}\r\n \r\n \r\n );\r\n // title> class=\"grey--text text--darken-4\"\r\n\r\n if (j < ctx.contexts.length - 1)\r\n items.push()\r\n }\r\n }\r\n }\r\n content = (\r\n \r\n Choose your Call Center\r\n
\r\n \r\n {items}\r\n \r\n
\r\n \r\n \r\n Cancel\r\n \r\n
\r\n );\r\n break;\r\n }\r\n\r\n\r\n return content;\r\n }\r\n});","import Vue from 'vue';\r\nimport Vuetify from 'vuetify';\r\nimport utils from '../../../Shared/utils.jsx';\r\n\r\nVue.component('input-dialog', {\r\n data: () => ({\r\n value: '',\r\n }),\r\n props: {\r\n root: null,\r\n okay: null,\r\n cancel: null,\r\n accept: null,\r\n title: '',\r\n label: '',\r\n default_value: null,\r\n },\r\n mounted() {\r\n if (this.default_value)\r\n this.value = this.default_value;\r\n },\r\n methods: {\r\n confirm() {\r\n this.okay();\r\n this.accept(this.value);\r\n }\r\n },\r\n render(h) {\r\n let content = (\r\n \r\n {this.title}\r\n \r\n this.value = value}>\r\n \r\n \r\n \r\n \r\n OK\r\n Cancel\r\n \r\n \r\n ); \r\n\r\n return content;\r\n }\r\n});","import Vue from 'vue';\r\nimport Vuetify from 'vuetify';\r\nimport EventBus from './event-bus.js';\r\nimport auth from './authenticate.jsx';\r\nimport inputdialog from './components/vuecontrols/inputdialog.jsx';\r\nimport dialogBasicModal from './components/actions/DialogBasicModal.jsx';\r\n\r\nexport default Vue.component('dialog-listener', {\r\n data: () => ({\r\n visible1: false,\r\n title: 'Test',\r\n body: 'More test',\r\n payload1: null,\r\n success: true,\r\n result: null,\r\n }),\r\n props: {\r\n\r\n },\r\n created() {\r\n console.log('dialog-listener waiting for SHOW_DIALOG');\r\n\r\n // \"this\" within the $on function does not refer to the Vue component. We must keep a reference separate.\r\n const dialog = this;\r\n\r\n EventBus.$on('SHOW_DIALOG', function (payLoad) {\r\n console.log('dialog-listener SHOW_DIALOG triggered');\r\n\r\n payLoad.componentOptions.propsData.okay = dialog.confirm;\r\n payLoad.componentOptions.propsData.cancel = dialog.cancel;\r\n\r\n dialog.payload1 = payLoad;\r\n dialog.visible1 = true;\r\n });\r\n\r\n EventBus.$on('LOGON', function (payLoad) {\r\n console.log('dialog-listener LOGON triggered');\r\n\r\n dialog.payload1 = ;\r\n\r\n dialog.visible1 = true;\r\n });\r\n\r\n EventBus.$on('DISPLAY_BASIC_MODAL', function (action, context) {\r\n console.log('dialog-listener DISPLAY_BASIC_MODAL triggered');\r\n\r\n dialog.payload1 = (\r\n \r\n \r\n );\r\n dialog.visible1 = true;\r\n });\r\n\r\n EventBus.$on('CLOSE_DIALOG', function (success, result) {\r\n console.log('dialog-listener CLOSE_DIALOG triggered: success:' + (success ? 'true':'false') + ', result:' + JSON.stringify(result));\r\n dialog.success = success;\r\n dialog.result = result;\r\n dialog.visible1 = false;\r\n });\r\n },\r\n methods: {\r\n confirm() {\r\n this.visible1 = false;\r\n },\r\n cancel() {\r\n this.visible1 = false;\r\n }\r\n },\r\n render(h) {\r\n console.log('Rendering dialog... visible1: ' + this.visible1);\r\n //if (!this.visible)\r\n // return null;\r\n\r\n return (\r\n
\r\n \r\n {this.payload1}\r\n \r\n \r\n {this.payload2}\r\n \r\n \r\n {this.payload3}\r\n \r\n \r\n {this.payload4}\r\n \r\n
\r\n );\r\n }\r\n});","import Vue from 'vue';\r\n\r\nVue.component('resize-observer', {\r\n methods: {\r\n notify() {\r\n this.$emit('notify')\r\n },\r\n addResizeHandlers() {\r\n this._resizeObject.contentDocument.defaultView.addEventListener('resize', this.notify)\r\n if (this._w !== this.$el.offsetWidth || this._h !== this.$el.offsetHeight) {\r\n this.notify()\r\n }\r\n },\r\n removeResizeHandlers() {\r\n if (this._resizeObject && this._resizeObject.onload) {\r\n if (this._resizeObject.contentDocument) {\r\n this._resizeObject.contentDocument.defaultView.removeEventListener('resize', this.notify)\r\n }\r\n delete this._resizeObject.onload\r\n }\r\n },\r\n },\r\n mounted() {\r\n this.$nextTick(() => {\r\n this._w = this.$el.offsetWidth\r\n this._h = this.$el.offsetHeight\r\n })\r\n const object = document.createElement('object')\r\n this._resizeObject = object\r\n object.setAttribute('style', 'display: block; position: absolute; top: 0; left: 0; height: 100%; width: 100%; overflow: hidden; pointer-events: none; z-index: -1;')\r\n object.setAttribute('aria-hidden', 'true')\r\n object.onload = this.addResizeHandlers\r\n object.type = 'text/html'\r\n object.data = 'about:blank'\r\n this.$el.appendChild(object)\r\n },\r\n beforeDestroy() {\r\n this.removeResizeHandlers()\r\n },\r\n render(e) {\r\n return
;\r\n }\r\n});","import Vue from 'vue';\r\nimport ResizeObserver from './ResizeObserver.jsx';\r\nimport utils from '@/Shared/utils.jsx';\r\n\r\nconst cloneDeep = require('lodash.clonedeep')\r\n\r\nVue.component('ace-editor', {\r\n //template: '
',\r\n props: {\r\n editorId: {\r\n type: String,\r\n default: ''\r\n },\r\n content: {\r\n type: String,\r\n default: ''\r\n },\r\n lang: {\r\n type: String,\r\n default: 'text'\r\n },\r\n theme: {\r\n type: String,\r\n default: 'github'\r\n },\r\n readOnly: {\r\n type: Boolean,\r\n default: false\r\n }\r\n },\r\n data() {\r\n return {\r\n uniqueid: null,\r\n uiAceOptions: {},\r\n editor: Object,\r\n model: null,\r\n beforeContent: '',\r\n hasfocus: false,\r\n }\r\n },\r\n created() {\r\n this.uniqueid = utils.generateUUID();\r\n },\r\n methods: {\r\n gotoLine(row, column) {\r\n this.editor.gotoLine(row, column, false);\r\n },\r\n beautify(doAppy) {\r\n utils.log(\"beautify()\");\r\n let output;\r\n\r\n if (this.lang == \"json\") { // this.uiAceOptions.mode == \"json\") {\r\n output = JSON.stringify(JSON.parse(this.model), null, \"\\t\");\r\n }\r\n else {\r\n var opts = {\r\n indent_size: 1,\r\n indent_char: '\\t',\r\n max_preserve_newlines: 5,\r\n preserve_newlines: true,\r\n keep_array_indentation: false,\r\n break_chained_methods: false,\r\n indent_scripts: \"normal\",\r\n brace_style: \"expand\", // \"expand\", end-expand, \"collapse\"\r\n space_before_conditional: true,\r\n unescape_strings: false,\r\n jslint_happy: true,\r\n end_with_newline: false,\r\n wrap_line_length: \"0\",\r\n indent_inner_html: true,\r\n comma_first: false,\r\n e4x: false\r\n };\r\n\r\n if (this.uiAceOptions.mode == \"css\") {\r\n output = this.model; //this.css_beautify(this.model, opts);\r\n }\r\n else if (this.looks_like_html(this.model)) {\r\n output = this.model; // this.html_beautify(this.model, opts);\r\n }\r\n else {\r\n output = this.unpacker_filter(this.model); // detect-packers (optional)\r\n output = this.model; // this.js_beautify(this.model, opts);\r\n }\r\n }\r\n\r\n if (doAppy) // if the CTRL-SHIFT-F is pressed to reformat - it is trapped outside angular and therefore need to be wrapped in $apply\r\n {\r\n //Vue.nextTick(function () {\r\n this.saveEditorPositionAndFoldInfo();\r\n this.model = output;\r\n this.editor.setValue(this.model, 1);\r\n this.restoreEditorPositionAndFoldInfo();\r\n //});\r\n }\r\n else {\r\n this.model = output;\r\n }\r\n },\r\n saveEditorPositionAndFoldInfo() {\r\n this.savedFoldData = cloneDeep(this.editor.session.$foldData);\r\n this.savedScrollTop = this.editor.session.getScrollTop();\r\n this.savedCursorPosition = this.editor.session.selection.getCursor();\r\n },\r\n restoreEditorPositionAndFoldInfo() {\r\n const c = this;\r\n Vue.nextTick(function () {\r\n // before restoring the fold data as was, the rows may have changed when reformatting was applied, so we need to verify that the collapsable rows are still collapsable\r\n let verifiedFoldData = c.verifyFoldData(c.savedFoldData);\r\n c.addVerifiedFolds(verifiedFoldData);\r\n\r\n c.editor.session.selection.moveCursorTo(c.savedCursorPosition.row, c.savedCursorPosition.column);\r\n c.editor.session.setScrollTop(c.savedScrollTop);\r\n });\r\n },\r\n verifyFoldData(foldData) {\r\n let verifiedFoldData = [];\r\n\r\n for (let x = 0; x < foldData.length; x++) {\r\n let foldRange = foldData[x].range;\r\n\r\n // Validate that the fold range is still good\r\n let foldWidget = this.editor.session.getFoldWidget(foldRange.start.row);\r\n if (foldWidget == \"start\") {\r\n let foldWidgetRange = this.editor.session.getFoldWidgetRange(foldRange.start.row);\r\n verifiedFoldData.push(foldWidgetRange);\r\n }\r\n }\r\n\r\n return verifiedFoldData;\r\n },\r\n addVerifiedFolds(verifiedFoldData) {\r\n for (let x = 0; x < verifiedFoldData.length; x++) {\r\n this.editor.session.addFold(\"...\", verifiedFoldData[x])\r\n }\r\n },\r\n unpacker_filter(source) {\r\n let trailing_comments = '',\r\n comment = '',\r\n unpacked = '',\r\n found = false;\r\n\r\n // cut trailing comments\r\n do {\r\n found = false;\r\n if (/^\\s*\\/\\* /.test(source)) {\r\n found = true;\r\n comment = source.substr(0, source.indexOf('*/') + 2);\r\n source = source.substr(comment.length).replace(/^\\s+/, '');\r\n trailing_comments += comment + \"\\n\";\r\n }\r\n else if (/^\\s*\\/\\//.test(source)) {\r\n found = true;\r\n comment = source.match(/^\\s*\\/\\/.*/)[0];\r\n source = source.substr(comment.length).replace(/^\\s+/, '');\r\n trailing_comments += comment + \"\\n\";\r\n }\r\n } while (found);\r\n\r\n let unpackers = [P_A_C_K_E_R, Urlencoded, /*JavascriptObfuscator,*/ MyObfuscate];\r\n for (let i = 0; i < unpackers.length; i++) {\r\n if (unpackers[i].detect(source)) {\r\n unpacked = unpackers[i].unpack(source);\r\n if (unpacked != source) {\r\n source = unpacker_filter(unpacked);\r\n }\r\n }\r\n }\r\n\r\n return trailing_comments + source;\r\n },\r\n looks_like_html(source) {\r\n // - looks like html\r\n // - doesn't look like html\r\n\r\n let trimmed = source.replace(/^[ \\t\\n\\r]+/, '');\r\n let comment_mark = '<' + '!-' + '-';\r\n return (trimmed && (trimmed.substring(0, 1) === '<' && trimmed.substring(0, 4) !== comment_mark));\r\n },\r\n },\r\n watch: {\r\n 'content'(value) {\r\n if (this.beforeContent !== value) {\r\n this.editor.setValue(value, 1)\r\n }\r\n }\r\n },\r\n computed: {\r\n realId() {\r\n if (this.editorId)\r\n return this.editorId + '_' + this.uniqueid;\r\n\r\n return 'Editor_' + this.uniqueid;\r\n },\r\n },\r\n render(e) {\r\n // \r\n return (\r\n
\r\n this.editor.resize()}>\r\n
\r\n
\r\n
\r\n );\r\n },\r\n mounted() {\r\n this.model = this.content || '';\r\n this.editor = window.ace.edit(this.realId);\r\n this.editor.setValue(this.model, 1);\r\n\r\n // mode-xxx.js or theme-xxx.jsがある場合のみ有効\r\n this.editor.getSession().setMode(`ace/mode/${this.lang}`);\r\n this.editor.setTheme(`ace/theme/${this.theme}`);\r\n this.editor.setAutoScrollEditorIntoView(true);\r\n this.editor.setReadOnly(this.readOnly);\r\n\r\n setTimeout(() => {\r\n //this.editor.moveCursorTo(1, 1);\r\n this.editor.session.selection.moveCursorTo(0, 0);\r\n this.editor.session.setScrollTop(1);\r\n }, 500);\r\n\r\n this.editor.on('focus', () => {\r\n this.hasfocus = true;\r\n this.$emit('focus', this.editor.getValue());\r\n });\r\n\r\n this.editor.on('blur', () => {\r\n this.hasfocus = false;\r\n this.beforeContent = this.editor.getValue();\r\n this.$emit('change-content', this.editor.getValue());\r\n });\r\n\r\n this.editor.on('change', () => {\r\n this.model = this.editor.getValue();\r\n });\r\n\r\n this.$on('Beautify', this.beautify);\r\n\r\n const c = this;\r\n this.editor.commands.addCommands([\r\n {\r\n name: 'formatDocument',\r\n bindKey: {\r\n win: 'Ctrl-Shift-F',\r\n mac: 'Command-Shift-F'\r\n },\r\n exec: function () {\r\n c.$emit('Beautify', true);\r\n return false;\r\n },\r\n readOnly: true\r\n }\r\n ]);\r\n },\r\n destroyed() {\r\n this.$off('Beautify', this.beautify);\r\n this.editor.destroy();\r\n }\r\n});","import Vue from 'vue';\r\nimport BaseComponent from './BaseComponentMixin.jsx';\r\nimport EventBus from '../event-bus.js';\r\n\r\nimport utils from '../../Shared/utils.jsx';\r\nimport methods from '../../Shared/methods';\r\n\r\nVue.component('accordion-group', {\r\n mixins: [BaseComponent],\r\n data: function () {\r\n return {\r\n hideHeaderBarEval: null,\r\n groupTitleEval: null,\r\n isOpenEval: null\r\n }\r\n },\r\n props: {},\r\n computed: {\r\n hideHeaderBar() {\r\n try {\r\n if(this.hideHeaderBarEval === null && this.controlData.HideHeaderBar)\r\n this.hideHeaderBarEval = utils.compileObject(this, this.controlData.HideHeaderBar);\r\n if(this.hideHeaderBarEval)\r\n return utils.evaluateObject(this.hideHeaderBarEval, this);\r\n return '';\r\n }\r\n catch (e) {\r\n utils.warn('HideHeaderBar could not evaluate expression: ' + this.controlData.HideHeaderBar + '; ' + e);\r\n return '';\r\n }\r\n },\r\n groupTitle() {\r\n try {\r\n if(this.groupTitleEval === null && this.controlData.GroupTitle)\r\n this.groupTitleEval = utils.compile(this, this.controlData.GroupTitle);\r\n if(this.groupTitleEval)\r\n return utils.evaluate(this.groupTitleEval, this);\r\n return '';\r\n }\r\n catch (e) {\r\n utils.warn('GroupTitle could not evaluate expression: ' + this.controlData.GroupTitle + '; ' + e);\r\n return '';\r\n }\r\n },\r\n isOpen() {\r\n try {\r\n if(this.isOpenEval === null && this.controlData.IsOpen)\r\n this.isOpenEval = utils.compileObject(this, this.controlData.IsOpen);\r\n if(this.isOpenEval)\r\n return utils.evaluateObject(this.isOpenEval, this);\r\n return '';\r\n }\r\n catch (e) {\r\n utils.warn('IsOpen could not evaluate expression: ' + this.controlData.IsOpen + '; ' + e);\r\n return '';\r\n }\r\n }\r\n },\r\n created() {\r\n utils.debug(`AccordionGroup created`);\r\n },\r\n //Mounted Replaced with preRenderComplete\r\n methods: {\r\n Close() {\r\n this.$emit('close');\r\n },\r\n Open() {\r\n this.$emit('open');\r\n },\r\n ToggleIsOpen() {\r\n this.$emit('toggle-open')\r\n },\r\n preRenderComplete() {\r\n this.finishRenderHandler(this);\r\n }\r\n },\r\n render(h) {\r\n try {\r\n let content = [];\r\n \r\n // Creating the header bar\r\n if (!this.hideHeaderBar) {\r\n utils.debug(`AccordionGroup render in if(!this.hideHeaderBar)`);\r\n\r\n // The title can have pre title controls, a title, and header controls. We have to figure out which ones we have and \r\n // render them accordingly. We're going to wrap everything in the expansion panel header, and in a div that will emulate a \r\n // horizontal layout\r\n let titleContent = [];\r\n \r\n if(this.controlData?.PreTitleControls?.length)\r\n titleContent.push(
{utils.generateItemsFromArray(h, this, this.controlData.PreTitleControls, null, 'HorizontalLayout', {'finished-render': (item) => this.finishRenderHandler(item) })}
);\r\n \r\n if(this.groupTitle)\r\n titleContent.push(
{this.groupTitle}
);\r\n \r\n if(this.controlData?.HeaderControls?.length)\r\n titleContent.push(
{utils.generateItemsFromArray(h, this, this.controlData.HeaderControls, null, 'HorizontalLayout', {'finished-render': (item) => this.finishRenderHandler(item) })}
);\r\n \r\n content.push(\r\n \r\n
\r\n {titleContent}\r\n
\r\n
\r\n );\r\n }\r\n \r\n if (this.controlData.AccordionBody) {\r\n utils.debug(`AccordionGroup render in if(this.controlData.AccordionBody)`);\r\n\r\n let body = utils.generateItemsFromArray(h, this, this.controlData.AccordionBody, null, 'VerticalLayout', { 'finished-render': (item) => this.finishRenderHandler(item) });\r\n \r\n content.push(\r\n \r\n
\r\n {body}\r\n
\r\n
\r\n )\r\n }\r\n \r\n return (\r\n \r\n {content}\r\n \r\n );\r\n }\r\n catch(e) {\r\n utils.error('AccordionGroup Render failed', e);\r\n return
AccordionGroup Failed to Render {e}
;\r\n }\r\n }\r\n});","import Vue from 'vue';\r\nimport BaseComponent from './BaseComponentMixin.jsx';\r\nimport AccordionGroup from './AccordionGroup';\r\nimport EventBus from '../event-bus.js';\r\n\r\nimport _ from 'lodash';\r\nimport utils from '../../Shared/utils.jsx';\r\nimport methods from '../../Shared/methods';\r\n\r\nVue.component('accordion', {\r\n mixins: [BaseComponent],\r\n data: function () {\r\n return {\r\n closeOthersEval: null,\r\n accordionGroupEvals: null,\r\n openedItems: []\r\n }\r\n },\r\n computed: {\r\n closeOthers() {\r\n try {\r\n if(this.closeOthersEval === null && this.controlData.CloseOthers)\r\n this.closeOthersEval = utils.compile(this, this.Translate(this.controlData.CloseOthers));\r\n if(this.closeOthersEval)\r\n return utils.evaluate(this.closeOthersEval, this);\r\n return '';\r\n }\r\n catch (e) {\r\n utils.warn('CloseOthers could not evaluate expression: ' + this.controlData.CloseOthers + '; ' + e);\r\n return '';\r\n }\r\n },\r\n styles() {\r\n return {\r\n ...this.sizeStyle,\r\n ...utils.resolveStyleHints(this.styleHints, this),\r\n };\r\n }\r\n },\r\n //Mounted Replaced with preRenderComplete\r\n methods: {\r\n openItem(index) {\r\n if (this.closeOthers)\r\n this.openedItems = [index];\r\n else if (!this.openedItems.includes(index)) {\r\n utils.debug(`Accordion ${this.name} openItem(index:${index})`);\r\n this.openedItems.push(index)\r\n }\r\n },\r\n closeItem(index) {\r\n if(this.openedItems.includes(index))\r\n this.openedItems = this.openedItems.filter(item => item != index);\r\n },\r\n toggleOpen(index){\r\n if(this.openedItems.includes(index))\r\n this.closeItem(index);\r\n else\r\n this.openItem(index);\r\n },\r\n preRenderComplete() {\r\n if (this.controlData.AccordionGroup) {\r\n this.openedItems = this.controlData.AccordionGroup.map((v, i) => {\r\n if (v.IsOpen)\r\n return i;\r\n return -1;\r\n }).filter(v => v > -1);\r\n }\r\n\r\n this.finishRenderHandler(this);\r\n }\r\n },\r\n props: {\r\n },\r\n render(h) {\r\n try {\r\n return (\r\n
\r\n \r\n {this.controlData.AccordionGroup.map((groupItem, index) => {\r\n return (\r\n this.openItem(index)}\r\n on-close={() => this.closeItem(index)}\r\n on-toggle-open={() => this.toggleOpen(index)}\r\n on={{ 'finished-render': (reference) => this.finishRenderHandler(reference) }}\r\n root={this.root}\r\n >\r\n )\r\n })}\r\n \r\n
\r\n );\r\n }\r\n catch(e) {\r\n utils.error('Accordion Render failed', e);\r\n return
Accordion Failed to Render {e}
;\r\n }\r\n }\r\n});","import Vue from \"vue\";\r\nimport utils from \"../../Shared/utils.jsx\";\r\nimport BaseComponent from \"./BaseComponentMixin.jsx\";\r\nimport { appSettings } from \"../../Shared/appSettings.js\";\r\n\r\nVue.component(\"acd-direct-button\", {\r\n mixins: [BaseComponent],\r\n data: function() {\r\n return {\r\n mgr: null,\r\n };\r\n },\r\n computed: {\r\n buttonText() {\r\n return this.Translate(\"Sign in with ACD Direct\");\r\n },\r\n 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 || 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 ? (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('div',{staticStyle:{\"display\":\"flex\",\"flex-direction\":\"row\"}},[_c('c-Date-Range-Picker',{staticStyle:{\"min-width\":\"420px\"},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}}),_c('v-text-field',{staticStyle:{\"flex-grow\":\"0\",\"min-width\":\"400px\",\"margin-top\":\"4px\",\"margin-left\":\"10px\"},attrs:{\"dense\":\"\",\"outlined\":\"\",\"label\":\"Enter Search Text\"},model:{value:(_vm.search),callback:function ($$v) {_vm.search=$$v},expression:\"search\"}},[_c('v-icon',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.search),expression:\"search\"}],attrs:{\"slot\":\"append\"},on:{\"click\":_vm.clearSearch},slot:\"append\"},[_vm._v(\"mdi-close\")]),_c('v-icon',{attrs:{\"slot\":\"append-outer\"},on:{\"click\":_vm.Refresh},slot:\"append-outer\"},[_vm._v(\"mdi-play\")])],1)],1),_c('AgGridVue',{key:_vm.unique_id,class:{ 'ag-theme-alpine': true },style:({ display: 'flex', flexDirection: 'column', flexGrow: '1' }),attrs:{\"columnDefs\":_vm.columnDefs,\"_rowData\":\"dataSource\",\"datasource\":_vm.dataSource,\"rowModelType\":\"infinite\"},on:{\"gridReady\":_vm.onGridReady,\"firstDataRendered\":_vm.onFirstDataRendered}}),_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},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(),((!_vm.disabled))?_c('v-icon',{on:{\"click\":function($event){_vm.datePickerOpen = true}}},[_vm._v(\"mdi-calendar-cursor\")]):_vm._e(),_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=42883b0d&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=42883b0d&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 \"42883b0d\",\n null\n \n)\n\nexport default component.exports","\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=7ca0ff26&scoped=true&\"\nimport script from \"./AdvancedHistory.vue?vue&type=script&lang=js&\"\nexport * from \"./AdvancedHistory.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 \"7ca0ff26\",\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 cellRendererFramework: '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.columnApi.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',{class:_vm.showSpectrogram ? 'ma-1' : 'ma-0',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',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.showSpectrogram),expression:\"showSpectrogram\"}],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=229dae4a&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 \"229dae4a\",\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 }),\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 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 return ;\r\n },\r\n };\r\n\r\n let slots = [];\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\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)}\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/v5.9.55/icons');\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 \r\n \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 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=2c21a244&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=2c21a244&prod&scoped=true&lang=css&\"\nimport style1 from \"./RoosterEditorBase.vue?vue&type=style&index=1&id=2c21a244&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 \"2c21a244\",\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 => !('Visible' in d) || d.Visible);\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.columnApi.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 console.log(\"Checkbox Visislbe \", checkboxVisible, this.selectableexpn);\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 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\r\n if (this.controlData.SearchOnlyVisibleColumns) {\r\n cd.getQuickFilterText = params => {\r\n if (params.colDef.hide || !params.value)\r\n return '';\r\n\r\n return params.value?.toString();\r\n };\r\n }\r\n\r\n if (cd.SortAndFilterTemplate) {\r\n if (!cd.sortandfilterfunc) {\r\n if (false) // (cd.SortAndFilterTemplate.includes('{#') || cd.SortAndFilterTemplate.includes('{%'))\r\n cd.sortandfilterfunc = utils.compileObject(this, cd.SortAndFilterTemplate);\r\n else\r\n cd.sortandfilterfunc = utils.compile(this, cd.SortAndFilterTemplate);\r\n }\r\n\r\n if (cd.SortAndFilterTemplate.includes('{#') || cd.SortAndFilterTemplate.includes('{%'))\r\n sortComparitor = this.numberSortComparator;\r\n\r\n if (false) { // (cd.SortAndFilterTemplate.includes('{#') || cd.SortAndFilterTemplate.includes('{%')) {\r\n calcCellValue = (node) => { this.rowDataTemp = node.data; return utils.evaluateObject(cd.sortandfilterfunc, this); };\r\n }\r\n else {\r\n calcCellValue = (node) => { this.rowDataTemp = node.data; return utils.evaluate(cd.sortandfilterfunc, this); };\r\n }\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 cellRendererFramework: '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.suppressMenu = 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 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.columnApi.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.columnApi.setColumnVisible(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.columnApi) {\r\n this.columnApi.setColumnVisible(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.columnApi.applyColumnState({state: stateObj.columnState, applyOrder: true});\r\n this.columnApi.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.columnApi.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.setSortModel(sortObj);\r\n } else if (sortDef) {\r\n const sort = [{ colId: sortDef.Field, sort: 'desc' }];\r\n this.gridApi.setSortModel(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.columnApi.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.getSortModel();\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.columnApi || (!e.column && e.type == 'columnMoved')) return;\r\n\r\n let columnState = this.columnApi.getColumnState();\r\n let columnGroupState = this.columnApi.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 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 list: [],\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 tempList = await utils.api.get('Apps/Platform/Schema/RealTime/v1/WidgetDefinition/ListAllPossibleByID');\r\n await this.getThumbnails(tempList);\r\n this.list = tempList;\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.list.length == 0)\r\n return;\r\n \r\n let selectedCard = this.list.find(c => c.ID == this.selectedCardId);\r\n if(!selectedCard?.UserControl)\r\n return;\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 items;\r\n if (this.list.length > 0){\r\n items = this.list.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 items = Loading...;\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
\r\n \r\n \r\n \r\n \r\n {items}\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 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","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';\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 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'),(_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),_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=7a6b510e&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=7a6b510e&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 \"7a6b510e\",\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\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 },\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 // 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 },\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) {\r\n return (\r\n this.finishRenderHandler(reference) }}\r\n root={this.root}\r\n parentType=\"Dash\"\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 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 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 cellRendererFramework: '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 valueGetter = (node) => lookup[field_extractor(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.type = 'rightAligned';\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 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=33b78170&\"\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=33b78170&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 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 {m.Title}\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 },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=18176196&\"\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 const ownerid = item?.OwnerId;\r\n \r\n if (ownerid !== undefined && item?.Data?.Data)\r\n {\r\n for (var i = 0; i < item.Data.Data.length; i++)\r\n {\r\n item.Data.Data[i].OwnerId = ownerid;\r\n }\r\n }\r\n\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,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)],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)],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=bd8b1d66&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=bd8b1d66&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 \"bd8b1d66\",\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\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 = 5000;\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 let phoneCallOptions = {\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, phoneCallOptions, [ (description) => { return c.stripHostIpsFromSdp(description, c.myPublicIP); } ]); // 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 c.params.onAccepted && c.params.onAccepted();\r\n });\r\n\r\n phoneCall.on('rejected', function (arg) {\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 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 });\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.log('info', 'bye', arg);\r\n delete c.sipjs.phoneCall;\r\n c.params.onHangup && c.params.onHangup();\r\n });\r\n\r\n this.sipjs.phoneCall = phoneCall;\r\n }\r\n return true;\r\n }\r\n catch (err) {\r\n return false;\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 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 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=3a4abc16&\"\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=3a4abc16&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","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=33b78170&prod&lang=css&\"","(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"signalR\"] = factory();\n\telse\n\t\troot[\"signalR\"] = factory();\n})(self, () => {\nreturn ","// The require scope\nvar __webpack_require__ = {};\n\n","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\n\r\n// These values are designed to match the ASP.NET Log Levels since that's the pattern we're emulating here.\r\n/** Indicates the severity of a log message.\r\n *\r\n * Log Levels are ordered in increasing severity. So `Debug` is more severe than `Trace`, etc.\r\n */\r\nexport enum LogLevel {\r\n /** Log level for very low severity diagnostic messages. */\r\n Trace = 0,\r\n /** Log level for low severity diagnostic messages. */\r\n Debug = 1,\r\n /** Log level for informational diagnostic messages. */\r\n Information = 2,\r\n /** Log level for diagnostic messages that indicate a non-fatal problem. */\r\n Warning = 3,\r\n /** Log level for diagnostic messages that indicate a failure in the current operation. */\r\n Error = 4,\r\n /** Log level for diagnostic messages that indicate a failure that will terminate the entire application. */\r\n Critical = 5,\r\n /** The highest possible log level. Used when configuring logging to indicate that no log messages should be emitted. */\r\n None = 6,\r\n}\r\n\r\n/** An abstraction that provides a sink for diagnostic messages. */\r\nexport interface ILogger {\r\n /** Called by the framework to emit a diagnostic message.\r\n *\r\n * @param {LogLevel} logLevel The severity level of the message.\r\n * @param {string} message The message.\r\n */\r\n log(logLevel: LogLevel, message: string): void;\r\n}\r\n","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\n\r\nimport { HttpTransportType } from \"./ITransport\";\r\n\r\n/** Error thrown when an HTTP request fails. */\r\nexport class HttpError extends Error {\r\n // @ts-ignore: Intentionally unused.\r\n // eslint-disable-next-line @typescript-eslint/naming-convention\r\n private __proto__: Error;\r\n\r\n /** The HTTP status code represented by this error. */\r\n public statusCode: number;\r\n\r\n /** Constructs a new instance of {@link @microsoft/signalr.HttpError}.\r\n *\r\n * @param {string} errorMessage A descriptive error message.\r\n * @param {number} statusCode The HTTP status code represented by this error.\r\n */\r\n constructor(errorMessage: string, statusCode: number) {\r\n const trueProto = new.target.prototype;\r\n super(`${errorMessage}: Status code '${statusCode}'`);\r\n this.statusCode = statusCode;\r\n\r\n // Workaround issue in Typescript compiler\r\n // https://github.com/Microsoft/TypeScript/issues/13965#issuecomment-278570200\r\n this.__proto__ = trueProto;\r\n }\r\n}\r\n\r\n/** Error thrown when a timeout elapses. */\r\nexport class TimeoutError extends Error {\r\n // @ts-ignore: Intentionally unused.\r\n // eslint-disable-next-line @typescript-eslint/naming-convention\r\n private __proto__: Error;\r\n\r\n /** Constructs a new instance of {@link @microsoft/signalr.TimeoutError}.\r\n *\r\n * @param {string} errorMessage A descriptive error message.\r\n */\r\n constructor(errorMessage: string = \"A timeout occurred.\") {\r\n const trueProto = new.target.prototype;\r\n super(errorMessage);\r\n\r\n // Workaround issue in Typescript compiler\r\n // https://github.com/Microsoft/TypeScript/issues/13965#issuecomment-278570200\r\n this.__proto__ = trueProto;\r\n }\r\n}\r\n\r\n/** Error thrown when an action is aborted. */\r\nexport class AbortError extends Error {\r\n // @ts-ignore: Intentionally unused.\r\n // eslint-disable-next-line @typescript-eslint/naming-convention\r\n private __proto__: Error;\r\n\r\n /** Constructs a new instance of {@link AbortError}.\r\n *\r\n * @param {string} errorMessage A descriptive error message.\r\n */\r\n constructor(errorMessage: string = \"An abort occurred.\") {\r\n const trueProto = new.target.prototype;\r\n super(errorMessage);\r\n\r\n // Workaround issue in Typescript compiler\r\n // https://github.com/Microsoft/TypeScript/issues/13965#issuecomment-278570200\r\n this.__proto__ = trueProto;\r\n }\r\n}\r\n\r\n/** Error thrown when the selected transport is unsupported by the browser. */\r\n/** @private */\r\nexport class UnsupportedTransportError extends Error {\r\n // @ts-ignore: Intentionally unused.\r\n // eslint-disable-next-line @typescript-eslint/naming-convention\r\n private __proto__: Error;\r\n\r\n /** The {@link @microsoft/signalr.HttpTransportType} this error occurred on. */\r\n public transport: HttpTransportType;\r\n\r\n /** The type name of this error. */\r\n public errorType: string;\r\n\r\n /** Constructs a new instance of {@link @microsoft/signalr.UnsupportedTransportError}.\r\n *\r\n * @param {string} message A descriptive error message.\r\n * @param {HttpTransportType} transport The {@link @microsoft/signalr.HttpTransportType} this error occurred on.\r\n */\r\n constructor(message: string, transport: HttpTransportType) {\r\n const trueProto = new.target.prototype;\r\n super(message);\r\n this.transport = transport;\r\n this.errorType = 'UnsupportedTransportError';\r\n\r\n // Workaround issue in Typescript compiler\r\n // https://github.com/Microsoft/TypeScript/issues/13965#issuecomment-278570200\r\n this.__proto__ = trueProto;\r\n }\r\n}\r\n\r\n/** Error thrown when the selected transport is disabled by the browser. */\r\n/** @private */\r\nexport class DisabledTransportError extends Error {\r\n // @ts-ignore: Intentionally unused.\r\n // eslint-disable-next-line @typescript-eslint/naming-convention\r\n private __proto__: Error;\r\n\r\n /** The {@link @microsoft/signalr.HttpTransportType} this error occurred on. */\r\n public transport: HttpTransportType;\r\n\r\n /** The type name of this error. */\r\n public errorType: string;\r\n\r\n /** Constructs a new instance of {@link @microsoft/signalr.DisabledTransportError}.\r\n *\r\n * @param {string} message A descriptive error message.\r\n * @param {HttpTransportType} transport The {@link @microsoft/signalr.HttpTransportType} this error occurred on.\r\n */\r\n constructor(message: string, transport: HttpTransportType) {\r\n const trueProto = new.target.prototype;\r\n super(message);\r\n this.transport = transport;\r\n this.errorType = 'DisabledTransportError';\r\n\r\n // Workaround issue in Typescript compiler\r\n // https://github.com/Microsoft/TypeScript/issues/13965#issuecomment-278570200\r\n this.__proto__ = trueProto;\r\n }\r\n}\r\n\r\n/** Error thrown when the selected transport cannot be started. */\r\n/** @private */\r\nexport class FailedToStartTransportError extends Error {\r\n // @ts-ignore: Intentionally unused.\r\n // eslint-disable-next-line @typescript-eslint/naming-convention\r\n private __proto__: Error;\r\n\r\n /** The {@link @microsoft/signalr.HttpTransportType} this error occurred on. */\r\n public transport: HttpTransportType;\r\n\r\n /** The type name of this error. */\r\n public errorType: string;\r\n\r\n /** Constructs a new instance of {@link @microsoft/signalr.FailedToStartTransportError}.\r\n *\r\n * @param {string} message A descriptive error message.\r\n * @param {HttpTransportType} transport The {@link @microsoft/signalr.HttpTransportType} this error occurred on.\r\n */\r\n constructor(message: string, transport: HttpTransportType) {\r\n const trueProto = new.target.prototype;\r\n super(message);\r\n this.transport = transport;\r\n this.errorType = 'FailedToStartTransportError';\r\n\r\n // Workaround issue in Typescript compiler\r\n // https://github.com/Microsoft/TypeScript/issues/13965#issuecomment-278570200\r\n this.__proto__ = trueProto;\r\n }\r\n}\r\n\r\n/** Error thrown when the negotiation with the server failed to complete. */\r\n/** @private */\r\nexport class FailedToNegotiateWithServerError extends Error {\r\n // @ts-ignore: Intentionally unused.\r\n // eslint-disable-next-line @typescript-eslint/naming-convention\r\n private __proto__: Error;\r\n\r\n /** The type name of this error. */\r\n public errorType: string;\r\n\r\n /** Constructs a new instance of {@link @microsoft/signalr.FailedToNegotiateWithServerError}.\r\n *\r\n * @param {string} message A descriptive error message.\r\n */\r\n constructor(message: string) {\r\n const trueProto = new.target.prototype;\r\n super(message);\r\n this.errorType = 'FailedToNegotiateWithServerError';\r\n\r\n // Workaround issue in Typescript compiler\r\n // https://github.com/Microsoft/TypeScript/issues/13965#issuecomment-278570200\r\n this.__proto__ = trueProto;\r\n }\r\n}\r\n\r\n/** Error thrown when multiple errors have occurred. */\r\n/** @private */\r\nexport class AggregateErrors extends Error {\r\n // @ts-ignore: Intentionally unused.\r\n // eslint-disable-next-line @typescript-eslint/naming-convention\r\n private __proto__: Error;\r\n\r\n /** The collection of errors this error is aggregating. */\r\n public innerErrors: Error[];\r\n\r\n /** Constructs a new instance of {@link @microsoft/signalr.AggregateErrors}.\r\n *\r\n * @param {string} message A descriptive error message.\r\n * @param {Error[]} innerErrors The collection of errors this error is aggregating.\r\n */\r\n constructor(message: string, innerErrors: Error[]) {\r\n const trueProto = new.target.prototype;\r\n super(message);\r\n\r\n this.innerErrors = innerErrors;\r\n\r\n // Workaround issue in Typescript compiler\r\n // https://github.com/Microsoft/TypeScript/issues/13965#issuecomment-278570200\r\n this.__proto__ = trueProto;\r\n }\r\n}\r\n","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\n\r\nimport { AbortSignal } from \"./AbortController\";\r\nimport { MessageHeaders } from \"./IHubProtocol\";\r\n\r\n/** Represents an HTTP request. */\r\nexport interface HttpRequest {\r\n /** The HTTP method to use for the request. */\r\n method?: string;\r\n\r\n /** The URL for the request. */\r\n url?: string;\r\n\r\n /** The body content for the request. May be a string or an ArrayBuffer (for binary data). */\r\n content?: string | ArrayBuffer;\r\n\r\n /** An object describing headers to apply to the request. */\r\n headers?: MessageHeaders;\r\n\r\n /** The XMLHttpRequestResponseType to apply to the request. */\r\n responseType?: XMLHttpRequestResponseType;\r\n\r\n /** An AbortSignal that can be monitored for cancellation. */\r\n abortSignal?: AbortSignal;\r\n\r\n /** The time to wait for the request to complete before throwing a TimeoutError. Measured in milliseconds. */\r\n timeout?: number;\r\n\r\n /** This controls whether credentials such as cookies are sent in cross-site requests. */\r\n withCredentials?: boolean;\r\n}\r\n\r\n/** Represents an HTTP response. */\r\nexport class HttpResponse {\r\n /** Constructs a new instance of {@link @microsoft/signalr.HttpResponse} with the specified status code.\r\n *\r\n * @param {number} statusCode The status code of the response.\r\n */\r\n constructor(statusCode: number);\r\n\r\n /** Constructs a new instance of {@link @microsoft/signalr.HttpResponse} with the specified status code and message.\r\n *\r\n * @param {number} statusCode The status code of the response.\r\n * @param {string} statusText The status message of the response.\r\n */\r\n constructor(statusCode: number, statusText: string);\r\n\r\n /** Constructs a new instance of {@link @microsoft/signalr.HttpResponse} with the specified status code, message and string content.\r\n *\r\n * @param {number} statusCode The status code of the response.\r\n * @param {string} statusText The status message of the response.\r\n * @param {string} content The content of the response.\r\n */\r\n constructor(statusCode: number, statusText: string, content: string);\r\n\r\n /** Constructs a new instance of {@link @microsoft/signalr.HttpResponse} with the specified status code, message and binary content.\r\n *\r\n * @param {number} statusCode The status code of the response.\r\n * @param {string} statusText The status message of the response.\r\n * @param {ArrayBuffer} content The content of the response.\r\n */\r\n constructor(statusCode: number, statusText: string, content: ArrayBuffer);\r\n\r\n /** Constructs a new instance of {@link @microsoft/signalr.HttpResponse} with the specified status code, message and binary content.\r\n *\r\n * @param {number} statusCode The status code of the response.\r\n * @param {string} statusText The status message of the response.\r\n * @param {string | ArrayBuffer} content The content of the response.\r\n */\r\n constructor(statusCode: number, statusText: string, content: string | ArrayBuffer);\r\n constructor(\r\n public readonly statusCode: number,\r\n public readonly statusText?: string,\r\n public readonly content?: string | ArrayBuffer) {\r\n }\r\n}\r\n\r\n/** Abstraction over an HTTP client.\r\n *\r\n * This class provides an abstraction over an HTTP client so that a different implementation can be provided on different platforms.\r\n */\r\nexport abstract class HttpClient {\r\n /** Issues an HTTP GET request to the specified URL, returning a Promise that resolves with an {@link @microsoft/signalr.HttpResponse} representing the result.\r\n *\r\n * @param {string} url The URL for the request.\r\n * @returns {Promise} A Promise that resolves with an {@link @microsoft/signalr.HttpResponse} describing the response, or rejects with an Error indicating a failure.\r\n */\r\n public get(url: string): Promise;\r\n\r\n /** Issues an HTTP GET request to the specified URL, returning a Promise that resolves with an {@link @microsoft/signalr.HttpResponse} representing the result.\r\n *\r\n * @param {string} url The URL for the request.\r\n * @param {HttpRequest} options Additional options to configure the request. The 'url' field in this object will be overridden by the url parameter.\r\n * @returns {Promise} A Promise that resolves with an {@link @microsoft/signalr.HttpResponse} describing the response, or rejects with an Error indicating a failure.\r\n */\r\n public get(url: string, options: HttpRequest): Promise;\r\n public get(url: string, options?: HttpRequest): Promise {\r\n return this.send({\r\n ...options,\r\n method: \"GET\",\r\n url,\r\n });\r\n }\r\n\r\n /** Issues an HTTP POST request to the specified URL, returning a Promise that resolves with an {@link @microsoft/signalr.HttpResponse} representing the result.\r\n *\r\n * @param {string} url The URL for the request.\r\n * @returns {Promise} A Promise that resolves with an {@link @microsoft/signalr.HttpResponse} describing the response, or rejects with an Error indicating a failure.\r\n */\r\n public post(url: string): Promise;\r\n\r\n /** Issues an HTTP POST request to the specified URL, returning a Promise that resolves with an {@link @microsoft/signalr.HttpResponse} representing the result.\r\n *\r\n * @param {string} url The URL for the request.\r\n * @param {HttpRequest} options Additional options to configure the request. The 'url' field in this object will be overridden by the url parameter.\r\n * @returns {Promise} A Promise that resolves with an {@link @microsoft/signalr.HttpResponse} describing the response, or rejects with an Error indicating a failure.\r\n */\r\n public post(url: string, options: HttpRequest): Promise;\r\n public post(url: string, options?: HttpRequest): Promise {\r\n return this.send({\r\n ...options,\r\n method: \"POST\",\r\n url,\r\n });\r\n }\r\n\r\n /** Issues an HTTP DELETE request to the specified URL, returning a Promise that resolves with an {@link @microsoft/signalr.HttpResponse} representing the result.\r\n *\r\n * @param {string} url The URL for the request.\r\n * @returns {Promise} A Promise that resolves with an {@link @microsoft/signalr.HttpResponse} describing the response, or rejects with an Error indicating a failure.\r\n */\r\n public delete(url: string): Promise;\r\n\r\n /** Issues an HTTP DELETE request to the specified URL, returning a Promise that resolves with an {@link @microsoft/signalr.HttpResponse} representing the result.\r\n *\r\n * @param {string} url The URL for the request.\r\n * @param {HttpRequest} options Additional options to configure the request. The 'url' field in this object will be overridden by the url parameter.\r\n * @returns {Promise} A Promise that resolves with an {@link @microsoft/signalr.HttpResponse} describing the response, or rejects with an Error indicating a failure.\r\n */\r\n public delete(url: string, options: HttpRequest): Promise;\r\n public delete(url: string, options?: HttpRequest): Promise {\r\n return this.send({\r\n ...options,\r\n method: \"DELETE\",\r\n url,\r\n });\r\n }\r\n\r\n /** Issues an HTTP request to the specified URL, returning a {@link Promise} that resolves with an {@link @microsoft/signalr.HttpResponse} representing the result.\r\n *\r\n * @param {HttpRequest} request An {@link @microsoft/signalr.HttpRequest} describing the request to send.\r\n * @returns {Promise} A Promise that resolves with an HttpResponse describing the response, or rejects with an Error indicating a failure.\r\n */\r\n public abstract send(request: HttpRequest): Promise;\r\n\r\n /** Gets all cookies that apply to the specified URL.\r\n *\r\n * @param url The URL that the cookies are valid for.\r\n * @returns {string} A string containing all the key-value cookie pairs for the specified URL.\r\n */\r\n // @ts-ignore\r\n public getCookieString(url: string): string {\r\n return \"\";\r\n }\r\n}\r\n","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\n\r\nimport { ILogger, LogLevel } from \"./ILogger\";\r\n\r\n/** A logger that does nothing when log messages are sent to it. */\r\nexport class NullLogger implements ILogger {\r\n /** The singleton instance of the {@link @microsoft/signalr.NullLogger}. */\r\n public static instance: ILogger = new NullLogger();\r\n\r\n private constructor() {}\r\n\r\n /** @inheritDoc */\r\n // eslint-disable-next-line\r\n public log(_logLevel: LogLevel, _message: string): void {\r\n }\r\n}\r\n","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\n\r\nimport { HttpClient } from \"./HttpClient\";\r\nimport { ILogger, LogLevel } from \"./ILogger\";\r\nimport { NullLogger } from \"./Loggers\";\r\nimport { IStreamSubscriber, ISubscription } from \"./Stream\";\r\nimport { Subject } from \"./Subject\";\r\nimport { IHttpConnectionOptions } from \"./IHttpConnectionOptions\";\r\n\r\n// Version token that will be replaced by the prepack command\r\n/** The version of the SignalR client. */\r\n\r\nexport const VERSION: string = \"0.0.0-DEV_BUILD\";\r\n/** @private */\r\nexport class Arg {\r\n public static isRequired(val: any, name: string): void {\r\n if (val === null || val === undefined) {\r\n throw new Error(`The '${name}' argument is required.`);\r\n }\r\n }\r\n public static isNotEmpty(val: string, name: string): void {\r\n if (!val || val.match(/^\\s*$/)) {\r\n throw new Error(`The '${name}' argument should not be empty.`);\r\n }\r\n }\r\n\r\n public static isIn(val: any, values: any, name: string): void {\r\n // TypeScript enums have keys for **both** the name and the value of each enum member on the type itself.\r\n if (!(val in values)) {\r\n throw new Error(`Unknown ${name} value: ${val}.`);\r\n }\r\n }\r\n}\r\n\r\n/** @private */\r\nexport class Platform {\r\n // react-native has a window but no document so we should check both\r\n public static get isBrowser(): boolean {\r\n return typeof window === \"object\" && typeof window.document === \"object\";\r\n }\r\n\r\n // WebWorkers don't have a window object so the isBrowser check would fail\r\n public static get isWebWorker(): boolean {\r\n return typeof self === \"object\" && \"importScripts\" in self;\r\n }\r\n\r\n // react-native has a window but no document\r\n static get isReactNative(): boolean {\r\n return typeof window === \"object\" && typeof window.document === \"undefined\";\r\n }\r\n\r\n // Node apps shouldn't have a window object, but WebWorkers don't either\r\n // so we need to check for both WebWorker and window\r\n public static get isNode(): boolean {\r\n return !this.isBrowser && !this.isWebWorker && !this.isReactNative;\r\n }\r\n}\r\n\r\n/** @private */\r\nexport function getDataDetail(data: any, includeContent: boolean): string {\r\n let detail = \"\";\r\n if (isArrayBuffer(data)) {\r\n detail = `Binary data of length ${data.byteLength}`;\r\n if (includeContent) {\r\n detail += `. Content: '${formatArrayBuffer(data)}'`;\r\n }\r\n } else if (typeof data === \"string\") {\r\n detail = `String data of length ${data.length}`;\r\n if (includeContent) {\r\n detail += `. Content: '${data}'`;\r\n }\r\n }\r\n return detail;\r\n}\r\n\r\n/** @private */\r\nexport function formatArrayBuffer(data: ArrayBuffer): string {\r\n const view = new Uint8Array(data);\r\n\r\n // Uint8Array.map only supports returning another Uint8Array?\r\n let str = \"\";\r\n view.forEach((num) => {\r\n const pad = num < 16 ? \"0\" : \"\";\r\n str += `0x${pad}${num.toString(16)} `;\r\n });\r\n\r\n // Trim of trailing space.\r\n return str.substr(0, str.length - 1);\r\n}\r\n\r\n// Also in signalr-protocol-msgpack/Utils.ts\r\n/** @private */\r\nexport function isArrayBuffer(val: any): val is ArrayBuffer {\r\n return val && typeof ArrayBuffer !== \"undefined\" &&\r\n (val instanceof ArrayBuffer ||\r\n // Sometimes we get an ArrayBuffer that doesn't satisfy instanceof\r\n (val.constructor && val.constructor.name === \"ArrayBuffer\"));\r\n}\r\n\r\n/** @private */\r\nexport async function sendMessage(logger: ILogger, transportName: string, httpClient: HttpClient, url: string,\r\n content: string | ArrayBuffer, options: IHttpConnectionOptions): Promise {\r\n const headers: {[k: string]: string} = {};\r\n\r\n const [name, value] = getUserAgentHeader();\r\n headers[name] = value;\r\n\r\n logger.log(LogLevel.Trace, `(${transportName} transport) sending data. ${getDataDetail(content, options.logMessageContent!)}.`);\r\n\r\n const responseType = isArrayBuffer(content) ? \"arraybuffer\" : \"text\";\r\n const response = await httpClient.post(url, {\r\n content,\r\n headers: { ...headers, ...options.headers},\r\n responseType,\r\n timeout: options.timeout,\r\n withCredentials: options.withCredentials,\r\n });\r\n\r\n logger.log(LogLevel.Trace, `(${transportName} transport) request complete. Response status: ${response.statusCode}.`);\r\n}\r\n\r\n/** @private */\r\nexport function createLogger(logger?: ILogger | LogLevel): ILogger {\r\n if (logger === undefined) {\r\n return new ConsoleLogger(LogLevel.Information);\r\n }\r\n\r\n if (logger === null) {\r\n return NullLogger.instance;\r\n }\r\n\r\n if ((logger as ILogger).log !== undefined) {\r\n return logger as ILogger;\r\n }\r\n\r\n return new ConsoleLogger(logger as LogLevel);\r\n}\r\n\r\n/** @private */\r\nexport class SubjectSubscription implements ISubscription {\r\n private _subject: Subject;\r\n private _observer: IStreamSubscriber;\r\n\r\n constructor(subject: Subject, observer: IStreamSubscriber) {\r\n this._subject = subject;\r\n this._observer = observer;\r\n }\r\n\r\n public dispose(): void {\r\n const index: number = this._subject.observers.indexOf(this._observer);\r\n if (index > -1) {\r\n this._subject.observers.splice(index, 1);\r\n }\r\n\r\n if (this._subject.observers.length === 0 && this._subject.cancelCallback) {\r\n this._subject.cancelCallback().catch((_) => { });\r\n }\r\n }\r\n}\r\n\r\n/** @private */\r\nexport class ConsoleLogger implements ILogger {\r\n private readonly _minLevel: LogLevel;\r\n\r\n // Public for testing purposes.\r\n public out: {\r\n error(message: any): void,\r\n warn(message: any): void,\r\n info(message: any): void,\r\n log(message: any): void,\r\n };\r\n\r\n constructor(minimumLogLevel: LogLevel) {\r\n this._minLevel = minimumLogLevel;\r\n this.out = console;\r\n }\r\n\r\n public log(logLevel: LogLevel, message: string): void {\r\n if (logLevel >= this._minLevel) {\r\n const msg = `[${new Date().toISOString()}] ${LogLevel[logLevel]}: ${message}`;\r\n switch (logLevel) {\r\n case LogLevel.Critical:\r\n case LogLevel.Error:\r\n this.out.error(msg);\r\n break;\r\n case LogLevel.Warning:\r\n this.out.warn(msg);\r\n break;\r\n case LogLevel.Information:\r\n this.out.info(msg);\r\n break;\r\n default:\r\n // console.debug only goes to attached debuggers in Node, so we use console.log for Trace and Debug\r\n this.out.log(msg);\r\n break;\r\n }\r\n }\r\n }\r\n}\r\n\r\n/** @private */\r\nexport function getUserAgentHeader(): [string, string] {\r\n let userAgentHeaderName = \"X-SignalR-User-Agent\";\r\n if (Platform.isNode) {\r\n userAgentHeaderName = \"User-Agent\";\r\n }\r\n return [ userAgentHeaderName, constructUserAgent(VERSION, getOsName(), getRuntime(), getRuntimeVersion()) ];\r\n}\r\n\r\n/** @private */\r\nexport function constructUserAgent(version: string, os: string, runtime: string, runtimeVersion: string | undefined): string {\r\n // Microsoft SignalR/[Version] ([Detailed Version]; [Operating System]; [Runtime]; [Runtime Version])\r\n let userAgent: string = \"Microsoft SignalR/\";\r\n\r\n const majorAndMinor = version.split(\".\");\r\n userAgent += `${majorAndMinor[0]}.${majorAndMinor[1]}`;\r\n userAgent += ` (${version}; `;\r\n\r\n if (os && os !== \"\") {\r\n userAgent += `${os}; `;\r\n } else {\r\n userAgent += \"Unknown OS; \";\r\n }\r\n\r\n userAgent += `${runtime}`;\r\n\r\n if (runtimeVersion) {\r\n userAgent += `; ${runtimeVersion}`;\r\n } else {\r\n userAgent += \"; Unknown Runtime Version\";\r\n }\r\n\r\n userAgent += \")\";\r\n return userAgent;\r\n}\r\n\r\n// eslint-disable-next-line spaced-comment\r\n/*#__PURE__*/ function getOsName(): string {\r\n if (Platform.isNode) {\r\n switch (process.platform) {\r\n case \"win32\":\r\n return \"Windows NT\";\r\n case \"darwin\":\r\n return \"macOS\";\r\n case \"linux\":\r\n return \"Linux\";\r\n default:\r\n return process.platform;\r\n }\r\n } else {\r\n return \"\";\r\n }\r\n}\r\n\r\n// eslint-disable-next-line spaced-comment\r\n/*#__PURE__*/ function getRuntimeVersion(): string | undefined {\r\n if (Platform.isNode) {\r\n return process.versions.node;\r\n }\r\n return undefined;\r\n}\r\n\r\nfunction getRuntime(): string {\r\n if (Platform.isNode) {\r\n return \"NodeJS\";\r\n } else {\r\n return \"Browser\";\r\n }\r\n}\r\n\r\n/** @private */\r\nexport function getErrorString(e: any): string {\r\n if (e.stack) {\r\n return e.stack;\r\n } else if (e.message) {\r\n return e.message;\r\n }\r\n return `${e}`;\r\n}\r\n\r\n/** @private */\r\nexport function getGlobalThis(): unknown {\r\n // globalThis is semi-new and not available in Node until v12\r\n if (typeof globalThis !== \"undefined\") {\r\n return globalThis;\r\n }\r\n if (typeof self !== \"undefined\") {\r\n return self;\r\n }\r\n if (typeof window !== \"undefined\") {\r\n return window;\r\n }\r\n if (typeof global !== \"undefined\") {\r\n return global;\r\n }\r\n throw new Error(\"could not find global\");\r\n}","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\n\r\n// @ts-ignore: This will be removed from built files and is here to make the types available during dev work\r\nimport { CookieJar } from \"@types/tough-cookie\";\r\n\r\nimport { AbortError, HttpError, TimeoutError } from \"./Errors\";\r\nimport { HttpClient, HttpRequest, HttpResponse } from \"./HttpClient\";\r\nimport { ILogger, LogLevel } from \"./ILogger\";\r\nimport { Platform, getGlobalThis, isArrayBuffer } from \"./Utils\";\r\n\r\nexport class FetchHttpClient extends HttpClient {\r\n private readonly _abortControllerType: { prototype: AbortController, new(): AbortController };\r\n private readonly _fetchType: (input: RequestInfo, init?: RequestInit) => Promise;\r\n private readonly _jar?: CookieJar;\r\n\r\n private readonly _logger: ILogger;\r\n\r\n public constructor(logger: ILogger) {\r\n super();\r\n this._logger = logger;\r\n\r\n if (typeof fetch === \"undefined\") {\r\n // In order to ignore the dynamic require in webpack builds we need to do this magic\r\n // @ts-ignore: TS doesn't know about these names\r\n const requireFunc = typeof __webpack_require__ === \"function\" ? __non_webpack_require__ : require;\r\n\r\n // Cookies aren't automatically handled in Node so we need to add a CookieJar to preserve cookies across requests\r\n this._jar = new (requireFunc(\"tough-cookie\")).CookieJar();\r\n this._fetchType = requireFunc(\"node-fetch\");\r\n\r\n // node-fetch doesn't have a nice API for getting and setting cookies\r\n // fetch-cookie will wrap a fetch implementation with a default CookieJar or a provided one\r\n this._fetchType = requireFunc(\"fetch-cookie\")(this._fetchType, this._jar);\r\n } else {\r\n this._fetchType = fetch.bind(getGlobalThis());\r\n }\r\n if (typeof AbortController === \"undefined\") {\r\n // In order to ignore the dynamic require in webpack builds we need to do this magic\r\n // @ts-ignore: TS doesn't know about these names\r\n const requireFunc = typeof __webpack_require__ === \"function\" ? __non_webpack_require__ : require;\r\n\r\n // Node needs EventListener methods on AbortController which our custom polyfill doesn't provide\r\n this._abortControllerType = requireFunc(\"abort-controller\");\r\n } else {\r\n this._abortControllerType = AbortController;\r\n }\r\n }\r\n\r\n /** @inheritDoc */\r\n public async send(request: HttpRequest): Promise {\r\n // Check that abort was not signaled before calling send\r\n if (request.abortSignal && request.abortSignal.aborted) {\r\n throw new AbortError();\r\n }\r\n\r\n if (!request.method) {\r\n throw new Error(\"No method defined.\");\r\n }\r\n if (!request.url) {\r\n throw new Error(\"No url defined.\");\r\n }\r\n\r\n const abortController = new this._abortControllerType();\r\n\r\n let error: any;\r\n // Hook our abortSignal into the abort controller\r\n if (request.abortSignal) {\r\n request.abortSignal.onabort = () => {\r\n abortController.abort();\r\n error = new AbortError();\r\n };\r\n }\r\n\r\n // If a timeout has been passed in, setup a timeout to call abort\r\n // Type needs to be any to fit window.setTimeout and NodeJS.setTimeout\r\n let timeoutId: any = null;\r\n if (request.timeout) {\r\n const msTimeout = request.timeout!;\r\n timeoutId = setTimeout(() => {\r\n abortController.abort();\r\n this._logger.log(LogLevel.Warning, `Timeout from HTTP request.`);\r\n error = new TimeoutError();\r\n }, msTimeout);\r\n }\r\n\r\n if (request.content === \"\") {\r\n request.content = undefined;\r\n }\r\n if (request.content) {\r\n // Explicitly setting the Content-Type header for React Native on Android platform.\r\n request.headers = request.headers || {};\r\n if (isArrayBuffer(request.content)) {\r\n request.headers[\"Content-Type\"] = \"application/octet-stream\";\r\n } else {\r\n request.headers[\"Content-Type\"] = \"text/plain;charset=UTF-8\";\r\n }\r\n }\r\n\r\n let response: Response;\r\n try {\r\n response = await this._fetchType(request.url!, {\r\n body: request.content,\r\n cache: \"no-cache\",\r\n credentials: request.withCredentials === true ? \"include\" : \"same-origin\",\r\n headers: {\r\n \"X-Requested-With\": \"XMLHttpRequest\",\r\n ...request.headers,\r\n },\r\n method: request.method!,\r\n mode: \"cors\",\r\n redirect: \"follow\",\r\n signal: abortController.signal,\r\n });\r\n } catch (e) {\r\n if (error) {\r\n throw error;\r\n }\r\n this._logger.log(\r\n LogLevel.Warning,\r\n `Error from HTTP request. ${e}.`,\r\n );\r\n throw e;\r\n } finally {\r\n if (timeoutId) {\r\n clearTimeout(timeoutId);\r\n }\r\n if (request.abortSignal) {\r\n request.abortSignal.onabort = null;\r\n }\r\n }\r\n\r\n if (!response.ok) {\r\n const errorMessage = await deserializeContent(response, \"text\") as string;\r\n throw new HttpError(errorMessage || response.statusText, response.status);\r\n }\r\n\r\n const content = deserializeContent(response, request.responseType);\r\n const payload = await content;\r\n\r\n return new HttpResponse(\r\n response.status,\r\n response.statusText,\r\n payload,\r\n );\r\n }\r\n\r\n public getCookieString(url: string): string {\r\n let cookies: string = \"\";\r\n if (Platform.isNode && this._jar) {\r\n // @ts-ignore: unused variable\r\n this._jar.getCookies(url, (e, c) => cookies = c.join(\"; \"));\r\n }\r\n return cookies;\r\n }\r\n}\r\n\r\nfunction deserializeContent(response: Response, responseType?: XMLHttpRequestResponseType): Promise {\r\n let content;\r\n switch (responseType) {\r\n case \"arraybuffer\":\r\n content = response.arrayBuffer();\r\n break;\r\n case \"text\":\r\n content = response.text();\r\n break;\r\n case \"blob\":\r\n case \"document\":\r\n case \"json\":\r\n throw new Error(`${responseType} is not supported.`);\r\n default:\r\n content = response.text();\r\n break;\r\n }\r\n\r\n return content;\r\n}\r\n","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\n\r\nimport { AbortError, HttpError, TimeoutError } from \"./Errors\";\r\nimport { HttpClient, HttpRequest, HttpResponse } from \"./HttpClient\";\r\nimport { ILogger, LogLevel } from \"./ILogger\";\r\nimport { isArrayBuffer } from \"./Utils\";\r\n\r\nexport class XhrHttpClient extends HttpClient {\r\n private readonly _logger: ILogger;\r\n\r\n public constructor(logger: ILogger) {\r\n super();\r\n this._logger = logger;\r\n }\r\n\r\n /** @inheritDoc */\r\n public send(request: HttpRequest): Promise {\r\n // Check that abort was not signaled before calling send\r\n if (request.abortSignal && request.abortSignal.aborted) {\r\n return Promise.reject(new AbortError());\r\n }\r\n\r\n if (!request.method) {\r\n return Promise.reject(new Error(\"No method defined.\"));\r\n }\r\n if (!request.url) {\r\n return Promise.reject(new Error(\"No url defined.\"));\r\n }\r\n\r\n return new Promise((resolve, reject) => {\r\n const xhr = new XMLHttpRequest();\r\n\r\n xhr.open(request.method!, request.url!, true);\r\n xhr.withCredentials = request.withCredentials === undefined ? true : request.withCredentials;\r\n xhr.setRequestHeader(\"X-Requested-With\", \"XMLHttpRequest\");\r\n if (request.content === \"\") {\r\n request.content = undefined;\r\n }\r\n if (request.content) {\r\n // Explicitly setting the Content-Type header for React Native on Android platform.\r\n if (isArrayBuffer(request.content)) {\r\n xhr.setRequestHeader(\"Content-Type\", \"application/octet-stream\");\r\n } else {\r\n xhr.setRequestHeader(\"Content-Type\", \"text/plain;charset=UTF-8\");\r\n }\r\n }\r\n\r\n const headers = request.headers;\r\n if (headers) {\r\n Object.keys(headers)\r\n .forEach((header) => {\r\n xhr.setRequestHeader(header, headers[header]);\r\n });\r\n }\r\n\r\n if (request.responseType) {\r\n xhr.responseType = request.responseType;\r\n }\r\n\r\n if (request.abortSignal) {\r\n request.abortSignal.onabort = () => {\r\n xhr.abort();\r\n reject(new AbortError());\r\n };\r\n }\r\n\r\n if (request.timeout) {\r\n xhr.timeout = request.timeout;\r\n }\r\n\r\n xhr.onload = () => {\r\n if (request.abortSignal) {\r\n request.abortSignal.onabort = null;\r\n }\r\n\r\n if (xhr.status >= 200 && xhr.status < 300) {\r\n resolve(new HttpResponse(xhr.status, xhr.statusText, xhr.response || xhr.responseText));\r\n } else {\r\n reject(new HttpError(xhr.response || xhr.responseText || xhr.statusText, xhr.status));\r\n }\r\n };\r\n\r\n xhr.onerror = () => {\r\n this._logger.log(LogLevel.Warning, `Error from HTTP request. ${xhr.status}: ${xhr.statusText}.`);\r\n reject(new HttpError(xhr.statusText, xhr.status));\r\n };\r\n\r\n xhr.ontimeout = () => {\r\n this._logger.log(LogLevel.Warning, `Timeout from HTTP request.`);\r\n reject(new TimeoutError());\r\n };\r\n\r\n xhr.send(request.content);\r\n });\r\n }\r\n}\r\n","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\n\r\nimport { AbortError } from \"./Errors\";\r\nimport { FetchHttpClient } from \"./FetchHttpClient\";\r\nimport { HttpClient, HttpRequest, HttpResponse } from \"./HttpClient\";\r\nimport { ILogger } from \"./ILogger\";\r\nimport { Platform } from \"./Utils\";\r\nimport { XhrHttpClient } from \"./XhrHttpClient\";\r\n\r\n/** Default implementation of {@link @microsoft/signalr.HttpClient}. */\r\nexport class DefaultHttpClient extends HttpClient {\r\n private readonly _httpClient: HttpClient;\r\n\r\n /** Creates a new instance of the {@link @microsoft/signalr.DefaultHttpClient}, using the provided {@link @microsoft/signalr.ILogger} to log messages. */\r\n public constructor(logger: ILogger) {\r\n super();\r\n\r\n if (typeof fetch !== \"undefined\" || Platform.isNode) {\r\n this._httpClient = new FetchHttpClient(logger);\r\n } else if (typeof XMLHttpRequest !== \"undefined\") {\r\n this._httpClient = new XhrHttpClient(logger);\r\n } else {\r\n throw new Error(\"No usable HttpClient found.\");\r\n }\r\n }\r\n\r\n /** @inheritDoc */\r\n public send(request: HttpRequest): Promise {\r\n // Check that abort was not signaled before calling send\r\n if (request.abortSignal && request.abortSignal.aborted) {\r\n return Promise.reject(new AbortError());\r\n }\r\n\r\n if (!request.method) {\r\n return Promise.reject(new Error(\"No method defined.\"));\r\n }\r\n if (!request.url) {\r\n return Promise.reject(new Error(\"No url defined.\"));\r\n }\r\n\r\n return this._httpClient.send(request);\r\n }\r\n\r\n public getCookieString(url: string): string {\r\n return this._httpClient.getCookieString(url);\r\n }\r\n}\r\n","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\n\r\n// Not exported from index\r\n/** @private */\r\nexport class TextMessageFormat {\r\n public static RecordSeparatorCode = 0x1e;\r\n public static RecordSeparator = String.fromCharCode(TextMessageFormat.RecordSeparatorCode);\r\n\r\n public static write(output: string): string {\r\n return `${output}${TextMessageFormat.RecordSeparator}`;\r\n }\r\n\r\n public static parse(input: string): string[] {\r\n if (input[input.length - 1] !== TextMessageFormat.RecordSeparator) {\r\n throw new Error(\"Message is incomplete.\");\r\n }\r\n\r\n const messages = input.split(TextMessageFormat.RecordSeparator);\r\n messages.pop();\r\n return messages;\r\n }\r\n}\r\n","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\n\r\nimport { TextMessageFormat } from \"./TextMessageFormat\";\r\nimport { isArrayBuffer } from \"./Utils\";\r\n\r\n/** @private */\r\nexport interface HandshakeRequestMessage {\r\n readonly protocol: string;\r\n readonly version: number;\r\n}\r\n\r\n/** @private */\r\nexport interface HandshakeResponseMessage {\r\n readonly error: string;\r\n readonly minorVersion: number;\r\n}\r\n\r\n/** @private */\r\nexport class HandshakeProtocol {\r\n // Handshake request is always JSON\r\n public writeHandshakeRequest(handshakeRequest: HandshakeRequestMessage): string {\r\n return TextMessageFormat.write(JSON.stringify(handshakeRequest));\r\n }\r\n\r\n public parseHandshakeResponse(data: any): [any, HandshakeResponseMessage] {\r\n let messageData: string;\r\n let remainingData: any;\r\n\r\n if (isArrayBuffer(data)) {\r\n // Format is binary but still need to read JSON text from handshake response\r\n const binaryData = new Uint8Array(data);\r\n const separatorIndex = binaryData.indexOf(TextMessageFormat.RecordSeparatorCode);\r\n if (separatorIndex === -1) {\r\n throw new Error(\"Message is incomplete.\");\r\n }\r\n\r\n // content before separator is handshake response\r\n // optional content after is additional messages\r\n const responseLength = separatorIndex + 1;\r\n messageData = String.fromCharCode.apply(null, Array.prototype.slice.call(binaryData.slice(0, responseLength)));\r\n remainingData = (binaryData.byteLength > responseLength) ? binaryData.slice(responseLength).buffer : null;\r\n } else {\r\n const textData: string = data;\r\n const separatorIndex = textData.indexOf(TextMessageFormat.RecordSeparator);\r\n if (separatorIndex === -1) {\r\n throw new Error(\"Message is incomplete.\");\r\n }\r\n\r\n // content before separator is handshake response\r\n // optional content after is additional messages\r\n const responseLength = separatorIndex + 1;\r\n messageData = textData.substring(0, responseLength);\r\n remainingData = (textData.length > responseLength) ? textData.substring(responseLength) : null;\r\n }\r\n\r\n // At this point we should have just the single handshake message\r\n const messages = TextMessageFormat.parse(messageData);\r\n const response = JSON.parse(messages[0]);\r\n if (response.type) {\r\n throw new Error(\"Expected a handshake response from the server.\");\r\n }\r\n const responseMessage: HandshakeResponseMessage = response;\r\n\r\n // multiple messages could have arrived with handshake\r\n // return additional data to be parsed as usual, or null if all parsed\r\n return [remainingData, responseMessage];\r\n }\r\n}\r\n","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\n\r\nimport { ILogger } from \"./ILogger\";\r\nimport { TransferFormat } from \"./ITransport\";\r\n\r\n/** Defines the type of a Hub Message. */\r\nexport enum MessageType {\r\n /** Indicates the message is an Invocation message and implements the {@link @microsoft/signalr.InvocationMessage} interface. */\r\n Invocation = 1,\r\n /** Indicates the message is a StreamItem message and implements the {@link @microsoft/signalr.StreamItemMessage} interface. */\r\n StreamItem = 2,\r\n /** Indicates the message is a Completion message and implements the {@link @microsoft/signalr.CompletionMessage} interface. */\r\n Completion = 3,\r\n /** Indicates the message is a Stream Invocation message and implements the {@link @microsoft/signalr.StreamInvocationMessage} interface. */\r\n StreamInvocation = 4,\r\n /** Indicates the message is a Cancel Invocation message and implements the {@link @microsoft/signalr.CancelInvocationMessage} interface. */\r\n CancelInvocation = 5,\r\n /** Indicates the message is a Ping message and implements the {@link @microsoft/signalr.PingMessage} interface. */\r\n Ping = 6,\r\n /** Indicates the message is a Close message and implements the {@link @microsoft/signalr.CloseMessage} interface. */\r\n Close = 7,\r\n}\r\n\r\n/** Defines a dictionary of string keys and string values representing headers attached to a Hub message. */\r\nexport interface MessageHeaders {\r\n /** Gets or sets the header with the specified key. */\r\n [key: string]: string;\r\n}\r\n\r\n/** Union type of all known Hub messages. */\r\nexport type HubMessage =\r\n InvocationMessage |\r\n StreamInvocationMessage |\r\n StreamItemMessage |\r\n CompletionMessage |\r\n CancelInvocationMessage |\r\n PingMessage |\r\n CloseMessage;\r\n\r\n/** Defines properties common to all Hub messages. */\r\nexport interface HubMessageBase {\r\n /** A {@link @microsoft/signalr.MessageType} value indicating the type of this message. */\r\n readonly type: MessageType;\r\n}\r\n\r\n/** Defines properties common to all Hub messages relating to a specific invocation. */\r\nexport interface HubInvocationMessage extends HubMessageBase {\r\n /** A {@link @microsoft/signalr.MessageHeaders} dictionary containing headers attached to the message. */\r\n readonly headers?: MessageHeaders;\r\n /** The ID of the invocation relating to this message.\r\n *\r\n * This is expected to be present for {@link @microsoft/signalr.StreamInvocationMessage} and {@link @microsoft/signalr.CompletionMessage}. It may\r\n * be 'undefined' for an {@link @microsoft/signalr.InvocationMessage} if the sender does not expect a response.\r\n */\r\n readonly invocationId?: string;\r\n}\r\n\r\n/** A hub message representing a non-streaming invocation. */\r\nexport interface InvocationMessage extends HubInvocationMessage {\r\n /** @inheritDoc */\r\n readonly type: MessageType.Invocation;\r\n /** The target method name. */\r\n readonly target: string;\r\n /** The target method arguments. */\r\n readonly arguments: any[];\r\n /** The target methods stream IDs. */\r\n readonly streamIds?: string[];\r\n}\r\n\r\n/** A hub message representing a streaming invocation. */\r\nexport interface StreamInvocationMessage extends HubInvocationMessage {\r\n /** @inheritDoc */\r\n readonly type: MessageType.StreamInvocation;\r\n\r\n /** The invocation ID. */\r\n readonly invocationId: string;\r\n /** The target method name. */\r\n readonly target: string;\r\n /** The target method arguments. */\r\n readonly arguments: any[];\r\n /** The target methods stream IDs. */\r\n readonly streamIds?: string[];\r\n}\r\n\r\n/** A hub message representing a single item produced as part of a result stream. */\r\nexport interface StreamItemMessage extends HubInvocationMessage {\r\n /** @inheritDoc */\r\n readonly type: MessageType.StreamItem;\r\n\r\n /** The invocation ID. */\r\n readonly invocationId: string;\r\n\r\n /** The item produced by the server. */\r\n readonly item?: any;\r\n}\r\n\r\n/** A hub message representing the result of an invocation. */\r\nexport interface CompletionMessage extends HubInvocationMessage {\r\n /** @inheritDoc */\r\n readonly type: MessageType.Completion;\r\n /** The invocation ID. */\r\n readonly invocationId: string;\r\n /** The error produced by the invocation, if any.\r\n *\r\n * Either {@link @microsoft/signalr.CompletionMessage.error} or {@link @microsoft/signalr.CompletionMessage.result} must be defined, but not both.\r\n */\r\n readonly error?: string;\r\n /** The result produced by the invocation, if any.\r\n *\r\n * Either {@link @microsoft/signalr.CompletionMessage.error} or {@link @microsoft/signalr.CompletionMessage.result} must be defined, but not both.\r\n */\r\n readonly result?: any;\r\n}\r\n\r\n/** A hub message indicating that the sender is still active. */\r\nexport interface PingMessage extends HubMessageBase {\r\n /** @inheritDoc */\r\n readonly type: MessageType.Ping;\r\n}\r\n\r\n/** A hub message indicating that the sender is closing the connection.\r\n *\r\n * If {@link @microsoft/signalr.CloseMessage.error} is defined, the sender is closing the connection due to an error.\r\n */\r\nexport interface CloseMessage extends HubMessageBase {\r\n /** @inheritDoc */\r\n readonly type: MessageType.Close;\r\n /** The error that triggered the close, if any.\r\n *\r\n * If this property is undefined, the connection was closed normally and without error.\r\n */\r\n readonly error?: string;\r\n\r\n /** If true, clients with automatic reconnects enabled should attempt to reconnect after receiving the CloseMessage. Otherwise, they should not. */\r\n readonly allowReconnect?: boolean;\r\n}\r\n\r\n/** A hub message sent to request that a streaming invocation be canceled. */\r\nexport interface CancelInvocationMessage extends HubInvocationMessage {\r\n /** @inheritDoc */\r\n readonly type: MessageType.CancelInvocation;\r\n /** The invocation ID. */\r\n readonly invocationId: string;\r\n}\r\n\r\n/** A protocol abstraction for communicating with SignalR Hubs. */\r\nexport interface IHubProtocol {\r\n /** The name of the protocol. This is used by SignalR to resolve the protocol between the client and server. */\r\n readonly name: string;\r\n /** The version of the protocol. */\r\n readonly version: number;\r\n /** The {@link @microsoft/signalr.TransferFormat} of the protocol. */\r\n readonly transferFormat: TransferFormat;\r\n\r\n /** Creates an array of {@link @microsoft/signalr.HubMessage} objects from the specified serialized representation.\r\n *\r\n * If {@link @microsoft/signalr.IHubProtocol.transferFormat} is 'Text', the `input` parameter must be a string, otherwise it must be an ArrayBuffer.\r\n *\r\n * @param {string | ArrayBuffer} input A string or ArrayBuffer containing the serialized representation.\r\n * @param {ILogger} logger A logger that will be used to log messages that occur during parsing.\r\n */\r\n parseMessages(input: string | ArrayBuffer, logger: ILogger): HubMessage[];\r\n\r\n /** Writes the specified {@link @microsoft/signalr.HubMessage} to a string or ArrayBuffer and returns it.\r\n *\r\n * If {@link @microsoft/signalr.IHubProtocol.transferFormat} is 'Text', the result of this method will be a string, otherwise it will be an ArrayBuffer.\r\n *\r\n * @param {HubMessage} message The message to write.\r\n * @returns {string | ArrayBuffer} A string or ArrayBuffer containing the serialized representation of the message.\r\n */\r\n writeMessage(message: HubMessage): string | ArrayBuffer;\r\n}\r\n","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\n\r\nimport { IStreamResult, IStreamSubscriber, ISubscription } from \"./Stream\";\r\nimport { SubjectSubscription } from \"./Utils\";\r\n\r\n/** Stream implementation to stream items to the server. */\r\nexport class Subject implements IStreamResult {\r\n /** @internal */\r\n public observers: IStreamSubscriber[];\r\n\r\n /** @internal */\r\n public cancelCallback?: () => Promise;\r\n\r\n constructor() {\r\n this.observers = [];\r\n }\r\n\r\n public next(item: T): void {\r\n for (const observer of this.observers) {\r\n observer.next(item);\r\n }\r\n }\r\n\r\n public error(err: any): void {\r\n for (const observer of this.observers) {\r\n if (observer.error) {\r\n observer.error(err);\r\n }\r\n }\r\n }\r\n\r\n public complete(): void {\r\n for (const observer of this.observers) {\r\n if (observer.complete) {\r\n observer.complete();\r\n }\r\n }\r\n }\r\n\r\n public subscribe(observer: IStreamSubscriber): ISubscription {\r\n this.observers.push(observer);\r\n return new SubjectSubscription(this, observer);\r\n }\r\n}\r\n","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\n\r\nimport { HandshakeProtocol, HandshakeRequestMessage, HandshakeResponseMessage } from \"./HandshakeProtocol\";\r\nimport { IConnection } from \"./IConnection\";\r\nimport { AbortError } from \"./Errors\";\r\nimport { CancelInvocationMessage, CompletionMessage, IHubProtocol, InvocationMessage, MessageType, StreamInvocationMessage, StreamItemMessage } from \"./IHubProtocol\";\r\nimport { ILogger, LogLevel } from \"./ILogger\";\r\nimport { IRetryPolicy } from \"./IRetryPolicy\";\r\nimport { IStreamResult } from \"./Stream\";\r\nimport { Subject } from \"./Subject\";\r\nimport { Arg, getErrorString, Platform } from \"./Utils\";\r\n\r\nconst DEFAULT_TIMEOUT_IN_MS: number = 30 * 1000;\r\nconst DEFAULT_PING_INTERVAL_IN_MS: number = 15 * 1000;\r\n\r\n/** Describes the current state of the {@link HubConnection} to the server. */\r\nexport enum HubConnectionState {\r\n /** The hub connection is disconnected. */\r\n Disconnected = \"Disconnected\",\r\n /** The hub connection is connecting. */\r\n Connecting = \"Connecting\",\r\n /** The hub connection is connected. */\r\n Connected = \"Connected\",\r\n /** The hub connection is disconnecting. */\r\n Disconnecting = \"Disconnecting\",\r\n /** The hub connection is reconnecting. */\r\n Reconnecting = \"Reconnecting\",\r\n}\r\n\r\n/** Represents a connection to a SignalR Hub. */\r\nexport class HubConnection {\r\n private readonly _cachedPingMessage: string | ArrayBuffer;\r\n // Needs to not start with _ for tests\r\n // eslint-disable-next-line @typescript-eslint/naming-convention\r\n private readonly connection: IConnection;\r\n private readonly _logger: ILogger;\r\n private readonly _reconnectPolicy?: IRetryPolicy;\r\n private _protocol: IHubProtocol;\r\n private _handshakeProtocol: HandshakeProtocol;\r\n private _callbacks: { [invocationId: string]: (invocationEvent: StreamItemMessage | CompletionMessage | null, error?: Error) => void };\r\n private _methods: { [name: string]: (((...args: any[]) => void) | ((...args: any[]) => any))[] };\r\n private _invocationId: number;\r\n\r\n private _closedCallbacks: ((error?: Error) => void)[];\r\n private _reconnectingCallbacks: ((error?: Error) => void)[];\r\n private _reconnectedCallbacks: ((connectionId?: string) => void)[];\r\n\r\n private _receivedHandshakeResponse: boolean;\r\n private _handshakeResolver!: (value?: PromiseLike<{}>) => void;\r\n private _handshakeRejecter!: (reason?: any) => void;\r\n private _stopDuringStartError?: Error;\r\n\r\n private _connectionState: HubConnectionState;\r\n // connectionStarted is tracked independently from connectionState, so we can check if the\r\n // connection ever did successfully transition from connecting to connected before disconnecting.\r\n private _connectionStarted: boolean;\r\n private _startPromise?: Promise;\r\n private _stopPromise?: Promise;\r\n private _nextKeepAlive: number = 0;\r\n\r\n // The type of these a) doesn't matter and b) varies when building in browser and node contexts\r\n // Since we're building the WebPack bundle directly from the TypeScript, this matters (previously\r\n // we built the bundle from the compiled JavaScript).\r\n private _reconnectDelayHandle?: any;\r\n private _timeoutHandle?: any;\r\n private _pingServerHandle?: any;\r\n\r\n private _freezeEventListener = () =>\r\n {\r\n this._logger.log(LogLevel.Warning, \"The page is being frozen, this will likely lead to the connection being closed and messages being lost. For more information see the docs at https://docs.microsoft.com/aspnet/core/signalr/javascript-client#bsleep\");\r\n };\r\n\r\n /** The server timeout in milliseconds.\r\n *\r\n * If this timeout elapses without receiving any messages from the server, the connection will be terminated with an error.\r\n * The default timeout value is 30,000 milliseconds (30 seconds).\r\n */\r\n public serverTimeoutInMilliseconds: number;\r\n\r\n /** Default interval at which to ping the server.\r\n *\r\n * The default value is 15,000 milliseconds (15 seconds).\r\n * Allows the server to detect hard disconnects (like when a client unplugs their computer).\r\n * The ping will happen at most as often as the server pings.\r\n * If the server pings every 5 seconds, a value lower than 5 will ping every 5 seconds.\r\n */\r\n public keepAliveIntervalInMilliseconds: number;\r\n\r\n /** @internal */\r\n // Using a public static factory method means we can have a private constructor and an _internal_\r\n // create method that can be used by HubConnectionBuilder. An \"internal\" constructor would just\r\n // be stripped away and the '.d.ts' file would have no constructor, which is interpreted as a\r\n // public parameter-less constructor.\r\n public static create(connection: IConnection, logger: ILogger, protocol: IHubProtocol, reconnectPolicy?: IRetryPolicy): HubConnection {\r\n return new HubConnection(connection, logger, protocol, reconnectPolicy);\r\n }\r\n\r\n private constructor(connection: IConnection, logger: ILogger, protocol: IHubProtocol, reconnectPolicy?: IRetryPolicy) {\r\n Arg.isRequired(connection, \"connection\");\r\n Arg.isRequired(logger, \"logger\");\r\n Arg.isRequired(protocol, \"protocol\");\r\n\r\n this.serverTimeoutInMilliseconds = DEFAULT_TIMEOUT_IN_MS;\r\n this.keepAliveIntervalInMilliseconds = DEFAULT_PING_INTERVAL_IN_MS;\r\n\r\n this._logger = logger;\r\n this._protocol = protocol;\r\n this.connection = connection;\r\n this._reconnectPolicy = reconnectPolicy;\r\n this._handshakeProtocol = new HandshakeProtocol();\r\n\r\n this.connection.onreceive = (data: any) => this._processIncomingData(data);\r\n this.connection.onclose = (error?: Error) => this._connectionClosed(error);\r\n\r\n this._callbacks = {};\r\n this._methods = {};\r\n this._closedCallbacks = [];\r\n this._reconnectingCallbacks = [];\r\n this._reconnectedCallbacks = [];\r\n this._invocationId = 0;\r\n this._receivedHandshakeResponse = false;\r\n this._connectionState = HubConnectionState.Disconnected;\r\n this._connectionStarted = false;\r\n\r\n this._cachedPingMessage = this._protocol.writeMessage({ type: MessageType.Ping });\r\n }\r\n\r\n /** Indicates the state of the {@link HubConnection} to the server. */\r\n get state(): HubConnectionState {\r\n return this._connectionState;\r\n }\r\n\r\n /** Represents the connection id of the {@link HubConnection} on the server. The connection id will be null when the connection is either\r\n * in the disconnected state or if the negotiation step was skipped.\r\n */\r\n get connectionId(): string | null {\r\n return this.connection ? (this.connection.connectionId || null) : null;\r\n }\r\n\r\n /** Indicates the url of the {@link HubConnection} to the server. */\r\n get baseUrl(): string {\r\n return this.connection.baseUrl || \"\";\r\n }\r\n\r\n /**\r\n * Sets a new url for the HubConnection. Note that the url can only be changed when the connection is in either the Disconnected or\r\n * Reconnecting states.\r\n * @param {string} url The url to connect to.\r\n */\r\n set baseUrl(url: string) {\r\n if (this._connectionState !== HubConnectionState.Disconnected && this._connectionState !== HubConnectionState.Reconnecting) {\r\n throw new Error(\"The HubConnection must be in the Disconnected or Reconnecting state to change the url.\");\r\n }\r\n\r\n if (!url) {\r\n throw new Error(\"The HubConnection url must be a valid url.\");\r\n }\r\n\r\n this.connection.baseUrl = url;\r\n }\r\n\r\n /** Starts the connection.\r\n *\r\n * @returns {Promise} A Promise that resolves when the connection has been successfully established, or rejects with an error.\r\n */\r\n public start(): Promise {\r\n this._startPromise = this._startWithStateTransitions();\r\n return this._startPromise;\r\n }\r\n\r\n private async _startWithStateTransitions(): Promise {\r\n if (this._connectionState !== HubConnectionState.Disconnected) {\r\n return Promise.reject(new Error(\"Cannot start a HubConnection that is not in the 'Disconnected' state.\"));\r\n }\r\n\r\n this._connectionState = HubConnectionState.Connecting;\r\n this._logger.log(LogLevel.Debug, \"Starting HubConnection.\");\r\n\r\n try {\r\n await this._startInternal();\r\n\r\n if (Platform.isBrowser) {\r\n // Log when the browser freezes the tab so users know why their connection unexpectedly stopped working\r\n window.document.addEventListener(\"freeze\", this._freezeEventListener);\r\n }\r\n\r\n this._connectionState = HubConnectionState.Connected;\r\n this._connectionStarted = true;\r\n this._logger.log(LogLevel.Debug, \"HubConnection connected successfully.\");\r\n } catch (e) {\r\n this._connectionState = HubConnectionState.Disconnected;\r\n this._logger.log(LogLevel.Debug, `HubConnection failed to start successfully because of error '${e}'.`);\r\n return Promise.reject(e);\r\n }\r\n }\r\n\r\n private async _startInternal() {\r\n this._stopDuringStartError = undefined;\r\n this._receivedHandshakeResponse = false;\r\n // Set up the promise before any connection is (re)started otherwise it could race with received messages\r\n const handshakePromise = new Promise((resolve, reject) => {\r\n this._handshakeResolver = resolve;\r\n this._handshakeRejecter = reject;\r\n });\r\n\r\n await this.connection.start(this._protocol.transferFormat);\r\n\r\n try {\r\n const handshakeRequest: HandshakeRequestMessage = {\r\n protocol: this._protocol.name,\r\n version: this._protocol.version,\r\n };\r\n\r\n this._logger.log(LogLevel.Debug, \"Sending handshake request.\");\r\n\r\n await this._sendMessage(this._handshakeProtocol.writeHandshakeRequest(handshakeRequest));\r\n\r\n this._logger.log(LogLevel.Information, `Using HubProtocol '${this._protocol.name}'.`);\r\n\r\n // defensively cleanup timeout in case we receive a message from the server before we finish start\r\n this._cleanupTimeout();\r\n this._resetTimeoutPeriod();\r\n this._resetKeepAliveInterval();\r\n\r\n await handshakePromise;\r\n\r\n // It's important to check the stopDuringStartError instead of just relying on the handshakePromise\r\n // being rejected on close, because this continuation can run after both the handshake completed successfully\r\n // and the connection was closed.\r\n if (this._stopDuringStartError) {\r\n // It's important to throw instead of returning a rejected promise, because we don't want to allow any state\r\n // transitions to occur between now and the calling code observing the exceptions. Returning a rejected promise\r\n // will cause the calling continuation to get scheduled to run later.\r\n // eslint-disable-next-line @typescript-eslint/no-throw-literal\r\n throw this._stopDuringStartError;\r\n }\r\n\r\n if (!this.connection.features.inherentKeepAlive) {\r\n await this._sendMessage(this._cachedPingMessage);\r\n }\r\n } catch (e) {\r\n this._logger.log(LogLevel.Debug, `Hub handshake failed with error '${e}' during start(). Stopping HubConnection.`);\r\n\r\n this._cleanupTimeout();\r\n this._cleanupPingTimer();\r\n\r\n // HttpConnection.stop() should not complete until after the onclose callback is invoked.\r\n // This will transition the HubConnection to the disconnected state before HttpConnection.stop() completes.\r\n await this.connection.stop(e);\r\n throw e;\r\n }\r\n }\r\n\r\n /** Stops the connection.\r\n *\r\n * @returns {Promise} A Promise that resolves when the connection has been successfully terminated, or rejects with an error.\r\n */\r\n public async stop(): Promise {\r\n // Capture the start promise before the connection might be restarted in an onclose callback.\r\n const startPromise = this._startPromise;\r\n\r\n this._stopPromise = this._stopInternal();\r\n await this._stopPromise;\r\n\r\n try {\r\n // Awaiting undefined continues immediately\r\n await startPromise;\r\n } catch (e) {\r\n // This exception is returned to the user as a rejected Promise from the start method.\r\n }\r\n }\r\n\r\n private _stopInternal(error?: Error): Promise {\r\n if (this._connectionState === HubConnectionState.Disconnected) {\r\n this._logger.log(LogLevel.Debug, `Call to HubConnection.stop(${error}) ignored because it is already in the disconnected state.`);\r\n return Promise.resolve();\r\n }\r\n\r\n if (this._connectionState === HubConnectionState.Disconnecting) {\r\n this._logger.log(LogLevel.Debug, `Call to HttpConnection.stop(${error}) ignored because the connection is already in the disconnecting state.`);\r\n return this._stopPromise!;\r\n }\r\n\r\n this._connectionState = HubConnectionState.Disconnecting;\r\n\r\n this._logger.log(LogLevel.Debug, \"Stopping HubConnection.\");\r\n\r\n if (this._reconnectDelayHandle) {\r\n // We're in a reconnect delay which means the underlying connection is currently already stopped.\r\n // Just clear the handle to stop the reconnect loop (which no one is waiting on thankfully) and\r\n // fire the onclose callbacks.\r\n this._logger.log(LogLevel.Debug, \"Connection stopped during reconnect delay. Done reconnecting.\");\r\n\r\n clearTimeout(this._reconnectDelayHandle);\r\n this._reconnectDelayHandle = undefined;\r\n\r\n this._completeClose();\r\n return Promise.resolve();\r\n }\r\n\r\n this._cleanupTimeout();\r\n this._cleanupPingTimer();\r\n this._stopDuringStartError = error || new AbortError(\"The connection was stopped before the hub handshake could complete.\");\r\n\r\n // HttpConnection.stop() should not complete until after either HttpConnection.start() fails\r\n // or the onclose callback is invoked. The onclose callback will transition the HubConnection\r\n // to the disconnected state if need be before HttpConnection.stop() completes.\r\n return this.connection.stop(error);\r\n }\r\n\r\n /** Invokes a streaming hub method on the server using the specified name and arguments.\r\n *\r\n * @typeparam T The type of the items returned by the server.\r\n * @param {string} methodName The name of the server method to invoke.\r\n * @param {any[]} args The arguments used to invoke the server method.\r\n * @returns {IStreamResult} An object that yields results from the server as they are received.\r\n */\r\n public stream(methodName: string, ...args: any[]): IStreamResult {\r\n const [streams, streamIds] = this._replaceStreamingParams(args);\r\n const invocationDescriptor = this._createStreamInvocation(methodName, args, streamIds);\r\n\r\n // eslint-disable-next-line prefer-const\r\n let promiseQueue: Promise;\r\n\r\n const subject = new Subject();\r\n subject.cancelCallback = () => {\r\n const cancelInvocation: CancelInvocationMessage = this._createCancelInvocation(invocationDescriptor.invocationId);\r\n\r\n delete this._callbacks[invocationDescriptor.invocationId];\r\n\r\n return promiseQueue.then(() => {\r\n return this._sendWithProtocol(cancelInvocation);\r\n });\r\n };\r\n\r\n this._callbacks[invocationDescriptor.invocationId] = (invocationEvent: CompletionMessage | StreamItemMessage | null, error?: Error) => {\r\n if (error) {\r\n subject.error(error);\r\n return;\r\n } else if (invocationEvent) {\r\n // invocationEvent will not be null when an error is not passed to the callback\r\n if (invocationEvent.type === MessageType.Completion) {\r\n if (invocationEvent.error) {\r\n subject.error(new Error(invocationEvent.error));\r\n } else {\r\n subject.complete();\r\n }\r\n } else {\r\n subject.next((invocationEvent.item) as T);\r\n }\r\n }\r\n };\r\n\r\n promiseQueue = this._sendWithProtocol(invocationDescriptor)\r\n .catch((e) => {\r\n subject.error(e);\r\n delete this._callbacks[invocationDescriptor.invocationId];\r\n });\r\n\r\n this._launchStreams(streams, promiseQueue);\r\n\r\n return subject;\r\n }\r\n\r\n private _sendMessage(message: any) {\r\n this._resetKeepAliveInterval();\r\n return this.connection.send(message);\r\n }\r\n\r\n /**\r\n * Sends a js object to the server.\r\n * @param message The js object to serialize and send.\r\n */\r\n private _sendWithProtocol(message: any) {\r\n return this._sendMessage(this._protocol.writeMessage(message));\r\n }\r\n\r\n /** Invokes a hub method on the server using the specified name and arguments. Does not wait for a response from the receiver.\r\n *\r\n * The Promise returned by this method resolves when the client has sent the invocation to the server. The server may still\r\n * be processing the invocation.\r\n *\r\n * @param {string} methodName The name of the server method to invoke.\r\n * @param {any[]} args The arguments used to invoke the server method.\r\n * @returns {Promise} A Promise that resolves when the invocation has been successfully sent, or rejects with an error.\r\n */\r\n public send(methodName: string, ...args: any[]): Promise {\r\n const [streams, streamIds] = this._replaceStreamingParams(args);\r\n const sendPromise = this._sendWithProtocol(this._createInvocation(methodName, args, true, streamIds));\r\n\r\n this._launchStreams(streams, sendPromise);\r\n\r\n return sendPromise;\r\n }\r\n\r\n /** Invokes a hub method on the server using the specified name and arguments.\r\n *\r\n * The Promise returned by this method resolves when the server indicates it has finished invoking the method. When the promise\r\n * resolves, the server has finished invoking the method. If the server method returns a result, it is produced as the result of\r\n * resolving the Promise.\r\n *\r\n * @typeparam T The expected return type.\r\n * @param {string} methodName The name of the server method to invoke.\r\n * @param {any[]} args The arguments used to invoke the server method.\r\n * @returns {Promise} A Promise that resolves with the result of the server method (if any), or rejects with an error.\r\n */\r\n public invoke(methodName: string, ...args: any[]): Promise {\r\n const [streams, streamIds] = this._replaceStreamingParams(args);\r\n const invocationDescriptor = this._createInvocation(methodName, args, false, streamIds);\r\n\r\n const p = new Promise((resolve, reject) => {\r\n // invocationId will always have a value for a non-blocking invocation\r\n this._callbacks[invocationDescriptor.invocationId!] = (invocationEvent: StreamItemMessage | CompletionMessage | null, error?: Error) => {\r\n if (error) {\r\n reject(error);\r\n return;\r\n } else if (invocationEvent) {\r\n // invocationEvent will not be null when an error is not passed to the callback\r\n if (invocationEvent.type === MessageType.Completion) {\r\n if (invocationEvent.error) {\r\n reject(new Error(invocationEvent.error));\r\n } else {\r\n resolve(invocationEvent.result);\r\n }\r\n } else {\r\n reject(new Error(`Unexpected message type: ${invocationEvent.type}`));\r\n }\r\n }\r\n };\r\n\r\n const promiseQueue = this._sendWithProtocol(invocationDescriptor)\r\n .catch((e) => {\r\n reject(e);\r\n // invocationId will always have a value for a non-blocking invocation\r\n delete this._callbacks[invocationDescriptor.invocationId!];\r\n });\r\n\r\n this._launchStreams(streams, promiseQueue);\r\n });\r\n\r\n return p;\r\n }\r\n\r\n /** Registers a handler that will be invoked when the hub method with the specified method name is invoked.\r\n *\r\n * @param {string} methodName The name of the hub method to define.\r\n * @param {Function} newMethod The handler that will be raised when the hub method is invoked.\r\n */\r\n public on(methodName: string, newMethod: (...args: any[]) => any): void\r\n public on(methodName: string, newMethod: (...args: any[]) => void): void {\r\n if (!methodName || !newMethod) {\r\n return;\r\n }\r\n\r\n methodName = methodName.toLowerCase();\r\n if (!this._methods[methodName]) {\r\n this._methods[methodName] = [];\r\n }\r\n\r\n // Preventing adding the same handler multiple times.\r\n if (this._methods[methodName].indexOf(newMethod) !== -1) {\r\n return;\r\n }\r\n\r\n this._methods[methodName].push(newMethod);\r\n }\r\n\r\n /** Removes all handlers for the specified hub method.\r\n *\r\n * @param {string} methodName The name of the method to remove handlers for.\r\n */\r\n public off(methodName: string): void;\r\n\r\n /** Removes the specified handler for the specified hub method.\r\n *\r\n * You must pass the exact same Function instance as was previously passed to {@link @microsoft/signalr.HubConnection.on}. Passing a different instance (even if the function\r\n * body is the same) will not remove the handler.\r\n *\r\n * @param {string} methodName The name of the method to remove handlers for.\r\n * @param {Function} method The handler to remove. This must be the same Function instance as the one passed to {@link @microsoft/signalr.HubConnection.on}.\r\n */\r\n public off(methodName: string, method: (...args: any[]) => void): void;\r\n public off(methodName: string, method?: (...args: any[]) => void): void {\r\n if (!methodName) {\r\n return;\r\n }\r\n\r\n methodName = methodName.toLowerCase();\r\n const handlers = this._methods[methodName];\r\n if (!handlers) {\r\n return;\r\n }\r\n if (method) {\r\n const removeIdx = handlers.indexOf(method);\r\n if (removeIdx !== -1) {\r\n handlers.splice(removeIdx, 1);\r\n if (handlers.length === 0) {\r\n delete this._methods[methodName];\r\n }\r\n }\r\n } else {\r\n delete this._methods[methodName];\r\n }\r\n\r\n }\r\n\r\n /** Registers a handler that will be invoked when the connection is closed.\r\n *\r\n * @param {Function} callback The handler that will be invoked when the connection is closed. Optionally receives a single argument containing the error that caused the connection to close (if any).\r\n */\r\n public onclose(callback: (error?: Error) => void): void {\r\n if (callback) {\r\n this._closedCallbacks.push(callback);\r\n }\r\n }\r\n\r\n /** Registers a handler that will be invoked when the connection starts reconnecting.\r\n *\r\n * @param {Function} callback The handler that will be invoked when the connection starts reconnecting. Optionally receives a single argument containing the error that caused the connection to start reconnecting (if any).\r\n */\r\n public onreconnecting(callback: (error?: Error) => void): void {\r\n if (callback) {\r\n this._reconnectingCallbacks.push(callback);\r\n }\r\n }\r\n\r\n /** Registers a handler that will be invoked when the connection successfully reconnects.\r\n *\r\n * @param {Function} callback The handler that will be invoked when the connection successfully reconnects.\r\n */\r\n public onreconnected(callback: (connectionId?: string) => void): void {\r\n if (callback) {\r\n this._reconnectedCallbacks.push(callback);\r\n }\r\n }\r\n\r\n private _processIncomingData(data: any) {\r\n this._cleanupTimeout();\r\n\r\n if (!this._receivedHandshakeResponse) {\r\n data = this._processHandshakeResponse(data);\r\n this._receivedHandshakeResponse = true;\r\n }\r\n\r\n // Data may have all been read when processing handshake response\r\n if (data) {\r\n // Parse the messages\r\n const messages = this._protocol.parseMessages(data, this._logger);\r\n\r\n for (const message of messages) {\r\n switch (message.type) {\r\n case MessageType.Invocation:\r\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\r\n this._invokeClientMethod(message);\r\n break;\r\n case MessageType.StreamItem:\r\n case MessageType.Completion: {\r\n const callback = this._callbacks[message.invocationId];\r\n if (callback) {\r\n if (message.type === MessageType.Completion) {\r\n delete this._callbacks[message.invocationId];\r\n }\r\n try {\r\n callback(message);\r\n } catch (e) {\r\n this._logger.log(LogLevel.Error, `Stream callback threw error: ${getErrorString(e)}`);\r\n }\r\n }\r\n break;\r\n }\r\n case MessageType.Ping:\r\n // Don't care about pings\r\n break;\r\n case MessageType.Close: {\r\n this._logger.log(LogLevel.Information, \"Close message received from server.\");\r\n\r\n const error = message.error ? new Error(\"Server returned an error on close: \" + message.error) : undefined;\r\n\r\n if (message.allowReconnect === true) {\r\n // It feels wrong not to await connection.stop() here, but processIncomingData is called as part of an onreceive callback which is not async,\r\n // this is already the behavior for serverTimeout(), and HttpConnection.Stop() should catch and log all possible exceptions.\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\r\n this.connection.stop(error);\r\n } else {\r\n // We cannot await stopInternal() here, but subsequent calls to stop() will await this if stopInternal() is still ongoing.\r\n this._stopPromise = this._stopInternal(error);\r\n }\r\n\r\n break;\r\n }\r\n default:\r\n this._logger.log(LogLevel.Warning, `Invalid message type: ${message.type}.`);\r\n break;\r\n }\r\n }\r\n }\r\n\r\n this._resetTimeoutPeriod();\r\n }\r\n\r\n private _processHandshakeResponse(data: any): any {\r\n let responseMessage: HandshakeResponseMessage;\r\n let remainingData: any;\r\n\r\n try {\r\n [remainingData, responseMessage] = this._handshakeProtocol.parseHandshakeResponse(data);\r\n } catch (e) {\r\n const message = \"Error parsing handshake response: \" + e;\r\n this._logger.log(LogLevel.Error, message);\r\n\r\n const error = new Error(message);\r\n this._handshakeRejecter(error);\r\n throw error;\r\n }\r\n if (responseMessage.error) {\r\n const message = \"Server returned handshake error: \" + responseMessage.error;\r\n this._logger.log(LogLevel.Error, message);\r\n\r\n const error = new Error(message);\r\n this._handshakeRejecter(error);\r\n throw error;\r\n } else {\r\n this._logger.log(LogLevel.Debug, \"Server handshake complete.\");\r\n }\r\n\r\n this._handshakeResolver();\r\n return remainingData;\r\n }\r\n\r\n private _resetKeepAliveInterval() {\r\n if (this.connection.features.inherentKeepAlive) {\r\n return;\r\n }\r\n\r\n // Set the time we want the next keep alive to be sent\r\n // Timer will be setup on next message receive\r\n this._nextKeepAlive = new Date().getTime() + this.keepAliveIntervalInMilliseconds;\r\n\r\n this._cleanupPingTimer();\r\n }\r\n\r\n private _resetTimeoutPeriod() {\r\n if (!this.connection.features || !this.connection.features.inherentKeepAlive) {\r\n // Set the timeout timer\r\n this._timeoutHandle = setTimeout(() => this.serverTimeout(), this.serverTimeoutInMilliseconds);\r\n\r\n // Set keepAlive timer if there isn't one\r\n if (this._pingServerHandle === undefined)\r\n {\r\n let nextPing = this._nextKeepAlive - new Date().getTime();\r\n if (nextPing < 0) {\r\n nextPing = 0;\r\n }\r\n\r\n // The timer needs to be set from a networking callback to avoid Chrome timer throttling from causing timers to run once a minute\r\n this._pingServerHandle = setTimeout(async () => {\r\n if (this._connectionState === HubConnectionState.Connected) {\r\n try {\r\n await this._sendMessage(this._cachedPingMessage);\r\n } catch {\r\n // We don't care about the error. It should be seen elsewhere in the client.\r\n // The connection is probably in a bad or closed state now, cleanup the timer so it stops triggering\r\n this._cleanupPingTimer();\r\n }\r\n }\r\n }, nextPing);\r\n }\r\n }\r\n }\r\n\r\n // eslint-disable-next-line @typescript-eslint/naming-convention\r\n private serverTimeout() {\r\n // The server hasn't talked to us in a while. It doesn't like us anymore ... :(\r\n // Terminate the connection, but we don't need to wait on the promise. This could trigger reconnecting.\r\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\r\n this.connection.stop(new Error(\"Server timeout elapsed without receiving a message from the server.\"));\r\n }\r\n\r\n private async _invokeClientMethod(invocationMessage: InvocationMessage) {\r\n const methodName = invocationMessage.target.toLowerCase();\r\n const methods = this._methods[methodName];\r\n if (!methods) {\r\n this._logger.log(LogLevel.Warning, `No client method with the name '${methodName}' found.`);\r\n\r\n // No handlers provided by client but the server is expecting a response still, so we send an error\r\n if (invocationMessage.invocationId) {\r\n this._logger.log(LogLevel.Warning, `No result given for '${methodName}' method and invocation ID '${invocationMessage.invocationId}'.`);\r\n await this._sendWithProtocol(this._createCompletionMessage(invocationMessage.invocationId, \"Client didn't provide a result.\", null));\r\n }\r\n return;\r\n }\r\n\r\n // Avoid issues with handlers removing themselves thus modifying the list while iterating through it\r\n const methodsCopy = methods.slice();\r\n\r\n // Server expects a response\r\n const expectsResponse = invocationMessage.invocationId ? true : false;\r\n // We preserve the last result or exception but still call all handlers\r\n let res;\r\n let exception;\r\n let completionMessage;\r\n for (const m of methodsCopy) {\r\n try {\r\n const prevRes = res;\r\n res = await m.apply(this, invocationMessage.arguments);\r\n if (expectsResponse && res && prevRes) {\r\n this._logger.log(LogLevel.Error, `Multiple results provided for '${methodName}'. Sending error to server.`);\r\n completionMessage = this._createCompletionMessage(invocationMessage.invocationId!, `Client provided multiple results.`, null);\r\n }\r\n // Ignore exception if we got a result after, the exception will be logged\r\n exception = undefined;\r\n } catch (e) {\r\n exception = e;\r\n this._logger.log(LogLevel.Error, `A callback for the method '${methodName}' threw error '${e}'.`);\r\n }\r\n }\r\n if (completionMessage) {\r\n await this._sendWithProtocol(completionMessage);\r\n } else if (expectsResponse) {\r\n // If there is an exception that means either no result was given or a handler after a result threw\r\n if (exception) {\r\n completionMessage = this._createCompletionMessage(invocationMessage.invocationId!, `${exception}`, null);\r\n } else if (res !== undefined) {\r\n completionMessage = this._createCompletionMessage(invocationMessage.invocationId!, null, res);\r\n } else {\r\n this._logger.log(LogLevel.Warning, `No result given for '${methodName}' method and invocation ID '${invocationMessage.invocationId}'.`);\r\n // Client didn't provide a result or throw from a handler, server expects a response so we send an error\r\n completionMessage = this._createCompletionMessage(invocationMessage.invocationId!, \"Client didn't provide a result.\", null);\r\n }\r\n await this._sendWithProtocol(completionMessage);\r\n } else {\r\n if (res) {\r\n this._logger.log(LogLevel.Error, `Result given for '${methodName}' method but server is not expecting a result.`);\r\n }\r\n }\r\n }\r\n\r\n private _connectionClosed(error?: Error) {\r\n this._logger.log(LogLevel.Debug, `HubConnection.connectionClosed(${error}) called while in state ${this._connectionState}.`);\r\n\r\n // Triggering this.handshakeRejecter is insufficient because it could already be resolved without the continuation having run yet.\r\n this._stopDuringStartError = this._stopDuringStartError || error || new AbortError(\"The underlying connection was closed before the hub handshake could complete.\");\r\n\r\n // If the handshake is in progress, start will be waiting for the handshake promise, so we complete it.\r\n // If it has already completed, this should just noop.\r\n if (this._handshakeResolver) {\r\n this._handshakeResolver();\r\n }\r\n\r\n this._cancelCallbacksWithError(error || new Error(\"Invocation canceled due to the underlying connection being closed.\"));\r\n\r\n this._cleanupTimeout();\r\n this._cleanupPingTimer();\r\n\r\n if (this._connectionState === HubConnectionState.Disconnecting) {\r\n this._completeClose(error);\r\n } else if (this._connectionState === HubConnectionState.Connected && this._reconnectPolicy) {\r\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\r\n this._reconnect(error);\r\n } else if (this._connectionState === HubConnectionState.Connected) {\r\n this._completeClose(error);\r\n }\r\n\r\n // If none of the above if conditions were true were called the HubConnection must be in either:\r\n // 1. The Connecting state in which case the handshakeResolver will complete it and stopDuringStartError will fail it.\r\n // 2. The Reconnecting state in which case the handshakeResolver will complete it and stopDuringStartError will fail the current reconnect attempt\r\n // and potentially continue the reconnect() loop.\r\n // 3. The Disconnected state in which case we're already done.\r\n }\r\n\r\n private _completeClose(error?: Error) {\r\n if (this._connectionStarted) {\r\n this._connectionState = HubConnectionState.Disconnected;\r\n this._connectionStarted = false;\r\n\r\n if (Platform.isBrowser) {\r\n window.document.removeEventListener(\"freeze\", this._freezeEventListener);\r\n }\r\n\r\n try {\r\n this._closedCallbacks.forEach((c) => c.apply(this, [error]));\r\n } catch (e) {\r\n this._logger.log(LogLevel.Error, `An onclose callback called with error '${error}' threw error '${e}'.`);\r\n }\r\n }\r\n }\r\n\r\n private async _reconnect(error?: Error) {\r\n const reconnectStartTime = Date.now();\r\n let previousReconnectAttempts = 0;\r\n let retryError = error !== undefined ? error : new Error(\"Attempting to reconnect due to a unknown error.\");\r\n\r\n let nextRetryDelay = this._getNextRetryDelay(previousReconnectAttempts++, 0, retryError);\r\n\r\n if (nextRetryDelay === null) {\r\n this._logger.log(LogLevel.Debug, \"Connection not reconnecting because the IRetryPolicy returned null on the first reconnect attempt.\");\r\n this._completeClose(error);\r\n return;\r\n }\r\n\r\n this._connectionState = HubConnectionState.Reconnecting;\r\n\r\n if (error) {\r\n this._logger.log(LogLevel.Information, `Connection reconnecting because of error '${error}'.`);\r\n } else {\r\n this._logger.log(LogLevel.Information, \"Connection reconnecting.\");\r\n }\r\n\r\n if (this._reconnectingCallbacks.length !== 0) {\r\n try {\r\n this._reconnectingCallbacks.forEach((c) => c.apply(this, [error]));\r\n } catch (e) {\r\n this._logger.log(LogLevel.Error, `An onreconnecting callback called with error '${error}' threw error '${e}'.`);\r\n }\r\n\r\n // Exit early if an onreconnecting callback called connection.stop().\r\n if (this._connectionState !== HubConnectionState.Reconnecting) {\r\n this._logger.log(LogLevel.Debug, \"Connection left the reconnecting state in onreconnecting callback. Done reconnecting.\");\r\n return;\r\n }\r\n }\r\n\r\n while (nextRetryDelay !== null) {\r\n this._logger.log(LogLevel.Information, `Reconnect attempt number ${previousReconnectAttempts} will start in ${nextRetryDelay} ms.`);\r\n\r\n await new Promise((resolve) => {\r\n this._reconnectDelayHandle = setTimeout(resolve, nextRetryDelay!);\r\n });\r\n this._reconnectDelayHandle = undefined;\r\n\r\n if (this._connectionState !== HubConnectionState.Reconnecting) {\r\n this._logger.log(LogLevel.Debug, \"Connection left the reconnecting state during reconnect delay. Done reconnecting.\");\r\n return;\r\n }\r\n\r\n try {\r\n await this._startInternal();\r\n\r\n this._connectionState = HubConnectionState.Connected;\r\n this._logger.log(LogLevel.Information, \"HubConnection reconnected successfully.\");\r\n\r\n if (this._reconnectedCallbacks.length !== 0) {\r\n try {\r\n this._reconnectedCallbacks.forEach((c) => c.apply(this, [this.connection.connectionId]));\r\n } catch (e) {\r\n this._logger.log(LogLevel.Error, `An onreconnected callback called with connectionId '${this.connection.connectionId}; threw error '${e}'.`);\r\n }\r\n }\r\n\r\n return;\r\n } catch (e) {\r\n this._logger.log(LogLevel.Information, `Reconnect attempt failed because of error '${e}'.`);\r\n\r\n if (this._connectionState !== HubConnectionState.Reconnecting) {\r\n this._logger.log(LogLevel.Debug, `Connection moved to the '${this._connectionState}' from the reconnecting state during reconnect attempt. Done reconnecting.`);\r\n // The TypeScript compiler thinks that connectionState must be Connected here. The TypeScript compiler is wrong.\r\n if (this._connectionState as any === HubConnectionState.Disconnecting) {\r\n this._completeClose();\r\n }\r\n return;\r\n }\r\n\r\n retryError = e instanceof Error ? e : new Error(e.toString());\r\n nextRetryDelay = this._getNextRetryDelay(previousReconnectAttempts++, Date.now() - reconnectStartTime, retryError);\r\n }\r\n }\r\n\r\n this._logger.log(LogLevel.Information, `Reconnect retries have been exhausted after ${Date.now() - reconnectStartTime} ms and ${previousReconnectAttempts} failed attempts. Connection disconnecting.`);\r\n\r\n this._completeClose();\r\n }\r\n\r\n private _getNextRetryDelay(previousRetryCount: number, elapsedMilliseconds: number, retryReason: Error) {\r\n try {\r\n return this._reconnectPolicy!.nextRetryDelayInMilliseconds({\r\n elapsedMilliseconds,\r\n previousRetryCount,\r\n retryReason,\r\n });\r\n } catch (e) {\r\n this._logger.log(LogLevel.Error, `IRetryPolicy.nextRetryDelayInMilliseconds(${previousRetryCount}, ${elapsedMilliseconds}) threw error '${e}'.`);\r\n return null;\r\n }\r\n }\r\n\r\n private _cancelCallbacksWithError(error: Error) {\r\n const callbacks = this._callbacks;\r\n this._callbacks = {};\r\n\r\n Object.keys(callbacks)\r\n .forEach((key) => {\r\n const callback = callbacks[key];\r\n try {\r\n callback(null, error);\r\n } catch (e) {\r\n this._logger.log(LogLevel.Error, `Stream 'error' callback called with '${error}' threw error: ${getErrorString(e)}`);\r\n }\r\n });\r\n }\r\n\r\n private _cleanupPingTimer(): void {\r\n if (this._pingServerHandle) {\r\n clearTimeout(this._pingServerHandle);\r\n this._pingServerHandle = undefined;\r\n }\r\n }\r\n\r\n private _cleanupTimeout(): void {\r\n if (this._timeoutHandle) {\r\n clearTimeout(this._timeoutHandle);\r\n }\r\n }\r\n\r\n private _createInvocation(methodName: string, args: any[], nonblocking: boolean, streamIds: string[]): InvocationMessage {\r\n if (nonblocking) {\r\n if (streamIds.length !== 0) {\r\n return {\r\n arguments: args,\r\n streamIds,\r\n target: methodName,\r\n type: MessageType.Invocation,\r\n };\r\n } else {\r\n return {\r\n arguments: args,\r\n target: methodName,\r\n type: MessageType.Invocation,\r\n };\r\n }\r\n } else {\r\n const invocationId = this._invocationId;\r\n this._invocationId++;\r\n\r\n if (streamIds.length !== 0) {\r\n return {\r\n arguments: args,\r\n invocationId: invocationId.toString(),\r\n streamIds,\r\n target: methodName,\r\n type: MessageType.Invocation,\r\n };\r\n } else {\r\n return {\r\n arguments: args,\r\n invocationId: invocationId.toString(),\r\n target: methodName,\r\n type: MessageType.Invocation,\r\n };\r\n }\r\n }\r\n }\r\n\r\n private _launchStreams(streams: IStreamResult[], promiseQueue: Promise): void {\r\n if (streams.length === 0) {\r\n return;\r\n }\r\n\r\n // Synchronize stream data so they arrive in-order on the server\r\n if (!promiseQueue) {\r\n promiseQueue = Promise.resolve();\r\n }\r\n\r\n // We want to iterate over the keys, since the keys are the stream ids\r\n // eslint-disable-next-line guard-for-in\r\n for (const streamId in streams) {\r\n streams[streamId].subscribe({\r\n complete: () => {\r\n promiseQueue = promiseQueue.then(() => this._sendWithProtocol(this._createCompletionMessage(streamId)));\r\n },\r\n error: (err) => {\r\n let message: string;\r\n if (err instanceof Error) {\r\n message = err.message;\r\n } else if (err && err.toString) {\r\n message = err.toString();\r\n } else {\r\n message = \"Unknown error\";\r\n }\r\n\r\n promiseQueue = promiseQueue.then(() => this._sendWithProtocol(this._createCompletionMessage(streamId, message)));\r\n },\r\n next: (item) => {\r\n promiseQueue = promiseQueue.then(() => this._sendWithProtocol(this._createStreamItemMessage(streamId, item)));\r\n },\r\n });\r\n }\r\n }\r\n\r\n private _replaceStreamingParams(args: any[]): [IStreamResult[], string[]] {\r\n const streams: IStreamResult[] = [];\r\n const streamIds: string[] = [];\r\n for (let i = 0; i < args.length; i++) {\r\n const argument = args[i];\r\n if (this._isObservable(argument)) {\r\n const streamId = this._invocationId;\r\n this._invocationId++;\r\n // Store the stream for later use\r\n streams[streamId] = argument;\r\n streamIds.push(streamId.toString());\r\n\r\n // remove stream from args\r\n args.splice(i, 1);\r\n }\r\n }\r\n\r\n return [streams, streamIds];\r\n }\r\n\r\n private _isObservable(arg: any): arg is IStreamResult {\r\n // This allows other stream implementations to just work (like rxjs)\r\n return arg && arg.subscribe && typeof arg.subscribe === \"function\";\r\n }\r\n\r\n private _createStreamInvocation(methodName: string, args: any[], streamIds: string[]): StreamInvocationMessage {\r\n const invocationId = this._invocationId;\r\n this._invocationId++;\r\n\r\n if (streamIds.length !== 0) {\r\n return {\r\n arguments: args,\r\n invocationId: invocationId.toString(),\r\n streamIds,\r\n target: methodName,\r\n type: MessageType.StreamInvocation,\r\n };\r\n } else {\r\n return {\r\n arguments: args,\r\n invocationId: invocationId.toString(),\r\n target: methodName,\r\n type: MessageType.StreamInvocation,\r\n };\r\n }\r\n }\r\n\r\n private _createCancelInvocation(id: string): CancelInvocationMessage {\r\n return {\r\n invocationId: id,\r\n type: MessageType.CancelInvocation,\r\n };\r\n }\r\n\r\n private _createStreamItemMessage(id: string, item: any): StreamItemMessage {\r\n return {\r\n invocationId: id,\r\n item,\r\n type: MessageType.StreamItem,\r\n };\r\n }\r\n\r\n private _createCompletionMessage(id: string, error?: any, result?: any): CompletionMessage {\r\n if (error) {\r\n return {\r\n error,\r\n invocationId: id,\r\n type: MessageType.Completion,\r\n };\r\n }\r\n\r\n return {\r\n invocationId: id,\r\n result,\r\n type: MessageType.Completion,\r\n };\r\n }\r\n}\r\n","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\n\r\nimport { IRetryPolicy, RetryContext } from \"./IRetryPolicy\";\r\n\r\n// 0, 2, 10, 30 second delays before reconnect attempts.\r\nconst DEFAULT_RETRY_DELAYS_IN_MILLISECONDS = [0, 2000, 10000, 30000, null];\r\n\r\n/** @private */\r\nexport class DefaultReconnectPolicy implements IRetryPolicy {\r\n private readonly _retryDelays: (number | null)[];\r\n\r\n constructor(retryDelays?: number[]) {\r\n this._retryDelays = retryDelays !== undefined ? [...retryDelays, null] : DEFAULT_RETRY_DELAYS_IN_MILLISECONDS;\r\n }\r\n\r\n public nextRetryDelayInMilliseconds(retryContext: RetryContext): number | null {\r\n return this._retryDelays[retryContext.previousRetryCount];\r\n }\r\n}\r\n","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\n\r\nexport abstract class HeaderNames {\r\n static readonly Authorization = \"Authorization\";\r\n static readonly Cookie = \"Cookie\";\r\n}\r\n","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\n\r\nimport { HeaderNames } from \"./HeaderNames\";\r\nimport { HttpClient, HttpRequest, HttpResponse } from \"./HttpClient\";\r\n\r\n/** @private */\r\nexport class AccessTokenHttpClient extends HttpClient {\r\n private _innerClient: HttpClient;\r\n _accessToken: string | undefined;\r\n _accessTokenFactory: (() => string | Promise) | undefined;\r\n\r\n constructor(innerClient: HttpClient, accessTokenFactory: (() => string | Promise) | undefined) {\r\n super();\r\n\r\n this._innerClient = innerClient;\r\n this._accessTokenFactory = accessTokenFactory;\r\n }\r\n\r\n public async send(request: HttpRequest): Promise {\r\n let allowRetry = true;\r\n if (this._accessTokenFactory && (!this._accessToken || (request.url && request.url.indexOf(\"/negotiate?\") > 0))) {\r\n // don't retry if the request is a negotiate or if we just got a potentially new token from the access token factory\r\n allowRetry = false;\r\n this._accessToken = await this._accessTokenFactory();\r\n }\r\n this._setAuthorizationHeader(request);\r\n const response = await this._innerClient.send(request);\r\n\r\n if (allowRetry && response.statusCode === 401 && this._accessTokenFactory) {\r\n this._accessToken = await this._accessTokenFactory();\r\n this._setAuthorizationHeader(request);\r\n return await this._innerClient.send(request);\r\n }\r\n return response;\r\n }\r\n\r\n private _setAuthorizationHeader(request: HttpRequest) {\r\n if (!request.headers) {\r\n request.headers = {};\r\n }\r\n if (this._accessToken) {\r\n request.headers[HeaderNames.Authorization] = `Bearer ${this._accessToken}`\r\n }\r\n // don't remove the header if there isn't an access token factory, the user manually added the header in this case\r\n else if (this._accessTokenFactory) {\r\n if (request.headers[HeaderNames.Authorization]) {\r\n delete request.headers[HeaderNames.Authorization];\r\n }\r\n }\r\n }\r\n\r\n public getCookieString(url: string): string {\r\n return this._innerClient.getCookieString(url);\r\n }\r\n}","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\n\r\n// This will be treated as a bit flag in the future, so we keep it using power-of-two values.\r\n/** Specifies a specific HTTP transport type. */\r\nexport enum HttpTransportType {\r\n /** Specifies no transport preference. */\r\n None = 0,\r\n /** Specifies the WebSockets transport. */\r\n WebSockets = 1,\r\n /** Specifies the Server-Sent Events transport. */\r\n ServerSentEvents = 2,\r\n /** Specifies the Long Polling transport. */\r\n LongPolling = 4,\r\n}\r\n\r\n/** Specifies the transfer format for a connection. */\r\nexport enum TransferFormat {\r\n /** Specifies that only text data will be transmitted over the connection. */\r\n Text = 1,\r\n /** Specifies that binary data will be transmitted over the connection. */\r\n Binary = 2,\r\n}\r\n\r\n/** An abstraction over the behavior of transports. This is designed to support the framework and not intended for use by applications. */\r\nexport interface ITransport {\r\n connect(url: string, transferFormat: TransferFormat): Promise;\r\n send(data: any): Promise;\r\n stop(): Promise;\r\n onreceive: ((data: string | ArrayBuffer) => void) | null;\r\n onclose: ((error?: Error) => void) | null;\r\n}\r\n","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\n\r\n// Rough polyfill of https://developer.mozilla.org/en-US/docs/Web/API/AbortController\r\n// We don't actually ever use the API being polyfilled, we always use the polyfill because\r\n// it's a very new API right now.\r\n\r\n// Not exported from index.\r\n/** @private */\r\nexport class AbortController implements AbortSignal {\r\n private _isAborted: boolean = false;\r\n public onabort: (() => void) | null = null;\r\n\r\n public abort(): void {\r\n if (!this._isAborted) {\r\n this._isAborted = true;\r\n if (this.onabort) {\r\n this.onabort();\r\n }\r\n }\r\n }\r\n\r\n get signal(): AbortSignal {\r\n return this;\r\n }\r\n\r\n get aborted(): boolean {\r\n return this._isAborted;\r\n }\r\n}\r\n\r\n/** Represents a signal that can be monitored to determine if a request has been aborted. */\r\nexport interface AbortSignal {\r\n /** Indicates if the request has been aborted. */\r\n aborted: boolean;\r\n /** Set this to a handler that will be invoked when the request is aborted. */\r\n onabort: (() => void) | null;\r\n}\r\n","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\n\r\nimport { AbortController } from \"./AbortController\";\r\nimport { HttpError, TimeoutError } from \"./Errors\";\r\nimport { HttpClient, HttpRequest } from \"./HttpClient\";\r\nimport { ILogger, LogLevel } from \"./ILogger\";\r\nimport { ITransport, TransferFormat } from \"./ITransport\";\r\nimport { Arg, getDataDetail, getUserAgentHeader, sendMessage } from \"./Utils\";\r\nimport { IHttpConnectionOptions } from \"./IHttpConnectionOptions\";\r\n\r\n// Not exported from 'index', this type is internal.\r\n/** @private */\r\nexport class LongPollingTransport implements ITransport {\r\n private readonly _httpClient: HttpClient;\r\n private readonly _logger: ILogger;\r\n private readonly _options: IHttpConnectionOptions;\r\n private readonly _pollAbort: AbortController;\r\n\r\n private _url?: string;\r\n private _running: boolean;\r\n private _receiving?: Promise;\r\n private _closeError?: Error;\r\n\r\n public onreceive: ((data: string | ArrayBuffer) => void) | null;\r\n public onclose: ((error?: Error) => void) | null;\r\n\r\n // This is an internal type, not exported from 'index' so this is really just internal.\r\n public get pollAborted(): boolean {\r\n return this._pollAbort.aborted;\r\n }\r\n\r\n constructor(httpClient: HttpClient, logger: ILogger, options: IHttpConnectionOptions) {\r\n this._httpClient = httpClient;\r\n this._logger = logger;\r\n this._pollAbort = new AbortController();\r\n this._options = options;\r\n\r\n this._running = false;\r\n\r\n this.onreceive = null;\r\n this.onclose = null;\r\n }\r\n\r\n public async connect(url: string, transferFormat: TransferFormat): Promise {\r\n Arg.isRequired(url, \"url\");\r\n Arg.isRequired(transferFormat, \"transferFormat\");\r\n Arg.isIn(transferFormat, TransferFormat, \"transferFormat\");\r\n\r\n this._url = url;\r\n\r\n this._logger.log(LogLevel.Trace, \"(LongPolling transport) Connecting.\");\r\n\r\n // Allow binary format on Node and Browsers that support binary content (indicated by the presence of responseType property)\r\n if (transferFormat === TransferFormat.Binary &&\r\n (typeof XMLHttpRequest !== \"undefined\" && typeof new XMLHttpRequest().responseType !== \"string\")) {\r\n throw new Error(\"Binary protocols over XmlHttpRequest not implementing advanced features are not supported.\");\r\n }\r\n\r\n const [name, value] = getUserAgentHeader();\r\n const headers = { [name]: value, ...this._options.headers };\r\n\r\n const pollOptions: HttpRequest = {\r\n abortSignal: this._pollAbort.signal,\r\n headers,\r\n timeout: 100000,\r\n withCredentials: this._options.withCredentials,\r\n };\r\n\r\n if (transferFormat === TransferFormat.Binary) {\r\n pollOptions.responseType = \"arraybuffer\";\r\n }\r\n\r\n // Make initial long polling request\r\n // Server uses first long polling request to finish initializing connection and it returns without data\r\n const pollUrl = `${url}&_=${Date.now()}`;\r\n this._logger.log(LogLevel.Trace, `(LongPolling transport) polling: ${pollUrl}.`);\r\n const response = await this._httpClient.get(pollUrl, pollOptions);\r\n if (response.statusCode !== 200) {\r\n this._logger.log(LogLevel.Error, `(LongPolling transport) Unexpected response code: ${response.statusCode}.`);\r\n\r\n // Mark running as false so that the poll immediately ends and runs the close logic\r\n this._closeError = new HttpError(response.statusText || \"\", response.statusCode);\r\n this._running = false;\r\n } else {\r\n this._running = true;\r\n }\r\n\r\n this._receiving = this._poll(this._url, pollOptions);\r\n }\r\n\r\n private async _poll(url: string, pollOptions: HttpRequest): Promise {\r\n try {\r\n while (this._running) {\r\n try {\r\n const pollUrl = `${url}&_=${Date.now()}`;\r\n this._logger.log(LogLevel.Trace, `(LongPolling transport) polling: ${pollUrl}.`);\r\n const response = await this._httpClient.get(pollUrl, pollOptions);\r\n\r\n if (response.statusCode === 204) {\r\n this._logger.log(LogLevel.Information, \"(LongPolling transport) Poll terminated by server.\");\r\n\r\n this._running = false;\r\n } else if (response.statusCode !== 200) {\r\n this._logger.log(LogLevel.Error, `(LongPolling transport) Unexpected response code: ${response.statusCode}.`);\r\n\r\n // Unexpected status code\r\n this._closeError = new HttpError(response.statusText || \"\", response.statusCode);\r\n this._running = false;\r\n } else {\r\n // Process the response\r\n if (response.content) {\r\n this._logger.log(LogLevel.Trace, `(LongPolling transport) data received. ${getDataDetail(response.content, this._options.logMessageContent!)}.`);\r\n if (this.onreceive) {\r\n this.onreceive(response.content);\r\n }\r\n } else {\r\n // This is another way timeout manifest.\r\n this._logger.log(LogLevel.Trace, \"(LongPolling transport) Poll timed out, reissuing.\");\r\n }\r\n }\r\n } catch (e) {\r\n if (!this._running) {\r\n // Log but disregard errors that occur after stopping\r\n this._logger.log(LogLevel.Trace, `(LongPolling transport) Poll errored after shutdown: ${e.message}`);\r\n } else {\r\n if (e instanceof TimeoutError) {\r\n // Ignore timeouts and reissue the poll.\r\n this._logger.log(LogLevel.Trace, \"(LongPolling transport) Poll timed out, reissuing.\");\r\n } else {\r\n // Close the connection with the error as the result.\r\n this._closeError = e;\r\n this._running = false;\r\n }\r\n }\r\n }\r\n }\r\n } finally {\r\n this._logger.log(LogLevel.Trace, \"(LongPolling transport) Polling complete.\");\r\n\r\n // We will reach here with pollAborted==false when the server returned a response causing the transport to stop.\r\n // If pollAborted==true then client initiated the stop and the stop method will raise the close event after DELETE is sent.\r\n if (!this.pollAborted) {\r\n this._raiseOnClose();\r\n }\r\n }\r\n }\r\n\r\n public async send(data: any): Promise {\r\n if (!this._running) {\r\n return Promise.reject(new Error(\"Cannot send until the transport is connected\"));\r\n }\r\n return sendMessage(this._logger, \"LongPolling\", this._httpClient, this._url!, data, this._options);\r\n }\r\n\r\n public async stop(): Promise {\r\n this._logger.log(LogLevel.Trace, \"(LongPolling transport) Stopping polling.\");\r\n\r\n // Tell receiving loop to stop, abort any current request, and then wait for it to finish\r\n this._running = false;\r\n this._pollAbort.abort();\r\n\r\n try {\r\n await this._receiving;\r\n\r\n // Send DELETE to clean up long polling on the server\r\n this._logger.log(LogLevel.Trace, `(LongPolling transport) sending DELETE request to ${this._url}.`);\r\n\r\n const headers: {[k: string]: string} = {};\r\n const [name, value] = getUserAgentHeader();\r\n headers[name] = value;\r\n\r\n const deleteOptions: HttpRequest = {\r\n headers: { ...headers, ...this._options.headers },\r\n timeout: this._options.timeout,\r\n withCredentials: this._options.withCredentials,\r\n };\r\n await this._httpClient.delete(this._url!, deleteOptions);\r\n\r\n this._logger.log(LogLevel.Trace, \"(LongPolling transport) DELETE request sent.\");\r\n } finally {\r\n this._logger.log(LogLevel.Trace, \"(LongPolling transport) Stop finished.\");\r\n\r\n // Raise close event here instead of in polling\r\n // It needs to happen after the DELETE request is sent\r\n this._raiseOnClose();\r\n }\r\n }\r\n\r\n private _raiseOnClose() {\r\n if (this.onclose) {\r\n let logMessage = \"(LongPolling transport) Firing onclose event.\";\r\n if (this._closeError) {\r\n logMessage += \" Error: \" + this._closeError;\r\n }\r\n this._logger.log(LogLevel.Trace, logMessage);\r\n this.onclose(this._closeError);\r\n }\r\n }\r\n}\r\n","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\n\r\nimport { HttpClient } from \"./HttpClient\";\r\nimport { MessageHeaders } from \"./IHubProtocol\";\r\nimport { ILogger, LogLevel } from \"./ILogger\";\r\nimport { ITransport, TransferFormat } from \"./ITransport\";\r\nimport { Arg, getDataDetail, getUserAgentHeader, Platform, sendMessage } from \"./Utils\";\r\nimport { IHttpConnectionOptions } from \"./IHttpConnectionOptions\";\r\n\r\n/** @private */\r\nexport class ServerSentEventsTransport implements ITransport {\r\n private readonly _httpClient: HttpClient;\r\n private readonly _accessToken: string | undefined;\r\n private readonly _logger: ILogger;\r\n private readonly _options: IHttpConnectionOptions;\r\n private _eventSource?: EventSource;\r\n private _url?: string;\r\n\r\n public onreceive: ((data: string | ArrayBuffer) => void) | null;\r\n public onclose: ((error?: Error) => void) | null;\r\n\r\n constructor(httpClient: HttpClient, accessToken: string | undefined, logger: ILogger,\r\n options: IHttpConnectionOptions) {\r\n this._httpClient = httpClient;\r\n this._accessToken = accessToken;\r\n this._logger = logger;\r\n this._options = options;\r\n\r\n this.onreceive = null;\r\n this.onclose = null;\r\n }\r\n\r\n public async connect(url: string, transferFormat: TransferFormat): Promise {\r\n Arg.isRequired(url, \"url\");\r\n Arg.isRequired(transferFormat, \"transferFormat\");\r\n Arg.isIn(transferFormat, TransferFormat, \"transferFormat\");\r\n\r\n this._logger.log(LogLevel.Trace, \"(SSE transport) Connecting.\");\r\n\r\n // set url before accessTokenFactory because this._url is only for send and we set the auth header instead of the query string for send\r\n this._url = url;\r\n\r\n if (this._accessToken) {\r\n url += (url.indexOf(\"?\") < 0 ? \"?\" : \"&\") + `access_token=${encodeURIComponent(this._accessToken)}`;\r\n }\r\n\r\n return new Promise((resolve, reject) => {\r\n let opened = false;\r\n if (transferFormat !== TransferFormat.Text) {\r\n reject(new Error(\"The Server-Sent Events transport only supports the 'Text' transfer format\"));\r\n return;\r\n }\r\n\r\n let eventSource: EventSource;\r\n if (Platform.isBrowser || Platform.isWebWorker) {\r\n eventSource = new this._options.EventSource!(url, { withCredentials: this._options.withCredentials });\r\n } else {\r\n // Non-browser passes cookies via the dictionary\r\n const cookies = this._httpClient.getCookieString(url);\r\n const headers: MessageHeaders = {};\r\n headers.Cookie = cookies;\r\n const [name, value] = getUserAgentHeader();\r\n headers[name] = value;\r\n\r\n eventSource = new this._options.EventSource!(url, { withCredentials: this._options.withCredentials, headers: { ...headers, ...this._options.headers} } as EventSourceInit);\r\n }\r\n\r\n try {\r\n eventSource.onmessage = (e: MessageEvent) => {\r\n if (this.onreceive) {\r\n try {\r\n this._logger.log(LogLevel.Trace, `(SSE transport) data received. ${getDataDetail(e.data, this._options.logMessageContent!)}.`);\r\n this.onreceive(e.data);\r\n } catch (error) {\r\n this._close(error);\r\n return;\r\n }\r\n }\r\n };\r\n\r\n // @ts-ignore: not using event on purpose\r\n eventSource.onerror = (e: Event) => {\r\n // EventSource doesn't give any useful information about server side closes.\r\n if (opened) {\r\n this._close();\r\n } else {\r\n reject(new Error(\"EventSource failed to connect. The connection could not be found on the server,\"\r\n + \" either the connection ID is not present on the server, or a proxy is refusing/buffering the connection.\"\r\n + \" If you have multiple servers check that sticky sessions are enabled.\"));\r\n }\r\n };\r\n\r\n eventSource.onopen = () => {\r\n this._logger.log(LogLevel.Information, `SSE connected to ${this._url}`);\r\n this._eventSource = eventSource;\r\n opened = true;\r\n resolve();\r\n };\r\n } catch (e) {\r\n reject(e);\r\n return;\r\n }\r\n });\r\n }\r\n\r\n public async send(data: any): Promise {\r\n if (!this._eventSource) {\r\n return Promise.reject(new Error(\"Cannot send until the transport is connected\"));\r\n }\r\n return sendMessage(this._logger, \"SSE\", this._httpClient, this._url!, data, this._options);\r\n }\r\n\r\n public stop(): Promise {\r\n this._close();\r\n return Promise.resolve();\r\n }\r\n\r\n private _close(e?: Error) {\r\n if (this._eventSource) {\r\n this._eventSource.close();\r\n this._eventSource = undefined;\r\n\r\n if (this.onclose) {\r\n this.onclose(e);\r\n }\r\n }\r\n }\r\n}\r\n","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\n\r\nimport { HeaderNames } from \"./HeaderNames\";\r\nimport { HttpClient } from \"./HttpClient\";\r\nimport { MessageHeaders } from \"./IHubProtocol\";\r\nimport { ILogger, LogLevel } from \"./ILogger\";\r\nimport { ITransport, TransferFormat } from \"./ITransport\";\r\nimport { WebSocketConstructor } from \"./Polyfills\";\r\nimport { Arg, getDataDetail, getUserAgentHeader, Platform } from \"./Utils\";\r\n\r\n/** @private */\r\nexport class WebSocketTransport implements ITransport {\r\n private readonly _logger: ILogger;\r\n private readonly _accessTokenFactory: (() => string | Promise) | undefined;\r\n private readonly _logMessageContent: boolean;\r\n private readonly _webSocketConstructor: WebSocketConstructor;\r\n private readonly _httpClient: HttpClient;\r\n private _webSocket?: WebSocket;\r\n private _headers: MessageHeaders;\r\n\r\n public onreceive: ((data: string | ArrayBuffer) => void) | null;\r\n public onclose: ((error?: Error) => void) | null;\r\n\r\n constructor(httpClient: HttpClient, accessTokenFactory: (() => string | Promise) | undefined, logger: ILogger,\r\n logMessageContent: boolean, webSocketConstructor: WebSocketConstructor, headers: MessageHeaders) {\r\n this._logger = logger;\r\n this._accessTokenFactory = accessTokenFactory;\r\n this._logMessageContent = logMessageContent;\r\n this._webSocketConstructor = webSocketConstructor;\r\n this._httpClient = httpClient;\r\n\r\n this.onreceive = null;\r\n this.onclose = null;\r\n this._headers = headers;\r\n }\r\n\r\n public async connect(url: string, transferFormat: TransferFormat): Promise {\r\n Arg.isRequired(url, \"url\");\r\n Arg.isRequired(transferFormat, \"transferFormat\");\r\n Arg.isIn(transferFormat, TransferFormat, \"transferFormat\");\r\n this._logger.log(LogLevel.Trace, \"(WebSockets transport) Connecting.\");\r\n\r\n let token: string;\r\n if (this._accessTokenFactory) {\r\n token = await this._accessTokenFactory();\r\n }\r\n\r\n return new Promise((resolve, reject) => {\r\n url = url.replace(/^http/, \"ws\");\r\n let webSocket: WebSocket | undefined;\r\n const cookies = this._httpClient.getCookieString(url);\r\n let opened = false;\r\n\r\n if (Platform.isNode || Platform.isReactNative) {\r\n const headers: {[k: string]: string} = {};\r\n const [name, value] = getUserAgentHeader();\r\n headers[name] = value;\r\n if (token) {\r\n headers[HeaderNames.Authorization] = `Bearer ${token}`;\r\n }\r\n\r\n if (cookies) {\r\n headers[HeaderNames.Cookie] = cookies;\r\n }\r\n\r\n // Only pass headers when in non-browser environments\r\n webSocket = new this._webSocketConstructor(url, undefined, {\r\n headers: { ...headers, ...this._headers },\r\n });\r\n }\r\n else\r\n {\r\n if (token) {\r\n url += (url.indexOf(\"?\") < 0 ? \"?\" : \"&\") + `access_token=${encodeURIComponent(token)}`;\r\n }\r\n }\r\n\r\n if (!webSocket) {\r\n // Chrome is not happy with passing 'undefined' as protocol\r\n webSocket = new this._webSocketConstructor(url);\r\n }\r\n\r\n if (transferFormat === TransferFormat.Binary) {\r\n webSocket.binaryType = \"arraybuffer\";\r\n }\r\n\r\n webSocket.onopen = (_event: Event) => {\r\n this._logger.log(LogLevel.Information, `WebSocket connected to ${url}.`);\r\n this._webSocket = webSocket;\r\n opened = true;\r\n resolve();\r\n };\r\n\r\n webSocket.onerror = (event: Event) => {\r\n let error: any = null;\r\n // ErrorEvent is a browser only type we need to check if the type exists before using it\r\n if (typeof ErrorEvent !== \"undefined\" && event instanceof ErrorEvent) {\r\n error = event.error;\r\n } else {\r\n error = \"There was an error with the transport\";\r\n }\r\n\r\n this._logger.log(LogLevel.Information, `(WebSockets transport) ${error}.`);\r\n };\r\n\r\n webSocket.onmessage = (message: MessageEvent) => {\r\n this._logger.log(LogLevel.Trace, `(WebSockets transport) data received. ${getDataDetail(message.data, this._logMessageContent)}.`);\r\n if (this.onreceive) {\r\n try {\r\n this.onreceive(message.data);\r\n } catch (error) {\r\n this._close(error);\r\n return;\r\n }\r\n }\r\n };\r\n\r\n webSocket.onclose = (event: CloseEvent) => {\r\n // Don't call close handler if connection was never established\r\n // We'll reject the connect call instead\r\n if (opened) {\r\n this._close(event);\r\n } else {\r\n let error: any = null;\r\n // ErrorEvent is a browser only type we need to check if the type exists before using it\r\n if (typeof ErrorEvent !== \"undefined\" && event instanceof ErrorEvent) {\r\n error = event.error;\r\n } else {\r\n error = \"WebSocket failed to connect. The connection could not be found on the server,\"\r\n + \" either the endpoint may not be a SignalR endpoint,\"\r\n + \" the connection ID is not present on the server, or there is a proxy blocking WebSockets.\"\r\n + \" If you have multiple servers check that sticky sessions are enabled.\";\r\n }\r\n\r\n reject(new Error(error));\r\n }\r\n };\r\n });\r\n }\r\n\r\n public send(data: any): Promise {\r\n if (this._webSocket && this._webSocket.readyState === this._webSocketConstructor.OPEN) {\r\n this._logger.log(LogLevel.Trace, `(WebSockets transport) sending data. ${getDataDetail(data, this._logMessageContent)}.`);\r\n this._webSocket.send(data);\r\n return Promise.resolve();\r\n }\r\n\r\n return Promise.reject(\"WebSocket is not in the OPEN state\");\r\n }\r\n\r\n public stop(): Promise {\r\n if (this._webSocket) {\r\n // Manually invoke onclose callback inline so we know the HttpConnection was closed properly before returning\r\n // This also solves an issue where websocket.onclose could take 18+ seconds to trigger during network disconnects\r\n this._close(undefined);\r\n }\r\n\r\n return Promise.resolve();\r\n }\r\n\r\n private _close(event?: CloseEvent | Error): void {\r\n // webSocket will be null if the transport did not start successfully\r\n if (this._webSocket) {\r\n // Clear websocket handlers because we are considering the socket closed now\r\n this._webSocket.onclose = () => {};\r\n this._webSocket.onmessage = () => {};\r\n this._webSocket.onerror = () => {};\r\n this._webSocket.close();\r\n this._webSocket = undefined;\r\n }\r\n\r\n this._logger.log(LogLevel.Trace, \"(WebSockets transport) socket closed.\");\r\n if (this.onclose) {\r\n if (this._isCloseEvent(event) && (event.wasClean === false || event.code !== 1000)) {\r\n this.onclose(new Error(`WebSocket closed with status code: ${event.code} (${event.reason || \"no reason given\"}).`));\r\n } else if (event instanceof Error) {\r\n this.onclose(event);\r\n } else {\r\n this.onclose();\r\n }\r\n }\r\n }\r\n\r\n private _isCloseEvent(event?: any): event is CloseEvent {\r\n return event && typeof event.wasClean === \"boolean\" && typeof event.code === \"number\";\r\n }\r\n}\r\n","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\n\r\nimport { AccessTokenHttpClient } from \"./AccessTokenHttpClient\";\r\nimport { DefaultHttpClient } from \"./DefaultHttpClient\";\r\nimport { AggregateErrors, DisabledTransportError, FailedToNegotiateWithServerError, FailedToStartTransportError, HttpError, UnsupportedTransportError, AbortError } from \"./Errors\";\r\nimport { IConnection } from \"./IConnection\";\r\nimport { IHttpConnectionOptions } from \"./IHttpConnectionOptions\";\r\nimport { ILogger, LogLevel } from \"./ILogger\";\r\nimport { HttpTransportType, ITransport, TransferFormat } from \"./ITransport\";\r\nimport { LongPollingTransport } from \"./LongPollingTransport\";\r\nimport { ServerSentEventsTransport } from \"./ServerSentEventsTransport\";\r\nimport { Arg, createLogger, getUserAgentHeader, Platform } from \"./Utils\";\r\nimport { WebSocketTransport } from \"./WebSocketTransport\";\r\n\r\n/** @private */\r\nconst enum ConnectionState {\r\n Connecting = \"Connecting\",\r\n Connected = \"Connected\",\r\n Disconnected = \"Disconnected\",\r\n Disconnecting = \"Disconnecting\",\r\n}\r\n\r\n/** @private */\r\nexport interface INegotiateResponse {\r\n connectionId?: string;\r\n connectionToken?: string;\r\n negotiateVersion?: number;\r\n availableTransports?: IAvailableTransport[];\r\n url?: string;\r\n accessToken?: string;\r\n error?: string;\r\n}\r\n\r\n/** @private */\r\nexport interface IAvailableTransport {\r\n transport: keyof typeof HttpTransportType;\r\n transferFormats: (keyof typeof TransferFormat)[];\r\n}\r\n\r\nconst MAX_REDIRECTS = 100;\r\n\r\n/** @private */\r\nexport class HttpConnection implements IConnection {\r\n private _connectionState: ConnectionState;\r\n // connectionStarted is tracked independently from connectionState, so we can check if the\r\n // connection ever did successfully transition from connecting to connected before disconnecting.\r\n private _connectionStarted: boolean;\r\n private readonly _httpClient: AccessTokenHttpClient;\r\n private readonly _logger: ILogger;\r\n private readonly _options: IHttpConnectionOptions;\r\n // Needs to not start with _ to be available for tests\r\n // eslint-disable-next-line @typescript-eslint/naming-convention\r\n private transport?: ITransport;\r\n private _startInternalPromise?: Promise;\r\n private _stopPromise?: Promise;\r\n private _stopPromiseResolver: (value?: PromiseLike) => void = () => {};\r\n private _stopError?: Error;\r\n private _accessTokenFactory?: () => string | Promise;\r\n private _sendQueue?: TransportSendQueue;\r\n\r\n public readonly features: any = {};\r\n public baseUrl: string;\r\n public connectionId?: string;\r\n public onreceive: ((data: string | ArrayBuffer) => void) | null;\r\n public onclose: ((e?: Error) => void) | null;\r\n\r\n private readonly _negotiateVersion: number = 1;\r\n\r\n constructor(url: string, options: IHttpConnectionOptions = {}) {\r\n Arg.isRequired(url, \"url\");\r\n\r\n this._logger = createLogger(options.logger);\r\n this.baseUrl = this._resolveUrl(url);\r\n\r\n options = options || {};\r\n options.logMessageContent = options.logMessageContent === undefined ? false : options.logMessageContent;\r\n if (typeof options.withCredentials === \"boolean\" || options.withCredentials === undefined) {\r\n options.withCredentials = options.withCredentials === undefined ? true : options.withCredentials;\r\n } else {\r\n throw new Error(\"withCredentials option was not a 'boolean' or 'undefined' value\");\r\n }\r\n options.timeout = options.timeout === undefined ? 100 * 1000 : options.timeout;\r\n\r\n let webSocketModule: any = null;\r\n let eventSourceModule: any = null;\r\n\r\n if (Platform.isNode && typeof require !== \"undefined\") {\r\n // In order to ignore the dynamic require in webpack builds we need to do this magic\r\n // @ts-ignore: TS doesn't know about these names\r\n const requireFunc = typeof __webpack_require__ === \"function\" ? __non_webpack_require__ : require;\r\n webSocketModule = requireFunc(\"ws\");\r\n eventSourceModule = requireFunc(\"eventsource\");\r\n }\r\n\r\n if (!Platform.isNode && typeof WebSocket !== \"undefined\" && !options.WebSocket) {\r\n options.WebSocket = WebSocket;\r\n } else if (Platform.isNode && !options.WebSocket) {\r\n if (webSocketModule) {\r\n options.WebSocket = webSocketModule;\r\n }\r\n }\r\n\r\n if (!Platform.isNode && typeof EventSource !== \"undefined\" && !options.EventSource) {\r\n options.EventSource = EventSource;\r\n } else if (Platform.isNode && !options.EventSource) {\r\n if (typeof eventSourceModule !== \"undefined\") {\r\n options.EventSource = eventSourceModule;\r\n }\r\n }\r\n\r\n this._httpClient = new AccessTokenHttpClient(options.httpClient || new DefaultHttpClient(this._logger), options.accessTokenFactory);\r\n this._connectionState = ConnectionState.Disconnected;\r\n this._connectionStarted = false;\r\n this._options = options;\r\n\r\n this.onreceive = null;\r\n this.onclose = null;\r\n }\r\n\r\n public start(): Promise;\r\n public start(transferFormat: TransferFormat): Promise;\r\n public async start(transferFormat?: TransferFormat): Promise {\r\n transferFormat = transferFormat || TransferFormat.Binary;\r\n\r\n Arg.isIn(transferFormat, TransferFormat, \"transferFormat\");\r\n\r\n this._logger.log(LogLevel.Debug, `Starting connection with transfer format '${TransferFormat[transferFormat]}'.`);\r\n\r\n if (this._connectionState !== ConnectionState.Disconnected) {\r\n return Promise.reject(new Error(\"Cannot start an HttpConnection that is not in the 'Disconnected' state.\"));\r\n }\r\n\r\n this._connectionState = ConnectionState.Connecting;\r\n\r\n this._startInternalPromise = this._startInternal(transferFormat);\r\n await this._startInternalPromise;\r\n\r\n // The TypeScript compiler thinks that connectionState must be Connecting here. The TypeScript compiler is wrong.\r\n if (this._connectionState as any === ConnectionState.Disconnecting) {\r\n // stop() was called and transitioned the client into the Disconnecting state.\r\n const message = \"Failed to start the HttpConnection before stop() was called.\";\r\n this._logger.log(LogLevel.Error, message);\r\n\r\n // We cannot await stopPromise inside startInternal since stopInternal awaits the startInternalPromise.\r\n await this._stopPromise;\r\n\r\n return Promise.reject(new AbortError(message));\r\n } else if (this._connectionState as any !== ConnectionState.Connected) {\r\n // stop() was called and transitioned the client into the Disconnecting state.\r\n const message = \"HttpConnection.startInternal completed gracefully but didn't enter the connection into the connected state!\";\r\n this._logger.log(LogLevel.Error, message);\r\n return Promise.reject(new AbortError(message));\r\n }\r\n\r\n this._connectionStarted = true;\r\n }\r\n\r\n public send(data: string | ArrayBuffer): Promise {\r\n if (this._connectionState !== ConnectionState.Connected) {\r\n return Promise.reject(new Error(\"Cannot send data if the connection is not in the 'Connected' State.\"));\r\n }\r\n\r\n if (!this._sendQueue) {\r\n this._sendQueue = new TransportSendQueue(this.transport!);\r\n }\r\n\r\n // Transport will not be null if state is connected\r\n return this._sendQueue.send(data);\r\n }\r\n\r\n public async stop(error?: Error): Promise {\r\n if (this._connectionState === ConnectionState.Disconnected) {\r\n this._logger.log(LogLevel.Debug, `Call to HttpConnection.stop(${error}) ignored because the connection is already in the disconnected state.`);\r\n return Promise.resolve();\r\n }\r\n\r\n if (this._connectionState === ConnectionState.Disconnecting) {\r\n this._logger.log(LogLevel.Debug, `Call to HttpConnection.stop(${error}) ignored because the connection is already in the disconnecting state.`);\r\n return this._stopPromise;\r\n }\r\n\r\n this._connectionState = ConnectionState.Disconnecting;\r\n\r\n this._stopPromise = new Promise((resolve) => {\r\n // Don't complete stop() until stopConnection() completes.\r\n this._stopPromiseResolver = resolve;\r\n });\r\n\r\n // stopInternal should never throw so just observe it.\r\n await this._stopInternal(error);\r\n await this._stopPromise;\r\n }\r\n\r\n private async _stopInternal(error?: Error): Promise {\r\n // Set error as soon as possible otherwise there is a race between\r\n // the transport closing and providing an error and the error from a close message\r\n // We would prefer the close message error.\r\n this._stopError = error;\r\n\r\n try {\r\n await this._startInternalPromise;\r\n } catch (e) {\r\n // This exception is returned to the user as a rejected Promise from the start method.\r\n }\r\n\r\n // The transport's onclose will trigger stopConnection which will run our onclose event.\r\n // The transport should always be set if currently connected. If it wasn't set, it's likely because\r\n // stop was called during start() and start() failed.\r\n if (this.transport) {\r\n try {\r\n await this.transport.stop();\r\n } catch (e) {\r\n this._logger.log(LogLevel.Error, `HttpConnection.transport.stop() threw error '${e}'.`);\r\n this._stopConnection();\r\n }\r\n\r\n this.transport = undefined;\r\n } else {\r\n this._logger.log(LogLevel.Debug, \"HttpConnection.transport is undefined in HttpConnection.stop() because start() failed.\");\r\n }\r\n }\r\n\r\n private async _startInternal(transferFormat: TransferFormat): Promise {\r\n // Store the original base url and the access token factory since they may change\r\n // as part of negotiating\r\n let url = this.baseUrl;\r\n this._accessTokenFactory = this._options.accessTokenFactory;\r\n this._httpClient._accessTokenFactory = this._accessTokenFactory;\r\n\r\n try {\r\n if (this._options.skipNegotiation) {\r\n if (this._options.transport === HttpTransportType.WebSockets) {\r\n // No need to add a connection ID in this case\r\n this.transport = this._constructTransport(HttpTransportType.WebSockets);\r\n // We should just call connect directly in this case.\r\n // No fallback or negotiate in this case.\r\n await this._startTransport(url, transferFormat);\r\n } else {\r\n throw new Error(\"Negotiation can only be skipped when using the WebSocket transport directly.\");\r\n }\r\n } else {\r\n let negotiateResponse: INegotiateResponse | null = null;\r\n let redirects = 0;\r\n\r\n do {\r\n negotiateResponse = await this._getNegotiationResponse(url);\r\n // the user tries to stop the connection when it is being started\r\n if (this._connectionState === ConnectionState.Disconnecting || this._connectionState === ConnectionState.Disconnected) {\r\n throw new AbortError(\"The connection was stopped during negotiation.\");\r\n }\r\n\r\n if (negotiateResponse.error) {\r\n throw new Error(negotiateResponse.error);\r\n }\r\n\r\n if ((negotiateResponse as any).ProtocolVersion) {\r\n throw new Error(\"Detected a connection attempt to an ASP.NET SignalR Server. This client only supports connecting to an ASP.NET Core SignalR Server. See https://aka.ms/signalr-core-differences for details.\");\r\n }\r\n\r\n if (negotiateResponse.url) {\r\n url = negotiateResponse.url;\r\n }\r\n\r\n if (negotiateResponse.accessToken) {\r\n // Replace the current access token factory with one that uses\r\n // the returned access token\r\n const accessToken = negotiateResponse.accessToken;\r\n this._accessTokenFactory = () => accessToken;\r\n // set the factory to undefined so the AccessTokenHttpClient won't retry with the same token, since we know it won't change until a connection restart\r\n this._httpClient._accessToken = accessToken;\r\n this._httpClient._accessTokenFactory = undefined;\r\n }\r\n\r\n redirects++;\r\n }\r\n while (negotiateResponse.url && redirects < MAX_REDIRECTS);\r\n\r\n if (redirects === MAX_REDIRECTS && negotiateResponse.url) {\r\n throw new Error(\"Negotiate redirection limit exceeded.\");\r\n }\r\n\r\n await this._createTransport(url, this._options.transport, negotiateResponse, transferFormat);\r\n }\r\n\r\n if (this.transport instanceof LongPollingTransport) {\r\n this.features.inherentKeepAlive = true;\r\n }\r\n\r\n if (this._connectionState === ConnectionState.Connecting) {\r\n // Ensure the connection transitions to the connected state prior to completing this.startInternalPromise.\r\n // start() will handle the case when stop was called and startInternal exits still in the disconnecting state.\r\n this._logger.log(LogLevel.Debug, \"The HttpConnection connected successfully.\");\r\n this._connectionState = ConnectionState.Connected;\r\n }\r\n\r\n // stop() is waiting on us via this.startInternalPromise so keep this.transport around so it can clean up.\r\n // This is the only case startInternal can exit in neither the connected nor disconnected state because stopConnection()\r\n // will transition to the disconnected state. start() will wait for the transition using the stopPromise.\r\n } catch (e) {\r\n this._logger.log(LogLevel.Error, \"Failed to start the connection: \" + e);\r\n this._connectionState = ConnectionState.Disconnected;\r\n this.transport = undefined;\r\n\r\n // if start fails, any active calls to stop assume that start will complete the stop promise\r\n this._stopPromiseResolver();\r\n return Promise.reject(e);\r\n }\r\n }\r\n\r\n private async _getNegotiationResponse(url: string): Promise {\r\n const headers: {[k: string]: string} = {};\r\n const [name, value] = getUserAgentHeader();\r\n headers[name] = value;\r\n\r\n const negotiateUrl = this._resolveNegotiateUrl(url);\r\n this._logger.log(LogLevel.Debug, `Sending negotiation request: ${negotiateUrl}.`);\r\n try {\r\n const response = await this._httpClient.post(negotiateUrl, {\r\n content: \"\",\r\n headers: { ...headers, ...this._options.headers },\r\n timeout: this._options.timeout,\r\n withCredentials: this._options.withCredentials,\r\n });\r\n\r\n if (response.statusCode !== 200) {\r\n return Promise.reject(new Error(`Unexpected status code returned from negotiate '${response.statusCode}'`));\r\n }\r\n\r\n const negotiateResponse = JSON.parse(response.content as string) as INegotiateResponse;\r\n if (!negotiateResponse.negotiateVersion || negotiateResponse.negotiateVersion < 1) {\r\n // Negotiate version 0 doesn't use connectionToken\r\n // So we set it equal to connectionId so all our logic can use connectionToken without being aware of the negotiate version\r\n negotiateResponse.connectionToken = negotiateResponse.connectionId;\r\n }\r\n return negotiateResponse;\r\n } catch (e) {\r\n let errorMessage = \"Failed to complete negotiation with the server: \" + e;\r\n if (e instanceof HttpError) {\r\n if (e.statusCode === 404) {\r\n errorMessage = errorMessage + \" Either this is not a SignalR endpoint or there is a proxy blocking the connection.\";\r\n }\r\n }\r\n this._logger.log(LogLevel.Error, errorMessage);\r\n\r\n return Promise.reject(new FailedToNegotiateWithServerError(errorMessage));\r\n }\r\n }\r\n\r\n private _createConnectUrl(url: string, connectionToken: string | null | undefined) {\r\n if (!connectionToken) {\r\n return url;\r\n }\r\n\r\n return url + (url.indexOf(\"?\") === -1 ? \"?\" : \"&\") + `id=${connectionToken}`;\r\n }\r\n\r\n private async _createTransport(url: string, requestedTransport: HttpTransportType | ITransport | undefined, negotiateResponse: INegotiateResponse, requestedTransferFormat: TransferFormat): Promise {\r\n let connectUrl = this._createConnectUrl(url, negotiateResponse.connectionToken);\r\n if (this._isITransport(requestedTransport)) {\r\n this._logger.log(LogLevel.Debug, \"Connection was provided an instance of ITransport, using that directly.\");\r\n this.transport = requestedTransport;\r\n await this._startTransport(connectUrl, requestedTransferFormat);\r\n\r\n this.connectionId = negotiateResponse.connectionId;\r\n return;\r\n }\r\n\r\n const transportExceptions: any[] = [];\r\n const transports = negotiateResponse.availableTransports || [];\r\n let negotiate: INegotiateResponse | undefined = negotiateResponse;\r\n for (const endpoint of transports) {\r\n const transportOrError = this._resolveTransportOrError(endpoint, requestedTransport, requestedTransferFormat);\r\n if (transportOrError instanceof Error) {\r\n // Store the error and continue, we don't want to cause a re-negotiate in these cases\r\n transportExceptions.push(`${endpoint.transport} failed:`);\r\n transportExceptions.push(transportOrError);\r\n } else if (this._isITransport(transportOrError)) {\r\n this.transport = transportOrError;\r\n if (!negotiate) {\r\n try {\r\n negotiate = await this._getNegotiationResponse(url);\r\n } catch (ex) {\r\n return Promise.reject(ex);\r\n }\r\n connectUrl = this._createConnectUrl(url, negotiate.connectionToken);\r\n }\r\n try {\r\n await this._startTransport(connectUrl, requestedTransferFormat);\r\n this.connectionId = negotiate.connectionId;\r\n return;\r\n } catch (ex) {\r\n this._logger.log(LogLevel.Error, `Failed to start the transport '${endpoint.transport}': ${ex}`);\r\n negotiate = undefined;\r\n transportExceptions.push(new FailedToStartTransportError(`${endpoint.transport} failed: ${ex}`, HttpTransportType[endpoint.transport]));\r\n\r\n if (this._connectionState !== ConnectionState.Connecting) {\r\n const message = \"Failed to select transport before stop() was called.\";\r\n this._logger.log(LogLevel.Debug, message);\r\n return Promise.reject(new AbortError(message));\r\n }\r\n }\r\n }\r\n }\r\n\r\n if (transportExceptions.length > 0) {\r\n return Promise.reject(new AggregateErrors(`Unable to connect to the server with any of the available transports. ${transportExceptions.join(\" \")}`, transportExceptions));\r\n }\r\n return Promise.reject(new Error(\"None of the transports supported by the client are supported by the server.\"));\r\n }\r\n\r\n private _constructTransport(transport: HttpTransportType): ITransport {\r\n switch (transport) {\r\n case HttpTransportType.WebSockets:\r\n if (!this._options.WebSocket) {\r\n throw new Error(\"'WebSocket' is not supported in your environment.\");\r\n }\r\n return new WebSocketTransport(this._httpClient, this._accessTokenFactory, this._logger, this._options.logMessageContent!, this._options.WebSocket, this._options.headers || {});\r\n case HttpTransportType.ServerSentEvents:\r\n if (!this._options.EventSource) {\r\n throw new Error(\"'EventSource' is not supported in your environment.\");\r\n }\r\n return new ServerSentEventsTransport(this._httpClient, this._httpClient._accessToken, this._logger, this._options);\r\n case HttpTransportType.LongPolling:\r\n return new LongPollingTransport(this._httpClient, this._logger, this._options);\r\n default:\r\n throw new Error(`Unknown transport: ${transport}.`);\r\n }\r\n }\r\n\r\n private _startTransport(url: string, transferFormat: TransferFormat): Promise {\r\n this.transport!.onreceive = this.onreceive;\r\n this.transport!.onclose = (e) => this._stopConnection(e);\r\n return this.transport!.connect(url, transferFormat);\r\n }\r\n\r\n private _resolveTransportOrError(endpoint: IAvailableTransport, requestedTransport: HttpTransportType | undefined, requestedTransferFormat: TransferFormat): ITransport | Error {\r\n const transport = HttpTransportType[endpoint.transport];\r\n if (transport === null || transport === undefined) {\r\n this._logger.log(LogLevel.Debug, `Skipping transport '${endpoint.transport}' because it is not supported by this client.`);\r\n return new Error(`Skipping transport '${endpoint.transport}' because it is not supported by this client.`);\r\n } else {\r\n if (transportMatches(requestedTransport, transport)) {\r\n const transferFormats = endpoint.transferFormats.map((s) => TransferFormat[s]);\r\n if (transferFormats.indexOf(requestedTransferFormat) >= 0) {\r\n if ((transport === HttpTransportType.WebSockets && !this._options.WebSocket) ||\r\n (transport === HttpTransportType.ServerSentEvents && !this._options.EventSource)) {\r\n this._logger.log(LogLevel.Debug, `Skipping transport '${HttpTransportType[transport]}' because it is not supported in your environment.'`);\r\n return new UnsupportedTransportError(`'${HttpTransportType[transport]}' is not supported in your environment.`, transport);\r\n } else {\r\n this._logger.log(LogLevel.Debug, `Selecting transport '${HttpTransportType[transport]}'.`);\r\n try {\r\n return this._constructTransport(transport);\r\n } catch (ex) {\r\n return ex;\r\n }\r\n }\r\n } else {\r\n this._logger.log(LogLevel.Debug, `Skipping transport '${HttpTransportType[transport]}' because it does not support the requested transfer format '${TransferFormat[requestedTransferFormat]}'.`);\r\n return new Error(`'${HttpTransportType[transport]}' does not support ${TransferFormat[requestedTransferFormat]}.`);\r\n }\r\n } else {\r\n this._logger.log(LogLevel.Debug, `Skipping transport '${HttpTransportType[transport]}' because it was disabled by the client.`);\r\n return new DisabledTransportError(`'${HttpTransportType[transport]}' is disabled by the client.`, transport);\r\n }\r\n }\r\n }\r\n\r\n private _isITransport(transport: any): transport is ITransport {\r\n return transport && typeof (transport) === \"object\" && \"connect\" in transport;\r\n }\r\n\r\n private _stopConnection(error?: Error): void {\r\n this._logger.log(LogLevel.Debug, `HttpConnection.stopConnection(${error}) called while in state ${this._connectionState}.`);\r\n\r\n this.transport = undefined;\r\n\r\n // If we have a stopError, it takes precedence over the error from the transport\r\n error = this._stopError || error;\r\n this._stopError = undefined;\r\n\r\n if (this._connectionState === ConnectionState.Disconnected) {\r\n this._logger.log(LogLevel.Debug, `Call to HttpConnection.stopConnection(${error}) was ignored because the connection is already in the disconnected state.`);\r\n return;\r\n }\r\n\r\n if (this._connectionState === ConnectionState.Connecting) {\r\n this._logger.log(LogLevel.Warning, `Call to HttpConnection.stopConnection(${error}) was ignored because the connection is still in the connecting state.`);\r\n throw new Error(`HttpConnection.stopConnection(${error}) was called while the connection is still in the connecting state.`);\r\n }\r\n\r\n if (this._connectionState === ConnectionState.Disconnecting) {\r\n // A call to stop() induced this call to stopConnection and needs to be completed.\r\n // Any stop() awaiters will be scheduled to continue after the onclose callback fires.\r\n this._stopPromiseResolver();\r\n }\r\n\r\n if (error) {\r\n this._logger.log(LogLevel.Error, `Connection disconnected with error '${error}'.`);\r\n } else {\r\n this._logger.log(LogLevel.Information, \"Connection disconnected.\");\r\n }\r\n\r\n if (this._sendQueue) {\r\n this._sendQueue.stop().catch((e) => {\r\n this._logger.log(LogLevel.Error, `TransportSendQueue.stop() threw error '${e}'.`);\r\n });\r\n this._sendQueue = undefined;\r\n }\r\n\r\n this.connectionId = undefined;\r\n this._connectionState = ConnectionState.Disconnected;\r\n\r\n if (this._connectionStarted) {\r\n this._connectionStarted = false;\r\n try {\r\n if (this.onclose) {\r\n this.onclose(error);\r\n }\r\n } catch (e) {\r\n this._logger.log(LogLevel.Error, `HttpConnection.onclose(${error}) threw error '${e}'.`);\r\n }\r\n }\r\n }\r\n\r\n private _resolveUrl(url: string): string {\r\n // startsWith is not supported in IE\r\n if (url.lastIndexOf(\"https://\", 0) === 0 || url.lastIndexOf(\"http://\", 0) === 0) {\r\n return url;\r\n }\r\n\r\n if (!Platform.isBrowser) {\r\n throw new Error(`Cannot resolve '${url}'.`);\r\n }\r\n\r\n // Setting the url to the href propery of an anchor tag handles normalization\r\n // for us. There are 3 main cases.\r\n // 1. Relative path normalization e.g \"b\" -> \"http://localhost:5000/a/b\"\r\n // 2. Absolute path normalization e.g \"/a/b\" -> \"http://localhost:5000/a/b\"\r\n // 3. Networkpath reference normalization e.g \"//localhost:5000/a/b\" -> \"http://localhost:5000/a/b\"\r\n const aTag = window.document.createElement(\"a\");\r\n aTag.href = url;\r\n\r\n this._logger.log(LogLevel.Information, `Normalizing '${url}' to '${aTag.href}'.`);\r\n return aTag.href;\r\n }\r\n\r\n private _resolveNegotiateUrl(url: string): string {\r\n const index = url.indexOf(\"?\");\r\n let negotiateUrl = url.substring(0, index === -1 ? url.length : index);\r\n if (negotiateUrl[negotiateUrl.length - 1] !== \"/\") {\r\n negotiateUrl += \"/\";\r\n }\r\n negotiateUrl += \"negotiate\";\r\n negotiateUrl += index === -1 ? \"\" : url.substring(index);\r\n\r\n if (negotiateUrl.indexOf(\"negotiateVersion\") === -1) {\r\n negotiateUrl += index === -1 ? \"?\" : \"&\";\r\n negotiateUrl += \"negotiateVersion=\" + this._negotiateVersion;\r\n }\r\n return negotiateUrl;\r\n }\r\n}\r\n\r\nfunction transportMatches(requestedTransport: HttpTransportType | undefined, actualTransport: HttpTransportType) {\r\n return !requestedTransport || ((actualTransport & requestedTransport) !== 0);\r\n}\r\n\r\n/** @private */\r\nexport class TransportSendQueue {\r\n private _buffer: any[] = [];\r\n private _sendBufferedData: PromiseSource;\r\n private _executing: boolean = true;\r\n private _transportResult?: PromiseSource;\r\n private _sendLoopPromise: Promise;\r\n\r\n constructor(private readonly _transport: ITransport) {\r\n this._sendBufferedData = new PromiseSource();\r\n this._transportResult = new PromiseSource();\r\n\r\n this._sendLoopPromise = this._sendLoop();\r\n }\r\n\r\n public send(data: string | ArrayBuffer): Promise {\r\n this._bufferData(data);\r\n if (!this._transportResult) {\r\n this._transportResult = new PromiseSource();\r\n }\r\n return this._transportResult.promise;\r\n }\r\n\r\n public stop(): Promise {\r\n this._executing = false;\r\n this._sendBufferedData.resolve();\r\n return this._sendLoopPromise;\r\n }\r\n\r\n private _bufferData(data: string | ArrayBuffer): void {\r\n if (this._buffer.length && typeof(this._buffer[0]) !== typeof(data)) {\r\n throw new Error(`Expected data to be of type ${typeof(this._buffer)} but was of type ${typeof(data)}`);\r\n }\r\n\r\n this._buffer.push(data);\r\n this._sendBufferedData.resolve();\r\n }\r\n\r\n private async _sendLoop(): Promise {\r\n while (true) {\r\n await this._sendBufferedData.promise;\r\n\r\n if (!this._executing) {\r\n if (this._transportResult) {\r\n this._transportResult.reject(\"Connection stopped.\");\r\n }\r\n\r\n break;\r\n }\r\n\r\n this._sendBufferedData = new PromiseSource();\r\n\r\n const transportResult = this._transportResult!;\r\n this._transportResult = undefined;\r\n\r\n const data = typeof(this._buffer[0]) === \"string\" ?\r\n this._buffer.join(\"\") :\r\n TransportSendQueue._concatBuffers(this._buffer);\r\n\r\n this._buffer.length = 0;\r\n\r\n try {\r\n await this._transport.send(data);\r\n transportResult.resolve();\r\n } catch (error) {\r\n transportResult.reject(error);\r\n }\r\n }\r\n }\r\n\r\n private static _concatBuffers(arrayBuffers: ArrayBuffer[]): ArrayBuffer {\r\n const totalLength = arrayBuffers.map((b) => b.byteLength).reduce((a, b) => a + b);\r\n const result = new Uint8Array(totalLength);\r\n let offset = 0;\r\n for (const item of arrayBuffers) {\r\n result.set(new Uint8Array(item), offset);\r\n offset += item.byteLength;\r\n }\r\n\r\n return result.buffer;\r\n }\r\n}\r\n\r\nclass PromiseSource {\r\n private _resolver?: () => void;\r\n private _rejecter!: (reason?: any) => void;\r\n public promise: Promise;\r\n\r\n constructor() {\r\n this.promise = new Promise((resolve, reject) => [this._resolver, this._rejecter] = [resolve, reject]);\r\n }\r\n\r\n public resolve(): void {\r\n this._resolver!();\r\n }\r\n\r\n public reject(reason?: any): void {\r\n this._rejecter!(reason);\r\n }\r\n}\r\n","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\n\r\nimport { CompletionMessage, HubMessage, IHubProtocol, InvocationMessage, MessageType, StreamItemMessage } from \"./IHubProtocol\";\r\nimport { ILogger, LogLevel } from \"./ILogger\";\r\nimport { TransferFormat } from \"./ITransport\";\r\nimport { NullLogger } from \"./Loggers\";\r\nimport { TextMessageFormat } from \"./TextMessageFormat\";\r\n\r\nconst JSON_HUB_PROTOCOL_NAME: string = \"json\";\r\n\r\n/** Implements the JSON Hub Protocol. */\r\nexport class JsonHubProtocol implements IHubProtocol {\r\n\r\n /** @inheritDoc */\r\n public readonly name: string = JSON_HUB_PROTOCOL_NAME;\r\n /** @inheritDoc */\r\n public readonly version: number = 1;\r\n\r\n /** @inheritDoc */\r\n public readonly transferFormat: TransferFormat = TransferFormat.Text;\r\n\r\n /** Creates an array of {@link @microsoft/signalr.HubMessage} objects from the specified serialized representation.\r\n *\r\n * @param {string} input A string containing the serialized representation.\r\n * @param {ILogger} logger A logger that will be used to log messages that occur during parsing.\r\n */\r\n public parseMessages(input: string, logger: ILogger): HubMessage[] {\r\n // The interface does allow \"ArrayBuffer\" to be passed in, but this implementation does not. So let's throw a useful error.\r\n if (typeof input !== \"string\") {\r\n throw new Error(\"Invalid input for JSON hub protocol. Expected a string.\");\r\n }\r\n\r\n if (!input) {\r\n return [];\r\n }\r\n\r\n if (logger === null) {\r\n logger = NullLogger.instance;\r\n }\r\n\r\n // Parse the messages\r\n const messages = TextMessageFormat.parse(input);\r\n\r\n const hubMessages = [];\r\n for (const message of messages) {\r\n const parsedMessage = JSON.parse(message) as HubMessage;\r\n if (typeof parsedMessage.type !== \"number\") {\r\n throw new Error(\"Invalid payload.\");\r\n }\r\n switch (parsedMessage.type) {\r\n case MessageType.Invocation:\r\n this._isInvocationMessage(parsedMessage);\r\n break;\r\n case MessageType.StreamItem:\r\n this._isStreamItemMessage(parsedMessage);\r\n break;\r\n case MessageType.Completion:\r\n this._isCompletionMessage(parsedMessage);\r\n break;\r\n case MessageType.Ping:\r\n // Single value, no need to validate\r\n break;\r\n case MessageType.Close:\r\n // All optional values, no need to validate\r\n break;\r\n default:\r\n // Future protocol changes can add message types, old clients can ignore them\r\n logger.log(LogLevel.Information, \"Unknown message type '\" + parsedMessage.type + \"' ignored.\");\r\n continue;\r\n }\r\n hubMessages.push(parsedMessage);\r\n }\r\n\r\n return hubMessages;\r\n }\r\n\r\n /** Writes the specified {@link @microsoft/signalr.HubMessage} to a string and returns it.\r\n *\r\n * @param {HubMessage} message The message to write.\r\n * @returns {string} A string containing the serialized representation of the message.\r\n */\r\n public writeMessage(message: HubMessage): string {\r\n return TextMessageFormat.write(JSON.stringify(message));\r\n }\r\n\r\n private _isInvocationMessage(message: InvocationMessage): void {\r\n this._assertNotEmptyString(message.target, \"Invalid payload for Invocation message.\");\r\n\r\n if (message.invocationId !== undefined) {\r\n this._assertNotEmptyString(message.invocationId, \"Invalid payload for Invocation message.\");\r\n }\r\n }\r\n\r\n private _isStreamItemMessage(message: StreamItemMessage): void {\r\n this._assertNotEmptyString(message.invocationId, \"Invalid payload for StreamItem message.\");\r\n\r\n if (message.item === undefined) {\r\n throw new Error(\"Invalid payload for StreamItem message.\");\r\n }\r\n }\r\n\r\n private _isCompletionMessage(message: CompletionMessage): void {\r\n if (message.result && message.error) {\r\n throw new Error(\"Invalid payload for Completion message.\");\r\n }\r\n\r\n if (!message.result && message.error) {\r\n this._assertNotEmptyString(message.error, \"Invalid payload for Completion message.\");\r\n }\r\n\r\n this._assertNotEmptyString(message.invocationId, \"Invalid payload for Completion message.\");\r\n }\r\n\r\n private _assertNotEmptyString(value: any, errorMessage: string): void {\r\n if (typeof value !== \"string\" || value === \"\") {\r\n throw new Error(errorMessage);\r\n }\r\n }\r\n}\r\n","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\n\r\nimport { DefaultReconnectPolicy } from \"./DefaultReconnectPolicy\";\r\nimport { HttpConnection } from \"./HttpConnection\";\r\nimport { HubConnection } from \"./HubConnection\";\r\nimport { IHttpConnectionOptions } from \"./IHttpConnectionOptions\";\r\nimport { IHubProtocol } from \"./IHubProtocol\";\r\nimport { ILogger, LogLevel } from \"./ILogger\";\r\nimport { IRetryPolicy } from \"./IRetryPolicy\";\r\nimport { HttpTransportType } from \"./ITransport\";\r\nimport { JsonHubProtocol } from \"./JsonHubProtocol\";\r\nimport { NullLogger } from \"./Loggers\";\r\nimport { Arg, ConsoleLogger } from \"./Utils\";\r\n\r\nconst LogLevelNameMapping: {[k: string]: LogLevel} = {\r\n trace: LogLevel.Trace,\r\n debug: LogLevel.Debug,\r\n info: LogLevel.Information,\r\n information: LogLevel.Information,\r\n warn: LogLevel.Warning,\r\n warning: LogLevel.Warning,\r\n error: LogLevel.Error,\r\n critical: LogLevel.Critical,\r\n none: LogLevel.None,\r\n};\r\n\r\nfunction parseLogLevel(name: string): LogLevel {\r\n // Case-insensitive matching via lower-casing\r\n // Yes, I know case-folding is a complicated problem in Unicode, but we only support\r\n // the ASCII strings defined in LogLevelNameMapping anyway, so it's fine -anurse.\r\n const mapping = LogLevelNameMapping[name.toLowerCase()];\r\n if (typeof mapping !== \"undefined\") {\r\n return mapping;\r\n } else {\r\n throw new Error(`Unknown log level: ${name}`);\r\n }\r\n}\r\n\r\n/** A builder for configuring {@link @microsoft/signalr.HubConnection} instances. */\r\nexport class HubConnectionBuilder {\r\n /** @internal */\r\n public protocol?: IHubProtocol;\r\n /** @internal */\r\n public httpConnectionOptions?: IHttpConnectionOptions;\r\n /** @internal */\r\n public url?: string;\r\n /** @internal */\r\n public logger?: ILogger;\r\n\r\n /** If defined, this indicates the client should automatically attempt to reconnect if the connection is lost. */\r\n /** @internal */\r\n public reconnectPolicy?: IRetryPolicy;\r\n\r\n /** Configures console logging for the {@link @microsoft/signalr.HubConnection}.\r\n *\r\n * @param {LogLevel} logLevel The minimum level of messages to log. Anything at this level, or a more severe level, will be logged.\r\n * @returns The {@link @microsoft/signalr.HubConnectionBuilder} instance, for chaining.\r\n */\r\n public configureLogging(logLevel: LogLevel): HubConnectionBuilder;\r\n\r\n /** Configures custom logging for the {@link @microsoft/signalr.HubConnection}.\r\n *\r\n * @param {ILogger} logger An object implementing the {@link @microsoft/signalr.ILogger} interface, which will be used to write all log messages.\r\n * @returns The {@link @microsoft/signalr.HubConnectionBuilder} instance, for chaining.\r\n */\r\n public configureLogging(logger: ILogger): HubConnectionBuilder;\r\n\r\n /** Configures custom logging for the {@link @microsoft/signalr.HubConnection}.\r\n *\r\n * @param {string} logLevel A string representing a LogLevel setting a minimum level of messages to log.\r\n * See {@link https://docs.microsoft.com/aspnet/core/signalr/configuration#configure-logging|the documentation for client logging configuration} for more details.\r\n */\r\n public configureLogging(logLevel: string): HubConnectionBuilder;\r\n\r\n /** Configures custom logging for the {@link @microsoft/signalr.HubConnection}.\r\n *\r\n * @param {LogLevel | string | ILogger} logging A {@link @microsoft/signalr.LogLevel}, a string representing a LogLevel, or an object implementing the {@link @microsoft/signalr.ILogger} interface.\r\n * See {@link https://docs.microsoft.com/aspnet/core/signalr/configuration#configure-logging|the documentation for client logging configuration} for more details.\r\n * @returns The {@link @microsoft/signalr.HubConnectionBuilder} instance, for chaining.\r\n */\r\n public configureLogging(logging: LogLevel | string | ILogger): HubConnectionBuilder;\r\n public configureLogging(logging: LogLevel | string | ILogger): HubConnectionBuilder {\r\n Arg.isRequired(logging, \"logging\");\r\n\r\n if (isLogger(logging)) {\r\n this.logger = logging;\r\n } else if (typeof logging === \"string\") {\r\n const logLevel = parseLogLevel(logging);\r\n this.logger = new ConsoleLogger(logLevel);\r\n } else {\r\n this.logger = new ConsoleLogger(logging);\r\n }\r\n\r\n return this;\r\n }\r\n\r\n /** Configures the {@link @microsoft/signalr.HubConnection} to use HTTP-based transports to connect to the specified URL.\r\n *\r\n * The transport will be selected automatically based on what the server and client support.\r\n *\r\n * @param {string} url The URL the connection will use.\r\n * @returns The {@link @microsoft/signalr.HubConnectionBuilder} instance, for chaining.\r\n */\r\n public withUrl(url: string): HubConnectionBuilder;\r\n\r\n /** Configures the {@link @microsoft/signalr.HubConnection} to use the specified HTTP-based transport to connect to the specified URL.\r\n *\r\n * @param {string} url The URL the connection will use.\r\n * @param {HttpTransportType} transportType The specific transport to use.\r\n * @returns The {@link @microsoft/signalr.HubConnectionBuilder} instance, for chaining.\r\n */\r\n public withUrl(url: string, transportType: HttpTransportType): HubConnectionBuilder;\r\n\r\n /** Configures the {@link @microsoft/signalr.HubConnection} to use HTTP-based transports to connect to the specified URL.\r\n *\r\n * @param {string} url The URL the connection will use.\r\n * @param {IHttpConnectionOptions} options An options object used to configure the connection.\r\n * @returns The {@link @microsoft/signalr.HubConnectionBuilder} instance, for chaining.\r\n */\r\n public withUrl(url: string, options: IHttpConnectionOptions): HubConnectionBuilder;\r\n public withUrl(url: string, transportTypeOrOptions?: IHttpConnectionOptions | HttpTransportType): HubConnectionBuilder {\r\n Arg.isRequired(url, \"url\");\r\n Arg.isNotEmpty(url, \"url\");\r\n\r\n this.url = url;\r\n\r\n // Flow-typing knows where it's at. Since HttpTransportType is a number and IHttpConnectionOptions is guaranteed\r\n // to be an object, we know (as does TypeScript) this comparison is all we need to figure out which overload was called.\r\n if (typeof transportTypeOrOptions === \"object\") {\r\n this.httpConnectionOptions = { ...this.httpConnectionOptions, ...transportTypeOrOptions };\r\n } else {\r\n this.httpConnectionOptions = {\r\n ...this.httpConnectionOptions,\r\n transport: transportTypeOrOptions,\r\n };\r\n }\r\n\r\n return this;\r\n }\r\n\r\n /** Configures the {@link @microsoft/signalr.HubConnection} to use the specified Hub Protocol.\r\n *\r\n * @param {IHubProtocol} protocol The {@link @microsoft/signalr.IHubProtocol} implementation to use.\r\n */\r\n public withHubProtocol(protocol: IHubProtocol): HubConnectionBuilder {\r\n Arg.isRequired(protocol, \"protocol\");\r\n\r\n this.protocol = protocol;\r\n return this;\r\n }\r\n\r\n /** Configures the {@link @microsoft/signalr.HubConnection} to automatically attempt to reconnect if the connection is lost.\r\n * By default, the client will wait 0, 2, 10 and 30 seconds respectively before trying up to 4 reconnect attempts.\r\n */\r\n public withAutomaticReconnect(): HubConnectionBuilder;\r\n\r\n /** Configures the {@link @microsoft/signalr.HubConnection} to automatically attempt to reconnect if the connection is lost.\r\n *\r\n * @param {number[]} retryDelays An array containing the delays in milliseconds before trying each reconnect attempt.\r\n * The length of the array represents how many failed reconnect attempts it takes before the client will stop attempting to reconnect.\r\n */\r\n public withAutomaticReconnect(retryDelays: number[]): HubConnectionBuilder;\r\n\r\n /** Configures the {@link @microsoft/signalr.HubConnection} to automatically attempt to reconnect if the connection is lost.\r\n *\r\n * @param {IRetryPolicy} reconnectPolicy An {@link @microsoft/signalR.IRetryPolicy} that controls the timing and number of reconnect attempts.\r\n */\r\n public withAutomaticReconnect(reconnectPolicy: IRetryPolicy): HubConnectionBuilder;\r\n public withAutomaticReconnect(retryDelaysOrReconnectPolicy?: number[] | IRetryPolicy): HubConnectionBuilder {\r\n if (this.reconnectPolicy) {\r\n throw new Error(\"A reconnectPolicy has already been set.\");\r\n }\r\n\r\n if (!retryDelaysOrReconnectPolicy) {\r\n this.reconnectPolicy = new DefaultReconnectPolicy();\r\n } else if (Array.isArray(retryDelaysOrReconnectPolicy)) {\r\n this.reconnectPolicy = new DefaultReconnectPolicy(retryDelaysOrReconnectPolicy);\r\n } else {\r\n this.reconnectPolicy = retryDelaysOrReconnectPolicy;\r\n }\r\n\r\n return this;\r\n }\r\n\r\n /** Creates a {@link @microsoft/signalr.HubConnection} from the configuration options specified in this builder.\r\n *\r\n * @returns {HubConnection} The configured {@link @microsoft/signalr.HubConnection}.\r\n */\r\n public build(): HubConnection {\r\n // If httpConnectionOptions has a logger, use it. Otherwise, override it with the one\r\n // provided to configureLogger\r\n const httpConnectionOptions = this.httpConnectionOptions || {};\r\n\r\n // If it's 'null', the user **explicitly** asked for null, don't mess with it.\r\n if (httpConnectionOptions.logger === undefined) {\r\n // If our logger is undefined or null, that's OK, the HttpConnection constructor will handle it.\r\n httpConnectionOptions.logger = this.logger;\r\n }\r\n\r\n // Now create the connection\r\n if (!this.url) {\r\n throw new Error(\"The 'HubConnectionBuilder.withUrl' method must be called before building the connection.\");\r\n }\r\n const connection = new HttpConnection(this.url, httpConnectionOptions);\r\n\r\n return HubConnection.create(\r\n connection,\r\n this.logger || NullLogger.instance,\r\n this.protocol || new JsonHubProtocol(),\r\n this.reconnectPolicy);\r\n }\r\n}\r\n\r\nfunction isLogger(logger: any): logger is ILogger {\r\n return logger.log !== undefined;\r\n}\r\n","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\n\r\n// This is where we add any polyfills we'll need for the browser. It is the entry module for browser-specific builds.\r\n\r\n// Copy from Array.prototype into Uint8Array to polyfill on IE. It's OK because the implementations of indexOf and slice use properties\r\n// that exist on Uint8Array with the same name, and JavaScript is magic.\r\n// We make them 'writable' because the Buffer polyfill messes with it as well.\r\nif (!Uint8Array.prototype.indexOf) {\r\n Object.defineProperty(Uint8Array.prototype, \"indexOf\", {\r\n value: Array.prototype.indexOf,\r\n writable: true,\r\n });\r\n}\r\nif (!Uint8Array.prototype.slice) {\r\n Object.defineProperty(Uint8Array.prototype, \"slice\", {\r\n // wrap the slice in Uint8Array so it looks like a Uint8Array.slice call\r\n // eslint-disable-next-line object-shorthand\r\n value: function(start?: number, end?: number) { return new Uint8Array(Array.prototype.slice.call(this, start, end)); },\r\n writable: true,\r\n });\r\n}\r\nif (!Uint8Array.prototype.forEach) {\r\n Object.defineProperty(Uint8Array.prototype, \"forEach\", {\r\n value: Array.prototype.forEach,\r\n writable: true,\r\n });\r\n}\r\n\r\nexport * from \"./index\";\r\n","import EventBus from '@/Application/event-bus';\r\nimport $q from '@/Services/promiseHelper';\r\nimport care from '@/Services/careService';\r\nimport token from '@/Services/token';\r\nimport api from '@/Services/api';\r\n\r\nexport default { \r\n handleRefreshAsyncBound: null,\r\n\r\n created() {\r\n this.handleRefreshAsyncBound = this.handleRefreshAsync.bind(this);\r\n\r\n EventBus.$on('RefreshAccessTokenAsync', this.handleRefreshAsyncBound);\r\n },\r\n\r\n destroyed() {\r\n EventBus.$off('RefreshAccessTokenAsync', this.handleRefreshAsyncBound);\r\n },\r\n\r\n async handleRefreshAsync() {\r\n try {\r\n let response = await this.refreshAccessToken(1);\r\n\r\n if(response.data.Result.success)\r\n token.UpdateToken(response.data.Result);\r\n }\r\n catch(e) {\r\n care.logError(e, true);\r\n }\r\n },\r\n\r\n refreshWithExtraToken(removeTypes, addTypes) {\r\n let promise = $q.defer();\r\n\r\n // get 2 tokens, return one back to caller\r\n this.refreshAccessToken(2, removeTypes, addTypes).then(function (response){\r\n if (response.data.Result.success){\r\n // update the local token with the first token in the response\r\n token.UpdateToken(response.data.Result);\r\n\r\n // return the second token for use in opening a child window with it's own accessToken\r\n promise.resolve(response.data.Result.tokens[1]);\r\n }\r\n else {\r\n promise.reject();\r\n }\r\n },\r\n function(error) {\r\n promise.reject(error);\r\n });\r\n\r\n return promise.promise;\r\n },\r\n\r\n refreshAccessToken(tokenCount, securityContextsToRemove, securityContextsToAdd){\r\n care.logInfo(\"Refreshing AccessToken\");\r\n\r\n let tokenRequests = [];\r\n\r\n for (let x = 0; x < tokenCount; x++){\r\n let tokenRequest = {};\r\n\r\n // the first token will not remove any types. Additional tokens will remove the specified security context types\r\n if (x > 0){\r\n if (securityContextsToRemove)\r\n tokenRequest.removeTypes = securityContextsToRemove;\r\n\r\n if (securityContextsToAdd)\r\n tokenRequest.addTypes = [ securityContextsToAdd ];\r\n }\r\n\r\n tokenRequests.push(tokenRequest);\r\n }\r\n\r\n // return the promise from the api\r\n return api.apiRequest({\r\n method: 'POST',\r\n url: '/Apps/RefreshTokenWithOptions',\r\n data: {\r\n access_token: token.AccessToken(),\r\n refresh_token: token.RefreshToken(),\r\n tokens: tokenRequests\r\n },\r\n addAccessTokenInHeader: false, // do not add access token to header when refreshing (it maybe expired and would be verified & rejected before processing the RefreshToken request)\r\n doNotQueue: true // because the refresh_token is passed in the \"data\" element, if it is expired, queueing the request and running later would just refresh with an expired token and cause constant reauthentication. \r\n });\r\n }\r\n}","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!./verticalTabs.vue?vue&type=style&index=0&id=73838222&prod&scoped=true&lang=css&\"","const WINDOWS_TO_IANA = [\r\n {\r\n windowsName: 'Dateline Standard Time',\r\n territory: '001',\r\n iana: ['Etc/GMT+12'],\r\n },\r\n {\r\n windowsName: 'Dateline Standard Time',\r\n territory: 'ZZ',\r\n iana: ['Etc/GMT+12'],\r\n },\r\n {\r\n windowsName: 'UTC-11',\r\n territory: '001',\r\n iana: ['Etc/GMT+11'],\r\n },\r\n {\r\n windowsName: 'UTC-11',\r\n territory: 'AS',\r\n iana: ['Pacific/Pago_Pago'],\r\n },\r\n {\r\n windowsName: 'UTC-11',\r\n territory: 'NU',\r\n iana: ['Pacific/Niue'],\r\n },\r\n {\r\n windowsName: 'UTC-11',\r\n territory: 'UM',\r\n iana: ['Pacific/Midway'],\r\n },\r\n {\r\n windowsName: 'UTC-11',\r\n territory: 'ZZ',\r\n iana: ['Etc/GMT+11'],\r\n },\r\n {\r\n windowsName: 'Aleutian Standard Time',\r\n territory: '001',\r\n iana: ['America/Adak'],\r\n },\r\n {\r\n windowsName: 'Aleutian Standard Time',\r\n territory: 'US',\r\n iana: ['America/Adak'],\r\n },\r\n {\r\n windowsName: 'Hawaiian Standard Time',\r\n territory: '001',\r\n iana: ['Pacific/Honolulu'],\r\n },\r\n {\r\n windowsName: 'Hawaiian Standard Time',\r\n territory: 'CK',\r\n iana: ['Pacific/Rarotonga'],\r\n },\r\n {\r\n windowsName: 'Hawaiian Standard Time',\r\n territory: 'PF',\r\n iana: ['Pacific/Tahiti'],\r\n },\r\n {\r\n windowsName: 'Hawaiian Standard Time',\r\n territory: 'UM',\r\n iana: ['Pacific/Johnston'],\r\n },\r\n {\r\n windowsName: 'Hawaiian Standard Time',\r\n territory: 'US',\r\n iana: ['Pacific/Honolulu'],\r\n },\r\n {\r\n windowsName: 'Hawaiian Standard Time',\r\n territory: 'ZZ',\r\n iana: ['Etc/GMT+10'],\r\n },\r\n {\r\n windowsName: 'Marquesas Standard Time',\r\n territory: '001',\r\n iana: ['Pacific/Marquesas'],\r\n },\r\n {\r\n windowsName: 'Marquesas Standard Time',\r\n territory: 'PF',\r\n iana: ['Pacific/Marquesas'],\r\n },\r\n {\r\n windowsName: 'Alaskan Standard Time',\r\n territory: '001',\r\n iana: ['America/Anchorage'],\r\n },\r\n {\r\n windowsName: 'Alaskan Standard Time',\r\n territory: 'US',\r\n iana: [\r\n 'America/Anchorage',\r\n 'America/Juneau',\r\n 'America/Metlakatla',\r\n 'America/Nome',\r\n 'America/Sitka',\r\n 'America/Yakutat',\r\n ],\r\n },\r\n {\r\n windowsName: 'UTC-09',\r\n territory: '001',\r\n iana: ['Etc/GMT+9'],\r\n },\r\n {\r\n windowsName: 'UTC-09',\r\n territory: 'PF',\r\n iana: ['Pacific/Gambier'],\r\n },\r\n {\r\n windowsName: 'UTC-09',\r\n territory: 'ZZ',\r\n iana: ['Etc/GMT+9'],\r\n },\r\n {\r\n windowsName: 'Pacific Standard Time (Mexico)',\r\n territory: '001',\r\n iana: ['America/Tijuana'],\r\n },\r\n {\r\n windowsName: 'Pacific Standard Time (Mexico)',\r\n territory: 'MX',\r\n iana: ['America/Tijuana', 'America/Santa_Isabel'],\r\n },\r\n {\r\n windowsName: 'UTC-08',\r\n territory: '001',\r\n iana: ['Etc/GMT+8'],\r\n },\r\n {\r\n windowsName: 'UTC-08',\r\n territory: 'PN',\r\n iana: ['Pacific/Pitcairn'],\r\n },\r\n {\r\n windowsName: 'UTC-08',\r\n territory: 'ZZ',\r\n iana: ['Etc/GMT+8'],\r\n },\r\n {\r\n windowsName: 'Pacific Standard Time',\r\n territory: '001',\r\n iana: ['America/Los_Angeles'],\r\n },\r\n {\r\n windowsName: 'Pacific Standard Time',\r\n territory: 'CA',\r\n iana: ['America/Vancouver'],\r\n },\r\n {\r\n windowsName: 'Pacific Standard Time',\r\n territory: 'US',\r\n iana: ['America/Los_Angeles'],\r\n },\r\n {\r\n windowsName: 'Pacific Standard Time',\r\n territory: 'ZZ',\r\n iana: ['PST8PDT'],\r\n },\r\n {\r\n windowsName: 'US Mountain Standard Time',\r\n territory: '001',\r\n iana: ['America/Phoenix'],\r\n },\r\n {\r\n windowsName: 'US Mountain Standard Time',\r\n territory: 'CA',\r\n iana: ['America/Creston', 'America/Dawson_Creek', 'America/Fort_Nelson'],\r\n },\r\n {\r\n windowsName: 'US Mountain Standard Time',\r\n territory: 'MX',\r\n iana: ['America/Hermosillo'],\r\n },\r\n {\r\n windowsName: 'US Mountain Standard Time',\r\n territory: 'US',\r\n iana: ['America/Phoenix'],\r\n },\r\n {\r\n windowsName: 'US Mountain Standard Time',\r\n territory: 'ZZ',\r\n iana: ['Etc/GMT+7'],\r\n },\r\n {\r\n windowsName: 'Mountain Standard Time (Mexico)',\r\n territory: '001',\r\n iana: ['America/Chihuahua'],\r\n },\r\n {\r\n windowsName: 'Mountain Standard Time (Mexico)',\r\n territory: 'MX',\r\n iana: ['America/Chihuahua', 'America/Mazatlan'],\r\n },\r\n {\r\n windowsName: 'Mountain Standard Time',\r\n territory: '001',\r\n iana: ['America/Denver'],\r\n },\r\n {\r\n windowsName: 'Mountain Standard Time',\r\n territory: 'CA',\r\n iana: ['America/Edmonton', 'America/Cambridge_Bay', 'America/Inuvik', 'America/Yellowknife'],\r\n },\r\n {\r\n windowsName: 'Mountain Standard Time',\r\n territory: 'MX',\r\n iana: ['America/Ojinaga'],\r\n },\r\n {\r\n windowsName: 'Mountain Standard Time',\r\n territory: 'US',\r\n iana: ['America/Denver', 'America/Boise'],\r\n },\r\n {\r\n windowsName: 'Mountain Standard Time',\r\n territory: 'ZZ',\r\n iana: ['MST7MDT'],\r\n },\r\n {\r\n windowsName: 'Yukon Standard Time',\r\n territory: '001',\r\n iana: ['America/Whitehorse'],\r\n },\r\n {\r\n windowsName: 'Yukon Standard Time',\r\n territory: 'CA',\r\n iana: ['America/Whitehorse', 'America/Dawson'],\r\n },\r\n {\r\n windowsName: 'Central America Standard Time',\r\n territory: '001',\r\n iana: ['America/Guatemala'],\r\n },\r\n {\r\n windowsName: 'Central America Standard Time',\r\n territory: 'BZ',\r\n iana: ['America/Belize'],\r\n },\r\n {\r\n windowsName: 'Central America Standard Time',\r\n territory: 'CR',\r\n iana: ['America/Costa_Rica'],\r\n },\r\n {\r\n windowsName: 'Central America Standard Time',\r\n territory: 'EC',\r\n iana: ['Pacific/Galapagos'],\r\n },\r\n {\r\n windowsName: 'Central America Standard Time',\r\n territory: 'GT',\r\n iana: ['America/Guatemala'],\r\n },\r\n {\r\n windowsName: 'Central America Standard Time',\r\n territory: 'HN',\r\n iana: ['America/Tegucigalpa'],\r\n },\r\n {\r\n windowsName: 'Central America Standard Time',\r\n territory: 'NI',\r\n iana: ['America/Managua'],\r\n },\r\n {\r\n windowsName: 'Central America Standard Time',\r\n territory: 'SV',\r\n iana: ['America/El_Salvador'],\r\n },\r\n {\r\n windowsName: 'Central America Standard Time',\r\n territory: 'ZZ',\r\n iana: ['Etc/GMT+6'],\r\n },\r\n {\r\n windowsName: 'Central Standard Time',\r\n territory: '001',\r\n iana: ['America/Chicago'],\r\n },\r\n {\r\n windowsName: 'Central Standard Time',\r\n territory: 'CA',\r\n iana: ['America/Winnipeg', 'America/Rainy_River', 'America/Rankin_Inlet', 'America/Resolute'],\r\n },\r\n {\r\n windowsName: 'Central Standard Time',\r\n territory: 'MX',\r\n iana: ['America/Matamoros'],\r\n },\r\n {\r\n windowsName: 'Central Standard Time',\r\n territory: 'US',\r\n iana: [\r\n 'America/Chicago',\r\n 'America/Indiana/Knox',\r\n 'America/Indiana/Tell_City',\r\n 'America/Menominee',\r\n 'America/North_Dakota/Beulah',\r\n 'America/North_Dakota/Center',\r\n 'America/North_Dakota/New_Salem',\r\n ],\r\n },\r\n {\r\n windowsName: 'Central Standard Time',\r\n territory: 'ZZ',\r\n iana: ['CST6CDT'],\r\n },\r\n {\r\n windowsName: 'Easter Island Standard Time',\r\n territory: '001',\r\n iana: ['Pacific/Easter'],\r\n },\r\n {\r\n windowsName: 'Easter Island Standard Time',\r\n territory: 'CL',\r\n iana: ['Pacific/Easter'],\r\n },\r\n {\r\n windowsName: 'Central Standard Time (Mexico)',\r\n territory: '001',\r\n iana: ['America/Mexico_City'],\r\n },\r\n {\r\n windowsName: 'Central Standard Time (Mexico)',\r\n territory: 'MX',\r\n iana: ['America/Mexico_City', 'America/Bahia_Banderas', 'America/Merida', 'America/Monterrey'],\r\n },\r\n {\r\n windowsName: 'Canada Central Standard Time',\r\n territory: '001',\r\n iana: ['America/Regina'],\r\n },\r\n {\r\n windowsName: 'Canada Central Standard Time',\r\n territory: 'CA',\r\n iana: ['America/Regina', 'America/Swift_Current'],\r\n },\r\n {\r\n windowsName: 'SA Pacific Standard Time',\r\n territory: '001',\r\n iana: ['America/Bogota'],\r\n },\r\n {\r\n windowsName: 'SA Pacific Standard Time',\r\n territory: 'BR',\r\n iana: ['America/Rio_Branco', 'America/Eirunepe'],\r\n },\r\n {\r\n windowsName: 'SA Pacific Standard Time',\r\n territory: 'CA',\r\n iana: ['America/Coral_Harbour'],\r\n },\r\n {\r\n windowsName: 'SA Pacific Standard Time',\r\n territory: 'CO',\r\n iana: ['America/Bogota'],\r\n },\r\n {\r\n windowsName: 'SA Pacific Standard Time',\r\n territory: 'EC',\r\n iana: ['America/Guayaquil'],\r\n },\r\n {\r\n windowsName: 'SA Pacific Standard Time',\r\n territory: 'JM',\r\n iana: ['America/Jamaica'],\r\n },\r\n {\r\n windowsName: 'SA Pacific Standard Time',\r\n territory: 'KY',\r\n iana: ['America/Cayman'],\r\n },\r\n {\r\n windowsName: 'SA Pacific Standard Time',\r\n territory: 'PA',\r\n iana: ['America/Panama'],\r\n },\r\n {\r\n windowsName: 'SA Pacific Standard Time',\r\n territory: 'PE',\r\n iana: ['America/Lima'],\r\n },\r\n {\r\n windowsName: 'SA Pacific Standard Time',\r\n territory: 'ZZ',\r\n iana: ['Etc/GMT+5'],\r\n },\r\n {\r\n windowsName: 'Eastern Standard Time (Mexico)',\r\n territory: '001',\r\n iana: ['America/Cancun'],\r\n },\r\n {\r\n windowsName: 'Eastern Standard Time (Mexico)',\r\n territory: 'MX',\r\n iana: ['America/Cancun'],\r\n },\r\n {\r\n windowsName: 'Eastern Standard Time',\r\n territory: '001',\r\n iana: ['America/New_York'],\r\n },\r\n {\r\n windowsName: 'Eastern Standard Time',\r\n territory: 'BS',\r\n iana: ['America/Nassau'],\r\n },\r\n {\r\n windowsName: 'Eastern Standard Time',\r\n territory: 'CA',\r\n iana: [\r\n 'America/Toronto',\r\n 'America/Iqaluit',\r\n 'America/Montreal',\r\n 'America/Nipigon',\r\n 'America/Pangnirtung',\r\n 'America/Thunder_Bay',\r\n ],\r\n },\r\n {\r\n windowsName: 'Eastern Standard Time',\r\n territory: 'US',\r\n iana: [\r\n 'America/New_York',\r\n 'America/Detroit',\r\n 'America/Indiana/Petersburg',\r\n 'America/Indiana/Vincennes',\r\n 'America/Indiana/Winamac',\r\n 'America/Kentucky/Monticello',\r\n 'America/Louisville',\r\n ],\r\n },\r\n {\r\n windowsName: 'Eastern Standard Time',\r\n territory: 'ZZ',\r\n iana: ['EST5EDT'],\r\n },\r\n {\r\n windowsName: 'Haiti Standard Time',\r\n territory: '001',\r\n iana: ['America/Port-au-Prince'],\r\n },\r\n {\r\n windowsName: 'Haiti Standard Time',\r\n territory: 'HT',\r\n iana: ['America/Port-au-Prince'],\r\n },\r\n {\r\n windowsName: 'Cuba Standard Time',\r\n territory: '001',\r\n iana: ['America/Havana'],\r\n },\r\n {\r\n windowsName: 'Cuba Standard Time',\r\n territory: 'CU',\r\n iana: ['America/Havana'],\r\n },\r\n {\r\n windowsName: 'US Eastern Standard Time',\r\n territory: '001',\r\n iana: ['America/Indianapolis'],\r\n },\r\n {\r\n windowsName: 'US Eastern Standard Time',\r\n territory: 'US',\r\n iana: ['America/Indianapolis', 'America/Indiana/Marengo', 'America/Indiana/Vevay'],\r\n },\r\n {\r\n windowsName: 'Turks And Caicos Standard Time',\r\n territory: '001',\r\n iana: ['America/Grand_Turk'],\r\n },\r\n {\r\n windowsName: 'Turks And Caicos Standard Time',\r\n territory: 'TC',\r\n iana: ['America/Grand_Turk'],\r\n },\r\n {\r\n windowsName: 'Paraguay Standard Time',\r\n territory: '001',\r\n iana: ['America/Asuncion'],\r\n },\r\n {\r\n windowsName: 'Paraguay Standard Time',\r\n territory: 'PY',\r\n iana: ['America/Asuncion'],\r\n },\r\n {\r\n windowsName: 'Atlantic Standard Time',\r\n territory: '001',\r\n iana: ['America/Halifax'],\r\n },\r\n {\r\n windowsName: 'Atlantic Standard Time',\r\n territory: 'BM',\r\n iana: ['Atlantic/Bermuda'],\r\n },\r\n {\r\n windowsName: 'Atlantic Standard Time',\r\n territory: 'CA',\r\n iana: ['America/Halifax', 'America/Glace_Bay', 'America/Goose_Bay', 'America/Moncton'],\r\n },\r\n {\r\n windowsName: 'Atlantic Standard Time',\r\n territory: 'GL',\r\n iana: ['America/Thule'],\r\n },\r\n {\r\n windowsName: 'Venezuela Standard Time',\r\n territory: '001',\r\n iana: ['America/Caracas'],\r\n },\r\n {\r\n windowsName: 'Venezuela Standard Time',\r\n territory: 'VE',\r\n iana: ['America/Caracas'],\r\n },\r\n {\r\n windowsName: 'Central Brazilian Standard Time',\r\n territory: '001',\r\n iana: ['America/Cuiaba'],\r\n },\r\n {\r\n windowsName: 'Central Brazilian Standard Time',\r\n territory: 'BR',\r\n iana: ['America/Cuiaba', 'America/Campo_Grande'],\r\n },\r\n {\r\n windowsName: 'SA Western Standard Time',\r\n territory: '001',\r\n iana: ['America/La_Paz'],\r\n },\r\n {\r\n windowsName: 'SA Western Standard Time',\r\n territory: 'AG',\r\n iana: ['America/Antigua'],\r\n },\r\n {\r\n windowsName: 'SA Western Standard Time',\r\n territory: 'AI',\r\n iana: ['America/Anguilla'],\r\n },\r\n {\r\n windowsName: 'SA Western Standard Time',\r\n territory: 'AW',\r\n iana: ['America/Aruba'],\r\n },\r\n {\r\n windowsName: 'SA Western Standard Time',\r\n territory: 'BB',\r\n iana: ['America/Barbados'],\r\n },\r\n {\r\n windowsName: 'SA Western Standard Time',\r\n territory: 'BL',\r\n iana: ['America/St_Barthelemy'],\r\n },\r\n {\r\n windowsName: 'SA Western Standard Time',\r\n territory: 'BO',\r\n iana: ['America/La_Paz'],\r\n },\r\n {\r\n windowsName: 'SA Western Standard Time',\r\n territory: 'BQ',\r\n iana: ['America/Kralendijk'],\r\n },\r\n {\r\n windowsName: 'SA Western Standard Time',\r\n territory: 'BR',\r\n iana: ['America/Manaus', 'America/Boa_Vista', 'America/Porto_Velho'],\r\n },\r\n {\r\n windowsName: 'SA Western Standard Time',\r\n territory: 'CA',\r\n iana: ['America/Blanc-Sablon'],\r\n },\r\n {\r\n windowsName: 'SA Western Standard Time',\r\n territory: 'CW',\r\n iana: ['America/Curacao'],\r\n },\r\n {\r\n windowsName: 'SA Western Standard Time',\r\n territory: 'DM',\r\n iana: ['America/Dominica'],\r\n },\r\n {\r\n windowsName: 'SA Western Standard Time',\r\n territory: 'DO',\r\n iana: ['America/Santo_Domingo'],\r\n },\r\n {\r\n windowsName: 'SA Western Standard Time',\r\n territory: 'GD',\r\n iana: ['America/Grenada'],\r\n },\r\n {\r\n windowsName: 'SA Western Standard Time',\r\n territory: 'GP',\r\n iana: ['America/Guadeloupe'],\r\n },\r\n {\r\n windowsName: 'SA Western Standard Time',\r\n territory: 'GY',\r\n iana: ['America/Guyana'],\r\n },\r\n {\r\n windowsName: 'SA Western Standard Time',\r\n territory: 'KN',\r\n iana: ['America/St_Kitts'],\r\n },\r\n {\r\n windowsName: 'SA Western Standard Time',\r\n territory: 'LC',\r\n iana: ['America/St_Lucia'],\r\n },\r\n {\r\n windowsName: 'SA Western Standard Time',\r\n territory: 'MF',\r\n iana: ['America/Marigot'],\r\n },\r\n {\r\n windowsName: 'SA Western Standard Time',\r\n territory: 'MQ',\r\n iana: ['America/Martinique'],\r\n },\r\n {\r\n windowsName: 'SA Western Standard Time',\r\n territory: 'MS',\r\n iana: ['America/Montserrat'],\r\n },\r\n {\r\n windowsName: 'SA Western Standard Time',\r\n territory: 'PR',\r\n iana: ['America/Puerto_Rico'],\r\n },\r\n {\r\n windowsName: 'SA Western Standard Time',\r\n territory: 'SX',\r\n iana: ['America/Lower_Princes'],\r\n },\r\n {\r\n windowsName: 'SA Western Standard Time',\r\n territory: 'TT',\r\n iana: ['America/Port_of_Spain'],\r\n },\r\n {\r\n windowsName: 'SA Western Standard Time',\r\n territory: 'VC',\r\n iana: ['America/St_Vincent'],\r\n },\r\n {\r\n windowsName: 'SA Western Standard Time',\r\n territory: 'VG',\r\n iana: ['America/Tortola'],\r\n },\r\n {\r\n windowsName: 'SA Western Standard Time',\r\n territory: 'VI',\r\n iana: ['America/St_Thomas'],\r\n },\r\n {\r\n windowsName: 'SA Western Standard Time',\r\n territory: 'ZZ',\r\n iana: ['Etc/GMT+4'],\r\n },\r\n {\r\n windowsName: 'Pacific SA Standard Time',\r\n territory: '001',\r\n iana: ['America/Santiago'],\r\n },\r\n {\r\n windowsName: 'Pacific SA Standard Time',\r\n territory: 'CL',\r\n iana: ['America/Santiago'],\r\n },\r\n {\r\n windowsName: 'Newfoundland Standard Time',\r\n territory: '001',\r\n iana: ['America/St_Johns'],\r\n },\r\n {\r\n windowsName: 'Newfoundland Standard Time',\r\n territory: 'CA',\r\n iana: ['America/St_Johns'],\r\n },\r\n {\r\n windowsName: 'Tocantins Standard Time',\r\n territory: '001',\r\n iana: ['America/Araguaina'],\r\n },\r\n {\r\n windowsName: 'Tocantins Standard Time',\r\n territory: 'BR',\r\n iana: ['America/Araguaina'],\r\n },\r\n {\r\n windowsName: 'E. South America Standard Time',\r\n territory: '001',\r\n iana: ['America/Sao_Paulo'],\r\n },\r\n {\r\n windowsName: 'E. South America Standard Time',\r\n territory: 'BR',\r\n iana: ['America/Sao_Paulo'],\r\n },\r\n {\r\n windowsName: 'SA Eastern Standard Time',\r\n territory: '001',\r\n iana: ['America/Cayenne'],\r\n },\r\n {\r\n windowsName: 'SA Eastern Standard Time',\r\n territory: 'AQ',\r\n iana: ['Antarctica/Rothera', 'Antarctica/Palmer'],\r\n },\r\n {\r\n windowsName: 'SA Eastern Standard Time',\r\n territory: 'BR',\r\n iana: [\r\n 'America/Fortaleza',\r\n 'America/Belem',\r\n 'America/Maceio',\r\n 'America/Recife',\r\n 'America/Santarem',\r\n ],\r\n },\r\n {\r\n windowsName: 'SA Eastern Standard Time',\r\n territory: 'FK',\r\n iana: ['Atlantic/Stanley'],\r\n },\r\n {\r\n windowsName: 'SA Eastern Standard Time',\r\n territory: 'GF',\r\n iana: ['America/Cayenne'],\r\n },\r\n {\r\n windowsName: 'SA Eastern Standard Time',\r\n territory: 'SR',\r\n iana: ['America/Paramaribo'],\r\n },\r\n {\r\n windowsName: 'SA Eastern Standard Time',\r\n territory: 'ZZ',\r\n iana: ['Etc/GMT+3'],\r\n },\r\n {\r\n windowsName: 'Argentina Standard Time',\r\n territory: '001',\r\n iana: ['America/Buenos_Aires'],\r\n },\r\n {\r\n windowsName: 'Argentina Standard Time',\r\n territory: 'AR',\r\n iana: [\r\n 'America/Buenos_Aires',\r\n 'America/Argentina/La_Rioja',\r\n 'America/Argentina/Rio_Gallegos',\r\n 'America/Argentina/Salta',\r\n 'America/Argentina/San_Juan',\r\n 'America/Argentina/San_Luis',\r\n 'America/Argentina/Tucuman',\r\n 'America/Argentina/Ushuaia',\r\n 'America/Catamarca',\r\n 'America/Cordoba',\r\n 'America/Jujuy',\r\n 'America/Mendoza',\r\n ],\r\n },\r\n {\r\n windowsName: 'Greenland Standard Time',\r\n territory: '001',\r\n iana: ['America/Godthab'],\r\n },\r\n {\r\n windowsName: 'Greenland Standard Time',\r\n territory: 'GL',\r\n iana: ['America/Godthab'],\r\n },\r\n {\r\n windowsName: 'Montevideo Standard Time',\r\n territory: '001',\r\n iana: ['America/Montevideo'],\r\n },\r\n {\r\n windowsName: 'Montevideo Standard Time',\r\n territory: 'UY',\r\n iana: ['America/Montevideo'],\r\n },\r\n {\r\n windowsName: 'Magallanes Standard Time',\r\n territory: '001',\r\n iana: ['America/Punta_Arenas'],\r\n },\r\n {\r\n windowsName: 'Magallanes Standard Time',\r\n territory: 'CL',\r\n iana: ['America/Punta_Arenas'],\r\n },\r\n {\r\n windowsName: 'Saint Pierre Standard Time',\r\n territory: '001',\r\n iana: ['America/Miquelon'],\r\n },\r\n {\r\n windowsName: 'Saint Pierre Standard Time',\r\n territory: 'PM',\r\n iana: ['America/Miquelon'],\r\n },\r\n {\r\n windowsName: 'Bahia Standard Time',\r\n territory: '001',\r\n iana: ['America/Bahia'],\r\n },\r\n {\r\n windowsName: 'Bahia Standard Time',\r\n territory: 'BR',\r\n iana: ['America/Bahia'],\r\n },\r\n {\r\n windowsName: 'UTC-02',\r\n territory: '001',\r\n iana: ['Etc/GMT+2'],\r\n },\r\n {\r\n windowsName: 'UTC-02',\r\n territory: 'BR',\r\n iana: ['America/Noronha'],\r\n },\r\n {\r\n windowsName: 'UTC-02',\r\n territory: 'GS',\r\n iana: ['Atlantic/South_Georgia'],\r\n },\r\n {\r\n windowsName: 'UTC-02',\r\n territory: 'ZZ',\r\n iana: ['Etc/GMT+2'],\r\n },\r\n {\r\n windowsName: 'Azores Standard Time',\r\n territory: '001',\r\n iana: ['Atlantic/Azores'],\r\n },\r\n {\r\n windowsName: 'Azores Standard Time',\r\n territory: 'GL',\r\n iana: ['America/Scoresbysund'],\r\n },\r\n {\r\n windowsName: 'Azores Standard Time',\r\n territory: 'PT',\r\n iana: ['Atlantic/Azores'],\r\n },\r\n {\r\n windowsName: 'Cape Verde Standard Time',\r\n territory: '001',\r\n iana: ['Atlantic/Cape_Verde'],\r\n },\r\n {\r\n windowsName: 'Cape Verde Standard Time',\r\n territory: 'CV',\r\n iana: ['Atlantic/Cape_Verde'],\r\n },\r\n {\r\n windowsName: 'Cape Verde Standard Time',\r\n territory: 'ZZ',\r\n iana: ['Etc/GMT+1'],\r\n },\r\n {\r\n windowsName: 'UTC',\r\n territory: '001',\r\n iana: ['Etc/UTC'],\r\n },\r\n {\r\n windowsName: 'UTC',\r\n territory: 'ZZ',\r\n iana: ['Etc/UTC', 'Etc/GMT'],\r\n },\r\n {\r\n windowsName: 'GMT Standard Time',\r\n territory: '001',\r\n iana: ['Europe/London'],\r\n },\r\n {\r\n windowsName: 'GMT Standard Time',\r\n territory: 'ES',\r\n iana: ['Atlantic/Canary'],\r\n },\r\n {\r\n windowsName: 'GMT Standard Time',\r\n territory: 'FO',\r\n iana: ['Atlantic/Faeroe'],\r\n },\r\n {\r\n windowsName: 'GMT Standard Time',\r\n territory: 'GB',\r\n iana: ['Europe/London'],\r\n },\r\n {\r\n windowsName: 'GMT Standard Time',\r\n territory: 'GG',\r\n iana: ['Europe/Guernsey'],\r\n },\r\n {\r\n windowsName: 'GMT Standard Time',\r\n territory: 'IE',\r\n iana: ['Europe/Dublin'],\r\n },\r\n {\r\n windowsName: 'GMT Standard Time',\r\n territory: 'IM',\r\n iana: ['Europe/Isle_of_Man'],\r\n },\r\n {\r\n windowsName: 'GMT Standard Time',\r\n territory: 'JE',\r\n iana: ['Europe/Jersey'],\r\n },\r\n {\r\n windowsName: 'GMT Standard Time',\r\n territory: 'PT',\r\n iana: ['Europe/Lisbon', 'Atlantic/Madeira'],\r\n },\r\n {\r\n windowsName: 'Greenwich Standard Time',\r\n territory: '001',\r\n iana: ['Atlantic/Reykjavik'],\r\n },\r\n {\r\n windowsName: 'Greenwich Standard Time',\r\n territory: 'BF',\r\n iana: ['Africa/Ouagadougou'],\r\n },\r\n {\r\n windowsName: 'Greenwich Standard Time',\r\n territory: 'CI',\r\n iana: ['Africa/Abidjan'],\r\n },\r\n {\r\n windowsName: 'Greenwich Standard Time',\r\n territory: 'GH',\r\n iana: ['Africa/Accra'],\r\n },\r\n {\r\n windowsName: 'Greenwich Standard Time',\r\n territory: 'GL',\r\n iana: ['America/Danmarkshavn'],\r\n },\r\n {\r\n windowsName: 'Greenwich Standard Time',\r\n territory: 'GM',\r\n iana: ['Africa/Banjul'],\r\n },\r\n {\r\n windowsName: 'Greenwich Standard Time',\r\n territory: 'GN',\r\n iana: ['Africa/Conakry'],\r\n },\r\n {\r\n windowsName: 'Greenwich Standard Time',\r\n territory: 'GW',\r\n iana: ['Africa/Bissau'],\r\n },\r\n {\r\n windowsName: 'Greenwich Standard Time',\r\n territory: 'IS',\r\n iana: ['Atlantic/Reykjavik'],\r\n },\r\n {\r\n windowsName: 'Greenwich Standard Time',\r\n territory: 'LR',\r\n iana: ['Africa/Monrovia'],\r\n },\r\n {\r\n windowsName: 'Greenwich Standard Time',\r\n territory: 'ML',\r\n iana: ['Africa/Bamako'],\r\n },\r\n {\r\n windowsName: 'Greenwich Standard Time',\r\n territory: 'MR',\r\n iana: ['Africa/Nouakchott'],\r\n },\r\n {\r\n windowsName: 'Greenwich Standard Time',\r\n territory: 'SH',\r\n iana: ['Atlantic/St_Helena'],\r\n },\r\n {\r\n windowsName: 'Greenwich Standard Time',\r\n territory: 'SL',\r\n iana: ['Africa/Freetown'],\r\n },\r\n {\r\n windowsName: 'Greenwich Standard Time',\r\n territory: 'SN',\r\n iana: ['Africa/Dakar'],\r\n },\r\n {\r\n windowsName: 'Greenwich Standard Time',\r\n territory: 'TG',\r\n iana: ['Africa/Lome'],\r\n },\r\n {\r\n windowsName: 'Sao Tome Standard Time',\r\n territory: '001',\r\n iana: ['Africa/Sao_Tome'],\r\n },\r\n {\r\n windowsName: 'Sao Tome Standard Time',\r\n territory: 'ST',\r\n iana: ['Africa/Sao_Tome'],\r\n },\r\n {\r\n windowsName: 'Morocco Standard Time',\r\n territory: '001',\r\n iana: ['Africa/Casablanca'],\r\n },\r\n {\r\n windowsName: 'Morocco Standard Time',\r\n territory: 'EH',\r\n iana: ['Africa/El_Aaiun'],\r\n },\r\n {\r\n windowsName: 'Morocco Standard Time',\r\n territory: 'MA',\r\n iana: ['Africa/Casablanca'],\r\n },\r\n {\r\n windowsName: 'W. Europe Standard Time',\r\n territory: '001',\r\n iana: ['Europe/Berlin'],\r\n },\r\n {\r\n windowsName: 'W. Europe Standard Time',\r\n territory: 'AD',\r\n iana: ['Europe/Andorra'],\r\n },\r\n {\r\n windowsName: 'W. Europe Standard Time',\r\n territory: 'AT',\r\n iana: ['Europe/Vienna'],\r\n },\r\n {\r\n windowsName: 'W. Europe Standard Time',\r\n territory: 'CH',\r\n iana: ['Europe/Zurich'],\r\n },\r\n {\r\n windowsName: 'W. Europe Standard Time',\r\n territory: 'DE',\r\n iana: ['Europe/Berlin', 'Europe/Busingen'],\r\n },\r\n {\r\n windowsName: 'W. Europe Standard Time',\r\n territory: 'GI',\r\n iana: ['Europe/Gibraltar'],\r\n },\r\n {\r\n windowsName: 'W. Europe Standard Time',\r\n territory: 'IT',\r\n iana: ['Europe/Rome'],\r\n },\r\n {\r\n windowsName: 'W. Europe Standard Time',\r\n territory: 'LI',\r\n iana: ['Europe/Vaduz'],\r\n },\r\n {\r\n windowsName: 'W. Europe Standard Time',\r\n territory: 'LU',\r\n iana: ['Europe/Luxembourg'],\r\n },\r\n {\r\n windowsName: 'W. Europe Standard Time',\r\n territory: 'MC',\r\n iana: ['Europe/Monaco'],\r\n },\r\n {\r\n windowsName: 'W. Europe Standard Time',\r\n territory: 'MT',\r\n iana: ['Europe/Malta'],\r\n },\r\n {\r\n windowsName: 'W. Europe Standard Time',\r\n territory: 'NL',\r\n iana: ['Europe/Amsterdam'],\r\n },\r\n {\r\n windowsName: 'W. Europe Standard Time',\r\n territory: 'NO',\r\n iana: ['Europe/Oslo'],\r\n },\r\n {\r\n windowsName: 'W. Europe Standard Time',\r\n territory: 'SE',\r\n iana: ['Europe/Stockholm'],\r\n },\r\n {\r\n windowsName: 'W. Europe Standard Time',\r\n territory: 'SJ',\r\n iana: ['Arctic/Longyearbyen'],\r\n },\r\n {\r\n windowsName: 'W. Europe Standard Time',\r\n territory: 'SM',\r\n iana: ['Europe/San_Marino'],\r\n },\r\n {\r\n windowsName: 'W. Europe Standard Time',\r\n territory: 'VA',\r\n iana: ['Europe/Vatican'],\r\n },\r\n {\r\n windowsName: 'Central Europe Standard Time',\r\n territory: '001',\r\n iana: ['Europe/Budapest'],\r\n },\r\n {\r\n windowsName: 'Central Europe Standard Time',\r\n territory: 'AL',\r\n iana: ['Europe/Tirane'],\r\n },\r\n {\r\n windowsName: 'Central Europe Standard Time',\r\n territory: 'CZ',\r\n iana: ['Europe/Prague'],\r\n },\r\n {\r\n windowsName: 'Central Europe Standard Time',\r\n territory: 'HU',\r\n iana: ['Europe/Budapest'],\r\n },\r\n {\r\n windowsName: 'Central Europe Standard Time',\r\n territory: 'ME',\r\n iana: ['Europe/Podgorica'],\r\n },\r\n {\r\n windowsName: 'Central Europe Standard Time',\r\n territory: 'RS',\r\n iana: ['Europe/Belgrade'],\r\n },\r\n {\r\n windowsName: 'Central Europe Standard Time',\r\n territory: 'SI',\r\n iana: ['Europe/Ljubljana'],\r\n },\r\n {\r\n windowsName: 'Central Europe Standard Time',\r\n territory: 'SK',\r\n iana: ['Europe/Bratislava'],\r\n },\r\n {\r\n windowsName: 'Romance Standard Time',\r\n territory: '001',\r\n iana: ['Europe/Paris'],\r\n },\r\n {\r\n windowsName: 'Romance Standard Time',\r\n territory: 'BE',\r\n iana: ['Europe/Brussels'],\r\n },\r\n {\r\n windowsName: 'Romance Standard Time',\r\n territory: 'DK',\r\n iana: ['Europe/Copenhagen'],\r\n },\r\n {\r\n windowsName: 'Romance Standard Time',\r\n territory: 'ES',\r\n iana: ['Europe/Madrid', 'Africa/Ceuta'],\r\n },\r\n {\r\n windowsName: 'Romance Standard Time',\r\n territory: 'FR',\r\n iana: ['Europe/Paris'],\r\n },\r\n {\r\n windowsName: 'Central European Standard Time',\r\n territory: '001',\r\n iana: ['Europe/Warsaw'],\r\n },\r\n {\r\n windowsName: 'Central European Standard Time',\r\n territory: 'BA',\r\n iana: ['Europe/Sarajevo'],\r\n },\r\n {\r\n windowsName: 'Central European Standard Time',\r\n territory: 'HR',\r\n iana: ['Europe/Zagreb'],\r\n },\r\n {\r\n windowsName: 'Central European Standard Time',\r\n territory: 'MK',\r\n iana: ['Europe/Skopje'],\r\n },\r\n {\r\n windowsName: 'Central European Standard Time',\r\n territory: 'PL',\r\n iana: ['Europe/Warsaw'],\r\n },\r\n {\r\n windowsName: 'W. Central Africa Standard Time',\r\n territory: '001',\r\n iana: ['Africa/Lagos'],\r\n },\r\n {\r\n windowsName: 'W. Central Africa Standard Time',\r\n territory: 'AO',\r\n iana: ['Africa/Luanda'],\r\n },\r\n {\r\n windowsName: 'W. Central Africa Standard Time',\r\n territory: 'BJ',\r\n iana: ['Africa/Porto-Novo'],\r\n },\r\n {\r\n windowsName: 'W. Central Africa Standard Time',\r\n territory: 'CD',\r\n iana: ['Africa/Kinshasa'],\r\n },\r\n {\r\n windowsName: 'W. Central Africa Standard Time',\r\n territory: 'CF',\r\n iana: ['Africa/Bangui'],\r\n },\r\n {\r\n windowsName: 'W. Central Africa Standard Time',\r\n territory: 'CG',\r\n iana: ['Africa/Brazzaville'],\r\n },\r\n {\r\n windowsName: 'W. Central Africa Standard Time',\r\n territory: 'CM',\r\n iana: ['Africa/Douala'],\r\n },\r\n {\r\n windowsName: 'W. Central Africa Standard Time',\r\n territory: 'DZ',\r\n iana: ['Africa/Algiers'],\r\n },\r\n {\r\n windowsName: 'W. Central Africa Standard Time',\r\n territory: 'GA',\r\n iana: ['Africa/Libreville'],\r\n },\r\n {\r\n windowsName: 'W. Central Africa Standard Time',\r\n territory: 'GQ',\r\n iana: ['Africa/Malabo'],\r\n },\r\n {\r\n windowsName: 'W. Central Africa Standard Time',\r\n territory: 'NE',\r\n iana: ['Africa/Niamey'],\r\n },\r\n {\r\n windowsName: 'W. Central Africa Standard Time',\r\n territory: 'NG',\r\n iana: ['Africa/Lagos'],\r\n },\r\n {\r\n windowsName: 'W. Central Africa Standard Time',\r\n territory: 'TD',\r\n iana: ['Africa/Ndjamena'],\r\n },\r\n {\r\n windowsName: 'W. Central Africa Standard Time',\r\n territory: 'TN',\r\n iana: ['Africa/Tunis'],\r\n },\r\n {\r\n windowsName: 'W. Central Africa Standard Time',\r\n territory: 'ZZ',\r\n iana: ['Etc/GMT-1'],\r\n },\r\n {\r\n windowsName: 'Jordan Standard Time',\r\n territory: '001',\r\n iana: ['Asia/Amman'],\r\n },\r\n {\r\n windowsName: 'Jordan Standard Time',\r\n territory: 'JO',\r\n iana: ['Asia/Amman'],\r\n },\r\n {\r\n windowsName: 'GTB Standard Time',\r\n territory: '001',\r\n iana: ['Europe/Bucharest'],\r\n },\r\n {\r\n windowsName: 'GTB Standard Time',\r\n territory: 'CY',\r\n iana: ['Asia/Nicosia', 'Asia/Famagusta'],\r\n },\r\n {\r\n windowsName: 'GTB Standard Time',\r\n territory: 'GR',\r\n iana: ['Europe/Athens'],\r\n },\r\n {\r\n windowsName: 'GTB Standard Time',\r\n territory: 'RO',\r\n iana: ['Europe/Bucharest'],\r\n },\r\n {\r\n windowsName: 'Middle East Standard Time',\r\n territory: '001',\r\n iana: ['Asia/Beirut'],\r\n },\r\n {\r\n windowsName: 'Middle East Standard Time',\r\n territory: 'LB',\r\n iana: ['Asia/Beirut'],\r\n },\r\n {\r\n windowsName: 'Egypt Standard Time',\r\n territory: '001',\r\n iana: ['Africa/Cairo'],\r\n },\r\n {\r\n windowsName: 'Egypt Standard Time',\r\n territory: 'EG',\r\n iana: ['Africa/Cairo'],\r\n },\r\n {\r\n windowsName: 'E. Europe Standard Time',\r\n territory: '001',\r\n iana: ['Europe/Chisinau'],\r\n },\r\n {\r\n windowsName: 'E. Europe Standard Time',\r\n territory: 'MD',\r\n iana: ['Europe/Chisinau'],\r\n },\r\n {\r\n windowsName: 'Syria Standard Time',\r\n territory: '001',\r\n iana: ['Asia/Damascus'],\r\n },\r\n {\r\n windowsName: 'Syria Standard Time',\r\n territory: 'SY',\r\n iana: ['Asia/Damascus'],\r\n },\r\n {\r\n windowsName: 'West Bank Standard Time',\r\n territory: '001',\r\n iana: ['Asia/Hebron'],\r\n },\r\n {\r\n windowsName: 'West Bank Standard Time',\r\n territory: 'PS',\r\n iana: ['Asia/Hebron', 'Asia/Gaza'],\r\n },\r\n {\r\n windowsName: 'South Africa Standard Time',\r\n territory: '001',\r\n iana: ['Africa/Johannesburg'],\r\n },\r\n {\r\n windowsName: 'South Africa Standard Time',\r\n territory: 'BI',\r\n iana: ['Africa/Bujumbura'],\r\n },\r\n {\r\n windowsName: 'South Africa Standard Time',\r\n territory: 'BW',\r\n iana: ['Africa/Gaborone'],\r\n },\r\n {\r\n windowsName: 'South Africa Standard Time',\r\n territory: 'CD',\r\n iana: ['Africa/Lubumbashi'],\r\n },\r\n {\r\n windowsName: 'South Africa Standard Time',\r\n territory: 'LS',\r\n iana: ['Africa/Maseru'],\r\n },\r\n {\r\n windowsName: 'South Africa Standard Time',\r\n territory: 'MW',\r\n iana: ['Africa/Blantyre'],\r\n },\r\n {\r\n windowsName: 'South Africa Standard Time',\r\n territory: 'MZ',\r\n iana: ['Africa/Maputo'],\r\n },\r\n {\r\n windowsName: 'South Africa Standard Time',\r\n territory: 'RW',\r\n iana: ['Africa/Kigali'],\r\n },\r\n {\r\n windowsName: 'South Africa Standard Time',\r\n territory: 'SZ',\r\n iana: ['Africa/Mbabane'],\r\n },\r\n {\r\n windowsName: 'South Africa Standard Time',\r\n territory: 'ZA',\r\n iana: ['Africa/Johannesburg'],\r\n },\r\n {\r\n windowsName: 'South Africa Standard Time',\r\n territory: 'ZM',\r\n iana: ['Africa/Lusaka'],\r\n },\r\n {\r\n windowsName: 'South Africa Standard Time',\r\n territory: 'ZW',\r\n iana: ['Africa/Harare'],\r\n },\r\n {\r\n windowsName: 'South Africa Standard Time',\r\n territory: 'ZZ',\r\n iana: ['Etc/GMT-2'],\r\n },\r\n {\r\n windowsName: 'FLE Standard Time',\r\n territory: '001',\r\n iana: ['Europe/Kiev'],\r\n },\r\n {\r\n windowsName: 'FLE Standard Time',\r\n territory: 'AX',\r\n iana: ['Europe/Mariehamn'],\r\n },\r\n {\r\n windowsName: 'FLE Standard Time',\r\n territory: 'BG',\r\n iana: ['Europe/Sofia'],\r\n },\r\n {\r\n windowsName: 'FLE Standard Time',\r\n territory: 'EE',\r\n iana: ['Europe/Tallinn'],\r\n },\r\n {\r\n windowsName: 'FLE Standard Time',\r\n territory: 'FI',\r\n iana: ['Europe/Helsinki'],\r\n },\r\n {\r\n windowsName: 'FLE Standard Time',\r\n territory: 'LT',\r\n iana: ['Europe/Vilnius'],\r\n },\r\n {\r\n windowsName: 'FLE Standard Time',\r\n territory: 'LV',\r\n iana: ['Europe/Riga'],\r\n },\r\n {\r\n windowsName: 'FLE Standard Time',\r\n territory: 'UA',\r\n iana: ['Europe/Kiev', 'Europe/Uzhgorod', 'Europe/Zaporozhye'],\r\n },\r\n {\r\n windowsName: 'Israel Standard Time',\r\n territory: '001',\r\n iana: ['Asia/Jerusalem'],\r\n },\r\n {\r\n windowsName: 'Israel Standard Time',\r\n territory: 'IL',\r\n iana: ['Asia/Jerusalem'],\r\n },\r\n {\r\n windowsName: 'South Sudan Standard Time',\r\n territory: '001',\r\n iana: ['Africa/Juba'],\r\n },\r\n {\r\n windowsName: 'South Sudan Standard Time',\r\n territory: 'SS',\r\n iana: ['Africa/Juba'],\r\n },\r\n {\r\n windowsName: 'Kaliningrad Standard Time',\r\n territory: '001',\r\n iana: ['Europe/Kaliningrad'],\r\n },\r\n {\r\n windowsName: 'Kaliningrad Standard Time',\r\n territory: 'RU',\r\n iana: ['Europe/Kaliningrad'],\r\n },\r\n {\r\n windowsName: 'Sudan Standard Time',\r\n territory: '001',\r\n iana: ['Africa/Khartoum'],\r\n },\r\n {\r\n windowsName: 'Sudan Standard Time',\r\n territory: 'SD',\r\n iana: ['Africa/Khartoum'],\r\n },\r\n {\r\n windowsName: 'Libya Standard Time',\r\n territory: '001',\r\n iana: ['Africa/Tripoli'],\r\n },\r\n {\r\n windowsName: 'Libya Standard Time',\r\n territory: 'LY',\r\n iana: ['Africa/Tripoli'],\r\n },\r\n {\r\n windowsName: 'Namibia Standard Time',\r\n territory: '001',\r\n iana: ['Africa/Windhoek'],\r\n },\r\n {\r\n windowsName: 'Namibia Standard Time',\r\n territory: 'NA',\r\n iana: ['Africa/Windhoek'],\r\n },\r\n {\r\n windowsName: 'Arabic Standard Time',\r\n territory: '001',\r\n iana: ['Asia/Baghdad'],\r\n },\r\n {\r\n windowsName: 'Arabic Standard Time',\r\n territory: 'IQ',\r\n iana: ['Asia/Baghdad'],\r\n },\r\n {\r\n windowsName: 'Turkey Standard Time',\r\n territory: '001',\r\n iana: ['Europe/Istanbul'],\r\n },\r\n {\r\n windowsName: 'Turkey Standard Time',\r\n territory: 'TR',\r\n iana: ['Europe/Istanbul'],\r\n },\r\n {\r\n windowsName: 'Arab Standard Time',\r\n territory: '001',\r\n iana: ['Asia/Riyadh'],\r\n },\r\n {\r\n windowsName: 'Arab Standard Time',\r\n territory: 'BH',\r\n iana: ['Asia/Bahrain'],\r\n },\r\n {\r\n windowsName: 'Arab Standard Time',\r\n territory: 'KW',\r\n iana: ['Asia/Kuwait'],\r\n },\r\n {\r\n windowsName: 'Arab Standard Time',\r\n territory: 'QA',\r\n iana: ['Asia/Qatar'],\r\n },\r\n {\r\n windowsName: 'Arab Standard Time',\r\n territory: 'SA',\r\n iana: ['Asia/Riyadh'],\r\n },\r\n {\r\n windowsName: 'Arab Standard Time',\r\n territory: 'YE',\r\n iana: ['Asia/Aden'],\r\n },\r\n {\r\n windowsName: 'Belarus Standard Time',\r\n territory: '001',\r\n iana: ['Europe/Minsk'],\r\n },\r\n {\r\n windowsName: 'Belarus Standard Time',\r\n territory: 'BY',\r\n iana: ['Europe/Minsk'],\r\n },\r\n {\r\n windowsName: 'Russian Standard Time',\r\n territory: '001',\r\n iana: ['Europe/Moscow'],\r\n },\r\n {\r\n windowsName: 'Russian Standard Time',\r\n territory: 'RU',\r\n iana: ['Europe/Moscow', 'Europe/Kirov'],\r\n },\r\n {\r\n windowsName: 'Russian Standard Time',\r\n territory: 'UA',\r\n iana: ['Europe/Simferopol'],\r\n },\r\n {\r\n windowsName: 'E. Africa Standard Time',\r\n territory: '001',\r\n iana: ['Africa/Nairobi'],\r\n },\r\n {\r\n windowsName: 'E. Africa Standard Time',\r\n territory: 'AQ',\r\n iana: ['Antarctica/Syowa'],\r\n },\r\n {\r\n windowsName: 'E. Africa Standard Time',\r\n territory: 'DJ',\r\n iana: ['Africa/Djibouti'],\r\n },\r\n {\r\n windowsName: 'E. Africa Standard Time',\r\n territory: 'ER',\r\n iana: ['Africa/Asmera'],\r\n },\r\n {\r\n windowsName: 'E. Africa Standard Time',\r\n territory: 'ET',\r\n iana: ['Africa/Addis_Ababa'],\r\n },\r\n {\r\n windowsName: 'E. Africa Standard Time',\r\n territory: 'KE',\r\n iana: ['Africa/Nairobi'],\r\n },\r\n {\r\n windowsName: 'E. Africa Standard Time',\r\n territory: 'KM',\r\n iana: ['Indian/Comoro'],\r\n },\r\n {\r\n windowsName: 'E. Africa Standard Time',\r\n territory: 'MG',\r\n iana: ['Indian/Antananarivo'],\r\n },\r\n {\r\n windowsName: 'E. Africa Standard Time',\r\n territory: 'SO',\r\n iana: ['Africa/Mogadishu'],\r\n },\r\n {\r\n windowsName: 'E. Africa Standard Time',\r\n territory: 'TZ',\r\n iana: ['Africa/Dar_es_Salaam'],\r\n },\r\n {\r\n windowsName: 'E. Africa Standard Time',\r\n territory: 'UG',\r\n iana: ['Africa/Kampala'],\r\n },\r\n {\r\n windowsName: 'E. Africa Standard Time',\r\n territory: 'YT',\r\n iana: ['Indian/Mayotte'],\r\n },\r\n {\r\n windowsName: 'E. Africa Standard Time',\r\n territory: 'ZZ',\r\n iana: ['Etc/GMT-3'],\r\n },\r\n {\r\n windowsName: 'Iran Standard Time',\r\n territory: '001',\r\n iana: ['Asia/Tehran'],\r\n },\r\n {\r\n windowsName: 'Iran Standard Time',\r\n territory: 'IR',\r\n iana: ['Asia/Tehran'],\r\n },\r\n {\r\n windowsName: 'Arabian Standard Time',\r\n territory: '001',\r\n iana: ['Asia/Dubai'],\r\n },\r\n {\r\n windowsName: 'Arabian Standard Time',\r\n territory: 'AE',\r\n iana: ['Asia/Dubai'],\r\n },\r\n {\r\n windowsName: 'Arabian Standard Time',\r\n territory: 'OM',\r\n iana: ['Asia/Muscat'],\r\n },\r\n {\r\n windowsName: 'Arabian Standard Time',\r\n territory: 'ZZ',\r\n iana: ['Etc/GMT-4'],\r\n },\r\n {\r\n windowsName: 'Astrakhan Standard Time',\r\n territory: '001',\r\n iana: ['Europe/Astrakhan'],\r\n },\r\n {\r\n windowsName: 'Astrakhan Standard Time',\r\n territory: 'RU',\r\n iana: ['Europe/Astrakhan', 'Europe/Ulyanovsk'],\r\n },\r\n {\r\n windowsName: 'Azerbaijan Standard Time',\r\n territory: '001',\r\n iana: ['Asia/Baku'],\r\n },\r\n {\r\n windowsName: 'Azerbaijan Standard Time',\r\n territory: 'AZ',\r\n iana: ['Asia/Baku'],\r\n },\r\n {\r\n windowsName: 'Russia Time Zone 3',\r\n territory: '001',\r\n iana: ['Europe/Samara'],\r\n },\r\n {\r\n windowsName: 'Russia Time Zone 3',\r\n territory: 'RU',\r\n iana: ['Europe/Samara'],\r\n },\r\n {\r\n windowsName: 'Mauritius Standard Time',\r\n territory: '001',\r\n iana: ['Indian/Mauritius'],\r\n },\r\n {\r\n windowsName: 'Mauritius Standard Time',\r\n territory: 'MU',\r\n iana: ['Indian/Mauritius'],\r\n },\r\n {\r\n windowsName: 'Mauritius Standard Time',\r\n territory: 'RE',\r\n iana: ['Indian/Reunion'],\r\n },\r\n {\r\n windowsName: 'Mauritius Standard Time',\r\n territory: 'SC',\r\n iana: ['Indian/Mahe'],\r\n },\r\n {\r\n windowsName: 'Saratov Standard Time',\r\n territory: '001',\r\n iana: ['Europe/Saratov'],\r\n },\r\n {\r\n windowsName: 'Saratov Standard Time',\r\n territory: 'RU',\r\n iana: ['Europe/Saratov'],\r\n },\r\n {\r\n windowsName: 'Georgian Standard Time',\r\n territory: '001',\r\n iana: ['Asia/Tbilisi'],\r\n },\r\n {\r\n windowsName: 'Georgian Standard Time',\r\n territory: 'GE',\r\n iana: ['Asia/Tbilisi'],\r\n },\r\n {\r\n windowsName: 'Volgograd Standard Time',\r\n territory: '001',\r\n iana: ['Europe/Volgograd'],\r\n },\r\n {\r\n windowsName: 'Volgograd Standard Time',\r\n territory: 'RU',\r\n iana: ['Europe/Volgograd'],\r\n },\r\n {\r\n windowsName: 'Caucasus Standard Time',\r\n territory: '001',\r\n iana: ['Asia/Yerevan'],\r\n },\r\n {\r\n windowsName: 'Caucasus Standard Time',\r\n territory: 'AM',\r\n iana: ['Asia/Yerevan'],\r\n },\r\n {\r\n windowsName: 'Afghanistan Standard Time',\r\n territory: '001',\r\n iana: ['Asia/Kabul'],\r\n },\r\n {\r\n windowsName: 'Afghanistan Standard Time',\r\n territory: 'AF',\r\n iana: ['Asia/Kabul'],\r\n },\r\n {\r\n windowsName: 'West Asia Standard Time',\r\n territory: '001',\r\n iana: ['Asia/Tashkent'],\r\n },\r\n {\r\n windowsName: 'West Asia Standard Time',\r\n territory: 'AQ',\r\n iana: ['Antarctica/Mawson'],\r\n },\r\n {\r\n windowsName: 'West Asia Standard Time',\r\n territory: 'KZ',\r\n iana: ['Asia/Oral', 'Asia/Aqtau', 'Asia/Aqtobe', 'Asia/Atyrau'],\r\n },\r\n {\r\n windowsName: 'West Asia Standard Time',\r\n territory: 'MV',\r\n iana: ['Indian/Maldives'],\r\n },\r\n {\r\n windowsName: 'West Asia Standard Time',\r\n territory: 'TF',\r\n iana: ['Indian/Kerguelen'],\r\n },\r\n {\r\n windowsName: 'West Asia Standard Time',\r\n territory: 'TJ',\r\n iana: ['Asia/Dushanbe'],\r\n },\r\n {\r\n windowsName: 'West Asia Standard Time',\r\n territory: 'TM',\r\n iana: ['Asia/Ashgabat'],\r\n },\r\n {\r\n windowsName: 'West Asia Standard Time',\r\n territory: 'UZ',\r\n iana: ['Asia/Tashkent', 'Asia/Samarkand'],\r\n },\r\n {\r\n windowsName: 'West Asia Standard Time',\r\n territory: 'ZZ',\r\n iana: ['Etc/GMT-5'],\r\n },\r\n {\r\n windowsName: 'Ekaterinburg Standard Time',\r\n territory: '001',\r\n iana: ['Asia/Yekaterinburg'],\r\n },\r\n {\r\n windowsName: 'Ekaterinburg Standard Time',\r\n territory: 'RU',\r\n iana: ['Asia/Yekaterinburg'],\r\n },\r\n {\r\n windowsName: 'Pakistan Standard Time',\r\n territory: '001',\r\n iana: ['Asia/Karachi'],\r\n },\r\n {\r\n windowsName: 'Pakistan Standard Time',\r\n territory: 'PK',\r\n iana: ['Asia/Karachi'],\r\n },\r\n {\r\n windowsName: 'Qyzylorda Standard Time',\r\n territory: '001',\r\n iana: ['Asia/Qyzylorda'],\r\n },\r\n {\r\n windowsName: 'Qyzylorda Standard Time',\r\n territory: 'KZ',\r\n iana: ['Asia/Qyzylorda'],\r\n },\r\n {\r\n windowsName: 'India Standard Time',\r\n territory: '001',\r\n iana: ['Asia/Calcutta'],\r\n },\r\n {\r\n windowsName: 'India Standard Time',\r\n territory: 'IN',\r\n iana: ['Asia/Calcutta'],\r\n },\r\n {\r\n windowsName: 'Sri Lanka Standard Time',\r\n territory: '001',\r\n iana: ['Asia/Colombo'],\r\n },\r\n {\r\n windowsName: 'Sri Lanka Standard Time',\r\n territory: 'LK',\r\n iana: ['Asia/Colombo'],\r\n },\r\n {\r\n windowsName: 'Nepal Standard Time',\r\n territory: '001',\r\n iana: ['Asia/Katmandu'],\r\n },\r\n {\r\n windowsName: 'Nepal Standard Time',\r\n territory: 'NP',\r\n iana: ['Asia/Katmandu'],\r\n },\r\n {\r\n windowsName: 'Central Asia Standard Time',\r\n territory: '001',\r\n iana: ['Asia/Almaty'],\r\n },\r\n {\r\n windowsName: 'Central Asia Standard Time',\r\n territory: 'AQ',\r\n iana: ['Antarctica/Vostok'],\r\n },\r\n {\r\n windowsName: 'Central Asia Standard Time',\r\n territory: 'CN',\r\n iana: ['Asia/Urumqi'],\r\n },\r\n {\r\n windowsName: 'Central Asia Standard Time',\r\n territory: 'IO',\r\n iana: ['Indian/Chagos'],\r\n },\r\n {\r\n windowsName: 'Central Asia Standard Time',\r\n territory: 'KG',\r\n iana: ['Asia/Bishkek'],\r\n },\r\n {\r\n windowsName: 'Central Asia Standard Time',\r\n territory: 'KZ',\r\n iana: ['Asia/Almaty', 'Asia/Qostanay'],\r\n },\r\n {\r\n windowsName: 'Central Asia Standard Time',\r\n territory: 'ZZ',\r\n iana: ['Etc/GMT-6'],\r\n },\r\n {\r\n windowsName: 'Bangladesh Standard Time',\r\n territory: '001',\r\n iana: ['Asia/Dhaka'],\r\n },\r\n {\r\n windowsName: 'Bangladesh Standard Time',\r\n territory: 'BD',\r\n iana: ['Asia/Dhaka'],\r\n },\r\n {\r\n windowsName: 'Bangladesh Standard Time',\r\n territory: 'BT',\r\n iana: ['Asia/Thimphu'],\r\n },\r\n {\r\n windowsName: 'Omsk Standard Time',\r\n territory: '001',\r\n iana: ['Asia/Omsk'],\r\n },\r\n {\r\n windowsName: 'Omsk Standard Time',\r\n territory: 'RU',\r\n iana: ['Asia/Omsk'],\r\n },\r\n {\r\n windowsName: 'Myanmar Standard Time',\r\n territory: '001',\r\n iana: ['Asia/Rangoon'],\r\n },\r\n {\r\n windowsName: 'Myanmar Standard Time',\r\n territory: 'CC',\r\n iana: ['Indian/Cocos'],\r\n },\r\n {\r\n windowsName: 'Myanmar Standard Time',\r\n territory: 'MM',\r\n iana: ['Asia/Rangoon'],\r\n },\r\n {\r\n windowsName: 'SE Asia Standard Time',\r\n territory: '001',\r\n iana: ['Asia/Bangkok'],\r\n },\r\n {\r\n windowsName: 'SE Asia Standard Time',\r\n territory: 'AQ',\r\n iana: ['Antarctica/Davis'],\r\n },\r\n {\r\n windowsName: 'SE Asia Standard Time',\r\n territory: 'CX',\r\n iana: ['Indian/Christmas'],\r\n },\r\n {\r\n windowsName: 'SE Asia Standard Time',\r\n territory: 'ID',\r\n iana: ['Asia/Jakarta', 'Asia/Pontianak'],\r\n },\r\n {\r\n windowsName: 'SE Asia Standard Time',\r\n territory: 'KH',\r\n iana: ['Asia/Phnom_Penh'],\r\n },\r\n {\r\n windowsName: 'SE Asia Standard Time',\r\n territory: 'LA',\r\n iana: ['Asia/Vientiane'],\r\n },\r\n {\r\n windowsName: 'SE Asia Standard Time',\r\n territory: 'TH',\r\n iana: ['Asia/Bangkok'],\r\n },\r\n {\r\n windowsName: 'SE Asia Standard Time',\r\n territory: 'VN',\r\n iana: ['Asia/Saigon'],\r\n },\r\n {\r\n windowsName: 'SE Asia Standard Time',\r\n territory: 'ZZ',\r\n iana: ['Etc/GMT-7'],\r\n },\r\n {\r\n windowsName: 'Altai Standard Time',\r\n territory: '001',\r\n iana: ['Asia/Barnaul'],\r\n },\r\n {\r\n windowsName: 'Altai Standard Time',\r\n territory: 'RU',\r\n iana: ['Asia/Barnaul'],\r\n },\r\n {\r\n windowsName: 'W. Mongolia Standard Time',\r\n territory: '001',\r\n iana: ['Asia/Hovd'],\r\n },\r\n {\r\n windowsName: 'W. Mongolia Standard Time',\r\n territory: 'MN',\r\n iana: ['Asia/Hovd'],\r\n },\r\n {\r\n windowsName: 'North Asia Standard Time',\r\n territory: '001',\r\n iana: ['Asia/Krasnoyarsk'],\r\n },\r\n {\r\n windowsName: 'North Asia Standard Time',\r\n territory: 'RU',\r\n iana: ['Asia/Krasnoyarsk', 'Asia/Novokuznetsk'],\r\n },\r\n {\r\n windowsName: 'N. Central Asia Standard Time',\r\n territory: '001',\r\n iana: ['Asia/Novosibirsk'],\r\n },\r\n {\r\n windowsName: 'N. Central Asia Standard Time',\r\n territory: 'RU',\r\n iana: ['Asia/Novosibirsk'],\r\n },\r\n {\r\n windowsName: 'Tomsk Standard Time',\r\n territory: '001',\r\n iana: ['Asia/Tomsk'],\r\n },\r\n {\r\n windowsName: 'Tomsk Standard Time',\r\n territory: 'RU',\r\n iana: ['Asia/Tomsk'],\r\n },\r\n {\r\n windowsName: 'China Standard Time',\r\n territory: '001',\r\n iana: ['Asia/Shanghai'],\r\n },\r\n {\r\n windowsName: 'China Standard Time',\r\n territory: 'CN',\r\n iana: ['Asia/Shanghai'],\r\n },\r\n {\r\n windowsName: 'China Standard Time',\r\n territory: 'HK',\r\n iana: ['Asia/Hong_Kong'],\r\n },\r\n {\r\n windowsName: 'China Standard Time',\r\n territory: 'MO',\r\n iana: ['Asia/Macau'],\r\n },\r\n {\r\n windowsName: 'North Asia East Standard Time',\r\n territory: '001',\r\n iana: ['Asia/Irkutsk'],\r\n },\r\n {\r\n windowsName: 'North Asia East Standard Time',\r\n territory: 'RU',\r\n iana: ['Asia/Irkutsk'],\r\n },\r\n {\r\n windowsName: 'Singapore Standard Time',\r\n territory: '001',\r\n iana: ['Asia/Singapore'],\r\n },\r\n {\r\n windowsName: 'Singapore Standard Time',\r\n territory: 'BN',\r\n iana: ['Asia/Brunei'],\r\n },\r\n {\r\n windowsName: 'Singapore Standard Time',\r\n territory: 'ID',\r\n iana: ['Asia/Makassar'],\r\n },\r\n {\r\n windowsName: 'Singapore Standard Time',\r\n territory: 'MY',\r\n iana: ['Asia/Kuala_Lumpur', 'Asia/Kuching'],\r\n },\r\n {\r\n windowsName: 'Singapore Standard Time',\r\n territory: 'PH',\r\n iana: ['Asia/Manila'],\r\n },\r\n {\r\n windowsName: 'Singapore Standard Time',\r\n territory: 'SG',\r\n iana: ['Asia/Singapore'],\r\n },\r\n {\r\n windowsName: 'Singapore Standard Time',\r\n territory: 'ZZ',\r\n iana: ['Etc/GMT-8'],\r\n },\r\n {\r\n windowsName: 'W. Australia Standard Time',\r\n territory: '001',\r\n iana: ['Australia/Perth'],\r\n },\r\n {\r\n windowsName: 'W. Australia Standard Time',\r\n territory: 'AU',\r\n iana: ['Australia/Perth'],\r\n },\r\n {\r\n windowsName: 'Taipei Standard Time',\r\n territory: '001',\r\n iana: ['Asia/Taipei'],\r\n },\r\n {\r\n windowsName: 'Taipei Standard Time',\r\n territory: 'TW',\r\n iana: ['Asia/Taipei'],\r\n },\r\n {\r\n windowsName: 'Ulaanbaatar Standard Time',\r\n territory: '001',\r\n iana: ['Asia/Ulaanbaatar'],\r\n },\r\n {\r\n windowsName: 'Ulaanbaatar Standard Time',\r\n territory: 'MN',\r\n iana: ['Asia/Ulaanbaatar', 'Asia/Choibalsan'],\r\n },\r\n {\r\n windowsName: 'Aus Central W. Standard Time',\r\n territory: '001',\r\n iana: ['Australia/Eucla'],\r\n },\r\n {\r\n windowsName: 'Aus Central W. Standard Time',\r\n territory: 'AU',\r\n iana: ['Australia/Eucla'],\r\n },\r\n {\r\n windowsName: 'Transbaikal Standard Time',\r\n territory: '001',\r\n iana: ['Asia/Chita'],\r\n },\r\n {\r\n windowsName: 'Transbaikal Standard Time',\r\n territory: 'RU',\r\n iana: ['Asia/Chita'],\r\n },\r\n {\r\n windowsName: 'Tokyo Standard Time',\r\n territory: '001',\r\n iana: ['Asia/Tokyo'],\r\n },\r\n {\r\n windowsName: 'Tokyo Standard Time',\r\n territory: 'ID',\r\n iana: ['Asia/Jayapura'],\r\n },\r\n {\r\n windowsName: 'Tokyo Standard Time',\r\n territory: 'JP',\r\n iana: ['Asia/Tokyo'],\r\n },\r\n {\r\n windowsName: 'Tokyo Standard Time',\r\n territory: 'PW',\r\n iana: ['Pacific/Palau'],\r\n },\r\n {\r\n windowsName: 'Tokyo Standard Time',\r\n territory: 'TL',\r\n iana: ['Asia/Dili'],\r\n },\r\n {\r\n windowsName: 'Tokyo Standard Time',\r\n territory: 'ZZ',\r\n iana: ['Etc/GMT-9'],\r\n },\r\n {\r\n windowsName: 'North Korea Standard Time',\r\n territory: '001',\r\n iana: ['Asia/Pyongyang'],\r\n },\r\n {\r\n windowsName: 'North Korea Standard Time',\r\n territory: 'KP',\r\n iana: ['Asia/Pyongyang'],\r\n },\r\n {\r\n windowsName: 'Korea Standard Time',\r\n territory: '001',\r\n iana: ['Asia/Seoul'],\r\n },\r\n {\r\n windowsName: 'Korea Standard Time',\r\n territory: 'KR',\r\n iana: ['Asia/Seoul'],\r\n },\r\n {\r\n windowsName: 'Yakutsk Standard Time',\r\n territory: '001',\r\n iana: ['Asia/Yakutsk'],\r\n },\r\n {\r\n windowsName: 'Yakutsk Standard Time',\r\n territory: 'RU',\r\n iana: ['Asia/Yakutsk', 'Asia/Khandyga'],\r\n },\r\n {\r\n windowsName: 'Cen. Australia Standard Time',\r\n territory: '001',\r\n iana: ['Australia/Adelaide'],\r\n },\r\n {\r\n windowsName: 'Cen. Australia Standard Time',\r\n territory: 'AU',\r\n iana: ['Australia/Adelaide', 'Australia/Broken_Hill'],\r\n },\r\n {\r\n windowsName: 'AUS Central Standard Time',\r\n territory: '001',\r\n iana: ['Australia/Darwin'],\r\n },\r\n {\r\n windowsName: 'AUS Central Standard Time',\r\n territory: 'AU',\r\n iana: ['Australia/Darwin'],\r\n },\r\n {\r\n windowsName: 'E. Australia Standard Time',\r\n territory: '001',\r\n iana: ['Australia/Brisbane'],\r\n },\r\n {\r\n windowsName: 'E. Australia Standard Time',\r\n territory: 'AU',\r\n iana: ['Australia/Brisbane', 'Australia/Lindeman'],\r\n },\r\n {\r\n windowsName: 'AUS Eastern Standard Time',\r\n territory: '001',\r\n iana: ['Australia/Sydney'],\r\n },\r\n {\r\n windowsName: 'AUS Eastern Standard Time',\r\n territory: 'AU',\r\n iana: ['Australia/Sydney', 'Australia/Melbourne'],\r\n },\r\n {\r\n windowsName: 'West Pacific Standard Time',\r\n territory: '001',\r\n iana: ['Pacific/Port_Moresby'],\r\n },\r\n {\r\n windowsName: 'West Pacific Standard Time',\r\n territory: 'AQ',\r\n iana: ['Antarctica/DumontDUrville'],\r\n },\r\n {\r\n windowsName: 'West Pacific Standard Time',\r\n territory: 'FM',\r\n iana: ['Pacific/Truk'],\r\n },\r\n {\r\n windowsName: 'West Pacific Standard Time',\r\n territory: 'GU',\r\n iana: ['Pacific/Guam'],\r\n },\r\n {\r\n windowsName: 'West Pacific Standard Time',\r\n territory: 'MP',\r\n iana: ['Pacific/Saipan'],\r\n },\r\n {\r\n windowsName: 'West Pacific Standard Time',\r\n territory: 'PG',\r\n iana: ['Pacific/Port_Moresby'],\r\n },\r\n {\r\n windowsName: 'West Pacific Standard Time',\r\n territory: 'ZZ',\r\n iana: ['Etc/GMT-10'],\r\n },\r\n {\r\n windowsName: 'Tasmania Standard Time',\r\n territory: '001',\r\n iana: ['Australia/Hobart'],\r\n },\r\n {\r\n windowsName: 'Tasmania Standard Time',\r\n territory: 'AU',\r\n iana: ['Australia/Hobart', 'Australia/Currie', 'Antarctica/Macquarie'],\r\n },\r\n {\r\n windowsName: 'Vladivostok Standard Time',\r\n territory: '001',\r\n iana: ['Asia/Vladivostok'],\r\n },\r\n {\r\n windowsName: 'Vladivostok Standard Time',\r\n territory: 'RU',\r\n iana: ['Asia/Vladivostok', 'Asia/Ust-Nera'],\r\n },\r\n {\r\n windowsName: 'Lord Howe Standard Time',\r\n territory: '001',\r\n iana: ['Australia/Lord_Howe'],\r\n },\r\n {\r\n windowsName: 'Lord Howe Standard Time',\r\n territory: 'AU',\r\n iana: ['Australia/Lord_Howe'],\r\n },\r\n {\r\n windowsName: 'Bougainville Standard Time',\r\n territory: '001',\r\n iana: ['Pacific/Bougainville'],\r\n },\r\n {\r\n windowsName: 'Bougainville Standard Time',\r\n territory: 'PG',\r\n iana: ['Pacific/Bougainville'],\r\n },\r\n {\r\n windowsName: 'Russia Time Zone 10',\r\n territory: '001',\r\n iana: ['Asia/Srednekolymsk'],\r\n },\r\n {\r\n windowsName: 'Russia Time Zone 10',\r\n territory: 'RU',\r\n iana: ['Asia/Srednekolymsk'],\r\n },\r\n {\r\n windowsName: 'Magadan Standard Time',\r\n territory: '001',\r\n iana: ['Asia/Magadan'],\r\n },\r\n {\r\n windowsName: 'Magadan Standard Time',\r\n territory: 'RU',\r\n iana: ['Asia/Magadan'],\r\n },\r\n {\r\n windowsName: 'Norfolk Standard Time',\r\n territory: '001',\r\n iana: ['Pacific/Norfolk'],\r\n },\r\n {\r\n windowsName: 'Norfolk Standard Time',\r\n territory: 'NF',\r\n iana: ['Pacific/Norfolk'],\r\n },\r\n {\r\n windowsName: 'Sakhalin Standard Time',\r\n territory: '001',\r\n iana: ['Asia/Sakhalin'],\r\n },\r\n {\r\n windowsName: 'Sakhalin Standard Time',\r\n territory: 'RU',\r\n iana: ['Asia/Sakhalin'],\r\n },\r\n {\r\n windowsName: 'Central Pacific Standard Time',\r\n territory: '001',\r\n iana: ['Pacific/Guadalcanal'],\r\n },\r\n {\r\n windowsName: 'Central Pacific Standard Time',\r\n territory: 'AQ',\r\n iana: ['Antarctica/Casey'],\r\n },\r\n {\r\n windowsName: 'Central Pacific Standard Time',\r\n territory: 'FM',\r\n iana: ['Pacific/Ponape', 'Pacific/Kosrae'],\r\n },\r\n {\r\n windowsName: 'Central Pacific Standard Time',\r\n territory: 'NC',\r\n iana: ['Pacific/Noumea'],\r\n },\r\n {\r\n windowsName: 'Central Pacific Standard Time',\r\n territory: 'SB',\r\n iana: ['Pacific/Guadalcanal'],\r\n },\r\n {\r\n windowsName: 'Central Pacific Standard Time',\r\n territory: 'VU',\r\n iana: ['Pacific/Efate'],\r\n },\r\n {\r\n windowsName: 'Central Pacific Standard Time',\r\n territory: 'ZZ',\r\n iana: ['Etc/GMT-11'],\r\n },\r\n {\r\n windowsName: 'Russia Time Zone 11',\r\n territory: '001',\r\n iana: ['Asia/Kamchatka'],\r\n },\r\n {\r\n windowsName: 'Russia Time Zone 11',\r\n territory: 'RU',\r\n iana: ['Asia/Kamchatka', 'Asia/Anadyr'],\r\n },\r\n {\r\n windowsName: 'New Zealand Standard Time',\r\n territory: '001',\r\n iana: ['Pacific/Auckland'],\r\n },\r\n {\r\n windowsName: 'New Zealand Standard Time',\r\n territory: 'AQ',\r\n iana: ['Antarctica/McMurdo'],\r\n },\r\n {\r\n windowsName: 'New Zealand Standard Time',\r\n territory: 'NZ',\r\n iana: ['Pacific/Auckland'],\r\n },\r\n {\r\n windowsName: 'UTC+12',\r\n territory: '001',\r\n iana: ['Etc/GMT-12'],\r\n },\r\n {\r\n windowsName: 'UTC+12',\r\n territory: 'KI',\r\n iana: ['Pacific/Tarawa'],\r\n },\r\n {\r\n windowsName: 'UTC+12',\r\n territory: 'MH',\r\n iana: ['Pacific/Majuro', 'Pacific/Kwajalein'],\r\n },\r\n {\r\n windowsName: 'UTC+12',\r\n territory: 'NR',\r\n iana: ['Pacific/Nauru'],\r\n },\r\n {\r\n windowsName: 'UTC+12',\r\n territory: 'TV',\r\n iana: ['Pacific/Funafuti'],\r\n },\r\n {\r\n windowsName: 'UTC+12',\r\n territory: 'UM',\r\n iana: ['Pacific/Wake'],\r\n },\r\n {\r\n windowsName: 'UTC+12',\r\n territory: 'WF',\r\n iana: ['Pacific/Wallis'],\r\n },\r\n {\r\n windowsName: 'UTC+12',\r\n territory: 'ZZ',\r\n iana: ['Etc/GMT-12'],\r\n },\r\n {\r\n windowsName: 'Fiji Standard Time',\r\n territory: '001',\r\n iana: ['Pacific/Fiji'],\r\n },\r\n {\r\n windowsName: 'Fiji Standard Time',\r\n territory: 'FJ',\r\n iana: ['Pacific/Fiji'],\r\n },\r\n {\r\n windowsName: 'Chatham Islands Standard Time',\r\n territory: '001',\r\n iana: ['Pacific/Chatham'],\r\n },\r\n {\r\n windowsName: 'Chatham Islands Standard Time',\r\n territory: 'NZ',\r\n iana: ['Pacific/Chatham'],\r\n },\r\n {\r\n windowsName: 'UTC+13',\r\n territory: '001',\r\n iana: ['Etc/GMT-13'],\r\n },\r\n {\r\n windowsName: 'UTC+13',\r\n territory: 'KI',\r\n iana: ['Pacific/Enderbury'],\r\n },\r\n {\r\n windowsName: 'UTC+13',\r\n territory: 'TK',\r\n iana: ['Pacific/Fakaofo'],\r\n },\r\n {\r\n windowsName: 'UTC+13',\r\n territory: 'ZZ',\r\n iana: ['Etc/GMT-13'],\r\n },\r\n {\r\n windowsName: 'Tonga Standard Time',\r\n territory: '001',\r\n iana: ['Pacific/Tongatapu'],\r\n },\r\n {\r\n windowsName: 'Tonga Standard Time',\r\n territory: 'TO',\r\n iana: ['Pacific/Tongatapu'],\r\n },\r\n {\r\n windowsName: 'Samoa Standard Time',\r\n territory: '001',\r\n iana: ['Pacific/Apia'],\r\n },\r\n {\r\n windowsName: 'Samoa Standard Time',\r\n territory: 'WS',\r\n iana: ['Pacific/Apia'],\r\n },\r\n {\r\n windowsName: 'Line Islands Standard Time',\r\n territory: '001',\r\n iana: ['Pacific/Kiritimati'],\r\n },\r\n {\r\n windowsName: 'Line Islands Standard Time',\r\n territory: 'KI',\r\n iana: ['Pacific/Kiritimati'],\r\n },\r\n {\r\n windowsName: 'Line Islands Standard Time',\r\n territory: 'ZZ',\r\n iana: ['Etc/GMT-14'],\r\n },\r\n];\r\n\r\nconst ianaToWindows_list = WINDOWS_TO_IANA.flatMap(k => k.iana.map(i => ({ name: i, value: k })));\r\nconst ianaToWindows_map = ianaToWindows_list.reduce((previous, current) => (previous[current.name] = current.value, previous), {});\r\n\r\nconst windowsToIana_list = WINDOWS_TO_IANA.map(k => (\r\n {\r\n name: k.territory + '~' + k.windowsName,\r\n value: k.iana\r\n }\r\n));\r\n\r\nconst windowsToIana_map = windowsToIana_list.reduce((previous, current) => (previous[current.name] = current.value, previous), {});\r\n\r\nexport default {\r\n WINDOWS_TO_IANA: WINDOWS_TO_IANA,\r\n\r\n ianaToWindows: function (iana) {\r\n return ianaToWindows_map[iana].windowsName;\r\n },\r\n\r\n ianaToWindowsTerritory: function (iana) {\r\n return ianaToWindows_map[iana].territory;\r\n },\r\n\r\n ianaSimilar: function (iana) {\r\n return ianaToWindows_map[iana].iana;\r\n },\r\n\r\n windowsToIana: function (territory, windows, all, index) {\r\n const key = territory + '~' + windows;\r\n if (all)\r\n return windowsToIana_map[key];\r\n else if (index !== undefined)\r\n return windowsToIana_map[key][index];\r\n else\r\n return windowsToIana_map[key][0];\r\n },\r\n};","import Vue from 'vue';\r\n\r\nimport {careHSMs} from '@/Shared/appSettings';\r\nimport utils from '@/Shared/utils.jsx';\r\nimport timezoneMap from '@/Shared/timezoneMap';\r\nimport token from '@/Services/token';\r\nimport locale, { careWindowsToMomentTimezoneMap } from '@/Services/locale';\r\nimport { appSettings, careGlobalVars } from '@/Shared/appSettings';\r\n\r\nconst libphonenumber = require('google-libphonenumber');\r\n//const phoneUtil = require('google-libphonenumber').PhoneNumberUtil.getInstance();\r\n\r\nconst cloneDeep = require('lodash.clonedeep')\r\n\r\nconst careHelpfulFunctions =\r\n{\r\n generateUUID: function() {\r\n var d = new Date().getTime();\r\n var uuid = 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {\r\n var r = (d + Math.random() * 16) % 16 | 0;\r\n d = Math.floor(d / 16);\r\n return (c == 'x' ? r : (r & 0x3 | 0x8)).toString(16);\r\n });\r\n return uuid;\r\n },\r\n\r\n // The date_value object is replaced with a reactive object owned in the startApplication.jsx unit.\r\n // This allows a single timer to update the value which all other uses can bind to.\r\n date_value: {\r\n value: null,\r\n },\r\n debug: function (msg) {\r\n utils.debug(msg);\r\n },\r\n\r\n browserTimezone: function () {\r\n const iana = Intl.DateTimeFormat().resolvedOptions().timeZone; // moment().tz.guess(); // guesses the users timezone, returns a moment timezone name;\r\n return timezoneMap.ianaToWindows(iana);\r\n },\r\n formatDateForLocale: function (dateTime, format, customerTimezone) {\r\n let fmt;\r\n \r\n switch (format) {\r\n case 'longDate': fmt = 'll'; break;\r\n case 'shortDate': fmt = 'l'; break;\r\n default: fmt = 'll LTS'; break;\r\n }\r\n\r\n return (dateTime ? moment(dateTime) : moment()).tz(careWindowsToMomentTimezoneMap[customerTimezone]).format((fmt).replace(/d/g, 'D').replace(/y/g, 'Y').replace(/a/g, 'A'));\r\n },\r\n formatHourOnlyDateTimeForLocale: function (dateTime, format, customerTimezone) {\r\n dateTime = dateTime + \":00:00\";\r\n \r\n let fmt;\r\n \r\n switch (format) {\r\n case 'longDate': fmt = 'll'; break;\r\n case 'shortDate': fmt = 'l'; break;\r\n default: fmt = 'll LTS'; break;\r\n }\r\n\r\n return (dateTime ? moment(dateTime) : moment()).tz(careWindowsToMomentTimezoneMap[customerTimezone]).format((fmt).replace(/d/g, 'D').replace(/y/g, 'Y').replace(/a/g, 'A'));\r\n },\r\n getDateForLocale: function (dateTime, customerTimezone) {\r\n return locale.getTimezoneConvertedDate(dateTime, customerTimezone);\r\n },\r\n displayDateInLocale: function (dateTime, customerTimezone) {\r\n return locale.getDateInLocale(dateTime, customerTimezone);\r\n },\r\n regionCodeToName: function (regionCode) {\r\n var c = careRegionCodeList.find(function (element, index, array) {\r\n if (element.RegionCode == regionCode)\r\n return element;\r\n });\r\n\r\n if (c)\r\n return c.Name;\r\n },\r\n findMissingRegionCodes: function () {\r\n for (var prop in libphonenumber.metadata.countryToMetadata) {\r\n var name = careHelpfulFunctions.regionCodeToName(prop);\r\n if (!name)\r\n console.log(prop + \": \" + name);\r\n }\r\n },\r\n formatPhoneNumber: function (phoneNumber, format) {\r\n if (!phoneNumber)\r\n return phoneNumber;\r\n\r\n // isPossibleNumber returns different results in different regions. For instance, a US region will return false for a 4 digit number\r\n // but a UK region will return true. Because short nubmers (<= 5 digits) are never real phone numbers - we skip \r\n // calling E.164 formatting for those. Giving some consistincy accross regions for skipping short numbers.\r\n if (phoneNumber.length <= 5) \r\n return phoneNumber;\r\n\r\n\r\n try {\r\n var phoneNumberFormat;\r\n var phoneUtil = libphonenumber.PhoneNumberUtil.getInstance();\r\n\r\n var customerRegionCode = token.CustomerRegionCode();\r\n if (!customerRegionCode)\r\n customerRegionCode = 'US';\r\n\r\n var forceCustomerPhoneNumberFormat = token.CustomerPhoneNumberFormat() || \"National\";\r\n\r\n var parsedPhoneNumber = phoneUtil.parse(phoneNumber, customerRegionCode);\r\n\r\n // if not a valid number return number unchanged\r\n if (!phoneUtil.isPossibleNumber(parsedPhoneNumber)) {\r\n return phoneNumber;\r\n }\r\n\r\n switch (format) {\r\n case 'E164':\r\n phoneNumberFormat = libphonenumber.PhoneNumberFormat.E164;\r\n break;\r\n case 'INTERNATIONAL':\r\n phoneNumberFormat = libphonenumber.PhoneNumberFormat.INTERNATIONAL;\r\n break;\r\n case 'RFC3966':\r\n phoneNumberFormat = libphonenumber.PhoneNumberFormat.RFC3966;\r\n break;\r\n case 'NATIONAL':\r\n phoneNumberFormat = libphonenumber.PhoneNumberFormat.NATIONAL;\r\n break;\r\n\r\n default: // If a specific format was not given, then pic NATIONAL if the phonenumber is in the customer's RegionCode or INTERNATIONAL if it is outside the customer's region\r\n var countryCode = parsedPhoneNumber.getCountryCodeOrDefault();\r\n var regionCodes = phoneUtil.getRegionCodesForCountryCode(countryCode);\r\n\r\n if (regionCodes.find(\r\n function (code) {\r\n return code == customerRegionCode;\r\n })\r\n ) {\r\n if (forceCustomerPhoneNumberFormat == \"E.164\")\r\n phoneNumberFormat = libphonenumber.PhoneNumberFormat.E164;\r\n else\r\n phoneNumberFormat = libphonenumber.PhoneNumberFormat.NATIONAL;\r\n }\r\n else\r\n phoneNumberFormat = libphonenumber.PhoneNumberFormat.INTERNATIONAL;\r\n break;\r\n }\r\n\r\n return phoneUtil.format(parsedPhoneNumber, phoneNumberFormat);\r\n }\r\n catch (err) {\r\n return phoneNumber;\r\n }\r\n },\r\n\r\n // return deep copy of source\r\n copy: function (source) {\r\n var newCopy = cloneDeep(source);\r\n return newCopy;\r\n },\r\n\r\n // returns length of array or number of properties in object\r\n length: function (obj) {\r\n if (Array.isArray(obj)) {\r\n return obj.length;\r\n }\r\n else if (typeof obj === 'object') {\r\n return Object.keys(obj).length;\r\n }\r\n\r\n return 0;\r\n },\r\n\r\n propertyByIndex: function (obj, index) {\r\n if (Array.isArray(obj)) {\r\n return obj[index];\r\n }\r\n else if (typeof obj === 'object') {\r\n return obj[Object.keys(obj)[index]];\r\n }\r\n else\r\n return null;\r\n },\r\n\r\n firstProperty: function (obj) {\r\n if (Array.isArray(obj)) {\r\n return obj[0];\r\n }\r\n else if (typeof obj === 'object') {\r\n return obj[Object.keys(obj)[0]];\r\n }\r\n else\r\n return null;\r\n },\r\n\r\n lastProperty: function (obj) {\r\n if (Array.isArray(obj)) {\r\n return obj[obj.length - 1];\r\n }\r\n else if (typeof obj === 'object') {\r\n return obj[Object.keys(obj)[Object.keys(obj).length - 1]];\r\n }\r\n else\r\n return null;\r\n },\r\n\r\n durationSecondsAsString: function (seconds) {\r\n var seconds = Math.floor(seconds);\r\n\r\n var hours = Math.floor(seconds / (60 * 60));\r\n var seconds = seconds - (hours * 60 * 60);\r\n\r\n var minutes = Math.floor(seconds / 60);\r\n var seconds = seconds - (minutes * 60);\r\n\r\n var result = \"\";\r\n if (hours)\r\n result = hours + \":\" + ((minutes <= 9) ? \"0\" : \"\") + minutes + \":\" + ((seconds <= 9) ? \"0\" : \"\") + seconds;\r\n else if (minutes)\r\n result = ((minutes <= 9) ? \"0\" : \"\") + minutes + \":\" + ((seconds <= 9) ? \"0\" : \"\") + seconds;\r\n else if (seconds)\r\n result = \"00:\" + ((seconds <= 9) ? \"0\" : \"\") + seconds;\r\n else\r\n result = \"00:00\";\r\n\r\n return result;\r\n },\r\n\r\n durationSecondsAsStringWithHours: function (seconds) {\r\n var seconds = Math.floor(seconds);\r\n\r\n var hours = Math.floor(seconds / (60 * 60));\r\n var seconds = seconds - (hours * 60 * 60);\r\n\r\n var minutes = Math.floor(seconds / 60);\r\n var seconds = seconds - (minutes * 60);\r\n\r\n var result = \"\";\r\n if (hours)\r\n result = ((hours <= 9) ? \"0\" : \"\") + hours + \":\" + ((minutes <= 9) ? \"0\" : \"\") + minutes + \":\" + ((seconds <= 9) ? \"0\" : \"\") + seconds;\r\n else if (minutes)\r\n result = ((minutes <= 9) ? \"0\" : \"\") + minutes + \":\" + ((seconds <= 9) ? \"0\" : \"\") + seconds;\r\n else if (seconds)\r\n result = \"00:\" + ((seconds <= 9) ? \"0\" : \"\") + seconds;\r\n else\r\n result = \"00:00\";\r\n\r\n return result;\r\n },\r\n\r\n\r\n\r\n durationMinutesHoursSeconds: function (mins) {\r\n var hours = Math.floor(mins / 60);\r\n var minutes = Math.floor((mins - ((hours * 3600)) / 60));\r\n var seconds = Math.round((mins * 60) - (hours * 3600) - (minutes * 60));\r\n\r\n if (seconds == 60){\r\n minutes++;\r\n seconds = 0;\r\n }\r\n\r\n if (minutes >= 60) {\r\n hours++;\r\n minutes = minutes-60;\r\n }\r\n // Appends 0 when unit is less than 10\r\n if (hours < 10) { hours = \"0\" + hours; }\r\n if (minutes < 10) { minutes = \"0\" + minutes; }\r\n if (seconds < 10) { seconds = \"0\" + seconds; }\r\n return hours + ':' + minutes + ':' + seconds;\r\n\r\n },\r\n\r\n elapsedTimeAsString: function (startTime, endTime) {\r\n if (startTime > endTime) {\r\n //console.log(\"endTime: \" + endTime + \" should be larger than startTime: \" + startTime);\r\n startTime = endTime;\r\n }\r\n\r\n var seconds = Math.floor((endTime - startTime) / 1000);\r\n\r\n return this.formatTotalTime(seconds);\r\n },\r\n\r\n elapsedTimeAsSeconds: function (startTime, endTime) {\r\n if (startTime > endTime) {\r\n //console.log(\"endTime: \" + endTime + \" should be larger than startTime: \" + startTime);\r\n startTime = endTime;\r\n }\r\n\r\n return Math.floor((endTime - startTime) / 1000);\r\n },\r\n\r\n formatTotalTime(seconds) {\r\n var hours = Math.floor(seconds / (60 * 60));\r\n seconds = seconds - (hours * 60 * 60);\r\n\r\n var minutes = Math.floor(seconds / 60);\r\n seconds = Math.floor(seconds - (minutes * 60));\r\n\r\n var result = \"\";\r\n if (hours)\r\n result = hours + \":\" + ((minutes <= 9) ? \"0\" : \"\") + minutes + \":\" + ((seconds <= 9) ? \"0\" : \"\") + seconds;\r\n else if (minutes)\r\n result = ((minutes <= 9) ? \"0\" : \"\") + minutes + \":\" + ((seconds <= 9) ? \"0\" : \"\") + seconds;\r\n else if (seconds)\r\n result = \"00:\" + ((seconds <= 9) ? \"0\" : \"\") + seconds;\r\n else\r\n result = \"00:00\";\r\n return result;\r\n },\r\n\r\n serverTimeToClientTime: function (theDate) {\r\n var adjustedDate = theDate + appSettings.ServerTimeOffset;\r\n return adjustedDate;\r\n },\r\n\r\n clientTimeToServerTime: function (theDate) {\r\n return theDate - appSettings.ServerTimeOffset;\r\n },\r\n\r\n get localeSettings() {\r\n return {\r\n NUMBER_FORMATS: {}\r\n };\r\n //appSettings.$locale;\r\n },\r\n\r\n format: function (filter, arg1, arg2, arg3) {\r\n return ''; //appSettings.$filter(filter)(arg1, arg2, arg3);\r\n },\r\n\r\n date: function () {\r\n return careHelpfulFunctions.date_value.value;\r\n //var date = new Date();\r\n //return date;\r\n },\r\n\r\n dateFromString: function (value) {\r\n var theDate = Date.parse(value);\r\n return theDate;\r\n },\r\n\r\n dateFromAbsoluteMilliseconds: function (ms) {\r\n return new Date(ms);\r\n },\r\n\r\n dateFromParts: function (year, month, day, hour, minute, second, ms) {\r\n return new Date(year, month, day, hour, minute, second, ms);\r\n },\r\n\r\n dateAddSeconds: function (originaldate, seconds) {\r\n return new Date(originaldate.getTime() + seconds * 1000);\r\n },\r\n\r\n dateAddMinutes: function (originaldate, minutes) {\r\n return new Date(originaldate.getTime() + minutes * 60 * 1000);\r\n },\r\n\r\n dateAddHours: function (originaldate, hours) {\r\n return new Date(originaldate.getTime() + hours * 60 * 60 * 1000);\r\n },\r\n\r\n dateAddDays: function (originaldate, days) {\r\n return new Date(originaldate.getTime() + days * 24 * 60 * 60 * 1000);\r\n },\r\n\r\n getISOWeekOfYear: function (dt, dowOffset) {\r\n dowOffset = typeof (dowOffset) == 'int' ? dowOffset : 0; //default dowOffset to zero\r\n var newYear = new Date(dt.getFullYear(), 0, 1);\r\n var day = newYear.getDay() - dowOffset; //the day of week the year begins on\r\n day = (day >= 0 ? day : day + 7);\r\n var daynum = Math.floor((dt.getTime() - newYear.getTime() -\r\n (dt.getTimezoneOffset() - newYear.getTimezoneOffset()) * 60000) / 86400000) + 1;\r\n var weeknum;\r\n //if the year starts before the middle of a week\r\n if (day < 4) {\r\n weeknum = Math.floor((daynum + day - 1) / 7) + 1;\r\n if (weeknum > 52) {\r\n nYear = new Date(dt.getFullYear() + 1, 0, 1);\r\n nday = nYear.getDay() - dowOffset;\r\n nday = nday >= 0 ? nday : nday + 7;\r\n /*if the next year starts before the middle of\r\n the week, it is week #1 of that year*/\r\n weeknum = nday < 4 ? 1 : 53;\r\n }\r\n }\r\n else {\r\n weeknum = Math.floor((daynum + day - 1) / 7);\r\n }\r\n return weeknum;\r\n },\r\n\r\n getDateOfISOWeek: function (w, y) {\r\n var simple = new Date(y, 0, 1 + (w - 1) * 7);\r\n var dow = simple.getDay();\r\n var ISOweekStart = simple;\r\n if (dow <= 4)\r\n ISOweekStart.setDate(simple.getDate() - simple.getDay() + 1);\r\n else\r\n ISOweekStart.setDate(simple.getDate() + 8 - simple.getDay());\r\n return ISOweekStart;\r\n },\r\n\r\n toInteger: function (value) {\r\n return parseInt(value);\r\n },\r\n\r\n toFloat: function (value) {\r\n return parseFloat(value);\r\n },\r\n\r\n toObject: function (s) {\r\n return JSON.parse(s);\r\n },\r\n\r\n toString: function (j, indent) {\r\n if (indent)\r\n return JSON.stringify(j, null, indent);\r\n else\r\n return JSON.stringify(j);\r\n },\r\n\r\n /*\r\n The following functions operate upon object arrays.\r\n These emulate some of the features found in C# LinQ\r\n and match methods on the server-side JsonObj class.\r\n \r\n When field is the argument, you can pass a string\r\n representing the field within each object using dot\r\n notation:\r\n [\r\n { \"name\": { \"first\": \"fred\", \"last\": \"smith\" } },\r\n { \"name\": { \"first\": \"sam\", \"last\": \"jones\" },\r\n ...\r\n ]\r\n \r\n A field of \"name.first\" would reference \"fred\" and \"sam\"\r\n */\r\n\r\n sum: function (array, field) {\r\n // Computes the sum of the values of the named field from each row in array\r\n\r\n var value = 0;\r\n for (var i = 0; i < array.length; i++) {\r\n var v1 = field ? careHelpfulFunctions.getField(array[i], field) : array[i];\r\n value += v1;\r\n }\r\n return value;\r\n },\r\n\r\n average: function (array, field) {\r\n // Computes the average of the values of the named field from each row in array\r\n\r\n var value = 0;\r\n for (var i = 0; i < array.length; i++) {\r\n var v1 = field ? careHelpfulFunctions.getField(array[i], field) : array[i];\r\n value += v1;\r\n }\r\n return value / array.length;\r\n },\r\n\r\n max: function (array, field) {\r\n // Computes the max value from the array of objects in the named field\r\n\r\n if (array.length < 1)\r\n return 0;\r\n\r\n var v0 = careHelpfulFunctions.getField(array[0], field);\r\n for (var i = 1; i < array.length; i++) {\r\n var v1 = field ? careHelpfulFunctions.getField(array[i], field) : array[i];\r\n if (v1 > v0)\r\n v0 = v1;\r\n }\r\n return v0;\r\n },\r\n\r\n min: function (array, field) {\r\n // Computes the min value from the array of objects in the named field\r\n\r\n if (array.length < 1)\r\n return 0;\r\n\r\n var v0 = careHelpfulFunctions.getField(array[0], field);\r\n for (var i = 1; i < array.length; i++) {\r\n var v1 = field ? careHelpfulFunctions.getField(array[i], field) : array[i];\r\n if (v1 < v0)\r\n v0 = v1;\r\n }\r\n return v0;\r\n },\r\n\r\n take: function (array, limit) {\r\n // Takes the first \"limit\" elements from array\r\n\r\n var tmp = [];\r\n for (var i = 0; i < array.length && i < limit; i++)\r\n tmp.push(array[i]);\r\n return tmp;\r\n },\r\n\r\n skip: function (array, count) {\r\n // Skips the \"count\" elements are returns the remaining\r\n\r\n var tmp = [];\r\n for (var i = count; i < array.length; i++)\r\n tmp.push(array[i]);\r\n return tmp;\r\n },\r\n\r\n reverse: function (array) {\r\n // For convenience, reverses the order of the array elements\r\n\r\n return array.reverse();\r\n },\r\n\r\n sort: function (array, field) {\r\n // Sorts the objects in array based upon the named field within each object\r\n\r\n var tmp = [];\r\n for (var i = 0; i < array.length; i++)\r\n tmp.push(array[i]);\r\n\r\n tmp.sort(function (a, b) {\r\n var valuea = careHelpfulFunctions.getField(a, field);\r\n var valueb = careHelpfulFunctions.getField(b, field);\r\n\r\n if (typeof valuea === 'string') {\r\n if (valuea < valueb)\r\n return -1;\r\n else if (valuea > valueb)\r\n return 1;\r\n else\r\n return 0;\r\n }\r\n else if (typeof valuea === 'number') {\r\n return valuea - valueb;\r\n }\r\n else if (typeof valuea === 'boolean') {\r\n if (valuea && !valueb)\r\n return 1;\r\n else if (valueb && !valuea)\r\n return -1;\r\n else\r\n return 0;\r\n }\r\n else\r\n return 0;\r\n });\r\n return tmp;\r\n },\r\n\r\n arrayToObject: function (array, keyFunc, valueFunc) {\r\n var tmp = {};\r\n for (let v of array)\r\n tmp[keyFunc(v)] = valueFunc ? valueFunc(v) : v;\r\n return tmp;\r\n },\r\n\r\n toLookup: function (array, keyfield, valuefield, allowmultiples, asarray, delimiter) {\r\n // Converts the array to a lookup list (object) with the named keyfield as the key and the named valuefield as the value\r\n\r\n // Example array: [{'name':'joe','city':'provo'},{'name':'sam':'city':'lehi'}]\r\n // toLookup(array, 'name', 'city'):\r\n // {'joe':'provo','sam':'lehi'}\r\n\r\n delimiter = delimiter || ',';\r\n\r\n var tmp = {};\r\n for (var i = 0; i < array.length; i++) {\r\n var item = array[i];\r\n var value;\r\n if (valuefield)\r\n value = careHelpfulFunctions.getField(item, valuefield);\r\n else\r\n value = item;\r\n\r\n var field = careHelpfulFunctions.getField(item, keyfield);\r\n if (!field)\r\n continue;\r\n\r\n if (field in tmp && allowmultiples && asarray && Array.isArray(tmp[field]))\r\n tmp[field].push(value);\r\n else if (field in tmp && allowmultiples && asarray && !Array.isArray(tmp[field]))\r\n tmp[field] = [tmp[field], value];\r\n else if (field in tmp && allowmultiples && (typeof tmp[field] === 'object') && (typeof value === 'object'))\r\n tmp[field] = tmp[field][valuefield] + delimiter + value[valuefield];\r\n else if (field in tmp && allowmultiples && (typeof value === 'object'))\r\n tmp[field] = tmp[field] + delimiter + value[valuefield]; \r\n else if (field in tmp && allowmultiples)\r\n tmp[field] = tmp[field] + delimiter + value;\r\n else\r\n tmp[field] = value;\r\n }\r\n return tmp;\r\n },\r\n\r\n toArray: function (object) {\r\n // Converts the object into an array as:\r\n // [\r\n // {\r\n // \"key\": \"\",\r\n // \"value\": { ... }\r\n // }\r\n // ]\r\n\r\n const arr = [];\r\n\r\n for (let key in object)\r\n if (object.hasOwnProperty(key))\r\n arr.push({ key: key, value: object[key] });\r\n\r\n return arr;\r\n },\r\n\r\n select: function (array, field) {\r\n // Returns a new array made up of just the value from the named field from each row\r\n\r\n var tmp = [];\r\n for (var i = 0; i < array.length; i++) {\r\n var item = array[i];\r\n tmp.push(careHelpfulFunctions.getField(item, field));\r\n }\r\n return tmp;\r\n },\r\n\r\n selectMulti: function (array, fieldlist, namelist) {\r\n // Returns a new array made up of just the list of fields (fieldslist is an array) from each row\r\n\r\n var tmp = [];\r\n for (var i = 0; i < array.length; i++) {\r\n var item = array[i];\r\n var row = {};\r\n for (var j = 0; j < fieldlist.length; j++) {\r\n var fields = fieldlist[j].split('.');\r\n if (namelist)\r\n row[namelist[j]] = careHelpfulFunctions.getField(item, fieldlist[j]);\r\n else\r\n row[fields[fields.length - 1]] = careHelpfulFunctions.getField(item, fieldlist[j]);\r\n }\r\n tmp.push(row);\r\n }\r\n return tmp;\r\n },\r\n\r\n groupBy: function (array, field) {\r\n var group = {};\r\n for (var i = 0; i < array.length; i++) {\r\n var item = array[i];\r\n var key = careHelpfulFunctions.getField(item, field);\r\n if (!group[key])\r\n group[key] = [];\r\n\r\n group[key].push(item);\r\n }\r\n var result = [];\r\n for (var key in group) {\r\n if (group.hasOwnProperty(key)) {\r\n var value = group[key];\r\n var record = {\r\n key: key,\r\n values: value\r\n };\r\n result.push(record);\r\n }\r\n }\r\n return result;\r\n },\r\n\r\n groupByMulti: function (array, fieldlist) {\r\n var group = {};\r\n for (var i = 0; i < array.length; i++) {\r\n var item = array[i];\r\n var keys = [];\r\n for (var j = 0; j < fieldlist.length; j++) {\r\n var k = careHelpfulFunctions.getField(item, fieldlist[j]);\r\n keys.push(k);\r\n }\r\n var keystr = JSON.stringify(keys);\r\n if (!group[keystr])\r\n group[keystr] = [];\r\n\r\n group[keystr].push(item);\r\n }\r\n var result = [];\r\n for (var key in group) {\r\n if (group.hasOwnProperty(key)) {\r\n var keyobj = JSON.parse(key);\r\n var value = group[key];\r\n var record = {\r\n key: keyobj,\r\n values: value\r\n };\r\n result.push(record);\r\n }\r\n }\r\n return result;\r\n },\r\n\r\n filterEqual: function (array, field, value) {\r\n // Returns a new array containing only the rows where the named field matches value\r\n\r\n var tmp = [];\r\n for (var i = 0; i < array.length; i++) {\r\n var item = array[i];\r\n var f = careHelpfulFunctions.getField(item, field);\r\n if (f == value)\r\n tmp.push(item);\r\n }\r\n return tmp;\r\n },\r\n\r\n filterNotEqual: function (array, field, value) {\r\n // Returns a new array containing only the rows where the named field does not match value\r\n\r\n var tmp = [];\r\n for (var i = 0; i < array.length; i++) {\r\n var item = array[i];\r\n var f = careHelpfulFunctions.getField(item, field);\r\n if (f != value)\r\n tmp.push(item);\r\n }\r\n return tmp;\r\n },\r\n\r\n getField: function (obj, name) {\r\n // Gets a field from the object using dot notation to walk the object hierarchy\r\n\r\n var members = name.split('.');\r\n var i = 0;\r\n while (i < members.length) {\r\n var member = members[i++];\r\n if (i == members.length && member.includes('(') && member.includes(')')) {\r\n var func = member.substr(0, member.indexOf('('));\r\n var args = member.substr(member.indexOf('('));\r\n args = args.substr(1, args.length - 2);\r\n if (args.length == 0) args = null;\r\n switch (func) {\r\n case 'count': obj = obj.length; break;\r\n case 'average': obj = careHelpfulFunctions.average(obj, args); break;\r\n case 'max': obj = careHelpfulFunctions.max(obj, args); break;\r\n case 'min': obj = careHelpfulFunctions.min(obj, args); break;\r\n case 'sum': obj = careHelpfulFunctions.sum(obj, args); break;\r\n case 'asdate': obj = Date.parse(obj); break;\r\n default:\r\n obj = null;\r\n break;\r\n }\r\n }\r\n else if (member.includes('[') && member.includes(']')) {\r\n var memb = member.substr(0, member.indexOf('['));\r\n var indx = member.substr(member.indexOf('['));\r\n obj = obj[memb][parseInt(indx.substr(1, indx.length - 2))];\r\n }\r\n else\r\n obj = obj[member];\r\n }\r\n\r\n return obj;\r\n },\r\n\r\n /**********************************************************/\r\n\r\n clear: function (objToClear) {\r\n // modify the existing object so existing references remain intact\r\n if (Array.isArray(objToClear)) {\r\n objToClear.splice(0);\r\n }\r\n else if (typeof objToClear === 'object') {\r\n for (var prop in objToClear) {\r\n if (objToClear.hasOwnProperty(prop))\r\n Vue.delete(objToClear, prop);\r\n }\r\n }\r\n },\r\n\r\n urlEncode: function (text) {\r\n return window.encodeURIComponent(text);\r\n },\r\n\r\n urlDecode: function (text) {\r\n return window.decodeURIComponent(text);\r\n },\r\n\r\n hasRole: function (role) { // TODO: Finish\r\n //return true;\r\n\r\n const roles = token.CustomerRoles(); // appSettings.careTokenService.CustomerRoles();\r\n\r\n if (roles) {\r\n const found = roles.includes(role);\r\n\r\n //utils.debug(` ** ** ** ** hasRole('${role}'):${found ? 'yes' : 'no'} ** ** ** ** `);\r\n\r\n return found;\r\n }\r\n\r\n //utils.debug(` ** ** ** ** hasRole('${role}') roles is unassigned!! ** ** ** ** `);\r\n\r\n return false;\r\n },\r\n\r\n hasModule: function (moduleName, version) {\r\n if (utils.global_variables.InstalledModules) {\r\n var found = utils.global_variables.InstalledModules.find(item => {\r\n return (item.Name === moduleName && (version === undefined || item.Version === version));\r\n });\r\n\r\n utils.debug(` ** ** ** ** hasModule('${moduleName}'):${found ? 'yes' : 'no'} ** ** ** ** `);\r\n\r\n return !!found;\r\n }\r\n\r\n utils.debug(` ** ** ** ** hasModule('${moduleName}'): InstalledModules is not assigned ** ** ** ** `);\r\n\r\n return false;\r\n },\r\n\r\n //moduleName and moduleVersion are both optional.\r\n getModuleConfig: function (moduleName, moduleVersion) {\r\n if (careGlobalVars.ModuleConfig) {\r\n return careGlobalVars.ModuleConfig.filter(config => (!moduleName || config.ModuleName == moduleName) && (!moduleVersion || config.ModuleVersion == moduleVersion));\r\n }\r\n return [];\r\n },\r\n\r\n //moduleName and moduleVersion are both optional.\r\n getModuleConfigByName: function (configName, moduleName, moduleVersion) {\r\n if (careGlobalVars.ModuleConfig) {\r\n var specificModules = careGlobalVars.ModuleConfig.filter(config => (!moduleName || config.ModuleName == moduleName) && (!moduleVersion || config.ModuleVersion == moduleVersion));\r\n var configs = [];\r\n for (var i = 0; i < specificModules.length; i++) {\r\n for (var key in specificModules[i]) {\r\n if (key == configName) {\r\n var config = {\r\n ModuleName: specificModules[i].ModuleName,\r\n ModuleVersion: specificModules[i].ModuleVersion\r\n };\r\n config[key] = specificModules[i][key];\r\n configs.push(config);\r\n }\r\n }\r\n }\r\n return configs;\r\n }\r\n return [];\r\n },\r\n\r\n /*** Functions to help determine mobile devices or small screen resolutions ***/\r\n hasMobileOrientation: function () {\r\n // mobile devices have window orientation and desktops do not. tablets, chrome ultrabooks, other desktop androids behave like mobile, so may need to consider that\r\n return (typeof window.orientation !== \"undefined\");\r\n },\r\n\r\n isMobileDevice: function () {\r\n var check = false;\r\n (function (a) { if (/(android|bb\\d+|meego).+mobile|avantgo|bada\\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\\.(browser|link)|vodafone|wap|windows ce|xda|xiino/i.test(a) || /1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\\-(n|u)|c55\\/|capi|ccwa|cdm\\-|cell|chtm|cldc|cmd\\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\\-s|devi|dica|dmob|do(c|p)o|ds(12|\\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\\-|_)|g1 u|g560|gene|gf\\-5|g\\-mo|go(\\.w|od)|gr(ad|un)|haie|hcit|hd\\-(m|p|t)|hei\\-|hi(pt|ta)|hp( i|ip)|hs\\-c|ht(c(\\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\\-(20|go|ma)|i230|iac( |\\-|\\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\\/)|klon|kpt |kwc\\-|kyo(c|k)|le(no|xi)|lg( g|\\/(k|l|u)|50|54|\\-[a-w])|libw|lynx|m1\\-w|m3ga|m50\\/|ma(te|ui|xo)|mc(01|21|ca)|m\\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\\-2|po(ck|rt|se)|prox|psio|pt\\-g|qa\\-a|qc(07|12|21|32|60|\\-[2-7]|i\\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\\-|oo|p\\-)|sdk\\/|se(c(\\-|0|1)|47|mc|nd|ri)|sgh\\-|shar|sie(\\-|m)|sk\\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\\-|v\\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\\-|tdg\\-|tel(i|m)|tim\\-|t\\-mo|to(pl|sh)|ts(70|m\\-|m3|m5)|tx\\-9|up(\\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\\-|your|zeto|zte\\-/i.test(a.substr(0, 4))) check = true; })(navigator.userAgent || navigator.vendor || window.opera);\r\n return check;\r\n },\r\n\r\n hasSmallScreenResolution: function (x, y) {\r\n // allow user to pass in their own definition of small screen size, but if they dont pass in anything we will set to 800 for width, and 600 for height\r\n if (x === undefined || x === 'undefined')\r\n x = 800;\r\n\r\n if (y === undefined || y === 'undefined')\r\n y = 600;\r\n\r\n if (window.innerWidth <= x && window.innerHeight <= y) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n },\r\n\r\n isFullScreenViewMode: function () {\r\n return document.webkitIsFullScreen;\r\n },\r\n\r\n get hostname() {\r\n return window.location.hostname;\r\n },\r\n\r\n get window() {\r\n return window;\r\n },\r\n\r\n get guidedAssistantHSMs() {\r\n return careHSMs?.filter(c => c.controlData.IsGuidedAssistant);\r\n },\r\n\r\n globalMessageBroadcast: function (message, data) {\r\n utils.globalMessageBroadcast(message, data);\r\n },\r\n encodeBase64: function (data) {\r\n return btoa(data);\r\n },\r\n decodeBase64: function (data) {\r\n return atob(data);\r\n },\r\n\r\n renameProperty: function (object, oldname, newname) {\r\n // Renames a property of an object while preserving the order of the properties\r\n const arr = careHelpfulFunctions.toArray(object);\r\n const idx = arr.findIndex(e => e.key == oldname);\r\n if (idx >= 0) {\r\n arr[idx].key = newname;\r\n return careHelpfulFunctions.toLookup(arr, \"key\", \"value\");\r\n }\r\n return object;\r\n },\r\n\r\n reorderProperty: function (object, name, direction) {\r\n // Changes the order of a property within an object\r\n // direction: 1 = down, -1 = up\r\n const arr = careHelpfulFunctions.toArray(object);\r\n const idx = arr.findIndex(e => e.key == name);\r\n switch (direction) {\r\n case 1: // down\r\n if (idx < arr.length - 1)\r\n arr.splice(idx + 1, 0, arr.splice(idx, 1)[0]);\r\n break;\r\n case -1: // up\r\n if (idx > 0)\r\n arr.splice(idx - 1, 0, arr.splice(idx, 1)[0]);\r\n break;\r\n default:\r\n return object;\r\n }\r\n return careHelpfulFunctions.toLookup(arr, \"key\", \"value\");\r\n },\r\n\r\n getEvents: function (props) {\r\n // This is specifically to filter out items from a schema to extract only those that are defined as UIActions, and then just return an array of the event names.\r\n const events = [];\r\n for (let key in props) {\r\n const p = props[key];\r\n if (p.type == 'array' && p.items && p.items.$ref == '/Apps/Schema/AnyOf/schema/public/Platform.Schema.BaseTypes.v1/UIAction')\r\n events.push({ name: key });\r\n }\r\n return events;\r\n },\r\n\r\n stripHTML(html) {\r\n // eslint-disable-next-line no-useless-escape\r\n html = html.replace(//gi, \"\\n\");\r\n let doc = new DOMParser().parseFromString(html, 'text/html');\r\n return doc.body.textContent.trim().replace(/\\u200B/g, '');\r\n },\r\n debounce(func, timeout = 300){\r\n let timer;\r\n return (...args) => {\r\n clearTimeout(timer);\r\n timer = setTimeout(() => { func.apply(this, args); }, timeout);\r\n };\r\n },\r\n\r\n waitUntilIdle: function (f) {\r\n Vue.nextTick(f);\r\n }\r\n};\r\n\r\nexport default careHelpfulFunctions;","import Vue from 'vue';\r\nimport EventBus from '@/Application/event-bus';\r\nimport token from '@/Services/token';\r\nimport utils from '@/Shared/utils';\r\nimport $q from '@/Services/promiseHelper';\r\nimport { appSettings } from '@/Shared/appSettings';\r\nimport { CreateWebSocketConnection } from '@/Services/webSocketConnectionFactory';\r\n\r\nexport default {\r\n connection: null,\r\n isConnecting: false,\r\n ensureConnectionTimer: null,\r\n connectionMessageSent: false,\r\n keepDisconnected: false,\r\n apiRequestQueue: [],\r\n concurrentApiRequests: 0,\r\n MAX_CONCURRENT_API_REQUESTS: 6,\r\n accessTokenAssignedBound: null,\r\n\r\n //This method is only called from the App.Vue when the site gets created so we can subscribe\r\n async created() {\r\n this.accessTokenAssignedBound = this.accessTokenAssigned.bind(this);\r\n appSettings.careWebSocketService = this;\r\n EventBus.$on(\"AccessTokenAssigned\", this.accessTokenAssignedBound);\r\n await this.startEnsureConnectionTimer();\r\n },\r\n //This method is only called from the App.Vue when the site gets destroyed so we can unsubscribe\r\n destroyed() {\r\n EventBus.$off(\"AccessTokenAssigned\", this.accessTokenAssignedBound);\r\n },\r\n accessTokenAssigned() {\r\n if (!token.AccessToken() || (this.connection && this.hasUserCustomerOrBandChanged())) {\r\n // if we no longer have a token, or the user/customer/band has changed immediately kill connection (don't wait for ensureConnectionTimer)\r\n utils.debug(\"WebSocket ACCESSTOKEN_ASSIGNED change\");\r\n this.disconnect();\r\n }\r\n\r\n if (this.IsConnected()) {\r\n // update access token\r\n this.connection.RefreshToken(token.AccessToken()).catch(() => {\r\n // if the RefreshToken didn't work for any reason, disconnect so we don't have a connection using invalid/wrong token. \r\n // ensureConnectionTimer will reestablish connection with most recent token\r\n utils.debug(\"WebSocket RefreshToken fail\");\r\n this.disconnect();\r\n });\r\n }\r\n },\r\n hasUserCustomerOrBandChanged() {\r\n return (this.connection?.connectionData?.bandId != token.BandID() ||\r\n this.connection?.connectionData?.userId != token.UserID() ||\r\n this.connection?.connectionData?.customerId != token.CustomerID());\r\n },\r\n async ensureConnection() {\r\n if (this.isConnecting) {\r\n console.log('already trying a connection');\r\n return;\r\n }\r\n // if the connection has become disconnected/unhealthly, then formally disconnect\r\n // Note we purposefully use IsDisconnected and not !IsConnected, to allow for connecting and reconnecting states\r\n if (this.connection && this.IsDisconnected()) {\r\n utils.error('Websocket disconnected.');\r\n this.disconnect()\r\n }\r\n\r\n // create a new connection\r\n if (!this.connection && !this.keepDisconnected) {\r\n // don't establish a websocket until we have a band (customer is selected)\r\n if (token.AccessToken() && token.BandID()) {\r\n try {\r\n utils.error('Attempting reconnect');\r\n\r\n // If the connection fails for some reason (i.e. error, timeout, etc) the connection state will become \"disconnected\" and ensureConnection will formally disconnect and attempt to reconnect \r\n var baseUrl = token.GetApiBaseURL();\r\n this.isConnecting = true;\r\n this.connection = await CreateWebSocketConnection(baseUrl);\r\n await this.connection.Connect(baseUrl,\r\n //queryParams\r\n {},\r\n // Connection Notice callback\r\n (_, __, connectionId, ___) => {\r\n\r\n this.isConnecting = false;\r\n\r\n utils.log('Websocket Notice Event, WebSocketConnectionId: ' + connectionId);\r\n appSettings.WebSocketConnectionId = connectionId;\r\n\r\n // Publishing connected event here, as this is positive confirmation the websocket is connected, and severside session is setup\r\n utils.debug(`webSocketService Emitting WebSocketConnected`);\r\n this.connectionMessageSent = true;\r\n EventBus.$emit('WebSocketConnected');\r\n },\r\n // channelEventCallback\r\n (value) => {\r\n //var eventData = JSON.parse(value);\r\n for (let i = 0; i < value.length; i++) {\r\n const eventData = JSON.parse(value[i]);\r\n utils.debug('signalR Event: ' + eventData.EventName + ' (' + eventData.EventId + '): ' + value[i]);\r\n EventBus.$emit(\"ChannelEvent\", eventData);\r\n }\r\n },\r\n // rtEventCallback\r\n (value) => {\r\n //var eventData = JSON.parse(value);\r\n const batch = [];\r\n for (let i = 0; i < value.length; i++) {\r\n const eventData = JSON.parse(value[i]);\r\n batch.push(eventData);\r\n\r\n utils.debug('signalR RTEvent: ' + value[i]);\r\n EventBus.$emit(\"RealTimeEvent\", eventData);\r\n }\r\n EventBus.$emit('RealTimeBatch', batch);\r\n },\r\n // On close callback\r\n this.forceRenegotiate.bind(this)\r\n );\r\n this.isConnecting = false;\r\n }\r\n catch (err) {\r\n this.isConnecting = false;\r\n utils.log('Websocket connection failed: ' + err.name + ', ' + err.message)\r\n utils.log(err)\r\n\r\n if (err.name == \"Error\" && (err.message.includes('Unauthorized') || err.message.includes('WebSocket failed to connect'))) {\r\n this.stopEnsureConnectionTimer();\r\n // Whenever we run into a token problem (such as an expired token), force logout (which will stop the refresh timer too) and display login dialog \r\n EventBus.$emit(\"Logout\");\r\n }\r\n\r\n }\r\n }\r\n } \r\n },\r\n forceRenegotiate() {\r\n // Stop the ensure connection timer. We're going to call the ensure connection method directly, so we'll \r\n // stop it to avoid having it be called twice.\r\n this.stopEnsureConnectionTimer();\r\n\r\n // Force the old websocket to disconnect immediately\r\n this.disconnect();\r\n\r\n // Set the websocket to reconnect. Normally that just sets the keep disconnected flag to false and waits for the\r\n // ensure connection timer, but we'll intentionally call the ensure connection timer to make sure it happens quickly\r\n this.ensureConnection();\r\n\r\n // Restart the normal ensure connection timer.\r\n this.startEnsureConnectionTimer();\r\n },\r\n\r\n disconnect() {\r\n utils.debug(\"WebSocket Service disconnect() called\");\r\n\r\n if (this.connection) {\r\n let oldConnection = this.connection;\r\n this.connection = null;\r\n // only send WEB_SOCKET_DISCONNECTED message if a WEB_SOCKET_CONNECTED was sent\r\n if (this.connectionMessageSent) {\r\n EventBus.$emit('WebSocketDisconnected');\r\n this.connectionMessageSent = false;\r\n }\r\n return oldConnection.Disconnect();\r\n }\r\n },\r\n IsConnected() {\r\n if (this.isConnecting)\r\n return false;\r\n return this.connection?.IsConnected();\r\n },\r\n IsDisconnected() {\r\n if (this.isConnecting)\r\n return false;\r\n return this.connection?.IsDisconnected();\r\n },\r\n async startEnsureConnectionTimer() {\r\n if (!this.ensureConnectionTimer) {\r\n await this.ensureConnection(); // immediately call so we don't have to wait for the 1 second interval to make initial connection\r\n this.ensureConnectionTimer = setInterval(this.ensureConnection.bind(this), 1000);\r\n }\r\n },\r\n stopEnsureConnectionTimer() {\r\n if (this.ensureConnectionTimer) {\r\n clearInterval(this.ensureConnectionTimer);\r\n this.ensureConnectionTimer = null;\r\n }\r\n this.disconnect();\r\n },\r\n APIRequest(requestObj) {\r\n var promise = $q.defer();\r\n\r\n this.apiRequestQueue.push({\r\n requestObj: requestObj,\r\n promise: promise\r\n });\r\n\r\n this.processQueue();\r\n\r\n return promise.promise;\r\n },\r\n processQueue() {\r\n if (this.concurrentApiRequests >= this.MAX_CONCURRENT_API_REQUESTS) {\r\n // if we are executing too many requests concurrently then wait and when one of the requests finishes it will call processQueue() to trigger the next one to run\r\n utils.log(\"Throttling WebSocketAPI Request (exceeded concurrent limit: \" + this.MAX_CONCURRENT_API_REQUESTS + \"), # in queue:\" + this.apiRequestQueue.length);\r\n return;\r\n }\r\n\r\n var queueItem = this.apiRequestQueue.shift(); // pop the first item off the array\r\n\r\n if (queueItem === undefined) // reached last element\r\n return;\r\n\r\n // should have been verified before invoking this method\r\n if (!this.IsConnected()) {\r\n queueItem.promise.reject({\r\n status: 503, // Service Unavailable\r\n fullResponse: \"websocket hub not active\"\r\n });\r\n\r\n return;\r\n }\r\n\r\n this.concurrentApiRequests++;\r\n\r\n this.connection.ApiRequest(queueItem.requestObj)\r\n .then(response => {\r\n this.decConcurrentApiRequests();\r\n\r\n var statusCode = response.StatusCode ? response.StatusCode : response.statusCode;\r\n var responseBody = response.ResponseBody ? response.ResponseBody : response.responseBody;\r\n\r\n if (statusCode == 200) {\r\n queueItem.promise.resolve({\r\n data: responseBody\r\n });\r\n } else {\r\n queueItem.promise.reject({\r\n status: statusCode,\r\n fullResponse: response\r\n });\r\n }\r\n })\r\n .catch(error => {\r\n this.decConcurrentApiRequests();\r\n\r\n queueItem.promise.reject({\r\n status: 502, // Bad Gateway\r\n fullResponse: error\r\n });\r\n });\r\n },\r\n decConcurrentApiRequests() {\r\n if (this.concurrentApiRequests > 0)\r\n this.concurrentApiRequests--;\r\n\r\n this.processQueue();\r\n },\r\n Subscribe(channelName) {\r\n if (this.IsConnected())\r\n this.connection.Subscribe(channelName);\r\n },\r\n StartRealTimeMonitor(filter) {\r\n if (this.IsConnected())\r\n this.connection.StartRealTimeMonitor(filter);\r\n },\r\n StopRealTimeMonitor() {\r\n if (this.IsConnected())\r\n this.connection.StopRealTimeMonitor();\r\n },\r\n AddRealTimeMonitorView(viewName, args) {\r\n if (this.IsConnected())\r\n return this.connection.AddRealTimeMonitorView(viewName, args);\r\n },\r\n RemoveRealTimeMonitorView(viewName, args) {\r\n if (this.IsConnected())\r\n return this.connection.RemoveRealTimeMonitorView(viewName, args);\r\n },\r\n GetNamedListForRealTime(listName, id, sortCol, descending, start, length, columns, filters) {\r\n if (this.IsConnected())\r\n return this.connection.GetNamedListForRealTime(listName, id, sortCol, descending, start, length, columns, filters);\r\n },\r\n RemoveNamedListForRealTime(listName, id) {\r\n if (this.IsConnected())\r\n return this.connection.RemoveNamedListForRealTime(listName, id);\r\n },\r\n GetTestResponse() {\r\n if (this.IsConnected())\r\n return this.connection.GetTestResponse();\r\n },\r\n TestDisconnect(value) {\r\n if (value) {\r\n this.disconnect();\r\n this.keepDisconnected = true;\r\n } else\r\n this.keepDisconnected = false;\r\n },\r\n};\r\n\r\n","import cachingService from '@/Services/cachingService';\r\n\r\nexport default {\r\n get(url, config) {\r\n return this.executeShortcut(url, 'GET', undefined, config);\r\n },\r\n head(url, config) {\r\n return this.executeShortcut(url, 'HEAD', undefined, config);\r\n },\r\n post(url, data, config) {\r\n return this.executeShortcut(url, 'POST', data, config);\r\n },\r\n put(url, data, config) {\r\n return this.executeShortcut(url, 'PUT', data, config);\r\n },\r\n delete(url, config) {\r\n return this.executeShortcut(url, 'DELETE', undefined, config);\r\n },\r\n executeShortcut(url, method, data, config) {\r\n config = config || {};\r\n config.method = method;\r\n config.url = url;\r\n config.body = data;\r\n\r\n return this.request(config);\r\n },\r\n request(config) {\r\n if (config.cache) {\r\n return cachingService.getOrAddItem(\r\n 'APICache',\r\n config.url, // the url serves as the cache key\r\n function (finishPromise) // function to get item if not in cache\r\n {\r\n var noCacheConfig = {...config}; // make shallow copy so we can delete the caching option without affecting original object\r\n delete noCacheConfig.cache; // we do not want the normal fetch to handle the caching, so delete the option (we will be handling caching ourselves)\r\n\r\n fetch((noCacheConfig.url || noCacheConfig.absoluteUrl), noCacheConfig).then(\r\n async function (response)\r\n {\r\n if (response.status >= 200 && response.status < 300) {\r\n var text = await response.text()\r\n var data = text;\r\n try {\r\n data = JSON.parse(text);\r\n } catch (err) {\r\n data = text;\r\n }\r\n \r\n finishPromise.resolve({\r\n data: data,\r\n headers: response.headers\r\n });\r\n } else\r\n finishPromise.reject(response);\r\n },\r\n function (error)\r\n {\r\n finishPromise.reject(error);\r\n }\r\n );\r\n }\r\n );\r\n } else {\r\n let resolver, rejecter;\r\n\r\n const promise = new Promise(function (resolve, reject) {\r\n resolver = resolve;\r\n rejecter = reject;\r\n });\r\n\r\n fetch((config.url || config.absoluteUrl), config)\r\n .then(async function(response) {\r\n if (response.status >= 200 && response.status < 300) {\r\n var text = await response.text()\r\n var data = text;\r\n try {\r\n data = JSON.parse(text);\r\n } catch (err) {\r\n data = text;\r\n }\r\n \r\n resolver({\r\n data: data,\r\n headers: response.headers\r\n });\r\n } else\r\n rejecter(response);\r\n })\r\n .catch(error => {\r\n rejecter(error);\r\n });\r\n\r\n return promise;\r\n\r\n // if not caching then return normal fetch promise\r\n //let response = await fetch((config.url || config.absoluteUrl), config);\r\n //try {\r\n // return {\r\n // data: await response.json()\r\n // }\r\n //} catch {\r\n // return { data: {} }\r\n //}\r\n }\r\n },\r\n clearCache(key, matchStartsWith) {\r\n cachingService.clearCache('APICache', key, matchStartsWith);\r\n }\r\n};","import token from '@/Services/token';\r\nimport care from '@/Services/careService';\r\nimport EventBus from '@/Application/event-bus';\r\nimport utils from '@/Shared/utils';\r\nimport $q from '@/Services/promiseHelper';\r\nimport webSocket from '@/Services/webSocketService';\r\nimport $http from '@/Services/careFetchService';\r\nimport axios from 'axios';\r\nimport { appSettings } from '@/Shared/appSettings';\r\n\r\n\r\nexport default {\r\n RequestQueue: [],\r\n apiQueuingControlModel: null,\r\n cacheBandId: null,\r\n cacheUserId: null,\r\n cacheCustomerId: null,\r\n clearRequestQueueBound: null,\r\n clearHttpCacheOnTokenAssignBound: null,\r\n\r\n //This method is only called from the App.Vue when the site gets created so we can subscribe\r\n created() {\r\n appSettings.careApiService = this;\r\n\r\n this.clearRequestQueueBound = this.clearRequestQueue.bind(this);\r\n this.clearHttpCacheOnTokenAssignBound = this.clearHttpCacheOnTokenAssign.bind(this);\r\n\r\n EventBus.$on('Logout', this.clearRequestQueueBound);\r\n EventBus.$on('AccessTokenAssigned', this.clearHttpCacheOnTokenAssignBound);\r\n EventBus.$on('SelectedCustomerChanged', this.clearRequestQueueBound);\r\n },\r\n\r\n //This method is only called from the App.Vue when the site gets destroyed so we can unsubscribe\r\n destroyed() {\r\n EventBus.$off('Logout', this.clearRequestQueueBound);\r\n EventBus.$off('AccessTokenAssigned', this.clearHttpCacheOnTokenAssignBound);\r\n EventBus.$off('SelectedCustomerChanged', this.clearRequestQueueBound);\r\n },\r\n // Listen for a \"LoginComplete\" event (sent at the end of the login dialog sequence) to cause any requests queued up (while waiting for a valid token) to be run.\r\n startQueuing(data) {\r\n this.apiQueuingControlModel = data;\r\n },\r\n endQueuing() {\r\n this.apiQueuingControlModel = null;\r\n this.processRequestQueue();\r\n },\r\n isQueing() {\r\n return !!this.apiQueuingControlModel;\r\n },\r\n standardizeUrl(url) {\r\n // Check if the url starts with \"http or //\", if not then add the ApiBase\r\n if (url && !url.match(\"^http|^//\")) {\r\n if (!url.match(\"^/\")) // if the url doesn't have an absolute path, add a leading /\r\n url = '/' + url;\r\n\r\n url = token.GetApiBaseURL() + url;\r\n }\r\n\r\n return url;\r\n },\r\n addAccessTokenHeader(requestOptions) {\r\n var accessToken = token.AccessToken();\r\n\r\n if (accessToken)\r\n requestOptions.headers['access_token'] = accessToken;\r\n },\r\n cachedGet(url) {\r\n return this.apiRequest({\r\n method: 'GET',\r\n cache: true,\r\n url: url,\r\n flatten: true\r\n });\r\n },\r\n get(url) {\r\n return this.apiRequest({\r\n method: 'GET',\r\n url: url,\r\n flatten: true\r\n });\r\n },\r\n delete_(url) {\r\n return this.apiRequest({\r\n method: 'DELETE',\r\n url: url,\r\n flatten: true\r\n });\r\n },\r\n post(url, data) {\r\n return this.apiRequest({\r\n method: 'POST',\r\n data: data,\r\n url: url,\r\n flatten: true\r\n });\r\n },\r\n put(url, data) {\r\n return this.apiRequest({\r\n method: 'PUT',\r\n data: data,\r\n url: url,\r\n flatten: true\r\n });\r\n },\r\n patch(url, data) {\r\n return this.apiRequest({\r\n method: 'PATCH',\r\n data: data,\r\n url: url,\r\n flatten: true\r\n });\r\n },\r\n foreachControlModelParent(controlModel, fn) {\r\n while (controlModel) {\r\n if (fn(controlModel)) // parent found\r\n return controlModel;\r\n\r\n controlModel = controlModel.Parent;\r\n }\r\n\r\n return null;\r\n },\r\n queueApiRequest(controlModel) {\r\n if (!this.isQueing())\r\n return false;\r\n\r\n // if ApiQueuing (presummably we are in the login dialog sequence) then all APIs not invoked from a child of the controlModel that enabled the queuing should queue.\r\n // if no controlModel passed in then we can't determine if it's a child of the controlModel that enabled queuing - so return true\r\n if (controlModel) {\r\n // loop through controlModel parents, see if any match ApiQueuingControlModel\r\n var obj = this.foreachControlModelParent(controlModel, (parentObj) => parentObj == this.apiQueuingControlModel);\r\n\r\n if (obj) // a parent of the controlModel matched the apiQueuingControlModel (meaning we are a child of the action that requested ApiQueuing, so we don't queue this request\r\n return false;\r\n }\r\n\r\n return true;\r\n },\r\n apiRequest(apiOptions) {\r\n apiOptions.method = apiOptions.method || 'GET';\r\n apiOptions.addAccessTokenInHeader = (apiOptions.addAccessTokenInHeader === undefined) ? true : apiOptions.addAccessTokenInHeader;\r\n apiOptions.deferred = apiOptions.deferred || $q.defer();\r\n apiOptions.cache = apiOptions.cache || false;\r\n apiOptions.multipart = apiOptions.multipart || false;\r\n apiOptions.doNotQueue = apiOptions.doNotQueue || false;\r\n apiOptions.loginRequest = apiOptions.loginRequest || false;\r\n apiOptions.doNotUseWebsocket = apiOptions.doNotUseWebsocket || false;\r\n apiOptions.doNotStandardizeUrl = apiOptions.doNotStandardizeUrl || false;\r\n\r\n // If the login dialog is displayed, then simply queue requests (other than the requests related to the Login itself\r\n if (!apiOptions.loginRequest && this.queueApiRequest(apiOptions.context)) {\r\n if (!apiOptions.doNotQueue)\r\n this.RequestQueue.push(apiOptions);\r\n } else {\r\n var requestOptions = {\r\n method: apiOptions.method,\r\n url: apiOptions.doNotStandardizeUrl ? apiOptions.url : this.standardizeUrl(apiOptions.url),\r\n cache: apiOptions.cache,\r\n headers: apiOptions.headers || {},\r\n absoluteUrl: !!(apiOptions.url.match(\"^http|^//\")), // used to determine if websocket can be used (external addresses don't use websocket), we also don't include the access token for external calls\r\n addAccessTokenInHeader: apiOptions.addAccessTokenInHeader,\r\n doNotUseWebsocket: apiOptions.doNotUseWebsocket\r\n };\r\n\r\n if (apiOptions.multipart) {\r\n requestOptions.data = apiOptions.data;\r\n requestOptions.multipart = apiOptions.multipart;\r\n } else {\r\n // This will remove any unwanted properties from data before sending back to server. ($$hashKeys added by the grid)\r\n requestOptions.data = care.prepareObjectForServer(apiOptions.data);\r\n }\r\n\r\n\r\n\r\n\r\n\r\n if (apiOptions.addAccessTokenInHeader && !requestOptions.absoluteUrl) // Normally, the only time we don't add the accessToken to the header is when refreshing tokens\r\n this.addAccessTokenHeader(requestOptions);\r\n\r\n var startTime = new Date().getTime();\r\n EventBus.$emit('ApiRequestStarted', { startTime: startTime, options: requestOptions });\r\n utils.global_variables.api_busy_indicator = true;\r\n\r\n var executeAPIPromise = this.executeAPI(requestOptions, startTime);\r\n executeAPIPromise\r\n .then(response => {\r\n this.logApiStop(requestOptions, startTime, executeAPIPromise.wasInCache, executeAPIPromise.webSocketRequest, response);\r\n\r\n EventBus.$emit('ApiRequestFinished', {\r\n success: true,\r\n options: requestOptions,\r\n defaultToast: apiOptions.defaultToast,\r\n toast: apiOptions.toast,\r\n context: apiOptions.context,\r\n });\r\n utils.global_variables.api_busy_indicator = false;\r\n\r\n let flattenResults = response.data?.Result || response.data;\r\n if(response.headers)\r\n response.headers = Object.assign(...Array.from(response.headers).map(([k,v]) => ({[k]: v})));\r\n apiOptions.deferred.resolve(apiOptions.flatten ? flattenResults : response); // echo successful request to chained promises\r\n })\r\n .catch(error => {\r\n const reason = error.fullResponse || error.response || error; // error.fullResponse;\r\n this.logApiStop(requestOptions, startTime, executeAPIPromise.wasInCache, executeAPIPromise.webSocketRequest);\r\n\r\n EventBus.$emit('ApiRequestFinished', {\r\n success: false,\r\n options: requestOptions,\r\n error: reason,\r\n defaultToast: apiOptions.defaultToast,\r\n toast: apiOptions.toast,\r\n context: apiOptions.context,\r\n });\r\n utils.global_variables.api_busy_indicator = false;\r\n\r\n // if it's a token problem and this api call was not initated by the login process, then queue up and begin login \r\n //if (reason.StatusCode == 401 && !this.isQueing()) {\r\n if (((reason.StatusCode ? reason.StatusCode : reason.statusCode) || reason.status) == 401 && !this.isQueing()) {\r\n token.ClearAccessToken(); // Whenever we run into a token problem (such as an expired token), clear the current token (which will stop the refresh timer too) and display login dialog\r\n\r\n // Queue up request. These will be processed after successful login (when there is a valid token)\r\n if (!apiOptions.doNotQueue)\r\n this.RequestQueue.push(apiOptions);\r\n\r\n EventBus.$emit('UnauthorizedApi');\r\n } else {\r\n // not a token problem, echo reason to chained promises\r\n apiOptions.deferred.reject(reason);\r\n }\r\n });\r\n }\r\n\r\n return apiOptions.deferred.promise; // by returning the request promise, the caller can add it's own \".then\" methods for success/failure\r\n },\r\n logApiStop(requestOptions, startTime, wasInCache, webSocketRequest, response) {\r\n var duration = (new Date().getTime()) - startTime;\r\n utils.debug((webSocketRequest ? \"websocket\" : \"http\") + \" apiRequest \" + (wasInCache ? \"**FOUND IN CACHE** \" : \"\") + \"Stop: Method: \" + requestOptions.method +\r\n \", URL: \" + requestOptions.url +\r\n \", Duration: \" + duration + \"ms\");\r\n },\r\n async executeAPI(requestOptions, startTime) {\r\n var logMsg = \"Start: Method: \" + requestOptions.method + \", URL: \" + requestOptions.url + \", StartTime: \" + startTime + ((typeof requestOptions.data === 'object') ? (\", APIRequestData: \" + JSON.stringify(requestOptions.data)) : \"\");\r\n\r\n // If this is a cached request, use the standard angular request which handles caching already.\r\n if (!requestOptions.absoluteUrl &&\r\n !requestOptions.cache &&\r\n !requestOptions.multipart && // multi-part request. Needs to use $http\r\n !requestOptions.doNotUseWebsocket &&\r\n requestOptions.addAccessTokenInHeader && // only use websocket if we are using the accesstoken. Technically the access token in the header isn't used at all for a websocket, because the connection has the token cached from when it was established\r\n webSocket.IsConnected()) {\r\n\r\n var apiRequestObj = {\r\n Verb: requestOptions.method.toUpperCase(),\r\n Uri: requestOptions.url,\r\n Body: requestOptions.data\r\n };\r\n\r\n // The request is changed to a string (rather than sending object and having SignalR convert) because SignalR (server side) has a max JSON deserialization depth of 20\r\n // if we send deeply nested objects SignalR would error.\r\n var stringApiRequestObj = JSON.stringify(apiRequestObj);\r\n\r\n // WebSockets are best for short messages. If the message is too big we use a normal HTTP request rather than websocket.\r\n // The signalR team recommends keeping messages < 32K \r\n if (stringApiRequestObj.length < 32768) {\r\n utils.debug(\"websocket apiRequest: \" + logMsg, \"color: lightblue\");\r\n return await webSocket.APIRequest(stringApiRequestObj);\r\n\r\n // Old code\r\n var webSocketAPIPromise = webSocket.APIRequest(stringApiRequestObj); // returns a promise\r\n webSocketAPIPromise.webSocketRequest = true; // Flag indicating it was a websocket request\r\n return webSocketAPIPromise;\r\n }\r\n }\r\n\r\n utils.debug(\"http apiRequest: \" + logMsg);\r\n\r\n let fetchOptions = { ...requestOptions };\r\n if (requestOptions.data && requestOptions.method.toUpperCase() != 'GET')\r\n fetchOptions.body = (requestOptions.data instanceof FormData || requestOptions.data instanceof File || typeof requestOptions.data === 'string') ? requestOptions.data : JSON.stringify(requestOptions.data);\r\n if(!fetchOptions.cache)\r\n delete fetchOptions.cache;\r\n delete fetchOptions.data;\r\n if(fetchOptions.multipart)\r\n delete fetchOptions.multipart;\r\n\r\n return await $http.request(fetchOptions); // returns a promise\r\n\r\n //const config = {\r\n // headers: requestOptions.headers,\r\n // method: requestOptions.method.toLowerCase(),\r\n // url: requestOptions.url,\r\n // data: requestOptions.data,\r\n //};\r\n //return await axios.request(config);\r\n },\r\n processRequestQueue() {\r\n // this will loop until there are no more items in the requestQueue\r\n while (true) {\r\n var apiOptions = this.RequestQueue.shift(); // pop the first item off the array\r\n\r\n if (apiOptions === undefined) // reached last element\r\n break;\r\n\r\n this.apiRequest(apiOptions);\r\n }\r\n },\r\n clearRequestQueue() {\r\n this.RequestQueue = [];\r\n },\r\n clearHttpCacheOnTokenAssign(event) {\r\n var bandId = token.BandID();\r\n var userId = token.UserID();\r\n var customerId = token.CustomerID();\r\n\r\n // don't flush the cache if the band, user and customer are the same as the last time.\r\n if (this.cacheBandId !== bandId || this.cacheUserId !== userId || this.cacheCustomerId !== customerId) {\r\n this.cacheBandId = bandId;\r\n this.cacheUserId = userId;\r\n this.cacheCustomerId = customerId;\r\n\r\n this.clearHttpCache();\r\n }\r\n },\r\n clearHttpCache(url, matchStartsWith) {\r\n utils.debug(\"Flushed HTTP Cache\");\r\n\r\n if (typeof (url) === 'undefined') {\r\n $http.clearCache();\r\n } else {\r\n url = this.standardizeUrl(url);\r\n $http.clearCache(url, matchStartsWith);\r\n }\r\n }\r\n};","module.exports = \"data:image/png;base64,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\"","import Vue from 'vue';\r\nconst EventBus = new Vue();\r\nexport default EventBus;","class CallCorpPlayer extends HTMLElement { \r\n constructor() {\r\n super();\r\n this.shadow = this.attachShadow({mode:'open'});\r\n this.shadow.innerHTML = `
`;\r\n\r\n this._accessToken = \"\";\r\n this._videos = [];\r\n this._videoEls = [];\r\n this._videoMetadata = [];\r\n\r\n this.height = 500;\r\n\r\n //this.addEventListener(\"click\", this.onClickHandler.bind(this));\r\n // this.shadow.addEventListener(\"slotchange\", this.onSlotChange.bind(this));\r\n }\r\n\r\n set videos(value) {\r\n var self = this;\r\n self._videos = value;\r\n var minX = 0;\r\n var minY = 0;\r\n var maxX;\r\n var maxY;\r\n\r\n self.shadow.querySelector(\".cc-videos\").setAttribute(\"style\", `position:relative;height:${self.height}px;width:100%;`);\r\n\r\n self._videos.forEach((video, vIndex) => {\r\n video.class = `cc-video-${vIndex}`;\r\n\r\n video.width = parseInt(video.width, 10);\r\n video.height = parseInt(video.height, 10);\r\n video.x = parseInt(video.x, 10);\r\n video.y = parseInt(video.y, 10);\r\n video.timeoffset = parseInt(video.timeoffset, 10);\r\n\r\n var videoEl = document.createElement(\"video\");\r\n //videoEl.setAttribute(\"controls\", \"controls\");\r\n videoEl.setAttribute(\"muted\", \"muted\");\r\n videoEl.setAttribute(\"class\", video.class);\r\n //videoEl.dataset.timeoffset = video.timeoffset;\r\n self.shadow.querySelector(\".cc-videos\").appendChild(videoEl);\r\n self._videoEls.push(videoEl);\r\n //videoEl.onloadeddata = self.positionScreens;\r\n\r\n //{src: \"X.mp4\", type: \"video/mp4\", width: 3840, height: 1440, x: 3840, y: 296, timeoffset: -471}\r\n self._videoMetadata.push(video);\r\n \r\n if (video.x || video.x === 0) {\r\n if ((!minX && minX !== 0) || minX > video.x) {\r\n minX = video.x;\r\n }\r\n if ((!maxX && maxX !== 0) || maxX < (video.x + video.width)) {\r\n maxX = video.x + video.width;\r\n }\r\n }\r\n if (video.y || video.y === 0) {\r\n if ((!minY && minY !== 0) || minY > video.y) {\r\n minY = video.y;\r\n }\r\n\r\n if ((!maxY && maxY !== 0) || maxY < (video.y + video.height)) {\r\n maxY = video.y + video.height;\r\n }\r\n }\r\n\r\n var accessToken = this._accessToken;\r\n\r\n (async function() {\r\n var response = await fetch(video.src, {\r\n method: \"GET\",\r\n mode: \"cors\",\r\n credentials: \"include\",\r\n headers: {\r\n \"access_token\": accessToken\r\n }\r\n })\r\n .then(response => response.body)\r\n .then(body => {\r\n const reader = body.getReader();\r\n return new ReadableStream({\r\n start(controller) {\r\n return pump();\r\n function pump() {\r\n return reader.read().then(({ done, value }) => {\r\n // When no more data needs to be consumed, close the stream\r\n if (done) {\r\n controller.close();\r\n return;\r\n }\r\n // Enqueue the next data chunk into our target stream\r\n controller.enqueue(value);\r\n return pump();\r\n });\r\n }\r\n }\r\n });\r\n })\r\n .then(stream => new Response(stream))\r\n .then(response => response.blob())\r\n .then(blob => URL.createObjectURL(blob))\r\n .then(url => videoEl.src = url)\r\n .catch(err => console.error(err));\r\n })();\r\n });\r\n\r\n self.minX = minX;\r\n self.minY = minY;\r\n self.maxX = maxX;\r\n self.maxY = maxY;\r\n\r\n self.positionScreens();\r\n }\r\n\r\n positionScreens() {\r\n if (!this.minX && !this.maxX) {\r\n return;\r\n }\r\n\r\n var minX = this.minX;\r\n var minY = this.minY;\r\n var maxX = this.maxX;\r\n var maxY = this.maxY;\r\n var containerHeight = this.shadow.querySelector(\".cc-videos\").offsetHeight;\r\n var containerWidth = this.shadow.querySelector(\".cc-videos\").offsetWidth;\r\n console.log({ containerHeight, containerWidth });\r\n var fullWidth = maxX - minX;\r\n var fullHeight = maxY - minY;\r\n var hRatio = (fullHeight / containerHeight);\r\n var wRatio = (fullWidth / containerWidth);\r\n var ratio = Math.max(hRatio, wRatio);\r\n\r\n var self = this;\r\n //{src: \"X.mp4\", type: \"video/mp4\", width: 3840, height: 1440, x: 3840, y: 296, timeoffset: -471, class}\r\n this._videoMetadata.forEach((videoData) => {\r\n var video = self.shadow.querySelector(`.${videoData.class}`);\r\n video.setAttribute(\"style\", \"\");\r\n var height = videoData.height;\r\n var width = videoData.width;\r\n \r\n var vHeight = height / ratio;\r\n var top = ((videoData.y - minY) / ratio);\r\n var left = ((videoData.x - minX) / ratio);\r\n video.style.position = \"absolute\";\r\n video.style.width = `${(width / ratio)}px`;\r\n video.style.height = `${vHeight}px`;\r\n video.style.top = `${top}px`;\r\n video.style.left = `${left}px`;\r\n\r\n });\r\n }\r\n\r\n set accessToken(value) {\r\n this._accessToken = value;\r\n }\r\n \r\n get videos() {\r\n return this._videos;\r\n }\r\n\r\n set controlElementSelector(value) {\r\n this._controlElementSelector = value;\r\n this._controlElement = document.querySelector(value);\r\n this.setupControlElement();\r\n }\r\n\r\n set playing(value) {\r\n this._videoEls.forEach(video => {\r\n if (value) {\r\n video.play();\r\n } else {\r\n video.pause();\r\n }\r\n });\r\n }\r\n\r\n set controlTime(value)\r\n {\r\n this.lastUpdatedDate = this.lastUpdatedDate || new Date();\r\n var now = new Date();\r\n if (now - this.lastUpdatedDate >= 1000)\r\n {\r\n this.setCurrentTime(value);\r\n this.lastUpdatedDate = new Date();\r\n }\r\n }\r\n\r\n setupControlElement() {\r\n var self = this;\r\n // this._controlElement.onseeked = function() {\r\n // self.setCurrentTime(self._controlElement.currentTime);\r\n // };\r\n this._controlElement.onplay = function() {\r\n self.playing = true;\r\n };\r\n this._controlElement.onpause = function() {\r\n self.playing = false;\r\n };\r\n this._controlElement.ontimeupdate = function(event) {\r\n self._ontimeupdate(self, event);\r\n };\r\n }\r\n\r\n _ontimeupdate(player) {\r\n player.lastUpdatedDate = player.lastUpdatedDate || new Date();\r\n var now = new Date();\r\n if (now - player.lastUpdatedDate >= 1000) {\r\n player.setCurrentTime(player._controlElement.currentTime);\r\n player.lastUpdatedDate = new Date();\r\n }\r\n }\r\n\r\n setCurrentTime(newTime) {\r\n var self = this;\r\n this._videoEls.forEach(video => {\r\n if (Math.abs(video.currentTime - newTime) >= 1)\r\n {\r\n video.currentTime = newTime;\r\n if (self.playing) {\r\n video.play();\r\n }\r\n }\r\n });\r\n }\r\n}\r\n\r\nwindow.customElements.define('callcorp-player', CallCorpPlayer);","import $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!./griddy.vue?vue&type=style&index=0&id=768ce49d&prod&scoped=true&lang=css&\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RoosterEditorBase.vue?vue&type=style&index=1&id=2c21a244&prod&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!./responsiveDash.vue?vue&type=style&index=0&id=7a6b510e&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!./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--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&\"","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 '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 '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","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!./RoosterEditorBase.vue?vue&type=style&index=0&id=2c21a244&prod&scoped=true&lang=css&\"","import Vue from 'vue';\r\nimport Vuetify from 'vuetify';\r\nimport utils from '../../../Shared/utils.jsx';\r\nimport methods from '../../../Shared/methods';\r\nimport filters from '../../../Shared/filters';\r\nimport computed from '../../../Shared/computed';\r\nimport BaseComponent from '../BaseComponentMixin.jsx';\r\nimport EventBus from '@/Application/event-bus.js';\r\nimport careHelpfulFunctions from '../../careHelpfulFunctions.jsx';\r\n\r\n/* We need a draggable dialog. Here is one possible solution:\r\n * https://github.com/vuetifyjs/vuetify/issues/4058\r\n * \r\n * We also need to support resizing, if I find something, I'll paste here.\r\n * \r\n * */\r\n\r\nconst busyIcon = {\r\n render(h) {\r\n return (\r\n \r\n mdi mdi-cloud-download\r\n \r\n );\r\n }\r\n};\r\n\r\nVue.component('display-basic-confirm-modal', {\r\n components: {\r\n busyIcon\r\n },\r\n data: () => ({\r\n vars: {},\r\n value: '',\r\n }),\r\n props: {\r\n name: '',\r\n root: null,\r\n type: null,\r\n parentType: '',\r\n isbase: true,\r\n action: null,\r\n context: null,\r\n scopeitems: null,\r\n controlscope: null,\r\n\r\n okay: null,\r\n cancel: null,\r\n accept: null,\r\n },\r\n created() {\r\n if (this.action.ActionData && this.action.ActionData.Vars) {\r\n const varsexpn = utils.compileObject(this, this.action.ActionData.Vars);\r\n try {\r\n this.vars = utils.evaluateObject(varsexpn, this.action.context);\r\n }\r\n catch (e) {\r\n utils.log('error evaluating Vars: ' + e);\r\n }\r\n }\r\n\r\n if (this.action.ActionData && this.action.ActionData.Javascript)\r\n try {\r\n const api = utils.apiWrapper; // apiService;\r\n const chf = careHelpfulFunctions;\r\n this.Javascript = eval(\"new (\" + this.action.ActionData.Javascript + \")(null, null, api, this, chf);\");\r\n\r\n for (let key in this.Javascript)\r\n if (typeof this.Javascript[key] === 'function')\r\n this.Javascript[key] = this.Javascript[key].bind(this.Javascript);\r\n }\r\n catch (e) {\r\n utils.warn(`Failed evaluating Javascript in ${this.name} ${this.type}: ${this.action.ActionData.Javascript}`, e);\r\n }\r\n\r\n\r\n // Subscribe to a UIAction_Close event, which then emits the close event\r\n // which is handled within ActionService.jsx, where it imbeds \r\n utils.debug(`DialogBasicConfirmModal ${this.name} ${this._uid} $on ActionClose`);\r\n this.$on('Action-Close', this.performClose);\r\n EventBus.$on(`Action-Close:${this.name}`, this.performClose);\r\n EventBus.$on(`Action-Close`, this.performClose);\r\n },\r\n destroyed() {\r\n utils.debug(`DialogBasicConfirmModal ${this.name} ${this._uid} $off ActionClose`);\r\n this.$off('Action-Close', this.performClose);\r\n EventBus.$off(`Action-Close:${this.name}`, this.performClose);\r\n EventBus.$off(`Action-Close`, this.performClose);\r\n },\r\n mounted() {\r\n },\r\n computed: {\r\n ...computed,\r\n Base: function () {\r\n return this;\r\n },\r\n Name: function () {\r\n return this.name;\r\n },\r\n Root: function () {\r\n return this.root ? this.root._self : this;\r\n },\r\n Vars: function () {\r\n return this.vars;\r\n },\r\n title: function () {\r\n return this.action.title ? utils.evaluate(this.action.title, this.action.context) : '';\r\n },\r\n message: function () {\r\n return this.action.message ? utils.evaluate(this.action.message, this.action.context) : '';\r\n },\r\n okayButtonText: function () {\r\n return this.action.okaybuttontext ? utils.evaluate(this.action.okaybuttontext, this.action.context) : '';\r\n },\r\n cancelButtonText: function () {\r\n return this.action.cancelbuttontext ? utils.evaluate(this.action.cancelbuttontext, this.action.context) : '';\r\n }\r\n },\r\n methods: {\r\n ...methods,\r\n ...filters,\r\n async performClose(action) {\r\n utils.log(' ** Close Action Received by DialogBasicConfirmModal **');\r\n\r\n this.$emit('closeme');\r\n\r\n try {\r\n await utils.success(action);\r\n } catch (e) { }\r\n\r\n // Complete the promise for the executeAction method\r\n action.FinishFunc(true);\r\n },\r\n finishRenderHandler() { },\r\n clickedOutside(e) {\r\n e.stopPropagation();\r\n e.preventDefault();\r\n }\r\n },\r\n render(h) {\r\n const dialogButtons = [];\r\n if (this.cancelButtonText) dialogButtons.push(( this.$emit('closeme', { Success: false, DialogResult: this.cancelButtonText })}>{this.cancelButtonText}));\r\n if (this.okayButtonText) dialogButtons.push(( this.$emit('closeme', { Success: true, DialogResult: this.okayButtonText })}>{this.okayButtonText}));\r\n\r\n let content = (\r\n \r\n \r\n \r\n {this.title}\r\n \r\n\r\n \r\n\r\n \r\n\r\n this.$emit('closeme')}>\r\n mdi-close\r\n \r\n \r\n\r\n \r\n {this.message}\r\n \r\n\r\n \r\n {dialogButtons}\r\n \r\n \r\n );\r\n\r\n return content;\r\n }\r\n});\r\n","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;","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 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}\r\n\r\nexport default computed;","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=42883b0d&prod&scoped=true&lang=css&\"","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":""}