schummar-table 0.8.3 → 0.9.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/dist/cjs/index.js +43 -16
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/tableTheme.js +9 -0
- package/dist/cjs/tableTheme.js.map +1 -1
- package/dist/es/index.js +43 -16
- package/dist/es/index.js.map +1 -1
- package/dist/es/tableTheme.js +9 -0
- package/dist/es/tableTheme.js.map +1 -1
- package/dist/types/theme/defaultTheme/defaultClasses.d.ts +1 -0
- package/dist/types/types.d.ts +5 -0
- package/package.json +1 -1
package/dist/cjs/index.js
CHANGED
|
@@ -401,7 +401,7 @@ const noopParentId = () => void 0;
|
|
|
401
401
|
function calcProps(props) {
|
|
402
402
|
const cache = useTableMemo();
|
|
403
403
|
return react.useMemo(() => {
|
|
404
|
-
var _f, _g, _h, _i, _j, _k, _l;
|
|
404
|
+
var _f, _g, _h, _i, _j, _k, _l, _m;
|
|
405
405
|
let id;
|
|
406
406
|
if (props.id instanceof Function || Array.isArray(props.id)) {
|
|
407
407
|
id = cache("id", props.id);
|
|
@@ -480,8 +480,9 @@ function calcProps(props) {
|
|
|
480
480
|
stickyFooter: (_i = props.stickyFooter) != null ? _i : true,
|
|
481
481
|
enableExport,
|
|
482
482
|
enableColumnSelection: (_j = props.enableColumnSelection) != null ? _j : true,
|
|
483
|
-
|
|
484
|
-
|
|
483
|
+
enableClearFiltersButton: (_k = props.enableClearFiltersButton) != null ? _k : false,
|
|
484
|
+
enableColumnResize: (_l = props.enableColumnResize) != null ? _l : true,
|
|
485
|
+
enableColumnReorder: (_m = props.enableColumnReorder) != null ? _m : true
|
|
485
486
|
});
|
|
486
487
|
}, [props]);
|
|
487
488
|
}
|
|
@@ -1635,6 +1636,13 @@ const TableInner = react.memo(function TableInner2({
|
|
|
1635
1636
|
width: column.width,
|
|
1636
1637
|
classes: column.classes
|
|
1637
1638
|
})));
|
|
1639
|
+
const hasActiveFilters = table.useState((state) => {
|
|
1640
|
+
return state.activeColumns.some((column) => {
|
|
1641
|
+
const filter = state.filters.get(column.id);
|
|
1642
|
+
const filterValue = state.filterValues.get(column.id);
|
|
1643
|
+
return filter !== void 0 && filterValue !== void 0 && filter.isActive(filterValue);
|
|
1644
|
+
});
|
|
1645
|
+
});
|
|
1638
1646
|
const columnWidths = table.useState("columnWidths", {
|
|
1639
1647
|
throttle: 16
|
|
1640
1648
|
});
|
|
@@ -1646,6 +1654,9 @@ const TableInner = react.memo(function TableInner2({
|
|
|
1646
1654
|
const enableColumnSelection = table.useState("props.enableColumnSelection");
|
|
1647
1655
|
const enableExport = table.useState((state) => !!state.props.enableExport.copy || !!state.props.enableExport.download);
|
|
1648
1656
|
const cssVariables = useCssVariables();
|
|
1657
|
+
const enableClearFiltersButton = table.useState("props.enableClearFiltersButton");
|
|
1658
|
+
const Button2 = useTheme((t) => t.components.Button);
|
|
1659
|
+
const textClearFilters = useTheme((t) => t.text.clearFilters);
|
|
1649
1660
|
react.useLayoutEffect(() => {
|
|
1650
1661
|
var _a, _b;
|
|
1651
1662
|
return (_b = (_a = table.getState().props).debugRender) == null ? void 0 : _b.call(_a, "render table inner");
|
|
@@ -1683,19 +1694,34 @@ const TableInner = react.memo(function TableInner2({
|
|
|
1683
1694
|
css: [tableTheme.defaultClasses.headerFill, stickyHeader && tableTheme.defaultClasses.sticky, stickyHeader instanceof Object && stickyHeader]
|
|
1684
1695
|
})]
|
|
1685
1696
|
}),
|
|
1686
|
-
footer:
|
|
1687
|
-
children: [/* @__PURE__ */ jsxRuntime.jsx("div", {
|
|
1688
|
-
|
|
1689
|
-
|
|
1690
|
-
|
|
1691
|
-
|
|
1692
|
-
|
|
1693
|
-
|
|
1694
|
-
|
|
1695
|
-
|
|
1696
|
-
|
|
1697
|
-
|
|
1698
|
-
|
|
1697
|
+
footer: /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, {
|
|
1698
|
+
children: [enableClearFiltersButton && hasActiveFilters && /* @__PURE__ */ jsxRuntime.jsx("div", {
|
|
1699
|
+
css: tableTheme.defaultClasses.clearFiltersButton,
|
|
1700
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(Button2, {
|
|
1701
|
+
variant: "text",
|
|
1702
|
+
onClick: () => {
|
|
1703
|
+
table.update((state) => {
|
|
1704
|
+
state.activeColumns.forEach((column) => {
|
|
1705
|
+
state.filterValues.delete(column.id);
|
|
1706
|
+
});
|
|
1707
|
+
});
|
|
1708
|
+
},
|
|
1709
|
+
children: textClearFilters
|
|
1710
|
+
})
|
|
1711
|
+
}), hasFooter && /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, {
|
|
1712
|
+
children: [/* @__PURE__ */ jsxRuntime.jsx("div", {
|
|
1713
|
+
className: classes == null ? void 0 : classes.footerCell,
|
|
1714
|
+
css: [tableTheme.defaultClasses.footerFill, stickyFooter && tableTheme.defaultClasses.stickyBottom, stickyFooter instanceof Object && stickyFooter]
|
|
1715
|
+
}), /* @__PURE__ */ jsxRuntime.jsx("div", {
|
|
1716
|
+
className: classes == null ? void 0 : classes.footerCell,
|
|
1717
|
+
css: [tableTheme.defaultClasses.footerFill, stickyFooter && tableTheme.defaultClasses.stickyBottom, stickyFooter instanceof Object && stickyFooter]
|
|
1718
|
+
}), activeColumns.map((column) => /* @__PURE__ */ jsxRuntime.jsx(ColumnContext.Provider, {
|
|
1719
|
+
value: column.id,
|
|
1720
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(ColumnFooter, {})
|
|
1721
|
+
}, column.id)), /* @__PURE__ */ jsxRuntime.jsx("div", {
|
|
1722
|
+
className: classes == null ? void 0 : classes.footerCell,
|
|
1723
|
+
css: [tableTheme.defaultClasses.footerFill, stickyFooter && tableTheme.defaultClasses.stickyBottom, stickyFooter instanceof Object && stickyFooter]
|
|
1724
|
+
})]
|
|
1699
1725
|
})]
|
|
1700
1726
|
}),
|
|
1701
1727
|
children: (itemIds, startIndex) => itemIds.map((itemId, index) => /* @__PURE__ */ jsxRuntime.jsx(Row, {
|
|
@@ -2127,6 +2153,7 @@ const defaultTexts = {
|
|
|
2127
2153
|
exportDownload: "Download",
|
|
2128
2154
|
today: "Today",
|
|
2129
2155
|
thisWeek: "This week",
|
|
2156
|
+
clearFilters: "Clear all filters",
|
|
2130
2157
|
reset: "Reset",
|
|
2131
2158
|
loading: "Loading",
|
|
2132
2159
|
selected: (count) => `${count} selected`
|