UNPKG

@orfeas126/box-ui-elements

Version:
982 lines (865 loc) 275 kB
/*! * Box UI Element * * Copyright 2019 Box, Inc. All rights reserved. * * This product includes software developed by Box, Inc. ("Box") * (http://www.box.com) * * ALL BOX SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. * IN NO EVENT SHALL BOX BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * * See the Box license for the specific language governing permissions * and limitations under the license. */ "use strict"; (globalThis["webpackChunk_orfeas126_box_ui_elements"] = globalThis["webpackChunk_orfeas126_box_ui_elements"] || []).push([["metadata-sidebar"],{ /***/ "./src/common/constants.js": /*!*********************************!*\ !*** ./src/common/constants.js ***! \*********************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ ITEM_TYPE_FILE: () => (/* binding */ ITEM_TYPE_FILE), /* harmony export */ ITEM_TYPE_FOLDER: () => (/* binding */ ITEM_TYPE_FOLDER), /* harmony export */ ITEM_TYPE_HUBS: () => (/* binding */ ITEM_TYPE_HUBS), /* harmony export */ ITEM_TYPE_WEBLINK: () => (/* binding */ ITEM_TYPE_WEBLINK), /* harmony export */ JSON_PATCH_OP_ADD: () => (/* binding */ JSON_PATCH_OP_ADD), /* harmony export */ JSON_PATCH_OP_REMOVE: () => (/* binding */ JSON_PATCH_OP_REMOVE), /* harmony export */ JSON_PATCH_OP_REPLACE: () => (/* binding */ JSON_PATCH_OP_REPLACE), /* harmony export */ JSON_PATCH_OP_TEST: () => (/* binding */ JSON_PATCH_OP_TEST), /* harmony export */ METADATA_FIELD_TYPE_ENUM: () => (/* binding */ METADATA_FIELD_TYPE_ENUM), /* harmony export */ METADATA_FIELD_TYPE_MULTISELECT: () => (/* binding */ METADATA_FIELD_TYPE_MULTISELECT) /* harmony export */ }); const ITEM_TYPE_FILE = 'file'; const ITEM_TYPE_FOLDER = 'folder'; const ITEM_TYPE_HUBS = 'hubs'; const ITEM_TYPE_WEBLINK = 'web_link'; const JSON_PATCH_OP_ADD = 'add'; const JSON_PATCH_OP_REMOVE = 'remove'; const JSON_PATCH_OP_REPLACE = 'replace'; const JSON_PATCH_OP_TEST = 'test'; const METADATA_FIELD_TYPE_ENUM = 'enum'; const METADATA_FIELD_TYPE_MULTISELECT = 'multiSelect'; /***/ }), /***/ "./src/common/keyboard-events.js": /*!***************************************!*\ !*** ./src/common/keyboard-events.js ***! \***************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ ARROW_DOWN: () => (/* binding */ ARROW_DOWN), /* harmony export */ ARROW_UP: () => (/* binding */ ARROW_UP), /* harmony export */ ENTER: () => (/* binding */ ENTER), /* harmony export */ ESCAPE: () => (/* binding */ ESCAPE), /* harmony export */ SPACE: () => (/* binding */ SPACE), /* harmony export */ TAB: () => (/* binding */ TAB) /* harmony export */ }); const ARROW_DOWN = 'ArrowDown'; const ARROW_UP = 'ArrowUp'; const ESCAPE = 'Escape'; const ENTER = 'Enter'; const SPACE = ' '; const TAB = 'Tab'; /***/ }), /***/ "./src/components/button-group/ButtonGroup.tsx": /*!*****************************************************!*\ !*** ./src/components/button-group/ButtonGroup.tsx ***! \*****************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) /* harmony export */ }); /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react"); /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__); /* harmony import */ var _ButtonGroup_scss__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./ButtonGroup.scss */ "./src/components/button-group/ButtonGroup.scss"); const ButtonGroup = ({ children, className = '', isDisabled }) => /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("div", { className: `btn-group ${className} ${isDisabled ? 'is-disabled' : ''}` }, children); /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (ButtonGroup); /***/ }), /***/ "./src/components/collapsible/Collapsible.tsx": /*!****************************************************!*\ !*** ./src/components/collapsible/Collapsible.tsx ***! \****************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) /* harmony export */ }); /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react"); /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__); /* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! classnames */ "./node_modules/classnames/index.js"); /* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(classnames__WEBPACK_IMPORTED_MODULE_1__); /* harmony import */ var lodash_omit__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! lodash/omit */ "./node_modules/lodash/omit.js"); /* harmony import */ var lodash_omit__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(lodash_omit__WEBPACK_IMPORTED_MODULE_2__); /* harmony import */ var react_animate_height__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! react-animate-height */ "./node_modules/react-animate-height/dist/esm/index.js"); /* harmony import */ var _common_variables__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../common/variables */ "./src/common/variables.js"); /* harmony import */ var _icons_general_IconCaretDown__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../icons/general/IconCaretDown */ "./src/icons/general/IconCaretDown.tsx"); /* harmony import */ var _plain_button__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../plain-button */ "./src/components/plain-button/index.ts"); /* harmony import */ var _button__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../button */ "./src/components/button/index.ts"); /* harmony import */ var _styles_variables__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../styles/variables */ "./src/styles/variables.ts"); /* harmony import */ var _Collapsible_scss__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./Collapsible.scss */ "./src/components/collapsible/Collapsible.scss"); function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); } function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; } function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; } function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } // @ts-ignore flow import class Collapsible extends react__WEBPACK_IMPORTED_MODULE_0__.PureComponent { constructor(props) { super(props); _defineProperty(this, "toggleVisibility", () => { const { onOpen, onClose } = this.props; this.setState(prevState => ({ isOpen: !prevState.isOpen }), () => { const { isOpen } = this.state; if (isOpen && onOpen) { onOpen(this); } else if (!isOpen && onClose) { onClose(this); } }); }); this.state = { isOpen: props.isOpen }; } render() { const { isOpen } = this.state; const { animationDuration, buttonProps = {}, children, className, isBordered, hasStickyHeader, headerActionItems, title } = this.props; const sectionClassName = classnames__WEBPACK_IMPORTED_MODULE_1___default()('collapsible-card', { 'is-open': isOpen }, { 'is-bordered': isBordered }, className); const resinTagTarget = _common_variables__WEBPACK_IMPORTED_MODULE_4__.RESIN_TAG_TARGET; const modifiedButtonProps = lodash_omit__WEBPACK_IMPORTED_MODULE_2___default()(buttonProps, [resinTagTarget]); const interactionTarget = buttonProps[resinTagTarget]; const buttonClassName = hasStickyHeader ? 'collapsible-card-header has-sticky-header' : 'collapsible-card-header'; if (interactionTarget) { modifiedButtonProps[resinTagTarget] = `${interactionTarget}${isOpen ? 'collapse' : 'expand'}`; } return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("div", { className: sectionClassName }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("div", { className: buttonClassName }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_plain_button__WEBPACK_IMPORTED_MODULE_6__["default"], _extends({}, modifiedButtonProps, { "aria-expanded": isOpen, className: "collapsible-card-title", onClick: this.toggleVisibility, type: _button__WEBPACK_IMPORTED_MODULE_7__.ButtonType.BUTTON }), title, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_icons_general_IconCaretDown__WEBPACK_IMPORTED_MODULE_5__["default"], { className: "collapsible-card-header-caret", color: _styles_variables__WEBPACK_IMPORTED_MODULE_8__.bdlGray50, width: 8 })), !!headerActionItems && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("span", { className: "bdl-Collapsible-actionItems" }, headerActionItems)), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(react_animate_height__WEBPACK_IMPORTED_MODULE_3__["default"], { duration: animationDuration, height: isOpen ? 'auto' : 0 }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("div", { className: "collapsible-card-content" }, children))); } } _defineProperty(Collapsible, "defaultProps", { buttonProps: {}, className: '', isOpen: true, animationDuration: 100 }); /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (Collapsible); /***/ }), /***/ "./src/components/date-picker/index.tsx": /*!**********************************************!*\ !*** ./src/components/date-picker/index.tsx ***! \**********************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ DateFormat: () => (/* reexport safe */ _DatePicker__WEBPACK_IMPORTED_MODULE_0__.DateFormat), /* harmony export */ "default": () => (/* reexport safe */ _DatePicker__WEBPACK_IMPORTED_MODULE_0__["default"]) /* harmony export */ }); /* harmony import */ var _DatePicker__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./DatePicker */ "./src/components/date-picker/DatePicker.tsx"); /***/ }), /***/ "./src/components/radio/RadioButton.tsx": /*!**********************************************!*\ !*** ./src/components/radio/RadioButton.tsx ***! \**********************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) /* harmony export */ }); /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react"); /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__); /* harmony import */ var _RadioButton_scss__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./RadioButton.scss */ "./src/components/radio/RadioButton.scss"); const _excluded = ["isDisabled", "isSelected", "description", "hideLabel", "label", "name", "value"]; function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); } function _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; } function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; } // @NOTE: readonly is not a valid attribute for input type radio so // this avoids the propType error that "checked" is set without "onChange" // eslint-disable-next-line @typescript-eslint/no-empty-function const onChangeStub = () => {}; const RadioButton = _ref => { let { isDisabled, isSelected = false, description, hideLabel = false, label, name, value } = _ref, rest = _objectWithoutProperties(_ref, _excluded); return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("div", { className: "radio-container" }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("label", { className: "radio-label" }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("input", _extends({ checked: isSelected, disabled: isDisabled, name: name, onChange: onChangeStub, type: "radio", value: value }, rest)), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("span", null), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("span", { className: hideLabel ? 'accessibility-hidden' : '' }, label)), description ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("div", { className: "radio-description" }, description) : null); }; /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (RadioButton); /***/ }), /***/ "./src/components/radio/RadioButtonField.tsx": /*!***************************************************!*\ !*** ./src/components/radio/RadioButtonField.tsx ***! \***************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) /* harmony export */ }); /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react"); /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__); /* harmony import */ var _RadioButton__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./RadioButton */ "./src/components/radio/RadioButton.tsx"); const _excluded = ["field", "value"], _excluded2 = ["value"]; function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); } function _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; } function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; } const RadioButtonField = _ref => { let { field, value } = _ref, rest = _objectWithoutProperties(_ref, _excluded); if (!field) { return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_RadioButton__WEBPACK_IMPORTED_MODULE_1__["default"], _extends({ value: value }, rest)); } const { value: fieldValue } = field, fieldRest = _objectWithoutProperties(field, _excluded2); return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_RadioButton__WEBPACK_IMPORTED_MODULE_1__["default"], _extends({}, fieldRest, rest, { value: value, isSelected: value === fieldValue })); }; /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (RadioButtonField); /***/ }), /***/ "./src/components/radio/RadioGroup.tsx": /*!*********************************************!*\ !*** ./src/components/radio/RadioGroup.tsx ***! \*********************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) /* harmony export */ }); /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react"); /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__); function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; } function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; } function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } class RadioGroup extends react__WEBPACK_IMPORTED_MODULE_0__.Component { constructor(props) { super(props); // @TODO: think about adding componentDidUpdate or gDSFP // to update the internal state value based on new props value _defineProperty(this, "onChangeHandler", event => { const { target } = event; const { onChange } = this.props; if (target instanceof HTMLInputElement) { this.setState({ value: target.value }); } if (onChange) { onChange(event); } }); this.state = { value: props.value }; } render() { const { children, className, name } = this.props; const { value: stateValue } = this.state; return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("div", { className: `radio-group ${className}`, onChange: this.onChangeHandler }, react__WEBPACK_IMPORTED_MODULE_0__.Children.map(children, radio => { const { value } = radio.props; return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.cloneElement(radio, { name, isSelected: value === stateValue }); })); } } _defineProperty(RadioGroup, "defaultProps", { className: '' }); /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (RadioGroup); /***/ }), /***/ "./src/components/radio/RadioGroupField.tsx": /*!**************************************************!*\ !*** ./src/components/radio/RadioGroupField.tsx ***! \**************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) /* harmony export */ }); /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react"); /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__); /* harmony import */ var _RadioGroup__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./RadioGroup */ "./src/components/radio/RadioGroup.tsx"); const _excluded = ["field"]; function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); } function _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; } function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; } const RadioGroupField = _ref => { let { field } = _ref, rest = _objectWithoutProperties(_ref, _excluded); if (!field) { return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_RadioGroup__WEBPACK_IMPORTED_MODULE_1__["default"], _extends({ value: "" }, rest)); } return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_RadioGroup__WEBPACK_IMPORTED_MODULE_1__["default"], _extends({}, field, rest)); }; /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (RadioGroupField); /***/ }), /***/ "./src/components/radio/index.ts": /*!***************************************!*\ !*** ./src/components/radio/index.ts ***! \***************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ RadioButton: () => (/* reexport safe */ _RadioButton__WEBPACK_IMPORTED_MODULE_0__["default"]), /* harmony export */ RadioButtonField: () => (/* reexport safe */ _RadioButtonField__WEBPACK_IMPORTED_MODULE_1__["default"]), /* harmony export */ RadioGroup: () => (/* reexport safe */ _RadioGroup__WEBPACK_IMPORTED_MODULE_2__["default"]), /* harmony export */ RadioGroupField: () => (/* reexport safe */ _RadioGroupField__WEBPACK_IMPORTED_MODULE_3__["default"]) /* harmony export */ }); /* harmony import */ var _RadioButton__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./RadioButton */ "./src/components/radio/RadioButton.tsx"); /* harmony import */ var _RadioButtonField__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./RadioButtonField */ "./src/components/radio/RadioButtonField.tsx"); /* harmony import */ var _RadioGroup__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./RadioGroup */ "./src/components/radio/RadioGroup.tsx"); /* harmony import */ var _RadioGroupField__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./RadioGroupField */ "./src/components/radio/RadioGroupField.tsx"); /***/ }), /***/ "./src/components/search-form/SearchActions.tsx": /*!******************************************************!*\ !*** ./src/components/search-form/SearchActions.tsx ***! \******************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ SearchActionsBase: () => (/* binding */ SearchActions), /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) /* harmony export */ }); /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react"); /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__); /* harmony import */ var react_intl__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! react-intl */ "./node_modules/react-intl/lib/src/components/injectIntl.js"); /* harmony import */ var _icon_fill_ClearBadge16__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../icon/fill/ClearBadge16 */ "./src/icon/fill/ClearBadge16.tsx"); /* harmony import */ var _icon_fill_Search16__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../icon/fill/Search16 */ "./src/icon/fill/Search16.tsx"); /* harmony import */ var _loading_indicator_makeLoadable__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../loading-indicator/makeLoadable */ "./src/components/loading-indicator/makeLoadable.tsx"); /* harmony import */ var _messages__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./messages */ "./src/components/search-form/messages.ts"); const SearchActions = ({ hasSubmitAction, intl, onClear }) => { const { formatMessage } = intl; return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("div", { className: "action-buttons" }, hasSubmitAction ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("button", { type: "submit", className: "action-button search-button", title: formatMessage(_messages__WEBPACK_IMPORTED_MODULE_4__["default"].searchButtonTitle) }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_icon_fill_Search16__WEBPACK_IMPORTED_MODULE_2__["default"], null)) : /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("div", { className: "action-button search-button" }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_icon_fill_Search16__WEBPACK_IMPORTED_MODULE_2__["default"], null)), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("button", { className: "action-button clear-button", onClick: onClear, title: formatMessage(_messages__WEBPACK_IMPORTED_MODULE_4__["default"].clearButtonTitle), type: "button" }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_icon_fill_ClearBadge16__WEBPACK_IMPORTED_MODULE_1__["default"], null))); }; /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,_loading_indicator_makeLoadable__WEBPACK_IMPORTED_MODULE_3__["default"])((0,react_intl__WEBPACK_IMPORTED_MODULE_5__["default"])(SearchActions))); /***/ }), /***/ "./src/components/search-form/SearchForm.js": /*!**************************************************!*\ !*** ./src/components/search-form/SearchForm.js ***! \**************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ SearchFormBaseIntl: () => (/* binding */ SearchFormBaseIntl), /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) /* harmony export */ }); /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react"); /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__); /* harmony import */ var react_intl__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! react-intl */ "./node_modules/react-intl/lib/src/components/injectIntl.js"); /* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! classnames */ "./node_modules/classnames/index.js"); /* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(classnames__WEBPACK_IMPORTED_MODULE_1__); /* harmony import */ var lodash_omit__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! lodash/omit */ "./node_modules/lodash/omit.js"); /* harmony import */ var lodash_omit__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(lodash_omit__WEBPACK_IMPORTED_MODULE_2__); /* harmony import */ var _SearchActions__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./SearchActions */ "./src/components/search-form/SearchActions.tsx"); /* harmony import */ var _messages__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./messages */ "./src/components/search-form/messages.ts"); /* harmony import */ var _SearchForm_scss__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./SearchForm.scss */ "./src/components/search-form/SearchForm.scss"); const _excluded = ["action", "className", "innerRef", "intl", "isLoading", "method", "name", "queryParams", "onSubmit", "useClearButton"]; function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); } function _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; } function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; } function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; } function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; } function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } // $FlowFixMe // $FlowFixMe class SearchFormBase extends react__WEBPACK_IMPORTED_MODULE_0__.Component { constructor(...args) { super(...args); _defineProperty(this, "state", { isEmpty: true }); _defineProperty(this, "onClearHandler", event => { const { onChange, shouldPreventClearEventPropagation } = this.props; if (shouldPreventClearEventPropagation) { event.stopPropagation(); } if (this.searchInput) { this.searchInput.value = ''; } this.setState({ isEmpty: true }); if (onChange) { onChange(''); } }); _defineProperty(this, "onChangeHandler", ({ target }) => { const { value } = target; const { onChange } = this.props; this.setState({ isEmpty: !value || !value.trim().length }); if (onChange) { onChange(value); } }); _defineProperty(this, "onSubmitHandler", event => { const { value } = event.target.elements[0]; const { onSubmit } = this.props; if (onSubmit) { onSubmit(value, event); } }); _defineProperty(this, "setInputRef", element => { this.searchInput = element; if (this.props.getSearchInput) { this.props.getSearchInput(this.searchInput); } }); } static getDerivedStateFromProps(props) { const { value } = props; if (value && !!value.trim()) { return { isEmpty: true }; } return null; } render() { const _this$props = this.props, { action, className, innerRef, intl, isLoading, method, name, queryParams, onSubmit, useClearButton } = _this$props, rest = _objectWithoutProperties(_this$props, _excluded); const { isEmpty } = this.state; const inputProps = lodash_omit__WEBPACK_IMPORTED_MODULE_2___default()(rest, ['getSearchInput', 'onChange', 'onSubmit', 'required', 'shouldPreventClearEventPropagation']); const { formatMessage } = intl; const classes = classnames__WEBPACK_IMPORTED_MODULE_1___default()(className, 'search-input-container'); const formClassNames = classnames__WEBPACK_IMPORTED_MODULE_1___default()('search-form', { 'is-empty': isEmpty, 'use-clear-button': useClearButton }); const hiddenInputs = Object.keys(queryParams).map((param, index) => /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("input", { key: index, name: param, type: "hidden", value: queryParams[param] })); // @NOTE Prevent errors from React about controlled inputs const onChangeStub = () => {}; return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("div", { ref: innerRef, className: classes }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("form", { action: action, className: formClassNames, method: method, onChange: this.onChangeHandler, onSubmit: this.onSubmitHandler, role: "search" }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("input", _extends({ ref: this.setInputRef, "aria-label": formatMessage(_messages__WEBPACK_IMPORTED_MODULE_4__["default"].searchLabel), autoComplete: "off", className: "search-input", name: name, onChange: onChangeStub, type: "search" }, inputProps)), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_SearchActions__WEBPACK_IMPORTED_MODULE_3__["default"], { hasSubmitAction: !!onSubmit, isLoading: isLoading, loadingIndicatorProps: { className: 'search-form-loading-indicator' }, onClear: this.onClearHandler }), hiddenInputs)); } } _defineProperty(SearchFormBase, "defaultProps", { action: '', method: 'get', name: 'search', queryParams: {}, useClearButton: false }); const SearchFormBaseIntl = (0,react_intl__WEBPACK_IMPORTED_MODULE_6__["default"])(SearchFormBase); const SearchForm = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.forwardRef((props, ref) => /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(SearchFormBaseIntl, _extends({}, props, { innerRef: ref }))); SearchForm.displayName = 'SearchForm'; /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (SearchForm); /***/ }), /***/ "./src/components/search-form/messages.ts": /*!************************************************!*\ !*** ./src/components/search-form/messages.ts ***! \************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) /* harmony export */ }); /* harmony import */ var react_intl__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react-intl */ "./node_modules/react-intl/lib/index.js"); const messages = (0,react_intl__WEBPACK_IMPORTED_MODULE_0__.defineMessages)({ clearButtonTitle: { "id": "boxui.searchForm.clearButtonTitle", "defaultMessage": "Clear" }, searchButtonTitle: { "id": "boxui.searchForm.searchButtonTitle", "defaultMessage": "Search" }, searchLabel: { "id": "boxui.searchForm.searchLabel", "defaultMessage": "Search query" } }); /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (messages); /***/ }), /***/ "./src/components/select-button/SelectButton.js": /*!******************************************************!*\ !*** ./src/components/select-button/SelectButton.js ***! \******************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) /* harmony export */ }); /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react"); /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__); /* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! classnames */ "./node_modules/classnames/index.js"); /* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(classnames__WEBPACK_IMPORTED_MODULE_1__); /* harmony import */ var _tooltip__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../tooltip */ "./src/components/tooltip/index.ts"); /* harmony import */ var _SelectButton_scss__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./SelectButton.scss */ "./src/components/select-button/SelectButton.scss"); const _excluded = ["children", "className", "error", "errorTooltipPosition", "isDisabled", "tooltipTetherClassName"]; function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); } function _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; } function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; } const SelectButton = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.forwardRef((_ref, ref) => { let { children, className = '', error, errorTooltipPosition = 'middle-right', isDisabled = false, tooltipTetherClassName } = _ref, rest = _objectWithoutProperties(_ref, _excluded); return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_tooltip__WEBPACK_IMPORTED_MODULE_2__["default"], { isShown: !!error, position: errorTooltipPosition, tetherElementClassName: tooltipTetherClassName, text: error, theme: "error" }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("button", _extends({ className: classnames__WEBPACK_IMPORTED_MODULE_1___default()(className, 'select-button', 'bdl-SelectButton', { 'is-invalid': !!error }), disabled: isDisabled, ref: ref, type: "button" }, rest), children)); }); /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (SelectButton); /***/ }), /***/ "./src/components/select-button/index.js": /*!***********************************************!*\ !*** ./src/components/select-button/index.js ***! \***********************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "default": () => (/* reexport safe */ _SelectButton__WEBPACK_IMPORTED_MODULE_0__["default"]) /* harmony export */ }); /* harmony import */ var _SelectButton__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./SelectButton */ "./src/components/select-button/SelectButton.js"); /***/ }), /***/ "./src/components/select-field/BaseSelectField.js": /*!********************************************************!*\ !*** ./src/components/select-field/BaseSelectField.js ***! \********************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ BaseSelectFieldBase: () => (/* binding */ BaseSelectField), /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) /* harmony export */ }); /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react"); /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__); /* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! classnames */ "./node_modules/classnames/index.js"); /* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(classnames__WEBPACK_IMPORTED_MODULE_1__); /* harmony import */ var lodash_uniqueId__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! lodash/uniqueId */ "./node_modules/lodash/uniqueId.js"); /* harmony import */ var lodash_uniqueId__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(lodash_uniqueId__WEBPACK_IMPORTED_MODULE_2__); /* harmony import */ var lodash_findIndex__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! lodash/findIndex */ "./node_modules/lodash/findIndex.js"); /* harmony import */ var lodash_findIndex__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(lodash_findIndex__WEBPACK_IMPORTED_MODULE_3__); /* harmony import */ var react_intl__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! react-intl */ "./node_modules/react-intl/lib/src/components/message.js"); /* harmony import */ var react_intl__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! react-intl */ "./node_modules/react-intl/lib/src/components/injectIntl.js"); /* harmony import */ var _utils_dom__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../utils/dom */ "./src/utils/dom.js"); /* harmony import */ var _icons_general_IconCheck__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../icons/general/IconCheck */ "./src/icons/general/IconCheck.tsx"); /* harmony import */ var _select_button__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../select-button */ "./src/components/select-button/index.js"); /* harmony import */ var _datalist_item__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../datalist-item */ "./src/components/datalist-item/index.ts"); /* harmony import */ var _popper__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../popper */ "./src/components/popper/index.js"); /* harmony import */ var _SelectFieldDropdown__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./SelectFieldDropdown */ "./src/components/select-field/SelectFieldDropdown.js"); /* harmony import */ var _popper_constants__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../popper/constants */ "./src/components/popper/constants.js"); /* harmony import */ var _search_form_SearchForm__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../search-form/SearchForm */ "./src/components/search-form/SearchForm.js"); /* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./constants */ "./src/components/select-field/constants.js"); /* harmony import */ var _common_keyboard_events__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ../../common/keyboard-events */ "./src/common/keyboard-events.js"); /* harmony import */ var _messages__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./messages */ "./src/components/select-field/messages.js"); /* harmony import */ var _SelectField_scss__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./SelectField.scss */ "./src/components/select-field/SelectField.scss"); function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); } function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; } function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; } function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; } function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } function stopDefaultEvent(event) { event.preventDefault(); event.stopPropagation(); } function toggleOption(options, value) { const index = options.indexOf(value); if (index === -1) { options.push(value); } else { options.splice(index, 1); } } function defaultOptionRenderer({ displayText }) { return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("span", { className: "bdl-SelectField-optionText", title: displayText }, displayText); } class BaseSelectField extends react__WEBPACK_IMPORTED_MODULE_0__.Component { constructor(props) { super(props); _defineProperty(this, "updateSearchText", text => { const { options } = this.props; const optionIndex = lodash_findIndex__WEBPACK_IMPORTED_MODULE_3___default()(options, element => element.displayText.toLowerCase().includes(text.toLowerCase())); if (optionIndex >= 0) { this.setActiveItem(optionIndex); } this.setState({ searchText: text }); }); _defineProperty(this, "handleDocumentClick", event => { const container = this.selectFieldContainerRef.current; const isInside = container && event.target instanceof Node && container.contains(event.target) || container === event.target; if (!isInside) { this.closeDropdown(); } }); _defineProperty(this, "setActiveItem", (index, shouldScrollIntoView = true) => { this.setState({ activeItemIndex: index, shouldScrollIntoView }); if (index === -1) { this.setActiveItemID(null); } }); _defineProperty(this, "setActiveItemID", id => { const { shouldScrollIntoView } = this.state; const itemEl = id ? document.getElementById(id) : null; this.setState({ activeItemID: id, shouldScrollIntoView: false }, () => { if (shouldScrollIntoView) { (0,_utils_dom__WEBPACK_IMPORTED_MODULE_4__.scrollIntoView)(itemEl, { block: 'nearest' }); } }); }); _defineProperty(this, "handleChange", selectedItems => { const { onChange } = this.props; if (onChange) { onChange(selectedItems); } }); _defineProperty(this, "handleOptionSelect", selectedItem => { const { onOptionSelect } = this.props; if (onOptionSelect) { onOptionSelect(selectedItem); } }); _defineProperty(this, "handleButtonClick", () => { if (this.state.isOpen) { this.closeDropdown(); } else { this.openDropdown(); } }); _defineProperty(this, "handleClearClick", () => { this.handleChange([]); }); _defineProperty(this, "handleButtonKeyDown", event => { const { activeItemIndex } = this.state; // If user is interacting with the select dropdown, don't close on space/enter (i.e. prevent click event) if ((event.key === _common_keyboard_events__WEBPACK_IMPORTED_MODULE_13__.SPACE || event.key === _common_keyboard_events__WEBPACK_IMPORTED_MODULE_13__.ENTER) && activeItemIndex !== -1) { event.preventDefault(); } }); _defineProperty(this, "handleBlur", event => { const { isOpen } = this.state; const { b