@splunk/react-ui 4.23.0 → 4.25.0

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 (68) hide show
  1. package/Breadcrumbs.js +99 -124
  2. package/Button.js +8 -7
  3. package/ButtonSimple.js +40 -39
  4. package/CHANGELOG.md +22 -0
  5. package/Code.js +193 -100
  6. package/Color.js +18 -15
  7. package/ComboBox.js +49 -37
  8. package/JSONTree.js +210 -177
  9. package/Menu.js +643 -472
  10. package/Modal.js +265 -226
  11. package/Multiselect.js +634 -620
  12. package/RadioList.js +12 -11
  13. package/ResultsMenu.js +863 -148
  14. package/Search.js +3 -1
  15. package/Select.js +427 -416
  16. package/TabBar.js +2 -2
  17. package/Table.js +2 -2
  18. package/Tree.js +617 -0
  19. package/cypress/README.md +11 -0
  20. package/cypress/support/commands.ts +1 -0
  21. package/cypress/support/component.ts +0 -1
  22. package/cypress/tsconfig.cypress.json +14 -0
  23. package/package.json +12 -12
  24. package/types/src/Breadcrumbs/Breadcrumbs.d.ts +7 -1
  25. package/types/src/Breadcrumbs/Item.d.ts +8 -2
  26. package/types/src/Button/Button.d.ts +4 -2
  27. package/types/src/Button/docs/examples/Block.d.ts +2 -2
  28. package/types/src/Button/docs/examples/Dimmed.d.ts +2 -0
  29. package/types/src/Button/docs/examples/Disabled.d.ts +2 -2
  30. package/types/src/Button/docs/examples/Icons.d.ts +2 -2
  31. package/types/src/Button/docs/examples/Menus.d.ts +2 -2
  32. package/types/src/Button/docs/examples/To.d.ts +2 -2
  33. package/types/src/Button/docs/examples/Truncated.d.ts +2 -2
  34. package/types/src/Button/docs/examples/prisma/Basic.d.ts +2 -2
  35. package/types/src/Button/docs/examples/prisma/Block.d.ts +2 -2
  36. package/types/src/Button/docs/examples/prisma/Dimmed.d.ts +2 -0
  37. package/types/src/Button/docs/examples/prisma/Disabled.d.ts +2 -2
  38. package/types/src/Button/docs/examples/prisma/Menus.d.ts +2 -2
  39. package/types/src/Button/docs/examples/prisma/To.d.ts +2 -2
  40. package/types/src/Button/docs/examples/prisma/Truncated.d.ts +2 -2
  41. package/types/src/ButtonSimple/ButtonSimple.d.ts +4 -2
  42. package/types/src/Color/Color.d.ts +5 -3
  43. package/types/src/ComboBox/ComboBox.d.ts +6 -0
  44. package/types/src/JSONTree/JSONTree.d.ts +3 -2
  45. package/types/src/Menu/Menu.d.ts +14 -1
  46. package/types/src/Modal/Header.d.ts +0 -2
  47. package/types/src/Modal/Modal.d.ts +7 -0
  48. package/types/src/Modal/ModalContext.d.ts +1 -0
  49. package/types/src/Multiselect/Compact.d.ts +6 -0
  50. package/types/src/Multiselect/Multiselect.d.ts +7 -0
  51. package/types/src/RadioList/RadioList.d.ts +27 -27
  52. package/types/src/RadioList/RadioListContext.d.ts +5 -4
  53. package/types/src/ResultsMenu/ResultsMenu.d.ts +53 -1
  54. package/types/src/ResultsMenu/VirtualizedResultsMenu/VirtualizedItem.d.ts +9 -0
  55. package/types/src/ResultsMenu/VirtualizedResultsMenu/VirtualizedResultsMenu.d.ts +33 -0
  56. package/types/src/ResultsMenu/VirtualizedResultsMenu/groupChildren.d.ts +16 -0
  57. package/types/src/ResultsMenu/VirtualizedResultsMenu/index.d.ts +3 -0
  58. package/types/src/ResultsMenu/VirtualizedResultsMenu/injectVirtualizedItem.d.ts +21 -0
  59. package/types/src/ResultsMenu/index.d.ts +2 -1
  60. package/types/src/Select/Select.d.ts +2 -0
  61. package/types/src/Select/SelectBase.d.ts +6 -0
  62. package/types/src/Tree/Tree.d.ts +24 -0
  63. package/types/src/Tree/TreeContext.d.ts +13 -0
  64. package/types/src/Tree/TreeItem.d.ts +31 -0
  65. package/types/src/Tree/index.d.ts +3 -0
  66. package/types/src/Tree/treeUtils.d.ts +29 -0
  67. package/types/unit-test-setup-testing-library.d.ts +1 -0
  68. package/types/src/Modal/docs/examples/prisma/TypicalUsage.d.ts +0 -2
