bfg-common 1.0.63 → 1.0.65

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