bfg-common 1.5.557 → 1.5.559

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 (115) hide show
  1. package/CODE_STYLE.md +109 -109
  2. package/assets/img/icons/icons-sprite-dark-3.svg +227 -227
  3. package/assets/img/icons/icons-sprite-dark-5.svg +488 -488
  4. package/assets/img/icons/icons-sprite-light-3.svg +227 -227
  5. package/assets/img/icons/icons-sprite-light-5.svg +488 -488
  6. package/assets/localization/local_be.json +6 -1
  7. package/assets/localization/local_en.json +6 -1
  8. package/assets/localization/local_hy.json +6 -1
  9. package/assets/localization/local_kk.json +6 -1
  10. package/assets/localization/local_ru.json +6 -1
  11. package/assets/localization/local_zh.json +6 -1
  12. package/components/atoms/TheIcon3.vue +50 -50
  13. package/components/atoms/collapse/CollapseNav.vue +170 -170
  14. package/components/atoms/perPage/PerPage.vue +58 -58
  15. package/components/atoms/table/dataGrid/DataGrid.vue +1718 -1718
  16. package/components/atoms/table/dataGrid/DataGridPagination.vue +97 -97
  17. package/components/atoms/table/dataGrid/lib/config/settingsTable.ts +94 -94
  18. package/components/atoms/table/dataGrid/lib/utils/export.ts +16 -16
  19. package/components/common/backup/storage/actions/add/Add.vue +251 -251
  20. package/components/common/backup/storage/actions/add/lib/utils.ts +51 -51
  21. package/components/common/browse/blocks/contents/filesNew/Skeleton.vue +18 -18
  22. package/components/common/diagramMain/modals/lib/config/portModal.ts +251 -251
  23. package/components/common/diagramMain/modals/lib/config/vCenterModal.ts +48 -48
  24. package/components/common/diagramMain/port/Port.vue +580 -580
  25. package/components/common/layout/theHeader/helpMenu/About.vue +79 -79
  26. package/components/common/layout/theHeader/helpMenu/aboutOld/AboutOld.vue +79 -79
  27. package/components/common/pages/backups/DetailView.vue +52 -52
  28. package/components/common/pages/backups/lib/models/interfaces.ts +36 -36
  29. package/components/common/pages/backups/modals/Modals.vue +243 -243
  30. package/components/common/pages/backups/modals/createBackup/configuration/maxBandwidth/lib/config/options.ts +6 -6
  31. package/components/common/pages/backups/modals/createBackup/lib/config/readyToCompleteOptions.ts +69 -69
  32. package/components/common/pages/backups/modals/lib/config/restore.ts +115 -115
  33. package/components/common/pages/backups/modals/lib/models/interfaces.ts +186 -186
  34. package/components/common/pages/backups/modals/restore/name/lib/models/interfaces.ts +6 -6
  35. package/components/common/pages/home/lib/models/interfaces.ts +48 -48
  36. package/components/common/pages/home/widgets/hosts/Hosts.vue +27 -27
  37. package/components/common/pages/home/widgets/hosts/lib/config/items.ts +23 -23
  38. package/components/common/pages/home/widgets/vms/VmsOld.vue +35 -35
  39. package/components/common/pages/home/widgets/vms/lib/config/items.ts +19 -19
  40. package/components/common/pages/scheduledTasks/lib/utils/utils.ts +84 -84
  41. package/components/common/readyToComplete/ReadyToComplete.vue +17 -17
  42. package/components/common/select/radio/RadioGroup.vue +137 -137
  43. package/components/common/spiceConsole/Drawer.vue +420 -420
  44. package/components/common/spiceConsole/SpiceConsole.vue +184 -184
  45. package/components/common/spiceConsole/lib/models/interfaces.ts +5 -5
  46. package/components/common/tools/Actions.vue +207 -207
  47. package/components/common/treeView/TreeView.vue +52 -52
  48. package/components/common/vm/actions/add/lib/config/steps.ts +347 -347
  49. package/components/common/vm/actions/clone/Clone.vue +809 -809
  50. package/components/common/vm/actions/clone/new/New.vue +457 -457
  51. package/components/common/vm/actions/clone/old/Old.vue +378 -378
  52. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/shares/Shares.vue +140 -140
  53. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/shares/lib/config/options.ts +28 -28
  54. package/components/common/vm/actions/common/customizeHardware/virtualHardware/memory/MemoryNew.vue +158 -158
  55. package/components/common/vm/actions/common/customizeHardware/virtualHardware/memory/MemoryOld.vue +155 -155
  56. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/NewHardDisk.vue +427 -427
  57. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/location/Location.vue +154 -154
  58. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/macAddress/MacAddress.vue +119 -119
  59. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/dynamicDirectPathIo/DynamicDirectPathIo.vue +31 -31
  60. package/components/common/vm/actions/common/customizeHardware/virtualHardware/other/Other.vue +16 -16
  61. package/components/common/vm/actions/common/customizeHardware/virtualHardware/videoCard/numberDisplays/NumberDisplays.vue +53 -53
  62. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/delay/Delay.vue +32 -32
  63. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/firmware/Firmware.vue +60 -60
  64. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/usbRedirection/UsbRedirection.vue +28 -28
  65. package/components/common/vm/actions/common/select/compatibility/Old.vue +107 -107
  66. package/components/common/vm/actions/common/select/createType/CreateType.vue +38 -38
  67. package/components/common/vm/actions/common/select/createType/lib/models/interfaces.ts +5 -5
  68. package/components/common/vm/actions/common/select/os/Old.vue +152 -152
  69. package/components/common/vm/actions/common/select/os/Os.vue +139 -139
  70. package/components/common/vm/actions/common/select/storage/Old.vue +125 -125
  71. package/components/common/vm/actions/common/select/storage/Storage.vue +178 -178
  72. package/components/common/vm/actions/common/select/storage/new/New.vue +311 -311
  73. package/components/common/vm/actions/common/select/storage/new/lib/models/interfaces.ts +5 -5
  74. package/components/common/vm/actions/common/select/storage/new/lib/utils/utils.ts +21 -21
  75. package/components/common/vm/actions/common/select/template/old/Old.vue +50 -50
  76. package/components/common/vm/actions/editSettings/new/Skeleton.vue +88 -88
  77. package/components/common/vm/actions/register/Register.vue +352 -352
  78. package/components/common/vm/actions/register/lib/config/steps.ts +86 -86
  79. package/components/common/wizards/common/compatibility/Compatibility.vue +35 -35
  80. package/components/common/wizards/common/compatibility/New.vue +99 -99
  81. package/components/common/wizards/common/compatibility/Old.vue +53 -53
  82. package/components/common/wizards/common/steps/computeResource/ComputeResource.vue +86 -86
  83. package/components/common/wizards/common/steps/computeResource/New.vue +93 -93
  84. package/components/common/wizards/common/steps/computeResource/Old.vue +103 -103
  85. package/components/common/wizards/common/steps/name/Name.vue +178 -178
  86. package/components/common/wizards/common/steps/name/New.vue +221 -221
  87. package/components/common/wizards/common/steps/name/Old.vue +121 -121
  88. package/components/common/wizards/common/steps/name/lib/models/interfaces.ts +4 -4
  89. package/components/common/wizards/common/steps/name/location/Location.vue +85 -85
  90. package/components/common/wizards/common/steps/name/location/New.vue +40 -40
  91. package/components/common/wizards/datastore/add/Add.vue +228 -228
  92. package/components/common/wizards/datastore/add/lib/utils.ts +85 -85
  93. package/components/common/wizards/datastore/add/steps/typeMode/lib/config/typeOptions.ts +43 -43
  94. package/components/common/wizards/vm/migrate/select/computeResource/ComputeResource.vue +205 -205
  95. package/components/common/wizards/vm/migrate/select/network/Network.vue +103 -103
  96. package/composables/useAppVersion.ts +21 -21
  97. package/composables/useLocal.ts +6 -6
  98. package/composables/useLocalCommon.ts +39 -39
  99. package/package.json +1 -1
  100. package/plugins/console.ts +21 -21
  101. package/plugins/date.ts +233 -233
  102. package/plugins/mouse.ts +21 -21
  103. package/plugins/panelStates.ts +70 -70
  104. package/plugins/text.ts +59 -59
  105. package/public/spice-console/application/clientgui.js +854 -854
  106. package/public/spice-console/application/packetfactory.js +211 -211
  107. package/public/spice-console/application/virtualmouse.js +147 -147
  108. package/public/spice-console/lib/images/bitmap.js +203 -203
  109. package/public/spice-console/network/spicechannel.js +440 -440
  110. package/public/spice-console/process/cursorprocess.js +121 -121
  111. package/public/spice-console/process/inputprocess.js +227 -227
  112. package/public/spice-console/process/mainprocess.js +210 -210
  113. package/public/spice-console/run.js +210 -210
  114. package/store/main/mutations.ts +7 -7
  115. package/store/main/state.ts +7 -7
