bfg-common 1.5.707 → 1.5.708

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 (192) hide show
  1. package/CODE_STYLE.md +109 -109
  2. package/assets/img/icons/icons-sprite-dark-1.svg +3 -2
  3. package/assets/img/icons/icons-sprite-dark-3.svg +227 -227
  4. package/assets/img/icons/icons-sprite-dark-5.svg +488 -488
  5. package/assets/img/icons/icons-sprite-light-1.svg +4 -3
  6. package/assets/img/icons/icons-sprite-light-3.svg +227 -227
  7. package/assets/img/icons/icons-sprite-light-5.svg +488 -488
  8. package/assets/localization/local_be.json +3 -46
  9. package/assets/localization/local_en.json +3 -46
  10. package/assets/localization/local_hy.json +3 -46
  11. package/assets/localization/local_kk.json +3 -46
  12. package/assets/localization/local_ru.json +5 -48
  13. package/assets/localization/local_zh.json +3 -46
  14. package/assets/scss/common/icons/icons-1.scss +1 -1
  15. package/assets/scss/common/icons/icons-2.scss +0 -18
  16. package/assets/scss/common/theme.scss +0 -2
  17. package/assets/scss/components/auth.scss +5 -32
  18. package/components/atoms/TheIcon3.vue +50 -50
  19. package/components/atoms/collapse/CollapseNav.vue +170 -170
  20. package/components/atoms/dropdown/tree/Tree.vue +0 -2
  21. package/components/atoms/perPage/PerPage.vue +58 -58
  22. package/components/atoms/switch/Switch.vue +1 -7
  23. package/components/atoms/table/dataGrid/DataGrid.vue +1718 -1718
  24. package/components/atoms/table/dataGrid/DataGridPagination.vue +97 -97
  25. package/components/atoms/table/dataGrid/lib/config/settingsTable.ts +94 -94
  26. package/components/atoms/table/dataGrid/lib/utils/export.ts +16 -16
  27. package/components/atoms/wizard/Wizard.vue +1 -1
  28. package/components/common/backup/storage/actions/add/lib/utils.ts +51 -51
  29. package/components/common/browse/blocks/contents/filesNew/Skeleton.vue +18 -18
  30. package/components/common/diagramMain/modals/lib/config/vCenterModal.ts +48 -48
  31. package/components/common/diagramMain/port/Port.vue +580 -580
  32. package/components/common/help/navbar/left/lib/utils/constructAccordion.ts +1 -2
  33. package/components/common/help/navbar/right/Right.vue +1 -1
  34. package/components/common/layout/theHeader/TheHeaderNew.vue +315 -315
  35. package/components/common/layout/theHeader/TheHeaderOld.vue +262 -262
  36. package/components/common/layout/theHeader/helpMenu/About.vue +79 -79
  37. package/components/common/layout/theHeader/helpMenu/aboutOld/AboutOld.vue +79 -79
  38. package/components/common/layout/theHeader/modals/reconnect/ReconnectOld.vue +0 -2
  39. package/components/common/layout/theHeader/userMenu/modals/changePassword/ChangePassword.vue +21 -12
  40. package/components/common/layout/theHeader/userMenu/modals/changePassword/New.vue +43 -36
  41. package/components/common/layout/theHeader/userMenu/modals/changePassword/Old.vue +2 -0
  42. package/components/common/layout/theHeader/userMenu/modals/changePassword/lib/utils.ts +1 -1
  43. package/components/common/layout/theHeader/userMenu/modals/preferences/PreferencesNew.vue +0 -13
  44. package/components/common/layout/theHeader/userMenu/modals/preferences/PreferencesOld.vue +144 -144
  45. package/components/common/layout/theHeader/userMenu/modals/preferences/changeLanguage/ChangeLanguage.vue +15 -8
  46. package/components/common/layout/theHeader/userMenu/modals/preferences/changeLanguage/{New.vue → ChangeLanguageNew.vue} +2 -1
  47. package/components/common/layout/theHeader/userMenu/modals/preferences/changeLanguage/{Old.vue → ChangeLanguageOld.vue} +2 -0
  48. package/components/common/layout/theHeader/userMenu/modals/preferences/defaultConsole/DefaultConsole.vue +7 -8
  49. package/components/common/layout/theHeader/userMenu/modals/preferences/defaultConsole/{New.vue → DefaultConsoleNew.vue} +3 -3
  50. package/components/common/layout/theHeader/userMenu/modals/preferences/defaultConsole/{Old.vue → DefaultConsoleOld.vue} +2 -2
  51. package/components/common/layout/theHeader/userMenu/modals/preferences/inventory/Inventory.vue +8 -7
  52. package/components/common/layout/theHeader/userMenu/modals/preferences/inventory/{New.vue → InventoryNew.vue} +2 -3
  53. package/components/common/layout/theHeader/userMenu/modals/preferences/inventory/{Old.vue → InventoryOld.vue} +2 -2
  54. package/components/common/layout/theHeader/userMenu/modals/preferences/lib/models/types.ts +7 -7
  55. package/components/common/layout/theHeader/userMenu/modals/preferences/security/New.vue +12 -277
  56. package/components/common/layout/theHeader/userMenu/modals/preferences/security/Old.vue +56 -30
  57. package/components/common/layout/theHeader/userMenu/modals/preferences/security/Security.vue +6 -65
  58. package/components/common/layout/theHeader/userMenu/modals/preferences/timeFormat/TimeFormat.vue +8 -8
  59. package/components/common/layout/theHeader/userMenu/modals/preferences/timeFormat/{New.vue → TimeFormatNew.vue} +3 -3
  60. package/components/common/layout/theHeader/userMenu/modals/preferences/timeFormat/{Old.vue → TimeFormatOld.vue} +2 -2
  61. package/components/common/layout/theHeader/userMenu/modals/preferences/view/View.vue +7 -8
  62. package/components/common/layout/theHeader/userMenu/modals/preferences/view/{New.vue → ViewNew.vue} +3 -12
  63. package/components/common/layout/theHeader/userMenu/modals/preferences/view/{Old.vue → ViewOld.vue} +2 -2
  64. package/components/common/monitor/advanced/graphView/GraphView.vue +0 -8
  65. package/components/common/monitor/advanced/tools/Tools.vue +1 -5
  66. package/components/common/pages/backups/DetailView.vue +52 -52
  67. package/components/common/pages/backups/lib/models/interfaces.ts +36 -36
  68. package/components/common/pages/backups/modals/Modals.vue +243 -243
  69. package/components/common/pages/backups/modals/createBackup/configuration/maxBandwidth/lib/config/options.ts +6 -6
  70. package/components/common/pages/backups/modals/createBackup/lib/config/readyToCompleteOptions.ts +69 -69
  71. package/components/common/pages/backups/modals/lib/config/restore.ts +115 -115
  72. package/components/common/pages/backups/modals/lib/models/interfaces.ts +186 -186
  73. package/components/common/pages/backups/modals/restore/name/lib/models/interfaces.ts +6 -6
  74. package/components/common/pages/hardwareHealth/historyTestimony/tools/Tools.vue +2 -7
  75. package/components/common/pages/hardwareHealth/tableView/TableView.vue +0 -8
  76. package/components/common/pages/hardwareHealth/tableView/lib/config/sensorTable.ts +1 -13
  77. package/components/common/pages/hardwareHealth/toolsPanel/lib/config/actionsPanel.ts +4 -4
  78. package/components/common/pages/home/lib/models/interfaces.ts +48 -48
  79. package/components/common/pages/home/widgets/hosts/Hosts.vue +27 -27
  80. package/components/common/pages/home/widgets/hosts/lib/config/items.ts +23 -23
  81. package/components/common/pages/home/widgets/vms/VmsOld.vue +35 -35
  82. package/components/common/pages/home/widgets/vms/lib/config/items.ts +19 -19
  83. package/components/common/pages/scheduledTasks/lib/utils/utils.ts +84 -84
  84. package/components/common/qrcode/Qrcode.vue +56 -0
  85. package/components/common/readyToComplete/ReadyToComplete.vue +17 -17
  86. package/components/common/select/radio/RadioGroup.vue +137 -137
  87. package/components/common/spiceConsole/Drawer.vue +420 -420
  88. package/components/common/spiceConsole/SpiceConsole.vue +184 -184
  89. package/components/common/spiceConsole/lib/models/interfaces.ts +5 -5
  90. package/components/common/split/horizontal/New.vue +2 -0
  91. package/components/common/split/vertical/New.vue +1 -2
  92. package/components/common/tools/Actions.vue +207 -207
  93. package/components/common/treeView/TreeView.vue +52 -52
  94. package/components/common/vm/actions/add/New.vue +1 -1
  95. package/components/common/vm/actions/add/Old.vue +1 -1
  96. package/components/common/vm/actions/clone/lib/config/steps.ts +295 -295
  97. package/components/common/vm/actions/clone/new/New.vue +438 -438
  98. package/components/common/vm/actions/clone/old/Old.vue +0 -1
  99. package/components/common/vm/actions/common/customizeHardware/virtualHardware/New.vue +34 -10
  100. package/components/common/vm/actions/common/customizeHardware/virtualHardware/Old.vue +37 -15
  101. package/components/common/vm/actions/common/customizeHardware/virtualHardware/VirtualHardware.vue +50 -49
  102. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/coresPerSocket/CoresPerSocket.vue +3 -3
  103. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/shares/lib/config/options.ts +28 -28
  104. package/components/common/vm/actions/common/customizeHardware/virtualHardware/lib/models/interfaces.ts +1 -3
  105. package/components/common/vm/actions/common/customizeHardware/virtualHardware/memory/Memory.vue +283 -283
  106. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/NewHardDisk.vue +7 -13
  107. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/New.vue +4 -7
  108. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/NewPciDevice.vue +45 -52
  109. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/Old.vue +8 -5
  110. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/directPathIo/DirectPathIo.vue +3 -1
  111. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/directPathIo/New.vue +2 -2
  112. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/directPathIo/Old.vue +2 -2
  113. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/dynamicDirectPathIo/DynamicDirectPathIo.vue +1 -1
  114. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/dynamicDirectPathIo/New.vue +2 -1
  115. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/dynamicDirectPathIo/Old.vue +2 -1
  116. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/nvidiaGrid/New.vue +1 -1
  117. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/nvidiaGrid/NvidiaGrid.vue +1 -1
  118. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/nvidiaGrid/Old.vue +1 -1
  119. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/order/Order.vue +156 -156
  120. package/components/common/vm/actions/common/select/compatibility/Old.vue +107 -107
  121. package/components/common/vm/actions/common/select/createType/lib/models/interfaces.ts +5 -5
  122. package/components/common/vm/actions/common/select/options/New.vue +264 -264
  123. package/components/common/vm/actions/common/select/options/Old.vue +2 -1
  124. package/components/common/vm/actions/common/select/options/Options.vue +58 -58
  125. package/components/common/vm/actions/common/select/storage/Old.vue +125 -125
  126. package/components/common/vm/actions/common/select/storage/new/New.vue +311 -311
  127. package/components/common/vm/actions/common/select/storage/new/lib/models/interfaces.ts +5 -5
  128. package/components/common/vm/actions/common/select/storage/new/lib/utils/utils.ts +21 -21
  129. package/components/common/vm/actions/common/select/template/old/Old.vue +50 -50
  130. package/components/common/vm/actions/editSettings/new/Skeleton.vue +88 -88
  131. package/components/common/wizards/common/compatibility/Compatibility.vue +35 -35
  132. package/components/common/wizards/common/compatibility/New.vue +1 -1
  133. package/components/common/wizards/common/compatibility/Old.vue +1 -1
  134. package/components/common/wizards/common/steps/computeResource/New.vue +93 -93
  135. package/components/common/wizards/common/steps/name/Name.vue +178 -178
  136. package/components/common/wizards/common/steps/name/New.vue +221 -221
  137. package/components/common/wizards/common/steps/name/Old.vue +121 -121
  138. package/components/common/wizards/common/steps/name/lib/models/interfaces.ts +4 -4
  139. package/components/common/wizards/common/steps/name/location/New.vue +40 -40
  140. package/components/common/wizards/datastore/add/Add.vue +228 -228
  141. package/components/common/wizards/datastore/add/lib/config/createDatastore.ts +0 -1
  142. package/components/common/wizards/datastore/add/lib/models/interfaces.ts +0 -1
  143. package/components/common/wizards/datastore/add/lib/utils.ts +85 -85
  144. package/components/common/wizards/datastore/add/steps/nameAndDevice/NameAndDeviceNew.vue +0 -5
  145. package/components/common/wizards/datastore/add/steps/nameAndDevice/NameAndDeviceOld.vue +0 -5
  146. package/components/common/wizards/datastore/add/steps/nameAndDevice/table/old/Old.vue +3 -2
  147. package/components/common/wizards/datastore/add/steps/readyComplete/lib/config/propertiesDetails.ts +1 -8
  148. package/components/common/wizards/datastore/add/steps/typeMode/lib/config/typeOptions.ts +43 -43
  149. package/components/common/wizards/vm/migrate/lib/models/enums.ts +2 -2
  150. package/components/common/wizards/vm/migrate/steps/selectStorage/SelectStorage.vue +4 -4
  151. package/components/common/wizards/vm/migrate/steps/selectStorage/configure/disk/table/new/lib/config/diskTable.ts +2 -6
  152. package/components/common/wizards/vm/migrate/steps/selectStorage/configure/disk/table/old/lib/config/diskTable.ts +12 -18
  153. package/composables/useAppVersion.ts +21 -21
  154. package/composables/useEnvLanguage.ts +8 -7
  155. package/composables/useLocal.ts +6 -6
  156. package/composables/useLocalCommon.ts +39 -39
  157. package/lib/models/interfaces.ts +0 -1
  158. package/package.json +4 -3
  159. package/plugins/console.ts +21 -21
  160. package/plugins/date.ts +37 -14
  161. package/plugins/mouse.ts +21 -21
  162. package/plugins/panelStates.ts +70 -70
  163. package/plugins/text.ts +59 -59
  164. package/public/spice-console/application/clientgui.js +854 -854
  165. package/public/spice-console/application/packetfactory.js +211 -211
  166. package/public/spice-console/application/virtualmouse.js +147 -147
  167. package/public/spice-console/lib/images/bitmap.js +203 -203
  168. package/public/spice-console/network/spicechannel.js +440 -440
  169. package/public/spice-console/process/cursorprocess.js +128 -128
  170. package/public/spice-console/process/inputprocess.js +227 -227
  171. package/public/spice-console/process/mainprocess.js +212 -212
  172. package/public/spice-console/run.js +210 -210
  173. package/store/main/getters.ts +2 -2
  174. package/store/main/mutations.ts +7 -7
  175. package/store/main/state.ts +7 -7
  176. package/store/tasks/mappers/recentTasks.ts +123 -123
  177. package/store/tasks/mutations.ts +82 -82
  178. package/components/common/certificate/Certificate.vue +0 -27
  179. package/components/common/certificate/CertificateInfo.vue +0 -139
  180. package/components/common/certificate/Tools.vue +0 -59
  181. package/components/common/certificate/lib/config/tabsPannel.ts +0 -22
  182. package/components/common/certificate/lib/models/interfaces.ts +0 -9
  183. package/components/common/certificate/lib/models/types.ts +0 -1
  184. package/components/common/certificate/modals/renew/New.vue +0 -64
  185. package/components/common/certificate/modals/renew/Old.vue +0 -122
  186. package/components/common/certificate/modals/renew/Renew.vue +0 -67
  187. package/components/common/pages/auth/TheFooter.vue +0 -104
  188. package/components/common/pages/files/lib/models/enums.ts +0 -10
  189. package/components/common/qr/Qr.vue +0 -69
  190. package/components/common/wizards/datastore/add/steps/nameAndDevice/advancedOptions/AdvancedOptions.vue +0 -43
  191. package/components/common/wizards/datastore/add/steps/nameAndDevice/advancedOptions/New.vue +0 -114
  192. package/components/common/wizards/datastore/add/steps/nameAndDevice/advancedOptions/Old.vue +0 -114
