@splunk/react-ui 4.3.0 → 4.5.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 (138) hide show
  1. package/Accordion.js +37 -21
  2. package/Anchor.js +2 -2
  3. package/Animation.js +2 -2
  4. package/AnimationToggle.js +2 -2
  5. package/Box.js +2 -2
  6. package/Button.js +36 -12
  7. package/ButtonGroup.js +27 -6
  8. package/ButtonSimple.js +6 -6
  9. package/CHANGELOG.md +57 -0
  10. package/Calendar.js +14 -14
  11. package/Card.js +51 -25
  12. package/CardLayout.js +31 -10
  13. package/Chip.js +77 -53
  14. package/Clickable.js +6 -6
  15. package/CloseButton.js +6 -6
  16. package/Code.js +1279 -1120
  17. package/CollapsiblePanel.js +6 -6
  18. package/Color.js +180 -209
  19. package/ColumnLayout.js +4 -4
  20. package/ComboBox.js +22 -17
  21. package/Concertina.js +56 -51
  22. package/ControlGroup.js +121 -32
  23. package/Date.js +62 -25
  24. package/DefinitionList.js +2 -2
  25. package/Dropdown.js +12 -12
  26. package/EventListener.js +168 -0
  27. package/FetchOptions.js +8 -8
  28. package/File.js +122 -96
  29. package/FormRows.js +66 -58
  30. package/Heading.js +2 -2
  31. package/Image.js +14 -14
  32. package/JSONTree.js +5 -5
  33. package/Layer.js +32 -20
  34. package/Link.js +8 -8
  35. package/List.js +2 -2
  36. package/Markdown.js +250 -88
  37. package/Menu.js +70 -64
  38. package/Message.js +18 -18
  39. package/Modal.js +70 -16
  40. package/ModalLayer.js +4 -4
  41. package/Monogram.js +12 -11
  42. package/Multiselect.js +124 -80
  43. package/Number.js +44 -34
  44. package/Paginator.js +10 -10
  45. package/Paragraph.js +2 -2
  46. package/Popover.js +54 -40
  47. package/Progress.js +8 -8
  48. package/RadioBar.js +45 -38
  49. package/RadioList.js +2 -2
  50. package/Resize.js +19 -15
  51. package/ResultsMenu.js +6 -6
  52. package/ScreenReaderContent.js +2 -2
  53. package/Scroll.js +25 -23
  54. package/ScrollContainerContext.js +5 -5
  55. package/Search.d.ts +2 -0
  56. package/Search.js +797 -0
  57. package/Select.js +85 -45
  58. package/SidePanel.js +6 -6
  59. package/Slider.js +34 -30
  60. package/SlidingPanels.js +6 -6
  61. package/StaticContent.js +2 -2
  62. package/StepBar.js +56 -52
  63. package/Switch.js +8 -8
  64. package/TabBar.js +126 -85
  65. package/TabLayout.js +4 -5
  66. package/Table.js +266 -155
  67. package/Text.js +486 -401
  68. package/Tooltip.js +11 -11
  69. package/TransitionOpen.js +11 -11
  70. package/WaitSpinner.js +3 -4
  71. package/package.json +5 -6
  72. package/types/src/Accordion/AccordionContext.d.ts +10 -0
  73. package/types/src/Accordion/Panel.d.ts +0 -9
  74. package/types/src/Button/Button.d.ts +4 -2
  75. package/types/src/ButtonGroup/ButtonGroupContext.d.ts +7 -0
  76. package/types/src/ButtonSimple/ButtonSimple.d.ts +5 -5
  77. package/types/src/Card/Card.d.ts +2 -0
  78. package/types/src/CardLayout/CardLayoutContext.d.ts +8 -0
  79. package/types/src/Color/Color.d.ts +2 -2
  80. package/types/src/Color/Swatch.d.ts +4 -15
  81. package/types/src/ComboBox/ComboBox.d.ts +4 -3
  82. package/types/src/Concertina/ConcertinaContext.d.ts +8 -0
  83. package/types/src/Concertina/Panel.d.ts +2 -4
  84. package/types/src/ControlGroup/ControlGroup.d.ts +11 -1
  85. package/types/src/ControlGroup/ControlGroupContext.d.ts +15 -0
  86. package/types/src/Date/Date.d.ts +6 -4
  87. package/types/src/EventListener/EventListener.d.ts +18 -0
  88. package/types/src/EventListener/index.d.ts +2 -0
  89. package/types/src/File/File.d.ts +6 -4
  90. package/types/src/File/FileContext.d.ts +9 -0
  91. package/types/src/File/Item.d.ts +5 -10
  92. package/types/src/FormRows/FormRows.d.ts +2 -2
  93. package/types/src/FormRows/FormRowsContext.d.ts +10 -0
  94. package/types/src/FormRows/Row.d.ts +5 -16
  95. package/types/src/Markdown/Markdown.d.ts +2 -0
  96. package/types/src/Markdown/renderers/MarkdownBlockquote.d.ts +14 -0
  97. package/types/src/Markdown/renderers/MarkdownCode.d.ts +15 -0
  98. package/types/src/Markdown/renderers/MarkdownCodeBlock.d.ts +16 -0
  99. package/types/src/Markdown/renderers/MarkdownHeading.d.ts +15 -0
  100. package/types/src/Markdown/renderers/MarkdownImage.d.ts +18 -0
  101. package/types/src/Markdown/renderers/MarkdownItem.d.ts +14 -0
  102. package/types/src/Markdown/renderers/MarkdownLink.d.ts +18 -0
  103. package/types/src/Markdown/renderers/MarkdownList.d.ts +26 -0
  104. package/types/src/Markdown/renderers/MarkdownParagraph.d.ts +14 -0
  105. package/types/src/Markdown/renderers/index.d.ts +10 -0
  106. package/types/src/Modal/Modal.d.ts +15 -3
  107. package/types/src/Monogram/Monogram.d.ts +5 -1
  108. package/types/src/Multiselect/Compact.d.ts +12 -4
  109. package/types/src/Multiselect/Multiselect.d.ts +14 -4
  110. package/types/src/Multiselect/Normal.d.ts +7 -2
  111. package/types/src/Number/Number.d.ts +11 -7
  112. package/types/src/Popover/Popover.d.ts +2 -2
  113. package/types/src/RadioBar/Option.d.ts +1 -15
  114. package/types/src/RadioBar/RadioBar.d.ts +2 -2
  115. package/types/src/RadioBar/RadioBarContext.d.ts +9 -0
  116. package/types/src/Scroll/Inner.d.ts +2 -2
  117. package/types/src/ScrollContainerContext/ScrollContainerContext.d.ts +4 -4
  118. package/types/src/Search/Option.d.ts +60 -0
  119. package/types/src/Search/Search.d.ts +97 -0
  120. package/types/src/Search/index.d.ts +2 -0
  121. package/types/src/Select/Select.d.ts +6 -2
  122. package/types/src/Select/SelectBase.d.ts +12 -5
  123. package/types/src/Slider/Slider.d.ts +2 -2
  124. package/types/src/StepBar/Step.d.ts +1 -13
  125. package/types/src/StepBar/StepBarContext.d.ts +8 -0
  126. package/types/src/TabBar/Tab.d.ts +5 -13
  127. package/types/src/TabBar/TabBarContext.d.ts +14 -0
  128. package/types/src/Table/Body.d.ts +1 -1
  129. package/types/src/Table/Head.d.ts +3 -1
  130. package/types/src/Table/HeadCell.d.ts +1 -1
  131. package/types/src/Table/HeadInner.d.ts +3 -3
  132. package/types/src/Table/Row.d.ts +10 -3
  133. package/types/src/Table/Table.d.ts +10 -5
  134. package/types/src/Text/Text.d.ts +33 -12
  135. package/types/src/icons/Sort.d.ts +3 -0
  136. package/types/src/usePrevious/index.d.ts +2 -0
  137. package/types/src/usePrevious/usePrevious.d.ts +12 -0
  138. package/usePrevious.js +137 -0
