schummar-table 0.3.2 → 0.5.0-beta-1
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/assets/tableTheme.0eb513b0.js +215 -0
- package/dist/assets/tableTheme.0eb513b0.js.map +1 -0
- package/dist/assets/tableTheme.65fea986.js +214 -0
- package/dist/assets/tableTheme.65fea986.js.map +1 -0
- package/dist/assets/vendor.a5ec605d.js +2475 -0
- package/dist/assets/vendor.a5ec605d.js.map +1 -0
- package/dist/assets/vendor.c9c3328b.js +2464 -0
- package/dist/assets/vendor.c9c3328b.js.map +1 -0
- package/dist/cjs/mui4Theme.js +7 -0
- package/dist/cjs/mui4Theme.js.map +1 -0
- package/dist/cjs/mui5Theme.js +7 -0
- package/dist/cjs/mui5Theme.js.map +1 -0
- package/dist/cjs/schummar-table.js +1042 -0
- package/dist/cjs/schummar-table.js.map +1 -0
- package/dist/esm/mui4Theme.js +6 -0
- package/dist/esm/mui4Theme.js.map +1 -0
- package/dist/esm/mui5Theme.js +6 -0
- package/dist/esm/mui5Theme.js.map +1 -0
- package/dist/esm/schummar-table.js +1041 -0
- package/dist/esm/schummar-table.js.map +1 -0
- package/dist/{cjs → types}/components/cell.d.ts +1 -1
- package/dist/types/components/columnHeader.d.ts +7 -0
- package/dist/{cjs → types}/components/columnSelection.d.ts +0 -0
- package/dist/types/components/dateFilter.d.ts +8 -0
- package/dist/types/components/datePicker.d.ts +16 -0
- package/dist/types/components/expandControl.d.ts +6 -0
- package/dist/{cjs → types}/components/export.d.ts +0 -0
- package/dist/types/components/filterControl.d.ts +2 -0
- package/dist/types/components/formControlLabel.d.ts +5 -0
- package/dist/types/components/resizeHandle.d.ts +1 -0
- package/dist/{cjs → types}/components/row.d.ts +1 -1
- package/dist/{cjs → types}/components/selectComponent.d.ts +0 -0
- package/dist/types/components/selectFilter.d.ts +8 -0
- package/dist/{cjs → types}/components/sortComponent.d.ts +0 -0
- package/dist/types/components/spinnner.d.ts +3 -0
- package/dist/{cjs → types/components}/table.d.ts +1 -1
- package/dist/types/components/textFilter.d.ts +5 -0
- package/dist/{cjs → types}/components/virtualized.d.ts +0 -0
- package/dist/types/hooks/useFilter.d.ts +5 -0
- package/dist/types/hooks/useTheme.d.ts +1 -0
- package/dist/types/index.d.ts +10 -0
- package/dist/{cjs → types}/internalState/calcItems.d.ts +0 -0
- package/dist/{cjs → types}/internalState/calcProps.d.ts +0 -0
- package/dist/{cjs → types}/internalState/cleanupState.d.ts +0 -0
- package/dist/{cjs → types}/internalState/filterColumns.d.ts +0 -0
- package/dist/{cjs → types}/internalState/syncSelections.d.ts +0 -0
- package/dist/types/internalState/tableStateStorage.d.ts +11 -0
- package/dist/{cjs → types}/internalState/useTableState.d.ts +0 -0
- package/dist/{cjs → types}/misc/csvExport.d.ts +0 -0
- package/dist/types/misc/debounce.d.ts +4 -0
- package/dist/types/misc/deepPartial.d.ts +3 -0
- package/dist/{cjs → types}/misc/helpers.d.ts +2 -1
- package/dist/types/misc/queue.d.ts +6 -0
- package/dist/{cjs → types}/misc/textMatch.d.ts +0 -0
- package/dist/types/misc/throttle.d.ts +4 -0
- package/dist/types/theme/defaultClasses.d.ts +15 -0
- package/dist/types/theme/defaultColors.d.ts +2 -0
- package/dist/types/theme/defaultIcons.d.ts +2 -0
- package/dist/types/theme/defaultTexts.d.ts +2 -0
- package/dist/types/theme/defaultTheme/badge.d.ts +2 -0
- package/dist/types/theme/defaultTheme/button.d.ts +2 -0
- package/dist/types/theme/defaultTheme/checkbox.d.ts +2 -0
- package/dist/types/theme/defaultTheme/iconButton.d.ts +2 -0
- package/dist/types/theme/defaultTheme/index.d.ts +2 -0
- package/dist/types/theme/defaultTheme/popover.d.ts +4 -0
- package/dist/types/theme/defaultTheme/textField.d.ts +2 -0
- package/dist/types/theme/mui4Theme/index.d.ts +8 -0
- package/dist/types/theme/mui5Theme/index.d.ts +8 -0
- package/dist/types/theme/tableTheme.d.ts +11 -0
- package/dist/types/theme/useCssVariables.d.ts +9 -0
- package/dist/types/types.d.ts +285 -0
- package/package.json +78 -38
- package/dist/cjs/components/cell.js +0 -31
- package/dist/cjs/components/columnSelection.js +0 -37
- package/dist/cjs/components/defaultFilterComponent.d.ts +0 -22
- package/dist/cjs/components/defaultFilterComponent.js +0 -91
- package/dist/cjs/components/expandComponent.d.ts +0 -5
- package/dist/cjs/components/expandComponent.js +0 -38
- package/dist/cjs/components/export.js +0 -48
- package/dist/cjs/components/filterComponent.d.ts +0 -5
- package/dist/cjs/components/filterComponent.js +0 -25
- package/dist/cjs/components/row.js +0 -48
- package/dist/cjs/components/selectComponent.js +0 -61
- package/dist/cjs/components/sortComponent.js +0 -52
- package/dist/cjs/components/textFilterComponent.d.ts +0 -11
- package/dist/cjs/components/textFilterComponent.js +0 -70
- package/dist/cjs/components/useCommonClasses.d.ts +0 -1
- package/dist/cjs/components/useCommonClasses.js +0 -49
- package/dist/cjs/components/virtualized.js +0 -98
- package/dist/cjs/index.d.ts +0 -6
- package/dist/cjs/index.js +0 -18
- package/dist/cjs/internalState/calcItems.js +0 -85
- package/dist/cjs/internalState/calcProps.js +0 -89
- package/dist/cjs/internalState/cleanupState.js +0 -43
- package/dist/cjs/internalState/filterColumns.js +0 -10
- package/dist/cjs/internalState/syncSelections.js +0 -22
- package/dist/cjs/internalState/useTableState.js +0 -62
- package/dist/cjs/misc/csvExport.js +0 -15
- package/dist/cjs/misc/helpers.js +0 -91
- package/dist/cjs/misc/textMatch.js +0 -23
- package/dist/cjs/misc/throttle.d.ts +0 -1
- package/dist/cjs/misc/throttle.js +0 -30
- package/dist/cjs/package.json +0 -1
- package/dist/cjs/table.js +0 -69
- package/dist/cjs/types.d.ts +0 -134
- package/dist/cjs/types.js +0 -2
- package/dist/esm/components/cell.d.ts +0 -6
- package/dist/esm/components/cell.js +0 -28
- package/dist/esm/components/columnSelection.d.ts +0 -2
- package/dist/esm/components/columnSelection.js +0 -33
- package/dist/esm/components/defaultFilterComponent.d.ts +0 -22
- package/dist/esm/components/defaultFilterComponent.js +0 -86
- package/dist/esm/components/expandComponent.d.ts +0 -5
- package/dist/esm/components/expandComponent.js +0 -34
- package/dist/esm/components/export.d.ts +0 -2
- package/dist/esm/components/export.js +0 -44
- package/dist/esm/components/filterComponent.d.ts +0 -5
- package/dist/esm/components/filterComponent.js +0 -21
- package/dist/esm/components/row.d.ts +0 -7
- package/dist/esm/components/row.js +0 -44
- package/dist/esm/components/selectComponent.d.ts +0 -5
- package/dist/esm/components/selectComponent.js +0 -57
- package/dist/esm/components/sortComponent.d.ts +0 -4
- package/dist/esm/components/sortComponent.js +0 -48
- package/dist/esm/components/textFilterComponent.d.ts +0 -11
- package/dist/esm/components/textFilterComponent.js +0 -65
- package/dist/esm/components/useCommonClasses.d.ts +0 -1
- package/dist/esm/components/useCommonClasses.js +0 -46
- package/dist/esm/components/virtualized.d.ts +0 -6
- package/dist/esm/components/virtualized.js +0 -94
- package/dist/esm/index.d.ts +0 -6
- package/dist/esm/index.js +0 -4
- package/dist/esm/internalState/calcItems.d.ts +0 -3
- package/dist/esm/internalState/calcItems.js +0 -81
- package/dist/esm/internalState/calcProps.d.ts +0 -2
- package/dist/esm/internalState/calcProps.js +0 -85
- package/dist/esm/internalState/cleanupState.d.ts +0 -3
- package/dist/esm/internalState/cleanupState.js +0 -39
- package/dist/esm/internalState/filterColumns.d.ts +0 -3
- package/dist/esm/internalState/filterColumns.js +0 -6
- package/dist/esm/internalState/syncSelections.d.ts +0 -3
- package/dist/esm/internalState/syncSelections.js +0 -18
- package/dist/esm/internalState/useTableState.d.ts +0 -3
- package/dist/esm/internalState/useTableState.js +0 -58
- package/dist/esm/misc/csvExport.d.ts +0 -7
- package/dist/esm/misc/csvExport.js +0 -11
- package/dist/esm/misc/helpers.d.ts +0 -14
- package/dist/esm/misc/helpers.js +0 -77
- package/dist/esm/misc/textMatch.d.ts +0 -2
- package/dist/esm/misc/textMatch.js +0 -18
- package/dist/esm/misc/throttle.d.ts +0 -1
- package/dist/esm/misc/throttle.js +0 -26
- package/dist/esm/table.d.ts +0 -8
- package/dist/esm/table.js +0 -63
- package/dist/esm/types.d.ts +0 -134
- package/dist/esm/types.js +0 -1
|
@@ -0,0 +1,215 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __defProps = Object.defineProperties;
|
|
4
|
+
var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
|
|
5
|
+
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
|
|
6
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
7
|
+
var __propIsEnum = Object.prototype.propertyIsEnumerable;
|
|
8
|
+
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
9
|
+
var __spreadValues = (a, b) => {
|
|
10
|
+
for (var prop in b || (b = {}))
|
|
11
|
+
if (__hasOwnProp.call(b, prop))
|
|
12
|
+
__defNormalProp(a, prop, b[prop]);
|
|
13
|
+
if (__getOwnPropSymbols)
|
|
14
|
+
for (var prop of __getOwnPropSymbols(b)) {
|
|
15
|
+
if (__propIsEnum.call(b, prop))
|
|
16
|
+
__defNormalProp(a, prop, b[prop]);
|
|
17
|
+
}
|
|
18
|
+
return a;
|
|
19
|
+
};
|
|
20
|
+
var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
|
|
21
|
+
var require$$0 = require("react");
|
|
22
|
+
var vendor = require("./vendor.a5ec605d.js");
|
|
23
|
+
require("react-dom");
|
|
24
|
+
const white = "#ffffff";
|
|
25
|
+
const lightGray = "#eeeeee";
|
|
26
|
+
const gray = "#bdbdbd";
|
|
27
|
+
const cell = vendor.css({
|
|
28
|
+
padding: `calc(var(--spacing) * 0.1) var(--spacing)`,
|
|
29
|
+
display: "flex",
|
|
30
|
+
alignItems: "center",
|
|
31
|
+
borderBottom: `1px solid ${lightGray}`,
|
|
32
|
+
whiteSpace: "nowrap",
|
|
33
|
+
overflow: "hidden",
|
|
34
|
+
background: "white"
|
|
35
|
+
});
|
|
36
|
+
const defaultClasses = {
|
|
37
|
+
table: vendor.css({
|
|
38
|
+
position: "relative",
|
|
39
|
+
display: "grid"
|
|
40
|
+
}),
|
|
41
|
+
cell,
|
|
42
|
+
cellFill: vendor.css({
|
|
43
|
+
borderBottom: `1px solid ${lightGray}`
|
|
44
|
+
}),
|
|
45
|
+
headerCell: vendor.css(cell, {
|
|
46
|
+
padding: `var(--spacing) 0 var(--spacing) var(--spacing)`,
|
|
47
|
+
borderBottom: `2px solid ${gray}`,
|
|
48
|
+
gridTemplateColumns: "minmax(0, 1fr) max-content",
|
|
49
|
+
background: white,
|
|
50
|
+
gap: "var(--spacing)"
|
|
51
|
+
}),
|
|
52
|
+
firstCell: vendor.css({
|
|
53
|
+
justifyContent: "start"
|
|
54
|
+
}),
|
|
55
|
+
sticky: vendor.css({
|
|
56
|
+
position: "sticky",
|
|
57
|
+
top: 0,
|
|
58
|
+
zIndex: 2
|
|
59
|
+
}),
|
|
60
|
+
headerFill: vendor.css({
|
|
61
|
+
borderBottom: `2px solid ${gray}`,
|
|
62
|
+
background: white
|
|
63
|
+
}),
|
|
64
|
+
text: vendor.css({
|
|
65
|
+
minWidth: 0,
|
|
66
|
+
overflow: "hidden",
|
|
67
|
+
textOverflow: "ellipsis"
|
|
68
|
+
}),
|
|
69
|
+
card: vendor.css({
|
|
70
|
+
borderRadius: 4,
|
|
71
|
+
boxShadow: "0px 5px 5px -3px rgb(0 0 0 / 20%), 0px 8px 10px 1px rgb(0 0 0 / 14%), 0px 3px 14px 2px rgb(0 0 0 / 12%)",
|
|
72
|
+
background: "white"
|
|
73
|
+
})
|
|
74
|
+
};
|
|
75
|
+
const IconDefaultStyle = vendor.css({
|
|
76
|
+
width: "1.5em",
|
|
77
|
+
height: "1.5em",
|
|
78
|
+
color: "inherit"
|
|
79
|
+
});
|
|
80
|
+
function Icon(svg) {
|
|
81
|
+
return (props) => vendor.jsx(vendor.ClassNames, {
|
|
82
|
+
children: ({
|
|
83
|
+
css: css2
|
|
84
|
+
}) => require$$0.cloneElement(svg, __spreadProps(__spreadValues({}, props), {
|
|
85
|
+
className: css2(IconDefaultStyle, props.className)
|
|
86
|
+
}))
|
|
87
|
+
});
|
|
88
|
+
}
|
|
89
|
+
Icon(vendor.jsxs("svg", {
|
|
90
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
91
|
+
height: "24px",
|
|
92
|
+
viewBox: "0 0 24 24",
|
|
93
|
+
width: "24px",
|
|
94
|
+
fill: "currentColor",
|
|
95
|
+
children: [vendor.jsx("path", {
|
|
96
|
+
d: "M0 0h24v24H0V0z",
|
|
97
|
+
fill: "none"
|
|
98
|
+
}), vendor.jsx("path", {
|
|
99
|
+
d: "M3 17v2h6v-2H3zM3 5v2h10V5H3zm10 16v-2h8v-2h-8v-2h-2v6h2zM7 9v2H3v2h4v2h2V9H7zm14 4v-2H11v2h10zm-6-4h2V7h4V5h-4V3h-2v6z"
|
|
100
|
+
})]
|
|
101
|
+
}));
|
|
102
|
+
Icon(vendor.jsxs("svg", {
|
|
103
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
104
|
+
enableBackground: "new 0 0 24 24",
|
|
105
|
+
height: "24px",
|
|
106
|
+
viewBox: "0 0 24 24",
|
|
107
|
+
width: "24px",
|
|
108
|
+
fill: "currentColor",
|
|
109
|
+
children: [vendor.jsx("g", {
|
|
110
|
+
children: vendor.jsx("rect", {
|
|
111
|
+
fill: "none",
|
|
112
|
+
height: "24",
|
|
113
|
+
width: "24"
|
|
114
|
+
})
|
|
115
|
+
}), vendor.jsx("g", {
|
|
116
|
+
children: vendor.jsx("path", {
|
|
117
|
+
d: "M18,15v3H6v-3H4v3c0,1.1,0.9,2,2,2h12c1.1,0,2-0.9,2-2v-3H18z M17,11l-1.41-1.41L13,12.17V4h-2v8.17L8.41,9.59L7,11l5,5 L17,11z"
|
|
118
|
+
})
|
|
119
|
+
})]
|
|
120
|
+
}));
|
|
121
|
+
Icon(vendor.jsxs("svg", {
|
|
122
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
123
|
+
height: "24px",
|
|
124
|
+
viewBox: "0 0 24 24",
|
|
125
|
+
width: "24px",
|
|
126
|
+
fill: "currentColor",
|
|
127
|
+
children: [vendor.jsx("path", {
|
|
128
|
+
d: "M0 0h24v24H0V0z",
|
|
129
|
+
fill: "none"
|
|
130
|
+
}), vendor.jsx("path", {
|
|
131
|
+
d: "M19 2h-4.18C14.4.84 13.3 0 12 0S9.6.84 9.18 2H5c-1.1 0-2 .9-2 2v16c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm-7 0c.55 0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1zm7 18H5V4h2v3h10V4h2v16z"
|
|
132
|
+
})]
|
|
133
|
+
}));
|
|
134
|
+
Icon(vendor.jsxs("svg", {
|
|
135
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
136
|
+
height: "24px",
|
|
137
|
+
viewBox: "0 0 24 24",
|
|
138
|
+
width: "24px",
|
|
139
|
+
fill: "currentColor",
|
|
140
|
+
children: [vendor.jsx("path", {
|
|
141
|
+
d: "M0 0h24v24H0V0z",
|
|
142
|
+
fill: "none"
|
|
143
|
+
}), vendor.jsx("path", {
|
|
144
|
+
d: "M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6-6-6z"
|
|
145
|
+
})]
|
|
146
|
+
}));
|
|
147
|
+
Icon(vendor.jsxs("svg", {
|
|
148
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
149
|
+
height: "24px",
|
|
150
|
+
viewBox: "0 0 24 24",
|
|
151
|
+
width: "24px",
|
|
152
|
+
fill: "currentColor",
|
|
153
|
+
children: [vendor.jsx("path", {
|
|
154
|
+
d: "M0 0h24v24H0V0z",
|
|
155
|
+
fill: "none"
|
|
156
|
+
}), vendor.jsx("path", {
|
|
157
|
+
d: "M15.5 14h-.79l-.28-.27C15.41 12.59 16 11.11 16 9.5 16 5.91 13.09 3 9.5 3S3 5.91 3 9.5 5.91 16 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19l-4.99-5zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14z"
|
|
158
|
+
})]
|
|
159
|
+
}));
|
|
160
|
+
Icon(vendor.jsxs("svg", {
|
|
161
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
162
|
+
height: "24px",
|
|
163
|
+
viewBox: "0 0 24 24",
|
|
164
|
+
width: "24px",
|
|
165
|
+
fill: "currentColor",
|
|
166
|
+
children: [vendor.jsx("path", {
|
|
167
|
+
d: "M0 0h24v24H0V0z",
|
|
168
|
+
fill: "none"
|
|
169
|
+
}), vendor.jsx("path", {
|
|
170
|
+
d: "M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41z"
|
|
171
|
+
})]
|
|
172
|
+
}));
|
|
173
|
+
Icon(vendor.jsxs("svg", {
|
|
174
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
175
|
+
height: "24px",
|
|
176
|
+
viewBox: "0 0 24 24",
|
|
177
|
+
width: "24px",
|
|
178
|
+
fill: "currentColor",
|
|
179
|
+
children: [vendor.jsx("path", {
|
|
180
|
+
d: "M0 0h24v24H0V0z",
|
|
181
|
+
fill: "none"
|
|
182
|
+
}), vendor.jsx("path", {
|
|
183
|
+
d: "M7 10l5 5 5-5H7z"
|
|
184
|
+
})]
|
|
185
|
+
}));
|
|
186
|
+
Icon(vendor.jsxs("svg", {
|
|
187
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
188
|
+
height: "24px",
|
|
189
|
+
viewBox: "0 0 24 24",
|
|
190
|
+
width: "24px",
|
|
191
|
+
fill: "currentColor",
|
|
192
|
+
children: [vendor.jsx("path", {
|
|
193
|
+
d: "M0 0h24v24H0V0z",
|
|
194
|
+
fill: "none"
|
|
195
|
+
}), vendor.jsx("path", {
|
|
196
|
+
d: "M10 18h4v-2h-4v2zM3 6v2h18V6H3zm3 7h12v-2H6v2z"
|
|
197
|
+
})]
|
|
198
|
+
}));
|
|
199
|
+
Icon(vendor.jsxs("svg", {
|
|
200
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
201
|
+
height: "24px",
|
|
202
|
+
viewBox: "0 0 24 24",
|
|
203
|
+
width: "24px",
|
|
204
|
+
fill: "currentColor",
|
|
205
|
+
children: [vendor.jsx("path", {
|
|
206
|
+
d: "M0 0h24v24H0V0z",
|
|
207
|
+
fill: "none"
|
|
208
|
+
}), vendor.jsx("path", {
|
|
209
|
+
d: "M4 12l1.41 1.41L11 7.83V20h2V7.83l5.58 5.59L20 12l-8-8-8 8z"
|
|
210
|
+
})]
|
|
211
|
+
}));
|
|
212
|
+
require$$0.createContext(0);
|
|
213
|
+
require$$0.createContext({});
|
|
214
|
+
exports.defaultClasses = defaultClasses;
|
|
215
|
+
//# sourceMappingURL=tableTheme.0eb513b0.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tableTheme.0eb513b0.js","sources":["../../src/theme/defaultClasses.ts","../../src/theme/defaultIcons.tsx","../../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) var(--spacing)`,\n display: 'flex',\n alignItems: 'center',\n borderBottom: `1px solid ${lightGray}`,\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) var(--spacing)`,\n borderBottom: `2px solid ${gray}`,\n gridTemplateColumns: 'minmax(0, 1fr) max-content',\n background: white,\n gap: 'var(--spacing)',\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 headerFill: css({\n borderBottom: `2px solid ${gray}`,\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 5px 5px -3px rgb(0 0 0 / 20%), 0px 8px 10px 1px rgb(0 0 0 / 14%), 0px 3px 14px 2px rgb(0 0 0 / 12%)',\n background: 'white',\n }),\n};\n","import { ClassNames, css } from '@emotion/react';\nimport { cloneElement, HTMLProps } from 'react';\nimport { TableTheme } from '../types';\n\nconst IconDefaultStyle = css({\n width: '1.5em',\n height: '1.5em',\n color: 'inherit',\n});\n\nfunction Icon(svg: JSX.Element) {\n return (props: HTMLProps<Element>) => (\n <ClassNames>\n {({ css }) =>\n cloneElement(svg, {\n ...props,\n className: css(IconDefaultStyle, props.className),\n })\n }\n </ClassNames>\n );\n}\n\nconst Settings = Icon(\n <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 0 24 24\" width=\"24px\" fill=\"currentColor\">\n <path d=\"M0 0h24v24H0V0z\" fill=\"none\" />\n <path d=\"M3 17v2h6v-2H3zM3 5v2h10V5H3zm10 16v-2h8v-2h-8v-2h-2v6h2zM7 9v2H3v2h4v2h2V9H7zm14 4v-2H11v2h10zm-6-4h2V7h4V5h-4V3h-2v6z\" />\n </svg>,\n);\n\nconst Export = Icon(\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n enableBackground=\"new 0 0 24 24\"\n height=\"24px\"\n viewBox=\"0 0 24 24\"\n width=\"24px\"\n fill=\"currentColor\"\n >\n <g>\n <rect fill=\"none\" height=\"24\" width=\"24\" />\n </g>\n <g>\n <path d=\"M18,15v3H6v-3H4v3c0,1.1,0.9,2,2,2h12c1.1,0,2-0.9,2-2v-3H18z M17,11l-1.41-1.41L13,12.17V4h-2v8.17L8.41,9.59L7,11l5,5 L17,11z\" />\n </g>\n </svg>,\n);\n\nconst Clipboard = Icon(\n <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 0 24 24\" width=\"24px\" fill=\"currentColor\">\n <path d=\"M0 0h24v24H0V0z\" fill=\"none\" />\n <path d=\"M19 2h-4.18C14.4.84 13.3 0 12 0S9.6.84 9.18 2H5c-1.1 0-2 .9-2 2v16c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm-7 0c.55 0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1zm7 18H5V4h2v3h10V4h2v16z\" />\n </svg>,\n);\n\nconst ChevronRight = Icon(\n <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 0 24 24\" width=\"24px\" fill=\"currentColor\">\n <path d=\"M0 0h24v24H0V0z\" fill=\"none\" />\n <path d=\"M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6-6-6z\" />\n </svg>,\n);\n\nconst Search = Icon(\n <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 0 24 24\" width=\"24px\" fill=\"currentColor\">\n <path d=\"M0 0h24v24H0V0z\" fill=\"none\" />\n <path d=\"M15.5 14h-.79l-.28-.27C15.41 12.59 16 11.11 16 9.5 16 5.91 13.09 3 9.5 3S3 5.91 3 9.5 5.91 16 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19l-4.99-5zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14z\" />\n </svg>,\n);\n\nconst Clear = Icon(\n <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 0 24 24\" width=\"24px\" fill=\"currentColor\">\n <path d=\"M0 0h24v24H0V0z\" fill=\"none\" />\n <path d=\"M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41z\" />\n </svg>,\n);\n\nconst ArrowDropDown = Icon(\n <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 0 24 24\" width=\"24px\" fill=\"currentColor\">\n <path d=\"M0 0h24v24H0V0z\" fill=\"none\" />\n <path d=\"M7 10l5 5 5-5H7z\" />\n </svg>,\n);\n\nconst FilterList = Icon(\n <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 0 24 24\" width=\"24px\" fill=\"currentColor\">\n <path d=\"M0 0h24v24H0V0z\" fill=\"none\" />\n <path d=\"M10 18h4v-2h-4v2zM3 6v2h18V6H3zm3 7h12v-2H6v2z\" />\n </svg>,\n);\n\nconst ArrowUpward = Icon(\n <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 0 24 24\" width=\"24px\" fill=\"currentColor\">\n <path d=\"M0 0h24v24H0V0z\" fill=\"none\" />\n <path d=\"M4 12l1.41 1.41L11 7.83V20h2V7.83l5.58 5.59L20 12l-8-8-8 8z\" />\n </svg>,\n);\n\nexport const defaultIcons: TableTheme['icons'] = {\n Settings,\n Export,\n Clipboard,\n ChevronRight,\n Search,\n Clear,\n ArrowDropDown,\n FilterList,\n ArrowUpward,\n};\n","import React, { createContext, useContext, useLayoutEffect, 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(0);\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\n if (!open) return null;\n\n return (\n <PopoverContext.Provider value={depth + 1}>\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, useContext } from 'react';\nimport { DeepPartial } from '../misc/deepPartial';\nimport { InternalTableProps, TableTheme } from '../types';\nimport { defaultColors } from './defaultColors';\nimport { defaultIcons } from './defaultIcons';\nimport { defaultTexts } from './defaultTexts';\nimport { defaultComponents } from './defaultTheme';\n\nconst defaultTableTheme: TableTheme = {\n text: defaultTexts,\n components: defaultComponents,\n icons: defaultIcons,\n colors: defaultColors,\n spacing: '5px',\n};\n\nlet globalTableTheme: DeepPartial<TableTheme> = {};\nexport function configureTableTheme(tableTheme: DeepPartial<TableTheme>) {\n globalTableTheme = tableTheme;\n}\n\nexport const TableThemeContext = createContext<DeepPartial<TableTheme>>({});\n\nexport function TableThemeProvider({ theme, children }: { theme: DeepPartial<TableTheme>; children: ReactNode }) {\n return <TableThemeContext.Provider value={theme}>{children}</TableThemeContext.Provider>;\n}\n\nexport function mergeThemes<T>(...themes: DeepPartial<TableTheme<T>>[]): DeepPartial<TableTheme<T>> {\n return {\n text: Object.assign({}, ...themes.map((theme) => theme.text)),\n css: Object.assign({}, ...themes.map((theme) => theme.css)),\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\nexport function useTableTheme<T>(props: InternalTableProps<T>): TableTheme<T> {\n const contextTableTheme = useContext(TableThemeContext);\n\n return mergeThemes(defaultTableTheme, globalTableTheme, contextTableTheme, props) as TableTheme<T>;\n}\n"],"names":["css","IconDefaultStyle","width","height","color","svg","props","_jsx","ClassNames","cloneElement","className","Icon","_jsxs","createContext"],"mappings":"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"}
|
|
@@ -0,0 +1,214 @@
|
|
|
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 { cloneElement, createContext } from "react";
|
|
21
|
+
import { c as css, j as jsxs, a as jsx, C as ClassNames } from "./vendor.c9c3328b.js";
|
|
22
|
+
import "react-dom";
|
|
23
|
+
const white = "#ffffff";
|
|
24
|
+
const lightGray = "#eeeeee";
|
|
25
|
+
const gray = "#bdbdbd";
|
|
26
|
+
const cell = css({
|
|
27
|
+
padding: `calc(var(--spacing) * 0.1) var(--spacing)`,
|
|
28
|
+
display: "flex",
|
|
29
|
+
alignItems: "center",
|
|
30
|
+
borderBottom: `1px solid ${lightGray}`,
|
|
31
|
+
whiteSpace: "nowrap",
|
|
32
|
+
overflow: "hidden",
|
|
33
|
+
background: "white"
|
|
34
|
+
});
|
|
35
|
+
const defaultClasses = {
|
|
36
|
+
table: css({
|
|
37
|
+
position: "relative",
|
|
38
|
+
display: "grid"
|
|
39
|
+
}),
|
|
40
|
+
cell,
|
|
41
|
+
cellFill: css({
|
|
42
|
+
borderBottom: `1px solid ${lightGray}`
|
|
43
|
+
}),
|
|
44
|
+
headerCell: css(cell, {
|
|
45
|
+
padding: `var(--spacing) 0 var(--spacing) var(--spacing)`,
|
|
46
|
+
borderBottom: `2px solid ${gray}`,
|
|
47
|
+
gridTemplateColumns: "minmax(0, 1fr) max-content",
|
|
48
|
+
background: white,
|
|
49
|
+
gap: "var(--spacing)"
|
|
50
|
+
}),
|
|
51
|
+
firstCell: css({
|
|
52
|
+
justifyContent: "start"
|
|
53
|
+
}),
|
|
54
|
+
sticky: css({
|
|
55
|
+
position: "sticky",
|
|
56
|
+
top: 0,
|
|
57
|
+
zIndex: 2
|
|
58
|
+
}),
|
|
59
|
+
headerFill: css({
|
|
60
|
+
borderBottom: `2px solid ${gray}`,
|
|
61
|
+
background: white
|
|
62
|
+
}),
|
|
63
|
+
text: css({
|
|
64
|
+
minWidth: 0,
|
|
65
|
+
overflow: "hidden",
|
|
66
|
+
textOverflow: "ellipsis"
|
|
67
|
+
}),
|
|
68
|
+
card: css({
|
|
69
|
+
borderRadius: 4,
|
|
70
|
+
boxShadow: "0px 5px 5px -3px rgb(0 0 0 / 20%), 0px 8px 10px 1px rgb(0 0 0 / 14%), 0px 3px 14px 2px rgb(0 0 0 / 12%)",
|
|
71
|
+
background: "white"
|
|
72
|
+
})
|
|
73
|
+
};
|
|
74
|
+
const IconDefaultStyle = css({
|
|
75
|
+
width: "1.5em",
|
|
76
|
+
height: "1.5em",
|
|
77
|
+
color: "inherit"
|
|
78
|
+
});
|
|
79
|
+
function Icon(svg) {
|
|
80
|
+
return (props) => jsx(ClassNames, {
|
|
81
|
+
children: ({
|
|
82
|
+
css: css2
|
|
83
|
+
}) => cloneElement(svg, __spreadProps(__spreadValues({}, props), {
|
|
84
|
+
className: css2(IconDefaultStyle, props.className)
|
|
85
|
+
}))
|
|
86
|
+
});
|
|
87
|
+
}
|
|
88
|
+
Icon(jsxs("svg", {
|
|
89
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
90
|
+
height: "24px",
|
|
91
|
+
viewBox: "0 0 24 24",
|
|
92
|
+
width: "24px",
|
|
93
|
+
fill: "currentColor",
|
|
94
|
+
children: [jsx("path", {
|
|
95
|
+
d: "M0 0h24v24H0V0z",
|
|
96
|
+
fill: "none"
|
|
97
|
+
}), jsx("path", {
|
|
98
|
+
d: "M3 17v2h6v-2H3zM3 5v2h10V5H3zm10 16v-2h8v-2h-8v-2h-2v6h2zM7 9v2H3v2h4v2h2V9H7zm14 4v-2H11v2h10zm-6-4h2V7h4V5h-4V3h-2v6z"
|
|
99
|
+
})]
|
|
100
|
+
}));
|
|
101
|
+
Icon(jsxs("svg", {
|
|
102
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
103
|
+
enableBackground: "new 0 0 24 24",
|
|
104
|
+
height: "24px",
|
|
105
|
+
viewBox: "0 0 24 24",
|
|
106
|
+
width: "24px",
|
|
107
|
+
fill: "currentColor",
|
|
108
|
+
children: [jsx("g", {
|
|
109
|
+
children: jsx("rect", {
|
|
110
|
+
fill: "none",
|
|
111
|
+
height: "24",
|
|
112
|
+
width: "24"
|
|
113
|
+
})
|
|
114
|
+
}), jsx("g", {
|
|
115
|
+
children: jsx("path", {
|
|
116
|
+
d: "M18,15v3H6v-3H4v3c0,1.1,0.9,2,2,2h12c1.1,0,2-0.9,2-2v-3H18z M17,11l-1.41-1.41L13,12.17V4h-2v8.17L8.41,9.59L7,11l5,5 L17,11z"
|
|
117
|
+
})
|
|
118
|
+
})]
|
|
119
|
+
}));
|
|
120
|
+
Icon(jsxs("svg", {
|
|
121
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
122
|
+
height: "24px",
|
|
123
|
+
viewBox: "0 0 24 24",
|
|
124
|
+
width: "24px",
|
|
125
|
+
fill: "currentColor",
|
|
126
|
+
children: [jsx("path", {
|
|
127
|
+
d: "M0 0h24v24H0V0z",
|
|
128
|
+
fill: "none"
|
|
129
|
+
}), jsx("path", {
|
|
130
|
+
d: "M19 2h-4.18C14.4.84 13.3 0 12 0S9.6.84 9.18 2H5c-1.1 0-2 .9-2 2v16c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm-7 0c.55 0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1zm7 18H5V4h2v3h10V4h2v16z"
|
|
131
|
+
})]
|
|
132
|
+
}));
|
|
133
|
+
Icon(jsxs("svg", {
|
|
134
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
135
|
+
height: "24px",
|
|
136
|
+
viewBox: "0 0 24 24",
|
|
137
|
+
width: "24px",
|
|
138
|
+
fill: "currentColor",
|
|
139
|
+
children: [jsx("path", {
|
|
140
|
+
d: "M0 0h24v24H0V0z",
|
|
141
|
+
fill: "none"
|
|
142
|
+
}), jsx("path", {
|
|
143
|
+
d: "M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6-6-6z"
|
|
144
|
+
})]
|
|
145
|
+
}));
|
|
146
|
+
Icon(jsxs("svg", {
|
|
147
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
148
|
+
height: "24px",
|
|
149
|
+
viewBox: "0 0 24 24",
|
|
150
|
+
width: "24px",
|
|
151
|
+
fill: "currentColor",
|
|
152
|
+
children: [jsx("path", {
|
|
153
|
+
d: "M0 0h24v24H0V0z",
|
|
154
|
+
fill: "none"
|
|
155
|
+
}), jsx("path", {
|
|
156
|
+
d: "M15.5 14h-.79l-.28-.27C15.41 12.59 16 11.11 16 9.5 16 5.91 13.09 3 9.5 3S3 5.91 3 9.5 5.91 16 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19l-4.99-5zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14z"
|
|
157
|
+
})]
|
|
158
|
+
}));
|
|
159
|
+
Icon(jsxs("svg", {
|
|
160
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
161
|
+
height: "24px",
|
|
162
|
+
viewBox: "0 0 24 24",
|
|
163
|
+
width: "24px",
|
|
164
|
+
fill: "currentColor",
|
|
165
|
+
children: [jsx("path", {
|
|
166
|
+
d: "M0 0h24v24H0V0z",
|
|
167
|
+
fill: "none"
|
|
168
|
+
}), jsx("path", {
|
|
169
|
+
d: "M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41z"
|
|
170
|
+
})]
|
|
171
|
+
}));
|
|
172
|
+
Icon(jsxs("svg", {
|
|
173
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
174
|
+
height: "24px",
|
|
175
|
+
viewBox: "0 0 24 24",
|
|
176
|
+
width: "24px",
|
|
177
|
+
fill: "currentColor",
|
|
178
|
+
children: [jsx("path", {
|
|
179
|
+
d: "M0 0h24v24H0V0z",
|
|
180
|
+
fill: "none"
|
|
181
|
+
}), jsx("path", {
|
|
182
|
+
d: "M7 10l5 5 5-5H7z"
|
|
183
|
+
})]
|
|
184
|
+
}));
|
|
185
|
+
Icon(jsxs("svg", {
|
|
186
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
187
|
+
height: "24px",
|
|
188
|
+
viewBox: "0 0 24 24",
|
|
189
|
+
width: "24px",
|
|
190
|
+
fill: "currentColor",
|
|
191
|
+
children: [jsx("path", {
|
|
192
|
+
d: "M0 0h24v24H0V0z",
|
|
193
|
+
fill: "none"
|
|
194
|
+
}), jsx("path", {
|
|
195
|
+
d: "M10 18h4v-2h-4v2zM3 6v2h18V6H3zm3 7h12v-2H6v2z"
|
|
196
|
+
})]
|
|
197
|
+
}));
|
|
198
|
+
Icon(jsxs("svg", {
|
|
199
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
200
|
+
height: "24px",
|
|
201
|
+
viewBox: "0 0 24 24",
|
|
202
|
+
width: "24px",
|
|
203
|
+
fill: "currentColor",
|
|
204
|
+
children: [jsx("path", {
|
|
205
|
+
d: "M0 0h24v24H0V0z",
|
|
206
|
+
fill: "none"
|
|
207
|
+
}), jsx("path", {
|
|
208
|
+
d: "M4 12l1.41 1.41L11 7.83V20h2V7.83l5.58 5.59L20 12l-8-8-8 8z"
|
|
209
|
+
})]
|
|
210
|
+
}));
|
|
211
|
+
createContext(0);
|
|
212
|
+
createContext({});
|
|
213
|
+
export { defaultClasses as d };
|
|
214
|
+
//# sourceMappingURL=tableTheme.65fea986.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tableTheme.65fea986.js","sources":["../../src/theme/defaultClasses.ts","../../src/theme/defaultIcons.tsx","../../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) var(--spacing)`,\n display: 'flex',\n alignItems: 'center',\n borderBottom: `1px solid ${lightGray}`,\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) var(--spacing)`,\n borderBottom: `2px solid ${gray}`,\n gridTemplateColumns: 'minmax(0, 1fr) max-content',\n background: white,\n gap: 'var(--spacing)',\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 headerFill: css({\n borderBottom: `2px solid ${gray}`,\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 5px 5px -3px rgb(0 0 0 / 20%), 0px 8px 10px 1px rgb(0 0 0 / 14%), 0px 3px 14px 2px rgb(0 0 0 / 12%)',\n background: 'white',\n }),\n};\n","import { ClassNames, css } from '@emotion/react';\nimport { cloneElement, HTMLProps } from 'react';\nimport { TableTheme } from '../types';\n\nconst IconDefaultStyle = css({\n width: '1.5em',\n height: '1.5em',\n color: 'inherit',\n});\n\nfunction Icon(svg: JSX.Element) {\n return (props: HTMLProps<Element>) => (\n <ClassNames>\n {({ css }) =>\n cloneElement(svg, {\n ...props,\n className: css(IconDefaultStyle, props.className),\n })\n }\n </ClassNames>\n );\n}\n\nconst Settings = Icon(\n <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 0 24 24\" width=\"24px\" fill=\"currentColor\">\n <path d=\"M0 0h24v24H0V0z\" fill=\"none\" />\n <path d=\"M3 17v2h6v-2H3zM3 5v2h10V5H3zm10 16v-2h8v-2h-8v-2h-2v6h2zM7 9v2H3v2h4v2h2V9H7zm14 4v-2H11v2h10zm-6-4h2V7h4V5h-4V3h-2v6z\" />\n </svg>,\n);\n\nconst Export = Icon(\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n enableBackground=\"new 0 0 24 24\"\n height=\"24px\"\n viewBox=\"0 0 24 24\"\n width=\"24px\"\n fill=\"currentColor\"\n >\n <g>\n <rect fill=\"none\" height=\"24\" width=\"24\" />\n </g>\n <g>\n <path d=\"M18,15v3H6v-3H4v3c0,1.1,0.9,2,2,2h12c1.1,0,2-0.9,2-2v-3H18z M17,11l-1.41-1.41L13,12.17V4h-2v8.17L8.41,9.59L7,11l5,5 L17,11z\" />\n </g>\n </svg>,\n);\n\nconst Clipboard = Icon(\n <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 0 24 24\" width=\"24px\" fill=\"currentColor\">\n <path d=\"M0 0h24v24H0V0z\" fill=\"none\" />\n <path d=\"M19 2h-4.18C14.4.84 13.3 0 12 0S9.6.84 9.18 2H5c-1.1 0-2 .9-2 2v16c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm-7 0c.55 0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1zm7 18H5V4h2v3h10V4h2v16z\" />\n </svg>,\n);\n\nconst ChevronRight = Icon(\n <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 0 24 24\" width=\"24px\" fill=\"currentColor\">\n <path d=\"M0 0h24v24H0V0z\" fill=\"none\" />\n <path d=\"M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6-6-6z\" />\n </svg>,\n);\n\nconst Search = Icon(\n <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 0 24 24\" width=\"24px\" fill=\"currentColor\">\n <path d=\"M0 0h24v24H0V0z\" fill=\"none\" />\n <path d=\"M15.5 14h-.79l-.28-.27C15.41 12.59 16 11.11 16 9.5 16 5.91 13.09 3 9.5 3S3 5.91 3 9.5 5.91 16 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19l-4.99-5zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14z\" />\n </svg>,\n);\n\nconst Clear = Icon(\n <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 0 24 24\" width=\"24px\" fill=\"currentColor\">\n <path d=\"M0 0h24v24H0V0z\" fill=\"none\" />\n <path d=\"M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41z\" />\n </svg>,\n);\n\nconst ArrowDropDown = Icon(\n <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 0 24 24\" width=\"24px\" fill=\"currentColor\">\n <path d=\"M0 0h24v24H0V0z\" fill=\"none\" />\n <path d=\"M7 10l5 5 5-5H7z\" />\n </svg>,\n);\n\nconst FilterList = Icon(\n <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 0 24 24\" width=\"24px\" fill=\"currentColor\">\n <path d=\"M0 0h24v24H0V0z\" fill=\"none\" />\n <path d=\"M10 18h4v-2h-4v2zM3 6v2h18V6H3zm3 7h12v-2H6v2z\" />\n </svg>,\n);\n\nconst ArrowUpward = Icon(\n <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 0 24 24\" width=\"24px\" fill=\"currentColor\">\n <path d=\"M0 0h24v24H0V0z\" fill=\"none\" />\n <path d=\"M4 12l1.41 1.41L11 7.83V20h2V7.83l5.58 5.59L20 12l-8-8-8 8z\" />\n </svg>,\n);\n\nexport const defaultIcons: TableTheme['icons'] = {\n Settings,\n Export,\n Clipboard,\n ChevronRight,\n Search,\n Clear,\n ArrowDropDown,\n FilterList,\n ArrowUpward,\n};\n","import React, { createContext, useContext, useLayoutEffect, 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(0);\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\n if (!open) return null;\n\n return (\n <PopoverContext.Provider value={depth + 1}>\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, useContext } from 'react';\nimport { DeepPartial } from '../misc/deepPartial';\nimport { InternalTableProps, TableTheme } from '../types';\nimport { defaultColors } from './defaultColors';\nimport { defaultIcons } from './defaultIcons';\nimport { defaultTexts } from './defaultTexts';\nimport { defaultComponents } from './defaultTheme';\n\nconst defaultTableTheme: TableTheme = {\n text: defaultTexts,\n components: defaultComponents,\n icons: defaultIcons,\n colors: defaultColors,\n spacing: '5px',\n};\n\nlet globalTableTheme: DeepPartial<TableTheme> = {};\nexport function configureTableTheme(tableTheme: DeepPartial<TableTheme>) {\n globalTableTheme = tableTheme;\n}\n\nexport const TableThemeContext = createContext<DeepPartial<TableTheme>>({});\n\nexport function TableThemeProvider({ theme, children }: { theme: DeepPartial<TableTheme>; children: ReactNode }) {\n return <TableThemeContext.Provider value={theme}>{children}</TableThemeContext.Provider>;\n}\n\nexport function mergeThemes<T>(...themes: DeepPartial<TableTheme<T>>[]): DeepPartial<TableTheme<T>> {\n return {\n text: Object.assign({}, ...themes.map((theme) => theme.text)),\n css: Object.assign({}, ...themes.map((theme) => theme.css)),\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\nexport function useTableTheme<T>(props: InternalTableProps<T>): TableTheme<T> {\n const contextTableTheme = useContext(TableThemeContext);\n\n return mergeThemes(defaultTableTheme, globalTableTheme, contextTableTheme, props) as TableTheme<T>;\n}\n"],"names":["IconDefaultStyle","css","width","height","color","svg","props","_jsx","cloneElement","className","Icon","_jsxs","createContext"],"mappings":"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"}
|