bfg-common 1.4.166 → 1.4.168

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 (42) 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 +2 -2
  14. package/assets/localization/local_en.json +2 -2
  15. package/assets/localization/local_hy.json +2 -2
  16. package/assets/localization/local_kk.json +2 -2
  17. package/assets/localization/local_ru.json +2 -2
  18. package/assets/localization/local_zh.json +2 -2
  19. package/assets/scss/common/global.scss +4 -0
  20. package/components/atoms/modal/bySteps/BySteps.vue +253 -253
  21. package/components/atoms/stack/StackBlock.vue +185 -185
  22. package/components/common/browse/blocks/Title.vue +91 -91
  23. package/components/common/browse/blocks/info/Date.vue +21 -21
  24. package/components/common/context/lib/models/interfaces.ts +30 -30
  25. package/components/common/context/recursion/Recursion.vue +86 -86
  26. package/components/common/context/recursion/RecursionNew.vue +199 -199
  27. package/components/common/context/recursion/RecursionOld.vue +213 -213
  28. package/components/common/layout/theHeader/TheHeaderNew.vue +3 -6
  29. package/components/common/mainNavigationPanel/MainNavigationPanelNew.vue +4 -25
  30. package/components/common/pages/hardwareHealth/historyTestimony/Graph.vue +14 -32
  31. package/components/common/vm/actions/add/Add.vue +609 -609
  32. package/components/common/vm/actions/clone/Clone.vue +522 -522
  33. package/components/common/vm/actions/common/customizeHardware/virtualHardware/bus/lib/config/options.ts +20 -20
  34. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/Cpu.vue +403 -403
  35. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/Hv.vue +99 -99
  36. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/streamingMode/StreamingMode.vue +85 -85
  37. package/components/common/vm/actions/editSettings/EditSettings.vue +327 -327
  38. package/composables/productNameLocal.ts +30 -30
  39. package/package.json +1 -1
  40. package/plugins/recursion.ts +311 -311
  41. package/public/spice-console/lib/images/bitmap.js +203 -203
  42. package/store/tasks/mappers/recentTasks.ts +45 -45
