@monolith-forensics/monolith-ui 1.1.28 → 1.1.29

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 (135) hide show
  1. package/package.json +3 -2
  2. package/dist/Button/Button.d.ts +0 -19
  3. package/dist/Button/Button.js +0 -332
  4. package/dist/Button/index.d.ts +0 -2
  5. package/dist/Button/index.js +0 -8
  6. package/dist/Calendar/Calendar.d.ts +0 -15
  7. package/dist/Calendar/Calendar.js +0 -232
  8. package/dist/Calendar/CalendarStyles.d.ts +0 -36
  9. package/dist/Calendar/CalendarStyles.js +0 -170
  10. package/dist/Calendar/calendarHelpers.d.ts +0 -53
  11. package/dist/Calendar/calendarHelpers.js +0 -181
  12. package/dist/Calendar/index.d.ts +0 -1
  13. package/dist/Calendar/index.js +0 -8
  14. package/dist/CheckBox/CheckBox.d.ts +0 -13
  15. package/dist/CheckBox/CheckBox.js +0 -46
  16. package/dist/CheckBox/index.d.ts +0 -1
  17. package/dist/CheckBox/index.js +0 -8
  18. package/dist/DateInput/DateInput.d.ts +0 -24
  19. package/dist/DateInput/DateInput.js +0 -509
  20. package/dist/DateInput/index.d.ts +0 -1
  21. package/dist/DateInput/index.js +0 -8
  22. package/dist/DropDownMenu/DropDownMenu.d.ts +0 -36
  23. package/dist/DropDownMenu/DropDownMenu.js +0 -213
  24. package/dist/DropDownMenu/index.d.ts +0 -1
  25. package/dist/DropDownMenu/index.js +0 -8
  26. package/dist/Error/Error.d.ts +0 -4
  27. package/dist/Error/Error.js +0 -38
  28. package/dist/Error/index.d.ts +0 -1
  29. package/dist/Error/index.js +0 -8
  30. package/dist/FieldLabel/FieldLabel.d.ts +0 -19
  31. package/dist/FieldLabel/FieldLabel.js +0 -119
  32. package/dist/FieldLabel/index.d.ts +0 -1
  33. package/dist/FieldLabel/index.js +0 -8
  34. package/dist/FileInputField/FileInputField.d.ts +0 -19
  35. package/dist/FileInputField/FileInputField.js +0 -117
  36. package/dist/FileInputField/index.d.ts +0 -1
  37. package/dist/FileInputField/index.js +0 -8
  38. package/dist/Flyout/Flyout.d.ts +0 -11
  39. package/dist/Flyout/Flyout.js +0 -111
  40. package/dist/Flyout/FlyoutHeader.d.ts +0 -5
  41. package/dist/Flyout/FlyoutHeader.js +0 -12
  42. package/dist/Flyout/FlyoutTitle.d.ts +0 -2
  43. package/dist/Flyout/FlyoutTitle.js +0 -13
  44. package/dist/Flyout/index.d.ts +0 -3
  45. package/dist/Flyout/index.js +0 -12
  46. package/dist/FormSection/FormSection.d.ts +0 -9
  47. package/dist/FormSection/FormSection.js +0 -51
  48. package/dist/FormSection/index.d.ts +0 -1
  49. package/dist/FormSection/index.js +0 -8
  50. package/dist/Grid/Grid.d.ts +0 -8
  51. package/dist/Grid/Grid.js +0 -18
  52. package/dist/Grid/index.d.ts +0 -1
  53. package/dist/Grid/index.js +0 -8
  54. package/dist/IconButton/IconButton.d.ts +0 -5
  55. package/dist/IconButton/IconButton.js +0 -30
  56. package/dist/IconButton/index.d.ts +0 -1
  57. package/dist/IconButton/index.js +0 -8
  58. package/dist/Input/Input.d.ts +0 -21
  59. package/dist/Input/Input.js +0 -149
  60. package/dist/Input/index.d.ts +0 -1
  61. package/dist/Input/index.js +0 -8
  62. package/dist/Modal/Modal.d.ts +0 -14
  63. package/dist/Modal/Modal.js +0 -110
  64. package/dist/Modal/index.d.ts +0 -1
  65. package/dist/Modal/index.js +0 -8
  66. package/dist/MonolithUIProvider/GlobalStyle.d.ts +0 -4
  67. package/dist/MonolithUIProvider/GlobalStyle.js +0 -53
  68. package/dist/MonolithUIProvider/MonolithUIProvider.d.ts +0 -9
  69. package/dist/MonolithUIProvider/MonolithUIProvider.js +0 -29
  70. package/dist/MonolithUIProvider/index.d.ts +0 -2
  71. package/dist/MonolithUIProvider/index.js +0 -10
  72. package/dist/MonolithUIProvider/useMonolithUITheme.d.ts +0 -2
  73. package/dist/MonolithUIProvider/useMonolithUITheme.js +0 -12
  74. package/dist/Pill/Pill.d.ts +0 -11
  75. package/dist/Pill/Pill.js +0 -152
  76. package/dist/Pill/index.d.ts +0 -1
  77. package/dist/Pill/index.js +0 -8
  78. package/dist/SelectBox/SelectBox.d.ts +0 -45
  79. package/dist/SelectBox/SelectBox.js +0 -477
  80. package/dist/SelectBox/index.d.ts +0 -1
  81. package/dist/SelectBox/index.js +0 -8
  82. package/dist/Switch/Switch.d.ts +0 -18
  83. package/dist/Switch/Switch.js +0 -157
  84. package/dist/Switch/index.d.ts +0 -1
  85. package/dist/Switch/index.js +0 -8
  86. package/dist/Table/Table.d.ts +0 -91
  87. package/dist/Table/Table.js +0 -715
  88. package/dist/Table/index.d.ts +0 -2
  89. package/dist/Table/index.js +0 -10
  90. package/dist/TagBox/TagBox.d.ts +0 -39
  91. package/dist/TagBox/TagBox.js +0 -590
  92. package/dist/TagBox/TagBoxStyles.d.ts +0 -11
  93. package/dist/TagBox/TagBoxStyles.js +0 -113
  94. package/dist/TagBox/index.d.ts +0 -1
  95. package/dist/TagBox/index.js +0 -8
  96. package/dist/TextArea/TextArea.d.ts +0 -16
  97. package/dist/TextArea/TextArea.js +0 -81
  98. package/dist/TextArea/index.d.ts +0 -1
  99. package/dist/TextArea/index.js +0 -8
  100. package/dist/TextAreaInput/TextAreaInput.d.ts +0 -19
  101. package/dist/TextAreaInput/TextAreaInput.js +0 -11
  102. package/dist/TextAreaInput/index.d.ts +0 -1
  103. package/dist/TextAreaInput/index.js +0 -8
  104. package/dist/TextInput/TextInput.d.ts +0 -13
  105. package/dist/TextInput/TextInput.js +0 -31
  106. package/dist/TextInput/index.d.ts +0 -1
  107. package/dist/TextInput/index.js +0 -8
  108. package/dist/Tooltip/Tooltip.d.ts +0 -12
  109. package/dist/Tooltip/Tooltip.js +0 -53
  110. package/dist/Tooltip/index.d.ts +0 -1
  111. package/dist/Tooltip/index.js +0 -8
  112. package/dist/core/ArrowButton.d.ts +0 -6
  113. package/dist/core/ArrowButton.js +0 -48
  114. package/dist/core/ClearButton.d.ts +0 -6
  115. package/dist/core/ClearButton.js +0 -48
  116. package/dist/core/MonolithThemeProvider.d.ts +0 -4
  117. package/dist/core/MonolithThemeProvider.js +0 -20
  118. package/dist/core/StyledContent.d.ts +0 -7
  119. package/dist/core/StyledContent.js +0 -47
  120. package/dist/core/StyledFloatContainer.d.ts +0 -2
  121. package/dist/core/StyledFloatContainer.js +0 -10
  122. package/dist/core/Types/Size.d.ts +0 -2
  123. package/dist/core/Types/Size.js +0 -2
  124. package/dist/core/Types/Variant.d.ts +0 -2
  125. package/dist/core/Types/Variant.js +0 -2
  126. package/dist/core/index.d.ts +0 -6
  127. package/dist/core/index.js +0 -14
  128. package/dist/index.d.ts +0 -26
  129. package/dist/index.js +0 -59
  130. package/dist/theme/index.d.ts +0 -168
  131. package/dist/theme/index.js +0 -14
  132. package/dist/theme/typography.d.ts +0 -45
  133. package/dist/theme/typography.js +0 -59
  134. package/dist/theme/variants.d.ts +0 -172
  135. package/dist/theme/variants.js +0 -276
