bfg-common 1.2.198 → 1.2.199

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 (755) 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 +2152 -2150
  22. package/assets/localization/local_en.json +2155 -2153
  23. package/assets/localization/local_hy.json +2155 -2153
  24. package/assets/localization/local_kk.json +2155 -2153
  25. package/assets/localization/local_ru.json +2155 -2153
  26. package/assets/localization/local_zh.json +2155 -2153
  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 +189 -189
  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 +232 -232
  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 +1490 -1490
  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 +296 -296
  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/atoms/wizard/Wizard.vue +442 -442
  129. package/components/atoms/wizard/models/enums.ts +8 -8
  130. package/components/atoms/wizard/models/interfaces.ts +47 -47
  131. package/components/atoms/wizard/step/Step.vue +112 -112
  132. package/components/atoms/wizard/utils/utils.ts +486 -486
  133. package/components/common/accordion/Accordion.vue +176 -176
  134. package/components/common/accordion/Recursion.vue +216 -216
  135. package/components/common/accordion/models/enums.ts +5 -5
  136. package/components/common/accordion/models/interfaces.ts +15 -15
  137. package/components/common/accordion/models/types.ts +1 -1
  138. package/components/common/accordion/utils/accordion.ts +31 -31
  139. package/components/common/adapterManager/AdapterManager.vue +715 -715
  140. package/components/common/adapterManager/AddAdapterModal.vue +555 -555
  141. package/components/common/adapterManager/config/index.ts +19 -19
  142. package/components/common/adapterManager/ui/NoSelectedAdapter.vue +39 -39
  143. package/components/common/adapterManager/ui/SecondTitle.vue +37 -37
  144. package/components/common/adapterManager/ui/actions/ActionsBar.vue +93 -93
  145. package/components/common/adapterManager/ui/actions/AddAdapterButton.vue +28 -28
  146. package/components/common/adapterManager/ui/actions/MoveDownAdapterButton.vue +33 -33
  147. package/components/common/adapterManager/ui/actions/MoveUpAdapterButton.vue +33 -33
  148. package/components/common/adapterManager/ui/actions/RemoveAdapterButton.vue +34 -34
  149. package/components/common/adapterManager/ui/actions/VerticalSeparator.vue +10 -10
  150. package/components/common/adapterManager/ui/table/Adapters.vue +91 -91
  151. package/components/common/adapterManager/ui/table/Header.vue +89 -89
  152. package/components/common/adapterManager/ui/table/Table.vue +167 -167
  153. package/components/common/browse/Browse.vue +182 -182
  154. package/components/common/browse/blocks/Container.vue +102 -102
  155. package/components/common/browse/blocks/contents/Files.vue +68 -68
  156. package/components/common/browse/blocks/info/Date.vue +21 -21
  157. package/components/common/browse/blocks/info/Size.vue +17 -17
  158. package/components/common/browse/blocks/info/Text.vue +16 -16
  159. package/components/common/browse/blocks/models/types.ts +1 -1
  160. package/components/common/browse/models/interfaces.ts +5 -5
  161. package/components/common/config/states.ts +81 -81
  162. package/components/common/context/Context.spec.ts +20 -20
  163. package/components/common/context/Context.vue +97 -97
  164. package/components/common/context/ContextRecursion.spec.ts +55 -55
  165. package/components/common/context/ContextRecursion.vue +251 -251
  166. package/components/common/context/models/interfaces.ts +26 -26
  167. package/components/common/details/DetailsItem.vue +106 -106
  168. package/components/common/details/DetailsList.vue +23 -23
  169. package/components/common/details/model/interfaces.ts +9 -9
  170. package/components/common/diagramMain/Diagram.vue +192 -192
  171. package/components/common/diagramMain/DiagramMain.vue +954 -954
  172. package/components/common/diagramMain/Header.vue +190 -190
  173. package/components/common/diagramMain/Highlights.vue +124 -124
  174. package/components/common/diagramMain/adapter/Adapter.vue +114 -114
  175. package/components/common/diagramMain/adapter/AdapterItem.vue +246 -246
  176. package/components/common/diagramMain/adapter/AdapterItems.vue +59 -59
  177. package/components/common/diagramMain/adapter/Block.vue +48 -48
  178. package/components/common/diagramMain/adapter/Contents.vue +110 -110
  179. package/components/common/diagramMain/adapter/Lines.vue +58 -58
  180. package/components/common/diagramMain/adapter/SecondBlock.vue +49 -49
  181. package/components/common/diagramMain/config/index.ts +51 -51
  182. package/components/common/diagramMain/config/initial.ts +37 -37
  183. package/components/common/diagramMain/modals/ManagePhysicalAdaptersModal.vue +236 -236
  184. package/components/common/diagramMain/modals/config/adapterModal.ts +111 -111
  185. package/components/common/diagramMain/modals/config/diagramConfig.ts +17 -17
  186. package/components/common/diagramMain/modals/config/index.ts +51 -51
  187. package/components/common/diagramMain/modals/config/initial.ts +181 -181
  188. package/components/common/diagramMain/modals/config/networkModal.ts +343 -343
  189. package/components/common/diagramMain/modals/config/portModal.ts +209 -209
  190. package/components/common/diagramMain/modals/config/switchModal.ts +172 -172
  191. package/components/common/diagramMain/modals/config/vCenterModal.ts +34 -34
  192. package/components/common/diagramMain/modals/config/vmKernelAdapter.ts +90 -90
  193. package/components/common/diagramMain/modals/editSettings/ConfirmTeamingSettingsModal.vue +41 -41
  194. package/components/common/diagramMain/modals/editSettings/EditSettings.vue +491 -491
  195. package/components/common/diagramMain/modals/editSettings/EditSettingsModal.vue +825 -825
  196. package/components/common/diagramMain/modals/editSettings/tabs/NetworkProperties.vue +211 -211
  197. package/components/common/diagramMain/modals/editSettings/tabs/Security.vue +183 -183
  198. package/components/common/diagramMain/modals/editSettings/tabs/SwitchProperties.vue +161 -161
  199. package/components/common/diagramMain/modals/editSettings/tabs/TeamingFailover.vue +166 -166
  200. package/components/common/diagramMain/modals/editSettings/tabs/TrafficShaping.vue +393 -393
  201. package/components/common/diagramMain/modals/editSettings/tabs/port/IpvFourSettings.vue +339 -339
  202. package/components/common/diagramMain/modals/migrateVmkernelAdapter/MigrateVmkernelAdapter.vue +531 -531
  203. package/components/common/diagramMain/modals/migrateVmkernelAdapter/config/steps.ts +114 -114
  204. package/components/common/diagramMain/modals/migrateVmkernelAdapter/steps/ConnectionSettings.vue +161 -161
  205. package/components/common/diagramMain/modals/migrateVmkernelAdapter/steps/SelectVmkernelAdapter.vue +158 -158
  206. package/components/common/diagramMain/modals/migrateVmkernelAdapter/steps/VmkernelAdapterReadyComplete.vue +49 -49
  207. package/components/common/diagramMain/modals/migrateVmkernelAdapter/validations/common.ts +47 -47
  208. package/components/common/diagramMain/modals/migrateVmkernelAdapter/validations/connectionSettings.ts +146 -146
  209. package/components/common/diagramMain/modals/migrateVmkernelAdapter/validations/selectVmkernelAdapter.ts +54 -54
  210. package/components/common/diagramMain/modals/migrateVmkernelAdapter/validations/validations.ts +19 -19
  211. package/components/common/diagramMain/modals/utils/index.ts +9 -9
  212. package/components/common/diagramMain/modals/viewSettings/Info.vue +123 -123
  213. package/components/common/diagramMain/modals/viewSettings/ViewSettings.vue +171 -171
  214. package/components/common/diagramMain/modals/viewSettings/ViewSettingsModal.vue +93 -93
  215. package/components/common/diagramMain/models/enums.ts +26 -26
  216. package/components/common/diagramMain/models/interfaces.ts +563 -563
  217. package/components/common/diagramMain/models/types.ts +8 -8
  218. package/components/common/diagramMain/network/Block.vue +62 -62
  219. package/components/common/diagramMain/network/Contents.vue +253 -253
  220. package/components/common/diagramMain/network/Lines.vue +71 -71
  221. package/components/common/diagramMain/network/Network.vue +124 -124
  222. package/components/common/diagramMain/network/NoNetwork.vue +53 -53
  223. package/components/common/diagramMain/network/SecondBlock.vue +58 -58
  224. package/components/common/diagramMain/port/Port.vue +320 -320
  225. package/components/common/diagramMain/port/Ports.vue +41 -41
  226. package/components/common/diagramMain/switch/Switch.vue +82 -82
  227. package/components/common/diagramMain/switch/SwitchSelected.vue +35 -35
  228. package/components/common/diagramMain/utils/utils.ts +218 -218
  229. package/components/common/feedback/Buttons.vue +227 -227
  230. package/components/common/feedback/Message.vue +509 -509
  231. package/components/common/feedback/config/drawingPanel.ts +31 -31
  232. package/components/common/feedback/config/feedbackTabs.ts +24 -24
  233. package/components/common/feedback/models/interfaces.ts +19 -19
  234. package/components/common/feedback/models/types.ts +1 -1
  235. package/components/common/graph/Graph.vue +109 -109
  236. package/components/common/graph/utils/renderGraph.ts +389 -389
  237. package/components/common/headline/Headline.vue +32 -32
  238. package/components/common/help/navbar/left/Left.vue +164 -164
  239. package/components/common/help/navbar/left/models/interfaces.ts +6 -6
  240. package/components/common/help/navbar/right/Right.vue +139 -139
  241. package/components/common/help/navbar/right/models/interfaces.ts +4 -4
  242. package/components/common/home/Card.vue +63 -63
  243. package/components/common/home/ResourceBlock.vue +117 -117
  244. package/components/common/home/StatusContent.vue +47 -47
  245. package/components/common/home/alertsTable/AlertsTable.vue +105 -105
  246. package/components/common/home/alertsTable/config/config.ts +61 -61
  247. package/components/common/home/alertsTable/models/enums.ts +11 -11
  248. package/components/common/home/alertsTable/models/interfaces.ts +19 -19
  249. package/components/common/home/alertsTable/models/types.ts +18 -18
  250. package/components/common/home/config/configResourceMeterBlock.ts +25 -25
  251. package/components/common/home/models/interfaces.ts +59 -59
  252. package/components/common/home/models/types.ts +18 -18
  253. package/components/common/home/servicesTable/ServicesTable.vue +79 -79
  254. package/components/common/home/servicesTable/config/config.ts +62 -62
  255. package/components/common/mainNavigationPanel/MainNavigationPanel.vue +359 -359
  256. package/components/common/mainNavigationPanel/models/interfaces.ts +6 -6
  257. package/components/common/mainNavigationPanel/models/types.ts +1 -1
  258. package/components/common/modals/Confirmation.vue +97 -97
  259. package/components/common/modals/Rename.vue +165 -165
  260. package/components/common/modals/config/defaultForm.ts +18 -18
  261. package/components/common/modals/config/renameLabelWidth.ts +3 -3
  262. package/components/common/modals/models/interfaces.ts +5 -5
  263. package/components/common/monitor/advanced/Advanced.vue +243 -243
  264. package/components/common/monitor/advanced/GraphView.vue +180 -180
  265. package/components/common/monitor/advanced/models/interfaces.ts +8 -8
  266. package/components/common/monitor/advanced/models/types.ts +1 -1
  267. package/components/common/monitor/advanced/table/Table.vue +90 -90
  268. package/components/common/monitor/advanced/table/config/performanceDatatable.ts +116 -116
  269. package/components/common/monitor/advanced/table/models/interfaces.ts +12 -12
  270. package/components/common/monitor/advanced/table/models/types.ts +10 -10
  271. package/components/common/monitor/advanced/tools/Tools.vue +436 -436
  272. package/components/common/monitor/advanced/tools/chartOptionsModal/ChartOptionsModal.vue +502 -502
  273. package/components/common/monitor/advanced/tools/chartOptionsModal/Notification.vue +33 -33
  274. package/components/common/monitor/advanced/tools/chartOptionsModal/actions/Actions.vue +150 -150
  275. package/components/common/monitor/advanced/tools/chartOptionsModal/actions/saveOptionsModal/SaveOptionsModal.vue +76 -76
  276. package/components/common/monitor/advanced/tools/chartOptionsModal/actions/utils/optionsActions.ts +25 -25
  277. package/components/common/monitor/advanced/tools/chartOptionsModal/counters/Counters.vue +104 -104
  278. package/components/common/monitor/advanced/tools/chartOptionsModal/counters/table/Table.vue +136 -136
  279. package/components/common/monitor/advanced/tools/chartOptionsModal/counters/table/config/tableConfig.ts +71 -71
  280. package/components/common/monitor/advanced/tools/chartOptionsModal/counters/table/config/utils.ts +689 -689
  281. package/components/common/monitor/advanced/tools/chartOptionsModal/counters/table/models/interfaces.ts +28 -28
  282. package/components/common/monitor/advanced/tools/chartOptionsModal/counters/table/models/types.ts +5 -5
  283. package/components/common/monitor/advanced/tools/chartOptionsModal/counters/timespan/Timespan.vue +83 -83
  284. package/components/common/monitor/advanced/tools/chartOptionsModal/counters/timespan/form/Form.vue +501 -501
  285. package/components/common/monitor/advanced/tools/chartOptionsModal/counters/timespan/form/config/dateForm.ts +59 -59
  286. package/components/common/monitor/advanced/tools/chartOptionsModal/counters/timespan/object/Object.vue +197 -197
  287. package/components/common/monitor/advanced/tools/chartOptionsModal/counters/timespan/object/config/objectTable.ts +54 -54
  288. package/components/common/monitor/advanced/tools/chartOptionsModal/counters/timespan/object/models/interfaces.ts +4 -4
  289. package/components/common/monitor/advanced/tools/chartOptionsModal/counters/timespan/object/models/types.ts +1 -1
  290. package/components/common/monitor/advanced/tools/chartOptionsModal/metrics/Metrics.vue +42 -42
  291. package/components/common/monitor/advanced/tools/chartOptionsModal/metrics/config/optionsMetrics.ts +116 -116
  292. package/components/common/monitor/advanced/tools/chartOptionsModal/models/interfaces.ts +19 -19
  293. package/components/common/monitor/advanced/tools/chartOptionsModal/models/types.ts +3 -3
  294. package/components/common/monitor/advanced/tools/config/advancedToolbar.ts +125 -125
  295. package/components/common/monitor/advanced/tools/models/interfaces.ts +4 -4
  296. package/components/common/monitor/advanced/tools/utils/countCores.ts +7 -7
  297. package/components/common/monitor/config/getValidDateByOption.ts +76 -76
  298. package/components/common/monitor/models/interfaces.ts +23 -23
  299. package/components/common/monitor/overview/Overview.vue +470 -470
  300. package/components/common/monitor/overview/filters/Filters.vue +221 -221
  301. package/components/common/monitor/overview/filters/config/filterOptions.ts +81 -81
  302. package/components/common/monitor/overview/filters/customIntervalModal/CustomIntervalModal.vue +241 -241
  303. package/components/common/monitor/overview/filters/customIntervalModal/config/dateChecker.ts +37 -37
  304. package/components/common/monitor/overview/filters/models/interfaces.ts +7 -7
  305. package/components/common/monitor/overview/filters/models/types.ts +3 -3
  306. package/components/common/perPage/PerPage.vue +51 -51
  307. package/components/common/recursionTree/models/interfaces.ts +19 -19
  308. package/components/common/resource/models/interfaces.ts +9 -9
  309. package/components/common/resource/models/types.ts +1 -1
  310. package/components/common/resource/progressBlock/ProgressBlock.vue +105 -105
  311. package/components/common/resource/simple/Simple.vue +58 -58
  312. package/components/common/resource/simple/models/enums.ts +5 -5
  313. package/components/common/resource/utils.ts +33 -33
  314. package/components/common/select/button/ButtonDropdown.vue +100 -100
  315. package/components/common/select/button/models/interfaces.ts +6 -6
  316. package/components/common/select/radio/RadioGroup.vue +108 -108
  317. package/components/common/select/radio/models/interfaces.ts +8 -8
  318. package/components/common/shortcuts/Block.vue +83 -83
  319. package/components/common/shortcuts/Category.vue +40 -40
  320. package/components/common/shortcuts/Shortcuts.vue +44 -44
  321. package/components/common/shortcuts/models/interfaces.ts +10 -10
  322. package/components/common/spiceConsole/Drawer.vue +241 -241
  323. package/components/common/spiceConsole/SpiceConsole.vue +83 -83
  324. package/components/common/spiceConsole/keyboard/Keyboard.vue +402 -402
  325. package/components/common/spiceConsole/keyboard/config/keyboardRows.ts +891 -891
  326. package/components/common/spiceConsole/keyboard/models/interfaces.ts +17 -17
  327. package/components/common/spiceConsole/models/types.ts +1 -1
  328. package/components/common/split/horizontal/Horizontal.vue +306 -306
  329. package/components/common/split/horizontal/models/interfaces.ts +5 -5
  330. package/components/common/split/vertical/Vertical.vue +213 -213
  331. package/components/common/split/vertical/models/interfaces.ts +3 -3
  332. package/components/common/tools/Actions.vue +167 -167
  333. package/components/common/tools/models/interfaces.ts +6 -6
  334. package/components/common/tools/viewSettings/ViewSettings.vue +71 -71
  335. package/components/common/tools/viewSettings/models/interfaces.ts +9 -9
  336. package/components/common/vm/actions/add/Add.vue +687 -947
  337. package/components/common/vm/actions/add/FolderTreeView.vue +83 -83
  338. package/components/common/vm/actions/add/utils.ts +118 -223
  339. package/components/common/vm/actions/clone/models/interfaces.ts +7 -7
  340. package/components/common/vm/actions/common/config/capabilities.ts +339 -339
  341. package/components/common/vm/actions/common/customizeHardware/CustomizeHardware.vue +267 -267
  342. package/components/common/vm/actions/common/customizeHardware/config/navItems.ts +19 -19
  343. package/components/common/vm/actions/common/customizeHardware/models/interfaces.ts +7 -7
  344. package/components/common/vm/actions/common/customizeHardware/virtualHardware/VirtualHardware.vue +681 -681
  345. package/components/common/vm/actions/common/customizeHardware/virtualHardware/browseView/BrowseView.vue +203 -203
  346. package/components/common/vm/actions/common/customizeHardware/virtualHardware/browseView/models/interfaces.ts +8 -8
  347. package/components/common/vm/actions/common/customizeHardware/virtualHardware/bus/Bus.vue +130 -130
  348. package/components/common/vm/actions/common/customizeHardware/virtualHardware/bus/config/options.ts +20 -20
  349. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/CdDvdDrive.vue +247 -247
  350. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/config/fileTypes.ts +9 -9
  351. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/config/options.ts +11 -11
  352. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/media/Media.vue +55 -55
  353. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/models/types.ts +1 -1
  354. package/components/common/vm/actions/common/customizeHardware/virtualHardware/config/binaryOptions.ts +12 -12
  355. package/components/common/vm/actions/common/customizeHardware/virtualHardware/config/dropdownItems.ts +52 -52
  356. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/Cpu.vue +394 -394
  357. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/CpuHotPlug.vue +49 -49
  358. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/CpuModel.vue +220 -220
  359. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/Hv.vue +93 -93
  360. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/Iommu.vue +54 -54
  361. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/MaxCpu.vue +105 -105
  362. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/Pc.vue +54 -54
  363. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/Sa.vue +104 -104
  364. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/config/cpuOptions.ts +19 -19
  365. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/shares/Shares.vue +155 -155
  366. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/shares/config/options.ts +28 -28
  367. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/tooltip/Tooltip.vue +58 -58
  368. package/components/common/vm/actions/common/customizeHardware/virtualHardware/memory/MemoryHotPlug.vue +53 -53
  369. package/components/common/vm/actions/common/customizeHardware/virtualHardware/models/interfaces.ts +125 -125
  370. package/components/common/vm/actions/common/customizeHardware/virtualHardware/models/types.ts +4 -4
  371. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/DiskFile.vue +24 -24
  372. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/Location.vue +171 -171
  373. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/MaximumSize.vue +27 -27
  374. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/NewHardDisk.vue +447 -447
  375. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/cache/Cache.vue +80 -80
  376. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/cache/config/options.ts +7 -7
  377. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/limitIops/LimitIops.vue +151 -151
  378. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/limitIops/config/options.ts +28 -28
  379. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/mode/Mode.vue +87 -87
  380. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/mode/config/options.ts +18 -18
  381. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/provisioning/Provisioning.vue +87 -87
  382. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/provisioning/config/options.ts +15 -15
  383. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/sharing/Sharing.vue +85 -85
  384. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/sharing/config/options.ts +12 -12
  385. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/Location.vue +141 -141
  386. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/NewNetwork.vue +288 -288
  387. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/adapterType/AdapterType.vue +86 -86
  388. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/adapterType/config/options.ts +9 -9
  389. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/macAddress/MacAddress.vue +140 -140
  390. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/macAddress/config/options.ts +11 -11
  391. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/NewPciDevice.vue +157 -157
  392. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/config/options.ts +7 -7
  393. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/directPathIo/DirectPathIo.vue +44 -44
  394. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/dynamicDirectPathIo/DynamicDirectPathIo.vue +49 -49
  395. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/dynamicDirectPathIo/config/options.ts +10 -10
  396. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/note/Note.vue +27 -27
  397. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/nvidiaGrid/NvidiaGrid.vue +41 -41
  398. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/typeSelection/TypeSelection.vue +56 -56
  399. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newUsbController/NewUsbController.vue +77 -77
  400. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newUsbController/config/options.ts +6 -6
  401. package/components/common/vm/actions/common/customizeHardware/virtualHardware/other/InputDevices.vue +21 -21
  402. package/components/common/vm/actions/common/customizeHardware/virtualHardware/other/Other.vue +27 -27
  403. package/components/common/vm/actions/common/customizeHardware/virtualHardware/reservation/config/options.ts +33 -33
  404. package/components/common/vm/actions/common/customizeHardware/virtualHardware/videoCard/Graphics.vue +45 -45
  405. package/components/common/vm/actions/common/customizeHardware/virtualHardware/videoCard/TotalVideoMemory.vue +120 -120
  406. package/components/common/vm/actions/common/customizeHardware/virtualHardware/videoCard/VideoCard.vue +177 -177
  407. package/components/common/vm/actions/common/customizeHardware/virtualHardware/videoCard/config/options.ts +11 -11
  408. package/components/common/vm/actions/common/customizeHardware/virtualHardware/videoCard/model/Model.vue +57 -57
  409. package/components/common/vm/actions/common/customizeHardware/virtualHardware/videoCard/model/config/options.ts +10 -10
  410. package/components/common/vm/actions/common/customizeHardware/virtualHardware/videoCard/numberDisplays/NumberDisplays.vue +82 -82
  411. package/components/common/vm/actions/common/customizeHardware/virtualHardware/videoCard/numberDisplays/config/options.ts +14 -14
  412. package/components/common/vm/actions/common/customizeHardware/vmoptions/Vmoptions.vue +181 -181
  413. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/BootOptions.vue +110 -110
  414. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/Menu.vue +45 -45
  415. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/Secure.vue +45 -45
  416. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/delay/Delay.vue +50 -50
  417. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/delay/config/config.ts +14 -14
  418. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/firmware/Firmware.vue +83 -83
  419. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/firmware/config/config.ts +11 -11
  420. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/order/models/interfaces.ts +8 -8
  421. package/components/common/vm/actions/common/customizeHardware/vmoptions/generalOptions/GeneralOptions.vue +181 -181
  422. package/components/common/vm/actions/common/customizeHardware/vmoptions/models/interfaces.ts +34 -34
  423. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/FileTransfer.vue +51 -51
  424. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/FolderSharing.vue +50 -50
  425. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/PlaybackCompression.vue +51 -51
  426. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/PowerControl.vue +49 -49
  427. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/imgCompression/ImgCompression.vue +84 -84
  428. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/imgCompression/config/config.ts +14 -14
  429. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/jpegCompression/JpegCompression.vue +84 -84
  430. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/jpegCompression/config/config.ts +12 -12
  431. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/keymap/config/config.ts +6 -6
  432. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/mouseMode/MouseMode.vue +52 -52
  433. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/mouseMode/config/config.ts +11 -11
  434. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/password/Password.vue +136 -136
  435. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/password/models/interfaces.ts +5 -5
  436. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/password/utils.ts +12 -12
  437. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/sharePolicy/SharePolicy.vue +52 -52
  438. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/sharePolicy/config/config.ts +11 -11
  439. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/streamingMode/StreamingMode.vue +84 -84
  440. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/streamingMode/config/config.ts +12 -12
  441. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/type/Type.vue +84 -84
  442. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/type/config/config.ts +7 -7
  443. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/usbRedirection/UsbRedirection.vue +56 -56
  444. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/usbRedirection/config/config.ts +14 -14
  445. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/zlibCompression/ZlibCompression.vue +84 -84
  446. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/zlibCompression/config/config.ts +12 -12
  447. package/components/common/vm/actions/common/customizeHardware/vmoptions/tools/Tools.vue +63 -63
  448. package/components/common/vm/actions/common/models/enums.ts +89 -89
  449. package/components/common/vm/actions/common/models/interfaces.ts +139 -139
  450. package/components/common/vm/actions/common/models/types.ts +65 -65
  451. package/components/common/vm/actions/common/readyToComplete/ReadyToComplete.vue +15 -15
  452. package/components/common/vm/actions/common/select/compatibility/Compatibility.vue +151 -151
  453. package/components/common/vm/actions/common/select/computeResource/ComputeResource.spec.ts +479 -479
  454. package/components/common/vm/actions/common/select/computeResource/ComputeResource.vue +170 -170
  455. package/components/common/vm/actions/common/select/computeResource/TreeView.vue +126 -126
  456. package/components/common/vm/actions/common/select/createType/CreateType.vue +61 -61
  457. package/components/common/vm/actions/common/select/createType/config/items.ts +26 -26
  458. package/components/common/vm/actions/common/select/models/interfaces.ts +32 -32
  459. package/components/common/vm/actions/common/select/models/types.ts +46 -46
  460. package/components/common/vm/actions/common/select/name/Name.vue +215 -220
  461. package/components/common/vm/actions/common/select/os/os.vue +221 -221
  462. package/components/common/vm/actions/common/select/storage/Storage.vue +194 -196
  463. package/components/common/vm/actions/common/select/storage/models/types.ts +15 -15
  464. package/components/common/vm/actions/editSettings/EditSettings.vue +316 -316
  465. package/components/common/vm/actions/editSettings/models/types.ts +23 -23
  466. package/components/common/vm/actions/editSettings/utils.ts +45 -45
  467. package/components/common/vm/actions/models/interfaces.ts +6 -6
  468. package/components/common/vm/actions/models/types.ts +11 -11
  469. package/components/common/vm/actions/utils.ts +244 -244
  470. package/components/common/vm/models/interfaces.ts +9 -9
  471. package/components/common/wizards/datastore/add/Add.vue +383 -383
  472. package/components/common/wizards/datastore/add/config/stepItems.ts +160 -160
  473. package/components/common/wizards/datastore/add/local/Local.vue +67 -67
  474. package/components/common/wizards/datastore/add/local/createName/CreateName.vue +159 -159
  475. package/components/common/wizards/datastore/add/local/createName/config/defaultForm.ts +15 -15
  476. package/components/common/wizards/datastore/add/models/interfaces.ts +35 -35
  477. package/components/common/wizards/datastore/add/models/types.ts +14 -14
  478. package/components/common/wizards/datastore/add/nfs/Nfs.vue +94 -94
  479. package/components/common/wizards/datastore/add/nfs/accessibility/Accessibility.vue +95 -95
  480. package/components/common/wizards/datastore/add/nfs/accessibility/config/tabsPannel.ts +24 -24
  481. package/components/common/wizards/datastore/add/nfs/accessibility/models/interfaces.ts +9 -9
  482. package/components/common/wizards/datastore/add/nfs/accessibility/models/types.ts +5 -5
  483. package/components/common/wizards/datastore/add/nfs/accessibility/tablesView/TablesView.vue +141 -141
  484. package/components/common/wizards/datastore/add/nfs/accessibility/tablesView/config/compatibleTable.ts +54 -54
  485. package/components/common/wizards/datastore/add/nfs/accessibility/tablesView/config/hostsTableItems.ts +75 -75
  486. package/components/common/wizards/datastore/add/nfs/accessibility/tablesView/config/incompatibleTable.ts +68 -68
  487. package/components/common/wizards/datastore/add/nfs/accessibility/tablesView/config/tableKeys.ts +15 -15
  488. package/components/common/wizards/datastore/add/nfs/configuration/Configuration.vue +377 -377
  489. package/components/common/wizards/datastore/add/nfs/configuration/config/defaultForm.ts +33 -33
  490. package/components/common/wizards/datastore/add/nfs/configuration/models/interfaces.ts +12 -12
  491. package/components/common/wizards/datastore/add/nfs/configuration/serversList/DeletePopover.vue +97 -97
  492. package/components/common/wizards/datastore/add/nfs/configuration/serversList/ServersList.vue +123 -123
  493. package/components/common/wizards/datastore/add/nfs/configuration/serversList/config/serversListConfig.ts +41 -41
  494. package/components/common/wizards/datastore/add/nfs/configuration/serversList/config/tableKeys.ts +3 -3
  495. package/components/common/wizards/datastore/add/nfs/configuration/serversList/models/interfaces.ts +11 -11
  496. package/components/common/wizards/datastore/add/nfs/configuration/serversList/models/types.ts +1 -1
  497. package/components/common/wizards/datastore/add/nfs/kerberosAuthentication/config/radioOptions.ts +24 -24
  498. package/components/common/wizards/datastore/add/nfs/version/Version.vue +42 -42
  499. package/components/common/wizards/datastore/add/nfs/version/config/versionOptions.ts +20 -20
  500. package/components/common/wizards/datastore/add/readyComplete/ReadyComplete.vue +78 -78
  501. package/components/common/wizards/datastore/add/readyComplete/config/propertiesDetails.ts +165 -165
  502. package/components/common/wizards/datastore/add/readyComplete/models/interfaces.ts +4 -4
  503. package/components/common/wizards/datastore/add/sharedStorm/SharedStorm.vue +85 -85
  504. package/components/common/wizards/datastore/add/sharedStorm/deviceSelection/DeviceSelection.vue +447 -447
  505. package/components/common/wizards/datastore/add/sharedStorm/deviceSelection/config/defaultForm.ts +18 -18
  506. package/components/common/wizards/datastore/add/sharedStorm/deviceSelection/config/selectOptions.ts +14 -14
  507. package/components/common/wizards/datastore/add/sharedStorm/deviceSelection/hostTable/HostTable.vue +131 -131
  508. package/components/common/wizards/datastore/add/sharedStorm/deviceSelection/hostTable/config/hostsTable.ts +87 -87
  509. package/components/common/wizards/datastore/add/sharedStorm/deviceSelection/hostTable/config/tableKeys.ts +11 -11
  510. package/components/common/wizards/datastore/add/sharedStorm/deviceSelection/models/interfaces.ts +55 -55
  511. package/components/common/wizards/datastore/add/sharedStorm/deviceSelection/models/types.ts +14 -14
  512. package/components/common/wizards/datastore/add/sharedStorm/partitionConfiguration/PartitionConfiguration.vue +230 -230
  513. package/components/common/wizards/datastore/add/sharedStorm/partitionConfiguration/config/selectOptions.ts +46 -46
  514. package/components/common/wizards/datastore/add/sharedStorm/partitionConfiguration/graphicTooltip/graphicTooltip.vue +64 -64
  515. package/components/common/wizards/datastore/add/sharedStorm/partitionConfiguration/sizeGraphic/sizeGraphic.vue +225 -225
  516. package/components/common/wizards/datastore/add/sharedStorm/version/Version.vue +39 -39
  517. package/components/common/wizards/datastore/add/sharedStorm/version/config/versionOptions.ts +21 -21
  518. package/components/common/wizards/datastore/add/types/Types.vue +77 -77
  519. package/components/common/wizards/datastore/add/types/config/typeOptions.ts +39 -39
  520. package/components/common/wizards/datastore/add/utils.ts +67 -67
  521. package/components/common/wizards/network/add/Add.vue +874 -874
  522. package/components/common/wizards/network/add/config/index.ts +33 -33
  523. package/components/common/wizards/network/add/config/initialData.ts +62 -62
  524. package/components/common/wizards/network/add/config/portPropertiesStep.ts +31 -31
  525. package/components/common/wizards/network/add/config/selectSwitch.ts +19 -19
  526. package/components/common/wizards/network/add/config/sendData.ts +102 -102
  527. package/components/common/wizards/network/add/config/steps.ts +485 -485
  528. package/components/common/wizards/network/add/mappers/mappers.ts +166 -166
  529. package/components/common/wizards/network/add/modals/SelectNetwork.vue +149 -149
  530. package/components/common/wizards/network/add/modals/SelectStandardSwitch.vue +125 -125
  531. package/components/common/wizards/network/add/modals/SelectSwitch.vue +114 -114
  532. package/components/common/wizards/network/add/models/enums.ts +17 -17
  533. package/components/common/wizards/network/add/models/interfaces.ts +201 -201
  534. package/components/common/wizards/network/add/models/types.ts +2 -2
  535. package/components/common/wizards/network/add/steps/ConnectionSettings.vue +148 -148
  536. package/components/common/wizards/network/add/steps/CreateStandardSwitch.vue +84 -84
  537. package/components/common/wizards/network/add/steps/IpFourSettings.vue +245 -245
  538. package/components/common/wizards/network/add/steps/PhysicalAdapter.vue +13 -13
  539. package/components/common/wizards/network/add/steps/PortProperties.vue +369 -369
  540. package/components/common/wizards/network/add/steps/ReadyComplete.vue +20 -20
  541. package/components/common/wizards/network/add/steps/SelectConnectionType.vue +94 -94
  542. package/components/common/wizards/network/add/steps/SelectedTargetDevice.vue +451 -451
  543. package/components/common/wizards/network/add/utils/index.ts +4 -4
  544. package/components/common/wizards/network/add/validations/common.ts +58 -58
  545. package/components/common/wizards/network/add/validations/connectionSettings.ts +75 -75
  546. package/components/common/wizards/network/add/validations/createStandardSwitch.ts +58 -58
  547. package/components/common/wizards/network/add/validations/ipFourSettings.ts +188 -188
  548. package/components/common/wizards/network/add/validations/networkValidation.ts +73 -73
  549. package/components/common/wizards/network/add/validations/portProperties.ts +87 -87
  550. package/components/common/wizards/network/add/validations/targetDevice.ts +113 -113
  551. package/components/common/wizards/network/add/validations/validations.ts +43 -43
  552. package/components/common/wizards/vm/common/computeResource/TreeView.vue +61 -61
  553. package/components/common/wizards/vm/common/readyComplete/ReadyComplete.vue +15 -15
  554. package/components/common/wizards/vm/common/tooltip/Tooltip.vue +82 -82
  555. package/components/common/wizards/vm/common/validation/compatibility/Compatibility.vue +62 -62
  556. package/components/common/wizards/vm/common/validation/models/enums.ts +5 -5
  557. package/components/common/wizards/vm/migrate/Migrate.vue +270 -270
  558. package/components/common/wizards/vm/migrate/config/constructDataReady.ts +100 -100
  559. package/components/common/wizards/vm/migrate/contentHeading/ContentHeading.vue +106 -106
  560. package/components/common/wizards/vm/migrate/contentHeading/models/interfaces.ts +7 -7
  561. package/components/common/wizards/vm/migrate/models/enums.ts +6 -6
  562. package/components/common/wizards/vm/migrate/models/interfaces.ts +24 -24
  563. package/components/common/wizards/vm/migrate/models/types.ts +5 -5
  564. package/components/common/wizards/vm/migrate/select/computeResource/ComputeResource.vue +219 -219
  565. package/components/common/wizards/vm/migrate/select/computeResource/config/tabsPannel.ts +28 -28
  566. package/components/common/wizards/vm/migrate/select/computeResource/models/enums.ts +6 -6
  567. package/components/common/wizards/vm/migrate/select/computeResource/models/interfaces.ts +30 -30
  568. package/components/common/wizards/vm/migrate/select/computeResource/models/types.ts +12 -12
  569. package/components/common/wizards/vm/migrate/select/computeResource/tableView/TableView.vue +142 -142
  570. package/components/common/wizards/vm/migrate/select/computeResource/tableView/config/clusterTable.ts +114 -114
  571. package/components/common/wizards/vm/migrate/select/computeResource/tableView/config/hostTable.ts +124 -124
  572. package/components/common/wizards/vm/migrate/select/computeResource/tableView/config/resourcePoolTable.ts +115 -115
  573. package/components/common/wizards/vm/migrate/select/computeResource/tableView/config/tableKeys.ts +65 -65
  574. package/components/common/wizards/vm/migrate/select/computeResource/tableView/config/vappsTable.ts +66 -66
  575. package/components/common/wizards/vm/migrate/select/computeResource/tableView/models/interfaces.ts +29 -29
  576. package/components/common/wizards/vm/migrate/select/computeResource/tableView/models/types.ts +60 -60
  577. package/components/common/wizards/vm/migrate/select/network/Network.vue +51 -51
  578. package/components/common/wizards/vm/migrate/select/network/table/disk/Disk.vue +84 -84
  579. package/components/common/wizards/vm/migrate/select/network/table/disk/config/advancedTable.ts +77 -77
  580. package/components/common/wizards/vm/migrate/select/network/table/disk/config/basicTable.ts +71 -71
  581. package/components/common/wizards/vm/migrate/select/network/table/disk/config/tableKeys.ts +10 -10
  582. package/components/common/wizards/vm/migrate/select/network/table/disk/models/interfaces.ts +1 -1
  583. package/components/common/wizards/vm/migrate/select/network/table/disk/models/types.ts +12 -12
  584. package/components/common/wizards/vm/migrate/select/priority/Priority.vue +39 -39
  585. package/components/common/wizards/vm/migrate/select/priority/config/typeOptions.ts +21 -21
  586. package/components/common/wizards/vm/migrate/select/priority/models/types.ts +1 -1
  587. package/components/common/wizards/vm/migrate/select/storage/Storage.vue +202 -202
  588. package/components/common/wizards/vm/migrate/select/storage/config/tabsPannel.ts +18 -18
  589. package/components/common/wizards/vm/migrate/select/storage/configure/batch/Batch.vue +76 -76
  590. package/components/common/wizards/vm/migrate/select/storage/configure/disk/Disk.vue +86 -86
  591. package/components/common/wizards/vm/migrate/select/storage/diskFormat/DiskFormat.vue +68 -68
  592. package/components/common/wizards/vm/migrate/select/storage/diskFormat/config/formatOptions.ts +26 -26
  593. package/components/common/wizards/vm/migrate/select/storage/models/enums.ts +6 -6
  594. package/components/common/wizards/vm/migrate/select/storage/models/interfaces.ts +14 -14
  595. package/components/common/wizards/vm/migrate/select/storage/models/types.ts +9 -9
  596. package/components/common/wizards/vm/migrate/select/storage/policy/Policy.vue +83 -83
  597. package/components/common/wizards/vm/migrate/select/storage/selectedPerDisk/SelectedPerDisk.vue +87 -87
  598. package/components/common/wizards/vm/migrate/select/storage/table/datastore/Datastore.vue +113 -113
  599. package/components/common/wizards/vm/migrate/select/storage/table/datastore/config/config.ts +154 -154
  600. package/components/common/wizards/vm/migrate/select/storage/table/datastore/models/types.ts +15 -15
  601. package/components/common/wizards/vm/migrate/select/storage/table/disk/Disk.vue +84 -84
  602. package/components/common/wizards/vm/migrate/select/storage/table/disk/config/config.ts +123 -123
  603. package/components/common/wizards/vm/migrate/select/storage/table/disk/config/tableKeys.ts +15 -15
  604. package/components/common/wizards/vm/migrate/select/storage/table/disk/models/interfaces.ts +24 -24
  605. package/components/common/wizards/vm/migrate/select/storage/table/disk/models/types.ts +13 -13
  606. package/components/common/wizards/vm/migrate/select/targetServer/config/tabsPannel.ts +18 -18
  607. package/components/common/wizards/vm/migrate/select/targetServer/models/types.ts +1 -1
  608. package/components/common/wizards/vm/migrate/select/targetServer/new/New.vue +287 -287
  609. package/components/common/wizards/vm/migrate/select/targetServer/new/config/defaultForm.ts +33 -33
  610. package/components/common/wizards/vm/migrate/select/targetServer/saved/Saved.vue +27 -27
  611. package/components/common/wizards/vm/migrate/select/targetServer/targetServer.vue +41 -41
  612. package/components/common/wizards/vm/migrate/select/type/Type.vue +38 -38
  613. package/components/common/wizards/vm/migrate/select/type/config/typeOptions.ts +41 -41
  614. package/components/common/wizards/vm/migrate/select/type/models/interfaces.ts +5 -5
  615. package/components/common/wizards/vm/migrate/utils.ts +80 -80
  616. package/components/content/Hint.vue +24 -24
  617. package/components/layout/theHeader/models/enums.ts +9 -9
  618. package/components/models/interfaces.ts +14 -14
  619. package/composables/deepCopy.ts +21 -21
  620. package/composables/useDiff.ts +15 -15
  621. package/composables/useLocalStorage.ts +45 -45
  622. package/composables/useThrottle.ts +32 -32
  623. package/composables/useUniqueId.ts +5 -5
  624. package/config/regExp.ts +13 -13
  625. package/eslint/index.js +15 -15
  626. package/eslint/no-import-type.js +17 -17
  627. package/eslint/no-invalid-type-prefix.js +32 -32
  628. package/models/composables/useMyFetch/interfaces.ts +25 -25
  629. package/models/composables/useMyFetch/types.ts +1 -1
  630. package/models/enums.ts +21 -21
  631. package/models/plugins/date/interfaces.ts +5 -5
  632. package/models/plugins/date/types.ts +1 -1
  633. package/models/plugins/validation/interfaces.ts +21 -21
  634. package/models/plugins/validation/types.ts +1 -1
  635. package/models/store/host/interfaces.ts +38 -38
  636. package/models/store/network/interfaces.ts +13 -13
  637. package/models/store/vm/interfaces.ts +213 -213
  638. package/models/types.ts +15 -15
  639. package/modules/fixContentBuild/index.ts +92 -92
  640. package/modules/fixSpiceConsoleBuild/index.ts +28 -28
  641. package/modules/replaceEnv/index.ts +40 -40
  642. package/nuxt.config.ts +8 -8
  643. package/package.json +41 -41
  644. package/plugins/binary.ts +122 -122
  645. package/plugins/date.ts +179 -179
  646. package/plugins/recursion.ts +230 -230
  647. package/plugins/spice-console/spice.console.ts +18 -18
  648. package/plugins/text.ts +48 -48
  649. package/plugins/validation.ts +172 -172
  650. package/public/spice-console/application/WorkerProcess.js +3350 -3350
  651. package/public/spice-console/application/WorkerProcess_back.js +3144 -3144
  652. package/public/spice-console/application/WorkerProcess_meta.js +3102 -3102
  653. package/public/spice-console/application/WorkerProcess_reverse.js +3214 -3214
  654. package/public/spice-console/application/agent.js +175 -175
  655. package/public/spice-console/application/application.js +641 -641
  656. package/public/spice-console/application/checkActivity.js +50 -50
  657. package/public/spice-console/application/clientgui.js +842 -842
  658. package/public/spice-console/application/clipboard/clipboarddataparser.js +92 -92
  659. package/public/spice-console/application/clipboard/local/localClipboard.js +110 -110
  660. package/public/spice-console/application/clipboard.js +82 -82
  661. package/public/spice-console/application/imagecache.js +81 -81
  662. package/public/spice-console/application/inputmanager.js +270 -270
  663. package/public/spice-console/application/packetfactory.js +202 -202
  664. package/public/spice-console/application/packetfilter.js +103 -103
  665. package/public/spice-console/application/packetprocess.js +75 -75
  666. package/public/spice-console/application/rasteroperation.js +118 -118
  667. package/public/spice-console/application/spiceconnection.js +197 -197
  668. package/public/spice-console/application/stream.js +67 -67
  669. package/public/spice-console/application/virtualmouse.js +109 -109
  670. package/public/spice-console/keymaps/keyevent.js +36 -36
  671. package/public/spice-console/keymaps/keymap.js +229 -229
  672. package/public/spice-console/keymaps/keymapes.js +375 -375
  673. package/public/spice-console/keymaps/keymapesObj.js +316 -316
  674. package/public/spice-console/keymaps/keymapus.js +317 -317
  675. package/public/spice-console/keymaps/scanCodeObjModifier.js +65 -65
  676. package/public/spice-console/keymaps/scanCodeObjProvider.js +60 -60
  677. package/public/spice-console/lib/AsyncConsumer.js +204 -204
  678. package/public/spice-console/lib/AsyncWorker.js +60 -60
  679. package/public/spice-console/lib/CollisionDetector.js +27 -27
  680. package/public/spice-console/lib/DataLogger.js +197 -197
  681. package/public/spice-console/lib/GenericObjectPool.js +152 -152
  682. package/public/spice-console/lib/GlobalPool.js +114 -114
  683. package/public/spice-console/lib/ImageUncompressor.js +138 -138
  684. package/public/spice-console/lib/IntegrationBenchmark.js +64 -64
  685. package/public/spice-console/lib/PacketWorkerIdentifier.js +107 -107
  686. package/public/spice-console/lib/SyncAsyncHandler.js +46 -46
  687. package/public/spice-console/lib/base64.js +298 -298
  688. package/public/spice-console/lib/biginteger.js +1640 -1640
  689. package/public/spice-console/lib/bowser.js +276 -276
  690. package/public/spice-console/lib/decoder/dixie.js +7930 -7930
  691. package/public/spice-console/lib/decoder/jmuxer.js +2815 -2815
  692. package/public/spice-console/lib/displayRouter.js +83 -83
  693. package/public/spice-console/lib/encrypt.js +191 -191
  694. package/public/spice-console/lib/flipper.js +39 -39
  695. package/public/spice-console/lib/graphic.js +1230 -1230
  696. package/public/spice-console/lib/graphicdebug.js +223 -223
  697. package/public/spice-console/lib/images/bitmap.js +194 -194
  698. package/public/spice-console/lib/images/jsquic_family.js +83 -83
  699. package/public/spice-console/lib/images/jsquic_rgba.js +342 -342
  700. package/public/spice-console/lib/images/jsquic_uncompress.js +529 -529
  701. package/public/spice-console/lib/images/lz.js +717 -717
  702. package/public/spice-console/lib/images/png.js +275 -275
  703. package/public/spice-console/lib/jgestures.min.js +43 -43
  704. package/public/spice-console/lib/jquery-2.0.3.js +8829 -8829
  705. package/public/spice-console/lib/jquery-mousewheel.js +83 -83
  706. package/public/spice-console/lib/jquery-visibility.min.js +1 -1
  707. package/public/spice-console/lib/jsbn.js +578 -578
  708. package/public/spice-console/lib/jsbn2.js +675 -675
  709. package/public/spice-console/lib/lodash.4.0.0.min.js +136 -136
  710. package/public/spice-console/lib/modernizr.js +39 -39
  711. package/public/spice-console/lib/pixastic.js +3244 -3244
  712. package/public/spice-console/lib/prettyprint.js +794 -794
  713. package/public/spice-console/lib/prng4.js +64 -64
  714. package/public/spice-console/lib/queue.js +259 -259
  715. package/public/spice-console/lib/rng.js +87 -87
  716. package/public/spice-console/lib/runqueue.js +103 -103
  717. package/public/spice-console/lib/sha1.js +124 -124
  718. package/public/spice-console/lib/stuckkeyshandler.js +122 -122
  719. package/public/spice-console/lib/timelapsedetector.js +62 -62
  720. package/public/spice-console/lib/utils.js +327 -327
  721. package/public/spice-console/lib/virtualjoystick.js +370 -370
  722. package/public/spice-console/network/busconnection.js +195 -195
  723. package/public/spice-console/network/clusternodechooser.js +49 -49
  724. package/public/spice-console/network/connectioncontrol.js +60 -60
  725. package/public/spice-console/network/packetcontroller.js +62 -62
  726. package/public/spice-console/network/packetextractor.js +73 -73
  727. package/public/spice-console/network/packetlinkfactory.js +64 -64
  728. package/public/spice-console/network/packetreassembler.js +77 -77
  729. package/public/spice-console/network/reassemblerfactory.js +39 -39
  730. package/public/spice-console/network/sizedefiner.js +86 -86
  731. package/public/spice-console/network/socket.js +120 -120
  732. package/public/spice-console/network/socketqueue.js +95 -95
  733. package/public/spice-console/network/websocketwrapper.js +75 -75
  734. package/public/spice-console/process/busprocess.js +309 -309
  735. package/public/spice-console/process/cursorprocess.js +110 -110
  736. package/public/spice-console/process/displaypreprocess.js +152 -152
  737. package/public/spice-console/process/displayprocess.js +210 -210
  738. package/public/spice-console/process/inputprocess.js +203 -203
  739. package/public/spice-console/process/mainprocess.js +78 -78
  740. package/public/spice-console/process/playbackprocess.js +233 -233
  741. package/public/spice-console/run.js +180 -180
  742. package/public/spice-console/spiceobjects/generated/protocol.js +537 -537
  743. package/public/spice-console/spiceobjects/spiceobjects.js +3474 -3474
  744. package/public/spice-console/swcanvas/swcanvas.js +82 -82
  745. package/public/spice-console/tools/generate.php +269 -269
  746. package/public/spice-console/tools/generateKeyboardLayout.php +63 -63
  747. package/public/spice-console/tools/generateSpiceObject.php +81 -81
  748. package/tsconfig.json +4 -4
  749. package/utils/base64.ts +34 -34
  750. package/utils/notification.ts +22 -22
  751. package/components/common/vm/actions/addOld/Add.vue +0 -690
  752. package/components/common/vm/actions/addOld/FolderTreeView.vue +0 -83
  753. package/components/common/vm/actions/addOld/utils.ts +0 -118
  754. package/components/common/vm/actions/common/select/name/NameOld.vue +0 -215
  755. package/components/common/vm/actions/common/select/storage/StorageOld.vue +0 -194