@@ -1,213 +1,213 @@
1
- <template>
2
- <ul class="context-wrap">
3
- <span v-if="props.isLoading">
4
- <atoms-loader-pre-loader
5
- id="loader"
6
- class="absolute-center context-menu__loading"
7
- :show="true"
8
- />
9
- </span>
10
- <li
11
- v-for="(item, key) in props.items"
12
- :key="key"
13
- :class="[
14
- 'menu-item',
15
- { disabled: item.disabled || isLoading },
16
- { 'item-header': item.isHeader },
17
- { 'has-border-top': item.hasBorderTop },
18
- ]"
19
- @mouseenter="emits('toggle-items', [item, true, $event])"
20
- @mouseleave="emits('toggle-items', [item, false, $event])"
21
- >
22
- <span
23
- class="context-link"
24
- :style="item.style"
25
- :data-id="`${item.testId}-context-link`"
26
- @mousedown="emits('select-item', item)"
27
- >
28
- <span :class="['context-icon', item.iconClassName]" />
29
- <span class="menu-item-text">{{ item.name }}</span>
30
- <span v-if="item.items.length" class="arrow-icon" />
31
- <span v-if="item.shortcut" class="shortcut">{{ item.shortcut }}</span>
32
- </span>
33
-
34
- <div class="context-children">
35
- <common-context-recursion
36
- v-show="item.isShowItems"
37
- :action-loading="props.actionLoading"
38
- :class="[{ 'child-show': item.isShowItems }]"
39
- :items="item.items"
40
- @select-item="emits('select-item', $event)"
41
- />
42
- </div>
43
- </li>
44
- </ul>
45
- </template>
46
-
47
- <script setup lang="ts">
48
- import type { UI_I_ContextMenuItem } from '~/components/common/context/lib/models/interfaces'
49
- import type { I_HTMLLiElement } from '~/components/common/context/recursion/lib/models/interfaces'
50
-
51
- const props = defineProps<{
52
- items: UI_I_ContextMenuItem[]
53
- actionLoading: string | null
54
- isLoading: boolean
55
- testId?: string
56
- }>()
57
-
58
- const emits = defineEmits<{
59
- (event: 'select-item', value: UI_I_ContextMenuItem): void
60
- (
61
- event: 'toggle-items',
62
- value: [UI_I_ContextMenuItem, boolean, I_HTMLLiElement]
63
- ): void
64
- }>()
65
- </script>
66
-
67
- <style scoped lang="scss">
68
- .loader-wrapper {
69
- width: 100%;
70
- height: 100%;
71
- z-index: 100;
72
- }
73
-
74
- .context-menu__loading {
75
- :deep(.spinner) {
76
- width: 45px;
77
- height: 45px;
78
- min-width: 45px;
79
- min-height: 45px;
80
- z-index: 1000;
81
- }
82
- }
83
- .context-wrap {
84
- width: auto;
85
- max-width: 400px;
86
- background: var(--global-bg-color);
87
- border-radius: 0;
88
- color: #333;
89
- border: 1px solid var(--context-menu-border-color);
90
- user-select: none;
91
- list-style: none;
92
- max-height: 100vh;
93
- overflow-y: auto;
94
-
95
- .menu-item {
96
- position: relative;
97
- color: #565656;
98
- border-bottom: 1px solid transparent;
99
- cursor: pointer;
100
- padding: 5px 0 3px;
101
-
102
- &.has-border-top {
103
- border-top: 1px solid var(--context-menu-inset-border-color);
104
- }
105
-
106
- &.item-header {
107
- font-size: 11px;
108
- background-color: var(--context-menu-item-header-color);
109
- cursor: default;
110
- }
111
- &:not(.item-header):not(.disabled):hover {
112
- background-color: var(--context-menu-hover-bg-color);
113
- color: #454545;
114
- border-bottom: 1px solid var(--context-menu-hover-border-color);
115
- }
116
- &.disabled {
117
- opacity: 0.5;
118
- user-select: none;
119
- cursor: default;
120
- }
121
- &.left {
122
- :deep(.context-children) {
123
- left: 0;
124
- background: red;
125
-
126
- .context-wrap {
127
- transform: translateX(-100%);
128
- left: auto;
129
- }
130
- }
131
- }
132
-
133
- .context-link {
134
- position: relative;
135
- overflow: hidden;
136
- text-overflow: ellipsis;
137
- white-space: nowrap;
138
- display: flex;
139
- align-items: center;
140
- user-select: none;
141
- padding: 3px 20px 4px 10px;
142
-
143
- .menu-item-text {
144
- flex: 1 1 0;
145
- }
146
-
147
- .context-icon {
148
- display: inline-block;
149
- margin: -2px 4px 0 0;
150
- vertical-align: middle;
151
- width: 18px;
152
- height: 18px;
153
- }
154
-
155
- .arrow-icon {
156
- position: absolute;
157
- top: 50%;
158
- margin-top: -8px;
159
- right: 4px;
160
- background-image: url('assets/img/icons/sprite.png');
161
- display: inline-block;
162
- width: 16px;
163
- height: 16px;
164
- overflow: hidden;
165
- background-repeat: no-repeat;
166
- font-size: 0;
167
- line-height: 0;
168
- text-align: center;
169
- transform: rotate(90deg);
170
- }
171
-
172
- .shortcut {
173
- padding-left: 10px;
174
- }
175
- }
176
-
177
- .context-children {
178
- position: absolute;
179
- top: 0;
180
- left: 100%;
181
-
182
- .context-wrap {
183
- position: fixed;
184
- }
185
- }
186
- }
187
- }
188
- .context-menu__loading {
189
- :deep(.spinner) {
190
- width: 45px;
191
- height: 45px;
192
- min-width: 45px;
193
- min-height: 45px;
194
- z-index: 1000;
195
- }
196
- }
197
- </style>
198
- <style>
199
- :root {
200
- --context-menu-hover-bg-color: #e8e8e8;
201
- --context-menu-border-color: #949494;
202
- --context-menu-inset-border-color: #d4d5d6;
203
- --context-menu-item-header-color: #eceff2;
204
- --context-menu-hover-border-color: #666;
205
- }
206
- :root.dark-theme {
207
- --context-menu-hover-bg-color: #324f61;
208
- --context-menu-border-color: #495865;
209
- --context-menu-inset-border-color: #485764;
210
- --context-menu-item-header-color: #29414e;
211
- --context-menu-hover-border-color: #fff;
212
- }
213
- </style>
1
+ <template>
2
+ <ul class="context-wrap">
3
+ <span v-if="props.isLoading">
4
+ <atoms-loader-pre-loader
5
+ id="loader"
6
+ class="absolute-center context-menu__loading"
7
+ :show="true"
8
+ />
9
+ </span>
10
+ <li
11
+ v-for="(item, key) in props.items"
12
+ :key="key"
13
+ :class="[
14
+ 'menu-item',
15
+ { disabled: item.disabled || isLoading },
16
+ { 'item-header': item.isHeader },
17
+ { 'has-border-top': item.hasBorderTop },
18
+ ]"
19
+ @mouseenter="emits('toggle-items', [item, true, $event])"
20
+ @mouseleave="emits('toggle-items', [item, false, $event])"
21
+ >
22
+ <span
23
+ class="context-link"
24
+ :style="item.style"
25
+ :data-id="`${item.testId}-context-link`"
26
+ @mousedown="emits('select-item', item)"
27
+ >
28
+ <span :class="['context-icon', item.iconClassName]" />
29
+ <span class="menu-item-text">{{ item.name }}</span>
30
+ <span v-if="item.items.length" class="arrow-icon" />
31
+ <span v-if="item.shortcut" class="shortcut">{{ item.shortcut }}</span>
32
+ </span>
33
+
34
+ <div class="context-children">
35
+ <common-context-recursion
36
+ v-show="item.isShowItems"
37
+ :action-loading="props.actionLoading"
38
+ :class="[{ 'child-show': item.isShowItems }]"
39
+ :items="item.items"
40
+ @select-item="emits('select-item', $event)"
41
+ />
42
+ </div>
43
+ </li>
44
+ </ul>
45
+ </template>
46
+
47
+ <script setup lang="ts">
48
+ import type { UI_I_ContextMenuItem } from '~/components/common/context/lib/models/interfaces'
49
+ import type { I_HTMLLiElement } from '~/components/common/context/recursion/lib/models/interfaces'
50
+
51
+ const props = defineProps<{
52
+ items: UI_I_ContextMenuItem[]
53
+ actionLoading: string | null
54
+ isLoading: boolean
55
+ testId?: string
56
+ }>()
57
+
58
+ const emits = defineEmits<{
59
+ (event: 'select-item', value: UI_I_ContextMenuItem): void
60
+ (
61
+ event: 'toggle-items',
62
+ value: [UI_I_ContextMenuItem, boolean, I_HTMLLiElement]
63
+ ): void
64
+ }>()
65
+ </script>
66
+
67
+ <style scoped lang="scss">
68
+ .loader-wrapper {
69
+ width: 100%;
70
+ height: 100%;
71
+ z-index: 100;
72
+ }
73
+
74
+ .context-menu__loading {
75
+ :deep(.spinner) {
76
+ width: 45px;
77
+ height: 45px;
78
+ min-width: 45px;
79
+ min-height: 45px;
80
+ z-index: 1000;
81
+ }
82
+ }
83
+ .context-wrap {
84
+ width: auto;
85
+ max-width: 400px;
86
+ background: var(--global-bg-color);
87
+ border-radius: 0;
88
+ color: #333;
89
+ border: 1px solid var(--context-menu-border-color);
90
+ user-select: none;
91
+ list-style: none;
92
+ max-height: 100vh;
93
+ overflow-y: auto;
94
+
95
+ .menu-item {
96
+ position: relative;
97
+ color: #565656;
98
+ border-bottom: 1px solid transparent;
99
+ cursor: pointer;
100
+ padding: 5px 0 3px;
101
+
102
+ &.has-border-top {
103
+ border-top: 1px solid var(--context-menu-inset-border-color);
104
+ }
105
+
106
+ &.item-header {
107
+ font-size: 11px;
108
+ background-color: var(--context-menu-item-header-color);
109
+ cursor: default;
110
+ }
111
+ &:not(.item-header):not(.disabled):hover {
112
+ background-color: var(--context-menu-hover-bg-color);
113
+ color: #454545;
114
+ border-bottom: 1px solid var(--context-menu-hover-border-color);
115
+ }
116
+ &.disabled {
117
+ opacity: 0.5;
118
+ user-select: none;
119
+ cursor: default;
120
+ }
121
+ &.left {
122
+ :deep(.context-children) {
123
+ left: 0;
124
+ background: red;
125
+
126
+ .context-wrap {
127
+ transform: translateX(-100%);
128
+ left: auto;
129
+ }
130
+ }
131
+ }
132
+
133
+ .context-link {
134
+ position: relative;
135
+ overflow: hidden;
136
+ text-overflow: ellipsis;
137
+ white-space: nowrap;
138
+ display: flex;
139
+ align-items: center;
140
+ user-select: none;
141
+ padding: 3px 20px 4px 10px;
142
+
143
+ .menu-item-text {
144
+ flex: 1 1 0;
145
+ }
146
+
147
+ .context-icon {
148
+ display: inline-block;
149
+ margin: -2px 4px 0 0;
150
+ vertical-align: middle;
151
+ width: 18px;
152
+ height: 18px;
153
+ }
154
+
155
+ .arrow-icon {
156
+ position: absolute;
157
+ top: 50%;
158
+ margin-top: -8px;
159
+ right: 4px;
160
+ background-image: url('assets/img/icons/sprite.png');
161
+ display: inline-block;
162
+ width: 16px;
163
+ height: 16px;
164
+ overflow: hidden;
165
+ background-repeat: no-repeat;
166
+ font-size: 0;
167
+ line-height: 0;
168
+ text-align: center;
169
+ transform: rotate(90deg);
170
+ }
171
+
172
+ .shortcut {
173
+ padding-left: 10px;
174
+ }
175
+ }
176
+
177
+ .context-children {
178
+ position: absolute;
179
+ top: 0;
180
+ left: 100%;
181
+
182
+ .context-wrap {
183
+ position: fixed;
184
+ }
185
+ }
186
+ }
187
+ }
188
+ .context-menu__loading {
189
+ :deep(.spinner) {
190
+ width: 45px;
191
+ height: 45px;
192
+ min-width: 45px;
193
+ min-height: 45px;
194
+ z-index: 1000;
195
+ }
196
+ }
197
+ </style>
198
+ <style>
199
+ :root {
200
+ --context-menu-hover-bg-color: #e8e8e8;
201
+ --context-menu-border-color: #949494;
202
+ --context-menu-inset-border-color: #d4d5d6;
203
+ --context-menu-item-header-color: #eceff2;
204
+ --context-menu-hover-border-color: #666;
205
+ }
206
+ :root.dark-theme {
207
+ --context-menu-hover-bg-color: #324f61;
208
+ --context-menu-border-color: #495865;
209
+ --context-menu-inset-border-color: #485764;
210
+ --context-menu-item-header-color: #29414e;
211
+ --context-menu-hover-border-color: #fff;
212
+ }
213
+ </style>
@@ -30,12 +30,9 @@
30
30
  </div>
