autoprefixer 9.4.10 → 9.5.0

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/CHANGELOG.md CHANGED
@@ -1,6 +1,9 @@
1
1
  # Change Log
2
2
  This project adheres to [Semantic Versioning](http://semver.org/).
3
3
 
4
+ ## 9.5 “Draco dormiens nunquam titillandus”
5
+ * Add `mask-composite` support (by Semen Levenson).
6
+
4
7
  ## 9.4.10
5
8
  * Add warning for named Grid rows.
6
9
 
@@ -0,0 +1,106 @@
1
+ "use strict";
2
+
3
+ function _defaults(obj, defaults) { var keys = Object.getOwnPropertyNames(defaults); for (var i = 0; i < keys.length; i++) { var key = keys[i]; var value = Object.getOwnPropertyDescriptor(defaults, key); if (value && value.configurable && obj[key] === undefined) { Object.defineProperty(obj, key, value); } } return obj; }
4
+
5
+ function _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _defaults(subClass, superClass); }
6
+
7
+ function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
8
+
9
+ var Declaration = require('../declaration');
10
+
11
+ var MaskComposite =
12
+ /*#__PURE__*/
13
+ function (_Declaration) {
14
+ _inheritsLoose(MaskComposite, _Declaration);
15
+
16
+ function MaskComposite() {
17
+ return _Declaration.apply(this, arguments) || this;
18
+ }
19
+
20
+ var _proto = MaskComposite.prototype;
21
+
22
+ /**
23
+ * Prefix mask-composite for webkit
24
+ */
25
+ _proto.insert = function insert(decl, prefix, prefixes) {
26
+ var isCompositeProp = decl.prop === 'mask-composite';
27
+ var compositeValues;
28
+
29
+ if (isCompositeProp) {
30
+ compositeValues = decl.value.split(',');
31
+ } else {
32
+ compositeValues = decl.value.match(MaskComposite.regexp) || [];
33
+ }
34
+
35
+ compositeValues = compositeValues.map(function (el) {
36
+ return el.trim();
37
+ }).filter(function (el) {
38
+ return el;
39
+ });
40
+ var hasCompositeValues = compositeValues.length;
41
+ var compositeDecl;
42
+
43
+ if (hasCompositeValues) {
44
+ compositeDecl = this.clone(decl);
45
+ compositeDecl.value = compositeValues.map(function (value) {
46
+ return MaskComposite.oldValues[value] || value;
47
+ }).join(', ');
48
+
49
+ if (compositeValues.includes('intersect')) {
50
+ compositeDecl.value += ', xor';
51
+ }
52
+
53
+ compositeDecl.prop = prefix + 'mask-composite';
54
+ }
55
+
56
+ if (isCompositeProp) {
57
+ if (!hasCompositeValues) {
58
+ return undefined;
59
+ }
60
+
61
+ if (this.needCascade(decl)) {
62
+ compositeDecl.raws.before = this.calcBefore(prefixes, decl, prefix);
63
+ }
64
+
65
+ return decl.parent.insertBefore(decl, compositeDecl);
66
+ }
67
+
68
+ var cloned = this.clone(decl);
69
+ cloned.prop = prefix + cloned.prop;
70
+
71
+ if (hasCompositeValues) {
72
+ cloned.value = cloned.value.replace(MaskComposite.regexp, '');
73
+ }
74
+
75
+ if (this.needCascade(decl)) {
76
+ cloned.raws.before = this.calcBefore(prefixes, decl, prefix);
77
+ }
78
+
79
+ decl.parent.insertBefore(decl, cloned);
80
+
81
+ if (!hasCompositeValues) {
82
+ return decl;
83
+ }
84
+
85
+ if (this.needCascade(decl)) {
86
+ compositeDecl.raws.before = this.calcBefore(prefixes, decl, prefix);
87
+ }
88
+
89
+ return decl.parent.insertBefore(decl, compositeDecl);
90
+ };
91
+
92
+ return MaskComposite;
93
+ }(Declaration);
94
+
95
+ _defineProperty(MaskComposite, "names", ['mask', 'mask-composite']);
96
+
97
+ _defineProperty(MaskComposite, "oldValues", {
98
+ add: 'source-over',
99
+ substract: 'source-out',
100
+ intersect: 'source-in',
101
+ exclude: 'xor'
102
+ });
103
+
104
+ _defineProperty(MaskComposite, "regexp", new RegExp("\\s+(" + Object.keys(MaskComposite.oldValues).join('|') + ")\\b(?!\\))\\s*(?=[,])", 'ig'));
105
+
106
+ module.exports = MaskComposite;
package/lib/prefixes.js CHANGED
@@ -39,6 +39,7 @@ Declaration.hack(require('./hacks/align-self'));
39
39
  Declaration.hack(require('./hacks/appearance'));
40
40
  Declaration.hack(require('./hacks/flex-basis'));
41
41
  Declaration.hack(require('./hacks/mask-border'));
42
+ Declaration.hack(require('./hacks/mask-composite'));
42
43
  Declaration.hack(require('./hacks/align-items'));
43
44
  Declaration.hack(require('./hacks/flex-shrink'));
44
45
  Declaration.hack(require('./hacks/break-props'));
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "autoprefixer",
3
- "version": "9.4.10",
3
+ "version": "9.5.0",
4
4
  "description": "Parse CSS and add vendor prefixes to CSS rules using values from the Can I Use website",
5
5
  "keywords": ["autoprefixer", "css", "prefix", "postcss", "postcss-plugin"],
6
6
  "author": "Andrey Sitnik <andrey@sitnik.ru>",
@@ -11,7 +11,7 @@
11
11
  },
12
12
  "dependencies": {
13
13
  "browserslist": "^4.4.2",
14
- "caniuse-lite": "^1.0.30000940",
14
+ "caniuse-lite": "^1.0.30000947",
15
15
  "normalize-range": "^0.1.2",
16
16
  "num2fraction": "^1.2.2",
17
17
  "postcss": "^7.0.14",