package/JSONTree.js CHANGED
@@ -61,7 +61,7 @@
61
61
  e.r(r);
62
62
  // EXPORTS
63
63
  e.d(r, {
64
- default: () => /* reexport */ Ce
64
+ default: () => /* reexport */ we
65
65
  });
66
66
  // CONCATENATED MODULE: external "react"
67
67
  const t = require("react");
@@ -80,17 +80,17 @@
80
80
  const s = require("styled-components");
81
81
  var f = e.n(s);
82
82
  // CONCATENATED MODULE: external "@splunk/themes"
83
- const d = require("@splunk/themes");
83
+ const p = require("@splunk/themes");
84
84
  // CONCATENATED MODULE: ./src/JSONTree/JSONTreeStyles.ts
85
- var p = (0, s.css)([ "", ";font-family:", ";" ], d.mixins.reset("block"), d.variables.monoFontFamily);
85
+ var d = (0, s.css)([ "", ";font-family:", ";" ], p.mixins.reset("block"), p.variables.monoFontFamily);
86
86
  var v = f().code.withConfig({
87
87
  displayName: "JSONTreeStyles__StyledScrollCode",
88
88
  componentId: "vrdt21-0"
89
- })([ "", ";overflow-x:auto;white-space:nowrap;" ], p);
89
+ })([ "", ";overflow-x:auto;white-space:nowrap;" ], d);
90
90
  var y = f().code.withConfig({
91
91
  displayName: "JSONTreeStyles__StyledWrapCode",
92
92
  componentId: "vrdt21-1"
93
- })([ "", ";white-space:pre-wrap;" ], p);
93
+ })([ "", ";white-space:pre-wrap;" ], d);
94
94
  // CONCATENATED MODULE: external "lodash/fill"
95
95
  const h = require("lodash/fill");
96
96
  var b = e.n(h);
@@ -98,8 +98,8 @@
98
98
  const m = require("lodash/isArray");
99
99
  var C = e.n(m);
100
100
  // CONCATENATED MODULE: external "lodash/isEmpty"
101
- const O = require("lodash/isEmpty");
102
- var S = e.n(O);
101
+ const S = require("lodash/isEmpty");
102
+ var O = e.n(S);
103
103
  // CONCATENATED MODULE: external "lodash/isNumber"
104
104
  const k = require("lodash/isNumber");
105
105
  var w = e.n(k);
@@ -110,120 +110,129 @@
110
110
  const j = require("lodash/keys");
111
111
  var T = e.n(j);
112
112
  // CONCATENATED MODULE: external "lodash/repeat"
113
- const E = require("lodash/repeat");
114
- var _ = e.n(E);
113
+ const _ = require("lodash/repeat");
114
+ var E = e.n(_);
115
+ // CONCATENATED MODULE: external "@splunk/ui-utils/i18n"
116
+ const K = require("@splunk/ui-utils/i18n");
115
117
  // CONCATENATED MODULE: external "@splunk/react-ui/Clickable"
116
- const K = require("@splunk/react-ui/Clickable");
117
- var I = e.n(K);
118
+ const N = require("@splunk/react-ui/Clickable");
119
+ var I = e.n(N);
120
+ // CONCATENATED MODULE: external "@splunk/react-ui/Tooltip"
121
+ const P = require("@splunk/react-ui/Tooltip");
122
+ var q = e.n(P);
118
123
  // CONCATENATED MODULE: ./src/JSONTree/TreeNodeStyles.ts
