@xyo-network/react-payload-table 2.64.8 → 2.64.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 (154) hide show
  1. package/dist/docs.json +116 -116
  2. package/package.json +18 -18
  3. package/dist/browser/components/DynamicTable/DynamicTableRow.cjs +0 -128
  4. package/dist/browser/components/DynamicTable/DynamicTableRow.cjs.map +0 -1
  5. package/dist/browser/components/DynamicTable/DynamicTableRow.js +0 -111
  6. package/dist/browser/components/DynamicTable/DynamicTableRow.js.map +0 -1
  7. package/dist/browser/components/DynamicTable/PayloadDynamicTableColumnConfig.cjs +0 -60
  8. package/dist/browser/components/DynamicTable/PayloadDynamicTableColumnConfig.cjs.map +0 -1
  9. package/dist/browser/components/DynamicTable/PayloadDynamicTableColumnConfig.js +0 -39
  10. package/dist/browser/components/DynamicTable/PayloadDynamicTableColumnConfig.js.map +0 -1
  11. package/dist/browser/components/DynamicTable/Table.cjs +0 -241
  12. package/dist/browser/components/DynamicTable/Table.cjs.map +0 -1
  13. package/dist/browser/components/DynamicTable/Table.js +0 -237
  14. package/dist/browser/components/DynamicTable/Table.js.map +0 -1
  15. package/dist/browser/components/DynamicTable/index.cjs +0 -243
  16. package/dist/browser/components/DynamicTable/index.cjs.map +0 -1
  17. package/dist/browser/components/DynamicTable/index.js +0 -237
  18. package/dist/browser/components/DynamicTable/index.js.map +0 -1
  19. package/dist/browser/components/Table/PayloadTableColumnConfig.cjs +0 -40
  20. package/dist/browser/components/Table/PayloadTableColumnConfig.cjs.map +0 -1
  21. package/dist/browser/components/Table/PayloadTableColumnConfig.js +0 -19
  22. package/dist/browser/components/Table/PayloadTableColumnConfig.js.map +0 -1
  23. package/dist/browser/components/Table/Table.cjs +0 -366
  24. package/dist/browser/components/Table/Table.cjs.map +0 -1
  25. package/dist/browser/components/Table/Table.js +0 -349
  26. package/dist/browser/components/Table/Table.js.map +0 -1
  27. package/dist/browser/components/Table/TableBody.cjs +0 -152
  28. package/dist/browser/components/Table/TableBody.cjs.map +0 -1
  29. package/dist/browser/components/Table/TableBody.js +0 -135
  30. package/dist/browser/components/Table/TableBody.js.map +0 -1
  31. package/dist/browser/components/Table/TableFooter.cjs +0 -109
  32. package/dist/browser/components/Table/TableFooter.cjs.map +0 -1
  33. package/dist/browser/components/Table/TableFooter.js +0 -88
  34. package/dist/browser/components/Table/TableFooter.js.map +0 -1
  35. package/dist/browser/components/Table/TableHead.cjs +0 -52
  36. package/dist/browser/components/Table/TableHead.cjs.map +0 -1
  37. package/dist/browser/components/Table/TableHead.js +0 -31
  38. package/dist/browser/components/Table/TableHead.js.map +0 -1
  39. package/dist/browser/components/Table/TablePagination.cjs +0 -68
  40. package/dist/browser/components/Table/TablePagination.cjs.map +0 -1
  41. package/dist/browser/components/Table/TablePagination.js +0 -47
  42. package/dist/browser/components/Table/TablePagination.js.map +0 -1
  43. package/dist/browser/components/Table/TableRow.cjs +0 -100
  44. package/dist/browser/components/Table/TableRow.cjs.map +0 -1
  45. package/dist/browser/components/Table/TableRow.js +0 -83
  46. package/dist/browser/components/Table/TableRow.js.map +0 -1
  47. package/dist/browser/components/Table/TableRowNoData.cjs +0 -40
  48. package/dist/browser/components/Table/TableRowNoData.cjs.map +0 -1
  49. package/dist/browser/components/Table/TableRowNoData.js +0 -19
  50. package/dist/browser/components/Table/TableRowNoData.js.map +0 -1
  51. package/dist/browser/components/Table/index.cjs +0 -371
  52. package/dist/browser/components/Table/index.cjs.map +0 -1
  53. package/dist/browser/components/Table/index.js +0 -352
  54. package/dist/browser/components/Table/index.js.map +0 -1
  55. package/dist/browser/components/Table/types/PaginationEventNouns.cjs +0 -19
  56. package/dist/browser/components/Table/types/PaginationEventNouns.cjs.map +0 -1
  57. package/dist/browser/components/Table/types/PaginationEventNouns.js +0 -1
  58. package/dist/browser/components/Table/types/PaginationEventNouns.js.map +0 -1
  59. package/dist/browser/components/Table/types/PayloadTableBodyProps.cjs +0 -19
  60. package/dist/browser/components/Table/types/PayloadTableBodyProps.cjs.map +0 -1
  61. package/dist/browser/components/Table/types/PayloadTableBodyProps.js +0 -1
  62. package/dist/browser/components/Table/types/PayloadTableBodyProps.js.map +0 -1
  63. package/dist/browser/components/Table/types/PayloadTableFooterProps.cjs +0 -19
  64. package/dist/browser/components/Table/types/PayloadTableFooterProps.cjs.map +0 -1
  65. package/dist/browser/components/Table/types/PayloadTableFooterProps.js +0 -1
  66. package/dist/browser/components/Table/types/PayloadTableFooterProps.js.map +0 -1
  67. package/dist/browser/components/Table/types/PayloadTableHeadProps.cjs +0 -19
  68. package/dist/browser/components/Table/types/PayloadTableHeadProps.cjs.map +0 -1
  69. package/dist/browser/components/Table/types/PayloadTableHeadProps.js +0 -1
  70. package/dist/browser/components/Table/types/PayloadTableHeadProps.js.map +0 -1
  71. package/dist/browser/components/Table/types/index.cjs +0 -19
  72. package/dist/browser/components/Table/types/index.cjs.map +0 -1
  73. package/dist/browser/components/Table/types/index.js +0 -1
  74. package/dist/browser/components/Table/types/index.js.map +0 -1
  75. package/dist/browser/components/index.cjs +0 -589
  76. package/dist/browser/components/index.cjs.map +0 -1
  77. package/dist/browser/components/index.js +0 -587
  78. package/dist/browser/components/index.js.map +0 -1
  79. package/dist/node/components/DynamicTable/DynamicTableRow.cjs +0 -135
  80. package/dist/node/components/DynamicTable/DynamicTableRow.cjs.map +0 -1
  81. package/dist/node/components/DynamicTable/DynamicTableRow.js +0 -114
  82. package/dist/node/components/DynamicTable/DynamicTableRow.js.map +0 -1
  83. package/dist/node/components/DynamicTable/PayloadDynamicTableColumnConfig.cjs +0 -64
  84. package/dist/node/components/DynamicTable/PayloadDynamicTableColumnConfig.cjs.map +0 -1
  85. package/dist/node/components/DynamicTable/PayloadDynamicTableColumnConfig.js +0 -39
  86. package/dist/node/components/DynamicTable/PayloadDynamicTableColumnConfig.js.map +0 -1
  87. package/dist/node/components/DynamicTable/Table.cjs +0 -249
  88. package/dist/node/components/DynamicTable/Table.cjs.map +0 -1
  89. package/dist/node/components/DynamicTable/Table.js +0 -241
  90. package/dist/node/components/DynamicTable/Table.js.map +0 -1
  91. package/dist/node/components/DynamicTable/index.cjs +0 -253
  92. package/dist/node/components/DynamicTable/index.cjs.map +0 -1
  93. package/dist/node/components/DynamicTable/index.js +0 -241
  94. package/dist/node/components/DynamicTable/index.js.map +0 -1
  95. package/dist/node/components/Table/PayloadTableColumnConfig.cjs +0 -45
  96. package/dist/node/components/Table/PayloadTableColumnConfig.cjs.map +0 -1
  97. package/dist/node/components/Table/PayloadTableColumnConfig.js +0 -19
  98. package/dist/node/components/Table/PayloadTableColumnConfig.js.map +0 -1
  99. package/dist/node/components/Table/Table.cjs +0 -375
  100. package/dist/node/components/Table/Table.cjs.map +0 -1
  101. package/dist/node/components/Table/Table.js +0 -353
  102. package/dist/node/components/Table/Table.js.map +0 -1
  103. package/dist/node/components/Table/TableBody.cjs +0 -157
  104. package/dist/node/components/Table/TableBody.cjs.map +0 -1
  105. package/dist/node/components/Table/TableBody.js +0 -136
  106. package/dist/node/components/Table/TableBody.js.map +0 -1
  107. package/dist/node/components/Table/TableFooter.cjs +0 -115
  108. package/dist/node/components/Table/TableFooter.cjs.map +0 -1
  109. package/dist/node/components/Table/TableFooter.js +0 -90
  110. package/dist/node/components/Table/TableFooter.js.map +0 -1
  111. package/dist/node/components/Table/TableHead.cjs +0 -57
  112. package/dist/node/components/Table/TableHead.cjs.map +0 -1
  113. package/dist/node/components/Table/TableHead.js +0 -32
  114. package/dist/node/components/Table/TableHead.js.map +0 -1
  115. package/dist/node/components/Table/TablePagination.cjs +0 -74
  116. package/dist/node/components/Table/TablePagination.cjs.map +0 -1
  117. package/dist/node/components/Table/TablePagination.js +0 -49
  118. package/dist/node/components/Table/TablePagination.js.map +0 -1
  119. package/dist/node/components/Table/TableRow.cjs +0 -105
  120. package/dist/node/components/Table/TableRow.cjs.map +0 -1
  121. package/dist/node/components/Table/TableRow.js +0 -84
  122. package/dist/node/components/Table/TableRow.js.map +0 -1
  123. package/dist/node/components/Table/TableRowNoData.cjs +0 -44
  124. package/dist/node/components/Table/TableRowNoData.cjs.map +0 -1
  125. package/dist/node/components/Table/TableRowNoData.js +0 -19
  126. package/dist/node/components/Table/TableRowNoData.js.map +0 -1
  127. package/dist/node/components/Table/index.cjs +0 -385
  128. package/dist/node/components/Table/index.cjs.map +0 -1
  129. package/dist/node/components/Table/index.js +0 -356
  130. package/dist/node/components/Table/index.js.map +0 -1
  131. package/dist/node/components/Table/types/PaginationEventNouns.cjs +0 -19
  132. package/dist/node/components/Table/types/PaginationEventNouns.cjs.map +0 -1
  133. package/dist/node/components/Table/types/PaginationEventNouns.js +0 -1
  134. package/dist/node/components/Table/types/PaginationEventNouns.js.map +0 -1
  135. package/dist/node/components/Table/types/PayloadTableBodyProps.cjs +0 -19
  136. package/dist/node/components/Table/types/PayloadTableBodyProps.cjs.map +0 -1
  137. package/dist/node/components/Table/types/PayloadTableBodyProps.js +0 -1
  138. package/dist/node/components/Table/types/PayloadTableBodyProps.js.map +0 -1
  139. package/dist/node/components/Table/types/PayloadTableFooterProps.cjs +0 -19
  140. package/dist/node/components/Table/types/PayloadTableFooterProps.cjs.map +0 -1
  141. package/dist/node/components/Table/types/PayloadTableFooterProps.js +0 -1
  142. package/dist/node/components/Table/types/PayloadTableFooterProps.js.map +0 -1
  143. package/dist/node/components/Table/types/PayloadTableHeadProps.cjs +0 -19
  144. package/dist/node/components/Table/types/PayloadTableHeadProps.cjs.map +0 -1
  145. package/dist/node/components/Table/types/PayloadTableHeadProps.js +0 -1
  146. package/dist/node/components/Table/types/PayloadTableHeadProps.js.map +0 -1
  147. package/dist/node/components/Table/types/index.cjs +0 -19
  148. package/dist/node/components/Table/types/index.cjs.map +0 -1
  149. package/dist/node/components/Table/types/index.js +0 -1
  150. package/dist/node/components/Table/types/index.js.map +0 -1
  151. package/dist/node/components/index.cjs +0 -610
  152. package/dist/node/components/index.cjs.map +0 -1
  153. package/dist/node/components/index.js +0 -595
  154. package/dist/node/components/index.js.map +0 -1
