schummar-table 0.10.4 → 0.12.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.
Files changed (76) hide show
  1. package/package.json +19 -17
  2. package/dist/cjs/index.js +0 -2959
  3. package/dist/cjs/index.js.map +0 -1
  4. package/dist/cjs/mui4Theme.js +0 -98
  5. package/dist/cjs/mui4Theme.js.map +0 -1
  6. package/dist/cjs/mui5Theme.js +0 -102
  7. package/dist/cjs/mui5Theme.js.map +0 -1
  8. package/dist/cjs/package.json +0 -1
  9. package/dist/cjs/tableTheme.js +0 -248
  10. package/dist/cjs/tableTheme.js.map +0 -1
  11. package/dist/es/index.js +0 -2937
  12. package/dist/es/index.js.map +0 -1
  13. package/dist/es/mui4Theme.js +0 -94
  14. package/dist/es/mui4Theme.js.map +0 -1
  15. package/dist/es/mui5Theme.js +0 -98
  16. package/dist/es/mui5Theme.js.map +0 -1
  17. package/dist/es/tableTheme.js +0 -238
  18. package/dist/es/tableTheme.js.map +0 -1
  19. package/dist/types/components/autoFocusTextField.d.ts +0 -5
  20. package/dist/types/components/cell.d.ts +0 -6
  21. package/dist/types/components/clearFiltersButton.d.ts +0 -1
  22. package/dist/types/components/columnFooter.d.ts +0 -1
  23. package/dist/types/components/columnHeader.d.ts +0 -6
  24. package/dist/types/components/columnSelection.d.ts +0 -2
  25. package/dist/types/components/dateFilter.d.ts +0 -11
  26. package/dist/types/components/dateInput.d.ts +0 -5
  27. package/dist/types/components/datePicker.d.ts +0 -25
  28. package/dist/types/components/expandControl.d.ts +0 -6
  29. package/dist/types/components/export.d.ts +0 -2
  30. package/dist/types/components/filterControl.d.ts +0 -3
  31. package/dist/types/components/formControlLabel.d.ts +0 -6
  32. package/dist/types/components/resizeHandle.d.ts +0 -5
  33. package/dist/types/components/row.d.ts +0 -7
  34. package/dist/types/components/selectComponent.d.ts +0 -5
  35. package/dist/types/components/selectFilter.d.ts +0 -12
  36. package/dist/types/components/sortComponent.d.ts +0 -4
  37. package/dist/types/components/spinnner.d.ts +0 -3
  38. package/dist/types/components/table.d.ts +0 -8
  39. package/dist/types/components/textFilter.d.ts +0 -8
  40. package/dist/types/components/virtualized.d.ts +0 -7
  41. package/dist/types/hooks/useFilter.d.ts +0 -7
  42. package/dist/types/hooks/useMemoMap.d.ts +0 -2
  43. package/dist/types/hooks/useTableMemo.d.ts +0 -6
  44. package/dist/types/hooks/useTheme.d.ts +0 -2
  45. package/dist/types/index.d.ts +0 -13
  46. package/dist/types/internalState/calcItems.d.ts +0 -3
  47. package/dist/types/internalState/calcProps.d.ts +0 -2
  48. package/dist/types/internalState/cleanupState.d.ts +0 -3
  49. package/dist/types/internalState/filterColumns.d.ts +0 -3
  50. package/dist/types/internalState/normalizeExpanded.d.ts +0 -3
  51. package/dist/types/internalState/syncSelections.d.ts +0 -3
  52. package/dist/types/internalState/tableStateStorage.d.ts +0 -11
  53. package/dist/types/internalState/useTableState.d.ts +0 -3
  54. package/dist/types/misc/csvExport.d.ts +0 -7
  55. package/dist/types/misc/debounce.d.ts +0 -4
  56. package/dist/types/misc/helpers.d.ts +0 -16
  57. package/dist/types/misc/queue.d.ts +0 -6
  58. package/dist/types/misc/textMatch.d.ts +0 -2
  59. package/dist/types/misc/throttle.d.ts +0 -5
  60. package/dist/types/theme/defaultTheme/badge.d.ts +0 -2
  61. package/dist/types/theme/defaultTheme/button.d.ts +0 -2
  62. package/dist/types/theme/defaultTheme/checkbox.d.ts +0 -2
  63. package/dist/types/theme/defaultTheme/defaultClasses.d.ts +0 -19
  64. package/dist/types/theme/defaultTheme/defaultColors.d.ts +0 -2
  65. package/dist/types/theme/defaultTheme/defaultComponents.d.ts +0 -2
  66. package/dist/types/theme/defaultTheme/defaultIcons.d.ts +0 -2
  67. package/dist/types/theme/defaultTheme/defaultTexts.d.ts +0 -2
  68. package/dist/types/theme/defaultTheme/iconButton.d.ts +0 -2
  69. package/dist/types/theme/defaultTheme/index.d.ts +0 -2
  70. package/dist/types/theme/defaultTheme/popover.d.ts +0 -7
  71. package/dist/types/theme/defaultTheme/textField.d.ts +0 -2
  72. package/dist/types/theme/mui4Theme/index.d.ts +0 -7
  73. package/dist/types/theme/mui5Theme/index.d.ts +0 -7
  74. package/dist/types/theme/tableTheme.d.ts +0 -10
  75. package/dist/types/theme/useCssVariables.d.ts +0 -9
  76. package/dist/types/types.d.ts +0 -329
