bfg-common 1.3.232 → 1.3.233

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 (76) hide show
  1. package/assets/scss/common/normalize.scss +0 -4
  2. package/components/atoms/alert/Alert.vue +96 -95
  3. package/components/atoms/alert/Notification.vue +171 -170
  4. package/components/atoms/autocomplete/Autocomplete.vue +3 -0
  5. package/components/atoms/collapse/CollapseNav.vue +1 -1
  6. package/components/atoms/collapse/CollapseNavItem.vue +17 -13
  7. package/components/atoms/combobox/Combobox.vue +5 -0
  8. package/components/atoms/datepicker/Datepicker.vue +19 -1
  9. package/components/atoms/datepicker/lib/models/interfaces.ts +1 -0
  10. package/components/atoms/dropdown/Portlet.vue +10 -7
  11. package/components/atoms/dropdown/dropdown/Dropdown.vue +10 -2
  12. package/components/atoms/dropdown/dropdown/lib/models/interfaces.ts +1 -0
  13. package/components/atoms/dropdown/tree/Tree.vue +2 -0
  14. package/components/atoms/dropdown/tree/lib/models/interfaces.ts +1 -0
  15. package/components/atoms/lib/models/interfaces.ts +2 -0
  16. package/components/atoms/list/SelectList.vue +1 -0
  17. package/components/atoms/modal/Modal.vue +3 -0
  18. package/components/atoms/modal/bySteps/BySteps.vue +56 -51
  19. package/components/atoms/modal/byStepsSecond/ByStepsSecond.vue +10 -1
  20. package/components/atoms/nav/VerticalNavBar.vue +1 -0
  21. package/components/atoms/nav/lib/models/interfaces.ts +1 -0
  22. package/components/atoms/notificationBar/NotificationBar.vue +9 -1
  23. package/components/atoms/perPage/PerPage.vue +1 -0
  24. package/components/atoms/popover/Popover.vue +5 -1
  25. package/components/atoms/popup/SimplePopup.vue +1 -0
  26. package/components/atoms/select/TheSelect.vue +2 -0
  27. package/components/atoms/select/lib/models/interfaces.ts +1 -0
  28. package/components/atoms/stack/StackBlock.vue +3 -0
  29. package/components/atoms/step/VerticalStep.vue +1 -0
  30. package/components/atoms/switch/Switch.vue +111 -111
  31. package/components/atoms/table/compact/Compact.vue +526 -526
  32. package/components/atoms/table/dataGrid/DataGrid.vue +13 -1
  33. package/components/atoms/table/dataGrid/DataGridColumnSwitch.vue +10 -2
  34. package/components/atoms/table/dataGrid/DataGridPage.vue +5 -0
  35. package/components/atoms/table/dataGrid/lib/models/interfaces.ts +2 -0
  36. package/components/atoms/table/simpleInfo/SimpleInfo.vue +7 -2
  37. package/components/atoms/table/simpleInfo/lib/models/interfaces.ts +1 -0
  38. package/components/atoms/table/simpleTable/SimpleTable.vue +5 -1
  39. package/components/atoms/table/simpleTable/lib/models/interfaces.ts +2 -0
  40. package/components/atoms/tabs/VerticalTabs.vue +1 -0
  41. package/components/atoms/tabs/lib/models/interfaces.ts +3 -2
  42. package/components/atoms/tooltip/Signpost.vue +226 -225
  43. package/components/atoms/wizard/Wizard.vue +5 -0
  44. package/components/atoms/wizard/step/Step.vue +1 -0
  45. package/components/common/mainNavigationPanel/MainNavigationPanel.vue +4 -1
  46. package/components/common/mainNavigationPanel/lib/models/interfaces.ts +1 -0
  47. package/components/common/pages/Tasks.vue +120 -120
  48. package/components/common/recursionTree/RecursionTree.vue +203 -203
  49. package/components/common/tools/Actions.vue +2 -1
  50. package/components/common/tools/lib/models/interfaces.ts +1 -0
  51. package/components/common/vm/actions/add/Add.vue +575 -575
  52. package/components/common/vm/actions/clone/Clone.vue +518 -518
  53. package/components/common/vm/actions/common/customizeHardware/CustomizeHardware.vue +269 -269
  54. package/components/common/vm/actions/common/customizeHardware/virtualHardware/VirtualHardware.vue +693 -693
  55. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/CpuModel.vue +220 -220
  56. package/components/common/vm/actions/common/customizeHardware/virtualHardware/lib/config/dropdownItems.ts +59 -59
  57. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/NewNetwork.vue +294 -294
  58. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/NewPciDevice.vue +165 -165
  59. package/components/common/vm/actions/common/select/storage/lib/config/config.ts +166 -166
  60. package/components/common/vm/actions/editSettings/EditSettings.vue +313 -313
  61. package/components/common/weekSelect/WeekSelect.vue +112 -112
  62. package/components/common/weekSelect/lib/config/options.ts +10 -10
  63. package/composables/useAppVersion.ts +21 -21
  64. package/composables/useEnvLanguage.ts +20 -20
  65. package/lib/utils/sendTask.ts +72 -72
  66. package/minify.js +146 -146
  67. package/package.json +1 -1
  68. package/public/spice-console/application/codec.js +257 -257
  69. package/public/spice-console/lib/rasterEngine.js +907 -907
  70. package/public/spice-console/network/spicechannel.js +369 -369
  71. package/store/main/lib/interfaces.ts +9 -9
  72. package/store/tasks/actions.ts +133 -133
  73. package/store/tasks/getters.ts +25 -25
  74. package/store/tasks/lib/models/interfaces.ts +18 -18
  75. package/store/tasks/mutations.ts +58 -58
  76. package/store/tasks/state.ts +16 -16
