@popmenu/table 0.92.0 → 0.94.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/components/Table/TableProps.d.ts +2 -0
- package/build/components/TableContext/index.d.ts +15 -2
- package/build/hooks/index.d.ts +1 -0
- package/build/hooks/useStagedColumnFilters.d.ts +8 -0
- package/build/index.es.js +238 -71
- package/build/index.es.js.map +1 -1
- package/build/index.js +237 -70
- package/build/index.js.map +1 -1
- package/package.json +2 -2
|
@@ -42,4 +42,6 @@ export interface TableProps<T = unknown> {
|
|
|
42
42
|
Empty?: () => JSX.Element;
|
|
43
43
|
/** A string used to construct ids and tags used throughout the table for tagging inner elements. ie: data-tour-id. */
|
|
44
44
|
idBase?: string;
|
|
45
|
+
/** Controls which filter should be used for the application, automatic or manual. */
|
|
46
|
+
stageFilterSelections?: boolean;
|
|
45
47
|
}
|
|
@@ -1,3 +1,16 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
|
-
import { Table } from '@tanstack/react-table';
|
|
3
|
-
export declare
|
|
2
|
+
import { ColumnFilter, Table } from '@tanstack/react-table';
|
|
3
|
+
export declare type StagedColumnFilter = {
|
|
4
|
+
update: (columnId: string, value: string | Array<string>) => void;
|
|
5
|
+
get: (columnId: string) => string | Array<string> | undefined;
|
|
6
|
+
clear: () => void;
|
|
7
|
+
delete: (columnFilter: ColumnFilter) => void;
|
|
8
|
+
exist: () => boolean;
|
|
9
|
+
};
|
|
10
|
+
declare type TabelContextValue = {
|
|
11
|
+
table: Table<any>;
|
|
12
|
+
stagedColumnFilters: StagedColumnFilter;
|
|
13
|
+
stageFilterSelections: boolean | undefined;
|
|
14
|
+
};
|
|
15
|
+
export declare const TableContext: import("react").Context<TabelContextValue>;
|
|
16
|
+
export {};
|
package/build/hooks/index.d.ts
CHANGED
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { ColumnFilter } from '@tanstack/react-table';
|
|
2
|
+
export declare const useStagedColumnFilters: () => {
|
|
3
|
+
update: (columnId: string, value: string | Array<string>) => void;
|
|
4
|
+
get: (columnId: string) => string | string[] | undefined;
|
|
5
|
+
clear: () => void;
|
|
6
|
+
delete: (columnFilter: ColumnFilter) => void;
|
|
7
|
+
exist: () => boolean;
|
|
8
|
+
};
|
package/build/index.es.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import React__default, { createElement, forwardRef, createContext, useContext, useState, useRef, isValidElement } from 'react';
|
|
3
|
-
import { makeStyles, Link as Link$2, Paper as Paper$2, Typography as Typography$2, Box, FormControl, InputLabel, Select, FormControlLabel as FormControlLabel$1, Switch as Switch$2, TextField,
|
|
3
|
+
import { makeStyles, Link as Link$2, Paper as Paper$2, Typography as Typography$2, Box, FormControl, InputLabel, Select, FormControlLabel as FormControlLabel$1, Switch as Switch$2, TextField, ButtonBase, Popover, InputAdornment, useTheme as useTheme$1 } from '@material-ui/core';
|
|
4
4
|
import { Pagination } from '@material-ui/lab';
|
|
5
5
|
import { useReactTable, getCoreRowModel, getSortedRowModel, getFilteredRowModel, getPaginationRowModel, flexRender } from '@tanstack/react-table';
|
|
6
6
|
import CommonAlert from '@material-ui/lab/Alert';
|
|
@@ -771,7 +771,7 @@ Link$1.defaultProps = {
|
|
|
771
771
|
};
|
|
772
772
|
Link$1.displayName = 'Link';
|
|
773
773
|
|
|
774
|
-
var useStyles$
|
|
774
|
+
var useStyles$4$2 = makeStyles(function (_a) {
|
|
775
775
|
var spacing = _a.spacing;
|
|
776
776
|
return ({
|
|
777
777
|
root: {
|
|
@@ -785,7 +785,7 @@ var useStyles$8 = makeStyles(function (_a) {
|
|
|
785
785
|
});
|
|
786
786
|
var Paper$1 = forwardRef(function (props, ref) {
|
|
787
787
|
var legacyStyles = props.legacyStyles, restProps = __rest$2(props, ["legacyStyles"]);
|
|
788
|
-
var classes = useStyles$
|
|
788
|
+
var classes = useStyles$4$2(props);
|
|
789
789
|
return React__default.createElement(Paper$2, __assign$2({}, ref, { classes: __assign$2({}, (legacyStyles && classes)) }, restProps));
|
|
790
790
|
});
|
|
791
791
|
Paper$1.displayName = 'Paper';
|
|
@@ -938,6 +938,45 @@ makeStyles(function (theme) { return ({
|
|
|
938
938
|
},
|
|
939
939
|
}); });
|
|
940
940
|
|
|
941
|
+
makeStyles(function () { return ({
|
|
942
|
+
root: {
|
|
943
|
+
display: 'flex',
|
|
944
|
+
flexDirection: 'column',
|
|
945
|
+
alignItems: 'center',
|
|
946
|
+
gridGap: 16,
|
|
947
|
+
},
|
|
948
|
+
}); });
|
|
949
|
+
|
|
950
|
+
var FollowerAuthenticationDialogContext$1 = createContext(null);
|
|
951
|
+
FollowerAuthenticationDialogContext$1.Provider;
|
|
952
|
+
|
|
953
|
+
makeStyles(function () { return ({
|
|
954
|
+
form: {
|
|
955
|
+
display: 'flex',
|
|
956
|
+
flexDirection: 'column',
|
|
957
|
+
alignItems: 'center',
|
|
958
|
+
width: '100%',
|
|
959
|
+
gridGap: 16,
|
|
960
|
+
},
|
|
961
|
+
}); });
|
|
962
|
+
|
|
963
|
+
makeStyles(function () { return ({
|
|
964
|
+
main: {
|
|
965
|
+
width: '100%',
|
|
966
|
+
display: 'flex',
|
|
967
|
+
flexDirection: 'column',
|
|
968
|
+
gridGap: 16,
|
|
969
|
+
},
|
|
970
|
+
}); });
|
|
971
|
+
|
|
972
|
+
makeStyles(function () { return ({
|
|
973
|
+
root: {
|
|
974
|
+
position: 'absolute',
|
|
975
|
+
top: 0,
|
|
976
|
+
right: 0,
|
|
977
|
+
},
|
|
978
|
+
}); });
|
|
979
|
+
|
|
941
980
|
var useTableRowStyles = makeStyles(function (theme) { return ({
|
|
942
981
|
root: function () { return ({
|
|
943
982
|
'&:nth-child(even)': {
|
|
@@ -1000,7 +1039,7 @@ var TableBody = function (props) {
|
|
|
1000
1039
|
return React__default.createElement("tbody", __assign$3({}, restProps), children);
|
|
1001
1040
|
};
|
|
1002
1041
|
|
|
1003
|
-
var useStyles$
|
|
1042
|
+
var useStyles$6 = makeStyles(function (_a) {
|
|
1004
1043
|
var typography = _a.typography;
|
|
1005
1044
|
return ({
|
|
1006
1045
|
root: function (_a) {
|
|
@@ -1031,7 +1070,15 @@ var TableFooter = function (props) {
|
|
|
1031
1070
|
return (React__default.createElement(Box, { display: "flex", justifyContent: "center", alignItems: "end", paddingTop: 3, paddingBottom: 4 }, props.children));
|
|
1032
1071
|
};
|
|
1033
1072
|
|
|
1034
|
-
var useStyles$
|
|
1073
|
+
var useStyles$5 = makeStyles(function (theme) { return ({
|
|
1074
|
+
buttonBox: {
|
|
1075
|
+
'& > :last-child': {
|
|
1076
|
+
marginLeft: theme.spacing(2),
|
|
1077
|
+
},
|
|
1078
|
+
display: 'flex',
|
|
1079
|
+
justifyContent: 'flex-end',
|
|
1080
|
+
padding: "0px " + theme.spacing(3) + "px " + theme.spacing(3) + "px " + theme.spacing(3) + "px",
|
|
1081
|
+
},
|
|
1035
1082
|
buttonLabel: {
|
|
1036
1083
|
fontWeight: 400,
|
|
1037
1084
|
},
|
|
@@ -1077,55 +1124,55 @@ var useStyles$6 = makeStyles(function (theme) { return ({
|
|
|
1077
1124
|
},
|
|
1078
1125
|
}); });
|
|
1079
1126
|
|
|
1080
|
-
var _path$
|
|
1127
|
+
var _path$2p;
|
|
1081
1128
|
|
|
1082
|
-
function _extends$
|
|
1129
|
+
function _extends$5p() { _extends$5p = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$5p.apply(this, arguments); }
|
|
1083
1130
|
|
|
1084
1131
|
function SvgChevronDown(props) {
|
|
1085
|
-
return /*#__PURE__*/React.createElement("svg", _extends$
|
|
1132
|
+
return /*#__PURE__*/React.createElement("svg", _extends$5p({
|
|
1086
1133
|
viewBox: "0 0 16 16",
|
|
1087
1134
|
fill: "none",
|
|
1088
1135
|
strokeLinecap: "round",
|
|
1089
1136
|
strokeLinejoin: "round",
|
|
1090
1137
|
width: "1em",
|
|
1091
1138
|
height: "1em"
|
|
1092
|
-
}, props), _path$
|
|
1139
|
+
}, props), _path$2p || (_path$2p = /*#__PURE__*/React.createElement("path", {
|
|
1093
1140
|
d: "M4 6l4 4 4-4",
|
|
1094
1141
|
stroke: "currentColor"
|
|
1095
1142
|
})));
|
|
1096
1143
|
}
|
|
1097
1144
|
|
|
1098
|
-
var _path$
|
|
1145
|
+
var _path$2o;
|
|
1099
1146
|
|
|
1100
|
-
function _extends$
|
|
1147
|
+
function _extends$5o() { _extends$5o = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$5o.apply(this, arguments); }
|
|
1101
1148
|
|
|
1102
1149
|
function SvgChevronUp(props) {
|
|
1103
|
-
return /*#__PURE__*/React.createElement("svg", _extends$
|
|
1150
|
+
return /*#__PURE__*/React.createElement("svg", _extends$5o({
|
|
1104
1151
|
viewBox: "0 0 16 16",
|
|
1105
1152
|
fill: "none",
|
|
1106
1153
|
strokeLinecap: "round",
|
|
1107
1154
|
strokeLinejoin: "round",
|
|
1108
1155
|
width: "1em",
|
|
1109
1156
|
height: "1em"
|
|
1110
|
-
}, props), _path$
|
|
1157
|
+
}, props), _path$2o || (_path$2o = /*#__PURE__*/React.createElement("path", {
|
|
1111
1158
|
d: "M12 10L8 6l-4 4",
|
|
1112
1159
|
stroke: "currentColor"
|
|
1113
1160
|
})));
|
|
1114
1161
|
}
|
|
1115
1162
|
|
|
1116
|
-
var _path$
|
|
1163
|
+
var _path$2f;
|
|
1117
1164
|
|
|
1118
|
-
function _extends$
|
|
1165
|
+
function _extends$58() { _extends$58 = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$58.apply(this, arguments); }
|
|
1119
1166
|
|
|
1120
1167
|
function SvgSort(props) {
|
|
1121
|
-
return /*#__PURE__*/React.createElement("svg", _extends$
|
|
1168
|
+
return /*#__PURE__*/React.createElement("svg", _extends$58({
|
|
1122
1169
|
viewBox: "0 0 16 16",
|
|
1123
1170
|
fill: "none",
|
|
1124
1171
|
strokeLinecap: "round",
|
|
1125
1172
|
strokeLinejoin: "round",
|
|
1126
1173
|
width: "1em",
|
|
1127
1174
|
height: "1em"
|
|
1128
|
-
}, props), _path$
|
|
1175
|
+
}, props), _path$2f || (_path$2f = /*#__PURE__*/React.createElement("path", {
|
|
1129
1176
|
d: "M11.333 6L8 2.667 4.667 6m6.666 4L8 13.334 4.667 10",
|
|
1130
1177
|
stroke: "currentColor"
|
|
1131
1178
|
})));
|
|
@@ -1219,30 +1266,36 @@ var SelectFilter = function (props) {
|
|
|
1219
1266
|
var _a, _b, _c;
|
|
1220
1267
|
var options = props.options, columnId = props.columnId, multiple = props.multiple;
|
|
1221
1268
|
var classes = useStyles$4();
|
|
1222
|
-
var
|
|
1223
|
-
var _d = useFilterPanelContext().anchorState, setAnchorEl = _d[1];
|
|
1269
|
+
var _d = useContext(TableContext), table = _d.table, stagedColumnFilters = _d.stagedColumnFilters, stageFilterSelections = _d.stageFilterSelections;
|
|
1224
1270
|
var _e = useState(false), open = _e[0], setOpen = _e[1];
|
|
1271
|
+
var _f = useFilterPanelContext().anchorState, setAnchorEl = _f[1];
|
|
1225
1272
|
var column = table.getColumn(columnId);
|
|
1226
1273
|
var meta = column.columnDef.meta;
|
|
1227
1274
|
var filterName = (_a = meta === null || meta === void 0 ? void 0 : meta.filter) === null || _a === void 0 ? void 0 : _a.name;
|
|
1228
|
-
var value =
|
|
1275
|
+
var value = '';
|
|
1276
|
+
if (stageFilterSelections) {
|
|
1277
|
+
value = stagedColumnFilters.get(columnId);
|
|
1278
|
+
}
|
|
1279
|
+
else {
|
|
1280
|
+
value = column.getFilterValue();
|
|
1281
|
+
}
|
|
1229
1282
|
var fallbackValue = multiple ? [] : '';
|
|
1230
1283
|
var filteredOptions = options.map(function (option) {
|
|
1231
1284
|
if (Array.isArray(value)) {
|
|
1232
1285
|
if (value.includes(option.value)) {
|
|
1233
|
-
return __assign$3(__assign$3({}, option), { hide:
|
|
1286
|
+
return __assign$3(__assign$3({}, option), { hide: !stageFilterSelections });
|
|
1234
1287
|
}
|
|
1235
1288
|
}
|
|
1236
1289
|
if (typeof value === 'string' || typeof value === 'number') {
|
|
1237
1290
|
if (value === option.value) {
|
|
1238
|
-
return __assign$3(__assign$3({}, option), { hide:
|
|
1291
|
+
return __assign$3(__assign$3({}, option), { hide: !stageFilterSelections });
|
|
1239
1292
|
}
|
|
1240
1293
|
}
|
|
1241
1294
|
return __assign$3(__assign$3({}, option), { hide: false });
|
|
1242
1295
|
});
|
|
1243
1296
|
var filteredOptionsCount = filteredOptions.filter(function (option) { return !(option === null || option === void 0 ? void 0 : option.hide); }).length;
|
|
1244
1297
|
var renderedValue = '';
|
|
1245
|
-
if (value && filteredOptions && filteredOptionsCount > 0) {
|
|
1298
|
+
if (!stageFilterSelections && value && filteredOptions && filteredOptionsCount > 0) {
|
|
1246
1299
|
if (typeof value === 'string' || typeof value === 'number') {
|
|
1247
1300
|
renderedValue = (_c = (_b = filteredOptions.find(function (option) { return option.value === value; })) === null || _b === void 0 ? void 0 : _b.label) !== null && _c !== void 0 ? _c : filterName;
|
|
1248
1301
|
}
|
|
@@ -1255,12 +1308,20 @@ var SelectFilter = function (props) {
|
|
|
1255
1308
|
}
|
|
1256
1309
|
var handleChange = function (event) {
|
|
1257
1310
|
event.stopPropagation();
|
|
1258
|
-
|
|
1259
|
-
|
|
1311
|
+
if (stageFilterSelections) {
|
|
1312
|
+
stagedColumnFilters.update(columnId, event.target.value);
|
|
1313
|
+
}
|
|
1314
|
+
else {
|
|
1315
|
+
column.setFilterValue(event.target.value);
|
|
1316
|
+
setAnchorEl(null);
|
|
1317
|
+
}
|
|
1260
1318
|
};
|
|
1261
1319
|
var handleItemClick = function () {
|
|
1262
1320
|
if (multiple) {
|
|
1263
|
-
if (filteredOptionsCount === 1) {
|
|
1321
|
+
if (!stageFilterSelections && filteredOptionsCount === 1) {
|
|
1322
|
+
setOpen(false);
|
|
1323
|
+
}
|
|
1324
|
+
else {
|
|
1264
1325
|
setOpen(false);
|
|
1265
1326
|
}
|
|
1266
1327
|
}
|
|
@@ -1268,7 +1329,7 @@ var SelectFilter = function (props) {
|
|
|
1268
1329
|
return (React__default.createElement(Box, { className: classes.selectContainer },
|
|
1269
1330
|
React__default.createElement(FormControl, { variant: "outlined", fullWidth: true },
|
|
1270
1331
|
React__default.createElement(InputLabel, { id: "select-filter-label-" + filterName }, filterName || 'filter'),
|
|
1271
|
-
React__default.createElement(Select, { variant: "outlined", open: open, onOpen: function () { return setOpen(true); }, onClose: function () { return setOpen(false); }, value: value || fallbackValue, displayEmpty: true, multiple: multiple, renderValue: function () { return React__default.createElement(Typography$1, null, renderedValue); }, label: filterName || 'filter', labelId: "select-filter-label-" + filterName, disabled: !filteredOptionsCount, IconComponent: SvgChevronDown, onChange: handleChange, fullWidth: true, classes: {
|
|
1332
|
+
React__default.createElement(Select, { variant: "outlined", open: open, onOpen: function () { return setOpen(true); }, onClose: function () { return setOpen(false); }, value: value || fallbackValue, displayEmpty: true, multiple: multiple, renderValue: stageFilterSelections ? undefined : function () { return React__default.createElement(Typography$1, null, renderedValue); }, label: filterName || 'filter', labelId: "select-filter-label-" + filterName, disabled: !filteredOptionsCount, IconComponent: SvgChevronDown, onChange: handleChange, fullWidth: true, classes: {
|
|
1272
1333
|
root: classes.selectRoot,
|
|
1273
1334
|
icon: classes.icon,
|
|
1274
1335
|
}, MenuProps: {
|
|
@@ -1288,7 +1349,7 @@ var SelectFilter = function (props) {
|
|
|
1288
1349
|
};
|
|
1289
1350
|
|
|
1290
1351
|
var ToggleFilter = function (props) {
|
|
1291
|
-
var table = useContext(TableContext);
|
|
1352
|
+
var table = useContext(TableContext).table;
|
|
1292
1353
|
var columnId = props.columnId;
|
|
1293
1354
|
var column = table.getColumn(columnId);
|
|
1294
1355
|
var meta = column.columnDef.meta;
|
|
@@ -1386,44 +1447,37 @@ function makeFormatSelectedFilterText(table) {
|
|
|
1386
1447
|
};
|
|
1387
1448
|
}
|
|
1388
1449
|
|
|
1389
|
-
var
|
|
1390
|
-
var
|
|
1391
|
-
var
|
|
1392
|
-
|
|
1393
|
-
|
|
1394
|
-
|
|
1395
|
-
|
|
1396
|
-
|
|
1397
|
-
|
|
1398
|
-
|
|
1399
|
-
|
|
1400
|
-
|
|
1401
|
-
var
|
|
1402
|
-
|
|
1403
|
-
|
|
1404
|
-
|
|
1405
|
-
|
|
1450
|
+
var useStagedColumnFilters = function () {
|
|
1451
|
+
var _a = useState(new Map()), columnInputValues = _a[0], setColumnInputValues = _a[1];
|
|
1452
|
+
var filterState = {
|
|
1453
|
+
update: function (columnId, value) {
|
|
1454
|
+
return setColumnInputValues(columnInputValues.set(columnId, value));
|
|
1455
|
+
},
|
|
1456
|
+
get: function (columnId) { return columnInputValues.get(columnId); },
|
|
1457
|
+
clear: function () {
|
|
1458
|
+
columnInputValues.clear();
|
|
1459
|
+
setColumnInputValues(columnInputValues);
|
|
1460
|
+
},
|
|
1461
|
+
delete: function (columnFilter) {
|
|
1462
|
+
var values = columnInputValues.get(columnFilter.id);
|
|
1463
|
+
if (values && Array.isArray(values)) {
|
|
1464
|
+
var valueIndex = values.indexOf(columnFilter.value);
|
|
1465
|
+
values.splice(valueIndex, 1);
|
|
1466
|
+
if (values.length > 0) {
|
|
1467
|
+
columnInputValues.set(columnFilter.id, values);
|
|
1468
|
+
}
|
|
1469
|
+
else {
|
|
1470
|
+
columnInputValues.clear();
|
|
1471
|
+
}
|
|
1406
1472
|
}
|
|
1407
|
-
|
|
1473
|
+
else {
|
|
1474
|
+
columnInputValues.delete(columnFilter.id);
|
|
1475
|
+
}
|
|
1476
|
+
setColumnInputValues(columnInputValues);
|
|
1477
|
+
},
|
|
1478
|
+
exist: function () { return columnInputValues.size > 0; },
|
|
1408
1479
|
};
|
|
1409
|
-
|
|
1410
|
-
return (React__default.createElement(Popover, { onClick: handleClick, anchorEl: anchorEl, anchorOrigin: {
|
|
1411
|
-
vertical: 'bottom',
|
|
1412
|
-
horizontal: 'right',
|
|
1413
|
-
}, className: classes.filterPopover, onClose: onClose, open: open, PaperProps: {
|
|
1414
|
-
style: {
|
|
1415
|
-
backgroundColor: 'transparent',
|
|
1416
|
-
boxShadow: 'none',
|
|
1417
|
-
borderRadius: 0,
|
|
1418
|
-
},
|
|
1419
|
-
}, transformOrigin: {
|
|
1420
|
-
vertical: 'top',
|
|
1421
|
-
horizontal: 'right',
|
|
1422
|
-
} },
|
|
1423
|
-
React__default.createElement(Paper$1, { className: classes.filterPopoverContents, elevation: 2 },
|
|
1424
|
-
React__default.createElement(Box, __assign$3({}, { ref: paperRef }, { padding: 3 }),
|
|
1425
|
-
React__default.createElement(Typography$1, { className: classes.menuTitle }, "Filter By"),
|
|
1426
|
-
columnFilters.map(function (columnFilter, i) { return (React__default.createElement(FilterControl, __assign$3({}, columnFilter, { key: i }))); })))));
|
|
1480
|
+
return filterState;
|
|
1427
1481
|
};
|
|
1428
1482
|
|
|
1429
1483
|
/*! *****************************************************************************
|
|
@@ -2018,7 +2072,7 @@ Link.defaultProps = {
|
|
|
2018
2072
|
};
|
|
2019
2073
|
Link.displayName = 'Link';
|
|
2020
2074
|
|
|
2021
|
-
var useStyles$
|
|
2075
|
+
var useStyles$4$1 = makeStyles(function (_a) {
|
|
2022
2076
|
var spacing = _a.spacing;
|
|
2023
2077
|
return ({
|
|
2024
2078
|
root: {
|
|
@@ -2032,7 +2086,7 @@ var useStyles$5 = makeStyles(function (_a) {
|
|
|
2032
2086
|
});
|
|
2033
2087
|
var Paper = forwardRef(function (props, ref) {
|
|
2034
2088
|
var legacyStyles = props.legacyStyles, restProps = __rest(props, ["legacyStyles"]);
|
|
2035
|
-
var classes = useStyles$
|
|
2089
|
+
var classes = useStyles$4$1(props);
|
|
2036
2090
|
return React__default.createElement(Paper$2, __assign({}, ref, { classes: __assign({}, (legacyStyles && classes)) }, restProps));
|
|
2037
2091
|
});
|
|
2038
2092
|
Paper.displayName = 'Paper';
|
|
@@ -2185,6 +2239,45 @@ makeStyles(function (theme) { return ({
|
|
|
2185
2239
|
},
|
|
2186
2240
|
}); });
|
|
2187
2241
|
|
|
2242
|
+
makeStyles(function () { return ({
|
|
2243
|
+
root: {
|
|
2244
|
+
display: 'flex',
|
|
2245
|
+
flexDirection: 'column',
|
|
2246
|
+
alignItems: 'center',
|
|
2247
|
+
gridGap: 16,
|
|
2248
|
+
},
|
|
2249
|
+
}); });
|
|
2250
|
+
|
|
2251
|
+
var FollowerAuthenticationDialogContext = createContext(null);
|
|
2252
|
+
FollowerAuthenticationDialogContext.Provider;
|
|
2253
|
+
|
|
2254
|
+
makeStyles(function () { return ({
|
|
2255
|
+
form: {
|
|
2256
|
+
display: 'flex',
|
|
2257
|
+
flexDirection: 'column',
|
|
2258
|
+
alignItems: 'center',
|
|
2259
|
+
width: '100%',
|
|
2260
|
+
gridGap: 16,
|
|
2261
|
+
},
|
|
2262
|
+
}); });
|
|
2263
|
+
|
|
2264
|
+
makeStyles(function () { return ({
|
|
2265
|
+
main: {
|
|
2266
|
+
width: '100%',
|
|
2267
|
+
display: 'flex',
|
|
2268
|
+
flexDirection: 'column',
|
|
2269
|
+
gridGap: 16,
|
|
2270
|
+
},
|
|
2271
|
+
}); });
|
|
2272
|
+
|
|
2273
|
+
makeStyles(function () { return ({
|
|
2274
|
+
root: {
|
|
2275
|
+
position: 'absolute',
|
|
2276
|
+
top: 0,
|
|
2277
|
+
right: 0,
|
|
2278
|
+
},
|
|
2279
|
+
}); });
|
|
2280
|
+
|
|
2188
2281
|
var _g$2B;
|
|
2189
2282
|
|
|
2190
2283
|
function _extends$4J() { _extends$4J = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$4J.apply(this, arguments); }
|
|
@@ -3199,6 +3292,68 @@ createTheme(adminLightOptions);
|
|
|
3199
3292
|
var adminDarkOptions = __assign$1(__assign$1(__assign$1(__assign$1({ themeName: 'Admin Dark', palette: __assign$1(__assign$1(__assign$1({}, basePalette), adminDarkPalette), dataVizPalette), breakpoints: adminThemeBreakpoints, typography: adminThemeTypography, overrides: overrides }, adminDarkPlaceholder), adminThemeZIndex), adminThemeStatus), adminThemeDefaultProps);
|
|
3200
3293
|
createTheme(adminDarkOptions);
|
|
3201
3294
|
|
|
3295
|
+
var Panel = function (props) {
|
|
3296
|
+
var anchorEl = props.anchorEl, onClose = props.onClose;
|
|
3297
|
+
var classes = useStyles$5();
|
|
3298
|
+
var _a = useContext(TableContext), table = _a.table, stagedColumnFilters = _a.stagedColumnFilters, stageFilterSelections = _a.stageFilterSelections;
|
|
3299
|
+
var paperRef = useRef(null);
|
|
3300
|
+
var _b = useColumnFilters(table), columnFilters = _b.columnFilters, resetColumnFilters = _b.resetColumnFilters;
|
|
3301
|
+
var handleClick = function (e) {
|
|
3302
|
+
var _a;
|
|
3303
|
+
var rect = (_a = paperRef.current) === null || _a === void 0 ? void 0 : _a.getBoundingClientRect();
|
|
3304
|
+
if (rect) {
|
|
3305
|
+
var buffer = 10;
|
|
3306
|
+
var mouseX = e.nativeEvent.x;
|
|
3307
|
+
var mouseY = e.nativeEvent.y;
|
|
3308
|
+
var xHit = rect.x - buffer < mouseX && mouseX < rect.x + rect.width + buffer;
|
|
3309
|
+
var yHit = rect.y - buffer < mouseY && mouseY < rect.y + rect.height + buffer;
|
|
3310
|
+
if (!xHit || !yHit) {
|
|
3311
|
+
onClose();
|
|
3312
|
+
}
|
|
3313
|
+
}
|
|
3314
|
+
};
|
|
3315
|
+
var handleApplyClick = function () {
|
|
3316
|
+
if (stagedColumnFilters.exist()) {
|
|
3317
|
+
columnFilters.forEach(function (columnFilter) {
|
|
3318
|
+
var columnInputValue = stagedColumnFilters.get(columnFilter.columnId);
|
|
3319
|
+
if (columnInputValue) {
|
|
3320
|
+
var column = table.getColumn(columnFilter.columnId);
|
|
3321
|
+
column.setFilterValue(columnInputValue);
|
|
3322
|
+
}
|
|
3323
|
+
});
|
|
3324
|
+
}
|
|
3325
|
+
else {
|
|
3326
|
+
resetColumnFilters();
|
|
3327
|
+
}
|
|
3328
|
+
onClose();
|
|
3329
|
+
};
|
|
3330
|
+
var handleCancelClick = function () {
|
|
3331
|
+
stagedColumnFilters.clear();
|
|
3332
|
+
onClose();
|
|
3333
|
+
};
|
|
3334
|
+
var open = Boolean(anchorEl);
|
|
3335
|
+
return (React__default.createElement(Popover, { onClick: handleClick, anchorEl: anchorEl, anchorOrigin: {
|
|
3336
|
+
vertical: 'bottom',
|
|
3337
|
+
horizontal: 'right',
|
|
3338
|
+
}, className: classes.filterPopover, onClose: onClose, open: open, PaperProps: {
|
|
3339
|
+
style: {
|
|
3340
|
+
backgroundColor: 'transparent',
|
|
3341
|
+
boxShadow: 'none',
|
|
3342
|
+
borderRadius: 0,
|
|
3343
|
+
},
|
|
3344
|
+
}, transformOrigin: {
|
|
3345
|
+
vertical: 'top',
|
|
3346
|
+
horizontal: 'right',
|
|
3347
|
+
} },
|
|
3348
|
+
React__default.createElement(Paper$1, { className: classes.filterPopoverContents, elevation: 2 },
|
|
3349
|
+
React__default.createElement(Box, __assign$3({}, { ref: paperRef }, { padding: 3 }),
|
|
3350
|
+
React__default.createElement(Typography$1, { className: classes.menuTitle }, "Filter By"),
|
|
3351
|
+
columnFilters.map(function (columnFilter, i) { return (React__default.createElement(FilterControl, __assign$3({}, columnFilter, { key: i }))); })),
|
|
3352
|
+
stageFilterSelections && (React__default.createElement(Box, { className: classes.buttonBox },
|
|
3353
|
+
React__default.createElement(Button, { variant: "secondary", onClick: handleCancelClick }, "Cancel"),
|
|
3354
|
+
React__default.createElement(Button, { onClick: handleApplyClick }, "Apply"))))));
|
|
3355
|
+
};
|
|
3356
|
+
|
|
3202
3357
|
var useStyles$3 = makeStyles({
|
|
3203
3358
|
root: {
|
|
3204
3359
|
justifySelf: 'end',
|
|
@@ -4033,8 +4188,8 @@ var defaultTableProps = {
|
|
|
4033
4188
|
searchable: false,
|
|
4034
4189
|
};
|
|
4035
4190
|
var Table = function (props) {
|
|
4036
|
-
var title = props.title, data = props.data, columns = props.columns, enableSortingRemoval = props.enableSortingRemoval, loading = props.loading, searchable = props.searchable, sortable = props.sortable, externalFilterState = props.filterState, externalGlobalFilterState = props.globalFilterState, externalPaginationState = props.paginationState, externalSortingState = props.sortingState, externalVisibilityState = props.visibilityState, paginated = props.paginated, pageCount = props.pageCount, GlobalFilterProps = props.GlobalFilterProps, Empty = props.Empty, idBase = props.idBase;
|
|
4037
|
-
var classes = useStyles$
|
|
4191
|
+
var title = props.title, data = props.data, columns = props.columns, enableSortingRemoval = props.enableSortingRemoval, loading = props.loading, searchable = props.searchable, sortable = props.sortable, externalFilterState = props.filterState, externalGlobalFilterState = props.globalFilterState, externalPaginationState = props.paginationState, externalSortingState = props.sortingState, externalVisibilityState = props.visibilityState, paginated = props.paginated, pageCount = props.pageCount, GlobalFilterProps = props.GlobalFilterProps, Empty = props.Empty, idBase = props.idBase, stageFilterSelections = props.stageFilterSelections;
|
|
4192
|
+
var classes = useStyles$6(props);
|
|
4038
4193
|
var rootRef = useRef(null);
|
|
4039
4194
|
// Prepare Empty State
|
|
4040
4195
|
var isEmpty = data.length === 0;
|
|
@@ -4061,6 +4216,8 @@ var Table = function (props) {
|
|
|
4061
4216
|
// Init table instance
|
|
4062
4217
|
var table = useReactTable(__assign$3(__assign$3(__assign$3(__assign$3(__assign$3(__assign$3({ data: data, columns: columns, state: __assign$3(__assign$3(__assign$3(__assign$3(__assign$3({}, (isControlledPagination && { pagination: pagination })), (isControlledGlobalFilter && { globalFilter: globalFilter })), (isControlledColumnFilters && { columnFilters: columnFilters })), (isControlledColumnVisibility && { columnVisibility: columnVisibility })), (isControlledColumnSort && { sorting: sorting })), enableSorting: sortable, enableSortingRemoval: enableSortingRemoval, globalFilterFn: coercedValueIncludesString, getCoreRowModel: getCoreRowModel(), getSortedRowModel: getSortedRowModel(), getFilteredRowModel: getFilteredRowModel() }, (paginated && { getPaginationRowModel: getPaginationRowModel() })), (isControlledPagination && controlledPaginationOptions)), (isControlledGlobalFilter && controlledGlobalFilterOptions)), (isControlledColumnFilters && controlledColumnFiltersOptions)), (isControlledColumnSort && controlledColumnSortOptions)), { meta: { idBase: idBase } }));
|
|
4063
4218
|
var _f = useColumnFilters(table), selectedColumnFilters = _f.selectedColumnFilters, hasColumnFilters = _f.hasColumnFilters, deselectColumnFilter = _f.deselectColumnFilter, formatSelectedFilterText = _f.formatSelectedFilterText, resetColumnFilters = _f.resetColumnFilters;
|
|
4219
|
+
// stagedColumnFilters is only used when stageFilterSelections is enabled
|
|
4220
|
+
var stagedColumnFilters = useStagedColumnFilters();
|
|
4064
4221
|
var handlePagination = function (_e, pageNumber) {
|
|
4065
4222
|
var pageIndex = pageNumber - 1;
|
|
4066
4223
|
table.setPageIndex(pageIndex);
|
|
@@ -4069,7 +4226,7 @@ var Table = function (props) {
|
|
|
4069
4226
|
var showGlobalSearch = Boolean(searchable || isControlledGlobalFilter);
|
|
4070
4227
|
var showColumnFilter = Boolean(hasColumnFilters);
|
|
4071
4228
|
var showControls = Boolean(showTitle || showGlobalSearch || showColumnFilter);
|
|
4072
|
-
return (React__default.createElement(TableContext.Provider, { value: table },
|
|
4229
|
+
return (React__default.createElement(TableContext.Provider, { value: { table: table, stagedColumnFilters: stagedColumnFilters, stageFilterSelections: stageFilterSelections } },
|
|
4073
4230
|
React__default.createElement(Box, __assign$3({ className: classes.root }, { ref: rootRef }, { "data-table-element": "root" }, (table.getPageCount() > 1 && {
|
|
4074
4231
|
minHeight: getTableMinHeight(rootRef, table.getState().pagination.pageSize),
|
|
4075
4232
|
})),
|
|
@@ -4079,8 +4236,18 @@ var Table = function (props) {
|
|
|
4079
4236
|
showGlobalSearch && (React__default.createElement(GlobalFilter, __assign$3({}, GlobalFilterProps, { value: table.getState().globalFilter, setValue: table.setGlobalFilter }))),
|
|
4080
4237
|
showColumnFilter && React__default.createElement(FilterPanel, null)),
|
|
4081
4238
|
React__default.createElement(Box, { display: "flex", flexWrap: "wrap", gridGap: 8 },
|
|
4082
|
-
selectedColumnFilters.map(function (selectedColumnFilter, i) { return (React__default.createElement(ColumnFilterChip, { key: "selected-column-filter-chip-" + i, columnFilter: selectedColumnFilter, label: formatSelectedFilterText(selectedColumnFilter), onClick:
|
|
4083
|
-
|
|
4239
|
+
selectedColumnFilters.map(function (selectedColumnFilter, i) { return (React__default.createElement(ColumnFilterChip, { key: "selected-column-filter-chip-" + i, columnFilter: selectedColumnFilter, label: formatSelectedFilterText(selectedColumnFilter), onClick: function (columnFilter) {
|
|
4240
|
+
if (stageFilterSelections) {
|
|
4241
|
+
stagedColumnFilters.delete(columnFilter);
|
|
4242
|
+
}
|
|
4243
|
+
deselectColumnFilter(columnFilter);
|
|
4244
|
+
} })); }),
|
|
4245
|
+
selectedColumnFilters.length >= 1 && (React__default.createElement(ColumnFilterResetButton, { onClick: function () {
|
|
4246
|
+
if (stageFilterSelections) {
|
|
4247
|
+
stagedColumnFilters.clear();
|
|
4248
|
+
}
|
|
4249
|
+
resetColumnFilters();
|
|
4250
|
+
} }))))),
|
|
4084
4251
|
React__default.createElement(Box, { className: classes.tableContainer, flexGrow: loading || isEmpty ? 0 : 1 },
|
|
4085
4252
|
React__default.createElement("table", { className: classes.table },
|
|
4086
4253
|
React__default.createElement(TableHeader, null, table.getHeaderGroups().map(function (headerGroup) { return (React__default.createElement(TableHeaderRow, { key: headerGroup.id }, headerGroup.headers.map(function (header) { return (React__default.createElement(TableHeaderCell, { key: header.id, context: header.getContext() }, flexRender(header.column.columnDef.header, header.getContext()))); }))); })),
|