@xyo-network/react-payload-details 2.64.0-rc.7 → 2.64.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 (131) hide show
  1. package/dist/browser/components/Details/DataDetails.cjs +106 -0
  2. package/dist/browser/components/Details/DataDetails.cjs.map +1 -0
  3. package/dist/browser/components/Details/DataDetails.d.cts +11 -0
  4. package/dist/browser/components/Details/DataDetails.d.cts.map +1 -0
  5. package/dist/browser/components/Details/Details.cjs +196 -0
  6. package/dist/browser/components/Details/Details.cjs.map +1 -0
  7. package/dist/browser/components/Details/Details.d.cts +20 -0
  8. package/dist/browser/components/Details/Details.d.cts.map +1 -0
  9. package/dist/browser/components/Details/HashSourceDetails.cjs +47 -0
  10. package/dist/{node/components/Details/HashSourceDetails.mjs.map → browser/components/Details/HashSourceDetails.cjs.map} +1 -1
  11. package/dist/browser/components/Details/HashSourceDetails.d.cts +9 -0
  12. package/dist/browser/components/Details/HashSourceDetails.d.cts.map +1 -0
  13. package/dist/browser/components/Details/JsonDetails.cjs +66 -0
  14. package/dist/{node/components/Details/JsonDetails.mjs.map → browser/components/Details/JsonDetails.cjs.map} +1 -1
  15. package/dist/browser/components/Details/JsonDetails.d.cts +10 -0
  16. package/dist/browser/components/Details/JsonDetails.d.cts.map +1 -0
  17. package/dist/browser/components/Details/ValidationDetails/ValidationDetails.cjs +57 -0
  18. package/dist/{node/components/Details/ValidationDetails/ValidationDetails.mjs.map → browser/components/Details/ValidationDetails/ValidationDetails.cjs.map} +1 -1
  19. package/dist/browser/components/Details/ValidationDetails/ValidationDetails.d.cts +4 -0
  20. package/dist/browser/components/Details/ValidationDetails/ValidationDetails.d.cts.map +1 -0
  21. package/dist/browser/components/Details/ValidationDetails/ValidationDetailsProps.cjs +19 -0
  22. package/dist/browser/components/Details/ValidationDetails/ValidationDetailsProps.cjs.map +1 -0
  23. package/dist/browser/components/Details/ValidationDetails/ValidationDetailsProps.d.cts +7 -0
  24. package/dist/browser/components/Details/ValidationDetails/ValidationDetailsProps.d.cts.map +1 -0
  25. package/dist/browser/components/Details/ValidationDetails/index.cjs +59 -0
  26. package/dist/browser/components/Details/ValidationDetails/index.cjs.map +1 -0
  27. package/dist/browser/components/Details/ValidationDetails/index.d.cts +3 -0
  28. package/dist/browser/components/Details/ValidationDetails/index.d.cts.map +1 -0
  29. package/dist/browser/components/Details/index.cjs +201 -0
  30. package/dist/browser/components/Details/index.cjs.map +1 -0
  31. package/dist/browser/components/Details/index.d.cts +5 -0
  32. package/dist/browser/components/Details/index.d.cts.map +1 -0
  33. package/dist/browser/components/index.cjs +201 -0
  34. package/dist/browser/components/index.cjs.map +1 -0
  35. package/dist/browser/components/index.d.cts +2 -0
  36. package/dist/browser/components/index.d.cts.map +1 -0
  37. package/dist/browser/index.cjs +201 -0
  38. package/dist/browser/index.cjs.map +1 -0
  39. package/dist/browser/index.d.cts +2 -0
  40. package/dist/browser/index.d.cts.map +1 -0
  41. package/dist/docs.json +1333 -0
  42. package/dist/node/components/Details/DataDetails.cjs +110 -0
  43. package/dist/node/components/Details/DataDetails.cjs.map +1 -0
  44. package/dist/node/components/Details/DataDetails.d.cts +11 -0
  45. package/dist/node/components/Details/DataDetails.d.cts.map +1 -0
  46. package/dist/node/components/Details/DataDetails.js +50 -49
  47. package/dist/node/components/Details/DataDetails.js.map +1 -1
  48. package/dist/node/components/Details/Details.cjs +200 -0
  49. package/dist/node/components/Details/Details.cjs.map +1 -0
  50. package/dist/node/components/Details/Details.d.cts +20 -0
  51. package/dist/node/components/Details/Details.d.cts.map +1 -0
  52. package/dist/node/components/Details/Details.js +157 -34
  53. package/dist/node/components/Details/Details.js.map +1 -1
  54. package/dist/node/components/Details/HashSourceDetails.cjs +51 -0
  55. package/dist/node/components/Details/HashSourceDetails.cjs.map +1 -0
  56. package/dist/node/components/Details/HashSourceDetails.d.cts +9 -0
  57. package/dist/node/components/Details/HashSourceDetails.d.cts.map +1 -0
  58. package/dist/node/components/Details/HashSourceDetails.js +20 -43
  59. package/dist/node/components/Details/HashSourceDetails.js.map +1 -1
  60. package/dist/node/components/Details/JsonDetails.cjs +70 -0
  61. package/dist/node/components/Details/JsonDetails.cjs.map +1 -0
  62. package/dist/node/components/Details/JsonDetails.d.cts +10 -0
  63. package/dist/node/components/Details/JsonDetails.d.cts.map +1 -0
  64. package/dist/node/components/Details/JsonDetails.js +13 -46
  65. package/dist/node/components/Details/JsonDetails.js.map +1 -1
  66. package/dist/node/components/Details/ValidationDetails/ValidationDetails.cjs +61 -0
  67. package/dist/node/components/Details/ValidationDetails/ValidationDetails.cjs.map +1 -0
  68. package/dist/node/components/Details/ValidationDetails/ValidationDetails.d.cts +4 -0
  69. package/dist/node/components/Details/ValidationDetails/ValidationDetails.d.cts.map +1 -0
  70. package/dist/node/components/Details/ValidationDetails/ValidationDetails.js +19 -42
  71. package/dist/node/components/Details/ValidationDetails/ValidationDetails.js.map +1 -1
  72. package/dist/node/components/Details/ValidationDetails/ValidationDetailsProps.cjs +19 -0
  73. package/dist/node/components/Details/ValidationDetails/ValidationDetailsProps.cjs.map +1 -0
  74. package/dist/node/components/Details/ValidationDetails/ValidationDetailsProps.d.cts +7 -0
  75. package/dist/node/components/Details/ValidationDetails/ValidationDetailsProps.d.cts.map +1 -0
  76. package/dist/node/components/Details/ValidationDetails/ValidationDetailsProps.js +0 -16
  77. package/dist/node/components/Details/ValidationDetails/ValidationDetailsProps.js.map +1 -1
  78. package/dist/node/components/Details/ValidationDetails/index.cjs +63 -0
  79. package/dist/node/components/Details/ValidationDetails/index.cjs.map +1 -0
  80. package/dist/node/components/Details/ValidationDetails/index.d.cts +3 -0
  81. package/dist/node/components/Details/ValidationDetails/index.d.cts.map +1 -0
  82. package/dist/node/components/Details/ValidationDetails/index.js +33 -22
  83. package/dist/node/components/Details/ValidationDetails/index.js.map +1 -1
  84. package/dist/node/components/Details/index.cjs +208 -0
  85. package/dist/node/components/Details/index.cjs.map +1 -0
  86. package/dist/node/components/Details/index.d.cts +5 -0
  87. package/dist/node/components/Details/index.d.cts.map +1 -0
  88. package/dist/node/components/Details/index.js +164 -25
  89. package/dist/node/components/Details/index.js.map +1 -1
  90. package/dist/node/components/index.cjs +208 -0
  91. package/dist/node/components/index.cjs.map +1 -0
  92. package/dist/node/components/index.d.cts +2 -0
  93. package/dist/node/components/index.d.cts.map +1 -0
  94. package/dist/node/components/index.js +164 -19
  95. package/dist/node/components/index.js.map +1 -1
  96. package/dist/node/index.cjs +208 -0
  97. package/dist/node/index.cjs.map +1 -0
  98. package/dist/node/index.d.cts +2 -0
  99. package/dist/node/index.d.cts.map +1 -0
  100. package/dist/node/index.js +164 -19
  101. package/dist/node/index.js.map +1 -1
  102. package/package.json +24 -24
  103. package/dist/browser/components/Details/Details.stories.js +0 -55
  104. package/dist/browser/components/Details/Details.stories.js.map +0 -1
  105. package/dist/browser/components/Details/ValidationDetails/ValidationDetails.stories.js +0 -49
  106. package/dist/browser/components/Details/ValidationDetails/ValidationDetails.stories.js.map +0 -1
  107. package/dist/node/components/Details/DataDetails.mjs +0 -60
  108. package/dist/node/components/Details/DataDetails.mjs.map +0 -1
  109. package/dist/node/components/Details/Details.mjs +0 -18
  110. package/dist/node/components/Details/Details.mjs.map +0 -1
  111. package/dist/node/components/Details/Details.stories.js +0 -86
  112. package/dist/node/components/Details/Details.stories.js.map +0 -1
  113. package/dist/node/components/Details/Details.stories.mjs +0 -55
  114. package/dist/node/components/Details/Details.stories.mjs.map +0 -1
  115. package/dist/node/components/Details/HashSourceDetails.mjs +0 -25
  116. package/dist/node/components/Details/JsonDetails.mjs +0 -34
  117. package/dist/node/components/Details/ValidationDetails/ValidationDetails.mjs +0 -35
  118. package/dist/node/components/Details/ValidationDetails/ValidationDetails.stories.js +0 -75
  119. package/dist/node/components/Details/ValidationDetails/ValidationDetails.stories.js.map +0 -1
  120. package/dist/node/components/Details/ValidationDetails/ValidationDetails.stories.mjs +0 -49
  121. package/dist/node/components/Details/ValidationDetails/ValidationDetails.stories.mjs.map +0 -1
  122. package/dist/node/components/Details/ValidationDetails/ValidationDetailsProps.mjs +0 -1
  123. package/dist/node/components/Details/ValidationDetails/ValidationDetailsProps.mjs.map +0 -1
  124. package/dist/node/components/Details/ValidationDetails/index.mjs +0 -3
  125. package/dist/node/components/Details/ValidationDetails/index.mjs.map +0 -1
  126. package/dist/node/components/Details/index.mjs +0 -5
  127. package/dist/node/components/Details/index.mjs.map +0 -1
  128. package/dist/node/components/index.mjs +0 -2
  129. package/dist/node/components/index.mjs.map +0 -1
  130. package/dist/node/index.mjs +0 -2
  131. package/dist/node/index.mjs.map +0 -1
