bfg-common 1.5.711 → 1.5.713

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 (106) hide show
  1. package/CODE_STYLE.md +109 -109
  2. package/assets/img/icons/icons-sprite-dark-3.svg +227 -227
  3. package/assets/img/icons/icons-sprite-dark-5.svg +488 -488
  4. package/assets/img/icons/icons-sprite-light-3.svg +227 -227
  5. package/assets/img/icons/icons-sprite-light-5.svg +488 -488
  6. package/assets/localization/local_be.json +4 -2
  7. package/assets/localization/local_en.json +4 -2
  8. package/assets/localization/local_hy.json +4 -2
  9. package/assets/localization/local_kk.json +4 -2
  10. package/assets/localization/local_ru.json +4 -2
  11. package/assets/localization/local_zh.json +4 -2
  12. package/components/atoms/TheIcon3.vue +50 -50
  13. package/components/atoms/collapse/CollapseNav.vue +170 -170
  14. package/components/atoms/perPage/PerPage.vue +58 -58
  15. package/components/atoms/table/dataGrid/DataGrid.vue +1718 -1718
  16. package/components/atoms/table/dataGrid/DataGridPagination.vue +97 -97
  17. package/components/atoms/table/dataGrid/lib/config/settingsTable.ts +94 -94
  18. package/components/atoms/table/dataGrid/lib/utils/export.ts +16 -16
  19. package/components/common/backup/storage/actions/add/lib/utils.ts +51 -51
  20. package/components/common/browse/blocks/contents/filesNew/Skeleton.vue +18 -18
  21. package/components/common/diagramMain/modals/lib/config/vCenterModal.ts +48 -48
  22. package/components/common/diagramMain/port/Port.vue +580 -580
  23. package/components/common/layout/theHeader/TheHeader.vue +191 -183
  24. package/components/common/layout/theHeader/TheHeaderNew.vue +11 -5
  25. package/components/common/layout/theHeader/TheHeaderOld.vue +11 -5
  26. package/components/common/layout/theHeader/helpMenu/About.vue +79 -79
  27. package/components/common/layout/theHeader/helpMenu/aboutOld/AboutOld.vue +79 -79
  28. package/components/common/layout/theHeader/userMenu/UserMenu.vue +113 -107
  29. package/components/common/layout/theHeader/userMenu/modals/preferences/Preferences.vue +86 -78
  30. package/components/common/layout/theHeader/userMenu/modals/preferences/PreferencesNew.vue +115 -111
  31. package/components/common/layout/theHeader/userMenu/modals/preferences/PreferencesOld.vue +8 -4
  32. package/components/common/layout/theHeader/userMenu/modals/preferences/changeLanguage/ChangeLanguage.vue +108 -114
  33. package/components/common/layout/theHeader/userMenu/modals/preferences/changeLanguage/New.vue +88 -65
  34. package/components/common/layout/theHeader/userMenu/modals/preferences/changeLanguage/Old.vue +89 -66
  35. package/components/common/layout/theHeader/userMenu/modals/preferences/lib/models/types.ts +7 -7
  36. package/components/common/layout/theHeader/userMenu/modals/preferences/timeFormat/TimeFormat.vue +54 -41
  37. package/components/common/layout/theHeader/userMenu/modals/preferences/view/View.vue +46 -33
  38. package/components/common/pages/backups/DetailView.vue +52 -52
  39. package/components/common/pages/backups/lib/models/interfaces.ts +36 -36
  40. package/components/common/pages/backups/modals/Modals.vue +243 -243
  41. package/components/common/pages/backups/modals/createBackup/configuration/maxBandwidth/lib/config/options.ts +6 -6
  42. package/components/common/pages/backups/modals/createBackup/lib/config/readyToCompleteOptions.ts +69 -69
  43. package/components/common/pages/backups/modals/lib/config/restore.ts +115 -115
  44. package/components/common/pages/backups/modals/lib/models/interfaces.ts +186 -186
  45. package/components/common/pages/backups/modals/restore/name/lib/models/interfaces.ts +6 -6
  46. package/components/common/pages/home/lib/models/interfaces.ts +48 -48
  47. package/components/common/pages/home/widgets/hosts/Hosts.vue +27 -27
  48. package/components/common/pages/home/widgets/hosts/lib/config/items.ts +23 -23
  49. package/components/common/pages/home/widgets/vms/VmsOld.vue +35 -35
  50. package/components/common/pages/home/widgets/vms/lib/config/items.ts +19 -19
  51. package/components/common/pages/scheduledTasks/lib/utils/utils.ts +84 -84
  52. package/components/common/pages/tasks/table/lib/config/config.ts +279 -270
  53. package/components/common/readyToComplete/ReadyToComplete.vue +17 -17
  54. package/components/common/select/radio/RadioGroup.vue +137 -137
  55. package/components/common/selectLanguage/SelectLanguage.vue +200 -200
  56. package/components/common/spiceConsole/Drawer.vue +420 -420
  57. package/components/common/spiceConsole/SpiceConsole.vue +184 -184
  58. package/components/common/spiceConsole/lib/models/interfaces.ts +5 -5
  59. package/components/common/tools/Actions.vue +207 -207
  60. package/components/common/treeView/TreeView.vue +52 -52
  61. package/components/common/vm/actions/clone/lib/config/steps.ts +295 -295
  62. package/components/common/vm/actions/clone/new/New.vue +438 -438
  63. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/shares/lib/config/options.ts +28 -28
  64. package/components/common/vm/actions/common/customizeHardware/virtualHardware/memory/Memory.vue +283 -283
  65. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/order/Order.vue +156 -156
  66. package/components/common/vm/actions/common/select/compatibility/Old.vue +107 -107
  67. package/components/common/vm/actions/common/select/createType/lib/models/interfaces.ts +5 -5
  68. package/components/common/vm/actions/common/select/options/New.vue +264 -264
  69. package/components/common/vm/actions/common/select/options/Options.vue +58 -58
  70. package/components/common/vm/actions/common/select/storage/Old.vue +125 -125
  71. package/components/common/vm/actions/common/select/storage/new/New.vue +311 -311
  72. package/components/common/vm/actions/common/select/storage/new/lib/models/interfaces.ts +5 -5
  73. package/components/common/vm/actions/common/select/storage/new/lib/utils/utils.ts +21 -21
  74. package/components/common/vm/actions/common/select/template/old/Old.vue +50 -50
  75. package/components/common/vm/actions/editSettings/new/Skeleton.vue +88 -88
  76. package/components/common/wizards/common/compatibility/Compatibility.vue +35 -35
  77. package/components/common/wizards/common/steps/computeResource/New.vue +93 -93
  78. package/components/common/wizards/common/steps/name/Name.vue +178 -178
  79. package/components/common/wizards/common/steps/name/New.vue +221 -221
  80. package/components/common/wizards/common/steps/name/Old.vue +121 -121
  81. package/components/common/wizards/common/steps/name/lib/models/interfaces.ts +4 -4
  82. package/components/common/wizards/common/steps/name/location/New.vue +40 -40
  83. package/components/common/wizards/datastore/add/Add.vue +228 -228
  84. package/components/common/wizards/datastore/add/lib/utils.ts +85 -85
  85. package/components/common/wizards/datastore/add/steps/typeMode/lib/config/typeOptions.ts +43 -43
  86. package/composables/useAppVersion.ts +21 -21
  87. package/composables/useLocal.ts +6 -6
  88. package/composables/useLocalCommon.ts +39 -39
  89. package/package.json +1 -1
  90. package/plugins/console.ts +21 -21
  91. package/plugins/mouse.ts +21 -21
  92. package/plugins/panelStates.ts +70 -70
  93. package/plugins/text.ts +59 -59
  94. package/public/spice-console/application/clientgui.js +854 -854
  95. package/public/spice-console/application/packetfactory.js +211 -211
  96. package/public/spice-console/application/virtualmouse.js +147 -147
  97. package/public/spice-console/lib/images/bitmap.js +203 -203
  98. package/public/spice-console/network/spicechannel.js +440 -440
  99. package/public/spice-console/process/cursorprocess.js +128 -128
  100. package/public/spice-console/process/inputprocess.js +227 -227
  101. package/public/spice-console/process/mainprocess.js +212 -212
  102. package/public/spice-console/run.js +210 -210
  103. package/store/main/mutations.ts +7 -7
  104. package/store/main/state.ts +7 -7
  105. package/store/tasks/mappers/recentTasks.ts +123 -123
  106. package/store/tasks/mutations.ts +82 -82
