@coreui/react-pro
Version:
UI Components Library for React.js
58 lines (54 loc) • 2.55 kB
JavaScript
;
var React = require('react');
var index = require('../../_virtual/index.js');
var PropTypes = require('prop-types');
const CMultiSelectSelection = React.forwardRef(({ children, disabled, multiple, placeholder, onRemove, search, selected = [], selectionType, selectionTypeCounterText, }, ref) => {
return (React.createElement("span", { className: index.default('form-multi-select-selection', {
'form-multi-select-selection-tags': multiple && selectionType === 'tags',
}), ref: ref },
multiple && selectionType === 'counter' && !search && selected.length === 0 && placeholder,
multiple &&
selectionType === 'counter' &&
!search &&
selected.length > 0 &&
`${selected.length} ${selectionTypeCounterText}`,
multiple &&
selectionType === 'tags' &&
selected.map((option, index) => {
if (selectionType === 'tags') {
return (React.createElement("span", { className: "form-multi-select-tag", key: index },
option.label,
!disabled && !option.disabled && (React.createElement("button", { className: "form-multi-select-tag-delete", type: "button", "aria-label": "Close", onClick: () => onRemove === null || onRemove === void 0 ? void 0 : onRemove(option) }))));
}
return;
}),
multiple &&
selectionType === 'text' &&
selected.map((option, index) => (React.createElement("span", { key: index },
option.label,
index === selected.length - 1 ? '' : ',',
"\u00A0"))),
!multiple && !search && selected.map((option) => option.label)[0],
children));
});
CMultiSelectSelection.propTypes = {
children: PropTypes.node,
disabled: PropTypes.bool,
multiple: PropTypes.bool,
onRemove: PropTypes.func,
placeholder: PropTypes.string,
search: PropTypes.oneOfType([
PropTypes.bool,
PropTypes.oneOf(['external', 'global']),
PropTypes.shape({
external: PropTypes.bool.isRequired,
global: PropTypes.bool.isRequired,
}),
]),
selected: PropTypes.array,
selectionType: PropTypes.oneOf(['counter', 'tags', 'text']),
selectionTypeCounterText: PropTypes.string,
};
CMultiSelectSelection.displayName = 'CMultiSelectSelection';
exports.CMultiSelectSelection = CMultiSelectSelection;
//# sourceMappingURL=CMultiSelectSelection.js.map