bfg-common 1.5.649 → 1.5.650

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 (100) 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 +25 -1
  7. package/assets/localization/local_en.json +25 -1
  8. package/assets/localization/local_hy.json +25 -1
  9. package/assets/localization/local_kk.json +25 -1
  10. package/assets/localization/local_ru.json +25 -1
  11. package/assets/localization/local_zh.json +25 -1
  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/browse/blocks/lib/models/types.ts +1 -1
  22. package/components/common/browse/lib/models/interfaces.ts +5 -5
  23. package/components/common/diagramMain/network/Contents.vue +497 -497
  24. package/components/common/layout/theHeader/helpMenu/About.vue +79 -79
  25. package/components/common/layout/theHeader/helpMenu/aboutOld/AboutOld.vue +79 -79
  26. package/components/common/layout/theHeader/userMenu/modals/changePassword/ChangePassword.vue +99 -99
  27. package/components/common/layout/theHeader/userMenu/modals/changePassword/New.vue +193 -193
  28. package/components/common/pages/backups/DetailView.vue +52 -52
  29. package/components/common/pages/backups/lib/models/interfaces.ts +36 -36
  30. package/components/common/pages/backups/modals/Modals.vue +243 -243
  31. package/components/common/pages/backups/modals/createBackup/configuration/maxBandwidth/lib/config/options.ts +6 -6
  32. package/components/common/pages/backups/modals/createBackup/lib/config/readyToCompleteOptions.ts +69 -69
  33. package/components/common/pages/backups/modals/lib/config/restore.ts +115 -115
  34. package/components/common/pages/backups/modals/lib/models/interfaces.ts +186 -186
  35. package/components/common/pages/backups/modals/restore/name/lib/models/interfaces.ts +6 -6
  36. package/components/common/pages/home/lib/models/interfaces.ts +48 -48
  37. package/components/common/pages/home/widgets/hosts/Hosts.vue +27 -27
  38. package/components/common/pages/home/widgets/hosts/lib/config/items.ts +23 -23
  39. package/components/common/pages/home/widgets/vms/VmsOld.vue +35 -35
  40. package/components/common/pages/home/widgets/vms/lib/config/items.ts +19 -19
  41. package/components/common/pages/scheduledTasks/lib/utils/utils.ts +84 -84
  42. package/components/common/readyToComplete/ReadyToComplete.vue +17 -17
  43. package/components/common/select/radio/RadioGroup.vue +137 -137
  44. package/components/common/spiceConsole/Drawer.vue +420 -420
  45. package/components/common/spiceConsole/SpiceConsole.vue +184 -184
  46. package/components/common/spiceConsole/lib/models/interfaces.ts +5 -5
  47. package/components/common/tools/Actions.vue +207 -207
  48. package/components/common/treeView/TreeView.vue +52 -52
  49. package/components/common/vm/actions/clone/lib/config/steps.ts +295 -295
  50. package/components/common/vm/actions/clone/new/New.vue +438 -438
  51. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/shares/lib/config/options.ts +28 -28
  52. package/components/common/vm/actions/common/customizeHardware/virtualHardware/memory/Memory.vue +283 -283
  53. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/order/Order.vue +156 -156
  54. package/components/common/vm/actions/common/select/compatibility/Old.vue +107 -107
  55. package/components/common/vm/actions/common/select/createType/lib/models/interfaces.ts +5 -5
  56. package/components/common/vm/actions/common/select/options/New.vue +263 -263
  57. package/components/common/vm/actions/common/select/options/Old.vue +109 -109
  58. package/components/common/vm/actions/common/select/options/Options.vue +58 -58
  59. package/components/common/vm/actions/common/select/storage/Old.vue +125 -125
  60. package/components/common/vm/actions/common/select/storage/new/New.vue +311 -311
  61. package/components/common/vm/actions/common/select/storage/new/lib/models/interfaces.ts +5 -5
  62. package/components/common/vm/actions/common/select/storage/new/lib/utils/utils.ts +21 -21
  63. package/components/common/vm/actions/common/select/template/old/Old.vue +50 -50
  64. package/components/common/vm/actions/editSettings/new/Skeleton.vue +88 -88
  65. package/components/common/wizards/common/compatibility/Compatibility.vue +35 -35
  66. package/components/common/wizards/common/compatibility/New.vue +99 -99
  67. package/components/common/wizards/common/compatibility/Old.vue +53 -53
  68. package/components/common/wizards/common/steps/computeResource/New.vue +93 -93
  69. package/components/common/wizards/common/steps/name/Name.vue +178 -178
  70. package/components/common/wizards/common/steps/name/New.vue +221 -221
  71. package/components/common/wizards/common/steps/name/Old.vue +121 -121
  72. package/components/common/wizards/common/steps/name/lib/models/interfaces.ts +4 -4
  73. package/components/common/wizards/common/steps/name/location/New.vue +40 -40
  74. package/components/common/wizards/datastore/add/Add.vue +228 -228
  75. package/components/common/wizards/datastore/add/lib/utils.ts +85 -85
  76. package/components/common/wizards/datastore/add/steps/typeMode/lib/config/typeOptions.ts +43 -43
  77. package/components/common/wizards/network/add/steps/portProperties/PortPropertiesNew.vue +1 -1
  78. package/composables/useAppVersion.ts +21 -21
  79. package/composables/useLocal.ts +6 -6
  80. package/composables/useLocalCommon.ts +39 -39
  81. package/package.json +1 -1
  82. package/plugins/console.ts +21 -21
  83. package/plugins/mouse.ts +21 -21
  84. package/plugins/panelStates.ts +70 -70
  85. package/plugins/text.ts +59 -59
  86. package/plugins/time.ts +58 -58
  87. package/public/spice-console/application/clientgui.js +854 -854
  88. package/public/spice-console/application/packetfactory.js +211 -211
  89. package/public/spice-console/application/virtualmouse.js +147 -147
  90. package/public/spice-console/lib/images/bitmap.js +203 -203
  91. package/public/spice-console/network/spicechannel.js +440 -440
  92. package/public/spice-console/process/cursorprocess.js +128 -128
  93. package/public/spice-console/process/inputprocess.js +227 -227
  94. package/public/spice-console/process/mainprocess.js +212 -212
  95. package/public/spice-console/run.js +210 -210
  96. package/store/main/mutations.ts +7 -7
  97. package/store/main/state.ts +7 -7
  98. package/store/tasks/actions.ts +165 -165
  99. package/store/tasks/mappers/recentTasks.ts +123 -123
  100. package/store/tasks/mutations.ts +82 -82
