@uiw/react-json-view 2.0.0-alpha.4 → 2.0.0-alpha.41

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 (227) hide show
  1. package/README.md +280 -39
  2. package/basic.d.ts +4 -0
  3. package/cjs/Container.d.ts +2 -0
  4. package/cjs/Container.js +15 -6
  5. package/cjs/arrow/TriangleArrow.js +1 -1
  6. package/cjs/comps/Copied.d.ts +3 -4
  7. package/cjs/comps/Copied.js +61 -18
  8. package/cjs/comps/KeyValues.d.ts +2 -4
  9. package/cjs/comps/KeyValues.js +73 -28
  10. package/cjs/comps/NestedClose.d.ts +2 -2
  11. package/cjs/comps/NestedClose.js +42 -12
  12. package/cjs/comps/NestedOpen.d.ts +2 -3
  13. package/cjs/comps/NestedOpen.js +42 -20
  14. package/cjs/comps/Value.d.ts +2 -2
  15. package/cjs/comps/Value.js +5 -7
  16. package/cjs/comps/useIdCompat.d.ts +1 -0
  17. package/cjs/comps/useIdCompat.js +14 -0
  18. package/cjs/editor/KeyName.d.ts +2 -0
  19. package/cjs/editor/KeyName.js +82 -0
  20. package/cjs/editor/index.d.ts +18 -0
  21. package/cjs/editor/index.js +44 -0
  22. package/cjs/editor/store.d.ts +27 -0
  23. package/cjs/editor/store.js +23 -0
  24. package/cjs/index.d.ts +26 -4
  25. package/cjs/index.js +17 -7
  26. package/cjs/section/Copied.d.ts +4 -1
  27. package/cjs/section/Copied.js +1 -2
  28. package/cjs/section/CountInfo.d.ts +1 -2
  29. package/cjs/section/CountInfo.js +3 -5
  30. package/cjs/section/CountInfoExtra.d.ts +1 -2
  31. package/cjs/section/CountInfoExtra.js +2 -4
  32. package/cjs/section/Ellipsis.d.ts +0 -1
  33. package/cjs/section/Ellipsis.js +4 -5
  34. package/cjs/section/KeyName.d.ts +7 -6
  35. package/cjs/section/KeyName.js +8 -6
  36. package/cjs/section/Row.d.ts +13 -0
  37. package/cjs/section/Row.js +51 -0
  38. package/cjs/store/Expands.js +2 -4
  39. package/cjs/store/Section.d.ts +12 -6
  40. package/cjs/store/Section.js +6 -4
  41. package/cjs/store/ShowTools.js +2 -4
  42. package/cjs/store/Symbols.d.ts +10 -3
  43. package/cjs/store/Symbols.js +2 -4
  44. package/cjs/store/Types.d.ts +30 -25
  45. package/cjs/store/Types.js +8 -8
  46. package/cjs/store.d.ts +12 -6
  47. package/cjs/store.js +5 -10
  48. package/cjs/symbol/Arrow.d.ts +1 -1
  49. package/cjs/symbol/Arrow.js +1 -2
  50. package/cjs/symbol/BraceLeft.d.ts +1 -1
  51. package/cjs/symbol/BraceLeft.js +1 -2
  52. package/cjs/symbol/BraceRight.d.ts +1 -1
  53. package/cjs/symbol/BraceRight.js +1 -2
  54. package/cjs/symbol/BracketsLeft.d.ts +1 -1
  55. package/cjs/symbol/BracketsLeft.js +1 -2
  56. package/cjs/symbol/BracketsRight.d.ts +1 -1
  57. package/cjs/symbol/BracketsRight.js +1 -2
  58. package/cjs/symbol/Colon.d.ts +1 -1
  59. package/cjs/symbol/Colon.js +1 -2
  60. package/cjs/symbol/Quote.d.ts +1 -1
  61. package/cjs/symbol/Quote.js +1 -2
  62. package/cjs/symbol/ValueQuote.d.ts +1 -1
  63. package/cjs/symbol/ValueQuote.js +1 -2
  64. package/cjs/symbol/index.d.ts +12 -17
  65. package/cjs/symbol/index.js +82 -30
  66. package/cjs/theme/basic.d.ts +2 -2
  67. package/cjs/theme/basic.js +4 -3
  68. package/cjs/theme/dark.d.ts +2 -2
  69. package/cjs/theme/dark.js +2 -3
  70. package/cjs/theme/github.dark.d.ts +2 -2
  71. package/cjs/theme/github.dark.js +2 -3
  72. package/cjs/theme/github.light.d.ts +2 -2
  73. package/cjs/theme/github.light.js +2 -3
  74. package/cjs/theme/gruvbox.d.ts +2 -2
  75. package/cjs/theme/gruvbox.js +2 -3
  76. package/cjs/theme/light.d.ts +2 -2
  77. package/cjs/theme/light.js +2 -3
  78. package/cjs/theme/monokai.d.ts +2 -2
  79. package/cjs/theme/monokai.js +2 -3
  80. package/cjs/theme/nord.d.ts +2 -2
  81. package/cjs/theme/nord.js +2 -3
  82. package/cjs/theme/vscode.d.ts +2 -2
  83. package/cjs/theme/vscode.js +2 -3
  84. package/cjs/types/Bigint.d.ts +1 -1
  85. package/cjs/types/Bigint.js +1 -2
  86. package/cjs/types/Date.d.ts +1 -1
  87. package/cjs/types/Date.js +1 -2
  88. package/cjs/types/False.d.ts +1 -1
  89. package/cjs/types/False.js +1 -2
  90. package/cjs/types/Float.d.ts +1 -1
  91. package/cjs/types/Float.js +1 -2
  92. package/cjs/types/Int.d.ts +1 -1
  93. package/cjs/types/Int.js +1 -2
  94. package/cjs/types/Map.d.ts +1 -1
  95. package/cjs/types/Map.js +1 -2
  96. package/cjs/types/Nan.d.ts +1 -1
  97. package/cjs/types/Nan.js +1 -2
  98. package/cjs/types/Null.d.ts +1 -1
  99. package/cjs/types/Null.js +1 -2
  100. package/cjs/types/Set.d.ts +1 -1
  101. package/cjs/types/Set.js +1 -2
  102. package/cjs/types/String.d.ts +1 -1
  103. package/cjs/types/String.js +1 -2
  104. package/cjs/types/True.d.ts +1 -1
  105. package/cjs/types/True.js +1 -2
  106. package/cjs/types/Undefined.d.ts +1 -1
  107. package/cjs/types/Undefined.js +1 -2
  108. package/cjs/types/Url.d.ts +1 -1
  109. package/cjs/types/Url.js +1 -2
  110. package/cjs/types/index.d.ts +5 -2
  111. package/cjs/types/index.js +174 -166
  112. package/cjs/utils/useHighlight.d.ts +0 -1
  113. package/cjs/utils/useRender.d.ts +1 -1
  114. package/dark.d.ts +2 -1
  115. package/editor.d.ts +22 -20
  116. package/esm/Container.d.ts +2 -0
  117. package/esm/Container.js +21 -11
  118. package/esm/arrow/TriangleArrow.js +1 -1
  119. package/esm/comps/Copied.d.ts +3 -4
  120. package/esm/comps/Copied.js +61 -19
  121. package/esm/comps/KeyValues.d.ts +2 -4
  122. package/esm/comps/KeyValues.js +71 -27
  123. package/esm/comps/NestedClose.d.ts +2 -2
  124. package/esm/comps/NestedClose.js +40 -11
  125. package/esm/comps/NestedOpen.d.ts +2 -3
  126. package/esm/comps/NestedOpen.js +47 -26
  127. package/esm/comps/Value.d.ts +2 -2
  128. package/esm/comps/Value.js +3 -3
  129. package/esm/comps/useIdCompat.d.ts +1 -0
  130. package/esm/comps/useIdCompat.js +8 -0
  131. package/esm/editor/KeyName.d.ts +2 -0
  132. package/esm/editor/KeyName.js +77 -0
  133. package/esm/editor/index.d.ts +18 -0
  134. package/esm/editor/index.js +33 -0
  135. package/esm/editor/store.d.ts +27 -0
  136. package/esm/editor/store.js +13 -0
  137. package/esm/index.d.ts +26 -4
  138. package/esm/index.js +50 -41
  139. package/esm/section/Copied.d.ts +4 -1
  140. package/esm/section/Copied.js +2 -2
  141. package/esm/section/CountInfo.d.ts +1 -2
  142. package/esm/section/CountInfo.js +4 -4
  143. package/esm/section/CountInfoExtra.d.ts +1 -2
  144. package/esm/section/CountInfoExtra.js +2 -2
  145. package/esm/section/Ellipsis.d.ts +0 -1
  146. package/esm/section/Ellipsis.js +3 -3
  147. package/esm/section/KeyName.d.ts +7 -6
  148. package/esm/section/KeyName.js +8 -4
  149. package/esm/section/Row.d.ts +13 -0
  150. package/esm/section/Row.js +47 -0
  151. package/esm/store/Section.d.ts +12 -6
  152. package/esm/store/Section.js +4 -0
  153. package/esm/store/Symbols.d.ts +10 -3
  154. package/esm/store/Symbols.js +1 -1
  155. package/esm/store/Types.d.ts +30 -25
  156. package/esm/store/Types.js +6 -4
  157. package/esm/store.d.ts +12 -6
  158. package/esm/store.js +5 -5
  159. package/esm/symbol/Arrow.d.ts +1 -1
  160. package/esm/symbol/Arrow.js +2 -2
  161. package/esm/symbol/BraceLeft.d.ts +1 -1
  162. package/esm/symbol/BraceLeft.js +2 -2
  163. package/esm/symbol/BraceRight.d.ts +1 -1
  164. package/esm/symbol/BraceRight.js +2 -2
  165. package/esm/symbol/BracketsLeft.d.ts +1 -1
  166. package/esm/symbol/BracketsLeft.js +2 -2
  167. package/esm/symbol/BracketsRight.d.ts +1 -1
  168. package/esm/symbol/BracketsRight.js +2 -2
  169. package/esm/symbol/Colon.d.ts +1 -1
  170. package/esm/symbol/Colon.js +2 -2
  171. package/esm/symbol/Quote.d.ts +1 -1
  172. package/esm/symbol/Quote.js +2 -2
  173. package/esm/symbol/ValueQuote.d.ts +1 -1
  174. package/esm/symbol/ValueQuote.js +2 -2
  175. package/esm/symbol/index.d.ts +12 -17
  176. package/esm/symbol/index.js +85 -25
  177. package/esm/theme/basic.d.ts +2 -2
  178. package/esm/theme/basic.js +2 -0
  179. package/esm/theme/dark.d.ts +2 -2
  180. package/esm/theme/github.dark.d.ts +2 -2
  181. package/esm/theme/github.light.d.ts +2 -2
  182. package/esm/theme/gruvbox.d.ts +2 -2
  183. package/esm/theme/light.d.ts +2 -2
  184. package/esm/theme/monokai.d.ts +2 -2
  185. package/esm/theme/nord.d.ts +2 -2
  186. package/esm/theme/vscode.d.ts +2 -2
  187. package/esm/types/Bigint.d.ts +1 -1
  188. package/esm/types/Bigint.js +2 -2
  189. package/esm/types/Date.d.ts +1 -1
  190. package/esm/types/Date.js +2 -2
  191. package/esm/types/False.d.ts +1 -1
  192. package/esm/types/False.js +2 -2
  193. package/esm/types/Float.d.ts +1 -1
  194. package/esm/types/Float.js +2 -2
  195. package/esm/types/Int.d.ts +1 -1
  196. package/esm/types/Int.js +2 -2
  197. package/esm/types/Map.d.ts +1 -1
  198. package/esm/types/Map.js +2 -2
  199. package/esm/types/Nan.d.ts +1 -1
  200. package/esm/types/Nan.js +2 -2
  201. package/esm/types/Null.d.ts +1 -1
  202. package/esm/types/Null.js +2 -2
  203. package/esm/types/Set.d.ts +1 -1
  204. package/esm/types/Set.js +2 -2
  205. package/esm/types/String.d.ts +1 -1
  206. package/esm/types/String.js +2 -2
  207. package/esm/types/True.d.ts +1 -1
  208. package/esm/types/True.js +2 -2
  209. package/esm/types/Undefined.d.ts +1 -1
  210. package/esm/types/Undefined.js +2 -2
  211. package/esm/types/Url.d.ts +1 -1
  212. package/esm/types/Url.js +2 -2
  213. package/esm/types/index.d.ts +5 -2
  214. package/esm/types/index.js +148 -131
  215. package/esm/utils/useHighlight.d.ts +0 -1
  216. package/esm/utils/useRender.d.ts +1 -1
  217. package/esm/utils/useRender.js +3 -3
  218. package/githubDark.d.ts +4 -0
  219. package/githubLight.d.ts +4 -0
  220. package/gruvbox.d.ts +4 -0
  221. package/light.d.ts +2 -1
  222. package/monokai.d.ts +4 -0
  223. package/nord.d.ts +4 -0
  224. package/package.json +12 -6
  225. package/triangle-arrow.d.ts +2 -2
  226. package/triangle-solid-arrow.d.ts +2 -2
  227. package/vscode.d.ts +4 -0
