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,108 +1,114 @@
1
- <template>
2
- <component
3
- :is="currentComponent"
4
- :selected-language="selectedLanguageLocal"
5
- :description="description"
6
- :radio-options="radioOptions"
7
- :language-mode="languageMode"
8
- :locales="locales"
9
- @update-language="onSelectLang"
10
- @update-is-browser="onUpdateIsBrowser"
11
- />
12
- </template>
13
-
14
- <script setup lang="ts">
15
- import type { UI_I_Dropdown } from '~/node_modules/bfg-uikit/components/ui/dropdown/models/interfaces'
16
- import type { UI_T_LangValue } from '~/lib/models/types'
17
- import type { UI_T_SelectedRadio } from '~/components/common/layout/theHeader/userMenu/modals/preferences/changeLanguage/lib/models/types'
18
- import type { UI_I_Localization } from '~/lib/models/interfaces'
19
- import type { UI_I_RadioItemLang } from '~/components/common/layout/theHeader/userMenu/modals/preferences/changeLanguage/lib/models/interfaces'
20
- import { UI_E_DetectSelectedRadio } from '~/components/common/layout/theHeader/userMenu/modals/preferences/changeLanguage/lib/models/enums'
21
- import { locales } from '~/components/common/selectLanguage/lib/config/config'
22
- import { findInLocals } from '~/components/common/selectLanguage/lib/utils/utils'
23
- import { radioOptionsFunc } from '~/components/common/layout/theHeader/userMenu/modals/preferences/changeLanguage/lib/config/radioOptions'
24
- import { defineBrowserLangFunc } from '~/components/common/layout/theHeader/lib/utils/localization'
25
-
26
- const props = defineProps<{
27
- newView: boolean
28
- selectedType: UI_T_LangValue
29
- selectedLanguage: UI_I_Dropdown | UI_T_LangValue
30
- }>()
31
-
32
- const emits = defineEmits<{
33
- (event: 'update-language', value: UI_I_Dropdown): void
34
- (event: 'update-is-browser', value: string): void
35
- }>()
36
-
37
- const config = useRuntimeConfig()
38
- const localization = computed<UI_I_Localization>(() => useLocal())
39
-
40
- const currentComponent = computed(() =>
41
- props.newView
42
- ? defineAsyncComponent(() => import('./New.vue'))
43
- : defineAsyncComponent(() => import('./Old.vue'))
44
- )
45
-
46
- const description = computed<string>(() => {
47
- return localization.value.common.languageDesc.replaceAll(
48
- '{trademark}',
49
- String(config.public[`TRADEMARK_${useEnvLanguage()}`])
50
- )
51
- })
52
-
53
- const radioOptions = readonly<UI_I_RadioItemLang[]>(
54
- radioOptionsFunc(localization.value)
55
- )
56
-
57
- const languageMode = ref<UI_T_SelectedRadio>(
58
- UI_E_DetectSelectedRadio[props.selectedType]
59
- )
60
-
61
- const selectedLanguageLocal = ref<UI_I_Dropdown | UI_T_LangValue>(
62
- props.selectedLanguage
63
- )
64
-
65
- const setPreferenceLang = (language: string): void => {
66
- let currentLang = language
67
-
68
- language === 'BROWSER' &&
69
- (currentLang = findInLocals(defineBrowserLangFunc()))
70
-
71
- emits('update-language', currentLang)
72
- }
73
-
74
- const onSelectLang = (newValue: string): void => {
75
- selectedLanguageLocal.value && setPreferenceLang(newValue)
76
- }
77
-
78
- const onChange = (): void => {
79
- const lang =
80
- languageMode.value === 'LANG'
81
- ? selectedLanguageLocal.value
82
- : languageMode.value // 'BROWSER'
83
-
84
- lang && setPreferenceLang(lang)
85
- }
86
-
87
- const onUpdateIsBrowser = (value: string): void => {
88
- emits('update-is-browser', value)
89
- }
90
-
91
- watch(
92
- () => props.selectedLanguage,
93
- (newValue: UI_I_Dropdown) => {
94
- selectedLanguageLocal.value = newValue
95
- },
96
- { immediate: true }
97
- )
98
-
99
- watch(
100
- () => props.selectedType,
101
- (newValue: UI_T_LangValue) => {
102
- languageMode.value = UI_E_DetectSelectedRadio[newValue]
103
- onChange()
104
- newValue && onUpdateIsBrowser(newValue)
105
- },
106
- { immediate: true }
107
- )
108
- </script>
1
+ <template>
2
+ <component
3
+ :is="currentComponent"
4
+ v-model:language-mode="languageMode"
5
+ v-model:selected-language="selectedLanguageLocal"
6
+ :description="description"
7
+ :radio-options="radioOptions"
8
+ :locales="locales"
9
+ />
10
+ </template>
11
+
12
+ <script setup lang="ts">
13
+ import type { UI_I_Dropdown } from '~/node_modules/bfg-uikit/components/ui/dropdown/models/interfaces'
14
+ import type { UI_T_LangValue } from '~/lib/models/types'
15
+ import type { UI_T_SelectedRadio } from '~/components/common/layout/theHeader/userMenu/modals/preferences/changeLanguage/lib/models/types'
16
+ import type { UI_I_Localization } from '~/lib/models/interfaces'
17
+ import type { UI_I_RadioItemLang } from '~/components/common/layout/theHeader/userMenu/modals/preferences/changeLanguage/lib/models/interfaces'
18
+ import { UI_E_DetectSelectedRadio } from '~/components/common/layout/theHeader/userMenu/modals/preferences/changeLanguage/lib/models/enums'
19
+ import { locales } from '~/components/common/selectLanguage/lib/config/config'
20
+ import { findInLocals } from '~/components/common/selectLanguage/lib/utils/utils'
21
+ import { radioOptionsFunc } from '~/components/common/layout/theHeader/userMenu/modals/preferences/changeLanguage/lib/config/radioOptions'
22
+ import { defineBrowserLangFunc } from '~/components/common/layout/theHeader/lib/utils/localization'
23
+
24
+ const props = defineProps<{
25
+ newView: boolean
26
+ selectedType: UI_T_LangValue
27
+ selectedLanguage: UI_I_Dropdown | UI_T_LangValue
28
+ }>()
29
+
30
+ const emits = defineEmits<{
31
+ (event: 'update-language', value: UI_I_Dropdown): void
32
+ (event: 'update-is-browser', value: string): void
33
+ }>()
34
+
35
+ const config = useRuntimeConfig()
36
+ const localization = computed<UI_I_Localization>(() => useLocal())
37
+
38
+ const currentComponent = computed(() =>
39
+ props.newView
40
+ ? defineAsyncComponent(() => import('./New.vue'))
41
+ : defineAsyncComponent(() => import('./Old.vue'))
42
+ )
43
+
44
+ const description = computed<string>(() => {
45
+ return localization.value.common.languageDesc.replaceAll(
46
+ '{trademark}',
47
+ String(config.public[`TRADEMARK_${useEnvLanguage()}`])
48
+ )
49
+ })
50
+
51
+ const radioOptions = readonly<UI_I_RadioItemLang[]>(
52
+ radioOptionsFunc(localization.value)
53
+ )
54
+
55
+ const languageMode = ref<UI_T_SelectedRadio>(
56
+ UI_E_DetectSelectedRadio[props.selectedType]
57
+ )
58
+
59
+ const selectedLanguageLocal = ref<UI_I_Dropdown | UI_T_LangValue>(
60
+ props.selectedLanguage
61
+ )
62
+
63
+ const setPreferenceLang = (language: string): void => {
64
+ let currentLang = language
65
+
66
+ language === 'BROWSER' &&
67
+ (currentLang = findInLocals(defineBrowserLangFunc()))
68
+
69
+ emits('update-language', currentLang)
70
+ }
71
+
72
+ const onSelectLang = (newValue: string): void => {
73
+ selectedLanguageLocal.value && setPreferenceLang(newValue)
74
+ }
75
+
76
+ const onChange = (): void => {
77
+ const lang =
78
+ languageMode.value === 'LANG'
79
+ ? selectedLanguageLocal.value
80
+ : languageMode.value // 'BROWSER'
81
+
82
+ lang && setPreferenceLang(lang)
83
+ }
84
+
85
+ const onUpdateIsBrowser = (value: string): void => {
86
+ emits('update-is-browser', value)
87
+ }
88
+
89
+ watch(
90
+ () => props.selectedLanguage,
91
+ (newValue: UI_I_Dropdown) => {
92
+ selectedLanguageLocal.value = newValue
93
+ },
94
+ { immediate: true }
95
+ )
96
+
97
+ watch(
98
+ () => props.selectedType,
99
+ (newValue: UI_T_LangValue) => {
100
+ languageMode.value = UI_E_DetectSelectedRadio[newValue]
101
+ onChange()
102
+ newValue && onUpdateIsBrowser(newValue)
103
+ },
104
+ { immediate: true }
105
+ )
106
+
107
+ watch(languageMode, (newValue) => {
108
+ onUpdateIsBrowser(newValue)
109
+ })
110
+
111
+ watch(selectedLanguageLocal, (newValue) => {
112
+ onSelectLang(newValue)
113
+ })
114
+ </script>
@@ -1,88 +1,65 @@
1
- <template>
2
- <form id="change-language-form" @submit.prevent>
3
- <div class="flex">
4
- <ui-modal-icon>
5
- <ui-icon-icon3 name="language-new" width="20" height="20" />
6
- </ui-modal-icon>
7
-
8
- <div>
9
- <div class="form-first-title">
10
- {{ localization.common.language }}
11
- </div>
12
- <div class="form-second-title">
13
- {{ props.description }}
14
- </div>
15
-
16
- <div v-for="(item, key) in radioOptions" :key="key" class="radio flex">
17
- <ui-radio
18
- v-model="languageModeLocal"
19
- :test-id="item.testId"
20
- :label="item.label"
21
- :value="item.value"
22
- size="md"
23
- />
24
-
25
- <span v-if="item.selectLang" class="select-language">
26
- <common-select-language
27
- v-model="selectedLanguageLocal"
28
- :normalize-lang="props.locales"
29
- :disabled="languageModeLocal === 'BROWSER'"
30
- width="max-content"
31
- size="xs"
32
- />
33
- </span>
34
- </div>
35
- </div>
36
- </div>
37
- </form>
38
- </template>
39
-
40
- <script setup lang="ts">
41
- import type { UI_I_Dropdown } from '~/node_modules/bfg-uikit/components/ui/dropdown/models/interfaces'
42
- import type { UI_T_SelectedRadio } from '~/components/common/layout/theHeader/userMenu/modals/preferences/changeLanguage/lib/models/types'
43
- import type { UI_I_Localization } from '~/lib/models/interfaces'
44
- import type { UI_I_RadioItemLang } from '~/components/common/layout/theHeader/userMenu/modals/preferences/changeLanguage/lib/models/interfaces'
45
-
46
- const props = defineProps<{
47
- selectedLanguage: UI_I_Dropdown
48
- description: string
49
- radioOptions: UI_I_RadioItemLang[]
50
- languageMode: UI_T_SelectedRadio
51
- locales: UI_I_Dropdown[]
52
- }>()
53
-
54
- const emits = defineEmits<{
55
- (event: 'update-language', value: UI_I_Dropdown): void
56
- (event: 'update-is-browser', value: string): void
57
- }>()
58
-
59
- const localization = computed<UI_I_Localization>(() => useLocal())
60
-
61
- const selectedLanguageLocal = computed<UI_I_Dropdown>({
62
- get() {
63
- return props.selectedLanguage
64
- },
65
- set(newValue: UI_I_Dropdown) {
66
- emits('update-language', newValue)
67
- },
68
- })
69
-
70
- const languageModeLocal = computed<UI_T_SelectedRadio>({
71
- get() {
72
- return props.languageMode
73
- },
74
- set(newValue: UI_T_SelectedRadio) {
75
- emits('update-is-browser', newValue)
76
- },
77
- })
78
- </script>
79
-
80
- <style lang="scss" scoped>
81
- .radio:not(:last-child) {
82
- margin-bottom: 8px;
83
- }
84
-
85
- .select-language {
86
- margin-left: 8px;
87
- }
88
- </style>
1
+ <template>
2
+ <form id="change-language-form" @submit.prevent>
3
+ <div class="flex">
4
+ <ui-modal-icon>
5
+ <ui-icon-icon3 name="language-new" width="20" height="20" />
6
+ </ui-modal-icon>
7
+
8
+ <div>
9
+ <div class="form-first-title">
10
+ {{ localization.common.language }}
11
+ </div>
12
+ <div class="form-second-title">
13
+ {{ props.description }}
14
+ </div>
15
+
16
+ <div v-for="(item, key) in radioOptions" :key="key" class="radio flex">
17
+ <ui-radio
18
+ v-model="languageMode"
19
+ :test-id="item.testId"
20
+ :label="item.label"
21
+ :value="item.value"
22
+ size="md"
23
+ />
24
+
25
+ <span v-if="item.selectLang" class="select-language">
26
+ <common-select-language
27
+ v-model="selectedLanguage"
28
+ :normalize-lang="props.locales"
29
+ :disabled="languageMode === 'BROWSER'"
30
+ width="max-content"
31
+ size="xs"
32
+ />
33
+ </span>
34
+ </div>
35
+ </div>
36
+ </div>
37
+ </form>
38
+ </template>
39
+
40
+ <script setup lang="ts">
41
+ import type { UI_I_Dropdown } from '~/node_modules/bfg-uikit/components/ui/dropdown/models/interfaces'
42
+ import type { UI_T_SelectedRadio } from '~/components/common/layout/theHeader/userMenu/modals/preferences/changeLanguage/lib/models/types'
43
+ import type { UI_I_Localization } from '~/lib/models/interfaces'
44
+ import type { UI_I_RadioItemLang } from '~/components/common/layout/theHeader/userMenu/modals/preferences/changeLanguage/lib/models/interfaces'
45
+
46
+ const languageMode = defineModel<UI_T_SelectedRadio>('languageMode')
47
+ const selectedLanguage = defineModel<UI_I_Dropdown>('selectedLanguage')
48
+ const props = defineProps<{
49
+ description: string
50
+ radioOptions: UI_I_RadioItemLang[]
51
+ locales: UI_I_Dropdown[]
52
+ }>()
53
+
54
+ const localization = computed<UI_I_Localization>(() => useLocal())
55
+ </script>
56
+
57
+ <style lang="scss" scoped>
58
+ .radio:not(:last-child) {
59
+ margin-bottom: 8px;
60
+ }
61
+
62
+ .select-language {
63
+ margin-left: 8px;
64
+ }
65
+ </style>
@@ -1,89 +1,66 @@
1
- <template>
2
- <form id="change-language-form" class="compact change-default-console">
3
- <div class="description">
4
- {{ props.description }}
5
- </div>
6
-
7
- <div v-for="(item, key) in props.radioOptions" :key="key" class="radio">
8
- <input
9
- :id="item.label"
10
- v-model="languageModeLocal"
11
- :data-id="item.testId"
12
- :value="item.value"
13
- type="radio"
14
- />
15
- <label :for="item.label"> {{ item.label }} </label>
16
-
17
- <span v-if="item.selectLang" class="select select-lang">
18
- <select
19
- id="language-select"
20
- v-model="selectedLanguageLocal"
21
- :disabled="languageModeLocal !== item.value"
22
- data-id="language-select"
23
- >
24
- <option
25
- v-for="(item2, key2) in props.locales"
26
- :key="key2"
27
- :value="item2.value"
28
- >
29
- {{ item2.text }}
30
- </option>
31
- </select>
32
- </span>
33
- </div>
34
- </form>
35
- </template>
36
-
37
- <script setup lang="ts">
38
- import type { UI_I_Dropdown } from '~/node_modules/bfg-uikit/components/ui/dropdown/models/interfaces'
39
- import type { UI_T_LangValue } from '~/lib/models/types'
40
- import type { UI_T_SelectedRadio } from '~/components/common/layout/theHeader/userMenu/modals/preferences/changeLanguage/lib/models/types'
41
- import type { UI_I_RadioItemLang } from '~/components/common/layout/theHeader/userMenu/modals/preferences/changeLanguage/lib/models/interfaces'
42
-
43
- const props = defineProps<{
44
- selectedLanguage: UI_T_LangValue
45
- description: string
46
- radioOptions: UI_I_RadioItemLang[]
47
- languageMode: UI_T_SelectedRadio
48
- locales: UI_I_Dropdown[]
49
- }>()
50
-
51
- const emits = defineEmits<{
52
- (event: 'update-language', value: UI_T_LangValue): void
53
- (event: 'update-is-browser', value: string): void
54
- }>()
55
-
56
- const selectedLanguageLocal = computed<UI_T_LangValue>({
57
- get() {
58
- return props.selectedLanguage
59
- },
60
- set(newValue: UI_T_LangValue) {
61
- emits('update-language', newValue)
62
- },
63
- })
64
-
65
- const languageModeLocal = computed<UI_T_SelectedRadio>({
66
- get() {
67
- return props.languageMode
68
- },
69
- set(newValue: UI_T_SelectedRadio) {
70
- emits('update-is-browser', newValue)
71
- },
72
- })
73
- </script>
74
-
75
- <style lang="scss" scoped>
76
- .radio {
77
- margin-bottom: 5px;
78
- &:nth-child(2) {
79
- margin-top: 10px;
80
- }
81
- }
82
- .select-lang {
83
- margin-left: 3px;
84
- height: 24px;
85
- & > select {
86
- height: 100%;
87
- }
88
- }
89
- </style>
1
+ <template>
2
+ <form id="change-language-form" class="compact change-default-console">
3
+ <div class="description">
4
+ {{ props.description }}
5
+ </div>
6
+
7
+ <div v-for="(item, key) in props.radioOptions" :key="key" class="radio">
8
+ <input
9
+ :id="item.label"
10
+ v-model="languageMode"
11
+ :data-id="item.testId"
12
+ :value="item.value"
13
+ type="radio"
14
+ />
15
+ <label :for="item.label"> {{ item.label }} </label>
16
+
17
+ <span v-if="item.selectLang" class="select select-lang">
18
+ <select
19
+ id="language-select"
20
+ v-model="selectedLanguage"
21
+ :disabled="languageMode !== item.value"
22
+ data-id="language-select"
23
+ >
24
+ <option
25
+ v-for="(item2, key2) in props.locales"
26
+ :key="key2"
27
+ :value="item2.value"
28
+ >
29
+ {{ item2.text }}
30
+ </option>
31
+ </select>
32
+ </span>
33
+ </div>
34
+ </form>
35
+ </template>
36
+
37
+ <script setup lang="ts">
38
+ import type { UI_I_Dropdown } from '~/node_modules/bfg-uikit/components/ui/dropdown/models/interfaces'
39
+ import type { UI_T_LangValue } from '~/lib/models/types'
40
+ import type { UI_T_SelectedRadio } from '~/components/common/layout/theHeader/userMenu/modals/preferences/changeLanguage/lib/models/types'
41
+ import type { UI_I_RadioItemLang } from '~/components/common/layout/theHeader/userMenu/modals/preferences/changeLanguage/lib/models/interfaces'
42
+
43
+ const languageMode = defineModel<UI_T_SelectedRadio>('languageMode')
44
+ const selectedLanguage = defineModel<UI_T_LangValue>('selectedLanguage')
45
+ const props = defineProps<{
46
+ description: string
47
+ radioOptions: UI_I_RadioItemLang[]
48
+ locales: UI_I_Dropdown[]
49
+ }>()
50
+ </script>
51
+
52
+ <style lang="scss" scoped>
53
+ .radio {
54
+ margin-bottom: 5px;
55
+ &:nth-child(2) {
56
+ margin-top: 10px;
57
+ }
58
+ }
59
+ .select-lang {
60
+ margin-left: 3px;
61
+ height: 24px;
62
+ & > select {
63
+ height: 100%;
64
+ }
65
+ }
66
+ </style>
@@ -1,7 +1,7 @@
1
- export type UI_T_UserPreferenceTab =
2
- | 'time-tab'
3
- | 'language-tab'
4
- | 'console-tab'
5
- | 'inventory-tab'
6
- | 'security-tab'
7
- | 'view-tab'
1
+ export type UI_T_UserPreferenceTab =
2
+ | 'time-tab'
3
+ | 'language-tab'
4
+ | 'console-tab'
5
+ | 'inventory-tab'
6
+ | 'security-tab'
7
+ | 'view-tab'
@@ -1,54 +1,41 @@
1
- <template>
2
- <component
3
- :is="currentComponent"
4
- v-model="timeItem"
5
- :description="description"
6
- :format-options="formatOptions"
7
- />
8
- </template>
9
-
10
- <script setup lang="ts">
11
- import type { UI_I_Localization } from '~/lib/models/interfaces'
12
- import type { UI_I_RadioItem } from '~/components/common/layout/theHeader/userMenu/lib/models/interfaces'
13
- import type { UI_T_TimeValue } from '~/components/common/layout/theHeader/userMenu/modals/preferences/timeFormat/lib/models/types'
14
- import { formatOptionsFunc } from '~/components/common/layout/theHeader/userMenu/modals/preferences/timeFormat/lib/config/formatOptions'
15
-
16
- const props = defineProps<{
17
- timeFormat: UI_T_TimeValue
18
- newView: boolean
19
- }>()
20
-
21
- const emits = defineEmits<{
22
- (event: 'update-time-format', value: UI_T_TimeValue): void
23
- }>()
24
-
25
- const currentComponent = computed(() =>
26
- props.newView
27
- ? defineAsyncComponent(() => import('./New.vue'))
28
- : defineAsyncComponent(() => import('./Old.vue'))
29
- )
30
-
31
- const localization = computed<UI_I_Localization>(() => useLocal())
32
-
33
- const config = useRuntimeConfig()
34
-
35
- const description = computed<string>(() =>
36
- localization.value.common.timeFormatDesc.replaceAll(
37
- '{trademark}',
38
- String(config.public[`TRADEMARK_${useEnvLanguage()}`])
39
- )
40
- )
41
-
42
- const formatOptions = readonly<UI_I_RadioItem[]>(
43
- formatOptionsFunc(localization.value)
44
- )
45
-
46
- const timeItem = computed<UI_T_TimeValue>({
47
- get() {
48
- return props.timeFormat
49
- },
50
- set(newValue: UI_T_TimeValue) {
51
- emits('update-time-format', newValue)
52
- },
53
- })
54
- </script>
1
+ <template>
2
+ <component
3
+ :is="currentComponent"
4
+ v-model="timeFormat"
5
+ :description="description"
6
+ :format-options="formatOptions"
7
+ />
8
+ </template>
9
+
10
+ <script setup lang="ts">
11
+ import type { UI_I_Localization } from '~/lib/models/interfaces'
12
+ import type { UI_I_RadioItem } from '~/components/common/layout/theHeader/userMenu/lib/models/interfaces'
13
+ import type { UI_T_TimeValue } from '~/components/common/layout/theHeader/userMenu/modals/preferences/timeFormat/lib/models/types'
14
+ import { formatOptionsFunc } from '~/components/common/layout/theHeader/userMenu/modals/preferences/timeFormat/lib/config/formatOptions'
15
+
16
+ const timeFormat = defineModel<UI_T_TimeValue>('timeFormat')
17
+ const props = defineProps<{
18
+ newView: boolean
19
+ }>()
20
+
21
+ const currentComponent = computed(() =>
22
+ props.newView
23
+ ? defineAsyncComponent(() => import('./New.vue'))
24
+ : defineAsyncComponent(() => import('./Old.vue'))
25
+ )
26
+
27
+ const localization = computed<UI_I_Localization>(() => useLocal())
28
+
29
+ const config = useRuntimeConfig()
30
+
31
+ const description = computed<string>(() =>
32
+ localization.value.common.timeFormatDesc.replaceAll(
33
+ '{trademark}',
34
+ String(config.public[`TRADEMARK_${useEnvLanguage()}`])
35
+ )
36
+ )
37
+
38
+ const formatOptions = readonly<UI_I_RadioItem[]>(
39
+ formatOptionsFunc(localization.value)
40
+ )
41
+ </script>