bfg-common 1.5.757 → 1.5.760

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 (124) 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 +10 -5
  7. package/assets/localization/local_en.json +10 -5
  8. package/assets/localization/local_hy.json +10 -5
  9. package/assets/localization/local_kk.json +10 -5
  10. package/assets/localization/local_ru.json +14 -9
  11. package/assets/localization/local_zh.json +9 -4
  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/DataGridPagination.vue +97 -97
  16. package/components/atoms/table/dataGrid/lib/config/settingsTable.ts +94 -94
  17. package/components/atoms/table/dataGrid/lib/utils/export.ts +16 -16
  18. package/components/common/backup/storage/actions/add/lib/utils.ts +51 -51
  19. package/components/common/browse/blocks/contents/filesNew/Skeleton.vue +18 -18
  20. package/components/common/browse/blocks/lib/models/types.ts +1 -1
  21. package/components/common/browse/lib/models/interfaces.ts +5 -5
  22. package/components/common/diagramMain/network/Contents.vue +497 -497
  23. package/components/common/layout/console/Console.vue +70 -70
  24. package/components/common/layout/theHeader/New.vue +2 -0
  25. package/components/common/layout/theHeader/Old.vue +2 -0
  26. package/components/common/layout/theHeader/TheHeader.vue +2 -0
  27. package/components/common/layout/theHeader/modals/reconnect/New.vue +1 -1
  28. package/components/common/layout/theHeader/modals/reconnect/Reconnect.vue +3 -1
  29. package/components/common/layout/theHeader/userMenu/UserMenu.vue +2 -0
  30. package/components/common/layout/theHeader/userMenu/modals/preferences/New.vue +2 -0
  31. package/components/common/layout/theHeader/userMenu/modals/preferences/Old.vue +2 -0
  32. package/components/common/layout/theHeader/userMenu/modals/preferences/Preferences.vue +2 -0
  33. package/components/common/layout/theHeader/userMenu/modals/preferences/lib/models/types.ts +7 -7
  34. package/components/common/layout/theHeader/userMenu/modals/preferences/view/New.vue +64 -47
  35. package/components/common/layout/theHeader/userMenu/modals/preferences/view/Old.vue +19 -0
  36. package/components/common/layout/theHeader/userMenu/modals/preferences/view/View.vue +3 -0
  37. package/components/common/pages/backups/DetailView.vue +52 -52
  38. package/components/common/pages/backups/lib/models/interfaces.ts +36 -36
  39. package/components/common/pages/backups/modals/Modals.vue +243 -243
  40. package/components/common/pages/backups/modals/createBackup/New.vue +22 -9
  41. package/components/common/pages/backups/modals/createBackup/configuration/ConfigurationNew.vue +17 -3
  42. package/components/common/pages/backups/modals/createBackup/configuration/maxBandwidth/lib/config/options.ts +6 -6
  43. package/components/common/pages/backups/modals/createBackup/datastores/tableView/new/lib/config/table.ts +8 -8
  44. package/components/common/pages/backups/modals/createBackup/disks/tableView/new/TableView.vue +1 -1
  45. package/components/common/pages/backups/modals/createBackup/disks/tableView/new/lib/config/table.ts +7 -7
  46. package/components/common/pages/backups/modals/createBackup/general/GeneralNew.vue +1 -1
  47. package/components/common/pages/backups/modals/createBackup/lib/config/readyToCompleteOptions.ts +5 -5
  48. package/components/common/pages/backups/modals/createBackup/lib/config/steps.ts +1 -1
  49. package/components/common/pages/backups/modals/createBackup/lib/config/strategyOptions.ts +11 -2
  50. package/components/common/pages/backups/modals/createBackup/lib/validation/validations.ts +6 -6
  51. package/components/common/pages/backups/modals/lib/config/restore.ts +116 -116
  52. package/components/common/pages/backups/modals/lib/models/interfaces.ts +187 -187
  53. package/components/common/pages/backups/modals/restore/Restore.vue +302 -302
  54. package/components/common/pages/backups/modals/restore/disks/Disks.vue +50 -50
  55. package/components/common/pages/backups/modals/restore/lib/config/readyToCompleteOptions.ts +94 -94
  56. package/components/common/pages/backups/modals/restore/lib/config/steps.ts +130 -130
  57. package/components/common/pages/backups/modals/restore/name/lib/models/interfaces.ts +6 -6
  58. package/components/common/pages/backups/modals/restore/types/New.vue +95 -95
  59. package/components/common/pages/backups/modals/restore/types/Old.vue +62 -62
  60. package/components/common/pages/backups/modals/restore/types/Types.vue +31 -31
  61. package/components/common/pages/home/lib/models/interfaces.ts +48 -48
  62. package/components/common/pages/home/widgets/hosts/Hosts.vue +27 -27
  63. package/components/common/pages/home/widgets/hosts/lib/config/items.ts +23 -23
  64. package/components/common/pages/home/widgets/vms/VmsOld.vue +35 -35
  65. package/components/common/pages/home/widgets/vms/lib/config/items.ts +19 -19
  66. package/components/common/pages/scheduledTasks/lib/utils/utils.ts +84 -84
  67. package/components/common/pages/tasks/Tasks.vue +125 -125
  68. package/components/common/pages/tasks/table/Table.vue +373 -373
  69. package/components/common/pages/tasks/table/lib/config/config.ts +279 -279
  70. package/components/common/pages/tasks/table/lib/models/interfaces.ts +9 -9
  71. package/components/common/readyToComplete/ReadyToComplete.vue +17 -17
  72. package/components/common/select/radio/RadioGroup.vue +137 -137
  73. package/components/common/spiceConsole/Drawer.vue +420 -420
  74. package/components/common/spiceConsole/SpiceConsole.vue +184 -184
  75. package/components/common/spiceConsole/lib/models/interfaces.ts +5 -5
  76. package/components/common/tools/Actions.vue +207 -207
  77. package/components/common/treeView/TreeView.vue +52 -52
  78. package/components/common/vm/actions/clone/lib/config/steps.ts +295 -295
  79. package/components/common/vm/actions/clone/new/New.vue +438 -438
  80. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/shares/lib/config/options.ts +28 -28
  81. package/components/common/vm/actions/common/customizeHardware/virtualHardware/memory/Memory.vue +283 -283
  82. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/order/Order.vue +156 -156
  83. package/components/common/vm/actions/common/select/compatibility/Old.vue +107 -107
  84. package/components/common/vm/actions/common/select/createType/lib/models/interfaces.ts +5 -5
  85. package/components/common/vm/actions/common/select/options/New.vue +264 -264
  86. package/components/common/vm/actions/common/select/options/Options.vue +58 -58
  87. package/components/common/vm/actions/common/select/storage/Old.vue +125 -125
  88. package/components/common/vm/actions/common/select/storage/new/lib/models/interfaces.ts +5 -5
  89. package/components/common/vm/actions/common/select/storage/new/lib/utils/utils.ts +21 -21
  90. package/components/common/vm/actions/common/select/template/old/Old.vue +50 -50
  91. package/components/common/vm/actions/editSettings/new/Skeleton.vue +88 -88
  92. package/components/common/wizards/common/compatibility/Compatibility.vue +35 -35
  93. package/components/common/wizards/common/steps/name/Name.vue +178 -178
  94. package/components/common/wizards/common/steps/name/New.vue +221 -221
  95. package/components/common/wizards/common/steps/name/Old.vue +121 -121
  96. package/components/common/wizards/common/steps/name/lib/models/interfaces.ts +4 -4
  97. package/components/common/wizards/common/steps/name/location/New.vue +40 -40
  98. package/components/common/wizards/datastore/add/Add.vue +227 -227
  99. package/components/common/wizards/datastore/add/lib/utils.ts +85 -85
  100. package/components/common/wizards/datastore/add/steps/typeMode/lib/config/typeOptions.ts +43 -43
  101. package/composables/useAppVersion.ts +21 -21
  102. package/composables/useBrowse.ts +24 -24
  103. package/composables/useLocal.ts +6 -6
  104. package/composables/useLocalCommon.ts +39 -39
  105. package/lib/models/types.ts +59 -59
  106. package/package.json +1 -1
  107. package/plugins/console.ts +21 -21
  108. package/plugins/mouse.ts +21 -21
  109. package/plugins/panelStates.ts +70 -70
  110. package/plugins/text.ts +59 -59
  111. package/plugins/time.ts +58 -58
  112. package/public/spice-console/application/clientgui.js +854 -854
  113. package/public/spice-console/application/packetfactory.js +211 -211
  114. package/public/spice-console/application/virtualmouse.js +147 -147
  115. package/public/spice-console/lib/images/bitmap.js +203 -203
  116. package/public/spice-console/network/spicechannel.js +440 -440
  117. package/public/spice-console/process/cursorprocess.js +128 -128
  118. package/public/spice-console/process/inputprocess.js +227 -227
  119. package/public/spice-console/process/mainprocess.js +212 -212
  120. package/public/spice-console/run.js +210 -210
  121. package/store/main/mutations.ts +7 -7
  122. package/store/main/state.ts +7 -7
  123. package/store/tasks/mappers/recentTasks.ts +123 -123
  124. package/store/tasks/mutations.ts +82 -82
