schummar-table 0.9.0 → 0.10.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 +33 -31
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/tableTheme.js +5 -2
- package/dist/cjs/tableTheme.js.map +1 -1
- package/dist/es/index.js +33 -31
- package/dist/es/index.js.map +1 -1
- package/dist/es/tableTheme.js +5 -2
- package/dist/es/tableTheme.js.map +1 -1
- package/dist/types/components/clearFiltersButton.d.ts +1 -0
- package/dist/types/types.d.ts +2 -1
- package/package.json +1 -1
package/dist/cjs/index.js
CHANGED
|
@@ -622,6 +622,25 @@ function useCssVariables() {
|
|
|
622
622
|
"--secondaryContrastText": colors.secondary.contrastText
|
|
623
623
|
}));
|
|
624
624
|
}
|
|
625
|
+
function ClearFiltersButton() {
|
|
626
|
+
const Button2 = useTheme((t) => t.components.Button);
|
|
627
|
+
const textClearFilters = useTheme((t) => t.text.clearFilters);
|
|
628
|
+
const table = useTableContext();
|
|
629
|
+
return /* @__PURE__ */ jsxRuntime.jsx("div", {
|
|
630
|
+
css: tableTheme.defaultClasses.clearFiltersButton,
|
|
631
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(Button2, {
|
|
632
|
+
variant: "text",
|
|
633
|
+
onClick: () => {
|
|
634
|
+
table.update((state) => {
|
|
635
|
+
state.activeColumns.forEach((column) => {
|
|
636
|
+
state.filterValues.delete(column.id);
|
|
637
|
+
});
|
|
638
|
+
});
|
|
639
|
+
},
|
|
640
|
+
children: textClearFilters
|
|
641
|
+
})
|
|
642
|
+
});
|
|
643
|
+
}
|
|
625
644
|
function ColumnFooter() {
|
|
626
645
|
const table = useTableContext();
|
|
627
646
|
const columnId = useColumnContext();
|
|
@@ -1655,8 +1674,6 @@ const TableInner = react.memo(function TableInner2({
|
|
|
1655
1674
|
const enableExport = table.useState((state) => !!state.props.enableExport.copy || !!state.props.enableExport.download);
|
|
1656
1675
|
const cssVariables = useCssVariables();
|
|
1657
1676
|
const enableClearFiltersButton = table.useState("props.enableClearFiltersButton");
|
|
1658
|
-
const Button2 = useTheme((t) => t.components.Button);
|
|
1659
|
-
const textClearFilters = useTheme((t) => t.text.clearFilters);
|
|
1660
1677
|
react.useLayoutEffect(() => {
|
|
1661
1678
|
var _a, _b;
|
|
1662
1679
|
return (_b = (_a = table.getState().props).debugRender) == null ? void 0 : _b.call(_a, "render table inner");
|
|
@@ -1695,20 +1712,7 @@ const TableInner = react.memo(function TableInner2({
|
|
|
1695
1712
|
})]
|
|
1696
1713
|
}),
|
|
1697
1714
|
footer: /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, {
|
|
1698
|
-
children: [enableClearFiltersButton && hasActiveFilters && /* @__PURE__ */ jsxRuntime.jsx(
|
|
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, {
|
|
1715
|
+
children: [enableClearFiltersButton && hasActiveFilters && /* @__PURE__ */ jsxRuntime.jsx(ClearFiltersButton, {}), hasFooter && /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, {
|
|
1712
1716
|
children: [/* @__PURE__ */ jsxRuntime.jsx("div", {
|
|
1713
1717
|
className: classes == null ? void 0 : classes.footerCell,
|
|
1714
1718
|
css: [tableTheme.defaultClasses.footerFill, stickyFooter && tableTheme.defaultClasses.stickyBottom, stickyFooter instanceof Object && stickyFooter]
|
|
@@ -2156,7 +2160,7 @@ const defaultTexts = {
|
|
|
2156
2160
|
clearFilters: "Clear all filters",
|
|
2157
2161
|
reset: "Reset",
|
|
2158
2162
|
loading: "Loading",
|
|
2159
|
-
|
|
2163
|
+
deselectAll: "Deselect all"
|
|
2160
2164
|
};
|
|
2161
2165
|
const defaultTableTheme = {
|
|
2162
2166
|
text: defaultTexts,
|
|
@@ -2175,14 +2179,11 @@ function useTheme(selector) {
|
|
|
2175
2179
|
const process = (t) => {
|
|
2176
2180
|
var _a2;
|
|
2177
2181
|
const cell = (_a2 = t.classes) == null ? void 0 : _a2.cell;
|
|
2178
|
-
const selected = t.text.selected;
|
|
2179
2182
|
return __spreadProps(__spreadValues({}, t), {
|
|
2180
2183
|
classes: __spreadProps(__spreadValues({}, t.classes), {
|
|
2181
2184
|
cell: cell instanceof Function || Array.isArray(cell) ? memo("theme.classes.cell", cell) : cell
|
|
2182
2185
|
}),
|
|
2183
|
-
text:
|
|
2184
|
-
selected: selected instanceof Function || Array.isArray(selected) ? memo("theme.text.selected", selected) : selected
|
|
2185
|
-
})
|
|
2186
|
+
text: __spreadValues({}, t.text)
|
|
2186
2187
|
});
|
|
2187
2188
|
};
|
|
2188
2189
|
const theme = (_b = (_a = table == null ? void 0 : table.useState((state) => {
|
|
@@ -2690,7 +2691,7 @@ function SelectFilter(_m) {
|
|
|
2690
2691
|
const Checkbox2 = useTheme((t) => t.components.Checkbox);
|
|
2691
2692
|
const Search2 = useTheme((t) => t.icons.Search);
|
|
2692
2693
|
const Clear2 = useTheme((t) => t.icons.Clear);
|
|
2693
|
-
const
|
|
2694
|
+
const deselectAll = useTheme((t) => t.text.deselectAll);
|
|
2694
2695
|
const noResults = useTheme((t) => t.text.noResults);
|
|
2695
2696
|
const table = useTableContext();
|
|
2696
2697
|
const columnId = useColumnContext();
|
|
@@ -2717,6 +2718,7 @@ function SelectFilter(_m) {
|
|
|
2717
2718
|
});
|
|
2718
2719
|
const [query, setQuery] = react.useState("");
|
|
2719
2720
|
const filtered = options.filter((option) => !query || stringValue(option).toLowerCase().includes(query.toLowerCase()));
|
|
2721
|
+
const Button2 = useTheme((t) => t.components.Button);
|
|
2720
2722
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", {
|
|
2721
2723
|
css: {
|
|
2722
2724
|
padding: "calc(var(--spacing) * 2)",
|
|
@@ -2738,16 +2740,16 @@ function SelectFilter(_m) {
|
|
|
2738
2740
|
maxHeight: "20em",
|
|
2739
2741
|
overflowY: "auto"
|
|
2740
2742
|
},
|
|
2741
|
-
children: [/* @__PURE__ */ jsxRuntime.jsx(
|
|
2743
|
+
children: [/* @__PURE__ */ jsxRuntime.jsx(Button2, {
|
|
2742
2744
|
disabled: value.size === 0,
|
|
2743
|
-
|
|
2744
|
-
|
|
2745
|
-
|
|
2746
|
-
|
|
2747
|
-
|
|
2748
|
-
|
|
2749
|
-
|
|
2750
|
-
|
|
2745
|
+
onClick: () => onChange(/* @__PURE__ */ new Set()),
|
|
2746
|
+
variant: "outlined",
|
|
2747
|
+
css: {
|
|
2748
|
+
justifyContent: "center",
|
|
2749
|
+
width: "calc(100% - 5px)",
|
|
2750
|
+
marginRight: "5px"
|
|
2751
|
+
},
|
|
2752
|
+
children: deselectAll
|
|
2751
2753
|
}), filtered.map((option, index) => /* @__PURE__ */ jsxRuntime.jsx(FormControlLabel, {
|
|
2752
2754
|
control: /* @__PURE__ */ jsxRuntime.jsx(Checkbox2, {
|
|
2753
2755
|
checked: value.has(option),
|