bfg-common 1.5.239 → 1.5.241

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 (32) hide show
  1. package/assets/scss/common/theme.scss +6 -0
  2. package/components/atoms/table/dataGrid/DataGrid.vue +1 -1
  3. package/components/common/browse/BrowseNew.vue +8 -2
  4. package/components/common/vm/actions/common/customizeHardware/CustomizeHardwareNew.vue +5 -2
  5. package/components/common/vm/actions/common/customizeHardware/virtualHardware/VirtualHardwareNew.vue +7 -7
  6. package/components/common/vm/actions/common/customizeHardware/virtualHardware/bus/BusNew.vue +2 -2
  7. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/CdDvdDriveNew.vue +4 -0
  8. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/CpuNew.vue +194 -190
  9. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/model/ModelNew.vue +246 -237
  10. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/shares/SharesNew.vue +6 -1
  11. package/components/common/vm/actions/common/customizeHardware/virtualHardware/memory/MemoryNew.vue +158 -154
  12. package/components/common/vm/actions/common/customizeHardware/virtualHardware/memory/hotPlug/HotPlugNew.vue +8 -2
  13. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/NewHardDiskNew.vue +4 -0
  14. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/file/FileNew.vue +8 -3
  15. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/maximumSize/MaximumSizeNew.vue +8 -4
  16. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/provisioning/ProvisioningNew.vue +6 -1
  17. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/sharing/SharingNew.vue +6 -1
  18. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/NewNetworkNew.vue +1 -1
  19. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/location/new/New.vue +4 -3
  20. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/location/new/table/Table.vue +1 -0
  21. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newUsbController/NewUsbControllerNew.vue +1 -0
  22. package/components/common/vm/actions/common/customizeHardware/virtualHardware/other/OtherNew.vue +36 -30
  23. package/components/common/vm/actions/common/customizeHardware/virtualHardware/reservation/ReservationNew.vue +5 -2
  24. package/components/common/vm/actions/common/customizeHardware/virtualHardware/videoCard/VideoCardNew.vue +5 -2
  25. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/BootOptionsNew.vue +85 -81
  26. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/order/OrderNew.vue +71 -67
  27. package/components/common/vm/actions/common/customizeHardware/vmoptions/generalOptions/GeneralOptionsNew.vue +150 -149
  28. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/New.vue +146 -140
  29. package/components/common/vm/actions/common/customizeHardware/vmoptions/tools/ToolsNew.vue +5 -1
  30. package/components/common/vm/actions/common/select/storage/new/New.vue +5 -1
  31. package/components/common/vm/actions/common/select/storage/new/lib/config/table.ts +2 -1
  32. package/package.json +2 -2
@@ -169,6 +169,9 @@
169
169
  --diagram-content-third-text: #9da6ad;
170
170
  --diagram-info-text: #4d5d69;
171
171
  --diagram-info-second-text: #9da6ad;
172
+
173
+ // VM Add Edit new view
174
+ --select-file-type-label: #4d5d69;
172
175
  }
173
176
 
174
177
  :root.dark-theme {
@@ -330,4 +333,7 @@
330
333
  --diagram-content-third-text: #9da6ad;
331
334
  --diagram-info-text: #e9eaec;
332
335
  --diagram-info-second-text: #9da6ad;
336
+
337
+ // VM Add Edit new view
338
+ --select-file-type-label: #e9eaec;
333
339
  }