@@ -10,19 +10,24 @@ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/sli
10
10
  var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
11
11
  var _react = require("react");
12
12
  var _store = require("../store");
13
- var _ShowTools = require("../store/ShowTools");
14
13
  var _Section = require("../store/Section");
14
+ var _ShowTools = require("../store/ShowTools");
15
+ var _types = require("../types/");
15
16
  var _jsxRuntime = require("react/jsx-runtime");
16
- var _excluded = ["keyName", "value", "expandKey"],
17
+ var _excluded = ["keyName", "value", "parentValue", "expandKey", "keys", "beforeCopy"],
17
18
  _excluded2 = ["as", "render"];
18
- var Copied = function Copied(props) {
19
+ var Copied = exports.Copied = function Copied(props) {
19
20
  var keyName = props.keyName,
20
21
  value = props.value,
22
+ parentValue = props.parentValue,
21
23
  expandKey = props.expandKey,
24
+ keys = props.keys,
25
+ beforeCopy = props.beforeCopy,
22
26
  other = (0, _objectWithoutProperties2["default"])(props, _excluded);
23
27
  var _useStore = (0, _store.useStore)(),
24
28
  onCopied = _useStore.onCopied,
25
- enableClipboard = _useStore.enableClipboard;
29
+ enableClipboard = _useStore.enableClipboard,
30
+ globalBeforeCopy = _useStore.beforeCopy;
26
31
  var showTools = (0, _ShowTools.useShowToolsStore)();
27
32
  var isShowTools = showTools[expandKey];
28
33
  var _useState = (0, _react.useState)(false),
@@ -32,21 +37,53 @@ var Copied = function Copied(props) {
32
37
  var _useSectionStore = (0, _Section.useSectionStore)(),
33
38
  _useSectionStore$Copi = _useSectionStore.Copied,
34
39
  Comp = _useSectionStore$Copi === void 0 ? {} : _useSectionStore$Copi;
40
+ var sectionBeforeCopy = Comp === null || Comp === void 0 ? void 0 : Comp.beforeCopy;
35
41
  if (enableClipboard === false || !isShowTools) return null;
36
42
  var click = function click(event) {
37
43
  event.stopPropagation();
38
- var copyText = JSON.stringify(value, function (key, value) {
39
- if (typeof value === 'bigint') {
40
- return value.toString();
44
+ var copyText = '';
45
+ if (typeof value === 'number' && value === Infinity) {
46
+ copyText = 'Infinity';
47
+ } else if (typeof value === 'number' && isNaN(value)) {
48
+ copyText = 'NaN';
49
+ } else if (typeof value === 'bigint') {
50
+ copyText = (0, _types.bigIntToString)(value);
51
+ } else if (value instanceof Date) {
52
+ copyText = value.toLocaleString();
53
+ } else {
54
+ copyText = JSON.stringify(value, function (_, v) {
55
+ return typeof v === 'bigint' ? (0, _types.bigIntToString)(v) : v;
56
+ }, 2);
57
+ }
58
+
59
+ // Apply beforeCopy transformation if provided
60
+ // Priority: component prop > section prop > global prop
61
+ var finalBeforeCopy = beforeCopy || sectionBeforeCopy || globalBeforeCopy;
62
+ if (finalBeforeCopy && typeof finalBeforeCopy === 'function') {
63
+ copyText = finalBeforeCopy(copyText, keyName, value, parentValue, expandKey, keys);
64
+ }
65
+ onCopied && onCopied(copyText, value);
66
+ setCopied(true);
67
+ var _clipboard = navigator.clipboard || {
68
+ writeText: function writeText(text) {
69
+ return new Promise(function (reslove, reject) {
70
+ var textarea = document.createElement('textarea');
71
+ textarea.style.position = 'absolute';
72
+ textarea.style.opacity = '0';
73
+ textarea.style.left = '-99999999px';
74
+ textarea.value = text;
75
+ document.body.appendChild(textarea);
76
+ textarea.select();
77
+ if (!document.execCommand('copy')) {
78
+ reject();
79
+ } else {
80
+ reslove();
81
+ }
82
+ textarea.remove();
83
+ });
41
84
  }
42
- return value;
43
- }, 2);
44
- if (typeof value === 'number' && value === Infinity) copyText = 'Infinity';
45
- if (typeof value === 'number' && isNaN(value)) copyText = 'NaN';
46
- if (typeof value === 'bigint') copyText = value + 'n';
47
- navigator.clipboard.writeText(copyText).then(function () {
48
- onCopied && onCopied(copyText, value);
49
- setCopied(true);
85
+ };
86
+ _clipboard.writeText(copyText).then(function () {
50
87
  var timer = setTimeout(function () {
51
88
  setCopied(false);
52
89
  clearTimeout(timer);
@@ -54,19 +91,26 @@ var Copied = function Copied(props) {
54
91
  })["catch"](function (error) {});
55
92
  };
56
93
  var svgProps = {
94
+ style: {
95
+ display: 'inline-flex'
96
+ },
57
97
  fill: copied ? 'var(--w-rjv-copied-success-color, #28a745)' : 'var(--w-rjv-copied-color, currentColor)',
58
98
  onClick: click
59
99
  };
60
100
  var as = Comp.as,
61
101
  render = Comp.render,
62
102
  reset = (0, _objectWithoutProperties2["default"])(Comp, _excluded2);
63
- var elmProps = (0, _objectSpread2["default"])((0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, reset), other), svgProps);
103
+ var elmProps = (0, _objectSpread2["default"])((0, _objectSpread2["default"])((0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, reset), other), svgProps), {}, {
104
+ style: (0, _objectSpread2["default"])((0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, reset.style), other.style), svgProps.style)
105
+ });
64
106
  var isRender = render && typeof render === 'function';
65
107
  var child = isRender && render((0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, elmProps), {}, {
66
108
  'data-copied': copied
67
109
  }), {
68
110
  value: value,
69
- keyName: keyName
111
+ keyName: keyName,
112
+ keys: keys,
113
+ parentValue: parentValue
70
114
  });
71
115
  if (child) return child;
72
116
  if (copied) {
@@ -86,5 +130,4 @@ var Copied = function Copied(props) {
86
130
  })
87
131
  }));
88
132
  };
89
- exports.Copied = Copied;
90
133
  Copied.displayName = 'JVR.Copied';
@@ -1,7 +1,5 @@
1
- interface KeyValuesProps<T extends object> {
2
- keyName?: string | number;
3
- value?: T;
4
- parentValue?: T;
1
+ import { type SectionElementResult } from '../store/Section';
2
+ interface KeyValuesProps<T extends object> extends SectionElementResult<T> {
5
3
  expandKey?: string;
6
4
  level: number;
7
5
  }
@@ -5,9 +5,10 @@ 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
+ var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
11
12
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
12
13
  var _react = require("react");
13
14
  var _store = require("../store");
@@ -15,26 +16,51 @@ var _Expands = require("../store/Expands");
15
16
  var _ShowTools = require("../store/ShowTools");
16
17
  var _Value = require("./Value");
17
18
  var _KeyName = require("../section/KeyName");
19
+ var _Row = require("../section/Row");
18
20
  var _Container = require("../Container");
19
- var _symbol = require("../symbol");
21
+ var _symbol = require("../symbol/");
20
22
  var _useHighlight = require("../utils/useHighlight");
23
+ var _Copied = require("../comps/Copied");
24
+ var _useIdCompat = require("../comps/useIdCompat");
21
25
  var _jsxRuntime = require("react/jsx-runtime");
22
- var KeyValues = function KeyValues(props) {
26
+ var KeyValues = exports.KeyValues = function KeyValues(props) {
23
27
  var _expands$expandKey;
24
- var value = props.value,
28
+ var keyName = props.keyName,
29
+ value = props.value,
25
30
  _props$expandKey = props.expandKey,
26
31
  expandKey = _props$expandKey === void 0 ? '' : _props$expandKey,
27
- level = props.level;
32
+ level = props.level,
33
+ _props$keys = props.keys,
34
+ keys = _props$keys === void 0 ? [] : _props$keys,
35
+ parentValue = props.parentValue;
28
36
  var expands = (0, _Expands.useExpandsStore)();
29
37
  var _useStore = (0, _store.useStore)(),
30
38
  objectSortKeys = _useStore.objectSortKeys,
31
39
  indentWidth = _useStore.indentWidth,
32
- collapsed = _useStore.collapsed;
33
- var isMyArray = Array.isArray(value);
34
- var isExpanded = (_expands$expandKey = expands[expandKey]) !== null && _expands$expandKey !== void 0 ? _expands$expandKey : typeof collapsed === 'boolean' ? collapsed : typeof collapsed === 'number' ? level > collapsed : false;
40
+ collapsed = _useStore.collapsed,
41
+ shouldExpandNodeInitially = _useStore.shouldExpandNodeInitially;
42
+ var defaultExpanded = typeof collapsed === 'boolean' ? collapsed : typeof collapsed === 'number' ? level > collapsed : false;
43
+ var isExpanded = (_expands$expandKey = expands[expandKey]) !== null && _expands$expandKey !== void 0 ? _expands$expandKey : shouldExpandNodeInitially ? false : defaultExpanded;
44
+ var shouldExpand = shouldExpandNodeInitially && shouldExpandNodeInitially(!isExpanded, {
45
+ value: value,
46
+ keys: keys,
47
+ level: level,
48
+ keyName: keyName,
49
+ parentValue: parentValue
50
+ });
51
+ if (shouldExpandNodeInitially && collapsed === false) {
52
+ if (expands[expandKey] === undefined && !shouldExpand) {
53
+ return null;
54
+ }
55
+ } else {
56
+ if (expands[expandKey] === undefined && shouldExpand) {
57
+ return null;
58
+ }
59
+ }
35
60
  if (isExpanded) {
36
61
  return null;
37
62
  }
63
+ var isMyArray = Array.isArray(value);
38
64
  // object
39
65
  var entries = isMyArray ? Object.entries(value).map(function (m) {
40
66
  return [Number(m[0]), m[1]];
@@ -65,22 +91,24 @@ var KeyValues = function KeyValues(props) {
65
91
  className: "w-rjv-wrap",
66
92
  style: style,
67
93
  children: entries.map(function (_ref9, idx) {
68
- var _ref10 = (0, _slicedToArray2["default"])(_ref9, 2),
69
- key = _ref10[0],
70
- val = _ref10[1];
94
+ var _ref0 = (0, _slicedToArray2["default"])(_ref9, 2),
95
+ key = _ref0[0],
96
+ val = _ref0[1];
71
97
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(KeyValuesItem, {
72
98
  parentValue: value,
73
99
  keyName: key,
100
+ keys: [].concat((0, _toConsumableArray2["default"])(keys), [key]),
74
101
  value: val,
75
102
  level: level
76
103
  }, idx);
77
104
  })
78
105
  });
79
106
  };
80
- exports.KeyValues = KeyValues;
81
107
  KeyValues.displayName = 'JVR.KeyValues';
82
- var KayName = function KayName(props) {
108
+ var KayName = exports.KayName = function KayName(props) {
83
109
  var keyName = props.keyName,
110
+ parentValue = props.parentValue,
111
+ keys = props.keys,
84
112
  value = props.value;
85
113
  var _useStore2 = (0, _store.useStore)(),
86
114
  highlightUpdates = _useStore2.highlightUpdates;
@@ -91,33 +119,38 @@ var KayName = function KayName(props) {
91
119
  highlightUpdates: highlightUpdates,
92
120
  highlightContainer: highlightContainer
93
121
  });
122
+ var compProps = {
123
+ keyName: keyName,
124
+ value: value,
125
+ keys: keys,
126
+ parentValue: parentValue
127
+ };
94
128
  return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_react.Fragment, {
95
129
  children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)("span", {
96
130
  ref: highlightContainer,
97
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_symbol.Quote, {
131
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_symbol.Quote, (0, _objectSpread2["default"])({
98
132
  isNumber: isNumber,
99
133
  "data-placement": "left"
100
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_KeyName.KeyNameComp, {
101
- keyName: keyName,
102
- value: value,
134
+ }, compProps)), /*#__PURE__*/(0, _jsxRuntime.jsx)(_KeyName.KeyNameComp, (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, compProps), {}, {
103
135
  children: keyName
104
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_symbol.Quote, {
136
+ })), /*#__PURE__*/(0, _jsxRuntime.jsx)(_symbol.Quote, (0, _objectSpread2["default"])({
105
137
  isNumber: isNumber,
106
138
  "data-placement": "right"
107
- })]
108
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_symbol.Colon, {})]
139
+ }, compProps))]
140
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_symbol.Colon, (0, _objectSpread2["default"])({}, compProps))]
109
141
  });
