@availity/mui-tree 0.2.1 → 0.2.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/CHANGELOG.md +14 -0
- package/dist/index.d.mts +7 -1
- package/dist/index.d.ts +7 -1
- package/dist/index.js +30 -0
- package/dist/index.mjs +29 -0
- package/package.json +1 -1
- package/src/index.ts +1 -0
- package/src/lib/JsonViewer.stories.tsx +1 -1
- package/src/lib/JsonViewer.test.tsx +1 -1
- package/src/lib/JsonViewer.tsx +1 -3
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,20 @@
|
|
|
2
2
|
|
|
3
3
|
This file was generated using [@jscutlery/semver](https://github.com/jscutlery/semver).
|
|
4
4
|
|
|
5
|
+
## [0.2.3](https://github.com/Availity/element/compare/@availity/mui-tree@0.2.2...@availity/mui-tree@0.2.3) (2024-11-22)
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
### Bug Fixes
|
|
9
|
+
|
|
10
|
+
* **mui-tree:** don't export JsonViewer as default ([404861f](https://github.com/Availity/element/commit/404861f4cb98a0dc3237b60c4d199ab24bbb3447))
|
|
11
|
+
|
|
12
|
+
## [0.2.2](https://github.com/Availity/element/compare/@availity/mui-tree@0.2.1...@availity/mui-tree@0.2.2) (2024-11-21)
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
### Bug Fixes
|
|
16
|
+
|
|
17
|
+
* **mui-tree:** export JsonViewer ([23f0c96](https://github.com/Availity/element/commit/23f0c9669af657f7332998ad57e54b7c4eaa598f))
|
|
18
|
+
|
|
5
19
|
## [0.2.1](https://github.com/Availity/element/compare/@availity/mui-tree@0.2.0...@availity/mui-tree@0.2.1) (2024-10-31)
|
|
6
20
|
|
|
7
21
|
### Dependency Updates
|
package/dist/index.d.mts
CHANGED
|
@@ -14,4 +14,10 @@ interface TreeItemProps extends TreeItem2Props {
|
|
|
14
14
|
}
|
|
15
15
|
declare const TreeItem: ({ children, label, slots, slotProps, truncate, ...rest }: TreeItemProps) => JSX.Element;
|
|
16
16
|
|
|
17
|
-
|
|
17
|
+
interface JsonViewerProps extends Omit<TreeViewProps, 'children'> {
|
|
18
|
+
/** Data to be rendered, can be most valid javascript objects, some uncommon types may not by fully supported - like cyclical objects, proxies, symbols as keys. */
|
|
19
|
+
data: Record<string, unknown>;
|
|
20
|
+
}
|
|
21
|
+
declare const JsonViewer: ({ data, ...rest }: JsonViewerProps) => JSX.Element;
|
|
22
|
+
|
|
23
|
+
export { DynamicTreeView, type DynamicTreeViewProps, JsonViewer, type JsonViewerProps, TreeItem, type TreeItemProps, TreeView, type TreeViewProps };
|
package/dist/index.d.ts
CHANGED
|
@@ -14,4 +14,10 @@ interface TreeItemProps extends TreeItem2Props {
|
|
|
14
14
|
}
|
|
15
15
|
declare const TreeItem: ({ children, label, slots, slotProps, truncate, ...rest }: TreeItemProps) => JSX.Element;
|
|
16
16
|
|
|
17
|
-
|
|
17
|
+
interface JsonViewerProps extends Omit<TreeViewProps, 'children'> {
|
|
18
|
+
/** Data to be rendered, can be most valid javascript objects, some uncommon types may not by fully supported - like cyclical objects, proxies, symbols as keys. */
|
|
19
|
+
data: Record<string, unknown>;
|
|
20
|
+
}
|
|
21
|
+
declare const JsonViewer: ({ data, ...rest }: JsonViewerProps) => JSX.Element;
|
|
22
|
+
|
|
23
|
+
export { DynamicTreeView, type DynamicTreeViewProps, JsonViewer, type JsonViewerProps, TreeItem, type TreeItemProps, TreeView, type TreeViewProps };
|
package/dist/index.js
CHANGED
|
@@ -50,6 +50,7 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
|
|
|
50
50
|
var src_exports = {};
|
|
51
51
|
__export(src_exports, {
|
|
52
52
|
DynamicTreeView: () => DynamicTreeView,
|
|
53
|
+
JsonViewer: () => JsonViewer,
|
|
53
54
|
TreeItem: () => TreeItem,
|
|
54
55
|
TreeView: () => TreeView
|
|
55
56
|
});
|
|
@@ -104,9 +105,38 @@ var DynamicTreeView = (_a) => {
|
|
|
104
105
|
var _b = _a, { children, slots } = _b, rest = __objRest(_b, ["children", "slots"]);
|
|
105
106
|
return /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(import_RichTreeView.RichTreeView, __spreadProps(__spreadValues({}, rest), { slots: __spreadProps(__spreadValues({}, slots), { item: TreeItem }), children }));
|
|
106
107
|
};
|
|
108
|
+
|
|
109
|
+
// src/lib/JsonViewer.tsx
|
|
110
|
+
var import_jsx_runtime4 = require("react/jsx-runtime");
|
|
111
|
+
var isPrimitive = (value) => {
|
|
112
|
+
return ["string", "number", "boolean"].includes(typeof value);
|
|
113
|
+
};
|
|
114
|
+
var isObject = (value) => {
|
|
115
|
+
return !!value && typeof value === "object";
|
|
116
|
+
};
|
|
117
|
+
var getDetails = ({ data }) => {
|
|
118
|
+
return Object.entries(data).map((entry) => {
|
|
119
|
+
const [key, value] = entry;
|
|
120
|
+
if (isPrimitive(value)) {
|
|
121
|
+
const label = `${key}: ${value.toString()}`;
|
|
122
|
+
return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(TreeItem, { label, itemId: `${key}.${value}` }, `${key}.${value}`);
|
|
123
|
+
}
|
|
124
|
+
if (isObject(value)) {
|
|
125
|
+
const label = `${key}: ${Array.isArray(value) ? `[ ] ${value.length} items` : `{ } ${Object.keys(value).length} keys`}`;
|
|
126
|
+
return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(TreeItem, { label, itemId: key, children: getDetails({ data: value }) }, key);
|
|
127
|
+
}
|
|
128
|
+
return null;
|
|
129
|
+
});
|
|
130
|
+
};
|
|
131
|
+
var JsonViewer = (_a) => {
|
|
132
|
+
var _b = _a, { data } = _b, rest = __objRest(_b, ["data"]);
|
|
133
|
+
const details = getDetails({ data });
|
|
134
|
+
return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(TreeView, __spreadProps(__spreadValues({}, rest), { children: details }));
|
|
135
|
+
};
|
|
107
136
|
// Annotate the CommonJS export names for ESM import in node:
|
|
108
137
|
0 && (module.exports = {
|
|
109
138
|
DynamicTreeView,
|
|
139
|
+
JsonViewer,
|
|
110
140
|
TreeItem,
|
|
111
141
|
TreeView
|
|
112
142
|
});
|
package/dist/index.mjs
CHANGED
|
@@ -79,8 +79,37 @@ var DynamicTreeView = (_a) => {
|
|
|
79
79
|
var _b = _a, { children, slots } = _b, rest = __objRest(_b, ["children", "slots"]);
|
|
80
80
|
return /* @__PURE__ */ jsx3(RichTreeView, __spreadProps(__spreadValues({}, rest), { slots: __spreadProps(__spreadValues({}, slots), { item: TreeItem }), children }));
|
|
81
81
|
};
|
|
82
|
+
|
|
83
|
+
// src/lib/JsonViewer.tsx
|
|
84
|
+
import { jsx as jsx4 } from "react/jsx-runtime";
|
|
85
|
+
var isPrimitive = (value) => {
|
|
86
|
+
return ["string", "number", "boolean"].includes(typeof value);
|
|
87
|
+
};
|
|
88
|
+
var isObject = (value) => {
|
|
89
|
+
return !!value && typeof value === "object";
|
|
90
|
+
};
|
|
91
|
+
var getDetails = ({ data }) => {
|
|
92
|
+
return Object.entries(data).map((entry) => {
|
|
93
|
+
const [key, value] = entry;
|
|
94
|
+
if (isPrimitive(value)) {
|
|
95
|
+
const label = `${key}: ${value.toString()}`;
|
|
96
|
+
return /* @__PURE__ */ jsx4(TreeItem, { label, itemId: `${key}.${value}` }, `${key}.${value}`);
|
|
97
|
+
}
|
|
98
|
+
if (isObject(value)) {
|
|
99
|
+
const label = `${key}: ${Array.isArray(value) ? `[ ] ${value.length} items` : `{ } ${Object.keys(value).length} keys`}`;
|
|
100
|
+
return /* @__PURE__ */ jsx4(TreeItem, { label, itemId: key, children: getDetails({ data: value }) }, key);
|
|
101
|
+
}
|
|
102
|
+
return null;
|
|
103
|
+
});
|
|
104
|
+
};
|
|
105
|
+
var JsonViewer = (_a) => {
|
|
106
|
+
var _b = _a, { data } = _b, rest = __objRest(_b, ["data"]);
|
|
107
|
+
const details = getDetails({ data });
|
|
108
|
+
return /* @__PURE__ */ jsx4(TreeView, __spreadProps(__spreadValues({}, rest), { children: details }));
|
|
109
|
+
};
|
|
82
110
|
export {
|
|
83
111
|
DynamicTreeView,
|
|
112
|
+
JsonViewer,
|
|
84
113
|
TreeItem,
|
|
85
114
|
TreeView
|
|
86
115
|
};
|
package/package.json
CHANGED
package/src/index.ts
CHANGED
package/src/lib/JsonViewer.tsx
CHANGED
|
@@ -35,9 +35,7 @@ const getDetails = ({ data }: JsonViewerProps): (JSX.Element | null)[] => {
|
|
|
35
35
|
});
|
|
36
36
|
};
|
|
37
37
|
|
|
38
|
-
const JsonViewer = ({ data, ...rest }: JsonViewerProps): JSX.Element => {
|
|
38
|
+
export const JsonViewer = ({ data, ...rest }: JsonViewerProps): JSX.Element => {
|
|
39
39
|
const details = getDetails({ data });
|
|
40
40
|
return <TreeView {...rest}>{details}</TreeView>;
|
|
41
41
|
};
|
|
42
|
-
|
|
43
|
-
export default JsonViewer;
|