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
|
@@ -8,19 +8,25 @@ const borderRightColor = require("./borderRightColor");
|
|
|
8
8
|
const property = "border-right";
|
|
9
9
|
const shorthand = "border";
|
|
10
10
|
|
|
11
|
+
const subProps = {
|
|
12
|
+
width: borderRightWidth.property,
|
|
13
|
+
style: borderRightStyle.property,
|
|
14
|
+
color: borderRightColor.property
|
|
15
|
+
};
|
|
16
|
+
|
|
11
17
|
module.exports.initialValues = new Map([
|
|
12
|
-
[
|
|
13
|
-
[
|
|
14
|
-
[
|
|
18
|
+
[borderRightWidth.property, "medium"],
|
|
19
|
+
[borderRightStyle.property, "none"],
|
|
20
|
+
[borderRightColor.property, "currentcolor"]
|
|
15
21
|
]);
|
|
16
22
|
|
|
17
23
|
module.exports.shorthandFor = new Map([
|
|
18
|
-
[
|
|
19
|
-
[
|
|
20
|
-
[
|
|
24
|
+
[borderRightWidth.property, borderRightWidth],
|
|
25
|
+
[borderRightStyle.property, borderRightStyle],
|
|
26
|
+
[borderRightColor.property, borderRightColor]
|
|
21
27
|
]);
|
|
22
28
|
|
|
23
|
-
module.exports.parse =
|
|
29
|
+
module.exports.parse = (v, opt = {}) => {
|
|
24
30
|
const { globalObject } = opt;
|
|
25
31
|
if (v === "") {
|
|
26
32
|
return v;
|
|
@@ -33,79 +39,14 @@ module.exports.parse = function parse(v, opt = {}) {
|
|
|
33
39
|
inArray: true
|
|
34
40
|
});
|
|
35
41
|
if (Array.isArray(value) && value.length === 1) {
|
|
36
|
-
const
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
}
|
|
45
|
-
case "Dimension":
|
|
46
|
-
case "Number": {
|
|
47
|
-
if (parsedValues.has("border-right-width")) {
|
|
48
|
-
return;
|
|
49
|
-
}
|
|
50
|
-
const parsedValue = parsers.parseLength(value, {
|
|
51
|
-
min: 0
|
|
52
|
-
});
|
|
53
|
-
if (!parsedValue) {
|
|
54
|
-
return;
|
|
55
|
-
}
|
|
56
|
-
parsedValues.set("border-right-width", parsedValue);
|
|
57
|
-
break;
|
|
58
|
-
}
|
|
59
|
-
case "Function": {
|
|
60
|
-
if (parsedValues.has("border-right-color")) {
|
|
61
|
-
return;
|
|
62
|
-
}
|
|
63
|
-
const parsedValue = parsers.parseColor(value);
|
|
64
|
-
if (!parsedValue) {
|
|
65
|
-
return;
|
|
66
|
-
}
|
|
67
|
-
parsedValues.set("border-right-color", parsedValue);
|
|
68
|
-
break;
|
|
69
|
-
}
|
|
70
|
-
case "GlobalKeyword": {
|
|
71
|
-
return name;
|
|
72
|
-
}
|
|
73
|
-
case "Hash": {
|
|
74
|
-
if (parsedValues.has("border-right-color")) {
|
|
75
|
-
return;
|
|
76
|
-
}
|
|
77
|
-
const parsedValue = parsers.parseColor(value);
|
|
78
|
-
if (!parsedValue) {
|
|
79
|
-
return;
|
|
80
|
-
}
|
|
81
|
-
parsedValues.set("border-right-color", parsedValue);
|
|
82
|
-
break;
|
|
83
|
-
}
|
|
84
|
-
case "Identifier": {
|
|
85
|
-
if (parsers.isValidPropertyValue("border-right-width", name)) {
|
|
86
|
-
if (parsedValues.has("border-right-width")) {
|
|
87
|
-
return;
|
|
88
|
-
}
|
|
89
|
-
parsedValues.set("border-right-width", name);
|
|
90
|
-
break;
|
|
91
|
-
} else if (parsers.isValidPropertyValue("border-right-style", name)) {
|
|
92
|
-
if (parsedValues.has("border-right-style")) {
|
|
93
|
-
return;
|
|
94
|
-
}
|
|
95
|
-
parsedValues.set("border-right-style", name);
|
|
96
|
-
break;
|
|
97
|
-
} else if (parsers.isValidPropertyValue("border-right-color", name)) {
|
|
98
|
-
if (parsedValues.has("border-right-color")) {
|
|
99
|
-
return;
|
|
100
|
-
}
|
|
101
|
-
parsedValues.set("border-right-color", name);
|
|
102
|
-
break;
|
|
103
|
-
}
|
|
104
|
-
return;
|
|
105
|
-
}
|
|
106
|
-
default: {
|
|
107
|
-
return;
|
|
108
|
-
}
|
|
42
|
+
const parsedValue = parsers.resolveBorderShorthandValue(value, subProps, parsedValues);
|
|
43
|
+
if (typeof parsedValue === "string") {
|
|
44
|
+
return parsedValue;
|
|
45
|
+
} else if (Array.isArray(parsedValue)) {
|
|
46
|
+
const [key, resolvedVal] = parsedValue;
|
|
47
|
+
parsedValues.set(key, resolvedVal);
|
|
48
|
+
} else {
|
|
49
|
+
return;
|
|
109
50
|
}
|
|
110
51
|
} else {
|
|
111
52
|
return;
|
|
@@ -114,15 +55,15 @@ module.exports.parse = function parse(v, opt = {}) {
|
|
|
114
55
|
if (parsedValues.size) {
|
|
115
56
|
const keys = module.exports.shorthandFor.keys();
|
|
116
57
|
const obj = {
|
|
117
|
-
|
|
58
|
+
[borderRightWidth.property]: "medium"
|
|
118
59
|
};
|
|
119
60
|
for (const key of keys) {
|
|
120
61
|
if (parsedValues.has(key)) {
|
|
121
62
|
const parsedValue = parsedValues.get(key);
|
|
122
63
|
if (parsedValue !== module.exports.initialValues.get(key)) {
|
|
123
64
|
obj[key] = parsedValues.get(key);
|
|
124
|
-
if (obj[
|
|
125
|
-
delete obj[
|
|
65
|
+
if (obj[borderRightWidth.property] && obj[borderRightWidth.property] === "medium") {
|
|
66
|
+
delete obj[borderRightWidth.property];
|
|
126
67
|
}
|
|
127
68
|
}
|
|
128
69
|
}
|
|
@@ -133,7 +74,7 @@ module.exports.parse = function parse(v, opt = {}) {
|
|
|
133
74
|
|
|
134
75
|
module.exports.definition = {
|
|
135
76
|
set(v) {
|
|
136
|
-
v = parsers.prepareValue(v
|
|
77
|
+
v = parsers.prepareValue(v);
|
|
137
78
|
if (parsers.hasVarFunc(v)) {
|
|
138
79
|
this._borderSetter(property, v, "");
|
|
139
80
|
} else {
|
|
@@ -141,9 +82,10 @@ module.exports.definition = {
|
|
|
141
82
|
globalObject: this._global
|
|
142
83
|
});
|
|
143
84
|
if (val || typeof val === "string") {
|
|
144
|
-
const
|
|
145
|
-
|
|
146
|
-
|
|
85
|
+
const priority =
|
|
86
|
+
!this._priorities.get(shorthand) && this._priorities.has(property)
|
|
87
|
+
? this._priorities.get(property)
|
|
88
|
+
: "";
|
|
147
89
|
this._borderSetter(property, val, priority);
|
|
148
90
|
}
|
|
149
91
|
}
|
|
@@ -154,3 +96,5 @@ module.exports.definition = {
|
|
|
154
96
|
enumerable: true,
|
|
155
97
|
configurable: true
|
|
156
98
|
};
|
|
99
|
+
|
|
100
|
+
module.exports.property = property;
|
|
@@ -7,7 +7,7 @@ const lineShorthand = "border-color";
|
|
|
7
7
|
const positionShorthand = "border-right";
|
|
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-right";
|
|
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-right";
|
|
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;
|
|
@@ -4,7 +4,7 @@ const parsers = require("../parsers");
|
|
|
4
4
|
|
|
5
5
|
const property = "border-spacing";
|
|
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;
|
|
@@ -16,17 +16,18 @@ module.exports.parse = function parse(v, opt = {}) {
|
|
|
16
16
|
if (Array.isArray(value) && value.length) {
|
|
17
17
|
switch (value.length) {
|
|
18
18
|
case 1: {
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
return val1;
|
|
23
|
-
}
|
|
24
|
-
break;
|
|
19
|
+
return parsers.resolveNumericValue(value, {
|
|
20
|
+
type: "length"
|
|
21
|
+
});
|
|
25
22
|
}
|
|
26
23
|
case 2: {
|
|
27
24
|
const [part1, part2] = value;
|
|
28
|
-
const val1 = parsers.
|
|
29
|
-
|
|
25
|
+
const val1 = parsers.resolveNumericValue([part1], {
|
|
26
|
+
type: "length"
|
|
27
|
+
});
|
|
28
|
+
const val2 = parsers.resolveNumericValue([part2], {
|
|
29
|
+
type: "length"
|
|
30
|
+
});
|
|
30
31
|
if (val1 && val2) {
|
|
31
32
|
return `${val1} ${val2}`;
|
|
32
33
|
}
|
|
@@ -41,7 +42,7 @@ module.exports.parse = function parse(v, opt = {}) {
|
|
|
41
42
|
|
|
42
43
|
module.exports.definition = {
|
|
43
44
|
set(v) {
|
|
44
|
-
v = parsers.prepareValue(v
|
|
45
|
+
v = parsers.prepareValue(v);
|
|
45
46
|
if (parsers.hasVarFunc(v)) {
|
|
46
47
|
this._setProperty(property, v);
|
|
47
48
|
} else {
|
|
@@ -60,3 +61,5 @@ module.exports.definition = {
|
|
|
60
61
|
enumerable: true,
|
|
61
62
|
configurable: true
|
|
62
63
|
};
|
|
64
|
+
|
|
65
|
+
module.exports.property = property;
|
|
@@ -10,13 +10,13 @@ const property = "border-style";
|
|
|
10
10
|
const shorthand = "border";
|
|
11
11
|
|
|
12
12
|
module.exports.shorthandFor = new Map([
|
|
13
|
-
[
|
|
14
|
-
[
|
|
15
|
-
[
|
|
16
|
-
[
|
|
13
|
+
[borderTopStyle.property, borderTopStyle],
|
|
14
|
+
[borderRightStyle.property, borderRightStyle],
|
|
15
|
+
[borderBottomStyle.property, borderBottomStyle],
|
|
16
|
+
[borderLeftStyle.property, borderLeftStyle]
|
|
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,22 +31,13 @@ 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
|
-
return name;
|
|
41
|
-
}
|
|
42
|
-
case "Identifier": {
|
|
43
|
-
parsedValues.push(name);
|
|
44
|
-
break;
|
|
45
|
-
}
|
|
46
|
-
default: {
|
|
47
|
-
return;
|
|
48
|
-
}
|
|
34
|
+
const parsedValue = parsers.resolveKeywordValue([value], {
|
|
35
|
+
length: values.length
|
|
36
|
+
});
|
|
37
|
+
if (!parsedValue) {
|
|
38
|
+
return;
|
|
49
39
|
}
|
|
40
|
+
parsedValues.push(parsedValue);
|
|
50
41
|
}
|
|
51
42
|
} else if (typeof values === "string") {
|
|
52
43
|
parsedValues.push(values);
|
|
@@ -93,7 +84,7 @@ module.exports.parse = function parse(v, opt = {}) {
|
|
|
93
84
|
|
|
94
85
|
module.exports.definition = {
|
|
95
86
|
set(v) {
|
|
96
|
-
v = parsers.prepareValue(v
|
|
87
|
+
v = parsers.prepareValue(v);
|
|
97
88
|
if (parsers.hasVarFunc(v)) {
|
|
98
89
|
this._borderSetter(property, v, "");
|
|
99
90
|
} else {
|
|
@@ -101,9 +92,10 @@ module.exports.definition = {
|
|
|
101
92
|
globalObject: this._global
|
|
102
93
|
});
|
|
103
94
|
if (Array.isArray(val) || typeof val === "string") {
|
|
104
|
-
const
|
|
105
|
-
|
|
106
|
-
|
|
95
|
+
const priority =
|
|
96
|
+
!this._priorities.get(shorthand) && this._priorities.has(property)
|
|
97
|
+
? this._priorities.get(property)
|
|
98
|
+
: "";
|
|
107
99
|
this._borderSetter(property, val, priority);
|
|
108
100
|
}
|
|
109
101
|
}
|
|
@@ -114,3 +106,5 @@ module.exports.definition = {
|
|
|
114
106
|
enumerable: true,
|
|
115
107
|
configurable: true
|
|
116
108
|
};
|
|
109
|
+
|
|
110
|
+
module.exports.property = property;
|
|
@@ -8,19 +8,25 @@ const borderTopColor = require("./borderTopColor");
|
|
|
8
8
|
const property = "border-top";
|
|
9
9
|
const shorthand = "border";
|
|
10
10
|
|
|
11
|
+
const subProps = {
|
|
12
|
+
width: borderTopWidth.property,
|
|
13
|
+
style: borderTopStyle.property,
|
|
14
|
+
color: borderTopColor.property
|
|
15
|
+
};
|
|
16
|
+
|
|
11
17
|
module.exports.initialValues = new Map([
|
|
12
|
-
[
|
|
13
|
-
[
|
|
14
|
-
[
|
|
18
|
+
[borderTopWidth.property, "medium"],
|
|
19
|
+
[borderTopStyle.property, "none"],
|
|
20
|
+
[borderTopColor.property, "currentcolor"]
|
|
15
21
|
]);
|
|
16
22
|
|
|
17
23
|
module.exports.shorthandFor = new Map([
|
|
18
|
-
[
|
|
19
|
-
[
|
|
20
|
-
[
|
|
24
|
+
[borderTopWidth.property, borderTopWidth],
|
|
25
|
+
[borderTopStyle.property, borderTopStyle],
|
|
26
|
+
[borderTopColor.property, borderTopColor]
|
|
21
27
|
]);
|
|
22
28
|
|
|
23
|
-
module.exports.parse =
|
|
29
|
+
module.exports.parse = (v, opt = {}) => {
|
|
24
30
|
const { globalObject } = opt;
|
|
25
31
|
if (v === "") {
|
|
26
32
|
return v;
|
|
@@ -33,79 +39,14 @@ module.exports.parse = function parse(v, opt = {}) {
|
|
|
33
39
|
inArray: true
|
|
34
40
|
});
|
|
35
41
|
if (Array.isArray(value) && value.length === 1) {
|
|
36
|
-
const
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
}
|
|
45
|
-
case "Dimension":
|
|
46
|
-
case "Number": {
|
|
47
|
-
if (parsedValues.has("border-top-width")) {
|
|
48
|
-
return;
|
|
49
|
-
}
|
|
50
|
-
const parsedValue = parsers.parseLength(value, {
|
|
51
|
-
min: 0
|
|
52
|
-
});
|
|
53
|
-
if (!parsedValue) {
|
|
54
|
-
return;
|
|
55
|
-
}
|
|
56
|
-
parsedValues.set("border-top-width", parsedValue);
|
|
57
|
-
break;
|
|
58
|
-
}
|
|
59
|
-
case "Function": {
|
|
60
|
-
if (parsedValues.has("border-top-color")) {
|
|
61
|
-
return;
|
|
62
|
-
}
|
|
63
|
-
const parsedValue = parsers.parseColor(value);
|
|
64
|
-
if (!parsedValue) {
|
|
65
|
-
return;
|
|
66
|
-
}
|
|
67
|
-
parsedValues.set("border-top-color", parsedValue);
|
|
68
|
-
break;
|
|
69
|
-
}
|
|
70
|
-
case "GlobalKeyword": {
|
|
71
|
-
return name;
|
|
72
|
-
}
|
|
73
|
-
case "Hash": {
|
|
74
|
-
if (parsedValues.has("border-top-color")) {
|
|
75
|
-
return;
|
|
76
|
-
}
|
|
77
|
-
const parsedValue = parsers.parseColor(value);
|
|
78
|
-
if (!parsedValue) {
|
|
79
|
-
return;
|
|
80
|
-
}
|
|
81
|
-
parsedValues.set("border-top-color", parsedValue);
|
|
82
|
-
break;
|
|
83
|
-
}
|
|
84
|
-
case "Identifier": {
|
|
85
|
-
if (parsers.isValidPropertyValue("border-top-width", name)) {
|
|
86
|
-
if (parsedValues.has("border-top-width")) {
|
|
87
|
-
return;
|
|
88
|
-
}
|
|
89
|
-
parsedValues.set("border-top-width", name);
|
|
90
|
-
break;
|
|
91
|
-
} else if (parsers.isValidPropertyValue("border-top-style", name)) {
|
|
92
|
-
if (parsedValues.has("border-top-style")) {
|
|
93
|
-
return;
|
|
94
|
-
}
|
|
95
|
-
parsedValues.set("border-top-style", name);
|
|
96
|
-
break;
|
|
97
|
-
} else if (parsers.isValidPropertyValue("border-top-color", name)) {
|
|
98
|
-
if (parsedValues.has("border-top-color")) {
|
|
99
|
-
return;
|
|
100
|
-
}
|
|
101
|
-
parsedValues.set("border-top-color", name);
|
|
102
|
-
break;
|
|
103
|
-
}
|
|
104
|
-
return;
|
|
105
|
-
}
|
|
106
|
-
default: {
|
|
107
|
-
return;
|
|
108
|
-
}
|
|
42
|
+
const parsedValue = parsers.resolveBorderShorthandValue(value, subProps, parsedValues);
|
|
43
|
+
if (typeof parsedValue === "string") {
|
|
44
|
+
return parsedValue;
|
|
45
|
+
} else if (Array.isArray(parsedValue)) {
|
|
46
|
+
const [key, resolvedVal] = parsedValue;
|
|
47
|
+
parsedValues.set(key, resolvedVal);
|
|
48
|
+
} else {
|
|
49
|
+
return;
|
|
109
50
|
}
|
|
110
51
|
} else {
|
|
111
52
|
return;
|
|
@@ -114,15 +55,15 @@ module.exports.parse = function parse(v, opt = {}) {
|
|
|
114
55
|
if (parsedValues.size) {
|
|
115
56
|
const keys = module.exports.shorthandFor.keys();
|
|
116
57
|
const obj = {
|
|
117
|
-
|
|
58
|
+
[borderTopWidth.property]: "medium"
|
|
118
59
|
};
|
|
119
60
|
for (const key of keys) {
|
|
120
61
|
if (parsedValues.has(key)) {
|
|
121
62
|
const parsedValue = parsedValues.get(key);
|
|
122
63
|
if (parsedValue !== module.exports.initialValues.get(key)) {
|
|
123
64
|
obj[key] = parsedValues.get(key);
|
|
124
|
-
if (obj[
|
|
125
|
-
delete obj[
|
|
65
|
+
if (obj[borderTopWidth.property] && obj[borderTopWidth.property] === "medium") {
|
|
66
|
+
delete obj[borderTopWidth.property];
|
|
126
67
|
}
|
|
127
68
|
}
|
|
128
69
|
}
|
|
@@ -133,7 +74,7 @@ module.exports.parse = function parse(v, opt = {}) {
|
|
|
133
74
|
|
|
134
75
|
module.exports.definition = {
|
|
135
76
|
set(v) {
|
|
136
|
-
v = parsers.prepareValue(v
|
|
77
|
+
v = parsers.prepareValue(v);
|
|
137
78
|
if (parsers.hasVarFunc(v)) {
|
|
138
79
|
this._borderSetter(property, v, "");
|
|
139
80
|
} else {
|
|
@@ -141,9 +82,10 @@ module.exports.definition = {
|
|
|
141
82
|
globalObject: this._global
|
|
142
83
|
});
|
|
143
84
|
if (val || typeof val === "string") {
|
|
144
|
-
const
|
|
145
|
-
|
|
146
|
-
|
|
85
|
+
const priority =
|
|
86
|
+
!this._priorities.get(shorthand) && this._priorities.has(property)
|
|
87
|
+
? this._priorities.get(property)
|
|
88
|
+
: "";
|
|
147
89
|
this._borderSetter(property, val, priority);
|
|
148
90
|
}
|
|
149
91
|
}
|
|
@@ -154,3 +96,5 @@ module.exports.definition = {
|
|
|
154
96
|
enumerable: true,
|
|
155
97
|
configurable: true
|
|
156
98
|
};
|
|
99
|
+
|
|
100
|
+
module.exports.property = property;
|