bfg-common 1.0.73 → 1.0.74

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