cssstyle 5.3.5 → 5.3.7
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/lib/CSSStyleDeclaration.js +6 -5
- package/lib/generated/implementedProperties.js +1 -1
- package/lib/generated/properties.js +2034 -2348
- package/lib/generated/propertyDefinitions.js +13033 -0
- package/lib/normalize.js +1252 -1095
- package/lib/parsers.js +589 -253
- package/lib/properties/background.js +90 -80
- package/lib/properties/backgroundAttachment.js +12 -15
- package/lib/properties/backgroundClip.js +12 -15
- package/lib/properties/backgroundColor.js +9 -14
- package/lib/properties/backgroundImage.js +12 -27
- package/lib/properties/backgroundOrigin.js +12 -15
- package/lib/properties/backgroundPosition.js +30 -19
- package/lib/properties/backgroundRepeat.js +12 -8
- package/lib/properties/backgroundSize.js +23 -17
- package/lib/properties/border.js +31 -88
- package/lib/properties/borderBottom.js +31 -87
- package/lib/properties/borderBottomColor.js +9 -15
- package/lib/properties/borderBottomStyle.js +9 -14
- package/lib/properties/borderBottomWidth.js +12 -24
- package/lib/properties/borderCollapse.js +5 -10
- package/lib/properties/borderColor.js +18 -24
- package/lib/properties/borderLeft.js +31 -87
- package/lib/properties/borderLeftColor.js +9 -15
- package/lib/properties/borderLeftStyle.js +9 -14
- package/lib/properties/borderLeftWidth.js +12 -24
- package/lib/properties/borderRight.js +31 -87
- package/lib/properties/borderRightColor.js +9 -15
- package/lib/properties/borderRightStyle.js +9 -14
- package/lib/properties/borderRightWidth.js +12 -24
- package/lib/properties/borderSpacing.js +13 -10
- package/lib/properties/borderStyle.js +18 -24
- package/lib/properties/borderTop.js +31 -87
- package/lib/properties/borderTopColor.js +9 -15
- package/lib/properties/borderTopStyle.js +9 -14
- package/lib/properties/borderTopWidth.js +12 -24
- package/lib/properties/borderWidth.js +19 -37
- package/lib/properties/bottom.js +7 -18
- package/lib/properties/clear.js +5 -10
- package/lib/properties/clip.js +11 -6
- package/lib/properties/color.js +5 -11
- package/lib/properties/display.js +12 -9
- package/lib/properties/flex.js +56 -54
- package/lib/properties/flexBasis.js +11 -21
- package/lib/properties/flexGrow.js +11 -20
- package/lib/properties/flexShrink.js +11 -20
- package/lib/properties/float.js +5 -10
- package/lib/properties/floodColor.js +5 -11
- package/lib/properties/font.js +47 -34
- package/lib/properties/fontFamily.js +17 -13
- package/lib/properties/fontSize.js +12 -23
- package/lib/properties/fontStyle.js +15 -9
- package/lib/properties/fontVariant.js +12 -19
- package/lib/properties/fontWeight.js +15 -26
- package/lib/properties/height.js +8 -18
- package/lib/properties/left.js +7 -18
- package/lib/properties/lightingColor.js +5 -11
- package/lib/properties/lineHeight.js +11 -25
- package/lib/properties/margin.js +15 -33
- package/lib/properties/marginBottom.js +11 -21
- package/lib/properties/marginLeft.js +11 -21
- package/lib/properties/marginRight.js +11 -21
- package/lib/properties/marginTop.js +11 -21
- package/lib/properties/opacity.js +7 -19
- package/lib/properties/outlineColor.js +5 -11
- package/lib/properties/padding.js +16 -31
- package/lib/properties/paddingBottom.js +12 -22
- package/lib/properties/paddingLeft.js +12 -22
- package/lib/properties/paddingRight.js +12 -22
- package/lib/properties/paddingTop.js +12 -22
- package/lib/properties/right.js +7 -18
- package/lib/properties/stopColor.js +5 -11
- package/lib/properties/top.js +7 -18
- package/lib/properties/webkitBorderAfterColor.js +5 -11
- package/lib/properties/webkitBorderBeforeColor.js +5 -11
- package/lib/properties/webkitBorderEndColor.js +5 -11
- package/lib/properties/webkitBorderStartColor.js +5 -11
- package/lib/properties/webkitColumnRuleColor.js +5 -11
- package/lib/properties/webkitTapHighlightColor.js +5 -11
- package/lib/properties/webkitTextEmphasisColor.js +5 -11
- package/lib/properties/webkitTextFillColor.js +5 -11
- package/lib/properties/webkitTextStrokeColor.js +5 -11
- package/lib/properties/width.js +8 -18
- package/lib/utils/propertyDescriptors.js +49 -13
- package/lib/utils/strings.js +6 -0
- package/package.json +8 -27
|
@@ -7,7 +7,7 @@ const lineShorthand = "border-color";
|
|
|
7
7
|
const positionShorthand = "border-top";
|
|
8
8
|
const shorthand = "border";
|
|
9
9
|
|
|
10
|
-
module.exports.parse =
|
|
10
|
+
module.exports.parse = (v, opt = {}) => {
|
|
11
11
|
const { globalObject } = opt;
|
|
12
12
|
if (v === "") {
|
|
13
13
|
return v;
|
|
@@ -17,15 +17,7 @@ module.exports.parse = function parse(v, opt = {}) {
|
|
|
17
17
|
inArray: true
|
|
18
18
|
});
|
|
19
19
|
if (Array.isArray(value) && value.length === 1) {
|
|
20
|
-
|
|
21
|
-
switch (type) {
|
|
22
|
-
case "GlobalKeyword": {
|
|
23
|
-
return name;
|
|
24
|
-
}
|
|
25
|
-
default: {
|
|
26
|
-
return parsers.parseColor(value);
|
|
27
|
-
}
|
|
28
|
-
}
|
|
20
|
+
return parsers.resolveColorValue(value);
|
|
29
21
|
} else if (typeof value === "string") {
|
|
30
22
|
return value;
|
|
31
23
|
}
|
|
@@ -33,7 +25,7 @@ module.exports.parse = function parse(v, opt = {}) {
|
|
|
33
25
|
|
|
34
26
|
module.exports.definition = {
|
|
35
27
|
set(v) {
|
|
36
|
-
v = parsers.prepareValue(v
|
|
28
|
+
v = parsers.prepareValue(v);
|
|
37
29
|
if (parsers.hasVarFunc(v)) {
|
|
38
30
|
this._borderSetter(property, v, "");
|
|
39
31
|
} else {
|
|
@@ -44,10 +36,10 @@ module.exports.definition = {
|
|
|
44
36
|
const shorthandPriority = this._priorities.get(shorthand);
|
|
45
37
|
const linePriority = this._priorities.get(lineShorthand);
|
|
46
38
|
const positionPriority = this._priorities.get(positionShorthand);
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
39
|
+
const priority =
|
|
40
|
+
!(shorthandPriority || linePriority || positionPriority) && this._priorities.has(property)
|
|
41
|
+
? this._priorities.get(property)
|
|
42
|
+
: "";
|
|
51
43
|
this._borderSetter(property, val, priority);
|
|
52
44
|
}
|
|
53
45
|
}
|
|
@@ -58,3 +50,5 @@ module.exports.definition = {
|
|
|
58
50
|
enumerable: true,
|
|
59
51
|
configurable: true
|
|
60
52
|
};
|
|
53
|
+
|
|
54
|
+
module.exports.property = property;
|
|
@@ -7,7 +7,7 @@ const lineShorthand = "border-style";
|
|
|
7
7
|
const positionShorthand = "border-top";
|
|
8
8
|
const shorthand = "border";
|
|
9
9
|
|
|
10
|
-
module.exports.parse =
|
|
10
|
+
module.exports.parse = (v, opt = {}) => {
|
|
11
11
|
const { globalObject } = opt;
|
|
12
12
|
if (v === "") {
|
|
13
13
|
return v;
|
|
@@ -17,14 +17,7 @@ module.exports.parse = function parse(v, opt = {}) {
|
|
|
17
17
|
inArray: true
|
|
18
18
|
});
|
|
19
19
|
if (Array.isArray(value) && value.length === 1) {
|
|
20
|
-
|
|
21
|
-
switch (type) {
|
|
22
|
-
case "GlobalKeyword":
|
|
23
|
-
case "Identifier": {
|
|
24
|
-
return name;
|
|
25
|
-
}
|
|
26
|
-
default:
|
|
27
|
-
}
|
|
20
|
+
return parsers.resolveKeywordValue(value);
|
|
28
21
|
} else if (typeof value === "string") {
|
|
29
22
|
return value;
|
|
30
23
|
}
|
|
@@ -32,7 +25,7 @@ module.exports.parse = function parse(v, opt = {}) {
|
|
|
32
25
|
|
|
33
26
|
module.exports.definition = {
|
|
34
27
|
set(v) {
|
|
35
|
-
v = parsers.prepareValue(v
|
|
28
|
+
v = parsers.prepareValue(v);
|
|
36
29
|
if (parsers.hasVarFunc(v)) {
|
|
37
30
|
this._borderSetter(property, v, "");
|
|
38
31
|
} else {
|
|
@@ -43,10 +36,10 @@ module.exports.definition = {
|
|
|
43
36
|
const shorthandPriority = this._priorities.get(shorthand);
|
|
44
37
|
const linePriority = this._priorities.get(lineShorthand);
|
|
45
38
|
const positionPriority = this._priorities.get(positionShorthand);
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
39
|
+
const priority =
|
|
40
|
+
!(shorthandPriority || linePriority || positionPriority) && this._priorities.has(property)
|
|
41
|
+
? this._priorities.get(property)
|
|
42
|
+
: "";
|
|
50
43
|
this._borderSetter(property, val, priority);
|
|
51
44
|
}
|
|
52
45
|
}
|
|
@@ -57,3 +50,5 @@ module.exports.definition = {
|
|
|
57
50
|
enumerable: true,
|
|
58
51
|
configurable: true
|
|
59
52
|
};
|
|
53
|
+
|
|
54
|
+
module.exports.property = property;
|
|
@@ -7,7 +7,7 @@ const lineShorthand = "border-width";
|
|
|
7
7
|
const positionShorthand = "border-top";
|
|
8
8
|
const shorthand = "border";
|
|
9
9
|
|
|
10
|
-
module.exports.parse =
|
|
10
|
+
module.exports.parse = (v, opt = {}) => {
|
|
11
11
|
const { globalObject } = opt;
|
|
12
12
|
if (v === "") {
|
|
13
13
|
return v;
|
|
@@ -17,24 +17,10 @@ module.exports.parse = function parse(v, opt = {}) {
|
|
|
17
17
|
inArray: true
|
|
18
18
|
});
|
|
19
19
|
if (Array.isArray(value) && value.length === 1) {
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
return;
|
|
25
|
-
}
|
|
26
|
-
return `${name}(${itemValue})`;
|
|
27
|
-
}
|
|
28
|
-
case "GlobalKeyword":
|
|
29
|
-
case "Identifier": {
|
|
30
|
-
return name;
|
|
31
|
-
}
|
|
32
|
-
default: {
|
|
33
|
-
return parsers.parseLength(value, {
|
|
34
|
-
min: 0
|
|
35
|
-
});
|
|
36
|
-
}
|
|
37
|
-
}
|
|
20
|
+
return parsers.resolveNumericValue(value, {
|
|
21
|
+
min: 0,
|
|
22
|
+
type: "length"
|
|
23
|
+
});
|
|
38
24
|
} else if (typeof value === "string") {
|
|
39
25
|
return value;
|
|
40
26
|
}
|
|
@@ -42,7 +28,7 @@ module.exports.parse = function parse(v, opt = {}) {
|
|
|
42
28
|
|
|
43
29
|
module.exports.definition = {
|
|
44
30
|
set(v) {
|
|
45
|
-
v = parsers.prepareValue(v
|
|
31
|
+
v = parsers.prepareValue(v);
|
|
46
32
|
if (parsers.hasVarFunc(v)) {
|
|
47
33
|
this._borderSetter(property, v, "");
|
|
48
34
|
} else {
|
|
@@ -53,10 +39,10 @@ module.exports.definition = {
|
|
|
53
39
|
const shorthandPriority = this._priorities.get(shorthand);
|
|
54
40
|
const linePriority = this._priorities.get(lineShorthand);
|
|
55
41
|
const positionPriority = this._priorities.get(positionShorthand);
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
42
|
+
const priority =
|
|
43
|
+
!(shorthandPriority || linePriority || positionPriority) && this._priorities.has(property)
|
|
44
|
+
? this._priorities.get(property)
|
|
45
|
+
: "";
|
|
60
46
|
this._borderSetter(property, val, priority);
|
|
61
47
|
}
|
|
62
48
|
}
|
|
@@ -67,3 +53,5 @@ module.exports.definition = {
|
|
|
67
53
|
enumerable: true,
|
|
68
54
|
configurable: true
|
|
69
55
|
};
|
|
56
|
+
|
|
57
|
+
module.exports.property = property;
|
|
@@ -10,13 +10,13 @@ const property = "border-width";
|
|
|
10
10
|
const shorthand = "border";
|
|
11
11
|
|
|
12
12
|
module.exports.shorthandFor = new Map([
|
|
13
|
-
[
|
|
14
|
-
[
|
|
15
|
-
[
|
|
16
|
-
[
|
|
13
|
+
[borderTopWidth.property, borderTopWidth],
|
|
14
|
+
[borderRightWidth.property, borderRightWidth],
|
|
15
|
+
[borderBottomWidth.property, borderBottomWidth],
|
|
16
|
+
[borderLeftWidth.property, borderLeftWidth]
|
|
17
17
|
]);
|
|
18
18
|
|
|
19
|
-
module.exports.parse =
|
|
19
|
+
module.exports.parse = (v, opt = {}) => {
|
|
20
20
|
const { globalObject } = opt;
|
|
21
21
|
if (v === "") {
|
|
22
22
|
return v;
|
|
@@ -31,35 +31,14 @@ module.exports.parse = function parse(v, opt = {}) {
|
|
|
31
31
|
return;
|
|
32
32
|
}
|
|
33
33
|
for (const value of values) {
|
|
34
|
-
const
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
parsedValues.push(`${name}(${itemValue})`);
|
|
41
|
-
break;
|
|
42
|
-
}
|
|
43
|
-
case "GlobalKeyword": {
|
|
44
|
-
if (values.length !== 1) {
|
|
45
|
-
return;
|
|
46
|
-
}
|
|
47
|
-
return name;
|
|
48
|
-
}
|
|
49
|
-
case "Identifier": {
|
|
50
|
-
parsedValues.push(name);
|
|
51
|
-
break;
|
|
52
|
-
}
|
|
53
|
-
default: {
|
|
54
|
-
const parsedValue = parsers.parseLength([value], {
|
|
55
|
-
min: 0
|
|
56
|
-
});
|
|
57
|
-
if (!parsedValue) {
|
|
58
|
-
return;
|
|
59
|
-
}
|
|
60
|
-
parsedValues.push(parsedValue);
|
|
61
|
-
}
|
|
34
|
+
const parsedValue = parsers.resolveNumericValue([value], {
|
|
35
|
+
length: values.length,
|
|
36
|
+
type: "length"
|
|
37
|
+
});
|
|
38
|
+
if (!parsedValue) {
|
|
39
|
+
return;
|
|
62
40
|
}
|
|
41
|
+
parsedValues.push(parsedValue);
|
|
63
42
|
}
|
|
64
43
|
} else if (typeof values === "string") {
|
|
65
44
|
parsedValues.push(values);
|
|
@@ -106,7 +85,7 @@ module.exports.parse = function parse(v, opt = {}) {
|
|
|
106
85
|
|
|
107
86
|
module.exports.definition = {
|
|
108
87
|
set(v) {
|
|
109
|
-
v = parsers.prepareValue(v
|
|
88
|
+
v = parsers.prepareValue(v);
|
|
110
89
|
if (parsers.hasVarFunc(v)) {
|
|
111
90
|
this._borderSetter(property, v, "");
|
|
112
91
|
} else {
|
|
@@ -114,9 +93,10 @@ module.exports.definition = {
|
|
|
114
93
|
globalObject: this._global
|
|
115
94
|
});
|
|
116
95
|
if (Array.isArray(val) || typeof val === "string") {
|
|
117
|
-
const
|
|
118
|
-
|
|
119
|
-
|
|
96
|
+
const priority =
|
|
97
|
+
!this._priorities.get(shorthand) && this._priorities.has(property)
|
|
98
|
+
? this._priorities.get(property)
|
|
99
|
+
: "";
|
|
120
100
|
this._borderSetter(property, val, priority);
|
|
121
101
|
}
|
|
122
102
|
}
|
|
@@ -127,3 +107,5 @@ module.exports.definition = {
|
|
|
127
107
|
enumerable: true,
|
|
128
108
|
configurable: true
|
|
129
109
|
};
|
|
110
|
+
|
|
111
|
+
module.exports.property = property;
|
package/lib/properties/bottom.js
CHANGED
|
@@ -4,7 +4,7 @@ const parsers = require("../parsers");
|
|
|
4
4
|
|
|
5
5
|
const property = "bottom";
|
|
6
6
|
|
|
7
|
-
module.exports.parse =
|
|
7
|
+
module.exports.parse = (v, opt = {}) => {
|
|
8
8
|
const { globalObject } = opt;
|
|
9
9
|
if (v === "") {
|
|
10
10
|
return v;
|
|
@@ -14,22 +14,9 @@ module.exports.parse = function parse(v, opt = {}) {
|
|
|
14
14
|
inArray: true
|
|
15
15
|
});
|
|
16
16
|
if (Array.isArray(value) && value.length === 1) {
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
if (!isNumber) {
|
|
21
|
-
return raw;
|
|
22
|
-
}
|
|
23
|
-
break;
|
|
24
|
-
}
|
|
25
|
-
case "GlobalKeyword":
|
|
26
|
-
case "Identifier": {
|
|
27
|
-
return name;
|
|
28
|
-
}
|
|
29
|
-
default: {
|
|
30
|
-
return parsers.parseLengthPercentage(value);
|
|
31
|
-
}
|
|
32
|
-
}
|
|
17
|
+
return parsers.resolveNumericValue(value, {
|
|
18
|
+
type: "length"
|
|
19
|
+
});
|
|
33
20
|
} else if (typeof value === "string") {
|
|
34
21
|
return value;
|
|
35
22
|
}
|
|
@@ -37,7 +24,7 @@ module.exports.parse = function parse(v, opt = {}) {
|
|
|
37
24
|
|
|
38
25
|
module.exports.definition = {
|
|
39
26
|
set(v) {
|
|
40
|
-
v = parsers.prepareValue(v
|
|
27
|
+
v = parsers.prepareValue(v);
|
|
41
28
|
if (parsers.hasVarFunc(v)) {
|
|
42
29
|
this._setProperty(property, v);
|
|
43
30
|
} else {
|
|
@@ -56,3 +43,5 @@ module.exports.definition = {
|
|
|
56
43
|
enumerable: true,
|
|
57
44
|
configurable: true
|
|
58
45
|
};
|
|
46
|
+
|
|
47
|
+
module.exports.property = property;
|
package/lib/properties/clear.js
CHANGED
|
@@ -4,7 +4,7 @@ const parsers = require("../parsers");
|
|
|
4
4
|
|
|
5
5
|
const property = "clear";
|
|
6
6
|
|
|
7
|
-
module.exports.parse =
|
|
7
|
+
module.exports.parse = (v, opt = {}) => {
|
|
8
8
|
const { globalObject } = opt;
|
|
9
9
|
if (v === "") {
|
|
10
10
|
return v;
|
|
@@ -14,14 +14,7 @@ module.exports.parse = function parse(v, opt = {}) {
|
|
|
14
14
|
inArray: true
|
|
15
15
|
});
|
|
16
16
|
if (Array.isArray(value) && value.length === 1) {
|
|
17
|
-
|
|
18
|
-
switch (type) {
|
|
19
|
-
case "GlobalKeyword":
|
|
20
|
-
case "Identifier": {
|
|
21
|
-
return name;
|
|
22
|
-
}
|
|
23
|
-
default:
|
|
24
|
-
}
|
|
17
|
+
return parsers.resolveKeywordValue(value);
|
|
25
18
|
} else if (typeof value === "string") {
|
|
26
19
|
return value;
|
|
27
20
|
}
|
|
@@ -29,7 +22,7 @@ module.exports.parse = function parse(v, opt = {}) {
|
|
|
29
22
|
|
|
30
23
|
module.exports.definition = {
|
|
31
24
|
set(v) {
|
|
32
|
-
v = parsers.prepareValue(v
|
|
25
|
+
v = parsers.prepareValue(v);
|
|
33
26
|
if (parsers.hasVarFunc(v)) {
|
|
34
27
|
this._setProperty(property, v);
|
|
35
28
|
} else {
|
|
@@ -48,3 +41,5 @@ module.exports.definition = {
|
|
|
48
41
|
enumerable: true,
|
|
49
42
|
configurable: true
|
|
50
43
|
};
|
|
44
|
+
|
|
45
|
+
module.exports.property = property;
|
package/lib/properties/clip.js
CHANGED
|
@@ -6,11 +6,12 @@ const parsers = require("../parsers");
|
|
|
6
6
|
|
|
7
7
|
const property = "clip";
|
|
8
8
|
|
|
9
|
-
module.exports.parse =
|
|
9
|
+
module.exports.parse = (v, opt = {}) => {
|
|
10
10
|
const { globalObject } = opt;
|
|
11
11
|
if (v === "") {
|
|
12
12
|
return v;
|
|
13
13
|
}
|
|
14
|
+
const { AST_TYPES } = parsers;
|
|
14
15
|
const value = parsers.parsePropertyValue(property, v, {
|
|
15
16
|
globalObject,
|
|
16
17
|
inArray: true
|
|
@@ -18,14 +19,16 @@ module.exports.parse = function parse(v, opt = {}) {
|
|
|
18
19
|
if (Array.isArray(value) && value.length === 1) {
|
|
19
20
|
const [{ name, type, value: itemValue }] = value;
|
|
20
21
|
switch (type) {
|
|
21
|
-
case
|
|
22
|
+
case AST_TYPES.FUNCTION: {
|
|
22
23
|
const values = parsers.splitValue(itemValue, {
|
|
23
24
|
delimiter: ","
|
|
24
25
|
});
|
|
25
26
|
const parsedValues = [];
|
|
26
27
|
for (const item of values) {
|
|
27
28
|
const parsedValue = parsers.parseCSS(item, { context: "value" }, true);
|
|
28
|
-
const val = parsers.
|
|
29
|
+
const val = parsers.resolveNumericValue(parsedValue.children, {
|
|
30
|
+
type: "length"
|
|
31
|
+
});
|
|
29
32
|
if (val) {
|
|
30
33
|
parsedValues.push(val);
|
|
31
34
|
} else {
|
|
@@ -34,8 +37,8 @@ module.exports.parse = function parse(v, opt = {}) {
|
|
|
34
37
|
}
|
|
35
38
|
return `${name}(${parsedValues.join(", ")})`;
|
|
36
39
|
}
|
|
37
|
-
case
|
|
38
|
-
case
|
|
40
|
+
case AST_TYPES.GLOBAL_KEYWORD:
|
|
41
|
+
case AST_TYPES.IDENTIFIER: {
|
|
39
42
|
return name;
|
|
40
43
|
}
|
|
41
44
|
default:
|
|
@@ -47,7 +50,7 @@ module.exports.parse = function parse(v, opt = {}) {
|
|
|
47
50
|
|
|
48
51
|
module.exports.definition = {
|
|
49
52
|
set(v) {
|
|
50
|
-
v = parsers.prepareValue(v
|
|
53
|
+
v = parsers.prepareValue(v);
|
|
51
54
|
if (parsers.hasVarFunc(v)) {
|
|
52
55
|
this._setProperty(property, v);
|
|
53
56
|
} else {
|
|
@@ -66,3 +69,5 @@ module.exports.definition = {
|
|
|
66
69
|
enumerable: true,
|
|
67
70
|
configurable: true
|
|
68
71
|
};
|
|
72
|
+
|
|
73
|
+
module.exports.property = property;
|
package/lib/properties/color.js
CHANGED
|
@@ -4,7 +4,7 @@ const parsers = require("../parsers");
|
|
|
4
4
|
|
|
5
5
|
const property = "color";
|
|
6
6
|
|
|
7
|
-
module.exports.parse =
|
|
7
|
+
module.exports.parse = (v, opt = {}) => {
|
|
8
8
|
const { globalObject } = opt;
|
|
9
9
|
if (v === "") {
|
|
10
10
|
return v;
|
|
@@ -14,15 +14,7 @@ module.exports.parse = function parse(v, opt = {}) {
|
|
|
14
14
|
inArray: true
|
|
15
15
|
});
|
|
16
16
|
if (Array.isArray(value) && value.length === 1) {
|
|
17
|
-
|
|
18
|
-
switch (type) {
|
|
19
|
-
case "GlobalKeyword": {
|
|
20
|
-
return name;
|
|
21
|
-
}
|
|
22
|
-
default: {
|
|
23
|
-
return parsers.parseColor(value);
|
|
24
|
-
}
|
|
25
|
-
}
|
|
17
|
+
return parsers.resolveColorValue(value);
|
|
26
18
|
} else if (typeof value === "string") {
|
|
27
19
|
return value;
|
|
28
20
|
}
|
|
@@ -30,7 +22,7 @@ module.exports.parse = function parse(v, opt = {}) {
|
|
|
30
22
|
|
|
31
23
|
module.exports.definition = {
|
|
32
24
|
set(v) {
|
|
33
|
-
v = parsers.prepareValue(v
|
|
25
|
+
v = parsers.prepareValue(v);
|
|
34
26
|
if (parsers.hasVarFunc(v)) {
|
|
35
27
|
this._setProperty(property, v);
|
|
36
28
|
} else {
|
|
@@ -49,3 +41,5 @@ module.exports.definition = {
|
|
|
49
41
|
enumerable: true,
|
|
50
42
|
configurable: true
|
|
51
43
|
};
|
|
44
|
+
|
|
45
|
+
module.exports.property = property;
|
|
@@ -8,11 +8,12 @@ const property = "display";
|
|
|
8
8
|
const displayOutside = ["block", "inline", "run-in"];
|
|
9
9
|
const displayFlow = ["flow", "flow-root"];
|
|
10
10
|
|
|
11
|
-
module.exports.parse =
|
|
11
|
+
module.exports.parse = (v, opt = {}) => {
|
|
12
12
|
const { globalObject } = opt;
|
|
13
13
|
if (v === "") {
|
|
14
14
|
return v;
|
|
15
15
|
}
|
|
16
|
+
const { AST_TYPES } = parsers;
|
|
16
17
|
const value = parsers.parsePropertyValue(property, v, {
|
|
17
18
|
globalObject,
|
|
18
19
|
inArray: true
|
|
@@ -22,10 +23,10 @@ module.exports.parse = function parse(v, opt = {}) {
|
|
|
22
23
|
case 1: {
|
|
23
24
|
const [{ name, type }] = value;
|
|
24
25
|
switch (type) {
|
|
25
|
-
case
|
|
26
|
+
case AST_TYPES.GLOBAL_KEYWORD: {
|
|
26
27
|
return name;
|
|
27
28
|
}
|
|
28
|
-
case
|
|
29
|
+
case AST_TYPES.IDENTIFIER: {
|
|
29
30
|
if (name === "flow") {
|
|
30
31
|
return "block";
|
|
31
32
|
}
|
|
@@ -37,8 +38,8 @@ module.exports.parse = function parse(v, opt = {}) {
|
|
|
37
38
|
}
|
|
38
39
|
case 2: {
|
|
39
40
|
const [part1, part2] = value;
|
|
40
|
-
const val1 = part1.type ===
|
|
41
|
-
const val2 = part2.type ===
|
|
41
|
+
const val1 = part1.type === AST_TYPES.IDENTIFIER && part1.name;
|
|
42
|
+
const val2 = part2.type === AST_TYPES.IDENTIFIER && part2.name;
|
|
42
43
|
if (val1 && val2) {
|
|
43
44
|
let outerValue = "";
|
|
44
45
|
let innerValue = "";
|
|
@@ -122,9 +123,9 @@ module.exports.parse = function parse(v, opt = {}) {
|
|
|
122
123
|
}
|
|
123
124
|
case 3: {
|
|
124
125
|
const [part1, part2, part3] = value;
|
|
125
|
-
const val1 = part1.type ===
|
|
126
|
-
const val2 = part2.type ===
|
|
127
|
-
const val3 = part3.type ===
|
|
126
|
+
const val1 = part1.type === AST_TYPES.IDENTIFIER && part1.name;
|
|
127
|
+
const val2 = part2.type === AST_TYPES.IDENTIFIER && part2.name;
|
|
128
|
+
const val3 = part3.type === AST_TYPES.IDENTIFIER && part3.name;
|
|
128
129
|
if (val1 && val2 && part3) {
|
|
129
130
|
let outerValue = "";
|
|
130
131
|
let flowValue = "";
|
|
@@ -186,7 +187,7 @@ module.exports.parse = function parse(v, opt = {}) {
|
|
|
186
187
|
|
|
187
188
|
module.exports.definition = {
|
|
188
189
|
set(v) {
|
|
189
|
-
v = parsers.prepareValue(v
|
|
190
|
+
v = parsers.prepareValue(v);
|
|
190
191
|
if (parsers.hasVarFunc(v)) {
|
|
191
192
|
this._setProperty(property, v);
|
|
192
193
|
} else {
|
|
@@ -205,3 +206,5 @@ module.exports.definition = {
|
|
|
205
206
|
enumerable: true,
|
|
206
207
|
configurable: true
|
|
207
208
|
};
|
|
209
|
+
|
|
210
|
+
module.exports.property = property;
|