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,114 +1,108 @@
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
+ <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,65 +1,88 @@
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
+ <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,66 +1,89 @@
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
+ <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,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,41 +1,54 @@
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>
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>