@uiw/react-json-view 2.0.0-alpha.2 → 2.0.0-alpha.21

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (186) hide show
  1. package/README.md +146 -21
  2. package/basic.d.ts +3 -0
  3. package/cjs/Container.d.ts +2 -0
  4. package/cjs/Container.js +9 -4
  5. package/cjs/arrow/TriangleArrow.js +1 -1
  6. package/cjs/comps/Copied.d.ts +2 -3
  7. package/cjs/comps/Copied.js +29 -16
  8. package/cjs/comps/KeyValues.d.ts +2 -4
  9. package/cjs/comps/KeyValues.js +49 -24
  10. package/cjs/comps/NestedClose.js +3 -4
  11. package/cjs/comps/NestedOpen.d.ts +2 -3
  12. package/cjs/comps/NestedOpen.js +23 -17
  13. package/cjs/comps/Value.d.ts +1 -2
  14. package/cjs/comps/Value.js +16 -20
  15. package/cjs/editor/KeyName.d.ts +2 -0
  16. package/cjs/editor/KeyName.js +82 -0
  17. package/cjs/editor/index.d.ts +19 -0
  18. package/cjs/editor/index.js +44 -0
  19. package/cjs/editor/store.d.ts +28 -0
  20. package/cjs/editor/store.js +23 -0
  21. package/cjs/index.d.ts +5 -3
  22. package/cjs/index.js +11 -8
  23. package/cjs/section/Copied.d.ts +1 -1
  24. package/cjs/section/Copied.js +1 -2
  25. package/cjs/section/CountInfo.d.ts +10 -1
  26. package/cjs/section/CountInfo.js +42 -4
  27. package/cjs/section/CountInfoExtra.d.ts +10 -1
  28. package/cjs/section/CountInfoExtra.js +32 -4
  29. package/cjs/section/Ellipsis.d.ts +10 -0
  30. package/cjs/section/Ellipsis.js +30 -4
  31. package/cjs/section/KeyName.d.ts +8 -0
  32. package/cjs/section/KeyName.js +40 -4
  33. package/cjs/section/Row.d.ts +14 -0
  34. package/cjs/section/Row.js +51 -0
  35. package/cjs/store/Expands.js +2 -4
  36. package/cjs/store/Section.d.ts +12 -6
  37. package/cjs/store/Section.js +6 -4
  38. package/cjs/store/ShowTools.js +2 -4
  39. package/cjs/store/Symbols.d.ts +2 -2
  40. package/cjs/store/Symbols.js +2 -4
  41. package/cjs/store/Types.d.ts +28 -24
  42. package/cjs/store/Types.js +8 -8
  43. package/cjs/store.d.ts +7 -4
  44. package/cjs/store.js +5 -10
  45. package/cjs/symbol/Arrow.d.ts +1 -1
  46. package/cjs/symbol/Arrow.js +1 -2
  47. package/cjs/symbol/BraceLeft.d.ts +1 -1
  48. package/cjs/symbol/BraceLeft.js +1 -2
  49. package/cjs/symbol/BraceRight.d.ts +1 -1
  50. package/cjs/symbol/BraceRight.js +1 -2
  51. package/cjs/symbol/BracketsLeft.d.ts +1 -1
  52. package/cjs/symbol/BracketsLeft.js +1 -2
  53. package/cjs/symbol/BracketsRight.d.ts +1 -1
  54. package/cjs/symbol/BracketsRight.js +1 -2
  55. package/cjs/symbol/Colon.d.ts +1 -1
  56. package/cjs/symbol/Colon.js +1 -2
  57. package/cjs/symbol/Quote.d.ts +1 -1
  58. package/cjs/symbol/Quote.js +1 -2
  59. package/cjs/symbol/ValueQuote.d.ts +1 -1
  60. package/cjs/symbol/ValueQuote.js +1 -2
  61. package/{esm/comps/ReRender/Symbols.d.ts → cjs/symbol/index.d.ts} +4 -6
  62. package/cjs/{comps/ReRender/Symbols.js → symbol/index.js} +32 -33
  63. package/cjs/theme/basic.js +4 -3
  64. package/cjs/theme/dark.js +2 -3
  65. package/cjs/theme/github.dark.js +2 -3
  66. package/cjs/theme/github.light.js +2 -3
  67. package/cjs/theme/gruvbox.js +2 -3
  68. package/cjs/theme/light.js +2 -3
  69. package/cjs/theme/monokai.js +2 -3
  70. package/cjs/theme/nord.js +2 -3
  71. package/cjs/theme/vscode.js +2 -3
  72. package/cjs/types/Bigint.d.ts +1 -1
  73. package/cjs/types/Bigint.js +1 -2
  74. package/cjs/types/Date.d.ts +1 -1
  75. package/cjs/types/Date.js +1 -2
  76. package/cjs/types/False.d.ts +1 -1
  77. package/cjs/types/False.js +1 -2
  78. package/cjs/types/Float.d.ts +1 -1
  79. package/cjs/types/Float.js +1 -2
  80. package/cjs/types/Int.d.ts +1 -1
  81. package/cjs/types/Int.js +1 -2
  82. package/cjs/types/Map.d.ts +1 -1
  83. package/cjs/types/Map.js +1 -2
  84. package/cjs/types/Nan.d.ts +1 -1
  85. package/cjs/types/Nan.js +1 -2
  86. package/cjs/types/Null.d.ts +1 -1
  87. package/cjs/types/Null.js +1 -2
  88. package/cjs/types/Set.d.ts +1 -1
  89. package/cjs/types/Set.js +1 -2
  90. package/cjs/types/String.d.ts +1 -1
  91. package/cjs/types/String.js +1 -2
  92. package/cjs/types/True.d.ts +1 -1
  93. package/cjs/types/True.js +1 -2
  94. package/cjs/types/Undefined.d.ts +1 -1
  95. package/cjs/types/Undefined.js +1 -2
  96. package/cjs/types/Url.d.ts +1 -1
  97. package/cjs/types/Url.js +1 -2
  98. package/{esm/comps/ReRender/Types.d.ts → cjs/types/index.d.ts} +2 -2
  99. package/cjs/{comps/ReRender/Types.js → types/index.js} +92 -171
  100. package/cjs/utils/useHighlight.js +0 -1
  101. package/cjs/utils/useRender.d.ts +1 -1
  102. package/editor.d.ts +22 -20
  103. package/esm/Container.d.ts +2 -0
  104. package/esm/Container.js +10 -4
  105. package/esm/arrow/TriangleArrow.js +1 -1
  106. package/esm/comps/Copied.d.ts +2 -3
  107. package/esm/comps/Copied.js +27 -15
  108. package/esm/comps/KeyValues.d.ts +2 -4
  109. package/esm/comps/KeyValues.js +37 -15
  110. package/esm/comps/NestedClose.js +1 -1
  111. package/esm/comps/NestedOpen.d.ts +2 -3
  112. package/esm/comps/NestedOpen.js +18 -12
  113. package/esm/comps/Value.d.ts +1 -2
  114. package/esm/comps/Value.js +3 -5
  115. package/esm/editor/KeyName.d.ts +2 -0
  116. package/esm/editor/KeyName.js +77 -0
  117. package/esm/editor/index.d.ts +19 -0
  118. package/esm/editor/index.js +33 -0
  119. package/esm/editor/store.d.ts +28 -0
  120. package/esm/editor/store.js +13 -0
  121. package/esm/index.d.ts +5 -3
  122. package/esm/index.js +9 -6
  123. package/esm/section/Copied.d.ts +1 -1
  124. package/esm/section/CountInfo.d.ts +10 -1
  125. package/esm/section/CountInfo.js +43 -1
  126. package/esm/section/CountInfoExtra.d.ts +10 -1
  127. package/esm/section/CountInfoExtra.js +32 -1
  128. package/esm/section/Ellipsis.d.ts +10 -0
  129. package/esm/section/Ellipsis.js +31 -1
  130. package/esm/section/KeyName.d.ts +8 -0
  131. package/esm/section/KeyName.js +41 -1
  132. package/esm/section/Row.d.ts +14 -0
  133. package/esm/section/Row.js +47 -0
  134. package/esm/store/Section.d.ts +12 -6
  135. package/esm/store/Section.js +4 -0
  136. package/esm/store/Symbols.d.ts +2 -2
  137. package/esm/store/Types.d.ts +28 -24
  138. package/esm/store/Types.js +6 -4
  139. package/esm/store.d.ts +7 -4
  140. package/esm/symbol/Arrow.d.ts +1 -1
  141. package/esm/symbol/BraceLeft.d.ts +1 -1
  142. package/esm/symbol/BraceRight.d.ts +1 -1
  143. package/esm/symbol/BracketsLeft.d.ts +1 -1
  144. package/esm/symbol/BracketsRight.d.ts +1 -1
  145. package/esm/symbol/Colon.d.ts +1 -1
  146. package/esm/symbol/Quote.d.ts +1 -1
  147. package/esm/symbol/ValueQuote.d.ts +1 -1
  148. package/{cjs/comps/ReRender/Symbols.d.ts → esm/symbol/index.d.ts} +4 -6
  149. package/esm/{comps/ReRender/Symbols.js → symbol/index.js} +26 -24
  150. package/esm/theme/basic.js +2 -0
  151. package/esm/types/Bigint.d.ts +1 -1
  152. package/esm/types/Date.d.ts +1 -1
  153. package/esm/types/False.d.ts +1 -1
  154. package/esm/types/Float.d.ts +1 -1
  155. package/esm/types/Int.d.ts +1 -1
  156. package/esm/types/Map.d.ts +1 -1
  157. package/esm/types/Nan.d.ts +1 -1
  158. package/esm/types/Null.d.ts +1 -1
  159. package/esm/types/Set.d.ts +1 -1
  160. package/esm/types/String.d.ts +1 -1
  161. package/esm/types/True.d.ts +1 -1
  162. package/esm/types/Undefined.d.ts +1 -1
  163. package/esm/types/Url.d.ts +1 -1
  164. package/{cjs/comps/ReRender/Types.d.ts → esm/types/index.d.ts} +2 -2
  165. package/esm/{comps/ReRender/Types.js → types/index.js} +76 -148
  166. package/esm/utils/useHighlight.js +0 -1
  167. package/esm/utils/useRender.d.ts +1 -1
  168. package/githubDark.d.ts +3 -0
  169. package/githubLight.d.ts +3 -0
  170. package/gruvbox.d.ts +3 -0
  171. package/monokai.d.ts +3 -0
  172. package/nord.d.ts +3 -0
  173. package/package.json +11 -5
  174. package/vscode.d.ts +3 -0
  175. package/cjs/comps/CountInfo.d.ts +0 -19
  176. package/cjs/comps/CountInfo.js +0 -72
  177. package/cjs/comps/Ellipsis.d.ts +0 -10
  178. package/cjs/comps/Ellipsis.js +0 -35
  179. package/cjs/comps/Key.d.ts +0 -7
  180. package/cjs/comps/Key.js +0 -41
  181. package/esm/comps/CountInfo.d.ts +0 -19
  182. package/esm/comps/CountInfo.js +0 -70
  183. package/esm/comps/Ellipsis.d.ts +0 -10
  184. package/esm/comps/Ellipsis.js +0 -31
  185. package/esm/comps/Key.d.ts +0 -7
  186. package/esm/comps/Key.js +0 -37
