schummar-table 0.14.4 → 0.15.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/es/index.js CHANGED
@@ -4,7 +4,7 @@ var __publicField = (obj, key, value) => {
4
4
  __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
5
5
  return value;
6
6
  };
7
- import { createContext, useMemo, useContext, useState, useEffect, useCallback, useRef, memo, useLayoutEffect, cloneElement, Fragment as Fragment$1 } from "react";
7
+ import { createContext, useMemo, useContext, useState, useEffect, useRef, memo, useLayoutEffect, cloneElement, Fragment as Fragment$1 } from "react";
8
8
  import { Store, StoreScope } from "schummar-state/react";
9
9
  import { jsx, jsxs, Fragment } from "@emotion/react/jsx-runtime";
10
10
  import { castDraft } from "immer";
@@ -786,7 +786,10 @@ function ColumnFooter() {
786
786
  children: content
787
787
  });
788
788
  }
789
- const FilterControlContext = createContext(() => void 0);
789
+ const FilterControlContext = createContext({
790
+ isActive: false,
791
+ close: () => void 0
792
+ });
790
793
  function FilterControl() {
791
794
  const table = useTableContext();
792
795
  const columnId = useColumnContext();
@@ -815,13 +818,14 @@ function FilterControl() {
815
818
  }
816
819
  });
817
820
  }
818
- const close = useCallback(function() {
819
- setAnchor(null);
820
- }, []);
821
+ const context = useMemo(() => ({
822
+ isActive: !!anchor,
823
+ close: () => setAnchor(null)
824
+ }), [!!anchor]);
821
825
  if (!filter)
822
826
  return null;
