|
- 'use strict';
-
- Object.defineProperty(exports, '__esModule', { value: true });
-
- function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }
-
- var React = require('react');
- var React__default = _interopDefault(React);
- require('memoize-one');
- require('@emotion/core');
- require('react-dom');
- require('prop-types');
- var utils = require('../../dist/utils-896a48cb.browser.cjs.js');
- require('../../dist/index-30113876.browser.cjs.js');
- var reactSelect = require('../../dist/Select-b0ada71d.browser.cjs.js');
- require('@emotion/css');
- require('react-input-autosize');
- var stateManager = require('../../dist/stateManager-61815400.browser.cjs.js');
-
- function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
-
- function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
-
- function _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }
- var defaultProps = {
- cacheOptions: false,
- defaultOptions: false,
- filterOption: null,
- isLoading: false
- };
- var makeAsyncSelect = function makeAsyncSelect(SelectComponent) {
- var _class, _temp;
-
- return _temp = _class =
- /*#__PURE__*/
- function (_Component) {
- _inheritsLoose(Async, _Component);
-
- function Async(props) {
- var _this;
-
- _this = _Component.call(this) || this;
- _this.select = void 0;
- _this.lastRequest = void 0;
- _this.mounted = false;
- _this.optionsCache = {};
-
- _this.handleInputChange = function (newValue, actionMeta) {
- var _this$props = _this.props,
- cacheOptions = _this$props.cacheOptions,
- onInputChange = _this$props.onInputChange; // TODO
-
- var inputValue = utils.handleInputChange(newValue, actionMeta, onInputChange);
-
- if (!inputValue) {
- delete _this.lastRequest;
-
- _this.setState({
- inputValue: '',
- loadedInputValue: '',
- loadedOptions: [],
- isLoading: false,
- passEmptyOptions: false
- });
-
- return;
- }
-
- if (cacheOptions && _this.optionsCache[inputValue]) {
- _this.setState({
- inputValue: inputValue,
- loadedInputValue: inputValue,
- loadedOptions: _this.optionsCache[inputValue],
- isLoading: false,
- passEmptyOptions: false
- });
- } else {
- var request = _this.lastRequest = {};
-
- _this.setState({
- inputValue: inputValue,
- isLoading: true,
- passEmptyOptions: !_this.state.loadedInputValue
- }, function () {
- _this.loadOptions(inputValue, function (options) {
- if (!_this.mounted) return;
-
- if (options) {
- _this.optionsCache[inputValue] = options;
- }
-
- if (request !== _this.lastRequest) return;
- delete _this.lastRequest;
-
- _this.setState({
- isLoading: false,
- loadedInputValue: inputValue,
- loadedOptions: options || [],
- passEmptyOptions: false
- });
- });
- });
- }
-
- return inputValue;
- };
-
- _this.state = {
- defaultOptions: Array.isArray(props.defaultOptions) ? props.defaultOptions : undefined,
- inputValue: typeof props.inputValue !== 'undefined' ? props.inputValue : '',
- isLoading: props.defaultOptions === true,
- loadedOptions: [],
- passEmptyOptions: false
- };
- return _this;
- }
-
- var _proto = Async.prototype;
-
- _proto.componentDidMount = function componentDidMount() {
- var _this2 = this;
-
- this.mounted = true;
- var defaultOptions = this.props.defaultOptions;
- var inputValue = this.state.inputValue;
-
- if (defaultOptions === true) {
- this.loadOptions(inputValue, function (options) {
- if (!_this2.mounted) return;
- var isLoading = !!_this2.lastRequest;
-
- _this2.setState({
- defaultOptions: options || [],
- isLoading: isLoading
- });
- });
- }
- };
-
- _proto.UNSAFE_componentWillReceiveProps = function UNSAFE_componentWillReceiveProps(nextProps) {
- // if the cacheOptions prop changes, clear the cache
- if (nextProps.cacheOptions !== this.props.cacheOptions) {
- this.optionsCache = {};
- }
-
- if (nextProps.defaultOptions !== this.props.defaultOptions) {
- this.setState({
- defaultOptions: Array.isArray(nextProps.defaultOptions) ? nextProps.defaultOptions : undefined
- });
- }
- };
-
- _proto.componentWillUnmount = function componentWillUnmount() {
- this.mounted = false;
- };
-
- _proto.focus = function focus() {
- this.select.focus();
- };
-
- _proto.blur = function blur() {
- this.select.blur();
- };
-
- _proto.loadOptions = function loadOptions(inputValue, callback) {
- var loadOptions = this.props.loadOptions;
- if (!loadOptions) return callback();
- var loader = loadOptions(inputValue, callback);
-
- if (loader && typeof loader.then === 'function') {
- loader.then(callback, function () {
- return callback();
- });
- }
- };
-
- _proto.render = function render() {
- var _this3 = this;
-
- var _this$props2 = this.props,
- loadOptions = _this$props2.loadOptions,
- isLoadingProp = _this$props2.isLoading,
- props = _objectWithoutPropertiesLoose(_this$props2, ["loadOptions", "isLoading"]);
-
- var _this$state = this.state,
- defaultOptions = _this$state.defaultOptions,
- inputValue = _this$state.inputValue,
- isLoading = _this$state.isLoading,
- loadedInputValue = _this$state.loadedInputValue,
- loadedOptions = _this$state.loadedOptions,
- passEmptyOptions = _this$state.passEmptyOptions;
- var options = passEmptyOptions ? [] : inputValue && loadedInputValue ? loadedOptions : defaultOptions || [];
- return React__default.createElement(SelectComponent, _extends({}, props, {
- ref: function ref(_ref) {
- _this3.select = _ref;
- },
- options: options,
- isLoading: isLoading || isLoadingProp,
- onInputChange: this.handleInputChange
- }));
- };
-
- return Async;
- }(React.Component), _class.defaultProps = defaultProps, _temp;
- };
- var SelectState = stateManager.manageState(reactSelect.Select);
- var Async = makeAsyncSelect(SelectState);
-
- exports.default = Async;
- exports.defaultProps = defaultProps;
- exports.makeAsyncSelect = makeAsyncSelect;
|