@@ -1,79 +1,79 @@
1
- <template>
2
- <Teleport to="body">
3
- <common-layout-the-header-help-menu-about-new
4
- v-if="isNewView"
5
- :title="title"
6
- :subtitle="subtitle"
7
- :about-heading-text="aboutHeadingText"
8
- :about-desc-one="aboutDesc1"
9
- :about-desc-second="aboutDesc2"
10
- :project-name="props.projectName"
11
- :url="companyWebSitePath"
12
- @hide="emits('hide')"
13
- />
14
-
15
- <common-layout-the-header-help-menu-about-old
16
- v-else
17
- :title="title"
18
- :subtitle="subtitle"
19
- :about-heading-text="aboutHeadingText"
20
- :about-desc-one="aboutDesc1"
21
- :about-desc-second="aboutDesc2"
22
- :project-name="props.projectName"
23
- :url="companyWebSitePath"
24
- @hide="emits('hide')"
25
- />
26
- </Teleport>
27
- </template>
28
-
29
- <script lang="ts" setup>
30
- import type { UI_I_Localization } from '~/lib/models/interfaces'
31
-
32
- const props = defineProps<{
33
- version: string
34
- projectName: string
35
- }>()
36
- const emits = defineEmits<{
37
- (event: 'hide'): void
38
- }>()
39
-
40
- const localization = computed<UI_I_Localization>(() => useLocal())
41
- const { $store }: any = useNuxtApp()
42
- const config = useRuntimeConfig()
43
-
44
- const companyName = computed<string>(
45
- () => config.public[`COMPANY_NAME_${useEnvLanguage()}`]
46
- )
47
- const brandName = computed<string>(
48
- () => config.public[`TRADEMARK_${useEnvLanguage()}`]
49
- )
50
-
51
- const companyWebSitePath = ref<string>(config.public.SUPPORT_SITE)
52
-
53
- const title = computed<string>(() => `${brandName.value}® ${props.projectName}`)
54
- const subtitle = computed<string>(() =>
55
- localization.value.layout.aboutWebClientVersion
56
- .replace('{0}', props.projectName)
57
- .replace('{1}', props.version)
58
- )
59
-
60
- const aboutHeadingText = computed<string>(() =>
61
- localization.value.layout.aboutHeading.replace(
62
- '{companyName}',
63
- companyName.value
64
- ).replace(
65
- '{year}',
66
- new Date().getFullYear() + ''
67
- )
68
- )
69
-
70
- const aboutDesc = computed<string[]>(() =>
71
- localization.value.layout.aboutDesc
72
- .replaceAll('{companyName}', companyName.value)
73
- .replaceAll('{trademark}', brandName.value).split('{url}')
74
- )
75
- const aboutDesc1 = computed<string>(() => aboutDesc.value[0])
76
- const aboutDesc2 = computed<string>(() => aboutDesc.value[1])
77
-
78
- const isNewView = computed<boolean>(() => $store.getters['main/getIsNewView'])
79
- </script>
1
+ <template>
2
+ <Teleport to="body">
3
+ <common-layout-the-header-help-menu-about-new
4
+ v-if="isNewView"
5
+ :title="title"
6
+ :subtitle="subtitle"
7
+ :about-heading-text="aboutHeadingText"
8
+ :about-desc-one="aboutDesc1"
9
+ :about-desc-second="aboutDesc2"
10
+ :project-name="props.projectName"
11
+ :url="companyWebSitePath"
12
+ @hide="emits('hide')"
13
+ />
14
+
15
+ <common-layout-the-header-help-menu-about-old
16
+ v-else
17
+ :title="title"
18
+ :subtitle="subtitle"
19
+ :about-heading-text="aboutHeadingText"
20
+ :about-desc-one="aboutDesc1"
21
+ :about-desc-second="aboutDesc2"
22
+ :project-name="props.projectName"
23
+ :url="companyWebSitePath"
24
+ @hide="emits('hide')"
25
+ />
26
+ </Teleport>
27
+ </template>
28
+
29
+ <script lang="ts" setup>
30
+ import type { UI_I_Localization } from '~/lib/models/interfaces'
31
+
32
+ const props = defineProps<{
33
+ version: string
34
+ projectName: string
35
+ }>()
36
+ const emits = defineEmits<{
37
+ (event: 'hide'): void
38
+ }>()
39
+
40
+ const localization = computed<UI_I_Localization>(() => useLocal())
41
+ const { $store }: any = useNuxtApp()
42
+ const config = useRuntimeConfig()
43
+
44
+ const companyName = computed<string>(
45
+ () => config.public[`COMPANY_NAME_${useEnvLanguage()}`]
46
+ )
47
+ const brandName = computed<string>(
48
+ () => config.public[`TRADEMARK_${useEnvLanguage()}`]
49
+ )
50
+
51
+ const companyWebSitePath = ref<string>(config.public.SUPPORT_SITE)
52
+
53
+ const title = computed<string>(() => `${brandName.value}® ${props.projectName}`)
54
+ const subtitle = computed<string>(() =>
55
+ localization.value.layout.aboutWebClientVersion
56
+ .replace('{0}', props.projectName)
57
+ .replace('{1}', props.version)
58
+ )
59
+
60
+ const aboutHeadingText = computed<string>(() =>
61
+ localization.value.layout.aboutHeading.replace(
62
+ '{companyName}',
63
+ companyName.value
64
+ ).replace(
65
+ '{year}',
66
+ new Date().getFullYear() + ''
67
+ )
68
+ )
69
+
70
+ const aboutDesc = computed<string[]>(() =>
71
+ localization.value.layout.aboutDesc
72
+ .replaceAll('{companyName}', companyName.value)
73
+ .replaceAll('{trademark}', brandName.value).split('{url}')
74
+ )
75
+ const aboutDesc1 = computed<string>(() => aboutDesc.value[0])
76
+ const aboutDesc2 = computed<string>(() => aboutDesc.value[1])
77
+
78
+ const isNewView = computed<boolean>(() => $store.getters['main/getIsNewView'])
79
+ </script>
@@ -1,79 +1,79 @@
1
- <template>
2
- <Teleport to="body">
3
- <atoms-modal :title="props.title" show width="864px" test-id="about-modal">
4
- <template #modalHeader>
5
- <div class="flex-align-center">
6
- <h3 class="modal-title">{{ brandName }}® {{ props.projectName }}</h3>
7
- <span class="separator" />
8
- <h4 class="secondary-title">
9
- {{ props.subtitle }}
10
- </h4>
11
- </div>
12
- <button id="about-modal-button-close" class="close">
13
- <atoms-the-icon
14
- data-id="about-modal-button-close-icon"
15
- class="close-icon"
16
- name="close"
17
- @click="() => emits('hide')"
18
- />
19
- </button>
20
- </template>
21
-
22
- <template #modalBody>
23
- <div class="about-vsphere-dialog-legal-section">
24
- <p>{{ props.aboutHeadingText }}</p>
25
- <p>{{ localization.layout.aboutSubtitle }}</p>
26
- </div>
27
-
28
- <div class="about-vsphere-dialog-legal-section description">
29
- {{ props.aboutDescOne }}<a
30
- id="about-description-link"
31
- :href="url"
32
- data-id="about-description-link"
33
- target="_blank"
34
- >{{ props.url }}</a
35
- >{{ props.aboutDescSecond }}
36
- </div>
37
- </template>
38
-
39
- <template #modalFooter>
40
- <span></span>
41
- </template>
42
- </atoms-modal>
43
- </Teleport>
44
- </template>
45
-
46
- <script lang="ts" setup>
47
- import type { UI_I_Localization } from '~/lib/models/interfaces'
48
-
49
- const props = defineProps<{
50
- title: string
51
- subtitle: string
52
- aboutHeadingText: string
53
- aboutDescOne: string
54
- aboutDescSecond: string
55
- projectName: string
56
- url: string
57
- }>()
58
- const emits = defineEmits<{
59
- (event: 'hide'): void
60
- }>()
61
-
62
- const localization = computed<UI_I_Localization>(() => useLocal())
63
- const config = useRuntimeConfig()
64
-
65
- const brandName = computed<string>(
66
- () => config.public[`TRADEMARK_${useEnvLanguage()}`]
67
- )
68
- </script>
69
-
70
- <style lang="scss" scoped>
71
- .modal-title {
72
- color: var(--main-color-mode);
73
- }
74
- .description {
75
- padding-top: 10px;
76
- font-size: 13px;
77
- line-height: 19px;
78
- }
79
- </style>
1
+ <template>
2
+ <Teleport to="body">
3
+ <atoms-modal :title="props.title" show width="864px" test-id="about-modal">
4
+ <template #modalHeader>
5
+ <div class="flex-align-center">
6
+ <h3 class="modal-title">{{ brandName }}® {{ props.projectName }}</h3>
7
+ <span class="separator" />
8
+ <h4 class="secondary-title">
9
+ {{ props.subtitle }}
10
+ </h4>
11
+ </div>
12
+ <button id="about-modal-button-close" class="close">
13
+ <atoms-the-icon
14
+ data-id="about-modal-button-close-icon"
15
+ class="close-icon"
16
+ name="close"
17
+ @click="() => emits('hide')"
18
+ />
19
+ </button>
20
+ </template>
21
+
22
+ <template #modalBody>
23
+ <div class="about-vsphere-dialog-legal-section">
24
+ <p>{{ props.aboutHeadingText }}</p>
25
+ <p>{{ localization.layout.aboutSubtitle }}</p>
26
+ </div>
27
+
28
+ <div class="about-vsphere-dialog-legal-section description">
29
+ {{ props.aboutDescOne }}<a
30
+ id="about-description-link"
31
+ :href="url"
32
+ data-id="about-description-link"
33
+ target="_blank"
34
+ >{{ props.url }}</a
35
+ >{{ props.aboutDescSecond }}
36
+ </div>
37
+ </template>
38
+
39
+ <template #modalFooter>
40
+ <span></span>
41
+ </template>
42
+ </atoms-modal>
43
+ </Teleport>
44
+ </template>
45
+
46
+ <script lang="ts" setup>
47
+ import type { UI_I_Localization } from '~/lib/models/interfaces'
48
+
49
+ const props = defineProps<{
50
+ title: string
51
+ subtitle: string
52
+ aboutHeadingText: string
53
+ aboutDescOne: string
54
+ aboutDescSecond: string
55
+ projectName: string
56
+ url: string
57
+ }>()
58
+ const emits = defineEmits<{
59
+ (event: 'hide'): void
60
+ }>()
61
+
62
+ const localization = computed<UI_I_Localization>(() => useLocal())
63
+ const config = useRuntimeConfig()
64
+
65
+ const brandName = computed<string>(
66
+ () => config.public[`TRADEMARK_${useEnvLanguage()}`]
67
+ )
68
+ </script>
69
+
70
+ <style lang="scss" scoped>
71
+ .modal-title {
72
+ color: var(--main-color-mode);
73
+ }
74
+ .description {
75
+ padding-top: 10px;
76
+ font-size: 13px;
77
+ line-height: 19px;
78
+ }
79
+ </style>
@@ -1,107 +1,113 @@
1
- <template>
2
- <common-layout-the-header-user-menu-user-menu-new
3
- v-if="props.newView"
4
- :hostname="props.hostname"
5
- @select-dropdown="onSelectDropdown"
6
- />
7
- <common-layout-the-header-user-menu-user-menu-old
8
- v-else
9
- :hostname="props.hostname"
10
- @select-dropdown="onSelectDropdown"
11
- />
12
-
13
- <Teleport to="body">
14
- <common-layout-the-header-user-menu-modals-change-password
15
- v-if="isShowChangePasswordModal"
16
- v-model="isShowChangePasswordModal"
17
- :hostname="props.hostname"
18
- :project="props.project"
19
- />
20
-
21
- <common-layout-the-header-user-menu-modals-preferences
22
- v-if="props.isPreference"
23
- v-model:security="security"
24
- v-model:new-view-local="newViewLocal"
25
- v-model:time-format="timeFormat"
26
- :new-view="props.newView"
27
- :selected-language-type="props.selectedLanguageType"
28
- :selected-language="props.selectedLanguage"
29
- :project="props.project"
30
- :remote-console="props.remoteConsole"
31
- :vm-cluster="props.vmCluster"
32
- :security-loader="props.securityLoader"
33
- :recovery="props.recovery"
34
- @hide="emits('hide-preference')"
35
- @reset="emits('reset-preference')"
36
- @update-language="emits('update-language', $event)"
37
- @update-is-browser="emits('update-is-browser', $event)"
38
- @update-remote-console="emits('update-remote-console', $event)"
39
- @update-vm-clusters="emits('update-vm-clusters', $event)"
40
- @security-confirm="emits('security-confirm', $event)"
41
- @submit="emits('submit-preferences')"
42
- />
43
- </Teleport>
44
- </template>
45
-
46
- <script setup lang="ts">
47
- import type { UI_I_Dropdown } from '~/node_modules/bfg-uikit/components/ui/dropdown/models/interfaces'
48
- import type { UI_T_LangValue, UI_T_Project } from '~/lib/models/types'
49
- import type { UI_T_TimeValue } from '~/components/common/layout/theHeader/userMenu/modals/preferences/timeFormat/lib/models/types'
50
- import type { UI_I_Recovery } from '~/components/common/layout/theHeader/userMenu/modals/preferences/security/lib/models/interfaces'
51
-
52
- const security = defineModel<boolean>('security')
53
- const newViewLocal = defineModel<boolean>('newViewLocal')
54
- const timeFormat = defineModel<UI_T_TimeValue>('timeFormat')
55
-
56
- const props = defineProps<{
57
- hostname: string
58
- project: UI_T_Project
59
- isPreference: boolean
60
- newView: boolean
61
- selectedLanguageType: UI_T_LangValue
62
- selectedLanguage: UI_I_Dropdown | string
63
- remoteConsole: string
64
- vmCluster: boolean
65
- securityLoader: boolean // для Сферы
66
- recovery: UI_I_Recovery | null // для Сферы
67
- }>()
68
- const emits = defineEmits<{
69
- (event: 'show-preference'): void
70
- (event: 'reset-preference'): void
71
- (event: 'hide-preference'): void
72
- (event: 'change-theme-mode'): void
73
- (event: 'update-language', value: UI_I_Dropdown): void
74
- (event: 'update-is-browser', value: string): void
75
- (event: 'update-remote-console', value: string): void
76
- (event: 'update-vm-clusters', value: boolean): void
77
- (event: 'security-confirm', value: boolean): void
78
- (event: 'submit-preferences'): void
79
- }>()
80
-
81
- const { $store }: any = useNuxtApp()
82
-
83
- const isShowChangePasswordModal = ref<boolean>(false)
84
-
85
- const onLogout = async (): Promise<void> => {
86
- await $store.dispatch('auth/A_LOGOUT', null)
87
- }
88
-
89
- const onSelectDropdown = (value: string): void => {
90
- switch (value) {
91
- case 'changePassword':
92
- isShowChangePasswordModal.value = true
93
- break
94
- case 'preferences':
95
- emits('show-preference')
96
- break
97
- case 'themeMode':
98
- emits('change-theme-mode')
99
- break
100
- case 'logout':
101
- onLogout()
102
- break
103
- }
104
- }
105
- </script>
106
-
107
- <style scoped lang="scss"></style>
1
+ <template>
2
+ <common-layout-the-header-user-menu-user-menu-new
3
+ v-if="props.newView"
4
+ :hostname="props.hostname"
5
+ @select-dropdown="onSelectDropdown"
6
+ />
7
+ <common-layout-the-header-user-menu-user-menu-old
8
+ v-else
9
+ :hostname="props.hostname"
10
+ @select-dropdown="onSelectDropdown"
11
+ />
12
+
13
+ <Teleport to="body">
14
+ <common-layout-the-header-user-menu-modals-change-password
15
+ v-if="isShowChangePasswordModal"
16
+ v-model="isShowChangePasswordModal"
17
+ :hostname="props.hostname"
18
+ :project="props.project"
19
+ />
20
+
21
+ <common-layout-the-header-user-menu-modals-preferences
22
+ v-if="props.isPreference"
23
+ v-model:security="security"
24
+ :time-format="props.timeFormat"
25
+ :new-view="props.newView"
26
+ :new-view-local="props.newViewLocal"
27
+ :selected-language-type="props.selectedLanguageType"
28
+ :selected-language="props.selectedLanguage"
29
+ :project="props.project"
30
+ :remote-console="props.remoteConsole"
31
+ :vm-cluster="props.vmCluster"
32
+ :security-loader="props.securityLoader"
33
+ :recovery="props.recovery"
34
+ @hide="emits('hide-preference')"
35
+ @reset="emits('reset-preference')"
36
+ @update-time-format="emits('update-time-format', $event)"
37
+ @update-language="emits('update-language', $event)"
38
+ @update-is-browser="emits('update-is-browser', $event)"
39
+ @update-is-new-view="emits('update-is-new-view', $event)"
40
+ @update-remote-console="emits('update-remote-console', $event)"
41
+ @update-vm-clusters="emits('update-vm-clusters', $event)"
42
+ @security-confirm="emits('security-confirm', $event)"
43
+ @submit="emits('submit-preferences')"
44
+ />
45
+ </Teleport>
46
+ </template>
47
+
48
+ <script setup lang="ts">
49
+ import type { UI_I_Dropdown } from '~/node_modules/bfg-uikit/components/ui/dropdown/models/interfaces'
50
+ import type { UI_T_LangValue, UI_T_Project } from '~/lib/models/types'
51
+ import type { UI_T_TimeValue } from '~/components/common/layout/theHeader/userMenu/modals/preferences/timeFormat/lib/models/types'
52
+ import type {
53
+ UI_I_Recovery
54
+ } from "~/components/common/layout/theHeader/userMenu/modals/preferences/security/lib/models/interfaces";
55
+
56
+ const security = defineModel<boolean>('security')
57
+
58
+ const props = defineProps<{
59
+ hostname: string
60
+ project: UI_T_Project
61
+ isPreference: boolean
62
+ newView: boolean
63
+ newViewLocal: boolean
64
+ timeFormat: UI_T_TimeValue
65
+ selectedLanguageType: UI_T_LangValue
66
+ selectedLanguage: UI_I_Dropdown | string
67
+ remoteConsole: string
68
+ vmCluster: boolean
69
+ securityLoader: boolean // для Сферы
70
+ recovery: UI_I_Recovery | null // для Сферы
71
+ }>()
72
+ const emits = defineEmits<{
73
+ (event: 'show-preference'): void
74
+ (event: 'reset-preference'): void
75
+ (event: 'hide-preference'): void
76
+ (event: 'change-theme-mode'): void
77
+ (event: 'update-time-format', value: UI_T_TimeValue): void
78
+ (event: 'update-language', value: UI_I_Dropdown): void
79
+ (event: 'update-is-browser', value: string): void
80
+ (event: 'update-is-new-view', value: boolean): void
81
+ (event: 'update-remote-console', value: string): void
82
+ (event: 'update-vm-clusters', value: boolean): void
83
+ (event: 'security-confirm', value: boolean): void
84
+ (event: 'submit-preferences'): void
85
+ }>()
86
+
87
+ const { $store }: any = useNuxtApp()
88
+
89
+ const isShowChangePasswordModal = ref<boolean>(false)
90
+
91
+ const onLogout = async (): Promise<void> => {
92
+ await $store.dispatch('auth/A_LOGOUT', null)
93
+ }
94
+
95
+ const onSelectDropdown = (value: string): void => {
96
+ switch (value) {
97
+ case 'changePassword':
98
+ isShowChangePasswordModal.value = true
99
+ break
100
+ case 'preferences':
101
+ emits('show-preference')
102
+ break
103
+ case 'themeMode':
104
+ emits('change-theme-mode')
105
+ break
106
+ case 'logout':
107
+ onLogout()
108
+ break
109
+ }
110
+ }
111
+ </script>
112
+
113
+ <style scoped lang="scss"></style>