package/Search.js ADDED
@@ -0,0 +1,797 @@
1
+ module.exports =
2
+ /******/ (function(modules) { // webpackBootstrap
3
+ /******/ // The module cache
4
+ /******/ var installedModules = {};
5
+ /******/
6
+ /******/ // The require function
7
+ /******/ function __webpack_require__(moduleId) {
8
+ /******/
9
+ /******/ // Check if module is in cache
10
+ /******/ if(installedModules[moduleId]) {
11
+ /******/ return installedModules[moduleId].exports;
12
+ /******/ }
13
+ /******/ // Create a new module (and put it into the cache)
14
+ /******/ var module = installedModules[moduleId] = {
15
+ /******/ i: moduleId,
16
+ /******/ l: false,
17
+ /******/ exports: {}
18
+ /******/ };
19
+ /******/
20
+ /******/ // Execute the module function
21
+ /******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
22
+ /******/
23
+ /******/ // Flag the module as loaded
24
+ /******/ module.l = true;
25
+ /******/
26
+ /******/ // Return the exports of the module
27
+ /******/ return module.exports;
28
+ /******/ }
29
+ /******/
30
+ /******/
31
+ /******/ // expose the modules object (__webpack_modules__)
32
+ /******/ __webpack_require__.m = modules;
33
+ /******/
34
+ /******/ // expose the module cache
35
+ /******/ __webpack_require__.c = installedModules;
36
+ /******/
37
+ /******/ // define getter function for harmony exports
38
+ /******/ __webpack_require__.d = function(exports, name, getter) {
39
+ /******/ if(!__webpack_require__.o(exports, name)) {
40
+ /******/ Object.defineProperty(exports, name, { enumerable: true, get: getter });
41
+ /******/ }
42
+ /******/ };
43
+ /******/
44
+ /******/ // define __esModule on exports
45
+ /******/ __webpack_require__.r = function(exports) {
46
+ /******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
47
+ /******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
48
+ /******/ }
49
+ /******/ Object.defineProperty(exports, '__esModule', { value: true });
50
+ /******/ };
51
+ /******/
52
+ /******/ // create a fake namespace object
53
+ /******/ // mode & 1: value is a module id, require it
54
+ /******/ // mode & 2: merge all properties of value into the ns
55
+ /******/ // mode & 4: return value when already ns object
56
+ /******/ // mode & 8|1: behave like require
57
+ /******/ __webpack_require__.t = function(value, mode) {
58
+ /******/ if(mode & 1) value = __webpack_require__(value);
59
+ /******/ if(mode & 8) return value;
60
+ /******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;
61
+ /******/ var ns = Object.create(null);
62
+ /******/ __webpack_require__.r(ns);
63
+ /******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value });
64
+ /******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));
65
+ /******/ return ns;
66
+ /******/ };
67
+ /******/
68
+ /******/ // getDefaultExport function for compatibility with non-harmony modules
69
+ /******/ __webpack_require__.n = function(module) {
70
+ /******/ var getter = module && module.__esModule ?
71
+ /******/ function getDefault() { return module['default']; } :
72
+ /******/ function getModuleExports() { return module; };
73
+ /******/ __webpack_require__.d(getter, 'a', getter);
74
+ /******/ return getter;
75
+ /******/ };
76
+ /******/
77
+ /******/ // Object.prototype.hasOwnProperty.call
78
+ /******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
79
+ /******/
80
+ /******/ // __webpack_public_path__
81
+ /******/ __webpack_require__.p = "";
82
+ /******/
83
+ /******/
84
+ /******/ // Load entry module and return exports
85
+ /******/ return __webpack_require__(__webpack_require__.s = 163);
86
+ /******/ })
87
+ /************************************************************************/
88
+ /******/ ({
89
+
90
+ /***/ 1:
91
+ /***/ (function(module, exports) {
92
+
93
+ module.exports = require("prop-types");
94
+
95
+ /***/ }),
96
+
97
+ /***/ 10:
98
+ /***/ (function(module, exports) {
99
+
100
+ module.exports = require("@splunk/ui-utils/id");
101
+
102
+ /***/ }),
103
+
104
+ /***/ 11:
105
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
106
+
107
+ "use strict";
108
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return updateReactRef; });
109
+ /**
110
+ * Updates a React ref. Callback refs and object refs (from `createRef` and `useRef`) are supported.
111
+ *
112
+ * @param ref - The React callback or object ref. Can be `null` or `undefined`.
113
+ * @param current - The new value of the ref.
114
+ */
115
+ function updateReactRef(ref, current) {
116
+ if (ref) {
117
+ if (typeof ref === 'function') {
118
+ ref(current);
119
+ } else {
120
+ // the public signature of this util uses React.Ref<T> to mirror the way React types refs.
121
+ // the intention here is to signal "we will take care of setting 'current', not you".
122
+ ref.current = current; // eslint-disable-line no-param-reassign
123
+ }
124
+ }
125
+ }
126
+
127
+
128
+
129
+ /***/ }),
130
+
131
+ /***/ 13:
132
+ /***/ (function(module, exports) {
133
+
134
+ module.exports = require("@splunk/react-ui/Menu");
135
+
136
+ /***/ }),
137
+
138
+ /***/ 16:
139
+ /***/ (function(module, exports) {
140
+
141
+ module.exports = require("@splunk/react-ui/Popover");
142
+
143
+ /***/ }),
144
+
145
+ /***/ 163:
146
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
147
+
148
+ "use strict";
149
+ // ESM COMPAT FLAG
150
+ __webpack_require__.r(__webpack_exports__);
151
+
152
+ // EXPORTS
153
+ __webpack_require__.d(__webpack_exports__, "default", function() { return /* reexport */ Search_Search; });
154
+ __webpack_require__.d(__webpack_exports__, "Option", function() { return /* reexport */ Search_Option; });
155
+ __webpack_require__.d(__webpack_exports__, "Divider", function() { return /* reexport */ Menu_["Divider"]; });
156
+ __webpack_require__.d(__webpack_exports__, "Heading", function() { return /* reexport */ Menu_["Heading"]; });
157
+
158
+ // EXTERNAL MODULE: external "react"
159
+ var external_react_ = __webpack_require__(2);
160
+ var external_react_default = /*#__PURE__*/__webpack_require__.n(external_react_);
161
+
162
+ // EXTERNAL MODULE: external "prop-types"
163
+ var external_prop_types_ = __webpack_require__(1);
164
+ var external_prop_types_default = /*#__PURE__*/__webpack_require__.n(external_prop_types_);
165
+
166
+ // EXTERNAL MODULE: external "lodash"
167
+ var external_lodash_ = __webpack_require__(4);
168
+
169
+ // EXTERNAL MODULE: external "@splunk/ui-utils/id"
170
+ var id_ = __webpack_require__(10);
171
+
172
+ // EXTERNAL MODULE: external "@splunk/ui-utils/i18n"
173
+ var i18n_ = __webpack_require__(5);
174
+
175
+ // EXTERNAL MODULE: external "@splunk/ui-utils/keyboard"
176
+ var keyboard_ = __webpack_require__(9);
177
+
178
+ // EXTERNAL MODULE: external "@splunk/react-ui/Menu"
179
+ var Menu_ = __webpack_require__(13);
180
+
181
+ // EXTERNAL MODULE: external "@splunk/react-ui/usePrevious"
182
+ var usePrevious_ = __webpack_require__(97);
183
+ var usePrevious_default = /*#__PURE__*/__webpack_require__.n(usePrevious_);
184
+
185
+ // EXTERNAL MODULE: external "@splunk/react-ui/Popover"
186
+ var Popover_ = __webpack_require__(16);
187
+ var Popover_default = /*#__PURE__*/__webpack_require__.n(Popover_);
188
+
189
+ // EXTERNAL MODULE: external "@splunk/react-ui/ResultsMenu"
190
+ var ResultsMenu_ = __webpack_require__(32);
191
+ var ResultsMenu_default = /*#__PURE__*/__webpack_require__.n(ResultsMenu_);
192
+
193
+ // EXTERNAL MODULE: external "@splunk/react-ui/Text"
194
+ var Text_ = __webpack_require__(21);
195
+ var Text_default = /*#__PURE__*/__webpack_require__.n(Text_);
196
+
197
+ // CONCATENATED MODULE: ./src/Search/Option.tsx
198
+ function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
199
+
200
+ function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
201
+
202
+ function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
203
+
204
+ function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
205
+
206
+ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
207
+
208
+ function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
209
+
210
+ function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
211
+
212
+ function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }
213
+
214
+ function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
215
+
216
+ function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
217
+
218
+ function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); }
219
+
220
+ function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
221
+
222
+ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }
223
+
224
+ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
225
+
226
+ function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
227
+
228
+
229
+
230
+
231
+ var propTypes = {
232
+ /** @private */
233
+ active: external_prop_types_default.a.bool,
234
+ description: external_prop_types_default.a.string,
235
+ descriptionPosition: external_prop_types_default.a.oneOf(['right', 'bottom']),
236
+ disabled: external_prop_types_default.a.bool,
237
+ icon: external_prop_types_default.a.node,
238
+ label: external_prop_types_default.a.string,
239
+
240
+ /** @private */
241
+ onClick: external_prop_types_default.a.func,
242
+ truncate: external_prop_types_default.a.bool,
243
+ value: external_prop_types_default.a.string.isRequired
244
+ };
245
+ var defaultProps = {
246
+ active: false,
247
+ descriptionPosition: 'bottom',
248
+ disabled: false,
249
+ truncate: false
250
+ };
251
+
252
+ /**
253
+ * An option within a `Search`. This inherits from
254
+ * [PureComponent](https://reactjs.org/docs/react-api.html#reactpurecomponent)
255
+ * so any elements passed to it must also be pure.
256
+ */
257
+ var Option_Option = /*#__PURE__*/function (_PureComponent) {
258
+ _inherits(Option, _PureComponent);
259
+
260
+ var _super = _createSuper(Option);
261
+
262
+ function Option() {
263
+ var _this;
264
+
265
+ _classCallCheck(this, Option);
266
+
267
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
268
+ args[_key] = arguments[_key];
269
+ }
270
+
271
+ _this = _super.call.apply(_super, [this].concat(args));
272
+
273
+ _defineProperty(_assertThisInitialized(_this), "item", null);
274
+
275
+ _defineProperty(_assertThisInitialized(_this), "handleClick", function (e) {
276
+ var _this$props = _this.props,
277
+ disabled = _this$props.disabled,
278
+ onClick = _this$props.onClick,
279
+ value = _this$props.value;
280
+
281
+ if (!disabled) {
282
+ onClick === null || onClick === void 0 ? void 0 : onClick(e, {
283
+ value: value
284
+ });
285
+ }
286
+ });
287
+
288
+ return _this;
289
+ }
290
+
291
+ _createClass(Option, [{
292
+ key: "scrollIntoViewIfNeeded",
293
+ value: function scrollIntoViewIfNeeded() {
294
+ var _this$item;
295
+
296
+ (_this$item = this.item) === null || _this$item === void 0 ? void 0 : _this$item.scrollIntoViewIfNeeded();
297
+ }
298
+ }, {
299
+ key: "render",
300
+ value: function render() {
301
+ var _this2 = this;
302
+
303
+ // eslint-disable-next-line no-unused-vars
304
+ var _this$props2 = this.props,
305
+ value = _this$props2.value,
306
+ label = _this$props2.label,
307
+ otherProps = _objectWithoutProperties(_this$props2, ["value", "label"]);
308
+
309
+ var displayLabel = label === undefined ? value : label;
310
+ return /*#__PURE__*/external_react_default.a.createElement(Menu_["Item"], _extends({
311
+ ref: function ref(c) {
312
+ _this2.item = c;
313
+ },
314
+ "data-test": "search-option",
315
+ "data-test-value": value
316
+ }, otherProps, {
317
+ onClick: this.handleClick,
318
+ role: "option",
319
+ "aria-selected": false
320
+ }), displayLabel);
321
+ }
322
+ }]);
323
+
324
+ return Option;
325
+ }(external_react_["PureComponent"]);
326
+
327
+ _defineProperty(Option_Option, "propTypes", propTypes);
328
+
329
+ _defineProperty(Option_Option, "defaultProps", defaultProps);
330
+
331
+ /* harmony default export */ var Search_Option = (Option_Option);
332
+ // EXTERNAL MODULE: ./src/utils/updateReactRef.ts
333
+ var updateReactRef = __webpack_require__(11);
334
+
335
+ // CONCATENATED MODULE: ./src/Search/Search.tsx
336
+ function Search_extends() { Search_extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return Search_extends.apply(this, arguments); }
337
+
338
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
339
+
340
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { Search_defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
341
+
342
+ function Search_defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
343
+
344
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
345
+
346
+ function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
347
+
348
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
349
+
350
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
351
+
352
+ function _iterableToArrayLimit(arr, i) { if (typeof Symbol === "undefined" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
353
+
354
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
355
+
356
+ function Search_objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = Search_objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
357
+
358
+ function Search_objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
359
+
360
+
361
+
362
+
363
+
364
+
365
+
366
+
367
+
368
+
369
+
370
+
371
+
372
+
373
+ var Search_propTypes = {
374
+ animateLoading: external_prop_types_default.a.bool,
375
+ children: external_prop_types_default.a.node,
376
+ defaultPlacement: external_prop_types_default.a.oneOf(['above', 'below', 'vertical']),
377
+ defaultValue: external_prop_types_default.a.string,
378
+ describedBy: external_prop_types_default.a.string,
379
+ disabled: external_prop_types_default.a.bool,
380
+ elementRef: external_prop_types_default.a.oneOfType([external_prop_types_default.a.func, external_prop_types_default.a.object]),
381
+ error: external_prop_types_default.a.bool,
382
+ footerMessage: external_prop_types_default.a.node,
383
+ inline: external_prop_types_default.a.bool,
384
+ inputRef: external_prop_types_default.a.oneOfType([external_prop_types_default.a.func, external_prop_types_default.a.object]),
385
+ isLoadingOptions: external_prop_types_default.a.bool,
386
+ labelledBy: external_prop_types_default.a.string,
387
+ loadingMessage: external_prop_types_default.a.node,
388
+ menuStyle: external_prop_types_default.a.object,
389
+ name: external_prop_types_default.a.string,
390
+ noOptionsMessage: external_prop_types_default.a.node,
391
+ onChange: external_prop_types_default.a.func,
392
+ onClose: external_prop_types_default.a.func,
393
+ onFocus: external_prop_types_default.a.func,
394
+ onKeyDown: external_prop_types_default.a.func,
395
+ onOpen: external_prop_types_default.a.func,
396
+ placeholder: external_prop_types_default.a.string,
397
+ value: external_prop_types_default.a.string
398
+ };
399
+
400
+ function containsEvent(el, _ref) {
401
+ var clientX = _ref.clientX,
402
+ clientY = _ref.clientY;
403
+
404
+ var _el$getBoundingClient = el.getBoundingClientRect(),
405
+ top = _el$getBoundingClient.top,
406
+ left = _el$getBoundingClient.left,
407
+ bottom = _el$getBoundingClient.bottom,
408
+ right = _el$getBoundingClient.right;
409
+
410
+ return clientX > left && clientX < right && clientY > top && clientY < bottom;
411
+ }
412
+
413
+ function Search(_ref2) {
414
+ var _ref2$animateLoading = _ref2.animateLoading,
415
+ animateLoading = _ref2$animateLoading === void 0 ? false : _ref2$animateLoading,
416
+ children = _ref2.children,
417
+ defaultPlacement = _ref2.defaultPlacement,
418
+ defaultValue = _ref2.defaultValue,
419
+ describedBy = _ref2.describedBy,
420
+ _ref2$disabled = _ref2.disabled,
421
+ disabled = _ref2$disabled === void 0 ? false : _ref2$disabled,
422
+ elementRef = _ref2.elementRef,
423
+ _ref2$error = _ref2.error,
424
+ error = _ref2$error === void 0 ? false : _ref2$error,
425
+ footerMessage = _ref2.footerMessage,
426
+ _ref2$inline = _ref2.inline,
427
+ inline = _ref2$inline === void 0 ? false : _ref2$inline,
428
+ inputRef = _ref2.inputRef,
429
+ _ref2$isLoadingOption = _ref2.isLoadingOptions,
430
+ isLoadingOptions = _ref2$isLoadingOption === void 0 ? false : _ref2$isLoadingOption,
431
+ labelledBy = _ref2.labelledBy,
432
+ loadingMessage = _ref2.loadingMessage,
433
+ _ref2$menuStyle = _ref2.menuStyle,
434
+ menuStyle = _ref2$menuStyle === void 0 ? {} : _ref2$menuStyle,
435
+ name = _ref2.name,
436
+ noOptionsMessage = _ref2.noOptionsMessage,
437
+ onChange = _ref2.onChange,
438
+ onClose = _ref2.onClose,
439
+ onFocus = _ref2.onFocus,
440
+ onKeyDown = _ref2.onKeyDown,
441
+ onOpen = _ref2.onOpen,
442
+ _ref2$placeholder = _ref2.placeholder,
443
+ placeholder = _ref2$placeholder === void 0 ? Object(i18n_["_"])('Search...') : _ref2$placeholder,
444
+ propValue = _ref2.value,
445
+ otherProps = Search_objectWithoutProperties(_ref2, ["animateLoading", "children", "defaultPlacement", "defaultValue", "describedBy", "disabled", "elementRef", "error", "footerMessage", "inline", "inputRef", "isLoadingOptions", "labelledBy", "loadingMessage", "menuStyle", "name", "noOptionsMessage", "onChange", "onClose", "onFocus", "onKeyDown", "onOpen", "placeholder", "value"]);
446
+
447
+ // @docs-props-type SearchPropsBase
448
+ // state
449
+ var _useState = Object(external_react_["useState"])(0),
450
+ _useState2 = _slicedToArray(_useState, 2),
451
+ activeIndex = _useState2[0],
452
+ setActiveIndex = _useState2[1];
453
+
454
+ var _useState3 = Object(external_react_["useState"])(false),
455
+ _useState4 = _slicedToArray(_useState3, 2),
456
+ isOpen = _useState4[0],
457
+ setIsOpen = _useState4[1];
458
+
459
+ var _useState5 = Object(external_react_["useState"])(undefined),
460
+ _useState6 = _slicedToArray(_useState5, 2),
461
+ typedValue = _useState6[0],
462
+ setTypedValue = _useState6[1];
463
+
464
+ var _useState7 = Object(external_react_["useState"])(defaultValue || ''),
465
+ _useState8 = _slicedToArray(_useState7, 2),
466
+ value = _useState8[0],
467
+ setValue = _useState8[1]; // previous state
468
+
469
+
470
+ var previousActiveIndexState = usePrevious_default()(activeIndex); // refs
471
+
472
+ var anchorRef = Object(external_react_["useRef"])(null);
473
+ var textRef = Object(external_react_["useRef"])(null);
474
+ var controlledExternally = Object(external_react_["useRef"])(propValue !== undefined && propValue !== null);
475
+ var focusCalledInternally = Object(external_react_["useRef"])(false);
476
+ var options = Object(external_react_["useRef"])([]);
477
+ var popoverId = Object(external_react_["useRef"])(Object(id_["createDOMID"])('popover'));
478
+ var previousActiveIndex = Object(external_react_["useRef"])(previousActiveIndexState);
479
+ var activeItemId = Object(external_react_["useRef"])(Object(id_["createDOMID"])('active-item'));
480
+ var activeValue = Object(external_react_["useRef"])(undefined);
481
+
482
+ var handleAnchorRef = function handleAnchorRef(el) {
483
+ Object(updateReactRef["a" /* updateReactRef */])(anchorRef, el);
484
+ Object(updateReactRef["a" /* updateReactRef */])(elementRef, el);
485
+ };
486
+
487
+ var handleInputRef = function handleInputRef(el) {
488
+ Object(updateReactRef["a" /* updateReactRef */])(textRef, el);
489
+ Object(updateReactRef["a" /* updateReactRef */])(inputRef, el);
490
+ };
491
+
492
+ var getValue = function getValue() {
493
+ return controlledExternally.current ? propValue : value;
494
+ };
495
+
496
+ var getDisplayValue = function getDisplayValue() {
497
+ var currentValue = getValue();
498
+ var initialOptions = external_react_["Children"].toArray(children).filter(external_react_["isValidElement"]);
499
+ var optionForValue = !typedValue && initialOptions.find(function (option) {
500
+ return option.props.label !== undefined && option.props.value === currentValue;
501
+ });
502
+
503
+ if (optionForValue) {
504
+ return optionForValue === null || optionForValue === void 0 ? void 0 : optionForValue.props.label;
505
+ }
506
+
507
+ return currentValue;
508
+ };
509
+
510
+ var isMenuValid = function isMenuValid() {
511
+ return !!children || isLoadingOptions;
512
+ };
513
+
514
+ var requestOpen = function requestOpen() {
515
+ setIsOpen(true);
516
+ setActiveIndex(-1);
517
+ onOpen === null || onOpen === void 0 ? void 0 : onOpen();
518
+ };
519
+
520
+ var requestClose = function requestClose() {
521
+ setIsOpen(false);
522
+ previousActiveIndex.current = null;
523
+ onClose === null || onClose === void 0 ? void 0 : onClose();
524
+ };
525
+
526
+ var requestFocus = function requestFocus() {
527
+ var _textRef$current;
528
+
529
+ (_textRef$current = textRef.current) === null || _textRef$current === void 0 ? void 0 : _textRef$current.focus();
530
+ };
531
+
532
+ var handleInputFocus = function handleInputFocus(e) {
533
+ /* SUI-930 On IE 11 this handler is essentially deferred after calling
534
+ * this.textInput.focus(). this.focusCalledInternally enables the focus event to be ignored
535
+ * when the menu closes. */
536
+ if (focusCalledInternally.current) {
537
+ focusCalledInternally.current = false;
538
+ } else {
539
+ requestOpen();
540
+ }
541
+
542
+ onFocus === null || onFocus === void 0 ? void 0 : onFocus(e);
543
+ };
544
+
545
+ var handleChange = function handleChange(e, _ref3) {
546
+ var controlValue = _ref3.value;
547
+
548
+ if (!controlledExternally.current) {
549
+ setValue(controlValue);
550
+ }
551
+
552
+ setActiveIndex(-1);
553
+ setTypedValue(controlValue);
554
+ onChange === null || onChange === void 0 ? void 0 : onChange(e, {
555
+ value: controlValue,
556
+ name: name
557
+ });
558
+ };
559
+
560
+ var handleSelectOption = function handleSelectOption(e, data) {
561
+ handleChange(e, _objectSpread({}, data));
562
+ focusCalledInternally.current = true;
563
+ requestFocus();
564
+ requestClose();
565
+ };
566
+
567
+ var handleInputKeyDown = function handleInputKeyDown(e) {
568
+ var numOptions = options.current.length;
569
+ var activeOption = activeValue.current;
570
+ var eventKeyCode = Object(keyboard_["keycode"])(e.nativeEvent);
571
+
572
+ if (isOpen) {
573
+ switch (eventKeyCode) {
574
+ case 'enter':
575
+ {
576
+ if (activeOption) {
577
+ handleSelectOption(e, {
578
+ value: activeOption
579
+ });
580
+ }
581
+
582
+ break;
583
+ }
584
+
585
+ case 'tab':
586
+ requestClose();
587
+ break;
588
+
589
+ case 'down':
590
+ setActiveIndex(Math.min(activeIndex + 1, numOptions - 1));
591
+ break;
592
+
593
+ case 'up':
594
+ setActiveIndex(Math.max(activeIndex - 1, 0));
595
+ break;
596
+
597
+ default: // do nothing
598
+
599
+ }
600
+ } else if (Object(keyboard_["addsCharacter"])(e.nativeEvent) !== false || // Safari 9.0 returns undefined
601
+ eventKeyCode === 'enter' || eventKeyCode === 'backspace' || eventKeyCode === 'down' || eventKeyCode === 'up') {
602
+ requestOpen();
603
+ }
604
+
605
+ onKeyDown === null || onKeyDown === void 0 ? void 0 : onKeyDown(e);
606
+ };
607
+
608
+ var handleInputClick = function handleInputClick() {
609
+ if (document.activeElement !== textRef.current) {
610
+ focusCalledInternally.current = true;
611
+ requestFocus();
612
+ }
613
+
614
+ if (!isOpen && !disabled) {
615
+ requestOpen();
616
+ }
617
+ };
618
+
619
+ var handleRequestClose = function handleRequestClose(_ref4) {
620
+ var event = _ref4.event,
621
+ reason = _ref4.reason;
622
+ var shouldClose = reason === 'offScreen' || reason === 'escapeKey' || reason === 'clickAway' && textRef.current && !containsEvent(textRef.current, event);
623
+
624
+ if (shouldClose) {
625
+ requestClose();
626
+ }
627
+ };
628
+
629
+ var handleActiveOptionMount = function handleActiveOptionMount(c) {
630
+ if (previousActiveIndex.current !== activeIndex) {
631
+ c === null || c === void 0 ? void 0 : c.scrollIntoViewIfNeeded();
632
+ }
633
+ };
634
+
635
+ var renderMenu = function renderMenu(_ref5) {
636
+ var anchorWidth = _ref5.anchorWidth,
637
+ maxHeight = _ref5.maxHeight;
638
+ var initialOptions = external_react_["Children"].toArray(children).filter(external_react_["isValidElement"]); // Highlight Active
639
+
640
+ activeValue.current = undefined; // Only update the menu options if they are valid and the drodown is open.
641
+ // This is necessary to handle the outro animation of the dropdown.
642
+
643
+ if (isMenuValid() && isOpen) {
644
+ options.current = initialOptions.map(function (option, index) {
645
+ if (!Object(external_lodash_["has"])(option.props, 'active')) {
646
+ // ignore Headings and Dividers
647
+ return option;
648
+ }
649
+
650
+ if (index === activeIndex) {
651
+ activeValue.current = option.props.value;
652
+ return /*#__PURE__*/Object(external_react_["cloneElement"])(option, {
653
+ ref: handleActiveOptionMount,
654
+ id: activeItemId.current,
655
+ onClick: handleSelectOption,
656
+ active: true
657
+ });
658
+ }
659
+
660
+ return /*#__PURE__*/Object(external_react_["cloneElement"])(option, {
661
+ onClick: handleSelectOption
662
+ });
663
+ });
664
+ }
665
+
666
+ return /*#__PURE__*/external_react_default.a.createElement(ResultsMenu_default.a, Search_extends({
667
+ style: Object(external_lodash_["extend"])({
668
+ overflow: 'auto',
669
+ width: Math.max(anchorWidth !== null && anchorWidth !== void 0 ? anchorWidth : 0, 200)
670
+ }, menuStyle),
671
+ controlledExternally: true,
672
+ maxHeight: maxHeight !== null && maxHeight !== void 0 ? maxHeight : undefined,
673
+ isLoading: isLoadingOptions
674
+ }, Object(external_lodash_["pick"])(otherProps, 'className'), {
675
+ noOptionsMessage: noOptionsMessage,
676
+ footerMessage: footerMessage,
677
+ animateLoading: animateLoading,
678
+ loadingMessage: loadingMessage
679
+ }), options.current);
680
+ };
681
+
682
+ var currentValue = getValue();
683
+ var currentDisplayValue = getDisplayValue();
684
+ var popupIsOpen = isOpen && !!anchorRef.current && isMenuValid();
685
+ var ariaProps = {
686
+ 'aria-activedescendant': activeItemId.current,
687
+ 'aria-expanded': popupIsOpen,
688
+ 'aria-haspopup': isMenuValid(),
689
+ 'aria-controls': popupIsOpen ? popoverId.current : undefined
690
+ };
691
+
692
+ if (!(labelledBy === null || labelledBy === void 0 ? void 0 : labelledBy.length)) {
693
+ ariaProps['aria-label'] = Object(i18n_["_"])('Value input');
694
+ }
695
+
696
+ return /*#__PURE__*/external_react_default.a.createElement(Text_default.a, Search_extends({
697
+ "data-test": "search"
698
+ }, Object(external_lodash_["omit"])(otherProps, 'className'), {
699
+ appearance: "search",
700
+ autoCapitalize: "off",
701
+ autoComplete: "off",
702
+ autoCorrect: "off",
703
+ "data-test-popover-id": popoverId.current,
704
+ "data-test-label": currentDisplayValue,
705
+ "data-test-value": currentValue,
706
+ "data-test-open": popupIsOpen,
707
+ describedBy: describedBy,
708
+ disabled: disabled,
709
+ elementRef: handleAnchorRef,
710
+ error: error,
711
+ inline: inline,
712
+ inputRef: handleInputRef,
713
+ labelledBy: labelledBy,
714
+ name: name,
715
+ onFocus: handleInputFocus,
716
+ onClick: handleInputClick,
717
+ onChange: handleChange,
718
+ onKeyDown: handleInputKeyDown,
719
+ placeholder: placeholder,
720
+ spellCheck: false,
721
+ value: currentDisplayValue
722
+ }, ariaProps), /*#__PURE__*/external_react_default.a.createElement(Popover_default.a, {
723
+ anchor: function () {
724
+ return anchorRef.current;
725
+ }(),
726
+ autoCloseWhenOffScreen: true,
727
+ canCoverAnchor: false,
728
+ defaultPlacement: defaultPlacement,
729
+ id: popoverId.current,
730
+ onRequestClose: handleRequestClose,
731
+ open: popupIsOpen,
732
+ repositionMode: "flip"
733
+ }, renderMenu));
734
+ }
735
+
736
+ Search.propTypes = Search_propTypes;
737
+ Search.Option = Search_Option;
738
+ Search.Divider = Menu_["Divider"];
739
+ Search.Heading = Menu_["Heading"];
740
+ /* harmony default export */ var Search_Search = (Search);
741
+
742
+ // CONCATENATED MODULE: ./src/Search/index.ts
743
+
744
+
745
+
746
+ /***/ }),
747
+
748
+ /***/ 2:
749
+ /***/ (function(module, exports) {
750
+
751
+ module.exports = require("react");
752
+
753
+ /***/ }),
754
+
755
+ /***/ 21:
756
+ /***/ (function(module, exports) {
757
+
758
+ module.exports = require("@splunk/react-ui/Text");
759
+
760
+ /***/ }),
761
+
762
+ /***/ 32:
763
+ /***/ (function(module, exports) {
764
+
765
+ module.exports = require("@splunk/react-ui/ResultsMenu");
766
+
767
+ /***/ }),
768
+
769
+ /***/ 4:
770
+ /***/ (function(module, exports) {
771
+
772
+ module.exports = require("lodash");
773
+
774
+ /***/ }),
775
+
776
+ /***/ 5:
777
+ /***/ (function(module, exports) {
778
+
779
+ module.exports = require("@splunk/ui-utils/i18n");
780
+
781
+ /***/ }),
782
+
783
+ /***/ 9:
784
+ /***/ (function(module, exports) {
785
+
786
+ module.exports = require("@splunk/ui-utils/keyboard");
787
+
788
+ /***/ }),
789
+
790
+ /***/ 97:
791
+ /***/ (function(module, exports) {
792
+
793
+ module.exports = require("@splunk/react-ui/usePrevious");
794
+
795
+ /***/ })
796
+
797
+ /******/ });