bfg-common 1.5.583 → 1.5.584

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 (113) 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 +3 -1
  7. package/assets/localization/local_en.json +3 -1
  8. package/assets/localization/local_hy.json +3 -1
  9. package/assets/localization/local_kk.json +3 -1
  10. package/assets/localization/local_ru.json +3 -1
  11. package/assets/localization/local_zh.json +3 -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 +252 -251
  20. package/components/common/backup/storage/actions/add/Old.vue +3 -2
  21. package/components/common/backup/storage/actions/add/lib/utils.ts +51 -51
  22. package/components/common/backup/storage/actions/add/steps/readyComplete/ReadyComplete.vue +2 -2
  23. package/components/common/backup/storage/actions/add/steps/readyComplete/lib/config/propertiesDetails.ts +7 -7
  24. package/components/common/browse/blocks/contents/filesNew/Skeleton.vue +18 -18
  25. package/components/common/diagramMain/modals/lib/config/portModal.ts +251 -251
  26. package/components/common/diagramMain/modals/lib/config/vCenterModal.ts +48 -48
  27. package/components/common/diagramMain/port/Port.vue +580 -580
  28. package/components/common/layout/theHeader/helpMenu/About.vue +79 -79
  29. package/components/common/layout/theHeader/helpMenu/aboutOld/AboutOld.vue +79 -79
  30. package/components/common/monitor/overview/filters/lib/config/filterOptions.ts +2 -2
  31. package/components/common/pages/backups/DetailView.vue +52 -52
  32. package/components/common/pages/backups/lib/models/interfaces.ts +36 -36
  33. package/components/common/pages/backups/modals/Modals.vue +243 -243
  34. package/components/common/pages/backups/modals/createBackup/configuration/maxBandwidth/lib/config/options.ts +6 -6
  35. package/components/common/pages/backups/modals/createBackup/lib/config/readyToCompleteOptions.ts +69 -69
  36. package/components/common/pages/backups/modals/lib/config/restore.ts +115 -115
  37. package/components/common/pages/backups/modals/lib/models/interfaces.ts +186 -186
  38. package/components/common/pages/backups/modals/restore/name/lib/models/interfaces.ts +6 -6
  39. package/components/common/pages/home/lib/models/interfaces.ts +48 -48
  40. package/components/common/pages/home/widgets/hosts/Hosts.vue +27 -27
  41. package/components/common/pages/home/widgets/hosts/lib/config/items.ts +23 -23
  42. package/components/common/pages/home/widgets/vms/VmsOld.vue +35 -35
  43. package/components/common/pages/home/widgets/vms/lib/config/items.ts +19 -19
  44. package/components/common/pages/scheduledTasks/lib/utils/utils.ts +84 -84
  45. package/components/common/readyToComplete/ReadyToComplete.vue +17 -17
  46. package/components/common/select/radio/RadioGroup.vue +137 -137
  47. package/components/common/spiceConsole/Drawer.vue +420 -420
  48. package/components/common/spiceConsole/SpiceConsole.vue +184 -184
  49. package/components/common/spiceConsole/lib/models/interfaces.ts +5 -5
  50. package/components/common/tools/Actions.vue +207 -207
  51. package/components/common/treeView/TreeView.vue +52 -52
  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/location/Location.vue +154 -154
  57. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/macAddress/MacAddress.vue +119 -119
  58. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/dynamicDirectPathIo/DynamicDirectPathIo.vue +31 -31
  59. package/components/common/vm/actions/common/customizeHardware/virtualHardware/other/Other.vue +16 -16
  60. package/components/common/vm/actions/common/customizeHardware/virtualHardware/videoCard/numberDisplays/NumberDisplays.vue +53 -53
  61. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/delay/Delay.vue +32 -32
  62. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/firmware/Firmware.vue +60 -60
  63. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/usbRedirection/UsbRedirection.vue +28 -28
  64. package/components/common/vm/actions/common/select/compatibility/Old.vue +107 -107
  65. package/components/common/vm/actions/common/select/createType/CreateType.vue +38 -38
  66. package/components/common/vm/actions/common/select/createType/lib/models/interfaces.ts +5 -5
  67. package/components/common/vm/actions/common/select/storage/Old.vue +125 -125
  68. package/components/common/vm/actions/common/select/storage/Storage.vue +178 -178
  69. package/components/common/vm/actions/common/select/storage/new/New.vue +311 -311
  70. package/components/common/vm/actions/common/select/storage/new/lib/models/interfaces.ts +5 -5
  71. package/components/common/vm/actions/common/select/storage/new/lib/utils/utils.ts +21 -21
  72. package/components/common/vm/actions/common/select/template/old/Old.vue +50 -50
  73. package/components/common/vm/actions/editSettings/new/Skeleton.vue +88 -88
  74. package/components/common/vm/actions/register/Register.vue +352 -352
  75. package/components/common/vm/actions/register/lib/config/steps.ts +86 -86
  76. package/components/common/wizards/common/compatibility/Compatibility.vue +35 -35
  77. package/components/common/wizards/common/compatibility/New.vue +99 -99
  78. package/components/common/wizards/common/compatibility/Old.vue +53 -53
  79. package/components/common/wizards/common/steps/computeResource/ComputeResource.vue +86 -86
  80. package/components/common/wizards/common/steps/computeResource/New.vue +93 -93
  81. package/components/common/wizards/common/steps/computeResource/Old.vue +104 -103
  82. package/components/common/wizards/common/steps/name/Name.vue +178 -178
  83. package/components/common/wizards/common/steps/name/New.vue +221 -221
  84. package/components/common/wizards/common/steps/name/Old.vue +121 -121
  85. package/components/common/wizards/common/steps/name/lib/models/interfaces.ts +4 -4
  86. package/components/common/wizards/common/steps/name/location/Location.vue +85 -85
  87. package/components/common/wizards/common/steps/name/location/New.vue +40 -40
  88. package/components/common/wizards/common/steps/name/location/Old.vue +1 -0
  89. package/components/common/wizards/datastore/add/Add.vue +228 -228
  90. package/components/common/wizards/datastore/add/lib/utils.ts +85 -85
  91. package/components/common/wizards/datastore/add/steps/typeMode/lib/config/typeOptions.ts +43 -43
  92. package/components/common/wizards/vm/migrate/select/computeResource/ComputeResource.vue +205 -205
  93. package/components/common/wizards/vm/migrate/select/network/Network.vue +103 -103
  94. package/composables/useAppVersion.ts +21 -21
  95. package/composables/useLocal.ts +6 -6
  96. package/composables/useLocalCommon.ts +39 -39
  97. package/package.json +1 -1
  98. package/plugins/console.ts +21 -21
  99. package/plugins/date.ts +233 -233
  100. package/plugins/mouse.ts +21 -21
  101. package/plugins/panelStates.ts +70 -70
  102. package/plugins/text.ts +59 -59
  103. package/public/spice-console/application/clientgui.js +854 -854
  104. package/public/spice-console/application/packetfactory.js +211 -211
  105. package/public/spice-console/application/virtualmouse.js +147 -147
  106. package/public/spice-console/lib/images/bitmap.js +203 -203
  107. package/public/spice-console/network/spicechannel.js +440 -440
  108. package/public/spice-console/process/cursorprocess.js +121 -121
  109. package/public/spice-console/process/inputprocess.js +227 -227
  110. package/public/spice-console/process/mainprocess.js +210 -210
  111. package/public/spice-console/run.js +210 -210
  112. package/store/main/mutations.ts +7 -7
  113. 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>