bfg-common 1.0.44 → 1.0.45

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 (54) hide show
  1. package/components/atoms/alert/Notification.vue +167 -167
  2. package/components/atoms/autocomplete/Autocomplete.vue +236 -236
  3. package/components/atoms/datepicker/Datepicker.vue +612 -612
  4. package/components/atoms/list/SelectList.vue +62 -62
  5. package/components/atoms/modal/bySteps/BySteps.vue +234 -234
  6. package/components/atoms/nav/NavBar.vue +116 -116
  7. package/components/atoms/nav/VerticalNavBar.vue +89 -89
  8. package/components/atoms/notificationBar/NotificationBar.vue +174 -175
  9. package/components/atoms/perPage/PerPage.vue +52 -52
  10. package/components/atoms/popup/SimplePopup.vue +90 -90
  11. package/components/atoms/step/VerticalStep.vue +104 -104
  12. package/components/atoms/switch/Switch.vue +107 -107
  13. package/components/atoms/table/dataGrid/DataGridColumnSwitch.vue +204 -204
  14. package/components/atoms/table/dataGrid/DataGridPage.vue +189 -189
  15. package/components/atoms/table/dataGrid/DataGridPagination.vue +83 -83
  16. package/components/atoms/tabs/Tabs.vue +189 -189
  17. package/components/atoms/tooltip/Signpost.vue +224 -224
  18. package/components/common/accordion/Accordion.vue +176 -176
  19. package/components/common/accordion/Recursion.vue +195 -195
  20. package/components/common/adapterManager/AddAdapterWarningModal.vue +82 -82
  21. package/components/common/adapterManager/NoActiveAdaptersModal.vue +62 -62
  22. package/components/common/adapterManager/NoConnectedActiveAdaptersModal.vue +62 -62
  23. package/components/common/browse/Browse.vue +182 -182
  24. package/components/common/browse/blocks/Title.vue +66 -66
  25. package/components/common/diagramMain/adapter/AdapterItem.vue +227 -227
  26. package/components/common/diagramMain/adapter/AdapterItems.vue +57 -57
  27. package/components/common/diagramMain/modals/editSettings/tabs/port/IpvFourSettings.vue +339 -339
  28. package/components/common/diagramMain/modals/editSettings/tabs/port/PortProperties.vue +202 -202
  29. package/components/common/diagramMain/modals/remove/RemoveModal.vue +226 -226
  30. package/components/common/diagramMain/modals/viewSettings/Info.vue +94 -94
  31. package/components/common/diagramMain/network/Contents.vue +238 -238
  32. package/components/common/feedback/Buttons.vue +232 -232
  33. package/components/common/feedback/Message.vue +468 -468
  34. package/components/common/feedback/VisitPortal.vue +54 -54
  35. package/components/common/modals/Rename.vue +165 -165
  36. package/components/common/perPage/PerPage.vue +51 -51
  37. package/components/common/recursionTree/RecursionTree.vue +201 -201
  38. package/components/common/tools/Actions.vue +141 -144
  39. package/components/common/wizards/datastore/add/nfs/configuration/Configuration.vue +373 -373
  40. package/components/common/wizards/datastore/add/nfs/configuration/serversList/ServersList.vue +123 -123
  41. package/components/common/wizards/datastore/add/nfs/kerberosAuthentication/KerberosAuthentication.vue +54 -54
  42. package/components/common/wizards/datastore/add/sharedStorm/deviceSelection/hostTable/HostTable.vue +131 -131
  43. package/components/common/wizards/datastore/add/sharedStorm/partitionConfiguration/PartitionConfiguration.vue +230 -230
  44. package/models/store/storage/interfaces.ts +32 -32
  45. package/package.json +1 -1
  46. package/public/spice-console/application/codec.js +257 -257
  47. package/public/spice-console/lib/rasterEngine.js +907 -907
  48. package/public/spice-console/network/spicechannel.js +369 -369
  49. package/public/spice-console-minify/lib/decoder/dixie.min.js +4 -4
  50. package/public/spice-console-minify/lib/jgestures.min.js +24 -24
  51. package/public/spice-console-minify/lib/jquery-2.0.3.min.js +24 -24
  52. package/public/spice-console-minify/lib/jquery-mousewheel.min.js +11 -11
  53. package/public/spice-console-minify/lib/jquery-visibility.min.js +1 -1
  54. package/public/spice-console-minify/lib/lodash.4.0.0.min.js +5 -5
