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
|
@@ -4,7 +4,7 @@ const parsers = require("../parsers");
|
|
|
4
4
|
|
|
5
5
|
const property = "stop-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;
|
package/lib/properties/top.js
CHANGED
|
@@ -4,7 +4,7 @@ const parsers = require("../parsers");
|
|
|
4
4
|
|
|
5
5
|
const property = "top";
|
|
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;
|
|
22
|
-
}
|
|
23
|
-
return `${name}(${itemValue})`;
|
|
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;
|
|
@@ -4,7 +4,7 @@ const parsers = require("../parsers");
|
|
|
4
4
|
|
|
5
5
|
const property = "-webkit-border-after-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;
|
|
@@ -4,7 +4,7 @@ const parsers = require("../parsers");
|
|
|
4
4
|
|
|
5
5
|
const property = "-webkit-border-before-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;
|
|
@@ -4,7 +4,7 @@ const parsers = require("../parsers");
|
|
|
4
4
|
|
|
5
5
|
const property = "-webkit-border-end-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;
|
|
@@ -4,7 +4,7 @@ const parsers = require("../parsers");
|
|
|
4
4
|
|
|
5
5
|
const property = "-webkit-border-start-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;
|
|
@@ -4,7 +4,7 @@ const parsers = require("../parsers");
|
|
|
4
4
|
|
|
5
5
|
const property = "-webkit-column-rule-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;
|
|
@@ -4,7 +4,7 @@ const parsers = require("../parsers");
|
|
|
4
4
|
|
|
5
5
|
const property = "-webkit-tap-highlight-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;
|
|
@@ -4,7 +4,7 @@ const parsers = require("../parsers");
|
|
|
4
4
|
|
|
5
5
|
const property = "-webkit-text-emphasis-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;
|
|
@@ -4,7 +4,7 @@ const parsers = require("../parsers");
|
|
|
4
4
|
|
|
5
5
|
const property = "-webkit-text-fill-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;
|
|
@@ -4,7 +4,7 @@ const parsers = require("../parsers");
|
|
|
4
4
|
|
|
5
5
|
const property = "-webkit-text-stroke-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;
|
package/lib/properties/width.js
CHANGED
|
@@ -4,7 +4,7 @@ const parsers = require("../parsers");
|
|
|
4
4
|
|
|
5
5
|
const property = "width";
|
|
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,10 @@ 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
|
-
|
|
21
|
-
return;
|
|
22
|
-
}
|
|
23
|
-
return `${name}(${itemValue})`;
|
|
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
|
+
min: 0,
|
|
19
|
+
type: "length"
|
|
20
|
+
});
|
|
33
21
|
} else if (typeof value === "string") {
|
|
34
22
|
return value;
|
|
35
23
|
}
|
|
@@ -37,7 +25,7 @@ module.exports.parse = function parse(v, opt = {}) {
|
|
|
37
25
|
|
|
38
26
|
module.exports.definition = {
|
|
39
27
|
set(v) {
|
|
40
|
-
v = parsers.prepareValue(v
|
|
28
|
+
v = parsers.prepareValue(v);
|
|
41
29
|
if (parsers.hasVarFunc(v)) {
|
|
42
30
|
this._setProperty(property, v);
|
|
43
31
|
} else {
|
|
@@ -56,3 +44,5 @@ module.exports.definition = {
|
|
|
56
44
|
enumerable: true,
|
|
57
45
|
configurable: true
|
|
58
46
|
};
|
|
47
|
+
|
|
48
|
+
module.exports.property = property;
|
|
@@ -2,18 +2,54 @@
|
|
|
2
2
|
|
|
3
3
|
const parsers = require("../parsers");
|
|
4
4
|
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
5
|
+
const { AST_TYPES } = parsers;
|
|
6
|
+
|
|
7
|
+
const getPropertyDescriptor = (property) => ({
|
|
8
|
+
set(v) {
|
|
9
|
+
const value = parsers.prepareValue(v);
|
|
10
|
+
if (parsers.hasVarFunc(value)) {
|
|
11
|
+
this._setProperty(property, value);
|
|
12
|
+
} else {
|
|
13
|
+
const parsedValue = parsers.parsePropertyValue(property, v, {
|
|
14
|
+
globalObject: this._global,
|
|
15
|
+
inArray: true
|
|
10
16
|
});
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
17
|
+
if (Array.isArray(parsedValue)) {
|
|
18
|
+
if (parsedValue.length === 1) {
|
|
19
|
+
const [{ name, type, value: itemValue }] = parsedValue;
|
|
20
|
+
switch (type) {
|
|
21
|
+
case AST_TYPES.CALC: {
|
|
22
|
+
this._setProperty(property, `${name}(${itemValue})`);
|
|
23
|
+
break;
|
|
24
|
+
}
|
|
25
|
+
case AST_TYPES.GLOBAL_KEYWORD:
|
|
26
|
+
case AST_TYPES.IDENTIFIER: {
|
|
27
|
+
// Set the normalized name for keywords or identifiers.
|
|
28
|
+
this._setProperty(property, name);
|
|
29
|
+
break;
|
|
30
|
+
}
|
|
31
|
+
default: {
|
|
32
|
+
// Set the prepared value for Dimension, Function, etc.
|
|
33
|
+
this._setProperty(property, value);
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
} else {
|
|
37
|
+
// Set the prepared value for lists containing multiple values.
|
|
38
|
+
this._setProperty(property, value);
|
|
39
|
+
}
|
|
40
|
+
} else if (typeof parsedValue === "string") {
|
|
41
|
+
// Empty string.
|
|
42
|
+
this._setProperty(property, parsedValue);
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
},
|
|
46
|
+
get() {
|
|
47
|
+
return this.getPropertyValue(property);
|
|
48
|
+
},
|
|
49
|
+
enumerable: true,
|
|
50
|
+
configurable: true
|
|
51
|
+
});
|
|
52
|
+
|
|
53
|
+
module.exports = {
|
|
54
|
+
getPropertyDescriptor
|
|
19
55
|
};
|
package/lib/utils/strings.js
CHANGED
|
@@ -8,6 +8,9 @@ exports.asciiWhitespaceRe = asciiWhitespaceRe;
|
|
|
8
8
|
|
|
9
9
|
// https://infra.spec.whatwg.org/#ascii-lowercase
|
|
10
10
|
exports.asciiLowercase = (s) => {
|
|
11
|
+
if (!/[^\x00-\x7f]/.test(s)) {
|
|
12
|
+
return s.toLowerCase();
|
|
13
|
+
}
|
|
11
14
|
const len = s.length;
|
|
12
15
|
const out = new Array(len);
|
|
13
16
|
for (let i = 0; i < len; i++) {
|
|
@@ -20,6 +23,9 @@ exports.asciiLowercase = (s) => {
|
|
|
20
23
|
|
|
21
24
|
// https://infra.spec.whatwg.org/#ascii-uppercase
|
|
22
25
|
exports.asciiUppercase = (s) => {
|
|
26
|
+
if (!/[^\x00-\x7f]/.test(s)) {
|
|
27
|
+
return s.toUpperCase();
|
|
28
|
+
}
|
|
23
29
|
const len = s.length;
|
|
24
30
|
const out = new Array(len);
|
|
25
31
|
for (let i = 0; i < len; i++) {
|
package/package.json
CHANGED
|
@@ -1,36 +1,15 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "cssstyle",
|
|
3
|
-
"description": "CSSStyleDeclaration Object Model
|
|
3
|
+
"description": "An implementation of the CSSStyleDeclaration class from the CSS Object Model specification",
|
|
4
4
|
"keywords": [
|
|
5
5
|
"CSS",
|
|
6
6
|
"CSSStyleDeclaration",
|
|
7
7
|
"StyleSheet"
|
|
8
8
|
],
|
|
9
|
-
"version": "5.3.
|
|
10
|
-
"
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
"name": "Jon Sakas",
|
|
14
|
-
"email": "jon.sakas@gmail.com",
|
|
15
|
-
"url": "https://jon.sakas.co/"
|
|
16
|
-
},
|
|
17
|
-
{
|
|
18
|
-
"name": "Rafał Ruciński",
|
|
19
|
-
"email": "fatfisz@gmail.com",
|
|
20
|
-
"url": "https://fatfisz.com"
|
|
21
|
-
}
|
|
22
|
-
],
|
|
23
|
-
"contributors": [
|
|
24
|
-
{
|
|
25
|
-
"name": "Chad Walker",
|
|
26
|
-
"email": "chad@chad-cat-lore-eddie.com",
|
|
27
|
-
"url": "https://github.com/chad3814"
|
|
28
|
-
}
|
|
29
|
-
],
|
|
30
|
-
"repository": "jsdom/cssstyle",
|
|
31
|
-
"bugs": "https://github.com/jsdom/cssstyle/issues",
|
|
32
|
-
"directories": {
|
|
33
|
-
"lib": "./lib"
|
|
9
|
+
"version": "5.3.7",
|
|
10
|
+
"repository": {
|
|
11
|
+
"type": "git",
|
|
12
|
+
"url": "git+https://github.com/jsdom/cssstyle.git"
|
|
34
13
|
},
|
|
35
14
|
"files": [
|
|
36
15
|
"lib/"
|
|
@@ -39,7 +18,8 @@
|
|
|
39
18
|
"dependencies": {
|
|
40
19
|
"@asamuzakjp/css-color": "^4.1.1",
|
|
41
20
|
"@csstools/css-syntax-patches-for-csstree": "^1.0.21",
|
|
42
|
-
"css-tree": "^3.1.0"
|
|
21
|
+
"css-tree": "^3.1.0",
|
|
22
|
+
"lru-cache": "^11.2.4"
|
|
43
23
|
},
|
|
44
24
|
"devDependencies": {
|
|
45
25
|
"@babel/generator": "^7.28.5",
|
|
@@ -63,6 +43,7 @@
|
|
|
63
43
|
"prepare": "run-p prepare:*",
|
|
64
44
|
"prepare:implemented_properties": "node ./scripts/generateImplementedProperties.mjs",
|
|
65
45
|
"prepare:properties": "node ./scripts/generateProperties.js",
|
|
46
|
+
"prepare:propertyDefinitions": "node ./scripts/generatePropertyDefinitions.mjs",
|
|
66
47
|
"test": "node --test"
|
|
67
48
|
},
|
|
68
49
|
"license": "MIT",
|