@apia/table 1.0.4 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (137) hide show
  1. package/dist/Cell.js +52 -0
  2. package/dist/Cell.js.map +1 -0
  3. package/dist/FilterCell.js +68 -0
  4. package/dist/FilterCell.js.map +1 -0
  5. package/dist/Header.js +171 -0
  6. package/dist/Header.js.map +1 -0
  7. package/dist/HeaderCell.js +223 -0
  8. package/dist/HeaderCell.js.map +1 -0
  9. package/dist/KeyHandler.js +28 -0
  10. package/dist/KeyHandler.js.map +1 -0
  11. package/dist/ResponsiveTable.d.ts +8 -0
  12. package/dist/ResponsiveTable.d.ts.map +1 -0
  13. package/dist/ResponsiveTable.js +29 -0
  14. package/dist/ResponsiveTable.js.map +1 -0
  15. package/dist/ResponsiveTableContext.d.ts +8 -0
  16. package/dist/ResponsiveTableContext.d.ts.map +1 -0
  17. package/dist/ResponsiveTableContext.js +140 -0
  18. package/dist/ResponsiveTableContext.js.map +1 -0
  19. package/dist/Row.js +230 -0
  20. package/dist/Row.js.map +1 -0
  21. package/dist/SeparatorCell.js +20 -0
  22. package/dist/SeparatorCell.js.map +1 -0
  23. package/dist/StateCell.js +19 -0
  24. package/dist/StateCell.js.map +1 -0
  25. package/dist/filters/RangeFilter.js +61 -0
  26. package/dist/filters/RangeFilter.js.map +1 -0
  27. package/dist/index.d.ts +25 -628
  28. package/dist/index.js +25 -3273
  29. package/dist/index.js.map +1 -1
  30. package/dist/renderers/AccordionCell.d.ts +15 -0
  31. package/dist/renderers/AccordionCell.d.ts.map +1 -0
  32. package/dist/renderers/AccordionCell.js +23 -0
  33. package/dist/renderers/AccordionCell.js.map +1 -0
  34. package/dist/renderers/AccordionDocNameCellRenderer.d.ts +11 -0
  35. package/dist/renderers/AccordionDocNameCellRenderer.d.ts.map +1 -0
  36. package/dist/renderers/AccordionDocNameCellRenderer.js +39 -0
  37. package/dist/renderers/AccordionDocNameCellRenderer.js.map +1 -0
  38. package/dist/renderers/AccordionElement.d.ts +11 -0
  39. package/dist/renderers/AccordionElement.d.ts.map +1 -0
  40. package/dist/renderers/AccordionElement.js +115 -0
  41. package/dist/renderers/AccordionElement.js.map +1 -0
  42. package/dist/renderers/AccordionHTMLCellRenderer.d.ts +8 -0
  43. package/dist/renderers/AccordionHTMLCellRenderer.d.ts.map +1 -0
  44. package/dist/renderers/AccordionHTMLCellRenderer.js +37 -0
  45. package/dist/renderers/AccordionHTMLCellRenderer.js.map +1 -0
  46. package/dist/renderers/AccordionRenderer.d.ts +6 -0
  47. package/dist/renderers/AccordionRenderer.d.ts.map +1 -0
  48. package/dist/renderers/AccordionRenderer.js +76 -0
  49. package/dist/renderers/AccordionRenderer.js.map +1 -0
  50. package/dist/renderers/AdditionalColumnDefaultRenderer.d.ts +7 -0
  51. package/dist/renderers/AdditionalColumnDefaultRenderer.d.ts.map +1 -0
  52. package/dist/renderers/AdditionalColumnDefaultRenderer.js +31 -0
  53. package/dist/renderers/AdditionalColumnDefaultRenderer.js.map +1 -0
  54. package/dist/renderers/DefaultCellRenderer.d.ts +11 -0
  55. package/dist/renderers/DefaultCellRenderer.d.ts.map +1 -0
  56. package/dist/renderers/DefaultCellRenderer.js +49 -0
  57. package/dist/renderers/DefaultCellRenderer.js.map +1 -0
  58. package/dist/renderers/DefaultRowRenderer.d.ts +6 -0
  59. package/dist/renderers/DefaultRowRenderer.d.ts.map +1 -0
  60. package/dist/renderers/DefaultRowRenderer.js +26 -0
  61. package/dist/renderers/DefaultRowRenderer.js.map +1 -0
  62. package/dist/renderers/DocNameCellRenderer.d.ts +10 -0
  63. package/dist/renderers/DocNameCellRenderer.d.ts.map +1 -0
  64. package/dist/renderers/DocNameCellRenderer.js +43 -0
  65. package/dist/renderers/DocNameCellRenderer.js.map +1 -0
  66. package/dist/renderers/HTMLCellRenderer.d.ts +8 -0
  67. package/dist/renderers/HTMLCellRenderer.d.ts.map +1 -0
  68. package/dist/renderers/HTMLCellRenderer.js +29 -0
  69. package/dist/renderers/HTMLCellRenderer.js.map +1 -0
  70. package/dist/renderers/IsLoadingRenderer.d.ts +6 -0
  71. package/dist/renderers/IsLoadingRenderer.d.ts.map +1 -0
  72. package/dist/renderers/IsLoadingRenderer.js +9 -0
  73. package/dist/renderers/IsLoadingRenderer.js.map +1 -0
  74. package/dist/renderers/NoRegistersRenderer.d.ts +6 -0
  75. package/dist/renderers/NoRegistersRenderer.d.ts.map +1 -0
  76. package/dist/renderers/NoRegistersRenderer.js +11 -0
  77. package/dist/renderers/NoRegistersRenderer.js.map +1 -0
  78. package/dist/renderers/PriorityAccordionRenderer.d.ts +6 -0
  79. package/dist/renderers/PriorityAccordionRenderer.d.ts.map +1 -0
  80. package/dist/renderers/PriorityAccordionRenderer.js +36 -0
  81. package/dist/renderers/PriorityAccordionRenderer.js.map +1 -0
  82. package/dist/renderers/PriorityRenderer.d.ts +9 -0
  83. package/dist/renderers/PriorityRenderer.d.ts.map +1 -0
  84. package/dist/renderers/PriorityRenderer.js +46 -0
  85. package/dist/renderers/PriorityRenderer.js.map +1 -0
  86. package/dist/renderers/RowStatesRenderer.d.ts +9 -0
  87. package/dist/renderers/RowStatesRenderer.d.ts.map +1 -0
  88. package/dist/renderers/RowStatesRenderer.js +34 -0
  89. package/dist/renderers/RowStatesRenderer.js.map +1 -0
  90. package/dist/renderers/StatusAccordionRenderer.d.ts +6 -0
  91. package/dist/renderers/StatusAccordionRenderer.d.ts.map +1 -0
  92. package/dist/renderers/StatusAccordionRenderer.js +23 -0
  93. package/dist/renderers/StatusAccordionRenderer.js.map +1 -0
  94. package/dist/renderers/StatusRenderer.d.ts +9 -0
  95. package/dist/renderers/StatusRenderer.d.ts.map +1 -0
  96. package/dist/renderers/StatusRenderer.js +54 -0
  97. package/dist/renderers/StatusRenderer.js.map +1 -0
  98. package/dist/renderers/TableRenderer.d.ts +6 -0
  99. package/dist/renderers/TableRenderer.d.ts.map +1 -0
  100. package/dist/renderers/TableRenderer.js +50 -0
  101. package/dist/renderers/TableRenderer.js.map +1 -0
  102. package/dist/renderers/makeAccordionAsyncRenderer.d.ts +9 -0
  103. package/dist/renderers/makeAccordionAsyncRenderer.d.ts.map +1 -0
  104. package/dist/renderers/makeAccordionAsyncRenderer.js +35 -0
  105. package/dist/renderers/makeAccordionAsyncRenderer.js.map +1 -0
  106. package/dist/renderers/makeAsyncRenderer.d.ts +10 -0
  107. package/dist/renderers/makeAsyncRenderer.d.ts.map +1 -0
  108. package/dist/renderers/makeAsyncRenderer.js +47 -0
  109. package/dist/renderers/makeAsyncRenderer.js.map +1 -0
  110. package/dist/store/index.d.ts +72 -0
  111. package/dist/store/index.d.ts.map +1 -0
  112. package/dist/store/index.js +131 -0
  113. package/dist/store/index.js.map +1 -0
  114. package/dist/store/selection/getInitialState.js +22 -0
  115. package/dist/store/selection/getInitialState.js.map +1 -0
  116. package/dist/store/selection/getReduxActions.js +42 -0
  117. package/dist/store/selection/getReduxActions.js.map +1 -0
  118. package/dist/store/selection/handleKey.js +143 -0
  119. package/dist/store/selection/handleKey.js.map +1 -0
  120. package/dist/store/selection/makeKeyHandler.js +336 -0
  121. package/dist/store/selection/makeKeyHandler.js.map +1 -0
  122. package/dist/store/selection/setNewFocused.js +101 -0
  123. package/dist/store/selection/setNewFocused.js.map +1 -0
  124. package/dist/store/selection/types.d.ts +150 -0
  125. package/dist/store/selection/types.d.ts.map +1 -0
  126. package/dist/store/selection/useDomProps.js +181 -0
  127. package/dist/store/selection/useDomProps.js.map +1 -0
  128. package/dist/store/types.d.ts +19 -0
  129. package/dist/store/types.d.ts.map +1 -0
  130. package/dist/types.d.ts +315 -0
  131. package/dist/types.d.ts.map +1 -0
  132. package/dist/types.js +6 -0
  133. package/dist/types.js.map +1 -0
  134. package/package.json +22 -34
  135. package/LICENSE.md +0 -21
  136. package/README.md +0 -28
  137. package/cleanDist.json +0 -3