@@ -13,7 +13,7 @@ export const constructItems = (
13
13
  !parent || (item.title !== parent.title && item._path !== parent._path)
14
14
  )
15
15
  })
16
- .map((item: UI_I_ContentNavigation, key: number): UI_I_AccordionRecursion => {
16
+ .map((item: UI_I_ContentNavigation): UI_I_AccordionRecursion => {
17
17
  const children = constructItems(item.children, item)
18
18
  return {
19
19
  children,
@@ -22,7 +22,6 @@ export const constructItems = (
22
22
  name: item.title,
23
23
  hasChild: !!children.length,
24
24
  isOpen: !parent,
25
- testId: `nav-accordion-${key}`,
26
25
  }
27
26
  })
28
27
  }
@@ -8,7 +8,7 @@
8
8
  >
9
9
  <atoms-the-icon name="arrow" />
10
10
  </button>
11
- <div v-else class="h-full">
11
+ <div v-else class="height-100">
12
12
  <div class="navbar__header">
13
13
  <p class="title">{{ props.title }}</p>
14
14
  <button
@@ -1,315 +1,315 @@
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="md"
9
- position="bottom"
10
- position-by-tooltip="left"
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="mainMenuTriggerStatus"
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
- <template v-if="mainMenuTriggerStatus">{{
35
- localization.common.openMenu
36
- }}</template>
37
- <template v-else>{{ localization.common.closeMenu }}</template>
38
- </span>
39
- </template>
40
- </ui-tooltip>
41
- <nuxt-link
42
- id="header-shortcuts-link"
43
- data-id="header-shortcuts-link"
44
- class="header-shortcuts-link"
45
- to="/shortcuts"
46
- >
47
- <span class="title pointer"
48
- >{{ props.companyName }}® {{ props.projectName }}</span
49
- >
50
- </nuxt-link>
51
- </div>
52
- <div class="right-content">
53
- <ui-tooltip
54
- id="tooltip-global-refresh-button"
55
- test-id="tooltip-global-refresh-button"
56
- size="md"
57
- position="bottom"
58
- position-by-tooltip="center"
59
- >
60
- <template #target>
61
- <div
62
- id="tooltip-global-refresh-button"
63
- class="popped tooltip inline-block"
64
- >
65
- <button
66
- id="global-refresh-button"
67
- data-id="global-refresh-button"
68
- class="global-refresh-button"
69
- @click="emits('global-refresh')"
70
- >
71
- <atoms-the-icon
72
- v-if="!props.globalRefreshLoading"
73
- class="reset-icon"
74
- name="reset"
75
- />
76
- <span v-else class="reset-loader-content">
77
- <ui-loader2 width="24" height="24" />
78
- </span>
79
- </button>
80
- </div>
81
- </template>
82
- <template #content>
83
- <span class="header-tooltip-text">
84
- {{ localization.common.refresh }}
85
- </span>
86
- </template>
87
- </ui-tooltip>
88
- <div class="divider right-divider-global-refresh" />
89
- <div class="container-content">
90
- <common-layout-the-header-theme-switch
91
- :is-dark-theme="props.isDarkTheme"
92
- @change-theme-mode="emits('change-theme-mode')"
93
- />
94
- </div>
95
- <div class="divider" />
96
- <div class="container-content">
97
- <common-layout-the-header-help-menu
98
- :project-name="props.projectName"
99
- />
100
- </div>
101
- <div class="divider" />
102
- <div class="container-content user-menu-container">
103
- <common-layout-the-header-user-menu
104
- v-model:security="security"
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
- :security-loader="props.securityLoader"
116
- :recovery="props.recovery"
117
- @show-preference="emits('show-preference')"
118
- @reset-preference="emits('reset-preference')"
119
- @hide-preference="emits('hide-preference')"
120
- @change-theme-mode="emits('change-theme-mode')"
121
- @update-time-format="emits('update-time-format', $event)"
122
- @update-language="emits('update-language', $event)"
123
- @update-is-browser="emits('update-is-browser', $event)"
124
- @update-is-new-view="emits('update-is-new-view', $event)"
125
- @update-remote-console="emits('update-remote-console', $event)"
126
- @update-vm-clusters="emits('update-vm-clusters', $event)"
127
- @security-confirm="emits('security-confirm', $event)"
128
- @submit-preferences="emits('submit-preferences')"
129
- />
130
- </div>
131
- </div>
132
- </div>
133
- </div>
134
- </template>
135
-
136
- <script setup lang="ts">
137
- import type { UI_I_Dropdown } from '~/node_modules/bfg-uikit/components/ui/dropdown/models/interfaces'
138
- import type { UI_T_TimeValue } from '~/components/common/layout/theHeader/userMenu/modals/preferences/timeFormat/lib/models/types'
139
- import type { UI_T_Project } from '~/lib/models/types'
140
- import type { UI_I_Localization } from '~/lib/models/interfaces'
141
- import type {
142
- UI_I_Recovery
143
- } from "~/components/common/layout/theHeader/userMenu/modals/preferences/security/lib/models/interfaces";
144
-
145
- const security = defineModel<boolean>('security')
146
-
147
- const props = defineProps<{
148
- isShowMainMenu: boolean
149
- companyName: string
150
- betaText: string
151
- globalRefreshLoading: boolean
152
- project: UI_T_Project
153
- projectName: string
154
- hostname: string
155
- isPreference: boolean
156
- selectedLanguageType: string
157
- selectedLang: UI_I_Dropdown
158
- remoteConsole: string
159
- vmCluster: boolean
160
- newView: boolean
161
- newViewLocal: boolean
162
- timeFormat: string
163
- isDarkTheme: boolean
164
- securityLoader: boolean // для Сферы
165
- recovery: UI_I_Recovery | null // для Сферы
166
- }>()
167
-
168
- const emits = defineEmits<{
169
- (event: 'toggle-main-menu'): void
170
- (event: 'global-refresh'): void
171
- (event: 'show-preference'): void
172
- (event: 'reset-preference'): void
173
- (event: 'hide-preference'): void
174
- (event: 'change-theme-mode'): void
175
- (event: 'update-time-format', value: UI_T_TimeValue): void
176
- (event: 'update-language', value: UI_I_Dropdown): void
177
- (event: 'update-is-browser', value: string): void
178
- (event: 'update-is-new-view', value: boolean): void
179
- (event: 'update-remote-console', value: string): void
180
- (event: 'update-vm-clusters', value: boolean): void
181
- (event: 'security-confirm', value: boolean): void
182
- (event: 'submit-preferences'): void
183
- }>()
184
-
185
- const localization = computed<UI_I_Localization>(() => useLocal())
186
-
187
- const { $store }: any = useNuxtApp()
188
-
189
- const isMenuPined = computed<boolean>(
190
- () => $store.getters['main/getIsMenuPined']
191
- )
192
-
193
- const mainMenuTriggerStatus = computed<boolean>(
194
- () => !props.isShowMainMenu || isMenuPined.value
195
- )
196
- </script>
197
-
198
- <style scoped lang="scss">
199
- .the-header-content {
200
- background-color: var(--header-container-bg-color);
201
- height: 64px;
202
- padding: 16px;
203
-
204
- .flex-content {
205
- display: flex;
206
- justify-content: space-between;
207
-
208
- .header-tooltip-text {
209
- font-size: 12px;
210
- font-weight: 500;
211
- text-wrap: nowrap;
212
- }
213
- .left-content {
214
- display: flex;
215
- align-items: center;
216
-
217
- #tooltip-inventory-menu-trigger {
218
- .inventory-menu-trigger {
219
- width: 24px;
220
- height: 24px;
221
- border: unset;
222
- padding: 0;
223
- outline: unset;
224
- background: transparent;
225
- cursor: pointer;
226
- margin-right: 16px;
227
-
228
- &:hover {
229
- svg {
230
- fill: #ffffff;
231
- }
232
- }
233
- svg {
234
- fill: #d3d6da;
235
- }
236
- }
237
- }
238
- :deep(#tooltip-inventory-menu-trigger-div) {
239
- z-index: var(--z-popover);
240
- //transform: translate(13px, 0px);
241
- }
242
-
243
- .header-shortcuts-link {
244
- color: var(--header-shortcuts-link-color);
245
- text-decoration: none;
246
- display: flex;
247
- align-items: center;
248
-
249
- .title {
250
- font-size: 16px;
251
- font-weight: 300;
252
- }
253
- .badge-info {
254
- background-color: var(--badge-info-bg-color);
255
- margin-left: 16px;
256
- border-radius: 8px;
257
- font-size: 12px;
258
- padding: 0 12px;
259
- height: 24px;
260
- display: flex;
261
- align-items: center;
262
- }
263
- }
264
- }
265
- .right-content {
266
- display: flex;
267
- align-items: center;
268
-
269
- .divider {
270
- width: 1px;
271
- height: 32px;
272
- background-color: #394a58;
273
-
274
- &.right-divider-global-refresh {
275
- margin-left: 16px;
276
- }
277
- }
278
-
279
- .global-refresh-button {
280
- border: unset;
281
- padding: 0;
282
- outline: unset;
283
- background: transparent;
284
- cursor: pointer;
285
- display: flex;
286
-
287
- .reset-icon {
288
- width: 24px;
289
- height: 24px;
290
- fill: #d3d6da;
291
-
292
- &:hover {
293
- fill: #ffffff;
294
- }
295
- }
296
- .reset-loader-content {
297
- width: 24px;
298
- height: 24px;
299
-
300
- .loader {
301
- padding: 2px;
302
- }
303
- }
304
- }
305
- .container-content {
306
- margin-left: 16px;
307
- margin-right: 16px;
308
- }
309
- .user-menu-container {
310
- margin-right: 0;
311
- }
312
- }
313
- }
314
- }
315
- </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="md"
9
+ position="bottom"
10
+ position-by-tooltip="left"
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="mainMenuTriggerStatus"
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
+ <template v-if="mainMenuTriggerStatus">{{
35
+ localization.common.openMenu
36
+ }}</template>
37
+ <template v-else>{{ localization.common.closeMenu }}</template>
38
+ </span>
39
+ </template>
40
+ </ui-tooltip>
41
+ <nuxt-link
42
+ id="header-shortcuts-link"
43
+ data-id="header-shortcuts-link"
44
+ class="header-shortcuts-link"
45
+ to="/shortcuts"
46
+ >
47
+ <span class="title pointer"
48
+ >{{ props.companyName }}® {{ props.projectName }}</span
49
+ >
50
+ </nuxt-link>
51
+ </div>
52
+ <div class="right-content">
53
+ <ui-tooltip
54
+ id="tooltip-global-refresh-button"
55
+ test-id="tooltip-global-refresh-button"
56
+ size="md"
57
+ position="bottom"
58
+ position-by-tooltip="center"
59
+ >
60
+ <template #target>
61
+ <div
62
+ id="tooltip-global-refresh-button"
63
+ class="popped tooltip inline-block"
64
+ >
65
+ <button
66
+ id="global-refresh-button"
67
+ data-id="global-refresh-button"
68
+ class="global-refresh-button"
69
+ @click="emits('global-refresh')"
70
+ >
71
+ <atoms-the-icon
72
+ v-if="!props.globalRefreshLoading"
73
+ class="reset-icon"
74
+ name="reset"
75
+ />
76
+ <span v-else class="reset-loader-content">
77
+ <ui-loader2 width="24" height="24" />
78
+ </span>
79
+ </button>
80
+ </div>
81
+ </template>
82
+ <template #content>
83
+ <span class="header-tooltip-text">
84
+ {{ localization.common.refresh }}
85
+ </span>
86
+ </template>
87
+ </ui-tooltip>
88
+ <div class="divider right-divider-global-refresh" />
89
+ <div class="container-content">
90
+ <common-layout-the-header-theme-switch
91
+ :is-dark-theme="props.isDarkTheme"
92
+ @change-theme-mode="emits('change-theme-mode')"
93
+ />
94
+ </div>
95
+ <div class="divider" />
96
+ <div class="container-content">
97
+ <common-layout-the-header-help-menu
98
+ :project-name="props.projectName"
99
+ />
100
+ </div>
101
+ <div class="divider" />
102
+ <div class="container-content user-menu-container">
103
+ <common-layout-the-header-user-menu
104
+ v-model:security="security"
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
+ :security-loader="props.securityLoader"
116
+ :recovery="props.recovery"
117
+ @show-preference="emits('show-preference')"
118
+ @reset-preference="emits('reset-preference')"
119
+ @hide-preference="emits('hide-preference')"
120
+ @change-theme-mode="emits('change-theme-mode')"
121
+ @update-time-format="emits('update-time-format', $event)"
122
+ @update-language="emits('update-language', $event)"
123
+ @update-is-browser="emits('update-is-browser', $event)"
124
+ @update-is-new-view="emits('update-is-new-view', $event)"
125
+ @update-remote-console="emits('update-remote-console', $event)"
126
+ @update-vm-clusters="emits('update-vm-clusters', $event)"
127
+ @security-confirm="emits('security-confirm', $event)"
128
+ @submit-preferences="emits('submit-preferences')"
129
+ />
130
+ </div>
131
+ </div>
132
+ </div>
133
+ </div>
134
+ </template>
135
+
136
+ <script setup lang="ts">
137
+ import type { UI_I_Dropdown } from '~/node_modules/bfg-uikit/components/ui/dropdown/models/interfaces'
138
+ import type { UI_T_TimeValue } from '~/components/common/layout/theHeader/userMenu/modals/preferences/timeFormat/lib/models/types'
139
+ import type { UI_T_Project } from '~/lib/models/types'
140
+ import type { UI_I_Localization } from '~/lib/models/interfaces'
141
+ import type {
142
+ UI_I_Recovery
143
+ } from "~/components/common/layout/theHeader/userMenu/modals/preferences/security/lib/models/interfaces";
144
+
145
+ const security = defineModel<boolean>('security')
146
+
147
+ const props = defineProps<{
148
+ isShowMainMenu: boolean
149
+ companyName: string
150
+ betaText: string
151
+ globalRefreshLoading: boolean
152
+ project: UI_T_Project
153
+ projectName: string
154
+ hostname: string
155
+ isPreference: boolean
156
+ selectedLanguageType: string
157
+ selectedLang: UI_I_Dropdown
158
+ remoteConsole: string
159
+ vmCluster: boolean
160
+ newView: boolean
161
+ newViewLocal: boolean
162
+ timeFormat: string
163
+ isDarkTheme: boolean
164
+ securityLoader: boolean // для Сферы
165
+ recovery: UI_I_Recovery | null // для Сферы
166
+ }>()
167
+
168
+ const emits = defineEmits<{
169
+ (event: 'toggle-main-menu'): void
170
+ (event: 'global-refresh'): void
171
+ (event: 'show-preference'): void
172
+ (event: 'reset-preference'): void
173
+ (event: 'hide-preference'): void
174
+ (event: 'change-theme-mode'): void
175
+ (event: 'update-time-format', value: UI_T_TimeValue): void
176
+ (event: 'update-language', value: UI_I_Dropdown): void
177
+ (event: 'update-is-browser', value: string): void
178
+ (event: 'update-is-new-view', value: boolean): void
179
+ (event: 'update-remote-console', value: string): void
180
+ (event: 'update-vm-clusters', value: boolean): void
181
+ (event: 'security-confirm', value: boolean): void
182
+ (event: 'submit-preferences'): void
183
+ }>()
184
+
185
+ const localization = computed<UI_I_Localization>(() => useLocal())
186
+
187
+ const { $store }: any = useNuxtApp()
188
+
189
+ const isMenuPined = computed<boolean>(
190
+ () => $store.getters['main/getIsMenuPined']
191
+ )
192
+
193
+ const mainMenuTriggerStatus = computed<boolean>(
194
+ () => !props.isShowMainMenu || isMenuPined.value
195
+ )
196
+ </script>
197
+
198
+ <style scoped lang="scss">
199
+ .the-header-content {
200
+ background-color: var(--header-container-bg-color);
201
+ height: 64px;
202
+ padding: 16px;
203
+
204
+ .flex-content {
205
+ display: flex;
206
+ justify-content: space-between;
207
+
208
+ .header-tooltip-text {
209
+ font-size: 12px;
210
+ font-weight: 500;
211
+ text-wrap: nowrap;
212
+ }
213
+ .left-content {
214
+ display: flex;
215
+ align-items: center;
216
+
217
+ #tooltip-inventory-menu-trigger {
218
+ .inventory-menu-trigger {
219
+ width: 24px;
220
+ height: 24px;
221
+ border: unset;
222
+ padding: 0;
223
+ outline: unset;
224
+ background: transparent;
225
+ cursor: pointer;
226
+ margin-right: 16px;
227
+
228
+ &:hover {
229
+ svg {
230
+ fill: #ffffff;
231
+ }
232
+ }
233
+ svg {
234
+ fill: #d3d6da;
235
+ }
236
+ }
237
+ }
238
+ :deep(#tooltip-inventory-menu-trigger-div) {
239
+ z-index: var(--z-popover);
240
+ //transform: translate(13px, 0px);
241
+ }
242
+
243
+ .header-shortcuts-link {
244
+ color: var(--header-shortcuts-link-color);
245
+ text-decoration: none;
246
+ display: flex;
247
+ align-items: center;
248
+
249
+ .title {
250
+ font-size: 16px;
251
+ font-weight: 300;
252
+ }
253
+ .badge-info {
254
+ background-color: var(--badge-info-bg-color);
255
+ margin-left: 16px;
256
+ border-radius: 8px;
257
+ font-size: 12px;
258
+ padding: 0 12px;
259
+ height: 24px;
260
+ display: flex;
261
+ align-items: center;
262
+ }
263
+ }
264
+ }
265
+ .right-content {
266
+ display: flex;
267
+ align-items: center;
268
+
269
+ .divider {
270
+ width: 1px;
271
+ height: 32px;
272
+ background-color: #394a58;
273
+
274
+ &.right-divider-global-refresh {
275
+ margin-left: 16px;
276
+ }
277
+ }
278
+
279
+ .global-refresh-button {
280
+ border: unset;
281
+ padding: 0;
282
+ outline: unset;
283
+ background: transparent;
284
+ cursor: pointer;
285
+ display: flex;
286
+
287
+ .reset-icon {
288
+ width: 24px;
289
+ height: 24px;
290
+ fill: #d3d6da;
291
+
292
+ &:hover {
293
+ fill: #ffffff;
294
+ }
295
+ }
296
+ .reset-loader-content {
297
+ width: 24px;
298
+ height: 24px;
299
+
300
+ .loader {
301
+ padding: 2px;
302
+ }
303
+ }
304
+ }
305
+ .container-content {
306
+ margin-left: 16px;
307
+ margin-right: 16px;
308
+ }
309
+ .user-menu-container {
310
+ margin-right: 0;
311
+ }
312
+ }
313
+ }
314
+ }
315
+ </style>