@apia/table 2.0.9 → 2.0.10

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/Cell.js +52 -0
  2. package/dist/Cell.js.map +1 -0
  3. package/dist/FilterCell.js +68 -0
  4. package/dist/FilterCell.js.map +1 -0
  5. package/dist/Header.js +171 -0
  6. package/dist/Header.js.map +1 -0
  7. package/dist/HeaderCell.js +223 -0
  8. package/dist/HeaderCell.js.map +1 -0
  9. package/dist/KeyHandler.js +28 -0
  10. package/dist/KeyHandler.js.map +1 -0
  11. package/dist/ResponsiveTable.d.ts +8 -0
  12. package/dist/ResponsiveTable.d.ts.map +1 -0
  13. package/dist/ResponsiveTable.js +29 -0
  14. package/dist/ResponsiveTable.js.map +1 -0
  15. package/dist/ResponsiveTableContext.d.ts +8 -0
  16. package/dist/ResponsiveTableContext.d.ts.map +1 -0
  17. package/dist/ResponsiveTableContext.js +143 -0
  18. package/dist/ResponsiveTableContext.js.map +1 -0
  19. package/dist/Row.js +230 -0
  20. package/dist/Row.js.map +1 -0
  21. package/dist/SeparatorCell.js +20 -0
  22. package/dist/SeparatorCell.js.map +1 -0
  23. package/dist/StateCell.js +19 -0
  24. package/dist/StateCell.js.map +1 -0
  25. package/dist/filters/RangeFilter.js +61 -0
  26. package/dist/filters/RangeFilter.js.map +1 -0
  27. package/dist/index.d.ts +24 -787
  28. package/dist/index.js +24 -3648
  29. package/dist/index.js.map +1 -1
  30. package/dist/renderers/AccordionCell.d.ts +15 -0
  31. package/dist/renderers/AccordionCell.d.ts.map +1 -0
  32. package/dist/renderers/AccordionCell.js +23 -0
  33. package/dist/renderers/AccordionCell.js.map +1 -0
  34. package/dist/renderers/AccordionDocNameCellRenderer.d.ts +11 -0
  35. package/dist/renderers/AccordionDocNameCellRenderer.d.ts.map +1 -0
  36. package/dist/renderers/AccordionDocNameCellRenderer.js +39 -0
  37. package/dist/renderers/AccordionDocNameCellRenderer.js.map +1 -0
  38. package/dist/renderers/AccordionElement.d.ts +11 -0
  39. package/dist/renderers/AccordionElement.d.ts.map +1 -0
  40. package/dist/renderers/AccordionElement.js +115 -0
  41. package/dist/renderers/AccordionElement.js.map +1 -0
  42. package/dist/renderers/AccordionHTMLCellRenderer.d.ts +8 -0
  43. package/dist/renderers/AccordionHTMLCellRenderer.d.ts.map +1 -0
  44. package/dist/renderers/AccordionHTMLCellRenderer.js +37 -0
  45. package/dist/renderers/AccordionHTMLCellRenderer.js.map +1 -0
  46. package/dist/renderers/AccordionRenderer.d.ts +6 -0
  47. package/dist/renderers/AccordionRenderer.d.ts.map +1 -0
  48. package/dist/renderers/AccordionRenderer.js +76 -0
  49. package/dist/renderers/AccordionRenderer.js.map +1 -0
  50. package/dist/renderers/AdditionalColumnDefaultRenderer.d.ts +7 -0
  51. package/dist/renderers/AdditionalColumnDefaultRenderer.d.ts.map +1 -0
  52. package/dist/renderers/AdditionalColumnDefaultRenderer.js +31 -0
  53. package/dist/renderers/AdditionalColumnDefaultRenderer.js.map +1 -0
  54. package/dist/renderers/DefaultCellRenderer.d.ts +11 -0
  55. package/dist/renderers/DefaultCellRenderer.d.ts.map +1 -0
  56. package/dist/renderers/DefaultCellRenderer.js +49 -0
  57. package/dist/renderers/DefaultCellRenderer.js.map +1 -0
  58. package/dist/renderers/DefaultRowRenderer.d.ts +6 -0
  59. package/dist/renderers/DefaultRowRenderer.d.ts.map +1 -0
  60. package/dist/renderers/DefaultRowRenderer.js +26 -0
  61. package/dist/renderers/DefaultRowRenderer.js.map +1 -0
  62. package/dist/renderers/DocNameCellRenderer.d.ts +10 -0
  63. package/dist/renderers/DocNameCellRenderer.d.ts.map +1 -0
  64. package/dist/renderers/DocNameCellRenderer.js +43 -0
  65. package/dist/renderers/DocNameCellRenderer.js.map +1 -0
  66. package/dist/renderers/HTMLCellRenderer.d.ts +8 -0
  67. package/dist/renderers/HTMLCellRenderer.d.ts.map +1 -0
  68. package/dist/renderers/HTMLCellRenderer.js +29 -0
  69. package/dist/renderers/HTMLCellRenderer.js.map +1 -0
  70. package/dist/renderers/IsLoadingRenderer.d.ts +6 -0
  71. package/dist/renderers/IsLoadingRenderer.d.ts.map +1 -0
  72. package/dist/renderers/IsLoadingRenderer.js +9 -0
  73. package/dist/renderers/IsLoadingRenderer.js.map +1 -0
  74. package/dist/renderers/NoRegistersRenderer.d.ts +6 -0
  75. package/dist/renderers/NoRegistersRenderer.d.ts.map +1 -0
  76. package/dist/renderers/NoRegistersRenderer.js +11 -0
  77. package/dist/renderers/NoRegistersRenderer.js.map +1 -0
  78. package/dist/renderers/PriorityAccordionRenderer.d.ts +6 -0
  79. package/dist/renderers/PriorityAccordionRenderer.d.ts.map +1 -0
  80. package/dist/renderers/PriorityAccordionRenderer.js +36 -0
  81. package/dist/renderers/PriorityAccordionRenderer.js.map +1 -0
  82. package/dist/renderers/PriorityRenderer.d.ts +9 -0
  83. package/dist/renderers/PriorityRenderer.d.ts.map +1 -0
  84. package/dist/renderers/PriorityRenderer.js +46 -0
  85. package/dist/renderers/PriorityRenderer.js.map +1 -0
  86. package/dist/renderers/RowStatesRenderer.d.ts +9 -0
  87. package/dist/renderers/RowStatesRenderer.d.ts.map +1 -0
  88. package/dist/renderers/RowStatesRenderer.js +34 -0
  89. package/dist/renderers/RowStatesRenderer.js.map +1 -0
  90. package/dist/renderers/StatusAccordionRenderer.d.ts +6 -0
  91. package/dist/renderers/StatusAccordionRenderer.d.ts.map +1 -0
  92. package/dist/renderers/StatusAccordionRenderer.js +23 -0
  93. package/dist/renderers/StatusAccordionRenderer.js.map +1 -0
  94. package/dist/renderers/StatusRenderer.d.ts +9 -0
  95. package/dist/renderers/StatusRenderer.d.ts.map +1 -0
  96. package/dist/renderers/StatusRenderer.js +54 -0
  97. package/dist/renderers/StatusRenderer.js.map +1 -0
  98. package/dist/renderers/TableRenderer.d.ts +6 -0
  99. package/dist/renderers/TableRenderer.d.ts.map +1 -0
  100. package/dist/renderers/TableRenderer.js +50 -0
  101. package/dist/renderers/TableRenderer.js.map +1 -0
  102. package/dist/renderers/makeAccordionAsyncRenderer.d.ts +9 -0
  103. package/dist/renderers/makeAccordionAsyncRenderer.d.ts.map +1 -0
  104. package/dist/renderers/makeAccordionAsyncRenderer.js +35 -0
  105. package/dist/renderers/makeAccordionAsyncRenderer.js.map +1 -0
  106. package/dist/renderers/makeAsyncRenderer.d.ts +10 -0
  107. package/dist/renderers/makeAsyncRenderer.d.ts.map +1 -0
  108. package/dist/renderers/makeAsyncRenderer.js +47 -0
  109. package/dist/renderers/makeAsyncRenderer.js.map +1 -0
  110. package/dist/store/index.d.ts +72 -0
  111. package/dist/store/index.d.ts.map +1 -0
  112. package/dist/store/index.js +131 -0
  113. package/dist/store/index.js.map +1 -0
  114. package/dist/store/selection/getInitialState.js +22 -0
  115. package/dist/store/selection/getInitialState.js.map +1 -0
  116. package/dist/store/selection/getReduxActions.js +42 -0
  117. package/dist/store/selection/getReduxActions.js.map +1 -0
  118. package/dist/store/selection/handleKey.js +143 -0
  119. package/dist/store/selection/handleKey.js.map +1 -0
  120. package/dist/store/selection/makeKeyHandler.js +336 -0
  121. package/dist/store/selection/makeKeyHandler.js.map +1 -0
  122. package/dist/store/selection/setNewFocused.js +101 -0
  123. package/dist/store/selection/setNewFocused.js.map +1 -0
  124. package/dist/store/selection/types.d.ts +150 -0
  125. package/dist/store/selection/types.d.ts.map +1 -0
  126. package/dist/store/selection/useDomProps.js +181 -0
  127. package/dist/store/selection/useDomProps.js.map +1 -0
  128. package/dist/store/types.d.ts +19 -0
  129. package/dist/store/types.d.ts.map +1 -0
  130. package/dist/types.d.ts +315 -0
  131. package/dist/types.d.ts.map +1 -0
  132. package/dist/types.js +6 -0
  133. package/dist/types.js.map +1 -0
  134. package/package.json +3 -3
