@apia/table 2.0.8 → 2.0.9

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 (134) hide show
  1. package/dist/index.d.ts +787 -24
  2. package/dist/index.js +3648 -24
  3. package/dist/index.js.map +1 -1
  4. package/package.json +3 -3
  5. package/dist/Cell.js +0 -52
  6. package/dist/Cell.js.map +0 -1
  7. package/dist/FilterCell.js +0 -68
  8. package/dist/FilterCell.js.map +0 -1
  9. package/dist/Header.js +0 -171
  10. package/dist/Header.js.map +0 -1
  11. package/dist/HeaderCell.js +0 -223
  12. package/dist/HeaderCell.js.map +0 -1
  13. package/dist/KeyHandler.js +0 -28
  14. package/dist/KeyHandler.js.map +0 -1
  15. package/dist/ResponsiveTable.d.ts +0 -8
  16. package/dist/ResponsiveTable.d.ts.map +0 -1
  17. package/dist/ResponsiveTable.js +0 -29
  18. package/dist/ResponsiveTable.js.map +0 -1
  19. package/dist/ResponsiveTableContext.d.ts +0 -8
  20. package/dist/ResponsiveTableContext.d.ts.map +0 -1
  21. package/dist/ResponsiveTableContext.js +0 -143
  22. package/dist/ResponsiveTableContext.js.map +0 -1
  23. package/dist/Row.js +0 -230
  24. package/dist/Row.js.map +0 -1
  25. package/dist/SeparatorCell.js +0 -20
  26. package/dist/SeparatorCell.js.map +0 -1
  27. package/dist/StateCell.js +0 -19
  28. package/dist/StateCell.js.map +0 -1
  29. package/dist/filters/RangeFilter.js +0 -61
  30. package/dist/filters/RangeFilter.js.map +0 -1
  31. package/dist/renderers/AccordionCell.d.ts +0 -15
  32. package/dist/renderers/AccordionCell.d.ts.map +0 -1
  33. package/dist/renderers/AccordionCell.js +0 -23
  34. package/dist/renderers/AccordionCell.js.map +0 -1
  35. package/dist/renderers/AccordionDocNameCellRenderer.d.ts +0 -11
  36. package/dist/renderers/AccordionDocNameCellRenderer.d.ts.map +0 -1
  37. package/dist/renderers/AccordionDocNameCellRenderer.js +0 -39
  38. package/dist/renderers/AccordionDocNameCellRenderer.js.map +0 -1
  39. package/dist/renderers/AccordionElement.d.ts +0 -11
  40. package/dist/renderers/AccordionElement.d.ts.map +0 -1
  41. package/dist/renderers/AccordionElement.js +0 -115
  42. package/dist/renderers/AccordionElement.js.map +0 -1
  43. package/dist/renderers/AccordionHTMLCellRenderer.d.ts +0 -8
  44. package/dist/renderers/AccordionHTMLCellRenderer.d.ts.map +0 -1
  45. package/dist/renderers/AccordionHTMLCellRenderer.js +0 -37
  46. package/dist/renderers/AccordionHTMLCellRenderer.js.map +0 -1
  47. package/dist/renderers/AccordionRenderer.d.ts +0 -6
  48. package/dist/renderers/AccordionRenderer.d.ts.map +0 -1
  49. package/dist/renderers/AccordionRenderer.js +0 -76
  50. package/dist/renderers/AccordionRenderer.js.map +0 -1
  51. package/dist/renderers/AdditionalColumnDefaultRenderer.d.ts +0 -7
  52. package/dist/renderers/AdditionalColumnDefaultRenderer.d.ts.map +0 -1
  53. package/dist/renderers/AdditionalColumnDefaultRenderer.js +0 -31
  54. package/dist/renderers/AdditionalColumnDefaultRenderer.js.map +0 -1
  55. package/dist/renderers/DefaultCellRenderer.d.ts +0 -11
  56. package/dist/renderers/DefaultCellRenderer.d.ts.map +0 -1
  57. package/dist/renderers/DefaultCellRenderer.js +0 -49
  58. package/dist/renderers/DefaultCellRenderer.js.map +0 -1
  59. package/dist/renderers/DefaultRowRenderer.d.ts +0 -6
  60. package/dist/renderers/DefaultRowRenderer.d.ts.map +0 -1
  61. package/dist/renderers/DefaultRowRenderer.js +0 -26
  62. package/dist/renderers/DefaultRowRenderer.js.map +0 -1
  63. package/dist/renderers/DocNameCellRenderer.d.ts +0 -10
  64. package/dist/renderers/DocNameCellRenderer.d.ts.map +0 -1
  65. package/dist/renderers/DocNameCellRenderer.js +0 -43
  66. package/dist/renderers/DocNameCellRenderer.js.map +0 -1
  67. package/dist/renderers/HTMLCellRenderer.d.ts +0 -8
  68. package/dist/renderers/HTMLCellRenderer.d.ts.map +0 -1
  69. package/dist/renderers/HTMLCellRenderer.js +0 -29
  70. package/dist/renderers/HTMLCellRenderer.js.map +0 -1
  71. package/dist/renderers/IsLoadingRenderer.d.ts +0 -6
  72. package/dist/renderers/IsLoadingRenderer.d.ts.map +0 -1
  73. package/dist/renderers/IsLoadingRenderer.js +0 -9
  74. package/dist/renderers/IsLoadingRenderer.js.map +0 -1
  75. package/dist/renderers/NoRegistersRenderer.d.ts +0 -6
  76. package/dist/renderers/NoRegistersRenderer.d.ts.map +0 -1
  77. package/dist/renderers/NoRegistersRenderer.js +0 -11
  78. package/dist/renderers/NoRegistersRenderer.js.map +0 -1
  79. package/dist/renderers/PriorityAccordionRenderer.d.ts +0 -6
  80. package/dist/renderers/PriorityAccordionRenderer.d.ts.map +0 -1
  81. package/dist/renderers/PriorityAccordionRenderer.js +0 -36
  82. package/dist/renderers/PriorityAccordionRenderer.js.map +0 -1
  83. package/dist/renderers/PriorityRenderer.d.ts +0 -9
  84. package/dist/renderers/PriorityRenderer.d.ts.map +0 -1
  85. package/dist/renderers/PriorityRenderer.js +0 -46
  86. package/dist/renderers/PriorityRenderer.js.map +0 -1
  87. package/dist/renderers/RowStatesRenderer.d.ts +0 -9
  88. package/dist/renderers/RowStatesRenderer.d.ts.map +0 -1
  89. package/dist/renderers/RowStatesRenderer.js +0 -34
  90. package/dist/renderers/RowStatesRenderer.js.map +0 -1
  91. package/dist/renderers/StatusAccordionRenderer.d.ts +0 -6
  92. package/dist/renderers/StatusAccordionRenderer.d.ts.map +0 -1
  93. package/dist/renderers/StatusAccordionRenderer.js +0 -23
  94. package/dist/renderers/StatusAccordionRenderer.js.map +0 -1
  95. package/dist/renderers/StatusRenderer.d.ts +0 -9
  96. package/dist/renderers/StatusRenderer.d.ts.map +0 -1
  97. package/dist/renderers/StatusRenderer.js +0 -54
  98. package/dist/renderers/StatusRenderer.js.map +0 -1
  99. package/dist/renderers/TableRenderer.d.ts +0 -6
  100. package/dist/renderers/TableRenderer.d.ts.map +0 -1
  101. package/dist/renderers/TableRenderer.js +0 -50
  102. package/dist/renderers/TableRenderer.js.map +0 -1
  103. package/dist/renderers/makeAccordionAsyncRenderer.d.ts +0 -9
  104. package/dist/renderers/makeAccordionAsyncRenderer.d.ts.map +0 -1
  105. package/dist/renderers/makeAccordionAsyncRenderer.js +0 -35
  106. package/dist/renderers/makeAccordionAsyncRenderer.js.map +0 -1
  107. package/dist/renderers/makeAsyncRenderer.d.ts +0 -10
  108. package/dist/renderers/makeAsyncRenderer.d.ts.map +0 -1
  109. package/dist/renderers/makeAsyncRenderer.js +0 -47
  110. package/dist/renderers/makeAsyncRenderer.js.map +0 -1
  111. package/dist/store/index.d.ts +0 -72
  112. package/dist/store/index.d.ts.map +0 -1
  113. package/dist/store/index.js +0 -131
  114. package/dist/store/index.js.map +0 -1
  115. package/dist/store/selection/getInitialState.js +0 -22
  116. package/dist/store/selection/getInitialState.js.map +0 -1
  117. package/dist/store/selection/getReduxActions.js +0 -42
  118. package/dist/store/selection/getReduxActions.js.map +0 -1
  119. package/dist/store/selection/handleKey.js +0 -143
  120. package/dist/store/selection/handleKey.js.map +0 -1
  121. package/dist/store/selection/makeKeyHandler.js +0 -336
  122. package/dist/store/selection/makeKeyHandler.js.map +0 -1
  123. package/dist/store/selection/setNewFocused.js +0 -101
  124. package/dist/store/selection/setNewFocused.js.map +0 -1
  125. package/dist/store/selection/types.d.ts +0 -150
  126. package/dist/store/selection/types.d.ts.map +0 -1
  127. package/dist/store/selection/useDomProps.js +0 -181
  128. package/dist/store/selection/useDomProps.js.map +0 -1
  129. package/dist/store/types.d.ts +0 -19
  130. package/dist/store/types.d.ts.map +0 -1
  131. package/dist/types.d.ts +0 -315
  132. package/dist/types.d.ts.map +0 -1
  133. package/dist/types.js +0 -6
  134. package/dist/types.js.map +0 -1
