bfg-common 1.4.149 → 1.4.150

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 (45) hide show
  1. package/assets/img/icons/icons-sprite-dark-1.svg +407 -407
  2. package/assets/img/icons/icons-sprite-dark-2.svg +343 -343
  3. package/assets/img/icons/icons-sprite-dark-3.svg +227 -227
  4. package/assets/img/icons/icons-sprite-dark-4.svg +255 -255
  5. package/assets/img/icons/icons-sprite-dark-5.svg +488 -488
  6. package/assets/img/icons/icons-sprite-dark-6.svg +83 -83
  7. package/assets/img/icons/icons-sprite-light-1.svg +407 -407
  8. package/assets/img/icons/icons-sprite-light-2.svg +343 -343
  9. package/assets/img/icons/icons-sprite-light-3.svg +227 -227
  10. package/assets/img/icons/icons-sprite-light-4.svg +255 -255
  11. package/assets/img/icons/icons-sprite-light-5.svg +488 -488
  12. package/assets/img/icons/icons-sprite-light-6.svg +83 -83
  13. package/assets/localization/local_be.json +0 -1
  14. package/assets/localization/local_en.json +2588 -2589
  15. package/assets/localization/local_hy.json +0 -1
  16. package/assets/localization/local_kk.json +0 -1
  17. package/assets/localization/local_ru.json +2590 -2591
  18. package/assets/localization/local_zh.json +2586 -2587
  19. package/components/atoms/modal/bySteps/BySteps.vue +253 -253
  20. package/components/atoms/stack/StackBlock.vue +185 -185
  21. package/components/common/browse/blocks/Title.vue +91 -91
  22. package/components/common/browse/blocks/info/Date.vue +21 -21
  23. package/components/common/context/lib/models/interfaces.ts +30 -30
  24. package/components/common/context/recursion/Recursion.vue +86 -86
  25. package/components/common/context/recursion/RecursionNew.vue +199 -199
  26. package/components/common/context/recursion/RecursionOld.vue +213 -213
  27. package/components/common/layout/theHeader/TheHeaderNew.vue +304 -304
  28. package/components/common/layout/theHeader/helpMenu/helpMenuNew/HelpMenuNew.vue +0 -14
  29. package/components/common/layout/theHeader/userMenu/userMenuNew/UserMenuNew.vue +0 -14
  30. package/components/common/mainNavigationPanel/MainNavigationPanelNew.vue +7 -15
  31. package/components/common/split/horizontal/HorizontalNew.vue +0 -1
  32. package/components/common/vm/actions/add/Add.vue +609 -609
  33. package/components/common/vm/actions/clone/Clone.vue +522 -522
  34. package/components/common/vm/actions/common/customizeHardware/virtualHardware/bus/lib/config/options.ts +20 -20
  35. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/Cpu.vue +403 -403
  36. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/Hv.vue +99 -99
  37. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/streamingMode/StreamingMode.vue +85 -85
  38. package/components/common/vm/actions/editSettings/EditSettings.vue +327 -327
  39. package/composables/productNameLocal.ts +30 -30
  40. package/modules/setLastUpdateTime/index.ts +36 -0
  41. package/modules/setLastUpdateTime/lib/utils/methods.ts +31 -0
  42. package/package.json +1 -1
  43. package/plugins/recursion.ts +311 -311
  44. package/public/spice-console/lib/images/bitmap.js +203 -203
  45. package/store/tasks/mappers/recentTasks.ts +45 -45
