@popmenu/table 0.47.0 → 0.47.3
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 +3 -0
- package/build/index.es.js +14 -15
- package/build/index.es.js.map +1 -1
- package/build/index.js +14 -15
- package/build/index.js.map +1 -1
- package/package.json +2 -2
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { TextFieldProps } from '@material-ui/core';
|
|
1
2
|
import { Column, ColumnFiltersState, PaginationState } from '@tanstack/react-table';
|
|
2
3
|
import { Dispatch, SetStateAction } from 'react';
|
|
3
4
|
export interface ColumnFilter {
|
|
@@ -21,6 +22,8 @@ export interface TableProps<T = unknown> {
|
|
|
21
22
|
paginationState?: [PaginationState, Dispatch<SetStateAction<PaginationState>>];
|
|
22
23
|
/** GlobalFiltering state. Expects the result of a React useState hook. Used only for manual filtering. */
|
|
23
24
|
globalFilterState?: [string, Dispatch<SetStateAction<string>>];
|
|
25
|
+
/** Props applied to the TextField for global filtering. */
|
|
26
|
+
GlobalFilterProps?: TextFieldProps;
|
|
24
27
|
/** Filtering state. Expects the result of a React useState hook. Used only for manual filtering. */
|
|
25
28
|
filterState?: [ColumnFiltersState, Dispatch<SetStateAction<Array<ColumnFilter>>>];
|
|
26
29
|
/** Filtering state. Expects the result of a React useState hook. Used only for manual filtering. */
|
package/build/index.es.js
CHANGED
|
@@ -963,7 +963,6 @@ var getTableMinHeight = function (rootRef, pageSize) {
|
|
|
963
963
|
var defaultBodyRowHeight = 56;
|
|
964
964
|
var defaultHeaderRowHeight = 57;
|
|
965
965
|
var defaultFooterHeight = 88;
|
|
966
|
-
var borderOffset = 1;
|
|
967
966
|
var minHeight = defaultBodyRowHeight * pageSize + defaultHeaderRowHeight + defaultFooterHeight;
|
|
968
967
|
if (rootRef === null || rootRef === void 0 ? void 0 : rootRef.current) {
|
|
969
968
|
var rootTableNode = rootRef.current;
|
|
@@ -971,9 +970,8 @@ var getTableMinHeight = function (rootRef, pageSize) {
|
|
|
971
970
|
var bodyRowNode = rootTableNode.querySelector("[data-table-element=\"body-row\"]");
|
|
972
971
|
if (headerRowNode && bodyRowNode) {
|
|
973
972
|
var headerRowHeight = headerRowNode.getBoundingClientRect().height;
|
|
974
|
-
var
|
|
975
|
-
|
|
976
|
-
minHeight = headerRowHeight + firstBodyRowHeight + restBodyRowHeight * (pageSize - 1) + defaultFooterHeight;
|
|
973
|
+
var bodyRowHeight = bodyRowNode.getBoundingClientRect().height;
|
|
974
|
+
minHeight = headerRowHeight + bodyRowHeight * pageSize + defaultFooterHeight;
|
|
977
975
|
}
|
|
978
976
|
}
|
|
979
977
|
return minHeight;
|
|
@@ -3128,16 +3126,14 @@ var useStyles$1 = makeStyles({
|
|
|
3128
3126
|
|
|
3129
3127
|
var GlobalFilter = function (props) {
|
|
3130
3128
|
var value = props.value, setValue = props.setValue, restProps = __rest$3(props, ["value", "setValue"]);
|
|
3131
|
-
var onChange = restProps.onChange, InputProps = restProps.InputProps, cleanRestProps = __rest$3(restProps, ["onChange", "InputProps"]);
|
|
3132
3129
|
var classes = useStyles$1();
|
|
3133
3130
|
var handleChange = function (e) {
|
|
3134
3131
|
setValue(e.target.value);
|
|
3135
|
-
if (onChange) {
|
|
3136
|
-
onChange(e);
|
|
3137
|
-
}
|
|
3138
3132
|
};
|
|
3139
|
-
return (React__default.createElement(TextField, __assign$3({ className: classes.root, variant: "outlined", value: value, onChange: handleChange, InputProps:
|
|
3140
|
-
|
|
3133
|
+
return (React__default.createElement(TextField, __assign$3({ className: classes.root, variant: "outlined", value: value, onChange: handleChange, InputProps: {
|
|
3134
|
+
startAdornment: (React__default.createElement(InputAdornment, { position: "start" },
|
|
3135
|
+
React__default.createElement(Icon$1, { icon: SvgSearch }))),
|
|
3136
|
+
} }, restProps)));
|
|
3141
3137
|
};
|
|
3142
3138
|
|
|
3143
3139
|
var TableHeaderRow = function (props) {
|
|
@@ -3220,7 +3216,7 @@ var defaultTableProps = {
|
|
|
3220
3216
|
searchable: false,
|
|
3221
3217
|
};
|
|
3222
3218
|
var Table = function (props) {
|
|
3223
|
-
var data = props.data, columns = props.columns, loading = props.loading, searchable = props.searchable, sortable = props.sortable, externalFilterState = props.filterState, externalGlobalFilterState = props.globalFilterState, externalPaginationState = props.paginationState, externalVisibilityState = props.visibilityState, pageCount = props.pageCount, Empty = props.Empty;
|
|
3219
|
+
var data = props.data, columns = props.columns, loading = props.loading, searchable = props.searchable, sortable = props.sortable, externalFilterState = props.filterState, externalGlobalFilterState = props.globalFilterState, externalPaginationState = props.paginationState, externalVisibilityState = props.visibilityState, pageCount = props.pageCount, GlobalFilterProps = props.GlobalFilterProps, Empty = props.Empty;
|
|
3224
3220
|
var classes = useStyles$6(props);
|
|
3225
3221
|
var rootRef = useRef(null);
|
|
3226
3222
|
// Prepare Empty State
|
|
@@ -3250,15 +3246,18 @@ var Table = function (props) {
|
|
|
3250
3246
|
var pageIndex = pageNumber - 1;
|
|
3251
3247
|
table.setPageIndex(pageIndex);
|
|
3252
3248
|
};
|
|
3249
|
+
var showControls = searchable || isControlledGlobalFilter || hasColumnFilters;
|
|
3253
3250
|
return (React__default.createElement(TableContext.Provider, { value: table },
|
|
3254
|
-
React__default.createElement(Box, __assign$3({ className: classes.root }, { ref: rootRef }, { "data-table-element": "root",
|
|
3255
|
-
|
|
3251
|
+
React__default.createElement(Box, __assign$3({ className: classes.root }, { ref: rootRef }, { "data-table-element": "root" }, (table.getPageCount() > 1 && {
|
|
3252
|
+
minHeight: getTableMinHeight(rootRef, table.getState().pagination.pageSize),
|
|
3253
|
+
})),
|
|
3254
|
+
showControls && (React__default.createElement(Box, null,
|
|
3256
3255
|
React__default.createElement(Box, { display: "grid", gridAutoFlow: "column", marginBottom: 3 },
|
|
3257
|
-
(searchable || isControlledGlobalFilter) && (React__default.createElement(GlobalFilter, { value: table.getState().globalFilter, setValue: table.setGlobalFilter })),
|
|
3256
|
+
(searchable || isControlledGlobalFilter) && (React__default.createElement(GlobalFilter, __assign$3({}, GlobalFilterProps, { value: table.getState().globalFilter, setValue: table.setGlobalFilter }))),
|
|
3258
3257
|
hasColumnFilters && React__default.createElement(FilterPanel, null)),
|
|
3259
3258
|
React__default.createElement(Box, { display: "flex", flexWrap: "wrap", gridGap: 8 },
|
|
3260
3259
|
selectedColumnFilters.map(function (selectedColumnFilter, i) { return (React__default.createElement(ColumnFilterChip, { key: "selected-column-filter-chip-" + i, columnFilter: selectedColumnFilter, label: formatSelectedFilterText(selectedColumnFilter), onClick: deselectColumnFilter })); }),
|
|
3261
|
-
selectedColumnFilters.length >= 1 && React__default.createElement(ColumnFilterResetButton, { onClick: function () { return resetColumnFilters(); } }))),
|
|
3260
|
+
selectedColumnFilters.length >= 1 && React__default.createElement(ColumnFilterResetButton, { onClick: function () { return resetColumnFilters(); } })))),
|
|
3262
3261
|
React__default.createElement(Box, { className: classes.tableContainer, flexGrow: loading || isEmpty ? 0 : 1 },
|
|
3263
3262
|
React__default.createElement("table", { className: classes.table },
|
|
3264
3263
|
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()))); }))); })),
|