31
31
  </template>
32
32
  <template #content>
33
- <span class="header-tooltip-text">
34
- <template v-if="!props.isShowMainMenu">{{
35
- localization.common.openMenu
36
- }}</template>
37
- <template v-else>{{ localization.common.closeMenu }}</template>
38
- </span>
33
+ <span class="header-tooltip-text">{{
34
+ localization.common.openMenu
35
+ }}</span>
39
36
  </template>
40
37
  </ui-tooltip>
41
38
  <nuxt-link
@@ -60,9 +60,7 @@
60
60
  :id="`tooltip-nav-${key}-${key2}`"
61
61
  :key="item2.id"
62
62
  :test-id="`tooltip-nav-${key}-${key2}`"
63
- :menu-selected="isActiveNode(item2.to)"
64
63
  size="md"
65
- class="node-tooltip-container"
66
64
  menu
67
65
  >
68
66
  <template #target>
@@ -88,7 +86,7 @@
88
86
  </div>
89
87
  </template>
90
88
  <template #content>
91
- <span class="node-tooltip-text">{{ item2.title }}</span>
89
+ {{ item2.title }}
92
90
  </template>
93
91
  </ui-tooltip>
94
92
  <div
@@ -121,10 +119,6 @@ const emits = defineEmits<{
121
119
  (event: 'hide-main-menu'): void
122
120
  }>()
