@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
JavaScript
;
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;