110
142
  };
111
- exports.KayName = KayName;
112
143
  KayName.displayName = 'JVR.KayName';
113
- var KeyValuesItem = function KeyValuesItem(props) {
144
+ var KeyValuesItem = exports.KeyValuesItem = function KeyValuesItem(props) {
114
145
  var keyName = props.keyName,
115
146
  value = props.value,
116
147
  parentValue = props.parentValue,
117
148
  _props$level = props.level,
118
- level = _props$level === void 0 ? 0 : _props$level;
149
+ level = _props$level === void 0 ? 0 : _props$level,
150
+ _props$keys2 = props.keys,
151
+ keys = _props$keys2 === void 0 ? [] : _props$keys2;
119
152
  var dispatch = (0, _ShowTools.useShowToolsDispatch)();
120
- var subkeyid = (0, _react.useId)();
153
+ var subkeyid = (0, _useIdCompat.useIdCompat)();
121
154
  var isMyArray = Array.isArray(value);
122
155
  var isMySet = value instanceof Set;
123
156
  var isMyMap = value instanceof Map;
@@ -132,6 +165,7 @@ var KeyValuesItem = function KeyValuesItem(props) {
132
165
  value: myValue,
133
166
  parentValue: parentValue,
134
167
  initialValue: value,
168
+ keys: keys,
135
169
  level: level + 1
136
170
  });
137
171
  }
