@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
package/build/index.js
CHANGED
|
@@ -820,7 +820,7 @@ Link$1.defaultProps = {
|
|
|
820
820
|
};
|
|
821
821
|
Link$1.displayName = 'Link';
|
|
822
822
|
|
|
823
|
-
var useStyles$
|
|
823
|
+
var useStyles$4$2 = core.makeStyles(function (_a) {
|
|
824
824
|
var spacing = _a.spacing;
|
|
825
825
|
return ({
|
|
826
826
|
root: {
|
|
@@ -834,7 +834,7 @@ var useStyles$8 = core.makeStyles(function (_a) {
|
|
|
834
834
|
});
|
|
835
835
|
var Paper$1 = React.forwardRef(function (props, ref) {
|
|
836
836
|
var legacyStyles = props.legacyStyles, restProps = __rest$2(props, ["legacyStyles"]);
|
|
837
|
-
var classes = useStyles$
|
|
837
|
+
var classes = useStyles$4$2(props);
|
|
838
838
|
return React__default['default'].createElement(core.Paper, __assign$2({}, ref, { classes: __assign$2({}, (legacyStyles && classes)) }, restProps));
|
|
839
839
|
});
|
|
840
840
|
Paper$1.displayName = 'Paper';
|
|
@@ -987,6 +987,45 @@ core.makeStyles(function (theme) { return ({
|
|
|
987
987
|
},
|
|
988
988
|
}); });
|
|
989
989
|
|
|
990
|
+
core.makeStyles(function () { return ({
|
|
991
|
+
root: {
|
|
992
|
+
display: 'flex',
|
|
993
|
+
flexDirection: 'column',
|
|
994
|
+
alignItems: 'center',
|
|
995
|
+
gridGap: 16,
|
|
996
|
+
},
|
|
997
|
+
}); });
|
|
998
|
+
|
|
999
|
+
var FollowerAuthenticationDialogContext$1 = React.createContext(null);
|
|
1000
|
+
FollowerAuthenticationDialogContext$1.Provider;
|
|
1001
|
+
|
|
1002
|
+
core.makeStyles(function () { return ({
|
|
1003
|
+
form: {
|
|
1004
|
+
display: 'flex',
|
|
1005
|
+
flexDirection: 'column',
|
|
1006
|
+
alignItems: 'center',
|
|
1007
|
+
width: '100%',
|
|
1008
|
+
gridGap: 16,
|
|
1009
|
+
},
|
|
1010
|
+
}); });
|
|
1011
|
+
|
|
1012
|
+
core.makeStyles(function () { return ({
|
|
1013
|
+
main: {
|
|
1014
|
+
width: '100%',
|
|
1015
|
+
display: 'flex',
|
|
1016
|
+
flexDirection: 'column',
|
|
1017
|
+
gridGap: 16,
|
|
1018
|
+
},
|
|
1019
|
+
}); });
|
|
1020
|
+
|
|
1021
|
+
core.makeStyles(function () { return ({
|
|
1022
|
+
root: {
|
|
1023
|
+
position: 'absolute',
|
|
1024
|
+
top: 0,
|
|
1025
|
+
right: 0,
|
|
1026
|
+
},
|
|
1027
|
+
}); });
|
|
1028
|
+
|
|
990
1029
|
var useTableRowStyles = core.makeStyles(function (theme) { return ({
|
|
991
1030
|
root: function () { return ({
|
|
992
1031
|
'&:nth-child(even)': {
|
|
@@ -1049,7 +1088,7 @@ var TableBody = function (props) {
|
|
|
1049
1088
|
return React__default['default'].createElement("tbody", __assign$3({}, restProps), children);
|
|
1050
1089
|
};
|
|
1051
1090
|
|
|
1052
|
-
var useStyles$
|
|
1091
|
+
var useStyles$6 = core.makeStyles(function (_a) {
|
|
1053
1092
|
var typography = _a.typography;
|
|
1054
1093
|
return ({
|
|
1055
1094
|
root: function (_a) {
|
|
@@ -1080,7 +1119,15 @@ var TableFooter = function (props) {
|
|
|
1080
1119
|
return (React__default['default'].createElement(core.Box, { display: "flex", justifyContent: "center", alignItems: "end", paddingTop: 3, paddingBottom: 4 }, props.children));
|
|
1081
1120
|
};
|
|
1082
1121
|
|
|
1083
|
-
var useStyles$
|
|
1122
|
+
var useStyles$5 = core.makeStyles(function (theme) { return ({
|
|
1123
|
+
buttonBox: {
|
|
1124
|
+
'& > :last-child': {
|
|
1125
|
+
marginLeft: theme.spacing(2),
|
|
1126
|
+
},
|
|
1127
|
+
display: 'flex',
|
|
1128
|
+
justifyContent: 'flex-end',
|
|
1129
|
+
padding: "0px " + theme.spacing(3) + "px " + theme.spacing(3) + "px " + theme.spacing(3) + "px",
|
|
1130
|
+
},
|
|
1084
1131
|
buttonLabel: {
|
|
1085
1132
|
fontWeight: 400,
|
|
1086
1133
|
},
|
|
@@ -1126,55 +1173,55 @@ var useStyles$6 = core.makeStyles(function (theme) { return ({
|
|
|
1126
1173
|
},
|
|
1127
1174
|
}); });
|
|
1128
1175
|
|
|
1129
|
-
var _path$
|
|
1176
|
+
var _path$2p;
|
|
1130
1177
|
|
|
1131
|
-
function _extends$
|
|
1178
|
+
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); }
|
|
1132
1179
|
|
|
1133
1180
|
function SvgChevronDown(props) {
|
|
1134
|
-
return /*#__PURE__*/React__namespace.createElement("svg", _extends$
|
|
1181
|
+
return /*#__PURE__*/React__namespace.createElement("svg", _extends$5p({
|
|
1135
1182
|
viewBox: "0 0 16 16",
|
|
1136
1183
|
fill: "none",
|
|
1137
1184
|
strokeLinecap: "round",
|
|
1138
1185
|
strokeLinejoin: "round",
|
|
1139
1186
|
width: "1em",
|
|
1140
1187
|
height: "1em"
|
|
1141
|
-
}, props), _path$
|
|
1188
|
+
}, props), _path$2p || (_path$2p = /*#__PURE__*/React__namespace.createElement("path", {
|
|
1142
1189
|
d: "M4 6l4 4 4-4",
|
|
1143
1190
|
stroke: "currentColor"
|
|
1144
1191
|
})));
|
|
1145
1192
|
}
|
|
1146
1193
|
|
|
1147
|
-
var _path$
|
|
1194
|
+
var _path$2o;
|
|
1148
1195
|
|
|
1149
|
-
function _extends$
|
|
1196
|
+
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); }
|
|
1150
1197
|
|
|
1151
1198
|
function SvgChevronUp(props) {
|
|
1152
|
-
return /*#__PURE__*/React__namespace.createElement("svg", _extends$
|
|
1199
|
+
return /*#__PURE__*/React__namespace.createElement("svg", _extends$5o({
|
|
1153
1200
|
viewBox: "0 0 16 16",
|
|
1154
1201
|
fill: "none",
|
|
1155
1202
|
strokeLinecap: "round",
|
|
1156
1203
|
strokeLinejoin: "round",
|
|
1157
1204
|
width: "1em",
|
|
1158
1205
|
height: "1em"
|
|
1159
|
-
}, props), _path$
|
|
1206
|
+
}, props), _path$2o || (_path$2o = /*#__PURE__*/React__namespace.createElement("path", {
|
|
1160
1207
|
d: "M12 10L8 6l-4 4",
|
|
1161
1208
|
stroke: "currentColor"
|
|
1162
1209
|
})));
|
|
1163
1210
|
}
|
|
1164
1211
|
|
|
1165
|
-
var _path$
|
|
1212
|
+
var _path$2f;
|
|
1166
1213
|
|
|
1167
|
-
function _extends$
|
|
1214
|
+
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); }
|
|
1168
1215
|
|
|
1169
1216
|
function SvgSort(props) {
|
|
1170
|
-
return /*#__PURE__*/React__namespace.createElement("svg", _extends$
|
|
1217
|
+
return /*#__PURE__*/React__namespace.createElement("svg", _extends$58({
|
|
1171
1218
|
viewBox: "0 0 16 16",
|
|
1172
1219
|
fill: "none",
|
|
1173
1220
|
strokeLinecap: "round",
|
|
1174
1221
|
strokeLinejoin: "round",
|
|
1175
1222
|
width: "1em",
|
|
1176
1223
|
height: "1em"
|
|
1177
|
-
}, props), _path$
|
|
1224
|
+
}, props), _path$2f || (_path$2f = /*#__PURE__*/React__namespace.createElement("path", {
|
|
1178
1225
|
d: "M11.333 6L8 2.667 4.667 6m6.666 4L8 13.334 4.667 10",
|
|
1179
1226
|
stroke: "currentColor"
|
|
1180
1227
|
})));
|
|
@@ -1268,30 +1315,36 @@ var SelectFilter = function (props) {
|
|
|
1268
1315
|
var _a, _b, _c;
|
|
1269
1316
|
var options = props.options, columnId = props.columnId, multiple = props.multiple;
|
|
1270
1317
|
var classes = useStyles$4();
|
|
1271
|
-
var
|
|
1272
|
-
var _d = useFilterPanelContext().anchorState, setAnchorEl = _d[1];
|
|
1318
|
+
var _d = React.useContext(TableContext), table = _d.table, stagedColumnFilters = _d.stagedColumnFilters, stageFilterSelections = _d.stageFilterSelections;
|
|
1273
1319
|
var _e = React.useState(false), open = _e[0], setOpen = _e[1];
|
|
1320
|
+
var _f = useFilterPanelContext().anchorState, setAnchorEl = _f[1];
|
|
1274
1321
|
var column = table.getColumn(columnId);
|
|
1275
1322
|
var meta = column.columnDef.meta;
|
|
1276
1323
|
var filterName = (_a = meta === null || meta === void 0 ? void 0 : meta.filter) === null || _a === void 0 ? void 0 : _a.name;
|
|
1277
|
-
var value =
|
|
1324
|
+
var value = '';
|
|
1325
|
+
if (stageFilterSelections) {
|
|
1326
|
+
value = stagedColumnFilters.get(columnId);
|
|
1327
|
+
}
|
|
1328
|
+
else {
|
|
1329
|
+
value = column.getFilterValue();
|
|
1330
|
+
}
|
|
1278
1331
|
var fallbackValue = multiple ? [] : '';
|
|
1279
1332
|
var filteredOptions = options.map(function (option) {
|
|
1280
1333
|
if (Array.isArray(value)) {
|
|
1281
1334
|
if (value.includes(option.value)) {
|
|
1282
|
-
return __assign$3(__assign$3({}, option), { hide:
|
|
1335
|
+
return __assign$3(__assign$3({}, option), { hide: !stageFilterSelections });
|
|
1283
1336
|
}
|
|
1284
1337
|
}
|
|
1285
1338
|
if (typeof value === 'string' || typeof value === 'number') {
|
|
1286
1339
|
if (value === option.value) {
|
|
1287
|
-
return __assign$3(__assign$3({}, option), { hide:
|
|
1340
|
+
return __assign$3(__assign$3({}, option), { hide: !stageFilterSelections });
|
|
1288
1341
|
}
|
|
1289
1342
|
}
|
|
1290
1343
|
return __assign$3(__assign$3({}, option), { hide: false });
|
|
1291
1344
|
});
|
|
1292
1345
|
var filteredOptionsCount = filteredOptions.filter(function (option) { return !(option === null || option === void 0 ? void 0 : option.hide); }).length;
|
|
1293
1346
|
var renderedValue = '';
|
|
1294
|
-
if (value && filteredOptions && filteredOptionsCount > 0) {
|
|
1347
|
+
if (!stageFilterSelections && value && filteredOptions && filteredOptionsCount > 0) {
|
|
1295
1348
|
if (typeof value === 'string' || typeof value === 'number') {
|
|
1296
1349
|
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;
|
|
1297
1350
|
}
|
|
@@ -1304,12 +1357,20 @@ var SelectFilter = function (props) {
|
|
|
1304
1357
|
}
|
|
1305
1358
|
var handleChange = function (event) {
|
|
1306
1359
|
event.stopPropagation();
|
|
1307
|
-
|
|
1308
|
-
|
|
1360
|
+
if (stageFilterSelections) {
|
|
1361
|
+
stagedColumnFilters.update(columnId, event.target.value);
|
|
1362
|
+
}
|
|
1363
|
+
else {
|
|
1364
|
+
column.setFilterValue(event.target.value);
|
|
1365
|
+
setAnchorEl(null);
|
|
1366
|
+
}
|
|
1309
1367
|
};
|
|
1310
1368
|
var handleItemClick = function () {
|
|
1311
1369
|
if (multiple) {
|
|
1312
|
-
if (filteredOptionsCount === 1) {
|
|
1370
|
+
if (!stageFilterSelections && filteredOptionsCount === 1) {
|
|
1371
|
+
setOpen(false);
|
|
1372
|
+
}
|
|
1373
|
+
else {
|
|
1313
1374
|
setOpen(false);
|
|
1314
1375
|
}
|
|
1315
1376
|
}
|
|
@@ -1317,7 +1378,7 @@ var SelectFilter = function (props) {
|
|
|
1317
1378
|
return (React__default['default'].createElement(core.Box, { className: classes.selectContainer },
|
|
1318
1379
|
React__default['default'].createElement(core.FormControl, { variant: "outlined", fullWidth: true },
|
|
1319
1380
|
React__default['default'].createElement(core.InputLabel, { id: "select-filter-label-" + filterName }, filterName || 'filter'),
|
|
1320
|
-
React__default['default'].createElement(core.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['default'].createElement(Typography$1, null, renderedValue); }, label: filterName || 'filter', labelId: "select-filter-label-" + filterName, disabled: !filteredOptionsCount, IconComponent: SvgChevronDown, onChange: handleChange, fullWidth: true, classes: {
|
|
1381
|
+
React__default['default'].createElement(core.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['default'].createElement(Typography$1, null, renderedValue); }, label: filterName || 'filter', labelId: "select-filter-label-" + filterName, disabled: !filteredOptionsCount, IconComponent: SvgChevronDown, onChange: handleChange, fullWidth: true, classes: {
|
|
1321
1382
|
root: classes.selectRoot,
|
|
1322
1383
|
icon: classes.icon,
|
|
1323
1384
|
}, MenuProps: {
|
|
@@ -1337,7 +1398,7 @@ var SelectFilter = function (props) {
|
|
|
1337
1398
|
};
|
|
1338
1399
|
|
|
1339
1400
|
var ToggleFilter = function (props) {
|
|
1340
|
-
var table = React.useContext(TableContext);
|
|
1401
|
+
var table = React.useContext(TableContext).table;
|
|
1341
1402
|
var columnId = props.columnId;
|
|
1342
1403
|
var column = table.getColumn(columnId);
|
|
1343
1404
|
var meta = column.columnDef.meta;
|
|
@@ -1435,44 +1496,37 @@ function makeFormatSelectedFilterText(table) {
|
|
|
1435
1496
|
};
|
|
1436
1497
|
}
|
|
1437
1498
|
|
|
1438
|
-
var
|
|
1439
|
-
var
|
|
1440
|
-
var
|
|
1441
|
-
|
|
1442
|
-
|
|
1443
|
-
|
|
1444
|
-
|
|
1445
|
-
|
|
1446
|
-
|
|
1447
|
-
|
|
1448
|
-
|
|
1449
|
-
|
|
1450
|
-
var
|
|
1451
|
-
|
|
1452
|
-
|
|
1453
|
-
|
|
1454
|
-
|
|
1499
|
+
var useStagedColumnFilters = function () {
|
|
1500
|
+
var _a = React.useState(new Map()), columnInputValues = _a[0], setColumnInputValues = _a[1];
|
|
1501
|
+
var filterState = {
|
|
1502
|
+
update: function (columnId, value) {
|
|
1503
|
+
return setColumnInputValues(columnInputValues.set(columnId, value));
|
|
1504
|
+
},
|
|
1505
|
+
get: function (columnId) { return columnInputValues.get(columnId); },
|
|
1506
|
+
clear: function () {
|
|
1507
|
+
columnInputValues.clear();
|
|
1508
|
+
setColumnInputValues(columnInputValues);
|
|
1509
|
+
},
|
|
1510
|
+
delete: function (columnFilter) {
|
|
1511
|
+
var values = columnInputValues.get(columnFilter.id);
|
|
1512
|
+
if (values && Array.isArray(values)) {
|
|
1513
|
+
var valueIndex = values.indexOf(columnFilter.value);
|
|
1514
|
+
values.splice(valueIndex, 1);
|
|
1515
|
+
if (values.length > 0) {
|
|
1516
|
+
columnInputValues.set(columnFilter.id, values);
|
|
1517
|
+
}
|
|
1518
|
+
else {
|
|
1519
|
+
columnInputValues.clear();
|
|
1520
|
+
}
|
|
1455
1521
|
}
|
|
1456
|
-
|
|
1522
|
+
else {
|
|
1523
|
+
columnInputValues.delete(columnFilter.id);
|
|
1524
|
+
}
|
|
1525
|
+
setColumnInputValues(columnInputValues);
|
|
1526
|
+
},
|
|
1527
|
+
exist: function () { return columnInputValues.size > 0; },
|
|
1457
1528
|
};
|
|
1458
|
-
|
|
1459
|
-
return (React__default['default'].createElement(core.Popover, { onClick: handleClick, anchorEl: anchorEl, anchorOrigin: {
|
|
1460
|
-
vertical: 'bottom',
|
|
1461
|
-
horizontal: 'right',
|
|
1462
|
-
}, className: classes.filterPopover, onClose: onClose, open: open, PaperProps: {
|
|
1463
|
-
style: {
|
|
1464
|
-
backgroundColor: 'transparent',
|
|
1465
|
-
boxShadow: 'none',
|
|
1466
|
-
borderRadius: 0,
|
|
1467
|
-
},
|
|
1468
|
-
}, transformOrigin: {
|
|
1469
|
-
vertical: 'top',
|
|
1470
|
-
horizontal: 'right',
|
|
1471
|
-
} },
|
|
1472
|
-
React__default['default'].createElement(Paper$1, { className: classes.filterPopoverContents, elevation: 2 },
|
|
1473
|
-
React__default['default'].createElement(core.Box, __assign$3({}, { ref: paperRef }, { padding: 3 }),
|
|
1474
|
-
React__default['default'].createElement(Typography$1, { className: classes.menuTitle }, "Filter By"),
|
|
1475
|
-
columnFilters.map(function (columnFilter, i) { return (React__default['default'].createElement(FilterControl, __assign$3({}, columnFilter, { key: i }))); })))));
|
|
1529
|
+
return filterState;
|
|
1476
1530
|
};
|
|
1477
1531
|
|
|
1478
1532
|
/*! *****************************************************************************
|
|
@@ -2067,7 +2121,7 @@ Link.defaultProps = {
|
|
|
2067
2121
|
};
|
|
2068
2122
|
Link.displayName = 'Link';
|
|
2069
2123
|
|
|
2070
|
-
var useStyles$
|
|
2124
|
+
var useStyles$4$1 = core.makeStyles(function (_a) {
|
|
2071
2125
|
var spacing = _a.spacing;
|
|
2072
2126
|
return ({
|
|
2073
2127
|
root: {
|
|
@@ -2081,7 +2135,7 @@ var useStyles$5 = core.makeStyles(function (_a) {
|
|
|
2081
2135
|
});
|
|
2082
2136
|
var Paper = React.forwardRef(function (props, ref) {
|
|
2083
2137
|
var legacyStyles = props.legacyStyles, restProps = __rest(props, ["legacyStyles"]);
|
|
2084
|
-
var classes = useStyles$
|
|
2138
|
+
var classes = useStyles$4$1(props);
|
|
2085
2139
|
return React__default['default'].createElement(core.Paper, __assign({}, ref, { classes: __assign({}, (legacyStyles && classes)) }, restProps));
|
|
2086
2140
|
});
|
|
2087
2141
|
Paper.displayName = 'Paper';
|
|
@@ -2234,6 +2288,45 @@ core.makeStyles(function (theme) { return ({
|
|
|
2234
2288
|
},
|
|
2235
2289
|
}); });
|
|
2236
2290
|
|
|
2291
|
+
core.makeStyles(function () { return ({
|
|
2292
|
+
root: {
|
|
2293
|
+
display: 'flex',
|
|
2294
|
+
flexDirection: 'column',
|
|
2295
|
+
alignItems: 'center',
|
|
2296
|
+
gridGap: 16,
|
|
2297
|
+
},
|
|
2298
|
+
}); });
|
|
2299
|
+
|
|
2300
|
+
var FollowerAuthenticationDialogContext = React.createContext(null);
|
|
2301
|
+
FollowerAuthenticationDialogContext.Provider;
|
|
2302
|
+
|
|
2303
|
+
core.makeStyles(function () { return ({
|
|
2304
|
+
form: {
|
|
2305
|
+
display: 'flex',
|
|
2306
|
+
flexDirection: 'column',
|
|
2307
|
+
alignItems: 'center',
|
|
2308
|
+
width: '100%',
|
|
2309
|
+
gridGap: 16,
|
|
2310
|
+
},
|
|
2311
|
+
}); });
|
|
2312
|
+
|
|
2313
|
+
core.makeStyles(function () { return ({
|
|
2314
|
+
main: {
|
|
2315
|
+
width: '100%',
|
|
2316
|
+
display: 'flex',
|
|
2317
|
+
flexDirection: 'column',
|
|
2318
|
+
gridGap: 16,
|
|
2319
|
+
},
|
|
2320
|
+
}); });
|
|
2321
|
+
|
|
2322
|
+
core.makeStyles(function () { return ({
|
|
2323
|
+
root: {
|
|
2324
|
+
position: 'absolute',
|
|
2325
|
+
top: 0,
|
|
2326
|
+
right: 0,
|
|
2327
|
+
},
|
|
2328
|
+
}); });
|
|
2329
|
+
|
|
2237
2330
|
var _g$2B;
|
|
2238
2331
|
|
|
2239
2332
|
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); }
|
|
@@ -3248,6 +3341,68 @@ createTheme__default['default'](adminLightOptions);
|
|
|
3248
3341
|
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);
|
|
3249
3342
|
createTheme__default['default'](adminDarkOptions);
|
|
3250
3343
|
|
|
3344
|
+
var Panel = function (props) {
|
|
3345
|
+
var anchorEl = props.anchorEl, onClose = props.onClose;
|
|
3346
|
+
var classes = useStyles$5();
|
|
3347
|
+
var _a = React.useContext(TableContext), table = _a.table, stagedColumnFilters = _a.stagedColumnFilters, stageFilterSelections = _a.stageFilterSelections;
|
|
3348
|
+
var paperRef = React.useRef(null);
|
|
3349
|
+
var _b = useColumnFilters(table), columnFilters = _b.columnFilters, resetColumnFilters = _b.resetColumnFilters;
|
|
3350
|
+
var handleClick = function (e) {
|
|
3351
|
+
var _a;
|
|
3352
|
+
var rect = (_a = paperRef.current) === null || _a === void 0 ? void 0 : _a.getBoundingClientRect();
|
|
3353
|
+
if (rect) {
|
|
3354
|
+
var buffer = 10;
|
|
3355
|
+
var mouseX = e.nativeEvent.x;
|
|
3356
|
+
var mouseY = e.nativeEvent.y;
|
|
3357
|
+
var xHit = rect.x - buffer < mouseX && mouseX < rect.x + rect.width + buffer;
|
|
3358
|
+
var yHit = rect.y - buffer < mouseY && mouseY < rect.y + rect.height + buffer;
|
|
3359
|
+
if (!xHit || !yHit) {
|
|
3360
|
+
onClose();
|
|
3361
|
+
}
|
|
3362
|
+
}
|
|
3363
|
+
};
|
|
3364
|
+
var handleApplyClick = function () {
|
|
3365
|
+
if (stagedColumnFilters.exist()) {
|
|
3366
|
+
columnFilters.forEach(function (columnFilter) {
|
|
3367
|
+
var columnInputValue = stagedColumnFilters.get(columnFilter.columnId);
|
|
3368
|
+
if (columnInputValue) {
|
|
3369
|
+
var column = table.getColumn(columnFilter.columnId);
|
|
3370
|
+
column.setFilterValue(columnInputValue);
|
|
3371
|
+
}
|
|
3372
|
+
});
|
|
3373
|
+
}
|
|
3374
|
+
else {
|
|
3375
|
+
resetColumnFilters();
|
|
3376
|
+
}
|
|
3377
|
+
onClose();
|
|
3378
|
+
};
|
|
3379
|
+
var handleCancelClick = function () {
|
|
3380
|
+
stagedColumnFilters.clear();
|
|
3381
|
+
onClose();
|
|
3382
|
+
};
|
|
3383
|
+
var open = Boolean(anchorEl);
|
|
3384
|
+
return (React__default['default'].createElement(core.Popover, { onClick: handleClick, anchorEl: anchorEl, anchorOrigin: {
|
|
3385
|
+
vertical: 'bottom',
|
|
3386
|
+
horizontal: 'right',
|
|
3387
|
+
}, className: classes.filterPopover, onClose: onClose, open: open, PaperProps: {
|
|
3388
|
+
style: {
|
|
3389
|
+
backgroundColor: 'transparent',
|
|
3390
|
+
boxShadow: 'none',
|
|
3391
|
+
borderRadius: 0,
|
|
3392
|
+
},
|
|
3393
|
+
}, transformOrigin: {
|
|
3394
|
+
vertical: 'top',
|
|
3395
|
+
horizontal: 'right',
|
|
3396
|
+
} },
|
|
3397
|
+
React__default['default'].createElement(Paper$1, { className: classes.filterPopoverContents, elevation: 2 },
|
|
3398
|
+
React__default['default'].createElement(core.Box, __assign$3({}, { ref: paperRef }, { padding: 3 }),
|
|
3399
|
+
React__default['default'].createElement(Typography$1, { className: classes.menuTitle }, "Filter By"),
|
|
3400
|
+
columnFilters.map(function (columnFilter, i) { return (React__default['default'].createElement(FilterControl, __assign$3({}, columnFilter, { key: i }))); })),
|
|
3401
|
+
stageFilterSelections && (React__default['default'].createElement(core.Box, { className: classes.buttonBox },
|
|
3402
|
+
React__default['default'].createElement(Button, { variant: "secondary", onClick: handleCancelClick }, "Cancel"),
|
|
3403
|
+
React__default['default'].createElement(Button, { onClick: handleApplyClick }, "Apply"))))));
|
|
3404
|
+
};
|
|
3405
|
+
|
|
3251
3406
|
var useStyles$3 = core.makeStyles({
|
|
3252
3407
|
root: {
|
|
3253
3408
|
justifySelf: 'end',
|
|
@@ -4082,8 +4237,8 @@ var defaultTableProps = {
|
|
|
4082
4237
|
searchable: false,
|
|
4083
4238
|
};
|
|
4084
4239
|
var Table = function (props) {
|
|
4085
|
-
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;
|
|
4086
|
-
var classes = useStyles$
|
|
4240
|
+
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;
|
|
4241
|
+
var classes = useStyles$6(props);
|
|
4087
4242
|
var rootRef = React.useRef(null);
|
|
4088
4243
|
// Prepare Empty State
|
|
4089
4244
|
var isEmpty = data.length === 0;
|
|
@@ -4110,6 +4265,8 @@ var Table = function (props) {
|
|
|
4110
4265
|
// Init table instance
|
|
4111
4266
|
var table = reactTable.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: reactTable.getCoreRowModel(), getSortedRowModel: reactTable.getSortedRowModel(), getFilteredRowModel: reactTable.getFilteredRowModel() }, (paginated && { getPaginationRowModel: reactTable.getPaginationRowModel() })), (isControlledPagination && controlledPaginationOptions)), (isControlledGlobalFilter && controlledGlobalFilterOptions)), (isControlledColumnFilters && controlledColumnFiltersOptions)), (isControlledColumnSort && controlledColumnSortOptions)), { meta: { idBase: idBase } }));
|
|
4112
4267
|
var _f = useColumnFilters(table), selectedColumnFilters = _f.selectedColumnFilters, hasColumnFilters = _f.hasColumnFilters, deselectColumnFilter = _f.deselectColumnFilter, formatSelectedFilterText = _f.formatSelectedFilterText, resetColumnFilters = _f.resetColumnFilters;
|
|
4268
|
+
// stagedColumnFilters is only used when stageFilterSelections is enabled
|
|
4269
|
+
var stagedColumnFilters = useStagedColumnFilters();
|
|
4113
4270
|
var handlePagination = function (_e, pageNumber) {
|
|
4114
4271
|
var pageIndex = pageNumber - 1;
|
|
4115
4272
|
table.setPageIndex(pageIndex);
|
|
@@ -4118,7 +4275,7 @@ var Table = function (props) {
|
|
|
4118
4275
|
var showGlobalSearch = Boolean(searchable || isControlledGlobalFilter);
|
|
4119
4276
|
var showColumnFilter = Boolean(hasColumnFilters);
|
|
4120
4277
|
var showControls = Boolean(showTitle || showGlobalSearch || showColumnFilter);
|
|
4121
|
-
return (React__default['default'].createElement(TableContext.Provider, { value: table },
|
|
4278
|
+
return (React__default['default'].createElement(TableContext.Provider, { value: { table: table, stagedColumnFilters: stagedColumnFilters, stageFilterSelections: stageFilterSelections } },
|
|
4122
4279
|
React__default['default'].createElement(core.Box, __assign$3({ className: classes.root }, { ref: rootRef }, { "data-table-element": "root" }, (table.getPageCount() > 1 && {
|
|
4123
4280
|
minHeight: getTableMinHeight(rootRef, table.getState().pagination.pageSize),
|
|
4124
4281
|
})),
|
|
@@ -4128,8 +4285,18 @@ var Table = function (props) {
|
|
|
4128
4285
|
showGlobalSearch && (React__default['default'].createElement(GlobalFilter, __assign$3({}, GlobalFilterProps, { value: table.getState().globalFilter, setValue: table.setGlobalFilter }))),
|
|
4129
4286
|
showColumnFilter && React__default['default'].createElement(FilterPanel, null)),
|
|
4130
4287
|
React__default['default'].createElement(core.Box, { display: "flex", flexWrap: "wrap", gridGap: 8 },
|
|
4131
|
-
selectedColumnFilters.map(function (selectedColumnFilter, i) { return (React__default['default'].createElement(ColumnFilterChip, { key: "selected-column-filter-chip-" + i, columnFilter: selectedColumnFilter, label: formatSelectedFilterText(selectedColumnFilter), onClick:
|
|
4132
|
-
|
|
4288
|
+
selectedColumnFilters.map(function (selectedColumnFilter, i) { return (React__default['default'].createElement(ColumnFilterChip, { key: "selected-column-filter-chip-" + i, columnFilter: selectedColumnFilter, label: formatSelectedFilterText(selectedColumnFilter), onClick: function (columnFilter) {
|
|
4289
|
+
if (stageFilterSelections) {
|
|
4290
|
+
stagedColumnFilters.delete(columnFilter);
|
|
4291
|
+
}
|
|
4292
|
+
deselectColumnFilter(columnFilter);
|
|
4293
|
+
} })); }),
|
|
4294
|
+
selectedColumnFilters.length >= 1 && (React__default['default'].createElement(ColumnFilterResetButton, { onClick: function () {
|
|
4295
|
+
if (stageFilterSelections) {
|
|
4296
|
+
stagedColumnFilters.clear();
|
|
4297
|
+
}
|
|
4298
|
+
resetColumnFilters();
|
|
4299
|
+
} }))))),
|
|
4133
4300
|
React__default['default'].createElement(core.Box, { className: classes.tableContainer, flexGrow: loading || isEmpty ? 0 : 1 },
|
|
4134
4301
|
React__default['default'].createElement("table", { className: classes.table },
|
|
4135
4302
|
React__default['default'].createElement(TableHeader, null, table.getHeaderGroups().map(function (headerGroup) { return (React__default['default'].createElement(TableHeaderRow, { key: headerGroup.id }, headerGroup.headers.map(function (header) { return (React__default['default'].createElement(TableHeaderCell, { key: header.id, context: header.getContext() }, reactTable.flexRender(header.column.columnDef.header, header.getContext()))); }))); })),
|