@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,589 +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/index.ts
21
- var components_exports = {};
22
- __export(components_exports, {
23
- PayloadDynamicTable: () => PayloadDynamicTable,
24
- PayloadDynamicTableRow: () => PayloadDynamicTableRow,
25
- PayloadTable: () => PayloadTable,
26
- PayloadTableRow: () => PayloadTableRow,
27
- PayloadTableWithRef: () => PayloadTableWithRef,
28
- TablePaginationActions: () => TablePaginationActions2,
29
- TableRowNoData: () => TableRowNoData,
30
- payloadColumnNames: () => payloadColumnNames,
31
- payloadDynamicTableColumnConfigDefaults: () => payloadDynamicTableColumnConfigDefaults,
32
- payloadTableColumnConfigDefaults: () => payloadTableColumnConfigDefaults
33
- });
34
- module.exports = __toCommonJS(components_exports);
35
-
36
- // src/components/DynamicTable/DynamicTableRow.tsx
37
- var import_icons_material = require("@mui/icons-material");
38
- var import_material = require("@mui/material");
39
- var import_react_promise = require("@xylabs/react-promise");
40
- var import_react_shared = require("@xylabs/react-shared");
41
- var import_hash = require("@xyo-network/hash");
42
- var import_payload_validator = require("@xyo-network/payload-validator");
43
- var import_react_network = require("@xyo-network/react-network");
44
- var import_react_payload_plugin_resolver = require("@xyo-network/react-payload-plugin-resolver");
45
- var import_react_shared2 = require("@xyo-network/react-shared");
46
-
47
- // src/components/DynamicTable/PayloadDynamicTableColumnConfig.ts
48
- var payloadDynamicTableColumnConfigDefaults = () => {
49
- const xs = [
50
- { alignment: "left", name: "Hash", slug: "hash", width: "100%" },
51
- { alignment: "left", name: "Schema", slug: "schema", width: "50px" },
52
- { alignment: "left", name: "Valid", slug: "valid", width: "50px" }
53
- ];
54
- const sm = [
55
- { alignment: "left", name: "Icon", slug: "icon", width: "50px" },
56
- { alignment: "left", name: "Hash", slug: "hash", width: "100%" },
57
- { alignment: "left", name: "Schema", slug: "schema", width: "50px" },
58
- { alignment: "left", name: "Valid", slug: "valid", width: "50px" }
59
- ];
60
- const md = [
61
- { alignment: "left", name: "Icon", slug: "icon", width: "50px" },
62
- { alignment: "left", name: "Hash", slug: "hash", width: "100%" },
63
- { alignment: "left", name: "Schema", slug: "schema", width: "50px" },
64
- { alignment: "left", name: "Valid", slug: "valid", width: "50px" }
65
- ];
66
- const lg = [
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
- const xl = [
74
- { alignment: "left", name: "Icon", slug: "icon", width: "50px" },
75
- { alignment: "left", name: "Hash", slug: "hash", width: "100%" },
76
- { alignment: "left", name: "Schema", slug: "schema", width: "50px" },
77
- { alignment: "left", name: "Render", slug: "render", width: "50px" },
78
- { alignment: "left", name: "Valid", slug: "valid", width: "50px" }
79
- ];
80
- return { lg, md, sm, xl, xs };
81
- };
82
-
83
- // src/components/DynamicTable/DynamicTableRow.tsx
84
- var import_jsx_runtime = require("react/jsx-runtime");
85
- var PayloadDynamicTableRow = ({
86
- archive,
87
- columns = payloadDynamicTableColumnConfigDefaults(),
88
- exploreDomain,
89
- network: networkProp,
90
- payload,
91
- ...props
92
- }) => {
93
- const breakPoint = (0, import_react_shared.useBreakpoint)();
94
- const payloadHash = (0, import_react_shared2.usePayloadHash)(payload);
95
- const { network } = (0, import_react_network.useNetwork)();
96
- const { resolver } = (0, import_react_payload_plugin_resolver.usePayloadRenderPluginResolver)();
97
- const [validationErrors = []] = (0, import_react_promise.usePromise)(async () => payload ? await new import_payload_validator.PayloadValidator(payload).validate() : void 0, [payload]);
98
- const isValid = validationErrors.length === 0;
99
- const payloadFieldCount = payload ? Object.keys(import_hash.PayloadHasher.hashFields(payload)).length : 0;
100
- const hash = (props2) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
101
- import_react_shared2.HashTableCell,
102
- {
103
- align: "left",
104
- archive,
105
- value: payloadHash,
106
- dataType: "payload",
107
- exploreDomain,
108
- network: networkProp ?? network?.slug,
109
- ...props2
110
- },
111
- "hash"
112
- );
113
- 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?.schema }) }, "payloads");
114
- 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");
115
- const render = (props2) => {
116
- const Render = payload ? resolver?.resolve(payload)?.components.table.cell : void 0;
117
- return Render ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Render, { payload, ...props2 }) : /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_material.TableCell, { align: "left", ...props2 }, "payloads");
118
- };
119
- const icon = (props2) => {
120
- const Avatar = payload ? resolver?.resolve(payload)?.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: columns[breakPoint]?.map((column) => {
136
- return column.slug ? tableCells[column.slug]({}) : null;
137
- }) }) : null;
138
- };
139
-
140
- // src/components/DynamicTable/Table.tsx
141
- var import_icons_material2 = require("@mui/icons-material");
142
- var import_material2 = require("@mui/material");
143
- var import_react_shared3 = require("@xylabs/react-shared");
144
- var import_react_error = require("@xyo-network/react-error");
145
- var import_react_shared4 = require("@xyo-network/react-shared");
146
- var import_react = require("react");
147
- var import_jsx_runtime2 = require("react/jsx-runtime");
148
- function TablePaginationActions(props) {
149
- const theme = (0, import_material2.useTheme)();
150
- const { count, page, rowsPerPage, onPageChange } = props;
151
- const handleFirstPageButtonClick = (event) => {
152
- onPageChange(event, 0);
153
- };
154
- const handleBackButtonClick = (event) => {
155
- onPageChange(event, page - 1);
156
- };
157
- const handleNextButtonClick = (event) => {
158
- onPageChange(event, page + 1);
159
- };
160
- const handleLastPageButtonClick = (event) => {
161
- onPageChange(event, Math.max(0, Math.ceil(count / rowsPerPage) - 1));
162
- };
163
- return /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)(import_material2.Box, { sx: { flexShrink: 0, ml: 2.5 }, children: [
164
- /* @__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, {}) }),
165
- /* @__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, {}) }),
166
- /* @__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, {}) }),
167
- /* @__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, {}) })
168
- ] });
169
- }
170
- var PayloadDynamicTable = ({
171
- archive,
172
- children,
173
- columns = payloadDynamicTableColumnConfigDefaults(),
174
- exploreDomain,
175
- onRowClick,
176
- rowsPerPage: rowsPerPageProp = 10,
177
- payloads,
178
- ...props
179
- }) => {
180
- const breakPoint = (0, import_react_shared3.useBreakpoint)();
181
- const [page, setPage] = (0, import_react.useState)(0);
182
- const [rowsPerPage, setRowsPerPage] = (0, import_react.useState)(rowsPerPageProp);
183
- const payloadCount = payloads ? payloads.length : 0;
184
- const emptyRows = page > 0 ? Math.max(0, (1 + page) * rowsPerPage - payloadCount) : 0;
185
- const pagedPayloads = (0, import_react.useMemo)(() => payloads?.slice(page * rowsPerPage, page * rowsPerPage + rowsPerPage), [payloads, page, rowsPerPage]);
186
- const payloadPairs = (0, import_react_shared4.usePayloadHashes)(pagedPayloads);
187
- (0, import_react.useEffect)(() => {
188
- setRowsPerPage(rowsPerPageProp);
189
- }, [rowsPerPageProp]);
190
- const handleChangePage = (event, newPage) => {
191
- setPage(newPage);
192
- };
193
- const handleChangeRowsPerPage = (event) => {
194
- setRowsPerPage(parseInt(event.target.value, 10));
195
- setPage(0);
196
- };
197
- return breakPoint ? /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)(import_material2.Table, { stickyHeader: true, ...props, children: [
198
- /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(import_material2.TableHead, { children: /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(import_material2.TableRow, { children: columns[breakPoint]?.map((column, index) => {
199
- 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);
200
- }) }) }),
201
- /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)(import_material2.TableBody, { sx: { overflowY: "scroll " }, children: [
202
- payloadPairs?.map(([payload, hash], index) => {
203
- return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
204
- import_react_error.ThrownErrorBoundary,
205
- {
206
- boundaryName: "PayloadTableBody",
207
- errorComponent: (e) => /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)(import_material2.Alert, { severity: "error", children: [
208
- "Error Loading Payload: ",
209
- /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(import_material2.Typography, { fontWeight: "bold", children: e.message })
210
- ] }),
211
- children: /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
212
- PayloadDynamicTableRow,
213
- {
214
- archive,
215
- onClick: onRowClick ? () => {
216
- onRowClick(payload);
217
- } : void 0,
218
- exploreDomain,
219
- payload
220
- }
221
- )
222
- },
223
- `${hash}-${index}`
224
- );
225
- }),
226
- children,
227
- emptyRows > 0 && Array(emptyRows).fill(/* @__PURE__ */ (0, import_jsx_runtime2.jsx)(PayloadDynamicTableRow, {}))
228
- ] }),
229
- /* @__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)(
230
- import_material2.TablePagination,
231
- {
232
- rowsPerPageOptions: [5, 10, 25, { label: "All", value: -1 }],
233
- colSpan: 5,
234
- count: payloadCount,
235
- rowsPerPage,
236
- page,
237
- SelectProps: {
238
- inputProps: {
239
- "aria-label": "rows per page"
240
- },
241
- native: true
242
- },
243
- onPageChange: handleChangePage,
244
- onRowsPerPageChange: handleChangeRowsPerPage,
245
- ActionsComponent: TablePaginationActions
246
- }
247
- ) }) })
248
- ] }) : null;
249
- };
250
-
251
- // src/components/Table/PayloadTableColumnConfig.ts
252
- var payloadColumnNames = {
253
- hash: "Hash",
254
- schema: "Schema",
255
- valid: "Valid"
256
- };
257
- var payloadTableColumnConfigDefaults = () => {
258
- const xs = ["hash", "schema", "valid"];
259
- const sm = ["hash", "schema", "valid"];
260
- const md = ["hash", "schema", "valid"];
261
- const lg = ["hash", "schema", "valid"];
262
- const xl = ["hash", "schema", "valid"];
263
- return { lg, md, sm, xl, xs };
264
- };
265
-
266
- // src/components/Table/Table.tsx
267
- var import_react_table2 = require("@xyo-network/react-table");
268
- var import_react2 = require("react");
269
-
270
- // src/components/Table/TableBody.tsx
271
- var import_material4 = require("@mui/material");
272
- var import_react_error2 = require("@xyo-network/react-error");
273
- var import_react_shared7 = require("@xyo-network/react-shared");
274
-
275
- // src/components/Table/TableRow.tsx
276
- var import_icons_material3 = require("@mui/icons-material");
277
- var import_material3 = require("@mui/material");
278
- var import_react_promise2 = require("@xylabs/react-promise");
279
- var import_react_shared5 = require("@xylabs/react-shared");
280
- var import_payload_validator2 = require("@xyo-network/payload-validator");
281
- var import_react_network2 = require("@xyo-network/react-network");
282
- var import_react_shared6 = require("@xyo-network/react-shared");
283
- var import_jsx_runtime3 = require("react/jsx-runtime");
284
- var PayloadTableRow = ({
285
- archive,
286
- columns = payloadTableColumnConfigDefaults(),
287
- exploreDomain,
288
- maxSchemaDepth,
289
- network: networkProp,
290
- payload,
291
- ...props
292
- }) => {
293
- const breakPoint = (0, import_react_shared5.useBreakpoint)();
294
- const payloadHash = (0, import_react_shared6.usePayloadHash)(payload);
295
- const { network } = (0, import_react_network2.useNetwork)();
296
- const [errors = []] = (0, import_react_promise2.usePromise)(async () => payload ? await new import_payload_validator2.PayloadValidator(payload).validate() : void 0, [payload]);
297
- const isValid = errors.length === 0;
298
- const hash = (props2) => /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
299
- import_react_shared6.HashTableCell,
300
- {
301
- archive,
302
- width: "100%",
303
- value: payloadHash,
304
- dataType: "payload",
305
- exploreDomain,
306
- network: networkProp ?? network?.slug,
307
- ...props2
308
- },
309
- "hash"
310
- );
311
- const reduceSchemaDepth = (schema2, maxSchemaDepth2) => {
312
- if (maxSchemaDepth2) {
313
- const parts = schema2?.split(".") ?? [];
314
- const partsToRemove = parts.length - maxSchemaDepth2 > 0 ? parts.length - maxSchemaDepth2 : 0;
315
- if (partsToRemove > 0) {
316
- return /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)(import_jsx_runtime3.Fragment, { children: [
317
- /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(import_jsx_runtime3.Fragment, { children: "\u2026" }),
318
- `${parts.slice(partsToRemove).reduce((previousValue, part) => `${previousValue}.${part}`)}`
319
- ] });
320
- }
321
- }
322
- return schema2;
323
- };
324
- const schema = (props2) => /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(import_material3.TableCell, { title: payload?.schema, align: "center", ...props2, children: /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(import_material3.Typography, { fontFamily: "monospace", variant: "body2", noWrap: true, children: reduceSchemaDepth(payload?.schema, maxSchemaDepth) }) }, "payloads");
325
- const valid = (props2) => /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(import_material3.TableCell, { align: "center", ...props2, children: isValid === void 0 && payload != void 0 ? /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(import_icons_material3.WarningAmberRounded, { fontSize: "small", color: "warning" }) : isValid === true ? /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(import_icons_material3.CheckCircleOutlineRounded, { fontSize: "small", color: "success" }) : isValid === false ? /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(import_icons_material3.ErrorOutlineRounded, { color: "error", fontSize: "small" }) : (
326
- //to keep row height consistent when no data provided, may need fix later
327
- /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(import_icons_material3.ErrorOutlineRounded, { sx: { color: (0, import_material3.alpha)("#fff", 0) }, fontSize: "small" })
328
- ) }, "valid");
329
- const tableCells = {
330
- hash,
331
- schema,
332
- valid
333
- };
334
- return breakPoint ? /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(import_material3.TableRow, { style: { maxWidth: "100vw" }, ...props, children: columns[breakPoint]?.map((column) => {
335
- return tableCells[column]({});
336
- }) }) : null;
337
- };
338
-
339
- // src/components/Table/TableBody.tsx
340
- var import_jsx_runtime4 = require("react/jsx-runtime");
341
- var PayloadTableBody = ({
342
- children,
343
- exploreDomain,
344
- payloads,
345
- archive,
346
- maxSchemaDepth,
347
- onRowClick,
348
- emptyRows,
349
- noResults,
350
- NoResultRowComponent,
351
- ...props
352
- }) => {
353
- const payloadPairs = (0, import_react_shared7.usePayloadHashes)(payloads);
354
- return /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)(import_material4.TableBody, { ...props, children: [
355
- noResults && NoResultRowComponent ? /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(NoResultRowComponent, {}) : null,
356
- payloadPairs?.map(([payload, hash], index) => {
357
- return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
358
- import_react_error2.ThrownErrorBoundary,
359
- {
360
- boundaryName: "PayloadTableBody",
361
- errorComponent: (e) => /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)(import_material4.Alert, { severity: "error", children: [
362
- "Error Loading Payload: ",
363
- /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(import_material4.Typography, { fontWeight: "bold", children: e.message })
364
- ] }),
365
- children: /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
366
- PayloadTableRow,
367
- {
368
- maxSchemaDepth,
369
- archive,
370
- onClick: onRowClick ? () => {
371
- onRowClick(payload);
372
- } : void 0,
373
- exploreDomain,
374
- payload
375
- }
376
- )
377
- },
378
- `${hash}-${index}`
379
- );
380
- }),
381
- children,
382
- (emptyRows ?? 0) > 0 && Array(emptyRows).fill(/* @__PURE__ */ (0, import_jsx_runtime4.jsx)(PayloadTableRow, {}))
383
- ] });
384
- };
385
-
386
- // src/components/Table/TableFooter.tsx
387
- var import_material6 = require("@mui/material");
388
- var import_react_table = require("@xyo-network/react-table");
389
-
390
- // src/components/Table/TablePagination.tsx
391
- var import_icons_material4 = require("@mui/icons-material");
392
- var import_material5 = require("@mui/material");
393
- var import_react_event = require("@xyo-network/react-event");
394
- var import_jsx_runtime5 = require("react/jsx-runtime");
395
- function TablePaginationActions2({ count, enableNextPage, loading, onPageChange, page, rowsPerPage }) {
396
- const theme = (0, import_material5.useTheme)();
397
- const [paginationRef, paginationDispatch] = (0, import_react_event.useEvent)();
398
- const handleFirstPageButtonClick = (event) => {
399
- paginationDispatch("firstPage", "click", "true");
400
- onPageChange(event, 0);
401
- };
402
- const handleBackButtonClick = (event) => {
403
- paginationDispatch("previousPage", "click", (page - 1)?.toString());
404
- onPageChange(event, page - 1);
405
- };
406
- const handleNextButtonClick = (event) => {
407
- paginationDispatch("nextPage", "click", (page + 1)?.toString());
408
- onPageChange(event, page + 1);
409
- };
410
- const handleLastPageButtonClick = (event) => {
411
- paginationDispatch("lastPage", "click", "true");
412
- onPageChange(event, Math.max(0, Math.ceil(count / rowsPerPage) - 1));
413
- };
414
- return /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)(import_jsx_runtime5.Fragment, { children: [
415
- loading ? /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(import_material5.CircularProgress, { size: "small", sx: { height: theme.spacing(2), position: "absolute", width: theme.spacing(2) } }) : null,
416
- /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)(import_material5.Box, { sx: { flexShrink: 0, ml: 2.5 }, children: [
417
- /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(import_material5.IconButton, { onClick: handleFirstPageButtonClick, disabled: page === 0, "aria-label": "first page", children: theme.direction === "rtl" ? /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(import_icons_material4.LastPage, {}) : /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(import_icons_material4.FirstPage, {}) }),
418
- /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(import_material5.IconButton, { ref: paginationRef, onClick: handleBackButtonClick, disabled: page === 0, "aria-label": "previous page", children: theme.direction === "rtl" ? /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(import_icons_material4.KeyboardArrowRight, {}) : /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(import_icons_material4.KeyboardArrowLeft, {}) }),
419
- /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
420
- import_material5.IconButton,
421
- {
422
- ref: paginationRef,
423
- onClick: handleNextButtonClick,
424
- disabled: !enableNextPage && page >= Math.ceil(count / rowsPerPage) - 1,
425
- "aria-label": "next page",
426
- children: theme.direction === "rtl" ? /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(import_icons_material4.KeyboardArrowLeft, {}) : /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(import_icons_material4.KeyboardArrowRight, {})
427
- }
428
- ),
429
- /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(import_material5.IconButton, { onClick: handleLastPageButtonClick, disabled: page >= Math.ceil(count / rowsPerPage) - 1, "aria-label": "last page", children: theme.direction === "rtl" ? /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(import_icons_material4.FirstPage, {}) : /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(import_icons_material4.LastPage, {}) })
430
- ] })
431
- ] });
432
- }
433
-
434
- // src/components/Table/TableFooter.tsx
435
- var import_jsx_runtime6 = require("react/jsx-runtime");
436
- var PayloadTableFooter = ({
437
- count,
438
- variant,
439
- page,
440
- rowsPerPage,
441
- handleChangePage = () => void 0,
442
- handleChangeRowsPerPage = () => void 0,
443
- fetchMorePayloads,
444
- loading
445
- }) => /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(import_react_table.TableFooterEx, { variant, children: /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(import_material6.TableRow, { children: /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
446
- StyledTablePagination,
447
- {
448
- rowsPerPageOptions: [5, 10, 25, { label: "All", value: -1 }],
449
- count: count ?? 0,
450
- rowsPerPage: rowsPerPage ?? 10,
451
- page: page ?? 0,
452
- SelectProps: {
453
- inputProps: {
454
- "aria-label": "rows per page"
455
- },
456
- native: true
457
- },
458
- onPageChange: handleChangePage,
459
- onRowsPerPageChange: handleChangeRowsPerPage,
460
- ActionsComponent: (props) => /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(TablePaginationActions2, { enableNextPage: !!fetchMorePayloads, loading, ...props })
461
- }
462
- ) }) });
463
- var StyledTablePagination = (0, import_material6.styled)(import_material6.TablePagination)(({ theme }) => ({
464
- "& > .MuiToolbar-root": {
465
- paddingLeft: theme.spacing(1)
466
- },
467
- borderTop: "1px solid",
468
- borderTopColor: theme.palette.divider
469
- }));
470
-
471
- // src/components/Table/TableHead.tsx
472
- var import_material7 = require("@mui/material");
473
- var import_react_shared8 = require("@xylabs/react-shared");
474
- var import_jsx_runtime7 = require("react/jsx-runtime");
475
- var PayloadTableHead = ({ columns = payloadTableColumnConfigDefaults(), ...props }) => {
476
- const breakPoint = (0, import_react_shared8.useBreakpoint)();
477
- return /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(import_material7.TableHead, { ...props, children: /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(import_material7.TableRow, { children: breakPoint && columns ? columns[breakPoint]?.map((column, index) => {
478
- return /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(import_material7.TableCell, { width: index === 0 ? "100%" : void 0, align: index === 0 ? "left" : "center", children: /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(import_material7.Typography, { variant: "body2", noWrap: true, children: payloadColumnNames[column] }) }, index);
479
- }) : null }) });
480
- };
481
-
482
- // src/components/Table/TableRowNoData.tsx
483
- var import_material8 = require("@mui/material");
484
- var import_jsx_runtime8 = require("react/jsx-runtime");
485
- var TableRowNoData = ({ additionalCells, hideBorder = false, typographyProps, ...props }) => {
486
- return /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)(import_material8.TableRow, { ...props, children: [
487
- /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(StyledTableCell, { hideBorder, children: /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(import_material8.Typography, { variant: "body2", ...typographyProps, children: "No Data To Display..." }) }),
488
- additionalCells ? Array(additionalCells).fill(void 0).map((_fill, index) => /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(StyledTableCell, { hideBorder }, index)) : null
489
- ] });
490
- };
491
- var StyledTableCell = (0, import_material8.styled)(import_material8.TableCell, {
492
- name: "StyledTableCell",
493
- shouldForwardProp: (prop) => prop !== "hideBorder"
494
- })(({ hideBorder }) => ({
495
- ...hideBorder && { border: "none" }
496
- }));
497
-
498
- // src/components/Table/Table.tsx
499
- var import_jsx_runtime9 = require("react/jsx-runtime");
500
- var PayloadTableWithRef = (0, import_react2.forwardRef)(
501
- ({
502
- exploreDomain,
503
- archive,
504
- onRowClick,
505
- fetchMorePayloads,
506
- rowsPerPage: rowsPerPageProp = 25,
507
- payloads,
508
- columns,
509
- PayloadTableHeadComponent = PayloadTableHead,
510
- PayloadTableBodyComponent = PayloadTableBody,
511
- PayloadTableFooterComponent = PayloadTableFooter,
512
- maxSchemaDepth,
513
- count = 0,
514
- loading = false,
515
- variant = "scrollable",
516
- ...props
517
- }, ref) => {
518
- const [page, setPage] = (0, import_react2.useState)(0);
519
- const [rowsPerPage, setRowsPerPage] = (0, import_react2.useState)(rowsPerPageProp);
520
- const [visiblePayloads, setVisiblePayloads] = (0, import_react2.useState)([]);
521
- const emptyRows = page > 0 ? Math.max(0, (1 + page) * rowsPerPage - count || 0) : 0;
522
- (0, import_react2.useEffect)(() => {
523
- setRowsPerPage(rowsPerPageProp);
524
- }, [rowsPerPageProp]);
525
- (0, import_react2.useEffect)(() => {
526
- if (payloads) {
527
- setVisiblePayloads(payloads.slice(page * rowsPerPage, page * rowsPerPage + rowsPerPage));
528
- }
529
- }, [count, page, payloads, rowsPerPage]);
530
- (0, import_react2.useEffect)(() => {
531
- setPage(0);
532
- }, [payloads]);
533
- const handleAdditionalPayloads = () => {
534
- if (fetchMorePayloads && payloads) {
535
- const buffer = rowsPerPage * 2;
536
- const lastVisiblePayload = visiblePayloads?.at(-1);
537
- if (lastVisiblePayload) {
538
- const lastVisibleIndex = payloads?.indexOf(lastVisiblePayload);
539
- if (lastVisibleIndex !== void 0 && payloads.length - (lastVisibleIndex + 1) <= buffer) {
540
- fetchMorePayloads();
541
- }
542
- }
543
- }
544
- };
545
- const handleChangePage = (_event, newPage) => {
546
- handleAdditionalPayloads();
547
- setPage(newPage);
548
- };
549
- const handleChangeRowsPerPage = (event) => {
550
- setRowsPerPage(parseInt(event.target.value, 10));
551
- setPage(0);
552
- };
553
- const noResults = (0, import_react2.useMemo)(() => {
554
- return !loading && (!visiblePayloads || visiblePayloads.length === 0);
555
- }, [loading, visiblePayloads]);
556
- return /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)(import_react_table2.TableEx, { variant, ref, ...props, children: [
557
- /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(PayloadTableHeadComponent, { columns }),
558
- /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
559
- PayloadTableBodyComponent,
560
- {
561
- payloads: visiblePayloads,
562
- exploreDomain,
563
- archive,
564
- maxSchemaDepth,
565
- onRowClick,
566
- emptyRows,
567
- noResults,
568
- NoResultRowComponent: TableRowNoData
569
- }
570
- ),
571
- /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
572
- PayloadTableFooterComponent,
573
- {
574
- count,
575
- variant,
576
- rowsPerPage,
577
- handleChangePage,
578
- handleChangeRowsPerPage,
579
- fetchMorePayloads,
580
- loading,
581
- page
582
- }
583
- )
584
- ] });
585
- }
586
- );
587
- PayloadTableWithRef.displayName = "PayloadTable";
588
- var PayloadTable = PayloadTableWithRef;
589
- //# sourceMappingURL=index.cjs.map