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 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("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, {
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
- selected: (count) => `${count} selected`
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: __spreadProps(__spreadValues({}, t.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 selected = useTheme((t) => t.text.selected);
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(FormControlLabel, {
2743
+ children: [/* @__PURE__ */ jsxRuntime.jsx(Button2, {
2742
2744
  disabled: value.size === 0,
2743
- control: /* @__PURE__ */ jsxRuntime.jsx(Checkbox2, {
2744
- disabled: value.size === 0,
2745
- checked: value.size > 0,
2746
- onChange: () => onChange(/* @__PURE__ */ new Set())
2747
- }),
2748
- label: /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, {
2749
- children: ["<", selected(value.size), ">"]
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),