@@ -1,140 +1,140 @@
1
- <template>
2
- <common-vm-actions-common-customize-hardware-virtual-hardware-cpu-shares-new
3
- v-if="isNewView"
4
- v-model:shares-type="sharesTypeLocal"
5
- v-model:shares="sharesLocal"
6
- :disabled="props.disabled"
7
- :shares-type-options="sharesTypeOptions"
8
- :shares-errors-texts="sharesLocalAndApiErrorsTexts"
9
- :shares-options="sharesOptions"
10
- :is-disabled-shares="isDisabledShares"
11
- @change-shares-type="onChangeSharesType"
12
- @remove-error="onRemoveValidationError"
13
- />
14
- <common-vm-actions-common-customize-hardware-virtual-hardware-cpu-shares-old
15
- v-else
16
- v-model:shares-type="sharesTypeLocal"
17
- v-model:shares="sharesLocal"
18
- :disabled="props.disabled"
19
- :shares-type-options="sharesTypeOptions"
20
- :shares-errors-texts="sharesLocalAndApiErrorsTexts"
21
- :shares-options="sharesOptions"
22
- :is-disabled-shares="isDisabledShares"
23
- @change-shares-type="onChangeSharesType"
24
- @remove-error="onRemoveValidationError"
25
- />
26
- </template>
27
-
28
- <script setup lang="ts">
29
- import type {
30
- UI_I_Localization,
31
- UI_I_HTMLSelectElement,
32
- } from '~/lib/models/interfaces'
33
- import type { UI_I_ErrorValidationField } from '~/lib/models/store/interfaces'
34
- import type { UI_I_OptionItem } from '~/components/atoms/lib/models/interfaces'
35
- import {
36
- sharesTypeOptionsFunc,
37
- sharesOptionsFunc,
38
- } from '~/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/shares/lib/config/options'
39
-
40
- const props = defineProps<{
41
- shares: string
42
- sharesType: string
43
- disabled: boolean
44
- errorValidationFields: UI_I_ErrorValidationField<string>[]
45
- }>()
46
- const emits = defineEmits<{
47
- (event: 'update:shares', value: string): void
48
- (event: 'update:shares-type', value: string): void
49
- (event: 'invalid', value: boolean): void
50
- (event: 'remove-error-by-title', value: string): void
51
- }>()
52
-
53
- const { $store }: any = useNuxtApp()
54
- const isNewView = computed<boolean>(() => $store.getters['main/getIsNewView'])
55
-
56
- const localization = computed<UI_I_Localization>(() => useLocal())
57
-
58
- const apiErrorLocal = computed<string>(() => {
59
- return (
60
- props.errorValidationFields?.find(
61
- (message) => message.field === 'cpu.shares'
62
- )?.error_message || ''
63
- )
64
- })
65
-
66
- const maxShares = 262_144
67
- const sharesOptions = computed<UI_I_OptionItem[]>(() => {
68
- return sharesOptionsFunc(localization.value, maxShares)
69
- })
70
-
71
- const sharesTypeOptions = ref<UI_I_OptionItem[]>(
72
- sharesTypeOptionsFunc(localization.value)
73
- )
74
-
75
- const isDisabledShares = computed<boolean>(
76
- () => sharesTypeLocal.value !== '2' || props.disabled
77
- )
78
- const sharesLocal = computed<string>({
79
- get() {
80
- return props.shares
81
- },
82
- set(newValue) {
83
- emits('update:shares', newValue)
84
- },
85
- })
86
- const sharesTypeLocal = computed<string>({
87
- get() {
88
- return props.sharesType
89
- },
90
- set(newValue) {
91
- emits('update:shares-type', newValue)
92
- },
93
- })
94
- const onChangeSharesType = (event: UI_I_HTMLSelectElement): void => {
95
- const value = event.target.value
96
- if (value === '2') return
97
- sharesLocal.value = event.target.value
98
- }
99
-
100
- const sharesErrorLocalText = computed<string>(() => {
101
- if (+sharesLocal.value < 2 || +sharesLocal.value > maxShares) {
102
- return localization.value.common.sharesMustBe
103
- .replace('{0}', '2')
104
- .replace('{1}', maxShares + '')
105
- }
106
-
107
- const validValue = /^\d+(\.\d+)?$/.test(sharesLocal.value + '')
108
- if (!validValue) {
109
- return localization.value.common.inputContainsInvalidCharacters
110
- }
111
-
112
- return ''
113
- })
114
- const sharesInvalid = computed<boolean>(() => !!sharesErrorLocalText.value)
115
- watch(
116
- sharesInvalid,
117
- (newValue) => {
118
- emits('invalid', newValue)
119
- },
120
- { immediate: true }
121
- )
122
-
123
- const sharesLocalAndApiErrorsTexts = computed<string>(() => {
124
- const localError = sharesErrorLocalText.value
125
- const apiError = apiErrorLocal.value
126
-
127
- let result = ''
128
- if (localError && !apiError) result = localError
129
- if (localError && apiError) result = localError + ', ' + apiError
130
- if (!localError) result = apiError
131
-
132
- return result
133
- })
134
-
135
- const onRemoveValidationError = (): void => {
136
- emits('remove-error-by-title', 'cpu.shares')
137
- }
138
- </script>
139
-
140
- <style scoped></style>
1
+ <template>
2
+ <common-vm-actions-common-customize-hardware-virtual-hardware-cpu-shares-new
3
+ v-if="isNewView"
4
+ v-model:shares-type="sharesTypeLocal"
5
+ v-model:shares="sharesLocal"
6
+ :disabled="props.disabled"
7
+ :shares-type-options="sharesTypeOptions"
8
+ :shares-errors-texts="sharesLocalAndApiErrorsTexts"
9
+ :shares-options="sharesOptions"
10
+ :is-disabled-shares="isDisabledShares"
11
+ @change-shares-type="onChangeSharesType"
12
+ @remove-error="onRemoveValidationError"
13
+ />
14
+ <common-vm-actions-common-customize-hardware-virtual-hardware-cpu-shares-old
15
+ v-else
16
+ v-model:shares-type="sharesTypeLocal"
17
+ v-model:shares="sharesLocal"
18
+ :disabled="props.disabled"
19
+ :shares-type-options="sharesTypeOptions"
20
+ :shares-errors-texts="sharesLocalAndApiErrorsTexts"
21
+ :shares-options="sharesOptions"
22
+ :is-disabled-shares="isDisabledShares"
23
+ @change-shares-type="onChangeSharesType"
24
+ @remove-error="onRemoveValidationError"
25
+ />
26
+ </template>
27
+
28
+ <script setup lang="ts">
29
+ import type {
30
+ UI_I_Localization,
31
+ UI_I_HTMLSelectElement,
32
+ } from '~/lib/models/interfaces'
33
+ import type { UI_I_ErrorValidationField } from '~/lib/models/store/interfaces'
34
+ import type { UI_I_OptionItem } from '~/components/atoms/lib/models/interfaces'
35
+ import {
36
+ sharesTypeOptionsFunc,
37
+ sharesOptionsFunc,
38
+ } from '~/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/shares/lib/config/options'
39
+
40
+ const props = defineProps<{
41
+ shares: string
42
+ sharesType: string
43
+ disabled: boolean
44
+ errorValidationFields: UI_I_ErrorValidationField<string>[]
45
+ }>()
46
+ const emits = defineEmits<{
47
+ (event: 'update:shares', value: string): void
48
+ (event: 'update:shares-type', value: string): void
49
+ (event: 'invalid', value: boolean): void
50
+ (event: 'remove-error-by-title', value: string): void
51
+ }>()
52
+
53
+ const { $store }: any = useNuxtApp()
54
+ const isNewView = computed<boolean>(() => $store.getters['main/getIsNewView'])
55
+
56
+ const localization = computed<UI_I_Localization>(() => useLocal())
57
+
58
+ const apiErrorLocal = computed<string>(() => {
59
+ return (
60
+ props.errorValidationFields?.find(
61
+ (message) => message.field === 'cpu.shares'
62
+ )?.error_message || ''
63
+ )
64
+ })
65
+
66
+ const maxShares = 262_144
67
+ const sharesOptions = computed<UI_I_OptionItem[]>(() => {
68
+ return sharesOptionsFunc(localization.value, maxShares)
69
+ })
70
+
71
+ const sharesTypeOptions = ref<UI_I_OptionItem[]>(
72
+ sharesTypeOptionsFunc(localization.value)
73
+ )
74
+
75
+ const isDisabledShares = computed<boolean>(
76
+ () => sharesTypeLocal.value !== '2' || props.disabled
77
+ )
78
+ const sharesLocal = computed<string>({
79
+ get() {
80
+ return props.shares
81
+ },
82
+ set(newValue) {
83
+ emits('update:shares', newValue)
84
+ },
85
+ })
86
+ const sharesTypeLocal = computed<string>({
87
+ get() {
88
+ return props.sharesType
89
+ },
90
+ set(newValue) {
91
+ emits('update:shares-type', newValue)
92
+ },
93
+ })
94
+ const onChangeSharesType = (event: UI_I_HTMLSelectElement): void => {
95
+ const value = event.target.value
96
+ if (value === '2') return
97
+ sharesLocal.value = event.target.value
98
+ }
99
+
100
+ const sharesErrorLocalText = computed<string>(() => {
101
+ if (+sharesLocal.value < 2 || +sharesLocal.value > maxShares) {
102
+ return localization.value.common.sharesMustBe
103
+ .replace('{0}', '2')
104
+ .replace('{1}', maxShares + '')
105
+ }
106
+
107
+ const validValue = /^\d+(\.\d+)?$/.test(sharesLocal.value + '')
108
+ if (!validValue) {
109
+ return localization.value.common.inputContainsInvalidCharacters
110
+ }
111
+
112
+ return ''
113
+ })
114
+ const sharesInvalid = computed<boolean>(() => !!sharesErrorLocalText.value)
115
+ watch(
116
+ sharesInvalid,
117
+ (newValue) => {
118
+ emits('invalid', newValue)
119
+ },
120
+ { immediate: true }
121
+ )
122
+
123
+ const sharesLocalAndApiErrorsTexts = computed<string>(() => {
124
+ const localError = sharesErrorLocalText.value
125
+ const apiError = apiErrorLocal.value
126
+
127
+ let result = ''
128
+ if (localError && !apiError) result = localError
129
+ if (localError && apiError) result = localError + ', ' + apiError
130
+ if (!localError) result = apiError
131
+
132
+ return result
133
+ })
134
+
135
+ const onRemoveValidationError = (): void => {
136
+ emits('remove-error-by-title', 'cpu.shares')
137
+ }
138
+ </script>
139
+
140
+ <style scoped></style>
@@ -1,28 +1,28 @@
1
- import type { UI_I_Localization } from '~/lib/models/interfaces'
2
- import type { UI_I_OptionItem } from '~/components/atoms/lib/models/interfaces'
3
-
4
- export const sharesOptionsFunc = (
5
- localization: UI_I_Localization,
6
- maxShares: number
7
- ): UI_I_OptionItem[] => {
8
- return [
9
- {
10
- text: `${localization.common.minimum} 2`,
11
- value: 2,
12
- },
13
- {
14
- text: `${localization.common.maximum} ${maxShares}`,
15
- value: maxShares,
16
- },
17
- ]
18
- }
19
- export const sharesTypeOptionsFunc = (
20
- localization: UI_I_Localization
21
- ): UI_I_OptionItem[] => {
22
- return [
23
- { text: localization.common.low, value: '1000' },
24
- { text: localization.common.normal, value: '2000' },
25
- { text: localization.common.high, value: '4000' },
26
- { text: localization.common.custom, value: '2' },
27
- ]
28
- }
1
+ import type { UI_I_Localization } from '~/lib/models/interfaces'
2
+ import type { UI_I_OptionItem } from '~/components/atoms/lib/models/interfaces'
3
+
4
+ export const sharesOptionsFunc = (
5
+ localization: UI_I_Localization,
6
+ maxShares: number
7
+ ): UI_I_OptionItem[] => {
8
+ return [
9
+ {
10
+ text: `${localization.common.minimum} 2`,
11
+ value: 2,
12
+ },
13
+ {
14
+ text: `${localization.common.maximum} ${maxShares}`,
15
+ value: maxShares,
16
+ },
17
+ ]
18
+ }
19
+ export const sharesTypeOptionsFunc = (
20
+ localization: UI_I_Localization
21
+ ): UI_I_OptionItem[] => {
22
+ return [
23
+ { text: localization.common.low, value: '1000' },
24
+ { text: localization.common.normal, value: '2000' },
25
+ { text: localization.common.high, value: '4000' },
26
+ { text: localization.common.custom, value: '2' },
27
+ ]
28
+ }
@@ -1,158 +1,158 @@
1
- <template>
2
- <ui-stack-block
3
- :has-children="true"
4
- test-id="memory-stack-block"
5
- is-toggle-on-stack-view-key
6
- >
7
- <template #stackBlockKey>
8
- <div
9
- id="vm-wizard-toggle-block-memory"
10
- data-id="vm-wizard-toggle-block-memory"
11
- class="flex-align-center"
12
- >
13
- <span class="title">{{ localization.common.memory }}</span>
14
- <ui-icon
15
- v-show="props.memoryInvalid"
16
- width="18px"
17
- height="18px"
18
- name="error-outline"
19
- class="ml-2"
20
- />
21
- </div>
22
- </template>
23
- <template #stackBlockContent>
24
- <div class="memory-content flex-align-center">
25
- <ui-combobox
26
- v-model="selectedMemory"
27
- :items="props.memoryOptions"
28
- :disabled="props.isMemoryDisabled"
29
- :error-text="props.errorText"
30
- test-id="vm-wizard-memory-field"
31
- size="sm"
32
- width="auto"
33
- @change="emits('select-memory', $event)"
34
- />
35
-
36
- <ui-select
37
- id="vm-wizard-memory-type-select"
38
- v-model="memoryType"
39
- :items="props.memoryTypeOptions"
40
- :disabled="props.isMemoryDisabled"
41
- width="auto"
42
- test-id="vm-wizard-memory-type-select"
43
- class="unit"
44
- size="sm"
45
- />
46
- </div>
47
- </template>
48
- <template #stackChildren>
49
- <common-vm-actions-common-customize-hardware-virtual-hardware-reservation
50
- v-model:reservation="reservation"
51
- v-model:reservation-type="reservationType"
52
- :reserve-guest-memory="reserveGuestMemory"
53
- :error-validation-fields="props.errorValidationFields"
54
- :multiply="2"
55
- :disabled="props.isDisabled"
56
- component-type="memory"
57
- type="mb"
58
- class="memory-reservation"
59
- @remove-error-by-title="emits('remove-error-by-title', $event)"
60
- @invalid="reservationInvalid = $event"
61
- />
62
- <common-vm-actions-common-customize-hardware-virtual-hardware-limit
63
- v-model:limit="limit"
64
- v-model:limit-type="limitType"
65
- :error-validation-fields="props.errorValidationFields"
66
- :limit-options="props.limitOptions"
67
- :multiply="2"
68
- :disabled="isDisabled"
69
- type="mb"
70
- component-type="memory"
71
- class="memory-limit"
72
- @invalid="limitInvalid = $event"
73
- @remove-error-by-title="emits('remove-error-by-title', $event)"
74
- />
75
- <common-vm-actions-common-customize-hardware-virtual-hardware-memory-hot-plug
76
- v-model:memory-hot-plug="memoryHotPlug"
77
- :disabled="props.isDisabledMemoryHotPlug"
78
- />
79
- </template>
80
- </ui-stack-block>
81
- </template>
82
-
83
- <script setup lang="ts">
84
- import type { UI_I_Localization } from '~/lib/models/interfaces'
85
- import type { UI_I_ErrorValidationField } from '~/lib/models/store/interfaces'
86
- import type { UI_I_OptionItem } from '~/components/atoms/lib/models/interfaces'
87
-
88
- const selectedMemory = defineModel<number>('selectedMemory', {
89
- required: true,
90
- })
91
- const memoryType = defineModel<string>('memoryType', {
92
- required: true,
93
- })
94
- const reservation = defineModel<string>('reservation', {
95
- required: true,
96
- })
97
- const reservationType = defineModel<string>('reservationType', {
98
- required: true,
99
- })
100
- const reserveGuestMemory = defineModel<boolean>('reserveGuestMemory', {
101
- required: true,
102
- })
103
- const reservationInvalid = defineModel<boolean>('reservationInvalid', {
104
- required: true,
105
- })
106
- const limit = defineModel<string>('limit', {
107
- required: true,
108
- })
109
- const limitType = defineModel<string>('limitType', {
110
- required: true,
111
- })
112
- const limitInvalid = defineModel<boolean>('limitInvalid', {
113
- required: true,
114
- })
115
- const memoryHotPlug = defineModel<boolean>('memoryHotPlug', {
116
- required: true,
117
- })
118
-
119
- const props = defineProps<{
120
- errorValidationFields: UI_I_ErrorValidationField[]
121
- memoryInvalid: boolean
122
- errorText: string
123
- memoryOptions: UI_I_OptionItem[]
124
- isMemoryDisabled: boolean
125
- memoryTypeOptions: UI_I_OptionItem[]
126
- isDisabled: boolean
127
- limitOptions: UI_I_OptionItem[]
128
- isDisabledMemoryHotPlug: boolean
129
- }>()
130
- const emits = defineEmits<{
131
- (event: 'remove-error-by-title', value: string): void
132
- (event: 'select-memory', value: any): void
133
- (event: 'remove-error'): void
134
- }>()
135
-
136
- const localization = computed<UI_I_Localization>(() => useLocal())
137
- </script>
138
-
139
- <style scoped lang="scss">
140
- .memory-content {
141
- gap: 8px;
142
- }
143
-
144
- :deep(.ui-main-select-toggle) {
145
- display: flex;
146
- justify-content: space-between;
147
- width: 108px;
148
- }
149
- .light-theme {
150
- :deep(.ui-main-select-toggle) {
151
- background-color: #ffffff;
152
- }
153
- }
154
-
155
- :deep(.unit .ui-main-select-toggle) {
156
- width: 80px;
157
- }
158
- </style>
1
+ <template>
2
+ <ui-stack-block
3
+ :has-children="true"
4
+ test-id="memory-stack-block"
5
+ is-toggle-on-stack-view-key
6
+ >
7
+ <template #stackBlockKey>
8
+ <div
9
+ id="vm-wizard-toggle-block-memory"
10
+ data-id="vm-wizard-toggle-block-memory"
11
+ class="flex-align-center"
12
+ >
13
+ <span class="title">{{ localization.common.memory }}</span>
14
+ <ui-icon
15
+ v-show="props.memoryInvalid"
16
+ width="18px"
17
+ height="18px"
18
+ name="error-outline"
19
+ class="ml-2"
20
+ />
21
+ </div>
22
+ </template>
23
+ <template #stackBlockContent>
24
+ <div class="memory-content flex-align-center">
25
+ <ui-combobox
26
+ v-model="selectedMemory"
27
+ :items="props.memoryOptions"
28
+ :disabled="props.isMemoryDisabled"
29
+ :error-text="props.errorText"
30
+ test-id="vm-wizard-memory-field"
31
+ size="sm"
32
+ width="auto"
33
+ @change="emits('select-memory', $event)"
34
+ />
35
+
36
+ <ui-select
37
+ id="vm-wizard-memory-type-select"
38
+ v-model="memoryType"
39
+ :items="props.memoryTypeOptions"
40
+ :disabled="props.isMemoryDisabled"
41
+ width="auto"
42
+ test-id="vm-wizard-memory-type-select"
43
+ class="unit"
44
+ size="sm"
45
+ />
46
+ </div>
47
+ </template>
48
+ <template #stackChildren>
49
+ <common-vm-actions-common-customize-hardware-virtual-hardware-reservation
50
+ v-model:reservation="reservation"
51
+ v-model:reservation-type="reservationType"
52
+ :reserve-guest-memory="reserveGuestMemory"
53
+ :error-validation-fields="props.errorValidationFields"
54
+ :multiply="2"
55
+ :disabled="props.isDisabled"
56
+ component-type="memory"
57
+ type="mb"
58
+ class="memory-reservation"
59
+ @remove-error-by-title="emits('remove-error-by-title', $event)"
60
+ @invalid="reservationInvalid = $event"
61
+ />
62
+ <common-vm-actions-common-customize-hardware-virtual-hardware-limit
63
+ v-model:limit="limit"
64
+ v-model:limit-type="limitType"
65
+ :error-validation-fields="props.errorValidationFields"
66
+ :limit-options="props.limitOptions"
67
+ :multiply="2"
68
+ :disabled="isDisabled"
69
+ type="mb"
70
+ component-type="memory"
71
+ class="memory-limit"
72
+ @invalid="limitInvalid = $event"
73
+ @remove-error-by-title="emits('remove-error-by-title', $event)"
74
+ />
75
+ <common-vm-actions-common-customize-hardware-virtual-hardware-memory-hot-plug
76
+ v-model:memory-hot-plug="memoryHotPlug"
77
+ :disabled="props.isDisabledMemoryHotPlug"
78
+ />
79
+ </template>
80
+ </ui-stack-block>
81
+ </template>
82
+
83
+ <script setup lang="ts">
84
+ import type { UI_I_Localization } from '~/lib/models/interfaces'
85
+ import type { UI_I_ErrorValidationField } from '~/lib/models/store/interfaces'
86
+ import type { UI_I_OptionItem } from '~/components/atoms/lib/models/interfaces'
87
+
88
+ const selectedMemory = defineModel<number>('selectedMemory', {
89
+ required: true,
90
+ })
91
+ const memoryType = defineModel<string>('memoryType', {
92
+ required: true,
93
+ })
94
+ const reservation = defineModel<string>('reservation', {
95
+ required: true,
96
+ })
97
+ const reservationType = defineModel<string>('reservationType', {
98
+ required: true,
99
+ })
100
+ const reserveGuestMemory = defineModel<boolean>('reserveGuestMemory', {
101
+ required: true,
102
+ })
103
+ const reservationInvalid = defineModel<boolean>('reservationInvalid', {
104
+ required: true,
105
+ })
106
+ const limit = defineModel<string>('limit', {
107
+ required: true,
108
+ })
109
+ const limitType = defineModel<string>('limitType', {
110
+ required: true,
111
+ })
112
+ const limitInvalid = defineModel<boolean>('limitInvalid', {
113
+ required: true,
114
+ })
115
+ const memoryHotPlug = defineModel<boolean>('memoryHotPlug', {
116
+ required: true,
117
+ })
118
+
119
+ const props = defineProps<{
120
+ errorValidationFields: UI_I_ErrorValidationField[]
121
+ memoryInvalid: boolean
122
+ errorText: string
123
+ memoryOptions: UI_I_OptionItem[]
124
+ isMemoryDisabled: boolean
125
+ memoryTypeOptions: UI_I_OptionItem[]
126
+ isDisabled: boolean
127
+ limitOptions: UI_I_OptionItem[]
128
+ isDisabledMemoryHotPlug: boolean
129
+ }>()
130
+ const emits = defineEmits<{
131
+ (event: 'remove-error-by-title', value: string): void
132
+ (event: 'select-memory', value: any): void
133
+ (event: 'remove-error'): void
134
+ }>()
135
+
136
+ const localization = computed<UI_I_Localization>(() => useLocal())
137
+ </script>
138
+
139
+ <style scoped lang="scss">
140
+ .memory-content {
141
+ gap: 8px;
142
+ }
143
+
144
+ :deep(.ui-main-select-toggle) {
145
+ display: flex;
146
+ justify-content: space-between;
147
+ width: 108px;
148
+ }
149
+ .light-theme {
150
+ :deep(.ui-main-select-toggle) {
151
+ background-color: #ffffff;
152
+ }
153
+ }
154
+
155
+ :deep(.unit .ui-main-select-toggle) {
156
+ width: 80px;
157
+ }
158
+ </style>