@@ -1,98 +0,0 @@
1
- var __defProp = Object.defineProperty;
2
- var __defProps = Object.defineProperties;
3
- var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
4
- var __getOwnPropSymbols = Object.getOwnPropertySymbols;
5
- var __hasOwnProp = Object.prototype.hasOwnProperty;
6
- var __propIsEnum = Object.prototype.propertyIsEnumerable;
7
- var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
8
- var __spreadValues = (a, b) => {
9
- for (var prop in b || (b = {}))
10
- if (__hasOwnProp.call(b, prop))
11
- __defNormalProp(a, prop, b[prop]);
12
- if (__getOwnPropSymbols)
13
- for (var prop of __getOwnPropSymbols(b)) {
14
- if (__propIsEnum.call(b, prop))
15
- __defNormalProp(a, prop, b[prop]);
16
- }
17
- return a;
18
- };
19
- var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
20
- var __objRest = (source, exclude) => {
21
- var target = {};
22
- for (var prop in source)
23
- if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)
24
- target[prop] = source[prop];
25
- if (source != null && __getOwnPropSymbols)
26
- for (var prop of __getOwnPropSymbols(source)) {
27
- if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))
28
- target[prop] = source[prop];
29
- }
30
- return target;
31
- };
32
- import { Button, IconButton, Checkbox, Badge, TextField, CircularProgress, useTheme } from "@mui/material";
33
- import { useMemo } from "react";
34
- import { P as Popover, m as mergeThemes, T as TableThemeContext } from "./tableTheme.js";
35
- import { jsx } from "@emotion/react/jsx-runtime";
36
- import "react-dom";
37
- import "@emotion/react";
38
- const mui5Theme = {
39
- components: {
40
- Button: (props) => /* @__PURE__ */ jsx(Button, __spreadProps(__spreadValues({}, props), {
41
- size: "small",
42
- fullWidth: true,
43
- css: {
44
- justifyContent: "start !important"
45
- },
46
- color: props.variant === "contained" ? "primary" : "inherit"
47
- })),
48
- IconButton: (props) => /* @__PURE__ */ jsx(IconButton, __spreadProps(__spreadValues({}, props), {
49
- size: "small",
50
- css: {
51
- fontSize: "0.8em"
52
- },
53
- color: "inherit"
54
- })),
55
- Checkbox: (props) => /* @__PURE__ */ jsx(Checkbox, __spreadProps(__spreadValues({}, props), {
56
- color: "primary",
57
- size: "small"
58
- })),
59
- Popover,
60
- Badge,
61
- TextField: (_a) => {
62
- var _b = _a, {
63
- endIcon
64
- } = _b, props = __objRest(_b, [
65
- "endIcon"
66
- ]);
67
- return /* @__PURE__ */ jsx(TextField, __spreadProps(__spreadValues({}, props), {
68
- InputProps: {
69
- endAdornment: endIcon
70
- },
71
- size: "small"
72
- }));
73
- },
74
- Spinner: (props) => /* @__PURE__ */ jsx(CircularProgress, __spreadProps(__spreadValues({}, props), {
75
- size: 20
76
- }))
77
- }
78
- };
79
- function Mui5TableThemeProvider({
80
- theme,
81
- children
82
- }) {
83
- const muiTheme = useTheme();
84
- const _theme = useMemo(() => {
85
- return mergeThemes({
86
- colors: {
87
- primary: muiTheme.palette.primary,
88
- secondary: muiTheme.palette.secondary
89
- }
90
- }, mui5Theme, theme != null ? theme : {});
91
- }, [muiTheme, theme]);
92
- return /* @__PURE__ */ jsx(TableThemeContext.Provider, {
93
- value: _theme,
94
- children
95
- });
96
- }
97
- export { Mui5TableThemeProvider, mui5Theme };
98
- //# sourceMappingURL=mui5Theme.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"mui5Theme.js","sources":["../../src/theme/mui5Theme/index.tsx"],"sourcesContent":["import { Badge, Button, Checkbox, CircularProgress, IconButton, TextField, useTheme } from '@mui/material';\nimport { ReactNode, useMemo } from 'react';\nimport { PartialTableTheme } from '../../types';\nimport { Popover } from '../defaultTheme/popover';\nimport { mergeThemes, TableThemeContext } from '../tableTheme';\n\nexport const mui5Theme: PartialTableTheme = {\n components: {\n Button: (props) => (\n <Button\n {...props}\n size=\"small\"\n fullWidth\n css={{ justifyContent: 'start !important' }}\n color={props.variant === 'contained' ? 'primary' : 'inherit'}\n />\n ),\n IconButton: (props) => <IconButton {...props} size=\"small\" css={{ fontSize: '0.8em' }} color=\"inherit\" />,\n Checkbox: (props) => <Checkbox {...props} color=\"primary\" size=\"small\" />,\n Popover,\n Badge,\n TextField: ({ endIcon, ...props }) => <TextField {...props} InputProps={{ endAdornment: endIcon }} size=\"small\" />,\n Spinner: (props) => <CircularProgress {...props} size={20} />,\n },\n};\n\nexport function Mui5TableThemeProvider({ theme, children }: { theme?: PartialTableTheme; children: ReactNode }) {\n const muiTheme = useTheme();\n\n const _theme = useMemo(() => {\n return mergeThemes(\n {\n colors: {\n primary: muiTheme.palette.primary,\n secondary: muiTheme.palette.secondary,\n },\n },\n mui5Theme,\n theme ?? {},\n );\n }, [muiTheme, theme]);\n\n return <TableThemeContext.Provider value={_theme}>{children}</TableThemeContext.Provider>;\n}\n"],"names":["mui5Theme","components","Button","props","justifyContent","variant","IconButton","fontSize","Checkbox","Popover","Badge","TextField","endIcon","endAdornment","Spinner","theme","children","muiTheme","useTheme","_theme","useMemo","mergeThemes","colors","primary","palette","secondary"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAMaA,YAA+B;AAAA,EAC1CC,YAAY;AAAA,IACVC,QAASC,+BACN,yCACKA;MACJ,MAAK;AAAA,MACL;MACA,KAAK;AAAA,QAAEC,gBAAgB;AAAA;MACvB,OAAOD,MAAME,YAAY,cAAc,YAAY;AAAA;IAGvDC,YAAaH,+BAAW,6CAAeA;MAAO,MAAK;AAAA,MAAQ,KAAK;AAAA,QAAEI,UAAU;AAAA;MAAW,OAAM;AAAA;IAC7FC,UAAWL,+BAAW,2CAAaA;MAAO,OAAM;AAAA,MAAU,MAAK;AAAA;IAC/DM;AAAAA,IACAC;AAAAA,IACAC,WAAW,CAAC;AAAA,mBAAEC;AAAAA;AAAAA,UAAF,IAAcT,kBAAd,IAAcA;AAAAA,QAAZS;AAAAA;iCAAyB,4CAAcT;QAAO,YAAY;AAAA,UAAEU,cAAcD;AAAAA;QAAW,MAAK;AAAA;;IACxGE,SAAUX,+BAAW,mDAAqBA;MAAO,MAAM;AAAA;;AAhBf;gCAoBL;AAAA,EAAEY;AAAAA,EAAOC;AAAAA,GAAgE;QACxGC,WAAWC;QAEXC,SAASC,QAAQ,MAAM;WACpBC,YACL;AAAA,MACEC,QAAQ;AAAA,QACNC,SAASN,SAASO,QAAQD;AAAAA,QAC1BE,WAAWR,SAASO,QAAQC;AAAAA;OAGhCzB,WACAe,wBAAS,EARO;AAAA,KAUjB,CAACE,UAAUF,KAAX,CAXmB;6BAad,kBAAkB;IAAS,OAAOI;AAAAA;;AAC3C;;"}
@@ -1,238 +0,0 @@
1
- var __defProp = Object.defineProperty;
2
- var __defProps = Object.defineProperties;
3
- var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
4
- var __getOwnPropSymbols = Object.getOwnPropertySymbols;
5
- var __hasOwnProp = Object.prototype.hasOwnProperty;
6
- var __propIsEnum = Object.prototype.propertyIsEnumerable;
7
- var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
8
- var __spreadValues = (a, b) => {
9
- for (var prop in b || (b = {}))
10
- if (__hasOwnProp.call(b, prop))
11
- __defNormalProp(a, prop, b[prop]);
12
- if (__getOwnPropSymbols)
13
- for (var prop of __getOwnPropSymbols(b)) {
14
- if (__propIsEnum.call(b, prop))
15
- __defNormalProp(a, prop, b[prop]);
16
- }
17
- return a;
18
- };
19
- var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
20
- import { createContext, useRef, useState, useLayoutEffect, useContext, useMemo } from "react";
21
- import { createPortal } from "react-dom";
22
- import { css } from "@emotion/react";
23
- import { jsx, jsxs, Fragment } from "@emotion/react/jsx-runtime";
24
- const white = "#ffffff";
25
- const lightGray = "#eeeeee";
26
- const gray = "#bdbdbd";
27
- const darkGray = "#777";
28
- const cell = css({
29
- padding: `calc(var(--spacing) * 0.1) calc(2 * var(--spacing))`,
30
- display: "flex",
31
- alignItems: "center",
32
- borderBottom: `1px solid #dfe2e9`,
33
- whiteSpace: "nowrap",
34
- overflow: "hidden",
35
- background: "white"
36
- });
37
- const defaultClasses = {
38
- table: css({
39
- position: "relative",
40
- display: "grid"
41
- }),
42
- cell,
43
- cellFill: css({
44
- borderBottom: `1px solid ${lightGray}`
45
- }),
46
- headerCell: css(cell, {
47
- padding: `var(--spacing) 0 var(--spacing) calc(2 * var(--spacing))`,
48
- borderBottom: `1px solid #c9cfda`
49
- }),
50
- footerCell: css(cell, {
51
- padding: `var(--spacing) calc(2 * var(--spacing))`,
52
- borderTop: `1px solid #c9cfda`,
53
- borderBottom: "none"
54
- }),
55
- firstCell: css({
56
- justifyContent: "start"
57
- }),
58
- sticky: css({
59
- position: "sticky",
60
- top: 0,
61
- zIndex: 2
62
- }),
63
- stickyBottom: css({
64
- position: "sticky",
65
- bottom: 0,
66
- zIndex: 2
67
- }),
68
- headerFill: css({
69
- borderBottom: `1px solid #c9cfda`,
70
- background: white
71
- }),
72
- footerFill: css({
73
- borderTop: `1px solid #c9cfda`,
74
- background: white
75
- }),
76
- text: css({
77
- minWidth: 0,
78
- overflow: "hidden",
79
- textOverflow: "ellipsis"
80
- }),
81
- card: css({
82
- borderRadius: 4,
83
- boxShadow: "0px 3px 14px 2px rgb(0 0 0 / 12%)",
84
- background: "white"
85
- }),
86
- clearFiltersButton: css({
87
- padding: `0 calc(2 * var(--spacing))`,
88
- fontWeight: "bold",
89
- position: "sticky",
90
- left: 0,
91
- maxWidth: "fit-content",
92
- gridColumn: "2/-1",
93
- button: {
94
- color: "var(--primaryMain) !important",
95
- border: "solid 1px",
96
- borderColor: "var(--primaryMain) !important",
97
- margin: "var(--spacing)"
98
- }
99
- })
100
- };
101
- const MARGIN = 10;
102
- const MAX_OFFSET = 20;
103
- const PopoverContext = createContext({
104
- depth: 0,
105
- visible: false
106
- });
107
- const Popover = ({
108
- anchorEl,
109
- open,
110
- hidden,
111
- onClose,
112
- children,
113
- className,
114
- align
115
- }) => {
116
- const popper = useRef(null);
117
- const [position, setPosition] = useState();
118
- useLayoutEffect(() => {
119
- if (!anchorEl || !open) {
120
- setPosition(void 0);
121
- return;
122
- }
123
- let last;
124
- function check() {
125
- var _a, _b;
126
- if (!anchorEl)
127
- return;
128
- const {
129
- left: anchorLeft,
130
- bottom: anchorBottom,
131
- width: anchorWidth
132
- } = anchorEl.getBoundingClientRect();
133
- const {
134
- width: popperWidth = 0,
135
- height: popperHeight = 0
136
- } = (_b = (_a = popper.current) == null ? void 0 : _a.getBoundingClientRect()) != null ? _b : {};
137
- const viewportWidth = document.documentElement.clientWidth;
138
- const viewportHeight = document.documentElement.clientHeight;
139
- const next = {
140
- left: align === "center" ? anchorLeft + anchorWidth / 2 - popperWidth / 2 : anchorLeft - Math.min(popperWidth ? popperWidth / 2 : Infinity, MAX_OFFSET),
141
- top: anchorBottom
142
- };
143
- if (next.left + popperWidth + MARGIN > viewportWidth) {
144
- next.left = viewportWidth - popperWidth - MARGIN;
145
- }
146
- if (next.top + popperHeight + MARGIN > viewportHeight) {
147
- next.top = viewportHeight - popperHeight - MARGIN;
148
- }
149
- if (next.left !== (last == null ? void 0 : last.left) || next.top !== (last == null ? void 0 : last.top)) {
150
- setPosition(next);
151
- }
152
- last = next;
153
- }
154
- check();
155
- const handle = setInterval(check, 16);
156
- return () => {
157
- clearInterval(handle);
158
- };
159
- }, [anchorEl, open]);
160
- const {
161
- depth
162
- } = useContext(PopoverContext);
163
- const visible = !hidden && !!position;
164
- const context = useMemo(() => ({
165
- depth: depth + 1,
166
- visible
167
- }), [depth, visible]);
168
- if (!open)
169
- return null;
170
- return /* @__PURE__ */ jsx(PopoverContext.Provider, {
171
- value: context,
172
- children: createPortal(/* @__PURE__ */ jsxs(Fragment, {
173
- children: [/* @__PURE__ */ jsx("div", {
174
- css: [{
175
- position: "fixed",
176
- left: 0,
177
- right: 0,
178
- top: 0,
179
- bottom: 0,
180
- zIndex: 1e3 + depth * 2
181
- }, hidden && {
182
- display: "none"
183
- }],
184
- onClick: () => onClose()
185
- }), /* @__PURE__ */ jsx("div", {
186
- ref: popper,
187
- className,
188
- css: [defaultClasses.card, __spreadProps(__spreadValues({
189
- position: "fixed",
190
- maxWidth: document.documentElement.clientWidth,
191
- maxHeight: document.documentElement.clientHeight
192
- }, position), {
193
- zIndex: 1001 + depth * 2
194
- }), hidden && {
195
- display: "none"
196
- }, !position && {
197
- visibility: "hidden"
198
- }],
199
- children
200
- })]
201
- }), document.body)
202
- });
203
- };
204
- let globalTableTheme = {};
205
- function configureTableTheme(tableTheme) {
206
- globalTableTheme = tableTheme;
207
- }
208
- const TableThemeContext = createContext({});
209
- function TableThemeProvider({
210
- theme,
211
- children
212
- }) {
213
- return /* @__PURE__ */ jsx(TableThemeContext.Provider, {
214
- value: theme,
215
- children
216
- });
217
- }
218
- function mergeThemes(...themes) {
219
- return {
220
- text: Object.assign({}, ...themes.map((theme) => theme.text)),
221
- classes: Object.assign({}, ...themes.map((theme) => theme.classes)),
222
- components: Object.assign({}, ...themes.map((theme) => theme.components)),
223
- icons: Object.assign({}, ...themes.map((theme) => theme.icons)),
224
- colors: {
225
- primary: Object.assign({}, ...themes.map((theme) => {
226
- var _a;
227
- return (_a = theme.colors) == null ? void 0 : _a.primary;
228
- })),
229
- secondary: Object.assign({}, ...themes.map((theme) => {
230
- var _a;
231
- return (_a = theme.colors) == null ? void 0 : _a.secondary;
232
- }))
233
- },
234
- spacing: themes.map((theme) => theme.spacing).reverse().find((x) => x !== void 0)
235
- };
236
- }
237
- export { Popover as P, TableThemeContext as T, darkGray as a, PopoverContext as b, gray as c, defaultClasses as d, configureTableTheme as e, TableThemeProvider as f, globalTableTheme as g, lightGray as l, mergeThemes as m };
238
- //# sourceMappingURL=tableTheme.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"tableTheme.js","sources":["../../src/theme/defaultTheme/defaultClasses.ts","../../src/theme/defaultTheme/popover.tsx","../../src/theme/tableTheme.tsx"],"sourcesContent":["import { css } from '@emotion/react';\n\nexport const white = '#ffffff';\nexport const lightGray = '#eeeeee';\nexport const gray = '#bdbdbd';\nexport const darkGray = '#777';\n\nconst cell = css({\n padding: `calc(var(--spacing) * 0.1) calc(2 * var(--spacing))`,\n display: 'flex',\n alignItems: 'center',\n borderBottom: `1px solid #dfe2e9`,\n whiteSpace: 'nowrap',\n overflow: 'hidden',\n background: 'white',\n});\n\nexport const defaultClasses = {\n table: css({\n position: 'relative',\n display: 'grid',\n }),\n\n cell,\n\n cellFill: css({\n borderBottom: `1px solid ${lightGray}`,\n }),\n\n headerCell: css(cell, {\n padding: `var(--spacing) 0 var(--spacing) calc(2 * var(--spacing))`,\n borderBottom: `1px solid #c9cfda`,\n }),\n\n footerCell: css(cell, {\n padding: `var(--spacing) calc(2 * var(--spacing))`,\n borderTop: `1px solid #c9cfda`,\n borderBottom: 'none',\n }),\n\n firstCell: css({\n justifyContent: 'start',\n }),\n\n sticky: css({\n position: 'sticky',\n top: 0,\n zIndex: 2,\n }),\n\n stickyBottom: css({\n position: 'sticky',\n bottom: 0,\n zIndex: 2,\n }),\n\n headerFill: css({\n borderBottom: `1px solid #c9cfda`,\n background: white,\n }),\n\n footerFill: css({\n borderTop: `1px solid #c9cfda`,\n background: white,\n }),\n\n text: css({\n minWidth: 0,\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n }),\n\n card: css({\n borderRadius: 4,\n boxShadow: '0px 3px 14px 2px rgb(0 0 0 / 12%)',\n background: 'white',\n }),\n\n clearFiltersButton: css({\n padding: `0 calc(2 * var(--spacing))`,\n fontWeight: 'bold',\n position: 'sticky',\n left: 0,\n maxWidth: 'fit-content',\n gridColumn: '2/-1',\n button: {\n color: 'var(--primaryMain) !important',\n border: 'solid 1px',\n borderColor: 'var(--primaryMain) !important',\n margin: 'var(--spacing)',\n },\n }),\n};\n","import React, { createContext, useContext, useLayoutEffect, useMemo, useRef, useState } from 'react';\nimport { createPortal } from 'react-dom';\nimport { TableTheme } from '../../types';\nimport { defaultClasses } from './defaultClasses';\n\nconst MARGIN = 10;\nconst MAX_OFFSET = 20;\n\nexport const PopoverContext = createContext({ depth: 0, visible: false });\n\nexport const Popover: TableTheme['components']['Popover'] = ({ anchorEl, open, hidden, onClose, children, className, align }) => {\n const popper = useRef<HTMLDivElement>(null);\n const [position, setPosition] = useState<{ left: number; top: number }>();\n\n useLayoutEffect(() => {\n if (!anchorEl || !open) {\n setPosition(undefined);\n return;\n }\n\n let last: { left: number; top: number } | undefined;\n\n function check() {\n if (!anchorEl) return;\n const { left: anchorLeft, bottom: anchorBottom, width: anchorWidth } = anchorEl.getBoundingClientRect();\n const { width: popperWidth = 0, height: popperHeight = 0 } = popper.current?.getBoundingClientRect() ?? {};\n const viewportWidth = document.documentElement.clientWidth;\n const viewportHeight = document.documentElement.clientHeight;\n\n const next = {\n left:\n align === 'center'\n ? anchorLeft + anchorWidth / 2 - popperWidth / 2\n : anchorLeft - Math.min(popperWidth ? popperWidth / 2 : Infinity, MAX_OFFSET),\n top: anchorBottom,\n };\n\n if (next.left + popperWidth + MARGIN > viewportWidth) {\n next.left = viewportWidth - popperWidth - MARGIN;\n }\n if (next.top + popperHeight + MARGIN > viewportHeight) {\n next.top = viewportHeight - popperHeight - MARGIN;\n }\n\n if (next.left !== last?.left || next.top !== last?.top) {\n setPosition(next);\n }\n\n last = next;\n }\n check();\n\n const handle = setInterval(check, 16);\n return () => {\n clearInterval(handle);\n };\n }, [anchorEl, open]);\n\n const { depth } = useContext(PopoverContext);\n const visible = !hidden && !!position;\n const context = useMemo(() => ({ depth: depth + 1, visible }), [depth, visible]);\n\n if (!open) return null;\n\n return (\n <PopoverContext.Provider value={context}>\n {createPortal(\n <>\n <div\n css={[\n {\n position: 'fixed',\n left: 0,\n right: 0,\n top: 0,\n bottom: 0,\n zIndex: 1000 + depth * 2,\n },\n hidden && { display: 'none' },\n ]}\n onClick={() => onClose()}\n />\n\n <div\n ref={popper}\n className={className}\n css={[\n defaultClasses.card,\n {\n position: 'fixed',\n maxWidth: document.documentElement.clientWidth,\n maxHeight: document.documentElement.clientHeight,\n ...position,\n zIndex: 1001 + depth * 2,\n },\n hidden && { display: 'none' },\n !position && { visibility: 'hidden' },\n ]}\n >\n {children}\n </div>\n </>,\n document.body,\n )}\n </PopoverContext.Provider>\n );\n};\n","import { createContext, ReactNode } from 'react';\nimport { PartialTableTheme } from '../types';\n\nexport let globalTableTheme: PartialTableTheme = {};\nexport function configureTableTheme(tableTheme: PartialTableTheme) {\n globalTableTheme = tableTheme;\n}\n\nexport const TableThemeContext = createContext<PartialTableTheme>({});\n\nexport function TableThemeProvider({ theme, children }: { theme: PartialTableTheme; children: ReactNode }) {\n return <TableThemeContext.Provider value={theme}>{children}</TableThemeContext.Provider>;\n}\n\nexport function mergeThemes<T>(...themes: PartialTableTheme<T>[]): PartialTableTheme<T> {\n return {\n text: Object.assign({}, ...themes.map((theme) => theme.text)),\n classes: Object.assign({}, ...themes.map((theme) => theme.classes)),\n components: Object.assign({}, ...themes.map((theme) => theme.components)),\n icons: Object.assign({}, ...themes.map((theme) => theme.icons)),\n colors: {\n primary: Object.assign({}, ...themes.map((theme) => theme.colors?.primary)),\n secondary: Object.assign({}, ...themes.map((theme) => theme.colors?.secondary)),\n },\n spacing: themes\n .map((theme) => theme.spacing)\n .reverse()\n .find((x) => x !== undefined),\n };\n}\n"],"names":["MARGIN","MAX_OFFSET","PopoverContext","createContext","depth","visible","Popover","anchorEl","open","hidden","onClose","children","className","align","popper","useRef","position","setPosition","useState","undefined","last","left","anchorLeft","bottom","anchorBottom","width","anchorWidth","getBoundingClientRect","popperWidth","height","popperHeight","current","viewportWidth","document","documentElement","clientWidth","viewportHeight","clientHeight","next","Math","min","Infinity","top","handle","setInterval","check","useContext","context","useMemo","createPortal","right","zIndex","display","defaultClasses","card","maxWidth","maxHeight","visibility","body","globalTableTheme","tableTheme","TableThemeContext","theme","themes","text","Object","assign","map","classes","components","icons","colors","primary","secondary","spacing","reverse","find","x"],"mappings":"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"}
@@ -1,5 +0,0 @@
1
- import { ComponentType } from 'react';
2
- import { TableTheme } from '../types';
3
- declare type Props = TableTheme['components']['TextField'] extends ComponentType<infer T> ? T : never;
4
- export declare function AutoFocusTextField(props: Omit<Props, 'inputRef'>): import("@emotion/react/jsx-runtime").JSX.Element;
5
- export {};
@@ -1,6 +0,0 @@
1
- import React from 'react';
2
- import { Id } from '..';
3
- export declare const Cell: React.MemoExoticComponent<(<T>({ itemId, rowIndex }: {
4
- itemId: Id;
5
- rowIndex: number;
6
- }) => import("@emotion/react/jsx-runtime").JSX.Element | null)>;
@@ -1 +0,0 @@
1
- export default function ClearFiltersButton<T>(): import("@emotion/react/jsx-runtime").JSX.Element;
@@ -1 +0,0 @@
1
- export declare function ColumnFooter(): import("@emotion/react/jsx-runtime").JSX.Element;
@@ -1,6 +0,0 @@
1
- import { StoreScope } from 'schummar-state/react';
2
- import { Id } from '..';
3
- export declare const ColumnHeaderContext: StoreScope<{
4
- items: Map<Id, HTMLDivElement>;
5
- }>;
6
- export declare function ColumnHeader(): import("@emotion/react/jsx-runtime").JSX.Element;
@@ -1,2 +0,0 @@
1
- /// <reference types="react" />
2
- export declare function ColumnSelection<T>(): JSX.Element;
@@ -1,11 +0,0 @@
1
- /// <reference types="react" />
2
- import { CommonFilterProps } from '../types';
3
- import { DatePickerProps, DateRange } from './datePicker';
4
- export declare function DateFilter<T, V>({ locale, firstDayOfWeek, singleSelect, filterBy, ...props }: {
5
- /** Which locale to use to render the calendar. */
6
- locale?: string;
7
- /** Which day of the week should be in the first column. */
8
- firstDayOfWeek?: DatePickerProps['firstDayOfWeek'];
9
- /** If enabled, only single days can be selected. Ranges otherwise. */
10
- singleSelect?: boolean;
11
- } & CommonFilterProps<T, V, Date | DateRange | null, Date | DateRange | null>): JSX.Element;
@@ -1,5 +0,0 @@
1
- export declare function DateInput({ value, onChange, locale }: {
2
- value: Date | null;
3
- onChange: (date: Date | null) => void;
4
- locale?: string;
5
- }): import("@emotion/react/jsx-runtime").JSX.Element;
@@ -1,25 +0,0 @@
1
- export declare type DateRange = {
2
- min: Date;
3
- max: Date;
4
- };
5
- export declare type DatePickerProps = {
6
- /** Currently selected day or range of days. */
7
- value: Date | DateRange | null;
8
- /** Callback for when the day (range) changes. */
9
- onChange: (value: Date | DateRange | null) => void;
10
- /** If enabled, ranges can be selected. */
11
- rangeSelect?: boolean;
12
- /** Which locale to use to render the calendar. */
13
- locale?: string;
14
- /** Which day of the week should be in the first column. */
15
- firstDayOfWeek?: 0 | 1 | 2 | 3 | 4 | 5 | 6;
16
- };
17
- /** Rounds a date down to the start of the day. */
18
- export declare const startOfDay: (d: Date) => Date;
19
- /** Rounds a date up to the end of the day. */
20
- export declare const endOfDay: (d: Date) => Date;
21
- export declare const today: () => DateRange;
22
- export declare const thisWeek: (firstDayOfWeek?: number) => DateRange;
23
- /** Returns whether two dates and/or date ranges intersect. Intersection is considered per day. */
24
- export declare function dateIntersect(a: Date | null | DateRange, b: Date | null | DateRange): boolean;
25
- export declare function DatePicker({ value, onChange, rangeSelect, locale, firstDayOfWeek }: DatePickerProps): import("@emotion/react/jsx-runtime").JSX.Element;
@@ -1,6 +0,0 @@
1
- /// <reference types="react" />
2
- import { Id } from '../types';
3
- export declare function ExpandControl<T>({ itemId, hasDeferredChildren }: {
4
- itemId: Id;
5
- hasDeferredChildren?: boolean;
6
- }): JSX.Element;
@@ -1,2 +0,0 @@
1
- /// <reference types="react" />
2
- export declare function Export<T>(): JSX.Element;
@@ -1,3 +0,0 @@
1
- import React from 'react';
2
- export declare const FilterControlContext: React.Context<() => void>;
3
- export declare function FilterControl<T>(): JSX.Element | null;
@@ -1,6 +0,0 @@
1
- import { ReactNode } from 'react';
2
- export declare function FormControlLabel({ control, label, disabled }: {
3
- control: ReactNode;
4
- label: ReactNode;
5
- disabled?: boolean;
6
- }): import("@emotion/react/jsx-runtime").JSX.Element;
@@ -1,5 +0,0 @@
1
- import { HTMLProps } from 'react';
2
- export declare function ResizeHandle(): import("@emotion/react/jsx-runtime").JSX.Element;
3
- export declare function ResizeHandleView({ enabled, ...props }: HTMLProps<HTMLDivElement> & {
4
- enabled?: boolean;
5
- }): import("@emotion/react/jsx-runtime").JSX.Element;
@@ -1,7 +0,0 @@
1
- import React from 'react';
2
- import { Id, MemoizedTableTheme } from '../types';
3
- export declare function calcClassNames<T>(classes: MemoizedTableTheme<any>['classes'] | undefined, item: T, index: number): (string | false | undefined)[];
4
- export declare const Row: React.MemoExoticComponent<(<T>({ itemId, rowIndex }: {
5
- itemId: Id;
6
- rowIndex: number;
7
- }) => JSX.Element | null)>;
@@ -1,5 +0,0 @@
1
- /// <reference types="react" />
2
- import { Id } from '../types';
3
- export declare function SelectComponent<T>({ itemId }: {
4
- itemId?: Id;
5
- }): JSX.Element;
@@ -1,12 +0,0 @@
1
- import { ReactNode } from 'react';
2
- import { CommonFilterProps, SerializableValue } from '../types';
3
- export declare function SelectFilter<T, V, F extends SerializableValue>({ options: providedOptions, stringValue, render, singleSelect, ...props }: {
4
- /** Which options are provided to select. By default all unique item values are used. */
5
- options?: F[];
6
- /** String representation of a value. Used to filter options via the text field. */
7
- stringValue?: (value: F) => string;
8
- /** Render values. By default a string representation of the value is used. */
9
- render?: (value: F) => ReactNode;
10
- /** If enabled, only one option can be selected at a time. */
11
- singleSelect?: boolean;
12
- } & CommonFilterProps<T, V, F, Set<F>>): JSX.Element;
@@ -1,4 +0,0 @@
1
- import { ReactNode } from 'react';
2
- export declare function SortComponent<T>({ children }: {
3
- children: ReactNode;
4
- }): JSX.Element;
@@ -1,3 +0,0 @@
1
- export declare function Spinner({ className }: {
2
- className?: string;
3
- }): import("@emotion/react/jsx-runtime").JSX.Element;
@@ -1,8 +0,0 @@
1
- import React from 'react';
2
- import { Store } from 'schummar-state/react';
3
- import { Id, InternalTableState, TableProps } from '../types';
4
- export declare const TableContext: React.Context<Store<InternalTableState<any>> | null>;
5
- export declare const ColumnContext: React.Context<Id | null>;
6
- export declare function useTableContext<T>(): Store<InternalTableState<T>>;
7
- export declare function useColumnContext(): Id;
8
- export declare function Table<T>(props: TableProps<T>): JSX.Element;
@@ -1,8 +0,0 @@
1
- /// <reference types="react" />
2
- import { CommonFilterProps } from '../types';
3
- export declare function TextFilter<T, V>({ compare, filterBy, ...props }: {
4
- /** Custom comparison function. Should return true if an item value matches the current filter value.
5
- * By default a fuzzy text comparison is used.
6
- */
7
- compare?: (itemValue: string, filterValue: string) => boolean;
8
- } & CommonFilterProps<T, V, string, string>): JSX.Element;
@@ -1,7 +0,0 @@
1
- import { HTMLProps, ReactNode } from 'react';
2
- import { Id } from '../types';
3
- export declare function Virtualized<T>({ header, footer, children, ...props }: {
4
- header: ReactNode;
5
- footer: ReactNode;
6
- children: (itemIds: Id[], startIndex: number) => ReactNode;
7
- } & HTMLProps<HTMLDivElement>): JSX.Element;
@@ -1,7 +0,0 @@
1
- import { FilterImplementation, SerializableValue } from '../types';
2
- export declare function useFilter<T, V, F, S extends SerializableValue>(impl: FilterImplementation<T, V, F, S>): {
3
- value: S | undefined;
4
- onChange: (value?: S | undefined) => void;
5
- close: () => void;
6
- filterBy: (value: V, item: T) => F | F[];
7
- };
@@ -1,2 +0,0 @@
1
- import { FunctionWithDeps } from '../types';
2
- export declare function useMemoMap(): <Fn extends (...args: any[]) => any>(key: string, fn: FunctionWithDeps<Fn>) => Fn;
@@ -1,6 +0,0 @@
1
- import { ReactNode } from 'react';
2
- import { FunctionWithDeps } from '../types';
3
- export declare function TableMemoContextProvider({ children }: {
4
- children: ReactNode;
5
- }): import("@emotion/react/jsx-runtime").JSX.Element;
6
- export declare function useTableMemo(): <Fn extends (...args: any[]) => any>(key: string, fn: FunctionWithDeps<Fn>) => Fn;
@@ -1,2 +0,0 @@
1
- import { MemoizedTableTheme } from '../types';
2
- export declare function useTheme<T, S>(selector: (theme: MemoizedTableTheme<T>) => S): S;
@@ -1,13 +0,0 @@
1
- export { AutoFocusTextField } from './components/autoFocusTextField';
2
- export { DateFilter } from './components/dateFilter';
3
- export { dateIntersect, DatePicker, endOfDay, startOfDay } from './components/datePicker';
4
- export type { DatePickerProps, DateRange } from './components/datePicker';
5
- export { SelectFilter } from './components/selectFilter';
6
- export { ColumnContext, Table, TableContext, useColumnContext, useTableContext } from './components/table';
7
- export { TextFilter } from './components/textFilter';
8
- export { useFilter } from './hooks/useFilter';
9
- export { useTheme } from './hooks/useTheme';
10
- export type { TableStateStorage } from './internalState/tableStateStorage';
11
- export { termMatch, textMatch } from './misc/textMatch';
12
- export { configureTableTheme, mergeThemes, TableThemeContext, TableThemeProvider } from './theme/tableTheme';
13
- export type { Column, Id, InternalColumn, PartialTableTheme, Sort, SortDirection, TableProps } from './types';
@@ -1,3 +0,0 @@
1
- import { Store } from 'schummar-state/react';
2
- import { InternalTableState } from '../types';
3
- export declare function calcItems<T>(state: Store<InternalTableState<T>>): void;
@@ -1,2 +0,0 @@
1
- import { InternalTableProps, TableProps } from '../types';
2
- export declare function calcProps<T>(props: TableProps<T>): InternalTableProps<T>;
@@ -1,3 +0,0 @@
1
- import { Store } from 'schummar-state/react';
2
- import { InternalTableState } from '../types';
3
- export declare function cleanupState<T>(state: Store<InternalTableState<T>>): void;
@@ -1,3 +0,0 @@
1
- import { Store } from 'schummar-state/react';
2
- import { InternalTableState } from '../types';
3
- export declare function filterColumns<T>(state: Store<InternalTableState<T>>): void;
@@ -1,3 +0,0 @@
1
- import { Store } from 'schummar-state/react';
2
- import { InternalTableState } from '../types';
3
- export declare function normalizeExpanded<T>(table: Store<InternalTableState<T>>): void;
@@ -1,3 +0,0 @@
1
- import { Store } from 'schummar-state/react';
2
- import { InternalTableState } from '../types';
3
- export declare function syncSelections<T>(table: Store<InternalTableState<T>>): void;
@@ -1,11 +0,0 @@
1
- export declare type TableStateStorage = {
2
- getItem: (key: string) => string | null | Promise<string | null>;
3
- setItem: (key: string, value: string) => unknown | Promise<unknown>;
4
- removeItem: (key: string) => unknown | Promise<unknown>;
5
- } & ({
6
- keys: () => string[] | Promise<string[]>;
7
- } | {
8
- length: number | (() => number | Promise<number>);
9
- key: (keyIndex: number) => string | null | Promise<string | null>;
10
- });
11
- export declare function useTableStateStorage(): boolean;
@@ -1,3 +0,0 @@
1
- import { Store } from 'schummar-state/react';
2
- import { InternalTableState, TableProps } from '../types';
3
- export declare function useTableState<T>(_props: TableProps<T>): Store<InternalTableState<T>>;