| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152 | let Declaration = require('../declaration')let { isPureNumber } = require('../utils')class GridEnd extends Declaration {  /**   * Change repeating syntax for IE   */  insert(decl, prefix, prefixes, result) {    if (prefix !== '-ms-') return super.insert(decl, prefix, prefixes)    let clonedDecl = this.clone(decl)    let startProp = decl.prop.replace(/end$/, 'start')    let spanProp = prefix + decl.prop.replace(/end$/, 'span')    if (decl.parent.some(i => i.prop === spanProp)) {      return undefined    }    clonedDecl.prop = spanProp    if (decl.value.includes('span')) {      clonedDecl.value = decl.value.replace(/span\s/i, '')    } else {      let startDecl      decl.parent.walkDecls(startProp, d => {        startDecl = d      })      if (startDecl) {        if (isPureNumber(startDecl.value)) {          let value = Number(decl.value) - Number(startDecl.value) + ''          clonedDecl.value = value        } else {          return undefined        }      } else {        decl.warn(          result,          `Can not prefix ${decl.prop} (${startProp} is not found)`        )      }    }    decl.cloneBefore(clonedDecl)    return undefined  }}GridEnd.names = ['grid-row-end', 'grid-column-end']module.exports = GridEnd
 |