| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869 | let Declaration = require('../declaration')let {  getGridGap,  inheritGridGap,  parseTemplate,  warnGridGap,  warnMissedAreas} = require('./grid-utils')class GridTemplate extends Declaration {  /**   * Translate grid-template to separate -ms- prefixed properties   */  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)    /**     * we must insert inherited gap values in some cases:     * if we are inside media query && if we have no grid-gap value     */    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
 |