frontend/.pnpm-store/v3/files/f4/bb219f5dc5bb0c9a1889c183dffa54b88f1fbc65381a34fafbb53bd9763d5e7db8e1a8d6fffe30a1fbe82fafe65309da519cb5e46742f45bfea99bba9d7421

66 lines
1.3 KiB
Plaintext

let flexSpec = require('./flex-spec')
let OldValue = require('../old-value')
let Value = require('../value')
class DisplayFlex extends Value {
constructor (name, prefixes) {
super(name, prefixes)
if (name === 'display-flex') {
this.name = 'flex'
}
}
/**
* Faster check for flex value
*/
check (decl) {
return decl.prop === 'display' && decl.value === this.name
}
/**
* Return value by spec
*/
prefixed (prefix) {
let spec, value
;[spec, prefix] = flexSpec(prefix)
if (spec === 2009) {
if (this.name === 'flex') {
value = 'box'
} else {
value = 'inline-box'
}
} else if (spec === 2012) {
if (this.name === 'flex') {
value = 'flexbox'
} else {
value = 'inline-flexbox'
}
} else if (spec === 'final') {
value = this.name
}
return prefix + value
}
/**
* Add prefix to value depend on flebox spec version
*/
replace (string, prefix) {
return this.prefixed(prefix)
}
/**
* Change value for old specs
*/
old (prefix) {
let prefixed = this.prefixed(prefix)
if (!prefixed) return undefined
return new OldValue(this.name, prefixed)
}
}
DisplayFlex.names = ['display-flex', 'inline-flex']
module.exports = DisplayFlex