bfg-common 1.4.146 → 1.4.147

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 (36) 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/components/atoms/modal/bySteps/BySteps.vue +253 -253
  14. package/components/atoms/stack/StackBlock.vue +185 -185
  15. package/components/common/browse/blocks/Title.vue +91 -91
  16. package/components/common/browse/blocks/info/Date.vue +21 -21
  17. package/components/common/context/lib/models/interfaces.ts +30 -30
  18. package/components/common/context/recursion/Recursion.vue +86 -86
  19. package/components/common/context/recursion/RecursionNew.vue +199 -199
  20. package/components/common/context/recursion/RecursionOld.vue +213 -213
  21. package/components/common/layout/theHeader/helpMenu/helpMenuNew/HelpMenuNew.vue +14 -0
  22. package/components/common/layout/theHeader/userMenu/userMenuNew/UserMenuNew.vue +14 -0
  23. package/components/common/mainNavigationPanel/MainNavigationPanelNew.vue +15 -7
  24. package/components/common/split/horizontal/HorizontalNew.vue +1 -0
  25. package/components/common/vm/actions/add/Add.vue +609 -609
  26. package/components/common/vm/actions/clone/Clone.vue +522 -522
  27. package/components/common/vm/actions/common/customizeHardware/virtualHardware/bus/lib/config/options.ts +20 -20
  28. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/Cpu.vue +403 -403
  29. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/Hv.vue +99 -99
  30. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/streamingMode/StreamingMode.vue +85 -85
  31. package/components/common/vm/actions/editSettings/EditSettings.vue +327 -327
  32. package/composables/productNameLocal.ts +30 -30
  33. package/package.json +1 -1
  34. package/plugins/recursion.ts +311 -311
  35. package/public/spice-console/lib/images/bitmap.js +203 -203
  36. 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>
@@ -112,6 +112,20 @@ 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
+ })
115
129
  </script>
116
130
 
117
131
  <style scoped lang="scss">
@@ -96,6 +96,20 @@ 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
+ })
99
113
  </script>
100
114
 
101
115
  <style lang="scss">
@@ -165,10 +165,10 @@ const localization = computed<UI_I_Localization>(() => useLocal())
165
165
  border-radius: 4px;
166
166
 
167
167
  &:hover {
168
- background-color: var(--vertical-nav-hover-bg-color);
168
+ //background-color: var(--vertical-nav-hover-bg-color);
169
169
 
170
170
  .pin-unpin-label {
171
- color: #008fd6;
171
+ color: var(--pin-unpin-label-hover-color);
172
172
  }
173
173
  }
174
174
 
@@ -198,8 +198,8 @@ const localization = computed<UI_I_Localization>(() => useLocal())
198
198
  color: var(--vertical-nav-item-color);
199
199
 
200
200
  &:hover {
201
- background-color: var(--vertical-nav-hover-bg-color);
202
- color: #008fd6;
201
+ //background-color: var(--vertical-nav-hover-bg-color);
202
+ color: var(--pin-unpin-label-hover-color);
203
203
  }
204
204
  }
205
205
  }
@@ -208,6 +208,10 @@ const localization = computed<UI_I_Localization>(() => useLocal())
208
208
  overflow: auto;
209
209
  padding: 0 12px 12px;
210
210
 
211
+ &::-webkit-scrollbar-thumb {
212
+ background: var(--nav-content-scrollbar-thumb-bg);
213
+ }
214
+
211
215
  .nav-link {
212
216
  display: flex;
213
217
  align-items: center;
@@ -245,7 +249,7 @@ const localization = computed<UI_I_Localization>(() => useLocal())
245
249
  .nav-divider {
246
250
  width: 100%;
247
251
  height: 1px;
248
- background-color: #d3d6da;
252
+ background-color: rgba(211, 214, 218, 0.12);
249
253
  margin: 12px 0;
250
254
  }
251
255
  }
@@ -260,12 +264,16 @@ const localization = computed<UI_I_Localization>(() => useLocal())
260
264
  --vertical-nav-hover-bg-color: rgba(211, 214, 218, 0.48);
261
265
  --vertical-active-nav-bg-color: #213444;
262
266
  --vertical-active-nav-color: #ffffff;
267
+ --pin-unpin-label-hover-color: #008fd6;
268
+ --nav-content-scrollbar-thumb-bg: #9da6ad;
263
269
  }
264
270
  :root.is-new-view.dark-theme {
265
271
  --vertical-nav-bg-color: rgba(51, 68, 83, 0.92);
266
- --vertical-nav-item-color: #ffffff;
267
- --vertical-nav-hover-bg-color: #485865;
272
+ --vertical-nav-item-color: #e9eaec;
273
+ --vertical-nav-hover-bg-color: rgba(233, 234, 236, 0.12);
268
274
  --vertical-active-nav-bg-color: rgba(233, 235, 237, 0.96);
269
275
  --vertical-active-nav-color: #213444;
276
+ --pin-unpin-label-hover-color: #2ba2de;
277
+ --nav-content-scrollbar-thumb-bg: rgba(157, 166, 173, 0.32);
270
278
  }
271
279
  </style>
@@ -199,6 +199,7 @@ onUnmounted(() => {
199
199
  }
200
200
  .firstPanel {
201
201
  width: calc(50% - 1.5px);
202
+ background-color: var(--center-pane-container);
202
203
 
203
204
  .left-panel {
204
205
  @include flex($dir: column);