@orfeas126/box-ui-elements
Version:
Box UI Elements
982 lines (865 loc) • 275 kB
JavaScript
/*!
* 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