bfg-common 1.1.76 → 1.1.78

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 (82) 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/nav/NavBar.vue +116 -116
  6. package/components/atoms/nav/VerticalNavBar.vue +89 -89
  7. package/components/atoms/notificationBar/NotificationBar.vue +175 -175
  8. package/components/atoms/perPage/PerPage.vue +52 -52
  9. package/components/atoms/popup/SimplePopup.vue +90 -90
  10. package/components/atoms/step/VerticalStep.vue +104 -104
  11. package/components/atoms/switch/Switch.vue +107 -107
  12. package/components/atoms/table/dataGrid/DataGridColumnSwitch.vue +206 -206
  13. package/components/atoms/table/dataGrid/DataGridPage.vue +189 -189
  14. package/components/atoms/tabs/Tabs.vue +189 -189
  15. package/components/atoms/tooltip/Signpost.vue +224 -224
  16. package/components/common/adapterManager/AddAdapterWarningModal.vue +82 -82
  17. package/components/common/adapterManager/NoActiveAdaptersModal.vue +62 -62
  18. package/components/common/adapterManager/NoConnectedActiveAdaptersModal.vue +62 -62
  19. package/components/common/browse/Browse.vue +182 -182
  20. package/components/common/browse/blocks/Title.vue +66 -66
  21. package/components/common/diagramMain/Diagram.vue +186 -186
  22. package/components/common/diagramMain/DiagramMain.vue +986 -986
  23. package/components/common/diagramMain/adapter/AdapterItem.vue +227 -227
  24. package/components/common/diagramMain/adapter/AdapterItems.vue +57 -57
  25. package/components/common/diagramMain/modals/editSettings/tabs/port/IpvFourSettings.vue +339 -339
  26. package/components/common/diagramMain/modals/editSettings/tabs/port/PortProperties.vue +202 -202
  27. package/components/common/diagramMain/modals/remove/RemoveModal.vue +226 -226
  28. package/components/common/diagramMain/network/Contents.vue +238 -238
  29. package/components/common/feedback/Buttons.vue +232 -232
  30. package/components/common/feedback/Message.vue +468 -468
  31. package/components/common/feedback/VisitPortal.vue +54 -54
  32. package/components/common/help/navbar/left/Left.vue +159 -159
  33. package/components/common/help/navbar/left/utils/constructAccordion.ts +27 -27
  34. package/components/common/mainNavigationPanel/MainNavigationPanel.vue +359 -359
  35. package/components/common/modals/Rename.vue +165 -165
  36. package/components/common/monitor/advanced/Advanced.vue +214 -221
  37. package/components/common/monitor/advanced/tools/Tools.vue +422 -441
  38. package/components/common/monitor/advanced/tools/chartOptionsModal/ChartOptionsModal.vue +452 -424
  39. package/components/common/monitor/advanced/tools/chartOptionsModal/counters/Counters.vue +93 -86
  40. package/components/common/monitor/advanced/tools/chartOptionsModal/counters/table/Table.vue +130 -121
  41. package/components/common/monitor/advanced/tools/chartOptionsModal/counters/table/config/utils.ts +689 -688
  42. package/components/common/monitor/advanced/tools/chartOptionsModal/counters/timespan/Timespan.vue +76 -73
  43. package/components/common/monitor/advanced/tools/chartOptionsModal/counters/timespan/object/Object.vue +176 -129
  44. package/components/common/monitor/advanced/tools/chartOptionsModal/models/models.ts +19 -0
  45. package/components/common/perPage/PerPage.vue +51 -51
  46. package/components/common/recursionTree/RecursionTree.vue +201 -201
  47. package/components/common/vm/actions/add/config/capabilities.ts +777 -777
  48. package/components/common/vm/actions/add/customizeHardware/virtualHardware/VirtualHardware.vue +646 -646
  49. package/components/common/vm/actions/add/customizeHardware/virtualHardware/cdDvdDrive/CdDvdDrive.vue +246 -246
  50. package/components/common/vm/actions/add/customizeHardware/virtualHardware/cpu/Cpu.vue +375 -375
  51. package/components/common/vm/actions/add/customizeHardware/virtualHardware/limit/Limit.vue +234 -234
  52. package/components/common/vm/actions/add/customizeHardware/virtualHardware/limit/config/options.ts +28 -28
  53. package/components/common/vm/actions/add/customizeHardware/virtualHardware/memory/Memory.vue +316 -316
  54. package/components/common/vm/actions/add/customizeHardware/virtualHardware/memory/config/memoryOptions.ts +35 -35
  55. package/components/common/vm/actions/add/customizeHardware/virtualHardware/newHardDisk/NewHardDisk.vue +445 -445
  56. package/components/common/vm/actions/add/customizeHardware/virtualHardware/reservation/Reservation.vue +235 -235
  57. package/components/common/vm/actions/add/customizeHardware/virtualHardware/videoCard/VideoCard.vue +177 -177
  58. package/components/common/vm/actions/add/customizeHardware/vmoptions/bootOptions/order/Order.vue +197 -197
  59. package/components/common/vm/actions/add/customizeHardware/vmoptions/generalOptions/GeneralOptions.vue +180 -180
  60. package/components/common/vm/actions/add/customizeHardware/vmoptions/remoteConsoleOptions/CopyPaste.vue +51 -51
  61. package/components/common/vm/actions/add/customizeHardware/vmoptions/remoteConsoleOptions/keymap/Keymap.vue +55 -55
  62. package/components/common/vm/actions/add/select/storage/config/config.ts +154 -154
  63. package/components/common/wizards/datastore/add/nfs/configuration/Configuration.vue +373 -373
  64. package/components/common/wizards/datastore/add/nfs/configuration/serversList/ServersList.vue +123 -123
  65. package/components/common/wizards/datastore/add/nfs/kerberosAuthentication/KerberosAuthentication.vue +54 -54
  66. package/components/common/wizards/datastore/add/sharedStorm/deviceSelection/hostTable/HostTable.vue +131 -131
  67. package/components/common/wizards/datastore/add/sharedStorm/partitionConfiguration/PartitionConfiguration.vue +230 -230
  68. package/models/store/interfaces.ts +37 -37
  69. package/models/store/storage/interfaces.ts +32 -32
  70. package/models/store/types.ts +32 -32
  71. package/modules/fixContentBuild/utils/methods.ts +114 -114
  72. package/package.json +1 -1
  73. package/public/spice-console/application/codec.js +257 -257
  74. package/public/spice-console/lib/rasterEngine.js +907 -907
  75. package/public/spice-console/network/spicechannel.js +369 -369
  76. package/public/spice-console-minify/lib/decoder/dixie.min.js +4 -4
  77. package/public/spice-console-minify/lib/jgestures.min.js +24 -24
  78. package/public/spice-console-minify/lib/jquery-2.0.3.min.js +24 -24
  79. package/public/spice-console-minify/lib/jquery-mousewheel.min.js +11 -11
  80. package/public/spice-console-minify/lib/jquery-visibility.min.js +1 -1
  81. package/public/spice-console-minify/lib/lodash.4.0.0.min.js +5 -5
  82. 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>