@xyo-network/react-payload-table 2.64.9 → 2.65.0

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/package.json +18 -18
  2. package/dist/browser/components/DynamicTable/DynamicTableRow.cjs +0 -128
  3. package/dist/browser/components/DynamicTable/DynamicTableRow.cjs.map +0 -1
  4. package/dist/browser/components/DynamicTable/DynamicTableRow.js +0 -111
  5. package/dist/browser/components/DynamicTable/DynamicTableRow.js.map +0 -1
  6. package/dist/browser/components/DynamicTable/PayloadDynamicTableColumnConfig.cjs +0 -60
  7. package/dist/browser/components/DynamicTable/PayloadDynamicTableColumnConfig.cjs.map +0 -1
  8. package/dist/browser/components/DynamicTable/PayloadDynamicTableColumnConfig.js +0 -39
  9. package/dist/browser/components/DynamicTable/PayloadDynamicTableColumnConfig.js.map +0 -1
  10. package/dist/browser/components/DynamicTable/Table.cjs +0 -241
  11. package/dist/browser/components/DynamicTable/Table.cjs.map +0 -1
  12. package/dist/browser/components/DynamicTable/Table.js +0 -237
  13. package/dist/browser/components/DynamicTable/Table.js.map +0 -1
  14. package/dist/browser/components/DynamicTable/index.cjs +0 -243
  15. package/dist/browser/components/DynamicTable/index.cjs.map +0 -1
  16. package/dist/browser/components/DynamicTable/index.js +0 -237
  17. package/dist/browser/components/DynamicTable/index.js.map +0 -1
  18. package/dist/browser/components/Table/PayloadTableColumnConfig.cjs +0 -40
  19. package/dist/browser/components/Table/PayloadTableColumnConfig.cjs.map +0 -1
  20. package/dist/browser/components/Table/PayloadTableColumnConfig.js +0 -19
  21. package/dist/browser/components/Table/PayloadTableColumnConfig.js.map +0 -1
  22. package/dist/browser/components/Table/Table.cjs +0 -366
  23. package/dist/browser/components/Table/Table.cjs.map +0 -1
  24. package/dist/browser/components/Table/Table.js +0 -349
  25. package/dist/browser/components/Table/Table.js.map +0 -1
  26. package/dist/browser/components/Table/TableBody.cjs +0 -152
  27. package/dist/browser/components/Table/TableBody.cjs.map +0 -1
  28. package/dist/browser/components/Table/TableBody.js +0 -135
  29. package/dist/browser/components/Table/TableBody.js.map +0 -1
  30. package/dist/browser/components/Table/TableFooter.cjs +0 -109
  31. package/dist/browser/components/Table/TableFooter.cjs.map +0 -1
  32. package/dist/browser/components/Table/TableFooter.js +0 -88
  33. package/dist/browser/components/Table/TableFooter.js.map +0 -1
  34. package/dist/browser/components/Table/TableHead.cjs +0 -52
  35. package/dist/browser/components/Table/TableHead.cjs.map +0 -1
  36. package/dist/browser/components/Table/TableHead.js +0 -31
  37. package/dist/browser/components/Table/TableHead.js.map +0 -1
  38. package/dist/browser/components/Table/TablePagination.cjs +0 -68
  39. package/dist/browser/components/Table/TablePagination.cjs.map +0 -1
  40. package/dist/browser/components/Table/TablePagination.js +0 -47
  41. package/dist/browser/components/Table/TablePagination.js.map +0 -1
  42. package/dist/browser/components/Table/TableRow.cjs +0 -100
  43. package/dist/browser/components/Table/TableRow.cjs.map +0 -1
  44. package/dist/browser/components/Table/TableRow.js +0 -83
  45. package/dist/browser/components/Table/TableRow.js.map +0 -1
  46. package/dist/browser/components/Table/TableRowNoData.cjs +0 -40
  47. package/dist/browser/components/Table/TableRowNoData.cjs.map +0 -1
  48. package/dist/browser/components/Table/TableRowNoData.js +0 -19
  49. package/dist/browser/components/Table/TableRowNoData.js.map +0 -1
  50. package/dist/browser/components/Table/index.cjs +0 -371
  51. package/dist/browser/components/Table/index.cjs.map +0 -1
  52. package/dist/browser/components/Table/index.js +0 -352
  53. package/dist/browser/components/Table/index.js.map +0 -1
  54. package/dist/browser/components/Table/types/PaginationEventNouns.cjs +0 -19
  55. package/dist/browser/components/Table/types/PaginationEventNouns.cjs.map +0 -1
  56. package/dist/browser/components/Table/types/PaginationEventNouns.js +0 -1
  57. package/dist/browser/components/Table/types/PaginationEventNouns.js.map +0 -1
  58. package/dist/browser/components/Table/types/PayloadTableBodyProps.cjs +0 -19
  59. package/dist/browser/components/Table/types/PayloadTableBodyProps.cjs.map +0 -1
  60. package/dist/browser/components/Table/types/PayloadTableBodyProps.js +0 -1
  61. package/dist/browser/components/Table/types/PayloadTableBodyProps.js.map +0 -1
  62. package/dist/browser/components/Table/types/PayloadTableFooterProps.cjs +0 -19
  63. package/dist/browser/components/Table/types/PayloadTableFooterProps.cjs.map +0 -1
  64. package/dist/browser/components/Table/types/PayloadTableFooterProps.js +0 -1
  65. package/dist/browser/components/Table/types/PayloadTableFooterProps.js.map +0 -1
  66. package/dist/browser/components/Table/types/PayloadTableHeadProps.cjs +0 -19
  67. package/dist/browser/components/Table/types/PayloadTableHeadProps.cjs.map +0 -1
  68. package/dist/browser/components/Table/types/PayloadTableHeadProps.js +0 -1
  69. package/dist/browser/components/Table/types/PayloadTableHeadProps.js.map +0 -1
  70. package/dist/browser/components/Table/types/index.cjs +0 -19
  71. package/dist/browser/components/Table/types/index.cjs.map +0 -1
  72. package/dist/browser/components/Table/types/index.js +0 -1
  73. package/dist/browser/components/Table/types/index.js.map +0 -1
  74. package/dist/browser/components/index.cjs +0 -589
  75. package/dist/browser/components/index.cjs.map +0 -1
  76. package/dist/browser/components/index.js +0 -587
  77. package/dist/browser/components/index.js.map +0 -1
  78. package/dist/docs.json +0 -4590
  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,249 +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/Table.tsx
