material-react-table 0.5.3 → 0.5.4
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/MaterialReactTable.d.ts +5 -0
- package/dist/filtersFNs.d.ts +67 -0
- package/dist/localization.d.ts +10 -1
- package/dist/material-react-table.cjs.development.js +367 -69
- package/dist/material-react-table.cjs.development.js.map +1 -1
- package/dist/material-react-table.cjs.production.min.js +1 -1
- package/dist/material-react-table.cjs.production.min.js.map +1 -1
- package/dist/material-react-table.esm.js +368 -70
- package/dist/material-react-table.esm.js.map +1 -1
- package/dist/menus/MRT_FilterMenu.d.ts +10 -0
- package/dist/useMRT.d.ts +13 -9
- package/package.json +6 -2
- package/src/MaterialReactTable.tsx +15 -1
- package/src/buttons/MRT_EditActionButtons.tsx +3 -1
- package/src/buttons/MRT_ToggleColumnActionMenuButton.tsx +4 -3
- package/src/buttons/MRT_ToggleFiltersButton.tsx +3 -1
- package/src/buttons/MRT_ToggleSearchButton.tsx +5 -2
- package/src/filtersFNs.ts +112 -0
- package/src/head/MRT_TableHeadCell.tsx +45 -44
- package/src/index.tsx +0 -2
- package/src/inputs/MRT_FilterTextField.tsx +117 -52
- package/src/inputs/MRT_SearchTextField.tsx +2 -1
- package/src/inputs/MRT_SelectCheckbox.tsx +5 -7
- package/src/localization.ts +20 -2
- package/src/menus/MRT_ColumnActionMenu.tsx +125 -85
- package/src/menus/MRT_FilterMenu.tsx +109 -0
- package/src/useMRT.tsx +67 -13
|
@@ -7,7 +7,9 @@ function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'defau
|
|
|
7
7
|
var React = require('react');
|
|
8
8
|
var React__default = _interopDefault(React);
|
|
9
9
|
var reactTable = require('react-table');
|
|
10
|
+
var matchSorter = require('match-sorter');
|
|
10
11
|
var material = require('@mui/material');
|
|
12
|
+
var ArrowRightIcon = _interopDefault(require('@mui/icons-material/ArrowRight'));
|
|
11
13
|
var CancelIcon = _interopDefault(require('@mui/icons-material/Cancel'));
|
|
12
14
|
var ClearAllIcon = _interopDefault(require('@mui/icons-material/ClearAll'));
|
|
13
15
|
var CloseIcon = _interopDefault(require('@mui/icons-material/Close'));
|
|
@@ -100,6 +102,100 @@ function _objectWithoutPropertiesLoose(source, excluded) {
|
|
|
100
102
|
return target;
|
|
101
103
|
}
|
|
102
104
|
|
|
105
|
+
var fuzzyFilterFN = function fuzzyFilterFN(rows, id, filterValue) {
|
|
106
|
+
return matchSorter.matchSorter(rows, filterValue.toString().trim(), {
|
|
107
|
+
keys: ["values." + id],
|
|
108
|
+
sorter: function sorter(rankedItems) {
|
|
109
|
+
return rankedItems;
|
|
110
|
+
}
|
|
111
|
+
});
|
|
112
|
+
};
|
|
113
|
+
|
|
114
|
+
fuzzyFilterFN.autoRemove = function (val) {
|
|
115
|
+
return !val;
|
|
116
|
+
};
|
|
117
|
+
|
|
118
|
+
var containsFilterFN = function containsFilterFN(rows, id, filterValue) {
|
|
119
|
+
return rows.filter(function (row) {
|
|
120
|
+
return row.values[id].toString().toLowerCase().trim().includes(filterValue.toString().toLowerCase().trim());
|
|
121
|
+
});
|
|
122
|
+
};
|
|
123
|
+
|
|
124
|
+
containsFilterFN.autoRemove = function (val) {
|
|
125
|
+
return !val;
|
|
126
|
+
};
|
|
127
|
+
|
|
128
|
+
var startsWithFilterFN = function startsWithFilterFN(rows, id, filterValue) {
|
|
129
|
+
return rows.filter(function (row) {
|
|
130
|
+
return row.values[id].toString().toLowerCase().trim().startsWith(filterValue.toString().toLowerCase().trim());
|
|
131
|
+
});
|
|
132
|
+
};
|
|
133
|
+
|
|
134
|
+
startsWithFilterFN.autoRemove = function (val) {
|
|
135
|
+
return !val;
|
|
136
|
+
};
|
|
137
|
+
|
|
138
|
+
var endsWithFilterFN = function endsWithFilterFN(rows, id, filterValue) {
|
|
139
|
+
return rows.filter(function (row) {
|
|
140
|
+
return row.values[id].toString().toLowerCase().trim().endsWith(filterValue.toString().toLowerCase().trim());
|
|
141
|
+
});
|
|
142
|
+
};
|
|
143
|
+
|
|
144
|
+
endsWithFilterFN.autoRemove = function (val) {
|
|
145
|
+
return !val;
|
|
146
|
+
};
|
|
147
|
+
|
|
148
|
+
var equalsFilterFN = function equalsFilterFN(rows, id, filterValue) {
|
|
149
|
+
return rows.filter(function (row) {
|
|
150
|
+
return row.values[id].toString().toLowerCase().trim() === filterValue.toString().toLowerCase().trim();
|
|
151
|
+
});
|
|
152
|
+
};
|
|
153
|
+
|
|
154
|
+
equalsFilterFN.autoRemove = function (val) {
|
|
155
|
+
return !val;
|
|
156
|
+
};
|
|
157
|
+
|
|
158
|
+
var notEqualsFilterFN = function notEqualsFilterFN(rows, id, filterValue) {
|
|
159
|
+
return rows.filter(function (row) {
|
|
160
|
+
return row.values[id].toString().toLowerCase().trim() !== filterValue.toString().toLowerCase().trim();
|
|
161
|
+
});
|
|
162
|
+
};
|
|
163
|
+
|
|
164
|
+
notEqualsFilterFN.autoRemove = function (val) {
|
|
165
|
+
return !val;
|
|
166
|
+
};
|
|
167
|
+
|
|
168
|
+
var emptyFilterFN = function emptyFilterFN(rows, id, _filterValue) {
|
|
169
|
+
return rows.filter(function (row) {
|
|
170
|
+
return !row.values[id].toString().toLowerCase().trim();
|
|
171
|
+
});
|
|
172
|
+
};
|
|
173
|
+
|
|
174
|
+
emptyFilterFN.autoRemove = function (val) {
|
|
175
|
+
return !val;
|
|
176
|
+
};
|
|
177
|
+
|
|
178
|
+
var notEmptyFilterFN = function notEmptyFilterFN(rows, id, _filterValue) {
|
|
179
|
+
return rows.filter(function (row) {
|
|
180
|
+
return !!row.values[id].toString().toLowerCase().trim();
|
|
181
|
+
});
|
|
182
|
+
};
|
|
183
|
+
|
|
184
|
+
notEmptyFilterFN.autoRemove = function (val) {
|
|
185
|
+
return !val;
|
|
186
|
+
};
|
|
187
|
+
|
|
188
|
+
var defaultFilterFNs = {
|
|
189
|
+
contains: containsFilterFN,
|
|
190
|
+
empty: emptyFilterFN,
|
|
191
|
+
endsWith: endsWithFilterFN,
|
|
192
|
+
equals: equalsFilterFN,
|
|
193
|
+
fuzzy: fuzzyFilterFN,
|
|
194
|
+
notEmpty: notEmptyFilterFN,
|
|
195
|
+
notEquals: notEqualsFilterFN,
|
|
196
|
+
startsWith: startsWithFilterFN
|
|
197
|
+
};
|
|
198
|
+
|
|
103
199
|
var MaterialReactTableContext = /*#__PURE__*/function () {
|
|
104
200
|
return React.createContext({});
|
|
105
201
|
}();
|
|
@@ -130,19 +226,52 @@ var MaterialReactTableProvider = function MaterialReactTableProvider(props) {
|
|
|
130
226
|
showSearch = _useState5[0],
|
|
131
227
|
setShowSearch = _useState5[1];
|
|
132
228
|
|
|
229
|
+
var filterTypes = React.useMemo(function () {
|
|
230
|
+
return _extends({}, defaultFilterFNs, props.filterTypes);
|
|
231
|
+
}, [props.filterTypes]);
|
|
232
|
+
|
|
233
|
+
var _useState6 = React.useState(function () {
|
|
234
|
+
return Object.assign.apply(Object, [{}].concat(props.columns.map(function (c) {
|
|
235
|
+
var _c$accessor;
|
|
236
|
+
|
|
237
|
+
return (_c$accessor = c.accessor) == null ? void 0 : _c$accessor.toString();
|
|
238
|
+
}).map(function (accessor) {
|
|
239
|
+
var _props$initialState$f2, _props$initialState5, _props$initialState5$, _ref;
|
|
240
|
+
|
|
241
|
+
return _ref = {}, _ref[accessor] = (_props$initialState$f2 = props == null ? void 0 : (_props$initialState5 = props.initialState) == null ? void 0 : (_props$initialState5$ = _props$initialState5.filters) == null ? void 0 : _props$initialState5$[accessor]) != null ? _props$initialState$f2 : 'fuzzy', _ref;
|
|
242
|
+
})));
|
|
243
|
+
}),
|
|
244
|
+
currentFilterTypes = _useState6[0],
|
|
245
|
+
setCurrentFilterTypes = _useState6[1];
|
|
246
|
+
|
|
247
|
+
var columns = React.useMemo(function () {
|
|
248
|
+
return props.columns.map(function (column) {
|
|
249
|
+
column.filter = filterTypes[currentFilterTypes[column.accessor]];
|
|
250
|
+
return column;
|
|
251
|
+
});
|
|
252
|
+
}, [props.columns, filterTypes, currentFilterTypes]);
|
|
133
253
|
var tableInstance = reactTable.useTable.apply(void 0, [_extends({}, props, {
|
|
254
|
+
columns: columns,
|
|
255
|
+
// @ts-ignore
|
|
256
|
+
filterTypes: filterTypes,
|
|
134
257
|
useControlledState: function useControlledState(state) {
|
|
135
258
|
return React.useMemo(function () {
|
|
136
259
|
return _extends({}, state, {
|
|
137
260
|
currentEditingRow: currentEditingRow,
|
|
261
|
+
currentFilterTypes: currentFilterTypes,
|
|
138
262
|
densePadding: densePadding,
|
|
139
263
|
fullScreen: fullScreen,
|
|
140
264
|
showFilters: showFilters,
|
|
141
265
|
showSearch: showSearch
|
|
142
266
|
}, props == null ? void 0 : props.useControlledState == null ? void 0 : props.useControlledState(state));
|
|
143
|
-
}, [currentEditingRow, densePadding, fullScreen, showFilters, showSearch, state]);
|
|
267
|
+
}, [currentEditingRow, currentFilterTypes, densePadding, fullScreen, showFilters, showSearch, state]);
|
|
144
268
|
}
|
|
145
269
|
})].concat(hooks));
|
|
270
|
+
var idPrefix = React.useMemo(function () {
|
|
271
|
+
var _props$idPrefix;
|
|
272
|
+
|
|
273
|
+
return (_props$idPrefix = props.idPrefix) != null ? _props$idPrefix : Math.random().toString(36).substring(2, 9);
|
|
274
|
+
}, [props.idPrefix]);
|
|
146
275
|
var anyRowsCanExpand = React.useMemo(function () {
|
|
147
276
|
return tableInstance.rows.some(function (row) {
|
|
148
277
|
return row.canExpand;
|
|
@@ -157,7 +286,10 @@ var MaterialReactTableProvider = function MaterialReactTableProvider(props) {
|
|
|
157
286
|
value: _extends({}, props, {
|
|
158
287
|
anyRowsCanExpand: anyRowsCanExpand,
|
|
159
288
|
anyRowsExpanded: anyRowsExpanded,
|
|
289
|
+
idPrefix: idPrefix,
|
|
290
|
+
//@ts-ignore
|
|
160
291
|
setCurrentEditingRow: setCurrentEditingRow,
|
|
292
|
+
setCurrentFilterTypes: setCurrentFilterTypes,
|
|
161
293
|
setDensePadding: setDensePadding,
|
|
162
294
|
setFullScreen: setFullScreen,
|
|
163
295
|
setShowFilters: setShowFilters,
|
|
@@ -168,13 +300,106 @@ var MaterialReactTableProvider = function MaterialReactTableProvider(props) {
|
|
|
168
300
|
}, props.children);
|
|
169
301
|
};
|
|
170
302
|
var useMRT = function useMRT() {
|
|
171
|
-
return (
|
|
172
|
-
|
|
173
|
-
|
|
303
|
+
return React.useContext(MaterialReactTableContext);
|
|
304
|
+
};
|
|
305
|
+
|
|
306
|
+
var MRT_FilterMenu = function MRT_FilterMenu(_ref) {
|
|
307
|
+
var anchorEl = _ref.anchorEl,
|
|
308
|
+
column = _ref.column,
|
|
309
|
+
onSelect = _ref.onSelect,
|
|
310
|
+
setAnchorEl = _ref.setAnchorEl;
|
|
311
|
+
|
|
312
|
+
var _useMRT = useMRT(),
|
|
313
|
+
localization = _useMRT.localization,
|
|
314
|
+
setCurrentFilterTypes = _useMRT.setCurrentFilterTypes,
|
|
315
|
+
tableInstance = _useMRT.tableInstance;
|
|
316
|
+
|
|
317
|
+
var filterTypes = React.useMemo(function () {
|
|
318
|
+
return [{
|
|
319
|
+
type: 'fuzzy',
|
|
320
|
+
label: localization.filterMenuItemFuzzy,
|
|
321
|
+
divider: false
|
|
322
|
+
}, {
|
|
323
|
+
type: 'contains',
|
|
324
|
+
label: localization.filterMenuItemContains,
|
|
325
|
+
divider: true
|
|
326
|
+
}, {
|
|
327
|
+
type: 'startsWith',
|
|
328
|
+
label: localization.filterMenuItemStartsWith,
|
|
329
|
+
divider: false
|
|
330
|
+
}, {
|
|
331
|
+
type: 'endsWith',
|
|
332
|
+
label: localization.filterMenuItemEndsWith,
|
|
333
|
+
divider: true
|
|
334
|
+
}, {
|
|
335
|
+
type: 'equals',
|
|
336
|
+
label: localization.filterMenuItemEquals,
|
|
337
|
+
divider: false
|
|
338
|
+
}, {
|
|
339
|
+
type: 'notEquals',
|
|
340
|
+
label: localization.filterMenuItemNotEquals,
|
|
341
|
+
divider: true
|
|
342
|
+
}, {
|
|
343
|
+
type: 'empty',
|
|
344
|
+
label: localization.filterMenuItemEmpty,
|
|
345
|
+
divider: false
|
|
346
|
+
}, {
|
|
347
|
+
type: 'notEmpty',
|
|
348
|
+
label: localization.filterMenuItemNotEmpty,
|
|
349
|
+
divider: false
|
|
350
|
+
}];
|
|
351
|
+
}, []);
|
|
352
|
+
|
|
353
|
+
var handleSelectMenuItem = function handleSelectMenuItem(value) {
|
|
354
|
+
setAnchorEl(null);
|
|
355
|
+
setCurrentFilterTypes(function (prev) {
|
|
356
|
+
var _extends2;
|
|
357
|
+
|
|
358
|
+
return _extends({}, prev, (_extends2 = {}, _extends2[column.id] = value, _extends2));
|
|
359
|
+
});
|
|
360
|
+
|
|
361
|
+
if (['empty', 'notEmpty'].includes(value)) {
|
|
362
|
+
column.setFilter(' ');
|
|
363
|
+
}
|
|
364
|
+
|
|
365
|
+
onSelect == null ? void 0 : onSelect();
|
|
366
|
+
};
|
|
367
|
+
|
|
368
|
+
var filterType = tableInstance.state.currentFilterTypes[column.id];
|
|
369
|
+
return React__default.createElement(material.Menu, {
|
|
370
|
+
anchorEl: anchorEl,
|
|
371
|
+
open: !!anchorEl,
|
|
372
|
+
anchorOrigin: {
|
|
373
|
+
vertical: 'center',
|
|
374
|
+
horizontal: 'right'
|
|
375
|
+
},
|
|
376
|
+
onClose: function onClose() {
|
|
377
|
+
return setAnchorEl(null);
|
|
378
|
+
}
|
|
379
|
+
}, React__default.createElement(material.Typography, {
|
|
380
|
+
sx: {
|
|
381
|
+
fontWeight: 'bold',
|
|
382
|
+
p: '1rem',
|
|
383
|
+
fontSize: '1.1rem'
|
|
384
|
+
}
|
|
385
|
+
}, localization.filterMenuTitle), React__default.createElement(material.Divider, null), filterTypes.map(function (_ref2) {
|
|
386
|
+
var type = _ref2.type,
|
|
387
|
+
label = _ref2.label,
|
|
388
|
+
divider = _ref2.divider;
|
|
389
|
+
return React__default.createElement(material.MenuItem, {
|
|
390
|
+
divider: divider,
|
|
391
|
+
key: type,
|
|
392
|
+
onClick: function onClick() {
|
|
393
|
+
return handleSelectMenuItem(type);
|
|
394
|
+
},
|
|
395
|
+
selected: type === filterType,
|
|
396
|
+
value: type
|
|
397
|
+
}, label);
|
|
398
|
+
}));
|
|
174
399
|
};
|
|
175
400
|
|
|
176
401
|
var MRT_FilterTextField = function MRT_FilterTextField(_ref) {
|
|
177
|
-
var _localization$filterT, _localization$filterT2
|
|
402
|
+
var _localization$filterT, _localization$filterT2;
|
|
178
403
|
|
|
179
404
|
var column = _ref.column;
|
|
180
405
|
|
|
@@ -182,37 +407,70 @@ var MRT_FilterTextField = function MRT_FilterTextField(_ref) {
|
|
|
182
407
|
_useMRT$icons = _useMRT.icons,
|
|
183
408
|
FilterListIcon = _useMRT$icons.FilterListIcon,
|
|
184
409
|
CloseIcon = _useMRT$icons.CloseIcon,
|
|
185
|
-
|
|
410
|
+
idPrefix = _useMRT.idPrefix,
|
|
411
|
+
localization = _useMRT.localization,
|
|
412
|
+
muiTableHeadCellFilterTextFieldProps = _useMRT.muiTableHeadCellFilterTextFieldProps,
|
|
413
|
+
setCurrentFilterTypes = _useMRT.setCurrentFilterTypes,
|
|
414
|
+
tableInstance = _useMRT.tableInstance;
|
|
186
415
|
|
|
187
|
-
var _useState = React.useState(
|
|
188
|
-
|
|
189
|
-
|
|
416
|
+
var _useState = React.useState(null),
|
|
417
|
+
anchorEl = _useState[0],
|
|
418
|
+
setAnchorEl = _useState[1];
|
|
419
|
+
|
|
420
|
+
var mTableHeadCellFilterTextFieldProps = muiTableHeadCellFilterTextFieldProps instanceof Function ? muiTableHeadCellFilterTextFieldProps(column) : muiTableHeadCellFilterTextFieldProps;
|
|
421
|
+
var mcTableHeadCellFilterTextFieldProps = column.muiTableHeadCellFilterTextFieldProps instanceof Function ? column.muiTableHeadCellFilterTextFieldProps(column) : column.muiTableHeadCellFilterTextFieldProps;
|
|
422
|
+
|
|
423
|
+
var textFieldProps = _extends({}, mTableHeadCellFilterTextFieldProps, mcTableHeadCellFilterTextFieldProps, {
|
|
424
|
+
style: _extends({}, mTableHeadCellFilterTextFieldProps == null ? void 0 : mTableHeadCellFilterTextFieldProps.style, mcTableHeadCellFilterTextFieldProps == null ? void 0 : mcTableHeadCellFilterTextFieldProps.style)
|
|
425
|
+
});
|
|
426
|
+
|
|
427
|
+
var _useState2 = React.useState(''),
|
|
428
|
+
filterValue = _useState2[0],
|
|
429
|
+
setFilterValue = _useState2[1];
|
|
190
430
|
|
|
191
431
|
var handleChange = reactTable.useAsyncDebounce(function (value) {
|
|
192
432
|
column.setFilter(value != null ? value : undefined);
|
|
193
433
|
}, 150);
|
|
194
434
|
|
|
435
|
+
var handleFilterMenuOpen = function handleFilterMenuOpen(event) {
|
|
436
|
+
setAnchorEl(event.currentTarget);
|
|
437
|
+
};
|
|
438
|
+
|
|
195
439
|
var handleClear = function handleClear() {
|
|
196
440
|
setFilterValue('');
|
|
197
441
|
column.setFilter(undefined);
|
|
198
442
|
};
|
|
199
443
|
|
|
444
|
+
var handleClearFilterChip = function handleClearFilterChip() {
|
|
445
|
+
setFilterValue('');
|
|
446
|
+
column.setFilter(undefined);
|
|
447
|
+
setCurrentFilterTypes(function (prev) {
|
|
448
|
+
var _extends2;
|
|
449
|
+
|
|
450
|
+
return _extends({}, prev, (_extends2 = {}, _extends2[column.id] = 'fuzzy', _extends2));
|
|
451
|
+
});
|
|
452
|
+
};
|
|
453
|
+
|
|
200
454
|
if (column.Filter) {
|
|
201
455
|
return React__default.createElement(React__default.Fragment, null, column.Filter == null ? void 0 : column.Filter({
|
|
202
456
|
column: column
|
|
203
457
|
}));
|
|
204
458
|
}
|
|
205
459
|
|
|
206
|
-
|
|
460
|
+
var filterType = tableInstance.state.currentFilterTypes[column.id];
|
|
461
|
+
var showFilterChip = ['empty', 'notEmpty'].includes(filterType);
|
|
462
|
+
var filterPlaceholder = (_localization$filterT = localization.filterTextFieldPlaceholder) == null ? void 0 : _localization$filterT.replace('{column}', String(column.Header));
|
|
463
|
+
return React__default.createElement(React__default.Fragment, null, React__default.createElement(material.TextField, Object.assign({
|
|
207
464
|
fullWidth: true,
|
|
208
|
-
id: "
|
|
465
|
+
id: "mrt-" + idPrefix + "-" + column.id + "-filter-text-field",
|
|
209
466
|
inputProps: {
|
|
210
|
-
|
|
467
|
+
sx: {
|
|
211
468
|
textOverflow: 'ellipsis'
|
|
212
|
-
}
|
|
469
|
+
},
|
|
470
|
+
title: filterPlaceholder
|
|
213
471
|
},
|
|
214
|
-
margin: "
|
|
215
|
-
placeholder:
|
|
472
|
+
margin: "none",
|
|
473
|
+
placeholder: showFilterChip ? '' : filterPlaceholder,
|
|
216
474
|
onChange: function onChange(e) {
|
|
217
475
|
setFilterValue(e.target.value);
|
|
218
476
|
handleChange(e.target.value);
|
|
@@ -223,33 +481,52 @@ var MRT_FilterTextField = function MRT_FilterTextField(_ref) {
|
|
|
223
481
|
value: filterValue != null ? filterValue : '',
|
|
224
482
|
variant: "standard",
|
|
225
483
|
InputProps: {
|
|
226
|
-
startAdornment: React__default.createElement(material.
|
|
227
|
-
arrow: true,
|
|
228
|
-
title: (_localization$filterT2 = localization.filterTextFieldPlaceholder) == null ? void 0 : _localization$filterT2.replace('{column}', String(column.Header))
|
|
229
|
-
}, React__default.createElement(material.InputAdornment, {
|
|
484
|
+
startAdornment: React__default.createElement(material.InputAdornment, {
|
|
230
485
|
position: "start"
|
|
231
|
-
}, React__default.createElement(
|
|
232
|
-
|
|
486
|
+
}, React__default.createElement(material.Tooltip, {
|
|
487
|
+
arrow: true,
|
|
488
|
+
title: "Change Filter Mode"
|
|
489
|
+
}, React__default.createElement(material.IconButton, {
|
|
490
|
+
onClick: handleFilterMenuOpen,
|
|
491
|
+
size: "small",
|
|
492
|
+
sx: {
|
|
493
|
+
height: '1.75rem',
|
|
494
|
+
width: '1.75rem'
|
|
495
|
+
}
|
|
496
|
+
}, React__default.createElement(FilterListIcon, null))), showFilterChip && React__default.createElement(material.Chip, {
|
|
497
|
+
onDelete: handleClearFilterChip,
|
|
498
|
+
label: filterType
|
|
499
|
+
})),
|
|
500
|
+
endAdornment: !showFilterChip && React__default.createElement(material.InputAdornment, {
|
|
233
501
|
position: "end"
|
|
234
502
|
}, React__default.createElement(material.Tooltip, {
|
|
235
503
|
arrow: true,
|
|
236
|
-
|
|
504
|
+
placement: "right",
|
|
505
|
+
title: (_localization$filterT2 = localization.filterTextFieldClearButtonTitle) != null ? _localization$filterT2 : ''
|
|
237
506
|
}, React__default.createElement("span", null, React__default.createElement(material.IconButton, {
|
|
238
507
|
"aria-label": localization.filterTextFieldClearButtonTitle,
|
|
239
508
|
disabled: (filterValue == null ? void 0 : filterValue.length) === 0,
|
|
240
509
|
onClick: handleClear,
|
|
241
|
-
size: "small"
|
|
510
|
+
size: "small",
|
|
511
|
+
sx: {
|
|
512
|
+
height: '1.75rem',
|
|
513
|
+
width: '1.75rem'
|
|
514
|
+
}
|
|
242
515
|
}, React__default.createElement(CloseIcon, {
|
|
243
516
|
fontSize: "small"
|
|
244
517
|
})))))
|
|
245
518
|
}
|
|
246
|
-
}
|
|
519
|
+
}, textFieldProps, {
|
|
520
|
+
sx: _extends({
|
|
521
|
+
minWidth: '6rem'
|
|
522
|
+
}, textFieldProps == null ? void 0 : textFieldProps.sx)
|
|
523
|
+
})), React__default.createElement(MRT_FilterMenu, {
|
|
524
|
+
anchorEl: anchorEl,
|
|
525
|
+
column: column,
|
|
526
|
+
setAnchorEl: setAnchorEl
|
|
527
|
+
}));
|
|
247
528
|
};
|
|
248
529
|
|
|
249
|
-
var commonMenuItemStyles = {
|
|
250
|
-
display: 'flex',
|
|
251
|
-
gap: '0.75rem'
|
|
252
|
-
};
|
|
253
530
|
var MRT_ColumnActionMenu = function MRT_ColumnActionMenu(_ref) {
|
|
254
531
|
var _localization$columnA, _localization$columnA2, _localization$filterT, _localization, _localization$columnA3;
|
|
255
532
|
|
|
@@ -262,14 +539,19 @@ var MRT_ColumnActionMenu = function MRT_ColumnActionMenu(_ref) {
|
|
|
262
539
|
disableFilters = _useMRT.disableFilters,
|
|
263
540
|
disableSortBy = _useMRT.disableSortBy,
|
|
264
541
|
enableColumnGrouping = _useMRT.enableColumnGrouping,
|
|
265
|
-
localization = _useMRT.localization,
|
|
266
|
-
setShowFilters = _useMRT.setShowFilters,
|
|
267
542
|
_useMRT$icons = _useMRT.icons,
|
|
268
|
-
FilterListIcon = _useMRT$icons.FilterListIcon,
|
|
269
|
-
SortIcon = _useMRT$icons.SortIcon,
|
|
270
543
|
ClearAllIcon = _useMRT$icons.ClearAllIcon,
|
|
271
544
|
DynamicFeedIcon = _useMRT$icons.DynamicFeedIcon,
|
|
272
|
-
|
|
545
|
+
FilterListIcon = _useMRT$icons.FilterListIcon,
|
|
546
|
+
SortIcon = _useMRT$icons.SortIcon,
|
|
547
|
+
VisibilityOffIcon = _useMRT$icons.VisibilityOffIcon,
|
|
548
|
+
idPrefix = _useMRT.idPrefix,
|
|
549
|
+
localization = _useMRT.localization,
|
|
550
|
+
setShowFilters = _useMRT.setShowFilters;
|
|
551
|
+
|
|
552
|
+
var _useState = React.useState(null),
|
|
553
|
+
filterMenuAnchorEl = _useState[0],
|
|
554
|
+
setFilterMenuAnchorEl = _useState[1];
|
|
273
555
|
|
|
274
556
|
var handleClearSort = function handleClearSort() {
|
|
275
557
|
column.clearSortBy();
|
|
@@ -302,55 +584,63 @@ var MRT_ColumnActionMenu = function MRT_ColumnActionMenu(_ref) {
|
|
|
302
584
|
var _document$getElementB, _column$muiTableHeadC, _column$muiTableHeadC2;
|
|
303
585
|
|
|
304
586
|
return (_document$getElementB = document.getElementById( // @ts-ignore
|
|
305
|
-
(_column$muiTableHeadC = (_column$muiTableHeadC2 = column.muiTableHeadCellFilterTextFieldProps) == null ? void 0 : _column$muiTableHeadC2.id) != null ? _column$muiTableHeadC : "
|
|
587
|
+
(_column$muiTableHeadC = (_column$muiTableHeadC2 = column.muiTableHeadCellFilterTextFieldProps) == null ? void 0 : _column$muiTableHeadC2.id) != null ? _column$muiTableHeadC : "mrt-" + idPrefix + "-" + column.id + "-filter-text-field")) == null ? void 0 : _document$getElementB.focus();
|
|
306
588
|
}, 200);
|
|
307
589
|
setAnchorEl(null);
|
|
308
590
|
};
|
|
309
591
|
|
|
592
|
+
var handleOpenFilterModeMenu = function handleOpenFilterModeMenu(event) {
|
|
593
|
+
event.stopPropagation();
|
|
594
|
+
setFilterMenuAnchorEl(event.currentTarget);
|
|
595
|
+
};
|
|
596
|
+
|
|
310
597
|
return React__default.createElement(material.Menu, {
|
|
311
598
|
anchorEl: anchorEl,
|
|
312
599
|
open: !!anchorEl,
|
|
313
600
|
onClose: function onClose() {
|
|
314
601
|
return setAnchorEl(null);
|
|
315
602
|
}
|
|
316
|
-
}, !disableSortBy && column.canSort && [React__default.createElement(material.MenuItem, {
|
|
603
|
+
}, React__default.createElement(material.MenuList, null, !disableSortBy && column.canSort && [React__default.createElement(material.MenuItem, {
|
|
317
604
|
key: 1,
|
|
318
605
|
disabled: !column.isSorted,
|
|
319
|
-
onClick: handleClearSort
|
|
320
|
-
|
|
321
|
-
}, React__default.createElement(ClearAllIcon, null), " ", localization.columnActionMenuItemClearSort), React__default.createElement(material.MenuItem, {
|
|
606
|
+
onClick: handleClearSort
|
|
607
|
+
}, React__default.createElement(material.ListItemIcon, null, React__default.createElement(ClearAllIcon, null)), React__default.createElement(material.ListItemText, null, localization.columnActionMenuItemClearSort)), React__default.createElement(material.MenuItem, {
|
|
322
608
|
key: 2,
|
|
323
609
|
disabled: column.isSorted && !column.isSortedDesc,
|
|
324
|
-
onClick: handleSortAsc
|
|
325
|
-
|
|
326
|
-
}, React__default.createElement(SortIcon, null), ' ', (_localization$columnA = localization.columnActionMenuItemSortAsc) == null ? void 0 : _localization$columnA.replace('{column}', String(column.Header))), React__default.createElement(material.MenuItem, {
|
|
610
|
+
onClick: handleSortAsc
|
|
611
|
+
}, React__default.createElement(material.ListItemIcon, null, React__default.createElement(SortIcon, null)), React__default.createElement(material.ListItemText, null, (_localization$columnA = localization.columnActionMenuItemSortAsc) == null ? void 0 : _localization$columnA.replace('{column}', String(column.Header)))), React__default.createElement(material.MenuItem, {
|
|
327
612
|
key: 3,
|
|
328
613
|
disabled: column.isSorted && column.isSortedDesc,
|
|
329
|
-
onClick: handleSortDesc
|
|
330
|
-
|
|
331
|
-
}, React__default.createElement(SortIcon, {
|
|
614
|
+
onClick: handleSortDesc
|
|
615
|
+
}, React__default.createElement(material.ListItemIcon, null, React__default.createElement(SortIcon, {
|
|
332
616
|
style: {
|
|
333
617
|
transform: 'rotate(180deg) scaleX(-1)'
|
|
334
618
|
}
|
|
335
|
-
}),
|
|
619
|
+
})), React__default.createElement(material.ListItemText, null, (_localization$columnA2 = localization.columnActionMenuItemSortDesc) == null ? void 0 : _localization$columnA2.replace('{column}', String(column.Header))))], !disableFilters && column.canFilter && [React__default.createElement(material.Divider, {
|
|
336
620
|
key: 0
|
|
337
621
|
}), React__default.createElement(material.MenuItem, {
|
|
338
622
|
key: 1,
|
|
339
|
-
onClick: handleFilterByColumn
|
|
340
|
-
|
|
341
|
-
|
|
623
|
+
onClick: handleFilterByColumn
|
|
624
|
+
}, React__default.createElement(material.ListItemIcon, null, React__default.createElement(FilterListIcon, null)), React__default.createElement(material.ListItemText, null, (_localization$filterT = localization.filterTextFieldPlaceholder) == null ? void 0 : _localization$filterT.replace('{column}', String(column.Header))), React__default.createElement(material.IconButton, {
|
|
625
|
+
size: "small",
|
|
626
|
+
onMouseEnter: handleOpenFilterModeMenu
|
|
627
|
+
}, React__default.createElement(ArrowRightIcon, null))), React__default.createElement(MRT_FilterMenu, {
|
|
628
|
+
anchorEl: filterMenuAnchorEl,
|
|
629
|
+
column: column,
|
|
630
|
+
key: 2,
|
|
631
|
+
setAnchorEl: setFilterMenuAnchorEl,
|
|
632
|
+
onSelect: handleFilterByColumn
|
|
633
|
+
})], enableColumnGrouping && column.canGroupBy && [React__default.createElement(material.Divider, {
|
|
342
634
|
key: 1
|
|
343
635
|
}), React__default.createElement(material.MenuItem, {
|
|
344
636
|
key: 2,
|
|
345
|
-
onClick: handleGroupByColumn
|
|
346
|
-
|
|
347
|
-
}, React__default.createElement(DynamicFeedIcon, null), ' ', (_localization = localization[column.isGrouped ? 'columnActionMenuItemUnGroupBy' : 'columnActionMenuItemGroupBy']) == null ? void 0 : _localization.replace('{column}', String(column.Header)))], !disableColumnHiding && [React__default.createElement(material.Divider, {
|
|
637
|
+
onClick: handleGroupByColumn
|
|
638
|
+
}, React__default.createElement(material.ListItemIcon, null, React__default.createElement(DynamicFeedIcon, null)), React__default.createElement(material.ListItemText, null, (_localization = localization[column.isGrouped ? 'columnActionMenuItemUnGroupBy' : 'columnActionMenuItemGroupBy']) == null ? void 0 : _localization.replace('{column}', String(column.Header))))], !disableColumnHiding && [React__default.createElement(material.Divider, {
|
|
348
639
|
key: 0
|
|
349
640
|
}), React__default.createElement(material.MenuItem, {
|
|
350
641
|
key: 1,
|
|
351
|
-
onClick: handleHideColumn
|
|
352
|
-
|
|
353
|
-
}, React__default.createElement(VisibilityOffIcon, null), ' ', (_localization$columnA3 = localization.columnActionMenuItemHideColumn) == null ? void 0 : _localization$columnA3.replace('{column}', String(column.Header)))]);
|
|
642
|
+
onClick: handleHideColumn
|
|
643
|
+
}, React__default.createElement(material.ListItemIcon, null, React__default.createElement(VisibilityOffIcon, null)), React__default.createElement(material.ListItemText, null, (_localization$columnA3 = localization.columnActionMenuItemHideColumn) == null ? void 0 : _localization$columnA3.replace('{column}', String(column.Header))))]));
|
|
354
644
|
};
|
|
355
645
|
|
|
356
646
|
var MRT_ToggleColumnActionMenuButton = function MRT_ToggleColumnActionMenuButton(_ref) {
|
|
@@ -380,11 +670,12 @@ var MRT_ToggleColumnActionMenuButton = function MRT_ToggleColumnActionMenuButton
|
|
|
380
670
|
onClick: handleClick,
|
|
381
671
|
size: "small",
|
|
382
672
|
sx: {
|
|
673
|
+
height: '2rem',
|
|
674
|
+
mr: '2px',
|
|
675
|
+
mt: '-0.2rem',
|
|
383
676
|
opacity: 0.5,
|
|
384
677
|
transition: 'opacity 0.2s',
|
|
385
|
-
|
|
386
|
-
height: '1.6rem',
|
|
387
|
-
width: '1.6rem',
|
|
678
|
+
width: '2rem',
|
|
388
679
|
'&:hover': {
|
|
389
680
|
opacity: 1
|
|
390
681
|
}
|
|
@@ -428,17 +719,12 @@ var MRT_TableHeadCell = function MRT_TableHeadCell(_ref) {
|
|
|
428
719
|
});
|
|
429
720
|
|
|
430
721
|
var sortTooltip = column.isSorted ? column.isSortedDesc ? localization.columnActionMenuItemClearSort : (_localization$columnA = localization.columnActionMenuItemSortDesc) == null ? void 0 : _localization$columnA.replace('{column}', column.Header) : (_localization$columnA2 = localization.columnActionMenuItemSortAsc) == null ? void 0 : _localization$columnA2.replace('{column}', column.Header);
|
|
722
|
+
var columnHeader = column.render('Header');
|
|
431
723
|
return React__default.createElement(material.TableCell, Object.assign({
|
|
432
724
|
align: isParentHeader ? 'center' : 'left'
|
|
433
725
|
}, tableCellProps, {
|
|
434
726
|
sx: _extends({}, commonTableHeadCellStyles(tableInstance.state.densePadding, enableColumnResizing), tableCellProps == null ? void 0 : tableCellProps.sx)
|
|
435
727
|
}), React__default.createElement(material.Box, {
|
|
436
|
-
sx: {
|
|
437
|
-
alignContent: 'space-between',
|
|
438
|
-
display: 'grid',
|
|
439
|
-
height: '100%'
|
|
440
|
-
}
|
|
441
|
-
}, React__default.createElement(material.Box, {
|
|
442
728
|
sx: {
|
|
443
729
|
alignItems: 'flex-start',
|
|
444
730
|
display: 'flex',
|
|
@@ -449,7 +735,8 @@ var MRT_TableHeadCell = function MRT_TableHeadCell(_ref) {
|
|
|
449
735
|
sx: {
|
|
450
736
|
alignItems: 'center',
|
|
451
737
|
display: 'flex',
|
|
452
|
-
flexWrap: 'nowrap'
|
|
738
|
+
flexWrap: 'nowrap',
|
|
739
|
+
whiteSpace: columnHeader.length < 15 ? 'nowrap' : 'normal'
|
|
453
740
|
},
|
|
454
741
|
title: undefined
|
|
455
742
|
}), column.render('Header'), !isParentHeader && column.canSort && React__default.createElement(material.Tooltip, {
|
|
@@ -483,7 +770,7 @@ var MRT_TableHeadCell = function MRT_TableHeadCell(_ref) {
|
|
|
483
770
|
"in": tableInstance.state.showFilters
|
|
484
771
|
}, React__default.createElement(MRT_FilterTextField, {
|
|
485
772
|
column: column
|
|
486
|
-
})))
|
|
773
|
+
})));
|
|
487
774
|
};
|
|
488
775
|
|
|
489
776
|
var MRT_EditCellTextField = function MRT_EditCellTextField(_ref) {
|
|
@@ -1890,6 +2177,7 @@ var MRT_SearchTextField = function MRT_SearchTextField() {
|
|
|
1890
2177
|
_useMRT$icons = _useMRT.icons,
|
|
1891
2178
|
SearchIcon = _useMRT$icons.SearchIcon,
|
|
1892
2179
|
CloseIcon = _useMRT$icons.CloseIcon,
|
|
2180
|
+
idPrefix = _useMRT.idPrefix,
|
|
1893
2181
|
localization = _useMRT.localization,
|
|
1894
2182
|
muiSearchTextFieldProps = _useMRT.muiSearchTextFieldProps,
|
|
1895
2183
|
onGlobalFilterChange = _useMRT.onGlobalFilterChange,
|
|
@@ -1915,7 +2203,7 @@ var MRT_SearchTextField = function MRT_SearchTextField() {
|
|
|
1915
2203
|
"in": tableInstance.state.showSearch,
|
|
1916
2204
|
orientation: "horizontal"
|
|
1917
2205
|
}, React__default.createElement(material.TextField, Object.assign({
|
|
1918
|
-
id: "
|
|
2206
|
+
id: "mrt-" + idPrefix + "-search-text-field",
|
|
1919
2207
|
placeholder: localization.searchTextFieldPlaceholder,
|
|
1920
2208
|
onChange: function onChange(event) {
|
|
1921
2209
|
setSearchValue(event.target.value);
|
|
@@ -2118,6 +2406,7 @@ var MRT_ToggleSearchButton = function MRT_ToggleSearchButton(_ref) {
|
|
|
2118
2406
|
_useMRT$icons = _useMRT.icons,
|
|
2119
2407
|
SearchIcon = _useMRT$icons.SearchIcon,
|
|
2120
2408
|
SearchOffIcon = _useMRT$icons.SearchOffIcon,
|
|
2409
|
+
idPrefix = _useMRT.idPrefix,
|
|
2121
2410
|
localization = _useMRT.localization,
|
|
2122
2411
|
muiSearchTextFieldProps = _useMRT.muiSearchTextFieldProps,
|
|
2123
2412
|
setShowSearch = _useMRT.setShowSearch,
|
|
@@ -2128,7 +2417,7 @@ var MRT_ToggleSearchButton = function MRT_ToggleSearchButton(_ref) {
|
|
|
2128
2417
|
setTimeout(function () {
|
|
2129
2418
|
var _document$getElementB, _muiSearchTextFieldPr;
|
|
2130
2419
|
|
|
2131
|
-
return (_document$getElementB = document.getElementById((_muiSearchTextFieldPr = muiSearchTextFieldProps == null ? void 0 : muiSearchTextFieldProps.id) != null ? _muiSearchTextFieldPr : "
|
|
2420
|
+
return (_document$getElementB = document.getElementById((_muiSearchTextFieldPr = muiSearchTextFieldProps == null ? void 0 : muiSearchTextFieldProps.id) != null ? _muiSearchTextFieldPr : "mrt-" + idPrefix + "-search-text-field")) == null ? void 0 : _document$getElementB.focus();
|
|
2132
2421
|
}, 200);
|
|
2133
2422
|
};
|
|
2134
2423
|
|
|
@@ -2409,6 +2698,15 @@ var MRT_DefaultLocalization_EN = {
|
|
|
2409
2698
|
columnShowHideMenuShowAll: 'Show all',
|
|
2410
2699
|
expandAllButtonTitle: 'Expand all',
|
|
2411
2700
|
expandButtonTitle: 'Expand',
|
|
2701
|
+
filterMenuItemContains: 'Contains Exact',
|
|
2702
|
+
filterMenuItemEmpty: 'Empty',
|
|
2703
|
+
filterMenuItemEndsWith: 'Ends With',
|
|
2704
|
+
filterMenuItemEquals: 'Equals',
|
|
2705
|
+
filterMenuItemFuzzy: 'Fuzzy Match',
|
|
2706
|
+
filterMenuItemNotEmpty: 'Not Empty',
|
|
2707
|
+
filterMenuItemNotEquals: 'Not Equals',
|
|
2708
|
+
filterMenuItemStartsWith: 'Starts With',
|
|
2709
|
+
filterMenuTitle: 'Filter Mode',
|
|
2412
2710
|
filterTextFieldClearButtonTitle: 'Clear filter',
|
|
2413
2711
|
filterTextFieldPlaceholder: 'Filter by {column}',
|
|
2414
2712
|
rowActionButtonCancel: 'Cancel',
|
|
@@ -2425,9 +2723,9 @@ var MRT_DefaultLocalization_EN = {
|
|
|
2425
2723
|
toggleFilterButtonTitle: 'Toggle filters',
|
|
2426
2724
|
toggleFullScreenButtonTitle: 'Toggle full screen',
|
|
2427
2725
|
toggleSearchButtonTitle: 'Toggle search',
|
|
2428
|
-
toolbarAlertSelectionMessage: '{selectedCount} of {rowCount} row(s) selected',
|
|
2429
2726
|
toolbarAlertGroupedByMessage: 'Grouped by ',
|
|
2430
|
-
toolbarAlertGroupedThenByMessage: ', then by '
|
|
2727
|
+
toolbarAlertGroupedThenByMessage: ', then by ',
|
|
2728
|
+
toolbarAlertSelectionMessage: '{selectedCount} of {rowCount} row(s) selected'
|
|
2431
2729
|
};
|
|
2432
2730
|
|
|
2433
2731
|
var MRT_Default_Icons = {
|