@@ -143,18 +177,29 @@ var KeyValuesItem = function KeyValuesItem(props) {
143
177
  return dispatch((0, _defineProperty2["default"])({}, subkeyid, false));
144
178
  }
145
179
  };
146
- return /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", (0, _objectSpread2["default"])((0, _objectSpread2["default"])({
147
- className: "w-rjv-line"
180
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_Row.RowComp, (0, _objectSpread2["default"])((0, _objectSpread2["default"])({
181
+ className: "w-rjv-line",
182
+ value: value,
183
+ keyName: keyName,
184
+ keys: keys,
185
+ parentValue: parentValue
148
186
  }, reset), {}, {
149
187
  children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(KayName, {
150
188
  keyName: keyName,
151
- value: value
189
+ value: value,
190
+ keys: keys,
191
+ parentValue: parentValue
152
192
  }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Value.Value, {
153
193
  keyName: keyName,
154
194
  value: value,
195
+ keys: keys
196
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Copied.Copied, {
197
+ keyName: keyName,
198
+ value: value,
199
+ keys: keys,
200
+ parentValue: parentValue,
155
201
  expandKey: subkeyid
156
202
  })]
157
203
  }));
158
204
  };
159
- exports.KeyValuesItem = KeyValuesItem;
160
205
  KeyValuesItem.displayName = 'JVR.KeyValuesItem';
