UNPKG

@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.

46 lines (32 loc) 2.19 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _styledComponents = require("styled-components"); var _applyGap = _interopRequireDefault(require("./applyGap")); var _lengthOf = _interopRequireDefault(require("./lengthOf")); var _realCellsCount = _interopRequireDefault(require("./realCellsCount")); var _calculateColumnPlacement = _interopRequireDefault(require("./calculateColumnPlacement")); var _calculateRowPlacement = _interopRequireDefault(require("./calculateRowPlacement")); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread(); } function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance"); } function _iterableToArray(iter) { if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === "[object Arguments]") return Array.from(iter); } function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } } /* This functions is applying a proper -ms-grid-column and -ms-grid-row as IE10+ can't resolve auto placement by itself natively */ var autoPlacement = function autoPlacement(childrenCount, columns, rows, columnGap, rowGap) { var columnsCount = (0, _realCellsCount.default)(!!columnGap, (0, _lengthOf.default)(columns)); var rowsCount = (0, _realCellsCount.default)(!!rowGap, (0, _lengthOf.default)(rows)); return Array.apply(void 0, _toConsumableArray(Array(childrenCount))).map(function (_, i) { var index = i + 1; var columnIndex = (0, _calculateColumnPlacement.default)(index, columnsCount); var rowIndex = (0, _calculateRowPlacement.default)(index, columnsCount, rowsCount); return (0, _styledComponents.css)(["& > *:nth-child(", "){-ms-grid-column:", ";-ms-grid-row:", ";}"], index, (0, _applyGap.default)(columnIndex, !!columnGap), (0, _applyGap.default)(rowIndex, !!rowGap)); }); }; var _default = autoPlacement; exports.default = _default;