UNPKG

suomifi-ui-components

Version:
143 lines (137 loc) 6.39 kB
'use strict'; var tslib = require('tslib'); var React = require('react'); var styledComponents = require('styled-components'); var classnames = require('classnames'); require('../../../reset/HtmlA/HtmlA.js'); 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'); 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 suomifiIcons = require('suomifi-icons'); var AutoId = require('../../utils/AutoId/AutoId.js'); var SuomifiThemeProvider = require('../../theme/SuomifiThemeProvider/SuomifiThemeProvider.js'); require('../../theme/SuomifiTheme/SuomifiTheme.js'); require('../../theme/SpacingProvider/SpacingProvider.js'); var spacing = require('../../theme/utils/spacing.js'); var ErrorSummary_baseStyles = require('./ErrorSummary.baseStyles.js'); var Heading = require('../../Heading/Heading.js'); var Link = require('../../Link/Link/Link.js'); require('../../Link/ExternalLink/ExternalLink.js'); require('../../Link/SkipLink/SkipLink.js'); require('../../Link/RouterLink/RouterLink.js'); require('../../Link/LinkListItem/LinkListItem.js'); require('../../Link/LinkList/LinkList.js'); 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-error-summary'; var inlineAlertClassNames = { styleWrapper: "".concat(baseClassName, "_style-wrapper"), content: "".concat(baseClassName, "_content"), heading: "".concat(baseClassName, "_heading"), textContentWrapper: "".concat(baseClassName, "_text-content-wrapper"), icon: "".concat(baseClassName, "_icon"), smallScreen: "".concat(baseClassName, "--small-screen") }; var BaseErrorSummary = function BaseErrorSummary(props) { var _a; var className = props.className, headingText = props.headingText, _b = props.headingVariant, headingVariant = _b === void 0 ? 'h3' : _b, headingRef = props.headingRef, items = props.items, smallScreen = props.smallScreen, id = props.id; props.forwardedRef; var rest = tslib.__rest(props, ["className", "headingText", "headingVariant", "headingRef", "items", "smallScreen", "id", "forwardedRef"]); var _c = spacing.separateMarginProps(rest), passProps = _c[1]; var focusInput = function focusInput(event, errorItem) { event.preventDefault(); if (errorItem.inputRef && errorItem.inputRef.current) { errorItem.inputRef.current.focus(); } else if (errorItem.inputId && errorItem.inputId !== '') { var element = document.getElementById(errorItem.inputId); if (element) { element.focus(); } } }; return /*#__PURE__*/React__default.default.createElement(HtmlDiv.HtmlDivWithRef, tslib.__assign({ asProp: "section" }, passProps, { className: classnames__default.default(baseClassName, className, (_a = {}, _a[inlineAlertClassNames.smallScreen] = !!smallScreen, _a)), style: tslib.__assign({}, passProps === null || passProps === void 0 ? void 0 : passProps.style) }), /*#__PURE__*/React__default.default.createElement(HtmlDiv.HtmlDiv, { className: inlineAlertClassNames.styleWrapper }, /*#__PURE__*/React__default.default.createElement(suomifiIcons.IconErrorFilled, { className: classnames__default.default(inlineAlertClassNames.icon) }), /*#__PURE__*/React__default.default.createElement(HtmlDiv.HtmlDiv, { className: inlineAlertClassNames.textContentWrapper, id: id }, /*#__PURE__*/React__default.default.createElement(Heading.Heading, { variant: headingVariant, className: inlineAlertClassNames.heading, ref: headingRef, tabIndex: 0 }, headingText), /*#__PURE__*/React__default.default.createElement(HtmlDiv.HtmlDiv, { className: inlineAlertClassNames.content }, items && ( /*#__PURE__*/React__default.default.createElement("ul", null, items.map(function (item) { return /*#__PURE__*/React__default.default.createElement("li", { key: item.text }, /*#__PURE__*/React__default.default.createElement(Link.Link, { href: item.inputId || '#', onClick: function onClick(event) { focusInput(event, item); } }, item.text)); }))))))); }; var StyledErrorSummary = styledComponents.styled(function (props) { props.theme; var passProps = tslib.__rest(props, ["theme"]); return /*#__PURE__*/React__default.default.createElement(BaseErrorSummary, tslib.__assign({}, passProps)); }).withConfig({ componentId: "sc-8gw4oz-0" })(templateObject_1 || (templateObject_1 = tslib.__makeTemplateObject(["\n ", "\n"], ["\n ", "\n"])), function (_a) { var theme = _a.theme; return ErrorSummary_baseStyles.baseStyles(theme); }); var ErrorSummary = /*#__PURE__*/React.forwardRef(function (props, ref) { var propId = props.id, passProps = tslib.__rest(props, ["id"]); return /*#__PURE__*/React__default.default.createElement(SuomifiThemeProvider.SuomifiThemeConsumer, null, function (_a) { var suomifiTheme = _a.suomifiTheme; return /*#__PURE__*/React__default.default.createElement(AutoId.AutoId, { id: propId }, function (id) { return /*#__PURE__*/React__default.default.createElement(StyledErrorSummary, tslib.__assign({ forwardedRef: ref, theme: suomifiTheme, id: id }, passProps)); }); }); }); ErrorSummary.displayName = 'ErrorSummary'; var templateObject_1; exports.ErrorSummary = ErrorSummary; //# sourceMappingURL=ErrorSummary.js.map