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