@@ -1,5 +1,5 @@
1
- interface NestedCloseProps<T extends object> {
2
- value?: T;
1
+ import { type SectionElementResult } from '../store/Section';
2
+ interface NestedCloseProps<T extends object> extends SectionElementResult<T> {
3
3
  expandKey: string;
4
4
  level: number;
5
5
  }
@@ -1,24 +1,46 @@
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
7
  exports.NestedClose = void 0;
8
+ var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
7
9
  var _store = require("../store");
8
10
  var _Expands = require("../store/Expands");
9
- var _symbol = require("../symbol");
11
+ var _symbol = require("../symbol/");
10
12
  var _jsxRuntime = require("react/jsx-runtime");
11
- var NestedClose = function NestedClose(props) {
13
+ var NestedClose = exports.NestedClose = function NestedClose(props) {
12
14
  var _expands$expandKey;
13
- var value = props.value,
15
+ var keyName = props.keyName,
16
+ value = props.value,
14
17
  expandKey = props.expandKey,
15
- level = props.level;
18
+ parentValue = props.parentValue,
19
+ level = props.level,
20
+ _props$keys = props.keys,
21
+ keys = _props$keys === void 0 ? [] : _props$keys;
16
22
  var expands = (0, _Expands.useExpandsStore)();
17
- var isArray = Array.isArray(value);
18
23
  var _useStore = (0, _store.useStore)(),
19
- collapsed = _useStore.collapsed;
20
- var isMySet = value instanceof Set;
21
- var isExpanded = (_expands$expandKey = expands[expandKey]) !== null && _expands$expandKey !== void 0 ? _expands$expandKey : typeof collapsed === 'boolean' ? collapsed : typeof collapsed === 'number' ? level > collapsed : false;
24
+ collapsed = _useStore.collapsed,
25
+ shouldExpandNodeInitially = _useStore.shouldExpandNodeInitially;
26
+ var defaultExpanded = typeof collapsed === 'boolean' ? collapsed : typeof collapsed === 'number' ? level > collapsed : false;
27
+ var isExpanded = (_expands$expandKey = expands[expandKey]) !== null && _expands$expandKey !== void 0 ? _expands$expandKey : shouldExpandNodeInitially ? false : defaultExpanded;
28
+ var shouldExpand = shouldExpandNodeInitially && shouldExpandNodeInitially(!isExpanded, {
29
+ value: value,
30
+ keys: keys,
31
+ level: level,
32
+ keyName: keyName,
33
+ parentValue: parentValue
34
+ });
35
+ if (shouldExpandNodeInitially && collapsed === false) {
36
+ if (expands[expandKey] === undefined && !shouldExpand) {
37
+ return null;
38
+ }
39
+ } else {
40
+ if (expands[expandKey] === undefined && shouldExpand) {
41
+ return null;
42
+ }
43
+ }
22
44
  var len = Object.keys(value).length;
23
45
  if (isExpanded || len === 0) {
24
46
  return null;
@@ -26,13 +48,21 @@ var NestedClose = function NestedClose(props) {
26
48
  var style = {
27
49
  paddingLeft: 4
28
50
  };
51
+ var compProps = {
52
+ keyName: keyName,
53
+ value: value,
54
+ keys: keys,
55
+ parentValue: parentValue
56
+ };
57
+ var isArray = Array.isArray(value);
58
+ var isMySet = value instanceof Set;
29
59
  return /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
30
60
  style: style,
31
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_symbol.BracketsClose, {
32
- isBrackets: isArray || isMySet,
61
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_symbol.BracketsClose, (0, _objectSpread2["default"])((0, _objectSpread2["default"])({
62
+ isBrackets: isArray || isMySet
63
+ }, compProps), {}, {
33
64
  isVisiable: true
34
- })
65
+ }))
35
66
  });
36
67
  };