823
827
  return /* @__PURE__ */ jsxs(FilterControlContext.Provider, {
824
- value: close,
828
+ value: context,
825
829
  children: [/* @__PURE__ */ jsx("div", {
826
830
  onClick: (e2) => setAnchor(e2.currentTarget),
827
831
  onContextMenu: (e2) => {
@@ -832,7 +836,7 @@ function FilterControl() {
832
836
  children: /* @__PURE__ */ jsx(IconButton2, {
833
837
  css: ["color:#b0bac9;", isActive && {
834
838
  color: "var(--primaryMain) !important"
835
- }, 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= */"],
839
+ }, process.env.NODE_ENV === "production" ? "" : ";label:FilterControl;", process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL3NjaHVtbWFyLXRhYmxlL3NjaHVtbWFyLXRhYmxlL3NyYy9jb21wb25lbnRzL2ZpbHRlckNvbnRyb2wudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQTREVSIsImZpbGUiOiIvaG9tZS9ydW5uZXIvd29yay9zY2h1bW1hci10YWJsZS9zY2h1bW1hci10YWJsZS9zcmMvY29tcG9uZW50cy9maWx0ZXJDb250cm9sLnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNyZWF0ZUNvbnRleHQsIHVzZU1lbW8sIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgdXNlVGhlbWUgfSBmcm9tICcuLi9ob29rcy91c2VUaGVtZSc7XG5pbXBvcnQgeyB1c2VDc3NWYXJpYWJsZXMgfSBmcm9tICcuLi90aGVtZS91c2VDc3NWYXJpYWJsZXMnO1xuaW1wb3J0IHsgdXNlQ29sdW1uQ29udGV4dCwgdXNlVGFibGVDb250ZXh0IH0gZnJvbSAnLi90YWJsZSc7XG5cbmV4cG9ydCBjb25zdCBGaWx0ZXJDb250cm9sQ29udGV4dCA9IGNyZWF0ZUNvbnRleHQoe1xuICBpc0FjdGl2ZTogZmFsc2UsXG4gIGNsb3NlOiAoKTogdm9pZCA9PiB2b2lkIDAsXG59KTtcblxuZXhwb3J0IGZ1bmN0aW9uIEZpbHRlckNvbnRyb2w8VD4oKTogSlNYLkVsZW1lbnQgfCBudWxsIHtcbiAgY29uc3QgdGFibGUgPSB1c2VUYWJsZUNvbnRleHQ8VD4oKTtcbiAgY29uc3QgY29sdW1uSWQgPSB1c2VDb2x1bW5Db250ZXh0KCk7XG4gIGNvbnN0IEljb25CdXR0b24gPSB1c2VUaGVtZSgodCkgPT4gdC5jb21wb25lbnRzLkljb25CdXR0b24pO1xuICBjb25zdCBQb3BvdmVyID0gdXNlVGhlbWUoKHQpID0+IHQuY29tcG9uZW50cy5Qb3BvdmVyKTtcbiAgY29uc3QgRmlsdGVyTGlzdCA9IHVzZVRoZW1lKCh0KSA9PiB0Lmljb25zLkZpbHRlckxpc3QpO1xuICBjb25zdCBBcnJvd0Ryb3BEb3duID0gdXNlVGhlbWUoKHQpID0+IHQuaWNvbnMuQXJyb3dEcm9wRG93bik7XG4gIGNvbnN0IGNzc1ZhcmlhYmxlcyA9IHVzZUNzc1ZhcmlhYmxlcygpO1xuXG4gIGNvbnN0IFthbmNob3IsIHNldEFuY2hvcl0gPSB1c2VTdGF0ZTxFbGVtZW50IHwgbnVsbD4obnVsbCk7XG4gIGNvbnN0IGlzQWN0aXZlID0gdGFibGUudXNlU3RhdGUoKHN0YXRlKSA9PiB7XG4gICAgY29uc3QgZmlsdGVyID0gc3RhdGUuZmlsdGVycy5nZXQoY29sdW1uSWQpO1xuICAgIGNvbnN0IGZpbHRlclZhbHVlID0gc3RhdGUuZmlsdGVyVmFsdWVzLmdldChjb2x1bW5JZCk7XG4gICAgcmV0dXJuIGZpbHRlciAhPT0gdW5kZWZpbmVkICYmIGZpbHRlclZhbHVlICE9PSB1bmRlZmluZWQgJiYgZmlsdGVyLmlzQWN0aXZlKGZpbHRlclZhbHVlKTtcbiAgfSk7XG4gIGNvbnN0IGZpbHRlciA9IHRhYmxlLnVzZVN0YXRlKChzdGF0ZSkgPT4gc3RhdGUuYWN0aXZlQ29sdW1ucy5maW5kKChjb2x1bW4pID0+IGNvbHVtbi5pZCA9PT0gY29sdW1uSWQpPy5maWx0ZXIpO1xuXG4gIGZ1bmN0aW9uIHJlc2V0KCkge1xuICAgIHRhYmxlLnVwZGF0ZSgoc3RhdGUpID0+IHtcbiAgICAgIGNvbnN0IGltcGwgPSBzdGF0ZS5maWx0ZXJzLmdldChjb2x1bW5JZCk7XG5cbiAgICAgIGltcGw/Lm9uQ2hhbmdlPy4odW5kZWZpbmVkKTtcblxuICAgICAgaWYgKGltcGw/LnZhbHVlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgc3RhdGUuZmlsdGVyVmFsdWVzLmRlbGV0ZShjb2x1bW5JZCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBjb25zdCBjb250ZXh0ID0gdXNlTWVtbyhcbiAgICAoKSA9PiAoe1xuICAgICAgaXNBY3RpdmU6ICEhYW5jaG9yLFxuICAgICAgY2xvc2U6ICgpID0+IHNldEFuY2hvcihudWxsKSxcbiAgICB9KSxcbiAgICBbISFhbmNob3JdLFxuICApO1xuXG4gIGlmICghZmlsdGVyKSByZXR1cm4gbnVsbDtcblxuICByZXR1cm4gKFxuICAgIDxGaWx0ZXJDb250cm9sQ29udGV4dC5Qcm92aWRlciB2YWx1ZT17Y29udGV4dH0+XG4gICAgICA8ZGl2XG4gICAgICAgIG9uQ2xpY2s9eyhlKSA9PiBzZXRBbmNob3IoZS5jdXJyZW50VGFyZ2V0KX1cbiAgICAgICAgb25Db250ZXh0TWVudT17KGUpID0+IHtcbiAgICAgICAgICByZXNldCgpO1xuICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH19XG4gICAgICA+XG4gICAgICAgIDxJY29uQnV0dG9uXG4gICAgICAgICAgY3NzPXtbXG4gICAgICAgICAgICB7IGNvbG9yOiAnI2IwYmFjOScgfSxcbiAgICAgICAgICAgIGlzQWN0aXZlICYmIHtcbiAgICAgICAgICAgICAgY29sb3I6ICd2YXIoLS1wcmltYXJ5TWFpbikgIWltcG9ydGFudCcsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIF19XG4gICAgICAgID5cbiAgICAgICAgICB7aXNBY3RpdmUgPyA8RmlsdGVyTGlzdCAvPiA6IDxBcnJvd0Ryb3BEb3duIC8+fVxuICAgICAgICA8L0ljb25CdXR0b24+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPGRpdlxuICAgICAgICBvblBvaW50ZXJEb3duPXsoZSkgPT4ge1xuICAgICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgIH19XG4gICAgICAgIG9uUG9pbnRlck1vdmU9eyhlKSA9PiB7XG4gICAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgfX1cbiAgICAgID5cbiAgICAgICAgPFBvcG92ZXIgb3BlbiBoaWRkZW49eyFhbmNob3J9IG9uQ2xvc2U9eygpID0+IHNldEFuY2hvcihudWxsKX0gYW5jaG9yRWw9e2FuY2hvciA/PyBkb2N1bWVudC5ib2R5fSBjc3M9e2Nzc1ZhcmlhYmxlc30+XG4gICAgICAgICAge2ZpbHRlcn1cbiAgICAgICAgPC9Qb3BvdmVyPlxuICAgICAgPC9kaXY+XG4gICAgPC9GaWx0ZXJDb250cm9sQ29udGV4dC5Qcm92aWRlcj5cbiAgKTtcbn1cbiJdfQ== */"],
836
840
  children: isActive ? /* @__PURE__ */ jsx(FilterList2, {}) : /* @__PURE__ */ jsx(ArrowDropDown2, {})
837
841
  })
838
842
  }), /* @__PURE__ */ jsx("div", {
@@ -3137,11 +3141,12 @@ function useFilter(impl) {
3137
3141
  delayedUpdate(value2);
3138
3142
  }
3139
3143
  useEffect(() => delayedUpdate.flush(), [delayedUpdate]);
3144
+ const context = useContext(FilterControlContext);
3140
3145
  return {
3141
3146
  value: dirtyValue != null ? dirtyValue : value,
3142
3147
  onChange,
3143
- close: useContext(FilterControlContext),
3144
- filterBy: filterBy != null ? filterBy : (x) => x
3148
+ filterBy: filterBy != null ? filterBy : (x) => x,
3149
+ ...context
3145
3150
  };
3146
3151
  }
3147
3152
  const textMatch = (text, query) => {