bfg-common 1.4.587 → 1.4.589

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 (108) hide show
  1. package/assets/img/icons/icons-sprite-dark-1.svg +437 -407
  2. package/assets/img/icons/icons-sprite-dark-2.svg +347 -343
  3. package/assets/img/icons/icons-sprite-dark-4.svg +259 -255
  4. package/assets/img/icons/icons-sprite-dark-6.svg +94 -94
  5. package/assets/img/icons/icons-sprite-light-1.svg +437 -407
  6. package/assets/img/icons/icons-sprite-light-2.svg +347 -343
  7. package/assets/img/icons/icons-sprite-light-4.svg +259 -255
  8. package/assets/img/icons/icons-sprite-light-6.svg +94 -94
  9. package/assets/localization/local_be.json +2 -1
  10. package/assets/localization/local_en.json +2 -1
  11. package/assets/localization/local_hy.json +2 -1
  12. package/assets/localization/local_kk.json +2 -1
  13. package/assets/localization/local_ru.json +2 -1
  14. package/assets/localization/local_zh.json +2 -1
  15. package/assets/scss/common/icons/icons-6.scss +1 -1
  16. package/components/atoms/TheIcon3.vue +50 -50
  17. package/components/atoms/modal/bySteps/BySteps.vue +253 -253
  18. package/components/atoms/stack/StackBlock.vue +185 -185
  19. package/components/atoms/table/dataGrid/DataGrid.vue +1633 -1633
  20. package/components/atoms/table/dataGrid/DataGridColumnSwitch.vue +222 -222
  21. package/components/common/browse/BrowseNew.vue +237 -237
  22. package/components/common/browse/BrowseOld.vue +217 -217
  23. package/components/common/browse/blocks/contents/Files.vue +35 -35
  24. package/components/common/browse/blocks/contents/FilesOld.vue +70 -70
  25. package/components/common/browse/blocks/contents/filesNew/FilesNew.vue +92 -92
  26. package/components/common/browse/blocks/contents/filesNew/Skeleton.vue +18 -18
  27. package/components/common/context/lib/models/interfaces.ts +30 -30
  28. package/components/common/context/recursion/Recursion.vue +86 -86
  29. package/components/common/context/recursion/RecursionNew.vue +199 -199
  30. package/components/common/context/recursion/RecursionOld.vue +213 -213
  31. package/components/common/layout/theHeader/helpMenu/About.vue +85 -85
  32. package/components/common/layout/theHeader/helpMenu/aboutNew/AboutNew.vue +103 -103
  33. package/components/common/mainNavigationPanel/MainNavigationPanel.vue +152 -152
  34. package/components/common/pages/home/headline/HeadlineNew.vue +24 -1
  35. package/components/common/pages/home/resource/ResourceNew.vue +5 -0
  36. package/components/common/pages/home/widgets/WidgetsNew.vue +5 -0
  37. package/components/common/pages/shortcuts/block/BlockNew.vue +10 -1
  38. package/components/common/spiceConsole/Drawer.vue +370 -370
  39. package/components/common/spiceConsole/lib/models/interfaces.ts +5 -5
  40. package/components/common/split/vertical/Vertical.vue +160 -160
  41. package/components/common/vm/actions/add/Add.vue +617 -617
  42. package/components/common/vm/actions/clone/lib/config/steps.ts +129 -129
  43. package/components/common/vm/actions/common/customizeHardware/CustomizeHardware.vue +267 -267
  44. package/components/common/vm/actions/common/customizeHardware/CustomizeHardwareNew.vue +264 -264
  45. package/components/common/vm/actions/common/customizeHardware/virtualHardware/browseView/BrowseView.vue +219 -219
  46. package/components/common/vm/actions/common/customizeHardware/virtualHardware/bus/BusNew.vue +118 -118
  47. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/CdDvdDriveNew.vue +161 -161
  48. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/CdDvdDriveOld.vue +165 -165
  49. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/media/Media.vue +25 -25
  50. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/media/MediaNew.vue +55 -55
  51. package/components/common/vm/actions/common/customizeHardware/virtualHardware/lib/config/dropdownItems.ts +147 -147
  52. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/mode/ModeOld.vue +55 -55
  53. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/sharing/SharingNew.vue +44 -44
  54. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/NewNetworkNew.vue +124 -124
  55. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/location/LocationOld.vue +134 -134
  56. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/location/new/New.vue +63 -63
  57. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/location/new/table/Table.vue +74 -74
  58. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/location/new/table/lib/config/config.ts +95 -95
  59. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/macAddress/MacAddress.vue +119 -119
  60. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/macAddress/MacAddressNew.vue +69 -69
  61. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/macAddress/MacAddressOld.vue +83 -83
  62. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/NewPciDeviceNew.vue +85 -85
  63. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/NewPciDeviceOld.vue +91 -91
  64. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/directPathIo/DirectPathIoNew.vue +35 -35
  65. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/dynamicDirectPathIo/DynamicDirectPathIoNew.vue +48 -48
  66. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/note/Note.vue +15 -15
  67. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/note/NoteNew.vue +42 -42
  68. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/note/NoteOld.vue +30 -30
  69. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/nvidiaGrid/NvidiaGridNew.vue +30 -30
  70. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/typeSelection/TypeSelectionNew.vue +46 -46
  71. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newUsbController/NewUsbControllerNew.vue +56 -56
  72. package/components/common/vm/actions/common/customizeHardware/virtualHardware/other/Other.vue +16 -16
  73. package/components/common/vm/actions/common/customizeHardware/virtualHardware/other/OtherNew.vue +27 -27
  74. package/components/common/vm/actions/common/customizeHardware/virtualHardware/videoCard/totalVideoMemory/TotalVideoMemoryNew.vue +54 -54
  75. package/components/common/vm/actions/common/customizeHardware/vmoptions/Vmoptions.vue +145 -145
  76. package/components/common/vm/actions/common/customizeHardware/vmoptions/VmoptionsNew.vue +102 -102
  77. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/BootOptionsNew.vue +75 -75
  78. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/delay/Delay.vue +26 -26
  79. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/firmware/Firmware.vue +57 -57
  80. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/firmware/FirmwareNew.vue +42 -42
  81. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/menu/MenuNew.vue +25 -25
  82. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/order/Order.vue +171 -171
  83. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/order/OrderNew.vue +50 -50
  84. package/components/common/vm/actions/common/customizeHardware/vmoptions/generalOptions/GeneralOptionsNew.vue +141 -141
  85. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/New.vue +140 -140
  86. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/copyPaste/CopyPasteNew.vue +30 -30
  87. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/fileTransfer/FileTransferNew.vue +30 -30
  88. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/folderSharing/FolderSharingNew.vue +30 -30
  89. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/keymap/Keymap.vue +32 -32
  90. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/keymap/KeymapNew.vue +39 -39
  91. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/password/PasswordNew.vue +100 -100
  92. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/usbRedirection/UsbRedirectionNew.vue +38 -38
  93. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/usbRedirection/UsbRedirectionOld.vue +44 -44
  94. package/components/common/vm/actions/common/select/storage/Storage.vue +130 -130
  95. package/components/common/vm/actions/common/select/storage/StorageOld.vue +129 -129
  96. package/components/common/vm/actions/common/select/storage/new/New.vue +159 -159
  97. package/components/common/vm/actions/editSettings/EditSettings.vue +214 -214
  98. package/components/common/vm/actions/editSettings/EditSettingsOld.vue +182 -182
  99. package/components/common/vm/actions/editSettings/new/New.vue +176 -176
  100. package/components/common/vm/actions/editSettings/new/Skeleton.vue +88 -88
  101. package/composables/productNameLocal.ts +30 -30
  102. package/package.json +2 -2
  103. package/plugins/date.ts +233 -233
  104. package/plugins/recursion.ts +311 -311
  105. package/public/spice-console/lib/images/bitmap.js +203 -203
  106. package/public/spice-console/network/spicechannel.js +383 -383
  107. package/store/main/mutations.ts +7 -7
  108. package/store/main/state.ts +7 -7