@@ -1,715 +0,0 @@
1
- "use strict";
2
- var __rest = (this && this.__rest) || function (s, e) {
3
- var t = {};
4
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
5
- t[p] = s[p];
6
- if (s != null && typeof Object.getOwnPropertySymbols === "function")
7
- for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
8
- if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
9
- t[p[i]] = s[p[i]];
10
- }
11
- return t;
12
- };
13
- var __importDefault = (this && this.__importDefault) || function (mod) {
14
- return (mod && mod.__esModule) ? mod : { "default": mod };
15
- };
16
- Object.defineProperty(exports, "__esModule", { value: true });
17
- exports.useTable = exports.Column = void 0;
18
- const jsx_runtime_1 = require("react/jsx-runtime");
19
- const react_window_1 = require("react-window");
20
- const react_virtualized_auto_sizer_1 = __importDefault(require("react-virtualized-auto-sizer"));
21
- const overlayscrollbars_react_1 = require("overlayscrollbars-react");
22
- require("overlayscrollbars/overlayscrollbars.css");
23
- const short_uuid_1 = __importDefault(require("short-uuid"));
24
- const styled_components_1 = __importDefault(require("styled-components"));
25
- const react_1 = require("react");
26
- const lucide_react_1 = require("lucide-react");
27
- const lucide_react_2 = require("lucide-react");
28
- const moment_1 = __importDefault(require("moment"));
29
- const __1 = require("..");
30
- const MIN_COLUMN_WIDTH = 125;
31
- const Column = ({ dataField, caption, columnId = short_uuid_1.default.generate(), sorting, format, componentType = "Column", }) => {
32
- return null;
33
- };
34
- exports.Column = Column;
35
- exports.Column.displayName = "Column";
36
- const StyledTable = styled_components_1.default.table `
37
- position: relative;
38
- border-collapse: separate;
39
- border-spacing: 0;
40
- min-width: 100%;
41
- border-top: none;
42
- border-radius: 4px;
43
- `;
44
- const StyledThead = styled_components_1.default.thead `
45
- position: relative;
46
- `;
47
- const StyledTbody = styled_components_1.default.tbody `
48
- & [data-even="true"].tr td {
49
- background-color: ${({ stripes, theme }) => stripes ? theme.palette.background.secondary : "transparent"};
50
- }
51
- & .tr:hover td {
52
- background-color: ${({ theme }) => theme.palette.action.hover};
53
- }
54
- `;
55
- const StyledTr = styled_components_1.default.tr `
56
- position: relative;
57
- height: ${({ compact, rowHeight }) => rowHeight ? rowHeight : compact ? 28 : 38}px;
58
- width: 100%;
59
- display: flex;
60
-
61
- & .action-button {
62
- opacity: 0;
63
- border-radius: 4px;
64
- }
65
- * .custom-action-button {
66
- opacity: 0;
67
- }
68
-
69
- &:hover .action-button,
70
- &:hover .custom-action-button {
71
- opacity: 1;
72
- }
73
-
74
- &.focused .td {
75
- border-top: 1px solid ${({ theme }) => theme.palette.primary.main};
76
- border-bottom: 1px solid ${({ theme }) => theme.palette.primary.main} !important;
77
- transition: border 0.3s ease;
78
- }
79
- &.focused .td:first-child {
80
- border-left: 1px solid ${({ theme }) => theme.palette.primary.main};
81
- }
82
- &.focused .td:last-child {
83
- border-right: 1px solid ${({ theme }) => theme.palette.primary.main};
84
- }
85
-
86
- // last item in row
87
- & .td:last-child {
88
- width: auto !important;
89
- max-width: none !important;
90
- }
91
- `;
92
- const StyledHeaderRow = (0, styled_components_1.default)(StyledTr) `
93
- height: ${({ compact, headerHeight }) => headerHeight ? headerHeight : compact ? 28 : 38}px;
94
-
95
- display: table-row;
96
-
97
- // last item in row
98
- & .th:last-child {
99
- width: auto !important;
100
- max-width: none !important;
101
- }
102
- `;
103
- const StyledTd = styled_components_1.default.td `
104
- position: relative;
105
- display: flex;
106
- align-items: center;
107
- flex: 1;
108
- padding: ${({ compact }) => (compact ? "3px" : "8px")};
109
- font-size: ${({ compact }) => (compact ? "10px" : "12px")};
110
- overflow: hidden;
111
- text-overflow: ellipsis;
112
- white-space: nowrap;
113
-
114
- background-color: ${({ theme }) => theme.palette.background.default};
115
-
116
- border-bottom: 1px solid ${({ theme }) => theme.palette.divider};
117
-
118
- &:first-child {
119
- border-left: 1px solid ${({ theme }) => theme.palette.divider};
120
- }
121
-
122
- &:last-child {
123
- border-right: 1px solid ${({ theme }) => theme.palette.divider};
124
- }
125
- `;
126
- const StyledTh = styled_components_1.default.th `
127
- position: sticky;
128
- top: 0;
129
- z-index: 1;
130
- flex: 1;
131
- vertical-align: middle;
132
- user-select: none;
133
- padding: ${({ compact }) => (compact ? "3px" : "8px")};
134
- font-size: ${({ compact }) => (compact ? "10px" : "12px")};
135
- text-align: left;
136
- font-weight: bold;
137
- overflow: hidden;
138
- text-overflow: ellipsis;
139
- white-space: nowrap;
140
-
141
- background-color: ${({ theme }) => theme.palette.background.alt};
142
-
143
- border-top: 1px solid ${({ theme }) => theme.palette.divider};
144
- border-bottom: 1px solid ${({ theme }) => theme.palette.divider};
145
-
146
- .action-header {
147
- display: flex;
148
- align-content: center;
149
- align-items: center;
150
- cursor: pointer;
151
- color: ${({ theme }) => theme.palette.text.secondary};
152
- margin-right: 5;
153
- margin-left: 3;
154
- }
155
-
156
- &:first-child {
157
- border-left: 1px solid ${({ theme }) => theme.palette.divider};
158
- border-top-left-radius: 4px;
159
- }
160
-
161
- &:last-child {
162
- border-right: 1px solid ${({ theme }) => theme.palette.divider};
163
- border-top-right-radius: 4px;
164
- }
165
-
166
- &:hover {
167
- background-color: ${({ theme }) => theme.name === "DARK" ? "#2e2e2e" : "#f5f5f5"};
168
- cursor: pointer;
169
- }
170
- &.dragging:active {
171
- cursor: grabbing;
172
- }
173
- &.dragover .resizer {
174
- opacity: 1;
175
- background: ${(props) => props.theme.palette.primary.main};
176
- cursor: grabbing;
177
- }
178
- `;
179
- const enableResizeClass = (dataField) => {
180
- document
181
- .querySelectorAll(`.resizer.column-${dataField}`)
182
- .forEach((resizer) => {
183
- resizer.classList.add("isResizing");
184
- });
185
- };
186
- const disableResizeClass = (dataField) => {
187
- document
188
- .querySelectorAll(`.resizer.column-${dataField}`)
189
- .forEach((resizer) => {
190
- resizer.classList.remove("isResizing");
191
- });
192
- };
193
- const resizeHandler = ({ event, columnId, columnProps, onResize, onResizeFinished, }) => {
194
- let col = event.target
195
- .parentElement;
196
- let newColumns = [];
197
- let x = 0;
198
- let w = 0;
199
- const mouseMoveHandler = function (e) {
200
- const selectedColumn = document.querySelectorAll(`.col-${columnId}`);
201
- const columnHeaders = document.querySelectorAll(`.th.col-${columnId}`);
202
- const dx = e.clientX - x;
203
- let newWidth = w + dx;
204
- if (newWidth < MIN_COLUMN_WIDTH) {
205
- newWidth = MIN_COLUMN_WIDTH;
206
- }
207
- selectedColumn.forEach((col) => {
208
- var _a;
209
- col.style.width = `${newWidth}px`;
210
- col.style.maxWidth = `${newWidth}px`;
211
- col.style.minWidth = `${newWidth}px`;
212
- newColumns.push({
213
- dataField: ((_a = col === null || col === void 0 ? void 0 : col.dataset) === null || _a === void 0 ? void 0 : _a.field) || "",
214
- width: newWidth,
215
- });
216
- });
217
- newColumns = Array.from(columnHeaders).map((col) => {
218
- var _a;
219
- return {
220
- dataField: ((_a = col === null || col === void 0 ? void 0 : col.dataset) === null || _a === void 0 ? void 0 : _a.field) || "",
221
- width: newWidth,
222
- };
223
- });
224
- onResize({
225
- columns: newColumns,
226
- });
227
- };
228
- const mouseUpHandler = function () {
229
- var _a, _b, _c;
230
- disableResizeClass(columnId);
231
- document.removeEventListener("mousemove", mouseMoveHandler);
232
- document.removeEventListener("mouseup", mouseUpHandler);
233
- onResizeFinished === null || onResizeFinished === void 0 ? void 0 : onResizeFinished({
234
- column: columnProps,
235
- columnId: columnId,
236
- columns: newColumns,
237
- targetColumn: document.querySelector(`.col-${columnId}`),
238
- newWidth: ((_c = (_b = (_a = document === null || document === void 0 ? void 0 : document.querySelector) === null || _a === void 0 ? void 0 : _a.call(document, `.col-${columnId}`)) === null || _b === void 0 ? void 0 : _b.style) === null || _c === void 0 ? void 0 : _c.width) || null,
239
- });
240
- };
241
- x = event.clientX;
242
- const styles = window.getComputedStyle(col);
243
- w = parseInt(styles.width, 10);
244
- document.addEventListener("mousemove", mouseMoveHandler);
245
- document.addEventListener("mouseup", mouseUpHandler);
246
- enableResizeClass(columnId);
247
- };
248
- const Resizer = (0, styled_components_1.default)(({ className, resizeHandler, onResize = () => { }, onResizeFinished, column, }) => {
249
- return ((0, jsx_runtime_1.jsx)("div", { className: `${className} resizer column-${column.props.columnId}`, onClick: (e) => {
250
- e.stopPropagation();
251
- e.nativeEvent.stopImmediatePropagation();
252
- e.preventDefault();
253
- }, onMouseDown: (e) => {
254
- e.stopPropagation();
255
- e.nativeEvent.stopImmediatePropagation();
256
- e.preventDefault();
257
- if (resizeHandler)
258
- resizeHandler({
259
- event: e,
260
- columnId: column.props.columnId,
261
- columnProps: column.props,
262
- onResize: onResize,
263
- onResizeFinished: onResizeFinished,
264
- });
265
- } }));
266
- }) `
267
- &.resizer {
268
- position: absolute;
269
- right: 0;
270
- top: 0;
271
- height: 100%;
272
- width: 3px;
273
- background-color: ${(props) => props.theme.palette.divider};
274
- cursor: col-resize;
275
- user-select: none;
276
- touch-action: none;
277
- opacity: 0;
278
- &.isResizing {
279
- opacity: 1;
280
- background: ${(props) => props.theme.palette.primary.main};
281
- }
282
- // dragover css
283
- &.dragover {
284
- opacity: 1;
285
- background: ${(props) => props.theme.palette.primary.main};
286
- }
287
- }
288
- `;
289
- const HeaderRowComponent = ({ columns, _compact, resizeState, headerHeight, onHeaderClick, onColumnResize, dropColumn, dragColumn, showSelection, selectAll, selectionState, handleSelectAll, handleColumnReorder, }) => {
290
- return ((0, jsx_runtime_1.jsx)(StyledThead, { children: (0, jsx_runtime_1.jsx)(StyledHeaderRow, { compact: _compact, headerHeight: headerHeight, children: columns.map((column) => {
291
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o;
292
- let savedColSize = ((_c = (_b = (_a = resizeState === null || resizeState === void 0 ? void 0 : resizeState.current) === null || _a === void 0 ? void 0 : _a.columns) === null || _b === void 0 ? void 0 : _b.find((col) => col.dataField === column.props.dataField)) === null || _c === void 0 ? void 0 : _c.width) || MIN_COLUMN_WIDTH;
293
- if (savedColSize < MIN_COLUMN_WIDTH) {
294
- savedColSize = MIN_COLUMN_WIDTH;
295
- }
296
- return ((0, jsx_runtime_1.jsxs)(StyledTh, Object.assign({}, column.props, { className: `th ${((_d = column === null || column === void 0 ? void 0 : column.props) === null || _d === void 0 ? void 0 : _d.columnId) ? `col-${column.props.columnId}` : ""}`, "data-field": column.props.dataField, "data-type": "th", compact: _compact, onClick: (e) => {
297
- if (column.props.allowSorting !== false)
298
- onHeaderClick === null || onHeaderClick === void 0 ? void 0 : onHeaderClick(column.props);
299
- }, draggable: column.props.allowReorder !== false ? true : false, onDragOver: (e) => {
300
- e.preventDefault();
301
- e.dataTransfer.dropEffect = "move";
302
- }, onDragEnter: (e) => {
303
- e.target.classList.add("dragover");
304
- dropColumn.current = column.props;
305
- }, onDragLeave: (e) => {
306
- e.target.classList.remove("dragover");
307
- }, onDrop: (e) => {
308
- e.preventDefault();
309
- e.target.classList.remove("dragover");
310
- handleColumnReorder(dragColumn.current, dropColumn.current);
311
- }, onDragStart: (e) => {
312
- //set dragging class
313
- dragColumn.current = column.props;
314
- e.target.classList.add("dragging");
315
- }, onDragEnd: (e) => {
316
- e.target.classList.remove("dragging");
317
- }, style: {
318
- width: ((_e = column === null || column === void 0 ? void 0 : column.props) === null || _e === void 0 ? void 0 : _e.width)
319
- ? (_f = column === null || column === void 0 ? void 0 : column.props) === null || _f === void 0 ? void 0 : _f.width
320
- : savedColSize || "auto",
321
- maxWidth: ((_g = column === null || column === void 0 ? void 0 : column.props) === null || _g === void 0 ? void 0 : _g.width)
322
- ? (_h = column === null || column === void 0 ? void 0 : column.props) === null || _h === void 0 ? void 0 : _h.width
323
- : savedColSize || "auto",
324
- minWidth: ((_j = column === null || column === void 0 ? void 0 : column.props) === null || _j === void 0 ? void 0 : _j.width)
325
- ? (_k = column === null || column === void 0 ? void 0 : column.props) === null || _k === void 0 ? void 0 : _k.width
326
- : savedColSize || MIN_COLUMN_WIDTH,
327
- }, children: [(0, jsx_runtime_1.jsxs)("div", { style: {
328
- display: "flex",
329
- alignContent: "center",
330
- alignItems: "center",
331
- pointerEvents: column.props.dataField === "action" ? "all" : "none",
332
- }, children: [showSelection && column.props.dataField === "action" ? ((0, jsx_runtime_1.jsx)("div", { className: "action-header", children: selectAll && ((0, jsx_runtime_1.jsx)(__1.CheckBox, { value: selectionState === "all", partialCheck: selectionState.includes("some"), onChange: handleSelectAll })) })) : ((0, jsx_runtime_1.jsx)("div", { children: column.props.caption })), ((_m = (_l = column.props) === null || _l === void 0 ? void 0 : _l.sorting) === null || _m === void 0 ? void 0 : _m.active) && ((0, jsx_runtime_1.jsx)("div", { style: { marginLeft: 5 }, children: column.props.sorting.direction === "asc" ? ((0, jsx_runtime_1.jsx)(lucide_react_2.ArrowUpIcon, { size: 12 })) : ((0, jsx_runtime_1.jsx)(lucide_react_2.ArrowDownIcon, { size: 12 })) }))] }), ((_o = column === null || column === void 0 ? void 0 : column.props) === null || _o === void 0 ? void 0 : _o.resizeEnabled) !== false && ((0, jsx_runtime_1.jsx)(Resizer, { resizeHandler: resizeHandler, column: column, onResize: (e) => {
333
- resizeState.current = e;
334
- }, onResizeFinished: (e) => {
335
- onColumnResize === null || onColumnResize === void 0 ? void 0 : onColumnResize(e);
336
- } }))] }), short_uuid_1.default.generate()));
337
- }) }) }));
338
- };
339
- const InnerElement = (0, react_1.forwardRef)((_a, ref) => {
340
- var { children, columns, resizeState, _compact, stripes, onHeaderClick, dropColumn, dragColumn, showSelection, selectAll, selectionState, handleSelectAll, handleColumnReorder, onColumnResize, headerHeight } = _a, rest = __rest(_a, ["children", "columns", "resizeState", "_compact", "stripes", "onHeaderClick", "dropColumn", "dragColumn", "showSelection", "selectAll", "selectionState", "handleSelectAll", "handleColumnReorder", "onColumnResize", "headerHeight"]);
341
- return ((0, jsx_runtime_1.jsxs)(StyledTable, Object.assign({ ref: ref }, rest, { children: [(0, jsx_runtime_1.jsx)(HeaderRowComponent, { columns: columns, resizeState: resizeState, _compact: _compact, headerHeight: headerHeight, onHeaderClick: onHeaderClick, dropColumn: dropColumn, dragColumn: dragColumn, showSelection: showSelection, selectAll: selectAll, selectionState: selectionState, handleSelectAll: handleSelectAll, handleColumnReorder: handleColumnReorder, onColumnResize: onColumnResize }), (0, jsx_runtime_1.jsx)(StyledTbody, { className: "tbody" + (stripes ? " striped" : ""), stripes: stripes, children: children })] })));
342
- });
343
- const Row = ({ data, index, style }) => {
344
- const { data: dataRows, columns, focusedRow, keyValue, _compact, queryKey, reloadFn, headerHeight, resizeState, onRowUpdated, } = data;
345
- const item = (dataRows === null || dataRows === void 0 ? void 0 : dataRows[index]) || {};
346
- const handleRowUpdated = (data) => {
347
- onRowUpdated === null || onRowUpdated === void 0 ? void 0 : onRowUpdated({ rowData: item, updateData: data });
348
- };
349
- const isRowFocused = focusedRow
350
- ? focusedRow[keyValue] === item[keyValue]
351
- : false;
352
- const row = columns.map((column) => {
353
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _0, _1, _2, _3;
354
- let value = null;
355
- let savedColSize = ((_c = (_b = (_a = resizeState === null || resizeState === void 0 ? void 0 : resizeState.current) === null || _a === void 0 ? void 0 : _a.columns) === null || _b === void 0 ? void 0 : _b.find((col) => col.dataField === column.props.dataField)) === null || _c === void 0 ? void 0 : _c.width) || MIN_COLUMN_WIDTH;
356
- if (savedColSize < MIN_COLUMN_WIDTH) {
357
- savedColSize = MIN_COLUMN_WIDTH;
358
- }
359
- // parse datafield dot syntax
360
- if ((_d = column.props.dataField) === null || _d === void 0 ? void 0 : _d.includes(".")) {
361
- const fields = (_e = column.props.dataField) === null || _e === void 0 ? void 0 : _e.split(".");
362
- value = fields.reduce((acc, field) => {
363
- return acc === null || acc === void 0 ? void 0 : acc[field];
364
- }, item);
365
- }
366
- else
367
- value = item === null || item === void 0 ? void 0 : item[column.props.dataField];
368
- // format date values
369
- if (column.props.dataType === "date" &&
370
- ((_g = (_f = column === null || column === void 0 ? void 0 : column.props) === null || _f === void 0 ? void 0 : _f.format) === null || _g === void 0 ? void 0 : _g.type) &&
371
- value) {
372
- const dateFormat = (_j = (_h = column === null || column === void 0 ? void 0 : column.props) === null || _h === void 0 ? void 0 : _h.format) === null || _j === void 0 ? void 0 : _j.type;
373
- value = (0, moment_1.default)(value).format(dateFormat);
374
- }
375
- if (column.props.render) {
376
- return ((0, jsx_runtime_1.jsxs)(StyledTd, { className: `td ${((_k = column === null || column === void 0 ? void 0 : column.props) === null || _k === void 0 ? void 0 : _k.columnId) ? `col-${column.props.columnId}` : ""}`, title: ((_l = column === null || column === void 0 ? void 0 : column.props) === null || _l === void 0 ? void 0 : _l.titleRender) ? (_m = column === null || column === void 0 ? void 0 : column.props) === null || _m === void 0 ? void 0 : _m.titleRender(item) : null, compact: _compact, style: Object.assign({ width: ((_o = column === null || column === void 0 ? void 0 : column.props) === null || _o === void 0 ? void 0 : _o.width)
377
- ? (_p = column === null || column === void 0 ? void 0 : column.props) === null || _p === void 0 ? void 0 : _p.width
378
- : savedColSize || "auto", maxWidth: ((_q = column === null || column === void 0 ? void 0 : column.props) === null || _q === void 0 ? void 0 : _q.width)
379
- ? (_r = column === null || column === void 0 ? void 0 : column.props) === null || _r === void 0 ? void 0 : _r.width
380
- : savedColSize || "auto", minWidth: ((_s = column === null || column === void 0 ? void 0 : column.props) === null || _s === void 0 ? void 0 : _s.width)
381
- ? (_t = column === null || column === void 0 ? void 0 : column.props) === null || _t === void 0 ? void 0 : _t.width
382
- : savedColSize || MIN_COLUMN_WIDTH }, (((_u = column === null || column === void 0 ? void 0 : column.props) === null || _u === void 0 ? void 0 : _u.style) || {})), "data-type": "td", children: [column.props.resizeEnabled !== false && (0, jsx_runtime_1.jsx)(Resizer, { column: column }), column.props.render(item, {
383
- queryKey: queryKey || "",
384
- reload: reloadFn,
385
- onRowUpdated: handleRowUpdated,
386
- })] }, short_uuid_1.default.generate()));
387
- }
388
- return ((0, jsx_runtime_1.jsxs)(StyledTd, { className: `td ${((_v = column === null || column === void 0 ? void 0 : column.props) === null || _v === void 0 ? void 0 : _v.columnId) ? `col-${column.props.columnId}` : ""}`, compact: _compact, title: ((_w = column === null || column === void 0 ? void 0 : column.props) === null || _w === void 0 ? void 0 : _w.titleRender) ? (_x = column === null || column === void 0 ? void 0 : column.props) === null || _x === void 0 ? void 0 : _x.titleRender(item) : null, "data-type": "td", style: {
389
- width: ((_y = column === null || column === void 0 ? void 0 : column.props) === null || _y === void 0 ? void 0 : _y.width)
390
- ? (_z = column === null || column === void 0 ? void 0 : column.props) === null || _z === void 0 ? void 0 : _z.width
391
- : savedColSize || "auto",
392
- maxWidth: ((_0 = column === null || column === void 0 ? void 0 : column.props) === null || _0 === void 0 ? void 0 : _0.width)
393
- ? (_1 = column === null || column === void 0 ? void 0 : column.props) === null || _1 === void 0 ? void 0 : _1.width
394
- : savedColSize || "auto",
395
- minWidth: ((_2 = column === null || column === void 0 ? void 0 : column.props) === null || _2 === void 0 ? void 0 : _2.width)
396
- ? (_3 = column === null || column === void 0 ? void 0 : column.props) === null || _3 === void 0 ? void 0 : _3.width
397
- : savedColSize || MIN_COLUMN_WIDTH,
398
- }, children: [column.props.resizeEnabled !== false && (0, jsx_runtime_1.jsx)(Resizer, { column: column }), value] }, short_uuid_1.default.generate()));
399
- });
400
- return ((0, jsx_runtime_1.jsx)(StyledTr, { className: `tr${isRowFocused ? " focused" : ""}`, "data-key": item[keyValue], "data-type": "tr", "data-even": index % 2 === 0 ? "true" : "false", compact: _compact, style: Object.assign(Object.assign({}, style), { top: ((style === null || style === void 0 ? void 0 : style.top) || 0) + headerHeight }), children: row }, short_uuid_1.default.generate()));
401
- };
402
- const useTable = () => {
403
- const [tableInstance, setTableInstance] = (0, react_1.useState)(null);
404
- return {
405
- setTableInstance,
406
- toggleCompact: () => tableInstance === null || tableInstance === void 0 ? void 0 : tableInstance.toggleCompact(),
407
- toggleStripes: () => tableInstance === null || tableInstance === void 0 ? void 0 : tableInstance.toggleStripes(),
408
- isCompact: (tableInstance === null || tableInstance === void 0 ? void 0 : tableInstance.isCompact) || false,
409
- isStriped: (tableInstance === null || tableInstance === void 0 ? void 0 : tableInstance.isStriped) || false,
410
- getVirtualSelectionTotal: () => (tableInstance === null || tableInstance === void 0 ? void 0 : tableInstance.getVirtualSelectionTotal()) || 0,
411
- getSelectedRows: () => (tableInstance === null || tableInstance === void 0 ? void 0 : tableInstance.getSelectedRows()) || [],
412
- getExcludedRows: () => (tableInstance === null || tableInstance === void 0 ? void 0 : tableInstance.getExcludedRows()) || [],
413
- getSelectionState: () => (tableInstance === null || tableInstance === void 0 ? void 0 : tableInstance.getSelectionState()) || {},
414
- clearSelections: () => tableInstance === null || tableInstance === void 0 ? void 0 : tableInstance.clearSelections(),
415
- onColumnResize: (e) => tableInstance === null || tableInstance === void 0 ? void 0 : tableInstance.onColumnResize(e),
416
- };
417
- };
418
- exports.useTable = useTable;
419
- const Table = (0, styled_components_1.default)(({ className, children, data, rowHeight, headerHeight, tableInstance, queryKey, totalRecords, compact, focusedRow, keyValue, onScroll, allowColumnResize, allowColumnReorder, showActionColumn, showSelection, selectAll, reloadFn, onColumnReorder, onSelectionChanged, onActionButtonClick, onHeaderClick, onColumnResize, onRowUpdated, }) => {
420
- const rootRef = (0, react_1.useRef)(null);
421
- const [initialize, getInstance] = (0, overlayscrollbars_react_1.useOverlayScrollbars)({
422
- options: {
423
- scrollbars: {
424
- autoHide: "scroll",
425
- autoHideDelay: 500,
426
- },
427
- },
428
- events: { scroll: (_, event) => onScroll === null || onScroll === void 0 ? void 0 : onScroll(event) },
429
- });
430
- const [targetElm, setTargetElm] = (0, react_1.useState)(null);
431
- const [listElm, setListElm] = (0, react_1.useState)(null);
432
- const dragColumn = (0, react_1.useRef)(null);
433
- const dropColumn = (0, react_1.useRef)(null);
434
- const [_compact, setCompact] = (0, react_1.useState)(compact);
435
- const [stripes, setStripes] = (0, react_1.useState)(false);
436
- const [selectedRows, setSelectedRows] = (0, react_1.useState)([]);
437
- const [virtualSelectionTotal, setVirtualSelectionTotal] = (0, react_1.useState)(0);
438
- const [excludedRows, setExcludedRows] = (0, react_1.useState)([]);
439
- const [selectionState, setSelectionState] = (0, react_1.useState)("none");
440
- const resizeState = (0, react_1.useRef)([]);
441
- // check if children is an array
442
- children = (0, react_1.useMemo)(() => {
443
- return Array.isArray(children) ? children : [children];
444
- }, [children]);
445
- let columns = (0, react_1.useMemo)(() => {
446
- var _a, _b;
447
- return (_b = (_a = children === null || children === void 0 ? void 0 : children.filter) === null || _a === void 0 ? void 0 : _a.call(children, (child) => child.props.componentType === "Column")) === null || _b === void 0 ? void 0 : _b.map((column) => {
448
- return (0, react_1.cloneElement)(column, {
449
- columnId: short_uuid_1.default.generate(),
450
- allowResize: allowColumnResize !== undefined
451
- ? allowColumnResize
452
- : column.props.allowResize,
453
- allowReorder: allowColumnReorder !== undefined
454
- ? allowColumnReorder
455
- : column.props.allowReorder,
456
- resizeEnabled: allowColumnResize !== undefined
457
- ? allowColumnResize
458
- : column.props.resizeEnabled,
459
- });
460
- });
461
- }, [children]);
462
- const [columnOrder, setColumnOrder] = (0, react_1.useState)(columns.map((col, index) => {
463
- var _a, _b;
464
- return {
465
- column: (_a = col.props) === null || _a === void 0 ? void 0 : _a.dataField,
466
- order: ((_b = col.props) === null || _b === void 0 ? void 0 : _b.order) || index,
467
- };
468
- }));
469
- const handleColumnReorder = (dragColumn, dropColumn) => {
470
- var _a;
471
- const dropColumnOrder = (_a = columnOrder.find((col) => col.column === dropColumn.dataField)) === null || _a === void 0 ? void 0 : _a.order;
472
- const newColumnOrder = columnOrder.map((col) => {
473
- if (col.column === dragColumn.dataField) {
474
- return { column: col.column, order: dropColumnOrder + 1 };
475
- }
476
- else {
477
- return col.order > dropColumnOrder
478
- ? Object.assign(Object.assign({}, col), { order: col.order + 1 }) : col;
479
- }
480
- });
481
- onColumnReorder === null || onColumnReorder === void 0 ? void 0 : onColumnReorder(newColumnOrder);
482
- setColumnOrder(newColumnOrder);
483
- };
484
- const handleSelectAll = () => {
485
- let newSelectionState = null;
486
- let newVirtualSelectionTotal = null;
487
- if (selectionState === "all") {
488
- // clear current selections
489
- setSelectedRows([]);
490
- // turn off all rows selected
491
- newSelectionState = "none";
492
- setSelectionState("none");
493
- // clear excluded rows
494
- setExcludedRows([]);
495
- newVirtualSelectionTotal = 0;
496
- setVirtualSelectionTotal(newVirtualSelectionTotal);
497
- }
498
- else {
499
- // turn on all rows selected
500
- newSelectionState = "all";
501
- setSelectionState("all");
502
- // clear excluded rows
503
- setExcludedRows([]);
504
- newVirtualSelectionTotal = totalRecords;
505
- setVirtualSelectionTotal(newVirtualSelectionTotal);
506
- }
507
- onSelectionChanged === null || onSelectionChanged === void 0 ? void 0 : onSelectionChanged({
508
- selectedRows: [],
509
- excludedRows: [],
510
- selectionState: newSelectionState,
511
- virtualSelectionTotal: newVirtualSelectionTotal,
512
- });
513
- };
514
- const handleSelectRow = ({ rowData, checked, }) => {
515
- let newSelectedRows = [];
516
- let newExcludedRows = [];
517
- let newSelectionState = null;
518
- let newVirtualSelectionTotal = null;
519
- if (selectionState === "all") {
520
- newExcludedRows = [...excludedRows, rowData];
521
- newSelectionState = "someExcluded";
522
- newVirtualSelectionTotal = totalRecords ? totalRecords - 1 : 0;
523
- }
524
- else if (selectionState === "none") {
525
- newSelectedRows = [rowData];
526
- newSelectionState = "someIncluded";
527
- newVirtualSelectionTotal = 1;
528
- }
529
- else if (selectionState === "someExcluded") {
530
- newSelectionState = "someExcluded";
531
- newSelectedRows = selectedRows;
532
- if (checked) {
533
- // remove from excluded rows
534
- newExcludedRows = excludedRows.filter((row) => keyValue ? (row === null || row === void 0 ? void 0 : row[keyValue]) !== (rowData === null || rowData === void 0 ? void 0 : rowData[keyValue]) : false);
535
- newVirtualSelectionTotal = virtualSelectionTotal
536
- ? virtualSelectionTotal + 1
537
- : 0;
538
- }
539
- else {
540
- // add to excluded rows
541
- newExcludedRows = [...excludedRows, rowData];
542
- newVirtualSelectionTotal = virtualSelectionTotal
543
- ? virtualSelectionTotal - 1
544
- : 0;
545
- }
546
- }
547
- else if (selectionState === "someIncluded") {
548
- newSelectionState = "someIncluded";
549
- newExcludedRows = excludedRows;
550
- if (checked) {
551
- // add to selected rows
552
- newSelectedRows = [...selectedRows, rowData];
553
- newVirtualSelectionTotal = virtualSelectionTotal
554
- ? virtualSelectionTotal + 1
555
- : 0;
556
- }
557
- else {
558
- // remove from selected rows
559
- newSelectedRows = selectedRows.filter((row) => keyValue ? row[keyValue] !== rowData[keyValue] : false);
560
- newVirtualSelectionTotal = virtualSelectionTotal
561
- ? virtualSelectionTotal - 1
562
- : 0;
563
- }
564
- }
565
- if (newVirtualSelectionTotal === totalRecords) {
566
- newSelectionState = "all";
567
- }
568
- else if (newVirtualSelectionTotal === 0) {
569
- newSelectionState = "none";
570
- }
571
- setSelectedRows(newSelectedRows);
572
- setExcludedRows(newExcludedRows);
573
- setVirtualSelectionTotal(newVirtualSelectionTotal);
574
- setSelectionState(newSelectionState);
575
- onSelectionChanged === null || onSelectionChanged === void 0 ? void 0 : onSelectionChanged({
576
- selectedRows: newSelectedRows,
577
- excludedRows: newExcludedRows,
578
- selectionState: newSelectionState,
579
- virtualSelectionTotal: newVirtualSelectionTotal,
580
- });
581
- };
582
- // sort columns
583
- columns = (0, react_1.useMemo)(() => columns.sort((a, b) => {
584
- var _a, _b;
585
- const aOrder = (_a = columnOrder.find((col) => col.column === a.props.dataField)) === null || _a === void 0 ? void 0 : _a.order;
586
- const bOrder = (_b = columnOrder.find((col) => col.column === b.props.dataField)) === null || _b === void 0 ? void 0 : _b.order;
587
- return aOrder - bOrder;
588
- }), [columnOrder, columns]);
589
- const hiddenColumns = columns
590
- .filter((col) => col.props.visible === false)
591
- .map((col) => col.props.dataField);
592
- // insert action column as first column
593
- showActionColumn &&
594
- (columns = [
595
- (0, jsx_runtime_1.jsx)(exports.Column, { className: "action-column", dataField: "action", allowSorting: false, allowReorder: false, caption: "", width: showSelection ? 55 : 35, resizeEnabled: false, render: (rowData) => ((0, jsx_runtime_1.jsxs)("div", { className: "action-column-container", children: [showSelection && ((0, jsx_runtime_1.jsx)("div", { className: "action-button", children: (0, jsx_runtime_1.jsx)(__1.CheckBox, { value: selectionState === "all"
596
- ? true
597
- : selectionState === "someIncluded"
598
- ? !!selectedRows.find((row) => keyValue
599
- ? row[keyValue] === rowData[keyValue]
600
- : false)
601
- : selectionState === "someExcluded"
602
- ? !excludedRows.find((row) => keyValue
603
- ? row[keyValue] === rowData[keyValue]
604
- : false)
605
- : false, onChange: (newValue) => handleSelectRow({ rowData, checked: newValue }) }) })), (0, jsx_runtime_1.jsx)("div", { className: "action-button", title: "Show More Details", onClick: (e) => {
606
- onActionButtonClick === null || onActionButtonClick === void 0 ? void 0 : onActionButtonClick(rowData);
607
- }, children: (0, jsx_runtime_1.jsx)(lucide_react_1.Maximize2Icon, { size: _compact ? 8 : 12 }) })] })) }, short_uuid_1.default.generate()),
608
- ...columns,
609
- ]);
610
- (0, react_1.useEffect)(() => {
611
- if (targetElm && listElm) {
612
- initialize({
613
- target: targetElm,
614
- elements: {
615
- viewport: listElm,
616
- },
617
- });
618
- return () => { var _a; return (_a = getInstance()) === null || _a === void 0 ? void 0 : _a.destroy(); };
619
- }
620
- }, [targetElm, listElm]);
621
- (0, react_1.useEffect)(() => {
622
- if (tableInstance) {
623
- tableInstance.setTableInstance({
624
- getSelectedRows: () => selectedRows,
625
- getExcludedRows: () => excludedRows,
626
- getVirtualSelectionTotal: () => virtualSelectionTotal,
627
- getSelectionState: () => selectionState,
628
- clearSelections: () => {
629
- setSelectedRows([]);
630
- setVirtualSelectionTotal(0);
631
- setSelectionState("none");
632
- setExcludedRows([]);
633
- },
634
- toggleCompact: () => setCompact(!_compact),
635
- isCompact: _compact,
636
- toggleStripes: () => setStripes(!stripes),
637
- isStriped: stripes,
638
- });
639
- }
640
- }, [
641
- selectedRows,
642
- excludedRows,
643
- virtualSelectionTotal,
644
- selectionState,
645
- _compact,
646
- stripes,
647
- tableInstance,
648
- ]);
649
- (0, react_1.useEffect)(() => {
650
- // Scroll to selected row if outside of viewport
651
- if (focusedRow) {
652
- const focusedRowElm = keyValue
653
- ? document.querySelector(`[data-type="tr"][data-key="${focusedRow[keyValue]}"]`)
654
- : null;
655
- if (focusedRowElm) {
656
- focusedRowElm.scrollIntoView({
657
- behavior: "smooth",
658
- block: "nearest",
659
- inline: "nearest",
660
- });
661
- }
662
- }
663
- }, [focusedRow]);
664
- return ((0, jsx_runtime_1.jsx)("div", { ref: rootRef, className: className + " table-wrapper", children: (0, jsx_runtime_1.jsx)(react_virtualized_auto_sizer_1.default, { children: ({ height, width }) => ((0, jsx_runtime_1.jsx)("div", { style: { width, height }, "data-overlayscrollbars": "", ref: setTargetElm, children: (0, jsx_runtime_1.jsx)(react_window_1.FixedSizeList, { overscanCount: 10, itemData: {
665
- data,
666
- columns: columns.filter((col) => !hiddenColumns.includes(col.props.dataField)),
667
- focusedRow,
668
- keyValue,
669
- _compact,
670
- queryKey,
671
- reloadFn,
672
- rowHeight: rowHeight ? rowHeight : _compact ? 28 : 38,
673
- headerHeight: headerHeight
674
- ? headerHeight
675
- : _compact
676
- ? 28
677
- : 38,
678
- resizeState,
679
- onRowUpdated,
680
- tableWidth: width,
681
- }, height: height, innerElementType: (props) => ((0, jsx_runtime_1.jsx)(InnerElement, Object.assign({}, props, { columns: columns.filter((col) => !hiddenColumns.includes(col.props.dataField)), tableWidth: width, resizeState: resizeState, _compact: _compact, stripes: stripes, onHeaderClick: onHeaderClick, dropColumn: dropColumn, dragColumn: dragColumn, showSelection: showSelection, selectAll: selectAll, selectionState: selectionState, handleSelectAll: handleSelectAll, handleColumnReorder: handleColumnReorder, onColumnResize: onColumnResize }))), itemCount: data === null || data === void 0 ? void 0 : data.length, itemSize: rowHeight ? rowHeight : _compact ? 28 : 38, width: width, outerRef: setListElm, children: Row }) })) }) }));
682
- }) `
683
- position: relative;
684
- flex: 1 1 auto;
685
- overflow: hidden;
686
- display: flex;
687
- flex-direction: column;
688
-
689
- .os-scrollbar {
690
- pointer-events: auto;
691
- visibility: visible;
692
- }
693
-
694
- .action-column {
695
- max-width: 55px;
696
- }
697
-
698
- .action-column-container {
699
- display: flex;
700
- align-content: center;
701
- align-items: center;
702
- padding: 4px;
703
- color: ${({ theme }) => theme.palette.text.secondary};
704
- }
705
-
706
- .action-button {
707
- display: flex;
708
- align-content: center;
709
- align-items: center;
710
- cursor: pointer;
711
- color: ${({ theme }) => theme.palette.primary.main};
712
- margin-right: 5px;
713
- }
714
- `;
715
- exports.default = Table;