@@ -1,269 +1,269 @@
1
- <template>
2
- <div class="customize-hardware">
3
- <atoms-nav-bar v-model="selectedNavItem" :items="navItems" />
4
- <atoms-alert
5
- v-show="errors.length"
6
- status="alert-danger"
7
- :items="errors"
8
- @remove="onRemoveValidationErrors"
9
- />
10
-
11
- <div v-show="selectedNavItem === 0">
12
- <common-vm-actions-common-customize-hardware-virtual-hardware
13
- :vm-name="vmNameLocal"
14
- :storage="props.storage"
15
- :max-cpus="props.maxCpus"
16
- :max-memory="props.maxMemory"
17
- :cpu-models="props.cpuModels"
18
- :cpu="props.cpu"
19
- :memory="props.memory"
20
- :is-edit="props.isEdit"
21
- :is-clone="props.isClone"
22
- :state="props.state"
23
- :hard-disks="props.hardDisks"
24
- :cd-dvd-drives="props.cdDvdDrives"
25
- :networks="props.networks"
26
- :networks-table="props.networksTable"
27
- :video-card="props.videoCard"
28
- :usb-controller="props.usbController"
29
- :pci-devices="props.pciDevices"
30
- :nodes="props.nodes"
31
- :files="props.files"
32
- :error-validation-fields="props.errorValidationFields"
33
- :get-datastore-table-func="props.getDatastoreTableFunc"
34
- :datastore="props.datastore"
35
- :vm-cpu-help-text-second="props.vmCpuHelpTextSecond"
36
- :passthrough-devices="props.passthroughDevices"
37
- @send-data="onSendDataVirtualHardwareMethod"
38
- @get-storage="emits('get-storage', $event)"
39
- @get-folders-or-files="emits('get-folders-or-files', $event)"
40
- @get-active-device-child="emits('get-active-device-child', $event)"
41
- @show-datastore-child="emits('show-datastore-child', $event)"
42
- @remove-error-by-title="emits('remove-error-by-title', $event)"
43
- @invalid="virtualHardwareInvalid = $event"
44
- @get-networks-table="emits('get-networks-table', $event)"
45
- @get-pci-devices="emits('get-pci-devices')"
46
- />
47
- </div>
48
- <div v-show="selectedNavItem === 1">
49
- <common-vm-actions-common-customize-hardware-vmoptions
50
- v-model:vm-name="vmNameLocal"
51
- v-model:guest-machine-type="guestMachineTypeLocal"
52
- v-model:guest-os-family="guestOsFamilyLocal"
53
- v-model:guest-os-version="guestOsVersionLocal"
54
- :hard-disks="props.hardDisksForBootOptions"
55
- :cd-dvd-drives="props.cdDvdDrivesForBootOptions"
56
- :networks="props.networksForBootOptions"
57
- :options="props.options"
58
- :is-edit="props.isEdit"
59
- :is-clone="props.isClone"
60
- :error-validation-fields="props.errorValidationFields"
61
- :state="props.state"
62
- @change-boot-order="onChangeBootOrder"
63
- @send-data="onSendDataVmOptionsMethod"
64
- @invalid="vmOptionsInvalid = $event"
65
- @remove-error-by-title="emits('remove-error-by-title', $event)"
66
- />
67
- </div>
68
- </div>
69
- </template>
70
-
71
- <script setup lang="ts">
72
- import { UI_I_DatastoreTableItem } from '~/lib/models/store/storage/interfaces'
73
- import { UI_I_NetworkTableItem } from '~/lib/models/store/network/interfaces'
74
- import { UI_I_TablePayload } from '~/lib/models/table/interfaces'
75
- import { UI_I_FolderOrFileTreePayload } from '~/lib/models/store/storage/interfaces'
76
- import { UI_I_FileTreeNode } from '~/components/lib/models/interfaces'
77
- import {
78
- UI_I_SendDataNewPciDevice,
79
- UI_I_SendDataNewCdDvdDrive,
80
- UI_I_SendDataNewHardDisk,
81
- UI_I_SendDataNewNetwork,
82
- UI_I_SendDataVideoCard,
83
- UI_I_SendDataVirtualHardware,
84
- } from '~/components/common/vm/actions/common/customizeHardware/virtualHardware/lib/models/interfaces'
85
- import { UI_I_SendDataCustomizeHardware } from '~/components/common/vm/actions/common/customizeHardware/lib/models/interfaces'
86
- import { UI_I_SendDataVmoptions } from '~/components/common/vm/actions/common/customizeHardware/vmoptions/lib/models/interfaces'
87
- import { UI_T_SelectedNavItem } from '~/components/common/vm/actions/common/lib/models/types'
88
- import { UI_I_ErrorValidationField } from '~/lib/models/store/interfaces'
89
- import { UI_I_Localization } from '~/lib/models/interfaces'
90
- import { UI_I_OptionItem } from '~/components/atoms/lib/models/interfaces'
91
- import { UI_I_CollapseNavItem } from '~/components/atoms/collapse/lib/models/interfaces'
92
- import { UI_T_ChangeBootOrder } from '~/components/common/vm/actions/lib/models/types'
93
- import {
94
- API_UI_I_VmEditCpu,
95
- API_UI_I_VmEditMemory,
96
- UI_I_PciDevice,
97
- } from '~/lib/models/store/vm/interfaces'
98
- import { navItemsFunc } from '~/components/common/vm/actions/common/customizeHardware/lib/config/navItems'
99
-
100
- const props = defineProps<{
101
- vmName: string
102
- errorValidationFields: UI_I_ErrorValidationField[]
103
- storage: UI_I_DatastoreTableItem | null
104
- guestMachineType: UI_I_OptionItem | null
105
- guestOsFamily: UI_I_OptionItem | null
106
- guestOsVersion: UI_I_OptionItem | null
107
- cpuModels: UI_I_OptionItem[]
108
- hardDisksForBootOptions: UI_I_SendDataNewHardDisk[] | null
109
- cdDvdDrivesForBootOptions: UI_I_SendDataNewCdDvdDrive[] | null
110
- networksForBootOptions: UI_I_SendDataNewNetwork[] | null
111
- customizeHardwareSubmit: null | Function
112
- maxCpus: number
113
- maxMemory: number
114
- selectedNavItem: UI_T_SelectedNavItem
115
- nodes: UI_I_FileTreeNode[]
116
- files: UI_I_FileTreeNode[]
117
- networksTable: UI_I_NetworkTableItem[]
118
- cpu?: API_UI_I_VmEditCpu
119
- memory?: API_UI_I_VmEditMemory
120
- vmCpuHelpTextSecond?: string
121
- getDatastoreTableFunc?: (payload: UI_I_TablePayload) => Promise<void>
122
- datastore: UI_I_DatastoreTableItem[]
123
- hardDisks?: UI_I_SendDataNewHardDisk[] | null
124
- cdDvdDrives?: UI_I_SendDataNewCdDvdDrive[] | null
125
- networks?: UI_I_SendDataNewNetwork[] | null
126
- videoCard?: UI_I_SendDataVideoCard
127
- pciDevices?: UI_I_SendDataNewPciDevice[]
128
- usbController?: string
129
- options?: UI_I_SendDataVmoptions
130
- isEdit?: boolean
131
- isClone?: boolean
132
- state?: string | number
133
- passthroughDevices?: UI_I_PciDevice[]
134
- }>()
135
- const emits = defineEmits<{
136
- (
137
- event: 'change-boot-order',
138
- value: [
139
- UI_I_SendDataNewHardDisk[],
140
- UI_I_SendDataNewCdDvdDrive[],
141
- UI_I_SendDataNewNetwork[]
142
- ]
143
- ): void
144
- (event: 'send-data', value: UI_I_SendDataCustomizeHardware): void
145
- (event: 'next'): void
146
- (event: 'update:vm-name', value: string): void
147
- (event: 'update:guest-machine-type', value: UI_I_OptionItem | null): void
148
- (event: 'update:guest-os-family', value: UI_I_OptionItem | null): void
149
- (event: 'update:guest-os-version', value: UI_I_OptionItem | null): void
150
- (event: 'get-storage', value: UI_I_TablePayload): void
151
- (event: 'get-folders-or-files', value: UI_I_FolderOrFileTreePayload): void
152
- (event: 'get-active-device-child', value: UI_I_FileTreeNode): void
153
- (event: 'show-datastore-child', value: UI_I_FileTreeNode): void
154
- (event: 'remove-error-by-title', value: string): void
155
- (event: 'get-networks-table', value: UI_I_TablePayload): void
156
- (event: 'get-pci-devices'): void
157
- }>()
158
-
159
- const vmNameLocal = computed<string>({
160
- get() {
161
- return props.vmName
162
- },
163
- set(newValue) {
164
- emits('update:vm-name', newValue)
165
- },
166
- })
167
- const guestMachineTypeLocal = computed<UI_I_OptionItem | null>({
168
- get() {
169
- return props.guestMachineType
170
- },
171
- set(newValue) {
172
- emits('update:guest-machine-type', newValue)
173
- },
174
- })
175
- const guestOsFamilyLocal = computed<UI_I_OptionItem | null>({
176
- get() {
177
- return props.guestOsFamily
178
- },
179
- set(newValue) {
180
- emits('update:guest-os-family', newValue)
181
- },
182
- })
183
- const guestOsVersionLocal = computed<UI_I_OptionItem | null>({
184
- get() {
185
- return props.guestOsVersion
186
- },
187
- set(newValue) {
188
- emits('update:guest-os-version', newValue)
189
- },
190
- })
191
-
192
- const localization = computed<UI_I_Localization>(() => useLocal())
193
-
194
- const navItems = computed<UI_I_CollapseNavItem[]>(() =>
195
- navItemsFunc(localization.value)
196
- )
197
- const selectedNavItem = ref<number>(0)
198
- watch(
199
- () => props.selectedNavItem,
200
- (n) => {
201
- selectedNavItem.value = n
202
- }
203
- )
204
-
205
- const sendDataVirtualHardware = ref<UI_I_SendDataVirtualHardware | null>(null)
206
- const onSendDataVirtualHardwareMethod = (
207
- data: UI_I_SendDataVirtualHardware
208
- ): void => {
209
- sendDataVirtualHardware.value = data
210
- sendData()
211
- }
212
- const sendDataVmOptions = ref<UI_I_SendDataVmoptions | null>(null)
213
- const onSendDataVmOptionsMethod = (data: UI_I_SendDataVmoptions): void => {
214
- sendDataVmOptions.value = data
215
- sendData()
216
- }
217
- const sendData = (): void => {
218
- emits('send-data', {
219
- virtualHardware: sendDataVirtualHardware.value,
220
- vmOptions: sendDataVmOptions.value,
221
- })
222
- }
223
-
224
- const onChangeBootOrder = (data: UI_T_ChangeBootOrder): void => {
225
- emits('change-boot-order', data)
226
- }
227
-
228
- watch(
229
- () => props.customizeHardwareSubmit,
230
- (newValue) => {
231
- newValue && submit(newValue)
232
- }
233
- )
234
- const virtualHardwareInvalid = ref<string[]>([])
235
- const vmOptionsInvalid = ref<string[]>([])
236
- const submit = (cb: Function): void => {
237
- const invalidDevices = [
238
- ...virtualHardwareInvalid.value,
239
- ...vmOptionsInvalid.value,
240
- ]
241
- .filter((item: string) => !!item)
242
- .join(', ')
243
-
244
- if (invalidDevices) {
245
- showValidationErrors([
246
- localization.value.thereErrorsFollowingFields.replace(
247
- '{0}',
248
- invalidDevices
249
- ),
250
- ])
251
- cb(false)
252
- return
253
- }
254
- onRemoveValidationErrors()
255
-
256
- // emits('next')
257
- cb(true)
258
- }
259
-
260
- const errors = ref<string[]>([])
261
- const showValidationErrors = (arr: string[]): void => {
262
- errors.value = arr
263
- }
264
- const onRemoveValidationErrors = (): void => {
265
- errors.value = []
266
- }
267
- </script>
268
-
269
- <style scoped lang="scss"></style>
1
+ <template>
2
+ <div class="customize-hardware">
3
+ <atoms-nav-bar v-model="selectedNavItem" :items="navItems" />
4
+ <atoms-alert
5
+ v-show="errors.length"
6
+ status="alert-danger"
7
+ :items="errors"
8
+ @remove="onRemoveValidationErrors"
9
+ />
10
+
11
+ <div v-show="selectedNavItem === 0">
12
+ <common-vm-actions-common-customize-hardware-virtual-hardware
13
+ :vm-name="vmNameLocal"
14
+ :storage="props.storage"
15
+ :max-cpus="props.maxCpus"
16
+ :max-memory="props.maxMemory"
17
+ :cpu-models="props.cpuModels"
18
+ :cpu="props.cpu"
19
+ :memory="props.memory"
20
+ :is-edit="props.isEdit"
21
+ :is-clone="props.isClone"
22
+ :state="props.state"
23
+ :hard-disks="props.hardDisks"
24
+ :cd-dvd-drives="props.cdDvdDrives"
25
+ :networks="props.networks"
26
+ :networks-table="props.networksTable"
27
+ :video-card="props.videoCard"
28
+ :usb-controller="props.usbController"
29
+ :pci-devices="props.pciDevices"
30
+ :nodes="props.nodes"
31
+ :files="props.files"
32
+ :error-validation-fields="props.errorValidationFields"
33
+ :get-datastore-table-func="props.getDatastoreTableFunc"
34
+ :datastore="props.datastore"
35
+ :vm-cpu-help-text-second="props.vmCpuHelpTextSecond"
36
+ :passthrough-devices="props.passthroughDevices"
37
+ @send-data="onSendDataVirtualHardwareMethod"
38
+ @get-storage="emits('get-storage', $event)"
39
+ @get-folders-or-files="emits('get-folders-or-files', $event)"
40
+ @get-active-device-child="emits('get-active-device-child', $event)"
41
+ @show-datastore-child="emits('show-datastore-child', $event)"
42
+ @remove-error-by-title="emits('remove-error-by-title', $event)"
43
+ @invalid="virtualHardwareInvalid = $event"
44
+ @get-networks-table="emits('get-networks-table', $event)"
45
+ @get-pci-devices="emits('get-pci-devices')"
46
+ />
47
+ </div>
48
+ <div v-show="selectedNavItem === 1">
49
+ <common-vm-actions-common-customize-hardware-vmoptions
50
+ v-model:vm-name="vmNameLocal"
51
+ v-model:guest-machine-type="guestMachineTypeLocal"
52
+ v-model:guest-os-family="guestOsFamilyLocal"
53
+ v-model:guest-os-version="guestOsVersionLocal"
54
+ :hard-disks="props.hardDisksForBootOptions"
55
+ :cd-dvd-drives="props.cdDvdDrivesForBootOptions"
56
+ :networks="props.networksForBootOptions"
57
+ :options="props.options"
58
+ :is-edit="props.isEdit"
59
+ :is-clone="props.isClone"
60
+ :error-validation-fields="props.errorValidationFields"
61
+ :state="props.state"
62
+ @change-boot-order="onChangeBootOrder"
63
+ @send-data="onSendDataVmOptionsMethod"
64
+ @invalid="vmOptionsInvalid = $event"
65
+ @remove-error-by-title="emits('remove-error-by-title', $event)"
66
+ />
67
+ </div>
68
+ </div>
69
+ </template>
70
+
71
+ <script setup lang="ts">
72
+ import { UI_I_DatastoreTableItem } from '~/lib/models/store/storage/interfaces'
73
+ import { UI_I_NetworkTableItem } from '~/lib/models/store/network/interfaces'
74
+ import { UI_I_TablePayload } from '~/lib/models/table/interfaces'
75
+ import { UI_I_FolderOrFileTreePayload } from '~/lib/models/store/storage/interfaces'
76
+ import { UI_I_FileTreeNode } from '~/components/lib/models/interfaces'
77
+ import {
78
+ UI_I_SendDataNewPciDevice,
79
+ UI_I_SendDataNewCdDvdDrive,
80
+ UI_I_SendDataNewHardDisk,
81
+ UI_I_SendDataNewNetwork,
82
+ UI_I_SendDataVideoCard,
83
+ UI_I_SendDataVirtualHardware,
84
+ } from '~/components/common/vm/actions/common/customizeHardware/virtualHardware/lib/models/interfaces'
85
+ import { UI_I_SendDataCustomizeHardware } from '~/components/common/vm/actions/common/customizeHardware/lib/models/interfaces'
86
+ import { UI_I_SendDataVmoptions } from '~/components/common/vm/actions/common/customizeHardware/vmoptions/lib/models/interfaces'
87
+ import { UI_T_SelectedNavItem } from '~/components/common/vm/actions/common/lib/models/types'
88
+ import { UI_I_ErrorValidationField } from '~/lib/models/store/interfaces'
89
+ import { UI_I_Localization } from '~/lib/models/interfaces'
90
+ import { UI_I_OptionItem } from '~/components/atoms/lib/models/interfaces'
91
+ import { UI_I_CollapseNavItem } from '~/components/atoms/collapse/lib/models/interfaces'
92
+ import { UI_T_ChangeBootOrder } from '~/components/common/vm/actions/lib/models/types'
93
+ import {
94
+ API_UI_I_VmEditCpu,
95
+ API_UI_I_VmEditMemory,
96
+ UI_I_PciDevice,
97
+ } from '~/lib/models/store/vm/interfaces'
98
+ import { navItemsFunc } from '~/components/common/vm/actions/common/customizeHardware/lib/config/navItems'
99
+
100
+ const props = defineProps<{
101
+ vmName: string
102
+ errorValidationFields: UI_I_ErrorValidationField[]
103
+ storage: UI_I_DatastoreTableItem | null
104
+ guestMachineType: UI_I_OptionItem | null
105
+ guestOsFamily: UI_I_OptionItem | null
106
+ guestOsVersion: UI_I_OptionItem | null
107
+ cpuModels: UI_I_OptionItem[]
108
+ hardDisksForBootOptions: UI_I_SendDataNewHardDisk[] | null
109
+ cdDvdDrivesForBootOptions: UI_I_SendDataNewCdDvdDrive[] | null
110
+ networksForBootOptions: UI_I_SendDataNewNetwork[] | null
111
+ customizeHardwareSubmit: null | Function
112
+ maxCpus: number
113
+ maxMemory: number
114
+ selectedNavItem: UI_T_SelectedNavItem
115
+ nodes: UI_I_FileTreeNode[]
116
+ files: UI_I_FileTreeNode[]
117
+ networksTable: UI_I_NetworkTableItem[]
118
+ cpu?: API_UI_I_VmEditCpu
119
+ memory?: API_UI_I_VmEditMemory
120
+ vmCpuHelpTextSecond?: string
121
+ getDatastoreTableFunc?: (payload: UI_I_TablePayload) => Promise<void>
122
+ datastore: UI_I_DatastoreTableItem[]
123
+ hardDisks?: UI_I_SendDataNewHardDisk[] | null
124
+ cdDvdDrives?: UI_I_SendDataNewCdDvdDrive[] | null
125
+ networks?: UI_I_SendDataNewNetwork[] | null
126
+ videoCard?: UI_I_SendDataVideoCard
127
+ pciDevices?: UI_I_SendDataNewPciDevice[]
128
+ usbController?: string
129
+ options?: UI_I_SendDataVmoptions
130
+ isEdit?: boolean
131
+ isClone?: boolean
132
+ state?: string | number
133
+ passthroughDevices?: UI_I_PciDevice[]
134
+ }>()
135
+ const emits = defineEmits<{
136
+ (
137
+ event: 'change-boot-order',
138
+ value: [
139
+ UI_I_SendDataNewHardDisk[],
140
+ UI_I_SendDataNewCdDvdDrive[],
141
+ UI_I_SendDataNewNetwork[]
142
+ ]
143
+ ): void
144
+ (event: 'send-data', value: UI_I_SendDataCustomizeHardware): void
145
+ (event: 'next'): void
146
+ (event: 'update:vm-name', value: string): void
147
+ (event: 'update:guest-machine-type', value: UI_I_OptionItem | null): void
148
+ (event: 'update:guest-os-family', value: UI_I_OptionItem | null): void
149
+ (event: 'update:guest-os-version', value: UI_I_OptionItem | null): void
150
+ (event: 'get-storage', value: UI_I_TablePayload): void
151
+ (event: 'get-folders-or-files', value: UI_I_FolderOrFileTreePayload): void
152
+ (event: 'get-active-device-child', value: UI_I_FileTreeNode): void
153
+ (event: 'show-datastore-child', value: UI_I_FileTreeNode): void
154
+ (event: 'remove-error-by-title', value: string): void
155
+ (event: 'get-networks-table', value: UI_I_TablePayload): void
156
+ (event: 'get-pci-devices'): void
157
+ }>()
158
+
159
+ const vmNameLocal = computed<string>({
160
+ get() {
161
+ return props.vmName
162
+ },
163
+ set(newValue) {
164
+ emits('update:vm-name', newValue)
165
+ },
166
+ })
167
+ const guestMachineTypeLocal = computed<UI_I_OptionItem | null>({
168
+ get() {
169
+ return props.guestMachineType
170
+ },
171
+ set(newValue) {
172
+ emits('update:guest-machine-type', newValue)
173
+ },
174
+ })
175
+ const guestOsFamilyLocal = computed<UI_I_OptionItem | null>({
176
+ get() {
177
+ return props.guestOsFamily
178
+ },
179
+ set(newValue) {
180
+ emits('update:guest-os-family', newValue)
181
+ },
182
+ })
183
+ const guestOsVersionLocal = computed<UI_I_OptionItem | null>({
184
+ get() {
185
+ return props.guestOsVersion
186
+ },
187
+ set(newValue) {
188
+ emits('update:guest-os-version', newValue)
189
+ },
190
+ })
191
+
192
+ const localization = computed<UI_I_Localization>(() => useLocal())
193
+
194
+ const navItems = computed<UI_I_CollapseNavItem[]>(() =>
195
+ navItemsFunc(localization.value)
196
+ )
197
+ const selectedNavItem = ref<number>(0)
198
+ watch(
199
+ () => props.selectedNavItem,
200
+ (n) => {
201
+ selectedNavItem.value = n
202
+ }
203
+ )
204
+
205
+ const sendDataVirtualHardware = ref<UI_I_SendDataVirtualHardware | null>(null)
206
+ const onSendDataVirtualHardwareMethod = (
207
+ data: UI_I_SendDataVirtualHardware
208
+ ): void => {
209
+ sendDataVirtualHardware.value = data
210
+ sendData()
211
+ }
212
+ const sendDataVmOptions = ref<UI_I_SendDataVmoptions | null>(null)
213
+ const onSendDataVmOptionsMethod = (data: UI_I_SendDataVmoptions): void => {
214
+ sendDataVmOptions.value = data
215
+ sendData()
216
+ }
217
+ const sendData = (): void => {
218
+ emits('send-data', {
219
+ virtualHardware: sendDataVirtualHardware.value,
220
+ vmOptions: sendDataVmOptions.value,
221
+ })
222
+ }
223
+
224
+ const onChangeBootOrder = (data: UI_T_ChangeBootOrder): void => {
225
+ emits('change-boot-order', data)
226
+ }
227
+
228
+ watch(
229
+ () => props.customizeHardwareSubmit,
230
+ (newValue) => {
231
+ newValue && submit(newValue)
232
+ }
233
+ )
234
+ const virtualHardwareInvalid = ref<string[]>([])
235
+ const vmOptionsInvalid = ref<string[]>([])
236
+ const submit = (cb: Function): void => {
237
+ const invalidDevices = [
238
+ ...virtualHardwareInvalid.value,
239
+ ...vmOptionsInvalid.value,
240
+ ]
241
+ .filter((item: string) => !!item)
242
+ .join(', ')
243
+
244
+ if (invalidDevices) {
245
+ showValidationErrors([
246
+ localization.value.thereErrorsFollowingFields.replace(
247
+ '{0}',
248
+ invalidDevices
249
+ ),
250
+ ])
251
+ cb(false)
252
+ return
253
+ }
254
+ onRemoveValidationErrors()
255
+
256
+ // emits('next')
257
+ cb(true)
258
+ }
259
+
260
+ const errors = ref<string[]>([])
261
+ const showValidationErrors = (arr: string[]): void => {
262
+ errors.value = arr
263
+ }
264
+ const onRemoveValidationErrors = (): void => {
265
+ errors.value = []
266
+ }
267
+ </script>
268
+
269
+ <style scoped lang="scss"></style>