bfg-common 1.2.149 → 1.2.151

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 (726) hide show
  1. package/.eslintrc.js +21 -21
  2. package/.idea/inspectionProfiles/Project_Default.xml +48 -48
  3. package/.idea/modules.xml +7 -7
  4. package/.idea/prettier.xml +5 -5
  5. package/.idea/uikit.iml +11 -11
  6. package/.idea/vcs.xml +5 -5
  7. package/.prettierrc +4 -4
  8. package/PROJECT_STRUCTURE.md +42 -42
  9. package/README.md +42 -42
  10. package/assets/img/icons/icon-hcs.svg +3 -3
  11. package/assets/img/icons/icon-life-m-dark.svg +3 -3
  12. package/assets/img/icons/icon-life-m-light.svg +3 -3
  13. package/assets/img/icons/icon-ro-dark.svg +1 -1
  14. package/assets/img/icons/icon-ro-light.svg +2 -2
  15. package/assets/img/icons/icons-sprite-dark-6.svg +1 -1
  16. package/assets/img/icons/icons-sprite-light-6.svg +1 -1
  17. package/assets/img/icons/info.svg +8 -8
  18. package/assets/img/icons/vc.svg +52 -52
  19. package/assets/img/logo copy.svg +50 -50
  20. package/assets/img/logo.svg +51 -51
  21. package/assets/localization/local_be.json +2125 -2125
  22. package/assets/localization/local_en.json +2128 -2128
  23. package/assets/localization/local_hy.json +2128 -2128
  24. package/assets/localization/local_kk.json +2128 -2128
  25. package/assets/localization/local_ru.json +2128 -2128
  26. package/assets/localization/local_zh.json +2128 -2128
  27. package/assets/scss/clarity/clr-ui.min.css +8 -8
  28. package/assets/scss/common/animations.scss +28 -28
  29. package/assets/scss/common/global.scss +172 -172
  30. package/assets/scss/common/icons/icons-1.scss +224 -224
  31. package/assets/scss/common/icons/icons-3.scss +203 -203
  32. package/assets/scss/common/icons/icons-4.scss +185 -185
  33. package/assets/scss/common/icons/icons-5.scss +59 -59
  34. package/assets/scss/common/icons/icons-6.scss +29 -29
  35. package/assets/scss/common/icons/icons.scss +15 -15
  36. package/assets/scss/common/mixins.scss +39 -39
  37. package/assets/scss/common/normalize.scss +320 -320
  38. package/assets/scss/common/theme.scss +230 -230
  39. package/assets/scss/common/utilities.scss +20 -20
  40. package/assets/scss/common/variables.scss +43 -43
  41. package/assets/scss/main.scss +13 -13
  42. package/components/atoms/DiagramIcon.vue +356 -356
  43. package/components/atoms/TheIcon.vue +1687 -1687
  44. package/components/atoms/TheIcon2.vue +1136 -1136
  45. package/components/atoms/alert/Alert.spec.ts +38 -38
  46. package/components/atoms/alert/Alert.vue +84 -84
  47. package/components/atoms/alert/Notification.spec.ts +34 -34
  48. package/components/atoms/alert/Notification.vue +167 -167
  49. package/components/atoms/alert/models/enums.ts +12 -12
  50. package/components/atoms/alert/models/interfaces.ts +27 -27
  51. package/components/atoms/alert/models/types.ts +7 -7
  52. package/components/atoms/autocomplete/Autocomplete.vue +236 -236
  53. package/components/atoms/collapse/CollapseNav.vue +164 -164
  54. package/components/atoms/collapse/CollapseNavItem.vue +190 -190
  55. package/components/atoms/collapse/models/interfaces.ts +10 -10
  56. package/components/atoms/combobox/Combobox.vue +147 -147
  57. package/components/atoms/datepicker/Datepicker.vue +612 -612
  58. package/components/atoms/datepicker/config/allShortMonths.ts +103 -103
  59. package/components/atoms/datepicker/config/datapicker.ts +43 -43
  60. package/components/atoms/datepicker/models/interfaces.ts +8 -8
  61. package/components/atoms/dropdown/Portlet.spec.ts +26 -26
  62. package/components/atoms/dropdown/Portlet.vue +111 -111
  63. package/components/atoms/dropdown/dropdown/Dropdown.vue +148 -148
  64. package/components/atoms/dropdown/dropdown/models/interfaces.ts +8 -8
  65. package/components/atoms/dropdown/tree/Tree.vue +134 -134
  66. package/components/atoms/dropdown/tree/models/interfaces.ts +9 -9
  67. package/components/atoms/input/Search.vue +16 -16
  68. package/components/atoms/list/SelectList.vue +62 -62
  69. package/components/atoms/list/SimpleList.vue +29 -29
  70. package/components/atoms/list/dragDropList/DragDropList.vue +139 -139
  71. package/components/atoms/list/dragDropList/config/events.ts +4 -4
  72. package/components/atoms/loader/BarLoader.vue +27 -27
  73. package/components/atoms/loader/Loader.vue +26 -26
  74. package/components/atoms/loader/PreLoader.vue +35 -35
  75. package/components/atoms/loader/Preloader.spec.ts +24 -24
  76. package/components/atoms/modal/Modal.spec.ts +55 -55
  77. package/components/atoms/modal/Modal.vue +244 -244
  78. package/components/atoms/modal/bySteps/BySteps.spec.ts +66 -66
  79. package/components/atoms/modal/bySteps/BySteps.vue +247 -247
  80. package/components/atoms/modal/byStepsSecond/ByStepsSecond.vue +175 -175
  81. package/components/atoms/models/interfaces.ts +12 -12
  82. package/components/atoms/nav/NavBar.spec.ts +34 -34
  83. package/components/atoms/nav/NavBar.vue +140 -140
  84. package/components/atoms/nav/VerticalNavBar.vue +89 -89
  85. package/components/atoms/nav/models/interfaces.ts +5 -5
  86. package/components/atoms/notificationBar/NotificationBar.vue +170 -170
  87. package/components/atoms/notificationBar/models/enums.ts +13 -13
  88. package/components/atoms/notificationBar/models/interfaces.ts +6 -6
  89. package/components/atoms/notificationBar/models/types.ts +1 -1
  90. package/components/atoms/perPage/PerPage.vue +52 -52
  91. package/components/atoms/popover/Popover.vue +61 -61
  92. package/components/atoms/popup/SimplePopup.vue +90 -90
  93. package/components/atoms/select/TheSelect.vue +175 -175
  94. package/components/atoms/select/models/interfaces.ts +4 -4
  95. package/components/atoms/stack/StackBlock.vue +178 -178
  96. package/components/atoms/stack/StackContent.vue +63 -63
  97. package/components/atoms/step/VerticalStep.spec.ts +68 -68
  98. package/components/atoms/step/VerticalStep.vue +104 -104
  99. package/components/atoms/step/models/verticalStepItem.ts +7 -7
  100. package/components/atoms/table/compact/Compact.vue +526 -526
  101. package/components/atoms/table/compact/models/interfaces.ts +10 -10
  102. package/components/atoms/table/dataGrid/DataGrid.spec.ts +61 -61
  103. package/components/atoms/table/dataGrid/DataGrid.vue +1489 -1489
  104. package/components/atoms/table/dataGrid/DataGridColumnSwitch.vue +206 -206
  105. package/components/atoms/table/dataGrid/DataGridPage.vue +191 -191
  106. package/components/atoms/table/dataGrid/DataGridPagination.vue +89 -89
  107. package/components/atoms/table/dataGrid/config/itemsPerPage.ts +20 -20
  108. package/components/atoms/table/dataGrid/models/interfaces.ts +25 -25
  109. package/components/atoms/table/dataGrid/models/types.ts +5 -5
  110. package/components/atoms/table/dataGrid/utils/constructDataTable.ts +32 -32
  111. package/components/atoms/table/info/Info.vue +60 -60
  112. package/components/atoms/table/info/models/interfaces.ts +9 -9
  113. package/components/atoms/table/simpleEvent/SimpleEvent.vue +98 -98
  114. package/components/atoms/table/simpleEvent/models/interfaces.ts +9 -9
  115. package/components/atoms/table/simpleInfo/SimpleInfo.vue +68 -68
  116. package/components/atoms/table/simpleInfo/models/interfaces.ts +4 -4
  117. package/components/atoms/table/simpleTable/SimpleTable.vue +293 -293
  118. package/components/atoms/table/simpleTable/models/interfaces.ts +10 -10
  119. package/components/atoms/tabs/Tabs.vue +215 -215
  120. package/components/atoms/tabs/VerticalTabs.vue +87 -87
  121. package/components/atoms/tabs/models/interfaces.ts +4 -4
  122. package/components/atoms/tabs/models/types.ts +1 -1
  123. package/components/atoms/tooltip/Models/interfaces.ts +4 -4
  124. package/components/atoms/tooltip/Signpost.vue +225 -225
  125. package/components/atoms/tooltip/Text.vue +37 -37
  126. package/components/atoms/tooltip/Tooltip.vue +57 -57
  127. package/components/atoms/tooltip/TooltipError.vue +113 -113
  128. package/components/common/accordion/Accordion.vue +176 -176
  129. package/components/common/accordion/Recursion.vue +216 -216
  130. package/components/common/accordion/models/enums.ts +5 -5
  131. package/components/common/accordion/models/interfaces.ts +15 -15
  132. package/components/common/accordion/models/types.ts +1 -1
  133. package/components/common/accordion/utils/accordion.ts +31 -31
  134. package/components/common/adapterManager/AdapterManager.vue +715 -715
  135. package/components/common/adapterManager/AddAdapterModal.vue +555 -555
  136. package/components/common/adapterManager/config/index.ts +19 -19
  137. package/components/common/adapterManager/ui/NoSelectedAdapter.vue +39 -39
  138. package/components/common/adapterManager/ui/SecondTitle.vue +37 -37
  139. package/components/common/adapterManager/ui/actions/ActionsBar.vue +93 -93
  140. package/components/common/adapterManager/ui/actions/AddAdapterButton.vue +28 -28
  141. package/components/common/adapterManager/ui/actions/MoveDownAdapterButton.vue +33 -33
  142. package/components/common/adapterManager/ui/actions/MoveUpAdapterButton.vue +33 -33
  143. package/components/common/adapterManager/ui/actions/RemoveAdapterButton.vue +34 -34
  144. package/components/common/adapterManager/ui/actions/VerticalSeparator.vue +10 -10
  145. package/components/common/adapterManager/ui/table/Adapters.vue +91 -91
  146. package/components/common/adapterManager/ui/table/Header.vue +89 -89
  147. package/components/common/adapterManager/ui/table/Table.vue +167 -167
  148. package/components/common/addNetworking/AddNetworking.vue +1123 -1123
  149. package/components/common/addNetworking/Wizard.vue +286 -286
  150. package/components/common/addNetworking/config/addNetworkingSteps.ts +438 -438
  151. package/components/common/addNetworking/config/index.ts +47 -47
  152. package/components/common/addNetworking/config/initialData.ts +78 -78
  153. package/components/common/addNetworking/config/portPropertiesStep.ts +31 -31
  154. package/components/common/addNetworking/config/selectSwitch.ts +19 -19
  155. package/components/common/addNetworking/config/sendData.ts +102 -102
  156. package/components/common/addNetworking/config/temporaryData.ts +7 -7
  157. package/components/common/addNetworking/config/validation.ts +23 -23
  158. package/components/common/addNetworking/mappers/mappers.ts +166 -166
  159. package/components/common/addNetworking/modals/SelectNetwork.vue +149 -149
  160. package/components/common/addNetworking/modals/SelectStandardSwitch.vue +125 -125
  161. package/components/common/addNetworking/modals/SelectSwitch.vue +114 -114
  162. package/components/common/addNetworking/models/enums.ts +6 -6
  163. package/components/common/addNetworking/models/interfaces.ts +208 -208
  164. package/components/common/addNetworking/models/types.ts +13 -13
  165. package/components/common/addNetworking/steps/ConnectionSettings.vue +269 -269
  166. package/components/common/addNetworking/steps/CreateStandardSwitch.vue +91 -91
  167. package/components/common/addNetworking/steps/Header.vue +52 -52
  168. package/components/common/addNetworking/steps/IpFourSettings.vue +361 -361
  169. package/components/common/addNetworking/steps/PhysicalAdapter.vue +24 -24
  170. package/components/common/addNetworking/steps/PortProperties.vue +492 -492
  171. package/components/common/addNetworking/steps/ReadyComplete.vue +29 -29
  172. package/components/common/addNetworking/steps/SelectConnectionType.vue +106 -106
  173. package/components/common/addNetworking/steps/SelectedTargetDevice.vue +557 -557
  174. package/components/common/addNetworking/utils/index.ts +212 -212
  175. package/components/common/browse/Browse.vue +182 -182
  176. package/components/common/browse/blocks/Container.vue +102 -102
  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/config/states.ts +81 -81
  184. package/components/common/context/Context.spec.ts +20 -20
  185. package/components/common/context/Context.vue +97 -97
  186. package/components/common/context/ContextRecursion.spec.ts +55 -55
  187. package/components/common/context/ContextRecursion.vue +251 -251
  188. package/components/common/context/models/interfaces.ts +26 -26
  189. package/components/common/details/DetailsItem.vue +106 -106
  190. package/components/common/details/DetailsList.vue +23 -23
  191. package/components/common/details/model/interfaces.ts +9 -9
  192. package/components/common/diagramMain/Diagram.vue +192 -192
  193. package/components/common/diagramMain/DiagramMain.vue +990 -990
  194. package/components/common/diagramMain/Header.vue +190 -190
  195. package/components/common/diagramMain/Highlights.vue +124 -124
  196. package/components/common/diagramMain/adapter/Adapter.vue +114 -114
  197. package/components/common/diagramMain/adapter/AdapterItem.vue +246 -246
  198. package/components/common/diagramMain/adapter/AdapterItems.vue +59 -59
  199. package/components/common/diagramMain/adapter/Block.vue +48 -48
  200. package/components/common/diagramMain/adapter/Contents.vue +110 -110
  201. package/components/common/diagramMain/adapter/Lines.vue +58 -58
  202. package/components/common/diagramMain/adapter/SecondBlock.vue +49 -49
  203. package/components/common/diagramMain/config/index.ts +51 -51
  204. package/components/common/diagramMain/config/initial.ts +37 -37
  205. package/components/common/diagramMain/modals/ManagePhysicalAdaptersModal.vue +236 -236
  206. package/components/common/diagramMain/modals/MigrateVmkernelAdapter.vue +603 -603
  207. package/components/common/diagramMain/modals/config/adapterModal.ts +111 -111
  208. package/components/common/diagramMain/modals/config/diagramConfig.ts +17 -17
  209. package/components/common/diagramMain/modals/config/index.ts +57 -57
  210. package/components/common/diagramMain/modals/config/initial.ts +181 -181
  211. package/components/common/diagramMain/modals/config/migrateVmkernelAdapterSteps.ts +81 -81
  212. package/components/common/diagramMain/modals/config/networkModal.ts +343 -343
  213. package/components/common/diagramMain/modals/config/portModal.ts +209 -209
  214. package/components/common/diagramMain/modals/config/switchModal.ts +172 -172
  215. package/components/common/diagramMain/modals/config/vCenterModal.ts +34 -34
  216. package/components/common/diagramMain/modals/config/validation.ts +2 -2
  217. package/components/common/diagramMain/modals/config/vmKernelAdapter.ts +90 -90
  218. package/components/common/diagramMain/modals/editSettings/ConfirmTeamingSettingsModal.vue +41 -41
  219. package/components/common/diagramMain/modals/editSettings/EditSettings.vue +491 -491
  220. package/components/common/diagramMain/modals/editSettings/EditSettingsModal.vue +825 -825
  221. package/components/common/diagramMain/modals/editSettings/tabs/NetworkProperties.vue +211 -211
  222. package/components/common/diagramMain/modals/editSettings/tabs/Security.vue +183 -183
  223. package/components/common/diagramMain/modals/editSettings/tabs/SwitchProperties.vue +161 -161
  224. package/components/common/diagramMain/modals/editSettings/tabs/TeamingFailover.vue +166 -166
  225. package/components/common/diagramMain/modals/editSettings/tabs/TrafficShaping.vue +393 -393
  226. package/components/common/diagramMain/modals/steps/ConnectionSettings.vue +221 -221
  227. package/components/common/diagramMain/modals/steps/Header.vue +60 -60
  228. package/components/common/diagramMain/modals/steps/SelectVmkernelAdapter.vue +220 -220
  229. package/components/common/diagramMain/modals/steps/VmkernelAdapterReadyComplete.vue +53 -53
  230. package/components/common/diagramMain/modals/utils/index.ts +9 -9
  231. package/components/common/diagramMain/modals/viewSettings/Info.vue +123 -123
  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 +62 -62
  238. package/components/common/diagramMain/network/Contents.vue +253 -253
  239. package/components/common/diagramMain/network/Lines.vue +71 -71
  240. package/components/common/diagramMain/network/Network.vue +124 -124
  241. package/components/common/diagramMain/network/NoNetwork.vue +53 -53
  242. package/components/common/diagramMain/network/SecondBlock.vue +58 -58
  243. package/components/common/diagramMain/port/Port.vue +320 -320
  244. package/components/common/diagramMain/port/Ports.vue +41 -41
  245. package/components/common/diagramMain/switch/Switch.vue +82 -82
  246. package/components/common/diagramMain/switch/SwitchSelected.vue +35 -35
  247. package/components/common/diagramMain/utils/utils.ts +218 -218
  248. package/components/common/feedback/Buttons.vue +227 -227
  249. package/components/common/feedback/Message.vue +509 -509
  250. package/components/common/feedback/config/drawingPanel.ts +31 -31
  251. package/components/common/feedback/config/feedbackTabs.ts +24 -24
  252. package/components/common/feedback/models/interfaces.ts +19 -19
  253. package/components/common/feedback/models/types.ts +1 -1
  254. package/components/common/graph/Graph.vue +109 -109
  255. package/components/common/graph/utils/renderGraph.ts +389 -389
  256. package/components/common/headline/Headline.vue +32 -32
  257. package/components/common/help/navbar/left/Left.vue +164 -164
  258. package/components/common/help/navbar/left/models/interfaces.ts +6 -6
  259. package/components/common/help/navbar/right/Right.vue +139 -139
  260. package/components/common/help/navbar/right/models/interfaces.ts +4 -4
  261. package/components/common/home/Card.vue +63 -63
  262. package/components/common/home/ResourceBlock.vue +117 -117
  263. package/components/common/home/StatusContent.vue +47 -47
  264. package/components/common/home/alertsTable/AlertsTable.vue +105 -105
  265. package/components/common/home/alertsTable/config/config.ts +61 -61
  266. package/components/common/home/alertsTable/models/enums.ts +11 -11
  267. package/components/common/home/alertsTable/models/interfaces.ts +19 -19
  268. package/components/common/home/alertsTable/models/types.ts +18 -18
  269. package/components/common/home/config/configResourceMeterBlock.ts +25 -25
  270. package/components/common/home/models/interfaces.ts +59 -59
  271. package/components/common/home/models/types.ts +18 -18
  272. package/components/common/home/servicesTable/ServicesTable.vue +79 -79
  273. package/components/common/home/servicesTable/config/config.ts +62 -62
  274. package/components/common/mainNavigationPanel/MainNavigationPanel.vue +359 -359
  275. package/components/common/mainNavigationPanel/models/interfaces.ts +6 -6
  276. package/components/common/mainNavigationPanel/models/types.ts +1 -1
  277. package/components/common/modals/Confirmation.vue +87 -87
  278. package/components/common/modals/Rename.vue +165 -165
  279. package/components/common/modals/config/defaultForm.ts +18 -18
  280. package/components/common/modals/config/renameLabelWidth.ts +3 -3
  281. package/components/common/modals/models/interfaces.ts +5 -5
  282. package/components/common/monitor/advanced/Advanced.vue +235 -235
  283. package/components/common/monitor/advanced/GraphView.vue +178 -178
  284. package/components/common/monitor/advanced/models/interfaces.ts +7 -7
  285. package/components/common/monitor/advanced/models/types.ts +1 -1
  286. package/components/common/monitor/advanced/table/Table.vue +90 -90
  287. package/components/common/monitor/advanced/table/config/performanceDatatable.ts +116 -116
  288. package/components/common/monitor/advanced/table/models/interfaces.ts +12 -12
  289. package/components/common/monitor/advanced/table/models/types.ts +10 -10
  290. package/components/common/monitor/advanced/tools/Tools.vue +428 -428
  291. package/components/common/monitor/advanced/tools/chartOptionsModal/ChartOptionsModal.vue +485 -485
  292. package/components/common/monitor/advanced/tools/chartOptionsModal/Notification.vue +33 -33
  293. package/components/common/monitor/advanced/tools/chartOptionsModal/actions/Actions.vue +150 -150
  294. package/components/common/monitor/advanced/tools/chartOptionsModal/actions/saveOptionsModal/SaveOptionsModal.vue +76 -76
  295. package/components/common/monitor/advanced/tools/chartOptionsModal/actions/utils/optionsActions.ts +25 -25
  296. package/components/common/monitor/advanced/tools/chartOptionsModal/counters/Counters.vue +94 -94
  297. package/components/common/monitor/advanced/tools/chartOptionsModal/counters/table/Table.vue +136 -136
  298. package/components/common/monitor/advanced/tools/chartOptionsModal/counters/table/config/tableConfig.ts +71 -71
  299. package/components/common/monitor/advanced/tools/chartOptionsModal/counters/table/config/utils.ts +689 -689
  300. package/components/common/monitor/advanced/tools/chartOptionsModal/counters/table/models/interfaces.ts +28 -28
  301. package/components/common/monitor/advanced/tools/chartOptionsModal/counters/table/models/types.ts +5 -5
  302. package/components/common/monitor/advanced/tools/chartOptionsModal/counters/timespan/Timespan.vue +79 -79
  303. package/components/common/monitor/advanced/tools/chartOptionsModal/counters/timespan/form/Form.vue +501 -501
  304. package/components/common/monitor/advanced/tools/chartOptionsModal/counters/timespan/form/config/dateForm.ts +59 -59
  305. package/components/common/monitor/advanced/tools/chartOptionsModal/counters/timespan/object/Object.vue +176 -176
  306. package/components/common/monitor/advanced/tools/chartOptionsModal/counters/timespan/object/config/objectTable.ts +54 -54
  307. package/components/common/monitor/advanced/tools/chartOptionsModal/counters/timespan/object/models/interfaces.ts +4 -4
  308. package/components/common/monitor/advanced/tools/chartOptionsModal/counters/timespan/object/models/types.ts +1 -1
  309. package/components/common/monitor/advanced/tools/chartOptionsModal/metrics/Metrics.vue +42 -42
  310. package/components/common/monitor/advanced/tools/chartOptionsModal/metrics/config/optionsMetrics.ts +116 -116
  311. package/components/common/monitor/advanced/tools/chartOptionsModal/models/interfaces.ts +19 -19
  312. package/components/common/monitor/advanced/tools/chartOptionsModal/models/types.ts +3 -3
  313. package/components/common/monitor/advanced/tools/config/advancedToolbar.ts +117 -117
  314. package/components/common/monitor/advanced/tools/models/interfaces.ts +4 -4
  315. package/components/common/monitor/advanced/tools/utils/countCores.ts +7 -7
  316. package/components/common/monitor/config/getValidDateByOption.ts +76 -76
  317. package/components/common/monitor/models/interfaces.ts +23 -23
  318. package/components/common/monitor/overview/Overview.vue +470 -470
  319. package/components/common/monitor/overview/filters/Filters.vue +220 -220
  320. package/components/common/monitor/overview/filters/config/filterOptions.ts +80 -80
  321. package/components/common/monitor/overview/filters/customIntervalModal/CustomIntervalModal.vue +241 -241
  322. package/components/common/monitor/overview/filters/customIntervalModal/config/dateChecker.ts +37 -37
  323. package/components/common/monitor/overview/filters/models/interfaces.ts +7 -7
  324. package/components/common/monitor/overview/filters/models/types.ts +3 -3
  325. package/components/common/perPage/PerPage.vue +51 -51
  326. package/components/common/recursionTree/models/interfaces.ts +19 -19
  327. package/components/common/resource/models/interfaces.ts +9 -9
  328. package/components/common/resource/models/types.ts +1 -1
  329. package/components/common/resource/progressBlock/ProgressBlock.vue +105 -105
  330. package/components/common/resource/simple/Simple.vue +58 -58
  331. package/components/common/resource/simple/models/enums.ts +5 -5
  332. package/components/common/resource/utils.ts +33 -33
  333. package/components/common/select/button/ButtonDropdown.vue +100 -100
  334. package/components/common/select/button/models/interfaces.ts +6 -6
  335. package/components/common/select/radio/RadioGroup.vue +108 -108
  336. package/components/common/select/radio/models/interfaces.ts +8 -8
  337. package/components/common/shortcuts/Block.vue +83 -83
  338. package/components/common/shortcuts/Category.vue +40 -40
  339. package/components/common/shortcuts/Shortcuts.vue +44 -44
  340. package/components/common/shortcuts/models/interfaces.ts +10 -10
  341. package/components/common/spiceConsole/Drawer.vue +241 -241
  342. package/components/common/spiceConsole/SpiceConsole.vue +83 -83
  343. package/components/common/spiceConsole/keyboard/Keyboard.vue +402 -402
  344. package/components/common/spiceConsole/keyboard/config/keyboardRows.ts +891 -891
  345. package/components/common/spiceConsole/keyboard/models/interfaces.ts +17 -17
  346. package/components/common/spiceConsole/models/types.ts +1 -1
  347. package/components/common/split/horizontal/Horizontal.vue +306 -306
  348. package/components/common/split/horizontal/models/interfaces.ts +5 -5
  349. package/components/common/split/vertical/Vertical.vue +213 -213
  350. package/components/common/split/vertical/models/interfaces.ts +3 -3
  351. package/components/common/tools/Actions.vue +163 -163
  352. package/components/common/tools/models/interfaces.ts +6 -6
  353. package/components/common/vm/actions/add/Add.vue +687 -687
  354. package/components/common/vm/actions/add/FolderTreeView.vue +83 -83
  355. package/components/common/vm/actions/add/utils.ts +118 -118
  356. package/components/common/vm/actions/clone/models/interfaces.ts +7 -7
  357. package/components/common/vm/actions/common/config/capabilities.ts +339 -339
  358. package/components/common/vm/actions/common/customizeHardware/CustomizeHardware.vue +267 -267
  359. package/components/common/vm/actions/common/customizeHardware/config/navItems.ts +19 -19
  360. package/components/common/vm/actions/common/customizeHardware/models/interfaces.ts +7 -7
  361. package/components/common/vm/actions/common/customizeHardware/virtualHardware/VirtualHardware.vue +681 -681
  362. package/components/common/vm/actions/common/customizeHardware/virtualHardware/browseView/BrowseView.vue +203 -203
  363. package/components/common/vm/actions/common/customizeHardware/virtualHardware/browseView/models/interfaces.ts +8 -8
  364. package/components/common/vm/actions/common/customizeHardware/virtualHardware/bus/Bus.vue +129 -129
  365. package/components/common/vm/actions/common/customizeHardware/virtualHardware/bus/config/options.ts +13 -13
  366. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/CdDvdDrive.vue +246 -246
  367. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/config/fileTypes.ts +9 -9
  368. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/config/options.ts +11 -11
  369. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/media/Media.vue +55 -55
  370. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/models/types.ts +1 -1
  371. package/components/common/vm/actions/common/customizeHardware/virtualHardware/config/binaryOptions.ts +12 -12
  372. package/components/common/vm/actions/common/customizeHardware/virtualHardware/config/dropdownItems.ts +52 -52
  373. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/CpuHotPlug.vue +49 -49
  374. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/CpuModel.vue +220 -220
  375. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/Hv.vue +93 -93
  376. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/Iommu.vue +54 -54
  377. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/MaxCpu.vue +105 -105
  378. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/Pc.vue +54 -54
  379. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/Sa.vue +104 -104
  380. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/config/cpuOptions.ts +19 -19
  381. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/shares/Shares.vue +155 -155
  382. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/shares/config/options.ts +28 -28
  383. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/tooltip/Tooltip.vue +58 -58
  384. package/components/common/vm/actions/common/customizeHardware/virtualHardware/memory/MemoryHotPlug.vue +53 -53
  385. package/components/common/vm/actions/common/customizeHardware/virtualHardware/models/interfaces.ts +125 -125
  386. package/components/common/vm/actions/common/customizeHardware/virtualHardware/models/types.ts +4 -4
  387. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/DiskFile.vue +24 -24
  388. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/Location.vue +171 -171
  389. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/MaximumSize.vue +27 -27
  390. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/cache/Cache.vue +80 -80
  391. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/cache/config/options.ts +7 -7
  392. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/limitIops/LimitIops.vue +151 -151
  393. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/limitIops/config/options.ts +28 -28
  394. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/mode/Mode.vue +87 -87
  395. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/mode/config/options.ts +18 -18
  396. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/provisioning/Provisioning.vue +87 -87
  397. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/provisioning/config/options.ts +15 -15
  398. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/sharing/Sharing.vue +85 -85
  399. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/sharing/config/options.ts +12 -12
  400. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/Location.vue +141 -141
  401. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/NewNetwork.vue +288 -288
  402. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/adapterType/AdapterType.vue +86 -86
  403. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/adapterType/config/options.ts +9 -9
  404. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/macAddress/MacAddress.vue +140 -140
  405. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/macAddress/config/options.ts +11 -11
  406. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/NewPciDevice.vue +157 -157
  407. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/config/options.ts +7 -7
  408. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/directPathIo/DirectPathIo.vue +44 -44
  409. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/dynamicDirectPathIo/DynamicDirectPathIo.vue +49 -49
  410. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/dynamicDirectPathIo/config/options.ts +10 -10
  411. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/note/Note.vue +27 -27
  412. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/nvidiaGrid/NvidiaGrid.vue +41 -41
  413. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/typeSelection/TypeSelection.vue +56 -56
  414. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newUsbController/NewUsbController.vue +68 -68
  415. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newUsbController/config/options.ts +6 -6
  416. package/components/common/vm/actions/common/customizeHardware/virtualHardware/other/InputDevices.vue +21 -21
  417. package/components/common/vm/actions/common/customizeHardware/virtualHardware/other/Other.vue +27 -27
  418. package/components/common/vm/actions/common/customizeHardware/virtualHardware/reservation/config/options.ts +33 -33
  419. package/components/common/vm/actions/common/customizeHardware/virtualHardware/videoCard/Graphics.vue +45 -45
  420. package/components/common/vm/actions/common/customizeHardware/virtualHardware/videoCard/TotalVideoMemory.vue +120 -120
  421. package/components/common/vm/actions/common/customizeHardware/virtualHardware/videoCard/config/options.ts +11 -11
  422. package/components/common/vm/actions/common/customizeHardware/virtualHardware/videoCard/model/Model.vue +57 -57
  423. package/components/common/vm/actions/common/customizeHardware/virtualHardware/videoCard/model/config/options.ts +10 -10
  424. package/components/common/vm/actions/common/customizeHardware/virtualHardware/videoCard/numberDisplays/NumberDisplays.vue +82 -82
  425. package/components/common/vm/actions/common/customizeHardware/virtualHardware/videoCard/numberDisplays/config/options.ts +14 -14
  426. package/components/common/vm/actions/common/customizeHardware/vmoptions/Vmoptions.vue +181 -181
  427. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/BootOptions.vue +110 -110
  428. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/Menu.vue +45 -45
  429. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/Secure.vue +45 -45
  430. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/delay/Delay.vue +50 -50
  431. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/delay/config/config.ts +14 -14
  432. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/firmware/Firmware.vue +83 -83
  433. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/firmware/config/config.ts +11 -11
  434. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/order/models/interfaces.ts +8 -8
  435. package/components/common/vm/actions/common/customizeHardware/vmoptions/models/interfaces.ts +34 -34
  436. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/FileTransfer.vue +51 -51
  437. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/FolderSharing.vue +50 -50
  438. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/PlaybackCompression.vue +51 -51
  439. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/PowerControl.vue +49 -49
  440. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/imgCompression/ImgCompression.vue +84 -84
  441. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/imgCompression/config/config.ts +14 -14
  442. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/jpegCompression/JpegCompression.vue +84 -84
  443. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/jpegCompression/config/config.ts +12 -12
  444. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/keymap/config/config.ts +6 -6
  445. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/mouseMode/MouseMode.vue +52 -52
  446. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/mouseMode/config/config.ts +11 -11
  447. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/password/Password.vue +136 -136
  448. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/password/models/interfaces.ts +5 -5
  449. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/password/utils.ts +12 -12
  450. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/sharePolicy/SharePolicy.vue +52 -52
  451. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/sharePolicy/config/config.ts +11 -11
  452. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/streamingMode/StreamingMode.vue +84 -84
  453. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/streamingMode/config/config.ts +12 -12
  454. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/type/Type.vue +84 -84
  455. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/type/config/config.ts +7 -7
  456. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/usbRedirection/UsbRedirection.vue +56 -56
  457. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/usbRedirection/config/config.ts +14 -14
  458. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/zlibCompression/ZlibCompression.vue +84 -84
  459. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/zlibCompression/config/config.ts +12 -12
  460. package/components/common/vm/actions/common/customizeHardware/vmoptions/tools/Tools.vue +63 -63
  461. package/components/common/vm/actions/common/models/enums.ts +89 -89
  462. package/components/common/vm/actions/common/models/interfaces.ts +139 -139
  463. package/components/common/vm/actions/common/models/types.ts +65 -65
  464. package/components/common/vm/actions/common/readyToComplete/ReadyToComplete.vue +15 -15
  465. package/components/common/vm/actions/common/select/compatibility/Compatibility.vue +151 -151
  466. package/components/common/vm/actions/common/select/computeResource/ComputeResource.spec.ts +479 -479
  467. package/components/common/vm/actions/common/select/computeResource/ComputeResource.vue +170 -170
  468. package/components/common/vm/actions/common/select/computeResource/TreeView.vue +126 -126
  469. package/components/common/vm/actions/common/select/createType/CreateType.vue +61 -61
  470. package/components/common/vm/actions/common/select/createType/config/items.ts +26 -26
  471. package/components/common/vm/actions/common/select/models/interfaces.ts +32 -32
  472. package/components/common/vm/actions/common/select/models/types.ts +46 -46
  473. package/components/common/vm/actions/common/select/name/Name.vue +215 -215
  474. package/components/common/vm/actions/common/select/os/os.vue +221 -221
  475. package/components/common/vm/actions/common/select/storage/models/types.ts +15 -15
  476. package/components/common/vm/actions/editSettings/EditSettings.vue +316 -316
  477. package/components/common/vm/actions/editSettings/models/types.ts +23 -23
  478. package/components/common/vm/actions/editSettings/utils.ts +45 -45
  479. package/components/common/vm/actions/models/interfaces.ts +6 -6
  480. package/components/common/vm/actions/models/types.ts +11 -11
  481. package/components/common/vm/actions/utils.ts +244 -244
  482. package/components/common/vm/models/interfaces.ts +9 -9
  483. package/components/common/wizards/datastore/add/Add.vue +383 -383
  484. package/components/common/wizards/datastore/add/config/stepItems.ts +160 -160
  485. package/components/common/wizards/datastore/add/local/Local.vue +67 -67
  486. package/components/common/wizards/datastore/add/local/createName/CreateName.vue +159 -159
  487. package/components/common/wizards/datastore/add/local/createName/config/defaultForm.ts +15 -15
  488. package/components/common/wizards/datastore/add/models/interfaces.ts +35 -35
  489. package/components/common/wizards/datastore/add/models/types.ts +14 -14
  490. package/components/common/wizards/datastore/add/nfs/Nfs.vue +94 -94
  491. package/components/common/wizards/datastore/add/nfs/accessibility/Accessibility.vue +95 -95
  492. package/components/common/wizards/datastore/add/nfs/accessibility/config/tabsPannel.ts +24 -24
  493. package/components/common/wizards/datastore/add/nfs/accessibility/models/interfaces.ts +9 -9
  494. package/components/common/wizards/datastore/add/nfs/accessibility/models/types.ts +5 -5
  495. package/components/common/wizards/datastore/add/nfs/accessibility/tablesView/TablesView.vue +141 -141
  496. package/components/common/wizards/datastore/add/nfs/accessibility/tablesView/config/compatibleTable.ts +54 -54
  497. package/components/common/wizards/datastore/add/nfs/accessibility/tablesView/config/hostsTableItems.ts +75 -75
  498. package/components/common/wizards/datastore/add/nfs/accessibility/tablesView/config/incompatibleTable.ts +68 -68
  499. package/components/common/wizards/datastore/add/nfs/accessibility/tablesView/config/tableKeys.ts +15 -15
  500. package/components/common/wizards/datastore/add/nfs/configuration/Configuration.vue +377 -377
  501. package/components/common/wizards/datastore/add/nfs/configuration/config/defaultForm.ts +33 -33
  502. package/components/common/wizards/datastore/add/nfs/configuration/models/interfaces.ts +12 -12
  503. package/components/common/wizards/datastore/add/nfs/configuration/serversList/DeletePopover.vue +97 -97
  504. package/components/common/wizards/datastore/add/nfs/configuration/serversList/ServersList.vue +123 -123
  505. package/components/common/wizards/datastore/add/nfs/configuration/serversList/config/serversListConfig.ts +41 -41
  506. package/components/common/wizards/datastore/add/nfs/configuration/serversList/config/tableKeys.ts +3 -3
  507. package/components/common/wizards/datastore/add/nfs/configuration/serversList/models/interfaces.ts +11 -11
  508. package/components/common/wizards/datastore/add/nfs/configuration/serversList/models/types.ts +1 -1
  509. package/components/common/wizards/datastore/add/nfs/kerberosAuthentication/config/radioOptions.ts +24 -24
  510. package/components/common/wizards/datastore/add/nfs/version/Version.vue +42 -42
  511. package/components/common/wizards/datastore/add/nfs/version/config/versionOptions.ts +20 -20
  512. package/components/common/wizards/datastore/add/readyComplete/ReadyComplete.vue +78 -78
  513. package/components/common/wizards/datastore/add/readyComplete/config/propertiesDetails.ts +165 -165
  514. package/components/common/wizards/datastore/add/readyComplete/models/interfaces.ts +4 -4
  515. package/components/common/wizards/datastore/add/sharedStorm/SharedStorm.vue +85 -85
  516. package/components/common/wizards/datastore/add/sharedStorm/deviceSelection/DeviceSelection.vue +447 -447
  517. package/components/common/wizards/datastore/add/sharedStorm/deviceSelection/config/defaultForm.ts +18 -18
  518. package/components/common/wizards/datastore/add/sharedStorm/deviceSelection/config/selectOptions.ts +14 -14
  519. package/components/common/wizards/datastore/add/sharedStorm/deviceSelection/hostTable/HostTable.vue +131 -131
  520. package/components/common/wizards/datastore/add/sharedStorm/deviceSelection/hostTable/config/hostsTable.ts +87 -87
  521. package/components/common/wizards/datastore/add/sharedStorm/deviceSelection/hostTable/config/tableKeys.ts +11 -11
  522. package/components/common/wizards/datastore/add/sharedStorm/deviceSelection/models/interfaces.ts +55 -55
  523. package/components/common/wizards/datastore/add/sharedStorm/deviceSelection/models/types.ts +14 -14
  524. package/components/common/wizards/datastore/add/sharedStorm/partitionConfiguration/PartitionConfiguration.vue +230 -230
  525. package/components/common/wizards/datastore/add/sharedStorm/partitionConfiguration/config/selectOptions.ts +46 -46
  526. package/components/common/wizards/datastore/add/sharedStorm/partitionConfiguration/graphicTooltip/graphicTooltip.vue +64 -64
  527. package/components/common/wizards/datastore/add/sharedStorm/partitionConfiguration/sizeGraphic/sizeGraphic.vue +225 -225
  528. package/components/common/wizards/datastore/add/sharedStorm/version/Version.vue +39 -39
  529. package/components/common/wizards/datastore/add/sharedStorm/version/config/versionOptions.ts +21 -21
  530. package/components/common/wizards/datastore/add/types/Types.vue +77 -77
  531. package/components/common/wizards/datastore/add/types/config/typeOptions.ts +39 -39
  532. package/components/common/wizards/datastore/add/utils.ts +69 -67
  533. package/components/common/wizards/vm/common/computeResource/TreeView.vue +61 -61
  534. package/components/common/wizards/vm/common/readyComplete/ReadyComplete.vue +15 -15
  535. package/components/common/wizards/vm/common/tooltip/Tooltip.vue +82 -82
  536. package/components/common/wizards/vm/common/validation/compatibility/Compatibility.vue +62 -62
  537. package/components/common/wizards/vm/common/validation/models/enums.ts +5 -5
  538. package/components/common/wizards/vm/migrate/Migrate.vue +248 -248
  539. package/components/common/wizards/vm/migrate/config/constructDataReady.ts +101 -101
  540. package/components/common/wizards/vm/migrate/contentHeading/ContentHeading.vue +106 -106
  541. package/components/common/wizards/vm/migrate/contentHeading/models/interfaces.ts +7 -7
  542. package/components/common/wizards/vm/migrate/models/enums.ts +6 -6
  543. package/components/common/wizards/vm/migrate/models/interfaces.ts +20 -20
  544. package/components/common/wizards/vm/migrate/models/types.ts +5 -5
  545. package/components/common/wizards/vm/migrate/select/computeResource/ComputeResource.vue +146 -146
  546. package/components/common/wizards/vm/migrate/select/computeResource/config/tabsPannel.ts +28 -28
  547. package/components/common/wizards/vm/migrate/select/computeResource/tableView/TableView.vue +90 -90
  548. package/components/common/wizards/vm/migrate/select/computeResource/tableView/config/clusterTable.ts +114 -114
  549. package/components/common/wizards/vm/migrate/select/computeResource/tableView/config/hostTable.ts +141 -141
  550. package/components/common/wizards/vm/migrate/select/computeResource/tableView/config/resourcePoolTable.ts +115 -115
  551. package/components/common/wizards/vm/migrate/select/computeResource/tableView/config/tableKeys.ts +65 -65
  552. package/components/common/wizards/vm/migrate/select/computeResource/tableView/config/vappsTable.ts +66 -66
  553. package/components/common/wizards/vm/migrate/select/computeResource/tableView/models/types.ts +60 -60
  554. package/components/common/wizards/vm/migrate/select/network/Network.vue +51 -51
  555. package/components/common/wizards/vm/migrate/select/network/table/disk/Disk.vue +84 -84
  556. package/components/common/wizards/vm/migrate/select/network/table/disk/config/advancedTable.ts +77 -77
  557. package/components/common/wizards/vm/migrate/select/network/table/disk/config/basicTable.ts +71 -71
  558. package/components/common/wizards/vm/migrate/select/network/table/disk/config/tableKeys.ts +10 -10
  559. package/components/common/wizards/vm/migrate/select/network/table/disk/models/interfaces.ts +1 -1
  560. package/components/common/wizards/vm/migrate/select/network/table/disk/models/types.ts +12 -12
  561. package/components/common/wizards/vm/migrate/select/priority/Priority.vue +39 -39
  562. package/components/common/wizards/vm/migrate/select/priority/config/typeOptions.ts +21 -21
  563. package/components/common/wizards/vm/migrate/select/priority/models/types.ts +1 -1
  564. package/components/common/wizards/vm/migrate/select/storage/Storage.vue +189 -171
  565. package/components/common/wizards/vm/migrate/select/storage/config/tabsPannel.ts +18 -18
  566. package/components/common/wizards/vm/migrate/select/storage/configure/batch/Batch.vue +76 -74
  567. package/components/common/wizards/vm/migrate/select/storage/configure/disk/Disk.vue +83 -83
  568. package/components/common/wizards/vm/migrate/select/storage/diskFormat/DiskFormat.vue +68 -68
  569. package/components/common/wizards/vm/migrate/select/storage/diskFormat/config/formatOptions.ts +26 -22
  570. package/components/common/wizards/vm/migrate/select/storage/models/enums.ts +6 -6
  571. package/components/common/wizards/vm/migrate/select/storage/models/interfaces.ts +14 -14
  572. package/components/common/wizards/vm/migrate/select/storage/models/types.ts +9 -9
  573. package/components/common/wizards/vm/migrate/select/storage/policy/Policy.vue +83 -83
  574. package/components/common/wizards/vm/migrate/select/storage/selectedPerDisk/SelectedPerDisk.vue +87 -87
  575. package/components/common/wizards/vm/migrate/select/storage/table/datastore/Datastore.vue +113 -113
  576. package/components/common/wizards/vm/migrate/select/storage/table/datastore/config/config.ts +154 -154
  577. package/components/common/wizards/vm/migrate/select/storage/table/datastore/models/types.ts +15 -15
  578. package/components/common/wizards/vm/migrate/select/storage/table/disk/Disk.vue +73 -73
  579. package/components/common/wizards/vm/migrate/select/storage/table/disk/config/config.ts +123 -123
  580. package/components/common/wizards/vm/migrate/select/storage/table/disk/config/tableKeys.ts +15 -15
  581. package/components/common/wizards/vm/migrate/select/storage/table/disk/models/interfaces.ts +24 -24
  582. package/components/common/wizards/vm/migrate/select/storage/table/disk/models/types.ts +13 -13
  583. package/components/common/wizards/vm/migrate/select/targetServer/config/tabsPannel.ts +18 -18
  584. package/components/common/wizards/vm/migrate/select/targetServer/models/types.ts +1 -1
  585. package/components/common/wizards/vm/migrate/select/targetServer/new/New.vue +287 -287
  586. package/components/common/wizards/vm/migrate/select/targetServer/new/config/defaultForm.ts +33 -33
  587. package/components/common/wizards/vm/migrate/select/targetServer/saved/Saved.vue +27 -27
  588. package/components/common/wizards/vm/migrate/select/targetServer/targetServer.vue +41 -41
  589. package/components/common/wizards/vm/migrate/select/type/Type.vue +38 -38
  590. package/components/common/wizards/vm/migrate/select/type/config/typeOptions.ts +41 -41
  591. package/components/common/wizards/vm/migrate/select/type/models/interfaces.ts +5 -5
  592. package/components/common/wizards/vm/migrate/utils.ts +80 -80
  593. package/components/content/Hint.vue +24 -24
  594. package/components/models/interfaces.ts +14 -14
  595. package/composables/deepCopy.ts +21 -21
  596. package/composables/useDiff.ts +15 -15
  597. package/composables/useLocalStorage.ts +45 -45
  598. package/composables/useThrottle.ts +32 -32
  599. package/composables/useUniqueId.ts +5 -5
  600. package/config/regExp.ts +13 -13
  601. package/eslint/index.js +15 -15
  602. package/eslint/no-import-type.js +17 -17
  603. package/eslint/no-invalid-type-prefix.js +32 -32
  604. package/models/composables/useMyFetch/interfaces.ts +4 -4
  605. package/models/composables/useMyFetch/types.ts +1 -1
  606. package/models/enums.ts +21 -21
  607. package/models/plugins/date/interfaces.ts +5 -5
  608. package/models/plugins/date/types.ts +1 -1
  609. package/models/plugins/validation/interfaces.ts +21 -21
  610. package/models/plugins/validation/types.ts +1 -1
  611. package/models/store/host/interfaces.ts +38 -38
  612. package/models/store/network/interfaces.ts +13 -13
  613. package/models/store/vm/interfaces.ts +213 -213
  614. package/models/types.ts +6 -6
  615. package/modules/fixContentBuild/index.ts +92 -92
  616. package/modules/fixSpiceConsoleBuild/index.ts +28 -28
  617. package/modules/replaceEnv/index.ts +40 -40
  618. package/nuxt.config.ts +8 -8
  619. package/package.json +41 -41
  620. package/plugins/binary.ts +122 -122
  621. package/plugins/date.ts +179 -179
  622. package/plugins/recursion.ts +230 -230
  623. package/plugins/spice-console/spice.console.ts +18 -18
  624. package/plugins/text.ts +48 -48
  625. package/plugins/validation.ts +172 -172
  626. package/public/spice-console/application/WorkerProcess.js +3350 -3350
  627. package/public/spice-console/application/WorkerProcess_back.js +3144 -3144
  628. package/public/spice-console/application/WorkerProcess_meta.js +3102 -3102
  629. package/public/spice-console/application/WorkerProcess_reverse.js +3214 -3214
  630. package/public/spice-console/application/agent.js +175 -175
  631. package/public/spice-console/application/application.js +641 -641
  632. package/public/spice-console/application/checkActivity.js +50 -50
  633. package/public/spice-console/application/clientgui.js +842 -842
  634. package/public/spice-console/application/clipboard/clipboarddataparser.js +92 -92
  635. package/public/spice-console/application/clipboard/local/localClipboard.js +110 -110
  636. package/public/spice-console/application/clipboard.js +82 -82
  637. package/public/spice-console/application/imagecache.js +81 -81
  638. package/public/spice-console/application/inputmanager.js +270 -270
  639. package/public/spice-console/application/packetfactory.js +202 -202
  640. package/public/spice-console/application/packetfilter.js +103 -103
  641. package/public/spice-console/application/packetprocess.js +75 -75
  642. package/public/spice-console/application/rasteroperation.js +118 -118
  643. package/public/spice-console/application/spiceconnection.js +197 -197
  644. package/public/spice-console/application/stream.js +67 -67
  645. package/public/spice-console/application/virtualmouse.js +109 -109
  646. package/public/spice-console/keymaps/keyevent.js +36 -36
  647. package/public/spice-console/keymaps/keymap.js +229 -229
  648. package/public/spice-console/keymaps/keymapes.js +375 -375
  649. package/public/spice-console/keymaps/keymapesObj.js +316 -316
  650. package/public/spice-console/keymaps/keymapus.js +317 -317
  651. package/public/spice-console/keymaps/scanCodeObjModifier.js +65 -65
  652. package/public/spice-console/keymaps/scanCodeObjProvider.js +60 -60
  653. package/public/spice-console/lib/AsyncConsumer.js +204 -204
  654. package/public/spice-console/lib/AsyncWorker.js +60 -60
  655. package/public/spice-console/lib/CollisionDetector.js +27 -27
  656. package/public/spice-console/lib/DataLogger.js +197 -197
  657. package/public/spice-console/lib/GenericObjectPool.js +152 -152
  658. package/public/spice-console/lib/GlobalPool.js +114 -114
  659. package/public/spice-console/lib/ImageUncompressor.js +138 -138
  660. package/public/spice-console/lib/IntegrationBenchmark.js +64 -64
  661. package/public/spice-console/lib/PacketWorkerIdentifier.js +107 -107
  662. package/public/spice-console/lib/SyncAsyncHandler.js +46 -46
  663. package/public/spice-console/lib/base64.js +298 -298
  664. package/public/spice-console/lib/biginteger.js +1640 -1640
  665. package/public/spice-console/lib/bowser.js +276 -276
  666. package/public/spice-console/lib/decoder/dixie.js +7930 -7930
  667. package/public/spice-console/lib/decoder/jmuxer.js +2815 -2815
  668. package/public/spice-console/lib/displayRouter.js +83 -83
  669. package/public/spice-console/lib/encrypt.js +191 -191
  670. package/public/spice-console/lib/flipper.js +39 -39
  671. package/public/spice-console/lib/graphic.js +1230 -1230
  672. package/public/spice-console/lib/graphicdebug.js +223 -223
  673. package/public/spice-console/lib/images/bitmap.js +194 -194
  674. package/public/spice-console/lib/images/jsquic_family.js +83 -83
  675. package/public/spice-console/lib/images/jsquic_rgba.js +342 -342
  676. package/public/spice-console/lib/images/jsquic_uncompress.js +529 -529
  677. package/public/spice-console/lib/images/lz.js +717 -717
  678. package/public/spice-console/lib/images/png.js +275 -275
  679. package/public/spice-console/lib/jgestures.min.js +43 -43
  680. package/public/spice-console/lib/jquery-2.0.3.js +8829 -8829
  681. package/public/spice-console/lib/jquery-mousewheel.js +83 -83
  682. package/public/spice-console/lib/jquery-visibility.min.js +1 -1
  683. package/public/spice-console/lib/jsbn.js +578 -578
  684. package/public/spice-console/lib/jsbn2.js +675 -675
  685. package/public/spice-console/lib/lodash.4.0.0.min.js +136 -136
  686. package/public/spice-console/lib/modernizr.js +39 -39
  687. package/public/spice-console/lib/pixastic.js +3244 -3244
  688. package/public/spice-console/lib/prettyprint.js +794 -794
  689. package/public/spice-console/lib/prng4.js +64 -64
  690. package/public/spice-console/lib/queue.js +259 -259
  691. package/public/spice-console/lib/rng.js +87 -87
  692. package/public/spice-console/lib/runqueue.js +103 -103
  693. package/public/spice-console/lib/sha1.js +124 -124
  694. package/public/spice-console/lib/stuckkeyshandler.js +122 -122
  695. package/public/spice-console/lib/timelapsedetector.js +62 -62
  696. package/public/spice-console/lib/utils.js +327 -327
  697. package/public/spice-console/lib/virtualjoystick.js +370 -370
  698. package/public/spice-console/network/busconnection.js +195 -195
  699. package/public/spice-console/network/clusternodechooser.js +49 -49
  700. package/public/spice-console/network/connectioncontrol.js +60 -60
  701. package/public/spice-console/network/packetcontroller.js +62 -62
  702. package/public/spice-console/network/packetextractor.js +73 -73
  703. package/public/spice-console/network/packetlinkfactory.js +64 -64
  704. package/public/spice-console/network/packetreassembler.js +77 -77
  705. package/public/spice-console/network/reassemblerfactory.js +39 -39
  706. package/public/spice-console/network/sizedefiner.js +86 -86
  707. package/public/spice-console/network/socket.js +120 -120
  708. package/public/spice-console/network/socketqueue.js +95 -95
  709. package/public/spice-console/network/websocketwrapper.js +75 -75
  710. package/public/spice-console/process/busprocess.js +309 -309
  711. package/public/spice-console/process/cursorprocess.js +110 -110
  712. package/public/spice-console/process/displaypreprocess.js +152 -152
  713. package/public/spice-console/process/displayprocess.js +210 -210
  714. package/public/spice-console/process/inputprocess.js +203 -203
  715. package/public/spice-console/process/mainprocess.js +78 -78
  716. package/public/spice-console/process/playbackprocess.js +233 -233
  717. package/public/spice-console/run.js +180 -180
  718. package/public/spice-console/spiceobjects/generated/protocol.js +537 -537
  719. package/public/spice-console/spiceobjects/spiceobjects.js +3474 -3474
  720. package/public/spice-console/swcanvas/swcanvas.js +82 -82
  721. package/public/spice-console/tools/generate.php +269 -269
  722. package/public/spice-console/tools/generateKeyboardLayout.php +63 -63
  723. package/public/spice-console/tools/generateSpiceObject.php +81 -81
  724. package/tsconfig.json +4 -4
  725. package/utils/base64.ts +8 -8
  726. package/utils/notification.ts +22 -22