@@ -1,109 +1,109 @@
1
- <template>
2
- <div class="select-options">
3
- <div
4
- v-show="!props.isNewVmFromTemplate"
5
- :class="['checkbox', { disabled: props.isNewVmFromTemplate }]"
6
- >
7
- <input
8
- id="customize-os"
9
- v-model="modelValue"
10
- data-id="customize-os"
11
- type="checkbox"
12
- value="customize-os"
13
- />
14
- <label for="customize-os">{{
15
- localization.common.customizeTheOperatingSystem
16
- }}</label>
17
- </div>
18
- <div v-if="!props.isNewVmFromTemplate" class="checkbox">
19
- <input
20
- id="customize-hardware"
21
- v-model="modelValue"
22
- data-id="customize-hardware"
23
- type="checkbox"
24
- value="customize-hardware"
25
- />
26
- <label for="customize-hardware">{{
27
- localization.common.customizeThisVirtualMachineHardware
28
- }}</label>
29
- </div>
30
- <div class="checkbox">
31
- <!-- :disabled="props.isNewVmFromTemplate"-->
32
- <input
33
- id="power-on"
34
- v-model="modelValue"
35
- data-id="power-on"
36
- type="checkbox"
37
- value="power-on"
38
- />
39
- <label for="power-on">{{
40
- localization.common.powerOnVirtualMachineAfterCreation
41
- }}</label>
42
- </div>
43
- <div v-if="props.isNewVmFromTemplate" class="checkbox">
44
- <!-- :disabled="props.isNewVmFromTemplate"-->
45
- <input
46
- id="create-linked-clone"
47
- v-model="modelValue"
48
- data-id="create-linked-clone"
49
- type="checkbox"
50
- value="create-linked-clone"
51
- />
52
- <label for="create-linked-clone">{{
53
- localization.vmWizard.createLinkedClone
54
- }}</label>
55
-
56
- <input
57
- v-if="props.project !== 'sphere'"
58
- v-model="cloneCount"
59
- :disabled="!isLinkedClone"
60
- data-id="clone-count"
61
- type="number"
62
- class="ml-1"
63
- :min="0"
64
- :max="1000"
65
- />
66
- </div>
67
- </div>
68
- </template>
69
-
70
- <script setup lang="ts">
71
- import type { UI_I_Localization } from '~/lib/models/interfaces'
72
- import type { UI_T_Project } from '~/lib/models/types'
73
-
74
- const modelValue = defineModel<string[]>()
75
- const cloneCount = defineModel<number>('cloneCount')
76
-
77
- const props = withDefaults(
78
- defineProps<{
79
- project?: UI_T_Project
80
- isNewVmFromTemplate?: boolean // TODO change
81
- }>(),
82
- {
83
- project: undefined,
84
- isNewVmFromTemplate: undefined,
85
- }
86
- )
87
-
88
- const localization = computed<UI_I_Localization>(() => useLocal())
89
-
90
- const isLinkedClone = computed<boolean>(
91
- () => modelValue.value?.includes('create-linked-clone') || false
92
- )
93
- </script>
94
-
95
- <style scoped lang="scss">
96
- .select-options {
97
- padding: 12px 0 0;
98
-
99
- .disabled {
100
- input,
101
- label {
102
- cursor: not-allowed;
103
- }
104
- }
105
- .checkbox {
106
- margin: 6px 0;
107
- }
108
- }
109
- </style>
1
+ <template>
2
+ <div class="select-options">
3
+ <div
4
+ v-show="!props.isNewVmFromTemplate"
5
+ :class="['checkbox', { disabled: props.isNewVmFromTemplate }]"
6
+ >
7
+ <input
8
+ id="customize-os"
9
+ v-model="modelValue"
10
+ data-id="customize-os"
11
+ type="checkbox"
12
+ value="customize-os"
13
+ />
14
+ <label for="customize-os">{{
15
+ localization.common.customizeTheOperatingSystem
16
+ }}</label>
17
+ </div>
18
+ <div v-if="!props.isNewVmFromTemplate" class="checkbox">
19
+ <input
20
+ id="customize-hardware"
21
+ v-model="modelValue"
22
+ data-id="customize-hardware"
23
+ type="checkbox"
24
+ value="customize-hardware"
25
+ />
26
+ <label for="customize-hardware">{{
27
+ localization.common.customizeThisVirtualMachineHardware
28
+ }}</label>
29
+ </div>
30
+ <div class="checkbox">
31
+ <!-- :disabled="props.isNewVmFromTemplate"-->
32
+ <input
33
+ id="power-on"
34
+ v-model="modelValue"
35
+ data-id="power-on"
36
+ type="checkbox"
37
+ value="power-on"
38
+ />
39
+ <label for="power-on">{{
40
+ localization.common.powerOnVirtualMachineAfterCreation
41
+ }}</label>
42
+ </div>
43
+ <div v-if="props.isNewVmFromTemplate" class="checkbox">
44
+ <!-- :disabled="props.isNewVmFromTemplate"-->
45
+ <input
46
+ id="create-linked-clone"
47
+ v-model="modelValue"
48
+ data-id="create-linked-clone"
49
+ type="checkbox"
50
+ value="create-linked-clone"
51
+ />
52
+ <label for="create-linked-clone">{{
53
+ localization.vmWizard.createLinkedClone
54
+ }}</label>
55
+
56
+ <input
57
+ v-if="props.project !== 'sphere'"
58
+ v-model="cloneCount"
59
+ :disabled="!isLinkedClone"
60
+ data-id="clone-count"
61
+ type="number"
62
+ class="ml-1"
63
+ :min="0"
64
+ :max="1000"
65
+ />
66
+ </div>
67
+ </div>
68
+ </template>
69
+
70
+ <script setup lang="ts">
71
+ import type { UI_I_Localization } from '~/lib/models/interfaces'
72
+ import type { UI_T_Project } from '~/lib/models/types'
73
+
74
+ const modelValue = defineModel<string[]>()
75
+ const cloneCount = defineModel<number>('cloneCount')
76
+
77
+ const props = withDefaults(
78
+ defineProps<{
79
+ project?: UI_T_Project
80
+ isNewVmFromTemplate?: boolean // TODO change
81
+ }>(),
82
+ {
83
+ project: undefined,
84
+ isNewVmFromTemplate: undefined,
85
+ }
86
+ )
87
+
88
+ const localization = computed<UI_I_Localization>(() => useLocal())
89
+
90
+ const isLinkedClone = computed<boolean>(
91
+ () => modelValue.value?.includes('create-linked-clone') || false
92
+ )
93
+ </script>
94
+
95
+ <style scoped lang="scss">
96
+ .select-options {
97
+ padding: 12px 0 0;
98
+
99
+ .disabled {
100
+ input,
101
+ label {
102
+ cursor: not-allowed;
103
+ }
104
+ }
105
+ .checkbox {
106
+ margin: 6px 0;
107
+ }
108
+ }
109
+ </style>
@@ -1,58 +1,58 @@
1
- <template>
2
- <component
3
- v-model="selectedOptions"
4
- v-model:clone-count="cloneCount"
5
- :is="currentComponent"
6
- :project="props.project"
7
- :is-new-vm-from-template="props.isNewVmFromTemplate"
8
- />
9
- </template>
10
-
11
- <script setup lang="ts">
12
- import type { UI_T_Project } from '~/lib/models/types'
13
-
14
- const props = withDefaults(
15
- defineProps<{
16
- project?: UI_T_Project
17
- isNewVmFromTemplate?: boolean // TODO change
18
- }>(),
19
- {
20
- project: undefined,
21
- isNewVmFromTemplate: undefined,
22
- }
23
- )
24
-
25
- const emits = defineEmits<{
26
- (event: 'change', value: string[]): void
27
- (event: 'change-count', value: number): void
28
- }>()
29
-
30
- const { $store }: any = useNuxtApp()
31
-
32
- const isNewView = computed<boolean>(() => $store.getters['main/getIsNewView'])
33
- const currentComponent = computed(() =>
34
- isNewView.value
35
- ? defineAsyncComponent(() => import('./New.vue'))
36
- : defineAsyncComponent(() => import('./Old.vue'))
37
- )
38
-
39
- const selectedOptions = ref<string[]>([])
40
- watch(selectedOptions, (newValue) => {
41
- emits('change', newValue)
42
- })
43
- const cloneCount = ref<number>(0) // For Deploy
44
- watch(cloneCount, (newValue) => {
45
- if (newValue < 0) {
46
- cloneCount.value = 0
47
- return
48
- }
49
- if (newValue > 1000) {
50
- cloneCount.value = 1000
51
- return
52
- }
53
-
54
- emits('change-count', newValue)
55
- })
56
- </script>
57
-
58
- <style scoped lang="scss"></style>
1
+ <template>
2
+ <component
3
+ v-model="selectedOptions"
4
+ v-model:clone-count="cloneCount"
5
+ :is="currentComponent"
6
+ :project="props.project"
7
+ :is-new-vm-from-template="props.isNewVmFromTemplate"
8
+ />
9
+ </template>
10
+
11
+ <script setup lang="ts">
12
+ import type { UI_T_Project } from '~/lib/models/types'
13
+
14
+ const props = withDefaults(
15
+ defineProps<{
16
+ project?: UI_T_Project
17
+ isNewVmFromTemplate?: boolean // TODO change
18
+ }>(),
19
+ {
20
+ project: undefined,
21
+ isNewVmFromTemplate: undefined,
22
+ }
23
+ )
24
+
25
+ const emits = defineEmits<{
26
+ (event: 'change', value: string[]): void
27
+ (event: 'change-count', value: number): void
28
+ }>()
29
+
30
+ const { $store }: any = useNuxtApp()
31
+
32
+ const isNewView = computed<boolean>(() => $store.getters['main/getIsNewView'])
33
+ const currentComponent = computed(() =>
34
+ isNewView.value
35
+ ? defineAsyncComponent(() => import('./New.vue'))
36
+ : defineAsyncComponent(() => import('./Old.vue'))
37
+ )
38
+
39
+ const selectedOptions = ref<string[]>([])
40
+ watch(selectedOptions, (newValue) => {
41
+ emits('change', newValue)
42
+ })
43
+ const cloneCount = ref<number>(0) // For Deploy
44
+ watch(cloneCount, (newValue) => {
45
+ if (newValue < 0) {
46
+ cloneCount.value = 0
47
+ return
48
+ }
49
+ if (newValue > 1000) {
50
+ cloneCount.value = 1000
51
+ return
52
+ }
53
+
54
+ emits('change-count', newValue)
55
+ })
56
+ </script>
57
+
58
+ <style scoped lang="scss"></style>
@@ -1,125 +1,125 @@
1
- <template>
2
- <div class="select-storage">
3
- <atoms-alert
4
- v-show="props.errors.length"
5
- :items="props.errors"
6
- status="alert-danger"
7
- test-id="storage-alert"
8
- @remove="emits('remove-error')"
9
- />
10
- <div class="table-wrap">
11
- <atoms-table-data-grid
12
- v-model:selected-row="selectedRow"
13
- v-model:column-keys="columnKeys"
14
- v-model:page-size="pagination.pageSize"
15
- v-model:page="pagination.page"
16
- :head-items="headItems"
17
- :body-items="bodyItems"
18
- :total-items="bodyItems.length"
19
- :total-pages="1"
20
- :loading="props.isDatastoreLoading"
21
- type="radio"
22
- test-id="storage-table"
23
- server-off
24
- hide-page-size
25
- @change="emits('change-storage', $event)"
26
- >
27
- <template #icon="{ item }">
28
- <span :class="['datagrid-cell-icon', item.data]" />
29
- <span class="text-ellipsis">
30
- {{ item.text }}
31
- </span>
32
- </template>
33
- </atoms-table-data-grid>
34
- </div>
35
-
36
- <common-wizards-common-compatibility
37
- v-if="!props.hideCompatibility"
38
- :status="props.compatibility[0]"
39
- :text="props.compatibility[1]"
40
- />
41
- </div>
42
- </template>
43
-
44
- <script setup lang="ts">
45
- import type { UI_I_Pagination } from '~/lib/models/table/interfaces'
46
- import type { UI_I_DatastoreTableItem } from '~/lib/models/store/storage/interfaces'
47
- import type { UI_I_Localization } from '~/lib/models/interfaces'
48
- import type {
49
- UI_I_ColumnKey,
50
- UI_I_HeadItem,
51
- UI_I_BodyItem,
52
- } from '~/components/atoms/table/dataGrid/lib/models/interfaces'
53
- import type { UI_T_CompatibilityStatus } from '~/components/common/wizards/common/compatibility/lib/models/types'
54
- import * as table from '~/components/common/vm/actions/common/select/storage/lib/config/config'
55
-
56
- const selectedRow = defineModel<number | null>('selectedRow')
57
- const pagination = defineModel<UI_I_Pagination>('pagination', {
58
- required: true,
59
- })
60
-
61
- const props = withDefaults(
62
- defineProps<{
63
- datastore: UI_I_DatastoreTableItem[]
64
- isDatastoreLoading: boolean
65
- errors: string[]
66
- selectedStorage: UI_I_DatastoreTableItem | null
67
- compatibility: [UI_T_CompatibilityStatus, string]
68
- hideCompatibility?: boolean
69
- }>(),
70
- {
71
- hideCompatibility: undefined,
72
- }
73
- )
74
- const emits = defineEmits<{
75
- (event: 'remove-error'): void
76
- (event: 'change-storage', value: number): void
77
- }>()
78
-
79
- const localization = computed<UI_I_Localization>(() => useLocal())
80
-
81
- const headItems = ref<UI_I_HeadItem[]>(table.headItems(localization.value))
82
- const columnKeys = ref<UI_I_ColumnKey[]>(table.columnKeys(localization.value))
83
- watch(localization, () => {
84
- columnKeys.value = table.columnKeys(localization.value)
85
- })
86
-
87
- const bodyItems = computed<UI_I_BodyItem[][]>(() => {
88
- return table.bodyItems(props.datastore || [], localization.value)
89
- })
90
- </script>
91
-
92
- <style scoped lang="scss">
93
- .select-storage {
94
- flex: 1;
95
- display: flex;
96
- flex-direction: column;
97
-
98
- .table-wrap {
99
- flex: 1;
100
-
101
- .datagrid-cell-icon {
102
- margin-right: 6px;
103
- }
104
-
105
- :deep(.relative) {
106
- height: 100%;
107
-
108
- .datagrid-outer-wrapper {
109
- height: 100%;
110
- }
111
- }
112
- }
113
-
114
- .compatibility-wrap {
115
- padding-top: 10px;
116
-
117
- .compatibility-message {
118
- border: 1px solid #000;
119
- padding-top: 5px;
120
- padding-left: 5px;
121
- overflow: auto;
122
- }
123
- }
124
- }
125
- </style>
1
+ <template>
2
+ <div class="select-storage">
3
+ <atoms-alert
4
+ v-show="props.errors.length"
5
+ :items="props.errors"
6
+ status="alert-danger"
7
+ test-id="storage-alert"
8
+ @remove="emits('remove-error')"
9
+ />
10
+ <div class="table-wrap">
11
+ <atoms-table-data-grid
12
+ v-model:selected-row="selectedRow"
13
+ v-model:column-keys="columnKeys"
14
+ v-model:page-size="pagination.pageSize"
15
+ v-model:page="pagination.page"
16
+ :head-items="headItems"
17
+ :body-items="bodyItems"
18
+ :total-items="bodyItems.length"
19
+ :total-pages="1"
20
+ :loading="props.isDatastoreLoading"
21
+ type="radio"
22
+ test-id="storage-table"
23
+ server-off
24
+ hide-page-size
25
+ @change="emits('change-storage', $event)"
26
+ >
27
+ <template #icon="{ item }">
28
+ <span :class="['datagrid-cell-icon', item.data]" />
29
+ <span class="text-ellipsis">
30
+ {{ item.text }}
31
+ </span>
32
+ </template>
33
+ </atoms-table-data-grid>
34
+ </div>
35
+
36
+ <common-wizards-common-compatibility
37
+ v-if="!props.hideCompatibility"
38
+ :status="props.compatibility[0]"
39
+ :text="props.compatibility[1]"
40
+ />
41
+ </div>
42
+ </template>
43
+
44
+ <script setup lang="ts">
45
+ import type { UI_I_Pagination } from '~/lib/models/table/interfaces'
46
+ import type { UI_I_DatastoreTableItem } from '~/lib/models/store/storage/interfaces'
47
+ import type { UI_I_Localization } from '~/lib/models/interfaces'
48
+ import type {
49
+ UI_I_ColumnKey,
50
+ UI_I_HeadItem,
51
+ UI_I_BodyItem,
52
+ } from '~/components/atoms/table/dataGrid/lib/models/interfaces'
53
+ import type { UI_T_CompatibilityStatus } from '~/components/common/wizards/common/compatibility/lib/models/types'
54
+ import * as table from '~/components/common/vm/actions/common/select/storage/lib/config/config'
55
+
56
+ const selectedRow = defineModel<number | null>('selectedRow')
57
+ const pagination = defineModel<UI_I_Pagination>('pagination', {
58
+ required: true,
59
+ })
60
+
61
+ const props = withDefaults(
62
+ defineProps<{
63
+ datastore: UI_I_DatastoreTableItem[]
64
+ isDatastoreLoading: boolean
65
+ errors: string[]
66
+ selectedStorage: UI_I_DatastoreTableItem | null
67
+ compatibility: [UI_T_CompatibilityStatus, string]
68
+ hideCompatibility?: boolean
69
+ }>(),
70
+ {
71
+ hideCompatibility: undefined,
72
+ }
73
+ )
74
+ const emits = defineEmits<{
75
+ (event: 'remove-error'): void
76
+ (event: 'change-storage', value: number): void
77
+ }>()
78
+
79
+ const localization = computed<UI_I_Localization>(() => useLocal())
80
+
81
+ const headItems = ref<UI_I_HeadItem[]>(table.headItems(localization.value))
82
+ const columnKeys = ref<UI_I_ColumnKey[]>(table.columnKeys(localization.value))
83
+ watch(localization, () => {
84
+ columnKeys.value = table.columnKeys(localization.value)
85
+ })
86
+
87
+ const bodyItems = computed<UI_I_BodyItem[][]>(() => {
88
+ return table.bodyItems(props.datastore || [], localization.value)
89
+ })
90
+ </script>
91
+
92
+ <style scoped lang="scss">
93
+ .select-storage {
94
+ flex: 1;
95
+ display: flex;
96
+ flex-direction: column;
97
+
98
+ .table-wrap {
99
+ flex: 1;
100
+
101
+ .datagrid-cell-icon {
102
+ margin-right: 6px;
103
+ }
104
+
105
+ :deep(.relative) {
106
+ height: 100%;
107
+
108
+ .datagrid-outer-wrapper {
109
+ height: 100%;
110
+ }
111
+ }
112
+ }
113
+
114
+ .compatibility-wrap {
115
+ padding-top: 10px;
116
+
117
+ .compatibility-message {
118
+ border: 1px solid #000;
119
+ padding-top: 5px;
120
+ padding-left: 5px;
121
+ overflow: auto;
122
+ }
123
+ }
124
+ }
125
+ </style>