@@ -1,85 +1,85 @@
1
- import Wizard from '~/node_modules/bfg-uikit/components/ui/wizard/lib/utils/utils'
2
- import type { API_UI_I_Error } from '~/lib/models/store/interfaces'
3
- import type { UI_T_Project } from '~/lib/models/types'
4
- import { UI_E_Kind } from '~/lib/models/enums'
5
-
6
- export const checkValidityName = async ({
7
- name,
8
- wizard,
9
- project,
10
- sendMessage,
11
- datacenterId,
12
- }: {
13
- name: string
14
- wizard: Wizard
15
- project: UI_T_Project
16
- sendMessage: (message: string) => void
17
- datacenterId?: string
18
- }): Promise<void> => {
19
- wizard.setLoader(true)
20
- const url = buildValidationUrl(name, project, datacenterId)
21
-
22
- const { error } = await useMyFetch<null, API_UI_I_Error>(url, {
23
- method: 'GET',
24
- })
25
-
26
- wizard.setLoader(false)
27
-
28
- if (error.value && error.value.data.error_code !== 0) {
29
- const existError = error.value.data?.error_message || error.value.data
30
- sendMessage(existError)
31
- return
32
- }
33
- sendMessage('')
34
- }
35
-
36
- const buildValidationUrl = (
37
- name: string,
38
- project: UI_T_Project,
39
- datacenterId?: string
40
- ): string => {
41
- if (project === 'procurator') {
42
- const params = new URLSearchParams({ name })
43
- return `/ui/ds/validate?${params.toString()}`
44
- }
45
-
46
- const params = new URLSearchParams()
47
- params.set('name', name)
48
- params.set('kind', String(UI_E_Kind.STORAGE_VALIDATION_NAME))
49
- if (datacenterId) params.set('datacenter', datacenterId)
50
-
51
- return `/ui/object/validate_name_datacenter?${params.toString()}`
52
- }
53
-
54
- export const validateNameAndGenerateDataId = (
55
- name: string,
56
- _errorMessage: string,
57
- defaultDataId?: string
58
- ): string => {
59
- let baseDataId = defaultDataId || 'storage-name-alert-error'
60
-
61
- const patterns = [
62
- {
63
- regex: /^[a-zA-Z0-9_\-\.]+$/,
64
- error_message:
65
- /invalid name, must only contain letters, numbers, and '_', '-' '.' symbols/,
66
- suffix: '-invalid-name-symbols',
67
- },
68
- {
69
- regex: /^.{3,64}$/,
70
- error_message:
71
- /invalid name length, must be between: \d+ and \d+ characters/,
72
- suffix: '-invalid-name-length',
73
- },
74
- ]
75
-
76
- // Проверка error_message на соответствие шаблонам
77
-
78
- for (const pattern of patterns) {
79
- if (!pattern.regex.test(name)) {
80
- return `${baseDataId}${pattern.suffix}`
81
- }
82
- }
83
-
84
- return baseDataId
85
- }
1
+ import Wizard from '~/node_modules/bfg-uikit/components/ui/wizard/lib/utils/utils'
2
+ import type { API_UI_I_Error } from '~/lib/models/store/interfaces'
3
+ import type { UI_T_Project } from '~/lib/models/types'
4
+ import { UI_E_Kind } from '~/lib/models/enums'
5
+
6
+ export const checkValidityName = async ({
7
+ name,
8
+ wizard,
9
+ project,
10
+ sendMessage,
11
+ datacenterId,
12
+ }: {
13
+ name: string
14
+ wizard: Wizard
15
+ project: UI_T_Project
16
+ sendMessage: (message: string) => void
17
+ datacenterId?: string
18
+ }): Promise<void> => {
19
+ wizard.setLoader(true)
20
+ const url = buildValidationUrl(name, project, datacenterId)
21
+
22
+ const { error } = await useMyFetch<null, API_UI_I_Error>(url, {
23
+ method: 'GET',
24
+ })
25
+
26
+ wizard.setLoader(false)
27
+
28
+ if (error.value && error.value.data.error_code !== 0) {
29
+ const existError = error.value.data?.error_message || error.value.data
30
+ sendMessage(existError)
31
+ return
32
+ }
33
+ sendMessage('')
34
+ }
35
+
36
+ const buildValidationUrl = (
37
+ name: string,
38
+ project: UI_T_Project,
39
+ datacenterId?: string
40
+ ): string => {
41
+ if (project === 'procurator') {
42
+ const params = new URLSearchParams({ name })
43
+ return `/ui/ds/validate?${params.toString()}`
44
+ }
45
+
46
+ const params = new URLSearchParams()
47
+ params.set('name', name)
48
+ params.set('kind', String(UI_E_Kind.STORAGE_VALIDATION_NAME))
49
+ if (datacenterId) params.set('datacenter', datacenterId)
50
+
51
+ return `/ui/object/validate_name_datacenter?${params.toString()}`
52
+ }
53
+
54
+ export const validateNameAndGenerateDataId = (
55
+ name: string,
56
+ _errorMessage: string,
57
+ defaultDataId?: string
58
+ ): string => {
59
+ let baseDataId = defaultDataId || 'storage-name-alert-error'
60
+
61
+ const patterns = [
62
+ {
63
+ regex: /^[a-zA-Z0-9_\-\.]+$/,
64
+ error_message:
65
+ /invalid name, must only contain letters, numbers, and '_', '-' '.' symbols/,
66
+ suffix: '-invalid-name-symbols',
67
+ },
68
+ {
69
+ regex: /^.{3,64}$/,
70
+ error_message:
71
+ /invalid name length, must be between: \d+ and \d+ characters/,
72
+ suffix: '-invalid-name-length',
73
+ },
74
+ ]
75
+
76
+ // Проверка error_message на соответствие шаблонам
77
+
78
+ for (const pattern of patterns) {
79
+ if (!pattern.regex.test(name)) {
80
+ return `${baseDataId}${pattern.suffix}`
81
+ }
82
+ }
83
+
84
+ return baseDataId
85
+ }
@@ -1,43 +1,43 @@
1
- import type { UI_I_Localization } from '~/lib/models/interfaces'
2
- import type { UI_T_Project } from '~/lib/models/types'
3
- import type { UI_I_RadioOption } from '~/components/common/select/radio/lib/models/interfaces'
4
-
5
- export const datastoreTypesFunc = (
6
- localization: UI_I_Localization,
7
- _project?: UI_T_Project
8
- ): UI_I_RadioOption[] => {
9
- return [
10
- {
11
- id: 'datastore-type-shared-storm',
12
- label: localization.common.stormSharedStorage,
13
- value: 2,
14
- disabled: false,
15
- description: localization.common.sharedStormDesc,
16
- isTooltip: false,
17
- tooltipContent: localization.common.stormSharedStorageHelpDesc,
18
- testId: 'datastore-type-shared-storm',
19
- },
20
- {
21
- id: 'datastore-type-nfs',
22
- label: localization.common.nfs,
23
- value: 4,
24
- disabled: false,
25
- description: localization.common.nfsDesc,
26
- isTooltip: false,
27
- tooltipContent: localization.common.nfsHelpDesc,
28
- testId: 'datastore-type-nfs',
29
- },
30
- ]
31
-
32
- // if (project === 'procurator') {
33
- // types.unshift({
34
- // label: localization.common.localStorage,
35
- // value: 1,
36
- // disabled: false,
37
- // description: localization.common.localDesc,
38
- // isTooltip: false,
39
- // tooltipContent: localization.common.localStorageHelpDesc,
40
- // testId: 'datastore-type-local',
41
- // })
42
- // }
43
- }
1
+ import type { UI_I_Localization } from '~/lib/models/interfaces'
2
+ import type { UI_T_Project } from '~/lib/models/types'
3
+ import type { UI_I_RadioOption } from '~/components/common/select/radio/lib/models/interfaces'
4
+
5
+ export const datastoreTypesFunc = (
6
+ localization: UI_I_Localization,
7
+ _project?: UI_T_Project
8
+ ): UI_I_RadioOption[] => {
9
+ return [
10
+ {
11
+ id: 'datastore-type-shared-storm',
12
+ label: localization.common.stormSharedStorage,
13
+ value: 2,
14
+ disabled: false,
15
+ description: localization.common.sharedStormDesc,
16
+ isTooltip: false,
17
+ tooltipContent: localization.common.stormSharedStorageHelpDesc,
18
+ testId: 'datastore-type-shared-storm',
19
+ },
20
+ {
21
+ id: 'datastore-type-nfs',
22
+ label: localization.common.nfs,
23
+ value: 4,
24
+ disabled: false,
25
+ description: localization.common.nfsDesc,
26
+ isTooltip: false,
27
+ tooltipContent: localization.common.nfsHelpDesc,
28
+ testId: 'datastore-type-nfs',
29
+ },
30
+ ]
31
+
32
+ // if (project === 'procurator') {
33
+ // types.unshift({
34
+ // label: localization.common.localStorage,
35
+ // value: 1,
36
+ // disabled: false,
37
+ // description: localization.common.localDesc,
38
+ // isTooltip: false,
39
+ // tooltipContent: localization.common.localStorageHelpDesc,
40
+ // testId: 'datastore-type-local',
41
+ // })
42
+ // }
43
+ }
@@ -1,21 +1,21 @@
1
- import type { UI_I_UseAppVersionReturnType } from '~/lib/models/composables/useAppVersion/interfaces'
2
-
3
- export function useAppVersion(): UI_I_UseAppVersionReturnType {
4
- const config = useRuntimeConfig()
5
- const version = config.public.APP_VERSION as string
6
-
7
- // const regexHasDot = /\./
8
- // const regexHasDotAndB = /\.\d*b$/
9
- // const regexHasDotAndD = /\..*d/
10
-
11
- // const isBeta = regexHasDotAndB.test(version)
12
- // const isDev =
13
- // regexHasDotAndD.test(version) ||
14
- // (!regexHasDot.test(version) && version.length < 8)
15
-
16
- return {
17
- version,
18
- // isBeta,
19
- // isDev,
20
- }
21
- }
1
+ import type { UI_I_UseAppVersionReturnType } from '~/lib/models/composables/useAppVersion/interfaces'
2
+
3
+ export function useAppVersion(): UI_I_UseAppVersionReturnType {
4
+ const config = useRuntimeConfig()
5
+ const version = config.public.APP_VERSION as string
6
+
7
+ // const regexHasDot = /\./
8
+ // const regexHasDotAndB = /\.\d*b$/
9
+ // const regexHasDotAndD = /\..*d/
10
+
11
+ // const isBeta = regexHasDotAndB.test(version)
12
+ // const isDev =
13
+ // regexHasDotAndD.test(version) ||
14
+ // (!regexHasDot.test(version) && version.length < 8)
15
+
16
+ return {
17
+ version,
18
+ // isBeta,
19
+ // isDev,
20
+ }
21
+ }
@@ -1,24 +1,24 @@
1
- import type { UI_I_Browse } from '~/lib/models/composables/useBrowse/interfaces'
2
-
3
- export const useBrowse = (): UI_I_Browse => {
4
- const browseInfo: UI_I_Browse = {
5
- version: '',
6
- type: '',
7
- }
8
- const userAgent = navigator.userAgent
9
- if (userAgent.match(/edg/i)) {
10
- browseInfo.version = userAgent.match(/Edg\/(\d+)/)?.[1] || ''
11
- browseInfo.type = 'edg'
12
- } else if (userAgent.match(/firefox|fxios/i)) {
13
- browseInfo.version = userAgent.match(/Firefox\/(\d+)/)?.[1] || ''
14
- browseInfo.type = 'firefox'
15
- } else if (userAgent.match(/chrome|chromium|crios/i)) {
16
- browseInfo.version = userAgent.match(/Chrome\/(\d+)/)?.[1] || ''
17
- browseInfo.type = 'chrome'
18
- } else if (userAgent.match(/safari/i)) {
19
- browseInfo.version = userAgent.match(/Safari\/(\d+)/)?.[1] || ''
20
- browseInfo.type = 'safari'
21
- }
22
-
23
- return browseInfo
24
- }
1
+ import type { UI_I_Browse } from '~/lib/models/composables/useBrowse/interfaces'
2
+
3
+ export const useBrowse = (): UI_I_Browse => {
4
+ const browseInfo: UI_I_Browse = {
5
+ version: '',
6
+ type: '',
7
+ }
8
+ const userAgent = navigator.userAgent
9
+ if (userAgent.match(/edg/i)) {
10
+ browseInfo.version = userAgent.match(/Edg\/(\d+)/)?.[1] || ''
11
+ browseInfo.type = 'edg'
12
+ } else if (userAgent.match(/firefox|fxios/i)) {
13
+ browseInfo.version = userAgent.match(/Firefox\/(\d+)/)?.[1] || ''
14
+ browseInfo.type = 'firefox'
15
+ } else if (userAgent.match(/chrome|chromium|crios/i)) {
16
+ browseInfo.version = userAgent.match(/Chrome\/(\d+)/)?.[1] || ''
17
+ browseInfo.type = 'chrome'
18
+ } else if (userAgent.match(/safari/i)) {
19
+ browseInfo.version = userAgent.match(/Safari\/(\d+)/)?.[1] || ''
20
+ browseInfo.type = 'safari'
21
+ }
22
+
23
+ return browseInfo
24
+ }
@@ -1,6 +1,6 @@
1
- import type { UI_I_Localization } from '~/lib/models/interfaces'
2
- import { useLocalCommon } from '~/composables/useLocalCommon'
3
-
4
- export const useLocal = (): UI_I_Localization => {
5
- return useLocalCommon()
6
- }
1
+ import type { UI_I_Localization } from '~/lib/models/interfaces'
2
+ import { useLocalCommon } from '~/composables/useLocalCommon'
3
+
4
+ export const useLocal = (): UI_I_Localization => {
5
+ return useLocalCommon()
6
+ }
@@ -1,39 +1,39 @@
1
- import type { UI_I_Localization } from '~/lib/models/interfaces'
2
- import localAr from '~/assets/scss/clarity/local_ar.json'
3
- import localRu from '~/assets/localization/local_ru.json'
4
- import localEn from '~/assets/localization/local_en.json'
5
- import localHy from '~/assets/localization/local_hy.json'
6
- import localZh from '~/assets/localization/local_zh.json'
7
- import localKk from '~/assets/localization/local_kk.json'
8
- import localBe from '~/assets/localization/local_be.json'
9
- import { productNameLocal } from '~/lib/utils/localizationMapper'
10
-
11
- const rawLocals: Record<string, any> = {
12
- ar: localAr,
13
- ru: localRu,
14
- en: localEn,
15
- hy: localHy,
16
- zh: localZh,
17
- kk: localKk,
18
- be: localBe,
19
- }
20
-
21
- // Кешируем уже обработанные локали
22
- const processedCache: Record<string, UI_I_Localization | undefined> = {}
23
-
24
- export const useLocalCommon = (): UI_I_Localization => {
25
- const config = useRuntimeConfig()
26
- let code = String(config?.public?.LOCALIZATION_CODE || 'ru').toLowerCase()
27
-
28
- if (code === 'ar' && !useLocalStorage('rtl')) code = 'ru'
29
-
30
- if (typeof document !== 'undefined') document.documentElement.lang = code
31
-
32
- // если в кеше нет — создаём и сохраняем
33
- if (!processedCache[code]) {
34
- const raw = rawLocals[code] || rawLocals['ru']
35
- processedCache[code] = productNameLocal(raw)
36
- }
37
-
38
- return processedCache[code] as UI_I_Localization
39
- }
1
+ import type { UI_I_Localization } from '~/lib/models/interfaces'
2
+ import localAr from '~/assets/scss/clarity/local_ar.json'
3
+ import localRu from '~/assets/localization/local_ru.json'
4
+ import localEn from '~/assets/localization/local_en.json'
5
+ import localHy from '~/assets/localization/local_hy.json'
6
+ import localZh from '~/assets/localization/local_zh.json'
7
+ import localKk from '~/assets/localization/local_kk.json'
8
+ import localBe from '~/assets/localization/local_be.json'
9
+ import { productNameLocal } from '~/lib/utils/localizationMapper'
10
+
11
+ const rawLocals: Record<string, any> = {
12
+ ar: localAr,
13
+ ru: localRu,
14
+ en: localEn,
15
+ hy: localHy,
16
+ zh: localZh,
17
+ kk: localKk,
18
+ be: localBe,
19
+ }
20
+
21
+ // Кешируем уже обработанные локали
22
+ const processedCache: Record<string, UI_I_Localization | undefined> = {}
23
+
24
+ export const useLocalCommon = (): UI_I_Localization => {
25
+ const config = useRuntimeConfig()
26
+ let code = String(config?.public?.LOCALIZATION_CODE || 'ru').toLowerCase()
27
+
28
+ if (code === 'ar' && !useLocalStorage('rtl')) code = 'ru'
29
+
30
+ if (typeof document !== 'undefined') document.documentElement.lang = code
31
+
32
+ // если в кеше нет — создаём и сохраняем
33
+ if (!processedCache[code]) {
34
+ const raw = rawLocals[code] || rawLocals['ru']
35
+ processedCache[code] = productNameLocal(raw)
36
+ }
37
+
38
+ return processedCache[code] as UI_I_Localization
39
+ }
@@ -1,59 +1,59 @@
1
- export type UI_T_Project = 'sphere' | 'procurator'
2
-
3
- export type UI_T_Lang = 'ru' | 'en' | 'be' | 'hy' | 'kk' | 'zh'
4
-
5
- export type UI_T_NavNodes =
6
- // для Сферы
7
- | 'h'
8
- // для Прокуратора и Сферы
9
- | 'v'
10
- | 's'
11
- | 'n'
12
- | 'b'
13
-
14
- export type UI_T_Binary = 'KB' | 'MB' | 'GB' | 'TB' | 'PB' | 'EB' | 'ZB' | 'YB'
15
- export type UI_T_BinaryLower =
16
- | 'kb'
17
- | 'mb'
18
- | 'gb'
19
- | 'tb'
20
- | 'pb'
21
- | 'eb'
22
- | 'zb'
23
- | 'yb'
24
-
25
- export type UI_T_LangValue =
26
- | 'en_US'
27
- | 'ru_RU'
28
- | 'hy_AM'
29
- | 'zh_CHS'
30
- | 'kk_KZ'
31
- | 'be_BY'
32
- | 'BROWSER'
33
-
34
- export type UI_T_ProcuratorTypeNodes =
35
- | 'host'
36
- | 'vm'
37
- | 'datastore'
38
- | 'network'
39
- | 'folder'
40
- | 'file'
41
-
42
- export type UI_T_SphereTypeNodes =
43
- | UI_T_ProcuratorTypeNodes
44
- | 'zone'
45
- | 'datacenter'
46
- | 'cluster'
47
- | 'zone_dir'
48
- | 'dc_hc_dir'
49
- | 'dc_net_dir'
50
- | 'dc_ds_dir'
51
- | 'dc_vmt_dir'
52
- | 'dc_backup_dir'
53
- | 'IdentityProviders'
54
- | 'networks' // может быть это не нужный тип так как есть 'network' в UI_T_ProcuratorTypeNodes
55
- | 'backup_storage'
56
- | 'bucket'
57
- | 'vmtemplate' // TODO думаю нужно добавить в UI_T_ProcuratorTypeNodes
58
-
59
- export type UI_T_AllTypeNodes = UI_T_SphereTypeNodes
1
+ export type UI_T_Project = 'sphere' | 'procurator'
2
+
3
+ export type UI_T_Lang = 'ru' | 'en' | 'be' | 'hy' | 'kk' | 'zh'
4
+
5
+ export type UI_T_NavNodes =
6
+ // для Сферы
7
+ | 'h'
8
+ // для Прокуратора и Сферы
9
+ | 'v'
10
+ | 's'
11
+ | 'n'
12
+ | 'b'
13
+
14
+ export type UI_T_Binary = 'KB' | 'MB' | 'GB' | 'TB' | 'PB' | 'EB' | 'ZB' | 'YB'
15
+ export type UI_T_BinaryLower =
16
+ | 'kb'
17
+ | 'mb'
18
+ | 'gb'
19
+ | 'tb'
20
+ | 'pb'
21
+ | 'eb'
22
+ | 'zb'
23
+ | 'yb'
24
+
25
+ export type UI_T_LangValue =
26
+ | 'en_US'
27
+ | 'ru_RU'
28
+ | 'hy_AM'
29
+ | 'zh_CHS'
30
+ | 'kk_KZ'
31
+ | 'be_BY'
32
+ | 'BROWSER'
33
+
34
+ export type UI_T_ProcuratorTypeNodes =
35
+ | 'host'
36
+ | 'vm'
37
+ | 'datastore'
38
+ | 'network'
39
+ | 'folder'
40
+ | 'file'
41
+
42
+ export type UI_T_SphereTypeNodes =
43
+ | UI_T_ProcuratorTypeNodes
44
+ | 'zone'
45
+ | 'datacenter'
46
+ | 'cluster'
47
+ | 'zone_dir'
48
+ | 'dc_hc_dir'
49
+ | 'dc_net_dir'
50
+ | 'dc_ds_dir'
51
+ | 'dc_vmt_dir'
52
+ | 'dc_backup_dir'
53
+ | 'IdentityProviders'
54
+ | 'networks' // может быть это не нужный тип так как есть 'network' в UI_T_ProcuratorTypeNodes
55
+ | 'backup_storage'
56
+ | 'bucket'
57
+ | 'vmtemplate' // TODO думаю нужно добавить в UI_T_ProcuratorTypeNodes
58
+
59
+ export type UI_T_AllTypeNodes = UI_T_SphereTypeNodes
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "bfg-common",
3
3
  "private": false,
