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/es/index.js CHANGED
@@ -139,20 +139,23 @@ function useTableStateStorage(table) {
139
139
  const data = parse(json);
140
140
  (_b = (_a = table.getState().props).debug) == null ? void 0 : _b.call(_a, "load", json, data);
141
141
  table.update((state) => {
142
- var _a2, _b2, _c, _d;
142
+ var _a2, _b2, _c, _d, _e;
143
143
  for (const key of KEYS) {
144
144
  if ((!include || include.includes(key)) && !(exclude == null ? void 0 : exclude.includes(key)) && key in data) {
145
145
  if (key === "filterValues") {
146
146
  for (const [id2, value] of data[key]) {
147
- if ((_b2 = (_a2 = state.filters.get(id2)) == null ? void 0 : _a2.persist) != null ? _b2 : true) {
147
+ 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) {
148
148
  state.filterValues.set(id2, value);
149
149
  }
150
150
  }
151
151
  } else {
152
- state[key] = data[key];
153
152
  if (key === "expanded" || key === "hiddenColumns" || key === "selection" || key === "sort") {
154
- (_d = (_c = state.props)[`on${key.slice(0, 1).toUpperCase() + key.slice(1)}Change`]) == null ? void 0 : _d.call(_c, data[key]);
153
+ if (state.props[key] !== void 0) {
154
+ continue;
155
+ }
156
+ (_e = (_d = state.props)[`on${key.slice(0, 1).toUpperCase() + key.slice(1)}Change`]) == null ? void 0 : _e.call(_d, data[key]);
155
157
  }
158
+ state[key] = data[key];
156
159
  }
157
160
  }
158
161
  }
@@ -171,7 +174,7 @@ function useTableStateStorage(table) {
171
174
  if (!isHydrated)
172
175
  return;
173
176
  return table.subscribe((state) => {
174
- var _a, _b;
177
+ var _a, _b, _c;
175
178
  if (!state.props.persist)
176
179
  return;
177
180
  const {
@@ -186,11 +189,14 @@ function useTableStateStorage(table) {
186
189
  if (key === "filterValues") {
187
190
  data[key] = /* @__PURE__ */ new Map();
188
191
  for (const [id2, value] of state.filterValues) {
189
- if ((_b = (_a = state.filters.get(id2)) == null ? void 0 : _a.persist) != null ? _b : true) {
192
+ 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) {
190
193
  data.filterValues.set(id2, value);
191
194
  }
192
195
  }
193
196
  } else {
197
+ if (key === "expanded" || key === "hiddenColumns" || key === "selection" || key === "sort" && state.props[key] !== void 0) {
198
+ continue;
199
+ }
194
200
  data[key] = state[key];
195
201
  }
196
202
  }
@@ -634,12 +640,21 @@ function useTableState(_props) {
634
640
  const [key, setKey] = useState({});
635
641
  const props = calcProps(_props);
636
642
  function reset() {
637
- var _a, _b, _c, _d, _e, _f, _g, _h;
643
+ var _a, _b, _c, _d, _e, _f, _g, _h, _i;
638
644
  setKey({});
639
- (_b = props.onSortChange) == null ? void 0 : _b.call(props, (_a = props.defaultSort) != null ? _a : []);
640
- (_d = props.onExpandedChange) == null ? void 0 : _d.call(props, (_c = props.defaultExpanded) != null ? _c : /* @__PURE__ */ new Set());
641
- (_f = props.onSelectionChange) == null ? void 0 : _f.call(props, (_e = props.defaultSelection) != null ? _e : /* @__PURE__ */ new Set());
642
- (_h = props.onHiddenColumnsChange) == null ? void 0 : _h.call(props, (_g = props.defaultHiddenColumns) != null ? _g : /* @__PURE__ */ new Set());
645
+ if (props.sort === void 0) {
646
+ (_b = props.onSortChange) == null ? void 0 : _b.call(props, (_a = props.defaultSort) != null ? _a : []);
647
+ }
648
+ if (props.expanded === void 0) {
649
+ (_d = props.onExpandedChange) == null ? void 0 : _d.call(props, (_c = props.defaultExpanded) != null ? _c : /* @__PURE__ */ new Set());
650
+ }
651
+ if (props.selection === void 0) {
652
+ (_f = props.onSelectionChange) == null ? void 0 : _f.call(props, (_e = props.defaultSelection) != null ? _e : /* @__PURE__ */ new Set());
653
+ }
654
+ if (props.hiddenColumns === void 0) {
655
+ (_h = props.onHiddenColumnsChange) == null ? void 0 : _h.call(props, (_g = props.defaultHiddenColumns) != null ? _g : /* @__PURE__ */ new Set());
656
+ }
657
+ (_i = props.onReset) == null ? void 0 : _i.call(props);
643
658
  }
644
659
  const state = useMemo(() => {
645
660
  var _a, _b, _c, _d;
@@ -878,7 +893,12 @@ function FilterControl() {
878
893
  });
879
894
  function reset() {
880
895
  table.update((state) => {
881
- state.filterValues.delete(columnId);
896
+ var _a;
897
+ const impl = state.filters.get(columnId);
898
+ (_a = impl == null ? void 0 : impl.onChange) == null ? void 0 : _a.call(impl, void 0);
899
+ if ((impl == null ? void 0 : impl.value) !== void 0) {
900
+ state.filterValues.delete(columnId);
901
+ }
882
902
  });
883
903
  }
884
904
  const close = useCallback(function() {
@@ -898,7 +918,7 @@ function FilterControl() {
898
918
  children: /* @__PURE__ */ jsx(IconButton2, {
899
919
  css: ["color:#b0bac9;", isActive && {
900
920
  color: "var(--primaryMain) !important"
901
- }, 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 */"],
921
+ }, 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= */"],
902
922
  children: isActive ? /* @__PURE__ */ jsx(FilterList2, {}) : /* @__PURE__ */ jsx(ArrowDropDown2, {})
903
923
  })
904
924
  }), /* @__PURE__ */ jsx("div", {
@@ -3272,7 +3292,9 @@ function useFilter(impl) {
3272
3292
  const filterBy = impl.filterBy && cache("", impl.filterBy);
3273
3293
  useEffect(() => {
3274
3294
  var _a;
3275
- (_a = impl.onChange) == null ? void 0 : _a.call(impl, impl.defaultValue);
3295
+ if (impl.value === void 0) {
3296
+ (_a = impl.onChange) == null ? void 0 : _a.call(impl, impl.defaultValue);
3297
+ }
3276
3298
  }, [table]);
3277
3299
  useEffect(() => {
3278
3300
  table.update((state) => {