UNPKG

@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

58 lines 3.27 kB
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 { warnOnce } from '@awsui/component-toolkit/internal'; 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 PropertyFilterInternal from './internal'; import analyticsSelectors from './analytics-metadata/styles.css.js'; const PropertyFilter = React.forwardRef((_a, ref) => { var _b; var { filteringProperties, filteringOptions = [], customGroupsText = [], enableTokenGroups = false, disableFreeTextFiltering = false, asyncProperties, expandToViewport, hideOperations = false, tokenLimit, virtualScroll } = _a, rest = __rest(_a, ["filteringProperties", "filteringOptions", "customGroupsText", "enableTokenGroups", "disableFreeTextFiltering", "asyncProperties", "expandToViewport", "hideOperations", "tokenLimit", "virtualScroll"]); let hasCustomForms = false; let hasEnumTokens = false; let hasCustomFormatters = false; for (const property of filteringProperties) { for (const operator of (_b = property.operators) !== null && _b !== void 0 ? _b : []) { if (typeof operator === 'object') { hasCustomForms = hasCustomForms || !!operator.form; hasEnumTokens = hasEnumTokens || operator.tokenType === 'enum'; hasCustomFormatters = hasCustomFormatters || !!operator.format; } } } const baseComponentProps = useBaseComponent('PropertyFilter', { props: { asyncProperties, disableFreeTextFiltering, enableTokenGroups, expandToViewport, hideOperations, tokenLimit, virtualScroll, }, metadata: { hasCustomForms, hasEnumTokens, hasCustomFormatters, }, }); const componentAnalyticsMetadata = { name: 'awsui.PropertyFilter', label: `.${analyticsSelectors['search-field']} input`, properties: { disabled: `${!!rest.disabled}`, queryTokensCount: `${rest.query && rest.query.tokens ? rest.query.tokens.length : 0}`, }, }; if (hideOperations && enableTokenGroups) { warnOnce('PropertyFilter', 'Operations cannot be hidden when token groups are enabled.'); hideOperations = false; } return (React.createElement(PropertyFilterInternal, Object.assign({ ref: ref }, baseComponentProps, { filteringProperties: filteringProperties, filteringOptions: filteringOptions, customGroupsText: customGroupsText, enableTokenGroups: enableTokenGroups, disableFreeTextFiltering: disableFreeTextFiltering, asyncProperties: asyncProperties, expandToViewport: expandToViewport, hideOperations: hideOperations, tokenLimit: tokenLimit, virtualScroll: virtualScroll }, getAnalyticsMetadataAttribute({ component: componentAnalyticsMetadata }), rest))); }); applyDisplayName(PropertyFilter, 'PropertyFilter'); export default PropertyFilter; //# sourceMappingURL=index.js.map