@data-driven-forms/common
Advanced tools
Comparing version 3.19.3 to 3.20.0
import _extends from "@babel/runtime/helpers/extends"; | ||
import _typeof from "@babel/runtime/helpers/typeof"; | ||
import _defineProperty from "@babel/runtime/helpers/defineProperty"; | ||
import _slicedToArray from "@babel/runtime/helpers/slicedToArray"; | ||
import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties"; | ||
import _toConsumableArray from "@babel/runtime/helpers/toConsumableArray"; | ||
var _excluded = ["invalid", "classNamePrefix", "simpleValue", "isMulti", "pluckSingleValue", "options", "loadOptions", "loadingMessage", "loadingProps", "selectVariant", "updatingMessage", "noOptionsMessage", "value", "onChange", "loadOptionsChangeCounter", "SelectComponent", "noValueUpdates", "optionsTransformer"]; | ||
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; } | ||
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; } | ||
/* eslint-disable react-hooks/exhaustive-deps */ | ||
import React, { useEffect, useReducer } from 'react'; | ||
import React from 'react'; | ||
import PropTypes from 'prop-types'; | ||
import clsx from 'clsx'; | ||
import isEqual from 'lodash/isEqual'; | ||
import fnToString from '../utils/fn-to-string'; | ||
import reducer, { init } from './reducer'; | ||
import useIsMounted from '../hooks/use-is-mounted'; | ||
import useSelect from '../use-select/use-select'; | ||
var getSelectValue = function getSelectValue(stateValue, simpleValue, isMulti, allOptions) { | ||
var enhancedValue = stateValue; | ||
var hasSelectAll = isMulti && allOptions.find(function (_ref) { | ||
var selectAll = _ref.selectAll; | ||
return selectAll; | ||
}); | ||
var hasSelectNone = isMulti && allOptions.find(function (_ref2) { | ||
var selectNone = _ref2.selectNone; | ||
return selectNone; | ||
}); | ||
var Select = function Select(_ref) { | ||
var invalid = _ref.invalid, | ||
classNamePrefix = _ref.classNamePrefix, | ||
simpleValue = _ref.simpleValue, | ||
isMulti = _ref.isMulti, | ||
pluckSingleValue = _ref.pluckSingleValue, | ||
propsOptions = _ref.options, | ||
loadOptions = _ref.loadOptions, | ||
loadingMessage = _ref.loadingMessage, | ||
loadingProps = _ref.loadingProps, | ||
selectVariant = _ref.selectVariant, | ||
updatingMessage = _ref.updatingMessage, | ||
noOptionsMessage = _ref.noOptionsMessage, | ||
value = _ref.value, | ||
onChange = _ref.onChange, | ||
loadOptionsChangeCounter = _ref.loadOptionsChangeCounter, | ||
SelectComponent = _ref.SelectComponent, | ||
noValueUpdates = _ref.noValueUpdates, | ||
optionsTransformer = _ref.optionsTransformer, | ||
props = _objectWithoutProperties(_ref, _excluded); | ||
if (hasSelectAll || hasSelectNone) { | ||
enhancedValue = enhancedValue || []; | ||
var optionsLength = allOptions.filter(function (_ref3) { | ||
var selectAll = _ref3.selectAll, | ||
selectNone = _ref3.selectNone, | ||
divider = _ref3.divider, | ||
options = _ref3.options; | ||
return !selectAll && !selectNone && !divider && !options; | ||
}).length; | ||
var selectedAll = optionsLength === enhancedValue.length; | ||
var selectedNone = enhancedValue.length === 0; | ||
enhancedValue = [].concat(_toConsumableArray(enhancedValue), _toConsumableArray(hasSelectAll && selectedAll ? [simpleValue ? hasSelectAll.value : hasSelectAll] : []), _toConsumableArray(hasSelectNone && selectedNone ? [simpleValue ? hasSelectNone.value : hasSelectNone] : [])); | ||
} | ||
return simpleValue ? allOptions.filter(function (_ref4) { | ||
var value = _ref4.value; | ||
return isMulti ? enhancedValue.includes(value) : isEqual(value, enhancedValue); | ||
}) : enhancedValue; | ||
}; | ||
var handleSelectChange = function handleSelectChange(option, simpleValue, isMulti, onChange, allOptions, removeSelectAll, removeSelectNone) { | ||
var enhanceOption = option; | ||
if (removeSelectNone) { | ||
enhanceOption = enhanceOption.filter(function (_ref5) { | ||
var selectNone = _ref5.selectNone; | ||
return !selectNone; | ||
}); | ||
} else if (removeSelectAll) { | ||
enhanceOption = enhanceOption.filter(function (_ref6) { | ||
var selectAll = _ref6.selectAll; | ||
return !selectAll; | ||
}); | ||
} | ||
var sanitizedOption = !enhanceOption && isMulti ? [] : enhanceOption; | ||
if (isMulti && sanitizedOption.find(function (_ref7) { | ||
var selectAll = _ref7.selectAll; | ||
return selectAll; | ||
})) { | ||
return onChange(allOptions.filter(function (_ref8) { | ||
var selectAll = _ref8.selectAll, | ||
selectNone = _ref8.selectNone, | ||
value = _ref8.value; | ||
return !selectAll && !selectNone && value; | ||
}).map(function (_ref9) { | ||
var value = _ref9.value; | ||
return value; | ||
})); | ||
} | ||
if (isMulti && sanitizedOption.find(function (_ref10) { | ||
var selectNone = _ref10.selectNone; | ||
return selectNone; | ||
})) { | ||
return onChange([]); | ||
} | ||
return simpleValue ? onChange(isMulti ? sanitizedOption.map(function (item) { | ||
return item.value; | ||
}) : sanitizedOption ? sanitizedOption.value : undefined) : onChange(sanitizedOption); | ||
}; | ||
var Select = function Select(_ref11) { | ||
var invalid = _ref11.invalid, | ||
classNamePrefix = _ref11.classNamePrefix, | ||
simpleValue = _ref11.simpleValue, | ||
isMulti = _ref11.isMulti, | ||
pluckSingleValue = _ref11.pluckSingleValue, | ||
propsOptions = _ref11.options, | ||
loadOptions = _ref11.loadOptions, | ||
loadingMessage = _ref11.loadingMessage, | ||
loadingProps = _ref11.loadingProps, | ||
selectVariant = _ref11.selectVariant, | ||
updatingMessage = _ref11.updatingMessage, | ||
noOptionsMessage = _ref11.noOptionsMessage, | ||
value = _ref11.value, | ||
_onChange = _ref11.onChange, | ||
loadOptionsChangeCounter = _ref11.loadOptionsChangeCounter, | ||
SelectComponent = _ref11.SelectComponent, | ||
noValueUpdates = _ref11.noValueUpdates, | ||
optionsTransformer = _ref11.optionsTransformer, | ||
props = _objectWithoutProperties(_ref11, _excluded); | ||
var _useReducer = useReducer(reducer, { | ||
var _useSelect = useSelect({ | ||
loadOptions: loadOptions, | ||
optionsTransformer: optionsTransformer, | ||
propsOptions: propsOptions | ||
}, init), | ||
_useReducer2 = _slicedToArray(_useReducer, 2), | ||
state = _useReducer2[0], | ||
originalDispatch = _useReducer2[1]; | ||
options: propsOptions, | ||
noValueUpdates: noValueUpdates, | ||
onChange: onChange, | ||
value: value, | ||
loadOptionsChangeCounter: loadOptionsChangeCounter, | ||
isSearchable: props.isSearchable, | ||
pluckSingleValue: pluckSingleValue, | ||
isMulti: isMulti, | ||
simpleValue: simpleValue | ||
}), | ||
state = _useSelect.state, | ||
selectValue = _useSelect.value, | ||
selectOnChange = _useSelect.onChange, | ||
onInputChange = _useSelect.onInputChange, | ||
isFetching = _useSelect.isFetching; | ||
var dispatch = function dispatch(action) { | ||
return originalDispatch(_objectSpread(_objectSpread({}, action), {}, { | ||
optionsTransformer: optionsTransformer | ||
})); | ||
}; | ||
var isMounted = useIsMounted(); | ||
var updateOptions = function updateOptions() { | ||
dispatch({ | ||
type: 'startLoading' | ||
}); | ||
return loadOptions().then(function (data) { | ||
if (isMounted.current) { | ||
if (!noValueUpdates) { | ||
if (value && Array.isArray(value)) { | ||
var _selectValue = value.filter(function (value) { | ||
return _typeof(value) === 'object' ? data.find(function (option) { | ||
return value.value === option.value; | ||
}) : data.find(function (option) { | ||
return value === option.value; | ||
}); | ||
}); | ||
_onChange(_selectValue.length === 0 ? undefined : _selectValue); | ||
} else if (value && !data.find(function (_ref12) { | ||
var internalValue = _ref12.value; | ||
return internalValue === value; | ||
})) { | ||
_onChange(undefined); | ||
} | ||
} | ||
dispatch({ | ||
type: 'updateOptions', | ||
payload: data | ||
}); | ||
} | ||
}); | ||
}; | ||
useEffect(function () { | ||
if (loadOptions) { | ||
updateOptions(); | ||
} | ||
dispatch({ | ||
type: 'initialLoaded' | ||
}); | ||
}, []); | ||
var loadOptionsStr = loadOptions ? fnToString(loadOptions) : ''; | ||
useEffect(function () { | ||
if (loadOptionsStr && state.isInitialLoaded) { | ||
updateOptions(); | ||
} | ||
}, [loadOptionsStr, loadOptionsChangeCounter]); | ||
useEffect(function () { | ||
if (state.isInitialLoaded) { | ||
if (!noValueUpdates && value && !propsOptions.map(function (_ref13) { | ||
var value = _ref13.value; | ||
return value; | ||
}).includes(value)) { | ||
_onChange(undefined); | ||
} | ||
dispatch({ | ||
type: 'setOptions', | ||
payload: propsOptions | ||
}); | ||
} | ||
}, [propsOptions]); | ||
var renderNoOptionsMessage = function renderNoOptionsMessage() { | ||
@@ -223,41 +76,2 @@ return Object.values(state.promises).some(function (value) { | ||
var onInputChange = function onInputChange(inputValue) { | ||
if (inputValue && loadOptions && state.promises[inputValue] === undefined && props.isSearchable) { | ||
dispatch({ | ||
type: 'setPromises', | ||
payload: _defineProperty({}, inputValue, true) | ||
}); | ||
loadOptions(inputValue).then(function (options) { | ||
if (isMounted.current) { | ||
dispatch({ | ||
type: 'setPromises', | ||
payload: _defineProperty({}, inputValue, false), | ||
options: options | ||
}); | ||
} | ||
})["catch"](function (error) { | ||
dispatch({ | ||
type: 'setPromises', | ||
payload: _defineProperty({}, inputValue, false) | ||
}); // eslint-disable-next-line no-console | ||
console.error(error); | ||
}); | ||
} | ||
}; | ||
var selectValue = pluckSingleValue ? isMulti ? value : Array.isArray(value) && value[0] ? value[0] : value : value; | ||
var filteredLength = state.options.filter(function (_ref14) { | ||
var selectAll = _ref14.selectAll, | ||
selectNone = _ref14.selectNone; | ||
return !selectAll && !selectNone; | ||
}).length; | ||
var shouldRemoveSelectAll = isMulti && state.options.find(function (_ref15) { | ||
var selectAll = _ref15.selectAll; | ||
return selectAll; | ||
}) && selectValue.length === filteredLength; | ||
var shouldRemoveSelectNone = isMulti && state.options.find(function (_ref16) { | ||
var selectNone = _ref16.selectNone; | ||
return selectNone; | ||
}) && selectValue.length === 0; | ||
return /*#__PURE__*/React.createElement(SelectComponent, _extends({ | ||
@@ -272,10 +86,6 @@ className: clsx(classNamePrefix, { | ||
isMulti: isMulti, | ||
value: getSelectValue(selectValue, simpleValue, isMulti, state.options), | ||
onChange: function onChange(option) { | ||
return handleSelectChange(option, simpleValue, isMulti, _onChange, state.options, shouldRemoveSelectAll, shouldRemoveSelectNone); | ||
}, | ||
value: selectValue, | ||
onChange: selectOnChange, | ||
onInputChange: onInputChange, | ||
isFetching: Object.values(state.promises).some(function (value) { | ||
return value; | ||
}), | ||
isFetching: isFetching, | ||
noOptionsMessage: renderNoOptionsMessage(), | ||
@@ -282,0 +92,0 @@ hideSelectedOptions: false, |
@@ -13,2 +13,4 @@ export { default as DualListSelect } from './dual-list-select'; | ||
export * from './select'; | ||
export { default as useSelect } from './use-select'; | ||
export * from './use-select'; | ||
export { default as Utils } from './utils'; | ||
@@ -15,0 +17,0 @@ export * from './utils'; |
{ | ||
"name": "@data-driven-forms/common", | ||
"version": "3.19.3", | ||
"version": "3.20.0", | ||
"description": "Common components, helpers and other pieces of code for Data Driven Forms", | ||
@@ -5,0 +5,0 @@ "license": "Apache-2.0", |
import { AnyObject } from "@data-driven-forms/react-form-renderer"; | ||
type option = { | ||
export type option = { | ||
[key: string]: any; | ||
@@ -5,0 +5,0 @@ label?: React.ReactNode; |
@@ -5,4 +5,2 @@ "use strict"; | ||
var _typeof3 = require("@babel/runtime/helpers/typeof"); | ||
Object.defineProperty(exports, "__esModule", { | ||
@@ -15,14 +13,6 @@ value: true | ||
var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof")); | ||
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty")); | ||
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray")); | ||
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties")); | ||
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray")); | ||
var _react = _interopRequireDefault(require("react")); | ||
var _react = _interopRequireWildcard(require("react")); | ||
var _propTypes = _interopRequireDefault(require("prop-types")); | ||
@@ -32,196 +22,46 @@ | ||
var _isEqual = _interopRequireDefault(require("lodash/isEqual")); | ||
var _useSelect2 = _interopRequireDefault(require("../use-select/use-select")); | ||
var _fnToString = _interopRequireDefault(require("../utils/fn-to-string")); | ||
var _reducer = _interopRequireWildcard(require("./reducer")); | ||
var _useIsMounted = _interopRequireDefault(require("../hooks/use-is-mounted")); | ||
var _excluded = ["invalid", "classNamePrefix", "simpleValue", "isMulti", "pluckSingleValue", "options", "loadOptions", "loadingMessage", "loadingProps", "selectVariant", "updatingMessage", "noOptionsMessage", "value", "onChange", "loadOptionsChangeCounter", "SelectComponent", "noValueUpdates", "optionsTransformer"]; | ||
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); } | ||
var Select = function Select(_ref) { | ||
var invalid = _ref.invalid, | ||
classNamePrefix = _ref.classNamePrefix, | ||
simpleValue = _ref.simpleValue, | ||
isMulti = _ref.isMulti, | ||
pluckSingleValue = _ref.pluckSingleValue, | ||
propsOptions = _ref.options, | ||
loadOptions = _ref.loadOptions, | ||
loadingMessage = _ref.loadingMessage, | ||
loadingProps = _ref.loadingProps, | ||
selectVariant = _ref.selectVariant, | ||
updatingMessage = _ref.updatingMessage, | ||
noOptionsMessage = _ref.noOptionsMessage, | ||
value = _ref.value, | ||
onChange = _ref.onChange, | ||
loadOptionsChangeCounter = _ref.loadOptionsChangeCounter, | ||
SelectComponent = _ref.SelectComponent, | ||
noValueUpdates = _ref.noValueUpdates, | ||
optionsTransformer = _ref.optionsTransformer, | ||
props = (0, _objectWithoutProperties2["default"])(_ref, _excluded); | ||
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof3(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; } | ||
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; } | ||
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; } | ||
var getSelectValue = function getSelectValue(stateValue, simpleValue, isMulti, allOptions) { | ||
var enhancedValue = stateValue; | ||
var hasSelectAll = isMulti && allOptions.find(function (_ref) { | ||
var selectAll = _ref.selectAll; | ||
return selectAll; | ||
}); | ||
var hasSelectNone = isMulti && allOptions.find(function (_ref2) { | ||
var selectNone = _ref2.selectNone; | ||
return selectNone; | ||
}); | ||
if (hasSelectAll || hasSelectNone) { | ||
enhancedValue = enhancedValue || []; | ||
var optionsLength = allOptions.filter(function (_ref3) { | ||
var selectAll = _ref3.selectAll, | ||
selectNone = _ref3.selectNone, | ||
divider = _ref3.divider, | ||
options = _ref3.options; | ||
return !selectAll && !selectNone && !divider && !options; | ||
}).length; | ||
var selectedAll = optionsLength === enhancedValue.length; | ||
var selectedNone = enhancedValue.length === 0; | ||
enhancedValue = [].concat((0, _toConsumableArray2["default"])(enhancedValue), (0, _toConsumableArray2["default"])(hasSelectAll && selectedAll ? [simpleValue ? hasSelectAll.value : hasSelectAll] : []), (0, _toConsumableArray2["default"])(hasSelectNone && selectedNone ? [simpleValue ? hasSelectNone.value : hasSelectNone] : [])); | ||
} | ||
return simpleValue ? allOptions.filter(function (_ref4) { | ||
var value = _ref4.value; | ||
return isMulti ? enhancedValue.includes(value) : (0, _isEqual["default"])(value, enhancedValue); | ||
}) : enhancedValue; | ||
}; | ||
var handleSelectChange = function handleSelectChange(option, simpleValue, isMulti, onChange, allOptions, removeSelectAll, removeSelectNone) { | ||
var enhanceOption = option; | ||
if (removeSelectNone) { | ||
enhanceOption = enhanceOption.filter(function (_ref5) { | ||
var selectNone = _ref5.selectNone; | ||
return !selectNone; | ||
}); | ||
} else if (removeSelectAll) { | ||
enhanceOption = enhanceOption.filter(function (_ref6) { | ||
var selectAll = _ref6.selectAll; | ||
return !selectAll; | ||
}); | ||
} | ||
var sanitizedOption = !enhanceOption && isMulti ? [] : enhanceOption; | ||
if (isMulti && sanitizedOption.find(function (_ref7) { | ||
var selectAll = _ref7.selectAll; | ||
return selectAll; | ||
})) { | ||
return onChange(allOptions.filter(function (_ref8) { | ||
var selectAll = _ref8.selectAll, | ||
selectNone = _ref8.selectNone, | ||
value = _ref8.value; | ||
return !selectAll && !selectNone && value; | ||
}).map(function (_ref9) { | ||
var value = _ref9.value; | ||
return value; | ||
})); | ||
} | ||
if (isMulti && sanitizedOption.find(function (_ref10) { | ||
var selectNone = _ref10.selectNone; | ||
return selectNone; | ||
})) { | ||
return onChange([]); | ||
} | ||
return simpleValue ? onChange(isMulti ? sanitizedOption.map(function (item) { | ||
return item.value; | ||
}) : sanitizedOption ? sanitizedOption.value : undefined) : onChange(sanitizedOption); | ||
}; | ||
var Select = function Select(_ref11) { | ||
var invalid = _ref11.invalid, | ||
classNamePrefix = _ref11.classNamePrefix, | ||
simpleValue = _ref11.simpleValue, | ||
isMulti = _ref11.isMulti, | ||
pluckSingleValue = _ref11.pluckSingleValue, | ||
propsOptions = _ref11.options, | ||
loadOptions = _ref11.loadOptions, | ||
loadingMessage = _ref11.loadingMessage, | ||
loadingProps = _ref11.loadingProps, | ||
selectVariant = _ref11.selectVariant, | ||
updatingMessage = _ref11.updatingMessage, | ||
noOptionsMessage = _ref11.noOptionsMessage, | ||
value = _ref11.value, | ||
_onChange = _ref11.onChange, | ||
loadOptionsChangeCounter = _ref11.loadOptionsChangeCounter, | ||
SelectComponent = _ref11.SelectComponent, | ||
noValueUpdates = _ref11.noValueUpdates, | ||
optionsTransformer = _ref11.optionsTransformer, | ||
props = (0, _objectWithoutProperties2["default"])(_ref11, _excluded); | ||
var _useReducer = (0, _react.useReducer)(_reducer["default"], { | ||
var _useSelect = (0, _useSelect2["default"])({ | ||
loadOptions: loadOptions, | ||
optionsTransformer: optionsTransformer, | ||
propsOptions: propsOptions | ||
}, _reducer.init), | ||
_useReducer2 = (0, _slicedToArray2["default"])(_useReducer, 2), | ||
state = _useReducer2[0], | ||
originalDispatch = _useReducer2[1]; | ||
options: propsOptions, | ||
noValueUpdates: noValueUpdates, | ||
onChange: onChange, | ||
value: value, | ||
loadOptionsChangeCounter: loadOptionsChangeCounter, | ||
isSearchable: props.isSearchable, | ||
pluckSingleValue: pluckSingleValue, | ||
isMulti: isMulti, | ||
simpleValue: simpleValue | ||
}), | ||
state = _useSelect.state, | ||
selectValue = _useSelect.value, | ||
selectOnChange = _useSelect.onChange, | ||
onInputChange = _useSelect.onInputChange, | ||
isFetching = _useSelect.isFetching; | ||
var dispatch = function dispatch(action) { | ||
return originalDispatch(_objectSpread(_objectSpread({}, action), {}, { | ||
optionsTransformer: optionsTransformer | ||
})); | ||
}; | ||
var isMounted = (0, _useIsMounted["default"])(); | ||
var updateOptions = function updateOptions() { | ||
dispatch({ | ||
type: 'startLoading' | ||
}); | ||
return loadOptions().then(function (data) { | ||
if (isMounted.current) { | ||
if (!noValueUpdates) { | ||
if (value && Array.isArray(value)) { | ||
var _selectValue = value.filter(function (value) { | ||
return (0, _typeof2["default"])(value) === 'object' ? data.find(function (option) { | ||
return value.value === option.value; | ||
}) : data.find(function (option) { | ||
return value === option.value; | ||
}); | ||
}); | ||
_onChange(_selectValue.length === 0 ? undefined : _selectValue); | ||
} else if (value && !data.find(function (_ref12) { | ||
var internalValue = _ref12.value; | ||
return internalValue === value; | ||
})) { | ||
_onChange(undefined); | ||
} | ||
} | ||
dispatch({ | ||
type: 'updateOptions', | ||
payload: data | ||
}); | ||
} | ||
}); | ||
}; | ||
(0, _react.useEffect)(function () { | ||
if (loadOptions) { | ||
updateOptions(); | ||
} | ||
dispatch({ | ||
type: 'initialLoaded' | ||
}); | ||
}, []); | ||
var loadOptionsStr = loadOptions ? (0, _fnToString["default"])(loadOptions) : ''; | ||
(0, _react.useEffect)(function () { | ||
if (loadOptionsStr && state.isInitialLoaded) { | ||
updateOptions(); | ||
} | ||
}, [loadOptionsStr, loadOptionsChangeCounter]); | ||
(0, _react.useEffect)(function () { | ||
if (state.isInitialLoaded) { | ||
if (!noValueUpdates && value && !propsOptions.map(function (_ref13) { | ||
var value = _ref13.value; | ||
return value; | ||
}).includes(value)) { | ||
_onChange(undefined); | ||
} | ||
dispatch({ | ||
type: 'setOptions', | ||
payload: propsOptions | ||
}); | ||
} | ||
}, [propsOptions]); | ||
var renderNoOptionsMessage = function renderNoOptionsMessage() { | ||
@@ -252,41 +92,2 @@ return Object.values(state.promises).some(function (value) { | ||
var onInputChange = function onInputChange(inputValue) { | ||
if (inputValue && loadOptions && state.promises[inputValue] === undefined && props.isSearchable) { | ||
dispatch({ | ||
type: 'setPromises', | ||
payload: (0, _defineProperty2["default"])({}, inputValue, true) | ||
}); | ||
loadOptions(inputValue).then(function (options) { | ||
if (isMounted.current) { | ||
dispatch({ | ||
type: 'setPromises', | ||
payload: (0, _defineProperty2["default"])({}, inputValue, false), | ||
options: options | ||
}); | ||
} | ||
})["catch"](function (error) { | ||
dispatch({ | ||
type: 'setPromises', | ||
payload: (0, _defineProperty2["default"])({}, inputValue, false) | ||
}); // eslint-disable-next-line no-console | ||
console.error(error); | ||
}); | ||
} | ||
}; | ||
var selectValue = pluckSingleValue ? isMulti ? value : Array.isArray(value) && value[0] ? value[0] : value : value; | ||
var filteredLength = state.options.filter(function (_ref14) { | ||
var selectAll = _ref14.selectAll, | ||
selectNone = _ref14.selectNone; | ||
return !selectAll && !selectNone; | ||
}).length; | ||
var shouldRemoveSelectAll = isMulti && state.options.find(function (_ref15) { | ||
var selectAll = _ref15.selectAll; | ||
return selectAll; | ||
}) && selectValue.length === filteredLength; | ||
var shouldRemoveSelectNone = isMulti && state.options.find(function (_ref16) { | ||
var selectNone = _ref16.selectNone; | ||
return selectNone; | ||
}) && selectValue.length === 0; | ||
return /*#__PURE__*/_react["default"].createElement(SelectComponent, (0, _extends2["default"])({ | ||
@@ -301,10 +102,6 @@ className: (0, _clsx["default"])(classNamePrefix, { | ||
isMulti: isMulti, | ||
value: getSelectValue(selectValue, simpleValue, isMulti, state.options), | ||
onChange: function onChange(option) { | ||
return handleSelectChange(option, simpleValue, isMulti, _onChange, state.options, shouldRemoveSelectAll, shouldRemoveSelectNone); | ||
}, | ||
value: selectValue, | ||
onChange: selectOnChange, | ||
onInputChange: onInputChange, | ||
isFetching: Object.values(state.promises).some(function (value) { | ||
return value; | ||
}), | ||
isFetching: isFetching, | ||
noOptionsMessage: renderNoOptionsMessage(), | ||
@@ -311,0 +108,0 @@ hideSelectedOptions: false, |
148281
91
3276