autoprefixer 9.8.7 → 10.0.2

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.
Files changed (80) hide show
  1. package/CHANGELOG.md +999 -0
  2. package/README.md +0 -3
  3. package/bin/autoprefixer +11 -11
  4. package/data/prefixes.js +799 -545
  5. package/lib/at-rule.js +23 -50
  6. package/lib/autoprefixer.js +108 -97
  7. package/lib/brackets.js +31 -44
  8. package/lib/browsers.js +54 -71
  9. package/lib/declaration.js +122 -178
  10. package/lib/hacks/align-content.js +24 -54
  11. package/lib/hacks/align-items.js +23 -53
  12. package/lib/hacks/align-self.js +32 -60
  13. package/lib/hacks/animation.js +11 -29
  14. package/lib/hacks/appearance.js +19 -35
  15. package/lib/hacks/backdrop-filter.js +16 -31
  16. package/lib/hacks/background-clip.js +19 -36
  17. package/lib/hacks/background-size.js +16 -31
  18. package/lib/hacks/block-logical.js +28 -36
  19. package/lib/hacks/border-image.js +9 -27
  20. package/lib/hacks/border-radius.js +22 -44
  21. package/lib/hacks/break-props.js +38 -51
  22. package/lib/hacks/color-adjust.js +11 -30
  23. package/lib/hacks/cross-fade.js +29 -48
  24. package/lib/hacks/display-flex.js +32 -61
  25. package/lib/hacks/display-grid.js +12 -32
  26. package/lib/hacks/filter-value.js +8 -25
  27. package/lib/hacks/filter.js +13 -27
  28. package/lib/hacks/flex-basis.js +21 -54
  29. package/lib/hacks/flex-direction.js +41 -77
  30. package/lib/hacks/flex-flow.js +33 -61
  31. package/lib/hacks/flex-grow.js +16 -43
  32. package/lib/hacks/flex-shrink.js +21 -54
  33. package/lib/hacks/flex-spec.js +7 -10
  34. package/lib/hacks/flex-wrap.js +11 -32
  35. package/lib/hacks/flex.js +27 -58
  36. package/lib/hacks/fullscreen.js +10 -30
  37. package/lib/hacks/gradient.js +240 -330
  38. package/lib/hacks/grid-area.js +25 -43
  39. package/lib/hacks/grid-column-align.js +14 -34
  40. package/lib/hacks/grid-end.js +30 -45
  41. package/lib/hacks/grid-row-align.js +14 -34
  42. package/lib/hacks/grid-row-column.js +20 -39
  43. package/lib/hacks/grid-rows-columns.js +75 -99
  44. package/lib/hacks/grid-start.js +17 -39
  45. package/lib/hacks/grid-template-areas.js +59 -76
  46. package/lib/hacks/grid-template.js +40 -61
  47. package/lib/hacks/grid-utils.js +686 -716
  48. package/lib/hacks/image-rendering.js +24 -47
  49. package/lib/hacks/image-set.js +10 -30
  50. package/lib/hacks/inline-logical.js +26 -32
  51. package/lib/hacks/intrinsic.js +40 -53
  52. package/lib/hacks/justify-content.js +26 -57
  53. package/lib/hacks/mask-border.js +28 -36
  54. package/lib/hacks/mask-composite.js +41 -57
  55. package/lib/hacks/order.js +22 -52
  56. package/lib/hacks/overscroll-behavior.js +16 -37
  57. package/lib/hacks/pixelated.js +16 -40
  58. package/lib/hacks/place-self.js +18 -41
  59. package/lib/hacks/placeholder-shown.js +9 -28
  60. package/lib/hacks/placeholder.js +15 -38
  61. package/lib/hacks/text-decoration-skip-ink.js +14 -29
  62. package/lib/hacks/text-decoration.js +20 -31
  63. package/lib/hacks/text-emphasis-position.js +9 -28
  64. package/lib/hacks/transform-decl.js +43 -69
  65. package/lib/hacks/user-select.js +19 -27
  66. package/lib/hacks/writing-mode.js +19 -36
  67. package/lib/info.js +63 -93
  68. package/lib/old-selector.js +39 -60
  69. package/lib/old-value.js +17 -25
  70. package/lib/prefixer.js +83 -110
  71. package/lib/prefixes.js +233 -336
  72. package/lib/processor.js +420 -416
  73. package/lib/resolution.js +62 -98
  74. package/lib/selector.js +91 -139
  75. package/lib/supports.js +194 -246
  76. package/lib/transition.js +170 -265
  77. package/lib/utils.js +49 -72
  78. package/lib/value.js +77 -116
  79. package/lib/vendor.js +14 -0
  80. package/package.json +23 -12
