@apia/table 2.0.9 → 2.0.11
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.
- package/dist/Cell.js +52 -0
- package/dist/Cell.js.map +1 -0
- package/dist/FilterCell.js +68 -0
- package/dist/FilterCell.js.map +1 -0
- package/dist/Header.js +171 -0
- package/dist/Header.js.map +1 -0
- package/dist/HeaderCell.js +223 -0
- package/dist/HeaderCell.js.map +1 -0
- package/dist/KeyHandler.js +28 -0
- package/dist/KeyHandler.js.map +1 -0
- package/dist/ResponsiveTable.d.ts +8 -0
- package/dist/ResponsiveTable.d.ts.map +1 -0
- package/dist/ResponsiveTable.js +29 -0
- package/dist/ResponsiveTable.js.map +1 -0
- package/dist/ResponsiveTableContext.d.ts +8 -0
- package/dist/ResponsiveTableContext.d.ts.map +1 -0
- package/dist/ResponsiveTableContext.js +143 -0
- package/dist/ResponsiveTableContext.js.map +1 -0
- package/dist/Row.js +230 -0
- package/dist/Row.js.map +1 -0
- package/dist/SeparatorCell.js +20 -0
- package/dist/SeparatorCell.js.map +1 -0
- package/dist/StateCell.js +19 -0
- package/dist/StateCell.js.map +1 -0
- package/dist/filters/RangeFilter.js +61 -0
- package/dist/filters/RangeFilter.js.map +1 -0
- package/dist/index.d.ts +24 -787
- package/dist/index.js +24 -3648
- package/dist/index.js.map +1 -1
- package/dist/renderers/AccordionCell.d.ts +15 -0
- package/dist/renderers/AccordionCell.d.ts.map +1 -0
- package/dist/renderers/AccordionCell.js +23 -0
- package/dist/renderers/AccordionCell.js.map +1 -0
- package/dist/renderers/AccordionDocNameCellRenderer.d.ts +11 -0
- package/dist/renderers/AccordionDocNameCellRenderer.d.ts.map +1 -0
- package/dist/renderers/AccordionDocNameCellRenderer.js +39 -0
- package/dist/renderers/AccordionDocNameCellRenderer.js.map +1 -0
- package/dist/renderers/AccordionElement.d.ts +11 -0
- package/dist/renderers/AccordionElement.d.ts.map +1 -0
- package/dist/renderers/AccordionElement.js +115 -0
- package/dist/renderers/AccordionElement.js.map +1 -0
- package/dist/renderers/AccordionHTMLCellRenderer.d.ts +8 -0
- package/dist/renderers/AccordionHTMLCellRenderer.d.ts.map +1 -0
- package/dist/renderers/AccordionHTMLCellRenderer.js +37 -0
- package/dist/renderers/AccordionHTMLCellRenderer.js.map +1 -0
- package/dist/renderers/AccordionRenderer.d.ts +6 -0
- package/dist/renderers/AccordionRenderer.d.ts.map +1 -0
- package/dist/renderers/AccordionRenderer.js +76 -0
- package/dist/renderers/AccordionRenderer.js.map +1 -0
- package/dist/renderers/AdditionalColumnDefaultRenderer.d.ts +7 -0
- package/dist/renderers/AdditionalColumnDefaultRenderer.d.ts.map +1 -0
- package/dist/renderers/AdditionalColumnDefaultRenderer.js +31 -0
- package/dist/renderers/AdditionalColumnDefaultRenderer.js.map +1 -0
- package/dist/renderers/DefaultCellRenderer.d.ts +11 -0
- package/dist/renderers/DefaultCellRenderer.d.ts.map +1 -0
- package/dist/renderers/DefaultCellRenderer.js +49 -0
- package/dist/renderers/DefaultCellRenderer.js.map +1 -0
- package/dist/renderers/DefaultRowRenderer.d.ts +6 -0
- package/dist/renderers/DefaultRowRenderer.d.ts.map +1 -0
- package/dist/renderers/DefaultRowRenderer.js +26 -0
- package/dist/renderers/DefaultRowRenderer.js.map +1 -0
- package/dist/renderers/DocNameCellRenderer.d.ts +10 -0
- package/dist/renderers/DocNameCellRenderer.d.ts.map +1 -0
- package/dist/renderers/DocNameCellRenderer.js +43 -0
- package/dist/renderers/DocNameCellRenderer.js.map +1 -0
- package/dist/renderers/HTMLCellRenderer.d.ts +8 -0
- package/dist/renderers/HTMLCellRenderer.d.ts.map +1 -0
- package/dist/renderers/HTMLCellRenderer.js +29 -0
- package/dist/renderers/HTMLCellRenderer.js.map +1 -0
- package/dist/renderers/IsLoadingRenderer.d.ts +6 -0
- package/dist/renderers/IsLoadingRenderer.d.ts.map +1 -0
- package/dist/renderers/IsLoadingRenderer.js +9 -0
- package/dist/renderers/IsLoadingRenderer.js.map +1 -0
- package/dist/renderers/NoRegistersRenderer.d.ts +6 -0
- package/dist/renderers/NoRegistersRenderer.d.ts.map +1 -0
- package/dist/renderers/NoRegistersRenderer.js +11 -0
- package/dist/renderers/NoRegistersRenderer.js.map +1 -0
- package/dist/renderers/PriorityAccordionRenderer.d.ts +6 -0
- package/dist/renderers/PriorityAccordionRenderer.d.ts.map +1 -0
- package/dist/renderers/PriorityAccordionRenderer.js +36 -0
- package/dist/renderers/PriorityAccordionRenderer.js.map +1 -0
- package/dist/renderers/PriorityRenderer.d.ts +9 -0
- package/dist/renderers/PriorityRenderer.d.ts.map +1 -0
- package/dist/renderers/PriorityRenderer.js +46 -0
- package/dist/renderers/PriorityRenderer.js.map +1 -0
- package/dist/renderers/RowStatesRenderer.d.ts +9 -0
- package/dist/renderers/RowStatesRenderer.d.ts.map +1 -0
- package/dist/renderers/RowStatesRenderer.js +34 -0
- package/dist/renderers/RowStatesRenderer.js.map +1 -0
- package/dist/renderers/StatusAccordionRenderer.d.ts +6 -0
- package/dist/renderers/StatusAccordionRenderer.d.ts.map +1 -0
- package/dist/renderers/StatusAccordionRenderer.js +23 -0
- package/dist/renderers/StatusAccordionRenderer.js.map +1 -0
- package/dist/renderers/StatusRenderer.d.ts +9 -0
- package/dist/renderers/StatusRenderer.d.ts.map +1 -0
- package/dist/renderers/StatusRenderer.js +54 -0
- package/dist/renderers/StatusRenderer.js.map +1 -0
- package/dist/renderers/TableRenderer.d.ts +6 -0
- package/dist/renderers/TableRenderer.d.ts.map +1 -0
- package/dist/renderers/TableRenderer.js +50 -0
- package/dist/renderers/TableRenderer.js.map +1 -0
- package/dist/renderers/makeAccordionAsyncRenderer.d.ts +9 -0
- package/dist/renderers/makeAccordionAsyncRenderer.d.ts.map +1 -0
- package/dist/renderers/makeAccordionAsyncRenderer.js +35 -0
- package/dist/renderers/makeAccordionAsyncRenderer.js.map +1 -0
- package/dist/renderers/makeAsyncRenderer.d.ts +10 -0
- package/dist/renderers/makeAsyncRenderer.d.ts.map +1 -0
- package/dist/renderers/makeAsyncRenderer.js +47 -0
- package/dist/renderers/makeAsyncRenderer.js.map +1 -0
- package/dist/store/index.d.ts +72 -0
- package/dist/store/index.d.ts.map +1 -0
- package/dist/store/index.js +131 -0
- package/dist/store/index.js.map +1 -0
- package/dist/store/selection/getInitialState.js +22 -0
- package/dist/store/selection/getInitialState.js.map +1 -0
- package/dist/store/selection/getReduxActions.js +42 -0
- package/dist/store/selection/getReduxActions.js.map +1 -0
- package/dist/store/selection/handleKey.js +143 -0
- package/dist/store/selection/handleKey.js.map +1 -0
- package/dist/store/selection/makeKeyHandler.js +336 -0
- package/dist/store/selection/makeKeyHandler.js.map +1 -0
- package/dist/store/selection/setNewFocused.js +101 -0
- package/dist/store/selection/setNewFocused.js.map +1 -0
- package/dist/store/selection/types.d.ts +150 -0
- package/dist/store/selection/types.d.ts.map +1 -0
- package/dist/store/selection/useDomProps.js +181 -0
- package/dist/store/selection/useDomProps.js.map +1 -0
- package/dist/store/types.d.ts +19 -0
- package/dist/store/types.d.ts.map +1 -0
- package/dist/types.d.ts +315 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +6 -0
- package/dist/types.js.map +1 -0
- package/package.json +7 -7
|
@@ -0,0 +1,15 @@
|
|
|
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
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AccordionCell.d.ts","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
|
@@ -0,0 +1,23 @@
|
|
|
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
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AccordionCell.js","sources":["../../src/renderers/AccordionCell.tsx"],"sourcesContent":["import { Box } from '@apia/theme';\r\nimport { FunctionComponent } from 'react';\r\nimport {\r\n TResponsiveTableCell,\r\n TResponsiveTableColumn,\r\n TResponsiveTableRow,\r\n} from '../types';\r\n\r\nexport type TAccordionCellRendererProps<CellProps = Record<string, unknown>> = {\r\n cell: TResponsiveTableCell<CellProps>;\r\n column: TResponsiveTableColumn;\r\n columnIndex: number;\r\n row: TResponsiveTableRow;\r\n rowIndex: number;\r\n};\r\n\r\nexport type TAccordionCellRenderer<CellProps = Record<string, unknown>> =\r\n FunctionComponent<TAccordionCellRendererProps<CellProps>>;\r\n\r\nconst NoMemoAccordionCell: TAccordionCellRenderer = ({ cell, column }) => {\r\n return (\r\n <Box\r\n key={column.name}\r\n className={`responsiveTable__accordionElement__column ${\r\n cell.className ?? ''\r\n }`}\r\n >\r\n <Box as=\"strong\">{column.label ?? column.name}: </Box>\r\n <Box as=\"span\" sx={{ color: cell.color, background: cell.background }}>\r\n {cell?.children}\r\n </Box>\r\n </Box>\r\n );\r\n};\r\n\r\nexport const AccordionCell = NoMemoAccordionCell;\r\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;;;;"}
|
|
@@ -0,0 +1,11 @@
|
|
|
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
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AccordionDocNameCellRenderer.d.ts","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
|
@@ -0,0 +1,39 @@
|
|
|
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
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AccordionDocNameCellRenderer.js","sources":["../../src/renderers/AccordionDocNameCellRenderer.tsx"],"sourcesContent":["import React from 'react';\r\nimport { Box, Link } from '@apia/theme';\r\nimport { downloadUrl } from '@apia/util';\r\nimport { Icon } from '@apia/icons';\r\nimport {\r\n TAccordionCellRenderer,\r\n TAccordionCellRendererProps,\r\n} from './AccordionCell';\r\n\r\nexport type TDocNameCellRendererProps = {\r\n docName: string;\r\n docUrl: string;\r\n};\r\n\r\nexport type TDocNameCellRenderer =\r\n TAccordionCellRendererProps<TDocNameCellRendererProps>;\r\n\r\nconst NoMemoAccordionDocNameCellRenderer: TAccordionCellRenderer<TDocNameCellRendererProps> =\r\n React.forwardRef<HTMLElement, TDocNameCellRenderer>(\r\n (\r\n {\r\n cell: { children, Renderer, rendererProps, AccordionRenderer, ...cell },\r\n column,\r\n },\r\n currentRef,\r\n ) => (\r\n <Box ref={currentRef as React.RefObject<HTMLElement>} {...cell}>\r\n <Box as=\"strong\">{column.label ?? column.name}: </Box>\r\n <Link\r\n className=\"cell__download__document\"\r\n title={rendererProps?.docName}\r\n href={rendererProps?.docUrl}\r\n onClick={(ev) => {\r\n ev.preventDefault();\r\n if (rendererProps?.docUrl) void downloadUrl(rendererProps?.docUrl);\r\n }}\r\n >\r\n <Icon title=\"\" name=\"Download\" />\r\n {rendererProps?.docName}\r\n </Link>\r\n </Box>\r\n ),\r\n );\r\n\r\nNoMemoAccordionDocNameCellRenderer.displayName = 'AccordionDocNameCellRenderer';\r\n\r\nexport const AccordionDocNameCellRenderer = NoMemoAccordionDocNameCellRenderer;\r\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;;;;"}
|
|
@@ -0,0 +1,11 @@
|
|
|
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
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AccordionElement.d.ts","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
|
@@ -0,0 +1,115 @@
|
|
|
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
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AccordionElement.js","sources":["../../src/renderers/AccordionElement.tsx"],"sourcesContent":["import React, { memo, useMemo } from 'react';\r\nimport { shallowEqual } from 'react-redux';\r\nimport { useResponsiveTableContext } from '../ResponsiveTableContext';\r\nimport { TResponsiveTableRow } from '../types';\r\nimport { AccordionCell } from './AccordionCell';\r\nimport {\r\n responsiveTableActions,\r\n responsiveTableStore,\r\n useResponsiveTable,\r\n} from '../store';\r\nimport { AccordionItem, IAccordionItemButton } from '@apia/components';\r\n\r\nexport interface IAccordionElement {\r\n row: TResponsiveTableRow;\r\n rowIndex: number;\r\n}\r\n\r\nconst NoMemoAccordionElement = ({ row, rowIndex }: IAccordionElement) => {\r\n const { name } = useResponsiveTableContext();\r\n\r\n const indexColumns = useResponsiveTable((global) => {\r\n const tableState = global.responsiveTableSlice[name];\r\n return tableState?.accordionIndexColumns;\r\n }, shallowEqual);\r\n const columns = useResponsiveTable((global) => {\r\n const tableState = global.responsiveTableSlice[name];\r\n return tableState?.columns;\r\n }, shallowEqual);\r\n\r\n const title = React.useMemo(() => {\r\n if (row.title) return row.title;\r\n if (Array.isArray(indexColumns))\r\n return indexColumns\r\n .map(\r\n (current) =>\r\n // eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing\r\n row.cells[current.index].title ||\r\n (row.cells[current.index].children as string),\r\n )\r\n .join(' | ');\r\n return row.cells[0].title ?? (row.cells[0].children as string);\r\n }, [indexColumns, row.cells, row.title]);\r\n const isSelected = useResponsiveTable((global) =>\r\n global.responsiveTableSlice[name].allowSelection !== false\r\n ? global.responsiveTableSlice[name].selectedRows.includes(rowIndex)\r\n : undefined,\r\n );\r\n const isFocused = useResponsiveTable(\r\n (global) => global.responsiveTableSlice[name].focusedRow === rowIndex,\r\n );\r\n const buttonProps = useMemo<IAccordionItemButton>(\r\n () => ({\r\n title,\r\n ariaLabel: title,\r\n label: title,\r\n checked: isSelected,\r\n onChange: (isChecked: boolean) => {\r\n const isMultiple =\r\n responsiveTableStore.getState().responsiveTableSlice[name].isMultiple;\r\n responsiveTableStore.dispatch(\r\n responsiveTableActions.update({\r\n tableName: name,\r\n selectedRows: isMultiple\r\n ? isChecked\r\n ? [\r\n ...responsiveTableStore.getState().responsiveTableSlice[\r\n name\r\n ].selectedRows,\r\n rowIndex,\r\n ]\r\n : responsiveTableStore\r\n .getState()\r\n .responsiveTableSlice[name].selectedRows.filter(\r\n (current) => current !== rowIndex,\r\n )\r\n : [rowIndex],\r\n }),\r\n );\r\n },\r\n tabIndex: isFocused ? 0 : -1,\r\n rightButtons: row.accordionButtonProps?.rightButtons,\r\n onUserPressEnter: row.accordionButtonProps?.onUserPressEnter,\r\n domButtonProps: {\r\n buttonSx: {\r\n '&.accordion__item__button .accordion__item__button__label': {\r\n color: row.color,\r\n },\r\n },\r\n },\r\n }),\r\n [\r\n isFocused,\r\n isSelected,\r\n name,\r\n row.accordionButtonProps?.onUserPressEnter,\r\n row.accordionButtonProps?.rightButtons,\r\n row.color,\r\n rowIndex,\r\n title,\r\n ],\r\n );\r\n\r\n if (!Array.isArray(indexColumns) || !columns) return null;\r\n\r\n return (\r\n <AccordionItem id={row.id} buttonProps={buttonProps}>\r\n {columns.map((currentColumn, columnIndex) => {\r\n const Renderer =\r\n row.cells[columnIndex].AccordionRenderer ??\r\n currentColumn.AccordionRenderer ??\r\n AccordionCell;\r\n\r\n return currentColumn.hideFromAccordion ||\r\n currentColumn.showAsAdditional ? null : (\r\n <Renderer\r\n cell={row.cells[columnIndex]}\r\n column={currentColumn}\r\n columnIndex={columnIndex}\r\n key={currentColumn.name}\r\n row={row}\r\n rowIndex={rowIndex}\r\n />\r\n );\r\n })}\r\n\r\n {columns\r\n .filter((current) => !!current.showAsAdditional)\r\n .map((currentColumn, columnIndex) => {\r\n const Renderer =\r\n row.cells[columnIndex].AccordionRenderer ??\r\n currentColumn.AccordionRenderer ??\r\n AccordionCell;\r\n\r\n return currentColumn.hideFromAccordion ? null : (\r\n <Renderer\r\n cell={row.cells[columnIndex]}\r\n column={currentColumn}\r\n columnIndex={columnIndex}\r\n key={currentColumn.name}\r\n row={row}\r\n rowIndex={rowIndex}\r\n />\r\n );\r\n })}\r\n </AccordionItem>\r\n );\r\n};\r\n\r\nexport const AccordionElement = memo(NoMemoAccordionElement);\r\n"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AccordionHTMLCellRenderer.d.ts","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
|
@@ -0,0 +1,37 @@
|
|
|
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
|
+
"<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
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AccordionHTMLCellRenderer.js","sources":["../../src/renderers/AccordionHTMLCellRenderer.tsx"],"sourcesContent":["import React from 'react';\r\nimport { Box } from '@apia/theme';\r\nimport { TResponsiveTableCellRendererProps } from '../types';\r\nimport { TAccordionCellRenderer } from './AccordionCell';\r\n\r\nconst NoMemoAccordionHTMLCellRenderer: TAccordionCellRenderer<{\r\n html: string;\r\n}> = React.forwardRef<\r\n HTMLSpanElement,\r\n TResponsiveTableCellRendererProps<{ html: string }>\r\n>(\r\n (\r\n {\r\n cell: { children, Renderer, rendererProps, AccordionRenderer, ...cell },\r\n column,\r\n row,\r\n ...props\r\n },\r\n currentRef,\r\n ) => (\r\n /**\r\n * Aca falta el title de la columna\r\n */\r\n <Box\r\n ref={currentRef as React.RefObject<HTMLTableCellElement>}\r\n {...props}\r\n {...cell}\r\n className=\"accordion__cell__renderer\"\r\n dangerouslySetInnerHTML={{\r\n __html: String(rendererProps?.html ?? children ?? '').replaceAll(\r\n /<TOK(\\d+)/g,\r\n '<TOK$1',\r\n ),\r\n }}\r\n as=\"span\"\r\n />\r\n ),\r\n);\r\n\r\nNoMemoAccordionHTMLCellRenderer.displayName = 'AccordionHTMLCellRenderer';\r\n\r\nexport const AccordionHTMLCellRenderer = NoMemoAccordionHTMLCellRenderer;\r\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;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AccordionRenderer.d.ts","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
|
@@ -0,0 +1,76 @@
|
|
|
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
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AccordionRenderer.js","sources":["../../src/renderers/AccordionRenderer.tsx"],"sourcesContent":["import React from 'react';\r\nimport { shallowEqual } from 'react-redux';\r\nimport { useResponsiveTableContext } from '../ResponsiveTableContext';\r\nimport { TResponsiveTableColumn } from '../types';\r\nimport { AccordionElement } from './AccordionElement';\r\nimport { NoRegistersRenderer } from './NoRegistersRenderer';\r\nimport {\r\n responsiveTableActions,\r\n useResponsiveTable,\r\n responsiveTableStore,\r\n} from '../store';\r\nimport { TResponsiveTableIndexColumns } from '../store/types';\r\nimport { Accordion } from '@apia/components';\r\n\r\nconst NoMemoAccordionRenderer = () => {\r\n const { name } = useResponsiveTableContext();\r\n\r\n const { columns, rows } = useResponsiveTable((global) => {\r\n const tableState = global.responsiveTableSlice[name];\r\n return {\r\n columns: tableState?.columns,\r\n rows: tableState?.rows,\r\n };\r\n }, shallowEqual);\r\n\r\n React.useEffect(() => {\r\n /**\r\n * Método para seleccionar qué columnas se utilizarán\r\n * como cabezal en cada fila.\r\n *\r\n * - Si existe al menos una columna marcada con showInAccordionTitle,\r\n * todas las columnas que estén marcadas con esta propiedad serán\r\n * mostradas como parte del título.\r\n *\r\n * - Si no existe ninguna, se busca cuál es la primera columna\r\n * que no tiene ninguna entrada vacía y se utiliza como título\r\n * del acordión.\r\n *\r\n * - Si ninguna columna no tiene ninguna fila vacía, entonces se\r\n * utiliza la primera columna.\r\n */\r\n\r\n if (columns && rows) {\r\n /**\r\n * Buscar columnas marcadas\r\n */\r\n const markedAsTitleColumns: TResponsiveTableIndexColumns = [];\r\n columns.forEach((column, index) => {\r\n if (column.showInAccordionTitle)\r\n markedAsTitleColumns.push({ column, index });\r\n });\r\n if (markedAsTitleColumns.length > 0) {\r\n responsiveTableStore.dispatch(\r\n responsiveTableActions.update({\r\n tableName: name,\r\n accordionIndexColumns: markedAsTitleColumns,\r\n }),\r\n );\r\n } else {\r\n /**\r\n * No se encontró ninguna columna marcada, se busca la primera sin\r\n * entradas vacías.\r\n */\r\n const columnsLength = columns.length;\r\n let indexColumn: TResponsiveTableColumn | null = null;\r\n let currentIndex = 0;\r\n\r\n while (!indexColumn && currentIndex < columns.length) {\r\n let isAnyEmptyRow = false;\r\n // eslint-disable-next-line no-restricted-syntax\r\n for (const row of rows) {\r\n if (!row.cells[currentIndex].children) {\r\n isAnyEmptyRow = true;\r\n break;\r\n }\r\n }\r\n if (!isAnyEmptyRow && columns[currentIndex]) {\r\n indexColumn = columns[currentIndex];\r\n } else {\r\n currentIndex += 1;\r\n if (currentIndex === columnsLength) break;\r\n }\r\n }\r\n if (!indexColumn) {\r\n /**\r\n * No hay ninguna sin ninguna entrada vacía,\r\n * se usa la primera columna.\r\n */\r\n [indexColumn] = columns;\r\n currentIndex = 0;\r\n }\r\n responsiveTableStore.dispatch(\r\n responsiveTableActions.update({\r\n tableName: name,\r\n accordionIndexColumns: [\r\n { column: indexColumn, index: currentIndex },\r\n ],\r\n }),\r\n );\r\n }\r\n }\r\n }, [columns, name, rows]);\r\n\r\n return (\r\n <Accordion>\r\n {!rows || (rows.length === 0 && <NoRegistersRenderer />)}\r\n {rows?.map((current, rowIndex) => (\r\n <AccordionElement row={current} rowIndex={rowIndex} key={current.id} />\r\n ))}\r\n </Accordion>\r\n );\r\n};\r\n\r\nexport const AccordionRenderer = React.memo(NoMemoAccordionRenderer);\r\n"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
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
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AdditionalColumnDefaultRenderer.d.ts","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
|
@@ -0,0 +1,31 @@
|
|
|
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
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AdditionalColumnDefaultRenderer.js","sources":["../../src/renderers/AdditionalColumnDefaultRenderer.tsx"],"sourcesContent":["import React from 'react';\r\nimport { Box } from '@apia/theme';\r\nimport { TResponsiveTableCellRendererProps } from '../types';\r\n\r\nconst NoMemoAdditionalColumnDefaultRenderer = ({\r\n column,\r\n cell,\r\n}: TResponsiveTableCellRendererProps) => {\r\n return (\r\n <Box\r\n className={`${cell.className ?? ''} responsiveTable__additionalInfoItem`}\r\n id={cell.id}\r\n title={cell.title}\r\n >\r\n <Box as=\"strong\">{column.name}:</Box> {cell.children}\r\n </Box>\r\n );\r\n};\r\n\r\nexport const AdditionalColumnDefaultRenderer = React.memo(\r\n NoMemoAdditionalColumnDefaultRenderer,\r\n);\r\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;;;;"}
|
|
@@ -0,0 +1,11 @@
|
|
|
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
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DefaultCellRenderer.d.ts","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
|
@@ -0,0 +1,49 @@
|
|
|
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
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DefaultCellRenderer.js","sources":["../../src/renderers/DefaultCellRenderer.tsx"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\r\nimport React, { useMemo } from 'react';\r\nimport { Box } from '@apia/theme';\r\nimport { TResponsiveTableCellRendererProps } from '../types';\r\nimport { AutoEllipsis } from '@apia/components';\r\n\r\nconst NoMemoDefaultCellRenderer = React.forwardRef<\r\n HTMLTableCellElement,\r\n TResponsiveTableCellRendererProps\r\n>(\r\n (\r\n {\r\n cell: { Renderer, rendererProps, AccordionRenderer, ariaLabel, ...cell },\r\n column,\r\n row,\r\n ...props\r\n },\r\n currentRef,\r\n ) => (\r\n <Box\r\n as={'td' as any}\r\n sx={useMemo(\r\n () => ({\r\n '&.colored': {\r\n background: cell.background,\r\n color: cell.color,\r\n fontWeight: 'bold',\r\n },\r\n }),\r\n [cell.background, cell.color],\r\n )}\r\n ref={currentRef as React.RefObject<HTMLTableCellElement>}\r\n {...props}\r\n {...cell}\r\n aria-label={ariaLabel as string}\r\n >\r\n <AutoEllipsis\r\n overrideStyles={(el) => {\r\n const td = el.closest('td') as HTMLElement;\r\n\r\n return {\r\n width: window.getComputedStyle(td).width,\r\n };\r\n }}\r\n >\r\n {props.children ?? cell.children}\r\n </AutoEllipsis>\r\n </Box>\r\n ),\r\n);\r\nNoMemoDefaultCellRenderer.displayName = 'DefaultCellRenderer';\r\nexport const DefaultCellRenderer = NoMemoDefaultCellRenderer;\r\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;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DefaultRowRenderer.d.ts","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
|
@@ -0,0 +1,26 @@
|
|
|
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
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DefaultRowRenderer.js","sources":["../../src/renderers/DefaultRowRenderer.tsx"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\r\nimport React, { useMemo } from 'react';\r\nimport { Box } from '@apia/theme';\r\nimport {\r\n TResponsiveTableRowRenderer,\r\n TResponsiveTableRowRendererProps,\r\n} from '../types';\r\n\r\nconst NoMemoDefaultRowRenderer: TResponsiveTableRowRenderer = React.forwardRef<\r\n HTMLTableRowElement,\r\n TResponsiveTableRowRendererProps\r\n>(({ row, rowIndex, ...props }, currentRef) => (\r\n <Box\r\n as={'tr' as any}\r\n sx={useMemo(\r\n () => ({\r\n '&.colored, & > *': {\r\n color: row.color,\r\n background: row.background,\r\n },\r\n }),\r\n [row.background, row.color],\r\n )}\r\n ref={currentRef as React.RefObject<HTMLTableRowElement>}\r\n {...props}\r\n />\r\n));\r\n\r\nNoMemoDefaultRowRenderer.displayName = 'DefaultRowRenderer';\r\n\r\nexport const DefaultRowRenderer = NoMemoDefaultRowRenderer;\r\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;;;;"}
|
|
@@ -0,0 +1,10 @@
|
|
|
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
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DocNameCellRenderer.d.ts","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|