| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 | let list = require('postcss').listlet Declaration = require('../declaration')let flexSpec = require('./flex-spec')class Flex extends Declaration {  /**   * Return property name by final spec   */  normalize() {    return 'flex'  }  /**   * Change property name for 2009 spec   */  prefixed(prop, prefix) {    let spec    ;[spec, prefix] = flexSpec(prefix)    if (spec === 2009) {      return prefix + 'box-flex'    }    return super.prefixed(prop, prefix)  }  /**   * Spec 2009 supports only first argument   * Spec 2012 disallows unitless basis   */  set(decl, prefix) {    let spec = flexSpec(prefix)[0]    if (spec === 2009) {      decl.value = list.space(decl.value)[0]      decl.value = Flex.oldValues[decl.value] || decl.value      return super.set(decl, prefix)    }    if (spec === 2012) {      let components = list.space(decl.value)      if (components.length === 3 && components[2] === '0') {        decl.value = components.slice(0, 2).concat('0px').join(' ')      }    }    return super.set(decl, prefix)  }}Flex.names = ['flex', 'box-flex']Flex.oldValues = {  auto: '1',  none: '0'}module.exports = Flex
 |