bfg-common 1.5.726 → 1.5.727

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.
@@ -1,154 +1,152 @@
1
- <template>
2
- <component
3
- :is="currentComponent"
4
- v-model:security="security"
5
- v-model:new-view-local="newViewLocal"
6
- v-model:time-format="timeFormat"
7
- v-model:console-value="consoleValue"
8
- v-model:vm-in-hosts-clusters="vmInHostsClusters"
9
- v-model:is-dark-theme="isDarkTheme"
10
- :is-show-main-menu="props.isShowMainMenu"
11
- :company-name="props.companyName"
12
- :beta-text="props.betaText"
13
- :global-refresh-loading="props.globalRefreshLoading"
14
- :hostname="props.hostname"
15
- :project-name="props.projectName"
16
- :is-preference="props.isPreference"
17
- :selected-language-type="props.selectedLanguageType"
18
- :selected-lang="props.selectedLang"
19
- :new-view="props.newView"
20
- :project="props.project"
21
- :security-loader="props.securityLoader"
22
- :recovery="props.recovery"
23
- @toggle-main-menu="emits('toggle-main-menu')"
24
- @show-preference="emits('show-preference')"
25
- @reset-preference="emits('reset-preference')"
26
- @hide-preference="emits('hide-preference')"
27
- @global-refresh="emits('global-refresh')"
28
- @change-theme-mode="emits('change-theme-mode')"
29
- @update-language="emits('update-language', $event)"
30
- @update-is-browser="emits('update-is-browser', $event)"
31
- @security-confirm="emits('security-confirm', $event)"
32
- @submit-preferences="emits('submit-preferences')"
33
- />
34
-
35
- <common-layout-the-header-modals-reconnect />
36
- <common-layout-the-header-modals-redirect-login />
37
- </template>
38
-
39
- <script setup lang="ts">
40
- import type { UI_I_Dropdown } from '~/node_modules/bfg-uikit/components/ui/dropdown/models/interfaces'
41
- import type { UI_T_Project } from '~/lib/models/types'
42
- import type { UI_T_TimeValue } from '~/components/common/layout/theHeader/userMenu/modals/preferences/timeFormat/lib/models/types'
43
- import type { UI_I_Recovery } from '~/components/common/layout/theHeader/userMenu/modals/preferences/security/lib/models/interfaces'
44
- import { checkIsTokenExpired } from '~/lib/utils/token'
45
-
46
- const security = defineModel<boolean>('security')
47
- const newViewLocal = defineModel<boolean>('newViewLocal')
48
- const timeFormat = defineModel<UI_T_TimeValue>('timeFormat')
49
- const consoleValue = defineModel<string>('consoleValue')
50
- const vmInHostsClusters = defineModel<boolean>('vmInHostsClusters')
51
- const isDarkTheme = defineModel<boolean>('isDarkTheme')
52
-
53
- const props = withDefaults(
54
- defineProps<{
55
- isShowMainMenu: boolean
56
- companyName: string
57
- betaText: string
58
- globalRefreshLoading: boolean
59
- project: UI_T_Project
60
- projectName: string
61
- hostname: string
62
- isPreference: boolean
63
- selectedLanguageType: string
64
- selectedLang: UI_I_Dropdown
65
- newView: boolean
66
- isPauseReconnect: boolean
67
- expireTimeFromState: number
68
- isShowReconnectModal: boolean
69
- isShowRedirectLoginModal: boolean
70
- securityLoader?: boolean // для Сферы
71
- recovery?: UI_I_Recovery | null // для Сферы
72
- }>(),
73
- {
74
- securityLoader: false,
75
- recovery: null,
76
- }
77
- )
78
-
79
- const emits = defineEmits<{
80
- (event: 'toggle-main-menu'): void
81
- (event: 'global-refresh'): void
82
- (event: 'show-preference'): void
83
- (event: 'reset-preference'): void
84
- (event: 'hide-preference'): void
85
- (event: 'change-theme-mode'): void
86
- (event: 'update-language', value: UI_I_Dropdown): void
87
- (event: 'update-is-browser', value: string): void
88
- (event: 'security-confirm', value: boolean): void
89
- (event: 'submit-preferences'): void
90
- (event: 'show-redirect-login-modal', value: boolean): void
91
- (event: 'show-reconnect-modal', value: boolean): void
92
- }>()
93
-
94
- const currentComponent = computed(() =>
95
- props.newView
96
- ? defineAsyncComponent(() => import('./New.vue'))
97
- : defineAsyncComponent(() => import('./Old.vue'))
98
- )
99
-
100
- const inactivityTimer = ref<NodeJS.Timeout | undefined>(undefined)
101
- const inactivityTimeout = ref<number>(10 * 60 * 1000)
102
-
103
- const startInactivityTimer = (): void => {
104
- inactivityTimer.value = setTimeout(() => {
105
- // Проверяем если isPauseReconnect истина то не показываем модальное окно переподключения,
106
- // к примеру если загружаем файл и он загружается дольше чем срабатывает таймаут
107
-
108
- if (props.isPauseReconnect) {
109
- startInactivityTimer()
110
- return
111
- }
112
-
113
- const expireTime =
114
- props.expireTimeFromState || useCookie('token-expired-time').value
115
-
116
- const isExpiredToken = checkIsTokenExpired(expireTime)
117
-
118
- if (isExpiredToken) {
119
- emits('show-redirect-login-modal', true)
120
-
121
- if (props.isShowReconnectModal) {
122
- emits('show-reconnect-modal', false)
123
- }
124
- }
125
-
126
- if (!isExpiredToken && !props.isShowRedirectLoginModal) {
127
- emits('show-reconnect-modal', true)
128
- startInactivityTimer()
129
- }
130
-
131
- console.log('Пользователь бездействует!')
132
- }, inactivityTimeout.value)
133
- }
134
-
135
- const resetInactivityTimer = (): void => {
136
- // Сброс таймера бездействия при каждом действии пользователя
137
- inactivityTimer.value !== null && clearTimeout(inactivityTimer.value)
138
- startInactivityTimer()
139
- }
140
-
141
- onMounted(() => {
142
- document.addEventListener('mousemove', resetInactivityTimer)
143
-
144
- startInactivityTimer()
145
- })
146
-
147
- onBeforeUnmount(() => {
148
- document.removeEventListener('mousemove', resetInactivityTimer)
149
-
150
- inactivityTimer.value !== null && clearTimeout(inactivityTimer.value)
151
- })
152
- </script>
153
-
154
- <style scoped lang="scss"></style>
1
+ <template>
2
+ <component
3
+ :is="currentComponent"
4
+ v-model:security="security"
5
+ v-model:new-view-local="newViewLocal"
6
+ v-model:time-format="timeFormat"
7
+ v-model:console-value="consoleValue"
8
+ v-model:vm-in-hosts-clusters="vmInHostsClusters"
9
+ v-model:is-dark-theme="isDarkTheme"
10
+ :is-show-main-menu="props.isShowMainMenu"
11
+ :company-name="props.companyName"
12
+ :beta-text="props.betaText"
13
+ :global-refresh-loading="props.globalRefreshLoading"
14
+ :hostname="props.hostname"
15
+ :project-name="props.projectName"
16
+ :is-preference="props.isPreference"
17
+ :selected-language-type="props.selectedLanguageType"
18
+ :selected-lang="props.selectedLang"
19
+ :new-view="props.newView"
20
+ :project="props.project"
21
+ :security-loader="props.securityLoader"
22
+ :recovery="props.recovery"
23
+ @toggle-main-menu="emits('toggle-main-menu')"
24
+ @show-preference="emits('show-preference')"
25
+ @reset-preference="emits('reset-preference')"
26
+ @hide-preference="emits('hide-preference')"
27
+ @global-refresh="emits('global-refresh')"
28
+ @update-language="emits('update-language', $event)"
29
+ @update-is-browser="emits('update-is-browser', $event)"
30
+ @security-confirm="emits('security-confirm', $event)"
31
+ @submit-preferences="emits('submit-preferences')"
32
+ />
33
+
34
+ <common-layout-the-header-modals-reconnect />
35
+ <common-layout-the-header-modals-redirect-login />
36
+ </template>
37
+
38
+ <script setup lang="ts">
39
+ import type { UI_I_Dropdown } from '~/node_modules/bfg-uikit/components/ui/dropdown/models/interfaces'
40
+ import type { UI_T_Project } from '~/lib/models/types'
41
+ import type { UI_T_TimeValue } from '~/components/common/layout/theHeader/userMenu/modals/preferences/timeFormat/lib/models/types'
42
+ import type { UI_I_Recovery } from '~/components/common/layout/theHeader/userMenu/modals/preferences/security/lib/models/interfaces'
43
+ import { checkIsTokenExpired } from '~/lib/utils/token'
44
+
45
+ const security = defineModel<boolean>('security')
46
+ const newViewLocal = defineModel<boolean>('newViewLocal')
47
+ const timeFormat = defineModel<UI_T_TimeValue>('timeFormat')
48
+ const consoleValue = defineModel<string>('consoleValue')
49
+ const vmInHostsClusters = defineModel<boolean>('vmInHostsClusters')
50
+ const isDarkTheme = defineModel<boolean>('isDarkTheme')
51
+
52
+ const props = withDefaults(
53
+ defineProps<{
54
+ isShowMainMenu: boolean
55
+ companyName: string
56
+ betaText: string
57
+ globalRefreshLoading: boolean
58
+ project: UI_T_Project
59
+ projectName: string
60
+ hostname: string
61
+ isPreference: boolean
62
+ selectedLanguageType: string
63
+ selectedLang: UI_I_Dropdown
64
+ newView: boolean
65
+ isPauseReconnect: boolean
66
+ expireTimeFromState: number
67
+ isShowReconnectModal: boolean
68
+ isShowRedirectLoginModal: boolean
69
+ securityLoader?: boolean // для Сферы
70
+ recovery?: UI_I_Recovery | null // для Сферы
71
+ }>(),
72
+ {
73
+ securityLoader: false,
74
+ recovery: null,
75
+ }
76
+ )
77
+
78
+ const emits = defineEmits<{
79
+ (event: 'toggle-main-menu'): void
80
+ (event: 'global-refresh'): void
81
+ (event: 'show-preference'): void
82
+ (event: 'reset-preference'): void
83
+ (event: 'hide-preference'): void
84
+ (event: 'update-language', value: UI_I_Dropdown): void
85
+ (event: 'update-is-browser', value: string): void
86
+ (event: 'security-confirm', value: boolean): void
87
+ (event: 'submit-preferences'): void
88
+ (event: 'show-redirect-login-modal', value: boolean): void
89
+ (event: 'show-reconnect-modal', value: boolean): void
90
+ }>()
91
+
92
+ const currentComponent = computed(() =>
93
+ props.newView
94
+ ? defineAsyncComponent(() => import('./New.vue'))
95
+ : defineAsyncComponent(() => import('./Old.vue'))
96
+ )
97
+
98
+ const inactivityTimer = ref<NodeJS.Timeout | undefined>(undefined)
99
+ const inactivityTimeout = ref<number>(10 * 60 * 1000)
100
+
101
+ const startInactivityTimer = (): void => {
102
+ inactivityTimer.value = setTimeout(() => {
103
+ // Проверяем если isPauseReconnect истина то не показываем модальное окно переподключения,
104
+ // к примеру если загружаем файл и он загружается дольше чем срабатывает таймаут
105
+
106
+ if (props.isPauseReconnect) {
107
+ startInactivityTimer()
108
+ return
109
+ }
110
+
111
+ const expireTime =
112
+ props.expireTimeFromState || useCookie('token-expired-time').value
113
+
114
+ const isExpiredToken = checkIsTokenExpired(expireTime)
115
+
116
+ if (isExpiredToken) {
117
+ emits('show-redirect-login-modal', true)
118
+
119
+ if (props.isShowReconnectModal) {
120
+ emits('show-reconnect-modal', false)
121
+ }
122
+ }
123
+
124
+ if (!isExpiredToken && !props.isShowRedirectLoginModal) {
125
+ emits('show-reconnect-modal', true)
126
+ startInactivityTimer()
127
+ }
128
+
129
+ console.log('Пользователь бездействует!')
130
+ }, inactivityTimeout.value)
131
+ }
132
+
133
+ const resetInactivityTimer = (): void => {
134
+ // Сброс таймера бездействия при каждом действии пользователя
135
+ inactivityTimer.value !== null && clearTimeout(inactivityTimer.value)
136
+ startInactivityTimer()
137
+ }
138
+
139
+ onMounted(() => {
140
+ document.addEventListener('mousemove', resetInactivityTimer)
141
+
142
+ startInactivityTimer()
143
+ })
144
+
145
+ onBeforeUnmount(() => {
146
+ document.removeEventListener('mousemove', resetInactivityTimer)
147
+
148
+ inactivityTimer.value !== null && clearTimeout(inactivityTimer.value)
149
+ })
150
+ </script>
151
+
152
+ <style scoped lang="scss"></style>
@@ -1,104 +1,104 @@
1
- <template>
2
- <component
3
- :is="currentComponent"
4
- :hostname="props.hostname"
5
- @select-dropdown="onSelectDropdown"
6
- />
7
-
8
- <Teleport to="body">
9
- <common-layout-the-header-user-menu-modals-change-password
10
- v-if="isShowChangePasswordModal"
11
- v-model="isShowChangePasswordModal"
12
- :hostname="props.hostname"
13
- :project="props.project"
14
- />
15
-
16
- <common-layout-the-header-user-menu-modals-preferences
17
- v-if="props.isPreference"
18
- v-model:security="security"
19
- v-model:new-view-local="newViewLocal"
20
- v-model:time-format="timeFormat"
21
- v-model:console-value="consoleValue"
22
- v-model:vm-in-hosts-clusters="vmInHostsClusters"
23
- :new-view="props.newView"
24
- :selected-language-type="props.selectedLanguageType"
25
- :selected-language="props.selectedLanguage"
26
- :project="props.project"
27
- :security-loader="props.securityLoader"
28
- :recovery="props.recovery"
29
- @hide="emits('hide-preference')"
30
- @reset="emits('reset-preference')"
31
- @update-language="emits('update-language', $event)"
32
- @update-is-browser="emits('update-is-browser', $event)"
33
- @security-confirm="emits('security-confirm', $event)"
34
- @submit="emits('submit-preferences')"
35
- />
36
- </Teleport>
37
- </template>
38
-
39
- <script setup lang="ts">
40
- import type { UI_I_Dropdown } from '~/node_modules/bfg-uikit/components/ui/dropdown/models/interfaces'
41
- import type { UI_T_LangValue, UI_T_Project } from '~/lib/models/types'
42
- import type { UI_T_TimeValue } from '~/components/common/layout/theHeader/userMenu/modals/preferences/timeFormat/lib/models/types'
43
- import type { UI_I_Recovery } from '~/components/common/layout/theHeader/userMenu/modals/preferences/security/lib/models/interfaces'
44
-
45
- const security = defineModel<boolean>('security')
46
- const newViewLocal = defineModel<boolean>('newViewLocal')
47
- const timeFormat = defineModel<UI_T_TimeValue>('timeFormat')
48
- const consoleValue = defineModel<string>('consoleValue')
49
- const vmInHostsClusters = defineModel<boolean>('vmInHostsClusters')
50
-
51
- const props = defineProps<{
52
- hostname: string
53
- project: UI_T_Project
54
- isPreference: boolean
55
- newView: boolean
56
- selectedLanguageType: UI_T_LangValue
57
- selectedLanguage: UI_I_Dropdown | string
58
- securityLoader: boolean // для Сферы
59
- recovery: UI_I_Recovery | null // для Сферы
60
- }>()
61
- const emits = defineEmits<{
62
- (event: 'show-preference'): void
63
- (event: 'reset-preference'): void
64
- (event: 'hide-preference'): void
65
- (event: 'change-theme-mode'): void
66
- (event: 'update-language', value: UI_I_Dropdown): void
67
- (event: 'update-is-browser', value: string): void
68
- (event: 'security-confirm', value: boolean): void
69
- (event: 'submit-preferences'): void
70
- }>()
71
-
72
- const { $store }: any = useNuxtApp()
73
-
74
- const currentComponent = computed(() =>
75
- props.newView
76
- ? defineAsyncComponent(() => import('./new/New.vue'))
77
- : defineAsyncComponent(() => import('./old/Old.vue'))
78
- )
79
-
80
- const isShowChangePasswordModal = ref<boolean>(false)
81
-
82
- const onLogout = async (): Promise<void> => {
83
- await $store.dispatch('auth/A_LOGOUT', null)
84
- }
85
-
86
- const onSelectDropdown = (value: string): void => {
87
- switch (value) {
88
- case 'changePassword':
89
- isShowChangePasswordModal.value = true
90
- break
91
- case 'preferences':
92
- emits('show-preference')
93
- break
94
- case 'themeMode':
95
- emits('change-theme-mode')
96
- break
97
- case 'logout':
98
- onLogout()
99
- break
100
- }
101
- }
102
- </script>
103
-
104
- <style scoped lang="scss"></style>
1
+ <template>
2
+ <component
3
+ :is="currentComponent"
4
+ :hostname="props.hostname"
5
+ @select-dropdown="onSelectDropdown"
6
+ />
7
+
8
+ <Teleport to="body">
9
+ <common-layout-the-header-user-menu-modals-change-password
10
+ v-if="isShowChangePasswordModal"
11
+ v-model="isShowChangePasswordModal"
12
+ :hostname="props.hostname"
13
+ :project="props.project"
14
+ />
15
+
16
+ <common-layout-the-header-user-menu-modals-preferences
17
+ v-if="props.isPreference"
18
+ v-model:security="security"
19
+ v-model:new-view-local="newViewLocal"
20
+ v-model:time-format="timeFormat"
21
+ v-model:console-value="consoleValue"
22
+ v-model:vm-in-hosts-clusters="vmInHostsClusters"
23
+ :new-view="props.newView"
24
+ :selected-language-type="props.selectedLanguageType"
25
+ :selected-language="props.selectedLanguage"
26
+ :project="props.project"
27
+ :security-loader="props.securityLoader"
28
+ :recovery="props.recovery"
29
+ @hide="emits('hide-preference')"
30
+ @reset="emits('reset-preference')"
31
+ @update-language="emits('update-language', $event)"
32
+ @update-is-browser="emits('update-is-browser', $event)"
33
+ @security-confirm="emits('security-confirm', $event)"
34
+ @submit="emits('submit-preferences')"
35
+ />
36
+ </Teleport>
37
+ </template>
38
+
39
+ <script setup lang="ts">
40
+ import type { UI_I_Dropdown } from '~/node_modules/bfg-uikit/components/ui/dropdown/models/interfaces'
41
+ import type { UI_T_LangValue, UI_T_Project } from '~/lib/models/types'
42
+ import type { UI_T_TimeValue } from '~/components/common/layout/theHeader/userMenu/modals/preferences/timeFormat/lib/models/types'
43
+ import type { UI_I_Recovery } from '~/components/common/layout/theHeader/userMenu/modals/preferences/security/lib/models/interfaces'
44
+
45
+ const security = defineModel<boolean>('security')
46
+ const newViewLocal = defineModel<boolean>('newViewLocal')
47
+ const timeFormat = defineModel<UI_T_TimeValue>('timeFormat')
48
+ const consoleValue = defineModel<string>('consoleValue')
49
+ const vmInHostsClusters = defineModel<boolean>('vmInHostsClusters')
50
+ const isDarkTheme = defineModel<boolean>('isDarkTheme')
51
+
52
+ const props = defineProps<{
53
+ hostname: string
54
+ project: UI_T_Project
55
+ isPreference: boolean
56
+ newView: boolean
57
+ selectedLanguageType: UI_T_LangValue
58
+ selectedLanguage: UI_I_Dropdown | string
59
+ securityLoader: boolean // для Сферы
60
+ recovery: UI_I_Recovery | null // для Сферы
61
+ }>()
62
+ const emits = defineEmits<{
63
+ (event: 'show-preference'): void
64
+ (event: 'reset-preference'): void
65
+ (event: 'hide-preference'): void
66
+ (event: 'update-language', value: UI_I_Dropdown): void
67
+ (event: 'update-is-browser', value: string): void
68
+ (event: 'security-confirm', value: boolean): void
69
+ (event: 'submit-preferences'): void
70
+ }>()
71
+
72
+ const { $store }: any = useNuxtApp()
73
+
74
+ const currentComponent = computed(() =>
75
+ props.newView
76
+ ? defineAsyncComponent(() => import('./new/New.vue'))
77
+ : defineAsyncComponent(() => import('./old/Old.vue'))
78
+ )
79
+
80
+ const isShowChangePasswordModal = ref<boolean>(false)
81
+
82
+ const onLogout = async (): Promise<void> => {
83
+ await $store.dispatch('auth/A_LOGOUT', null)
84
+ }
85
+
86
+ const onSelectDropdown = (value: string): void => {
87
+ switch (value) {
88
+ case 'changePassword':
89
+ isShowChangePasswordModal.value = true
90
+ break
91
+ case 'preferences':
92
+ emits('show-preference')
93
+ break
94
+ case 'themeMode':
95
+ isDarkTheme.value = !isDarkTheme.value
96
+ break
97
+ case 'logout':
98
+ onLogout()
99
+ break
100
+ }
101
+ }
102
+ </script>
103
+
104
+ <style scoped lang="scss"></style>
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "bfg-common",
3
3
  "private": false,
4
- "version": "1.5.726",
4
+ "version": "1.5.727",
5
5
  "scripts": {
6
6
  "build": "nuxt build",
7
7
  "dev": "nuxt dev --port=3002",