bfg-common 1.5.268 → 1.5.270

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 (162) 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 +12 -1
  7. package/assets/localization/local_en.json +12 -1
  8. package/assets/localization/local_hy.json +12 -1
  9. package/assets/localization/local_kk.json +12 -1
  10. package/assets/localization/local_ru.json +12 -1
  11. package/assets/localization/local_zh.json +12 -1
  12. package/components/atoms/TheIcon3.vue +50 -50
  13. package/components/atoms/perPage/PerPage.vue +58 -58
  14. package/components/atoms/table/dataGrid/DataGrid.vue +1717 -1717
  15. package/components/atoms/table/dataGrid/lib/config/settingsTable.ts +94 -94
  16. package/components/atoms/table/dataGrid/lib/utils/export.ts +16 -16
  17. package/components/atoms/tabs/VerticalTabs.vue +105 -105
  18. package/components/common/backup/storage/actions/add/Add.vue +250 -250
  19. package/components/common/backup/storage/actions/add/Old.vue +116 -116
  20. package/components/common/backup/storage/actions/add/lib/config/steps.ts +168 -168
  21. package/components/common/backup/storage/actions/add/steps/hostAccessibility/HostAccessibility.vue +52 -52
  22. package/components/common/backup/storage/actions/add/steps/name/New.vue +102 -102
  23. package/components/common/backup/storage/actions/add/steps/nameAndConfigure/NameAndConfigure.vue +42 -42
  24. package/components/common/backup/storage/actions/add/steps/readyComplete/ReadyComplete.vue +45 -45
  25. package/components/common/backup/storage/actions/add/steps/readyComplete/ReadyCompleteNew.vue +160 -160
  26. package/components/common/backup/storage/actions/add/steps/readyComplete/lib/config/propertiesDetails.ts +243 -243
  27. package/components/common/backup/storage/actions/delete/Delete.vue +65 -65
  28. package/components/common/browse/blocks/contents/filesNew/Skeleton.vue +18 -18
  29. package/components/common/browse/blocks/lib/models/types.ts +1 -1
  30. package/components/common/browse/lib/models/interfaces.ts +5 -5
  31. package/components/common/context/lib/models/interfaces.ts +31 -31
  32. package/components/common/diagramMain/DiagramMain.vue +897 -897
  33. package/components/common/diagramMain/Header.vue +214 -214
  34. package/components/common/diagramMain/adapter/AdapterItems.vue +61 -61
  35. package/components/common/diagramMain/lib/config/initial.ts +50 -50
  36. package/components/common/diagramMain/lib/models/types.ts +21 -21
  37. package/components/common/diagramMain/lib/utils/utils.ts +331 -331
  38. package/components/common/diagramMain/modals/editSettings/ConfirmTeamingSettingsModal.vue +40 -40
  39. package/components/common/diagramMain/modals/editSettings/tabs/NetworkProperties.vue +214 -214
  40. package/components/common/diagramMain/modals/editSettings/tabs/Security.vue +189 -189
  41. package/components/common/diagramMain/modals/editSettings/tabs/SwitchProperties.vue +163 -163
  42. package/components/common/diagramMain/modals/editSettings/tabs/TeamingFailover.vue +175 -175
  43. package/components/common/diagramMain/modals/editSettings/tabs/port/IpvFourSettings.vue +346 -346
  44. package/components/common/diagramMain/modals/lib/config/initial.ts +180 -180
  45. package/components/common/diagramMain/modals/lib/config/vmKernelAdapter.ts +90 -90
  46. package/components/common/diagramMain/modals/lib/mappers/mappers.ts +87 -87
  47. package/components/common/diagramMain/modals/lib/utils/index.ts +24 -24
  48. package/components/common/diagramMain/modals/migrateVmkernelAdapter/lib/config/steps.ts +114 -114
  49. package/components/common/diagramMain/modals/migrateVmkernelAdapter/steps/ConnectionSettings.vue +169 -169
  50. package/components/common/diagramMain/modals/migrateVmkernelAdapter/steps/SelectVmkernelAdapter.vue +159 -159
  51. package/components/common/diagramMain/modals/migrateVmkernelAdapter/validations/common.ts +14 -14
  52. package/components/common/diagramMain/modals/migrateVmkernelAdapter/validations/connectionSettings.ts +137 -137
  53. package/components/common/diagramMain/modals/migrateVmkernelAdapter/validations/selectVmkernelAdapter.ts +52 -52
  54. package/components/common/diagramMain/modals/migrateVmkernelAdapter/validations/validations.ts +19 -19
  55. package/components/common/diagramMain/port/Ports.vue +47 -47
  56. package/components/common/layout/theHeader/helpMenu/About.vue +82 -82
  57. package/components/common/layout/theHeader/userMenu/modals/preferences/view/ViewOld.vue +112 -112
  58. package/components/common/monitor/overview/OverviewOld.vue +139 -139
  59. package/components/common/pages/home/headline/Headline.vue +45 -45
  60. package/components/common/pages/home/headline/HeadlineOld.vue +42 -42
  61. package/components/common/pages/home/lib/models/interfaces.ts +48 -48
  62. package/components/common/pages/home/widgets/Widgets.vue +49 -49
  63. package/components/common/pages/home/widgets/WidgetsNew.vue +86 -86
  64. package/components/common/pages/home/widgets/WidgetsOld.vue +34 -34
  65. package/components/common/pages/home/widgets/hosts/Hosts.vue +27 -27
  66. package/components/common/pages/home/widgets/hosts/lib/config/items.ts +23 -23
  67. package/components/common/pages/home/widgets/vms/Vms.vue +26 -26
  68. package/components/common/pages/home/widgets/vms/VmsOld.vue +35 -35
  69. package/components/common/pages/home/widgets/vms/lib/config/items.ts +19 -19
  70. package/components/common/pages/packages/Packages.vue +208 -208
  71. package/components/common/pages/shortcuts/block/BlockOld.vue +68 -68
  72. package/components/common/readyToComplete/ReadyToComplete.vue +17 -17
  73. package/components/common/recursionTree/RecursionTree.vue +223 -223
  74. package/components/common/select/button/ButtonDropdown.vue +108 -108
  75. package/components/common/spiceConsole/Drawer.vue +377 -377
  76. package/components/common/spiceConsole/lib/models/interfaces.ts +5 -5
  77. package/components/common/vm/actions/add/Add.vue +823 -823
  78. package/components/common/vm/actions/add/Old.vue +382 -382
  79. package/components/common/vm/actions/add/folderTreeView/FolderTreeView.vue +72 -72
  80. package/components/common/vm/actions/add/folderTreeView/New.vue +40 -40
  81. package/components/common/vm/actions/add/folderTreeView/Old.vue +50 -50
  82. package/components/common/vm/actions/clone/lib/config/steps.ts +291 -291
  83. package/components/common/vm/actions/clone/toTemplate/lib/config/steps.ts +116 -116
  84. package/components/common/vm/actions/common/customizeHardware/virtualHardware/VirtualHardwareOld.vue +321 -321
  85. package/components/common/vm/actions/common/customizeHardware/virtualHardware/browseView/BrowseView.vue +227 -227
  86. package/components/common/vm/actions/common/customizeHardware/virtualHardware/bus/Bus.vue +100 -100
  87. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/CdDvdDrive.vue +232 -232
  88. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/CdDvdDriveOld.vue +168 -168
  89. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/media/Media.vue +25 -25
  90. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/media/MediaNew.vue +78 -78
  91. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/media/MediaOld.vue +50 -50
  92. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/shares/Shares.vue +140 -140
  93. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/shares/lib/config/options.ts +28 -28
  94. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/tooltip/TooltipNew.vue +154 -154
  95. package/components/common/vm/actions/common/customizeHardware/virtualHardware/limit/Limit.vue +220 -220
  96. package/components/common/vm/actions/common/customizeHardware/virtualHardware/memory/Memory.vue +307 -307
  97. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/NewHardDisk.vue +385 -385
  98. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/location/Location.vue +154 -154
  99. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/location/LocationNew.vue +75 -75
  100. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/location/LocationOld.vue +85 -85
  101. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/NewNetwork.vue +288 -288
  102. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/location/new/table/lib/config/config.ts +94 -94
  103. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/macAddress/MacAddress.vue +119 -119
  104. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/NewPciDevice.vue +205 -205
  105. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/directPathIo/DirectPathIoNew.vue +66 -66
  106. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/directPathIo/DirectPathIoOld.vue +62 -62
  107. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/dynamicDirectPathIo/DynamicDirectPathIo.vue +31 -31
  108. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/dynamicDirectPathIo/DynamicDirectPathIoOld.vue +76 -76
  109. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/note/Note.vue +15 -15
  110. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/note/NoteNew.vue +42 -42
  111. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/note/NoteOld.vue +30 -30
  112. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/nvidiaGrid/NvidiaGridOld.vue +84 -84
  113. package/components/common/vm/actions/common/customizeHardware/virtualHardware/other/Other.vue +16 -16
  114. package/components/common/vm/actions/common/customizeHardware/virtualHardware/other/inputDevices/InputDevicesNew.vue +40 -40
  115. package/components/common/vm/actions/common/customizeHardware/virtualHardware/videoCard/VideoCard.vue +154 -154
  116. package/components/common/vm/actions/common/customizeHardware/virtualHardware/videoCard/numberDisplays/NumberDisplays.vue +53 -53
  117. package/components/common/vm/actions/common/customizeHardware/vmoptions/Vmoptions.vue +145 -145
  118. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/delay/Delay.vue +32 -32
  119. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/firmware/Firmware.vue +60 -60
  120. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/order/Order.vue +174 -174
  121. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/copyPaste/CopyPasteNew.vue +31 -31
  122. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/fileTransfer/FileTransferNew.vue +31 -31
  123. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/keymap/Keymap.vue +32 -32
  124. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/password/Password.vue +103 -103
  125. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/password/PasswordNew.vue +128 -128
  126. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/usbRedirection/UsbRedirection.vue +28 -28
  127. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/usbRedirection/UsbRedirectionNew.vue +39 -39
  128. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/usbRedirection/UsbRedirectionOld.vue +44 -44
  129. package/components/common/vm/actions/common/lib/utils/capabilities.ts +52 -52
  130. package/components/common/vm/actions/common/select/compatibility/Old.vue +107 -107
  131. package/components/common/vm/actions/common/select/computeResource/treeView/New.vue +44 -44
  132. package/components/common/vm/actions/common/select/computeResource/treeView/TreeView.vue +118 -118
  133. package/components/common/vm/actions/common/select/createType/CreateType.vue +38 -38
  134. package/components/common/vm/actions/common/select/createType/lib/models/interfaces.ts +5 -5
  135. package/components/common/vm/actions/common/select/name/Name.vue +174 -174
  136. package/components/common/vm/actions/common/select/os/Old.vue +152 -152
  137. package/components/common/vm/actions/common/select/os/Os.vue +139 -139
  138. package/components/common/vm/actions/common/select/storage/new/lib/models/interfaces.ts +5 -5
  139. package/components/common/vm/actions/common/select/storage/new/lib/utils/utils.ts +21 -21
  140. package/components/common/vm/actions/editSettings/lib/utils.ts +2 -1
  141. package/components/common/vm/actions/editSettings/new/Skeleton.vue +88 -88
  142. package/components/common/vmt/actions/add/Add.vue +641 -641
  143. package/components/common/vmt/actions/add/lib/config/steps.ts +107 -107
  144. package/components/common/vmt/actions/add/lib/models/interfaces.ts +23 -23
  145. package/components/common/wizards/vm/migrate/lib/config/constructDataReady.ts +220 -220
  146. package/components/common/wizards/vm/migrate/lib/config/steps.ts +157 -157
  147. package/components/common/wizards/vm/migrate/lib/validations.ts +68 -68
  148. package/components/common/wizards/vm/migrate/select/computeResource/tableView/TableView.vue +135 -135
  149. package/components/common/wizards/vm/migrate/select/network/Network.vue +103 -103
  150. package/components/common/wizards/vm/migrate/select/network/table/network/lib/config/advancedTable.ts +91 -91
  151. package/composables/productNameLocal.ts +30 -30
  152. package/composables/useAppVersion.ts +21 -21
  153. package/lib/models/interfaces.ts +1 -0
  154. package/package.json +1 -1
  155. package/plugins/date.ts +233 -233
  156. package/plugins/panelStates.ts +70 -70
  157. package/plugins/text.ts +59 -59
  158. package/public/spice-console/lib/images/bitmap.js +203 -203
  159. package/public/spice-console/network/spicechannel.js +387 -387
  160. package/store/main/mutations.ts +7 -7
  161. package/store/main/state.ts +7 -7
  162. package/store/tasks/mappers/recentTasks.ts +64 -64