21
- var Table_exports = {};
22
- __export(Table_exports, {
23
- PayloadDynamicTable: () => PayloadDynamicTable
24
- });
25
- module.exports = __toCommonJS(Table_exports);
26
- var import_icons_material2 = require("@mui/icons-material");
27
- var import_material2 = require("@mui/material");
28
- var import_react_shared3 = require("@xylabs/react-shared");
29
- var import_react_error = require("@xyo-network/react-error");
30
- var import_react_shared4 = require("@xyo-network/react-shared");
31
- var import_react = require("react");
32
-
33
- // src/components/DynamicTable/DynamicTableRow.tsx
34
- var import_icons_material = require("@mui/icons-material");
35
- var import_material = require("@mui/material");
36
- var import_react_promise = require("@xylabs/react-promise");
37
- var import_react_shared = require("@xylabs/react-shared");
38
- var import_hash = require("@xyo-network/hash");
39
- var import_payload_validator = require("@xyo-network/payload-validator");
40
- var import_react_network = require("@xyo-network/react-network");
41
- var import_react_payload_plugin_resolver = require("@xyo-network/react-payload-plugin-resolver");
42
- var import_react_shared2 = require("@xyo-network/react-shared");
43
-
44
- // src/components/DynamicTable/PayloadDynamicTableColumnConfig.ts
45
- var payloadDynamicTableColumnConfigDefaults = () => {
46
- const xs = [
47
- { alignment: "left", name: "Hash", slug: "hash", width: "100%" },
48
- { alignment: "left", name: "Schema", slug: "schema", width: "50px" },
49
- { alignment: "left", name: "Valid", slug: "valid", width: "50px" }
50
- ];
51
- const sm = [
52
- { alignment: "left", name: "Icon", slug: "icon", width: "50px" },
53
- { alignment: "left", name: "Hash", slug: "hash", width: "100%" },
54
- { alignment: "left", name: "Schema", slug: "schema", width: "50px" },
55
- { alignment: "left", name: "Valid", slug: "valid", width: "50px" }
56
- ];
57
- const md = [
58
- { alignment: "left", name: "Icon", slug: "icon", width: "50px" },
59
- { alignment: "left", name: "Hash", slug: "hash", width: "100%" },
60
- { alignment: "left", name: "Schema", slug: "schema", width: "50px" },
61
- { alignment: "left", name: "Valid", slug: "valid", width: "50px" }
62
- ];
63
- const lg = [
64
- { alignment: "left", name: "Icon", slug: "icon", width: "50px" },
65
- { alignment: "left", name: "Hash", slug: "hash", width: "100%" },
66
- { alignment: "left", name: "Schema", slug: "schema", width: "50px" },
67
- { alignment: "left", name: "Render", slug: "render", width: "50px" },
68
- { alignment: "left", name: "Valid", slug: "valid", width: "50px" }
69
- ];
70
- const xl = [
71
- { alignment: "left", name: "Icon", slug: "icon", width: "50px" },
72
- { alignment: "left", name: "Hash", slug: "hash", width: "100%" },
73
- { alignment: "left", name: "Schema", slug: "schema", width: "50px" },
74
- { alignment: "left", name: "Render", slug: "render", width: "50px" },
75
- { alignment: "left", name: "Valid", slug: "valid", width: "50px" }
76
- ];
77
- return { lg, md, sm, xl, xs };
78
- };
79
-
80
- // src/components/DynamicTable/DynamicTableRow.tsx
81
- var import_jsx_runtime = require("react/jsx-runtime");
82
- var PayloadDynamicTableRow = ({
83
- archive,
84
- columns = payloadDynamicTableColumnConfigDefaults(),
85
- exploreDomain,
86
- network: networkProp,
87
- payload,
88
- ...props
89
- }) => {
90
- var _a;
91
- const breakPoint = (0, import_react_shared.useBreakpoint)();
92
- const payloadHash = (0, import_react_shared2.usePayloadHash)(payload);
93
- const { network } = (0, import_react_network.useNetwork)();
94
- const { resolver } = (0, import_react_payload_plugin_resolver.usePayloadRenderPluginResolver)();
95
- const [validationErrors = []] = (0, import_react_promise.usePromise)(async () => payload ? await new import_payload_validator.PayloadValidator(payload).validate() : void 0, [payload]);
96
- const isValid = validationErrors.length === 0;
97
- const payloadFieldCount = payload ? Object.keys(import_hash.PayloadHasher.hashFields(payload)).length : 0;
98
- const hash = (props2) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
99
- import_react_shared2.HashTableCell,
100
- {
101
- align: "left",
102
- archive,
103
- value: payloadHash,
104
- dataType: "payload",
105
- exploreDomain,
106
- network: networkProp ?? (network == null ? void 0 : network.slug),
107
- ...props2
108
- },
109
- "hash"
110
- );
111
- 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");
112
- 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");
113
- const render = (props2) => {
114
- var _a2;
115
- const Render = payload ? (_a2 = resolver == null ? void 0 : resolver.resolve(payload)) == null ? void 0 : _a2.components.table.cell : void 0;
116
- return Render ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Render, { payload, ...props2 }) : /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_material.TableCell, { align: "left", ...props2 }, "payloads");
117
- };
118
- const icon = (props2) => {
119
- var _a2;
120
- const Avatar = payload ? (_a2 = resolver == null ? void 0 : resolver.resolve(payload)) == null ? void 0 : _a2.components.avatar.image : void 0;
121
- 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");
122
- };
123
- 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" }) : (
124
- //nbsp to keep row height consistent even when no data is provided for the row
125
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_material.Typography, { children: " \xA0" })
126
- ) }, "valid");
127
- const tableCells = {
128
- details,
129
- hash,
130
- icon,
131
- render,
132
- schema,
133
- valid
134
- };
135
- 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) => {
136
- return column.slug ? tableCells[column.slug]({}) : null;
137
- }) }) : null;
138
- };
139
-
140
- // src/components/DynamicTable/Table.tsx
141
- var import_jsx_runtime2 = require("react/jsx-runtime");
142
- function TablePaginationActions(props) {
143
- const theme = (0, import_material2.useTheme)();
144
- const { count, page, rowsPerPage, onPageChange } = props;
145
- const handleFirstPageButtonClick = (event) => {
146
- onPageChange(event, 0);
147
- };
148
- const handleBackButtonClick = (event) => {
149
- onPageChange(event, page - 1);
150
- };
151
- const handleNextButtonClick = (event) => {
152
- onPageChange(event, page + 1);
153
- };
154
- const handleLastPageButtonClick = (event) => {
155
- onPageChange(event, Math.max(0, Math.ceil(count / rowsPerPage) - 1));
156
- };
157
- return /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)(import_material2.Box, { sx: { flexShrink: 0, ml: 2.5 }, children: [
158
- /* @__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, {}) }),
159
- /* @__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, {}) }),
160
- /* @__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, {}) }),
161
- /* @__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, {}) })
162
- ] });
163
- }
164
- var PayloadDynamicTable = ({
165
- archive,
166
- children,
167
- columns = payloadDynamicTableColumnConfigDefaults(),
168
- exploreDomain,
169
- onRowClick,
170
- rowsPerPage: rowsPerPageProp = 10,
171
- payloads,
172
- ...props
173
- }) => {
174
- var _a;
175
- const breakPoint = (0, import_react_shared3.useBreakpoint)();
176
- const [page, setPage] = (0, import_react.useState)(0);
177
- const [rowsPerPage, setRowsPerPage] = (0, import_react.useState)(rowsPerPageProp);
178
- const payloadCount = payloads ? payloads.length : 0;
179
- const emptyRows = page > 0 ? Math.max(0, (1 + page) * rowsPerPage - payloadCount) : 0;
180
- const pagedPayloads = (0, import_react.useMemo)(() => payloads == null ? void 0 : payloads.slice(page * rowsPerPage, page * rowsPerPage + rowsPerPage), [payloads, page, rowsPerPage]);
181
- const payloadPairs = (0, import_react_shared4.usePayloadHashes)(pagedPayloads);
182
- (0, import_react.useEffect)(() => {
183
- setRowsPerPage(rowsPerPageProp);
184
- }, [rowsPerPageProp]);
185
- const handleChangePage = (event, newPage) => {
186
- setPage(newPage);
187
- };
188
- const handleChangeRowsPerPage = (event) => {
189
- setRowsPerPage(parseInt(event.target.value, 10));
190
- setPage(0);
191
- };
192
- return breakPoint ? /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)(import_material2.Table, { stickyHeader: true, ...props, children: [
193
- /* @__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) => {
194
- 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);
195
- }) }) }),
196
- /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)(import_material2.TableBody, { sx: { overflowY: "scroll " }, children: [
197
- payloadPairs == null ? void 0 : payloadPairs.map(([payload, hash], index) => {
198
- return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
199
- import_react_error.ThrownErrorBoundary,
200
- {
201
- boundaryName: "PayloadTableBody",
202
- errorComponent: (e) => /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)(import_material2.Alert, { severity: "error", children: [
203
- "Error Loading Payload: ",
204
- /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(import_material2.Typography, { fontWeight: "bold", children: e.message })
205
- ] }),
206
- children: /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
207
- PayloadDynamicTableRow,
208
- {
209
- archive,
210
- onClick: onRowClick ? () => {
211
- onRowClick(payload);
212
- } : void 0,
213
- exploreDomain,
214
- payload
215
- }
216
- )
217
- },
218
- `${hash}-${index}`
219
- );
220
- }),
221
- children,
222
- emptyRows > 0 && Array(emptyRows).fill(/* @__PURE__ */ (0, import_jsx_runtime2.jsx)(PayloadDynamicTableRow, {}))
223
- ] }),
224
- /* @__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)(
225
- import_material2.TablePagination,
226
- {
227
- rowsPerPageOptions: [5, 10, 25, { label: "All", value: -1 }],
228
- colSpan: 5,
229
- count: payloadCount,
230
- rowsPerPage,
231
- page,
232
- SelectProps: {
233
- inputProps: {
234
- "aria-label": "rows per page"
235
- },
236
- native: true
237
- },
238
- onPageChange: handleChangePage,
239
- onRowsPerPageChange: handleChangeRowsPerPage,
240
- ActionsComponent: TablePaginationActions
241
- }
242
- ) }) })
243
- ] }) : null;
244
- };
245
- // Annotate the CommonJS export names for ESM import in node:
246
- 0 && (module.exports = {
247
- PayloadDynamicTable
248
- });
249
- //# sourceMappingURL=Table.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../src/components/DynamicTable/Table.tsx","../../../../src/components/DynamicTable/DynamicTableRow.tsx","../../../../src/components/DynamicTable/PayloadDynamicTableColumnConfig.ts"],"sourcesContent":["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","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"],"mappings":"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","names":["import_icons_material","import_material","import_react_shared","import_react_shared","props","_a","WarningAmberRoundedIcon","CheckCircleOutlineRoundedIcon","ErrorOutlineRoundedIcon","import_jsx_runtime","LastPageIcon","FirstPageIcon"]}
@@ -1,241 +0,0 @@
1
- // src/components/DynamicTable/Table.tsx
2
- import { FirstPage as FirstPageIcon, KeyboardArrowLeft, KeyboardArrowRight, LastPage as LastPageIcon } from "@mui/icons-material";
3
- import {
4
- Alert,
5
- Box,
6
- IconButton,
7
- Table,
8
- TableBody,
9
- TableCell as TableCell2,
10
- TableFooter,
11
- TableHead,
12
- TablePagination,
13
- TableRow as TableRow2,
14
- Typography as Typography2,
15
- useTheme
16
- } from "@mui/material";
17
- import { useBreakpoint as useBreakpoint2 } from "@xylabs/react-shared";
18
- import { ThrownErrorBoundary } from "@xyo-network/react-error";
19
- import { usePayloadHashes } from "@xyo-network/react-shared";
20
- import { useEffect, useMemo, useState } from "react";
21
-
22
- // src/components/DynamicTable/DynamicTableRow.tsx
23
- import {
24
- CheckCircleOutlineRounded as CheckCircleOutlineRoundedIcon,
25
- ErrorOutlineRounded as ErrorOutlineRoundedIcon,
26
- WarningAmberRounded as WarningAmberRoundedIcon
27
- } from "@mui/icons-material";
28
- import { TableCell, TableRow, Typography } from "@mui/material";
29
- import { usePromise } from "@xylabs/react-promise";
30
- import { useBreakpoint } from "@xylabs/react-shared";
31
- import { PayloadHasher } from "@xyo-network/hash";
32
- import { PayloadValidator } from "@xyo-network/payload-validator";
33
- import { useNetwork } from "@xyo-network/react-network";
34
- import { usePayloadRenderPluginResolver } from "@xyo-network/react-payload-plugin-resolver";
35
- import { HashTableCell, usePayloadHash } from "@xyo-network/react-shared";
36
-
37
- // src/components/DynamicTable/PayloadDynamicTableColumnConfig.ts
38
- var payloadDynamicTableColumnConfigDefaults = () => {
39
- const xs = [
40
- { alignment: "left", name: "Hash", slug: "hash", width: "100%" },
41
- { alignment: "left", name: "Schema", slug: "schema", width: "50px" },
42
- { alignment: "left", name: "Valid", slug: "valid", width: "50px" }
43
- ];
44
- const sm = [
45
- { alignment: "left", name: "Icon", slug: "icon", width: "50px" },
46
- { alignment: "left", name: "Hash", slug: "hash", width: "100%" },
47
- { alignment: "left", name: "Schema", slug: "schema", width: "50px" },
48
- { alignment: "left", name: "Valid", slug: "valid", width: "50px" }
49
- ];
50
- const md = [
51
- { alignment: "left", name: "Icon", slug: "icon", width: "50px" },
52
- { alignment: "left", name: "Hash", slug: "hash", width: "100%" },
53
- { alignment: "left", name: "Schema", slug: "schema", width: "50px" },
54
- { alignment: "left", name: "Valid", slug: "valid", width: "50px" }
55
- ];
56
- const lg = [
57
- { alignment: "left", name: "Icon", slug: "icon", width: "50px" },
58
- { alignment: "left", name: "Hash", slug: "hash", width: "100%" },
59
- { alignment: "left", name: "Schema", slug: "schema", width: "50px" },
60
- { alignment: "left", name: "Render", slug: "render", width: "50px" },
61
- { alignment: "left", name: "Valid", slug: "valid", width: "50px" }
62
- ];
63
- const xl = [
64
- { alignment: "left", name: "Icon", slug: "icon", width: "50px" },
65
- { alignment: "left", name: "Hash", slug: "hash", width: "100%" },
66
- { alignment: "left", name: "Schema", slug: "schema", width: "50px" },
67
- { alignment: "left", name: "Render", slug: "render", width: "50px" },
68
- { alignment: "left", name: "Valid", slug: "valid", width: "50px" }
69
- ];
70
- return { lg, md, sm, xl, xs };
71
- };
72
-
73
- // src/components/DynamicTable/DynamicTableRow.tsx
74
- import { jsx } from "react/jsx-runtime";
75
- var PayloadDynamicTableRow = ({
76
- archive,
77
- columns = payloadDynamicTableColumnConfigDefaults(),
78
- exploreDomain,
79
- network: networkProp,
80
- payload,
81
- ...props
82
- }) => {
83
- var _a;
84
- const breakPoint = useBreakpoint();
85
- const payloadHash = usePayloadHash(payload);
86
- const { network } = useNetwork();
87
- const { resolver } = usePayloadRenderPluginResolver();
88
- const [validationErrors = []] = usePromise(async () => payload ? await new PayloadValidator(payload).validate() : void 0, [payload]);
89
- const isValid = validationErrors.length === 0;
90
- const payloadFieldCount = payload ? Object.keys(PayloadHasher.hashFields(payload)).length : 0;
91
- const hash = (props2) => /* @__PURE__ */ jsx(
92
- HashTableCell,
93
- {
94
- align: "left",
95
- archive,
96
- value: payloadHash,
97
- dataType: "payload",
98
- exploreDomain,
99
- network: networkProp ?? (network == null ? void 0 : network.slug),
100
- ...props2
101
- },
102
- "hash"
103
- );
104
- 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");
105
- const details = (props2) => /* @__PURE__ */ jsx(TableCell, { align: "left", ...props2, children: /* @__PURE__ */ jsx(Typography, { fontFamily: "monospace", variant: "body2", noWrap: true, children: payloadFieldCount }) }, "payloads");
106
- const render = (props2) => {
107
- var _a2;
108
- const Render = payload ? (_a2 = resolver == null ? void 0 : resolver.resolve(payload)) == null ? void 0 : _a2.components.table.cell : void 0;
109
- return Render ? /* @__PURE__ */ jsx(Render, { payload, ...props2 }) : /* @__PURE__ */ jsx(TableCell, { align: "left", ...props2 }, "payloads");
110
- };
111
- const icon = (props2) => {
112
- var _a2;
113
- const Avatar = payload ? (_a2 = resolver == null ? void 0 : resolver.resolve(payload)) == null ? void 0 : _a2.components.avatar.image : void 0;
114
- return /* @__PURE__ */ jsx(TableCell, { align: "left", ...props2, children: Avatar ? /* @__PURE__ */ jsx(Avatar, { payload }) : null }, "payloads");
115
- };
116
- 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" }) : (
117
- //nbsp to keep row height consistent even when no data is provided for the row
118
- /* @__PURE__ */ jsx(Typography, { children: " \xA0" })
119
- ) }, "valid");
120
- const tableCells = {
121
- details,
122
- hash,
123
- icon,
124
- render,
125
- schema,
126
- valid
127
- };
128
- return breakPoint ? /* @__PURE__ */ jsx(TableRow, { style: { maxWidth: "100vw" }, ...props, children: (_a = columns[breakPoint]) == null ? void 0 : _a.map((column) => {
129
- return column.slug ? tableCells[column.slug]({}) : null;
130
- }) }) : null;
131
- };
132
-
133
- // src/components/DynamicTable/Table.tsx
134
- import { jsx as jsx2, jsxs } from "react/jsx-runtime";
135
- function TablePaginationActions(props) {
136
- const theme = useTheme();
137
- const { count, page, rowsPerPage, onPageChange } = props;
138
- const handleFirstPageButtonClick = (event) => {
139
- onPageChange(event, 0);
140
- };
141
- const handleBackButtonClick = (event) => {
142
- onPageChange(event, page - 1);
143
- };
144
- const handleNextButtonClick = (event) => {
145
- onPageChange(event, page + 1);
146
- };
147
- const handleLastPageButtonClick = (event) => {
148
- onPageChange(event, Math.max(0, Math.ceil(count / rowsPerPage) - 1));
149
- };
150
- return /* @__PURE__ */ jsxs(Box, { sx: { flexShrink: 0, ml: 2.5 }, children: [
151
- /* @__PURE__ */ jsx2(IconButton, { onClick: handleFirstPageButtonClick, disabled: page === 0, "aria-label": "first page", children: theme.direction === "rtl" ? /* @__PURE__ */ jsx2(LastPageIcon, {}) : /* @__PURE__ */ jsx2(FirstPageIcon, {}) }),
152
- /* @__PURE__ */ jsx2(IconButton, { onClick: handleBackButtonClick, disabled: page === 0, "aria-label": "previous page", children: theme.direction === "rtl" ? /* @__PURE__ */ jsx2(KeyboardArrowRight, {}) : /* @__PURE__ */ jsx2(KeyboardArrowLeft, {}) }),
153
- /* @__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, {}) }),
154
- /* @__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, {}) })
155
- ] });
156
- }
157
- var PayloadDynamicTable = ({
158
- archive,
159
- children,
160
- columns = payloadDynamicTableColumnConfigDefaults(),
161
- exploreDomain,
162
- onRowClick,
163
- rowsPerPage: rowsPerPageProp = 10,
164
- payloads,
165
- ...props
166
- }) => {
167
- var _a;
168
- const breakPoint = useBreakpoint2();
169
- const [page, setPage] = useState(0);
170
- const [rowsPerPage, setRowsPerPage] = useState(rowsPerPageProp);
171
- const payloadCount = payloads ? payloads.length : 0;
172
- const emptyRows = page > 0 ? Math.max(0, (1 + page) * rowsPerPage - payloadCount) : 0;
173
- const pagedPayloads = useMemo(() => payloads == null ? void 0 : payloads.slice(page * rowsPerPage, page * rowsPerPage + rowsPerPage), [payloads, page, rowsPerPage]);
174
- const payloadPairs = usePayloadHashes(pagedPayloads);
175
- useEffect(() => {
176
- setRowsPerPage(rowsPerPageProp);
177
- }, [rowsPerPageProp]);
178
- const handleChangePage = (event, newPage) => {
179
- setPage(newPage);
180
- };
181
- const handleChangeRowsPerPage = (event) => {
182
- setRowsPerPage(parseInt(event.target.value, 10));
183
- setPage(0);
184
- };
185
- return breakPoint ? /* @__PURE__ */ jsxs(Table, { stickyHeader: true, ...props, children: [
186
- /* @__PURE__ */ jsx2(TableHead, { children: /* @__PURE__ */ jsx2(TableRow2, { children: (_a = columns[breakPoint]) == null ? void 0 : _a.map((column, index) => {
187
- return /* @__PURE__ */ jsx2(TableCell2, { align: column.alignment ?? "left", width: column.width, children: /* @__PURE__ */ jsx2(Typography2, { variant: "body2", noWrap: true, children: column.name }) }, index);
188
- }) }) }),
189
- /* @__PURE__ */ jsxs(TableBody, { sx: { overflowY: "scroll " }, children: [
190
- payloadPairs == null ? void 0 : payloadPairs.map(([payload, hash], index) => {
191
- return /* @__PURE__ */ jsx2(
192
- ThrownErrorBoundary,
193
- {
194
- boundaryName: "PayloadTableBody",
195
- errorComponent: (e) => /* @__PURE__ */ jsxs(Alert, { severity: "error", children: [
196
- "Error Loading Payload: ",
197
- /* @__PURE__ */ jsx2(Typography2, { fontWeight: "bold", children: e.message })
198
- ] }),
199
- children: /* @__PURE__ */ jsx2(
200
- PayloadDynamicTableRow,
201
- {
202
- archive,
203
- onClick: onRowClick ? () => {
204
- onRowClick(payload);
205
- } : void 0,
206
- exploreDomain,
207
- payload
208
- }
209
- )
210
- },
211
- `${hash}-${index}`
212
- );
213
- }),
214
- children,
215
- emptyRows > 0 && Array(emptyRows).fill(/* @__PURE__ */ jsx2(PayloadDynamicTableRow, {}))
216
- ] }),
217
- /* @__PURE__ */ jsx2(TableFooter, { children: /* @__PURE__ */ jsx2(TableRow2, { children: /* @__PURE__ */ jsx2(
218
- TablePagination,
219
- {
220
- rowsPerPageOptions: [5, 10, 25, { label: "All", value: -1 }],
221
- colSpan: 5,
222
- count: payloadCount,
223
- rowsPerPage,
224
- page,
225
- SelectProps: {
226
- inputProps: {
227
- "aria-label": "rows per page"
228
- },
229
- native: true
230
- },
231
- onPageChange: handleChangePage,
232
- onRowsPerPageChange: handleChangeRowsPerPage,
233
- ActionsComponent: TablePaginationActions
234
- }
235
- ) }) })
236
- ] }) : null;
237
- };
238
- export {
239
- PayloadDynamicTable
240
- };
241
- //# sourceMappingURL=Table.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../src/components/DynamicTable/Table.tsx","../../../../src/components/DynamicTable/DynamicTableRow.tsx","../../../../src/components/DynamicTable/PayloadDynamicTableColumnConfig.ts"],"sourcesContent":["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","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"],"mappings":"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","names":["TableCell","TableRow","Typography","useBreakpoint","props","_a","jsx","useBreakpoint","TableRow","TableCell","Typography"]}