@awsui/components-react
Version:
On July 19th, 2022, we launched [Cloudscape Design System](https://cloudscape.design). Cloudscape is an evolution of AWS-UI. It consists of user interface guidelines, front-end components, design resources, and development tools for building intuitive, en
40 lines • 2.22 kB
JavaScript
import { __rest } from "tslib";
// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
// SPDX-License-Identifier: Apache-2.0
import React from 'react';
import { getAnalyticsMetadataAttribute } from '@awsui/component-toolkit/internal/analytics-metadata';
import useBaseComponent from '../internal/hooks/use-base-component';
import { applyDisplayName } from '../internal/utils/apply-display-name';
import InternalMultiselect from './internal';
import buttonTriggerAnalyticsSelectors from '../internal/components/button-trigger/analytics-metadata/styles.css.js';
const Multiselect = React.forwardRef((_a, ref) => {
var { options = [], filteringType = 'none', statusType = 'finished', selectedOptions = [], keepOpen = true, hideTokens = false } = _a, restProps = __rest(_a, ["options", "filteringType", "statusType", "selectedOptions", "keepOpen", "hideTokens"]);
const baseComponentProps = useBaseComponent('Multiselect', {
props: {
inlineTokens: restProps.inlineTokens,
autoFocus: restProps.autoFocus,
expandToViewport: restProps.expandToViewport,
filteringType,
hideTokens,
keepOpen,
tokenLimit: restProps.tokenLimit,
virtualScroll: restProps.virtualScroll,
readOnly: restProps.readOnly,
},
metadata: {
hasDisabledReasons: options.some(option => Boolean(option.disabledReason)),
},
});
const componentAnalyticsMetadata = {
name: 'awsui.Multiselect',
label: `.${buttonTriggerAnalyticsSelectors['button-trigger']}`,
properties: {
disabled: `${!!restProps.disabled}`,
selectedOptionsCount: `${selectedOptions.length}`,
},
};
return (React.createElement(InternalMultiselect, Object.assign({ options: options, filteringType: filteringType, statusType: statusType, selectedOptions: selectedOptions, keepOpen: keepOpen, hideTokens: hideTokens }, restProps, baseComponentProps, { ref: ref }, getAnalyticsMetadataAttribute({ component: componentAnalyticsMetadata }))));
});
applyDisplayName(Multiselect, 'Multiselect');
export default Multiselect;
//# sourceMappingURL=index.js.map