@apia/table 3.0.1 → 3.0.6

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 +3667 -24
  3. package/dist/index.js.map +1 -1
  4. package/package.json +7 -7
  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 -140
  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,15 +0,0 @@
1
- import { FunctionComponent } from 'react';
2
- import { TResponsiveTableCell, TResponsiveTableColumn, TResponsiveTableRow } from '../types.js';
3
-
4
- type TAccordionCellRendererProps<CellProps = Record<string, unknown>> = {
5
- cell: TResponsiveTableCell<CellProps>;
6
- column: TResponsiveTableColumn;
7
- columnIndex: number;
8
- row: TResponsiveTableRow;
9
- rowIndex: number;
10
- };
11
- type TAccordionCellRenderer<CellProps = Record<string, unknown>> = FunctionComponent<TAccordionCellRendererProps<CellProps>>;
12
- declare const AccordionCell: TAccordionCellRenderer<Record<string, unknown>>;
13
-
14
- export { AccordionCell, type TAccordionCellRenderer, type TAccordionCellRendererProps };
15
- //# sourceMappingURL=AccordionCell.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"AccordionCell.d.ts","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -1,23 +0,0 @@
1
- import { jsxs, jsx } from '@apia/theme/jsx-runtime';
2
- import { Box } from '@apia/theme';
3
-
4
- const NoMemoAccordionCell = ({ cell, column }) => {
5
- return /* @__PURE__ */ jsxs(
6
- Box,
7
- {
8
- className: `responsiveTable__accordionElement__column ${cell.className ?? ""}`,
9
- children: [
10
- /* @__PURE__ */ jsxs(Box, { as: "strong", children: [
11
- column.label ?? column.name,
12
- ": "
13
- ] }),
14
- /* @__PURE__ */ jsx(Box, { as: "span", sx: { color: cell.color, background: cell.background }, children: cell?.children })
15
- ]
16
- },
17
- column.name
18
- );
19
- };
20
- const AccordionCell = NoMemoAccordionCell;
21
-
22
- export { AccordionCell };
23
- //# sourceMappingURL=AccordionCell.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"AccordionCell.js","sources":["../../src/renderers/AccordionCell.tsx"],"sourcesContent":["import { Box } from '@apia/theme';\nimport { FunctionComponent } from 'react';\nimport {\n TResponsiveTableCell,\n TResponsiveTableColumn,\n TResponsiveTableRow,\n} from '../types';\n\nexport type TAccordionCellRendererProps<CellProps = Record<string, unknown>> = {\n cell: TResponsiveTableCell<CellProps>;\n column: TResponsiveTableColumn;\n columnIndex: number;\n row: TResponsiveTableRow;\n rowIndex: number;\n};\n\nexport type TAccordionCellRenderer<CellProps = Record<string, unknown>> =\n FunctionComponent<TAccordionCellRendererProps<CellProps>>;\n\nconst NoMemoAccordionCell: TAccordionCellRenderer = ({ cell, column }) => {\n return (\n <Box\n key={column.name}\n className={`responsiveTable__accordionElement__column ${\n cell.className ?? ''\n }`}\n >\n <Box as=\"strong\">{column.label ?? column.name}: </Box>\n <Box as=\"span\" sx={{ color: cell.color, background: cell.background }}>\n {cell?.children}\n </Box>\n </Box>\n );\n};\n\nexport const AccordionCell = NoMemoAccordionCell;\n"],"names":[],"mappings":";;;AAmBA,MAAM,mBAA8C,GAAA,CAAC,EAAE,IAAA,EAAM,QAAa,KAAA;AACxE,EACE,uBAAA,IAAA;AAAA,IAAC,GAAA;AAAA,IAAA;AAAA,MAEC,SAAW,EAAA,CAAA,0CAAA,EACT,IAAK,CAAA,SAAA,IAAa,EACpB,CAAA,CAAA;AAAA,MAEA,QAAA,EAAA;AAAA,wBAAC,IAAA,CAAA,GAAA,EAAA,EAAI,IAAG,QAAU,EAAA,QAAA,EAAA;AAAA,UAAA,MAAA,CAAO,SAAS,MAAO,CAAA,IAAA;AAAA,UAAK,IAAA;AAAA,SAAE,EAAA,CAAA;AAAA,wBAC/C,GAAA,CAAA,GAAA,EAAA,EAAI,EAAG,EAAA,MAAA,EAAO,IAAI,EAAE,KAAA,EAAO,IAAK,CAAA,KAAA,EAAO,UAAY,EAAA,IAAA,CAAK,UAAW,EAAA,EACjE,gBAAM,QACT,EAAA,CAAA;AAAA,OAAA;AAAA,KAAA;AAAA,IARK,MAAO,CAAA,IAAA;AAAA,GASd,CAAA;AAEJ,CAAA,CAAA;AAEO,MAAM,aAAgB,GAAA;;;;"}
@@ -1,11 +0,0 @@
1
- import { TAccordionCellRendererProps, TAccordionCellRenderer } from './AccordionCell.js';
2
-
3
- type TDocNameCellRendererProps = {
4
- docName: string;
5
- docUrl: string;
6
- };
7
- type TDocNameCellRenderer = TAccordionCellRendererProps<TDocNameCellRendererProps>;
8
- declare const AccordionDocNameCellRenderer: TAccordionCellRenderer<TDocNameCellRendererProps>;
9
-
10
- export { AccordionDocNameCellRenderer, type TDocNameCellRenderer, type TDocNameCellRendererProps };
11
- //# sourceMappingURL=AccordionDocNameCellRenderer.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"AccordionDocNameCellRenderer.d.ts","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -1,39 +0,0 @@
1
- import { jsxs, jsx } from '@apia/theme/jsx-runtime';
2
- import React from 'react';
3
- import { Box, Link } from '@apia/theme';
4
- import { downloadUrl } from '@apia/util';
5
- import { Icon } from '@apia/icons';
6
-
7
- const NoMemoAccordionDocNameCellRenderer = React.forwardRef(
8
- ({
9
- cell: { children, Renderer, rendererProps, AccordionRenderer, ...cell },
10
- column
11
- }, currentRef) => /* @__PURE__ */ jsxs(Box, { ref: currentRef, ...cell, children: [
12
- /* @__PURE__ */ jsxs(Box, { as: "strong", children: [
13
- column.label ?? column.name,
14
- ": "
15
- ] }),
16
- /* @__PURE__ */ jsxs(
17
- Link,
18
- {
19
- className: "cell__download__document",
20
- title: rendererProps?.docName,
21
- href: rendererProps?.docUrl,
22
- onClick: (ev) => {
23
- ev.preventDefault();
24
- if (rendererProps?.docUrl)
25
- void downloadUrl(rendererProps?.docUrl);
26
- },
27
- children: [
28
- /* @__PURE__ */ jsx(Icon, { title: "", name: "Download" }),
29
- rendererProps?.docName
30
- ]
31
- }
32
- )
33
- ] })
34
- );
35
- NoMemoAccordionDocNameCellRenderer.displayName = "AccordionDocNameCellRenderer";
36
- const AccordionDocNameCellRenderer = NoMemoAccordionDocNameCellRenderer;
37
-
38
- export { AccordionDocNameCellRenderer };
39
- //# sourceMappingURL=AccordionDocNameCellRenderer.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"AccordionDocNameCellRenderer.js","sources":["../../src/renderers/AccordionDocNameCellRenderer.tsx"],"sourcesContent":["import React from 'react';\nimport { Box, Link } from '@apia/theme';\nimport { downloadUrl } from '@apia/util';\nimport { Icon } from '@apia/icons';\nimport {\n TAccordionCellRenderer,\n TAccordionCellRendererProps,\n} from './AccordionCell';\n\nexport type TDocNameCellRendererProps = {\n docName: string;\n docUrl: string;\n};\n\nexport type TDocNameCellRenderer =\n TAccordionCellRendererProps<TDocNameCellRendererProps>;\n\nconst NoMemoAccordionDocNameCellRenderer: TAccordionCellRenderer<TDocNameCellRendererProps> =\n React.forwardRef<HTMLElement, TDocNameCellRenderer>(\n (\n {\n cell: { children, Renderer, rendererProps, AccordionRenderer, ...cell },\n column,\n },\n currentRef,\n ) => (\n <Box ref={currentRef as React.RefObject<HTMLElement>} {...cell}>\n <Box as=\"strong\">{column.label ?? column.name}: </Box>\n <Link\n className=\"cell__download__document\"\n title={rendererProps?.docName}\n href={rendererProps?.docUrl}\n onClick={(ev) => {\n ev.preventDefault();\n if (rendererProps?.docUrl) void downloadUrl(rendererProps?.docUrl);\n }}\n >\n <Icon title=\"\" name=\"Download\" />\n {rendererProps?.docName}\n </Link>\n </Box>\n ),\n );\n\nNoMemoAccordionDocNameCellRenderer.displayName = 'AccordionDocNameCellRenderer';\n\nexport const AccordionDocNameCellRenderer = NoMemoAccordionDocNameCellRenderer;\n"],"names":[],"mappings":";;;;;;AAiBA,MAAM,qCACJ,KAAM,CAAA,UAAA;AAAA,EACJ,CACE;AAAA,IACE,MAAM,EAAE,QAAA,EAAU,UAAU,aAAe,EAAA,iBAAA,EAAmB,GAAG,IAAK,EAAA;AAAA,IACtE,MAAA;AAAA,KAEF,UAEA,qBAAA,IAAA,CAAC,OAAI,GAAK,EAAA,UAAA,EAA6C,GAAG,IACxD,EAAA,QAAA,EAAA;AAAA,oBAAC,IAAA,CAAA,GAAA,EAAA,EAAI,IAAG,QAAU,EAAA,QAAA,EAAA;AAAA,MAAA,MAAA,CAAO,SAAS,MAAO,CAAA,IAAA;AAAA,MAAK,IAAA;AAAA,KAAE,EAAA,CAAA;AAAA,oBAChD,IAAA;AAAA,MAAC,IAAA;AAAA,MAAA;AAAA,QACC,SAAU,EAAA,0BAAA;AAAA,QACV,OAAO,aAAe,EAAA,OAAA;AAAA,QACtB,MAAM,aAAe,EAAA,MAAA;AAAA,QACrB,OAAA,EAAS,CAAC,EAAO,KAAA;AACf,UAAA,EAAA,CAAG,cAAe,EAAA,CAAA;AAClB,UAAA,IAAI,aAAe,EAAA,MAAA;AAAQ,YAAK,KAAA,WAAA,CAAY,eAAe,MAAM,CAAA,CAAA;AAAA,SACnE;AAAA,QAEA,QAAA,EAAA;AAAA,0BAAA,GAAA,CAAC,IAAK,EAAA,EAAA,KAAA,EAAM,EAAG,EAAA,IAAA,EAAK,UAAW,EAAA,CAAA;AAAA,UAC9B,aAAe,EAAA,OAAA;AAAA,SAAA;AAAA,OAAA;AAAA,KAClB;AAAA,GACF,EAAA,CAAA;AAEJ,CAAA,CAAA;AAEF,kCAAA,CAAmC,WAAc,GAAA,8BAAA,CAAA;AAE1C,MAAM,4BAA+B,GAAA;;;;"}
@@ -1,11 +0,0 @@
1
- import React__default from 'react';
2
- import { TResponsiveTableRow } from '../types.js';
3
-
4
- interface IAccordionElement {
5
- row: TResponsiveTableRow;
6
- rowIndex: number;
7
- }
8
- declare const AccordionElement: React__default.MemoExoticComponent<({ row, rowIndex }: IAccordionElement) => React__default.JSX.Element | null>;
9
-
10
- export { AccordionElement, type IAccordionElement };
11
- //# sourceMappingURL=AccordionElement.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"AccordionElement.d.ts","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -1,115 +0,0 @@
1
- import { jsxs, jsx } from '@apia/theme/jsx-runtime';
2
- import React, { memo, useMemo } from 'react';
3
- import { shallowEqual } from 'react-redux';
4
- import { useResponsiveTableContext } from '../ResponsiveTableContext.js';
5
- import { AccordionCell } from './AccordionCell.js';
6
- import { useResponsiveTable, responsiveTableStore, responsiveTableActions } from '../store/index.js';
7
- import { AccordionItem } from '@apia/components';
8
-
9
- const NoMemoAccordionElement = ({ row, rowIndex }) => {
10
- const { name } = useResponsiveTableContext();
11
- const indexColumns = useResponsiveTable((global) => {
12
- const tableState = global.responsiveTableSlice[name];
13
- return tableState?.accordionIndexColumns;
14
- }, shallowEqual);
15
- const columns = useResponsiveTable((global) => {
16
- const tableState = global.responsiveTableSlice[name];
17
- return tableState?.columns;
18
- }, shallowEqual);
19
- const title = React.useMemo(() => {
20
- if (row.title)
21
- return row.title;
22
- if (Array.isArray(indexColumns))
23
- return indexColumns.map(
24
- (current) => (
25
- // eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing
26
- row.cells[current.index].title || row.cells[current.index].children
27
- )
28
- ).join(" | ");
29
- return row.cells[0].title ?? row.cells[0].children;
30
- }, [indexColumns, row.cells, row.title]);
31
- const isSelected = useResponsiveTable(
32
- (global) => global.responsiveTableSlice[name].allowSelection !== false ? global.responsiveTableSlice[name].selectedRows.includes(rowIndex) : void 0
33
- );
34
- const isFocused = useResponsiveTable(
35
- (global) => global.responsiveTableSlice[name].focusedRow === rowIndex
36
- );
37
- const buttonProps = useMemo(
38
- () => ({
39
- title,
40
- ariaLabel: title,
41
- label: title,
42
- checked: isSelected,
43
- onChange: (isChecked) => {
44
- const isMultiple = responsiveTableStore.getState().responsiveTableSlice[name].isMultiple;
45
- responsiveTableStore.dispatch(
46
- responsiveTableActions.update({
47
- tableName: name,
48
- selectedRows: isMultiple ? isChecked ? [
49
- ...responsiveTableStore.getState().responsiveTableSlice[name].selectedRows,
50
- rowIndex
51
- ] : responsiveTableStore.getState().responsiveTableSlice[name].selectedRows.filter(
52
- (current) => current !== rowIndex
53
- ) : [rowIndex]
54
- })
55
- );
56
- },
57
- tabIndex: isFocused ? 0 : -1,
58
- rightButtons: row.accordionButtonProps?.rightButtons,
59
- onUserPressEnter: row.accordionButtonProps?.onUserPressEnter,
60
- domButtonProps: {
61
- buttonSx: {
62
- "&.accordion__item__button .accordion__item__button__label": {
63
- color: row.color
64
- }
65
- }
66
- }
67
- }),
68
- [
69
- isFocused,
70
- isSelected,
71
- name,
72
- row.accordionButtonProps?.onUserPressEnter,
73
- row.accordionButtonProps?.rightButtons,
74
- row.color,
75
- rowIndex,
76
- title
77
- ]
78
- );
79
- if (!Array.isArray(indexColumns) || !columns)
80
- return null;
81
- return /* @__PURE__ */ jsxs(AccordionItem, { id: row.id, buttonProps, children: [
82
- columns.map((currentColumn, columnIndex) => {
83
- const Renderer = row.cells[columnIndex].AccordionRenderer ?? currentColumn.AccordionRenderer ?? AccordionCell;
84
- return currentColumn.hideFromAccordion || currentColumn.showAsAdditional ? null : /* @__PURE__ */ jsx(
85
- Renderer,
86
- {
87
- cell: row.cells[columnIndex],
88
- column: currentColumn,
89
- columnIndex,
90
- row,
91
- rowIndex
92
- },
93
- currentColumn.name
94
- );
95
- }),
96
- columns.filter((current) => !!current.showAsAdditional).map((currentColumn, columnIndex) => {
97
- const Renderer = row.cells[columnIndex].AccordionRenderer ?? currentColumn.AccordionRenderer ?? AccordionCell;
98
- return currentColumn.hideFromAccordion ? null : /* @__PURE__ */ jsx(
99
- Renderer,
100
- {
101
- cell: row.cells[columnIndex],
102
- column: currentColumn,
103
- columnIndex,
104
- row,
105
- rowIndex
106
- },
107
- currentColumn.name
108
- );
109
- })
110
- ] });
111
- };
112
- const AccordionElement = memo(NoMemoAccordionElement);
113
-
114
- export { AccordionElement };
115
- //# sourceMappingURL=AccordionElement.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"AccordionElement.js","sources":["../../src/renderers/AccordionElement.tsx"],"sourcesContent":["import React, { memo, useMemo } from 'react';\nimport { shallowEqual } from 'react-redux';\nimport { useResponsiveTableContext } from '../ResponsiveTableContext';\nimport { TResponsiveTableRow } from '../types';\nimport { AccordionCell } from './AccordionCell';\nimport {\n responsiveTableActions,\n responsiveTableStore,\n useResponsiveTable,\n} from '../store';\nimport { AccordionItem, IAccordionItemButton } from '@apia/components';\n\nexport interface IAccordionElement {\n row: TResponsiveTableRow;\n rowIndex: number;\n}\n\nconst NoMemoAccordionElement = ({ row, rowIndex }: IAccordionElement) => {\n const { name } = useResponsiveTableContext();\n\n const indexColumns = useResponsiveTable((global) => {\n const tableState = global.responsiveTableSlice[name];\n return tableState?.accordionIndexColumns;\n }, shallowEqual);\n const columns = useResponsiveTable((global) => {\n const tableState = global.responsiveTableSlice[name];\n return tableState?.columns;\n }, shallowEqual);\n\n const title = React.useMemo(() => {\n if (row.title) return row.title;\n if (Array.isArray(indexColumns))\n return indexColumns\n .map(\n (current) =>\n // eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing\n row.cells[current.index].title ||\n (row.cells[current.index].children as string),\n )\n .join(' | ');\n return row.cells[0].title ?? (row.cells[0].children as string);\n }, [indexColumns, row.cells, row.title]);\n const isSelected = useResponsiveTable((global) =>\n global.responsiveTableSlice[name].allowSelection !== false\n ? global.responsiveTableSlice[name].selectedRows.includes(rowIndex)\n : undefined,\n );\n const isFocused = useResponsiveTable(\n (global) => global.responsiveTableSlice[name].focusedRow === rowIndex,\n );\n const buttonProps = useMemo<IAccordionItemButton>(\n () => ({\n title,\n ariaLabel: title,\n label: title,\n checked: isSelected,\n onChange: (isChecked: boolean) => {\n const isMultiple =\n responsiveTableStore.getState().responsiveTableSlice[name].isMultiple;\n responsiveTableStore.dispatch(\n responsiveTableActions.update({\n tableName: name,\n selectedRows: isMultiple\n ? isChecked\n ? [\n ...responsiveTableStore.getState().responsiveTableSlice[\n name\n ].selectedRows,\n rowIndex,\n ]\n : responsiveTableStore\n .getState()\n .responsiveTableSlice[name].selectedRows.filter(\n (current) => current !== rowIndex,\n )\n : [rowIndex],\n }),\n );\n },\n tabIndex: isFocused ? 0 : -1,\n rightButtons: row.accordionButtonProps?.rightButtons,\n onUserPressEnter: row.accordionButtonProps?.onUserPressEnter,\n domButtonProps: {\n buttonSx: {\n '&.accordion__item__button .accordion__item__button__label': {\n color: row.color,\n },\n },\n },\n }),\n [\n isFocused,\n isSelected,\n name,\n row.accordionButtonProps?.onUserPressEnter,\n row.accordionButtonProps?.rightButtons,\n row.color,\n rowIndex,\n title,\n ],\n );\n\n if (!Array.isArray(indexColumns) || !columns) return null;\n\n return (\n <AccordionItem id={row.id} buttonProps={buttonProps}>\n {columns.map((currentColumn, columnIndex) => {\n const Renderer =\n row.cells[columnIndex].AccordionRenderer ??\n currentColumn.AccordionRenderer ??\n AccordionCell;\n\n return currentColumn.hideFromAccordion ||\n currentColumn.showAsAdditional ? null : (\n <Renderer\n cell={row.cells[columnIndex]}\n column={currentColumn}\n columnIndex={columnIndex}\n key={currentColumn.name}\n row={row}\n rowIndex={rowIndex}\n />\n );\n })}\n\n {columns\n .filter((current) => !!current.showAsAdditional)\n .map((currentColumn, columnIndex) => {\n const Renderer =\n row.cells[columnIndex].AccordionRenderer ??\n currentColumn.AccordionRenderer ??\n AccordionCell;\n\n return currentColumn.hideFromAccordion ? null : (\n <Renderer\n cell={row.cells[columnIndex]}\n column={currentColumn}\n columnIndex={columnIndex}\n key={currentColumn.name}\n row={row}\n rowIndex={rowIndex}\n />\n );\n })}\n </AccordionItem>\n );\n};\n\nexport const AccordionElement = memo(NoMemoAccordionElement);\n"],"names":[],"mappings":";;;;;;;;AAiBA,MAAM,sBAAyB,GAAA,CAAC,EAAE,GAAA,EAAK,UAAkC,KAAA;AACvE,EAAM,MAAA,EAAE,IAAK,EAAA,GAAI,yBAA0B,EAAA,CAAA;AAE3C,EAAM,MAAA,YAAA,GAAe,kBAAmB,CAAA,CAAC,MAAW,KAAA;AAClD,IAAM,MAAA,UAAA,GAAa,MAAO,CAAA,oBAAA,CAAqB,IAAI,CAAA,CAAA;AACnD,IAAA,OAAO,UAAY,EAAA,qBAAA,CAAA;AAAA,KAClB,YAAY,CAAA,CAAA;AACf,EAAM,MAAA,OAAA,GAAU,kBAAmB,CAAA,CAAC,MAAW,KAAA;AAC7C,IAAM,MAAA,UAAA,GAAa,MAAO,CAAA,oBAAA,CAAqB,IAAI,CAAA,CAAA;AACnD,IAAA,OAAO,UAAY,EAAA,OAAA,CAAA;AAAA,KAClB,YAAY,CAAA,CAAA;AAEf,EAAM,MAAA,KAAA,GAAQ,KAAM,CAAA,OAAA,CAAQ,MAAM;AAChC,IAAA,IAAI,GAAI,CAAA,KAAA;AAAO,MAAA,OAAO,GAAI,CAAA,KAAA,CAAA;AAC1B,IAAI,IAAA,KAAA,CAAM,QAAQ,YAAY,CAAA;AAC5B,MAAA,OAAO,YACJ,CAAA,GAAA;AAAA,QACC,CAAC,OAAA;AAAA;AAAA,UAEC,GAAA,CAAI,KAAM,CAAA,OAAA,CAAQ,KAAK,CAAA,CAAE,SACxB,GAAI,CAAA,KAAA,CAAM,OAAQ,CAAA,KAAK,CAAE,CAAA,QAAA;AAAA,SAAA;AAAA,OAC9B,CACC,KAAK,KAAK,CAAA,CAAA;AACf,IAAO,OAAA,GAAA,CAAI,MAAM,CAAC,CAAA,CAAE,SAAU,GAAI,CAAA,KAAA,CAAM,CAAC,CAAE,CAAA,QAAA,CAAA;AAAA,KAC1C,CAAC,YAAA,EAAc,IAAI,KAAO,EAAA,GAAA,CAAI,KAAK,CAAC,CAAA,CAAA;AACvC,EAAA,MAAM,UAAa,GAAA,kBAAA;AAAA,IAAmB,CAAC,MAAA,KACrC,MAAO,CAAA,oBAAA,CAAqB,IAAI,CAAE,CAAA,cAAA,KAAmB,KACjD,GAAA,MAAA,CAAO,qBAAqB,IAAI,CAAA,CAAE,YAAa,CAAA,QAAA,CAAS,QAAQ,CAChE,GAAA,KAAA,CAAA;AAAA,GACN,CAAA;AACA,EAAA,MAAM,SAAY,GAAA,kBAAA;AAAA,IAChB,CAAC,MAAW,KAAA,MAAA,CAAO,oBAAqB,CAAA,IAAI,EAAE,UAAe,KAAA,QAAA;AAAA,GAC/D,CAAA;AACA,EAAA,MAAM,WAAc,GAAA,OAAA;AAAA,IAClB,OAAO;AAAA,MACL,KAAA;AAAA,MACA,SAAW,EAAA,KAAA;AAAA,MACX,KAAO,EAAA,KAAA;AAAA,MACP,OAAS,EAAA,UAAA;AAAA,MACT,QAAA,EAAU,CAAC,SAAuB,KAAA;AAChC,QAAA,MAAM,aACJ,oBAAqB,CAAA,QAAA,EAAW,CAAA,oBAAA,CAAqB,IAAI,CAAE,CAAA,UAAA,CAAA;AAC7D,QAAqB,oBAAA,CAAA,QAAA;AAAA,UACnB,uBAAuB,MAAO,CAAA;AAAA,YAC5B,SAAW,EAAA,IAAA;AAAA,YACX,YAAA,EAAc,aACV,SACE,GAAA;AAAA,cACE,GAAG,oBAAqB,CAAA,QAAA,EAAW,CAAA,oBAAA,CACjC,IACF,CAAE,CAAA,YAAA;AAAA,cACF,QAAA;AAAA,gBAEF,oBACG,CAAA,QAAA,GACA,oBAAqB,CAAA,IAAI,EAAE,YAAa,CAAA,MAAA;AAAA,cACvC,CAAC,YAAY,OAAY,KAAA,QAAA;AAAA,aAC3B,GACJ,CAAC,QAAQ,CAAA;AAAA,WACd,CAAA;AAAA,SACH,CAAA;AAAA,OACF;AAAA,MACA,QAAA,EAAU,YAAY,CAAI,GAAA,CAAA,CAAA;AAAA,MAC1B,YAAA,EAAc,IAAI,oBAAsB,EAAA,YAAA;AAAA,MACxC,gBAAA,EAAkB,IAAI,oBAAsB,EAAA,gBAAA;AAAA,MAC5C,cAAgB,EAAA;AAAA,QACd,QAAU,EAAA;AAAA,UACR,2DAA6D,EAAA;AAAA,YAC3D,OAAO,GAAI,CAAA,KAAA;AAAA,WACb;AAAA,SACF;AAAA,OACF;AAAA,KACF,CAAA;AAAA,IACA;AAAA,MACE,SAAA;AAAA,MACA,UAAA;AAAA,MACA,IAAA;AAAA,MACA,IAAI,oBAAsB,EAAA,gBAAA;AAAA,MAC1B,IAAI,oBAAsB,EAAA,YAAA;AAAA,MAC1B,GAAI,CAAA,KAAA;AAAA,MACJ,QAAA;AAAA,MACA,KAAA;AAAA,KACF;AAAA,GACF,CAAA;AAEA,EAAA,IAAI,CAAC,KAAA,CAAM,OAAQ,CAAA,YAAY,KAAK,CAAC,OAAA;AAAS,IAAO,OAAA,IAAA,CAAA;AAErD,EAAA,uBACG,IAAA,CAAA,aAAA,EAAA,EAAc,EAAI,EAAA,GAAA,CAAI,IAAI,WACxB,EAAA,QAAA,EAAA;AAAA,IAAQ,OAAA,CAAA,GAAA,CAAI,CAAC,aAAA,EAAe,WAAgB,KAAA;AAC3C,MAAA,MAAM,WACJ,GAAI,CAAA,KAAA,CAAM,WAAW,CAAE,CAAA,iBAAA,IACvB,cAAc,iBACd,IAAA,aAAA,CAAA;AAEF,MAAA,OAAO,aAAc,CAAA,iBAAA,IACnB,aAAc,CAAA,gBAAA,GAAmB,IACjC,mBAAA,GAAA;AAAA,QAAC,QAAA;AAAA,QAAA;AAAA,UACC,IAAA,EAAM,GAAI,CAAA,KAAA,CAAM,WAAW,CAAA;AAAA,UAC3B,MAAQ,EAAA,aAAA;AAAA,UACR,WAAA;AAAA,UAEA,GAAA;AAAA,UACA,QAAA;AAAA,SAAA;AAAA,QAFK,aAAc,CAAA,IAAA;AAAA,OAGrB,CAAA;AAAA,KAEH,CAAA;AAAA,IAEA,OACE,CAAA,MAAA,CAAO,CAAC,OAAA,KAAY,CAAC,CAAC,OAAQ,CAAA,gBAAgB,CAC9C,CAAA,GAAA,CAAI,CAAC,aAAA,EAAe,WAAgB,KAAA;AACnC,MAAA,MAAM,WACJ,GAAI,CAAA,KAAA,CAAM,WAAW,CAAE,CAAA,iBAAA,IACvB,cAAc,iBACd,IAAA,aAAA,CAAA;AAEF,MAAO,OAAA,aAAA,CAAc,oBAAoB,IACvC,mBAAA,GAAA;AAAA,QAAC,QAAA;AAAA,QAAA;AAAA,UACC,IAAA,EAAM,GAAI,CAAA,KAAA,CAAM,WAAW,CAAA;AAAA,UAC3B,MAAQ,EAAA,aAAA;AAAA,UACR,WAAA;AAAA,UAEA,GAAA;AAAA,UACA,QAAA;AAAA,SAAA;AAAA,QAFK,aAAc,CAAA,IAAA;AAAA,OAGrB,CAAA;AAAA,KAEH,CAAA;AAAA,GACL,EAAA,CAAA,CAAA;AAEJ,CAAA,CAAA;AAEa,MAAA,gBAAA,GAAmB,KAAK,sBAAsB;;;;"}
@@ -1,8 +0,0 @@
1
- import { TAccordionCellRenderer } from './AccordionCell.js';
2
-
3
- declare const AccordionHTMLCellRenderer: TAccordionCellRenderer<{
4
- html: string;
5
- }>;
6
-
7
- export { AccordionHTMLCellRenderer };
8
- //# sourceMappingURL=AccordionHTMLCellRenderer.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"AccordionHTMLCellRenderer.d.ts","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -1,37 +0,0 @@
1
- import { jsx } from '@apia/theme/jsx-runtime';
2
- import React from 'react';
3
- import { Box } from '@apia/theme';
4
-
5
- const NoMemoAccordionHTMLCellRenderer = React.forwardRef(
6
- ({
7
- cell: { children, Renderer, rendererProps, AccordionRenderer, ...cell },
8
- column,
9
- row,
10
- ...props
11
- }, currentRef) => (
12
- /**
13
- * Aca falta el title de la columna
14
- */
15
- /* @__PURE__ */ jsx(
16
- Box,
17
- {
18
- ref: currentRef,
19
- ...props,
20
- ...cell,
21
- className: "accordion__cell__renderer",
22
- dangerouslySetInnerHTML: {
23
- __html: String(rendererProps?.html ?? children ?? "").replaceAll(
24
- /<TOK(\d+)/g,
25
- "&lt;TOK$1"
26
- )
27
- },
28
- as: "span"
29
- }
30
- )
31
- )
32
- );
33
- NoMemoAccordionHTMLCellRenderer.displayName = "AccordionHTMLCellRenderer";
34
- const AccordionHTMLCellRenderer = NoMemoAccordionHTMLCellRenderer;
35
-
36
- export { AccordionHTMLCellRenderer };
37
- //# sourceMappingURL=AccordionHTMLCellRenderer.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"AccordionHTMLCellRenderer.js","sources":["../../src/renderers/AccordionHTMLCellRenderer.tsx"],"sourcesContent":["import React from 'react';\nimport { Box } from '@apia/theme';\nimport { TResponsiveTableCellRendererProps } from '../types';\nimport { TAccordionCellRenderer } from './AccordionCell';\n\nconst NoMemoAccordionHTMLCellRenderer: TAccordionCellRenderer<{\n html: string;\n}> = React.forwardRef<\n HTMLSpanElement,\n TResponsiveTableCellRendererProps<{ html: string }>\n>(\n (\n {\n cell: { children, Renderer, rendererProps, AccordionRenderer, ...cell },\n column,\n row,\n ...props\n },\n currentRef,\n ) => (\n /**\n * Aca falta el title de la columna\n */\n <Box\n ref={currentRef as React.RefObject<HTMLTableCellElement>}\n {...props}\n {...cell}\n className=\"accordion__cell__renderer\"\n dangerouslySetInnerHTML={{\n __html: String(rendererProps?.html ?? children ?? '').replaceAll(\n /<TOK(\\d+)/g,\n '&lt;TOK$1',\n ),\n }}\n as=\"span\"\n />\n ),\n);\n\nNoMemoAccordionHTMLCellRenderer.displayName = 'AccordionHTMLCellRenderer';\n\nexport const AccordionHTMLCellRenderer = NoMemoAccordionHTMLCellRenderer;\n"],"names":[],"mappings":";;;;AAKA,MAAM,kCAED,KAAM,CAAA,UAAA;AAAA,EAIT,CACE;AAAA,IACE,MAAM,EAAE,QAAA,EAAU,UAAU,aAAe,EAAA,iBAAA,EAAmB,GAAG,IAAK,EAAA;AAAA,IACtE,MAAA;AAAA,IACA,GAAA;AAAA,IACA,GAAG,KAAA;AAAA,GAEL,EAAA,UAAA;AAAA;AAAA;AAAA;AAAA,oBAKA,GAAA;AAAA,MAAC,GAAA;AAAA,MAAA;AAAA,QACC,GAAK,EAAA,UAAA;AAAA,QACJ,GAAG,KAAA;AAAA,QACH,GAAG,IAAA;AAAA,QACJ,SAAU,EAAA,2BAAA;AAAA,QACV,uBAAyB,EAAA;AAAA,UACvB,QAAQ,MAAO,CAAA,aAAA,EAAe,IAAQ,IAAA,QAAA,IAAY,EAAE,CAAE,CAAA,UAAA;AAAA,YACpD,YAAA;AAAA,YACA,WAAA;AAAA,WACF;AAAA,SACF;AAAA,QACA,EAAG,EAAA,MAAA;AAAA,OAAA;AAAA,KACL;AAAA,GAAA;AAEJ,CAAA,CAAA;AAEA,+BAAA,CAAgC,WAAc,GAAA,2BAAA,CAAA;AAEvC,MAAM,yBAA4B,GAAA;;;;"}
@@ -1,6 +0,0 @@
1
- import React__default from 'react';
2
-
3
- declare const AccordionRenderer: React__default.MemoExoticComponent<() => React__default.JSX.Element>;
4
-
5
- export { AccordionRenderer };
6
- //# sourceMappingURL=AccordionRenderer.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"AccordionRenderer.d.ts","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -1,76 +0,0 @@
1
- import { jsxs, jsx } from '@apia/theme/jsx-runtime';
2
- import React from 'react';
3
- import { shallowEqual } from 'react-redux';
4
- import { useResponsiveTableContext } from '../ResponsiveTableContext.js';
5
- import { AccordionElement } from './AccordionElement.js';
6
- import { NoRegistersRenderer } from './NoRegistersRenderer.js';
7
- import { useResponsiveTable, responsiveTableStore, responsiveTableActions } from '../store/index.js';
8
- import { Accordion } from '@apia/components';
9
-
10
- const NoMemoAccordionRenderer = () => {
11
- const { name } = useResponsiveTableContext();
12
- const { columns, rows } = useResponsiveTable((global) => {
13
- const tableState = global.responsiveTableSlice[name];
14
- return {
15
- columns: tableState?.columns,
16
- rows: tableState?.rows
17
- };
18
- }, shallowEqual);
19
- React.useEffect(() => {
20
- if (columns && rows) {
21
- const markedAsTitleColumns = [];
22
- columns.forEach((column, index) => {
23
- if (column.showInAccordionTitle)
24
- markedAsTitleColumns.push({ column, index });
25
- });
26
- if (markedAsTitleColumns.length > 0) {
27
- responsiveTableStore.dispatch(
28
- responsiveTableActions.update({
29
- tableName: name,
30
- accordionIndexColumns: markedAsTitleColumns
31
- })
32
- );
33
- } else {
34
- const columnsLength = columns.length;
35
- let indexColumn = null;
36
- let currentIndex = 0;
37
- while (!indexColumn && currentIndex < columns.length) {
38
- let isAnyEmptyRow = false;
39
- for (const row of rows) {
40
- if (!row.cells[currentIndex].children) {
41
- isAnyEmptyRow = true;
42
- break;
43
- }
44
- }
45
- if (!isAnyEmptyRow && columns[currentIndex]) {
46
- indexColumn = columns[currentIndex];
47
- } else {
48
- currentIndex += 1;
49
- if (currentIndex === columnsLength)
50
- break;
51
- }
52
- }
53
- if (!indexColumn) {
54
- [indexColumn] = columns;
55
- currentIndex = 0;
56
- }
57
- responsiveTableStore.dispatch(
58
- responsiveTableActions.update({
59
- tableName: name,
60
- accordionIndexColumns: [
61
- { column: indexColumn, index: currentIndex }
62
- ]
63
- })
64
- );
65
- }
66
- }
67
- }, [columns, name, rows]);
68
- return /* @__PURE__ */ jsxs(Accordion, { children: [
69
- !rows || rows.length === 0 && /* @__PURE__ */ jsx(NoRegistersRenderer, {}),
70
- rows?.map((current, rowIndex) => /* @__PURE__ */ jsx(AccordionElement, { row: current, rowIndex }, current.id))
71
- ] });
72
- };
73
- const AccordionRenderer = React.memo(NoMemoAccordionRenderer);
74
-
75
- export { AccordionRenderer };
76
- //# sourceMappingURL=AccordionRenderer.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"AccordionRenderer.js","sources":["../../src/renderers/AccordionRenderer.tsx"],"sourcesContent":["import React from 'react';\nimport { shallowEqual } from 'react-redux';\nimport { useResponsiveTableContext } from '../ResponsiveTableContext';\nimport { TResponsiveTableColumn } from '../types';\nimport { AccordionElement } from './AccordionElement';\nimport { NoRegistersRenderer } from './NoRegistersRenderer';\nimport {\n responsiveTableActions,\n useResponsiveTable,\n responsiveTableStore,\n} from '../store';\nimport { TResponsiveTableIndexColumns } from '../store/types';\nimport { Accordion } from '@apia/components';\n\nconst NoMemoAccordionRenderer = () => {\n const { name } = useResponsiveTableContext();\n\n const { columns, rows } = useResponsiveTable((global) => {\n const tableState = global.responsiveTableSlice[name];\n return {\n columns: tableState?.columns,\n rows: tableState?.rows,\n };\n }, shallowEqual);\n\n React.useEffect(() => {\n /**\n * Método para seleccionar qué columnas se utilizarán\n * como cabezal en cada fila.\n *\n * - Si existe al menos una columna marcada con showInAccordionTitle,\n * todas las columnas que estén marcadas con esta propiedad serán\n * mostradas como parte del título.\n *\n * - Si no existe ninguna, se busca cuál es la primera columna\n * que no tiene ninguna entrada vacía y se utiliza como título\n * del acordión.\n *\n * - Si ninguna columna no tiene ninguna fila vacía, entonces se\n * utiliza la primera columna.\n */\n\n if (columns && rows) {\n /**\n * Buscar columnas marcadas\n */\n const markedAsTitleColumns: TResponsiveTableIndexColumns = [];\n columns.forEach((column, index) => {\n if (column.showInAccordionTitle)\n markedAsTitleColumns.push({ column, index });\n });\n if (markedAsTitleColumns.length > 0) {\n responsiveTableStore.dispatch(\n responsiveTableActions.update({\n tableName: name,\n accordionIndexColumns: markedAsTitleColumns,\n }),\n );\n } else {\n /**\n * No se encontró ninguna columna marcada, se busca la primera sin\n * entradas vacías.\n */\n const columnsLength = columns.length;\n let indexColumn: TResponsiveTableColumn | null = null;\n let currentIndex = 0;\n\n while (!indexColumn && currentIndex < columns.length) {\n let isAnyEmptyRow = false;\n // eslint-disable-next-line no-restricted-syntax\n for (const row of rows) {\n if (!row.cells[currentIndex].children) {\n isAnyEmptyRow = true;\n break;\n }\n }\n if (!isAnyEmptyRow && columns[currentIndex]) {\n indexColumn = columns[currentIndex];\n } else {\n currentIndex += 1;\n if (currentIndex === columnsLength) break;\n }\n }\n if (!indexColumn) {\n /**\n * No hay ninguna sin ninguna entrada vacía,\n * se usa la primera columna.\n */\n [indexColumn] = columns;\n currentIndex = 0;\n }\n responsiveTableStore.dispatch(\n responsiveTableActions.update({\n tableName: name,\n accordionIndexColumns: [\n { column: indexColumn, index: currentIndex },\n ],\n }),\n );\n }\n }\n }, [columns, name, rows]);\n\n return (\n <Accordion>\n {!rows || (rows.length === 0 && <NoRegistersRenderer />)}\n {rows?.map((current, rowIndex) => (\n <AccordionElement row={current} rowIndex={rowIndex} key={current.id} />\n ))}\n </Accordion>\n );\n};\n\nexport const AccordionRenderer = React.memo(NoMemoAccordionRenderer);\n"],"names":[],"mappings":";;;;;;;;;AAcA,MAAM,0BAA0B,MAAM;AACpC,EAAM,MAAA,EAAE,IAAK,EAAA,GAAI,yBAA0B,EAAA,CAAA;AAE3C,EAAA,MAAM,EAAE,OAAS,EAAA,IAAA,EAAS,GAAA,kBAAA,CAAmB,CAAC,MAAW,KAAA;AACvD,IAAM,MAAA,UAAA,GAAa,MAAO,CAAA,oBAAA,CAAqB,IAAI,CAAA,CAAA;AACnD,IAAO,OAAA;AAAA,MACL,SAAS,UAAY,EAAA,OAAA;AAAA,MACrB,MAAM,UAAY,EAAA,IAAA;AAAA,KACpB,CAAA;AAAA,KACC,YAAY,CAAA,CAAA;AAEf,EAAA,KAAA,CAAM,UAAU,MAAM;AAiBpB,IAAA,IAAI,WAAW,IAAM,EAAA;AAInB,MAAA,MAAM,uBAAqD,EAAC,CAAA;AAC5D,MAAQ,OAAA,CAAA,OAAA,CAAQ,CAAC,MAAA,EAAQ,KAAU,KAAA;AACjC,QAAA,IAAI,MAAO,CAAA,oBAAA;AACT,UAAA,oBAAA,CAAqB,IAAK,CAAA,EAAE,MAAQ,EAAA,KAAA,EAAO,CAAA,CAAA;AAAA,OAC9C,CAAA,CAAA;AACD,MAAI,IAAA,oBAAA,CAAqB,SAAS,CAAG,EAAA;AACnC,QAAqB,oBAAA,CAAA,QAAA;AAAA,UACnB,uBAAuB,MAAO,CAAA;AAAA,YAC5B,SAAW,EAAA,IAAA;AAAA,YACX,qBAAuB,EAAA,oBAAA;AAAA,WACxB,CAAA;AAAA,SACH,CAAA;AAAA,OACK,MAAA;AAKL,QAAA,MAAM,gBAAgB,OAAQ,CAAA,MAAA,CAAA;AAC9B,QAAA,IAAI,WAA6C,GAAA,IAAA,CAAA;AACjD,QAAA,IAAI,YAAe,GAAA,CAAA,CAAA;AAEnB,QAAA,OAAO,CAAC,WAAA,IAAe,YAAe,GAAA,OAAA,CAAQ,MAAQ,EAAA;AACpD,UAAA,IAAI,aAAgB,GAAA,KAAA,CAAA;AAEpB,UAAA,KAAA,MAAW,OAAO,IAAM,EAAA;AACtB,YAAA,IAAI,CAAC,GAAA,CAAI,KAAM,CAAA,YAAY,EAAE,QAAU,EAAA;AACrC,cAAgB,aAAA,GAAA,IAAA,CAAA;AAChB,cAAA,MAAA;AAAA,aACF;AAAA,WACF;AACA,UAAA,IAAI,CAAC,aAAA,IAAiB,OAAQ,CAAA,YAAY,CAAG,EAAA;AAC3C,YAAA,WAAA,GAAc,QAAQ,YAAY,CAAA,CAAA;AAAA,WAC7B,MAAA;AACL,YAAgB,YAAA,IAAA,CAAA,CAAA;AAChB,YAAA,IAAI,YAAiB,KAAA,aAAA;AAAe,cAAA,MAAA;AAAA,WACtC;AAAA,SACF;AACA,QAAA,IAAI,CAAC,WAAa,EAAA;AAKhB,UAAA,CAAC,WAAW,CAAI,GAAA,OAAA,CAAA;AAChB,UAAe,YAAA,GAAA,CAAA,CAAA;AAAA,SACjB;AACA,QAAqB,oBAAA,CAAA,QAAA;AAAA,UACnB,uBAAuB,MAAO,CAAA;AAAA,YAC5B,SAAW,EAAA,IAAA;AAAA,YACX,qBAAuB,EAAA;AAAA,cACrB,EAAE,MAAA,EAAQ,WAAa,EAAA,KAAA,EAAO,YAAa,EAAA;AAAA,aAC7C;AAAA,WACD,CAAA;AAAA,SACH,CAAA;AAAA,OACF;AAAA,KACF;AAAA,GACC,EAAA,CAAC,OAAS,EAAA,IAAA,EAAM,IAAI,CAAC,CAAA,CAAA;AAExB,EAAA,4BACG,SACE,EAAA,EAAA,QAAA,EAAA;AAAA,IAAA,CAAC,IAAS,IAAA,IAAA,CAAK,MAAW,KAAA,CAAA,wBAAM,mBAAoB,EAAA,EAAA,CAAA;AAAA,IACpD,IAAM,EAAA,GAAA,CAAI,CAAC,OAAA,EAAS,QACnB,qBAAA,GAAA,CAAC,gBAAiB,EAAA,EAAA,GAAA,EAAK,OAAS,EAAA,QAAA,EAAA,EAAyB,OAAQ,CAAA,EAAI,CACtE,CAAA;AAAA,GACH,EAAA,CAAA,CAAA;AAEJ,CAAA,CAAA;AAEa,MAAA,iBAAA,GAAoB,KAAM,CAAA,IAAA,CAAK,uBAAuB;;;;"}
@@ -1,7 +0,0 @@
1
- import React__default from 'react';
2
- import { TResponsiveTableCellRendererProps } from '../types.js';
3
-
4
- declare const AdditionalColumnDefaultRenderer: React__default.MemoExoticComponent<({ column, cell, }: TResponsiveTableCellRendererProps) => React__default.JSX.Element>;
5
-
6
- export { AdditionalColumnDefaultRenderer };
7
- //# sourceMappingURL=AdditionalColumnDefaultRenderer.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"AdditionalColumnDefaultRenderer.d.ts","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -1,31 +0,0 @@
1
- import { jsxs } from '@apia/theme/jsx-runtime';
2
- import React from 'react';
3
- import { Box } from '@apia/theme';
4
-
5
- const NoMemoAdditionalColumnDefaultRenderer = ({
6
- column,
7
- cell
8
- }) => {
9
- return /* @__PURE__ */ jsxs(
10
- Box,
11
- {
12
- className: `${cell.className ?? ""} responsiveTable__additionalInfoItem`,
13
- id: cell.id,
14
- title: cell.title,
15
- children: [
16
- /* @__PURE__ */ jsxs(Box, { as: "strong", children: [
17
- column.name,
18
- ":"
19
- ] }),
20
- " ",
21
- cell.children
22
- ]
23
- }
24
- );
25
- };
26
- const AdditionalColumnDefaultRenderer = React.memo(
27
- NoMemoAdditionalColumnDefaultRenderer
28
- );
29
-
30
- export { AdditionalColumnDefaultRenderer };
31
- //# sourceMappingURL=AdditionalColumnDefaultRenderer.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"AdditionalColumnDefaultRenderer.js","sources":["../../src/renderers/AdditionalColumnDefaultRenderer.tsx"],"sourcesContent":["import React from 'react';\nimport { Box } from '@apia/theme';\nimport { TResponsiveTableCellRendererProps } from '../types';\n\nconst NoMemoAdditionalColumnDefaultRenderer = ({\n column,\n cell,\n}: TResponsiveTableCellRendererProps) => {\n return (\n <Box\n className={`${cell.className ?? ''} responsiveTable__additionalInfoItem`}\n id={cell.id}\n title={cell.title}\n >\n <Box as=\"strong\">{column.name}:</Box> {cell.children}\n </Box>\n );\n};\n\nexport const AdditionalColumnDefaultRenderer = React.memo(\n NoMemoAdditionalColumnDefaultRenderer,\n);\n"],"names":[],"mappings":";;;;AAIA,MAAM,wCAAwC,CAAC;AAAA,EAC7C,MAAA;AAAA,EACA,IAAA;AACF,CAAyC,KAAA;AACvC,EACE,uBAAA,IAAA;AAAA,IAAC,GAAA;AAAA,IAAA;AAAA,MACC,SAAW,EAAA,CAAA,EAAG,IAAK,CAAA,SAAA,IAAa,EAAE,CAAA,oCAAA,CAAA;AAAA,MAClC,IAAI,IAAK,CAAA,EAAA;AAAA,MACT,OAAO,IAAK,CAAA,KAAA;AAAA,MAEZ,QAAA,EAAA;AAAA,wBAAC,IAAA,CAAA,GAAA,EAAA,EAAI,IAAG,QAAU,EAAA,QAAA,EAAA;AAAA,UAAO,MAAA,CAAA,IAAA;AAAA,UAAK,GAAA;AAAA,SAAC,EAAA,CAAA;AAAA,QAAM,GAAA;AAAA,QAAE,IAAK,CAAA,QAAA;AAAA,OAAA;AAAA,KAAA;AAAA,GAC9C,CAAA;AAEJ,CAAA,CAAA;AAEO,MAAM,kCAAkC,KAAM,CAAA,IAAA;AAAA,EACnD,qCAAA;AACF;;;;"}
@@ -1,11 +0,0 @@
1
- import { TResponsiveTableCell, TResponsiveTableColumn, TResponsiveTableRow } from '../types.js';
2
- import React__default from 'react';
3
-
4
- declare const DefaultCellRenderer: React__default.ForwardRefExoticComponent<{
5
- cell: TResponsiveTableCell<Record<string, unknown>>;
6
- column: TResponsiveTableColumn;
7
- row: TResponsiveTableRow<Record<string, unknown>>;
8
- } & React__default.AllHTMLAttributes<HTMLTableCellElement> & React__default.RefAttributes<HTMLTableCellElement>>;
9
-
10
- export { DefaultCellRenderer };
11
- //# sourceMappingURL=DefaultCellRenderer.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"DefaultCellRenderer.d.ts","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -1,49 +0,0 @@
1
- import { jsx } from '@apia/theme/jsx-runtime';
2
- import React, { useMemo } from 'react';
3
- import { Box } from '@apia/theme';
4
- import { AutoEllipsis } from '@apia/components';
5
-
6
- const NoMemoDefaultCellRenderer = React.forwardRef(
7
- ({
8
- cell: { Renderer, rendererProps, AccordionRenderer, ariaLabel, ...cell },
9
- column,
10
- row,
11
- ...props
12
- }, currentRef) => /* @__PURE__ */ jsx(
13
- Box,
14
- {
15
- as: "td",
16
- sx: useMemo(
17
- () => ({
18
- "&.colored": {
19
- background: cell.background,
20
- color: cell.color,
21
- fontWeight: "bold"
22
- }
23
- }),
24
- [cell.background, cell.color]
25
- ),
26
- ref: currentRef,
27
- ...props,
28
- ...cell,
29
- "aria-label": ariaLabel,
30
- children: /* @__PURE__ */ jsx(
31
- AutoEllipsis,
32
- {
33
- overrideStyles: (el) => {
34
- const td = el.closest("td");
35
- return {
36
- width: window.getComputedStyle(td).width
37
- };
38
- },
39
- children: props.children ?? cell.children
40
- }
41
- )
42
- }
43
- )
44
- );
45
- NoMemoDefaultCellRenderer.displayName = "DefaultCellRenderer";
46
- const DefaultCellRenderer = NoMemoDefaultCellRenderer;
47
-
48
- export { DefaultCellRenderer };
49
- //# sourceMappingURL=DefaultCellRenderer.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"DefaultCellRenderer.js","sources":["../../src/renderers/DefaultCellRenderer.tsx"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport React, { useMemo } from 'react';\nimport { Box } from '@apia/theme';\nimport { TResponsiveTableCellRendererProps } from '../types';\nimport { AutoEllipsis } from '@apia/components';\n\nconst NoMemoDefaultCellRenderer = React.forwardRef<\n HTMLTableCellElement,\n TResponsiveTableCellRendererProps\n>(\n (\n {\n cell: { Renderer, rendererProps, AccordionRenderer, ariaLabel, ...cell },\n column,\n row,\n ...props\n },\n currentRef,\n ) => (\n <Box\n as={'td' as any}\n sx={useMemo(\n () => ({\n '&.colored': {\n background: cell.background,\n color: cell.color,\n fontWeight: 'bold',\n },\n }),\n [cell.background, cell.color],\n )}\n ref={currentRef as React.RefObject<HTMLTableCellElement>}\n {...props}\n {...cell}\n aria-label={ariaLabel as string}\n >\n <AutoEllipsis\n overrideStyles={(el) => {\n const td = el.closest('td') as HTMLElement;\n\n return {\n width: window.getComputedStyle(td).width,\n };\n }}\n >\n {props.children ?? cell.children}\n </AutoEllipsis>\n </Box>\n ),\n);\nNoMemoDefaultCellRenderer.displayName = 'DefaultCellRenderer';\nexport const DefaultCellRenderer = NoMemoDefaultCellRenderer;\n"],"names":[],"mappings":";;;;;AAMA,MAAM,4BAA4B,KAAM,CAAA,UAAA;AAAA,EAItC,CACE;AAAA,IACE,MAAM,EAAE,QAAA,EAAU,eAAe,iBAAmB,EAAA,SAAA,EAAW,GAAG,IAAK,EAAA;AAAA,IACvE,MAAA;AAAA,IACA,GAAA;AAAA,IACA,GAAG,KAAA;AAAA,KAEL,UAEA,qBAAA,GAAA;AAAA,IAAC,GAAA;AAAA,IAAA;AAAA,MACC,EAAI,EAAA,IAAA;AAAA,MACJ,EAAI,EAAA,OAAA;AAAA,QACF,OAAO;AAAA,UACL,WAAa,EAAA;AAAA,YACX,YAAY,IAAK,CAAA,UAAA;AAAA,YACjB,OAAO,IAAK,CAAA,KAAA;AAAA,YACZ,UAAY,EAAA,MAAA;AAAA,WACd;AAAA,SACF,CAAA;AAAA,QACA,CAAC,IAAA,CAAK,UAAY,EAAA,IAAA,CAAK,KAAK,CAAA;AAAA,OAC9B;AAAA,MACA,GAAK,EAAA,UAAA;AAAA,MACJ,GAAG,KAAA;AAAA,MACH,GAAG,IAAA;AAAA,MACJ,YAAY,EAAA,SAAA;AAAA,MAEZ,QAAA,kBAAA,GAAA;AAAA,QAAC,YAAA;AAAA,QAAA;AAAA,UACC,cAAA,EAAgB,CAAC,EAAO,KAAA;AACtB,YAAM,MAAA,EAAA,GAAK,EAAG,CAAA,OAAA,CAAQ,IAAI,CAAA,CAAA;AAE1B,YAAO,OAAA;AAAA,cACL,KAAO,EAAA,MAAA,CAAO,gBAAiB,CAAA,EAAE,CAAE,CAAA,KAAA;AAAA,aACrC,CAAA;AAAA,WACF;AAAA,UAEC,QAAA,EAAA,KAAA,CAAM,YAAY,IAAK,CAAA,QAAA;AAAA,SAAA;AAAA,OAC1B;AAAA,KAAA;AAAA,GACF;AAEJ,CAAA,CAAA;AACA,yBAAA,CAA0B,WAAc,GAAA,qBAAA,CAAA;AACjC,MAAM,mBAAsB,GAAA;;;;"}
@@ -1,6 +0,0 @@
1
- import { TResponsiveTableRowRenderer } from '../types.js';
2
-
3
- declare const DefaultRowRenderer: TResponsiveTableRowRenderer;
4
-
5
- export { DefaultRowRenderer };
6
- //# sourceMappingURL=DefaultRowRenderer.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"DefaultRowRenderer.d.ts","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -1,26 +0,0 @@
1
- import { jsx } from '@apia/theme/jsx-runtime';
2
- import React, { useMemo } from 'react';
3
- import { Box } from '@apia/theme';
4
-
5
- const NoMemoDefaultRowRenderer = React.forwardRef(({ row, rowIndex, ...props }, currentRef) => /* @__PURE__ */ jsx(
6
- Box,
7
- {
8
- as: "tr",
9
- sx: useMemo(
10
- () => ({
11
- "&.colored, & > *": {
12
- color: row.color,
13
- background: row.background
14
- }
15
- }),
16
- [row.background, row.color]
17
- ),
18
- ref: currentRef,
19
- ...props
20
- }
21
- ));
22
- NoMemoDefaultRowRenderer.displayName = "DefaultRowRenderer";
23
- const DefaultRowRenderer = NoMemoDefaultRowRenderer;
24
-
25
- export { DefaultRowRenderer };
26
- //# sourceMappingURL=DefaultRowRenderer.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"DefaultRowRenderer.js","sources":["../../src/renderers/DefaultRowRenderer.tsx"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport React, { useMemo } from 'react';\nimport { Box } from '@apia/theme';\nimport {\n TResponsiveTableRowRenderer,\n TResponsiveTableRowRendererProps,\n} from '../types';\n\nconst NoMemoDefaultRowRenderer: TResponsiveTableRowRenderer = React.forwardRef<\n HTMLTableRowElement,\n TResponsiveTableRowRendererProps\n>(({ row, rowIndex, ...props }, currentRef) => (\n <Box\n as={'tr' as any}\n sx={useMemo(\n () => ({\n '&.colored, & > *': {\n color: row.color,\n background: row.background,\n },\n }),\n [row.background, row.color],\n )}\n ref={currentRef as React.RefObject<HTMLTableRowElement>}\n {...props}\n />\n));\n\nNoMemoDefaultRowRenderer.displayName = 'DefaultRowRenderer';\n\nexport const DefaultRowRenderer = NoMemoDefaultRowRenderer;\n"],"names":[],"mappings":";;;;AAQA,MAAM,wBAAA,GAAwD,KAAM,CAAA,UAAA,CAGlE,CAAC,EAAE,KAAK,QAAU,EAAA,GAAG,KAAM,EAAA,EAAG,UAC9B,qBAAA,GAAA;AAAA,EAAC,GAAA;AAAA,EAAA;AAAA,IACC,EAAI,EAAA,IAAA;AAAA,IACJ,EAAI,EAAA,OAAA;AAAA,MACF,OAAO;AAAA,QACL,kBAAoB,EAAA;AAAA,UAClB,OAAO,GAAI,CAAA,KAAA;AAAA,UACX,YAAY,GAAI,CAAA,UAAA;AAAA,SAClB;AAAA,OACF,CAAA;AAAA,MACA,CAAC,GAAA,CAAI,UAAY,EAAA,GAAA,CAAI,KAAK,CAAA;AAAA,KAC5B;AAAA,IACA,GAAK,EAAA,UAAA;AAAA,IACJ,GAAG,KAAA;AAAA,GAAA;AACN,CACD,CAAA,CAAA;AAED,wBAAA,CAAyB,WAAc,GAAA,oBAAA,CAAA;AAEhC,MAAM,kBAAqB,GAAA;;;;"}
@@ -1,10 +0,0 @@
1
- import { TResponsiveTableCellRenderer } from '../types.js';
2
-
3
- type TDocNameCellRendererProps = {
4
- docName: string;
5
- docUrl: string;
6
- };
7
- declare const DocNameCellRenderer: TResponsiveTableCellRenderer<TDocNameCellRendererProps>;
8
-
9
- export { DocNameCellRenderer, type TDocNameCellRendererProps };
10
- //# sourceMappingURL=DocNameCellRenderer.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"DocNameCellRenderer.d.ts","sources":[],"sourcesContent":[],"names":[],"mappings":""}