@apia/table 1.0.4 → 2.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (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.d.ts CHANGED
@@ -1,628 +1,25 @@
1
- import * as React from 'react';
2
- import React__default, { FunctionComponent } from 'react';
3
- import { BoxProps } from '@apia/theme';
4
- import { IconType } from '@meronex/icons';
5
- import * as _apia_util from '@apia/util';
6
- import { TApiaFilter, TModify } from '@apia/util';
7
- import * as _reduxjs_toolkit from '@reduxjs/toolkit';
8
- import { PayloadAction } from '@reduxjs/toolkit';
9
- import * as immer_dist_internal from 'immer/dist/internal';
10
- import * as react_redux from 'react-redux';
11
- import * as _reduxjs_toolkit_dist_configureStore from '@reduxjs/toolkit/dist/configureStore';
12
- import * as redux_thunk from 'redux-thunk';
13
- import * as redux from 'redux';
14
-
15
- type TAccordionCellRendererProps<CellProps = Record<string, unknown>> = {
16
- cell: TResponsiveTableCell<CellProps>;
17
- column: TResponsiveTableColumn;
18
- columnIndex: number;
19
- row: TResponsiveTableRow;
20
- rowIndex: number;
21
- };
22
- type TAccordionCellRenderer<CellProps = Record<string, unknown>> = FunctionComponent<TAccordionCellRendererProps<CellProps>>;
23
- declare const AccordionCell: TAccordionCellRenderer<Record<string, unknown>>;
24
-
25
- type TColoredElement = {
26
- background?: string;
27
- color?: string;
28
- };
29
- /**
30
- * Se encontró en algunos casos particulares que
31
- * el servidor devuelve Up y Down para referirse
32
- * al orden actual de una columna.
33
- */
34
- type TResponsiveTableSortValue = null | 'A' | 'D' | 'Down' | 'Up';
35
- /**
36
- * Cada vez que se hace click en el botón del
37
- * cabezal de una columna, si la columna tiene
38
- * habilitado el ordenamiento, se emite un
39
- * evento de este tipo, informando cuál columna
40
- * emitió el evento, y cuál es el nuevo sortValue.
41
- */
42
- type TResponsiveTableSortChangeEvent = {
43
- name: string;
44
- column: TResponsiveTableColumn;
45
- columnIndex: number;
46
- /**
47
- * Es el orden que la columna debería tener
48
- * si no hay ningún motivo para evitar que
49
- * la acción de ordenamiento se lleve a cabo.
50
- *
51
- * Es importante notar que el componente
52
- * responsiveTable no realiza ninguna acción
53
- * de ordenamiento por defecto, sino que es
54
- * quien la usa, quien debe realizar las
55
- * acciones correspondientes e informarlo a
56
- * la tabla actualizando los registros y el
57
- * estado de la columna correspondiente.
58
- */
59
- sortValue: TResponsiveTableSortValue;
60
- };
61
- /**
62
- * Cada celda admite un renderer, que recibe
63
- * propiedades personalizadas. Este tipo define
64
- * cuál es la forma de esas propiedades.
65
- */
66
- type TResponsiveTableCellRendererProps<RendererPropsType extends Partial<Record<keyof RendererPropsType, unknown>> = Record<string, unknown>, HTML = HTMLTableCellElement> = {
67
- cell: TResponsiveTableCell<RendererPropsType>;
68
- column: TResponsiveTableColumn;
69
- row: TResponsiveTableRow;
70
- } & React__default.AllHTMLAttributes<HTML>;
71
- type TResponsiveTableCellRenderer<RendererPropsType extends Partial<Record<keyof RendererPropsType, unknown>> = Record<string, unknown>> = React__default.FunctionComponent<TResponsiveTableCellRendererProps<RendererPropsType>>;
72
- /**
73
- * Algunos elementos de la tabla admiten un
74
- * Renderer personalizado. Dichos elementos
75
- * extienden este tipo.
76
- */
77
- type TResponsiveTableWithRendererElement<RendererPropsType extends Partial<Record<keyof RendererPropsType, unknown>> = Record<string, unknown>> = {
78
- /**
79
- * Si se desea, el elemento admite un componente
80
- * personalizado para encargarse del renderizado
81
- * del mismo en el modo responsivo. De esta forma, se puede proveer
82
- * de comportamiento específico a cualquier
83
- * elemento de la tabla.
84
- */
85
- AccordionRenderer?: TAccordionCellRenderer<any>;
86
- /**
87
- * Son las propiedades que se desean pasar al
88
- * componente de renderizado personalizado que
89
- * se haya establecido.
90
- *
91
- * Estas props serán obviadas en caso de que
92
- * no haya componente de renderizado personalizado.
93
- */
94
- rendererProps?: RendererPropsType;
95
- /**
96
- * Si se desea, el elemento admite un componente
97
- * personalizado para encargarse del renderizado
98
- * del mismo. De esta forma, se puede proveer
99
- * de comportamiento específico a cualquier
100
- * elemento de la tabla.
101
- */
102
- Renderer?: TResponsiveTableCellRenderer<any>;
103
- };
104
- type TResponsiveTableCell<RendererPropsType extends Partial<Record<keyof RendererPropsType, unknown>> = Record<string, unknown>> = {
105
- children?: number | string;
106
- } & TResponsiveTableWithRendererElement<RendererPropsType> & Partial<Pick<HTMLTableCellElement, 'ariaLabel' | 'className' | 'colSpan' | 'id' | 'rowSpan' | 'title'>> & TColoredElement;
107
- /**
108
- * Cada celda admite un renderer, que recibe
109
- * propiedades personalizadas. Este tipo define
110
- * cuál es la forma de esas propiedades.
111
- */
112
- type TResponsiveTableRowRendererProps<RendererPropsType extends Partial<Record<keyof RendererPropsType, unknown>> = Record<string, unknown>> = {
113
- row: TResponsiveTableRow<RendererPropsType>;
114
- rowIndex: number;
115
- } & React__default.AllHTMLAttributes<HTMLTableRowElement>;
116
- type TResponsiveTableRowRenderer<RendererPropsType extends Partial<Record<keyof RendererPropsType, unknown>> = Record<string, unknown>> = React__default.FunctionComponent<TResponsiveTableRowRendererProps<RendererPropsType>>;
117
- type TResponsiveTableRow<RendererPropsType extends Partial<Record<keyof RendererPropsType, unknown>> = Record<string, unknown>> = TBasicRow & TColoredElement & {
118
- accordionButtonProps?: {
119
- rightButtons?: React__default.ReactNode;
120
- onUserPressEnter?: (ev: React__default.KeyboardEvent) => unknown;
121
- };
122
- cells: TResponsiveTableCell[];
123
- /**
124
- * Si se pasa en true, la fila se mostrará como un separador
125
- */
126
- separator?: boolean;
127
- initiallySelected?: boolean;
128
- renderer?: TResponsiveTableRowRenderer<RendererPropsType>;
129
- rendererProps?: RendererPropsType;
130
- /**
131
- * Permite pasar propiedades arbitrarias a un row y recuperarlas en los
132
- * eventos de onClick por ejemplo.
133
- */
134
- rowProps?: RendererPropsType;
135
- isHidden?: boolean;
136
- /**
137
- * Los estados de la fila agregan un ícono en la columna
138
- * especial que es la que se muestra a la izquierda y
139
- * contiene, cuando existe, el botón de más información.
140
- */
141
- states?: TResponsiveTableRowState[];
142
- } & Partial<Pick<HTMLTableCellElement, 'ariaLabel' | 'colSpan' | 'className' | 'rowSpan' | 'title'>>;
143
- type TResponsiveTableRowState = {
144
- /**
145
- * Es un className que se agregará al elemento <tr>
146
- */
147
- className?: string;
148
- Icon: IconType;
149
- color?: string;
150
- tooltip: string;
151
- };
152
- type TResponsiveTableColumn = TResponsiveTableWithRendererElement & {
153
- /** Con esta propiedad se puede pasar parámetros opcionales */
154
- additionalData?: Record<string, unknown>;
155
- /**
156
- * Determina si la columna admite ordenamiento.
157
- */
158
- allowSorting?: boolean;
159
- children?: React__default.ReactNode;
160
- /**
161
- * Cuando la columna admite ordenamiento, muestra
162
- * una flecha indicando el orden actual. Esta
163
- * propiedad establece si la flecha apunta hacia
164
- * arriba, abajo, o si la flecha es un guión.
165
- */
166
- currentSorting?: TResponsiveTableSortValue;
167
- /** *
168
- * Valor para decirle al server cuál columna se está ordenando
169
- */
170
- dataSortBy?: string;
171
- hidden?: boolean;
172
- /**
173
- * Normalmente, todas las columnas se van a mostrar
174
- * como renglones en el acordión, cuando este es
175
- * expandido.
176
- *
177
- * Si este flag es pasado en true, la columna
178
- * correspondiente no se va a mostrar en modo
179
- * responsivo.
180
- */
181
- hideFromAccordion?: boolean;
182
- /**
183
- * Elemento id del dom.
184
- */
185
- id?: string;
186
- /**
187
- * Es el texto que se mostrará en el cabezal.
188
- */
189
- label: string;
190
- maxWidth?: number | string;
191
- minWidth?: number | string;
192
- /**
193
- * El nombre de la columna debe ser único, se utiliza
194
- * para realizar la asosiación entre las columnas
195
- * y los filtros, así como con los eventos de orden.
196
- */
197
- name: string;
198
- /**
199
- * Si se pasa required: true, se pone un asterisco
200
- * rojo en el cabezal de la columna para señalar que
201
- * la columna es requerida.
202
- */
203
- required?: boolean;
204
- /**
205
- * Algunas columnas podrán mostrarse mediante un botón
206
- * "mostrar más", para ello deberán ser marcadas con
207
- * esta prop en true.
208
- */
209
- showAsAdditional?: boolean;
210
- /**
211
- * Cuando no se pasa esta propiedad en ninguna columna,
212
- * la aplicación encuentra la primera fila sin celdas
213
- * vacías y la utiliza como título.
214
- *
215
- * En cambio, si al menos una columna tiene este flag
216
- * en true, el título de cada fila del acordión estará
217
- * compuesto por los valores de estas columnas.
218
- */
219
- showInAccordionTitle?: boolean;
220
- /**
221
- * Elemento title de html (El tooltip).
222
- */
223
- title?: string;
224
- width?: number | string;
225
- } & Partial<Pick<HTMLTableCellElement, 'ariaLabel' | 'className' | 'colSpan' | 'rowSpan'>>;
226
- type TResponsiveTableStoreProps = {
227
- /**
228
- * Habla sobre el orden de las filas en función de
229
- * las columnas. Esta propiedad habilita/deshabilita
230
- * el ordenado de las columnas al hacer click en los
231
- * cabezales.
232
- *
233
- * La tabla admite ordenamiento por defecto, a menos
234
- * que esta prop venga en false. En caso de que se
235
- * pase false no importa qué digan las columnas,
236
- * el ordenamiento no estará habilitado.
237
- */
238
- allowSorting?: boolean;
239
- columns: TResponsiveTableColumn[];
240
- filters?: TApiaFilter[];
241
- rows: TResponsiveTableRow<any>[];
242
- /**
243
- * Por defecto, la tabla permitirá seleccionar
244
- * múltiples valores, a menos que esta prop venga
245
- * en false.
246
- */
247
- isMultiple?: boolean;
248
- label?: string;
249
- /**
250
- * Es normal que una tabla tenga paginación y que en cada página haya una
251
- * cantidad distinta de estados. Si se quiere mantener consistencia en el
252
- * tamaño de las páginas, es posible reservar un tamaño para una cantidad
253
- * definida de estados con este parámetro.
254
- */
255
- reserveColumnsForStates?: number;
256
- };
257
- type TResponsiveTableRowsSelectionEvent = {
258
- index: number;
259
- row: TResponsiveTableRow;
260
- }[];
261
- type TResponsiveTableContextProps = TResponsiveTableStoreProps & Pick<ISelectableState, 'allowRowsKeyboardSorting' | 'allowEdition' | 'allowSelection'> & {
262
- /**
263
- * Cuando se actualiza el array de rows de la tabla
264
- * desde las props del ResponsiveTableContext, se
265
- * reinicia el estado de selección de acuerdo a cómo
266
- * viene definido en el prop. **Si esta prop se pasa
267
- * en true**, este comportamiento es deshabilitado.
268
- */
269
- avoidReparseSelectionOnRowChange?: boolean;
270
- children?: React__default.ReactNode;
271
- className?: string;
272
- /**
273
- * Permite redefinir el comportamiento de los breakpoints pasando un índice
274
- * personalizado. Cuando es pasado, deja de prestar atención al breakpoint
275
- * de la pantalla y comienza a prestar atención a este índice.
276
- */
277
- currentBreakPoint?: number;
278
- customLabels?: typeof defaultLabels;
279
- /**
280
- * Se puede utilizar este booleano para que la tabla
281
- * deshabilite las opciones de filtrado y ordenado mientras
282
- * se está ejecutando una acción ajax.
283
- */
284
- isLoading?: boolean;
285
- /**
286
- * La tabla debe tener un nombre único que será usado para
287
- * acceder a las propiedades de la misma en el store. En caso
288
- * de que no se pase ninguno, la tabla lo generará
289
- * automaticamente.
290
- */
291
- name?: string;
292
- onFilterChange?: (ev: TApiaFilter) => void | Promise<boolean>;
293
- onFilterBlur?: (ev: TApiaFilter) => unknown;
294
- onFilterPressEnter?: (ev: TApiaFilter) => unknown;
295
- onChangeSelection?: (ev: TResponsiveTableRowsSelectionEvent) => unknown;
296
- /**
297
- * Este evento será llamado cada vez que el usuario esté
298
- * haciendo foco en la tabla, tenga una selección de
299
- * filas no vacía y presione la tecla Enter.
300
- */
301
- onSelectRows?: (ev: TResponsiveTableRowsSelectionEvent, focusedRowIndex: number) => unknown;
302
- /**
303
- * Es llamado cada vez que el usuario hace click en el botón
304
- * del cabezal de la columna. **Importante:** la tabla no
305
- * realizará ninguna acción de ordenamiento, sino solamente
306
- * avisar de que el usuario desea que las filas sean ordenadas
307
- * por alguna columna en particular.
308
- */
309
- onSortChange?: (ev: TResponsiveTableSortChangeEvent) => unknown;
310
- variant?: string;
311
- };
312
- /**
313
- * Los callbacks del responsiveTable estarán
314
- * disponibles a través de un contexto, de
315
- * forma que cualquier elemento activo que
316
- * desee informar de un evento en particular
317
- * pueda hacerlo en forma sencilla.
318
- */
319
- type TResponsiveTableContext = TModify<Pick<TResponsiveTableContextProps, 'currentBreakPoint' | 'name' | 'onChangeSelection' | 'onFilterBlur' | 'onFilterChange' | 'onFilterPressEnter' | 'onSelectRows' | 'onSortChange' | 'label'>, {
320
- labels: typeof defaultLabels;
321
- name: string;
322
- }>;
323
- declare global {
324
- interface Window {
325
- FINDER_NO_DATA: string;
326
- }
327
- }
328
- declare const defaultLabels: {
329
- noRegisters: string;
330
- };
331
-
332
- type TResponsiveTableIndexColumns = {
333
- index: number;
334
- column: TResponsiveTableColumn;
335
- }[];
336
- type TResponsiveTableState = Omit<TResponsiveTableStoreProps, 'columns' | 'rows' | 'filters'> & ISelectableState<TResponsiveTableStoreProps['columns'][0], NonNullable<TResponsiveTableStoreProps['filters']>[0], TResponsiveTableStoreProps['rows'][0]> & {
337
- accordionIndexColumns: TResponsiveTableIndexColumns;
338
- isLoading: boolean;
339
- };
340
- type TResponsiveTableSlice = Record<string, TResponsiveTableState>;
341
- type TResponsiveTableAction<P = Record<string, unknown>, T extends string = string, M = never, E = never> = PayloadAction<P & {
342
- tableName: string;
343
- }, T, M, E>;
344
-
345
- /**
346
- * Representa la intención de establecer foco en
347
- * un elemento de la grilla y alterar el estado
348
- * de la misma.
349
- */
350
- interface INewFocus {
351
- altKey?: boolean;
352
- ctrlKey?: boolean;
353
- isFocused?: boolean;
354
- newFocusedRow?: number;
355
- newFocusedColumn?: number;
356
- shouldSelectNewFocused?: boolean;
357
- shiftKey?: boolean;
358
- }
359
- /**
360
- * Contiene las partes importantes para el handler
361
- * de un evento de teclado.
362
- */
363
- type THandleKey = {
364
- ev: React__default.KeyboardEvent;
365
- };
366
- /**
367
- * Son los elementos mínimos que toda columna debe
368
- * tener para ser parte de esta grilla.
369
- */
370
- interface IBasicColumn {
371
- currentSorting?: TResponsiveTableSortValue;
372
- name: string;
373
- }
374
- /**
375
- * Son los elementos mínimos que todo filtro debe
376
- * tener para ser parte de esta grilla.
377
- */
378
- interface IBasicFilter {
379
- /**
380
- * LEGACY: El nombre de la columna a la que
381
- * pertenece este filtro. Puede no tener columna
382
- * y entonces será tratado como filtro adicional.
383
- *
384
- * Me gustaría nombrarlo columnName pero se
385
- * estableció así desde el principio del desarrollo
386
- * y está impregnado en todo el desarrollo, haciendo
387
- * imposible cambiar su nombre con sencillez.
388
- */
389
- column?: string;
390
- showAsAdditional?: boolean;
391
- }
392
- type TBasicRow = {
393
- /**
394
- * Si esta propiedad es pasada en true, esta fila
395
- * no podrá ser seleccionada.
396
- */
397
- forbidSelection?: boolean;
398
- /**
399
- * El id es obligatorio para los rows, ya que de
400
- * esta forma se logra mejorar el performance.
401
- */
402
- id: string;
403
- /**
404
- * Si esta propiedad es pasada como true, esta fila
405
- * será bloqueada.
406
- */
407
- isLocked?: boolean;
408
- };
409
- /**
410
- * Esta interfaz representa el estado de selección
411
- * en una grilla. Los tipos ColumnType y RowType
412
- * son opcionales y solamente se ofrecen como una
413
- * utilidad para la implementación.
414
- */
415
- interface ISelectableState<ColumnType extends IBasicColumn = IBasicColumn, FilterType extends IBasicFilter = IBasicFilter, RowType extends TBasicRow | string = TBasicRow | string> {
416
- /**
417
- * IMPORTANTE: Por defecto la grilla no permitirá edición,
418
- * para permitirlo, se debe especificar allowEdition: true.
419
- */
420
- allowEdition?: boolean;
421
- /**
422
- * Si esta propiedad se pasa en true, es posible
423
- * reordenar las filas de la tabla. Para ello es
424
- * necesario estar en foco en la tabla y presionar
425
- * ctrl+m para mover una fila de lugar. Se presiona
426
- * Enter o Escape para salir del modo orden.
427
- */
428
- allowRowsKeyboardSorting?: boolean;
429
- /**
430
- * Por defecto, la grilla permitirá la selección de filas,
431
- * para evitar este comportamiento se debe pasar
432
- * allowSelection: false.
433
- */
434
- allowSelection?: boolean;
435
- /**
436
- * Es importante conocer las columnas para no hacer foco
437
- * en una columna que no exista.
438
- */
439
- columns: ColumnType[];
440
- draggingRow?: number;
441
- /**
442
- * Es importante conocer cuáles filas están expandidas de
443
- * modo que al filtrar las filas no seleccionables, las
444
- * expandidas no se van a tomar en cuenta.
445
- */
446
- expandedRows: number[];
447
- /**
448
- * La grilla debe conocer los filtros que se aplican a ella
449
- * para saber si existe fila de filtros o no.
450
- */
451
- filters: FilterType[];
452
- focusedRow: number;
453
- focusedColumn: number;
454
- hasNonAdditionalFilters: boolean;
455
- /**
456
- * Hay grillas que admiten edición, con este booleano
457
- * es posible evitar que el keyHandler altere el
458
- * estado de la selección cuando la grilla está en ese
459
- * modo.
460
- */
461
- isEditionMode?: boolean;
462
- /**
463
- * Para efectuar las acciones de foco, es necesario saber
464
- * si la grilla tiene el foco activo, de modo de evitar
465
- * que el foco se dispare cuando se está trabajando con
466
- * otros controles.
467
- */
468
- isFocused: boolean;
469
- /**
470
- * Indica si se pueden seleccionar muchas filas o una
471
- * sola.
472
- */
473
- isMultiple?: boolean;
474
- /**
475
- * Es importante conocer las filas para no hacer foco
476
- * en una fila que no exista.
477
- */
478
- nonAdditionalColumnsCount: number;
479
- rows: RowType[];
480
- /**
481
- * Representa cuáles filas fueron seleccionadas por el
482
- * usuario. El array resultante es el conjunto de índices
483
- * de filas seleccionadas. Este array es actualizado
484
- * automáticamente por el keyHandler.
485
- */
486
- selectedRows: number[];
487
- statesColumns: number;
488
- }
489
-
490
- declare const ResponsiveTable: React__default.MemoExoticComponent<React__default.ForwardRefExoticComponent<BoxProps & React__default.RefAttributes<HTMLDivElement>>>;
491
-
492
- declare function useResponsiveTableContext(): TResponsiveTableContext;
493
- declare const ResponsiveTableContext: React__default.MemoExoticComponent<({ allowEdition, allowRowsKeyboardSorting, allowSelection, allowSorting, avoidReparseSelectionOnRowChange, children, className, currentBreakPoint, customLabels, columns, filters, rows, label, isMultiple, name, onChangeSelection, onFilterBlur, onFilterChange, onFilterPressEnter, onSelectRows, onSortChange, reserveColumnsForStates, variant, }: TResponsiveTableContextProps) => React__default.JSX.Element>;
494
-
495
- declare const responsiveTableStore: _reduxjs_toolkit_dist_configureStore.ToolkitStore<{
496
- responsiveTableSlice: TResponsiveTableSlice;
497
- }, redux.AnyAction, [redux_thunk.ThunkMiddleware<{
498
- responsiveTableSlice: TResponsiveTableSlice;
499
- }, redux.AnyAction, undefined>]>;
500
- declare const useResponsiveTable: <TSelected>(selector: (state: {
501
- responsiveTableSlice: TResponsiveTableSlice;
502
- }) => TSelected, equalityFn?: react_redux.EqualityFn<TSelected> | undefined) => TSelected;
503
- declare const responsiveTableActions: _reduxjs_toolkit.CaseReducerActions<{
504
- handleKey(state: immer_dist_internal.WritableDraft<Record<string, ISelectableState<IBasicColumn, IBasicFilter, string | TBasicRow>>>, { payload }: {
505
- payload: THandleKey & {
506
- id: string;
507
- };
508
- type: string;
509
- }): void;
510
- selectionStateUpdate(state: immer_dist_internal.WritableDraft<Record<string, ISelectableState<IBasicColumn, IBasicFilter, string | TBasicRow>>>, { payload: { id, ...payload } }: {
511
- payload: Partial<ISelectableState<IBasicColumn, IBasicFilter, string | TBasicRow>> & {
512
- id: string;
513
- };
514
- type: string;
515
- }): void;
516
- setNewFocused(state: immer_dist_internal.WritableDraft<Record<string, ISelectableState<IBasicColumn, IBasicFilter, string | TBasicRow>>>, { payload: { id, ...payload } }: {
517
- payload: INewFocus & {
518
- id: string;
519
- };
520
- type: string;
521
- }): void;
522
- updateByClick(state: immer_dist_internal.WritableDraft<Record<string, ISelectableState<IBasicColumn, IBasicFilter, string | TBasicRow>>>, { payload: { id, colIndex, rowIndex, ariaColIndex, ariaRowIndex, isFocused, ...payload }, }: {
523
- payload: (_apia_util.TRequireOnlyOne<{
524
- ariaRowIndex: number;
525
- rowIndex: number;
526
- }, "ariaRowIndex" | "rowIndex"> & _apia_util.TRequireOnlyOne<{
527
- ariaColIndex?: number | undefined;
528
- colIndex: number;
529
- }, "ariaColIndex" | "colIndex"> & Pick<INewFocus, "isFocused" | "altKey" | "ctrlKey" | "shiftKey">) & {
530
- id: string;
531
- };
532
- type: string;
533
- }): void;
534
- update(state: immer_dist_internal.WritableDraft<TResponsiveTableSlice>, { payload: { tableName, ...rest }, }: TResponsiveTableAction<Partial<TResponsiveTableState> & {
535
- isFocused?: boolean;
536
- }>): void;
537
- addRows(state: immer_dist_internal.WritableDraft<TResponsiveTableSlice>, { payload }: TResponsiveTableAction<{
538
- newRows: TResponsiveTableRow[];
539
- }>): void;
540
- deleteRows(state: immer_dist_internal.WritableDraft<TResponsiveTableSlice>, { payload }: TResponsiveTableAction<{
541
- rowIndices: number[];
542
- }>): void;
543
- destroy(state: immer_dist_internal.WritableDraft<TResponsiveTableSlice>, { payload: { tableName } }: TResponsiveTableAction): void;
544
- swapFocusedRow(state: immer_dist_internal.WritableDraft<TResponsiveTableSlice>, { payload: { newIndex, tableName }, }: {
545
- payload: {
546
- newIndex: number;
547
- } & {
548
- tableName: string;
549
- };
550
- type: string;
551
- }): void;
552
- }, "responsiveTableSlice">;
553
-
554
- type TDocNameCellRendererProps$1 = {
555
- docName: string;
556
- docUrl: string;
557
- };
558
- declare const DocNameCellRenderer: TResponsiveTableCellRenderer<TDocNameCellRendererProps$1>;
559
-
560
- type TDocNameCellRendererProps = {
561
- docName: string;
562
- docUrl: string;
563
- };
564
- type TDocNameCellRenderer = TAccordionCellRendererProps<TDocNameCellRendererProps>;
565
- declare const AccordionDocNameCellRenderer: TAccordionCellRenderer<TDocNameCellRendererProps>;
566
-
567
- interface IAccordionElement {
568
- row: TResponsiveTableRow;
569
- rowIndex: number;
570
- }
571
- declare const AccordionElement: React__default.MemoExoticComponent<({ row, rowIndex }: IAccordionElement) => React__default.JSX.Element | null>;
572
-
573
- declare const AccordionHTMLCellRenderer: TAccordionCellRenderer<{
574
- html: string;
575
- }>;
576
-
577
- declare const AccordionRenderer: React__default.MemoExoticComponent<() => React__default.JSX.Element>;
578
-
579
- declare const AdditionalColumnDefaultRenderer: React__default.MemoExoticComponent<({ column, cell, }: TResponsiveTableCellRendererProps) => React__default.JSX.Element>;
580
-
581
- declare const DefaultCellRenderer: React__default.ForwardRefExoticComponent<{
582
- cell: TResponsiveTableCell<Record<string, unknown>>;
583
- column: TResponsiveTableColumn;
584
- row: TResponsiveTableRow<Record<string, unknown>>;
585
- } & React__default.AllHTMLAttributes<HTMLTableCellElement> & React__default.RefAttributes<HTMLTableCellElement>>;
586
-
587
- declare const DefaultRowRenderer: TResponsiveTableRowRenderer<Record<string, unknown>>;
588
-
589
- declare const HTMLCellRenderer: TResponsiveTableCellRenderer<{
590
- html: string;
591
- }>;
592
-
593
- declare const IsLoadingRenderer: () => React.JSX.Element;
594
-
595
- declare function makeAccordionAsyncRenderer(additionalInfoGetter: (row: TResponsiveTableRow) => Promise<{
596
- label?: string;
597
- name: string;
598
- }[]>): TResponsiveTableCellRenderer<Record<string, unknown>>;
599
-
600
- declare function makeAsyncRenderer(additionalInfoGetter: (row: TResponsiveTableRow) => Promise<{
601
- label?: string;
602
- name: string;
603
- newline?: boolean;
604
- }[]>): TResponsiveTableCellRenderer<Record<string, unknown>>;
605
-
606
- declare const NoRegistersRenderer: () => React.JSX.Element;
607
-
608
- declare const PriorityAccordionRenderer: TAccordionCellRenderer<Record<string, unknown>>;
609
-
610
- declare function getPriorityHandler(priority: string | undefined): string | undefined;
611
- declare const PriorityRenderer: TResponsiveTableCellRenderer<{
612
- src: string;
613
- }>;
614
-
615
- declare const RowStatesRenderer: React__default.MemoExoticComponent<({ state, }: {
616
- state: TResponsiveTableRowState;
617
- }) => React__default.JSX.Element>;
618
-
619
- declare const StatusAccordionRenderer: TAccordionCellRenderer<Record<string, unknown>>;
620
-
621
- declare function getStatusRendererClassName(cellValue: string, columnName: string): string;
622
- declare const StatusRenderer: TResponsiveTableCellRenderer<{
623
- src: string;
624
- }>;
625
-
626
- declare const TableRenderer: React__default.MemoExoticComponent<() => React__default.JSX.Element>;
627
-
628
- export { AccordionCell, AccordionDocNameCellRenderer, AccordionElement, AccordionHTMLCellRenderer, AccordionRenderer, AdditionalColumnDefaultRenderer, DefaultCellRenderer, DefaultRowRenderer, DocNameCellRenderer, HTMLCellRenderer, IAccordionElement, IsLoadingRenderer, NoRegistersRenderer, PriorityAccordionRenderer, PriorityRenderer, ResponsiveTable, ResponsiveTableContext, RowStatesRenderer, StatusAccordionRenderer, StatusRenderer, TAccordionCellRenderer, TAccordionCellRendererProps, TColoredElement, TDocNameCellRenderer, TDocNameCellRendererProps, TResponsiveTableCell, TResponsiveTableCellRenderer, TResponsiveTableCellRendererProps, TResponsiveTableColumn, TResponsiveTableContext, TResponsiveTableContextProps, TResponsiveTableRow, TResponsiveTableRowRenderer, TResponsiveTableRowRendererProps, TResponsiveTableRowState, TResponsiveTableRowsSelectionEvent, TResponsiveTableSortChangeEvent, TResponsiveTableSortValue, TResponsiveTableStoreProps, TResponsiveTableWithRendererElement, 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 { DocNameCellRenderer } from './renderers/DocNameCellRenderer.js';
5
+ export { AccordionCell, TAccordionCellRenderer, TAccordionCellRendererProps } from './renderers/AccordionCell.js';
6
+ export { AccordionDocNameCellRenderer, TDocNameCellRenderer, TDocNameCellRendererProps } from './renderers/AccordionDocNameCellRenderer.js';
7
+ export { AccordionElement, IAccordionElement } 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 { TColoredElement, TResponsiveTableCell, TResponsiveTableCellRenderer, TResponsiveTableCellRendererProps, TResponsiveTableColumn, TResponsiveTableContext, TResponsiveTableContextProps, TResponsiveTableRow, TResponsiveTableRowRenderer, TResponsiveTableRowRendererProps, TResponsiveTableRowState, TResponsiveTableRowsSelectionEvent, TResponsiveTableSortChangeEvent, TResponsiveTableSortValue, TResponsiveTableStoreProps, TResponsiveTableWithRendererElement, defaultLabels } from './types.js';
25
+ //# sourceMappingURL=index.d.ts.map