@flexis/ui
Version:
Styleless React Components
119 lines (95 loc) • 7.29 kB
JavaScript
"use strict";
var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
var _Object$defineProperty = require("@babel/runtime-corejs3/core-js-stable/object/define-property");
_Object$defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _extends2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/extends"));
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/defineProperty"));
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/objectWithoutProperties"));
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/classCallCheck"));
var _createClass2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/createClass"));
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/possibleConstructorReturn"));
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/getPrototypeOf"));
var _inherits2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/inherits"));
var _react = _interopRequireDefault(require("react"));
var _propTypes = _interopRequireDefault(require("prop-types"));
var _types = require("../common/types");
var _LinkSt = require("./Link.st.css");
var _createElement = _react.default.createElement;
var PureComponent = _react.default.PureComponent,
Children = _react.default.Children,
cloneElement = _react.default.cloneElement;
var safeTargetBlankRel = 'noopener noreferrer';
var Link =
/** @class */
function () {
var Link = /*#__PURE__*/function (_PureComponent) {
(0, _inherits2.default)(Link, _PureComponent);
function Link() {
(0, _classCallCheck2.default)(this, Link);
return (0, _possibleConstructorReturn2.default)(this, (0, _getPrototypeOf2.default)(Link).apply(this, arguments));
}
(0, _createClass2.default)(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 = (0, _objectWithoutProperties2.default)(_this$props, ["className", "elementRef", "icon", "flexIcon", "alignIcon", "rel", "target", "children", "linkElement", "linkElementCustomProps"]);
var iconOnly = !Children.count(children);
var leftAligned = alignIcon === _types.AlignSideVariant.Left;
var linkIcon = null;
if (typeof icon !== 'undefined') {
linkIcon = cloneElement(icon, {
className: (0, _LinkSt.style)(_LinkSt.classes.icon, (0, _defineProperty2.default)({}, "".concat(alignIcon, "Align"), Boolean(alignIcon) && !iconOnly), icon.props.className)
});
}
return _createElement(LinkElement, (0, _extends2.default)({
ref: elementRef
}, props, {
className: (0, _LinkSt.style)(_LinkSt.classes.root, {
withIcon: Boolean(linkIcon),
flexIcon: flexIcon
}, className)
}, linkElementCustomProps, {
target: target,
rel: target === '_blank' && typeof rel === 'undefined' ? safeTargetBlankRel : rel
}), linkIcon ? _createElement("div", {
className: _LinkSt.classes.iconContainer
}, leftAligned && linkIcon, !iconOnly && _createElement("span", null, children), !leftAligned && linkIcon) : children);
}
}]);
return Link;
}(PureComponent);
process.env.NODE_ENV !== "production" ? Link.propTypes = {
elementRef: _propTypes.default.func,
icon: _propTypes.default.element,
flexIcon: _propTypes.default.bool,
alignIcon: _propTypes.default.oneOf(_types.AlignSideValues),
rel: _propTypes.default.string,
target: _propTypes.default.string,
children: _propTypes.default.node,
linkElement: _propTypes.default.any,
linkElementCustomProps: _propTypes.default.object
} : void 0;
Link.defaultProps = {
flexIcon: false,
alignIcon: _types.AlignSideVariant.Left,
linkElement: 'a',
linkElementCustomProps: {}
};
return Link;
}();
var _default = Link;
exports.default = _default;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL0xpbmsvTGluay50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBOztBQVNBOztBQUlBOztBQUtBOzs7Ozs7QUFzQkEsSUFBTSxrQkFBa0IsR0FBRyxxQkFBM0I7O0FBRUEsSUFBQSxJQUFBO0FBQUE7QUFBQSxZQUFBO0FBQUEsTUFBcUIsSUFBckI7QUFBQTs7QUFBQTtBQUFBO0FBQUE7QUFBQTs7QUFBQTtBQUFBO0FBQUEsK0JBcUJPO0FBQUEsMEJBY0QsS0FBSyxLQWRKO0FBQUEsWUFHSixTQUhJLGVBR0osU0FISTtBQUFBLFlBSUosVUFKSSxlQUlKLFVBSkk7QUFBQSxZQUtKLElBTEksZUFLSixJQUxJO0FBQUEsWUFNSixRQU5JLGVBTUosUUFOSTtBQUFBLFlBT0osU0FQSSxlQU9KLFNBUEk7QUFBQSxZQVFKLEdBUkksZUFRSixHQVJJO0FBQUEsWUFTSixNQVRJLGVBU0osTUFUSTtBQUFBLFlBVUosUUFWSSxlQVVKLFFBVkk7QUFBQSxZQVdTLFdBWFQsZUFXSixXQVhJO0FBQUEsWUFZSixzQkFaSSxlQVlKLHNCQVpJO0FBQUEsWUFhRCxLQWJDO0FBZUwsWUFBTSxRQUFRLEdBQUcsQ0FBQyxRQUFRLENBQUMsS0FBVCxDQUFlLFFBQWYsQ0FBbEI7QUFDQSxZQUFNLFdBQVcsR0FBRyxTQUFTLEtBQUssd0JBQWlCLElBQW5EO0FBQ0EsWUFBSSxRQUFRLEdBQXNCLElBQWxDOztBQUVBLFlBQUksT0FBTyxJQUFQLEtBQWdCLFdBQXBCLEVBQWlDO0FBQ2hDLFVBQUEsUUFBUSxHQUFHLFlBQVksQ0FDdEIsSUFEc0IsRUFFdEI7QUFDQyxZQUFBLFNBQVMsRUFBRSxtQkFBTSxnQkFBUSxJQUFkLDhDQUNOLFNBRE0sWUFDYSxPQUFPLENBQUMsU0FBRCxDQUFQLElBQXNCLENBQUMsUUFEcEMsR0FFUixJQUFJLENBQUMsS0FBTCxDQUFXLFNBRkg7QUFEWixXQUZzQixDQUF2QjtBQVFBOztBQUVELGVBQ0MsZUFBQyxXQUFEO0FBQ0MsVUFBQSxHQUFHLEVBQUU7QUFETixXQUVLLEtBRkw7QUFHQyxVQUFBLFNBQVMsRUFBRSxtQkFBTSxnQkFBUSxJQUFkLEVBQW9CO0FBQzlCLFlBQUEsUUFBUSxFQUFFLE9BQU8sQ0FBQyxRQUFELENBRGE7QUFFOUIsWUFBQSxRQUFRLEVBQVI7QUFGOEIsV0FBcEIsRUFHUixTQUhRO0FBSFosV0FPSyxzQkFQTDtBQVFDLFVBQUEsTUFBTSxFQUFFLE1BUlQ7QUFTQyxVQUFBLEdBQUcsRUFBRSxNQUFNLEtBQUssUUFBWCxJQUF1QixPQUFPLEdBQVAsS0FBZSxXQUF0QyxHQUNGLGtCQURFLEdBRUY7QUFYSixZQWNFLFFBQVEsR0FDUjtBQUNDLFVBQUEsU0FBUyxFQUFFLGdCQUFRO0FBRHBCLFdBR0UsV0FBVyxJQUFJLFFBSGpCLEVBSUUsQ0FBQyxRQUFELElBQ0EsNkJBQU8sUUFBUCxDQUxGLEVBT0UsQ0FBQyxXQUFELElBQWdCLFFBUGxCLENBRFEsR0FVTCxRQXhCTCxDQUREO0FBNEJBO0FBL0VGO0FBQUE7QUFBQSxJQUFrQyxhQUFsQzs7QUFFUSwwQ0FBQSxJQUFBLENBQUEsU0FBQSxHQUFZO0FBQ2xCLElBQUEsVUFBVSxFQUFjLG1CQUFVLElBRGhCO0FBRWxCLElBQUEsSUFBSSxFQUFvQixtQkFBVSxPQUZoQjtBQUdsQixJQUFBLFFBQVEsRUFBZ0IsbUJBQVUsSUFIaEI7QUFJbEIsSUFBQSxTQUFTLEVBQWUsbUJBQVUsS0FBVixDQUFnQixzQkFBaEIsQ0FKTjtBQUtsQixJQUFBLEdBQUcsRUFBcUIsbUJBQVUsTUFMaEI7QUFNbEIsSUFBQSxNQUFNLEVBQWtCLG1CQUFVLE1BTmhCO0FBT2xCLElBQUEsUUFBUSxFQUFnQixtQkFBVSxJQVBoQjtBQVFsQixJQUFBLFdBQVcsRUFBYSxtQkFBVSxHQVJoQjtBQVNsQixJQUFBLHNCQUFzQixFQUFFLG1CQUFVO0FBVGhCLEdBQVo7QUFZQSxFQUFBLElBQUEsQ0FBQSxZQUFBLEdBQWU7QUFDckIsSUFBQSxRQUFRLEVBQWdCLEtBREg7QUFFckIsSUFBQSxTQUFTLEVBQWUsd0JBQWlCLElBRnBCO0FBR3JCLElBQUEsV0FBVyxFQUFhLEdBSEg7QUFJckIsSUFBQSxzQkFBc0IsRUFBRTtBQUpILEdBQWY7QUFrRVIsU0FBQSxJQUFBO0FBQUMsQ0FoRkQsRUFBQTs7ZUFBcUIsSSIsInNvdXJjZVJvb3QiOiIifQ==