37
- exports.NestedClose = NestedClose;
38
68
  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;
@@ -6,34 +6,46 @@ Object.defineProperty(exports, "__esModule", {
6
6
  });
7
7
  exports.NestedOpen = void 0;
8
8
  var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
9
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
10
9
  var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
10
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
11
11
  var _KeyValues = require("./KeyValues");
12
12
  var _Expands = require("../store/Expands");
13
13
  var _store = require("../store");
14
14
  var _Copied = require("./Copied");
15
15
  var _CountInfoExtra = require("../section/CountInfoExtra");
16
16
  var _CountInfo = require("../section/CountInfo");
17
- var _symbol = require("../symbol");
17
+ var _symbol = require("../symbol/");
18
18
  var _Ellipsis = require("../section/Ellipsis");
19
- var _types = require("../types");
19
+ var _types = require("../types/");
20
20
  var _jsxRuntime = require("react/jsx-runtime");
21
- var NestedOpen = function NestedOpen(props) {
21
+ var NestedOpen = exports.NestedOpen = function NestedOpen(props) {
22
22
  var _expands$expandKey;
23
23
  var keyName = props.keyName,
24
24
  expandKey = props.expandKey,
25
+ _props$keys = props.keys,
26
+ keys = _props$keys === void 0 ? [] : _props$keys,
25
27
  initialValue = props.initialValue,
26
28
  value = props.value,
29
+ parentValue = props.parentValue,
27
30
  level = props.level;
28
31
  var expands = (0, _Expands.useExpandsStore)();
29
32
  var dispatchExpands = (0, _Expands.useExpandsDispatch)();
30
33
  var _useStore = (0, _store.useStore)(),
31
34
  onExpand = _useStore.onExpand,
32
- collapsed = _useStore.collapsed;
33
- var isArray = Array.isArray(value);
34
- var isMySet = value instanceof Set;
35
- var isExpanded = (_expands$expandKey = expands[expandKey]) !== null && _expands$expandKey !== void 0 ? _expands$expandKey : typeof collapsed === 'boolean' ? collapsed : typeof collapsed === 'number' ? level > collapsed : false;
36
- var isObject = (0, _typeof2["default"])(value) === 'object';
35
+ collapsed = _useStore.collapsed,
36
+ shouldExpandNodeInitially = _useStore.shouldExpandNodeInitially;
37
+ var defaultExpanded = typeof collapsed === 'boolean' ? collapsed : typeof collapsed === 'number' ? level > collapsed : false;
38
+ var isExpanded = (_expands$expandKey = expands[expandKey]) !== null && _expands$expandKey !== void 0 ? _expands$expandKey : shouldExpandNodeInitially ? false : defaultExpanded;
39
+ var shouldExpand = shouldExpandNodeInitially && shouldExpandNodeInitially(!isExpanded, {
40
+ value: value,
41
+ keys: keys,
42
+ level: level,
43
+ keyName: keyName,
44
+ parentValue: parentValue
45
+ });
46
+ if (expands[expandKey] === undefined && shouldExpandNodeInitially) {
47
+ isExpanded = !shouldExpand;
48
+ }
37
49
  var click = function click() {
38
50
  var opt = {
39
51
  expand: !isExpanded,
@@ -53,6 +65,9 @@ var NestedOpen = function NestedOpen(props) {
53
65
  transition: 'all 0.3s'
54
66
  };
55
67
  var len = Object.keys(value).length;
68
+ var isObject = (0, _typeof2["default"])(value) === 'object';
69
+ var isArray = Array.isArray(value);
70
+ var isMySet = value instanceof Set;
56
71
  var showArrow = len !== 0 && (isArray || isMySet || isObject);
57
72
  var reset = {
58
73
  style: style
@@ -60,26 +75,32 @@ var NestedOpen = function NestedOpen(props) {
60
75
  if (showArrow) {
61
76
  reset.onClick = click;
62
77
  }
78
+ var compProps = {
79
+ keyName: keyName,
80
+ value: value,
81
+ keys: keys,
82
+ parentValue: parentValue
83
+ };
63
84
  return /*#__PURE__*/(0, _jsxRuntime.jsxs)("span", (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, reset), {}, {
64
- children: [showArrow && /*#__PURE__*/(0, _jsxRuntime.jsx)(_symbol.Arrow, {
85
+ children: [showArrow && /*#__PURE__*/(0, _jsxRuntime.jsx)(_symbol.Arrow, (0, _objectSpread2["default"])({
65
86
  style: arrowStyle,
66
87
  expandKey: expandKey
67
- }), (keyName || typeof keyName === 'number') && /*#__PURE__*/(0, _jsxRuntime.jsx)(_KeyValues.KayName, {
88
+ }, compProps)), (keyName || typeof keyName === 'number') && /*#__PURE__*/(0, _jsxRuntime.jsx)(_KeyValues.KayName, (0, _objectSpread2["default"])({}, compProps)), /*#__PURE__*/(0, _jsxRuntime.jsx)(_types.SetComp, {
89
+ value: initialValue,
68
90
  keyName: keyName
69
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_types.SetComp, {
70
- value: initialValue
71
91
  }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_types.MapComp, {
72
- value: initialValue
73
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_symbol.BracketsOpen, {
92
+ value: initialValue,
93
+ keyName: keyName
94
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_symbol.BracketsOpen, (0, _objectSpread2["default"])({
74
95
  isBrackets: isArray || isMySet
75
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Ellipsis.EllipsisComp, {
96
+ }, compProps)), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Ellipsis.EllipsisComp, {
76
97
  keyName: keyName,
77
98
  value: value,
78
99
  isExpanded: isExpanded
79
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_symbol.BracketsClose, {
100
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_symbol.BracketsClose, (0, _objectSpread2["default"])({
80
101
  isVisiable: isExpanded || !showArrow,
81
102
  isBrackets: isArray || isMySet
82
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_CountInfo.CountInfoComp, {
103
+ }, compProps)), /*#__PURE__*/(0, _jsxRuntime.jsx)(_CountInfo.CountInfoComp, {
83
104
  value: value,
84
105
  keyName: keyName
85
106
  }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_CountInfoExtra.CountInfoExtraComps, {
@@ -88,9 +109,10 @@ var NestedOpen = function NestedOpen(props) {
88
109
  }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Copied.Copied, {
89
110
  keyName: keyName,
90
111
  value: value,
91
- expandKey: expandKey
112
+ expandKey: expandKey,
113
+ parentValue: parentValue,
114
+ keys: keys
92
115
  })]
93
116
  }));
94
117
  };
95
- exports.NestedOpen = NestedOpen;
96
118
  NestedOpen.displayName = 'JVR.NestedOpen';
@@ -1,8 +1,8 @@
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;
5
+ keys?: (string | number)[];
6
6
  }
7
7
  export declare const Value: {
8
8
  (props: ValueProps): import("react/jsx-runtime").JSX.Element | null;
@@ -6,19 +6,18 @@ 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("../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
16
  keyName = props.keyName,
18
- expandKey = props.expandKey;
17
+ keys = props.keys;
19
18
  var reset = {
20
19
  keyName: keyName,
21
- expandKey: expandKey
20
+ keys: keys
22
21
  };
23
22
  if (value instanceof URL) {
24
23
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(_types.TypeUrl, (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, reset), {}, {
@@ -74,5 +73,4 @@ var Value = function Value(props) {
74
73
  }
75
74
  return null;
76
75
  };
77
- exports.Value = Value;
78
76
  Value.displayName = 'JVR.Value';
@@ -0,0 +1 @@
1
+ export declare function useIdCompat(): string;
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.useIdCompat = useIdCompat;
7
+ var _react = require("react");
8
+ function useIdCompat() {
9
+ var idRef = (0, _react.useRef)(null);
10
+ if (idRef.current === null) {
11
+ idRef.current = 'custom-id-' + Math.random().toString(36).substr(2, 9);
12
+ }
13
+ return idRef.current;
14
+ }
@@ -0,0 +1,2 @@
1
+ import { type SectionElementProps } from '../store/Section';
2
+ export declare const KeyNameRender: SectionElementProps['render'];