UNPKG

@flexis/ui

Version:

Styleless React Components

97 lines (87 loc) 6.6 kB
import _extends from "@babel/runtime-corejs3/helpers/extends"; import _defineProperty from "@babel/runtime-corejs3/helpers/defineProperty"; import _objectWithoutProperties from "@babel/runtime-corejs3/helpers/objectWithoutProperties"; import _classCallCheck from "@babel/runtime-corejs3/helpers/classCallCheck"; import _createClass from "@babel/runtime-corejs3/helpers/createClass"; import _possibleConstructorReturn from "@babel/runtime-corejs3/helpers/possibleConstructorReturn"; import _getPrototypeOf from "@babel/runtime-corejs3/helpers/getPrototypeOf"; import _inherits from "@babel/runtime-corejs3/helpers/inherits"; import React from 'react'; var _createElement = React.createElement; var PureComponent = React.PureComponent, Children = React.Children, cloneElement = React.cloneElement; import PropTypes from 'prop-types'; import { AlignSideVariant, AlignSideValues } from '../common/types'; import { style, classes } from './Link.st.css'; var safeTargetBlankRel = 'noopener noreferrer'; var Link = /** @class */ function () { var Link = /*#__PURE__*/function (_PureComponent) { _inherits(Link, _PureComponent); function Link() { _classCallCheck(this, Link); return _possibleConstructorReturn(this, _getPrototypeOf(Link).apply(this, arguments)); } _createClass(Link, [{ key: "render", value: function render() { var _this$props = this.props, className = _this$props.className, elementRef = _this$props.elementRef, icon = _this$props.icon, flexIcon = _this$props.flexIcon, alignIcon = _this$props.alignIcon, rel = _this$props.rel, target = _this$props.target, children = _this$props.children, LinkElement = _this$props.linkElement, linkElementCustomProps = _this$props.linkElementCustomProps, props = _objectWithoutProperties(_this$props, ["className", "elementRef", "icon", "flexIcon", "alignIcon", "rel", "target", "children", "linkElement", "linkElementCustomProps"]); var iconOnly = !Children.count(children); var leftAligned = alignIcon === AlignSideVariant.Left; var linkIcon = null; if (typeof icon !== 'undefined') { linkIcon = cloneElement(icon, { className: style(classes.icon, _defineProperty({}, "".concat(alignIcon, "Align"), Boolean(alignIcon) && !iconOnly), icon.props.className) }); } return _createElement(LinkElement, _extends({ ref: elementRef }, props, { className: style(classes.root, { withIcon: Boolean(linkIcon), flexIcon: flexIcon }, className) }, linkElementCustomProps, { target: target, rel: target === '_blank' && typeof rel === 'undefined' ? safeTargetBlankRel : rel }), linkIcon ? _createElement("div", { className: classes.iconContainer }, leftAligned && linkIcon, !iconOnly && _createElement("span", null, children), !leftAligned && linkIcon) : children); } }]); return Link; }(PureComponent); process.env.NODE_ENV !== "production" ? Link.propTypes = { elementRef: PropTypes.func, icon: PropTypes.element, flexIcon: PropTypes.bool, alignIcon: PropTypes.oneOf(AlignSideValues), rel: PropTypes.string, target: PropTypes.string, children: PropTypes.node, linkElement: PropTypes.any, linkElementCustomProps: PropTypes.object } : void 0; Link.defaultProps = { flexIcon: false, alignIcon: AlignSideVariant.Left, linkElement: 'a', linkElementCustomProps: {} }; return Link; }(); export default Link; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL0xpbmsvTGluay50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFBQSxPQUFPLEtBQVAsTUFRTyxPQVJQOzs7OztBQVNBLE9BQU8sU0FBUCxNQUFzQixZQUF0QjtBQUlBLFNBRUMsZ0JBRkQsRUFHQyxlQUhELFFBSU8saUJBSlA7QUFLQSxTQUNDLEtBREQsRUFFQyxPQUZELFFBR08sZUFIUDtBQXNCQSxJQUFNLGtCQUFrQixHQUFHLHFCQUEzQjs7QUFFQSxJQUFBLElBQUE7QUFBQTtBQUFBLFlBQUE7QUFBQSxNQUFxQixJQUFyQjtBQUFBOztBQUFBO0FBQUE7O0FBQUE7QUFBQTs7QUFBQTtBQUFBO0FBQUEsK0JBcUJPO0FBQUEsMEJBY0QsS0FBSyxLQWRKO0FBQUEsWUFHSixTQUhJLGVBR0osU0FISTtBQUFBLFlBSUosVUFKSSxlQUlKLFVBSkk7QUFBQSxZQUtKLElBTEksZUFLSixJQUxJO0FBQUEsWUFNSixRQU5JLGVBTUosUUFOSTtBQUFBLFlBT0osU0FQSSxlQU9KLFNBUEk7QUFBQSxZQVFKLEdBUkksZUFRSixHQVJJO0FBQUEsWUFTSixNQVRJLGVBU0osTUFUSTtBQUFBLFlBVUosUUFWSSxlQVVKLFFBVkk7QUFBQSxZQVdTLFdBWFQsZUFXSixXQVhJO0FBQUEsWUFZSixzQkFaSSxlQVlKLHNCQVpJO0FBQUEsWUFhRCxLQWJDOztBQWVMLFlBQU0sUUFBUSxHQUFHLENBQUMsUUFBUSxDQUFDLEtBQVQsQ0FBZSxRQUFmLENBQWxCO0FBQ0EsWUFBTSxXQUFXLEdBQUcsU0FBUyxLQUFLLGdCQUFnQixDQUFDLElBQW5EO0FBQ0EsWUFBSSxRQUFRLEdBQXNCLElBQWxDOztBQUVBLFlBQUksT0FBTyxJQUFQLEtBQWdCLFdBQXBCLEVBQWlDO0FBQ2hDLFVBQUEsUUFBUSxHQUFHLFlBQVksQ0FDdEIsSUFEc0IsRUFFdEI7QUFDQyxZQUFBLFNBQVMsRUFBRSxLQUFLLENBQUMsT0FBTyxDQUFDLElBQVQsZ0NBQ1gsU0FEVyxZQUNRLE9BQU8sQ0FBQyxTQUFELENBQVAsSUFBc0IsQ0FBQyxRQUQvQixHQUViLElBQUksQ0FBQyxLQUFMLENBQVcsU0FGRTtBQURqQixXQUZzQixDQUF2QjtBQVFBOztBQUVELGVBQ0MsZUFBQyxXQUFEO0FBQ0MsVUFBQSxHQUFHLEVBQUU7QUFETixXQUVLLEtBRkw7QUFHQyxVQUFBLFNBQVMsRUFBRSxLQUFLLENBQUMsT0FBTyxDQUFDLElBQVQsRUFBZTtBQUM5QixZQUFBLFFBQVEsRUFBRSxPQUFPLENBQUMsUUFBRCxDQURhO0FBRTlCLFlBQUEsUUFBUSxFQUFSO0FBRjhCLFdBQWYsRUFHYixTQUhhO0FBSGpCLFdBT0ssc0JBUEw7QUFRQyxVQUFBLE1BQU0sRUFBRSxNQVJUO0FBU0MsVUFBQSxHQUFHLEVBQUUsTUFBTSxLQUFLLFFBQVgsSUFBdUIsT0FBTyxHQUFQLEtBQWUsV0FBdEMsR0FDRixrQkFERSxHQUVGO0FBWEosWUFjRSxRQUFRLEdBQ1I7QUFDQyxVQUFBLFNBQVMsRUFBRSxPQUFPLENBQUM7QUFEcEIsV0FHRSxXQUFXLElBQUksUUFIakIsRUFJRSxDQUFDLFFBQUQsSUFDQSw2QkFBTyxRQUFQLENBTEYsRUFPRSxDQUFDLFdBQUQsSUFBZ0IsUUFQbEIsQ0FEUSxHQVVMLFFBeEJMLENBREQ7QUE0QkE7QUEvRUY7O0FBQUE7QUFBQSxJQUFrQyxhQUFsQzs7QUFFUSwwQ0FBQSxJQUFBLENBQUEsU0FBQSxHQUFZO0FBQ2xCLElBQUEsVUFBVSxFQUFjLFNBQVMsQ0FBQyxJQURoQjtBQUVsQixJQUFBLElBQUksRUFBb0IsU0FBUyxDQUFDLE9BRmhCO0FBR2xCLElBQUEsUUFBUSxFQUFnQixTQUFTLENBQUMsSUFIaEI7QUFJbEIsSUFBQSxTQUFTLEVBQWUsU0FBUyxDQUFDLEtBQVYsQ0FBZ0IsZUFBaEIsQ0FKTjtBQUtsQixJQUFBLEdBQUcsRUFBcUIsU0FBUyxDQUFDLE1BTGhCO0FBTWxCLElBQUEsTUFBTSxFQUFrQixTQUFTLENBQUMsTUFOaEI7QUFPbEIsSUFBQSxRQUFRLEVBQWdCLFNBQVMsQ0FBQyxJQVBoQjtBQVFsQixJQUFBLFdBQVcsRUFBYSxTQUFTLENBQUMsR0FSaEI7QUFTbEIsSUFBQSxzQkFBc0IsRUFBRSxTQUFTLENBQUM7QUFUaEIsR0FBWjtBQVlBLEVBQUEsSUFBQSxDQUFBLFlBQUEsR0FBZTtBQUNyQixJQUFBLFFBQVEsRUFBZ0IsS0FESDtBQUVyQixJQUFBLFNBQVMsRUFBZSxnQkFBZ0IsQ0FBQyxJQUZwQjtBQUdyQixJQUFBLFdBQVcsRUFBYSxHQUhIO0FBSXJCLElBQUEsc0JBQXNCLEVBQUU7QUFKSCxHQUFmO0FBa0VSLFNBQUEsSUFBQTtBQUFDLENBaEZELEVBQUE7O2VBQXFCLEkiLCJzb3VyY2VSb290IjoiIn0=