bfg-common 1.5.653 → 1.5.654
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.
- package/CODE_STYLE.md +109 -109
- package/assets/img/icons/icons-sprite-dark-3.svg +227 -227
- package/assets/img/icons/icons-sprite-dark-5.svg +488 -488
- package/assets/img/icons/icons-sprite-light-3.svg +227 -227
- package/assets/img/icons/icons-sprite-light-5.svg +488 -488
- package/assets/localization/local_be.json +4 -0
- package/assets/localization/local_en.json +4 -0
- package/assets/localization/local_hy.json +4 -0
- package/assets/localization/local_kk.json +4 -0
- package/assets/localization/local_ru.json +4 -0
- package/assets/localization/local_zh.json +4 -0
- package/components/atoms/TheIcon3.vue +50 -50
- package/components/atoms/collapse/CollapseNav.vue +170 -170
- package/components/atoms/perPage/PerPage.vue +58 -58
- package/components/atoms/table/dataGrid/DataGrid.vue +1718 -1718
- package/components/atoms/table/dataGrid/DataGridPagination.vue +97 -97
- package/components/atoms/table/dataGrid/lib/config/settingsTable.ts +94 -94
- package/components/atoms/table/dataGrid/lib/utils/export.ts +16 -16
- package/components/common/backup/storage/actions/add/lib/utils.ts +51 -51
- package/components/common/browse/blocks/contents/filesNew/Skeleton.vue +18 -18
- package/components/common/browse/blocks/lib/models/types.ts +1 -1
- package/components/common/browse/lib/models/interfaces.ts +5 -5
- package/components/common/diagramMain/network/Contents.vue +497 -497
- package/components/common/layout/theHeader/TheHeaderNew.vue +310 -310
- package/components/common/layout/theHeader/TheHeaderOld.vue +257 -257
- package/components/common/layout/theHeader/helpMenu/About.vue +79 -79
- package/components/common/layout/theHeader/helpMenu/aboutOld/AboutOld.vue +79 -79
- package/components/common/layout/theHeader/userMenu/modals/changePassword/ChangePassword.vue +99 -99
- package/components/common/layout/theHeader/userMenu/modals/changePassword/New.vue +193 -193
- package/components/common/layout/theHeader/userMenu/modals/preferences/lib/models/types.ts +7 -7
- package/components/common/layout/theHeader/userMenu/modals/preferences/security/Old.vue +120 -118
- package/components/common/layout/theHeader/userMenu/modals/preferences/security/Security.vue +23 -23
- package/components/common/pages/backups/DetailView.vue +52 -52
- package/components/common/pages/backups/lib/models/interfaces.ts +36 -36
- package/components/common/pages/backups/modals/Modals.vue +243 -243
- package/components/common/pages/backups/modals/createBackup/configuration/maxBandwidth/lib/config/options.ts +6 -6
- package/components/common/pages/backups/modals/createBackup/lib/config/readyToCompleteOptions.ts +69 -69
- package/components/common/pages/backups/modals/lib/config/restore.ts +115 -115
- package/components/common/pages/backups/modals/lib/models/interfaces.ts +186 -186
- package/components/common/pages/backups/modals/restore/name/lib/models/interfaces.ts +6 -6
- package/components/common/pages/home/lib/models/interfaces.ts +48 -48
- package/components/common/pages/home/widgets/hosts/Hosts.vue +27 -27
- package/components/common/pages/home/widgets/hosts/lib/config/items.ts +23 -23
- package/components/common/pages/home/widgets/vms/VmsOld.vue +35 -35
- package/components/common/pages/home/widgets/vms/lib/config/items.ts +19 -19
- package/components/common/pages/scheduledTasks/lib/utils/utils.ts +84 -84
- package/components/common/readyToComplete/ReadyToComplete.vue +17 -17
- package/components/common/select/radio/RadioGroup.vue +137 -137
- package/components/common/spiceConsole/Drawer.vue +420 -420
- package/components/common/spiceConsole/SpiceConsole.vue +184 -184
- package/components/common/spiceConsole/lib/models/interfaces.ts +5 -5
- package/components/common/tools/Actions.vue +207 -207
- package/components/common/treeView/TreeView.vue +52 -52
- package/components/common/vm/actions/clone/lib/config/steps.ts +295 -295
- package/components/common/vm/actions/clone/new/New.vue +438 -438
- package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/shares/lib/config/options.ts +28 -28
- package/components/common/vm/actions/common/customizeHardware/virtualHardware/memory/Memory.vue +283 -283
- package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/order/Order.vue +156 -156
- package/components/common/vm/actions/common/select/compatibility/Old.vue +107 -107
- package/components/common/vm/actions/common/select/createType/lib/models/interfaces.ts +5 -5
- package/components/common/vm/actions/common/select/options/New.vue +263 -263
- package/components/common/vm/actions/common/select/options/Old.vue +109 -109
- package/components/common/vm/actions/common/select/options/Options.vue +58 -58
- package/components/common/vm/actions/common/select/storage/Old.vue +125 -125
- package/components/common/vm/actions/common/select/storage/new/New.vue +311 -311
- package/components/common/vm/actions/common/select/storage/new/lib/models/interfaces.ts +5 -5
- package/components/common/vm/actions/common/select/storage/new/lib/utils/utils.ts +21 -21
- package/components/common/vm/actions/common/select/template/old/Old.vue +50 -50
- package/components/common/vm/actions/editSettings/new/Skeleton.vue +88 -88
- package/components/common/wizards/common/compatibility/Compatibility.vue +35 -35
- package/components/common/wizards/common/compatibility/New.vue +99 -99
- package/components/common/wizards/common/compatibility/Old.vue +53 -53
- package/components/common/wizards/common/steps/computeResource/New.vue +93 -93
- package/components/common/wizards/common/steps/name/Name.vue +178 -178
- package/components/common/wizards/common/steps/name/New.vue +221 -221
- package/components/common/wizards/common/steps/name/Old.vue +121 -121
- package/components/common/wizards/common/steps/name/lib/models/interfaces.ts +4 -4
- package/components/common/wizards/common/steps/name/location/New.vue +40 -40
- package/components/common/wizards/datastore/add/Add.vue +228 -228
- package/components/common/wizards/datastore/add/lib/utils.ts +85 -85
- package/components/common/wizards/datastore/add/steps/typeMode/lib/config/typeOptions.ts +43 -43
- package/components/common/wizards/network/add/Add.vue +870 -870
- package/composables/useAppVersion.ts +21 -21
- package/composables/useLocal.ts +6 -6
- package/composables/useLocalCommon.ts +39 -39
- package/lib/models/interfaces.ts +1 -0
- package/package.json +1 -1
- package/plugins/console.ts +21 -21
- package/plugins/mouse.ts +21 -21
- package/plugins/panelStates.ts +70 -70
- package/plugins/text.ts +59 -59
- package/plugins/time.ts +58 -58
- package/public/spice-console/application/clientgui.js +854 -854
- package/public/spice-console/application/packetfactory.js +211 -211
- package/public/spice-console/application/virtualmouse.js +147 -147
- package/public/spice-console/lib/images/bitmap.js +203 -203
- package/public/spice-console/network/spicechannel.js +440 -440
- package/public/spice-console/process/cursorprocess.js +128 -128
- package/public/spice-console/process/inputprocess.js +227 -227
- package/public/spice-console/process/mainprocess.js +212 -212
- package/public/spice-console/run.js +210 -210
- package/store/main/mutations.ts +7 -7
- package/store/main/state.ts +7 -7
- package/store/tasks/actions.ts +165 -165
- package/store/tasks/mappers/recentTasks.ts +123 -123
- package/store/tasks/mutations.ts +82 -82
|
@@ -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
|
+
}
|
package/composables/useLocal.ts
CHANGED
|
@@ -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
|
+
}
|
package/lib/models/interfaces.ts
CHANGED
|
@@ -58,6 +58,7 @@ export interface UI_I_Localization {
|
|
|
58
58
|
sphereAvailability: UI_I_ArbitraryObject<string>
|
|
59
59
|
registerVm: UI_I_ArbitraryObject<string>
|
|
60
60
|
files: UI_I_ArbitraryObject<string>
|
|
61
|
+
myPreferences: UI_I_ArbitraryObject<string>
|
|
61
62
|
}
|
|
62
63
|
export interface UI_I_SendTaskParams {
|
|
63
64
|
method: string
|
package/package.json
CHANGED
package/plugins/console.ts
CHANGED
|
@@ -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
|
+
})
|
package/plugins/panelStates.ts
CHANGED
|
@@ -1,70 +1,70 @@
|
|
|
1
|
-
import { defineNuxtPlugin } from '#app'
|
|
2
|
-
import type { UI_I_PanelOptions } from '~/lib/models/plugins/panelStates/interfaces'
|
|
3
|
-
|
|
4
|
-
export default defineNuxtPlugin(() => {
|
|
5
|
-
const panelStates = function (): any {
|
|
6
|
-
const self: any = {}
|
|
7
|
-
let options: UI_I_PanelOptions = {
|
|
8
|
-
leftPanelWidth: 20,
|
|
9
|
-
topPanelHeight: 80,
|
|
10
|
-
isBottomPanelCollapsed: false,
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
self.setLeftPanelWidth = function (width: number): void {
|
|
14
|
-
options.leftPanelWidth = width
|
|
15
|
-
|
|
16
|
-
self.setPanelStatesInStorage()
|
|
17
|
-
}
|
|
18
|
-
self.setTopPanelHeight = function (height: number): void {
|
|
19
|
-
options.topPanelHeight = height
|
|
20
|
-
|
|
21
|
-
self.setPanelStatesInStorage()
|
|
22
|
-
}
|
|
23
|
-
self.bottomPanelCollapse = function (collapse: boolean): void {
|
|
24
|
-
options.isBottomPanelCollapsed = collapse
|
|
25
|
-
|
|
26
|
-
self.setPanelStatesInStorage()
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
self.setPanelStatesInStorage = function (): void {
|
|
30
|
-
useLocalStorage('panelStates', options)
|
|
31
|
-
self.emitChanges()
|
|
32
|
-
}
|
|
33
|
-
self.getPanelStatesOfStorage = function (): UI_I_PanelOptions {
|
|
34
|
-
let panelStates = useLocalStorage('panelStates')
|
|
35
|
-
|
|
36
|
-
if (!panelStates) {
|
|
37
|
-
// const parent = document.getElementById('default-layout-outer')
|
|
38
|
-
const parent = document.body
|
|
39
|
-
const parentHeight = parent?.clientHeight || 0
|
|
40
|
-
const onePercent = parentHeight / 100
|
|
41
|
-
const defaultRecentTasksHeight = 250
|
|
42
|
-
|
|
43
|
-
options.topPanelHeight =
|
|
44
|
-
(parentHeight - defaultRecentTasksHeight - 1.5) / onePercent
|
|
45
|
-
|
|
46
|
-
panelStates = options
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
options = panelStates
|
|
50
|
-
|
|
51
|
-
return panelStates
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
self.cb = (): void => {}
|
|
55
|
-
self.on = function (cb: () => any | void): void {
|
|
56
|
-
self.cb = cb
|
|
57
|
-
}
|
|
58
|
-
self.emitChanges = function (): void {
|
|
59
|
-
self.cb(options)
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
return self
|
|
63
|
-
}.call({})
|
|
64
|
-
|
|
65
|
-
return {
|
|
66
|
-
provide: {
|
|
67
|
-
panelStates,
|
|
68
|
-
},
|
|
69
|
-
}
|
|
70
|
-
})
|
|
1
|
+
import { defineNuxtPlugin } from '#app'
|
|
2
|
+
import type { UI_I_PanelOptions } from '~/lib/models/plugins/panelStates/interfaces'
|
|
3
|
+
|
|
4
|
+
export default defineNuxtPlugin(() => {
|
|
5
|
+
const panelStates = function (): any {
|
|
6
|
+
const self: any = {}
|
|
7
|
+
let options: UI_I_PanelOptions = {
|
|
8
|
+
leftPanelWidth: 20,
|
|
9
|
+
topPanelHeight: 80,
|
|
10
|
+
isBottomPanelCollapsed: false,
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
self.setLeftPanelWidth = function (width: number): void {
|
|
14
|
+
options.leftPanelWidth = width
|
|
15
|
+
|
|
16
|
+
self.setPanelStatesInStorage()
|
|
17
|
+
}
|
|
18
|
+
self.setTopPanelHeight = function (height: number): void {
|
|
19
|
+
options.topPanelHeight = height
|
|
20
|
+
|
|
21
|
+
self.setPanelStatesInStorage()
|
|
22
|
+
}
|
|
23
|
+
self.bottomPanelCollapse = function (collapse: boolean): void {
|
|
24
|
+
options.isBottomPanelCollapsed = collapse
|
|
25
|
+
|
|
26
|
+
self.setPanelStatesInStorage()
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
self.setPanelStatesInStorage = function (): void {
|
|
30
|
+
useLocalStorage('panelStates', options)
|
|
31
|
+
self.emitChanges()
|
|
32
|
+
}
|
|
33
|
+
self.getPanelStatesOfStorage = function (): UI_I_PanelOptions {
|
|
34
|
+
let panelStates = useLocalStorage('panelStates')
|
|
35
|
+
|
|
36
|
+
if (!panelStates) {
|
|
37
|
+
// const parent = document.getElementById('default-layout-outer')
|
|
38
|
+
const parent = document.body
|
|
39
|
+
const parentHeight = parent?.clientHeight || 0
|
|
40
|
+
const onePercent = parentHeight / 100
|
|
41
|
+
const defaultRecentTasksHeight = 250
|
|
42
|
+
|
|
43
|
+
options.topPanelHeight =
|
|
44
|
+
(parentHeight - defaultRecentTasksHeight - 1.5) / onePercent
|
|
45
|
+
|
|
46
|
+
panelStates = options
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
options = panelStates
|
|
50
|
+
|
|
51
|
+
return panelStates
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
self.cb = (): void => {}
|
|
55
|
+
self.on = function (cb: () => any | void): void {
|
|
56
|
+
self.cb = cb
|
|
57
|
+
}
|
|
58
|
+
self.emitChanges = function (): void {
|
|
59
|
+
self.cb(options)
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
return self
|
|
63
|
+
}.call({})
|
|
64
|
+
|
|
65
|
+
return {
|
|
66
|
+
provide: {
|
|
67
|
+
panelStates,
|
|
68
|
+
},
|
|
69
|
+
}
|
|
70
|
+
})
|
package/plugins/text.ts
CHANGED
|
@@ -1,59 +1,59 @@
|
|
|
1
|
-
import type { UI_I_Localization } from '~/lib/models/interfaces'
|
|
2
|
-
|
|
3
|
-
export default defineNuxtPlugin(() => {
|
|
4
|
-
const text = function () {
|
|
5
|
-
const self: any = {}
|
|
6
|
-
self.toCapitalize = function (str: string): string {
|
|
7
|
-
return str.charAt(0).toUpperCase() + str.slice(1).toLowerCase()
|
|
8
|
-
}
|
|
9
|
-
self.toLowerCaseFirstLetter = function (str: string): string {
|
|
10
|
-
// TODO не используется
|
|
11
|
-
return str.charAt(0).toLowerCase() + str.slice(1)
|
|
12
|
-
}
|
|
13
|
-
self.toCapitalizeEveryWord = function (str: string): string {
|
|
14
|
-
return str
|
|
15
|
-
.split(' ')
|
|
16
|
-
.map((word) => self.toCapitalize(word))
|
|
17
|
-
.join(' ')
|
|
18
|
-
}
|
|
19
|
-
self.toCapitalizeByIndex = function (
|
|
20
|
-
str: string,
|
|
21
|
-
indexes: number[]
|
|
22
|
-
): string {
|
|
23
|
-
return str
|
|
24
|
-
.split(' ')
|
|
25
|
-
.map((word, index) =>
|
|
26
|
-
indexes.includes(index) ? self.toCapitalize(word) : word
|
|
27
|
-
)
|
|
28
|
-
.join(' ')
|
|
29
|
-
}
|
|
30
|
-
self.toLowerCaseByIndex = function (
|
|
31
|
-
str: string,
|
|
32
|
-
indexes: number[]
|
|
33
|
-
): string {
|
|
34
|
-
return str
|
|
35
|
-
.split(' ')
|
|
36
|
-
.map((word, index) =>
|
|
37
|
-
indexes.includes(index) ? self.toLowerCaseFirstLetter(word) : word
|
|
38
|
-
)
|
|
39
|
-
.join(' ')
|
|
40
|
-
}
|
|
41
|
-
self.replaceStringByLocalization = function (
|
|
42
|
-
str: string,
|
|
43
|
-
localization: UI_I_Localization
|
|
44
|
-
): string {
|
|
45
|
-
return str.replace(/\[\w+\]/g, (val) => {
|
|
46
|
-
const variable = val.replace(/\[|\]/g, '')
|
|
47
|
-
return localization.common[variable]
|
|
48
|
-
})
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
return self
|
|
52
|
-
}.call({})
|
|
53
|
-
|
|
54
|
-
return {
|
|
55
|
-
provide: {
|
|
56
|
-
text,
|
|
57
|
-
},
|
|
58
|
-
}
|
|
59
|
-
})
|
|
1
|
+
import type { UI_I_Localization } from '~/lib/models/interfaces'
|
|
2
|
+
|
|
3
|
+
export default defineNuxtPlugin(() => {
|
|
4
|
+
const text = function () {
|
|
5
|
+
const self: any = {}
|
|
6
|
+
self.toCapitalize = function (str: string): string {
|
|
7
|
+
return str.charAt(0).toUpperCase() + str.slice(1).toLowerCase()
|
|
8
|
+
}
|
|
9
|
+
self.toLowerCaseFirstLetter = function (str: string): string {
|
|
10
|
+
// TODO не используется
|
|
11
|
+
return str.charAt(0).toLowerCase() + str.slice(1)
|
|
12
|
+
}
|
|
13
|
+
self.toCapitalizeEveryWord = function (str: string): string {
|
|
14
|
+
return str
|
|
15
|
+
.split(' ')
|
|
16
|
+
.map((word) => self.toCapitalize(word))
|
|
17
|
+
.join(' ')
|
|
18
|
+
}
|
|
19
|
+
self.toCapitalizeByIndex = function (
|
|
20
|
+
str: string,
|
|
21
|
+
indexes: number[]
|
|
22
|
+
): string {
|
|
23
|
+
return str
|
|
24
|
+
.split(' ')
|
|
25
|
+
.map((word, index) =>
|
|
26
|
+
indexes.includes(index) ? self.toCapitalize(word) : word
|
|
27
|
+
)
|
|
28
|
+
.join(' ')
|
|
29
|
+
}
|
|
30
|
+
self.toLowerCaseByIndex = function (
|
|
31
|
+
str: string,
|
|
32
|
+
indexes: number[]
|
|
33
|
+
): string {
|
|
34
|
+
return str
|
|
35
|
+
.split(' ')
|
|
36
|
+
.map((word, index) =>
|
|
37
|
+
indexes.includes(index) ? self.toLowerCaseFirstLetter(word) : word
|
|
38
|
+
)
|
|
39
|
+
.join(' ')
|
|
40
|
+
}
|
|
41
|
+
self.replaceStringByLocalization = function (
|
|
42
|
+
str: string,
|
|
43
|
+
localization: UI_I_Localization
|
|
44
|
+
): string {
|
|
45
|
+
return str.replace(/\[\w+\]/g, (val) => {
|
|
46
|
+
const variable = val.replace(/\[|\]/g, '')
|
|
47
|
+
return localization.common[variable]
|
|
48
|
+
})
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
return self
|
|
52
|
+
}.call({})
|
|
53
|
+
|
|
54
|
+
return {
|
|
55
|
+
provide: {
|
|
56
|
+
text,
|
|
57
|
+
},
|
|
58
|
+
}
|
|
59
|
+
})
|
package/plugins/time.ts
CHANGED
|
@@ -1,58 +1,58 @@
|
|
|
1
|
-
import { defineNuxtPlugin } from '#app'
|
|
2
|
-
import type { UI_T_LangValue } from '~/lib/models/types'
|
|
3
|
-
export default defineNuxtPlugin(() => {
|
|
4
|
-
const time = function (): any {
|
|
5
|
-
const self: any = {}
|
|
6
|
-
self.millisecondsToHour = function (ms: number): number {
|
|
7
|
-
return ~~(ms / 1000 / 60 / 60 / 24)
|
|
8
|
-
}
|
|
9
|
-
self.formatTime = (
|
|
10
|
-
seconds: number,
|
|
11
|
-
lang: UI_T_LangValue = 'ru_RU'
|
|
12
|
-
): string => {
|
|
13
|
-
const units = {
|
|
14
|
-
en_US: { s: 's', m: 'm', h: 'h' },
|
|
15
|
-
ru_RU: { s: 'с', m: 'м', h: 'ч' },
|
|
16
|
-
hy_AM: { s: 'վ', m: 'ր', h: 'ժ' },
|
|
17
|
-
be_BY: { s: 'с', m: 'хв', h: 'г' },
|
|
18
|
-
kk_KZ: { s: 'сек', m: 'мин', h: 'сағ' },
|
|
19
|
-
zh_CHS: { s: '秒', m: '分', h: '时' },
|
|
20
|
-
BROWSER: { s: 's', m: 'm', h: 'h' },
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
const unit = units[lang] || units.en_US
|
|
24
|
-
|
|
25
|
-
if (seconds < 60) {
|
|
26
|
-
return `${seconds}${unit.s}`
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
const hours = Math.floor(seconds / 3600)
|
|
30
|
-
const minutes = Math.floor((seconds % 3600) / 60)
|
|
31
|
-
const secs = seconds % 60
|
|
32
|
-
|
|
33
|
-
let result = ''
|
|
34
|
-
|
|
35
|
-
if (hours > 0) {
|
|
36
|
-
result += `${hours}${unit.h} `
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
if (minutes > 0) {
|
|
40
|
-
result += `${minutes}${unit.m} `
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
if (secs > 0) {
|
|
44
|
-
result += `${secs}${unit.s}`
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
return result.trim()
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
return self
|
|
51
|
-
}.call({})
|
|
52
|
-
|
|
53
|
-
return {
|
|
54
|
-
provide: {
|
|
55
|
-
time,
|
|
56
|
-
},
|
|
57
|
-
}
|
|
58
|
-
})
|
|
1
|
+
import { defineNuxtPlugin } from '#app'
|
|
2
|
+
import type { UI_T_LangValue } from '~/lib/models/types'
|
|
3
|
+
export default defineNuxtPlugin(() => {
|
|
4
|
+
const time = function (): any {
|
|
5
|
+
const self: any = {}
|
|
6
|
+
self.millisecondsToHour = function (ms: number): number {
|
|
7
|
+
return ~~(ms / 1000 / 60 / 60 / 24)
|
|
8
|
+
}
|
|
9
|
+
self.formatTime = (
|
|
10
|
+
seconds: number,
|
|
11
|
+
lang: UI_T_LangValue = 'ru_RU'
|
|
12
|
+
): string => {
|
|
13
|
+
const units = {
|
|
14
|
+
en_US: { s: 's', m: 'm', h: 'h' },
|
|
15
|
+
ru_RU: { s: 'с', m: 'м', h: 'ч' },
|
|
16
|
+
hy_AM: { s: 'վ', m: 'ր', h: 'ժ' },
|
|
17
|
+
be_BY: { s: 'с', m: 'хв', h: 'г' },
|
|
18
|
+
kk_KZ: { s: 'сек', m: 'мин', h: 'сағ' },
|
|
19
|
+
zh_CHS: { s: '秒', m: '分', h: '时' },
|
|
20
|
+
BROWSER: { s: 's', m: 'm', h: 'h' },
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
const unit = units[lang] || units.en_US
|
|
24
|
+
|
|
25
|
+
if (seconds < 60) {
|
|
26
|
+
return `${seconds}${unit.s}`
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
const hours = Math.floor(seconds / 3600)
|
|
30
|
+
const minutes = Math.floor((seconds % 3600) / 60)
|
|
31
|
+
const secs = seconds % 60
|
|
32
|
+
|
|
33
|
+
let result = ''
|
|
34
|
+
|
|
35
|
+
if (hours > 0) {
|
|
36
|
+
result += `${hours}${unit.h} `
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
if (minutes > 0) {
|
|
40
|
+
result += `${minutes}${unit.m} `
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
if (secs > 0) {
|
|
44
|
+
result += `${secs}${unit.s}`
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
return result.trim()
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
return self
|
|
51
|
+
}.call({})
|
|
52
|
+
|
|
53
|
+
return {
|
|
54
|
+
provide: {
|
|
55
|
+
time,
|
|
56
|
+
},
|
|
57
|
+
}
|
|
58
|
+
})
|