bfg-common 1.5.239 → 1.5.240

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 (151) hide show
  1. package/CODE_STYLE.md +109 -109
  2. package/assets/scss/common/theme.scss +6 -0
  3. package/components/atoms/TheIcon3.vue +50 -50
  4. package/components/atoms/perPage/PerPage.vue +58 -58
  5. package/components/atoms/stack/StackBlock.vue +185 -185
  6. package/components/atoms/table/dataGrid/DataGrid.vue +1717 -1717
  7. package/components/atoms/table/dataGrid/lib/config/settingsTable.ts +94 -94
  8. package/components/atoms/table/dataGrid/lib/utils/export.ts +16 -16
  9. package/components/atoms/table/info/lib/models/interfaces.ts +10 -10
  10. package/components/atoms/tabs/VerticalTabs.vue +105 -105
  11. package/components/common/backup/storage/actions/add/Add.vue +247 -247
  12. package/components/common/backup/storage/actions/add/New.vue +281 -281
  13. package/components/common/backup/storage/actions/add/Old.vue +114 -114
  14. package/components/common/backup/storage/actions/add/lib/config/steps.ts +168 -168
  15. package/components/common/backup/storage/actions/add/steps/nameAndConfigure/NameAndConfigure.vue +41 -41
  16. package/components/common/backup/storage/actions/add/steps/nameAndConfigure/NameAndConfigureNew.vue +294 -294
  17. package/components/common/backup/storage/actions/add/steps/readyComplete/ReadyComplete.vue +45 -45
  18. package/components/common/backup/storage/actions/add/steps/readyComplete/lib/config/propertiesDetails.ts +242 -242
  19. package/components/common/backup/storage/actions/delete/Delete.vue +65 -65
  20. package/components/common/browse/BrowseNew.vue +8 -2
  21. package/components/common/browse/blocks/contents/filesNew/Skeleton.vue +18 -18
  22. package/components/common/context/lib/models/interfaces.ts +31 -31
  23. package/components/common/diagramMain/DiagramMain.vue +897 -897
  24. package/components/common/diagramMain/Header.vue +214 -214
  25. package/components/common/layout/theHeader/helpMenu/About.vue +82 -82
  26. package/components/common/layout/theHeader/userMenu/modals/preferences/view/ViewOld.vue +112 -112
  27. package/components/common/monitor/overview/OverviewOld.vue +139 -139
  28. package/components/common/pages/home/headline/Headline.vue +45 -45
  29. package/components/common/pages/home/headline/HeadlineOld.vue +42 -42
  30. package/components/common/pages/home/lib/models/interfaces.ts +48 -48
  31. package/components/common/pages/home/widgets/Widgets.vue +49 -49
  32. package/components/common/pages/home/widgets/WidgetsNew.vue +86 -86
  33. package/components/common/pages/home/widgets/WidgetsOld.vue +34 -34
  34. package/components/common/pages/home/widgets/hosts/Hosts.vue +27 -27
  35. package/components/common/pages/home/widgets/hosts/lib/config/items.ts +23 -23
  36. package/components/common/pages/home/widgets/vms/Vms.vue +26 -26
  37. package/components/common/pages/home/widgets/vms/VmsOld.vue +35 -35
  38. package/components/common/pages/home/widgets/vms/lib/config/items.ts +19 -19
  39. package/components/common/pages/packages/Packages.vue +208 -208
  40. package/components/common/pages/shortcuts/block/BlockOld.vue +68 -68
  41. package/components/common/readyToComplete/ReadyToComplete.vue +17 -17
  42. package/components/common/recursionTree/RecursionTree.vue +223 -223
  43. package/components/common/select/button/ButtonDropdown.vue +108 -108
  44. package/components/common/spiceConsole/Drawer.vue +377 -377
  45. package/components/common/spiceConsole/lib/models/interfaces.ts +5 -5
  46. package/components/common/vm/actions/add/folderTreeView/FolderTreeView.vue +72 -72
  47. package/components/common/vm/actions/add/folderTreeView/New.vue +40 -40
  48. package/components/common/vm/actions/add/folderTreeView/Old.vue +50 -50
  49. package/components/common/vm/actions/clone/lib/config/steps.ts +291 -291
  50. package/components/common/vm/actions/clone/toTemplate/lib/config/steps.ts +116 -116
  51. package/components/common/vm/actions/common/customizeHardware/CustomizeHardwareNew.vue +5 -2
  52. package/components/common/vm/actions/common/customizeHardware/virtualHardware/VirtualHardwareNew.vue +7 -7
  53. package/components/common/vm/actions/common/customizeHardware/virtualHardware/VirtualHardwareOld.vue +319 -319
  54. package/components/common/vm/actions/common/customizeHardware/virtualHardware/browseView/BrowseView.vue +219 -219
  55. package/components/common/vm/actions/common/customizeHardware/virtualHardware/bus/Bus.vue +100 -100
  56. package/components/common/vm/actions/common/customizeHardware/virtualHardware/bus/BusNew.vue +2 -2
  57. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/CdDvdDrive.vue +232 -232
  58. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/CdDvdDriveNew.vue +4 -0
  59. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/CdDvdDriveOld.vue +168 -168
  60. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/media/Media.vue +25 -25
  61. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/media/MediaNew.vue +78 -78
  62. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/media/MediaOld.vue +50 -50
  63. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/CpuNew.vue +194 -190
  64. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/model/ModelNew.vue +246 -237
  65. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/shares/Shares.vue +140 -140
  66. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/shares/SharesNew.vue +6 -1
  67. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/shares/lib/config/options.ts +28 -28
  68. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/tooltip/TooltipNew.vue +154 -154
  69. package/components/common/vm/actions/common/customizeHardware/virtualHardware/limit/Limit.vue +220 -220
  70. package/components/common/vm/actions/common/customizeHardware/virtualHardware/memory/Memory.vue +307 -307
  71. package/components/common/vm/actions/common/customizeHardware/virtualHardware/memory/MemoryNew.vue +158 -154
  72. package/components/common/vm/actions/common/customizeHardware/virtualHardware/memory/hotPlug/HotPlugNew.vue +8 -2
  73. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/NewHardDisk.vue +382 -382
  74. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/NewHardDiskNew.vue +4 -0
  75. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/file/FileNew.vue +8 -3
  76. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/location/Location.vue +151 -151
  77. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/location/LocationNew.vue +73 -73
  78. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/location/LocationOld.vue +83 -83
  79. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/location/StorageModalNew.vue +1 -0
  80. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/maximumSize/MaximumSizeNew.vue +8 -4
  81. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/provisioning/ProvisioningNew.vue +6 -1
  82. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/sharing/SharingNew.vue +6 -1
  83. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/NewNetwork.vue +288 -288
  84. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/NewNetworkNew.vue +1 -1
  85. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/location/new/New.vue +4 -3
  86. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/location/new/table/Table.vue +1 -0
  87. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/location/new/table/lib/config/config.ts +94 -94
  88. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/macAddress/MacAddress.vue +119 -119
  89. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/NewPciDevice.vue +205 -205
  90. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/directPathIo/DirectPathIoNew.vue +66 -66
  91. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/directPathIo/DirectPathIoOld.vue +62 -62
  92. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/dynamicDirectPathIo/DynamicDirectPathIo.vue +31 -31
  93. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/dynamicDirectPathIo/DynamicDirectPathIoOld.vue +76 -76
  94. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/note/Note.vue +15 -15
  95. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/note/NoteNew.vue +42 -42
  96. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/note/NoteOld.vue +30 -30
  97. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/nvidiaGrid/NvidiaGridOld.vue +84 -84
  98. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newUsbController/NewUsbControllerNew.vue +1 -0
  99. package/components/common/vm/actions/common/customizeHardware/virtualHardware/other/Other.vue +16 -16
  100. package/components/common/vm/actions/common/customizeHardware/virtualHardware/other/OtherNew.vue +36 -30
  101. package/components/common/vm/actions/common/customizeHardware/virtualHardware/other/inputDevices/InputDevicesNew.vue +40 -40
  102. package/components/common/vm/actions/common/customizeHardware/virtualHardware/reservation/ReservationNew.vue +5 -2
  103. package/components/common/vm/actions/common/customizeHardware/virtualHardware/videoCard/VideoCardNew.vue +5 -2
  104. package/components/common/vm/actions/common/customizeHardware/vmoptions/Vmoptions.vue +145 -145
  105. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/BootOptionsNew.vue +85 -81
  106. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/delay/Delay.vue +32 -32
  107. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/firmware/Firmware.vue +60 -60
  108. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/order/Order.vue +174 -174
  109. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/order/OrderNew.vue +71 -67
  110. package/components/common/vm/actions/common/customizeHardware/vmoptions/generalOptions/GeneralOptionsNew.vue +150 -149
  111. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/New.vue +146 -140
  112. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/copyPaste/CopyPasteNew.vue +31 -31
  113. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/fileTransfer/FileTransferNew.vue +31 -31
  114. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/keymap/Keymap.vue +32 -32
  115. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/password/Password.vue +103 -103
  116. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/password/PasswordNew.vue +128 -128
  117. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/usbRedirection/UsbRedirection.vue +28 -28
  118. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/usbRedirection/UsbRedirectionNew.vue +39 -39
  119. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/usbRedirection/UsbRedirectionOld.vue +44 -44
  120. package/components/common/vm/actions/common/customizeHardware/vmoptions/tools/ToolsNew.vue +5 -1
  121. package/components/common/vm/actions/common/lib/utils/capabilities.ts +52 -52
  122. package/components/common/vm/actions/common/select/compatibility/Old.vue +107 -107
  123. package/components/common/vm/actions/common/select/computeResource/treeView/New.vue +44 -44
  124. package/components/common/vm/actions/common/select/computeResource/treeView/TreeView.vue +118 -118
  125. package/components/common/vm/actions/common/select/createType/CreateType.vue +38 -38
  126. package/components/common/vm/actions/common/select/createType/lib/models/interfaces.ts +5 -5
  127. package/components/common/vm/actions/common/select/os/Old.vue +152 -152
  128. package/components/common/vm/actions/common/select/os/Os.vue +139 -139
  129. package/components/common/vm/actions/common/select/storage/Storage.vue +2 -0
  130. package/components/common/vm/actions/common/select/storage/new/New.vue +6 -1
  131. package/components/common/vm/actions/common/select/storage/new/lib/config/table.ts +2 -1
  132. package/components/common/vm/actions/common/select/storage/new/lib/models/interfaces.ts +5 -5
  133. package/components/common/vm/actions/common/select/storage/new/lib/utils/utils.ts +21 -21
  134. package/components/common/vm/actions/editSettings/new/Skeleton.vue +88 -88
  135. package/components/common/wizards/vm/migrate/lib/config/constructDataReady.ts +220 -220
  136. package/components/common/wizards/vm/migrate/lib/config/steps.ts +157 -157
  137. package/components/common/wizards/vm/migrate/lib/validations.ts +68 -68
  138. package/components/common/wizards/vm/migrate/select/computeResource/tableView/TableView.vue +135 -135
  139. package/components/common/wizards/vm/migrate/select/network/Network.vue +103 -103
  140. package/components/common/wizards/vm/migrate/select/network/table/network/lib/config/advancedTable.ts +91 -91
  141. package/composables/productNameLocal.ts +30 -30
  142. package/composables/useAppVersion.ts +21 -21
  143. package/package.json +2 -2
  144. package/plugins/date.ts +233 -233
  145. package/plugins/panelStates.ts +70 -70
  146. package/plugins/text.ts +59 -59
  147. package/public/spice-console/lib/images/bitmap.js +203 -203
  148. package/public/spice-console/network/spicechannel.js +387 -387
  149. package/store/main/mutations.ts +7 -7
  150. package/store/main/state.ts +7 -7
  151. package/store/tasks/mappers/recentTasks.ts +64 -64