123
121
 
124
- const router = useRoute()
125
-
126
- const isActiveNode = (path: string): boolean => router.fullPath.includes(path)
127
-
128
122
  const mainMenuHovered = defineModel<boolean>('mainMenuHovered', {
129
123
  required: true,
130
124
  })
@@ -236,16 +230,8 @@ const localization = computed<UI_I_Localization>(() => useLocal())
236
230
  padding: 0 12px 12px;
237
231
  height: inherit;
238
232
 
239
- &::-webkit-scrollbar-track,
240
- &::-webkit-scrollbar-corner {
241
- background: var(--nav-content-scrollbar-track-corner-thumb);
242
- }
243
233
  &::-webkit-scrollbar-thumb {
244
- border: solid 3px var(--nav-content-scrollbar-track-corner-thumb);
245
- }
246
-
247
- .node-tooltip-container {
248
- margin-bottom: 4px;
234
+ background: var(--nav-content-scrollbar-thumb-bg);
249
235
  }
250
236
 
251
237
  .content-toggle-tooltip {
@@ -273,7 +259,6 @@ const localization = computed<UI_I_Localization>(() => useLocal())
273
259
 
274
260
  &:not(.active):hover {
275
261
  background-color: var(--vertical-nav-hover-bg-color);
276
- color: var(--vertical-nav-hover-item-color);
277
262
  }
278
263
 
279
264
  .nav-text {
@@ -286,10 +271,6 @@ const localization = computed<UI_I_Localization>(() => useLocal())
286
271
  margin-top: 4px;
287
272
  }
288
273
  }
