bfg-common 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.eslintrc.js +21 -0
- package/.idea/inspectionProfiles/Project_Default.xml +49 -0
- package/.idea/modules.xml +8 -0
- package/.idea/prettier.xml +6 -0
- package/.idea/uikit.iml +12 -0
- package/.idea/vcs.xml +6 -0
- package/.prettierrc +5 -0
- package/PROJECT_STRUCTURE.md +42 -0
- package/README.md +42 -0
- package/assets/img/bg1.jpeg +0 -0
- package/assets/img/bg2.jpeg +0 -0
- package/assets/img/icons/icon-cps-dark-mode.png +0 -0
- package/assets/img/icons/icon-cps.png +0 -0
- package/assets/img/icons/icon-datastore.svg +1 -0
- package/assets/img/icons/icon-hcs.svg +4 -0
- package/assets/img/icons/icon-life-m-dark.svg +4 -0
- package/assets/img/icons/icon-life-m-light.svg +4 -0
- package/assets/img/icons/icon-ro-dark.svg +2 -0
- package/assets/img/icons/icon-ro-light.svg +3 -0
- package/assets/img/icons/icons-sprite-dark-1.svg +1 -0
- package/assets/img/icons/icons-sprite-dark-2.svg +1 -0
- package/assets/img/icons/icons-sprite-dark-3.svg +1 -0
- package/assets/img/icons/icons-sprite-dark-4.svg +1 -0
- package/assets/img/icons/icons-sprite-dark-5.svg +1 -0
- package/assets/img/icons/icons-sprite-light-1.svg +1 -0
- package/assets/img/icons/icons-sprite-light-2.svg +1 -0
- package/assets/img/icons/icons-sprite-light-3.svg +1 -0
- package/assets/img/icons/icons-sprite-light-4.svg +1 -0
- package/assets/img/icons/icons-sprite-light-5.svg +1 -0
- package/assets/img/icons/info.svg +8 -0
- package/assets/img/icons/sprite.png +0 -0
- package/assets/img/icons/summary-cluster.svg +1 -0
- package/assets/img/icons/vc.svg +53 -0
- package/assets/img/icons/vm-ui-icons.png +0 -0
- package/assets/img/logo copy.svg +50 -0
- package/assets/img/logo.png +0 -0
- package/assets/img/logo.svg +51 -0
- package/assets/localization/local_be.json +1851 -0
- package/assets/localization/local_en.json +1851 -0
- package/assets/localization/local_hy.json +1851 -0
- package/assets/localization/local_kk.json +1851 -0
- package/assets/localization/local_ru.json +1851 -0
- package/assets/localization/local_zh.json +1851 -0
- package/assets/scss/clarity/clr-ui.min.css +8 -0
- package/assets/scss/common/animations.scss +28 -0
- package/assets/scss/common/global.scss +178 -0
- package/assets/scss/common/icons/icons-1.scss +188 -0
- package/assets/scss/common/icons/icons-2.scss +208 -0
- package/assets/scss/common/icons/icons-3.scss +176 -0
- package/assets/scss/common/icons/icons-4.scss +179 -0
- package/assets/scss/common/icons/icons-5.scss +53 -0
- package/assets/scss/common/icons/icons.scss +14 -0
- package/assets/scss/common/mixins.scss +39 -0
- package/assets/scss/common/normalize.scss +320 -0
- package/assets/scss/common/theme.scss +230 -0
- package/assets/scss/common/utilities.scss +18 -0
- package/assets/scss/common/variables.scss +43 -0
- package/assets/scss/main.scss +13 -0
- package/components/atoms/DiagramIcon.vue +287 -0
- package/components/atoms/TheIcon.vue +1687 -0
- package/components/atoms/TheIcon2.vue +318 -0
- package/components/atoms/alert/Alert.spec.ts +38 -0
- package/components/atoms/alert/Alert.vue +84 -0
- package/components/atoms/alert/Notification.spec.ts +34 -0
- package/components/atoms/alert/Notification.vue +167 -0
- package/components/atoms/alert/models/enums.ts +12 -0
- package/components/atoms/alert/models/interfaces.ts +27 -0
- package/components/atoms/alert/models/types.ts +7 -0
- package/components/atoms/autocomplete/Autocomplete.vue +236 -0
- package/components/atoms/collapse/CollapseNav.vue +153 -0
- package/components/atoms/collapse/CollapseNavItem.vue +190 -0
- package/components/atoms/collapse/models/interfaces.ts +9 -0
- package/components/atoms/combobox/Combobox.vue +131 -0
- package/components/atoms/datepicker/Datepicker.vue +612 -0
- package/components/atoms/datepicker/config/allShortMonths.ts +103 -0
- package/components/atoms/datepicker/config/datapicker.ts +43 -0
- package/components/atoms/datepicker/models/interfaces.ts +8 -0
- package/components/atoms/dropdown/Portlet.spec.ts +26 -0
- package/components/atoms/dropdown/Portlet.vue +111 -0
- package/components/atoms/dropdown/dropdown/Dropdown.vue +148 -0
- package/components/atoms/dropdown/dropdown/models/interfaces.ts +8 -0
- package/components/atoms/dropdown/tree/Tree.vue +134 -0
- package/components/atoms/dropdown/tree/models/interfaces.ts +9 -0
- package/components/atoms/input/Search.vue +16 -0
- package/components/atoms/list/SelectList.vue +62 -0
- package/components/atoms/list/SimpleList.vue +29 -0
- package/components/atoms/list/dragDropList/DragDropList.vue +139 -0
- package/components/atoms/list/dragDropList/config/events.ts +4 -0
- package/components/atoms/loader/BarLoader.vue +21 -0
- package/components/atoms/loader/Loader.vue +26 -0
- package/components/atoms/loader/PreLoader.vue +34 -0
- package/components/atoms/loader/Preloader.spec.ts +24 -0
- package/components/atoms/modal/Modal.spec.ts +55 -0
- package/components/atoms/modal/Modal.vue +241 -0
- package/components/atoms/modal/bySteps/BySteps.spec.ts +66 -0
- package/components/atoms/modal/bySteps/BySteps.vue +234 -0
- package/components/atoms/modal/byStepsSecond/ByStepsSecond.vue +174 -0
- package/components/atoms/models/interfaces.ts +11 -0
- package/components/atoms/nav/NavBar.spec.ts +34 -0
- package/components/atoms/nav/NavBar.vue +116 -0
- package/components/atoms/nav/VerticalNavBar.vue +89 -0
- package/components/atoms/nav/models/interfaces.ts +5 -0
- package/components/atoms/notificationBar/NotificationBar.vue +175 -0
- package/components/atoms/notificationBar/models/enums.ts +27 -0
- package/components/atoms/notificationBar/models/interfaces.ts +6 -0
- package/components/atoms/notificationBar/models/types.ts +1 -0
- package/components/atoms/perPage/PerPage.vue +52 -0
- package/components/atoms/popover/Popover.vue +48 -0
- package/components/atoms/popup/SimplePopup.vue +90 -0
- package/components/atoms/select/TheSelect.vue +175 -0
- package/components/atoms/select/models/interfaces.ts +4 -0
- package/components/atoms/stack/StackBlock.vue +171 -0
- package/components/atoms/stack/StackContent.vue +60 -0
- package/components/atoms/step/VerticalStep.spec.ts +68 -0
- package/components/atoms/step/VerticalStep.vue +104 -0
- package/components/atoms/step/models/verticalStepItem.ts +7 -0
- package/components/atoms/switch/Switch.vue +107 -0
- package/components/atoms/table/compact/Compact.vue +526 -0
- package/components/atoms/table/compact/models/interfaces.ts +11 -0
- package/components/atoms/table/dataGrid/DataGrid.spec.ts +61 -0
- package/components/atoms/table/dataGrid/DataGrid.vue +1283 -0
- package/components/atoms/table/dataGrid/DataGridColumnSwitch.vue +204 -0
- package/components/atoms/table/dataGrid/DataGridPage.vue +189 -0
- package/components/atoms/table/dataGrid/DataGridPagination.vue +83 -0
- package/components/atoms/table/dataGrid/config/itemsPerPage.ts +20 -0
- package/components/atoms/table/dataGrid/models/interfaces.ts +24 -0
- package/components/atoms/table/dataGrid/models/types.ts +5 -0
- package/components/atoms/table/dataGrid/utils/constructDataTable.ts +33 -0
- package/components/atoms/table/info/Info.vue +60 -0
- package/components/atoms/table/info/models/interfaces.ts +6 -0
- package/components/atoms/table/simpleEvent/SimpleEvent.vue +98 -0
- package/components/atoms/table/simpleEvent/models/interfaces.ts +9 -0
- package/components/atoms/table/simpleInfo/SimpleInfo.vue +68 -0
- package/components/atoms/table/simpleInfo/models/interfaces.ts +4 -0
- package/components/atoms/table/simpleTable/SimpleTable.vue +291 -0
- package/components/atoms/table/simpleTable/models/interfaces.ts +10 -0
- package/components/atoms/tabs/Tabs.vue +189 -0
- package/components/atoms/tabs/VerticalTabs.vue +81 -0
- package/components/atoms/tabs/models/interfaces.ts +4 -0
- package/components/atoms/tabs/models/types.ts +1 -0
- package/components/atoms/tooltip/Models/interfaces.ts +4 -0
- package/components/atoms/tooltip/Signpost.vue +224 -0
- package/components/atoms/tooltip/Text.vue +39 -0
- package/components/atoms/tooltip/Tooltip.vue +57 -0
- package/components/atoms/tooltip/TooltipError.vue +113 -0
- package/components/common/accordion/Accordion.vue +176 -0
- package/components/common/accordion/Recursion.vue +195 -0
- package/components/common/accordion/models/interfaces.ts +14 -0
- package/components/common/adapterManager/AdapterManager.vue +715 -0
- package/components/common/adapterManager/AddAdapterModal.vue +464 -0
- package/components/common/adapterManager/AddAdapterWarningModal.vue +82 -0
- package/components/common/adapterManager/NoActiveAdaptersModal.vue +62 -0
- package/components/common/adapterManager/NoConnectedActiveAdaptersModal.vue +62 -0
- package/components/common/adapterManager/config/index.ts +19 -0
- package/components/common/adapterManager/ui/NoSelectedAdapter.vue +39 -0
- package/components/common/adapterManager/ui/SecondTitle.vue +37 -0
- package/components/common/adapterManager/ui/actions/ActionsBar.vue +93 -0
- package/components/common/adapterManager/ui/actions/AddAdapterButton.vue +28 -0
- package/components/common/adapterManager/ui/actions/MoveDownAdapterButton.vue +33 -0
- package/components/common/adapterManager/ui/actions/MoveUpAdapterButton.vue +33 -0
- package/components/common/adapterManager/ui/actions/RemoveAdapterButton.vue +34 -0
- package/components/common/adapterManager/ui/actions/VerticalSeparator.vue +11 -0
- package/components/common/adapterManager/ui/table/Adapters.vue +91 -0
- package/components/common/adapterManager/ui/table/Header.vue +89 -0
- package/components/common/adapterManager/ui/table/Table.vue +167 -0
- package/components/common/addNetworking/AddNetworking.vue +982 -0
- package/components/common/addNetworking/Wizard.vue +286 -0
- package/components/common/addNetworking/config/addNetworkingSteps.ts +404 -0
- package/components/common/addNetworking/config/index.ts +46 -0
- package/components/common/addNetworking/config/initialData.ts +78 -0
- package/components/common/addNetworking/config/portPropertiesStep.ts +19 -0
- package/components/common/addNetworking/config/selectSwitch.ts +19 -0
- package/components/common/addNetworking/config/sendData.ts +87 -0
- package/components/common/addNetworking/config/temporaryData.ts +8 -0
- package/components/common/addNetworking/config/validation.ts +23 -0
- package/components/common/addNetworking/mappers/mappers.ts +166 -0
- package/components/common/addNetworking/modals/SelectNetwork.vue +149 -0
- package/components/common/addNetworking/modals/SelectStandardSwitch.vue +125 -0
- package/components/common/addNetworking/modals/SelectSwitch.vue +114 -0
- package/components/common/addNetworking/models/enums.ts +7 -0
- package/components/common/addNetworking/models/interfaces.ts +207 -0
- package/components/common/addNetworking/models/types.ts +5 -0
- package/components/common/addNetworking/steps/ConnectionSettings.vue +269 -0
- package/components/common/addNetworking/steps/CreateStandardSwitch.vue +91 -0
- package/components/common/addNetworking/steps/Header.vue +53 -0
- package/components/common/addNetworking/steps/IpFourSettings.vue +361 -0
- package/components/common/addNetworking/steps/PhysicalAdapter.vue +24 -0
- package/components/common/addNetworking/steps/PortProperties.vue +481 -0
- package/components/common/addNetworking/steps/ReadyComplete.vue +29 -0
- package/components/common/addNetworking/steps/SelectConnectionType.vue +106 -0
- package/components/common/addNetworking/steps/SelectedTargetDevice.vue +563 -0
- package/components/common/addNetworking/utils/index.ts +212 -0
- package/components/common/browse/Browse.vue +182 -0
- package/components/common/browse/blocks/Container.vue +102 -0
- package/components/common/browse/blocks/Title.vue +66 -0
- package/components/common/browse/blocks/contents/Files.vue +68 -0
- package/components/common/browse/blocks/info/Date.vue +21 -0
- package/components/common/browse/blocks/info/Size.vue +17 -0
- package/components/common/browse/blocks/info/Text.vue +17 -0
- package/components/common/browse/blocks/models/types.ts +1 -0
- package/components/common/browse/models/interfaces.ts +5 -0
- package/components/common/context/Context.spec.ts +20 -0
- package/components/common/context/Context.vue +97 -0
- package/components/common/context/ContextRecursion.spec.ts +55 -0
- package/components/common/context/ContextRecursion.vue +251 -0
- package/components/common/context/models/interfaces.ts +26 -0
- package/components/common/details/DetailsItem.vue +106 -0
- package/components/common/details/DetailsList.vue +23 -0
- package/components/common/details/model/interfaces.ts +9 -0
- package/components/common/diagramMain/Diagram.vue +186 -0
- package/components/common/diagramMain/DiagramMain.vue +979 -0
- package/components/common/diagramMain/Header.vue +160 -0
- package/components/common/diagramMain/Highlights.vue +102 -0
- package/components/common/diagramMain/adapter/Adapter.vue +105 -0
- package/components/common/diagramMain/adapter/AdapterItem.vue +227 -0
- package/components/common/diagramMain/adapter/AdapterItems.vue +57 -0
- package/components/common/diagramMain/adapter/Block.vue +41 -0
- package/components/common/diagramMain/adapter/Contents.vue +96 -0
- package/components/common/diagramMain/adapter/Lines.vue +52 -0
- package/components/common/diagramMain/adapter/SecondBlock.vue +42 -0
- package/components/common/diagramMain/config/index.ts +51 -0
- package/components/common/diagramMain/config/initial.ts +38 -0
- package/components/common/diagramMain/modals/ManagePhysicalAdaptersModal.vue +236 -0
- package/components/common/diagramMain/modals/MigrateVmkernelAdapter.vue +535 -0
- package/components/common/diagramMain/modals/config/adapterModal.ts +110 -0
- package/components/common/diagramMain/modals/config/diagramConfig.ts +17 -0
- package/components/common/diagramMain/modals/config/index.ts +57 -0
- package/components/common/diagramMain/modals/config/initial.ts +195 -0
- package/components/common/diagramMain/modals/config/migrateVmkernelAdapterSteps.ts +81 -0
- package/components/common/diagramMain/modals/config/networkModal.ts +337 -0
- package/components/common/diagramMain/modals/config/portModal.ts +201 -0
- package/components/common/diagramMain/modals/config/switchModal.ts +172 -0
- package/components/common/diagramMain/modals/config/vCenterModal.ts +30 -0
- package/components/common/diagramMain/modals/config/validation.ts +3 -0
- package/components/common/diagramMain/modals/config/vmKernelAdapter.ts +90 -0
- package/components/common/diagramMain/modals/editSettings/ConfirmTeamingSettingsModal.vue +41 -0
- package/components/common/diagramMain/modals/editSettings/EditSettings.vue +490 -0
- package/components/common/diagramMain/modals/editSettings/EditSettingsModal.vue +714 -0
- package/components/common/diagramMain/modals/editSettings/tabs/NetworkProperties.vue +211 -0
- package/components/common/diagramMain/modals/editSettings/tabs/Security.vue +178 -0
- package/components/common/diagramMain/modals/editSettings/tabs/SwitchProperties.vue +161 -0
- package/components/common/diagramMain/modals/editSettings/tabs/TeamingFailover.vue +165 -0
- package/components/common/diagramMain/modals/editSettings/tabs/TrafficShaping.vue +392 -0
- package/components/common/diagramMain/modals/editSettings/tabs/port/IpvFourSettings.vue +339 -0
- package/components/common/diagramMain/modals/editSettings/tabs/port/PortProperties.vue +202 -0
- package/components/common/diagramMain/modals/remove/RemoveModal.vue +226 -0
- package/components/common/diagramMain/modals/steps/ConnectionSettings.vue +206 -0
- package/components/common/diagramMain/modals/steps/SelectVmkernelAdapter.vue +221 -0
- package/components/common/diagramMain/modals/steps/VmkernelAdapterReadyComplete.vue +50 -0
- package/components/common/diagramMain/modals/utils/index.ts +9 -0
- package/components/common/diagramMain/modals/viewSettings/Info.vue +94 -0
- package/components/common/diagramMain/modals/viewSettings/ViewSettings.vue +171 -0
- package/components/common/diagramMain/modals/viewSettings/ViewSettingsModal.vue +93 -0
- package/components/common/diagramMain/models/enums.ts +27 -0
- package/components/common/diagramMain/models/interfaces.ts +586 -0
- package/components/common/diagramMain/models/types.ts +9 -0
- package/components/common/diagramMain/network/Block.vue +55 -0
- package/components/common/diagramMain/network/Contents.vue +238 -0
- package/components/common/diagramMain/network/Lines.vue +65 -0
- package/components/common/diagramMain/network/Network.vue +117 -0
- package/components/common/diagramMain/network/NoNetwork.vue +47 -0
- package/components/common/diagramMain/network/SecondBlock.vue +51 -0
- package/components/common/diagramMain/port/Port.vue +301 -0
- package/components/common/diagramMain/port/Ports.vue +41 -0
- package/components/common/diagramMain/switch/Switch.vue +71 -0
- package/components/common/diagramMain/switch/SwitchSelected.vue +29 -0
- package/components/common/diagramMain/utils/utils.ts +218 -0
- package/components/common/feedback/Buttons.vue +232 -0
- package/components/common/feedback/Feedback.vue +236 -0
- package/components/common/feedback/Message.vue +468 -0
- package/components/common/feedback/VisitPortal.vue +54 -0
- package/components/common/feedback/config/drawingPanel.ts +31 -0
- package/components/common/feedback/config/feedbackTabs.ts +24 -0
- package/components/common/feedback/models/interfaces.ts +15 -0
- package/components/common/graph/Graph.vue +107 -0
- package/components/common/graph/utils/renderGraph.ts +389 -0
- package/components/common/headline/Headline.vue +32 -0
- package/components/common/mainNavigationPanel/MainNavigationPanel.vue +343 -0
- package/components/common/mainNavigationPanel/models/interfaces.ts +6 -0
- package/components/common/mainNavigationPanel/models/types.ts +1 -0
- package/components/common/modals/Rename.vue +165 -0
- package/components/common/modals/config/defaultForm.ts +18 -0
- package/components/common/modals/config/renameLabelWidth.ts +3 -0
- package/components/common/modals/models/interfaces.ts +5 -0
- package/components/common/monitor/advanced/Advanced.vue +149 -0
- package/components/common/monitor/advanced/GraphView.vue +200 -0
- package/components/common/monitor/advanced/models/interfaces.ts +6 -0
- package/components/common/monitor/advanced/models/types.ts +1 -0
- package/components/common/monitor/advanced/table/Table.vue +90 -0
- package/components/common/monitor/advanced/table/config/performanceDatatable.ts +116 -0
- package/components/common/monitor/advanced/table/models/interfaces.ts +12 -0
- package/components/common/monitor/advanced/table/models/types.ts +10 -0
- package/components/common/monitor/advanced/tools/Tools.vue +281 -0
- package/components/common/monitor/advanced/tools/chartOptionsModal/ChartOptionsModal.vue +109 -0
- package/components/common/monitor/advanced/tools/chartOptionsModal/Notification.vue +33 -0
- package/components/common/monitor/advanced/tools/chartOptionsModal/actions/Actions.vue +79 -0
- package/components/common/monitor/advanced/tools/chartOptionsModal/actions/config/optionsActions.ts +13 -0
- package/components/common/monitor/advanced/tools/chartOptionsModal/actions/saveOptionsModal/SaveOptionsModal.vue +53 -0
- package/components/common/monitor/advanced/tools/chartOptionsModal/counters/Counters.vue +47 -0
- package/components/common/monitor/advanced/tools/chartOptionsModal/counters/table/Table.vue +104 -0
- package/components/common/monitor/advanced/tools/chartOptionsModal/counters/table/config/tableConfig.ts +73 -0
- package/components/common/monitor/advanced/tools/chartOptionsModal/counters/table/models/interfaces.ts +15 -0
- package/components/common/monitor/advanced/tools/chartOptionsModal/counters/table/models/types.ts +7 -0
- package/components/common/monitor/advanced/tools/chartOptionsModal/counters/timespan/Timespan.vue +18 -0
- package/components/common/monitor/advanced/tools/chartOptionsModal/counters/timespan/form/Form.vue +388 -0
- package/components/common/monitor/advanced/tools/chartOptionsModal/counters/timespan/form/config/dateForm.ts +59 -0
- package/components/common/monitor/advanced/tools/chartOptionsModal/counters/timespan/object/Object.vue +107 -0
- package/components/common/monitor/advanced/tools/chartOptionsModal/counters/timespan/object/config/objectTable.ts +54 -0
- package/components/common/monitor/advanced/tools/chartOptionsModal/counters/timespan/object/models/interfaces.ts +4 -0
- package/components/common/monitor/advanced/tools/chartOptionsModal/counters/timespan/object/models/types.ts +1 -0
- package/components/common/monitor/advanced/tools/chartOptionsModal/metrics/Metrics.vue +32 -0
- package/components/common/monitor/advanced/tools/chartOptionsModal/metrics/config/optionsMetrics.ts +104 -0
- package/components/common/monitor/advanced/tools/config/advancedToolbar.ts +73 -0
- package/components/common/monitor/advanced/tools/models/interfaces.ts +4 -0
- package/components/common/monitor/config/getValidDateByOption.ts +14 -0
- package/components/common/monitor/models/interfaces.ts +16 -0
- package/components/common/monitor/overview/Overview.vue +412 -0
- package/components/common/monitor/overview/filters/Filters.vue +210 -0
- package/components/common/monitor/overview/filters/config/filterOptions.ts +56 -0
- package/components/common/monitor/overview/filters/customIntervalModal/CustomIntervalModal.vue +220 -0
- package/components/common/monitor/overview/filters/customIntervalModal/config/dateChecker.ts +35 -0
- package/components/common/monitor/overview/filters/models/interfaces.ts +6 -0
- package/components/common/monitor/overview/filters/models/types.ts +3 -0
- package/components/common/perPage/PerPage.vue +51 -0
- package/components/common/recursionTree/RecursionTree.vue +201 -0
- package/components/common/recursionTree/models/interfaces.ts +19 -0
- package/components/common/resource/models/interfaces.ts +9 -0
- package/components/common/resource/models/types.ts +1 -0
- package/components/common/resource/progressBlock/ProgressBlock.vue +105 -0
- package/components/common/resource/simple/Simple.vue +58 -0
- package/components/common/resource/simple/models/enums.ts +5 -0
- package/components/common/resource/utils.ts +33 -0
- package/components/common/select/button/ButtonDropdown.vue +100 -0
- package/components/common/select/button/models/interfaces.ts +6 -0
- package/components/common/select/radio/RadioGroup.vue +71 -0
- package/components/common/select/radio/models/interfaces.ts +10 -0
- package/components/common/spiceConsole/Drawer.vue +233 -0
- package/components/common/spiceConsole/SpiceConsole.vue +87 -0
- package/components/common/spiceConsole/keyboard/Keyboard.vue +402 -0
- package/components/common/spiceConsole/keyboard/config/keyboardRows.ts +891 -0
- package/components/common/spiceConsole/keyboard/models/interfaces.ts +17 -0
- package/components/common/spiceConsole/models/types.ts +1 -0
- package/components/common/split/horizontal/Horizontal.vue +306 -0
- package/components/common/split/horizontal/models/interfaces.ts +5 -0
- package/components/common/split/vertical/Vertical.vue +213 -0
- package/components/common/split/vertical/models/interfaces.ts +3 -0
- package/components/common/tools/Actions.vue +141 -0
- package/components/common/tools/models/interfaces.ts +6 -0
- package/components/common/vm/actions/add/Add.vue +654 -0
- package/components/common/vm/actions/add/FolderTreeView.vue +83 -0
- package/components/common/vm/actions/add/config/capabilities.ts +670 -0
- package/components/common/vm/actions/add/customizeHardware/CustomizeHardware.vue +236 -0
- package/components/common/vm/actions/add/customizeHardware/config/navItems.ts +19 -0
- package/components/common/vm/actions/add/customizeHardware/models/interfaces.ts +7 -0
- package/components/common/vm/actions/add/customizeHardware/virtualHardware/VirtualHardware.vue +611 -0
- package/components/common/vm/actions/add/customizeHardware/virtualHardware/browseView/BrowseView.vue +203 -0
- package/components/common/vm/actions/add/customizeHardware/virtualHardware/browseView/models/interfaces.ts +8 -0
- package/components/common/vm/actions/add/customizeHardware/virtualHardware/bus/Bus.vue +86 -0
- package/components/common/vm/actions/add/customizeHardware/virtualHardware/bus/config/options.ts +13 -0
- package/components/common/vm/actions/add/customizeHardware/virtualHardware/cdDvdDrive/CdDvdDrive.vue +223 -0
- package/components/common/vm/actions/add/customizeHardware/virtualHardware/cdDvdDrive/config/fileTypes.ts +9 -0
- package/components/common/vm/actions/add/customizeHardware/virtualHardware/cdDvdDrive/config/options.ts +11 -0
- package/components/common/vm/actions/add/customizeHardware/virtualHardware/cdDvdDrive/media/Media.vue +55 -0
- package/components/common/vm/actions/add/customizeHardware/virtualHardware/cdDvdDrive/models/types.ts +1 -0
- package/components/common/vm/actions/add/customizeHardware/virtualHardware/config/binaryOptions.ts +12 -0
- package/components/common/vm/actions/add/customizeHardware/virtualHardware/config/dropdownItems.ts +52 -0
- package/components/common/vm/actions/add/customizeHardware/virtualHardware/cpu/CoresPerSocket.vue +97 -0
- package/components/common/vm/actions/add/customizeHardware/virtualHardware/cpu/Cpu.vue +368 -0
- package/components/common/vm/actions/add/customizeHardware/virtualHardware/cpu/CpuHotPlug.vue +49 -0
- package/components/common/vm/actions/add/customizeHardware/virtualHardware/cpu/CpuModel.vue +220 -0
- package/components/common/vm/actions/add/customizeHardware/virtualHardware/cpu/Hv.vue +93 -0
- package/components/common/vm/actions/add/customizeHardware/virtualHardware/cpu/Iommu.vue +52 -0
- package/components/common/vm/actions/add/customizeHardware/virtualHardware/cpu/MaxCpu.vue +99 -0
- package/components/common/vm/actions/add/customizeHardware/virtualHardware/cpu/Pc.vue +54 -0
- package/components/common/vm/actions/add/customizeHardware/virtualHardware/cpu/Sa.vue +102 -0
- package/components/common/vm/actions/add/customizeHardware/virtualHardware/cpu/config/cpuOptions.ts +19 -0
- package/components/common/vm/actions/add/customizeHardware/virtualHardware/cpu/shares/Shares.vue +151 -0
- package/components/common/vm/actions/add/customizeHardware/virtualHardware/cpu/shares/config/options.ts +28 -0
- package/components/common/vm/actions/add/customizeHardware/virtualHardware/cpu/tooltip/Tooltip.vue +58 -0
- package/components/common/vm/actions/add/customizeHardware/virtualHardware/limit/Limit.vue +210 -0
- package/components/common/vm/actions/add/customizeHardware/virtualHardware/limit/config/options.ts +28 -0
- package/components/common/vm/actions/add/customizeHardware/virtualHardware/memory/Memory.vue +278 -0
- package/components/common/vm/actions/add/customizeHardware/virtualHardware/memory/MemoryHotPlug.vue +53 -0
- package/components/common/vm/actions/add/customizeHardware/virtualHardware/memory/config/memoryOptions.ts +23 -0
- package/components/common/vm/actions/add/customizeHardware/virtualHardware/models/interfaces.ts +125 -0
- package/components/common/vm/actions/add/customizeHardware/virtualHardware/models/types.ts +4 -0
- package/components/common/vm/actions/add/customizeHardware/virtualHardware/newHardDisk/DiskFile.vue +24 -0
- package/components/common/vm/actions/add/customizeHardware/virtualHardware/newHardDisk/Location.vue +171 -0
- package/components/common/vm/actions/add/customizeHardware/virtualHardware/newHardDisk/MaximumSize.vue +27 -0
- package/components/common/vm/actions/add/customizeHardware/virtualHardware/newHardDisk/NewHardDisk.vue +447 -0
- package/components/common/vm/actions/add/customizeHardware/virtualHardware/newHardDisk/cache/Cache.vue +80 -0
- package/components/common/vm/actions/add/customizeHardware/virtualHardware/newHardDisk/cache/config/options.ts +7 -0
- package/components/common/vm/actions/add/customizeHardware/virtualHardware/newHardDisk/limitIops/LimitIops.vue +147 -0
- package/components/common/vm/actions/add/customizeHardware/virtualHardware/newHardDisk/limitIops/config/options.ts +28 -0
- package/components/common/vm/actions/add/customizeHardware/virtualHardware/newHardDisk/mode/Mode.vue +87 -0
- package/components/common/vm/actions/add/customizeHardware/virtualHardware/newHardDisk/mode/config/options.ts +18 -0
- package/components/common/vm/actions/add/customizeHardware/virtualHardware/newHardDisk/provisioning/Provisioning.vue +87 -0
- package/components/common/vm/actions/add/customizeHardware/virtualHardware/newHardDisk/provisioning/config/options.ts +15 -0
- package/components/common/vm/actions/add/customizeHardware/virtualHardware/newHardDisk/sharing/Sharing.vue +85 -0
- package/components/common/vm/actions/add/customizeHardware/virtualHardware/newHardDisk/sharing/config/options.ts +12 -0
- package/components/common/vm/actions/add/customizeHardware/virtualHardware/newNetwork/Location.vue +141 -0
- package/components/common/vm/actions/add/customizeHardware/virtualHardware/newNetwork/NewNetwork.vue +252 -0
- package/components/common/vm/actions/add/customizeHardware/virtualHardware/newNetwork/adapterType/AdapterType.vue +86 -0
- package/components/common/vm/actions/add/customizeHardware/virtualHardware/newNetwork/adapterType/config/options.ts +9 -0
- package/components/common/vm/actions/add/customizeHardware/virtualHardware/newNetwork/macAddress/MacAddress.vue +140 -0
- package/components/common/vm/actions/add/customizeHardware/virtualHardware/newNetwork/macAddress/config/options.ts +11 -0
- package/components/common/vm/actions/add/customizeHardware/virtualHardware/newPciDevice/NewPciDevice.vue +157 -0
- package/components/common/vm/actions/add/customizeHardware/virtualHardware/newPciDevice/config/options.ts +7 -0
- package/components/common/vm/actions/add/customizeHardware/virtualHardware/newPciDevice/directPathIo/DirectPathIo.vue +44 -0
- package/components/common/vm/actions/add/customizeHardware/virtualHardware/newPciDevice/dynamicDirectPathIo/DynamicDirectPathIo.vue +49 -0
- package/components/common/vm/actions/add/customizeHardware/virtualHardware/newPciDevice/dynamicDirectPathIo/config/options.ts +10 -0
- package/components/common/vm/actions/add/customizeHardware/virtualHardware/newPciDevice/note/Note.vue +27 -0
- package/components/common/vm/actions/add/customizeHardware/virtualHardware/newPciDevice/nvidiaGrid/NvidiaGrid.vue +41 -0
- package/components/common/vm/actions/add/customizeHardware/virtualHardware/newPciDevice/typeSelection/TypeSelection.vue +56 -0
- package/components/common/vm/actions/add/customizeHardware/virtualHardware/newUsbController/NewUsbController.vue +65 -0
- package/components/common/vm/actions/add/customizeHardware/virtualHardware/newUsbController/config/options.ts +6 -0
- package/components/common/vm/actions/add/customizeHardware/virtualHardware/other/InputDevices.vue +21 -0
- package/components/common/vm/actions/add/customizeHardware/virtualHardware/other/Other.vue +27 -0
- package/components/common/vm/actions/add/customizeHardware/virtualHardware/reservation/Reservation.vue +228 -0
- package/components/common/vm/actions/add/customizeHardware/virtualHardware/reservation/config/options.ts +33 -0
- package/components/common/vm/actions/add/customizeHardware/virtualHardware/videoCard/Graphics.vue +45 -0
- package/components/common/vm/actions/add/customizeHardware/virtualHardware/videoCard/TotalVideoMemory.vue +120 -0
- package/components/common/vm/actions/add/customizeHardware/virtualHardware/videoCard/VideoCard.vue +169 -0
- package/components/common/vm/actions/add/customizeHardware/virtualHardware/videoCard/config/options.ts +11 -0
- package/components/common/vm/actions/add/customizeHardware/virtualHardware/videoCard/model/Model.vue +57 -0
- package/components/common/vm/actions/add/customizeHardware/virtualHardware/videoCard/model/config/options.ts +10 -0
- package/components/common/vm/actions/add/customizeHardware/virtualHardware/videoCard/numberDisplays/NumberDisplays.vue +82 -0
- package/components/common/vm/actions/add/customizeHardware/virtualHardware/videoCard/numberDisplays/config/options.ts +14 -0
- package/components/common/vm/actions/add/customizeHardware/vmoptions/Vmoptions.vue +141 -0
- package/components/common/vm/actions/add/customizeHardware/vmoptions/bootOptions/BootOptions.vue +110 -0
- package/components/common/vm/actions/add/customizeHardware/vmoptions/bootOptions/Menu.vue +45 -0
- package/components/common/vm/actions/add/customizeHardware/vmoptions/bootOptions/Secure.vue +45 -0
- package/components/common/vm/actions/add/customizeHardware/vmoptions/bootOptions/delay/Delay.vue +50 -0
- package/components/common/vm/actions/add/customizeHardware/vmoptions/bootOptions/delay/config/config.ts +14 -0
- package/components/common/vm/actions/add/customizeHardware/vmoptions/bootOptions/firmware/Firmware.vue +83 -0
- package/components/common/vm/actions/add/customizeHardware/vmoptions/bootOptions/firmware/config/config.ts +11 -0
- package/components/common/vm/actions/add/customizeHardware/vmoptions/bootOptions/order/Order.vue +195 -0
- package/components/common/vm/actions/add/customizeHardware/vmoptions/bootOptions/order/models/interfaces.ts +8 -0
- package/components/common/vm/actions/add/customizeHardware/vmoptions/generalOptions/GeneralOptions.vue +114 -0
- package/components/common/vm/actions/add/customizeHardware/vmoptions/models/interfaces.ts +34 -0
- package/components/common/vm/actions/add/customizeHardware/vmoptions/remoteConsoleOptions/CopyPaste.vue +45 -0
- package/components/common/vm/actions/add/customizeHardware/vmoptions/remoteConsoleOptions/FileTransfer.vue +49 -0
- package/components/common/vm/actions/add/customizeHardware/vmoptions/remoteConsoleOptions/FolderSharing.vue +50 -0
- package/components/common/vm/actions/add/customizeHardware/vmoptions/remoteConsoleOptions/PlaybackCompression.vue +49 -0
- package/components/common/vm/actions/add/customizeHardware/vmoptions/remoteConsoleOptions/PowerControl.vue +49 -0
- package/components/common/vm/actions/add/customizeHardware/vmoptions/remoteConsoleOptions/RemoteConsoleOptions.vue +226 -0
- package/components/common/vm/actions/add/customizeHardware/vmoptions/remoteConsoleOptions/imgCompression/ImgCompression.vue +82 -0
- package/components/common/vm/actions/add/customizeHardware/vmoptions/remoteConsoleOptions/imgCompression/config/config.ts +14 -0
- package/components/common/vm/actions/add/customizeHardware/vmoptions/remoteConsoleOptions/jpegCompression/JpegCompression.vue +82 -0
- package/components/common/vm/actions/add/customizeHardware/vmoptions/remoteConsoleOptions/jpegCompression/config/config.ts +12 -0
- package/components/common/vm/actions/add/customizeHardware/vmoptions/remoteConsoleOptions/keymap/Keymap.vue +50 -0
- package/components/common/vm/actions/add/customizeHardware/vmoptions/remoteConsoleOptions/keymap/config/config.ts +6 -0
- package/components/common/vm/actions/add/customizeHardware/vmoptions/remoteConsoleOptions/mouseMode/MouseMode.vue +52 -0
- package/components/common/vm/actions/add/customizeHardware/vmoptions/remoteConsoleOptions/mouseMode/config/config.ts +11 -0
- package/components/common/vm/actions/add/customizeHardware/vmoptions/remoteConsoleOptions/password/Password.vue +134 -0
- package/components/common/vm/actions/add/customizeHardware/vmoptions/remoteConsoleOptions/password/models/interfaces.ts +5 -0
- package/components/common/vm/actions/add/customizeHardware/vmoptions/remoteConsoleOptions/password/utils.ts +12 -0
- package/components/common/vm/actions/add/customizeHardware/vmoptions/remoteConsoleOptions/sharePolicy/SharePolicy.vue +52 -0
- package/components/common/vm/actions/add/customizeHardware/vmoptions/remoteConsoleOptions/sharePolicy/config/config.ts +11 -0
- package/components/common/vm/actions/add/customizeHardware/vmoptions/remoteConsoleOptions/streamingMode/StreamingMode.vue +82 -0
- package/components/common/vm/actions/add/customizeHardware/vmoptions/remoteConsoleOptions/streamingMode/config/config.ts +12 -0
- package/components/common/vm/actions/add/customizeHardware/vmoptions/remoteConsoleOptions/type/Type.vue +82 -0
- package/components/common/vm/actions/add/customizeHardware/vmoptions/remoteConsoleOptions/type/config/config.ts +7 -0
- package/components/common/vm/actions/add/customizeHardware/vmoptions/remoteConsoleOptions/usbRedirection/UsbRedirection.vue +56 -0
- package/components/common/vm/actions/add/customizeHardware/vmoptions/remoteConsoleOptions/usbRedirection/config/config.ts +14 -0
- package/components/common/vm/actions/add/customizeHardware/vmoptions/remoteConsoleOptions/zlibCompression/ZlibCompression.vue +82 -0
- package/components/common/vm/actions/add/customizeHardware/vmoptions/remoteConsoleOptions/zlibCompression/config/config.ts +12 -0
- package/components/common/vm/actions/add/customizeHardware/vmoptions/tools/Tools.vue +63 -0
- package/components/common/vm/actions/add/models/enums.ts +89 -0
- package/components/common/vm/actions/add/models/interfaces.ts +125 -0
- package/components/common/vm/actions/add/models/types.ts +63 -0
- package/components/common/vm/actions/add/readyToComplete/ReadyToComplete.vue +15 -0
- package/components/common/vm/actions/add/select/compatibility/Compatibility.vue +151 -0
- package/components/common/vm/actions/add/select/computeResource/ComputeResource.spec.ts +479 -0
- package/components/common/vm/actions/add/select/computeResource/ComputeResource.vue +158 -0
- package/components/common/vm/actions/add/select/computeResource/TreeView.vue +126 -0
- package/components/common/vm/actions/add/select/createType/CreateType.vue +61 -0
- package/components/common/vm/actions/add/select/createType/config/items.ts +26 -0
- package/components/common/vm/actions/add/select/models/interfaces.ts +32 -0
- package/components/common/vm/actions/add/select/models/types.ts +44 -0
- package/components/common/vm/actions/add/select/name/Name.vue +163 -0
- package/components/common/vm/actions/add/select/os/os.vue +221 -0
- package/components/common/vm/actions/add/select/storage/Storage.vue +176 -0
- package/components/common/vm/actions/add/select/storage/config/config.ts +148 -0
- package/components/common/vm/actions/add/select/storage/models/types.ts +15 -0
- package/components/common/vm/actions/add/utils.ts +118 -0
- package/components/common/vm/actions/editSettings/EditSettings.vue +312 -0
- package/components/common/vm/actions/editSettings/models/types.ts +23 -0
- package/components/common/vm/actions/editSettings/utils.ts +48 -0
- package/components/common/vm/actions/models/interfaces.ts +6 -0
- package/components/common/vm/actions/models/types.ts +11 -0
- package/components/common/vm/actions/utils.ts +221 -0
- package/components/common/wizards/datastore/add/Add.vue +382 -0
- package/components/common/wizards/datastore/add/config/stepItems.ts +160 -0
- package/components/common/wizards/datastore/add/local/Local.vue +67 -0
- package/components/common/wizards/datastore/add/local/createName/CreateName.vue +159 -0
- package/components/common/wizards/datastore/add/local/createName/config/defaultForm.ts +15 -0
- package/components/common/wizards/datastore/add/models/interfaces.ts +35 -0
- package/components/common/wizards/datastore/add/models/types.ts +14 -0
- package/components/common/wizards/datastore/add/nfs/Nfs.vue +91 -0
- package/components/common/wizards/datastore/add/nfs/accessibility/Accessibility.vue +95 -0
- package/components/common/wizards/datastore/add/nfs/accessibility/config/tabsPannel.ts +24 -0
- package/components/common/wizards/datastore/add/nfs/accessibility/models/interfaces.ts +9 -0
- package/components/common/wizards/datastore/add/nfs/accessibility/models/types.ts +5 -0
- package/components/common/wizards/datastore/add/nfs/accessibility/tablesView/TablesView.vue +141 -0
- package/components/common/wizards/datastore/add/nfs/accessibility/tablesView/config/compatibleTable.ts +54 -0
- package/components/common/wizards/datastore/add/nfs/accessibility/tablesView/config/hostsTableItems.ts +75 -0
- package/components/common/wizards/datastore/add/nfs/accessibility/tablesView/config/incompatibleTable.ts +68 -0
- package/components/common/wizards/datastore/add/nfs/accessibility/tablesView/config/tableKeys.ts +15 -0
- package/components/common/wizards/datastore/add/nfs/configuration/Configuration.vue +373 -0
- package/components/common/wizards/datastore/add/nfs/configuration/config/defaultForm.ts +33 -0
- package/components/common/wizards/datastore/add/nfs/configuration/models/interfaces.ts +12 -0
- package/components/common/wizards/datastore/add/nfs/configuration/serversList/DeletePopover.vue +97 -0
- package/components/common/wizards/datastore/add/nfs/configuration/serversList/ServersList.vue +123 -0
- package/components/common/wizards/datastore/add/nfs/configuration/serversList/config/serversListConfig.ts +41 -0
- package/components/common/wizards/datastore/add/nfs/configuration/serversList/config/tableKeys.ts +3 -0
- package/components/common/wizards/datastore/add/nfs/configuration/serversList/models/interfaces.ts +11 -0
- package/components/common/wizards/datastore/add/nfs/configuration/serversList/models/types.ts +1 -0
- package/components/common/wizards/datastore/add/nfs/kerberosAuthentication/KerberosAuthentication.vue +54 -0
- package/components/common/wizards/datastore/add/nfs/kerberosAuthentication/config/radioOptions.ts +24 -0
- package/components/common/wizards/datastore/add/nfs/version/Version.vue +70 -0
- package/components/common/wizards/datastore/add/nfs/version/config/versionOptions.ts +20 -0
- package/components/common/wizards/datastore/add/readyComplete/ReadyComplete.vue +77 -0
- package/components/common/wizards/datastore/add/readyComplete/config/propertiesDetails.ts +165 -0
- package/components/common/wizards/datastore/add/readyComplete/models/interfaces.ts +4 -0
- package/components/common/wizards/datastore/add/sharedStorm/SharedStorm.vue +85 -0
- package/components/common/wizards/datastore/add/sharedStorm/deviceSelection/DeviceSelection.vue +447 -0
- package/components/common/wizards/datastore/add/sharedStorm/deviceSelection/config/defaultForm.ts +18 -0
- package/components/common/wizards/datastore/add/sharedStorm/deviceSelection/config/selectOptions.ts +14 -0
- package/components/common/wizards/datastore/add/sharedStorm/deviceSelection/hostTable/HostTable.vue +131 -0
- package/components/common/wizards/datastore/add/sharedStorm/deviceSelection/hostTable/config/hostsTable.ts +87 -0
- package/components/common/wizards/datastore/add/sharedStorm/deviceSelection/hostTable/config/tableKeys.ts +11 -0
- package/components/common/wizards/datastore/add/sharedStorm/deviceSelection/models/interfaces.ts +55 -0
- package/components/common/wizards/datastore/add/sharedStorm/deviceSelection/models/types.ts +14 -0
- package/components/common/wizards/datastore/add/sharedStorm/partitionConfiguration/PartitionConfiguration.vue +230 -0
- package/components/common/wizards/datastore/add/sharedStorm/partitionConfiguration/config/selectOptions.ts +46 -0
- package/components/common/wizards/datastore/add/sharedStorm/partitionConfiguration/graphicTooltip/graphicTooltip.vue +64 -0
- package/components/common/wizards/datastore/add/sharedStorm/partitionConfiguration/sizeGraphic/sizeGraphic.vue +225 -0
- package/components/common/wizards/datastore/add/sharedStorm/version/Version.vue +70 -0
- package/components/common/wizards/datastore/add/sharedStorm/version/config/versionOptions.ts +19 -0
- package/components/common/wizards/datastore/add/types/Types.vue +79 -0
- package/components/common/wizards/datastore/add/types/config/typeOptions.ts +31 -0
- package/components/common/wizards/datastore/add/utils.ts +69 -0
- package/components/models/interfaces.ts +14 -0
- package/composables/deepCopy.ts +21 -0
- package/composables/useDiff.ts +15 -0
- package/composables/useLocal.ts +36 -0
- package/composables/useLocalStorage.ts +45 -0
- package/composables/useThrottle.ts +32 -0
- package/composables/useUniqueId.ts +5 -0
- package/config/regExp.ts +13 -0
- package/eslint/index.js +15 -0
- package/eslint/no-import-type.js +17 -0
- package/eslint/no-invalid-type-prefix.js +32 -0
- package/minify.js +51 -0
- package/models/composables/useMyFetch/interfaces.ts +4 -0
- package/models/composables/useMyFetch/types.ts +1 -0
- package/models/enums.ts +21 -0
- package/models/interfaces.ts +29 -0
- package/models/plugins/date/interfaces.ts +5 -0
- package/models/plugins/date/types.ts +1 -0
- package/models/plugins/validation/interfaces.ts +21 -0
- package/models/plugins/validation/types.ts +1 -0
- package/models/store/host/interfaces.ts +38 -0
- package/models/store/interfaces.ts +47 -0
- package/models/store/network/interfaces.ts +13 -0
- package/models/store/storage/interfaces.ts +32 -0
- package/models/store/vm/interfaces.ts +87 -0
- package/models/types.ts +6 -0
- package/nuxt.config.ts +8 -0
- package/package.json +39 -0
- package/plugins/binary.ts +122 -0
- package/plugins/date.ts +179 -0
- package/plugins/recursion.ts +199 -0
- package/plugins/spice-console/spice.console.ts +128 -0
- package/plugins/text.ts +48 -0
- package/plugins/validation.ts +172 -0
- package/public/favicon.ico +0 -0
- package/public/spice-console/application/WorkerProcess.js +3350 -0
- package/public/spice-console/application/WorkerProcess_back.js +3144 -0
- package/public/spice-console/application/WorkerProcess_meta.js +3103 -0
- package/public/spice-console/application/WorkerProcess_reverse.js +3214 -0
- package/public/spice-console/application/agent.js +175 -0
- package/public/spice-console/application/application.js +641 -0
- package/public/spice-console/application/checkActivity.js +50 -0
- package/public/spice-console/application/clientgui.js +842 -0
- package/public/spice-console/application/clipboard/clipboarddataparser.js +92 -0
- package/public/spice-console/application/clipboard/local/localClipboard.js +110 -0
- package/public/spice-console/application/clipboard.js +82 -0
- package/public/spice-console/application/codec.js +257 -0
- package/public/spice-console/application/imagecache.js +81 -0
- package/public/spice-console/application/inputmanager.js +270 -0
- package/public/spice-console/application/packetfactory.js +202 -0
- package/public/spice-console/application/packetfilter.js +103 -0
- package/public/spice-console/application/packetprocess.js +75 -0
- package/public/spice-console/application/rasteroperation.js +118 -0
- package/public/spice-console/application/spiceconnection.js +197 -0
- package/public/spice-console/application/stream.js +67 -0
- package/public/spice-console/application/virtualmouse.js +109 -0
- package/public/spice-console/keymaps/keyevent.js +36 -0
- package/public/spice-console/keymaps/keymap.js +229 -0
- package/public/spice-console/keymaps/keymapes.js +375 -0
- package/public/spice-console/keymaps/keymapesObj.js +317 -0
- package/public/spice-console/keymaps/keymapus.js +317 -0
- package/public/spice-console/keymaps/scanCodeObjModifier.js +65 -0
- package/public/spice-console/keymaps/scanCodeObjProvider.js +60 -0
- package/public/spice-console/lib/AsyncConsumer.js +204 -0
- package/public/spice-console/lib/AsyncWorker.js +60 -0
- package/public/spice-console/lib/CollisionDetector.js +27 -0
- package/public/spice-console/lib/DataLogger.js +197 -0
- package/public/spice-console/lib/GenericObjectPool.js +152 -0
- package/public/spice-console/lib/GlobalPool.js +114 -0
- package/public/spice-console/lib/ImageUncompressor.js +138 -0
- package/public/spice-console/lib/IntegrationBenchmark.js +64 -0
- package/public/spice-console/lib/PacketWorkerIdentifier.js +107 -0
- package/public/spice-console/lib/SyncAsyncHandler.js +46 -0
- package/public/spice-console/lib/base64.js +298 -0
- package/public/spice-console/lib/biginteger.js +1640 -0
- package/public/spice-console/lib/bowser.js +276 -0
- package/public/spice-console/lib/decoder/dixie.js +7930 -0
- package/public/spice-console/lib/decoder/jmuxer.js +2815 -0
- package/public/spice-console/lib/displayRouter.js +83 -0
- package/public/spice-console/lib/encrypt.js +191 -0
- package/public/spice-console/lib/flipper.js +39 -0
- package/public/spice-console/lib/graphic.js +1230 -0
- package/public/spice-console/lib/graphicdebug.js +223 -0
- package/public/spice-console/lib/images/bitmap.js +194 -0
- package/public/spice-console/lib/images/jsquic_family.js +84 -0
- package/public/spice-console/lib/images/jsquic_rgba.js +343 -0
- package/public/spice-console/lib/images/jsquic_uncompress.js +530 -0
- package/public/spice-console/lib/images/lz.js +717 -0
- package/public/spice-console/lib/images/png.js +275 -0
- package/public/spice-console/lib/jgestures.min.js +44 -0
- package/public/spice-console/lib/jquery-2.0.3.js +8829 -0
- package/public/spice-console/lib/jquery-mousewheel.js +84 -0
- package/public/spice-console/lib/jquery-visibility.min.js +2 -0
- package/public/spice-console/lib/jsbn.js +578 -0
- package/public/spice-console/lib/jsbn2.js +675 -0
- package/public/spice-console/lib/lodash.4.0.0.min.js +136 -0
- package/public/spice-console/lib/modernizr.js +39 -0
- package/public/spice-console/lib/pixastic.js +3244 -0
- package/public/spice-console/lib/prettyprint.js +794 -0
- package/public/spice-console/lib/prng4.js +64 -0
- package/public/spice-console/lib/queue.js +259 -0
- package/public/spice-console/lib/rasterEngine.js +907 -0
- package/public/spice-console/lib/rng.js +87 -0
- package/public/spice-console/lib/runqueue.js +103 -0
- package/public/spice-console/lib/sha1.js +124 -0
- package/public/spice-console/lib/stuckkeyshandler.js +122 -0
- package/public/spice-console/lib/timelapsedetector.js +62 -0
- package/public/spice-console/lib/utils.js +327 -0
- package/public/spice-console/lib/virtualjoystick.js +370 -0
- package/public/spice-console/network/busconnection.js +195 -0
- package/public/spice-console/network/clusternodechooser.js +49 -0
- package/public/spice-console/network/connectioncontrol.js +60 -0
- package/public/spice-console/network/packetcontroller.js +62 -0
- package/public/spice-console/network/packetextractor.js +73 -0
- package/public/spice-console/network/packetlinkfactory.js +64 -0
- package/public/spice-console/network/packetreassembler.js +77 -0
- package/public/spice-console/network/reassemblerfactory.js +39 -0
- package/public/spice-console/network/sizedefiner.js +86 -0
- package/public/spice-console/network/socket.js +120 -0
- package/public/spice-console/network/socketqueue.js +95 -0
- package/public/spice-console/network/spicechannel.js +310 -0
- package/public/spice-console/network/websocketwrapper.js +75 -0
- package/public/spice-console/process/busprocess.js +309 -0
- package/public/spice-console/process/cursorprocess.js +110 -0
- package/public/spice-console/process/displaypreprocess.js +152 -0
- package/public/spice-console/process/displayprocess.js +210 -0
- package/public/spice-console/process/inputprocess.js +204 -0
- package/public/spice-console/process/mainprocess.js +78 -0
- package/public/spice-console/process/playbackprocess.js +233 -0
- package/public/spice-console/resources/magnifier.png +0 -0
- package/public/spice-console/resources/mouse.png +0 -0
- package/public/spice-console/resources/mouse_cursor.gif +0 -0
- package/public/spice-console/resources/mouse_cursor.png +0 -0
- package/public/spice-console/run.js +181 -0
- package/public/spice-console/spiceobjects/generated/protocol.js +537 -0
- package/public/spice-console/spiceobjects/spiceobjects.js +3474 -0
- package/public/spice-console/swcanvas/swcanvas.js +82 -0
- package/public/spice-console/tools/generate.php +269 -0
- package/public/spice-console/tools/generateKeyboardLayout.php +63 -0
- package/public/spice-console/tools/generateSpiceObject.php +81 -0
- package/public/spice-console-minify/application/WorkerProcess.min.js +1 -0
- package/public/spice-console-minify/application/WorkerProcess_back.min.js +1 -0
- package/public/spice-console-minify/application/WorkerProcess_meta.min.js +1 -0
- package/public/spice-console-minify/application/WorkerProcess_reverse.min.js +1 -0
- package/public/spice-console-minify/application/agent.min.js +1 -0
- package/public/spice-console-minify/application/application.min.js +1 -0
- package/public/spice-console-minify/application/checkActivity.min.js +1 -0
- package/public/spice-console-minify/application/clientgui.min.js +1 -0
- package/public/spice-console-minify/application/clipboard/clipboarddataparser.min.js +1 -0
- package/public/spice-console-minify/application/clipboard/local/localClipboard.min.js +1 -0
- package/public/spice-console-minify/application/clipboard.min.js +1 -0
- package/public/spice-console-minify/application/codec.min.js +1 -0
- package/public/spice-console-minify/application/imagecache.min.js +1 -0
- package/public/spice-console-minify/application/inputmanager.min.js +1 -0
- package/public/spice-console-minify/application/packetfactory.min.js +1 -0
- package/public/spice-console-minify/application/packetfilter.min.js +1 -0
- package/public/spice-console-minify/application/packetprocess.min.js +1 -0
- package/public/spice-console-minify/application/rasteroperation.min.js +1 -0
- package/public/spice-console-minify/application/spiceconnection.min.js +1 -0
- package/public/spice-console-minify/application/stream.min.js +1 -0
- package/public/spice-console-minify/application/virtualmouse.min.js +1 -0
- package/public/spice-console-minify/keymaps/keyevent.min.js +1 -0
- package/public/spice-console-minify/keymaps/keymap.min.js +1 -0
- package/public/spice-console-minify/keymaps/keymapes.min.js +1 -0
- package/public/spice-console-minify/keymaps/keymapesObj.min.js +1 -0
- package/public/spice-console-minify/keymaps/keymapus.min.js +1 -0
- package/public/spice-console-minify/keymaps/scanCodeObjModifier.min.js +1 -0
- package/public/spice-console-minify/keymaps/scanCodeObjProvider.min.js +1 -0
- package/public/spice-console-minify/lib/AsyncConsumer.min.js +1 -0
- package/public/spice-console-minify/lib/AsyncWorker.min.js +1 -0
- package/public/spice-console-minify/lib/CollisionDetector.min.js +1 -0
- package/public/spice-console-minify/lib/DataLogger.min.js +1 -0
- package/public/spice-console-minify/lib/GenericObjectPool.min.js +1 -0
- package/public/spice-console-minify/lib/GlobalPool.min.js +1 -0
- package/public/spice-console-minify/lib/ImageUncompressor.min.js +1 -0
- package/public/spice-console-minify/lib/IntegrationBenchmark.min.js +1 -0
- package/public/spice-console-minify/lib/PacketWorkerIdentifier.min.js +1 -0
- package/public/spice-console-minify/lib/SyncAsyncHandler.min.js +1 -0
- package/public/spice-console-minify/lib/base64.min.js +1 -0
- package/public/spice-console-minify/lib/biginteger.min.js +1 -0
- package/public/spice-console-minify/lib/bowser.min.js +1 -0
- package/public/spice-console-minify/lib/decoder/dixie.min.js +5 -0
- package/public/spice-console-minify/lib/decoder/jmuxer.min.js +1 -0
- package/public/spice-console-minify/lib/displayRouter.min.js +1 -0
- package/public/spice-console-minify/lib/encrypt.min.js +1 -0
- package/public/spice-console-minify/lib/flipper.min.js +1 -0
- package/public/spice-console-minify/lib/graphic.min.js +1 -0
- package/public/spice-console-minify/lib/graphicdebug.min.js +1 -0
- package/public/spice-console-minify/lib/images/bitmap.min.js +1 -0
- package/public/spice-console-minify/lib/images/jsquic_family.min.js +1 -0
- package/public/spice-console-minify/lib/images/jsquic_rgba.min.js +1 -0
- package/public/spice-console-minify/lib/images/jsquic_uncompress.min.js +1 -0
- package/public/spice-console-minify/lib/images/lz.min.js +1 -0
- package/public/spice-console-minify/lib/images/png.min.js +1 -0
- package/public/spice-console-minify/lib/jgestures.min.js +25 -0
- package/public/spice-console-minify/lib/jquery-2.0.3.min.js +25 -0
- package/public/spice-console-minify/lib/jquery-mousewheel.min.js +12 -0
- package/public/spice-console-minify/lib/jquery-visibility.min.js +2 -0
- package/public/spice-console-minify/lib/jsbn.min.js +1 -0
- package/public/spice-console-minify/lib/jsbn2.min.js +1 -0
- package/public/spice-console-minify/lib/lodash.4.0.0.min.js +6 -0
- package/public/spice-console-minify/lib/modernizr.min.js +1 -0
- package/public/spice-console-minify/lib/pixastic.min.js +1 -0
- package/public/spice-console-minify/lib/prettyprint.min.js +1 -0
- package/public/spice-console-minify/lib/prng4.min.js +1 -0
- package/public/spice-console-minify/lib/queue.min.js +1 -0
- package/public/spice-console-minify/lib/rasterEngine.min.js +1 -0
- package/public/spice-console-minify/lib/rng.min.js +1 -0
- package/public/spice-console-minify/lib/runqueue.min.js +1 -0
- package/public/spice-console-minify/lib/sha1.min.js +1 -0
- package/public/spice-console-minify/lib/stuckkeyshandler.min.js +1 -0
- package/public/spice-console-minify/lib/timelapsedetector.min.js +1 -0
- package/public/spice-console-minify/lib/utils.min.js +1 -0
- package/public/spice-console-minify/lib/virtualjoystick.min.js +1 -0
- package/public/spice-console-minify/network/busconnection.min.js +1 -0
- package/public/spice-console-minify/network/clusternodechooser.min.js +1 -0
- package/public/spice-console-minify/network/connectioncontrol.min.js +1 -0
- package/public/spice-console-minify/network/packetcontroller.min.js +1 -0
- package/public/spice-console-minify/network/packetextractor.min.js +1 -0
- package/public/spice-console-minify/network/packetlinkfactory.min.js +1 -0
- package/public/spice-console-minify/network/packetreassembler.min.js +1 -0
- package/public/spice-console-minify/network/reassemblerfactory.min.js +1 -0
- package/public/spice-console-minify/network/sizedefiner.min.js +1 -0
- package/public/spice-console-minify/network/socket.min.js +1 -0
- package/public/spice-console-minify/network/socketqueue.min.js +1 -0
- package/public/spice-console-minify/network/spicechannel.min.js +1 -0
- package/public/spice-console-minify/network/websocketwrapper.min.js +1 -0
- package/public/spice-console-minify/process/busprocess.min.js +1 -0
- package/public/spice-console-minify/process/cursorprocess.min.js +1 -0
- package/public/spice-console-minify/process/displaypreprocess.min.js +1 -0
- package/public/spice-console-minify/process/displayprocess.min.js +1 -0
- package/public/spice-console-minify/process/inputprocess.min.js +1 -0
- package/public/spice-console-minify/process/mainprocess.min.js +1 -0
- package/public/spice-console-minify/process/playbackprocess.min.js +1 -0
- package/public/spice-console-minify/run.min.js +1 -0
- package/public/spice-console-minify/spiceobjects/generated/protocol.min.js +1 -0
- package/public/spice-console-minify/spiceobjects/spiceobjects.min.js +1 -0
- package/public/spice-console-minify/swcanvas/swcanvas.min.js +1 -0
- package/tsconfig.json +4 -0
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
/*
|
|
2
|
+
Copyright (c) 2016 eyeOS
|
|
3
|
+
|
|
4
|
+
This file is part of Open365.
|
|
5
|
+
|
|
6
|
+
Open365 is free software: you can redistribute it and/or modify
|
|
7
|
+
it under the terms of the GNU Affero General Public License as
|
|
8
|
+
published by the Free Software Foundation, either version 3 of the
|
|
9
|
+
License, or (at your option) any later version.
|
|
10
|
+
|
|
11
|
+
This program is distributed in the hope that it will be useful,
|
|
12
|
+
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
13
|
+
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
14
|
+
GNU Affero General Public License for more details.
|
|
15
|
+
|
|
16
|
+
You should have received a copy of the GNU Affero General Public License
|
|
17
|
+
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
18
|
+
*/
|
|
19
|
+
|
|
20
|
+
wdi.SizeDefiner = $.spcExtend(wdi.DomainObject, {
|
|
21
|
+
ERROR_CODE_SIZE: 4,
|
|
22
|
+
status: null,
|
|
23
|
+
STATUS_READY: 0,
|
|
24
|
+
STATUS_REPLY: 1,
|
|
25
|
+
STATUS_REPLY_BODY: 2,
|
|
26
|
+
STATUS_ERROR_CODE: 3,
|
|
27
|
+
STATUS_MESSAGE: 4,
|
|
28
|
+
STATUS_HEADER: 5,
|
|
29
|
+
STATUS_BODY: 6,
|
|
30
|
+
isHeader: false,
|
|
31
|
+
|
|
32
|
+
init: function(c) {
|
|
33
|
+
this.status = this.STATUS_READY;
|
|
34
|
+
},
|
|
35
|
+
|
|
36
|
+
getSize: function(arr) {
|
|
37
|
+
if (this.STATUS_READY === this.status) {
|
|
38
|
+
this.status++;
|
|
39
|
+
return wdi.SpiceLinkHeader.prototype.objectSize;
|
|
40
|
+
} else if (this.STATUS_REPLY === this.status) {
|
|
41
|
+
this.status++;
|
|
42
|
+
return this.getReplyBodySize(arr);
|
|
43
|
+
} else if (this.STATUS_REPLY_BODY === this.status) {
|
|
44
|
+
this.status++;
|
|
45
|
+
return this.ERROR_CODE_SIZE;
|
|
46
|
+
} else if (this.STATUS_ERROR_CODE === this.status) {
|
|
47
|
+
this.status++;
|
|
48
|
+
this.isHeader = true;
|
|
49
|
+
return 6; //wdi.SpiceDataHeader.prototype.objectSize access here is slow
|
|
50
|
+
} else {
|
|
51
|
+
if (this.isHeader) {
|
|
52
|
+
this.isHeader = false;
|
|
53
|
+
return this.getBodySizeFromArrayHeader(arr);
|
|
54
|
+
} else {
|
|
55
|
+
this.isHeader = true;
|
|
56
|
+
return 6;//wdi.SpiceDataHeader.prototype.objectSize; access here is slow
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
},
|
|
60
|
+
|
|
61
|
+
getReplyBodySize: function (arr) {
|
|
62
|
+
var queue = wdi.GlobalPool.create('ViewQueue');
|
|
63
|
+
queue.setData(arr);
|
|
64
|
+
var header = new wdi.SpiceLinkHeader().demarshall(queue);
|
|
65
|
+
wdi.GlobalPool.discard('ViewQueue', queue);
|
|
66
|
+
return header.size;
|
|
67
|
+
},
|
|
68
|
+
|
|
69
|
+
getBodySizeFromArrayHeader: function (arr) {
|
|
70
|
+
var queue = wdi.GlobalPool.create('ViewQueue');
|
|
71
|
+
queue.setData(arr);
|
|
72
|
+
var header = new wdi.SpiceDataHeader().demarshall(queue);
|
|
73
|
+
wdi.GlobalPool.discard('ViewQueue', queue);
|
|
74
|
+
return header.size;
|
|
75
|
+
},
|
|
76
|
+
|
|
77
|
+
getStatus: function() {
|
|
78
|
+
if (this.status === this.STATUS_MESSAGE && this.isHeader) {
|
|
79
|
+
return this.STATUS_HEADER;
|
|
80
|
+
} else if (this.status === this.STATUS_MESSAGE && !this.isHeader) {
|
|
81
|
+
return this.STATUS_BODY;
|
|
82
|
+
} else {
|
|
83
|
+
return this.status;
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
});
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
/*
|
|
2
|
+
Copyright (c) 2016 eyeOS
|
|
3
|
+
|
|
4
|
+
This file is part of Open365.
|
|
5
|
+
|
|
6
|
+
Open365 is free software: you can redistribute it and/or modify
|
|
7
|
+
it under the terms of the GNU Affero General Public License as
|
|
8
|
+
published by the Free Software Foundation, either version 3 of the
|
|
9
|
+
License, or (at your option) any later version.
|
|
10
|
+
|
|
11
|
+
This program is distributed in the hope that it will be useful,
|
|
12
|
+
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
13
|
+
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
14
|
+
GNU Affero General Public License for more details.
|
|
15
|
+
|
|
16
|
+
You should have received a copy of the GNU Affero General Public License
|
|
17
|
+
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
18
|
+
*/
|
|
19
|
+
|
|
20
|
+
wdi.socketStatus = {
|
|
21
|
+
'idle':0,
|
|
22
|
+
'prepared':1,
|
|
23
|
+
'connected':2,
|
|
24
|
+
'disconnected':3,
|
|
25
|
+
'failed':4
|
|
26
|
+
};
|
|
27
|
+
//Works only with arrays of bytes (this means each value is a number in 0 to 255)
|
|
28
|
+
wdi.Socket = $.spcExtend(wdi.EventObject.prototype, {
|
|
29
|
+
websocket: null,
|
|
30
|
+
status: wdi.socketStatus.idle,
|
|
31
|
+
binary: false,
|
|
32
|
+
|
|
33
|
+
connect: function(uri) {
|
|
34
|
+
var self = this;
|
|
35
|
+
var protocol = 'base64'; //default protocol
|
|
36
|
+
|
|
37
|
+
if(Modernizr['websocketsbinary']) {
|
|
38
|
+
protocol = 'binary';
|
|
39
|
+
this.binary = true;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
this.websocket = new WebSocket(uri, protocol);
|
|
43
|
+
|
|
44
|
+
wdi.Debug.log("Socket: using protocol: "+protocol);
|
|
45
|
+
|
|
46
|
+
if(this.binary) {
|
|
47
|
+
this.websocket.binaryType = 'arraybuffer';
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
this.status = wdi.socketStatus.prepared;
|
|
51
|
+
this.websocket.onopen = function() {
|
|
52
|
+
self.status = wdi.socketStatus.connected;
|
|
53
|
+
self.fire('open');
|
|
54
|
+
};
|
|
55
|
+
this.websocket.onmessage = function(e) {
|
|
56
|
+
self.fire('message', e.data);
|
|
57
|
+
};
|
|
58
|
+
this.websocket.onclose = function(e) {
|
|
59
|
+
self.status = wdi.socketStatus.disconnected;
|
|
60
|
+
console.warn('Spice Web Client: ', e.code, e.reason);
|
|
61
|
+
self.disconnect();
|
|
62
|
+
self.fire('close', e);
|
|
63
|
+
};
|
|
64
|
+
this.websocket.onerror = function(e) {
|
|
65
|
+
self.status = wdi.socketStatus.failed;
|
|
66
|
+
self.fire('error', e);
|
|
67
|
+
};
|
|
68
|
+
},
|
|
69
|
+
|
|
70
|
+
setOnMessageCallback: function(callback) {
|
|
71
|
+
this.websocket.onmessage = callback;
|
|
72
|
+
},
|
|
73
|
+
|
|
74
|
+
send: function(message) {
|
|
75
|
+
try {
|
|
76
|
+
this.websocket.send(this.encode_message(message));
|
|
77
|
+
} catch (err) {
|
|
78
|
+
this.status = wdi.socketStatus.failed;
|
|
79
|
+
this.fire('error', err);
|
|
80
|
+
}
|
|
81
|
+
},
|
|
82
|
+
|
|
83
|
+
disconnect: function() {
|
|
84
|
+
if (this.websocket) {
|
|
85
|
+
this.websocket.onopen = function() {};
|
|
86
|
+
this.websocket.onmessage = function() {};
|
|
87
|
+
this.websocket.onclose = function() {};
|
|
88
|
+
this.websocket.onerror = function() {};
|
|
89
|
+
this.websocket.close();
|
|
90
|
+
this.status = wdi.socketStatus.idle;
|
|
91
|
+
this.binary = false;
|
|
92
|
+
this.websocket = null;
|
|
93
|
+
}
|
|
94
|
+
},
|
|
95
|
+
|
|
96
|
+
setStatus: function(status) {
|
|
97
|
+
this.status = status;
|
|
98
|
+
this.fire('status', status);
|
|
99
|
+
},
|
|
100
|
+
|
|
101
|
+
getStatus: function() {
|
|
102
|
+
return this.status;
|
|
103
|
+
},
|
|
104
|
+
|
|
105
|
+
encode_message: function(mess) {
|
|
106
|
+
if(!this.binary) {
|
|
107
|
+
var arr = Base64.encode(mess);
|
|
108
|
+
return arr;
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
var len = mess.length;
|
|
112
|
+
|
|
113
|
+
var buffer = new ArrayBuffer(len);
|
|
114
|
+
var u8 = new Uint8Array(buffer);
|
|
115
|
+
|
|
116
|
+
u8.set(mess);
|
|
117
|
+
|
|
118
|
+
return u8;
|
|
119
|
+
}
|
|
120
|
+
});
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
/*
|
|
2
|
+
Copyright (c) 2016 eyeOS
|
|
3
|
+
|
|
4
|
+
This file is part of Open365.
|
|
5
|
+
|
|
6
|
+
Open365 is free software: you can redistribute it and/or modify
|
|
7
|
+
it under the terms of the GNU Affero General Public License as
|
|
8
|
+
published by the Free Software Foundation, either version 3 of the
|
|
9
|
+
License, or (at your option) any later version.
|
|
10
|
+
|
|
11
|
+
This program is distributed in the hope that it will be useful,
|
|
12
|
+
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
13
|
+
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
14
|
+
GNU Affero General Public License for more details.
|
|
15
|
+
|
|
16
|
+
You should have received a copy of the GNU Affero General Public License
|
|
17
|
+
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
18
|
+
*/
|
|
19
|
+
|
|
20
|
+
wdi.SocketQueue = $.spcExtend(wdi.EventObject.prototype, {
|
|
21
|
+
rQ: null,
|
|
22
|
+
sQ: null,
|
|
23
|
+
socket: null,
|
|
24
|
+
|
|
25
|
+
init: function(c) {
|
|
26
|
+
this.superInit();
|
|
27
|
+
this.socket = c.socket || new wdi.Socket();
|
|
28
|
+
this.rQ = c.rQ || new wdi.FixedQueue();
|
|
29
|
+
this.sQ = c.sQ || new wdi.Queue();
|
|
30
|
+
this.setup();
|
|
31
|
+
},
|
|
32
|
+
|
|
33
|
+
setup: function() {
|
|
34
|
+
this.socket.addListener('open', function() {
|
|
35
|
+
this.fire('open');
|
|
36
|
+
}, this);
|
|
37
|
+
this.socket.addListener('message', function(data) {
|
|
38
|
+
this.rQ.push(new Uint8Array(data));
|
|
39
|
+
this.fire('message');
|
|
40
|
+
}, this);
|
|
41
|
+
this.socket.addListener('close', function(e) {
|
|
42
|
+
this.fire('close', e);
|
|
43
|
+
}, this);
|
|
44
|
+
this.socket.addListener('error', function(e) {
|
|
45
|
+
this.fire('error', e);
|
|
46
|
+
}, this);
|
|
47
|
+
},
|
|
48
|
+
|
|
49
|
+
getStatus: function() {
|
|
50
|
+
return this.socket.getStatus();
|
|
51
|
+
},
|
|
52
|
+
|
|
53
|
+
connect: function(uri) {
|
|
54
|
+
this.socket.connect(uri);
|
|
55
|
+
},
|
|
56
|
+
|
|
57
|
+
disconnect: function() {
|
|
58
|
+
wdi.Debug.log('socket Queue disconnect');
|
|
59
|
+
if (this.socket) {
|
|
60
|
+
this.socket.clearEvents();
|
|
61
|
+
this.socket.disconnect();
|
|
62
|
+
}
|
|
63
|
+
this.rQ = null;
|
|
64
|
+
this.sQ = null;
|
|
65
|
+
this.socket = null;
|
|
66
|
+
},
|
|
67
|
+
|
|
68
|
+
send: function(data, shouldFlush) {
|
|
69
|
+
//check for shouldFlush parameter, by default is true
|
|
70
|
+
if (shouldFlush === undefined) {
|
|
71
|
+
var flush = true;
|
|
72
|
+
} else {
|
|
73
|
+
var flush = shouldFlush;
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
//performance: avoid passing through the queue if there is no queue and
|
|
77
|
+
//we have flush!
|
|
78
|
+
if(this.sQ && this.sQ.getLength() === 0 && flush) {
|
|
79
|
+
this.socket.send(data);
|
|
80
|
+
return;
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
//normal operation, append to buffer and send if flush
|
|
84
|
+
|
|
85
|
+
if (this.sQ) {
|
|
86
|
+
this.sQ.push(data);
|
|
87
|
+
if (flush) this.flush();
|
|
88
|
+
}
|
|
89
|
+
},
|
|
90
|
+
|
|
91
|
+
flush: function() {
|
|
92
|
+
var data = this.sQ.shift();
|
|
93
|
+
this.socket.send(data);
|
|
94
|
+
}
|
|
95
|
+
});
|
|
@@ -0,0 +1,310 @@
|
|
|
1
|
+
/*
|
|
2
|
+
Copyright (c) 2016 eyeOS
|
|
3
|
+
|
|
4
|
+
This file is part of Open365.
|
|
5
|
+
|
|
6
|
+
Open365 is free software: you can redistribute it and/or modify
|
|
7
|
+
it under the terms of the GNU Affero General Public License as
|
|
8
|
+
published by the Free Software Foundation, either version 3 of the
|
|
9
|
+
License, or (at your option) any later version.
|
|
10
|
+
|
|
11
|
+
This program is distributed in the hope that it will be useful,
|
|
12
|
+
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
13
|
+
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
14
|
+
GNU Affero General Public License for more details.
|
|
15
|
+
|
|
16
|
+
You should have received a copy of the GNU Affero General Public License
|
|
17
|
+
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
18
|
+
*/
|
|
19
|
+
|
|
20
|
+
//Must fire event types: connectionId and message
|
|
21
|
+
|
|
22
|
+
wdi.SpiceChannel = $.spcExtend(wdi.EventObject.prototype, {
|
|
23
|
+
counter: 0,
|
|
24
|
+
ackWindow: 0,
|
|
25
|
+
connectionId: 0,
|
|
26
|
+
socketQ: null,
|
|
27
|
+
packetReassembler: null,
|
|
28
|
+
channel: 1,
|
|
29
|
+
codec: wdi.SpiceVideoCodecType.SPICE_VIDEO_CODEC_TYPE_H264,
|
|
30
|
+
proxy: null,
|
|
31
|
+
token: null,
|
|
32
|
+
|
|
33
|
+
init: function(c) {
|
|
34
|
+
this.superInit();
|
|
35
|
+
this.socketQ = c.socketQ || new wdi.SocketQueue();
|
|
36
|
+
this.packetReassembler = c.packetReassembler || wdi.ReassemblerFactory.getPacketReassembler(this.socketQ);
|
|
37
|
+
this.setListeners();
|
|
38
|
+
this.ackWindow = 0;
|
|
39
|
+
},
|
|
40
|
+
|
|
41
|
+
startHandshakeTimeout: function () {
|
|
42
|
+
var self = this;
|
|
43
|
+
this.handshakeTimeout = window.setTimeout(function () {
|
|
44
|
+
var err = new Error("Handshake timeout");
|
|
45
|
+
err.code = 4200;
|
|
46
|
+
wdi.Debug.error("Handshake timeout reached, raising error");
|
|
47
|
+
self.fire('error', err);
|
|
48
|
+
}, 5000);
|
|
49
|
+
},
|
|
50
|
+
|
|
51
|
+
cancelHandshakeTimeout: function () {
|
|
52
|
+
clearTimeout(this.handshakeTimeout);
|
|
53
|
+
},
|
|
54
|
+
|
|
55
|
+
setListeners: function() {
|
|
56
|
+
var date;
|
|
57
|
+
var self = this;
|
|
58
|
+
this.packetReassembler.addListener('packetComplete', function(e) {
|
|
59
|
+
var rawMessage = e;
|
|
60
|
+
if (rawMessage.status === 'spicePacket') {
|
|
61
|
+
wdi.Debug.log('packetComplete spicePacket');
|
|
62
|
+
self.cancelHandshakeTimeout();
|
|
63
|
+
if (wdi.logOperations) {
|
|
64
|
+
wdi.DataLogger.logNetworkTime();
|
|
65
|
+
date = Date.now();
|
|
66
|
+
}
|
|
67
|
+
var rsm = this.getRawSpiceMessage(rawMessage.data);
|
|
68
|
+
if (rsm) {
|
|
69
|
+
if (wdi.logOperations && rsm.channel === wdi.SpiceVars.SPICE_CHANNEL_DISPLAY) {
|
|
70
|
+
wdi.DataLogger.setStartTime(date);
|
|
71
|
+
}
|
|
72
|
+
this.fire('message', rsm);
|
|
73
|
+
}
|
|
74
|
+
} else if (rawMessage.status === 'reply') {
|
|
75
|
+
wdi.Debug.log('packetComplete reply');
|
|
76
|
+
var packet = this.getRedLinkReplyBytes(rawMessage.data);
|
|
77
|
+
this.send(packet);
|
|
78
|
+
} else if (rawMessage.status === 'errorCode') {
|
|
79
|
+
wdi.Debug.log('packetComplete errorCode');
|
|
80
|
+
var packet = this.getErrorCodeBytes(rawMessage.data);
|
|
81
|
+
if (packet) {
|
|
82
|
+
this.send(packet);
|
|
83
|
+
if (this.channel === wdi.SpiceVars.SPICE_CHANNEL_DISPLAY) {
|
|
84
|
+
// Custom code
|
|
85
|
+
// Set codec
|
|
86
|
+
this.changeCodec(this.codec)
|
|
87
|
+
// Custom code end
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
this.fire('channelConnected');
|
|
91
|
+
}
|
|
92
|
+
}, this);
|
|
93
|
+
|
|
94
|
+
this.socketQ.addListener('open', function() {
|
|
95
|
+
var packet = this.getRedLinkMessBytes();
|
|
96
|
+
this.send(packet);
|
|
97
|
+
this.proxy ? this.proxy.end() : false;
|
|
98
|
+
}, this);
|
|
99
|
+
|
|
100
|
+
this.socketQ.addListener('close', function(e) {
|
|
101
|
+
if (this.channel === 1) {
|
|
102
|
+
this.fire('error', e);
|
|
103
|
+
}
|
|
104
|
+
this.socketQ.disconnect();
|
|
105
|
+
}, this);
|
|
106
|
+
|
|
107
|
+
this.socketQ.addListener('error', function(e) {
|
|
108
|
+
this.fire('error', e);
|
|
109
|
+
this.socketQ.disconnect();
|
|
110
|
+
}, this);
|
|
111
|
+
},
|
|
112
|
+
|
|
113
|
+
changeCodec: function (codec) {
|
|
114
|
+
|
|
115
|
+
this.sendObject([
|
|
116
|
+
...wdi.SpiceObject.numberTo16(2),
|
|
117
|
+
...wdi.SpiceObject.numberTo16(codec),
|
|
118
|
+
...wdi.SpiceObject.numberTo16(3)
|
|
119
|
+
], wdi.SpiceVars.SPICE_MSGC_DISPLAY_PREFERRED_VIDEO_CODEC_TYPE)
|
|
120
|
+
|
|
121
|
+
wdi.currentCodec = codec
|
|
122
|
+
|
|
123
|
+
console.log(`codec changed: ${codec}`);
|
|
124
|
+
},
|
|
125
|
+
|
|
126
|
+
connect: function(connectionInfo, channel, connectionId, proxy) {
|
|
127
|
+
var url = wdi.Utils.generateWebSocketUrl(connectionInfo.protocol, connectionInfo.host, connectionInfo.port, connectionInfo.vmHost, connectionInfo.vmPort, 'spice', connectionInfo.vmInfoToken, connectionInfo.vmid);
|
|
128
|
+
this.channel = channel;
|
|
129
|
+
this.connectionId = connectionId || 0;
|
|
130
|
+
this.socketQ.connect(url);
|
|
131
|
+
this.startHandshakeTimeout();
|
|
132
|
+
this.proxy = proxy;
|
|
133
|
+
this.token = connectionInfo.token;
|
|
134
|
+
this.packetReassembler.start();
|
|
135
|
+
},
|
|
136
|
+
|
|
137
|
+
disconnect: function () {
|
|
138
|
+
wdi.Debug.log('spicechannel disconnect');
|
|
139
|
+
this.counter = 0;
|
|
140
|
+
this.ackWindow = 0;
|
|
141
|
+
this.connectionId = 0;
|
|
142
|
+
this.socketQ.disconnect();
|
|
143
|
+
this.socketQ = null;
|
|
144
|
+
this.packetReassembler.dispose();
|
|
145
|
+
this.packetReassembler = null;
|
|
146
|
+
this.channel = 1;
|
|
147
|
+
this.proxy = null;
|
|
148
|
+
this.token = null;
|
|
149
|
+
},
|
|
150
|
+
|
|
151
|
+
send: function(data, flush) {
|
|
152
|
+
this.socketQ.send(data, flush);
|
|
153
|
+
},
|
|
154
|
+
|
|
155
|
+
sendObject: function(data, type, flush) {
|
|
156
|
+
|
|
157
|
+
// TODO: Unhardcode this value
|
|
158
|
+
var bufSize = 2048;
|
|
159
|
+
for (var current = 0; current < data.length; current += bufSize) {
|
|
160
|
+
var part = data.slice(current, current + bufSize);
|
|
161
|
+
var packet = new wdi.SpiceDataHeader({
|
|
162
|
+
type: type,
|
|
163
|
+
size: part.length
|
|
164
|
+
}).marshall();
|
|
165
|
+
|
|
166
|
+
packet = packet.concat(part);
|
|
167
|
+
|
|
168
|
+
this.send(packet, flush);
|
|
169
|
+
}
|
|
170
|
+
},
|
|
171
|
+
|
|
172
|
+
// Custom code
|
|
173
|
+
arrayOfNumberToUint32: function (arrayOfNumber) {
|
|
174
|
+
let v = 0;
|
|
175
|
+
for (let n of arrayOfNumber) {
|
|
176
|
+
v |= 1 << n;
|
|
177
|
+
}
|
|
178
|
+
return v
|
|
179
|
+
},
|
|
180
|
+
// Custom code end
|
|
181
|
+
|
|
182
|
+
setAckWindow: function(window) {
|
|
183
|
+
this.ackWindow = window;
|
|
184
|
+
this.counter = 0;
|
|
185
|
+
},
|
|
186
|
+
|
|
187
|
+
getRawSpiceMessage: function (rawData) {
|
|
188
|
+
var headerQueue = wdi.GlobalPool.create('ViewQueue');
|
|
189
|
+
var body = wdi.GlobalPool.create('ViewQueue');
|
|
190
|
+
|
|
191
|
+
var header = new Uint8Array(rawData, 0, wdi.SpiceDataHeader.prototype.objectSize);
|
|
192
|
+
headerQueue.setData(header);
|
|
193
|
+
var headerObj = new wdi.SpiceDataHeader().demarshall(headerQueue);
|
|
194
|
+
wdi.GlobalPool.discard('ViewQueue', headerQueue);
|
|
195
|
+
var rawBody = rawData.subarray(wdi.SpiceDataHeader.prototype.objectSize);
|
|
196
|
+
body.setData(rawBody);
|
|
197
|
+
|
|
198
|
+
this.counter++;
|
|
199
|
+
|
|
200
|
+
if(this.ackWindow && this.counter === this.ackWindow) {
|
|
201
|
+
this.counter = 0;
|
|
202
|
+
var ack = new wdi.SpiceDataHeader({
|
|
203
|
+
type: wdi.SpiceVars.SPICE_MSGC_ACK,
|
|
204
|
+
size:0
|
|
205
|
+
}).marshall();
|
|
206
|
+
this.send(ack);
|
|
207
|
+
}
|
|
208
|
+
|
|
209
|
+
var packet = wdi.PacketLinkFactory.extract(headerObj, body) || false;
|
|
210
|
+
if (packet) {
|
|
211
|
+
wdi.PacketLinkProcess.process(headerObj, packet, this);
|
|
212
|
+
wdi.GlobalPool.discard('ViewQueue', body);
|
|
213
|
+
return false;
|
|
214
|
+
} else {
|
|
215
|
+
var rawSpiceMessage = wdi.GlobalPool.create('RawSpiceMessage');
|
|
216
|
+
rawSpiceMessage.set(headerObj, body, this.channel);
|
|
217
|
+
return rawSpiceMessage;
|
|
218
|
+
}
|
|
219
|
+
},
|
|
220
|
+
|
|
221
|
+
|
|
222
|
+
//This functions are to avoid hardcoded values on logic
|
|
223
|
+
getRedLinkReplyBytes: function(data) {
|
|
224
|
+
if (this.token) {
|
|
225
|
+
var newq = new wdi.ViewQueue();
|
|
226
|
+
newq.setData(data);
|
|
227
|
+
newq.eatBytes(wdi.SpiceLinkHeader.prototype.objectSize)
|
|
228
|
+
var myBody = new wdi.SpiceLinkReply().demarshall(newq);
|
|
229
|
+
|
|
230
|
+
//Returnnig void bytes or encrypted ticket
|
|
231
|
+
var key = wdi.SpiceObject.stringHexToBytes(RSA_public_encrypt(this.token, myBody.pub_key));
|
|
232
|
+
return key;
|
|
233
|
+
} else {
|
|
234
|
+
return wdi.SpiceObject.stringToBytesPadding('', 128);
|
|
235
|
+
}
|
|
236
|
+
},
|
|
237
|
+
|
|
238
|
+
getRedLinkMessBytes: function() {
|
|
239
|
+
// var header = new wdi.SpiceLinkHeader({magic:1363428690, major_version:2, minor_version:2, size:22}).marshall();
|
|
240
|
+
// var body = new wdi.SpiceLinkMess({
|
|
241
|
+
// connection_id:this.connectionId,
|
|
242
|
+
// channel_type:this.channel,
|
|
243
|
+
// caps_offset:18,
|
|
244
|
+
// num_common_caps: 1,
|
|
245
|
+
// num_channel_caps: 0,
|
|
246
|
+
// common_caps: (1 << wdi.SpiceVars.SPICE_COMMON_CAP_MINI_HEADER)
|
|
247
|
+
// }).marshall();
|
|
248
|
+
|
|
249
|
+
// Custom code
|
|
250
|
+
// TODO uncomment this code for send caps
|
|
251
|
+
var header = new wdi.SpiceLinkHeader({magic:1363428690, major_version:2, minor_version:2, size:26}).marshall();
|
|
252
|
+
var body = new wdi.SpiceLinkMess({
|
|
253
|
+
connection_id:this.connectionId,
|
|
254
|
+
channel_type:this.channel,
|
|
255
|
+
caps_offset:18,
|
|
256
|
+
num_common_caps: 1,
|
|
257
|
+
num_channel_caps: 1,
|
|
258
|
+
common_caps: (1 << wdi.SpiceVars.SPICE_COMMON_CAP_MINI_HEADER),
|
|
259
|
+
channel_caps: this.arrayOfNumberToUint32([
|
|
260
|
+
wdi.SpiceDisplayCaps.SPICE_DISPLAY_CAP_SIZED_STREAM,
|
|
261
|
+
wdi.SpiceDisplayCaps.SPICE_DISPLAY_CAP_STREAM_REPORT,
|
|
262
|
+
wdi.SpiceDisplayCaps.SPICE_DISPLAY_CAP_MONITORS_CONFIG,
|
|
263
|
+
|
|
264
|
+
wdi.SpiceDisplayCaps.SPICE_DISPLAY_CAP_MULTI_CODEC,
|
|
265
|
+
wdi.SpiceDisplayCaps.SPICE_DISPLAY_CAP_PREF_VIDEO_CODEC_TYPE,
|
|
266
|
+
wdi.SpiceDisplayCaps.SPICE_DISPLAY_CAP_CODEC_MJPEG,
|
|
267
|
+
wdi.SpiceDisplayCaps.SPICE_DISPLAY_CAP_CODEC_VP8,
|
|
268
|
+
wdi.SpiceDisplayCaps.SPICE_DISPLAY_CAP_CODEC_H264,
|
|
269
|
+
wdi.SpiceDisplayCaps.SPICE_DISPLAY_CAP_CODEC_VP9,
|
|
270
|
+
wdi.SpiceDisplayCaps.SPICE_DISPLAY_CAP_CODEC_H265,
|
|
271
|
+
|
|
272
|
+
wdi.SpiceDisplayCaps.SPICE_DISPLAY_CAP_LZ4_COMPRESSION,
|
|
273
|
+
wdi.SpiceDisplayCaps.SPICE_DISPLAY_CAP_PREF_COMPRESSION,
|
|
274
|
+
])
|
|
275
|
+
}).marshall();
|
|
276
|
+
// Custom code end
|
|
277
|
+
|
|
278
|
+
return header.concat(body);
|
|
279
|
+
},
|
|
280
|
+
|
|
281
|
+
getErrorCodeBytes: function (data) {
|
|
282
|
+
var errorQ = wdi.GlobalPool.create('ViewQueue');
|
|
283
|
+
errorQ.setData(data);
|
|
284
|
+
var errorCode = wdi.SpiceObject.bytesToInt32NoAllocate(errorQ);
|
|
285
|
+
wdi.GlobalPool.discard('ViewQueue', errorQ);
|
|
286
|
+
if (errorCode === 0) {
|
|
287
|
+
if (this.channel === wdi.SpiceVars.SPICE_CHANNEL_DISPLAY) {
|
|
288
|
+
var redDisplayInit = new wdi.SpiceDataHeader({type: wdi.SpiceVars.SPICE_MSGC_DISPLAY_INIT, size: 14}).marshall();
|
|
289
|
+
//TODO: ultrahardcoded value here, move to configuration
|
|
290
|
+
|
|
291
|
+
//DUE To high level storage the memory specified for cache
|
|
292
|
+
//is 2-3 times bigger than expected.
|
|
293
|
+
var cache_size = 1;
|
|
294
|
+
|
|
295
|
+
var body = new wdi.SpiceCDisplayInit({
|
|
296
|
+
pixmap_cache_id:1,
|
|
297
|
+
pixmap_cache_size: cache_size,
|
|
298
|
+
glz_dictionary_id: 0,
|
|
299
|
+
glz_dictionary_window_size: 0
|
|
300
|
+
}).marshall();
|
|
301
|
+
|
|
302
|
+
return redDisplayInit.concat(body);
|
|
303
|
+
} else if(this.channel == wdi.SpiceVars.SPICE_CHANNEL_MAIN) {
|
|
304
|
+
return new wdi.SpiceDataHeader({type: wdi.SpiceVars.SPICE_MSGC_MAIN_ATTACH_CHANNELS, size: 0}).marshall();
|
|
305
|
+
}
|
|
306
|
+
} else {
|
|
307
|
+
throw new wdi.Exception({message: "Server refused client", errorCode: 2});
|
|
308
|
+
}
|
|
309
|
+
}
|
|
310
|
+
});
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
/*
|
|
2
|
+
Copyright (c) 2016 eyeOS
|
|
3
|
+
|
|
4
|
+
This file is part of Open365.
|
|
5
|
+
|
|
6
|
+
Open365 is free software: you can redistribute it and/or modify
|
|
7
|
+
it under the terms of the GNU Affero General Public License as
|
|
8
|
+
published by the Free Software Foundation, either version 3 of the
|
|
9
|
+
License, or (at your option) any later version.
|
|
10
|
+
|
|
11
|
+
This program is distributed in the hope that it will be useful,
|
|
12
|
+
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
13
|
+
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
14
|
+
GNU Affero General Public License for more details.
|
|
15
|
+
|
|
16
|
+
You should have received a copy of the GNU Affero General Public License
|
|
17
|
+
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
18
|
+
*/
|
|
19
|
+
|
|
20
|
+
wdi.WebSocketWrapper = $.spcExtend({}, {
|
|
21
|
+
ws: {},
|
|
22
|
+
onopen: null,
|
|
23
|
+
onmessage: null,
|
|
24
|
+
onclose: null,
|
|
25
|
+
onerror: null,
|
|
26
|
+
|
|
27
|
+
init: function() {
|
|
28
|
+
|
|
29
|
+
},
|
|
30
|
+
|
|
31
|
+
connect: function(url, protocol) {
|
|
32
|
+
this.ws = new WebSocket(url, protocol);
|
|
33
|
+
},
|
|
34
|
+
|
|
35
|
+
onOpen: function(callback) {
|
|
36
|
+
this.ws.onopen = callback;
|
|
37
|
+
},
|
|
38
|
+
|
|
39
|
+
onMessage: function(callback) {
|
|
40
|
+
this.ws.onmessage = callback;
|
|
41
|
+
},
|
|
42
|
+
|
|
43
|
+
onClose: function(callback) {
|
|
44
|
+
this.ws.onclose = callback;
|
|
45
|
+
},
|
|
46
|
+
|
|
47
|
+
onError: function(callback) {
|
|
48
|
+
this.ws.onerror = callback;
|
|
49
|
+
},
|
|
50
|
+
|
|
51
|
+
setBinaryType: function(type) {
|
|
52
|
+
this.ws.binaryType = type;
|
|
53
|
+
},
|
|
54
|
+
|
|
55
|
+
close: function() {
|
|
56
|
+
if (!this.ws || !this.ws.close) {
|
|
57
|
+
return;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
this.ws.close();
|
|
61
|
+
this.ws.onopen = function () {};
|
|
62
|
+
this.ws.onmessage = function () {};
|
|
63
|
+
this.ws.onclose = function () {};
|
|
64
|
+
this.ws.onerror = function () {};
|
|
65
|
+
this.onopen = function() {};
|
|
66
|
+
this.onmessage = function() {};
|
|
67
|
+
this.onclose = function() {};
|
|
68
|
+
this.onerror = function() {};
|
|
69
|
+
|
|
70
|
+
},
|
|
71
|
+
|
|
72
|
+
send: function(message) {
|
|
73
|
+
this.ws.send(message);
|
|
74
|
+
}
|
|
75
|
+
});
|