@@ -1,190 +1,194 @@
1
- <template>
2
- <div class="hardware-cpu">
3
- <ui-stack-block :has-children="true" test-id="cpu-stack-block">
4
- <template #stackBlockKey>
5
- <div
6
- id="vm-wizard-toggle-block-cpu"
7
- data-id="vm-wizard-toggle-block-cpu"
8
- class="flex-align-center"
9
- >
10
- <span class="title">{{ localization.common.cpu }}</span>
11
- <ui-icon
12
- v-show="props.cpuInvalid"
13
- width="18px"
14
- height="18px"
15
- name="error-outline"
16
- class="ml-2"
17
- />
18
- </div>
19
- </template>
20
- <template #stackBlockContent>
21
- <div class="flex-align-center flex-space-between">
22
- <ui-combobox
23
- v-model.number="selectedCpu"
24
- :items="props.cpuOptions"
25
- :disabled="props.isCpuDisabled"
26
- :error-text="props.vcpusLocalAndApiErrorsTexts"
27
- class="cpu-select"
28
- test-id="vm-wizard-cpu-combobox"
29
- size="sm"
30
- width="auto"
31
- />
32
-
33
- <common-vm-actions-common-customize-hardware-virtual-hardware-cpu-tooltip
34
- :vm-cpu-help-text-second="props.vmCpuHelpTextSecond"
35
- />
36
- </div>
37
- </template>
38
- <template #stackChildren>
39
- <common-vm-actions-common-customize-hardware-virtual-hardware-cpu-cores-per-socket
40
- v-model:selected-core-per-socket="selectedCorePerSocket"
41
- :selected-cpus="props.selectedCpus"
42
- :cpu-options="props.cpuOptions"
43
- :is-edit="props.isEdit"
44
- :disabled="props.isDisabled"
45
- :error-validation-fields="props.errorValidationFields"
46
- @remove-error-by-title="emits('remove-error-by-title', $event)"
47
- />
48
- <common-vm-actions-common-customize-hardware-virtual-hardware-cpu-hot-plug
49
- v-model:enable-cpu-hot-add="enableCpuHotAdd"
50
- :disabled="props.enableCpuHotAddDisabled"
51
- />
52
- <common-vm-actions-common-customize-hardware-virtual-hardware-cpu-max-cpu
53
- v-show="enableCpuHotAdd"
54
- v-model:selected-max-cpu.number="selectedMaxCpu"
55
- :cpu-options="props.maxCpuOptions"
56
- :error-validation-fields="props.errorValidationFields"
57
- :disabled="props.isDisabled"
58
- @invalid="emits('max-cpu-invalid', $event)"
59
- @remove-error-by-title="emits('remove-error-by-title', $event)"
60
- />
61
- <common-vm-actions-common-customize-hardware-virtual-hardware-reservation
62
- v-model:reservation="reservation"
63
- v-model:reservation-type="reservationType"
64
- :error-validation-fields="props.errorValidationFields"
65
- :disabled="props.isDisabled"
66
- type="mhz"
67
- component-type="cpu"
68
- @invalid="emits('reservation-invalid', $event)"
69
- @remove-error-by-title="emits('remove-error-by-title', $event)"
70
- />
71
- <common-vm-actions-common-customize-hardware-virtual-hardware-limit
72
- v-model:limit="limit"
73
- v-model:limit-type="limitType"
74
- :error-validation-fields="props.errorValidationFields"
75
- :disabled="props.isDisabled"
76
- type="mhz"
77
- component-type="cpu"
78
- @invalid="emits('limit-invalid', $event)"
79
- @remove-error-by-title="emits('remove-error-by-title', $event)"
80
- />
81
- <common-vm-actions-common-customize-hardware-virtual-hardware-cpu-shares
82
- v-model:shares="shares"
83
- v-model:shares-type="sharesType"
84
- :error-validation-fields="props.errorValidationFields"
85
- :disabled="props.isDisabled"
86
- @remove-error-by-title="emits('remove-error-by-title', $event)"
87
- @invalid="emits('shares-invalid', $event)"
88
- />
89
- <!-- <common-vm-actions-common-customize-hardware-virtual-hardware-cpu-hv-->
90
- <!-- v-models:hardwareVirtualization="hardwareVirtualization"-->
91
- <!-- />-->
92
- <!-- <common-vm-actions-common-customize-hardware-virtual-hardware-cpu-pc-->
93
- <!-- v-models:performanceCounters="performanceCounters"-->
94
- <!-- />-->
95
- <!-- <common-vm-actions-common-customize-hardware-virtual-hardware-cpu-sa-->
96
- <!-- v-models:schedulingAffinity="schedulingAffinity"-->
97
- <!-- />-->
98
- <!-- <common-vm-actions-common-customize-hardware-virtual-hardware-cpu-iommu-->
99
- <!-- v-models:iommu="iommu"-->
100
- <!-- />-->
101
- <common-vm-actions-common-customize-hardware-virtual-hardware-cpu-model
102
- v-model:cpu-model="cpuModel"
103
- v-model:passthrough-host-cpu="passthroughHostCpu"
104
- v-model:host-model-cpu="hostModelCpu"
105
- :cpu-models="props.cpuModels"
106
- :is-edit="props.isEdit"
107
- :error-validation-fields="props.errorValidationFields"
108
- :disabled="props.isDisabled"
109
- @remove-error-by-title="emits('remove-error-by-title', $event)"
110
- />
111
- </template>
112
- </ui-stack-block>
113
- </div>
114
- </template>
115
-
116
- <script setup lang="ts">
117
- import type { UI_I_Localization } from '~/lib/models/interfaces'
118
- import type { UI_I_ErrorValidationField } from '~/lib/models/store/interfaces'
119
- import type { UI_I_OptionItem } from '~/components/atoms/lib/models/interfaces'
120
-
121
- const selectedCpu = defineModel<number>('selectedCpu', { required: true })
122
- const selectedCorePerSocket = defineModel<number>('selectedCorePerSocket', {
123
- required: true,
124
- })
125
- const enableCpuHotAdd = defineModel<boolean>('enableCpuHotAdd', {
126
- required: true,
127
- })
128
- const selectedMaxCpu = defineModel<number>('selectedMaxCpu', {
129
- required: true,
130
- })
131
- const reservation = defineModel<string>('reservation', { required: true })
132
- const reservationType = defineModel<string>('reservationType', {
133
- required: true,
134
- })
135
- const limit = defineModel<string>('limit', { required: true })
136
- const limitType = defineModel<string>('limitType', { required: true })
137
- const shares = defineModel<string>('shares', { required: true })
138
- const sharesType = defineModel<string>('sharesType', { required: true })
139
- const cpuModel = defineModel<string>('cpuModel', { required: true })
140
- const passthroughHostCpu = defineModel<boolean>('passthroughHostCpu', {
141
- required: true,
142
- })
143
- const hostModelCpu = defineModel<boolean>('hostModelCpu', { required: true })
144
-
145
- const props = defineProps<{
146
- maxCpus: number
147
- cpuModels: UI_I_OptionItem[]
148
- isEdit: boolean
149
- errorValidationFields: UI_I_ErrorValidationField<string>[]
150
- cpuInvalid: boolean
151
- vcpusLocalAndApiErrorsTexts: string
152
- cpuOptions: UI_I_OptionItem[]
153
- isCpuDisabled: boolean
154
- selectedCpus: number[]
155
- isDisabled: boolean
156
- enableCpuHotAddDisabled: boolean
157
- maxCpuOptions: UI_I_OptionItem[]
158
- vmCpuHelpTextSecond?: string
159
- }>()
160
- const emits = defineEmits<{
161
- (event: 'remove-error-by-title', value: string): void
162
- (event: 'remove-validation-error'): void
163
- (event: 'max-cpu-invalid', value: boolean): void
164
- (event: 'reservation-invalid', value: boolean): void
165
- (event: 'limit-invalid', value: boolean): void
166
- (event: 'shares-invalid', value: boolean): void
167
- }>()
168
-
169
- const localization = computed<UI_I_Localization>(() => useLocal())
170
- </script>
171
-
172
- <style scoped lang="scss">
173
- :deep(.ui-main-select-toggle) {
174
- display: flex;
175
- justify-content: space-between;
176
- width: 108px;
177
- }
178
- //:deep(.cpu-select .ui-main-select-toggle) {
179
- // background-color: #ffffff;
180
- //}
181
- .light-theme {
182
- :deep(.ui-main-select-toggle) {
183
- background-color: #ffffff;
184
- }
185
- }
186
-
187
- :deep(.unit .ui-main-select-toggle) {
188
- width: 80px;
189
- }
190
- </style>
1
+ <template>
2
+ <div class="hardware-cpu">
3
+ <ui-stack-block
4
+ :has-children="true"
5
+ test-id="cpu-stack-block"
6
+ is-toggle-on-stack-view-key
7
+ >
8
+ <template #stackBlockKey>
9
+ <div
10
+ id="vm-wizard-toggle-block-cpu"
11
+ data-id="vm-wizard-toggle-block-cpu"
12
+ class="flex-align-center"
13
+ >
14
+ <span class="title">{{ localization.common.cpu }}</span>
15
+ <ui-icon
16
+ v-show="props.cpuInvalid"
17
+ width="18px"
18
+ height="18px"
19
+ name="error-outline"
20
+ class="ml-2"
21
+ />
22
+ </div>
23
+ </template>
24
+ <template #stackBlockContent>
25
+ <div class="flex-align-center flex-space-between">
26
+ <ui-combobox
27
+ v-model.number="selectedCpu"
28
+ :items="props.cpuOptions"
29
+ :disabled="props.isCpuDisabled"
30
+ :error-text="props.vcpusLocalAndApiErrorsTexts"
31
+ class="cpu-select"
32
+ test-id="vm-wizard-cpu-combobox"
33
+ size="sm"
34
+ width="auto"
35
+ />
36
+
37
+ <common-vm-actions-common-customize-hardware-virtual-hardware-cpu-tooltip
38
+ :vm-cpu-help-text-second="props.vmCpuHelpTextSecond"
39
+ />
40
+ </div>
41
+ </template>
42
+ <template #stackChildren>
43
+ <common-vm-actions-common-customize-hardware-virtual-hardware-cpu-cores-per-socket
44
+ v-model:selected-core-per-socket="selectedCorePerSocket"
45
+ :selected-cpus="props.selectedCpus"
46
+ :cpu-options="props.cpuOptions"
47
+ :is-edit="props.isEdit"
48
+ :disabled="props.isDisabled"
49
+ :error-validation-fields="props.errorValidationFields"
50
+ @remove-error-by-title="emits('remove-error-by-title', $event)"
51
+ />
52
+ <common-vm-actions-common-customize-hardware-virtual-hardware-cpu-hot-plug
53
+ v-model:enable-cpu-hot-add="enableCpuHotAdd"
54
+ :disabled="props.enableCpuHotAddDisabled"
55
+ />
56
+ <common-vm-actions-common-customize-hardware-virtual-hardware-cpu-max-cpu
57
+ v-show="enableCpuHotAdd"
58
+ v-model:selected-max-cpu.number="selectedMaxCpu"
59
+ :cpu-options="props.maxCpuOptions"
60
+ :error-validation-fields="props.errorValidationFields"
61
+ :disabled="props.isDisabled"
62
+ @invalid="emits('max-cpu-invalid', $event)"
63
+ @remove-error-by-title="emits('remove-error-by-title', $event)"
64
+ />
65
+ <common-vm-actions-common-customize-hardware-virtual-hardware-reservation
66
+ v-model:reservation="reservation"
67
+ v-model:reservation-type="reservationType"
68
+ :error-validation-fields="props.errorValidationFields"
69
+ :disabled="props.isDisabled"
70
+ type="mhz"
71
+ component-type="cpu"
72
+ @invalid="emits('reservation-invalid', $event)"
73
+ @remove-error-by-title="emits('remove-error-by-title', $event)"
74
+ />
75
+ <common-vm-actions-common-customize-hardware-virtual-hardware-limit
76
+ v-model:limit="limit"
77
+ v-model:limit-type="limitType"
78
+ :error-validation-fields="props.errorValidationFields"
79
+ :disabled="props.isDisabled"
80
+ type="mhz"
81
+ component-type="cpu"
82
+ @invalid="emits('limit-invalid', $event)"
83
+ @remove-error-by-title="emits('remove-error-by-title', $event)"
84
+ />
85
+ <common-vm-actions-common-customize-hardware-virtual-hardware-cpu-shares
86
+ v-model:shares="shares"
87
+ v-model:shares-type="sharesType"
88
+ :error-validation-fields="props.errorValidationFields"
89
+ :disabled="props.isDisabled"
90
+ @remove-error-by-title="emits('remove-error-by-title', $event)"
91
+ @invalid="emits('shares-invalid', $event)"
92
+ />
93
+ <!-- <common-vm-actions-common-customize-hardware-virtual-hardware-cpu-hv-->
94
+ <!-- v-models:hardwareVirtualization="hardwareVirtualization"-->
95
+ <!-- />-->
96
+ <!-- <common-vm-actions-common-customize-hardware-virtual-hardware-cpu-pc-->
97
+ <!-- v-models:performanceCounters="performanceCounters"-->
98
+ <!-- />-->
99
+ <!-- <common-vm-actions-common-customize-hardware-virtual-hardware-cpu-sa-->
100
+ <!-- v-models:schedulingAffinity="schedulingAffinity"-->
101
+ <!-- />-->
102
+ <!-- <common-vm-actions-common-customize-hardware-virtual-hardware-cpu-iommu-->
103
+ <!-- v-models:iommu="iommu"-->
104
+ <!-- />-->
105
+ <common-vm-actions-common-customize-hardware-virtual-hardware-cpu-model
106
+ v-model:cpu-model="cpuModel"
107
+ v-model:passthrough-host-cpu="passthroughHostCpu"
108
+ v-model:host-model-cpu="hostModelCpu"
109
+ :cpu-models="props.cpuModels"
110
+ :is-edit="props.isEdit"
111
+ :error-validation-fields="props.errorValidationFields"
112
+ :disabled="props.isDisabled"
113
+ @remove-error-by-title="emits('remove-error-by-title', $event)"
114
+ />
115
+ </template>
116
+ </ui-stack-block>
117
+ </div>
118
+ </template>
119
+
120
+ <script setup lang="ts">
121
+ import type { UI_I_Localization } from '~/lib/models/interfaces'
122
+ import type { UI_I_ErrorValidationField } from '~/lib/models/store/interfaces'
123
+ import type { UI_I_OptionItem } from '~/components/atoms/lib/models/interfaces'
124
+
125
+ const selectedCpu = defineModel<number>('selectedCpu', { required: true })
126
+ const selectedCorePerSocket = defineModel<number>('selectedCorePerSocket', {
127
+ required: true,
128
+ })
129
+ const enableCpuHotAdd = defineModel<boolean>('enableCpuHotAdd', {
130
+ required: true,
131
+ })
132
+ const selectedMaxCpu = defineModel<number>('selectedMaxCpu', {
133
+ required: true,
134
+ })
135
+ const reservation = defineModel<string>('reservation', { required: true })
136
+ const reservationType = defineModel<string>('reservationType', {
137
+ required: true,
138
+ })
139
+ const limit = defineModel<string>('limit', { required: true })
140
+ const limitType = defineModel<string>('limitType', { required: true })
141
+ const shares = defineModel<string>('shares', { required: true })
142
+ const sharesType = defineModel<string>('sharesType', { required: true })
143
+ const cpuModel = defineModel<string>('cpuModel', { required: true })
144
+ const passthroughHostCpu = defineModel<boolean>('passthroughHostCpu', {
145
+ required: true,
146
+ })
147
+ const hostModelCpu = defineModel<boolean>('hostModelCpu', { required: true })
148
+
149
+ const props = defineProps<{
150
+ maxCpus: number
151
+ cpuModels: UI_I_OptionItem[]
152
+ isEdit: boolean
153
+ errorValidationFields: UI_I_ErrorValidationField<string>[]
154
+ cpuInvalid: boolean
155
+ vcpusLocalAndApiErrorsTexts: string
156
+ cpuOptions: UI_I_OptionItem[]
157
+ isCpuDisabled: boolean
158
+ selectedCpus: number[]
159
+ isDisabled: boolean
160
+ enableCpuHotAddDisabled: boolean
161
+ maxCpuOptions: UI_I_OptionItem[]
162
+ vmCpuHelpTextSecond?: string
163
+ }>()
164
+ const emits = defineEmits<{
165
+ (event: 'remove-error-by-title', value: string): void
166
+ (event: 'remove-validation-error'): void
167
+ (event: 'max-cpu-invalid', value: boolean): void
168
+ (event: 'reservation-invalid', value: boolean): void
169
+ (event: 'limit-invalid', value: boolean): void
170
+ (event: 'shares-invalid', value: boolean): void
171
+ }>()
172
+
173
+ const localization = computed<UI_I_Localization>(() => useLocal())
174
+ </script>
175
+
176
+ <style scoped lang="scss">
177
+ :deep(.ui-main-select-toggle) {
178
+ display: flex;
179
+ justify-content: space-between;
180
+ width: 108px;
181
+ }
182
+ //:deep(.cpu-select .ui-main-select-toggle) {
183
+ // background-color: #ffffff;
184
+ //}
185
+ .light-theme {
186
+ :deep(.ui-main-select-toggle) {
187
+ background-color: #ffffff;
188
+ }
189
+ }
190
+
191
+ :deep(.unit .ui-main-select-toggle) {
192
+ width: 80px;
193
+ }
194
+ </style>