@@ -0,0 +1,110 @@
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/Details/DataDetails.tsx
21
+ var DataDetails_exports = {};
22
+ __export(DataDetails_exports, {
23
+ PayloadDataDetails: () => PayloadDataDetails
24
+ });
25
+ module.exports = __toCommonJS(DataDetails_exports);
26
+ var import_icons_material2 = require("@mui/icons-material");
27
+ var import_material2 = require("@mui/material");
28
+ var import_react_button = require("@xylabs/react-button");
29
+ var import_hash2 = require("@xyo-network/hash");
30
+ var import_react_property = require("@xyo-network/react-property");
31
+ var import_react_shared = require("@xyo-network/react-shared");
32
+ var import_react = require("react");
33
+
34
+ // src/components/Details/HashSourceDetails.tsx
35
+ var import_icons_material = require("@mui/icons-material");
36
+ var import_material = require("@mui/material");
37
+ var import_react_flexbox = require("@xylabs/react-flexbox");
38
+ var import_react_quick_tip_button = require("@xylabs/react-quick-tip-button");
39
+ var import_hash = require("@xyo-network/hash");
40
+ var import_jsx_runtime = require("react/jsx-runtime");
41
+ var PayloadHashSourceDetails = ({ noTitle = false, payload, ...props }) => {
42
+ const theme = (0, import_material.useTheme)();
43
+ const payloadString = payload ? JSON.stringify(import_hash.PayloadHasher.hashFields(payload), null, 2) : "";
44
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_react_flexbox.FlexCol, { alignItems: "stretch", ...props, children: [
45
+ noTitle ? null : /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_react_flexbox.FlexRow, { margin: 1, justifyContent: "flex-start", children: [
46
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_material.Typography, { children: "Hash Source" }),
47
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_react_quick_tip_button.QuickTipButton, { title: "Hash Source", children: "The actual string used to generate the hash (SHA256)" })
48
+ ] }),
49
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_react_flexbox.FlexRow, { children: [
50
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_react_flexbox.FlexGrowRow, { background: true, border: 1, borderColor: theme.palette.divider, justifyContent: "start", children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_material.Typography, { padding: 2, fontFamily: "monospace", variant: "body1", sx: { overflowWrap: "break-word", wordBreak: "break-all" }, children: payloadString }) }),
51
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_material.IconButton, { children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_icons_material.ContentCopy, {}) })
52
+ ] }),
53
+ noTitle ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_react_flexbox.FlexRow, { margin: 1, justifyContent: "flex-start", children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_material.Typography, { variant: "body2", children: "The actual string used to generate the hash (SHA256). This can be used to validate the hash manually." }) }) : null
54
+ ] });
55
+ };
56
+
57
+ // src/components/Details/DataDetails.tsx
58
+ var import_jsx_runtime2 = require("react/jsx-runtime");
59
+ var PayloadDataDetails = ({ size, badge, payload, ...props }) => {
60
+ const payloadString = payload ? JSON.stringify(import_hash2.PayloadHasher.hashFields(payload), null, 2) : "";
61
+ const [viewSourceOpen, setViewSourceOpen] = (0, import_react.useState)(false);
62
+ const hash = (0, import_react_shared.usePayloadHash)(payload);
63
+ let elevation = 2;
64
+ if (props.paper) {
65
+ elevation += props.elevation ?? 0;
66
+ }
67
+ const actions = [
68
+ {
69
+ icon: /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(import_icons_material2.Visibility, {}),
70
+ name: "View",
71
+ onClick: () => setViewSourceOpen(true)
72
+ },
73
+ {
74
+ icon: /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(import_icons_material2.ContentCopy, {}),
75
+ name: "Copy",
76
+ onClick: async () => await navigator.clipboard.writeText(hash ?? "")
77
+ }
78
+ ];
79
+ const onCopy = async () => {
80
+ await navigator.clipboard.writeText(payloadString);
81
+ };
82
+ return /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)(import_jsx_runtime2.Fragment, { children: [
83
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
84
+ import_react_property.Property,
85
+ {
86
+ titleProps: { elevation },
87
+ badge,
88
+ size,
89
+ actions,
90
+ title: "Payload Hash",
91
+ value: hash ?? "<Unknown>",
92
+ tip: "This is the payload hash",
93
+ ...props
94
+ }
95
+ ),
96
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)(import_material2.Dialog, { open: viewSourceOpen, onClose: () => setViewSourceOpen(false), children: [
97
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(import_material2.DialogTitle, { children: "Hash Source" }),
98
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(import_material2.DialogContent, { children: /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(PayloadHashSourceDetails, { noTitle: true, payload }) }),
99
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)(import_material2.DialogActions, { children: [
100
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(import_react_button.ButtonEx, { color: "secondary", onClick: onCopy, children: "Copy" }),
101
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(import_react_button.ButtonEx, { color: "secondary", onClick: () => setViewSourceOpen(false), children: "Close" })
102
+ ] })
103
+ ] })
104
+ ] });
105
+ };
106
+ // Annotate the CommonJS export names for ESM import in node:
107
+ 0 && (module.exports = {
108
+ PayloadDataDetails
109
+ });
110
+ //# sourceMappingURL=DataDetails.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/components/Details/DataDetails.tsx","../../../../src/components/Details/HashSourceDetails.tsx"],"sourcesContent":["import { ContentCopy as ContentCopyIcon, Visibility as VisibilityIcon } from '@mui/icons-material'\nimport { Dialog, DialogActions, DialogContent, DialogTitle } from '@mui/material'\nimport { ButtonEx } from '@xylabs/react-button'\nimport { PayloadHasher } from '@xyo-network/hash'\nimport { Payload } from '@xyo-network/payload-model'\nimport { Property, PropertyAction, PropertyProps } from '@xyo-network/react-property'\nimport { SizeProp, usePayloadHash } from '@xyo-network/react-shared'\nimport { useState } from 'react'\n\nimport { PayloadHashSourceDetails } from './HashSourceDetails'\n\nexport type PayloadDataDetailsProps = PropertyProps & {\n badge?: boolean\n payload?: Payload\n size?: SizeProp\n}\n\nexport const PayloadDataDetails: React.FC<PayloadDataDetailsProps> = ({ size, badge, payload, ...props }) => {\n const payloadString = payload ? JSON.stringify(PayloadHasher.hashFields(payload), null, 2) : ''\n\n const [viewSourceOpen, setViewSourceOpen] = useState(false)\n const hash = usePayloadHash(payload)\n\n let elevation = 2\n if (props.paper) {\n elevation += props.elevation ?? 0\n }\n\n const actions: PropertyAction[] = [\n {\n icon: <VisibilityIcon />,\n name: 'View',\n onClick: () => setViewSourceOpen(true),\n },\n {\n icon: <ContentCopyIcon />,\n name: 'Copy',\n onClick: async () => await navigator.clipboard.writeText(hash ?? ''),\n },\n ]\n\n const onCopy = async () => {\n await navigator.clipboard.writeText(payloadString)\n }\n\n return (\n <>\n <Property\n titleProps={{ elevation }}\n badge={badge}\n size={size}\n actions={actions}\n title=\"Payload Hash\"\n value={hash ?? '<Unknown>'}\n tip=\"This is the payload hash\"\n {...props}\n />\n <Dialog open={viewSourceOpen} onClose={() => setViewSourceOpen(false)}>\n <DialogTitle>Hash Source</DialogTitle>\n <DialogContent>\n <PayloadHashSourceDetails noTitle payload={payload} />\n </DialogContent>\n <DialogActions>\n <ButtonEx color=\"secondary\" onClick={onCopy}>\n Copy\n </ButtonEx>\n <ButtonEx color=\"secondary\" onClick={() => setViewSourceOpen(false)}>\n Close\n </ButtonEx>\n </DialogActions>\n </Dialog>\n </>\n )\n}\n","import { ContentCopy as ContentCopyIcon } from '@mui/icons-material'\nimport { IconButton, Typography, useTheme } from '@mui/material'\nimport { FlexBoxProps, FlexCol, FlexGrowRow, FlexRow } from '@xylabs/react-flexbox'\nimport { QuickTipButton } from '@xylabs/react-quick-tip-button'\nimport { PayloadHasher } from '@xyo-network/hash'\nimport { Payload } from '@xyo-network/payload-model'\n\nexport interface PayloadHashSourceDetailsProps extends FlexBoxProps {\n noTitle?: boolean\n payload?: Payload\n}\n\nexport const PayloadHashSourceDetails: React.FC<PayloadHashSourceDetailsProps> = ({ noTitle = false, payload, ...props }) => {\n const theme = useTheme()\n const payloadString = payload ? JSON.stringify(PayloadHasher.hashFields(payload), null, 2) : ''\n\n return (\n <FlexCol alignItems=\"stretch\" {...props}>\n {noTitle ? null : (\n <FlexRow margin={1} justifyContent=\"flex-start\">\n <Typography>Hash Source</Typography>\n <QuickTipButton title=\"Hash Source\">The actual string used to generate the hash (SHA256)</QuickTipButton>\n </FlexRow>\n )}\n <FlexRow>\n <FlexGrowRow background border={1} borderColor={theme.palette.divider} justifyContent=\"start\">\n <Typography padding={2} fontFamily=\"monospace\" variant=\"body1\" sx={{ overflowWrap: 'break-word', wordBreak: 'break-all' }}>\n {payloadString}\n </Typography>\n </FlexGrowRow>\n <IconButton>\n <ContentCopyIcon />\n </IconButton>\n </FlexRow>\n {noTitle ? (\n <FlexRow margin={1} justifyContent=\"flex-start\">\n <Typography variant=\"body2\">\n The actual string used to generate the hash (SHA256). This can be used to validate the hash manually.\n </Typography>\n </FlexRow>\n ) : null}\n </FlexCol>\n )\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAAAA,yBAA6E;AAC7E,IAAAC,mBAAkE;AAClE,0BAAyB;AACzB,IAAAC,eAA8B;AAE9B,4BAAwD;AACxD,0BAAyC;AACzC,mBAAyB;;;ACPzB,4BAA+C;AAC/C,sBAAiD;AACjD,2BAA4D;AAC5D,oCAA+B;AAC/B,kBAA8B;AAetB;AAPD,IAAM,2BAAoE,CAAC,EAAE,UAAU,OAAO,SAAS,GAAG,MAAM,MAAM;AAC3H,QAAM,YAAQ,0BAAS;AACvB,QAAM,gBAAgB,UAAU,KAAK,UAAU,0BAAc,WAAW,OAAO,GAAG,MAAM,CAAC,IAAI;AAE7F,SACE,6CAAC,gCAAQ,YAAW,WAAW,GAAG,OAC/B;AAAA,cAAU,OACT,6CAAC,gCAAQ,QAAQ,GAAG,gBAAe,cACjC;AAAA,kDAAC,8BAAW,yBAAW;AAAA,MACvB,4CAAC,gDAAe,OAAM,eAAc,kEAAoD;AAAA,OAC1F;AAAA,IAEF,6CAAC,gCACC;AAAA,kDAAC,oCAAY,YAAU,MAAC,QAAQ,GAAG,aAAa,MAAM,QAAQ,SAAS,gBAAe,SACpF,sDAAC,8BAAW,SAAS,GAAG,YAAW,aAAY,SAAQ,SAAQ,IAAI,EAAE,cAAc,cAAc,WAAW,YAAY,GACrH,yBACH,GACF;AAAA,MACA,4CAAC,8BACC,sDAAC,sBAAAC,aAAA,EAAgB,GACnB;AAAA,OACF;AAAA,IACC,UACC,4CAAC,gCAAQ,QAAQ,GAAG,gBAAe,cACjC,sDAAC,8BAAW,SAAQ,SAAQ,mHAE5B,GACF,IACE;AAAA,KACN;AAEJ;;;ADbY,IAAAC,sBAAA;AAbL,IAAM,qBAAwD,CAAC,EAAE,MAAM,OAAO,SAAS,GAAG,MAAM,MAAM;AAC3G,QAAM,gBAAgB,UAAU,KAAK,UAAU,2BAAc,WAAW,OAAO,GAAG,MAAM,CAAC,IAAI;AAE7F,QAAM,CAAC,gBAAgB,iBAAiB,QAAI,uBAAS,KAAK;AAC1D,QAAM,WAAO,oCAAe,OAAO;AAEnC,MAAI,YAAY;AAChB,MAAI,MAAM,OAAO;AACf,iBAAa,MAAM,aAAa;AAAA,EAClC;AAEA,QAAM,UAA4B;AAAA,IAChC;AAAA,MACE,MAAM,6CAAC,uBAAAC,YAAA,EAAe;AAAA,MACtB,MAAM;AAAA,MACN,SAAS,MAAM,kBAAkB,IAAI;AAAA,IACvC;AAAA,IACA;AAAA,MACE,MAAM,6CAAC,uBAAAC,aAAA,EAAgB;AAAA,MACvB,MAAM;AAAA,MACN,SAAS,YAAY,MAAM,UAAU,UAAU,UAAU,QAAQ,EAAE;AAAA,IACrE;AAAA,EACF;AAEA,QAAM,SAAS,YAAY;AACzB,UAAM,UAAU,UAAU,UAAU,aAAa;AAAA,EACnD;AAEA,SACE,8EACE;AAAA;AAAA,MAAC;AAAA;AAAA,QACC,YAAY,EAAE,UAAU;AAAA,QACxB;AAAA,QACA;AAAA,QACA;AAAA,QACA,OAAM;AAAA,QACN,OAAO,QAAQ;AAAA,QACf,KAAI;AAAA,QACH,GAAG;AAAA;AAAA,IACN;AAAA,IACA,8CAAC,2BAAO,MAAM,gBAAgB,SAAS,MAAM,kBAAkB,KAAK,GAClE;AAAA,mDAAC,gCAAY,yBAAW;AAAA,MACxB,6CAAC,kCACC,uDAAC,4BAAyB,SAAO,MAAC,SAAkB,GACtD;AAAA,MACA,8CAAC,kCACC;AAAA,qDAAC,gCAAS,OAAM,aAAY,SAAS,QAAQ,kBAE7C;AAAA,QACA,6CAAC,gCAAS,OAAM,aAAY,SAAS,MAAM,kBAAkB,KAAK,GAAG,mBAErE;AAAA,SACF;AAAA,OACF;AAAA,KACF;AAEJ;","names":["import_icons_material","import_material","import_hash","ContentCopyIcon","import_jsx_runtime","VisibilityIcon","ContentCopyIcon"]}
@@ -0,0 +1,11 @@
1
+ /// <reference types="react" />
2
+ import { Payload } from '@xyo-network/payload-model';
3
+ import { PropertyProps } from '@xyo-network/react-property';
4
+ import { SizeProp } from '@xyo-network/react-shared';
5
+ export type PayloadDataDetailsProps = PropertyProps & {
6
+ badge?: boolean;
7
+ payload?: Payload;
8
+ size?: SizeProp;
9
+ };
10
+ export declare const PayloadDataDetails: React.FC<PayloadDataDetailsProps>;
11
+ //# sourceMappingURL=DataDetails.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DataDetails.d.ts","sourceRoot":"","sources":["../../../../src/components/Details/DataDetails.tsx"],"names":[],"mappings":";AAIA,OAAO,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAA;AACpD,OAAO,EAA4B,aAAa,EAAE,MAAM,6BAA6B,CAAA;AACrF,OAAO,EAAE,QAAQ,EAAkB,MAAM,2BAA2B,CAAA;AAKpE,MAAM,MAAM,uBAAuB,GAAG,aAAa,GAAG;IACpD,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,IAAI,CAAC,EAAE,QAAQ,CAAA;CAChB,CAAA;AAED,eAAO,MAAM,kBAAkB,EAAE,KAAK,CAAC,EAAE,CAAC,uBAAuB,CAwDhE,CAAA"}
@@ -1,51 +1,53 @@
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;
1
+ // src/components/Details/DataDetails.tsx
2
+ import { ContentCopy as ContentCopyIcon2, Visibility as VisibilityIcon } from "@mui/icons-material";
3
+ import { Dialog, DialogActions, DialogContent, DialogTitle } from "@mui/material";
4
+ import { ButtonEx } from "@xylabs/react-button";
5
+ import { PayloadHasher as PayloadHasher2 } from "@xyo-network/hash";
6
+ import { Property } from "@xyo-network/react-property";
7
+ import { usePayloadHash } from "@xyo-network/react-shared";
8
+ import { useState } from "react";
9
+
10
+ // src/components/Details/HashSourceDetails.tsx
11
+ import { ContentCopy as ContentCopyIcon } from "@mui/icons-material";
12
+ import { IconButton, Typography, useTheme } from "@mui/material";
13
+ import { FlexCol, FlexGrowRow, FlexRow } from "@xylabs/react-flexbox";
14
+ import { QuickTipButton } from "@xylabs/react-quick-tip-button";
15
+ import { PayloadHasher } from "@xyo-network/hash";
16
+ import { jsx, jsxs } from "react/jsx-runtime";
17
+ var PayloadHashSourceDetails = ({ noTitle = false, payload, ...props }) => {
18
+ const theme = useTheme();
19
+ const payloadString = payload ? JSON.stringify(PayloadHasher.hashFields(payload), null, 2) : "";
20
+ return /* @__PURE__ */ jsxs(FlexCol, { alignItems: "stretch", ...props, children: [
21
+ noTitle ? null : /* @__PURE__ */ jsxs(FlexRow, { margin: 1, justifyContent: "flex-start", children: [
22
+ /* @__PURE__ */ jsx(Typography, { children: "Hash Source" }),
23
+ /* @__PURE__ */ jsx(QuickTipButton, { title: "Hash Source", children: "The actual string used to generate the hash (SHA256)" })
24
+ ] }),
25
+ /* @__PURE__ */ jsxs(FlexRow, { children: [
26
+ /* @__PURE__ */ jsx(FlexGrowRow, { background: true, border: 1, borderColor: theme.palette.divider, justifyContent: "start", children: /* @__PURE__ */ jsx(Typography, { padding: 2, fontFamily: "monospace", variant: "body1", sx: { overflowWrap: "break-word", wordBreak: "break-all" }, children: payloadString }) }),
27
+ /* @__PURE__ */ jsx(IconButton, { children: /* @__PURE__ */ jsx(ContentCopyIcon, {}) })
28
+ ] }),
29
+ noTitle ? /* @__PURE__ */ jsx(FlexRow, { margin: 1, justifyContent: "flex-start", children: /* @__PURE__ */ jsx(Typography, { variant: "body2", children: "The actual string used to generate the hash (SHA256). This can be used to validate the hash manually." }) }) : null
30
+ ] });
17
31
  };
