| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 | let Declaration = require('../declaration')let flexSpec = require('./flex-spec')class AlignSelf extends Declaration {  check(decl) {    return (      decl.parent &&      !decl.parent.some(i => {        return i.prop && i.prop.startsWith('grid-')      })    )  }  /**   * Return property name by final spec   */  normalize() {    return 'align-self'  }  /**   * Change property name for 2012 specs   */  prefixed(prop, prefix) {    let spec    ;[spec, prefix] = flexSpec(prefix)    if (spec === 2012) {      return prefix + 'flex-item-align'    }    return super.prefixed(prop, prefix)  }  /**   * Change value for 2012 spec and ignore prefix for 2009   */  set(decl, prefix) {    let spec = flexSpec(prefix)[0]    if (spec === 2012) {      decl.value = AlignSelf.oldValues[decl.value] || decl.value      return super.set(decl, prefix)    }    if (spec === 'final') {      return super.set(decl, prefix)    }    return undefined  }}AlignSelf.names = ['align-self', 'flex-item-align']AlignSelf.oldValues = {  'flex-end': 'end',  'flex-start': 'start'}module.exports = AlignSelf
 |