@xyo-network/react-payload-table 2.64.0-rc.7 → 2.64.1

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 (295) hide show
  1. package/dist/browser/components/DynamicTable/DynamicTableRow.cjs +128 -0
  2. package/dist/browser/components/DynamicTable/DynamicTableRow.cjs.map +1 -0
  3. package/dist/browser/components/DynamicTable/DynamicTableRow.d.cts +15 -0
  4. package/dist/browser/components/DynamicTable/DynamicTableRow.d.cts.map +1 -0
  5. package/dist/browser/components/DynamicTable/DynamicTableRow.d.mts +3 -1
  6. package/dist/browser/components/DynamicTable/DynamicTableRow.d.mts.map +1 -1
  7. package/dist/browser/components/DynamicTable/DynamicTableRow.d.ts +3 -1
  8. package/dist/browser/components/DynamicTable/DynamicTableRow.d.ts.map +1 -1
  9. package/dist/browser/components/DynamicTable/DynamicTableRow.js +41 -5
  10. package/dist/browser/components/DynamicTable/DynamicTableRow.js.map +1 -1
  11. package/dist/{node/components/DynamicTable/PayloadDynamicTableColumnConfig.mjs → browser/components/DynamicTable/PayloadDynamicTableColumnConfig.cjs} +27 -5
  12. package/dist/{node/components/DynamicTable/PayloadDynamicTableColumnConfig.mjs.map → browser/components/DynamicTable/PayloadDynamicTableColumnConfig.cjs.map} +1 -1
  13. package/dist/browser/components/DynamicTable/PayloadDynamicTableColumnConfig.d.cts +16 -0
  14. package/dist/browser/components/DynamicTable/PayloadDynamicTableColumnConfig.d.cts.map +1 -0
  15. package/dist/browser/components/DynamicTable/PayloadDynamicTableColumnConfig.js +2 -1
  16. package/dist/browser/components/DynamicTable/PayloadDynamicTableColumnConfig.js.map +1 -1
  17. package/dist/browser/components/DynamicTable/Table.cjs +241 -0
  18. package/dist/browser/components/DynamicTable/Table.cjs.map +1 -0
  19. package/dist/browser/components/DynamicTable/Table.d.cts +14 -0
  20. package/dist/browser/components/DynamicTable/Table.d.cts.map +1 -0
  21. package/dist/browser/components/DynamicTable/Table.js +129 -20
  22. package/dist/browser/components/DynamicTable/Table.js.map +1 -1
  23. package/dist/browser/components/DynamicTable/index.cjs +243 -0
  24. package/dist/browser/components/DynamicTable/index.cjs.map +1 -0
  25. package/dist/browser/components/DynamicTable/index.d.cts +4 -0
  26. package/dist/browser/components/DynamicTable/index.d.cts.map +1 -0
  27. package/dist/browser/components/DynamicTable/index.js +236 -3
  28. package/dist/browser/components/DynamicTable/index.js.map +1 -1
  29. package/dist/browser/components/Table/PayloadTableColumnConfig.cjs +40 -0
  30. package/dist/{node/components/Table/PayloadTableColumnConfig.mjs.map → browser/components/Table/PayloadTableColumnConfig.cjs.map} +1 -1
  31. package/dist/browser/components/Table/PayloadTableColumnConfig.d.cts +11 -0
  32. package/dist/browser/components/Table/PayloadTableColumnConfig.d.cts.map +1 -0
  33. package/dist/browser/components/Table/PayloadTableColumnConfig.js +3 -2
  34. package/dist/browser/components/Table/PayloadTableColumnConfig.js.map +1 -1
  35. package/dist/browser/components/Table/Table.cjs +366 -0
  36. package/dist/browser/components/Table/Table.cjs.map +1 -0
  37. package/dist/browser/components/Table/Table.d.cts +26 -0
  38. package/dist/browser/components/Table/Table.d.cts.map +1 -0
  39. package/dist/browser/components/Table/Table.js +259 -11
  40. package/dist/browser/components/Table/Table.js.map +1 -1
  41. package/dist/browser/components/Table/TableBody.cjs +152 -0
  42. package/dist/browser/components/Table/TableBody.cjs.map +1 -0
  43. package/dist/browser/components/Table/TableBody.d.cts +4 -0
  44. package/dist/browser/components/Table/TableBody.d.cts.map +1 -0
  45. package/dist/browser/components/Table/TableBody.js +93 -11
  46. package/dist/browser/components/Table/TableBody.js.map +1 -1
  47. package/dist/browser/components/Table/TableFooter.cjs +109 -0
  48. package/dist/browser/components/Table/TableFooter.cjs.map +1 -0
  49. package/dist/browser/components/Table/TableFooter.d.cts +4 -0
  50. package/dist/browser/components/Table/TableFooter.d.cts.map +1 -0
  51. package/dist/browser/components/Table/TableFooter.js +52 -6
  52. package/dist/browser/components/Table/TableFooter.js.map +1 -1
  53. package/dist/browser/components/Table/TableHead.cjs +52 -0
  54. package/dist/browser/components/Table/TableHead.cjs.map +1 -0
  55. package/dist/browser/components/Table/TableHead.d.cts +4 -0
  56. package/dist/browser/components/Table/TableHead.d.cts.map +1 -0
  57. package/dist/browser/components/Table/TableHead.js +20 -3
  58. package/dist/browser/components/Table/TableHead.js.map +1 -1
  59. package/dist/browser/components/Table/TablePagination.cjs +68 -0
  60. package/dist/{node/components/Table/TablePagination.mjs.map → browser/components/Table/TablePagination.cjs.map} +1 -1
  61. package/dist/browser/components/Table/TablePagination.d.cts +11 -0
  62. package/dist/browser/components/Table/TablePagination.d.cts.map +1 -0
  63. package/dist/browser/components/Table/TablePagination.js +2 -1
  64. package/dist/browser/components/Table/TablePagination.js.map +1 -1
  65. package/dist/browser/components/Table/TableRow.cjs +100 -0
  66. package/dist/browser/components/Table/TableRow.cjs.map +1 -0
  67. package/dist/browser/components/Table/TableRow.d.cts +14 -0
  68. package/dist/browser/components/Table/TableRow.d.cts.map +1 -0
  69. package/dist/browser/components/Table/TableRow.js +15 -3
  70. package/dist/browser/components/Table/TableRow.js.map +1 -1
  71. package/dist/browser/components/Table/TableRowNoData.cjs +40 -0
  72. package/dist/{node/components/Table/TableRowNoData.mjs.map → browser/components/Table/TableRowNoData.cjs.map} +1 -1
  73. package/dist/browser/components/Table/TableRowNoData.d.cts +9 -0
  74. package/dist/browser/components/Table/TableRowNoData.d.cts.map +1 -0
  75. package/dist/browser/components/Table/TableRowNoData.js +4 -3
  76. package/dist/browser/components/Table/TableRowNoData.js.map +1 -1
  77. package/dist/browser/components/Table/index.cjs +371 -0
  78. package/dist/browser/components/Table/index.cjs.map +1 -0
  79. package/dist/browser/components/Table/index.d.cts +7 -0
  80. package/dist/browser/components/Table/index.d.cts.map +1 -0
  81. package/dist/browser/components/Table/index.js +351 -6
  82. package/dist/browser/components/Table/index.js.map +1 -1
  83. package/dist/browser/components/Table/types/PaginationEventNouns.cjs +19 -0
  84. package/dist/browser/components/Table/types/PaginationEventNouns.cjs.map +1 -0
  85. package/dist/browser/components/Table/types/PaginationEventNouns.d.cts +2 -0
  86. package/dist/browser/components/Table/types/PaginationEventNouns.d.cts.map +1 -0
  87. package/dist/browser/components/Table/types/PayloadTableBodyProps.cjs +19 -0
  88. package/dist/browser/components/Table/types/PayloadTableBodyProps.cjs.map +1 -0
  89. package/dist/browser/components/Table/types/PayloadTableBodyProps.d.cts +15 -0
  90. package/dist/browser/components/Table/types/PayloadTableBodyProps.d.cts.map +1 -0
  91. package/dist/browser/components/Table/types/PayloadTableFooterProps.cjs +19 -0
  92. package/dist/browser/components/Table/types/PayloadTableFooterProps.cjs.map +1 -0
  93. package/dist/browser/components/Table/types/PayloadTableFooterProps.d.cts +13 -0
  94. package/dist/browser/components/Table/types/PayloadTableFooterProps.d.cts.map +1 -0
  95. package/dist/browser/components/Table/types/PayloadTableHeadProps.cjs +19 -0
  96. package/dist/browser/components/Table/types/PayloadTableHeadProps.cjs.map +1 -0
  97. package/dist/browser/components/Table/types/PayloadTableHeadProps.d.cts +6 -0
  98. package/dist/browser/components/Table/types/PayloadTableHeadProps.d.cts.map +1 -0
  99. package/dist/browser/components/Table/types/index.cjs +19 -0
  100. package/dist/{node/components/Table/types/index.mjs.map → browser/components/Table/types/index.cjs.map} +1 -1
  101. package/dist/browser/components/Table/types/index.d.cts +5 -0
  102. package/dist/browser/components/Table/types/index.d.cts.map +1 -0
  103. package/dist/browser/components/Table/types/index.js +0 -4
  104. package/dist/browser/components/Table/types/index.js.map +1 -1
  105. package/dist/browser/components/index.cjs +589 -0
  106. package/dist/browser/components/index.cjs.map +1 -0
  107. package/dist/browser/components/index.d.cts +3 -0
  108. package/dist/browser/components/index.d.cts.map +1 -0
  109. package/dist/browser/components/index.js +586 -2
  110. package/dist/browser/components/index.js.map +1 -1
  111. package/dist/browser/index.cjs +589 -0
  112. package/dist/browser/index.cjs.map +1 -0
  113. package/dist/browser/index.d.cts +2 -0
  114. package/dist/browser/index.d.cts.map +1 -0
  115. package/dist/browser/index.js +586 -1
  116. package/dist/browser/index.js.map +1 -1
  117. package/dist/docs.json +4590 -0
  118. package/dist/node/components/DynamicTable/DynamicTableRow.cjs +135 -0
  119. package/dist/node/components/DynamicTable/DynamicTableRow.cjs.map +1 -0
  120. package/dist/node/components/DynamicTable/DynamicTableRow.d.cts +15 -0
  121. package/dist/node/components/DynamicTable/DynamicTableRow.d.cts.map +1 -0
  122. package/dist/node/components/DynamicTable/DynamicTableRow.d.mts +3 -1
  123. package/dist/node/components/DynamicTable/DynamicTableRow.d.mts.map +1 -1
  124. package/dist/node/components/DynamicTable/DynamicTableRow.d.ts +3 -1
  125. package/dist/node/components/DynamicTable/DynamicTableRow.d.ts.map +1 -1
  126. package/dist/node/components/DynamicTable/DynamicTableRow.js +77 -56
  127. package/dist/node/components/DynamicTable/DynamicTableRow.js.map +1 -1
  128. package/dist/node/components/DynamicTable/PayloadDynamicTableColumnConfig.cjs +64 -0
  129. package/dist/node/components/DynamicTable/PayloadDynamicTableColumnConfig.cjs.map +1 -0
  130. package/dist/node/components/DynamicTable/PayloadDynamicTableColumnConfig.d.cts +16 -0
  131. package/dist/node/components/DynamicTable/PayloadDynamicTableColumnConfig.d.cts.map +1 -0
  132. package/dist/node/components/DynamicTable/PayloadDynamicTableColumnConfig.js +4 -27
  133. package/dist/node/components/DynamicTable/PayloadDynamicTableColumnConfig.js.map +1 -1
  134. package/dist/node/components/DynamicTable/Table.cjs +249 -0
  135. package/dist/node/components/DynamicTable/Table.cjs.map +1 -0
  136. package/dist/node/components/DynamicTable/Table.d.cts +14 -0
  137. package/dist/node/components/DynamicTable/Table.d.cts.map +1 -0
  138. package/dist/node/components/DynamicTable/Table.js +163 -61
  139. package/dist/node/components/DynamicTable/Table.js.map +1 -1
  140. package/dist/node/components/DynamicTable/index.cjs +253 -0
  141. package/dist/node/components/DynamicTable/index.cjs.map +1 -0
  142. package/dist/node/components/DynamicTable/index.d.cts +4 -0
  143. package/dist/node/components/DynamicTable/index.d.cts.map +1 -0
  144. package/dist/node/components/DynamicTable/index.js +239 -25
  145. package/dist/node/components/DynamicTable/index.js.map +1 -1
  146. package/dist/node/components/Table/PayloadTableColumnConfig.cjs +45 -0
  147. package/dist/node/components/Table/PayloadTableColumnConfig.cjs.map +1 -0
  148. package/dist/node/components/Table/PayloadTableColumnConfig.d.cts +11 -0
  149. package/dist/node/components/Table/PayloadTableColumnConfig.d.cts.map +1 -0
  150. package/dist/node/components/Table/PayloadTableColumnConfig.js +5 -29
  151. package/dist/node/components/Table/PayloadTableColumnConfig.js.map +1 -1
  152. package/dist/node/components/Table/Table.cjs +375 -0
  153. package/dist/node/components/Table/Table.cjs.map +1 -0
  154. package/dist/node/components/Table/Table.d.cts +26 -0
  155. package/dist/node/components/Table/Table.d.cts.map +1 -0
  156. package/dist/node/components/Table/Table.js +277 -50
  157. package/dist/node/components/Table/Table.js.map +1 -1
  158. package/dist/node/components/Table/TableBody.cjs +157 -0
  159. package/dist/node/components/Table/TableBody.cjs.map +1 -0
  160. package/dist/node/components/Table/TableBody.d.cts +4 -0
  161. package/dist/node/components/Table/TableBody.d.cts.map +1 -0
  162. package/dist/node/components/Table/TableBody.js +100 -41
  163. package/dist/node/components/Table/TableBody.js.map +1 -1
  164. package/dist/node/components/Table/TableFooter.cjs +115 -0
  165. package/dist/node/components/Table/TableFooter.cjs.map +1 -0
  166. package/dist/node/components/Table/TableFooter.d.cts +4 -0
  167. package/dist/node/components/Table/TableFooter.d.cts.map +1 -0
  168. package/dist/node/components/Table/TableFooter.js +58 -34
  169. package/dist/node/components/Table/TableFooter.js.map +1 -1
  170. package/dist/node/components/Table/TableHead.cjs +57 -0
  171. package/dist/node/components/Table/TableHead.cjs.map +1 -0
  172. package/dist/node/components/Table/TableHead.d.cts +4 -0
  173. package/dist/node/components/Table/TableHead.d.cts.map +1 -0
  174. package/dist/node/components/Table/TableHead.js +26 -32
  175. package/dist/node/components/Table/TableHead.js.map +1 -1
  176. package/dist/node/components/Table/TablePagination.cjs +74 -0
  177. package/dist/node/components/Table/TablePagination.cjs.map +1 -0
  178. package/dist/node/components/Table/TablePagination.d.cts +11 -0
  179. package/dist/node/components/Table/TablePagination.d.cts.map +1 -0
  180. package/dist/node/components/Table/TablePagination.js +22 -43
  181. package/dist/node/components/Table/TablePagination.js.map +1 -1
  182. package/dist/node/components/Table/TableRow.cjs +105 -0
  183. package/dist/node/components/Table/TableRow.cjs.map +1 -0
  184. package/dist/node/components/Table/TableRow.d.cts +14 -0
  185. package/dist/node/components/Table/TableRow.d.cts.map +1 -0
  186. package/dist/node/components/Table/TableRow.js +43 -50
  187. package/dist/node/components/Table/TableRow.js.map +1 -1
  188. package/dist/node/components/Table/TableRowNoData.cjs +44 -0
  189. package/dist/node/components/Table/TableRowNoData.cjs.map +1 -0
  190. package/dist/node/components/Table/TableRowNoData.d.cts +9 -0
  191. package/dist/node/components/Table/TableRowNoData.d.cts.map +1 -0
  192. package/dist/node/components/Table/TableRowNoData.js +10 -33
  193. package/dist/node/components/Table/TableRowNoData.js.map +1 -1
  194. package/dist/node/components/Table/index.cjs +385 -0
  195. package/dist/node/components/Table/index.cjs.map +1 -0
  196. package/dist/node/components/Table/index.d.cts +7 -0
  197. package/dist/node/components/Table/index.d.cts.map +1 -0
  198. package/dist/node/components/Table/index.js +353 -30
  199. package/dist/node/components/Table/index.js.map +1 -1
  200. package/dist/node/components/Table/types/PaginationEventNouns.cjs +19 -0
  201. package/dist/node/components/Table/types/PaginationEventNouns.cjs.map +1 -0
  202. package/dist/node/components/Table/types/PaginationEventNouns.d.cts +2 -0
  203. package/dist/node/components/Table/types/PaginationEventNouns.d.cts.map +1 -0
  204. package/dist/node/components/Table/types/PaginationEventNouns.js +0 -16
  205. package/dist/node/components/Table/types/PaginationEventNouns.js.map +1 -1
  206. package/dist/node/components/Table/types/PayloadTableBodyProps.cjs +19 -0
  207. package/dist/node/components/Table/types/PayloadTableBodyProps.cjs.map +1 -0
  208. package/dist/node/components/Table/types/PayloadTableBodyProps.d.cts +15 -0
  209. package/dist/node/components/Table/types/PayloadTableBodyProps.d.cts.map +1 -0
  210. package/dist/node/components/Table/types/PayloadTableBodyProps.js +0 -16
  211. package/dist/node/components/Table/types/PayloadTableBodyProps.js.map +1 -1
  212. package/dist/node/components/Table/types/PayloadTableFooterProps.cjs +19 -0
  213. package/dist/node/components/Table/types/PayloadTableFooterProps.cjs.map +1 -0
  214. package/dist/node/components/Table/types/PayloadTableFooterProps.d.cts +13 -0
  215. package/dist/node/components/Table/types/PayloadTableFooterProps.d.cts.map +1 -0
  216. package/dist/node/components/Table/types/PayloadTableFooterProps.js +0 -16
  217. package/dist/node/components/Table/types/PayloadTableFooterProps.js.map +1 -1
  218. package/dist/node/components/Table/types/PayloadTableHeadProps.cjs +19 -0
  219. package/dist/node/components/Table/types/PayloadTableHeadProps.cjs.map +1 -0
  220. package/dist/node/components/Table/types/PayloadTableHeadProps.d.cts +6 -0
  221. package/dist/node/components/Table/types/PayloadTableHeadProps.d.cts.map +1 -0
  222. package/dist/node/components/Table/types/PayloadTableHeadProps.js +0 -16
  223. package/dist/node/components/Table/types/PayloadTableHeadProps.js.map +1 -1
  224. package/dist/node/components/Table/types/index.cjs +19 -0
  225. package/dist/node/components/Table/types/index.cjs.map +1 -0
  226. package/dist/node/components/Table/types/index.d.cts +5 -0
  227. package/dist/node/components/Table/types/index.d.cts.map +1 -0
  228. package/dist/node/components/Table/types/index.js +0 -28
  229. package/dist/node/components/Table/types/index.js.map +1 -1
  230. package/dist/node/components/index.cjs +610 -0
  231. package/dist/node/components/index.cjs.map +1 -0
  232. package/dist/node/components/index.d.cts +3 -0
  233. package/dist/node/components/index.d.cts.map +1 -0
  234. package/dist/node/components/index.js +593 -23
  235. package/dist/node/components/index.js.map +1 -1
  236. package/dist/node/index.cjs +610 -0
  237. package/dist/node/index.cjs.map +1 -0
  238. package/dist/node/index.d.cts +2 -0
  239. package/dist/node/index.d.cts.map +1 -0
  240. package/dist/node/index.js +593 -21
  241. package/dist/node/index.js.map +1 -1
  242. package/package.json +29 -29
  243. package/src/components/DynamicTable/DynamicTableRow.tsx +1 -1
  244. package/dist/browser/components/DynamicTable/DynamicTable.stories.js +0 -71
  245. package/dist/browser/components/DynamicTable/DynamicTable.stories.js.map +0 -1
  246. package/dist/browser/components/Table/FetchMoreTable.stories.js +0 -71
  247. package/dist/browser/components/Table/FetchMoreTable.stories.js.map +0 -1
  248. package/dist/browser/components/Table/Table.stories.js +0 -80
  249. package/dist/browser/components/Table/Table.stories.js.map +0 -1
  250. package/dist/node/components/DynamicTable/DynamicTable.stories.js +0 -91
  251. package/dist/node/components/DynamicTable/DynamicTable.stories.js.map +0 -1
  252. package/dist/node/components/DynamicTable/DynamicTable.stories.mjs +0 -71
  253. package/dist/node/components/DynamicTable/DynamicTable.stories.mjs.map +0 -1
  254. package/dist/node/components/DynamicTable/DynamicTableRow.mjs +0 -75
  255. package/dist/node/components/DynamicTable/DynamicTableRow.mjs.map +0 -1
  256. package/dist/node/components/DynamicTable/Table.mjs +0 -128
  257. package/dist/node/components/DynamicTable/Table.mjs.map +0 -1
  258. package/dist/node/components/DynamicTable/index.mjs +0 -4
  259. package/dist/node/components/DynamicTable/index.mjs.map +0 -1
  260. package/dist/node/components/Table/FetchMoreTable.stories.js +0 -95
  261. package/dist/node/components/Table/FetchMoreTable.stories.js.map +0 -1
  262. package/dist/node/components/Table/FetchMoreTable.stories.mjs +0 -71
  263. package/dist/node/components/Table/FetchMoreTable.stories.mjs.map +0 -1
  264. package/dist/node/components/Table/PayloadTableColumnConfig.mjs +0 -18
  265. package/dist/node/components/Table/Table.mjs +0 -101
  266. package/dist/node/components/Table/Table.mjs.map +0 -1
  267. package/dist/node/components/Table/Table.stories.js +0 -110
  268. package/dist/node/components/Table/Table.stories.js.map +0 -1
  269. package/dist/node/components/Table/Table.stories.mjs +0 -80
  270. package/dist/node/components/Table/Table.stories.mjs.map +0 -1
  271. package/dist/node/components/Table/TableBody.mjs +0 -53
  272. package/dist/node/components/Table/TableBody.mjs.map +0 -1
  273. package/dist/node/components/Table/TableFooter.mjs +0 -42
  274. package/dist/node/components/Table/TableFooter.mjs.map +0 -1
  275. package/dist/node/components/Table/TableHead.mjs +0 -14
  276. package/dist/node/components/Table/TableHead.mjs.map +0 -1
  277. package/dist/node/components/Table/TablePagination.mjs +0 -46
  278. package/dist/node/components/Table/TableRow.mjs +0 -71
  279. package/dist/node/components/Table/TableRow.mjs.map +0 -1
  280. package/dist/node/components/Table/TableRowNoData.mjs +0 -18
  281. package/dist/node/components/Table/index.mjs +0 -7
  282. package/dist/node/components/Table/index.mjs.map +0 -1
  283. package/dist/node/components/Table/types/PaginationEventNouns.mjs +0 -1
  284. package/dist/node/components/Table/types/PaginationEventNouns.mjs.map +0 -1
  285. package/dist/node/components/Table/types/PayloadTableBodyProps.mjs +0 -1
  286. package/dist/node/components/Table/types/PayloadTableBodyProps.mjs.map +0 -1
  287. package/dist/node/components/Table/types/PayloadTableFooterProps.mjs +0 -1
  288. package/dist/node/components/Table/types/PayloadTableFooterProps.mjs.map +0 -1
  289. package/dist/node/components/Table/types/PayloadTableHeadProps.mjs +0 -1
  290. package/dist/node/components/Table/types/PayloadTableHeadProps.mjs.map +0 -1
  291. package/dist/node/components/Table/types/index.mjs +0 -5
  292. package/dist/node/components/index.mjs +0 -3
  293. package/dist/node/components/index.mjs.map +0 -1
  294. package/dist/node/index.mjs +0 -2
  295. package/dist/node/index.mjs.map +0 -1
