UNPKG

@coreui/react-pro

Version:

UI Components Library for React.js

58 lines (54 loc) 2.55 kB
'use strict'; 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