@uiw/react-json-view 2.0.0-alpha.27 → 2.0.0-alpha.29
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/README.md +74 -7
- package/cjs/Container.js +2 -1
- package/cjs/comps/KeyValues.js +23 -12
- package/cjs/comps/NestedClose.d.ts +1 -0
- package/cjs/comps/NestedClose.js +14 -3
- package/cjs/comps/NestedOpen.js +26 -9
- package/cjs/index.d.ts +6 -0
- package/cjs/index.js +3 -1
- package/cjs/store/Symbols.d.ts +8 -1
- package/cjs/store.d.ts +1 -0
- package/cjs/symbol/index.d.ts +9 -9
- package/cjs/symbol/index.js +72 -21
- package/esm/Container.js +2 -1
- package/esm/comps/KeyValues.js +22 -11
- package/esm/comps/NestedClose.d.ts +1 -0
- package/esm/comps/NestedClose.js +13 -3
- package/esm/comps/NestedOpen.js +25 -9
- package/esm/index.d.ts +6 -0
- package/esm/index.js +3 -1
- package/esm/store/Symbols.d.ts +8 -1
- package/esm/store.d.ts +1 -0
- package/esm/symbol/index.d.ts +9 -9
- package/esm/symbol/index.js +76 -23
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -127,7 +127,6 @@ export default function Demo() {
|
|
|
127
127
|
}
|
|
128
128
|
```
|
|
129
129
|
|
|
130
|
-
|
|
131
130
|
Example of custom `vscode` theme styles:
|
|
132
131
|
|
|
133
132
|
```tsx mdx:preview
|
|
@@ -682,6 +681,74 @@ export default function Demo() {
|
|
|
682
681
|
|
|
683
682
|
This feature can be disabled with `highlightUpdates={false}`, and the default color can be changed with `--w-rjv-update-color`.
|
|
684
683
|
|
|
684
|
+
## Do not display array index
|
|
685
|
+
|
|
686
|
+
```tsx mdx:preview
|
|
687
|
+
import React, { Fragment } from 'react';
|
|
688
|
+
import JsonView from '@uiw/react-json-view';
|
|
689
|
+
|
|
690
|
+
export default function Demo() {
|
|
691
|
+
const value = { data: ["123", 23] }
|
|
692
|
+
return (
|
|
693
|
+
<JsonView value={value} style={{ '--w-rjv-background-color': '#ffffff' }}>
|
|
694
|
+
<JsonView.Colon render={(props, { parentValue, value, keyName }) => {
|
|
695
|
+
if (Array.isArray(parentValue) && props.children == ":") {
|
|
696
|
+
return <span />
|
|
697
|
+
}
|
|
698
|
+
return <span {...props} />
|
|
699
|
+
}}/>
|
|
700
|
+
<JsonView.KeyName
|
|
701
|
+
render={({ ...props }, { type, parentValue, value, keyName }) => {
|
|
702
|
+
if (Array.isArray(parentValue) && Number.isFinite( props.children)) {
|
|
703
|
+
return <span />
|
|
704
|
+
}
|
|
705
|
+
return <span {...props} />
|
|
706
|
+
}}
|
|
707
|
+
/>
|
|
708
|
+
</JsonView>
|
|
709
|
+
)
|
|
710
|
+
}
|
|
711
|
+
```
|
|
712
|
+
|
|
713
|
+
## Default Collapse/Expand
|
|
714
|
+
|
|
715
|
+
```tsx mdx:preview
|
|
716
|
+
import React from 'react';
|
|
717
|
+
import JsonView from '@uiw/react-json-view';
|
|
718
|
+
const object = {
|
|
719
|
+
string: 'Lorem ipsum dolor sit amet',
|
|
720
|
+
integer: 42,
|
|
721
|
+
float: 114.514,
|
|
722
|
+
object: {
|
|
723
|
+
'first-child': true,
|
|
724
|
+
'second-child': false,
|
|
725
|
+
'last-child': null,
|
|
726
|
+
},
|
|
727
|
+
nestedArray: [
|
|
728
|
+
[1, 2],
|
|
729
|
+
[3, 4],
|
|
730
|
+
],
|
|
731
|
+
}
|
|
732
|
+
export default function Demo() {
|
|
733
|
+
return (
|
|
734
|
+
<JsonView
|
|
735
|
+
value={object}
|
|
736
|
+
collapsed={2}
|
|
737
|
+
shouldExpandNodeInitially={(isExpanded, { value, keys, level }) => {
|
|
738
|
+
if (keys.length > 0 && keys[0] == "object") {
|
|
739
|
+
return true
|
|
740
|
+
}
|
|
741
|
+
return isExpanded
|
|
742
|
+
}}
|
|
743
|
+
style={{
|
|
744
|
+
'--w-rjv-background-color': '#ffffff',
|
|
745
|
+
}}
|
|
746
|
+
>
|
|
747
|
+
</JsonView>
|
|
748
|
+
)
|
|
749
|
+
}
|
|
750
|
+
```
|
|
751
|
+
|
|
685
752
|
## Modify Icon Style
|
|
686
753
|
|
|
687
754
|
Use built-in default icons.
|
|
@@ -812,17 +879,17 @@ export interface JsonViewProps<T extends object> extends React.DetailedHTMLProps
|
|
|
812
879
|
enableClipboard?: boolean;
|
|
813
880
|
/** When set to true, all nodes will be collapsed by default. Use an integer value to collapse at a particular depth. @default false */
|
|
814
881
|
collapsed?: boolean | number;
|
|
882
|
+
/** Determine whether the node should be expanded on the first render, or you can use collapsed to control the level of expansion (by default, the root is expanded). */
|
|
883
|
+
shouldExpandNodeInitially?: (
|
|
884
|
+
isExpanded: boolean,
|
|
885
|
+
props: { value?: T; keys: (number | string)[]; level: number },
|
|
886
|
+
) => boolean;
|
|
815
887
|
/** Whether to highlight updates. @default true */
|
|
816
888
|
highlightUpdates?: boolean;
|
|
817
889
|
/** Shorten long JSON strings, Set to `0` to disable this feature @default 30 */
|
|
818
890
|
shortenTextAfterLength?: number;
|
|
819
891
|
/** Callback function for when a treeNode is expanded or collapsed */
|
|
820
|
-
onExpand?: (props: {
|
|
821
|
-
expand: boolean;
|
|
822
|
-
value?: T;
|
|
823
|
-
keyid: string;
|
|
824
|
-
keyName?: string | number;
|
|
825
|
-
}) => void;
|
|
892
|
+
onExpand?: (props: { expand: boolean; value?: T; keyid: string; keyName?: string | number }) => void;
|
|
826
893
|
/** Fires event when you copy */
|
|
827
894
|
onCopied?: (text: string, value?: T) => void;
|
|
828
895
|
}
|
package/cjs/Container.js
CHANGED
|
@@ -63,7 +63,8 @@ var Container = exports.Container = /*#__PURE__*/(0, _react.forwardRef)(function
|
|
|
63
63
|
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_NestedClose.NestedClose, {
|
|
64
64
|
expandKey: subkeyid,
|
|
65
65
|
value: value,
|
|
66
|
-
level: level
|
|
66
|
+
level: level,
|
|
67
|
+
keys: keys
|
|
67
68
|
})]
|
|
68
69
|
}));
|
|
69
70
|
});
|
package/cjs/comps/KeyValues.js
CHANGED
|
@@ -5,9 +5,9 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
value: true
|
|
6
6
|
});
|
|
7
7
|
exports.KeyValuesItem = exports.KeyValues = exports.KayName = void 0;
|
|
8
|
-
var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
|
|
9
8
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
10
9
|
var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
|
|
10
|
+
var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
|
|
11
11
|
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
|
|
12
12
|
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
13
13
|
var _react = require("react");
|
|
@@ -35,9 +35,18 @@ var KeyValues = exports.KeyValues = function KeyValues(props) {
|
|
|
35
35
|
var _useStore = (0, _store.useStore)(),
|
|
36
36
|
objectSortKeys = _useStore.objectSortKeys,
|
|
37
37
|
indentWidth = _useStore.indentWidth,
|
|
38
|
-
collapsed = _useStore.collapsed
|
|
38
|
+
collapsed = _useStore.collapsed,
|
|
39
|
+
shouldExpandNodeInitially = _useStore.shouldExpandNodeInitially;
|
|
39
40
|
var isMyArray = Array.isArray(value);
|
|
40
|
-
var
|
|
41
|
+
var defaultExpanded = typeof collapsed === 'boolean' ? collapsed : typeof collapsed === 'number' ? level > collapsed : false;
|
|
42
|
+
var isExpanded = (_expands$expandKey = expands[expandKey]) !== null && _expands$expandKey !== void 0 ? _expands$expandKey : defaultExpanded;
|
|
43
|
+
if (expands[expandKey] === undefined && shouldExpandNodeInitially && shouldExpandNodeInitially(isExpanded, {
|
|
44
|
+
value: value,
|
|
45
|
+
keys: keys,
|
|
46
|
+
level: level
|
|
47
|
+
})) {
|
|
48
|
+
return null;
|
|
49
|
+
}
|
|
41
50
|
if (isExpanded) {
|
|
42
51
|
return null;
|
|
43
52
|
}
|
|
@@ -99,23 +108,25 @@ var KayName = exports.KayName = function KayName(props) {
|
|
|
99
108
|
highlightUpdates: highlightUpdates,
|
|
100
109
|
highlightContainer: highlightContainer
|
|
101
110
|
});
|
|
111
|
+
var compProps = {
|
|
112
|
+
keyName: keyName,
|
|
113
|
+
value: value,
|
|
114
|
+
keys: keys,
|
|
115
|
+
parentValue: parentValue
|
|
116
|
+
};
|
|
102
117
|
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_react.Fragment, {
|
|
103
118
|
children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)("span", {
|
|
104
119
|
ref: highlightContainer,
|
|
105
|
-
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_symbol.Quote, {
|
|
120
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_symbol.Quote, (0, _objectSpread2["default"])({
|
|
106
121
|
isNumber: isNumber,
|
|
107
122
|
"data-placement": "left"
|
|
108
|
-
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_KeyName.KeyNameComp, {
|
|
109
|
-
keyName: keyName,
|
|
110
|
-
value: value,
|
|
111
|
-
keys: keys,
|
|
112
|
-
parentValue: parentValue,
|
|
123
|
+
}, compProps)), /*#__PURE__*/(0, _jsxRuntime.jsx)(_KeyName.KeyNameComp, (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, compProps), {}, {
|
|
113
124
|
children: keyName
|
|
114
|
-
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_symbol.Quote, {
|
|
125
|
+
})), /*#__PURE__*/(0, _jsxRuntime.jsx)(_symbol.Quote, (0, _objectSpread2["default"])({
|
|
115
126
|
isNumber: isNumber,
|
|
116
127
|
"data-placement": "right"
|
|
117
|
-
})]
|
|
118
|
-
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_symbol.Colon, {})]
|
|
128
|
+
}, compProps))]
|
|
129
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_symbol.Colon, (0, _objectSpread2["default"])({}, compProps))]
|
|
119
130
|
});
|
|
120
131
|
};
|
|
121
132
|
KayName.displayName = 'JVR.KayName';
|
package/cjs/comps/NestedClose.js
CHANGED
|
@@ -12,14 +12,25 @@ var NestedClose = exports.NestedClose = function NestedClose(props) {
|
|
|
12
12
|
var _expands$expandKey;
|
|
13
13
|
var value = props.value,
|
|
14
14
|
expandKey = props.expandKey,
|
|
15
|
-
level = props.level
|
|
15
|
+
level = props.level,
|
|
16
|
+
_props$keys = props.keys,
|
|
17
|
+
keys = _props$keys === void 0 ? [] : _props$keys;
|
|
16
18
|
var expands = (0, _Expands.useExpandsStore)();
|
|
17
19
|
var isArray = Array.isArray(value);
|
|
18
20
|
var _useStore = (0, _store.useStore)(),
|
|
19
|
-
collapsed = _useStore.collapsed
|
|
21
|
+
collapsed = _useStore.collapsed,
|
|
22
|
+
shouldExpandNodeInitially = _useStore.shouldExpandNodeInitially;
|
|
20
23
|
var isMySet = value instanceof Set;
|
|
21
|
-
var
|
|
24
|
+
var defaultExpanded = typeof collapsed === 'boolean' ? collapsed : typeof collapsed === 'number' ? level > collapsed : false;
|
|
25
|
+
var isExpanded = (_expands$expandKey = expands[expandKey]) !== null && _expands$expandKey !== void 0 ? _expands$expandKey : defaultExpanded;
|
|
22
26
|
var len = Object.keys(value).length;
|
|
27
|
+
if (expands[expandKey] === undefined && shouldExpandNodeInitially && shouldExpandNodeInitially(isExpanded, {
|
|
28
|
+
value: value,
|
|
29
|
+
keys: keys,
|
|
30
|
+
level: level
|
|
31
|
+
})) {
|
|
32
|
+
return null;
|
|
33
|
+
}
|
|
23
34
|
if (isExpanded || len === 0) {
|
|
24
35
|
return null;
|
|
25
36
|
}
|
package/cjs/comps/NestedOpen.js
CHANGED
|
@@ -22,7 +22,8 @@ var NestedOpen = exports.NestedOpen = function NestedOpen(props) {
|
|
|
22
22
|
var _expands$expandKey;
|
|
23
23
|
var keyName = props.keyName,
|
|
24
24
|
expandKey = props.expandKey,
|
|
25
|
-
keys = props.keys,
|
|
25
|
+
_props$keys = props.keys,
|
|
26
|
+
keys = _props$keys === void 0 ? [] : _props$keys,
|
|
26
27
|
initialValue = props.initialValue,
|
|
27
28
|
value = props.value,
|
|
28
29
|
parentValue = props.parentValue,
|
|
@@ -31,11 +32,21 @@ var NestedOpen = exports.NestedOpen = function NestedOpen(props) {
|
|
|
31
32
|
var dispatchExpands = (0, _Expands.useExpandsDispatch)();
|
|
32
33
|
var _useStore = (0, _store.useStore)(),
|
|
33
34
|
onExpand = _useStore.onExpand,
|
|
34
|
-
collapsed = _useStore.collapsed
|
|
35
|
+
collapsed = _useStore.collapsed,
|
|
36
|
+
shouldExpandNodeInitially = _useStore.shouldExpandNodeInitially;
|
|
35
37
|
var isArray = Array.isArray(value);
|
|
36
38
|
var isMySet = value instanceof Set;
|
|
37
|
-
var
|
|
39
|
+
var defaultExpanded = typeof collapsed === 'boolean' ? collapsed : typeof collapsed === 'number' ? level > collapsed : false;
|
|
38
40
|
var isObject = (0, _typeof2["default"])(value) === 'object';
|
|
41
|
+
var isExpanded = (_expands$expandKey = expands[expandKey]) !== null && _expands$expandKey !== void 0 ? _expands$expandKey : defaultExpanded;
|
|
42
|
+
var shouldExpand = shouldExpandNodeInitially && shouldExpandNodeInitially(isExpanded, {
|
|
43
|
+
value: value,
|
|
44
|
+
keys: keys,
|
|
45
|
+
level: level
|
|
46
|
+
});
|
|
47
|
+
if (expands[expandKey] === undefined && shouldExpand !== undefined) {
|
|
48
|
+
isExpanded = shouldExpand;
|
|
49
|
+
}
|
|
39
50
|
var click = function click() {
|
|
40
51
|
var opt = {
|
|
41
52
|
expand: !isExpanded,
|
|
@@ -62,11 +73,17 @@ var NestedOpen = exports.NestedOpen = function NestedOpen(props) {
|
|
|
62
73
|
if (showArrow) {
|
|
63
74
|
reset.onClick = click;
|
|
64
75
|
}
|
|
76
|
+
var compProps = {
|
|
77
|
+
keyName: keyName,
|
|
78
|
+
value: value,
|
|
79
|
+
keys: keys,
|
|
80
|
+
parentValue: parentValue
|
|
81
|
+
};
|
|
65
82
|
return /*#__PURE__*/(0, _jsxRuntime.jsxs)("span", (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, reset), {}, {
|
|
66
|
-
children: [showArrow && /*#__PURE__*/(0, _jsxRuntime.jsx)(_symbol.Arrow, {
|
|
83
|
+
children: [showArrow && /*#__PURE__*/(0, _jsxRuntime.jsx)(_symbol.Arrow, (0, _objectSpread2["default"])({
|
|
67
84
|
style: arrowStyle,
|
|
68
85
|
expandKey: expandKey
|
|
69
|
-
}), (keyName || typeof keyName === 'number') && /*#__PURE__*/(0, _jsxRuntime.jsx)(_KeyValues.KayName, {
|
|
86
|
+
}, compProps)), (keyName || typeof keyName === 'number') && /*#__PURE__*/(0, _jsxRuntime.jsx)(_KeyValues.KayName, {
|
|
70
87
|
keyName: keyName
|
|
71
88
|
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_types.SetComp, {
|
|
72
89
|
value: initialValue,
|
|
@@ -74,16 +91,16 @@ var NestedOpen = exports.NestedOpen = function NestedOpen(props) {
|
|
|
74
91
|
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_types.MapComp, {
|
|
75
92
|
value: initialValue,
|
|
76
93
|
keyName: keyName
|
|
77
|
-
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_symbol.BracketsOpen, {
|
|
94
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_symbol.BracketsOpen, (0, _objectSpread2["default"])({
|
|
78
95
|
isBrackets: isArray || isMySet
|
|
79
|
-
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Ellipsis.EllipsisComp, {
|
|
96
|
+
}, compProps)), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Ellipsis.EllipsisComp, {
|
|
80
97
|
keyName: keyName,
|
|
81
98
|
value: value,
|
|
82
99
|
isExpanded: isExpanded
|
|
83
|
-
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_symbol.BracketsClose, {
|
|
100
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_symbol.BracketsClose, (0, _objectSpread2["default"])({
|
|
84
101
|
isVisiable: isExpanded || !showArrow,
|
|
85
102
|
isBrackets: isArray || isMySet
|
|
86
|
-
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_CountInfo.CountInfoComp, {
|
|
103
|
+
}, compProps)), /*#__PURE__*/(0, _jsxRuntime.jsx)(_CountInfo.CountInfoComp, {
|
|
87
104
|
value: value,
|
|
88
105
|
keyName: keyName
|
|
89
106
|
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_CountInfoExtra.CountInfoExtraComps, {
|
package/cjs/index.d.ts
CHANGED
|
@@ -48,6 +48,12 @@ export interface JsonViewProps<T extends object> extends React.DetailedHTMLProps
|
|
|
48
48
|
enableClipboard?: boolean;
|
|
49
49
|
/** When set to true, all nodes will be collapsed by default. Use an integer value to collapse at a particular depth. @default false */
|
|
50
50
|
collapsed?: boolean | number;
|
|
51
|
+
/** Determine whether the node should be expanded on the first render, or you can use collapsed to control the level of expansion (by default, the root is expanded). */
|
|
52
|
+
shouldExpandNodeInitially?: (isExpanded: boolean, props: {
|
|
53
|
+
value?: T;
|
|
54
|
+
keys: (number | string)[];
|
|
55
|
+
level: number;
|
|
56
|
+
}) => boolean;
|
|
51
57
|
/** Whether to highlight updates. @default true */
|
|
52
58
|
highlightUpdates?: boolean;
|
|
53
59
|
/** Shorten long JSON strings, Set to `0` to disable this feature @default 30 */
|
package/cjs/index.js
CHANGED
|
@@ -110,7 +110,7 @@ Object.keys(_symbol).forEach(function (key) {
|
|
|
110
110
|
}
|
|
111
111
|
});
|
|
112
112
|
});
|
|
113
|
-
var _excluded = ["className", "style", "value", "children", "collapsed", "indentWidth", "displayObjectSize", "shortenTextAfterLength", "highlightUpdates", "enableClipboard", "displayDataTypes", "objectSortKeys", "onExpand", "onCopied"];
|
|
113
|
+
var _excluded = ["className", "style", "value", "children", "collapsed", "shouldExpandNodeInitially", "indentWidth", "displayObjectSize", "shortenTextAfterLength", "highlightUpdates", "enableClipboard", "displayDataTypes", "objectSortKeys", "onExpand", "onCopied"];
|
|
114
114
|
var JsonView = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
|
|
115
115
|
var _props$className = props.className,
|
|
116
116
|
className = _props$className === void 0 ? '' : _props$className,
|
|
@@ -118,6 +118,7 @@ var JsonView = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
|
|
|
118
118
|
value = props.value,
|
|
119
119
|
children = props.children,
|
|
120
120
|
collapsed = props.collapsed,
|
|
121
|
+
shouldExpandNodeInitially = props.shouldExpandNodeInitially,
|
|
121
122
|
_props$indentWidth = props.indentWidth,
|
|
122
123
|
indentWidth = _props$indentWidth === void 0 ? 15 : _props$indentWidth,
|
|
123
124
|
_props$displayObjectS = props.displayObjectSize,
|
|
@@ -148,6 +149,7 @@ var JsonView = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
|
|
|
148
149
|
value: value,
|
|
149
150
|
objectSortKeys: objectSortKeys,
|
|
150
151
|
indentWidth: indentWidth,
|
|
152
|
+
shouldExpandNodeInitially: shouldExpandNodeInitially,
|
|
151
153
|
displayObjectSize: displayObjectSize,
|
|
152
154
|
collapsed: collapsed,
|
|
153
155
|
enableClipboard: enableClipboard,
|
package/cjs/store/Symbols.d.ts
CHANGED
|
@@ -1,8 +1,15 @@
|
|
|
1
1
|
import { FC, PropsWithChildren, ElementType, ComponentPropsWithoutRef } from 'react';
|
|
2
2
|
import { type TagType } from './Types';
|
|
3
|
+
export interface SymbolsElementResult<T extends object, K = string | number> {
|
|
4
|
+
value?: T;
|
|
5
|
+
parentValue?: T;
|
|
6
|
+
keyName?: K;
|
|
7
|
+
/** Index of the parent `keyName` */
|
|
8
|
+
keys?: K[];
|
|
9
|
+
}
|
|
3
10
|
type SymbolsElementProps<T extends TagType = 'span'> = {
|
|
4
11
|
as?: T;
|
|
5
|
-
render?: (props: SymbolsElement<T>) => React.ReactNode;
|
|
12
|
+
render?: (props: SymbolsElement<T>, result: SymbolsElementResult<object>) => React.ReactNode;
|
|
6
13
|
'data-type'?: string;
|
|
7
14
|
};
|
|
8
15
|
export type SymbolsElement<T extends TagType = 'span'> = SymbolsElementProps<T> & ComponentPropsWithoutRef<T>;
|
package/cjs/store.d.ts
CHANGED
|
@@ -12,6 +12,7 @@ export interface InitialState<T extends object> {
|
|
|
12
12
|
enableClipboard?: JsonViewProps<T>['enableClipboard'];
|
|
13
13
|
highlightUpdates?: JsonViewProps<T>['highlightUpdates'];
|
|
14
14
|
collapsed?: JsonViewProps<T>['collapsed'];
|
|
15
|
+
shouldExpandNodeInitially?: JsonViewProps<T>['shouldExpandNodeInitially'];
|
|
15
16
|
indentWidth?: number;
|
|
16
17
|
}
|
|
17
18
|
export declare const initialState: InitialState<object>;
|
package/cjs/symbol/index.d.ts
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { type SymbolsElement } from '../store/Symbols';
|
|
1
|
+
import { type SymbolsElement, type SymbolsElementResult } from '../store/Symbols';
|
|
2
2
|
import { type TagType } from '../store/Types';
|
|
3
3
|
export declare const Quote: {
|
|
4
|
-
(props: {
|
|
4
|
+
<T extends object>(props: {
|
|
5
5
|
isNumber?: boolean;
|
|
6
|
-
} & React.HTMLAttributes<HTMLElement>): string | number | true | Iterable<import("react").ReactNode> | import("react/jsx-runtime").JSX.Element | null;
|
|
6
|
+
} & React.HTMLAttributes<HTMLElement> & SymbolsElementResult<T>): string | number | true | Iterable<import("react").ReactNode> | import("react/jsx-runtime").JSX.Element | null;
|
|
7
7
|
displayName: string;
|
|
8
8
|
};
|
|
9
9
|
export declare const ValueQuote: {
|
|
@@ -11,19 +11,19 @@ export declare const ValueQuote: {
|
|
|
11
11
|
displayName: string;
|
|
12
12
|
};
|
|
13
13
|
export declare const Colon: {
|
|
14
|
-
(): string | number | true | Iterable<import("react").ReactNode> | import("react/jsx-runtime").JSX.Element;
|
|
14
|
+
<T extends object>(props: SymbolsElementResult<T>): string | number | true | Iterable<import("react").ReactNode> | import("react/jsx-runtime").JSX.Element;
|
|
15
15
|
displayName: string;
|
|
16
16
|
};
|
|
17
17
|
export declare const Arrow: {
|
|
18
|
-
<T extends TagType>(props: SymbolsElement<T> & {
|
|
18
|
+
<T extends TagType, K extends object>(props: SymbolsElement<T> & {
|
|
19
19
|
expandKey: string;
|
|
20
|
-
}): string | number | true | Iterable<import("react").ReactNode> | import("react/jsx-runtime").JSX.Element;
|
|
20
|
+
} & SymbolsElementResult<K>): string | number | true | Iterable<import("react").ReactNode> | import("react/jsx-runtime").JSX.Element;
|
|
21
21
|
displayName: string;
|
|
22
22
|
};
|
|
23
23
|
export declare const BracketsOpen: {
|
|
24
|
-
|
|
24
|
+
<K extends object>(props: {
|
|
25
25
|
isBrackets?: boolean;
|
|
26
|
-
}): string | number | true | Iterable<import("react").ReactNode> | import("react/jsx-runtime").JSX.Element;
|
|
26
|
+
} & SymbolsElementResult<K>): string | number | true | Iterable<import("react").ReactNode> | import("react/jsx-runtime").JSX.Element;
|
|
27
27
|
displayName: string;
|
|
28
28
|
};
|
|
29
29
|
type BracketsCloseProps = {
|
|
@@ -31,7 +31,7 @@ type BracketsCloseProps = {
|
|
|
31
31
|
isVisiable?: boolean;
|
|
32
32
|
};
|
|
33
33
|
export declare const BracketsClose: {
|
|
34
|
-
|
|
34
|
+
<K extends object>(props: BracketsCloseProps & SymbolsElementResult<K>): string | number | true | Iterable<import("react").ReactNode> | import("react/jsx-runtime").JSX.Element | null;
|
|
35
35
|
displayName: string;
|
|
36
36
|
};
|
|
37
37
|
export {};
|
package/cjs/symbol/index.js
CHANGED
|
@@ -12,7 +12,7 @@ var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/h
|
|
|
12
12
|
var _Symbols = require("../store/Symbols");
|
|
13
13
|
var _Expands = require("../store/Expands");
|
|
14
14
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
15
|
-
var _excluded = ["isNumber"],
|
|
15
|
+
var _excluded = ["isNumber", "value", "parentValue", "keyName", "keys"],
|
|
16
16
|
_excluded2 = ["as", "render"],
|
|
17
17
|
_excluded3 = ["as", "render"],
|
|
18
18
|
_excluded4 = ["as", "render"],
|
|
@@ -26,6 +26,10 @@ var Quote = exports.Quote = function Quote(props) {
|
|
|
26
26
|
_useSymbolsStore$Quot = _useSymbolsStore.Quote,
|
|
27
27
|
Comp = _useSymbolsStore$Quot === void 0 ? {} : _useSymbolsStore$Quot;
|
|
28
28
|
var isNumber = props.isNumber,
|
|
29
|
+
value = props.value,
|
|
30
|
+
parentValue = props.parentValue,
|
|
31
|
+
keyName = props.keyName,
|
|
32
|
+
keys = props.keys,
|
|
29
33
|
other = (0, _objectWithoutProperties2["default"])(props, _excluded);
|
|
30
34
|
if (isNumber) return null;
|
|
31
35
|
var as = Comp.as,
|
|
@@ -33,7 +37,13 @@ var Quote = exports.Quote = function Quote(props) {
|
|
|
33
37
|
reset = (0, _objectWithoutProperties2["default"])(Comp, _excluded2);
|
|
34
38
|
var Elm = as || 'span';
|
|
35
39
|
var elmProps = (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, other), reset);
|
|
36
|
-
var
|
|
40
|
+
var result = {
|
|
41
|
+
value: value,
|
|
42
|
+
parentValue: parentValue,
|
|
43
|
+
keyName: keyName,
|
|
44
|
+
keys: keys || (keyName ? [keyName] : [])
|
|
45
|
+
};
|
|
46
|
+
var child = render && typeof render === 'function' && render(elmProps, result);
|
|
37
47
|
if (child) return child;
|
|
38
48
|
return /*#__PURE__*/(0, _jsxRuntime.jsx)(Elm, (0, _objectSpread2["default"])({}, elmProps));
|
|
39
49
|
};
|
|
@@ -48,12 +58,16 @@ var ValueQuote = exports.ValueQuote = function ValueQuote(props) {
|
|
|
48
58
|
reset = (0, _objectWithoutProperties2["default"])(Comp, _excluded3);
|
|
49
59
|
var Elm = as || 'span';
|
|
50
60
|
var elmProps = (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, other), reset);
|
|
51
|
-
var child = render && typeof render === 'function' && render(elmProps);
|
|
61
|
+
var child = render && typeof render === 'function' && render(elmProps, {});
|
|
52
62
|
if (child) return child;
|
|
53
63
|
return /*#__PURE__*/(0, _jsxRuntime.jsx)(Elm, (0, _objectSpread2["default"])({}, elmProps));
|
|
54
64
|
};
|
|
55
65
|
ValueQuote.displayName = 'JVR.ValueQuote';
|
|
56
|
-
var Colon = exports.Colon = function Colon() {
|
|
66
|
+
var Colon = exports.Colon = function Colon(props) {
|
|
67
|
+
var value = props.value,
|
|
68
|
+
parentValue = props.parentValue,
|
|
69
|
+
keyName = props.keyName,
|
|
70
|
+
keys = props.keys;
|
|
57
71
|
var _useSymbolsStore3 = (0, _Symbols.useSymbolsStore)(),
|
|
58
72
|
_useSymbolsStore3$Col = _useSymbolsStore3.Colon,
|
|
59
73
|
Comp = _useSymbolsStore3$Col === void 0 ? {} : _useSymbolsStore3$Col;
|
|
@@ -61,7 +75,12 @@ var Colon = exports.Colon = function Colon() {
|
|
|
61
75
|
render = Comp.render,
|
|
62
76
|
reset = (0, _objectWithoutProperties2["default"])(Comp, _excluded4);
|
|
63
77
|
var Elm = as || 'span';
|
|
64
|
-
var child = render && typeof render === 'function' && render(reset
|
|
78
|
+
var child = render && typeof render === 'function' && render(reset, {
|
|
79
|
+
value: value,
|
|
80
|
+
parentValue: parentValue,
|
|
81
|
+
keyName: keyName,
|
|
82
|
+
keys: keys || (keyName ? [keyName] : [])
|
|
83
|
+
});
|
|
65
84
|
if (child) return child;
|
|
66
85
|
return /*#__PURE__*/(0, _jsxRuntime.jsx)(Elm, (0, _objectSpread2["default"])({}, reset));
|
|
67
86
|
};
|
|
@@ -71,7 +90,12 @@ var Arrow = exports.Arrow = function Arrow(props) {
|
|
|
71
90
|
_useSymbolsStore4$Arr = _useSymbolsStore4.Arrow,
|
|
72
91
|
Comp = _useSymbolsStore4$Arr === void 0 ? {} : _useSymbolsStore4$Arr;
|
|
73
92
|
var expands = (0, _Expands.useExpandsStore)();
|
|
74
|
-
var expandKey = props.expandKey
|
|
93
|
+
var expandKey = props.expandKey,
|
|
94
|
+
resetStyle = props.style,
|
|
95
|
+
value = props.value,
|
|
96
|
+
parentValue = props.parentValue,
|
|
97
|
+
keyName = props.keyName,
|
|
98
|
+
keys = props.keys;
|
|
75
99
|
var isExpanded = !!expands[expandKey];
|
|
76
100
|
var as = Comp.as,
|
|
77
101
|
style = Comp.style,
|
|
@@ -79,44 +103,71 @@ var Arrow = exports.Arrow = function Arrow(props) {
|
|
|
79
103
|
reset = (0, _objectWithoutProperties2["default"])(Comp, _excluded5);
|
|
80
104
|
var Elm = as || 'span';
|
|
81
105
|
var isRender = render && typeof render === 'function';
|
|
82
|
-
var
|
|
106
|
+
var elmProps = (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, reset), {}, {
|
|
83
107
|
'data-expanded': isExpanded,
|
|
84
|
-
style: (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, style),
|
|
85
|
-
})
|
|
108
|
+
style: (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, style), resetStyle)
|
|
109
|
+
});
|
|
110
|
+
var result = {
|
|
111
|
+
value: value,
|
|
112
|
+
parentValue: parentValue,
|
|
113
|
+
keyName: keyName,
|
|
114
|
+
keys: keys || (keyName ? [keyName] : [])
|
|
115
|
+
};
|
|
116
|
+
var child = isRender && render(elmProps, result);
|
|
86
117
|
if (child) return child;
|
|
87
118
|
return /*#__PURE__*/(0, _jsxRuntime.jsx)(Elm, (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, reset), {}, {
|
|
88
|
-
style: (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, style),
|
|
119
|
+
style: (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, style), resetStyle)
|
|
89
120
|
}));
|
|
90
121
|
};
|
|
91
122
|
Arrow.displayName = 'JVR.Arrow';
|
|
92
|
-
var BracketsOpen = exports.BracketsOpen = function BracketsOpen(
|
|
93
|
-
var isBrackets =
|
|
123
|
+
var BracketsOpen = exports.BracketsOpen = function BracketsOpen(props) {
|
|
124
|
+
var isBrackets = props.isBrackets,
|
|
125
|
+
value = props.value,
|
|
126
|
+
parentValue = props.parentValue,
|
|
127
|
+
keyName = props.keyName,
|
|
128
|
+
keys = props.keys;
|
|
94
129
|
var _useSymbolsStore5 = (0, _Symbols.useSymbolsStore)(),
|
|
95
130
|
_useSymbolsStore5$Bra = _useSymbolsStore5.BracketsLeft,
|
|
96
131
|
BracketsLeft = _useSymbolsStore5$Bra === void 0 ? {} : _useSymbolsStore5$Bra,
|
|
97
132
|
_useSymbolsStore5$Bra2 = _useSymbolsStore5.BraceLeft,
|
|
98
133
|
BraceLeft = _useSymbolsStore5$Bra2 === void 0 ? {} : _useSymbolsStore5$Bra2;
|
|
134
|
+
var result = {
|
|
135
|
+
value: value,
|
|
136
|
+
parentValue: parentValue,
|
|
137
|
+
keyName: keyName,
|
|
138
|
+
keys: keys || (keyName ? [keyName] : [])
|
|
139
|
+
};
|
|
99
140
|
if (isBrackets) {
|
|
100
141
|
var as = BracketsLeft.as,
|
|
101
142
|
_render = BracketsLeft.render,
|
|
102
143
|
reset = (0, _objectWithoutProperties2["default"])(BracketsLeft, _excluded6);
|
|
103
144
|
var BracketsLeftComp = as || 'span';
|
|
104
|
-
var _child = _render && typeof _render === 'function' && _render(reset);
|
|
145
|
+
var _child = _render && typeof _render === 'function' && _render(reset, result);
|
|
105
146
|
if (_child) return _child;
|
|
106
147
|
return /*#__PURE__*/(0, _jsxRuntime.jsx)(BracketsLeftComp, (0, _objectSpread2["default"])({}, reset));
|
|
107
148
|
}
|
|
108
149
|
var elm = BraceLeft.as,
|
|
109
150
|
render = BraceLeft.render,
|
|
110
|
-
|
|
151
|
+
resetProps = (0, _objectWithoutProperties2["default"])(BraceLeft, _excluded7);
|
|
111
152
|
var BraceLeftComp = elm || 'span';
|
|
112
|
-
var child = render && typeof render === 'function' && render(
|
|
153
|
+
var child = render && typeof render === 'function' && render(resetProps, result);
|
|
113
154
|
if (child) return child;
|
|
114
|
-
return /*#__PURE__*/(0, _jsxRuntime.jsx)(BraceLeftComp, (0, _objectSpread2["default"])({},
|
|
155
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(BraceLeftComp, (0, _objectSpread2["default"])({}, resetProps));
|
|
115
156
|
};
|
|
116
157
|
BracketsOpen.displayName = 'JVR.BracketsOpen';
|
|
117
|
-
var BracketsClose = exports.BracketsClose = function BracketsClose(
|
|
118
|
-
var isBrackets =
|
|
119
|
-
isVisiable =
|
|
158
|
+
var BracketsClose = exports.BracketsClose = function BracketsClose(props) {
|
|
159
|
+
var isBrackets = props.isBrackets,
|
|
160
|
+
isVisiable = props.isVisiable,
|
|
161
|
+
value = props.value,
|
|
162
|
+
parentValue = props.parentValue,
|
|
163
|
+
keyName = props.keyName,
|
|
164
|
+
keys = props.keys;
|
|
165
|
+
var result = {
|
|
166
|
+
value: value,
|
|
167
|
+
parentValue: parentValue,
|
|
168
|
+
keyName: keyName,
|
|
169
|
+
keys: keys || (keyName ? [keyName] : [])
|
|
170
|
+
};
|
|
120
171
|
if (!isVisiable) return null;
|
|
121
172
|
var _useSymbolsStore6 = (0, _Symbols.useSymbolsStore)(),
|
|
122
173
|
_useSymbolsStore6$Bra = _useSymbolsStore6.BracketsRight,
|
|
@@ -128,7 +179,7 @@ var BracketsClose = exports.BracketsClose = function BracketsClose(_ref2) {
|
|
|
128
179
|
_render2 = BracketsRight.render,
|
|
129
180
|
_reset = (0, _objectWithoutProperties2["default"])(BracketsRight, _excluded8);
|
|
130
181
|
var BracketsRightComp = as || 'span';
|
|
131
|
-
var _child2 = _render2 && typeof _render2 === 'function' && _render2(_reset);
|
|
182
|
+
var _child2 = _render2 && typeof _render2 === 'function' && _render2(_reset, result);
|
|
132
183
|
if (_child2) return _child2;
|
|
133
184
|
return /*#__PURE__*/(0, _jsxRuntime.jsx)(BracketsRightComp, (0, _objectSpread2["default"])({}, _reset));
|
|
134
185
|
}
|
|
@@ -136,7 +187,7 @@ var BracketsClose = exports.BracketsClose = function BracketsClose(_ref2) {
|
|
|
136
187
|
render = BraceRight.render,
|
|
137
188
|
reset = (0, _objectWithoutProperties2["default"])(BraceRight, _excluded9);
|
|
138
189
|
var BraceRightComp = elm || 'span';
|
|
139
|
-
var child = render && typeof render === 'function' && render(reset);
|
|
190
|
+
var child = render && typeof render === 'function' && render(reset, result);
|
|
140
191
|
if (child) return child;
|
|
141
192
|
return /*#__PURE__*/(0, _jsxRuntime.jsx)(BraceRightComp, (0, _objectSpread2["default"])({}, reset));
|
|
142
193
|
};
|
package/esm/Container.js
CHANGED
package/esm/comps/KeyValues.js
CHANGED
|
@@ -24,10 +24,19 @@ export var KeyValues = props => {
|
|
|
24
24
|
var {
|
|
25
25
|
objectSortKeys,
|
|
26
26
|
indentWidth,
|
|
27
|
-
collapsed
|
|
27
|
+
collapsed,
|
|
28
|
+
shouldExpandNodeInitially
|
|
28
29
|
} = useStore();
|
|
29
30
|
var isMyArray = Array.isArray(value);
|
|
30
|
-
var
|
|
31
|
+
var defaultExpanded = typeof collapsed === 'boolean' ? collapsed : typeof collapsed === 'number' ? level > collapsed : false;
|
|
32
|
+
var isExpanded = (_expands$expandKey = expands[expandKey]) != null ? _expands$expandKey : defaultExpanded;
|
|
33
|
+
if (expands[expandKey] === undefined && shouldExpandNodeInitially && shouldExpandNodeInitially(isExpanded, {
|
|
34
|
+
value,
|
|
35
|
+
keys,
|
|
36
|
+
level
|
|
37
|
+
})) {
|
|
38
|
+
return null;
|
|
39
|
+
}
|
|
31
40
|
if (isExpanded) {
|
|
32
41
|
return null;
|
|
33
42
|
}
|
|
@@ -82,23 +91,25 @@ export var KayName = props => {
|
|
|
82
91
|
highlightUpdates,
|
|
83
92
|
highlightContainer
|
|
84
93
|
});
|
|
94
|
+
var compProps = {
|
|
95
|
+
keyName,
|
|
96
|
+
value,
|
|
97
|
+
keys,
|
|
98
|
+
parentValue
|
|
99
|
+
};
|
|
85
100
|
return /*#__PURE__*/_jsxs(Fragment, {
|
|
86
101
|
children: [/*#__PURE__*/_jsxs("span", {
|
|
87
102
|
ref: highlightContainer,
|
|
88
|
-
children: [/*#__PURE__*/_jsx(Quote, {
|
|
103
|
+
children: [/*#__PURE__*/_jsx(Quote, _extends({
|
|
89
104
|
isNumber: isNumber,
|
|
90
105
|
"data-placement": "left"
|
|
91
|
-
}), /*#__PURE__*/_jsx(KeyNameComp, {
|
|
92
|
-
keyName: keyName,
|
|
93
|
-
value: value,
|
|
94
|
-
keys: keys,
|
|
95
|
-
parentValue: parentValue,
|
|
106
|
+
}, compProps)), /*#__PURE__*/_jsx(KeyNameComp, _extends({}, compProps, {
|
|
96
107
|
children: keyName
|
|
97
|
-
}), /*#__PURE__*/_jsx(Quote, {
|
|
108
|
+
})), /*#__PURE__*/_jsx(Quote, _extends({
|
|
98
109
|
isNumber: isNumber,
|
|
99
110
|
"data-placement": "right"
|
|
100
|
-
})]
|
|
101
|
-
}), /*#__PURE__*/_jsx(Colon, {})]
|
|
111
|
+
}, compProps))]
|
|
112
|
+
}), /*#__PURE__*/_jsx(Colon, _extends({}, compProps))]
|
|
102
113
|
});
|
|
103
114
|
};
|
|
104
115
|
KayName.displayName = 'JVR.KayName';
|
package/esm/comps/NestedClose.js
CHANGED
|
@@ -7,16 +7,26 @@ export var NestedClose = props => {
|
|
|
7
7
|
var {
|
|
8
8
|
value,
|
|
9
9
|
expandKey,
|
|
10
|
-
level
|
|
10
|
+
level,
|
|
11
|
+
keys = []
|
|
11
12
|
} = props;
|
|
12
13
|
var expands = useExpandsStore();
|
|
13
14
|
var isArray = Array.isArray(value);
|
|
14
15
|
var {
|
|
15
|
-
collapsed
|
|
16
|
+
collapsed,
|
|
17
|
+
shouldExpandNodeInitially
|
|
16
18
|
} = useStore();
|
|
17
19
|
var isMySet = value instanceof Set;
|
|
18
|
-
var
|
|
20
|
+
var defaultExpanded = typeof collapsed === 'boolean' ? collapsed : typeof collapsed === 'number' ? level > collapsed : false;
|
|
21
|
+
var isExpanded = (_expands$expandKey = expands[expandKey]) != null ? _expands$expandKey : defaultExpanded;
|
|
19
22
|
var len = Object.keys(value).length;
|
|
23
|
+
if (expands[expandKey] === undefined && shouldExpandNodeInitially && shouldExpandNodeInitially(isExpanded, {
|
|
24
|
+
value,
|
|
25
|
+
keys,
|
|
26
|
+
level
|
|
27
|
+
})) {
|
|
28
|
+
return null;
|
|
29
|
+
}
|
|
20
30
|
if (isExpanded || len === 0) {
|
|
21
31
|
return null;
|
|
22
32
|
}
|
package/esm/comps/NestedOpen.js
CHANGED
|
@@ -14,7 +14,7 @@ export var NestedOpen = props => {
|
|
|
14
14
|
var {
|
|
15
15
|
keyName,
|
|
16
16
|
expandKey,
|
|
17
|
-
keys,
|
|
17
|
+
keys = [],
|
|
18
18
|
initialValue,
|
|
19
19
|
value,
|
|
20
20
|
parentValue,
|
|
@@ -24,12 +24,22 @@ export var NestedOpen = props => {
|
|
|
24
24
|
var dispatchExpands = useExpandsDispatch();
|
|
25
25
|
var {
|
|
26
26
|
onExpand,
|
|
27
|
-
collapsed
|
|
27
|
+
collapsed,
|
|
28
|
+
shouldExpandNodeInitially
|
|
28
29
|
} = useStore();
|
|
29
30
|
var isArray = Array.isArray(value);
|
|
30
31
|
var isMySet = value instanceof Set;
|
|
31
|
-
var
|
|
32
|
+
var defaultExpanded = typeof collapsed === 'boolean' ? collapsed : typeof collapsed === 'number' ? level > collapsed : false;
|
|
32
33
|
var isObject = typeof value === 'object';
|
|
34
|
+
var isExpanded = (_expands$expandKey = expands[expandKey]) != null ? _expands$expandKey : defaultExpanded;
|
|
35
|
+
var shouldExpand = shouldExpandNodeInitially && shouldExpandNodeInitially(isExpanded, {
|
|
36
|
+
value,
|
|
37
|
+
keys,
|
|
38
|
+
level
|
|
39
|
+
});
|
|
40
|
+
if (expands[expandKey] === undefined && shouldExpand !== undefined) {
|
|
41
|
+
isExpanded = shouldExpand;
|
|
42
|
+
}
|
|
33
43
|
var click = () => {
|
|
34
44
|
var opt = {
|
|
35
45
|
expand: !isExpanded,
|
|
@@ -58,11 +68,17 @@ export var NestedOpen = props => {
|
|
|
58
68
|
if (showArrow) {
|
|
59
69
|
reset.onClick = click;
|
|
60
70
|
}
|
|
71
|
+
var compProps = {
|
|
72
|
+
keyName,
|
|
73
|
+
value,
|
|
74
|
+
keys,
|
|
75
|
+
parentValue
|
|
76
|
+
};
|
|
61
77
|
return /*#__PURE__*/_jsxs("span", _extends({}, reset, {
|
|
62
|
-
children: [showArrow && /*#__PURE__*/_jsx(Arrow, {
|
|
78
|
+
children: [showArrow && /*#__PURE__*/_jsx(Arrow, _extends({
|
|
63
79
|
style: arrowStyle,
|
|
64
80
|
expandKey: expandKey
|
|
65
|
-
}), (keyName || typeof keyName === 'number') && /*#__PURE__*/_jsx(KayName, {
|
|
81
|
+
}, compProps)), (keyName || typeof keyName === 'number') && /*#__PURE__*/_jsx(KayName, {
|
|
66
82
|
keyName: keyName
|
|
67
83
|
}), /*#__PURE__*/_jsx(SetComp, {
|
|
68
84
|
value: initialValue,
|
|
@@ -70,16 +86,16 @@ export var NestedOpen = props => {
|
|
|
70
86
|
}), /*#__PURE__*/_jsx(MapComp, {
|
|
71
87
|
value: initialValue,
|
|
72
88
|
keyName: keyName
|
|
73
|
-
}), /*#__PURE__*/_jsx(BracketsOpen, {
|
|
89
|
+
}), /*#__PURE__*/_jsx(BracketsOpen, _extends({
|
|
74
90
|
isBrackets: isArray || isMySet
|
|
75
|
-
}), /*#__PURE__*/_jsx(EllipsisComp, {
|
|
91
|
+
}, compProps)), /*#__PURE__*/_jsx(EllipsisComp, {
|
|
76
92
|
keyName: keyName,
|
|
77
93
|
value: value,
|
|
78
94
|
isExpanded: isExpanded
|
|
79
|
-
}), /*#__PURE__*/_jsx(BracketsClose, {
|
|
95
|
+
}), /*#__PURE__*/_jsx(BracketsClose, _extends({
|
|
80
96
|
isVisiable: isExpanded || !showArrow,
|
|
81
97
|
isBrackets: isArray || isMySet
|
|
82
|
-
}), /*#__PURE__*/_jsx(CountInfoComp, {
|
|
98
|
+
}, compProps)), /*#__PURE__*/_jsx(CountInfoComp, {
|
|
83
99
|
value: value,
|
|
84
100
|
keyName: keyName
|
|
85
101
|
}), /*#__PURE__*/_jsx(CountInfoExtraComps, {
|
package/esm/index.d.ts
CHANGED
|
@@ -48,6 +48,12 @@ export interface JsonViewProps<T extends object> extends React.DetailedHTMLProps
|
|
|
48
48
|
enableClipboard?: boolean;
|
|
49
49
|
/** When set to true, all nodes will be collapsed by default. Use an integer value to collapse at a particular depth. @default false */
|
|
50
50
|
collapsed?: boolean | number;
|
|
51
|
+
/** Determine whether the node should be expanded on the first render, or you can use collapsed to control the level of expansion (by default, the root is expanded). */
|
|
52
|
+
shouldExpandNodeInitially?: (isExpanded: boolean, props: {
|
|
53
|
+
value?: T;
|
|
54
|
+
keys: (number | string)[];
|
|
55
|
+
level: number;
|
|
56
|
+
}) => boolean;
|
|
51
57
|
/** Whether to highlight updates. @default true */
|
|
52
58
|
highlightUpdates?: boolean;
|
|
53
59
|
/** Shorten long JSON strings, Set to `0` to disable this feature @default 30 */
|
package/esm/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import _extends from "@babel/runtime/helpers/extends";
|
|
2
2
|
import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/objectWithoutPropertiesLoose";
|
|
3
|
-
var _excluded = ["className", "style", "value", "children", "collapsed", "indentWidth", "displayObjectSize", "shortenTextAfterLength", "highlightUpdates", "enableClipboard", "displayDataTypes", "objectSortKeys", "onExpand", "onCopied"];
|
|
3
|
+
var _excluded = ["className", "style", "value", "children", "collapsed", "shouldExpandNodeInitially", "indentWidth", "displayObjectSize", "shortenTextAfterLength", "highlightUpdates", "enableClipboard", "displayDataTypes", "objectSortKeys", "onExpand", "onCopied"];
|
|
4
4
|
import { forwardRef } from 'react';
|
|
5
5
|
import { Provider } from './store';
|
|
6
6
|
import { Container } from './Container';
|
|
@@ -45,6 +45,7 @@ var JsonView = /*#__PURE__*/forwardRef((props, ref) => {
|
|
|
45
45
|
value,
|
|
46
46
|
children,
|
|
47
47
|
collapsed,
|
|
48
|
+
shouldExpandNodeInitially,
|
|
48
49
|
indentWidth = 15,
|
|
49
50
|
displayObjectSize = true,
|
|
50
51
|
shortenTextAfterLength = 30,
|
|
@@ -69,6 +70,7 @@ var JsonView = /*#__PURE__*/forwardRef((props, ref) => {
|
|
|
69
70
|
value,
|
|
70
71
|
objectSortKeys,
|
|
71
72
|
indentWidth,
|
|
73
|
+
shouldExpandNodeInitially,
|
|
72
74
|
displayObjectSize,
|
|
73
75
|
collapsed,
|
|
74
76
|
enableClipboard,
|
package/esm/store/Symbols.d.ts
CHANGED
|
@@ -1,8 +1,15 @@
|
|
|
1
1
|
import { FC, PropsWithChildren, ElementType, ComponentPropsWithoutRef } from 'react';
|
|
2
2
|
import { type TagType } from './Types';
|
|
3
|
+
export interface SymbolsElementResult<T extends object, K = string | number> {
|
|
4
|
+
value?: T;
|
|
5
|
+
parentValue?: T;
|
|
6
|
+
keyName?: K;
|
|
7
|
+
/** Index of the parent `keyName` */
|
|
8
|
+
keys?: K[];
|
|
9
|
+
}
|
|
3
10
|
type SymbolsElementProps<T extends TagType = 'span'> = {
|
|
4
11
|
as?: T;
|
|
5
|
-
render?: (props: SymbolsElement<T>) => React.ReactNode;
|
|
12
|
+
render?: (props: SymbolsElement<T>, result: SymbolsElementResult<object>) => React.ReactNode;
|
|
6
13
|
'data-type'?: string;
|
|
7
14
|
};
|
|
8
15
|
export type SymbolsElement<T extends TagType = 'span'> = SymbolsElementProps<T> & ComponentPropsWithoutRef<T>;
|
package/esm/store.d.ts
CHANGED
|
@@ -12,6 +12,7 @@ export interface InitialState<T extends object> {
|
|
|
12
12
|
enableClipboard?: JsonViewProps<T>['enableClipboard'];
|
|
13
13
|
highlightUpdates?: JsonViewProps<T>['highlightUpdates'];
|
|
14
14
|
collapsed?: JsonViewProps<T>['collapsed'];
|
|
15
|
+
shouldExpandNodeInitially?: JsonViewProps<T>['shouldExpandNodeInitially'];
|
|
15
16
|
indentWidth?: number;
|
|
16
17
|
}
|
|
17
18
|
export declare const initialState: InitialState<object>;
|
package/esm/symbol/index.d.ts
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { type SymbolsElement } from '../store/Symbols';
|
|
1
|
+
import { type SymbolsElement, type SymbolsElementResult } from '../store/Symbols';
|
|
2
2
|
import { type TagType } from '../store/Types';
|
|
3
3
|
export declare const Quote: {
|
|
4
|
-
(props: {
|
|
4
|
+
<T extends object>(props: {
|
|
5
5
|
isNumber?: boolean;
|
|
6
|
-
} & React.HTMLAttributes<HTMLElement>): string | number | true | Iterable<import("react").ReactNode> | import("react/jsx-runtime").JSX.Element | null;
|
|
6
|
+
} & React.HTMLAttributes<HTMLElement> & SymbolsElementResult<T>): string | number | true | Iterable<import("react").ReactNode> | import("react/jsx-runtime").JSX.Element | null;
|
|
7
7
|
displayName: string;
|
|
8
8
|
};
|
|
9
9
|
export declare const ValueQuote: {
|
|
@@ -11,19 +11,19 @@ export declare const ValueQuote: {
|
|
|
11
11
|
displayName: string;
|
|
12
12
|
};
|
|
13
13
|
export declare const Colon: {
|
|
14
|
-
(): string | number | true | Iterable<import("react").ReactNode> | import("react/jsx-runtime").JSX.Element;
|
|
14
|
+
<T extends object>(props: SymbolsElementResult<T>): string | number | true | Iterable<import("react").ReactNode> | import("react/jsx-runtime").JSX.Element;
|
|
15
15
|
displayName: string;
|
|
16
16
|
};
|
|
17
17
|
export declare const Arrow: {
|
|
18
|
-
<T extends TagType>(props: SymbolsElement<T> & {
|
|
18
|
+
<T extends TagType, K extends object>(props: SymbolsElement<T> & {
|
|
19
19
|
expandKey: string;
|
|
20
|
-
}): string | number | true | Iterable<import("react").ReactNode> | import("react/jsx-runtime").JSX.Element;
|
|
20
|
+
} & SymbolsElementResult<K>): string | number | true | Iterable<import("react").ReactNode> | import("react/jsx-runtime").JSX.Element;
|
|
21
21
|
displayName: string;
|
|
22
22
|
};
|
|
23
23
|
export declare const BracketsOpen: {
|
|
24
|
-
|
|
24
|
+
<K extends object>(props: {
|
|
25
25
|
isBrackets?: boolean;
|
|
26
|
-
}): string | number | true | Iterable<import("react").ReactNode> | import("react/jsx-runtime").JSX.Element;
|
|
26
|
+
} & SymbolsElementResult<K>): string | number | true | Iterable<import("react").ReactNode> | import("react/jsx-runtime").JSX.Element;
|
|
27
27
|
displayName: string;
|
|
28
28
|
};
|
|
29
29
|
type BracketsCloseProps = {
|
|
@@ -31,7 +31,7 @@ type BracketsCloseProps = {
|
|
|
31
31
|
isVisiable?: boolean;
|
|
32
32
|
};
|
|
33
33
|
export declare const BracketsClose: {
|
|
34
|
-
|
|
34
|
+
<K extends object>(props: BracketsCloseProps & SymbolsElementResult<K>): string | number | true | Iterable<import("react").ReactNode> | import("react/jsx-runtime").JSX.Element | null;
|
|
35
35
|
displayName: string;
|
|
36
36
|
};
|
|
37
37
|
export {};
|
package/esm/symbol/index.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import _objectDestructuringEmpty from "@babel/runtime/helpers/objectDestructuringEmpty";
|
|
2
2
|
import _extends from "@babel/runtime/helpers/extends";
|
|
3
3
|
import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/objectWithoutPropertiesLoose";
|
|
4
|
-
var _excluded = ["isNumber"],
|
|
4
|
+
var _excluded = ["isNumber", "value", "parentValue", "keyName", "keys"],
|
|
5
5
|
_excluded2 = ["as", "render"],
|
|
6
6
|
_excluded3 = ["as", "render"],
|
|
7
7
|
_excluded4 = ["as", "render"],
|
|
@@ -18,7 +18,11 @@ export var Quote = props => {
|
|
|
18
18
|
Quote: Comp = {}
|
|
19
19
|
} = useSymbolsStore();
|
|
20
20
|
var {
|
|
21
|
-
isNumber
|
|
21
|
+
isNumber,
|
|
22
|
+
value,
|
|
23
|
+
parentValue,
|
|
24
|
+
keyName,
|
|
25
|
+
keys
|
|
22
26
|
} = props,
|
|
23
27
|
other = _objectWithoutPropertiesLoose(props, _excluded);
|
|
24
28
|
if (isNumber) return null;
|
|
@@ -29,7 +33,13 @@ export var Quote = props => {
|
|
|
29
33
|
reset = _objectWithoutPropertiesLoose(Comp, _excluded2);
|
|
30
34
|
var Elm = as || 'span';
|
|
31
35
|
var elmProps = _extends({}, other, reset);
|
|
32
|
-
var
|
|
36
|
+
var result = {
|
|
37
|
+
value,
|
|
38
|
+
parentValue,
|
|
39
|
+
keyName,
|
|
40
|
+
keys: keys || (keyName ? [keyName] : [])
|
|
41
|
+
};
|
|
42
|
+
var child = render && typeof render === 'function' && render(elmProps, result);
|
|
33
43
|
if (child) return child;
|
|
34
44
|
return /*#__PURE__*/_jsx(Elm, _extends({}, elmProps));
|
|
35
45
|
};
|
|
@@ -46,12 +56,18 @@ export var ValueQuote = props => {
|
|
|
46
56
|
reset = _objectWithoutPropertiesLoose(Comp, _excluded3);
|
|
47
57
|
var Elm = as || 'span';
|
|
48
58
|
var elmProps = _extends({}, other, reset);
|
|
49
|
-
var child = render && typeof render === 'function' && render(elmProps);
|
|
59
|
+
var child = render && typeof render === 'function' && render(elmProps, {});
|
|
50
60
|
if (child) return child;
|
|
51
61
|
return /*#__PURE__*/_jsx(Elm, _extends({}, elmProps));
|
|
52
62
|
};
|
|
53
63
|
ValueQuote.displayName = 'JVR.ValueQuote';
|
|
54
|
-
export var Colon =
|
|
64
|
+
export var Colon = props => {
|
|
65
|
+
var {
|
|
66
|
+
value,
|
|
67
|
+
parentValue,
|
|
68
|
+
keyName,
|
|
69
|
+
keys
|
|
70
|
+
} = props;
|
|
55
71
|
var {
|
|
56
72
|
Colon: Comp = {}
|
|
57
73
|
} = useSymbolsStore();
|
|
@@ -61,7 +77,12 @@ export var Colon = () => {
|
|
|
61
77
|
} = Comp,
|
|
62
78
|
reset = _objectWithoutPropertiesLoose(Comp, _excluded4);
|
|
63
79
|
var Elm = as || 'span';
|
|
64
|
-
var child = render && typeof render === 'function' && render(reset
|
|
80
|
+
var child = render && typeof render === 'function' && render(reset, {
|
|
81
|
+
value,
|
|
82
|
+
parentValue,
|
|
83
|
+
keyName,
|
|
84
|
+
keys: keys || (keyName ? [keyName] : [])
|
|
85
|
+
});
|
|
65
86
|
if (child) return child;
|
|
66
87
|
return /*#__PURE__*/_jsx(Elm, _extends({}, reset));
|
|
67
88
|
};
|
|
@@ -72,7 +93,12 @@ export var Arrow = props => {
|
|
|
72
93
|
} = useSymbolsStore();
|
|
73
94
|
var expands = useExpandsStore();
|
|
74
95
|
var {
|
|
75
|
-
expandKey
|
|
96
|
+
expandKey,
|
|
97
|
+
style: resetStyle,
|
|
98
|
+
value,
|
|
99
|
+
parentValue,
|
|
100
|
+
keyName,
|
|
101
|
+
keys
|
|
76
102
|
} = props;
|
|
77
103
|
var isExpanded = !!expands[expandKey];
|
|
78
104
|
var {
|
|
@@ -83,24 +109,41 @@ export var Arrow = props => {
|
|
|
83
109
|
reset = _objectWithoutPropertiesLoose(Comp, _excluded5);
|
|
84
110
|
var Elm = as || 'span';
|
|
85
111
|
var isRender = render && typeof render === 'function';
|
|
86
|
-
var
|
|
112
|
+
var elmProps = _extends({}, reset, {
|
|
87
113
|
'data-expanded': isExpanded,
|
|
88
|
-
style: _extends({}, style,
|
|
89
|
-
})
|
|
114
|
+
style: _extends({}, style, resetStyle)
|
|
115
|
+
});
|
|
116
|
+
var result = {
|
|
117
|
+
value,
|
|
118
|
+
parentValue,
|
|
119
|
+
keyName,
|
|
120
|
+
keys: keys || (keyName ? [keyName] : [])
|
|
121
|
+
};
|
|
122
|
+
var child = isRender && render(elmProps, result);
|
|
90
123
|
if (child) return child;
|
|
91
124
|
return /*#__PURE__*/_jsx(Elm, _extends({}, reset, {
|
|
92
|
-
style: _extends({}, style,
|
|
125
|
+
style: _extends({}, style, resetStyle)
|
|
93
126
|
}));
|
|
94
127
|
};
|
|
95
128
|
Arrow.displayName = 'JVR.Arrow';
|
|
96
|
-
export var BracketsOpen =
|
|
129
|
+
export var BracketsOpen = props => {
|
|
97
130
|
var {
|
|
98
|
-
isBrackets
|
|
99
|
-
|
|
131
|
+
isBrackets,
|
|
132
|
+
value,
|
|
133
|
+
parentValue,
|
|
134
|
+
keyName,
|
|
135
|
+
keys
|
|
136
|
+
} = props;
|
|
100
137
|
var {
|
|
101
138
|
BracketsLeft = {},
|
|
102
139
|
BraceLeft = {}
|
|
103
140
|
} = useSymbolsStore();
|
|
141
|
+
var result = {
|
|
142
|
+
value,
|
|
143
|
+
parentValue,
|
|
144
|
+
keyName,
|
|
145
|
+
keys: keys || (keyName ? [keyName] : [])
|
|
146
|
+
};
|
|
104
147
|
if (isBrackets) {
|
|
105
148
|
var {
|
|
106
149
|
as,
|
|
@@ -108,7 +151,7 @@ export var BracketsOpen = _ref => {
|
|
|
108
151
|
} = BracketsLeft,
|
|
109
152
|
reset = _objectWithoutPropertiesLoose(BracketsLeft, _excluded6);
|
|
110
153
|
var BracketsLeftComp = as || 'span';
|
|
111
|
-
var _child = _render && typeof _render === 'function' && _render(reset);
|
|
154
|
+
var _child = _render && typeof _render === 'function' && _render(reset, result);
|
|
112
155
|
if (_child) return _child;
|
|
113
156
|
return /*#__PURE__*/_jsx(BracketsLeftComp, _extends({}, reset));
|
|
114
157
|
}
|
|
@@ -116,18 +159,28 @@ export var BracketsOpen = _ref => {
|
|
|
116
159
|
as: elm,
|
|
117
160
|
render
|
|
118
161
|
} = BraceLeft,
|
|
119
|
-
|
|
162
|
+
resetProps = _objectWithoutPropertiesLoose(BraceLeft, _excluded7);
|
|
120
163
|
var BraceLeftComp = elm || 'span';
|
|
121
|
-
var child = render && typeof render === 'function' && render(
|
|
164
|
+
var child = render && typeof render === 'function' && render(resetProps, result);
|
|
122
165
|
if (child) return child;
|
|
123
|
-
return /*#__PURE__*/_jsx(BraceLeftComp, _extends({},
|
|
166
|
+
return /*#__PURE__*/_jsx(BraceLeftComp, _extends({}, resetProps));
|
|
124
167
|
};
|
|
125
168
|
BracketsOpen.displayName = 'JVR.BracketsOpen';
|
|
126
|
-
export var BracketsClose =
|
|
169
|
+
export var BracketsClose = props => {
|
|
127
170
|
var {
|
|
128
171
|
isBrackets,
|
|
129
|
-
isVisiable
|
|
130
|
-
|
|
172
|
+
isVisiable,
|
|
173
|
+
value,
|
|
174
|
+
parentValue,
|
|
175
|
+
keyName,
|
|
176
|
+
keys
|
|
177
|
+
} = props;
|
|
178
|
+
var result = {
|
|
179
|
+
value,
|
|
180
|
+
parentValue,
|
|
181
|
+
keyName,
|
|
182
|
+
keys: keys || (keyName ? [keyName] : [])
|
|
183
|
+
};
|
|
131
184
|
if (!isVisiable) return null;
|
|
132
185
|
var {
|
|
133
186
|
BracketsRight = {},
|
|
@@ -140,7 +193,7 @@ export var BracketsClose = _ref2 => {
|
|
|
140
193
|
} = BracketsRight,
|
|
141
194
|
_reset = _objectWithoutPropertiesLoose(BracketsRight, _excluded8);
|
|
142
195
|
var BracketsRightComp = as || 'span';
|
|
143
|
-
var _child2 = _render2 && typeof _render2 === 'function' && _render2(_reset);
|
|
196
|
+
var _child2 = _render2 && typeof _render2 === 'function' && _render2(_reset, result);
|
|
144
197
|
if (_child2) return _child2;
|
|
145
198
|
return /*#__PURE__*/_jsx(BracketsRightComp, _extends({}, _reset));
|
|
146
199
|
}
|
|
@@ -150,7 +203,7 @@ export var BracketsClose = _ref2 => {
|
|
|
150
203
|
} = BraceRight,
|
|
151
204
|
reset = _objectWithoutPropertiesLoose(BraceRight, _excluded9);
|
|
152
205
|
var BraceRightComp = elm || 'span';
|
|
153
|
-
var child = render && typeof render === 'function' && render(reset);
|
|
206
|
+
var child = render && typeof render === 'function' && render(reset, result);
|
|
154
207
|
if (child) return child;
|
|
155
208
|
return /*#__PURE__*/_jsx(BraceRightComp, _extends({}, reset));
|
|
156
209
|
};
|