| | let Declaration = require('../declaration') |
| | let { |
| | getGridGap, |
| | inheritGridGap, |
| | parseTemplate, |
| | warnGridGap, |
| | warnMissedAreas |
| | } = require('./grid-utils') |
| |
|
| | class GridTemplate extends Declaration { |
| | |
| | |
| | |
| | insert(decl, prefix, prefixes, result) { |
| | if (prefix !== '-ms-') return super.insert(decl, prefix, prefixes) |
| |
|
| | if (decl.parent.some(i => i.prop === '-ms-grid-rows')) { |
| | return undefined |
| | } |
| |
|
| | let gap = getGridGap(decl) |
| |
|
| | |
| | |
| | |
| | |
| | let inheritedGap = inheritGridGap(decl, gap) |
| |
|
| | let { areas, columns, rows } = parseTemplate({ |
| | decl, |
| | gap: inheritedGap || gap |
| | }) |
| |
|
| | let hasAreas = Object.keys(areas).length > 0 |
| | let hasRows = Boolean(rows) |
| | let hasColumns = Boolean(columns) |
| |
|
| | warnGridGap({ |
| | decl, |
| | gap, |
| | hasColumns, |
| | result |
| | }) |
| |
|
| | warnMissedAreas(areas, decl, result) |
| |
|
| | if ((hasRows && hasColumns) || hasAreas) { |
| | decl.cloneBefore({ |
| | prop: '-ms-grid-rows', |
| | raws: {}, |
| | value: rows |
| | }) |
| | } |
| |
|
| | if (hasColumns) { |
| | decl.cloneBefore({ |
| | prop: '-ms-grid-columns', |
| | raws: {}, |
| | value: columns |
| | }) |
| | } |
| |
|
| | return decl |
| | } |
| | } |
| |
|
| | GridTemplate.names = ['grid-template'] |
| |
|
| | module.exports = GridTemplate |
| |
|