@zohodesk/components
Version:
In this Package, we Provide Some Basic Components to Build Web App
668 lines (528 loc) • 26.7 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.optionIdGrouping = exports.makeObjectConcat = exports.makeGetSelectedValueText = exports.makeGetOptionIdChange = exports.makeGetMultiSelectSelectedOptions = exports.makeGetMultiSelectFilterSuggestions = exports.makeGetIsShowClearIcon = exports.makeGetGroupSelectOptions = exports.makeGetGroupSelectFilterSuggestions = exports.makeFormatOptions = exports.getValueField = exports.getTextField = exports.getSecondaryField = exports.getPrefixText = exports.getOptions = exports.getOptionType = exports.getImageField = exports.getIconSize = exports.getIconName = exports.filterSelectedOptions = exports.extractOptionIdFromJson = exports.extractOptionId = exports.dummyObj = exports.dummyArray = void 0;
var _reselect = require("reselect");
var _Common = require("./Common");
function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
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; }
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
var dummyArray = [];
exports.dummyArray = dummyArray;
var dummyObj = {};
exports.dummyObj = dummyObj;
var getOptions = function getOptions(props) {
return props.options || dummyArray;
};
exports.getOptions = getOptions;
var getOptionsOrder = function getOptionsOrder(props) {
return props.optionsOrder || dummyArray;
};
var getSelectedOptionsSel = function getSelectedOptionsSel(props) {
return props.selectedOptions || dummyArray;
};
var getSearchStr = function getSearchStr(props) {
return props.searchStr || '';
};
var getValueField = function getValueField(props) {
return props.valueField || '';
};
exports.getValueField = getValueField;
var getSecondaryField = function getSecondaryField(props) {
return props.secondaryField || '';
};
exports.getSecondaryField = getSecondaryField;
var getTextField = function getTextField(props) {
return props.textField || '';
};
exports.getTextField = getTextField;
var getImageField = function getImageField(props) {
return props.imageField || '';
};
exports.getImageField = getImageField;
var getIconName = function getIconName(props) {
return props.iconName || '';
};
exports.getIconName = getIconName;
var getIconSize = function getIconSize(props) {
return props.iconSize || '';
};
exports.getIconSize = getIconSize;
var getOptionType = function getOptionType(props) {
return props.optionType || '';
};
exports.getOptionType = getOptionType;
var getNeedSearch = function getNeedSearch(props) {
return props.needSearch;
};
var getIsDefaultSelectValue = function getIsDefaultSelectValue(props) {
return props.isDefaultSelectValue;
};
var getSelectedOptionsLength = function getSelectedOptionsLength(props) {
return (0, _Common.getIsEmptyValue)(props.selectedOptionsLength) ? '' : props.selectedOptionsLength;
};
var getNormalizedFormatOptions = function getNormalizedFormatOptions(props) {
return props.normalizedFormatOptions || dummyObj;
};
var getSelectedValue = function getSelectedValue(props) {
return (0, _Common.getIsEmptyValue)(props.selectedValue) ? '' : props.selectedValue;
};
var getSelectedFormatOptions = function getSelectedFormatOptions(props) {
return props.selectedFormatOptions || dummyObj;
};
var getPrefixText = function getPrefixText(props) {
return props.prefixText || '';
};
exports.getPrefixText = getPrefixText;
var getIsStartWithSearch = function getIsStartWithSearch(props) {
return props.isStartsWithSearch;
};
var getKeepSelectedOptions = function getKeepSelectedOptions(props) {
return props.keepSelectedOptions;
};
var getDisabledOptions = function getDisabledOptions(props) {
return props.disabledOptions || dummyArray;
};
var getListItemProps = function getListItemProps(props) {
return props.listItemProps || '';
};
var getSearchFields = function getSearchFields(props) {
return props.searchFields || ['value'];
}; // const isObjectContainsSearchString = (searchFields = [], searchStr = '', obj) => {
// const matchedFields = searchFields.filter(element => {
// return getSearchString(obj[element]).indexOf(searchStr) !== -1
// });
// return matchedFields.length !== 0;
// }
var isObjectContainsSearchString = function isObjectContainsSearchString() {
var searchFields = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
var searchStr = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';
var obj = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
return searchFields.some(function (field) {
var val = obj[field];
if (val === null || val === undefined) return false;
var str = (0, _Common.getSearchString)(val);
return str && str.indexOf(searchStr) !== -1;
});
};
var getAllowValueFallback = function getAllowValueFallback(props) {
return props.allowValueFallback !== false;
};
var makeGetMultiSelectFilterSuggestions = function makeGetMultiSelectFilterSuggestions() {
return (0, _reselect.createSelector)([getOptions, getSelectedOptionsSel, getSearchStr, getNeedSearch, getIsStartWithSearch, getKeepSelectedOptions, getSearchFields], function (options, selectedOptions, searchStr, needSearch, isStartsWithSearch, keepSelectedOptions, searchFields) {
var suggestions = [];
var suggestionIds = [];
options.forEach(function (option) {
var searchString = (0, _Common.getSearchString)(searchStr);
var _option$value = option.value,
value = _option$value === void 0 ? '' : _option$value;
var valueString = (0, _Common.getSearchString)(value);
var isMatch = needSearch ? isStartsWithSearch ? valueString.startsWith(searchString) : isObjectContainsSearchString(searchFields, searchString, option) : true;
if (selectedOptions.indexOf(option.id) === -1 && isMatch || keepSelectedOptions) {
suggestions.push(option);
suggestionIds.push(option.id);
}
});
return {
suggestions: suggestions,
suggestionIds: suggestionIds
};
});
};
exports.makeGetMultiSelectFilterSuggestions = makeGetMultiSelectFilterSuggestions;
var optionIdGrouping = function optionIdGrouping(id, prefixText) {
if ((0, _Common.getIsEmptyValue)(id)) {
return '';
}
if ((0, _Common.getIsEmptyValue)(prefixText)) {
return id;
}
var prefixType = typeof prefixText === 'number' ? 'Int' : 'Str';
var idType = typeof id === 'number' ? 'Int' : 'Str';
return "".concat(prefixType, "_").concat(prefixText, "_").concat(idType, "_").concat(id);
};
exports.optionIdGrouping = optionIdGrouping;
var extractOptionId = function extractOptionId(id) {
if ((0, _Common.getIsEmptyValue)(id)) {
return {
id: ''
};
}
if (typeof id === 'number') {
return {
id: id
};
}
var splitedOption = id.split && id.split('_');
if (splitedOption.length === 1) {
return splitedOption[0];
}
if (splitedOption.length === 4) {
var _splitedOption = _slicedToArray(splitedOption, 4),
prefixType = _splitedOption[0],
prefixText = _splitedOption[1],
idType = _splitedOption[2],
_id = _splitedOption[3];
_id = idType === 'Int' ? Number.parseInt(_id) : _id;
prefixText = prefixType === 'Int' ? Number.parseInt(prefixText) : prefixText;
return {
id: _id,
groupId: prefixText
};
}
};
exports.extractOptionId = extractOptionId;
var extractOptionIdFromJson = function extractOptionIdFromJson(id, localData) {
return localData[id] || {};
};
exports.extractOptionIdFromJson = extractOptionIdFromJson;
var makeFormatOptions = function makeFormatOptions() {
return (0, _reselect.createSelector)([getOptions, getValueField, getTextField, getImageField, getPrefixText, getIconName, getIconSize, getOptionType, getDisabledOptions, getListItemProps, getAllowValueFallback, getSearchFields, getSecondaryField], function (options, valueField, textField, imageField, prefixText, iconName, iconSize, optionType, disabledOptions, listItemProps, allowValueFallback, searchFields, secondaryField) {
var revampOptions = [];
var remvampOptionIds = [];
var normalizedAllOptions = {};
var normalizedFormatOptions = {};
options.forEach(function (option) {
if (!(0, _Common.getIsEmptyValue)(option)) {
//For group multiSelect - grouping selectedOptions case
var impValueField = option.valueField,
impTextField = option.textField,
impImageField = option.imageField,
impSecondaryField = option.secondaryField,
impOptionType = option.optionType,
impIconName = option.iconName,
impIconSize = option.iconSize,
listStyle = option.listItemProps;
var id = _typeof(option) === 'object' ? option[impValueField || valueField] : option;
var value = _typeof(option) === 'object' ? option[impTextField || textField] : allowValueFallback ? option : '';
var secondaryValue = _typeof(option) === 'object' ? option[impSecondaryField || secondaryField] : '';
var photoURL = _typeof(option) === 'object' ? option[impImageField || imageField] : ''; // grouping options (group select/MultiSelect)
id = !(0, _Common.getIsEmptyValue)(id) ? optionIdGrouping(id, prefixText) : '';
var additionalSearchFieldData = searchFields.reduce(function (value, item) {
if (_typeof(option) === 'object' && option.hasOwnProperty(item)) {
value[item] = option[item];
}
return value;
}, {});
if (remvampOptionIds.indexOf(id) === -1 && !(0, _Common.getIsEmptyValue)(id) && !(0, _Common.getIsEmptyValue)(value)) {
remvampOptionIds.push(id);
var optionDetails = _objectSpread(_objectSpread({}, additionalSearchFieldData), {}, {
id: id,
value: value,
secondaryValue: secondaryValue,
optionType: impOptionType || optionType
});
if (imageField) {
optionDetails.photoURL = photoURL;
}
if (impIconName || iconName) {
optionDetails.icon = impIconName || iconName;
}
if (impIconSize || iconSize) {
optionDetails.iconSize = impIconSize || iconSize;
}
if (disabledOptions.length) {
optionDetails.isDisabled = disabledOptions.indexOf(id) >= 0;
}
if (listStyle || listItemProps) {
optionDetails.listItemProps = listStyle || listItemProps;
}
normalizedFormatOptions[id] = optionDetails;
normalizedAllOptions[id] = _objectSpread(_objectSpread({}, option), {}, {
groupId: prefixText
});
revampOptions.push(optionDetails);
}
}
});
return {
allOptions: revampOptions,
normalizedAllOptions: normalizedAllOptions,
normalizedFormatOptions: normalizedFormatOptions,
optionsOrder: remvampOptionIds
};
});
};
exports.makeFormatOptions = makeFormatOptions;
var makeGetMultiSelectSelectedOptions = function makeGetMultiSelectSelectedOptions() {
return (0, _reselect.createSelector)([getSelectedOptionsSel, getNormalizedFormatOptions, getSelectedOptionsLength, getAllowValueFallback], function (selectedOptions, normalizedFormatOptions, selectedOptionsLength, allowValueFallback) {
var output = [];
var revampSelectedOptions = [];
var normalizedSelectedOptions = {};
selectedOptionsLength = !(0, _Common.getIsEmptyValue)(selectedOptionsLength) ? selectedOptionsLength : selectedOptions.length;
for (var i = 0; i < selectedOptionsLength; i++) {
var option = selectedOptions[i];
var _ref = normalizedFormatOptions[option] || {},
id = _ref.id;
if (revampSelectedOptions.indexOf(id) === -1 && !(0, _Common.getIsEmptyValue)(id)) {
revampSelectedOptions.push(id);
output.push(normalizedFormatOptions[option]);
normalizedSelectedOptions[id] = normalizedFormatOptions[option];
} else if (allowValueFallback && (0, _Common.getIsEmptyValue)(id) && !(0, _Common.getIsEmptyValue)(option) && revampSelectedOptions.indexOf(option) === -1) {
//fallback case
var newObj = {
id: option,
value: option
};
output.push(newObj);
normalizedSelectedOptions[option] = newObj;
revampSelectedOptions.indexOf(option) === -1 ? revampSelectedOptions.push(option) : null;
}
}
return {
formatSelectedOptions: output,
normalizedSelectedOptions: normalizedSelectedOptions,
selectedOptionIds: revampSelectedOptions
};
});
};
exports.makeGetMultiSelectSelectedOptions = makeGetMultiSelectSelectedOptions;
var makeGetSelectedValueText = function makeGetSelectedValueText() {
return (0, _reselect.createSelector)([getOptionsOrder, getNormalizedFormatOptions, getSelectedValue, getSelectedFormatOptions, getIsDefaultSelectValue, getValueField, getTextField], function (optionsOrder, normalizedFormatOptions, selectedValue, selectedFormatOptions, isDefaultSelectValue, valueField, textField) {
var selectedValueIndex = optionsOrder.indexOf(selectedValue);
var isSelfValueChanged = false;
if ((0, _Common.getIsEmptyValue)(selectedValue) && isDefaultSelectValue) {
var _optionsOrder = _slicedToArray(optionsOrder, 1);
selectedValue = _optionsOrder[0];
isSelfValueChanged = true;
}
var allOptions = Object.assign({}, selectedFormatOptions, normalizedFormatOptions);
var details = allOptions[selectedValue];
var hoverIndex = selectedValueIndex !== -1 ? selectedValueIndex : 0;
var selectedValueDetails = details ? _defineProperty({}, selectedValue, details) : dummyObj;
var _ref3 = details || dummyObj,
_ref3$value = _ref3.value,
selectedValueText = _ref3$value === void 0 ? '' : _ref3$value,
selectedId = _ref3.id; //selectedValue is not included in options case
if ((0, _Common.getIsEmptyValue)(selectedId)) {
if (_typeof(selectedValue) === 'object') {
var id = selectedValue[valueField];
var text = selectedValue[textField];
selectedValueDetails = {
id: id,
value: text
};
selectedValueText = text;
selectedId = id;
selectedValueIndex = optionsOrder.indexOf(selectedId);
hoverIndex = selectedValueIndex !== -1 ? selectedValueIndex : 0;
} else {
selectedValueText = selectedValue;
selectedId = selectedValue;
}
}
return {
selected: selectedValueText,
hoverIndex: hoverIndex,
selectedValueDetails: selectedValueDetails,
selectedId: selectedId,
isSelfValueChanged: isSelfValueChanged
};
});
};
exports.makeGetSelectedValueText = makeGetSelectedValueText;
var getObj1 = function getObj1(props) {
return props.obj1 || dummyObj;
};
var getObj2 = function getObj2(props) {
return props.obj2 || dummyObj;
};
var makeObjectConcat = function makeObjectConcat() {
return (0, _reselect.createSelector)([getObj1, getObj2], function (obj1, obj2) {
return Object.assign({}, obj1, obj2);
});
};
/***** Group Select *****/
exports.makeObjectConcat = makeObjectConcat;
var getGroupedOptions = function getGroupedOptions(props) {
return props.groupedOptions || dummyArray;
};
var getFormatOptions = makeFormatOptions();
var makeGetGroupSelectOptions = function makeGetGroupSelectOptions() {
return (0, _reselect.createSelector)([getGroupedOptions, getAllowValueFallback], function (groupedOptions, allowValueFallback) {
var revampedGroups = [];
var allOptionIds = [];
var allNormalizedOptions = {}; //all group normalized options
var allNormalizedFormatOptions = {};
var groupIds = [];
var normalizedGroupedOptions = {};
groupedOptions.forEach(function (group) {
var options = group.options,
groupId = group.id,
name = group.name,
valueField = group.valueField,
textField = group.textField;
if (!(0, _Common.getIsEmptyValue)(groupId) && groupIds.indexOf(groupId) === -1) {
groupIds.push(groupId);
normalizedGroupedOptions[groupId] = group;
var _getFormatOptions = getFormatOptions({
options: options,
valueField: valueField,
textField: textField,
prefixText: groupId,
allowValueFallback: allowValueFallback
}),
allOptions = _getFormatOptions.allOptions,
normalizedAllOptions = _getFormatOptions.normalizedAllOptions,
normalizedFormatOptions = _getFormatOptions.normalizedFormatOptions,
optionsOrder = _getFormatOptions.optionsOrder;
if (optionsOrder.length) {
revampedGroups.push({
id: groupId,
name: name,
options: allOptions
});
allOptionIds = [].concat(_toConsumableArray(allOptionIds), _toConsumableArray(optionsOrder));
allNormalizedOptions = Object.assign({}, allNormalizedOptions, normalizedAllOptions);
allNormalizedFormatOptions = Object.assign({}, allNormalizedFormatOptions, normalizedFormatOptions);
}
}
});
return {
revampedGroups: revampedGroups,
normalizedAllOptions: allNormalizedOptions,
normalizedFormatOptions: allNormalizedFormatOptions,
allOptionIds: allOptionIds,
groupIds: groupIds,
normalizedGroupedOptions: normalizedGroupedOptions
};
});
};
exports.makeGetGroupSelectOptions = makeGetGroupSelectOptions;
var getGroups = function getGroups(props) {
return props.revampedGroups;
};
var getFilterSuggestions = makeGetMultiSelectFilterSuggestions();
var makeGetGroupSelectFilterSuggestions = function makeGetGroupSelectFilterSuggestions() {
return (0, _reselect.createSelector)([getGroups, getSearchStr, getNeedSearch, getIsStartWithSearch], function (groups, searchStr, needSearch, isStartsWithSearch) {
var suggestionGroups = [];
var suggestionOptionIds = [];
groups.forEach(function (group) {
var options = group.options;
var _getFilterSuggestions = getFilterSuggestions({
options: options,
needSearch: needSearch,
searchStr: searchStr,
isStartsWithSearch: isStartsWithSearch
}),
suggestions = _getFilterSuggestions.suggestions,
suggestionIds = _getFilterSuggestions.suggestionIds;
if (suggestionIds.length) {
suggestionGroups.push(Object.assign({}, group, {
options: suggestions
}));
suggestionOptionIds = [].concat(_toConsumableArray(suggestionOptionIds), _toConsumableArray(suggestionIds));
}
});
return {
suggestionGroups: suggestionGroups,
suggestionOptionIds: suggestionOptionIds
};
});
};
exports.makeGetGroupSelectFilterSuggestions = makeGetGroupSelectFilterSuggestions;
var makeGetOptionIdChange = function makeGetOptionIdChange() {
return (0, _reselect.createSelector)([getOptions, getValueField, getPrefixText, getTextField, getImageField, getIconName, getIconSize, getOptionType], function (options, valueField, prefixText, textField, imageField, iconName, iconSize, optionType) {
var newOptions = [];
return options.reduce(function (changedOptions, option) {
var newOption;
var id = _typeof(option) === 'object' ? option[valueField] : option;
if (_typeof(option) === 'object' && !(0, _Common.getIsEmptyValue)(id)) {
var _Object$assign;
newOption = Object.assign({}, option, (_Object$assign = {}, _defineProperty(_Object$assign, valueField, optionIdGrouping(id, prefixText)), _defineProperty(_Object$assign, "valueField", valueField), _defineProperty(_Object$assign, "textField", textField), _defineProperty(_Object$assign, "optionType", optionType), _Object$assign));
if (imageField) {
newOption.imageField = imageField;
}
changedOptions.push(newOption);
} else if (!(0, _Common.getIsEmptyValue)(id)) {
newOption = {
id: optionIdGrouping(id, prefixText),
text: id,
valueField: 'id',
textField: 'text',
iconName: iconName,
optionType: optionType,
iconSize: iconSize
};
changedOptions.push(newOption);
}
return changedOptions;
}, newOptions);
});
};
exports.makeGetOptionIdChange = makeGetOptionIdChange;
var filterSelectedOptions = function filterSelectedOptions() {
var _ref4 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
_ref4$selectedOptions = _ref4.selectedOptions,
selectedOptions = _ref4$selectedOptions === void 0 ? dummyArray : _ref4$selectedOptions,
_ref4$propSelectedOpt = _ref4.propSelectedOptions,
propSelectedOptions = _ref4$propSelectedOpt === void 0 ? dummyArray : _ref4$propSelectedOpt,
_ref4$disabledOptions = _ref4.disabledOptions,
disabledOptions = _ref4$disabledOptions === void 0 ? dummyArray : _ref4$disabledOptions;
// eslint-disable-next-line no-param-reassign
selectedOptions = selectedOptions || dummyArray; // eslint-disable-next-line no-param-reassign
propSelectedOptions = propSelectedOptions || dummyArray; // eslint-disable-next-line no-param-reassign
disabledOptions = disabledOptions || dummyArray;
var newlyAddedOptions = selectedOptions.filter(function (selectedOption) {
return propSelectedOptions.indexOf(selectedOption) === -1;
}); // eslint-disable-next-line max-len
var oldValidSelectedOptions = propSelectedOptions.filter(function (selectedOption) {
var isRemoved = selectedOptions.indexOf(selectedOption) === -1;
var isDisabled = disabledOptions.indexOf(selectedOption) >= 0;
if (isDisabled) {
return true;
} else if (isRemoved) {
return false;
}
return true;
});
return {
newSelectedOptions: [].concat(_toConsumableArray(oldValidSelectedOptions), _toConsumableArray(newlyAddedOptions))
};
};
exports.filterSelectedOptions = filterSelectedOptions;
var makeGetIsShowClearIcon = function makeGetIsShowClearIcon() {
return (0, _reselect.createSelector)([getSelectedOptionsSel, getDisabledOptions], function (selectedOptions, disabledOptions) {
var countForShowClear = 2;
var enabledOptionsLength = 0;
var isShowClearIcon = selectedOptions.length >= countForShowClear;
if (disabledOptions.length) {
var isHaveEnabledOptions = false;
var isAllDisabled = disabledOptions.length === selectedOptions.length;
if (!isAllDisabled) {
isHaveEnabledOptions = selectedOptions.some(function (option) {
var _ref5 = option || {},
_ref5$isDisabled = _ref5.isDisabled,
isDisabled = _ref5$isDisabled === void 0 ? false : _ref5$isDisabled;
if (!isDisabled) {
enabledOptionsLength += 1;
if (enabledOptionsLength === countForShowClear) {
return true;
}
return false;
}
return false;
});
}
return {
isShowClearIcon: isAllDisabled ? !isAllDisabled : isHaveEnabledOptions
};
}
return {
isShowClearIcon: isShowClearIcon
};
});
};
exports.makeGetIsShowClearIcon = makeGetIsShowClearIcon;