@popmenu/table 0.70.0 → 0.72.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/index.js CHANGED
@@ -1264,12 +1264,22 @@ var useStyles$4 = core.makeStyles(function (theme) { return ({
1264
1264
 
1265
1265
  var TableContext = React.createContext({});
1266
1266
 
1267
+ var FilterPanelContext = React.createContext(null);
1268
+ var useFilterPanelContext = function () {
1269
+ var context = React.useContext(FilterPanelContext);
1270
+ if (!context) {
1271
+ throw new Error('useFilterPanelContext has to be used within <FilterPanelContext.Provider>');
1272
+ }
1273
+ return context;
1274
+ };
1275
+
1267
1276
  var SelectFilter = function (props) {
1268
1277
  var _a, _b, _c;
1269
1278
  var options = props.options, columnId = props.columnId, multiple = props.multiple;
1270
1279
  var classes = useStyles$4();
1271
1280
  var table = React.useContext(TableContext);
1272
- var _d = React.useState(false), open = _d[0], setOpen = _d[1];
1281
+ var _d = useFilterPanelContext().anchorState, setAnchorEl = _d[1];
1282
+ var _e = React.useState(false), open = _e[0], setOpen = _e[1];
1273
1283
  var column = table.getColumn(columnId);
1274
1284
  var meta = column.columnDef.meta;
1275
1285
  var filterName = (_a = meta === null || meta === void 0 ? void 0 : meta.filter) === null || _a === void 0 ? void 0 : _a.name;
@@ -1304,6 +1314,7 @@ var SelectFilter = function (props) {
1304
1314
  var handleChange = function (event) {
1305
1315
  event.stopPropagation();
1306
1316
  column.setFilterValue(event.target.value);
1317
+ setAnchorEl(null);
1307
1318
  };
1308
1319
  var handleItemClick = function () {
1309
1320
  if (multiple) {
@@ -3232,7 +3243,7 @@ var FilterPanel = function () {
3232
3243
  var handleClose = function () {
3233
3244
  setAnchorEl(null);
3234
3245
  };
3235
- return (React__default['default'].createElement(React__default['default'].Fragment, null,
3246
+ return (React__default['default'].createElement(FilterPanelContext.Provider, { value: { anchorState: [anchorEl, setAnchorEl] } },
3236
3247
  React__default['default'].createElement(Trigger, { onClick: handleClick }),
3237
3248
  React__default['default'].createElement(Panel, { onClose: handleClose, anchorEl: anchorEl })));
3238
3249
  };
@@ -4040,11 +4051,12 @@ var ColumnFilterResetButton = function (props) {
4040
4051
  var defaultTableProps = {
4041
4052
  enableSortingRemoval: true,
4042
4053
  fullWidth: true,
4054
+ paginated: true,
4043
4055
  sortable: false,
4044
4056
  searchable: false,
4045
4057
  };
4046
4058
  var Table = function (props) {
4047
- 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, pageCount = props.pageCount, GlobalFilterProps = props.GlobalFilterProps, Empty = props.Empty, idBase = props.idBase;
4059
+ 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;
4048
4060
  var classes = useStyles$7(props);
4049
4061
  var rootRef = React.useRef(null);
4050
4062
  // Prepare Empty State
@@ -4070,7 +4082,7 @@ var Table = function (props) {
4070
4082
  var columnVisibility = (externalVisibilityState || [])[0];
4071
4083
  var isControlledColumnVisibility = Boolean(externalVisibilityState);
4072
4084
  // Init table instance
4073
- var table = reactTable.useReactTable(__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(), getPaginationRowModel: reactTable.getPaginationRowModel() }, (isControlledPagination && controlledPaginationOptions)), (isControlledGlobalFilter && controlledGlobalFilterOptions)), (isControlledColumnFilters && controlledColumnFiltersOptions)), (isControlledColumnSort && controlledColumnSortOptions)), { meta: { idBase: idBase } }));
4085
+ 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 } }));
4074
4086
  var _f = useColumnFilters(table), selectedColumnFilters = _f.selectedColumnFilters, hasColumnFilters = _f.hasColumnFilters, deselectColumnFilter = _f.deselectColumnFilter, formatSelectedFilterText = _f.formatSelectedFilterText, resetColumnFilters = _f.resetColumnFilters;
4075
4087
  var handlePagination = function (_e, pageNumber) {
4076
4088
  var pageIndex = pageNumber - 1;
@@ -4099,7 +4111,7 @@ var Table = function (props) {
4099
4111
  isEmpty && isEmptyComponentValid && Empty && !loading && (React__default['default'].createElement(core.Box, { display: "flex", flexDirection: "column", justifyContent: "center", alignItems: "center", p: 2, flexGrow: 1 }, React.createElement(Empty))),
4100
4112
  loading && (React__default['default'].createElement(core.Box, { display: "flex", flexDirection: "column", justifyContent: "center", alignItems: "center", p: 2, flexGrow: 1 },
4101
4113
  React__default['default'].createElement(CircularProgress__default['default'], { size: 80, color: "inherit" }))),
4102
- table.getPageCount() > 1 && (React__default['default'].createElement(TableFooter, null,
4114
+ paginated && table.getPageCount() > 1 && (React__default['default'].createElement(TableFooter, null,
4103
4115
  React__default['default'].createElement(lab.Pagination, { page: table.getState().pagination.pageIndex + 1, count: table.getPageCount(), onChange: handlePagination, disabled: loading }))))));
4104
4116
  };
4105
4117
  Table.defaultProps = defaultTableProps;