zavadil-react-common 1.2.126 → 1.2.128
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/component/tables/AdvancedTable.d.ts +3 -1
- package/dist/component/tables/TableWithSelect.d.ts +3 -4
- package/dist/index.d.ts +7 -5
- package/dist/index.esm.js +1 -1
- package/dist/index.esm.js.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/package.json +2 -2
- package/src/component/tables/AdvancedTable.tsx +47 -31
- package/src/component/tables/TableWithSelect.tsx +4 -4
|
@@ -28,6 +28,8 @@ export type AdvancedTableProps = {
|
|
|
28
28
|
paging: PagingRequest;
|
|
29
29
|
totalItems: number;
|
|
30
30
|
hover?: boolean;
|
|
31
|
+
showPagingOnBottom?: boolean;
|
|
32
|
+
showPageSizeSelection?: boolean;
|
|
31
33
|
striped?: boolean;
|
|
32
34
|
bordered?: boolean;
|
|
33
35
|
onPagingChanged: (p: PagingRequest) => any
|
|
@@ -35,6 +37,8 @@ export type AdvancedTableProps = {
|
|
|
35
37
|
|
|
36
38
|
export function AdvancedTable({
|
|
37
39
|
hover,
|
|
40
|
+
showPagingOnBottom,
|
|
41
|
+
showPageSizeSelection,
|
|
38
42
|
striped,
|
|
39
43
|
bordered,
|
|
40
44
|
header,
|
|
@@ -82,7 +86,9 @@ export function AdvancedTable({
|
|
|
82
86
|
<td colSpan={header.length}>
|
|
83
87
|
<div className="d-flex justify-content-between align-items-center gap-2">
|
|
84
88
|
<div><Localize text='Page'/>: {paging.page + 1} / {totalPages}</div>
|
|
85
|
-
|
|
89
|
+
{
|
|
90
|
+
totalPages > 0 && <TablePagination paging={paging} totalItems={totalItems} onPagingChanged={onPagingChanged}/>
|
|
91
|
+
}
|
|
86
92
|
<div><Localize text='Total items'/>: {totalItems}</div>
|
|
87
93
|
</div>
|
|
88
94
|
</td>
|
|
@@ -117,37 +123,47 @@ export function AdvancedTable({
|
|
|
117
123
|
<tbody>
|
|
118
124
|
{children}
|
|
119
125
|
</tbody>
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
<
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
<tr>
|
|
131
|
-
<td colSpan={header.length}>
|
|
132
|
-
<div className="d-flex align-items-center gap-2 justify-content-end">
|
|
133
|
-
<div className="text-nowrap"><Localize text='Page size'/>:</div>
|
|
134
|
-
<div>
|
|
135
|
-
<NumberSelect
|
|
136
|
-
value={paging.size}
|
|
137
|
-
options={sizes}
|
|
138
|
-
onChange={
|
|
139
|
-
(e) => {
|
|
140
|
-
paging.size = e || 10
|
|
141
|
-
onPagingChanged({...paging});
|
|
142
|
-
}
|
|
126
|
+
{
|
|
127
|
+
totalItems > 0 && <tfoot>
|
|
128
|
+
{
|
|
129
|
+
showPagingOnBottom &&
|
|
130
|
+
<tr>
|
|
131
|
+
<td colSpan={header.length}>
|
|
132
|
+
<div className="d-flex justify-content-between align-items-center gap-2">
|
|
133
|
+
<div><Localize text='Page'/>: {paging.page + 1} / {totalPages}</div>
|
|
134
|
+
{
|
|
135
|
+
totalPages > 0 && <TablePagination paging={paging} totalItems={totalItems} onPagingChanged={onPagingChanged}/>
|
|
143
136
|
}
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
</
|
|
147
|
-
</
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
137
|
+
<div><Localize text='Total items'/>: {totalItems}</div>
|
|
138
|
+
</div>
|
|
139
|
+
</td>
|
|
140
|
+
</tr>
|
|
141
|
+
}
|
|
142
|
+
{
|
|
143
|
+
showPageSizeSelection &&
|
|
144
|
+
<tr>
|
|
145
|
+
<td colSpan={header.length}>
|
|
146
|
+
<div className="d-flex align-items-center gap-2 justify-content-end">
|
|
147
|
+
<div className="text-nowrap"><Localize text='Page size'/>:</div>
|
|
148
|
+
<div>
|
|
149
|
+
<NumberSelect
|
|
150
|
+
value={paging.size}
|
|
151
|
+
options={sizes}
|
|
152
|
+
onChange={
|
|
153
|
+
(e) => {
|
|
154
|
+
paging.size = e || 10
|
|
155
|
+
onPagingChanged({...paging});
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
showEmptyOption={false}
|
|
159
|
+
/>
|
|
160
|
+
</div>
|
|
161
|
+
</div>
|
|
162
|
+
</td>
|
|
163
|
+
</tr>
|
|
164
|
+
}
|
|
165
|
+
</tfoot>
|
|
166
|
+
}
|
|
151
167
|
</Table>
|
|
152
168
|
</div>
|
|
153
169
|
);
|
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
import React, {useCallback, useEffect, useMemo, useState} from 'react';
|
|
2
|
-
import {
|
|
2
|
+
import {ObjectUtil} from 'zavadil-ts-common';
|
|
3
3
|
import {AdvancedTable, AdvancedTableProps} from "./AdvancedTable";
|
|
4
4
|
import {RenderFunc, SelectableTableHeader, TableHeader} from "./TableTypes";
|
|
5
5
|
import {BsCheckAll} from "react-icons/bs";
|
|
6
6
|
import IconCheck from "../forms/IconCheck";
|
|
7
7
|
|
|
8
|
-
export type SelectableItem<T
|
|
8
|
+
export type SelectableItem<T> = {
|
|
9
9
|
selected: boolean;
|
|
10
10
|
item: T;
|
|
11
11
|
};
|
|
12
12
|
|
|
13
|
-
export type TableWithSelectProps<T
|
|
13
|
+
export type TableWithSelectProps<T> = Omit<AdvancedTableProps, 'header'> & {
|
|
14
14
|
showSelect?: boolean;
|
|
15
15
|
header: SelectableTableHeader<T>;
|
|
16
16
|
items?: Array<T>;
|
|
@@ -22,7 +22,7 @@ function createRenderer<T>(name: string): RenderFunc<T> {
|
|
|
22
22
|
return (e: T) => ObjectUtil.getNestedValue(e, name);
|
|
23
23
|
}
|
|
24
24
|
|
|
25
|
-
export function TableWithSelect<T
|
|
25
|
+
export function TableWithSelect<T>({
|
|
26
26
|
showSelect,
|
|
27
27
|
header,
|
|
28
28
|
items,
|