bfg-common 1.4.584 → 1.4.586

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 (102) hide show
  1. package/assets/img/icons/icons-sprite-dark-1.svg +437 -407
  2. package/assets/img/icons/icons-sprite-dark-2.svg +347 -343
  3. package/assets/img/icons/icons-sprite-dark-4.svg +259 -255
  4. package/assets/img/icons/icons-sprite-dark-6.svg +94 -94
  5. package/assets/img/icons/icons-sprite-light-1.svg +437 -407
  6. package/assets/img/icons/icons-sprite-light-2.svg +347 -343
  7. package/assets/img/icons/icons-sprite-light-4.svg +259 -255
  8. package/assets/img/icons/icons-sprite-light-6.svg +94 -94
  9. package/assets/scss/common/icons/icons-6.scss +1 -1
  10. package/components/atoms/TheIcon3.vue +50 -50
  11. package/components/atoms/modal/bySteps/BySteps.vue +253 -253
  12. package/components/atoms/stack/StackBlock.vue +185 -185
  13. package/components/atoms/table/dataGrid/DataGrid.vue +1633 -1633
  14. package/components/atoms/table/dataGrid/DataGridColumnSwitch.vue +222 -222
  15. package/components/common/browse/BrowseNew.vue +237 -237
  16. package/components/common/browse/BrowseOld.vue +217 -217
  17. package/components/common/browse/blocks/contents/Files.vue +35 -35
  18. package/components/common/browse/blocks/contents/FilesOld.vue +70 -70
  19. package/components/common/browse/blocks/contents/filesNew/FilesNew.vue +92 -92
  20. package/components/common/browse/blocks/contents/filesNew/Skeleton.vue +18 -18
  21. package/components/common/context/lib/models/interfaces.ts +30 -30
  22. package/components/common/context/recursion/Recursion.vue +86 -86
  23. package/components/common/context/recursion/RecursionNew.vue +199 -199
  24. package/components/common/context/recursion/RecursionOld.vue +213 -213
  25. package/components/common/layout/theHeader/helpMenu/About.vue +85 -85
  26. package/components/common/layout/theHeader/helpMenu/aboutNew/AboutNew.vue +103 -103
  27. package/components/common/mainNavigationPanel/MainNavigationPanel.vue +152 -152
  28. package/components/common/pages/home/headline/HeadlineNew.vue +24 -1
  29. package/components/common/pages/home/resource/ResourceNew.vue +5 -0
  30. package/components/common/pages/home/widgets/WidgetsNew.vue +5 -0
  31. package/components/common/pages/shortcuts/block/BlockNew.vue +10 -1
  32. package/components/common/spiceConsole/Drawer.vue +370 -370
  33. package/components/common/spiceConsole/lib/models/interfaces.ts +5 -5
  34. package/components/common/split/vertical/Vertical.vue +160 -160
  35. package/components/common/vm/actions/add/Add.vue +617 -617
  36. package/components/common/vm/actions/clone/lib/config/steps.ts +129 -129
  37. package/components/common/vm/actions/common/customizeHardware/CustomizeHardware.vue +267 -267
  38. package/components/common/vm/actions/common/customizeHardware/CustomizeHardwareNew.vue +264 -264
  39. package/components/common/vm/actions/common/customizeHardware/virtualHardware/browseView/BrowseView.vue +219 -219
  40. package/components/common/vm/actions/common/customizeHardware/virtualHardware/bus/BusNew.vue +118 -118
  41. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/CdDvdDriveNew.vue +161 -161
  42. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/CdDvdDriveOld.vue +165 -165
  43. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/media/Media.vue +25 -25
  44. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/media/MediaNew.vue +55 -55
  45. package/components/common/vm/actions/common/customizeHardware/virtualHardware/lib/config/dropdownItems.ts +147 -147
  46. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/mode/ModeOld.vue +55 -55
  47. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/sharing/SharingNew.vue +44 -44
  48. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/NewNetworkNew.vue +124 -124
  49. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/location/LocationOld.vue +134 -134
  50. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/location/new/New.vue +63 -63
  51. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/location/new/table/Table.vue +74 -74
  52. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/location/new/table/lib/config/config.ts +95 -95
  53. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/macAddress/MacAddress.vue +119 -119
  54. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/macAddress/MacAddressNew.vue +69 -69
  55. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/macAddress/MacAddressOld.vue +83 -83
  56. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/NewPciDeviceNew.vue +85 -85
  57. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/NewPciDeviceOld.vue +91 -91
  58. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/directPathIo/DirectPathIoNew.vue +35 -35
  59. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/dynamicDirectPathIo/DynamicDirectPathIoNew.vue +48 -48
  60. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/note/Note.vue +15 -15
  61. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/note/NoteNew.vue +42 -42
  62. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/note/NoteOld.vue +30 -30
  63. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/nvidiaGrid/NvidiaGridNew.vue +30 -30
  64. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/typeSelection/TypeSelectionNew.vue +46 -46
  65. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newUsbController/NewUsbControllerNew.vue +56 -56
  66. package/components/common/vm/actions/common/customizeHardware/virtualHardware/other/Other.vue +16 -16
  67. package/components/common/vm/actions/common/customizeHardware/virtualHardware/other/OtherNew.vue +27 -27
  68. package/components/common/vm/actions/common/customizeHardware/virtualHardware/videoCard/totalVideoMemory/TotalVideoMemoryNew.vue +54 -54
  69. package/components/common/vm/actions/common/customizeHardware/vmoptions/Vmoptions.vue +145 -145
  70. package/components/common/vm/actions/common/customizeHardware/vmoptions/VmoptionsNew.vue +102 -102
  71. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/BootOptionsNew.vue +75 -75
  72. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/delay/Delay.vue +26 -26
  73. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/firmware/Firmware.vue +57 -57
  74. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/firmware/FirmwareNew.vue +42 -42
  75. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/menu/MenuNew.vue +25 -25
  76. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/order/Order.vue +171 -171
  77. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/order/OrderNew.vue +50 -50
  78. package/components/common/vm/actions/common/customizeHardware/vmoptions/generalOptions/GeneralOptionsNew.vue +141 -141
  79. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/New.vue +140 -140
  80. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/copyPaste/CopyPasteNew.vue +30 -30
  81. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/fileTransfer/FileTransferNew.vue +30 -30
  82. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/folderSharing/FolderSharingNew.vue +30 -30
  83. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/keymap/Keymap.vue +32 -32
  84. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/keymap/KeymapNew.vue +39 -39
  85. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/password/PasswordNew.vue +100 -100
  86. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/usbRedirection/UsbRedirectionNew.vue +38 -38
  87. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/usbRedirection/UsbRedirectionOld.vue +44 -44
  88. package/components/common/vm/actions/common/select/storage/Storage.vue +130 -130
  89. package/components/common/vm/actions/common/select/storage/StorageOld.vue +129 -129
  90. package/components/common/vm/actions/common/select/storage/new/New.vue +159 -159
  91. package/components/common/vm/actions/editSettings/EditSettings.vue +214 -214
  92. package/components/common/vm/actions/editSettings/EditSettingsOld.vue +182 -182
  93. package/components/common/vm/actions/editSettings/new/New.vue +176 -176
  94. package/components/common/vm/actions/editSettings/new/Skeleton.vue +88 -88
  95. package/composables/productNameLocal.ts +30 -30
  96. package/package.json +2 -2
  97. package/plugins/date.ts +233 -233
  98. package/plugins/recursion.ts +311 -311
  99. package/public/spice-console/lib/images/bitmap.js +203 -203
  100. package/public/spice-console/network/spicechannel.js +383 -383
  101. package/store/main/mutations.ts +7 -7
  102. package/store/main/state.ts +7 -7
