@addev-be/ui 0.2.2 → 0.2.6
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/assets/icons/arrow-down-a-z.svg +1 -1
- package/assets/icons/arrow-up-z-a.svg +1 -1
- package/assets/icons/check.svg +1 -1
- package/assets/icons/down.svg +1 -1
- package/assets/icons/filter-full.svg +1 -1
- package/assets/icons/filter.svg +1 -1
- package/assets/icons/hashtag.svg +1 -1
- package/assets/icons/image-slash.svg +1 -1
- package/assets/icons/left.svg +1 -1
- package/assets/icons/magnifier.svg +1 -1
- package/assets/icons/phone.svg +1 -1
- package/assets/icons/right.svg +1 -1
- package/assets/icons/spinner-third.svg +1 -1
- package/assets/icons/table-columns.svg +1 -1
- package/assets/icons/up.svg +1 -1
- package/assets/icons/user-tie.svg +1 -1
- package/dist/components/data/AdvancedRequestDataGrid/helpers/advancedRequests.d.ts +14 -0
- package/dist/components/data/AdvancedRequestDataGrid/helpers/advancedRequests.js +76 -0
- package/dist/components/data/AdvancedRequestDataGrid/helpers/columns.d.ts +22 -0
- package/dist/components/data/AdvancedRequestDataGrid/helpers/columns.js +156 -0
- package/dist/components/data/AdvancedRequestDataGrid/helpers/index.d.ts +2 -0
- package/dist/components/data/AdvancedRequestDataGrid/helpers/index.js +18 -0
- package/dist/components/data/AdvancedRequestDataGrid/index.d.ts +2 -0
- package/dist/components/data/AdvancedRequestDataGrid/index.js +215 -0
- package/dist/components/data/AdvancedRequestDataGrid/types.d.ts +21 -0
- package/dist/components/data/DataGrid/AdvancedRequestDataGrid.d.ts +1 -2
- package/dist/components/data/DataGrid/AdvancedRequestDataGrid.js +3 -5
- package/dist/components/data/DataGrid/DataGridCell.d.ts +1 -1
- package/dist/components/data/DataGrid/DataGridCell.js +6 -6
- package/dist/components/data/DataGrid/DataGridEditableCell.js +2 -7
- package/dist/components/data/DataGrid/DataGridFilterMenu/index.js +10 -8
- package/dist/components/data/DataGrid/DataGridFooter.js +4 -14
- package/dist/components/data/DataGrid/DataGridHeader.js +60 -12
- package/dist/components/data/DataGrid/DataGridHeaderCell.js +6 -5
- package/dist/components/data/DataGrid/FilterModalContent/index.d.ts +5 -5
- package/dist/components/data/DataGrid/FilterModalContent/index.js +11 -9
- package/dist/components/data/DataGrid/FilterValuesScroller.d.ts +8 -7
- package/dist/components/data/DataGrid/FilterValuesScroller.js +5 -6
- package/dist/components/data/DataGrid/VirtualScroller.js +1 -6
- package/dist/components/data/DataGrid/helpers/columns.d.ts +12 -13
- package/dist/components/data/DataGrid/helpers/columns.js +17 -71
- package/dist/components/data/DataGrid/helpers/filters.d.ts +8 -7
- package/dist/components/data/DataGrid/helpers/filters.js +26 -21
- package/dist/components/data/DataGrid/helpers/index.d.ts +1 -2
- package/dist/components/data/DataGrid/helpers/index.js +1 -2
- package/dist/components/data/DataGrid/hooks/index.d.ts +2 -2
- package/dist/components/data/DataGrid/hooks/index.js +4 -4
- package/dist/components/data/DataGrid/hooks/useDataGrid.js +27 -5
- package/dist/components/data/DataGrid/hooks/useDataGridCopy.js +0 -1
- package/dist/components/data/DataGrid/hooks/useDataGridSettings.js +0 -1
- package/dist/components/data/DataGrid/index.js +27 -20
- package/dist/components/data/DataGrid/styles.d.ts +7 -2
- package/dist/components/data/DataGrid/styles.js +13 -10
- package/dist/components/data/DataGrid/types.d.ts +47 -54
- package/dist/components/data/SqlRequestDataGrid/helpers/columns.d.ts +16 -0
- package/dist/components/data/SqlRequestDataGrid/helpers/columns.js +112 -0
- package/dist/components/data/SqlRequestDataGrid/helpers/index.d.ts +2 -0
- package/dist/components/data/SqlRequestDataGrid/helpers/index.js +18 -0
- package/dist/components/data/SqlRequestDataGrid/helpers/sqlRequests.d.ts +3 -0
- package/dist/components/data/SqlRequestDataGrid/helpers/sqlRequests.js +18 -0
- package/dist/components/data/SqlRequestDataGrid/index.d.ts +2 -0
- package/dist/components/data/SqlRequestDataGrid/index.js +224 -0
- package/dist/components/data/SqlRequestDataGrid/types.d.ts +21 -0
- package/dist/components/data/SqlRequestDataGrid/types.js +2 -0
- package/dist/components/data/index.d.ts +7 -2
- package/dist/components/data/index.js +7 -2
- package/dist/components/forms/IconButton.js +1 -1
- package/dist/components/forms/IndeterminateCheckbox.js +1 -1
- package/dist/components/layout/Modal/index.js +1 -1
- package/dist/helpers/dates.d.ts +2 -0
- package/dist/helpers/dates.js +13 -0
- package/dist/providers/PortalsProvider/index.d.ts +1 -1
- package/dist/providers/PortalsProvider/index.js +1 -1
- package/dist/services/HttpService.d.ts +10 -0
- package/dist/services/HttpService.js +117 -0
- package/dist/services/advancedRequests.d.ts +3 -3
- package/dist/services/advancedRequests.js +2 -2
- package/dist/services/hooks.d.ts +2 -1
- package/dist/services/hooks.js +10 -3
- package/dist/services/sqlRequests.d.ts +40 -0
- package/dist/services/sqlRequests.js +10 -0
- package/package.json +1 -1
- package/src/Icons.tsx +80 -80
- package/src/components/data/AdvancedRequestDataGrid/helpers/advancedRequests.ts +93 -93
- package/src/components/data/AdvancedRequestDataGrid/helpers/columns.tsx +262 -262
- package/src/components/data/AdvancedRequestDataGrid/helpers/index.ts +2 -2
- package/src/components/data/AdvancedRequestDataGrid/index.tsx +269 -269
- package/src/components/data/AdvancedRequestDataGrid/types.ts +47 -47
- package/src/components/data/DataGrid/DataGridCell.tsx +73 -75
- package/src/components/data/DataGrid/DataGridColumnsModal/helpers.ts +14 -14
- package/src/components/data/DataGrid/DataGridColumnsModal/hooks.tsx +58 -58
- package/src/components/data/DataGrid/DataGridColumnsModal/index.tsx +181 -181
- package/src/components/data/DataGrid/DataGridColumnsModal/styles.ts +104 -104
- package/src/components/data/DataGrid/DataGridEditableCell.tsx +43 -54
- package/src/components/data/DataGrid/DataGridFilterMenu/hooks.tsx +75 -75
- package/src/components/data/DataGrid/DataGridFilterMenu/index.tsx +200 -190
- package/src/components/data/DataGrid/DataGridFilterMenu/styles.ts +100 -100
- package/src/components/data/DataGrid/DataGridFooter.tsx +44 -64
- package/src/components/data/DataGrid/DataGridHeader.tsx +126 -128
- package/src/components/data/DataGrid/DataGridHeaderCell.tsx +167 -166
- package/src/components/data/DataGrid/FilterModalContent/index.tsx +124 -125
- package/src/components/data/DataGrid/FilterModalContent/styles.ts +22 -22
- package/src/components/data/DataGrid/FilterValuesScroller.tsx +133 -131
- package/src/components/data/DataGrid/VirtualScroller.tsx +46 -46
- package/src/components/data/DataGrid/helpers/columns.tsx +196 -199
- package/src/components/data/DataGrid/helpers/filters.ts +220 -207
- package/src/components/data/DataGrid/helpers/index.ts +2 -2
- package/src/components/data/DataGrid/hooks/index.ts +30 -30
- package/src/components/data/DataGrid/hooks/useDataGrid.tsx +264 -261
- package/src/components/data/DataGrid/hooks/useDataGridCopy.ts +165 -166
- package/src/components/data/DataGrid/hooks/useDataGridSettings.ts +48 -49
- package/src/components/data/DataGrid/index.tsx +132 -133
- package/src/components/data/DataGrid/styles.ts +326 -299
- package/src/components/data/DataGrid/types.ts +241 -233
- package/src/components/data/SqlRequestDataGrid/helpers/columns.tsx +224 -206
- package/src/components/data/SqlRequestDataGrid/helpers/index.ts +2 -2
- package/src/components/data/SqlRequestDataGrid/helpers/sqlRequests.ts +16 -16
- package/src/components/data/SqlRequestDataGrid/index.tsx +252 -221
- package/src/components/data/SqlRequestDataGrid/types.ts +47 -46
- package/src/components/data/index.ts +8 -6
- package/src/components/forms/Button.tsx +99 -99
- package/src/components/forms/IconButton.tsx +56 -56
- package/src/components/forms/IndeterminateCheckbox.tsx +46 -46
- package/src/components/forms/Select.tsx +40 -40
- package/src/components/forms/index.ts +5 -5
- package/src/components/forms/styles.ts +20 -20
- package/src/components/index.ts +3 -3
- package/src/components/layout/Dropdown/index.tsx +79 -79
- package/src/components/layout/Dropdown/styles.ts +44 -44
- package/src/components/layout/Loading/index.tsx +29 -29
- package/src/components/layout/Loading/styles.ts +29 -29
- package/src/components/layout/Modal/index.tsx +51 -51
- package/src/components/layout/Modal/styles.ts +110 -110
- package/src/components/layout/index.ts +3 -3
- package/src/config/index.ts +14 -14
- package/src/helpers/dates.ts +9 -0
- package/src/helpers/getScrollbarSize.ts +14 -14
- package/src/helpers/numbers.ts +20 -20
- package/src/hooks/index.ts +2 -2
- package/src/hooks/useElementSize.ts +24 -24
- package/src/hooks/useWindowSize.ts +20 -20
- package/src/index.ts +7 -7
- package/src/providers/PortalsProvider/index.tsx +54 -54
- package/src/providers/PortalsProvider/styles.ts +27 -27
- package/src/providers/SettingsProvider/index.tsx +70 -70
- package/src/providers/ThemeProvider/ThemeProvider.ts +55 -55
- package/src/providers/ThemeProvider/defaultTheme.ts +444 -444
- package/src/providers/ThemeProvider/index.ts +3 -3
- package/src/providers/ThemeProvider/types.ts +123 -123
- package/src/providers/UiProviders/index.tsx +65 -65
- package/src/providers/UiProviders/styles.ts +10 -10
- package/src/providers/hooks.ts +8 -8
- package/src/providers/index.ts +5 -5
- package/src/services/HttpService.ts +80 -80
- package/src/services/WebSocketService.ts +147 -147
- package/src/services/advancedRequests.ts +101 -101
- package/src/services/base.ts +31 -31
- package/src/services/hooks.ts +23 -23
- package/src/services/index.ts +2 -2
- package/src/services/sqlRequests.ts +99 -98
- package/src/styles/animations.scss +30 -30
- package/src/styles/index.scss +42 -42
- package/src/typings.d.ts +6 -6
- package/tsconfig.tsbuildinfo +1 -1
- package/dist/components/data/DataGrid/helpers.d.ts +0 -28
- package/dist/components/data/DataGrid/helpers.js +0 -436
- package/dist/config/types.d.ts +0 -11
- /package/dist/{config → components/data/AdvancedRequestDataGrid}/types.js +0 -0
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { AdvancedRequestRow, ConditionDTO, FieldDTO, OrderByDTO } from '../../../services/advancedRequests';
|
|
2
|
+
import { DataGridColumn, DataGridFilter, DataGridFilterType, DataGridProps } from '../DataGrid/types';
|
|
3
|
+
export type AdvancedRequestDataGridFilter<T extends DataGridFilterType = DataGridFilterType> = DataGridFilter<T> & {
|
|
4
|
+
field?: FieldDTO;
|
|
5
|
+
};
|
|
6
|
+
export type AdvancedRequestDataGridFilters = Record<string, AdvancedRequestDataGridFilter>;
|
|
7
|
+
export type AdvancedRequestDataGridColumn<R> = DataGridColumn<R> & {
|
|
8
|
+
filter?: AdvancedRequestDataGridFilter;
|
|
9
|
+
field?: FieldDTO;
|
|
10
|
+
filterField?: string;
|
|
11
|
+
sortField?: string;
|
|
12
|
+
};
|
|
13
|
+
export type AdvancedRequestDataGridColumns<R> = Record<string, AdvancedRequestDataGridColumn<R>>;
|
|
14
|
+
export type AdvancedRequestDataGridProps<R> = Omit<DataGridProps<R>, 'rows' | 'columns'> & {
|
|
15
|
+
columns: AdvancedRequestDataGridColumns<R>;
|
|
16
|
+
type: string;
|
|
17
|
+
orderBy?: OrderByDTO[];
|
|
18
|
+
conditions?: ConditionDTO[];
|
|
19
|
+
idField?: FieldDTO | null;
|
|
20
|
+
parser?: (row: AdvancedRequestRow<R>) => R;
|
|
21
|
+
};
|
|
@@ -1,10 +1,9 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { ConditionDTO, OrderByDTO } from '../../../services/advancedRequests';
|
|
2
2
|
import { DataGridProps } from './types';
|
|
3
3
|
export type AdvancedRequestDataGridProps<R> = Omit<DataGridProps<R>, 'rows'> & {
|
|
4
4
|
type: string;
|
|
5
5
|
orderBy?: OrderByDTO[];
|
|
6
6
|
conditions?: ConditionDTO[];
|
|
7
7
|
addIdColumn?: boolean;
|
|
8
|
-
parser?: (row: AdvancedRequestRow<R>) => R;
|
|
9
8
|
};
|
|
10
9
|
export declare const AdvancedRequestDataGrid: <R>(props: AdvancedRequestDataGridProps<R>) => import("react/jsx-runtime").JSX.Element;
|
|
@@ -93,14 +93,13 @@ var AdvancedRequestDataGrid = function (props) {
|
|
|
93
93
|
getTotal: getTotal,
|
|
94
94
|
})).then(function (response) {
|
|
95
95
|
var _a;
|
|
96
|
-
var _b
|
|
96
|
+
var _b;
|
|
97
97
|
if (getTotal) {
|
|
98
98
|
currentRows.current = Array(response.total).fill(null);
|
|
99
99
|
if (getTotal)
|
|
100
100
|
setTotal((_b = response.total) !== null && _b !== void 0 ? _b : 0);
|
|
101
101
|
}
|
|
102
|
-
|
|
103
|
-
(_a = currentRows.current).splice.apply(_a, __spreadArray([start, length], parsedRows, false));
|
|
102
|
+
(_a = currentRows.current).splice.apply(_a, __spreadArray([start, length], response.data, false));
|
|
104
103
|
setRows(__spreadArray([], currentRows.current, true));
|
|
105
104
|
});
|
|
106
105
|
}, 100));
|
|
@@ -151,14 +150,13 @@ var AdvancedRequestDataGrid = function (props) {
|
|
|
151
150
|
orderBy: orderBy,
|
|
152
151
|
start: 0,
|
|
153
152
|
length: total,
|
|
154
|
-
})).then(function (response) {
|
|
153
|
+
})).then(function (response) { return response.data; });
|
|
155
154
|
}, [
|
|
156
155
|
advancedRequest,
|
|
157
156
|
conditions,
|
|
158
157
|
orderBy,
|
|
159
158
|
props.columns,
|
|
160
159
|
props.conditions,
|
|
161
|
-
props.parser,
|
|
162
160
|
props.type,
|
|
163
161
|
total,
|
|
164
162
|
]);
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import { DataGridCellProps } from './types';
|
|
2
|
-
export declare const DataGridCell: <R>({ row, rowIndex, columnKey, columnIndex, column, context,
|
|
2
|
+
export declare const DataGridCell: <R>({ row, rowIndex, columnKey, columnIndex, column, context, style, }: DataGridCellProps<R>) => import("react/jsx-runtime").JSX.Element;
|
|
@@ -30,18 +30,18 @@ var jsx_runtime_1 = require("react/jsx-runtime");
|
|
|
30
30
|
var styles = __importStar(require("./styles"));
|
|
31
31
|
var react_1 = require("react");
|
|
32
32
|
var DataGridEditableCell_1 = require("./DataGridEditableCell");
|
|
33
|
-
var lodash_1 = require("lodash");
|
|
34
33
|
var hooks_1 = require("./hooks");
|
|
35
|
-
var defaultRender = function (
|
|
34
|
+
var defaultRender = function (row, col) {
|
|
36
35
|
var value = col.propertyName ? row[col.propertyName] : '';
|
|
37
36
|
return !value ? '' : String(value);
|
|
38
37
|
};
|
|
39
38
|
var DataGridCell = function (_a) {
|
|
40
|
-
var _b;
|
|
41
|
-
var row = _a.row, rowIndex = _a.rowIndex, columnKey = _a.columnKey, columnIndex = _a.columnIndex, column = _a.column, context = _a.context,
|
|
42
|
-
var
|
|
39
|
+
var _b, _c;
|
|
40
|
+
var row = _a.row, rowIndex = _a.rowIndex, columnKey = _a.columnKey, columnIndex = _a.columnIndex, column = _a.column, context = _a.context, style = _a.style;
|
|
41
|
+
var _d = (0, hooks_1.useDataGridContext)(context), name = _d.name, editable = _d.editable, _e = _d.editingCell, editingCell = _e === void 0 ? [-1, -1] : _e, setEditingCell = _d.setEditingCell, onRowDoubleClick = _d.onRowDoubleClick;
|
|
43
42
|
var isEditable = !!editable && !!column.editable && column.type && column.getter;
|
|
44
43
|
var isEditing = isEditable && editingCell[0] === rowIndex && editingCell[1] === columnIndex;
|
|
44
|
+
var DataGridCellComponent = (_b = column.component) !== null && _b !== void 0 ? _b : styles.DataGridCell;
|
|
45
45
|
var onDoubleClick = (0, react_1.useCallback)(function (e) {
|
|
46
46
|
e.stopPropagation();
|
|
47
47
|
e.preventDefault();
|
|
@@ -54,6 +54,6 @@ var DataGridCell = function (_a) {
|
|
|
54
54
|
if (isEditing) {
|
|
55
55
|
return ((0, jsx_runtime_1.jsx)(DataGridEditableCell_1.DataGridEditableCell, { row: row, rowIndex: rowIndex, columnKey: columnKey, columnIndex: columnIndex, column: column, context: context }, "".concat(name, "-").concat(rowIndex, "-").concat(columnIndex)));
|
|
56
56
|
}
|
|
57
|
-
return ((0, jsx_runtime_1.jsx)(
|
|
57
|
+
return ((0, jsx_runtime_1.jsx)(DataGridCellComponent, { onDoubleClick: onDoubleClick, style: style, children: ((_c = column.render) !== null && _c !== void 0 ? _c : defaultRender)(row, column) }, "".concat(name, "-").concat(rowIndex, "-").concat(columnIndex)));
|
|
58
58
|
};
|
|
59
59
|
exports.DataGridCell = DataGridCell;
|
|
@@ -5,7 +5,6 @@ var jsx_runtime_1 = require("react/jsx-runtime");
|
|
|
5
5
|
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
6
6
|
/* eslint-disable @typescript-eslint/no-unnecessary-type-constraint */
|
|
7
7
|
var react_1 = require("react");
|
|
8
|
-
var lodash_1 = require("lodash");
|
|
9
8
|
var hooks_1 = require("./hooks");
|
|
10
9
|
var DataGridEditableCell = function (_a) {
|
|
11
10
|
var row = _a.row, columnKey = _a.columnKey, column = _a.column, context = _a.context;
|
|
@@ -19,13 +18,9 @@ var DataGridEditableCell = function (_a) {
|
|
|
19
18
|
onCellEdited === null || onCellEdited === void 0 ? void 0 : onCellEdited(row, columnKey, value);
|
|
20
19
|
setEditingCell([-1, -1]);
|
|
21
20
|
}, [columnKey, onCellEdited, row, setEditingCell, value]);
|
|
22
|
-
return ((0, jsx_runtime_1.jsxs)("td", {
|
|
23
|
-
// 'whitespace-nowrap py-1 text-sm',
|
|
24
|
-
column.className,
|
|
25
|
-
column.bodyClassName,
|
|
26
|
-
], ' '), children: [(0, jsx_runtime_1.jsx)("input", { type: "text",
|
|
21
|
+
return ((0, jsx_runtime_1.jsxs)("td", { children: [(0, jsx_runtime_1.jsx)("input", { type: "text",
|
|
27
22
|
// className="relative z-10 block text-normal w-full border-0 py-1.5 text-gray-900 ring-1 ring-inset ring-gray-300 placeholder:text-gray-400 focus:ring-2 focus:ring-inset focus:ring-sky-600 sm:text-sm sm:leading-6"
|
|
28
|
-
value: value, onChange: function (e) { return setValue(e.target.value); } }), (0, jsx_runtime_1.jsx)("div", {
|
|
23
|
+
value: String(value), onChange: function (e) { return setValue(e.target.value); } }), (0, jsx_runtime_1.jsx)("div", {
|
|
29
24
|
// className="fixed inset-0 bg-black bg-opacity-10"
|
|
30
25
|
onClick: onClose })] }, columnKey));
|
|
31
26
|
};
|
|
@@ -56,14 +56,14 @@ var FilterValuesScroller_1 = require("../FilterValuesScroller");
|
|
|
56
56
|
var forms_1 = require("../../../forms");
|
|
57
57
|
var hooks_1 = require("./hooks");
|
|
58
58
|
var DataGridFilterMenu = function (_a) {
|
|
59
|
-
var _b, _c;
|
|
59
|
+
var _b, _c, _d;
|
|
60
60
|
var columnKey = _a.columnKey, context = _a.context, onClose = _a.onClose;
|
|
61
|
-
var
|
|
62
|
-
var
|
|
61
|
+
var _e = (0, hooks_1.useFilterModal)({ columnKey: columnKey, context: context }), openModal = _e.openModal, modal = _e.modal;
|
|
62
|
+
var _f = (0, react_1.useContext)(context), _g = _f.filters, filters = _g === void 0 ? {} : _g, rows = _f.rows, columns = _f.columns, setFilters = _f.setFilters, filterValuesLoader = _f.filterValuesLoader;
|
|
63
63
|
var column = (_b = columns[columnKey]) !== null && _b !== void 0 ? _b : {};
|
|
64
64
|
var textFilterInputRef = (0, react_1.useRef)(null);
|
|
65
|
-
var
|
|
66
|
-
var
|
|
65
|
+
var _h = (0, react_1.useState)(''), textFilter = _h[0], setTextFilter = _h[1];
|
|
66
|
+
var _j = (0, react_1.useState)([]), availableValues = _j[0], setAvailableValues = _j[1];
|
|
67
67
|
(0, react_1.useEffect)(function () {
|
|
68
68
|
if (filterValuesLoader) {
|
|
69
69
|
filterValuesLoader(columnKey).then(function (values) {
|
|
@@ -111,7 +111,8 @@ var DataGridFilterMenu = function (_a) {
|
|
|
111
111
|
var checked = (0, lodash_1.intersection)(selectedValues, values).length === values.length;
|
|
112
112
|
setValuesChecked(values, !checked);
|
|
113
113
|
}, [setValuesChecked, selectedValues]);
|
|
114
|
-
var formatter = (0, react_1.useMemo)(function () { var _a, _b; return (_b = (_a = column.filter) === null || _a === void 0 ? void 0 : _a.formatter) !== null && _b !== void 0 ? _b :
|
|
114
|
+
var formatter = (0, react_1.useMemo)(function () { var _a, _b; return (_b = (_a = column.filter) === null || _a === void 0 ? void 0 : _a.formatter) !== null && _b !== void 0 ? _b : helpers_1.defaultRendererAndFormatter; }, [(_c = column.filter) === null || _c === void 0 ? void 0 : _c.formatter]);
|
|
115
|
+
var renderer = (0, react_1.useMemo)(function () { var _a, _b; return (_b = (_a = column.filter) === null || _a === void 0 ? void 0 : _a.renderer) !== null && _b !== void 0 ? _b : helpers_1.defaultRendererAndFormatter; }, [(_d = column.filter) === null || _d === void 0 ? void 0 : _d.renderer]);
|
|
115
116
|
var filteredAvailableValues = (0, react_1.useMemo)(function () {
|
|
116
117
|
return !textFilter
|
|
117
118
|
? availableValues
|
|
@@ -125,13 +126,14 @@ var DataGridFilterMenu = function (_a) {
|
|
|
125
126
|
var checkboxesComponent = (0, react_1.useMemo)(function () {
|
|
126
127
|
if (column.type === 'date') {
|
|
127
128
|
var groups = (0, helpers_1.getDateGroups)(filteredAvailableValues);
|
|
128
|
-
return ((0, jsx_runtime_1.jsx)(FilterValuesScroller_1.FilterValuesScroller, { values: filteredAvailableValues, selectedValues: selectedValues, onToggle: toggleValues, formatter: formatter, groups: groups }));
|
|
129
|
+
return ((0, jsx_runtime_1.jsx)(FilterValuesScroller_1.FilterValuesScroller, { values: filteredAvailableValues, selectedValues: selectedValues, onToggle: toggleValues, formatter: formatter, renderer: renderer, groups: groups }));
|
|
129
130
|
}
|
|
130
|
-
return ((0, jsx_runtime_1.jsx)(FilterValuesScroller_1.FilterValuesScroller, { values: filteredAvailableValues, selectedValues: selectedValues, onToggle: toggleValues, formatter: formatter }));
|
|
131
|
+
return ((0, jsx_runtime_1.jsx)(FilterValuesScroller_1.FilterValuesScroller, { values: filteredAvailableValues, selectedValues: selectedValues, onToggle: toggleValues, formatter: formatter, renderer: renderer }));
|
|
131
132
|
}, [
|
|
132
133
|
column.type,
|
|
133
134
|
filteredAvailableValues,
|
|
134
135
|
formatter,
|
|
136
|
+
renderer,
|
|
135
137
|
selectedValues,
|
|
136
138
|
toggleValues,
|
|
137
139
|
]);
|
|
@@ -3,29 +3,19 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.DataGridFooter = void 0;
|
|
4
4
|
var jsx_runtime_1 = require("react/jsx-runtime");
|
|
5
5
|
var getScrollbarSize_1 = require("../../../helpers/getScrollbarSize");
|
|
6
|
-
var lodash_1 = require("lodash");
|
|
7
6
|
var hooks_1 = require("./hooks");
|
|
8
7
|
var SCROLL_BAR_SIZE = (0, getScrollbarSize_1.getScrollBarSize)();
|
|
9
8
|
var DataGridFooter = function (_a) {
|
|
10
9
|
var context = _a.context;
|
|
11
10
|
var _b = (0, hooks_1.useDataGridContext)(context), visibleColumns = _b.visibleColumns, rows = _b.rows, selectedRows = _b.selectedRows, sortedRows = _b.sortedRows, _c = _b.rowHeight, rowHeight = _c === void 0 ? 48 : _c, selectable = _b.selectable;
|
|
12
|
-
return ((0, jsx_runtime_1.jsx)("tfoot", {
|
|
13
|
-
// className="block border-t border-t-gray-300"
|
|
14
|
-
style: {
|
|
11
|
+
return ((0, jsx_runtime_1.jsx)("tfoot", { style: {
|
|
15
12
|
paddingRight: "".concat(SCROLL_BAR_SIZE[0], "px"),
|
|
16
|
-
}, children: (0, jsx_runtime_1.jsxs)("tr", {
|
|
17
|
-
// className="grid bg-gray-100"
|
|
18
|
-
style: {
|
|
13
|
+
}, children: (0, jsx_runtime_1.jsxs)("tr", { style: {
|
|
19
14
|
height: "".concat(rowHeight, "px"),
|
|
20
|
-
}, children: [!!selectable && (
|
|
15
|
+
}, children: [!!selectable && (0, jsx_runtime_1.jsx)("div", {}, "__select_checkbox__"), visibleColumns.map(function (_a) {
|
|
21
16
|
var _b, _c;
|
|
22
17
|
var key = _a[0], col = _a[1];
|
|
23
|
-
return ((0, jsx_runtime_1.jsx)("
|
|
24
|
-
// 'inline-block relative group px-3 py-0 text-left text-sm hover:bg-gray-50 leading-6',
|
|
25
|
-
col.className,
|
|
26
|
-
col.footerClassName,
|
|
27
|
-
// '!overflow-visible',
|
|
28
|
-
], ' '), style: { width: ((_b = col.width) !== null && _b !== void 0 ? _b : 150) + 'px' }, children: (_c = col.footer) === null || _c === void 0 ? void 0 : _c.call(col, rows, sortedRows, selectedRows) }, key));
|
|
18
|
+
return ((0, jsx_runtime_1.jsx)("div", { style: { width: ((_b = col.width) !== null && _b !== void 0 ? _b : 150) + 'px' }, children: (_c = col.footer) === null || _c === void 0 ? void 0 : _c.call(col, rows, sortedRows, selectedRows) }, key));
|
|
29
19
|
})] }) }));
|
|
30
20
|
};
|
|
31
21
|
exports.DataGridFooter = DataGridFooter;
|
|
@@ -22,6 +22,42 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
|
|
22
22
|
__setModuleDefault(result, mod);
|
|
23
23
|
return result;
|
|
24
24
|
};
|
|
25
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
26
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
27
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
28
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
29
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
30
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
31
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
32
|
+
});
|
|
33
|
+
};
|
|
34
|
+
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
35
|
+
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
|
|
36
|
+
return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
37
|
+
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
38
|
+
function step(op) {
|
|
39
|
+
if (f) throw new TypeError("Generator is already executing.");
|
|
40
|
+
while (g && (g = 0, op[0] && (_ = 0)), _) try {
|
|
41
|
+
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
42
|
+
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
43
|
+
switch (op[0]) {
|
|
44
|
+
case 0: case 1: t = op; break;
|
|
45
|
+
case 4: _.label++; return { value: op[1], done: false };
|
|
46
|
+
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
47
|
+
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
48
|
+
default:
|
|
49
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
50
|
+
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
51
|
+
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
52
|
+
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
53
|
+
if (t[2]) _.ops.pop();
|
|
54
|
+
_.trys.pop(); continue;
|
|
55
|
+
}
|
|
56
|
+
op = body.call(thisArg, _);
|
|
57
|
+
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
58
|
+
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
59
|
+
}
|
|
60
|
+
};
|
|
25
61
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
62
|
exports.DataGridHeader = void 0;
|
|
27
63
|
var jsx_runtime_1 = require("react/jsx-runtime");
|
|
@@ -38,32 +74,44 @@ var hooks_1 = require("./DataGridColumnsModal/hooks");
|
|
|
38
74
|
var hooks_2 = require("./hooks");
|
|
39
75
|
var DataGridHeader = function (_a) {
|
|
40
76
|
var context = _a.context;
|
|
41
|
-
var _b = (0, hooks_2.useDataGridContext)(context), name = _b.name, visibleColumns = _b.visibleColumns, selectable = _b.selectable, rows = _b.rows,
|
|
77
|
+
var _b = (0, hooks_2.useDataGridContext)(context), name = _b.name, visibleColumns = _b.visibleColumns, selectable = _b.selectable, rows = _b.rows, selectedKeys = _b.selectedKeys, setSelectedKeys = _b.setSelectedKeys, copyTable = _b.copyTable, setFilters = _b.setFilters, refresh = _b.refresh, headerColor = _b.headerColor, rowKeyGetter = _b.rowKeyGetter, gridTemplateColumns = _b.gridTemplateColumns, getAllIds = _b.getAllIds;
|
|
42
78
|
var _c = (0, react_1.useState)(), visibleFilter = _c[0], setVisibleFilter = _c[1];
|
|
43
79
|
var _d = (0, hooks_1.useDataGridColumnsModal)(context), openModal = _d.openModal, modal = _d.modal;
|
|
44
|
-
var checkboxStatus =
|
|
80
|
+
var checkboxStatus = selectedKeys.length === 0
|
|
45
81
|
? false
|
|
46
|
-
:
|
|
82
|
+
: selectedKeys.length === rows.length
|
|
47
83
|
? true
|
|
48
84
|
: undefined;
|
|
49
|
-
var toggleAll = (0, react_1.useCallback)(function (newStatus) {
|
|
50
|
-
|
|
51
|
-
|
|
85
|
+
var toggleAll = (0, react_1.useCallback)(function (newStatus) { return __awaiter(void 0, void 0, void 0, function () {
|
|
86
|
+
var allIds, _a;
|
|
87
|
+
return __generator(this, function (_b) {
|
|
88
|
+
switch (_b.label) {
|
|
89
|
+
case 0:
|
|
90
|
+
if (!getAllIds) return [3 /*break*/, 2];
|
|
91
|
+
return [4 /*yield*/, getAllIds()];
|
|
92
|
+
case 1:
|
|
93
|
+
_a = _b.sent();
|
|
94
|
+
return [3 /*break*/, 3];
|
|
95
|
+
case 2:
|
|
96
|
+
_a = rows.map(rowKeyGetter);
|
|
97
|
+
_b.label = 3;
|
|
98
|
+
case 3:
|
|
99
|
+
allIds = _a;
|
|
100
|
+
setSelectedKeys(newStatus ? allIds : []);
|
|
101
|
+
return [2 /*return*/];
|
|
102
|
+
}
|
|
103
|
+
});
|
|
104
|
+
}); }, [getAllIds, rowKeyGetter, rows, setSelectedKeys]);
|
|
52
105
|
var onFilterButtonClicked = (0, react_1.useCallback)(function (columnKey) {
|
|
53
106
|
setVisibleFilter(function (prev) { return (prev === columnKey ? undefined : columnKey); });
|
|
54
107
|
}, []);
|
|
55
|
-
var gridTemplateColumns = (0, react_1.useMemo)(function () { return visibleColumns.map(function (_a) {
|
|
56
|
-
var _b;
|
|
57
|
-
var col = _a[1];
|
|
58
|
-
return "".concat((_b = col.width) !== null && _b !== void 0 ? _b : 150, "px");
|
|
59
|
-
}).join(' '); }, [visibleColumns]);
|
|
60
108
|
var _e = (0, react_1.useState)(false), isLoadingVisible = _e[0], setIsLoadingVisible = _e[1];
|
|
61
109
|
var runCopyTable = (0, react_1.useCallback)(function () {
|
|
62
110
|
setIsLoadingVisible(true);
|
|
63
111
|
copyTable().then(function () { return setIsLoadingVisible(false); });
|
|
64
112
|
}, [copyTable]);
|
|
65
113
|
var toolsRow = ((0, jsx_runtime_1.jsxs)(styles.DataGridToolsRow, { children: [(0, jsx_runtime_1.jsx)(layout_1.Loading, { visible: isLoadingVisible }), refresh && ((0, jsx_runtime_1.jsxs)(forms_1.Button, { size: "small", onClick: refresh, children: [(0, jsx_runtime_1.jsx)(Icons_1.ArrowsRotateIcon, {}), "Rafra\u00EEchir"] })), (0, jsx_runtime_1.jsxs)(forms_1.Button, { color: "emerald", size: "small", onClick: runCopyTable, children: [(0, jsx_runtime_1.jsx)(Icons_1.CopyIcon, {}), "Copier la table"] }), (0, jsx_runtime_1.jsxs)(forms_1.Button, { size: "small", color: "danger", onClick: function () { return setFilters({}); }, children: [(0, jsx_runtime_1.jsx)(Icons_1.FilterSlashIcon, {}), "Supprimer les filtres"] }), name && ((0, jsx_runtime_1.jsxs)(forms_1.Button, { color: "info", size: "small", onClick: openModal, children: [(0, jsx_runtime_1.jsx)(Icons_1.TableColumnsIcon, {}), "Param\u00E8tres des colonnes"] }))] }));
|
|
66
|
-
return ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [modal, toolsRow, (0, jsx_runtime_1.jsxs)(styles.DataGridHeaderRow, { "$gridTemplateColumns": gridTemplateColumns, "$headerColor": headerColor, children: [!!selectable && ((0, jsx_runtime_1.jsx)("
|
|
114
|
+
return ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [modal, toolsRow, (0, jsx_runtime_1.jsxs)(styles.DataGridHeaderRow, { "$gridTemplateColumns": gridTemplateColumns, "$headerColor": headerColor, children: [!!selectable && ((0, jsx_runtime_1.jsx)(styles.HeaderSelectionCell, { "$headerColor": headerColor, children: (0, jsx_runtime_1.jsx)(IndeterminateCheckbox_1.IndeterminateCheckbox, { checked: checkboxStatus, onChange: function () { return toggleAll(!(checkboxStatus !== null && checkboxStatus !== void 0 ? checkboxStatus : true)); } }) })), visibleColumns.map(function (_a, index) {
|
|
67
115
|
var key = _a[0], col = _a[1];
|
|
68
116
|
return ((0, jsx_runtime_1.jsx)(DataGridHeaderCell_1.DataGridHeaderCell, { columnKey: key, column: col, context: context, columnIndex: index, isFilterOpen: visibleFilter === key, onFilterButtonClicked: onFilterButtonClicked }, key));
|
|
69
117
|
})] })] }));
|
|
@@ -36,11 +36,11 @@ var IconButton_1 = require("../../forms/IconButton");
|
|
|
36
36
|
var hooks_1 = require("./hooks");
|
|
37
37
|
var providers_1 = require("../../../providers");
|
|
38
38
|
var DataGridHeaderCell = function (_a) {
|
|
39
|
-
var _b
|
|
39
|
+
var _b;
|
|
40
40
|
var columnKey = _a.columnKey, columnIndex = _a.columnIndex, column = _a.column, context = _a.context;
|
|
41
41
|
var getElementScreenRect = (0, providers_1.useUi)().getElementScreenRect;
|
|
42
42
|
var contextValue = (0, hooks_1.useDataGridContext)(context);
|
|
43
|
-
var
|
|
43
|
+
var _c = contextValue.filters, filters = _c === void 0 ? {} : _c, _d = contextValue.sorts, sorts = _d === void 0 ? {} : _d, setSorts = contextValue.setSorts, setColumnWidth = contextValue.setColumnWidth, saveSettings = contextValue.saveSettings, headerColor = contextValue.headerColor;
|
|
44
44
|
var filterButtonRef = (0, react_1.useRef)(null);
|
|
45
45
|
/** SORTING */
|
|
46
46
|
var SortIcon = sorts[columnKey]
|
|
@@ -59,7 +59,7 @@ var DataGridHeaderCell = function (_a) {
|
|
|
59
59
|
}
|
|
60
60
|
}, [setSorts, sorts]);
|
|
61
61
|
/** RESIZING */
|
|
62
|
-
var
|
|
62
|
+
var _e = (0, react_1.useState)(false), isResizing = _e[0], setIsResizing = _e[1];
|
|
63
63
|
var resizingOffset = (0, react_1.useRef)(0);
|
|
64
64
|
var onResizeStart = (0, react_1.useCallback)(function (e) {
|
|
65
65
|
resizingOffset.current = e.screenX - (column.width || 150);
|
|
@@ -75,7 +75,7 @@ var DataGridHeaderCell = function (_a) {
|
|
|
75
75
|
setIsResizing(false);
|
|
76
76
|
saveSettings();
|
|
77
77
|
}, [saveSettings]);
|
|
78
|
-
var
|
|
78
|
+
var _f = (0, react_1.useState)(false), isFilterDropdownVisible = _f[0], setIsFilterDropdownVisible = _f[1];
|
|
79
79
|
var filterDropdown = (0, react_1.useMemo)(function () {
|
|
80
80
|
if (!isFilterDropdownVisible || !filterButtonRef.current || !columnKey) {
|
|
81
81
|
return null;
|
|
@@ -94,6 +94,7 @@ var DataGridHeaderCell = function (_a) {
|
|
|
94
94
|
var onFilterButtonClicked = (0, react_1.useCallback)(function () {
|
|
95
95
|
setIsFilterDropdownVisible(true);
|
|
96
96
|
}, []);
|
|
97
|
-
|
|
97
|
+
var hasFilters = ((_b = filters[columnKey]) === null || _b === void 0 ? void 0 : _b.values.length) > 0;
|
|
98
|
+
return ((0, jsx_runtime_1.jsxs)(styles.DataGridHeaderCellContainer, { "$headerColor": headerColor, "$isResizing": isResizing, children: [filterDropdown, (0, jsx_runtime_1.jsx)("span", { children: column.name }), !!column.sortGetter && ((0, jsx_runtime_1.jsx)(IconButton_1.IconButton, { color: headerColor, size: "small", icon: SortIcon, onClick: function () { return onSortButtonClicked === null || onSortButtonClicked === void 0 ? void 0 : onSortButtonClicked(columnKey); } })), !!column.filter && ((0, jsx_runtime_1.jsx)(IconButton_1.IconButton, { size: "small", className: hasFilters ? 'danger' : '', ref: filterButtonRef, icon: hasFilters ? Icons_1.FilterFullIcon : Icons_1.FilterIcon, color: hasFilters ? 'danger' : headerColor, onClick: onFilterButtonClicked })), column.resizable !== false && ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(styles.DataGridResizeGrip, { className: isResizing ? 'active' : '', "$headerColor": headerColor, onMouseDown: onResizeStart }), isResizing && ((0, jsx_runtime_1.jsx)(styles.ResizeBackdrop, { onMouseMove: onResizeMove, onMouseUp: onResizeEnd }))] }))] }));
|
|
98
99
|
};
|
|
99
100
|
exports.DataGridHeaderCell = DataGridHeaderCell;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { DataGridFilter
|
|
2
|
-
type FilterModalContentProps
|
|
3
|
-
filter: DataGridFilter
|
|
4
|
-
onFilterChanged: (filter: DataGridFilter
|
|
1
|
+
import { DataGridFilter } from '../types';
|
|
2
|
+
type FilterModalContentProps = {
|
|
3
|
+
filter: DataGridFilter;
|
|
4
|
+
onFilterChanged: (filter: DataGridFilter) => void;
|
|
5
5
|
};
|
|
6
|
-
export declare const FilterModalContent:
|
|
6
|
+
export declare const FilterModalContent: ({ filter, onFilterChanged, }: FilterModalContentProps) => import("react/jsx-runtime").JSX.Element | null;
|
|
7
7
|
export {};
|
|
@@ -83,15 +83,17 @@ var FilterModalContent = function (_a) {
|
|
|
83
83
|
var operator = filter.operator, type = filter.type, values = filter.values;
|
|
84
84
|
return ((0, jsx_runtime_1.jsxs)(styles.FilterModalContentContainer, { children: [(0, jsx_runtime_1.jsxs)("label", { htmlFor: "filterOperator", children: [(0, jsx_runtime_1.jsx)("span", { children: "Op\u00E9rateur :" }), (0, jsx_runtime_1.jsx)(forms_1.Select, { name: "filterOperator", items: Object.entries(filterOperators[filter.type]), itemKey: 0, itemLabel: 1, value: String(operator), className: "text-sm", onChange: function (e) {
|
|
85
85
|
return onFilterChanged(__assign(__assign({}, filter), { operator: e.target.value }));
|
|
86
|
-
} })] }), (0, jsx_runtime_1.jsxs)("label", { htmlFor: "filterValue1", children: [(0, jsx_runtime_1.jsxs)("span", { children: [operator === 'inRange' ? 'Entre' : 'Valeur', " :"] }), (0, jsx_runtime_1.jsx)(forms_1.Input, { ref: value1Ref, name: "filterValue1", type: filter.type, value: (_b = values[0]) !== null && _b !== void 0 ? _b : '',
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
86
|
+
} })] }), (0, jsx_runtime_1.jsxs)("label", { htmlFor: "filterValue1", children: [(0, jsx_runtime_1.jsxs)("span", { children: [operator === 'inRange' ? 'Entre' : 'Valeur', " :"] }), (0, jsx_runtime_1.jsx)(forms_1.Input, { ref: value1Ref, name: "filterValue1", type: filter.type, value: (_b = values[0]) !== null && _b !== void 0 ? _b : '', onChange: function (e) {
|
|
87
|
+
if (type === 'number') {
|
|
88
|
+
var newValues = __spreadArray([], values, true);
|
|
89
|
+
newValues[0] = Number(e.target.value);
|
|
90
|
+
onFilterChanged(__assign(__assign({}, filter), { values: newValues }));
|
|
91
|
+
}
|
|
92
|
+
else {
|
|
93
|
+
var newValues = __spreadArray([], values, true);
|
|
94
|
+
newValues[0] = String(e.target.value);
|
|
95
|
+
onFilterChanged(__assign(__assign({}, filter), { values: newValues }));
|
|
96
|
+
}
|
|
95
97
|
} })] }), operator === 'inRange' && ((0, jsx_runtime_1.jsxs)("label", { htmlFor: "filterValue2", children: [(0, jsx_runtime_1.jsx)("span", { children: "et" }), (0, jsx_runtime_1.jsx)("input", { name: "filterValue2", type: filter.type, value: (_c = values[1]) !== null && _c !== void 0 ? _c : '',
|
|
96
98
|
// className="text-sm w-24"
|
|
97
99
|
onChange: function (e) {
|
|
@@ -1,12 +1,13 @@
|
|
|
1
|
-
import { DataGridFilterFormatter, DataGridFilterGroup } from './types';
|
|
2
|
-
type FilterValuesScrollerProps
|
|
3
|
-
values:
|
|
1
|
+
import { DataGridFilterFormatter, DataGridFilterGroup, DataGridFilterRenderer, DataGridFilterValue } from './types';
|
|
2
|
+
type FilterValuesScrollerProps = {
|
|
3
|
+
values: DataGridFilterValue[];
|
|
4
4
|
rowHeight?: number;
|
|
5
5
|
formatter: DataGridFilterFormatter;
|
|
6
|
+
renderer: DataGridFilterRenderer;
|
|
6
7
|
onRangeChange?: (startIndex: number, length: number) => void;
|
|
7
|
-
onToggle?: (values:
|
|
8
|
-
selectedValues?:
|
|
9
|
-
groups?: DataGridFilterGroup
|
|
8
|
+
onToggle?: (values: DataGridFilterValue[]) => void;
|
|
9
|
+
selectedValues?: DataGridFilterValue[];
|
|
10
|
+
groups?: DataGridFilterGroup[];
|
|
10
11
|
};
|
|
11
|
-
export declare const FilterValuesScroller:
|
|
12
|
+
export declare const FilterValuesScroller: ({ values, rowHeight, onRangeChange, onToggle, formatter, renderer, selectedValues, groups, }: FilterValuesScrollerProps) => import("react/jsx-runtime").JSX.Element;
|
|
12
13
|
export {};
|
|
@@ -39,23 +39,22 @@ var jsx_runtime_1 = require("react/jsx-runtime");
|
|
|
39
39
|
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
40
40
|
var styles = __importStar(require("./styles"));
|
|
41
41
|
var lodash_1 = require("lodash");
|
|
42
|
-
var react_1 = require("react");
|
|
43
42
|
var helpers_1 = require("./helpers");
|
|
43
|
+
var react_1 = require("react");
|
|
44
44
|
var hooks_1 = require("../../../hooks");
|
|
45
|
-
var defaultFormatter = function (value) { return (value == null ? null : String(value)); };
|
|
46
45
|
var CheckboxTemplate = function (_a) {
|
|
47
46
|
var selectedValues = _a.selectedValues, value = _a.value, index = _a.index, className = _a.className, style = _a.style, onToggle = _a.onToggle;
|
|
48
47
|
return ((0, jsx_runtime_1.jsxs)("div", { className: (0, lodash_1.join)([
|
|
49
48
|
// 'absolute left-0 right-0 flex flex-row cursor-pointer hover:bg-gray-50',
|
|
50
49
|
className,
|
|
51
|
-
], ' '), style: __assign(__assign({}, style), { paddingLeft: "".concat(value.level, "rem") }), title: value.
|
|
50
|
+
], ' '), style: __assign(__assign({}, style), { paddingLeft: "".concat(value.level, "rem") }), title: value.title, onClick: function () { return onToggle === null || onToggle === void 0 ? void 0 : onToggle([value.value]); }, children: [(0, jsx_runtime_1.jsx)("input", { type: "checkbox", checked: selectedValues.includes(value.value), readOnly: true }), (0, jsx_runtime_1.jsx)("span", { children: value.displayValue || '(Vides)' })] }, index));
|
|
52
51
|
};
|
|
53
52
|
var FilterValuesScroller = function (_a) {
|
|
54
|
-
var values = _a.values, _b = _a.rowHeight, rowHeight = _b === void 0 ? styles.DEFAULT_FILTER_ROW_HEIGHT : _b, onRangeChange = _a.onRangeChange, onToggle = _a.onToggle, _c = _a.formatter, formatter = _c === void 0 ?
|
|
53
|
+
var values = _a.values, _b = _a.rowHeight, rowHeight = _b === void 0 ? styles.DEFAULT_FILTER_ROW_HEIGHT : _b, onRangeChange = _a.onRangeChange, onToggle = _a.onToggle, _c = _a.formatter, formatter = _c === void 0 ? helpers_1.defaultRendererAndFormatter : _c, _d = _a.renderer, renderer = _d === void 0 ? helpers_1.defaultRendererAndFormatter : _d, _e = _a.selectedValues, selectedValues = _e === void 0 ? [] : _e, groups = _a.groups;
|
|
55
54
|
var scrollableRef = (0, react_1.useRef)(null);
|
|
56
55
|
var height = (0, hooks_1.useElementSize)(scrollableRef.current).height;
|
|
57
56
|
var tolerance = 20;
|
|
58
|
-
var
|
|
57
|
+
var _f = (0, react_1.useState)(0), scrollTop = _f[0], setScrollTop = _f[1];
|
|
59
58
|
var index = Math.floor(scrollTop / rowHeight);
|
|
60
59
|
var length = Math.ceil(height / rowHeight);
|
|
61
60
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
@@ -63,7 +62,7 @@ var FilterValuesScroller = function (_a) {
|
|
|
63
62
|
var target = e.target;
|
|
64
63
|
setScrollTop(function () { return target.scrollTop; });
|
|
65
64
|
}, 50), []);
|
|
66
|
-
var checkboxes = (0, react_1.useMemo)(function () { return (0, helpers_1.getCheckboxes)(values,
|
|
65
|
+
var checkboxes = (0, react_1.useMemo)(function () { return (0, helpers_1.getCheckboxes)(values, renderer, formatter, groups); }, [values, groups, renderer, formatter]);
|
|
67
66
|
var visibleCheckboxes = checkboxes.slice(Math.max(0, index - tolerance), index + length + 1 + tolerance);
|
|
68
67
|
var firstCheckboxTop = Math.max(0, index - tolerance) * rowHeight;
|
|
69
68
|
(0, react_1.useEffect)(function () {
|
|
@@ -30,17 +30,12 @@ var react_1 = require("react");
|
|
|
30
30
|
var VirtualScroller = function (props) {
|
|
31
31
|
var _a = (0, react_1.useContext)(props.context), _b = _a.rowHeight, rowHeight = _b === void 0 ? styles.DEFAULT_ROW_HEIGHT : _b,
|
|
32
32
|
// headerRowHeight = styles.DEFAULT_HEADER_ROW_HEIGHT,
|
|
33
|
-
sortedRows = _a.sortedRows,
|
|
33
|
+
sortedRows = _a.sortedRows, index = _a.index, visibleRows = _a.visibleRows, gridTemplateColumns = _a.gridTemplateColumns;
|
|
34
34
|
var rowTemplate = props.rowTemplate;
|
|
35
35
|
var totalHeight = sortedRows.length * rowHeight;
|
|
36
36
|
var topPadding = Math.max(0, index - styles.VIRTUAL_SCROLL_TOLERANCE) * rowHeight;
|
|
37
37
|
// const headerAndFooterHeight =
|
|
38
38
|
// 2 * headerRowHeight + (hasFooter ? rowHeight : 0) + 2;
|
|
39
|
-
var gridTemplateColumns = (0, react_1.useMemo)(function () { return visibleColumns.map(function (_a) {
|
|
40
|
-
var _b;
|
|
41
|
-
var col = _a[1];
|
|
42
|
-
return "".concat((_b = col.width) !== null && _b !== void 0 ? _b : 150, "px");
|
|
43
|
-
}).join(' '); }, [visibleColumns]);
|
|
44
39
|
return ((0, jsx_runtime_1.jsx)(styles.VirtualScrollerContainer, { "$height": totalHeight, children: (0, jsx_runtime_1.jsx)(styles.VirtualScrollerRowsContainer, { "$gridTemplateColumns": gridTemplateColumns, "$topPadding": topPadding, "$rowHeight": rowHeight, children: visibleRows.map(rowTemplate) }) }));
|
|
45
40
|
};
|
|
46
41
|
exports.VirtualScroller = VirtualScroller;
|
|
@@ -1,13 +1,12 @@
|
|
|
1
|
-
import { DataGridColumn, DataGridColumns,
|
|
2
|
-
export declare const isColumnVisible: <R>(obj: DataGridColumn<R
|
|
3
|
-
export declare const textColumn: <R extends Record<string, any>>(key: string, title: string, options?: Partial<DataGridColumn<R
|
|
4
|
-
export declare const mailColumn: <R extends Record<string, any>>(key: string, title: string, options?: Partial<DataGridColumn<R
|
|
5
|
-
export declare const phoneColumn: <R extends Record<string, any>>(key: string, title: string, options?: Partial<DataGridColumn<R
|
|
6
|
-
export declare const dateColumn: <R extends Record<string, any>>(key: string, title: string, options?: Partial<DataGridColumn<R
|
|
7
|
-
export declare const monthColumn: <R extends Record<string, any>>(key: string, title: string, options?: Partial<DataGridColumn<R
|
|
8
|
-
export declare const numberColumn: <R extends Record<string, any>>(key: string, title: string, decimals?: number, options?: Partial<DataGridColumn<R
|
|
9
|
-
export declare const moneyColumn: <R extends Record<string, any>>(key: string, title: string, decimals?: number, options?: Partial<DataGridColumn<R
|
|
10
|
-
export declare const percentageColumn: <R extends Record<string, any>>(key: string, title: string, options?: Partial<DataGridColumn<R
|
|
11
|
-
export declare const checkboxColumn: <R extends Record<string, any>>(key: string, title: string, options?: Partial<DataGridColumn<R
|
|
12
|
-
export declare const colorColumn: <R extends Record<string, any>>(key: string, title: string, options?: Partial<DataGridColumn<R
|
|
13
|
-
export declare const withGroupBy: <R extends Record<string, any>>(columns: DataGridColumns<R>) => DataGridColumns<R>;
|
|
1
|
+
import { DataGridColumn, DataGridColumns, DataGridSettings } from '../types';
|
|
2
|
+
export declare const isColumnVisible: <R>(obj: DataGridColumn<R> | DataGridSettings) => boolean;
|
|
3
|
+
export declare const textColumn: <R extends Record<string, any>>(key: string, title: string, options?: Partial<DataGridColumn<R>>) => DataGridColumns<R>;
|
|
4
|
+
export declare const mailColumn: <R extends Record<string, any>>(key: string, title: string, options?: Partial<DataGridColumn<R>>) => DataGridColumns<R>;
|
|
5
|
+
export declare const phoneColumn: <R extends Record<string, any>>(key: string, title: string, options?: Partial<DataGridColumn<R>>) => DataGridColumns<R>;
|
|
6
|
+
export declare const dateColumn: <R extends Record<string, any>>(key: string, title: string, options?: Partial<DataGridColumn<R>>) => DataGridColumns<R>;
|
|
7
|
+
export declare const monthColumn: <R extends Record<string, any>>(key: string, title: string, options?: Partial<DataGridColumn<R>>) => DataGridColumns<R>;
|
|
8
|
+
export declare const numberColumn: <R extends Record<string, any>>(key: string, title: string, decimals?: number, options?: Partial<DataGridColumn<R>>) => DataGridColumns<R>;
|
|
9
|
+
export declare const moneyColumn: <R extends Record<string, any>>(key: string, title: string, decimals?: number, options?: Partial<DataGridColumn<R>>) => DataGridColumns<R>;
|
|
10
|
+
export declare const percentageColumn: <R extends Record<string, any>>(key: string, title: string, options?: Partial<DataGridColumn<R>>) => DataGridColumns<R>;
|
|
11
|
+
export declare const checkboxColumn: <R extends Record<string, any>>(key: string, title: string, options?: Partial<DataGridColumn<R>>) => DataGridColumns<R>;
|
|
12
|
+
export declare const colorColumn: <R extends Record<string, any>>(key: string, title: string, options?: Partial<DataGridColumn<R>>) => DataGridColumns<R>;
|