18
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
- var DataDetails_exports = {};
20
- __export(DataDetails_exports, {
21
- PayloadDataDetails: () => PayloadDataDetails
22
- });
23
- module.exports = __toCommonJS(DataDetails_exports);
24
- var import_jsx_runtime = require("react/jsx-runtime");
25
- var import_icons_material = require("@mui/icons-material");
26
- var import_material = require("@mui/material");
27
- var import_react_button = require("@xylabs/react-button");
28
- var import_hash = require("@xyo-network/hash");
29
- var import_react_property = require("@xyo-network/react-property");
30
- var import_react_shared = require("@xyo-network/react-shared");
31
- var import_react = require("react");
32
- var import_HashSourceDetails = require("./HashSourceDetails");
33
- const PayloadDataDetails = ({ size, badge, payload, ...props }) => {
34
- const payloadString = payload ? JSON.stringify(import_hash.PayloadHasher.hashFields(payload), null, 2) : "";
35
- const [viewSourceOpen, setViewSourceOpen] = (0, import_react.useState)(false);
36
- const hash = (0, import_react_shared.usePayloadHash)(payload);
32
+
33
+ // src/components/Details/DataDetails.tsx
34
+ import { Fragment, jsx as jsx2, jsxs as jsxs2 } from "react/jsx-runtime";
35
+ var PayloadDataDetails = ({ size, badge, payload, ...props }) => {
36
+ const payloadString = payload ? JSON.stringify(PayloadHasher2.hashFields(payload), null, 2) : "";
37
+ const [viewSourceOpen, setViewSourceOpen] = useState(false);
38
+ const hash = usePayloadHash(payload);
37
39
  let elevation = 2;
38
40
  if (props.paper) {
39
41
  elevation += props.elevation ?? 0;
40
42
  }
41
43
  const actions = [
42
44
  {
43
- icon: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_icons_material.Visibility, {}),
45
+ icon: /* @__PURE__ */ jsx2(VisibilityIcon, {}),
44
46
  name: "View",
45
47
  onClick: () => setViewSourceOpen(true)
46
48
  },
47
49
  {
48
- icon: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_icons_material.ContentCopy, {}),
50
+ icon: /* @__PURE__ */ jsx2(ContentCopyIcon2, {}),
49
51
  name: "Copy",
50
52
  onClick: async () => await navigator.clipboard.writeText(hash ?? "")
51
53
  }
@@ -53,9 +55,9 @@ const PayloadDataDetails = ({ size, badge, payload, ...props }) => {
53
55
  const onCopy = async () => {
54
56
  await navigator.clipboard.writeText(payloadString);
55
57
  };
56
- return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, { children: [
57
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
58
- import_react_property.Property,
58
+ return /* @__PURE__ */ jsxs2(Fragment, { children: [
59
+ /* @__PURE__ */ jsx2(
60
+ Property,
59
61
  {
60
62
  titleProps: { elevation },
61
63
  badge,
@@ -67,18 +69,17 @@ const PayloadDataDetails = ({ size, badge, payload, ...props }) => {
67
69
  ...props
68
70
  }
69
71
  ),
70
- /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_material.Dialog, { open: viewSourceOpen, onClose: () => setViewSourceOpen(false), children: [
71
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_material.DialogTitle, { children: "Hash Source" }),
72
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_material.DialogContent, { children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_HashSourceDetails.PayloadHashSourceDetails, { noTitle: true, payload }) }),
73
- /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_material.DialogActions, { children: [
74
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_react_button.ButtonEx, { color: "secondary", onClick: onCopy, children: "Copy" }),
75
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_react_button.ButtonEx, { color: "secondary", onClick: () => setViewSourceOpen(false), children: "Close" })
72
+ /* @__PURE__ */ jsxs2(Dialog, { open: viewSourceOpen, onClose: () => setViewSourceOpen(false), children: [
73
+ /* @__PURE__ */ jsx2(DialogTitle, { children: "Hash Source" }),
74
+ /* @__PURE__ */ jsx2(DialogContent, { children: /* @__PURE__ */ jsx2(PayloadHashSourceDetails, { noTitle: true, payload }) }),
75
+ /* @__PURE__ */ jsxs2(DialogActions, { children: [
76
+ /* @__PURE__ */ jsx2(ButtonEx, { color: "secondary", onClick: onCopy, children: "Copy" }),
77
+ /* @__PURE__ */ jsx2(ButtonEx, { color: "secondary", onClick: () => setViewSourceOpen(false), children: "Close" })
76
78
  ] })
77
79
  ] })
78
80
  ] });
79
81
  };
80
- // Annotate the CommonJS export names for ESM import in node:
81
- 0 && (module.exports = {
82
+ export {
82
83
  PayloadDataDetails
83
- });
84
+ };
84
85
  //# sourceMappingURL=DataDetails.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/Details/DataDetails.tsx"],"sourcesContent":["import { ContentCopy as ContentCopyIcon, Visibility as VisibilityIcon } from '@mui/icons-material'\nimport { Dialog, DialogActions, DialogContent, DialogTitle } from '@mui/material'\nimport { ButtonEx } from '@xylabs/react-button'\nimport { PayloadHasher } from '@xyo-network/hash'\nimport { Payload } from '@xyo-network/payload-model'\nimport { Property, PropertyAction, PropertyProps } from '@xyo-network/react-property'\nimport { SizeProp, usePayloadHash } from '@xyo-network/react-shared'\nimport { useState } from 'react'\n\nimport { PayloadHashSourceDetails } from './HashSourceDetails'\n\nexport type PayloadDataDetailsProps = PropertyProps & {\n badge?: boolean\n payload?: Payload\n size?: SizeProp\n}\n\nexport const PayloadDataDetails: React.FC<PayloadDataDetailsProps> = ({ size, badge, payload, ...props }) => {\n const payloadString = payload ? JSON.stringify(PayloadHasher.hashFields(payload), null, 2) : ''\n\n const [viewSourceOpen, setViewSourceOpen] = useState(false)\n const hash = usePayloadHash(payload)\n\n let elevation = 2\n if (props.paper) {\n elevation += props.elevation ?? 0\n }\n\n const actions: PropertyAction[] = [\n {\n icon: <VisibilityIcon />,\n name: 'View',\n onClick: () => setViewSourceOpen(true),\n },\n {\n icon: <ContentCopyIcon />,\n name: 'Copy',\n onClick: async () => await navigator.clipboard.writeText(hash ?? ''),\n },\n ]\n\n const onCopy = async () => {\n await navigator.clipboard.writeText(payloadString)\n }\n\n return (\n <>\n <Property\n titleProps={{ elevation }}\n badge={badge}\n size={size}\n actions={actions}\n title=\"Payload Hash\"\n value={hash ?? '<Unknown>'}\n tip=\"This is the payload hash\"\n {...props}\n />\n <Dialog open={viewSourceOpen} onClose={() => setViewSourceOpen(false)}>\n <DialogTitle>Hash Source</DialogTitle>\n <DialogContent>\n <PayloadHashSourceDetails noTitle payload={payload} />\n </DialogContent>\n <DialogActions>\n <ButtonEx color=\"secondary\" onClick={onCopy}>\n Copy\n </ButtonEx>\n <ButtonEx color=\"secondary\" onClick={() => setViewSourceOpen(false)}>\n Close\n </ButtonEx>\n </DialogActions>\n </Dialog>\n </>\n )\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AA8BY;AA9BZ,4BAA6E;AAC7E,sBAAkE;AAClE,0BAAyB;AACzB,kBAA8B;AAE9B,4BAAwD;AACxD,0BAAyC;AACzC,mBAAyB;AAEzB,+BAAyC;AAQlC,MAAM,qBAAwD,CAAC,EAAE,MAAM,OAAO,SAAS,GAAG,MAAM,MAAM;AAC3G,QAAM,gBAAgB,UAAU,KAAK,UAAU,0BAAc,WAAW,OAAO,GAAG,MAAM,CAAC,IAAI;AAE7F,QAAM,CAAC,gBAAgB,iBAAiB,QAAI,uBAAS,KAAK;AAC1D,QAAM,WAAO,oCAAe,OAAO;AAEnC,MAAI,YAAY;AAChB,MAAI,MAAM,OAAO;AACf,iBAAa,MAAM,aAAa;AAAA,EAClC;AAEA,QAAM,UAA4B;AAAA,IAChC;AAAA,MACE,MAAM,4CAAC,sBAAAA,YAAA,EAAe;AAAA,MACtB,MAAM;AAAA,MACN,SAAS,MAAM,kBAAkB,IAAI;AAAA,IACvC;AAAA,IACA;AAAA,MACE,MAAM,4CAAC,sBAAAC,aAAA,EAAgB;AAAA,MACvB,MAAM;AAAA,MACN,SAAS,YAAY,MAAM,UAAU,UAAU,UAAU,QAAQ,EAAE;AAAA,IACrE;AAAA,EACF;AAEA,QAAM,SAAS,YAAY;AACzB,UAAM,UAAU,UAAU,UAAU,aAAa;AAAA,EACnD;AAEA,SACE,4EACE;AAAA;AAAA,MAAC;AAAA;AAAA,QACC,YAAY,EAAE,UAAU;AAAA,QACxB;AAAA,QACA;AAAA,QACA;AAAA,QACA,OAAM;AAAA,QACN,OAAO,QAAQ;AAAA,QACf,KAAI;AAAA,QACH,GAAG;AAAA;AAAA,IACN;AAAA,IACA,6CAAC,0BAAO,MAAM,gBAAgB,SAAS,MAAM,kBAAkB,KAAK,GAClE;AAAA,kDAAC,+BAAY,yBAAW;AAAA,MACxB,4CAAC,iCACC,sDAAC,qDAAyB,SAAO,MAAC,SAAkB,GACtD;AAAA,MACA,6CAAC,iCACC;AAAA,oDAAC,gCAAS,OAAM,aAAY,SAAS,QAAQ,kBAE7C;AAAA,QACA,4CAAC,gCAAS,OAAM,aAAY,SAAS,MAAM,kBAAkB,KAAK,GAAG,mBAErE;AAAA,SACF;AAAA,OACF;AAAA,KACF;AAEJ;","names":["VisibilityIcon","ContentCopyIcon"]}
1
+ {"version":3,"sources":["../../../../src/components/Details/DataDetails.tsx","../../../../src/components/Details/HashSourceDetails.tsx"],"sourcesContent":["import { ContentCopy as ContentCopyIcon, Visibility as VisibilityIcon } from '@mui/icons-material'\nimport { Dialog, DialogActions, DialogContent, DialogTitle } from '@mui/material'\nimport { ButtonEx } from '@xylabs/react-button'\nimport { PayloadHasher } from '@xyo-network/hash'\nimport { Payload } from '@xyo-network/payload-model'\nimport { Property, PropertyAction, PropertyProps } from '@xyo-network/react-property'\nimport { SizeProp, usePayloadHash } from '@xyo-network/react-shared'\nimport { useState } from 'react'\n\nimport { PayloadHashSourceDetails } from './HashSourceDetails'\n\nexport type PayloadDataDetailsProps = PropertyProps & {\n badge?: boolean\n payload?: Payload\n size?: SizeProp\n}\n\nexport const PayloadDataDetails: React.FC<PayloadDataDetailsProps> = ({ size, badge, payload, ...props }) => {\n const payloadString = payload ? JSON.stringify(PayloadHasher.hashFields(payload), null, 2) : ''\n\n const [viewSourceOpen, setViewSourceOpen] = useState(false)\n const hash = usePayloadHash(payload)\n\n let elevation = 2\n if (props.paper) {\n elevation += props.elevation ?? 0\n }\n\n const actions: PropertyAction[] = [\n {\n icon: <VisibilityIcon />,\n name: 'View',\n onClick: () => setViewSourceOpen(true),\n },\n {\n icon: <ContentCopyIcon />,\n name: 'Copy',\n onClick: async () => await navigator.clipboard.writeText(hash ?? ''),\n },\n ]\n\n const onCopy = async () => {\n await navigator.clipboard.writeText(payloadString)\n }\n\n return (\n <>\n <Property\n titleProps={{ elevation }}\n badge={badge}\n size={size}\n actions={actions}\n title=\"Payload Hash\"\n value={hash ?? '<Unknown>'}\n tip=\"This is the payload hash\"\n {...props}\n />\n <Dialog open={viewSourceOpen} onClose={() => setViewSourceOpen(false)}>\n <DialogTitle>Hash Source</DialogTitle>\n <DialogContent>\n <PayloadHashSourceDetails noTitle payload={payload} />\n </DialogContent>\n <DialogActions>\n <ButtonEx color=\"secondary\" onClick={onCopy}>\n Copy\n </ButtonEx>\n <ButtonEx color=\"secondary\" onClick={() => setViewSourceOpen(false)}>\n Close\n </ButtonEx>\n </DialogActions>\n </Dialog>\n </>\n )\n}\n","import { ContentCopy as ContentCopyIcon } from '@mui/icons-material'\nimport { IconButton, Typography, useTheme } from '@mui/material'\nimport { FlexBoxProps, FlexCol, FlexGrowRow, FlexRow } from '@xylabs/react-flexbox'\nimport { QuickTipButton } from '@xylabs/react-quick-tip-button'\nimport { PayloadHasher } from '@xyo-network/hash'\nimport { Payload } from '@xyo-network/payload-model'\n\nexport interface PayloadHashSourceDetailsProps extends FlexBoxProps {\n noTitle?: boolean\n payload?: Payload\n}\n\nexport const PayloadHashSourceDetails: React.FC<PayloadHashSourceDetailsProps> = ({ noTitle = false, payload, ...props }) => {\n const theme = useTheme()\n const payloadString = payload ? JSON.stringify(PayloadHasher.hashFields(payload), null, 2) : ''\n\n return (\n <FlexCol alignItems=\"stretch\" {...props}>\n {noTitle ? null : (\n <FlexRow margin={1} justifyContent=\"flex-start\">\n <Typography>Hash Source</Typography>\n <QuickTipButton title=\"Hash Source\">The actual string used to generate the hash (SHA256)</QuickTipButton>\n </FlexRow>\n )}\n <FlexRow>\n <FlexGrowRow background border={1} borderColor={theme.palette.divider} justifyContent=\"start\">\n <Typography padding={2} fontFamily=\"monospace\" variant=\"body1\" sx={{ overflowWrap: 'break-word', wordBreak: 'break-all' }}>\n {payloadString}\n </Typography>\n </FlexGrowRow>\n <IconButton>\n <ContentCopyIcon />\n </IconButton>\n </FlexRow>\n {noTitle ? (\n <FlexRow margin={1} justifyContent=\"flex-start\">\n <Typography variant=\"body2\">\n The actual string used to generate the hash (SHA256). This can be used to validate the hash manually.\n </Typography>\n </FlexRow>\n ) : null}\n </FlexCol>\n )\n}\n"],"mappings":"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","names":["ContentCopyIcon","PayloadHasher","jsx","jsxs","PayloadHasher","ContentCopyIcon"]}
@@ -0,0 +1,200 @@
1
+ "use strict";
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __export = (target, all) => {
9
+ for (var name in all)
10
+ __defProp(target, name, { get: all[name], enumerable: true });
11
+ };
12
+ var __copyProps = (to, from, except, desc) => {
13
+ if (from && typeof from === "object" || typeof from === "function") {
14
+ for (let key of __getOwnPropNames(from))
15
+ if (!__hasOwnProp.call(to, key) && key !== except)
16
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
+ }
18
+ return to;
19
+ };
20
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
+ // If the importer is in node compatibility mode or this is not an ESM
22
+ // file that has been converted to a CommonJS file using a Babel-
23
+ // compatible transform (i.e. "__esModule" has not been set), then set
24
+ // "default" to the CommonJS "module.exports" for node compatibility.
25
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
+ mod
27
+ ));
28
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
+
30
+ // src/components/Details/Details.tsx
31
+ var Details_exports = {};
32
+ __export(Details_exports, {
33
+ PayloadDetails: () => PayloadDetails
34
+ });
35
+ module.exports = __toCommonJS(Details_exports);
36
+ var import_react_flexbox4 = require("@xylabs/react-flexbox");
37
+ var import_react3 = require("react");
38
+
39
+ // src/components/Details/DataDetails.tsx
40
+ var import_icons_material2 = require("@mui/icons-material");
41
+ var import_material2 = require("@mui/material");
42
+ var import_react_button = require("@xylabs/react-button");
43
+ var import_hash2 = require("@xyo-network/hash");
44
+ var import_react_property = require("@xyo-network/react-property");
45
+ var import_react_shared = require("@xyo-network/react-shared");
46
+ var import_react = require("react");
47
+
48
+ // src/components/Details/HashSourceDetails.tsx
49
+ var import_icons_material = require("@mui/icons-material");
50
+ var import_material = require("@mui/material");
51
+ var import_react_flexbox = require("@xylabs/react-flexbox");
52
+ var import_react_quick_tip_button = require("@xylabs/react-quick-tip-button");
53
+ var import_hash = require("@xyo-network/hash");
54
+ var import_jsx_runtime = require("react/jsx-runtime");
55
+ var PayloadHashSourceDetails = ({ noTitle = false, payload, ...props }) => {
56
+ const theme = (0, import_material.useTheme)();
57
+ const payloadString = payload ? JSON.stringify(import_hash.PayloadHasher.hashFields(payload), null, 2) : "";
58
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_react_flexbox.FlexCol, { alignItems: "stretch", ...props, children: [
59
+ noTitle ? null : /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_react_flexbox.FlexRow, { margin: 1, justifyContent: "flex-start", children: [
60
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_material.Typography, { children: "Hash Source" }),
61
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_react_quick_tip_button.QuickTipButton, { title: "Hash Source", children: "The actual string used to generate the hash (SHA256)" })
62
+ ] }),
63
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_react_flexbox.FlexRow, { children: [
64
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_react_flexbox.FlexGrowRow, { background: true, border: 1, borderColor: theme.palette.divider, justifyContent: "start", children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_material.Typography, { padding: 2, fontFamily: "monospace", variant: "body1", sx: { overflowWrap: "break-word", wordBreak: "break-all" }, children: payloadString }) }),
65
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_material.IconButton, { children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_icons_material.ContentCopy, {}) })
66
+ ] }),
67
+ noTitle ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_react_flexbox.FlexRow, { margin: 1, justifyContent: "flex-start", children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_material.Typography, { variant: "body2", children: "The actual string used to generate the hash (SHA256). This can be used to validate the hash manually." }) }) : null
68
+ ] });
69
+ };
70
+
71
+ // src/components/Details/DataDetails.tsx
72
+ var import_jsx_runtime2 = require("react/jsx-runtime");
73
+ var PayloadDataDetails = ({ size, badge, payload, ...props }) => {
74
+ const payloadString = payload ? JSON.stringify(import_hash2.PayloadHasher.hashFields(payload), null, 2) : "";
75
+ const [viewSourceOpen, setViewSourceOpen] = (0, import_react.useState)(false);
76
+ const hash = (0, import_react_shared.usePayloadHash)(payload);
77
+ let elevation = 2;
78
+ if (props.paper) {
79
+ elevation += props.elevation ?? 0;
80
+ }
81
+ const actions = [
82
+ {
83
+ icon: /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(import_icons_material2.Visibility, {}),
84
+ name: "View",
85
+ onClick: () => setViewSourceOpen(true)
86
+ },
87
+ {
88
+ icon: /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(import_icons_material2.ContentCopy, {}),
89
+ name: "Copy",
90
+ onClick: async () => await navigator.clipboard.writeText(hash ?? "")
91
+ }
92
+ ];
93
+ const onCopy = async () => {
94
+ await navigator.clipboard.writeText(payloadString);
95
+ };
96
+ return /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)(import_jsx_runtime2.Fragment, { children: [
97
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
98
+ import_react_property.Property,
99
+ {
100
+ titleProps: { elevation },
101
+ badge,
102
+ size,
103
+ actions,
104
+ title: "Payload Hash",
105
+ value: hash ?? "<Unknown>",
106
+ tip: "This is the payload hash",
107
+ ...props
108
+ }
109
+ ),
110
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)(import_material2.Dialog, { open: viewSourceOpen, onClose: () => setViewSourceOpen(false), children: [
111
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(import_material2.DialogTitle, { children: "Hash Source" }),
112
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(import_material2.DialogContent, { children: /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(PayloadHashSourceDetails, { noTitle: true, payload }) }),
113
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)(import_material2.DialogActions, { children: [
114
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(import_react_button.ButtonEx, { color: "secondary", onClick: onCopy, children: "Copy" }),
115
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(import_react_button.ButtonEx, { color: "secondary", onClick: () => setViewSourceOpen(false), children: "Close" })
116
+ ] })
117
+ ] })
118
+ ] });
119
+ };
120
+
121
+ // src/components/Details/JsonDetails.tsx
122
+ var import_material3 = require("@mui/material");
123
+ var import_react_flexbox2 = require("@xylabs/react-flexbox");
124
+ var import_react_property2 = require("@xyo-network/react-property");
125
+ var import_react2 = require("react");
126
+ var import_jsx_runtime3 = require("react/jsx-runtime");
127
+ var JsonView = (0, import_react2.lazy)(() => import(
128
+ /* webpackChunkName: "jsonView" */
129
+ "react-json-view"
130
+ ));
131
+ var PayloadJsonDetails = ({ jsonViewProps, payload = {}, ...props }) => {
132
+ const { breakpoints, palette } = (0, import_material3.useTheme)();
133
+ const belowSm = (0, import_material3.useMediaQuery)(breakpoints.down("sm"));
134
+ let elevation = 2;
135
+ if (props.paper) {
136
+ elevation += props.elevation ?? 0;
137
+ }
138
+ const jsonTheme = palette.mode === "dark" ? "shapeshifter" : void 0;
139
+ return /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(import_react_property2.PropertyGroup, { titleProps: { elevation }, title: "JSON", tip: "The raw JSON of the payload", ...props, children: /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(import_material3.Paper, { square: true, variant: "elevation", style: { overflow: "hidden", padding: "16px", width: "100%" }, children: /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(import_react2.Suspense, { fallback: /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(import_react_flexbox2.FlexGrowRow, {}), children: /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
140
+ JsonView,
141
+ {
142
+ groupArraysAfterLength: 20,
143
+ style: { backgroundColor: void 0, overflow: "hidden" },
144
+ src: payload,
145
+ enableClipboard: true,
146
+ theme: jsonTheme,
147
+ collapseStringsAfterLength: belowSm ? 24 : 32,
148
+ ...jsonViewProps
149
+ }
150
+ ) }) }) });
151
+ };
152
+
153
+ // src/components/Details/ValidationDetails/ValidationDetails.tsx
154
+ var import_material4 = require("@mui/material");
155
+ var import_react_flexbox3 = require("@xylabs/react-flexbox");
156
+ var import_react_promise = require("@xylabs/react-promise");
157
+ var import_payload_validator = require("@xyo-network/payload-validator");
158
+ var import_react_property3 = require("@xyo-network/react-property");
159
+ var import_react_schema = require("@xyo-network/react-schema");
160
+ var import_jsx_runtime4 = require("react/jsx-runtime");
161
+ var PayloadValidationDetails = ({ skipBody = false, value, ...props }) => {
162
+ const [validateErrors] = (0, import_react_promise.usePromise)(async () => value ? await new import_payload_validator.PayloadValidator(value).validate() : void 0, [value]);
163
+ const bodyErrors = skipBody ? [] : validateErrors ?? [];
164
+ const errors = [...bodyErrors];
165
+ let elevation = 2;
166
+ if (props.paper) {
167
+ elevation += props.elevation ?? 0;
168
+ }
169
+ return /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)(import_react_property3.PropertyGroup, { titleProps: { elevation }, title: "Validation", tip: "The results from validating the payload", ...props, children: [
170
+ /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
171
+ import_react_property3.Property,
172
+ {
173
+ titleProps: { elevation },
174
+ flexGrow: 1,
175
+ title: "Valid",
176
+ value: errors.length === 0 ? "True" : "False",
177
+ tip: errors.length > 0 ? /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(import_react_flexbox3.FlexCol, { children: errors.map((error, index) => {
178
+ return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(import_material4.Typography, { children: error.toString() }, index);
179
+ }) }) : /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(import_material4.Typography, { children: "No Errors" })
180
+ }
181
+ ),
182
+ (value == null ? void 0 : value.schema) && /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(import_react_schema.SchemaProperty, { flexGrow: 1, titleProps: { elevation }, value: value.schema })
183
+ ] });
184
+ };
185
+
186
+ // src/components/Details/Details.tsx
187
+ var import_jsx_runtime5 = require("react/jsx-runtime");
188
+ var PayloadDetails = (0, import_react3.forwardRef)(({ paper, payload, ...props }, ref) => {
189
+ return /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)(import_react_flexbox4.FlexCol, { gap: 1, justifyContent: "flex-start", alignItems: "stretch", marginTop: 2, marginBottom: 8, ref, ...props, children: [
190
+ /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(PayloadDataDetails, { paper, size: "large", badge: true, payload }),
191
+ /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(PayloadValidationDetails, { paper, value: payload }),
192
+ /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(PayloadJsonDetails, { paper, payload })
193
+ ] });
194
+ });
195
+ PayloadDetails.displayName = "PayloadDetails";
196
+ // Annotate the CommonJS export names for ESM import in node:
197
+ 0 && (module.exports = {
198
+ PayloadDetails
199
+ });
200
+ //# sourceMappingURL=Details.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/components/Details/Details.tsx","../../../../src/components/Details/DataDetails.tsx","../../../../src/components/Details/HashSourceDetails.tsx","../../../../src/components/Details/JsonDetails.tsx","../../../../src/components/Details/ValidationDetails/ValidationDetails.tsx"],"sourcesContent":["import { FlexBoxProps, FlexCol } from '@xylabs/react-flexbox'\nimport { Payload } from '@xyo-network/payload-model'\nimport { forwardRef } from 'react'\n\nimport { PayloadDataDetails } from './DataDetails'\nimport { PayloadJsonDetails } from './JsonDetails'\nimport { PayloadValidationDetails } from './ValidationDetails'\n\nexport type WithPaper<T> = T & { paper: true }\nexport type WithoutPaper<T> = T & { paper?: false }\n\nexport type PayloadDetailsProps = FlexBoxProps & {\n paper?: boolean\n payload?: Payload\n}\n\nexport const PayloadDetails = forwardRef<HTMLDivElement, PayloadDetailsProps>(({ paper, payload, ...props }, ref) => {\n return (\n <FlexCol gap={1} justifyContent=\"flex-start\" alignItems=\"stretch\" marginTop={2} marginBottom={8} ref={ref} {...props}>\n <PayloadDataDetails paper={paper} size=\"large\" badge payload={payload} />\n <PayloadValidationDetails paper={paper} value={payload} />\n <PayloadJsonDetails paper={paper} payload={payload} />\n </FlexCol>\n )\n})\n\nPayloadDetails.displayName = 'PayloadDetails'\n","import { ContentCopy as ContentCopyIcon, Visibility as VisibilityIcon } from '@mui/icons-material'\nimport { Dialog, DialogActions, DialogContent, DialogTitle } from '@mui/material'\nimport { ButtonEx } from '@xylabs/react-button'\nimport { PayloadHasher } from '@xyo-network/hash'\nimport { Payload } from '@xyo-network/payload-model'\nimport { Property, PropertyAction, PropertyProps } from '@xyo-network/react-property'\nimport { SizeProp, usePayloadHash } from '@xyo-network/react-shared'\nimport { useState } from 'react'\n\nimport { PayloadHashSourceDetails } from './HashSourceDetails'\n\nexport type PayloadDataDetailsProps = PropertyProps & {\n badge?: boolean\n payload?: Payload\n size?: SizeProp\n}\n\nexport const PayloadDataDetails: React.FC<PayloadDataDetailsProps> = ({ size, badge, payload, ...props }) => {\n const payloadString = payload ? JSON.stringify(PayloadHasher.hashFields(payload), null, 2) : ''\n\n const [viewSourceOpen, setViewSourceOpen] = useState(false)\n const hash = usePayloadHash(payload)\n\n let elevation = 2\n if (props.paper) {\n elevation += props.elevation ?? 0\n }\n\n const actions: PropertyAction[] = [\n {\n icon: <VisibilityIcon />,\n name: 'View',\n onClick: () => setViewSourceOpen(true),\n },\n {\n icon: <ContentCopyIcon />,\n name: 'Copy',\n onClick: async () => await navigator.clipboard.writeText(hash ?? ''),\n },\n ]\n\n const onCopy = async () => {\n await navigator.clipboard.writeText(payloadString)\n }\n\n return (\n <>\n <Property\n titleProps={{ elevation }}\n badge={badge}\n size={size}\n actions={actions}\n title=\"Payload Hash\"\n value={hash ?? '<Unknown>'}\n tip=\"This is the payload hash\"\n {...props}\n />\n <Dialog open={viewSourceOpen} onClose={() => setViewSourceOpen(false)}>\n <DialogTitle>Hash Source</DialogTitle>\n <DialogContent>\n <PayloadHashSourceDetails noTitle payload={payload} />\n </DialogContent>\n <DialogActions>\n <ButtonEx color=\"secondary\" onClick={onCopy}>\n Copy\n </ButtonEx>\n <ButtonEx color=\"secondary\" onClick={() => setViewSourceOpen(false)}>\n Close\n </ButtonEx>\n </DialogActions>\n </Dialog>\n </>\n )\n}\n","import { ContentCopy as ContentCopyIcon } from '@mui/icons-material'\nimport { IconButton, Typography, useTheme } from '@mui/material'\nimport { FlexBoxProps, FlexCol, FlexGrowRow, FlexRow } from '@xylabs/react-flexbox'\nimport { QuickTipButton } from '@xylabs/react-quick-tip-button'\nimport { PayloadHasher } from '@xyo-network/hash'\nimport { Payload } from '@xyo-network/payload-model'\n\nexport interface PayloadHashSourceDetailsProps extends FlexBoxProps {\n noTitle?: boolean\n payload?: Payload\n}\n\nexport const PayloadHashSourceDetails: React.FC<PayloadHashSourceDetailsProps> = ({ noTitle = false, payload, ...props }) => {\n const theme = useTheme()\n const payloadString = payload ? JSON.stringify(PayloadHasher.hashFields(payload), null, 2) : ''\n\n return (\n <FlexCol alignItems=\"stretch\" {...props}>\n {noTitle ? null : (\n <FlexRow margin={1} justifyContent=\"flex-start\">\n <Typography>Hash Source</Typography>\n <QuickTipButton title=\"Hash Source\">The actual string used to generate the hash (SHA256)</QuickTipButton>\n </FlexRow>\n )}\n <FlexRow>\n <FlexGrowRow background border={1} borderColor={theme.palette.divider} justifyContent=\"start\">\n <Typography padding={2} fontFamily=\"monospace\" variant=\"body1\" sx={{ overflowWrap: 'break-word', wordBreak: 'break-all' }}>\n {payloadString}\n </Typography>\n </FlexGrowRow>\n <IconButton>\n <ContentCopyIcon />\n </IconButton>\n </FlexRow>\n {noTitle ? (\n <FlexRow margin={1} justifyContent=\"flex-start\">\n <Typography variant=\"body2\">\n The actual string used to generate the hash (SHA256). This can be used to validate the hash manually.\n </Typography>\n </FlexRow>\n ) : null}\n </FlexCol>\n )\n}\n","import { Paper, useMediaQuery, useTheme } from '@mui/material'\nimport { FlexGrowRow } from '@xylabs/react-flexbox'\nimport { Payload } from '@xyo-network/payload-model'\nimport { PropertyGroup, PropertyGroupProps } from '@xyo-network/react-property'\nimport { lazy, Suspense } from 'react'\nimport { ReactJsonViewProps } from 'react-json-view'\n\nconst JsonView = lazy(() => import(/* webpackChunkName: \"jsonView\" */ 'react-json-view'))\n\nexport type PayloadJsonDetailsProps = PropertyGroupProps & {\n jsonViewProps?: ReactJsonViewProps\n payload?: Payload\n}\n\nexport const PayloadJsonDetails: React.FC<PayloadJsonDetailsProps> = ({ jsonViewProps, payload = {}, ...props }) => {\n const { breakpoints, palette } = useTheme()\n const belowSm = useMediaQuery(breakpoints.down('sm'))\n\n let elevation = 2\n if (props.paper) {\n elevation += props.elevation ?? 0\n }\n\n const jsonTheme = palette.mode === 'dark' ? 'shapeshifter' : undefined\n\n return (\n <PropertyGroup titleProps={{ elevation }} title=\"JSON\" tip=\"The raw JSON of the payload\" {...props}>\n <Paper square variant=\"elevation\" style={{ overflow: 'hidden', padding: '16px', width: '100%' }}>\n <Suspense fallback={<FlexGrowRow />}>\n <JsonView\n groupArraysAfterLength={20}\n style={{ backgroundColor: undefined, overflow: 'hidden' }}\n src={payload}\n enableClipboard\n theme={jsonTheme}\n collapseStringsAfterLength={belowSm ? 24 : 32}\n {...jsonViewProps}\n />\n </Suspense>\n </Paper>\n </PropertyGroup>\n )\n}\n","import { Typography } from '@mui/material'\nimport { FlexCol } from '@xylabs/react-flexbox'\nimport { usePromise } from '@xylabs/react-promise'\nimport { PayloadValidator } from '@xyo-network/payload-validator'\nimport { Property, PropertyGroup } from '@xyo-network/react-property'\nimport { SchemaProperty } from '@xyo-network/react-schema'\n\nimport { PayloadValidationDetailsProps } from './ValidationDetailsProps'\n\nexport const PayloadValidationDetails: React.FC<PayloadValidationDetailsProps> = ({ skipBody = false, value, ...props }) => {\n const [validateErrors] = usePromise(async () => (value ? await new PayloadValidator(value).validate() : undefined), [value])\n\n const bodyErrors = skipBody ? [] : validateErrors ?? []\n const errors: Error[] = [...bodyErrors]\n\n let elevation = 2\n if (props.paper) {\n elevation += props.elevation ?? 0\n }\n\n return (\n <PropertyGroup titleProps={{ elevation }} title=\"Validation\" tip=\"The results from validating the payload\" {...props}>\n <Property\n titleProps={{ elevation }}\n flexGrow={1}\n title=\"Valid\"\n value={errors.length === 0 ? 'True' : 'False'}\n tip={\n errors.length > 0 ? (\n <FlexCol>\n {errors.map((error, index) => {\n return <Typography key={index}>{error.toString()}</Typography>\n })}\n </FlexCol>\n ) : (\n <Typography>No Errors</Typography>\n )\n }\n />\n {value?.schema && <SchemaProperty flexGrow={1} titleProps={{ elevation }} value={value.schema} />}\n </PropertyGroup>\n )\n}\n"],"mappings":"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","names":["import_react_flexbox","import_react","import_icons_material","import_material","import_hash","ContentCopyIcon","import_jsx_runtime","VisibilityIcon","ContentCopyIcon","import_material","import_react_flexbox","import_react_property","import_react","import_jsx_runtime","import_material","import_react_flexbox","import_react_property","import_jsx_runtime","import_jsx_runtime"]}
@@ -0,0 +1,20 @@
1
+ /// <reference types="react" />
2
+ import { FlexBoxProps } from '@xylabs/react-flexbox';
3
+ import { Payload } from '@xyo-network/payload-model';
4
+ export type WithPaper<T> = T & {
5
+ paper: true;
6
+ };
7
+ export type WithoutPaper<T> = T & {
8
+ paper?: false;
9
+ };
10
+ export type PayloadDetailsProps = FlexBoxProps & {
11
+ paper?: boolean;
12
+ payload?: Payload;
13
+ };
14
+ export declare const PayloadDetails: import("react").ForwardRefExoticComponent<import("@xylabs/react-flexbox").BusyBoxProps & {
15
+ paper?: boolean | undefined;
16
+ payload?: ({
17
+ schema: string;
18
+ } & import("@xyo-network/payload-model").PayloadFields) | undefined;
19
+ } & import("react").RefAttributes<HTMLDivElement>>;
20
+ //# sourceMappingURL=Details.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Details.d.ts","sourceRoot":"","sources":["../../../../src/components/Details/Details.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,YAAY,EAAW,MAAM,uBAAuB,CAAA;AAC7D,OAAO,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAA;AAOpD,MAAM,MAAM,SAAS,CAAC,CAAC,IAAI,CAAC,GAAG;IAAE,KAAK,EAAE,IAAI,CAAA;CAAE,CAAA;AAC9C,MAAM,MAAM,YAAY,CAAC,CAAC,IAAI,CAAC,GAAG;IAAE,KAAK,CAAC,EAAE,KAAK,CAAA;CAAE,CAAA;AAEnD,MAAM,MAAM,mBAAmB,GAAG,YAAY,GAAG;IAC/C,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,OAAO,CAAC,EAAE,OAAO,CAAA;CAClB,CAAA;AAED,eAAO,MAAM,cAAc;;;;;kDAQzB,CAAA"}