4
- "version": "1.5.757",
4
+ "version": "1.5.760",
5
5
  "scripts": {
6
6
  "build": "nuxt build",
7
7
  "dev": "nuxt dev --port=3002",
@@ -1,21 +1,21 @@
1
- import { defineNuxtPlugin } from '#app'
2
- import type { UI_T_CODEC } from '~/components/common/spiceConsole/lib/models/types'
3
-
4
- export default defineNuxtPlugin(() => {
5
- const console = function (): any {
6
- const self: any = {
7
- codec: ref<UI_T_CODEC>(1),
8
- }
9
-
10
- self.changeCodec = (codec: UI_T_CODEC): void => {
11
- self.codec.value = codec
12
- }
13
- return self
14
- }.call({})
15
-
16
- return {
17
- provide: {
18
- console,
19
- },
20
- }
21
- })
1
+ import { defineNuxtPlugin } from '#app'
2
+ import type { UI_T_CODEC } from '~/components/common/spiceConsole/lib/models/types'
3
+
4
+ export default defineNuxtPlugin(() => {
5
+ const console = function (): any {
6
+ const self: any = {
7
+ codec: ref<UI_T_CODEC>(1),
8
+ }
9
+
10
+ self.changeCodec = (codec: UI_T_CODEC): void => {
11
+ self.codec.value = codec
12
+ }
13
+ return self
14
+ }.call({})
15
+
16
+ return {
17
+ provide: {
18
+ console,
19
+ },
20
+ }
21
+ })
package/plugins/mouse.ts CHANGED
@@ -1,21 +1,21 @@
1
- import { defineNuxtPlugin } from '#app'
2
- import type { UI_T_MouseMode } from '~/components/common/spiceConsole/lib/models/types'
3
-
4
- export default defineNuxtPlugin(() => {
5
- const mouse = function (): any {
6
- const self: any = {
7
- mode: ref<UI_T_MouseMode>(1),
8
- }
9
-
10
- self.changeMode = (mode: UI_T_MouseMode): void => {
11
- self.mode.value = mode
12
- }
13
- return self
14
- }.call({})
15
-
16
- return {
17
- provide: {
18
- mouse,
19
- },
20
- }
21
- })
1
+ import { defineNuxtPlugin } from '#app'
2
+ import type { UI_T_MouseMode } from '~/components/common/spiceConsole/lib/models/types'
3
+
4
+ export default defineNuxtPlugin(() => {
5
+ const mouse = function (): any {
6
+ const self: any = {
7
+ mode: ref<UI_T_MouseMode>(1),
8
+ }
9
+
10
+ self.changeMode = (mode: UI_T_MouseMode): void => {
11
+ self.mode.value = mode
12
+ }
13
+ return self
14
+ }.call({})
15
+
16
+ return {
17
+ provide: {
18
+ mouse,
19
+ },
20
+ }
21
+ })