bfg-common 1.5.227 → 1.5.229

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 (159) 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/components/atoms/TheIcon3.vue +50 -50
  7. package/components/atoms/perPage/PerPage.vue +58 -58
  8. package/components/atoms/table/dataGrid/lib/config/settingsTable.ts +94 -94
  9. package/components/atoms/table/dataGrid/lib/utils/export.ts +16 -16
  10. package/components/atoms/tabs/VerticalTabs.vue +105 -105
  11. package/components/common/backup/storage/actions/add/Add.vue +247 -247
  12. package/components/common/backup/storage/actions/add/New.vue +281 -281
  13. package/components/common/backup/storage/actions/add/Old.vue +114 -114
  14. package/components/common/backup/storage/actions/add/lib/config/steps.ts +168 -168
  15. package/components/common/backup/storage/actions/add/steps/nameAndConfigure/NameAndConfigure.vue +41 -41
  16. package/components/common/backup/storage/actions/add/steps/nameAndConfigure/NameAndConfigureNew.vue +294 -294
  17. package/components/common/backup/storage/actions/add/steps/readyComplete/ReadyComplete.vue +45 -45
  18. package/components/common/backup/storage/actions/add/steps/readyComplete/lib/config/propertiesDetails.ts +242 -242
  19. package/components/common/backup/storage/actions/delete/Delete.vue +65 -65
  20. package/components/common/browse/blocks/contents/filesNew/Skeleton.vue +18 -18
  21. package/components/common/browse/blocks/lib/models/types.ts +1 -1
  22. package/components/common/browse/lib/models/interfaces.ts +5 -5
  23. package/components/common/context/lib/models/interfaces.ts +31 -31
  24. package/components/common/diagramMain/DiagramMain.vue +897 -897
  25. package/components/common/diagramMain/Header.vue +214 -214
  26. package/components/common/diagramMain/adapter/AdapterItems.vue +61 -61
  27. package/components/common/diagramMain/lib/config/initial.ts +50 -50
  28. package/components/common/diagramMain/lib/models/types.ts +21 -21
  29. package/components/common/diagramMain/lib/utils/utils.ts +331 -331
  30. package/components/common/diagramMain/modals/editSettings/ConfirmTeamingSettingsModal.vue +40 -40
  31. package/components/common/diagramMain/modals/editSettings/tabs/NetworkProperties.vue +214 -214
  32. package/components/common/diagramMain/modals/editSettings/tabs/Security.vue +189 -189
  33. package/components/common/diagramMain/modals/editSettings/tabs/SwitchProperties.vue +163 -163
  34. package/components/common/diagramMain/modals/editSettings/tabs/TeamingFailover.vue +175 -175
  35. package/components/common/diagramMain/modals/editSettings/tabs/port/IpvFourSettings.vue +346 -346
  36. package/components/common/diagramMain/modals/lib/config/initial.ts +180 -180
  37. package/components/common/diagramMain/modals/lib/config/vmKernelAdapter.ts +90 -90
  38. package/components/common/diagramMain/modals/lib/mappers/mappers.ts +87 -87
  39. package/components/common/diagramMain/modals/lib/utils/index.ts +24 -24
  40. package/components/common/diagramMain/modals/migrateVmkernelAdapter/lib/config/steps.ts +114 -114
  41. package/components/common/diagramMain/modals/migrateVmkernelAdapter/steps/ConnectionSettings.vue +169 -169
  42. package/components/common/diagramMain/modals/migrateVmkernelAdapter/steps/SelectVmkernelAdapter.vue +159 -159
  43. package/components/common/diagramMain/modals/migrateVmkernelAdapter/validations/common.ts +14 -14
  44. package/components/common/diagramMain/modals/migrateVmkernelAdapter/validations/connectionSettings.ts +137 -137
  45. package/components/common/diagramMain/modals/migrateVmkernelAdapter/validations/selectVmkernelAdapter.ts +52 -52
  46. package/components/common/diagramMain/modals/migrateVmkernelAdapter/validations/validations.ts +19 -19
  47. package/components/common/diagramMain/port/Ports.vue +47 -47
  48. package/components/common/layout/theHeader/helpMenu/About.vue +82 -82
  49. package/components/common/layout/theHeader/userMenu/modals/preferences/view/ViewOld.vue +112 -112
  50. package/components/common/monitor/overview/OverviewOld.vue +139 -139
  51. package/components/common/pages/home/headline/Headline.vue +45 -45
  52. package/components/common/pages/home/headline/HeadlineOld.vue +42 -42
  53. package/components/common/pages/home/lib/models/interfaces.ts +48 -48
  54. package/components/common/pages/home/widgets/Widgets.vue +49 -49
  55. package/components/common/pages/home/widgets/WidgetsNew.vue +86 -86
  56. package/components/common/pages/home/widgets/WidgetsOld.vue +34 -34
  57. package/components/common/pages/home/widgets/hosts/Hosts.vue +27 -27
  58. package/components/common/pages/home/widgets/hosts/lib/config/items.ts +23 -23
  59. package/components/common/pages/home/widgets/vms/Vms.vue +26 -26
  60. package/components/common/pages/home/widgets/vms/VmsOld.vue +35 -35
  61. package/components/common/pages/home/widgets/vms/lib/config/items.ts +19 -19
  62. package/components/common/pages/packages/Packages.vue +208 -208
  63. package/components/common/pages/shortcuts/block/BlockOld.vue +68 -68
  64. package/components/common/readyToComplete/ReadyToComplete.vue +17 -17
  65. package/components/common/recursionTree/RecursionTree.vue +223 -223
  66. package/components/common/select/button/ButtonDropdown.vue +108 -108
  67. package/components/common/spiceConsole/Drawer.vue +377 -377
  68. package/components/common/spiceConsole/lib/models/interfaces.ts +5 -5
  69. package/components/common/split/horizontal/HorizontalNew.vue +9 -1
  70. package/components/common/vm/actions/add/folderTreeView/FolderTreeView.vue +72 -72
  71. package/components/common/vm/actions/add/folderTreeView/New.vue +40 -40
  72. package/components/common/vm/actions/add/folderTreeView/Old.vue +50 -50
  73. package/components/common/vm/actions/add/lib/config/steps.ts +263 -263
  74. package/components/common/vm/actions/clone/lib/config/steps.ts +291 -291
  75. package/components/common/vm/actions/clone/toTemplate/lib/config/steps.ts +116 -116
  76. package/components/common/vm/actions/common/customizeHardware/CustomizeHardwareNew.vue +337 -337
  77. package/components/common/vm/actions/common/customizeHardware/virtualHardware/VirtualHardwareNew.vue +480 -480
  78. package/components/common/vm/actions/common/customizeHardware/virtualHardware/VirtualHardwareOld.vue +319 -319
  79. package/components/common/vm/actions/common/customizeHardware/virtualHardware/browseView/BrowseView.vue +219 -219
  80. package/components/common/vm/actions/common/customizeHardware/virtualHardware/bus/Bus.vue +100 -100
  81. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/CdDvdDrive.vue +232 -232
  82. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/CdDvdDriveOld.vue +168 -168
  83. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/media/Media.vue +25 -25
  84. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/media/MediaNew.vue +78 -78
  85. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/media/MediaOld.vue +50 -50
  86. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/CpuNew.vue +190 -190
  87. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/model/ModelNew.vue +237 -237
  88. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/shares/Shares.vue +140 -140
  89. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/shares/lib/config/options.ts +28 -28
  90. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/tooltip/TooltipNew.vue +154 -154
  91. package/components/common/vm/actions/common/customizeHardware/virtualHardware/limit/Limit.vue +220 -220
  92. package/components/common/vm/actions/common/customizeHardware/virtualHardware/memory/Memory.vue +307 -307
  93. package/components/common/vm/actions/common/customizeHardware/virtualHardware/memory/MemoryNew.vue +154 -154
  94. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/NewHardDisk.vue +382 -382
  95. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/location/Location.vue +151 -151
  96. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/location/LocationNew.vue +73 -73
  97. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/location/LocationOld.vue +83 -83
  98. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/NewNetwork.vue +288 -288
  99. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/location/new/table/lib/config/config.ts +94 -94
  100. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/macAddress/MacAddress.vue +119 -119
  101. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/NewPciDevice.vue +205 -205
  102. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/directPathIo/DirectPathIoNew.vue +66 -66
  103. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/directPathIo/DirectPathIoOld.vue +62 -62
  104. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/dynamicDirectPathIo/DynamicDirectPathIo.vue +31 -31
  105. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/dynamicDirectPathIo/DynamicDirectPathIoOld.vue +76 -76
  106. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/note/Note.vue +15 -15
  107. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/note/NoteNew.vue +42 -42
  108. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/note/NoteOld.vue +30 -30
  109. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/nvidiaGrid/NvidiaGridOld.vue +84 -84
  110. package/components/common/vm/actions/common/customizeHardware/virtualHardware/other/Other.vue +16 -16
  111. package/components/common/vm/actions/common/customizeHardware/virtualHardware/other/OtherNew.vue +30 -30
  112. package/components/common/vm/actions/common/customizeHardware/virtualHardware/other/inputDevices/InputDevicesNew.vue +40 -40
  113. package/components/common/vm/actions/common/customizeHardware/vmoptions/Vmoptions.vue +145 -145
  114. package/components/common/vm/actions/common/customizeHardware/vmoptions/VmoptionsNew.vue +106 -106
  115. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/BootOptionsNew.vue +81 -81
  116. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/delay/Delay.vue +32 -32
  117. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/firmware/Firmware.vue +60 -60
  118. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/order/Order.vue +174 -174
  119. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/order/OrderNew.vue +67 -67
  120. package/components/common/vm/actions/common/customizeHardware/vmoptions/generalOptions/GeneralOptionsNew.vue +149 -149
  121. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/New.vue +140 -140
  122. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/copyPaste/CopyPasteNew.vue +31 -31
  123. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/fileTransfer/FileTransferNew.vue +31 -31
  124. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/keymap/Keymap.vue +32 -32
  125. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/password/Password.vue +103 -103
  126. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/password/PasswordNew.vue +128 -128
  127. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/usbRedirection/UsbRedirection.vue +28 -28
  128. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/usbRedirection/UsbRedirectionNew.vue +39 -39
  129. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/usbRedirection/UsbRedirectionOld.vue +44 -44
  130. package/components/common/vm/actions/common/lib/utils/capabilities.ts +52 -52
  131. package/components/common/vm/actions/common/select/compatibility/Old.vue +107 -107
  132. package/components/common/vm/actions/common/select/computeResource/ComputeResource.vue +134 -134
  133. package/components/common/vm/actions/common/select/computeResource/treeView/New.vue +44 -44
  134. package/components/common/vm/actions/common/select/computeResource/treeView/TreeView.vue +118 -118
  135. package/components/common/vm/actions/common/select/createType/CreateType.vue +38 -38
  136. package/components/common/vm/actions/common/select/createType/New.vue +84 -84
  137. package/components/common/vm/actions/common/select/createType/lib/models/interfaces.ts +5 -5
  138. package/components/common/vm/actions/common/select/name/Name.vue +167 -167
  139. package/components/common/vm/actions/common/select/os/New.vue +122 -122
  140. package/components/common/vm/actions/common/select/os/Old.vue +152 -152
  141. package/components/common/vm/actions/common/select/os/Os.vue +139 -139
  142. package/components/common/vm/actions/common/select/storage/new/lib/models/interfaces.ts +5 -5
  143. package/components/common/vm/actions/common/select/storage/new/lib/utils/utils.ts +21 -21
  144. package/components/common/vm/actions/editSettings/new/Skeleton.vue +88 -88
  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 +137 -137
  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/package.json +2 -2
  154. package/plugins/date.ts +233 -233
  155. package/public/spice-console/lib/images/bitmap.js +203 -203
  156. package/public/spice-console/network/spicechannel.js +387 -387
  157. package/store/main/mutations.ts +7 -7
  158. package/store/main/state.ts +7 -7
  159. 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>