@@ -1,123 +1,123 @@
1
- <template>
2
- <div class="servers-list">
3
- <atoms-table-data-grid
4
- test-id="servers-list-table"
5
- v-model:selected-row="selectedDisk"
6
- v-model:page-size="pagination.pageSize"
7
- v-model:page="pagination.page"
8
- type="any"
9
- class="data-table"
10
- :head-items="headItems"
11
- :body-items="bodyItems"
12
- :total-items="1"
13
- :total-pages="1"
14
- off-select-by-row
15
- :loading="loading"
16
- hide-footer
17
- >
18
- <template #type="{ item }">
19
- <div class="data-table__action-icon">
20
- <atoms-popover
21
- test-id="servers-list"
22
- @click="onShowTooltipForRemove(item)"
23
- >
24
- <template #elem>
25
- <atoms-the-icon name="ellipsis-vertical" />
26
- </template>
27
- <template #content>
28
- <common-wizards-datastore-add-nfs-configuration-servers-list-delete-popover
29
- v-if="showTooltip && item[0].id === selectedServerForRemove"
30
- class="data-table__popover"
31
- @hide="showTooltip = false"
32
- @click-item="onRemoveServerFromList(item)"
33
- />
34
- </template>
35
- </atoms-popover>
36
- </div>
37
- </template>
38
- </atoms-table-data-grid>
39
- </div>
40
- </template>
41
-
42
- <script lang="ts" setup>
43
- import {
44
- UI_I_HeadItem,
45
- UI_I_BodyItem,
46
- } from '~/components/atoms/table/dataGrid/models/interfaces'
47
- import { UI_I_Localization, UI_I_Pagination } from '~/models/interfaces'
48
- import { UI_I_DataServersListItem } from '~/components/common/wizards/datastore/add/nfs/configuration/serversList/models/interfaces'
49
- import * as serversTable from '~/components/common/wizards/datastore/add/nfs/configuration/serversList/config/serversListConfig'
50
-
51
- const props = defineProps<{
52
- dataTable: UI_I_DataServersListItem[] | []
53
- loading?: boolean
54
- }>()
55
- const emits = defineEmits<{
56
- (event: 'update:data-table', value: UI_I_DataServersListItem[]): void
57
- }>()
58
-
59
- const localization = computed<UI_I_Localization>(() => useLocal())
60
-
61
- const selectedDisk = ref<number | null>(null)
62
-
63
- const pagination = ref<UI_I_Pagination>({
64
- page: 1,
65
- pageSize: 34,
66
- })
67
-
68
- // const columnKeys = ref<UI_I_ColumnKey[]>(serversTable.columnKeys(localization.value))
69
- const headItems = computed<UI_I_HeadItem[]>(() =>
70
- serversTable.headItems(localization.value)
71
- )
72
-
73
- const bodyItems = ref<UI_I_BodyItem[][]>([])
74
- watch(
75
- () => props.dataTable,
76
- (val) => {
77
- if (!val?.length) {
78
- bodyItems.value = []
79
- return
80
- }
81
-
82
- bodyItems.value = serversTable.bodyItems(val)
83
- },
84
- { deep: true, immediate: true }
85
- )
86
-
87
- const selectedServerForRemove = ref<number | null>(null)
88
- const showTooltip = ref<boolean>(false)
89
- const onShowTooltipForRemove = (server: UI_I_BodyItem[]): void => {
90
- selectedServerForRemove.value = server[0].id
91
- showTooltip.value = true
92
- }
93
- const onRemoveServerFromList = (removeItem: UI_I_BodyItem[]): void => {
94
- const { text } = removeItem[0]
95
-
96
- const serverList = props.dataTable.filter(
97
- (server: UI_I_DataServersListItem) => server.server_name !== text
98
- )
99
- emits('update:data-table', serverList)
100
- showTooltip.value = false
101
- }
102
- </script>
103
-
104
- <style lang="scss" scoped>
105
- .servers-list {
106
- height: inherit;
107
- .data-table {
108
- &__action-icon {
109
- width: 16px;
110
- height: 16px;
111
- cursor: pointer;
112
- position: relative;
113
- fill: var(--ellipsis-vertical-icon-color);
114
- }
115
-
116
- height: inherit;
117
- :deep(.datagrid-outer-wrapper) {
118
- height: inherit;
119
- padding-top: 0;
120
- }
121
- }
122
- }
123
- </style>
1
+ <template>
2
+ <div class="servers-list">
3
+ <atoms-table-data-grid
4
+ test-id="servers-list-table"
5
+ v-model:selected-row="selectedDisk"
6
+ v-model:page-size="pagination.pageSize"
7
+ v-model:page="pagination.page"
8
+ type="any"
9
+ class="data-table"
10
+ :head-items="headItems"
11
+ :body-items="bodyItems"
12
+ :total-items="1"
13
+ :total-pages="1"
14
+ off-select-by-row
15
+ :loading="loading"
16
+ hide-footer
17
+ >
18
+ <template #type="{ item }">
19
+ <div class="data-table__action-icon">
20
+ <atoms-popover
21
+ test-id="servers-list"
22
+ @click="onShowTooltipForRemove(item)"
23
+ >
24
+ <template #elem>
25
+ <atoms-the-icon name="ellipsis-vertical" />
26
+ </template>
27
+ <template #content>
28
+ <common-wizards-datastore-add-nfs-configuration-servers-list-delete-popover
29
+ v-if="showTooltip && item[0].id === selectedServerForRemove"
30
+ class="data-table__popover"
31
+ @hide="showTooltip = false"
32
+ @click-item="onRemoveServerFromList(item)"
33
+ />
34
+ </template>
35
+ </atoms-popover>
36
+ </div>
37
+ </template>
38
+ </atoms-table-data-grid>
39
+ </div>
40
+ </template>
41
+
42
+ <script lang="ts" setup>
43
+ import {
44
+ UI_I_HeadItem,
45
+ UI_I_BodyItem,
46
+ } from '~/components/atoms/table/dataGrid/models/interfaces'
47
+ import { UI_I_Localization, UI_I_Pagination } from '~/models/interfaces'
48
+ import { UI_I_DataServersListItem } from '~/components/common/wizards/datastore/add/nfs/configuration/serversList/models/interfaces'
49
+ import * as serversTable from '~/components/common/wizards/datastore/add/nfs/configuration/serversList/config/serversListConfig'
50
+
51
+ const props = defineProps<{
52
+ dataTable: UI_I_DataServersListItem[] | []
53
+ loading?: boolean
54
+ }>()
55
+ const emits = defineEmits<{
56
+ (event: 'update:data-table', value: UI_I_DataServersListItem[]): void
57
+ }>()
58
+
59
+ const localization = computed<UI_I_Localization>(() => useLocal())
60
+
61
+ const selectedDisk = ref<number | null>(null)
62
+
63
+ const pagination = ref<UI_I_Pagination>({
64
+ page: 1,
65
+ pageSize: 34,
66
+ })
67
+
68
+ // const columnKeys = ref<UI_I_ColumnKey[]>(serversTable.columnKeys(localization.value))
69
+ const headItems = computed<UI_I_HeadItem[]>(() =>
70
+ serversTable.headItems(localization.value)
71
+ )
72
+
73
+ const bodyItems = ref<UI_I_BodyItem[][]>([])
74
+ watch(
75
+ () => props.dataTable,
76
+ (val) => {
77
+ if (!val?.length) {
78
+ bodyItems.value = []
79
+ return
80
+ }
81
+
82
+ bodyItems.value = serversTable.bodyItems(val)
83
+ },
84
+ { deep: true, immediate: true }
85
+ )
86
+
87
+ const selectedServerForRemove = ref<number | null>(null)
88
+ const showTooltip = ref<boolean>(false)
89
+ const onShowTooltipForRemove = (server: UI_I_BodyItem[]): void => {
90
+ selectedServerForRemove.value = server[0].id
91
+ showTooltip.value = true
92
+ }
93
+ const onRemoveServerFromList = (removeItem: UI_I_BodyItem[]): void => {
94
+ const { text } = removeItem[0]
95
+
96
+ const serverList = props.dataTable.filter(
97
+ (server: UI_I_DataServersListItem) => server.server_name !== text
98
+ )
99
+ emits('update:data-table', serverList)
100
+ showTooltip.value = false
101
+ }
102
+ </script>
103
+
104
+ <style lang="scss" scoped>
105
+ .servers-list {
106
+ height: inherit;
107
+ .data-table {
108
+ &__action-icon {
109
+ width: 16px;
110
+ height: 16px;
111
+ cursor: pointer;
112
+ position: relative;
113
+ fill: var(--ellipsis-vertical-icon-color);
114
+ }
115
+
116
+ height: inherit;
117
+ :deep(.datagrid-outer-wrapper) {
118
+ height: inherit;
119
+ padding-top: 0;
120
+ }
121
+ }
122
+ }
123
+ </style>
@@ -1,54 +1,54 @@
1
- <template>
2
- <div class="kerberos-auth">
3
- <atoms-alert
4
- v-show="isShowAlert"
5
- test-id="kerberos-authentication"
6
- status="alert-warning"
7
- :items="[localization.kerberosAuthenticationAlert]"
8
- @remove="isShowAlert = false"
9
- />
10
-
11
- <div class="kerberos-auth__inner">
12
- <div v-for="item in kerberosTypes" :key="item.value" class="radio">
13
- <input
14
- :id="item.label"
15
- v-model="kerberosType"
16
- type="radio"
17
- :value="item.value"
18
- />
19
- <label :for="item.label">
20
- {{ item.label }}
21
- </label>
22
- </div>
23
- </div>
24
- </div>
25
- </template>
26
-
27
- <script lang="ts" setup>
28
- import { UI_I_Localization } from '~/models/interfaces'
29
- import { UI_I_RadioOption } from '~/components/common/select/radio/models/interfaces'
30
- import { UI_T_KerberosAuthentication } from '~/components/common/wizards/datastore/add/models/types'
31
- import { kerberosOptionsFunc } from '~/components/common/wizards/datastore/add/nfs/kerberosAuthentication/config/radioOptions'
32
-
33
- const localization = computed<UI_I_Localization>(() => useLocal())
34
-
35
- const kerberosType = ref<UI_T_KerberosAuthentication>('dont-use')
36
- const isShowAlert = ref<boolean>(true)
37
-
38
- const kerberosTypes = readonly<UI_I_RadioOption[]>(
39
- kerberosOptionsFunc(localization.value)
40
- )
41
- </script>
42
-
43
- <style lang="scss" scoped>
44
- .kerberos-auth {
45
- &__inner {
46
- margin-top: 12px;
47
- }
48
- }
49
-
50
- input[type='radio']:focus:checked + label::before,
51
- input[type='radio']:focus + label::before {
52
- box-shadow: inset 0 0 0 0.25rem #0094d2;
53
- }
54
- </style>
1
+ <template>
2
+ <div class="kerberos-auth">
3
+ <atoms-alert
4
+ v-show="isShowAlert"
5
+ test-id="kerberos-authentication"
6
+ status="alert-warning"
7
+ :items="[localization.kerberosAuthenticationAlert]"
8
+ @remove="isShowAlert = false"
9
+ />
10
+
11
+ <div class="kerberos-auth__inner">
12
+ <div v-for="item in kerberosTypes" :key="item.value" class="radio">
13
+ <input
14
+ :id="item.label"
15
+ v-model="kerberosType"
16
+ type="radio"
17
+ :value="item.value"
18
+ />
19
+ <label :for="item.label">
20
+ {{ item.label }}
21
+ </label>
22
+ </div>
23
+ </div>
24
+ </div>
25
+ </template>
26
+
27
+ <script lang="ts" setup>
28
+ import { UI_I_Localization } from '~/models/interfaces'
29
+ import { UI_I_RadioOption } from '~/components/common/select/radio/models/interfaces'
30
+ import { UI_T_KerberosAuthentication } from '~/components/common/wizards/datastore/add/models/types'
31
+ import { kerberosOptionsFunc } from '~/components/common/wizards/datastore/add/nfs/kerberosAuthentication/config/radioOptions'
32
+
33
+ const localization = computed<UI_I_Localization>(() => useLocal())
34
+
35
+ const kerberosType = ref<UI_T_KerberosAuthentication>('dont-use')
36
+ const isShowAlert = ref<boolean>(true)
37
+
38
+ const kerberosTypes = readonly<UI_I_RadioOption[]>(
39
+ kerberosOptionsFunc(localization.value)
40
+ )
41
+ </script>
42
+
43
+ <style lang="scss" scoped>
44
+ .kerberos-auth {
45
+ &__inner {
46
+ margin-top: 12px;
47
+ }
48
+ }
49
+
50
+ input[type='radio']:focus:checked + label::before,
51
+ input[type='radio']:focus + label::before {
52
+ box-shadow: inset 0 0 0 0.25rem #0094d2;
53
+ }
54
+ </style>
@@ -1,131 +1,131 @@
1
- <template>
2
- <div class="data-table-view">
3
- <atoms-table-data-grid
4
- test-id="host-table"
5
- v-model:selected-row="selectedDisk"
6
- v-model:column-keys="columnKeys"
7
- v-model:page-size="pagination.pageSize"
8
- v-model:page="pagination.page"
9
- type="checkbox"
10
- class="data-table"
11
- :head-items="headItems"
12
- :body-items="bodyItems"
13
- :total-items="props.totalItems"
14
- :total-pages="props.totalPages"
15
- :loading="loading"
16
- hide-page-size
17
- @filtering="filtering"
18
- @sorting="sorting"
19
- >
20
- <template #icon="{ item }">
21
- <span :class="['datagrid-cell-icon', item.data.iconClassName]" />
22
- <span class="text-ellipsis">
23
- {{ item.text }}
24
- </span>
25
- </template>
26
- </atoms-table-data-grid>
27
- </div>
28
- </template>
29
-
30
- <script lang="ts" setup>
31
- import {
32
- UI_I_HeadItem,
33
- UI_I_ColumnKey,
34
- UI_I_BodyItem,
35
- } from '~/components/atoms/table/dataGrid/models/interfaces'
36
- import { UI_I_Localization, UI_I_Pagination } from '~/models/interfaces'
37
- // import { optionsDefault as itemsPerPage } from '~/node_modules/nuxt-3-uikit/components/atoms/table/dataGrid/config'
38
- import { UI_I_CreateStorageLunDiskItem } from '~/components/common/wizards/datastore/add/sharedStorm/deviceSelection/models/interfaces'
39
- import * as hostsTable from '~/components/common/wizards/datastore/add/sharedStorm/deviceSelection/hostTable/config/hostsTable'
40
-
41
- const props = defineProps<{
42
- dataTable: UI_I_CreateStorageLunDiskItem[]
43
- selected: number[] | null
44
- loading: boolean
45
- totalItems: number
46
- totalPages: number
47
- pagination: UI_I_Pagination
48
- }>()
49
- const emits = defineEmits<{
50
- (event: 'update:selected', value: number[] | null): void
51
- (event: 'pagination', value: UI_I_Pagination): void
52
- (event: 'sort', str: string): void
53
- }>()
54
-
55
- const localization = computed<UI_I_Localization>(() => useLocal())
56
-
57
- const selectedDisk = computed<number[] | null>({
58
- get() {
59
- return props.selected
60
- },
61
- set(value) {
62
- emits('update:selected', value)
63
- },
64
- })
65
-
66
- const filtering = (e: [string, string][]): void => {
67
- console.log(e, 111)
68
- }
69
- const sorting = (e: [number, boolean]): void => {
70
- const [column, status] = e
71
- const direction = status ? 'desc' : 'asc'
72
-
73
- const sort = `${column}.${direction}`
74
-
75
- emits('sort', sort)
76
- }
77
-
78
- const pagination = ref<UI_I_Pagination>({
79
- page: 1,
80
- pageSize: 1,
81
- })
82
- watch(
83
- () => props.pagination,
84
- (val) => {
85
- pagination.value = val
86
- },
87
- { immediate: true }
88
- )
89
- watch(
90
- pagination,
91
- (val) => {
92
- emits('pagination', val)
93
- },
94
- { deep: true, immediate: true }
95
- )
96
-
97
- const columnKeys = ref<UI_I_ColumnKey[]>(
98
- hostsTable.columnKeys(localization.value)
99
- )
100
-
101
- const headItems = computed<UI_I_HeadItem[]>(() =>
102
- hostsTable.headItems(localization.value)
103
- )
104
-
105
- const bodyItems = ref<UI_I_BodyItem[][]>([])
106
- watch(
107
- () => props.dataTable,
108
- (val) => {
109
- if (!val?.length) {
110
- bodyItems.value = []
111
- return
112
- }
113
-
114
- bodyItems.value = hostsTable.bodyItems(val)
115
- },
116
- { deep: true, immediate: true }
117
- )
118
- </script>
119
-
120
- <style lang="scss" scoped>
121
- .data-table-view {
122
- height: inherit;
123
- overflow: hidden;
124
- .data-table {
125
- height: inherit;
126
- :deep(.datagrid-outer-wrapper) {
127
- height: inherit;
128
- }
129
- }
130
- }
131
- </style>
1
+ <template>
2
+ <div class="data-table-view">
3
+ <atoms-table-data-grid
4
+ test-id="host-table"
5
+ v-model:selected-row="selectedDisk"
6
+ v-model:column-keys="columnKeys"
7
+ v-model:page-size="pagination.pageSize"
8
+ v-model:page="pagination.page"
9
+ type="checkbox"
10
+ class="data-table"
11
+ :head-items="headItems"
12
+ :body-items="bodyItems"
13
+ :total-items="props.totalItems"
14
+ :total-pages="props.totalPages"
15
+ :loading="loading"
16
+ hide-page-size
17
+ @filtering="filtering"
18
+ @sorting="sorting"
19
+ >
20
+ <template #icon="{ item }">
21
+ <span :class="['datagrid-cell-icon', item.data.iconClassName]" />
22
+ <span class="text-ellipsis">
23
+ {{ item.text }}
24
+ </span>
25
+ </template>
26
+ </atoms-table-data-grid>
27
+ </div>
28
+ </template>
29
+
30
+ <script lang="ts" setup>
31
+ import {
32
+ UI_I_HeadItem,
33
+ UI_I_ColumnKey,
34
+ UI_I_BodyItem,
35
+ } from '~/components/atoms/table/dataGrid/models/interfaces'
36
+ import { UI_I_Localization, UI_I_Pagination } from '~/models/interfaces'
37
+ // import { optionsDefault as itemsPerPage } from '~/node_modules/nuxt-3-uikit/components/atoms/table/dataGrid/config'
38
+ import { UI_I_CreateStorageLunDiskItem } from '~/components/common/wizards/datastore/add/sharedStorm/deviceSelection/models/interfaces'
39
+ import * as hostsTable from '~/components/common/wizards/datastore/add/sharedStorm/deviceSelection/hostTable/config/hostsTable'
40
+
41
+ const props = defineProps<{
42
+ dataTable: UI_I_CreateStorageLunDiskItem[]
43
+ selected: number[] | null
44
+ loading: boolean
45
+ totalItems: number
46
+ totalPages: number
47
+ pagination: UI_I_Pagination
48
+ }>()
49
+ const emits = defineEmits<{
50
+ (event: 'update:selected', value: number[] | null): void
51
+ (event: 'pagination', value: UI_I_Pagination): void
52
+ (event: 'sort', str: string): void
53
+ }>()
54
+
55
+ const localization = computed<UI_I_Localization>(() => useLocal())
56
+
57
+ const selectedDisk = computed<number[] | null>({
58
+ get() {
59
+ return props.selected
60
+ },
61
+ set(value) {
62
+ emits('update:selected', value)
63
+ },
64
+ })
65
+
66
+ const filtering = (e: [string, string][]): void => {
67
+ console.log(e, 111)
68
+ }
69
+ const sorting = (e: [number, boolean]): void => {
70
+ const [column, status] = e
71
+ const direction = status ? 'desc' : 'asc'
72
+
73
+ const sort = `${column}.${direction}`
74
+
75
+ emits('sort', sort)
76
+ }
77
+
78
+ const pagination = ref<UI_I_Pagination>({
79
+ page: 1,
80
+ pageSize: 1,
81
+ })
82
+ watch(
83
+ () => props.pagination,
84
+ (val) => {
85
+ pagination.value = val
86
+ },
87
+ { immediate: true }
88
+ )
89
+ watch(
90
+ pagination,
91
+ (val) => {
92
+ emits('pagination', val)
93
+ },
94
+ { deep: true, immediate: true }
95
+ )
96
+
97
+ const columnKeys = ref<UI_I_ColumnKey[]>(
98
+ hostsTable.columnKeys(localization.value)
99
+ )
100
+
101
+ const headItems = computed<UI_I_HeadItem[]>(() =>
102
+ hostsTable.headItems(localization.value)
103
+ )
104
+
105
+ const bodyItems = ref<UI_I_BodyItem[][]>([])
106
+ watch(
107
+ () => props.dataTable,
108
+ (val) => {
109
+ if (!val?.length) {
110
+ bodyItems.value = []
111
+ return
112
+ }
113
+
114
+ bodyItems.value = hostsTable.bodyItems(val)
115
+ },
116
+ { deep: true, immediate: true }
117
+ )
118
+ </script>
119
+
120
+ <style lang="scss" scoped>
121
+ .data-table-view {
122
+ height: inherit;
123
+ overflow: hidden;
124
+ .data-table {
125
+ height: inherit;
126
+ :deep(.datagrid-outer-wrapper) {
127
+ height: inherit;
128
+ }
129
+ }
130
+ }
131
+ </style>