1 | import { __rest } from "tslib";
|
2 | import * as React from 'react';
|
3 | import styles from '@patternfly/react-styles/css/components/Toolbar/toolbar';
|
4 | import { css } from '@patternfly/react-styles';
|
5 | import { canUseDOM } from '../../helpers/util';
|
6 | import { ToolbarItem } from './ToolbarItem';
|
7 | import { Button } from '../Button';
|
8 | import { ToolbarGroup } from './ToolbarGroup';
|
9 | import { globalBreakpoints } from './ToolbarUtils';
|
10 | export class ToolbarChipGroupContent extends React.Component {
|
11 | render() {
|
12 | const _a = this.props, { className, isExpanded, chipGroupContentRef, clearAllFilters, showClearFiltersButton, clearFiltersButtonText, collapseListedFiltersBreakpoint, numberOfFilters, numberOfFiltersText, customChipGroupContent } = _a, props = __rest(_a, ["className", "isExpanded", "chipGroupContentRef", "clearAllFilters", "showClearFiltersButton", "clearFiltersButtonText", "collapseListedFiltersBreakpoint", "numberOfFilters", "numberOfFiltersText", "customChipGroupContent"]);
|
13 | const clearChipGroups = () => {
|
14 | clearAllFilters();
|
15 | };
|
16 | let collapseListedFilters = false;
|
17 | if (collapseListedFiltersBreakpoint === 'all') {
|
18 | collapseListedFilters = true;
|
19 | }
|
20 | else if (canUseDOM) {
|
21 | collapseListedFilters =
|
22 | (canUseDOM ? window.innerWidth : 1200) < globalBreakpoints[collapseListedFiltersBreakpoint];
|
23 | }
|
24 | return (React.createElement("div", Object.assign({ className: css(styles.toolbarContent, (numberOfFilters === 0 || isExpanded) && styles.modifiers.hidden, className) }, ((numberOfFilters === 0 || isExpanded) && { hidden: true }), { ref: chipGroupContentRef }, props),
|
25 | React.createElement(ToolbarGroup, Object.assign({ className: css(collapseListedFilters && styles.modifiers.hidden) }, (collapseListedFilters && { hidden: true }), (collapseListedFilters && { 'aria-hidden': true }))),
|
26 | collapseListedFilters && numberOfFilters > 0 && !isExpanded && (React.createElement(ToolbarGroup, null,
|
27 | React.createElement(ToolbarItem, null, numberOfFiltersText(numberOfFilters)))),
|
28 | showClearFiltersButton && !isExpanded && !customChipGroupContent && (React.createElement(ToolbarItem, null,
|
29 | React.createElement(Button, { variant: "link", onClick: clearChipGroups, isInline: true }, clearFiltersButtonText))),
|
30 | customChipGroupContent && customChipGroupContent));
|
31 | }
|
32 | }
|
33 | ToolbarChipGroupContent.displayName = 'ToolbarChipGroupContent';
|
34 | ToolbarChipGroupContent.defaultProps = {
|
35 | clearFiltersButtonText: 'Clear all filters',
|
36 | collapseListedFiltersBreakpoint: 'lg',
|
37 | numberOfFiltersText: (numberOfFilters) => `${numberOfFilters} filters applied`
|
38 | };
|
39 |
|
\ | No newline at end of file |