bfg-common 1.3.467 → 1.3.468

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 (109) hide show
  1. package/assets/scss/common/normalize.scss +340 -340
  2. package/components/atoms/TheIcon2.vue +1353 -1353
  3. package/components/atoms/loader/Loader.vue +30 -30
  4. package/components/atoms/loader/PreLoader.vue +38 -38
  5. package/components/atoms/switch/Switch.vue +111 -111
  6. package/components/atoms/table/compact/Compact.vue +526 -526
  7. package/components/common/adapterManager/ui/table/Header.vue +93 -93
  8. package/components/common/adapterManager/ui/table/Table.vue +162 -162
  9. package/components/common/context/Context.vue +99 -99
  10. package/components/common/layout/theHeader/LanguageSwitch.vue +102 -0
  11. package/components/common/layout/theHeader/TheHeader.vue +91 -0
  12. package/components/common/layout/theHeader/TheHeaderNew.vue +229 -0
  13. package/components/common/layout/theHeader/TheHeaderOld.vue +241 -0
  14. package/components/common/layout/theHeader/feedback/Feedback.vue +104 -0
  15. package/components/common/layout/theHeader/feedback/FeedbackNew.vue +63 -0
  16. package/components/common/layout/theHeader/feedback/FeedbackOld.vue +73 -0
  17. package/components/common/layout/theHeader/helpMenu/About.vue +110 -0
  18. package/components/common/layout/theHeader/helpMenu/HelpMenu.vue +45 -0
  19. package/components/common/layout/theHeader/helpMenu/helpMenuNew/HelpMenuNew.vue +112 -0
  20. package/components/common/layout/theHeader/helpMenu/helpMenuNew/lib/config/dropMenu.ts +25 -0
  21. package/components/common/layout/theHeader/helpMenu/helpMenuOld/HelpMenuOld.vue +69 -0
  22. package/components/common/layout/theHeader/helpMenu/helpMenuOld/lib/config/dropMenu.ts +22 -0
  23. package/components/common/layout/theHeader/helpMenu/helpMenuOld/lib/models/types.ts +1 -0
  24. package/components/common/layout/theHeader/lib/models/types.ts +5 -0
  25. package/components/common/layout/theHeader/modals/Reconnect.vue +98 -0
  26. package/components/common/layout/theHeader/modals/RedirectLogin.vue +60 -0
  27. package/components/common/layout/theHeader/userMenu/UserMenu.vue +95 -0
  28. package/components/common/layout/theHeader/userMenu/lib/models/interfaces.ts +32 -0
  29. package/components/common/layout/theHeader/userMenu/modals/changePassword/ChangePassword.vue +210 -0
  30. package/components/common/layout/theHeader/userMenu/modals/changePassword/lib/config/form.ts +31 -0
  31. package/components/common/layout/theHeader/userMenu/modals/changePassword/lib/models/interfaces.ts +12 -0
  32. package/components/common/layout/theHeader/userMenu/modals/preferences/Inventory.vue +43 -0
  33. package/components/common/layout/theHeader/userMenu/modals/preferences/Preferences.vue +119 -0
  34. package/components/common/layout/theHeader/userMenu/modals/preferences/View.vue +113 -0
  35. package/components/common/layout/theHeader/userMenu/modals/preferences/changeLanguage/ChangeLanguage.vue +148 -0
  36. package/components/common/layout/theHeader/userMenu/modals/preferences/changeLanguage/lib/config/lang.ts +10 -0
  37. package/components/common/layout/theHeader/userMenu/modals/preferences/changeLanguage/lib/config/radioOptions.ts +22 -0
  38. package/components/common/layout/theHeader/userMenu/modals/preferences/changeLanguage/lib/models/enums.ts +9 -0
  39. package/components/common/layout/theHeader/userMenu/modals/preferences/changeLanguage/lib/models/interfaces.ts +11 -0
  40. package/components/common/layout/theHeader/userMenu/modals/preferences/changeLanguage/lib/models/types.ts +1 -0
  41. package/components/common/layout/theHeader/userMenu/modals/preferences/defaultConsole/DefaultConsole.vue +66 -0
  42. package/components/common/layout/theHeader/userMenu/modals/preferences/defaultConsole/lib/config/consoleOptions.ts +30 -0
  43. package/components/common/layout/theHeader/userMenu/modals/preferences/defaultConsole/lib/models/interfaces.ts +5 -0
  44. package/components/common/layout/theHeader/userMenu/modals/preferences/lib/config/preferencesTabs.ts +68 -0
  45. package/components/common/layout/theHeader/userMenu/modals/preferences/lib/models/types.ts +1 -0
  46. package/components/common/layout/theHeader/userMenu/modals/preferences/timeFormat/TimeFormat.vue +67 -0
  47. package/components/common/layout/theHeader/userMenu/modals/preferences/timeFormat/lib/config/formatOptions.ts +27 -0
  48. package/components/common/layout/theHeader/userMenu/modals/preferences/timeFormat/lib/models/types.ts +1 -0
  49. package/components/common/layout/theHeader/userMenu/userMenuNew/UserMenuNew.vue +114 -0
  50. package/components/common/layout/theHeader/userMenu/userMenuNew/lib/config/dropMenu.ts +28 -0
  51. package/components/common/layout/theHeader/userMenu/userMenuOld/UserMenuOld.vue +36 -0
  52. package/components/common/layout/theHeader/userMenu/userMenuOld/lib/config/dropMenu.ts +36 -0
  53. package/components/common/layout/theHeader/userMenu/userMenuOld/lib/models/types.ts +5 -0
  54. package/components/common/lib/config/states.ts +160 -160
  55. package/components/common/mainNavigationPanel/MainNavigationPanel.vue +142 -142
  56. package/components/common/mainNavigationPanel/MainNavigationPanelNew.vue +248 -248
  57. package/components/common/mainNavigationPanel/MainNavigationPanelOld.vue +288 -288
  58. package/components/common/readyToComplete/ReadyToComplete.vue +15 -15
  59. package/components/common/resource/progressBlock/ProgressBlock.vue +142 -142
  60. package/components/common/split/horizontal/Horizontal.vue +70 -70
  61. package/components/common/vm/actions/clone/Clone.vue +511 -511
  62. package/components/common/vm/actions/common/customizeHardware/CustomizeHardware.vue +273 -273
  63. package/components/common/vm/actions/common/customizeHardware/virtualHardware/VirtualHardware.vue +697 -697
  64. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/Cpu.vue +400 -400
  65. package/components/common/vm/actions/common/customizeHardware/virtualHardware/memory/Memory.vue +329 -329
  66. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/NewNetwork.vue +305 -305
  67. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/NewPciDevice.vue +168 -168
  68. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newUsbController/NewUsbController.vue +82 -82
  69. package/components/common/vm/actions/common/customizeHardware/virtualHardware/other/Other.vue +32 -32
  70. package/components/common/vm/actions/common/customizeHardware/virtualHardware/videoCard/VideoCard.vue +182 -182
  71. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/BootOptions.vue +114 -114
  72. package/components/common/vm/actions/common/customizeHardware/vmoptions/generalOptions/GeneralOptions.vue +192 -192
  73. package/components/common/vm/actions/common/customizeHardware/vmoptions/tools/Tools.vue +72 -72
  74. package/components/common/vm/actions/common/select/computeResource/ComputeResource.vue +164 -164
  75. package/components/common/vm/actions/common/select/name/Name.vue +235 -235
  76. package/components/common/vm/actions/common/select/storage/Storage.vue +198 -198
  77. package/components/common/vm/actions/editSettings/EditSettings.vue +316 -316
  78. package/components/common/weekSelect/lib/config/options.ts +10 -10
  79. package/components/common/wizards/datastore/add/Add.vue +436 -436
  80. package/components/common/wizards/datastore/add/lib/config/stepItems.ts +191 -191
  81. package/components/common/wizards/datastore/add/lib/models/interfaces.ts +38 -38
  82. package/components/common/wizards/datastore/add/lib/utils.ts +70 -70
  83. package/components/common/wizards/datastore/add/local/createName/CreateName.vue +160 -160
  84. package/components/common/wizards/datastore/add/nfs/Nfs.vue +112 -112
  85. package/components/common/wizards/datastore/add/nfs/accessibility/Accessibility.vue +104 -104
  86. package/components/common/wizards/datastore/add/nfs/accessibility/tablesView/lib/config/compatibleTable.ts +62 -62
  87. package/components/common/wizards/datastore/add/nfs/accessibility/tablesView/lib/config/hostsTableItems.ts +53 -53
  88. package/components/common/wizards/datastore/add/readyComplete/ReadyComplete.vue +86 -86
  89. package/components/common/wizards/datastore/add/readyComplete/lib/config/propertiesDetails.ts +184 -184
  90. package/components/common/wizards/datastore/add/sharedStorm/deviceSelection/DeviceSelection.vue +459 -459
  91. package/components/common/wizards/datastore/add/types/Types.vue +80 -80
  92. package/components/common/wizards/datastore/add/types/lib/config/typeOptions.ts +49 -49
  93. package/composables/useAppVersion.ts +22 -22
  94. package/composables/useEnvLanguage.ts +20 -20
  95. package/lib/utils/sendTask.ts +73 -73
  96. package/minify.js +146 -146
  97. package/package.json +2 -1
  98. package/plugins/spice-console/spice.console.ts +147 -147
  99. package/public/spice-console/application/codec.js +263 -263
  100. package/public/spice-console/lib/rasterEngine.js +907 -907
  101. package/public/spice-console/network/spicechannel.js +375 -375
  102. package/store/main/lib/interfaces.ts +9 -9
  103. package/store/tasks/actions.ts +133 -133
  104. package/store/tasks/getters.ts +25 -25
  105. package/store/tasks/lib/models/interfaces.ts +18 -18
  106. package/store/tasks/mutations.ts +58 -58
  107. package/store/tasks/state.ts +16 -16
  108. /package/components/{layout → common/layout}/theHeader/lib/models/enums.ts +0 -0
  109. /package/components/{layout → common/layout}/theHeader/lib/utils/localization.ts +0 -0