@@ -1,103 +1,103 @@
1
- <template>
2
- <ui-modal
3
- test-id="about-modal"
4
- width="720px"
5
- :title="props.title"
6
- :subtitle="props.subtitle"
7
- class="about-modal"
8
- @hide="onHideModal"
9
- >
10
- <template #content>
11
- <ui-modal-block-standard>
12
- <div class="about-modal__text">
13
- <p>{{ aboutHeadingText }}</p>
14
-
15
- <p>{{ localization.layout.aboutSubtitle }}</p>
16
- </div>
17
-
18
- <div class="about-modal__description">
19
- {{ props.aboutDescOne }}
20
-
21
- (<a
22
- id="about-description-link"
23
- data-id="about-description-link"
24
- :href="url"
25
- target="_blank"
26
- class="about-modal__description-link"
27
- >
28
- {{ props.url }} </a
29
- >)
30
-
31
- {{ props.aboutDescSecond }}
32
- </div>
33
- </ui-modal-block-standard>
34
- </template>
35
- <template #footerContent><span /></template>
36
- <template #footerLeftContent><span /></template>
37
- </ui-modal>
38
- </template>
39
-
40
- <script lang="ts" setup>
41
- import type { UI_I_Localization } from '~/lib/models/interfaces'
42
-
43
- const props = defineProps<{
44
- title: string
45
- subtitle: string
46
- aboutHeadingText: string
47
- aboutDescOne: string
48
- aboutDescSecond: string
49
- isBetaVersion: boolean
50
- isDev: boolean
51
- projectName: string
52
- url: string
53
- }>()
54
- const emits = defineEmits<{
55
- (event: 'hide'): void
56
- }>()
57
-
58
- const localization = computed<UI_I_Localization>(() => useLocal())
59
-
60
- const onHideModal = (): void => {
61
- emits('hide')
62
- }
63
- </script>
64
-
65
- <style>
66
- :root {
67
- --about-text-color: #4d5d69;
68
- }
69
- :root.dark-theme {
70
- --about-text-color: #9da6ad;
71
- }
72
- </style>
73
-
74
- <style lang="scss" scoped>
75
- .about-modal {
76
- &__text {
77
- color: var(--about-text-color);
78
- font-size: 13px;
79
- font-weight: 400;
80
- line-height: 15.73px;
81
-
82
- p:last-child {
83
- margin: 16px 0;
84
- }
85
- }
86
- &__description {
87
- color: var(--about-text-color);
88
- font-size: 13px;
89
- font-weight: 400;
90
- line-height: 15.73px;
91
-
92
- &-link {
93
- color: #0786d2;
94
- &:hover {
95
- color: #0081c1;
96
- }
97
- }
98
- }
99
- }
100
- :deep(.title-wrapper__subtitle) {
101
- max-width: 400px;
102
- }
103
- </style>
1
+ <template>
2
+ <ui-modal
3
+ test-id="about-modal"
4
+ width="720px"
5
+ :title="props.title"
6
+ :subtitle="props.subtitle"
7
+ class="about-modal"
8
+ @hide="onHideModal"
9
+ >
10
+ <template #content>
11
+ <ui-modal-block-standard>
12
+ <div class="about-modal__text">
13
+ <p>{{ aboutHeadingText }}</p>
14
+
15
+ <p>{{ localization.layout.aboutSubtitle }}</p>
16
+ </div>
17
+
18
+ <div class="about-modal__description">
19
+ {{ props.aboutDescOne }}
20
+
21
+ (<a
22
+ id="about-description-link"
23
+ data-id="about-description-link"
24
+ :href="url"
25
+ target="_blank"
26
+ class="about-modal__description-link"
27
+ >
28
+ {{ props.url }} </a
29
+ >)
30
+
31
+ {{ props.aboutDescSecond }}
32
+ </div>
33
+ </ui-modal-block-standard>
34
+ </template>
35
+ <template #footerContent><span /></template>
36
+ <template #footerLeftContent><span /></template>
37
+ </ui-modal>
38
+ </template>
39
+
40
+ <script lang="ts" setup>
41
+ import type { UI_I_Localization } from '~/lib/models/interfaces'
42
+
43
+ const props = defineProps<{
44
+ title: string
45
+ subtitle: string
46
+ aboutHeadingText: string
47
+ aboutDescOne: string
48
+ aboutDescSecond: string
49
+ isBetaVersion: boolean
50
+ isDev: boolean
51
+ projectName: string
52
+ url: string
53
+ }>()
54
+ const emits = defineEmits<{
55
+ (event: 'hide'): void
56
+ }>()
57
+
58
+ const localization = computed<UI_I_Localization>(() => useLocal())
59
+
60
+ const onHideModal = (): void => {
61
+ emits('hide')
62
+ }
63
+ </script>
64
+
65
+ <style>
66
+ :root {
67
+ --about-text-color: #4d5d69;
68
+ }
69
+ :root.dark-theme {
70
+ --about-text-color: #9da6ad;
71
+ }
72
+ </style>
73
+
74
+ <style lang="scss" scoped>
75
+ .about-modal {
76
+ &__text {
77
+ color: var(--about-text-color);
78
+ font-size: 13px;
79
+ font-weight: 400;
80
+ line-height: 15.73px;
81
+
82
+ p:last-child {
83
+ margin: 16px 0;
84
+ }
85
+ }
86
+ &__description {
87
+ color: var(--about-text-color);
88
+ font-size: 13px;
89
+ font-weight: 400;
90
+ line-height: 15.73px;
91
+
92
+ &-link {
93
+ color: #0786d2;
94
+ &:hover {
95
+ color: #0081c1;
96
+ }
97
+ }
98
+ }
99
+ }
100
+ :deep(.title-wrapper__subtitle) {
101
+ max-width: 400px;
102
+ }
103
+ </style>
@@ -1,152 +1,152 @@
1
- <template>
2
- <common-main-navigation-panel-new
3
- v-if="props.isNewView"
4
- v-model:main-menu-hovered="mainMenuHovered"
5
- v-model:menu-pined="menuPined"
6
- :main-menu-status="props.mainMenuStatus"
7
- :navigation-items="props.navigationItems"
8
- :parent-status="props.parentStatus"
9
- :disabled-pin="props.disabledPin"
10
- :menu-collapsed="menuCollapsed"
11
- :show-menu="showMenu"
12
- @toggle="emits('toggle', $event)"
13
- @collapse-menu="collapseMenu"
14
- @change-menu-pin="changeMenuPin"
15
- @hide-main-menu="hideMainMenu"
16
- />
17
- <common-main-navigation-panel-old
18
- v-else
19
- v-model:main-menu-hovered="mainMenuHovered"
20
- v-model:menu-pined="menuPined"
21
- :main-menu-status="props.mainMenuStatus"
22
- :navigation-items="props.navigationItems"
23
- :parent-status="props.parentStatus"
24
- :disabled-pin="props.disabledPin"
25
- :menu-collapsed="menuCollapsed"
26
- :show-menu="showMenu"
27
- @toggle="emits('toggle', $event)"
28
- @collapse-menu="collapseMenu"
29
- @change-menu-pin="changeMenuPin"
30
- @hide-main-menu="hideMainMenu"
31
- />
32
- </template>
33
-
34
- <script setup lang="ts">
35
- import type { UI_I_NavigationItem } from '~/components/common/mainNavigationPanel/lib/models/interfaces'
36
- import type { UI_T_ParentStatus } from '~/components/common/mainNavigationPanel/lib/models/types'
37
-
38
- const props = withDefaults(
39
- defineProps<{
40
- mainMenuStatus: boolean
41
- navigationItems: UI_I_NavigationItem[][]
42
- parentStatus: UI_T_ParentStatus
43
- disabledPin: boolean
44
- isNewView?: boolean
45
- }>(),
46
- {
47
- isNewView: false,
48
- }
49
- )
50
-
51
- const emits = defineEmits<{
52
- (event: 'toggle', value: boolean): void
53
- }>()
54
-
55
- const { $store }: any = useNuxtApp()
56
-
57
- const route = useRoute()
58
-
59
- const showMenu = computed<boolean>(
60
- () => props.mainMenuStatus || menuPined.value
61
- )
62
-
63
- const menuPined = ref<boolean>(false)
64
- const changeMenuPin = (): void => {
65
- useLocalStorage('menuPined', menuPined.value)
66
- }
67
- const setMenuPined = (): void => {
68
- menuPined.value = props.disabledPin ? false : useLocalStorage('menuPined')
69
- }
70
- watch(
71
- () => props.disabledPin,
72
- () => {
73
- setMenuPined()
74
- },
75
- { immediate: true }
76
- )
77
-
78
- const menuCollapsed = ref<boolean>(false)
79
- const collapseMenu = (): void => {
80
- menuCollapsed.value = !menuCollapsed.value
81
- useLocalStorage('menuCollapsed', menuCollapsed.value)
82
- }
83
-
84
- const mainMenuHovered = ref<boolean>(false)
85
-
86
- const clickWindow = (event: Event): void => {
87
- const target = event.target as any
88
- if (
89
- menuPined.value ||
90
- mainMenuHovered.value ||
91
- target.className.baseVal?.includes('menu-icon') ||
92
- target.className.baseVal?.includes('clr-i-outline')
93
- ) {
94
- return
95
- }
96
-
97
- emits('toggle', false)
98
- }
99
-
100
- const mountedReady = ref<boolean>(false)
101
- onMounted(() => {
102
- mountedReady.value = true
103
- window.addEventListener('click', clickWindow)
104
- })
105
-
106
- onUnmounted(() => {
107
- window.removeEventListener('click', clickWindow)
108
- })
109
-
110
- watch(
111
- [mountedReady, (): any => route.fullPath, (): any => props.parentStatus],
112
- ([newValue1, newValue2, newValue3]: [
113
- boolean,
114
- any,
115
- UI_T_ParentStatus
116
- ]): void => {
117
- if (newValue3 === 1) return
118
-
119
- const name = location.pathname.split('/')[1]
120
-
121
- if (!newValue1 || name === 'auth') return
122
-
123
- setSidebarOptions()
124
- useLocalStorage('navigationHistoryRoute', newValue2)
125
- },
126
- { immediate: true, deep: true }
127
- )
128
-
129
- const setSidebarOptions = (): void => {
130
- setMenuPined()
131
- menuCollapsed.value = useLocalStorage('menuCollapsed')
132
-
133
- if (menuPined.value) {
134
- emits('toggle', true)
135
- }
136
- }
137
-
138
- const hideMainMenu = (): void => {
139
- if (menuPined.value) return
140
- emits('toggle', false)
141
- }
142
-
143
- watch(
144
- menuPined,
145
- (newValue) => {
146
- $store.dispatch('main/A_MENU_PINED', newValue)
147
- },
148
- { immediate: true }
149
- )
150
- </script>
151
-
152
- <style scoped lang="scss"></style>
1
+ <template>
2
+ <common-main-navigation-panel-new
3
+ v-if="props.isNewView"
4
+ v-model:main-menu-hovered="mainMenuHovered"
5
+ v-model:menu-pined="menuPined"
6
+ :main-menu-status="props.mainMenuStatus"
7
+ :navigation-items="props.navigationItems"
8
+ :parent-status="props.parentStatus"
9
+ :disabled-pin="props.disabledPin"
10
+ :menu-collapsed="menuCollapsed"
11
+ :show-menu="showMenu"
12
+ @toggle="emits('toggle', $event)"
13
+ @collapse-menu="collapseMenu"
14
+ @change-menu-pin="changeMenuPin"
15
+ @hide-main-menu="hideMainMenu"
16
+ />
17
+ <common-main-navigation-panel-old
18
+ v-else
19
+ v-model:main-menu-hovered="mainMenuHovered"
20
+ v-model:menu-pined="menuPined"
21
+ :main-menu-status="props.mainMenuStatus"
22
+ :navigation-items="props.navigationItems"
23
+ :parent-status="props.parentStatus"
24
+ :disabled-pin="props.disabledPin"
25
+ :menu-collapsed="menuCollapsed"
26
+ :show-menu="showMenu"
27
+ @toggle="emits('toggle', $event)"
28
+ @collapse-menu="collapseMenu"
29
+ @change-menu-pin="changeMenuPin"
30
+ @hide-main-menu="hideMainMenu"
31
+ />
32
+ </template>
33
+
34
+ <script setup lang="ts">
35
+ import type { UI_I_NavigationItem } from '~/components/common/mainNavigationPanel/lib/models/interfaces'
36
+ import type { UI_T_ParentStatus } from '~/components/common/mainNavigationPanel/lib/models/types'
37
+
38
+ const props = withDefaults(
39
+ defineProps<{
40
+ mainMenuStatus: boolean
41
+ navigationItems: UI_I_NavigationItem[][]
42
+ parentStatus: UI_T_ParentStatus
43
+ disabledPin: boolean
44
+ isNewView?: boolean
45
+ }>(),
46
+ {
47
+ isNewView: false,
48
+ }
49
+ )
50
+
51
+ const emits = defineEmits<{
52
+ (event: 'toggle', value: boolean): void
53
+ }>()
54
+
55
+ const { $store }: any = useNuxtApp()
56
+
57
+ const route = useRoute()
58
+
59
+ const showMenu = computed<boolean>(
60
+ () => props.mainMenuStatus || menuPined.value
61
+ )
62
+
63
+ const menuPined = ref<boolean>(false)
64
+ const changeMenuPin = (): void => {
65
+ useLocalStorage('menuPined', menuPined.value)
66
+ }
67
+ const setMenuPined = (): void => {
68
+ menuPined.value = props.disabledPin ? false : useLocalStorage('menuPined')
69
+ }
70
+ watch(
71
+ () => props.disabledPin,
72
+ () => {
73
+ setMenuPined()
74
+ },
75
+ { immediate: true }
76
+ )
77
+
78
+ const menuCollapsed = ref<boolean>(false)
79
+ const collapseMenu = (): void => {
80
+ menuCollapsed.value = !menuCollapsed.value
81
+ useLocalStorage('menuCollapsed', menuCollapsed.value)
82
+ }
83
+
84
+ const mainMenuHovered = ref<boolean>(false)
85
+
86
+ const clickWindow = (event: Event): void => {
87
+ const target = event.target as any
88
+ if (
89
+ menuPined.value ||
90
+ mainMenuHovered.value ||
91
+ target.className.baseVal?.includes('menu-icon') ||
92
+ target.className.baseVal?.includes('clr-i-outline')
93
+ ) {
94
+ return
95
+ }
96
+
97
+ emits('toggle', false)
98
+ }
99
+
100
+ const mountedReady = ref<boolean>(false)
101
+ onMounted(() => {
102
+ mountedReady.value = true
103
+ window.addEventListener('click', clickWindow)
104
+ })
105
+
106
+ onUnmounted(() => {
107
+ window.removeEventListener('click', clickWindow)
108
+ })
109
+
110
+ watch(
111
+ [mountedReady, (): any => route.fullPath, (): any => props.parentStatus],
112
+ ([newValue1, newValue2, newValue3]: [
113
+ boolean,
114
+ any,
115
+ UI_T_ParentStatus
116
+ ]): void => {
117
+ if (newValue3 === 1) return
118
+
119
+ const name = location.pathname.split('/')[1]
120
+
121
+ if (!newValue1 || name === 'auth') return
122
+
123
+ setSidebarOptions()
124
+ useLocalStorage('navigationHistoryRoute', newValue2)
125
+ },
126
+ { immediate: true, deep: true }
127
+ )
128
+
129
+ const setSidebarOptions = (): void => {
130
+ setMenuPined()
131
+ menuCollapsed.value = useLocalStorage('menuCollapsed')
132
+
133
+ if (menuPined.value) {
134
+ emits('toggle', true)
135
+ }
136
+ }
137
+
138
+ const hideMainMenu = (): void => {
139
+ if (menuPined.value) return
140
+ emits('toggle', false)
141
+ }
142
+
143
+ watch(
144
+ menuPined,
145
+ (newValue) => {
146
+ $store.dispatch('main/A_MENU_PINED', newValue)
147
+ },
148
+ { immediate: true }
149
+ )
150
+ </script>
151
+
152
+ <style scoped lang="scss"></style>
@@ -6,11 +6,19 @@
6
6
  v-if="isProjectSphere"
