bfg-common 1.0.83 → 1.0.85

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.
Files changed (630) hide show
  1. package/.eslintrc.js +21 -21
  2. package/.idea/inspectionProfiles/Project_Default.xml +48 -48
  3. package/.idea/modules.xml +7 -7
  4. package/.idea/prettier.xml +5 -5
  5. package/.idea/uikit.iml +11 -11
  6. package/.idea/vcs.xml +5 -5
  7. package/.prettierrc +4 -4
  8. package/PROJECT_STRUCTURE.md +42 -42
  9. package/README.md +42 -42
  10. package/assets/img/icons/icon-hcs.svg +3 -3
  11. package/assets/img/icons/icon-life-m-dark.svg +3 -3
  12. package/assets/img/icons/icon-life-m-light.svg +3 -3
  13. package/assets/img/icons/icon-ro-dark.svg +1 -1
  14. package/assets/img/icons/icon-ro-light.svg +2 -2
  15. package/assets/img/icons/icons-sprite-dark-6.svg +1 -1
  16. package/assets/img/icons/icons-sprite-light-6.svg +1 -1
  17. package/assets/img/icons/info.svg +8 -8
  18. package/assets/img/icons/vc.svg +52 -52
  19. package/assets/img/logo copy.svg +50 -50
  20. package/assets/img/logo.svg +51 -51
  21. package/assets/localization/local_be.json +2041 -2035
  22. package/assets/localization/local_en.json +2044 -2035
  23. package/assets/localization/local_hy.json +2044 -2035
  24. package/assets/localization/local_kk.json +2044 -2035
  25. package/assets/localization/local_ru.json +2044 -2035
  26. package/assets/localization/local_zh.json +2044 -2035
  27. package/assets/scss/clarity/clr-ui.min.css +8 -8
  28. package/assets/scss/common/animations.scss +28 -28
  29. package/assets/scss/common/global.scss +172 -172
  30. package/assets/scss/common/icons/icons-1.scss +188 -188
  31. package/assets/scss/common/icons/icons-2.scss +208 -208
  32. package/assets/scss/common/icons/icons-3.scss +176 -176
  33. package/assets/scss/common/icons/icons-4.scss +179 -179
  34. package/assets/scss/common/icons/icons-5.scss +53 -53
  35. package/assets/scss/common/icons/icons-6.scss +29 -29
  36. package/assets/scss/common/icons/icons.scss +15 -15
  37. package/assets/scss/common/mixins.scss +39 -39
  38. package/assets/scss/common/normalize.scss +320 -320
  39. package/assets/scss/common/theme.scss +230 -230
  40. package/assets/scss/common/utilities.scss +18 -18
  41. package/assets/scss/common/variables.scss +43 -43
  42. package/assets/scss/main.scss +13 -13
  43. package/components/atoms/DiagramIcon.vue +287 -287
  44. package/components/atoms/TheIcon.vue +1687 -1687
  45. package/components/atoms/TheIcon2.vue +368 -318
  46. package/components/atoms/alert/Alert.spec.ts +38 -38
  47. package/components/atoms/alert/Alert.vue +84 -84
  48. package/components/atoms/alert/Notification.spec.ts +34 -34
  49. package/components/atoms/alert/models/enums.ts +12 -12
  50. package/components/atoms/alert/models/interfaces.ts +27 -27
  51. package/components/atoms/alert/models/types.ts +7 -7
  52. package/components/atoms/collapse/CollapseNav.vue +158 -158
  53. package/components/atoms/collapse/CollapseNavItem.vue +190 -190
  54. package/components/atoms/collapse/models/interfaces.ts +9 -9
  55. package/components/atoms/combobox/Combobox.vue +147 -147
  56. package/components/atoms/datepicker/config/allShortMonths.ts +103 -103
  57. package/components/atoms/datepicker/config/datapicker.ts +43 -43
  58. package/components/atoms/datepicker/models/interfaces.ts +8 -8
  59. package/components/atoms/dropdown/Portlet.spec.ts +26 -26
  60. package/components/atoms/dropdown/Portlet.vue +111 -111
  61. package/components/atoms/dropdown/dropdown/Dropdown.vue +148 -148
  62. package/components/atoms/dropdown/dropdown/models/interfaces.ts +8 -8
  63. package/components/atoms/dropdown/tree/Tree.vue +134 -134
  64. package/components/atoms/dropdown/tree/models/interfaces.ts +9 -9
  65. package/components/atoms/input/Search.vue +16 -16
  66. package/components/atoms/list/SimpleList.vue +29 -29
  67. package/components/atoms/list/dragDropList/DragDropList.vue +139 -139
  68. package/components/atoms/list/dragDropList/config/events.ts +4 -4
  69. package/components/atoms/loader/BarLoader.vue +21 -21
  70. package/components/atoms/loader/Loader.vue +26 -26
  71. package/components/atoms/loader/PreLoader.vue +34 -34
  72. package/components/atoms/loader/Preloader.spec.ts +24 -24
  73. package/components/atoms/modal/Modal.spec.ts +55 -55
  74. package/components/atoms/modal/Modal.vue +241 -241
  75. package/components/atoms/modal/bySteps/BySteps.spec.ts +66 -66
  76. package/components/atoms/modal/bySteps/BySteps.vue +8 -6
  77. package/components/atoms/modal/byStepsSecond/ByStepsSecond.vue +174 -174
  78. package/components/atoms/models/interfaces.ts +11 -11
  79. package/components/atoms/nav/NavBar.spec.ts +34 -34
  80. package/components/atoms/nav/models/interfaces.ts +5 -5
  81. package/components/atoms/notificationBar/models/enums.ts +27 -27
  82. package/components/atoms/notificationBar/models/interfaces.ts +6 -6
  83. package/components/atoms/notificationBar/models/types.ts +1 -1
  84. package/components/atoms/popover/Popover.vue +48 -48
  85. package/components/atoms/select/TheSelect.vue +175 -175
  86. package/components/atoms/select/models/interfaces.ts +4 -4
  87. package/components/atoms/stack/StackBlock.vue +171 -171
  88. package/components/atoms/stack/StackContent.vue +60 -60
  89. package/components/atoms/step/VerticalStep.spec.ts +68 -68
  90. package/components/atoms/step/models/verticalStepItem.ts +7 -7
  91. package/components/atoms/table/compact/Compact.vue +526 -526
  92. package/components/atoms/table/compact/models/interfaces.ts +10 -10
  93. package/components/atoms/table/dataGrid/DataGrid.spec.ts +61 -61
  94. package/components/atoms/table/dataGrid/DataGrid.vue +1469 -1406
  95. package/components/atoms/table/dataGrid/DataGridPagination.vue +89 -89
  96. package/components/atoms/table/dataGrid/config/itemsPerPage.ts +20 -20
  97. package/components/atoms/table/dataGrid/models/interfaces.ts +24 -24
  98. package/components/atoms/table/dataGrid/models/types.ts +5 -5
  99. package/components/atoms/table/dataGrid/utils/constructDataTable.ts +32 -32
  100. package/components/atoms/table/info/Info.vue +60 -60
  101. package/components/atoms/table/info/models/interfaces.ts +6 -6
  102. package/components/atoms/table/simpleEvent/SimpleEvent.vue +98 -98
  103. package/components/atoms/table/simpleEvent/models/interfaces.ts +9 -9
  104. package/components/atoms/table/simpleInfo/SimpleInfo.vue +68 -68
  105. package/components/atoms/table/simpleInfo/models/interfaces.ts +4 -4
  106. package/components/atoms/table/simpleTable/SimpleTable.vue +291 -291
  107. package/components/atoms/table/simpleTable/models/interfaces.ts +10 -10
  108. package/components/atoms/tabs/VerticalTabs.vue +81 -81
  109. package/components/atoms/tabs/models/interfaces.ts +4 -4
  110. package/components/atoms/tabs/models/types.ts +1 -1
  111. package/components/atoms/tooltip/Models/interfaces.ts +4 -4
  112. package/components/atoms/tooltip/Text.vue +39 -39
  113. package/components/atoms/tooltip/Tooltip.vue +57 -57
  114. package/components/atoms/tooltip/TooltipError.vue +113 -113
  115. package/components/common/accordion/Accordion.vue +183 -183
  116. package/components/common/accordion/Recursion.vue +216 -216
  117. package/components/common/accordion/models/enums.ts +5 -5
  118. package/components/common/accordion/models/interfaces.ts +15 -15
  119. package/components/common/accordion/models/types.ts +1 -1
  120. package/components/common/accordion/utils/accordion.ts +31 -31
  121. package/components/common/adapterManager/AdapterManager.vue +715 -715
  122. package/components/common/adapterManager/AddAdapterModal.vue +464 -464
  123. package/components/common/adapterManager/config/index.ts +19 -19
  124. package/components/common/adapterManager/ui/NoSelectedAdapter.vue +39 -39
  125. package/components/common/adapterManager/ui/SecondTitle.vue +37 -37
  126. package/components/common/adapterManager/ui/actions/ActionsBar.vue +93 -93
  127. package/components/common/adapterManager/ui/actions/AddAdapterButton.vue +28 -28
  128. package/components/common/adapterManager/ui/actions/MoveDownAdapterButton.vue +33 -33
  129. package/components/common/adapterManager/ui/actions/MoveUpAdapterButton.vue +33 -33
  130. package/components/common/adapterManager/ui/actions/RemoveAdapterButton.vue +34 -34
  131. package/components/common/adapterManager/ui/actions/VerticalSeparator.vue +10 -10
  132. package/components/common/adapterManager/ui/table/Adapters.vue +91 -91
  133. package/components/common/adapterManager/ui/table/Header.vue +89 -89
  134. package/components/common/adapterManager/ui/table/Table.vue +167 -167
  135. package/components/common/addNetworking/AddNetworking.vue +982 -982
  136. package/components/common/addNetworking/Wizard.vue +286 -286
  137. package/components/common/addNetworking/config/addNetworkingSteps.ts +404 -404
  138. package/components/common/addNetworking/config/index.ts +46 -46
  139. package/components/common/addNetworking/config/initialData.ts +78 -78
  140. package/components/common/addNetworking/config/portPropertiesStep.ts +19 -19
  141. package/components/common/addNetworking/config/selectSwitch.ts +19 -19
  142. package/components/common/addNetworking/config/sendData.ts +87 -87
  143. package/components/common/addNetworking/config/temporaryData.ts +7 -7
  144. package/components/common/addNetworking/config/validation.ts +23 -23
  145. package/components/common/addNetworking/mappers/mappers.ts +166 -166
  146. package/components/common/addNetworking/modals/SelectNetwork.vue +149 -149
  147. package/components/common/addNetworking/modals/SelectStandardSwitch.vue +125 -125
  148. package/components/common/addNetworking/modals/SelectSwitch.vue +114 -114
  149. package/components/common/addNetworking/models/enums.ts +6 -6
  150. package/components/common/addNetworking/models/interfaces.ts +207 -207
  151. package/components/common/addNetworking/models/types.ts +4 -4
  152. package/components/common/addNetworking/steps/ConnectionSettings.vue +269 -269
  153. package/components/common/addNetworking/steps/CreateStandardSwitch.vue +91 -91
  154. package/components/common/addNetworking/steps/Header.vue +52 -52
  155. package/components/common/addNetworking/steps/IpFourSettings.vue +361 -361
  156. package/components/common/addNetworking/steps/PhysicalAdapter.vue +24 -24
  157. package/components/common/addNetworking/steps/PortProperties.vue +481 -481
  158. package/components/common/addNetworking/steps/ReadyComplete.vue +29 -29
  159. package/components/common/addNetworking/steps/SelectConnectionType.vue +106 -106
  160. package/components/common/addNetworking/steps/SelectedTargetDevice.vue +563 -563
  161. package/components/common/addNetworking/utils/index.ts +212 -212
  162. package/components/common/browse/blocks/Container.vue +102 -102
  163. package/components/common/browse/blocks/contents/Files.vue +68 -68
  164. package/components/common/browse/blocks/info/Date.vue +21 -21
  165. package/components/common/browse/blocks/info/Size.vue +17 -17
  166. package/components/common/browse/blocks/info/Text.vue +16 -16
  167. package/components/common/browse/blocks/models/types.ts +1 -1
  168. package/components/common/browse/models/interfaces.ts +5 -5
  169. package/components/common/content/navbar/left/models/interfaces.ts +6 -5
  170. package/components/common/content/navbar/right/Right.vue +139 -139
  171. package/components/common/content/navbar/right/models/interfaces.ts +4 -4
  172. package/components/common/context/Context.spec.ts +20 -20
  173. package/components/common/context/Context.vue +97 -97
  174. package/components/common/context/ContextRecursion.spec.ts +55 -55
  175. package/components/common/context/ContextRecursion.vue +251 -251
  176. package/components/common/context/models/interfaces.ts +26 -26
  177. package/components/common/details/DetailsItem.vue +106 -106
  178. package/components/common/details/DetailsList.vue +23 -23
  179. package/components/common/details/model/interfaces.ts +9 -9
  180. package/components/common/diagramMain/Diagram.vue +186 -186
  181. package/components/common/diagramMain/DiagramMain.vue +979 -979
  182. package/components/common/diagramMain/Header.vue +163 -163
  183. package/components/common/diagramMain/Highlights.vue +102 -102
  184. package/components/common/diagramMain/adapter/Adapter.vue +105 -105
  185. package/components/common/diagramMain/adapter/Block.vue +41 -41
  186. package/components/common/diagramMain/adapter/Contents.vue +96 -96
  187. package/components/common/diagramMain/adapter/Lines.vue +52 -52
  188. package/components/common/diagramMain/adapter/SecondBlock.vue +42 -42
  189. package/components/common/diagramMain/config/index.ts +51 -51
  190. package/components/common/diagramMain/config/initial.ts +37 -37
  191. package/components/common/diagramMain/modals/ManagePhysicalAdaptersModal.vue +236 -236
  192. package/components/common/diagramMain/modals/MigrateVmkernelAdapter.vue +535 -535
  193. package/components/common/diagramMain/modals/config/adapterModal.ts +110 -110
  194. package/components/common/diagramMain/modals/config/diagramConfig.ts +17 -17
  195. package/components/common/diagramMain/modals/config/index.ts +57 -57
  196. package/components/common/diagramMain/modals/config/initial.ts +181 -181
  197. package/components/common/diagramMain/modals/config/migrateVmkernelAdapterSteps.ts +81 -81
  198. package/components/common/diagramMain/modals/config/networkModal.ts +337 -337
  199. package/components/common/diagramMain/modals/config/portModal.ts +201 -201
  200. package/components/common/diagramMain/modals/config/switchModal.ts +172 -172
  201. package/components/common/diagramMain/modals/config/vCenterModal.ts +30 -30
  202. package/components/common/diagramMain/modals/config/validation.ts +2 -2
  203. package/components/common/diagramMain/modals/config/vmKernelAdapter.ts +90 -90
  204. package/components/common/diagramMain/modals/editSettings/ConfirmTeamingSettingsModal.vue +41 -41
  205. package/components/common/diagramMain/modals/editSettings/EditSettings.vue +491 -491
  206. package/components/common/diagramMain/modals/editSettings/EditSettingsModal.vue +714 -714
  207. package/components/common/diagramMain/modals/editSettings/tabs/NetworkProperties.vue +211 -211
  208. package/components/common/diagramMain/modals/editSettings/tabs/Security.vue +183 -183
  209. package/components/common/diagramMain/modals/editSettings/tabs/SwitchProperties.vue +161 -161
  210. package/components/common/diagramMain/modals/editSettings/tabs/TeamingFailover.vue +166 -166
  211. package/components/common/diagramMain/modals/editSettings/tabs/TrafficShaping.vue +393 -393
  212. package/components/common/diagramMain/modals/steps/ConnectionSettings.vue +206 -206
  213. package/components/common/diagramMain/modals/steps/SelectVmkernelAdapter.vue +221 -221
  214. package/components/common/diagramMain/modals/steps/VmkernelAdapterReadyComplete.vue +50 -50
  215. package/components/common/diagramMain/modals/utils/index.ts +9 -9
  216. package/components/common/diagramMain/modals/viewSettings/Info.vue +96 -96
  217. package/components/common/diagramMain/modals/viewSettings/ViewSettings.vue +171 -171
  218. package/components/common/diagramMain/modals/viewSettings/ViewSettingsModal.vue +93 -93
  219. package/components/common/diagramMain/models/enums.ts +26 -26
  220. package/components/common/diagramMain/models/interfaces.ts +565 -565
  221. package/components/common/diagramMain/models/types.ts +9 -9
  222. package/components/common/diagramMain/network/Block.vue +55 -55
  223. package/components/common/diagramMain/network/Lines.vue +65 -65
  224. package/components/common/diagramMain/network/Network.vue +117 -117
  225. package/components/common/diagramMain/network/NoNetwork.vue +47 -47
  226. package/components/common/diagramMain/network/SecondBlock.vue +51 -51
  227. package/components/common/diagramMain/port/Port.vue +301 -301
  228. package/components/common/diagramMain/port/Ports.vue +41 -41
  229. package/components/common/diagramMain/switch/Switch.vue +71 -71
  230. package/components/common/diagramMain/switch/SwitchSelected.vue +29 -29
  231. package/components/common/diagramMain/utils/utils.ts +218 -218
  232. package/components/common/feedback/Feedback.vue +236 -236
  233. package/components/common/feedback/config/drawingPanel.ts +31 -31
  234. package/components/common/feedback/config/feedbackTabs.ts +24 -24
  235. package/components/common/feedback/models/interfaces.ts +15 -15
  236. package/components/common/graph/Graph.vue +107 -107
  237. package/components/common/graph/utils/renderGraph.ts +389 -389
  238. package/components/common/headline/Headline.vue +32 -32
  239. package/components/common/mainNavigationPanel/models/interfaces.ts +6 -6
  240. package/components/common/mainNavigationPanel/models/types.ts +1 -1
  241. package/components/common/modals/Confirmation.vue +71 -71
  242. package/components/common/modals/config/defaultForm.ts +18 -18
  243. package/components/common/modals/config/renameLabelWidth.ts +3 -3
  244. package/components/common/modals/models/interfaces.ts +5 -5
  245. package/components/common/monitor/advanced/Advanced.vue +164 -164
  246. package/components/common/monitor/advanced/GraphView.vue +132 -132
  247. package/components/common/monitor/advanced/models/interfaces.ts +6 -6
  248. package/components/common/monitor/advanced/models/types.ts +1 -1
  249. package/components/common/monitor/advanced/table/Table.vue +90 -90
  250. package/components/common/monitor/advanced/table/config/performanceDatatable.ts +116 -116
  251. package/components/common/monitor/advanced/table/models/interfaces.ts +12 -12
  252. package/components/common/monitor/advanced/table/models/types.ts +10 -10
  253. package/components/common/monitor/advanced/tools/Tools.vue +302 -302
  254. package/components/common/monitor/advanced/tools/chartOptionsModal/ChartOptionsModal.vue +125 -125
  255. package/components/common/monitor/advanced/tools/chartOptionsModal/Notification.vue +33 -33
  256. package/components/common/monitor/advanced/tools/chartOptionsModal/actions/Actions.vue +79 -79
  257. package/components/common/monitor/advanced/tools/chartOptionsModal/actions/config/optionsActions.ts +13 -13
  258. package/components/common/monitor/advanced/tools/chartOptionsModal/actions/saveOptionsModal/SaveOptionsModal.vue +53 -53
  259. package/components/common/monitor/advanced/tools/chartOptionsModal/counters/Counters.vue +48 -48
  260. package/components/common/monitor/advanced/tools/chartOptionsModal/counters/table/Table.vue +113 -113
  261. package/components/common/monitor/advanced/tools/chartOptionsModal/counters/table/config/tableConfig.ts +71 -71
  262. package/components/common/monitor/advanced/tools/chartOptionsModal/counters/table/config/utils.ts +634 -634
  263. package/components/common/monitor/advanced/tools/chartOptionsModal/counters/table/models/interfaces.ts +28 -28
  264. package/components/common/monitor/advanced/tools/chartOptionsModal/counters/table/models/types.ts +5 -5
  265. package/components/common/monitor/advanced/tools/chartOptionsModal/counters/timespan/Timespan.vue +21 -21
  266. package/components/common/monitor/advanced/tools/chartOptionsModal/counters/timespan/form/Form.vue +381 -381
  267. package/components/common/monitor/advanced/tools/chartOptionsModal/counters/timespan/form/config/dateForm.ts +59 -59
  268. package/components/common/monitor/advanced/tools/chartOptionsModal/counters/timespan/object/Object.vue +107 -107
  269. package/components/common/monitor/advanced/tools/chartOptionsModal/counters/timespan/object/config/objectTable.ts +54 -54
  270. package/components/common/monitor/advanced/tools/chartOptionsModal/counters/timespan/object/models/interfaces.ts +4 -4
  271. package/components/common/monitor/advanced/tools/chartOptionsModal/counters/timespan/object/models/types.ts +1 -1
  272. package/components/common/monitor/advanced/tools/chartOptionsModal/metrics/Metrics.vue +42 -42
  273. package/components/common/monitor/advanced/tools/chartOptionsModal/metrics/config/optionsMetrics.ts +98 -98
  274. package/components/common/monitor/advanced/tools/chartOptionsModal/models/types.ts +3 -3
  275. package/components/common/monitor/advanced/tools/config/advancedToolbar.ts +73 -73
  276. package/components/common/monitor/advanced/tools/models/interfaces.ts +4 -4
  277. package/components/common/monitor/config/getValidDateByOption.ts +14 -14
  278. package/components/common/monitor/models/interfaces.ts +19 -19
  279. package/components/common/monitor/overview/Overview.vue +412 -412
  280. package/components/common/monitor/overview/filters/Filters.vue +210 -210
  281. package/components/common/monitor/overview/filters/config/filterOptions.ts +56 -56
  282. package/components/common/monitor/overview/filters/customIntervalModal/CustomIntervalModal.vue +220 -220
  283. package/components/common/monitor/overview/filters/customIntervalModal/config/dateChecker.ts +35 -35
  284. package/components/common/monitor/overview/filters/models/interfaces.ts +6 -6
  285. package/components/common/monitor/overview/filters/models/types.ts +3 -3
  286. package/components/common/recursionTree/models/interfaces.ts +19 -19
  287. package/components/common/resource/models/interfaces.ts +9 -9
  288. package/components/common/resource/models/types.ts +1 -1
  289. package/components/common/resource/progressBlock/ProgressBlock.vue +105 -105
  290. package/components/common/resource/simple/Simple.vue +58 -58
  291. package/components/common/resource/simple/models/enums.ts +5 -5
  292. package/components/common/resource/utils.ts +33 -33
  293. package/components/common/select/button/ButtonDropdown.vue +100 -100
  294. package/components/common/select/button/models/interfaces.ts +6 -6
  295. package/components/common/select/radio/RadioGroup.vue +108 -108
  296. package/components/common/select/radio/models/interfaces.ts +8 -8
  297. package/components/common/spiceConsole/Drawer.vue +241 -241
  298. package/components/common/spiceConsole/SpiceConsole.vue +87 -87
  299. package/components/common/spiceConsole/keyboard/Keyboard.vue +402 -402
  300. package/components/common/spiceConsole/keyboard/config/keyboardRows.ts +891 -891
  301. package/components/common/spiceConsole/keyboard/models/interfaces.ts +17 -17
  302. package/components/common/spiceConsole/models/types.ts +1 -1
  303. package/components/common/split/horizontal/Horizontal.vue +306 -306
  304. package/components/common/split/horizontal/models/interfaces.ts +5 -5
  305. package/components/common/split/vertical/Vertical.vue +213 -213
  306. package/components/common/split/vertical/models/interfaces.ts +3 -3
  307. package/components/common/tools/Actions.vue +163 -163
  308. package/components/common/tools/models/interfaces.ts +6 -6
  309. package/components/common/vm/actions/add/Add.vue +687 -687
  310. package/components/common/vm/actions/add/FolderTreeView.vue +83 -83
  311. package/components/common/vm/actions/add/config/capabilities.ts +670 -670
  312. package/components/common/vm/actions/add/customizeHardware/CustomizeHardware.vue +236 -236
  313. package/components/common/vm/actions/add/customizeHardware/config/navItems.ts +19 -19
  314. package/components/common/vm/actions/add/customizeHardware/models/interfaces.ts +7 -7
  315. package/components/common/vm/actions/add/customizeHardware/virtualHardware/VirtualHardware.vue +611 -611
  316. package/components/common/vm/actions/add/customizeHardware/virtualHardware/browseView/BrowseView.vue +203 -203
  317. package/components/common/vm/actions/add/customizeHardware/virtualHardware/browseView/models/interfaces.ts +8 -8
  318. package/components/common/vm/actions/add/customizeHardware/virtualHardware/bus/Bus.vue +127 -127
  319. package/components/common/vm/actions/add/customizeHardware/virtualHardware/bus/config/options.ts +13 -13
  320. package/components/common/vm/actions/add/customizeHardware/virtualHardware/cdDvdDrive/CdDvdDrive.vue +223 -223
  321. package/components/common/vm/actions/add/customizeHardware/virtualHardware/cdDvdDrive/config/fileTypes.ts +9 -9
  322. package/components/common/vm/actions/add/customizeHardware/virtualHardware/cdDvdDrive/config/options.ts +11 -11
  323. package/components/common/vm/actions/add/customizeHardware/virtualHardware/cdDvdDrive/media/Media.vue +55 -55
  324. package/components/common/vm/actions/add/customizeHardware/virtualHardware/cdDvdDrive/models/types.ts +1 -1
  325. package/components/common/vm/actions/add/customizeHardware/virtualHardware/config/binaryOptions.ts +12 -12
  326. package/components/common/vm/actions/add/customizeHardware/virtualHardware/config/dropdownItems.ts +52 -52
  327. package/components/common/vm/actions/add/customizeHardware/virtualHardware/cpu/CoresPerSocket.vue +97 -97
  328. package/components/common/vm/actions/add/customizeHardware/virtualHardware/cpu/Cpu.vue +372 -372
  329. package/components/common/vm/actions/add/customizeHardware/virtualHardware/cpu/CpuHotPlug.vue +49 -49
  330. package/components/common/vm/actions/add/customizeHardware/virtualHardware/cpu/CpuModel.vue +220 -220
  331. package/components/common/vm/actions/add/customizeHardware/virtualHardware/cpu/Hv.vue +93 -93
  332. package/components/common/vm/actions/add/customizeHardware/virtualHardware/cpu/Iommu.vue +52 -52
  333. package/components/common/vm/actions/add/customizeHardware/virtualHardware/cpu/MaxCpu.vue +105 -105
  334. package/components/common/vm/actions/add/customizeHardware/virtualHardware/cpu/Pc.vue +54 -54
  335. package/components/common/vm/actions/add/customizeHardware/virtualHardware/cpu/Sa.vue +102 -102
  336. package/components/common/vm/actions/add/customizeHardware/virtualHardware/cpu/config/cpuOptions.ts +19 -19
  337. package/components/common/vm/actions/add/customizeHardware/virtualHardware/cpu/shares/Shares.vue +155 -155
  338. package/components/common/vm/actions/add/customizeHardware/virtualHardware/cpu/shares/config/options.ts +28 -28
  339. package/components/common/vm/actions/add/customizeHardware/virtualHardware/cpu/tooltip/Tooltip.vue +58 -58
  340. package/components/common/vm/actions/add/customizeHardware/virtualHardware/limit/Limit.vue +214 -214
  341. package/components/common/vm/actions/add/customizeHardware/virtualHardware/limit/config/options.ts +28 -28
  342. package/components/common/vm/actions/add/customizeHardware/virtualHardware/memory/Memory.vue +284 -284
  343. package/components/common/vm/actions/add/customizeHardware/virtualHardware/memory/MemoryHotPlug.vue +53 -53
  344. package/components/common/vm/actions/add/customizeHardware/virtualHardware/memory/config/memoryOptions.ts +23 -23
  345. package/components/common/vm/actions/add/customizeHardware/virtualHardware/models/interfaces.ts +125 -125
  346. package/components/common/vm/actions/add/customizeHardware/virtualHardware/models/types.ts +4 -4
  347. package/components/common/vm/actions/add/customizeHardware/virtualHardware/newHardDisk/DiskFile.vue +24 -24
  348. package/components/common/vm/actions/add/customizeHardware/virtualHardware/newHardDisk/Location.vue +171 -171
  349. package/components/common/vm/actions/add/customizeHardware/virtualHardware/newHardDisk/MaximumSize.vue +27 -27
  350. package/components/common/vm/actions/add/customizeHardware/virtualHardware/newHardDisk/NewHardDisk.vue +452 -452
  351. package/components/common/vm/actions/add/customizeHardware/virtualHardware/newHardDisk/cache/Cache.vue +80 -80
  352. package/components/common/vm/actions/add/customizeHardware/virtualHardware/newHardDisk/cache/config/options.ts +7 -7
  353. package/components/common/vm/actions/add/customizeHardware/virtualHardware/newHardDisk/limitIops/LimitIops.vue +151 -151
  354. package/components/common/vm/actions/add/customizeHardware/virtualHardware/newHardDisk/limitIops/config/options.ts +28 -28
  355. package/components/common/vm/actions/add/customizeHardware/virtualHardware/newHardDisk/mode/Mode.vue +87 -87
  356. package/components/common/vm/actions/add/customizeHardware/virtualHardware/newHardDisk/mode/config/options.ts +18 -18
  357. package/components/common/vm/actions/add/customizeHardware/virtualHardware/newHardDisk/provisioning/Provisioning.vue +87 -87
  358. package/components/common/vm/actions/add/customizeHardware/virtualHardware/newHardDisk/provisioning/config/options.ts +15 -15
  359. package/components/common/vm/actions/add/customizeHardware/virtualHardware/newHardDisk/sharing/Sharing.vue +85 -85
  360. package/components/common/vm/actions/add/customizeHardware/virtualHardware/newHardDisk/sharing/config/options.ts +12 -12
  361. package/components/common/vm/actions/add/customizeHardware/virtualHardware/newNetwork/Location.vue +141 -141
  362. package/components/common/vm/actions/add/customizeHardware/virtualHardware/newNetwork/NewNetwork.vue +256 -256
  363. package/components/common/vm/actions/add/customizeHardware/virtualHardware/newNetwork/adapterType/AdapterType.vue +86 -86
  364. package/components/common/vm/actions/add/customizeHardware/virtualHardware/newNetwork/adapterType/config/options.ts +9 -9
  365. package/components/common/vm/actions/add/customizeHardware/virtualHardware/newNetwork/macAddress/MacAddress.vue +140 -140
  366. package/components/common/vm/actions/add/customizeHardware/virtualHardware/newNetwork/macAddress/config/options.ts +11 -11
  367. package/components/common/vm/actions/add/customizeHardware/virtualHardware/newPciDevice/NewPciDevice.vue +157 -157
  368. package/components/common/vm/actions/add/customizeHardware/virtualHardware/newPciDevice/config/options.ts +7 -7
  369. package/components/common/vm/actions/add/customizeHardware/virtualHardware/newPciDevice/directPathIo/DirectPathIo.vue +44 -44
  370. package/components/common/vm/actions/add/customizeHardware/virtualHardware/newPciDevice/dynamicDirectPathIo/DynamicDirectPathIo.vue +49 -49
  371. package/components/common/vm/actions/add/customizeHardware/virtualHardware/newPciDevice/dynamicDirectPathIo/config/options.ts +10 -10
  372. package/components/common/vm/actions/add/customizeHardware/virtualHardware/newPciDevice/note/Note.vue +27 -27
  373. package/components/common/vm/actions/add/customizeHardware/virtualHardware/newPciDevice/nvidiaGrid/NvidiaGrid.vue +41 -41
  374. package/components/common/vm/actions/add/customizeHardware/virtualHardware/newPciDevice/typeSelection/TypeSelection.vue +56 -56
  375. package/components/common/vm/actions/add/customizeHardware/virtualHardware/newUsbController/NewUsbController.vue +65 -65
  376. package/components/common/vm/actions/add/customizeHardware/virtualHardware/newUsbController/config/options.ts +6 -6
  377. package/components/common/vm/actions/add/customizeHardware/virtualHardware/other/InputDevices.vue +21 -21
  378. package/components/common/vm/actions/add/customizeHardware/virtualHardware/other/Other.vue +27 -27
  379. package/components/common/vm/actions/add/customizeHardware/virtualHardware/reservation/Reservation.vue +231 -231
  380. package/components/common/vm/actions/add/customizeHardware/virtualHardware/reservation/config/options.ts +33 -33
  381. package/components/common/vm/actions/add/customizeHardware/virtualHardware/videoCard/Graphics.vue +45 -45
  382. package/components/common/vm/actions/add/customizeHardware/virtualHardware/videoCard/TotalVideoMemory.vue +120 -120
  383. package/components/common/vm/actions/add/customizeHardware/virtualHardware/videoCard/VideoCard.vue +173 -173
  384. package/components/common/vm/actions/add/customizeHardware/virtualHardware/videoCard/config/options.ts +11 -11
  385. package/components/common/vm/actions/add/customizeHardware/virtualHardware/videoCard/model/Model.vue +57 -57
  386. package/components/common/vm/actions/add/customizeHardware/virtualHardware/videoCard/model/config/options.ts +10 -10
  387. package/components/common/vm/actions/add/customizeHardware/virtualHardware/videoCard/numberDisplays/NumberDisplays.vue +82 -82
  388. package/components/common/vm/actions/add/customizeHardware/virtualHardware/videoCard/numberDisplays/config/options.ts +14 -14
  389. package/components/common/vm/actions/add/customizeHardware/vmoptions/Vmoptions.vue +145 -145
  390. package/components/common/vm/actions/add/customizeHardware/vmoptions/bootOptions/BootOptions.vue +110 -110
  391. package/components/common/vm/actions/add/customizeHardware/vmoptions/bootOptions/Menu.vue +45 -45
  392. package/components/common/vm/actions/add/customizeHardware/vmoptions/bootOptions/Secure.vue +45 -45
  393. package/components/common/vm/actions/add/customizeHardware/vmoptions/bootOptions/delay/Delay.vue +50 -50
  394. package/components/common/vm/actions/add/customizeHardware/vmoptions/bootOptions/delay/config/config.ts +14 -14
  395. package/components/common/vm/actions/add/customizeHardware/vmoptions/bootOptions/firmware/Firmware.vue +83 -83
  396. package/components/common/vm/actions/add/customizeHardware/vmoptions/bootOptions/firmware/config/config.ts +11 -11
  397. package/components/common/vm/actions/add/customizeHardware/vmoptions/bootOptions/order/Order.vue +195 -195
  398. package/components/common/vm/actions/add/customizeHardware/vmoptions/bootOptions/order/models/interfaces.ts +8 -8
  399. package/components/common/vm/actions/add/customizeHardware/vmoptions/generalOptions/GeneralOptions.vue +114 -114
  400. package/components/common/vm/actions/add/customizeHardware/vmoptions/models/interfaces.ts +34 -34
  401. package/components/common/vm/actions/add/customizeHardware/vmoptions/remoteConsoleOptions/CopyPaste.vue +45 -45
  402. package/components/common/vm/actions/add/customizeHardware/vmoptions/remoteConsoleOptions/FileTransfer.vue +49 -49
  403. package/components/common/vm/actions/add/customizeHardware/vmoptions/remoteConsoleOptions/FolderSharing.vue +50 -50
  404. package/components/common/vm/actions/add/customizeHardware/vmoptions/remoteConsoleOptions/PlaybackCompression.vue +49 -49
  405. package/components/common/vm/actions/add/customizeHardware/vmoptions/remoteConsoleOptions/PowerControl.vue +49 -49
  406. package/components/common/vm/actions/add/customizeHardware/vmoptions/remoteConsoleOptions/RemoteConsoleOptions.vue +230 -230
  407. package/components/common/vm/actions/add/customizeHardware/vmoptions/remoteConsoleOptions/imgCompression/ImgCompression.vue +82 -82
  408. package/components/common/vm/actions/add/customizeHardware/vmoptions/remoteConsoleOptions/imgCompression/config/config.ts +14 -14
  409. package/components/common/vm/actions/add/customizeHardware/vmoptions/remoteConsoleOptions/jpegCompression/JpegCompression.vue +82 -82
  410. package/components/common/vm/actions/add/customizeHardware/vmoptions/remoteConsoleOptions/jpegCompression/config/config.ts +12 -12
  411. package/components/common/vm/actions/add/customizeHardware/vmoptions/remoteConsoleOptions/keymap/Keymap.vue +50 -50
  412. package/components/common/vm/actions/add/customizeHardware/vmoptions/remoteConsoleOptions/keymap/config/config.ts +6 -6
  413. package/components/common/vm/actions/add/customizeHardware/vmoptions/remoteConsoleOptions/mouseMode/MouseMode.vue +52 -52
  414. package/components/common/vm/actions/add/customizeHardware/vmoptions/remoteConsoleOptions/mouseMode/config/config.ts +11 -11
  415. package/components/common/vm/actions/add/customizeHardware/vmoptions/remoteConsoleOptions/password/Password.vue +134 -134
  416. package/components/common/vm/actions/add/customizeHardware/vmoptions/remoteConsoleOptions/password/models/interfaces.ts +5 -5
  417. package/components/common/vm/actions/add/customizeHardware/vmoptions/remoteConsoleOptions/password/utils.ts +12 -12
  418. package/components/common/vm/actions/add/customizeHardware/vmoptions/remoteConsoleOptions/sharePolicy/SharePolicy.vue +52 -52
  419. package/components/common/vm/actions/add/customizeHardware/vmoptions/remoteConsoleOptions/sharePolicy/config/config.ts +11 -11
  420. package/components/common/vm/actions/add/customizeHardware/vmoptions/remoteConsoleOptions/streamingMode/StreamingMode.vue +82 -82
  421. package/components/common/vm/actions/add/customizeHardware/vmoptions/remoteConsoleOptions/streamingMode/config/config.ts +12 -12
  422. package/components/common/vm/actions/add/customizeHardware/vmoptions/remoteConsoleOptions/type/Type.vue +82 -82
  423. package/components/common/vm/actions/add/customizeHardware/vmoptions/remoteConsoleOptions/type/config/config.ts +7 -7
  424. package/components/common/vm/actions/add/customizeHardware/vmoptions/remoteConsoleOptions/usbRedirection/UsbRedirection.vue +56 -56
  425. package/components/common/vm/actions/add/customizeHardware/vmoptions/remoteConsoleOptions/usbRedirection/config/config.ts +14 -14
  426. package/components/common/vm/actions/add/customizeHardware/vmoptions/remoteConsoleOptions/zlibCompression/ZlibCompression.vue +82 -82
  427. package/components/common/vm/actions/add/customizeHardware/vmoptions/remoteConsoleOptions/zlibCompression/config/config.ts +12 -12
  428. package/components/common/vm/actions/add/customizeHardware/vmoptions/tools/Tools.vue +63 -63
  429. package/components/common/vm/actions/add/models/enums.ts +89 -89
  430. package/components/common/vm/actions/add/models/interfaces.ts +126 -126
  431. package/components/common/vm/actions/add/models/types.ts +65 -65
  432. package/components/common/vm/actions/add/readyToComplete/ReadyToComplete.vue +15 -15
  433. package/components/common/vm/actions/add/select/compatibility/Compatibility.vue +151 -151
  434. package/components/common/vm/actions/add/select/computeResource/ComputeResource.spec.ts +479 -479
  435. package/components/common/vm/actions/add/select/computeResource/ComputeResource.vue +170 -170
  436. package/components/common/vm/actions/add/select/computeResource/TreeView.vue +126 -126
  437. package/components/common/vm/actions/add/select/createType/CreateType.vue +61 -61
  438. package/components/common/vm/actions/add/select/createType/config/items.ts +26 -26
  439. package/components/common/vm/actions/add/select/models/interfaces.ts +32 -32
  440. package/components/common/vm/actions/add/select/models/types.ts +44 -44
  441. package/components/common/vm/actions/add/select/name/Name.vue +215 -215
  442. package/components/common/vm/actions/add/select/os/os.vue +221 -221
  443. package/components/common/vm/actions/add/select/storage/Storage.vue +176 -176
  444. package/components/common/vm/actions/add/select/storage/config/config.ts +148 -148
  445. package/components/common/vm/actions/add/select/storage/models/types.ts +15 -15
  446. package/components/common/vm/actions/add/utils.ts +118 -118
  447. package/components/common/vm/actions/editSettings/EditSettings.vue +312 -312
  448. package/components/common/vm/actions/editSettings/models/types.ts +23 -23
  449. package/components/common/vm/actions/editSettings/utils.ts +48 -48
  450. package/components/common/vm/actions/models/interfaces.ts +6 -6
  451. package/components/common/vm/actions/models/types.ts +11 -11
  452. package/components/common/vm/actions/utils.ts +221 -221
  453. package/components/common/wizards/datastore/add/Add.vue +382 -382
  454. package/components/common/wizards/datastore/add/config/stepItems.ts +160 -160
  455. package/components/common/wizards/datastore/add/local/Local.vue +67 -67
  456. package/components/common/wizards/datastore/add/local/createName/CreateName.vue +159 -159
  457. package/components/common/wizards/datastore/add/local/createName/config/defaultForm.ts +15 -15
  458. package/components/common/wizards/datastore/add/models/interfaces.ts +35 -35
  459. package/components/common/wizards/datastore/add/models/types.ts +14 -14
  460. package/components/common/wizards/datastore/add/nfs/Nfs.vue +91 -91
  461. package/components/common/wizards/datastore/add/nfs/accessibility/Accessibility.vue +95 -95
  462. package/components/common/wizards/datastore/add/nfs/accessibility/config/tabsPannel.ts +24 -24
  463. package/components/common/wizards/datastore/add/nfs/accessibility/models/interfaces.ts +9 -9
  464. package/components/common/wizards/datastore/add/nfs/accessibility/models/types.ts +5 -5
  465. package/components/common/wizards/datastore/add/nfs/accessibility/tablesView/TablesView.vue +141 -141
  466. package/components/common/wizards/datastore/add/nfs/accessibility/tablesView/config/compatibleTable.ts +54 -54
  467. package/components/common/wizards/datastore/add/nfs/accessibility/tablesView/config/hostsTableItems.ts +75 -75
  468. package/components/common/wizards/datastore/add/nfs/accessibility/tablesView/config/incompatibleTable.ts +68 -68
  469. package/components/common/wizards/datastore/add/nfs/accessibility/tablesView/config/tableKeys.ts +15 -15
  470. package/components/common/wizards/datastore/add/nfs/configuration/config/defaultForm.ts +33 -33
  471. package/components/common/wizards/datastore/add/nfs/configuration/models/interfaces.ts +12 -12
  472. package/components/common/wizards/datastore/add/nfs/configuration/serversList/DeletePopover.vue +97 -97
  473. package/components/common/wizards/datastore/add/nfs/configuration/serversList/config/serversListConfig.ts +41 -41
  474. package/components/common/wizards/datastore/add/nfs/configuration/serversList/config/tableKeys.ts +3 -3
  475. package/components/common/wizards/datastore/add/nfs/configuration/serversList/models/interfaces.ts +11 -11
  476. package/components/common/wizards/datastore/add/nfs/configuration/serversList/models/types.ts +1 -1
  477. package/components/common/wizards/datastore/add/nfs/kerberosAuthentication/config/radioOptions.ts +24 -24
  478. package/components/common/wizards/datastore/add/nfs/version/Version.vue +42 -42
  479. package/components/common/wizards/datastore/add/nfs/version/config/versionOptions.ts +20 -20
  480. package/components/common/wizards/datastore/add/readyComplete/ReadyComplete.vue +77 -77
  481. package/components/common/wizards/datastore/add/readyComplete/config/propertiesDetails.ts +165 -165
  482. package/components/common/wizards/datastore/add/readyComplete/models/interfaces.ts +4 -4
  483. package/components/common/wizards/datastore/add/sharedStorm/SharedStorm.vue +85 -85
  484. package/components/common/wizards/datastore/add/sharedStorm/deviceSelection/DeviceSelection.vue +447 -447
  485. package/components/common/wizards/datastore/add/sharedStorm/deviceSelection/config/defaultForm.ts +18 -18
  486. package/components/common/wizards/datastore/add/sharedStorm/deviceSelection/config/selectOptions.ts +14 -14
  487. package/components/common/wizards/datastore/add/sharedStorm/deviceSelection/hostTable/config/hostsTable.ts +87 -87
  488. package/components/common/wizards/datastore/add/sharedStorm/deviceSelection/hostTable/config/tableKeys.ts +11 -11
  489. package/components/common/wizards/datastore/add/sharedStorm/deviceSelection/models/interfaces.ts +55 -55
  490. package/components/common/wizards/datastore/add/sharedStorm/deviceSelection/models/types.ts +14 -14
  491. package/components/common/wizards/datastore/add/sharedStorm/partitionConfiguration/config/selectOptions.ts +46 -46
  492. package/components/common/wizards/datastore/add/sharedStorm/partitionConfiguration/graphicTooltip/graphicTooltip.vue +64 -64
  493. package/components/common/wizards/datastore/add/sharedStorm/partitionConfiguration/sizeGraphic/sizeGraphic.vue +225 -225
  494. package/components/common/wizards/datastore/add/sharedStorm/version/Version.vue +39 -39
  495. package/components/common/wizards/datastore/add/sharedStorm/version/config/versionOptions.ts +21 -21
  496. package/components/common/wizards/datastore/add/types/Types.vue +77 -77
  497. package/components/common/wizards/datastore/add/types/config/typeOptions.ts +39 -39
  498. package/components/common/wizards/datastore/add/utils.ts +69 -69
  499. package/components/models/interfaces.ts +14 -14
  500. package/composables/deepCopy.ts +21 -21
  501. package/composables/useDiff.ts +15 -15
  502. package/composables/useLocal.ts +36 -36
  503. package/composables/useLocalStorage.ts +45 -45
  504. package/composables/useThrottle.ts +32 -32
  505. package/composables/useUniqueId.ts +5 -5
  506. package/config/regExp.ts +13 -13
  507. package/eslint/index.js +15 -15
  508. package/eslint/no-import-type.js +17 -17
  509. package/eslint/no-invalid-type-prefix.js +32 -32
  510. package/minify.js +51 -51
  511. package/models/composables/useMyFetch/interfaces.ts +4 -4
  512. package/models/composables/useMyFetch/types.ts +1 -1
  513. package/models/enums.ts +21 -21
  514. package/models/interfaces.ts +29 -29
  515. package/models/plugins/date/interfaces.ts +5 -5
  516. package/models/plugins/date/types.ts +1 -1
  517. package/models/plugins/validation/interfaces.ts +21 -21
  518. package/models/plugins/validation/types.ts +1 -1
  519. package/models/store/host/interfaces.ts +38 -38
  520. package/models/store/interfaces.ts +47 -47
  521. package/models/store/network/interfaces.ts +13 -13
  522. package/models/store/vm/interfaces.ts +207 -207
  523. package/models/types.ts +6 -6
  524. package/nuxt.config.ts +8 -8
  525. package/package.json +39 -39
  526. package/plugins/binary.ts +122 -122
  527. package/plugins/date.ts +179 -179
  528. package/plugins/recursion.ts +230 -230
  529. package/plugins/spice-console/spice.console.ts +128 -128
  530. package/plugins/text.ts +48 -48
  531. package/plugins/validation.ts +172 -172
  532. package/public/spice-console/application/WorkerProcess.js +3350 -3350
  533. package/public/spice-console/application/WorkerProcess_back.js +3144 -3144
  534. package/public/spice-console/application/WorkerProcess_meta.js +3102 -3102
  535. package/public/spice-console/application/WorkerProcess_reverse.js +3214 -3214
  536. package/public/spice-console/application/agent.js +175 -175
  537. package/public/spice-console/application/application.js +641 -641
  538. package/public/spice-console/application/checkActivity.js +50 -50
  539. package/public/spice-console/application/clientgui.js +842 -842
  540. package/public/spice-console/application/clipboard/clipboarddataparser.js +92 -92
  541. package/public/spice-console/application/clipboard/local/localClipboard.js +110 -110
  542. package/public/spice-console/application/clipboard.js +82 -82
  543. package/public/spice-console/application/imagecache.js +81 -81
  544. package/public/spice-console/application/inputmanager.js +270 -270
  545. package/public/spice-console/application/packetfactory.js +202 -202
  546. package/public/spice-console/application/packetfilter.js +103 -103
  547. package/public/spice-console/application/packetprocess.js +75 -75
  548. package/public/spice-console/application/rasteroperation.js +118 -118
  549. package/public/spice-console/application/spiceconnection.js +197 -197
  550. package/public/spice-console/application/stream.js +67 -67
  551. package/public/spice-console/application/virtualmouse.js +109 -109
  552. package/public/spice-console/keymaps/keyevent.js +36 -36
  553. package/public/spice-console/keymaps/keymap.js +229 -229
  554. package/public/spice-console/keymaps/keymapes.js +375 -375
  555. package/public/spice-console/keymaps/keymapesObj.js +316 -316
  556. package/public/spice-console/keymaps/keymapus.js +317 -317
  557. package/public/spice-console/keymaps/scanCodeObjModifier.js +65 -65
  558. package/public/spice-console/keymaps/scanCodeObjProvider.js +60 -60
  559. package/public/spice-console/lib/AsyncConsumer.js +204 -204
  560. package/public/spice-console/lib/AsyncWorker.js +60 -60
  561. package/public/spice-console/lib/CollisionDetector.js +27 -27
  562. package/public/spice-console/lib/DataLogger.js +197 -197
  563. package/public/spice-console/lib/GenericObjectPool.js +152 -152
  564. package/public/spice-console/lib/GlobalPool.js +114 -114
  565. package/public/spice-console/lib/ImageUncompressor.js +138 -138
  566. package/public/spice-console/lib/IntegrationBenchmark.js +64 -64
  567. package/public/spice-console/lib/PacketWorkerIdentifier.js +107 -107
  568. package/public/spice-console/lib/SyncAsyncHandler.js +46 -46
  569. package/public/spice-console/lib/base64.js +298 -298
  570. package/public/spice-console/lib/biginteger.js +1640 -1640
  571. package/public/spice-console/lib/bowser.js +276 -276
  572. package/public/spice-console/lib/decoder/dixie.js +7930 -7930
  573. package/public/spice-console/lib/decoder/jmuxer.js +2815 -2815
  574. package/public/spice-console/lib/displayRouter.js +83 -83
  575. package/public/spice-console/lib/encrypt.js +191 -191
  576. package/public/spice-console/lib/flipper.js +39 -39
  577. package/public/spice-console/lib/graphic.js +1230 -1230
  578. package/public/spice-console/lib/graphicdebug.js +223 -223
  579. package/public/spice-console/lib/images/bitmap.js +194 -194
  580. package/public/spice-console/lib/images/jsquic_family.js +83 -83
  581. package/public/spice-console/lib/images/jsquic_rgba.js +342 -342
  582. package/public/spice-console/lib/images/jsquic_uncompress.js +529 -529
  583. package/public/spice-console/lib/images/lz.js +717 -717
  584. package/public/spice-console/lib/images/png.js +275 -275
  585. package/public/spice-console/lib/jgestures.min.js +43 -43
  586. package/public/spice-console/lib/jquery-2.0.3.js +8829 -8829
  587. package/public/spice-console/lib/jquery-mousewheel.js +83 -83
  588. package/public/spice-console/lib/jquery-visibility.min.js +1 -1
  589. package/public/spice-console/lib/jsbn.js +578 -578
  590. package/public/spice-console/lib/jsbn2.js +675 -675
  591. package/public/spice-console/lib/lodash.4.0.0.min.js +136 -136
  592. package/public/spice-console/lib/modernizr.js +39 -39
  593. package/public/spice-console/lib/pixastic.js +3244 -3244
  594. package/public/spice-console/lib/prettyprint.js +794 -794
  595. package/public/spice-console/lib/prng4.js +64 -64
  596. package/public/spice-console/lib/queue.js +259 -259
  597. package/public/spice-console/lib/rng.js +87 -87
  598. package/public/spice-console/lib/runqueue.js +103 -103
  599. package/public/spice-console/lib/sha1.js +124 -124
  600. package/public/spice-console/lib/stuckkeyshandler.js +122 -122
  601. package/public/spice-console/lib/timelapsedetector.js +62 -62
  602. package/public/spice-console/lib/utils.js +327 -327
  603. package/public/spice-console/lib/virtualjoystick.js +370 -370
  604. package/public/spice-console/network/busconnection.js +195 -195
  605. package/public/spice-console/network/clusternodechooser.js +49 -49
  606. package/public/spice-console/network/connectioncontrol.js +60 -60
  607. package/public/spice-console/network/packetcontroller.js +62 -62
  608. package/public/spice-console/network/packetextractor.js +73 -73
  609. package/public/spice-console/network/packetlinkfactory.js +64 -64
  610. package/public/spice-console/network/packetreassembler.js +77 -77
  611. package/public/spice-console/network/reassemblerfactory.js +39 -39
  612. package/public/spice-console/network/sizedefiner.js +86 -86
  613. package/public/spice-console/network/socket.js +120 -120
  614. package/public/spice-console/network/socketqueue.js +95 -95
  615. package/public/spice-console/network/websocketwrapper.js +75 -75
  616. package/public/spice-console/process/busprocess.js +309 -309
  617. package/public/spice-console/process/cursorprocess.js +110 -110
  618. package/public/spice-console/process/displaypreprocess.js +152 -152
  619. package/public/spice-console/process/displayprocess.js +210 -210
  620. package/public/spice-console/process/inputprocess.js +204 -204
  621. package/public/spice-console/process/mainprocess.js +78 -78
  622. package/public/spice-console/process/playbackprocess.js +233 -233
  623. package/public/spice-console/run.js +181 -181
  624. package/public/spice-console/spiceobjects/generated/protocol.js +537 -537
  625. package/public/spice-console/spiceobjects/spiceobjects.js +3474 -3474
  626. package/public/spice-console/swcanvas/swcanvas.js +82 -82
  627. package/public/spice-console/tools/generate.php +269 -269
  628. package/public/spice-console/tools/generateKeyboardLayout.php +63 -63
  629. package/public/spice-console/tools/generateSpiceObject.php +81 -81
  630. package/tsconfig.json +4 -4
