source: node_modules/autoprefixer/lib/hacks/align-self.js@ 2058e5c

Last change on this file since 2058e5c was 2058e5c, checked in by istevanoska <ilinastevanoska@…>, 6 months ago

Working / before login

  • Property mode set to 100644
File size: 1.1 KB
Line 
1let Declaration = require('../declaration')
2let flexSpec = require('./flex-spec')
3
4class AlignSelf extends Declaration {
5 check(decl) {
6 return (
7 decl.parent &&
8 !decl.parent.some(i => {
9 return i.prop && i.prop.startsWith('grid-')
10 })
11 )
12 }
13
14 /**
15 * Return property name by final spec
16 */
17 normalize() {
18 return 'align-self'
19 }
20
21 /**
22 * Change property name for 2012 specs
23 */
24 prefixed(prop, prefix) {
25 let spec
26 ;[spec, prefix] = flexSpec(prefix)
27 if (spec === 2012) {
28 return prefix + 'flex-item-align'
29 }
30 return super.prefixed(prop, prefix)
31 }
32
33 /**
34 * Change value for 2012 spec and ignore prefix for 2009
35 */
36 set(decl, prefix) {
37 let spec = flexSpec(prefix)[0]
38 if (spec === 2012) {
39 decl.value = AlignSelf.oldValues[decl.value] || decl.value
40 return super.set(decl, prefix)
41 }
42 if (spec === 'final') {
43 return super.set(decl, prefix)
44 }
45 return undefined
46 }
47}
48
49AlignSelf.names = ['align-self', 'flex-item-align']
50
51AlignSelf.oldValues = {
52 'flex-end': 'end',
53 'flex-start': 'start'
54}
55
56module.exports = AlignSelf
Note: See TracBrowser for help on using the repository browser.