"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.normalizeGridColumnRow = exports.normalizeGridColumnRowGap = exports.normalizeGridAutoFlow = void 0; var _joinGridValue = _interopRequireDefault(require("../lib/joinGridValue")); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } const normalizeGridAutoFlow = gridAutoFlow => { let newValue = { front: '', back: '' }; let shouldNormalize = false; gridAutoFlow.walk(node => { if (node.value === 'dense') { shouldNormalize = true; newValue.back = node.value; } else if (['row', 'column'].includes(node.value.trim().toLowerCase())) { shouldNormalize = true; newValue.front = node.value; } else { shouldNormalize = false; } }); if (shouldNormalize) { return `${newValue.front.trim()} ${newValue.back.trim()}`; } return gridAutoFlow; }; exports.normalizeGridAutoFlow = normalizeGridAutoFlow; const normalizeGridColumnRowGap = gridGap => { let newValue = { front: '', back: '' }; let shouldNormalize = false; gridGap.walk(node => { // console.log(node); if (node.value === 'normal') { shouldNormalize = true; newValue.front = node.value; } else { newValue.back = `${newValue.back} ${node.value}`; } }); if (shouldNormalize) { return `${newValue.front.trim()} ${newValue.back.trim()}`; } return gridGap; }; exports.normalizeGridColumnRowGap = normalizeGridColumnRowGap; const normalizeGridColumnRow = grid => { // cant do normalization here using node, so copy it as a string let gridValue = grid.toString().split('/'); // node -> string value, split -> " 2 / 3 span " -> [' 2','3 span '] if (gridValue.length > 1) { return (0, _joinGridValue.default)(gridValue.map(gridLine => { let normalizeValue = { front: '', back: '' }; gridLine = gridLine.trim(); // '3 span ' -> '3 span' gridLine.split(' ').forEach(node => { // ['3','span'] if (node === 'span') { normalizeValue.front = node; // span _ } else { normalizeValue.back = `${normalizeValue.back} ${node}`; // _ 3 } }); return `${normalizeValue.front.trim()} ${normalizeValue.back.trim()}`; // span 3 }) // returns "2 / span 3" ); } // doing this separating if `/` is not present as while joining('/') , it will add `/` at the end return gridValue.map(gridLine => { let normalizeValue = { front: '', back: '' }; gridLine = gridLine.trim(); gridLine.split(' ').forEach(node => { if (node === 'span') { normalizeValue.front = node; } else { normalizeValue.back = `${normalizeValue.back} ${node}`; } }); return `${normalizeValue.front.trim()} ${normalizeValue.back.trim()}`; }); }; exports.normalizeGridColumnRow = normalizeGridColumnRow;