@@ -6,9 +6,9 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.NestedClose = void 0;
7
7
  var _store = require("../store");
8
8
  var _Expands = require("../store/Expands");
9
- var _Symbols = require("./ReRender/Symbols");
9
+ var _symbol = require("../symbol");
10
10
  var _jsxRuntime = require("react/jsx-runtime");
11
- var NestedClose = function NestedClose(props) {
11
+ var NestedClose = exports.NestedClose = function NestedClose(props) {
12
12
  var _expands$expandKey;
13
13
  var value = props.value,
14
14
  expandKey = props.expandKey,
@@ -28,11 +28,10 @@ var NestedClose = function NestedClose(props) {
28
28
  };
29
29
  return /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
30
30
  style: style,
31
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Symbols.BracketsClose, {
31
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_symbol.BracketsClose, {
32
32
  isBrackets: isArray || isMySet,
33
33
  isVisiable: true
34
34
  })
35
35
  });
36
36
  };
37
- exports.NestedClose = NestedClose;
38
37
  NestedClose.displayName = 'JVR.NestedClose';
@@ -1,6 +1,5 @@
1
- export interface NestedOpenProps<T extends object> {
2
- keyName?: string | number;
3
- value?: T;
1
+ import { type SectionElementResult } from '../store/Section';
2
+ export interface NestedOpenProps<T extends object> extends SectionElementResult<T> {
4
3
  initialValue?: T;
5
4
  expandKey: string;
6
5
  level: number;
@@ -12,17 +12,20 @@ var _KeyValues = require("./KeyValues");
12
12
  var _Expands = require("../store/Expands");
13
13
  var _store = require("../store");
14
14
  var _Copied = require("./Copied");
15
- var _CountInfo = require("./CountInfo");
16
- var _Symbols = require("./ReRender/Symbols");
17
- var _Ellipsis = require("./Ellipsis");
18
- var _Types = require("./ReRender/Types");
15
+ var _CountInfoExtra = require("../section/CountInfoExtra");
16
+ var _CountInfo = require("../section/CountInfo");
17
+ var _symbol = require("../symbol");
18
+ var _Ellipsis = require("../section/Ellipsis");
19
+ var _types = require("../types");
19
20
  var _jsxRuntime = require("react/jsx-runtime");
20
- var NestedOpen = function NestedOpen(props) {
21
+ var NestedOpen = exports.NestedOpen = function NestedOpen(props) {
21
22
  var _expands$expandKey;
22
23
  var keyName = props.keyName,
23
24
  expandKey = props.expandKey,
25
+ keys = props.keys,
24
26
  initialValue = props.initialValue,
25
27
  value = props.value,
28
+ parentValue = props.parentValue,
26
29
  level = props.level;
27
30
  var expands = (0, _Expands.useExpandsStore)();
28
31
  var dispatchExpands = (0, _Expands.useExpandsDispatch)();
@@ -60,36 +63,39 @@ var NestedOpen = function NestedOpen(props) {
60
63
  reset.onClick = click;
61
64
  }
62
65
  return /*#__PURE__*/(0, _jsxRuntime.jsxs)("span", (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, reset), {}, {
63
- children: [showArrow && /*#__PURE__*/(0, _jsxRuntime.jsx)(_Symbols.Arrow, {
66
+ children: [showArrow && /*#__PURE__*/(0, _jsxRuntime.jsx)(_symbol.Arrow, {
64
67
  style: arrowStyle,
65
68
  expandKey: expandKey
66
69
  }), (keyName || typeof keyName === 'number') && /*#__PURE__*/(0, _jsxRuntime.jsx)(_KeyValues.KayName, {
67
70
  keyName: keyName
68
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Types.SetComp, {
69
- value: initialValue
70
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Types.MapComp, {
71
- value: initialValue
72
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Symbols.BracketsOpen, {
71
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_types.SetComp, {
72
+ value: initialValue,
73
+ keyName: keyName
74
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_types.MapComp, {
75
+ value: initialValue,
76
+ keyName: keyName
77
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_symbol.BracketsOpen, {
73
78
  isBrackets: isArray || isMySet
74
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Ellipsis.Ellipsis, {
79
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Ellipsis.EllipsisComp, {
75
80
  keyName: keyName,
76
81
  value: value,
77
82
  isExpanded: isExpanded
78
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Symbols.BracketsClose, {
83
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_symbol.BracketsClose, {
79
84
  isVisiable: isExpanded || !showArrow,
80
85
  isBrackets: isArray || isMySet
81
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_CountInfo.CountInfo, {
86
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_CountInfo.CountInfoComp, {
82
87
  value: value,
83
88
  keyName: keyName
84
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_CountInfo.CountInfoExtra, {
89
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_CountInfoExtra.CountInfoExtraComps, {
85
90
  value: value,
86
91
  keyName: keyName
87
92
  }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Copied.Copied, {
88
93
  keyName: keyName,
89
94
  value: value,
90
- expandKey: expandKey
95
+ expandKey: expandKey,
96
+ parentValue: parentValue,
97
+ keys: keys
91
98
  })]
92
99
  }));
93
100
  };
94
- exports.NestedOpen = NestedOpen;
95
101
  NestedOpen.displayName = 'JVR.NestedOpen';
@@ -1,8 +1,7 @@
1
1
  export declare const isFloat: (n: number) => boolean;
2
2
  interface ValueProps {
3
- value?: unknown;
3
+ value: unknown;
4
4
  keyName: string | number;
5
- expandKey: string;
6
5
  }
7
6
  export declare const Value: {
8
7
  (props: ValueProps): import("react/jsx-runtime").JSX.Element | null;
@@ -6,73 +6,69 @@ Object.defineProperty(exports, "__esModule", {
6
6
  });
7
7
  exports.isFloat = exports.Value = void 0;
8
8
  var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
9
- var _Types = require("./ReRender/Types");
9
+ var _types = require("../types");
10
10
  var _jsxRuntime = require("react/jsx-runtime");
11
- var isFloat = function isFloat(n) {
11
+ var isFloat = exports.isFloat = function isFloat(n) {
12
12
  return Number(n) === n && n % 1 !== 0 || isNaN(n);
13
13
  };
14
- exports.isFloat = isFloat;
15
- var Value = function Value(props) {
14
+ var Value = exports.Value = function Value(props) {
16
15
  var value = props.value,
17
- keyName = props.keyName,
18
- expandKey = props.expandKey;
16
+ keyName = props.keyName;
19
17
  var reset = {
20
- keyName: keyName,
21
- expandKey: expandKey
18
+ keyName: keyName
22
19
  };
23
20
  if (value instanceof URL) {
24
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(_Types.TypeUrl, (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, reset), {}, {
21
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_types.TypeUrl, (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, reset), {}, {
25
22
  children: value
26
23
  }));
27
24
  }
28
25
  if (typeof value === 'string') {
29
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(_Types.TypeString, (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, reset), {}, {
26
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_types.TypeString, (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, reset), {}, {
30
27
  children: value
31
28
  }));
32
29
  }
33
30
  if (value === true) {
34
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(_Types.TypeTrue, (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, reset), {}, {
31
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_types.TypeTrue, (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, reset), {}, {
35
32
  children: value
36
33
  }));
37
34
  }
38
35
  if (value === false) {
39
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(_Types.TypeFalse, (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, reset), {}, {
36
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_types.TypeFalse, (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, reset), {}, {
40
37
  children: value
41
38
  }));
42
39
  }
43
40
  if (value === null) {
44
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(_Types.TypeNull, (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, reset), {}, {
41
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_types.TypeNull, (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, reset), {}, {
45
42
  children: value
46
43
  }));
47
44
  }
48
45
  if (value === undefined) {
49
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(_Types.TypeUndefined, (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, reset), {}, {
46
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_types.TypeUndefined, (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, reset), {}, {
50
47
  children: value
51
48
  }));
52
49
  }
53
50
  if (value instanceof Date) {
54
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(_Types.TypeDate, (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, reset), {}, {
51
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_types.TypeDate, (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, reset), {}, {
55
52
  children: value
56
53
  }));
57
54
  }
58
55
  if (typeof value === 'number' && isNaN(value)) {
59
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(_Types.TypeNan, (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, reset), {}, {
56
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_types.TypeNan, (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, reset), {}, {
60
57
  children: value
61
58
  }));
62
59
  } else if (typeof value === 'number' && isFloat(value)) {
63
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(_Types.TypeFloat, (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, reset), {}, {
60
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_types.TypeFloat, (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, reset), {}, {
64
61
  children: value
65
62
  }));
66
63
  } else if (typeof value === 'bigint') {
67
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(_Types.TypeBigint, (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, reset), {}, {
64
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_types.TypeBigint, (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, reset), {}, {
68
65
  children: value
69
66
  }));
70
67
  } else if (typeof value === 'number') {
71
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(_Types.TypeInt, (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, reset), {}, {
68
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_types.TypeInt, (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, reset), {}, {
72
69
  children: value
73
70
  }));
74
71
  }
75
72
  return null;
76
73
  };
77
- exports.Value = Value;
78
74
  Value.displayName = 'JVR.Value';
@@ -0,0 +1,2 @@
1
+ import { type SectionElementProps } from '../store/Section';
2
+ export declare const KeyNameRender: SectionElementProps['render'];
@@ -0,0 +1,82 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault")["default"];
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.KeyNameRender = void 0;
8
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
9
+ var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
10
+ var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
11
+ var _react = require("react");
12
+ var _store = require("./store");
13
+ var _jsxRuntime = require("react/jsx-runtime");
14
+ var _excluded = ["children"],
15
+ _excluded2 = ["value", "parentValue", "keyName"];
16
+ var KeyNameRender = exports.KeyNameRender = function KeyNameRender(_ref, _ref2) {
17
+ var children = _ref.children,
18
+ reset = (0, _objectWithoutProperties2["default"])(_ref, _excluded);
19
+ var value = _ref2.value,
20
+ parentValue = _ref2.parentValue,
21
+ keyName = _ref2.keyName;
22
+ if (typeof children === 'number') {
23
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)("span", (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, reset), {}, {
24
+ children: children
25
+ }));
26
+ }
27
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(Child, (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, reset), {}, {
28
+ value: value,
29
+ parentValue: parentValue,
30
+ keyName: keyName,
31
+ children: children
32
+ }));
33
+ };
34
+ var Child = function Child(props) {
35
+ var value = props.value,
36
+ parentValue = props.parentValue,
37
+ keyName = props.keyName,
38
+ reset = (0, _objectWithoutProperties2["default"])(props, _excluded2);
39
+ var $dom = (0, _react.useRef)(null);
40
+ var _useState = (0, _react.useState)(props.children),
41
+ _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
42
+ currentValue = _useState2[0],
43
+ setCurrentValue = _useState2[1];
44
+ var _useStore = (0, _store.useStore)(),
45
+ onEdit = _useStore.onEdit;
46
+ var onKeyDown = function onKeyDown(evn) {
47
+ if (evn.key === 'Enter') {
48
+ var _$dom$current;
49
+ (_$dom$current = $dom.current) === null || _$dom$current === void 0 || _$dom$current.setAttribute('contentEditable', 'false');
50
+ }
51
+ };
52
+ var onClick = function onClick(evn) {
53
+ var _$dom$current2, _$dom$current3;
54
+ evn.stopPropagation();
55
+ (_$dom$current2 = $dom.current) === null || _$dom$current2 === void 0 || _$dom$current2.setAttribute('contentEditable', 'true');
56
+ (_$dom$current3 = $dom.current) === null || _$dom$current3 === void 0 || _$dom$current3.focus();
57
+ };
58
+ var onBlur = function onBlur(evn) {
59
+ var _$dom$current4;
60
+ (_$dom$current4 = $dom.current) === null || _$dom$current4 === void 0 || _$dom$current4.setAttribute('contentEditable', 'false');
61
+ var callback = onEdit && onEdit({
62
+ value: evn.target.textContent,
63
+ oldValue: value,
64
+ keyName: keyName
65
+ });
66
+ if (callback) {
67
+ setCurrentValue(evn.target.textContent);
68
+ }
69
+ };
70
+ var spanProps = (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, reset), {}, {
71
+ onKeyDown: onKeyDown,
72
+ onClick: onClick,
73
+ onBlur: onBlur,
74
+ spellCheck: false,
75
+ contentEditable: 'false',
76
+ suppressContentEditableWarning: true,
77
+ children: currentValue
78
+ });
79
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)("span", (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, spanProps), {}, {
80
+ ref: $dom
81
+ }));
82
+ };
@@ -0,0 +1,19 @@
1
+ /// <reference types="react" />
2
+ import { type JsonViewProps } from '../';
3
+ export interface JsonViewEditorProps<T extends object> extends Omit<JsonViewProps<T>, 'shortenTextAfterLength'> {
4
+ /**
5
+ * When a callback function is passed in, edit functionality is enabled. The callback is invoked before edits are completed.
6
+ * @returns {boolean} Returning false from onEdit will prevent the change from being made.
7
+ */
8
+ onEdit?: (option: {
9
+ value: unknown;
10
+ oldValue: unknown;
11
+ keyName?: string | number;
12
+ parentName?: string | number;
13
+ type?: 'value' | 'key';
14
+ }) => boolean;
15
+ /** Whether enable edit feature. @default true */
16
+ editable?: boolean;
17
+ }
18
+ declare const JsonViewEditor: import("react").ForwardRefExoticComponent<Omit<JsonViewEditorProps<object>, "ref"> & import("react").RefAttributes<HTMLDivElement>>;
19
+ export default JsonViewEditor;
@@ -0,0 +1,44 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault")["default"];
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports["default"] = void 0;
8
+ var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
9
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
10
+ var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
11
+ var _react = require("react");
12
+ var _ = _interopRequireDefault(require("../"));
13
+ var _KeyName = require("./KeyName");
14
+ var _store = require("./store");
15
+ var _jsxRuntime = require("react/jsx-runtime");
16
+ var _excluded = ["children", "onEdit", "editable"];
17
+ var JsonViewEditor = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
18
+ var children = props.children,
19
+ onEdit = props.onEdit,
20
+ _props$editable = props.editable,
21
+ editable = _props$editable === void 0 ? true : _props$editable,
22
+ reset = (0, _objectWithoutProperties2["default"])(props, _excluded);
23
+ var _useStoreReducer = (0, _store.useStoreReducer)({
24
+ onEdit: onEdit
25
+ }),
26
+ _useStoreReducer2 = (0, _slicedToArray2["default"])(_useStoreReducer, 2),
27
+ state = _useStoreReducer2[0],
28
+ dispatch = _useStoreReducer2[1];
29
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_store.Context.Provider, {
30
+ value: state,
31
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_store.Dispatch.Provider, {
32
+ value: dispatch,
33
+ children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_["default"], (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, reset), {}, {
34
+ shortenTextAfterLength: 0,
35
+ ref: ref,
36
+ children: [editable && /*#__PURE__*/(0, _jsxRuntime.jsx)(_["default"].KeyName, {
37
+ render: _KeyName.KeyNameRender
38
+ }), children]
39
+ }))
40
+ })
41
+ });
42
+ });
43
+ var _default = exports["default"] = JsonViewEditor;
44
+ module.exports = exports.default;
@@ -0,0 +1,28 @@
1
+ /// <reference types="react" />
2
+ type InitialState = {
3
+ /**
4
+ * When a callback function is passed in, edit functionality is enabled. The callback is invoked before edits are completed.
5
+ * @returns {boolean} Returning false from onEdit will prevent the change from being made.
6
+ */
7
+ onEdit?: (option: {
8
+ value: unknown;
9
+ oldValue: unknown;
10
+ keyName?: string | number;
11
+ parentName?: string | number;
12
+ type?: 'value' | 'key';
13
+ }) => boolean;
14
+ };
15
+ type Dispatch = React.Dispatch<InitialState>;
16
+ export declare const Context: import("react").Context<InitialState>;
17
+ export declare const Dispatch: import("react").Context<Dispatch>;
18
+ export declare const useStore: () => InitialState;
19
+ export declare function useStoreReducer(initialState: InitialState): [{
20
+ onEdit?: ((option: {
21
+ value: unknown;
22
+ oldValue: unknown;
23
+ keyName?: string | number | undefined;
24
+ parentName?: string | number | undefined;
25
+ type?: "value" | "key" | undefined;
26
+ }) => boolean) | undefined;
27
+ }, import("react").Dispatch<InitialState>];
28
+ export {};
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault")["default"];
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.useStore = exports.Dispatch = exports.Context = void 0;
8
+ exports.useStoreReducer = useStoreReducer;
9
+ var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
10
+ var _react = require("react");
11
+ var initialState = {};
12
+ var Context = exports.Context = /*#__PURE__*/(0, _react.createContext)(initialState);
13
+ var reducer = function reducer(state, action) {
14
+ return (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, state), action);
15
+ };
16
+ var Dispatch = exports.Dispatch = /*#__PURE__*/(0, _react.createContext)(function () {});
17
+ Dispatch.displayName = 'JVR.Editor.Dispatch';
18
+ var useStore = exports.useStore = function useStore() {
19
+ return (0, _react.useContext)(Context);
20
+ };
21
+ function useStoreReducer(initialState) {
22
+ return (0, _react.useReducer)(reducer, initialState);
23
+ }
package/cjs/index.d.ts CHANGED
@@ -25,19 +25,20 @@ import { CountInfo } from './section/CountInfo';
25
25
  import { CountInfoExtra } from './section/CountInfoExtra';
26
26
  import { Ellipsis } from './section/Ellipsis';
27
27
  import { KeyName } from './section/KeyName';
28
+ import { Row } from './section/Row';
28
29
  export * from './store';
29
30
  export * from './store/Expands';
30
31
  export * from './store/ShowTools';
31
32
  export * from './store/Symbols';
32
33
  export * from './store/Types';
33
- export * from './comps/ReRender/Symbols';
34
+ export * from './symbol';
34
35
  export interface JsonViewProps<T extends object> extends React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement> {
35
36
  /** This property contains your input JSON */
36
37
  value?: T;
37
38
  /** Define the root node name. @default undefined */
38
39
  keyName?: string | number;
39
40
  /** Whether sort keys through `String.prototype.localeCompare()` @default false */
40
- objectSortKeys?: boolean | ((a: string, b: string) => number);
41
+ objectSortKeys?: boolean | ((keyA: string, keyB: string, valueA: T, valueB: T) => number);
41
42
  /** Set the indent-width for nested objects @default 15 */
42
43
  indentWidth?: number;
43
44
  /** When set to `true`, `objects` and `arrays` are labeled with size @default true */
@@ -50,7 +51,7 @@ export interface JsonViewProps<T extends object> extends React.DetailedHTMLProps
50
51
  collapsed?: boolean | number;
51
52
  /** Whether to highlight updates. @default true */
52
53
  highlightUpdates?: boolean;
53
- /** Shorten long JSON strings, Set to `0` to disable this feature @default 20 */
54
+ /** Shorten long JSON strings, Set to `0` to disable this feature @default 30 */
54
55
  shortenTextAfterLength?: number;
55
56
  /** Callback function for when a treeNode is expanded or collapsed */
56
57
  onExpand?: (props: {
@@ -89,6 +90,7 @@ type JsonViewComponent = React.FC<React.PropsWithRef<JsonViewProps<object>>> & {
89
90
  CountInfo: typeof CountInfo;
90
91
  CountInfoExtra: typeof CountInfoExtra;
91
92
  KeyName: typeof KeyName;
93
+ Row: typeof Row;
92
94
  };
93
95
  declare const JsonView: JsonViewComponent;
94
96
  export default JsonView;
package/cjs/index.js CHANGED
@@ -48,6 +48,7 @@ var _CountInfo = require("./section/CountInfo");
48
48
  var _CountInfoExtra = require("./section/CountInfoExtra");
49
49
  var _Ellipsis = require("./section/Ellipsis");
50
50
  var _KeyName = require("./section/KeyName");
51
+ var _Row = require("./section/Row");
51
52
  var _jsxRuntime = require("react/jsx-runtime");
52
53
  var _Expands = require("./store/Expands");
53
54
  Object.keys(_Expands).forEach(function (key) {
@@ -97,19 +98,19 @@ Object.keys(_Types).forEach(function (key) {
97
98
  }
98
99
  });
99
100
  });
100
- var _Symbols2 = require("./comps/ReRender/Symbols");
101
- Object.keys(_Symbols2).forEach(function (key) {
101
+ var _symbol = require("./symbol");
102
+ Object.keys(_symbol).forEach(function (key) {
102
103
  if (key === "default" || key === "__esModule") return;
103
104
  if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
104
- if (key in exports && exports[key] === _Symbols2[key]) return;
105
+ if (key in exports && exports[key] === _symbol[key]) return;
105
106
  Object.defineProperty(exports, key, {
106
107
  enumerable: true,
107
108
  get: function get() {
108
- return _Symbols2[key];
109
+ return _symbol[key];
109
110
  }
110
111
  });
111
112
  });
112
- var _excluded = ["className", "style", "value", "children", "collapsed", "indentWidth", "displayObjectSize", "shortenTextAfterLength", "highlightUpdates", "enableClipboard", "displayDataTypes", "objectSortKeys", "onExpand"];
113
+ var _excluded = ["className", "style", "value", "children", "collapsed", "indentWidth", "displayObjectSize", "shortenTextAfterLength", "highlightUpdates", "enableClipboard", "displayDataTypes", "objectSortKeys", "onExpand", "onCopied"];
113
114
  var JsonView = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
114
115
  var _props$className = props.className,
115
116
  className = _props$className === void 0 ? '' : _props$className,
@@ -122,7 +123,7 @@ var JsonView = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
122
123
  _props$displayObjectS = props.displayObjectSize,
123
124
  displayObjectSize = _props$displayObjectS === void 0 ? true : _props$displayObjectS,
124
125
  _props$shortenTextAft = props.shortenTextAfterLength,
125
- shortenTextAfterLength = _props$shortenTextAft === void 0 ? 20 : _props$shortenTextAft,
126
+ shortenTextAfterLength = _props$shortenTextAft === void 0 ? 30 : _props$shortenTextAft,
126
127
  _props$highlightUpdat = props.highlightUpdates,
127
128
  highlightUpdates = _props$highlightUpdat === void 0 ? true : _props$highlightUpdat,
128
129
  _props$enableClipboar = props.enableClipboard,
@@ -132,6 +133,7 @@ var JsonView = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
132
133
  _props$objectSortKeys = props.objectSortKeys,
133
134
  objectSortKeys = _props$objectSortKeys === void 0 ? false : _props$objectSortKeys,
134
135
  onExpand = props.onExpand,
136
+ onCopied = props.onCopied,
135
137
  elmProps = (0, _objectWithoutProperties2["default"])(props, _excluded);
136
138
  var defaultStyle = (0, _objectSpread2["default"])({
137
139
  lineHeight: 1.4,
@@ -151,6 +153,7 @@ var JsonView = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
151
153
  enableClipboard: enableClipboard,
152
154
  shortenTextAfterLength: shortenTextAfterLength,
153
155
  highlightUpdates: highlightUpdates,
156
+ onCopied: onCopied,
154
157
  onExpand: onExpand
155
158
  },
156
159
  initialTypes: {
@@ -191,6 +194,6 @@ JsonView.Copied = _Copied.Copied;
191
194
  JsonView.CountInfo = _CountInfo.CountInfo;
192
195
  JsonView.CountInfoExtra = _CountInfoExtra.CountInfoExtra;
193
196
  JsonView.KeyName = _KeyName.KeyName;
197
+ JsonView.Row = _Row.Row;
194
198
  JsonView.displayName = 'JVR.JsonView';
195
- var _default = JsonView;
196
- exports["default"] = _default;
199
+ var _default = exports["default"] = JsonView;
@@ -1,6 +1,6 @@
1
1
  import { type TagType } from '../store/Types';
2
2
  import { type SectionElement } from '../store/Section';
3
3
  export declare const Copied: {
4
- (props: SectionElement<TagType>): null;
4
+ <K extends TagType = "svg">(props: SectionElement<K>): null;
5
5
  displayName: string;
6
6
  };
@@ -6,12 +6,11 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.Copied = void 0;
7
7
  var _Section = require("../store/Section");
8
8
  var _useRender = require("../utils/useRender");
9
- var Copied = function Copied(props) {
9
+ var Copied = exports.Copied = function Copied(props) {
10
10
  var _useSectionStore = (0, _Section.useSectionStore)(),
11
11
  _useSectionStore$Copi = _useSectionStore.Copied,
12
12
  Comp = _useSectionStore$Copi === void 0 ? {} : _useSectionStore$Copi;
13
13
  (0, _useRender.useSectionRender)(Comp, props, 'Copied');
14
14
  return null;
15
15
  };
16
- exports.Copied = Copied;
17
16
  Copied.displayName = 'JVR.Copied';
@@ -1,6 +1,15 @@
1
+ /// <reference types="react" />
1
2
  import { type TagType } from '../store/Types';
2
- import { type SectionElement } from '../store/Section';
3
+ import { type SectionElement, type SectionElementProps } from '../store/Section';
3
4
  export declare const CountInfo: {
4
5
  <K extends TagType>(props: SectionElement<K>): null;
5
6
  displayName: string;
6
7
  };
8
+ export interface CountInfoCompProps<T extends object> {
9
+ value?: T;
10
+ keyName: string | number;
11
+ }
12
+ export declare const CountInfoComp: {
13
+ <K extends TagType, T extends object>(props: SectionElementProps<K> & CountInfoCompProps<T> & React.HTMLAttributes<HTMLElement>): string | number | true | Iterable<import("react").ReactNode> | import("react/jsx-runtime").JSX.Element | null;
14
+ displayName: string;
15
+ };
@@ -1,17 +1,55 @@
1
1
  "use strict";
2
2
 
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault")["default"];
3
4
  Object.defineProperty(exports, "__esModule", {
4
5
  value: true
5
6
  });
6
- exports.CountInfo = void 0;
7
+ exports.CountInfoComp = exports.CountInfo = void 0;
8
+ var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
9
+ var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
7
10
  var _Section = require("../store/Section");
8
11
  var _useRender = require("../utils/useRender");
9
- var CountInfo = function CountInfo(props) {
12
+ var _store = require("../store");
13
+ var _jsxRuntime = require("react/jsx-runtime");
14
+ var _excluded = ["value", "keyName"],
15
+ _excluded2 = ["as", "render"];
16
+ var CountInfo = exports.CountInfo = function CountInfo(props) {
10
17
  var _useSectionStore = (0, _Section.useSectionStore)(),
11
18
  _useSectionStore$Coun = _useSectionStore.CountInfo,
12
19
  Comp = _useSectionStore$Coun === void 0 ? {} : _useSectionStore$Coun;
13
20
  (0, _useRender.useSectionRender)(Comp, props, 'CountInfo');
14
21
  return null;
15
22
  };
16
- exports.CountInfo = CountInfo;
17
- CountInfo.displayName = 'JVR.CountInfo';
23
+ CountInfo.displayName = 'JVR.CountInfo';
24
+ var CountInfoComp = exports.CountInfoComp = function CountInfoComp(props) {
25
+ var _props$value = props.value,
26
+ value = _props$value === void 0 ? {} : _props$value,
27
+ keyName = props.keyName,
28
+ other = (0, _objectWithoutProperties2["default"])(props, _excluded);
29
+ var _useStore = (0, _store.useStore)(),
30
+ displayObjectSize = _useStore.displayObjectSize;
31
+ var _useSectionStore2 = (0, _Section.useSectionStore)(),
32
+ _useSectionStore2$Cou = _useSectionStore2.CountInfo,
33
+ Comp = _useSectionStore2$Cou === void 0 ? {} : _useSectionStore2$Cou;
34
+ if (!displayObjectSize) return null;
35
+ var as = Comp.as,
36
+ render = Comp.render,
37
+ reset = (0, _objectWithoutProperties2["default"])(Comp, _excluded2);
38
+ var Elm = as || 'span';
39
+ reset.style = (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, reset.style), props.style);
40
+ var len = Object.keys(value).length;
41
+ if (!reset.children) {
42
+ reset.children = "".concat(len, " item").concat(len === 1 ? '' : 's');
43
+ }
44
+ var elmProps = (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, reset), other);
45
+ var isRender = render && typeof render === 'function';
46
+ var child = isRender && render((0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, elmProps), {}, {
47
+ 'data-length': len
48
+ }), {
49
+ value: value,
50
+ keyName: keyName
51
+ });
52
+ if (child) return child;
53
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(Elm, (0, _objectSpread2["default"])({}, elmProps));
54
+ };
55
+ CountInfoComp.displayName = 'JVR.CountInfoComp';
@@ -1,6 +1,15 @@
1
+ /// <reference types="react" />
1
2
  import { type TagType } from '../store/Types';
2
- import { type SectionElement } from '../store/Section';
3
+ import { type SectionElement, type SectionElementProps } from '../store/Section';
3
4
  export declare const CountInfoExtra: {
4
5
  <K extends TagType>(props: SectionElement<K>): null;
5
6
  displayName: string;
6
7
  };
8
+ export interface CountInfoExtraCompsProps<T extends object> {
9
+ value?: T;
10
+ keyName: string | number;
11
+ }
12
+ export declare const CountInfoExtraComps: {
13
+ <T extends object, K extends TagType>(props: SectionElementProps<K> & CountInfoExtraCompsProps<T>): string | number | true | Iterable<import("react").ReactNode> | import("react/jsx-runtime").JSX.Element | null;
14
+ displayName: string;
15
+ };