@@ -1,214 +1,214 @@
1
- <template>
2
- <common-vm-actions-edit-settings-new
3
- v-if="isNewView"
4
- v-model:vm-name="vmName"
5
- v-model:vm-settings="vmSettingsLocal"
6
- :nodes="props.nodes"
7
- :files="props.files"
8
- :project="props.project"
9
- :loading="loadingLocal"
10
- :datastore="props.datastore"
11
- :networks-table="props.networksTable"
12
- :selected-nav-item="selectedNavItem"
13
- :vm-cpu-help-text-second="props.vmCpuHelpTextSecond"
14
- :error-validation-fields="props.errorValidationFields"
15
- :virtual-hardware-networks="virtualHardwareNetworksLocal"
16
- :virtual-hardware-hard-disks="virtualHardwareHardDisksLocal"
17
- :virtual-hardware-cd-dvd-drives="virtualHardwareCdDvdDrivesLocal"
18
- :state="props.state"
19
- :vm-name-old="props.vmSettings?.name"
20
- :passthrough-devices="props.passthroughDevices"
21
- :get-datastore-table-func="props.getDatastoreTableFunc"
22
- @hide="emits('hide')"
23
- @validate="validateSendData"
24
- @update-vm="emits('update-vm')"
25
- @get-storage="emits('get-storage', $event)"
26
- @get-pci-devices="emits('get-pci-devices')"
27
- @change-boot-order="onChangeBootOrder"
28
- @get-networks-table="emits('get-networks-table', $event)"
29
- @get-folders-or-files="emits('get-folders-or-files', $event)"
30
- @show-datastore-child="emits('show-datastore-child', $event)"
31
- @get-active-device-child="emits('get-active-device-child', $event)"
32
- @change-customize-hardware="onChangeCustomizeHardware"
33
- />
34
- <common-vm-actions-edit-settings-old
35
- v-else
36
- v-model:vm-name="vmName"
37
- v-model:vm-settings="vmSettingsLocal"
38
- :nodes="props.nodes"
39
- :files="props.files"
40
- :project="props.project"
41
- :loading="loadingLocal"
42
- :datastore="props.datastore"
43
- :networks-table="props.networksTable"
44
- :selected-nav-item="selectedNavItem"
45
- :vm-cpu-help-text-second="props.vmCpuHelpTextSecond"
46
- :error-validation-fields="props.errorValidationFields"
47
- :virtual-hardware-networks="virtualHardwareNetworksLocal"
48
- :virtual-hardware-hard-disks="virtualHardwareHardDisksLocal"
49
- :virtual-hardware-cd-dvd-drives="virtualHardwareCdDvdDrivesLocal"
50
- :state="props.state"
51
- :vm-name-old="props.vmSettings?.name"
52
- :passthrough-devices="props.passthroughDevices"
53
- :get-datastore-table-func="props.getDatastoreTableFunc"
54
- @hide="emits('hide')"
55
- @validate="validateSendData"
56
- @update-vm="emits('update-vm')"
57
- @get-storage="emits('get-storage', $event)"
58
- @get-pci-devices="emits('get-pci-devices')"
59
- @change-boot-order="onChangeBootOrder"
60
- @get-networks-table="emits('get-networks-table', $event)"
61
- @get-folders-or-files="emits('get-folders-or-files', $event)"
62
- @show-datastore-child="emits('show-datastore-child', $event)"
63
- @get-active-device-child="emits('get-active-device-child', $event)"
64
- @change-customize-hardware="onChangeCustomizeHardware"
65
- />
66
- </template>
67
-
68
- <script setup lang="ts">
69
- import type { UI_T_Project } from '~/lib/models/types'
70
- import type { UI_I_FileTreeNode } from '~/components/lib/models/interfaces'
71
- import type { UI_I_NetworkTableItem } from '~/lib/models/store/network/interfaces'
72
- import type {
73
- UI_I_PciDevice,
74
- UI_I_VmSettings,
75
- } from '~/lib/models/store/vm/interfaces'
76
- import type { UI_I_Localization } from '~/lib/models/interfaces'
77
- import type { UI_I_SendDataCustomizeHardware } from '~/components/common/vm/actions/common/customizeHardware/lib/models/interfaces'
78
- import type {
79
- UI_I_SendDataNewCdDvdDrive,
80
- UI_I_SendDataNewHardDisk,
81
- UI_I_SendDataNewNetwork,
82
- UI_I_SendDataCpu,
83
- UI_I_SendDataMemory,
84
- } from '~/components/common/vm/actions/common/customizeHardware/virtualHardware/lib/models/interfaces'
85
- import type { UI_T_SelectedNavItem } from '~/components/common/vm/actions/common/lib/models/types'
86
- import type { UI_I_ErrorValidationField } from '~/lib/models/store/interfaces'
87
- import type { UI_I_TablePayload } from '~/lib/models/table/interfaces'
88
- import type {
89
- UI_I_DatastoreTableItem,
90
- UI_I_FolderOrFileTreePayload,
91
- } from '~/lib/models/store/storage/interfaces'
92
- import type { UI_T_ChangeBootOrder } from '~/components/common/vm/actions/lib/models/types'
93
- import type { UI_T_EditVmFinishFunc } from '~/components/common/vm/actions/editSettings/lib/models/types'
94
- import type { UI_I_Capabilities } from '~/components/common/vm/actions/common/lib/models/interfaces'
95
- import { mapCapabilities } from '~/components/common/vm/actions/common/lib/utils/capabilities'
96
-
97
- const props = defineProps<{
98
- project: UI_T_Project
99
- loading: boolean
100
- vmSettings: UI_I_VmSettings | null
101
- nodes: UI_I_FileTreeNode[]
102
- files: UI_I_FileTreeNode[]
103
- networksTable: UI_I_NetworkTableItem[]
104
- errorValidationFields: UI_I_ErrorValidationField<string>[]
105
- vmCpuHelpTextSecond: string
106
- vmId: string
107
- datastore: UI_I_DatastoreTableItem[]
108
- validateSendDataFunc: UI_T_EditVmFinishFunc
109
- getDatastoreTableFunc?: (payload: UI_I_TablePayload) => Promise<void>
110
- state?: string | number
111
- passthroughDevices?: UI_I_PciDevice[]
112
- capabilities?: UI_I_Capabilities
113
- }>()
114
-
115
- const emits = defineEmits<{
116
- (event: 'hide'): void
117
- (event: 'update-vm'): void
118
- (event: 'get-storage', value: UI_I_TablePayload): void
119
- (event: 'get-folders-or-files', value: UI_I_FolderOrFileTreePayload): void
120
- (event: 'get-active-device-child', value: UI_I_FileTreeNode): void
121
- (event: 'show-datastore-child', value: UI_I_FileTreeNode): void
122
- (event: 'get-networks-table', value: UI_I_TablePayload): void
123
- (event: 'get-pci-devices'): void
124
- }>()
125
-
126
- const { $store }: any = useNuxtApp()
127
- const isNewView = computed<boolean>(() => $store.getters['main/getIsNewView'])
128
-
129
- const localization = computed<UI_I_Localization>(() => useLocal())
130
-
131
- watch(
132
- () => props.capabilities,
133
- () => {
134
- if (props.capabilities) mapCapabilities(props.capabilities)
135
- },
136
- { deep: true, immediate: true }
137
- )
138
-
139
- const selectedNavItem = ref<UI_T_SelectedNavItem>(0)
140
-
141
- const loadingLocal = ref<boolean>(false)
142
- watch(
143
- () => props.loading,
144
- (newValue: boolean) => {
145
- loadingLocal.value = newValue
146
- },
147
- { immediate: true }
148
- )
149
-
150
- const vmSettingsLocal = computed<UI_I_VmSettings | null>(() => props.vmSettings)
151
-
152
- const vmName = ref<string>(vmSettingsLocal.value?.name || '')
153
- watch(vmSettingsLocal, (newValue) => {
154
- vmName.value = newValue?.name || ''
155
- })
156
-
157
- const virtualHardwareHardDisks = ref<UI_I_SendDataNewHardDisk[] | null>(null)
158
- const virtualHardwareCdDvdDrives = ref<UI_I_SendDataNewCdDvdDrive[] | null>(
159
- null
160
- )
161
- const virtualHardwareNetworks = ref<UI_I_SendDataNewNetwork[] | null>(null)
162
- const onChangeBootOrder = (data: UI_T_ChangeBootOrder): void => {
163
- virtualHardwareHardDisks.value = data[0]
164
- virtualHardwareCdDvdDrives.value = data[1]
165
- virtualHardwareNetworks.value = data[2]
166
- }
167
-
168
- const customizeHardware = ref<UI_I_SendDataCustomizeHardware | null>(null)
169
- const onChangeCustomizeHardware = (
170
- data: UI_I_SendDataCustomizeHardware
171
- ): void => {
172
- customizeHardware.value = data
173
- }
174
- const virtualHardwareHardDisksLocal = computed<
175
- UI_I_SendDataNewHardDisk[] | null
176
- >(() => customizeHardware.value?.virtualHardware?.hardDisks || null)
177
- const virtualHardwareNetworksLocal = computed<UI_I_SendDataNewNetwork[] | null>(
178
- () => customizeHardware.value?.virtualHardware?.networks || null
179
- )
180
- const virtualHardwareCdDvdDrivesLocal = computed<
181
- UI_I_SendDataNewCdDvdDrive[] | null
182
- >(() => customizeHardware.value?.virtualHardware?.cdDvdDrives || null)
183
-
184
- const virtualHardwareCpu = computed<UI_I_SendDataCpu | null>(
185
- () => customizeHardware.value?.virtualHardware?.cpu || null
186
- )
187
- const virtualHardwareMemory = computed<UI_I_SendDataMemory | null>(
188
- () => customizeHardware.value?.virtualHardware?.memory || null
189
- )
190
-
191
- const validateSendData = async (): Promise<void> => {
192
- loadingLocal.value = true
193
- props
194
- .validateSendDataFunc(
195
- vmSettingsLocal.value,
196
- virtualHardwareCpu.value,
197
- virtualHardwareMemory.value,
198
- customizeHardware.value,
199
- virtualHardwareNetworks.value,
200
- virtualHardwareHardDisks.value,
201
- virtualHardwareCdDvdDrives.value,
202
- vmName.value,
203
- localization.value,
204
- props.vmId
205
- )
206
- .then((data) => {
207
- loadingLocal.value = false
208
-
209
- !data && emits('update-vm')
210
- })
211
- }
212
- </script>
213
-
214
- <style scoped lang="scss"></style>
1
+ <template>
2
+ <common-vm-actions-edit-settings-new
3
+ v-if="isNewView"
4
+ v-model:vm-name="vmName"
5
+ v-model:vm-settings="vmSettingsLocal"
6
+ :nodes="props.nodes"
7
+ :files="props.files"
8
+ :project="props.project"
9
+ :loading="loadingLocal"
10
+ :datastore="props.datastore"
11
+ :networks-table="props.networksTable"
12
+ :selected-nav-item="selectedNavItem"
13
+ :vm-cpu-help-text-second="props.vmCpuHelpTextSecond"
14
+ :error-validation-fields="props.errorValidationFields"
15
+ :virtual-hardware-networks="virtualHardwareNetworksLocal"
16
+ :virtual-hardware-hard-disks="virtualHardwareHardDisksLocal"
17
+ :virtual-hardware-cd-dvd-drives="virtualHardwareCdDvdDrivesLocal"
18
+ :state="props.state"
19
+ :vm-name-old="props.vmSettings?.name"
20
+ :passthrough-devices="props.passthroughDevices"
21
+ :get-datastore-table-func="props.getDatastoreTableFunc"
22
+ @hide="emits('hide')"
23
+ @validate="validateSendData"
24
+ @update-vm="emits('update-vm')"
25
+ @get-storage="emits('get-storage', $event)"
26
+ @get-pci-devices="emits('get-pci-devices')"
27
+ @change-boot-order="onChangeBootOrder"
28
+ @get-networks-table="emits('get-networks-table', $event)"
29
+ @get-folders-or-files="emits('get-folders-or-files', $event)"
30
+ @show-datastore-child="emits('show-datastore-child', $event)"
31
+ @get-active-device-child="emits('get-active-device-child', $event)"
32
+ @change-customize-hardware="onChangeCustomizeHardware"
33
+ />
34
+ <common-vm-actions-edit-settings-old
35
+ v-else
36
+ v-model:vm-name="vmName"
37
+ v-model:vm-settings="vmSettingsLocal"
38
+ :nodes="props.nodes"
39
+ :files="props.files"
40
+ :project="props.project"
41
+ :loading="loadingLocal"
42
+ :datastore="props.datastore"
43
+ :networks-table="props.networksTable"
44
+ :selected-nav-item="selectedNavItem"
45
+ :vm-cpu-help-text-second="props.vmCpuHelpTextSecond"
46
+ :error-validation-fields="props.errorValidationFields"
47
+ :virtual-hardware-networks="virtualHardwareNetworksLocal"
48
+ :virtual-hardware-hard-disks="virtualHardwareHardDisksLocal"
49
+ :virtual-hardware-cd-dvd-drives="virtualHardwareCdDvdDrivesLocal"
50
+ :state="props.state"
51
+ :vm-name-old="props.vmSettings?.name"
52
+ :passthrough-devices="props.passthroughDevices"
53
+ :get-datastore-table-func="props.getDatastoreTableFunc"
54
+ @hide="emits('hide')"
55
+ @validate="validateSendData"
56
+ @update-vm="emits('update-vm')"
57
+ @get-storage="emits('get-storage', $event)"
58
+ @get-pci-devices="emits('get-pci-devices')"
59
+ @change-boot-order="onChangeBootOrder"
60
+ @get-networks-table="emits('get-networks-table', $event)"
61
+ @get-folders-or-files="emits('get-folders-or-files', $event)"
62
+ @show-datastore-child="emits('show-datastore-child', $event)"
63
+ @get-active-device-child="emits('get-active-device-child', $event)"
64
+ @change-customize-hardware="onChangeCustomizeHardware"
65
+ />
66
+ </template>
67
+
68
+ <script setup lang="ts">
69
+ import type { UI_T_Project } from '~/lib/models/types'
70
+ import type { UI_I_FileTreeNode } from '~/components/lib/models/interfaces'
71
+ import type { UI_I_NetworkTableItem } from '~/lib/models/store/network/interfaces'
72
+ import type {
73
+ UI_I_PciDevice,
74
+ UI_I_VmSettings,
75
+ } from '~/lib/models/store/vm/interfaces'
76
+ import type { UI_I_Localization } from '~/lib/models/interfaces'
77
+ import type { UI_I_SendDataCustomizeHardware } from '~/components/common/vm/actions/common/customizeHardware/lib/models/interfaces'
78
+ import type {
79
+ UI_I_SendDataNewCdDvdDrive,
80
+ UI_I_SendDataNewHardDisk,
81
+ UI_I_SendDataNewNetwork,
82
+ UI_I_SendDataCpu,
83
+ UI_I_SendDataMemory,
84
+ } from '~/components/common/vm/actions/common/customizeHardware/virtualHardware/lib/models/interfaces'
85
+ import type { UI_T_SelectedNavItem } from '~/components/common/vm/actions/common/lib/models/types'
86
+ import type { UI_I_ErrorValidationField } from '~/lib/models/store/interfaces'
87
+ import type { UI_I_TablePayload } from '~/lib/models/table/interfaces'
88
+ import type {
89
+ UI_I_DatastoreTableItem,
90
+ UI_I_FolderOrFileTreePayload,
91
+ } from '~/lib/models/store/storage/interfaces'
92
+ import type { UI_T_ChangeBootOrder } from '~/components/common/vm/actions/lib/models/types'
93
+ import type { UI_T_EditVmFinishFunc } from '~/components/common/vm/actions/editSettings/lib/models/types'
94
+ import type { UI_I_Capabilities } from '~/components/common/vm/actions/common/lib/models/interfaces'
95
+ import { mapCapabilities } from '~/components/common/vm/actions/common/lib/utils/capabilities'
96
+
97
+ const props = defineProps<{
98
+ project: UI_T_Project
99
+ loading: boolean
100
+ vmSettings: UI_I_VmSettings | null
101
+ nodes: UI_I_FileTreeNode[]
102
+ files: UI_I_FileTreeNode[]
103
+ networksTable: UI_I_NetworkTableItem[]
104
+ errorValidationFields: UI_I_ErrorValidationField<string>[]
105
+ vmCpuHelpTextSecond: string
106
+ vmId: string
107
+ datastore: UI_I_DatastoreTableItem[]
108
+ validateSendDataFunc: UI_T_EditVmFinishFunc
109
+ getDatastoreTableFunc?: (payload: UI_I_TablePayload) => Promise<void>
110
+ state?: string | number
111
+ passthroughDevices?: UI_I_PciDevice[]
112
+ capabilities?: UI_I_Capabilities
113
+ }>()
114
+
115
+ const emits = defineEmits<{
116
+ (event: 'hide'): void
117
+ (event: 'update-vm'): void
118
+ (event: 'get-storage', value: UI_I_TablePayload): void
119
+ (event: 'get-folders-or-files', value: UI_I_FolderOrFileTreePayload): void
120
+ (event: 'get-active-device-child', value: UI_I_FileTreeNode): void
121
+ (event: 'show-datastore-child', value: UI_I_FileTreeNode): void
122
+ (event: 'get-networks-table', value: UI_I_TablePayload): void
123
+ (event: 'get-pci-devices'): void
124
+ }>()
125
+
126
+ const { $store }: any = useNuxtApp()
127
+ const isNewView = computed<boolean>(() => $store.getters['main/getIsNewView'])
128
+
129
+ const localization = computed<UI_I_Localization>(() => useLocal())
130
+
131
+ watch(
132
+ () => props.capabilities,
133
+ () => {
134
+ if (props.capabilities) mapCapabilities(props.capabilities)
135
+ },
136
+ { deep: true, immediate: true }
137
+ )
138
+
139
+ const selectedNavItem = ref<UI_T_SelectedNavItem>(0)
140
+
141
+ const loadingLocal = ref<boolean>(false)
142
+ watch(
143
+ () => props.loading,
144
+ (newValue: boolean) => {
145
+ loadingLocal.value = newValue
146
+ },
147
+ { immediate: true }
148
+ )
149
+
150
+ const vmSettingsLocal = computed<UI_I_VmSettings | null>(() => props.vmSettings)
151
+
152
+ const vmName = ref<string>(vmSettingsLocal.value?.name || '')
153
+ watch(vmSettingsLocal, (newValue) => {
154
+ vmName.value = newValue?.name || ''
155
+ })
156
+
157
+ const virtualHardwareHardDisks = ref<UI_I_SendDataNewHardDisk[] | null>(null)
158
+ const virtualHardwareCdDvdDrives = ref<UI_I_SendDataNewCdDvdDrive[] | null>(
159
+ null
160
+ )
161
+ const virtualHardwareNetworks = ref<UI_I_SendDataNewNetwork[] | null>(null)
162
+ const onChangeBootOrder = (data: UI_T_ChangeBootOrder): void => {
163
+ virtualHardwareHardDisks.value = data[0]
164
+ virtualHardwareCdDvdDrives.value = data[1]
165
+ virtualHardwareNetworks.value = data[2]
166
+ }
167
+
168
+ const customizeHardware = ref<UI_I_SendDataCustomizeHardware | null>(null)
169
+ const onChangeCustomizeHardware = (
170
+ data: UI_I_SendDataCustomizeHardware
171
+ ): void => {
172
+ customizeHardware.value = data
173
+ }
174
+ const virtualHardwareHardDisksLocal = computed<
175
+ UI_I_SendDataNewHardDisk[] | null
176
+ >(() => customizeHardware.value?.virtualHardware?.hardDisks || null)
177
+ const virtualHardwareNetworksLocal = computed<UI_I_SendDataNewNetwork[] | null>(
178
+ () => customizeHardware.value?.virtualHardware?.networks || null
179
+ )
180
+ const virtualHardwareCdDvdDrivesLocal = computed<
181
+ UI_I_SendDataNewCdDvdDrive[] | null
182
+ >(() => customizeHardware.value?.virtualHardware?.cdDvdDrives || null)
183
+
184
+ const virtualHardwareCpu = computed<UI_I_SendDataCpu | null>(
185
+ () => customizeHardware.value?.virtualHardware?.cpu || null
186
+ )
187
+ const virtualHardwareMemory = computed<UI_I_SendDataMemory | null>(
188
+ () => customizeHardware.value?.virtualHardware?.memory || null
189
+ )
190
+
191
+ const validateSendData = async (): Promise<void> => {
192
+ loadingLocal.value = true
193
+ props
194
+ .validateSendDataFunc(
195
+ vmSettingsLocal.value,
196
+ virtualHardwareCpu.value,
197
+ virtualHardwareMemory.value,
198
+ customizeHardware.value,
199
+ virtualHardwareNetworks.value,
200
+ virtualHardwareHardDisks.value,
201
+ virtualHardwareCdDvdDrives.value,
202
+ vmName.value,
203
+ localization.value,
204
+ props.vmId
205
+ )
206
+ .then((data) => {
207
+ loadingLocal.value = false
208
+
209
+ !data && emits('update-vm')
210
+ })
211
+ }
212
+ </script>
213
+
214
+ <style scoped lang="scss"></style>