autoprefixer 10.2.2 → 10.2.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +3 -3
- package/data/prefixes.js +187 -91
- package/lib/at-rule.js +2 -2
- package/lib/autoprefixer.d.ts +3 -3
- package/lib/autoprefixer.js +28 -18
- package/lib/brackets.js +3 -3
- package/lib/browsers.js +6 -6
- package/lib/declaration.js +14 -14
- package/lib/hacks/align-content.js +3 -3
- package/lib/hacks/align-items.js +3 -3
- package/lib/hacks/align-self.js +4 -4
- package/lib/hacks/animation.js +1 -1
- package/lib/hacks/appearance.js +1 -1
- package/lib/hacks/backdrop-filter.js +1 -1
- package/lib/hacks/background-clip.js +2 -2
- package/lib/hacks/background-size.js +1 -1
- package/lib/hacks/block-logical.js +2 -2
- package/lib/hacks/border-image.js +1 -1
- package/lib/hacks/border-radius.js +2 -2
- package/lib/hacks/break-props.js +4 -4
- package/lib/hacks/color-adjust.js +2 -2
- package/lib/hacks/cross-fade.js +1 -1
- package/lib/hacks/display-flex.js +5 -5
- package/lib/hacks/display-grid.js +2 -2
- package/lib/hacks/filter-value.js +1 -1
- package/lib/hacks/filter.js +1 -1
- package/lib/hacks/flex-basis.js +3 -3
- package/lib/hacks/flex-direction.js +3 -3
- package/lib/hacks/flex-flow.js +1 -1
- package/lib/hacks/flex-grow.js +2 -2
- package/lib/hacks/flex-shrink.js +3 -3
- package/lib/hacks/flex-wrap.js +1 -1
- package/lib/hacks/flex.js +3 -3
- package/lib/hacks/fullscreen.js +1 -1
- package/lib/hacks/gradient.js +18 -18
- package/lib/hacks/grid-area.js +1 -1
- package/lib/hacks/grid-column-align.js +3 -3
- package/lib/hacks/grid-end.js +1 -1
- package/lib/hacks/grid-row-align.js +3 -3
- package/lib/hacks/grid-row-column.js +1 -1
- package/lib/hacks/grid-rows-columns.js +3 -3
- package/lib/hacks/grid-start.js +3 -3
- package/lib/hacks/grid-template-areas.js +2 -2
- package/lib/hacks/grid-template.js +1 -1
- package/lib/hacks/grid-utils.js +60 -48
- package/lib/hacks/image-rendering.js +5 -5
- package/lib/hacks/image-set.js +1 -1
- package/lib/hacks/inline-logical.js +2 -2
- package/lib/hacks/intrinsic.js +6 -6
- package/lib/hacks/justify-content.js +3 -3
- package/lib/hacks/mask-border.js +2 -2
- package/lib/hacks/mask-composite.js +1 -1
- package/lib/hacks/order.js +3 -3
- package/lib/hacks/overscroll-behavior.js +3 -3
- package/lib/hacks/pixelated.js +2 -2
- package/lib/hacks/place-self.js +1 -1
- package/lib/hacks/placeholder-shown.js +1 -1
- package/lib/hacks/placeholder.js +2 -2
- package/lib/hacks/text-decoration-skip-ink.js +1 -1
- package/lib/hacks/text-decoration.js +1 -1
- package/lib/hacks/text-emphasis-position.js +1 -1
- package/lib/hacks/transform-decl.js +4 -4
- package/lib/hacks/user-select.js +2 -2
- package/lib/hacks/writing-mode.js +1 -1
- package/lib/info.js +8 -4
- package/lib/old-selector.js +3 -3
- package/lib/old-value.js +2 -2
- package/lib/prefixer.js +13 -9
- package/lib/prefixes.js +124 -68
- package/lib/processor.js +14 -14
- package/lib/resolution.js +6 -6
- package/lib/selector.js +10 -10
- package/lib/supports.js +28 -20
- package/lib/transition.js +15 -15
- package/lib/utils.js +65 -67
- package/lib/value.js +7 -7
- package/lib/vendor.js +2 -2
- package/package.json +5 -5
- package/CHANGELOG.md +0 -1019
package/lib/at-rule.js
CHANGED
|
@@ -4,7 +4,7 @@ class AtRule extends Prefixer {
|
|
|
4
4
|
/**
|
|
5
5
|
* Clone and add prefixes for at-rule
|
|
6
6
|
*/
|
|
7
|
-
add
|
|
7
|
+
add(rule, prefix) {
|
|
8
8
|
let prefixed = prefix + rule.name
|
|
9
9
|
|
|
10
10
|
let already = rule.parent.some(
|
|
@@ -21,7 +21,7 @@ class AtRule extends Prefixer {
|
|
|
21
21
|
/**
|
|
22
22
|
* Clone node with prefixes
|
|
23
23
|
*/
|
|
24
|
-
process
|
|
24
|
+
process(node) {
|
|
25
25
|
let parent = this.parentPrefix(node)
|
|
26
26
|
|
|
27
27
|
for (let prefix of this.prefixes) {
|
package/lib/autoprefixer.d.ts
CHANGED
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
import { Plugin } from 'postcss'
|
|
2
2
|
import { Stats } from 'browserslist'
|
|
3
3
|
|
|
4
|
-
declare function autoprefixer<T extends string[]>
|
|
4
|
+
declare function autoprefixer<T extends string[]>(
|
|
5
5
|
...args: [...T, autoprefixer.Options]
|
|
6
6
|
): Plugin & autoprefixer.ExportedAPI
|
|
7
7
|
|
|
8
|
-
declare function autoprefixer
|
|
8
|
+
declare function autoprefixer(
|
|
9
9
|
browsers: string[],
|
|
10
10
|
options?: autoprefixer.Options
|
|
11
11
|
): Plugin & autoprefixer.ExportedAPI
|
|
12
12
|
|
|
13
|
-
declare function autoprefixer
|
|
13
|
+
declare function autoprefixer(
|
|
14
14
|
options?: autoprefixer.Options
|
|
15
15
|
): Plugin & autoprefixer.ExportedAPI
|
|
16
16
|
|
package/lib/autoprefixer.js
CHANGED
|
@@ -4,8 +4,10 @@ let colorette = require('colorette')
|
|
|
4
4
|
|
|
5
5
|
let Browsers = require('./browsers')
|
|
6
6
|
let Prefixes = require('./prefixes')
|
|
7
|
-
let
|
|
8
|
-
let
|
|
7
|
+
let dataPrefixes = require('../data/prefixes')
|
|
8
|
+
let getInfo = require('./info')
|
|
9
|
+
|
|
10
|
+
let autoprefixerData = { browsers: agents, prefixes: dataPrefixes }
|
|
9
11
|
|
|
10
12
|
const WARNING =
|
|
11
13
|
'\n' +
|
|
@@ -22,13 +24,13 @@ const WARNING =
|
|
|
22
24
|
' https://twitter.com/browserslist\n' +
|
|
23
25
|
'\n'
|
|
24
26
|
|
|
25
|
-
function isPlainObject
|
|
27
|
+
function isPlainObject(obj) {
|
|
26
28
|
return Object.prototype.toString.apply(obj) === '[object Object]'
|
|
27
29
|
}
|
|
28
30
|
|
|
29
31
|
let cache = new Map()
|
|
30
32
|
|
|
31
|
-
function timeCapsule
|
|
33
|
+
function timeCapsule(result, prefixes) {
|
|
32
34
|
if (prefixes.browsers.selected.length === 0) {
|
|
33
35
|
return
|
|
34
36
|
}
|
|
@@ -41,13 +43,21 @@ function timeCapsule (result, prefixes) {
|
|
|
41
43
|
|
|
42
44
|
/* istanbul ignore next */
|
|
43
45
|
result.warn(
|
|
44
|
-
'
|
|
45
|
-
'
|
|
46
|
-
'
|
|
46
|
+
'Autoprefixer target browsers do not need any prefixes.' +
|
|
47
|
+
'You do not need Autoprefixer anymore.\n' +
|
|
48
|
+
'Check your Browserslist config to be sure that your targets ' +
|
|
49
|
+
'are set up correctly.\n' +
|
|
50
|
+
'\n' +
|
|
51
|
+
' Learn more at:\n' +
|
|
52
|
+
' https://github.com/postcss/autoprefixer#readme\n' +
|
|
53
|
+
' https://github.com/browserslist/browserslist#readme\n' +
|
|
54
|
+
'\n'
|
|
47
55
|
)
|
|
48
56
|
}
|
|
49
57
|
|
|
50
|
-
module.exports =
|
|
58
|
+
module.exports = plugin
|
|
59
|
+
|
|
60
|
+
function plugin(...reqs) {
|
|
51
61
|
let options
|
|
52
62
|
if (reqs.length === 1 && isPlainObject(reqs[0])) {
|
|
53
63
|
options = reqs[0]
|
|
@@ -98,8 +108,8 @@ module.exports = (...reqs) => {
|
|
|
98
108
|
env: options.env
|
|
99
109
|
}
|
|
100
110
|
|
|
101
|
-
function loadPrefixes
|
|
102
|
-
let d =
|
|
111
|
+
function loadPrefixes(opts) {
|
|
112
|
+
let d = autoprefixerData
|
|
103
113
|
let browsers = new Browsers(d.browsers, reqs, opts, brwlstOpts)
|
|
104
114
|
let key = browsers.selected.join(', ') + JSON.stringify(options)
|
|
105
115
|
|
|
@@ -113,14 +123,14 @@ module.exports = (...reqs) => {
|
|
|
113
123
|
return {
|
|
114
124
|
postcssPlugin: 'autoprefixer',
|
|
115
125
|
|
|
116
|
-
prepare
|
|
126
|
+
prepare(result) {
|
|
117
127
|
let prefixes = loadPrefixes({
|
|
118
128
|
from: result.opts.from,
|
|
119
129
|
env: options.env
|
|
120
130
|
})
|
|
121
131
|
|
|
122
132
|
return {
|
|
123
|
-
OnceExit
|
|
133
|
+
OnceExit(root) {
|
|
124
134
|
timeCapsule(result, prefixes)
|
|
125
135
|
if (options.remove !== false) {
|
|
126
136
|
prefixes.processor.remove(root, result)
|
|
@@ -132,10 +142,10 @@ module.exports = (...reqs) => {
|
|
|
132
142
|
}
|
|
133
143
|
},
|
|
134
144
|
|
|
135
|
-
info
|
|
145
|
+
info(opts) {
|
|
136
146
|
opts = opts || {}
|
|
137
147
|
opts.from = opts.from || process.cwd()
|
|
138
|
-
return
|
|
148
|
+
return getInfo(loadPrefixes(opts))
|
|
139
149
|
},
|
|
140
150
|
|
|
141
151
|
options,
|
|
@@ -143,19 +153,19 @@ module.exports = (...reqs) => {
|
|
|
143
153
|
}
|
|
144
154
|
}
|
|
145
155
|
|
|
146
|
-
|
|
156
|
+
plugin.postcss = true
|
|
147
157
|
|
|
148
158
|
/**
|
|
149
159
|
* Autoprefixer data
|
|
150
160
|
*/
|
|
151
|
-
|
|
161
|
+
plugin.data = autoprefixerData
|
|
152
162
|
|
|
153
163
|
/**
|
|
154
164
|
* Autoprefixer default browsers
|
|
155
165
|
*/
|
|
156
|
-
|
|
166
|
+
plugin.defaults = browserslist.defaults
|
|
157
167
|
|
|
158
168
|
/**
|
|
159
169
|
* Inspect with default Autoprefixer
|
|
160
170
|
*/
|
|
161
|
-
|
|
171
|
+
plugin.info = () => plugin().info()
|
package/lib/brackets.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
function last
|
|
1
|
+
function last(array) {
|
|
2
2
|
return array[array.length - 1]
|
|
3
3
|
}
|
|
4
4
|
|
|
@@ -6,7 +6,7 @@ let brackets = {
|
|
|
6
6
|
/**
|
|
7
7
|
* Parse string to nodes tree
|
|
8
8
|
*/
|
|
9
|
-
parse
|
|
9
|
+
parse(str) {
|
|
10
10
|
let current = ['']
|
|
11
11
|
let stack = [current]
|
|
12
12
|
|
|
@@ -34,7 +34,7 @@ let brackets = {
|
|
|
34
34
|
/**
|
|
35
35
|
* Generate output string by nodes tree
|
|
36
36
|
*/
|
|
37
|
-
stringify
|
|
37
|
+
stringify(ast) {
|
|
38
38
|
let result = ''
|
|
39
39
|
for (let i of ast) {
|
|
40
40
|
if (typeof i === 'object') {
|
package/lib/browsers.js
CHANGED
|
@@ -7,7 +7,7 @@ class Browsers {
|
|
|
7
7
|
/**
|
|
8
8
|
* Return all prefixes for default browser data
|
|
9
9
|
*/
|
|
10
|
-
static prefixes
|
|
10
|
+
static prefixes() {
|
|
11
11
|
if (this.prefixesCache) {
|
|
12
12
|
return this.prefixesCache
|
|
13
13
|
}
|
|
@@ -27,7 +27,7 @@ class Browsers {
|
|
|
27
27
|
/**
|
|
28
28
|
* Check is value contain any possible prefix
|
|
29
29
|
*/
|
|
30
|
-
static withPrefix
|
|
30
|
+
static withPrefix(value) {
|
|
31
31
|
if (!this.prefixesRegexp) {
|
|
32
32
|
this.prefixesRegexp = new RegExp(this.prefixes().join('|'))
|
|
33
33
|
}
|
|
@@ -35,7 +35,7 @@ class Browsers {
|
|
|
35
35
|
return this.prefixesRegexp.test(value)
|
|
36
36
|
}
|
|
37
37
|
|
|
38
|
-
constructor
|
|
38
|
+
constructor(data, requirements, options, browserslistOpts) {
|
|
39
39
|
this.data = data
|
|
40
40
|
this.options = options || {}
|
|
41
41
|
this.browserslistOpts = browserslistOpts || {}
|
|
@@ -45,7 +45,7 @@ class Browsers {
|
|
|
45
45
|
/**
|
|
46
46
|
* Return browsers selected by requirements
|
|
47
47
|
*/
|
|
48
|
-
parse
|
|
48
|
+
parse(requirements) {
|
|
49
49
|
let opts = {}
|
|
50
50
|
for (let i in this.browserslistOpts) {
|
|
51
51
|
opts[i] = this.browserslistOpts[i]
|
|
@@ -57,7 +57,7 @@ class Browsers {
|
|
|
57
57
|
/**
|
|
58
58
|
* Return prefix for selected browser
|
|
59
59
|
*/
|
|
60
|
-
prefix
|
|
60
|
+
prefix(browser) {
|
|
61
61
|
let [name, version] = browser.split(' ')
|
|
62
62
|
let data = this.data[name]
|
|
63
63
|
|
|
@@ -71,7 +71,7 @@ class Browsers {
|
|
|
71
71
|
/**
|
|
72
72
|
* Is browser is selected by requirements
|
|
73
73
|
*/
|
|
74
|
-
isSelected
|
|
74
|
+
isSelected(browser) {
|
|
75
75
|
return this.selected.includes(browser)
|
|
76
76
|
}
|
|
77
77
|
}
|
package/lib/declaration.js
CHANGED
|
@@ -6,28 +6,28 @@ class Declaration extends Prefixer {
|
|
|
6
6
|
/**
|
|
7
7
|
* Always true, because we already get prefixer by property name
|
|
8
8
|
*/
|
|
9
|
-
check
|
|
9
|
+
check(/* decl */) {
|
|
10
10
|
return true
|
|
11
11
|
}
|
|
12
12
|
|
|
13
13
|
/**
|
|
14
14
|
* Return prefixed version of property
|
|
15
15
|
*/
|
|
16
|
-
prefixed
|
|
16
|
+
prefixed(prop, prefix) {
|
|
17
17
|
return prefix + prop
|
|
18
18
|
}
|
|
19
19
|
|
|
20
20
|
/**
|
|
21
21
|
* Return unprefixed version of property
|
|
22
22
|
*/
|
|
23
|
-
normalize
|
|
23
|
+
normalize(prop) {
|
|
24
24
|
return prop
|
|
25
25
|
}
|
|
26
26
|
|
|
27
27
|
/**
|
|
28
28
|
* Check `value`, that it contain other prefixes, rather than `prefix`
|
|
29
29
|
*/
|
|
30
|
-
otherPrefixes
|
|
30
|
+
otherPrefixes(value, prefix) {
|
|
31
31
|
for (let other of Browsers.prefixes()) {
|
|
32
32
|
if (other === prefix) {
|
|
33
33
|
continue
|
|
@@ -42,7 +42,7 @@ class Declaration extends Prefixer {
|
|
|
42
42
|
/**
|
|
43
43
|
* Set prefix to declaration
|
|
44
44
|
*/
|
|
45
|
-
set
|
|
45
|
+
set(decl, prefix) {
|
|
46
46
|
decl.prop = this.prefixed(decl.prop, prefix)
|
|
47
47
|
return decl
|
|
48
48
|
}
|
|
@@ -50,7 +50,7 @@ class Declaration extends Prefixer {
|
|
|
50
50
|
/**
|
|
51
51
|
* Should we use visual cascade for prefixes
|
|
52
52
|
*/
|
|
53
|
-
needCascade
|
|
53
|
+
needCascade(decl) {
|
|
54
54
|
if (!decl._autoprefixerCascade) {
|
|
55
55
|
decl._autoprefixerCascade =
|
|
56
56
|
this.all.options.cascade !== false && decl.raw('before').includes('\n')
|
|
@@ -61,7 +61,7 @@ class Declaration extends Prefixer {
|
|
|
61
61
|
/**
|
|
62
62
|
* Return maximum length of possible prefixed property
|
|
63
63
|
*/
|
|
64
|
-
maxPrefixed
|
|
64
|
+
maxPrefixed(prefixes, decl) {
|
|
65
65
|
if (decl._autoprefixerMax) {
|
|
66
66
|
return decl._autoprefixerMax
|
|
67
67
|
}
|
|
@@ -81,7 +81,7 @@ class Declaration extends Prefixer {
|
|
|
81
81
|
/**
|
|
82
82
|
* Calculate indentation to create visual cascade
|
|
83
83
|
*/
|
|
84
|
-
calcBefore
|
|
84
|
+
calcBefore(prefixes, decl, prefix = '') {
|
|
85
85
|
let max = this.maxPrefixed(prefixes, decl)
|
|
86
86
|
let diff = max - utils.removeNote(prefix).length
|
|
87
87
|
|
|
@@ -96,7 +96,7 @@ class Declaration extends Prefixer {
|
|
|
96
96
|
/**
|
|
97
97
|
* Remove visual cascade
|
|
98
98
|
*/
|
|
99
|
-
restoreBefore
|
|
99
|
+
restoreBefore(decl) {
|
|
100
100
|
let lines = decl.raw('before').split('\n')
|
|
101
101
|
let min = lines[lines.length - 1]
|
|
102
102
|
|
|
@@ -115,7 +115,7 @@ class Declaration extends Prefixer {
|
|
|
115
115
|
/**
|
|
116
116
|
* Clone and insert new declaration
|
|
117
117
|
*/
|
|
118
|
-
insert
|
|
118
|
+
insert(decl, prefix, prefixes) {
|
|
119
119
|
let cloned = this.set(this.clone(decl), prefix)
|
|
120
120
|
if (!cloned) return undefined
|
|
121
121
|
|
|
@@ -135,7 +135,7 @@ class Declaration extends Prefixer {
|
|
|
135
135
|
/**
|
|
136
136
|
* Did this declaration has this prefix above
|
|
137
137
|
*/
|
|
138
|
-
isAlready
|
|
138
|
+
isAlready(decl, prefixed) {
|
|
139
139
|
let already = this.all.group(decl).up(i => i.prop === prefixed)
|
|
140
140
|
if (!already) {
|
|
141
141
|
already = this.all.group(decl).down(i => i.prop === prefixed)
|
|
@@ -146,7 +146,7 @@ class Declaration extends Prefixer {
|
|
|
146
146
|
/**
|
|
147
147
|
* Clone and add prefixes for declaration
|
|
148
148
|
*/
|
|
149
|
-
add
|
|
149
|
+
add(decl, prefix, prefixes, result) {
|
|
150
150
|
let prefixed = this.prefixed(decl.prop, prefix)
|
|
151
151
|
if (
|
|
152
152
|
this.isAlready(decl, prefixed) ||
|
|
@@ -160,7 +160,7 @@ class Declaration extends Prefixer {
|
|
|
160
160
|
/**
|
|
161
161
|
* Add spaces for visual cascade
|
|
162
162
|
*/
|
|
163
|
-
process
|
|
163
|
+
process(decl, result) {
|
|
164
164
|
if (!this.needCascade(decl)) {
|
|
165
165
|
super.process(decl, result)
|
|
166
166
|
return
|
|
@@ -179,7 +179,7 @@ class Declaration extends Prefixer {
|
|
|
179
179
|
/**
|
|
180
180
|
* Return list of prefixed properties to clean old prefixes
|
|
181
181
|
*/
|
|
182
|
-
old
|
|
182
|
+
old(prop, prefix) {
|
|
183
183
|
return [this.prefixed(prop, prefix)]
|
|
184
184
|
}
|
|
185
185
|
}
|
|
@@ -5,7 +5,7 @@ class AlignContent extends Declaration {
|
|
|
5
5
|
/**
|
|
6
6
|
* Change property name for 2012 spec
|
|
7
7
|
*/
|
|
8
|
-
prefixed
|
|
8
|
+
prefixed(prop, prefix) {
|
|
9
9
|
let spec
|
|
10
10
|
;[spec, prefix] = flexSpec(prefix)
|
|
11
11
|
if (spec === 2012) {
|
|
@@ -17,14 +17,14 @@ class AlignContent extends Declaration {
|
|
|
17
17
|
/**
|
|
18
18
|
* Return property name by final spec
|
|
19
19
|
*/
|
|
20
|
-
normalize
|
|
20
|
+
normalize() {
|
|
21
21
|
return 'align-content'
|
|
22
22
|
}
|
|
23
23
|
|
|
24
24
|
/**
|
|
25
25
|
* Change value for 2012 spec and ignore prefix for 2009
|
|
26
26
|
*/
|
|
27
|
-
set
|
|
27
|
+
set(decl, prefix) {
|
|
28
28
|
let spec = flexSpec(prefix)[0]
|
|
29
29
|
if (spec === 2012) {
|
|
30
30
|
decl.value = AlignContent.oldValues[decl.value] || decl.value
|
package/lib/hacks/align-items.js
CHANGED
|
@@ -5,7 +5,7 @@ class AlignItems extends Declaration {
|
|
|
5
5
|
/**
|
|
6
6
|
* Change property name for 2009 and 2012 specs
|
|
7
7
|
*/
|
|
8
|
-
prefixed
|
|
8
|
+
prefixed(prop, prefix) {
|
|
9
9
|
let spec
|
|
10
10
|
;[spec, prefix] = flexSpec(prefix)
|
|
11
11
|
if (spec === 2009) {
|
|
@@ -20,14 +20,14 @@ class AlignItems extends Declaration {
|
|
|
20
20
|
/**
|
|
21
21
|
* Return property name by final spec
|
|
22
22
|
*/
|
|
23
|
-
normalize
|
|
23
|
+
normalize() {
|
|
24
24
|
return 'align-items'
|
|
25
25
|
}
|
|
26
26
|
|
|
27
27
|
/**
|
|
28
28
|
* Change value for 2009 and 2012 specs
|
|
29
29
|
*/
|
|
30
|
-
set
|
|
30
|
+
set(decl, prefix) {
|
|
31
31
|
let spec = flexSpec(prefix)[0]
|
|
32
32
|
if (spec === 2009 || spec === 2012) {
|
|
33
33
|
decl.value = AlignItems.oldValues[decl.value] || decl.value
|
package/lib/hacks/align-self.js
CHANGED
|
@@ -2,7 +2,7 @@ let flexSpec = require('./flex-spec')
|
|
|
2
2
|
let Declaration = require('../declaration')
|
|
3
3
|
|
|
4
4
|
class AlignSelf extends Declaration {
|
|
5
|
-
check
|
|
5
|
+
check(decl) {
|
|
6
6
|
return (
|
|
7
7
|
decl.parent &&
|
|
8
8
|
!decl.parent.some(i => {
|
|
@@ -14,7 +14,7 @@ class AlignSelf extends Declaration {
|
|
|
14
14
|
/**
|
|
15
15
|
* Change property name for 2012 specs
|
|
16
16
|
*/
|
|
17
|
-
prefixed
|
|
17
|
+
prefixed(prop, prefix) {
|
|
18
18
|
let spec
|
|
19
19
|
;[spec, prefix] = flexSpec(prefix)
|
|
20
20
|
if (spec === 2012) {
|
|
@@ -26,14 +26,14 @@ class AlignSelf extends Declaration {
|
|
|
26
26
|
/**
|
|
27
27
|
* Return property name by final spec
|
|
28
28
|
*/
|
|
29
|
-
normalize
|
|
29
|
+
normalize() {
|
|
30
30
|
return 'align-self'
|
|
31
31
|
}
|
|
32
32
|
|
|
33
33
|
/**
|
|
34
34
|
* Change value for 2012 spec and ignore prefix for 2009
|
|
35
35
|
*/
|
|
36
|
-
set
|
|
36
|
+
set(decl, prefix) {
|
|
37
37
|
let spec = flexSpec(prefix)[0]
|
|
38
38
|
if (spec === 2012) {
|
|
39
39
|
decl.value = AlignSelf.oldValues[decl.value] || decl.value
|
package/lib/hacks/animation.js
CHANGED
package/lib/hacks/appearance.js
CHANGED
|
@@ -2,7 +2,7 @@ let Declaration = require('../declaration')
|
|
|
2
2
|
let utils = require('../utils')
|
|
3
3
|
|
|
4
4
|
class BackgroundClip extends Declaration {
|
|
5
|
-
constructor
|
|
5
|
+
constructor(name, prefixes, all) {
|
|
6
6
|
super(name, prefixes, all)
|
|
7
7
|
|
|
8
8
|
if (this.prefixes) {
|
|
@@ -14,7 +14,7 @@ class BackgroundClip extends Declaration {
|
|
|
14
14
|
}
|
|
15
15
|
}
|
|
16
16
|
|
|
17
|
-
check
|
|
17
|
+
check(decl) {
|
|
18
18
|
return decl.value.toLowerCase() === 'text'
|
|
19
19
|
}
|
|
20
20
|
}
|
|
@@ -4,7 +4,7 @@ class BlockLogical extends Declaration {
|
|
|
4
4
|
/**
|
|
5
5
|
* Use old syntax for -moz- and -webkit-
|
|
6
6
|
*/
|
|
7
|
-
prefixed
|
|
7
|
+
prefixed(prop, prefix) {
|
|
8
8
|
if (prop.includes('-start')) {
|
|
9
9
|
return prefix + prop.replace('-block-start', '-before')
|
|
10
10
|
}
|
|
@@ -14,7 +14,7 @@ class BlockLogical extends Declaration {
|
|
|
14
14
|
/**
|
|
15
15
|
* Return property name by spec
|
|
16
16
|
*/
|
|
17
|
-
normalize
|
|
17
|
+
normalize(prop) {
|
|
18
18
|
if (prop.includes('-before')) {
|
|
19
19
|
return prop.replace('-before', '-block-start')
|
|
20
20
|
}
|
|
@@ -4,7 +4,7 @@ class BorderRadius extends Declaration {
|
|
|
4
4
|
/**
|
|
5
5
|
* Change syntax, when add Mozilla prefix
|
|
6
6
|
*/
|
|
7
|
-
prefixed
|
|
7
|
+
prefixed(prop, prefix) {
|
|
8
8
|
if (prefix === '-moz-') {
|
|
9
9
|
return prefix + (BorderRadius.toMozilla[prop] || prop)
|
|
10
10
|
}
|
|
@@ -14,7 +14,7 @@ class BorderRadius extends Declaration {
|
|
|
14
14
|
/**
|
|
15
15
|
* Return unprefixed version of property
|
|
16
16
|
*/
|
|
17
|
-
normalize
|
|
17
|
+
normalize(prop) {
|
|
18
18
|
return BorderRadius.toNormal[prop] || prop
|
|
19
19
|
}
|
|
20
20
|
}
|
package/lib/hacks/break-props.js
CHANGED
|
@@ -4,14 +4,14 @@ class BreakProps extends Declaration {
|
|
|
4
4
|
/**
|
|
5
5
|
* Change name for -webkit- and -moz- prefix
|
|
6
6
|
*/
|
|
7
|
-
prefixed
|
|
7
|
+
prefixed(prop, prefix) {
|
|
8
8
|
return `${prefix}column-${prop}`
|
|
9
9
|
}
|
|
10
10
|
|
|
11
11
|
/**
|
|
12
12
|
* Return property name by final spec
|
|
13
13
|
*/
|
|
14
|
-
normalize
|
|
14
|
+
normalize(prop) {
|
|
15
15
|
if (prop.includes('inside')) {
|
|
16
16
|
return 'break-inside'
|
|
17
17
|
}
|
|
@@ -24,7 +24,7 @@ class BreakProps extends Declaration {
|
|
|
24
24
|
/**
|
|
25
25
|
* Change prefixed value for avoid-column and avoid-page
|
|
26
26
|
*/
|
|
27
|
-
set
|
|
27
|
+
set(decl, prefix) {
|
|
28
28
|
if (
|
|
29
29
|
(decl.prop === 'break-inside' && decl.value === 'avoid-column') ||
|
|
30
30
|
decl.value === 'avoid-page'
|
|
@@ -37,7 +37,7 @@ class BreakProps extends Declaration {
|
|
|
37
37
|
/**
|
|
38
38
|
* Don’t prefix some values
|
|
39
39
|
*/
|
|
40
|
-
insert
|
|
40
|
+
insert(decl, prefix, prefixes) {
|
|
41
41
|
if (decl.prop !== 'break-inside') {
|
|
42
42
|
return super.insert(decl, prefix, prefixes)
|
|
43
43
|
}
|
|
@@ -4,14 +4,14 @@ class ColorAdjust extends Declaration {
|
|
|
4
4
|
/**
|
|
5
5
|
* Change property name for WebKit-based browsers
|
|
6
6
|
*/
|
|
7
|
-
prefixed
|
|
7
|
+
prefixed(prop, prefix) {
|
|
8
8
|
return prefix + 'print-color-adjust'
|
|
9
9
|
}
|
|
10
10
|
|
|
11
11
|
/**
|
|
12
12
|
* Return property name by spec
|
|
13
13
|
*/
|
|
14
|
-
normalize
|
|
14
|
+
normalize() {
|
|
15
15
|
return 'color-adjust'
|
|
16
16
|
}
|
|
17
17
|
}
|
package/lib/hacks/cross-fade.js
CHANGED
|
@@ -3,7 +3,7 @@ let OldValue = require('../old-value')
|
|
|
3
3
|
let Value = require('../value')
|
|
4
4
|
|
|
5
5
|
class DisplayFlex extends Value {
|
|
6
|
-
constructor
|
|
6
|
+
constructor(name, prefixes) {
|
|
7
7
|
super(name, prefixes)
|
|
8
8
|
if (name === 'display-flex') {
|
|
9
9
|
this.name = 'flex'
|
|
@@ -13,14 +13,14 @@ class DisplayFlex extends Value {
|
|
|
13
13
|
/**
|
|
14
14
|
* Faster check for flex value
|
|
15
15
|
*/
|
|
16
|
-
check
|
|
16
|
+
check(decl) {
|
|
17
17
|
return decl.prop === 'display' && decl.value === this.name
|
|
18
18
|
}
|
|
19
19
|
|
|
20
20
|
/**
|
|
21
21
|
* Return value by spec
|
|
22
22
|
*/
|
|
23
|
-
prefixed
|
|
23
|
+
prefixed(prefix) {
|
|
24
24
|
let spec, value
|
|
25
25
|
;[spec, prefix] = flexSpec(prefix)
|
|
26
26
|
|
|
@@ -46,14 +46,14 @@ class DisplayFlex extends Value {
|
|
|
46
46
|
/**
|
|
47
47
|
* Add prefix to value depend on flebox spec version
|
|
48
48
|
*/
|
|
49
|
-
replace
|
|
49
|
+
replace(string, prefix) {
|
|
50
50
|
return this.prefixed(prefix)
|
|
51
51
|
}
|
|
52
52
|
|
|
53
53
|
/**
|
|
54
54
|
* Change value for old specs
|
|
55
55
|
*/
|
|
56
|
-
old
|
|
56
|
+
old(prefix) {
|
|
57
57
|
let prefixed = this.prefixed(prefix)
|
|
58
58
|
if (!prefixed) return undefined
|
|
59
59
|
return new OldValue(this.name, prefixed)
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
let Value = require('../value')
|
|
2
2
|
|
|
3
3
|
class DisplayGrid extends Value {
|
|
4
|
-
constructor
|
|
4
|
+
constructor(name, prefixes) {
|
|
5
5
|
super(name, prefixes)
|
|
6
6
|
if (name === 'display-grid') {
|
|
7
7
|
this.name = 'grid'
|
|
@@ -11,7 +11,7 @@ class DisplayGrid extends Value {
|
|
|
11
11
|
/**
|
|
12
12
|
* Faster check for flex value
|
|
13
13
|
*/
|
|
14
|
-
check
|
|
14
|
+
check(decl) {
|
|
15
15
|
return decl.prop === 'display' && decl.value === this.name
|
|
16
16
|
}
|
|
17
17
|
}
|