@@ -1,99 +1,99 @@
1
- <template>
2
- <div
3
- :id="elementId"
4
- class="context-popup"
5
- :style="{
6
- top: currentContextMenuY,
7
- left: currentContextMenuX,
8
- }"
9
- >
10
- <common-context-recursion
11
- :action-loading="props.actionLoading"
12
- :items="props.contextMenu.items"
13
- @select-item="selectItem"
14
- />
15
- </div>
16
- </template>
17
-
18
- <script setup lang="ts">
19
- import {
20
- UI_I_ContextMenuItem,
21
- UI_I_ContextMenu,
22
- } from '~/components/common/context/lib/models/interfaces'
23
-
24
- const props = defineProps<{
25
- contextMenu: UI_I_ContextMenu
26
- actionLoading: string | null
27
- }>()
28
- const emits = defineEmits<{
29
- (event: 'select-item', value: UI_I_ContextMenuItem): void
30
- (event: 'hide'): void
31
- }>()
32
- const selectItem = (item: UI_I_ContextMenuItem): void => {
33
- emits('select-item', item)
34
- }
35
-
36
- const elementId = ref<string>(`context-${useUniqueId()}`)
37
-
38
- const currentContextMenuY = ref<string>('')
39
- const currentContextMenuX = ref<string>('')
40
- const setCurrentPositionsPopup = (): void => {
41
- const contextMenuY = props.contextMenu.y
42
- const contextMenuX = props.contextMenu.x
43
-
44
- const contextWrap: HTMLElement | null =
45
- document.querySelector(`#${elementId.value} .context-wrap`)
46
- const contextW = contextWrap?.offsetWidth || 0
47
- const contextH = contextWrap?.offsetHeight || 0
48
-
49
- const windowW = window.innerWidth
50
- const windowH = window.innerHeight
51
-
52
- if (contextMenuY + contextH >= windowH) {
53
- currentContextMenuY.value = 'auto'
54
- } else {
55
- currentContextMenuY.value = `${contextMenuY}px`
56
- }
57
-
58
- if (contextMenuX + contextW >= windowW) {
59
- const divisionW = windowW - contextW
60
- currentContextMenuX.value = `${divisionW}px`
61
- } else {
62
- currentContextMenuX.value = `${contextMenuX}px`
63
- }
64
- }
65
-
66
- const windowMousedown = (): void => {
67
- emits('hide')
68
- }
69
- watch(
70
- () => props.contextMenu.y,
71
- (newValue: number) => {
72
- if (!newValue) return
73
-
74
- if (newValue < 0) {
75
- window.removeEventListener('mousedown', windowMousedown)
76
- } else {
77
- window.addEventListener('mousedown', windowMousedown)
78
- }
79
-
80
- setTimeout(() => {
81
- setCurrentPositionsPopup()
82
- }, 0)
83
- }
84
- )
85
- </script>
86
-
87
- <style scoped lang="scss">
88
- .context-popup {
89
- top: -9999px;
90
- left: -9999px;
91
- bottom: 0;
92
- border: none;
93
- box-sizing: content-box;
94
- overflow: visible;
95
- display: block;
96
- position: fixed;
97
- z-index: 10002;
98
- }
99
- </style>
1
+ <template>
2
+ <div
3
+ :id="elementId"
4
+ class="context-popup"
5
+ :style="{
6
+ top: currentContextMenuY,
7
+ left: currentContextMenuX,
8
+ }"
9
+ >
10
+ <common-context-recursion
11
+ :action-loading="props.actionLoading"
12
+ :items="props.contextMenu.items"
13
+ @select-item="selectItem"
14
+ />
15
+ </div>
16
+ </template>
17
+
18
+ <script setup lang="ts">
19
+ import {
20
+ UI_I_ContextMenuItem,
21
+ UI_I_ContextMenu,
22
+ } from '~/components/common/context/lib/models/interfaces'
23
+
24
+ const props = defineProps<{
25
+ contextMenu: UI_I_ContextMenu
26
+ actionLoading: string | null
27
+ }>()
28
+ const emits = defineEmits<{
29
+ (event: 'select-item', value: UI_I_ContextMenuItem): void
30
+ (event: 'hide'): void
31
+ }>()
32
+ const selectItem = (item: UI_I_ContextMenuItem): void => {
33
+ emits('select-item', item)
34
+ }
35
+
36
+ const elementId = ref<string>(`context-${useUniqueId()}`)
37
+
38
+ const currentContextMenuY = ref<string>('')
39
+ const currentContextMenuX = ref<string>('')
40
+ const setCurrentPositionsPopup = (): void => {
41
+ const contextMenuY = props.contextMenu.y
42
+ const contextMenuX = props.contextMenu.x
43
+
44
+ const contextWrap: HTMLElement | null =
45
+ document.querySelector(`#${elementId.value} .context-wrap`)
46
+ const contextW = contextWrap?.offsetWidth || 0
47
+ const contextH = contextWrap?.offsetHeight || 0
48
+
49
+ const windowW = window.innerWidth
50
+ const windowH = window.innerHeight
51
+
52
+ if (contextMenuY + contextH >= windowH) {
53
+ currentContextMenuY.value = 'auto'
54
+ } else {
55
+ currentContextMenuY.value = `${contextMenuY}px`
56
+ }
57
+
58
+ if (contextMenuX + contextW >= windowW) {
59
+ const divisionW = windowW - contextW
60
+ currentContextMenuX.value = `${divisionW}px`
61
+ } else {
62
+ currentContextMenuX.value = `${contextMenuX}px`
63
+ }
64
+ }
65
+
66
+ const windowMousedown = (): void => {
67
+ emits('hide')
68
+ }
69
+ watch(
70
+ () => props.contextMenu.y,
71
+ (newValue: number) => {
72
+ if (!newValue) return
73
+
74
+ if (newValue < 0) {
75
+ window.removeEventListener('mousedown', windowMousedown)
76
+ } else {
77
+ window.addEventListener('mousedown', windowMousedown)
78
+ }
79
+
80
+ setTimeout(() => {
81
+ setCurrentPositionsPopup()
82
+ }, 0)
83
+ }
84
+ )
85
+ </script>
86
+
87
+ <style scoped lang="scss">
88
+ .context-popup {
89
+ top: -9999px;
90
+ left: -9999px;
91
+ bottom: 0;
92
+ border: none;
93
+ box-sizing: content-box;
94
+ overflow: visible;
95
+ display: block;
96
+ position: fixed;
97
+ z-index: 10002;
98
+ }
99
+ </style>
@@ -0,0 +1,102 @@
1
+ <template>
2
+ <div class="language-switch-content">
3
+ <label class="switch">
4
+ <input type="checkbox" @change="emits('change-theme-mode')" />
5
+ <span class="slider"></span>
6
+ <span class="theme-icon light">
7
+ <ui-icon name="light" width="14" height="14" />
8
+ </span>
9
+ <span class="theme-icon dark">
10
+ <ui-icon name="dark" width="14" height="14" />
11
+ </span>
12
+ </label>
13
+ </div>
14
+ </template>
15
+
16
+ <script setup lang="ts">
17
+ const emits = defineEmits<{
18
+ (event: 'change-theme-mode'): void
19
+ }>()
20
+ </script>
21
+
22
+ <style>
23
+ :root {
24
+ --switch-bg-color: #e9ebed;
25
+ --switch-item-color: #213444;
26
+ }
27
+ :root.dark-theme {
28
+ --switch-bg-color: #4d5d69;
29
+ --switch-item-color: #ffffff;
30
+ }
31
+ </style>
32
+
33
+ <style scoped lang="scss">
34
+ .language-switch-content {
35
+ .switch {
36
+ position: relative;
37
+ display: inline-block;
38
+ width: 48px;
39
+ height: 24px;
40
+ color: var(--switch-item-color);
41
+
42
+ input {
43
+ opacity: 0;
44
+ width: 0;
45
+ height: 0;
46
+
47
+ &:checked + .slider {
48
+ background-color: var(--switch-bg-color);
49
+ }
50
+ &:focus + .slider {
51
+ box-shadow: 0 0 1px var(--switch-bg-color);
52
+ }
53
+ &:checked + .slider:before {
54
+ -webkit-transform: translateX(26px);
55
+ -ms-transform: translateX(26px);
56
+ transform: translateX(26px);
57
+ }
58
+ }
59
+
60
+ .slider {
61
+ position: absolute;
62
+ cursor: pointer;
63
+ top: 0;
64
+ left: 0;
65
+ right: 0;
66
+ bottom: 0;
67
+ background-color: var(--switch-bg-color);
68
+ -webkit-transition: 0.4s;
69
+ transition: 0.4s;
70
+ border-radius: 34px;
71
+
72
+ &:before {
73
+ position: absolute;
74
+ content: '';
75
+ height: 18px;
76
+ width: 18px;
77
+ left: 2px;
78
+ bottom: 3px;
79
+ background-color: var(--switch-item-color);
80
+ -webkit-transition: 0.4s;
81
+ transition: 0.4s;
82
+ border-radius: 50%;
83
+ }
84
+ }
85
+
86
+ .theme-icon {
87
+ position: absolute;
88
+ display: flex;
89
+ top: 5px;
90
+ color: var(--switch-item-color);
91
+ pointer-events: none;
92
+
93
+ &.light {
94
+ right: 5px;
95
+ }
96
+ &.dark {
97
+ left: 5px;
98
+ }
99
+ }
100
+ }
101
+ }
102
+ </style>
@@ -0,0 +1,91 @@
1
+ <template>
2
+ <common-layout-the-header-new
3
+ v-if="newView"
4
+ :company-name="props.companyName"
5
+ :is-beta="props.isBeta"
6
+ :is-dev="props.isDev"
7
+ :beta-text="props.betaText"
8
+ :global-refresh-loading="props.globalRefreshLoading"
9
+ :hostname="props.hostname"
10
+ :project-name="props.projectName"
11
+ :is-preference="props.isPreference"
12
+ :selected-language-type="props.selectedLanguageType"
13
+ :selected-lang="props.selectedLang"
14
+ :new-view="props.newViewLocal"
15
+ :time-format="props.timeFormat"
16
+ :project="props.project"
17
+ @toggle-main-menu="emits('toggle-main-menu')"
18
+ @show-preference="emits('show-preference')"
19
+ @hide-preference="emits('hide-preference')"
20
+ @global-refresh="emits('global-refresh')"
21
+ @update-time-format="emits('update-time-format', $event)"
22
+ @change-theme-mode="emits('change-theme-mode')"
23
+ @update-language="emits('update-language', $event)"
24
+ @update-is-browser="emits('update-is-browser', $event)"
25
+ @update-is-new-view="emits('update-is-new-view', $event)"
26
+ @submit-preferences="emits('submit-preferences')"
27
+ />
28
+ <common-layout-the-header-old
29
+ v-else
30
+ :company-name="props.companyName"
31
+ :is-beta="props.isBeta"
32
+ :is-dev="props.isDev"
33
+ :beta-text="props.betaText"
34
+ :global-refresh-loading="props.globalRefreshLoading"
35
+ :hostname="props.hostname"
36
+ :project-name="props.projectName"
37
+ :is-preference="props.isPreference"
38
+ :selected-language-type="props.selectedLanguageType"
39
+ :selected-lang="props.selectedLang"
40
+ :new-view="props.newViewLocal"
41
+ :time-format="props.timeFormat"
42
+ :project="props.project"
43
+ @toggle-main-menu="emits('toggle-main-menu')"
44
+ @show-preference="emits('show-preference')"
45
+ @hide-preference="emits('hide-preference')"
46
+ @global-refresh="emits('global-refresh')"
47
+ @update-time-format="emits('update-time-format', $event)"
48
+ @change-theme-mode="emits('change-theme-mode')"
49
+ @update-language="emits('update-language', $event)"
50
+ @update-is-browser="emits('update-is-browser', $event)"
51
+ @update-is-new-view="emits('update-is-new-view', $event)"
52
+ @submit-preferences="emits('submit-preferences')"
53
+ />
54
+ </template>
55
+
56
+ <script setup lang="ts">
57
+ import type { UI_T_Project } from '~/lib/models/types'
58
+ import type { UI_T_TimeValue } from '~/components/common/layout/theHeader/userMenu/modals/preferences/timeFormat/lib/models/types'
59
+
60
+ const props = defineProps<{
61
+ companyName: string
62
+ isBeta: boolean
63
+ isDev: boolean
64
+ betaText: string
65
+ globalRefreshLoading: boolean
66
+ project: UI_T_Project
67
+ projectName: string
68
+ hostname: string
69
+ isPreference: boolean
70
+ selectedLanguageType: string
71
+ selectedLang: string
72
+ newView: boolean
73
+ newViewLocal: boolean
74
+ timeFormat: string
75
+ }>()
76
+
77
+ const emits = defineEmits<{
78
+ (event: 'toggle-main-menu'): void
79
+ (event: 'global-refresh'): void
80
+ (event: 'show-preference'): void
81
+ (event: 'hide-preference'): void
82
+ (event: 'change-theme-mode'): void
83
+ (event: 'update-time-format', value: UI_T_TimeValue): void
84
+ (event: 'update-language', value: string): void
85
+ (event: 'update-is-browser', value: string): void
86
+ (event: 'update-is-new-view', value: boolean): void
87
+ (event: 'submit-preferences'): void
88
+ }>()
89
+ </script>
90
+
91
+ <style scoped lang="scss"></style>
@@ -0,0 +1,229 @@
1
+ <template>
2
+ <div class="the-header-content">
3
+ <div class="flex-content">
4
+ <div class="left-content">
5
+ <button
6
+ id="inventory-menu-trigger"
7
+ data-id="inventory-menu-toggle-button"
8
+ class="inventory-menu-trigger"
9
+ @click="emits('toggle-main-menu')"
10
+ >
11
+ <atoms-the-icon class="menu-icon" name="menu" />
12
+ </button>
13
+ <nuxt-link
14
+ id="header-shortcuts-link"
15
+ data-id="header-shortcuts-link"
16
+ class="header-shortcuts-link"
17
+ to="/shortcuts"
18
+ >
19
+ <span class="title pointer"
20
+ >{{ props.companyName }}® {{ props.projectName }}</span
21
+ >
22
+ <span v-if="props.isBeta" class="badge-info">{{
23
+ props.betaText
24
+ }}</span>
25
+ <span v-else-if="props.isDev" class="badge-info">Dev</span>
26
+ </nuxt-link>
27
+ </div>
28
+ <div class="right-content">
29
+ <button
30
+ id="global-refresh-button"
31
+ data-id="global-refresh-button"
32
+ class="global-refresh-button"
33
+ @click="emits('global-refresh')"
34
+ >
35
+ <atoms-the-icon
36
+ v-if="!props.globalRefreshLoading"
37
+ class="reset-icon"
38
+ name="reset"
39
+ />
40
+ <span v-else class="reset-loader-content">
41
+ <ui-loader2 />
42
+ </span>
43
+ </button>
44
+ <div class="divider" />
45
+ <div class="container-content">
46
+ <common-layout-the-header-language-switch
47
+ @change-theme-mode="emits('change-theme-mode')"
48
+ />
49
+ </div>
50
+ <div class="divider" />
51
+ <div class="container-content">
52
+ <common-layout-the-header-help-menu
53
+ :project-name="props.projectName"
54
+ />
55
+ </div>
56
+ <div class="divider" />
57
+ <div class="container-content user-menu-container">
58
+ <common-layout-the-header-user-menu
59
+ :hostname="props.hostname"
60
+ :is-preference="isPreference"
61
+ :time-format="props.timeFormat"
62
+ :selected-language-type="props.selectedLanguageType"
63
+ :selected-language="props.selectedLang"
64
+ :new-view="props.newView"
65
+ :project="props.project"
66
+ @show-preference="emits('show-preference')"
67
+ @hide-preference="emits('hide-preference')"
68
+ @change-theme-mode="emits('change-theme-mode')"
69
+ @update-time-format="emits('update-time-format', $event)"
70
+ @update-language="emits('update-language', $event)"
71
+ @update-is-browser="emits('update-is-browser', $event)"
72
+ @update-is-new-view="emits('update-is-new-view', $event)"
73
+ @submit-preferences="emits('submit-preferences')"
74
+ />
75
+ </div>
76
+ </div>
77
+ </div>
78
+ </div>
79
+ </template>
80
+
81
+ <script setup lang="ts">
82
+ import type { UI_T_TimeValue } from '~/components/common/layout/theHeader/userMenu/modals/preferences/timeFormat/lib/models/types'
83
+ import type { UI_T_Project } from '~/lib/models/types'
84
+
85
+ const props = defineProps<{
86
+ companyName: string
87
+ isBeta: boolean
88
+ isDev: boolean
89
+ betaText: string
90
+ globalRefreshLoading: boolean
91
+ project: UI_T_Project
92
+ projectName: string
93
+ hostname: string
94
+ isPreference: boolean
95
+ selectedLanguageType: string
96
+ selectedLang: string
97
+ newView: boolean
98
+ timeFormat: string
99
+ }>()
100
+
101
+ const emits = defineEmits<{
102
+ (event: 'toggle-main-menu'): void
103
+ (event: 'global-refresh'): void
104
+ (event: 'show-preference'): void
105
+ (event: 'hide-preference'): void
106
+ (event: 'change-theme-mode'): void
107
+ (event: 'update-time-format', value: UI_T_TimeValue): void
108
+ (event: 'update-language', value: string): void
109
+ (event: 'update-is-browser', value: string): void
110
+ (event: 'update-is-new-view', value: boolean): void
111
+ (event: 'submit-preferences'): void
112
+ }>()
113
+ </script>
114
+
115
+ <style>
116
+ :root {
117
+ --header-container-bg-color: #213444;
118
+ --header-shortcuts-link-color: #ffffff;
119
+ --badge-info-bg-color: #008fd6;
120
+ }
121
+ :root.dark-theme {
122
+ --header-container-bg-color: #1b2a37;
123
+ --header-shortcuts-link-color: #e9eaec;
124
+ --badge-info-bg-color: #2ba2de;
125
+ }
126
+ </style>
127
+
128
+ <style scoped lang="scss">
129
+ .the-header-content {
130
+ background-color: var(--header-container-bg-color);
131
+ height: 64px;
132
+ padding: 16px;
133
+
134
+ .flex-content {
135
+ display: flex;
136
+ justify-content: space-between;
137
+
138
+ .left-content {
139
+ display: flex;
140
+ align-items: center;
141
+
142
+ .inventory-menu-trigger {
143
+ width: 24px;
144
+ height: 24px;
145
+ border: unset;
146
+ padding: 0;
147
+ outline: unset;
148
+ background: transparent;
149
+ cursor: pointer;
150
+ margin-right: 16px;
151
+
152
+ &:hover {
153
+ svg {
154
+ fill: #ffffff;
155
+ }
156
+ }
157
+ svg {
158
+ fill: #d3d6da;
159
+ }
160
+ }
161
+ .header-shortcuts-link {
162
+ color: var(--header-shortcuts-link-color);
163
+ text-decoration: none;
164
+ display: flex;
165
+ align-items: center;
166
+
167
+ .title {
168
+ font-size: 14px;
169
+ }
170
+ .badge-info {
171
+ background-color: var(--badge-info-bg-color);
172
+ margin-left: 16px;
173
+ border-radius: 8px;
174
+ font-size: 12px;
175
+ padding: 0 12px;
176
+ height: 24px;
177
+ display: flex;
178
+ align-items: center;
179
+ }
180
+ }
181
+ }
182
+ .right-content {
183
+ display: flex;
184
+ align-items: center;
185
+
186
+ .divider {
187
+ width: 1px;
188
+ height: 32px;
189
+ background-color: #394a58;
190
+ }
191
+
192
+ .global-refresh-button {
193
+ border: unset;
194
+ padding: 0;
195
+ outline: unset;
196
+ background: transparent;
197
+ cursor: pointer;
198
+ display: flex;
199
+ margin-right: 16px;
200
+
201
+ .reset-icon {
202
+ width: 24px;
203
+ height: 24px;
204
+ fill: #d3d6da;
205
+
206
+ &:hover {
207
+ fill: #ffffff;
208
+ }
209
+ }
210
+ .reset-loader-content {
211
+ width: 18px;
212
+ height: 18px;
213
+
214
+ .loader {
215
+ padding: 2px;
216
+ }
217
+ }
218
+ }
219
+ .container-content {
220
+ margin-left: 16px;
221
+ margin-right: 16px;
222
+ }
223
+ .user-menu-container {
224
+ margin-right: 0;
225
+ }
226
+ }
227
+ }
228
+ }
229
+ </style>