@kiwicom/orbit-components
Version:
Orbit-components is a React component library which provides developers with the easiest possible way of building Kiwi.com’s products.
102 lines (80 loc) • 3.98 kB
JavaScript
"use strict";
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
var React = _interopRequireWildcard(require("react"));
var _styledComponents = _interopRequireWildcard(require("styled-components"));
var _rtl = require("../utils/rtl");
var _mediaQuery = _interopRequireDefault(require("../utils/mediaQuery"));
var _TextLink = require("../TextLink");
var _defaultTheme = _interopRequireDefault(require("../defaultTheme"));
var _consts = require("../utils/layout/consts");
var _getSpacing = _interopRequireDefault(require("../Stack/helpers/getSpacing"));
var _getDirectionSpacingTemplate = _interopRequireDefault(require("../Stack/helpers/getDirectionSpacingTemplate"));
var StyledLinkList = _styledComponents.default.ul.withConfig({
displayName: "LinkList__StyledLinkList",
componentId: "wz7xd9-0"
})(["display:flex;flex-direction:", ";width:100%;margin:0;padding:0;padding-", ":", ";list-style:none;font-size:", ";"], function (_ref) {
var direction = _ref.direction;
return direction;
}, _rtl.left, function (_ref2) {
var indent = _ref2.indent,
theme = _ref2.theme;
return indent && theme.orbit.spaceXXSmall;
}, function (_ref3) {
var theme = _ref3.theme;
return theme.orbit.fontSizeTextNormal;
}); // $FlowFixMe: https://github.com/flow-typed/flow-typed/issues/3653#issuecomment-568539198
StyledLinkList.defaultProps = {
theme: _defaultTheme.default
};
var resolveSpacings = function resolveSpacings(_ref4) {
var spacing = _ref4.spacing,
direction = _ref4.direction,
props = (0, _objectWithoutProperties2.default)(_ref4, ["spacing", "direction"]);
var margin = spacing && direction && String((0, _getDirectionSpacingTemplate.default)(direction)).replace("__spacing__", (0, _getSpacing.default)(props)[spacing]);
return (0, _styledComponents.css)(["margin:", ";&:last-child{margin:0;}"], margin && (0, _rtl.rtlSpacing)(margin));
};
var StyledNavigationLinkListChild = (0, _styledComponents.default)(function (_ref5) {
var theme = _ref5.theme,
direction = _ref5.direction,
props = (0, _objectWithoutProperties2.default)(_ref5, ["theme", "direction"]);
return /*#__PURE__*/React.createElement("li", props);
}).withConfig({
displayName: "LinkList__StyledNavigationLinkListChild",
componentId: "wz7xd9-1"
})(["", "{text-decoration:none;}", ";", ";"], _TextLink.StyledTextLink, resolveSpacings, function (_ref6) {
var direction = _ref6.direction;
return direction === "column" && (0, _styledComponents.css)(["width:100%;", "{width:100%;", ";}"], _TextLink.StyledTextLink, _mediaQuery.default.tablet((0, _styledComponents.css)(["width:auto;"])));
}); // $FlowFixMe: https://github.com/flow-typed/flow-typed/issues/3653#issuecomment-568539198
StyledNavigationLinkListChild.defaultProps = {
theme: _defaultTheme.default
};
var LinkList = function LinkList(_ref7) {
var _ref7$direction = _ref7.direction,
direction = _ref7$direction === void 0 ? "column" : _ref7$direction,
indent = _ref7.indent,
_ref7$spacing = _ref7.spacing,
spacing = _ref7$spacing === void 0 ? _consts.SPACINGS.MEDIUM : _ref7$spacing,
children = _ref7.children,
dataTest = _ref7.dataTest;
return /*#__PURE__*/React.createElement(StyledLinkList, {
indent: indent,
direction: direction,
"data-test": dataTest
}, React.Children.map(children, function (item) {
if ( /*#__PURE__*/React.isValidElement(item)) {
return /*#__PURE__*/React.createElement(StyledNavigationLinkListChild, {
direction: direction,
spacing: spacing
}, item);
}
return null;
}));
};
var _default = LinkList;
exports.default = _default;