289
- .node-tooltip-text {
290
- font-size: 14px;
291
- font-weight: 500;
292
- }
293
274
 
294
275
  .nav-divider {
295
276
  width: 100%;
@@ -306,23 +287,21 @@ const localization = computed<UI_I_Localization>(() => useLocal())
306
287
  :root.is-new-view {
307
288
  --vertical-nav-bg-color: rgba(233, 235, 237, 0.92);
308
289
  --vertical-nav-item-color: #4d5d69;
309
- --vertical-nav-hover-item-color: #182531;
310
290
  --vertical-nav-hover-bg-color: rgba(211, 214, 218, 0.48);
311
291
  --vertical-active-nav-bg-color: #213444;
312
292
  --vertical-active-nav-color: #ffffff;
313
293
  --pin-unpin-label-hover-color: #008fd6;
314
- --nav-content-scrollbar-track-corner-thumb: #ebedee;
294
+ --nav-content-scrollbar-thumb-bg: #9da6ad;
315
295
  --nav-content-divider-bg: #d3d6da;
316
296
  }
317
297
  :root.is-new-view.dark-theme {
318
298
  --vertical-nav-bg-color: rgba(51, 68, 83, 0.92);
319
299
  --vertical-nav-item-color: #e9eaec;
320
- --vertical-nav-hover-item-color: #ffffff;
321
300
  --vertical-nav-hover-bg-color: rgba(233, 234, 236, 0.12);
322
301
  --vertical-active-nav-bg-color: rgba(233, 235, 237, 0.96);
323
302
  --vertical-active-nav-color: #213444;
324
303
  --pin-unpin-label-hover-color: #2ba2de;
325
- --nav-content-scrollbar-track-corner-thumb: #435360;
304
+ --nav-content-scrollbar-thumb-bg: rgba(157, 166, 173, 0.32);
326
305
  --nav-content-divider-bg: rgba(211, 214, 218, 0.12);
327
306
  }
328
307
  </style>
@@ -31,12 +31,9 @@
31
31
  />
32
32
  <div
33
33
  ref="historyTestimonyGraph"
34
- :class="[
35
- `history-testimony-graph ${selectedView}`,
36
- { medium: isMediumSizeGraphsContainer },
37
- ]"
34
+ :class="`history-testimony-graph ${selectedView}`"
38
35
  >