package/dist/index.js CHANGED
@@ -1,3273 +1,25 @@
1
- import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
2
- import React, { useState, useMemo, memo, forwardRef, useCallback } from 'react';
3
- import { Box, getVariant, Input, useBreakpointIndex, Link, Spinner } from '@apia/theme';
4
- import { useThrottleFn, useMount, useUpdateEffect as useUpdateEffect$1, useUnmount } from 'ahooks';
5
- import { uniqueId } from 'lodash-es';
6
- import { createSlice, injectReducers, shallowEqual as shallowEqual$1 } from '@apia/store';
7
- import { addBoundary, useLatest, useUpdateEffect, getSpecificParent, isChild, autoDisconnectMutationObserver, getFocusSelector, cantFocusSelector, globalFocus, scrollParentIntoElement, customEvents, debugDispatcher, persistentStorage, EventEmitter, getLabel, downloadUrl, arrayOrArray, useMount as useMount$1, getDateFormat } from '@apia/util';
8
- import { shallowEqual } from 'react-redux';
9
- import { useOtherTagButton, AutoEllipsis, ApiaFilter, IconButton, AccordionItem, Accordion } from '@apia/components';
10
- import { Icon } from '@apia/icons';
11
- import { FaSortUp, FaSortDown, FaSort, FaSquare } from '@meronex/icons/fa';
12
- import { MdKeyboardArrowDown, MdKeyboardArrowRight } from '@meronex/icons/md/';
13
- import dayjs from 'dayjs';
14
-
15
- const defaultLabels = {
16
- noRegisters: window.FINDER_NO_DATA
17
- };
18
-
19
- function getInitialState$1() {
20
- return {
21
- allowEdition: false,
22
- allowSelection: true,
23
- columns: [],
24
- expandedRows: [],
25
- isEditionMode: false,
26
- isFocused: false,
27
- filters: [],
28
- focusedColumn: 0,
29
- focusedRow: 0,
30
- hasNonAdditionalFilters: false,
31
- isMultiple: true,
32
- nonAdditionalColumnsCount: 0,
33
- rows: [],
34
- selectedRows: [],
35
- statesColumns: 0
36
- };
37
- }
38
-
39
- function addRowBoundary(newRow, state) {
40
- const hasFiltersRow = !!state.filters.find(
41
- (current) => !!state.columns.find((search) => search.name === current.column)
42
- );
43
- return addBoundary({
44
- number: newRow,
45
- min: hasFiltersRow ? -2 : -1,
46
- max: Math.max(0, state.rows.length - 1)
47
- });
48
- }
49
- function addColumnBoundary(newColumn, state) {
50
- return addBoundary({
51
- number: newColumn,
52
- min: 0,
53
- max: state.nonAdditionalColumnsCount + state.statesColumns + (state.hasNonAdditionalFilters ? 1 : 0)
54
- });
55
- }
56
- function isBasicRow(row) {
57
- return typeof row === "object" && !!row && "forbidSelection" in row;
58
- }
59
- function filterNonSellectableRows(state, newSelection) {
60
- let expandedRowsBefore = 0;
61
- return newSelection.filter((selectedRowIndex) => {
62
- const row = state.rows[selectedRowIndex + expandedRowsBefore];
63
- if (state.expandedRows.includes(selectedRowIndex))
64
- expandedRowsBefore += 1;
65
- return !(isBasicRow(row) && row.forbidSelection);
66
- });
67
- }
68
- function setNewFocused(state, {
69
- /**
70
- * Propiedad proveniente del evento click o keydown.
71
- */
72
- ctrlKey,
73
- /**
74
- * Propiedad proveniente del evento click o keydown.
75
- */
76
- shiftKey,
77
- newFocusedColumn,
78
- newFocusedRow,
79
- /**
80
- * Con este método se puede seleccionar cuál celda
81
- * va a recibir el foco y la selección, o solamente
82
- * el foco si esta propiedad es pasada en false.
83
- */
84
- shouldSelectNewFocused
85
- }) {
86
- var _a;
87
- let actualNewFocusedRow = Math.round(
88
- addRowBoundary((_a = newFocusedRow != null ? newFocusedRow : state.focusedRow) != null ? _a : 0, state) * 2
89
- ) / 2;
90
- const actualNewFocusedColumn = addColumnBoundary(
91
- newFocusedColumn != null ? newFocusedColumn : state.focusedColumn,
92
- state
93
- );
94
- state.focusedColumn = actualNewFocusedColumn;
95
- state.focusedRow = actualNewFocusedRow;
96
- state.isFocused = shouldSelectNewFocused != null ? shouldSelectNewFocused : false;
97
- if (shouldSelectNewFocused === false || actualNewFocusedRow < 0)
98
- return;
99
- if (Math.round(actualNewFocusedRow) - actualNewFocusedRow !== 0)
100
- actualNewFocusedRow = Math.floor(actualNewFocusedRow);
101
- const isDeselectingWithCtrl = ctrlKey && state.selectedRows.includes(actualNewFocusedRow);
102
- if (state.allowSelection !== false) {
103
- if (!ctrlKey && !shiftKey || state.isMultiple === false && !isDeselectingWithCtrl)
104
- state.selectedRows = filterNonSellectableRows(state, [
105
- actualNewFocusedRow
106
- ]);
107
- else if (ctrlKey && state.isMultiple || isDeselectingWithCtrl) {
108
- state.selectedRows = filterNonSellectableRows(
109
- state,
110
- state.selectedRows.includes(actualNewFocusedRow) ? state.selectedRows.filter(
111
- (current) => current !== actualNewFocusedRow
112
- ) : [...state.selectedRows, actualNewFocusedRow]
113
- );
114
- } else if (shiftKey && state.isMultiple) {
115
- const sortedSelectedRows = [...state.selectedRows].sort((a, b) => a - b);
116
- let minSelectedRow = sortedSelectedRows[0];
117
- let maxSelectedRow = sortedSelectedRows[sortedSelectedRows.length - 1];
118
- if (minSelectedRow === void 0) {
119
- state.selectedRows = filterNonSellectableRows(state, [
120
- actualNewFocusedRow
121
- ]);
122
- return;
123
- }
124
- if (actualNewFocusedRow < minSelectedRow)
125
- minSelectedRow = actualNewFocusedRow;
126
- if (actualNewFocusedRow > maxSelectedRow)
127
- maxSelectedRow = actualNewFocusedRow;
128
- const newSelectedRows = filterNonSellectableRows(
129
- state,
130
- new Array(maxSelectedRow - minSelectedRow + 1).fill("").map((_, i) => i + (minSelectedRow != null ? minSelectedRow : 0))
131
- );
132
- state.selectedRows = filterNonSellectableRows(state, newSelectedRows);
133
- }
134
- }
135
- }
136
-
137
- var __defProp$o = Object.defineProperty;
138
- var __getOwnPropSymbols$o = Object.getOwnPropertySymbols;
139
- var __hasOwnProp$o = Object.prototype.hasOwnProperty;
140
- var __propIsEnum$o = Object.prototype.propertyIsEnumerable;
141
- var __defNormalProp$o = (obj, key, value) => key in obj ? __defProp$o(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
142
- var __spreadValues$o = (a, b) => {
143
- for (var prop in b || (b = {}))
144
- if (__hasOwnProp$o.call(b, prop))
145
- __defNormalProp$o(a, prop, b[prop]);
146
- if (__getOwnPropSymbols$o)
147
- for (var prop of __getOwnPropSymbols$o(b)) {
148
- if (__propIsEnum$o.call(b, prop))
149
- __defNormalProp$o(a, prop, b[prop]);
150
- }
151
- return a;
152
- };
153
- var __objRest$d = (source, exclude) => {
154
- var target = {};
155
- for (var prop in source)
156
- if (__hasOwnProp$o.call(source, prop) && exclude.indexOf(prop) < 0)
157
- target[prop] = source[prop];
158
- if (source != null && __getOwnPropSymbols$o)
159
- for (var prop of __getOwnPropSymbols$o(source)) {
160
- if (exclude.indexOf(prop) < 0 && __propIsEnum$o.call(source, prop))
161
- target[prop] = source[prop];
162
- }
163
- return target;
164
- };
165
- function willHandleKey(ev, state) {
166
- const actualKey = ev.key.toLowerCase();
167
- if (state.isEditionMode)
168
- return false;
169
- if (actualKey === " " && ev.ctrlKey)
170
- return true;
171
- if (actualKey === "a" && ev.ctrlKey)
172
- return true;
173
- if (actualKey === "m" && ev.ctrlKey)
174
- return true;
175
- if (state.draggingRow !== void 0) {
176
- return ["Escape", "Enter"].includes(ev.key);
177
- }
178
- return [
179
- "arrowup",
180
- "arrowdown",
181
- "arrowleft",
182
- "arrowright",
183
- "end",
184
- "enter",
185
- "home",
186
- "pageup",
187
- "pagedown"
188
- ].includes(ev.key.toLowerCase());
189
- }
190
- function handleKey(state, { ev }) {
191
- const {
192
- altKey: isAltPressed,
193
- ctrlKey: isCtrlPressed,
194
- key,
195
- shiftKey: isShiftPressed
196
- } = ev;
197
- if (willHandleKey(ev, state))
198
- ev.preventDefault();
199
- const actualKey = key.toLowerCase();
200
- const setFocus = (_a) => {
201
- var _b = _a, {
202
- newFocusedColumn,
203
- newFocusedRow
204
- } = _b, rest = __objRest$d(_b, [
205
- "newFocusedColumn",
206
- "newFocusedRow"
207
- ]);
208
- return setNewFocused(state, __spreadValues$o({
209
- altKey: isAltPressed,
210
- ctrlKey: isCtrlPressed,
211
- shiftKey: isShiftPressed,
212
- newFocusedColumn,
213
- newFocusedRow
214
- }, rest));
215
- };
216
- if (!state.isEditionMode) {
217
- if (actualKey === "enter" && (state.allowEdition === true || state.focusedRow < 0))
218
- state.isEditionMode = true;
219
- else
220
- switch (actualKey) {
221
- case "arrowup": {
222
- let sumRate = state.expandedRows.includes(state.focusedRow - 1) ? 0.6 : 1;
223
- if (Math.round(state.focusedRow) - state.focusedRow !== 0)
224
- sumRate = 0.5;
225
- setFocus({
226
- newFocusedRow: state.focusedRow - sumRate,
227
- shouldSelectNewFocused: !isCtrlPressed
228
- });
229
- break;
230
- }
231
- case "arrowdown": {
232
- let sumRate = state.expandedRows.includes(state.focusedRow) ? 0.6 : 1;
233
- if (Math.round(state.focusedRow) - state.focusedRow !== 0)
234
- sumRate = 0.5;
235
- setFocus({
236
- newFocusedRow: state.focusedRow + sumRate,
237
- shouldSelectNewFocused: !isCtrlPressed
238
- });
239
- break;
240
- }
241
- case "arrowleft":
242
- case "arrowright": {
243
- setFocus({
244
- newFocusedColumn: state.focusedColumn + (actualKey === "arrowleft" ? -1 : 1),
245
- shouldSelectNewFocused: !isCtrlPressed
246
- });
247
- break;
248
- }
249
- case "home": {
250
- if (isCtrlPressed)
251
- setFocus({ newFocusedColumn: 0, newFocusedRow: 0, ctrlKey: false });
252
- else
253
- setFocus({ newFocusedColumn: 0 });
254
- break;
255
- }
256
- case "end": {
257
- if (isCtrlPressed)
258
- setFocus({
259
- newFocusedRow: Number.POSITIVE_INFINITY,
260
- newFocusedColumn: Number.POSITIVE_INFINITY,
261
- ctrlKey: false
262
- });
263
- else
264
- setFocus({
265
- newFocusedColumn: Number.POSITIVE_INFINITY
266
- });
267
- break;
268
- }
269
- case "pageup": {
270
- setFocus({
271
- newFocusedRow: state.focusedRow - 5,
272
- shouldSelectNewFocused: !isCtrlPressed
273
- });
274
- break;
275
- }
276
- case "pagedown": {
277
- setFocus({
278
- newFocusedRow: state.focusedRow + 5,
279
- shouldSelectNewFocused: !isCtrlPressed
280
- });
281
- break;
282
- }
283
- case " ": {
284
- if (isCtrlPressed)
285
- setFocus({
286
- newFocusedRow: state.focusedRow
287
- });
288
- break;
289
- }
290
- case "a": {
291
- if (isCtrlPressed && state.allowSelection)
292
- state.selectedRows = state.rows.map((_, i) => i);
293
- break;
294
- }
295
- }
296
- } else
297
- switch (actualKey) {
298
- case "escape":
299
- case "enter": {
300
- if (state.isEditionMode)
301
- state.isEditionMode = false;
302
- ev.stopPropagation();
303
- break;
304
- }
305
- }
306
- }
307
-
308
- var __defProp$n = Object.defineProperty;
309
- var __defProps$k = Object.defineProperties;
310
- var __getOwnPropDescs$k = Object.getOwnPropertyDescriptors;
311
- var __getOwnPropSymbols$n = Object.getOwnPropertySymbols;
312
- var __hasOwnProp$n = Object.prototype.hasOwnProperty;
313
- var __propIsEnum$n = Object.prototype.propertyIsEnumerable;
314
- var __defNormalProp$n = (obj, key, value) => key in obj ? __defProp$n(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
315
- var __spreadValues$n = (a, b) => {
316
- for (var prop in b || (b = {}))
317
- if (__hasOwnProp$n.call(b, prop))
318
- __defNormalProp$n(a, prop, b[prop]);
319
- if (__getOwnPropSymbols$n)
320
- for (var prop of __getOwnPropSymbols$n(b)) {
321
- if (__propIsEnum$n.call(b, prop))
322
- __defNormalProp$n(a, prop, b[prop]);
323
- }
324
- return a;
325
- };
326
- var __spreadProps$k = (a, b) => __defProps$k(a, __getOwnPropDescs$k(b));
327
- var __objRest$c = (source, exclude) => {
328
- var target = {};
329
- for (var prop in source)
330
- if (__hasOwnProp$n.call(source, prop) && exclude.indexOf(prop) < 0)
331
- target[prop] = source[prop];
332
- if (source != null && __getOwnPropSymbols$n)
333
- for (var prop of __getOwnPropSymbols$n(source)) {
334
- if (exclude.indexOf(prop) < 0 && __propIsEnum$n.call(source, prop))
335
- target[prop] = source[prop];
336
- }
337
- return target;
338
- };
339
- function shoutKeyhandlerLive(liveType, additionalData) {
340
- console.warn("Not implemented arialiveemitter", additionalData);
341
- }
342
- let scrollTimeout;
343
- function makeKeyHandler(actions, id, config) {
344
- return function KeyHandler(_a) {
345
- var _b = _a, {
346
- children,
347
- onChangeSelection,
348
- onSelectRows
349
- } = _b, props = __objRest$c(_b, [
350
- "children",
351
- "onChangeSelection",
352
- "onSelectRows"
353
- ]);
354
- var _a2, _b2;
355
- const { run: keyHandler } = useThrottleFn((ev) => {
356
- if (!["shift", "alt", "control"].includes(ev.key.toLowerCase())) {
357
- responsiveTableStore.dispatch(actions.handleKey({ id, ev }));
358
- }
359
- }, (_a2 = config == null ? void 0 : config.throttleOptions) != null ? _a2 : { wait: 100 });
360
- const [ref, setRef] = React.useState(null);
361
- const selectedRows = useResponsiveTable(
362
- (global) => {
363
- var _a3;
364
- const state = config.stateSelector(global);
365
- return ((_a3 = state == null ? void 0 : state.selectedRows) != null ? _a3 : []).map((current) => ({
366
- index: current,
367
- row: state.rows[current]
368
- }));
369
- },
370
- (a, b) => shallowEqual(
371
- a.map((current) => current.index),
372
- b.map((current) => current.index)
373
- )
374
- );
375
- const selectedRowsRef = useLatest(selectedRows);
376
- useResponsiveTable((global) => {
377
- var _a3;
378
- const state = config.stateSelector(global);
379
- return (_a3 = state == null ? void 0 : state.focusedRow) != null ? _a3 : -1;
380
- });
381
- const { allowKeyboardSorting, focusedCell, isEditionMode, isFocused } = useResponsiveTable((global) => {
382
- const state = config.stateSelector(global);
383
- return {
384
- focusedCell: (state == null ? void 0 : state.focusedRow) !== void 0 ? `${state == null ? void 0 : state.focusedRow}_${state == null ? void 0 : state.focusedColumn}` : void 0,
385
- isEditionMode: state == null ? void 0 : state.isEditionMode,
386
- rows: state == null ? void 0 : state.rows,
387
- isFocused: state == null ? void 0 : state.isFocused,
388
- allowKeyboardSorting: state == null ? void 0 : state.allowRowsKeyboardSorting
389
- };
390
- }, shallowEqual);
391
- useUpdateEffect(() => {
392
- if (onChangeSelection)
393
- onChangeSelection(selectedRows);
394
- }, [onChangeSelection, selectedRows]);
395
- const handleClick = React.useCallback(
396
- (ev) => {
397
- var _a3;
398
- if (ev.target.closest(".moreInformationButton"))
399
- return;
400
- if (ev.shiftKey) {
401
- (_a3 = document.getSelection()) == null ? void 0 : _a3.removeAllRanges();
402
- }
403
- const parentRow = getSpecificParent(
404
- ev.target,
405
- (current) => {
406
- if (current.tagName.toLowerCase() === "table")
407
- return null;
408
- if (current.matches("tr")) {
409
- return true;
410
- }
411
- return false;
412
- }
413
- );
414
- const parentCell = getSpecificParent(
415
- ev.target,
416
- (current) => {
417
- if (current.tagName.toLowerCase() === "table")
418
- return null;
419
- if (current.matches("td,th")) {
420
- return true;
421
- }
422
- return false;
423
- }
424
- );
425
- if (parentCell && parentRow) {
426
- responsiveTableStore.dispatch(
427
- actions.updateByClick({
428
- altKey: ev.altKey,
429
- id,
430
- ctrlKey: ev.ctrlKey,
431
- ariaColIndex: Number(parentCell.getAttribute("aria-colindex")),
432
- rowIndex: Number(parentRow.getAttribute("data-focusindex")),
433
- shiftKey: ev.shiftKey
434
- })
435
- );
436
- }
437
- },
438
- []
439
- );
440
- const handleDoubleClick = React.useCallback(
441
- (ev) => {
442
- if (isChild(
443
- ev.target,
444
- (current) => current.tagName === "THEAD"
445
- ))
446
- return;
447
- ev.preventDefault();
448
- if (onSelectRows)
449
- onSelectRows(
450
- selectedRowsRef.current,
451
- config.stateSelector(responsiveTableStore.getState()).focusedRow
452
- );
453
- },
454
- [onSelectRows, selectedRowsRef]
455
- );
456
- const initialized = React.useRef(true);
457
- const running = React.useRef(false);
458
- const doFocusThings = React.useCallback(() => {
459
- if (!running.current) {
460
- running.current = true;
461
- if (focusedCell === void 0) {
462
- running.current = false;
463
- return () => {
464
- };
465
- }
466
- if (ref) {
467
- const disconnectObserver = autoDisconnectMutationObserver(
468
- ref,
469
- () => {
470
- scrollTimeout = setTimeout(() => {
471
- var _a3;
472
- const focusedElement = ref.querySelector(
473
- '[data-focused="true"]'
474
- );
475
- let tableCellElement = null;
476
- let tableCellWidget = null;
477
- if (["td", "th"].includes(
478
- (_a3 = focusedElement == null ? void 0 : focusedElement.tagName.toLowerCase()) != null ? _a3 : ""
479
- )) {
480
- tableCellElement = focusedElement;
481
- tableCellWidget = focusedElement == null ? void 0 : focusedElement.querySelector(
482
- getFocusSelector(":not(.debug_info__button)")
483
- );
484
- }
485
- if ((focusedElement == null ? void 0 : focusedElement.tagName.toLowerCase()) === "tr") {
486
- tableCellElement = focusedElement.querySelector("td,th");
487
- tableCellWidget = focusedElement.querySelector(
488
- getFocusSelector(":not(.debug_info__button)")
489
- ) || tableCellElement;
490
- }
491
- if (tableCellWidget) {
492
- tableCellElement == null ? void 0 : tableCellElement.setAttribute("tabIndex", "-1");
493
- tableCellWidget.setAttribute("tabIndex", "0");
494
- } else
495
- tableCellElement == null ? void 0 : tableCellElement.setAttribute("tabIndex", "0");
496
- if (!isEditionMode) {
497
- const allFocusableElements = ref == null ? void 0 : ref.querySelectorAll(
498
- getFocusSelector(
499
- `${cantFocusSelector}:not([data-focused="true"])`
500
- )
501
- );
502
- allFocusableElements == null ? void 0 : allFocusableElements.forEach((current) => {
503
- if (current !== tableCellWidget) {
504
- current.setAttribute("tabIndex", "-1");
505
- }
506
- if ((tableCellWidget == null ? void 0 : tableCellWidget.tagName) === "BUTTON")
507
- tableCellWidget.setAttribute("role", "gridcell");
508
- });
509
- } else {
510
- const focusableElements = tableCellElement == null ? void 0 : tableCellElement.querySelectorAll('[tabindex="-1"]');
511
- focusableElements == null ? void 0 : focusableElements.forEach(
512
- (current) => current.setAttribute("tabIndex", "0")
513
- );
514
- }
515
- const focusElement = tableCellWidget != null ? tableCellWidget : tableCellElement;
516
- const row = getSpecificParent(
517
- focusElement,
518
- (current) => current.tagName === "TR"
519
- );
520
- if (focusElement && initialized.current && config.stateSelector(responsiveTableStore.getState()).isFocused) {
521
- globalFocus.focus = focusElement;
522
- focusElement.focus();
523
- }
524
- if (row) {
525
- scrollParentIntoElement(row, 55, 2, 100, "makeKeyHandler");
526
- }
527
- if (!initialized.current) {
528
- initialized.current = true;
529
- }
530
- }, 0);
531
- },
532
- { timeout: 5e3 }
533
- );
534
- running.current = false;
535
- return () => {
536
- disconnectObserver();
537
- clearTimeout(scrollTimeout);
538
- };
539
- }
540
- running.current = false;
541
- }
542
- return () => {
543
- };
544
- }, [focusedCell, ref, isEditionMode]);
545
- React.useLayoutEffect(doFocusThings, [
546
- focusedCell,
547
- isFocused,
548
- isEditionMode
549
- ]);
550
- React.useEffect(() => {
551
- function handleFocus(ev) {
552
- const targetTable = getSpecificParent(
553
- ev.target,
554
- (current) => current.tagName.toLowerCase() === "table"
555
- );
556
- const relatedTargetTable = getSpecificParent(
557
- ev.relatedTarget,
558
- (current) => current.tagName.toLowerCase() === "table"
559
- );
560
- if (!relatedTargetTable || relatedTargetTable !== targetTable)
561
- handleClick(ev);
562
- }
563
- ref == null ? void 0 : ref.addEventListener("dblclick", handleDoubleClick);
564
- ref == null ? void 0 : ref.addEventListener("mousedown", handleClick);
565
- ref == null ? void 0 : ref.addEventListener("focusin", handleFocus);
566
- ref == null ? void 0 : ref.addEventListener(customEvents.focus, handleClick);
567
- return () => {
568
- ref == null ? void 0 : ref.removeEventListener("mousedown", handleClick);
569
- ref == null ? void 0 : ref.removeEventListener("dblclick", handleDoubleClick);
570
- ref == null ? void 0 : ref.removeEventListener("focusin", handleFocus);
571
- ref == null ? void 0 : ref.removeEventListener(customEvents.focus, handleClick);
572
- };
573
- }, [ref]);
574
- const isDragging = React.useRef(false);
575
- const isFocusedRef = React.useRef(false);
576
- return /* @__PURE__ */ jsx(
577
- Box,
578
- __spreadProps$k(__spreadValues$n({
579
- ref: setRef
580
- }, props), {
581
- className: `selection__keyHandler ${(_b2 = props.className) != null ? _b2 : ""}`,
582
- onBlur: React.useCallback(
583
- (ev) => {
584
- if (!ev.relatedTarget || !getSpecificParent(
585
- ev.relatedTarget,
586
- (current) => current === ref
587
- )) {
588
- responsiveTableStore.dispatch(
589
- actions.selectionStateUpdate({ id, isFocused: false })
590
- );
591
- shoutKeyhandlerLive();
592
- isFocusedRef.current = false;
593
- }
594
- },
595
- [ref]
596
- ),
597
- onFocus: React.useCallback(() => {
598
- if (!isFocusedRef.current)
599
- shoutKeyhandlerLive();
600
- isFocusedRef.current = true;
601
- }, []),
602
- sx: React.useMemo(
603
- () => ({ overflow: "auto", position: "relative" }),
604
- []
605
- ),
606
- onKeyDown: React.useCallback(
607
- (ev) => {
608
- var _a3;
609
- const state = config.stateSelector(responsiveTableStore.getState());
610
- if (willHandleKey(
611
- ev,
612
- config.stateSelector(responsiveTableStore.getState())
613
- )) {
614
- ev.preventDefault();
615
- ev.stopPropagation();
616
- }
617
- if (actions.swapFocusedRow && isDragging.current && allowKeyboardSorting) {
618
- if ((ev.key === "Enter" || ev.key === "Escape") && isDragging.current) {
619
- shoutKeyhandlerLive();
620
- isDragging.current = false;
621
- responsiveTableStore.dispatch(
622
- actions.swapFocusedRow({
623
- tableName: id,
624
- newIndex: state.focusedRow
625
- })
626
- );
627
- } else if (["ArrowDown", "ArrowUp"].includes(ev.key)) {
628
- if (ev.key === "ArrowDown") {
629
- responsiveTableStore.dispatch(
630
- actions.swapFocusedRow({
631
- tableName: id,
632
- newIndex: state.focusedRow + 1
633
- })
634
- );
635
- } else {
636
- responsiveTableStore.dispatch(
637
- actions.swapFocusedRow({
638
- tableName: id,
639
- newIndex: state.focusedRow - 1
640
- })
641
- );
642
- }
643
- }
644
- } else if (ev.key === "m" && ev.ctrlKey && !isDragging.current && state.focusedRow >= 0 && actions.swapFocusedRow) {
645
- isDragging.current = true;
646
- shoutKeyhandlerLive();
647
- responsiveTableStore.dispatch(
648
- actions.swapFocusedRow({
649
- tableName: id,
650
- newIndex: state.focusedRow
651
- })
652
- );
653
- } else {
654
- const currentSelectedRows = ((_a3 = state == null ? void 0 : state.selectedRows) != null ? _a3 : []).map((current) => ({
655
- index: current,
656
- row: state.rows[current]
657
- }));
658
- if (props.onKeyDown)
659
- props.onKeyDown(ev);
660
- if (ev.key === "Enter" && onSelectRows && state.focusedRow >= 0) {
661
- onSelectRows(currentSelectedRows, state.focusedRow);
662
- }
663
- keyHandler(ev);
664
- }
665
- },
666
- [allowKeyboardSorting, keyHandler, onSelectRows, props]
667
- ),
668
- children
669
- })
670
- );
671
- };
672
- }
673
-
674
- var __defProp$m = Object.defineProperty;
675
- var __defProps$j = Object.defineProperties;
676
- var __getOwnPropDescs$j = Object.getOwnPropertyDescriptors;
677
- var __getOwnPropSymbols$m = Object.getOwnPropertySymbols;
678
- var __hasOwnProp$m = Object.prototype.hasOwnProperty;
679
- var __propIsEnum$m = Object.prototype.propertyIsEnumerable;
680
- var __defNormalProp$m = (obj, key, value) => key in obj ? __defProp$m(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
681
- var __spreadValues$m = (a, b) => {
682
- for (var prop in b || (b = {}))
683
- if (__hasOwnProp$m.call(b, prop))
684
- __defNormalProp$m(a, prop, b[prop]);
685
- if (__getOwnPropSymbols$m)
686
- for (var prop of __getOwnPropSymbols$m(b)) {
687
- if (__propIsEnum$m.call(b, prop))
688
- __defNormalProp$m(a, prop, b[prop]);
689
- }
690
- return a;
691
- };
692
- var __spreadProps$j = (a, b) => __defProps$j(a, __getOwnPropDescs$j(b));
693
- var __objRest$b = (source, exclude) => {
694
- var target = {};
695
- for (var prop in source)
696
- if (__hasOwnProp$m.call(source, prop) && exclude.indexOf(prop) < 0)
697
- target[prop] = source[prop];
698
- if (source != null && __getOwnPropSymbols$m)
699
- for (var prop of __getOwnPropSymbols$m(source)) {
700
- if (exclude.indexOf(prop) < 0 && __propIsEnum$m.call(source, prop))
701
- target[prop] = source[prop];
702
- }
703
- return target;
704
- };
705
- function getReduxActions() {
706
- return {
707
- handleKey(state, { payload }) {
708
- handleKey(state[payload.id], payload);
709
- },
710
- selectionStateUpdate(state, _a) {
711
- var { payload: _b } = _a, _c = _b, { id } = _c, payload = __objRest$b(_c, ["id"]);
712
- state[id] = __spreadValues$m(__spreadValues$m({}, state[id]), payload);
713
- },
714
- setNewFocused(state, _d) {
715
- var { payload: _e } = _d, _f = _e, { id } = _f, payload = __objRest$b(_f, ["id"]);
716
- setNewFocused(state[id], payload);
717
- },
718
- updateByClick(state, _g) {
719
- var {
720
- payload: _h
721
- } = _g, _i = _h, {
722
- id,
723
- colIndex,
724
- rowIndex,
725
- ariaColIndex,
726
- ariaRowIndex,
727
- isFocused
728
- } = _i, payload = __objRest$b(_i, [
729
- "id",
730
- "colIndex",
731
- "rowIndex",
732
- "ariaColIndex",
733
- "ariaRowIndex",
734
- "isFocused"
735
- ]);
736
- var _a;
737
- const hasFiltersRow = state[id].hasNonAdditionalFilters;
738
- state[id].isEditionMode = false;
739
- const newFocusedColumn = (_a = colIndex != null ? colIndex : ariaColIndex) != null ? _a : 1;
740
- const newFocusedRow = ariaRowIndex !== void 0 ? ariaRowIndex : (rowIndex != null ? rowIndex : 0) - (1 + (hasFiltersRow ? 2 : 1));
741
- setNewFocused(state[id], __spreadProps$j(__spreadValues$m({}, payload), {
742
- newFocusedColumn,
743
- newFocusedRow
744
- }));
745
- if (isFocused !== void 0)
746
- state[id].isFocused = isFocused;
747
- }
748
- };
749
- }
750
-
751
- var __defProp$l = Object.defineProperty;
752
- var __defProps$i = Object.defineProperties;
753
- var __getOwnPropDescs$i = Object.getOwnPropertyDescriptors;
754
- var __getOwnPropSymbols$l = Object.getOwnPropertySymbols;
755
- var __hasOwnProp$l = Object.prototype.hasOwnProperty;
756
- var __propIsEnum$l = Object.prototype.propertyIsEnumerable;
757
- var __defNormalProp$l = (obj, key, value) => key in obj ? __defProp$l(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
758
- var __spreadValues$l = (a, b) => {
759
- for (var prop in b || (b = {}))
760
- if (__hasOwnProp$l.call(b, prop))
761
- __defNormalProp$l(a, prop, b[prop]);
762
- if (__getOwnPropSymbols$l)
763
- for (var prop of __getOwnPropSymbols$l(b)) {
764
- if (__propIsEnum$l.call(b, prop))
765
- __defNormalProp$l(a, prop, b[prop]);
766
- }
767
- return a;
768
- };
769
- var __spreadProps$i = (a, b) => __defProps$i(a, __getOwnPropDescs$i(b));
770
- var __objRest$a = (source, exclude) => {
771
- var target = {};
772
- for (var prop in source)
773
- if (__hasOwnProp$l.call(source, prop) && exclude.indexOf(prop) < 0)
774
- target[prop] = source[prop];
775
- if (source != null && __getOwnPropSymbols$l)
776
- for (var prop of __getOwnPropSymbols$l(source)) {
777
- if (exclude.indexOf(prop) < 0 && __propIsEnum$l.call(source, prop))
778
- target[prop] = source[prop];
779
- }
780
- return target;
781
- };
782
- function getInitialState() {
783
- const newState = __spreadProps$i(__spreadValues$l({}, getInitialState$1()), {
784
- allowSelection: true,
785
- allowSorting: true,
786
- filters: [],
787
- isLoading: false,
788
- isMultiple: true,
789
- accordionIndexColumns: {},
790
- expandedRows: []
791
- });
792
- return newState;
793
- }
794
- const responsiveTableSlice = createSlice({
795
- name: "responsiveTableSlice",
796
- initialState: {},
797
- reducers: __spreadValues$l({
798
- update(state, _a) {
799
- var {
800
- payload: _b
801
- } = _a, _c = _b, { tableName } = _c, rest = __objRest$a(_c, ["tableName"]);
802
- var _a2, _b2, _c2, _d, _e, _f;
803
- if (!state[tableName])
804
- state[tableName] = getInitialState();
805
- state[tableName] = __spreadValues$l(__spreadValues$l({}, state[tableName]), rest);
806
- setNewFocused(state[tableName], {
807
- altKey: false,
808
- ctrlKey: false,
809
- shiftKey: false,
810
- shouldSelectNewFocused: (_a2 = rest.isFocused) != null ? _a2 : state[tableName].isFocused
811
- });
812
- if (rest.columns) {
813
- state[tableName].nonAdditionalColumnsCount = rest.columns.filter(
814
- (current) => !current.showAsAdditional
815
- ).length;
816
- }
817
- if (rest.rows) {
818
- state[tableName].statesColumns = Math.max(
819
- (_c2 = (_b2 = state[tableName]) == null ? void 0 : _b2.reserveColumnsForStates) != null ? _c2 : 0,
820
- ...(_f = (_e = (_d = state[tableName]) == null ? void 0 : _d.rows) == null ? void 0 : _e.map(
821
- (current) => {
822
- var _a3, _b3;
823
- return (_b3 = (_a3 = current.states) == null ? void 0 : _a3.length) != null ? _b3 : 0;
824
- }
825
- )) != null ? _f : [0]
826
- );
827
- }
828
- if (rest.filters) {
829
- state[tableName].hasNonAdditionalFilters = rest.filters.filter(
830
- (current) => {
831
- var _a3, _b3;
832
- return !current.asAdditional && ((_b3 = (_a3 = rest.columns) != null ? _a3 : state[tableName].columns) == null ? void 0 : _b3.find(
833
- (search) => search.name === current.column
834
- ));
835
- }
836
- ).length > 0;
837
- }
838
- },
839
- addRows(state, { payload }) {
840
- if (!state[payload.tableName])
841
- state[payload.tableName] = getInitialState();
842
- state[payload.tableName].rows = state[payload.tableName].rows.concat(
843
- ...payload.newRows
844
- );
845
- setNewFocused(state[payload.tableName], {
846
- altKey: false,
847
- ctrlKey: false,
848
- shiftKey: false,
849
- shouldSelectNewFocused: true,
850
- newFocusedRow: state[payload.tableName].rows.length
851
- });
852
- },
853
- deleteRows(state, { payload }) {
854
- const table = state[payload.tableName];
855
- const minIndex = payload.rowIndices.reduce((min, current) => {
856
- return current < min ? current : min;
857
- }, Infinity);
858
- table.rows = table.rows.filter(
859
- (_, index) => !payload.rowIndices.includes(index)
860
- );
861
- setNewFocused(state[payload.tableName], {
862
- altKey: false,
863
- ctrlKey: false,
864
- shiftKey: false,
865
- shouldSelectNewFocused: true,
866
- newFocusedRow: minIndex
867
- });
868
- state[payload.tableName].isFocused = false;
869
- },
870
- destroy(state, { payload: { tableName } }) {
871
- delete state[tableName];
872
- },
873
- swapFocusedRow(state, {
874
- payload: { newIndex, tableName }
875
- }) {
876
- const tableState = state[tableName];
877
- const focusedIndex = tableState.focusedRow;
878
- if (focusedIndex === void 0 || newIndex < 0 || newIndex >= tableState.rows.length)
879
- return;
880
- if (focusedIndex === newIndex) {
881
- if (tableState.draggingRow === newIndex)
882
- tableState.draggingRow = void 0;
883
- else
884
- tableState.draggingRow = newIndex;
885
- return;
886
- }
887
- shoutKeyhandlerLive("whichIsTheNewIndex", { newIndex });
888
- const isSelected = tableState.selectedRows.includes(focusedIndex);
889
- if (isSelected) {
890
- tableState.selectedRows = [
891
- ...tableState.selectedRows.filter(
892
- (current) => current !== focusedIndex
893
- ),
894
- newIndex
895
- ];
896
- }
897
- const aux = tableState.rows[newIndex];
898
- tableState.rows[newIndex] = tableState.rows[focusedIndex];
899
- tableState.rows[focusedIndex] = aux;
900
- tableState.focusedRow = newIndex;
901
- tableState.draggingRow = newIndex;
902
- }
903
- }, getReduxActions())
904
- });
905
- const { store: responsiveTableStore, useSelector: useResponsiveTable } = injectReducers({
906
- responsiveTableSlice: responsiveTableSlice.reducer
907
- });
908
- const responsiveTableActions = responsiveTableSlice.actions;
909
-
910
- var __defProp$k = Object.defineProperty;
911
- var __defProps$h = Object.defineProperties;
912
- var __getOwnPropDescs$h = Object.getOwnPropertyDescriptors;
913
- var __getOwnPropSymbols$k = Object.getOwnPropertySymbols;
914
- var __hasOwnProp$k = Object.prototype.hasOwnProperty;
915
- var __propIsEnum$k = Object.prototype.propertyIsEnumerable;
916
- var __defNormalProp$k = (obj, key, value) => key in obj ? __defProp$k(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
917
- var __spreadValues$k = (a, b) => {
918
- for (var prop in b || (b = {}))
919
- if (__hasOwnProp$k.call(b, prop))
920
- __defNormalProp$k(a, prop, b[prop]);
921
- if (__getOwnPropSymbols$k)
922
- for (var prop of __getOwnPropSymbols$k(b)) {
923
- if (__propIsEnum$k.call(b, prop))
924
- __defNormalProp$k(a, prop, b[prop]);
925
- }
926
- return a;
927
- };
928
- var __spreadProps$h = (a, b) => __defProps$h(a, __getOwnPropDescs$h(b));
929
- const ResponsiveTableReactContext = React.createContext({});
930
- function useResponsiveTableContext() {
931
- const context = React.useContext(ResponsiveTableReactContext);
932
- if (!context)
933
- throw new Error("There is no ResponsiveTableContext");
934
- return context;
935
- }
936
- const NoMemoResponsiveTableContext = ({
937
- allowEdition,
938
- allowRowsKeyboardSorting,
939
- allowSelection,
940
- allowSorting,
941
- avoidReparseSelectionOnRowChange,
942
- children = /* @__PURE__ */ jsx(ResponsiveTable, {}),
943
- className,
944
- currentBreakPoint,
945
- customLabels,
946
- columns,
947
- filters,
948
- rows,
949
- label,
950
- isMultiple,
951
- name,
952
- onChangeSelection,
953
- onFilterBlur,
954
- onFilterChange,
955
- onFilterPressEnter,
956
- onSelectRows,
957
- onSortChange,
958
- reserveColumnsForStates,
959
- variant
960
- }) => {
961
- const actualName = React.useMemo(
962
- () => name != null ? name : uniqueId("responsiveTable"),
963
- [name]
964
- );
965
- const labels = React.useMemo(
966
- () => __spreadValues$k(__spreadValues$k({}, defaultLabels), customLabels),
967
- [customLabels]
968
- );
969
- const contextValue = React.useMemo(
970
- () => ({
971
- currentBreakPoint,
972
- label,
973
- labels,
974
- name: actualName,
975
- onChangeSelection,
976
- onFilterBlur,
977
- onFilterChange,
978
- onFilterPressEnter,
979
- onSelectRows,
980
- onSortChange
981
- }),
982
- [
983
- actualName,
984
- currentBreakPoint,
985
- label,
986
- labels,
987
- onChangeSelection,
988
- onFilterBlur,
989
- onFilterChange,
990
- onFilterPressEnter,
991
- onSelectRows,
992
- onSortChange
993
- ]
994
- );
995
- useMount(() => {
996
- responsiveTableStore.dispatch(
997
- responsiveTableActions.update({
998
- allowEdition,
999
- allowRowsKeyboardSorting,
1000
- allowSelection,
1001
- allowSorting,
1002
- columns,
1003
- filters: filters != null ? filters : [],
1004
- rows,
1005
- isMultiple,
1006
- tableName: actualName,
1007
- reserveColumnsForStates
1008
- })
1009
- );
1010
- });
1011
- useUpdateEffect$1(() => {
1012
- responsiveTableStore.dispatch(
1013
- responsiveTableActions.update({
1014
- tableName: actualName,
1015
- columns
1016
- })
1017
- );
1018
- }, [columns]);
1019
- useUpdateEffect$1(() => {
1020
- responsiveTableStore.dispatch(
1021
- responsiveTableActions.update({
1022
- tableName: actualName,
1023
- rows
1024
- })
1025
- );
1026
- if (avoidReparseSelectionOnRowChange !== true) {
1027
- const selected = rows.map((current, i) => __spreadProps$h(__spreadValues$k({}, current), { i })).filter((current) => current.initiallySelected);
1028
- responsiveTableStore.dispatch(
1029
- responsiveTableActions.update({
1030
- tableName: actualName,
1031
- selectedRows: selected.map((current) => current.i)
1032
- })
1033
- );
1034
- }
1035
- }, [rows]);
1036
- useUpdateEffect$1(() => {
1037
- responsiveTableStore.dispatch(
1038
- responsiveTableActions.update({
1039
- tableName: actualName,
1040
- filters
1041
- })
1042
- );
1043
- }, [filters]);
1044
- useUnmount(() => {
1045
- });
1046
- return /* @__PURE__ */ jsx(ResponsiveTableReactContext.Provider, { value: contextValue, children: /* @__PURE__ */ jsx(
1047
- Box,
1048
- __spreadProps$h(__spreadValues$k({
1049
- id: name,
1050
- className: `responsiveTableContext__wrapper ${className != null ? className : ""}`
1051
- }, variant ? getVariant(variant) : null), {
1052
- children
1053
- })
1054
- ) });
1055
- };
1056
- const ResponsiveTableContext = React.memo(NoMemoResponsiveTableContext);
1057
-
1058
- var __defProp$j = Object.defineProperty;
1059
- var __getOwnPropSymbols$j = Object.getOwnPropertySymbols;
1060
- var __hasOwnProp$j = Object.prototype.hasOwnProperty;
1061
- var __propIsEnum$j = Object.prototype.propertyIsEnumerable;
1062
- var __defNormalProp$j = (obj, key, value) => key in obj ? __defProp$j(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
1063
- var __spreadValues$j = (a, b) => {
1064
- for (var prop in b || (b = {}))
1065
- if (__hasOwnProp$j.call(b, prop))
1066
- __defNormalProp$j(a, prop, b[prop]);
1067
- if (__getOwnPropSymbols$j)
1068
- for (var prop of __getOwnPropSymbols$j(b)) {
1069
- if (__propIsEnum$j.call(b, prop))
1070
- __defNormalProp$j(a, prop, b[prop]);
1071
- }
1072
- return a;
1073
- };
1074
- const NoMemoKeyHandler = (props) => {
1075
- const { name, onChangeSelection, onSelectRows } = useResponsiveTableContext();
1076
- const Handler = React.useMemo(
1077
- () => makeKeyHandler(responsiveTableActions, name, {
1078
- throttleOptions: { wait: 50 },
1079
- stateSelector: (global) => global.responsiveTableSlice[name]
1080
- }),
1081
- [name]
1082
- );
1083
- return /* @__PURE__ */ jsx(
1084
- Handler,
1085
- __spreadValues$j({
1086
- onChangeSelection,
1087
- onSelectRows
1088
- }, props)
1089
- );
1090
- };
1091
- const KeyHandler = React.memo(NoMemoKeyHandler);
1092
-
1093
- function useDomProps(element, elementProps, stateSelector) {
1094
- const state = useResponsiveTable((globalState) => {
1095
- var _a, _b, _c, _d, _e, _f, _g;
1096
- const tableState = stateSelector(globalState);
1097
- const hasNonAdditionalFilters = tableState == null ? void 0 : tableState.hasNonAdditionalFilters;
1098
- const startDataRowIndex = hasNonAdditionalFilters ? 2 : 1;
1099
- const statesColumns = (_a = tableState == null ? void 0 : tableState.statesColumns) != null ? _a : 0;
1100
- let expandedBeforeThisRow = 0;
1101
- if (element === "tr")
1102
- expandedBeforeThisRow = tableState == null ? void 0 : tableState.expandedRows.filter(
1103
- (current) => current < elementProps.rowIndex
1104
- ).length;
1105
- let isFocused = false;
1106
- let isSelected = false;
1107
- switch (element) {
1108
- case "filterTd": {
1109
- const castedProps = elementProps;
1110
- isFocused = (tableState == null ? void 0 : tableState.focusedRow) === 1 - startDataRowIndex && addBoundary((_b = tableState == null ? void 0 : tableState.focusedColumn) != null ? _b : 0, 0) - statesColumns === castedProps.columnIndex + 1 + (hasNonAdditionalFilters ? 1 : 0);
1111
- break;
1112
- }
1113
- case "tr": {
1114
- const castedProps = elementProps;
1115
- isFocused = !tableState ? false : tableState.focusedRow === castedProps.rowIndex && (tableState == null ? void 0 : tableState.focusedColumn) === 0 || Math.floor(tableState == null ? void 0 : tableState.focusedRow) === castedProps.rowIndex && Math.round(tableState == null ? void 0 : tableState.focusedRow) - tableState.focusedRow !== 0 && !!castedProps.isTheExpandedRow;
1116
- isSelected = !castedProps.isTheExpandedRow && (tableState == null ? void 0 : tableState.selectedRows.includes(castedProps.rowIndex));
1117
- break;
1118
- }
1119
- case "stateCell": {
1120
- const castedProps = elementProps;
1121
- isFocused = (tableState == null ? void 0 : tableState.focusedRow) === castedProps.rowIndex && ((_c = tableState == null ? void 0 : tableState.focusedColumn) != null ? _c : 0) === castedProps.columnIndex + 1 + (hasNonAdditionalFilters ? 1 : 0);
1122
- break;
1123
- }
1124
- case "additionalTd": {
1125
- const castedProps = elementProps;
1126
- isFocused = (tableState == null ? void 0 : tableState.focusedRow) === castedProps.rowIndex && ((_d = tableState == null ? void 0 : tableState.focusedColumn) != null ? _d : 0) === 1;
1127
- break;
1128
- }
1129
- case "td": {
1130
- const castedProps = elementProps;
1131
- isFocused = (tableState == null ? void 0 : tableState.focusedRow) === castedProps.rowIndex && ((_e = tableState == null ? void 0 : tableState.focusedColumn) != null ? _e : 0) - statesColumns === castedProps.columnIndex + 1 + (hasNonAdditionalFilters ? 1 : 0);
1132
- break;
1133
- }
1134
- case "headerStateCell": {
1135
- const castedProps = elementProps;
1136
- isFocused = (tableState == null ? void 0 : tableState.focusedRow) === castedProps.rowIndex - 1 - startDataRowIndex && addBoundary(tableState == null ? void 0 : tableState.focusedColumn, 0) === castedProps.columnIndex + 1 + (hasNonAdditionalFilters ? 1 : 0);
1137
- break;
1138
- }
1139
- case "th": {
1140
- const castedProps = elementProps;
1141
- isFocused = (tableState == null ? void 0 : tableState.focusedRow) === 0 - startDataRowIndex && addBoundary(((_f = tableState == null ? void 0 : tableState.focusedColumn) != null ? _f : 0) - statesColumns, 0) === castedProps.columnIndex + 1 + (hasNonAdditionalFilters ? 1 : 0);
1142
- break;
1143
- }
1144
- case "separator": {
1145
- const castedProps = elementProps;
1146
- isFocused = !tableState ? false : tableState.focusedRow === castedProps.rowIndex;
1147
- break;
1148
- }
1149
- }
1150
- return {
1151
- columns: (_g = tableState == null ? void 0 : tableState.columns) != null ? _g : [],
1152
- expandedBeforeThisRow,
1153
- isEditionMode: tableState == null ? void 0 : tableState.isEditionMode,
1154
- hasNonAdditionalFilters,
1155
- rowsLength: element === "table" ? tableState == null ? void 0 : tableState.rows.length : "",
1156
- isSelected,
1157
- isFocused,
1158
- startDataRowIndex,
1159
- statesColumns: tableState == null ? void 0 : tableState.statesColumns
1160
- };
1161
- }, shallowEqual);
1162
- let returnObject = React.useMemo(() => ({}), []);
1163
- switch (element) {
1164
- case "filterTd": {
1165
- const castedProps = elementProps;
1166
- returnObject = {
1167
- "aria-colindex": castedProps.columnIndex + 1 + state.statesColumns + (state.hasNonAdditionalFilters ? 1 : 0),
1168
- "data-editionmode": state.isEditionMode && state.isFocused,
1169
- "data-focused": state.isFocused,
1170
- tabIndex: state.isFocused ? 0 : -1,
1171
- "data-rowindex": 2
1172
- };
1173
- break;
1174
- }
1175
- case "separator": {
1176
- const castedProps = elementProps;
1177
- returnObject = {
1178
- "aria-rowindex": castedProps.rowIndex + state.startDataRowIndex + 1 + state.expandedBeforeThisRow,
1179
- "data-focusindex": castedProps.rowIndex + state.startDataRowIndex + 1,
1180
- "aria-selected": state.isSelected,
1181
- "data-focused": state.isFocused,
1182
- "aria-expanded": false
1183
- };
1184
- break;
1185
- }
1186
- case "table": {
1187
- returnObject = {
1188
- role: "treegrid",
1189
- "aria-colcount": state.columns.length,
1190
- "aria-rowcount": state.rowsLength
1191
- };
1192
- break;
1193
- }
1194
- case "tr": {
1195
- const castedProps = elementProps;
1196
- returnObject = {
1197
- "aria-rowindex": castedProps.rowIndex + state.startDataRowIndex + 1 + state.expandedBeforeThisRow + (castedProps.isTheExpandedRow ? 1 : 0),
1198
- "data-focusindex": castedProps.rowIndex + state.startDataRowIndex + 1 + (castedProps.isTheExpandedRow ? 0.5 : 0),
1199
- "aria-selected": state.isSelected,
1200
- "data-focused": state.isFocused,
1201
- "aria-expanded": castedProps.isThisRowExpanded,
1202
- tabIndex: state.isFocused ? 0 : -1
1203
- };
1204
- break;
1205
- }
1206
- case "td": {
1207
- const castedProps = elementProps;
1208
- returnObject = {
1209
- "aria-colindex": castedProps.columnIndex + 1 + state.statesColumns + (state.hasNonAdditionalFilters ? 1 : 0),
1210
- "data-editionmode": state.isEditionMode && state.isFocused,
1211
- "data-focused": state.isFocused,
1212
- tabIndex: state.isFocused ? 0 : -1,
1213
- "data-rowindex": castedProps.rowIndex + state.startDataRowIndex + 1
1214
- };
1215
- break;
1216
- }
1217
- case "additionalTd": {
1218
- const castedProps = elementProps;
1219
- returnObject = {
1220
- "aria-colindex": 1,
1221
- "data-editionmode": state.isEditionMode && state.isFocused,
1222
- "data-focused": state.isFocused,
1223
- tabIndex: state.isFocused ? 0 : -1,
1224
- "data-rowindex": castedProps.rowIndex + state.startDataRowIndex + 1
1225
- };
1226
- break;
1227
- }
1228
- case "stateCell": {
1229
- const castedProps = elementProps;
1230
- returnObject = {
1231
- "aria-colindex": castedProps.columnIndex + 1 + (state.hasNonAdditionalFilters ? 1 : 0),
1232
- "data-editionmode": state.isEditionMode && state.isFocused,
1233
- "data-focused": state.isFocused,
1234
- tabIndex: state.isFocused ? 0 : -1,
1235
- "data-rowindex": castedProps.rowIndex + state.startDataRowIndex + 1
1236
- };
1237
- break;
1238
- }
1239
- case "headerStateCell": {
1240
- const castedProps = elementProps;
1241
- returnObject = {
1242
- "aria-colindex": castedProps.columnIndex + 1 + (state.hasNonAdditionalFilters ? 1 : 0),
1243
- "data-editionmode": state.isEditionMode && state.isFocused,
1244
- "data-focused": state.isFocused,
1245
- tabIndex: state.isFocused ? 0 : -1,
1246
- "data-rowindex": castedProps.rowIndex
1247
- };
1248
- break;
1249
- }
1250
- case "th": {
1251
- const castedProps = elementProps;
1252
- returnObject = {
1253
- "aria-colindex": castedProps.columnIndex + 1 + state.statesColumns + (state.hasNonAdditionalFilters ? 1 : 0),
1254
- "aria-sort": ["ascending", "descending", void 0][["Asc", "Desc", null].findIndex(
1255
- (current) => current === state.columns[castedProps.columnIndex].currentSorting
1256
- )],
1257
- "data-editionmode": state.isEditionMode && state.isFocused,
1258
- "data-focused": state.isFocused,
1259
- tabIndex: state.isFocused ? 0 : -1,
1260
- "data-rowindex": 1
1261
- };
1262
- break;
1263
- }
1264
- }
1265
- return React.useMemo(() => returnObject, Object.values(returnObject));
1266
- }
1267
-
1268
- var __defProp$i = Object.defineProperty;
1269
- var __defProps$g = Object.defineProperties;
1270
- var __getOwnPropDescs$g = Object.getOwnPropertyDescriptors;
1271
- var __getOwnPropSymbols$i = Object.getOwnPropertySymbols;
1272
- var __hasOwnProp$i = Object.prototype.hasOwnProperty;
1273
- var __propIsEnum$i = Object.prototype.propertyIsEnumerable;
1274
- var __defNormalProp$i = (obj, key, value) => key in obj ? __defProp$i(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
1275
- var __spreadValues$i = (a, b) => {
1276
- for (var prop in b || (b = {}))
1277
- if (__hasOwnProp$i.call(b, prop))
1278
- __defNormalProp$i(a, prop, b[prop]);
1279
- if (__getOwnPropSymbols$i)
1280
- for (var prop of __getOwnPropSymbols$i(b)) {
1281
- if (__propIsEnum$i.call(b, prop))
1282
- __defNormalProp$i(a, prop, b[prop]);
1283
- }
1284
- return a;
1285
- };
1286
- var __spreadProps$g = (a, b) => __defProps$g(a, __getOwnPropDescs$g(b));
1287
- const widthStorageName = "tablesWidths";
1288
- function getColumnWidth(width) {
1289
- if (typeof width === "string") {
1290
- if (width.match(/(%|px|vw|vh|vmin|vmax|cm|mm|in|pt|pc)/))
1291
- return width;
1292
- if (width === "")
1293
- return "auto";
1294
- const numberValue = Number.parseInt(width, 10);
1295
- if (isNaN(numberValue))
1296
- return "auto";
1297
- return numberValue;
1298
- }
1299
- if (typeof width === "number")
1300
- return width;
1301
- return width;
1302
- }
1303
- debugDispatcher.on(
1304
- "cleanTableSizes",
1305
- ([tableName]) => {
1306
- const currentWidths = persistentStorage[widthStorageName];
1307
- delete currentWidths[tableName];
1308
- persistentStorage[widthStorageName] = currentWidths;
1309
- },
1310
- 'Se usa para borrar el estado de una tabla. Uso: dd.cleanTableSizes("TableName")'
1311
- );
1312
- function makeColumnName(tableName, columnName) {
1313
- return `${tableName}${columnName}`;
1314
- }
1315
- const thWidthEmitter = new class ThWidthEmitter extends EventEmitter {
1316
- }();
1317
- const NoMemoHeaderCell = ({
1318
- apiaColumnIndex,
1319
- columnIndex,
1320
- inTableColumnIndex
1321
- }) => {
1322
- var _a, _b, _c, _d, _e, _f, _g, _h;
1323
- const { name, onSortChange } = useResponsiveTableContext();
1324
- const uniqueId = (_d = (_c = (_a = window.location.href.match(/busEntId=(\d+)/)) == null ? void 0 : _a[1]) != null ? _c : (_b = window.location.href.match(/query=(\d+)/)) == null ? void 0 : _b[1]) != null ? _d : "";
1325
- const isGlobal = window.isGlobal ? "isGlobal" : "notGlobal";
1326
- const actualName = name + uniqueId + String(isGlobal);
1327
- const column = useResponsiveTable((global) => {
1328
- const tableState = global.responsiveTableSlice[name];
1329
- return tableState == null ? void 0 : tableState.columns[columnIndex];
1330
- }, shallowEqual);
1331
- const storedWidth = (_f = (_e = persistentStorage[widthStorageName]) == null ? void 0 : _e[actualName]) == null ? void 0 : _f[column.name];
1332
- const [width, setWidth] = React.useState(storedWidth != null ? storedWidth : 200);
1333
- const [isResize, setIsResize] = React.useState(storedWidth !== void 0);
1334
- React.useEffect(() => {
1335
- return void thWidthEmitter.on("resize", (ev) => {
1336
- if (ev.name === makeColumnName(actualName, column.name)) {
1337
- setIsResize(true);
1338
- setWidth(ev.width);
1339
- }
1340
- });
1341
- }, [column.name, actualName]);
1342
- const isFilterRequired = useResponsiveTable((global) => {
1343
- const tableState = global.responsiveTableSlice[name];
1344
- const columnFilter = tableState == null ? void 0 : tableState.filters.find(
1345
- (current) => current.column === column.title
1346
- );
1347
- return columnFilter == null ? void 0 : columnFilter.required;
1348
- }, shallowEqual);
1349
- const isSortingAllowed = useResponsiveTable((global) => {
1350
- const tableState = global.responsiveTableSlice[name];
1351
- return tableState == null ? void 0 : tableState.allowSorting;
1352
- });
1353
- const domProps = useDomProps(
1354
- "th",
1355
- {
1356
- columnIndex: inTableColumnIndex
1357
- },
1358
- domPropsSelector(name)
1359
- );
1360
- const sx = React.useMemo(
1361
- () => {
1362
- var _a2;
1363
- return !isResize ? {
1364
- minWidth: getColumnWidth((_a2 = column.minWidth) != null ? _a2 : column.width),
1365
- maxWidth: column.maxWidth !== void 0 ? getColumnWidth(column.maxWidth) : void 0,
1366
- width: getColumnWidth(column.width),
1367
- position: "relative"
1368
- } : {
1369
- width: `${width}px`,
1370
- minWidth: `${width}px`,
1371
- position: "relative"
1372
- };
1373
- },
1374
- [column.maxWidth, column.minWidth, column.width, isResize, width]
1375
- );
1376
- const buttonProps = useOtherTagButton(
1377
- React.useMemo(
1378
- () => ({
1379
- className: "headButton",
1380
- onClick: (ev) => {
1381
- if (isChild(
1382
- ev.target,
1383
- (current) => current.classList.contains("headButton__resizer")
1384
- ))
1385
- return;
1386
- console.warn("Buttons slice is not defined");
1387
- if (onSortChange && column.allowSorting !== false && isSortingAllowed !== false)
1388
- onSortChange({
1389
- column,
1390
- columnIndex: apiaColumnIndex,
1391
- name: column.name,
1392
- sortValue: ["Asc", "Desc"][column.currentSorting !== "A" ? 0 : 1]
1393
- });
1394
- }
1395
- }),
1396
- [apiaColumnIndex, column, isSortingAllowed, onSortChange]
1397
- )
1398
- );
1399
- return /* @__PURE__ */ jsx(
1400
- Box,
1401
- __spreadProps$g(__spreadValues$i(__spreadValues$i({
1402
- as: "th",
1403
- style: sx,
1404
- "data-columnname": column.name,
1405
- title: (_h = (_g = column.title) != null ? _g : column.label) != null ? _h : column.name
1406
- }, buttonProps), domProps), {
1407
- role: "rowheader",
1408
- className: `${isFilterRequired && window.SHOW_REQUIRED_POSITION ? "requiredFilterColumn" : ""}`,
1409
- children: /* @__PURE__ */ jsxs(Box, { as: "span", className: "headButton__container", children: [
1410
- /* @__PURE__ */ jsx(
1411
- Box,
1412
- {
1413
- as: "span",
1414
- className: `${isFilterRequired ? "requiredFilter__Column" : ""} headButton__label`,
1415
- children: /* @__PURE__ */ jsx(
1416
- AutoEllipsis,
1417
- {
1418
- overrideStyles: (el) => {
1419
- const th = el.closest("th");
1420
- return {
1421
- width: `${Math.max(
1422
- 100,
1423
- Number.parseInt(window.getComputedStyle(th).width)
1424
- )}px`
1425
- };
1426
- },
1427
- children: column.label
1428
- }
1429
- )
1430
- }
1431
- ),
1432
- /* @__PURE__ */ jsxs(Box, { as: "span", className: "headButton__sortIcon", children: [
1433
- column.allowSorting !== false && column.currentSorting === "A" && /* @__PURE__ */ jsx(FaSortUp, {}),
1434
- column.allowSorting !== false && column.currentSorting === "D" && /* @__PURE__ */ jsx(FaSortDown, {}),
1435
- column.allowSorting !== false && !column.currentSorting && /* @__PURE__ */ jsx(FaSort, {})
1436
- ] }),
1437
- /* @__PURE__ */ jsx(
1438
- Box,
1439
- {
1440
- className: "headButton__resizer",
1441
- onMouseDown: (ev) => {
1442
- if (!isResize) {
1443
- const trElement = getSpecificParent(
1444
- ev.target,
1445
- (current) => current.tagName === "TR"
1446
- );
1447
- trElement == null ? void 0 : trElement.querySelectorAll("th").forEach((current) => {
1448
- thWidthEmitter.emit("resize", {
1449
- name: makeColumnName(
1450
- actualName,
1451
- current.dataset.columnname
1452
- ),
1453
- width: current.clientWidth
1454
- });
1455
- });
1456
- setIsResize(true);
1457
- }
1458
- const th = getSpecificParent(
1459
- ev.target,
1460
- (current) => current.tagName === "TH"
1461
- );
1462
- if (!th)
1463
- throw new Error("There is no th");
1464
- const initialX = ev.clientX;
1465
- const initialWidth = th.clientWidth;
1466
- const resize = (mousemoveEv) => {
1467
- const dif = mousemoveEv.clientX - initialX;
1468
- setWidth(initialWidth + dif);
1469
- };
1470
- const unsuscribe = () => {
1471
- const trElement = getSpecificParent(
1472
- ev.target,
1473
- (current) => current.tagName === "TR"
1474
- );
1475
- trElement == null ? void 0 : trElement.querySelectorAll("th").forEach((current) => {
1476
- var _a2;
1477
- persistentStorage[widthStorageName] = __spreadProps$g(__spreadValues$i({}, persistentStorage[widthStorageName]), {
1478
- [actualName]: __spreadProps$g(__spreadValues$i({}, (_a2 = persistentStorage[widthStorageName]) == null ? void 0 : _a2[actualName]), {
1479
- [current.dataset.columnname]: current.clientWidth
1480
- })
1481
- });
1482
- });
1483
- document.removeEventListener("mousemove", resize);
1484
- document.removeEventListener("mouseup", unsuscribe);
1485
- };
1486
- document.addEventListener("mousemove", resize);
1487
- document.addEventListener("mouseup", unsuscribe);
1488
- return false;
1489
- }
1490
- }
1491
- )
1492
- ] })
1493
- })
1494
- );
1495
- };
1496
- const HeaderCell = React.memo(NoMemoHeaderCell);
1497
-
1498
- var __defProp$h = Object.defineProperty;
1499
- var __defProps$f = Object.defineProperties;
1500
- var __getOwnPropDescs$f = Object.getOwnPropertyDescriptors;
1501
- var __getOwnPropSymbols$h = Object.getOwnPropertySymbols;
1502
- var __hasOwnProp$h = Object.prototype.hasOwnProperty;
1503
- var __propIsEnum$h = Object.prototype.propertyIsEnumerable;
1504
- var __defNormalProp$h = (obj, key, value) => key in obj ? __defProp$h(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
1505
- var __spreadValues$h = (a, b) => {
1506
- for (var prop in b || (b = {}))
1507
- if (__hasOwnProp$h.call(b, prop))
1508
- __defNormalProp$h(a, prop, b[prop]);
1509
- if (__getOwnPropSymbols$h)
1510
- for (var prop of __getOwnPropSymbols$h(b)) {
1511
- if (__propIsEnum$h.call(b, prop))
1512
- __defNormalProp$h(a, prop, b[prop]);
1513
- }
1514
- return a;
1515
- };
1516
- var __spreadProps$f = (a, b) => __defProps$f(a, __getOwnPropDescs$f(b));
1517
- const NoMemoRowStatesRenderer = ({
1518
- state
1519
- }) => {
1520
- var _a;
1521
- const { Icon } = state;
1522
- return /* @__PURE__ */ jsx(
1523
- Icon,
1524
- __spreadProps$f(__spreadValues$h({}, getVariant("inherit")), {
1525
- title: state.tooltip,
1526
- className: `${(_a = state.className) != null ? _a : "state"}_icon state_icon`,
1527
- sx: React.useMemo(
1528
- () => {
1529
- var _a2;
1530
- return {
1531
- "&, svg, path": {
1532
- color: (_a2 = state.color) != null ? _a2 : ""
1533
- }
1534
- };
1535
- },
1536
- [state.color]
1537
- )
1538
- })
1539
- );
1540
- };
1541
- const RowStatesRenderer = React.memo(NoMemoRowStatesRenderer);
1542
-
1543
- var __defProp$g = Object.defineProperty;
1544
- var __defProps$e = Object.defineProperties;
1545
- var __getOwnPropDescs$e = Object.getOwnPropertyDescriptors;
1546
- var __getOwnPropSymbols$g = Object.getOwnPropertySymbols;
1547
- var __hasOwnProp$g = Object.prototype.hasOwnProperty;
1548
- var __propIsEnum$g = Object.prototype.propertyIsEnumerable;
1549
- var __defNormalProp$g = (obj, key, value) => key in obj ? __defProp$g(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
1550
- var __spreadValues$g = (a, b) => {
1551
- for (var prop in b || (b = {}))
1552
- if (__hasOwnProp$g.call(b, prop))
1553
- __defNormalProp$g(a, prop, b[prop]);
1554
- if (__getOwnPropSymbols$g)
1555
- for (var prop of __getOwnPropSymbols$g(b)) {
1556
- if (__propIsEnum$g.call(b, prop))
1557
- __defNormalProp$g(a, prop, b[prop]);
1558
- }
1559
- return a;
1560
- };
1561
- var __spreadProps$e = (a, b) => __defProps$e(a, __getOwnPropDescs$e(b));
1562
- const StateCell = ({ index, rowIndex, state, isHeader }) => {
1563
- const { name } = useResponsiveTableContext();
1564
- const domProps = useDomProps(
1565
- isHeader ? "headerStateCell" : "stateCell",
1566
- { columnIndex: index, rowIndex },
1567
- domPropsSelector(name)
1568
- );
1569
- return /* @__PURE__ */ jsx(Box, __spreadProps$e(__spreadValues$g({ as: "td", className: "stateCell" }, domProps), { children: state ? /* @__PURE__ */ jsx(RowStatesRenderer, { state }) : "" }));
1570
- };
1571
-
1572
- var __defProp$f = Object.defineProperty;
1573
- var __defProps$d = Object.defineProperties;
1574
- var __getOwnPropDescs$d = Object.getOwnPropertyDescriptors;
1575
- var __getOwnPropSymbols$f = Object.getOwnPropertySymbols;
1576
- var __hasOwnProp$f = Object.prototype.hasOwnProperty;
1577
- var __propIsEnum$f = Object.prototype.propertyIsEnumerable;
1578
- var __defNormalProp$f = (obj, key, value) => key in obj ? __defProp$f(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
1579
- var __spreadValues$f = (a, b) => {
1580
- for (var prop in b || (b = {}))
1581
- if (__hasOwnProp$f.call(b, prop))
1582
- __defNormalProp$f(a, prop, b[prop]);
1583
- if (__getOwnPropSymbols$f)
1584
- for (var prop of __getOwnPropSymbols$f(b)) {
1585
- if (__propIsEnum$f.call(b, prop))
1586
- __defNormalProp$f(a, prop, b[prop]);
1587
- }
1588
- return a;
1589
- };
1590
- var __spreadProps$d = (a, b) => __defProps$d(a, __getOwnPropDescs$d(b));
1591
- const NoMemoRangeFilter = ({ filter }) => {
1592
- var _a, _b;
1593
- const { onFilterBlur, onFilterChange, onFilterPressEnter } = useResponsiveTableContext();
1594
- const filterLow = {
1595
- id: filter.id,
1596
- currentValue: filter.currentValue,
1597
- type: "number"
1598
- };
1599
- const filterHigh = {
1600
- id: (_a = filter.filterToId) != null ? _a : "",
1601
- currentValue: (_b = filter.filterToValue) != null ? _b : "",
1602
- type: "number"
1603
- };
1604
- return /* @__PURE__ */ jsxs(Box, { className: "ApiaFilter__Range", children: [
1605
- /* @__PURE__ */ jsx(Box, { className: "ApiaFilter__Range__Low", children: /* @__PURE__ */ jsx(
1606
- ApiaFilter,
1607
- {
1608
- filter: filterLow,
1609
- onChange: (currentValue) => {
1610
- if (onFilterChange)
1611
- void onFilterChange(__spreadProps$d(__spreadValues$f({}, filterLow), { currentValue }));
1612
- },
1613
- onBlur: (currentValue) => {
1614
- if (onFilterBlur)
1615
- void onFilterBlur(__spreadProps$d(__spreadValues$f({}, filterLow), { currentValue }));
1616
- },
1617
- onPressEnter: (currentValue) => {
1618
- if (onFilterPressEnter)
1619
- void onFilterPressEnter(__spreadProps$d(__spreadValues$f({}, filterLow), { currentValue }));
1620
- }
1621
- }
1622
- ) }),
1623
- " - ",
1624
- /* @__PURE__ */ jsx(Box, { className: "ApiaFilter__Range__High", children: /* @__PURE__ */ jsx(
1625
- ApiaFilter,
1626
- {
1627
- filter: filterHigh,
1628
- onChange: (currentValue) => {
1629
- if (onFilterChange)
1630
- void onFilterChange(__spreadProps$d(__spreadValues$f({}, filterHigh), { currentValue }));
1631
- },
1632
- onBlur: (currentValue) => {
1633
- if (onFilterBlur)
1634
- void onFilterBlur(__spreadProps$d(__spreadValues$f({}, filterHigh), { currentValue }));
1635
- },
1636
- onPressEnter: (currentValue) => {
1637
- if (onFilterPressEnter)
1638
- void onFilterPressEnter(__spreadProps$d(__spreadValues$f({}, filterHigh), { currentValue }));
1639
- }
1640
- }
1641
- ) })
1642
- ] });
1643
- };
1644
- const RangeFilter = NoMemoRangeFilter;
1645
-
1646
- var __defProp$e = Object.defineProperty;
1647
- var __defProps$c = Object.defineProperties;
1648
- var __getOwnPropDescs$c = Object.getOwnPropertyDescriptors;
1649
- var __getOwnPropSymbols$e = Object.getOwnPropertySymbols;
1650
- var __hasOwnProp$e = Object.prototype.hasOwnProperty;
1651
- var __propIsEnum$e = Object.prototype.propertyIsEnumerable;
1652
- var __defNormalProp$e = (obj, key, value) => key in obj ? __defProp$e(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
1653
- var __spreadValues$e = (a, b) => {
1654
- for (var prop in b || (b = {}))
1655
- if (__hasOwnProp$e.call(b, prop))
1656
- __defNormalProp$e(a, prop, b[prop]);
1657
- if (__getOwnPropSymbols$e)
1658
- for (var prop of __getOwnPropSymbols$e(b)) {
1659
- if (__propIsEnum$e.call(b, prop))
1660
- __defNormalProp$e(a, prop, b[prop]);
1661
- }
1662
- return a;
1663
- };
1664
- var __spreadProps$c = (a, b) => __defProps$c(a, __getOwnPropDescs$c(b));
1665
- const FilterCell = ({ columnIndex, filter }) => {
1666
- const { name, onFilterBlur, onFilterChange, onFilterPressEnter } = useResponsiveTableContext();
1667
- const domProps = useDomProps(
1668
- "filterTd",
1669
- {
1670
- columnIndex
1671
- },
1672
- domPropsSelector(name)
1673
- );
1674
- const handleOnBlur = React.useCallback(
1675
- (currentValue) => {
1676
- if (filter && onFilterBlur)
1677
- onFilterBlur(__spreadProps$c(__spreadValues$e({}, filter), { currentValue }));
1678
- },
1679
- [filter, onFilterBlur]
1680
- );
1681
- const handleOnChange = React.useCallback(
1682
- (currentValue) => {
1683
- if (filter && onFilterChange)
1684
- return onFilterChange(__spreadProps$c(__spreadValues$e({}, filter), { currentValue }));
1685
- return true;
1686
- },
1687
- [filter, onFilterChange]
1688
- );
1689
- const handleOnPressEnter = React.useCallback(
1690
- (currentValue) => {
1691
- if (filter && onFilterPressEnter)
1692
- onFilterPressEnter(__spreadProps$c(__spreadValues$e({}, filter), { currentValue }));
1693
- },
1694
- [filter, onFilterPressEnter]
1695
- );
1696
- function findFilter() {
1697
- if (filter == null ? void 0 : filter.isRange) {
1698
- return /* @__PURE__ */ jsx(RangeFilter, { filter });
1699
- }
1700
- if (filter && !(filter.asAdditional || !filter.column || filter.isRange)) {
1701
- return /* @__PURE__ */ jsx(
1702
- ApiaFilter,
1703
- {
1704
- onBlur: handleOnBlur,
1705
- onChange: handleOnChange,
1706
- onPressEnter: handleOnPressEnter,
1707
- filter
1708
- }
1709
- );
1710
- }
1711
- let label;
1712
- if (filter && (filter.asAdditional || !filter.column || filter.isRange)) {
1713
- label = window.LBL_ADDITIONAL_FILTER;
1714
- } else {
1715
- label = window.LBL_NO_COLUMN_FILTER;
1716
- }
1717
- return /* @__PURE__ */ jsx(Input, { "aria-label": label, disabled: true });
1718
- }
1719
- return /* @__PURE__ */ jsx("td", __spreadProps$c(__spreadValues$e({}, domProps), { children: findFilter() }));
1720
- };
1721
-
1722
- var __defProp$d = Object.defineProperty;
1723
- var __defProps$b = Object.defineProperties;
1724
- var __getOwnPropDescs$b = Object.getOwnPropertyDescriptors;
1725
- var __getOwnPropSymbols$d = Object.getOwnPropertySymbols;
1726
- var __hasOwnProp$d = Object.prototype.hasOwnProperty;
1727
- var __propIsEnum$d = Object.prototype.propertyIsEnumerable;
1728
- var __defNormalProp$d = (obj, key, value) => key in obj ? __defProp$d(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
1729
- var __spreadValues$d = (a, b) => {
1730
- for (var prop in b || (b = {}))
1731
- if (__hasOwnProp$d.call(b, prop))
1732
- __defNormalProp$d(a, prop, b[prop]);
1733
- if (__getOwnPropSymbols$d)
1734
- for (var prop of __getOwnPropSymbols$d(b)) {
1735
- if (__propIsEnum$d.call(b, prop))
1736
- __defNormalProp$d(a, prop, b[prop]);
1737
- }
1738
- return a;
1739
- };
1740
- var __spreadProps$b = (a, b) => __defProps$b(a, __getOwnPropDescs$b(b));
1741
- const NoMemoHeader = () => {
1742
- const { name } = useResponsiveTableContext();
1743
- const { columns, hasNonAdditionalFilters, focusedColumn, focusedRow } = useResponsiveTable((global) => {
1744
- var _a;
1745
- const tableState = global.responsiveTableSlice[name];
1746
- window.focusedRow = tableState == null ? void 0 : tableState.focusedRow;
1747
- window.focusedColumn = tableState == null ? void 0 : tableState.focusedColumn;
1748
- window.hasNonAdditionalFilters = (tableState == null ? void 0 : tableState.hasNonAdditionalFilters) || false;
1749
- return {
1750
- columns: (_a = tableState == null ? void 0 : tableState.columns) != null ? _a : [],
1751
- focusedColumn: tableState == null ? void 0 : tableState.focusedColumn,
1752
- focusedRow: tableState == null ? void 0 : tableState.focusedRow,
1753
- hasNonAdditionalFilters: tableState == null ? void 0 : tableState.hasNonAdditionalFilters
1754
- };
1755
- }, shallowEqual$1);
1756
- const filters = useResponsiveTable(
1757
- (global) => {
1758
- var _a;
1759
- const tableState = global.responsiveTableSlice[name];
1760
- const returnObject = ((_a = tableState == null ? void 0 : tableState.filters) != null ? _a : []).map((current) => ({
1761
- columnIndex: tableState.columns.findIndex(
1762
- (search) => search.name === current.column
1763
- ),
1764
- definition: current
1765
- })).filter((current) => current.columnIndex >= 0);
1766
- return returnObject;
1767
- },
1768
- (a, b) => {
1769
- return a.length === b.length && a.reduce((result, current, index) => {
1770
- return result && shallowEqual$1(current.definition, b[index].definition);
1771
- }, true);
1772
- }
1773
- );
1774
- const statesCount = useResponsiveTable((globalState) => {
1775
- var _a;
1776
- const state = globalState.responsiveTableSlice[name];
1777
- return (_a = state == null ? void 0 : state.statesColumns) != null ? _a : 0;
1778
- }, shallowEqual$1);
1779
- const additionalColumns = React.useMemo(
1780
- () => columns.reduce(
1781
- (count, column) => count + (column.showAsAdditional ? 1 : 0),
1782
- 0
1783
- ),
1784
- [columns]
1785
- );
1786
- const statesIds = React.useMemo(() => {
1787
- return Array(statesCount).fill("").map(() => uniqueId());
1788
- }, [statesCount]);
1789
- const [isFiltersRowVisible, setIsFiltersRowVisible] = React.useState(
1790
- /* (persistentStorage.showResponsiveTableFilters as boolean) ?? */
1791
- false
1792
- );
1793
- React.useEffect(() => {
1794
- persistentStorage.showResponsiveTableFilters = isFiltersRowVisible;
1795
- }, [isFiltersRowVisible]);
1796
- const buttonProps = useOtherTagButton(
1797
- React.useMemo(
1798
- () => ({
1799
- className: "additionalColumn",
1800
- onClick: () => setIsFiltersRowVisible((current) => !current)
1801
- }),
1802
- []
1803
- )
1804
- );
1805
- const [ref, setRef] = useState(null);
1806
- useUpdateEffect$1(() => {
1807
- const handleFocus = (ev) => {
1808
- ev.stopPropagation();
1809
- setIsFiltersRowVisible(true);
1810
- };
1811
- ref == null ? void 0 : ref.addEventListener(customEvents.focus, handleFocus);
1812
- return () => {
1813
- ref == null ? void 0 : ref.removeEventListener(customEvents.focus, handleFocus);
1814
- };
1815
- }, [ref]);
1816
- return /* @__PURE__ */ jsxs("thead", { children: [
1817
- /* @__PURE__ */ jsxs("tr", { "data-focusindex": 1, children: [
1818
- (additionalColumns > 0 || hasNonAdditionalFilters) && /* @__PURE__ */ jsx(
1819
- "th",
1820
- __spreadProps$b(__spreadValues$d({
1821
- "aria-colindex": 1,
1822
- "aria-rowindex": 1,
1823
- "data-focused": focusedColumn === 1 && focusedRow === -1 - (hasNonAdditionalFilters ? 1 : 0)
1824
- }, buttonProps), {
1825
- tabIndex: focusedColumn === 1 && focusedRow === -1 - (hasNonAdditionalFilters ? 1 : 0) ? 0 : -1,
1826
- "aria-label": isFiltersRowVisible ? getLabel("lblHideFilters").text : getLabel("lblShowFilters").text,
1827
- role: "rowheader",
1828
- children: hasNonAdditionalFilters ? /* @__PURE__ */ jsx(
1829
- Icon,
1830
- {
1831
- className: "filterButton",
1832
- name: "Filter",
1833
- title: isFiltersRowVisible ? getLabel("lblHideFilters").text : getLabel("lblShowFilters").text,
1834
- "aria-label": isFiltersRowVisible ? getLabel("lblHideFilters").text : getLabel("lblShowFilters").text
1835
- }
1836
- ) : /* @__PURE__ */ jsxs(Fragment, { children: [
1837
- /* @__PURE__ */ jsx("span", { style: { display: "none" }, children: isFiltersRowVisible ? getLabel("lblHideFilters").text : getLabel("lblShowFilters").text }),
1838
- /* @__PURE__ */ jsx("span", { children: "\xA0" })
1839
- ] })
1840
- })
1841
- ),
1842
- statesIds.map((id, i) => /* @__PURE__ */ jsx(StateCell, { isHeader: true, index: i, rowIndex: 1 }, id)),
1843
- columns.map((current, actualColumnIndex) => __spreadProps$b(__spreadValues$d({}, current), {
1844
- actualTableColumnIndex: actualColumnIndex
1845
- })).filter((current) => !current.showAsAdditional).map((current, columnIndex) => {
1846
- if (current.hidden)
1847
- return null;
1848
- return /* @__PURE__ */ jsx(
1849
- HeaderCell,
1850
- {
1851
- apiaColumnIndex: current.actualTableColumnIndex,
1852
- columnIndex: current.actualTableColumnIndex,
1853
- inTableColumnIndex: columnIndex
1854
- },
1855
- current.name
1856
- );
1857
- })
1858
- ] }),
1859
- filters.length > 0 && /* @__PURE__ */ jsxs(
1860
- "tr",
1861
- {
1862
- ref: setRef,
1863
- "data-focusindex": 2,
1864
- className: `responsiveTable__filters__row ${isFiltersRowVisible ? "" : "hidden"}`,
1865
- children: [
1866
- (additionalColumns > 0 || hasNonAdditionalFilters) && /* @__PURE__ */ jsx(
1867
- "td",
1868
- {
1869
- className: "noFilter",
1870
- "aria-colindex": 1,
1871
- "aria-rowindex": 2,
1872
- tabIndex: focusedColumn === 1 && focusedRow === -1 ? 0 : -1,
1873
- "data-focused": focusedColumn === 1 && focusedRow === -1,
1874
- children: "\xA0"
1875
- }
1876
- ),
1877
- statesIds.map((id, i) => /* @__PURE__ */ jsx(StateCell, { isHeader: true, index: i, rowIndex: 2 }, id)),
1878
- columns.filter((current) => !current.showAsAdditional).map((current, columnIndex) => {
1879
- const filter = filters.find(
1880
- (search) => search.definition.column === current.name
1881
- );
1882
- return current.showAsAdditional ? null : /* @__PURE__ */ jsx(
1883
- FilterCell,
1884
- {
1885
- columnIndex,
1886
- filter: filter == null ? void 0 : filter.definition
1887
- },
1888
- current.name
1889
- );
1890
- })
1891
- ]
1892
- }
1893
- )
1894
- ] });
1895
- };
1896
- const Header = React.memo(NoMemoHeader);
1897
-
1898
- const NoMemoAdditionalColumnDefaultRenderer = ({
1899
- column,
1900
- cell
1901
- }) => {
1902
- var _a;
1903
- return /* @__PURE__ */ jsxs(
1904
- Box,
1905
- {
1906
- className: `${(_a = cell.className) != null ? _a : ""} responsiveTable__additionalInfoItem`,
1907
- id: cell.id,
1908
- title: cell.title,
1909
- children: [
1910
- /* @__PURE__ */ jsxs(Box, { as: "strong", children: [
1911
- column.name,
1912
- ":"
1913
- ] }),
1914
- " ",
1915
- cell.children
1916
- ]
1917
- }
1918
- );
1919
- };
1920
- const AdditionalColumnDefaultRenderer = React.memo(
1921
- NoMemoAdditionalColumnDefaultRenderer
1922
- );
1923
-
1924
- var __defProp$c = Object.defineProperty;
1925
- var __getOwnPropSymbols$c = Object.getOwnPropertySymbols;
1926
- var __hasOwnProp$c = Object.prototype.hasOwnProperty;
1927
- var __propIsEnum$c = Object.prototype.propertyIsEnumerable;
1928
- var __defNormalProp$c = (obj, key, value) => key in obj ? __defProp$c(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
1929
- var __spreadValues$c = (a, b) => {
1930
- for (var prop in b || (b = {}))
1931
- if (__hasOwnProp$c.call(b, prop))
1932
- __defNormalProp$c(a, prop, b[prop]);
1933
- if (__getOwnPropSymbols$c)
1934
- for (var prop of __getOwnPropSymbols$c(b)) {
1935
- if (__propIsEnum$c.call(b, prop))
1936
- __defNormalProp$c(a, prop, b[prop]);
1937
- }
1938
- return a;
1939
- };
1940
- const SeparatorCell = ({
1941
- colSpan,
1942
- rowIndex
1943
- }) => {
1944
- const { name } = useResponsiveTableContext();
1945
- const domProps = useDomProps(
1946
- "separator",
1947
- { rowIndex },
1948
- domPropsSelector(name)
1949
- );
1950
- return /* @__PURE__ */ jsx("td", __spreadValues$c({ className: "row__separator__cell", colSpan }, domProps));
1951
- };
1952
-
1953
- var __defProp$b = Object.defineProperty;
1954
- var __getOwnPropSymbols$b = Object.getOwnPropertySymbols;
1955
- var __hasOwnProp$b = Object.prototype.hasOwnProperty;
1956
- var __propIsEnum$b = Object.prototype.propertyIsEnumerable;
1957
- var __defNormalProp$b = (obj, key, value) => key in obj ? __defProp$b(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
1958
- var __spreadValues$b = (a, b) => {
1959
- for (var prop in b || (b = {}))
1960
- if (__hasOwnProp$b.call(b, prop))
1961
- __defNormalProp$b(a, prop, b[prop]);
1962
- if (__getOwnPropSymbols$b)
1963
- for (var prop of __getOwnPropSymbols$b(b)) {
1964
- if (__propIsEnum$b.call(b, prop))
1965
- __defNormalProp$b(a, prop, b[prop]);
1966
- }
1967
- return a;
1968
- };
1969
- var __objRest$9 = (source, exclude) => {
1970
- var target = {};
1971
- for (var prop in source)
1972
- if (__hasOwnProp$b.call(source, prop) && exclude.indexOf(prop) < 0)
1973
- target[prop] = source[prop];
1974
- if (source != null && __getOwnPropSymbols$b)
1975
- for (var prop of __getOwnPropSymbols$b(source)) {
1976
- if (exclude.indexOf(prop) < 0 && __propIsEnum$b.call(source, prop))
1977
- target[prop] = source[prop];
1978
- }
1979
- return target;
1980
- };
1981
- const NoMemoDefaultRowRenderer = React.forwardRef((_a, currentRef) => {
1982
- var _b = _a, { row, rowIndex } = _b, props = __objRest$9(_b, ["row", "rowIndex"]);
1983
- return /* @__PURE__ */ jsx(
1984
- Box,
1985
- __spreadValues$b({
1986
- as: "tr",
1987
- sx: useMemo(
1988
- () => ({
1989
- "&.colored, & > *": {
1990
- color: row.color,
1991
- background: row.background
1992
- }
1993
- }),
1994
- [row.background, row.color]
1995
- ),
1996
- ref: currentRef
1997
- }, props)
1998
- );
1999
- });
2000
- NoMemoDefaultRowRenderer.displayName = "DefaultRowRenderer";
2001
- const DefaultRowRenderer = NoMemoDefaultRowRenderer;
2002
-
2003
- var __defProp$a = Object.defineProperty;
2004
- var __defProps$a = Object.defineProperties;
2005
- var __getOwnPropDescs$a = Object.getOwnPropertyDescriptors;
2006
- var __getOwnPropSymbols$a = Object.getOwnPropertySymbols;
2007
- var __hasOwnProp$a = Object.prototype.hasOwnProperty;
2008
- var __propIsEnum$a = Object.prototype.propertyIsEnumerable;
2009
- var __defNormalProp$a = (obj, key, value) => key in obj ? __defProp$a(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
2010
- var __spreadValues$a = (a, b) => {
2011
- for (var prop in b || (b = {}))
2012
- if (__hasOwnProp$a.call(b, prop))
2013
- __defNormalProp$a(a, prop, b[prop]);
2014
- if (__getOwnPropSymbols$a)
2015
- for (var prop of __getOwnPropSymbols$a(b)) {
2016
- if (__propIsEnum$a.call(b, prop))
2017
- __defNormalProp$a(a, prop, b[prop]);
2018
- }
2019
- return a;
2020
- };
2021
- var __spreadProps$a = (a, b) => __defProps$a(a, __getOwnPropDescs$a(b));
2022
- var __objRest$8 = (source, exclude) => {
2023
- var target = {};
2024
- for (var prop in source)
2025
- if (__hasOwnProp$a.call(source, prop) && exclude.indexOf(prop) < 0)
2026
- target[prop] = source[prop];
2027
- if (source != null && __getOwnPropSymbols$a)
2028
- for (var prop of __getOwnPropSymbols$a(source)) {
2029
- if (exclude.indexOf(prop) < 0 && __propIsEnum$a.call(source, prop))
2030
- target[prop] = source[prop];
2031
- }
2032
- return target;
2033
- };
2034
- const NoMemoDefaultCellRenderer = React.forwardRef(
2035
- (_a, currentRef) => {
2036
- var _b = _a, {
2037
- cell: _c
2038
- } = _b, _d = _c, { Renderer, rendererProps, AccordionRenderer, ariaLabel } = _d, cell = __objRest$8(_d, ["Renderer", "rendererProps", "AccordionRenderer", "ariaLabel"]), _e = _b, props = __objRest$8(_e, [
2039
- "cell",
2040
- "column",
2041
- "row"
2042
- ]);
2043
- var _a2;
2044
- return /* @__PURE__ */ jsx(
2045
- Box,
2046
- __spreadProps$a(__spreadValues$a(__spreadValues$a({
2047
- as: "td",
2048
- sx: useMemo(
2049
- () => ({
2050
- "&.colored": {
2051
- background: cell.background,
2052
- color: cell.color,
2053
- fontWeight: "bold"
2054
- }
2055
- }),
2056
- [cell.background, cell.color]
2057
- ),
2058
- ref: currentRef
2059
- }, props), cell), {
2060
- "aria-label": ariaLabel,
2061
- children: /* @__PURE__ */ jsx(
2062
- AutoEllipsis,
2063
- {
2064
- overrideStyles: (el) => {
2065
- const td = el.closest("td");
2066
- return {
2067
- width: window.getComputedStyle(td).width
2068
- };
2069
- },
2070
- children: (_a2 = props.children) != null ? _a2 : cell.children
2071
- }
2072
- )
2073
- })
2074
- );
2075
- }
2076
- );
2077
- NoMemoDefaultCellRenderer.displayName = "DefaultCellRenderer";
2078
- const DefaultCellRenderer = NoMemoDefaultCellRenderer;
2079
-
2080
- var __defProp$9 = Object.defineProperty;
2081
- var __defProps$9 = Object.defineProperties;
2082
- var __getOwnPropDescs$9 = Object.getOwnPropertyDescriptors;
2083
- var __getOwnPropSymbols$9 = Object.getOwnPropertySymbols;
2084
- var __hasOwnProp$9 = Object.prototype.hasOwnProperty;
2085
- var __propIsEnum$9 = Object.prototype.propertyIsEnumerable;
2086
- var __defNormalProp$9 = (obj, key, value) => key in obj ? __defProp$9(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
2087
- var __spreadValues$9 = (a, b) => {
2088
- for (var prop in b || (b = {}))
2089
- if (__hasOwnProp$9.call(b, prop))
2090
- __defNormalProp$9(a, prop, b[prop]);
2091
- if (__getOwnPropSymbols$9)
2092
- for (var prop of __getOwnPropSymbols$9(b)) {
2093
- if (__propIsEnum$9.call(b, prop))
2094
- __defNormalProp$9(a, prop, b[prop]);
2095
- }
2096
- return a;
2097
- };
2098
- var __spreadProps$9 = (a, b) => __defProps$9(a, __getOwnPropDescs$9(b));
2099
- const NoMemoCell = ({
2100
- columnIndex,
2101
- inTableColumnIndex,
2102
- rowIndex
2103
- }) => {
2104
- const { name } = useResponsiveTableContext();
2105
- const domProps = useDomProps(
2106
- "td",
2107
- { columnIndex: inTableColumnIndex, rowIndex },
2108
- domPropsSelector(name)
2109
- );
2110
- const cell = useResponsiveTable((global) => {
2111
- var _a;
2112
- const tableState = global.responsiveTableSlice[name];
2113
- return (_a = tableState == null ? void 0 : tableState.rows[rowIndex]) == null ? void 0 : _a.cells[columnIndex];
2114
- }, shallowEqual);
2115
- const column = useResponsiveTable((global) => {
2116
- const tableState = global.responsiveTableSlice[name];
2117
- return tableState == null ? void 0 : tableState.columns[columnIndex];
2118
- }, shallowEqual);
2119
- const row = useResponsiveTable((global) => {
2120
- const tableState = global.responsiveTableSlice[name];
2121
- return tableState == null ? void 0 : tableState.rows[rowIndex];
2122
- }, shallowEqual);
2123
- const Renderer = React.useMemo(
2124
- () => {
2125
- var _a, _b;
2126
- return (_b = (_a = cell == null ? void 0 : cell.Renderer) != null ? _a : column.Renderer) != null ? _b : DefaultCellRenderer;
2127
- },
2128
- [cell == null ? void 0 : cell.Renderer, column.Renderer]
2129
- );
2130
- if (!Renderer || !cell)
2131
- return row.separator ? /* @__PURE__ */ jsx("div", { className: "separator" }) : null;
2132
- return /* @__PURE__ */ jsx(
2133
- Renderer,
2134
- __spreadProps$9(__spreadValues$9({}, domProps), {
2135
- cell,
2136
- column,
2137
- row
2138
- })
2139
- );
2140
- };
2141
- const Cell = React.memo(NoMemoCell);
2142
-
2143
- var __defProp$8 = Object.defineProperty;
2144
- var __defProps$8 = Object.defineProperties;
2145
- var __getOwnPropDescs$8 = Object.getOwnPropertyDescriptors;
2146
- var __getOwnPropSymbols$8 = Object.getOwnPropertySymbols;
2147
- var __hasOwnProp$8 = Object.prototype.hasOwnProperty;
2148
- var __propIsEnum$8 = Object.prototype.propertyIsEnumerable;
2149
- var __defNormalProp$8 = (obj, key, value) => key in obj ? __defProp$8(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
2150
- var __spreadValues$8 = (a, b) => {
2151
- for (var prop in b || (b = {}))
2152
- if (__hasOwnProp$8.call(b, prop))
2153
- __defNormalProp$8(a, prop, b[prop]);
2154
- if (__getOwnPropSymbols$8)
2155
- for (var prop of __getOwnPropSymbols$8(b)) {
2156
- if (__propIsEnum$8.call(b, prop))
2157
- __defNormalProp$8(a, prop, b[prop]);
2158
- }
2159
- return a;
2160
- };
2161
- var __spreadProps$8 = (a, b) => __defProps$8(a, __getOwnPropDescs$8(b));
2162
- var __objRest$7 = (source, exclude) => {
2163
- var target = {};
2164
- for (var prop in source)
2165
- if (__hasOwnProp$8.call(source, prop) && exclude.indexOf(prop) < 0)
2166
- target[prop] = source[prop];
2167
- if (source != null && __getOwnPropSymbols$8)
2168
- for (var prop of __getOwnPropSymbols$8(source)) {
2169
- if (exclude.indexOf(prop) < 0 && __propIsEnum$8.call(source, prop))
2170
- target[prop] = source[prop];
2171
- }
2172
- return target;
2173
- };
2174
- const NoMemoRow = ({ rowIndex }) => {
2175
- var _b;
2176
- const { name } = useResponsiveTableContext();
2177
- const { columns, hasNonAdditionalFilters } = useResponsiveTable((global) => {
2178
- var _a2;
2179
- const tableState = global.responsiveTableSlice[name];
2180
- return {
2181
- columns: (_a2 = tableState == null ? void 0 : tableState.columns) != null ? _a2 : [],
2182
- hasNonAdditionalFilters: tableState == null ? void 0 : tableState.hasNonAdditionalFilters
2183
- };
2184
- }, shallowEqual);
2185
- const row = useResponsiveTable(
2186
- (global) => global.responsiveTableSlice[name].rows[rowIndex],
2187
- shallowEqual
2188
- );
2189
- const additionalCells = useResponsiveTable(
2190
- (global) => {
2191
- const tableState = global.responsiveTableSlice[name];
2192
- return tableState.columns.map(
2193
- (current, index) => current.showAsAdditional ? {
2194
- index,
2195
- column: current
2196
- } : null
2197
- ).filter(
2198
- (current) => !!current
2199
- ).map((current) => {
2200
- var _a2;
2201
- return {
2202
- cell: (_a2 = tableState.rows[rowIndex]) == null ? void 0 : _a2.cells[current.index],
2203
- column: current.column,
2204
- columnIndex: current.index
2205
- };
2206
- });
2207
- },
2208
- (currentValue, newValue) => {
2209
- return currentValue.reduce(
2210
- (accumulatedBoolean, currentCell, cellIndex) => {
2211
- return accumulatedBoolean && shallowEqual(currentCell, newValue[cellIndex]);
2212
- },
2213
- true
2214
- );
2215
- }
2216
- );
2217
- const { isDragging, isExpanded, shouldForbidSelection } = useResponsiveTable(
2218
- (global) => {
2219
- var _a2;
2220
- const tableState = global.responsiveTableSlice[name];
2221
- return {
2222
- isExpanded: tableState.expandedRows.includes(rowIndex),
2223
- isDragging: tableState.draggingRow === rowIndex,
2224
- shouldForbidSelection: (_a2 = tableState.rows[rowIndex]) == null ? void 0 : _a2.forbidSelection
2225
- };
2226
- },
2227
- shallowEqual
2228
- );
2229
- const domProps = useDomProps(
2230
- "tr",
2231
- {
2232
- isThisRowExpanded: isExpanded,
2233
- rowIndex
2234
- },
2235
- domPropsSelector(name)
2236
- );
2237
- const expandedRowDomProps = useDomProps(
2238
- "tr",
2239
- {
2240
- isTheExpandedRow: true,
2241
- rowIndex
2242
- },
2243
- domPropsSelector(name)
2244
- );
2245
- const handleExpandedState = React.useCallback(
2246
- (ev) => {
2247
- const willBeExpanded = typeof ev === "boolean" ? ev : !isExpanded;
2248
- if (!willBeExpanded)
2249
- responsiveTableStore.dispatch(
2250
- responsiveTableActions.update({
2251
- tableName: name,
2252
- expandedRows: responsiveTableStore.getState().responsiveTableSlice[name].expandedRows.filter(
2253
- (current) => current !== rowIndex
2254
- )
2255
- })
2256
- );
2257
- else
2258
- responsiveTableStore.dispatch(
2259
- responsiveTableActions.update({
2260
- tableName: name,
2261
- expandedRows: [
2262
- ...responsiveTableStore.getState().responsiveTableSlice[name].expandedRows,
2263
- rowIndex
2264
- ]
2265
- })
2266
- );
2267
- },
2268
- [isExpanded, name, rowIndex]
2269
- );
2270
- const statesCount = useResponsiveTable((globalState) => {
2271
- var _a2;
2272
- const state = globalState.responsiveTableSlice[name];
2273
- return (_a2 = state == null ? void 0 : state.statesColumns) != null ? _a2 : 0;
2274
- }, shallowEqual);
2275
- const states = React.useMemo(
2276
- () => {
2277
- var _a2;
2278
- return ((_a2 = row.states) != null ? _a2 : []).map((current) => __spreadProps$8(__spreadValues$8({}, current), { id: uniqueId() }));
2279
- },
2280
- [row.states]
2281
- );
2282
- const _a = useDomProps(
2283
- "additionalTd",
2284
- { rowIndex },
2285
- domPropsSelector(name)
2286
- ), additionalCellDomProps = __objRest$7(_a, ["ref"]);
2287
- const Renderer = React.useMemo(
2288
- () => {
2289
- var _a2;
2290
- return (_a2 = row.renderer) != null ? _a2 : DefaultRowRenderer;
2291
- },
2292
- [row.renderer]
2293
- );
2294
- return /* @__PURE__ */ jsxs(Fragment, { children: [
2295
- /* @__PURE__ */ jsx(
2296
- Renderer,
2297
- __spreadProps$8(__spreadValues$8({}, domProps), {
2298
- row,
2299
- rowIndex,
2300
- className: `responsiveTable__row ${row.isHidden ? "hidden" : ""} ${domProps["aria-selected"] ? "selected" : ""} ${shouldForbidSelection ? "non-selectable" : ""} ${states.map((current) => current.className).join(" ")} ${(_b = row.className) != null ? _b : ""} ${row.separator ? "row__separator" : ""} ${isDragging ? "draggingRow" : ""}`,
2301
- onKeyDown: React.useCallback(
2302
- (ev) => {
2303
- if (ev.key.toLowerCase() === "arrowleft" && ev.ctrlKey) {
2304
- ev.preventDefault();
2305
- ev.stopPropagation();
2306
- handleExpandedState(false);
2307
- }
2308
- if (ev.key.toLowerCase() === "arrowright" && ev.ctrlKey) {
2309
- ev.preventDefault();
2310
- ev.stopPropagation();
2311
- handleExpandedState(true);
2312
- }
2313
- },
2314
- [handleExpandedState]
2315
- ),
2316
- children: row.separator ? /* @__PURE__ */ jsx(
2317
- SeparatorCell,
2318
- {
2319
- colSpan: (additionalCells.length > 0 || hasNonAdditionalFilters ? 1 : 0) + statesCount + columns.filter((current) => !current.showAsAdditional).length,
2320
- rowIndex
2321
- }
2322
- ) : /* @__PURE__ */ jsxs(Fragment, { children: [
2323
- (additionalCells.length > 0 || hasNonAdditionalFilters) && /* @__PURE__ */ jsx("td", __spreadProps$8(__spreadValues$8({ className: "additionalInfo__cell" }, additionalCellDomProps), { children: additionalCells.length > 0 && /* @__PURE__ */ jsx(
2324
- IconButton,
2325
- __spreadProps$8(__spreadValues$8({
2326
- size: "Lg"
2327
- }, getVariant("icon-outline")), {
2328
- icon: isExpanded ? MdKeyboardArrowDown : MdKeyboardArrowRight,
2329
- "aria-label": isExpanded ? getLabel("lblCollapseRow").text : getLabel("lblExpandRow").text,
2330
- className: "moreInformationButton",
2331
- onClick: handleExpandedState
2332
- })
2333
- ) })),
2334
- Array(statesCount).fill("").map((_, i) => {
2335
- var _a2, _b2;
2336
- return /* @__PURE__ */ jsx(
2337
- StateCell,
2338
- {
2339
- index: i,
2340
- state: states[i],
2341
- rowIndex
2342
- },
2343
- (_b2 = (_a2 = states[i]) == null ? void 0 : _a2.id) != null ? _b2 : i
2344
- );
2345
- }),
2346
- columns.map((current, actualColumnIndex) => __spreadProps$8(__spreadValues$8({}, current), {
2347
- actualColumnIndex
2348
- })).filter((current) => !current.showAsAdditional).map((current, inTableColumnIndex) => {
2349
- if (current.hidden)
2350
- return null;
2351
- return /* @__PURE__ */ jsx(
2352
- Cell,
2353
- {
2354
- columnIndex: current.actualColumnIndex,
2355
- rowIndex,
2356
- inTableColumnIndex
2357
- },
2358
- current.name
2359
- );
2360
- })
2361
- ] })
2362
- })
2363
- ),
2364
- isExpanded && /* @__PURE__ */ jsx("tr", __spreadProps$8(__spreadValues$8({ className: "expandedRow" }, expandedRowDomProps), { children: /* @__PURE__ */ jsx(
2365
- "td",
2366
- {
2367
- colSpan: columns.length - additionalCells.length + states.length + 1,
2368
- children: /* @__PURE__ */ jsx(Box, { className: "responsiveTable__additionalInfoContainer", children: additionalCells.map((current) => {
2369
- const { Renderer: ColumnRenderer } = current.column;
2370
- if (ColumnRenderer)
2371
- return /* @__PURE__ */ jsx(
2372
- ColumnRenderer,
2373
- {
2374
- cell: current.cell,
2375
- column: current.column,
2376
- row
2377
- },
2378
- current.column.name
2379
- );
2380
- return /* @__PURE__ */ jsx(
2381
- AdditionalColumnDefaultRenderer,
2382
- {
2383
- cell: current.cell,
2384
- column: current.column,
2385
- row
2386
- },
2387
- current.column.name
2388
- );
2389
- }) })
2390
- }
2391
- ) }))
2392
- ] });
2393
- };
2394
- const Row = React.memo(NoMemoRow);
2395
-
2396
- const NoRegistersRenderer = () => {
2397
- const { labels } = useResponsiveTableContext();
2398
- return /* @__PURE__ */ jsx(Box, { className: "no__registers", children: labels.noRegisters });
2399
- };
2400
-
2401
- var __defProp$7 = Object.defineProperty;
2402
- var __defProps$7 = Object.defineProperties;
2403
- var __getOwnPropDescs$7 = Object.getOwnPropertyDescriptors;
2404
- var __getOwnPropSymbols$7 = Object.getOwnPropertySymbols;
2405
- var __hasOwnProp$7 = Object.prototype.hasOwnProperty;
2406
- var __propIsEnum$7 = Object.prototype.propertyIsEnumerable;
2407
- var __defNormalProp$7 = (obj, key, value) => key in obj ? __defProp$7(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
2408
- var __spreadValues$7 = (a, b) => {
2409
- for (var prop in b || (b = {}))
2410
- if (__hasOwnProp$7.call(b, prop))
2411
- __defNormalProp$7(a, prop, b[prop]);
2412
- if (__getOwnPropSymbols$7)
2413
- for (var prop of __getOwnPropSymbols$7(b)) {
2414
- if (__propIsEnum$7.call(b, prop))
2415
- __defNormalProp$7(a, prop, b[prop]);
2416
- }
2417
- return a;
2418
- };
2419
- var __spreadProps$7 = (a, b) => __defProps$7(a, __getOwnPropDescs$7(b));
2420
- const NoMemoTableRenderer = () => {
2421
- const { name, label } = useResponsiveTableContext();
2422
- const domProps = useDomProps(
2423
- "table",
2424
- {},
2425
- (global) => global.responsiveTableSlice[name]
2426
- );
2427
- const rows = useResponsiveTable((global) => {
2428
- var _a;
2429
- const tableState = global.responsiveTableSlice[name];
2430
- return ((_a = tableState == null ? void 0 : tableState.rows) != null ? _a : []).map((current) => current.id);
2431
- }, shallowEqual);
2432
- const { columnsCount, rowsCount } = useResponsiveTable((global) => {
2433
- var _a, _b, _c;
2434
- const tableState = global.responsiveTableSlice[name];
2435
- return {
2436
- rowsCount: (_a = tableState == null ? void 0 : tableState.rows.length) != null ? _a : 0,
2437
- columnsCount: ((_b = tableState == null ? void 0 : tableState.nonAdditionalColumnsCount) != null ? _b : 0) + ((tableState == null ? void 0 : tableState.hasNonAdditionalFilters) ? 1 : 0) + ((_c = tableState == null ? void 0 : tableState.statesColumns) != null ? _c : 0) + ((tableState == null ? void 0 : tableState.columns.find((current) => current.showAsAdditional)) ? 1 : 0)
2438
- };
2439
- }, shallowEqual);
2440
- return /* @__PURE__ */ jsxs(
2441
- Box,
2442
- __spreadProps$7(__spreadValues$7(__spreadProps$7(__spreadValues$7({}, domProps), {
2443
- as: "table",
2444
- className: "responsiveTable__table"
2445
- }), getVariant("layout.common.tables.primary")), {
2446
- "aria-label": label,
2447
- children: [
2448
- /* @__PURE__ */ jsx(Header, {}),
2449
- /* @__PURE__ */ jsx("tbody", { children: rowsCount > 0 ? rows.map((row, index) => {
2450
- return /* @__PURE__ */ jsx(Row, { rowIndex: index }, row != null ? row : `${row}-${index}`);
2451
- }) : /* @__PURE__ */ jsx("tr", { children: /* @__PURE__ */ jsx("td", { colSpan: columnsCount, children: /* @__PURE__ */ jsx(NoRegistersRenderer, {}) }) }) })
2452
- ]
2453
- })
2454
- );
2455
- };
2456
- const TableRenderer = React.memo(NoMemoTableRenderer);
2457
-
2458
- const NoMemoAccordionCell = ({ cell, column }) => {
2459
- var _a, _b;
2460
- return /* @__PURE__ */ jsxs(
2461
- Box,
2462
- {
2463
- className: `responsiveTable__accordionElement__column ${(_a = cell.className) != null ? _a : ""}`,
2464
- children: [
2465
- /* @__PURE__ */ jsxs(Box, { as: "strong", children: [
2466
- (_b = column.label) != null ? _b : column.name,
2467
- ": "
2468
- ] }),
2469
- /* @__PURE__ */ jsx(Box, { as: "span", sx: { color: cell.color, background: cell.background }, children: cell == null ? void 0 : cell.children })
2470
- ]
2471
- },
2472
- column.name
2473
- );
2474
- };
2475
- const AccordionCell = NoMemoAccordionCell;
2476
-
2477
- const NoMemoAccordionElement = ({ row, rowIndex }) => {
2478
- var _a, _b;
2479
- const { name } = useResponsiveTableContext();
2480
- const indexColumns = useResponsiveTable((global) => {
2481
- const tableState = global.responsiveTableSlice[name];
2482
- return tableState == null ? void 0 : tableState.accordionIndexColumns;
2483
- }, shallowEqual);
2484
- const columns = useResponsiveTable((global) => {
2485
- const tableState = global.responsiveTableSlice[name];
2486
- return tableState == null ? void 0 : tableState.columns;
2487
- }, shallowEqual);
2488
- const title = React.useMemo(() => {
2489
- var _a2;
2490
- if (row.title)
2491
- return row.title;
2492
- if (Array.isArray(indexColumns))
2493
- return indexColumns.map(
2494
- (current) => (
2495
- // eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing
2496
- row.cells[current.index].title || row.cells[current.index].children
2497
- )
2498
- ).join(" | ");
2499
- return (_a2 = row.cells[0].title) != null ? _a2 : row.cells[0].children;
2500
- }, [indexColumns, row.cells, row.title]);
2501
- const isSelected = useResponsiveTable(
2502
- (global) => global.responsiveTableSlice[name].allowSelection !== false ? global.responsiveTableSlice[name].selectedRows.includes(rowIndex) : void 0
2503
- );
2504
- const isFocused = useResponsiveTable(
2505
- (global) => global.responsiveTableSlice[name].focusedRow === rowIndex
2506
- );
2507
- const buttonProps = useMemo(
2508
- () => {
2509
- var _a2, _b2;
2510
- return {
2511
- title,
2512
- ariaLabel: title,
2513
- label: title,
2514
- checked: isSelected,
2515
- onChange: (isChecked) => {
2516
- const isMultiple = responsiveTableStore.getState().responsiveTableSlice[name].isMultiple;
2517
- responsiveTableStore.dispatch(
2518
- responsiveTableActions.update({
2519
- tableName: name,
2520
- selectedRows: isMultiple ? isChecked ? [
2521
- ...responsiveTableStore.getState().responsiveTableSlice[name].selectedRows,
2522
- rowIndex
2523
- ] : responsiveTableStore.getState().responsiveTableSlice[name].selectedRows.filter(
2524
- (current) => current !== rowIndex
2525
- ) : [rowIndex]
2526
- })
2527
- );
2528
- },
2529
- tabIndex: isFocused ? 0 : -1,
2530
- rightButtons: (_a2 = row.accordionButtonProps) == null ? void 0 : _a2.rightButtons,
2531
- onUserPressEnter: (_b2 = row.accordionButtonProps) == null ? void 0 : _b2.onUserPressEnter,
2532
- domButtonProps: {
2533
- buttonSx: {
2534
- "&.accordion__item__button .accordion__item__button__label": {
2535
- color: row.color
2536
- }
2537
- }
2538
- }
2539
- };
2540
- },
2541
- [
2542
- isFocused,
2543
- isSelected,
2544
- name,
2545
- (_a = row.accordionButtonProps) == null ? void 0 : _a.onUserPressEnter,
2546
- (_b = row.accordionButtonProps) == null ? void 0 : _b.rightButtons,
2547
- row.color,
2548
- rowIndex,
2549
- title
2550
- ]
2551
- );
2552
- if (!Array.isArray(indexColumns) || !columns)
2553
- return null;
2554
- return /* @__PURE__ */ jsxs(AccordionItem, { id: row.id, buttonProps, children: [
2555
- columns.map((currentColumn, columnIndex) => {
2556
- var _a2, _b2;
2557
- const Renderer = (_b2 = (_a2 = row.cells[columnIndex].AccordionRenderer) != null ? _a2 : currentColumn.AccordionRenderer) != null ? _b2 : AccordionCell;
2558
- return currentColumn.hideFromAccordion || currentColumn.showAsAdditional ? null : /* @__PURE__ */ jsx(
2559
- Renderer,
2560
- {
2561
- cell: row.cells[columnIndex],
2562
- column: currentColumn,
2563
- columnIndex,
2564
- row,
2565
- rowIndex
2566
- },
2567
- currentColumn.name
2568
- );
2569
- }),
2570
- columns.filter((current) => !!current.showAsAdditional).map((currentColumn, columnIndex) => {
2571
- var _a2, _b2;
2572
- const Renderer = (_b2 = (_a2 = row.cells[columnIndex].AccordionRenderer) != null ? _a2 : currentColumn.AccordionRenderer) != null ? _b2 : AccordionCell;
2573
- return currentColumn.hideFromAccordion ? null : /* @__PURE__ */ jsx(
2574
- Renderer,
2575
- {
2576
- cell: row.cells[columnIndex],
2577
- column: currentColumn,
2578
- columnIndex,
2579
- row,
2580
- rowIndex
2581
- },
2582
- currentColumn.name
2583
- );
2584
- })
2585
- ] });
2586
- };
2587
- const AccordionElement = memo(NoMemoAccordionElement);
2588
-
2589
- const NoMemoAccordionRenderer = () => {
2590
- const { name } = useResponsiveTableContext();
2591
- const { columns, rows } = useResponsiveTable((global) => {
2592
- const tableState = global.responsiveTableSlice[name];
2593
- return {
2594
- columns: tableState == null ? void 0 : tableState.columns,
2595
- rows: tableState == null ? void 0 : tableState.rows
2596
- };
2597
- }, shallowEqual);
2598
- React.useEffect(() => {
2599
- if (columns && rows) {
2600
- const markedAsTitleColumns = [];
2601
- columns.forEach((column, index) => {
2602
- if (column.showInAccordionTitle)
2603
- markedAsTitleColumns.push({ column, index });
2604
- });
2605
- if (markedAsTitleColumns.length > 0) {
2606
- responsiveTableStore.dispatch(
2607
- responsiveTableActions.update({
2608
- tableName: name,
2609
- accordionIndexColumns: markedAsTitleColumns
2610
- })
2611
- );
2612
- } else {
2613
- const columnsLength = columns.length;
2614
- let indexColumn = null;
2615
- let currentIndex = 0;
2616
- while (!indexColumn && currentIndex < columns.length) {
2617
- let isAnyEmptyRow = false;
2618
- for (const row of rows) {
2619
- if (!row.cells[currentIndex].children) {
2620
- isAnyEmptyRow = true;
2621
- break;
2622
- }
2623
- }
2624
- if (!isAnyEmptyRow && columns[currentIndex]) {
2625
- indexColumn = columns[currentIndex];
2626
- } else {
2627
- currentIndex += 1;
2628
- if (currentIndex === columnsLength)
2629
- break;
2630
- }
2631
- }
2632
- if (!indexColumn) {
2633
- [indexColumn] = columns;
2634
- currentIndex = 0;
2635
- }
2636
- responsiveTableStore.dispatch(
2637
- responsiveTableActions.update({
2638
- tableName: name,
2639
- accordionIndexColumns: [
2640
- { column: indexColumn, index: currentIndex }
2641
- ]
2642
- })
2643
- );
2644
- }
2645
- }
2646
- }, [columns, name, rows]);
2647
- return /* @__PURE__ */ jsxs(Accordion, { children: [
2648
- !rows || rows.length === 0 && /* @__PURE__ */ jsx(NoRegistersRenderer, {}),
2649
- rows == null ? void 0 : rows.map((current, rowIndex) => /* @__PURE__ */ jsx(AccordionElement, { row: current, rowIndex }, current.id))
2650
- ] });
2651
- };
2652
- const AccordionRenderer = React.memo(NoMemoAccordionRenderer);
2653
-
2654
- var __defProp$6 = Object.defineProperty;
2655
- var __defProps$6 = Object.defineProperties;
2656
- var __getOwnPropDescs$6 = Object.getOwnPropertyDescriptors;
2657
- var __getOwnPropSymbols$6 = Object.getOwnPropertySymbols;
2658
- var __hasOwnProp$6 = Object.prototype.hasOwnProperty;
2659
- var __propIsEnum$6 = Object.prototype.propertyIsEnumerable;
2660
- var __defNormalProp$6 = (obj, key, value) => key in obj ? __defProp$6(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
2661
- var __spreadValues$6 = (a, b) => {
2662
- for (var prop in b || (b = {}))
2663
- if (__hasOwnProp$6.call(b, prop))
2664
- __defNormalProp$6(a, prop, b[prop]);
2665
- if (__getOwnPropSymbols$6)
2666
- for (var prop of __getOwnPropSymbols$6(b)) {
2667
- if (__propIsEnum$6.call(b, prop))
2668
- __defNormalProp$6(a, prop, b[prop]);
2669
- }
2670
- return a;
2671
- };
2672
- var __spreadProps$6 = (a, b) => __defProps$6(a, __getOwnPropDescs$6(b));
2673
- var __objRest$6 = (source, exclude) => {
2674
- var target = {};
2675
- for (var prop in source)
2676
- if (__hasOwnProp$6.call(source, prop) && exclude.indexOf(prop) < 0)
2677
- target[prop] = source[prop];
2678
- if (source != null && __getOwnPropSymbols$6)
2679
- for (var prop of __getOwnPropSymbols$6(source)) {
2680
- if (exclude.indexOf(prop) < 0 && __propIsEnum$6.call(source, prop))
2681
- target[prop] = source[prop];
2682
- }
2683
- return target;
2684
- };
2685
- const domPropsSelector = (name) => (global) => global.responsiveTableSlice[name];
2686
- const NoMemoResponsiveTable = React.forwardRef((_a, ref) => {
2687
- var _b = _a, { className } = _b, props = __objRest$6(_b, ["className"]);
2688
- const breakpoint = useBreakpointIndex({ defaultIndex: 3 });
2689
- const { currentBreakPoint } = useResponsiveTableContext();
2690
- const actualBreakpoint = currentBreakPoint != null ? currentBreakPoint : breakpoint;
2691
- return /* @__PURE__ */ jsx(
2692
- Box,
2693
- __spreadProps$6(__spreadValues$6(__spreadValues$6({}, props), getVariant("layout.common.tables.responsive")), {
2694
- className: `responsiveTable__wrapper ${className != null ? className : ""}`,
2695
- ref,
2696
- children: actualBreakpoint >= 3 ? /* @__PURE__ */ jsx(KeyHandler, { children: /* @__PURE__ */ jsx(TableRenderer, {}) }) : /* @__PURE__ */ jsx(AccordionRenderer, {})
2697
- })
2698
- );
2699
- });
2700
- NoMemoResponsiveTable.displayName = "ResponsiveTable";
2701
- const ResponsiveTable = React.memo(NoMemoResponsiveTable);
2702
-
2703
- var __defProp$5 = Object.defineProperty;
2704
- var __defProps$5 = Object.defineProperties;
2705
- var __getOwnPropDescs$5 = Object.getOwnPropertyDescriptors;
2706
- var __getOwnPropSymbols$5 = Object.getOwnPropertySymbols;
2707
- var __hasOwnProp$5 = Object.prototype.hasOwnProperty;
2708
- var __propIsEnum$5 = Object.prototype.propertyIsEnumerable;
2709
- var __defNormalProp$5 = (obj, key, value) => key in obj ? __defProp$5(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
2710
- var __spreadValues$5 = (a, b) => {
2711
- for (var prop in b || (b = {}))
2712
- if (__hasOwnProp$5.call(b, prop))
2713
- __defNormalProp$5(a, prop, b[prop]);
2714
- if (__getOwnPropSymbols$5)
2715
- for (var prop of __getOwnPropSymbols$5(b)) {
2716
- if (__propIsEnum$5.call(b, prop))
2717
- __defNormalProp$5(a, prop, b[prop]);
2718
- }
2719
- return a;
2720
- };
2721
- var __spreadProps$5 = (a, b) => __defProps$5(a, __getOwnPropDescs$5(b));
2722
- var __objRest$5 = (source, exclude) => {
2723
- var target = {};
2724
- for (var prop in source)
2725
- if (__hasOwnProp$5.call(source, prop) && exclude.indexOf(prop) < 0)
2726
- target[prop] = source[prop];
2727
- if (source != null && __getOwnPropSymbols$5)
2728
- for (var prop of __getOwnPropSymbols$5(source)) {
2729
- if (exclude.indexOf(prop) < 0 && __propIsEnum$5.call(source, prop))
2730
- target[prop] = source[prop];
2731
- }
2732
- return target;
2733
- };
2734
- const NoMemoDocNameCellRenderer = React.forwardRef(
2735
- (_a, currentRef) => {
2736
- var _b = _a, {
2737
- cell: _c
2738
- } = _b, _d = _c, { children, Renderer, rendererProps, AccordionRenderer } = _d, cell = __objRest$5(_d, ["children", "Renderer", "rendererProps", "AccordionRenderer"]), _e = _b, props = __objRest$5(_e, [
2739
- "cell",
2740
- "column",
2741
- "row"
2742
- ]);
2743
- return /* @__PURE__ */ jsx(
2744
- "td",
2745
- __spreadProps$5(__spreadValues$5(__spreadValues$5({
2746
- ref: currentRef
2747
- }, props), cell), {
2748
- children: /* @__PURE__ */ jsxs(
2749
- Link,
2750
- {
2751
- className: "cell__download__document",
2752
- title: rendererProps == null ? void 0 : rendererProps.docName,
2753
- href: rendererProps == null ? void 0 : rendererProps.docUrl,
2754
- onClick: (ev) => {
2755
- ev.preventDefault();
2756
- if (rendererProps == null ? void 0 : rendererProps.docUrl)
2757
- void downloadUrl(rendererProps == null ? void 0 : rendererProps.docUrl);
2758
- },
2759
- children: [
2760
- /* @__PURE__ */ jsx(Icon, { title: "", name: "Download" }),
2761
- rendererProps == null ? void 0 : rendererProps.docName
2762
- ]
2763
- }
2764
- )
2765
- })
2766
- );
2767
- }
2768
- );
2769
- NoMemoDocNameCellRenderer.displayName = "DocNameCellRenderer";
2770
- const DocNameCellRenderer = NoMemoDocNameCellRenderer;
2771
-
2772
- var __defProp$4 = Object.defineProperty;
2773
- var __defProps$4 = Object.defineProperties;
2774
- var __getOwnPropDescs$4 = Object.getOwnPropertyDescriptors;
2775
- var __getOwnPropSymbols$4 = Object.getOwnPropertySymbols;
2776
- var __hasOwnProp$4 = Object.prototype.hasOwnProperty;
2777
- var __propIsEnum$4 = Object.prototype.propertyIsEnumerable;
2778
- var __defNormalProp$4 = (obj, key, value) => key in obj ? __defProp$4(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
2779
- var __spreadValues$4 = (a, b) => {
2780
- for (var prop in b || (b = {}))
2781
- if (__hasOwnProp$4.call(b, prop))
2782
- __defNormalProp$4(a, prop, b[prop]);
2783
- if (__getOwnPropSymbols$4)
2784
- for (var prop of __getOwnPropSymbols$4(b)) {
2785
- if (__propIsEnum$4.call(b, prop))
2786
- __defNormalProp$4(a, prop, b[prop]);
2787
- }
2788
- return a;
2789
- };
2790
- var __spreadProps$4 = (a, b) => __defProps$4(a, __getOwnPropDescs$4(b));
2791
- var __objRest$4 = (source, exclude) => {
2792
- var target = {};
2793
- for (var prop in source)
2794
- if (__hasOwnProp$4.call(source, prop) && exclude.indexOf(prop) < 0)
2795
- target[prop] = source[prop];
2796
- if (source != null && __getOwnPropSymbols$4)
2797
- for (var prop of __getOwnPropSymbols$4(source)) {
2798
- if (exclude.indexOf(prop) < 0 && __propIsEnum$4.call(source, prop))
2799
- target[prop] = source[prop];
2800
- }
2801
- return target;
2802
- };
2803
- const NoMemoAccordionDocNameCellRenderer = React.forwardRef(
2804
- (_a, currentRef) => {
2805
- var _b = _a, {
2806
- cell: _c
2807
- } = _b, _d = _c, { children, Renderer, rendererProps, AccordionRenderer } = _d, cell = __objRest$4(_d, ["children", "Renderer", "rendererProps", "AccordionRenderer"]), {
2808
- column
2809
- } = _b;
2810
- var _a2;
2811
- return /* @__PURE__ */ jsxs(Box, __spreadProps$4(__spreadValues$4({ ref: currentRef }, cell), { children: [
2812
- /* @__PURE__ */ jsxs(Box, { as: "strong", children: [
2813
- (_a2 = column.label) != null ? _a2 : column.name,
2814
- ": "
2815
- ] }),
2816
- /* @__PURE__ */ jsxs(
2817
- Link,
2818
- {
2819
- className: "cell__download__document",
2820
- title: rendererProps == null ? void 0 : rendererProps.docName,
2821
- href: rendererProps == null ? void 0 : rendererProps.docUrl,
2822
- onClick: (ev) => {
2823
- ev.preventDefault();
2824
- if (rendererProps == null ? void 0 : rendererProps.docUrl)
2825
- void downloadUrl(rendererProps == null ? void 0 : rendererProps.docUrl);
2826
- },
2827
- children: [
2828
- /* @__PURE__ */ jsx(Icon, { title: "", name: "Download" }),
2829
- rendererProps == null ? void 0 : rendererProps.docName
2830
- ]
2831
- }
2832
- )
2833
- ] }));
2834
- }
2835
- );
2836
- NoMemoAccordionDocNameCellRenderer.displayName = "AccordionDocNameCellRenderer";
2837
- const AccordionDocNameCellRenderer = NoMemoAccordionDocNameCellRenderer;
2838
-
2839
- var __defProp$3 = Object.defineProperty;
2840
- var __defProps$3 = Object.defineProperties;
2841
- var __getOwnPropDescs$3 = Object.getOwnPropertyDescriptors;
2842
- var __getOwnPropSymbols$3 = Object.getOwnPropertySymbols;
2843
- var __hasOwnProp$3 = Object.prototype.hasOwnProperty;
2844
- var __propIsEnum$3 = Object.prototype.propertyIsEnumerable;
2845
- var __defNormalProp$3 = (obj, key, value) => key in obj ? __defProp$3(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
2846
- var __spreadValues$3 = (a, b) => {
2847
- for (var prop in b || (b = {}))
2848
- if (__hasOwnProp$3.call(b, prop))
2849
- __defNormalProp$3(a, prop, b[prop]);
2850
- if (__getOwnPropSymbols$3)
2851
- for (var prop of __getOwnPropSymbols$3(b)) {
2852
- if (__propIsEnum$3.call(b, prop))
2853
- __defNormalProp$3(a, prop, b[prop]);
2854
- }
2855
- return a;
2856
- };
2857
- var __spreadProps$3 = (a, b) => __defProps$3(a, __getOwnPropDescs$3(b));
2858
- var __objRest$3 = (source, exclude) => {
2859
- var target = {};
2860
- for (var prop in source)
2861
- if (__hasOwnProp$3.call(source, prop) && exclude.indexOf(prop) < 0)
2862
- target[prop] = source[prop];
2863
- if (source != null && __getOwnPropSymbols$3)
2864
- for (var prop of __getOwnPropSymbols$3(source)) {
2865
- if (exclude.indexOf(prop) < 0 && __propIsEnum$3.call(source, prop))
2866
- target[prop] = source[prop];
2867
- }
2868
- return target;
2869
- };
2870
- const NoMemoAccordionHTMLCellRenderer = React.forwardRef(
2871
- (_a, currentRef) => {
2872
- var _b = _a, {
2873
- cell: _c
2874
- } = _b, _d = _c, { children, Renderer, rendererProps, AccordionRenderer } = _d, cell = __objRest$3(_d, ["children", "Renderer", "rendererProps", "AccordionRenderer"]), _e = _b, props = __objRest$3(_e, [
2875
- "cell",
2876
- "column",
2877
- "row"
2878
- ]);
2879
- var _a2, _b2;
2880
- return (
2881
- /**
2882
- * Aca falta el title de la columna
2883
- */
2884
- /* @__PURE__ */ jsx(
2885
- Box,
2886
- __spreadProps$3(__spreadValues$3(__spreadValues$3({
2887
- ref: currentRef
2888
- }, props), cell), {
2889
- className: "accordion__cell__renderer",
2890
- dangerouslySetInnerHTML: {
2891
- __html: String((_b2 = (_a2 = rendererProps == null ? void 0 : rendererProps.html) != null ? _a2 : children) != null ? _b2 : "").replaceAll(
2892
- /<TOK(\d+)/g,
2893
- "&lt;TOK$1"
2894
- )
2895
- },
2896
- as: "span"
2897
- })
2898
- )
2899
- );
2900
- }
2901
- );
2902
- NoMemoAccordionHTMLCellRenderer.displayName = "AccordionHTMLCellRenderer";
2903
- const AccordionHTMLCellRenderer = NoMemoAccordionHTMLCellRenderer;
2904
-
2905
- var __defProp$2 = Object.defineProperty;
2906
- var __defProps$2 = Object.defineProperties;
2907
- var __getOwnPropDescs$2 = Object.getOwnPropertyDescriptors;
2908
- var __getOwnPropSymbols$2 = Object.getOwnPropertySymbols;
2909
- var __hasOwnProp$2 = Object.prototype.hasOwnProperty;
2910
- var __propIsEnum$2 = Object.prototype.propertyIsEnumerable;
2911
- var __defNormalProp$2 = (obj, key, value) => key in obj ? __defProp$2(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
2912
- var __spreadValues$2 = (a, b) => {
2913
- for (var prop in b || (b = {}))
2914
- if (__hasOwnProp$2.call(b, prop))
2915
- __defNormalProp$2(a, prop, b[prop]);
2916
- if (__getOwnPropSymbols$2)
2917
- for (var prop of __getOwnPropSymbols$2(b)) {
2918
- if (__propIsEnum$2.call(b, prop))
2919
- __defNormalProp$2(a, prop, b[prop]);
2920
- }
2921
- return a;
2922
- };
2923
- var __spreadProps$2 = (a, b) => __defProps$2(a, __getOwnPropDescs$2(b));
2924
- var __objRest$2 = (source, exclude) => {
2925
- var target = {};
2926
- for (var prop in source)
2927
- if (__hasOwnProp$2.call(source, prop) && exclude.indexOf(prop) < 0)
2928
- target[prop] = source[prop];
2929
- if (source != null && __getOwnPropSymbols$2)
2930
- for (var prop of __getOwnPropSymbols$2(source)) {
2931
- if (exclude.indexOf(prop) < 0 && __propIsEnum$2.call(source, prop))
2932
- target[prop] = source[prop];
2933
- }
2934
- return target;
2935
- };
2936
- const NoMemoHTMLCellRenderer = React.forwardRef(
2937
- (_a, currentRef) => {
2938
- var _b = _a, {
2939
- cell: _c
2940
- } = _b, _d = _c, { children, Renderer, rendererProps, AccordionRenderer } = _d, cell = __objRest$2(_d, ["children", "Renderer", "rendererProps", "AccordionRenderer"]), _e = _b, props = __objRest$2(_e, [
2941
- "cell",
2942
- "column",
2943
- "row"
2944
- ]);
2945
- var _a2, _b2;
2946
- return /* @__PURE__ */ jsx(
2947
- "td",
2948
- __spreadProps$2(__spreadValues$2(__spreadValues$2({
2949
- ref: currentRef
2950
- }, props), cell), {
2951
- dangerouslySetInnerHTML: {
2952
- __html: String((_b2 = (_a2 = rendererProps == null ? void 0 : rendererProps.html) != null ? _a2 : children) != null ? _b2 : "").replaceAll(
2953
- /<TOK(\d+)/g,
2954
- "&lt;TOK$1"
2955
- )
2956
- }
2957
- })
2958
- );
2959
- }
2960
- );
2961
- NoMemoHTMLCellRenderer.displayName = "HTMLCellRenderer";
2962
- const HTMLCellRenderer = NoMemoHTMLCellRenderer;
2963
-
2964
- const IsLoadingRenderer = () => {
2965
- return /* @__PURE__ */ jsx(Box, { className: "responsiveTable__isLoading", children: /* @__PURE__ */ jsx(Spinner, {}) });
2966
- };
2967
-
2968
- var __async$1 = (__this, __arguments, generator) => {
2969
- return new Promise((resolve, reject) => {
2970
- var fulfilled = (value) => {
2971
- try {
2972
- step(generator.next(value));
2973
- } catch (e) {
2974
- reject(e);
2975
- }
2976
- };
2977
- var rejected = (value) => {
2978
- try {
2979
- step(generator.throw(value));
2980
- } catch (e) {
2981
- reject(e);
2982
- }
2983
- };
2984
- var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
2985
- step((generator = generator.apply(__this, __arguments)).next());
2986
- });
2987
- };
2988
- function makeAccordionAsyncRenderer(additionalInfoGetter) {
2989
- const InnerRender = forwardRef(({ row }, ref) => {
2990
- const [moreInfo, setMoreInfo] = useState(null);
2991
- const loadMore = useCallback(() => __async$1(this, null, function* () {
2992
- const result = yield additionalInfoGetter(row);
2993
- setMoreInfo(result);
2994
- }), [row]);
2995
- return /* @__PURE__ */ jsx(Fragment, { children: moreInfo ? /* @__PURE__ */ jsxs(Fragment, { children: [
2996
- /* @__PURE__ */ jsx(IconButton, { icon: "Minus", onClick: () => setMoreInfo(null) }),
2997
- arrayOrArray(moreInfo).map(
2998
- (dataCell) => {
2999
- return /* @__PURE__ */ jsxs(Box, { ref, as: "div", children: [
3000
- /* @__PURE__ */ jsxs(Box, { as: "strong", children: [
3001
- dataCell.name,
3002
- ":"
3003
- ] }),
3004
- " ",
3005
- dataCell.label
3006
- ] }, dataCell.name);
3007
- }
3008
- )
3009
- ] }) : /* @__PURE__ */ jsx(IconButton, { icon: "Plus", onClick: () => void loadMore() }) });
3010
- });
3011
- InnerRender.displayName = "MakeAccordionAsyncRenderer";
3012
- return InnerRender;
3013
- }
3014
-
3015
- var __async = (__this, __arguments, generator) => {
3016
- return new Promise((resolve, reject) => {
3017
- var fulfilled = (value) => {
3018
- try {
3019
- step(generator.next(value));
3020
- } catch (e) {
3021
- reject(e);
3022
- }
3023
- };
3024
- var rejected = (value) => {
3025
- try {
3026
- step(generator.throw(value));
3027
- } catch (e) {
3028
- reject(e);
3029
- }
3030
- };
3031
- var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
3032
- step((generator = generator.apply(__this, __arguments)).next());
3033
- });
3034
- };
3035
- function makeAsyncRenderer(additionalInfoGetter) {
3036
- const InnerRender = forwardRef(({ row }, ref) => {
3037
- const [moreInfo, setMoreInfo] = useState(null);
3038
- useMount$1(() => {
3039
- void (() => __async(this, null, function* () {
3040
- const result = yield additionalInfoGetter(row);
3041
- setMoreInfo(result);
3042
- }))();
3043
- });
3044
- return /* @__PURE__ */ jsx(Fragment, { children: moreInfo ? arrayOrArray(moreInfo).map((dataCell) => {
3045
- return /* @__PURE__ */ jsx(
3046
- Box,
3047
- {
3048
- ref,
3049
- className: `responsiveTable__additionalInfoItem ${dataCell.newline ? "separator" : ""}`,
3050
- children: dataCell.newline ? /* @__PURE__ */ jsxs(Fragment, { children: [
3051
- /* @__PURE__ */ jsxs(Box, { sx: { height: "20px" }, as: "strong", children: [
3052
- dataCell.name,
3053
- ":"
3054
- ] }),
3055
- " ",
3056
- dataCell.label
3057
- ] }) : /* @__PURE__ */ jsxs(Fragment, { children: [
3058
- /* @__PURE__ */ jsxs(Box, { as: "strong", children: [
3059
- dataCell.name,
3060
- ":"
3061
- ] }),
3062
- " ",
3063
- dataCell.label
3064
- ] })
3065
- },
3066
- `${dataCell.name}-${uniqueId()}`
3067
- );
3068
- }) : /* @__PURE__ */ jsx(Spinner, { size: 15 }) });
3069
- });
3070
- InnerRender.displayName = "MakeAsyncRenderer";
3071
- return InnerRender;
3072
- }
3073
-
3074
- var __defProp$1 = Object.defineProperty;
3075
- var __defProps$1 = Object.defineProperties;
3076
- var __getOwnPropDescs$1 = Object.getOwnPropertyDescriptors;
3077
- var __getOwnPropSymbols$1 = Object.getOwnPropertySymbols;
3078
- var __hasOwnProp$1 = Object.prototype.hasOwnProperty;
3079
- var __propIsEnum$1 = Object.prototype.propertyIsEnumerable;
3080
- var __defNormalProp$1 = (obj, key, value) => key in obj ? __defProp$1(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
3081
- var __spreadValues$1 = (a, b) => {
3082
- for (var prop in b || (b = {}))
3083
- if (__hasOwnProp$1.call(b, prop))
3084
- __defNormalProp$1(a, prop, b[prop]);
3085
- if (__getOwnPropSymbols$1)
3086
- for (var prop of __getOwnPropSymbols$1(b)) {
3087
- if (__propIsEnum$1.call(b, prop))
3088
- __defNormalProp$1(a, prop, b[prop]);
3089
- }
3090
- return a;
3091
- };
3092
- var __spreadProps$1 = (a, b) => __defProps$1(a, __getOwnPropDescs$1(b));
3093
- var __objRest$1 = (source, exclude) => {
3094
- var target = {};
3095
- for (var prop in source)
3096
- if (__hasOwnProp$1.call(source, prop) && exclude.indexOf(prop) < 0)
3097
- target[prop] = source[prop];
3098
- if (source != null && __getOwnPropSymbols$1)
3099
- for (var prop of __getOwnPropSymbols$1(source)) {
3100
- if (exclude.indexOf(prop) < 0 && __propIsEnum$1.call(source, prop))
3101
- target[prop] = source[prop];
3102
- }
3103
- return target;
3104
- };
3105
- function getPriorityHandler(priority) {
3106
- let prio;
3107
- if (priority == null ? void 0 : priority.includes("priority0"))
3108
- prio = "priorityNone";
3109
- if (priority == null ? void 0 : priority.includes("priority1"))
3110
- prio = "priorityLow";
3111
- if (priority == null ? void 0 : priority.includes("priority2"))
3112
- prio = "priorityNormal";
3113
- if (priority == null ? void 0 : priority.includes("priority3"))
3114
- prio = "priorityHigh";
3115
- if (priority == null ? void 0 : priority.includes("priority4"))
3116
- prio = "priorityUrgent";
3117
- return prio;
3118
- }
3119
- const NoMemoPriorityRenderer = React.forwardRef(
3120
- (_a, currentRef) => {
3121
- var _b = _a, {
3122
- cell: _c
3123
- } = _b, _d = _c, { children, Renderer, rendererProps, AccordionRenderer } = _d, cell = __objRest$1(_d, ["children", "Renderer", "rendererProps", "AccordionRenderer"]), _e = _b, props = __objRest$1(_e, [
3124
- "cell",
3125
- "column",
3126
- "row"
3127
- ]);
3128
- const taskPriorityColor = getPriorityHandler(rendererProps == null ? void 0 : rendererProps.src);
3129
- return /* @__PURE__ */ jsx(
3130
- "td",
3131
- __spreadProps$1(__spreadValues$1(__spreadValues$1({}, props), cell), {
3132
- ref: currentRef,
3133
- className: "priority",
3134
- sx: {
3135
- color: taskPriorityColor
3136
- },
3137
- children: /* @__PURE__ */ jsx(FaSquare, {})
3138
- })
3139
- );
3140
- }
3141
- );
3142
- NoMemoPriorityRenderer.displayName = "PriorityRenderer";
3143
- const PriorityRenderer = NoMemoPriorityRenderer;
3144
-
3145
- const NoMemoPriorityAccordionRenderer = React.forwardRef(
3146
- ({ cell, column }, currentRef) => {
3147
- var _a, _b, _c;
3148
- const taskPriorityColor = getPriorityHandler(
3149
- (_a = cell.rendererProps) == null ? void 0 : _a.src
3150
- );
3151
- const title = (_b = column.label) != null ? _b : column.name;
3152
- return /* @__PURE__ */ jsxs(Box, { ref: currentRef, className: "priority_container", children: [
3153
- title && /* @__PURE__ */ jsxs(Box, { as: "strong", children: [
3154
- (_c = column.label) != null ? _c : column.name,
3155
- ": "
3156
- ] }),
3157
- /* @__PURE__ */ jsx(
3158
- Box,
3159
- {
3160
- as: "span",
3161
- className: "priority",
3162
- sx: {
3163
- color: taskPriorityColor
3164
- },
3165
- children: /* @__PURE__ */ jsx(FaSquare, {})
3166
- }
3167
- )
3168
- ] });
3169
- }
3170
- );
3171
- NoMemoPriorityAccordionRenderer.displayName = "PriorityAccordionRenderer";
3172
- const PriorityAccordionRenderer = NoMemoPriorityAccordionRenderer;
3173
-
3174
- var __defProp = Object.defineProperty;
3175
- var __defProps = Object.defineProperties;
3176
- var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
3177
- var __getOwnPropSymbols = Object.getOwnPropertySymbols;
3178
- var __hasOwnProp = Object.prototype.hasOwnProperty;
3179
- var __propIsEnum = Object.prototype.propertyIsEnumerable;
3180
- var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
3181
- var __spreadValues = (a, b) => {
3182
- for (var prop in b || (b = {}))
3183
- if (__hasOwnProp.call(b, prop))
3184
- __defNormalProp(a, prop, b[prop]);
3185
- if (__getOwnPropSymbols)
3186
- for (var prop of __getOwnPropSymbols(b)) {
3187
- if (__propIsEnum.call(b, prop))
3188
- __defNormalProp(a, prop, b[prop]);
3189
- }
3190
- return a;
3191
- };
3192
- var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
3193
- var __objRest = (source, exclude) => {
3194
- var target = {};
3195
- for (var prop in source)
3196
- if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)
3197
- target[prop] = source[prop];
3198
- if (source != null && __getOwnPropSymbols)
3199
- for (var prop of __getOwnPropSymbols(source)) {
3200
- if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))
3201
- target[prop] = source[prop];
3202
- }
3203
- return target;
3204
- };
3205
- function getStatusRendererClassName(cellValue, columnName) {
3206
- var _a;
3207
- if (cellValue === void 0)
3208
- return "";
3209
- const cellValueDate = cellValue.split(" ")[0];
3210
- const cellValueHour = (_a = cellValue.split(" ")[1]) != null ? _a : "00:00:00";
3211
- const dateFormat = getDateFormat();
3212
- const currentDate = dayjs();
3213
- const currentHour = Number(dayjs().format("HHmm"));
3214
- const queriedDate = dayjs(cellValueDate, dateFormat);
3215
- const queriedHour = Number(dayjs(cellValueHour, dateFormat));
3216
- let statusClassName = "";
3217
- if (currentDate >= queriedDate) {
3218
- statusClassName = columnName;
3219
- }
3220
- if (!queriedHour)
3221
- return statusClassName;
3222
- if (currentDate <= queriedDate && currentHour < queriedHour) {
3223
- statusClassName = columnName;
3224
- }
3225
- return statusClassName;
3226
- }
3227
- const NoMemoStatusRenderer = React.forwardRef(
3228
- (_a, currentRef) => {
3229
- var _b = _a, {
3230
- cell: _c
3231
- } = _b, _d = _c, { children, Renderer, rendererProps, AccordionRenderer } = _d, cell = __objRest(_d, ["children", "Renderer", "rendererProps", "AccordionRenderer"]), _e = _b, {
3232
- column,
3233
- row
3234
- } = _e, props = __objRest(_e, [
3235
- "cell",
3236
- "column",
3237
- "row"
3238
- ]);
3239
- const taskStatusClassName = getStatusRendererClassName(
3240
- children,
3241
- column.name
3242
- );
3243
- return /* @__PURE__ */ jsx(
3244
- "td",
3245
- __spreadProps(__spreadValues(__spreadValues({}, props), cell), {
3246
- ref: currentRef,
3247
- className: taskStatusClassName,
3248
- children
3249
- })
3250
- );
3251
- }
3252
- );
3253
- NoMemoStatusRenderer.displayName = "StatusRenderer";
3254
- const StatusRenderer = NoMemoStatusRenderer;
3255
-
3256
- const NoMemoStatusAccordionRenderer = React.forwardRef(({ cell, column }, currentRef) => {
3257
- var _a;
3258
- const taskStatusClassName = getStatusRendererClassName(
3259
- cell.children,
3260
- column.name
3261
- );
3262
- return /* @__PURE__ */ jsxs(Box, { ref: currentRef, children: [
3263
- /* @__PURE__ */ jsxs(Box, { as: "strong", children: [
3264
- (_a = column.label) != null ? _a : column.name,
3265
- ": "
3266
- ] }),
3267
- /* @__PURE__ */ jsx(Box, { as: "span", className: taskStatusClassName, children: cell.children })
3268
- ] });
3269
- });
3270
- NoMemoStatusAccordionRenderer.displayName = "StatusAccordionRenderer";
3271
- const StatusAccordionRenderer = NoMemoStatusAccordionRenderer;
3272
-
3273
- export { AccordionCell, AccordionDocNameCellRenderer, AccordionElement, AccordionHTMLCellRenderer, AccordionRenderer, AdditionalColumnDefaultRenderer, DefaultCellRenderer, DefaultRowRenderer, DocNameCellRenderer, HTMLCellRenderer, IsLoadingRenderer, NoRegistersRenderer, PriorityAccordionRenderer, PriorityRenderer, ResponsiveTable, ResponsiveTableContext, RowStatesRenderer, StatusAccordionRenderer, StatusRenderer, TableRenderer, defaultLabels, getPriorityHandler, getStatusRendererClassName, makeAccordionAsyncRenderer, makeAsyncRenderer, responsiveTableActions, responsiveTableStore, useResponsiveTable, useResponsiveTableContext };
1
+ export { ResponsiveTable } from './ResponsiveTable.js';
2
+ export { ResponsiveTableContext, useResponsiveTableContext } from './ResponsiveTableContext.js';
3
+ export { responsiveTableActions, responsiveTableStore, useResponsiveTable } from './store/index.js';
4
+ export { defaultLabels } from './types.js';
5
+ export { AccordionCell } from './renderers/AccordionCell.js';
6
+ export { AccordionDocNameCellRenderer } from './renderers/AccordionDocNameCellRenderer.js';
7
+ export { AccordionElement } from './renderers/AccordionElement.js';
8
+ export { AccordionHTMLCellRenderer } from './renderers/AccordionHTMLCellRenderer.js';
9
+ export { AccordionRenderer } from './renderers/AccordionRenderer.js';
10
+ export { AdditionalColumnDefaultRenderer } from './renderers/AdditionalColumnDefaultRenderer.js';
11
+ export { DefaultCellRenderer } from './renderers/DefaultCellRenderer.js';
12
+ export { DefaultRowRenderer } from './renderers/DefaultRowRenderer.js';
13
+ export { HTMLCellRenderer } from './renderers/HTMLCellRenderer.js';
14
+ export { IsLoadingRenderer } from './renderers/IsLoadingRenderer.js';
15
+ export { makeAccordionAsyncRenderer } from './renderers/makeAccordionAsyncRenderer.js';
16
+ export { makeAsyncRenderer } from './renderers/makeAsyncRenderer.js';
17
+ export { NoRegistersRenderer } from './renderers/NoRegistersRenderer.js';
18
+ export { PriorityAccordionRenderer } from './renderers/PriorityAccordionRenderer.js';
19
+ export { PriorityRenderer, getPriorityHandler } from './renderers/PriorityRenderer.js';
20
+ export { RowStatesRenderer } from './renderers/RowStatesRenderer.js';
21
+ export { StatusAccordionRenderer } from './renderers/StatusAccordionRenderer.js';
22
+ export { StatusRenderer, getStatusRendererClassName } from './renderers/StatusRenderer.js';
23
+ export { TableRenderer } from './renderers/TableRenderer.js';
24
+ export { DocNameCellRenderer } from './renderers/DocNameCellRenderer.js';
25
+ //# sourceMappingURL=index.js.map