119
- var P = {
120
- string: d.variables.syntaxTeal,
121
- number: d.variables.syntaxBlue,
122
- boolean: d.variables.syntaxPurple,
123
- null: d.variables.syntaxBrown,
124
- object: d.variables.contentColorDefault
124
+ var A = {
125
+ string: p.variables.syntaxTeal,
126
+ number: p.variables.syntaxBlue,
127
+ boolean: p.variables.syntaxPurple,
128
+ null: p.variables.syntaxBrown,
129
+ object: p.variables.contentColorDefault
125
130
  };
126
- var N = (0, s.css)([ "word-break:break-word;word-wrap:break-word;" ]);
127
- var A = (0, s.css)([ "white-space:nowrap;" ]);
128
- var q = f().span.withConfig({
131
+ var R = (0, s.css)([ "word-break:break-word;word-wrap:break-word;" ]);
132
+ var V = (0, s.css)([ "white-space:nowrap;" ]);
133
+ var L = f().span.withConfig({
129
134
  displayName: "TreeNodeStyles__StyledValue",
130
135
  componentId: "sc-1rdul18-0"
131
136
  })([ "color:", ";", ";" ], (function(e) {
132
137
  var r = e.valueType;
133
- return P[r];
138
+ return A[r];
134
139
  }), (function(e) {
135
140
  var r = e.overflowType;
136
- return r === "wrap" ? N : A;
141
+ return r === "wrap" ? R : V;
137
142
  }));
138
- var V = f()(q.withComponent(I())).withConfig({
143
+ var M = f()(L.withComponent(I())).withConfig({
139
144
  displayName: "TreeNodeStyles__StyledValueInteractiveClickable",
140
145
  componentId: "sc-1rdul18-1"
141
- })([ "font-family:inherit;&:focus{box-shadow:0 0 1px 3px ", ";outline:0;&:active{box-shadow:none;}}&:hover{background-color:", ";}" ], d.variables.focusColor, (0,
142
- d.pick)({
143
- enterprise: d.variables.backgroundColorHover,
144
- prisma: d.variables.interactiveColorOverlayHover
146
+ })([ "font-family:inherit;&:focus{box-shadow:0 0 1px 3px ", ";outline:0;&:active{box-shadow:none;}}&:hover{background-color:", ";}" ], p.variables.focusColor, (0,
147
+ p.pick)({
148
+ enterprise: p.variables.backgroundColorHover,
149
+ prisma: p.variables.interactiveColorOverlayHover
145
150
  }));
146
- var R = f().span.withConfig({
151
+ var J = f().span.withConfig({
147
152
  displayName: "TreeNodeStyles__StyledProperty",
148
153
  componentId: "sc-1rdul18-2"
149
- })([ "font-weight:bold;color:", ";" ], (0, d.pick)({
154
+ })([ "font-weight:bold;color:", ";" ], (0, p.pick)({
150
155
  enterprise: {
151
156
  dark: "#ec9f98",
152
- light: d.variables.syntaxRed
157
+ light: p.variables.syntaxRed
153
158
  },
154
- prisma: d.variables.syntaxRed
159
+ prisma: p.variables.syntaxRed
155
160
  }));
156
- var L = f()(R.withComponent(I())).withConfig({
161
+ var H = f()(J.withComponent(I())).withConfig({
157
162
  displayName: "TreeNodeStyles__StyledPropertyInteractiveClickable",
158
163
  componentId: "sc-1rdul18-3"
159
- })([ "font-family:inherit;&:focus{box-shadow:0 0 1px 3px ", ";outline:0;&:active{box-shadow:none;}}&:hover{background-color:", ";}" ], d.variables.focusColor, (0,
160
- d.pick)({
161
- enterprise: d.variables.backgroundColorHover,
162
- prisma: d.variables.interactiveColorOverlayHover
164
+ })([ "font-family:inherit;&:focus{box-shadow:0 0 1px 3px ", ";outline:0;&:active{box-shadow:none;}}&:hover{background-color:", ";}" ], p.variables.focusColor, (0,
165
+ p.pick)({
166
+ enterprise: p.variables.backgroundColorHover,
167
+ prisma: p.variables.interactiveColorOverlayHover
163
168
  }));
164
- var M = f()(I()).withConfig({
169
+ var D = f()(I()).withConfig({
165
170
  displayName: "TreeNodeStyles__StyledExpandLinkClickable",
166
171
  componentId: "sc-1rdul18-4"
167
172
  })([ "cursor:pointer;color:", ";font-family:inherit;&:hover{background-color:", ";text-decoration:none;}&:focus{box-shadow:", ";&:active{box-shadow:none;}}", "" ], (0,
168
- d.pick)({
173
+ p.pick)({
169
174
  enterprise: {
170
- dark: d.variables.accentColorL20,
171
- light: d.variables.accentColorD20
175
+ dark: p.variables.accentColorL20,
176
+ light: p.variables.accentColorD20
172
177
  },
173
- prisma: d.variables.interactiveColorPrimary
174
- }), (0, d.pick)({
175
- enterprise: d.variables.backgroundColorHover,
176
- prisma: d.variables.interactiveColorOverlayHover
177
- }), d.variables.focusShadowInset, (0, d.pick)({
178
- prisma: (0, s.css)([ "border-radius:", ";" ], d.variables.borderRadius)
178
+ prisma: p.variables.interactiveColorPrimary
179
+ }), (0, p.pick)({
180
+ enterprise: p.variables.backgroundColorHover,
181
+ prisma: p.variables.interactiveColorOverlayHover
182
+ }), p.variables.focusShadowInset, (0, p.pick)({
183
+ prisma: (0, s.css)([ "border-radius:", ";" ], p.variables.borderRadius)
179
184
  }));
185
+ var F = f()(q()).withConfig({
186
+ displayName: "TreeNodeStyles__StyledTooltip",
187
+ componentId: "sc-1rdul18-5"
188
+ })([ "font-family:", ";" ], p.variables.monoFontFamily);
180
189
  // CONCATENATED MODULE: ./src/JSONTree/TreeNode.tsx
181
- function H(e) {
190
+ function B(e) {
182
191
  "@babel/helpers - typeof";
183
192
  if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") {
184
- H = function e(r) {
193
+ B = function e(r) {
185
194
  return typeof r;
186
195
  };
187
196
  } else {
188
- H = function e(r) {
197
+ B = function e(r) {
189
198
  return r && typeof Symbol === "function" && r.constructor === Symbol && r !== Symbol.prototype ? "symbol" : typeof r;
190
199
  };
191
200
  }
192
- return H(e);
201
+ return B(e);
193
202
  }
194
- function D(e) {
195
- return U(e) || F(e) || B(e) || J();
203
+ function U(e) {
204
+ return G(e) || z(e) || W(e) || $();
196
205
  }
197
- function J() {
206
+ function $() {
198
207
  throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
199
208
  }
200
- function B(e, r) {
209
+ function W(e, r) {
201
210
  if (!e) return;
202
- if (typeof e === "string") return $(e, r);
211
+ if (typeof e === "string") return Q(e, r);
203
212
  var t = Object.prototype.toString.call(e).slice(8, -1);
204
213
  if (t === "Object" && e.constructor) t = e.constructor.name;
205
214
  if (t === "Map" || t === "Set") return Array.from(e);
206
- if (t === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)) return $(e, r);
215
+ if (t === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)) return Q(e, r);
207
216
  }
208
- function F(e) {
217
+ function z(e) {
209
218
  if (typeof Symbol !== "undefined" && Symbol.iterator in Object(e)) return Array.from(e);
210
219
  }
211
- function U(e) {
212
- if (Array.isArray(e)) return $(e);
220
+ function G(e) {
221
+ if (Array.isArray(e)) return Q(e);
213
222
  }
214
- function $(e, r) {
223
+ function Q(e, r) {
215
224
  if (r == null || r > e.length) r = e.length;
216
225
  for (var t = 0, n = new Array(r); t < r; t++) {
217
226
  n[t] = e[t];
218
227
  }
219
228
  return n;
220
229
  }
221
- function W(e, r) {
230
+ function X(e, r) {
222
231
  if (!(e instanceof r)) {
223
232
  throw new TypeError("Cannot call a class as a function");
224
233
  }
225
234
  }
226
- function z(e, r) {
235
+ function Y(e, r) {
227
236
  for (var t = 0; t < r.length; t++) {
228
237
  var n = r[t];
229
238
  n.enumerable = n.enumerable || false;
@@ -232,12 +241,12 @@
232
241
  Object.defineProperty(e, n.key, n);
233
242
  }
234
243
  }
235
- function G(e, r, t) {
236
- if (r) z(e.prototype, r);
237
- if (t) z(e, t);
244
+ function Z(e, r, t) {
245
+ if (r) Y(e.prototype, r);
246
+ if (t) Y(e, t);
238
247
  return e;
239
248
  }
240
- function Q(e, r) {
249
+ function ee(e, r) {
241
250
  if (typeof r !== "function" && r !== null) {
242
251
  throw new TypeError("Super expression must either be null or a function");
243
252
  }
@@ -248,41 +257,41 @@
248
257
  configurable: true
249
258
  }
250
259
  });
251
- if (r) X(e, r);
260
+ if (r) re(e, r);
252
261
  }
253
- function X(e, r) {
254
- X = Object.setPrototypeOf || function e(r, t) {
262
+ function re(e, r) {
263
+ re = Object.setPrototypeOf || function e(r, t) {
255
264
  r.__proto__ = t;
256
265
  return r;
257
266
  };
258
- return X(e, r);
267
+ return re(e, r);
259
268
  }
260
- function Y(e) {
261
- var r = re();
269
+ function te(e) {
270
+ var r = ae();
262
271
  return function t() {
263
- var n = te(e), o;
272
+ var n = ie(e), o;
264
273
  if (r) {
265
- var a = te(this).constructor;
274
+ var a = ie(this).constructor;
266
275
  o = Reflect.construct(n, arguments, a);
267
276
  } else {
268
277
  o = n.apply(this, arguments);
269
278
  }
270
- return Z(this, o);
279
+ return ne(this, o);
271
280
  };
272
281
  }
273
- function Z(e, r) {
274
- if (r && (H(r) === "object" || typeof r === "function")) {
282
+ function ne(e, r) {
283
+ if (r && (B(r) === "object" || typeof r === "function")) {
275
284
  return r;
276
285
  }
277
- return ee(e);
286
+ return oe(e);
278
287
  }
279
- function ee(e) {
288
+ function oe(e) {
280
289
  if (e === void 0) {
281
290
  throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
282
291
  }
283
292
  return e;
284
293
  }
285
- function re() {
294
+ function ae() {
286
295
  if (typeof Reflect === "undefined" || !Reflect.construct) return false;
287
296
  if (Reflect.construct.sham) return false;
288
297
  if (typeof Proxy === "function") return true;
@@ -293,13 +302,13 @@
293
302
  return false;
294
303
  }
295
304
  }
296
- function te(e) {
297
- te = Object.setPrototypeOf ? Object.getPrototypeOf : function e(r) {
305
+ function ie(e) {
306
+ ie = Object.setPrototypeOf ? Object.getPrototypeOf : function e(r) {
298
307
  return r.__proto__ || Object.getPrototypeOf(r);
299
308
  };
300
- return te(e);
309
+ return ie(e);
301
310
  }
302
- function ne(e, r, t) {
311
+ function le(e, r, t) {
303
312
  if (r in e) {
304
313
  Object.defineProperty(e, r, {
305
314
  value: t,
@@ -312,7 +321,7 @@
312
321
  }
313
322
  return e;
314
323
  }
315
- var oe = {
324
+ var ue = {
316
325
  path: a().arrayOf(a().oneOfType([ a().number, a().string ])),
317
326
  defaultOpen: a().bool,
318
327
  expandChildren: a().oneOfType([ a().bool, a().oneOf([ "withShiftModifier" ]) ]),
@@ -325,7 +334,7 @@
325
334
  shift: a().bool,
326
335
  expandChildrenOnShiftKey: a().bool
327
336
  };
328
- var ae = {
337
+ var ce = {
329
338
  path: [],
330
339
  defaultOpen: false,
331
340
  expandChildren: false,
@@ -336,17 +345,17 @@
336
345
  };
337
346
  /**
338
347
  * An internal container class for expandable tree nodes (objects and arrays).
339
- */ var ie = function(e) {
340
- Q(t, e);
341
- var r = Y(t);
348
+ */ var se = function(e) {
349
+ ee(t, e);
350
+ var r = te(t);
342
351
  function t(e) {
343
352
  var n;
344
- W(this, t);
353
+ X(this, t);
345
354
  n = r.call(this, e);
346
- ne(ee(n), "regularIndent", void 0);
347
- ne(ee(n), "closingIndent", void 0);
348
- ne(ee(n), "mutableShift", void 0);
349
- ne(ee(n), "handleExpandClick", (function(e) {
355
+ le(oe(n), "regularIndent", void 0);
356
+ le(oe(n), "closingIndent", void 0);
357
+ le(oe(n), "mutableShift", void 0);
358
+ le(oe(n), "handleExpandClick", (function(e) {
350
359
  if (n.props.expandChildren === "withShiftModifier" || n.props.expandChildrenOnShiftKey) {
351
360
  var r = n.context.updateShift;
352
361
  if (r != null) {
@@ -360,22 +369,22 @@
360
369
  };
361
370
  }));
362
371
  }));
363
- ne(ee(n), "handleClickKey", (function(e, r) {
372
+ le(oe(n), "handleClickKey", (function(e, r) {
364
373
  var t, o;
365
374
  var a = n.props.path;
366
375
  // When rendering a single value key is not present, here we prevent `[undefined]` in path
367
- var i = r !== undefined ? [].concat(D(a), [ r ]) : D(a);
376
+ var i = r !== undefined ? [].concat(U(a), [ r ]) : U(a);
368
377
  var l = ".".concat(i.join("."));
369
378
  (t = (o = n.props).onClickKey) === null || t === void 0 ? void 0 : t.call(o, e, {
370
379
  key: l,
371
380
  keyPath: i
372
381
  });
373
382
  }));
374
- ne(ee(n), "handleClickValue", (function(e, r) {
383
+ le(oe(n), "handleClickValue", (function(e, r) {
375
384
  var t, o;
376
385
  var a = n.props.path;
377
386
  // When rendering a single value key is not present, here we prevent `[undefined]` in path
378
- var i = r !== undefined ? [].concat(D(a), [ r ]) : D(a);
387
+ var i = r !== undefined ? [].concat(U(a), [ r ]) : U(a);
379
388
  var l = ".".concat(i.join("."));
380
389
  (t = (o = n.props).onClickValue) === null || t === void 0 ? void 0 : t.call(o, e, {
381
390
  key: l,
@@ -400,29 +409,41 @@
400
409
  open: e.defaultOpen
401
410
  };
402
411
  }
403
- n.regularIndent = b()(Array(e.indentLevel), _()(" ", e.indent));
404
- n.closingIndent = b()(Array(e.indentLevel - 1), _()(" ", e.indent));
412
+ n.regularIndent = b()(Array(e.indentLevel), E()(" ", e.indent));
413
+ n.closingIndent = b()(Array(e.indentLevel - 1), E()(" ", e.indent));
405
414
  return n;
406
415
  }
407
- G(t, [ {
416
+ Z(t, [ {
408
417
  key: "renderExpandLink",
409
- value: function e() {
410
- var r = this;
411
-
412
- return n().createElement(M, {
413
- onClick: function e(t) {
414
- r.handleExpandClick(t);
418
+ value: function e(r) {
419
+ var t = this;
420
+ var o = r.withTooltip;
421
+ var a = this.state.open ? "[-]" : "[+]";
422
+ var i = this.state.open ? (0, K._)("Collapse all") : (0, K._)("Shift click to expand all");
423
+ var l = n().createElement(D, {
424
+ onClick: function e(r) {
425
+ t.handleExpandClick(r);
415
426
  },
416
427
  "aria-expanded": this.state.open,
417
428
  "data-test": "toggle"
418
- }, " ", this.state.open ? "[-]" : "[+]", " ");
429
+ }, " ", a, " ");
430
+ if (this.props.expandChildrenOnShiftKey && o) {
431
+
432
+ return n().createElement(F, {
433
+ contentRelationship: "description",
434
+ openDelay: "secondary",
435
+ defaultPlacement: "above",
436
+ content: (0, K._)(i)
437
+ }, l);
438
+ }
439
+ return l;
419
440
  }
420
441
  }, {
421
442
  key: "renderValue",
422
443
  value: function e(r) {
423
444
  var o = this;
424
445
  var a = r.value, i = r.key;
425
- var u = this.props, c = u.expandChildren, s = u.indent, f = u.indentLevel, d = u.onClickKey, p = u.onClickValue, v = u.overflow, y = u.path, h = u.shift, b = u.expandChildrenOnShiftKey;
446
+ var u = this.props, c = u.expandChildren, s = u.indent, f = u.indentLevel, p = u.onClickKey, d = u.onClickValue, v = u.overflow, y = u.path, h = u.shift, b = u.expandChildrenOnShiftKey;
426
447
  var m = null;
427
448
  // determine if value should be represented as a simple string
428
449
  // or as a child node
@@ -437,17 +458,17 @@
437
458
  } else {
438
459
  m = a;
439
460
  }
440
- } else if (S()(a)) {
461
+ } else if (O()(a)) {
441
462
  // isObject is true for arrays
442
463
  m = C()(a) ? "[]" : "{}";
443
464
  } else {
444
465
  m = n().createElement(t, {
445
466
  obj: a,
446
- path: i !== undefined ? [].concat(D(y), [ i ]) : D(y),
467
+ path: i !== undefined ? [].concat(U(y), [ i ]) : U(y),
447
468
  defaultOpen: c === true,
448
469
  expandChildren: c,
449
- onClickKey: d,
450
- onClickValue: p,
470
+ onClickKey: p,
471
+ onClickValue: d,
451
472
  indent: s,
452
473
  indentLevel: f + 1,
453
474
  overflow: v,
@@ -457,12 +478,12 @@
457
478
  }
458
479
  // for string or number representations, apply styles and optional interactivity
459
480
  if (l()(m) || w()(m)) {
460
- var O = a === null ? "null" : // TS: bigint, function, symbol are prevented by JSONElement type
461
- H(a);
462
- if (p) {
481
+ var S = a === null ? "null" : // TS: bigint, function, symbol are prevented by JSONElement type
482
+ B(a);
483
+ if (d) {
463
484
 
464
- return n().createElement(V, {
465
- valueType: O,
485
+ return n().createElement(M, {
486
+ valueType: S,
466
487
  overflowType: v,
467
488
  onClick: function e(r) {
468
489
  o.handleClickValue(r, i);
@@ -470,8 +491,8 @@
470
491
  }, m);
471
492
  }
472
493
 
473
- return n().createElement(q, {
474
- valueType: O,
494
+ return n().createElement(L, {
495
+ valueType: S,
475
496
  overflowType: v
476
497
  }, m);
477
498
  }
@@ -484,70 +505,82 @@
484
505
  var o = this.props.onClickKey;
485
506
  if (o) {
486
507
 
487
- return n().createElement("span", null, n().createElement(L, {
508
+ return n().createElement("span", null, n().createElement(H, {
488
509
  onClick: function e(n) {
489
510
  t.handleClickKey(n, r);
490
511
  }
491
512
  }, r), ":", " ");
492
513
  }
493
514
 
494
- return n().createElement("span", null, n().createElement(R, null, r), ":", " ");
515
+ return n().createElement("span", null, n().createElement(J, null, r), ":", " ");
495
516
  }
496
517
  }, {
497
518
  key: "renderObject",
498
519
  value: function e() {
499
520
  var r = this;
500
- var t = this.props, o = t.obj, a = t.path;
501
- if (x()(o) || C()(o)) {
502
- return T()(o).map((function(e, t, i) {
503
- var l = o[e];
521
+ var o = this.props, a = o.obj, i = o.path;
522
+ var l = false;
523
+ if (x()(a) || C()(a)) {
524
+ return {
525
+ nodes: T()(a).map((function(e, o, u) {
526
+ var c = a[e];
504
527
  // TS: should be safe based on (recursive) JSONElement type
505
- var u = C()(o) ? parseInt(e, 10) : e;
506
- var c = a.length === 0 ? ".".concat(u) : ".".concat(a.join("."), ".").concat(u);
507
- var s = r.renderValue({
508
- key: u,
509
- value: l
510
- });
511
- var f = !C()(o) ? r.renderKey(u) : undefined;
512
-
513
- return n().createElement("div", {
514
- key: c,
515
- role: "treeitem",
516
- "data-test-path": c
517
- }, r.regularIndent, f, s, t + 1 < i.length ? "," : null);
518
- }));
528
+ var s = C()(a) ? parseInt(e, 10) : e;
529
+ var f = i.length === 0 ? ".".concat(s) : ".".concat(i.join("."), ".").concat(s);
530
+ var p = r.renderValue({
531
+ key: s,
532
+ value: c
533
+ });
534
+ l = // eslint-disable-next-line dot-notation
535
+ "type" in p && p["type"] === t;
536
+ var d = !C()(a) ? r.renderKey(s) : undefined;
537
+
538
+ return n().createElement("div", {
539
+ key: f,
540
+ role: "treeitem",
541
+ "data-test-path": f
542
+ }, r.regularIndent, d, p, o + 1 < u.length ? "," : null);
543
+ })),
544
+ isJSONTreeNode: l
545
+ };
519
546
  }
520
- // edge case: a single number/string/boolean being rendered (still valid JSON)
521
-
522
- return n().createElement("div", {
547
+ var u = n().createElement("div", {
523
548
  role: "treeitem",
524
549
  "data-test-path": "."
525
550
  }, this.renderValue({
526
- value: o
551
+ value: a
527
552
  }));
553
+ // keyless value case: a single number/string/boolean being rendered (still valid JSON)
554
+ return {
555
+ nodes: [ u ],
556
+ isJSONTreeNode: l
557
+ };
528
558
  }
529
559
  }, {
530
560
  key: "render",
531
561
  value: function e() {
532
562
  var r = this.state.open;
533
563
  var t = this.props.obj;
534
- var o = x()(t) && !S()(t) || C()(t) && t.length > 0;
564
+ var o = x()(t) && !O()(t) || C()(t) && t.length > 0;
565
+ var a = this.renderObject(), i = a.nodes, l = a.isJSONTreeNode;
535
566
 
536
567
  return n().createElement("span", {
537
568
  "data-test": o ? "node" : null,
538
569
  "data-test-expanded": o ? this.state.open : null
539
- }, o && (C()(t) ? "[" : "{"), o && this.renderExpandLink(), !o || r ? this.renderObject() : null, !o || r ? this.closingIndent : null, o && (C()(t) ? "]" : "}"));
570
+ }, o && (C()(t) ? "[" : "{"), o && this.renderExpandLink({
571
+ withTooltip: l
572
+ }), !o || r ? i : null, !o || r ? this.closingIndent : null, o && (C()(t) ? "]" : "}"));
540
573
  }
541
574
  } ]);
542
575
  return t;
543
576
  }(t.Component);
544
- ne(ie, "contextType", c);
545
- ne(ie, "propTypes", oe);
546
- ne(ie, "defaultProps", ae);
547
- /* harmony default export */ const le = ie;
577
+ le(se, "contextType", c);
578
+ le(se, "propTypes", ue);
579
+ le(se, "defaultProps", ce);
580
+ /* harmony default export */ const fe = se;
548
581
  // CONCATENATED MODULE: ./src/JSONTree/JSONTree.tsx
549
- function ue() {
550
- ue = Object.assign || function(e) {
582
+ function pe() {
583
+ pe = Object.assign || function(e) {
551
584
  for (var r = 1; r < arguments.length; r++) {
552
585
  var t = arguments[r];
553
586
  for (var n in t) {
@@ -558,30 +591,30 @@
558
591
  }
559
592
  return e;
560
593
  };
561
- return ue.apply(this, arguments);
594
+ return pe.apply(this, arguments);
562
595
  }
563
- function ce(e, r) {
564
- return ve(e) || pe(e, r) || fe(e, r) || se();
596
+ function de(e, r) {
597
+ return me(e) || be(e, r) || ye(e, r) || ve();
565
598
  }
566
- function se() {
599
+ function ve() {
567
600
  throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
568
601
  }
569
- function fe(e, r) {
602
+ function ye(e, r) {
570
603
  if (!e) return;
571
- if (typeof e === "string") return de(e, r);
604
+ if (typeof e === "string") return he(e, r);
572
605
  var t = Object.prototype.toString.call(e).slice(8, -1);
573
606
  if (t === "Object" && e.constructor) t = e.constructor.name;
574
607
  if (t === "Map" || t === "Set") return Array.from(e);
575
- if (t === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)) return de(e, r);
608
+ if (t === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)) return he(e, r);
576
609
  }
577
- function de(e, r) {
610
+ function he(e, r) {
578
611
  if (r == null || r > e.length) r = e.length;
579
612
  for (var t = 0, n = new Array(r); t < r; t++) {
580
613
  n[t] = e[t];
581
614
  }
582
615
  return n;
583
616
  }
584
- function pe(e, r) {
617
+ function be(e, r) {
585
618
  if (typeof Symbol === "undefined" || !(Symbol.iterator in Object(e))) return;
586
619
  var t = [];
587
620
  var n = true;
@@ -604,12 +637,12 @@
604
637
  }
605
638
  return t;
606
639
  }
607
- function ve(e) {
640
+ function me(e) {
608
641
  if (Array.isArray(e)) return e;
609
642
  }
610
- function ye(e, r) {
643
+ function Ce(e, r) {
611
644
  if (e == null) return {};
612
- var t = he(e, r);
645
+ var t = Se(e, r);
613
646
  var n, o;
614
647
  if (Object.getOwnPropertySymbols) {
615
648
  var a = Object.getOwnPropertySymbols(e);
@@ -622,7 +655,7 @@
622
655
  }
623
656
  return t;
624
657
  }
625
- function he(e, r) {
658
+ function Se(e, r) {
626
659
  if (e == null) return {};
627
660
  var t = {};
628
661
  var n = Object.keys(e);
@@ -634,7 +667,7 @@
634
667
  }
635
668
  return t;
636
669
  }
637
- var be = {
670
+ var Oe = {
638
671
  elementRef: a().oneOfType([ a().func, a().object ]),
639
672
  expandChildren: a().oneOfType([ a().bool, a().oneOf([ "withShiftModifier" ]) ]),
640
673
  indent: a().number,
@@ -646,12 +679,12 @@
646
679
  };
647
680
  /**
648
681
  * Used to visualize a JSON string.
649
- */ function me(e) {
650
- var r = e.elementRef, o = e.expandChildren, a = o === void 0 ? false : o, i = e.indent, u = i === void 0 ? 4 : i, s = e.json, f = e.onClickKey, d = e.onClickValue, p = e.overflow, h = p === void 0 ? "scroll" : p, b = e.expandChildrenOnShiftKey, m = b === void 0 ? false : b, C = ye(e, [ "elementRef", "expandChildren", "indent", "json", "onClickKey", "onClickValue", "overflow", "expandChildrenOnShiftKey" ]);
682
+ */ function ke(e) {
683
+ var r = e.elementRef, o = e.expandChildren, a = o === void 0 ? false : o, i = e.indent, u = i === void 0 ? 4 : i, s = e.json, f = e.onClickKey, p = e.onClickValue, d = e.overflow, h = d === void 0 ? "scroll" : d, b = e.expandChildrenOnShiftKey, m = b === void 0 ? false : b, C = Ce(e, [ "elementRef", "expandChildren", "indent", "json", "onClickKey", "onClickValue", "overflow", "expandChildrenOnShiftKey" ]);
651
684
  // @docs-props-type JSONTreePropsBase
652
- var O = l()(s) ? JSON.parse(s) : s;
653
- var S = h === "wrap" ? y : v;
654
- var k = (0, t.useState)(undefined), w = ce(k, 2), g = w[0], x = w[1];
685
+ var S = l()(s) ? JSON.parse(s) : s;
686
+ var O = h === "wrap" ? y : v;
687
+ var k = (0, t.useState)(undefined), w = de(k, 2), g = w[0], x = w[1];
655
688
  var j = function e(r) {
656
689
  x(r);
657
690
  };
@@ -661,27 +694,27 @@
661
694
  updateShift: j
662
695
  };
663
696
 
664
- return n().createElement(S, ue({
697
+ return n().createElement(O, pe({
665
698
  "data-language": "language-json",
666
699
  "data-test": "json-tree",
667
700
  ref: r,
668
701
  role: "tree"
669
702
  }, C), n().createElement(c.Provider, {
670
703
  value: T
671
- }, n().createElement(le, {
704
+ }, n().createElement(fe, {
672
705
  defaultOpen: true,
673
706
  expandChildren: a,
674
707
  indent: u,
675
- obj: O,
708
+ obj: S,
676
709
  onClickKey: f,
677
- onClickValue: d,
710
+ onClickValue: p,
678
711
  overflow: h,
679
712
  expandChildrenOnShiftKey: m,
680
713
  shift: g
681
714
  })));
682
715
  }
683
- me.propTypes = be;
684
- /* harmony default export */ const Ce = me;
716
+ ke.propTypes = Oe;
717
+ /* harmony default export */ const we = ke;
685
718
  // CONCATENATED MODULE: ./src/JSONTree/index.ts
686
719
  module.exports = r;
687
720
  /******/})();