@@ -0,0 +1,43 @@
1
+ import { jsx, jsxs } from '@apia/theme/jsx-runtime';
2
+ import React from 'react';
3
+ import { Link } from '@apia/theme';
4
+ import { downloadUrl } from '@apia/util';
5
+ import { Icon } from '@apia/icons';
6
+
7
+ const NoMemoDocNameCellRenderer = React.forwardRef(
8
+ ({
9
+ cell: { children, Renderer, rendererProps, AccordionRenderer, ...cell },
10
+ column,
11
+ row,
12
+ ...props
13
+ }, currentRef) => /* @__PURE__ */ jsx(
14
+ "td",
15
+ {
16
+ ref: currentRef,
17
+ ...props,
18
+ ...cell,
19
+ children: /* @__PURE__ */ jsxs(
20
+ Link,
21
+ {
22
+ className: "cell__download__document",
23
+ title: rendererProps?.docName,
24
+ href: rendererProps?.docUrl,
25
+ onClick: (ev) => {
26
+ ev.preventDefault();
27
+ if (rendererProps?.docUrl)
28
+ void downloadUrl(rendererProps?.docUrl);
29
+ },
30
+ children: [
31
+ /* @__PURE__ */ jsx(Icon, { title: "", name: "Download" }),
32
+ rendererProps?.docName
33
+ ]
34
+ }
35
+ )
36
+ }
37
+ )
38
+ );
39
+ NoMemoDocNameCellRenderer.displayName = "DocNameCellRenderer";
40
+ const DocNameCellRenderer = NoMemoDocNameCellRenderer;
41
+
42
+ export { DocNameCellRenderer };
43
+ //# sourceMappingURL=DocNameCellRenderer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DocNameCellRenderer.js","sources":["../../src/renderers/DocNameCellRenderer.tsx"],"sourcesContent":["import React from 'react';\r\nimport { Link } from '@apia/theme';\r\nimport { downloadUrl } from '@apia/util';\r\nimport { Icon } from '@apia/icons';\r\nimport {\r\n TResponsiveTableCellRenderer,\r\n TResponsiveTableCellRendererProps,\r\n} from '../types';\r\n\r\nexport type TDocNameCellRendererProps = {\r\n docName: string;\r\n docUrl: string;\r\n};\r\n\r\nexport type TDocNameCellRenderer =\r\n TResponsiveTableCellRendererProps<TDocNameCellRendererProps>;\r\n\r\nconst NoMemoDocNameCellRenderer: TResponsiveTableCellRenderer<TDocNameCellRendererProps> =\r\n React.forwardRef<HTMLTableCellElement, TDocNameCellRenderer>(\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 <td\r\n ref={currentRef as React.RefObject<HTMLTableCellElement>}\r\n {...props}\r\n {...cell}\r\n >\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 </td>\r\n ),\r\n );\r\n\r\nNoMemoDocNameCellRenderer.displayName = 'DocNameCellRenderer';\r\n\r\nexport const DocNameCellRenderer = NoMemoDocNameCellRenderer;\r\n"],"names":[],"mappings":";;;;;;AAiBA,MAAM,4BACJ,KAAM,CAAA,UAAA;AAAA,EACJ,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,KAEL,UAEA,qBAAA,GAAA;AAAA,IAAC,IAAA;AAAA,IAAA;AAAA,MACC,GAAK,EAAA,UAAA;AAAA,MACJ,GAAG,KAAA;AAAA,MACH,GAAG,IAAA;AAAA,MAEJ,QAAA,kBAAA,IAAA;AAAA,QAAC,IAAA;AAAA,QAAA;AAAA,UACC,SAAU,EAAA,0BAAA;AAAA,UACV,OAAO,aAAe,EAAA,OAAA;AAAA,UACtB,MAAM,aAAe,EAAA,MAAA;AAAA,UACrB,OAAA,EAAS,CAAC,EAAO,KAAA;AACf,YAAA,EAAA,CAAG,cAAe,EAAA,CAAA;AAClB,YAAA,IAAI,aAAe,EAAA,MAAA;AAAQ,cAAK,KAAA,WAAA,CAAY,eAAe,MAAM,CAAA,CAAA;AAAA,WACnE;AAAA,UAEA,QAAA,EAAA;AAAA,4BAAA,GAAA,CAAC,IAAK,EAAA,EAAA,KAAA,EAAM,EAAG,EAAA,IAAA,EAAK,UAAW,EAAA,CAAA;AAAA,YAC9B,aAAe,EAAA,OAAA;AAAA,WAAA;AAAA,SAAA;AAAA,OAClB;AAAA,KAAA;AAAA,GACF;AAEJ,CAAA,CAAA;AAEF,yBAAA,CAA0B,WAAc,GAAA,qBAAA,CAAA;AAEjC,MAAM,mBAAsB,GAAA;;;;"}
@@ -0,0 +1,8 @@
1
+ import { TResponsiveTableCellRenderer } from '../types.js';
2
+
3
+ declare const HTMLCellRenderer: TResponsiveTableCellRenderer<{
4
+ html: string;
5
+ }>;
6
+
7
+ export { HTMLCellRenderer };
8
+ //# sourceMappingURL=HTMLCellRenderer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HTMLCellRenderer.d.ts","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -0,0 +1,29 @@
1
+ import { jsx } from '@apia/theme/jsx-runtime';
2
+ import React from 'react';
3
+
4
+ const NoMemoHTMLCellRenderer = React.forwardRef(
5
+ ({
6
+ cell: { children, Renderer, rendererProps, AccordionRenderer, ...cell },
7
+ column,
8
+ row,
9
+ ...props
10
+ }, currentRef) => /* @__PURE__ */ jsx(
11
+ "td",
12
+ {
13
+ ref: currentRef,
14
+ ...props,
15
+ ...cell,
16
+ dangerouslySetInnerHTML: {
17
+ __html: String(rendererProps?.html ?? children ?? "").replaceAll(
18
+ /<TOK(\d+)/g,
19
+ "&lt;TOK$1"
20
+ )
21
+ }
22
+ }
23
+ )
24
+ );
25
+ NoMemoHTMLCellRenderer.displayName = "HTMLCellRenderer";
26
+ const HTMLCellRenderer = NoMemoHTMLCellRenderer;
27
+
28
+ export { HTMLCellRenderer };
29
+ //# sourceMappingURL=HTMLCellRenderer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HTMLCellRenderer.js","sources":["../../src/renderers/HTMLCellRenderer.tsx"],"sourcesContent":["import React from 'react';\r\nimport {\r\n TResponsiveTableCellRenderer,\r\n TResponsiveTableCellRendererProps,\r\n} from '../types';\r\n\r\nconst NoMemoHTMLCellRenderer: TResponsiveTableCellRenderer<{ html: string }> =\r\n React.forwardRef<\r\n HTMLTableCellElement,\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 <td\r\n ref={currentRef as React.RefObject<HTMLTableCellElement>}\r\n {...props}\r\n {...cell}\r\n dangerouslySetInnerHTML={{\r\n __html: String(rendererProps?.html ?? children ?? '').replaceAll(\r\n /<TOK(\\d+)/g,\r\n '&lt;TOK$1',\r\n ),\r\n }}\r\n />\r\n ),\r\n );\r\n\r\nNoMemoHTMLCellRenderer.displayName = 'HTMLCellRenderer';\r\n\r\nexport const HTMLCellRenderer = NoMemoHTMLCellRenderer;\r\n"],"names":[],"mappings":";;;AAMA,MAAM,yBACJ,KAAM,CAAA,UAAA;AAAA,EAIJ,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,KAEL,UAEA,qBAAA,GAAA;AAAA,IAAC,IAAA;AAAA,IAAA;AAAA,MACC,GAAK,EAAA,UAAA;AAAA,MACJ,GAAG,KAAA;AAAA,MACH,GAAG,IAAA;AAAA,MACJ,uBAAyB,EAAA;AAAA,QACvB,QAAQ,MAAO,CAAA,aAAA,EAAe,IAAQ,IAAA,QAAA,IAAY,EAAE,CAAE,CAAA,UAAA;AAAA,UACpD,YAAA;AAAA,UACA,WAAA;AAAA,SACF;AAAA,OACF;AAAA,KAAA;AAAA,GACF;AAEJ,CAAA,CAAA;AAEF,sBAAA,CAAuB,WAAc,GAAA,kBAAA,CAAA;AAE9B,MAAM,gBAAmB,GAAA;;;;"}
@@ -0,0 +1,6 @@
1
+ import * as React from 'react';
2
+
3
+ declare const IsLoadingRenderer: () => React.JSX.Element;
4
+
5
+ export { IsLoadingRenderer };
6
+ //# sourceMappingURL=IsLoadingRenderer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IsLoadingRenderer.d.ts","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -0,0 +1,9 @@
1
+ import { jsx } from '@apia/theme/jsx-runtime';
2
+ import { Box, Spinner } from '@apia/theme';
3
+
4
+ const IsLoadingRenderer = () => {
5
+ return /* @__PURE__ */ jsx(Box, { className: "responsiveTable__isLoading", children: /* @__PURE__ */ jsx(Spinner, {}) });
6
+ };
7
+
8
+ export { IsLoadingRenderer };
9
+ //# sourceMappingURL=IsLoadingRenderer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IsLoadingRenderer.js","sources":["../../src/renderers/IsLoadingRenderer.tsx"],"sourcesContent":["import { Box, Spinner } from '@apia/theme';\r\n\r\nexport const IsLoadingRenderer = () => {\r\n return (\r\n <Box className=\"responsiveTable__isLoading\">\r\n <Spinner />\r\n </Box>\r\n );\r\n};\r\n"],"names":[],"mappings":";;;AAEO,MAAM,oBAAoB,MAAM;AACrC,EAAA,2BACG,GAAI,EAAA,EAAA,SAAA,EAAU,4BACb,EAAA,QAAA,kBAAA,GAAA,CAAC,WAAQ,CACX,EAAA,CAAA,CAAA;AAEJ;;;;"}
@@ -0,0 +1,6 @@
1
+ import * as React from 'react';
2
+
3
+ declare const NoRegistersRenderer: () => React.JSX.Element;
4
+
5
+ export { NoRegistersRenderer };
6
+ //# sourceMappingURL=NoRegistersRenderer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NoRegistersRenderer.d.ts","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -0,0 +1,11 @@
1
+ import { jsx } from '@apia/theme/jsx-runtime';
2
+ import { Box } from '@apia/theme';
3
+ import { useResponsiveTableContext } from '../ResponsiveTableContext.js';
4
+
5
+ const NoRegistersRenderer = () => {
6
+ const { labels } = useResponsiveTableContext();
7
+ return /* @__PURE__ */ jsx(Box, { className: "no__registers", children: labels.noRegisters });
8
+ };
9
+
10
+ export { NoRegistersRenderer };
11
+ //# sourceMappingURL=NoRegistersRenderer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NoRegistersRenderer.js","sources":["../../src/renderers/NoRegistersRenderer.tsx"],"sourcesContent":["import { Box } from '@apia/theme';\r\nimport { useResponsiveTableContext } from '../ResponsiveTableContext';\r\n\r\nexport const NoRegistersRenderer = () => {\r\n const { labels } = useResponsiveTableContext();\r\n return <Box className=\"no__registers\">{labels.noRegisters}</Box>;\r\n};\r\n"],"names":[],"mappings":";;;;AAGO,MAAM,sBAAsB,MAAM;AACvC,EAAM,MAAA,EAAE,MAAO,EAAA,GAAI,yBAA0B,EAAA,CAAA;AAC7C,EAAA,uBAAQ,GAAA,CAAA,GAAA,EAAA,EAAI,SAAU,EAAA,eAAA,EAAiB,iBAAO,WAAY,EAAA,CAAA,CAAA;AAC5D;;;;"}
@@ -0,0 +1,6 @@
1
+ import { TAccordionCellRenderer } from './AccordionCell.js';
2
+
3
+ declare const PriorityAccordionRenderer: TAccordionCellRenderer;
4
+
5
+ export { PriorityAccordionRenderer };
6
+ //# sourceMappingURL=PriorityAccordionRenderer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PriorityAccordionRenderer.d.ts","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -0,0 +1,36 @@
1
+ import { jsxs, jsx } from '@apia/theme/jsx-runtime';
2
+ import { FaSquare } from '@meronex/icons/fa';
3
+ import React from 'react';
4
+ import { Box } from '@apia/theme';
5
+ import { getPriorityHandler } from './PriorityRenderer.js';
6
+
7
+ const NoMemoPriorityAccordionRenderer = React.forwardRef(
8
+ ({ cell, column }, currentRef) => {
9
+ const taskPriorityColor = getPriorityHandler(
10
+ cell.rendererProps?.src
11
+ );
12
+ const title = column.label ?? column.name;
13
+ return /* @__PURE__ */ jsxs(Box, { ref: currentRef, className: "priority_container", children: [
14
+ title && /* @__PURE__ */ jsxs(Box, { as: "strong", children: [
15
+ column.label ?? column.name,
16
+ ": "
17
+ ] }),
18
+ /* @__PURE__ */ jsx(
19
+ Box,
20
+ {
21
+ as: "span",
22
+ className: "priority",
23
+ sx: {
24
+ color: taskPriorityColor
25
+ },
26
+ children: /* @__PURE__ */ jsx(FaSquare, {})
27
+ }
28
+ )
29
+ ] });
30
+ }
31
+ );
32
+ NoMemoPriorityAccordionRenderer.displayName = "PriorityAccordionRenderer";
33
+ const PriorityAccordionRenderer = NoMemoPriorityAccordionRenderer;
34
+
35
+ export { PriorityAccordionRenderer };
36
+ //# sourceMappingURL=PriorityAccordionRenderer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PriorityAccordionRenderer.js","sources":["../../src/renderers/PriorityAccordionRenderer.tsx"],"sourcesContent":["import { FaSquare } from '@meronex/icons/fa';\r\nimport React from 'react';\r\nimport { Box } from '@apia/theme';\r\nimport {\r\n TAccordionCellRenderer,\r\n TAccordionCellRendererProps,\r\n} from './AccordionCell';\r\nimport { getPriorityHandler } from './PriorityRenderer';\r\n\r\nconst NoMemoPriorityAccordionRenderer: TAccordionCellRenderer =\r\n React.forwardRef<HTMLTableCellElement, TAccordionCellRendererProps>(\r\n ({ cell, column }, currentRef) => {\r\n const taskPriorityColor = getPriorityHandler(\r\n cell.rendererProps?.src as string,\r\n );\r\n const title = column.label ?? column.name;\r\n return (\r\n <Box ref={currentRef} className=\"priority_container\">\r\n {title && <Box as=\"strong\">{column.label ?? column.name}: </Box>}\r\n <Box\r\n as=\"span\"\r\n className=\"priority\"\r\n sx={{\r\n color: taskPriorityColor,\r\n }}\r\n >\r\n <FaSquare />\r\n </Box>\r\n </Box>\r\n );\r\n },\r\n );\r\n\r\nNoMemoPriorityAccordionRenderer.displayName = 'PriorityAccordionRenderer';\r\n\r\nexport const PriorityAccordionRenderer = NoMemoPriorityAccordionRenderer;\r\n"],"names":[],"mappings":";;;;;;AASA,MAAM,kCACJ,KAAM,CAAA,UAAA;AAAA,EACJ,CAAC,EAAE,IAAM,EAAA,MAAA,IAAU,UAAe,KAAA;AAChC,IAAA,MAAM,iBAAoB,GAAA,kBAAA;AAAA,MACxB,KAAK,aAAe,EAAA,GAAA;AAAA,KACtB,CAAA;AACA,IAAM,MAAA,KAAA,GAAQ,MAAO,CAAA,KAAA,IAAS,MAAO,CAAA,IAAA,CAAA;AACrC,IAAA,uBACG,IAAA,CAAA,GAAA,EAAA,EAAI,GAAK,EAAA,UAAA,EAAY,WAAU,oBAC7B,EAAA,QAAA,EAAA;AAAA,MAAS,KAAA,oBAAA,IAAA,CAAC,GAAI,EAAA,EAAA,EAAA,EAAG,QAAU,EAAA,QAAA,EAAA;AAAA,QAAA,MAAA,CAAO,SAAS,MAAO,CAAA,IAAA;AAAA,QAAK,IAAA;AAAA,OAAE,EAAA,CAAA;AAAA,sBAC1D,GAAA;AAAA,QAAC,GAAA;AAAA,QAAA;AAAA,UACC,EAAG,EAAA,MAAA;AAAA,UACH,SAAU,EAAA,UAAA;AAAA,UACV,EAAI,EAAA;AAAA,YACF,KAAO,EAAA,iBAAA;AAAA,WACT;AAAA,UAEA,8BAAC,QAAS,EAAA,EAAA,CAAA;AAAA,SAAA;AAAA,OACZ;AAAA,KACF,EAAA,CAAA,CAAA;AAAA,GAEJ;AACF,CAAA,CAAA;AAEF,+BAAA,CAAgC,WAAc,GAAA,2BAAA,CAAA;AAEvC,MAAM,yBAA4B,GAAA;;;;"}
@@ -0,0 +1,9 @@
1
+ import { TResponsiveTableCellRenderer } from '../types.js';
2
+
3
+ declare function getPriorityHandler(priority: string | undefined): string | undefined;
4
+ declare const PriorityRenderer: TResponsiveTableCellRenderer<{
5
+ src: string;
6
+ }>;
7
+
8
+ export { PriorityRenderer, getPriorityHandler };
9
+ //# sourceMappingURL=PriorityRenderer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PriorityRenderer.d.ts","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -0,0 +1,46 @@
1
+ import { jsx } from '@apia/theme/jsx-runtime';
2
+ import { FaSquare } from '@meronex/icons/fa';
3
+ import React from 'react';
4
+
5
+ function getPriorityHandler(priority) {
6
+ let prio;
7
+ if (priority?.includes("priority0"))
8
+ prio = "priorityNone";
9
+ if (priority?.includes("priority1"))
10
+ prio = "priorityLow";
11
+ if (priority?.includes("priority2"))
12
+ prio = "priorityNormal";
13
+ if (priority?.includes("priority3"))
14
+ prio = "priorityHigh";
15
+ if (priority?.includes("priority4"))
16
+ prio = "priorityUrgent";
17
+ return prio;
18
+ }
19
+ const NoMemoPriorityRenderer = React.forwardRef(
20
+ ({
21
+ cell: { children, Renderer, rendererProps, AccordionRenderer, ...cell },
22
+ column,
23
+ row,
24
+ ...props
25
+ }, currentRef) => {
26
+ const taskPriorityColor = getPriorityHandler(rendererProps?.src);
27
+ return /* @__PURE__ */ jsx(
28
+ "td",
29
+ {
30
+ ...props,
31
+ ...cell,
32
+ ref: currentRef,
33
+ className: "priority",
34
+ sx: {
35
+ color: taskPriorityColor
36
+ },
37
+ children: /* @__PURE__ */ jsx(FaSquare, {})
38
+ }
39
+ );
40
+ }
41
+ );
42
+ NoMemoPriorityRenderer.displayName = "PriorityRenderer";
43
+ const PriorityRenderer = NoMemoPriorityRenderer;
44
+
45
+ export { PriorityRenderer, getPriorityHandler };
46
+ //# sourceMappingURL=PriorityRenderer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PriorityRenderer.js","sources":["../../src/renderers/PriorityRenderer.tsx"],"sourcesContent":["import { FaSquare } from '@meronex/icons/fa';\r\nimport React from 'react';\r\nimport {\r\n TResponsiveTableCellRenderer,\r\n TResponsiveTableCellRendererProps,\r\n} from '../types';\r\n\r\nexport function getPriorityHandler(priority: string | undefined) {\r\n let prio;\r\n if (priority?.includes('priority0')) prio = 'priorityNone';\r\n if (priority?.includes('priority1')) prio = 'priorityLow';\r\n if (priority?.includes('priority2')) prio = 'priorityNormal';\r\n if (priority?.includes('priority3')) prio = 'priorityHigh';\r\n if (priority?.includes('priority4')) prio = 'priorityUrgent';\r\n return prio;\r\n}\r\nconst NoMemoPriorityRenderer: TResponsiveTableCellRenderer<{ src: string }> =\r\n React.forwardRef<\r\n HTMLTableCellElement,\r\n TResponsiveTableCellRendererProps<{ src: 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 const taskPriorityColor = getPriorityHandler(rendererProps?.src);\r\n return (\r\n <td\r\n {...props}\r\n {...cell}\r\n ref={currentRef}\r\n className=\"priority\"\r\n sx={{\r\n color: taskPriorityColor,\r\n }}\r\n >\r\n <FaSquare />\r\n </td>\r\n );\r\n },\r\n );\r\nNoMemoPriorityRenderer.displayName = 'PriorityRenderer';\r\nexport const PriorityRenderer = NoMemoPriorityRenderer;\r\n"],"names":[],"mappings":";;;;AAOO,SAAS,mBAAmB,QAA8B,EAAA;AAC/D,EAAI,IAAA,IAAA,CAAA;AACJ,EAAI,IAAA,QAAA,EAAU,SAAS,WAAW,CAAA;AAAG,IAAO,IAAA,GAAA,cAAA,CAAA;AAC5C,EAAI,IAAA,QAAA,EAAU,SAAS,WAAW,CAAA;AAAG,IAAO,IAAA,GAAA,aAAA,CAAA;AAC5C,EAAI,IAAA,QAAA,EAAU,SAAS,WAAW,CAAA;AAAG,IAAO,IAAA,GAAA,gBAAA,CAAA;AAC5C,EAAI,IAAA,QAAA,EAAU,SAAS,WAAW,CAAA;AAAG,IAAO,IAAA,GAAA,cAAA,CAAA;AAC5C,EAAI,IAAA,QAAA,EAAU,SAAS,WAAW,CAAA;AAAG,IAAO,IAAA,GAAA,gBAAA,CAAA;AAC5C,EAAO,OAAA,IAAA,CAAA;AACT,CAAA;AACA,MAAM,yBACJ,KAAM,CAAA,UAAA;AAAA,EAIJ,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,KAEL,UACG,KAAA;AACH,IAAM,MAAA,iBAAA,GAAoB,kBAAmB,CAAA,aAAA,EAAe,GAAG,CAAA,CAAA;AAC/D,IACE,uBAAA,GAAA;AAAA,MAAC,IAAA;AAAA,MAAA;AAAA,QACE,GAAG,KAAA;AAAA,QACH,GAAG,IAAA;AAAA,QACJ,GAAK,EAAA,UAAA;AAAA,QACL,SAAU,EAAA,UAAA;AAAA,QACV,EAAI,EAAA;AAAA,UACF,KAAO,EAAA,iBAAA;AAAA,SACT;AAAA,QAEA,8BAAC,QAAS,EAAA,EAAA,CAAA;AAAA,OAAA;AAAA,KACZ,CAAA;AAAA,GAEJ;AACF,CAAA,CAAA;AACF,sBAAA,CAAuB,WAAc,GAAA,kBAAA,CAAA;AAC9B,MAAM,gBAAmB,GAAA;;;;"}
@@ -0,0 +1,9 @@
1
+ import React__default from 'react';
2
+ import { TResponsiveTableRowState } from '../types.js';
3
+
4
+ declare const RowStatesRenderer: React__default.MemoExoticComponent<({ state, }: {
5
+ state: TResponsiveTableRowState;
6
+ }) => React__default.JSX.Element>;
7
+
8
+ export { RowStatesRenderer };
9
+ //# sourceMappingURL=RowStatesRenderer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RowStatesRenderer.d.ts","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -0,0 +1,34 @@
1
+ import { jsx } from '@apia/theme/jsx-runtime';
2
+ import React from 'react';
3
+ import { Box, getVariant } from '@apia/theme';
4
+
5
+ const NoMemoRowStatesRenderer = ({
6
+ state
7
+ }) => {
8
+ const { Icon } = state;
9
+ return /* @__PURE__ */ jsx(
10
+ Box,
11
+ {
12
+ sx: React.useMemo(
13
+ () => ({
14
+ "&, svg, path": {
15
+ color: state.color ?? ""
16
+ }
17
+ }),
18
+ [state.color]
19
+ ),
20
+ children: /* @__PURE__ */ jsx(
21
+ Icon,
22
+ {
23
+ ...getVariant("inherit"),
24
+ title: state.tooltip,
25
+ className: `${state.className ?? "state"}_icon state_icon`
26
+ }
27
+ )
28
+ }
29
+ );
30
+ };
31
+ const RowStatesRenderer = React.memo(NoMemoRowStatesRenderer);
32
+
33
+ export { RowStatesRenderer };
34
+ //# sourceMappingURL=RowStatesRenderer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RowStatesRenderer.js","sources":["../../src/renderers/RowStatesRenderer.tsx"],"sourcesContent":["import React from 'react';\r\nimport { Box, getVariant } from '@apia/theme';\r\nimport { TResponsiveTableRowState } from '../types';\r\n\r\nconst NoMemoRowStatesRenderer = ({\r\n state,\r\n}: {\r\n state: TResponsiveTableRowState;\r\n}) => {\r\n const { Icon } = state;\r\n\r\n return (\r\n <Box\r\n sx={React.useMemo(\r\n () => ({\r\n '&, svg, path': {\r\n color: state.color ?? '',\r\n },\r\n }),\r\n [state.color],\r\n )}\r\n >\r\n <Icon\r\n {...getVariant('inherit')}\r\n title={state.tooltip}\r\n className={`${state.className ?? 'state'}_icon state_icon`}\r\n />\r\n </Box>\r\n );\r\n};\r\n\r\nexport const RowStatesRenderer = React.memo(NoMemoRowStatesRenderer);\r\n"],"names":[],"mappings":";;;;AAIA,MAAM,0BAA0B,CAAC;AAAA,EAC/B,KAAA;AACF,CAEM,KAAA;AACJ,EAAM,MAAA,EAAE,MAAS,GAAA,KAAA,CAAA;AAEjB,EACE,uBAAA,GAAA;AAAA,IAAC,GAAA;AAAA,IAAA;AAAA,MACC,IAAI,KAAM,CAAA,OAAA;AAAA,QACR,OAAO;AAAA,UACL,cAAgB,EAAA;AAAA,YACd,KAAA,EAAO,MAAM,KAAS,IAAA,EAAA;AAAA,WACxB;AAAA,SACF,CAAA;AAAA,QACA,CAAC,MAAM,KAAK,CAAA;AAAA,OACd;AAAA,MAEA,QAAA,kBAAA,GAAA;AAAA,QAAC,IAAA;AAAA,QAAA;AAAA,UACE,GAAG,WAAW,SAAS,CAAA;AAAA,UACxB,OAAO,KAAM,CAAA,OAAA;AAAA,UACb,SAAW,EAAA,CAAA,EAAG,KAAM,CAAA,SAAA,IAAa,OAAO,CAAA,gBAAA,CAAA;AAAA,SAAA;AAAA,OAC1C;AAAA,KAAA;AAAA,GACF,CAAA;AAEJ,CAAA,CAAA;AAEa,MAAA,iBAAA,GAAoB,KAAM,CAAA,IAAA,CAAK,uBAAuB;;;;"}
@@ -0,0 +1,6 @@
1
+ import { TAccordionCellRenderer } from './AccordionCell.js';
2
+
3
+ declare const StatusAccordionRenderer: TAccordionCellRenderer;
4
+
5
+ export { StatusAccordionRenderer };
6
+ //# sourceMappingURL=StatusAccordionRenderer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StatusAccordionRenderer.d.ts","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -0,0 +1,23 @@
1
+ import { jsxs, jsx } from '@apia/theme/jsx-runtime';
2
+ import React from 'react';
3
+ import { Box } from '@apia/theme';
4
+ import { getStatusRendererClassName } from './StatusRenderer.js';
5
+
6
+ const NoMemoStatusAccordionRenderer = React.forwardRef(({ cell, column }, currentRef) => {
7
+ const taskStatusClassName = getStatusRendererClassName(
8
+ cell.children,
9
+ column.name
10
+ );
11
+ return /* @__PURE__ */ jsxs(Box, { ref: currentRef, children: [
12
+ /* @__PURE__ */ jsxs(Box, { as: "strong", children: [
13
+ column.label ?? column.name,
14
+ ": "
15
+ ] }),
16
+ /* @__PURE__ */ jsx(Box, { as: "span", className: taskStatusClassName, children: cell.children })
17
+ ] });
18
+ });
19
+ NoMemoStatusAccordionRenderer.displayName = "StatusAccordionRenderer";
20
+ const StatusAccordionRenderer = NoMemoStatusAccordionRenderer;
21
+
22
+ export { StatusAccordionRenderer };
23
+ //# sourceMappingURL=StatusAccordionRenderer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StatusAccordionRenderer.js","sources":["../../src/renderers/StatusAccordionRenderer.tsx"],"sourcesContent":["import React from 'react';\r\nimport { Box } from '@apia/theme';\r\nimport {\r\n TAccordionCellRenderer,\r\n TAccordionCellRendererProps,\r\n} from './AccordionCell';\r\nimport { getStatusRendererClassName } from './StatusRenderer';\r\n\r\nconst NoMemoStatusAccordionRenderer: TAccordionCellRenderer = React.forwardRef<\r\n HTMLTableCellElement,\r\n TAccordionCellRendererProps\r\n>(({ cell, column }, currentRef) => {\r\n const taskStatusClassName = getStatusRendererClassName(\r\n cell.children as string,\r\n column.name,\r\n );\r\n\r\n return (\r\n <Box ref={currentRef}>\r\n <Box as=\"strong\">{column.label ?? column.name}: </Box>\r\n <Box as=\"span\" className={taskStatusClassName}>\r\n {cell.children}\r\n </Box>\r\n </Box>\r\n );\r\n});\r\n\r\nNoMemoStatusAccordionRenderer.displayName = 'StatusAccordionRenderer';\r\n\r\nexport const StatusAccordionRenderer = NoMemoStatusAccordionRenderer;\r\n"],"names":[],"mappings":";;;;;AAQA,MAAM,6BAAA,GAAwD,MAAM,UAGlE,CAAA,CAAC,EAAE,IAAM,EAAA,MAAA,IAAU,UAAe,KAAA;AAClC,EAAA,MAAM,mBAAsB,GAAA,0BAAA;AAAA,IAC1B,IAAK,CAAA,QAAA;AAAA,IACL,MAAO,CAAA,IAAA;AAAA,GACT,CAAA;AAEA,EACE,uBAAA,IAAA,CAAC,GAAI,EAAA,EAAA,GAAA,EAAK,UACR,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,wBAC/C,GAAI,EAAA,EAAA,EAAA,EAAG,QAAO,SAAW,EAAA,mBAAA,EACvB,eAAK,QACR,EAAA,CAAA;AAAA,GACF,EAAA,CAAA,CAAA;AAEJ,CAAC,CAAA,CAAA;AAED,6BAAA,CAA8B,WAAc,GAAA,yBAAA,CAAA;AAErC,MAAM,uBAA0B,GAAA;;;;"}
@@ -0,0 +1,9 @@
1
+ import { TResponsiveTableCellRenderer } from '../types.js';
2
+
3
+ declare function getStatusRendererClassName(cellValue: string, columnName: string): string;
4
+ declare const StatusRenderer: TResponsiveTableCellRenderer<{
5
+ src: string;
6
+ }>;
7
+
8
+ export { StatusRenderer, getStatusRendererClassName };
9
+ //# sourceMappingURL=StatusRenderer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StatusRenderer.d.ts","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -0,0 +1,54 @@
1
+ import { jsx } from '@apia/theme/jsx-runtime';
2
+ import dayjs from 'dayjs';
3
+ import React from 'react';
4
+ import { getDateFormat } from '@apia/util';
5
+
6
+ function getStatusRendererClassName(cellValue, columnName) {
7
+ if (cellValue === void 0)
8
+ return "";
9
+ const cellValueDate = cellValue.split(" ")[0];
10
+ const cellValueHour = cellValue.split(" ")[1] ?? "00:00:00";
11
+ const dateFormat = getDateFormat();
12
+ const currentDate = dayjs();
13
+ const currentHour = Number(dayjs().format("HHmm"));
14
+ const queriedDate = dayjs(cellValueDate, dateFormat);
15
+ const queriedHour = Number(dayjs(cellValueHour, dateFormat));
16
+ let statusClassName = "";
17
+ if (currentDate >= queriedDate) {
18
+ statusClassName = columnName;
19
+ }
20
+ if (!queriedHour)
21
+ return statusClassName;
22
+ if (currentDate <= queriedDate && currentHour < queriedHour) {
23
+ statusClassName = columnName;
24
+ }
25
+ return statusClassName;
26
+ }
27
+ const NoMemoStatusRenderer = React.forwardRef(
28
+ ({
29
+ cell: { children, Renderer, rendererProps, AccordionRenderer, ...cell },
30
+ column,
31
+ row,
32
+ ...props
33
+ }, currentRef) => {
34
+ const taskStatusClassName = getStatusRendererClassName(
35
+ children,
36
+ column.name
37
+ );
38
+ return /* @__PURE__ */ jsx(
39
+ "td",
40
+ {
41
+ ...props,
42
+ ...cell,
43
+ ref: currentRef,
44
+ className: taskStatusClassName,
45
+ children
46
+ }
47
+ );
48
+ }
49
+ );
50
+ NoMemoStatusRenderer.displayName = "StatusRenderer";
51
+ const StatusRenderer = NoMemoStatusRenderer;
52
+
53
+ export { StatusRenderer, getStatusRendererClassName };
54
+ //# sourceMappingURL=StatusRenderer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StatusRenderer.js","sources":["../../src/renderers/StatusRenderer.tsx"],"sourcesContent":["import dayjs from 'dayjs';\r\nimport React from 'react';\r\nimport { TDateFormat, getDateFormat } from '@apia/util';\r\nimport {\r\n TResponsiveTableCellRenderer,\r\n TResponsiveTableCellRendererProps,\r\n} from '../types';\r\n\r\nexport function getStatusRendererClassName(\r\n cellValue: string,\r\n columnName: string,\r\n) {\r\n if (cellValue === undefined) return '';\r\n\r\n const cellValueDate = cellValue.split(' ')[0];\r\n const cellValueHour = cellValue.split(' ')[1] ?? '00:00:00';\r\n\r\n const dateFormat: TDateFormat = getDateFormat();\r\n const currentDate = dayjs();\r\n const currentHour = Number(dayjs().format('HHmm'));\r\n const queriedDate = dayjs(cellValueDate, dateFormat);\r\n const queriedHour = Number(dayjs(cellValueHour, dateFormat));\r\n let statusClassName = '';\r\n\r\n if (currentDate >= queriedDate) {\r\n statusClassName = columnName;\r\n }\r\n if (!queriedHour) return statusClassName;\r\n\r\n if (currentDate <= queriedDate && currentHour < queriedHour) {\r\n statusClassName = columnName;\r\n }\r\n return statusClassName;\r\n}\r\n\r\nconst NoMemoStatusRenderer: TResponsiveTableCellRenderer<{ src: string }> =\r\n React.forwardRef<\r\n HTMLTableCellElement,\r\n TResponsiveTableCellRendererProps<{ src: 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 const taskStatusClassName = getStatusRendererClassName(\r\n children as string,\r\n column.name,\r\n );\r\n\r\n return (\r\n <td\r\n {...props}\r\n {...cell}\r\n ref={currentRef}\r\n className={taskStatusClassName}\r\n >\r\n {children}\r\n </td>\r\n );\r\n },\r\n );\r\n\r\nNoMemoStatusRenderer.displayName = 'StatusRenderer';\r\n\r\nexport const StatusRenderer = NoMemoStatusRenderer;\r\n"],"names":[],"mappings":";;;;;AAQgB,SAAA,0BAAA,CACd,WACA,UACA,EAAA;AACA,EAAA,IAAI,SAAc,KAAA,KAAA,CAAA;AAAW,IAAO,OAAA,EAAA,CAAA;AAEpC,EAAA,MAAM,aAAgB,GAAA,SAAA,CAAU,KAAM,CAAA,GAAG,EAAE,CAAC,CAAA,CAAA;AAC5C,EAAA,MAAM,gBAAgB,SAAU,CAAA,KAAA,CAAM,GAAG,CAAA,CAAE,CAAC,CAAK,IAAA,UAAA,CAAA;AAEjD,EAAA,MAAM,aAA0B,aAAc,EAAA,CAAA;AAC9C,EAAA,MAAM,cAAc,KAAM,EAAA,CAAA;AAC1B,EAAA,MAAM,cAAc,MAAO,CAAA,KAAA,EAAQ,CAAA,MAAA,CAAO,MAAM,CAAC,CAAA,CAAA;AACjD,EAAM,MAAA,WAAA,GAAc,KAAM,CAAA,aAAA,EAAe,UAAU,CAAA,CAAA;AACnD,EAAA,MAAM,WAAc,GAAA,MAAA,CAAO,KAAM,CAAA,aAAA,EAAe,UAAU,CAAC,CAAA,CAAA;AAC3D,EAAA,IAAI,eAAkB,GAAA,EAAA,CAAA;AAEtB,EAAA,IAAI,eAAe,WAAa,EAAA;AAC9B,IAAkB,eAAA,GAAA,UAAA,CAAA;AAAA,GACpB;AACA,EAAA,IAAI,CAAC,WAAA;AAAa,IAAO,OAAA,eAAA,CAAA;AAEzB,EAAI,IAAA,WAAA,IAAe,WAAe,IAAA,WAAA,GAAc,WAAa,EAAA;AAC3D,IAAkB,eAAA,GAAA,UAAA,CAAA;AAAA,GACpB;AACA,EAAO,OAAA,eAAA,CAAA;AACT,CAAA;AAEA,MAAM,uBACJ,KAAM,CAAA,UAAA;AAAA,EAIJ,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,KAEL,UACG,KAAA;AACH,IAAA,MAAM,mBAAsB,GAAA,0BAAA;AAAA,MAC1B,QAAA;AAAA,MACA,MAAO,CAAA,IAAA;AAAA,KACT,CAAA;AAEA,IACE,uBAAA,GAAA;AAAA,MAAC,IAAA;AAAA,MAAA;AAAA,QACE,GAAG,KAAA;AAAA,QACH,GAAG,IAAA;AAAA,QACJ,GAAK,EAAA,UAAA;AAAA,QACL,SAAW,EAAA,mBAAA;AAAA,QAEV,QAAA;AAAA,OAAA;AAAA,KACH,CAAA;AAAA,GAEJ;AACF,CAAA,CAAA;AAEF,oBAAA,CAAqB,WAAc,GAAA,gBAAA,CAAA;AAE5B,MAAM,cAAiB,GAAA;;;;"}
@@ -0,0 +1,6 @@
1
+ import React__default from 'react';
2
+
3
+ declare const TableRenderer: React__default.MemoExoticComponent<() => React__default.JSX.Element>;
4
+
5
+ export { TableRenderer };
6
+ //# sourceMappingURL=TableRenderer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TableRenderer.d.ts","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -0,0 +1,50 @@
1
+ import { jsxs, jsx } from '@apia/theme/jsx-runtime';
2
+ import React from 'react';
3
+ import { shallowEqual } from 'react-redux';
4
+ import { Box, getVariant } from '@apia/theme';
5
+ import { Header } from '../Header.js';
6
+ import { useResponsiveTableContext } from '../ResponsiveTableContext.js';
7
+ import { Row } from '../Row.js';
8
+ import { NoRegistersRenderer } from './NoRegistersRenderer.js';
9
+ import { useDomProps } from '../store/selection/useDomProps.js';
10
+ import { useResponsiveTable } from '../store/index.js';
11
+
12
+ const NoMemoTableRenderer = () => {
13
+ const { name, label } = useResponsiveTableContext();
14
+ const domProps = useDomProps(
15
+ "table",
16
+ {},
17
+ (global) => global.responsiveTableSlice[name]
18
+ );
19
+ const rows = useResponsiveTable((global) => {
20
+ const tableState = global.responsiveTableSlice[name];
21
+ return (tableState?.rows ?? []).map((current) => current.id);
22
+ }, shallowEqual);
23
+ const { columnsCount, rowsCount } = useResponsiveTable((global) => {
24
+ const tableState = global.responsiveTableSlice[name];
25
+ return {
26
+ rowsCount: tableState?.rows.length ?? 0,
27
+ columnsCount: (tableState?.nonAdditionalColumnsCount ?? 0) + (tableState?.hasNonAdditionalFilters ? 1 : 0) + (tableState?.statesColumns ?? 0) + (tableState?.columns.find((current) => current.showAsAdditional) ? 1 : 0)
28
+ };
29
+ }, shallowEqual);
30
+ return /* @__PURE__ */ jsxs(
31
+ Box,
32
+ {
33
+ ...domProps,
34
+ as: "table",
35
+ className: "responsiveTable__table",
36
+ ...getVariant("layout.common.tables.primary"),
37
+ "aria-label": label,
38
+ children: [
39
+ /* @__PURE__ */ jsx(Header, {}),
40
+ /* @__PURE__ */ jsx("tbody", { children: rowsCount > 0 ? rows.map((row, index) => {
41
+ return /* @__PURE__ */ jsx(Row, { rowIndex: index }, row ?? `${row}-${index}`);
42
+ }) : /* @__PURE__ */ jsx("tr", { children: /* @__PURE__ */ jsx("td", { colSpan: columnsCount, children: /* @__PURE__ */ jsx(NoRegistersRenderer, {}) }) }) })
43
+ ]
44
+ }
45
+ );
46
+ };
47
+ const TableRenderer = React.memo(NoMemoTableRenderer);
48
+
49
+ export { TableRenderer };
50
+ //# sourceMappingURL=TableRenderer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TableRenderer.js","sources":["../../src/renderers/TableRenderer.tsx"],"sourcesContent":["import React from 'react';\r\nimport { shallowEqual } from 'react-redux';\r\nimport { Box } from '@apia/theme';\r\nimport { getVariant } from '@apia/theme';\r\nimport { Header } from '../Header';\r\nimport { useResponsiveTableContext } from '../ResponsiveTableContext';\r\nimport { Row } from '../Row';\r\nimport { NoRegistersRenderer } from './NoRegistersRenderer';\r\nimport { useDomProps } from '../store/selection/useDomProps';\r\nimport { useResponsiveTable } from '../store';\r\n\r\nconst NoMemoTableRenderer = () => {\r\n const { name, label } = useResponsiveTableContext();\r\n const domProps = useDomProps(\r\n 'table',\r\n {},\r\n (global) => global.responsiveTableSlice[name],\r\n );\r\n\r\n const rows = useResponsiveTable((global) => {\r\n const tableState = global.responsiveTableSlice[name];\r\n return (tableState?.rows ?? []).map((current) => current.id);\r\n }, shallowEqual);\r\n\r\n const { columnsCount, rowsCount } = useResponsiveTable((global) => {\r\n const tableState = global.responsiveTableSlice[name];\r\n return {\r\n rowsCount: tableState?.rows.length ?? 0,\r\n columnsCount:\r\n (tableState?.nonAdditionalColumnsCount ?? 0) +\r\n (tableState?.hasNonAdditionalFilters ? 1 : 0) +\r\n (tableState?.statesColumns ?? 0) +\r\n (tableState?.columns.find((current) => current.showAsAdditional)\r\n ? 1\r\n : 0),\r\n };\r\n }, shallowEqual);\r\n\r\n return (\r\n <Box\r\n {...domProps}\r\n as=\"table\"\r\n className=\"responsiveTable__table\"\r\n {...getVariant('layout.common.tables.primary')}\r\n aria-label={label}\r\n >\r\n <Header />\r\n <tbody>\r\n {rowsCount > 0 ? (\r\n rows.map((row, index) => {\r\n return (\r\n <Row key={row ?? `${row as string}-${index}`} rowIndex={index} />\r\n );\r\n })\r\n ) : (\r\n <tr>\r\n <td colSpan={columnsCount}>\r\n <NoRegistersRenderer />\r\n </td>\r\n </tr>\r\n )}\r\n </tbody>\r\n </Box>\r\n );\r\n};\r\n\r\nexport const TableRenderer = React.memo(NoMemoTableRenderer);\r\n"],"names":[],"mappings":";;;;;;;;;;;AAWA,MAAM,sBAAsB,MAAM;AAChC,EAAA,MAAM,EAAE,IAAA,EAAM,KAAM,EAAA,GAAI,yBAA0B,EAAA,CAAA;AAClD,EAAA,MAAM,QAAW,GAAA,WAAA;AAAA,IACf,OAAA;AAAA,IACA,EAAC;AAAA,IACD,CAAC,MAAA,KAAW,MAAO,CAAA,oBAAA,CAAqB,IAAI,CAAA;AAAA,GAC9C,CAAA;AAEA,EAAM,MAAA,IAAA,GAAO,kBAAmB,CAAA,CAAC,MAAW,KAAA;AAC1C,IAAM,MAAA,UAAA,GAAa,MAAO,CAAA,oBAAA,CAAqB,IAAI,CAAA,CAAA;AACnD,IAAQ,OAAA,CAAA,UAAA,EAAY,QAAQ,EAAC,EAAG,IAAI,CAAC,OAAA,KAAY,QAAQ,EAAE,CAAA,CAAA;AAAA,KAC1D,YAAY,CAAA,CAAA;AAEf,EAAA,MAAM,EAAE,YAAc,EAAA,SAAA,EAAc,GAAA,kBAAA,CAAmB,CAAC,MAAW,KAAA;AACjE,IAAM,MAAA,UAAA,GAAa,MAAO,CAAA,oBAAA,CAAqB,IAAI,CAAA,CAAA;AACnD,IAAO,OAAA;AAAA,MACL,SAAA,EAAW,UAAY,EAAA,IAAA,CAAK,MAAU,IAAA,CAAA;AAAA,MACtC,eACG,UAAY,EAAA,yBAAA,IAA6B,MACzC,UAAY,EAAA,uBAAA,GAA0B,IAAI,CAC1C,CAAA,IAAA,UAAA,EAAY,iBAAiB,CAC7B,CAAA,IAAA,UAAA,EAAY,QAAQ,IAAK,CAAA,CAAC,YAAY,OAAQ,CAAA,gBAAgB,IAC3D,CACA,GAAA,CAAA,CAAA;AAAA,KACR,CAAA;AAAA,KACC,YAAY,CAAA,CAAA;AAEf,EACE,uBAAA,IAAA;AAAA,IAAC,GAAA;AAAA,IAAA;AAAA,MACE,GAAG,QAAA;AAAA,MACJ,EAAG,EAAA,OAAA;AAAA,MACH,SAAU,EAAA,wBAAA;AAAA,MACT,GAAG,WAAW,8BAA8B,CAAA;AAAA,MAC7C,YAAY,EAAA,KAAA;AAAA,MAEZ,QAAA,EAAA;AAAA,wBAAA,GAAA,CAAC,MAAO,EAAA,EAAA,CAAA;AAAA,wBACR,GAAA,CAAC,WACE,QAAY,EAAA,SAAA,GAAA,CAAA,GACX,KAAK,GAAI,CAAA,CAAC,KAAK,KAAU,KAAA;AACvB,UACE,uBAAA,GAAA,CAAC,OAA6C,QAAU,EAAA,KAAA,EAAA,EAA9C,OAAO,CAAG,EAAA,GAAa,CAAI,CAAA,EAAA,KAAK,CAAqB,CAAA,CAAA,CAAA;AAAA,SAElE,CAAA,mBAEA,GAAA,CAAA,IAAA,EAAA,EACC,QAAC,kBAAA,GAAA,CAAA,IAAA,EAAA,EAAG,OAAS,EAAA,YAAA,EACX,QAAC,kBAAA,GAAA,CAAA,mBAAA,EAAA,EAAoB,CACvB,EAAA,CAAA,EACF,CAEJ,EAAA,CAAA;AAAA,OAAA;AAAA,KAAA;AAAA,GACF,CAAA;AAEJ,CAAA,CAAA;AAEa,MAAA,aAAA,GAAgB,KAAM,CAAA,IAAA,CAAK,mBAAmB;;;;"}
@@ -0,0 +1,9 @@
1
+ import { TResponsiveTableRow, TResponsiveTableCellRenderer } from '../types.js';
2
+
3
+ declare function makeAccordionAsyncRenderer(additionalInfoGetter: (row: TResponsiveTableRow) => Promise<{
4
+ label?: string;
5
+ name: string;
6
+ }[]>): TResponsiveTableCellRenderer;
7
+
8
+ export { makeAccordionAsyncRenderer };
9
+ //# sourceMappingURL=makeAccordionAsyncRenderer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"makeAccordionAsyncRenderer.d.ts","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -0,0 +1,35 @@
1
+ import { jsx, Fragment, jsxs } from '@apia/theme/jsx-runtime';
2
+ import { forwardRef, useState, useCallback } from 'react';
3
+ import { Box } from '@apia/theme';
4
+ import { IconButton } from '@apia/components';
5
+ import { arrayOrArray } from '@apia/util';
6
+
7
+ function makeAccordionAsyncRenderer(additionalInfoGetter) {
8
+ const InnerRender = forwardRef(({ row }, ref) => {
9
+ const [moreInfo, setMoreInfo] = useState(null);
10
+ const loadMore = useCallback(async () => {
11
+ const result = await additionalInfoGetter(row);
12
+ setMoreInfo(result);
13
+ }, [row]);
14
+ return /* @__PURE__ */ jsx(Fragment, { children: moreInfo ? /* @__PURE__ */ jsxs(Fragment, { children: [
15
+ /* @__PURE__ */ jsx(IconButton, { icon: "Minus", onClick: () => setMoreInfo(null) }),
16
+ arrayOrArray(moreInfo).map(
17
+ (dataCell) => {
18
+ return /* @__PURE__ */ jsxs(Box, { ref, as: "div", children: [
19
+ /* @__PURE__ */ jsxs(Box, { as: "strong", children: [
20
+ dataCell.name,
21
+ ":"
22
+ ] }),
23
+ " ",
24
+ dataCell.label
25
+ ] }, dataCell.name);
26
+ }
27
+ )
28
+ ] }) : /* @__PURE__ */ jsx(IconButton, { icon: "Plus", onClick: () => void loadMore() }) });
29
+ });
30
+ InnerRender.displayName = "MakeAccordionAsyncRenderer";
31
+ return InnerRender;
32
+ }
33
+
34
+ export { makeAccordionAsyncRenderer };
35
+ //# sourceMappingURL=makeAccordionAsyncRenderer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"makeAccordionAsyncRenderer.js","sources":["../../src/renderers/makeAccordionAsyncRenderer.tsx"],"sourcesContent":["import { forwardRef, useCallback, useState } from 'react';\r\nimport { Box } from '@apia/theme';\r\nimport { IconButton } from '@apia/components';\r\nimport { arrayOrArray } from '@apia/util';\r\nimport {\r\n TResponsiveTableRow,\r\n TResponsiveTableCellRenderer,\r\n TResponsiveTableCellRendererProps,\r\n} from '../types';\r\n\r\nexport function makeAccordionAsyncRenderer(\r\n additionalInfoGetter: (row: TResponsiveTableRow) => Promise<\r\n {\r\n label?: string;\r\n name: string;\r\n }[]\r\n >,\r\n) {\r\n const InnerRender: TResponsiveTableCellRenderer = forwardRef<\r\n HTMLElement,\r\n TResponsiveTableCellRendererProps\r\n >(({ row }, ref) => {\r\n const [moreInfo, setMoreInfo] = useState<\r\n | {\r\n label?: string;\r\n name: string;\r\n }[]\r\n | null\r\n >(null);\r\n const loadMore = useCallback(async () => {\r\n const result = await additionalInfoGetter(row);\r\n setMoreInfo(result);\r\n }, [row]);\r\n\r\n return (\r\n <>\r\n {moreInfo ? (\r\n <>\r\n <IconButton icon=\"Minus\" onClick={() => setMoreInfo(null)} />\r\n {arrayOrArray(moreInfo).map(\r\n (dataCell: { label?: string; name: string }) => {\r\n return (\r\n <Box key={dataCell.name} ref={ref} as=\"div\">\r\n <Box as=\"strong\">{dataCell.name}:</Box> {dataCell.label}\r\n </Box>\r\n );\r\n },\r\n )}\r\n </>\r\n ) : (\r\n <IconButton icon=\"Plus\" onClick={() => void loadMore()} />\r\n )}\r\n </>\r\n );\r\n });\r\n\r\n InnerRender.displayName = 'MakeAccordionAsyncRenderer';\r\n\r\n return InnerRender;\r\n}\r\n"],"names":[],"mappings":";;;;;;AAUO,SAAS,2BACd,oBAMA,EAAA;AACA,EAAA,MAAM,cAA4C,UAGhD,CAAA,CAAC,EAAE,GAAA,IAAO,GAAQ,KAAA;AAClB,IAAA,MAAM,CAAC,QAAA,EAAU,WAAW,CAAA,GAAI,SAM9B,IAAI,CAAA,CAAA;AACN,IAAM,MAAA,QAAA,GAAW,YAAY,YAAY;AACvC,MAAM,MAAA,MAAA,GAAS,MAAM,oBAAA,CAAqB,GAAG,CAAA,CAAA;AAC7C,MAAA,WAAA,CAAY,MAAM,CAAA,CAAA;AAAA,KACpB,EAAG,CAAC,GAAG,CAAC,CAAA,CAAA;AAER,IACE,uBAAA,GAAA,CAAA,QAAA,EAAA,EACG,qCAEG,IAAA,CAAA,QAAA,EAAA,EAAA,QAAA,EAAA;AAAA,sBAAA,GAAA,CAAC,cAAW,IAAK,EAAA,OAAA,EAAQ,SAAS,MAAM,WAAA,CAAY,IAAI,CAAG,EAAA,CAAA;AAAA,MAC1D,YAAA,CAAa,QAAQ,CAAE,CAAA,GAAA;AAAA,QACtB,CAAC,QAA+C,KAAA;AAC9C,UAAA,uBACG,IAAA,CAAA,GAAA,EAAA,EAAwB,GAAU,EAAA,EAAA,EAAG,KACpC,EAAA,QAAA,EAAA;AAAA,4BAAC,IAAA,CAAA,GAAA,EAAA,EAAI,IAAG,QAAU,EAAA,QAAA,EAAA;AAAA,cAAS,QAAA,CAAA,IAAA;AAAA,cAAK,GAAA;AAAA,aAAC,EAAA,CAAA;AAAA,YAAM,GAAA;AAAA,YAAE,QAAS,CAAA,KAAA;AAAA,WAAA,EAAA,EAD1C,SAAS,IAEnB,CAAA,CAAA;AAAA,SAEJ;AAAA,OACF;AAAA,KACF,EAAA,CAAA,mBAEC,GAAA,CAAA,UAAA,EAAA,EAAW,IAAK,EAAA,MAAA,EAAO,SAAS,MAAM,KAAK,QAAS,EAAA,EAAG,CAE5D,EAAA,CAAA,CAAA;AAAA,GAEH,CAAA,CAAA;AAED,EAAA,WAAA,CAAY,WAAc,GAAA,4BAAA,CAAA;AAE1B,EAAO,OAAA,WAAA,CAAA;AACT;;;;"}
@@ -0,0 +1,10 @@
1
+ import { TResponsiveTableRow, TResponsiveTableCellRenderer } from '../types.js';
2
+
3
+ declare function makeAsyncRenderer(additionalInfoGetter: (row: TResponsiveTableRow) => Promise<{
4
+ label?: string;
5
+ name: string;
6
+ newline?: boolean;
7
+ }[]>): TResponsiveTableCellRenderer;
8
+
9
+ export { makeAsyncRenderer };
10
+ //# sourceMappingURL=makeAsyncRenderer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"makeAsyncRenderer.d.ts","sources":[],"sourcesContent":[],"names":[],"mappings":""}