bfg-common 1.0.24 → 1.0.26

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