@qoretechnologies/reqore 0.34.13 → 0.35.0
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/__tests__/helpers/table.test.tsx +47 -0
- package/__tests__/table.test.tsx +158 -123
- package/dist/components/Button/index.d.ts +2 -0
- package/dist/components/Button/index.d.ts.map +1 -1
- package/dist/components/Button/index.js +7 -4
- package/dist/components/Button/index.js.map +1 -1
- package/dist/components/Collection/index.d.ts +2 -1
- package/dist/components/Collection/index.d.ts.map +1 -1
- package/dist/components/Collection/index.js +5 -11
- package/dist/components/Collection/index.js.map +1 -1
- package/dist/components/ControlGroup/index.d.ts.map +1 -1
- package/dist/components/ControlGroup/index.js +4 -3
- package/dist/components/ControlGroup/index.js.map +1 -1
- package/dist/components/Dropdown/index.d.ts +4 -1
- package/dist/components/Dropdown/index.d.ts.map +1 -1
- package/dist/components/Dropdown/index.js +2 -2
- package/dist/components/Dropdown/index.js.map +1 -1
- package/dist/components/Dropdown/list.d.ts +4 -1
- package/dist/components/Dropdown/list.d.ts.map +1 -1
- package/dist/components/Dropdown/list.js +10 -5
- package/dist/components/Dropdown/list.js.map +1 -1
- package/dist/components/Input/index.js +4 -4
- package/dist/components/Input/index.js.map +1 -1
- package/dist/components/Panel/index.d.ts +4 -1
- package/dist/components/Panel/index.d.ts.map +1 -1
- package/dist/components/Panel/index.js.map +1 -1
- package/dist/components/Table/cell.d.ts +12 -0
- package/dist/components/Table/cell.d.ts.map +1 -0
- package/dist/components/Table/cell.js +89 -0
- package/dist/components/Table/cell.js.map +1 -0
- package/dist/components/Table/header.d.ts +15 -2
- package/dist/components/Table/header.d.ts.map +1 -1
- package/dist/components/Table/header.js +31 -14
- package/dist/components/Table/header.js.map +1 -1
- package/dist/components/Table/headerCell.d.ts +8 -6
- package/dist/components/Table/headerCell.d.ts.map +1 -1
- package/dist/components/Table/headerCell.js +60 -51
- package/dist/components/Table/headerCell.js.map +1 -1
- package/dist/components/Table/helpers.d.ts +39 -1
- package/dist/components/Table/helpers.d.ts.map +1 -1
- package/dist/components/Table/helpers.js +145 -1
- package/dist/components/Table/helpers.js.map +1 -1
- package/dist/components/Table/index.d.ts +39 -25
- package/dist/components/Table/index.d.ts.map +1 -1
- package/dist/components/Table/index.js +139 -52
- package/dist/components/Table/index.js.map +1 -1
- package/dist/components/Table/row.d.ts +9 -4
- package/dist/components/Table/row.d.ts.map +1 -1
- package/dist/components/Table/row.js +30 -54
- package/dist/components/Table/row.js.map +1 -1
- package/dist/hooks/useQueryWithDelay.d.ts +8 -0
- package/dist/hooks/useQueryWithDelay.d.ts.map +1 -0
- package/dist/hooks/useQueryWithDelay.js +25 -0
- package/dist/hooks/useQueryWithDelay.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +7 -1
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
- package/src/components/Button/index.tsx +6 -1
- package/src/components/Collection/index.tsx +9 -15
- package/src/components/ControlGroup/index.tsx +10 -5
- package/src/components/Dropdown/index.tsx +9 -0
- package/src/components/Dropdown/list.tsx +18 -6
- package/src/components/Input/index.tsx +3 -3
- package/src/components/Panel/index.tsx +3 -1
- package/src/components/Table/cell.tsx +117 -0
- package/src/components/Table/header.tsx +102 -45
- package/src/components/Table/headerCell.tsx +123 -80
- package/src/components/Table/helpers.ts +206 -1
- package/src/components/Table/index.tsx +288 -90
- package/src/components/Table/row.tsx +47 -125
- package/src/hooks/useQueryWithDelay.ts +30 -0
- package/src/index.tsx +3 -0
- package/src/mock/tableData.ts +40 -20
- package/src/stories/Breadcrumbs/Breadcrumbs.stories.tsx +1 -1
- package/src/stories/Button/Button.stories.tsx +1 -1
- package/src/stories/Checkbox/Checkbox.stories.tsx +1 -1
- package/src/stories/Collection/Collection.stories.tsx +19 -1
- package/src/stories/Columns/Columns.stories.tsx +1 -1
- package/src/stories/Comment/Comment.stories.tsx +1 -1
- package/src/stories/ControlGroup/ControlGroup.stories.tsx +1 -1
- package/src/stories/Drawer/Drawer.stories.tsx +5 -5
- package/src/stories/Dropdown/Dropdown.stories.tsx +11 -1
- package/src/stories/Header/Header.stories.tsx +1 -1
- package/src/stories/Icon/Icon.stories.tsx +1 -1
- package/src/stories/Input/Input.stories.tsx +1 -1
- package/src/stories/Menu/Menu.stories.tsx +1 -1
- package/src/stories/Message/Message.stories.tsx +1 -1
- package/src/stories/Modal/Modal.stories.tsx +1 -1
- package/src/stories/MultiSelect/MultiSelect.stories.tsx +1 -1
- package/src/stories/Navbar/Navbar.stories.tsx +1 -1
- package/src/stories/Notifications/Interactive.stories.tsx +1 -1
- package/src/stories/Notifications/Notification.stories.tsx +1 -1
- package/src/stories/Notifications/Notifications.stories.tsx +1 -1
- package/src/stories/Paging/Paging.stories.tsx +1 -1
- package/src/stories/Panel/Panel.stories.tsx +5 -5
- package/src/stories/Paragraph/Paragraph.stories.tsx +1 -1
- package/src/stories/Popover/Popover.stories.tsx +2 -2
- package/src/stories/RadioGroup/RadioGroup.stories.tsx +1 -1
- package/src/stories/Sidebar/Sidebar.stories.tsx +2 -2
- package/src/stories/Spacer/Spacer.stories.tsx +1 -1
- package/src/stories/Spinner/Spinner.stories.tsx +1 -1
- package/src/stories/Table/Table.stories.tsx +277 -78
- package/src/stories/Tabs/Tabs.stories.tsx +1 -1
- package/src/stories/Tag/Tag.stories.tsx +1 -1
- package/src/stories/TextArea/TextArea.stories.tsx +2 -2
- package/src/stories/Tree/Tree.stories.tsx +2 -2
- package/src/stories/utils/args.ts +1 -1
- package/tests.json +1 -1
|
@@ -1,4 +1,7 @@
|
|
|
1
|
-
import { IReqoreTableSort } from '.';
|
|
1
|
+
import { IReqoreTableColumn, IReqoreTableSort } from '.';
|
|
2
|
+
import { TSizes } from '../../constants/sizes';
|
|
3
|
+
import { IReqoreIconName } from '../../types/icons';
|
|
4
|
+
import { IReqorePanelAction } from '../Panel';
|
|
2
5
|
export declare const flipSortDirection: (direction: 'asc' | 'desc') => 'asc' | 'desc';
|
|
3
6
|
export declare const fixSort: (sort?: IReqoreTableSort) => {
|
|
4
7
|
direction: "desc" | "asc";
|
|
@@ -6,4 +9,39 @@ export declare const fixSort: (sort?: IReqoreTableSort) => {
|
|
|
6
9
|
thenBy?: string;
|
|
7
10
|
};
|
|
8
11
|
export declare const sortTableData: (data: any[], sort: IReqoreTableSort) => any[];
|
|
12
|
+
export declare const updateColumnData: (columns: IReqoreTableColumn[], columnId: string, key: keyof IReqoreTableColumn, value: any) => IReqoreTableColumn[];
|
|
13
|
+
export declare const sizeToZoom: {
|
|
14
|
+
tiny: number;
|
|
15
|
+
small: number;
|
|
16
|
+
normal: number;
|
|
17
|
+
big: number;
|
|
18
|
+
huge: number;
|
|
19
|
+
};
|
|
20
|
+
export declare const zoomToSize: {
|
|
21
|
+
0: string;
|
|
22
|
+
0.5: string;
|
|
23
|
+
1: string;
|
|
24
|
+
1.5: string;
|
|
25
|
+
2: string;
|
|
26
|
+
};
|
|
27
|
+
export declare const zoomToWidth: {
|
|
28
|
+
0: string;
|
|
29
|
+
0.5: string;
|
|
30
|
+
1: string;
|
|
31
|
+
1.5: string;
|
|
32
|
+
2: string;
|
|
33
|
+
};
|
|
34
|
+
export declare const zoomToLabel: {
|
|
35
|
+
0: string;
|
|
36
|
+
0.5: string;
|
|
37
|
+
1: string;
|
|
38
|
+
1.5: string;
|
|
39
|
+
2: string;
|
|
40
|
+
};
|
|
41
|
+
export declare const getZoomActions: (type: string, zoom: number, setter: (zoom: number) => void) => IReqorePanelAction[];
|
|
42
|
+
export declare const getColumnsCount: (columns: IReqoreTableColumn[]) => number;
|
|
43
|
+
export declare const hasHiddenColumns: (columns: IReqoreTableColumn[]) => boolean;
|
|
44
|
+
export declare const getOnlyShownColumns: (columns: IReqoreTableColumn[]) => IReqoreTableColumn[];
|
|
45
|
+
export declare const prepareColumns: (columns: IReqoreTableColumn[], size?: TSizes) => IReqoreTableColumn[];
|
|
46
|
+
export declare const calculateMinimumCellWidth: (currentWidth?: number, size?: TSizes, icon?: IReqoreIconName, sortable?: boolean, filterable?: boolean, hideable?: boolean, resizable?: boolean) => number;
|
|
9
47
|
//# sourceMappingURL=helpers.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../../src/components/Table/helpers.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../../src/components/Table/helpers.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,GAAG,CAAC;AACzD,OAAO,EAA8B,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAC3E,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAE9C,eAAO,MAAM,iBAAiB,cAAe,KAAK,GAAG,MAAM,KAAG,KAAK,GAAG,MAChC,CAAC;AAEvC,eAAO,MAAM,OAAO,UAAW,gBAAgB;;;;CAE9C,CAAC;AAEF,eAAO,MAAM,aAAa,SAAU,GAAG,EAAE,QAAQ,gBAAgB,UAchE,CAAC;AAEF,eAAO,MAAM,gBAAgB,YAClB,kBAAkB,EAAE,YACnB,MAAM,OACX,MAAM,kBAAkB,SACtB,GAAG,KACT,kBAAkB,EAoBpB,CAAC;AAEF,eAAO,MAAM,UAAU;;;;;;CAMtB,CAAC;AAEF,eAAO,MAAM,UAAU;;;;;;CAMtB,CAAC;AAEF,eAAO,MAAM,WAAW;;;;;;CAMvB,CAAC;AAGF,eAAO,MAAM,WAAW;;;;;;CAMvB,CAAC;AAEF,eAAO,MAAM,cAAc,SACnB,MAAM,QACN,MAAM,iBACG,MAAM,KAAK,IAAI,KAC7B,kBAAkB,EA6BpB,CAAC;AAEF,eAAO,MAAM,eAAe,YAAa,kBAAkB,EAAE,KAAG,MAY/D,CAAC;AAEF,eAAO,MAAM,gBAAgB,YAAa,kBAAkB,EAAE,KAAG,OAQhE,CAAC;AAEF,eAAO,MAAM,mBAAmB,YAAa,kBAAkB,EAAE,KAAG,kBAAkB,EAwBrF,CAAC;AAEF,eAAO,MAAM,cAAc,YAChB,kBAAkB,EAAE,SACvB,MAAM,KACX,kBAAkB,EAyBpB,CAAC;AAEF,eAAO,MAAM,yBAAyB,kBACtB,MAAM,SACb,MAAM,SACN,eAAe,aACX,OAAO,eACL,OAAO,aACT,OAAO,cACN,OAAO,KAClB,MAgBF,CAAC"}
|
|
@@ -20,8 +20,10 @@ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
|
20
20
|
return to.concat(ar || Array.prototype.slice.call(from));
|
|
21
21
|
};
|
|
22
22
|
exports.__esModule = true;
|
|
23
|
-
exports.sortTableData = exports.fixSort = exports.flipSortDirection = void 0;
|
|
23
|
+
exports.calculateMinimumCellWidth = exports.prepareColumns = exports.getOnlyShownColumns = exports.hasHiddenColumns = exports.getColumnsCount = exports.getZoomActions = exports.zoomToLabel = exports.zoomToWidth = exports.zoomToSize = exports.sizeToZoom = exports.updateColumnData = exports.sortTableData = exports.fixSort = exports.flipSortDirection = void 0;
|
|
24
|
+
var lodash_1 = require("lodash");
|
|
24
25
|
var thenby_1 = require("thenby");
|
|
26
|
+
var sizes_1 = require("../../constants/sizes");
|
|
25
27
|
var flipSortDirection = function (direction) {
|
|
26
28
|
return direction === 'asc' ? 'desc' : 'asc';
|
|
27
29
|
};
|
|
@@ -41,4 +43,146 @@ var sortTableData = function (data, sort) {
|
|
|
41
43
|
return __spreadArray([], data, true).sort((0, thenby_1.firstBy)(by, { ignoreCase: true, direction: direction }));
|
|
42
44
|
};
|
|
43
45
|
exports.sortTableData = sortTableData;
|
|
46
|
+
var updateColumnData = function (columns, columnId, key, value) {
|
|
47
|
+
var newColumns = columns.map(function (column) {
|
|
48
|
+
var _a;
|
|
49
|
+
var _b;
|
|
50
|
+
if (column.dataId === columnId) {
|
|
51
|
+
return __assign(__assign({}, column), (_a = {}, _a[key] = value, _a));
|
|
52
|
+
}
|
|
53
|
+
if ((_b = column.header) === null || _b === void 0 ? void 0 : _b.columns) {
|
|
54
|
+
return __assign(__assign({}, column), { header: __assign(__assign({}, column.header), { columns: (0, exports.updateColumnData)(column.header.columns, columnId, key, value) }) });
|
|
55
|
+
}
|
|
56
|
+
return column;
|
|
57
|
+
});
|
|
58
|
+
return newColumns;
|
|
59
|
+
};
|
|
60
|
+
exports.updateColumnData = updateColumnData;
|
|
61
|
+
exports.sizeToZoom = {
|
|
62
|
+
tiny: 0,
|
|
63
|
+
small: 0.5,
|
|
64
|
+
normal: 1,
|
|
65
|
+
big: 1.5,
|
|
66
|
+
huge: 2
|
|
67
|
+
};
|
|
68
|
+
exports.zoomToSize = {
|
|
69
|
+
0: 'tiny',
|
|
70
|
+
0.5: 'small',
|
|
71
|
+
1: 'normal',
|
|
72
|
+
1.5: 'big',
|
|
73
|
+
2: 'huge'
|
|
74
|
+
};
|
|
75
|
+
exports.zoomToWidth = {
|
|
76
|
+
0: '200px',
|
|
77
|
+
0.5: '300px',
|
|
78
|
+
1: '400px',
|
|
79
|
+
1.5: '500px',
|
|
80
|
+
2: '600px'
|
|
81
|
+
};
|
|
82
|
+
// This code converts a zoom level to a label.
|
|
83
|
+
exports.zoomToLabel = {
|
|
84
|
+
0: '0.6x',
|
|
85
|
+
0.5: '0.8x',
|
|
86
|
+
1: '1x',
|
|
87
|
+
1.5: '1.2x',
|
|
88
|
+
2: '1.4x'
|
|
89
|
+
};
|
|
90
|
+
var getZoomActions = function (type, zoom, setter) { return [
|
|
91
|
+
{
|
|
92
|
+
icon: 'ZoomInLine',
|
|
93
|
+
tooltip: 'Zoom in',
|
|
94
|
+
disabled: zoom === 2,
|
|
95
|
+
className: "".concat(type, "-zoom-in"),
|
|
96
|
+
onClick: function () {
|
|
97
|
+
setter(zoom + 0.5);
|
|
98
|
+
}
|
|
99
|
+
},
|
|
100
|
+
{
|
|
101
|
+
icon: 'RestartLine',
|
|
102
|
+
label: exports.zoomToLabel[zoom],
|
|
103
|
+
tooltip: 'Reset zoom',
|
|
104
|
+
disabled: zoom === 1,
|
|
105
|
+
className: "".concat(type, "-zoom-reset"),
|
|
106
|
+
onClick: function () {
|
|
107
|
+
setter(1);
|
|
108
|
+
}
|
|
109
|
+
},
|
|
110
|
+
{
|
|
111
|
+
icon: 'ZoomOutLine',
|
|
112
|
+
tooltip: 'Zoom out',
|
|
113
|
+
disabled: zoom === 0,
|
|
114
|
+
className: "".concat(type, "-zoom-out"),
|
|
115
|
+
onClick: function () {
|
|
116
|
+
setter(zoom - 0.5);
|
|
117
|
+
}
|
|
118
|
+
},
|
|
119
|
+
]; };
|
|
120
|
+
exports.getZoomActions = getZoomActions;
|
|
121
|
+
var getColumnsCount = function (columns) {
|
|
122
|
+
var count = 0;
|
|
123
|
+
columns.forEach(function (column) {
|
|
124
|
+
if (column.header.columns) {
|
|
125
|
+
count += (0, exports.getColumnsCount)(column.header.columns);
|
|
126
|
+
}
|
|
127
|
+
else {
|
|
128
|
+
count += 1;
|
|
129
|
+
}
|
|
130
|
+
});
|
|
131
|
+
return count;
|
|
132
|
+
};
|
|
133
|
+
exports.getColumnsCount = getColumnsCount;
|
|
134
|
+
var hasHiddenColumns = function (columns) {
|
|
135
|
+
return columns.some(function (column) {
|
|
136
|
+
if (column.header.columns) {
|
|
137
|
+
return column.header.columns.some(function (subColumn) { return subColumn.show === false; });
|
|
138
|
+
}
|
|
139
|
+
return column.show === false;
|
|
140
|
+
});
|
|
141
|
+
};
|
|
142
|
+
exports.hasHiddenColumns = hasHiddenColumns;
|
|
143
|
+
var getOnlyShownColumns = function (columns) {
|
|
144
|
+
return columns.reduce(function (newColumns, column) {
|
|
145
|
+
if (column.header.columns) {
|
|
146
|
+
var subColumns = (0, exports.getOnlyShownColumns)(column.header.columns);
|
|
147
|
+
if ((0, lodash_1.size)(subColumns)) {
|
|
148
|
+
return __spreadArray(__spreadArray([], newColumns, true), [
|
|
149
|
+
__assign(__assign({}, column), { header: __assign(__assign({}, column.header), { columns: (0, exports.getOnlyShownColumns)(column.header.columns) }) }),
|
|
150
|
+
], false);
|
|
151
|
+
}
|
|
152
|
+
return newColumns;
|
|
153
|
+
}
|
|
154
|
+
if (column.show !== false) {
|
|
155
|
+
return __spreadArray(__spreadArray([], newColumns, true), [column], false);
|
|
156
|
+
}
|
|
157
|
+
return newColumns;
|
|
158
|
+
}, []);
|
|
159
|
+
};
|
|
160
|
+
exports.getOnlyShownColumns = getOnlyShownColumns;
|
|
161
|
+
var prepareColumns = function (columns, size) {
|
|
162
|
+
if (size === void 0) { size = 'normal'; }
|
|
163
|
+
// We need to set the width of each column
|
|
164
|
+
return columns.map(function (column) {
|
|
165
|
+
if (column.header.columns) {
|
|
166
|
+
return __assign(__assign({}, column), { header: __assign(__assign({}, column.header), { columns: (0, exports.prepareColumns)(column.header.columns) }) });
|
|
167
|
+
}
|
|
168
|
+
var newWidth = (0, exports.calculateMinimumCellWidth)(column.width || 50, size, column.header.icon, column.sortable, column.filterable, column.hideable, column.resizable);
|
|
169
|
+
return __assign(__assign({}, column), { width: newWidth });
|
|
170
|
+
});
|
|
171
|
+
};
|
|
172
|
+
exports.prepareColumns = prepareColumns;
|
|
173
|
+
var calculateMinimumCellWidth = function (currentWidth, size, icon, sortable, filterable, hideable, resizable) {
|
|
174
|
+
if (currentWidth === void 0) { currentWidth = 50; }
|
|
175
|
+
var width = currentWidth;
|
|
176
|
+
if (icon) {
|
|
177
|
+
width += sizes_1.ICON_FROM_SIZE[size];
|
|
178
|
+
}
|
|
179
|
+
if (sortable) {
|
|
180
|
+
width += sizes_1.ICON_FROM_SIZE[size];
|
|
181
|
+
}
|
|
182
|
+
if (filterable || hideable || resizable) {
|
|
183
|
+
width += sizes_1.SIZE_TO_PX[size];
|
|
184
|
+
}
|
|
185
|
+
return width;
|
|
186
|
+
};
|
|
187
|
+
exports.calculateMinimumCellWidth = calculateMinimumCellWidth;
|
|
44
188
|
//# sourceMappingURL=helpers.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../../src/components/Table/helpers.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAAA,iCAAiC;
|
|
1
|
+
{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../../src/components/Table/helpers.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,33 +1,40 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { TSizes } from '../../constants/sizes';
|
|
3
3
|
import { IReqoreTheme, TReqoreIntent } from '../../constants/theme';
|
|
4
|
-
import { IReqoreIntent,
|
|
5
|
-
import {
|
|
4
|
+
import { IReqoreIntent, IReqoreTooltip } from '../../types/global';
|
|
5
|
+
import { IReqoreButtonProps } from '../Button';
|
|
6
|
+
import { IReqoreInputProps } from '../Input';
|
|
7
|
+
import { IReqorePanelProps } from '../Panel';
|
|
8
|
+
import { IReqoreCustomHeaderCellComponent } from './header';
|
|
9
|
+
import { IReqoreTableHeaderCellProps } from './headerCell';
|
|
10
|
+
import { IReqoreTableRowOptions } from './row';
|
|
6
11
|
export type TReqoreTableColumnContent = React.FC<{
|
|
7
12
|
[key: string]: any;
|
|
8
13
|
_selectId?: string | number;
|
|
9
14
|
}> | 'time-ago' | 'tag' | `tag:${TReqoreIntent}` | `tag:#${string}` | 'title' | `title:${TReqoreIntent}` | 'text' | `text:${TReqoreIntent}`;
|
|
10
15
|
export interface IReqoreTableColumn extends IReqoreIntent {
|
|
11
16
|
dataId: string;
|
|
12
|
-
|
|
17
|
+
show?: boolean;
|
|
13
18
|
grow?: 1 | 2 | 3 | 4;
|
|
14
19
|
width?: number;
|
|
15
|
-
|
|
16
|
-
props?: React.HTMLAttributes<HTMLDivElement>;
|
|
20
|
+
resizedWidth?: number;
|
|
17
21
|
align?: 'center' | 'left' | 'right';
|
|
18
|
-
|
|
22
|
+
resizable?: boolean;
|
|
19
23
|
sortable?: boolean;
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
24
|
+
hideable?: boolean;
|
|
25
|
+
filterable?: boolean;
|
|
26
|
+
filterPlaceholder?: string;
|
|
27
|
+
filter?: string | number;
|
|
28
|
+
header?: {
|
|
29
|
+
columns?: IReqoreTableColumn[];
|
|
30
|
+
component?: React.FC<IReqoreTableHeaderCellProps>;
|
|
31
|
+
} & IReqoreButtonProps;
|
|
32
|
+
cell?: {
|
|
33
|
+
onClick?: (cellValue: any) => void;
|
|
34
|
+
tooltip?: (cellValue: any) => string | IReqoreTooltip;
|
|
35
|
+
content?: TReqoreTableColumnContent;
|
|
36
|
+
intent?: TReqoreIntent;
|
|
37
|
+
};
|
|
31
38
|
}
|
|
32
39
|
export interface IReqoreTableRowData {
|
|
33
40
|
[key: string]: any;
|
|
@@ -37,24 +44,31 @@ export interface IReqoreTableRowData {
|
|
|
37
44
|
}
|
|
38
45
|
export type IReqoreTableRowClick = (data: IReqoreTableRowData) => void;
|
|
39
46
|
export type IReqoreTableData = IReqoreTableRowData[];
|
|
40
|
-
export interface IReqoreTableProps extends
|
|
47
|
+
export interface IReqoreTableProps extends IReqorePanelProps {
|
|
41
48
|
columns: IReqoreTableColumn[];
|
|
42
49
|
data?: IReqoreTableData;
|
|
43
|
-
className?: string;
|
|
44
50
|
width?: number;
|
|
45
51
|
height?: number;
|
|
52
|
+
wrapperSize?: TSizes;
|
|
46
53
|
sort?: IReqoreTableSort;
|
|
47
|
-
|
|
54
|
+
onSortChange?: (sort?: IReqoreTableSort) => void;
|
|
55
|
+
filterable?: boolean;
|
|
56
|
+
filterProps?: (data: IReqoreTableData) => IReqoreInputProps;
|
|
57
|
+
filter?: string;
|
|
58
|
+
onFilterChange?: (query: string) => void;
|
|
59
|
+
zoomable?: boolean;
|
|
60
|
+
defaultZoom?: number;
|
|
48
61
|
selectable?: boolean;
|
|
49
62
|
selected?: string[];
|
|
50
63
|
selectedRowIntent?: TReqoreIntent;
|
|
51
|
-
onSortChange?: (sort?: IReqoreTableSort) => void;
|
|
52
64
|
onSelectedChange?: (selected?: any[]) => void;
|
|
53
65
|
selectToggleTooltip?: string;
|
|
66
|
+
striped?: boolean;
|
|
67
|
+
emptyMessage?: string;
|
|
54
68
|
onRowClick?: IReqoreTableRowClick;
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
69
|
+
headerCellComponent?: IReqoreCustomHeaderCellComponent;
|
|
70
|
+
rowComponent?: IReqoreTableRowOptions['rowComponent'];
|
|
71
|
+
bodyCellComponent?: IReqoreTableRowOptions['cellComponent'];
|
|
58
72
|
}
|
|
59
73
|
export interface IReqoreTableStyle {
|
|
60
74
|
theme: IReqoreTheme;
|
|
@@ -70,6 +84,6 @@ export interface IReqoreTableSort {
|
|
|
70
84
|
thenBy?: string;
|
|
71
85
|
direction?: 'asc' | 'desc';
|
|
72
86
|
}
|
|
73
|
-
declare const ReqoreTable: ({ className, height, width, columns, data, sort, onSortChange, selectable, selected, onSelectedChange, selectToggleTooltip, customTheme,
|
|
87
|
+
declare const ReqoreTable: ({ className, height, width, columns, data, sort, onSortChange, selectable, selected, onSelectedChange, selectToggleTooltip, customTheme, onRowClick, striped, selectedRowIntent, size, wrapperSize, intent, fill, filterable, zoomable, filter, actions, onFilterChange, filterProps, emptyMessage, headerCellComponent, rowComponent, bodyCellComponent, ...rest }: IReqoreTableProps) => JSX.Element;
|
|
74
88
|
export default ReqoreTable;
|
|
75
89
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/Table/index.tsx"],"names":[],"mappings":"AAEA,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/Table/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAyC,MAAM,OAAO,CAAC;AAG9D,OAAO,EAAoB,MAAM,EAAE,MAAM,uBAAuB,CAAC;AACjE,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAEpE,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACnE,OAAO,EAAE,kBAAkB,EAAgB,MAAM,WAAW,CAAC;AAC7D,OAAoB,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAC1D,OAAO,EAAsB,iBAAiB,EAAyB,MAAM,UAAU,CAAC;AAExF,OAA0B,EAAE,gCAAgC,EAAE,MAAM,UAAU,CAAC;AAC/E,OAAO,EAAE,2BAA2B,EAAE,MAAM,cAAc,CAAC;AAc3D,OAAO,EAAE,sBAAsB,EAAE,MAAM,OAAO,CAAC;AAE/C,MAAM,MAAM,yBAAyB,GACjC,KAAK,CAAC,EAAE,CAAC;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;CAAE,CAAC,GAC7D,UAAU,GACV,KAAK,GACL,OAAO,aAAa,EAAE,GACtB,QAAQ,MAAM,EAAE,GAChB,OAAO,GACP,SAAS,aAAa,EAAE,GACxB,MAAM,GACN,QAAQ,aAAa,EAAE,CAAC;AAE5B,MAAM,WAAW,kBAAmB,SAAQ,aAAa;IACvD,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,KAAK,CAAC,EAAE,QAAQ,GAAG,MAAM,GAAG,OAAO,CAAC;IAEpC,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAEzB,MAAM,CAAC,EAAE;QACP,OAAO,CAAC,EAAE,kBAAkB,EAAE,CAAC;QAC/B,SAAS,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC,2BAA2B,CAAC,CAAC;KACnD,GAAG,kBAAkB,CAAC;IAEvB,IAAI,CAAC,EAAE;QACL,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,KAAK,IAAI,CAAC;QACnC,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,KAAK,MAAM,GAAG,cAAc,CAAC;QACtD,OAAO,CAAC,EAAE,yBAAyB,CAAC;QACpC,MAAM,CAAC,EAAE,aAAa,CAAC;KACxB,CAAC;CACH;AAED,MAAM,WAAW,mBAAmB;IAClC,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC5B,OAAO,CAAC,EAAE,aAAa,CAAC;IACxB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,MAAM,MAAM,oBAAoB,GAAG,CAAC,IAAI,EAAE,mBAAmB,KAAK,IAAI,CAAC;AACvE,MAAM,MAAM,gBAAgB,GAAG,mBAAmB,EAAE,CAAC;AAErD,MAAM,WAAW,iBAAkB,SAAQ,iBAAiB;IAC1D,OAAO,EAAE,kBAAkB,EAAE,CAAC;IAC9B,IAAI,CAAC,EAAE,gBAAgB,CAAC;IAExB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,IAAI,CAAC,EAAE,gBAAgB,CAAC;IACxB,YAAY,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,gBAAgB,KAAK,IAAI,CAAC;IAEjD,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,gBAAgB,KAAK,iBAAiB,CAAC;IAC5D,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAEzC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,iBAAiB,CAAC,EAAE,aAAa,CAAC;IAClC,gBAAgB,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,GAAG,EAAE,KAAK,IAAI,CAAC;IAC9C,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAE7B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB,UAAU,CAAC,EAAE,oBAAoB,CAAC;IAClC,mBAAmB,CAAC,EAAE,gCAAgC,CAAC;IACvD,YAAY,CAAC,EAAE,sBAAsB,CAAC,cAAc,CAAC,CAAC;IACtD,iBAAiB,CAAC,EAAE,sBAAsB,CAAC,eAAe,CAAC,CAAC;CAC7D;AAED,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,YAAY,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,MAAM,WAAW,gBAAgB;IAC/B,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC;CAC5B;AAED,QAAA,MAAM,WAAW,wWA+Bd,iBAAiB,gBAoTnB,CAAC;AAEF,eAAe,WAAW,CAAC"}
|
|
@@ -1,8 +1,4 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) {
|
|
3
|
-
if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; }
|
|
4
|
-
return cooked;
|
|
5
|
-
};
|
|
6
2
|
var __assign = (this && this.__assign) || function () {
|
|
7
3
|
__assign = Object.assign || function(t) {
|
|
8
4
|
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
@@ -14,29 +10,6 @@ var __assign = (this && this.__assign) || function () {
|
|
|
14
10
|
};
|
|
15
11
|
return __assign.apply(this, arguments);
|
|
16
12
|
};
|
|
17
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
18
|
-
if (k2 === undefined) k2 = k;
|
|
19
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
20
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
21
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
22
|
-
}
|
|
23
|
-
Object.defineProperty(o, k2, desc);
|
|
24
|
-
}) : (function(o, m, k, k2) {
|
|
25
|
-
if (k2 === undefined) k2 = k;
|
|
26
|
-
o[k2] = m[k];
|
|
27
|
-
}));
|
|
28
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
29
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
30
|
-
}) : function(o, v) {
|
|
31
|
-
o["default"] = v;
|
|
32
|
-
});
|
|
33
|
-
var __importStar = (this && this.__importStar) || function (mod) {
|
|
34
|
-
if (mod && mod.__esModule) return mod;
|
|
35
|
-
var result = {};
|
|
36
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
37
|
-
__setModuleDefault(result, mod);
|
|
38
|
-
return result;
|
|
39
|
-
};
|
|
40
13
|
var __rest = (this && this.__rest) || function (s, e) {
|
|
41
14
|
var t = {};
|
|
42
15
|
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
@@ -66,36 +39,63 @@ var jsx_runtime_1 = require("react/jsx-runtime");
|
|
|
66
39
|
var lodash_1 = require("lodash");
|
|
67
40
|
var react_1 = require("react");
|
|
68
41
|
var react_use_1 = require("react-use");
|
|
69
|
-
var
|
|
42
|
+
var __1 = require("../..");
|
|
70
43
|
var sizes_1 = require("../../constants/sizes");
|
|
71
|
-
var
|
|
72
|
-
var
|
|
73
|
-
var useTheme_1 = require("../../hooks/useTheme");
|
|
44
|
+
var useQueryWithDelay_1 = require("../../hooks/useQueryWithDelay");
|
|
45
|
+
var Input_1 = __importDefault(require("../Input"));
|
|
74
46
|
var body_1 = __importDefault(require("./body"));
|
|
75
|
-
var header_1 =
|
|
76
|
-
var headerCell_1 = require("./headerCell");
|
|
47
|
+
var header_1 = __importDefault(require("./header"));
|
|
77
48
|
var helpers_1 = require("./helpers");
|
|
78
|
-
var StyledTableWrapper = styled_components_1["default"].div(templateObject_4 || (templateObject_4 = __makeTemplateObject(["\n ", "\n"], ["\n ", "\n"])), function (_a) {
|
|
79
|
-
var theme = _a.theme, width = _a.width, rounded = _a.rounded, flat = _a.flat, fill = _a.fill;
|
|
80
|
-
return (0, styled_components_1.css)(templateObject_3 || (templateObject_3 = __makeTemplateObject(["\n width: ", ";\n height: ", ";\n\n position: relative;\n clear: both;\n overflow: hidden;\n z-index: 1;\n\n display: flex;\n flex-flow: column;\n\n border-radius: ", ";\n\n background-color: ", ";\n color: ", ";\n\n ", "\n "], ["\n width: ", ";\n height: ", ";\n\n position: relative;\n clear: both;\n overflow: hidden;\n z-index: 1;\n\n display: flex;\n flex-flow: column;\n\n border-radius: ", ";\n\n background-color: ", ";\n color: ", ";\n\n ", "\n "])), width ? "".concat(width, "px") : '100%', fill ? '100%' : 'auto', rounded ? '10px' : undefined, theme.main, (0, colors_1.getReadableColor)(theme, undefined, undefined, true), !flat && (0, styled_components_1.css)(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n ", ", ", " {\n ", "\n }\n "], ["\n ", ", ", " {\n ", "\n }\n "])), headerCell_1.StyledTableHeader, header_1.StyledColumnGroupHeader, function (_a) {
|
|
81
|
-
var theme = _a.theme;
|
|
82
|
-
return (0, styled_components_1.css)(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n border-bottom: 1px solid ", ";\n "], ["\n border-bottom: 1px solid ", ";\n "])), (0, colors_1.changeLightness)(theme.main, 0.07));
|
|
83
|
-
}));
|
|
84
|
-
});
|
|
85
49
|
var ReqoreTable = function (_a) {
|
|
86
|
-
var className = _a.className, _b = _a.height, height = _b === void 0 ? 300 : _b, width = _a.width, columns = _a.columns, _c = _a.data, data = _c === void 0 ? [] : _c, sort = _a.sort, onSortChange = _a.onSortChange, selectable = _a.selectable, selected = _a.selected, onSelectedChange = _a.onSelectedChange, selectToggleTooltip = _a.selectToggleTooltip, customTheme = _a.customTheme,
|
|
87
|
-
var
|
|
88
|
-
var
|
|
89
|
-
var
|
|
90
|
-
var
|
|
91
|
-
var
|
|
92
|
-
var
|
|
93
|
-
var
|
|
50
|
+
var className = _a.className, _b = _a.height, height = _b === void 0 ? 300 : _b, width = _a.width, columns = _a.columns, _c = _a.data, data = _c === void 0 ? [] : _c, sort = _a.sort, onSortChange = _a.onSortChange, selectable = _a.selectable, selected = _a.selected, onSelectedChange = _a.onSelectedChange, selectToggleTooltip = _a.selectToggleTooltip, customTheme = _a.customTheme, onRowClick = _a.onRowClick, striped = _a.striped, selectedRowIntent = _a.selectedRowIntent, _d = _a.size, size = _d === void 0 ? 'normal' : _d, _e = _a.wrapperSize, wrapperSize = _e === void 0 ? 'normal' : _e, intent = _a.intent, fill = _a.fill, filterable = _a.filterable, zoomable = _a.zoomable, filter = _a.filter, _f = _a.actions, actions = _f === void 0 ? [] : _f, onFilterChange = _a.onFilterChange, filterProps = _a.filterProps, _g = _a.emptyMessage, emptyMessage = _g === void 0 ? 'No data in this table, try changing your search query or filters' : _g, headerCellComponent = _a.headerCellComponent, rowComponent = _a.rowComponent, bodyCellComponent = _a.bodyCellComponent, rest = __rest(_a, ["className", "height", "width", "columns", "data", "sort", "onSortChange", "selectable", "selected", "onSelectedChange", "selectToggleTooltip", "customTheme", "onRowClick", "striped", "selectedRowIntent", "size", "wrapperSize", "intent", "fill", "filterable", "zoomable", "filter", "actions", "onFilterChange", "filterProps", "emptyMessage", "headerCellComponent", "rowComponent", "bodyCellComponent"]);
|
|
51
|
+
var _h = (0, react_1.useState)(0), leftScroll = _h[0], setLeftScroll = _h[1];
|
|
52
|
+
var _j = (0, react_1.useState)(data || []), _data = _j[0], setData = _j[1];
|
|
53
|
+
var _k = (0, react_1.useState)((0, helpers_1.fixSort)(sort)), _sort = _k[0], setSort = _k[1];
|
|
54
|
+
var _l = (0, react_1.useState)([]), _selected = _l[0], setSelected = _l[1];
|
|
55
|
+
var _m = (0, react_1.useState)('none'), _selectedQuant = _m[0], setSelectedQuant = _m[1];
|
|
56
|
+
var _o = (0, react_1.useState)((0, helpers_1.prepareColumns)(columns)), internalColumns = _o[0], setColumns = _o[1];
|
|
57
|
+
var _p = (0, react_1.useState)(helpers_1.sizeToZoom[size]), zoom = _p[0], setZoom = _p[1];
|
|
58
|
+
var _q = (0, react_use_1.useMeasure)(), wrapperRef = _q[0], sizes = _q[1];
|
|
59
|
+
var _r = (0, useQueryWithDelay_1.useQueryWithDelay)(filter, 300, onFilterChange), query = _r.query, preQuery = _r.preQuery, setQuery = _r.setQuery, setPreQuery = _r.setPreQuery;
|
|
60
|
+
var filters = (0, react_1.useMemo)(function () {
|
|
61
|
+
var getFilters = function (columnsToTransform) {
|
|
62
|
+
return columnsToTransform.reduce(function (filterObject, column) {
|
|
63
|
+
var _a;
|
|
64
|
+
var _b;
|
|
65
|
+
if ((_b = column.header) === null || _b === void 0 ? void 0 : _b.columns) {
|
|
66
|
+
return __assign(__assign({}, filterObject), getFilters(column.header.columns));
|
|
67
|
+
}
|
|
68
|
+
if (column.filter) {
|
|
69
|
+
return __assign(__assign({}, filterObject), (_a = {}, _a[column.dataId] = column.filter, _a));
|
|
70
|
+
}
|
|
71
|
+
return filterObject;
|
|
72
|
+
}, {});
|
|
73
|
+
};
|
|
74
|
+
return getFilters(internalColumns);
|
|
75
|
+
}, [internalColumns]);
|
|
76
|
+
var transformedData = (0, react_1.useMemo)(function () {
|
|
77
|
+
// Filter by global query
|
|
78
|
+
var filteredData = _data.filter(function (datum) {
|
|
79
|
+
return JSON.stringify(datum).toLowerCase().includes(query.toLowerCase());
|
|
80
|
+
});
|
|
81
|
+
// Filter by column filters
|
|
82
|
+
filteredData = filteredData.filter(function (datum) {
|
|
83
|
+
return Object.keys(filters).every(function (filterKey) {
|
|
84
|
+
var filterValue = filters[filterKey];
|
|
85
|
+
var datumValue = datum[filterKey];
|
|
86
|
+
return datumValue === null || datumValue === void 0 ? void 0 : datumValue.toString().toLowerCase().includes(filterValue.toString().toLowerCase());
|
|
87
|
+
});
|
|
88
|
+
});
|
|
89
|
+
return _sort ? (0, helpers_1.sortTableData)(filteredData, _sort) : filteredData;
|
|
90
|
+
}, [_data, _sort, query, filters]);
|
|
94
91
|
(0, react_use_1.useUpdateEffect)(function () {
|
|
95
92
|
if (onSortChange) {
|
|
96
93
|
onSortChange(_sort);
|
|
97
94
|
}
|
|
98
95
|
}, [_sort]);
|
|
96
|
+
(0, react_use_1.useUpdateEffect)(function () {
|
|
97
|
+
setColumns((0, helpers_1.prepareColumns)(columns));
|
|
98
|
+
}, [columns]);
|
|
99
99
|
(0, react_use_1.useUpdateEffect)(function () {
|
|
100
100
|
setData(data);
|
|
101
101
|
}, [data]);
|
|
@@ -108,7 +108,7 @@ var ReqoreTable = function (_a) {
|
|
|
108
108
|
if (onSelectedChange) {
|
|
109
109
|
onSelectedChange(_selected);
|
|
110
110
|
}
|
|
111
|
-
var selectableData =
|
|
111
|
+
var selectableData = transformedData.filter(function (datum) { var _a; return (_a = datum._selectId) !== null && _a !== void 0 ? _a : false; });
|
|
112
112
|
if ((0, lodash_1.size)(_selected)) {
|
|
113
113
|
if ((0, lodash_1.size)(_selected) === (0, lodash_1.size)(selectableData)) {
|
|
114
114
|
setSelectedQuant('all');
|
|
@@ -147,7 +147,7 @@ var ReqoreTable = function (_a) {
|
|
|
147
147
|
switch (_selectedQuant) {
|
|
148
148
|
case 'none':
|
|
149
149
|
case 'some': {
|
|
150
|
-
var selectableData =
|
|
150
|
+
var selectableData = transformedData
|
|
151
151
|
.filter(function (datum) { var _a; return (_a = datum._selectId) !== null && _a !== void 0 ? _a : false; })
|
|
152
152
|
.map(function (datum) { return datum._selectId; });
|
|
153
153
|
setSelected(selectableData);
|
|
@@ -159,8 +159,95 @@ var ReqoreTable = function (_a) {
|
|
|
159
159
|
}
|
|
160
160
|
}
|
|
161
161
|
};
|
|
162
|
-
|
|
162
|
+
var handleColumnsUpdate = (0, react_1.useCallback)(function (id, key, value) {
|
|
163
|
+
setColumns((0, helpers_1.updateColumnData)(internalColumns, id, key, value));
|
|
164
|
+
}, [internalColumns]);
|
|
165
|
+
var handlePreQueryChange = (0, react_1.useCallback)(function (event) {
|
|
166
|
+
setPreQuery(event.target.value);
|
|
167
|
+
}, []);
|
|
168
|
+
var columnsList = (0, react_1.useMemo)(function () {
|
|
169
|
+
var _columnsList = [
|
|
170
|
+
{
|
|
171
|
+
divider: true,
|
|
172
|
+
label: 'Show / hide columns'
|
|
173
|
+
},
|
|
174
|
+
];
|
|
175
|
+
var addColumn = function (column) {
|
|
176
|
+
_columnsList.push({
|
|
177
|
+
label: typeof column.header.label === 'string' ? column.header.label : column.dataId,
|
|
178
|
+
selected: column.show !== false,
|
|
179
|
+
onClick: function () {
|
|
180
|
+
return handleColumnsUpdate(column.dataId, 'show', column.show !== false ? false : true);
|
|
181
|
+
},
|
|
182
|
+
intent: column.show !== false ? 'info' : undefined
|
|
183
|
+
});
|
|
184
|
+
};
|
|
185
|
+
internalColumns.forEach(function (column) {
|
|
186
|
+
var _a, _b;
|
|
187
|
+
if ((_a = column.header) === null || _a === void 0 ? void 0 : _a.columns) {
|
|
188
|
+
(_b = column.header) === null || _b === void 0 ? void 0 : _b.columns.forEach(function (subColumn) {
|
|
189
|
+
addColumn(subColumn);
|
|
190
|
+
});
|
|
191
|
+
}
|
|
192
|
+
else {
|
|
193
|
+
addColumn(column);
|
|
194
|
+
}
|
|
195
|
+
});
|
|
196
|
+
return _columnsList;
|
|
197
|
+
}, [internalColumns]);
|
|
198
|
+
var tableActions = (0, react_1.useMemo)(function () {
|
|
199
|
+
var finalActions = __spreadArray([], actions, true);
|
|
200
|
+
finalActions.push({
|
|
201
|
+
label: 'Columns',
|
|
202
|
+
icon: 'LayoutColumnLine',
|
|
203
|
+
className: 'reqore-table-columns-options',
|
|
204
|
+
badge: (0, helpers_1.getColumnsCount)((0, helpers_1.getOnlyShownColumns)(internalColumns)),
|
|
205
|
+
intent: (0, helpers_1.hasHiddenColumns)(internalColumns) ? 'info' : undefined,
|
|
206
|
+
multiSelect: true,
|
|
207
|
+
actions: columnsList
|
|
208
|
+
});
|
|
209
|
+
if (filterable) {
|
|
210
|
+
finalActions.push({
|
|
211
|
+
as: Input_1["default"],
|
|
212
|
+
props: __assign({ key: 'search', fixed: false, placeholder: "Search in ".concat((0, lodash_1.size)(transformedData), " items..."), onClearClick: function () {
|
|
213
|
+
setQuery('');
|
|
214
|
+
setPreQuery('');
|
|
215
|
+
}, onChange: handlePreQueryChange, value: preQuery, icon: 'Search2Line', disabled: !query && !(0, lodash_1.size)(transformedData), minimal: false }, filterProps === null || filterProps === void 0 ? void 0 : filterProps(transformedData))
|
|
216
|
+
});
|
|
217
|
+
}
|
|
218
|
+
if (zoomable) {
|
|
219
|
+
finalActions.push({
|
|
220
|
+
fluid: false,
|
|
221
|
+
group: (0, helpers_1.getZoomActions)('reqore-table', zoom, setZoom)
|
|
222
|
+
});
|
|
223
|
+
}
|
|
224
|
+
return finalActions;
|
|
225
|
+
}, [
|
|
226
|
+
preQuery,
|
|
227
|
+
transformedData,
|
|
228
|
+
actions,
|
|
229
|
+
filterable,
|
|
230
|
+
filterProps,
|
|
231
|
+
internalColumns,
|
|
232
|
+
zoomable,
|
|
233
|
+
zoom,
|
|
234
|
+
columnsList,
|
|
235
|
+
]);
|
|
236
|
+
var badge = (0, react_1.useMemo)(function () {
|
|
237
|
+
var badgeList = rest.label ? [(0, lodash_1.size)(transformedData)] : undefined;
|
|
238
|
+
if (rest.badge) {
|
|
239
|
+
if ((0, lodash_1.isArray)(rest.badge)) {
|
|
240
|
+
badgeList.push.apply(badgeList, rest.badge);
|
|
241
|
+
}
|
|
242
|
+
else {
|
|
243
|
+
badgeList.push(rest.badge);
|
|
244
|
+
}
|
|
245
|
+
}
|
|
246
|
+
return badgeList;
|
|
247
|
+
}, [transformedData, rest.badge]);
|
|
248
|
+
return ((0, jsx_runtime_1.jsxs)(__1.ReqorePanel, __assign({ transparent: true, flat: true, padded: false, contentStyle: { display: 'flex', flexFlow: 'column', overflow: 'hidden' } }, rest, { size: wrapperSize, actions: tableActions, fill: fill, className: "".concat(className || '', " reqore-table"), style: __assign({ width: width }, (rest.style || {})), getContentRef: wrapperRef, badge: badge }, { children: [(0, jsx_runtime_1.jsx)(header_1["default"], { size: helpers_1.zoomToSize[zoom], columns: internalColumns, leftScroll: leftScroll, onSortChange: handleSortChange, sortData: _sort, selectable: selectable, selectedQuant: _selectedQuant, onToggleSelectClick: handleToggleSelectClick, hasVerticalScroll: (0, lodash_1.size)(transformedData) * sizes_1.TABLE_SIZE_TO_PX[size] > height, selectToggleTooltip: selectToggleTooltip, onColumnsUpdate: handleColumnsUpdate, onFilterChange: function (dataId, value) {
|
|
249
|
+
handleColumnsUpdate(dataId, 'filter', value);
|
|
250
|
+
}, component: headerCellComponent }), (0, lodash_1.size)(transformedData) === 0 ? ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(__1.ReqoreVerticalSpacer, { height: 10 }), (0, jsx_runtime_1.jsx)(__1.ReqoreMessage, __assign({ flat: true, size: size, icon: 'Search2Line' }, { children: emptyMessage }))] })) : ((0, jsx_runtime_1.jsx)(body_1["default"], { data: transformedData, columns: internalColumns, setLeftScroll: setLeftScroll, height: fill ? sizes.height : height, selectable: selectable, onSelectClick: handleSelectClick, onRowClick: onRowClick, selected: _selected, selectedRowIntent: selectedRowIntent, size: helpers_1.zoomToSize[zoom], striped: striped, flat: rest.flat, rowComponent: rowComponent, cellComponent: bodyCellComponent }))] })));
|
|
163
251
|
};
|
|
164
252
|
exports["default"] = ReqoreTable;
|
|
165
|
-
var templateObject_1, templateObject_2, templateObject_3, templateObject_4;
|
|
166
253
|
//# sourceMappingURL=index.js.map
|