@addev-be/ui 0.2.2 → 0.2.5
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/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/AdvancedRequestDataGrid/types.js +2 -0
- package/dist/components/data/DataGrid/DataGridCell.js +2 -2
- package/dist/components/data/DataGrid/DataGridFooter.js +2 -2
- package/dist/components/data/DataGrid/DataGridHeader.js +62 -12
- package/dist/components/data/DataGrid/FilterModalContent/index.d.ts +1 -1
- 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 -68
- package/dist/components/data/DataGrid/helpers/filters.d.ts +5 -5
- package/dist/components/data/DataGrid/helpers/filters.js +15 -18
- 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 +26 -4
- package/dist/components/data/DataGrid/index.js +12 -16
- package/dist/components/data/DataGrid/styles.d.ts +3 -1
- package/dist/components/data/DataGrid/styles.js +3 -3
- package/dist/components/data/DataGrid/types.d.ts +33 -45
- package/dist/components/data/SqlRequestDataGrid/helpers/columns.d.ts +16 -0
- package/dist/components/data/SqlRequestDataGrid/helpers/columns.js +114 -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 +208 -0
- package/dist/components/data/SqlRequestDataGrid/types.d.ts +20 -0
- package/dist/components/data/SqlRequestDataGrid/types.js +2 -0
- package/dist/components/data/index.d.ts +5 -2
- package/dist/components/data/index.js +5 -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/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/components/data/DataGrid/DataGridCell.tsx +3 -5
- package/src/components/data/DataGrid/DataGridHeader.tsx +3 -5
- package/src/components/data/DataGrid/DataGridHeaderCell.tsx +5 -4
- package/src/components/data/DataGrid/helpers/columns.tsx +1 -4
- package/src/components/data/DataGrid/hooks/useDataGrid.tsx +4 -1
- package/src/components/data/DataGrid/hooks/useDataGridCopy.ts +0 -1
- package/src/components/data/DataGrid/hooks/useDataGridSettings.ts +0 -1
- package/src/components/data/DataGrid/index.tsx +5 -6
- package/src/components/data/DataGrid/styles.ts +36 -9
- package/src/components/data/DataGrid/types.ts +10 -3
- package/src/components/data/SqlRequestDataGrid/helpers/columns.tsx +22 -4
- package/src/components/data/SqlRequestDataGrid/index.tsx +58 -27
- package/src/components/data/SqlRequestDataGrid/types.ts +1 -0
- package/src/components/data/index.ts +2 -0
- package/src/helpers/dates.ts +9 -0
- package/src/services/sqlRequests.ts +1 -0
- package/tsconfig.tsbuildinfo +1 -1
|
@@ -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,46 @@ 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.SelectionCell
|
|
115
|
+
// className="inline-flex items-center justify-center w-12 select-none"
|
|
116
|
+
, { children: (0, jsx_runtime_1.jsx)(IndeterminateCheckbox_1.IndeterminateCheckbox, { checked: checkboxStatus, onChange: function () { return toggleAll(!checkboxStatus); } }) })), visibleColumns.map(function (_a, index) {
|
|
67
117
|
var key = _a[0], col = _a[1];
|
|
68
118
|
return ((0, jsx_runtime_1.jsx)(DataGridHeaderCell_1.DataGridHeaderCell, { columnKey: key, column: col, context: context, columnIndex: index, isFilterOpen: visibleFilter === key, onFilterButtonClicked: onFilterButtonClicked }, key));
|
|
69
119
|
})] })] }));
|
|
@@ -3,5 +3,5 @@ type FilterModalContentProps<R, T extends DataGridFilterType = DataGridFilterTyp
|
|
|
3
3
|
filter: DataGridFilter<R, T>;
|
|
4
4
|
onFilterChanged: (filter: DataGridFilter<R, T>) => void;
|
|
5
5
|
};
|
|
6
|
-
export declare const FilterModalContent: <R, T extends DataGridFilterType =
|
|
6
|
+
export declare const FilterModalContent: <R, T extends DataGridFilterType = keyof import("../types").DataGridFilterPredicates>({ filter, onFilterChanged, }: FilterModalContentProps<R, T>) => import("react/jsx-runtime").JSX.Element | null;
|
|
7
7
|
export {};
|
|
@@ -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>;
|
|
@@ -14,82 +14,58 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
14
14
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
exports.
|
|
17
|
+
exports.colorColumn = exports.checkboxColumn = exports.percentageColumn = exports.moneyColumn = exports.numberColumn = exports.monthColumn = exports.dateColumn = exports.phoneColumn = exports.mailColumn = exports.textColumn = exports.isColumnVisible = void 0;
|
|
18
18
|
var jsx_runtime_1 = require("react/jsx-runtime");
|
|
19
19
|
var numbers_1 = require("../../../../helpers/numbers");
|
|
20
|
-
var
|
|
20
|
+
var filters_1 = require("./filters");
|
|
21
21
|
var moment_1 = __importDefault(require("moment"));
|
|
22
22
|
var isColumnVisible = function (obj) {
|
|
23
|
+
console.log('isColumnVisible obj=', obj);
|
|
23
24
|
return (obj === null || obj === void 0 ? void 0 : obj.order) !== -1;
|
|
24
25
|
};
|
|
25
26
|
exports.isColumnVisible = isColumnVisible;
|
|
26
27
|
var textColumn = function (key, title, options) {
|
|
27
28
|
var _a;
|
|
28
29
|
return (_a = {},
|
|
29
|
-
_a[key] = __assign({ name: title, render: function (
|
|
30
|
-
type: 'text',
|
|
31
|
-
operator: 'contains',
|
|
32
|
-
values: [''],
|
|
33
|
-
getter: function (row) { var _a; return (_a = row[key]) !== null && _a !== void 0 ? _a : ''; },
|
|
34
|
-
} }, options),
|
|
30
|
+
_a[key] = __assign({ name: title, render: function (row) { var _a; return (_a = row[key]) !== null && _a !== void 0 ? _a : ''; }, getter: function (row) { var _a; return (_a = row[key]) !== null && _a !== void 0 ? _a : ''; }, sortGetter: function (row) { var _a; return (_a = row[key]) !== null && _a !== void 0 ? _a : ''; }, filter: (0, filters_1.textFilter)(key) }, options),
|
|
35
31
|
_a);
|
|
36
32
|
};
|
|
37
33
|
exports.textColumn = textColumn;
|
|
38
34
|
var mailColumn = function (key, title, options) {
|
|
39
35
|
var _a;
|
|
40
36
|
return (_a = {},
|
|
41
|
-
_a[key] = __assign({ name: title, render: function (
|
|
37
|
+
_a[key] = __assign({ name: title, render: function (row) {
|
|
42
38
|
var _a;
|
|
43
39
|
return ((0, jsx_runtime_1.jsx)("a", {
|
|
44
40
|
// className="text-blue-500 hover:text-blue-700"
|
|
45
41
|
href: "mailto:".concat(row[key]), children: (_a = row[key]) !== null && _a !== void 0 ? _a : '' }));
|
|
46
|
-
}, getter: function (row) { var _a; return (_a = row[key]) !== null && _a !== void 0 ? _a : ''; }, sortGetter: function (row) { var _a; return (_a = row[key]) !== null && _a !== void 0 ? _a : ''; }, filter:
|
|
47
|
-
type: 'text',
|
|
48
|
-
operator: 'contains',
|
|
49
|
-
values: [''],
|
|
50
|
-
getter: function (row) { var _a; return (_a = row[key]) !== null && _a !== void 0 ? _a : ''; },
|
|
51
|
-
} }, options),
|
|
42
|
+
}, getter: function (row) { var _a; return (_a = row[key]) !== null && _a !== void 0 ? _a : ''; }, sortGetter: function (row) { var _a; return (_a = row[key]) !== null && _a !== void 0 ? _a : ''; }, filter: (0, filters_1.textFilter)(key) }, options),
|
|
52
43
|
_a);
|
|
53
44
|
};
|
|
54
45
|
exports.mailColumn = mailColumn;
|
|
55
46
|
var phoneColumn = function (key, title, options) {
|
|
56
47
|
var _a;
|
|
57
48
|
return (_a = {},
|
|
58
|
-
_a[key] = __assign({ name: title, render: function (
|
|
49
|
+
_a[key] = __assign({ name: title, render: function (row) {
|
|
59
50
|
var _a;
|
|
60
51
|
return ((0, jsx_runtime_1.jsx)("a", {
|
|
61
52
|
// className="text-blue-500 hover:text-blue-700"
|
|
62
53
|
href: "tel:".concat(row[key]), children: (_a = row[key]) !== null && _a !== void 0 ? _a : '' }));
|
|
63
|
-
}, getter: function (row) { var _a; return (_a = row[key]) !== null && _a !== void 0 ? _a : ''; }, sortGetter: function (row) { var _a; return (_a = row[key]) !== null && _a !== void 0 ? _a : ''; }, filter:
|
|
64
|
-
type: 'text',
|
|
65
|
-
operator: 'contains',
|
|
66
|
-
values: [''],
|
|
67
|
-
getter: function (row) { var _a; return (_a = row[key]) !== null && _a !== void 0 ? _a : ''; },
|
|
68
|
-
} }, options),
|
|
54
|
+
}, getter: function (row) { var _a; return (_a = row[key]) !== null && _a !== void 0 ? _a : ''; }, sortGetter: function (row) { var _a; return (_a = row[key]) !== null && _a !== void 0 ? _a : ''; }, filter: (0, filters_1.textFilter)(key) }, options),
|
|
69
55
|
_a);
|
|
70
56
|
};
|
|
71
57
|
exports.phoneColumn = phoneColumn;
|
|
72
58
|
var dateColumn = function (key, title, options) {
|
|
73
59
|
var _a;
|
|
74
60
|
return (_a = {},
|
|
75
|
-
_a[key] = __assign({ name: title, render: function (
|
|
76
|
-
type: 'text',
|
|
77
|
-
operator: 'contains',
|
|
78
|
-
values: [''],
|
|
79
|
-
getter: function (row) { var _a; return (_a = row[key]) !== null && _a !== void 0 ? _a : ''; },
|
|
80
|
-
} }, options),
|
|
61
|
+
_a[key] = __assign({ name: title, render: function (row) { var _a; return (_a = (0, moment_1.default)(row[key]).format('DD/MM/YYYY')) !== null && _a !== void 0 ? _a : ''; }, getter: function (row) { var _a; return (_a = row[key]) !== null && _a !== void 0 ? _a : ''; }, sortGetter: function (row) { var _a; return (_a = row[key]) !== null && _a !== void 0 ? _a : ''; }, filter: (0, filters_1.textFilter)(key) }, options),
|
|
81
62
|
_a);
|
|
82
63
|
};
|
|
83
64
|
exports.dateColumn = dateColumn;
|
|
84
65
|
var monthColumn = function (key, title, options) {
|
|
85
66
|
var _a;
|
|
86
67
|
return (_a = {},
|
|
87
|
-
_a[key] = __assign({ name: title, render: function (
|
|
88
|
-
type: 'text',
|
|
89
|
-
operator: 'contains',
|
|
90
|
-
values: [''],
|
|
91
|
-
getter: function (row) { var _a; return (_a = row[key]) !== null && _a !== void 0 ? _a : ''; },
|
|
92
|
-
} }, options),
|
|
68
|
+
_a[key] = __assign({ name: title, render: function (row) { return (row[key] ? "".concat(row[key], " mois ") : ''); }, getter: function (row) { var _a; return (_a = row[key]) !== null && _a !== void 0 ? _a : ''; }, sortGetter: function (row) { var _a; return (_a = row[key]) !== null && _a !== void 0 ? _a : ''; }, filter: (0, filters_1.textFilter)(key) }, options),
|
|
93
69
|
_a);
|
|
94
70
|
};
|
|
95
71
|
exports.monthColumn = monthColumn;
|
|
@@ -97,11 +73,11 @@ var numberColumn = function (key, title, decimals, options) {
|
|
|
97
73
|
var _a;
|
|
98
74
|
if (decimals === void 0) { decimals = 2; }
|
|
99
75
|
return (_a = {},
|
|
100
|
-
_a[key] = __assign({ name: title, render: function (
|
|
76
|
+
_a[key] = __assign({ name: title, render: function (row) { var _a; return (_a = (0, numbers_1.formatNumber)(row[key], decimals)) !== null && _a !== void 0 ? _a : ''; }, excelFormatter: function () { return '#'; }, getter: function (row) { var _a; return (_a = row[key]) !== null && _a !== void 0 ? _a : ''; }, sortGetter: function (row) { var _a; return (_a = row[key]) !== null && _a !== void 0 ? _a : ''; }, filter: {
|
|
101
77
|
type: 'number',
|
|
102
78
|
operator: 'equals',
|
|
103
79
|
values: [0],
|
|
104
|
-
getter: function (
|
|
80
|
+
getter: function (value) { return value !== null && value !== void 0 ? value : 0; },
|
|
105
81
|
} }, options),
|
|
106
82
|
_a);
|
|
107
83
|
};
|
|
@@ -110,58 +86,31 @@ var moneyColumn = function (key, title, decimals, options) {
|
|
|
110
86
|
var _a;
|
|
111
87
|
if (decimals === void 0) { decimals = 2; }
|
|
112
88
|
return (_a = {},
|
|
113
|
-
_a[key] = __assign({ name: title, render: function (
|
|
114
|
-
type: 'number',
|
|
115
|
-
operator: 'equals',
|
|
116
|
-
values: [0],
|
|
117
|
-
getter: function (row) { var _a; return (_a = row[key]) !== null && _a !== void 0 ? _a : 0; },
|
|
118
|
-
} }, options),
|
|
89
|
+
_a[key] = __assign({ name: title, render: function (row) { var _a; return (_a = (0, numbers_1.formatMoney)(row[key], decimals)) !== null && _a !== void 0 ? _a : ''; }, excelFormatter: function () { return '#0.00'; }, getter: function (row) { var _a; return (_a = row[key]) !== null && _a !== void 0 ? _a : ''; }, sortGetter: function (row) { var _a; return (_a = row[key]) !== null && _a !== void 0 ? _a : ''; }, filter: (0, filters_1.numberFilter)(key) }, options),
|
|
119
90
|
_a);
|
|
120
91
|
};
|
|
121
92
|
exports.moneyColumn = moneyColumn;
|
|
122
93
|
var percentageColumn = function (key, title, options) {
|
|
123
94
|
var _a;
|
|
124
95
|
return (_a = {},
|
|
125
|
-
_a[key] = __assign({ name: title, render: function (
|
|
126
|
-
type: 'number',
|
|
127
|
-
operator: 'equals',
|
|
128
|
-
values: [0],
|
|
129
|
-
getter: function (row) { var _a; return (_a = row[key]) !== null && _a !== void 0 ? _a : 0; },
|
|
130
|
-
} }, options),
|
|
96
|
+
_a[key] = __assign({ name: title, render: function (row) { var _a; return (_a = (0, numbers_1.formatPercentage)(row[key])) !== null && _a !== void 0 ? _a : ''; }, excelFormatter: function () { return '#0.00'; }, getter: function (row) { var _a; return (_a = row[key]) !== null && _a !== void 0 ? _a : ''; }, sortGetter: function (row) { var _a; return (_a = row[key]) !== null && _a !== void 0 ? _a : ''; }, filter: (0, filters_1.numberFilter)(key) }, options),
|
|
131
97
|
_a);
|
|
132
98
|
};
|
|
133
99
|
exports.percentageColumn = percentageColumn;
|
|
134
100
|
var checkboxColumn = function (key, title, options) {
|
|
135
101
|
var _a;
|
|
136
102
|
return (_a = {},
|
|
137
|
-
_a[key] = __assign({ name: title, render: function (
|
|
138
|
-
type: 'number',
|
|
139
|
-
operator: 'equals',
|
|
140
|
-
values: [0],
|
|
141
|
-
getter: function (row) { var _a; return (_a = row[key]) !== null && _a !== void 0 ? _a : 0; },
|
|
142
|
-
} }, options),
|
|
103
|
+
_a[key] = __assign({ name: title, render: function (row) { return ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)("input", { type: "checkbox", checked: row[key] }), (0, jsx_runtime_1.jsx)("span", { children: row[key] ? ' Oui' : ' Non' })] })); }, getter: function (row) { var _a; return (_a = row[key]) !== null && _a !== void 0 ? _a : ''; }, sortGetter: function (row) { var _a; return (_a = row[key]) !== null && _a !== void 0 ? _a : ''; }, filter: (0, filters_1.numberFilter)(key) }, options),
|
|
143
104
|
_a);
|
|
144
105
|
};
|
|
145
106
|
exports.checkboxColumn = checkboxColumn;
|
|
146
107
|
var colorColumn = function (key, title, options) {
|
|
147
108
|
var _a;
|
|
148
109
|
return (_a = {},
|
|
149
|
-
_a[key] = __assign({ name: title, render: function (
|
|
110
|
+
_a[key] = __assign({ name: title, render: function (row) {
|
|
150
111
|
var _a;
|
|
151
112
|
return ((0, jsx_runtime_1.jsx)("div", { style: { backgroundColor: row[key] }, children: (_a = row[key]) !== null && _a !== void 0 ? _a : '' }));
|
|
152
|
-
}, getter: function (row) { var _a; return (_a = row[key]) !== null && _a !== void 0 ? _a : ''; }, sortGetter: function (row) { var _a; return (_a = row[key]) !== null && _a !== void 0 ? _a : ''; }, filter:
|
|
153
|
-
type: 'text',
|
|
154
|
-
operator: 'contains',
|
|
155
|
-
values: [''],
|
|
156
|
-
getter: function (row) { var _a; return (_a = row[key]) !== null && _a !== void 0 ? _a : ''; },
|
|
157
|
-
} }, options),
|
|
113
|
+
}, getter: function (row) { var _a; return (_a = row[key]) !== null && _a !== void 0 ? _a : ''; }, sortGetter: function (row) { var _a; return (_a = row[key]) !== null && _a !== void 0 ? _a : ''; }, filter: (0, filters_1.textFilter)(key) }, options),
|
|
158
114
|
_a);
|
|
159
115
|
};
|
|
160
116
|
exports.colorColumn = colorColumn;
|
|
161
|
-
var withGroupBy = function (columns) {
|
|
162
|
-
return lodash_1.default.mapValues(columns, function (column, key) {
|
|
163
|
-
var _a;
|
|
164
|
-
return (__assign(__assign({}, column), { field: __assign(__assign({}, ((_a = column.field) !== null && _a !== void 0 ? _a : { fieldName: key })), { groupBy: true }) }));
|
|
165
|
-
});
|
|
166
|
-
};
|
|
167
|
-
exports.withGroupBy = withGroupBy;
|
|
@@ -1,8 +1,7 @@
|
|
|
1
|
-
import { DataGridFilter, DataGridFilterCheckbox, DataGridFilterDataType, DataGridFilterFormatter, DataGridFilterGroup, DataGridFilterPredicates, DataGridFilterType
|
|
2
|
-
import { ConditionDTO } from '../../../../services/advancedRequests';
|
|
1
|
+
import { DataGridFilter, DataGridFilterCheckbox, DataGridFilterDataType, DataGridFilterFormatter, DataGridFilterGroup, DataGridFilterPredicates, DataGridFilterType } from '../types';
|
|
3
2
|
export declare const filtersPredicates: DataGridFilterPredicates;
|
|
4
|
-
export declare const applyFilters: <R>(rows: R[], filters: DataGridFilter
|
|
5
|
-
export declare const applyFilter: <R
|
|
3
|
+
export declare const applyFilters: <R>(rows: R[], filters: DataGridFilter[]) => R[];
|
|
4
|
+
export declare const applyFilter: <R>(rows: R[], filter: DataGridFilter) => R[];
|
|
6
5
|
export declare const defaultFilterGetter: (row: any, columnKey: string) => any;
|
|
7
6
|
export declare const defaultFilterValues: {
|
|
8
7
|
[K in DataGridFilterType]: DataGridFilterDataType<K>;
|
|
@@ -12,5 +11,6 @@ export declare const defaultValueParsers: {
|
|
|
12
11
|
};
|
|
13
12
|
export declare const groupDatesByYearAndMonth: (dates: any[]) => Record<string, Record<string, any[]>>;
|
|
14
13
|
export declare const getDateGroups: <R extends string | number | null>(dates: any[]) => DataGridFilterGroup<R>[];
|
|
15
|
-
export declare const convertFiltersToConditions: <R>(filters: DataGridFilters<R>) => ConditionDTO[];
|
|
16
14
|
export declare const getCheckboxes: <R extends string | number | null>(values: R[], formatter: DataGridFilterFormatter, groups?: DataGridFilterGroup<R>[], level?: number) => DataGridFilterCheckbox<R>[];
|
|
15
|
+
export declare const textFilter: (key: string) => DataGridFilter<"text">;
|
|
16
|
+
export declare const numberFilter: (key: string) => DataGridFilter<"number">;
|
|
@@ -13,8 +13,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
13
13
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
14
14
|
};
|
|
15
15
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
16
|
-
exports.
|
|
17
|
-
var lodash_1 = __importDefault(require("lodash"));
|
|
16
|
+
exports.numberFilter = exports.textFilter = exports.getCheckboxes = exports.getDateGroups = exports.groupDatesByYearAndMonth = exports.defaultValueParsers = exports.defaultFilterValues = exports.defaultFilterGetter = exports.applyFilter = exports.applyFilters = exports.filtersPredicates = void 0;
|
|
18
17
|
var moment_1 = __importDefault(require("moment"));
|
|
19
18
|
var escapeRegExp = function (s) { return s.replace(/[.*+?^${}()|[\]\\]/g, '\\$&'); };
|
|
20
19
|
var textContainsPredicate = function () {
|
|
@@ -220,22 +219,6 @@ var getDateGroups = function (dates) {
|
|
|
220
219
|
});
|
|
221
220
|
};
|
|
222
221
|
exports.getDateGroups = getDateGroups;
|
|
223
|
-
var convertFiltersToConditions = function (filters) {
|
|
224
|
-
return Object.entries(filters).map(function (_a) {
|
|
225
|
-
var columnKey = _a[0], filter = _a[1];
|
|
226
|
-
var condition = {
|
|
227
|
-
field: {
|
|
228
|
-
fieldName: columnKey,
|
|
229
|
-
},
|
|
230
|
-
operator: filter.operator,
|
|
231
|
-
value: ['inArray', 'inRange'].includes(filter.operator)
|
|
232
|
-
? filter.values
|
|
233
|
-
: lodash_1.default.castArray(filter.values)[0],
|
|
234
|
-
};
|
|
235
|
-
return condition;
|
|
236
|
-
});
|
|
237
|
-
};
|
|
238
|
-
exports.convertFiltersToConditions = convertFiltersToConditions;
|
|
239
222
|
var getCheckboxes = function (values, formatter, groups, level) {
|
|
240
223
|
if (level === void 0) { level = 0; }
|
|
241
224
|
return __spreadArray(__spreadArray([], (groups !== null && groups !== void 0 ? groups : [])
|
|
@@ -247,3 +230,17 @@ var getCheckboxes = function (values, formatter, groups, level) {
|
|
|
247
230
|
}); }), true);
|
|
248
231
|
};
|
|
249
232
|
exports.getCheckboxes = getCheckboxes;
|
|
233
|
+
var textFilter = function (key) { return ({
|
|
234
|
+
type: 'text',
|
|
235
|
+
operator: 'contains',
|
|
236
|
+
values: [''],
|
|
237
|
+
getter: function (row) { var _a; return (_a = row[key]) !== null && _a !== void 0 ? _a : ''; },
|
|
238
|
+
}); };
|
|
239
|
+
exports.textFilter = textFilter;
|
|
240
|
+
var numberFilter = function (key) { return ({
|
|
241
|
+
type: 'number',
|
|
242
|
+
operator: 'equals',
|
|
243
|
+
values: [0],
|
|
244
|
+
getter: function (row) { var _a; return (_a = row[key]) !== null && _a !== void 0 ? _a : ''; },
|
|
245
|
+
}); };
|
|
246
|
+
exports.numberFilter = numberFilter;
|
|
@@ -14,6 +14,5 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
__exportStar(require("./columns"), exports);
|
|
18
17
|
__exportStar(require("./filters"), exports);
|
|
19
|
-
__exportStar(require("./
|
|
18
|
+
__exportStar(require("./columns"), exports);
|
|
@@ -3,5 +3,5 @@ export { useDataGridCopy } from './useDataGridCopy';
|
|
|
3
3
|
export { useDataGridSettings } from './useDataGridSettings';
|
|
4
4
|
export { useDataGrid } from './useDataGrid';
|
|
5
5
|
export declare const useDataGridContext: <R>(context: DataGridContext<R>) => import("../types").DataGridContextProps<R>;
|
|
6
|
-
export declare const useVisibleAndHiddenColumns: <R>(columns: DataGridColumns<R>) => import("lodash").Dictionary<import("../types").DataGridColumn<R
|
|
7
|
-
export declare const useSortedColumns: <R>(columns: DataGridColumns<R>) => [string, import("../types").DataGridColumn<R
|
|
6
|
+
export declare const useVisibleAndHiddenColumns: <R>(columns: DataGridColumns<R>) => import("lodash").Dictionary<import("../types").DataGridColumn<R>>[];
|
|
7
|
+
export declare const useSortedColumns: <R>(columns: DataGridColumns<R>) => [string, import("../types").DataGridColumn<R>][];
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.useSortedColumns = exports.useVisibleAndHiddenColumns = exports.useDataGridContext = exports.useDataGrid = exports.useDataGridSettings = exports.useDataGridCopy = void 0;
|
|
4
4
|
var react_1 = require("react");
|
|
5
|
-
var
|
|
5
|
+
var columns_1 = require("../helpers/columns");
|
|
6
6
|
var lodash_1 = require("lodash");
|
|
7
7
|
var useDataGridCopy_1 = require("./useDataGridCopy");
|
|
8
8
|
Object.defineProperty(exports, "useDataGridCopy", { enumerable: true, get: function () { return useDataGridCopy_1.useDataGridCopy; } });
|
|
@@ -16,8 +16,8 @@ var useDataGridContext = function (context) {
|
|
|
16
16
|
exports.useDataGridContext = useDataGridContext;
|
|
17
17
|
var useVisibleAndHiddenColumns = function (columns) {
|
|
18
18
|
return (0, react_1.useMemo)(function () { return [
|
|
19
|
-
(0, lodash_1.pickBy)(columns, function (col) { return (0,
|
|
20
|
-
(0, lodash_1.pickBy)(columns, function (col) { return !(0,
|
|
19
|
+
(0, lodash_1.pickBy)(columns, function (col) { return (0, columns_1.isColumnVisible)(col); }),
|
|
20
|
+
(0, lodash_1.pickBy)(columns, function (col) { return !(0, columns_1.isColumnVisible)(col); }),
|
|
21
21
|
]; }, [columns]);
|
|
22
22
|
};
|
|
23
23
|
exports.useVisibleAndHiddenColumns = useVisibleAndHiddenColumns;
|
|
@@ -26,7 +26,7 @@ var useSortedColumns = function (columns) {
|
|
|
26
26
|
return Object.entries(columns)
|
|
27
27
|
.filter(function (_a) {
|
|
28
28
|
var col = _a[1];
|
|
29
|
-
return (0,
|
|
29
|
+
return (0, columns_1.isColumnVisible)(col);
|
|
30
30
|
})
|
|
31
31
|
.sort(function (a, b) { var _a, _b; return ((_a = a[1].order) !== null && _a !== void 0 ? _a : 0) - ((_b = b[1].order) !== null && _b !== void 0 ? _b : 0); });
|
|
32
32
|
}, [columns]);
|
|
@@ -67,7 +67,7 @@ var lodash_1 = require("lodash");
|
|
|
67
67
|
var useDataGridSettings_1 = require("./useDataGridSettings");
|
|
68
68
|
var hooks_1 = require("../../../../hooks");
|
|
69
69
|
var useDataGrid = function (props) {
|
|
70
|
-
var rows = props.rows, onFiltersChanged = props.onFiltersChanged, onSortsChanged = props.onSortsChanged, loadCopyRows = props.loadCopyRows, _a = props.rowHeight, rowHeight = _a === void 0 ? styles_1.DEFAULT_ROW_HEIGHT : _a, onVisibleRowsChange = props.onVisibleRowsChange;
|
|
70
|
+
var rows = props.rows, onFiltersChanged = props.onFiltersChanged, onSortsChanged = props.onSortsChanged, loadCopyRows = props.loadCopyRows, _a = props.rowHeight, rowHeight = _a === void 0 ? styles_1.DEFAULT_ROW_HEIGHT : _a, onVisibleRowsChange = props.onVisibleRowsChange, onSelectionChange = props.onSelectionChange, selectable = props.selectable;
|
|
71
71
|
var _b = (0, react_1.useState)(props.columns), columns = _b[0], setColumns = _b[1];
|
|
72
72
|
var visibleColumns = (0, _1.useSortedColumns)(columns);
|
|
73
73
|
/** SETTINGS */
|
|
@@ -78,12 +78,28 @@ var useDataGrid = function (props) {
|
|
|
78
78
|
return (__assign(__assign({}, prev), (_a = {}, _a[key] = __assign(__assign({}, prev[key]), { width: width }), _a)));
|
|
79
79
|
});
|
|
80
80
|
}, [setSettings]);
|
|
81
|
+
var gridTemplateColumns = (0, react_1.useMemo)(function () {
|
|
82
|
+
return __spreadArray(__spreadArray([], (selectable ? ['var(--space-8)'] : []), true), visibleColumns.map(function (_a) {
|
|
83
|
+
var _b;
|
|
84
|
+
var col = _a[1];
|
|
85
|
+
return "".concat((_b = col.width) !== null && _b !== void 0 ? _b : 150, "px");
|
|
86
|
+
}), true).join(' ');
|
|
87
|
+
}, [selectable, visibleColumns]);
|
|
81
88
|
// Update columns when settings change
|
|
82
89
|
(0, react_1.useEffect)(function () {
|
|
83
90
|
setColumns(function (prev) { return (0, lodash_1.merge)({}, prev, settings); });
|
|
84
91
|
}, [settings]);
|
|
85
92
|
/** ROWS SELECTION **/
|
|
86
|
-
var
|
|
93
|
+
var rowKeyGetter = (0, react_1.useMemo)(function () {
|
|
94
|
+
return typeof props.rowKey === 'function'
|
|
95
|
+
? props.rowKey
|
|
96
|
+
: function (row) { return String(row === null || row === void 0 ? void 0 : row[props.rowKey]); };
|
|
97
|
+
}, [props.rowKey]);
|
|
98
|
+
var _d = (0, react_1.useState)([]), selectedKeys = _d[0], setSelectedKeys = _d[1];
|
|
99
|
+
var selectedRows = (0, react_1.useMemo)(function () { return props.rows.filter(function (row) { return selectedKeys.includes(rowKeyGetter(row)); }); }, [props.rows, rowKeyGetter, selectedKeys]);
|
|
100
|
+
(0, react_1.useEffect)(function () {
|
|
101
|
+
onSelectionChange === null || onSelectionChange === void 0 ? void 0 : onSelectionChange(selectedKeys);
|
|
102
|
+
}, [onSelectionChange, selectedKeys]);
|
|
87
103
|
/** ROWS FILTERING **/
|
|
88
104
|
var _e = (0, react_1.useState)({}), filters = _e[0], setFilters = _e[1];
|
|
89
105
|
var _f = (0, react_1.useState)(rows !== null && rows !== void 0 ? rows : []), filteredRows = _f[0], setFilteredRows = _f[1];
|
|
@@ -148,7 +164,7 @@ var useDataGrid = function (props) {
|
|
|
148
164
|
}, [indexWithTolerance, lengthWithTolerance, onVisibleRowsChange]);
|
|
149
165
|
/** COPYING */
|
|
150
166
|
var copyTable = (0, _1.useDataGridCopy)(sortedRows, columns, loadCopyRows).copyTable;
|
|
151
|
-
var contextValue = (0, react_1.useMemo)(function () { return (__assign(__assign({}, props), { columns: columns, visibleColumns: visibleColumns, sortedRows: sortedRows, selectedRows: selectedRows,
|
|
167
|
+
var contextValue = (0, react_1.useMemo)(function () { return (__assign(__assign({}, props), { columns: columns, visibleColumns: visibleColumns, sortedRows: sortedRows, selectedRows: selectedRows, selectedKeys: selectedKeys, setSelectedKeys: setSelectedKeys, sorts: sorts, setSorts: setSorts, filters: filters, setFilters: setFilters, editingCell: editingCell, setEditingCell: setEditingCell, copyTable: copyTable, setColumnWidth: setColumnWidth, settings: settings, setSettings: setSettings, saveSettings: saveSettings, visibleRows: visibleRows, scrollableRef: scrollableRef, onScroll: onScroll, index: index, length: length, rowKeyGetter: rowKeyGetter, gridTemplateColumns: gridTemplateColumns })); }, [
|
|
152
168
|
columns,
|
|
153
169
|
copyTable,
|
|
154
170
|
editingCell,
|
|
@@ -157,7 +173,9 @@ var useDataGrid = function (props) {
|
|
|
157
173
|
length,
|
|
158
174
|
onScroll,
|
|
159
175
|
props,
|
|
176
|
+
rowKeyGetter,
|
|
160
177
|
saveSettings,
|
|
178
|
+
selectedKeys,
|
|
161
179
|
selectedRows,
|
|
162
180
|
setColumnWidth,
|
|
163
181
|
setSettings,
|
|
@@ -166,6 +184,7 @@ var useDataGrid = function (props) {
|
|
|
166
184
|
sorts,
|
|
167
185
|
visibleColumns,
|
|
168
186
|
visibleRows,
|
|
187
|
+
gridTemplateColumns,
|
|
169
188
|
]);
|
|
170
189
|
var context = (0, react_1.useMemo)(function () {
|
|
171
190
|
return (0, react_1.createContext)({
|
|
@@ -173,9 +192,11 @@ var useDataGrid = function (props) {
|
|
|
173
192
|
columns: {},
|
|
174
193
|
visibleColumns: [],
|
|
175
194
|
rowKey: '',
|
|
195
|
+
rowKeyGetter: function () { return ''; },
|
|
176
196
|
sortedRows: [],
|
|
177
197
|
selectedRows: [],
|
|
178
|
-
|
|
198
|
+
selectedKeys: [],
|
|
199
|
+
setSelectedKeys: function () { },
|
|
179
200
|
setSorts: function () { },
|
|
180
201
|
setFilters: function () { },
|
|
181
202
|
editingCell: [-1, -1],
|
|
@@ -192,6 +213,7 @@ var useDataGrid = function (props) {
|
|
|
192
213
|
onScroll: function () { },
|
|
193
214
|
index: 0,
|
|
194
215
|
length: 0,
|
|
216
|
+
gridTemplateColumns: '',
|
|
195
217
|
});
|
|
196
218
|
}, []);
|
|
197
219
|
return (0, react_1.useMemo)(function () { return [contextValue, context]; }, [context, contextValue]);
|