bfg-common 1.1.30 → 1.1.31

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 (75) hide show
  1. package/assets/localization/local_be.json +4 -1
  2. package/assets/localization/local_en.json +4 -1
  3. package/assets/localization/local_hy.json +4 -1
  4. package/assets/localization/local_kk.json +4 -1
  5. package/assets/localization/local_ru.json +4 -1
  6. package/assets/localization/local_zh.json +4 -1
  7. package/components/atoms/alert/Notification.vue +167 -167
  8. package/components/atoms/autocomplete/Autocomplete.vue +236 -236
  9. package/components/atoms/datepicker/Datepicker.vue +612 -612
  10. package/components/atoms/list/SelectList.vue +62 -62
  11. package/components/atoms/nav/NavBar.vue +116 -116
  12. package/components/atoms/nav/VerticalNavBar.vue +89 -89
  13. package/components/atoms/notificationBar/NotificationBar.vue +174 -174
  14. package/components/atoms/perPage/PerPage.vue +52 -52
  15. package/components/atoms/popup/SimplePopup.vue +90 -90
  16. package/components/atoms/step/VerticalStep.vue +104 -104
  17. package/components/atoms/switch/Switch.vue +107 -107
  18. package/components/atoms/table/dataGrid/DataGridColumnSwitch.vue +204 -204
  19. package/components/atoms/table/dataGrid/DataGridPage.vue +189 -189
  20. package/components/atoms/tabs/Tabs.vue +189 -189
  21. package/components/atoms/tooltip/Signpost.vue +224 -224
  22. package/components/common/adapterManager/AddAdapterWarningModal.vue +82 -82
  23. package/components/common/adapterManager/NoActiveAdaptersModal.vue +62 -62
  24. package/components/common/adapterManager/NoConnectedActiveAdaptersModal.vue +62 -62
  25. package/components/common/browse/Browse.vue +182 -182
  26. package/components/common/browse/blocks/Title.vue +66 -66
  27. package/components/common/diagramMain/adapter/AdapterItem.vue +227 -227
  28. package/components/common/diagramMain/adapter/AdapterItems.vue +57 -57
  29. package/components/common/diagramMain/modals/editSettings/tabs/port/IpvFourSettings.vue +339 -339
  30. package/components/common/diagramMain/modals/editSettings/tabs/port/PortProperties.vue +202 -202
  31. package/components/common/diagramMain/modals/remove/RemoveModal.vue +226 -226
  32. package/components/common/diagramMain/network/Contents.vue +238 -238
  33. package/components/common/feedback/Buttons.vue +232 -232
  34. package/components/common/feedback/Message.vue +468 -468
  35. package/components/common/feedback/VisitPortal.vue +54 -54
  36. package/components/common/help/navbar/left/Left.vue +159 -159
  37. package/components/common/help/navbar/left/utils/constructAccordion.ts +27 -27
  38. package/components/common/mainNavigationPanel/MainNavigationPanel.vue +359 -359
  39. package/components/common/modals/Confirmation.vue +18 -4
  40. package/components/common/modals/Rename.vue +165 -165
  41. package/components/common/monitor/advanced/Advanced.vue +22 -0
  42. package/components/common/monitor/advanced/tools/Tools.vue +78 -7
  43. package/components/common/monitor/advanced/tools/chartOptionsModal/ChartOptionsModal.vue +218 -9
  44. package/components/common/monitor/advanced/tools/chartOptionsModal/actions/Actions.vue +80 -9
  45. package/components/common/monitor/advanced/tools/chartOptionsModal/actions/config/optionsActions.ts +22 -10
  46. package/components/common/monitor/advanced/tools/chartOptionsModal/actions/saveOptionsModal/SaveOptionsModal.vue +27 -4
  47. package/components/common/monitor/advanced/tools/chartOptionsModal/counters/Counters.vue +16 -0
  48. package/components/common/monitor/advanced/tools/chartOptionsModal/counters/timespan/Timespan.vue +16 -0
  49. package/components/common/monitor/advanced/tools/chartOptionsModal/counters/timespan/form/Form.vue +100 -29
  50. package/components/common/monitor/advanced/tools/config/advancedToolbar.ts +29 -3
  51. package/components/common/perPage/PerPage.vue +51 -51
  52. package/components/common/recursionTree/RecursionTree.vue +201 -201
  53. package/components/common/vm/actions/add/customizeHardware/virtualHardware/newHardDisk/NewHardDisk.vue +445 -445
  54. package/components/common/vm/actions/add/select/storage/config/config.ts +154 -154
  55. package/components/common/wizards/datastore/add/nfs/configuration/Configuration.vue +373 -373
  56. package/components/common/wizards/datastore/add/nfs/configuration/serversList/ServersList.vue +123 -123
  57. package/components/common/wizards/datastore/add/nfs/kerberosAuthentication/KerberosAuthentication.vue +54 -54
  58. package/components/common/wizards/datastore/add/sharedStorm/deviceSelection/hostTable/HostTable.vue +131 -131
  59. package/components/common/wizards/datastore/add/sharedStorm/partitionConfiguration/PartitionConfiguration.vue +230 -230
  60. package/models/store/interfaces.ts +37 -37
  61. package/models/store/storage/interfaces.ts +32 -32
  62. package/models/store/types.ts +32 -32
  63. package/modules/fixContentBuild/index.ts +92 -92
  64. package/modules/fixContentBuild/utils/methods.ts +114 -114
  65. package/package.json +1 -1
  66. package/public/spice-console/application/codec.js +257 -257
  67. package/public/spice-console/lib/rasterEngine.js +907 -907
  68. package/public/spice-console/network/spicechannel.js +369 -369
  69. package/public/spice-console-minify/lib/decoder/dixie.min.js +4 -4
  70. package/public/spice-console-minify/lib/jgestures.min.js +24 -24
  71. package/public/spice-console-minify/lib/jquery-2.0.3.min.js +24 -24
  72. package/public/spice-console-minify/lib/jquery-mousewheel.min.js +11 -11
  73. package/public/spice-console-minify/lib/jquery-visibility.min.js +1 -1
  74. package/public/spice-console-minify/lib/lodash.4.0.0.min.js +5 -5
  75. package/utils/contentBuild.ts +34 -34
@@ -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>