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