1 | "use strict";
|
2 | Object.defineProperty(exports, "__esModule", { value: true });
|
3 | exports.ToolbarFilter = void 0;
|
4 | const tslib_1 = require("tslib");
|
5 | const React = tslib_1.__importStar(require("react"));
|
6 | const ReactDOM = tslib_1.__importStar(require("react-dom"));
|
7 | const ToolbarItem_1 = require("./ToolbarItem");
|
8 | const ChipGroup_1 = require("../ChipGroup");
|
9 | const Chip_1 = require("../Chip");
|
10 | const ToolbarUtils_1 = require("./ToolbarUtils");
|
11 | class ToolbarFilter extends React.Component {
|
12 | constructor(props) {
|
13 | super(props);
|
14 | this.state = {
|
15 | isMounted: false
|
16 | };
|
17 | }
|
18 | componentDidMount() {
|
19 | const { categoryName, chips } = this.props;
|
20 | this.context.updateNumberFilters(typeof categoryName !== 'string' && categoryName.hasOwnProperty('key')
|
21 | ? categoryName.key
|
22 | : categoryName.toString(), chips.length);
|
23 | this.setState({ isMounted: true });
|
24 | }
|
25 | componentDidUpdate() {
|
26 | const { categoryName, chips } = this.props;
|
27 | this.context.updateNumberFilters(typeof categoryName !== 'string' && categoryName.hasOwnProperty('key')
|
28 | ? categoryName.key
|
29 | : categoryName.toString(), chips.length);
|
30 | }
|
31 | render() {
|
32 | const _a = this.props, { children, chips, deleteChipGroup, deleteChip, chipGroupExpandedText, chipGroupCollapsedText, categoryName, showToolbarItem } = _a, props = tslib_1.__rest(_a, ["children", "chips", "deleteChipGroup", "deleteChip", "chipGroupExpandedText", "chipGroupCollapsedText", "categoryName", "showToolbarItem"]);
|
33 | const { isExpanded, chipGroupContentRef } = this.context;
|
34 | const categoryKey = typeof categoryName !== 'string' && categoryName.hasOwnProperty('key')
|
35 | ? categoryName.key
|
36 | : categoryName.toString();
|
37 | const chipGroup = chips.length ? (React.createElement(ToolbarItem_1.ToolbarItem, { variant: "chip-group" },
|
38 | React.createElement(ChipGroup_1.ChipGroup, { key: categoryKey, categoryName: typeof categoryName === 'string' ? categoryName : categoryName.name, isClosable: deleteChipGroup !== undefined, onClick: () => deleteChipGroup(categoryName), collapsedText: chipGroupCollapsedText, expandedText: chipGroupExpandedText }, chips.map(chip => typeof chip === 'string' ? (React.createElement(Chip_1.Chip, { key: chip, onClick: () => deleteChip(categoryKey, chip) }, chip)) : (React.createElement(Chip_1.Chip, { key: chip.key, onClick: () => deleteChip(categoryKey, chip) }, chip.node)))))) : null;
|
39 | if (!isExpanded && this.state.isMounted) {
|
40 | return (React.createElement(React.Fragment, null,
|
41 | showToolbarItem && React.createElement(ToolbarItem_1.ToolbarItem, Object.assign({}, props), children),
|
42 | ReactDOM.createPortal(chipGroup, chipGroupContentRef.current.firstElementChild)));
|
43 | }
|
44 | return (React.createElement(ToolbarUtils_1.ToolbarContentContext.Consumer, null, ({ chipContainerRef }) => (React.createElement(React.Fragment, null,
|
45 | showToolbarItem && React.createElement(ToolbarItem_1.ToolbarItem, Object.assign({}, props), children),
|
46 | chipContainerRef.current && ReactDOM.createPortal(chipGroup, chipContainerRef.current)))));
|
47 | }
|
48 | }
|
49 | exports.ToolbarFilter = ToolbarFilter;
|
50 | ToolbarFilter.displayName = 'ToolbarFilter';
|
51 | ToolbarFilter.contextType = ToolbarUtils_1.ToolbarContext;
|
52 | ToolbarFilter.defaultProps = {
|
53 | chips: [],
|
54 | showToolbarItem: true
|
55 | };
|
56 |
|
\ | No newline at end of file |