@@ -1,979 +1,979 @@
1
- <template>
2
- <div
3
- v-if="props.diagramData"
4
- :class="{ 'diagram-min-width': !props.inPortlet }"
5
- >
6
- <div class="diagram-main-container">
7
- <common-diagram-main-header
8
- :in-portlet="props.inPortlet"
9
- :is-show-diagram="isShowDiagram"
10
- :diagram-name="props.diagramData.diagramName"
11
- @toggle-diagram="onToggleDiagram"
12
- @show-modal="onShowModal"
13
- />
14
- <common-diagram-main-diagram
15
- :diagram-data="props.diagramData"
16
- :is-show-diagram="isShowDiagram"
17
- :in-portlet="props.inPortlet"
18
- :networks-with-positions="networksWithPositions"
19
- :main-rect-height="mainRectHeight"
20
- :main-switch-line="mainSwitchLine"
21
- :selected-main-line="selectedMainLine"
22
- :adapters-with-positions="adaptersWithPositions"
23
- :selected-port="selectedPort"
24
- :selected-adapter="selectedAdapter"
25
- :selected-network="selectedNetwork"
26
- :selected-switch-line-y="selectedSwitchLineY"
27
- @click-diagram="onClickDiagram"
28
- @toggle-adapters="onToggleAdapters"
29
- @select-adapter="onSelectAdapter"
30
- @toggle-ports="onTogglePorts"
31
- @select-port="onSelectPort"
32
- @select-network="onSelectNetwork"
33
- @show-modal="onShowModal"
34
- />
35
- </div>
36
- <common-diagram-main-modals-view-settings-modal
37
- v-if="isShowPortViewSettingsModal"
38
- view-name="port-settings-modal"
39
- height="448px"
40
- :title="initialData.portName"
41
- :second-title="hostName"
42
- :show="isShowPortViewSettingsModal"
43
- :modal-tabs="portViewSettingsModalTabs"
44
- :view-settings-fields="portViewSettings"
45
- @hide="onHidePortViewSettingsModal"
46
- />
47
- <common-diagram-main-modals-view-settings-modal
48
- v-if="isShowNetworkViewSettingsModal"
49
- view-name="network-settings-modal"
50
- height="448px"
51
- :title="initialData.networkLabel"
52
- :show="isShowNetworkViewSettingsModal"
53
- :modal-tabs="networkViewSettingsModalTabs"
54
- :view-settings-fields="networkViewSettings"
55
- :initial-data="initialData"
56
- @hide="onHideNetworkViewSettingsModal"
57
- />
58
- <common-diagram-main-modals-view-settings-modal
59
- v-if="isShowAdapterViewSettingsModal"
60
- :view-name="localization.physicalNetworkAdapter"
61
- :title="initialData.name || localization.physicalNetworkAdapter"
62
- :second-title="props.hostName"
63
- height="448px"
64
- :show="isShowAdapterViewSettingsModal"
65
- :modal-tabs="adapterViewSettingsModalTabs"
66
- :view-settings-fields="adapterViewSettings"
67
- @hide="onHideAdapterViewSettingsModal"
68
- />
69
- <common-diagram-main-modals-view-settings-modal
70
- v-if="isShowVCenterViewSettingsModal"
71
- view-name="VCenter-settings-modal"
72
- height="182px"
73
- info-height="80px"
74
- :without-footer-padding="true"
75
- :title="initialData.vmTitle"
76
- :show="isShowVCenterViewSettingsModal"
77
- :view-settings-fields="vCenterViewSettings"
78
- @hide="onHideVCenterViewSettingsModal"
79
- />
80
- <common-diagram-main-modals-remove-modal
81
- v-if="isShowNetworkRemoveModal"
82
- :id="initialData.networkLabel"
83
- modal-name="network-port-remove-modal"
84
- view-name="port-network-remove"
85
- width="872px"
86
- height="558px"
87
- :title="localization.removePortGroup"
88
- :show="isShowNetworkRemoveModal"
89
- :is-show-loader="isShowRemoveModalLoader"
90
- @remove="onRemoveNetwork"
91
- @hide="onHideNetworkRemoveModal"
92
- />
93
- <common-diagram-main-modals-remove-modal
94
- v-if="isShowSwitchRemoveModal"
95
- :id="props.diagramData.id"
96
- modal-name="switch-remove-modal"
97
- view-name="switch-remove"
98
- width="872px"
99
- height="558px"
100
- title="Remove Standard Switch"
101
- :show="isShowSwitchRemoveModal"
102
- :is-show-loader="isShowRemoveModalLoader"
103
- @remove="onRemoveSwitch"
104
- @hide="onHideSwitchRemoveModal"
105
- />
106
- <common-diagram-main-modals-remove-modal
107
- v-if="isShowPortRemoveModal"
108
- :id="initialData.portName"
109
- modal-name="port-remove-modal"
110
- view-name="port-remove"
111
- width="872px"
112
- height="558px"
113
- :title="localization.removeVMkernelAdapter"
114
- :show="isShowPortRemoveModal"
115
- :is-show-loader="isShowRemoveModalLoader"
116
- @remove="onRemovePort"
117
- @hide="onHidePortRemoveModal"
118
- />
119
- <common-diagram-main-modals-edit-settings-modal
120
- v-if="isShowNetworkEditSettingsModal"
121
- view-name="network-edit"
122
- width="1087px"
123
- height="662px"
124
- :show="isShowNetworkEditSettingsModal"
125
- :title="initialData.networkLabel"
126
- :initial-data="initialData"
127
- :items="networkEditSettingsTabs"
128
- :adapters="props.adapters"
129
- @send-edit-data="onSendEditData"
130
- @change-edit-fields-data="onChangeEditFieldsData"
131
- @check-network-label="onCheckNetworkLabel"
132
- @hide="onHideNetworkEditSettingsModal"
133
- />
134
- <common-diagram-main-modals-edit-settings-modal
135
- v-if="isShowPortEditSettingsModal"
136
- view-name="port-edit"
137
- width="872px"
138
- height="558px"
139
- :show="isShowPortEditSettingsModal"
140
- :title="initialData.portName"
141
- :initial-data="initialData"
142
- :items="portEditSettingsTabs"
143
- @send-edit-data="onSendEditData"
144
- @change-edit-fields-data="onChangeEditFieldsData"
145
- @hide="onHidePortEditSettingsModal"
146
- />
147
- <template v-if="!props.inPortlet">
148
- <common-diagram-main-modals-edit-settings-modal
149
- v-if="isShowSwitchEditSettingsModal"
150
- view-name="switch-edit"
151
- width="1087px"
152
- height="662px"
153
- :show="isShowSwitchEditSettingsModal"
154
- :title="props.diagramData.id"
155
- :initial-data="initialData"
156
- :items="switchEditSettingsTabs"
157
- :adapters="props.adapters"
158
- @send-edit-data="onSendEditData"
159
- @change-edit-fields-data="onChangeEditFieldsData"
160
- @check-network-label="onCheckNetworkLabel"
161
- @hide="onHideSwitchEditSettingsModal"
162
- />
163
- <common-diagram-main-modals-view-settings-modal
164
- v-if="isShowSwitchViewSettingsModal"
165
- view-name="switch-view-settings"
166
- width="576px"
167
- height="449px"
168
- info-height="390px"
169
- :with-collapse="true"
170
- :title="props.diagramData.diagramName"
171
- :show="isShowSwitchViewSettingsModal"
172
- :modal-tabs="switchViewSettingsModalTabs"
173
- :view-settings-fields="switchViewSettings"
174
- @hide="onHideSwitchViewSettingsModal"
175
- />
176
- <common-diagram-main-modals-manage-physical-adapters-modal
177
- v-if="isShowSwitchManagePhysicalAdaptersModal"
178
- view-name="switch-manage-physical-adapters"
179
- width="864px"
180
- height="510px"
181
- :show="isShowSwitchManagePhysicalAdaptersModal"
182
- :switch-name="props.diagramData.id"
183
- :free-adapters="props.freeAdapters"
184
- :adapter-status="managePhysicalAdapterStatus"
185
- :adapters="props.adapters"
186
- :initial-adapter-status="initialManagePhysicalAdapterStatus"
187
- @send-manage-physical-adapters-data="onSendManagePhysicalAdaptersData"
188
- @change-adapter-status="onChangeManagePhysicalAdapterStatus"
189
- @get-free-adapters="onGetFreeAdapters"
190
- @hide="onHideSwitchManagePhysicalAdaptersModal"
191
- />
192
- <common-add-networking
193
- v-if="isShowAddNetworkingModal"
194
- modal-name="add-networking-modal"
195
- view-name="add-networking"
196
- width="872px"
197
- height="558px"
198
- :title="localization.addNetworking"
199
- :standard-switches-initial="props.standardSwitchesInitial"
200
- :show="isShowAddNetworkingModal"
201
- :is-network-invalid="isNetworkInvalid"
202
- :free-adapters="props.freeAdapters"
203
- :adapters="props.adapters"
204
- @check-network-label="onCheckNetworkLabel"
205
- @get-existing-standard-switches="onGetExistingStandardSwitches"
206
- @get-free-adapters="onGetFreeAdapters"
207
- @send-add-networking-data="onSendNetworkData"
208
- @add-networking-data-validate="onValidateBeforeSending"
209
- @hide="onHideAddNetworkingModal"
210
- />
211
- <common-diagram-main-modals-migrate-vmkernel-adapter
212
- v-if="isShowMigrateVmkernelAdapterModal"
213
- modal-name="migrate-vmkernel-adapter-modal"
214
- view-name="migrate-vmkernel-adapter"
215
- width="956px"
216
- height="636px"
217
- :title="`esxi1.aobfg.ru - ${localization.migrateVmKernelNetworkAdapterTo} vSwitch0`"
218
- :switch-name="diagramData.id"
219
- :networks-list="props.networksList"
220
- :switch-networks="diagramData.networks"
221
- :show="isShowMigrateVmkernelAdapterModal"
222
- @hide="onHideMigrateVmkernelAdapterModal"
223
- />
224
- </template>
225
- </div>
226
- </template>
227
-
228
- <script setup lang="ts">
229
- import { UI_E_NetworkType, UI_E_PositionsY } from './models/enums'
230
- import {
231
- UI_I_Adapter,
232
- UI_I_AdapterStatus,
233
- UI_I_AdaptersWithPositions,
234
- UI_I_MainRectHeights,
235
- UI_I_ModalsInitialData,
236
- UI_I_Network,
237
- UI_I_EditFieldsData,
238
- UI_I_NetworksWithPositions,
239
- UI_I_SelectedAdapter,
240
- UI_I_SelectedPort,
241
- UI_I_SwitchLine,
242
- UI_I_ToggleDiagramAdaptersPayload,
243
- UI_I_ToggleDiagramPortsPayload,
244
- } from '~/components/common/diagramMain/models/interfaces'
245
- import { UI_I_ArbitraryObject, UI_I_Localization } from '~/models/interfaces'
246
- import {
247
- UI_I_AddNetworkingSecondSchemeDataSend,
248
- UI_I_AddNetworkingZeroOrFirstSchemeDataSend,
249
- UI_I_NetworkLabelCheckExisting,
250
- UI_I_Switch,
251
- } from '~/components/common/addNetworking/models/interfaces'
252
- import {
253
- adapterViewSettingsFunc,
254
- adapterViewSettingsModalTabsFunc,
255
- networkEditSettingsTabsFunc,
256
- networkViewSettingsFunc,
257
- networkViewSettingsModalTabsFunc,
258
- portEditSettingsTabsFunc,
259
- portViewSettingsFunc,
260
- portViewSettingsModalTabsFunc,
261
- switchEditSettingsTabsFunc,
262
- switchViewSettingsFunc,
263
- switchViewSettingsModalTabsFunc,
264
- vCenterViewSettingsFunc,
265
- } from '~/components/common/diagramMain/modals/config'
266
- import { isNetworkInvalidInitial } from '~/components/common/addNetworking/config'
267
- import {
268
- managePhysicalAdapterStatusInitial,
269
- mainRectHeightsInitial,
270
- switchLineInitial,
271
- selectedPortInitial,
272
- selectedSwitchLineYInitial,
273
- selectedAdapterInitial,
274
- } from '~/components/common/diagramMain/config'
275
- import {
276
- hasPortAndNetwork,
277
- networksPositions,
278
- getSelectNetworkDataFunc,
279
- getSelectPortDataFunc,
280
- countAdaptersHeight,
281
- getAdaptersPositions,
282
- } from '~/components/common/diagramMain/utils/utils'
283
- import {
284
- UI_I_DiagramDataFull,
285
- UI_I_NetworkFull,
286
- UI_I_SwitchAdapters,
287
- } from '~/components/common/diagramMain/models/interfaces'
288
-
289
- const props = withDefaults(
290
- defineProps<{
291
- diagramData: UI_I_DiagramDataFull | null
292
- inPortlet?: boolean
293
- standardSwitchesInitial?: UI_I_Switch[]
294
- isNetworkInvalid?: UI_I_NetworkLabelCheckExisting
295
- hostName?: string
296
- adapters?: UI_I_SwitchAdapters
297
- freeAdapters?: UI_I_Adapter[]
298
- networksList?: UI_I_NetworkFull[]
299
- }>(),
300
- {
301
- diagramData: null,
302
- inPortlet: false,
303
- standardSwitchesInitial: () => [],
304
- isNetworkInvalid: () => isNetworkInvalidInitial,
305
- hostName: '',
306
- adapters: () => ({
307
- totalItems: 0,
308
- totalPages: 0,
309
- items: [],
310
- }),
311
- freeAdapters: () => [],
312
- networksList: () => [],
313
- }
314
- )
315
-
316
- const localization = computed<UI_I_Localization>(() => useLocal())
317
- const initialData = ref<UI_I_ModalsInitialData>({})
318
- const switchInitialData = ref<UI_I_ModalsInitialData>({})
319
- const isNetworkInvalid = ref<UI_I_NetworkLabelCheckExisting>()
320
-
321
- watch(
322
- () => props.isNetworkInvalid,
323
- (newValue: UI_I_NetworkLabelCheckExisting) => {
324
- isNetworkInvalid.value = newValue
325
- },
326
- { deep: true, immediate: true }
327
- )
328
-
329
- watch(
330
- () => props.diagramData?.networking,
331
- (initial: UI_I_ModalsInitialData | undefined) => {
332
- if (initial) {
333
- initialData.value = initial
334
- switchInitialData.value = initial
335
- }
336
- },
337
- { deep: true, immediate: true }
338
- )
339
-
340
- const onValidateBeforeSending = (
341
- networkData:
342
- | UI_I_AddNetworkingSecondSchemeDataSend
343
- | UI_I_AddNetworkingZeroOrFirstSchemeDataSend,
344
- type: string,
345
- hideSendNetworkDataLoader: () => void,
346
- setValidation: (err_arg: UI_I_ArbitraryObject<string>) => void,
347
- goToLastStep: (stop?: boolean) => void
348
- ) => {
349
- emits(
350
- 'add-networking-data-validate',
351
- networkData,
352
- type,
353
- hideSendNetworkDataLoader,
354
- setValidation,
355
- goToLastStep
356
- )
357
- }
358
-
359
- let initialManagePhysicalAdapterStatus: UI_I_AdapterStatus =
360
- managePhysicalAdapterStatusInitial
361
-
362
- const managePhysicalAdapterStatus = ref<UI_I_AdapterStatus>(
363
- useDeepCopy(initialManagePhysicalAdapterStatus)
364
- )
365
-
366
- watch(
367
- () => props.diagramData,
368
- (newValue) => {
369
- if (newValue?.networking) {
370
- initialManagePhysicalAdapterStatus = {
371
- active: useDeepCopy(props.diagramData?.networking?.activeAdapters),
372
- standby: useDeepCopy(props.diagramData?.networking?.standbyAdapters),
373
- unused: useDeepCopy(props.diagramData?.networking?.unusedAdapters),
374
- }
375
-
376
- managePhysicalAdapterStatus.value = useDeepCopy(
377
- initialManagePhysicalAdapterStatus
378
- )
379
- }
380
- },
381
- { deep: true, immediate: true }
382
- )
383
-
384
- const onChangeManagePhysicalAdapterStatus = (
385
- adapterStatusNew: UI_I_AdapterStatus
386
- ) => {
387
- managePhysicalAdapterStatus.value = adapterStatusNew
388
- }
389
-
390
- const isShowSwitchManagePhysicalAdaptersModal = ref<boolean>(false)
391
- const onHideSwitchManagePhysicalAdaptersModal = (): void => {
392
- isShowSwitchManagePhysicalAdaptersModal.value = false
393
- }
394
-
395
- const onSendManagePhysicalAdaptersData = (
396
- adapterStatus: UI_I_AdapterStatus,
397
- switchName: string,
398
- hideManagePhysicalAdaptersModal: () => void,
399
- hideLoader: () => void
400
- ) => {
401
- emits(
402
- 'send-manage-physical-adapters-data',
403
- adapterStatus,
404
- switchName,
405
- hideManagePhysicalAdaptersModal,
406
- hideLoader
407
- )
408
- }
409
-
410
- const isShowRemoveModalLoader = ref(false)
411
- const switchViewSettingsModalTabs = computed(() =>
412
- switchViewSettingsModalTabsFunc(localization.value)
413
- )
414
- const switchViewSettings = computed(() =>
415
- switchViewSettingsFunc(localization.value, initialData.value)
416
- )
417
- const switchEditSettingsTabs = computed(() =>
418
- switchEditSettingsTabsFunc(localization.value)
419
- )
420
- const isShowSwitchViewSettingsModal = ref<boolean>(false)
421
- const isShowSwitchEditSettingsModal = ref<boolean>(false)
422
- const isShowSwitchRemoveModal = ref<boolean>(false)
423
- const onHideSwitchViewSettingsModal = (): void => {
424
- isShowSwitchViewSettingsModal.value = false
425
- }
426
- const onHideSwitchEditSettingsModal = (): void => {
427
- isShowSwitchEditSettingsModal.value = false
428
- }
429
- const onHideSwitchRemoveModal = (): void => {
430
- isShowSwitchRemoveModal.value = false
431
- isShowRemoveModalLoader.value = false
432
- }
433
- const adapterViewSettingsModalTabs = computed(() =>
434
- adapterViewSettingsModalTabsFunc(localization.value)
435
- )
436
- const adapterViewSettings = computed(() =>
437
- adapterViewSettingsFunc(localization.value, initialData.value)
438
- )
439
- const isShowAdapterViewSettingsModal = ref<boolean>(false)
440
- const onHideAdapterViewSettingsModal = (): void => {
441
- isShowAdapterViewSettingsModal.value = false
442
- }
443
- const networkViewSettingsModalTabs = computed(() =>
444
- networkViewSettingsModalTabsFunc(localization.value)
445
- )
446
- const networkViewSettings = computed(() =>
447
- networkViewSettingsFunc(localization.value, initialData.value)
448
- )
449
- const networkEditSettingsTabs = computed(() =>
450
- networkEditSettingsTabsFunc(localization.value)
451
- )
452
- const isShowNetworkViewSettingsModal = ref<boolean>(false)
453
- const isShowNetworkEditSettingsModal = ref<boolean>(false)
454
- const isShowNetworkRemoveModal = ref<boolean>(false)
455
- const onHideNetworkViewSettingsModal = (): void => {
456
- isShowNetworkViewSettingsModal.value = false
457
- }
458
- const onHideNetworkEditSettingsModal = (): void => {
459
- isShowNetworkEditSettingsModal.value = false
460
- }
461
- const onHideNetworkRemoveModal = (): void => {
462
- isShowNetworkRemoveModal.value = false
463
- isShowRemoveModalLoader.value = false
464
- }
465
- const portViewSettingsModalTabs = computed(() =>
466
- portViewSettingsModalTabsFunc(localization.value)
467
- )
468
- const portViewSettings = computed(() =>
469
- portViewSettingsFunc(localization.value, initialData.value)
470
- )
471
- const portEditSettingsTabs = computed(() =>
472
- portEditSettingsTabsFunc(localization.value)
473
- )
474
- const isShowPortViewSettingsModal = ref<boolean>(false)
475
- const isShowPortEditSettingsModal = ref<boolean>(false)
476
- const isShowPortRemoveModal = ref<boolean>(false)
477
- const onHidePortViewSettingsModal = (): void => {
478
- isShowPortViewSettingsModal.value = false
479
- }
480
- const onHidePortEditSettingsModal = (): void => {
481
- isShowPortEditSettingsModal.value = false
482
- }
483
- const onHidePortRemoveModal = (): void => {
484
- isShowPortRemoveModal.value = false
485
- isShowRemoveModalLoader.value = false
486
- }
487
- const vCenterViewSettings = computed(() =>
488
- vCenterViewSettingsFunc(localization.value, initialData.value)
489
- )
490
- const isShowVCenterViewSettingsModal = ref<boolean>(false)
491
- const onHideVCenterViewSettingsModal = (): void => {
492
- isShowVCenterViewSettingsModal.value = false
493
- }
494
- const isShowAddNetworkingModal = ref<boolean>(false)
495
- const onHideAddNetworkingModal = (): void => {
496
- isShowAddNetworkingModal.value = false
497
- }
498
- const isShowMigrateVmkernelAdapterModal = ref<boolean>(false)
499
- const onHideMigrateVmkernelAdapterModal = (): void => {
500
- isShowMigrateVmkernelAdapterModal.value = false
501
- }
502
-
503
- const onShowModal = (
504
- value: string,
505
- properties: UI_I_ModalsInitialData
506
- ): void => {
507
- switch (value) {
508
- case 'port-view-settings':
509
- initialData.value = properties
510
- isShowPortViewSettingsModal.value = true
511
- break
512
- case 'network-view-settings':
513
- isShowNetworkViewSettingsModal.value = true
514
- initialData.value = properties
515
- break
516
- case 'adapter-view-settings':
517
- isShowAdapterViewSettingsModal.value = true
518
- initialData.value = properties
519
- break
520
- case 'v-center-view-settings':
521
- isShowVCenterViewSettingsModal.value = true
522
- initialData.value = properties
523
- break
524
- case 'network-edit-settings':
525
- isShowNetworkEditSettingsModal.value = true
526
- initialData.value = properties
527
- break
528
- case 'port-edit-settings':
529
- initialData.value = properties
530
- isShowPortEditSettingsModal.value = true
531
- break
532
- case 'network-port-remove':
533
- initialData.value = properties
534
- isShowNetworkRemoveModal.value = true
535
- break
536
- case 'port-remove':
537
- initialData.value = properties
538
- isShowPortRemoveModal.value = true
539
- break
540
- case 'switch-edit':
541
- isShowSwitchEditSettingsModal.value = true
542
- initialData.value = useDeepCopy(switchInitialData.value)
543
- break
544
- case 'switch-manage-physical-adapters':
545
- isShowSwitchManagePhysicalAdaptersModal.value = true
546
- break
547
- case 'add-networking':
548
- isShowAddNetworkingModal.value = true
549
- break
550
- case 'switch-view-settings':
551
- isShowSwitchViewSettingsModal.value = true
552
- initialData.value = useDeepCopy(switchInitialData.value)
553
- break
554
- case 'migrate-vmkernel-adapter':
555
- isShowMigrateVmkernelAdapterModal.value = true
556
- break
557
- case 'switch-remove':
558
- isShowSwitchRemoveModal.value = true
559
- break
560
- }
561
- }
562
- const onRemoveNetwork = (id: string) => {
563
- isShowRemoveModalLoader.value = true
564
- emits('remove-network', { id, hideModalCB: onHideNetworkRemoveModal })
565
- }
566
- const onRemoveSwitch = (id: string) => {
567
- isShowRemoveModalLoader.value = true
568
- emits('remove-switch', { id, hideModalCB: onHideSwitchRemoveModal })
569
- }
570
- const onRemovePort = (id: string) => {
571
- isShowRemoveModalLoader.value = true
572
- emits('remove-port', { id, hideModalCB: onHidePortRemoveModal })
573
- }
574
- const onChangeEditFieldsData = (newEditFieldsData: UI_I_EditFieldsData) => {
575
- emits('change-edit-fields-data', newEditFieldsData)
576
- }
577
- const onCheckNetworkLabel = (
578
- networkLabel: string,
579
- cb: (error_message: string) => void,
580
- hideLoader: () => void
581
- ) => {
582
- emits('check-network-label', networkLabel, cb, hideLoader)
583
- }
584
- const onGetExistingStandardSwitches = (cb: () => void) => {
585
- emits('get-existing-standard-switches', cb)
586
- }
587
- const onGetFreeAdapters = (cb: () => void) => {
588
- emits('get-free-adapters', cb)
589
- }
590
- const onSendNetworkData = (
591
- networkData:
592
- | UI_I_AddNetworkingSecondSchemeDataSend
593
- | UI_I_AddNetworkingZeroOrFirstSchemeDataSend,
594
- type: string,
595
- hideSendNetworkDataLoader: () => void,
596
- onHideAddNetworkingModal: () => void
597
- ) => {
598
- emits(
599
- 'send-add-networking-data',
600
- networkData,
601
- type,
602
- hideSendNetworkDataLoader,
603
- onHideAddNetworkingModal
604
- )
605
- }
606
- const onSendEditData = (type: string, hideModal: () => void, name?: string) => {
607
- emits('send-edit-data', type, initialData.value, hideModal, name)
608
- }
609
- const isShowDiagram = ref<boolean>(true)
610
- const onToggleDiagram = () => {
611
- isShowDiagram.value = !isShowDiagram.value
612
- }
613
- const mainRectHeights = ref<UI_I_MainRectHeights>(
614
- useDeepCopy(mainRectHeightsInitial)
615
- )
616
-
617
- const switchLine = ref<UI_I_SwitchLine>(useDeepCopy(switchLineInitial))
618
- const mainSwitchLine = computed<UI_I_SwitchLine>(
619
- () =>
620
- (switchLine.value.ay && {
621
- y1: Math.min(switchLine.value.y1, switchLine.value.ay),
622
- y2: Math.max(switchLine.value.y2, switchLine.value.ay),
623
- }) || { y1: 0, y2: 0 }
624
- )
625
-
626
- const selectedMainLine = ref(false)
627
- const selectedPort = ref<UI_I_SelectedPort>(useDeepCopy(selectedPortInitial))
628
- const selectedAdapter = ref<UI_I_SelectedAdapter>(
629
- useDeepCopy(selectedAdapterInitial)
630
- )
631
- const selectedNetwork = ref<string>('-1')
632
- const selectedSwitchLineY = ref<UI_I_SwitchLine>(
633
- useDeepCopy(selectedSwitchLineYInitial)
634
- )
635
- const mainRectHeight = computed<number>(() =>
636
- Math.max(
637
- mainRectHeights.value.networksHeight,
638
- mainRectHeights.value.adaptersHeight
639
- )
640
- )
641
-
642
- const countNetworksPositions = (): UI_I_NetworksWithPositions[] => {
643
- let lastNetworkHeight = 0
644
- let lastPosition = UI_E_PositionsY.DIAGRAM_TOP + UI_E_PositionsY.BETWEEN_RECTS
645
- mainRectHeights.value.networksHeight =
646
- UI_E_PositionsY.DIAGRAM_TOP + UI_E_PositionsY.BETWEEN_RECTS
647
- return (
648
- props.diagramData?.networks?.map(
649
- (network: UI_I_Network, index: number, networks: UI_I_Network[]) => {
650
- let portsCount = 0
651
- if (
652
- network.networkType ===
653
- (UI_E_NetworkType.VMPortsGroup || UI_E_NetworkType.VCenter)
654
- ) {
655
- portsCount = network.ports.length
656
- } else {
657
- portsCount = network.sysx ? 1 : 0
658
- }
659
- const portsHeight = network.toggle
660
- ? network.networkType === UI_E_NetworkType.VCenter
661
- ? portsCount * UI_E_PositionsY.SINGLE_V_CENTER_HEIGHT
662
- : portsCount * UI_E_PositionsY.SINGLE_PORT_HEIGHT
663
- : 0
664
- const networkHeight =
665
- UI_E_PositionsY.PORTS_FROM_RECT_TOP +
666
- portsHeight +
667
- (network.networkType === UI_E_NetworkType.VCenter
668
- ? UI_E_PositionsY.SINGLE_V_CENTER_HEIGHT - 10
669
- : UI_E_PositionsY.SINGLE_PORT_HEIGHT) +
670
- UI_E_PositionsY.SPACE_FROM_RECT_BOTTOM
671
-
672
- lastPosition +=
673
- lastNetworkHeight + (index && UI_E_PositionsY.BETWEEN_RECTS)
674
- lastNetworkHeight = networkHeight
675
-
676
- const connectLineY = lastPosition + networkHeight / 2
677
- const titlePosition = lastPosition + UI_E_PositionsY.TITLE_FROM_RECT_TOP
678
- const vlanPosition = lastPosition + UI_E_PositionsY.VLAN_FROM_RECT_TOP
679
- const portsPosition = lastPosition + UI_E_PositionsY.PORTS_FROM_RECT_TOP
680
-
681
- const networkPortsName =
682
- (network.networkType === UI_E_NetworkType.VMkernel &&
683
- 'VMkernel Ports') ||
684
- (network.networkType === UI_E_NetworkType.VMPortsGroup &&
685
- 'Virtual Machines') ||
686
- (network.networkType === UI_E_NetworkType.VCenter &&
687
- 'Virtual Machines') ||
688
- ''
689
-
690
- index === 0 && (switchLine.value.y1 = connectLineY)
691
- networks &&
692
- index === networks.length - 1 &&
693
- (switchLine.value.y2 = connectLineY)
694
-
695
- mainRectHeights.value.networksHeight +=
696
- networkHeight + UI_E_PositionsY.BETWEEN_RECTS
697
-
698
- const networkWithPortsPositions =
699
- network.networkType ===
700
- (UI_E_NetworkType.VMPortsGroup || UI_E_NetworkType.VCenter)
701
- ? network.ports.map((port, index) => {
702
- const portPosition =
703
- portsPosition +
704
- (network.networkType === UI_E_NetworkType.VCenter
705
- ? (index + 1) * UI_E_PositionsY.SINGLE_V_CENTER_HEIGHT - 10
706
- : (index + 1) * UI_E_PositionsY.SINGLE_PORT_HEIGHT)
707
-
708
- return {
709
- ...port,
710
- portPosition,
711
- }
712
- })
713
- : (network.sysx && [
714
- {
715
- id: `${network.sysx?.name} ${
716
- !network.sysx.tcp_config.auto
717
- ? `: ${network.sysx.tcp_config.ipv4}`
718
- : ''
719
- }`,
720
- name: `${network.sysx?.name} ${
721
- !network.sysx.tcp_config.auto
722
- ? `: ${network.sysx.tcp_config.ipv4}`
723
- : ''
724
- }`,
725
- portPosition:
726
- portsPosition + UI_E_PositionsY.SINGLE_PORT_HEIGHT,
727
- },
728
- ]) ||
729
- []
730
-
731
- return {
732
- ...network,
733
- ports: networkWithPortsPositions,
734
- portsCount,
735
- portsHeight,
736
- networkHeight,
737
- rectPosition: lastPosition,
738
- connectLineY,
739
- titlePosition,
740
- vlanPosition,
741
- vlanId: network.vlanId || '--',
742
- portsPosition,
743
- networkPortsName,
744
- }
745
- }
746
- ) || []
747
- )
748
- }
749
-
750
- const countAdaptersPositions = (): UI_I_AdaptersWithPositions => {
751
- const { height, toggle, adaptersCount } = countAdaptersHeight(
752
- props.diagramData
753
- )
754
-
755
- mainRectHeights.value.adaptersHeight =
756
- UI_E_PositionsY.DIAGRAM_TOP + UI_E_PositionsY.BETWEEN_RECTS * 2 + height
757
-
758
- const { titlePosition, rectPosition, adaptersConnectLineY, adapters } =
759
- getAdaptersPositions(props.diagramData, height)
760
-
761
- switchLine.value.ay = adaptersConnectLineY
762
-
763
- return {
764
- toggle,
765
- height,
766
- adapters,
767
- rectPosition,
768
- adaptersConnectLineY,
769
- titlePosition,
770
- adaptersCount,
771
- }
772
- }
773
-
774
- const networksWithPositions = computed<UI_I_NetworksWithPositions[]>(
775
- countNetworksPositions
776
- )
777
- const adaptersWithPositions = computed<UI_I_AdaptersWithPositions>(
778
- countAdaptersPositions
779
- )
780
- const onSelectPort = (networkId: string, portId: string): void => {
781
- const selectPortData = getSelectPortDataFunc(
782
- networkId,
783
- portId,
784
- networksWithPositions.value,
785
- adaptersWithPositions.value
786
- )
787
-
788
- if (!selectPortData) return
789
-
790
- selectedSwitchLineY.value = selectPortData.selectedSwitchLineY
791
- selectedPort.value = selectPortData.selectedPort
792
- }
793
-
794
- const onSelectNetwork = (networkId: string): void => {
795
- selectedNetwork.value = networkId
796
-
797
- const selectNetworkData = getSelectNetworkDataFunc(
798
- networkId,
799
- networksWithPositions.value,
800
- adaptersWithPositions.value
801
- )
802
-
803
- if (!selectNetworkData) return
804
-
805
- selectedSwitchLineY.value = selectNetworkData.selectedSwitchLineY
806
- selectedPort.value = selectNetworkData.selectedPort
807
- }
808
-
809
- const onSelectAdapter = (adapterId: string): void => {
810
- const selectedNetworks: UI_I_NetworksWithPositions[] =
811
- networksWithPositions.value?.filter((network: UI_I_Network) =>
812
- network.activeAdapters.includes(adapterId)
813
- )
814
-
815
- let pos: number[] = selectedNetworks?.reduce(networksPositions, [])
816
-
817
- let selectedAdapterPosition: number | null =
818
- adaptersWithPositions.value.adapters?.find((ad) => ad.id === adapterId)
819
- ?.adapterPosition || null
820
- selectedAdapterPosition !== null &&
821
- (selectedAdapterPosition += 7.5) &&
822
- pos?.push(selectedAdapterPosition)
823
-
824
- pos = pos?.sort((y1, y2) => y1 - y2)
825
- if (pos) {
826
- selectedSwitchLineY.value = {
827
- y1: pos[0],
828
- y2: pos[pos.length - 1],
829
- }
830
- }
831
- selectedAdapter.value = {
832
- adapterId,
833
- connectedPorts:
834
- selectedNetworks?.map((network: UI_I_Network) => ({
835
- networkId: network.id,
836
- ports: network.ports.map((port) => port.id),
837
- })) || [],
838
- }
839
- }
840
-
841
- const resetSelection = (): void => {
842
- selectedPort.value = useDeepCopy(selectedPortInitial)
843
- selectedSwitchLineY.value = useDeepCopy(selectedSwitchLineYInitial)
844
- selectedAdapter.value = useDeepCopy(selectedAdapterInitial)
845
- selectedNetwork.value = '-1'
846
- selectedMainLine.value = false
847
- }
848
-
849
- const emits = defineEmits<{
850
- (
851
- event: 'toggle-ports',
852
- payload: Omit<UI_I_ToggleDiagramPortsPayload, 'paths'>
853
- ): void
854
- (
855
- event: 'toggle-adapters',
856
- payload: Omit<UI_I_ToggleDiagramAdaptersPayload, 'paths'>
857
- ): void
858
- (event: 'get-existing-standard-switches', cb: () => void): void
859
- (
860
- event: 'send-add-networking-data',
861
- secondSchemeData:
862
- | UI_I_AddNetworkingSecondSchemeDataSend
863
- | UI_I_AddNetworkingZeroOrFirstSchemeDataSend,
864
- type: string,
865
- hideSendNetworkDataLoader: () => void,
866
- onHideAddNetworkingModal: () => void
867
- ): void
868
- (
869
- event: 'add-networking-data-validate',
870
- networkData:
871
- | UI_I_AddNetworkingSecondSchemeDataSend
872
- | UI_I_AddNetworkingZeroOrFirstSchemeDataSend,
873
- type: string,
874
- hideSendNetworkDataLoader: () => void,
875
- setValidation: (err_arg: UI_I_ArbitraryObject<string>) => void,
876
- goToLastStep: (stop?: boolean) => void
877
- ): void
878
- (
879
- event: 'check-network-label',
880
- networkLabel: string,
881
- cb: (error_message: string) => void,
882
- hideLoader?: () => void
883
- ): void
884
- (event: 'get-free-adapters', cb: () => void): void
885
- (
886
- event: 'send-edit-data',
887
- type: string,
888
- initialData: UI_I_ModalsInitialData,
889
- hideModal: () => void,
890
- name?: string
891
- ): void
892
- (event: 'change-edit-fields-data', editFieldsData: UI_I_EditFieldsData): void
893
- (event: 'remove-network', arg: { id: string; hideModalCB: () => void }): void
894
- (event: 'remove-switch', arg: { id: string; hideModalCB: () => void }): void
895
- (event: 'remove-port', arg: { id: string; hideModalCB: () => void }): void
896
- (
897
- event: 'send-manage-physical-adapters-data',
898
- adapterStatus: UI_I_AdapterStatus,
899
- switchName: string,
900
- hideModalCB: () => void,
901
- hideLoaderCB: () => void
902
- ): void
903
- }>()
904
-
905
- const onTogglePorts = (
906
- id: string,
907
- isToggle: boolean,
908
- diagramId: string
909
- ): void => {
910
- emits('toggle-ports', {
911
- id,
912
- isToggle,
913
- diagramId,
914
- })
915
- selectedPort.value.portId !== '-1' &&
916
- onSelectPort(selectedPort.value.networkId, selectedPort.value.portId)
917
- selectedAdapter.value.adapterId !== '-1' &&
918
- onSelectAdapter(selectedAdapter.value.adapterId)
919
- selectedNetwork.value !== '-1' && onSelectNetwork(selectedNetwork.value)
920
- hasPortAndNetwork(selectedPort.value, id) && resetSelection()
921
- }
922
-
923
- const onToggleAdapters = (): void => {
924
- const newState = !adaptersWithPositions.value.toggle
925
- const payload: Omit<UI_I_ToggleDiagramAdaptersPayload, 'paths'> = {
926
- isToggle: newState,
927
- diagramId: props.diagramData?.id || '',
928
- }
929
- emits('toggle-adapters', payload)
930
- selectedPort.value.portId !== '-1' &&
931
- onSelectPort(selectedPort.value.networkId, selectedPort.value.portId)
932
- selectedAdapter.value.adapterId !== '-1' && resetSelection()
933
- selectedNetwork.value !== '-1' && onSelectNetwork(selectedNetwork.value)
934
- }
935
-
936
- const onClickDiagram = (ev: MouseEvent): void => {
937
- const target = ev.target as HTMLElement
938
- const targetClassList = target.classList
939
- if (targetClassList.contains('main-line__handler')) {
940
- resetSelection()
941
- selectedMainLine.value = true
942
- } else {
943
- !(
944
- target.closest('.diagram-block__toggle') ||
945
- target.closest('.diagram-actions')
946
- ) && resetSelection()
947
- }
948
- }
949
- </script>
950
-
951
- <style scoped lang="scss">
952
- .diagram {
953
- &-min-width {
954
- min-width: 745px;
955
- }
956
- &-main-container {
957
- padding-top: 5px;
958
- }
959
- }
960
- </style>
961
- <style lang="scss">
962
- .diagram-main-actions__popup.navbar-dropdown-menu {
963
- //transform: translate(-40px, -10px);
964
- //width: 360px;
965
- .btn {
966
- border-radius: 3px;
967
- border-bottom: none;
968
- &:hover {
969
- border-bottom: none;
970
- }
971
- span {
972
- font-size: 14px;
973
- }
974
- &:active {
975
- box-shadow: none;
976
- }
977
- }
978
- }
979
- </style>
1
+ <template>
2
+ <div
3
+ v-if="props.diagramData"
4
+ :class="{ 'diagram-min-width': !props.inPortlet }"
5
+ >
6
+ <div class="diagram-main-container">
7
+ <common-diagram-main-header
8
+ :in-portlet="props.inPortlet"
9
+ :is-show-diagram="isShowDiagram"
10
+ :diagram-name="props.diagramData.diagramName"
11
+ @toggle-diagram="onToggleDiagram"
12
+ @show-modal="onShowModal"
13
+ />
14
+ <common-diagram-main-diagram
15
+ :diagram-data="props.diagramData"
16
+ :is-show-diagram="isShowDiagram"
17
+ :in-portlet="props.inPortlet"
18
+ :networks-with-positions="networksWithPositions"
19
+ :main-rect-height="mainRectHeight"
20
+ :main-switch-line="mainSwitchLine"
21
+ :selected-main-line="selectedMainLine"
22
+ :adapters-with-positions="adaptersWithPositions"
23
+ :selected-port="selectedPort"
24
+ :selected-adapter="selectedAdapter"
25
+ :selected-network="selectedNetwork"
26
+ :selected-switch-line-y="selectedSwitchLineY"
27
+ @click-diagram="onClickDiagram"
28
+ @toggle-adapters="onToggleAdapters"
29
+ @select-adapter="onSelectAdapter"
30
+ @toggle-ports="onTogglePorts"
31
+ @select-port="onSelectPort"
32
+ @select-network="onSelectNetwork"
33
+ @show-modal="onShowModal"
34
+ />
35
+ </div>
36
+ <common-diagram-main-modals-view-settings-modal
37
+ v-if="isShowPortViewSettingsModal"
38
+ view-name="port-settings-modal"
39
+ height="448px"
40
+ :title="initialData.portName"
41
+ :second-title="hostName"
42
+ :show="isShowPortViewSettingsModal"
43
+ :modal-tabs="portViewSettingsModalTabs"
44
+ :view-settings-fields="portViewSettings"
45
+ @hide="onHidePortViewSettingsModal"
46
+ />
47
+ <common-diagram-main-modals-view-settings-modal
48
+ v-if="isShowNetworkViewSettingsModal"
49
+ view-name="network-settings-modal"
50
+ height="448px"
51
+ :title="initialData.networkLabel"
52
+ :show="isShowNetworkViewSettingsModal"
53
+ :modal-tabs="networkViewSettingsModalTabs"
54
+ :view-settings-fields="networkViewSettings"
55
+ :initial-data="initialData"
56
+ @hide="onHideNetworkViewSettingsModal"
57
+ />
58
+ <common-diagram-main-modals-view-settings-modal
59
+ v-if="isShowAdapterViewSettingsModal"
60
+ :view-name="localization.physicalNetworkAdapter"
61
+ :title="initialData.name || localization.physicalNetworkAdapter"
62
+ :second-title="props.hostName"
63
+ height="448px"
64
+ :show="isShowAdapterViewSettingsModal"
65
+ :modal-tabs="adapterViewSettingsModalTabs"
66
+ :view-settings-fields="adapterViewSettings"
67
+ @hide="onHideAdapterViewSettingsModal"
68
+ />
69
+ <common-diagram-main-modals-view-settings-modal
70
+ v-if="isShowVCenterViewSettingsModal"
71
+ view-name="VCenter-settings-modal"
72
+ height="182px"
73
+ info-height="80px"
74
+ :without-footer-padding="true"
75
+ :title="initialData.vmTitle"
76
+ :show="isShowVCenterViewSettingsModal"
77
+ :view-settings-fields="vCenterViewSettings"
78
+ @hide="onHideVCenterViewSettingsModal"
79
+ />
80
+ <common-diagram-main-modals-remove-modal
81
+ v-if="isShowNetworkRemoveModal"
82
+ :id="initialData.networkLabel"
83
+ modal-name="network-port-remove-modal"
84
+ view-name="port-network-remove"
85
+ width="872px"
86
+ height="558px"
87
+ :title="localization.removePortGroup"
88
+ :show="isShowNetworkRemoveModal"
89
+ :is-show-loader="isShowRemoveModalLoader"
90
+ @remove="onRemoveNetwork"
91
+ @hide="onHideNetworkRemoveModal"
92
+ />
93
+ <common-diagram-main-modals-remove-modal
94
+ v-if="isShowSwitchRemoveModal"
95
+ :id="props.diagramData.id"
96
+ modal-name="switch-remove-modal"
97
+ view-name="switch-remove"
98
+ width="872px"
99
+ height="558px"
100
+ title="Remove Standard Switch"
101
+ :show="isShowSwitchRemoveModal"
102
+ :is-show-loader="isShowRemoveModalLoader"
103
+ @remove="onRemoveSwitch"
104
+ @hide="onHideSwitchRemoveModal"
105
+ />
106
+ <common-diagram-main-modals-remove-modal
107
+ v-if="isShowPortRemoveModal"
108
+ :id="initialData.portName"
109
+ modal-name="port-remove-modal"
110
+ view-name="port-remove"
111
+ width="872px"
112
+ height="558px"
113
+ :title="localization.removeVMkernelAdapter"
114
+ :show="isShowPortRemoveModal"
115
+ :is-show-loader="isShowRemoveModalLoader"
116
+ @remove="onRemovePort"
117
+ @hide="onHidePortRemoveModal"
118
+ />
119
+ <common-diagram-main-modals-edit-settings-modal
120
+ v-if="isShowNetworkEditSettingsModal"
121
+ view-name="network-edit"
122
+ width="1087px"
123
+ height="662px"
124
+ :show="isShowNetworkEditSettingsModal"
125
+ :title="initialData.networkLabel"
126
+ :initial-data="initialData"
127
+ :items="networkEditSettingsTabs"
128
+ :adapters="props.adapters"
129
+ @send-edit-data="onSendEditData"
130
+ @change-edit-fields-data="onChangeEditFieldsData"
131
+ @check-network-label="onCheckNetworkLabel"
132
+ @hide="onHideNetworkEditSettingsModal"
133
+ />
134
+ <common-diagram-main-modals-edit-settings-modal
135
+ v-if="isShowPortEditSettingsModal"
136
+ view-name="port-edit"
137
+ width="872px"
138
+ height="558px"
139
+ :show="isShowPortEditSettingsModal"
140
+ :title="initialData.portName"
141
+ :initial-data="initialData"
142
+ :items="portEditSettingsTabs"
143
+ @send-edit-data="onSendEditData"
144
+ @change-edit-fields-data="onChangeEditFieldsData"
145
+ @hide="onHidePortEditSettingsModal"
146
+ />
147
+ <template v-if="!props.inPortlet">
148
+ <common-diagram-main-modals-edit-settings-modal
149
+ v-if="isShowSwitchEditSettingsModal"
150
+ view-name="switch-edit"
151
+ width="1087px"
152
+ height="662px"
153
+ :show="isShowSwitchEditSettingsModal"
154
+ :title="props.diagramData.id"
155
+ :initial-data="initialData"
156
+ :items="switchEditSettingsTabs"
157
+ :adapters="props.adapters"
158
+ @send-edit-data="onSendEditData"
159
+ @change-edit-fields-data="onChangeEditFieldsData"
160
+ @check-network-label="onCheckNetworkLabel"
161
+ @hide="onHideSwitchEditSettingsModal"
162
+ />
163
+ <common-diagram-main-modals-view-settings-modal
164
+ v-if="isShowSwitchViewSettingsModal"
165
+ view-name="switch-view-settings"
166
+ width="576px"
167
+ height="449px"
168
+ info-height="390px"
169
+ :with-collapse="true"
170
+ :title="props.diagramData.diagramName"
171
+ :show="isShowSwitchViewSettingsModal"
172
+ :modal-tabs="switchViewSettingsModalTabs"
173
+ :view-settings-fields="switchViewSettings"
174
+ @hide="onHideSwitchViewSettingsModal"
175
+ />
176
+ <common-diagram-main-modals-manage-physical-adapters-modal
177
+ v-if="isShowSwitchManagePhysicalAdaptersModal"
178
+ view-name="switch-manage-physical-adapters"
179
+ width="864px"
180
+ height="510px"
181
+ :show="isShowSwitchManagePhysicalAdaptersModal"
182
+ :switch-name="props.diagramData.id"
183
+ :free-adapters="props.freeAdapters"
184
+ :adapter-status="managePhysicalAdapterStatus"
185
+ :adapters="props.adapters"
186
+ :initial-adapter-status="initialManagePhysicalAdapterStatus"
187
+ @send-manage-physical-adapters-data="onSendManagePhysicalAdaptersData"
188
+ @change-adapter-status="onChangeManagePhysicalAdapterStatus"
189
+ @get-free-adapters="onGetFreeAdapters"
190
+ @hide="onHideSwitchManagePhysicalAdaptersModal"
191
+ />
192
+ <common-add-networking
193
+ v-if="isShowAddNetworkingModal"
194
+ modal-name="add-networking-modal"
195
+ view-name="add-networking"
196
+ width="872px"
197
+ height="558px"
198
+ :title="localization.addNetworking"
199
+ :standard-switches-initial="props.standardSwitchesInitial"
200
+ :show="isShowAddNetworkingModal"
201
+ :is-network-invalid="isNetworkInvalid"
202
+ :free-adapters="props.freeAdapters"
203
+ :adapters="props.adapters"
204
+ @check-network-label="onCheckNetworkLabel"
205
+ @get-existing-standard-switches="onGetExistingStandardSwitches"
206
+ @get-free-adapters="onGetFreeAdapters"
207
+ @send-add-networking-data="onSendNetworkData"
208
+ @add-networking-data-validate="onValidateBeforeSending"
209
+ @hide="onHideAddNetworkingModal"
210
+ />
211
+ <common-diagram-main-modals-migrate-vmkernel-adapter
212
+ v-if="isShowMigrateVmkernelAdapterModal"
213
+ modal-name="migrate-vmkernel-adapter-modal"
214
+ view-name="migrate-vmkernel-adapter"
215
+ width="956px"
216
+ height="636px"
217
+ :title="`esxi1.aobfg.ru - ${localization.migrateVmKernelNetworkAdapterTo} vSwitch0`"
218
+ :switch-name="diagramData.id"
219
+ :networks-list="props.networksList"
220
+ :switch-networks="diagramData.networks"
221
+ :show="isShowMigrateVmkernelAdapterModal"
222
+ @hide="onHideMigrateVmkernelAdapterModal"
223
+ />
224
+ </template>
225
+ </div>
226
+ </template>
227
+
228
+ <script setup lang="ts">
229
+ import { UI_E_NetworkType, UI_E_PositionsY } from './models/enums'
230
+ import {
231
+ UI_I_Adapter,
232
+ UI_I_AdapterStatus,
233
+ UI_I_AdaptersWithPositions,
234
+ UI_I_MainRectHeights,
235
+ UI_I_ModalsInitialData,
236
+ UI_I_Network,
237
+ UI_I_EditFieldsData,
238
+ UI_I_NetworksWithPositions,
239
+ UI_I_SelectedAdapter,
240
+ UI_I_SelectedPort,
241
+ UI_I_SwitchLine,
242
+ UI_I_ToggleDiagramAdaptersPayload,
243
+ UI_I_ToggleDiagramPortsPayload,
244
+ } from '~/components/common/diagramMain/models/interfaces'
245
+ import { UI_I_ArbitraryObject, UI_I_Localization } from '~/models/interfaces'
246
+ import {
247
+ UI_I_AddNetworkingSecondSchemeDataSend,
248
+ UI_I_AddNetworkingZeroOrFirstSchemeDataSend,
249
+ UI_I_NetworkLabelCheckExisting,
250
+ UI_I_Switch,
251
+ } from '~/components/common/addNetworking/models/interfaces'
252
+ import {
253
+ adapterViewSettingsFunc,
254
+ adapterViewSettingsModalTabsFunc,
255
+ networkEditSettingsTabsFunc,
256
+ networkViewSettingsFunc,
257
+ networkViewSettingsModalTabsFunc,
258
+ portEditSettingsTabsFunc,
259
+ portViewSettingsFunc,
260
+ portViewSettingsModalTabsFunc,
261
+ switchEditSettingsTabsFunc,
262
+ switchViewSettingsFunc,
263
+ switchViewSettingsModalTabsFunc,
264
+ vCenterViewSettingsFunc,
265
+ } from '~/components/common/diagramMain/modals/config'
266
+ import { isNetworkInvalidInitial } from '~/components/common/addNetworking/config'
267
+ import {
268
+ managePhysicalAdapterStatusInitial,
269
+ mainRectHeightsInitial,
270
+ switchLineInitial,
271
+ selectedPortInitial,
272
+ selectedSwitchLineYInitial,
273
+ selectedAdapterInitial,
274
+ } from '~/components/common/diagramMain/config'
275
+ import {
276
+ hasPortAndNetwork,
277
+ networksPositions,
278
+ getSelectNetworkDataFunc,
279
+ getSelectPortDataFunc,
280
+ countAdaptersHeight,
281
+ getAdaptersPositions,
282
+ } from '~/components/common/diagramMain/utils/utils'
283
+ import {
284
+ UI_I_DiagramDataFull,
285
+ UI_I_NetworkFull,
286
+ UI_I_SwitchAdapters,
287
+ } from '~/components/common/diagramMain/models/interfaces'
288
+
289
+ const props = withDefaults(
290
+ defineProps<{
291
+ diagramData: UI_I_DiagramDataFull | null
292
+ inPortlet?: boolean
293
+ standardSwitchesInitial?: UI_I_Switch[]
294
+ isNetworkInvalid?: UI_I_NetworkLabelCheckExisting
295
+ hostName?: string
296
+ adapters?: UI_I_SwitchAdapters
297
+ freeAdapters?: UI_I_Adapter[]
298
+ networksList?: UI_I_NetworkFull[]
299
+ }>(),
300
+ {
301
+ diagramData: null,
302
+ inPortlet: false,
303
+ standardSwitchesInitial: () => [],
304
+ isNetworkInvalid: () => isNetworkInvalidInitial,
305
+ hostName: '',
306
+ adapters: () => ({
307
+ totalItems: 0,
308
+ totalPages: 0,
309
+ items: [],
310
+ }),
311
+ freeAdapters: () => [],
312
+ networksList: () => [],
313
+ }
314
+ )
315
+
316
+ const localization = computed<UI_I_Localization>(() => useLocal())
317
+ const initialData = ref<UI_I_ModalsInitialData>({})
318
+ const switchInitialData = ref<UI_I_ModalsInitialData>({})
319
+ const isNetworkInvalid = ref<UI_I_NetworkLabelCheckExisting>()
320
+
321
+ watch(
322
+ () => props.isNetworkInvalid,
323
+ (newValue: UI_I_NetworkLabelCheckExisting) => {
324
+ isNetworkInvalid.value = newValue
325
+ },
326
+ { deep: true, immediate: true }
327
+ )
328
+
329
+ watch(
330
+ () => props.diagramData?.networking,
331
+ (initial: UI_I_ModalsInitialData | undefined) => {
332
+ if (initial) {
333
+ initialData.value = initial
334
+ switchInitialData.value = initial
335
+ }
336
+ },
337
+ { deep: true, immediate: true }
338
+ )
339
+
340
+ const onValidateBeforeSending = (
341
+ networkData:
342
+ | UI_I_AddNetworkingSecondSchemeDataSend
343
+ | UI_I_AddNetworkingZeroOrFirstSchemeDataSend,
344
+ type: string,
345
+ hideSendNetworkDataLoader: () => void,
346
+ setValidation: (err_arg: UI_I_ArbitraryObject<string>) => void,
347
+ goToLastStep: (stop?: boolean) => void
348
+ ) => {
349
+ emits(
350
+ 'add-networking-data-validate',
351
+ networkData,
352
+ type,
353
+ hideSendNetworkDataLoader,
354
+ setValidation,
355
+ goToLastStep
356
+ )
357
+ }
358
+
359
+ let initialManagePhysicalAdapterStatus: UI_I_AdapterStatus =
360
+ managePhysicalAdapterStatusInitial
361
+
362
+ const managePhysicalAdapterStatus = ref<UI_I_AdapterStatus>(
363
+ useDeepCopy(initialManagePhysicalAdapterStatus)
364
+ )
365
+
366
+ watch(
367
+ () => props.diagramData,
368
+ (newValue) => {
369
+ if (newValue?.networking) {
370
+ initialManagePhysicalAdapterStatus = {
371
+ active: useDeepCopy(props.diagramData?.networking?.activeAdapters),
372
+ standby: useDeepCopy(props.diagramData?.networking?.standbyAdapters),
373
+ unused: useDeepCopy(props.diagramData?.networking?.unusedAdapters),
374
+ }
375
+
376
+ managePhysicalAdapterStatus.value = useDeepCopy(
377
+ initialManagePhysicalAdapterStatus
378
+ )
379
+ }
380
+ },
381
+ { deep: true, immediate: true }
382
+ )
383
+
384
+ const onChangeManagePhysicalAdapterStatus = (
385
+ adapterStatusNew: UI_I_AdapterStatus
386
+ ) => {
387
+ managePhysicalAdapterStatus.value = adapterStatusNew
388
+ }
389
+
390
+ const isShowSwitchManagePhysicalAdaptersModal = ref<boolean>(false)
391
+ const onHideSwitchManagePhysicalAdaptersModal = (): void => {
392
+ isShowSwitchManagePhysicalAdaptersModal.value = false
393
+ }
394
+
395
+ const onSendManagePhysicalAdaptersData = (
396
+ adapterStatus: UI_I_AdapterStatus,
397
+ switchName: string,
398
+ hideManagePhysicalAdaptersModal: () => void,
399
+ hideLoader: () => void
400
+ ) => {
401
+ emits(
402
+ 'send-manage-physical-adapters-data',
403
+ adapterStatus,
404
+ switchName,
405
+ hideManagePhysicalAdaptersModal,
406
+ hideLoader
407
+ )
408
+ }
409
+
410
+ const isShowRemoveModalLoader = ref(false)
411
+ const switchViewSettingsModalTabs = computed(() =>
412
+ switchViewSettingsModalTabsFunc(localization.value)
413
+ )
414
+ const switchViewSettings = computed(() =>
415
+ switchViewSettingsFunc(localization.value, initialData.value)
416
+ )
417
+ const switchEditSettingsTabs = computed(() =>
418
+ switchEditSettingsTabsFunc(localization.value)
419
+ )
420
+ const isShowSwitchViewSettingsModal = ref<boolean>(false)
421
+ const isShowSwitchEditSettingsModal = ref<boolean>(false)
422
+ const isShowSwitchRemoveModal = ref<boolean>(false)
423
+ const onHideSwitchViewSettingsModal = (): void => {
424
+ isShowSwitchViewSettingsModal.value = false
425
+ }
426
+ const onHideSwitchEditSettingsModal = (): void => {
427
+ isShowSwitchEditSettingsModal.value = false
428
+ }
429
+ const onHideSwitchRemoveModal = (): void => {
430
+ isShowSwitchRemoveModal.value = false
431
+ isShowRemoveModalLoader.value = false
432
+ }
433
+ const adapterViewSettingsModalTabs = computed(() =>
434
+ adapterViewSettingsModalTabsFunc(localization.value)
435
+ )
436
+ const adapterViewSettings = computed(() =>
437
+ adapterViewSettingsFunc(localization.value, initialData.value)
438
+ )
439
+ const isShowAdapterViewSettingsModal = ref<boolean>(false)
440
+ const onHideAdapterViewSettingsModal = (): void => {
441
+ isShowAdapterViewSettingsModal.value = false
442
+ }
443
+ const networkViewSettingsModalTabs = computed(() =>
444
+ networkViewSettingsModalTabsFunc(localization.value)
445
+ )
446
+ const networkViewSettings = computed(() =>
447
+ networkViewSettingsFunc(localization.value, initialData.value)
448
+ )
449
+ const networkEditSettingsTabs = computed(() =>
450
+ networkEditSettingsTabsFunc(localization.value)
451
+ )
452
+ const isShowNetworkViewSettingsModal = ref<boolean>(false)
453
+ const isShowNetworkEditSettingsModal = ref<boolean>(false)
454
+ const isShowNetworkRemoveModal = ref<boolean>(false)
455
+ const onHideNetworkViewSettingsModal = (): void => {
456
+ isShowNetworkViewSettingsModal.value = false
457
+ }
458
+ const onHideNetworkEditSettingsModal = (): void => {
459
+ isShowNetworkEditSettingsModal.value = false
460
+ }
461
+ const onHideNetworkRemoveModal = (): void => {
462
+ isShowNetworkRemoveModal.value = false
463
+ isShowRemoveModalLoader.value = false
464
+ }
465
+ const portViewSettingsModalTabs = computed(() =>
466
+ portViewSettingsModalTabsFunc(localization.value)
467
+ )
468
+ const portViewSettings = computed(() =>
469
+ portViewSettingsFunc(localization.value, initialData.value)
470
+ )
471
+ const portEditSettingsTabs = computed(() =>
472
+ portEditSettingsTabsFunc(localization.value)
473
+ )
474
+ const isShowPortViewSettingsModal = ref<boolean>(false)
475
+ const isShowPortEditSettingsModal = ref<boolean>(false)
476
+ const isShowPortRemoveModal = ref<boolean>(false)
477
+ const onHidePortViewSettingsModal = (): void => {
478
+ isShowPortViewSettingsModal.value = false
479
+ }
480
+ const onHidePortEditSettingsModal = (): void => {
481
+ isShowPortEditSettingsModal.value = false
482
+ }
483
+ const onHidePortRemoveModal = (): void => {
484
+ isShowPortRemoveModal.value = false
485
+ isShowRemoveModalLoader.value = false
486
+ }
487
+ const vCenterViewSettings = computed(() =>
488
+ vCenterViewSettingsFunc(localization.value, initialData.value)
489
+ )
490
+ const isShowVCenterViewSettingsModal = ref<boolean>(false)
491
+ const onHideVCenterViewSettingsModal = (): void => {
492
+ isShowVCenterViewSettingsModal.value = false
493
+ }
494
+ const isShowAddNetworkingModal = ref<boolean>(false)
495
+ const onHideAddNetworkingModal = (): void => {
496
+ isShowAddNetworkingModal.value = false
497
+ }
498
+ const isShowMigrateVmkernelAdapterModal = ref<boolean>(false)
499
+ const onHideMigrateVmkernelAdapterModal = (): void => {
500
+ isShowMigrateVmkernelAdapterModal.value = false
501
+ }
502
+
503
+ const onShowModal = (
504
+ value: string,
505
+ properties: UI_I_ModalsInitialData
506
+ ): void => {
507
+ switch (value) {
508
+ case 'port-view-settings':
509
+ initialData.value = properties
510
+ isShowPortViewSettingsModal.value = true
511
+ break
512
+ case 'network-view-settings':
513
+ isShowNetworkViewSettingsModal.value = true
514
+ initialData.value = properties
515
+ break
516
+ case 'adapter-view-settings':
517
+ isShowAdapterViewSettingsModal.value = true
518
+ initialData.value = properties
519
+ break
520
+ case 'v-center-view-settings':
521
+ isShowVCenterViewSettingsModal.value = true
522
+ initialData.value = properties
523
+ break
524
+ case 'network-edit-settings':
525
+ isShowNetworkEditSettingsModal.value = true
526
+ initialData.value = properties
527
+ break
528
+ case 'port-edit-settings':
529
+ initialData.value = properties
530
+ isShowPortEditSettingsModal.value = true
531
+ break
532
+ case 'network-port-remove':
533
+ initialData.value = properties
534
+ isShowNetworkRemoveModal.value = true
535
+ break
536
+ case 'port-remove':
537
+ initialData.value = properties
538
+ isShowPortRemoveModal.value = true
539
+ break
540
+ case 'switch-edit':
541
+ isShowSwitchEditSettingsModal.value = true
542
+ initialData.value = useDeepCopy(switchInitialData.value)
543
+ break
544
+ case 'switch-manage-physical-adapters':
545
+ isShowSwitchManagePhysicalAdaptersModal.value = true
546
+ break
547
+ case 'add-networking':
548
+ isShowAddNetworkingModal.value = true
549
+ break
550
+ case 'switch-view-settings':
551
+ isShowSwitchViewSettingsModal.value = true
552
+ initialData.value = useDeepCopy(switchInitialData.value)
553
+ break
554
+ case 'migrate-vmkernel-adapter':
555
+ isShowMigrateVmkernelAdapterModal.value = true
556
+ break
557
+ case 'switch-remove':
558
+ isShowSwitchRemoveModal.value = true
559
+ break
560
+ }
561
+ }
562
+ const onRemoveNetwork = (id: string) => {
563
+ isShowRemoveModalLoader.value = true
564
+ emits('remove-network', { id, hideModalCB: onHideNetworkRemoveModal })
565
+ }
566
+ const onRemoveSwitch = (id: string) => {
567
+ isShowRemoveModalLoader.value = true
568
+ emits('remove-switch', { id, hideModalCB: onHideSwitchRemoveModal })
569
+ }
570
+ const onRemovePort = (id: string) => {
571
+ isShowRemoveModalLoader.value = true
572
+ emits('remove-port', { id, hideModalCB: onHidePortRemoveModal })
573
+ }
574
+ const onChangeEditFieldsData = (newEditFieldsData: UI_I_EditFieldsData) => {
575
+ emits('change-edit-fields-data', newEditFieldsData)
576
+ }
577
+ const onCheckNetworkLabel = (
578
+ networkLabel: string,
579
+ cb: (error_message: string) => void,
580
+ hideLoader: () => void
581
+ ) => {
582
+ emits('check-network-label', networkLabel, cb, hideLoader)
583
+ }
584
+ const onGetExistingStandardSwitches = (cb: () => void) => {
585
+ emits('get-existing-standard-switches', cb)
586
+ }
587
+ const onGetFreeAdapters = (cb: () => void) => {
588
+ emits('get-free-adapters', cb)
589
+ }
590
+ const onSendNetworkData = (
591
+ networkData:
592
+ | UI_I_AddNetworkingSecondSchemeDataSend
593
+ | UI_I_AddNetworkingZeroOrFirstSchemeDataSend,
594
+ type: string,
595
+ hideSendNetworkDataLoader: () => void,
596
+ onHideAddNetworkingModal: () => void
597
+ ) => {
598
+ emits(
599
+ 'send-add-networking-data',
600
+ networkData,
601
+ type,
602
+ hideSendNetworkDataLoader,
603
+ onHideAddNetworkingModal
604
+ )
605
+ }
606
+ const onSendEditData = (type: string, hideModal: () => void, name?: string) => {
607
+ emits('send-edit-data', type, initialData.value, hideModal, name)
608
+ }
609
+ const isShowDiagram = ref<boolean>(true)
610
+ const onToggleDiagram = () => {
611
+ isShowDiagram.value = !isShowDiagram.value
612
+ }
613
+ const mainRectHeights = ref<UI_I_MainRectHeights>(
614
+ useDeepCopy(mainRectHeightsInitial)
615
+ )
616
+
617
+ const switchLine = ref<UI_I_SwitchLine>(useDeepCopy(switchLineInitial))
618
+ const mainSwitchLine = computed<UI_I_SwitchLine>(
619
+ () =>
620
+ (switchLine.value.ay && {
621
+ y1: Math.min(switchLine.value.y1, switchLine.value.ay),
622
+ y2: Math.max(switchLine.value.y2, switchLine.value.ay),
623
+ }) || { y1: 0, y2: 0 }
624
+ )
625
+
626
+ const selectedMainLine = ref(false)
627
+ const selectedPort = ref<UI_I_SelectedPort>(useDeepCopy(selectedPortInitial))
628
+ const selectedAdapter = ref<UI_I_SelectedAdapter>(
629
+ useDeepCopy(selectedAdapterInitial)
630
+ )
631
+ const selectedNetwork = ref<string>('-1')
632
+ const selectedSwitchLineY = ref<UI_I_SwitchLine>(
633
+ useDeepCopy(selectedSwitchLineYInitial)
634
+ )
635
+ const mainRectHeight = computed<number>(() =>
636
+ Math.max(
637
+ mainRectHeights.value.networksHeight,
638
+ mainRectHeights.value.adaptersHeight
639
+ )
640
+ )
641
+
642
+ const countNetworksPositions = (): UI_I_NetworksWithPositions[] => {
643
+ let lastNetworkHeight = 0
644
+ let lastPosition = UI_E_PositionsY.DIAGRAM_TOP + UI_E_PositionsY.BETWEEN_RECTS
645
+ mainRectHeights.value.networksHeight =
646
+ UI_E_PositionsY.DIAGRAM_TOP + UI_E_PositionsY.BETWEEN_RECTS
647
+ return (
648
+ props.diagramData?.networks?.map(
649
+ (network: UI_I_Network, index: number, networks: UI_I_Network[]) => {
650
+ let portsCount = 0
651
+ if (
652
+ network.networkType ===
653
+ (UI_E_NetworkType.VMPortsGroup || UI_E_NetworkType.VCenter)
654
+ ) {
655
+ portsCount = network.ports.length
656
+ } else {
657
+ portsCount = network.sysx ? 1 : 0
658
+ }
659
+ const portsHeight = network.toggle
660
+ ? network.networkType === UI_E_NetworkType.VCenter
661
+ ? portsCount * UI_E_PositionsY.SINGLE_V_CENTER_HEIGHT
662
+ : portsCount * UI_E_PositionsY.SINGLE_PORT_HEIGHT
663
+ : 0
664
+ const networkHeight =
665
+ UI_E_PositionsY.PORTS_FROM_RECT_TOP +
666
+ portsHeight +
667
+ (network.networkType === UI_E_NetworkType.VCenter
668
+ ? UI_E_PositionsY.SINGLE_V_CENTER_HEIGHT - 10
669
+ : UI_E_PositionsY.SINGLE_PORT_HEIGHT) +
670
+ UI_E_PositionsY.SPACE_FROM_RECT_BOTTOM
671
+
672
+ lastPosition +=
673
+ lastNetworkHeight + (index && UI_E_PositionsY.BETWEEN_RECTS)
674
+ lastNetworkHeight = networkHeight
675
+
676
+ const connectLineY = lastPosition + networkHeight / 2
677
+ const titlePosition = lastPosition + UI_E_PositionsY.TITLE_FROM_RECT_TOP
678
+ const vlanPosition = lastPosition + UI_E_PositionsY.VLAN_FROM_RECT_TOP
679
+ const portsPosition = lastPosition + UI_E_PositionsY.PORTS_FROM_RECT_TOP
680
+
681
+ const networkPortsName =
682
+ (network.networkType === UI_E_NetworkType.VMkernel &&
683
+ 'VMkernel Ports') ||
684
+ (network.networkType === UI_E_NetworkType.VMPortsGroup &&
685
+ 'Virtual Machines') ||
686
+ (network.networkType === UI_E_NetworkType.VCenter &&
687
+ 'Virtual Machines') ||
688
+ ''
689
+
690
+ index === 0 && (switchLine.value.y1 = connectLineY)
691
+ networks &&
692
+ index === networks.length - 1 &&
693
+ (switchLine.value.y2 = connectLineY)
694
+
695
+ mainRectHeights.value.networksHeight +=
696
+ networkHeight + UI_E_PositionsY.BETWEEN_RECTS
697
+
698
+ const networkWithPortsPositions =
699
+ network.networkType ===
700
+ (UI_E_NetworkType.VMPortsGroup || UI_E_NetworkType.VCenter)
701
+ ? network.ports.map((port, index) => {
702
+ const portPosition =
703
+ portsPosition +
704
+ (network.networkType === UI_E_NetworkType.VCenter
705
+ ? (index + 1) * UI_E_PositionsY.SINGLE_V_CENTER_HEIGHT - 10
706
+ : (index + 1) * UI_E_PositionsY.SINGLE_PORT_HEIGHT)
707
+
708
+ return {
709
+ ...port,
710
+ portPosition,
711
+ }
712
+ })
713
+ : (network.sysx && [
714
+ {
715
+ id: `${network.sysx?.name} ${
716
+ !network.sysx.tcp_config.auto
717
+ ? `: ${network.sysx.tcp_config.ipv4}`
718
+ : ''
719
+ }`,
720
+ name: `${network.sysx?.name} ${
721
+ !network.sysx.tcp_config.auto
722
+ ? `: ${network.sysx.tcp_config.ipv4}`
723
+ : ''
724
+ }`,
725
+ portPosition:
726
+ portsPosition + UI_E_PositionsY.SINGLE_PORT_HEIGHT,
727
+ },
728
+ ]) ||
729
+ []
730
+
731
+ return {
732
+ ...network,
733
+ ports: networkWithPortsPositions,
734
+ portsCount,
735
+ portsHeight,
736
+ networkHeight,
737
+ rectPosition: lastPosition,
738
+ connectLineY,
739
+ titlePosition,
740
+ vlanPosition,
741
+ vlanId: network.vlanId || '--',
742
+ portsPosition,
743
+ networkPortsName,
744
+ }
745
+ }
746
+ ) || []
747
+ )
748
+ }
749
+
750
+ const countAdaptersPositions = (): UI_I_AdaptersWithPositions => {
751
+ const { height, toggle, adaptersCount } = countAdaptersHeight(
752
+ props.diagramData
753
+ )
754
+
755
+ mainRectHeights.value.adaptersHeight =
756
+ UI_E_PositionsY.DIAGRAM_TOP + UI_E_PositionsY.BETWEEN_RECTS * 2 + height
757
+
758
+ const { titlePosition, rectPosition, adaptersConnectLineY, adapters } =
759
+ getAdaptersPositions(props.diagramData, height)
760
+
761
+ switchLine.value.ay = adaptersConnectLineY
762
+
763
+ return {
764
+ toggle,
765
+ height,
766
+ adapters,
767
+ rectPosition,
768
+ adaptersConnectLineY,
769
+ titlePosition,
770
+ adaptersCount,
771
+ }
772
+ }
773
+
774
+ const networksWithPositions = computed<UI_I_NetworksWithPositions[]>(
775
+ countNetworksPositions
776
+ )
777
+ const adaptersWithPositions = computed<UI_I_AdaptersWithPositions>(
778
+ countAdaptersPositions
779
+ )
780
+ const onSelectPort = (networkId: string, portId: string): void => {
781
+ const selectPortData = getSelectPortDataFunc(
782
+ networkId,
783
+ portId,
784
+ networksWithPositions.value,
785
+ adaptersWithPositions.value
786
+ )
787
+
788
+ if (!selectPortData) return
789
+
790
+ selectedSwitchLineY.value = selectPortData.selectedSwitchLineY
791
+ selectedPort.value = selectPortData.selectedPort
792
+ }
793
+
794
+ const onSelectNetwork = (networkId: string): void => {
795
+ selectedNetwork.value = networkId
796
+
797
+ const selectNetworkData = getSelectNetworkDataFunc(
798
+ networkId,
799
+ networksWithPositions.value,
800
+ adaptersWithPositions.value
801
+ )
802
+
803
+ if (!selectNetworkData) return
804
+
805
+ selectedSwitchLineY.value = selectNetworkData.selectedSwitchLineY
806
+ selectedPort.value = selectNetworkData.selectedPort
807
+ }
808
+
809
+ const onSelectAdapter = (adapterId: string): void => {
810
+ const selectedNetworks: UI_I_NetworksWithPositions[] =
811
+ networksWithPositions.value?.filter((network: UI_I_Network) =>
812
+ network.activeAdapters.includes(adapterId)
813
+ )
814
+
815
+ let pos: number[] = selectedNetworks?.reduce(networksPositions, [])
816
+
817
+ let selectedAdapterPosition: number | null =
818
+ adaptersWithPositions.value.adapters?.find((ad) => ad.id === adapterId)
819
+ ?.adapterPosition || null
820
+ selectedAdapterPosition !== null &&
821
+ (selectedAdapterPosition += 7.5) &&
822
+ pos?.push(selectedAdapterPosition)
823
+
824
+ pos = pos?.sort((y1, y2) => y1 - y2)
825
+ if (pos) {
826
+ selectedSwitchLineY.value = {
827
+ y1: pos[0],
828
+ y2: pos[pos.length - 1],
829
+ }
830
+ }
831
+ selectedAdapter.value = {
832
+ adapterId,
833
+ connectedPorts:
834
+ selectedNetworks?.map((network: UI_I_Network) => ({
835
+ networkId: network.id,
836
+ ports: network.ports.map((port) => port.id),
837
+ })) || [],
838
+ }
839
+ }
840
+
841
+ const resetSelection = (): void => {
842
+ selectedPort.value = useDeepCopy(selectedPortInitial)
843
+ selectedSwitchLineY.value = useDeepCopy(selectedSwitchLineYInitial)
844
+ selectedAdapter.value = useDeepCopy(selectedAdapterInitial)
845
+ selectedNetwork.value = '-1'
846
+ selectedMainLine.value = false
847
+ }
848
+
849
+ const emits = defineEmits<{
850
+ (
851
+ event: 'toggle-ports',
852
+ payload: Omit<UI_I_ToggleDiagramPortsPayload, 'paths'>
853
+ ): void
854
+ (
855
+ event: 'toggle-adapters',
856
+ payload: Omit<UI_I_ToggleDiagramAdaptersPayload, 'paths'>
857
+ ): void
858
+ (event: 'get-existing-standard-switches', cb: () => void): void
859
+ (
860
+ event: 'send-add-networking-data',
861
+ secondSchemeData:
862
+ | UI_I_AddNetworkingSecondSchemeDataSend
863
+ | UI_I_AddNetworkingZeroOrFirstSchemeDataSend,
864
+ type: string,
865
+ hideSendNetworkDataLoader: () => void,
866
+ onHideAddNetworkingModal: () => void
867
+ ): void
868
+ (
869
+ event: 'add-networking-data-validate',
870
+ networkData:
871
+ | UI_I_AddNetworkingSecondSchemeDataSend
872
+ | UI_I_AddNetworkingZeroOrFirstSchemeDataSend,
873
+ type: string,
874
+ hideSendNetworkDataLoader: () => void,
875
+ setValidation: (err_arg: UI_I_ArbitraryObject<string>) => void,
876
+ goToLastStep: (stop?: boolean) => void
877
+ ): void
878
+ (
879
+ event: 'check-network-label',
880
+ networkLabel: string,
881
+ cb: (error_message: string) => void,
882
+ hideLoader?: () => void
883
+ ): void
884
+ (event: 'get-free-adapters', cb: () => void): void
885
+ (
886
+ event: 'send-edit-data',
887
+ type: string,
888
+ initialData: UI_I_ModalsInitialData,
889
+ hideModal: () => void,
890
+ name?: string
891
+ ): void
892
+ (event: 'change-edit-fields-data', editFieldsData: UI_I_EditFieldsData): void
893
+ (event: 'remove-network', arg: { id: string; hideModalCB: () => void }): void
894
+ (event: 'remove-switch', arg: { id: string; hideModalCB: () => void }): void
895
+ (event: 'remove-port', arg: { id: string; hideModalCB: () => void }): void
896
+ (
897
+ event: 'send-manage-physical-adapters-data',
898
+ adapterStatus: UI_I_AdapterStatus,
899
+ switchName: string,
900
+ hideModalCB: () => void,
901
+ hideLoaderCB: () => void
902
+ ): void
903
+ }>()
904
+
905
+ const onTogglePorts = (
906
+ id: string,
907
+ isToggle: boolean,
908
+ diagramId: string
909
+ ): void => {
910
+ emits('toggle-ports', {
911
+ id,
912
+ isToggle,
913
+ diagramId,
914
+ })
915
+ selectedPort.value.portId !== '-1' &&
916
+ onSelectPort(selectedPort.value.networkId, selectedPort.value.portId)
917
+ selectedAdapter.value.adapterId !== '-1' &&
918
+ onSelectAdapter(selectedAdapter.value.adapterId)
919
+ selectedNetwork.value !== '-1' && onSelectNetwork(selectedNetwork.value)
920
+ hasPortAndNetwork(selectedPort.value, id) && resetSelection()
921
+ }
922
+
923
+ const onToggleAdapters = (): void => {
924
+ const newState = !adaptersWithPositions.value.toggle
925
+ const payload: Omit<UI_I_ToggleDiagramAdaptersPayload, 'paths'> = {
926
+ isToggle: newState,
927
+ diagramId: props.diagramData?.id || '',
928
+ }
929
+ emits('toggle-adapters', payload)
930
+ selectedPort.value.portId !== '-1' &&
931
+ onSelectPort(selectedPort.value.networkId, selectedPort.value.portId)
932
+ selectedAdapter.value.adapterId !== '-1' && resetSelection()
933
+ selectedNetwork.value !== '-1' && onSelectNetwork(selectedNetwork.value)
934
+ }
935
+
936
+ const onClickDiagram = (ev: MouseEvent): void => {
937
+ const target = ev.target as HTMLElement
938
+ const targetClassList = target.classList
939
+ if (targetClassList.contains('main-line__handler')) {
940
+ resetSelection()
941
+ selectedMainLine.value = true
942
+ } else {
943
+ !(
944
+ target.closest('.diagram-block__toggle') ||
945
+ target.closest('.diagram-actions')
946
+ ) && resetSelection()
947
+ }
948
+ }
949
+ </script>
950
+
951
+ <style scoped lang="scss">
952
+ .diagram {
953
+ &-min-width {
954
+ min-width: 745px;
955
+ }
956
+ &-main-container {
957
+ padding-top: 5px;
958
+ }
959
+ }
960
+ </style>
961
+ <style lang="scss">
962
+ .diagram-main-actions__popup.navbar-dropdown-menu {
963
+ //transform: translate(-40px, -10px);
964
+ //width: 360px;
965
+ .btn {
966
+ border-radius: 3px;
967
+ border-bottom: none;
968
+ &:hover {
969
+ border-bottom: none;
970
+ }
971
+ span {
972
+ font-size: 14px;
973
+ }
974
+ &:active {
975
+ box-shadow: none;
976
+ }
977
+ }
978
+ }
979
+ </style>