@@ -1,253 +0,0 @@
1
- "use strict";
2
- var __defProp = Object.defineProperty;
3
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
- var __getOwnPropNames = Object.getOwnPropertyNames;
5
- var __hasOwnProp = Object.prototype.hasOwnProperty;
6
- var __export = (target, all) => {
7
- for (var name in all)
8
- __defProp(target, name, { get: all[name], enumerable: true });
9
- };
10
- var __copyProps = (to, from, except, desc) => {
11
- if (from && typeof from === "object" || typeof from === "function") {
12
- for (let key of __getOwnPropNames(from))
13
- if (!__hasOwnProp.call(to, key) && key !== except)
14
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
- }
16
- return to;
17
- };
18
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
-
20
- // src/components/DynamicTable/index.ts
21
- var DynamicTable_exports = {};
22
- __export(DynamicTable_exports, {
23
- PayloadDynamicTable: () => PayloadDynamicTable,
24
- PayloadDynamicTableRow: () => PayloadDynamicTableRow,
25
- payloadDynamicTableColumnConfigDefaults: () => payloadDynamicTableColumnConfigDefaults
26
- });
27
- module.exports = __toCommonJS(DynamicTable_exports);
28
-
29
- // src/components/DynamicTable/DynamicTableRow.tsx
30
- var import_icons_material = require("@mui/icons-material");
31
- var import_material = require("@mui/material");
32
- var import_react_promise = require("@xylabs/react-promise");
33
- var import_react_shared = require("@xylabs/react-shared");
34
- var import_hash = require("@xyo-network/hash");
35
- var import_payload_validator = require("@xyo-network/payload-validator");
36
- var import_react_network = require("@xyo-network/react-network");
37
- var import_react_payload_plugin_resolver = require("@xyo-network/react-payload-plugin-resolver");
38
- var import_react_shared2 = require("@xyo-network/react-shared");
39
-
40
- // src/components/DynamicTable/PayloadDynamicTableColumnConfig.ts
41
- var payloadDynamicTableColumnConfigDefaults = () => {
42
- const xs = [
43
- { alignment: "left", name: "Hash", slug: "hash", width: "100%" },
44
- { alignment: "left", name: "Schema", slug: "schema", width: "50px" },
45
- { alignment: "left", name: "Valid", slug: "valid", width: "50px" }
46
- ];
47
- const sm = [
48
- { alignment: "left", name: "Icon", slug: "icon", width: "50px" },
49
- { alignment: "left", name: "Hash", slug: "hash", width: "100%" },
50
- { alignment: "left", name: "Schema", slug: "schema", width: "50px" },
51
- { alignment: "left", name: "Valid", slug: "valid", width: "50px" }
52
- ];
53
- const md = [
54
- { alignment: "left", name: "Icon", slug: "icon", width: "50px" },
55
- { alignment: "left", name: "Hash", slug: "hash", width: "100%" },
56
- { alignment: "left", name: "Schema", slug: "schema", width: "50px" },
57
- { alignment: "left", name: "Valid", slug: "valid", width: "50px" }
58
- ];
59
- const lg = [
60
- { alignment: "left", name: "Icon", slug: "icon", width: "50px" },
61
- { alignment: "left", name: "Hash", slug: "hash", width: "100%" },
62
- { alignment: "left", name: "Schema", slug: "schema", width: "50px" },
63
- { alignment: "left", name: "Render", slug: "render", width: "50px" },
64
- { alignment: "left", name: "Valid", slug: "valid", width: "50px" }
65
- ];
66
- const xl = [
67
- { alignment: "left", name: "Icon", slug: "icon", width: "50px" },
68
- { alignment: "left", name: "Hash", slug: "hash", width: "100%" },
69
- { alignment: "left", name: "Schema", slug: "schema", width: "50px" },
70
- { alignment: "left", name: "Render", slug: "render", width: "50px" },
71
- { alignment: "left", name: "Valid", slug: "valid", width: "50px" }
72
- ];
73
- return { lg, md, sm, xl, xs };
74
- };
75
-
76
- // src/components/DynamicTable/DynamicTableRow.tsx
77
- var import_jsx_runtime = require("react/jsx-runtime");
78
- var PayloadDynamicTableRow = ({
79
- archive,
80
- columns = payloadDynamicTableColumnConfigDefaults(),
81
- exploreDomain,
82
- network: networkProp,
83
- payload,
84
- ...props
85
- }) => {
86
- var _a;
87
- const breakPoint = (0, import_react_shared.useBreakpoint)();
88
- const payloadHash = (0, import_react_shared2.usePayloadHash)(payload);
89
- const { network } = (0, import_react_network.useNetwork)();
90
- const { resolver } = (0, import_react_payload_plugin_resolver.usePayloadRenderPluginResolver)();
91
- const [validationErrors = []] = (0, import_react_promise.usePromise)(async () => payload ? await new import_payload_validator.PayloadValidator(payload).validate() : void 0, [payload]);
92
- const isValid = validationErrors.length === 0;
93
- const payloadFieldCount = payload ? Object.keys(import_hash.PayloadHasher.hashFields(payload)).length : 0;
94
- const hash = (props2) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
95
- import_react_shared2.HashTableCell,
96
- {
97
- align: "left",
98
- archive,
99
- value: payloadHash,
100
- dataType: "payload",
101
- exploreDomain,
102
- network: networkProp ?? (network == null ? void 0 : network.slug),
103
- ...props2
104
- },
105
- "hash"
106
- );
107
- const schema = (props2) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_material.TableCell, { align: "left", ...props2, children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_material.Typography, { fontFamily: "monospace", variant: "body2", noWrap: true, children: payload == null ? void 0 : payload.schema }) }, "payloads");
108
- const details = (props2) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_material.TableCell, { align: "left", ...props2, children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_material.Typography, { fontFamily: "monospace", variant: "body2", noWrap: true, children: payloadFieldCount }) }, "payloads");
109
- const render = (props2) => {
110
- var _a2;
111
- const Render = payload ? (_a2 = resolver == null ? void 0 : resolver.resolve(payload)) == null ? void 0 : _a2.components.table.cell : void 0;
112
- return Render ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Render, { payload, ...props2 }) : /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_material.TableCell, { align: "left", ...props2 }, "payloads");
113
- };
114
- const icon = (props2) => {
115
- var _a2;
116
- const Avatar = payload ? (_a2 = resolver == null ? void 0 : resolver.resolve(payload)) == null ? void 0 : _a2.components.avatar.image : void 0;
117
- return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_material.TableCell, { align: "left", ...props2, children: Avatar ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Avatar, { payload }) : null }, "payloads");
118
- };
119
- const valid = (props2) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_material.TableCell, { align: "center", ...props2, children: isValid === void 0 && payload != void 0 ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_icons_material.WarningAmberRounded, { fontSize: "small", color: "warning" }) : isValid === true ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_icons_material.CheckCircleOutlineRounded, { fontSize: "small", color: "success" }) : isValid === false ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_icons_material.ErrorOutlineRounded, { color: "error", fontSize: "small" }) : (
120
- //nbsp to keep row height consistent even when no data is provided for the row
121
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_material.Typography, { children: " \xA0" })
122
- ) }, "valid");
123
- const tableCells = {
124
- details,
125
- hash,
126
- icon,
127
- render,
128
- schema,
129
- valid
130
- };
131
- return breakPoint ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_material.TableRow, { style: { maxWidth: "100vw" }, ...props, children: (_a = columns[breakPoint]) == null ? void 0 : _a.map((column) => {
132
- return column.slug ? tableCells[column.slug]({}) : null;
133
- }) }) : null;
134
- };
135
-
136
- // src/components/DynamicTable/Table.tsx
137
- var import_icons_material2 = require("@mui/icons-material");
138
- var import_material2 = require("@mui/material");
139
- var import_react_shared3 = require("@xylabs/react-shared");
140
- var import_react_error = require("@xyo-network/react-error");
141
- var import_react_shared4 = require("@xyo-network/react-shared");
142
- var import_react = require("react");
143
- var import_jsx_runtime2 = require("react/jsx-runtime");
144
- function TablePaginationActions(props) {
145
- const theme = (0, import_material2.useTheme)();
146
- const { count, page, rowsPerPage, onPageChange } = props;
147
- const handleFirstPageButtonClick = (event) => {
148
- onPageChange(event, 0);
149
- };
150
- const handleBackButtonClick = (event) => {
151
- onPageChange(event, page - 1);
152
- };
153
- const handleNextButtonClick = (event) => {
154
- onPageChange(event, page + 1);
155
- };
156
- const handleLastPageButtonClick = (event) => {
157
- onPageChange(event, Math.max(0, Math.ceil(count / rowsPerPage) - 1));
158
- };
159
- return /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)(import_material2.Box, { sx: { flexShrink: 0, ml: 2.5 }, children: [
160
- /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(import_material2.IconButton, { onClick: handleFirstPageButtonClick, disabled: page === 0, "aria-label": "first page", children: theme.direction === "rtl" ? /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(import_icons_material2.LastPage, {}) : /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(import_icons_material2.FirstPage, {}) }),
161
- /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(import_material2.IconButton, { onClick: handleBackButtonClick, disabled: page === 0, "aria-label": "previous page", children: theme.direction === "rtl" ? /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(import_icons_material2.KeyboardArrowRight, {}) : /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(import_icons_material2.KeyboardArrowLeft, {}) }),
162
- /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(import_material2.IconButton, { onClick: handleNextButtonClick, disabled: page >= Math.ceil(count / rowsPerPage) - 1, "aria-label": "next page", children: theme.direction === "rtl" ? /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(import_icons_material2.KeyboardArrowLeft, {}) : /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(import_icons_material2.KeyboardArrowRight, {}) }),
163
- /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(import_material2.IconButton, { onClick: handleLastPageButtonClick, disabled: page >= Math.ceil(count / rowsPerPage) - 1, "aria-label": "last page", children: theme.direction === "rtl" ? /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(import_icons_material2.FirstPage, {}) : /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(import_icons_material2.LastPage, {}) })
164
- ] });
165
- }
166
- var PayloadDynamicTable = ({
167
- archive,
168
- children,
169
- columns = payloadDynamicTableColumnConfigDefaults(),
170
- exploreDomain,
171
- onRowClick,
172
- rowsPerPage: rowsPerPageProp = 10,
173
- payloads,
174
- ...props
175
- }) => {
176
- var _a;
177
- const breakPoint = (0, import_react_shared3.useBreakpoint)();
178
- const [page, setPage] = (0, import_react.useState)(0);
179
- const [rowsPerPage, setRowsPerPage] = (0, import_react.useState)(rowsPerPageProp);
180
- const payloadCount = payloads ? payloads.length : 0;
181
- const emptyRows = page > 0 ? Math.max(0, (1 + page) * rowsPerPage - payloadCount) : 0;
182
- const pagedPayloads = (0, import_react.useMemo)(() => payloads == null ? void 0 : payloads.slice(page * rowsPerPage, page * rowsPerPage + rowsPerPage), [payloads, page, rowsPerPage]);
183
- const payloadPairs = (0, import_react_shared4.usePayloadHashes)(pagedPayloads);
184
- (0, import_react.useEffect)(() => {
185
- setRowsPerPage(rowsPerPageProp);
186
- }, [rowsPerPageProp]);
187
- const handleChangePage = (event, newPage) => {
188
- setPage(newPage);
189
- };
190
- const handleChangeRowsPerPage = (event) => {
191
- setRowsPerPage(parseInt(event.target.value, 10));
192
- setPage(0);
193
- };
194
- return breakPoint ? /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)(import_material2.Table, { stickyHeader: true, ...props, children: [
195
- /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(import_material2.TableHead, { children: /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(import_material2.TableRow, { children: (_a = columns[breakPoint]) == null ? void 0 : _a.map((column, index) => {
196
- return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(import_material2.TableCell, { align: column.alignment ?? "left", width: column.width, children: /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(import_material2.Typography, { variant: "body2", noWrap: true, children: column.name }) }, index);
197
- }) }) }),
198
- /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)(import_material2.TableBody, { sx: { overflowY: "scroll " }, children: [
199
- payloadPairs == null ? void 0 : payloadPairs.map(([payload, hash], index) => {
200
- return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
201
- import_react_error.ThrownErrorBoundary,
202
- {
203
- boundaryName: "PayloadTableBody",
204
- errorComponent: (e) => /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)(import_material2.Alert, { severity: "error", children: [
205
- "Error Loading Payload: ",
206
- /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(import_material2.Typography, { fontWeight: "bold", children: e.message })
207
- ] }),
208
- children: /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
209
- PayloadDynamicTableRow,
210
- {
211
- archive,
212
- onClick: onRowClick ? () => {
213
- onRowClick(payload);
214
- } : void 0,
215
- exploreDomain,
216
- payload
217
- }
218
- )
219
- },
220
- `${hash}-${index}`
221
- );
222
- }),
223
- children,
224
- emptyRows > 0 && Array(emptyRows).fill(/* @__PURE__ */ (0, import_jsx_runtime2.jsx)(PayloadDynamicTableRow, {}))
225
- ] }),
226
- /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(import_material2.TableFooter, { children: /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(import_material2.TableRow, { children: /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
227
- import_material2.TablePagination,
228
- {
229
- rowsPerPageOptions: [5, 10, 25, { label: "All", value: -1 }],
230
- colSpan: 5,
231
- count: payloadCount,
232
- rowsPerPage,
233
- page,
234
- SelectProps: {
235
- inputProps: {
236
- "aria-label": "rows per page"
237
- },
238
- native: true
239
- },
240
- onPageChange: handleChangePage,
241
- onRowsPerPageChange: handleChangeRowsPerPage,
242
- ActionsComponent: TablePaginationActions
243
- }
244
- ) }) })
245
- ] }) : null;
246
- };
247
- // Annotate the CommonJS export names for ESM import in node:
248
- 0 && (module.exports = {
249
- PayloadDynamicTable,
250
- PayloadDynamicTableRow,
251
- payloadDynamicTableColumnConfigDefaults
252
- });
253
- //# sourceMappingURL=index.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../src/components/DynamicTable/index.ts","../../../../src/components/DynamicTable/DynamicTableRow.tsx","../../../../src/components/DynamicTable/PayloadDynamicTableColumnConfig.ts","../../../../src/components/DynamicTable/Table.tsx"],"sourcesContent":["export * from './DynamicTableRow'\nexport * from './PayloadDynamicTableColumnConfig'\nexport * from './Table'\n","import {\n CheckCircleOutlineRounded as CheckCircleOutlineRoundedIcon,\n ErrorOutlineRounded as ErrorOutlineRoundedIcon,\n WarningAmberRounded as WarningAmberRoundedIcon,\n} from '@mui/icons-material'\nimport { AvatarProps, TableCell, TableCellProps, TableRow, TableRowProps, Typography } from '@mui/material'\nimport { usePromise } from '@xylabs/react-promise'\nimport { useBreakpoint } from '@xylabs/react-shared'\nimport { PayloadHasher } from '@xyo-network/hash'\nimport { Payload } from '@xyo-network/payload-model'\nimport { PayloadValidator } from '@xyo-network/payload-validator'\nimport { useNetwork } from '@xyo-network/react-network'\nimport { PayloadRenderProps } from '@xyo-network/react-payload-plugin'\nimport { usePayloadRenderPluginResolver } from '@xyo-network/react-payload-plugin-resolver'\nimport { HashTableCell, HashTableCellProps, usePayloadHash } from '@xyo-network/react-shared'\nimport { ComponentType } from 'react'\n\nimport {\n PayloadDynamicTableColumnConfig,\n payloadDynamicTableColumnConfigDefaults,\n PayloadDynamicTableColumnSlug,\n} from './PayloadDynamicTableColumnConfig'\n\nexport interface PayloadDynamicTableRowProps extends TableRowProps {\n archive?: string\n columns?: PayloadDynamicTableColumnConfig\n exploreDomain?: string\n network?: string\n payload?: Payload & { sources?: string[] }\n}\n\nexport const PayloadDynamicTableRow: React.FC<PayloadDynamicTableRowProps> = ({\n archive,\n columns = payloadDynamicTableColumnConfigDefaults(),\n exploreDomain,\n network: networkProp,\n payload,\n ...props\n}) => {\n const breakPoint = useBreakpoint()\n const payloadHash = usePayloadHash(payload)\n const { network } = useNetwork()\n const { resolver } = usePayloadRenderPluginResolver()\n const [validationErrors = []] = usePromise(async () => (payload ? await new PayloadValidator(payload).validate() : undefined), [payload])\n const isValid = validationErrors.length === 0\n const payloadFieldCount = payload ? Object.keys(PayloadHasher.hashFields(payload)).length : 0\n const hash: React.FC<HashTableCellProps> = (props) => (\n <HashTableCell\n key=\"hash\"\n align=\"left\"\n archive={archive}\n value={payloadHash}\n dataType=\"payload\"\n exploreDomain={exploreDomain}\n network={networkProp ?? network?.slug}\n {...props}\n />\n )\n\n const schema: React.FC<TableCellProps> = (props) => (\n <TableCell key=\"payloads\" align=\"left\" {...props}>\n <Typography fontFamily=\"monospace\" variant=\"body2\" noWrap>\n {payload?.schema}\n </Typography>\n </TableCell>\n )\n\n const details: React.FC<TableCellProps> = (props) => (\n <TableCell key=\"payloads\" align=\"left\" {...props}>\n <Typography fontFamily=\"monospace\" variant=\"body2\" noWrap>\n {payloadFieldCount}\n </Typography>\n </TableCell>\n )\n\n const render: React.FC<TableCellProps> = (props) => {\n const Render: ComponentType<PayloadRenderProps & TableCellProps> | undefined = payload\n ? resolver?.resolve(payload)?.components.table.cell\n : undefined\n return Render ? <Render payload={payload} {...props} /> : <TableCell key=\"payloads\" align=\"left\" {...props}></TableCell>\n }\n\n const icon: React.FC<TableCellProps> = (props) => {\n const Avatar: ComponentType<PayloadRenderProps & AvatarProps> | undefined = payload\n ? resolver?.resolve(payload)?.components.avatar.image\n : undefined\n\n return (\n <TableCell key=\"payloads\" align=\"left\" {...props}>\n {Avatar ? <Avatar payload={payload} /> : null}\n </TableCell>\n )\n }\n\n const valid: React.FC<TableCellProps> = (props) => (\n <TableCell key=\"valid\" align=\"center\" {...props}>\n {isValid === undefined && payload != undefined ? (\n <WarningAmberRoundedIcon fontSize=\"small\" color=\"warning\" />\n ) : isValid === true ? (\n <CheckCircleOutlineRoundedIcon fontSize=\"small\" color=\"success\" />\n ) : isValid === false ? (\n <ErrorOutlineRoundedIcon color=\"error\" fontSize=\"small\" />\n ) : (\n //nbsp to keep row height consistent even when no data is provided for the row\n <Typography> &nbsp;</Typography>\n )}\n </TableCell>\n )\n\n const tableCells: Record<PayloadDynamicTableColumnSlug, React.FC<TableCellProps>> = {\n details,\n hash,\n icon,\n render,\n schema,\n valid,\n }\n\n return breakPoint ? (\n <TableRow style={{ maxWidth: '100vw' }} {...props}>\n {columns[breakPoint]?.map((column) => {\n return column.slug ? tableCells[column.slug]({}) : null\n })}\n </TableRow>\n ) : null\n}\n","export type PayloadDynamicTableColumnSlug = 'hash' | 'schema' | 'valid' | 'details' | 'render' | 'icon'\n\nexport interface PayloadDynamicTableColumnHeadData {\n alignment?: 'left' | 'center' | 'right'\n name?: string\n slug?: 'hash' | 'schema' | 'valid' | 'details' | 'render' | 'icon'\n width?: string | number\n}\n\nexport interface PayloadDynamicTableColumnConfig {\n xs?: PayloadDynamicTableColumnHeadData[]\n // eslint-disable-next-line @typescript-eslint/member-ordering\n sm?: PayloadDynamicTableColumnHeadData[]\n // eslint-disable-next-line @typescript-eslint/member-ordering\n md?: PayloadDynamicTableColumnHeadData[]\n // eslint-disable-next-line @typescript-eslint/member-ordering\n lg?: PayloadDynamicTableColumnHeadData[]\n xl?: PayloadDynamicTableColumnHeadData[]\n}\n\nexport const payloadDynamicTableColumnConfigDefaults = (): PayloadDynamicTableColumnConfig => {\n const xs: PayloadDynamicTableColumnHeadData[] = [\n { alignment: 'left', name: 'Hash', slug: 'hash', width: '100%' },\n { alignment: 'left', name: 'Schema', slug: 'schema', width: '50px' },\n { alignment: 'left', name: 'Valid', slug: 'valid', width: '50px' },\n ]\n const sm: PayloadDynamicTableColumnHeadData[] = [\n { alignment: 'left', name: 'Icon', slug: 'icon', width: '50px' },\n { alignment: 'left', name: 'Hash', slug: 'hash', width: '100%' },\n { alignment: 'left', name: 'Schema', slug: 'schema', width: '50px' },\n { alignment: 'left', name: 'Valid', slug: 'valid', width: '50px' },\n ]\n const md: PayloadDynamicTableColumnHeadData[] = [\n { alignment: 'left', name: 'Icon', slug: 'icon', width: '50px' },\n { alignment: 'left', name: 'Hash', slug: 'hash', width: '100%' },\n { alignment: 'left', name: 'Schema', slug: 'schema', width: '50px' },\n { alignment: 'left', name: 'Valid', slug: 'valid', width: '50px' },\n ]\n const lg: PayloadDynamicTableColumnHeadData[] = [\n { alignment: 'left', name: 'Icon', slug: 'icon', width: '50px' },\n { alignment: 'left', name: 'Hash', slug: 'hash', width: '100%' },\n { alignment: 'left', name: 'Schema', slug: 'schema', width: '50px' },\n { alignment: 'left', name: 'Render', slug: 'render', width: '50px' },\n { alignment: 'left', name: 'Valid', slug: 'valid', width: '50px' },\n ]\n const xl: PayloadDynamicTableColumnHeadData[] = [\n { alignment: 'left', name: 'Icon', slug: 'icon', width: '50px' },\n { alignment: 'left', name: 'Hash', slug: 'hash', width: '100%' },\n { alignment: 'left', name: 'Schema', slug: 'schema', width: '50px' },\n { alignment: 'left', name: 'Render', slug: 'render', width: '50px' },\n { alignment: 'left', name: 'Valid', slug: 'valid', width: '50px' },\n ]\n return { lg, md, sm, xl, xs }\n}\n","import { FirstPage as FirstPageIcon, KeyboardArrowLeft, KeyboardArrowRight, LastPage as LastPageIcon } from '@mui/icons-material'\nimport {\n Alert,\n Box,\n IconButton,\n Table,\n TableBody,\n TableCell,\n TableFooter,\n TableHead,\n TablePagination,\n TableProps,\n TableRow,\n Typography,\n useTheme,\n} from '@mui/material'\nimport { useBreakpoint } from '@xylabs/react-shared'\nimport { Payload } from '@xyo-network/payload-model'\nimport { ThrownErrorBoundary } from '@xyo-network/react-error'\nimport { usePayloadHashes } from '@xyo-network/react-shared'\nimport { useEffect, useMemo, useState } from 'react'\n\nimport { PayloadDynamicTableRow } from './DynamicTableRow'\nimport { PayloadDynamicTableColumnConfig, payloadDynamicTableColumnConfigDefaults } from './PayloadDynamicTableColumnConfig'\n\nexport interface PayloadDynamicTableProps extends TableProps {\n archive?: string\n columns?: PayloadDynamicTableColumnConfig\n exploreDomain?: string\n onRowClick?: (value: Payload) => void\n payloads?: Payload[] | null\n rowsPerPage?: number\n}\n\ninterface TablePaginationActionsProps {\n count: number\n onPageChange: (event: React.MouseEvent<HTMLButtonElement>, newPage: number) => void\n page: number\n rowsPerPage: number\n}\n\nfunction TablePaginationActions(props: TablePaginationActionsProps) {\n const theme = useTheme()\n const { count, page, rowsPerPage, onPageChange } = props\n\n const handleFirstPageButtonClick = (event: React.MouseEvent<HTMLButtonElement>) => {\n onPageChange(event, 0)\n }\n\n const handleBackButtonClick = (event: React.MouseEvent<HTMLButtonElement>) => {\n onPageChange(event, page - 1)\n }\n\n const handleNextButtonClick = (event: React.MouseEvent<HTMLButtonElement>) => {\n onPageChange(event, page + 1)\n }\n\n const handleLastPageButtonClick = (event: React.MouseEvent<HTMLButtonElement>) => {\n onPageChange(event, Math.max(0, Math.ceil(count / rowsPerPage) - 1))\n }\n\n return (\n <Box sx={{ flexShrink: 0, ml: 2.5 }}>\n <IconButton onClick={handleFirstPageButtonClick} disabled={page === 0} aria-label=\"first page\">\n {theme.direction === 'rtl' ? <LastPageIcon /> : <FirstPageIcon />}\n </IconButton>\n <IconButton onClick={handleBackButtonClick} disabled={page === 0} aria-label=\"previous page\">\n {theme.direction === 'rtl' ? <KeyboardArrowRight /> : <KeyboardArrowLeft />}\n </IconButton>\n <IconButton onClick={handleNextButtonClick} disabled={page >= Math.ceil(count / rowsPerPage) - 1} aria-label=\"next page\">\n {theme.direction === 'rtl' ? <KeyboardArrowLeft /> : <KeyboardArrowRight />}\n </IconButton>\n <IconButton onClick={handleLastPageButtonClick} disabled={page >= Math.ceil(count / rowsPerPage) - 1} aria-label=\"last page\">\n {theme.direction === 'rtl' ? <FirstPageIcon /> : <LastPageIcon />}\n </IconButton>\n </Box>\n )\n}\n\nexport const PayloadDynamicTable: React.FC<PayloadDynamicTableProps> = ({\n archive,\n children,\n columns = payloadDynamicTableColumnConfigDefaults(),\n exploreDomain,\n onRowClick,\n rowsPerPage: rowsPerPageProp = 10,\n payloads,\n ...props\n}) => {\n const breakPoint = useBreakpoint()\n const [page, setPage] = useState(0)\n const [rowsPerPage, setRowsPerPage] = useState(rowsPerPageProp)\n const payloadCount = payloads ? payloads.length : 0\n // Avoid a layout jump when reaching the last page with empty rows.\n const emptyRows = page > 0 ? Math.max(0, (1 + page) * rowsPerPage - payloadCount) : 0\n\n const pagedPayloads = useMemo(() => payloads?.slice(page * rowsPerPage, page * rowsPerPage + rowsPerPage), [payloads, page, rowsPerPage])\n\n const payloadPairs = usePayloadHashes(pagedPayloads)\n\n useEffect(() => {\n setRowsPerPage(rowsPerPageProp)\n }, [rowsPerPageProp])\n\n const handleChangePage = (event: React.MouseEvent<HTMLButtonElement> | null, newPage: number) => {\n setPage(newPage)\n }\n\n const handleChangeRowsPerPage = (event: React.ChangeEvent<HTMLInputElement | HTMLTextAreaElement>) => {\n setRowsPerPage(parseInt(event.target.value, 10))\n setPage(0)\n }\n\n return breakPoint ? (\n <Table stickyHeader {...props}>\n <TableHead>\n <TableRow>\n {columns[breakPoint]?.map((column, index) => {\n return (\n <TableCell key={index} align={column.alignment ?? 'left'} width={column.width}>\n <Typography variant=\"body2\" noWrap>\n {column.name}\n </Typography>\n </TableCell>\n )\n })}\n </TableRow>\n </TableHead>\n <TableBody sx={{ overflowY: 'scroll ' }}>\n {payloadPairs?.map(([payload, hash], index) => {\n return (\n <ThrownErrorBoundary\n boundaryName=\"PayloadTableBody\"\n key={`${hash}-${index}`}\n errorComponent={(e) => (\n <Alert severity=\"error\">\n Error Loading Payload: <Typography fontWeight=\"bold\">{e.message}</Typography>\n </Alert>\n )}\n >\n <PayloadDynamicTableRow\n archive={archive}\n onClick={\n onRowClick\n ? () => {\n onRowClick(payload)\n }\n : undefined\n }\n exploreDomain={exploreDomain}\n payload={payload}\n />\n </ThrownErrorBoundary>\n )\n })}\n {children}\n {emptyRows > 0 && Array(emptyRows).fill(<PayloadDynamicTableRow />)}\n </TableBody>\n <TableFooter>\n <TableRow>\n <TablePagination\n rowsPerPageOptions={[5, 10, 25, { label: 'All', value: -1 }]}\n colSpan={5}\n count={payloadCount}\n rowsPerPage={rowsPerPage}\n page={page}\n SelectProps={{\n inputProps: {\n 'aria-label': 'rows per page',\n },\n native: true,\n }}\n onPageChange={handleChangePage}\n onRowsPerPageChange={handleChangeRowsPerPage}\n ActionsComponent={TablePaginationActions}\n />\n </TableRow>\n </TableFooter>\n </Table>\n ) : null\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACAA,4BAIO;AACP,sBAA4F;AAC5F,2BAA2B;AAC3B,0BAA8B;AAC9B,kBAA8B;AAE9B,+BAAiC;AACjC,2BAA2B;AAE3B,2CAA+C;AAC/C,IAAAA,uBAAkE;;;ACM3D,IAAM,0CAA0C,MAAuC;AAC5F,QAAM,KAA0C;AAAA,IAC9C,EAAE,WAAW,QAAQ,MAAM,QAAQ,MAAM,QAAQ,OAAO,OAAO;AAAA,IAC/D,EAAE,WAAW,QAAQ,MAAM,UAAU,MAAM,UAAU,OAAO,OAAO;AAAA,IACnE,EAAE,WAAW,QAAQ,MAAM,SAAS,MAAM,SAAS,OAAO,OAAO;AAAA,EACnE;AACA,QAAM,KAA0C;AAAA,IAC9C,EAAE,WAAW,QAAQ,MAAM,QAAQ,MAAM,QAAQ,OAAO,OAAO;AAAA,IAC/D,EAAE,WAAW,QAAQ,MAAM,QAAQ,MAAM,QAAQ,OAAO,OAAO;AAAA,IAC/D,EAAE,WAAW,QAAQ,MAAM,UAAU,MAAM,UAAU,OAAO,OAAO;AAAA,IACnE,EAAE,WAAW,QAAQ,MAAM,SAAS,MAAM,SAAS,OAAO,OAAO;AAAA,EACnE;AACA,QAAM,KAA0C;AAAA,IAC9C,EAAE,WAAW,QAAQ,MAAM,QAAQ,MAAM,QAAQ,OAAO,OAAO;AAAA,IAC/D,EAAE,WAAW,QAAQ,MAAM,QAAQ,MAAM,QAAQ,OAAO,OAAO;AAAA,IAC/D,EAAE,WAAW,QAAQ,MAAM,UAAU,MAAM,UAAU,OAAO,OAAO;AAAA,IACnE,EAAE,WAAW,QAAQ,MAAM,SAAS,MAAM,SAAS,OAAO,OAAO;AAAA,EACnE;AACA,QAAM,KAA0C;AAAA,IAC9C,EAAE,WAAW,QAAQ,MAAM,QAAQ,MAAM,QAAQ,OAAO,OAAO;AAAA,IAC/D,EAAE,WAAW,QAAQ,MAAM,QAAQ,MAAM,QAAQ,OAAO,OAAO;AAAA,IAC/D,EAAE,WAAW,QAAQ,MAAM,UAAU,MAAM,UAAU,OAAO,OAAO;AAAA,IACnE,EAAE,WAAW,QAAQ,MAAM,UAAU,MAAM,UAAU,OAAO,OAAO;AAAA,IACnE,EAAE,WAAW,QAAQ,MAAM,SAAS,MAAM,SAAS,OAAO,OAAO;AAAA,EACnE;AACA,QAAM,KAA0C;AAAA,IAC9C,EAAE,WAAW,QAAQ,MAAM,QAAQ,MAAM,QAAQ,OAAO,OAAO;AAAA,IAC/D,EAAE,WAAW,QAAQ,MAAM,QAAQ,MAAM,QAAQ,OAAO,OAAO;AAAA,IAC/D,EAAE,WAAW,QAAQ,MAAM,UAAU,MAAM,UAAU,OAAO,OAAO;AAAA,IACnE,EAAE,WAAW,QAAQ,MAAM,UAAU,MAAM,UAAU,OAAO,OAAO;AAAA,IACnE,EAAE,WAAW,QAAQ,MAAM,SAAS,MAAM,SAAS,OAAO,OAAO;AAAA,EACnE;AACA,SAAO,EAAE,IAAI,IAAI,IAAI,IAAI,GAAG;AAC9B;;;ADNI;AAhBG,IAAM,yBAAgE,CAAC;AAAA,EAC5E;AAAA,EACA,UAAU,wCAAwC;AAAA,EAClD;AAAA,EACA,SAAS;AAAA,EACT;AAAA,EACA,GAAG;AACL,MAAM;AAtCN;AAuCE,QAAM,iBAAa,mCAAc;AACjC,QAAM,kBAAc,qCAAe,OAAO;AAC1C,QAAM,EAAE,QAAQ,QAAI,iCAAW;AAC/B,QAAM,EAAE,SAAS,QAAI,qEAA+B;AACpD,QAAM,CAAC,mBAAmB,CAAC,CAAC,QAAI,iCAAW,YAAa,UAAU,MAAM,IAAI,0CAAiB,OAAO,EAAE,SAAS,IAAI,QAAY,CAAC,OAAO,CAAC;AACxI,QAAM,UAAU,iBAAiB,WAAW;AAC5C,QAAM,oBAAoB,UAAU,OAAO,KAAK,0BAAc,WAAW,OAAO,CAAC,EAAE,SAAS;AAC5F,QAAM,OAAqC,CAACC,WAC1C;AAAA,IAAC;AAAA;AAAA,MAEC,OAAM;AAAA,MACN;AAAA,MACA,OAAO;AAAA,MACP,UAAS;AAAA,MACT;AAAA,MACA,SAAS,gBAAe,mCAAS;AAAA,MAChC,GAAGA;AAAA;AAAA,IAPA;AAAA,EAQN;AAGF,QAAM,SAAmC,CAACA,WACxC,4CAAC,6BAAyB,OAAM,QAAQ,GAAGA,QACzC,sDAAC,8BAAW,YAAW,aAAY,SAAQ,SAAQ,QAAM,MACtD,6CAAS,QACZ,KAHa,UAIf;AAGF,QAAM,UAAoC,CAACA,WACzC,4CAAC,6BAAyB,OAAM,QAAQ,GAAGA,QACzC,sDAAC,8BAAW,YAAW,aAAY,SAAQ,SAAQ,QAAM,MACtD,6BACH,KAHa,UAIf;AAGF,QAAM,SAAmC,CAACA,WAAU;AA3EtD,QAAAC;AA4EI,UAAM,SAAyE,WAC3EA,MAAA,qCAAU,QAAQ,aAAlB,gBAAAA,IAA4B,WAAW,MAAM,OAC7C;AACJ,WAAO,SAAS,4CAAC,UAAO,SAAmB,GAAGD,QAAO,IAAK,4CAAC,6BAAyB,OAAM,QAAQ,GAAGA,UAA5B,UAAmC;AAAA,EAC9G;AAEA,QAAM,OAAiC,CAACA,WAAU;AAlFpD,QAAAC;AAmFI,UAAM,SAAsE,WACxEA,MAAA,qCAAU,QAAQ,aAAlB,gBAAAA,IAA4B,WAAW,OAAO,QAC9C;AAEJ,WACE,4CAAC,6BAAyB,OAAM,QAAQ,GAAGD,QACxC,mBAAS,4CAAC,UAAO,SAAkB,IAAK,QAD5B,UAEf;AAAA,EAEJ;AAEA,QAAM,QAAkC,CAACA,WACvC,4CAAC,6BAAsB,OAAM,UAAU,GAAGA,QACvC,sBAAY,UAAa,WAAW,SACnC,4CAAC,sBAAAE,qBAAA,EAAwB,UAAS,SAAQ,OAAM,WAAU,IACxD,YAAY,OACd,4CAAC,sBAAAC,2BAAA,EAA8B,UAAS,SAAQ,OAAM,WAAU,IAC9D,YAAY,QACd,4CAAC,sBAAAC,qBAAA,EAAwB,OAAM,SAAQ,UAAS,SAAQ;AAAA;AAAA,IAGxD,4CAAC,8BAAW,mBAAO;AAAA,OATR,OAWf;AAGF,QAAM,aAA8E;AAAA,IAClF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AAEA,SAAO,aACL,4CAAC,4BAAS,OAAO,EAAE,UAAU,QAAQ,GAAI,GAAG,OACzC,wBAAQ,UAAU,MAAlB,mBAAqB,IAAI,CAAC,WAAW;AACpC,WAAO,OAAO,OAAO,WAAW,OAAO,IAAI,EAAE,CAAC,CAAC,IAAI;AAAA,EACrD,IACF,IACE;AACN;;;AE7HA,IAAAC,yBAA4G;AAC5G,IAAAC,mBAcO;AACP,IAAAC,uBAA8B;AAE9B,yBAAoC;AACpC,IAAAA,uBAAiC;AACjC,mBAA6C;AA0CzC,IAAAC,sBAAA;AArBJ,SAAS,uBAAuB,OAAoC;AAClE,QAAM,YAAQ,2BAAS;AACvB,QAAM,EAAE,OAAO,MAAM,aAAa,aAAa,IAAI;AAEnD,QAAM,6BAA6B,CAAC,UAA+C;AACjF,iBAAa,OAAO,CAAC;AAAA,EACvB;AAEA,QAAM,wBAAwB,CAAC,UAA+C;AAC5E,iBAAa,OAAO,OAAO,CAAC;AAAA,EAC9B;AAEA,QAAM,wBAAwB,CAAC,UAA+C;AAC5E,iBAAa,OAAO,OAAO,CAAC;AAAA,EAC9B;AAEA,QAAM,4BAA4B,CAAC,UAA+C;AAChF,iBAAa,OAAO,KAAK,IAAI,GAAG,KAAK,KAAK,QAAQ,WAAW,IAAI,CAAC,CAAC;AAAA,EACrE;AAEA,SACE,8CAAC,wBAAI,IAAI,EAAE,YAAY,GAAG,IAAI,IAAI,GAChC;AAAA,iDAAC,+BAAW,SAAS,4BAA4B,UAAU,SAAS,GAAG,cAAW,cAC/E,gBAAM,cAAc,QAAQ,6CAAC,uBAAAC,UAAA,EAAa,IAAK,6CAAC,uBAAAC,WAAA,EAAc,GACjE;AAAA,IACA,6CAAC,+BAAW,SAAS,uBAAuB,UAAU,SAAS,GAAG,cAAW,iBAC1E,gBAAM,cAAc,QAAQ,6CAAC,6CAAmB,IAAK,6CAAC,4CAAkB,GAC3E;AAAA,IACA,6CAAC,+BAAW,SAAS,uBAAuB,UAAU,QAAQ,KAAK,KAAK,QAAQ,WAAW,IAAI,GAAG,cAAW,aAC1G,gBAAM,cAAc,QAAQ,6CAAC,4CAAkB,IAAK,6CAAC,6CAAmB,GAC3E;AAAA,IACA,6CAAC,+BAAW,SAAS,2BAA2B,UAAU,QAAQ,KAAK,KAAK,QAAQ,WAAW,IAAI,GAAG,cAAW,aAC9G,gBAAM,cAAc,QAAQ,6CAAC,uBAAAA,WAAA,EAAc,IAAK,6CAAC,uBAAAD,UAAA,EAAa,GACjE;AAAA,KACF;AAEJ;AAEO,IAAM,sBAA0D,CAAC;AAAA,EACtE;AAAA,EACA;AAAA,EACA,UAAU,wCAAwC;AAAA,EAClD;AAAA,EACA;AAAA,EACA,aAAa,kBAAkB;AAAA,EAC/B;AAAA,EACA,GAAG;AACL,MAAM;AAxFN;AAyFE,QAAM,iBAAa,oCAAc;AACjC,QAAM,CAAC,MAAM,OAAO,QAAI,uBAAS,CAAC;AAClC,QAAM,CAAC,aAAa,cAAc,QAAI,uBAAS,eAAe;AAC9D,QAAM,eAAe,WAAW,SAAS,SAAS;AAElD,QAAM,YAAY,OAAO,IAAI,KAAK,IAAI,IAAI,IAAI,QAAQ,cAAc,YAAY,IAAI;AAEpF,QAAM,oBAAgB,sBAAQ,MAAM,qCAAU,MAAM,OAAO,aAAa,OAAO,cAAc,cAAc,CAAC,UAAU,MAAM,WAAW,CAAC;AAExI,QAAM,mBAAe,uCAAiB,aAAa;AAEnD,8BAAU,MAAM;AACd,mBAAe,eAAe;AAAA,EAChC,GAAG,CAAC,eAAe,CAAC;AAEpB,QAAM,mBAAmB,CAAC,OAAmD,YAAoB;AAC/F,YAAQ,OAAO;AAAA,EACjB;AAEA,QAAM,0BAA0B,CAAC,UAAqE;AACpG,mBAAe,SAAS,MAAM,OAAO,OAAO,EAAE,CAAC;AAC/C,YAAQ,CAAC;AAAA,EACX;AAEA,SAAO,aACL,8CAAC,0BAAM,cAAY,MAAE,GAAG,OACtB;AAAA,iDAAC,8BACC,uDAAC,6BACE,wBAAQ,UAAU,MAAlB,mBAAqB,IAAI,CAAC,QAAQ,UAAU;AAC3C,aACE,6CAAC,8BAAsB,OAAO,OAAO,aAAa,QAAQ,OAAO,OAAO,OACtE,uDAAC,+BAAW,SAAQ,SAAQ,QAAM,MAC/B,iBAAO,MACV,KAHc,KAIhB;AAAA,IAEJ,IACF,GACF;AAAA,IACA,8CAAC,8BAAU,IAAI,EAAE,WAAW,UAAU,GACnC;AAAA,mDAAc,IAAI,CAAC,CAAC,SAAS,IAAI,GAAG,UAAU;AAC7C,eACE;AAAA,UAAC;AAAA;AAAA,YACC,cAAa;AAAA,YAEb,gBAAgB,CAAC,MACf,8CAAC,0BAAM,UAAS,SAAQ;AAAA;AAAA,cACC,6CAAC,+BAAW,YAAW,QAAQ,YAAE,SAAQ;AAAA,eAClE;AAAA,YAGF;AAAA,cAAC;AAAA;AAAA,gBACC;AAAA,gBACA,SACE,aACI,MAAM;AACJ,6BAAW,OAAO;AAAA,gBACpB,IACA;AAAA,gBAEN;AAAA,gBACA;AAAA;AAAA,YACF;AAAA;AAAA,UAlBK,GAAG,IAAI,IAAI,KAAK;AAAA,QAmBvB;AAAA,MAEJ;AAAA,MACC;AAAA,MACA,YAAY,KAAK,MAAM,SAAS,EAAE,KAAK,6CAAC,0BAAuB,CAAE;AAAA,OACpE;AAAA,IACA,6CAAC,gCACC,uDAAC,6BACC;AAAA,MAAC;AAAA;AAAA,QACC,oBAAoB,CAAC,GAAG,IAAI,IAAI,EAAE,OAAO,OAAO,OAAO,GAAG,CAAC;AAAA,QAC3D,SAAS;AAAA,QACT,OAAO;AAAA,QACP;AAAA,QACA;AAAA,QACA,aAAa;AAAA,UACX,YAAY;AAAA,YACV,cAAc;AAAA,UAChB;AAAA,UACA,QAAQ;AAAA,QACV;AAAA,QACA,cAAc;AAAA,QACd,qBAAqB;AAAA,QACrB,kBAAkB;AAAA;AAAA,IACpB,GACF,GACF;AAAA,KACF,IACE;AACN;","names":["import_react_shared","props","_a","WarningAmberRoundedIcon","CheckCircleOutlineRoundedIcon","ErrorOutlineRoundedIcon","import_icons_material","import_material","import_react_shared","import_jsx_runtime","LastPageIcon","FirstPageIcon"]}
@@ -1,241 +0,0 @@
1
- // src/components/DynamicTable/DynamicTableRow.tsx
2
- import {
3
- CheckCircleOutlineRounded as CheckCircleOutlineRoundedIcon,
4
- ErrorOutlineRounded as ErrorOutlineRoundedIcon,
5
- WarningAmberRounded as WarningAmberRoundedIcon
6
- } from "@mui/icons-material";
7
- import { TableCell, TableRow, Typography } from "@mui/material";
8
- import { usePromise } from "@xylabs/react-promise";
9
- import { useBreakpoint } from "@xylabs/react-shared";
10
- import { PayloadHasher } from "@xyo-network/hash";
11
- import { PayloadValidator } from "@xyo-network/payload-validator";
12
- import { useNetwork } from "@xyo-network/react-network";
13
- import { usePayloadRenderPluginResolver } from "@xyo-network/react-payload-plugin-resolver";
14
- import { HashTableCell, usePayloadHash } from "@xyo-network/react-shared";
15
-
16
- // src/components/DynamicTable/PayloadDynamicTableColumnConfig.ts
17
- var payloadDynamicTableColumnConfigDefaults = () => {
18
- const xs = [
19
- { alignment: "left", name: "Hash", slug: "hash", width: "100%" },
20
- { alignment: "left", name: "Schema", slug: "schema", width: "50px" },
21
- { alignment: "left", name: "Valid", slug: "valid", width: "50px" }
22
- ];
23
- const sm = [
24
- { alignment: "left", name: "Icon", slug: "icon", width: "50px" },
25
- { alignment: "left", name: "Hash", slug: "hash", width: "100%" },
26
- { alignment: "left", name: "Schema", slug: "schema", width: "50px" },
27
- { alignment: "left", name: "Valid", slug: "valid", width: "50px" }
28
- ];
29
- const md = [
30
- { alignment: "left", name: "Icon", slug: "icon", width: "50px" },
31
- { alignment: "left", name: "Hash", slug: "hash", width: "100%" },
32
- { alignment: "left", name: "Schema", slug: "schema", width: "50px" },
33
- { alignment: "left", name: "Valid", slug: "valid", width: "50px" }
34
- ];
35
- const lg = [
36
- { alignment: "left", name: "Icon", slug: "icon", width: "50px" },
37
- { alignment: "left", name: "Hash", slug: "hash", width: "100%" },
38
- { alignment: "left", name: "Schema", slug: "schema", width: "50px" },
39
- { alignment: "left", name: "Render", slug: "render", width: "50px" },
40
- { alignment: "left", name: "Valid", slug: "valid", width: "50px" }
41
- ];
42
- const xl = [
43
- { alignment: "left", name: "Icon", slug: "icon", width: "50px" },
44
- { alignment: "left", name: "Hash", slug: "hash", width: "100%" },
45
- { alignment: "left", name: "Schema", slug: "schema", width: "50px" },
46
- { alignment: "left", name: "Render", slug: "render", width: "50px" },
47
- { alignment: "left", name: "Valid", slug: "valid", width: "50px" }
48
- ];
49
- return { lg, md, sm, xl, xs };
50
- };
51
-
52
- // src/components/DynamicTable/DynamicTableRow.tsx
53
- import { jsx } from "react/jsx-runtime";
54
- var PayloadDynamicTableRow = ({
55
- archive,
56
- columns = payloadDynamicTableColumnConfigDefaults(),
57
- exploreDomain,
58
- network: networkProp,
59
- payload,
60
- ...props
61
- }) => {
62
- var _a;
63
- const breakPoint = useBreakpoint();
64
- const payloadHash = usePayloadHash(payload);
65
- const { network } = useNetwork();
66
- const { resolver } = usePayloadRenderPluginResolver();
67
- const [validationErrors = []] = usePromise(async () => payload ? await new PayloadValidator(payload).validate() : void 0, [payload]);
68
- const isValid = validationErrors.length === 0;
69
- const payloadFieldCount = payload ? Object.keys(PayloadHasher.hashFields(payload)).length : 0;
70
- const hash = (props2) => /* @__PURE__ */ jsx(
71
- HashTableCell,
72
- {
73
- align: "left",
74
- archive,
75
- value: payloadHash,
76
- dataType: "payload",
77
- exploreDomain,
78
- network: networkProp ?? (network == null ? void 0 : network.slug),
79
- ...props2
80
- },
81
- "hash"
82
- );
83
- const schema = (props2) => /* @__PURE__ */ jsx(TableCell, { align: "left", ...props2, children: /* @__PURE__ */ jsx(Typography, { fontFamily: "monospace", variant: "body2", noWrap: true, children: payload == null ? void 0 : payload.schema }) }, "payloads");
84
- const details = (props2) => /* @__PURE__ */ jsx(TableCell, { align: "left", ...props2, children: /* @__PURE__ */ jsx(Typography, { fontFamily: "monospace", variant: "body2", noWrap: true, children: payloadFieldCount }) }, "payloads");
85
- const render = (props2) => {
86
- var _a2;
87
- const Render = payload ? (_a2 = resolver == null ? void 0 : resolver.resolve(payload)) == null ? void 0 : _a2.components.table.cell : void 0;
88
- return Render ? /* @__PURE__ */ jsx(Render, { payload, ...props2 }) : /* @__PURE__ */ jsx(TableCell, { align: "left", ...props2 }, "payloads");
89
- };
90
- const icon = (props2) => {
91
- var _a2;
92
- const Avatar = payload ? (_a2 = resolver == null ? void 0 : resolver.resolve(payload)) == null ? void 0 : _a2.components.avatar.image : void 0;
93
- return /* @__PURE__ */ jsx(TableCell, { align: "left", ...props2, children: Avatar ? /* @__PURE__ */ jsx(Avatar, { payload }) : null }, "payloads");
94
- };
95
- const valid = (props2) => /* @__PURE__ */ jsx(TableCell, { align: "center", ...props2, children: isValid === void 0 && payload != void 0 ? /* @__PURE__ */ jsx(WarningAmberRoundedIcon, { fontSize: "small", color: "warning" }) : isValid === true ? /* @__PURE__ */ jsx(CheckCircleOutlineRoundedIcon, { fontSize: "small", color: "success" }) : isValid === false ? /* @__PURE__ */ jsx(ErrorOutlineRoundedIcon, { color: "error", fontSize: "small" }) : (
96
- //nbsp to keep row height consistent even when no data is provided for the row
97
- /* @__PURE__ */ jsx(Typography, { children: " \xA0" })
98
- ) }, "valid");
99
- const tableCells = {
100
- details,
101
- hash,
102
- icon,
103
- render,
104
- schema,
105
- valid
106
- };
107
- return breakPoint ? /* @__PURE__ */ jsx(TableRow, { style: { maxWidth: "100vw" }, ...props, children: (_a = columns[breakPoint]) == null ? void 0 : _a.map((column) => {
108
- return column.slug ? tableCells[column.slug]({}) : null;
109
- }) }) : null;
110
- };
111
-
112
- // src/components/DynamicTable/Table.tsx
113
- import { FirstPage as FirstPageIcon, KeyboardArrowLeft, KeyboardArrowRight, LastPage as LastPageIcon } from "@mui/icons-material";
114
- import {
115
- Alert,
116
- Box,
117
- IconButton,
118
- Table,
119
- TableBody,
120
- TableCell as TableCell2,
121
- TableFooter,
122
- TableHead,
123
- TablePagination,
124
- TableRow as TableRow2,
125
- Typography as Typography2,
126
- useTheme
127
- } from "@mui/material";
128
- import { useBreakpoint as useBreakpoint2 } from "@xylabs/react-shared";
129
- import { ThrownErrorBoundary } from "@xyo-network/react-error";
130
- import { usePayloadHashes } from "@xyo-network/react-shared";
131
- import { useEffect, useMemo, useState } from "react";
132
- import { jsx as jsx2, jsxs } from "react/jsx-runtime";
133
- function TablePaginationActions(props) {
134
- const theme = useTheme();
135
- const { count, page, rowsPerPage, onPageChange } = props;
136
- const handleFirstPageButtonClick = (event) => {
137
- onPageChange(event, 0);
138
- };
139
- const handleBackButtonClick = (event) => {
140
- onPageChange(event, page - 1);
141
- };
142
- const handleNextButtonClick = (event) => {
143
- onPageChange(event, page + 1);
144
- };
145
- const handleLastPageButtonClick = (event) => {
146
- onPageChange(event, Math.max(0, Math.ceil(count / rowsPerPage) - 1));
147
- };
148
- return /* @__PURE__ */ jsxs(Box, { sx: { flexShrink: 0, ml: 2.5 }, children: [
149
- /* @__PURE__ */ jsx2(IconButton, { onClick: handleFirstPageButtonClick, disabled: page === 0, "aria-label": "first page", children: theme.direction === "rtl" ? /* @__PURE__ */ jsx2(LastPageIcon, {}) : /* @__PURE__ */ jsx2(FirstPageIcon, {}) }),
150
- /* @__PURE__ */ jsx2(IconButton, { onClick: handleBackButtonClick, disabled: page === 0, "aria-label": "previous page", children: theme.direction === "rtl" ? /* @__PURE__ */ jsx2(KeyboardArrowRight, {}) : /* @__PURE__ */ jsx2(KeyboardArrowLeft, {}) }),
151
- /* @__PURE__ */ jsx2(IconButton, { onClick: handleNextButtonClick, disabled: page >= Math.ceil(count / rowsPerPage) - 1, "aria-label": "next page", children: theme.direction === "rtl" ? /* @__PURE__ */ jsx2(KeyboardArrowLeft, {}) : /* @__PURE__ */ jsx2(KeyboardArrowRight, {}) }),
152
- /* @__PURE__ */ jsx2(IconButton, { onClick: handleLastPageButtonClick, disabled: page >= Math.ceil(count / rowsPerPage) - 1, "aria-label": "last page", children: theme.direction === "rtl" ? /* @__PURE__ */ jsx2(FirstPageIcon, {}) : /* @__PURE__ */ jsx2(LastPageIcon, {}) })
153
- ] });
154
- }
155
- var PayloadDynamicTable = ({
156
- archive,
157
- children,
158
- columns = payloadDynamicTableColumnConfigDefaults(),
159
- exploreDomain,
160
- onRowClick,
161
- rowsPerPage: rowsPerPageProp = 10,
162
- payloads,
163
- ...props
164
- }) => {
165
- var _a;
166
- const breakPoint = useBreakpoint2();
167
- const [page, setPage] = useState(0);
168
- const [rowsPerPage, setRowsPerPage] = useState(rowsPerPageProp);
169
- const payloadCount = payloads ? payloads.length : 0;
170
- const emptyRows = page > 0 ? Math.max(0, (1 + page) * rowsPerPage - payloadCount) : 0;
171
- const pagedPayloads = useMemo(() => payloads == null ? void 0 : payloads.slice(page * rowsPerPage, page * rowsPerPage + rowsPerPage), [payloads, page, rowsPerPage]);
172
- const payloadPairs = usePayloadHashes(pagedPayloads);
173
- useEffect(() => {
174
- setRowsPerPage(rowsPerPageProp);
175
- }, [rowsPerPageProp]);
176
- const handleChangePage = (event, newPage) => {
177
- setPage(newPage);
178
- };
179
- const handleChangeRowsPerPage = (event) => {
180
- setRowsPerPage(parseInt(event.target.value, 10));
181
- setPage(0);
182
- };
183
- return breakPoint ? /* @__PURE__ */ jsxs(Table, { stickyHeader: true, ...props, children: [
184
- /* @__PURE__ */ jsx2(TableHead, { children: /* @__PURE__ */ jsx2(TableRow2, { children: (_a = columns[breakPoint]) == null ? void 0 : _a.map((column, index) => {
185
- return /* @__PURE__ */ jsx2(TableCell2, { align: column.alignment ?? "left", width: column.width, children: /* @__PURE__ */ jsx2(Typography2, { variant: "body2", noWrap: true, children: column.name }) }, index);
186
- }) }) }),
187
- /* @__PURE__ */ jsxs(TableBody, { sx: { overflowY: "scroll " }, children: [
188
- payloadPairs == null ? void 0 : payloadPairs.map(([payload, hash], index) => {
189
- return /* @__PURE__ */ jsx2(
190
- ThrownErrorBoundary,
191
- {
192
- boundaryName: "PayloadTableBody",
193
- errorComponent: (e) => /* @__PURE__ */ jsxs(Alert, { severity: "error", children: [
194
- "Error Loading Payload: ",
195
- /* @__PURE__ */ jsx2(Typography2, { fontWeight: "bold", children: e.message })
196
- ] }),
197
- children: /* @__PURE__ */ jsx2(
198
- PayloadDynamicTableRow,
199
- {
200
- archive,
201
- onClick: onRowClick ? () => {
202
- onRowClick(payload);
203
- } : void 0,
204
- exploreDomain,
205
- payload
206
- }
207
- )
208
- },
209
- `${hash}-${index}`
210
- );
211
- }),
212
- children,
213
- emptyRows > 0 && Array(emptyRows).fill(/* @__PURE__ */ jsx2(PayloadDynamicTableRow, {}))
214
- ] }),
215
- /* @__PURE__ */ jsx2(TableFooter, { children: /* @__PURE__ */ jsx2(TableRow2, { children: /* @__PURE__ */ jsx2(
216
- TablePagination,
217
- {
218
- rowsPerPageOptions: [5, 10, 25, { label: "All", value: -1 }],
219
- colSpan: 5,
220
- count: payloadCount,
221
- rowsPerPage,
222
- page,
223
- SelectProps: {
224
- inputProps: {
225
- "aria-label": "rows per page"
226
- },
227
- native: true
228
- },
229
- onPageChange: handleChangePage,
230
- onRowsPerPageChange: handleChangeRowsPerPage,
231
- ActionsComponent: TablePaginationActions
232
- }
233
- ) }) })
234
- ] }) : null;
235
- };
236
- export {
237
- PayloadDynamicTable,
238
- PayloadDynamicTableRow,
239
- payloadDynamicTableColumnConfigDefaults
240
- };
241
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../src/components/DynamicTable/DynamicTableRow.tsx","../../../../src/components/DynamicTable/PayloadDynamicTableColumnConfig.ts","../../../../src/components/DynamicTable/Table.tsx"],"sourcesContent":["import {\n CheckCircleOutlineRounded as CheckCircleOutlineRoundedIcon,\n ErrorOutlineRounded as ErrorOutlineRoundedIcon,\n WarningAmberRounded as WarningAmberRoundedIcon,\n} from '@mui/icons-material'\nimport { AvatarProps, TableCell, TableCellProps, TableRow, TableRowProps, Typography } from '@mui/material'\nimport { usePromise } from '@xylabs/react-promise'\nimport { useBreakpoint } from '@xylabs/react-shared'\nimport { PayloadHasher } from '@xyo-network/hash'\nimport { Payload } from '@xyo-network/payload-model'\nimport { PayloadValidator } from '@xyo-network/payload-validator'\nimport { useNetwork } from '@xyo-network/react-network'\nimport { PayloadRenderProps } from '@xyo-network/react-payload-plugin'\nimport { usePayloadRenderPluginResolver } from '@xyo-network/react-payload-plugin-resolver'\nimport { HashTableCell, HashTableCellProps, usePayloadHash } from '@xyo-network/react-shared'\nimport { ComponentType } from 'react'\n\nimport {\n PayloadDynamicTableColumnConfig,\n payloadDynamicTableColumnConfigDefaults,\n PayloadDynamicTableColumnSlug,\n} from './PayloadDynamicTableColumnConfig'\n\nexport interface PayloadDynamicTableRowProps extends TableRowProps {\n archive?: string\n columns?: PayloadDynamicTableColumnConfig\n exploreDomain?: string\n network?: string\n payload?: Payload & { sources?: string[] }\n}\n\nexport const PayloadDynamicTableRow: React.FC<PayloadDynamicTableRowProps> = ({\n archive,\n columns = payloadDynamicTableColumnConfigDefaults(),\n exploreDomain,\n network: networkProp,\n payload,\n ...props\n}) => {\n const breakPoint = useBreakpoint()\n const payloadHash = usePayloadHash(payload)\n const { network } = useNetwork()\n const { resolver } = usePayloadRenderPluginResolver()\n const [validationErrors = []] = usePromise(async () => (payload ? await new PayloadValidator(payload).validate() : undefined), [payload])\n const isValid = validationErrors.length === 0\n const payloadFieldCount = payload ? Object.keys(PayloadHasher.hashFields(payload)).length : 0\n const hash: React.FC<HashTableCellProps> = (props) => (\n <HashTableCell\n key=\"hash\"\n align=\"left\"\n archive={archive}\n value={payloadHash}\n dataType=\"payload\"\n exploreDomain={exploreDomain}\n network={networkProp ?? network?.slug}\n {...props}\n />\n )\n\n const schema: React.FC<TableCellProps> = (props) => (\n <TableCell key=\"payloads\" align=\"left\" {...props}>\n <Typography fontFamily=\"monospace\" variant=\"body2\" noWrap>\n {payload?.schema}\n </Typography>\n </TableCell>\n )\n\n const details: React.FC<TableCellProps> = (props) => (\n <TableCell key=\"payloads\" align=\"left\" {...props}>\n <Typography fontFamily=\"monospace\" variant=\"body2\" noWrap>\n {payloadFieldCount}\n </Typography>\n </TableCell>\n )\n\n const render: React.FC<TableCellProps> = (props) => {\n const Render: ComponentType<PayloadRenderProps & TableCellProps> | undefined = payload\n ? resolver?.resolve(payload)?.components.table.cell\n : undefined\n return Render ? <Render payload={payload} {...props} /> : <TableCell key=\"payloads\" align=\"left\" {...props}></TableCell>\n }\n\n const icon: React.FC<TableCellProps> = (props) => {\n const Avatar: ComponentType<PayloadRenderProps & AvatarProps> | undefined = payload\n ? resolver?.resolve(payload)?.components.avatar.image\n : undefined\n\n return (\n <TableCell key=\"payloads\" align=\"left\" {...props}>\n {Avatar ? <Avatar payload={payload} /> : null}\n </TableCell>\n )\n }\n\n const valid: React.FC<TableCellProps> = (props) => (\n <TableCell key=\"valid\" align=\"center\" {...props}>\n {isValid === undefined && payload != undefined ? (\n <WarningAmberRoundedIcon fontSize=\"small\" color=\"warning\" />\n ) : isValid === true ? (\n <CheckCircleOutlineRoundedIcon fontSize=\"small\" color=\"success\" />\n ) : isValid === false ? (\n <ErrorOutlineRoundedIcon color=\"error\" fontSize=\"small\" />\n ) : (\n //nbsp to keep row height consistent even when no data is provided for the row\n <Typography> &nbsp;</Typography>\n )}\n </TableCell>\n )\n\n const tableCells: Record<PayloadDynamicTableColumnSlug, React.FC<TableCellProps>> = {\n details,\n hash,\n icon,\n render,\n schema,\n valid,\n }\n\n return breakPoint ? (\n <TableRow style={{ maxWidth: '100vw' }} {...props}>\n {columns[breakPoint]?.map((column) => {\n return column.slug ? tableCells[column.slug]({}) : null\n })}\n </TableRow>\n ) : null\n}\n","export type PayloadDynamicTableColumnSlug = 'hash' | 'schema' | 'valid' | 'details' | 'render' | 'icon'\n\nexport interface PayloadDynamicTableColumnHeadData {\n alignment?: 'left' | 'center' | 'right'\n name?: string\n slug?: 'hash' | 'schema' | 'valid' | 'details' | 'render' | 'icon'\n width?: string | number\n}\n\nexport interface PayloadDynamicTableColumnConfig {\n xs?: PayloadDynamicTableColumnHeadData[]\n // eslint-disable-next-line @typescript-eslint/member-ordering\n sm?: PayloadDynamicTableColumnHeadData[]\n // eslint-disable-next-line @typescript-eslint/member-ordering\n md?: PayloadDynamicTableColumnHeadData[]\n // eslint-disable-next-line @typescript-eslint/member-ordering\n lg?: PayloadDynamicTableColumnHeadData[]\n xl?: PayloadDynamicTableColumnHeadData[]\n}\n\nexport const payloadDynamicTableColumnConfigDefaults = (): PayloadDynamicTableColumnConfig => {\n const xs: PayloadDynamicTableColumnHeadData[] = [\n { alignment: 'left', name: 'Hash', slug: 'hash', width: '100%' },\n { alignment: 'left', name: 'Schema', slug: 'schema', width: '50px' },\n { alignment: 'left', name: 'Valid', slug: 'valid', width: '50px' },\n ]\n const sm: PayloadDynamicTableColumnHeadData[] = [\n { alignment: 'left', name: 'Icon', slug: 'icon', width: '50px' },\n { alignment: 'left', name: 'Hash', slug: 'hash', width: '100%' },\n { alignment: 'left', name: 'Schema', slug: 'schema', width: '50px' },\n { alignment: 'left', name: 'Valid', slug: 'valid', width: '50px' },\n ]\n const md: PayloadDynamicTableColumnHeadData[] = [\n { alignment: 'left', name: 'Icon', slug: 'icon', width: '50px' },\n { alignment: 'left', name: 'Hash', slug: 'hash', width: '100%' },\n { alignment: 'left', name: 'Schema', slug: 'schema', width: '50px' },\n { alignment: 'left', name: 'Valid', slug: 'valid', width: '50px' },\n ]\n const lg: PayloadDynamicTableColumnHeadData[] = [\n { alignment: 'left', name: 'Icon', slug: 'icon', width: '50px' },\n { alignment: 'left', name: 'Hash', slug: 'hash', width: '100%' },\n { alignment: 'left', name: 'Schema', slug: 'schema', width: '50px' },\n { alignment: 'left', name: 'Render', slug: 'render', width: '50px' },\n { alignment: 'left', name: 'Valid', slug: 'valid', width: '50px' },\n ]\n const xl: PayloadDynamicTableColumnHeadData[] = [\n { alignment: 'left', name: 'Icon', slug: 'icon', width: '50px' },\n { alignment: 'left', name: 'Hash', slug: 'hash', width: '100%' },\n { alignment: 'left', name: 'Schema', slug: 'schema', width: '50px' },\n { alignment: 'left', name: 'Render', slug: 'render', width: '50px' },\n { alignment: 'left', name: 'Valid', slug: 'valid', width: '50px' },\n ]\n return { lg, md, sm, xl, xs }\n}\n","import { FirstPage as FirstPageIcon, KeyboardArrowLeft, KeyboardArrowRight, LastPage as LastPageIcon } from '@mui/icons-material'\nimport {\n Alert,\n Box,\n IconButton,\n Table,\n TableBody,\n TableCell,\n TableFooter,\n TableHead,\n TablePagination,\n TableProps,\n TableRow,\n Typography,\n useTheme,\n} from '@mui/material'\nimport { useBreakpoint } from '@xylabs/react-shared'\nimport { Payload } from '@xyo-network/payload-model'\nimport { ThrownErrorBoundary } from '@xyo-network/react-error'\nimport { usePayloadHashes } from '@xyo-network/react-shared'\nimport { useEffect, useMemo, useState } from 'react'\n\nimport { PayloadDynamicTableRow } from './DynamicTableRow'\nimport { PayloadDynamicTableColumnConfig, payloadDynamicTableColumnConfigDefaults } from './PayloadDynamicTableColumnConfig'\n\nexport interface PayloadDynamicTableProps extends TableProps {\n archive?: string\n columns?: PayloadDynamicTableColumnConfig\n exploreDomain?: string\n onRowClick?: (value: Payload) => void\n payloads?: Payload[] | null\n rowsPerPage?: number\n}\n\ninterface TablePaginationActionsProps {\n count: number\n onPageChange: (event: React.MouseEvent<HTMLButtonElement>, newPage: number) => void\n page: number\n rowsPerPage: number\n}\n\nfunction TablePaginationActions(props: TablePaginationActionsProps) {\n const theme = useTheme()\n const { count, page, rowsPerPage, onPageChange } = props\n\n const handleFirstPageButtonClick = (event: React.MouseEvent<HTMLButtonElement>) => {\n onPageChange(event, 0)\n }\n\n const handleBackButtonClick = (event: React.MouseEvent<HTMLButtonElement>) => {\n onPageChange(event, page - 1)\n }\n\n const handleNextButtonClick = (event: React.MouseEvent<HTMLButtonElement>) => {\n onPageChange(event, page + 1)\n }\n\n const handleLastPageButtonClick = (event: React.MouseEvent<HTMLButtonElement>) => {\n onPageChange(event, Math.max(0, Math.ceil(count / rowsPerPage) - 1))\n }\n\n return (\n <Box sx={{ flexShrink: 0, ml: 2.5 }}>\n <IconButton onClick={handleFirstPageButtonClick} disabled={page === 0} aria-label=\"first page\">\n {theme.direction === 'rtl' ? <LastPageIcon /> : <FirstPageIcon />}\n </IconButton>\n <IconButton onClick={handleBackButtonClick} disabled={page === 0} aria-label=\"previous page\">\n {theme.direction === 'rtl' ? <KeyboardArrowRight /> : <KeyboardArrowLeft />}\n </IconButton>\n <IconButton onClick={handleNextButtonClick} disabled={page >= Math.ceil(count / rowsPerPage) - 1} aria-label=\"next page\">\n {theme.direction === 'rtl' ? <KeyboardArrowLeft /> : <KeyboardArrowRight />}\n </IconButton>\n <IconButton onClick={handleLastPageButtonClick} disabled={page >= Math.ceil(count / rowsPerPage) - 1} aria-label=\"last page\">\n {theme.direction === 'rtl' ? <FirstPageIcon /> : <LastPageIcon />}\n </IconButton>\n </Box>\n )\n}\n\nexport const PayloadDynamicTable: React.FC<PayloadDynamicTableProps> = ({\n archive,\n children,\n columns = payloadDynamicTableColumnConfigDefaults(),\n exploreDomain,\n onRowClick,\n rowsPerPage: rowsPerPageProp = 10,\n payloads,\n ...props\n}) => {\n const breakPoint = useBreakpoint()\n const [page, setPage] = useState(0)\n const [rowsPerPage, setRowsPerPage] = useState(rowsPerPageProp)\n const payloadCount = payloads ? payloads.length : 0\n // Avoid a layout jump when reaching the last page with empty rows.\n const emptyRows = page > 0 ? Math.max(0, (1 + page) * rowsPerPage - payloadCount) : 0\n\n const pagedPayloads = useMemo(() => payloads?.slice(page * rowsPerPage, page * rowsPerPage + rowsPerPage), [payloads, page, rowsPerPage])\n\n const payloadPairs = usePayloadHashes(pagedPayloads)\n\n useEffect(() => {\n setRowsPerPage(rowsPerPageProp)\n }, [rowsPerPageProp])\n\n const handleChangePage = (event: React.MouseEvent<HTMLButtonElement> | null, newPage: number) => {\n setPage(newPage)\n }\n\n const handleChangeRowsPerPage = (event: React.ChangeEvent<HTMLInputElement | HTMLTextAreaElement>) => {\n setRowsPerPage(parseInt(event.target.value, 10))\n setPage(0)\n }\n\n return breakPoint ? (\n <Table stickyHeader {...props}>\n <TableHead>\n <TableRow>\n {columns[breakPoint]?.map((column, index) => {\n return (\n <TableCell key={index} align={column.alignment ?? 'left'} width={column.width}>\n <Typography variant=\"body2\" noWrap>\n {column.name}\n </Typography>\n </TableCell>\n )\n })}\n </TableRow>\n </TableHead>\n <TableBody sx={{ overflowY: 'scroll ' }}>\n {payloadPairs?.map(([payload, hash], index) => {\n return (\n <ThrownErrorBoundary\n boundaryName=\"PayloadTableBody\"\n key={`${hash}-${index}`}\n errorComponent={(e) => (\n <Alert severity=\"error\">\n Error Loading Payload: <Typography fontWeight=\"bold\">{e.message}</Typography>\n </Alert>\n )}\n >\n <PayloadDynamicTableRow\n archive={archive}\n onClick={\n onRowClick\n ? () => {\n onRowClick(payload)\n }\n : undefined\n }\n exploreDomain={exploreDomain}\n payload={payload}\n />\n </ThrownErrorBoundary>\n )\n })}\n {children}\n {emptyRows > 0 && Array(emptyRows).fill(<PayloadDynamicTableRow />)}\n </TableBody>\n <TableFooter>\n <TableRow>\n <TablePagination\n rowsPerPageOptions={[5, 10, 25, { label: 'All', value: -1 }]}\n colSpan={5}\n count={payloadCount}\n rowsPerPage={rowsPerPage}\n page={page}\n SelectProps={{\n inputProps: {\n 'aria-label': 'rows per page',\n },\n native: true,\n }}\n onPageChange={handleChangePage}\n onRowsPerPageChange={handleChangeRowsPerPage}\n ActionsComponent={TablePaginationActions}\n />\n </TableRow>\n </TableFooter>\n </Table>\n ) : null\n}\n"],"mappings":";AAAA;AAAA,EACE,6BAA6B;AAAA,EAC7B,uBAAuB;AAAA,EACvB,uBAAuB;AAAA,OAClB;AACP,SAAsB,WAA2B,UAAyB,kBAAkB;AAC5F,SAAS,kBAAkB;AAC3B,SAAS,qBAAqB;AAC9B,SAAS,qBAAqB;AAE9B,SAAS,wBAAwB;AACjC,SAAS,kBAAkB;AAE3B,SAAS,sCAAsC;AAC/C,SAAS,eAAmC,sBAAsB;;;ACM3D,IAAM,0CAA0C,MAAuC;AAC5F,QAAM,KAA0C;AAAA,IAC9C,EAAE,WAAW,QAAQ,MAAM,QAAQ,MAAM,QAAQ,OAAO,OAAO;AAAA,IAC/D,EAAE,WAAW,QAAQ,MAAM,UAAU,MAAM,UAAU,OAAO,OAAO;AAAA,IACnE,EAAE,WAAW,QAAQ,MAAM,SAAS,MAAM,SAAS,OAAO,OAAO;AAAA,EACnE;AACA,QAAM,KAA0C;AAAA,IAC9C,EAAE,WAAW,QAAQ,MAAM,QAAQ,MAAM,QAAQ,OAAO,OAAO;AAAA,IAC/D,EAAE,WAAW,QAAQ,MAAM,QAAQ,MAAM,QAAQ,OAAO,OAAO;AAAA,IAC/D,EAAE,WAAW,QAAQ,MAAM,UAAU,MAAM,UAAU,OAAO,OAAO;AAAA,IACnE,EAAE,WAAW,QAAQ,MAAM,SAAS,MAAM,SAAS,OAAO,OAAO;AAAA,EACnE;AACA,QAAM,KAA0C;AAAA,IAC9C,EAAE,WAAW,QAAQ,MAAM,QAAQ,MAAM,QAAQ,OAAO,OAAO;AAAA,IAC/D,EAAE,WAAW,QAAQ,MAAM,QAAQ,MAAM,QAAQ,OAAO,OAAO;AAAA,IAC/D,EAAE,WAAW,QAAQ,MAAM,UAAU,MAAM,UAAU,OAAO,OAAO;AAAA,IACnE,EAAE,WAAW,QAAQ,MAAM,SAAS,MAAM,SAAS,OAAO,OAAO;AAAA,EACnE;AACA,QAAM,KAA0C;AAAA,IAC9C,EAAE,WAAW,QAAQ,MAAM,QAAQ,MAAM,QAAQ,OAAO,OAAO;AAAA,IAC/D,EAAE,WAAW,QAAQ,MAAM,QAAQ,MAAM,QAAQ,OAAO,OAAO;AAAA,IAC/D,EAAE,WAAW,QAAQ,MAAM,UAAU,MAAM,UAAU,OAAO,OAAO;AAAA,IACnE,EAAE,WAAW,QAAQ,MAAM,UAAU,MAAM,UAAU,OAAO,OAAO;AAAA,IACnE,EAAE,WAAW,QAAQ,MAAM,SAAS,MAAM,SAAS,OAAO,OAAO;AAAA,EACnE;AACA,QAAM,KAA0C;AAAA,IAC9C,EAAE,WAAW,QAAQ,MAAM,QAAQ,MAAM,QAAQ,OAAO,OAAO;AAAA,IAC/D,EAAE,WAAW,QAAQ,MAAM,QAAQ,MAAM,QAAQ,OAAO,OAAO;AAAA,IAC/D,EAAE,WAAW,QAAQ,MAAM,UAAU,MAAM,UAAU,OAAO,OAAO;AAAA,IACnE,EAAE,WAAW,QAAQ,MAAM,UAAU,MAAM,UAAU,OAAO,OAAO;AAAA,IACnE,EAAE,WAAW,QAAQ,MAAM,SAAS,MAAM,SAAS,OAAO,OAAO;AAAA,EACnE;AACA,SAAO,EAAE,IAAI,IAAI,IAAI,IAAI,GAAG;AAC9B;;;ADNI;AAhBG,IAAM,yBAAgE,CAAC;AAAA,EAC5E;AAAA,EACA,UAAU,wCAAwC;AAAA,EAClD;AAAA,EACA,SAAS;AAAA,EACT;AAAA,EACA,GAAG;AACL,MAAM;AAtCN;AAuCE,QAAM,aAAa,cAAc;AACjC,QAAM,cAAc,eAAe,OAAO;AAC1C,QAAM,EAAE,QAAQ,IAAI,WAAW;AAC/B,QAAM,EAAE,SAAS,IAAI,+BAA+B;AACpD,QAAM,CAAC,mBAAmB,CAAC,CAAC,IAAI,WAAW,YAAa,UAAU,MAAM,IAAI,iBAAiB,OAAO,EAAE,SAAS,IAAI,QAAY,CAAC,OAAO,CAAC;AACxI,QAAM,UAAU,iBAAiB,WAAW;AAC5C,QAAM,oBAAoB,UAAU,OAAO,KAAK,cAAc,WAAW,OAAO,CAAC,EAAE,SAAS;AAC5F,QAAM,OAAqC,CAACA,WAC1C;AAAA,IAAC;AAAA;AAAA,MAEC,OAAM;AAAA,MACN;AAAA,MACA,OAAO;AAAA,MACP,UAAS;AAAA,MACT;AAAA,MACA,SAAS,gBAAe,mCAAS;AAAA,MAChC,GAAGA;AAAA;AAAA,IAPA;AAAA,EAQN;AAGF,QAAM,SAAmC,CAACA,WACxC,oBAAC,aAAyB,OAAM,QAAQ,GAAGA,QACzC,8BAAC,cAAW,YAAW,aAAY,SAAQ,SAAQ,QAAM,MACtD,6CAAS,QACZ,KAHa,UAIf;AAGF,QAAM,UAAoC,CAACA,WACzC,oBAAC,aAAyB,OAAM,QAAQ,GAAGA,QACzC,8BAAC,cAAW,YAAW,aAAY,SAAQ,SAAQ,QAAM,MACtD,6BACH,KAHa,UAIf;AAGF,QAAM,SAAmC,CAACA,WAAU;AA3EtD,QAAAC;AA4EI,UAAM,SAAyE,WAC3EA,MAAA,qCAAU,QAAQ,aAAlB,gBAAAA,IAA4B,WAAW,MAAM,OAC7C;AACJ,WAAO,SAAS,oBAAC,UAAO,SAAmB,GAAGD,QAAO,IAAK,oBAAC,aAAyB,OAAM,QAAQ,GAAGA,UAA5B,UAAmC;AAAA,EAC9G;AAEA,QAAM,OAAiC,CAACA,WAAU;AAlFpD,QAAAC;AAmFI,UAAM,SAAsE,WACxEA,MAAA,qCAAU,QAAQ,aAAlB,gBAAAA,IAA4B,WAAW,OAAO,QAC9C;AAEJ,WACE,oBAAC,aAAyB,OAAM,QAAQ,GAAGD,QACxC,mBAAS,oBAAC,UAAO,SAAkB,IAAK,QAD5B,UAEf;AAAA,EAEJ;AAEA,QAAM,QAAkC,CAACA,WACvC,oBAAC,aAAsB,OAAM,UAAU,GAAGA,QACvC,sBAAY,UAAa,WAAW,SACnC,oBAAC,2BAAwB,UAAS,SAAQ,OAAM,WAAU,IACxD,YAAY,OACd,oBAAC,iCAA8B,UAAS,SAAQ,OAAM,WAAU,IAC9D,YAAY,QACd,oBAAC,2BAAwB,OAAM,SAAQ,UAAS,SAAQ;AAAA;AAAA,IAGxD,oBAAC,cAAW,mBAAO;AAAA,OATR,OAWf;AAGF,QAAM,aAA8E;AAAA,IAClF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AAEA,SAAO,aACL,oBAAC,YAAS,OAAO,EAAE,UAAU,QAAQ,GAAI,GAAG,OACzC,wBAAQ,UAAU,MAAlB,mBAAqB,IAAI,CAAC,WAAW;AACpC,WAAO,OAAO,OAAO,WAAW,OAAO,IAAI,EAAE,CAAC,CAAC,IAAI;AAAA,EACrD,IACF,IACE;AACN;;;AE7HA,SAAS,aAAa,eAAe,mBAAmB,oBAAoB,YAAY,oBAAoB;AAC5G;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,aAAAE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EAEA,YAAAC;AAAA,EACA,cAAAC;AAAA,EACA;AAAA,OACK;AACP,SAAS,iBAAAC,sBAAqB;AAE9B,SAAS,2BAA2B;AACpC,SAAS,wBAAwB;AACjC,SAAS,WAAW,SAAS,gBAAgB;AA0CzC,SAEiC,OAAAC,MAFjC;AArBJ,SAAS,uBAAuB,OAAoC;AAClE,QAAM,QAAQ,SAAS;AACvB,QAAM,EAAE,OAAO,MAAM,aAAa,aAAa,IAAI;AAEnD,QAAM,6BAA6B,CAAC,UAA+C;AACjF,iBAAa,OAAO,CAAC;AAAA,EACvB;AAEA,QAAM,wBAAwB,CAAC,UAA+C;AAC5E,iBAAa,OAAO,OAAO,CAAC;AAAA,EAC9B;AAEA,QAAM,wBAAwB,CAAC,UAA+C;AAC5E,iBAAa,OAAO,OAAO,CAAC;AAAA,EAC9B;AAEA,QAAM,4BAA4B,CAAC,UAA+C;AAChF,iBAAa,OAAO,KAAK,IAAI,GAAG,KAAK,KAAK,QAAQ,WAAW,IAAI,CAAC,CAAC;AAAA,EACrE;AAEA,SACE,qBAAC,OAAI,IAAI,EAAE,YAAY,GAAG,IAAI,IAAI,GAChC;AAAA,oBAAAA,KAAC,cAAW,SAAS,4BAA4B,UAAU,SAAS,GAAG,cAAW,cAC/E,gBAAM,cAAc,QAAQ,gBAAAA,KAAC,gBAAa,IAAK,gBAAAA,KAAC,iBAAc,GACjE;AAAA,IACA,gBAAAA,KAAC,cAAW,SAAS,uBAAuB,UAAU,SAAS,GAAG,cAAW,iBAC1E,gBAAM,cAAc,QAAQ,gBAAAA,KAAC,sBAAmB,IAAK,gBAAAA,KAAC,qBAAkB,GAC3E;AAAA,IACA,gBAAAA,KAAC,cAAW,SAAS,uBAAuB,UAAU,QAAQ,KAAK,KAAK,QAAQ,WAAW,IAAI,GAAG,cAAW,aAC1G,gBAAM,cAAc,QAAQ,gBAAAA,KAAC,qBAAkB,IAAK,gBAAAA,KAAC,sBAAmB,GAC3E;AAAA,IACA,gBAAAA,KAAC,cAAW,SAAS,2BAA2B,UAAU,QAAQ,KAAK,KAAK,QAAQ,WAAW,IAAI,GAAG,cAAW,aAC9G,gBAAM,cAAc,QAAQ,gBAAAA,KAAC,iBAAc,IAAK,gBAAAA,KAAC,gBAAa,GACjE;AAAA,KACF;AAEJ;AAEO,IAAM,sBAA0D,CAAC;AAAA,EACtE;AAAA,EACA;AAAA,EACA,UAAU,wCAAwC;AAAA,EAClD;AAAA,EACA;AAAA,EACA,aAAa,kBAAkB;AAAA,EAC/B;AAAA,EACA,GAAG;AACL,MAAM;AAxFN;AAyFE,QAAM,aAAaC,eAAc;AACjC,QAAM,CAAC,MAAM,OAAO,IAAI,SAAS,CAAC;AAClC,QAAM,CAAC,aAAa,cAAc,IAAI,SAAS,eAAe;AAC9D,QAAM,eAAe,WAAW,SAAS,SAAS;AAElD,QAAM,YAAY,OAAO,IAAI,KAAK,IAAI,IAAI,IAAI,QAAQ,cAAc,YAAY,IAAI;AAEpF,QAAM,gBAAgB,QAAQ,MAAM,qCAAU,MAAM,OAAO,aAAa,OAAO,cAAc,cAAc,CAAC,UAAU,MAAM,WAAW,CAAC;AAExI,QAAM,eAAe,iBAAiB,aAAa;AAEnD,YAAU,MAAM;AACd,mBAAe,eAAe;AAAA,EAChC,GAAG,CAAC,eAAe,CAAC;AAEpB,QAAM,mBAAmB,CAAC,OAAmD,YAAoB;AAC/F,YAAQ,OAAO;AAAA,EACjB;AAEA,QAAM,0BAA0B,CAAC,UAAqE;AACpG,mBAAe,SAAS,MAAM,OAAO,OAAO,EAAE,CAAC;AAC/C,YAAQ,CAAC;AAAA,EACX;AAEA,SAAO,aACL,qBAAC,SAAM,cAAY,MAAE,GAAG,OACtB;AAAA,oBAAAD,KAAC,aACC,0BAAAA,KAACE,WAAA,EACE,wBAAQ,UAAU,MAAlB,mBAAqB,IAAI,CAAC,QAAQ,UAAU;AAC3C,aACE,gBAAAF,KAACG,YAAA,EAAsB,OAAO,OAAO,aAAa,QAAQ,OAAO,OAAO,OACtE,0BAAAH,KAACI,aAAA,EAAW,SAAQ,SAAQ,QAAM,MAC/B,iBAAO,MACV,KAHc,KAIhB;AAAA,IAEJ,IACF,GACF;AAAA,IACA,qBAAC,aAAU,IAAI,EAAE,WAAW,UAAU,GACnC;AAAA,mDAAc,IAAI,CAAC,CAAC,SAAS,IAAI,GAAG,UAAU;AAC7C,eACE,gBAAAJ;AAAA,UAAC;AAAA;AAAA,YACC,cAAa;AAAA,YAEb,gBAAgB,CAAC,MACf,qBAAC,SAAM,UAAS,SAAQ;AAAA;AAAA,cACC,gBAAAA,KAACI,aAAA,EAAW,YAAW,QAAQ,YAAE,SAAQ;AAAA,eAClE;AAAA,YAGF,0BAAAJ;AAAA,cAAC;AAAA;AAAA,gBACC;AAAA,gBACA,SACE,aACI,MAAM;AACJ,6BAAW,OAAO;AAAA,gBACpB,IACA;AAAA,gBAEN;AAAA,gBACA;AAAA;AAAA,YACF;AAAA;AAAA,UAlBK,GAAG,IAAI,IAAI,KAAK;AAAA,QAmBvB;AAAA,MAEJ;AAAA,MACC;AAAA,MACA,YAAY,KAAK,MAAM,SAAS,EAAE,KAAK,gBAAAA,KAAC,0BAAuB,CAAE;AAAA,OACpE;AAAA,IACA,gBAAAA,KAAC,eACC,0BAAAA,KAACE,WAAA,EACC,0BAAAF;AAAA,MAAC;AAAA;AAAA,QACC,oBAAoB,CAAC,GAAG,IAAI,IAAI,EAAE,OAAO,OAAO,OAAO,GAAG,CAAC;AAAA,QAC3D,SAAS;AAAA,QACT,OAAO;AAAA,QACP;AAAA,QACA;AAAA,QACA,aAAa;AAAA,UACX,YAAY;AAAA,YACV,cAAc;AAAA,UAChB;AAAA,UACA,QAAQ;AAAA,QACV;AAAA,QACA,cAAc;AAAA,QACd,qBAAqB;AAAA,QACrB,kBAAkB;AAAA;AAAA,IACpB,GACF,GACF;AAAA,KACF,IACE;AACN;","names":["props","_a","TableCell","TableRow","Typography","useBreakpoint","jsx","useBreakpoint","TableRow","TableCell","Typography"]}