bfg-common 1.0.29 → 1.0.30

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 (618) 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/info.svg +8 -8
  16. package/assets/img/icons/vc.svg +52 -52
  17. package/assets/img/logo copy.svg +50 -50
  18. package/assets/img/logo.svg +51 -51
  19. package/assets/localization/local_be.json +2010 -1851
  20. package/assets/localization/local_en.json +2010 -1851
  21. package/assets/localization/local_hy.json +2010 -1851
  22. package/assets/localization/local_kk.json +2010 -1851
  23. package/assets/localization/local_ru.json +2010 -1851
  24. package/assets/localization/local_zh.json +2010 -1851
  25. package/assets/scss/clarity/clr-ui.min.css +8 -8
  26. package/assets/scss/common/animations.scss +28 -28
  27. package/assets/scss/common/global.scss +172 -172
  28. package/assets/scss/common/icons/icons-1.scss +188 -188
  29. package/assets/scss/common/icons/icons-2.scss +208 -208
  30. package/assets/scss/common/icons/icons-3.scss +176 -176
  31. package/assets/scss/common/icons/icons-4.scss +179 -179
  32. package/assets/scss/common/icons/icons-5.scss +53 -53
  33. package/assets/scss/common/icons/icons.scss +14 -14
  34. package/assets/scss/common/mixins.scss +39 -39
  35. package/assets/scss/common/normalize.scss +320 -320
  36. package/assets/scss/common/theme.scss +230 -230
  37. package/assets/scss/common/utilities.scss +18 -18
  38. package/assets/scss/common/variables.scss +43 -43
  39. package/assets/scss/main.scss +13 -13
  40. package/components/atoms/DiagramIcon.vue +287 -287
  41. package/components/atoms/TheIcon.vue +1687 -1687
  42. package/components/atoms/TheIcon2.vue +318 -318
  43. package/components/atoms/alert/Alert.spec.ts +38 -38
  44. package/components/atoms/alert/Alert.vue +84 -84
  45. package/components/atoms/alert/Notification.spec.ts +34 -34
  46. package/components/atoms/alert/models/enums.ts +12 -12
  47. package/components/atoms/alert/models/interfaces.ts +27 -27
  48. package/components/atoms/alert/models/types.ts +7 -7
  49. package/components/atoms/collapse/CollapseNav.vue +153 -153
  50. package/components/atoms/collapse/CollapseNavItem.vue +190 -190
  51. package/components/atoms/collapse/models/interfaces.ts +9 -9
  52. package/components/atoms/combobox/Combobox.vue +147 -147
  53. package/components/atoms/datepicker/config/allShortMonths.ts +103 -103
  54. package/components/atoms/datepicker/config/datapicker.ts +43 -43
  55. package/components/atoms/datepicker/models/interfaces.ts +8 -8
  56. package/components/atoms/dropdown/Portlet.spec.ts +26 -26
  57. package/components/atoms/dropdown/Portlet.vue +111 -111
  58. package/components/atoms/dropdown/dropdown/Dropdown.vue +148 -148
  59. package/components/atoms/dropdown/dropdown/models/interfaces.ts +8 -8
  60. package/components/atoms/dropdown/tree/Tree.vue +134 -134
  61. package/components/atoms/dropdown/tree/models/interfaces.ts +9 -9
  62. package/components/atoms/input/Search.vue +16 -16
  63. package/components/atoms/list/SimpleList.vue +29 -29
  64. package/components/atoms/list/dragDropList/DragDropList.vue +139 -139
  65. package/components/atoms/list/dragDropList/config/events.ts +4 -4
  66. package/components/atoms/loader/BarLoader.vue +21 -21
  67. package/components/atoms/loader/Loader.vue +26 -26
  68. package/components/atoms/loader/PreLoader.vue +34 -34
  69. package/components/atoms/loader/Preloader.spec.ts +24 -24
  70. package/components/atoms/modal/Modal.spec.ts +55 -55
  71. package/components/atoms/modal/Modal.vue +241 -241
  72. package/components/atoms/modal/bySteps/BySteps.spec.ts +66 -66
  73. package/components/atoms/modal/byStepsSecond/ByStepsSecond.vue +174 -174
  74. package/components/atoms/models/interfaces.ts +11 -11
  75. package/components/atoms/nav/NavBar.spec.ts +34 -34
  76. package/components/atoms/nav/models/interfaces.ts +5 -5
  77. package/components/atoms/notificationBar/models/enums.ts +27 -27
  78. package/components/atoms/notificationBar/models/interfaces.ts +6 -6
  79. package/components/atoms/notificationBar/models/types.ts +1 -1
  80. package/components/atoms/popover/Popover.vue +48 -48
  81. package/components/atoms/select/TheSelect.vue +175 -175
  82. package/components/atoms/select/models/interfaces.ts +4 -4
  83. package/components/atoms/stack/StackBlock.vue +171 -171
  84. package/components/atoms/stack/StackContent.vue +60 -60
  85. package/components/atoms/step/VerticalStep.spec.ts +68 -68
  86. package/components/atoms/step/models/verticalStepItem.ts +7 -7
  87. package/components/atoms/table/compact/Compact.vue +526 -526
  88. package/components/atoms/table/compact/models/interfaces.ts +10 -10
  89. package/components/atoms/table/dataGrid/DataGrid.spec.ts +61 -61
  90. package/components/atoms/table/dataGrid/DataGrid.vue +1283 -1283
  91. package/components/atoms/table/dataGrid/config/itemsPerPage.ts +20 -20
  92. package/components/atoms/table/dataGrid/models/interfaces.ts +24 -24
  93. package/components/atoms/table/dataGrid/models/types.ts +5 -5
  94. package/components/atoms/table/dataGrid/utils/constructDataTable.ts +33 -33
  95. package/components/atoms/table/info/Info.vue +60 -60
  96. package/components/atoms/table/info/models/interfaces.ts +6 -6
  97. package/components/atoms/table/simpleEvent/SimpleEvent.vue +98 -98
  98. package/components/atoms/table/simpleEvent/models/interfaces.ts +9 -9
  99. package/components/atoms/table/simpleInfo/SimpleInfo.vue +68 -68
  100. package/components/atoms/table/simpleInfo/models/interfaces.ts +4 -4
  101. package/components/atoms/table/simpleTable/SimpleTable.vue +291 -291
  102. package/components/atoms/table/simpleTable/models/interfaces.ts +10 -10
  103. package/components/atoms/tabs/VerticalTabs.vue +81 -81
  104. package/components/atoms/tabs/models/interfaces.ts +4 -4
  105. package/components/atoms/tabs/models/types.ts +1 -1
  106. package/components/atoms/tooltip/Models/interfaces.ts +4 -4
  107. package/components/atoms/tooltip/Text.vue +39 -39
  108. package/components/atoms/tooltip/Tooltip.vue +57 -57
  109. package/components/atoms/tooltip/TooltipError.vue +113 -113
  110. package/components/common/accordion/models/interfaces.ts +14 -14
  111. package/components/common/adapterManager/AdapterManager.vue +715 -715
  112. package/components/common/adapterManager/AddAdapterModal.vue +464 -464
  113. package/components/common/adapterManager/config/index.ts +19 -19
  114. package/components/common/adapterManager/ui/NoSelectedAdapter.vue +39 -39
  115. package/components/common/adapterManager/ui/SecondTitle.vue +37 -37
  116. package/components/common/adapterManager/ui/actions/ActionsBar.vue +93 -93
  117. package/components/common/adapterManager/ui/actions/AddAdapterButton.vue +28 -28
  118. package/components/common/adapterManager/ui/actions/MoveDownAdapterButton.vue +33 -33
  119. package/components/common/adapterManager/ui/actions/MoveUpAdapterButton.vue +33 -33
  120. package/components/common/adapterManager/ui/actions/RemoveAdapterButton.vue +34 -34
  121. package/components/common/adapterManager/ui/actions/VerticalSeparator.vue +10 -10
  122. package/components/common/adapterManager/ui/table/Adapters.vue +91 -91
  123. package/components/common/adapterManager/ui/table/Header.vue +89 -89
  124. package/components/common/adapterManager/ui/table/Table.vue +167 -167
  125. package/components/common/addNetworking/AddNetworking.vue +982 -982
  126. package/components/common/addNetworking/Wizard.vue +286 -286
  127. package/components/common/addNetworking/config/addNetworkingSteps.ts +404 -404
  128. package/components/common/addNetworking/config/index.ts +46 -46
  129. package/components/common/addNetworking/config/initialData.ts +78 -78
  130. package/components/common/addNetworking/config/portPropertiesStep.ts +19 -19
  131. package/components/common/addNetworking/config/selectSwitch.ts +19 -19
  132. package/components/common/addNetworking/config/sendData.ts +87 -87
  133. package/components/common/addNetworking/config/temporaryData.ts +7 -7
  134. package/components/common/addNetworking/config/validation.ts +23 -23
  135. package/components/common/addNetworking/mappers/mappers.ts +166 -166
  136. package/components/common/addNetworking/modals/SelectNetwork.vue +149 -149
  137. package/components/common/addNetworking/modals/SelectStandardSwitch.vue +125 -125
  138. package/components/common/addNetworking/modals/SelectSwitch.vue +114 -114
  139. package/components/common/addNetworking/models/enums.ts +6 -6
  140. package/components/common/addNetworking/models/interfaces.ts +207 -207
  141. package/components/common/addNetworking/models/types.ts +4 -4
  142. package/components/common/addNetworking/steps/ConnectionSettings.vue +269 -269
  143. package/components/common/addNetworking/steps/CreateStandardSwitch.vue +91 -91
  144. package/components/common/addNetworking/steps/Header.vue +52 -52
  145. package/components/common/addNetworking/steps/IpFourSettings.vue +361 -361
  146. package/components/common/addNetworking/steps/PhysicalAdapter.vue +24 -24
  147. package/components/common/addNetworking/steps/PortProperties.vue +481 -481
  148. package/components/common/addNetworking/steps/ReadyComplete.vue +29 -29
  149. package/components/common/addNetworking/steps/SelectConnectionType.vue +106 -106
  150. package/components/common/addNetworking/steps/SelectedTargetDevice.vue +563 -563
  151. package/components/common/addNetworking/utils/index.ts +212 -212
  152. package/components/common/browse/blocks/Container.vue +102 -102
  153. package/components/common/browse/blocks/contents/Files.vue +68 -68
  154. package/components/common/browse/blocks/info/Date.vue +21 -21
  155. package/components/common/browse/blocks/info/Size.vue +17 -17
  156. package/components/common/browse/blocks/info/Text.vue +16 -16
  157. package/components/common/browse/blocks/models/types.ts +1 -1
  158. package/components/common/browse/models/interfaces.ts +5 -5
  159. package/components/common/context/Context.spec.ts +20 -20
  160. package/components/common/context/Context.vue +97 -97
  161. package/components/common/context/ContextRecursion.spec.ts +55 -55
  162. package/components/common/context/ContextRecursion.vue +251 -251
  163. package/components/common/context/models/interfaces.ts +26 -26
  164. package/components/common/details/DetailsItem.vue +106 -106
  165. package/components/common/details/DetailsList.vue +23 -23
  166. package/components/common/details/model/interfaces.ts +9 -9
  167. package/components/common/diagramMain/Diagram.vue +186 -186
  168. package/components/common/diagramMain/DiagramMain.vue +979 -979
  169. package/components/common/diagramMain/Highlights.vue +102 -102
  170. package/components/common/diagramMain/adapter/Adapter.vue +105 -105
  171. package/components/common/diagramMain/adapter/Block.vue +41 -41
  172. package/components/common/diagramMain/adapter/Contents.vue +96 -96
  173. package/components/common/diagramMain/adapter/Lines.vue +52 -52
  174. package/components/common/diagramMain/adapter/SecondBlock.vue +42 -42
  175. package/components/common/diagramMain/config/index.ts +51 -51
  176. package/components/common/diagramMain/config/initial.ts +37 -37
  177. package/components/common/diagramMain/modals/ManagePhysicalAdaptersModal.vue +236 -236
  178. package/components/common/diagramMain/modals/MigrateVmkernelAdapter.vue +535 -535
  179. package/components/common/diagramMain/modals/config/adapterModal.ts +110 -110
  180. package/components/common/diagramMain/modals/config/diagramConfig.ts +17 -17
  181. package/components/common/diagramMain/modals/config/index.ts +57 -57
  182. package/components/common/diagramMain/modals/config/initial.ts +181 -181
  183. package/components/common/diagramMain/modals/config/migrateVmkernelAdapterSteps.ts +81 -81
  184. package/components/common/diagramMain/modals/config/networkModal.ts +337 -337
  185. package/components/common/diagramMain/modals/config/portModal.ts +201 -201
  186. package/components/common/diagramMain/modals/config/switchModal.ts +172 -172
  187. package/components/common/diagramMain/modals/config/vCenterModal.ts +30 -30
  188. package/components/common/diagramMain/modals/config/validation.ts +2 -2
  189. package/components/common/diagramMain/modals/config/vmKernelAdapter.ts +90 -90
  190. package/components/common/diagramMain/modals/editSettings/ConfirmTeamingSettingsModal.vue +41 -41
  191. package/components/common/diagramMain/modals/editSettings/EditSettings.vue +491 -491
  192. package/components/common/diagramMain/modals/editSettings/EditSettingsModal.vue +714 -714
  193. package/components/common/diagramMain/modals/editSettings/tabs/NetworkProperties.vue +211 -211
  194. package/components/common/diagramMain/modals/editSettings/tabs/Security.vue +183 -183
  195. package/components/common/diagramMain/modals/editSettings/tabs/SwitchProperties.vue +161 -161
  196. package/components/common/diagramMain/modals/editSettings/tabs/TeamingFailover.vue +166 -166
  197. package/components/common/diagramMain/modals/editSettings/tabs/TrafficShaping.vue +393 -393
  198. package/components/common/diagramMain/modals/steps/ConnectionSettings.vue +206 -206
  199. package/components/common/diagramMain/modals/steps/SelectVmkernelAdapter.vue +221 -221
  200. package/components/common/diagramMain/modals/steps/VmkernelAdapterReadyComplete.vue +50 -50
  201. package/components/common/diagramMain/modals/utils/index.ts +9 -9
  202. package/components/common/diagramMain/modals/viewSettings/Info.vue +94 -94
  203. package/components/common/diagramMain/modals/viewSettings/ViewSettings.vue +171 -171
  204. package/components/common/diagramMain/modals/viewSettings/ViewSettingsModal.vue +93 -93
  205. package/components/common/diagramMain/models/enums.ts +26 -26
  206. package/components/common/diagramMain/models/interfaces.ts +565 -565
  207. package/components/common/diagramMain/models/types.ts +9 -9
  208. package/components/common/diagramMain/network/Block.vue +55 -55
  209. package/components/common/diagramMain/network/Lines.vue +65 -65
  210. package/components/common/diagramMain/network/Network.vue +117 -117
  211. package/components/common/diagramMain/network/NoNetwork.vue +47 -47
  212. package/components/common/diagramMain/network/SecondBlock.vue +51 -51
  213. package/components/common/diagramMain/port/Port.vue +301 -301
  214. package/components/common/diagramMain/port/Ports.vue +41 -41
  215. package/components/common/diagramMain/switch/Switch.vue +71 -71
  216. package/components/common/diagramMain/switch/SwitchSelected.vue +29 -29
  217. package/components/common/diagramMain/utils/utils.ts +218 -218
  218. package/components/common/feedback/Feedback.vue +236 -236
  219. package/components/common/feedback/config/drawingPanel.ts +31 -31
  220. package/components/common/feedback/config/feedbackTabs.ts +24 -24
  221. package/components/common/feedback/models/interfaces.ts +15 -15
  222. package/components/common/graph/Graph.vue +107 -107
  223. package/components/common/graph/utils/renderGraph.ts +389 -389
  224. package/components/common/headline/Headline.vue +32 -32
  225. package/components/common/mainNavigationPanel/MainNavigationPanel.vue +343 -343
  226. package/components/common/mainNavigationPanel/models/interfaces.ts +6 -6
  227. package/components/common/mainNavigationPanel/models/types.ts +1 -1
  228. package/components/common/modals/config/defaultForm.ts +18 -18
  229. package/components/common/modals/config/renameLabelWidth.ts +3 -3
  230. package/components/common/modals/models/interfaces.ts +5 -5
  231. package/components/common/monitor/advanced/Advanced.vue +164 -149
  232. package/components/common/monitor/advanced/GraphView.vue +132 -200
  233. package/components/common/monitor/advanced/models/interfaces.ts +6 -6
  234. package/components/common/monitor/advanced/models/types.ts +1 -1
  235. package/components/common/monitor/advanced/table/Table.vue +90 -90
  236. package/components/common/monitor/advanced/table/config/performanceDatatable.ts +116 -116
  237. package/components/common/monitor/advanced/table/models/interfaces.ts +12 -12
  238. package/components/common/monitor/advanced/table/models/types.ts +10 -10
  239. package/components/common/monitor/advanced/tools/Tools.vue +302 -281
  240. package/components/common/monitor/advanced/tools/chartOptionsModal/ChartOptionsModal.vue +125 -109
  241. package/components/common/monitor/advanced/tools/chartOptionsModal/Notification.vue +33 -33
  242. package/components/common/monitor/advanced/tools/chartOptionsModal/actions/Actions.vue +79 -79
  243. package/components/common/monitor/advanced/tools/chartOptionsModal/actions/config/optionsActions.ts +13 -13
  244. package/components/common/monitor/advanced/tools/chartOptionsModal/actions/saveOptionsModal/SaveOptionsModal.vue +53 -53
  245. package/components/common/monitor/advanced/tools/chartOptionsModal/counters/Counters.vue +48 -47
  246. package/components/common/monitor/advanced/tools/chartOptionsModal/counters/table/Table.vue +113 -104
  247. package/components/common/monitor/advanced/tools/chartOptionsModal/counters/table/config/tableConfig.ts +71 -73
  248. package/components/common/monitor/advanced/tools/chartOptionsModal/counters/table/config/utils.ts +634 -0
  249. package/components/common/monitor/advanced/tools/chartOptionsModal/counters/table/models/interfaces.ts +28 -15
  250. package/components/common/monitor/advanced/tools/chartOptionsModal/counters/table/models/types.ts +5 -7
  251. package/components/common/monitor/advanced/tools/chartOptionsModal/counters/timespan/Timespan.vue +21 -18
  252. package/components/common/monitor/advanced/tools/chartOptionsModal/counters/timespan/form/Form.vue +381 -388
  253. package/components/common/monitor/advanced/tools/chartOptionsModal/counters/timespan/form/config/dateForm.ts +59 -59
  254. package/components/common/monitor/advanced/tools/chartOptionsModal/counters/timespan/object/Object.vue +107 -107
  255. package/components/common/monitor/advanced/tools/chartOptionsModal/counters/timespan/object/config/objectTable.ts +54 -54
  256. package/components/common/monitor/advanced/tools/chartOptionsModal/counters/timespan/object/models/interfaces.ts +4 -4
  257. package/components/common/monitor/advanced/tools/chartOptionsModal/counters/timespan/object/models/types.ts +1 -1
  258. package/components/common/monitor/advanced/tools/chartOptionsModal/metrics/Metrics.vue +42 -32
  259. package/components/common/monitor/advanced/tools/chartOptionsModal/metrics/config/optionsMetrics.ts +98 -104
  260. package/components/common/monitor/advanced/tools/chartOptionsModal/models/types.ts +3 -0
  261. package/components/common/monitor/advanced/tools/config/advancedToolbar.ts +73 -73
  262. package/components/common/monitor/advanced/tools/models/interfaces.ts +4 -4
  263. package/components/common/monitor/config/getValidDateByOption.ts +14 -14
  264. package/components/common/monitor/models/interfaces.ts +19 -17
  265. package/components/common/monitor/overview/Overview.vue +412 -412
  266. package/components/common/monitor/overview/filters/Filters.vue +210 -210
  267. package/components/common/monitor/overview/filters/config/filterOptions.ts +56 -56
  268. package/components/common/monitor/overview/filters/customIntervalModal/CustomIntervalModal.vue +220 -220
  269. package/components/common/monitor/overview/filters/customIntervalModal/config/dateChecker.ts +35 -35
  270. package/components/common/monitor/overview/filters/models/interfaces.ts +6 -6
  271. package/components/common/monitor/overview/filters/models/types.ts +3 -3
  272. package/components/common/recursionTree/models/interfaces.ts +19 -19
  273. package/components/common/resource/models/interfaces.ts +9 -9
  274. package/components/common/resource/models/types.ts +1 -1
  275. package/components/common/resource/progressBlock/ProgressBlock.vue +105 -105
  276. package/components/common/resource/simple/Simple.vue +58 -58
  277. package/components/common/resource/simple/models/enums.ts +5 -5
  278. package/components/common/resource/utils.ts +33 -33
  279. package/components/common/select/button/ButtonDropdown.vue +100 -100
  280. package/components/common/select/button/models/interfaces.ts +6 -6
  281. package/components/common/select/radio/RadioGroup.vue +71 -71
  282. package/components/common/select/radio/models/interfaces.ts +10 -10
  283. package/components/common/spiceConsole/Drawer.vue +241 -241
  284. package/components/common/spiceConsole/SpiceConsole.vue +87 -87
  285. package/components/common/spiceConsole/keyboard/Keyboard.vue +402 -402
  286. package/components/common/spiceConsole/keyboard/config/keyboardRows.ts +891 -891
  287. package/components/common/spiceConsole/keyboard/models/interfaces.ts +17 -17
  288. package/components/common/spiceConsole/models/types.ts +1 -1
  289. package/components/common/split/horizontal/Horizontal.vue +306 -306
  290. package/components/common/split/horizontal/models/interfaces.ts +5 -5
  291. package/components/common/split/vertical/Vertical.vue +213 -213
  292. package/components/common/split/vertical/models/interfaces.ts +3 -3
  293. package/components/common/tools/Actions.vue +141 -141
  294. package/components/common/tools/models/interfaces.ts +6 -6
  295. package/components/common/vm/actions/add/Add.vue +687 -687
  296. package/components/common/vm/actions/add/FolderTreeView.vue +83 -83
  297. package/components/common/vm/actions/add/config/capabilities.ts +670 -670
  298. package/components/common/vm/actions/add/customizeHardware/CustomizeHardware.vue +236 -236
  299. package/components/common/vm/actions/add/customizeHardware/config/navItems.ts +19 -19
  300. package/components/common/vm/actions/add/customizeHardware/models/interfaces.ts +7 -7
  301. package/components/common/vm/actions/add/customizeHardware/virtualHardware/VirtualHardware.vue +611 -611
  302. package/components/common/vm/actions/add/customizeHardware/virtualHardware/browseView/BrowseView.vue +203 -203
  303. package/components/common/vm/actions/add/customizeHardware/virtualHardware/browseView/models/interfaces.ts +8 -8
  304. package/components/common/vm/actions/add/customizeHardware/virtualHardware/bus/Bus.vue +86 -86
  305. package/components/common/vm/actions/add/customizeHardware/virtualHardware/bus/config/options.ts +13 -13
  306. package/components/common/vm/actions/add/customizeHardware/virtualHardware/cdDvdDrive/CdDvdDrive.vue +223 -223
  307. package/components/common/vm/actions/add/customizeHardware/virtualHardware/cdDvdDrive/config/fileTypes.ts +9 -9
  308. package/components/common/vm/actions/add/customizeHardware/virtualHardware/cdDvdDrive/config/options.ts +11 -11
  309. package/components/common/vm/actions/add/customizeHardware/virtualHardware/cdDvdDrive/media/Media.vue +55 -55
  310. package/components/common/vm/actions/add/customizeHardware/virtualHardware/cdDvdDrive/models/types.ts +1 -1
  311. package/components/common/vm/actions/add/customizeHardware/virtualHardware/config/binaryOptions.ts +12 -12
  312. package/components/common/vm/actions/add/customizeHardware/virtualHardware/config/dropdownItems.ts +52 -52
  313. package/components/common/vm/actions/add/customizeHardware/virtualHardware/cpu/CoresPerSocket.vue +97 -97
  314. package/components/common/vm/actions/add/customizeHardware/virtualHardware/cpu/Cpu.vue +372 -372
  315. package/components/common/vm/actions/add/customizeHardware/virtualHardware/cpu/CpuHotPlug.vue +49 -49
  316. package/components/common/vm/actions/add/customizeHardware/virtualHardware/cpu/CpuModel.vue +220 -220
  317. package/components/common/vm/actions/add/customizeHardware/virtualHardware/cpu/Hv.vue +93 -93
  318. package/components/common/vm/actions/add/customizeHardware/virtualHardware/cpu/Iommu.vue +52 -52
  319. package/components/common/vm/actions/add/customizeHardware/virtualHardware/cpu/MaxCpu.vue +105 -105
  320. package/components/common/vm/actions/add/customizeHardware/virtualHardware/cpu/Pc.vue +54 -54
  321. package/components/common/vm/actions/add/customizeHardware/virtualHardware/cpu/Sa.vue +102 -102
  322. package/components/common/vm/actions/add/customizeHardware/virtualHardware/cpu/config/cpuOptions.ts +19 -19
  323. package/components/common/vm/actions/add/customizeHardware/virtualHardware/cpu/shares/Shares.vue +155 -155
  324. package/components/common/vm/actions/add/customizeHardware/virtualHardware/cpu/shares/config/options.ts +28 -28
  325. package/components/common/vm/actions/add/customizeHardware/virtualHardware/cpu/tooltip/Tooltip.vue +58 -58
  326. package/components/common/vm/actions/add/customizeHardware/virtualHardware/limit/Limit.vue +214 -214
  327. package/components/common/vm/actions/add/customizeHardware/virtualHardware/limit/config/options.ts +28 -28
  328. package/components/common/vm/actions/add/customizeHardware/virtualHardware/memory/Memory.vue +284 -284
  329. package/components/common/vm/actions/add/customizeHardware/virtualHardware/memory/MemoryHotPlug.vue +53 -53
  330. package/components/common/vm/actions/add/customizeHardware/virtualHardware/memory/config/memoryOptions.ts +23 -23
  331. package/components/common/vm/actions/add/customizeHardware/virtualHardware/models/interfaces.ts +125 -125
  332. package/components/common/vm/actions/add/customizeHardware/virtualHardware/models/types.ts +4 -4
  333. package/components/common/vm/actions/add/customizeHardware/virtualHardware/newHardDisk/DiskFile.vue +24 -24
  334. package/components/common/vm/actions/add/customizeHardware/virtualHardware/newHardDisk/Location.vue +171 -171
  335. package/components/common/vm/actions/add/customizeHardware/virtualHardware/newHardDisk/MaximumSize.vue +27 -27
  336. package/components/common/vm/actions/add/customizeHardware/virtualHardware/newHardDisk/NewHardDisk.vue +452 -452
  337. package/components/common/vm/actions/add/customizeHardware/virtualHardware/newHardDisk/cache/Cache.vue +80 -80
  338. package/components/common/vm/actions/add/customizeHardware/virtualHardware/newHardDisk/cache/config/options.ts +7 -7
  339. package/components/common/vm/actions/add/customizeHardware/virtualHardware/newHardDisk/limitIops/LimitIops.vue +151 -151
  340. package/components/common/vm/actions/add/customizeHardware/virtualHardware/newHardDisk/limitIops/config/options.ts +28 -28
  341. package/components/common/vm/actions/add/customizeHardware/virtualHardware/newHardDisk/mode/Mode.vue +87 -87
  342. package/components/common/vm/actions/add/customizeHardware/virtualHardware/newHardDisk/mode/config/options.ts +18 -18
  343. package/components/common/vm/actions/add/customizeHardware/virtualHardware/newHardDisk/provisioning/Provisioning.vue +87 -87
  344. package/components/common/vm/actions/add/customizeHardware/virtualHardware/newHardDisk/provisioning/config/options.ts +15 -15
  345. package/components/common/vm/actions/add/customizeHardware/virtualHardware/newHardDisk/sharing/Sharing.vue +85 -85
  346. package/components/common/vm/actions/add/customizeHardware/virtualHardware/newHardDisk/sharing/config/options.ts +12 -12
  347. package/components/common/vm/actions/add/customizeHardware/virtualHardware/newNetwork/Location.vue +141 -141
  348. package/components/common/vm/actions/add/customizeHardware/virtualHardware/newNetwork/NewNetwork.vue +256 -256
  349. package/components/common/vm/actions/add/customizeHardware/virtualHardware/newNetwork/adapterType/AdapterType.vue +86 -86
  350. package/components/common/vm/actions/add/customizeHardware/virtualHardware/newNetwork/adapterType/config/options.ts +9 -9
  351. package/components/common/vm/actions/add/customizeHardware/virtualHardware/newNetwork/macAddress/MacAddress.vue +140 -140
  352. package/components/common/vm/actions/add/customizeHardware/virtualHardware/newNetwork/macAddress/config/options.ts +11 -11
  353. package/components/common/vm/actions/add/customizeHardware/virtualHardware/newPciDevice/NewPciDevice.vue +157 -157
  354. package/components/common/vm/actions/add/customizeHardware/virtualHardware/newPciDevice/config/options.ts +7 -7
  355. package/components/common/vm/actions/add/customizeHardware/virtualHardware/newPciDevice/directPathIo/DirectPathIo.vue +44 -44
  356. package/components/common/vm/actions/add/customizeHardware/virtualHardware/newPciDevice/dynamicDirectPathIo/DynamicDirectPathIo.vue +49 -49
  357. package/components/common/vm/actions/add/customizeHardware/virtualHardware/newPciDevice/dynamicDirectPathIo/config/options.ts +10 -10
  358. package/components/common/vm/actions/add/customizeHardware/virtualHardware/newPciDevice/note/Note.vue +27 -27
  359. package/components/common/vm/actions/add/customizeHardware/virtualHardware/newPciDevice/nvidiaGrid/NvidiaGrid.vue +41 -41
  360. package/components/common/vm/actions/add/customizeHardware/virtualHardware/newPciDevice/typeSelection/TypeSelection.vue +56 -56
  361. package/components/common/vm/actions/add/customizeHardware/virtualHardware/newUsbController/NewUsbController.vue +65 -65
  362. package/components/common/vm/actions/add/customizeHardware/virtualHardware/newUsbController/config/options.ts +6 -6
  363. package/components/common/vm/actions/add/customizeHardware/virtualHardware/other/InputDevices.vue +21 -21
  364. package/components/common/vm/actions/add/customizeHardware/virtualHardware/other/Other.vue +27 -27
  365. package/components/common/vm/actions/add/customizeHardware/virtualHardware/reservation/Reservation.vue +231 -231
  366. package/components/common/vm/actions/add/customizeHardware/virtualHardware/reservation/config/options.ts +33 -33
  367. package/components/common/vm/actions/add/customizeHardware/virtualHardware/videoCard/Graphics.vue +45 -45
  368. package/components/common/vm/actions/add/customizeHardware/virtualHardware/videoCard/TotalVideoMemory.vue +120 -120
  369. package/components/common/vm/actions/add/customizeHardware/virtualHardware/videoCard/VideoCard.vue +173 -173
  370. package/components/common/vm/actions/add/customizeHardware/virtualHardware/videoCard/config/options.ts +11 -11
  371. package/components/common/vm/actions/add/customizeHardware/virtualHardware/videoCard/model/Model.vue +57 -57
  372. package/components/common/vm/actions/add/customizeHardware/virtualHardware/videoCard/model/config/options.ts +10 -10
  373. package/components/common/vm/actions/add/customizeHardware/virtualHardware/videoCard/numberDisplays/NumberDisplays.vue +82 -82
  374. package/components/common/vm/actions/add/customizeHardware/virtualHardware/videoCard/numberDisplays/config/options.ts +14 -14
  375. package/components/common/vm/actions/add/customizeHardware/vmoptions/Vmoptions.vue +145 -145
  376. package/components/common/vm/actions/add/customizeHardware/vmoptions/bootOptions/BootOptions.vue +110 -110
  377. package/components/common/vm/actions/add/customizeHardware/vmoptions/bootOptions/Menu.vue +45 -45
  378. package/components/common/vm/actions/add/customizeHardware/vmoptions/bootOptions/Secure.vue +45 -45
  379. package/components/common/vm/actions/add/customizeHardware/vmoptions/bootOptions/delay/Delay.vue +50 -50
  380. package/components/common/vm/actions/add/customizeHardware/vmoptions/bootOptions/delay/config/config.ts +14 -14
  381. package/components/common/vm/actions/add/customizeHardware/vmoptions/bootOptions/firmware/Firmware.vue +83 -83
  382. package/components/common/vm/actions/add/customizeHardware/vmoptions/bootOptions/firmware/config/config.ts +11 -11
  383. package/components/common/vm/actions/add/customizeHardware/vmoptions/bootOptions/order/Order.vue +195 -195
  384. package/components/common/vm/actions/add/customizeHardware/vmoptions/bootOptions/order/models/interfaces.ts +8 -8
  385. package/components/common/vm/actions/add/customizeHardware/vmoptions/generalOptions/GeneralOptions.vue +114 -114
  386. package/components/common/vm/actions/add/customizeHardware/vmoptions/models/interfaces.ts +34 -34
  387. package/components/common/vm/actions/add/customizeHardware/vmoptions/remoteConsoleOptions/CopyPaste.vue +45 -45
  388. package/components/common/vm/actions/add/customizeHardware/vmoptions/remoteConsoleOptions/FileTransfer.vue +49 -49
  389. package/components/common/vm/actions/add/customizeHardware/vmoptions/remoteConsoleOptions/FolderSharing.vue +50 -50
  390. package/components/common/vm/actions/add/customizeHardware/vmoptions/remoteConsoleOptions/PlaybackCompression.vue +49 -49
  391. package/components/common/vm/actions/add/customizeHardware/vmoptions/remoteConsoleOptions/PowerControl.vue +49 -49
  392. package/components/common/vm/actions/add/customizeHardware/vmoptions/remoteConsoleOptions/RemoteConsoleOptions.vue +230 -230
  393. package/components/common/vm/actions/add/customizeHardware/vmoptions/remoteConsoleOptions/imgCompression/ImgCompression.vue +82 -82
  394. package/components/common/vm/actions/add/customizeHardware/vmoptions/remoteConsoleOptions/imgCompression/config/config.ts +14 -14
  395. package/components/common/vm/actions/add/customizeHardware/vmoptions/remoteConsoleOptions/jpegCompression/JpegCompression.vue +82 -82
  396. package/components/common/vm/actions/add/customizeHardware/vmoptions/remoteConsoleOptions/jpegCompression/config/config.ts +12 -12
  397. package/components/common/vm/actions/add/customizeHardware/vmoptions/remoteConsoleOptions/keymap/Keymap.vue +50 -50
  398. package/components/common/vm/actions/add/customizeHardware/vmoptions/remoteConsoleOptions/keymap/config/config.ts +6 -6
  399. package/components/common/vm/actions/add/customizeHardware/vmoptions/remoteConsoleOptions/mouseMode/MouseMode.vue +52 -52
  400. package/components/common/vm/actions/add/customizeHardware/vmoptions/remoteConsoleOptions/mouseMode/config/config.ts +11 -11
  401. package/components/common/vm/actions/add/customizeHardware/vmoptions/remoteConsoleOptions/password/Password.vue +134 -134
  402. package/components/common/vm/actions/add/customizeHardware/vmoptions/remoteConsoleOptions/password/models/interfaces.ts +5 -5
  403. package/components/common/vm/actions/add/customizeHardware/vmoptions/remoteConsoleOptions/password/utils.ts +12 -12
  404. package/components/common/vm/actions/add/customizeHardware/vmoptions/remoteConsoleOptions/sharePolicy/SharePolicy.vue +52 -52
  405. package/components/common/vm/actions/add/customizeHardware/vmoptions/remoteConsoleOptions/sharePolicy/config/config.ts +11 -11
  406. package/components/common/vm/actions/add/customizeHardware/vmoptions/remoteConsoleOptions/streamingMode/StreamingMode.vue +82 -82
  407. package/components/common/vm/actions/add/customizeHardware/vmoptions/remoteConsoleOptions/streamingMode/config/config.ts +12 -12
  408. package/components/common/vm/actions/add/customizeHardware/vmoptions/remoteConsoleOptions/type/Type.vue +82 -82
  409. package/components/common/vm/actions/add/customizeHardware/vmoptions/remoteConsoleOptions/type/config/config.ts +7 -7
  410. package/components/common/vm/actions/add/customizeHardware/vmoptions/remoteConsoleOptions/usbRedirection/UsbRedirection.vue +56 -56
  411. package/components/common/vm/actions/add/customizeHardware/vmoptions/remoteConsoleOptions/usbRedirection/config/config.ts +14 -14
  412. package/components/common/vm/actions/add/customizeHardware/vmoptions/remoteConsoleOptions/zlibCompression/ZlibCompression.vue +82 -82
  413. package/components/common/vm/actions/add/customizeHardware/vmoptions/remoteConsoleOptions/zlibCompression/config/config.ts +12 -12
  414. package/components/common/vm/actions/add/customizeHardware/vmoptions/tools/Tools.vue +63 -63
  415. package/components/common/vm/actions/add/models/enums.ts +89 -89
  416. package/components/common/vm/actions/add/models/interfaces.ts +126 -126
  417. package/components/common/vm/actions/add/models/types.ts +65 -65
  418. package/components/common/vm/actions/add/readyToComplete/ReadyToComplete.vue +15 -15
  419. package/components/common/vm/actions/add/select/compatibility/Compatibility.vue +151 -151
  420. package/components/common/vm/actions/add/select/computeResource/ComputeResource.spec.ts +479 -479
  421. package/components/common/vm/actions/add/select/computeResource/ComputeResource.vue +170 -170
  422. package/components/common/vm/actions/add/select/computeResource/TreeView.vue +126 -126
  423. package/components/common/vm/actions/add/select/createType/CreateType.vue +61 -61
  424. package/components/common/vm/actions/add/select/createType/config/items.ts +26 -26
  425. package/components/common/vm/actions/add/select/models/interfaces.ts +32 -32
  426. package/components/common/vm/actions/add/select/models/types.ts +44 -44
  427. package/components/common/vm/actions/add/select/name/Name.vue +173 -173
  428. package/components/common/vm/actions/add/select/os/os.vue +221 -221
  429. package/components/common/vm/actions/add/select/storage/Storage.vue +176 -176
  430. package/components/common/vm/actions/add/select/storage/config/config.ts +148 -148
  431. package/components/common/vm/actions/add/select/storage/models/types.ts +15 -15
  432. package/components/common/vm/actions/add/utils.ts +118 -118
  433. package/components/common/vm/actions/editSettings/EditSettings.vue +312 -312
  434. package/components/common/vm/actions/editSettings/models/types.ts +23 -23
  435. package/components/common/vm/actions/editSettings/utils.ts +48 -48
  436. package/components/common/vm/actions/models/interfaces.ts +6 -6
  437. package/components/common/vm/actions/models/types.ts +11 -11
  438. package/components/common/vm/actions/utils.ts +221 -221
  439. package/components/common/wizards/datastore/add/Add.vue +382 -382
  440. package/components/common/wizards/datastore/add/config/stepItems.ts +160 -160
  441. package/components/common/wizards/datastore/add/local/Local.vue +67 -67
  442. package/components/common/wizards/datastore/add/local/createName/CreateName.vue +159 -159
  443. package/components/common/wizards/datastore/add/local/createName/config/defaultForm.ts +15 -15
  444. package/components/common/wizards/datastore/add/models/interfaces.ts +35 -35
  445. package/components/common/wizards/datastore/add/models/types.ts +14 -14
  446. package/components/common/wizards/datastore/add/nfs/Nfs.vue +91 -91
  447. package/components/common/wizards/datastore/add/nfs/accessibility/Accessibility.vue +95 -95
  448. package/components/common/wizards/datastore/add/nfs/accessibility/config/tabsPannel.ts +24 -24
  449. package/components/common/wizards/datastore/add/nfs/accessibility/models/interfaces.ts +9 -9
  450. package/components/common/wizards/datastore/add/nfs/accessibility/models/types.ts +5 -5
  451. package/components/common/wizards/datastore/add/nfs/accessibility/tablesView/TablesView.vue +141 -141
  452. package/components/common/wizards/datastore/add/nfs/accessibility/tablesView/config/compatibleTable.ts +54 -54
  453. package/components/common/wizards/datastore/add/nfs/accessibility/tablesView/config/hostsTableItems.ts +75 -75
  454. package/components/common/wizards/datastore/add/nfs/accessibility/tablesView/config/incompatibleTable.ts +68 -68
  455. package/components/common/wizards/datastore/add/nfs/accessibility/tablesView/config/tableKeys.ts +15 -15
  456. package/components/common/wizards/datastore/add/nfs/configuration/config/defaultForm.ts +33 -33
  457. package/components/common/wizards/datastore/add/nfs/configuration/models/interfaces.ts +12 -12
  458. package/components/common/wizards/datastore/add/nfs/configuration/serversList/DeletePopover.vue +97 -97
  459. package/components/common/wizards/datastore/add/nfs/configuration/serversList/config/serversListConfig.ts +41 -41
  460. package/components/common/wizards/datastore/add/nfs/configuration/serversList/config/tableKeys.ts +3 -3
  461. package/components/common/wizards/datastore/add/nfs/configuration/serversList/models/interfaces.ts +11 -11
  462. package/components/common/wizards/datastore/add/nfs/configuration/serversList/models/types.ts +1 -1
  463. package/components/common/wizards/datastore/add/nfs/kerberosAuthentication/config/radioOptions.ts +24 -24
  464. package/components/common/wizards/datastore/add/nfs/version/Version.vue +70 -70
  465. package/components/common/wizards/datastore/add/nfs/version/config/versionOptions.ts +20 -20
  466. package/components/common/wizards/datastore/add/readyComplete/ReadyComplete.vue +77 -77
  467. package/components/common/wizards/datastore/add/readyComplete/config/propertiesDetails.ts +165 -165
  468. package/components/common/wizards/datastore/add/readyComplete/models/interfaces.ts +4 -4
  469. package/components/common/wizards/datastore/add/sharedStorm/SharedStorm.vue +85 -85
  470. package/components/common/wizards/datastore/add/sharedStorm/deviceSelection/DeviceSelection.vue +447 -447
  471. package/components/common/wizards/datastore/add/sharedStorm/deviceSelection/config/defaultForm.ts +18 -18
  472. package/components/common/wizards/datastore/add/sharedStorm/deviceSelection/config/selectOptions.ts +14 -14
  473. package/components/common/wizards/datastore/add/sharedStorm/deviceSelection/hostTable/config/hostsTable.ts +87 -87
  474. package/components/common/wizards/datastore/add/sharedStorm/deviceSelection/hostTable/config/tableKeys.ts +11 -11
  475. package/components/common/wizards/datastore/add/sharedStorm/deviceSelection/models/interfaces.ts +55 -55
  476. package/components/common/wizards/datastore/add/sharedStorm/deviceSelection/models/types.ts +14 -14
  477. package/components/common/wizards/datastore/add/sharedStorm/partitionConfiguration/config/selectOptions.ts +46 -46
  478. package/components/common/wizards/datastore/add/sharedStorm/partitionConfiguration/graphicTooltip/graphicTooltip.vue +64 -64
  479. package/components/common/wizards/datastore/add/sharedStorm/partitionConfiguration/sizeGraphic/sizeGraphic.vue +225 -225
  480. package/components/common/wizards/datastore/add/sharedStorm/version/Version.vue +70 -70
  481. package/components/common/wizards/datastore/add/sharedStorm/version/config/versionOptions.ts +19 -19
  482. package/components/common/wizards/datastore/add/types/Types.vue +79 -79
  483. package/components/common/wizards/datastore/add/types/config/typeOptions.ts +31 -31
  484. package/components/common/wizards/datastore/add/utils.ts +69 -69
  485. package/components/models/interfaces.ts +14 -14
  486. package/composables/deepCopy.ts +21 -21
  487. package/composables/useDiff.ts +15 -15
  488. package/composables/useLocal.ts +36 -36
  489. package/composables/useLocalStorage.ts +45 -45
  490. package/composables/useThrottle.ts +32 -32
  491. package/composables/useUniqueId.ts +5 -5
  492. package/config/regExp.ts +13 -13
  493. package/eslint/index.js +15 -15
  494. package/eslint/no-import-type.js +17 -17
  495. package/eslint/no-invalid-type-prefix.js +32 -32
  496. package/minify.js +51 -51
  497. package/models/composables/useMyFetch/interfaces.ts +4 -4
  498. package/models/composables/useMyFetch/types.ts +1 -1
  499. package/models/enums.ts +21 -21
  500. package/models/interfaces.ts +29 -29
  501. package/models/plugins/date/interfaces.ts +5 -5
  502. package/models/plugins/date/types.ts +1 -1
  503. package/models/plugins/validation/interfaces.ts +21 -21
  504. package/models/plugins/validation/types.ts +1 -1
  505. package/models/store/host/interfaces.ts +38 -38
  506. package/models/store/interfaces.ts +47 -47
  507. package/models/store/network/interfaces.ts +13 -13
  508. package/models/store/vm/interfaces.ts +207 -207
  509. package/models/types.ts +6 -6
  510. package/nuxt.config.ts +8 -8
  511. package/package.json +39 -39
  512. package/plugins/binary.ts +122 -122
  513. package/plugins/date.ts +179 -179
  514. package/plugins/recursion.ts +230 -230
  515. package/plugins/spice-console/spice.console.ts +128 -128
  516. package/plugins/text.ts +48 -48
  517. package/plugins/validation.ts +172 -172
  518. package/public/spice-console/application/WorkerProcess.js +3350 -3350
  519. package/public/spice-console/application/WorkerProcess_back.js +3144 -3144
  520. package/public/spice-console/application/WorkerProcess_meta.js +3102 -3102
  521. package/public/spice-console/application/WorkerProcess_reverse.js +3214 -3214
  522. package/public/spice-console/application/agent.js +175 -175
  523. package/public/spice-console/application/application.js +641 -641
  524. package/public/spice-console/application/checkActivity.js +50 -50
  525. package/public/spice-console/application/clientgui.js +842 -842
  526. package/public/spice-console/application/clipboard/clipboarddataparser.js +92 -92
  527. package/public/spice-console/application/clipboard/local/localClipboard.js +110 -110
  528. package/public/spice-console/application/clipboard.js +82 -82
  529. package/public/spice-console/application/imagecache.js +81 -81
  530. package/public/spice-console/application/inputmanager.js +270 -270
  531. package/public/spice-console/application/packetfactory.js +202 -202
  532. package/public/spice-console/application/packetfilter.js +103 -103
  533. package/public/spice-console/application/packetprocess.js +75 -75
  534. package/public/spice-console/application/rasteroperation.js +118 -118
  535. package/public/spice-console/application/spiceconnection.js +197 -197
  536. package/public/spice-console/application/stream.js +67 -67
  537. package/public/spice-console/application/virtualmouse.js +109 -109
  538. package/public/spice-console/keymaps/keyevent.js +36 -36
  539. package/public/spice-console/keymaps/keymap.js +229 -229
  540. package/public/spice-console/keymaps/keymapes.js +375 -375
  541. package/public/spice-console/keymaps/keymapesObj.js +316 -316
  542. package/public/spice-console/keymaps/keymapus.js +317 -317
  543. package/public/spice-console/keymaps/scanCodeObjModifier.js +65 -65
  544. package/public/spice-console/keymaps/scanCodeObjProvider.js +60 -60
  545. package/public/spice-console/lib/AsyncConsumer.js +204 -204
  546. package/public/spice-console/lib/AsyncWorker.js +60 -60
  547. package/public/spice-console/lib/CollisionDetector.js +27 -27
  548. package/public/spice-console/lib/DataLogger.js +197 -197
  549. package/public/spice-console/lib/GenericObjectPool.js +152 -152
  550. package/public/spice-console/lib/GlobalPool.js +114 -114
  551. package/public/spice-console/lib/ImageUncompressor.js +138 -138
  552. package/public/spice-console/lib/IntegrationBenchmark.js +64 -64
  553. package/public/spice-console/lib/PacketWorkerIdentifier.js +107 -107
  554. package/public/spice-console/lib/SyncAsyncHandler.js +46 -46
  555. package/public/spice-console/lib/base64.js +298 -298
  556. package/public/spice-console/lib/biginteger.js +1640 -1640
  557. package/public/spice-console/lib/bowser.js +276 -276
  558. package/public/spice-console/lib/decoder/dixie.js +7930 -7930
  559. package/public/spice-console/lib/decoder/jmuxer.js +2815 -2815
  560. package/public/spice-console/lib/displayRouter.js +83 -83
  561. package/public/spice-console/lib/encrypt.js +191 -191
  562. package/public/spice-console/lib/flipper.js +39 -39
  563. package/public/spice-console/lib/graphic.js +1230 -1230
  564. package/public/spice-console/lib/graphicdebug.js +223 -223
  565. package/public/spice-console/lib/images/bitmap.js +194 -194
  566. package/public/spice-console/lib/images/jsquic_family.js +83 -83
  567. package/public/spice-console/lib/images/jsquic_rgba.js +342 -342
  568. package/public/spice-console/lib/images/jsquic_uncompress.js +529 -529
  569. package/public/spice-console/lib/images/lz.js +717 -717
  570. package/public/spice-console/lib/images/png.js +275 -275
  571. package/public/spice-console/lib/jgestures.min.js +43 -43
  572. package/public/spice-console/lib/jquery-2.0.3.js +8829 -8829
  573. package/public/spice-console/lib/jquery-mousewheel.js +83 -83
  574. package/public/spice-console/lib/jquery-visibility.min.js +1 -1
  575. package/public/spice-console/lib/jsbn.js +578 -578
  576. package/public/spice-console/lib/jsbn2.js +675 -675
  577. package/public/spice-console/lib/lodash.4.0.0.min.js +136 -136
  578. package/public/spice-console/lib/modernizr.js +39 -39
  579. package/public/spice-console/lib/pixastic.js +3244 -3244
  580. package/public/spice-console/lib/prettyprint.js +794 -794
  581. package/public/spice-console/lib/prng4.js +64 -64
  582. package/public/spice-console/lib/queue.js +259 -259
  583. package/public/spice-console/lib/rng.js +87 -87
  584. package/public/spice-console/lib/runqueue.js +103 -103
  585. package/public/spice-console/lib/sha1.js +124 -124
  586. package/public/spice-console/lib/stuckkeyshandler.js +122 -122
  587. package/public/spice-console/lib/timelapsedetector.js +62 -62
  588. package/public/spice-console/lib/utils.js +327 -327
  589. package/public/spice-console/lib/virtualjoystick.js +370 -370
  590. package/public/spice-console/network/busconnection.js +195 -195
  591. package/public/spice-console/network/clusternodechooser.js +49 -49
  592. package/public/spice-console/network/connectioncontrol.js +60 -60
  593. package/public/spice-console/network/packetcontroller.js +62 -62
  594. package/public/spice-console/network/packetextractor.js +73 -73
  595. package/public/spice-console/network/packetlinkfactory.js +64 -64
  596. package/public/spice-console/network/packetreassembler.js +77 -77
  597. package/public/spice-console/network/reassemblerfactory.js +39 -39
  598. package/public/spice-console/network/sizedefiner.js +86 -86
  599. package/public/spice-console/network/socket.js +120 -120
  600. package/public/spice-console/network/socketqueue.js +95 -95
  601. package/public/spice-console/network/spicechannel.js +346 -287
  602. package/public/spice-console/network/websocketwrapper.js +75 -75
  603. package/public/spice-console/process/busprocess.js +309 -309
  604. package/public/spice-console/process/cursorprocess.js +110 -110
  605. package/public/spice-console/process/displaypreprocess.js +152 -152
  606. package/public/spice-console/process/displayprocess.js +210 -210
  607. package/public/spice-console/process/inputprocess.js +204 -204
  608. package/public/spice-console/process/mainprocess.js +78 -78
  609. package/public/spice-console/process/playbackprocess.js +233 -233
  610. package/public/spice-console/run.js +181 -181
  611. package/public/spice-console/spiceobjects/generated/protocol.js +537 -537
  612. package/public/spice-console/spiceobjects/spiceobjects.js +3474 -3474
  613. package/public/spice-console/swcanvas/swcanvas.js +82 -82
  614. package/public/spice-console/tools/generate.php +269 -269
  615. package/public/spice-console/tools/generateKeyboardLayout.php +63 -63
  616. package/public/spice-console/tools/generateSpiceObject.php +81 -81
  617. package/public/spice-console-minify/application/application.min.js +1 -1
  618. 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>