7
7
  v-model="selectedZoneModel"
8
8
  :items="selectItems"
9
+ :disabled="!selectItems.length"
9
10
  width="165px"
10
11
  select-width="100%"
11
12
  size="sm"
12
13
  test-id="home-zone-select"
13
- />
14
+ >
15
+ <template v-if="!selectItems.length" #toggleContent>
16
+ <div class="default-toggle-content">
17
+ <span class="default-icon vsphere-icon-vcenter"></span>
18
+ <span class="text">{{ localization.common.default }}</span>
19
+ </div>
20
+ </template>
21
+ </ui-select>
14
22
  </div>
15
23
  </template>
16
24
 
@@ -44,5 +52,20 @@ const selectItems = computed<UI_I_Dropdown[]>(() => {
44
52
  line-height: 26.63px;
45
53
  margin-bottom: 19px;
46
54
  }
55
+
56
+ .default-toggle-content {
57
+ display: flex;
58
+ align-items: center;
59
+ grid-gap: 8px;
60
+
61
+ .default-icon {
62
+ width: 20px;
63
+ height: 20px;
64
+ }
65
+ .text {
66
+ font-size: 13px;
67
+ font-weight: 400;
68
+ }
69
+ }
47
70
  }
48
71
  </style>
@@ -53,6 +53,11 @@ const resourceMeter = computed<UI_I_ResourceBlock[]>(() =>
53
53
  display: grid;
54
54
  grid-template-columns: repeat(3, 1fr);
55
55
  grid-column-gap: 12px;
56
+
57
+ @media (max-width: 1440px) {
58
+ grid-template-columns: 1fr;
59
+ grid-row-gap: 12px;
60
+ }
56
61
  }
