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.
Files changed (156) hide show
  1. package/dist/assets/tableTheme.0eb513b0.js +215 -0
  2. package/dist/assets/tableTheme.0eb513b0.js.map +1 -0
  3. package/dist/assets/tableTheme.65fea986.js +214 -0
  4. package/dist/assets/tableTheme.65fea986.js.map +1 -0
  5. package/dist/assets/vendor.a5ec605d.js +2475 -0
  6. package/dist/assets/vendor.a5ec605d.js.map +1 -0
  7. package/dist/assets/vendor.c9c3328b.js +2464 -0
  8. package/dist/assets/vendor.c9c3328b.js.map +1 -0
  9. package/dist/cjs/mui4Theme.js +7 -0
  10. package/dist/cjs/mui4Theme.js.map +1 -0
  11. package/dist/cjs/mui5Theme.js +7 -0
  12. package/dist/cjs/mui5Theme.js.map +1 -0
  13. package/dist/cjs/schummar-table.js +1042 -0
  14. package/dist/cjs/schummar-table.js.map +1 -0
  15. package/dist/esm/mui4Theme.js +6 -0
  16. package/dist/esm/mui4Theme.js.map +1 -0
  17. package/dist/esm/mui5Theme.js +6 -0
  18. package/dist/esm/mui5Theme.js.map +1 -0
  19. package/dist/esm/schummar-table.js +1041 -0
  20. package/dist/esm/schummar-table.js.map +1 -0
  21. package/dist/{cjs → types}/components/cell.d.ts +1 -1
  22. package/dist/types/components/columnHeader.d.ts +7 -0
  23. package/dist/{cjs → types}/components/columnSelection.d.ts +0 -0
  24. package/dist/types/components/dateFilter.d.ts +8 -0
  25. package/dist/types/components/datePicker.d.ts +16 -0
  26. package/dist/types/components/expandControl.d.ts +6 -0
  27. package/dist/{cjs → types}/components/export.d.ts +0 -0
  28. package/dist/types/components/filterControl.d.ts +2 -0
  29. package/dist/types/components/formControlLabel.d.ts +5 -0
  30. package/dist/types/components/resizeHandle.d.ts +1 -0
  31. package/dist/{cjs → types}/components/row.d.ts +1 -1
  32. package/dist/{cjs → types}/components/selectComponent.d.ts +0 -0
  33. package/dist/types/components/selectFilter.d.ts +8 -0
  34. package/dist/{cjs → types}/components/sortComponent.d.ts +0 -0
  35. package/dist/types/components/spinnner.d.ts +3 -0
  36. package/dist/{cjs → types/components}/table.d.ts +1 -1
  37. package/dist/types/components/textFilter.d.ts +5 -0
  38. package/dist/{cjs → types}/components/virtualized.d.ts +0 -0
  39. package/dist/types/hooks/useFilter.d.ts +5 -0
  40. package/dist/types/hooks/useTheme.d.ts +1 -0
  41. package/dist/types/index.d.ts +10 -0
  42. package/dist/{cjs → types}/internalState/calcItems.d.ts +0 -0
  43. package/dist/{cjs → types}/internalState/calcProps.d.ts +0 -0
  44. package/dist/{cjs → types}/internalState/cleanupState.d.ts +0 -0
  45. package/dist/{cjs → types}/internalState/filterColumns.d.ts +0 -0
  46. package/dist/{cjs → types}/internalState/syncSelections.d.ts +0 -0
  47. package/dist/types/internalState/tableStateStorage.d.ts +11 -0
  48. package/dist/{cjs → types}/internalState/useTableState.d.ts +0 -0
  49. package/dist/{cjs → types}/misc/csvExport.d.ts +0 -0
  50. package/dist/types/misc/debounce.d.ts +4 -0
  51. package/dist/types/misc/deepPartial.d.ts +3 -0
  52. package/dist/{cjs → types}/misc/helpers.d.ts +2 -1
  53. package/dist/types/misc/queue.d.ts +6 -0
  54. package/dist/{cjs → types}/misc/textMatch.d.ts +0 -0
  55. package/dist/types/misc/throttle.d.ts +4 -0
  56. package/dist/types/theme/defaultClasses.d.ts +15 -0
  57. package/dist/types/theme/defaultColors.d.ts +2 -0
  58. package/dist/types/theme/defaultIcons.d.ts +2 -0
  59. package/dist/types/theme/defaultTexts.d.ts +2 -0
  60. package/dist/types/theme/defaultTheme/badge.d.ts +2 -0
  61. package/dist/types/theme/defaultTheme/button.d.ts +2 -0
  62. package/dist/types/theme/defaultTheme/checkbox.d.ts +2 -0
  63. package/dist/types/theme/defaultTheme/iconButton.d.ts +2 -0
  64. package/dist/types/theme/defaultTheme/index.d.ts +2 -0
  65. package/dist/types/theme/defaultTheme/popover.d.ts +4 -0
  66. package/dist/types/theme/defaultTheme/textField.d.ts +2 -0
  67. package/dist/types/theme/mui4Theme/index.d.ts +8 -0
  68. package/dist/types/theme/mui5Theme/index.d.ts +8 -0
  69. package/dist/types/theme/tableTheme.d.ts +11 -0
  70. package/dist/types/theme/useCssVariables.d.ts +9 -0
  71. package/dist/types/types.d.ts +285 -0
  72. package/package.json +78 -38
  73. package/dist/cjs/components/cell.js +0 -31
  74. package/dist/cjs/components/columnSelection.js +0 -37
  75. package/dist/cjs/components/defaultFilterComponent.d.ts +0 -22
  76. package/dist/cjs/components/defaultFilterComponent.js +0 -91
  77. package/dist/cjs/components/expandComponent.d.ts +0 -5
  78. package/dist/cjs/components/expandComponent.js +0 -38
  79. package/dist/cjs/components/export.js +0 -48
  80. package/dist/cjs/components/filterComponent.d.ts +0 -5
  81. package/dist/cjs/components/filterComponent.js +0 -25
  82. package/dist/cjs/components/row.js +0 -48
  83. package/dist/cjs/components/selectComponent.js +0 -61
  84. package/dist/cjs/components/sortComponent.js +0 -52
  85. package/dist/cjs/components/textFilterComponent.d.ts +0 -11
  86. package/dist/cjs/components/textFilterComponent.js +0 -70
  87. package/dist/cjs/components/useCommonClasses.d.ts +0 -1
  88. package/dist/cjs/components/useCommonClasses.js +0 -49
  89. package/dist/cjs/components/virtualized.js +0 -98
  90. package/dist/cjs/index.d.ts +0 -6
  91. package/dist/cjs/index.js +0 -18
  92. package/dist/cjs/internalState/calcItems.js +0 -85
  93. package/dist/cjs/internalState/calcProps.js +0 -89
  94. package/dist/cjs/internalState/cleanupState.js +0 -43
  95. package/dist/cjs/internalState/filterColumns.js +0 -10
  96. package/dist/cjs/internalState/syncSelections.js +0 -22
  97. package/dist/cjs/internalState/useTableState.js +0 -62
  98. package/dist/cjs/misc/csvExport.js +0 -15
  99. package/dist/cjs/misc/helpers.js +0 -91
  100. package/dist/cjs/misc/textMatch.js +0 -23
  101. package/dist/cjs/misc/throttle.d.ts +0 -1
  102. package/dist/cjs/misc/throttle.js +0 -30
  103. package/dist/cjs/package.json +0 -1
  104. package/dist/cjs/table.js +0 -69
  105. package/dist/cjs/types.d.ts +0 -134
  106. package/dist/cjs/types.js +0 -2
  107. package/dist/esm/components/cell.d.ts +0 -6
  108. package/dist/esm/components/cell.js +0 -28
  109. package/dist/esm/components/columnSelection.d.ts +0 -2
  110. package/dist/esm/components/columnSelection.js +0 -33
  111. package/dist/esm/components/defaultFilterComponent.d.ts +0 -22
  112. package/dist/esm/components/defaultFilterComponent.js +0 -86
  113. package/dist/esm/components/expandComponent.d.ts +0 -5
  114. package/dist/esm/components/expandComponent.js +0 -34
  115. package/dist/esm/components/export.d.ts +0 -2
  116. package/dist/esm/components/export.js +0 -44
  117. package/dist/esm/components/filterComponent.d.ts +0 -5
  118. package/dist/esm/components/filterComponent.js +0 -21
  119. package/dist/esm/components/row.d.ts +0 -7
  120. package/dist/esm/components/row.js +0 -44
  121. package/dist/esm/components/selectComponent.d.ts +0 -5
  122. package/dist/esm/components/selectComponent.js +0 -57
  123. package/dist/esm/components/sortComponent.d.ts +0 -4
  124. package/dist/esm/components/sortComponent.js +0 -48
  125. package/dist/esm/components/textFilterComponent.d.ts +0 -11
  126. package/dist/esm/components/textFilterComponent.js +0 -65
  127. package/dist/esm/components/useCommonClasses.d.ts +0 -1
  128. package/dist/esm/components/useCommonClasses.js +0 -46
  129. package/dist/esm/components/virtualized.d.ts +0 -6
  130. package/dist/esm/components/virtualized.js +0 -94
  131. package/dist/esm/index.d.ts +0 -6
  132. package/dist/esm/index.js +0 -4
  133. package/dist/esm/internalState/calcItems.d.ts +0 -3
  134. package/dist/esm/internalState/calcItems.js +0 -81
  135. package/dist/esm/internalState/calcProps.d.ts +0 -2
  136. package/dist/esm/internalState/calcProps.js +0 -85
  137. package/dist/esm/internalState/cleanupState.d.ts +0 -3
  138. package/dist/esm/internalState/cleanupState.js +0 -39
  139. package/dist/esm/internalState/filterColumns.d.ts +0 -3
  140. package/dist/esm/internalState/filterColumns.js +0 -6
  141. package/dist/esm/internalState/syncSelections.d.ts +0 -3
  142. package/dist/esm/internalState/syncSelections.js +0 -18
  143. package/dist/esm/internalState/useTableState.d.ts +0 -3
  144. package/dist/esm/internalState/useTableState.js +0 -58
  145. package/dist/esm/misc/csvExport.d.ts +0 -7
  146. package/dist/esm/misc/csvExport.js +0 -11
  147. package/dist/esm/misc/helpers.d.ts +0 -14
  148. package/dist/esm/misc/helpers.js +0 -77
  149. package/dist/esm/misc/textMatch.d.ts +0 -2
  150. package/dist/esm/misc/textMatch.js +0 -18
  151. package/dist/esm/misc/throttle.d.ts +0 -1
  152. package/dist/esm/misc/throttle.js +0 -26
  153. package/dist/esm/table.d.ts +0 -8
  154. package/dist/esm/table.js +0 -63
  155. package/dist/esm/types.d.ts +0 -134
  156. 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":";;;;;;;;;;;;;;;;;;;;;;;MAEa,QAAQ;MACR,YAAY;MACZ,OAAO;AAGpB,MAAM,OAAOA,WAAI;AAAA,EACf,SAAS;AAAA,EACT,SAAS;AAAA,EACT,YAAY;AAAA,EACZ,cAAc,aAAa;AAAA,EAC3B,YAAY;AAAA,EACZ,UAAU;AAAA,EACV,YAAY;AAAA;MAGD,iBAAiB;AAAA,EAC5B,OAAOA,WAAI;AAAA,IACT,UAAU;AAAA,IACV,SAAS;AAAA;AAAA,EAGX;AAAA,EAEA,UAAUA,WAAI;AAAA,IACZ,cAAc,aAAa;AAAA;AAAA,EAG7B,YAAYA,WAAI,MAAM;AAAA,IACpB,SAAS;AAAA,IACT,cAAc,aAAa;AAAA,IAC3B,qBAAqB;AAAA,IACrB,YAAY;AAAA,IACZ,KAAK;AAAA;AAAA,EAGP,WAAWA,WAAI;AAAA,IACb,gBAAgB;AAAA;AAAA,EAGlB,QAAQA,WAAI;AAAA,IACV,UAAU;AAAA,IACV,KAAK;AAAA,IACL,QAAQ;AAAA;AAAA,EAGV,YAAYA,WAAI;AAAA,IACd,cAAc,aAAa;AAAA,IAC3B,YAAY;AAAA;AAAA,EAGd,MAAMA,WAAI;AAAA,IACR,UAAU;AAAA,IACV,UAAU;AAAA,IACV,cAAc;AAAA;AAAA,EAGhB,MAAMA,WAAI;AAAA,IACR,cAAc;AAAA,IACd,WAAW;AAAA,IACX,YAAY;AAAA;AAAA;ACzDhB,MAAMC,mBAAmBD,WAAI;AAAA,EAC3BE,OAAO;AAAA,EACPC,QAAQ;AAAA,EACRC,OAAO;AAAA;AAGT,cAAcC,KAAkB;SACvB,CAACC,UACNC,WAACC;cACE,CAAC;AAAA,MAAER;UACFS,wBAAaJ,KAAK,iCACbC,QADa;AAAA,MAEhBI,WAAWV,KAAIC,kBAAkBK,MAAMI;AAAAA;AAAAA;AAAAA;AAOhCC,KACfC;EAAK,OAAM;AAAA,EAA6B,QAAO;AAAA,EAAO,SAAQ;AAAA,EAAY,OAAM;AAAA,EAAO,MAAK;AAAA,aAC1FL;IAAM,GAAE;AAAA,IAAkB,MAAK;AAAA,MAC/BA;IAAM,GAAE;AAAA;AAAA;AAIGI,KACbC;EACE,OAAM;AAAA,EACN,kBAAiB;AAAA,EACjB,QAAO;AAAA,EACP,SAAQ;AAAA,EACR,OAAM;AAAA,EACN,MAAK;AAAA,aAELL;cACEA;MAAM,MAAK;AAAA,MAAO,QAAO;AAAA,MAAK,OAAM;AAAA;AAAA,MAEtCA;cACEA;MAAM,GAAE;AAAA;AAAA;AAAA;AAKII,KAChBC;EAAK,OAAM;AAAA,EAA6B,QAAO;AAAA,EAAO,SAAQ;AAAA,EAAY,OAAM;AAAA,EAAO,MAAK;AAAA,aAC1FL;IAAM,GAAE;AAAA,IAAkB,MAAK;AAAA,MAC/BA;IAAM,GAAE;AAAA;AAAA;AAISI,KACnBC;EAAK,OAAM;AAAA,EAA6B,QAAO;AAAA,EAAO,SAAQ;AAAA,EAAY,OAAM;AAAA,EAAO,MAAK;AAAA,aAC1FL;IAAM,GAAE;AAAA,IAAkB,MAAK;AAAA,MAC/BA;IAAM,GAAE;AAAA;AAAA;AAIGI,KACbC;EAAK,OAAM;AAAA,EAA6B,QAAO;AAAA,EAAO,SAAQ;AAAA,EAAY,OAAM;AAAA,EAAO,MAAK;AAAA,aAC1FL;IAAM,GAAE;AAAA,IAAkB,MAAK;AAAA,MAC/BA;IAAM,GAAE;AAAA;AAAA;AAIEI,KACZC;EAAK,OAAM;AAAA,EAA6B,QAAO;AAAA,EAAO,SAAQ;AAAA,EAAY,OAAM;AAAA,EAAO,MAAK;AAAA,aAC1FL;IAAM,GAAE;AAAA,IAAkB,MAAK;AAAA,MAC/BA;IAAM,GAAE;AAAA;AAAA;AAIUI,KACpBC;EAAK,OAAM;AAAA,EAA6B,QAAO;AAAA,EAAO,SAAQ;AAAA,EAAY,OAAM;AAAA,EAAO,MAAK;AAAA,aAC1FL;IAAM,GAAE;AAAA,IAAkB,MAAK;AAAA,MAC/BA;IAAM,GAAE;AAAA;AAAA;AAIOI,KACjBC;EAAK,OAAM;AAAA,EAA6B,QAAO;AAAA,EAAO,SAAQ;AAAA,EAAY,OAAM;AAAA,EAAO,MAAK;AAAA,aAC1FL;IAAM,GAAE;AAAA,IAAkB,MAAK;AAAA,MAC/BA;IAAM,GAAE;AAAA;AAAA;AAIQI,KAClBC;EAAK,OAAM;AAAA,EAA6B,QAAO;AAAA,EAAO,SAAQ;AAAA,EAAY,OAAM;AAAA,EAAO,MAAK;AAAA,aAC1FL;IAAM,GAAE;AAAA,IAAkB,MAAK;AAAA,MAC/BA;IAAM,GAAE;AAAA;AAAA;ACrFkBM,yBAAc;ACaXA,yBAAuC;;"}
@@ -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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"}