@@ -819,7 +819,7 @@ const headItemsPresent = computed<UI_I_HeadItem[]>(() => {
819
819
  const bodyItemsPresent = computed<UI_I_BodyItem[][]>(() => {
820
820
  let items: UI_I_BodyItem[][] = props.bodyItems.map((row) => {
821
821
  return row.map((item) => {
822
- const text = item.text.toString()
822
+ const text = item.text?.toString() || ''
823
823
  return {
824
824
  ...item,
825
825
  // Если текст пустой нужно поставить '--' для экспорта
@@ -37,7 +37,9 @@
37
37
  :class="['browse-tree-item', { active: node.isActive }]"
38
38
  >
39
39
  <span :class="node.iconClassName"></span>
40
- <span class="text-ellipsis">{{ node.name }}</span>
40
+ <span class="text-ellipsis datastore-node-name">{{
41
+ node.name
42
+ }}</span>
41
43
  </div>
42
44
  </template>
43
45
  </ui-tree>
@@ -204,7 +206,7 @@ const selectedFileTypeLocal = computed<any>({
204
206
 
205
207
  <style scoped lang="scss">
206
208
  .file-type-label {
207
- color: #4d5d69;
209
+ color: var(--select-file-type-label);
208
210
  }
209
211
 
210
212
  .new-view-info {
@@ -239,6 +241,10 @@ const selectedFileTypeLocal = computed<any>({
239
241
  display: flex;
240
242
  align-items: center;
241
243
  column-gap: 8px;
244
+
245
+ .datastore-node-name {
246
+ font-size: 12px;
247
+ }
242
248
  }
243
249
  .first-block-content {
244
250
  :deep(.tree-content) {
@@ -227,7 +227,10 @@ const themeMode = useLocalStorage('themeMode')
227
227
  //flex: 0 0 280px;
228
228
  max-width: 280px;
229
229
  margin-right: 12px;
230
- line-height: 32px;
230
+ text-overflow: ellipsis;
231
+ white-space: nowrap;
232
+ overflow: hidden;
233
+ //line-height: 32px;
231
234
 
232
235
  .ui-checkbox-label {
233
236
  min-height: 32px;
@@ -246,7 +249,7 @@ const themeMode = useLocalStorage('themeMode')
246
249
  </style>
247
250
  <style lang="scss">
248
251
  .light-theme {
249
- .stack-block-label .ui-main-select-toggle:not(.error) {
252
+ .stack-block-label .ui-main-select-toggle:not(.error):not(:disabled) {
250
253
  background-color: #ffffff;
251
254
  }
252
255
  .stack-block-expanded > .stack-block-label .ui-main-select-toggle {
@@ -24,7 +24,7 @@
24
24
  elem-id="add-device-dropdown"
25
25
  test-id="add-device-dropdown"
26
26
  left
27
- max-height="300px"
27
+ max-height="400px"
28
28
  @select="onAddDevice"
29
29
  @hide="isShowAddDeviceDropdown = false"
30
30
  />
@@ -442,11 +442,11 @@ const onAddDevice = (data: number): void => {
442
442
  }
443
443
  :deep(.ui-popup-window) {
444
444
  overflow: hidden;
445
- padding: 12px 0;
445
+ padding: 8px 0;
446
446
 
447
447
  .ui-dropdown {
448
448
  overflow: auto;
449
- max-height: calc(300px - 24px);
449
+ //max-height: calc(300px - 24px);
450
450
 
451
451
  .ui-dropdown-menu.md {
452
452
  padding: 0 8px;
@@ -459,10 +459,10 @@ const onAddDevice = (data: number): void => {
459
459
  &:not(:last-child) {
460
460
  margin-bottom: 4px;
461
461
  }
462
- &:last-child ul li:last-child {
463
- height: 26px;
464
- align-items: flex-end;
465
- }
462
+ //&:last-child ul li:last-child {
463
+ //height: 26px;
464
+ //align-items: flex-end;
465
+ //}
466
466
  }
467
467
  }
468
468
  }
@@ -24,8 +24,8 @@
24
24
  >
25
25
  <ui-icon
26
26
  :data-id="`${props.testId}-show-help-icon`"
27
- width="16"
28
- height="16"
27
+ width="20"
28
+ height="20"
29
29
  name="info"
30
30
  :class="['bus-help-icon cursor-pointer', {active: isShowHelp}]"
31
31
  @click.stop="isShowHelp = !isShowHelp"
@@ -4,6 +4,7 @@
4
4
  :is-roll-back="props.type === 'removed'"
5
5
  :removable="props.isRemovable"
6
6
  :test-id="`cd-dvd-drive-stack-block-${props.index}`"
7
+ is-toggle-on-stack-view-key
7
8
  @remove="emits('remove')"
8
9
  @roll-back="emits('roll-back')"
9
10
  >
@@ -173,6 +174,9 @@ const onChangeCdDvdDrive = (data: string): void => {
173
174
  gap: 0;
174
175
  }
175
176
 
177
+ #device-will-removed-text-main {
178
+ color: #9da6ad;
179
+ }
176
180
  .device-will-removed-text {
177
181
  font-size: 13px;
178
182
  color: #9da6ad;
@@ -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>