@zohodesk/components
Version:
In this Package, we Provide Some Basic Components to Build Web App
649 lines (565 loc) • 33.2 kB
JavaScript
"use strict";
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); }
Object.defineProperty(exports, "__esModule", {
value: true
});
exports["default"] = exports.AdvancedMultiSelectComponent = void 0;
var _react = _interopRequireDefault(require("react"));
var _propTypes = require("./props/propTypes");
var _defaultProps = require("./props/defaultProps");
var _MultiSelect = require("./MultiSelect");
var _SelectedOptions = _interopRequireDefault(require("./SelectedOptions"));
var _Suggestions = _interopRequireDefault(require("./Suggestions"));
var _EmptyState = _interopRequireDefault(require("./EmptyState"));
var _MultiSelectHeader = _interopRequireDefault(require("./MultiSelectHeader"));
var _Popup = _interopRequireDefault(require("../Popup/Popup"));
var _TextBoxIcon = _interopRequireDefault(require("../TextBoxIcon/TextBoxIcon"));
var _Layout = require("../Layout");
var _Card = _interopRequireWildcard(require("../Card/Card"));
var _icons = require("@zohodesk/icons");
var _IdProvider = require("../../Provider/IdProvider");
var _ResponsiveDropBox = _interopRequireDefault(require("../ResponsiveDropBox/ResponsiveDropBox"));
var _CustomResponsive = require("../../Responsive/CustomResponsive");
var _Loader = _interopRequireDefault(require("@zohodesk/svg/lib/Loader/Loader"));
var _MultiSelectModule = _interopRequireDefault(require("../../MultiSelect/MultiSelect.module.css"));
var _Common = require("../../utils/Common.js");
var _dropDownUtils = require("../../utils/dropDownUtils");
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); }
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(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 _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
function _extends() { _extends = Object.assign ? Object.assign.bind() : 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 _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 _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 _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 _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 _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }
function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); }
function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
/* eslint-disable react/sort-prop-types */
/* eslint-disable react/no-unused-prop-types */
/* eslint-disable react/forbid-component-props */
var dummyArray = [];
var AdvancedMultiSelectComponent = /*#__PURE__*/function (_MultiSelectComponent) {
_inherits(AdvancedMultiSelectComponent, _MultiSelectComponent);
var _super = _createSuper(AdvancedMultiSelectComponent);
function AdvancedMultiSelectComponent(props) {
var _this;
_classCallCheck(this, AdvancedMultiSelectComponent);
_this = _super.call(this, props);
var _assertThisInitialize = _assertThisInitialized(_this),
oldState = _assertThisInitialize.state;
var _this$props = _this.props,
selectedOptionsLimit = _this$props.selectedOptionsLimit,
selectedOptions = _this$props.selectedOptions;
var selectedOptionsLen = selectedOptions.length;
_this.state = Object.assign({}, oldState, {
showedSelectedOptionsCount: !(0, _Common.getIsEmptyValue)(selectedOptionsLimit) && selectedOptionsLen > selectedOptionsLimit ? selectedOptionsLimit : selectedOptionsLen
});
_this.getIsShowClearIcon = (0, _dropDownUtils.makeGetIsShowClearIcon)();
_this.handleFilterSuggestions = _this.handleFilterSuggestions.bind(_assertThisInitialized(_this));
_this.handleChange = _this.handleChange.bind(_assertThisInitialized(_this));
_this.handleSelectOption = _this.handleSelectOption.bind(_assertThisInitialized(_this));
_this.handleGetSelectedOptions = _this.handleGetSelectedOptions.bind(_assertThisInitialized(_this));
_this.handleFormatSelectedOptions = _this.handleFormatSelectedOptions.bind(_assertThisInitialized(_this));
_this.handleComponentDidUpdate = _this.handleComponentDidUpdate.bind(_assertThisInitialized(_this));
_this.handleMoreClick = _this.handleMoreClick.bind(_assertThisInitialized(_this));
_this.getNextAriaId = (0, _IdProvider.getUniqueId)(_assertThisInitialized(_this));
return _this;
}
_createClass(AdvancedMultiSelectComponent, [{
key: "handleFilterSuggestions",
value: function handleFilterSuggestions() {
var _this$state = this.state,
_this$state$options = _this$state.options,
options = _this$state$options === void 0 ? dummyArray : _this$state$options,
searchStr = _this$state.searchStr;
var needLocalSearch = this.props.needLocalSearch;
var _this$getFilterSugges = this.getFilterSuggestions({
options: options,
selectedOptions: dummyArray,
searchStr: (0, _Common.getSearchString)(searchStr),
needSearch: needLocalSearch
}),
suggestions = _this$getFilterSugges.suggestions,
suggestionIds = _this$getFilterSugges.suggestionIds;
this.suggestionsOrder = suggestionIds;
return suggestions;
}
}, {
key: "handleChange",
value: function handleChange() {
var selectedOptions = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
var e = arguments.length > 1 ? arguments[1] : undefined;
var _this$state2 = this.state,
optionsNormalize = _this$state2.optionsNormalize,
searchStr = _this$state2.searchStr;
var _this$props2 = this.props,
onChange = _this$props2.onChange,
_this$props2$needToCl = _this$props2.needToCloseOnSelect,
needToCloseOnSelect = _this$props2$needToCl === void 0 ? false : _this$props2$needToCl,
togglePopup = _this$props2.togglePopup,
isSearchClearOnSelect = _this$props2.isSearchClearOnSelect,
propSelectedOptions = _this$props2.selectedOptions,
disabledOptions = _this$props2.disabledOptions;
var _filterSelectedOption = (0, _dropDownUtils.filterSelectedOptions)({
selectedOptions: selectedOptions,
propSelectedOptions: propSelectedOptions,
disabledOptions: disabledOptions
}),
newSelectedOptions = _filterSelectedOption.newSelectedOptions;
var selectedOptionsLen = newSelectedOptions.length;
var allSelectedOptionsDetails = [];
for (var i = 0; i < selectedOptionsLen; i++) {
var id = newSelectedOptions[i];
allSelectedOptionsDetails.push(optionsNormalize[id]);
}
onChange && onChange(newSelectedOptions, allSelectedOptionsDetails);
if (searchStr.trim() !== '' && isSearchClearOnSelect) {
this.handleSearch('');
}
this.searchInput && this.searchInput.focus({
preventScroll: true
});
if (needToCloseOnSelect) {
e && togglePopup(e);
}
}
}, {
key: "handleSelectOption",
value: function handleSelectOption(option, value, index, e) {
var selectedOptions = this.props.selectedOptions;
if (selectedOptions.indexOf(option) >= 0) {
//toggle select option
this.handleRemoveOption(option);
} else {
this.handleChange([].concat(_toConsumableArray(selectedOptions), [option]), e);
}
}
}, {
key: "handleFormatOptions",
value: function handleFormatOptions(props) {
var options = props.options,
valueField = props.valueField,
textField = props.textField,
imageField = props.imageField,
iconName = props.iconName,
iconSize = props.iconSize,
prefixText = props.prefixText,
optionType = props.optionType,
disabledOptions = props.disabledOptions;
return this.formatOptions({
options: options,
valueField: valueField,
textField: textField,
imageField: imageField,
iconName: iconName,
prefixText: prefixText,
optionType: optionType,
iconSize: iconSize,
disabledOptions: disabledOptions
});
}
}, {
key: "handleGetSelectedOptions",
value: function handleGetSelectedOptions(selectedOptions, normalizedFormatOptions, props) {
//handle selectedoptions length
var _ref = this.state || {},
showedSelectedOptionsCount = _ref.showedSelectedOptionsCount;
var selectedOptionsLimit = props.selectedOptionsLimit,
selectedOptionDetails = props.selectedOptionDetails;
showedSelectedOptionsCount = (0, _Common.getIsEmptyValue)(showedSelectedOptionsCount) ? selectedOptionsLimit : showedSelectedOptionsCount;
var _this$handleFormatSel = this.handleFormatSelectedOptions(selectedOptionDetails, props),
normalizedSelectedOptions = _this$handleFormatSel.normalizedFormatOptions;
var formatOptions = this.objectConcat({
obj1: normalizedFormatOptions,
obj2: normalizedSelectedOptions
});
return this.getSelectedOptions({
selectedOptions: selectedOptions,
normalizedFormatOptions: formatOptions,
selectedOptionsLength: showedSelectedOptionsCount
});
}
}, {
key: "handleFormatSelectedOptions",
value: function handleFormatSelectedOptions(selectedOptionDetails, props) {
var valueField = props.valueField,
textField = props.textField,
imageField = props.imageField,
optionType = props.optionType,
iconName = props.iconName,
iconSize = props.iconSize,
disabledOptions = props.disabledOptions;
return this.formatSelectedOptions({
options: selectedOptionDetails,
valueField: valueField,
textField: textField,
imageField: imageField,
optionType: optionType,
iconName: iconName,
iconSize: iconSize,
disabledOptions: disabledOptions
});
}
}, {
key: "handleComponentDidUpdate",
value: function handleComponentDidUpdate(prevProps, prevState) {
var _this2 = this;
var oldAllSelectedOptionsDetails = this.allSelectedOptionsDetails;
var _this$props3 = this.props,
selectedOptions = _this$props3.selectedOptions,
selectedOptionsLimit = _this$props3.selectedOptionsLimit,
id = _this$props3.id,
selectedOptionDetails = _this$props3.selectedOptionDetails;
var oldSelectedOptions = prevProps.selectedOptions,
oldSelectedOptionsLimit = prevProps.selectedOptionsLimit;
var oldCount = this.state.showedSelectedOptionsCount;
var selectedOptionsLen = selectedOptions.length;
var oldSelectedOptionsLen = oldSelectedOptions.length;
if (id !== prevProps.id || selectedOptionsLimit !== oldSelectedOptionsLimit) {
//handle component update case (New set of options or new selectedOptionsLimit update)
this.setState({
showedSelectedOptionsCount: !(0, _Common.getIsEmptyValue)(selectedOptionsLimit) && selectedOptionsLen > selectedOptionsLimit ? selectedOptionsLimit : selectedOptionsLen
});
return;
}
if (oldCount !== prevState.showedSelectedOptionsCount || selectedOptionDetails !== prevProps.selectedOptionDetails) {
//When showedSelectedOptionsCount update, setState the updated selected option details
var _this$handleFormatOpt = this.handleFormatOptions(this.props),
normalizedFormatOptions = _this$handleFormatOpt.normalizedFormatOptions;
var optionsDetails = Object.assign({}, oldAllSelectedOptionsDetails, normalizedFormatOptions);
var _this$handleGetSelect = this.handleGetSelectedOptions(selectedOptions, optionsDetails, this.props),
formatSelectedOptions = _this$handleGetSelect.formatSelectedOptions,
normalizedSelectedOptions = _this$handleGetSelect.normalizedSelectedOptions,
selectedOptionIds = _this$handleGetSelect.selectedOptionIds;
this.allSelectedOptionsDetails = Object.assign(oldAllSelectedOptionsDetails, normalizedSelectedOptions);
this.setState({
selectedOptions: formatSelectedOptions,
selectedOptionIds: selectedOptionIds
});
}
if ((0, _Common.getIsEmptyValue)(oldCount) || oldSelectedOptionsLen <= oldCount) {
//handle not more options case
if (selectedOptionsLen > oldCount) {
this.setState({
showedSelectedOptionsCount: selectedOptionsLen
});
}
} else if (oldSelectedOptionsLen > selectedOptionsLen) {
//handle more case and option remove case
var showedSelectedOptions = oldSelectedOptions.slice(0, oldCount);
var removeSelectedOption = oldCount;
selectedOptions.forEach(function (option) {
if (showedSelectedOptions.indexOf(option) >= 0) {
removeSelectedOption -= 1;
}
});
var newCount = oldCount - removeSelectedOption;
this.setState({
showedSelectedOptionsCount: newCount
}, function () {
var showedSelectedOptionsCount = _this2.state.showedSelectedOptionsCount;
if (showedSelectedOptionsCount === 0) {
_this2.handleMoreClick();
}
});
}
}
}, {
key: "handleMoreClick",
value: function handleMoreClick(e) {
var _this3 = this;
var showedSelectedOptionsCount = this.state.showedSelectedOptionsCount;
var _this$props4 = this.props,
selectedOptionsLimit = _this$props4.selectedOptionsLimit,
selectedOptions = _this$props4.selectedOptions,
getSelectedOptionDetails = _this$props4.getSelectedOptionDetails,
removeClose = _this$props4.removeClose;
removeClose(e);
var selectedOptionsLen = selectedOptions.length;
if (showedSelectedOptionsCount < selectedOptionsLen) {
var newCount = showedSelectedOptionsCount + selectedOptionsLimit;
var newSelectedOptionIds = selectedOptions.slice(showedSelectedOptionsCount, newCount);
try {
getSelectedOptionDetails(newSelectedOptionIds).then(function () {
_this3.setState({
showedSelectedOptionsCount: showedSelectedOptionsCount + newSelectedOptionIds.length
});
});
} catch (e) {//console.error('getSelectedOptionDetails is not a promise function.');
}
}
this.searchInput && this.searchInput.focus({
preventScroll: true
});
}
}, {
key: "responsiveFunc",
value: function responsiveFunc(_ref2) {
var mediaQueryOR = _ref2.mediaQueryOR;
return {
tabletMode: mediaQueryOR([{
maxWidth: 700
}])
};
}
}, {
key: "render",
value: function render() {
var _this4 = this;
var _this$props5 = this.props,
isReadOnly = _this$props5.isReadOnly,
needSelectAll = _this$props5.needSelectAll,
searchEmptyMessage = _this$props5.searchEmptyMessage,
emptyMessage = _this$props5.emptyMessage,
noMoreOptionsMessage = _this$props5.noMoreOptionsMessage,
dropBoxSize = _this$props5.dropBoxSize,
placeHolder = _this$props5.placeHolder,
isPopupOpen = _this$props5.isPopupOpen,
isPopupReady = _this$props5.isPopupReady,
position = _this$props5.position,
defaultDropBoxPosition = _this$props5.defaultDropBoxPosition,
selectAllText = _this$props5.selectAllText,
getContainerRef = _this$props5.getContainerRef,
removeClose = _this$props5.removeClose,
isAnimate = _this$props5.isAnimate,
animationStyle = _this$props5.animationStyle,
textBoxSize = _this$props5.textBoxSize,
variant = _this$props5.variant,
size = _this$props5.size,
isDisabled = _this$props5.isDisabled,
title = _this$props5.title,
dataIdMultiSelectComp = _this$props5.dataIdMultiSelectComp,
dataIdClearIcon = _this$props5.dataIdClearIcon,
dataIdSelectAllEle = _this$props5.dataIdSelectAllEle,
dataIdLoading = _this$props5.dataIdLoading,
_this$props5$selected = _this$props5.selectedOptions,
allselectedOptionIds = _this$props5$selected === void 0 ? [] : _this$props5$selected,
listItemSize = _this$props5.listItemSize,
needBorder = _this$props5.needBorder,
i18nKeys = _this$props5.i18nKeys,
htmlId = _this$props5.htmlId,
a11y = _this$props5.a11y,
borderColor = _this$props5.borderColor,
isBoxPaddingNeed = _this$props5.isBoxPaddingNeed,
getFooter = _this$props5.getFooter,
customProps = _this$props5.customProps,
needEffect = _this$props5.needEffect,
disabledOptions = _this$props5.disabledOptions,
isLoading = _this$props5.isLoading,
dataSelectorId = _this$props5.dataSelectorId,
customClass = _this$props5.customClass,
isAbsolutePositioningNeeded = _this$props5.isAbsolutePositioningNeeded,
positionsOffset = _this$props5.positionsOffset,
targetOffset = _this$props5.targetOffset,
isRestrictScroll = _this$props5.isRestrictScroll;
var _customProps$Suggesti = customProps.SuggestionsProps,
SuggestionsProps = _customProps$Suggesti === void 0 ? {} : _customProps$Suggesti,
_customProps$DropBoxP = customProps.DropBoxProps,
DropBoxProps = _customProps$DropBoxP === void 0 ? {} : _customProps$DropBoxP;
var _customClass$containe = customClass.containerClass,
containerClass = _customClass$containe === void 0 ? '' : _customClass$containe;
var _i18nKeys = i18nKeys,
_i18nKeys$clearText = _i18nKeys.clearText,
clearText = _i18nKeys$clearText === void 0 ? 'Clear all' : _i18nKeys$clearText;
var _a11y$clearLabel = a11y.clearLabel,
clearLabel = _a11y$clearLabel === void 0 ? 'Clear all' : _a11y$clearLabel;
i18nKeys = Object.assign({}, i18nKeys, {
emptyText: i18nKeys.emptyText || emptyMessage,
noMoreText: i18nKeys.noMoreText || noMoreOptionsMessage,
searchEmptyText: i18nKeys.searchEmptyText || searchEmptyMessage
});
var _this$state3 = this.state,
selectedOptions = _this$state3.selectedOptions,
searchStr = _this$state3.searchStr,
hoverOption = _this$state3.hoverOption,
highLightedSelectOptions = _this$state3.highLightedSelectOptions,
isFetchingOptions = _this$state3.isFetchingOptions,
isActive = _this$state3.isActive,
showedSelectedOptionsCount = _this$state3.showedSelectedOptionsCount,
options = _this$state3.options;
var suggestions = this.handleFilterSuggestions();
var allselectedOptionIdsLen = allselectedOptionIds.length;
var moreCount = allselectedOptionIdsLen - showedSelectedOptionsCount;
var setAriaId = this.getNextAriaId();
var ariaErrorId = this.getNextAriaId();
var _this$getIsShowClearI = this.getIsShowClearIcon({
selectedOptions: selectedOptions,
disabledOptions: disabledOptions
}),
isShowClear = _this$getIsShowClearI.isShowClearIcon;
var isShowClearIcon = !isReadOnly && !isDisabled && isShowClear;
return /*#__PURE__*/_react["default"].createElement("div", {
className: "".concat(_MultiSelectModule["default"].wrapper, " ").concat(isDisabled ? _MultiSelectModule["default"].disabled : '', " ").concat(borderColor === 'transparent' ? _MultiSelectModule["default"].transparentContainer : '', " ").concat(needEffect && !(isDisabled || isReadOnly) ? _MultiSelectModule["default"].effect : '', " ").concat(containerClass),
"data-id": dataIdMultiSelectComp,
"data-test-id": dataIdMultiSelectComp,
"data-title": isDisabled ? title : null,
onClick: this.handleInputFocus,
"data-selector-id": dataSelectorId
}, /*#__PURE__*/_react["default"].createElement(_Layout.Container, {
align: "vertical",
alignBox: "row",
className: "".concat(_MultiSelectModule["default"].container, " ").concat(_MultiSelectModule["default"][size], " ").concat(isActive && needBorder ? _MultiSelectModule["default"].active : '', " ").concat(needBorder ? _MultiSelectModule["default"].hasBorder : '', " ").concat(needBorder ? !isDisabled ? _MultiSelectModule["default"]["borderColor_".concat(borderColor)] : _MultiSelectModule["default"].borderColor_transparent : ''),
eleRef: this.selectedOptionContainerRef,
wrap: "wrap"
}, /*#__PURE__*/_react["default"].createElement(_SelectedOptions["default"], {
selectedOptions: selectedOptions,
highLightedSelectOptions: highLightedSelectOptions,
isReadOnly: isReadOnly,
getRef: this.selectedOptionRef,
onRemove: this.handleRemoveOption,
onSelect: this.handleClickSelectedOption,
dataId: "".concat(dataIdMultiSelectComp, "_selectedOptions")
}), moreCount > 0 ? /*#__PURE__*/_react["default"].createElement(_Layout.Box, {
className: _MultiSelectModule["default"].more,
onClick: this.handleMoreClick,
tagName: "button"
}, "+ ".concat(moreCount, " More")) : null, /*#__PURE__*/_react["default"].createElement(_Layout.Box, {
flexible: true,
className: _MultiSelectModule["default"].wrapper,
adjust: true,
shrink: true,
dataId: "".concat(dataIdMultiSelectComp, "_textBox")
}, /*#__PURE__*/_react["default"].createElement("span", {
className: " ".concat(_MultiSelectModule["default"].custmSpan, " ").concat(textBoxSize === 'xmedium' ? _MultiSelectModule["default"].custmSpanXmedium : _MultiSelectModule["default"].custmSpanMedium, " ").concat(isShowClearIcon ? _MultiSelectModule["default"].clearIconSpace : '', "\n ")
}, searchStr), /*#__PURE__*/_react["default"].createElement(_TextBoxIcon["default"], {
isDisabled: isDisabled,
inputRef: this.searchInputRef,
needBorder: false,
onBlur: this.handleInactive,
onChange: this.handleSearch,
onClick: this.handleInputCick,
onFocus: this.handleActive,
onKeyDown: this.handleKeyDown,
placeHolder: selectedOptions.length >= 1 ? '' : placeHolder,
size: textBoxSize,
value: searchStr,
variant: variant,
isReadOnly: isReadOnly,
tabindex: isDisabled && '-1',
customClass: {
customTBoxWrap: _MultiSelectModule["default"].custmInputWrapper
},
htmlId: htmlId,
a11y: {
role: 'combobox',
ariaOwns: setAriaId,
ariaControls: setAriaId,
ariaExpanded: !isReadOnly && !isDisabled && isPopupOpen ? true : false,
ariaHaspopup: true,
ariaDescribedby: ariaErrorId
},
autoComplete: false
}, isShowClearIcon ? /*#__PURE__*/_react["default"].createElement(_Layout.Container, {
alignBox: "row",
align: "vertical"
}, /*#__PURE__*/_react["default"].createElement(_Layout.Box, {
className: "".concat(_MultiSelectModule["default"]["delete"]),
dataId: dataIdClearIcon,
"data-title": clearText,
onClick: this.handleDeselectAll,
tagName: "button",
"aria-label": clearLabel
}, /*#__PURE__*/_react["default"].createElement(_icons.Icon, {
name: "ZD-delete",
size: "15"
}))) : null))), !isReadOnly && !isDisabled && isPopupOpen ? /*#__PURE__*/_react["default"].createElement(_CustomResponsive.ResponsiveReceiver, {
query: this.responsiveFunc,
responsiveId: "Helmet"
}, function (_ref3) {
var tabletMode = _ref3.tabletMode;
return /*#__PURE__*/_react["default"].createElement(_ResponsiveDropBox["default"], _extends({
animationStyle: animationStyle,
boxPosition: position || "".concat(defaultDropBoxPosition, "Center"),
getRef: getContainerRef,
isActive: isPopupReady,
isAnimate: isAnimate,
isArrow: false,
onClick: removeClose,
isPadding: false,
isBoxPaddingNeed: isBoxPaddingNeed,
htmlId: setAriaId,
a11y: {
role: 'listbox',
ariaMultiselectable: true
},
dataId: "".concat(dataIdMultiSelectComp, "_dropbox"),
isAbsolutePositioningNeeded: isAbsolutePositioningNeeded,
positionsOffset: positionsOffset,
targetOffset: targetOffset,
isRestrictScroll: isRestrictScroll
}, DropBoxProps, {
alignBox: "row",
isResponsivePadding: getFooter ? false : true
}), isLoading ? /*#__PURE__*/_react["default"].createElement(_Layout.Container, {
align: "both",
className: _MultiSelectModule["default"].loader
}, /*#__PURE__*/_react["default"].createElement(_Loader["default"], null)) : /*#__PURE__*/_react["default"].createElement(_Layout.Box, {
flexible: true
}, /*#__PURE__*/_react["default"].createElement(_Card["default"], {
customClass: _MultiSelectModule["default"].box,
onScroll: _this4.handleScroll
}, needSelectAll ? /*#__PURE__*/_react["default"].createElement(_Card.CardHeader, null, /*#__PURE__*/_react["default"].createElement(_MultiSelectHeader["default"], {
onSelect: _this4.handleSelectAll,
selectAllText: selectAllText,
suggestions: suggestions,
dataId: dataIdSelectAllEle
})) : null, /*#__PURE__*/_react["default"].createElement(_Card.CardContent, {
shrink: true,
customClass: !tabletMode && dropBoxSize ? _MultiSelectModule["default"][dropBoxSize] : '',
eleRef: _this4.suggestionContainerRef
}, suggestions.length ? /*#__PURE__*/_react["default"].createElement(_Suggestions["default"], _extends({
suggestions: suggestions,
selectedOptions: allselectedOptionIds,
getRef: _this4.suggestionItemRef,
hoverOption: hoverOption,
onClick: _this4.handleSelectOption,
onMouseEnter: _this4.handleMouseEnter,
needTick: true,
listItemSize: listItemSize,
a11y: {
role: 'option'
},
dataId: "".concat(dataIdMultiSelectComp, "_Options")
}, SuggestionsProps)) : /*#__PURE__*/_react["default"].createElement(_EmptyState["default"], {
isLoading: isFetchingOptions,
options: options,
searchString: searchStr,
suggestions: suggestions,
dataId: dataIdLoading,
i18nKeys: i18nKeys,
htmlId: ariaErrorId
}), isFetchingOptions && /*#__PURE__*/_react["default"].createElement(_Layout.Container, {
isCover: false,
align: "both"
}, /*#__PURE__*/_react["default"].createElement(_Loader["default"], null))), getFooter ? /*#__PURE__*/_react["default"].createElement(_Card.CardFooter, null, getFooter()) : null)));
}) : null);
}
}]);
return AdvancedMultiSelectComponent;
}(_MultiSelect.MultiSelectComponent);
exports.AdvancedMultiSelectComponent = AdvancedMultiSelectComponent;
AdvancedMultiSelectComponent.propTypes = _propTypes.AdvancedMultiSelect_propTypes;
AdvancedMultiSelectComponent.defaultProps = _defaultProps.AdvancedMultiSelect_defaultProps;
AdvancedMultiSelectComponent.displayName = 'AdvancedMultiSelect';
var AdvancedMultiSelect = (0, _Popup["default"])(AdvancedMultiSelectComponent);
AdvancedMultiSelect.defaultProps = AdvancedMultiSelectComponent.defaultProps;
AdvancedMultiSelect.propTypes = AdvancedMultiSelectComponent.propTypes; // if (__DOCS__) {
// AdvancedMultiSelectComponent.docs = {
// componentGroup: 'Form Elements',
// folderName: 'Style Guide'
// };
// // eslint-disable-next-line react/forbid-foreign-prop-types
// AdvancedMultiSelect.propTypes = AdvancedMultiSelectComponent.propTypes;
// }
var _default = AdvancedMultiSelect;
exports["default"] = _default;