@@ -1,947 +1,687 @@
1
- <template>
2
- <div class="add-vm">
3
- <atoms-wizard
4
- show
5
- :steps="wizard.steps"
6
- :selected-scheme="selectedScheme"
7
- :is-loading="wizard.wizardLoader.status"
8
- :loader-messages="wizard.wizardLoader.messages"
9
- :title="localization.newVirtualMachine2"
10
- :was-completed="wasCompleted"
11
- :localization="localization"
12
- @change-steps="onChangeSteps"
13
- @hide="onHideModal"
14
- @submit="onFinish"
15
- >
16
- <template #modalBody="{ selectedStep }">
17
- {{ selectedStep }}
18
-
19
- {{ alertMessages[selectedStep.id] }}
20
-
21
- <common-vm-actions-common-select-create-type
22
- v-show="selectedStep.id === 0"
23
- :import-from-v-m-warev-sphere="props.importFromVMWarevSphere"
24
- />
25
- <common-vm-actions-common-select-name
26
- v-show="selectedStep.id === 1 || selectedStep.id === 2"
27
- :show="selectedStep.id === 1 || selectedStep.id === 2"
28
- :name-form-submit="nameFormSubmit"
29
- :project="props.project"
30
- :data-center="props.dataCenter"
31
- @check-name="emits('check-name', $event)"
32
- />
33
- <!-- <common-vm-actions-common-select-compute-resource-->
34
- <!-- v-if="props.project === 'sphere'"-->
35
- <!-- v-show="selectedStep.id === 3"-->
36
- <!-- v-model="vmForm.computeResource"-->
37
- <!-- :compute-resource-submit="computeResourceSubmit"-->
38
- <!-- :data-center="vmForm.dataCenter"-->
39
- <!-- :compute-resource="props.computeResource"-->
40
- <!-- :compute-resource-tree="props.computeResourceTree"-->
41
- <!-- @submit="changeComputeResourceAndNext"-->
42
- <!-- @get-compute-resource-tree="-->
43
- <!-- emits('get-compute-resource-tree', $event)-->
44
- <!-- "-->
45
- <!-- @show-compute-resource-tree="-->
46
- <!-- emits('show-compute-resource-tree', $event)-->
47
- <!-- "-->
48
- <!-- @select-compute-resource-tree="onSelectComputeResourceTree"-->
49
- <!-- @clear-compute-resource-tree="-->
50
- <!-- emits('clear-compute-resource-tree', $event)-->
51
- <!-- "-->
52
- <!-- />-->
53
- <common-vm-actions-common-select-storage
54
- v-show="selectedStep.id === 4"
55
- :storage-submit="storageSubmit"
56
- :datastore="props.datastore"
57
- :get-datastore-table-func="props.getDatastoreTableFunc"
58
- />
59
- <!-- <common-vm-actions-common-select-compatibility-->
60
- <!-- v-show="selectedStep.id === 5"-->
61
- <!-- :options="compatibility"-->
62
- <!-- :error-validation-fields="props.errorValidationFields"-->
63
- <!-- @change="onChangeCompatibility"-->
64
- <!-- @remove-error-by-title="emits('remove-error-by-title', $event)"-->
65
- <!-- />-->
66
- <!-- <common-vm-actions-common-select-os-->
67
- <!-- v-show="selectedStep.id === 6 || selectedStep.id === 7"-->
68
- <!-- :families-options="guestOsFamilies"-->
69
- <!-- :versions-options="guestOsVersions"-->
70
- <!-- :machine-types-options="machineTypes"-->
71
- <!-- :error-validation-fields="props.errorValidationFields"-->
72
- <!-- @change="onChangeOs"-->
73
- <!-- @remove-error-by-title="emits('remove-error-by-title', $event)"-->
74
- <!-- />-->
75
- <!-- <common-vm-actions-common-customize-hardware-->
76
- <!-- v-show="selectedStep.id === 8"-->
77
- <!-- :vm-name="vmForm.name"-->
78
- <!-- :guest-machine-type="vmForm.guestMachineType"-->
79
- <!-- :guest-os-family="vmForm.guestOsFamily"-->
80
- <!-- :guest-os-version="vmForm.guestOsVersion"-->
81
- <!-- :storage="vmForm.storage"-->
82
- <!-- :hard-disks-for-boot-options="virtualHardwareHardDisksLocal"-->
83
- <!-- :cd-dvd-drives-for-boot-options="virtualHardwareCdDvdDrivesLocal"-->
84
- <!-- :networks-for-boot-options="virtualHardwareNetworksLocal"-->
85
- <!-- :cd-dvd-drives="virtualHardwareCdDvdDrivesLocal"-->
86
- <!-- :customize-hardware-submit="customizeHardwareSubmit"-->
87
- <!-- :max-cpus="maxCpus"-->
88
- <!-- :max-memory="maxMemory"-->
89
- <!-- :cpu-models="cpuModels"-->
90
- <!-- :selected-nav-item="selectedNavItem"-->
91
- <!-- :nodes="props.nodes"-->
92
- <!-- :files="props.files"-->
93
- <!-- :networks-table="props.networksTable"-->
94
- <!-- :error-validation-fields="props.errorValidationFields"-->
95
- <!-- :get-datastore-table-func="props.getDatastoreTableFunc"-->
96
- <!-- :datastore="props.datastore"-->
97
- <!-- :vm-cpu-help-text-second="props.vmCpuHelpTextSecond"-->
98
- <!-- :passthrough-devices="props.passthroughDevices"-->
99
- <!-- @change-boot-order="onChangeBootOrder"-->
100
- <!-- @send-data="onChangeCustomizeHardware"-->
101
- <!-- @get-storage="emits('get-storage', $event)"-->
102
- <!-- @get-folders-or-files="emits('get-folders-or-files', $event)"-->
103
- <!-- @get-active-device-child="emits('get-active-device-child', $event)"-->
104
- <!-- @show-datastore-child="emits('show-datastore-child', $event)"-->
105
- <!-- @remove-error-by-title="emits('remove-error-by-title', $event)"-->
106
- <!-- @get-networks-table="emits('get-networks-table', $event)"-->
107
- <!-- @get-pci-devices="emits('get-pci-devices')"-->
108
- <!-- @next="onNext(true)"-->
109
- <!-- />-->
110
- <!-- <common-vm-actions-common-ready-to-complete-->
111
- <!-- v-if="selectedStep.id === 9"-->
112
- <!-- :ready-complete-table-info="props.readyCompleteTableInfo"-->
113
- <!-- />-->
114
-
115
- <!-- <span v-if="selectedStep.id > 5" class="vm-hardware-version">{{-->
116
- <!-- compatibilityInfo-->
117
- <!-- }}</span>-->
118
- </template>
119
- </atoms-wizard>
120
- <!-- <atoms-modal-by-steps-->
121
- <!-- test-id="add-vm-wizard"-->
122
- <!-- :show="true"-->
123
- <!-- :title="localization.newVirtualMachine2"-->
124
- <!-- :step-items="stepItems"-->
125
- <!-- :step-position="stepPosition"-->
126
- <!-- :loading="loading"-->
127
- <!-- @change-step="onChangeStep"-->
128
- <!-- @hide="onHideModal"-->
129
- <!-- >-->
130
- <!-- <template #modalBody>-->
131
- <!-- <div class="add-vm-context">-->
132
- <!-- <div class="context-title-wrap">-->
133
- <!-- <p>{{ stepSubTitle }}</p>-->
134
- <!-- </div>-->
135
-
136
- <!-- <common-vm-actions-common-select-create-type-->
137
- <!-- v-show="stepPosition === 0"-->
138
- <!-- :import-from-v-m-warev-sphere="props.importFromVMWarevSphere"-->
139
- <!-- @next="onNext"-->
140
- <!-- />-->
141
- <!-- <common-vm-actions-common-select-name-->
142
- <!-- v-show="stepPosition === 1"-->
143
- <!-- :show="stepPosition === 1"-->
144
- <!-- :name-form-submit="nameFormSubmit"-->
145
- <!-- :project="props.project"-->
146
- <!-- :data-center="props.dataCenter"-->
147
- <!-- @submit="onChangeNameAndNext(...$event)"-->
148
- <!-- @check-name="emits('check-name', $event)"-->
149
- <!-- @loading="loading = $event"-->
150
- <!-- />-->
151
- <!-- <common-vm-actions-common-select-compute-resource-->
152
- <!-- v-if="props.project === 'sphere'"-->
153
- <!-- v-show="stepPosition === 2"-->
154
- <!-- v-model="vmForm.computeResource"-->
155
- <!-- :compute-resource-submit="computeResourceSubmit"-->
156
- <!-- :data-center="vmForm.dataCenter"-->
157
- <!-- :compute-resource="props.computeResource"-->
158
- <!-- :compute-resource-tree="props.computeResourceTree"-->
159
- <!-- @submit="changeComputeResourceAndNext"-->
160
- <!-- @get-compute-resource-tree="-->
161
- <!-- emits('get-compute-resource-tree', $event)-->
162
- <!-- "-->
163
- <!-- @show-compute-resource-tree="-->
164
- <!-- emits('show-compute-resource-tree', $event)-->
165
- <!-- "-->
166
- <!-- @select-compute-resource-tree="onSelectComputeResourceTree"-->
167
- <!-- @clear-compute-resource-tree="-->
168
- <!-- emits('clear-compute-resource-tree', $event)-->
169
- <!-- "-->
170
- <!-- />-->
171
- <!-- <common-vm-actions-common-select-storage-->
172
- <!-- v-show="-->
173
- <!-- props.project === 'sphere'-->
174
- <!-- ? stepPosition === 3-->
175
- <!-- : stepPosition === 2-->
176
- <!-- "-->
177
- <!-- :storage-submit="storageSubmit"-->
178
- <!-- :datastore="props.datastore"-->
179
- <!-- :get-datastore-table-func="props.getDatastoreTableFunc"-->
180
- <!-- @submit="onChangeStorageAndNext"-->
181
- <!-- />-->
182
- <!-- <common-vm-actions-common-select-compatibility-->
183
- <!-- v-show="-->
184
- <!-- props.project === 'sphere'-->
185
- <!-- ? stepPosition === 4-->
186
- <!-- : stepPosition === 3-->
187
- <!-- "-->
188
- <!-- :options="compatibility"-->
189
- <!-- :error-validation-fields="props.errorValidationFields"-->
190
- <!-- @change="onChangeCompatibility"-->
191
- <!-- @remove-error-by-title="emits('remove-error-by-title', $event)"-->
192
- <!-- />-->
193
- <!-- <common-vm-actions-common-select-os-->
194
- <!-- v-show="-->
195
- <!-- props.project === 'sphere'-->
196
- <!-- ? stepPosition === 5-->
197
- <!-- : stepPosition === 4-->
198
- <!-- "-->
199
- <!-- :families-options="guestOsFamilies"-->
200
- <!-- :versions-options="guestOsVersions"-->
201
- <!-- :machine-types-options="machineTypes"-->
202
- <!-- :error-validation-fields="props.errorValidationFields"-->
203
- <!-- @change="onChangeOs"-->
204
- <!-- @remove-error-by-title="emits('remove-error-by-title', $event)"-->
205
- <!-- />-->
206
- <!-- <common-vm-actions-common-customize-hardware-->
207
- <!-- v-show="-->
208
- <!-- props.project === 'sphere'-->
209
- <!-- ? stepPosition === 6-->
210
- <!-- : stepPosition === 5-->
211
- <!-- "-->
212
- <!-- :vm-name="vmForm.name"-->
213
- <!-- :guest-machine-type="vmForm.guestMachineType"-->
214
- <!-- :guest-os-family="vmForm.guestOsFamily"-->
215
- <!-- :guest-os-version="vmForm.guestOsVersion"-->
216
- <!-- :storage="vmForm.storage"-->
217
- <!-- :hard-disks-for-boot-options="virtualHardwareHardDisksLocal"-->
218
- <!-- :cd-dvd-drives-for-boot-options="virtualHardwareCdDvdDrivesLocal"-->
219
- <!-- :networks-for-boot-options="virtualHardwareNetworksLocal"-->
220
- <!-- :cd-dvd-drives="virtualHardwareCdDvdDrivesLocal"-->
221
- <!-- :customize-hardware-submit="customizeHardwareSubmit"-->
222
- <!-- :max-cpus="maxCpus"-->
223
- <!-- :max-memory="maxMemory"-->
224
- <!-- :cpu-models="cpuModels"-->
225
- <!-- :selected-nav-item="selectedNavItem"-->
226
- <!-- :nodes="props.nodes"-->
227
- <!-- :files="props.files"-->
228
- <!-- :networks-table="props.networksTable"-->
229
- <!-- :error-validation-fields="props.errorValidationFields"-->
230
- <!-- :get-datastore-table-func="props.getDatastoreTableFunc"-->
231
- <!-- :datastore="props.datastore"-->
232
- <!-- :vm-cpu-help-text-second="props.vmCpuHelpTextSecond"-->
233
- <!-- :passthrough-devices="props.passthroughDevices"-->
234
- <!-- @change-boot-order="onChangeBootOrder"-->
235
- <!-- @send-data="onChangeCustomizeHardware"-->
236
- <!-- @get-storage="emits('get-storage', $event)"-->
237
- <!-- @get-folders-or-files="emits('get-folders-or-files', $event)"-->
238
- <!-- @get-active-device-child="emits('get-active-device-child', $event)"-->
239
- <!-- @show-datastore-child="emits('show-datastore-child', $event)"-->
240
- <!-- @remove-error-by-title="emits('remove-error-by-title', $event)"-->
241
- <!-- @get-networks-table="emits('get-networks-table', $event)"-->
242
- <!-- @get-pci-devices="emits('get-pci-devices')"-->
243
- <!-- @next="onNext(true)"-->
244
- <!-- />-->
245
- <!-- <common-vm-actions-common-ready-to-complete-->
246
- <!-- v-if="-->
247
- <!-- props.project === 'sphere'-->
248
- <!-- ? stepPosition === 7-->
249
- <!-- : stepPosition === 6-->
250
- <!-- "-->
251
- <!-- :ready-complete-table-info="props.readyCompleteTableInfo"-->
252
- <!-- />-->
253
-
254
- <!-- <span-->
255
- <!-- v-if="-->
256
- <!-- props.project === 'sphere' ? stepPosition > 4 : stepPosition > 3-->
257
- <!-- "-->
258
- <!-- class="vm-hardware-version"-->
259
- <!-- >{{ compatibilityInfo }}</span-->
260
- <!-- >-->
261
- <!-- </div>-->
262
- <!-- </template>-->
263
-
264
- <!-- <template #modalFooter>-->
265
- <!-- <div class="flex-align-center flex-space-between w-100">-->
266
- <!-- <div class="power-on-by-default-wrap">-->
267
- <!-- <template-->
268
- <!-- v-if="-->
269
- <!-- props.project === 'sphere'-->
270
- <!-- ? stepPosition === 7-->
271
- <!-- : stepPosition === 6-->
272
- <!-- "-->
273
- <!-- >-->
274
- <!-- <input-->
275
- <!-- id="power-on-by-default"-->
276
- <!-- v-model="isPowerOnByDefault"-->
277
- <!-- type="checkbox"-->
278
- <!-- />-->
279
- <!-- <label for="power-on-by-default" class="label-text-normal">{{-->
280
- <!-- localization.powerOnByDefault-->
281
- <!-- }}</label>-->
282
- <!-- </template>-->
283
- <!-- </div>-->
284
- <!-- <div class="flex-align-center">-->
285
- <!-- <button-->
286
- <!-- id="vm-wizard-cancel-button"-->
287
- <!-- class="btn btn-link"-->
288
- <!-- @click="onHideModal"-->
289
- <!-- >-->
290
- <!-- {{ localization.cancel }}-->
291
- <!-- </button>-->
292
- <!-- <button-->
293
- <!-- v-show="stepPosition > 0"-->
294
- <!-- id="vm-wizard-back-button"-->
295
- <!-- class="btn btn-outline"-->
296
- <!-- @click="onBack"-->
297
- <!-- >-->
298
- <!-- {{ localization.back }}-->
299
- <!-- </button>-->
300
- <!-- <button-->
301
- <!-- v-if="stepPosition === stepItems.length - 1"-->
302
- <!-- id="vm-wizard-finish-button"-->
303
- <!-- class="btn btn-success"-->
304
- <!-- @click="onFinish"-->
305
- <!-- >-->
306
- <!-- {{ localization.finish }}-->
307
- <!-- </button>-->
308
- <!-- <button-->
309
- <!-- v-else-->
310
- <!-- id="vm-wizard-next-button"-->
311
- <!-- class="btn btn-primary"-->
312
- <!-- @click="onNext(false)"-->
313
- <!-- >-->
314
- <!-- {{ localization.next }}-->
315
- <!-- </button>-->
316
- <!-- </div>-->
317
- <!-- </div>-->
318
- <!-- </template>-->
319
- <!-- </atoms-modal-by-steps>-->
320
- </div>
321
- </template>
322
-
323
- <script setup lang="ts">
324
- import type { UI_I_Localization } from '~/models/interfaces'
325
- import type { UI_T_Project } from '~/models/types'
326
- import type { UI_I_FileTreeNode } from '~/components/models/interfaces'
327
- import type { UI_I_NetworkTableItem } from '~/models/store/network/interfaces'
328
- import type {
329
- UI_I_DatastoreTableItem,
330
- UI_I_FolderOrFileTreePayload,
331
- } from '~/models/store/storage/interfaces'
332
- import type {
333
- API_UI_I_Error,
334
- UI_I_ErrorValidationField,
335
- UI_I_TablePayload,
336
- } from '~/models/store/interfaces'
337
- import type { UI_I_TableInfoItem } from '~/components/atoms/table/info/models/interfaces'
338
- import type {
339
- UI_T_AddVmFinishFunc,
340
- UI_T_SelectedNavItem,
341
- } from '~/components/common/vm/actions/common/models/types'
342
- import type { UI_I_ConfigurePciDevicesTable } from '~/models/store/host/interfaces'
343
- import type { UI_I_TreeNode } from '~/components/common/recursionTree/models/interfaces'
344
- import type {
345
- UI_I_ValidationReturn,
346
- UI_I_WizardStep,
347
- } from '~/components/atoms/wizard/models/interfaces'
348
- import Wizard from '~/components/atoms/wizard/utils/utils'
349
- import { wizardSteps } from '~/components/common/vm/actions/add/utils'
350
-
351
- const localization = computed<UI_I_Localization>(() => useLocal())
352
-
353
- const wizard: Wizard = new Wizard(wizardSteps(localization.value), [
354
- [0, 1, 4, 5, 6, 8, 9], // Procurator
355
- [0, 2, 3, 4, 5, 7, 8, 9], // Sphere
356
- ])
357
- // Procurator
358
- // wizard.selectedScheme = [0, 1, 4, 5, 6, 8, 9]
359
- // Sphere
360
- const wasCompleted = computed<boolean>(() => wizard.wasCompleted())
361
- const selectedScheme = computed<number[]>(() => wizard.selectedScheme.value)
362
- const alertMessages = computed<string[][]>(() => wizard.alertMessages.value)
363
-
364
- const onChangeSteps = async (value: UI_I_WizardStep[]): Promise<void> => {
365
- // wizard.isLastStep()
366
- // ? wizard.changeSteps(value, finalValidationFunc)
367
- // : wizard.changeSteps(value, validationFunc)
368
- wizard.changeSteps(value, validationFunc)
369
- }
370
- const validationFunc = async (
371
- value: UI_I_WizardStep[],
372
- currentStep: UI_I_WizardStep,
373
- nextStep: UI_I_WizardStep
374
- ): Promise<UI_I_ValidationReturn> => {
375
- let stepHasError = false
376
- let stepShouldStop = {
377
- ifOnCurrentStep: false,
378
- ifFromAnyStep: false,
379
- stoppageStepId: -1,
380
- }
381
-
382
- wizard.setLoader(true)
383
- if (
384
- wizard.isValidateForStep(1, currentStep.id, nextStep.id) ||
385
- wizard.isValidateForStep(2, currentStep.id, nextStep.id)
386
- ) {
387
- let nameValidation: any = {}
388
-
389
- nameValidation = await checkName(value)
390
- console.log(nameValidation, 111)
391
-
392
- value = nameValidation.value
393
- stepHasError = stepHasError || nameValidation.stepHasError
394
- if (stepHasError) stepShouldStop.stoppageStepId = 1
395
- } else if (wizard.isValidateForStep(4, currentStep.id, nextStep.id)) {
396
- let storageValidation: any = {}
397
-
398
- storageValidation = await checkStorage(value)
399
- console.log(storageValidation, 222)
400
-
401
- value = storageValidation.value
402
-
403
- stepShouldStop = storageValidation.stepShouldStop
404
-
405
- stepHasError = stepHasError || storageValidation.stepHasError
406
- if (stepHasError) stepShouldStop.stoppageStepId = 4
407
- }
408
- wizard.setLoader(false)
409
-
410
- console.log(777, {
411
- newValue: value,
412
- stepHasError,
413
- stepShouldStop,
414
- })
415
- return {
416
- newValue: value,
417
- stepHasError,
418
- stepShouldStop,
419
- }
420
- }
421
- const checkName = async (
422
- value: UI_I_WizardStep[],
423
- ): Promise<any> => {
424
- let stepHasError = false
425
-
426
- return new Promise((resolve) => {
427
- nameFormSubmit.value = (isValid: boolean) => {
428
- if (!isValid) {
429
- stepHasError = wizard.setValidation(1, 'name', {
430
- fieldMessage: '',
431
- alertMessage: '',
432
- })
433
- }
434
-
435
- resolve({
436
- value,
437
- stepHasError,
438
- })
439
- }
440
- })
441
- }
442
- const checkStorage = async (
443
- value: UI_I_WizardStep[],
444
- ): Promise<any> => {
445
- let stepHasError = false
446
-
447
- return new Promise((resolve) => {
448
- storageSubmit.value = (isValid: boolean) => {
449
- if (!isValid) {
450
- stepHasError = wizard.setValidation(4, 'storage', {
451
- fieldMessage: '',
452
- alertMessage: '',
453
- })
454
- }
455
-
456
- resolve({
457
- newValue: value,
458
- stepHasError,
459
- })
460
- }
461
- })
462
- }
463
-
464
- // import { UI_I_DatastoreTableItem } from '~/models/store/storage/interfaces'
465
- // import { UI_I_NetworkTableItem } from '~/models/store/network/interfaces'
466
- // import { API_UI_I_Error, UI_I_TablePayload } from '~/models/store/interfaces'
467
- // import { UI_I_FolderOrFileTreePayload } from '~/models/store/storage/interfaces'
468
- // import { UI_I_FileTreeNode } from '~/components/models/interfaces'
469
- // import { UI_I_Localization, UI_I_ArbitraryObject } from '~/models/interfaces'
470
- // import {
471
- // UI_I_VmForm,
472
- // UI_I_VmFormCash,
473
- // } from '~/components/common/vm/actions/common/models/interfaces'
474
- // import { UI_I_SendDataCustomizeHardware } from '~/components/common/vm/actions/common/customizeHardware/models/interfaces'
475
- // import { UI_I_ErrorValidationField } from '~/models/store/interfaces'
476
- // import { UI_I_OsChange } from '~/components/common/vm/actions/common/select/models/interfaces'
477
- // import {
478
- // UI_I_SendDataCpu,
479
- // UI_I_SendDataMemory,
480
- // UI_I_SendDataNewCdDvdDrive,
481
- // UI_I_SendDataNewHardDisk,
482
- // UI_I_SendDataNewNetwork,
483
- // } from '~/components/common/vm/actions/common/customizeHardware/virtualHardware/models/interfaces'
484
- // import {
485
- // UI_T_AddVmFinishFunc,
486
- // UI_T_SelectedNavItem,
487
- // } from '~/components/common/vm/actions/common/models/types'
488
- // import {
489
- // UI_I_OptionItem,
490
- // UI_I_VerticalStepItem,
491
- // } from '~/components/atoms/models/interfaces'
492
- // import { UI_I_TableInfoItem } from '~/components/atoms/table/info/models/interfaces'
493
- // import { UI_I_ConfigurePciDevicesTable } from '~/models/store/host/interfaces'
494
- // import { UI_T_ChangeBootOrder } from '~/components/common/vm/actions/models/types'
495
- // import { UI_T_Project } from '~/models/types'
496
- // import { UI_I_TreeNode } from '~/components/common/recursionTree/models/interfaces'
497
- // import { capabilities } from '~/components/common/vm/actions/common/config/capabilities'
498
- // import {
499
- // stepItemsFunc,
500
- // subTitleFunc,
501
- // } from '~/components/common/vm/actions/add/utils'
502
- //
503
- const props = defineProps<{
504
- project: UI_T_Project
505
- nodes: UI_I_FileTreeNode[]
506
- files: UI_I_FileTreeNode[]
507
- networksTable: UI_I_NetworkTableItem[]
508
- datastore: UI_I_DatastoreTableItem[]
509
- errorValidationFields: UI_I_ErrorValidationField[]
510
- readyCompleteTableInfo: UI_I_TableInfoItem[]
511
- vmCpuHelpTextSecond: string
512
- importFromVMWarevSphere: string
513
- finishFunc: UI_T_AddVmFinishFunc
514
- getDatastoreTableFunc: (payload: UI_I_TablePayload) => Promise<void>
515
- validateSendDataFunc: UI_T_AddVmFinishFunc<
516
- [UI_T_SelectedNavItem, null | number] | null
517
- >
518
- passthroughDevices: UI_I_ConfigurePciDevicesTable | null
519
- vmNameInWizard: string
520
- dataCenter?: UI_I_TreeNode // для сферы
521
- computeResource?: UI_I_TreeNode // для сферы
522
- computeResourceTree?: UI_I_TreeNode[] // для сферы
523
- }>()
524
- //
525
- const emits = defineEmits<{
526
- (event: 'check-name', value: [string, (error: API_UI_I_Error) => void]): void
527
- (event: 'get-storage', value: UI_I_TablePayload): void
528
- (event: 'get-folders-or-files', value: UI_I_FolderOrFileTreePayload): void
529
- (event: 'get-active-device-child', value: UI_I_FileTreeNode): void
530
- (event: 'show-datastore-child', value: UI_I_FileTreeNode): void
531
- (event: 'remove-error-by-title', value: string): void
532
- (event: 'get-networks-table', value: UI_I_TablePayload): void
533
- (event: 'get-pci-devices'): void
534
- (event: 'hide'): void
535
- (
536
- event: 'get-compute-resource-tree',
537
- value: { id: string | number; cb: () => void }
538
- ): void // для сферы
539
- (event: 'show-compute-resource-tree', value: UI_I_TreeNode): void // для сферы
540
- (event: 'select-compute-resource-tree', value: UI_I_TreeNode): void // для сферы
541
- (event: 'clear-compute-resource-tree'): void // для сферы
542
- }>()
543
- //
544
- // const { $recursion } = useNuxtApp()
545
- //
546
- // const localization = computed<UI_I_Localization>(() => useLocal())
547
- //
548
- // const stepPosition = ref<number>(0)
549
- // watch(stepPosition, (newValue) => {
550
- // if (props.project === 'sphere' ? newValue === 7 : newValue === 6)
551
- // validateSendData()
552
- // })
553
- // const stepItems = ref<UI_I_VerticalStepItem[]>([])
554
- // stepItems.value = stepItemsFunc(localization.value, props.project)
555
- //
556
- // const subTitle: string[] = subTitleFunc(localization.value, props.project)
557
- // const stepSubTitle = computed<string>(() => subTitle[stepPosition.value])
558
- //
559
- // const storageIdCash = ref<string | null>(null)
560
- // const vmForm = ref<UI_I_VmForm>({
561
- // name: '',
562
- // compatibility: '',
563
- // guestMachineType: null,
564
- // guestOsFamily: null,
565
- // guestOsVersion: null,
566
- // computeResource: null,
567
- // storage: null,
568
- // locationPath: '',
569
- // dataCenter: null,
570
- // })
571
- // const vmFormCash = ref<UI_I_VmFormCash>({
572
- // dataCenterId: null,
573
- // computeResourceTypeAndId: null,
574
- // })
575
- //
576
- // const isPowerOnByDefault = ref<boolean>(true)
577
- //
578
- // const onChangeNameAndNext = (name: string, node: UI_I_TreeNode): void => {
579
- // const hasChanges = vmFormCash.value.dataCenterId !== node?.id
580
- // if (hasChanges) checkLocalChangeAndChangeStepStatus()
581
- //
582
- // vmForm.value.name = name
583
- // if (props.project === 'sphere') {
584
- // vmForm.value.locationPath = $recursion.createAbsolutePathRecursion(
585
- // node,
586
- // 'id',
587
- // 'parent'
588
- // )
589
- // vmForm.value.dataCenter = $recursion.findParentByValue(
590
- // node,
591
- // 'datacenter',
592
- // 'type',
593
- // 'parent'
594
- // )
595
- // vmFormCash.value.dataCenterId = vmForm.value.dataCenter?.id || null
596
- // }
597
- // onNext(true)
598
- // }
599
- // // Для сферы
600
- // const computeResourcePath = ref<string>('')
601
- // const onSelectComputeResourceTree = (node: UI_I_TreeNode): void => {
602
- // emits('select-compute-resource-tree', node)
603
- // computeResourcePath.value = $recursion.createAbsolutePathRecursion(
604
- // node,
605
- // 'id',
606
- // 'parent'
607
- // )
608
- // }
609
- // const changeComputeResourceAndNext = (node: UI_I_TreeNode): void => {
610
- // const hasChanges =
611
- // `${node.type}${node.id}` !== vmFormCash.value.computeResourceTypeAndId
612
- // if (hasChanges) checkLocalChangeAndChangeStepStatus()
613
- //
614
- // vmForm.value.computeResource = node
615
- // // const type = node.type.toUpperCase()
616
- // // schedRequirementsTemplate.value = `sched_requirements="(${type}_ID=${node.id})"\\`
617
- // vmFormCash.value.computeResourceTypeAndId = `${node.type}${node.id}` || null
618
- //
619
- // onNext(true)
620
- // }
621
- // const onChangeStorageAndNext = (
622
- // storage: UI_I_DatastoreTableItem | null
623
- // ): void => {
624
- // if (!storage) return
625
- //
626
- // const hasChanges = storage.id !== storageIdCash.value
627
- // if (hasChanges) checkLocalChangeAndChangeStepStatus()
628
- //
629
- // vmForm.value.storage = storage
630
- // storageIdCash.value = storage.id
631
- //
632
- // onNext(true)
633
- // }
634
- // const compatibilityInfo = ref<string>('')
635
- // const onChangeCompatibility = (compatibility: UI_I_OptionItem): void => {
636
- // vmForm.value.compatibility = compatibility.value
637
- //
638
- // const version = compatibility.value.split('-')[1]
639
- // compatibilityInfo.value = `${localization.value.compatibility}: ${compatibility.text} (${localization.value.vmVersion} ${version})`
640
- // }
641
- // const onChangeOs = (data: UI_I_OsChange): void => {
642
- // vmForm.value.guestMachineType = data.selectedMachineType
643
- // vmForm.value.guestOsFamily = data.selectedOS
644
- // vmForm.value.guestOsVersion = data.selectedVersion
645
- // }
646
- // const customizeHardware = ref<UI_I_SendDataCustomizeHardware | null>(null)
647
- // const onChangeCustomizeHardware = (
648
- // data: UI_I_SendDataCustomizeHardware
649
- // ): void => {
650
- // customizeHardware.value = data
651
- // }
652
- //
653
- // const virtualHardwareHardDisksLocal = computed<
654
- // UI_I_SendDataNewHardDisk[] | null
655
- // >(() => customizeHardware.value?.virtualHardware?.hardDisks || null)
656
- // const virtualHardwareNetworksLocal = computed<UI_I_SendDataNewNetwork[] | null>(
657
- // () => customizeHardware.value?.virtualHardware?.networks || null
658
- // )
659
- // const virtualHardwareCdDvdDrivesLocal = computed<
660
- // UI_I_SendDataNewCdDvdDrive[] | null
661
- // >(() => customizeHardware.value?.virtualHardware?.cdDvdDrives || null)
662
- //
663
- // const virtualHardwareCpu = computed<UI_I_SendDataCpu | null>(
664
- // () => customizeHardware.value?.virtualHardware?.cpu || null
665
- // )
666
- // const virtualHardwareMemory = computed<UI_I_SendDataMemory | null>(
667
- // () => customizeHardware.value?.virtualHardware?.memory || null
668
- // )
669
- // const virtualHardwareHardDisks = ref<UI_I_SendDataNewHardDisk[] | null>(null)
670
- // const virtualHardwareCdDvdDrives = ref<UI_I_SendDataNewCdDvdDrive[] | null>(
671
- // null
672
- // )
673
- // const virtualHardwareNetworks = ref<UI_I_SendDataNewNetwork[] | null>(null)
674
- // const onChangeBootOrder = (data: UI_T_ChangeBootOrder): void => {
675
- // virtualHardwareHardDisks.value = data[0]
676
- // virtualHardwareCdDvdDrives.value = data[1]
677
- // virtualHardwareNetworks.value = data[2]
678
- // }
679
- //
680
- // watch(
681
- // () => props.vmNameInWizard,
682
- // (newValue) => {
683
- // vmForm.value.name = newValue
684
- // }
685
- // )
686
- //
687
- // const loading = ref<boolean>(false)
688
- // const validateSendData = (): void => {
689
- // loading.value = true
690
- // props
691
- // .validateSendDataFunc(
692
- // vmForm.value,
693
- // virtualHardwareCpu.value,
694
- // virtualHardwareMemory.value,
695
- // customizeHardware.value,
696
- // virtualHardwareNetworks.value,
697
- // virtualHardwareHardDisks.value,
698
- // virtualHardwareCdDvdDrives.value,
699
- // isPowerOnByDefault.value,
700
- // localization.value,
701
- // vmForm.value.locationPath, // для сферы
702
- // computeResourcePath.value // для сферы
703
- // )
704
- // .then((data) => {
705
- // loading.value = false
706
- // if (!data) return
707
- //
708
- // selectedNavItem.value = data[0]
709
- // data[1] !== null && (stepPosition.value = data[1])
710
- // })
711
- // }
712
- const onFinish = (): void => {
713
- // loading.value = true
714
- // props
715
- // .finishFunc(
716
- // vmForm.value,
717
- // virtualHardwareCpu.value,
718
- // virtualHardwareMemory.value,
719
- // customizeHardware.value,
720
- // virtualHardwareNetworks.value,
721
- // virtualHardwareHardDisks.value,
722
- // virtualHardwareCdDvdDrives.value,
723
- // isPowerOnByDefault.value,
724
- // localization.value,
725
- // vmForm.value.locationPath, // для сферы
726
- // computeResourcePath.value, // для сферы
727
- // false
728
- // )
729
- // .then(() => {
730
- // onHideModal()
731
- // loading.value = false
732
- // })
733
- }
734
- //
735
- // const selectedNavItem = ref<UI_T_SelectedNavItem>(0)
736
- //
737
- const nameFormSubmit = ref<null | Function>(null)
738
- // const computeResourceSubmit = ref<number>(0)
739
- const storageSubmit = ref<null | Function>(null)
740
- // const customizeHardwareSubmit = ref<number>(0)
741
- // const onNext = (force = false): void => {
742
- // const isValid = checkSubmit(force)
743
- // if (!isValid) {
744
- // return
745
- // }
746
- //
747
- // const isDisabled = stepItems.value[cashStep]?.disabled
748
- // if (cashStep !== -1 && !isDisabled) {
749
- // stepPosition.value = cashStep
750
- // cashStep = -1
751
- // return
752
- // }
753
- //
754
- // stepItems.value[stepPosition.value].complete = true
755
- // stepItems.value[stepPosition.value + 1].disabled = false
756
- // stepPosition.value++
757
- // }
758
- // const checkLocalChangeAndChangeStepStatus = (): void => {
759
- // stepItems.value = stepItems.value.map((step, index) => {
760
- // if (index > stepPosition.value) {
761
- // step.complete = false
762
- // step.disabled = index > stepPosition.value + 1
763
- // }
764
- //
765
- // return step
766
- // })
767
- // }
768
- //
769
- // const checkSubmit = (force = false): boolean => {
770
- // if (stepPosition.value === 1 && !force) {
771
- // nameFormSubmit.value++
772
- // return false
773
- // }
774
- // if (props.project === 'sphere' && stepPosition.value === 2 && !force) {
775
- // computeResourceSubmit.value++
776
- // return false
777
- // }
778
- // if (
779
- // (props.project === 'sphere'
780
- // ? stepPosition.value === 3
781
- // : stepPosition.value === 2) &&
782
- // !force
783
- // ) {
784
- // storageSubmit.value++
785
- // return false
786
- // }
787
- // if (
788
- // (props.project === 'sphere'
789
- // ? stepPosition.value === 6
790
- // : stepPosition.value === 5) &&
791
- // !force
792
- // ) {
793
- // customizeHardwareSubmit.value++
794
- // return false
795
- // }
796
- // return true
797
- // }
798
- // const checkSubmitByManual = (step: number): boolean => {
799
- // if (stepPosition.value === 1) {
800
- // nameFormSubmit.value++
801
- // return false
802
- // }
803
- // if (
804
- // props.project === 'sphere'
805
- // ? stepPosition.value === 3
806
- // : stepPosition.value === 2
807
- // ) {
808
- // storageSubmit.value++
809
- // return false
810
- // }
811
- // if (props.project === 'sphere' ? step === 8 : step === 7) {
812
- // customizeHardwareSubmit.value++
813
- // return false
814
- // }
815
- // return true
816
- // }
817
- // const onBack = (): void => {
818
- // stepPosition.value--
819
- // }
820
- // let cashStep = -1
821
- // const onChangeStep = (key: number): void => {
822
- // const isValid = checkSubmitByManual(key)
823
- // if (!isValid) {
824
- // cashStep = key
825
- // return
826
- // }
827
- //
828
- // stepPosition.value = key
829
- // }
830
- //
831
- // const compatibility = ref<UI_I_OptionItem[]>(capabilities.compatibility)
832
- // const guestOsFamilies = ref<UI_I_OptionItem[]>(capabilities.guestOsFamilies)
833
- // const guestOsVersions = ref<UI_I_ArbitraryObject<UI_I_OptionItem[]>>(
834
- // capabilities.guestOsVersions
835
- // )
836
- // const machineTypes = ref<UI_I_OptionItem[]>(capabilities.machineTypes)
837
- // const cpuModels = ref<UI_I_OptionItem[]>(capabilities.cpuModels)
838
- // const maxCpus = ref<number>(capabilities.maxCpus)
839
- // const maxMemory = ref<number>(capabilities.maxMemory)
840
- //
841
- const onHideModal = (): void => {
842
- emits('hide')
843
- }
844
- </script>
845
-
846
- <style scoped lang="scss">
847
- :deep(.has-solid.close-icon.clr-icon) {
848
- width: 20px;
849
- top: 0;
850
- }
851
- .add-vm-context {
852
- padding: 16px 15px 10px 10px;
853
- height: 100%;
854
- display: flex;
855
- flex-direction: column;
856
-
857
- .context-title-wrap {
858
- padding-bottom: 3px;
859
- border-bottom: 1px solid #a6a6a6;
860
-
861
- h4 {
862
- font-weight: 700;
863
- font-size: 13px;
864
- color: var(--add-vm-context-title);
865
- }
866
- p {
867
- font-weight: 400;
868
- font-size: 13px;
869
- color: var(--add-vm-context-sub-title);
870
- }
871
- }
872
-
873
- .finish-block {
874
- padding: 18px 24px 24px 24px;
875
-
876
- .add-hosts-ready-to-complete-mt-12 {
877
- margin-top: 12px;
878
-
879
- .add-hosts-ready-to-complete-bold {
880
- line-height: 18px;
881
- font-weight: 700;
882
- }
883
- }
884
- }
885
-
886
- .vm-hardware-version {
887
- align-self: flex-end;
888
- margin-top: auto;
889
- }
890
- }
891
-
892
- :deep(.modal .modal-dialog .modal-content .modal-footer) {
893
- flex: unset;
894
- height: unset;
895
- min-height: unset;
896
- }
897
- :deep(.wizard-modal-titlebar h3) {
898
- color: #000;
899
- font-size: 24px;
900
- font-weight: 200;
901
- line-height: 27px;
902
- margin: 0;
903
- padding: 0;
904
- }
905
- :deep(.clr-wizard-stepnav-item) {
906
- padding-left: 0;
907
- }
908
- :deep(.clr-wizard-stepnav
909
- .clr-wizard-stepnav-item
910
- button
911
- .clr-wizard-stepnav-link-title) {
912
- width: 189px;
913
- font-weight: 700;
914
- font-size: 13px;
915
- }
916
-
917
- #vm-wizard-notification {
918
- h3 {
919
- color: var(--global-font-color7);
920
- margin-top: 6px;
921
- }
922
- p {
923
- color: var(--global-font-color6);
924
- line-height: 16px;
925
- }
926
- }
927
-
928
- .power-on-by-default-wrap {
929
- display: flex;
930
- align-items: center;
931
-
932
- input {
933
- margin-right: 6px;
934
- }
935
- }
936
- </style>
937
-
938
- <style>
939
- :root {
940
- --add-vm-context-title: #333;
941
- --add-vm-context-sub-title: #000;
942
- }
943
- :root.dark-theme {
944
- --add-vm-context-title: #adbbc4;
945
- --add-vm-context-sub-title: #adbbc4;
946
- }
947
- </style>
1
+ <template>
2
+ <div class="add-vm">
3
+ <atoms-modal-by-steps
4
+ test-id="add-vm-wizard"
5
+ :show="true"
6
+ :title="localization.newVirtualMachine2"
7
+ :step-items="stepItems"
8
+ :step-position="stepPosition"
9
+ :loading="loading"
10
+ @change-step="onChangeStep"
11
+ @hide="onHideModal"
12
+ >
13
+ <template #modalBody>
14
+ <div class="add-vm-context">
15
+ <div class="context-title-wrap">
16
+ <p>{{ stepSubTitle }}</p>
17
+ </div>
18
+
19
+ <common-vm-actions-common-select-create-type
20
+ v-show="stepPosition === 0"
21
+ :import-from-v-m-warev-sphere="props.importFromVMWarevSphere"
22
+ @next="onNext"
23
+ />
24
+ <common-vm-actions-common-select-name
25
+ v-show="stepPosition === 1"
26
+ :show="stepPosition === 1"
27
+ :name-form-submit="nameFormSubmit"
28
+ :project="props.project"
29
+ :data-center="props.dataCenter"
30
+ @submit="onChangeNameAndNext(...$event)"
31
+ @check-name="emits('check-name', $event)"
32
+ @loading="loading = $event"
33
+ />
34
+ <common-vm-actions-common-select-compute-resource
35
+ v-if="props.project === 'sphere'"
36
+ v-show="stepPosition === 2"
37
+ v-model="vmForm.computeResource"
38
+ :compute-resource-submit="computeResourceSubmit"
39
+ :data-center="vmForm.dataCenter"
40
+ :compute-resource="props.computeResource"
41
+ :compute-resource-tree="props.computeResourceTree"
42
+ @submit="changeComputeResourceAndNext"
43
+ @get-compute-resource-tree="
44
+ emits('get-compute-resource-tree', $event)
45
+ "
46
+ @show-compute-resource-tree="
47
+ emits('show-compute-resource-tree', $event)
48
+ "
49
+ @select-compute-resource-tree="onSelectComputeResourceTree"
50
+ @clear-compute-resource-tree="
51
+ emits('clear-compute-resource-tree', $event)
52
+ "
53
+ />
54
+ <common-vm-actions-common-select-storage
55
+ v-show="
56
+ props.project === 'sphere'
57
+ ? stepPosition === 3
58
+ : stepPosition === 2
59
+ "
60
+ :storage-submit="storageSubmit"
61
+ :datastore="props.datastore"
62
+ :get-datastore-table-func="props.getDatastoreTableFunc"
63
+ @submit="onChangeStorageAndNext"
64
+ />
65
+ <common-vm-actions-common-select-compatibility
66
+ v-show="
67
+ props.project === 'sphere'
68
+ ? stepPosition === 4
69
+ : stepPosition === 3
70
+ "
71
+ :options="compatibility"
72
+ :error-validation-fields="props.errorValidationFields"
73
+ @change="onChangeCompatibility"
74
+ @remove-error-by-title="emits('remove-error-by-title', $event)"
75
+ />
76
+ <common-vm-actions-common-select-os
77
+ v-show="
78
+ props.project === 'sphere'
79
+ ? stepPosition === 5
80
+ : stepPosition === 4
81
+ "
82
+ :families-options="guestOsFamilies"
83
+ :versions-options="guestOsVersions"
84
+ :machine-types-options="machineTypes"
85
+ :error-validation-fields="props.errorValidationFields"
86
+ @change="onChangeOs"
87
+ @remove-error-by-title="emits('remove-error-by-title', $event)"
88
+ />
89
+ <common-vm-actions-common-customize-hardware
90
+ v-show="
91
+ props.project === 'sphere'
92
+ ? stepPosition === 6
93
+ : stepPosition === 5
94
+ "
95
+ :vm-name="vmForm.name"
96
+ :guest-machine-type="vmForm.guestMachineType"
97
+ :guest-os-family="vmForm.guestOsFamily"
98
+ :guest-os-version="vmForm.guestOsVersion"
99
+ :storage="vmForm.storage"
100
+ :hard-disks-for-boot-options="virtualHardwareHardDisksLocal"
101
+ :cd-dvd-drives-for-boot-options="virtualHardwareCdDvdDrivesLocal"
102
+ :networks-for-boot-options="virtualHardwareNetworksLocal"
103
+ :cd-dvd-drives="virtualHardwareCdDvdDrivesLocal"
104
+ :customize-hardware-submit="customizeHardwareSubmit"
105
+ :max-cpus="maxCpus"
106
+ :max-memory="maxMemory"
107
+ :cpu-models="cpuModels"
108
+ :selected-nav-item="selectedNavItem"
109
+ :nodes="props.nodes"
110
+ :files="props.files"
111
+ :networks-table="props.networksTable"
112
+ :error-validation-fields="props.errorValidationFields"
113
+ :get-datastore-table-func="props.getDatastoreTableFunc"
114
+ :datastore="props.datastore"
115
+ :vm-cpu-help-text-second="props.vmCpuHelpTextSecond"
116
+ :passthrough-devices="props.passthroughDevices"
117
+ @change-boot-order="onChangeBootOrder"
118
+ @send-data="onChangeCustomizeHardware"
119
+ @get-storage="emits('get-storage', $event)"
120
+ @get-folders-or-files="emits('get-folders-or-files', $event)"
121
+ @get-active-device-child="emits('get-active-device-child', $event)"
122
+ @show-datastore-child="emits('show-datastore-child', $event)"
123
+ @remove-error-by-title="emits('remove-error-by-title', $event)"
124
+ @get-networks-table="emits('get-networks-table', $event)"
125
+ @get-pci-devices="emits('get-pci-devices')"
126
+ @next="onNext(true)"
127
+ />
128
+ <common-vm-actions-common-ready-to-complete
129
+ v-if="
130
+ props.project === 'sphere'
131
+ ? stepPosition === 7
132
+ : stepPosition === 6
133
+ "
134
+ :ready-complete-table-info="props.readyCompleteTableInfo"
135
+ />
136
+
137
+ <span
138
+ v-if="
139
+ props.project === 'sphere' ? stepPosition > 4 : stepPosition > 3
140
+ "
141
+ class="vm-hardware-version"
142
+ >{{ compatibilityInfo }}</span
143
+ >
144
+ </div>
145
+ </template>
146
+
147
+ <template #modalFooter>
148
+ <div class="flex-align-center flex-space-between w-100">
149
+ <div class="power-on-by-default-wrap">
150
+ <template
151
+ v-if="
152
+ props.project === 'sphere'
153
+ ? stepPosition === 7
154
+ : stepPosition === 6
155
+ "
156
+ >
157
+ <input
158
+ id="power-on-by-default"
159
+ v-model="isPowerOnByDefault"
160
+ type="checkbox"
161
+ />
162
+ <label for="power-on-by-default" class="label-text-normal">{{
163
+ localization.powerOnByDefault
164
+ }}</label>
165
+ </template>
166
+ </div>
167
+ <div class="flex-align-center">
168
+ <button
169
+ id="vm-wizard-cancel-button"
170
+ class="btn btn-link"
171
+ @click="onHideModal"
172
+ >
173
+ {{ localization.cancel }}
174
+ </button>
175
+ <button
176
+ v-show="stepPosition > 0"
177
+ id="vm-wizard-back-button"
178
+ class="btn btn-outline"
179
+ @click="onBack"
180
+ >
181
+ {{ localization.back }}
182
+ </button>
183
+ <button
184
+ v-if="stepPosition === stepItems.length - 1"
185
+ id="vm-wizard-finish-button"
186
+ class="btn btn-success"
187
+ @click="onFinish"
188
+ >
189
+ {{ localization.finish }}
190
+ </button>
191
+ <button
192
+ v-else
193
+ id="vm-wizard-next-button"
194
+ class="btn btn-primary"
195
+ @click="onNext(false)"
196
+ >
197
+ {{ localization.next }}
198
+ </button>
199
+ </div>
200
+ </div>
201
+ </template>
202
+ </atoms-modal-by-steps>
203
+ </div>
204
+ </template>
205
+
206
+ <script setup lang="ts">
207
+ import { UI_I_DatastoreTableItem } from '~/models/store/storage/interfaces'
208
+ import { UI_I_NetworkTableItem } from '~/models/store/network/interfaces'
209
+ import { API_UI_I_Error, UI_I_TablePayload } from '~/models/store/interfaces'
210
+ import { UI_I_FolderOrFileTreePayload } from '~/models/store/storage/interfaces'
211
+ import { UI_I_FileTreeNode } from '~/components/models/interfaces'
212
+ import { UI_I_Localization, UI_I_ArbitraryObject } from '~/models/interfaces'
213
+ import {
214
+ UI_I_VmForm,
215
+ UI_I_VmFormCash,
216
+ } from '~/components/common/vm/actions/common/models/interfaces'
217
+ import { UI_I_SendDataCustomizeHardware } from '~/components/common/vm/actions/common/customizeHardware/models/interfaces'
218
+ import { UI_I_ErrorValidationField } from '~/models/store/interfaces'
219
+ import { UI_I_OsChange } from '~/components/common/vm/actions/common/select/models/interfaces'
220
+ import {
221
+ UI_I_SendDataCpu,
222
+ UI_I_SendDataMemory,
223
+ UI_I_SendDataNewCdDvdDrive,
224
+ UI_I_SendDataNewHardDisk,
225
+ UI_I_SendDataNewNetwork,
226
+ } from '~/components/common/vm/actions/common/customizeHardware/virtualHardware/models/interfaces'
227
+ import {
228
+ UI_T_AddVmFinishFunc,
229
+ UI_T_SelectedNavItem,
230
+ } from '~/components/common/vm/actions/common/models/types'
231
+ import {
232
+ UI_I_OptionItem,
233
+ UI_I_VerticalStepItem,
234
+ } from '~/components/atoms/models/interfaces'
235
+ import { UI_I_TableInfoItem } from '~/components/atoms/table/info/models/interfaces'
236
+ import { UI_I_ConfigurePciDevicesTable } from '~/models/store/host/interfaces'
237
+ import { UI_T_ChangeBootOrder } from '~/components/common/vm/actions/models/types'
238
+ import { UI_T_Project } from '~/models/types'
239
+ import { UI_I_TreeNode } from '~/components/common/recursionTree/models/interfaces'
240
+ import { capabilities } from '~/components/common/vm/actions/common/config/capabilities'
241
+ import {
242
+ stepItemsFunc,
243
+ subTitleFunc,
244
+ } from '~/components/common/vm/actions/add/utils'
245
+
246
+ const props = defineProps<{
247
+ project: UI_T_Project
248
+ nodes: UI_I_FileTreeNode[]
249
+ files: UI_I_FileTreeNode[]
250
+ networksTable: UI_I_NetworkTableItem[]
251
+ datastore: UI_I_DatastoreTableItem[]
252
+ errorValidationFields: UI_I_ErrorValidationField[]
253
+ readyCompleteTableInfo: UI_I_TableInfoItem[]
254
+ vmCpuHelpTextSecond: string
255
+ importFromVMWarevSphere: string
256
+ finishFunc: UI_T_AddVmFinishFunc
257
+ getDatastoreTableFunc: (payload: UI_I_TablePayload) => Promise<void>
258
+ validateSendDataFunc: UI_T_AddVmFinishFunc<
259
+ [UI_T_SelectedNavItem, null | number] | null
260
+ >
261
+ passthroughDevices: UI_I_ConfigurePciDevicesTable | null
262
+ vmNameInWizard: string
263
+ dataCenter?: UI_I_TreeNode // для сферы
264
+ computeResource?: UI_I_TreeNode // для сферы
265
+ computeResourceTree?: UI_I_TreeNode[] // для сферы
266
+ }>()
267
+
268
+ const emits = defineEmits<{
269
+ (event: 'check-name', value: [string, (error: API_UI_I_Error) => void]): void
270
+ (event: 'get-storage', value: UI_I_TablePayload): void
271
+ (event: 'get-folders-or-files', value: UI_I_FolderOrFileTreePayload): void
272
+ (event: 'get-active-device-child', value: UI_I_FileTreeNode): void
273
+ (event: 'show-datastore-child', value: UI_I_FileTreeNode): void
274
+ (event: 'remove-error-by-title', value: string): void
275
+ (event: 'get-networks-table', value: UI_I_TablePayload): void
276
+ (event: 'get-pci-devices'): void
277
+ (event: 'hide'): void
278
+ (
279
+ event: 'get-compute-resource-tree',
280
+ value: { id: string | number; cb: () => void }
281
+ ): void // для сферы
282
+ (event: 'show-compute-resource-tree', value: UI_I_TreeNode): void // для сферы
283
+ (event: 'select-compute-resource-tree', value: UI_I_TreeNode): void // для сферы
284
+ (event: 'clear-compute-resource-tree'): void // для сферы
285
+ }>()
286
+
287
+ const { $recursion } = useNuxtApp()
288
+
289
+ const localization = computed<UI_I_Localization>(() => useLocal())
290
+
291
+ const stepPosition = ref<number>(0)
292
+ watch(stepPosition, (newValue) => {
293
+ if (props.project === 'sphere' ? newValue === 7 : newValue === 6)
294
+ validateSendData()
295
+ })
296
+ const stepItems = ref<UI_I_VerticalStepItem[]>([])
297
+ stepItems.value = stepItemsFunc(localization.value, props.project)
298
+
299
+ const subTitle: string[] = subTitleFunc(localization.value, props.project)
300
+ const stepSubTitle = computed<string>(() => subTitle[stepPosition.value])
301
+
302
+ const storageIdCash = ref<string | null>(null)
303
+ const vmForm = ref<UI_I_VmForm>({
304
+ name: '',
305
+ compatibility: '',
306
+ guestMachineType: null,
307
+ guestOsFamily: null,
308
+ guestOsVersion: null,
309
+ computeResource: null,
310
+ storage: null,
311
+ locationPath: '',
312
+ dataCenter: null,
313
+ })
314
+ const vmFormCash = ref<UI_I_VmFormCash>({
315
+ dataCenterId: null,
316
+ computeResourceTypeAndId: null,
317
+ })
318
+
319
+ const isPowerOnByDefault = ref<boolean>(true)
320
+
321
+ const onChangeNameAndNext = (name: string, node: UI_I_TreeNode): void => {
322
+ const hasChanges = vmFormCash.value.dataCenterId !== node?.id
323
+ if (hasChanges) checkLocalChangeAndChangeStepStatus()
324
+
325
+ vmForm.value.name = name
326
+ if (props.project === 'sphere') {
327
+ vmForm.value.locationPath = $recursion.createAbsolutePathRecursion(
328
+ node,
329
+ 'id',
330
+ 'parent'
331
+ )
332
+ vmForm.value.dataCenter = $recursion.findParentByValue(
333
+ node,
334
+ 'datacenter',
335
+ 'type',
336
+ 'parent'
337
+ )
338
+ vmFormCash.value.dataCenterId = vmForm.value.dataCenter?.id || null
339
+ }
340
+ onNext(true)
341
+ }
342
+ // Для сферы
343
+ const computeResourcePath = ref<string>('')
344
+ const onSelectComputeResourceTree = (node: UI_I_TreeNode): void => {
345
+ emits('select-compute-resource-tree', node)
346
+ computeResourcePath.value = $recursion.createAbsolutePathRecursion(
347
+ node,
348
+ 'id',
349
+ 'parent'
350
+ )
351
+ }
352
+ const changeComputeResourceAndNext = (node: UI_I_TreeNode): void => {
353
+ const hasChanges =
354
+ `${node.type}${node.id}` !== vmFormCash.value.computeResourceTypeAndId
355
+ if (hasChanges) checkLocalChangeAndChangeStepStatus()
356
+
357
+ vmForm.value.computeResource = node
358
+ // const type = node.type.toUpperCase()
359
+ // schedRequirementsTemplate.value = `sched_requirements="(${type}_ID=${node.id})"\\`
360
+ vmFormCash.value.computeResourceTypeAndId = `${node.type}${node.id}` || null
361
+
362
+ onNext(true)
363
+ }
364
+ const onChangeStorageAndNext = (
365
+ storage: UI_I_DatastoreTableItem | null
366
+ ): void => {
367
+ if (!storage) return
368
+
369
+ const hasChanges = storage.id !== storageIdCash.value
370
+ if (hasChanges) checkLocalChangeAndChangeStepStatus()
371
+
372
+ vmForm.value.storage = storage
373
+ storageIdCash.value = storage.id
374
+
375
+ onNext(true)
376
+ }
377
+ const compatibilityInfo = ref<string>('')
378
+ const onChangeCompatibility = (compatibility: UI_I_OptionItem): void => {
379
+ vmForm.value.compatibility = compatibility.value
380
+
381
+ const version = compatibility.value.split('-')[1]
382
+ compatibilityInfo.value = `${localization.value.compatibility}: ${compatibility.text} (${localization.value.vmVersion} ${version})`
383
+ }
384
+ const onChangeOs = (data: UI_I_OsChange): void => {
385
+ vmForm.value.guestMachineType = data.selectedMachineType
386
+ vmForm.value.guestOsFamily = data.selectedOS
387
+ vmForm.value.guestOsVersion = data.selectedVersion
388
+ }
389
+ const customizeHardware = ref<UI_I_SendDataCustomizeHardware | null>(null)
390
+ const onChangeCustomizeHardware = (
391
+ data: UI_I_SendDataCustomizeHardware
392
+ ): void => {
393
+ customizeHardware.value = data
394
+ }
395
+
396
+ const virtualHardwareHardDisksLocal = computed<
397
+ UI_I_SendDataNewHardDisk[] | null
398
+ >(() => customizeHardware.value?.virtualHardware?.hardDisks || null)
399
+ const virtualHardwareNetworksLocal = computed<UI_I_SendDataNewNetwork[] | null>(
400
+ () => customizeHardware.value?.virtualHardware?.networks || null
401
+ )
402
+ const virtualHardwareCdDvdDrivesLocal = computed<
403
+ UI_I_SendDataNewCdDvdDrive[] | null
404
+ >(() => customizeHardware.value?.virtualHardware?.cdDvdDrives || null)
405
+
406
+ const virtualHardwareCpu = computed<UI_I_SendDataCpu | null>(
407
+ () => customizeHardware.value?.virtualHardware?.cpu || null
408
+ )
409
+ const virtualHardwareMemory = computed<UI_I_SendDataMemory | null>(
410
+ () => customizeHardware.value?.virtualHardware?.memory || null
411
+ )
412
+ const virtualHardwareHardDisks = ref<UI_I_SendDataNewHardDisk[] | null>(null)
413
+ const virtualHardwareCdDvdDrives = ref<UI_I_SendDataNewCdDvdDrive[] | null>(
414
+ null
415
+ )
416
+ const virtualHardwareNetworks = ref<UI_I_SendDataNewNetwork[] | null>(null)
417
+ const onChangeBootOrder = (data: UI_T_ChangeBootOrder): void => {
418
+ virtualHardwareHardDisks.value = data[0]
419
+ virtualHardwareCdDvdDrives.value = data[1]
420
+ virtualHardwareNetworks.value = data[2]
421
+ }
422
+
423
+ watch(() => props.vmNameInWizard, (newValue) => {
424
+ vmForm.value.name = newValue
425
+ })
426
+
427
+ const loading = ref<boolean>(false)
428
+ const validateSendData = (): void => {
429
+ loading.value = true
430
+ props
431
+ .validateSendDataFunc(
432
+ vmForm.value,
433
+ virtualHardwareCpu.value,
434
+ virtualHardwareMemory.value,
435
+ customizeHardware.value,
436
+ virtualHardwareNetworks.value,
437
+ virtualHardwareHardDisks.value,
438
+ virtualHardwareCdDvdDrives.value,
439
+ isPowerOnByDefault.value,
440
+ localization.value,
441
+ vmForm.value.locationPath, // для сферы
442
+ computeResourcePath.value // для сферы
443
+ )
444
+ .then((data) => {
445
+ loading.value = false
446
+ if (!data) return
447
+
448
+ selectedNavItem.value = data[0]
449
+ data[1] !== null && (stepPosition.value = data[1])
450
+ })
451
+ }
452
+ const onFinish = (): void => {
453
+ loading.value = true
454
+ props
455
+ .finishFunc(
456
+ vmForm.value,
457
+ virtualHardwareCpu.value,
458
+ virtualHardwareMemory.value,
459
+ customizeHardware.value,
460
+ virtualHardwareNetworks.value,
461
+ virtualHardwareHardDisks.value,
462
+ virtualHardwareCdDvdDrives.value,
463
+ isPowerOnByDefault.value,
464
+ localization.value,
465
+ vmForm.value.locationPath, // для сферы
466
+ computeResourcePath.value, // для сферы
467
+ false
468
+ )
469
+ .then(() => {
470
+ onHideModal()
471
+ loading.value = false
472
+ })
473
+ }
474
+
475
+ const selectedNavItem = ref<UI_T_SelectedNavItem>(0)
476
+
477
+ const nameFormSubmit = ref<number>(0)
478
+ const computeResourceSubmit = ref<number>(0)
479
+ const storageSubmit = ref<number>(0)
480
+ const customizeHardwareSubmit = ref<number>(0)
481
+ const onNext = (force = false): void => {
482
+ const isValid = checkSubmit(force)
483
+ if (!isValid) {
484
+ return
485
+ }
486
+
487
+ const isDisabled = stepItems.value[cashStep]?.disabled
488
+ if (cashStep !== -1 && !isDisabled) {
489
+ stepPosition.value = cashStep
490
+ cashStep = -1
491
+ return
492
+ }
493
+
494
+ stepItems.value[stepPosition.value].complete = true
495
+ stepItems.value[stepPosition.value + 1].disabled = false
496
+ stepPosition.value++
497
+ }
498
+ const checkLocalChangeAndChangeStepStatus = (): void => {
499
+ stepItems.value = stepItems.value.map((step, index) => {
500
+ if (index > stepPosition.value) {
501
+ step.complete = false
502
+ step.disabled = index > stepPosition.value + 1
503
+ }
504
+
505
+ return step
506
+ })
507
+ }
508
+
509
+ const checkSubmit = (force = false): boolean => {
510
+ if (stepPosition.value === 1 && !force) {
511
+ nameFormSubmit.value++
512
+ return false
513
+ }
514
+ if (props.project === 'sphere' && stepPosition.value === 2 && !force) {
515
+ computeResourceSubmit.value++
516
+ return false
517
+ }
518
+ if (
519
+ (props.project === 'sphere'
520
+ ? stepPosition.value === 3
521
+ : stepPosition.value === 2) &&
522
+ !force
523
+ ) {
524
+ storageSubmit.value++
525
+ return false
526
+ }
527
+ if (
528
+ (props.project === 'sphere'
529
+ ? stepPosition.value === 6
530
+ : stepPosition.value === 5) &&
531
+ !force
532
+ ) {
533
+ customizeHardwareSubmit.value++
534
+ return false
535
+ }
536
+ return true
537
+ }
538
+ const checkSubmitByManual = (step: number): boolean => {
539
+ if (stepPosition.value === 1) {
540
+ nameFormSubmit.value++
541
+ return false
542
+ }
543
+ if (
544
+ props.project === 'sphere'
545
+ ? stepPosition.value === 3
546
+ : stepPosition.value === 2
547
+ ) {
548
+ storageSubmit.value++
549
+ return false
550
+ }
551
+ if (props.project === 'sphere' ? step === 8 : step === 7) {
552
+ customizeHardwareSubmit.value++
553
+ return false
554
+ }
555
+ return true
556
+ }
557
+ const onBack = (): void => {
558
+ stepPosition.value--
559
+ }
560
+ let cashStep = -1
561
+ const onChangeStep = (key: number): void => {
562
+ const isValid = checkSubmitByManual(key)
563
+ if (!isValid) {
564
+ cashStep = key
565
+ return
566
+ }
567
+
568
+ stepPosition.value = key
569
+ }
570
+
571
+ const compatibility = ref<UI_I_OptionItem[]>(capabilities.compatibility)
572
+ const guestOsFamilies = ref<UI_I_OptionItem[]>(capabilities.guestOsFamilies)
573
+ const guestOsVersions = ref<UI_I_ArbitraryObject<UI_I_OptionItem[]>>(
574
+ capabilities.guestOsVersions
575
+ )
576
+ const machineTypes = ref<UI_I_OptionItem[]>(capabilities.machineTypes)
577
+ const cpuModels = ref<UI_I_OptionItem[]>(capabilities.cpuModels)
578
+ const maxCpus = ref<number>(capabilities.maxCpus)
579
+ const maxMemory = ref<number>(capabilities.maxMemory)
580
+
581
+ const onHideModal = (): void => {
582
+ emits('hide')
583
+ }
584
+ </script>
585
+
586
+ <style scoped lang="scss">
587
+ :deep(.has-solid.close-icon.clr-icon) {
588
+ width: 20px;
589
+ top: 0;
590
+ }
591
+ .add-vm-context {
592
+ padding: 16px 15px 10px 10px;
593
+ height: 100%;
594
+ display: flex;
595
+ flex-direction: column;
596
+
597
+ .context-title-wrap {
598
+ padding-bottom: 3px;
599
+ border-bottom: 1px solid #a6a6a6;
600
+
601
+ h4 {
602
+ font-weight: 700;
603
+ font-size: 13px;
604
+ color: var(--add-vm-context-title);
605
+ }
606
+ p {
607
+ font-weight: 400;
608
+ font-size: 13px;
609
+ color: var(--add-vm-context-sub-title);
610
+ }
611
+ }
612
+
613
+ .finish-block {
614
+ padding: 18px 24px 24px 24px;
615
+
616
+ .add-hosts-ready-to-complete-mt-12 {
617
+ margin-top: 12px;
618
+
619
+ .add-hosts-ready-to-complete-bold {
620
+ line-height: 18px;
621
+ font-weight: 700;
622
+ }
623
+ }
624
+ }
625
+
626
+ .vm-hardware-version {
627
+ align-self: flex-end;
628
+ margin-top: auto;
629
+ }
630
+ }
631
+
632
+ :deep(.modal .modal-dialog .modal-content .modal-footer) {
633
+ flex: unset;
634
+ height: unset;
635
+ min-height: unset;
636
+ }
637
+ :deep(.wizard-modal-titlebar h3) {
638
+ color: #000;
639
+ font-size: 24px;
640
+ font-weight: 200;
641
+ line-height: 27px;
642
+ margin: 0;
643
+ padding: 0;
644
+ }
645
+ :deep(.clr-wizard-stepnav-item) {
646
+ padding-left: 0;
647
+ }
648
+ :deep(.clr-wizard-stepnav
649
+ .clr-wizard-stepnav-item
650
+ button
651
+ .clr-wizard-stepnav-link-title) {
652
+ width: 189px;
653
+ font-weight: 700;
654
+ font-size: 13px;
655
+ }
656
+
657
+ #vm-wizard-notification {
658
+ h3 {
659
+ color: var(--global-font-color7);
660
+ margin-top: 6px;
661
+ }
662
+ p {
663
+ color: var(--global-font-color6);
664
+ line-height: 16px;
665
+ }
666
+ }
667
+
668
+ .power-on-by-default-wrap {
669
+ display: flex;
670
+ align-items: center;
671
+
672
+ input {
673
+ margin-right: 6px;
674
+ }
675
+ }
676
+ </style>
677
+
678
+ <style>
679
+ :root {
680
+ --add-vm-context-title: #333;
681
+ --add-vm-context-sub-title: #000;
682
+ }
683
+ :root.dark-theme {
684
+ --add-vm-context-title: #adbbc4;
685
+ --add-vm-context-sub-title: #adbbc4;
686
+ }
687
+ </style>