@@ -1,11 +1,259 @@
1
- import { jsx, jsxs } from "react/jsx-runtime";
1
+ // src/components/Table/Table.tsx
2
2
  import { TableEx } from "@xyo-network/react-table";
3
3
  import { forwardRef, useEffect, useMemo, useState } from "react";
4
- import { PayloadTableBody } from "./TableBody";
5
- import { PayloadTableFooter } from "./TableFooter";
6
- import { PayloadTableHead } from "./TableHead";
7
- import { TableRowNoData } from "./TableRowNoData";
8
- const PayloadTableWithRef = forwardRef(
4
+
5
+ // src/components/Table/TableBody.tsx
6
+ import { Alert, TableBody, Typography as Typography2 } from "@mui/material";
7
+ import { ThrownErrorBoundary } from "@xyo-network/react-error";
8
+ import { usePayloadHashes } from "@xyo-network/react-shared";
9
+
10
+ // src/components/Table/TableRow.tsx
11
+ import {
12
+ CheckCircleOutlineRounded as CheckCircleOutlineRoundedIcon,
13
+ ErrorOutlineRounded as ErrorOutlineRoundedIcon,
14
+ WarningAmberRounded as WarningAmberRoundedIcon
15
+ } from "@mui/icons-material";
16
+ import { alpha, TableCell, TableRow, Typography } from "@mui/material";
17
+ import { usePromise } from "@xylabs/react-promise";
18
+ import { useBreakpoint } from "@xylabs/react-shared";
19
+ import { PayloadValidator } from "@xyo-network/payload-validator";
20
+ import { useNetwork } from "@xyo-network/react-network";
21
+ import { HashTableCell, usePayloadHash } from "@xyo-network/react-shared";
22
+
23
+ // src/components/Table/PayloadTableColumnConfig.ts
24
+ var payloadColumnNames = {
25
+ hash: "Hash",
26
+ schema: "Schema",
27
+ valid: "Valid"
28
+ };
29
+ var payloadTableColumnConfigDefaults = () => {
30
+ const xs = ["hash", "schema", "valid"];
31
+ const sm = ["hash", "schema", "valid"];
32
+ const md = ["hash", "schema", "valid"];
33
+ const lg = ["hash", "schema", "valid"];
34
+ const xl = ["hash", "schema", "valid"];
35
+ return { lg, md, sm, xl, xs };
36
+ };
37
+
38
+ // src/components/Table/TableRow.tsx
39
+ import { Fragment, jsx, jsxs } from "react/jsx-runtime";
40
+ var PayloadTableRow = ({
41
+ archive,
42
+ columns = payloadTableColumnConfigDefaults(),
43
+ exploreDomain,
44
+ maxSchemaDepth,
45
+ network: networkProp,
46
+ payload,
47
+ ...props
48
+ }) => {
49
+ const breakPoint = useBreakpoint();
50
+ const payloadHash = usePayloadHash(payload);
51
+ const { network } = useNetwork();
52
+ const [errors = []] = usePromise(async () => payload ? await new PayloadValidator(payload).validate() : void 0, [payload]);
53
+ const isValid = errors.length === 0;
54
+ const hash = (props2) => /* @__PURE__ */ jsx(
55
+ HashTableCell,
56
+ {
57
+ archive,
58
+ width: "100%",
59
+ value: payloadHash,
60
+ dataType: "payload",
61
+ exploreDomain,
62
+ network: networkProp ?? network?.slug,
63
+ ...props2
64
+ },
65
+ "hash"
66
+ );
67
+ const reduceSchemaDepth = (schema2, maxSchemaDepth2) => {
68
+ if (maxSchemaDepth2) {
69
+ const parts = schema2?.split(".") ?? [];
70
+ const partsToRemove = parts.length - maxSchemaDepth2 > 0 ? parts.length - maxSchemaDepth2 : 0;
71
+ if (partsToRemove > 0) {
72
+ return /* @__PURE__ */ jsxs(Fragment, { children: [
73
+ /* @__PURE__ */ jsx(Fragment, { children: "\u2026" }),
74
+ `${parts.slice(partsToRemove).reduce((previousValue, part) => `${previousValue}.${part}`)}`
75
+ ] });
76
+ }
77
+ }
78
+ return schema2;
79
+ };
80
+ const schema = (props2) => /* @__PURE__ */ jsx(TableCell, { title: payload?.schema, align: "center", ...props2, children: /* @__PURE__ */ jsx(Typography, { fontFamily: "monospace", variant: "body2", noWrap: true, children: reduceSchemaDepth(payload?.schema, maxSchemaDepth) }) }, "payloads");
81
+ 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" }) : (
82
+ //to keep row height consistent when no data provided, may need fix later
83
+ /* @__PURE__ */ jsx(ErrorOutlineRoundedIcon, { sx: { color: alpha("#fff", 0) }, fontSize: "small" })
84
+ ) }, "valid");
85
+ const tableCells = {
86
+ hash,
87
+ schema,
88
+ valid
89
+ };
90
+ return breakPoint ? /* @__PURE__ */ jsx(TableRow, { style: { maxWidth: "100vw" }, ...props, children: columns[breakPoint]?.map((column) => {
91
+ return tableCells[column]({});
92
+ }) }) : null;
93
+ };
94
+
95
+ // src/components/Table/TableBody.tsx
96
+ import { jsx as jsx2, jsxs as jsxs2 } from "react/jsx-runtime";
97
+ var PayloadTableBody = ({
98
+ children,
99
+ exploreDomain,
100
+ payloads,
101
+ archive,
102
+ maxSchemaDepth,
103
+ onRowClick,
104
+ emptyRows,
105
+ noResults,
106
+ NoResultRowComponent,
107
+ ...props
108
+ }) => {
109
+ const payloadPairs = usePayloadHashes(payloads);
110
+ return /* @__PURE__ */ jsxs2(TableBody, { ...props, children: [
111
+ noResults && NoResultRowComponent ? /* @__PURE__ */ jsx2(NoResultRowComponent, {}) : null,
112
+ payloadPairs?.map(([payload, hash], index) => {
113
+ return /* @__PURE__ */ jsx2(
114
+ ThrownErrorBoundary,
115
+ {
116
+ boundaryName: "PayloadTableBody",
117
+ errorComponent: (e) => /* @__PURE__ */ jsxs2(Alert, { severity: "error", children: [
118
+ "Error Loading Payload: ",
119
+ /* @__PURE__ */ jsx2(Typography2, { fontWeight: "bold", children: e.message })
120
+ ] }),
121
+ children: /* @__PURE__ */ jsx2(
122
+ PayloadTableRow,
123
+ {
124
+ maxSchemaDepth,
125
+ archive,
126
+ onClick: onRowClick ? () => {
127
+ onRowClick(payload);
128
+ } : void 0,
129
+ exploreDomain,
130
+ payload
131
+ }
132
+ )
133
+ },
134
+ `${hash}-${index}`
135
+ );
136
+ }),
137
+ children,
138
+ (emptyRows ?? 0) > 0 && Array(emptyRows).fill(/* @__PURE__ */ jsx2(PayloadTableRow, {}))
139
+ ] });
140
+ };
141
+
142
+ // src/components/Table/TableFooter.tsx
143
+ import { styled, TablePagination, TableRow as TableRow2 } from "@mui/material";
144
+ import { TableFooterEx } from "@xyo-network/react-table";
145
+
146
+ // src/components/Table/TablePagination.tsx
147
+ import { FirstPage as FirstPageIcon, KeyboardArrowLeft, KeyboardArrowRight, LastPage as LastPageIcon } from "@mui/icons-material";
148
+ import { Box, CircularProgress, IconButton, useTheme } from "@mui/material";
149
+ import { useEvent } from "@xyo-network/react-event";
150
+ import { Fragment as Fragment2, jsx as jsx3, jsxs as jsxs3 } from "react/jsx-runtime";
151
+ function TablePaginationActions({ count, enableNextPage, loading, onPageChange, page, rowsPerPage }) {
152
+ const theme = useTheme();
153
+ const [paginationRef, paginationDispatch] = useEvent();
154
+ const handleFirstPageButtonClick = (event) => {
155
+ paginationDispatch("firstPage", "click", "true");
156
+ onPageChange(event, 0);
157
+ };
158
+ const handleBackButtonClick = (event) => {
159
+ paginationDispatch("previousPage", "click", (page - 1)?.toString());
160
+ onPageChange(event, page - 1);
161
+ };
162
+ const handleNextButtonClick = (event) => {
163
+ paginationDispatch("nextPage", "click", (page + 1)?.toString());
164
+ onPageChange(event, page + 1);
165
+ };
166
+ const handleLastPageButtonClick = (event) => {
167
+ paginationDispatch("lastPage", "click", "true");
168
+ onPageChange(event, Math.max(0, Math.ceil(count / rowsPerPage) - 1));
169
+ };
170
+ return /* @__PURE__ */ jsxs3(Fragment2, { children: [
171
+ loading ? /* @__PURE__ */ jsx3(CircularProgress, { size: "small", sx: { height: theme.spacing(2), position: "absolute", width: theme.spacing(2) } }) : null,
172
+ /* @__PURE__ */ jsxs3(Box, { sx: { flexShrink: 0, ml: 2.5 }, children: [
173
+ /* @__PURE__ */ jsx3(IconButton, { onClick: handleFirstPageButtonClick, disabled: page === 0, "aria-label": "first page", children: theme.direction === "rtl" ? /* @__PURE__ */ jsx3(LastPageIcon, {}) : /* @__PURE__ */ jsx3(FirstPageIcon, {}) }),
174
+ /* @__PURE__ */ jsx3(IconButton, { ref: paginationRef, onClick: handleBackButtonClick, disabled: page === 0, "aria-label": "previous page", children: theme.direction === "rtl" ? /* @__PURE__ */ jsx3(KeyboardArrowRight, {}) : /* @__PURE__ */ jsx3(KeyboardArrowLeft, {}) }),
175
+ /* @__PURE__ */ jsx3(
176
+ IconButton,
177
+ {
178
+ ref: paginationRef,
179
+ onClick: handleNextButtonClick,
180
+ disabled: !enableNextPage && page >= Math.ceil(count / rowsPerPage) - 1,
181
+ "aria-label": "next page",
182
+ children: theme.direction === "rtl" ? /* @__PURE__ */ jsx3(KeyboardArrowLeft, {}) : /* @__PURE__ */ jsx3(KeyboardArrowRight, {})
183
+ }
184
+ ),
185
+ /* @__PURE__ */ jsx3(IconButton, { onClick: handleLastPageButtonClick, disabled: page >= Math.ceil(count / rowsPerPage) - 1, "aria-label": "last page", children: theme.direction === "rtl" ? /* @__PURE__ */ jsx3(FirstPageIcon, {}) : /* @__PURE__ */ jsx3(LastPageIcon, {}) })
186
+ ] })
187
+ ] });
188
+ }
189
+
190
+ // src/components/Table/TableFooter.tsx
191
+ import { jsx as jsx4 } from "react/jsx-runtime";
192
+ var PayloadTableFooter = ({
193
+ count,
194
+ variant,
195
+ page,
196
+ rowsPerPage,
197
+ handleChangePage = () => void 0,
198
+ handleChangeRowsPerPage = () => void 0,
199
+ fetchMorePayloads,
200
+ loading
201
+ }) => /* @__PURE__ */ jsx4(TableFooterEx, { variant, children: /* @__PURE__ */ jsx4(TableRow2, { children: /* @__PURE__ */ jsx4(
202
+ StyledTablePagination,
203
+ {
204
+ rowsPerPageOptions: [5, 10, 25, { label: "All", value: -1 }],
205
+ count: count ?? 0,
206
+ rowsPerPage: rowsPerPage ?? 10,
207
+ page: page ?? 0,
208
+ SelectProps: {
209
+ inputProps: {
210
+ "aria-label": "rows per page"
211
+ },
212
+ native: true
213
+ },
214
+ onPageChange: handleChangePage,
215
+ onRowsPerPageChange: handleChangeRowsPerPage,
216
+ ActionsComponent: (props) => /* @__PURE__ */ jsx4(TablePaginationActions, { enableNextPage: !!fetchMorePayloads, loading, ...props })
217
+ }
218
+ ) }) });
219
+ var StyledTablePagination = styled(TablePagination)(({ theme }) => ({
220
+ "& > .MuiToolbar-root": {
221
+ paddingLeft: theme.spacing(1)
222
+ },
223
+ borderTop: "1px solid",
224
+ borderTopColor: theme.palette.divider
225
+ }));
226
+
227
+ // src/components/Table/TableHead.tsx
228
+ import { TableCell as TableCell2, TableHead, TableRow as TableRow3, Typography as Typography3 } from "@mui/material";
229
+ import { useBreakpoint as useBreakpoint2 } from "@xylabs/react-shared";
230
+ import { jsx as jsx5 } from "react/jsx-runtime";
231
+ var PayloadTableHead = ({ columns = payloadTableColumnConfigDefaults(), ...props }) => {
232
+ const breakPoint = useBreakpoint2();
233
+ return /* @__PURE__ */ jsx5(TableHead, { ...props, children: /* @__PURE__ */ jsx5(TableRow3, { children: breakPoint && columns ? columns[breakPoint]?.map((column, index) => {
234
+ return /* @__PURE__ */ jsx5(TableCell2, { width: index === 0 ? "100%" : void 0, align: index === 0 ? "left" : "center", children: /* @__PURE__ */ jsx5(Typography3, { variant: "body2", noWrap: true, children: payloadColumnNames[column] }) }, index);
235
+ }) : null }) });
236
+ };
237
+
238
+ // src/components/Table/TableRowNoData.tsx
239
+ import { styled as styled2, TableCell as TableCell3, TableRow as TableRow4, Typography as Typography4 } from "@mui/material";
240
+ import { jsx as jsx6, jsxs as jsxs4 } from "react/jsx-runtime";
241
+ var TableRowNoData = ({ additionalCells, hideBorder = false, typographyProps, ...props }) => {
242
+ return /* @__PURE__ */ jsxs4(TableRow4, { ...props, children: [
243
+ /* @__PURE__ */ jsx6(StyledTableCell, { hideBorder, children: /* @__PURE__ */ jsx6(Typography4, { variant: "body2", ...typographyProps, children: "No Data To Display..." }) }),
244
+ additionalCells ? Array(additionalCells).fill(void 0).map((_fill, index) => /* @__PURE__ */ jsx6(StyledTableCell, { hideBorder }, index)) : null
245
+ ] });
246
+ };
247
+ var StyledTableCell = styled2(TableCell3, {
248
+ name: "StyledTableCell",
249
+ shouldForwardProp: (prop) => prop !== "hideBorder"
250
+ })(({ hideBorder }) => ({
251
+ ...hideBorder && { border: "none" }
252
+ }));
253
+
254
+ // src/components/Table/Table.tsx
255
+ import { jsx as jsx7, jsxs as jsxs5 } from "react/jsx-runtime";
256
+ var PayloadTableWithRef = forwardRef(
9
257
  ({
10
258
  exploreDomain,
11
259
  archive,
@@ -61,9 +309,9 @@ const PayloadTableWithRef = forwardRef(
61
309
  const noResults = useMemo(() => {
62
310
  return !loading && (!visiblePayloads || visiblePayloads.length === 0);
63
311
  }, [loading, visiblePayloads]);
64
- return /* @__PURE__ */ jsxs(TableEx, { variant, ref, ...props, children: [
65
- /* @__PURE__ */ jsx(PayloadTableHeadComponent, { columns }),
66
- /* @__PURE__ */ jsx(
312
+ return /* @__PURE__ */ jsxs5(TableEx, { variant, ref, ...props, children: [
313
+ /* @__PURE__ */ jsx7(PayloadTableHeadComponent, { columns }),
314
+ /* @__PURE__ */ jsx7(
67
315
  PayloadTableBodyComponent,
68
316
  {
69
317
  payloads: visiblePayloads,
@@ -76,7 +324,7 @@ const PayloadTableWithRef = forwardRef(
76
324
  NoResultRowComponent: TableRowNoData
77
325
  }
78
326
  ),
79
- /* @__PURE__ */ jsx(
327
+ /* @__PURE__ */ jsx7(
80
328
  PayloadTableFooterComponent,
81
329
  {
82
330
  count,
@@ -93,7 +341,7 @@ const PayloadTableWithRef = forwardRef(
93
341
  }
94
342
  );
95
343
  PayloadTableWithRef.displayName = "PayloadTable";
96
- const PayloadTable = PayloadTableWithRef;
344
+ var PayloadTable = PayloadTableWithRef;
97
345
  export {
98
346
  PayloadTable,
99
347
  PayloadTableWithRef
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/Table/Table.tsx"],"sourcesContent":["import { Payload } from '@xyo-network/payload-model'\nimport { TableEx, TableExProps } from '@xyo-network/react-table'\nimport { ComponentType, forwardRef, useEffect, useMemo, useState } from 'react'\n\nimport { PayloadTableColumnConfig } from './PayloadTableColumnConfig'\nimport { PayloadTableBody } from './TableBody'\nimport { PayloadTableFooter } from './TableFooter'\nimport { PayloadTableHead } from './TableHead'\nimport { TableRowNoData } from './TableRowNoData'\nimport { PayloadTableBodyProps, PayloadTableFooterProps, PayloadTableHeadProps } from './types'\n\nexport interface PayloadTableProps extends TableExProps {\n PayloadTableBodyComponent?: ComponentType<PayloadTableBodyProps>\n PayloadTableFooterComponent?: ComponentType<PayloadTableFooterProps>\n PayloadTableHeadComponent?: ComponentType<PayloadTableHeadProps>\n archive?: string\n columns?: PayloadTableColumnConfig\n /** Total number of payloads passed */\n count?: number\n exploreDomain?: string\n /** External trigger to fetch more payloads */\n fetchMorePayloads?: () => void\n loading?: boolean\n /** set number of schema parts to display starting from the end */\n maxSchemaDepth?: number\n onRowClick?: (value: Payload) => void\n payloads?: Payload[] | null\n rowsPerPage?: number\n}\n\nexport const PayloadTableWithRef = forwardRef<HTMLTableElement, PayloadTableProps>(\n (\n {\n exploreDomain,\n archive,\n onRowClick,\n fetchMorePayloads,\n rowsPerPage: rowsPerPageProp = 25,\n payloads,\n columns,\n PayloadTableHeadComponent = PayloadTableHead,\n PayloadTableBodyComponent = PayloadTableBody,\n PayloadTableFooterComponent = PayloadTableFooter,\n maxSchemaDepth,\n count = 0,\n loading = false,\n variant = 'scrollable',\n ...props\n },\n ref,\n ) => {\n const [page, setPage] = useState(0)\n const [rowsPerPage, setRowsPerPage] = useState(rowsPerPageProp)\n const [visiblePayloads, setVisiblePayloads] = useState<Payload[]>([])\n\n // Avoid a layout jump when reaching the last page with empty rows.\n const emptyRows = page > 0 ? Math.max(0, (1 + page) * rowsPerPage - count || 0) : 0\n\n useEffect(() => {\n setRowsPerPage(rowsPerPageProp)\n }, [rowsPerPageProp])\n\n // React to various prop changes to derive new visible payloads\n // count is needed to show initial payloads added async to the same payloads reference\n useEffect(() => {\n if (payloads) {\n setVisiblePayloads(payloads.slice(page * rowsPerPage, page * rowsPerPage + rowsPerPage))\n }\n }, [count, page, payloads, rowsPerPage])\n\n // If the payload reference changes, assume we have a new list and reset current page\n useEffect(() => {\n setPage(0)\n }, [payloads])\n\n const handleAdditionalPayloads = () => {\n if (fetchMorePayloads && payloads) {\n const buffer = rowsPerPage * 2\n const lastVisiblePayload = visiblePayloads?.at(-1)\n if (lastVisiblePayload) {\n const lastVisibleIndex = payloads?.indexOf(lastVisiblePayload)\n if (lastVisibleIndex !== undefined && payloads.length - (lastVisibleIndex + 1) <= buffer) {\n fetchMorePayloads()\n }\n }\n }\n }\n\n const handleChangePage = (_event: React.MouseEvent<HTMLButtonElement> | null, newPage: number) => {\n handleAdditionalPayloads()\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 const noResults = useMemo(() => {\n return !loading && (!visiblePayloads || visiblePayloads.length === 0)\n }, [loading, visiblePayloads])\n\n return (\n <TableEx variant={variant} ref={ref} {...props}>\n <PayloadTableHeadComponent columns={columns} />\n <PayloadTableBodyComponent\n payloads={visiblePayloads}\n exploreDomain={exploreDomain}\n archive={archive}\n maxSchemaDepth={maxSchemaDepth}\n onRowClick={onRowClick}\n emptyRows={emptyRows}\n noResults={noResults}\n NoResultRowComponent={TableRowNoData}\n />\n <PayloadTableFooterComponent\n count={count}\n variant={variant}\n rowsPerPage={rowsPerPage}\n handleChangePage={handleChangePage}\n handleChangeRowsPerPage={handleChangeRowsPerPage}\n fetchMorePayloads={fetchMorePayloads}\n loading={loading}\n page={page}\n />\n </TableEx>\n )\n },\n)\n\nPayloadTableWithRef.displayName = 'PayloadTable'\n\nexport const PayloadTable = PayloadTableWithRef\n"],"mappings":"AAuGM,SACE,KADF;AAtGN,SAAS,eAA6B;AACtC,SAAwB,YAAY,WAAW,SAAS,gBAAgB;AAGxE,SAAS,wBAAwB;AACjC,SAAS,0BAA0B;AACnC,SAAS,wBAAwB;AACjC,SAAS,sBAAsB;AAsBxB,MAAM,sBAAsB;AAAA,EACjC,CACE;AAAA,IACE;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,aAAa,kBAAkB;AAAA,IAC/B;AAAA,IACA;AAAA,IACA,4BAA4B;AAAA,IAC5B,4BAA4B;AAAA,IAC5B,8BAA8B;AAAA,IAC9B;AAAA,IACA,QAAQ;AAAA,IACR,UAAU;AAAA,IACV,UAAU;AAAA,IACV,GAAG;AAAA,EACL,GACA,QACG;AACH,UAAM,CAAC,MAAM,OAAO,IAAI,SAAS,CAAC;AAClC,UAAM,CAAC,aAAa,cAAc,IAAI,SAAS,eAAe;AAC9D,UAAM,CAAC,iBAAiB,kBAAkB,IAAI,SAAoB,CAAC,CAAC;AAGpE,UAAM,YAAY,OAAO,IAAI,KAAK,IAAI,IAAI,IAAI,QAAQ,cAAc,SAAS,CAAC,IAAI;AAElF,cAAU,MAAM;AACd,qBAAe,eAAe;AAAA,IAChC,GAAG,CAAC,eAAe,CAAC;AAIpB,cAAU,MAAM;AACd,UAAI,UAAU;AACZ,2BAAmB,SAAS,MAAM,OAAO,aAAa,OAAO,cAAc,WAAW,CAAC;AAAA,MACzF;AAAA,IACF,GAAG,CAAC,OAAO,MAAM,UAAU,WAAW,CAAC;AAGvC,cAAU,MAAM;AACd,cAAQ,CAAC;AAAA,IACX,GAAG,CAAC,QAAQ,CAAC;AAEb,UAAM,2BAA2B,MAAM;AACrC,UAAI,qBAAqB,UAAU;AACjC,cAAM,SAAS,cAAc;AAC7B,cAAM,qBAAqB,iBAAiB,GAAG,EAAE;AACjD,YAAI,oBAAoB;AACtB,gBAAM,mBAAmB,UAAU,QAAQ,kBAAkB;AAC7D,cAAI,qBAAqB,UAAa,SAAS,UAAU,mBAAmB,MAAM,QAAQ;AACxF,8BAAkB;AAAA,UACpB;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAEA,UAAM,mBAAmB,CAAC,QAAoD,YAAoB;AAChG,+BAAyB;AACzB,cAAQ,OAAO;AAAA,IACjB;AAEA,UAAM,0BAA0B,CAAC,UAAqE;AACpG,qBAAe,SAAS,MAAM,OAAO,OAAO,EAAE,CAAC;AAC/C,cAAQ,CAAC;AAAA,IACX;AAEA,UAAM,YAAY,QAAQ,MAAM;AAC9B,aAAO,CAAC,YAAY,CAAC,mBAAmB,gBAAgB,WAAW;AAAA,IACrE,GAAG,CAAC,SAAS,eAAe,CAAC;AAE7B,WACE,qBAAC,WAAQ,SAAkB,KAAW,GAAG,OACvC;AAAA,0BAAC,6BAA0B,SAAkB;AAAA,MAC7C;AAAA,QAAC;AAAA;AAAA,UACC,UAAU;AAAA,UACV;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA,sBAAsB;AAAA;AAAA,MACxB;AAAA,MACA;AAAA,QAAC;AAAA;AAAA,UACC;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA;AAAA,MACF;AAAA,OACF;AAAA,EAEJ;AACF;AAEA,oBAAoB,cAAc;AAE3B,MAAM,eAAe;","names":[]}
1
+ {"version":3,"sources":["../../../../src/components/Table/Table.tsx","../../../../src/components/Table/TableBody.tsx","../../../../src/components/Table/TableRow.tsx","../../../../src/components/Table/PayloadTableColumnConfig.ts","../../../../src/components/Table/TableFooter.tsx","../../../../src/components/Table/TablePagination.tsx","../../../../src/components/Table/TableHead.tsx","../../../../src/components/Table/TableRowNoData.tsx"],"sourcesContent":["import { Payload } from '@xyo-network/payload-model'\nimport { TableEx, TableExProps } from '@xyo-network/react-table'\nimport { ComponentType, forwardRef, useEffect, useMemo, useState } from 'react'\n\nimport { PayloadTableColumnConfig } from './PayloadTableColumnConfig'\nimport { PayloadTableBody } from './TableBody'\nimport { PayloadTableFooter } from './TableFooter'\nimport { PayloadTableHead } from './TableHead'\nimport { TableRowNoData } from './TableRowNoData'\nimport { PayloadTableBodyProps, PayloadTableFooterProps, PayloadTableHeadProps } from './types'\n\nexport interface PayloadTableProps extends TableExProps {\n PayloadTableBodyComponent?: ComponentType<PayloadTableBodyProps>\n PayloadTableFooterComponent?: ComponentType<PayloadTableFooterProps>\n PayloadTableHeadComponent?: ComponentType<PayloadTableHeadProps>\n archive?: string\n columns?: PayloadTableColumnConfig\n /** Total number of payloads passed */\n count?: number\n exploreDomain?: string\n /** External trigger to fetch more payloads */\n fetchMorePayloads?: () => void\n loading?: boolean\n /** set number of schema parts to display starting from the end */\n maxSchemaDepth?: number\n onRowClick?: (value: Payload) => void\n payloads?: Payload[] | null\n rowsPerPage?: number\n}\n\nexport const PayloadTableWithRef = forwardRef<HTMLTableElement, PayloadTableProps>(\n (\n {\n exploreDomain,\n archive,\n onRowClick,\n fetchMorePayloads,\n rowsPerPage: rowsPerPageProp = 25,\n payloads,\n columns,\n PayloadTableHeadComponent = PayloadTableHead,\n PayloadTableBodyComponent = PayloadTableBody,\n PayloadTableFooterComponent = PayloadTableFooter,\n maxSchemaDepth,\n count = 0,\n loading = false,\n variant = 'scrollable',\n ...props\n },\n ref,\n ) => {\n const [page, setPage] = useState(0)\n const [rowsPerPage, setRowsPerPage] = useState(rowsPerPageProp)\n const [visiblePayloads, setVisiblePayloads] = useState<Payload[]>([])\n\n // Avoid a layout jump when reaching the last page with empty rows.\n const emptyRows = page > 0 ? Math.max(0, (1 + page) * rowsPerPage - count || 0) : 0\n\n useEffect(() => {\n setRowsPerPage(rowsPerPageProp)\n }, [rowsPerPageProp])\n\n // React to various prop changes to derive new visible payloads\n // count is needed to show initial payloads added async to the same payloads reference\n useEffect(() => {\n if (payloads) {\n setVisiblePayloads(payloads.slice(page * rowsPerPage, page * rowsPerPage + rowsPerPage))\n }\n }, [count, page, payloads, rowsPerPage])\n\n // If the payload reference changes, assume we have a new list and reset current page\n useEffect(() => {\n setPage(0)\n }, [payloads])\n\n const handleAdditionalPayloads = () => {\n if (fetchMorePayloads && payloads) {\n const buffer = rowsPerPage * 2\n const lastVisiblePayload = visiblePayloads?.at(-1)\n if (lastVisiblePayload) {\n const lastVisibleIndex = payloads?.indexOf(lastVisiblePayload)\n if (lastVisibleIndex !== undefined && payloads.length - (lastVisibleIndex + 1) <= buffer) {\n fetchMorePayloads()\n }\n }\n }\n }\n\n const handleChangePage = (_event: React.MouseEvent<HTMLButtonElement> | null, newPage: number) => {\n handleAdditionalPayloads()\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 const noResults = useMemo(() => {\n return !loading && (!visiblePayloads || visiblePayloads.length === 0)\n }, [loading, visiblePayloads])\n\n return (\n <TableEx variant={variant} ref={ref} {...props}>\n <PayloadTableHeadComponent columns={columns} />\n <PayloadTableBodyComponent\n payloads={visiblePayloads}\n exploreDomain={exploreDomain}\n archive={archive}\n maxSchemaDepth={maxSchemaDepth}\n onRowClick={onRowClick}\n emptyRows={emptyRows}\n noResults={noResults}\n NoResultRowComponent={TableRowNoData}\n />\n <PayloadTableFooterComponent\n count={count}\n variant={variant}\n rowsPerPage={rowsPerPage}\n handleChangePage={handleChangePage}\n handleChangeRowsPerPage={handleChangeRowsPerPage}\n fetchMorePayloads={fetchMorePayloads}\n loading={loading}\n page={page}\n />\n </TableEx>\n )\n },\n)\n\nPayloadTableWithRef.displayName = 'PayloadTable'\n\nexport const PayloadTable = PayloadTableWithRef\n","import { Alert, TableBody, Typography } from '@mui/material'\nimport { ThrownErrorBoundary } from '@xyo-network/react-error'\nimport { usePayloadHashes } from '@xyo-network/react-shared'\n\nimport { PayloadTableRow } from './TableRow'\nimport { PayloadTableBodyProps } from './types'\n\nexport const PayloadTableBody: React.FC<PayloadTableBodyProps> = ({\n children,\n exploreDomain,\n payloads,\n archive,\n maxSchemaDepth,\n onRowClick,\n emptyRows,\n noResults,\n NoResultRowComponent,\n ...props\n}) => {\n const payloadPairs = usePayloadHashes(payloads)\n\n return (\n <TableBody {...props}>\n {noResults && NoResultRowComponent ? <NoResultRowComponent /> : null}\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 <PayloadTableRow\n maxSchemaDepth={maxSchemaDepth}\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) > 0 && Array(emptyRows).fill(<PayloadTableRow />)}\n </TableBody>\n )\n}\n","import {\n CheckCircleOutlineRounded as CheckCircleOutlineRoundedIcon,\n ErrorOutlineRounded as ErrorOutlineRoundedIcon,\n WarningAmberRounded as WarningAmberRoundedIcon,\n} from '@mui/icons-material'\nimport { alpha, TableCell, TableCellProps, TableRow, TableRowProps, Typography } from '@mui/material'\nimport { usePromise } from '@xylabs/react-promise'\nimport { useBreakpoint } from '@xylabs/react-shared'\nimport { Payload } from '@xyo-network/payload-model'\nimport { PayloadValidator } from '@xyo-network/payload-validator'\nimport { useNetwork } from '@xyo-network/react-network'\nimport { HashTableCell, usePayloadHash } from '@xyo-network/react-shared'\n\nimport { PayloadTableColumnConfig, payloadTableColumnConfigDefaults, PayloadTableColumnSlug } from './PayloadTableColumnConfig'\n\nexport interface PayloadTableRowProps extends TableRowProps {\n archive?: string\n columns?: PayloadTableColumnConfig\n exploreDomain?: string\n maxSchemaDepth?: number\n network?: string\n payload?: Payload\n}\n\nexport const PayloadTableRow: React.FC<PayloadTableRowProps> = ({\n archive,\n columns = payloadTableColumnConfigDefaults(),\n exploreDomain,\n maxSchemaDepth,\n network: networkProp,\n payload,\n ...props\n}) => {\n const breakPoint = useBreakpoint()\n const payloadHash = usePayloadHash(payload)\n const { network } = useNetwork()\n const [errors = []] = usePromise(async () => (payload ? await new PayloadValidator(payload).validate() : undefined), [payload])\n const isValid = errors.length === 0\n\n const hash: React.FC<TableCellProps> = (props) => (\n <HashTableCell\n key=\"hash\"\n archive={archive}\n width=\"100%\"\n value={payloadHash}\n dataType=\"payload\"\n exploreDomain={exploreDomain}\n network={networkProp ?? network?.slug}\n {...props}\n />\n )\n\n const reduceSchemaDepth = (schema?: string, maxSchemaDepth?: number) => {\n if (maxSchemaDepth) {\n const parts = schema?.split('.') ?? []\n const partsToRemove = parts.length - maxSchemaDepth > 0 ? parts.length - maxSchemaDepth : 0\n if (partsToRemove > 0) {\n return (\n <>\n <>&#x2026;</>\n {`${parts.slice(partsToRemove).reduce((previousValue, part) => `${previousValue}.${part}`)}`}\n </>\n )\n }\n }\n return schema\n }\n\n const schema: React.FC<TableCellProps> = (props) => (\n <TableCell title={payload?.schema} key=\"payloads\" align=\"center\" {...props}>\n <Typography fontFamily=\"monospace\" variant=\"body2\" noWrap>\n {reduceSchemaDepth(payload?.schema, maxSchemaDepth)}\n </Typography>\n </TableCell>\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 //to keep row height consistent when no data provided, may need fix later\n <ErrorOutlineRoundedIcon sx={{ color: alpha('#fff', 0) }} fontSize=\"small\" />\n )}\n </TableCell>\n )\n\n const tableCells: Record<PayloadTableColumnSlug, React.FC<TableCellProps>> = {\n hash,\n schema,\n valid,\n }\n\n return breakPoint ? (\n <TableRow style={{ maxWidth: '100vw' }} {...props}>\n {columns[breakPoint]?.map((column) => {\n return tableCells[column]({})\n })}\n </TableRow>\n ) : null\n}\n","export type PayloadTableColumnSlug = 'hash' | 'schema' | 'valid'\n\nexport interface PayloadTableColumnConfig<T = PayloadTableColumnSlug> {\n xs?: T[]\n // eslint-disable-next-line @typescript-eslint/member-ordering\n sm?: T[]\n // eslint-disable-next-line @typescript-eslint/member-ordering\n md?: T[]\n // eslint-disable-next-line @typescript-eslint/member-ordering\n lg?: T[]\n xl?: T[]\n}\n\nexport const payloadColumnNames: Record<PayloadTableColumnSlug, string> = {\n hash: 'Hash',\n schema: 'Schema',\n valid: 'Valid',\n}\n\nexport const payloadTableColumnConfigDefaults = (): PayloadTableColumnConfig => {\n const xs: PayloadTableColumnSlug[] = ['hash', 'schema', 'valid']\n const sm: PayloadTableColumnSlug[] = ['hash', 'schema', 'valid']\n const md: PayloadTableColumnSlug[] = ['hash', 'schema', 'valid']\n const lg: PayloadTableColumnSlug[] = ['hash', 'schema', 'valid']\n const xl: PayloadTableColumnSlug[] = ['hash', 'schema', 'valid']\n return { lg, md, sm, xl, xs }\n}\n","import { styled, TablePagination, TableRow } from '@mui/material'\nimport { TableFooterEx } from '@xyo-network/react-table'\n\nimport { TablePaginationActions } from './TablePagination'\nimport { PayloadTableFooterProps } from './types'\n\nexport const PayloadTableFooter: React.FC<PayloadTableFooterProps> = ({\n count,\n variant,\n page,\n rowsPerPage,\n handleChangePage = () => undefined,\n handleChangeRowsPerPage = () => undefined,\n fetchMorePayloads,\n loading,\n}) => (\n <TableFooterEx variant={variant}>\n <TableRow>\n <StyledTablePagination\n rowsPerPageOptions={[5, 10, 25, { label: 'All', value: -1 }]}\n count={count ?? 0}\n rowsPerPage={rowsPerPage ?? 10}\n page={page ?? 0}\n SelectProps={{\n inputProps: {\n 'aria-label': 'rows per page',\n },\n native: true,\n }}\n onPageChange={handleChangePage}\n onRowsPerPageChange={handleChangeRowsPerPage}\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n ActionsComponent={(props: any) => <TablePaginationActions enableNextPage={!!fetchMorePayloads} loading={loading} {...props} />}\n />\n </TableRow>\n </TableFooterEx>\n)\n\nconst StyledTablePagination = styled(TablePagination)(({ theme }) => ({\n '& > .MuiToolbar-root': {\n paddingLeft: theme.spacing(1),\n },\n borderTop: '1px solid',\n borderTopColor: theme.palette.divider,\n}))\n","import { FirstPage as FirstPageIcon, KeyboardArrowLeft, KeyboardArrowRight, LastPage as LastPageIcon } from '@mui/icons-material'\nimport { Box, CircularProgress, IconButton, useTheme } from '@mui/material'\nimport { useEvent } from '@xyo-network/react-event'\n\nimport { PaginationNouns } from './types'\n\nexport interface TablePaginationActionsProps {\n count: number\n enableNextPage?: boolean\n loading?: boolean\n onPageChange: (event: React.MouseEvent<HTMLButtonElement>, newPage: number) => void\n page: number\n rowsPerPage: number\n}\n\nexport function TablePaginationActions({ count, enableNextPage, loading, onPageChange, page, rowsPerPage }: TablePaginationActionsProps) {\n const theme = useTheme()\n const [paginationRef, paginationDispatch] = useEvent<HTMLButtonElement, PaginationNouns>()\n\n const handleFirstPageButtonClick = (event: React.MouseEvent<HTMLButtonElement>) => {\n paginationDispatch('firstPage', 'click', 'true')\n onPageChange(event, 0)\n }\n\n const handleBackButtonClick = (event: React.MouseEvent<HTMLButtonElement>) => {\n paginationDispatch('previousPage', 'click', (page - 1)?.toString())\n onPageChange(event, page - 1)\n }\n\n const handleNextButtonClick = (event: React.MouseEvent<HTMLButtonElement>) => {\n paginationDispatch('nextPage', 'click', (page + 1)?.toString())\n onPageChange(event, page + 1)\n }\n\n const handleLastPageButtonClick = (event: React.MouseEvent<HTMLButtonElement>) => {\n paginationDispatch('lastPage', 'click', 'true')\n onPageChange(event, Math.max(0, Math.ceil(count / rowsPerPage) - 1))\n }\n\n return (\n <>\n {loading ? <CircularProgress size={'small'} sx={{ height: theme.spacing(2), position: 'absolute', width: theme.spacing(2) }} /> : null}\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 ref={paginationRef} onClick={handleBackButtonClick} disabled={page === 0} aria-label=\"previous page\">\n {theme.direction === 'rtl' ? <KeyboardArrowRight /> : <KeyboardArrowLeft />}\n </IconButton>\n <IconButton\n ref={paginationRef}\n onClick={handleNextButtonClick}\n disabled={!enableNextPage && page >= Math.ceil(count / rowsPerPage) - 1}\n aria-label=\"next page\"\n >\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}\n","import { TableCell, TableHead, TableRow, Typography } from '@mui/material'\nimport { useBreakpoint } from '@xylabs/react-shared'\n\nimport { payloadColumnNames, payloadTableColumnConfigDefaults } from './PayloadTableColumnConfig'\nimport { PayloadTableHeadProps } from './types'\n\nexport const PayloadTableHead: React.FC<PayloadTableHeadProps> = ({ columns = payloadTableColumnConfigDefaults(), ...props }) => {\n const breakPoint = useBreakpoint()\n return (\n <TableHead {...props}>\n <TableRow>\n {breakPoint && columns\n ? columns[breakPoint]?.map((column, index) => {\n return (\n <TableCell key={index} width={index === 0 ? '100%' : undefined} align={index === 0 ? 'left' : 'center'}>\n <Typography variant=\"body2\" noWrap>\n {payloadColumnNames[column]}\n </Typography>\n </TableCell>\n )\n })\n : null}\n </TableRow>\n </TableHead>\n )\n}\n","import { styled, TableCell, TableRow, TableRowProps, Typography, TypographyProps } from '@mui/material'\n\nexport interface TableRowNoDataProps extends TableRowProps {\n additionalCells?: number\n hideBorder?: boolean\n typographyProps?: TypographyProps\n}\n\nexport const TableRowNoData: React.FC<TableRowNoDataProps> = ({ additionalCells, hideBorder = false, typographyProps, ...props }) => {\n return (\n <TableRow {...props}>\n <StyledTableCell hideBorder={hideBorder}>\n <Typography variant=\"body2\" {...typographyProps}>\n No Data To Display...\n </Typography>\n </StyledTableCell>\n {additionalCells\n ? Array(additionalCells)\n .fill(undefined)\n .map((_fill, index) => <StyledTableCell key={index} hideBorder={hideBorder} />)\n : null}\n </TableRow>\n )\n}\n\ninterface StyledTableCellProps {\n hideBorder?: boolean\n}\n\nconst StyledTableCell = styled(TableCell, {\n name: 'StyledTableCell',\n shouldForwardProp: (prop: string) => prop !== 'hideBorder',\n})<StyledTableCellProps>(({ hideBorder }) => ({\n ...(hideBorder && { border: 'none' }),\n}))\n"],"mappings":"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","names":["Typography","props","schema","maxSchemaDepth","jsx","jsxs","Typography","TableRow","Fragment","jsx","jsxs","jsx","TableRow","TableCell","TableRow","Typography","useBreakpoint","jsx","useBreakpoint","TableRow","TableCell","Typography","styled","TableCell","TableRow","Typography","jsx","jsxs","jsx","jsxs"]}
@@ -0,0 +1,152 @@
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/Table/TableBody.tsx
21
+ var TableBody_exports = {};
22
+ __export(TableBody_exports, {
23
+ PayloadTableBody: () => PayloadTableBody
24
+ });
25
+ module.exports = __toCommonJS(TableBody_exports);
26
+ var import_material2 = require("@mui/material");
27
+ var import_react_error = require("@xyo-network/react-error");
28
+ var import_react_shared3 = require("@xyo-network/react-shared");
29
+
30
+ // src/components/Table/TableRow.tsx
31
+ var import_icons_material = require("@mui/icons-material");
32
+ var import_material = require("@mui/material");
33
+ var import_react_promise = require("@xylabs/react-promise");
34
+ var import_react_shared = require("@xylabs/react-shared");
35
+ var import_payload_validator = require("@xyo-network/payload-validator");
36
+ var import_react_network = require("@xyo-network/react-network");
37
+ var import_react_shared2 = require("@xyo-network/react-shared");
38
+
39
+ // src/components/Table/PayloadTableColumnConfig.ts
40
+ var payloadTableColumnConfigDefaults = () => {
41
+ const xs = ["hash", "schema", "valid"];
42
+ const sm = ["hash", "schema", "valid"];
43
+ const md = ["hash", "schema", "valid"];
44
+ const lg = ["hash", "schema", "valid"];
45
+ const xl = ["hash", "schema", "valid"];
46
+ return { lg, md, sm, xl, xs };
47
+ };
48
+
49
+ // src/components/Table/TableRow.tsx
50
+ var import_jsx_runtime = require("react/jsx-runtime");
51
+ var PayloadTableRow = ({
52
+ archive,
53
+ columns = payloadTableColumnConfigDefaults(),
54
+ exploreDomain,
55
+ maxSchemaDepth,
56
+ network: networkProp,
57
+ payload,
58
+ ...props
59
+ }) => {
60
+ const breakPoint = (0, import_react_shared.useBreakpoint)();
61
+ const payloadHash = (0, import_react_shared2.usePayloadHash)(payload);
62
+ const { network } = (0, import_react_network.useNetwork)();
63
+ const [errors = []] = (0, import_react_promise.usePromise)(async () => payload ? await new import_payload_validator.PayloadValidator(payload).validate() : void 0, [payload]);
64
+ const isValid = errors.length === 0;
65
+ const hash = (props2) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
66
+ import_react_shared2.HashTableCell,
67
+ {
68
+ archive,
69
+ width: "100%",
70
+ value: payloadHash,
71
+ dataType: "payload",
72
+ exploreDomain,
73
+ network: networkProp ?? network?.slug,
74
+ ...props2
75
+ },
76
+ "hash"
77
+ );
78
+ const reduceSchemaDepth = (schema2, maxSchemaDepth2) => {
79
+ if (maxSchemaDepth2) {
80
+ const parts = schema2?.split(".") ?? [];
81
+ const partsToRemove = parts.length - maxSchemaDepth2 > 0 ? parts.length - maxSchemaDepth2 : 0;
82
+ if (partsToRemove > 0) {
83
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, { children: [
84
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_jsx_runtime.Fragment, { children: "\u2026" }),
85
+ `${parts.slice(partsToRemove).reduce((previousValue, part) => `${previousValue}.${part}`)}`
86
+ ] });
87
+ }
88
+ }
89
+ return schema2;
90
+ };
91
+ const schema = (props2) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_material.TableCell, { title: payload?.schema, align: "center", ...props2, children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_material.Typography, { fontFamily: "monospace", variant: "body2", noWrap: true, children: reduceSchemaDepth(payload?.schema, maxSchemaDepth) }) }, "payloads");
92
+ 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" }) : (
93
+ //to keep row height consistent when no data provided, may need fix later
94
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_icons_material.ErrorOutlineRounded, { sx: { color: (0, import_material.alpha)("#fff", 0) }, fontSize: "small" })
95
+ ) }, "valid");
96
+ const tableCells = {
97
+ hash,
98
+ schema,
99
+ valid
100
+ };
101
+ return breakPoint ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_material.TableRow, { style: { maxWidth: "100vw" }, ...props, children: columns[breakPoint]?.map((column) => {
102
+ return tableCells[column]({});
103
+ }) }) : null;
104
+ };
105
+
106
+ // src/components/Table/TableBody.tsx
107
+ var import_jsx_runtime2 = require("react/jsx-runtime");
108
+ var PayloadTableBody = ({
109
+ children,
110
+ exploreDomain,
111
+ payloads,
112
+ archive,
113
+ maxSchemaDepth,
114
+ onRowClick,
115
+ emptyRows,
116
+ noResults,
117
+ NoResultRowComponent,
118
+ ...props
119
+ }) => {
120
+ const payloadPairs = (0, import_react_shared3.usePayloadHashes)(payloads);
121
+ return /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)(import_material2.TableBody, { ...props, children: [
122
+ noResults && NoResultRowComponent ? /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(NoResultRowComponent, {}) : null,
123
+ payloadPairs?.map(([payload, hash], index) => {
124
+ return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
125
+ import_react_error.ThrownErrorBoundary,
126
+ {
127
+ boundaryName: "PayloadTableBody",
128
+ errorComponent: (e) => /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)(import_material2.Alert, { severity: "error", children: [
129
+ "Error Loading Payload: ",
130
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(import_material2.Typography, { fontWeight: "bold", children: e.message })
131
+ ] }),
132
+ children: /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
133
+ PayloadTableRow,
134
+ {
135
+ maxSchemaDepth,
136
+ archive,
137
+ onClick: onRowClick ? () => {
138
+ onRowClick(payload);
139
+ } : void 0,
140
+ exploreDomain,
141
+ payload
142
+ }
143
+ )
144
+ },
145
+ `${hash}-${index}`
146
+ );
147
+ }),
148
+ children,
149
+ (emptyRows ?? 0) > 0 && Array(emptyRows).fill(/* @__PURE__ */ (0, import_jsx_runtime2.jsx)(PayloadTableRow, {}))
150
+ ] });
151
+ };
152
+ //# sourceMappingURL=TableBody.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/components/Table/TableBody.tsx","../../../../src/components/Table/TableRow.tsx","../../../../src/components/Table/PayloadTableColumnConfig.ts"],"sourcesContent":["import { Alert, TableBody, Typography } from '@mui/material'\nimport { ThrownErrorBoundary } from '@xyo-network/react-error'\nimport { usePayloadHashes } from '@xyo-network/react-shared'\n\nimport { PayloadTableRow } from './TableRow'\nimport { PayloadTableBodyProps } from './types'\n\nexport const PayloadTableBody: React.FC<PayloadTableBodyProps> = ({\n children,\n exploreDomain,\n payloads,\n archive,\n maxSchemaDepth,\n onRowClick,\n emptyRows,\n noResults,\n NoResultRowComponent,\n ...props\n}) => {\n const payloadPairs = usePayloadHashes(payloads)\n\n return (\n <TableBody {...props}>\n {noResults && NoResultRowComponent ? <NoResultRowComponent /> : null}\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 <PayloadTableRow\n maxSchemaDepth={maxSchemaDepth}\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) > 0 && Array(emptyRows).fill(<PayloadTableRow />)}\n </TableBody>\n )\n}\n","import {\n CheckCircleOutlineRounded as CheckCircleOutlineRoundedIcon,\n ErrorOutlineRounded as ErrorOutlineRoundedIcon,\n WarningAmberRounded as WarningAmberRoundedIcon,\n} from '@mui/icons-material'\nimport { alpha, TableCell, TableCellProps, TableRow, TableRowProps, Typography } from '@mui/material'\nimport { usePromise } from '@xylabs/react-promise'\nimport { useBreakpoint } from '@xylabs/react-shared'\nimport { Payload } from '@xyo-network/payload-model'\nimport { PayloadValidator } from '@xyo-network/payload-validator'\nimport { useNetwork } from '@xyo-network/react-network'\nimport { HashTableCell, usePayloadHash } from '@xyo-network/react-shared'\n\nimport { PayloadTableColumnConfig, payloadTableColumnConfigDefaults, PayloadTableColumnSlug } from './PayloadTableColumnConfig'\n\nexport interface PayloadTableRowProps extends TableRowProps {\n archive?: string\n columns?: PayloadTableColumnConfig\n exploreDomain?: string\n maxSchemaDepth?: number\n network?: string\n payload?: Payload\n}\n\nexport const PayloadTableRow: React.FC<PayloadTableRowProps> = ({\n archive,\n columns = payloadTableColumnConfigDefaults(),\n exploreDomain,\n maxSchemaDepth,\n network: networkProp,\n payload,\n ...props\n}) => {\n const breakPoint = useBreakpoint()\n const payloadHash = usePayloadHash(payload)\n const { network } = useNetwork()\n const [errors = []] = usePromise(async () => (payload ? await new PayloadValidator(payload).validate() : undefined), [payload])\n const isValid = errors.length === 0\n\n const hash: React.FC<TableCellProps> = (props) => (\n <HashTableCell\n key=\"hash\"\n archive={archive}\n width=\"100%\"\n value={payloadHash}\n dataType=\"payload\"\n exploreDomain={exploreDomain}\n network={networkProp ?? network?.slug}\n {...props}\n />\n )\n\n const reduceSchemaDepth = (schema?: string, maxSchemaDepth?: number) => {\n if (maxSchemaDepth) {\n const parts = schema?.split('.') ?? []\n const partsToRemove = parts.length - maxSchemaDepth > 0 ? parts.length - maxSchemaDepth : 0\n if (partsToRemove > 0) {\n return (\n <>\n <>&#x2026;</>\n {`${parts.slice(partsToRemove).reduce((previousValue, part) => `${previousValue}.${part}`)}`}\n </>\n )\n }\n }\n return schema\n }\n\n const schema: React.FC<TableCellProps> = (props) => (\n <TableCell title={payload?.schema} key=\"payloads\" align=\"center\" {...props}>\n <Typography fontFamily=\"monospace\" variant=\"body2\" noWrap>\n {reduceSchemaDepth(payload?.schema, maxSchemaDepth)}\n </Typography>\n </TableCell>\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 //to keep row height consistent when no data provided, may need fix later\n <ErrorOutlineRoundedIcon sx={{ color: alpha('#fff', 0) }} fontSize=\"small\" />\n )}\n </TableCell>\n )\n\n const tableCells: Record<PayloadTableColumnSlug, React.FC<TableCellProps>> = {\n hash,\n schema,\n valid,\n }\n\n return breakPoint ? (\n <TableRow style={{ maxWidth: '100vw' }} {...props}>\n {columns[breakPoint]?.map((column) => {\n return tableCells[column]({})\n })}\n </TableRow>\n ) : null\n}\n","export type PayloadTableColumnSlug = 'hash' | 'schema' | 'valid'\n\nexport interface PayloadTableColumnConfig<T = PayloadTableColumnSlug> {\n xs?: T[]\n // eslint-disable-next-line @typescript-eslint/member-ordering\n sm?: T[]\n // eslint-disable-next-line @typescript-eslint/member-ordering\n md?: T[]\n // eslint-disable-next-line @typescript-eslint/member-ordering\n lg?: T[]\n xl?: T[]\n}\n\nexport const payloadColumnNames: Record<PayloadTableColumnSlug, string> = {\n hash: 'Hash',\n schema: 'Schema',\n valid: 'Valid',\n}\n\nexport const payloadTableColumnConfigDefaults = (): PayloadTableColumnConfig => {\n const xs: PayloadTableColumnSlug[] = ['hash', 'schema', 'valid']\n const sm: PayloadTableColumnSlug[] = ['hash', 'schema', 'valid']\n const md: PayloadTableColumnSlug[] = ['hash', 'schema', 'valid']\n const lg: PayloadTableColumnSlug[] = ['hash', 'schema', 'valid']\n const xl: PayloadTableColumnSlug[] = ['hash', 'schema', 'valid']\n return { lg, md, sm, xl, xs }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAAAA,mBAA6C;AAC7C,yBAAoC;AACpC,IAAAC,uBAAiC;;;ACFjC,4BAIO;AACP,sBAAsF;AACtF,2BAA2B;AAC3B,0BAA8B;AAE9B,+BAAiC;AACjC,2BAA2B;AAC3B,IAAAC,uBAA8C;;;ACQvC,IAAM,mCAAmC,MAAgC;AAC9E,QAAM,KAA+B,CAAC,QAAQ,UAAU,OAAO;AAC/D,QAAM,KAA+B,CAAC,QAAQ,UAAU,OAAO;AAC/D,QAAM,KAA+B,CAAC,QAAQ,UAAU,OAAO;AAC/D,QAAM,KAA+B,CAAC,QAAQ,UAAU,OAAO;AAC/D,QAAM,KAA+B,CAAC,QAAQ,UAAU,OAAO;AAC/D,SAAO,EAAE,IAAI,IAAI,IAAI,IAAI,GAAG;AAC9B;;;ADcI;AAhBG,IAAM,kBAAkD,CAAC;AAAA,EAC9D;AAAA,EACA,UAAU,iCAAiC;AAAA,EAC3C;AAAA,EACA;AAAA,EACA,SAAS;AAAA,EACT;AAAA,EACA,GAAG;AACL,MAAM;AACJ,QAAM,iBAAa,mCAAc;AACjC,QAAM,kBAAc,qCAAe,OAAO;AAC1C,QAAM,EAAE,QAAQ,QAAI,iCAAW;AAC/B,QAAM,CAAC,SAAS,CAAC,CAAC,QAAI,iCAAW,YAAa,UAAU,MAAM,IAAI,0CAAiB,OAAO,EAAE,SAAS,IAAI,QAAY,CAAC,OAAO,CAAC;AAC9H,QAAM,UAAU,OAAO,WAAW;AAElC,QAAM,OAAiC,CAACC,WACtC;AAAA,IAAC;AAAA;AAAA,MAEC;AAAA,MACA,OAAM;AAAA,MACN,OAAO;AAAA,MACP,UAAS;AAAA,MACT;AAAA,MACA,SAAS,eAAe,SAAS;AAAA,MAChC,GAAGA;AAAA;AAAA,IAPA;AAAA,EAQN;AAGF,QAAM,oBAAoB,CAACC,SAAiBC,oBAA4B;AACtE,QAAIA,iBAAgB;AAClB,YAAM,QAAQD,SAAQ,MAAM,GAAG,KAAK,CAAC;AACrC,YAAM,gBAAgB,MAAM,SAASC,kBAAiB,IAAI,MAAM,SAASA,kBAAiB;AAC1F,UAAI,gBAAgB,GAAG;AACrB,eACE,4EACE;AAAA,qFAAE,oBAAQ;AAAA,UACT,GAAG,MAAM,MAAM,aAAa,EAAE,OAAO,CAAC,eAAe,SAAS,GAAG,aAAa,IAAI,IAAI,EAAE,CAAC;AAAA,WAC5F;AAAA,MAEJ;AAAA,IACF;AACA,WAAOD;AAAA,EACT;AAEA,QAAM,SAAmC,CAACD,WACxC,4CAAC,6BAAU,OAAO,SAAS,QAAuB,OAAM,UAAU,GAAGA,QACnE,sDAAC,8BAAW,YAAW,aAAY,SAAQ,SAAQ,QAAM,MACtD,4BAAkB,SAAS,QAAQ,cAAc,GACpD,KAHqC,UAIvC;AAGF,QAAM,QAAkC,CAACA,WACvC,4CAAC,6BAAsB,OAAM,UAAU,GAAGA,QACvC,sBAAY,UAAa,WAAW,SACnC,4CAAC,sBAAAG,qBAAA,EAAwB,UAAS,SAAQ,OAAM,WAAU,IACxD,YAAY,OACd,4CAAC,sBAAAC,2BAAA,EAA8B,UAAS,SAAQ,OAAM,WAAU,IAC9D,YAAY,QACd,4CAAC,sBAAAC,qBAAA,EAAwB,OAAM,SAAQ,UAAS,SAAQ;AAAA;AAAA,IAGxD,4CAAC,sBAAAA,qBAAA,EAAwB,IAAI,EAAE,WAAO,uBAAM,QAAQ,CAAC,EAAE,GAAG,UAAS,SAAQ;AAAA,OAThE,OAWf;AAGF,QAAM,aAAuE;AAAA,IAC3E;AAAA,IACA;AAAA,IACA;AAAA,EACF;AAEA,SAAO,aACL,4CAAC,4BAAS,OAAO,EAAE,UAAU,QAAQ,GAAI,GAAG,OACzC,kBAAQ,UAAU,GAAG,IAAI,CAAC,WAAW;AACpC,WAAO,WAAW,MAAM,EAAE,CAAC,CAAC;AAAA,EAC9B,CAAC,GACH,IACE;AACN;;;ADjF2C,IAAAC,sBAAA;AAhBpC,IAAM,mBAAoD,CAAC;AAAA,EAChE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,GAAG;AACL,MAAM;AACJ,QAAM,mBAAe,uCAAiB,QAAQ;AAE9C,SACE,8CAAC,8BAAW,GAAG,OACZ;AAAA,iBAAa,uBAAuB,6CAAC,wBAAqB,IAAK;AAAA,IAC/D,cAAc,IAAI,CAAC,CAAC,SAAS,IAAI,GAAG,UAAU;AAC7C,aACE;AAAA,QAAC;AAAA;AAAA,UACC,cAAa;AAAA,UAEb,gBAAgB,CAAC,MACf,8CAAC,0BAAM,UAAS,SAAQ;AAAA;AAAA,YACC,6CAAC,+BAAW,YAAW,QAAQ,YAAE,SAAQ;AAAA,aAClE;AAAA,UAGF;AAAA,YAAC;AAAA;AAAA,cACC;AAAA,cACA;AAAA,cACA,SACE,aACI,MAAM;AACJ,2BAAW,OAAO;AAAA,cACpB,IACA;AAAA,cAEN;AAAA,cACA;AAAA;AAAA,UACF;AAAA;AAAA,QAnBK,GAAG,IAAI,IAAI,KAAK;AAAA,MAoBvB;AAAA,IAEJ,CAAC;AAAA,IACA;AAAA,KACC,aAAa,KAAK,KAAK,MAAM,SAAS,EAAE,KAAK,6CAAC,mBAAgB,CAAE;AAAA,KACpE;AAEJ;","names":["import_material","import_react_shared","import_react_shared","props","schema","maxSchemaDepth","WarningAmberRoundedIcon","CheckCircleOutlineRoundedIcon","ErrorOutlineRoundedIcon","import_jsx_runtime"]}
@@ -0,0 +1,4 @@
1
+ /// <reference types="react" />
2
+ import { PayloadTableBodyProps } from './types';
3
+ export declare const PayloadTableBody: React.FC<PayloadTableBodyProps>;
4
+ //# sourceMappingURL=TableBody.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TableBody.d.ts","sourceRoot":"","sources":["../../../../src/components/Table/TableBody.tsx"],"names":[],"mappings":";AAKA,OAAO,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAA;AAE/C,eAAO,MAAM,gBAAgB,EAAE,KAAK,CAAC,EAAE,CAAC,qBAAqB,CAgD5D,CAAA"}