@@ -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,154 +1,154 @@
1
- <template>
2
- <div id="cpu-help-icon" class="flex-align-center relative">
3
- <ui-icon
4
- :class="['cpu-help-icon cursor-pointer', { active: isShowCpuHelp }]"
5
- width="20"
6
- height="20"
7
- name="info"
8
- data-id="show-cpu-help-icon"
9
- @click.stop="isShowCpuHelp = !isShowCpuHelp"
10
- />
11
- <Teleport to="body">
12
- <ui-dropdown
13
- :show="isShowCpuHelp"
14
- :items="[]"
15
- elem-id="cpu-help-icon"
16
- test-id="cpu-help"
17
- width="480px"
18
- max-height="unset"
19
- left
20
- @hide="isShowCpuHelp = false"
21
- >
22
- <template #content>
23
- <div class="cpu-help-content">
24
- <div class="headline">
25
- <ui-icon name="info-2" width="16" height="16" />
26
- <h3 class="cpu-help-title">
27
- {{ localization.common.cpu }}
28
- </h3>
29
- <ui-icon
30
- name="close"
31
- width="16"
32
- height="16"
33
- class="cpu-help-close-icon cursor-pointer"
34
- @click="isShowCpuHelp = false"
35
- />
36
- </div>
37
-
38
- <p class="cpu-help-text">
39
- {{ localization.common.vmCpuHelpText1 }}
40
- </p>
41
- <p class="cpu-help-text">
42
- {{ props.description }}
43
- </p>
44
- <p class="cpu-help-text">
45
- {{ localization.common.vmCpuHelpText3 }}
46
- </p>
47
- <p class="cpu-help-text">
48
- {{ localization.common.vmCpuHelpText4 }}
49
- </p>
50
-
51
- <div>
52
- <a
53
- id="cpu-more-info-link"
54
- href="javascript:void(0)"
55
- class="cpu-more-info"
56
- >{{ localization.common.moreInformation }}</a
57
- >
58
- </div>
59
- </div>
60
- </template>
61
- </ui-dropdown>
62
- </Teleport>
63
- </div>
64
- </template>
65
-
66
- <script lang="ts" setup>
67
- import type { UI_I_Localization } from '~/lib/models/interfaces'
68
-
69
- const props = defineProps<{
70
- description: string
71
- }>()
72
-
73
- const localization = computed<UI_I_Localization>(() => useLocal())
74
-
75
- const isShowCpuHelp = ref<boolean>(false)
76
- </script>
77
-
78
- <style lang="scss">
79
- :root {
80
- --cpu-help-color: #4d5d69;
81
- --cpu-help-icon-hover-color: #4d5d69;
82
- --cpu-help-icon-active-color: #008fd6;
83
- --cpu-help-close-icon-color: #182531;
84
- --cpu-help-more-info-color: #008fd6;
85
- }
86
- :root.dark-theme {
87
- --cpu-help-color: #e9eaec;
88
- --cpu-help-icon-hover-color: #e9eaec;
89
- --cpu-help-icon-active-color: #2ba2de;
90
- --cpu-help-close-icon-color: #e9eaec;
91
- --cpu-help-more-info-color: #2ba2de;
92
- }
93
-
94
- .light-theme {
95
- .stack-block-expanded {
96
- --cpu-help-icon-hover-color: #e9eaec;
97
- --cpu-help-icon-active-color: #2ba2de;
98
- }
99
- }
100
- .dark-theme {
101
- .stack-block-expanded {
102
- --cpu-help-icon-hover-color: #4d5d69;
103
- --cpu-help-icon-active-color: #008fd6;
104
- }
105
- }
106
- </style>
107
- <style lang="scss" scoped>
108
- .cpu-help-icon {
109
- color: #9da6ad; // for light and dark
110
-
111
- &:hover {
112
- color: var(--cpu-help-icon-hover-color);
113
- }
114
- &.active {
115
- color: var(--cpu-help-icon-active-color);
116
- }
117
- }
118
- .cpu-help-content {
119
- padding: 16px;
120
-
121
- .headline {
122
- display: flex;
123
- align-items: center;
124
- gap: 8px;
125
- margin-bottom: 12px;
126
-
127
- .cpu-help-title {
128
- flex: 1;
129
- font-size: 14px;
130
- font-weight: 500;
131
- line-height: 16.94px;
132
- color: var(--cpu-help-color);
133
- }
134
- .cpu-help-close-icon {
135
- color: var(--cpu-help-close-icon-color);
136
- }
137
- }
138
-
139
- .cpu-help-text {
140
- font-size: 13px;
141
- line-height: 15.73px;
142
- color: var(--cpu-help-color);
143
- margin-bottom: 12px;
144
- }
145
-
146
- .cpu-more-info {
147
- font-size: 13px;
148
- font-weight: 500;
149
- line-height: 15.73px;
150
- color: var(--cpu-help-more-info-color);
151
- text-decoration: none;
152
- }
153
- }
154
- </style>
1
+ <template>
2
+ <div id="cpu-help-icon" class="flex-align-center relative">
3
+ <ui-icon
4
+ :class="['cpu-help-icon cursor-pointer', { active: isShowCpuHelp }]"
5
+ width="20"
6
+ height="20"
7
+ name="info"
8
+ data-id="show-cpu-help-icon"
9
+ @click.stop="isShowCpuHelp = !isShowCpuHelp"
10
+ />
11
+ <Teleport to="body">
12
+ <ui-dropdown
13
+ :show="isShowCpuHelp"
14
+ :items="[]"
15
+ elem-id="cpu-help-icon"
16
+ test-id="cpu-help"
17
+ width="480px"
18
+ max-height="unset"
19
+ left
20
+ @hide="isShowCpuHelp = false"
21
+ >
22
+ <template #content>
23
+ <div class="cpu-help-content">
24
+ <div class="headline">
25
+ <ui-icon name="info-2" width="16" height="16" />
26
+ <h3 class="cpu-help-title">
27
+ {{ localization.common.cpu }}
28
+ </h3>
29
+ <ui-icon
30
+ name="close"
31
+ width="16"
32
+ height="16"
33
+ class="cpu-help-close-icon cursor-pointer"
34
+ @click="isShowCpuHelp = false"
35
+ />
36
+ </div>
37
+
38
+ <p class="cpu-help-text">
39
+ {{ localization.common.vmCpuHelpText1 }}
40
+ </p>
41
+ <p class="cpu-help-text">
42
+ {{ props.description }}
43
+ </p>
44
+ <p class="cpu-help-text">
45
+ {{ localization.common.vmCpuHelpText3 }}
46
+ </p>
47
+ <p class="cpu-help-text">
48
+ {{ localization.common.vmCpuHelpText4 }}
49
+ </p>
50
+
51
+ <div>
52
+ <a
53
+ id="cpu-more-info-link"
54
+ href="javascript:void(0)"
55
+ class="cpu-more-info"
56
+ >{{ localization.common.moreInformation }}</a
57
+ >
58
+ </div>
59
+ </div>
60
+ </template>
61
+ </ui-dropdown>
62
+ </Teleport>
63
+ </div>
64
+ </template>
65
+
66
+ <script lang="ts" setup>
67
+ import type { UI_I_Localization } from '~/lib/models/interfaces'
68
+
69
+ const props = defineProps<{
70
+ description: string
71
+ }>()
72
+
73
+ const localization = computed<UI_I_Localization>(() => useLocal())
74
+
75
+ const isShowCpuHelp = ref<boolean>(false)
76
+ </script>
77
+
78
+ <style lang="scss">
79
+ :root {
80
+ --cpu-help-color: #4d5d69;
81
+ --cpu-help-icon-hover-color: #4d5d69;
82
+ --cpu-help-icon-active-color: #008fd6;
83
+ --cpu-help-close-icon-color: #182531;
84
+ --cpu-help-more-info-color: #008fd6;
85
+ }
86
+ :root.dark-theme {
87
+ --cpu-help-color: #e9eaec;
88
+ --cpu-help-icon-hover-color: #e9eaec;
89
+ --cpu-help-icon-active-color: #2ba2de;
90
+ --cpu-help-close-icon-color: #e9eaec;
91
+ --cpu-help-more-info-color: #2ba2de;
92
+ }
93
+
94
+ .light-theme {
95
+ .stack-block-expanded {
96
+ --cpu-help-icon-hover-color: #e9eaec;
97
+ --cpu-help-icon-active-color: #2ba2de;
98
+ }
99
+ }
100
+ .dark-theme {
101
+ .stack-block-expanded {
102
+ --cpu-help-icon-hover-color: #4d5d69;
103
+ --cpu-help-icon-active-color: #008fd6;
104
+ }
105
+ }
106
+ </style>
107
+ <style lang="scss" scoped>
108
+ .cpu-help-icon {
109
+ color: #9da6ad; // for light and dark
110
+
111
+ &:hover {
112
+ color: var(--cpu-help-icon-hover-color);
113
+ }
114
+ &.active {
115
+ color: var(--cpu-help-icon-active-color);
116
+ }
117
+ }
118
+ .cpu-help-content {
119
+ padding: 16px;
120
+
121
+ .headline {
122
+ display: flex;
123
+ align-items: center;
124
+ gap: 8px;
125
+ margin-bottom: 12px;
126
+
127
+ .cpu-help-title {
128
+ flex: 1;
129
+ font-size: 14px;
130
+ font-weight: 500;
131
+ line-height: 16.94px;
132
+ color: var(--cpu-help-color);
133
+ }
134
+ .cpu-help-close-icon {
135
+ color: var(--cpu-help-close-icon-color);
136
+ }
137
+ }
138
+
139
+ .cpu-help-text {
140
+ font-size: 13px;
141
+ line-height: 15.73px;
142
+ color: var(--cpu-help-color);
143
+ margin-bottom: 12px;
144
+ }
145
+
146
+ .cpu-more-info {
147
+ font-size: 13px;
148
+ font-weight: 500;
149
+ line-height: 15.73px;
150
+ color: var(--cpu-help-more-info-color);
151
+ text-decoration: none;
152
+ }
153
+ }
154
+ </style>