@@ -1,1123 +1,1123 @@
1
- <template>
2
- <common-add-networking-wizard
3
- :wizard="wizard"
4
- :steps-with-status="stepsWithStatus"
5
- :width="props.width"
6
- :height="props.height"
7
- :show="props.show"
8
- :title="title"
9
- :is-show-loader="isShowLoader"
10
- :second-title="secondTitle"
11
- :class="[
12
- 'add-networking-wizard',
13
- {
14
- 'is-dark': props.isDarkMode,
15
- },
16
- ]"
17
- @select-step="onSelectStep"
18
- @hide="onHideAddNetworkingModal"
19
- @next-step="onNextStep"
20
- @finish="onFinish"
21
- >
22
- <template #modalBody>
23
- <common-add-networking-steps-select-connection-type
24
- v-if="wizard.isSelectedStep(0)"
25
- :step-id="0"
26
- :title="localization.selectConnectionType"
27
- :text="localization.selectConnectionTypeToCreate"
28
- :connection-type="connectionType"
29
- @change-connection-type="onChangeConnectionType"
30
- />
31
- <common-add-networking-steps-selected-target-device
32
- v-if="wizard.isSelectedStep(1)"
33
- :step-id="1"
34
- :title="localization.selectTargetDevice"
35
- :text="localization.selectTargetDeviceForNewConnection"
36
- :target-device="targetDevice"
37
- :connection-type="connectionType"
38
- :is-show-error-message-alert="isShowErrorMessageAlert"
39
- :error-messages="errorMessages[1]"
40
- :standard-switches-initial="props.standardSwitchesInitial"
41
- :error="error"
42
- @set-error-empty="onSetErrorFieldEmpty"
43
- @change-error-messages="onChangeErrorMessages"
44
- @hide-error-message-alert="onHideErrorMessageAlert"
45
- @change-target-device="onChangeTargetDevice"
46
- />
47
- <common-add-networking-steps-create-standard-switch
48
- v-if="wizard.isSelectedStep(2)"
49
- :step-id="2"
50
- :title="localization.createStandardSwitch"
51
- :text="localization.assignFreePhysicalNetworkAdaptersToTheNewSwitch"
52
- :free-adapters="props.freeAdapters"
53
- :added-adapters="addedAdapters"
54
- :adapter-status="adapterStatus"
55
- :adapters="props.adapters"
56
- :is-show-no-connected-active-adapters-modal="
57
- isShowNoConnectedActiveAdaptersModal
58
- "
59
- :is-show-no-active-adapters-modal="isShowNoActiveAdaptersModal"
60
- @get-free-adapters="onGetFreeAdapters"
61
- @change-added-adapters="onChangeAddedAdapters"
62
- @change-adapter-status="onChangeAdapterStatus"
63
- @confirm-no-active-adapters-modal="onConfirmNoActiveAdaptersModal"
64
- @hide-no-connected-active-adapters-modal="
65
- onHideNoConnectedActiveAdaptersModal
66
- "
67
- @hide-no-active-adapters-modal="onHideNoActiveAdaptersModal"
68
- />
69
- <common-add-networking-steps-port-properties
70
- v-if="wizard.isSelectedStep(3)"
71
- :step-id="3"
72
- :title="localization.portProperties"
73
- :text="localization.specifyVMkernelPortSettings"
74
- :port-properties="portProperties"
75
- :is-show-error-message-alert="isShowErrorMessageAlert"
76
- :error-messages="errorMessages[3]"
77
- :network-label-existing-error-message="networkLabelExistingErrorMessage"
78
- :mtu-from-switch="mtuFromSwitch"
79
- :error="error"
80
- :project="props.project"
81
- @set-error-empty="onSetErrorFieldEmpty"
82
- @change-error-messages="onChangeErrorMessages"
83
- @hide-error-message-alert="onHideErrorMessageAlert"
84
- @change-port-properties="onChangePortProperties"
85
- />
86
- <common-add-networking-steps-ip-four-settings
87
- v-if="wizard.isSelectedStep(4)"
88
- :step-id="4"
89
- :title="localization.ipV4Settings"
90
- :text="localization.specifyVMkernelIPv4Settings"
91
- :ip-four-settings="ipFourSettings"
92
- :is-show-error-message-alert="isShowErrorMessageAlert"
93
- :error-messages="errorMessages[4]"
94
- :error="error"
95
- @set-error-empty="onSetErrorFieldEmpty"
96
- @change-error-messages="onChangeErrorMessages"
97
- @hide-error-message-alert="onHideErrorMessageAlert"
98
- @change-ip-four-settings="onChangeIpFourSettings"
99
- />
100
- <common-add-networking-steps-connection-settings
101
- v-if="wizard.isSelectedStep(5)"
102
- :step-id="5"
103
- :title="localization.connectionSettings"
104
- :text="
105
- localization.useNetworkLabelsToIdentifyMigrationCompatibleTwoHosts
106
- "
107
- :network-label-existing-error-message="networkLabelExistingErrorMessage"
108
- :connection-settings="connectionSettings"
109
- :is-show-error-message-alert="isShowErrorMessageAlert"
110
- :error-messages="errorMessages[5]"
111
- :error="error"
112
- @set-error-empty="onSetErrorFieldEmpty"
113
- @change-error-messages="onChangeErrorMessages"
114
- @hide-error-message-alert="onHideErrorMessageAlert"
115
- @change-connection-settings="onChangeConnectionSettings"
116
- />
117
- <common-add-networking-steps-physical-adapter
118
- v-if="wizard.isSelectedStep(6)"
119
- :step-id="6"
120
- :title="localization.addPhysicalNetworkAdapter"
121
- :text="localization.assignPhysicalNetworkAdaptersToTheSwitch"
122
- />
123
- <common-add-networking-steps-ready-complete
124
- v-if="wizard.isSelectedStep(7)"
125
- :step-id="7"
126
- :title="localization.readyComplete"
127
- :text="localization.reviewYourSettingsSelectionsWizard"
128
- :ready-complete-fields="readyCompleteFields"
129
- />
130
- </template>
131
- </common-add-networking-wizard>
132
- </template>
133
-
134
- <script setup lang="ts">
135
- import { UI_I_ArbitraryObject, UI_I_Localization } from '~/models/interfaces'
136
- import { UI_T_Project } from '~/models/types'
137
- import {
138
- createZeroSchemeReadyCompleteFunc,
139
- createFirstSchemeReadyCompleteFunc,
140
- createSecondSchemeReadyCompleteFunc,
141
- createThirdSchemeReadyCompleteFunc,
142
- stepsSchemeFunc,
143
- stepsFunc,
144
- secondTitleFunc,
145
- errorMessagesInitialFunc,
146
- connectionSettingsInitial,
147
- portPropertiesInitial,
148
- ipFourSettingsInitial,
149
- targetDeviceInitial,
150
- isNetworkInvalidInitial,
151
- addNetworkingZeroOrFirstSchemeDataFunc,
152
- addNetworkingSecondOrThirdSchemeDataFunc,
153
- } from '~/components/common/addNetworking/config'
154
- import {
155
- UI_I_PortProperties,
156
- UI_I_IpFourSettings,
157
- UI_I_ConnectionSettings,
158
- UI_I_TargetDevice,
159
- UI_I_Switch,
160
- UI_I_ReadyCompleteFields,
161
- UI_I_NetworkLabelCheckExisting,
162
- UI_I_AddNetworkingZeroOrFirstSchemeDataSend,
163
- UI_I_AddNetworkingSecondOrThirdSchemeDataSend,
164
- UI_I_Step,
165
- } from '~/components/common/addNetworking/models/interfaces'
166
- import {
167
- UI_I_Adapter,
168
- UI_I_AdapterStatus,
169
- UI_I_SwitchAdapterItem,
170
- UI_I_SwitchAdapters,
171
- } from '~/components/common/diagramMain/models/interfaces'
172
- import { Wizard, getVlanId } from '~/components/common/addNetworking/utils'
173
-
174
- // Props from up
175
- const props = withDefaults(
176
- defineProps<{
177
- modalName: string
178
- viewName: string
179
- show: boolean
180
- width?: string
181
- height?: string
182
- title?: string
183
- standardSwitchesInitial: UI_I_Switch[]
184
- isNetworkInvalid?: UI_I_NetworkLabelCheckExisting
185
- freeAdapters: UI_I_Adapter[]
186
- adapters: UI_I_SwitchAdapters
187
- project?: UI_T_Project
188
- isDarkMode: boolean
189
- }>(),
190
- {
191
- isNetworkInvalid: () => isNetworkInvalidInitial,
192
- width: '576px',
193
- height: '420px',
194
- title: '',
195
- freeAdapters: () => [],
196
- standardSwitchesInitial: () => [],
197
- project: 'procurator',
198
- }
199
- )
200
-
201
- // UI_I_Localization
202
- const localization = computed<UI_I_Localization>(() => useLocal())
203
-
204
- // Title
205
- const hostname = ref<string>('')
206
- const title = computed<string>(() => `${hostname.value} - ${props.title}`)
207
-
208
- // Loader
209
- const isShowLoader = computed<boolean>(
210
- () =>
211
- isShowGetFreeAdaptersLoader.value ||
212
- isShowCheckNetworkLabelLoader.value ||
213
- isShowSendNetworkDataLoader.value ||
214
- isShowLoaderGetStandardSwitches.value
215
- )
216
-
217
- /* **************************************
218
- // STEPS LOGIC***************************
219
- ************************************** */
220
-
221
- // Steps
222
- const wizard: Wizard = new Wizard(
223
- stepsSchemeFunc(stepsFunc(localization.value))
224
- )
225
-
226
- const secondTitle = computed<string>(() =>
227
- secondTitleFunc(wizard.selectedStep, localization.value)
228
- )
229
-
230
- const stepsWithStatus = computed<UI_I_Step[]>(() => wizard.stepsWithStatus())
231
-
232
- // Step's content data and changers (readyCompleteFields)
233
- const readyCompleteFields = ref<UI_I_ReadyCompleteFields[]>([])
234
-
235
- // Step's content data (connectionType)
236
- const connectionType = ref<string>('0')
237
-
238
- const onChangeConnectionType = (newConnectionType: string): void => {
239
- wizard.resetStepsUntilX(1)
240
- connectionType.value = newConnectionType
241
- targetDevice.value.standardSwitch =
242
- props.standardSwitchesInitial?.[0]?.name || ''
243
- }
244
-
245
- // Step's content data (createStandardSwitch)
246
- const addedAdapters = ref<string[]>([])
247
-
248
- const onChangeAddedAdapters = (addedAdaptersNew: string[]): void => {
249
- addedAdapters.value = addedAdaptersNew
250
- }
251
-
252
- const adapterStatus = ref<UI_I_AdapterStatus>({
253
- active: [],
254
- standby: [],
255
- unused: [],
256
- })
257
- const onChangeAdapterStatus = (adapterStatusNew: UI_I_AdapterStatus): void => {
258
- adapterStatus.value = adapterStatusNew
259
- }
260
-
261
- // Step's content data and changers (targetDevice)
262
- const targetDevice = ref<UI_I_TargetDevice>(useDeepCopy(targetDeviceInitial))
263
- const mtuFromSwitch = ref<number>(1500)
264
-
265
- const onChangeTargetDevice = (newTargetDevice: UI_I_TargetDevice): void => {
266
- const oldTargetDeviceSelected = useDeepCopy(targetDevice.value).selected
267
- const newTargetDeviceSelected = newTargetDevice.selected
268
-
269
- if (oldTargetDeviceSelected !== newTargetDeviceSelected)
270
- wizard.resetStepsUntilX(2)
271
-
272
- const selectedSwitch = props.standardSwitchesInitial.find(
273
- (sw) => newTargetDevice.standardSwitch === sw.name
274
- )
275
-
276
- if (newTargetDeviceSelected === '1' && selectedSwitch) {
277
- mtuFromSwitch.value = selectedSwitch?.mtu || 1500
278
- }
279
- if (newTargetDeviceSelected === '3') {
280
- mtuFromSwitch.value = newTargetDevice.mtu || 1500
281
- }
282
-
283
- targetDevice.value = useDeepCopy(newTargetDevice)
284
- }
285
-
286
- // Step's content data and changers (portProperties)
287
- const portProperties = ref<UI_I_PortProperties>(
288
- useDeepCopy(portPropertiesInitial)
289
- )
290
- const onChangePortProperties = (newFields: UI_I_PortProperties): void => {
291
- portProperties.value = newFields
292
- }
293
-
294
- // Step's content data and changers (ipFourSettings)
295
- const ipFourSettings = ref<UI_I_IpFourSettings>(ipFourSettingsInitial)
296
- const onChangeIpFourSettings = (newFields: UI_I_IpFourSettings): void => {
297
- ipFourSettings.value = newFields
298
- }
299
-
300
- // Step's content data and changers (connectionSettings)
301
- const connectionSettings = ref<UI_I_ConnectionSettings>(
302
- connectionSettingsInitial
303
- )
304
- const onChangeConnectionSettings = (
305
- newFields: UI_I_ConnectionSettings
306
- ): void => {
307
- connectionSettings.value = newFields
308
- }
309
-
310
- const error = ref<UI_I_ArbitraryObject<string>>({})
311
-
312
- const onSetErrorFieldEmpty = (fieldName: string): void => {
313
- error.value[fieldName] = ''
314
- }
315
-
316
- // Error Messages
317
- const errorMessagesInitial: string[][] = errorMessagesInitialFunc(8)
318
- const errorMessages = ref<string[][]>(errorMessagesInitial)
319
- const isShowErrorMessageAlert = ref<boolean>(false)
320
-
321
- const networkLabelExistingErrorMessage = ref<string>('')
322
-
323
- const onChangeErrorMessages = (
324
- newErrorMessages: string[],
325
- stepIndex: number
326
- ): void => {
327
- errorMessages.value[stepIndex] = newErrorMessages
328
- }
329
- const onShowErrorMessageAlert = (): void => {
330
- isShowErrorMessageAlert.value = true
331
- }
332
- const onHideErrorMessageAlert = (): void => {
333
- isShowErrorMessageAlert.value = false
334
- }
335
-
336
- // Choosing Scheme
337
- watch(
338
- [connectionType, targetDevice],
339
- (newValues, oldValue) => {
340
- const newCT = newValues[0] // -> newConnectionType
341
- const oldCT = oldValue[0] // -> oldConnectionType
342
- const newTD = newValues[1] // -> newTargetDevice
343
-
344
- if (newCT !== oldCT) {
345
- newCT === '0' && (targetDevice.value.selected = '1')
346
- newCT === '1' && (targetDevice.value.selected = '1')
347
- newCT === '2' && (targetDevice.value.selected = '2')
348
- }
349
- if (newCT === '0') {
350
- ;(newTD.selected === '0' || newTD.selected === '1') &&
351
- (wizard.selectedScheme = 0)
352
- newTD.selected === '3' && (wizard.selectedScheme = 1)
353
- }
354
- if (newCT === '1') {
355
- newTD.selected === '1' && (wizard.selectedScheme = 2)
356
- newTD.selected === '3' && (wizard.selectedScheme = 3)
357
- }
358
- if (newCT === '2') {
359
- newTD.selected === '2' && (wizard.selectedScheme = 4)
360
- newTD.selected === '3' && (wizard.selectedScheme = 5)
361
- }
362
- },
363
- { deep: true, immediate: true }
364
- )
365
-
366
- // Ready complete
367
- watch(
368
- () => wizard.selectedStep,
369
- (newSelectedStep: number) => {
370
- if (
371
- newSelectedStep === 1 &&
372
- targetDevice.value.selected === '1' &&
373
- !targetDevice.value.standardSwitch
374
- )
375
- onGetExistingStandardSwitches()
376
- if (newSelectedStep !== 7) return // If last step
377
- if (wizard.isSelectedScheme(0)) {
378
- readyCompleteFields.value = createZeroSchemeReadyCompleteFunc(
379
- targetDevice.value,
380
- portProperties.value,
381
- ipFourSettings.value,
382
- localization.value
383
- )
384
- return
385
- }
386
-
387
- if (wizard.isSelectedScheme(1)) {
388
- readyCompleteFields.value = createFirstSchemeReadyCompleteFunc(
389
- targetDevice.value,
390
- portProperties.value,
391
- ipFourSettings.value,
392
- addedAdapters.value,
393
- localization.value
394
- )
395
- return
396
- }
397
- if (wizard.isSelectedScheme(2)) {
398
- readyCompleteFields.value = createSecondSchemeReadyCompleteFunc(
399
- connectionSettings.value,
400
- targetDevice.value,
401
- localization.value
402
- )
403
- return
404
- }
405
- if (wizard.isSelectedScheme(3)) {
406
- readyCompleteFields.value = createThirdSchemeReadyCompleteFunc(
407
- connectionSettings.value,
408
- targetDevice.value,
409
- addedAdapters.value,
410
- localization.value
411
- )
412
- }
413
- }
414
- )
415
-
416
- // Reset data
417
- const reset = (): void => {
418
- wizard.reset()
419
- connectionType.value = '0'
420
- targetDevice.value = useDeepCopy(targetDeviceInitial)
421
- connectionSettings.value = useDeepCopy(connectionSettingsInitial)
422
- portProperties.value = useDeepCopy(portPropertiesInitial)
423
- ipFourSettings.value = useDeepCopy(ipFourSettingsInitial)
424
- addedAdapters.value = []
425
- adapterStatus.value = {
426
- active: [],
427
- standby: [],
428
- unused: [],
429
- }
430
- errorMessages.value = errorMessagesInitial
431
- }
432
-
433
- // Checking network label existing
434
- const isNetworkInvalid = ref<UI_I_NetworkLabelCheckExisting>()
435
-
436
- watch(
437
- () => props.isNetworkInvalid,
438
- (newValue: UI_I_NetworkLabelCheckExisting) => {
439
- isNetworkInvalid.value = newValue
440
- },
441
- { deep: true, immediate: true }
442
- )
443
-
444
- const isShowNoConnectedActiveAdaptersModal = ref(false)
445
- const isShowNoActiveAdaptersModal = ref(false)
446
-
447
- const showNoConnectedActiveAdaptersModal = (): void => {
448
- isShowNoConnectedActiveAdaptersModal.value = true
449
- }
450
- const onHideNoConnectedActiveAdaptersModal = (): void => {
451
- isShowNoConnectedActiveAdaptersModal.value = false
452
- }
453
- const showNoActiveAdaptersModal = (): void => {
454
- isShowNoActiveAdaptersModal.value = true
455
- }
456
- const onHideNoActiveAdaptersModal = (): void => {
457
- isShowNoActiveAdaptersModal.value = false
458
- }
459
-
460
- const onConfirmNoActiveAdaptersModal = (): void => {
461
- wizard.selectedStep = wizard.waitingStepId
462
- onHideNoConnectedActiveAdaptersModal()
463
- onHideNoActiveAdaptersModal()
464
- }
465
-
466
- // Step selection
467
- const isShowCheckNetworkLabelLoader = ref(false)
468
-
469
- const checkNetwork = (networkLabel: string, nextStep?: number): void => {
470
- if (networkLabel) {
471
- isShowCheckNetworkLabelLoader.value = true
472
- networkLabelExistingErrorMessage.value = ''
473
- emits(
474
- 'check-network-label',
475
- networkLabel,
476
- (error_message: string) => {
477
- networkLabelExistingErrorMessage.value = error_message
478
-
479
- if (
480
- error_message === '' &&
481
- errorMessages.value[wizard.selectedStep].length === 0
482
- ) {
483
- nextStep ? wizard.goToSelectedStep(nextStep) : wizard.goToNextStep()
484
- return true
485
- }
486
-
487
- if (error_message !== '') {
488
- const selectedStepErrorMessages: string[] =
489
- errorMessages.value[wizard.selectedStep]
490
-
491
- !selectedStepErrorMessages.includes(error_message) &&
492
- selectedStepErrorMessages.push(error_message)
493
- }
494
- onShowErrorMessageAlert()
495
- },
496
- () => {
497
- isShowCheckNetworkLabelLoader.value = false
498
- }
499
- )
500
- } else {
501
- onShowErrorMessageAlert()
502
- }
503
- }
504
-
505
- const checkWizard = (nextStep?: number): void => {
506
- isShowCheckNetworkLabelLoader.value = true
507
-
508
- if (wizard.isSelectedScheme(0) || wizard.isSelectedScheme(1)) {
509
- const vlan = getVlanId(portProperties.value.vlanId)
510
-
511
- const sendData: UI_I_AddNetworkingZeroOrFirstSchemeDataSend =
512
- addNetworkingZeroOrFirstSchemeDataFunc(
513
- targetDevice.value,
514
- Number(vlan),
515
- portProperties.value,
516
- ipFourSettings.value,
517
- wizard.isSelectedScheme(1),
518
- adapterStatus.value
519
- )
520
-
521
- emits(
522
- 'add-networking-data-validate',
523
- sendData,
524
- 'vmkernel',
525
- hideSendNetworkDataLoader,
526
- setValidation,
527
- (stop?: boolean) => {
528
- if (
529
- !Object.values(error.value).filter(
530
- (errorMessage: string) => errorMessage
531
- ).length &&
532
- !stop
533
- ) {
534
- nextStep ? wizard.goToSelectedStep(nextStep) : wizard.goToNextStep()
535
- }
536
-
537
- isShowCheckNetworkLabelLoader.value = false
538
- }
539
- )
540
- return
541
- }
542
-
543
- if (wizard.isSelectedScheme(2) || wizard.isSelectedScheme(3)) {
544
- const vlan = getVlanId(connectionSettings.value.vlanId)
545
- const sendData: UI_I_AddNetworkingSecondOrThirdSchemeDataSend =
546
- addNetworkingSecondOrThirdSchemeDataFunc(
547
- connectionSettings.value,
548
- targetDevice.value,
549
- Number(vlan),
550
- wizard.isSelectedScheme(2),
551
- adapterStatus.value
552
- )
553
-
554
- emits(
555
- 'add-networking-data-validate',
556
- sendData,
557
- 'network',
558
- hideSendNetworkDataLoader,
559
- setValidation,
560
- (stop?: boolean) => {
561
- if (
562
- !Object.values(error.value).filter(
563
- (errorMessage: string) => errorMessage
564
- ).length &&
565
- !stop
566
- ) {
567
- nextStep ? wizard.goToSelectedStep(nextStep) : wizard.goToNextStep()
568
- }
569
-
570
- isShowCheckNetworkLabelLoader.value = false
571
- }
572
- )
573
- }
574
- }
575
-
576
- const checkBeforeGoToNextStep = (
577
- selectedStepIndex: number,
578
- nextStep: number
579
- ): boolean => {
580
- if (wizard.isBeforeLastStep()) {
581
- checkWizard()
582
- return false
583
- }
584
-
585
- if (
586
- wizard.checkNetworkLabelBeforeGoToNextStep(
587
- 5,
588
- connectionSettings.value.networkLabel,
589
- isNetworkInvalid.value,
590
- checkNetwork
591
- )
592
- )
593
- return false
594
-
595
- if (
596
- wizard.checkNetworkLabelBeforeGoToNextStep(
597
- 3,
598
- portProperties.value.networkLabel,
599
- isNetworkInvalid.value,
600
- checkNetwork
601
- )
602
- )
603
- return false
604
-
605
- if (wizard.isSelectedStep(2)) {
606
- if (adapterStatus.value.active.length === 0) {
607
- showNoActiveAdaptersModal()
608
- wizard.waitingStepId = nextStep
609
- return false
610
- }
611
-
612
- const activeAndConnectedAdapters = adapterStatus.value.active.filter(
613
- (adapterName: string) =>
614
- props.freeAdapters.find(
615
- (freeAdapter: UI_I_SwitchAdapterItem) =>
616
- freeAdapter.name === adapterName
617
- )?.carrier
618
- )
619
-
620
- if (activeAndConnectedAdapters.length === 0) {
621
- showNoConnectedActiveAdaptersModal()
622
- wizard.waitingStepId = nextStep
623
- return false
624
- }
625
- }
626
-
627
- if (
628
- // If a current step has an error, show it and stop navigation on next step
629
- errorMessages.value[wizard.selectedStep].length > 0 &&
630
- wizard.isUpThenSelectedStep(stepsWithStatus.value[selectedStepIndex + 1].id)
631
- ) {
632
- onShowErrorMessageAlert()
633
- return false
634
- }
635
- return true
636
- }
637
-
638
- const checkBeforeGoToSelectedStep = (stepId: number): boolean => {
639
- if (wizard.isLastStep(stepId)) {
640
- checkWizard(stepId)
641
- return false
642
- }
643
-
644
- if (
645
- wizard.isUpThenSelectedStep(stepId) &&
646
- errorMessages.value[wizard.selectedStep].length > 0
647
- ) {
648
- onShowErrorMessageAlert()
649
- return false
650
- }
651
-
652
- if (
653
- wizard.checkNetworkLabelBeforeGoToNewStep(
654
- stepId,
655
- 2,
656
- 5,
657
- connectionSettings.value.networkLabel,
658
- isNetworkInvalid.value,
659
- checkNetwork
660
- )
661
- ) {
662
- wizard.goToSelectedStep(5)
663
- return false
664
- }
665
-
666
- if (
667
- wizard.checkNetworkLabelBeforeGoToNewStep(
668
- stepId,
669
- 0,
670
- 3,
671
- portProperties.value.networkLabel,
672
- isNetworkInvalid.value,
673
- checkNetwork
674
- )
675
- ) {
676
- wizard.goToSelectedStep(3)
677
- return false
678
- }
679
-
680
- if (
681
- wizard.checkNetworkLabelBeforeGoToNewStep(
682
- stepId,
683
- 1,
684
- 3,
685
- portProperties.value.networkLabel,
686
- isNetworkInvalid.value,
687
- checkNetwork
688
- )
689
- ) {
690
- wizard.goToSelectedStep(3)
691
- return false
692
- }
693
-
694
- if (wizard.isSelectedStep(2) && stepId > 2) {
695
- if (adapterStatus.value.active.length === 0) {
696
- showNoActiveAdaptersModal()
697
- wizard.waitingStepId = stepId
698
- return false
699
- }
700
-
701
- const activeAndConnectedAdapters = adapterStatus.value.active.filter(
702
- (adapterName: string) =>
703
- props.freeAdapters.find(
704
- (freeAdapter: UI_I_SwitchAdapterItem) =>
705
- freeAdapter.name === adapterName
706
- )?.carrier
707
- )
708
-
709
- if (activeAndConnectedAdapters.length === 0) {
710
- showNoConnectedActiveAdaptersModal()
711
- wizard.waitingStepId = stepId
712
- return false
713
- }
714
- }
715
-
716
- if (
717
- // If a current step has an error, show it and stop navigation on next step
718
- errorMessages.value[wizard.selectedStep].length > 0 &&
719
- wizard.isUpThenSelectedStep(stepId)
720
- ) {
721
- onShowErrorMessageAlert()
722
- return false
723
- }
724
- return true
725
- }
726
-
727
- watch(
728
- connectionSettings,
729
- (newValue: UI_I_ConnectionSettings, oldValue: UI_I_ConnectionSettings) => {
730
- if (newValue.networkLabel === oldValue.networkLabel) return
731
- networkLabelExistingErrorMessage.value = ''
732
- },
733
- { deep: true }
734
- )
735
-
736
- // Finish network adding and sending data
737
- const isShowSendNetworkDataLoader = ref(false)
738
- const hideSendNetworkDataLoader = (): void => {
739
- isShowSendNetworkDataLoader.value = false
740
- }
741
-
742
- const setValidation = (err_arg: UI_I_ArbitraryObject<string>): void => {
743
- error.value = err_arg
744
- }
745
-
746
- watch(
747
- error,
748
- (newErr) => {
749
- if (!wizard.isBeforeLastStep() && !wizard.isLastStep(7)) return
750
-
751
- if (newErr.switch || newErr.network || newErr['new_switch.mtu']) {
752
- wizard.selectedStep = 1
753
- return
754
- }
755
- if (newErr.network_name || newErr['new_network.vlan'] || newErr.mtu) {
756
- wizard.selectedStep = 3
757
- return
758
- }
759
- if (
760
- newErr['tcp_config.ipv4'] ||
761
- newErr['tcp_config.gateway'] ||
762
- newErr['tcp_config.net_mask']
763
- ) {
764
- wizard.selectedStep = 4
765
- return
766
- }
767
- if (newErr.name || newErr.vlan) {
768
- wizard.selectedStep = 5
769
- }
770
- },
771
- { deep: true }
772
- )
773
-
774
- const onFinish = async (): Promise<void> => {
775
- isShowSendNetworkDataLoader.value = true
776
-
777
- // Finish with the zero and first scheme
778
- if (wizard.isSelectedScheme(0) || wizard.isSelectedScheme(1)) {
779
- const vlan = getVlanId(portProperties.value.vlanId)
780
- const sendData: UI_I_AddNetworkingZeroOrFirstSchemeDataSend =
781
- addNetworkingZeroOrFirstSchemeDataFunc(
782
- targetDevice.value,
783
- Number(vlan),
784
- portProperties.value,
785
- ipFourSettings.value,
786
- wizard.isSelectedScheme(1),
787
- adapterStatus.value
788
- )
789
-
790
- emits(
791
- 'send-add-networking-data',
792
- sendData,
793
- 'vmkernel',
794
- hideSendNetworkDataLoader,
795
- onHideAddNetworkingModal
796
- )
797
- return
798
- }
799
-
800
- // Finish with the second scheme
801
- if (wizard.isSelectedScheme(2) || wizard.isSelectedScheme(3)) {
802
- const vlan = getVlanId(connectionSettings.value.vlanId)
803
- const sendData: UI_I_AddNetworkingSecondOrThirdSchemeDataSend =
804
- addNetworkingSecondOrThirdSchemeDataFunc(
805
- connectionSettings.value,
806
- targetDevice.value,
807
- Number(vlan),
808
- wizard.isSelectedScheme(2),
809
- adapterStatus.value
810
- )
811
-
812
- emits(
813
- 'send-add-networking-data',
814
- sendData,
815
- 'network',
816
- hideSendNetworkDataLoader,
817
- onHideAddNetworkingModal
818
- )
819
- }
820
- }
821
-
822
- // Trigger getting existing standard switches
823
- const isShowLoaderGetStandardSwitches = ref(false)
824
- const hideLoaderGetStandardSwitches = (): void => {
825
- isShowLoaderGetStandardSwitches.value = false
826
- }
827
- const onGetExistingStandardSwitches = (): void => {
828
- isShowLoaderGetStandardSwitches.value = true
829
- emits('get-existing-standard-switches', hideLoaderGetStandardSwitches)
830
- }
831
-
832
- onMounted(() => {
833
- hostname.value = location.hostname
834
- })
835
-
836
- const isShowGetFreeAdaptersLoader = ref(false)
837
-
838
- const hideLoaderGetFreeAdaptersCB = (): void => {
839
- isShowGetFreeAdaptersLoader.value = false
840
- }
841
-
842
- const onGetFreeAdapters = (showAddAdapterModal: () => void): void => {
843
- isShowGetFreeAdaptersLoader.value = true
844
- emits('get-free-adapters', () => {
845
- hideLoaderGetFreeAdaptersCB()
846
- showAddAdapterModal()
847
- })
848
- }
849
-
850
- // Modal hiding
851
- const emits = defineEmits<{
852
- (event: 'hide'): void
853
- (
854
- event: 'send-add-networking-data',
855
- schemeData:
856
- | UI_I_AddNetworkingSecondOrThirdSchemeDataSend
857
- | UI_I_AddNetworkingZeroOrFirstSchemeDataSend,
858
- type: string,
859
- hideSendNetworkDataLoader: () => void,
860
- onHideAddNetworkingModal: () => void
861
- ): void
862
- (
863
- event: 'add-networking-data-validate',
864
- networkData:
865
- | UI_I_AddNetworkingSecondOrThirdSchemeDataSend
866
- | UI_I_AddNetworkingZeroOrFirstSchemeDataSend,
867
- type: string,
868
- hideSendNetworkDataLoader: () => void,
869
- setValidation: (err_arg: UI_I_ArbitraryObject<string>) => void,
870
- goToLastStep: (stop?: boolean) => void
871
- ): void
872
- (event: 'get-existing-standard-switches', cb: () => void): void
873
- (event: 'get-free-adapters', cb: () => void): void
874
- (
875
- event: 'check-network-label',
876
- networkLabel: string,
877
- cb: (error_message: string) => void,
878
- hideLoader?: () => void
879
- ): void
880
- }>()
881
-
882
- const onSelectStep = (stepId: number): void => {
883
- wizard.goToSelectedStep(stepId, checkBeforeGoToSelectedStep)
884
- }
885
-
886
- const onNextStep = (): void => {
887
- wizard.goToNextStep(checkBeforeGoToNextStep)
888
- }
889
-
890
- const onHideAddNetworkingModal = (): void => {
891
- emits('hide')
892
- reset()
893
- }
894
- </script>
895
-
896
- <style scoped lang="scss">
897
- :deep(.modal) {
898
- & > .modal-dialog > .modal-content > .modal-body {
899
- height: calc(100% - 110px);
900
- .disabled-on-time {
901
- opacity: 0.4;
902
- pointer-events: none;
903
- }
904
- }
905
- }
906
- :deep(.disabled-on-time) {
907
- opacity: 0.4;
908
- pointer-events: none;
909
- }
910
- :deep(.wizard-content-container.add-networking-step) {
911
- padding: 16px 15px 10px 10px;
912
-
913
- .danger-not-valid {
914
- border: 2px solid red;
915
- border-bottom: 1px solid #db2100;
916
- }
917
- .tooltip-field {
918
- margin-right: 12px;
919
- }
920
-
921
- .horizontal-flex-container {
922
- margin-bottom: 5px;
923
- min-height: 36px;
924
- display: flex;
925
- flex-direction: row;
926
- }
927
- .property-label-group {
928
- width: 140px;
929
- }
930
- .disabled {
931
- opacity: 0.4;
932
- pointer-events: none;
933
- }
934
- .wizard-content-port {
935
- .margin-left-property-value-group {
936
- margin-left: 10px;
937
- }
938
-
939
- .property-value-group {
940
- padding-left: 23px;
941
- }
942
- .horizontal-flex-container {
943
- min-height: 24px;
944
- margin-bottom: 0;
945
- }
946
- .radio {
947
- min-height: 39px;
948
- margin: 10px 0;
949
- }
950
- .form-block {
951
- margin: 12px 0 24px 0;
952
- padding-left: 23px;
953
-
954
- &.form-block-ipv {
955
- input[type='text'] {
956
- width: 143px;
957
- }
958
- .horizontal-flex-container > label {
959
- margin-right: 50px;
960
- }
961
- }
962
- }
963
- .edit-vmkernel-adapter-section {
964
- padding-top: 12px;
965
-
966
- label {
967
- input[type='checkbox'] {
968
- margin-right: 4px;
969
- transform: translateY(1px);
970
- }
971
- }
972
- .horizontal-flex-container {
973
- margin-bottom: 5px;
974
- }
975
- }
976
- .port-properties-network-label {
977
- width: 280px;
978
- }
979
- .port-properties-padding {
980
- padding-top: 8px;
981
- }
982
- .port-properties-mtu-selector {
983
- margin-right: 12px;
984
- }
985
- .port-properties-mtu-container {
986
- display: flex;
987
- }
988
- select {
989
- height: 24px;
990
- }
991
- }
992
- .nw-property-value-group {
993
- display: inline;
994
- }
995
- }
996
-
997
- :deep(.modal-body-content.modal-body-content__confirmation) {
998
- display: flex;
999
- .confirm-icon-container {
1000
- margin-right: 20px;
1001
- }
1002
- .preserve-newlines {
1003
- white-space: pre-line;
1004
- font-size: 15px;
1005
- }
1006
- }
1007
-
1008
- .add-networking-wizard.is-dark {
1009
- :deep(.wizard-content-container.add-networking-step) {
1010
- .ready-complete-container {
1011
- background-color: var(--pannel-bg-color);
1012
- margin-top: 12px;
1013
-
1014
- span {
1015
- color: var(--description-color);
1016
- }
1017
- }
1018
-
1019
- .add-networking-radio-button-description {
1020
- color: var(--description-color);
1021
- }
1022
-
1023
- .property-label-group {
1024
- color: var(--main-color-mode2);
1025
- }
1026
- .flex-property-label-group {
1027
- color: var(--main-color-mode2);
1028
- }
1029
- .flex-property-value-group {
1030
- select {
1031
- color: #fff;
1032
- }
1033
- }
1034
- .failover-order-master {
1035
- .secondary-title label {
1036
- color: #fff;
1037
- }
1038
- }
1039
- .k-grid-content {
1040
- background-color: var(--modal-bg-color);
1041
- }
1042
- .vui-action-bar {
1043
- background-color: var(--pannel-bg-color);
1044
- color: var(--title-color);
1045
- padding: 8px 0 3px;
1046
-
1047
- .action-link-container:not(.disabled) {
1048
- &:hover {
1049
- background-color: #29414e;
1050
- border: 1px solid #c7e9ff;
1051
- }
1052
- }
1053
-
1054
- svg {
1055
- fill: #fff;
1056
- }
1057
- }
1058
-
1059
- .k-grid.k-widget .k-grid-content {
1060
- border-left: 1px solid #485764;
1061
- border-right: 1px solid #485764;
1062
- border-top: 1px solid #ddd;
1063
- border-bottom: 1px solid #ddd;
1064
-
1065
- tbody tr {
1066
- background-color: var(--modal-bg-color);
1067
-
1068
- td {
1069
- border-bottom: 1px solid #666666;
1070
- border-color: #666666;
1071
- }
1072
-
1073
- &:hover {
1074
- background-color: #324f61;
1075
- color: var(--title-color);
1076
-
1077
- td {
1078
- border-bottom: 1px solid #ffffff;
1079
- }
1080
- }
1081
-
1082
- &.k-state-selected {
1083
- background-color: #d8e3e9;
1084
- box-shadow: 0 1px 1px rgba(0, 0, 0, 0.075) inset;
1085
-
1086
- td span {
1087
- color: #000;
1088
- }
1089
- }
1090
- }
1091
- }
1092
-
1093
- .failover-order-details {
1094
- &.relative-container .absolute-container {
1095
- background-color: var(--pannel-bg-color);
1096
- color: var(--main-color-mode2);
1097
-
1098
- &:has(.no-items-selected-container) {
1099
- background-color: transparent;
1100
- }
1101
- }
1102
-
1103
- td span {
1104
- color: var(--main-color-mode2);
1105
- }
1106
- button span {
1107
- color: var(--main-color-mode2);
1108
-
1109
- &:hover:not(.disabled) {
1110
- background-color: transparent;
1111
- }
1112
- }
1113
- button.active span {
1114
- color: #fff;
1115
- }
1116
- }
1117
-
1118
- .select-adapter-info span {
1119
- color: var(--main-color-mode2);
1120
- }
1121
- }
1122
- }
1123
- </style>
1
+ <template>
2
+ <common-add-networking-wizard
3
+ :wizard="wizard"
4
+ :steps-with-status="stepsWithStatus"
5
+ :width="props.width"
6
+ :height="props.height"
7
+ :show="props.show"
8
+ :title="title"
9
+ :is-show-loader="isShowLoader"
10
+ :second-title="secondTitle"
11
+ :class="[
12
+ 'add-networking-wizard',
13
+ {
14
+ 'is-dark': props.isDarkMode,
15
+ },
16
+ ]"
17
+ @select-step="onSelectStep"
18
+ @hide="onHideAddNetworkingModal"
19
+ @next-step="onNextStep"
20
+ @finish="onFinish"
21
+ >
22
+ <template #modalBody>
23
+ <common-add-networking-steps-select-connection-type
24
+ v-if="wizard.isSelectedStep(0)"
25
+ :step-id="0"
26
+ :title="localization.selectConnectionType"
27
+ :text="localization.selectConnectionTypeToCreate"
28
+ :connection-type="connectionType"
29
+ @change-connection-type="onChangeConnectionType"
30
+ />
31
+ <common-add-networking-steps-selected-target-device
32
+ v-if="wizard.isSelectedStep(1)"
33
+ :step-id="1"
34
+ :title="localization.selectTargetDevice"
35
+ :text="localization.selectTargetDeviceForNewConnection"
36
+ :target-device="targetDevice"
37
+ :connection-type="connectionType"
38
+ :is-show-error-message-alert="isShowErrorMessageAlert"
39
+ :error-messages="errorMessages[1]"
40
+ :standard-switches-initial="props.standardSwitchesInitial"
41
+ :error="error"
42
+ @set-error-empty="onSetErrorFieldEmpty"
43
+ @change-error-messages="onChangeErrorMessages"
44
+ @hide-error-message-alert="onHideErrorMessageAlert"
45
+ @change-target-device="onChangeTargetDevice"
46
+ />
47
+ <common-add-networking-steps-create-standard-switch
48
+ v-if="wizard.isSelectedStep(2)"
49
+ :step-id="2"
50
+ :title="localization.createStandardSwitch"
51
+ :text="localization.assignFreePhysicalNetworkAdaptersToTheNewSwitch"
52
+ :free-adapters="props.freeAdapters"
53
+ :added-adapters="addedAdapters"
54
+ :adapter-status="adapterStatus"
55
+ :adapters="props.adapters"
56
+ :is-show-no-connected-active-adapters-modal="
57
+ isShowNoConnectedActiveAdaptersModal
58
+ "
59
+ :is-show-no-active-adapters-modal="isShowNoActiveAdaptersModal"
60
+ @get-free-adapters="onGetFreeAdapters"
61
+ @change-added-adapters="onChangeAddedAdapters"
62
+ @change-adapter-status="onChangeAdapterStatus"
63
+ @confirm-no-active-adapters-modal="onConfirmNoActiveAdaptersModal"
64
+ @hide-no-connected-active-adapters-modal="
65
+ onHideNoConnectedActiveAdaptersModal
66
+ "
67
+ @hide-no-active-adapters-modal="onHideNoActiveAdaptersModal"
68
+ />
69
+ <common-add-networking-steps-port-properties
70
+ v-if="wizard.isSelectedStep(3)"
71
+ :step-id="3"
72
+ :title="localization.portProperties"
73
+ :text="localization.specifyVMkernelPortSettings"
74
+ :port-properties="portProperties"
75
+ :is-show-error-message-alert="isShowErrorMessageAlert"
76
+ :error-messages="errorMessages[3]"
77
+ :network-label-existing-error-message="networkLabelExistingErrorMessage"
78
+ :mtu-from-switch="mtuFromSwitch"
79
+ :error="error"
80
+ :project="props.project"
81
+ @set-error-empty="onSetErrorFieldEmpty"
82
+ @change-error-messages="onChangeErrorMessages"
83
+ @hide-error-message-alert="onHideErrorMessageAlert"
84
+ @change-port-properties="onChangePortProperties"
85
+ />
86
+ <common-add-networking-steps-ip-four-settings
87
+ v-if="wizard.isSelectedStep(4)"
88
+ :step-id="4"
89
+ :title="localization.ipV4Settings"
90
+ :text="localization.specifyVMkernelIPv4Settings"
91
+ :ip-four-settings="ipFourSettings"
92
+ :is-show-error-message-alert="isShowErrorMessageAlert"
93
+ :error-messages="errorMessages[4]"
94
+ :error="error"
95
+ @set-error-empty="onSetErrorFieldEmpty"
96
+ @change-error-messages="onChangeErrorMessages"
97
+ @hide-error-message-alert="onHideErrorMessageAlert"
98
+ @change-ip-four-settings="onChangeIpFourSettings"
99
+ />
100
+ <common-add-networking-steps-connection-settings
101
+ v-if="wizard.isSelectedStep(5)"
102
+ :step-id="5"
103
+ :title="localization.connectionSettings"
104
+ :text="
105
+ localization.useNetworkLabelsToIdentifyMigrationCompatibleTwoHosts
106
+ "
107
+ :network-label-existing-error-message="networkLabelExistingErrorMessage"
108
+ :connection-settings="connectionSettings"
109
+ :is-show-error-message-alert="isShowErrorMessageAlert"
110
+ :error-messages="errorMessages[5]"
111
+ :error="error"
112
+ @set-error-empty="onSetErrorFieldEmpty"
113
+ @change-error-messages="onChangeErrorMessages"
114
+ @hide-error-message-alert="onHideErrorMessageAlert"
115
+ @change-connection-settings="onChangeConnectionSettings"
116
+ />
117
+ <common-add-networking-steps-physical-adapter
118
+ v-if="wizard.isSelectedStep(6)"
119
+ :step-id="6"
120
+ :title="localization.addPhysicalNetworkAdapter"
121
+ :text="localization.assignPhysicalNetworkAdaptersToTheSwitch"
122
+ />
123
+ <common-add-networking-steps-ready-complete
124
+ v-if="wizard.isSelectedStep(7)"
125
+ :step-id="7"
126
+ :title="localization.readyComplete"
127
+ :text="localization.reviewYourSettingsSelectionsWizard"
128
+ :ready-complete-fields="readyCompleteFields"
129
+ />
130
+ </template>
131
+ </common-add-networking-wizard>
132
+ </template>
133
+
134
+ <script setup lang="ts">
135
+ import { UI_I_ArbitraryObject, UI_I_Localization } from '~/models/interfaces'
136
+ import { UI_T_Project } from '~/models/types'
137
+ import {
138
+ createZeroSchemeReadyCompleteFunc,
139
+ createFirstSchemeReadyCompleteFunc,
140
+ createSecondSchemeReadyCompleteFunc,
141
+ createThirdSchemeReadyCompleteFunc,
142
+ stepsSchemeFunc,
143
+ stepsFunc,
144
+ secondTitleFunc,
145
+ errorMessagesInitialFunc,
146
+ connectionSettingsInitial,
147
+ portPropertiesInitial,
148
+ ipFourSettingsInitial,
149
+ targetDeviceInitial,
150
+ isNetworkInvalidInitial,
151
+ addNetworkingZeroOrFirstSchemeDataFunc,
152
+ addNetworkingSecondOrThirdSchemeDataFunc,
153
+ } from '~/components/common/addNetworking/config'
154
+ import {
155
+ UI_I_PortProperties,
156
+ UI_I_IpFourSettings,
157
+ UI_I_ConnectionSettings,
158
+ UI_I_TargetDevice,
159
+ UI_I_Switch,
160
+ UI_I_ReadyCompleteFields,
161
+ UI_I_NetworkLabelCheckExisting,
162
+ UI_I_AddNetworkingZeroOrFirstSchemeDataSend,
163
+ UI_I_AddNetworkingSecondOrThirdSchemeDataSend,
164
+ UI_I_Step,
165
+ } from '~/components/common/addNetworking/models/interfaces'
166
+ import {
167
+ UI_I_Adapter,
168
+ UI_I_AdapterStatus,
169
+ UI_I_SwitchAdapterItem,
170
+ UI_I_SwitchAdapters,
171
+ } from '~/components/common/diagramMain/models/interfaces'
172
+ import { Wizard, getVlanId } from '~/components/common/addNetworking/utils'
173
+
174
+ // Props from up
175
+ const props = withDefaults(
176
+ defineProps<{
177
+ modalName: string
178
+ viewName: string
179
+ show: boolean
180
+ width?: string
181
+ height?: string
182
+ title?: string
183
+ standardSwitchesInitial: UI_I_Switch[]
184
+ isNetworkInvalid?: UI_I_NetworkLabelCheckExisting
185
+ freeAdapters: UI_I_Adapter[]
186
+ adapters: UI_I_SwitchAdapters
187
+ project?: UI_T_Project
188
+ isDarkMode: boolean
189
+ }>(),
190
+ {
191
+ isNetworkInvalid: () => isNetworkInvalidInitial,
192
+ width: '576px',
193
+ height: '420px',
194
+ title: '',
195
+ freeAdapters: () => [],
196
+ standardSwitchesInitial: () => [],
197
+ project: 'procurator',
198
+ }
199
+ )
200
+
201
+ // UI_I_Localization
202
+ const localization = computed<UI_I_Localization>(() => useLocal())
203
+
204
+ // Title
205
+ const hostname = ref<string>('')
206
+ const title = computed<string>(() => `${hostname.value} - ${props.title}`)
207
+
208
+ // Loader
209
+ const isShowLoader = computed<boolean>(
210
+ () =>
211
+ isShowGetFreeAdaptersLoader.value ||
212
+ isShowCheckNetworkLabelLoader.value ||
213
+ isShowSendNetworkDataLoader.value ||
214
+ isShowLoaderGetStandardSwitches.value
215
+ )
216
+
217
+ /* **************************************
218
+ // STEPS LOGIC***************************
219
+ ************************************** */
220
+
221
+ // Steps
222
+ const wizard: Wizard = new Wizard(
223
+ stepsSchemeFunc(stepsFunc(localization.value))
224
+ )
225
+
226
+ const secondTitle = computed<string>(() =>
227
+ secondTitleFunc(wizard.selectedStep, localization.value)
228
+ )
229
+
230
+ const stepsWithStatus = computed<UI_I_Step[]>(() => wizard.stepsWithStatus())
231
+
232
+ // Step's content data and changers (readyCompleteFields)
233
+ const readyCompleteFields = ref<UI_I_ReadyCompleteFields[]>([])
234
+
235
+ // Step's content data (connectionType)
236
+ const connectionType = ref<string>('0')
237
+
238
+ const onChangeConnectionType = (newConnectionType: string): void => {
239
+ wizard.resetStepsUntilX(1)
240
+ connectionType.value = newConnectionType
241
+ targetDevice.value.standardSwitch =
242
+ props.standardSwitchesInitial?.[0]?.name || ''
243
+ }
244
+
245
+ // Step's content data (createStandardSwitch)
246
+ const addedAdapters = ref<string[]>([])
247
+
248
+ const onChangeAddedAdapters = (addedAdaptersNew: string[]): void => {
249
+ addedAdapters.value = addedAdaptersNew
250
+ }
251
+
252
+ const adapterStatus = ref<UI_I_AdapterStatus>({
253
+ active: [],
254
+ standby: [],
255
+ unused: [],
256
+ })
257
+ const onChangeAdapterStatus = (adapterStatusNew: UI_I_AdapterStatus): void => {
258
+ adapterStatus.value = adapterStatusNew
259
+ }
260
+
261
+ // Step's content data and changers (targetDevice)
262
+ const targetDevice = ref<UI_I_TargetDevice>(useDeepCopy(targetDeviceInitial))
263
+ const mtuFromSwitch = ref<number>(1500)
264
+
265
+ const onChangeTargetDevice = (newTargetDevice: UI_I_TargetDevice): void => {
266
+ const oldTargetDeviceSelected = useDeepCopy(targetDevice.value).selected
267
+ const newTargetDeviceSelected = newTargetDevice.selected
268
+
269
+ if (oldTargetDeviceSelected !== newTargetDeviceSelected)
270
+ wizard.resetStepsUntilX(2)
271
+
272
+ const selectedSwitch = props.standardSwitchesInitial.find(
273
+ (sw) => newTargetDevice.standardSwitch === sw.name
274
+ )
275
+
276
+ if (newTargetDeviceSelected === '1' && selectedSwitch) {
277
+ mtuFromSwitch.value = selectedSwitch?.mtu || 1500
278
+ }
279
+ if (newTargetDeviceSelected === '3') {
280
+ mtuFromSwitch.value = newTargetDevice.mtu || 1500
281
+ }
282
+
283
+ targetDevice.value = useDeepCopy(newTargetDevice)
284
+ }
285
+
286
+ // Step's content data and changers (portProperties)
287
+ const portProperties = ref<UI_I_PortProperties>(
288
+ useDeepCopy(portPropertiesInitial)
289
+ )
290
+ const onChangePortProperties = (newFields: UI_I_PortProperties): void => {
291
+ portProperties.value = newFields
292
+ }
293
+
294
+ // Step's content data and changers (ipFourSettings)
295
+ const ipFourSettings = ref<UI_I_IpFourSettings>(ipFourSettingsInitial)
296
+ const onChangeIpFourSettings = (newFields: UI_I_IpFourSettings): void => {
297
+ ipFourSettings.value = newFields
298
+ }
299
+
300
+ // Step's content data and changers (connectionSettings)
301
+ const connectionSettings = ref<UI_I_ConnectionSettings>(
302
+ connectionSettingsInitial
303
+ )
304
+ const onChangeConnectionSettings = (
305
+ newFields: UI_I_ConnectionSettings
306
+ ): void => {
307
+ connectionSettings.value = newFields
308
+ }
309
+
310
+ const error = ref<UI_I_ArbitraryObject<string>>({})
311
+
312
+ const onSetErrorFieldEmpty = (fieldName: string): void => {
313
+ error.value[fieldName] = ''
314
+ }
315
+
316
+ // Error Messages
317
+ const errorMessagesInitial: string[][] = errorMessagesInitialFunc(8)
318
+ const errorMessages = ref<string[][]>(errorMessagesInitial)
319
+ const isShowErrorMessageAlert = ref<boolean>(false)
320
+
321
+ const networkLabelExistingErrorMessage = ref<string>('')
322
+
323
+ const onChangeErrorMessages = (
324
+ newErrorMessages: string[],
325
+ stepIndex: number
326
+ ): void => {
327
+ errorMessages.value[stepIndex] = newErrorMessages
328
+ }
329
+ const onShowErrorMessageAlert = (): void => {
330
+ isShowErrorMessageAlert.value = true
331
+ }
332
+ const onHideErrorMessageAlert = (): void => {
333
+ isShowErrorMessageAlert.value = false
334
+ }
335
+
336
+ // Choosing Scheme
337
+ watch(
338
+ [connectionType, targetDevice],
339
+ (newValues, oldValue) => {
340
+ const newCT = newValues[0] // -> newConnectionType
341
+ const oldCT = oldValue[0] // -> oldConnectionType
342
+ const newTD = newValues[1] // -> newTargetDevice
343
+
344
+ if (newCT !== oldCT) {
345
+ newCT === '0' && (targetDevice.value.selected = '1')
346
+ newCT === '1' && (targetDevice.value.selected = '1')
347
+ newCT === '2' && (targetDevice.value.selected = '2')
348
+ }
349
+ if (newCT === '0') {
350
+ ;(newTD.selected === '0' || newTD.selected === '1') &&
351
+ (wizard.selectedScheme = 0)
352
+ newTD.selected === '3' && (wizard.selectedScheme = 1)
353
+ }
354
+ if (newCT === '1') {
355
+ newTD.selected === '1' && (wizard.selectedScheme = 2)
356
+ newTD.selected === '3' && (wizard.selectedScheme = 3)
357
+ }
358
+ if (newCT === '2') {
359
+ newTD.selected === '2' && (wizard.selectedScheme = 4)
360
+ newTD.selected === '3' && (wizard.selectedScheme = 5)
361
+ }
362
+ },
363
+ { deep: true, immediate: true }
364
+ )
365
+
366
+ // Ready complete
367
+ watch(
368
+ () => wizard.selectedStep,
369
+ (newSelectedStep: number) => {
370
+ if (
371
+ newSelectedStep === 1 &&
372
+ targetDevice.value.selected === '1' &&
373
+ !targetDevice.value.standardSwitch
374
+ )
375
+ onGetExistingStandardSwitches()
376
+ if (newSelectedStep !== 7) return // If last step
377
+ if (wizard.isSelectedScheme(0)) {
378
+ readyCompleteFields.value = createZeroSchemeReadyCompleteFunc(
379
+ targetDevice.value,
380
+ portProperties.value,
381
+ ipFourSettings.value,
382
+ localization.value
383
+ )
384
+ return
385
+ }
386
+
387
+ if (wizard.isSelectedScheme(1)) {
388
+ readyCompleteFields.value = createFirstSchemeReadyCompleteFunc(
389
+ targetDevice.value,
390
+ portProperties.value,
391
+ ipFourSettings.value,
392
+ addedAdapters.value,
393
+ localization.value
394
+ )
395
+ return
396
+ }
397
+ if (wizard.isSelectedScheme(2)) {
398
+ readyCompleteFields.value = createSecondSchemeReadyCompleteFunc(
399
+ connectionSettings.value,
400
+ targetDevice.value,
401
+ localization.value
402
+ )
403
+ return
404
+ }
405
+ if (wizard.isSelectedScheme(3)) {
406
+ readyCompleteFields.value = createThirdSchemeReadyCompleteFunc(
407
+ connectionSettings.value,
408
+ targetDevice.value,
409
+ addedAdapters.value,
410
+ localization.value
411
+ )
412
+ }
413
+ }
414
+ )
415
+
416
+ // Reset data
417
+ const reset = (): void => {
418
+ wizard.reset()
419
+ connectionType.value = '0'
420
+ targetDevice.value = useDeepCopy(targetDeviceInitial)
421
+ connectionSettings.value = useDeepCopy(connectionSettingsInitial)
422
+ portProperties.value = useDeepCopy(portPropertiesInitial)
423
+ ipFourSettings.value = useDeepCopy(ipFourSettingsInitial)
424
+ addedAdapters.value = []
425
+ adapterStatus.value = {
426
+ active: [],
427
+ standby: [],
428
+ unused: [],
429
+ }
430
+ errorMessages.value = errorMessagesInitial
431
+ }
432
+
433
+ // Checking network label existing
434
+ const isNetworkInvalid = ref<UI_I_NetworkLabelCheckExisting>()
435
+
436
+ watch(
437
+ () => props.isNetworkInvalid,
438
+ (newValue: UI_I_NetworkLabelCheckExisting) => {
439
+ isNetworkInvalid.value = newValue
440
+ },
441
+ { deep: true, immediate: true }
442
+ )
443
+
444
+ const isShowNoConnectedActiveAdaptersModal = ref(false)
445
+ const isShowNoActiveAdaptersModal = ref(false)
446
+
447
+ const showNoConnectedActiveAdaptersModal = (): void => {
448
+ isShowNoConnectedActiveAdaptersModal.value = true
449
+ }
450
+ const onHideNoConnectedActiveAdaptersModal = (): void => {
451
+ isShowNoConnectedActiveAdaptersModal.value = false
452
+ }
453
+ const showNoActiveAdaptersModal = (): void => {
454
+ isShowNoActiveAdaptersModal.value = true
455
+ }
456
+ const onHideNoActiveAdaptersModal = (): void => {
457
+ isShowNoActiveAdaptersModal.value = false
458
+ }
459
+
460
+ const onConfirmNoActiveAdaptersModal = (): void => {
461
+ wizard.selectedStep = wizard.waitingStepId
462
+ onHideNoConnectedActiveAdaptersModal()
463
+ onHideNoActiveAdaptersModal()
464
+ }
465
+
466
+ // Step selection
467
+ const isShowCheckNetworkLabelLoader = ref(false)
468
+
469
+ const checkNetwork = (networkLabel: string, nextStep?: number): void => {
470
+ if (networkLabel) {
471
+ isShowCheckNetworkLabelLoader.value = true
472
+ networkLabelExistingErrorMessage.value = ''
473
+ emits(
474
+ 'check-network-label',
475
+ networkLabel,
476
+ (error_message: string) => {
477
+ networkLabelExistingErrorMessage.value = error_message
478
+
479
+ if (
480
+ error_message === '' &&
481
+ errorMessages.value[wizard.selectedStep].length === 0
482
+ ) {
483
+ nextStep ? wizard.goToSelectedStep(nextStep) : wizard.goToNextStep()
484
+ return true
485
+ }
486
+
487
+ if (error_message !== '') {
488
+ const selectedStepErrorMessages: string[] =
489
+ errorMessages.value[wizard.selectedStep]
490
+
491
+ !selectedStepErrorMessages.includes(error_message) &&
492
+ selectedStepErrorMessages.push(error_message)
493
+ }
494
+ onShowErrorMessageAlert()
495
+ },
496
+ () => {
497
+ isShowCheckNetworkLabelLoader.value = false
498
+ }
499
+ )
500
+ } else {
501
+ onShowErrorMessageAlert()
502
+ }
503
+ }
504
+
505
+ const checkWizard = (nextStep?: number): void => {
506
+ isShowCheckNetworkLabelLoader.value = true
507
+
508
+ if (wizard.isSelectedScheme(0) || wizard.isSelectedScheme(1)) {
509
+ const vlan = getVlanId(portProperties.value.vlanId)
510
+
511
+ const sendData: UI_I_AddNetworkingZeroOrFirstSchemeDataSend =
512
+ addNetworkingZeroOrFirstSchemeDataFunc(
513
+ targetDevice.value,
514
+ Number(vlan),
515
+ portProperties.value,
516
+ ipFourSettings.value,
517
+ wizard.isSelectedScheme(1),
518
+ adapterStatus.value
519
+ )
520
+
521
+ emits(
522
+ 'add-networking-data-validate',
523
+ sendData,
524
+ 'vmkernel',
525
+ hideSendNetworkDataLoader,
526
+ setValidation,
527
+ (stop?: boolean) => {
528
+ if (
529
+ !Object.values(error.value).filter(
530
+ (errorMessage: string) => errorMessage
531
+ ).length &&
532
+ !stop
533
+ ) {
534
+ nextStep ? wizard.goToSelectedStep(nextStep) : wizard.goToNextStep()
535
+ }
536
+
537
+ isShowCheckNetworkLabelLoader.value = false
538
+ }
539
+ )
540
+ return
541
+ }
542
+
543
+ if (wizard.isSelectedScheme(2) || wizard.isSelectedScheme(3)) {
544
+ const vlan = getVlanId(connectionSettings.value.vlanId)
545
+ const sendData: UI_I_AddNetworkingSecondOrThirdSchemeDataSend =
546
+ addNetworkingSecondOrThirdSchemeDataFunc(
547
+ connectionSettings.value,
548
+ targetDevice.value,
549
+ Number(vlan),
550
+ wizard.isSelectedScheme(2),
551
+ adapterStatus.value
552
+ )
553
+
554
+ emits(
555
+ 'add-networking-data-validate',
556
+ sendData,
557
+ 'network',
558
+ hideSendNetworkDataLoader,
559
+ setValidation,
560
+ (stop?: boolean) => {
561
+ if (
562
+ !Object.values(error.value).filter(
563
+ (errorMessage: string) => errorMessage
564
+ ).length &&
565
+ !stop
566
+ ) {
567
+ nextStep ? wizard.goToSelectedStep(nextStep) : wizard.goToNextStep()
568
+ }
569
+
570
+ isShowCheckNetworkLabelLoader.value = false
571
+ }
572
+ )
573
+ }
574
+ }
575
+
576
+ const checkBeforeGoToNextStep = (
577
+ selectedStepIndex: number,
578
+ nextStep: number
579
+ ): boolean => {
580
+ if (wizard.isBeforeLastStep()) {
581
+ checkWizard()
582
+ return false
583
+ }
584
+
585
+ if (
586
+ wizard.checkNetworkLabelBeforeGoToNextStep(
587
+ 5,
588
+ connectionSettings.value.networkLabel,
589
+ isNetworkInvalid.value,
590
+ checkNetwork
591
+ )
592
+ )
593
+ return false
594
+
595
+ if (
596
+ wizard.checkNetworkLabelBeforeGoToNextStep(
597
+ 3,
598
+ portProperties.value.networkLabel,
599
+ isNetworkInvalid.value,
600
+ checkNetwork
601
+ )
602
+ )
603
+ return false
604
+
605
+ if (wizard.isSelectedStep(2)) {
606
+ if (adapterStatus.value.active.length === 0) {
607
+ showNoActiveAdaptersModal()
608
+ wizard.waitingStepId = nextStep
609
+ return false
610
+ }
611
+
612
+ const activeAndConnectedAdapters = adapterStatus.value.active.filter(
613
+ (adapterName: string) =>
614
+ props.freeAdapters.find(
615
+ (freeAdapter: UI_I_SwitchAdapterItem) =>
616
+ freeAdapter.name === adapterName
617
+ )?.carrier
618
+ )
619
+
620
+ if (activeAndConnectedAdapters.length === 0) {
621
+ showNoConnectedActiveAdaptersModal()
622
+ wizard.waitingStepId = nextStep
623
+ return false
624
+ }
625
+ }
626
+
627
+ if (
628
+ // If a current step has an error, show it and stop navigation on next step
629
+ errorMessages.value[wizard.selectedStep].length > 0 &&
630
+ wizard.isUpThenSelectedStep(stepsWithStatus.value[selectedStepIndex + 1].id)
631
+ ) {
632
+ onShowErrorMessageAlert()
633
+ return false
634
+ }
635
+ return true
636
+ }
637
+
638
+ const checkBeforeGoToSelectedStep = (stepId: number): boolean => {
639
+ if (wizard.isLastStep(stepId)) {
640
+ checkWizard(stepId)
641
+ return false
642
+ }
643
+
644
+ if (
645
+ wizard.isUpThenSelectedStep(stepId) &&
646
+ errorMessages.value[wizard.selectedStep].length > 0
647
+ ) {
648
+ onShowErrorMessageAlert()
649
+ return false
650
+ }
651
+
652
+ if (
653
+ wizard.checkNetworkLabelBeforeGoToNewStep(
654
+ stepId,
655
+ 2,
656
+ 5,
657
+ connectionSettings.value.networkLabel,
658
+ isNetworkInvalid.value,
659
+ checkNetwork
660
+ )
661
+ ) {
662
+ wizard.goToSelectedStep(5)
663
+ return false
664
+ }
665
+
666
+ if (
667
+ wizard.checkNetworkLabelBeforeGoToNewStep(
668
+ stepId,
669
+ 0,
670
+ 3,
671
+ portProperties.value.networkLabel,
672
+ isNetworkInvalid.value,
673
+ checkNetwork
674
+ )
675
+ ) {
676
+ wizard.goToSelectedStep(3)
677
+ return false
678
+ }
679
+
680
+ if (
681
+ wizard.checkNetworkLabelBeforeGoToNewStep(
682
+ stepId,
683
+ 1,
684
+ 3,
685
+ portProperties.value.networkLabel,
686
+ isNetworkInvalid.value,
687
+ checkNetwork
688
+ )
689
+ ) {
690
+ wizard.goToSelectedStep(3)
691
+ return false
692
+ }
693
+
694
+ if (wizard.isSelectedStep(2) && stepId > 2) {
695
+ if (adapterStatus.value.active.length === 0) {
696
+ showNoActiveAdaptersModal()
697
+ wizard.waitingStepId = stepId
698
+ return false
699
+ }
700
+
701
+ const activeAndConnectedAdapters = adapterStatus.value.active.filter(
702
+ (adapterName: string) =>
703
+ props.freeAdapters.find(
704
+ (freeAdapter: UI_I_SwitchAdapterItem) =>
705
+ freeAdapter.name === adapterName
706
+ )?.carrier
707
+ )
708
+
709
+ if (activeAndConnectedAdapters.length === 0) {
710
+ showNoConnectedActiveAdaptersModal()
711
+ wizard.waitingStepId = stepId
712
+ return false
713
+ }
714
+ }
715
+
716
+ if (
717
+ // If a current step has an error, show it and stop navigation on next step
718
+ errorMessages.value[wizard.selectedStep].length > 0 &&
719
+ wizard.isUpThenSelectedStep(stepId)
720
+ ) {
721
+ onShowErrorMessageAlert()
722
+ return false
723
+ }
724
+ return true
725
+ }
726
+
727
+ watch(
728
+ connectionSettings,
729
+ (newValue: UI_I_ConnectionSettings, oldValue: UI_I_ConnectionSettings) => {
730
+ if (newValue.networkLabel === oldValue.networkLabel) return
731
+ networkLabelExistingErrorMessage.value = ''
732
+ },
733
+ { deep: true }
734
+ )
735
+
736
+ // Finish network adding and sending data
737
+ const isShowSendNetworkDataLoader = ref(false)
738
+ const hideSendNetworkDataLoader = (): void => {
739
+ isShowSendNetworkDataLoader.value = false
740
+ }
741
+
742
+ const setValidation = (err_arg: UI_I_ArbitraryObject<string>): void => {
743
+ error.value = err_arg
744
+ }
745
+
746
+ watch(
747
+ error,
748
+ (newErr) => {
749
+ if (!wizard.isBeforeLastStep() && !wizard.isLastStep(7)) return
750
+
751
+ if (newErr.switch || newErr.network || newErr['new_switch.mtu']) {
752
+ wizard.selectedStep = 1
753
+ return
754
+ }
755
+ if (newErr.network_name || newErr['new_network.vlan'] || newErr.mtu) {
756
+ wizard.selectedStep = 3
757
+ return
758
+ }
759
+ if (
760
+ newErr['tcp_config.ipv4'] ||
761
+ newErr['tcp_config.gateway'] ||
762
+ newErr['tcp_config.net_mask']
763
+ ) {
764
+ wizard.selectedStep = 4
765
+ return
766
+ }
767
+ if (newErr.name || newErr.vlan) {
768
+ wizard.selectedStep = 5
769
+ }
770
+ },
771
+ { deep: true }
772
+ )
773
+
774
+ const onFinish = async (): Promise<void> => {
775
+ isShowSendNetworkDataLoader.value = true
776
+
777
+ // Finish with the zero and first scheme
778
+ if (wizard.isSelectedScheme(0) || wizard.isSelectedScheme(1)) {
779
+ const vlan = getVlanId(portProperties.value.vlanId)
780
+ const sendData: UI_I_AddNetworkingZeroOrFirstSchemeDataSend =
781
+ addNetworkingZeroOrFirstSchemeDataFunc(
782
+ targetDevice.value,
783
+ Number(vlan),
784
+ portProperties.value,
785
+ ipFourSettings.value,
786
+ wizard.isSelectedScheme(1),
787
+ adapterStatus.value
788
+ )
789
+
790
+ emits(
791
+ 'send-add-networking-data',
792
+ sendData,
793
+ 'vmkernel',
794
+ hideSendNetworkDataLoader,
795
+ onHideAddNetworkingModal
796
+ )
797
+ return
798
+ }
799
+
800
+ // Finish with the second scheme
801
+ if (wizard.isSelectedScheme(2) || wizard.isSelectedScheme(3)) {
802
+ const vlan = getVlanId(connectionSettings.value.vlanId)
803
+ const sendData: UI_I_AddNetworkingSecondOrThirdSchemeDataSend =
804
+ addNetworkingSecondOrThirdSchemeDataFunc(
805
+ connectionSettings.value,
806
+ targetDevice.value,
807
+ Number(vlan),
808
+ wizard.isSelectedScheme(2),
809
+ adapterStatus.value
810
+ )
811
+
812
+ emits(
813
+ 'send-add-networking-data',
814
+ sendData,
815
+ 'network',
816
+ hideSendNetworkDataLoader,
817
+ onHideAddNetworkingModal
818
+ )
819
+ }
820
+ }
821
+
822
+ // Trigger getting existing standard switches
823
+ const isShowLoaderGetStandardSwitches = ref(false)
824
+ const hideLoaderGetStandardSwitches = (): void => {
825
+ isShowLoaderGetStandardSwitches.value = false
826
+ }
827
+ const onGetExistingStandardSwitches = (): void => {
828
+ isShowLoaderGetStandardSwitches.value = true
829
+ emits('get-existing-standard-switches', hideLoaderGetStandardSwitches)
830
+ }
831
+
832
+ onMounted(() => {
833
+ hostname.value = location.hostname
834
+ })
835
+
836
+ const isShowGetFreeAdaptersLoader = ref(false)
837
+
838
+ const hideLoaderGetFreeAdaptersCB = (): void => {
839
+ isShowGetFreeAdaptersLoader.value = false
840
+ }
841
+
842
+ const onGetFreeAdapters = (showAddAdapterModal: () => void): void => {
843
+ isShowGetFreeAdaptersLoader.value = true
844
+ emits('get-free-adapters', () => {
845
+ hideLoaderGetFreeAdaptersCB()
846
+ showAddAdapterModal()
847
+ })
848
+ }
849
+
850
+ // Modal hiding
851
+ const emits = defineEmits<{
852
+ (event: 'hide'): void
853
+ (
854
+ event: 'send-add-networking-data',
855
+ schemeData:
856
+ | UI_I_AddNetworkingSecondOrThirdSchemeDataSend
857
+ | UI_I_AddNetworkingZeroOrFirstSchemeDataSend,
858
+ type: string,
859
+ hideSendNetworkDataLoader: () => void,
860
+ onHideAddNetworkingModal: () => void
861
+ ): void
862
+ (
863
+ event: 'add-networking-data-validate',
864
+ networkData:
865
+ | UI_I_AddNetworkingSecondOrThirdSchemeDataSend
866
+ | UI_I_AddNetworkingZeroOrFirstSchemeDataSend,
867
+ type: string,
868
+ hideSendNetworkDataLoader: () => void,
869
+ setValidation: (err_arg: UI_I_ArbitraryObject<string>) => void,
870
+ goToLastStep: (stop?: boolean) => void
871
+ ): void
872
+ (event: 'get-existing-standard-switches', cb: () => void): void
873
+ (event: 'get-free-adapters', cb: () => void): void
874
+ (
875
+ event: 'check-network-label',
876
+ networkLabel: string,
877
+ cb: (error_message: string) => void,
878
+ hideLoader?: () => void
879
+ ): void
880
+ }>()
881
+
882
+ const onSelectStep = (stepId: number): void => {
883
+ wizard.goToSelectedStep(stepId, checkBeforeGoToSelectedStep)
884
+ }
885
+
886
+ const onNextStep = (): void => {
887
+ wizard.goToNextStep(checkBeforeGoToNextStep)
888
+ }
889
+
890
+ const onHideAddNetworkingModal = (): void => {
891
+ emits('hide')
892
+ reset()
893
+ }
894
+ </script>
895
+
896
+ <style scoped lang="scss">
897
+ :deep(.modal) {
898
+ & > .modal-dialog > .modal-content > .modal-body {
899
+ height: calc(100% - 110px);
900
+ .disabled-on-time {
901
+ opacity: 0.4;
902
+ pointer-events: none;
903
+ }
904
+ }
905
+ }
906
+ :deep(.disabled-on-time) {
907
+ opacity: 0.4;
908
+ pointer-events: none;
909
+ }
910
+ :deep(.wizard-content-container.add-networking-step) {
911
+ padding: 16px 15px 10px 10px;
912
+
913
+ .danger-not-valid {
914
+ border: 2px solid red;
915
+ border-bottom: 1px solid #db2100;
916
+ }
917
+ .tooltip-field {
918
+ margin-right: 12px;
919
+ }
920
+
921
+ .horizontal-flex-container {
922
+ margin-bottom: 5px;
923
+ min-height: 36px;
924
+ display: flex;
925
+ flex-direction: row;
926
+ }
927
+ .property-label-group {
928
+ width: 140px;
929
+ }
930
+ .disabled {
931
+ opacity: 0.4;
932
+ pointer-events: none;
933
+ }
934
+ .wizard-content-port {
935
+ .margin-left-property-value-group {
936
+ margin-left: 10px;
937
+ }
938
+
939
+ .property-value-group {
940
+ padding-left: 23px;
941
+ }
942
+ .horizontal-flex-container {
943
+ min-height: 24px;
944
+ margin-bottom: 0;
945
+ }
946
+ .radio {
947
+ min-height: 39px;
948
+ margin: 10px 0;
949
+ }
950
+ .form-block {
951
+ margin: 12px 0 24px 0;
952
+ padding-left: 23px;
953
+
954
+ &.form-block-ipv {
955
+ input[type='text'] {
956
+ width: 143px;
957
+ }
958
+ .horizontal-flex-container > label {
959
+ margin-right: 50px;
960
+ }
961
+ }
962
+ }
963
+ .edit-vmkernel-adapter-section {
964
+ padding-top: 12px;
965
+
966
+ label {
967
+ input[type='checkbox'] {
968
+ margin-right: 4px;
969
+ transform: translateY(1px);
970
+ }
971
+ }
972
+ .horizontal-flex-container {
973
+ margin-bottom: 5px;
974
+ }
975
+ }
976
+ .port-properties-network-label {
977
+ width: 280px;
978
+ }
979
+ .port-properties-padding {
980
+ padding-top: 8px;
981
+ }
982
+ .port-properties-mtu-selector {
983
+ margin-right: 12px;
984
+ }
985
+ .port-properties-mtu-container {
986
+ display: flex;
987
+ }
988
+ select {
989
+ height: 24px;
990
+ }
991
+ }
992
+ .nw-property-value-group {
993
+ display: inline;
994
+ }
995
+ }
996
+
997
+ :deep(.modal-body-content.modal-body-content__confirmation) {
998
+ display: flex;
999
+ .confirm-icon-container {
1000
+ margin-right: 20px;
1001
+ }
1002
+ .preserve-newlines {
1003
+ white-space: pre-line;
1004
+ font-size: 15px;
1005
+ }
1006
+ }
1007
+
1008
+ .add-networking-wizard.is-dark {
1009
+ :deep(.wizard-content-container.add-networking-step) {
1010
+ .ready-complete-container {
1011
+ background-color: var(--pannel-bg-color);
1012
+ margin-top: 12px;
1013
+
1014
+ span {
1015
+ color: var(--description-color);
1016
+ }
1017
+ }
1018
+
1019
+ .add-networking-radio-button-description {
1020
+ color: var(--description-color);
1021
+ }
1022
+
1023
+ .property-label-group {
1024
+ color: var(--main-color-mode2);
1025
+ }
1026
+ .flex-property-label-group {
1027
+ color: var(--main-color-mode2);
1028
+ }
1029
+ .flex-property-value-group {
1030
+ select {
1031
+ color: #fff;
1032
+ }
1033
+ }
1034
+ .failover-order-master {
1035
+ .secondary-title label {
1036
+ color: #fff;
1037
+ }
1038
+ }
1039
+ .k-grid-content {
1040
+ background-color: var(--modal-bg-color);
1041
+ }
1042
+ .vui-action-bar {
1043
+ background-color: var(--pannel-bg-color);
1044
+ color: var(--title-color);
1045
+ padding: 8px 0 3px;
1046
+
1047
+ .action-link-container:not(.disabled) {
1048
+ &:hover {
1049
+ background-color: #29414e;
1050
+ border: 1px solid #c7e9ff;
1051
+ }
1052
+ }
1053
+
1054
+ svg {
1055
+ fill: #fff;
1056
+ }
1057
+ }
1058
+
1059
+ .k-grid.k-widget .k-grid-content {
1060
+ border-left: 1px solid #485764;
1061
+ border-right: 1px solid #485764;
1062
+ border-top: 1px solid #ddd;
1063
+ border-bottom: 1px solid #ddd;
1064
+
1065
+ tbody tr {
1066
+ background-color: var(--modal-bg-color);
1067
+
1068
+ td {
1069
+ border-bottom: 1px solid #666666;
1070
+ border-color: #666666;
1071
+ }
1072
+
1073
+ &:hover {
1074
+ background-color: #324f61;
1075
+ color: var(--title-color);
1076
+
1077
+ td {
1078
+ border-bottom: 1px solid #ffffff;
1079
+ }
1080
+ }
1081
+
1082
+ &.k-state-selected {
1083
+ background-color: #d8e3e9;
1084
+ box-shadow: 0 1px 1px rgba(0, 0, 0, 0.075) inset;
1085
+
1086
+ td span {
1087
+ color: #000;
1088
+ }
1089
+ }
1090
+ }
1091
+ }
1092
+
1093
+ .failover-order-details {
1094
+ &.relative-container .absolute-container {
1095
+ background-color: var(--pannel-bg-color);
1096
+ color: var(--main-color-mode2);
1097
+
1098
+ &:has(.no-items-selected-container) {
1099
+ background-color: transparent;
1100
+ }
1101
+ }
1102
+
1103
+ td span {
1104
+ color: var(--main-color-mode2);
1105
+ }
1106
+ button span {
1107
+ color: var(--main-color-mode2);
1108
+
1109
+ &:hover:not(.disabled) {
1110
+ background-color: transparent;
1111
+ }
1112
+ }
1113
+ button.active span {
1114
+ color: #fff;
1115
+ }
1116
+ }
1117
+
1118
+ .select-adapter-info span {
1119
+ color: var(--main-color-mode2);
1120
+ }
1121
+ }
1122
+ }
1123
+ </style>