@@ -1,304 +1,304 @@
1
- <template>
2
- <div class="the-header-content">
3
- <div class="flex-content">
4
- <div class="left-content">
5
- <ui-tooltip
6
- id="tooltip-inventory-menu-trigger"
7
- test-id="tooltip-inventory-menu-trigger"
8
- size="sm"
9
- position="bottom"
10
- position-by-tooltip="center"
11
- >
12
- <template #target>
13
- <div
14
- id="tooltip-inventory-menu-trigger"
15
- class="popped tooltip inline-block"
16
- >
17
- <button
18
- id="inventory-menu-trigger"
19
- data-id="inventory-menu-toggle-button"
20
- class="inventory-menu-trigger"
21
- @click="emits('toggle-main-menu')"
22
- >
23
- <atoms-the-icon
24
- v-if="!props.isShowMainMenu"
25
- class="menu-icon"
26
- name="menu"
27
- />
28
- <atoms-the-icon v-else class="menu-icon" name="close" />
29
- </button>
30
- </div>
31
- </template>
32
- <template #content>
33
- <span class="header-tooltip-text">{{
34
- localization.common.openMenu
35
- }}</span>
36
- </template>
37
- </ui-tooltip>
38
- <nuxt-link
39
- id="header-shortcuts-link"
40
- data-id="header-shortcuts-link"
41
- class="header-shortcuts-link"
42
- to="/shortcuts"
43
- >
44
- <span class="title pointer"
45
- >{{ props.companyName }}® {{ props.projectName }}</span
46
- >
47
- <span v-if="props.isBeta" class="badge-info">{{
48
- props.betaText
49
- }}</span>
50
- <span v-else-if="props.isDev" class="badge-info">Dev</span>
51
- </nuxt-link>
52
- </div>
53
- <div class="right-content">
54
- <ui-tooltip
55
- id="tooltip-global-refresh-button"
56
- test-id="tooltip-global-refresh-button"
57
- size="sm"
58
- position="bottom"
59
- position-by-tooltip="center"
60
- >
61
- <template #target>
62
- <div
63
- id="tooltip-global-refresh-button"
64
- class="popped tooltip inline-block"
65
- >
66
- <button
67
- id="global-refresh-button"
68
- data-id="global-refresh-button"
69
- class="global-refresh-button"
70
- @click="emits('global-refresh')"
71
- >
72
- <atoms-the-icon
73
- v-if="!props.globalRefreshLoading"
74
- class="reset-icon"
75
- name="reset"
76
- />
77
- <span v-else class="reset-loader-content">
78
- <ui-loader2 width="24" height="24" />
79
- </span>
80
- </button>
81
- </div>
82
- </template>
83
- <template #content>
84
- <span class="header-tooltip-text">
85
- {{ localization.common.refresh }}
86
- </span>
87
- </template>
88
- </ui-tooltip>
89
- <div class="divider" />
90
- <div class="container-content">
91
- <common-layout-the-header-theme-switch
92
- :is-dark-theme="props.isDarkTheme"
93
- @change-theme-mode="emits('change-theme-mode')"
94
- />
95
- </div>
96
- <div class="divider" />
97
- <div class="container-content">
98
- <common-layout-the-header-help-menu
99
- :project-name="props.projectName"
100
- />
101
- </div>
102
- <div class="divider" />
103
- <div class="container-content user-menu-container">
104
- <common-layout-the-header-user-menu
105
- :hostname="props.hostname"
106
- :is-preference="isPreference"
107
- :time-format="props.timeFormat"
108
- :selected-language-type="props.selectedLanguageType"
109
- :selected-language="props.selectedLang"
110
- :new-view="props.newView"
111
- :new-view-local="props.newViewLocal"
112
- :project="props.project"
113
- :remote-console="props.remoteConsole"
114
- :vm-cluster="props.vmCluster"
115
- @show-preference="emits('show-preference')"
116
- @reset-preference="emits('reset-preference')"
117
- @hide-preference="emits('hide-preference')"
118
- @change-theme-mode="emits('change-theme-mode')"
119
- @update-time-format="emits('update-time-format', $event)"
120
- @update-language="emits('update-language', $event)"
121
- @update-is-browser="emits('update-is-browser', $event)"
122
- @update-is-new-view="emits('update-is-new-view', $event)"
123
- @update-remote-console="emits('update-remote-console', $event)"
124
- @update-vm-clusters="emits('update-vm-clusters', $event)"
125
- @submit-preferences="emits('submit-preferences')"
126
- />
127
- </div>
128
- </div>
129
- </div>
130
- </div>
131
- </template>
132
-
133
- <script setup lang="ts">
134
- import type { UI_I_Dropdown } from '~/node_modules/bfg-uikit/components/ui/dropdown/models/interfaces'
135
- import type { UI_T_TimeValue } from '~/components/common/layout/theHeader/userMenu/modals/preferences/timeFormat/lib/models/types'
136
- import type { UI_T_Project } from '~/lib/models/types'
137
- import type { UI_I_Localization } from '~/lib/models/interfaces'
138
-
139
- const props = defineProps<{
140
- isShowMainMenu: boolean
141
- companyName: string
142
- isBeta: boolean
143
- isDev: boolean
144
- betaText: string
145
- globalRefreshLoading: boolean
146
- project: UI_T_Project
147
- projectName: string
148
- hostname: string
149
- isPreference: boolean
150
- selectedLanguageType: string
151
- selectedLang: UI_I_Dropdown
152
- remoteConsole: string
153
- vmCluster: boolean
154
- newView: boolean
155
- newViewLocal: boolean
156
- timeFormat: string
157
- isDarkTheme: boolean
158
- }>()
159
-
160
- const emits = defineEmits<{
161
- (event: 'toggle-main-menu'): void
162
- (event: 'global-refresh'): void
163
- (event: 'show-preference'): void
164
- (event: 'reset-preference'): void
165
- (event: 'hide-preference'): void
166
- (event: 'change-theme-mode'): void
167
- (event: 'update-time-format', value: UI_T_TimeValue): void
168
- (event: 'update-language', value: UI_I_Dropdown): void
169
- (event: 'update-is-browser', value: string): void
170
- (event: 'update-is-new-view', value: boolean): void
171
- (event: 'update-remote-console', value: string): void
172
- (event: 'update-vm-clusters', value: boolean): void
173
- (event: 'submit-preferences'): void
174
- }>()
175
-
176
- const localization = computed<UI_I_Localization>(() => useLocal())
177
- </script>
178
-
179
- <style>
180
- :root {
181
- --header-container-bg-color: #213444;
182
- --header-shortcuts-link-color: #ffffff;
183
- --badge-info-bg-color: #008fd6;
184
- }
185
- :root.dark-theme {
186
- --header-container-bg-color: #1b2a37;
187
- --header-shortcuts-link-color: #e9eaec;
188
- --badge-info-bg-color: #2ba2de;
189
- }
190
- </style>
191
-
192
- <style scoped lang="scss">
193
- .the-header-content {
194
- background-color: var(--header-container-bg-color);
195
- height: 64px;
196
- padding: 16px;
197
-
198
- .flex-content {
199
- display: flex;
200
- justify-content: space-between;
201
-
202
- .header-tooltip-text {
203
- font-size: 12px;
204
- font-weight: 500;
205
- }
206
- .left-content {
207
- display: flex;
208
- align-items: center;
209
-
210
- #tooltip-inventory-menu-trigger {
211
- .inventory-menu-trigger {
212
- width: 24px;
213
- height: 24px;
214
- border: unset;
215
- padding: 0;
216
- outline: unset;
217
- background: transparent;
218
- cursor: pointer;
219
- margin-right: 16px;
220
-
221
- &:hover {
222
- svg {
223
- fill: #ffffff;
224
- }
225
- }
226
- svg {
227
- fill: #d3d6da;
228
- }
229
- }
230
- }
231
- :deep(#tooltip-inventory-menu-trigger-div) {
232
- z-index: 9999;
233
- }
234
-
235
- .header-shortcuts-link {
236
- color: var(--header-shortcuts-link-color);
237
- text-decoration: none;
238
- display: flex;
239
- align-items: center;
240
-
241
- .title {
242
- font-size: 16px;
243
- font-weight: 300;
244
- }
245
- .badge-info {
246
- background-color: var(--badge-info-bg-color);
247
- margin-left: 16px;
248
- border-radius: 8px;
249
- font-size: 12px;
250
- padding: 0 12px;
251
- height: 24px;
252
- display: flex;
253
- align-items: center;
254
- }
255
- }
256
- }
257
- .right-content {
258
- display: flex;
259
- align-items: center;
260
-
261
- .divider {
262
- width: 1px;
263
- height: 32px;
264
- background-color: #394a58;
265
- }
266
-
267
- .global-refresh-button {
268
- border: unset;
269
- padding: 0;
270
- outline: unset;
271
- background: transparent;
272
- cursor: pointer;
273
- display: flex;
274
- margin-right: 16px;
275
-
276
- .reset-icon {
277
- width: 24px;
278
- height: 24px;
279
- fill: #d3d6da;
280
-
281
- &:hover {
282
- fill: #ffffff;
283
- }
284
- }
285
- .reset-loader-content {
286
- width: 24px;
287
- height: 24px;
288
-
289
- .loader {
290
- padding: 2px;
291
- }
292
- }
293
- }
294
- .container-content {
295
- margin-left: 16px;
296
- margin-right: 16px;
297
- }
298
- .user-menu-container {
299
- margin-right: 0;
300
- }
301
- }
302
- }
303
- }
304
- </style>
1
+ <template>
2
+ <div class="the-header-content">
3
+ <div class="flex-content">
4
+ <div class="left-content">
5
+ <ui-tooltip
6
+ id="tooltip-inventory-menu-trigger"
7
+ test-id="tooltip-inventory-menu-trigger"
8
+ size="sm"
9
+ position="bottom"
10
+ position-by-tooltip="center"
11
+ >
12
+ <template #target>
13
+ <div
14
+ id="tooltip-inventory-menu-trigger"
15
+ class="popped tooltip inline-block"
16
+ >
17
+ <button
18
+ id="inventory-menu-trigger"
19
+ data-id="inventory-menu-toggle-button"
20
+ class="inventory-menu-trigger"
21
+ @click="emits('toggle-main-menu')"
22
+ >
23
+ <atoms-the-icon
24
+ v-if="!props.isShowMainMenu"
25
+ class="menu-icon"
26
+ name="menu"
27
+ />
28
+ <atoms-the-icon v-else class="menu-icon" name="close" />
29
+ </button>
30
+ </div>
31
+ </template>
32
+ <template #content>
33
+ <span class="header-tooltip-text">{{
34
+ localization.common.menu
35
+ }}</span>
36
+ </template>
37
+ </ui-tooltip>
38
+ <nuxt-link
39
+ id="header-shortcuts-link"
40
+ data-id="header-shortcuts-link"
41
+ class="header-shortcuts-link"
42
+ to="/shortcuts"
43
+ >
44
+ <span class="title pointer"
45
+ >{{ props.companyName }}® {{ props.projectName }}</span
46
+ >
47
+ <span v-if="props.isBeta" class="badge-info">{{
48
+ props.betaText
49
+ }}</span>
50
+ <span v-else-if="props.isDev" class="badge-info">Dev</span>
51
+ </nuxt-link>
52
+ </div>
53
+ <div class="right-content">
54
+ <ui-tooltip
55
+ id="tooltip-global-refresh-button"
56
+ test-id="tooltip-global-refresh-button"
57
+ size="sm"
58
+ position="bottom"
59
+ position-by-tooltip="center"
60
+ >
61
+ <template #target>
62
+ <div
63
+ id="tooltip-global-refresh-button"
64
+ class="popped tooltip inline-block"
65
+ >
66
+ <button
67
+ id="global-refresh-button"
68
+ data-id="global-refresh-button"
69
+ class="global-refresh-button"
70
+ @click="emits('global-refresh')"
71
+ >
72
+ <atoms-the-icon
73
+ v-if="!props.globalRefreshLoading"
74
+ class="reset-icon"
75
+ name="reset"
76
+ />
77
+ <span v-else class="reset-loader-content">
78
+ <ui-loader2 width="24" height="24" />
79
+ </span>
80
+ </button>
81
+ </div>
82
+ </template>
83
+ <template #content>
84
+ <span class="header-tooltip-text">
85
+ {{ localization.common.refresh }}
86
+ </span>
87
+ </template>
88
+ </ui-tooltip>
89
+ <div class="divider" />
90
+ <div class="container-content">
91
+ <common-layout-the-header-theme-switch
92
+ :is-dark-theme="props.isDarkTheme"
93
+ @change-theme-mode="emits('change-theme-mode')"
94
+ />
95
+ </div>
96
+ <div class="divider" />
97
+ <div class="container-content">
98
+ <common-layout-the-header-help-menu
99
+ :project-name="props.projectName"
100
+ />
101
+ </div>
102
+ <div class="divider" />
103
+ <div class="container-content user-menu-container">
104
+ <common-layout-the-header-user-menu
105
+ :hostname="props.hostname"
106
+ :is-preference="isPreference"
107
+ :time-format="props.timeFormat"
108
+ :selected-language-type="props.selectedLanguageType"
109
+ :selected-language="props.selectedLang"
110
+ :new-view="props.newView"
111
+ :new-view-local="props.newViewLocal"
112
+ :project="props.project"
113
+ :remote-console="props.remoteConsole"
114
+ :vm-cluster="props.vmCluster"
115
+ @show-preference="emits('show-preference')"
116
+ @reset-preference="emits('reset-preference')"
117
+ @hide-preference="emits('hide-preference')"
118
+ @change-theme-mode="emits('change-theme-mode')"
119
+ @update-time-format="emits('update-time-format', $event)"
120
+ @update-language="emits('update-language', $event)"
121
+ @update-is-browser="emits('update-is-browser', $event)"
122
+ @update-is-new-view="emits('update-is-new-view', $event)"
123
+ @update-remote-console="emits('update-remote-console', $event)"
124
+ @update-vm-clusters="emits('update-vm-clusters', $event)"
125
+ @submit-preferences="emits('submit-preferences')"
126
+ />
127
+ </div>
128
+ </div>
129
+ </div>
130
+ </div>
131
+ </template>
132
+
133
+ <script setup lang="ts">
134
+ import type { UI_I_Dropdown } from '~/node_modules/bfg-uikit/components/ui/dropdown/models/interfaces'
135
+ import type { UI_T_TimeValue } from '~/components/common/layout/theHeader/userMenu/modals/preferences/timeFormat/lib/models/types'
136
+ import type { UI_T_Project } from '~/lib/models/types'
137
+ import type { UI_I_Localization } from '~/lib/models/interfaces'
138
+
139
+ const props = defineProps<{
140
+ isShowMainMenu: boolean
141
+ companyName: string
142
+ isBeta: boolean
143
+ isDev: boolean
144
+ betaText: string
145
+ globalRefreshLoading: boolean
146
+ project: UI_T_Project
147
+ projectName: string
148
+ hostname: string
149
+ isPreference: boolean
150
+ selectedLanguageType: string
151
+ selectedLang: UI_I_Dropdown
152
+ remoteConsole: string
153
+ vmCluster: boolean
154
+ newView: boolean
155
+ newViewLocal: boolean
156
+ timeFormat: string
157
+ isDarkTheme: boolean
158
+ }>()
159
+
160
+ const emits = defineEmits<{
161
+ (event: 'toggle-main-menu'): void
162
+ (event: 'global-refresh'): void
163
+ (event: 'show-preference'): void
164
+ (event: 'reset-preference'): void
165
+ (event: 'hide-preference'): void
166
+ (event: 'change-theme-mode'): void
167
+ (event: 'update-time-format', value: UI_T_TimeValue): void
168
+ (event: 'update-language', value: UI_I_Dropdown): void
169
+ (event: 'update-is-browser', value: string): void
170
+ (event: 'update-is-new-view', value: boolean): void
171
+ (event: 'update-remote-console', value: string): void
172
+ (event: 'update-vm-clusters', value: boolean): void
173
+ (event: 'submit-preferences'): void
174
+ }>()
175
+
176
+ const localization = computed<UI_I_Localization>(() => useLocal())
177
+ </script>
178
+
179
+ <style>
180
+ :root {
181
+ --header-container-bg-color: #213444;
182
+ --header-shortcuts-link-color: #ffffff;
183
+ --badge-info-bg-color: #008fd6;
184
+ }
185
+ :root.dark-theme {
186
+ --header-container-bg-color: #1b2a37;
187
+ --header-shortcuts-link-color: #e9eaec;
188
+ --badge-info-bg-color: #2ba2de;
189
+ }
190
+ </style>
191
+
192
+ <style scoped lang="scss">
193
+ .the-header-content {
194
+ background-color: var(--header-container-bg-color);
195
+ height: 64px;
196
+ padding: 16px;
197
+
198
+ .flex-content {
199
+ display: flex;
200
+ justify-content: space-between;
201
+
202
+ .header-tooltip-text {
203
+ font-size: 12px;
204
+ font-weight: 500;
205
+ }
206
+ .left-content {
207
+ display: flex;
208
+ align-items: center;
209
+
210
+ #tooltip-inventory-menu-trigger {
211
+ .inventory-menu-trigger {
212
+ width: 24px;
213
+ height: 24px;
214
+ border: unset;
215
+ padding: 0;
216
+ outline: unset;
217
+ background: transparent;
218
+ cursor: pointer;
219
+ margin-right: 16px;
220
+
221
+ &:hover {
222
+ svg {
223
+ fill: #ffffff;
224
+ }
225
+ }
226
+ svg {
227
+ fill: #d3d6da;
228
+ }
229
+ }
230
+ }
231
+ :deep(#tooltip-inventory-menu-trigger-div) {
232
+ z-index: 9999;
233
+ }
234
+
235
+ .header-shortcuts-link {
236
+ color: var(--header-shortcuts-link-color);
237
+ text-decoration: none;
238
+ display: flex;
239
+ align-items: center;
240
+
241
+ .title {
242
+ font-size: 16px;
243
+ font-weight: 300;
244
+ }
245
+ .badge-info {
246
+ background-color: var(--badge-info-bg-color);
247
+ margin-left: 16px;
248
+ border-radius: 8px;
249
+ font-size: 12px;
250
+ padding: 0 12px;
251
+ height: 24px;
252
+ display: flex;
253
+ align-items: center;
254
+ }
255
+ }
256
+ }
257
+ .right-content {
258
+ display: flex;
259
+ align-items: center;
260
+
261
+ .divider {
262
+ width: 1px;
263
+ height: 32px;
264
+ background-color: #394a58;
265
+ }
266
+
267
+ .global-refresh-button {
268
+ border: unset;
269
+ padding: 0;
270
+ outline: unset;
271
+ background: transparent;
272
+ cursor: pointer;
273
+ display: flex;
274
+ margin-right: 16px;
275
+
276
+ .reset-icon {
277
+ width: 24px;
278
+ height: 24px;
279
+ fill: #d3d6da;
280
+
281
+ &:hover {
282
+ fill: #ffffff;
283
+ }
284
+ }
285
+ .reset-loader-content {
286
+ width: 24px;
287
+ height: 24px;
288
+
289
+ .loader {
290
+ padding: 2px;
291
+ }
292
+ }
293
+ }
294
+ .container-content {
295
+ margin-left: 16px;
296
+ margin-right: 16px;
297
+ }
298
+ .user-menu-container {
299
+ margin-right: 0;
300
+ }
301
+ }
302
+ }
303
+ }
304
+ </style>
@@ -112,20 +112,6 @@ const onSelectDropdown = (value: string): void => {
112
112
  }
113
113
  onHideDropdown()
114
114
  }
115
-
116
- const hideTooltip = (): void => {
117
- const hoverElement = document.querySelector(
118
- '#tooltip-help-menu-dropdown-toggle-main .tooltip-container-hover'
119
- )
120
-
121
- if (!hoverElement) return
122
-
123
- hoverElement.classList.remove('isShow')
124
- }
125
-
126
- watch(isShowDropdown, (newValue) => {
127
- newValue && hideTooltip()
128
- })
129
115
  </script>
130
116
 
131
117
  <style scoped lang="scss">
@@ -96,20 +96,6 @@ const onSelectDropdown = (value: string): void => {
96
96
  emits('select-dropdown', value)
97
97
  onHideDropdown()
98
98
  }
99
-
100
- const hideTooltip = (): void => {
101
- const hoverElement = document.querySelector(
102
- '#tooltip-user-menu-dropdown-toggle-main .tooltip-container-hover'
103
- )
104
-
105
- if (!hoverElement) return
106
-
107
- hoverElement.classList.remove('isShow')
108
- }
109
-
110
- watch(isShowDropdown, (newValue) => {
111
- newValue && hideTooltip()
112
- })
113
99
  </script>
114
100
 
115
101
  <style lang="scss">