57
62
  }
58
63
  </style>
@@ -70,5 +70,10 @@ const localization = computed<UI_I_Localization>(() => useLocal())
70
70
  display: grid;
71
71
  grid-template-columns: repeat(2, 1fr);
72
72
  grid-column-gap: 12px;
73
+
74
+ @media (max-width: 1024px) {
75
+ grid-template-columns: 1fr;
76
+ grid-row-gap: 12px;
77
+ }
73
78
  }
74
79
  </style>
@@ -30,6 +30,15 @@ const emits = defineEmits<{
30
30
 
31
31
  const navigate = computed<string>(() => '/' + props.item.navigateTo)
32
32
  </script>
33
+
34
+ <style>
35
+ :root {
36
+ --shortcut-item-hover-bg: #e9ebed33;
37
+ }
38
+ :root.dark-theme {
39
+ --shortcut-item-hover-bg: #e9ebed08;
40
+ }
41
+ </style>
33
42
  <style lang="scss" scoped>
34
43
  @import 'assets/scss/common/mixins';
35
44
  .category-block-item {
@@ -55,7 +64,7 @@ const navigate = computed<string>(() => '/' + props.item.navigateTo)
55
64
  }
56
65
 
57
66
  &:hover {
58
- background: #e9ebed33;
67
+ background: var(--shortcut-item-hover-bg);
59
68
  cursor: pointer;
60
69
  .unit {
61
70
  &-icon {