39
- <div class="graph-container">
36
+ <div>
40
37
  <common-graph
41
38
  v-if="powerDataLocal && !props.powerLoading"
42
39
  :data="powerDataLocal"
@@ -52,7 +49,7 @@
52
49
  </div>
53
50
  <div v-else class="history-testimony-graph__empty-content"></div>
54
51
  </div>
55
- <div class="graph-container">
52
+ <div>
56
53
  <common-graph
57
54
  v-if="temperatureDataLocal && !props.temperatureLoading"
58
55
  :data="temperatureDataLocal"
@@ -72,7 +69,6 @@
72
69
  </template>
73
70
 
74
71
  <script setup lang="ts">
75
- import { useElementSize } from '@vueuse/core'
76
72
  import { format } from 'date-fns'
77
73
  import type {
78
74
  I_SeriesLine,
@@ -102,10 +98,6 @@ const selectedView = defineModel<string>('selectedView')
102
98
 
103
99
  const { $store }: any = useNuxtApp()
104
100
 
105
- const historyTestimonyGraph = ref<any>(null)
106
- const { width } = useElementSize(historyTestimonyGraph)
107
- const isMediumSizeGraphsContainer = computed<boolean>(() => width.value < 1021)
108
-
109
101
  // const historyTestimonyGraph = ref(null)
110
102
  // const contentWidth = ref<number>(
111
103
  // useElementSize(historyTestimonyGraph)?.width || 0
@@ -406,36 +398,26 @@ const onDeleteOption = (): void => {}
406
398
 
407
399
  <style scoped lang="scss">
408
400
  .history-testimony-graph {
409
- display: flex;
401
+ display: grid;
410
402
  align-items: center;
411
403
  grid-gap: 20px;
404
+ grid-template-columns: 1fr 1fr;
412
405
 
413
- &.medium {
414
- flex-direction: column;
415
-
416
- .graph-container {
417
- width: 100%;
418
- }
419
- }
420
- .graph-container {
421
- width: calc(50% - 10px);
422
- }
406
+ //&.medium {
407
+ // grid-template-columns: 1fr;
408
+ //}
423
409
  &.power {
424
- & > div:nth-child(1) {
425
- width: 100%;
426
- }
410
+ grid-template-columns: 1fr 0;
411
+
427
412
  & > div:nth-child(2) {
428
- display: none;
429
- width: 0;
413
+ visibility: hidden;
430
414
  }
431
415
  }
432
416
  &.temperature {
417
+ grid-template-columns: 0 1fr;
418
+
433
419
  & > div:nth-child(1) {
434
- display: none;
435
- width: 0;
436
- }
437
- & > div:nth-child(2) {
438
- width: 100%;
420
+ visibility: hidden;
439
421
  }
440
422
  }
441
423