@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
35 lines • 2.46 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 { getBaseProps } from '../internal/base-component';
import useBaseComponent from '../internal/hooks/use-base-component';
import { applyDisplayName } from '../internal/utils/apply-display-name';
import InternalButtonDropdown from './internal';
import { hasCheckboxItems, hasDisabledReasonItems } from './utils/utils';
import analyticsSelectors from './analytics-metadata/styles.css.js';
const ButtonDropdown = React.forwardRef((_a, ref) => {
var { items, variant = 'normal', loading = false, loadingText, disabled = false, disabledReason, expandableGroups = false, expandToViewport = false, ariaLabel, children, onItemClick, onItemFollow, mainAction, fullWidth } = _a, props = __rest(_a, ["items", "variant", "loading", "loadingText", "disabled", "disabledReason", "expandableGroups", "expandToViewport", "ariaLabel", "children", "onItemClick", "onItemFollow", "mainAction", "fullWidth"]);
const baseComponentProps = useBaseComponent('ButtonDropdown', {
props: { expandToViewport, expandableGroups, variant },
metadata: {
mainAction: !!mainAction,
checkboxItems: hasCheckboxItems(items),
hasDisabledReason: Boolean(disabledReason),
hasDisabledReasons: hasDisabledReasonItems(items),
},
});
const baseProps = getBaseProps(props);
const analyticsComponentMetadata = {
name: 'awsui.ButtonDropdown',
label: `.${analyticsSelectors['trigger-label']}`,
properties: { variant, disabled: `${disabled}` },
};
return (React.createElement(InternalButtonDropdown, Object.assign({}, baseProps, baseComponentProps, { ref: ref, items: items, variant: variant, loading: loading, loadingText: loadingText, disabled: disabled, disabledReason: disabledReason, expandableGroups: expandableGroups, expandToViewport: expandToViewport, ariaLabel: ariaLabel, onItemClick: onItemClick, onItemFollow: onItemFollow, mainAction: mainAction, fullWidth: fullWidth }, getAnalyticsMetadataAttribute({
component: analyticsComponentMetadata,
})), children));
});
applyDisplayName(ButtonDropdown, 'ButtonDropdown');
export default ButtonDropdown;
//# sourceMappingURL=index.js.map