@xyo-network/react-payload-details 2.60.12 → 2.62.3
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.
- package/dist/components/Details/DataDetails.d.mts.map +1 -0
- package/dist/components/Details/DataDetails.d.ts +11 -0
- package/dist/components/Details/DataDetails.d.ts.map +1 -0
- package/dist/components/Details/Details.d.mts +20 -0
- package/dist/components/Details/Details.d.mts.map +1 -0
- package/dist/{types/components → components}/Details/Details.d.ts +2 -2
- package/dist/components/Details/Details.d.ts.map +1 -0
- package/dist/components/Details/Details.stories.d.mts +58 -0
- package/dist/components/Details/Details.stories.d.mts.map +1 -0
- package/dist/components/Details/Details.stories.d.ts +58 -0
- package/dist/components/Details/Details.stories.d.ts.map +1 -0
- package/dist/components/Details/HashSourceDetails.d.mts.map +1 -0
- package/dist/components/Details/HashSourceDetails.d.ts +9 -0
- package/dist/components/Details/HashSourceDetails.d.ts.map +1 -0
- package/dist/components/Details/JsonDetails.d.mts.map +1 -0
- package/dist/components/Details/JsonDetails.d.ts +10 -0
- package/dist/components/Details/JsonDetails.d.ts.map +1 -0
- package/dist/components/Details/ValidationDetails/ValidationDetails.d.mts.map +1 -0
- package/dist/components/Details/ValidationDetails/ValidationDetails.d.ts +4 -0
- package/dist/components/Details/ValidationDetails/ValidationDetails.d.ts.map +1 -0
- package/dist/components/Details/ValidationDetails/ValidationDetails.stories.d.mts +9 -0
- package/dist/components/Details/ValidationDetails/ValidationDetails.stories.d.mts.map +1 -0
- package/dist/components/Details/ValidationDetails/ValidationDetails.stories.d.ts +9 -0
- package/dist/components/Details/ValidationDetails/ValidationDetails.stories.d.ts.map +1 -0
- package/dist/components/Details/ValidationDetails/ValidationDetailsProps.d.mts.map +1 -0
- package/dist/components/Details/ValidationDetails/ValidationDetailsProps.d.ts +7 -0
- package/dist/components/Details/ValidationDetails/ValidationDetailsProps.d.ts.map +1 -0
- package/dist/components/Details/ValidationDetails/index.d.mts.map +1 -0
- package/dist/{esm/components/Details/ValidationDetails/index.js → components/Details/ValidationDetails/index.d.ts} +1 -1
- package/dist/components/Details/ValidationDetails/index.d.ts.map +1 -0
- package/dist/components/Details/index.d.mts.map +1 -0
- package/dist/{esm/components/Details/index.js → components/Details/index.d.ts} +1 -1
- package/dist/components/Details/index.d.ts.map +1 -0
- package/dist/components/index.d.mts.map +1 -0
- package/dist/components/index.d.ts +2 -0
- package/dist/components/index.d.ts.map +1 -0
- package/dist/docs.json +44 -67
- package/dist/index.d.mts.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/{types/index.d.ts.map → index.d.ts.map} +1 -1
- package/dist/index.js +209 -0
- package/dist/index.js.map +1 -0
- package/dist/index.mjs +169 -0
- package/dist/index.mjs.map +1 -0
- package/package.json +35 -27
- package/src/components/Details/DataDetails.tsx +3 -3
- package/src/components/Details/HashSourceDetails.tsx +3 -3
- package/dist/cjs/components/Details/DataDetails.js +0 -44
- package/dist/cjs/components/Details/DataDetails.js.map +0 -1
- package/dist/cjs/components/Details/Details.js +0 -16
- package/dist/cjs/components/Details/Details.js.map +0 -1
- package/dist/cjs/components/Details/HashSourceDetails.js +0 -19
- package/dist/cjs/components/Details/HashSourceDetails.js.map +0 -1
- package/dist/cjs/components/Details/JsonDetails.js +0 -24
- package/dist/cjs/components/Details/JsonDetails.js.map +0 -1
- package/dist/cjs/components/Details/ValidationDetails/ValidationDetails.js +0 -27
- package/dist/cjs/components/Details/ValidationDetails/ValidationDetails.js.map +0 -1
- package/dist/cjs/components/Details/ValidationDetails/ValidationDetailsProps.js +0 -3
- package/dist/cjs/components/Details/ValidationDetails/ValidationDetailsProps.js.map +0 -1
- package/dist/cjs/components/Details/ValidationDetails/index.js +0 -6
- package/dist/cjs/components/Details/ValidationDetails/index.js.map +0 -1
- package/dist/cjs/components/Details/index.js +0 -8
- package/dist/cjs/components/Details/index.js.map +0 -1
- package/dist/cjs/components/index.js +0 -5
- package/dist/cjs/components/index.js.map +0 -1
- package/dist/cjs/index.js +0 -5
- package/dist/cjs/index.js.map +0 -1
- package/dist/esm/components/Details/DataDetails.js +0 -36
- package/dist/esm/components/Details/DataDetails.js.map +0 -1
- package/dist/esm/components/Details/Details.js +0 -11
- package/dist/esm/components/Details/Details.js.map +0 -1
- package/dist/esm/components/Details/HashSourceDetails.js +0 -12
- package/dist/esm/components/Details/HashSourceDetails.js.map +0 -1
- package/dist/esm/components/Details/JsonDetails.js +0 -17
- package/dist/esm/components/Details/JsonDetails.js.map +0 -1
- package/dist/esm/components/Details/ValidationDetails/ValidationDetails.js +0 -20
- package/dist/esm/components/Details/ValidationDetails/ValidationDetails.js.map +0 -1
- package/dist/esm/components/Details/ValidationDetails/ValidationDetailsProps.js +0 -2
- package/dist/esm/components/Details/ValidationDetails/ValidationDetailsProps.js.map +0 -1
- package/dist/esm/components/Details/ValidationDetails/index.js.map +0 -1
- package/dist/esm/components/Details/index.js.map +0 -1
- package/dist/esm/components/index.js +0 -2
- package/dist/esm/components/index.js.map +0 -1
- package/dist/esm/index.js +0 -2
- package/dist/esm/index.js.map +0 -1
- package/dist/types/components/Details/DataDetails.d.ts.map +0 -1
- package/dist/types/components/Details/Details.d.ts.map +0 -1
- package/dist/types/components/Details/HashSourceDetails.d.ts.map +0 -1
- package/dist/types/components/Details/JsonDetails.d.ts.map +0 -1
- package/dist/types/components/Details/ValidationDetails/ValidationDetails.d.ts.map +0 -1
- package/dist/types/components/Details/ValidationDetails/ValidationDetailsProps.d.ts.map +0 -1
- package/dist/types/components/Details/ValidationDetails/index.d.ts.map +0 -1
- package/dist/types/components/Details/index.d.ts.map +0 -1
- package/dist/types/components/index.d.ts.map +0 -1
- /package/dist/{types/components/Details/DataDetails.d.ts → components/Details/DataDetails.d.mts} +0 -0
- /package/dist/{types/components/Details/HashSourceDetails.d.ts → components/Details/HashSourceDetails.d.mts} +0 -0
- /package/dist/{types/components/Details/JsonDetails.d.ts → components/Details/JsonDetails.d.mts} +0 -0
- /package/dist/{types/components/Details/ValidationDetails/ValidationDetails.d.ts → components/Details/ValidationDetails/ValidationDetails.d.mts} +0 -0
- /package/dist/{types/components/Details/ValidationDetails/ValidationDetailsProps.d.ts → components/Details/ValidationDetails/ValidationDetailsProps.d.mts} +0 -0
- /package/dist/{types/components/Details/ValidationDetails/index.d.ts → components/Details/ValidationDetails/index.d.mts} +0 -0
- /package/dist/{types/components/Details/index.d.ts → components/Details/index.d.mts} +0 -0
- /package/dist/{types/components/index.d.ts → components/index.d.mts} +0 -0
- /package/dist/{types/index.d.ts → index.d.mts} +0 -0
package/dist/index.mjs
ADDED
@@ -0,0 +1,169 @@
|
|
1
|
+
// src/components/Details/DataDetails.tsx
|
2
|
+
import ContentCopyIcon2 from "@mui/icons-material/ContentCopy";
|
3
|
+
import VisibilityIcon from "@mui/icons-material/Visibility";
|
4
|
+
import { Dialog, DialogActions, DialogContent, DialogTitle } from "@mui/material";
|
5
|
+
import { ButtonEx } from "@xylabs/react-button";
|
6
|
+
import { PayloadHasher as PayloadHasher2 } from "@xyo-network/hash";
|
7
|
+
import { Property } from "@xyo-network/react-property";
|
8
|
+
import { usePayloadHash } from "@xyo-network/react-shared";
|
9
|
+
import { useState } from "react";
|
10
|
+
|
11
|
+
// src/components/Details/HashSourceDetails.tsx
|
12
|
+
import ContentCopyIcon from "@mui/icons-material/ContentCopy";
|
13
|
+
import { IconButton, Typography, useTheme } from "@mui/material";
|
14
|
+
import { FlexCol, FlexGrowRow, FlexRow } from "@xylabs/react-flexbox";
|
15
|
+
import { QuickTipButton } from "@xylabs/react-quick-tip-button";
|
16
|
+
import { PayloadHasher } from "@xyo-network/hash";
|
17
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
18
|
+
var PayloadHashSourceDetails = ({ noTitle = false, payload, ...props }) => {
|
19
|
+
const theme = useTheme();
|
20
|
+
const payloadString = payload ? JSON.stringify(PayloadHasher.hashFields(payload), null, 2) : "";
|
21
|
+
return /* @__PURE__ */ jsxs(FlexCol, { alignItems: "stretch", ...props, children: [
|
22
|
+
noTitle ? null : /* @__PURE__ */ jsxs(FlexRow, { margin: 1, justifyContent: "flex-start", children: [
|
23
|
+
/* @__PURE__ */ jsx(Typography, { children: "Hash Source" }),
|
24
|
+
/* @__PURE__ */ jsx(QuickTipButton, { title: "Hash Source", children: "The actual string used to generate the hash (SHA256)" })
|
25
|
+
] }),
|
26
|
+
/* @__PURE__ */ jsxs(FlexRow, { children: [
|
27
|
+
/* @__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 }) }),
|
28
|
+
/* @__PURE__ */ jsx(IconButton, { children: /* @__PURE__ */ jsx(ContentCopyIcon, {}) })
|
29
|
+
] }),
|
30
|
+
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
|
31
|
+
] });
|
32
|
+
};
|
33
|
+
|
34
|
+
// src/components/Details/DataDetails.tsx
|
35
|
+
import { Fragment, jsx as jsx2, jsxs as jsxs2 } from "react/jsx-runtime";
|
36
|
+
var PayloadDataDetails = ({ size, badge, payload, ...props }) => {
|
37
|
+
const payloadString = payload ? JSON.stringify(PayloadHasher2.hashFields(payload), null, 2) : "";
|
38
|
+
const [viewSourceOpen, setViewSourceOpen] = useState(false);
|
39
|
+
const hash = usePayloadHash(payload);
|
40
|
+
let elevation = 2;
|
41
|
+
if (props.paper) {
|
42
|
+
elevation += props.elevation ?? 0;
|
43
|
+
}
|
44
|
+
const actions = [
|
45
|
+
{
|
46
|
+
icon: /* @__PURE__ */ jsx2(VisibilityIcon, {}),
|
47
|
+
name: "View",
|
48
|
+
onClick: () => setViewSourceOpen(true)
|
49
|
+
},
|
50
|
+
{
|
51
|
+
icon: /* @__PURE__ */ jsx2(ContentCopyIcon2, {}),
|
52
|
+
name: "Copy",
|
53
|
+
onClick: async () => await navigator.clipboard.writeText(hash ?? "")
|
54
|
+
}
|
55
|
+
];
|
56
|
+
const onCopy = async () => {
|
57
|
+
await navigator.clipboard.writeText(payloadString);
|
58
|
+
};
|
59
|
+
return /* @__PURE__ */ jsxs2(Fragment, { children: [
|
60
|
+
/* @__PURE__ */ jsx2(
|
61
|
+
Property,
|
62
|
+
{
|
63
|
+
titleProps: { elevation },
|
64
|
+
badge,
|
65
|
+
size,
|
66
|
+
actions,
|
67
|
+
title: "Payload Hash",
|
68
|
+
value: hash ?? "<Unknown>",
|
69
|
+
tip: "This is the payload hash",
|
70
|
+
...props
|
71
|
+
}
|
72
|
+
),
|
73
|
+
/* @__PURE__ */ jsxs2(Dialog, { open: viewSourceOpen, onClose: () => setViewSourceOpen(false), children: [
|
74
|
+
/* @__PURE__ */ jsx2(DialogTitle, { children: "Hash Source" }),
|
75
|
+
/* @__PURE__ */ jsx2(DialogContent, { children: /* @__PURE__ */ jsx2(PayloadHashSourceDetails, { noTitle: true, payload }) }),
|
76
|
+
/* @__PURE__ */ jsxs2(DialogActions, { children: [
|
77
|
+
/* @__PURE__ */ jsx2(ButtonEx, { color: "secondary", onClick: onCopy, children: "Copy" }),
|
78
|
+
/* @__PURE__ */ jsx2(ButtonEx, { color: "secondary", onClick: () => setViewSourceOpen(false), children: "Close" })
|
79
|
+
] })
|
80
|
+
] })
|
81
|
+
] });
|
82
|
+
};
|
83
|
+
|
84
|
+
// src/components/Details/Details.tsx
|
85
|
+
import { FlexCol as FlexCol3 } from "@xylabs/react-flexbox";
|
86
|
+
import { forwardRef } from "react";
|
87
|
+
|
88
|
+
// src/components/Details/JsonDetails.tsx
|
89
|
+
import { Paper, useMediaQuery, useTheme as useTheme2 } from "@mui/material";
|
90
|
+
import { FlexGrowRow as FlexGrowRow2 } from "@xylabs/react-flexbox";
|
91
|
+
import { PropertyGroup } from "@xyo-network/react-property";
|
92
|
+
import { lazy, Suspense } from "react";
|
93
|
+
import { jsx as jsx3 } from "react/jsx-runtime";
|
94
|
+
var JsonView = lazy(() => import(
|
95
|
+
/* webpackChunkName: "jsonView" */
|
96
|
+
"react-json-view"
|
97
|
+
));
|
98
|
+
var PayloadJsonDetails = ({ jsonViewProps, payload = {}, ...props }) => {
|
99
|
+
const { breakpoints, palette } = useTheme2();
|
100
|
+
const belowSm = useMediaQuery(breakpoints.down("sm"));
|
101
|
+
let elevation = 2;
|
102
|
+
if (props.paper) {
|
103
|
+
elevation += props.elevation ?? 0;
|
104
|
+
}
|
105
|
+
const jsonTheme = palette.mode === "dark" ? "shapeshifter" : void 0;
|
106
|
+
return /* @__PURE__ */ jsx3(PropertyGroup, { titleProps: { elevation }, title: "JSON", tip: "The raw JSON of the payload", ...props, children: /* @__PURE__ */ jsx3(Paper, { square: true, variant: "elevation", style: { overflow: "hidden", padding: "16px", width: "100%" }, children: /* @__PURE__ */ jsx3(Suspense, { fallback: /* @__PURE__ */ jsx3(FlexGrowRow2, {}), children: /* @__PURE__ */ jsx3(
|
107
|
+
JsonView,
|
108
|
+
{
|
109
|
+
groupArraysAfterLength: 20,
|
110
|
+
style: { backgroundColor: void 0, overflow: "hidden" },
|
111
|
+
src: payload,
|
112
|
+
enableClipboard: true,
|
113
|
+
theme: jsonTheme,
|
114
|
+
collapseStringsAfterLength: belowSm ? 24 : 32,
|
115
|
+
...jsonViewProps
|
116
|
+
}
|
117
|
+
) }) }) });
|
118
|
+
};
|
119
|
+
|
120
|
+
// src/components/Details/ValidationDetails/ValidationDetails.tsx
|
121
|
+
import { Typography as Typography2 } from "@mui/material";
|
122
|
+
import { FlexCol as FlexCol2 } from "@xylabs/react-flexbox";
|
123
|
+
import { usePromise } from "@xylabs/react-promise";
|
124
|
+
import { PayloadValidator } from "@xyo-network/payload-validator";
|
125
|
+
import { Property as Property2, PropertyGroup as PropertyGroup2 } from "@xyo-network/react-property";
|
126
|
+
import { SchemaProperty } from "@xyo-network/react-schema";
|
127
|
+
import { jsx as jsx4, jsxs as jsxs3 } from "react/jsx-runtime";
|
128
|
+
var PayloadValidationDetails = ({ skipBody = false, value, ...props }) => {
|
129
|
+
const [validateErrors] = usePromise(async () => value ? await new PayloadValidator(value).validate() : void 0, [value]);
|
130
|
+
const bodyErrors = skipBody ? [] : validateErrors ?? [];
|
131
|
+
const errors = [...bodyErrors];
|
132
|
+
let elevation = 2;
|
133
|
+
if (props.paper) {
|
134
|
+
elevation += props.elevation ?? 0;
|
135
|
+
}
|
136
|
+
return /* @__PURE__ */ jsxs3(PropertyGroup2, { titleProps: { elevation }, title: "Validation", tip: "The results from validating the payload", ...props, children: [
|
137
|
+
/* @__PURE__ */ jsx4(
|
138
|
+
Property2,
|
139
|
+
{
|
140
|
+
titleProps: { elevation },
|
141
|
+
flexGrow: 1,
|
142
|
+
title: "Valid",
|
143
|
+
value: errors.length === 0 ? "True" : "False",
|
144
|
+
tip: errors.length > 0 ? /* @__PURE__ */ jsx4(FlexCol2, { children: errors.map((error, index) => {
|
145
|
+
return /* @__PURE__ */ jsx4(Typography2, { children: error.toString() }, index);
|
146
|
+
}) }) : /* @__PURE__ */ jsx4(Typography2, { children: "No Errors" })
|
147
|
+
}
|
148
|
+
),
|
149
|
+
value?.schema && /* @__PURE__ */ jsx4(SchemaProperty, { flexGrow: 1, titleProps: { elevation }, value: value.schema })
|
150
|
+
] });
|
151
|
+
};
|
152
|
+
|
153
|
+
// src/components/Details/Details.tsx
|
154
|
+
import { jsx as jsx5, jsxs as jsxs4 } from "react/jsx-runtime";
|
155
|
+
var PayloadDetails = forwardRef(({ paper, payload, ...props }, ref) => {
|
156
|
+
return /* @__PURE__ */ jsxs4(FlexCol3, { gap: 1, justifyContent: "flex-start", alignItems: "stretch", marginTop: 2, marginBottom: 8, ref, ...props, children: [
|
157
|
+
/* @__PURE__ */ jsx5(PayloadDataDetails, { paper, size: "large", badge: true, payload }),
|
158
|
+
/* @__PURE__ */ jsx5(PayloadValidationDetails, { paper, value: payload }),
|
159
|
+
/* @__PURE__ */ jsx5(PayloadJsonDetails, { paper, payload })
|
160
|
+
] });
|
161
|
+
});
|
162
|
+
PayloadDetails.displayName = "PayloadDetails";
|
163
|
+
export {
|
164
|
+
PayloadDataDetails,
|
165
|
+
PayloadDetails,
|
166
|
+
PayloadJsonDetails,
|
167
|
+
PayloadValidationDetails
|
168
|
+
};
|
169
|
+
//# sourceMappingURL=index.mjs.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"sources":["../src/components/Details/DataDetails.tsx","../src/components/Details/HashSourceDetails.tsx","../src/components/Details/Details.tsx","../src/components/Details/JsonDetails.tsx","../src/components/Details/ValidationDetails/ValidationDetails.tsx"],"sourcesContent":["import ContentCopyIcon from '@mui/icons-material/ContentCopy'\nimport VisibilityIcon from '@mui/icons-material/Visibility'\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 ContentCopyIcon from '@mui/icons-material/ContentCopy'\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 { 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 { 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":["ContentCopyIcon","PayloadHasher","jsx","jsxs","PayloadHasher","ContentCopyIcon","FlexCol","useTheme","FlexGrowRow","jsx","Typography","FlexCol","Property","PropertyGroup","jsx","jsxs","jsx","jsxs","FlexCol"]}
|
package/package.json
CHANGED
@@ -10,23 +10,23 @@
|
|
10
10
|
"url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/issues"
|
11
11
|
},
|
12
12
|
"dependencies": {
|
13
|
-
"@xylabs/react-button": "~2.
|
14
|
-
"@xylabs/react-flexbox": "~2.
|
15
|
-
"@xylabs/react-promise": "~2.
|
16
|
-
"@xylabs/react-quick-tip-button": "~2.
|
17
|
-
"@xyo-network/
|
18
|
-
"@xyo-network/payload-
|
19
|
-
"@xyo-network/payload-
|
20
|
-
"@xyo-network/react-property": "~2.
|
21
|
-
"@xyo-network/react-schema": "~2.
|
22
|
-
"@xyo-network/react-shared": "~2.
|
13
|
+
"@xylabs/react-button": "~2.18.4",
|
14
|
+
"@xylabs/react-flexbox": "~2.18.4",
|
15
|
+
"@xylabs/react-promise": "~2.18.4",
|
16
|
+
"@xylabs/react-quick-tip-button": "~2.18.4",
|
17
|
+
"@xyo-network/hash": "^2.74.1",
|
18
|
+
"@xyo-network/payload-model": "^2.74.1",
|
19
|
+
"@xyo-network/payload-validator": "^2.74.1",
|
20
|
+
"@xyo-network/react-property": "~2.62.3",
|
21
|
+
"@xyo-network/react-schema": "~2.62.3",
|
22
|
+
"@xyo-network/react-shared": "~2.62.3",
|
23
23
|
"react-json-view": "^1.21.3"
|
24
24
|
},
|
25
25
|
"devDependencies": {
|
26
|
-
"@storybook/react": "^7.4.
|
27
|
-
"@xylabs/ts-scripts-yarn3": "^
|
28
|
-
"@xylabs/tsconfig-react": "^
|
29
|
-
"@xyo-network/react-storybook": "~2.
|
26
|
+
"@storybook/react": "^7.4.3",
|
27
|
+
"@xylabs/ts-scripts-yarn3": "^3.0.28",
|
28
|
+
"@xylabs/tsconfig-react": "^3.0.28",
|
29
|
+
"@xyo-network/react-storybook": "~2.62.3",
|
30
30
|
"typescript": "^5.2.2"
|
31
31
|
},
|
32
32
|
"peerDependencies": {
|
@@ -39,27 +39,35 @@
|
|
39
39
|
"react-router-dom": "^6"
|
40
40
|
},
|
41
41
|
"description": "Common React library for all XYO projects that use React",
|
42
|
-
"browser": "dist/esm/index.js",
|
43
42
|
"docs": "dist/docs.json",
|
44
43
|
"exports": {
|
45
44
|
".": {
|
46
45
|
"node": {
|
47
|
-
"import":
|
48
|
-
|
46
|
+
"import": {
|
47
|
+
"types": "./dist/index.d.mts",
|
48
|
+
"default": "./dist/index.mjs"
|
49
|
+
},
|
50
|
+
"require": {
|
51
|
+
"types": "./dist/index.d.ts",
|
52
|
+
"default": "./dist/index.js"
|
53
|
+
}
|
49
54
|
},
|
50
55
|
"browser": {
|
51
|
-
"import":
|
52
|
-
|
56
|
+
"import": {
|
57
|
+
"types": "./dist/index.d.mts",
|
58
|
+
"default": "./dist/index.mjs"
|
59
|
+
},
|
60
|
+
"require": {
|
61
|
+
"types": "./dist/index.d.ts",
|
62
|
+
"default": "./dist/index.js"
|
63
|
+
}
|
53
64
|
},
|
54
|
-
"default": "./dist/
|
55
|
-
},
|
56
|
-
"./dist/docs.json": {
|
57
|
-
"default": "./dist/docs.json"
|
65
|
+
"default": "./dist/index.mjs"
|
58
66
|
},
|
59
67
|
"./package.json": "./package.json"
|
60
68
|
},
|
61
|
-
"main": "dist/
|
62
|
-
"module": "dist/
|
69
|
+
"main": "dist/index.js",
|
70
|
+
"module": "dist/index.mjs",
|
63
71
|
"homepage": "https://xyo.network",
|
64
72
|
"keywords": [
|
65
73
|
"xyo",
|
@@ -80,6 +88,6 @@
|
|
80
88
|
"license": "yarn license-checker --exclude \"MIT, ISC, Apache-2.0, BSD, BSD-2-Clause, CC-BY-4.0, Unlicense, CC-BY-3.0, CC0-1.0\""
|
81
89
|
},
|
82
90
|
"sideEffects": false,
|
83
|
-
"types": "dist/
|
84
|
-
"version": "2.
|
91
|
+
"types": "dist/index.d.ts",
|
92
|
+
"version": "2.62.3"
|
85
93
|
}
|
@@ -2,8 +2,8 @@ import ContentCopyIcon from '@mui/icons-material/ContentCopy'
|
|
2
2
|
import VisibilityIcon from '@mui/icons-material/Visibility'
|
3
3
|
import { Dialog, DialogActions, DialogContent, DialogTitle } from '@mui/material'
|
4
4
|
import { ButtonEx } from '@xylabs/react-button'
|
5
|
+
import { PayloadHasher } from '@xyo-network/hash'
|
5
6
|
import { Payload } from '@xyo-network/payload-model'
|
6
|
-
import { PayloadWrapper } from '@xyo-network/payload-wrapper'
|
7
7
|
import { Property, PropertyAction, PropertyProps } from '@xyo-network/react-property'
|
8
8
|
import { SizeProp, usePayloadHash } from '@xyo-network/react-shared'
|
9
9
|
import { useState } from 'react'
|
@@ -17,7 +17,7 @@ export type PayloadDataDetailsProps = PropertyProps & {
|
|
17
17
|
}
|
18
18
|
|
19
19
|
export const PayloadDataDetails: React.FC<PayloadDataDetailsProps> = ({ size, badge, payload, ...props }) => {
|
20
|
-
const
|
20
|
+
const payloadString = payload ? JSON.stringify(PayloadHasher.hashFields(payload), null, 2) : ''
|
21
21
|
|
22
22
|
const [viewSourceOpen, setViewSourceOpen] = useState(false)
|
23
23
|
const hash = usePayloadHash(payload)
|
@@ -41,7 +41,7 @@ export const PayloadDataDetails: React.FC<PayloadDataDetailsProps> = ({ size, ba
|
|
41
41
|
]
|
42
42
|
|
43
43
|
const onCopy = async () => {
|
44
|
-
await navigator.clipboard.writeText(
|
44
|
+
await navigator.clipboard.writeText(payloadString)
|
45
45
|
}
|
46
46
|
|
47
47
|
return (
|
@@ -2,8 +2,8 @@ import ContentCopyIcon from '@mui/icons-material/ContentCopy'
|
|
2
2
|
import { IconButton, Typography, useTheme } from '@mui/material'
|
3
3
|
import { FlexBoxProps, FlexCol, FlexGrowRow, FlexRow } from '@xylabs/react-flexbox'
|
4
4
|
import { QuickTipButton } from '@xylabs/react-quick-tip-button'
|
5
|
+
import { PayloadHasher } from '@xyo-network/hash'
|
5
6
|
import { Payload } from '@xyo-network/payload-model'
|
6
|
-
import { PayloadWrapper } from '@xyo-network/payload-wrapper'
|
7
7
|
|
8
8
|
export interface PayloadHashSourceDetailsProps extends FlexBoxProps {
|
9
9
|
noTitle?: boolean
|
@@ -12,7 +12,7 @@ export interface PayloadHashSourceDetailsProps extends FlexBoxProps {
|
|
12
12
|
|
13
13
|
export const PayloadHashSourceDetails: React.FC<PayloadHashSourceDetailsProps> = ({ noTitle = false, payload, ...props }) => {
|
14
14
|
const theme = useTheme()
|
15
|
-
const
|
15
|
+
const payloadString = payload ? JSON.stringify(PayloadHasher.hashFields(payload), null, 2) : ''
|
16
16
|
|
17
17
|
return (
|
18
18
|
<FlexCol alignItems="stretch" {...props}>
|
@@ -25,7 +25,7 @@ export const PayloadHashSourceDetails: React.FC<PayloadHashSourceDetailsProps> =
|
|
25
25
|
<FlexRow>
|
26
26
|
<FlexGrowRow background border={1} borderColor={theme.palette.divider} justifyContent="start">
|
27
27
|
<Typography padding={2} fontFamily="monospace" variant="body1" sx={{ overflowWrap: 'break-word', wordBreak: 'break-all' }}>
|
28
|
-
{
|
28
|
+
{payloadString}
|
29
29
|
</Typography>
|
30
30
|
</FlexGrowRow>
|
31
31
|
<IconButton>
|
@@ -1,44 +0,0 @@
|
|
1
|
-
"use strict";
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
-
exports.PayloadDataDetails = void 0;
|
4
|
-
const tslib_1 = require("tslib");
|
5
|
-
const jsx_runtime_1 = require("react/jsx-runtime");
|
6
|
-
const ContentCopy_1 = tslib_1.__importDefault(require("@mui/icons-material/ContentCopy"));
|
7
|
-
const Visibility_1 = tslib_1.__importDefault(require("@mui/icons-material/Visibility"));
|
8
|
-
const material_1 = require("@mui/material");
|
9
|
-
const react_button_1 = require("@xylabs/react-button");
|
10
|
-
const payload_wrapper_1 = require("@xyo-network/payload-wrapper");
|
11
|
-
const react_property_1 = require("@xyo-network/react-property");
|
12
|
-
const react_shared_1 = require("@xyo-network/react-shared");
|
13
|
-
const react_1 = require("react");
|
14
|
-
const HashSourceDetails_1 = require("./HashSourceDetails");
|
15
|
-
const PayloadDataDetails = (_a) => {
|
16
|
-
var _b;
|
17
|
-
var { size, badge, payload } = _a, props = tslib_1.__rest(_a, ["size", "badge", "payload"]);
|
18
|
-
const wrapper = payload ? payload_wrapper_1.PayloadWrapper.wrap(payload) : undefined;
|
19
|
-
const [viewSourceOpen, setViewSourceOpen] = (0, react_1.useState)(false);
|
20
|
-
const hash = (0, react_shared_1.usePayloadHash)(payload);
|
21
|
-
let elevation = 2;
|
22
|
-
if (props.paper) {
|
23
|
-
elevation += (_b = props.elevation) !== null && _b !== void 0 ? _b : 0;
|
24
|
-
}
|
25
|
-
const actions = [
|
26
|
-
{
|
27
|
-
icon: (0, jsx_runtime_1.jsx)(Visibility_1.default, {}),
|
28
|
-
name: 'View',
|
29
|
-
onClick: () => setViewSourceOpen(true),
|
30
|
-
},
|
31
|
-
{
|
32
|
-
icon: (0, jsx_runtime_1.jsx)(ContentCopy_1.default, {}),
|
33
|
-
name: 'Copy',
|
34
|
-
onClick: () => tslib_1.__awaiter(void 0, void 0, void 0, function* () { return yield navigator.clipboard.writeText(hash !== null && hash !== void 0 ? hash : ''); }),
|
35
|
-
},
|
36
|
-
];
|
37
|
-
const onCopy = () => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
|
38
|
-
var _c;
|
39
|
-
yield navigator.clipboard.writeText((_c = wrapper === null || wrapper === void 0 ? void 0 : wrapper.stringified) !== null && _c !== void 0 ? _c : '');
|
40
|
-
});
|
41
|
-
return ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(react_property_1.Property, Object.assign({ titleProps: { elevation }, badge: badge, size: size, actions: actions, title: "Payload Hash", value: hash !== null && hash !== void 0 ? hash : '<Unknown>', tip: "This is the payload hash" }, props)), (0, jsx_runtime_1.jsxs)(material_1.Dialog, Object.assign({ open: viewSourceOpen, onClose: () => setViewSourceOpen(false) }, { children: [(0, jsx_runtime_1.jsx)(material_1.DialogTitle, { children: "Hash Source" }), (0, jsx_runtime_1.jsx)(material_1.DialogContent, { children: (0, jsx_runtime_1.jsx)(HashSourceDetails_1.PayloadHashSourceDetails, { noTitle: true, payload: payload }) }), (0, jsx_runtime_1.jsxs)(material_1.DialogActions, { children: [(0, jsx_runtime_1.jsx)(react_button_1.ButtonEx, Object.assign({ color: "secondary", onClick: onCopy }, { children: "Copy" })), (0, jsx_runtime_1.jsx)(react_button_1.ButtonEx, Object.assign({ color: "secondary", onClick: () => setViewSourceOpen(false) }, { children: "Close" }))] })] }))] }));
|
42
|
-
};
|
43
|
-
exports.PayloadDataDetails = PayloadDataDetails;
|
44
|
-
//# sourceMappingURL=DataDetails.js.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"DataDetails.js","sourceRoot":"","sources":["../../../../src/components/Details/DataDetails.tsx"],"names":[],"mappings":";;;;;AAAA,0FAA6D;AAC7D,wFAA2D;AAC3D,4CAAiF;AACjF,uDAA+C;AAE/C,kEAA6D;AAC7D,gEAAqF;AACrF,4DAAoE;AACpE,iCAAgC;AAEhC,2DAA8D;AAQvD,MAAM,kBAAkB,GAAsC,CAAC,EAAkC,EAAE,EAAE;;QAAtC,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,OAAY,EAAP,KAAK,sBAAhC,4BAAkC,CAAF;IACpG,MAAM,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,gCAAc,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;IAElE,MAAM,CAAC,cAAc,EAAE,iBAAiB,CAAC,GAAG,IAAA,gBAAQ,EAAC,KAAK,CAAC,CAAA;IAC3D,MAAM,IAAI,GAAG,IAAA,6BAAc,EAAC,OAAO,CAAC,CAAA;IAEpC,IAAI,SAAS,GAAG,CAAC,CAAA;IACjB,IAAI,KAAK,CAAC,KAAK,EAAE;QACf,SAAS,IAAI,MAAA,KAAK,CAAC,SAAS,mCAAI,CAAC,CAAA;KAClC;IAED,MAAM,OAAO,GAAqB;QAChC;YACE,IAAI,EAAE,uBAAC,oBAAc,KAAG;YACxB,IAAI,EAAE,MAAM;YACZ,OAAO,EAAE,GAAG,EAAE,CAAC,iBAAiB,CAAC,IAAI,CAAC;SACvC;QACD;YACE,IAAI,EAAE,uBAAC,qBAAe,KAAG;YACzB,IAAI,EAAE,MAAM;YACZ,OAAO,EAAE,GAAS,EAAE,0DAAC,OAAA,MAAM,SAAS,CAAC,SAAS,CAAC,SAAS,CAAC,IAAI,aAAJ,IAAI,cAAJ,IAAI,GAAI,EAAE,CAAC,CAAA,GAAA;SACrE;KACF,CAAA;IAED,MAAM,MAAM,GAAG,GAAS,EAAE;;QACxB,MAAM,SAAS,CAAC,SAAS,CAAC,SAAS,CAAC,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,WAAW,mCAAI,EAAE,CAAC,CAAA;IACjE,CAAC,CAAA,CAAA;IAED,OAAO,CACL,6DACE,uBAAC,yBAAQ,kBACP,UAAU,EAAE,EAAE,SAAS,EAAE,EACzB,KAAK,EAAE,KAAK,EACZ,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,OAAO,EAChB,KAAK,EAAC,cAAc,EACpB,KAAK,EAAE,IAAI,aAAJ,IAAI,cAAJ,IAAI,GAAI,WAAW,EAC1B,GAAG,EAAC,0BAA0B,IAC1B,KAAK,EACT,EACF,wBAAC,iBAAM,kBAAC,IAAI,EAAE,cAAc,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,iBAAiB,CAAC,KAAK,CAAC,iBACnE,uBAAC,sBAAW,8BAA0B,EACtC,uBAAC,wBAAa,cACZ,uBAAC,4CAAwB,IAAC,OAAO,QAAC,OAAO,EAAE,OAAO,GAAI,GACxC,EAChB,wBAAC,wBAAa,eACZ,uBAAC,uBAAQ,kBAAC,KAAK,EAAC,WAAW,EAAC,OAAO,EAAE,MAAM,0BAEhC,EACX,uBAAC,uBAAQ,kBAAC,KAAK,EAAC,WAAW,EAAC,OAAO,EAAE,GAAG,EAAE,CAAC,iBAAiB,CAAC,KAAK,CAAC,2BAExD,IACG,KACT,IACR,CACJ,CAAA;AACH,CAAC,CAAA;AAxDY,QAAA,kBAAkB,sBAwD9B"}
|
@@ -1,16 +0,0 @@
|
|
1
|
-
"use strict";
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
-
exports.PayloadDetails = void 0;
|
4
|
-
const tslib_1 = require("tslib");
|
5
|
-
const jsx_runtime_1 = require("react/jsx-runtime");
|
6
|
-
const react_flexbox_1 = require("@xylabs/react-flexbox");
|
7
|
-
const react_1 = require("react");
|
8
|
-
const DataDetails_1 = require("./DataDetails");
|
9
|
-
const JsonDetails_1 = require("./JsonDetails");
|
10
|
-
const ValidationDetails_1 = require("./ValidationDetails");
|
11
|
-
exports.PayloadDetails = (0, react_1.forwardRef)((_a, ref) => {
|
12
|
-
var { paper, payload } = _a, props = tslib_1.__rest(_a, ["paper", "payload"]);
|
13
|
-
return ((0, jsx_runtime_1.jsxs)(react_flexbox_1.FlexCol, Object.assign({ gap: 1, justifyContent: "flex-start", alignItems: "stretch", marginTop: 2, marginBottom: 8, ref: ref }, props, { children: [(0, jsx_runtime_1.jsx)(DataDetails_1.PayloadDataDetails, { paper: paper, size: "large", badge: true, payload: payload }), (0, jsx_runtime_1.jsx)(ValidationDetails_1.PayloadValidationDetails, { paper: paper, value: payload }), (0, jsx_runtime_1.jsx)(JsonDetails_1.PayloadJsonDetails, { paper: paper, payload: payload })] })));
|
14
|
-
});
|
15
|
-
exports.PayloadDetails.displayName = 'PayloadDetails';
|
16
|
-
//# sourceMappingURL=Details.js.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"Details.js","sourceRoot":"","sources":["../../../../src/components/Details/Details.tsx"],"names":[],"mappings":";;;;;AAAA,yDAA6D;AAE7D,iCAAkC;AAElC,+CAAkD;AAClD,+CAAkD;AAClD,2DAA8D;AAUjD,QAAA,cAAc,GAAG,IAAA,kBAAU,EAAsC,CAAC,EAA4B,EAAE,GAAG,EAAE,EAAE;QAArC,EAAE,KAAK,EAAE,OAAO,OAAY,EAAP,KAAK,sBAA1B,oBAA4B,CAAF;IACvG,OAAO,CACL,wBAAC,uBAAO,kBAAC,GAAG,EAAE,CAAC,EAAE,cAAc,EAAC,YAAY,EAAC,UAAU,EAAC,SAAS,EAAC,SAAS,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,IAAM,KAAK,eAClH,uBAAC,gCAAkB,IAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAC,OAAO,EAAC,KAAK,QAAC,OAAO,EAAE,OAAO,GAAI,EACzE,uBAAC,4CAAwB,IAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,GAAI,EAC1D,uBAAC,gCAAkB,IAAC,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,GAAI,KAC9C,CACX,CAAA;AACH,CAAC,CAAC,CAAA;AAEF,sBAAc,CAAC,WAAW,GAAG,gBAAgB,CAAA"}
|
@@ -1,19 +0,0 @@
|
|
1
|
-
"use strict";
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
-
exports.PayloadHashSourceDetails = void 0;
|
4
|
-
const tslib_1 = require("tslib");
|
5
|
-
const jsx_runtime_1 = require("react/jsx-runtime");
|
6
|
-
const ContentCopy_1 = tslib_1.__importDefault(require("@mui/icons-material/ContentCopy"));
|
7
|
-
const material_1 = require("@mui/material");
|
8
|
-
const react_flexbox_1 = require("@xylabs/react-flexbox");
|
9
|
-
const react_quick_tip_button_1 = require("@xylabs/react-quick-tip-button");
|
10
|
-
const payload_wrapper_1 = require("@xyo-network/payload-wrapper");
|
11
|
-
const PayloadHashSourceDetails = (_a) => {
|
12
|
-
var _b;
|
13
|
-
var { noTitle = false, payload } = _a, props = tslib_1.__rest(_a, ["noTitle", "payload"]);
|
14
|
-
const theme = (0, material_1.useTheme)();
|
15
|
-
const payloadWrapper = payload ? payload_wrapper_1.PayloadWrapper.wrap(payload) : null;
|
16
|
-
return ((0, jsx_runtime_1.jsxs)(react_flexbox_1.FlexCol, Object.assign({ alignItems: "stretch" }, props, { children: [noTitle ? null : ((0, jsx_runtime_1.jsxs)(react_flexbox_1.FlexRow, Object.assign({ margin: 1, justifyContent: "flex-start" }, { children: [(0, jsx_runtime_1.jsx)(material_1.Typography, { children: "Hash Source" }), (0, jsx_runtime_1.jsx)(react_quick_tip_button_1.QuickTipButton, Object.assign({ title: "Hash Source" }, { children: "The actual string used to generate the hash (SHA256)" }))] }))), (0, jsx_runtime_1.jsxs)(react_flexbox_1.FlexRow, { children: [(0, jsx_runtime_1.jsx)(react_flexbox_1.FlexGrowRow, Object.assign({ background: true, border: 1, borderColor: theme.palette.divider, justifyContent: "start" }, { children: (0, jsx_runtime_1.jsx)(material_1.Typography, Object.assign({ padding: 2, fontFamily: "monospace", variant: "body1", sx: { overflowWrap: 'break-word', wordBreak: 'break-all' } }, { children: (_b = payloadWrapper === null || payloadWrapper === void 0 ? void 0 : payloadWrapper.stringified) !== null && _b !== void 0 ? _b : '' })) })), (0, jsx_runtime_1.jsx)(material_1.IconButton, { children: (0, jsx_runtime_1.jsx)(ContentCopy_1.default, {}) })] }), noTitle ? ((0, jsx_runtime_1.jsx)(react_flexbox_1.FlexRow, Object.assign({ margin: 1, justifyContent: "flex-start" }, { children: (0, jsx_runtime_1.jsx)(material_1.Typography, Object.assign({ variant: "body2" }, { children: "The actual string used to generate the hash (SHA256). This can be used to validate the hash manually." })) }))) : null] })));
|
17
|
-
};
|
18
|
-
exports.PayloadHashSourceDetails = PayloadHashSourceDetails;
|
19
|
-
//# sourceMappingURL=HashSourceDetails.js.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"HashSourceDetails.js","sourceRoot":"","sources":["../../../../src/components/Details/HashSourceDetails.tsx"],"names":[],"mappings":";;;;;AAAA,0FAA6D;AAC7D,4CAAgE;AAChE,yDAAmF;AACnF,2EAA+D;AAE/D,kEAA6D;AAOtD,MAAM,wBAAwB,GAA4C,CAAC,EAAsC,EAAE,EAAE;;QAA1C,EAAE,OAAO,GAAG,KAAK,EAAE,OAAO,OAAY,EAAP,KAAK,sBAApC,sBAAsC,CAAF;IACpH,MAAM,KAAK,GAAG,IAAA,mBAAQ,GAAE,CAAA;IACxB,MAAM,cAAc,GAAG,OAAO,CAAC,CAAC,CAAC,gCAAc,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;IAEpE,OAAO,CACL,wBAAC,uBAAO,kBAAC,UAAU,EAAC,SAAS,IAAK,KAAK,eACpC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAChB,wBAAC,uBAAO,kBAAC,MAAM,EAAE,CAAC,EAAE,cAAc,EAAC,YAAY,iBAC7C,uBAAC,qBAAU,8BAAyB,EACpC,uBAAC,uCAAc,kBAAC,KAAK,EAAC,aAAa,0EAAsE,KACjG,CACX,EACD,wBAAC,uBAAO,eACN,uBAAC,2BAAW,kBAAC,UAAU,QAAC,MAAM,EAAE,CAAC,EAAE,WAAW,EAAE,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE,cAAc,EAAC,OAAO,gBAC3F,uBAAC,qBAAU,kBAAC,OAAO,EAAE,CAAC,EAAE,UAAU,EAAC,WAAW,EAAC,OAAO,EAAC,OAAO,EAAC,EAAE,EAAE,EAAE,YAAY,EAAE,YAAY,EAAE,SAAS,EAAE,WAAW,EAAE,gBACtH,MAAA,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAE,WAAW,mCAAI,EAAE,IACvB,IACD,EACd,uBAAC,qBAAU,cACT,uBAAC,qBAAe,KAAG,GACR,IACL,EACT,OAAO,CAAC,CAAC,CAAC,CACT,uBAAC,uBAAO,kBAAC,MAAM,EAAE,CAAC,EAAE,cAAc,EAAC,YAAY,gBAC7C,uBAAC,qBAAU,kBAAC,OAAO,EAAC,OAAO,2HAEd,IACL,CACX,CAAC,CAAC,CAAC,IAAI,KACA,CACX,CAAA;AACH,CAAC,CAAA;AA/BY,QAAA,wBAAwB,4BA+BpC"}
|
@@ -1,24 +0,0 @@
|
|
1
|
-
"use strict";
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
-
exports.PayloadJsonDetails = void 0;
|
4
|
-
const tslib_1 = require("tslib");
|
5
|
-
const jsx_runtime_1 = require("react/jsx-runtime");
|
6
|
-
const material_1 = require("@mui/material");
|
7
|
-
const react_flexbox_1 = require("@xylabs/react-flexbox");
|
8
|
-
const react_property_1 = require("@xyo-network/react-property");
|
9
|
-
const react_1 = require("react");
|
10
|
-
const JsonView = (0, react_1.lazy)(() => Promise.resolve().then(() => tslib_1.__importStar(require(/* webpackChunkName: "jsonView" */ 'react-json-view'))));
|
11
|
-
const PayloadJsonDetails = (_a) => {
|
12
|
-
var _b;
|
13
|
-
var { jsonViewProps, payload = {} } = _a, props = tslib_1.__rest(_a, ["jsonViewProps", "payload"]);
|
14
|
-
const { breakpoints, palette } = (0, material_1.useTheme)();
|
15
|
-
const belowSm = (0, material_1.useMediaQuery)(breakpoints.down('sm'));
|
16
|
-
let elevation = 2;
|
17
|
-
if (props.paper) {
|
18
|
-
elevation += (_b = props.elevation) !== null && _b !== void 0 ? _b : 0;
|
19
|
-
}
|
20
|
-
const jsonTheme = palette.mode === 'dark' ? 'shapeshifter' : undefined;
|
21
|
-
return ((0, jsx_runtime_1.jsx)(react_property_1.PropertyGroup, Object.assign({ titleProps: { elevation }, title: "JSON", tip: "The raw JSON of the payload" }, props, { children: (0, jsx_runtime_1.jsx)(material_1.Paper, Object.assign({ square: true, variant: "elevation", style: { overflow: 'hidden', padding: '16px', width: '100%' } }, { children: (0, jsx_runtime_1.jsx)(react_1.Suspense, Object.assign({ fallback: (0, jsx_runtime_1.jsx)(react_flexbox_1.FlexGrowRow, {}) }, { children: (0, jsx_runtime_1.jsx)(JsonView, Object.assign({ groupArraysAfterLength: 20, style: { backgroundColor: undefined, overflow: 'hidden' }, src: payload, enableClipboard: true, theme: jsonTheme, collapseStringsAfterLength: belowSm ? 24 : 32 }, jsonViewProps)) })) })) })));
|
22
|
-
};
|
23
|
-
exports.PayloadJsonDetails = PayloadJsonDetails;
|
24
|
-
//# sourceMappingURL=JsonDetails.js.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"JsonDetails.js","sourceRoot":"","sources":["../../../../src/components/Details/JsonDetails.tsx"],"names":[],"mappings":";;;;;AAAA,4CAA8D;AAC9D,yDAAmD;AAEnD,gEAA+E;AAC/E,iCAAsC;AAGtC,MAAM,QAAQ,GAAG,IAAA,YAAI,EAAC,GAAG,EAAE,2DAAQ,kCAAkC,CAAC,iBAAiB,GAAC,CAAC,CAAA;AAOlF,MAAM,kBAAkB,GAAsC,CAAC,EAAyC,EAAE,EAAE;;QAA7C,EAAE,aAAa,EAAE,OAAO,GAAG,EAAE,OAAY,EAAP,KAAK,sBAAvC,4BAAyC,CAAF;IAC3G,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,GAAG,IAAA,mBAAQ,GAAE,CAAA;IAC3C,MAAM,OAAO,GAAG,IAAA,wBAAa,EAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAA;IAErD,IAAI,SAAS,GAAG,CAAC,CAAA;IACjB,IAAI,KAAK,CAAC,KAAK,EAAE;QACf,SAAS,IAAI,MAAA,KAAK,CAAC,SAAS,mCAAI,CAAC,CAAA;KAClC;IAED,MAAM,SAAS,GAAG,OAAO,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,SAAS,CAAA;IAEtE,OAAO,CACL,uBAAC,8BAAa,kBAAC,UAAU,EAAE,EAAE,SAAS,EAAE,EAAE,KAAK,EAAC,MAAM,EAAC,GAAG,EAAC,6BAA6B,IAAK,KAAK,cAChG,uBAAC,gBAAK,kBAAC,MAAM,QAAC,OAAO,EAAC,WAAW,EAAC,KAAK,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,gBAC7F,uBAAC,gBAAQ,kBAAC,QAAQ,EAAE,uBAAC,2BAAW,KAAG,gBACjC,uBAAC,QAAQ,kBACP,sBAAsB,EAAE,EAAE,EAC1B,KAAK,EAAE,EAAE,eAAe,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,EACzD,GAAG,EAAE,OAAO,EACZ,eAAe,QACf,KAAK,EAAE,SAAS,EAChB,0BAA0B,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IACzC,aAAa,EACjB,IACO,IACL,IACM,CACjB,CAAA;AACH,CAAC,CAAA;AA5BY,QAAA,kBAAkB,sBA4B9B"}
|
@@ -1,27 +0,0 @@
|
|
1
|
-
"use strict";
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
-
exports.PayloadValidationDetails = void 0;
|
4
|
-
const tslib_1 = require("tslib");
|
5
|
-
const jsx_runtime_1 = require("react/jsx-runtime");
|
6
|
-
const material_1 = require("@mui/material");
|
7
|
-
const react_flexbox_1 = require("@xylabs/react-flexbox");
|
8
|
-
const react_promise_1 = require("@xylabs/react-promise");
|
9
|
-
const payload_validator_1 = require("@xyo-network/payload-validator");
|
10
|
-
const react_property_1 = require("@xyo-network/react-property");
|
11
|
-
const react_schema_1 = require("@xyo-network/react-schema");
|
12
|
-
const PayloadValidationDetails = (_a) => {
|
13
|
-
var _b;
|
14
|
-
var { skipBody = false, value } = _a, props = tslib_1.__rest(_a, ["skipBody", "value"]);
|
15
|
-
const [validateErrors] = (0, react_promise_1.usePromise)(() => tslib_1.__awaiter(void 0, void 0, void 0, function* () { return (value ? yield new payload_validator_1.PayloadValidator(value).validate() : undefined); }), [value]);
|
16
|
-
const bodyErrors = skipBody ? [] : validateErrors !== null && validateErrors !== void 0 ? validateErrors : [];
|
17
|
-
const errors = [...bodyErrors];
|
18
|
-
let elevation = 2;
|
19
|
-
if (props.paper) {
|
20
|
-
elevation += (_b = props.elevation) !== null && _b !== void 0 ? _b : 0;
|
21
|
-
}
|
22
|
-
return ((0, jsx_runtime_1.jsxs)(react_property_1.PropertyGroup, Object.assign({ titleProps: { elevation }, title: "Validation", tip: "The results from validating the payload" }, props, { children: [(0, jsx_runtime_1.jsx)(react_property_1.Property, { titleProps: { elevation }, flexGrow: 1, title: "Valid", value: errors.length === 0 ? 'True' : 'False', tip: errors.length > 0 ? ((0, jsx_runtime_1.jsx)(react_flexbox_1.FlexCol, { children: errors.map((error, index) => {
|
23
|
-
return (0, jsx_runtime_1.jsx)(material_1.Typography, { children: error.toString() }, index);
|
24
|
-
}) })) : ((0, jsx_runtime_1.jsx)(material_1.Typography, { children: "No Errors" })) }), (value === null || value === void 0 ? void 0 : value.schema) && (0, jsx_runtime_1.jsx)(react_schema_1.SchemaProperty, { flexGrow: 1, titleProps: { elevation }, value: value.schema })] })));
|
25
|
-
};
|
26
|
-
exports.PayloadValidationDetails = PayloadValidationDetails;
|
27
|
-
//# sourceMappingURL=ValidationDetails.js.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"ValidationDetails.js","sourceRoot":"","sources":["../../../../../src/components/Details/ValidationDetails/ValidationDetails.tsx"],"names":[],"mappings":";;;;;AAAA,4CAA0C;AAC1C,yDAA+C;AAC/C,yDAAkD;AAClD,sEAAiE;AACjE,gEAAqE;AACrE,4DAA0D;AAInD,MAAM,wBAAwB,GAA4C,CAAC,EAAqC,EAAE,EAAE;;QAAzC,EAAE,QAAQ,GAAG,KAAK,EAAE,KAAK,OAAY,EAAP,KAAK,sBAAnC,qBAAqC,CAAF;IACnH,MAAM,CAAC,cAAc,CAAC,GAAG,IAAA,0BAAU,EAAC,GAAS,EAAE,0DAAC,OAAA,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,IAAI,oCAAgB,CAAC,KAAK,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAA,GAAA,EAAE,CAAC,KAAK,CAAC,CAAC,CAAA;IAE5H,MAAM,UAAU,GAAG,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,cAAc,aAAd,cAAc,cAAd,cAAc,GAAI,EAAE,CAAA;IACvD,MAAM,MAAM,GAAY,CAAC,GAAG,UAAU,CAAC,CAAA;IAEvC,IAAI,SAAS,GAAG,CAAC,CAAA;IACjB,IAAI,KAAK,CAAC,KAAK,EAAE;QACf,SAAS,IAAI,MAAA,KAAK,CAAC,SAAS,mCAAI,CAAC,CAAA;KAClC;IAED,OAAO,CACL,wBAAC,8BAAa,kBAAC,UAAU,EAAE,EAAE,SAAS,EAAE,EAAE,KAAK,EAAC,YAAY,EAAC,GAAG,EAAC,yCAAyC,IAAK,KAAK,eAClH,uBAAC,yBAAQ,IACP,UAAU,EAAE,EAAE,SAAS,EAAE,EACzB,QAAQ,EAAE,CAAC,EACX,KAAK,EAAC,OAAO,EACb,KAAK,EAAE,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,EAC7C,GAAG,EACD,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAClB,uBAAC,uBAAO,cACL,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;wBAC3B,OAAO,uBAAC,qBAAU,cAAc,KAAK,CAAC,QAAQ,EAAE,IAAxB,KAAK,CAAiC,CAAA;oBAChE,CAAC,CAAC,GACM,CACX,CAAC,CAAC,CAAC,CACF,uBAAC,qBAAU,4BAAuB,CACnC,GAEH,EACD,CAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,MAAM,KAAI,uBAAC,6BAAc,IAAC,QAAQ,EAAE,CAAC,EAAE,UAAU,EAAE,EAAE,SAAS,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,MAAM,GAAI,KACnF,CACjB,CAAA;AACH,CAAC,CAAA;AAjCY,QAAA,wBAAwB,4BAiCpC"}
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"ValidationDetailsProps.js","sourceRoot":"","sources":["../../../../../src/components/Details/ValidationDetails/ValidationDetailsProps.ts"],"names":[],"mappings":""}
|
@@ -1,6 +0,0 @@
|
|
1
|
-
"use strict";
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
-
const tslib_1 = require("tslib");
|
4
|
-
tslib_1.__exportStar(require("./ValidationDetails"), exports);
|
5
|
-
tslib_1.__exportStar(require("./ValidationDetailsProps"), exports);
|
6
|
-
//# sourceMappingURL=index.js.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/components/Details/ValidationDetails/index.ts"],"names":[],"mappings":";;;AAAA,8DAAmC;AACnC,mEAAwC"}
|
@@ -1,8 +0,0 @@
|
|
1
|
-
"use strict";
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
-
const tslib_1 = require("tslib");
|
4
|
-
tslib_1.__exportStar(require("./DataDetails"), exports);
|
5
|
-
tslib_1.__exportStar(require("./Details"), exports);
|
6
|
-
tslib_1.__exportStar(require("./JsonDetails"), exports);
|
7
|
-
tslib_1.__exportStar(require("./ValidationDetails"), exports);
|
8
|
-
//# sourceMappingURL=index.js.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/Details/index.ts"],"names":[],"mappings":";;;AAAA,wDAA6B;AAC7B,oDAAyB;AACzB,wDAA6B;AAC7B,8DAAmC"}
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/index.ts"],"names":[],"mappings":";;;AAAA,oDAAyB"}
|
package/dist/cjs/index.js
DELETED
package/dist/cjs/index.js.map
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;AAAA,uDAA4B"}
|
@@ -1,36 +0,0 @@
|
|
1
|
-
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
2
|
-
import ContentCopyIcon from '@mui/icons-material/ContentCopy';
|
3
|
-
import VisibilityIcon from '@mui/icons-material/Visibility';
|
4
|
-
import { Dialog, DialogActions, DialogContent, DialogTitle } from '@mui/material';
|
5
|
-
import { ButtonEx } from '@xylabs/react-button';
|
6
|
-
import { PayloadWrapper } from '@xyo-network/payload-wrapper';
|
7
|
-
import { Property } from '@xyo-network/react-property';
|
8
|
-
import { usePayloadHash } from '@xyo-network/react-shared';
|
9
|
-
import { useState } from 'react';
|
10
|
-
import { PayloadHashSourceDetails } from './HashSourceDetails';
|
11
|
-
export const PayloadDataDetails = ({ size, badge, payload, ...props }) => {
|
12
|
-
const wrapper = payload ? PayloadWrapper.wrap(payload) : undefined;
|
13
|
-
const [viewSourceOpen, setViewSourceOpen] = useState(false);
|
14
|
-
const hash = usePayloadHash(payload);
|
15
|
-
let elevation = 2;
|
16
|
-
if (props.paper) {
|
17
|
-
elevation += props.elevation ?? 0;
|
18
|
-
}
|
19
|
-
const actions = [
|
20
|
-
{
|
21
|
-
icon: _jsx(VisibilityIcon, {}),
|
22
|
-
name: 'View',
|
23
|
-
onClick: () => setViewSourceOpen(true),
|
24
|
-
},
|
25
|
-
{
|
26
|
-
icon: _jsx(ContentCopyIcon, {}),
|
27
|
-
name: 'Copy',
|
28
|
-
onClick: async () => await navigator.clipboard.writeText(hash ?? ''),
|
29
|
-
},
|
30
|
-
];
|
31
|
-
const onCopy = async () => {
|
32
|
-
await navigator.clipboard.writeText(wrapper?.stringified ?? '');
|
33
|
-
};
|
34
|
-
return (_jsxs(_Fragment, { children: [_jsx(Property, { titleProps: { elevation }, badge: badge, size: size, actions: actions, title: "Payload Hash", value: hash ?? '<Unknown>', tip: "This is the payload hash", ...props }), _jsxs(Dialog, { open: viewSourceOpen, onClose: () => setViewSourceOpen(false), children: [_jsx(DialogTitle, { children: "Hash Source" }), _jsx(DialogContent, { children: _jsx(PayloadHashSourceDetails, { noTitle: true, payload: payload }) }), _jsxs(DialogActions, { children: [_jsx(ButtonEx, { color: "secondary", onClick: onCopy, children: "Copy" }), _jsx(ButtonEx, { color: "secondary", onClick: () => setViewSourceOpen(false), children: "Close" })] })] })] }));
|
35
|
-
};
|
36
|
-
//# sourceMappingURL=DataDetails.js.map
|