@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.
27 lines (22 loc) • 826 B
JavaScript
import splitToWords from "./splitToWords";
import insertGap from "./insertGap";
/*
This function is firstly converting "repeat(3, 1fr) 2fr" to plain format that is compatible with IE
For simplicity, the IE compatible format "(1fr)[3]" for repeat is not used
Also if gap is defined, it adds gap after each column/row
*/
const compatibleGridTemplate = (cells, gap) => {
const cellsMap = splitToWords(cells);
const plainCells = cellsMap && cellsMap.map(item => {
if (/repeat\((.*\))/g.test(item)) {
const values = /repeat\((\d+),\s(.*\)?)\)/g.exec(item);
return values && Array(...Array(Number(values[1]))).map(() => values[2]).join(" ");
}
return item;
}).join(" ");
if (!gap) {
return plainCells;
}
return insertGap(plainCells, gap);
};
export default compatibleGridTemplate;