bfg-common 1.5.710 → 1.5.711

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 (105) 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 +1 -2
  7. package/assets/localization/local_en.json +1 -2
  8. package/assets/localization/local_hy.json +1 -2
  9. package/assets/localization/local_kk.json +1 -2
  10. package/assets/localization/local_ru.json +1 -2
  11. package/assets/localization/local_zh.json +1 -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 +183 -191
  24. package/components/common/layout/theHeader/TheHeaderNew.vue +5 -11
  25. package/components/common/layout/theHeader/TheHeaderOld.vue +5 -11
  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 +107 -113
  29. package/components/common/layout/theHeader/userMenu/modals/preferences/Preferences.vue +78 -86
  30. package/components/common/layout/theHeader/userMenu/modals/preferences/PreferencesNew.vue +111 -115
  31. package/components/common/layout/theHeader/userMenu/modals/preferences/PreferencesOld.vue +4 -8
  32. package/components/common/layout/theHeader/userMenu/modals/preferences/changeLanguage/ChangeLanguage.vue +114 -108
  33. package/components/common/layout/theHeader/userMenu/modals/preferences/changeLanguage/New.vue +65 -88
  34. package/components/common/layout/theHeader/userMenu/modals/preferences/changeLanguage/Old.vue +66 -89
  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 +41 -54
  37. package/components/common/layout/theHeader/userMenu/modals/preferences/view/View.vue +33 -46
  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/readyToComplete/ReadyToComplete.vue +17 -17
  53. package/components/common/select/radio/RadioGroup.vue +137 -137
  54. package/components/common/selectLanguage/SelectLanguage.vue +200 -200
  55. package/components/common/spiceConsole/Drawer.vue +420 -420
  56. package/components/common/spiceConsole/SpiceConsole.vue +184 -184
  57. package/components/common/spiceConsole/lib/models/interfaces.ts +5 -5
  58. package/components/common/tools/Actions.vue +207 -207
  59. package/components/common/treeView/TreeView.vue +52 -52
  60. package/components/common/vm/actions/clone/lib/config/steps.ts +295 -295
  61. package/components/common/vm/actions/clone/new/New.vue +438 -438
  62. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/shares/lib/config/options.ts +28 -28
  63. package/components/common/vm/actions/common/customizeHardware/virtualHardware/memory/Memory.vue +283 -283
  64. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/order/Order.vue +156 -156
  65. package/components/common/vm/actions/common/select/compatibility/Old.vue +107 -107
  66. package/components/common/vm/actions/common/select/createType/lib/models/interfaces.ts +5 -5
  67. package/components/common/vm/actions/common/select/options/New.vue +264 -264
  68. package/components/common/vm/actions/common/select/options/Options.vue +58 -58
  69. package/components/common/vm/actions/common/select/storage/Old.vue +125 -125
  70. package/components/common/vm/actions/common/select/storage/new/New.vue +311 -311
  71. package/components/common/vm/actions/common/select/storage/new/lib/models/interfaces.ts +5 -5
  72. package/components/common/vm/actions/common/select/storage/new/lib/utils/utils.ts +21 -21
  73. package/components/common/vm/actions/common/select/template/old/Old.vue +50 -50
  74. package/components/common/vm/actions/editSettings/new/Skeleton.vue +88 -88
  75. package/components/common/wizards/common/compatibility/Compatibility.vue +35 -35
  76. package/components/common/wizards/common/steps/computeResource/New.vue +93 -93
  77. package/components/common/wizards/common/steps/name/Name.vue +178 -178
  78. package/components/common/wizards/common/steps/name/New.vue +221 -221
  79. package/components/common/wizards/common/steps/name/Old.vue +121 -121
  80. package/components/common/wizards/common/steps/name/lib/models/interfaces.ts +4 -4
  81. package/components/common/wizards/common/steps/name/location/New.vue +40 -40
  82. package/components/common/wizards/datastore/add/Add.vue +228 -228
  83. package/components/common/wizards/datastore/add/lib/utils.ts +85 -85
  84. package/components/common/wizards/datastore/add/steps/typeMode/lib/config/typeOptions.ts +43 -43
  85. package/composables/useAppVersion.ts +21 -21
  86. package/composables/useLocal.ts +6 -6
  87. package/composables/useLocalCommon.ts +39 -39
  88. package/package.json +1 -1
  89. package/plugins/console.ts +21 -21
  90. package/plugins/mouse.ts +21 -21
  91. package/plugins/panelStates.ts +70 -70
  92. package/plugins/text.ts +59 -59
  93. package/public/spice-console/application/clientgui.js +854 -854
  94. package/public/spice-console/application/packetfactory.js +211 -211
  95. package/public/spice-console/application/virtualmouse.js +147 -147
  96. package/public/spice-console/lib/images/bitmap.js +203 -203
  97. package/public/spice-console/network/spicechannel.js +440 -440
  98. package/public/spice-console/process/cursorprocess.js +128 -128
  99. package/public/spice-console/process/inputprocess.js +227 -227
  100. package/public/spice-console/process/mainprocess.js +212 -212
  101. package/public/spice-console/run.js +210 -210
  102. package/store/main/mutations.ts +7 -7
  103. package/store/main/state.ts +7 -7
  104. package/store/tasks/mappers/recentTasks.ts +123 -123
  105. 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,113 +1,107 @@
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>
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>