bfg-common 1.5.746 → 1.5.748
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 +16 -10
- package/assets/localization/local_en.json +16 -10
- package/assets/localization/local_hy.json +16 -10
- package/assets/localization/local_kk.json +16 -10
- package/assets/localization/local_ru.json +16 -10
- package/assets/localization/local_zh.json +16 -10
- package/components/atoms/TheIcon3.vue +50 -50
- package/components/atoms/collapse/CollapseNav.vue +170 -170
- package/components/atoms/nav/NavBar.vue +1 -0
- package/components/atoms/perPage/PerPage.vue +58 -58
- 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/graph/graphNew/EmptyBlock.vue +2 -1
- package/components/common/layout/console/Console.vue +70 -70
- package/components/common/layout/theHeader/feedback/new/email/Email.vue +2 -2
- package/components/common/layout/theHeader/userMenu/modals/changePassword/lib/utils.ts +2 -2
- package/components/common/layout/theHeader/userMenu/modals/preferences/lib/models/types.ts +7 -7
- package/components/common/monitor/overview/OverviewNew.vue +1 -1
- 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 +116 -116
- package/components/common/pages/backups/modals/lib/models/interfaces.ts +187 -187
- package/components/common/pages/backups/modals/restore/Restore.vue +302 -302
- package/components/common/pages/backups/modals/restore/disks/Disks.vue +50 -50
- package/components/common/pages/backups/modals/restore/lib/config/readyToCompleteOptions.ts +94 -94
- package/components/common/pages/backups/modals/restore/lib/config/steps.ts +130 -130
- package/components/common/pages/backups/modals/restore/name/lib/models/interfaces.ts +6 -6
- package/components/common/pages/backups/modals/restore/types/New.vue +95 -95
- package/components/common/pages/backups/modals/restore/types/Old.vue +62 -62
- package/components/common/pages/backups/modals/restore/types/Types.vue +31 -31
- 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/pages/tasks/Tasks.vue +125 -125
- package/components/common/pages/tasks/table/Table.vue +373 -373
- package/components/common/pages/tasks/table/lib/config/config.ts +279 -279
- package/components/common/pages/tasks/table/lib/models/interfaces.ts +9 -9
- 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 +264 -264
- 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/vm/snapshots/modals/confirm/New.vue +9 -8
- package/components/common/vm/snapshots/modals/takeOrEdit/new/New.vue +1 -1
- package/components/common/wizards/common/compatibility/Compatibility.vue +35 -35
- 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 +227 -227
- 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/components/common/wizards/vm/migrate/steps/selectStorage/configure/disk/table/old/lib/config/diskTable.ts +11 -1
- package/composables/useAppVersion.ts +21 -21
- package/composables/useBrowse.ts +24 -24
- package/composables/useLocal.ts +6 -6
- package/composables/useLocalCommon.ts +39 -39
- package/lib/config/regExp.ts +1 -1
- package/lib/models/types.ts +59 -59
- 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/plugins/validation.ts +6 -6
- 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/mappers/recentTasks.ts +123 -123
- package/store/tasks/mutations.ts +82 -82
|
@@ -1,94 +1,94 @@
|
|
|
1
|
-
import type { UI_ColumnSettingsStrategy } from '~/components/atoms/table/dataGrid/lib/models/interfaces'
|
|
2
|
-
import type {
|
|
3
|
-
UI_I_ColumnKey,
|
|
4
|
-
UI_I_HeadItem,
|
|
5
|
-
} from '~/components/atoms/table/dataGrid/lib/models/interfaces'
|
|
6
|
-
import type { UI_I_DropdownButtonItem } from '~/components/common/select/button/lib/models/interfaces'
|
|
7
|
-
import type { UI_I_Localization } from '~/lib/models/interfaces'
|
|
8
|
-
import {
|
|
9
|
-
constructColumnKey,
|
|
10
|
-
constructHeadItem,
|
|
11
|
-
} from '~/components/atoms/table/dataGrid/lib/utils/constructDataTable'
|
|
12
|
-
|
|
13
|
-
export const defaultColumnKeys = (
|
|
14
|
-
items: [string, boolean, string, string][],
|
|
15
|
-
strategy?: UI_ColumnSettingsStrategy
|
|
16
|
-
): UI_I_ColumnKey[] => {
|
|
17
|
-
const result: UI_I_ColumnKey[] = []
|
|
18
|
-
items.forEach((item, i) => {
|
|
19
|
-
let col: string = `col${i}` // Стандартное значение по умолчанию
|
|
20
|
-
|
|
21
|
-
if (strategy) {
|
|
22
|
-
// Проходим по ключам объекта и ищем соответствие индекса i в значениях
|
|
23
|
-
for (const key in strategy) {
|
|
24
|
-
if (strategy[key].includes(i)) {
|
|
25
|
-
col = key
|
|
26
|
-
break
|
|
27
|
-
}
|
|
28
|
-
}
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
result.push(
|
|
32
|
-
constructColumnKey(col, item[0], item[1], `show-column-${item[3]}`)
|
|
33
|
-
)
|
|
34
|
-
})
|
|
35
|
-
return result
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
export const defaultHeadItems = (
|
|
39
|
-
items: [string, boolean, string, string][],
|
|
40
|
-
strategy?: UI_ColumnSettingsStrategy
|
|
41
|
-
): UI_I_HeadItem[] => {
|
|
42
|
-
const result: UI_I_HeadItem[] = []
|
|
43
|
-
items.forEach((item, i) => {
|
|
44
|
-
let col: string = `col${i}` // Стандартное значение по умолчанию
|
|
45
|
-
|
|
46
|
-
if (strategy) {
|
|
47
|
-
// Проходим по ключам объекта и ищем соответствие индекса i в значениях
|
|
48
|
-
for (const key in strategy) {
|
|
49
|
-
if (strategy[key].includes(i)) {
|
|
50
|
-
col = key
|
|
51
|
-
break
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
result.push(
|
|
57
|
-
constructHeadItem(
|
|
58
|
-
col,
|
|
59
|
-
item[0],
|
|
60
|
-
item[3],
|
|
61
|
-
false,
|
|
62
|
-
item[2],
|
|
63
|
-
undefined,
|
|
64
|
-
item[3]
|
|
65
|
-
)
|
|
66
|
-
)
|
|
67
|
-
})
|
|
68
|
-
return result
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
export const exportItemsFunc = (
|
|
72
|
-
localization: UI_I_Localization,
|
|
73
|
-
rows: number,
|
|
74
|
-
selectedRows: number,
|
|
75
|
-
testId: string
|
|
76
|
-
): UI_I_DropdownButtonItem[] => {
|
|
77
|
-
return [
|
|
78
|
-
{
|
|
79
|
-
text: localization.common.allRowsCount.replace('{0}', '' + rows),
|
|
80
|
-
type: '0',
|
|
81
|
-
disabled: false,
|
|
82
|
-
testId: `${testId}-export-all`,
|
|
83
|
-
},
|
|
84
|
-
{
|
|
85
|
-
text: localization.common.selectedRowsCount.replace(
|
|
86
|
-
'{0}',
|
|
87
|
-
'' + selectedRows
|
|
88
|
-
),
|
|
89
|
-
type: '1',
|
|
90
|
-
disabled: false,
|
|
91
|
-
testId: `${testId}-export-selected`,
|
|
92
|
-
},
|
|
93
|
-
]
|
|
94
|
-
}
|
|
1
|
+
import type { UI_ColumnSettingsStrategy } from '~/components/atoms/table/dataGrid/lib/models/interfaces'
|
|
2
|
+
import type {
|
|
3
|
+
UI_I_ColumnKey,
|
|
4
|
+
UI_I_HeadItem,
|
|
5
|
+
} from '~/components/atoms/table/dataGrid/lib/models/interfaces'
|
|
6
|
+
import type { UI_I_DropdownButtonItem } from '~/components/common/select/button/lib/models/interfaces'
|
|
7
|
+
import type { UI_I_Localization } from '~/lib/models/interfaces'
|
|
8
|
+
import {
|
|
9
|
+
constructColumnKey,
|
|
10
|
+
constructHeadItem,
|
|
11
|
+
} from '~/components/atoms/table/dataGrid/lib/utils/constructDataTable'
|
|
12
|
+
|
|
13
|
+
export const defaultColumnKeys = (
|
|
14
|
+
items: [string, boolean, string, string][],
|
|
15
|
+
strategy?: UI_ColumnSettingsStrategy
|
|
16
|
+
): UI_I_ColumnKey[] => {
|
|
17
|
+
const result: UI_I_ColumnKey[] = []
|
|
18
|
+
items.forEach((item, i) => {
|
|
19
|
+
let col: string = `col${i}` // Стандартное значение по умолчанию
|
|
20
|
+
|
|
21
|
+
if (strategy) {
|
|
22
|
+
// Проходим по ключам объекта и ищем соответствие индекса i в значениях
|
|
23
|
+
for (const key in strategy) {
|
|
24
|
+
if (strategy[key].includes(i)) {
|
|
25
|
+
col = key
|
|
26
|
+
break
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
result.push(
|
|
32
|
+
constructColumnKey(col, item[0], item[1], `show-column-${item[3]}`)
|
|
33
|
+
)
|
|
34
|
+
})
|
|
35
|
+
return result
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
export const defaultHeadItems = (
|
|
39
|
+
items: [string, boolean, string, string][],
|
|
40
|
+
strategy?: UI_ColumnSettingsStrategy
|
|
41
|
+
): UI_I_HeadItem[] => {
|
|
42
|
+
const result: UI_I_HeadItem[] = []
|
|
43
|
+
items.forEach((item, i) => {
|
|
44
|
+
let col: string = `col${i}` // Стандартное значение по умолчанию
|
|
45
|
+
|
|
46
|
+
if (strategy) {
|
|
47
|
+
// Проходим по ключам объекта и ищем соответствие индекса i в значениях
|
|
48
|
+
for (const key in strategy) {
|
|
49
|
+
if (strategy[key].includes(i)) {
|
|
50
|
+
col = key
|
|
51
|
+
break
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
result.push(
|
|
57
|
+
constructHeadItem(
|
|
58
|
+
col,
|
|
59
|
+
item[0],
|
|
60
|
+
item[3],
|
|
61
|
+
false,
|
|
62
|
+
item[2],
|
|
63
|
+
undefined,
|
|
64
|
+
item[3]
|
|
65
|
+
)
|
|
66
|
+
)
|
|
67
|
+
})
|
|
68
|
+
return result
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
export const exportItemsFunc = (
|
|
72
|
+
localization: UI_I_Localization,
|
|
73
|
+
rows: number,
|
|
74
|
+
selectedRows: number,
|
|
75
|
+
testId: string
|
|
76
|
+
): UI_I_DropdownButtonItem[] => {
|
|
77
|
+
return [
|
|
78
|
+
{
|
|
79
|
+
text: localization.common.allRowsCount.replace('{0}', '' + rows),
|
|
80
|
+
type: '0',
|
|
81
|
+
disabled: false,
|
|
82
|
+
testId: `${testId}-export-all`,
|
|
83
|
+
},
|
|
84
|
+
{
|
|
85
|
+
text: localization.common.selectedRowsCount.replace(
|
|
86
|
+
'{0}',
|
|
87
|
+
'' + selectedRows
|
|
88
|
+
),
|
|
89
|
+
type: '1',
|
|
90
|
+
disabled: false,
|
|
91
|
+
testId: `${testId}-export-selected`,
|
|
92
|
+
},
|
|
93
|
+
]
|
|
94
|
+
}
|
|
@@ -1,16 +1,16 @@
|
|
|
1
|
-
export const generateCsvAndDownload = (rows: HTMLElement[]): void => {
|
|
2
|
-
const content: string[] = []
|
|
3
|
-
rows.forEach((row: HTMLElement) => {
|
|
4
|
-
content.push(row.innerText.replaceAll(';', ',').replaceAll('\n', ';'))
|
|
5
|
-
})
|
|
6
|
-
|
|
7
|
-
const csvContent = 'data:text/csv;charset=utf-8,' + content.join('\n')
|
|
8
|
-
|
|
9
|
-
const encodedUri = encodeURI(csvContent)
|
|
10
|
-
const link = document.createElement('a')
|
|
11
|
-
link.setAttribute('href', encodedUri)
|
|
12
|
-
link.setAttribute('download', 'my_data.csv')
|
|
13
|
-
document.body.appendChild(link)
|
|
14
|
-
|
|
15
|
-
link.click()
|
|
16
|
-
}
|
|
1
|
+
export const generateCsvAndDownload = (rows: HTMLElement[]): void => {
|
|
2
|
+
const content: string[] = []
|
|
3
|
+
rows.forEach((row: HTMLElement) => {
|
|
4
|
+
content.push(row.innerText.replaceAll(';', ',').replaceAll('\n', ';'))
|
|
5
|
+
})
|
|
6
|
+
|
|
7
|
+
const csvContent = 'data:text/csv;charset=utf-8,' + content.join('\n')
|
|
8
|
+
|
|
9
|
+
const encodedUri = encodeURI(csvContent)
|
|
10
|
+
const link = document.createElement('a')
|
|
11
|
+
link.setAttribute('href', encodedUri)
|
|
12
|
+
link.setAttribute('download', 'my_data.csv')
|
|
13
|
+
document.body.appendChild(link)
|
|
14
|
+
|
|
15
|
+
link.click()
|
|
16
|
+
}
|
|
@@ -1,51 +1,51 @@
|
|
|
1
|
-
import type 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
|
-
|
|
21
|
-
const url = buildValidationUrl(name, project, datacenterId)
|
|
22
|
-
const { error } = await useMyFetch<null, API_UI_I_Error>(url, {
|
|
23
|
-
method: 'GET',
|
|
24
|
-
})
|
|
25
|
-
wizard.setLoader(false)
|
|
26
|
-
|
|
27
|
-
if (error.value && error.value.data.error_code !== 0) {
|
|
28
|
-
const existError = error.value.data?.error_message || error.value.data
|
|
29
|
-
sendMessage(existError)
|
|
30
|
-
return
|
|
31
|
-
}
|
|
32
|
-
sendMessage('')
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
const buildValidationUrl = (
|
|
36
|
-
name: string,
|
|
37
|
-
project: UI_T_Project,
|
|
38
|
-
datacenterId?: string
|
|
39
|
-
): string => {
|
|
40
|
-
if (project === 'procurator') {
|
|
41
|
-
const params = new URLSearchParams({ name })
|
|
42
|
-
return `/ui/ds/validate?${params.toString()}`
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
const params = new URLSearchParams()
|
|
46
|
-
params.set('name', name)
|
|
47
|
-
params.set('kind', String(UI_E_Kind.STORAGE_VALIDATION_NAME))
|
|
48
|
-
if (datacenterId) params.set('datacenter', datacenterId)
|
|
49
|
-
|
|
50
|
-
return `/ui/object/validate_name?${params.toString()}`
|
|
51
|
-
}
|
|
1
|
+
import type 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
|
+
|
|
21
|
+
const url = buildValidationUrl(name, project, datacenterId)
|
|
22
|
+
const { error } = await useMyFetch<null, API_UI_I_Error>(url, {
|
|
23
|
+
method: 'GET',
|
|
24
|
+
})
|
|
25
|
+
wizard.setLoader(false)
|
|
26
|
+
|
|
27
|
+
if (error.value && error.value.data.error_code !== 0) {
|
|
28
|
+
const existError = error.value.data?.error_message || error.value.data
|
|
29
|
+
sendMessage(existError)
|
|
30
|
+
return
|
|
31
|
+
}
|
|
32
|
+
sendMessage('')
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
const buildValidationUrl = (
|
|
36
|
+
name: string,
|
|
37
|
+
project: UI_T_Project,
|
|
38
|
+
datacenterId?: string
|
|
39
|
+
): string => {
|
|
40
|
+
if (project === 'procurator') {
|
|
41
|
+
const params = new URLSearchParams({ name })
|
|
42
|
+
return `/ui/ds/validate?${params.toString()}`
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
const params = new URLSearchParams()
|
|
46
|
+
params.set('name', name)
|
|
47
|
+
params.set('kind', String(UI_E_Kind.STORAGE_VALIDATION_NAME))
|
|
48
|
+
if (datacenterId) params.set('datacenter', datacenterId)
|
|
49
|
+
|
|
50
|
+
return `/ui/object/validate_name?${params.toString()}`
|
|
51
|
+
}
|
|
@@ -1,18 +1,18 @@
|
|
|
1
|
-
<template>
|
|
2
|
-
<div class="skeleton-wrap">
|
|
3
|
-
<ui-skeleton-item height="18px" />
|
|
4
|
-
<ui-skeleton-item height="18px" />
|
|
5
|
-
<ui-skeleton-item height="18px" />
|
|
6
|
-
<ui-skeleton-item height="18px" />
|
|
7
|
-
<ui-skeleton-item height="18px" />
|
|
8
|
-
</div>
|
|
9
|
-
</template>
|
|
10
|
-
|
|
11
|
-
<script setup lang="ts"></script>
|
|
12
|
-
|
|
13
|
-
<style scoped lang="scss">
|
|
14
|
-
.skeleton-wrap {
|
|
15
|
-
display: grid;
|
|
16
|
-
grid-gap: 12px;
|
|
17
|
-
}
|
|
18
|
-
</style>
|
|
1
|
+
<template>
|
|
2
|
+
<div class="skeleton-wrap">
|
|
3
|
+
<ui-skeleton-item height="18px" />
|
|
4
|
+
<ui-skeleton-item height="18px" />
|
|
5
|
+
<ui-skeleton-item height="18px" />
|
|
6
|
+
<ui-skeleton-item height="18px" />
|
|
7
|
+
<ui-skeleton-item height="18px" />
|
|
8
|
+
</div>
|
|
9
|
+
</template>
|
|
10
|
+
|
|
11
|
+
<script setup lang="ts"></script>
|
|
12
|
+
|
|
13
|
+
<style scoped lang="scss">
|
|
14
|
+
.skeleton-wrap {
|
|
15
|
+
display: grid;
|
|
16
|
+
grid-gap: 12px;
|
|
17
|
+
}
|
|
18
|
+
</style>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export type UI_T_BlocksWidth = [number, number, number]
|
|
1
|
+
export type UI_T_BlocksWidth = [number, number, number]
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
export interface UI_I_FileInfo {
|
|
2
|
-
type: string
|
|
3
|
-
title: string
|
|
4
|
-
value: string | number
|
|
5
|
-
}
|
|
1
|
+
export interface UI_I_FileInfo {
|
|
2
|
+
type: string
|
|
3
|
+
title: string
|
|
4
|
+
value: string | number
|
|
5
|
+
}
|