package/lib/prefixer.js CHANGED
@@ -1,167 +1,140 @@
1
- "use strict";
1
+ let Browsers = require('./browsers')
2
+ let vendor = require('./vendor')
3
+ let utils = require('./utils')
2
4
 
3
- function _createForOfIteratorHelperLoose(o, allowArrayLike) { var it; if (typeof Symbol === "undefined" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; return function () { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } it = o[Symbol.iterator](); return it.next.bind(it); }
4
-
5
- function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
6
-
7
- function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
8
-
9
- var vendor = require('postcss').vendor;
10
-
11
- var Browsers = require('./browsers');
12
-
13
- var utils = require('./utils');
14
5
  /**
15
6
  * Recursively clone objects
16
7
  */
8
+ function clone (obj, parent) {
9
+ let cloned = new obj.constructor()
17
10
 
18
-
19
- function _clone(obj, parent) {
20
- var cloned = new obj.constructor();
21
-
22
- for (var _i = 0, _Object$keys = Object.keys(obj || {}); _i < _Object$keys.length; _i++) {
23
- var i = _Object$keys[_i];
24
- var value = obj[i];
25
-
11
+ for (let i of Object.keys(obj || {})) {
12
+ let value = obj[i]
26
13
  if (i === 'parent' && typeof value === 'object') {
27
14
  if (parent) {
28
- cloned[i] = parent;
15
+ cloned[i] = parent
29
16
  }
30
17
  } else if (i === 'source' || i === null) {
31
- cloned[i] = value;
18
+ cloned[i] = value
32
19
  } else if (Array.isArray(value)) {
33
- cloned[i] = value.map(function (x) {
34
- return _clone(x, cloned);
35
- });
20
+ cloned[i] = value.map(x => clone(x, cloned))
36
21
  } else if (i !== '_autoprefixerPrefix' && i !== '_autoprefixerValues') {
37
22
  if (typeof value === 'object' && value !== null) {
38
- value = _clone(value, cloned);
23
+ value = clone(value, cloned)
39
24
  }
40
-
41
- cloned[i] = value;
25
+ cloned[i] = value
42
26
  }
43
27
  }
44
28
 
45
- return cloned;
29
+ return cloned
46
30
  }
47
31
 
48
- var Prefixer = /*#__PURE__*/function () {
32
+ class Prefixer {
49
33
  /**
50
- * Add hack to selected names
51
- */
52
- Prefixer.hack = function hack(klass) {
53
- var _this = this;
54
-
34
+ * Add hack to selected names
35
+ */
36
+ static hack (klass) {
55
37
  if (!this.hacks) {
56
- this.hacks = {};
38
+ this.hacks = {}
57
39
  }
58
-
59
- return klass.names.map(function (name) {
60
- _this.hacks[name] = klass;
61
- return _this.hacks[name];
62
- });
40
+ return klass.names.map(name => {
41
+ this.hacks[name] = klass
42
+ return this.hacks[name]
43
+ })
63
44
  }
64
- /**
65
- * Load hacks for some names
66
- */
67
- ;
68
-
69
- Prefixer.load = function load(name, prefixes, all) {
70
- var Klass = this.hacks && this.hacks[name];
71
45
 
46
+ /**
47
+ * Load hacks for some names
48
+ */
49
+ static load (name, prefixes, all) {
50
+ let Klass = this.hacks && this.hacks[name]
72
51
  if (Klass) {
73
- return new Klass(name, prefixes, all);
52
+ return new Klass(name, prefixes, all)
74
53
  } else {
75
- return new this(name, prefixes, all);
54
+ return new this(name, prefixes, all)
76
55
  }
77
56
  }
78
- /**
79
- * Clone node and clean autprefixer custom caches
80
- */
81
- ;
82
-
83
- Prefixer.clone = function clone(node, overrides) {
84
- var cloned = _clone(node);
85
57
 
86
- for (var name in overrides) {
87
- cloned[name] = overrides[name];
58
+ /**
59
+ * Clone node and clean autprefixer custom caches
60
+ */
61
+ static clone (node, overrides) {
62
+ let cloned = clone(node)
63
+ for (let name in overrides) {
64
+ cloned[name] = overrides[name]
88
65
  }
89
-
90
- return cloned;
91
- };
92
-
93
- function Prefixer(name, prefixes, all) {
94
- this.prefixes = prefixes;
95
- this.name = name;
96
- this.all = all;
66
+ return cloned
97
67
  }
98
- /**
99
- * Find prefix in node parents
100
- */
101
68
 
69
+ constructor (name, prefixes, all) {
70
+ this.prefixes = prefixes
71
+ this.name = name
72
+ this.all = all
73
+ }
102
74
 
103
- var _proto = Prefixer.prototype;
104
-
105
- _proto.parentPrefix = function parentPrefix(node) {
106
- var prefix;
75
+ /**
76
+ * Find prefix in node parents
77
+ */
78
+ parentPrefix (node) {
79
+ let prefix
107
80
 
108
81
  if (typeof node._autoprefixerPrefix !== 'undefined') {
109
- prefix = node._autoprefixerPrefix;
82
+ prefix = node._autoprefixerPrefix
110
83
  } else if (node.type === 'decl' && node.prop[0] === '-') {
111
- prefix = vendor.prefix(node.prop);
84
+ prefix = vendor.prefix(node.prop)
112
85
  } else if (node.type === 'root') {
113
- prefix = false;
114
- } else if (node.type === 'rule' && node.selector.includes(':-') && /:(-\w+-)/.test(node.selector)) {
115
- prefix = node.selector.match(/:(-\w+-)/)[1];
86
+ prefix = false
87
+ } else if (
88
+ node.type === 'rule' &&
89
+ node.selector.includes(':-') &&
90
+ /:(-\w+-)/.test(node.selector)
91
+ ) {
92
+ prefix = node.selector.match(/:(-\w+-)/)[1]
116
93
  } else if (node.type === 'atrule' && node.name[0] === '-') {
117
- prefix = vendor.prefix(node.name);
94
+ prefix = vendor.prefix(node.name)
118
95
  } else {
119
- prefix = this.parentPrefix(node.parent);
96
+ prefix = this.parentPrefix(node.parent)
120
97
  }
121
98
 
122
99
  if (!Browsers.prefixes().includes(prefix)) {
123
- prefix = false;
100
+ prefix = false
124
101
  }
125
102
 
126
- node._autoprefixerPrefix = prefix;
127
- return node._autoprefixerPrefix;
103
+ node._autoprefixerPrefix = prefix
104
+
105
+ return node._autoprefixerPrefix
128
106
  }
129
- /**
130
- * Clone node with prefixes
131
- */
132
- ;
133
107
 
134
- _proto.process = function process(node, result) {
108
+ /**
109
+ * Clone node with prefixes
110
+ */
111
+ process (node, result) {
135
112
  if (!this.check(node)) {
136
- return undefined;
113
+ return undefined
137
114
  }
138
115
 
139
- var parent = this.parentPrefix(node);
140
- var prefixes = this.prefixes.filter(function (prefix) {
141
- return !parent || parent === utils.removeNote(prefix);
142
- });
143
- var added = [];
116
+ let parent = this.parentPrefix(node)
144
117
 
145
- for (var _iterator = _createForOfIteratorHelperLoose(prefixes), _step; !(_step = _iterator()).done;) {
146
- var prefix = _step.value;
118
+ let prefixes = this.prefixes.filter(
119
+ prefix => !parent || parent === utils.removeNote(prefix)
120
+ )
147
121
 
122
+ let added = []
123
+ for (let prefix of prefixes) {
148
124
  if (this.add(node, prefix, added.concat([prefix]), result)) {
149
- added.push(prefix);
125
+ added.push(prefix)
150
126
  }
151
127
  }
152
128
 
153
- return added;
129
+ return added
154
130
  }
155
- /**
156
- * Shortcut for Prefixer.clone
157
- */
158
- ;
159
-
160
- _proto.clone = function clone(node, overrides) {
161
- return Prefixer.clone(node, overrides);
162
- };
163
131
 
164
- return Prefixer;
165
- }();
132
+ /**
133
+ * Shortcut for Prefixer.clone
134
+ */
135
+ clone (node, overrides) {
136
+ return Prefixer.clone(node, overrides)
137
+ }
138
+ }
166
139
 
167
- module.exports = Prefixer;
140
+ module.exports = Prefixer