UNPKG

suomifi-ui-components

Version:
103 lines (97 loc) 5 kB
'use strict'; var tslib = require('tslib'); var React = require('react'); var styled = require('styled-components'); var classnames = require('classnames'); require('../../../reset/HtmlA/HtmlA.js'); var HtmlButton = require('../../../reset/HtmlButton/HtmlButton.js'); var HtmlDiv = require('../../../reset/HtmlDiv/HtmlDiv.js'); require('../../../reset/HtmlFieldSet/HtmlFieldSet.js'); require('../../../reset/HtmlH/HtmlH.js'); require('../../../reset/HtmlInput/HtmlInput.js'); require('../../../reset/HtmlLabel/HtmlLabel.js'); require('../../../reset/HtmlLegend/HtmlLegend.js'); require('../../../reset/HtmlLi/HtmlLi.js'); require('../../../reset/HtmlNav/HtmlNav.js'); require('../../../reset/HtmlOl/HtmlOl.js'); var HtmlSpan = require('../../../reset/HtmlSpan/HtmlSpan.js'); require('../../../reset/HtmlTextarea/HtmlTextarea.js'); require('../../../reset/HtmlUl/HtmlUl.js'); require('../../../reset/HtmlTable/HtmlTable.js'); require('../../../reset/HtmlTable/HtmlTableCaption.js'); require('../../../reset/HtmlTable/HtmlTableHeader.js'); require('../../../reset/HtmlTable/HtmlTableRow.js'); require('../../../reset/HtmlTable/HtmlTableBody.js'); require('../../../reset/HtmlTable/HtmlTableHeaderCell.js'); require('../../../reset/HtmlTable/HtmlTableCell.js'); var SuomifiThemeProvider = require('../../theme/SuomifiThemeProvider/SuomifiThemeProvider.js'); require('../../theme/SuomifiTheme/SuomifiTheme.js'); require('../../theme/SpacingProvider/SpacingProvider.js'); var Expander = require('../Expander/Expander.js'); var ExpanderTitleButton_baseStyles = require('./ExpanderTitleButton.baseStyles.js'); var suomifiIcons = require('suomifi-icons'); function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; } var React__default = /*#__PURE__*/_interopDefault(React); var classnames__default = /*#__PURE__*/_interopDefault(classnames); var baseClassName = 'fi-expander_title-button'; var titleOpenClassName = "".concat(baseClassName, "--open"); var titleButtonClassName = "".concat(baseClassName, "_button"); var iconClassName = "".concat(baseClassName, "-icon"); var iconOpenClassName = "".concat(iconClassName, "--open"); var BaseExpanderTitleButton = function (_super) { tslib.__extends(BaseExpanderTitleButton, _super); function BaseExpanderTitleButton() { return _super !== null && _super.apply(this, arguments) || this; } BaseExpanderTitleButton.prototype.render = function () { var _a, _b; var _c = this.props, asHeading = _c.asHeading, children = _c.children, className = _c.className; _c.theme; var toggleButtonProps = _c.toggleButtonProps, consumer = _c.consumer, forwardedRef = _c.forwardedRef, passProps = tslib.__rest(_c, ["asHeading", "children", "className", "theme", "toggleButtonProps", "consumer", "forwardedRef"]); return /*#__PURE__*/React__default.default.createElement(HtmlDiv.HtmlDiv, tslib.__assign({}, passProps, { className: classnames__default.default(className, baseClassName, (_a = {}, _a[titleOpenClassName] = !!consumer.open, _a)) }), /*#__PURE__*/React__default.default.createElement(HtmlSpan.HtmlSpan, tslib.__assign({}, !!asHeading ? { as: asHeading } : {}), /*#__PURE__*/React__default.default.createElement(HtmlButton.HtmlButton, tslib.__assign({ forwardedRef: forwardedRef }, toggleButtonProps, { onClick: consumer.onToggleExpander, "aria-expanded": !!consumer.open, className: titleButtonClassName, "aria-controls": consumer.contentId }), /*#__PURE__*/React__default.default.createElement(HtmlSpan.HtmlSpan, { id: consumer.titleId }, children), /*#__PURE__*/React__default.default.createElement(suomifiIcons.IconChevronDown, { className: classnames__default.default(iconClassName, (_b = {}, _b[iconOpenClassName] = consumer.open, _b)) })))); }; return BaseExpanderTitleButton; }(React.Component); var StyledExpanderTitle = styled.styled(BaseExpanderTitleButton).withConfig({ componentId: "sc-1ulzrr5-0" })(templateObject_1 || (templateObject_1 = tslib.__makeTemplateObject(["\n ", "\n"], ["\n ", "\n"])), function (_a) { var theme = _a.theme; return ExpanderTitleButton_baseStyles.expanderTitleButtonBaseStyles(theme); }); var ExpanderTitleButton = /*#__PURE__*/React.forwardRef(function (props, ref) { return /*#__PURE__*/React__default.default.createElement(SuomifiThemeProvider.SuomifiThemeConsumer, null, function (_a) { var suomifiTheme = _a.suomifiTheme; return /*#__PURE__*/React__default.default.createElement(Expander.ExpanderConsumer, null, function (consumer) { return /*#__PURE__*/React__default.default.createElement(StyledExpanderTitle, tslib.__assign({ theme: suomifiTheme, consumer: consumer, forwardedRef: ref }, props)); }); }); }); ExpanderTitleButton.displayName = 'ExpanderTitleButton'; var templateObject_1; exports.ExpanderTitleButton = ExpanderTitleButton; //# sourceMappingURL=ExpanderTitleButton.js.map