UNPKG

@carbon/ibm-products

Version:

Carbon for IBM Products

127 lines (122 loc) 4.58 kB
/** * Copyright IBM Corp. 2020, 2025 * * This source code is licensed under the Apache-2.0 license found in the * LICENSE file in the root directory of this source tree. */ 'use strict'; var _rollupPluginBabelHelpers = require('../../_virtual/_rollupPluginBabelHelpers.js'); var React = require('react'); var index = require('../../_virtual/index.js'); var AddSelectBody = require('./AddSelectBody.js'); var addSelectUtils = require('./add-select-utils.js'); const componentName = 'AddSelect'; const AddSelect = /*#__PURE__*/React.forwardRef((_ref, ref) => { let { items = { entries: [] }, globalFilters, ...props } = _ref; const useNormalizedItems = !!items.entries.find(item => item.children); const normalizedItems = useNormalizedItems ? addSelectUtils.normalize(items) : null; const globalFilterOpts = props.multi && globalFilters?.length ? addSelectUtils.getGlobalFilterValues(globalFilters, normalizedItems) : null; const defaultModifiers = props.multi && items.modifiers ? items.entries.map(item => { const modifierAttribute = items?.modifiers?.id; const modifier = { id: item.id }; return { ...modifier, ...(modifierAttribute && { [modifierAttribute]: item[modifierAttribute] }) }; }) : []; return /*#__PURE__*/React.createElement(AddSelectBody.AddSelectBody, _rollupPluginBabelHelpers.extends({}, props, { ref: ref, items: items, normalizedItems: normalizedItems, useNormalizedItems: useNormalizedItems, globalFilterOpts: globalFilterOpts, defaultModifiers: defaultModifiers })); }); AddSelect.propTypes = { className: index.default.string, clearFiltersText: index.default.string, closeIconDescription: index.default.string.isRequired, columnInputPlaceholder: index.default.string, description: index.default.string.isRequired, filterByLabel: index.default.string, /**@ts-ignore */ globalFilters: index.default.arrayOf(index.default.shape({ id: index.default.string, label: index.default.string })), globalFiltersIconDescription: index.default.string, globalFiltersLabel: index.default.string, globalFiltersPlaceholderText: index.default.string, globalFiltersPrimaryButtonText: index.default.string, globalFiltersSecondaryButtonText: index.default.string, globalSearchLabel: index.default.string.isRequired, globalSearchPlaceholder: index.default.string, globalSortBy: index.default.array, illustrationTheme: index.default.oneOf(['light', 'dark']), influencerTitle: index.default.string, /**@ts-ignore */ items: index.default.shape({ modifiers: index.default.shape({ id: index.default.string, label: index.default.string, options: index.default.array, multiSelect: index.default.bool }), sortBy: index.default.array, filterBy: index.default.array, entries: index.default.arrayOf(index.default.shape({ avatar: index.default.shape({ alt: index.default.string, icon: index.default.func, src: index.default.string, theme: index.default.oneOf(['light', 'dark']) }), children: index.default.object, icon: index.default.func, id: index.default.string.isRequired, meta: index.default.oneOfType([index.default.arrayOf(index.default.shape({ id: index.default.string, title: index.default.string, value: index.default.string })), index.default.node]), subtitle: index.default.string, title: index.default.string.isRequired, value: index.default.string.isRequired })).isRequired }).isRequired, itemsLabel: index.default.string.isRequired, metaIconDescription: index.default.string, metaPanelTitle: index.default.string, multi: index.default.bool.isRequired, navIconDescription: index.default.string, noResultsDescription: index.default.string.isRequired, noResultsTitle: index.default.string.isRequired, noSelectionDescription: index.default.string, noSelectionTitle: index.default.string, onClose: index.default.func.isRequired, onCloseButtonText: index.default.string.isRequired, onSubmit: index.default.func.isRequired, onSubmitButtonText: index.default.string.isRequired, open: index.default.bool.isRequired, /** * portal target for the all tags modal */ /**@ts-ignore */ portalTarget: index.default.node, searchResultsTitle: index.default.string, sortByLabel: index.default.string, title: index.default.string.isRequired }; AddSelect.displayName = componentName; exports.AddSelect = AddSelect;