@@ -1,181 +0,0 @@
1
- import React from 'react';
2
- import { shallowEqual } from 'react-redux';
3
- import { addBoundary } from '@apia/util';
4
- import { useResponsiveTable } from '../index.js';
5
-
6
- function useDomProps(element, elementProps, stateSelector) {
7
- const state = useResponsiveTable((globalState) => {
8
- const tableState = stateSelector(globalState);
9
- const hasNonAdditionalFilters = tableState?.hasNonAdditionalFilters;
10
- const startDataRowIndex = hasNonAdditionalFilters ? 2 : 1;
11
- const statesColumns = tableState?.statesColumns ?? 0;
12
- let expandedBeforeThisRow = 0;
13
- if (element === "tr")
14
- expandedBeforeThisRow = tableState?.expandedRows.filter(
15
- (current) => current < elementProps.rowIndex
16
- ).length;
17
- let isFocused = false;
18
- let isSelected = false;
19
- switch (element) {
20
- case "filterTd": {
21
- const castedProps = elementProps;
22
- isFocused = tableState?.focusedRow === 1 - startDataRowIndex && addBoundary(tableState?.focusedColumn ?? 0, 0) - statesColumns === castedProps.columnIndex + 1 + (hasNonAdditionalFilters ? 1 : 0);
23
- break;
24
- }
25
- case "tr": {
26
- const castedProps = elementProps;
27
- isFocused = !tableState ? false : tableState.focusedRow === castedProps.rowIndex && tableState?.focusedColumn === 0 || Math.floor(tableState?.focusedRow) === castedProps.rowIndex && Math.round(tableState?.focusedRow) - tableState.focusedRow !== 0 && !!castedProps.isTheExpandedRow;
28
- isSelected = !castedProps.isTheExpandedRow && tableState?.selectedRows.includes(castedProps.rowIndex);
29
- break;
30
- }
31
- case "stateCell": {
32
- const castedProps = elementProps;
33
- isFocused = tableState?.focusedRow === castedProps.rowIndex && (tableState?.focusedColumn ?? 0) === castedProps.columnIndex + 1 + (hasNonAdditionalFilters ? 1 : 0);
34
- break;
35
- }
36
- case "additionalTd": {
37
- const castedProps = elementProps;
38
- isFocused = tableState?.focusedRow === castedProps.rowIndex && (tableState?.focusedColumn ?? 0) === 1;
39
- break;
40
- }
41
- case "td": {
42
- const castedProps = elementProps;
43
- isFocused = tableState?.focusedRow === castedProps.rowIndex && (tableState?.focusedColumn ?? 0) - statesColumns === castedProps.columnIndex + 1 + (hasNonAdditionalFilters ? 1 : 0);
44
- break;
45
- }
46
- case "headerStateCell": {
47
- const castedProps = elementProps;
48
- isFocused = tableState?.focusedRow === castedProps.rowIndex - 1 - startDataRowIndex && addBoundary(tableState?.focusedColumn, 0) === castedProps.columnIndex + 1 + (hasNonAdditionalFilters ? 1 : 0);
49
- break;
50
- }
51
- case "th": {
52
- const castedProps = elementProps;
53
- isFocused = tableState?.focusedRow === 0 - startDataRowIndex && addBoundary((tableState?.focusedColumn ?? 0) - statesColumns, 0) === castedProps.columnIndex + 1 + (hasNonAdditionalFilters ? 1 : 0);
54
- break;
55
- }
56
- case "separator": {
57
- const castedProps = elementProps;
58
- isFocused = !tableState ? false : tableState.focusedRow === castedProps.rowIndex;
59
- break;
60
- }
61
- }
62
- return {
63
- columns: tableState?.columns ?? [],
64
- expandedBeforeThisRow,
65
- isEditionMode: tableState?.isEditionMode,
66
- hasNonAdditionalFilters,
67
- rowsLength: element === "table" ? tableState?.rows.length : "",
68
- isSelected,
69
- isFocused,
70
- startDataRowIndex,
71
- statesColumns: tableState?.statesColumns
72
- };
73
- }, shallowEqual);
74
- let returnObject = React.useMemo(() => ({}), []);
75
- switch (element) {
76
- case "filterTd": {
77
- const castedProps = elementProps;
78
- returnObject = {
79
- "aria-colindex": castedProps.columnIndex + 1 + state.statesColumns + (state.hasNonAdditionalFilters ? 1 : 0),
80
- "data-editionmode": state.isEditionMode && state.isFocused,
81
- "data-focused": state.isFocused,
82
- tabIndex: state.isFocused ? 0 : -1,
83
- "data-rowindex": 2
84
- };
85
- break;
86
- }
87
- case "separator": {
88
- const castedProps = elementProps;
89
- returnObject = {
90
- "aria-rowindex": castedProps.rowIndex + state.startDataRowIndex + 1 + state.expandedBeforeThisRow,
91
- "data-focusindex": castedProps.rowIndex + state.startDataRowIndex + 1,
92
- "aria-selected": state.isSelected,
93
- "data-focused": state.isFocused,
94
- "aria-expanded": false
95
- };
96
- break;
97
- }
98
- case "table": {
99
- returnObject = {
100
- role: "treegrid",
101
- "aria-colcount": state.columns.length,
102
- "aria-rowcount": state.rowsLength
103
- };
104
- break;
105
- }
106
- case "tr": {
107
- const castedProps = elementProps;
108
- returnObject = {
109
- "aria-rowindex": castedProps.rowIndex + state.startDataRowIndex + 1 + state.expandedBeforeThisRow + (castedProps.isTheExpandedRow ? 1 : 0),
110
- "data-focusindex": castedProps.rowIndex + state.startDataRowIndex + 1 + (castedProps.isTheExpandedRow ? 0.5 : 0),
111
- "aria-selected": state.isSelected,
112
- "data-focused": state.isFocused,
113
- "aria-expanded": castedProps.isThisRowExpanded,
114
- tabIndex: state.isFocused ? 0 : -1
115
- };
116
- break;
117
- }
118
- case "td": {
119
- const castedProps = elementProps;
120
- returnObject = {
121
- "aria-colindex": castedProps.columnIndex + 1 + state.statesColumns + (state.hasNonAdditionalFilters ? 1 : 0),
122
- "data-editionmode": state.isEditionMode && state.isFocused,
123
- "data-focused": state.isFocused,
124
- tabIndex: state.isFocused ? 0 : -1,
125
- "data-rowindex": castedProps.rowIndex + state.startDataRowIndex + 1
126
- };
127
- break;
128
- }
129
- case "additionalTd": {
130
- const castedProps = elementProps;
131
- returnObject = {
132
- "aria-colindex": 1,
133
- "data-editionmode": state.isEditionMode && state.isFocused,
134
- "data-focused": state.isFocused,
135
- tabIndex: state.isFocused ? 0 : -1,
136
- "data-rowindex": castedProps.rowIndex + state.startDataRowIndex + 1
137
- };
138
- break;
139
- }
140
- case "stateCell": {
141
- const castedProps = elementProps;
142
- returnObject = {
143
- "aria-colindex": castedProps.columnIndex + 1 + (state.hasNonAdditionalFilters ? 1 : 0),
144
- "data-editionmode": state.isEditionMode && state.isFocused,
145
- "data-focused": state.isFocused,
146
- tabIndex: state.isFocused ? 0 : -1,
147
- "data-rowindex": castedProps.rowIndex + state.startDataRowIndex + 1
148
- };
149
- break;
150
- }
151
- case "headerStateCell": {
152
- const castedProps = elementProps;
153
- returnObject = {
154
- "aria-colindex": castedProps.columnIndex + 1 + (state.hasNonAdditionalFilters ? 1 : 0),
155
- "data-editionmode": state.isEditionMode && state.isFocused,
156
- "data-focused": state.isFocused,
157
- tabIndex: state.isFocused ? 0 : -1,
158
- "data-rowindex": castedProps.rowIndex
159
- };
160
- break;
161
- }
162
- case "th": {
163
- const castedProps = elementProps;
164
- returnObject = {
165
- "aria-colindex": castedProps.columnIndex + 1 + state.statesColumns + (state.hasNonAdditionalFilters ? 1 : 0),
166
- "aria-sort": ["ascending", "descending", void 0][["Asc", "Desc", null].findIndex(
167
- (current) => current === state.columns[castedProps.columnIndex].currentSorting
168
- )],
169
- "data-editionmode": state.isEditionMode && state.isFocused,
170
- "data-focused": state.isFocused,
171
- tabIndex: state.isFocused ? 0 : -1,
172
- "data-rowindex": 1
173
- };
174
- break;
175
- }
176
- }
177
- return React.useMemo(() => returnObject, Object.values(returnObject));
178
- }
179
-
180
- export { useDomProps };
181
- //# sourceMappingURL=useDomProps.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useDomProps.js","sources":["../../../src/store/selection/useDomProps.ts"],"sourcesContent":["import React from 'react';\r\nimport { shallowEqual } from 'react-redux';\r\nimport { addBoundary } from '@apia/util';\r\nimport { TDomProps, IRequiredDomProps, TUseDomProps } from './types';\r\nimport { useResponsiveTable } from '..';\r\n\r\n/**\r\n * Este hook extrae según el estado de la tabla actual\r\n * y el nombre del elemento al que se le desean calcular\r\n * los atributos que deben mostrarse en el dom para\r\n * cumplir con las reglas de accesibilidad.\r\n *\r\n * @param element Es el nombre del elemento\r\n *\r\n * @param elementProps Las propiedades necesarias que se\r\n * deben suministrar para lograr un cálculo apropiado de\r\n * las propiedades que deben mostrarse.\r\n *\r\n * @param stateSelector Es una función que acepta el estado\r\n * global de la aplicación y devuelve el estado de la tabla\r\n * actual. Este método es necesario ya que el useDomProps\r\n * no sabe contra qué slice va a trabajar.\r\n *\r\n * @returns un objeto que contiene las propiedades\r\n * del DOM que deben destructurarse en el elemento html.\r\n */\r\nexport function useDomProps<ElementType extends keyof IRequiredDomProps>(\r\n element: ElementType,\r\n elementProps: IRequiredDomProps[typeof element],\r\n stateSelector: TUseDomProps,\r\n): TDomProps {\r\n const state = useResponsiveTable((globalState) => {\r\n const tableState = stateSelector(globalState);\r\n const hasNonAdditionalFilters = tableState?.hasNonAdditionalFilters;\r\n const startDataRowIndex = hasNonAdditionalFilters ? 2 : 1;\r\n\r\n const statesColumns = tableState?.statesColumns ?? 0;\r\n\r\n let expandedBeforeThisRow = 0;\r\n\r\n if (element === 'tr')\r\n expandedBeforeThisRow = tableState?.expandedRows.filter(\r\n (current) =>\r\n current < (elementProps as IRequiredDomProps['td']).rowIndex,\r\n ).length;\r\n\r\n let isFocused = false;\r\n let isSelected = false;\r\n switch (element) {\r\n case 'filterTd': {\r\n const castedProps = elementProps as IRequiredDomProps['filterTd'];\r\n isFocused =\r\n tableState?.focusedRow === 1 - startDataRowIndex &&\r\n addBoundary(tableState?.focusedColumn ?? 0, 0) - statesColumns ===\r\n castedProps.columnIndex + 1 + (hasNonAdditionalFilters ? 1 : 0);\r\n break;\r\n }\r\n case 'tr': {\r\n const castedProps = elementProps as IRequiredDomProps['tr'];\r\n isFocused = !tableState\r\n ? false\r\n : (tableState.focusedRow === castedProps.rowIndex &&\r\n tableState?.focusedColumn === 0) ||\r\n (Math.floor(tableState?.focusedRow) === castedProps.rowIndex &&\r\n Math.round(tableState?.focusedRow) - tableState.focusedRow !==\r\n 0 &&\r\n !!castedProps.isTheExpandedRow);\r\n isSelected =\r\n !castedProps.isTheExpandedRow &&\r\n tableState?.selectedRows.includes(castedProps.rowIndex);\r\n break;\r\n }\r\n case 'stateCell': {\r\n const castedProps = elementProps as IRequiredDomProps['td'];\r\n isFocused =\r\n tableState?.focusedRow === castedProps.rowIndex &&\r\n (tableState?.focusedColumn ?? 0) ===\r\n castedProps.columnIndex + 1 + (hasNonAdditionalFilters ? 1 : 0);\r\n break;\r\n }\r\n case 'additionalTd': {\r\n const castedProps = elementProps as IRequiredDomProps['additionalTd'];\r\n isFocused =\r\n tableState?.focusedRow === castedProps.rowIndex &&\r\n (tableState?.focusedColumn ?? 0) === 1;\r\n break;\r\n }\r\n case 'td': {\r\n const castedProps = elementProps as IRequiredDomProps['td'];\r\n isFocused =\r\n tableState?.focusedRow === castedProps.rowIndex &&\r\n (tableState?.focusedColumn ?? 0) - statesColumns ===\r\n castedProps.columnIndex + 1 + (hasNonAdditionalFilters ? 1 : 0);\r\n break;\r\n }\r\n case 'headerStateCell': {\r\n const castedProps = elementProps as IRequiredDomProps['td'];\r\n isFocused =\r\n tableState?.focusedRow ===\r\n castedProps.rowIndex - 1 - startDataRowIndex &&\r\n addBoundary(tableState?.focusedColumn, 0) ===\r\n castedProps.columnIndex + 1 + (hasNonAdditionalFilters ? 1 : 0);\r\n break;\r\n }\r\n case 'th': {\r\n const castedProps = elementProps as IRequiredDomProps['th'];\r\n isFocused =\r\n tableState?.focusedRow === 0 - startDataRowIndex &&\r\n addBoundary((tableState?.focusedColumn ?? 0) - statesColumns, 0) ===\r\n castedProps.columnIndex + 1 + (hasNonAdditionalFilters ? 1 : 0);\r\n break;\r\n }\r\n case 'separator': {\r\n const castedProps = elementProps as IRequiredDomProps['separator'];\r\n isFocused = !tableState\r\n ? false\r\n : tableState.focusedRow === castedProps.rowIndex;\r\n break;\r\n }\r\n default:\r\n break;\r\n }\r\n\r\n return {\r\n columns: tableState?.columns ?? [],\r\n expandedBeforeThisRow,\r\n isEditionMode: tableState?.isEditionMode,\r\n hasNonAdditionalFilters,\r\n rowsLength: element === 'table' ? tableState?.rows.length : '',\r\n isSelected,\r\n isFocused,\r\n startDataRowIndex,\r\n statesColumns: tableState?.statesColumns,\r\n };\r\n }, shallowEqual);\r\n\r\n let returnObject: Omit<TDomProps, 'ref'> = React.useMemo(() => ({}), []);\r\n\r\n switch (element) {\r\n case 'filterTd': {\r\n const castedProps = elementProps as IRequiredDomProps['filterTd'];\r\n returnObject = {\r\n 'aria-colindex':\r\n castedProps.columnIndex +\r\n 1 +\r\n state.statesColumns +\r\n (state.hasNonAdditionalFilters ? 1 : 0),\r\n 'data-editionmode': state.isEditionMode && state.isFocused,\r\n 'data-focused': state.isFocused,\r\n tabIndex: state.isFocused ? 0 : -1,\r\n 'data-rowindex': 2,\r\n };\r\n break;\r\n }\r\n case 'separator': {\r\n const castedProps = elementProps as IRequiredDomProps['separator'];\r\n returnObject = {\r\n 'aria-rowindex':\r\n castedProps.rowIndex +\r\n state.startDataRowIndex +\r\n 1 +\r\n state.expandedBeforeThisRow,\r\n 'data-focusindex': castedProps.rowIndex + state.startDataRowIndex + 1,\r\n 'aria-selected': state.isSelected,\r\n 'data-focused': state.isFocused,\r\n 'aria-expanded': false,\r\n };\r\n break;\r\n }\r\n case 'table': {\r\n returnObject = {\r\n role: 'treegrid',\r\n 'aria-colcount': state.columns.length,\r\n 'aria-rowcount': state.rowsLength,\r\n };\r\n break;\r\n }\r\n case 'tr': {\r\n const castedProps = elementProps as IRequiredDomProps['tr'];\r\n returnObject = {\r\n 'aria-rowindex':\r\n castedProps.rowIndex +\r\n state.startDataRowIndex +\r\n 1 +\r\n state.expandedBeforeThisRow +\r\n (castedProps.isTheExpandedRow ? 1 : 0),\r\n 'data-focusindex':\r\n castedProps.rowIndex +\r\n state.startDataRowIndex +\r\n 1 +\r\n (castedProps.isTheExpandedRow ? 0.5 : 0),\r\n 'aria-selected': state.isSelected,\r\n 'data-focused': state.isFocused,\r\n 'aria-expanded': castedProps.isThisRowExpanded,\r\n tabIndex: state.isFocused ? 0 : -1,\r\n };\r\n break;\r\n }\r\n case 'td': {\r\n const castedProps = elementProps as IRequiredDomProps['td'];\r\n returnObject = {\r\n 'aria-colindex':\r\n castedProps.columnIndex +\r\n 1 +\r\n state.statesColumns +\r\n (state.hasNonAdditionalFilters ? 1 : 0),\r\n 'data-editionmode': state.isEditionMode && state.isFocused,\r\n 'data-focused': state.isFocused,\r\n tabIndex: state.isFocused ? 0 : -1,\r\n 'data-rowindex': castedProps.rowIndex + state.startDataRowIndex + 1,\r\n };\r\n break;\r\n }\r\n case 'additionalTd': {\r\n const castedProps = elementProps as IRequiredDomProps['td'];\r\n returnObject = {\r\n 'aria-colindex': 1,\r\n 'data-editionmode': state.isEditionMode && state.isFocused,\r\n 'data-focused': state.isFocused,\r\n tabIndex: state.isFocused ? 0 : -1,\r\n 'data-rowindex': castedProps.rowIndex + state.startDataRowIndex + 1,\r\n };\r\n break;\r\n }\r\n case 'stateCell': {\r\n const castedProps = elementProps as IRequiredDomProps['td'];\r\n returnObject = {\r\n 'aria-colindex':\r\n castedProps.columnIndex + 1 + (state.hasNonAdditionalFilters ? 1 : 0),\r\n 'data-editionmode': state.isEditionMode && state.isFocused,\r\n 'data-focused': state.isFocused,\r\n tabIndex: state.isFocused ? 0 : -1,\r\n 'data-rowindex': castedProps.rowIndex + state.startDataRowIndex + 1,\r\n };\r\n break;\r\n }\r\n case 'headerStateCell': {\r\n const castedProps = elementProps as IRequiredDomProps['td'];\r\n returnObject = {\r\n 'aria-colindex':\r\n castedProps.columnIndex + 1 + (state.hasNonAdditionalFilters ? 1 : 0),\r\n 'data-editionmode': state.isEditionMode && state.isFocused,\r\n 'data-focused': state.isFocused,\r\n tabIndex: state.isFocused ? 0 : -1,\r\n 'data-rowindex': castedProps.rowIndex,\r\n };\r\n break;\r\n }\r\n case 'th': {\r\n const castedProps = elementProps as IRequiredDomProps['th'];\r\n returnObject = {\r\n 'aria-colindex':\r\n castedProps.columnIndex +\r\n 1 +\r\n state.statesColumns +\r\n (state.hasNonAdditionalFilters ? 1 : 0),\r\n 'aria-sort': ['ascending', 'descending', undefined][\r\n ['Asc', 'Desc', null].findIndex(\r\n (current) =>\r\n current === state.columns[castedProps.columnIndex].currentSorting,\r\n )\r\n ] as 'none' | 'ascending' | 'descending' | 'other' | undefined,\r\n 'data-editionmode': state.isEditionMode && state.isFocused,\r\n 'data-focused': state.isFocused,\r\n tabIndex: state.isFocused ? 0 : -1,\r\n 'data-rowindex': 1,\r\n };\r\n break;\r\n }\r\n default:\r\n break;\r\n }\r\n\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n return React.useMemo(() => returnObject, Object.values(returnObject));\r\n}\r\n"],"names":[],"mappings":";;;;;AA0BgB,SAAA,WAAA,CACd,OACA,EAAA,YAAA,EACA,aACW,EAAA;AACX,EAAM,MAAA,KAAA,GAAQ,kBAAmB,CAAA,CAAC,WAAgB,KAAA;AAChD,IAAM,MAAA,UAAA,GAAa,cAAc,WAAW,CAAA,CAAA;AAC5C,IAAA,MAAM,0BAA0B,UAAY,EAAA,uBAAA,CAAA;AAC5C,IAAM,MAAA,iBAAA,GAAoB,0BAA0B,CAAI,GAAA,CAAA,CAAA;AAExD,IAAM,MAAA,aAAA,GAAgB,YAAY,aAAiB,IAAA,CAAA,CAAA;AAEnD,IAAA,IAAI,qBAAwB,GAAA,CAAA,CAAA;AAE5B,IAAA,IAAI,OAAY,KAAA,IAAA;AACd,MAAA,qBAAA,GAAwB,YAAY,YAAa,CAAA,MAAA;AAAA,QAC/C,CAAC,OACC,KAAA,OAAA,GAAW,YAAyC,CAAA,QAAA;AAAA,OACtD,CAAA,MAAA,CAAA;AAEJ,IAAA,IAAI,SAAY,GAAA,KAAA,CAAA;AAChB,IAAA,IAAI,UAAa,GAAA,KAAA,CAAA;AACjB,IAAA,QAAQ,OAAS;AAAA,MACf,KAAK,UAAY,EAAA;AACf,QAAA,MAAM,WAAc,GAAA,YAAA,CAAA;AACpB,QAAA,SAAA,GACE,UAAY,EAAA,UAAA,KAAe,CAAI,GAAA,iBAAA,IAC/B,YAAY,UAAY,EAAA,aAAA,IAAiB,CAAG,EAAA,CAAC,IAAI,aAC/C,KAAA,WAAA,CAAY,WAAc,GAAA,CAAA,IAAK,0BAA0B,CAAI,GAAA,CAAA,CAAA,CAAA;AACjE,QAAA,MAAA;AAAA,OACF;AAAA,MACA,KAAK,IAAM,EAAA;AACT,QAAA,MAAM,WAAc,GAAA,YAAA,CAAA;AACpB,QAAY,SAAA,GAAA,CAAC,UACT,GAAA,KAAA,GACC,UAAW,CAAA,UAAA,KAAe,WAAY,CAAA,QAAA,IACrC,UAAY,EAAA,aAAA,KAAkB,CAC/B,IAAA,IAAA,CAAK,KAAM,CAAA,UAAA,EAAY,UAAU,CAAA,KAAM,WAAY,CAAA,QAAA,IAClD,IAAK,CAAA,KAAA,CAAM,UAAY,EAAA,UAAU,CAAI,GAAA,UAAA,CAAW,UAC9C,KAAA,CAAA,IACF,CAAC,CAAC,WAAY,CAAA,gBAAA,CAAA;AACpB,QAAA,UAAA,GACE,CAAC,WAAY,CAAA,gBAAA,IACb,YAAY,YAAa,CAAA,QAAA,CAAS,YAAY,QAAQ,CAAA,CAAA;AACxD,QAAA,MAAA;AAAA,OACF;AAAA,MACA,KAAK,WAAa,EAAA;AAChB,QAAA,MAAM,WAAc,GAAA,YAAA,CAAA;AACpB,QACE,SAAA,GAAA,UAAA,EAAY,UAAe,KAAA,WAAA,CAAY,QACtC,IAAA,CAAA,UAAA,EAAY,aAAiB,IAAA,CAAA,MAC5B,WAAY,CAAA,WAAA,GAAc,CAAK,IAAA,uBAAA,GAA0B,CAAI,GAAA,CAAA,CAAA,CAAA;AACjE,QAAA,MAAA;AAAA,OACF;AAAA,MACA,KAAK,cAAgB,EAAA;AACnB,QAAA,MAAM,WAAc,GAAA,YAAA,CAAA;AACpB,QAAA,SAAA,GACE,YAAY,UAAe,KAAA,WAAA,CAAY,QACtC,IAAA,CAAA,UAAA,EAAY,iBAAiB,CAAO,MAAA,CAAA,CAAA;AACvC,QAAA,MAAA;AAAA,OACF;AAAA,MACA,KAAK,IAAM,EAAA;AACT,QAAA,MAAM,WAAc,GAAA,YAAA,CAAA;AACpB,QAAA,SAAA,GACE,UAAY,EAAA,UAAA,KAAe,WAAY,CAAA,QAAA,IAAA,CACtC,UAAY,EAAA,aAAA,IAAiB,CAAK,IAAA,aAAA,KACjC,WAAY,CAAA,WAAA,GAAc,CAAK,IAAA,uBAAA,GAA0B,CAAI,GAAA,CAAA,CAAA,CAAA;AACjE,QAAA,MAAA;AAAA,OACF;AAAA,MACA,KAAK,iBAAmB,EAAA;AACtB,QAAA,MAAM,WAAc,GAAA,YAAA,CAAA;AACpB,QAAA,SAAA,GACE,UAAY,EAAA,UAAA,KACV,WAAY,CAAA,QAAA,GAAW,IAAI,iBAC7B,IAAA,WAAA,CAAY,UAAY,EAAA,aAAA,EAAe,CAAC,CACtC,KAAA,WAAA,CAAY,WAAc,GAAA,CAAA,IAAK,0BAA0B,CAAI,GAAA,CAAA,CAAA,CAAA;AACjE,QAAA,MAAA;AAAA,OACF;AAAA,MACA,KAAK,IAAM,EAAA;AACT,QAAA,MAAM,WAAc,GAAA,YAAA,CAAA;AACpB,QAAA,SAAA,GACE,UAAY,EAAA,UAAA,KAAe,CAAI,GAAA,iBAAA,IAC/B,aAAa,UAAY,EAAA,aAAA,IAAiB,CAAK,IAAA,aAAA,EAAe,CAAC,CAC7D,KAAA,WAAA,CAAY,WAAc,GAAA,CAAA,IAAK,0BAA0B,CAAI,GAAA,CAAA,CAAA,CAAA;AACjE,QAAA,MAAA;AAAA,OACF;AAAA,MACA,KAAK,WAAa,EAAA;AAChB,QAAA,MAAM,WAAc,GAAA,YAAA,CAAA;AACpB,QAAA,SAAA,GAAY,CAAC,UAAA,GACT,KACA,GAAA,UAAA,CAAW,eAAe,WAAY,CAAA,QAAA,CAAA;AAC1C,QAAA,MAAA;AAAA,OACF;AAEE,KACJ;AAEA,IAAO,OAAA;AAAA,MACL,OAAA,EAAS,UAAY,EAAA,OAAA,IAAW,EAAC;AAAA,MACjC,qBAAA;AAAA,MACA,eAAe,UAAY,EAAA,aAAA;AAAA,MAC3B,uBAAA;AAAA,MACA,UAAY,EAAA,OAAA,KAAY,OAAU,GAAA,UAAA,EAAY,KAAK,MAAS,GAAA,EAAA;AAAA,MAC5D,UAAA;AAAA,MACA,SAAA;AAAA,MACA,iBAAA;AAAA,MACA,eAAe,UAAY,EAAA,aAAA;AAAA,KAC7B,CAAA;AAAA,KACC,YAAY,CAAA,CAAA;AAEf,EAAA,IAAI,eAAuC,KAAM,CAAA,OAAA,CAAQ,OAAO,EAAC,CAAA,EAAI,EAAE,CAAA,CAAA;AAEvE,EAAA,QAAQ,OAAS;AAAA,IACf,KAAK,UAAY,EAAA;AACf,MAAA,MAAM,WAAc,GAAA,YAAA,CAAA;AACpB,MAAe,YAAA,GAAA;AAAA,QACb,eAAA,EACE,YAAY,WACZ,GAAA,CAAA,GACA,MAAM,aACL,IAAA,KAAA,CAAM,0BAA0B,CAAI,GAAA,CAAA,CAAA;AAAA,QACvC,kBAAA,EAAoB,KAAM,CAAA,aAAA,IAAiB,KAAM,CAAA,SAAA;AAAA,QACjD,gBAAgB,KAAM,CAAA,SAAA;AAAA,QACtB,QAAA,EAAU,KAAM,CAAA,SAAA,GAAY,CAAI,GAAA,CAAA,CAAA;AAAA,QAChC,eAAiB,EAAA,CAAA;AAAA,OACnB,CAAA;AACA,MAAA,MAAA;AAAA,KACF;AAAA,IACA,KAAK,WAAa,EAAA;AAChB,MAAA,MAAM,WAAc,GAAA,YAAA,CAAA;AACpB,MAAe,YAAA,GAAA;AAAA,QACb,iBACE,WAAY,CAAA,QAAA,GACZ,KAAM,CAAA,iBAAA,GACN,IACA,KAAM,CAAA,qBAAA;AAAA,QACR,iBAAmB,EAAA,WAAA,CAAY,QAAW,GAAA,KAAA,CAAM,iBAAoB,GAAA,CAAA;AAAA,QACpE,iBAAiB,KAAM,CAAA,UAAA;AAAA,QACvB,gBAAgB,KAAM,CAAA,SAAA;AAAA,QACtB,eAAiB,EAAA,KAAA;AAAA,OACnB,CAAA;AACA,MAAA,MAAA;AAAA,KACF;AAAA,IACA,KAAK,OAAS,EAAA;AACZ,MAAe,YAAA,GAAA;AAAA,QACb,IAAM,EAAA,UAAA;AAAA,QACN,eAAA,EAAiB,MAAM,OAAQ,CAAA,MAAA;AAAA,QAC/B,iBAAiB,KAAM,CAAA,UAAA;AAAA,OACzB,CAAA;AACA,MAAA,MAAA;AAAA,KACF;AAAA,IACA,KAAK,IAAM,EAAA;AACT,MAAA,MAAM,WAAc,GAAA,YAAA,CAAA;AACpB,MAAe,YAAA,GAAA;AAAA,QACb,eAAA,EACE,WAAY,CAAA,QAAA,GACZ,KAAM,CAAA,iBAAA,GACN,IACA,KAAM,CAAA,qBAAA,IACL,WAAY,CAAA,gBAAA,GAAmB,CAAI,GAAA,CAAA,CAAA;AAAA,QACtC,iBAAA,EACE,YAAY,QACZ,GAAA,KAAA,CAAM,oBACN,CACC,IAAA,WAAA,CAAY,mBAAmB,GAAM,GAAA,CAAA,CAAA;AAAA,QACxC,iBAAiB,KAAM,CAAA,UAAA;AAAA,QACvB,gBAAgB,KAAM,CAAA,SAAA;AAAA,QACtB,iBAAiB,WAAY,CAAA,iBAAA;AAAA,QAC7B,QAAA,EAAU,KAAM,CAAA,SAAA,GAAY,CAAI,GAAA,CAAA,CAAA;AAAA,OAClC,CAAA;AACA,MAAA,MAAA;AAAA,KACF;AAAA,IACA,KAAK,IAAM,EAAA;AACT,MAAA,MAAM,WAAc,GAAA,YAAA,CAAA;AACpB,MAAe,YAAA,GAAA;AAAA,QACb,eAAA,EACE,YAAY,WACZ,GAAA,CAAA,GACA,MAAM,aACL,IAAA,KAAA,CAAM,0BAA0B,CAAI,GAAA,CAAA,CAAA;AAAA,QACvC,kBAAA,EAAoB,KAAM,CAAA,aAAA,IAAiB,KAAM,CAAA,SAAA;AAAA,QACjD,gBAAgB,KAAM,CAAA,SAAA;AAAA,QACtB,QAAA,EAAU,KAAM,CAAA,SAAA,GAAY,CAAI,GAAA,CAAA,CAAA;AAAA,QAChC,eAAiB,EAAA,WAAA,CAAY,QAAW,GAAA,KAAA,CAAM,iBAAoB,GAAA,CAAA;AAAA,OACpE,CAAA;AACA,MAAA,MAAA;AAAA,KACF;AAAA,IACA,KAAK,cAAgB,EAAA;AACnB,MAAA,MAAM,WAAc,GAAA,YAAA,CAAA;AACpB,MAAe,YAAA,GAAA;AAAA,QACb,eAAiB,EAAA,CAAA;AAAA,QACjB,kBAAA,EAAoB,KAAM,CAAA,aAAA,IAAiB,KAAM,CAAA,SAAA;AAAA,QACjD,gBAAgB,KAAM,CAAA,SAAA;AAAA,QACtB,QAAA,EAAU,KAAM,CAAA,SAAA,GAAY,CAAI,GAAA,CAAA,CAAA;AAAA,QAChC,eAAiB,EAAA,WAAA,CAAY,QAAW,GAAA,KAAA,CAAM,iBAAoB,GAAA,CAAA;AAAA,OACpE,CAAA;AACA,MAAA,MAAA;AAAA,KACF;AAAA,IACA,KAAK,WAAa,EAAA;AAChB,MAAA,MAAM,WAAc,GAAA,YAAA,CAAA;AACpB,MAAe,YAAA,GAAA;AAAA,QACb,iBACE,WAAY,CAAA,WAAA,GAAc,CAAK,IAAA,KAAA,CAAM,0BAA0B,CAAI,GAAA,CAAA,CAAA;AAAA,QACrE,kBAAA,EAAoB,KAAM,CAAA,aAAA,IAAiB,KAAM,CAAA,SAAA;AAAA,QACjD,gBAAgB,KAAM,CAAA,SAAA;AAAA,QACtB,QAAA,EAAU,KAAM,CAAA,SAAA,GAAY,CAAI,GAAA,CAAA,CAAA;AAAA,QAChC,eAAiB,EAAA,WAAA,CAAY,QAAW,GAAA,KAAA,CAAM,iBAAoB,GAAA,CAAA;AAAA,OACpE,CAAA;AACA,MAAA,MAAA;AAAA,KACF;AAAA,IACA,KAAK,iBAAmB,EAAA;AACtB,MAAA,MAAM,WAAc,GAAA,YAAA,CAAA;AACpB,MAAe,YAAA,GAAA;AAAA,QACb,iBACE,WAAY,CAAA,WAAA,GAAc,CAAK,IAAA,KAAA,CAAM,0BAA0B,CAAI,GAAA,CAAA,CAAA;AAAA,QACrE,kBAAA,EAAoB,KAAM,CAAA,aAAA,IAAiB,KAAM,CAAA,SAAA;AAAA,QACjD,gBAAgB,KAAM,CAAA,SAAA;AAAA,QACtB,QAAA,EAAU,KAAM,CAAA,SAAA,GAAY,CAAI,GAAA,CAAA,CAAA;AAAA,QAChC,iBAAiB,WAAY,CAAA,QAAA;AAAA,OAC/B,CAAA;AACA,MAAA,MAAA;AAAA,KACF;AAAA,IACA,KAAK,IAAM,EAAA;AACT,MAAA,MAAM,WAAc,GAAA,YAAA,CAAA;AACpB,MAAe,YAAA,GAAA;AAAA,QACb,eAAA,EACE,YAAY,WACZ,GAAA,CAAA,GACA,MAAM,aACL,IAAA,KAAA,CAAM,0BAA0B,CAAI,GAAA,CAAA,CAAA;AAAA,QACvC,WAAA,EAAa,CAAC,WAAA,EAAa,YAAc,EAAA,KAAA,CAAS,EAChD,CAAC,KAAA,EAAO,MAAQ,EAAA,IAAI,CAAE,CAAA,SAAA;AAAA,UACpB,CAAC,OACC,KAAA,OAAA,KAAY,MAAM,OAAQ,CAAA,WAAA,CAAY,WAAW,CAAE,CAAA,cAAA;AAAA,SAEzD,CAAA;AAAA,QACA,kBAAA,EAAoB,KAAM,CAAA,aAAA,IAAiB,KAAM,CAAA,SAAA;AAAA,QACjD,gBAAgB,KAAM,CAAA,SAAA;AAAA,QACtB,QAAA,EAAU,KAAM,CAAA,SAAA,GAAY,CAAI,GAAA,CAAA,CAAA;AAAA,QAChC,eAAiB,EAAA,CAAA;AAAA,OACnB,CAAA;AACA,MAAA,MAAA;AAAA,KACF;AAEE,GACJ;AAGA,EAAA,OAAO,MAAM,OAAQ,CAAA,MAAM,cAAc,MAAO,CAAA,MAAA,CAAO,YAAY,CAAC,CAAA,CAAA;AACtE;;;;"}
@@ -1,19 +0,0 @@
1
- import { PayloadAction } from '@reduxjs/toolkit';
2
- import { TResponsiveTableStoreProps, TResponsiveTableColumn } from '../types.js';
3
- import { ISelectableState } from './selection/types.js';
4
-
5
- type TResponsiveTableIndexColumns = {
6
- index: number;
7
- column: TResponsiveTableColumn;
8
- }[];
9
- type TResponsiveTableState = Omit<TResponsiveTableStoreProps, 'columns' | 'rows' | 'filters'> & ISelectableState<TResponsiveTableStoreProps['columns'][0], NonNullable<TResponsiveTableStoreProps['filters']>[0], TResponsiveTableStoreProps['rows'][0]> & {
10
- accordionIndexColumns: TResponsiveTableIndexColumns;
11
- isLoading: boolean;
12
- };
13
- type TResponsiveTableSlice = Record<string, TResponsiveTableState>;
14
- type TResponsiveTableAction<P = Record<string, unknown>, T extends string = string, M = never, E = never> = PayloadAction<P & {
15
- tableName: string;
16
- }, T, M, E>;
17
-
18
- export type { TResponsiveTableAction, TResponsiveTableIndexColumns, TResponsiveTableSlice, TResponsiveTableState };
19
- //# sourceMappingURL=types.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.d.ts","sources":[],"sourcesContent":[],"names":[],"mappings":""}
package/dist/types.d.ts DELETED
@@ -1,315 +0,0 @@
1
- import { IconType } from '@meronex/icons';
2
- import React__default from 'react';
3
- import { TApiaFilter, TModify } from '@apia/util';
4
- import { TAccordionCellRenderer } from './renderers/AccordionCell.js';
5
- import { TBasicRow, ISelectableState } from './store/selection/types.js';
6
-
7
- type TColoredElement = {
8
- background?: string;
9
- color?: string;
10
- };
11
- /**
12
- * Se encontró en algunos casos particulares que
13
- * el servidor devuelve Up y Down para referirse
14
- * al orden actual de una columna.
15
- */
16
- type TResponsiveTableSortValue = null | 'A' | 'D' | 'Down' | 'Up';
17
- /**
18
- * Cada vez que se hace click en el botón del
19
- * cabezal de una columna, si la columna tiene
20
- * habilitado el ordenamiento, se emite un
21
- * evento de este tipo, informando cuál columna
22
- * emitió el evento, y cuál es el nuevo sortValue.
23
- */
24
- type TResponsiveTableSortChangeEvent = {
25
- name: string;
26
- column: TResponsiveTableColumn;
27
- columnIndex: number;
28
- /**
29
- * Es el orden que la columna debería tener
30
- * si no hay ningún motivo para evitar que
31
- * la acción de ordenamiento se lleve a cabo.
32
- *
33
- * Es importante notar que el componente
34
- * responsiveTable no realiza ninguna acción
35
- * de ordenamiento por defecto, sino que es
36
- * quien la usa, quien debe realizar las
37
- * acciones correspondientes e informarlo a
38
- * la tabla actualizando los registros y el
39
- * estado de la columna correspondiente.
40
- */
41
- sortValue: TResponsiveTableSortValue;
42
- };
43
- /**
44
- * Cada celda admite un renderer, que recibe
45
- * propiedades personalizadas. Este tipo define
46
- * cuál es la forma de esas propiedades.
47
- */
48
- type TResponsiveTableCellRendererProps<RendererPropsType extends Partial<Record<keyof RendererPropsType, unknown>> = Record<string, unknown>, HTML = HTMLTableCellElement> = {
49
- cell: TResponsiveTableCell<RendererPropsType>;
50
- column: TResponsiveTableColumn;
51
- row: TResponsiveTableRow;
52
- } & React__default.AllHTMLAttributes<HTML>;
53
- type TResponsiveTableCellRenderer<RendererPropsType extends Partial<Record<keyof RendererPropsType, unknown>> = Record<string, unknown>> = React__default.FunctionComponent<TResponsiveTableCellRendererProps<RendererPropsType>>;
54
- /**
55
- * Algunos elementos de la tabla admiten un
56
- * Renderer personalizado. Dichos elementos
57
- * extienden este tipo.
58
- */
59
- type TResponsiveTableWithRendererElement<RendererPropsType extends Partial<Record<keyof RendererPropsType, unknown>> = Record<string, unknown>> = {
60
- /**
61
- * Si se desea, el elemento admite un componente
62
- * personalizado para encargarse del renderizado
63
- * del mismo en el modo responsivo. De esta forma, se puede proveer
64
- * de comportamiento específico a cualquier
65
- * elemento de la tabla.
66
- */
67
- AccordionRenderer?: TAccordionCellRenderer<any>;
68
- /**
69
- * Son las propiedades que se desean pasar al
70
- * componente de renderizado personalizado que
71
- * se haya establecido.
72
- *
73
- * Estas props serán obviadas en caso de que
74
- * no haya componente de renderizado personalizado.
75
- */
76
- rendererProps?: RendererPropsType;
77
- /**
78
- * Si se desea, el elemento admite un componente
79
- * personalizado para encargarse del renderizado
80
- * del mismo. De esta forma, se puede proveer
81
- * de comportamiento específico a cualquier
82
- * elemento de la tabla.
83
- */
84
- Renderer?: TResponsiveTableCellRenderer<any>;
85
- };
86
- type TResponsiveTableCell<RendererPropsType extends Partial<Record<keyof RendererPropsType, unknown>> = Record<string, unknown>> = {
87
- children?: number | string;
88
- } & TResponsiveTableWithRendererElement<RendererPropsType> & Partial<Pick<HTMLTableCellElement, 'ariaLabel' | 'className' | 'colSpan' | 'id' | 'rowSpan' | 'title'>> & TColoredElement;
89
- /**
90
- * Cada celda admite un renderer, que recibe
91
- * propiedades personalizadas. Este tipo define
92
- * cuál es la forma de esas propiedades.
93
- */
94
- type TResponsiveTableRowRendererProps<RendererPropsType extends Partial<Record<keyof RendererPropsType, unknown>> = Record<string, unknown>> = {
95
- row: TResponsiveTableRow<RendererPropsType>;
96
- rowIndex: number;
97
- } & React__default.AllHTMLAttributes<HTMLTableRowElement>;
98
- type TResponsiveTableRowRenderer<RendererPropsType extends Partial<Record<keyof RendererPropsType, unknown>> = Record<string, unknown>> = React__default.FunctionComponent<TResponsiveTableRowRendererProps<RendererPropsType>>;
99
- type TResponsiveTableRow<RendererPropsType extends Partial<Record<keyof RendererPropsType, unknown>> = Record<string, unknown>> = TBasicRow & TColoredElement & {
100
- accordionButtonProps?: {
101
- rightButtons?: React__default.ReactNode;
102
- onUserPressEnter?: (ev: React__default.KeyboardEvent) => unknown;
103
- };
104
- cells: TResponsiveTableCell[];
105
- /**
106
- * Si se pasa en true, la fila se mostrará como un separador
107
- */
108
- separator?: boolean;
109
- initiallySelected?: boolean;
110
- renderer?: TResponsiveTableRowRenderer<RendererPropsType>;
111
- rendererProps?: RendererPropsType;
112
- /**
113
- * Permite pasar propiedades arbitrarias a un row y recuperarlas en los
114
- * eventos de onClick por ejemplo.
115
- */
116
- rowProps?: RendererPropsType;
117
- isHidden?: boolean;
118
- /**
119
- * Los estados de la fila agregan un ícono en la columna
120
- * especial que es la que se muestra a la izquierda y
121
- * contiene, cuando existe, el botón de más información.
122
- */
123
- states?: TResponsiveTableRowState[];
124
- } & Partial<Pick<HTMLTableCellElement, 'ariaLabel' | 'colSpan' | 'className' | 'rowSpan' | 'title'>>;
125
- type TResponsiveTableRowState = {
126
- /**
127
- * Es un className que se agregará al elemento <tr>
128
- */
129
- className?: string;
130
- Icon: IconType;
131
- color?: string;
132
- tooltip: string;
133
- };
134
- type TResponsiveTableColumn = TResponsiveTableWithRendererElement & {
135
- /** Con esta propiedad se puede pasar parámetros opcionales */
136
- additionalData?: Record<string, unknown>;
137
- /**
138
- * Determina si la columna admite ordenamiento.
139
- */
140
- allowSorting?: boolean;
141
- children?: React__default.ReactNode;
142
- /**
143
- * Cuando la columna admite ordenamiento, muestra
144
- * una flecha indicando el orden actual. Esta
145
- * propiedad establece si la flecha apunta hacia
146
- * arriba, abajo, o si la flecha es un guión.
147
- */
148
- currentSorting?: TResponsiveTableSortValue;
149
- /** *
150
- * Valor para decirle al server cuál columna se está ordenando
151
- */
152
- dataSortBy?: string;
153
- hidden?: boolean;
154
- /**
155
- * Normalmente, todas las columnas se van a mostrar
156
- * como renglones en el acordión, cuando este es
157
- * expandido.
158
- *
159
- * Si este flag es pasado en true, la columna
160
- * correspondiente no se va a mostrar en modo
161
- * responsivo.
162
- */
163
- hideFromAccordion?: boolean;
164
- /**
165
- * Elemento id del dom.
166
- */
167
- id?: string;
168
- /**
169
- * Es el texto que se mostrará en el cabezal.
170
- */
171
- label: string;
172
- maxWidth?: number | string;
173
- minWidth?: number | string;
174
- /**
175
- * El nombre de la columna debe ser único, se utiliza
176
- * para realizar la asosiación entre las columnas
177
- * y los filtros, así como con los eventos de orden.
178
- */
179
- name: string;
180
- /**
181
- * Si se pasa required: true, se pone un asterisco
182
- * rojo en el cabezal de la columna para señalar que
183
- * la columna es requerida.
184
- */
185
- required?: boolean;
186
- /**
187
- * Algunas columnas podrán mostrarse mediante un botón
188
- * "mostrar más", para ello deberán ser marcadas con
189
- * esta prop en true.
190
- */
191
- showAsAdditional?: boolean;
192
- /**
193
- * Cuando no se pasa esta propiedad en ninguna columna,
194
- * la aplicación encuentra la primera fila sin celdas
195
- * vacías y la utiliza como título.
196
- *
197
- * En cambio, si al menos una columna tiene este flag
198
- * en true, el título de cada fila del acordión estará
199
- * compuesto por los valores de estas columnas.
200
- */
201
- showInAccordionTitle?: boolean;
202
- /**
203
- * Elemento title de html (El tooltip).
204
- */
205
- title?: string;
206
- width?: number | string;
207
- } & Partial<Pick<HTMLTableCellElement, 'ariaLabel' | 'className' | 'colSpan' | 'rowSpan'>>;
208
- type TResponsiveTableStoreProps = {
209
- /**
210
- * Habla sobre el orden de las filas en función de
211
- * las columnas. Esta propiedad habilita/deshabilita
212
- * el ordenado de las columnas al hacer click en los
213
- * cabezales.
214
- *
215
- * La tabla admite ordenamiento por defecto, a menos
216
- * que esta prop venga en false. En caso de que se
217
- * pase false no importa qué digan las columnas,
218
- * el ordenamiento no estará habilitado.
219
- */
220
- allowSorting?: boolean;
221
- columns: TResponsiveTableColumn[];
222
- filters?: TApiaFilter[];
223
- rows: TResponsiveTableRow<any>[];
224
- /**
225
- * Por defecto, la tabla permitirá seleccionar
226
- * múltiples valores, a menos que esta prop venga
227
- * en false.
228
- */
229
- isMultiple?: boolean;
230
- label?: string;
231
- /**
232
- * Es normal que una tabla tenga paginación y que en cada página haya una
233
- * cantidad distinta de estados. Si se quiere mantener consistencia en el
234
- * tamaño de las páginas, es posible reservar un tamaño para una cantidad
235
- * definida de estados con este parámetro.
236
- */
237
- reserveColumnsForStates?: number;
238
- };
239
- type TResponsiveTableRowsSelectionEvent = {
240
- index: number;
241
- row: TResponsiveTableRow;
242
- }[];
243
- type TResponsiveTableContextProps = TResponsiveTableStoreProps & Pick<ISelectableState, 'allowRowsKeyboardSorting' | 'allowEdition' | 'allowSelection'> & {
244
- /**
245
- * Cuando se actualiza el array de rows de la tabla
246
- * desde las props del ResponsiveTableContext, se
247
- * reinicia el estado de selección de acuerdo a cómo
248
- * viene definido en el prop. **Si esta prop se pasa
249
- * en true**, este comportamiento es deshabilitado.
250
- */
251
- avoidReparseSelectionOnRowChange?: boolean;
252
- children?: React__default.ReactNode;
253
- className?: string;
254
- /**
255
- * Permite redefinir el comportamiento de los breakpoints pasando un índice
256
- * personalizado. Cuando es pasado, deja de prestar atención al breakpoint
257
- * de la pantalla y comienza a prestar atención a este índice.
258
- */
259
- currentBreakPoint?: number;
260
- customLabels?: typeof defaultLabels;
261
- /**
262
- * Se puede utilizar este booleano para que la tabla
263
- * deshabilite las opciones de filtrado y ordenado mientras
264
- * se está ejecutando una acción ajax.
265
- */
266
- isLoading?: boolean;
267
- /**
268
- * La tabla debe tener un nombre único que será usado para
269
- * acceder a las propiedades de la misma en el store. En caso
270
- * de que no se pase ninguno, la tabla lo generará
271
- * automaticamente.
272
- */
273
- name?: string;
274
- onFilterChange?: (ev: TApiaFilter) => void | Promise<boolean>;
275
- onFilterBlur?: (ev: TApiaFilter) => unknown;
276
- onFilterPressEnter?: (ev: TApiaFilter) => unknown;
277
- onChangeSelection?: (ev: TResponsiveTableRowsSelectionEvent) => unknown;
278
- /**
279
- * Este evento será llamado cada vez que el usuario esté
280
- * haciendo foco en la tabla, tenga una selección de
281
- * filas no vacía y presione la tecla Enter.
282
- */
283
- onSelectRows?: (ev: TResponsiveTableRowsSelectionEvent, focusedRowIndex: number) => unknown;
284
- /**
285
- * Es llamado cada vez que el usuario hace click en el botón
286
- * del cabezal de la columna. **Importante:** la tabla no
287
- * realizará ninguna acción de ordenamiento, sino solamente
288
- * avisar de que el usuario desea que las filas sean ordenadas
289
- * por alguna columna en particular.
290
- */
291
- onSortChange?: (ev: TResponsiveTableSortChangeEvent) => unknown;
292
- variant?: string;
293
- };
294
- /**
295
- * Los callbacks del responsiveTable estarán
296
- * disponibles a través de un contexto, de
297
- * forma que cualquier elemento activo que
298
- * desee informar de un evento en particular
299
- * pueda hacerlo en forma sencilla.
300
- */
301
- type TResponsiveTableContext = TModify<Pick<TResponsiveTableContextProps, 'currentBreakPoint' | 'name' | 'onChangeSelection' | 'onFilterBlur' | 'onFilterChange' | 'onFilterPressEnter' | 'onSelectRows' | 'onSortChange' | 'label'>, {
302
- labels: typeof defaultLabels;
303
- name: string;
304
- }>;
305
- declare global {
306
- interface Window {
307
- FINDER_NO_DATA: string;
308
- }
309
- }
310
- declare const defaultLabels: {
311
- noRegisters: string;
312
- };
313
-
314
- export { type TColoredElement, type TResponsiveTableCell, type TResponsiveTableCellRenderer, type TResponsiveTableCellRendererProps, type TResponsiveTableColumn, type TResponsiveTableContext, type TResponsiveTableContextProps, type TResponsiveTableRow, type TResponsiveTableRowRenderer, type TResponsiveTableRowRendererProps, type TResponsiveTableRowState, type TResponsiveTableRowsSelectionEvent, type TResponsiveTableSortChangeEvent, type TResponsiveTableSortValue, type TResponsiveTableStoreProps, type TResponsiveTableWithRendererElement, defaultLabels };
315
- //# sourceMappingURL=types.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.d.ts","sources":[],"sourcesContent":[],"names":[],"mappings":""}
package/dist/types.js DELETED
@@ -1,6 +0,0 @@
1
- const defaultLabels = {
2
- noRegisters: window.FINDER_NO_DATA
3
- };
4
-
5
- export { defaultLabels };
6
- //# sourceMappingURL=types.js.map
package/dist/types.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.js","sources":["../src/types.ts"],"sourcesContent":["import { IconType } from '@meronex/icons';\r\nimport React from 'react';\r\nimport { TApiaFilter, TModify } from '@apia/util';\r\nimport { TAccordionCellRenderer } from './renderers/AccordionCell';\r\nimport { ISelectableState, TBasicRow } from './store/selection/types';\r\n\r\nexport type TColoredElement = {\r\n background?: string;\r\n color?: string;\r\n};\r\n\r\n/**\r\n * Se encontró en algunos casos particulares que\r\n * el servidor devuelve Up y Down para referirse\r\n * al orden actual de una columna.\r\n */\r\nexport type TResponsiveTableSortValue = null | 'A' | 'D' | 'Down' | 'Up';\r\n\r\n/**\r\n * Cada vez que se hace click en el botón del\r\n * cabezal de una columna, si la columna tiene\r\n * habilitado el ordenamiento, se emite un\r\n * evento de este tipo, informando cuál columna\r\n * emitió el evento, y cuál es el nuevo sortValue.\r\n */\r\nexport type TResponsiveTableSortChangeEvent = {\r\n name: string;\r\n column: TResponsiveTableColumn;\r\n columnIndex: number;\r\n /**\r\n * Es el orden que la columna debería tener\r\n * si no hay ningún motivo para evitar que\r\n * la acción de ordenamiento se lleve a cabo.\r\n *\r\n * Es importante notar que el componente\r\n * responsiveTable no realiza ninguna acción\r\n * de ordenamiento por defecto, sino que es\r\n * quien la usa, quien debe realizar las\r\n * acciones correspondientes e informarlo a\r\n * la tabla actualizando los registros y el\r\n * estado de la columna correspondiente.\r\n */\r\n sortValue: TResponsiveTableSortValue;\r\n};\r\n\r\n/**\r\n * Cada celda admite un renderer, que recibe\r\n * propiedades personalizadas. Este tipo define\r\n * cuál es la forma de esas propiedades.\r\n */\r\nexport type TResponsiveTableCellRendererProps<\r\n RendererPropsType extends Partial<\r\n Record<keyof RendererPropsType, unknown>\r\n > = Record<string, unknown>,\r\n HTML = HTMLTableCellElement,\r\n> = {\r\n cell: TResponsiveTableCell<RendererPropsType>;\r\n column: TResponsiveTableColumn;\r\n row: TResponsiveTableRow;\r\n} & React.AllHTMLAttributes<HTML>;\r\n\r\nexport type TResponsiveTableCellRenderer<\r\n RendererPropsType extends Partial<\r\n Record<keyof RendererPropsType, unknown>\r\n > = Record<string, unknown>,\r\n> = React.FunctionComponent<\r\n TResponsiveTableCellRendererProps<RendererPropsType>\r\n>;\r\n\r\n/**\r\n * Algunos elementos de la tabla admiten un\r\n * Renderer personalizado. Dichos elementos\r\n * extienden este tipo.\r\n */\r\nexport type TResponsiveTableWithRendererElement<\r\n RendererPropsType extends Partial<\r\n Record<keyof RendererPropsType, unknown>\r\n > = Record<string, unknown>,\r\n> = {\r\n /**\r\n * Si se desea, el elemento admite un componente\r\n * personalizado para encargarse del renderizado\r\n * del mismo en el modo responsivo. De esta forma, se puede proveer\r\n * de comportamiento específico a cualquier\r\n * elemento de la tabla.\r\n */\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n AccordionRenderer?: TAccordionCellRenderer<any>;\r\n /**\r\n * Son las propiedades que se desean pasar al\r\n * componente de renderizado personalizado que\r\n * se haya establecido.\r\n *\r\n * Estas props serán obviadas en caso de que\r\n * no haya componente de renderizado personalizado.\r\n */\r\n rendererProps?: RendererPropsType;\r\n /**\r\n * Si se desea, el elemento admite un componente\r\n * personalizado para encargarse del renderizado\r\n * del mismo. De esta forma, se puede proveer\r\n * de comportamiento específico a cualquier\r\n * elemento de la tabla.\r\n */\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n Renderer?: TResponsiveTableCellRenderer<any>;\r\n};\r\n\r\nexport type TResponsiveTableCell<\r\n RendererPropsType extends Partial<\r\n Record<keyof RendererPropsType, unknown>\r\n > = Record<string, unknown>,\r\n> = {\r\n children?: number | string;\r\n} & TResponsiveTableWithRendererElement<RendererPropsType> &\r\n Partial<\r\n Pick<\r\n HTMLTableCellElement,\r\n 'ariaLabel' | 'className' | 'colSpan' | 'id' | 'rowSpan' | 'title'\r\n >\r\n > &\r\n TColoredElement;\r\n\r\n/**\r\n * Cada celda admite un renderer, que recibe\r\n * propiedades personalizadas. Este tipo define\r\n * cuál es la forma de esas propiedades.\r\n */\r\nexport type TResponsiveTableRowRendererProps<\r\n RendererPropsType extends Partial<\r\n Record<keyof RendererPropsType, unknown>\r\n > = Record<string, unknown>,\r\n> = {\r\n row: TResponsiveTableRow<RendererPropsType>;\r\n rowIndex: number;\r\n} & React.AllHTMLAttributes<HTMLTableRowElement>;\r\n\r\nexport type TResponsiveTableRowRenderer<\r\n RendererPropsType extends Partial<\r\n Record<keyof RendererPropsType, unknown>\r\n > = Record<string, unknown>,\r\n> = React.FunctionComponent<\r\n TResponsiveTableRowRendererProps<RendererPropsType>\r\n>;\r\n\r\nexport type TResponsiveTableRow<\r\n RendererPropsType extends Partial<\r\n Record<keyof RendererPropsType, unknown>\r\n > = Record<string, unknown>,\r\n> = TBasicRow &\r\n TColoredElement & {\r\n accordionButtonProps?: {\r\n rightButtons?: React.ReactNode;\r\n onUserPressEnter?: (ev: React.KeyboardEvent) => unknown;\r\n };\r\n cells: TResponsiveTableCell[];\r\n /**\r\n * Si se pasa en true, la fila se mostrará como un separador\r\n */\r\n separator?: boolean;\r\n initiallySelected?: boolean;\r\n\r\n renderer?: TResponsiveTableRowRenderer<RendererPropsType>;\r\n rendererProps?: RendererPropsType;\r\n /**\r\n * Permite pasar propiedades arbitrarias a un row y recuperarlas en los\r\n * eventos de onClick por ejemplo.\r\n */\r\n rowProps?: RendererPropsType;\r\n isHidden?: boolean;\r\n /**\r\n * Los estados de la fila agregan un ícono en la columna\r\n * especial que es la que se muestra a la izquierda y\r\n * contiene, cuando existe, el botón de más información.\r\n */\r\n states?: TResponsiveTableRowState[];\r\n } & Partial<\r\n Pick<\r\n HTMLTableCellElement,\r\n 'ariaLabel' | 'colSpan' | 'className' | 'rowSpan' | 'title'\r\n >\r\n >;\r\n\r\nexport type TResponsiveTableRowState = {\r\n /**\r\n * Es un className que se agregará al elemento <tr>\r\n */\r\n className?: string;\r\n Icon: IconType;\r\n color?: string;\r\n tooltip: string;\r\n};\r\n\r\nexport type TResponsiveTableColumn = TResponsiveTableWithRendererElement & {\r\n /** Con esta propiedad se puede pasar parámetros opcionales */\r\n additionalData?: Record<string, unknown>;\r\n /**\r\n * Determina si la columna admite ordenamiento.\r\n */\r\n allowSorting?: boolean;\r\n children?: React.ReactNode;\r\n /**\r\n * Cuando la columna admite ordenamiento, muestra\r\n * una flecha indicando el orden actual. Esta\r\n * propiedad establece si la flecha apunta hacia\r\n * arriba, abajo, o si la flecha es un guión.\r\n */\r\n currentSorting?: TResponsiveTableSortValue;\r\n /** *\r\n * Valor para decirle al server cuál columna se está ordenando\r\n */\r\n dataSortBy?: string;\r\n hidden?: boolean;\r\n /**\r\n * Normalmente, todas las columnas se van a mostrar\r\n * como renglones en el acordión, cuando este es\r\n * expandido.\r\n *\r\n * Si este flag es pasado en true, la columna\r\n * correspondiente no se va a mostrar en modo\r\n * responsivo.\r\n */\r\n hideFromAccordion?: boolean;\r\n /**\r\n * Elemento id del dom.\r\n */\r\n id?: string;\r\n /**\r\n * Es el texto que se mostrará en el cabezal.\r\n */\r\n label: string;\r\n maxWidth?: number | string;\r\n minWidth?: number | string;\r\n /**\r\n * El nombre de la columna debe ser único, se utiliza\r\n * para realizar la asosiación entre las columnas\r\n * y los filtros, así como con los eventos de orden.\r\n */\r\n name: string;\r\n /**\r\n * Si se pasa required: true, se pone un asterisco\r\n * rojo en el cabezal de la columna para señalar que\r\n * la columna es requerida.\r\n */\r\n required?: boolean;\r\n /**\r\n * Algunas columnas podrán mostrarse mediante un botón\r\n * \"mostrar más\", para ello deberán ser marcadas con\r\n * esta prop en true.\r\n */\r\n showAsAdditional?: boolean;\r\n /**\r\n * Cuando no se pasa esta propiedad en ninguna columna,\r\n * la aplicación encuentra la primera fila sin celdas\r\n * vacías y la utiliza como título.\r\n *\r\n * En cambio, si al menos una columna tiene este flag\r\n * en true, el título de cada fila del acordión estará\r\n * compuesto por los valores de estas columnas.\r\n */\r\n showInAccordionTitle?: boolean;\r\n /**\r\n * Elemento title de html (El tooltip).\r\n */\r\n title?: string;\r\n width?: number | string;\r\n} & Partial<\r\n Pick<\r\n HTMLTableCellElement,\r\n 'ariaLabel' | 'className' | 'colSpan' | 'rowSpan'\r\n >\r\n >;\r\n\r\nexport type TResponsiveTableStoreProps = {\r\n /**\r\n * Habla sobre el orden de las filas en función de\r\n * las columnas. Esta propiedad habilita/deshabilita\r\n * el ordenado de las columnas al hacer click en los\r\n * cabezales.\r\n *\r\n * La tabla admite ordenamiento por defecto, a menos\r\n * que esta prop venga en false. En caso de que se\r\n * pase false no importa qué digan las columnas,\r\n * el ordenamiento no estará habilitado.\r\n */\r\n allowSorting?: boolean;\r\n\r\n // Composition\r\n columns: TResponsiveTableColumn[];\r\n filters?: TApiaFilter[];\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n rows: TResponsiveTableRow<any>[];\r\n\r\n /**\r\n * Por defecto, la tabla permitirá seleccionar\r\n * múltiples valores, a menos que esta prop venga\r\n * en false.\r\n */\r\n isMultiple?: boolean;\r\n\r\n label?: string;\r\n\r\n /**\r\n * Es normal que una tabla tenga paginación y que en cada página haya una\r\n * cantidad distinta de estados. Si se quiere mantener consistencia en el\r\n * tamaño de las páginas, es posible reservar un tamaño para una cantidad\r\n * definida de estados con este parámetro.\r\n */\r\n reserveColumnsForStates?: number;\r\n};\r\n\r\nexport type TResponsiveTableRowsSelectionEvent = {\r\n index: number;\r\n row: TResponsiveTableRow;\r\n}[];\r\n\r\nexport type TResponsiveTableContextProps = TResponsiveTableStoreProps &\r\n Pick<\r\n ISelectableState,\r\n 'allowRowsKeyboardSorting' | 'allowEdition' | 'allowSelection'\r\n > & {\r\n /**\r\n * Cuando se actualiza el array de rows de la tabla\r\n * desde las props del ResponsiveTableContext, se\r\n * reinicia el estado de selección de acuerdo a cómo\r\n * viene definido en el prop. **Si esta prop se pasa\r\n * en true**, este comportamiento es deshabilitado.\r\n */\r\n avoidReparseSelectionOnRowChange?: boolean;\r\n children?: React.ReactNode;\r\n className?: string;\r\n /**\r\n * Permite redefinir el comportamiento de los breakpoints pasando un índice\r\n * personalizado. Cuando es pasado, deja de prestar atención al breakpoint\r\n * de la pantalla y comienza a prestar atención a este índice.\r\n */\r\n currentBreakPoint?: number;\r\n customLabels?: typeof defaultLabels;\r\n /**\r\n * Se puede utilizar este booleano para que la tabla\r\n * deshabilite las opciones de filtrado y ordenado mientras\r\n * se está ejecutando una acción ajax.\r\n */\r\n isLoading?: boolean;\r\n /**\r\n * La tabla debe tener un nombre único que será usado para\r\n * acceder a las propiedades de la misma en el store. En caso\r\n * de que no se pase ninguno, la tabla lo generará\r\n * automaticamente.\r\n */\r\n name?: string;\r\n\r\n // Filtering\r\n onFilterChange?: (ev: TApiaFilter) => void | Promise<boolean>;\r\n onFilterBlur?: (ev: TApiaFilter) => unknown;\r\n onFilterPressEnter?: (ev: TApiaFilter) => unknown;\r\n\r\n // Selection\r\n onChangeSelection?: (ev: TResponsiveTableRowsSelectionEvent) => unknown;\r\n /**\r\n * Este evento será llamado cada vez que el usuario esté\r\n * haciendo foco en la tabla, tenga una selección de\r\n * filas no vacía y presione la tecla Enter.\r\n */\r\n onSelectRows?: (\r\n ev: TResponsiveTableRowsSelectionEvent,\r\n focusedRowIndex: number,\r\n ) => unknown;\r\n\r\n // Sorting\r\n /**\r\n * Es llamado cada vez que el usuario hace click en el botón\r\n * del cabezal de la columna. **Importante:** la tabla no\r\n * realizará ninguna acción de ordenamiento, sino solamente\r\n * avisar de que el usuario desea que las filas sean ordenadas\r\n * por alguna columna en particular.\r\n */\r\n onSortChange?: (ev: TResponsiveTableSortChangeEvent) => unknown;\r\n variant?: string;\r\n };\r\n\r\n/**\r\n * Los callbacks del responsiveTable estarán\r\n * disponibles a través de un contexto, de\r\n * forma que cualquier elemento activo que\r\n * desee informar de un evento en particular\r\n * pueda hacerlo en forma sencilla.\r\n */\r\nexport type TResponsiveTableContext = TModify<\r\n Pick<\r\n TResponsiveTableContextProps,\r\n | 'currentBreakPoint'\r\n | 'name'\r\n | 'onChangeSelection'\r\n | 'onFilterBlur'\r\n | 'onFilterChange'\r\n | 'onFilterPressEnter'\r\n | 'onSelectRows'\r\n | 'onSortChange'\r\n | 'label'\r\n >,\r\n { labels: typeof defaultLabels; name: string }\r\n>;\r\n\r\ndeclare global {\r\n interface Window {\r\n FINDER_NO_DATA: string;\r\n }\r\n}\r\n\r\nexport const defaultLabels = {\r\n noRegisters: window.FINDER_NO_DATA,\r\n};\r\n"],"names":[],"mappings":"AA0ZO,MAAM,aAAgB,GAAA;AAAA,EAC3B,aAAa,MAAO,CAAA,cAAA;AACtB;;;;"}