Repository URL to install this package:
|
Version:
2.8.0-studio-release ▾
|
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
const tslib_1 = require("tslib");
const react_1 = tslib_1.__importDefault(require("react"));
const classnames_1 = tslib_1.__importDefault(require("classnames")); // @todo
const MaterialIcon_1 = require("../../atoms/MaterialIcon");
const styled_1 = require("./styled");
const AccordionHeader_1 = require("./AccordionHeader");
function toTitle(props) {
const title = props.children || props.text || props.title;
const activeText = props.activeText || title;
return props.isActive === true ? activeText : title;
} // renderText
// renderIcon
class AccordionTitle extends react_1.default.PureComponent {
constructor() {
super(...arguments);
this.handleClick = event => {
const {
isDisabled,
onToggle
} = this.props;
if (isDisabled === true) {
console.info('[Accordion] item disabled!');
} else {
onToggle(event);
}
};
}
get title() {
return toTitle(this.props);
}
/**
* change to only renderProp
*/
get defaultIcon() {
const {
isActive,
isPlusMinus
} = this.props;
if (isPlusMinus === true) {
return react_1.default.createElement(MaterialIcon_1.MaterialIcon, {
type: isActive ? 'minus' : 'plus'
});
} else {
return react_1.default.createElement(MaterialIcon_1.MaterialIcon, {
type: isActive ? 'up' : 'down'
});
}
}
render() {
const {
isDisabled,
isActive,
shouldShowArrowIcon
} = this.props;
const title = this.title; // @todo - into styled
const className = classnames_1.default({
title: true,
down: isActive,
disable: isDisabled
});
const defaultIcon = shouldShowArrowIcon === true ? this.defaultIcon : '';
return react_1.default.createElement(AccordionHeader_1.AccordionHeader, {
key: "accordion-header",
onClick: this.handleClick,
className: className,
"aria-expanded": !isActive,
"data-qa": this.props['data-qa']
}, react_1.default.createElement(styled_1.TitleSpan, null, react_1.default.createElement(styled_1.Title, {
key: "title"
}, title), defaultIcon));
}
}
AccordionTitle.defaultProps = {
title: '',
isActive: false,
isDisabled: false,
defaultIcon: '',
qa: ''
};
exports.AccordionTitle = AccordionTitle;
exports.default = AccordionTitle; //# sourceMappingURL=AccordionTitle.js.map