schummar-table 0.12.1 → 0.12.4

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
@@ -141,20 +141,23 @@ function useTableStateStorage(table) {
141
141
  const data = parse(json);
142
142
  (_b = (_a = table.getState().props).debug) == null ? void 0 : _b.call(_a, "load", json, data);
143
143
  table.update((state) => {
144
- var _a2, _b2, _c, _d;
144
+ var _a2, _b2, _c, _d, _e;
145
145
  for (const key of KEYS) {
146
146
  if ((!include || include.includes(key)) && !(exclude == null ? void 0 : exclude.includes(key)) && key in data) {
147
147
  if (key === "filterValues") {
148
148
  for (const [id2, value] of data[key]) {
149
- if ((_b2 = (_a2 = state.filters.get(id2)) == null ? void 0 : _a2.persist) != null ? _b2 : true) {
149
+ if ((_c = (_a2 = state.filters.get(id2)) == null ? void 0 : _a2.persist) != null ? _c : ((_b2 = state.filters.get(id2)) == null ? void 0 : _b2.value) === void 0) {
150
150
  state.filterValues.set(id2, value);
151
151
  }
152
152
  }
153
153
  } else {
154
- state[key] = data[key];
155
154
  if (key === "expanded" || key === "hiddenColumns" || key === "selection" || key === "sort") {
156
- (_d = (_c = state.props)[`on${key.slice(0, 1).toUpperCase() + key.slice(1)}Change`]) == null ? void 0 : _d.call(_c, data[key]);
155
+ if (state.props[key] !== void 0) {
156
+ continue;
157
+ }
158
+ (_e = (_d = state.props)[`on${key.slice(0, 1).toUpperCase() + key.slice(1)}Change`]) == null ? void 0 : _e.call(_d, data[key]);
157
159
  }
160
+ state[key] = data[key];
158
161
  }
159
162
  }
160
163
  }
@@ -173,7 +176,7 @@ function useTableStateStorage(table) {
173
176
  if (!isHydrated)
174
177
  return;
175
178
  return table.subscribe((state) => {
176
- var _a, _b;
179
+ var _a, _b, _c;
177
180
  if (!state.props.persist)
178
181
  return;
179
182
  const {
@@ -188,11 +191,14 @@ function useTableStateStorage(table) {
188
191
  if (key === "filterValues") {
189
192
  data[key] = /* @__PURE__ */ new Map();
190
193
  for (const [id2, value] of state.filterValues) {
191
- if ((_b = (_a = state.filters.get(id2)) == null ? void 0 : _a.persist) != null ? _b : true) {
194
+ if ((_c = (_a = state.filters.get(id2)) == null ? void 0 : _a.persist) != null ? _c : ((_b = state.filters.get(id2)) == null ? void 0 : _b.value) === void 0) {
192
195
  data.filterValues.set(id2, value);
193
196
  }
194
197
  }
195
198
  } else {
199
+ if (key === "expanded" || key === "hiddenColumns" || key === "selection" || key === "sort" && state.props[key] !== void 0) {
200
+ continue;
201
+ }
196
202
  data[key] = state[key];
197
203
  }
198
204
  }
@@ -636,12 +642,21 @@ function useTableState(_props) {
636
642
  const [key, setKey] = react.useState({});
637
643
  const props = calcProps(_props);
638
644
  function reset() {
639
- var _a, _b, _c, _d, _e, _f, _g, _h;
645
+ var _a, _b, _c, _d, _e, _f, _g, _h, _i;
640
646
  setKey({});
641
- (_b = props.onSortChange) == null ? void 0 : _b.call(props, (_a = props.defaultSort) != null ? _a : []);
642
- (_d = props.onExpandedChange) == null ? void 0 : _d.call(props, (_c = props.defaultExpanded) != null ? _c : /* @__PURE__ */ new Set());
643
- (_f = props.onSelectionChange) == null ? void 0 : _f.call(props, (_e = props.defaultSelection) != null ? _e : /* @__PURE__ */ new Set());
644
- (_h = props.onHiddenColumnsChange) == null ? void 0 : _h.call(props, (_g = props.defaultHiddenColumns) != null ? _g : /* @__PURE__ */ new Set());
647
+ if (props.sort === void 0) {
648
+ (_b = props.onSortChange) == null ? void 0 : _b.call(props, (_a = props.defaultSort) != null ? _a : []);
649
+ }
650
+ if (props.expanded === void 0) {
651
+ (_d = props.onExpandedChange) == null ? void 0 : _d.call(props, (_c = props.defaultExpanded) != null ? _c : /* @__PURE__ */ new Set());
652
+ }
653
+ if (props.selection === void 0) {
654
+ (_f = props.onSelectionChange) == null ? void 0 : _f.call(props, (_e = props.defaultSelection) != null ? _e : /* @__PURE__ */ new Set());
655
+ }
656
+ if (props.hiddenColumns === void 0) {
657
+ (_h = props.onHiddenColumnsChange) == null ? void 0 : _h.call(props, (_g = props.defaultHiddenColumns) != null ? _g : /* @__PURE__ */ new Set());
658
+ }
659
+ (_i = props.onReset) == null ? void 0 : _i.call(props);
645
660
  }
646
661
  const state = react.useMemo(() => {
647
662
  var _a, _b, _c, _d;
@@ -880,7 +895,12 @@ function FilterControl() {
880
895
  });
881
896
  function reset() {
882
897
  table.update((state) => {
883
- state.filterValues.delete(columnId);
898
+ var _a;
899
+ const impl = state.filters.get(columnId);
900
+ (_a = impl == null ? void 0 : impl.onChange) == null ? void 0 : _a.call(impl, void 0);
901
+ if ((impl == null ? void 0 : impl.value) !== void 0) {
902
+ state.filterValues.delete(columnId);
903
+ }
884
904
  });
885
905
  }
886
906
  const close = react.useCallback(function() {
@@ -900,7 +920,7 @@ function FilterControl() {
900
920
  children: /* @__PURE__ */ jsxRuntime.jsx(IconButton2, {
901
921
  css: ["color:#b0bac9;", isActive && {
902
922
  color: "var(--primaryMain) !important"
903
- }, process.env.NODE_ENV === "production" ? "" : ";label:FilterControl;", process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL3NjaHVtbWFyLXRhYmxlL3NjaHVtbWFyLXRhYmxlL3NyYy9jb21wb25lbnRzL2ZpbHRlckNvbnRyb2wudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQStDVSIsImZpbGUiOiIvaG9tZS9ydW5uZXIvd29yay9zY2h1bW1hci10YWJsZS9zY2h1bW1hci10YWJsZS9zcmMvY29tcG9uZW50cy9maWx0ZXJDb250cm9sLnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwgeyBjcmVhdGVDb250ZXh0LCB1c2VDYWxsYmFjaywgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyB1c2VUaGVtZSB9IGZyb20gJy4uL2hvb2tzL3VzZVRoZW1lJztcbmltcG9ydCB7IHVzZUNzc1ZhcmlhYmxlcyB9IGZyb20gJy4uL3RoZW1lL3VzZUNzc1ZhcmlhYmxlcyc7XG5pbXBvcnQgeyB1c2VDb2x1bW5Db250ZXh0LCB1c2VUYWJsZUNvbnRleHQgfSBmcm9tICcuL3RhYmxlJztcblxuZXhwb3J0IGNvbnN0IEZpbHRlckNvbnRyb2xDb250ZXh0ID0gY3JlYXRlQ29udGV4dCgoKTogdm9pZCA9PiB2b2lkIDApO1xuXG5leHBvcnQgZnVuY3Rpb24gRmlsdGVyQ29udHJvbDxUPigpOiBKU1guRWxlbWVudCB8IG51bGwge1xuICBjb25zdCB0YWJsZSA9IHVzZVRhYmxlQ29udGV4dDxUPigpO1xuICBjb25zdCBjb2x1bW5JZCA9IHVzZUNvbHVtbkNvbnRleHQoKTtcbiAgY29uc3QgSWNvbkJ1dHRvbiA9IHVzZVRoZW1lKCh0KSA9PiB0LmNvbXBvbmVudHMuSWNvbkJ1dHRvbik7XG4gIGNvbnN0IFBvcG92ZXIgPSB1c2VUaGVtZSgodCkgPT4gdC5jb21wb25lbnRzLlBvcG92ZXIpO1xuICBjb25zdCBGaWx0ZXJMaXN0ID0gdXNlVGhlbWUoKHQpID0+IHQuaWNvbnMuRmlsdGVyTGlzdCk7XG4gIGNvbnN0IEFycm93RHJvcERvd24gPSB1c2VUaGVtZSgodCkgPT4gdC5pY29ucy5BcnJvd0Ryb3BEb3duKTtcbiAgY29uc3QgY3NzVmFyaWFibGVzID0gdXNlQ3NzVmFyaWFibGVzKCk7XG5cbiAgY29uc3QgW2FuY2hvciwgc2V0QW5jaG9yXSA9IHVzZVN0YXRlPEVsZW1lbnQgfCBudWxsPihudWxsKTtcbiAgY29uc3QgaXNBY3RpdmUgPSB0YWJsZS51c2VTdGF0ZSgoc3RhdGUpID0+IHtcbiAgICBjb25zdCBmaWx0ZXIgPSBzdGF0ZS5maWx0ZXJzLmdldChjb2x1bW5JZCk7XG4gICAgY29uc3QgZmlsdGVyVmFsdWUgPSBzdGF0ZS5maWx0ZXJWYWx1ZXMuZ2V0KGNvbHVtbklkKTtcbiAgICByZXR1cm4gZmlsdGVyICE9PSB1bmRlZmluZWQgJiYgZmlsdGVyVmFsdWUgIT09IHVuZGVmaW5lZCAmJiBmaWx0ZXIuaXNBY3RpdmUoZmlsdGVyVmFsdWUpO1xuICB9KTtcbiAgY29uc3QgZmlsdGVyID0gdGFibGUudXNlU3RhdGUoKHN0YXRlKSA9PiBzdGF0ZS5hY3RpdmVDb2x1bW5zLmZpbmQoKGNvbHVtbikgPT4gY29sdW1uLmlkID09PSBjb2x1bW5JZCk/LmZpbHRlcik7XG5cbiAgZnVuY3Rpb24gcmVzZXQoKSB7XG4gICAgdGFibGUudXBkYXRlKChzdGF0ZSkgPT4ge1xuICAgICAgc3RhdGUuZmlsdGVyVmFsdWVzLmRlbGV0ZShjb2x1bW5JZCk7XG4gICAgfSk7XG4gIH1cblxuICBjb25zdCBjbG9zZSA9IHVzZUNhbGxiYWNrKGZ1bmN0aW9uICgpIHtcbiAgICBzZXRBbmNob3IobnVsbCk7XG4gIH0sIFtdKTtcblxuICBpZiAoIWZpbHRlcikgcmV0dXJuIG51bGw7XG5cbiAgcmV0dXJuIChcbiAgICA8RmlsdGVyQ29udHJvbENvbnRleHQuUHJvdmlkZXIgdmFsdWU9e2Nsb3NlfT5cbiAgICAgIDxkaXZcbiAgICAgICAgb25DbGljaz17KGUpID0+IHNldEFuY2hvcihlLmN1cnJlbnRUYXJnZXQpfVxuICAgICAgICBvbkNvbnRleHRNZW51PXsoZSkgPT4ge1xuICAgICAgICAgIHJlc2V0KCk7XG4gICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfX1cbiAgICAgID5cbiAgICAgICAgPEljb25CdXR0b25cbiAgICAgICAgICBjc3M9e1tcbiAgICAgICAgICAgIHsgY29sb3I6ICcjYjBiYWM5JyB9LFxuICAgICAgICAgICAgaXNBY3RpdmUgJiYge1xuICAgICAgICAgICAgICBjb2xvcjogJ3ZhcigtLXByaW1hcnlNYWluKSAhaW1wb3J0YW50JyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgXX1cbiAgICAgICAgPlxuICAgICAgICAgIHtpc0FjdGl2ZSA/IDxGaWx0ZXJMaXN0IC8+IDogPEFycm93RHJvcERvd24gLz59XG4gICAgICAgIDwvSWNvbkJ1dHRvbj5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8ZGl2XG4gICAgICAgIG9uUG9pbnRlckRvd249eyhlKSA9PiB7XG4gICAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgfX1cbiAgICAgICAgb25Qb2ludGVyTW92ZT17KGUpID0+IHtcbiAgICAgICAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICB9fVxuICAgICAgPlxuICAgICAgICA8UG9wb3ZlciBvcGVuIGhpZGRlbj17IWFuY2hvcn0gb25DbG9zZT17KCkgPT4gc2V0QW5jaG9yKG51bGwpfSBhbmNob3JFbD17YW5jaG9yID8/IGRvY3VtZW50LmJvZHl9IGNzcz17Y3NzVmFyaWFibGVzfT5cbiAgICAgICAgICB7ZmlsdGVyfVxuICAgICAgICA8L1BvcG92ZXI+XG4gICAgICA8L2Rpdj5cbiAgICA8L0ZpbHRlckNvbnRyb2xDb250ZXh0LlByb3ZpZGVyPlxuICApO1xufVxuIl19 */"],
923
+ }, process.env.NODE_ENV === "production" ? "" : ";label:FilterControl;", process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL3NjaHVtbWFyLXRhYmxlL3NjaHVtbWFyLXRhYmxlL3NyYy9jb21wb25lbnRzL2ZpbHRlckNvbnRyb2wudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQXFEVSIsImZpbGUiOiIvaG9tZS9ydW5uZXIvd29yay9zY2h1bW1hci10YWJsZS9zY2h1bW1hci10YWJsZS9zcmMvY29tcG9uZW50cy9maWx0ZXJDb250cm9sLnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwgeyBjcmVhdGVDb250ZXh0LCB1c2VDYWxsYmFjaywgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyB1c2VUaGVtZSB9IGZyb20gJy4uL2hvb2tzL3VzZVRoZW1lJztcbmltcG9ydCB7IHVzZUNzc1ZhcmlhYmxlcyB9IGZyb20gJy4uL3RoZW1lL3VzZUNzc1ZhcmlhYmxlcyc7XG5pbXBvcnQgeyB1c2VDb2x1bW5Db250ZXh0LCB1c2VUYWJsZUNvbnRleHQgfSBmcm9tICcuL3RhYmxlJztcblxuZXhwb3J0IGNvbnN0IEZpbHRlckNvbnRyb2xDb250ZXh0ID0gY3JlYXRlQ29udGV4dCgoKTogdm9pZCA9PiB2b2lkIDApO1xuXG5leHBvcnQgZnVuY3Rpb24gRmlsdGVyQ29udHJvbDxUPigpOiBKU1guRWxlbWVudCB8IG51bGwge1xuICBjb25zdCB0YWJsZSA9IHVzZVRhYmxlQ29udGV4dDxUPigpO1xuICBjb25zdCBjb2x1bW5JZCA9IHVzZUNvbHVtbkNvbnRleHQoKTtcbiAgY29uc3QgSWNvbkJ1dHRvbiA9IHVzZVRoZW1lKCh0KSA9PiB0LmNvbXBvbmVudHMuSWNvbkJ1dHRvbik7XG4gIGNvbnN0IFBvcG92ZXIgPSB1c2VUaGVtZSgodCkgPT4gdC5jb21wb25lbnRzLlBvcG92ZXIpO1xuICBjb25zdCBGaWx0ZXJMaXN0ID0gdXNlVGhlbWUoKHQpID0+IHQuaWNvbnMuRmlsdGVyTGlzdCk7XG4gIGNvbnN0IEFycm93RHJvcERvd24gPSB1c2VUaGVtZSgodCkgPT4gdC5pY29ucy5BcnJvd0Ryb3BEb3duKTtcbiAgY29uc3QgY3NzVmFyaWFibGVzID0gdXNlQ3NzVmFyaWFibGVzKCk7XG5cbiAgY29uc3QgW2FuY2hvciwgc2V0QW5jaG9yXSA9IHVzZVN0YXRlPEVsZW1lbnQgfCBudWxsPihudWxsKTtcbiAgY29uc3QgaXNBY3RpdmUgPSB0YWJsZS51c2VTdGF0ZSgoc3RhdGUpID0+IHtcbiAgICBjb25zdCBmaWx0ZXIgPSBzdGF0ZS5maWx0ZXJzLmdldChjb2x1bW5JZCk7XG4gICAgY29uc3QgZmlsdGVyVmFsdWUgPSBzdGF0ZS5maWx0ZXJWYWx1ZXMuZ2V0KGNvbHVtbklkKTtcbiAgICByZXR1cm4gZmlsdGVyICE9PSB1bmRlZmluZWQgJiYgZmlsdGVyVmFsdWUgIT09IHVuZGVmaW5lZCAmJiBmaWx0ZXIuaXNBY3RpdmUoZmlsdGVyVmFsdWUpO1xuICB9KTtcbiAgY29uc3QgZmlsdGVyID0gdGFibGUudXNlU3RhdGUoKHN0YXRlKSA9PiBzdGF0ZS5hY3RpdmVDb2x1bW5zLmZpbmQoKGNvbHVtbikgPT4gY29sdW1uLmlkID09PSBjb2x1bW5JZCk/LmZpbHRlcik7XG5cbiAgZnVuY3Rpb24gcmVzZXQoKSB7XG4gICAgdGFibGUudXBkYXRlKChzdGF0ZSkgPT4ge1xuICAgICAgY29uc3QgaW1wbCA9IHN0YXRlLmZpbHRlcnMuZ2V0KGNvbHVtbklkKTtcblxuICAgICAgaW1wbD8ub25DaGFuZ2U/Lih1bmRlZmluZWQpO1xuXG4gICAgICBpZiAoaW1wbD8udmFsdWUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICBzdGF0ZS5maWx0ZXJWYWx1ZXMuZGVsZXRlKGNvbHVtbklkKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIGNvbnN0IGNsb3NlID0gdXNlQ2FsbGJhY2soZnVuY3Rpb24gKCkge1xuICAgIHNldEFuY2hvcihudWxsKTtcbiAgfSwgW10pO1xuXG4gIGlmICghZmlsdGVyKSByZXR1cm4gbnVsbDtcblxuICByZXR1cm4gKFxuICAgIDxGaWx0ZXJDb250cm9sQ29udGV4dC5Qcm92aWRlciB2YWx1ZT17Y2xvc2V9PlxuICAgICAgPGRpdlxuICAgICAgICBvbkNsaWNrPXsoZSkgPT4gc2V0QW5jaG9yKGUuY3VycmVudFRhcmdldCl9XG4gICAgICAgIG9uQ29udGV4dE1lbnU9eyhlKSA9PiB7XG4gICAgICAgICAgcmVzZXQoKTtcbiAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9fVxuICAgICAgPlxuICAgICAgICA8SWNvbkJ1dHRvblxuICAgICAgICAgIGNzcz17W1xuICAgICAgICAgICAgeyBjb2xvcjogJyNiMGJhYzknIH0sXG4gICAgICAgICAgICBpc0FjdGl2ZSAmJiB7XG4gICAgICAgICAgICAgIGNvbG9yOiAndmFyKC0tcHJpbWFyeU1haW4pICFpbXBvcnRhbnQnLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICBdfVxuICAgICAgICA+XG4gICAgICAgICAge2lzQWN0aXZlID8gPEZpbHRlckxpc3QgLz4gOiA8QXJyb3dEcm9wRG93biAvPn1cbiAgICAgICAgPC9JY29uQnV0dG9uPlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDxkaXZcbiAgICAgICAgb25Qb2ludGVyRG93bj17KGUpID0+IHtcbiAgICAgICAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICB9fVxuICAgICAgICBvblBvaW50ZXJNb3ZlPXsoZSkgPT4ge1xuICAgICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgIH19XG4gICAgICA+XG4gICAgICAgIDxQb3BvdmVyIG9wZW4gaGlkZGVuPXshYW5jaG9yfSBvbkNsb3NlPXsoKSA9PiBzZXRBbmNob3IobnVsbCl9IGFuY2hvckVsPXthbmNob3IgPz8gZG9jdW1lbnQuYm9keX0gY3NzPXtjc3NWYXJpYWJsZXN9PlxuICAgICAgICAgIHtmaWx0ZXJ9XG4gICAgICAgIDwvUG9wb3Zlcj5cbiAgICAgIDwvZGl2PlxuICAgIDwvRmlsdGVyQ29udHJvbENvbnRleHQuUHJvdmlkZXI+XG4gICk7XG59XG4iXX0= */"],
904
924
  children: isActive ? /* @__PURE__ */ jsxRuntime.jsx(FilterList2, {}) : /* @__PURE__ */ jsxRuntime.jsx(ArrowDropDown2, {})
905
925
  })
906
926
  }), /* @__PURE__ */ jsxRuntime.jsx("div", {
@@ -3274,7 +3294,9 @@ function useFilter(impl) {
3274
3294
  const filterBy = impl.filterBy && cache("", impl.filterBy);
3275
3295
  react.useEffect(() => {
3276
3296
  var _a;
3277
- (_a = impl.onChange) == null ? void 0 : _a.call(impl, impl.defaultValue);
3297
+ if (impl.value === void 0) {
3298
+ (_a = impl.onChange) == null ? void 0 : _a.call(impl, impl.defaultValue);
3299
+ }
3278
3300
  }, [table]);
3279
3301
  react.useEffect(() => {
3280
3302
  table.update((state) => {