postcss-color-functional-notation 2.0.0 → 2.0.1
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 +4 -0
- package/index.cjs.js +27 -25
- package/index.cjs.js.map +1 -1
- package/index.es.mjs +27 -25
- package/index.es.mjs.map +1 -1
- package/package.json +5 -5
package/CHANGELOG.md
CHANGED
package/index.cjs.js
CHANGED
|
@@ -3,17 +3,17 @@
|
|
|
3
3
|
function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }
|
|
4
4
|
|
|
5
5
|
var postcss = _interopDefault(require('postcss'));
|
|
6
|
-
var
|
|
6
|
+
var valuesParser = _interopDefault(require('postcss-values-parser'));
|
|
7
7
|
|
|
8
8
|
var index = postcss.plugin('postcss-color-functional-notation', opts => {
|
|
9
9
|
const preserve = 'preserve' in Object(opts) ? Boolean(opts.preserve) : false;
|
|
10
10
|
return root => {
|
|
11
11
|
root.walkDecls(decl => {
|
|
12
|
-
const
|
|
12
|
+
const originalValue = decl.value;
|
|
13
13
|
|
|
14
|
-
if (colorAnyRegExp.test(
|
|
15
|
-
const
|
|
16
|
-
|
|
14
|
+
if (colorAnyRegExp.test(originalValue)) {
|
|
15
|
+
const valueAST = valuesParser(originalValue).parse();
|
|
16
|
+
valueAST.walkType('func', node => {
|
|
17
17
|
if (colorRegExp.test(node.value)) {
|
|
18
18
|
const children = node.nodes.slice(1, -1);
|
|
19
19
|
const isFunctionalHSL = matchFunctionalHSL(node, children);
|
|
@@ -37,7 +37,7 @@ var index = postcss.plugin('postcss-color-functional-notation', opts => {
|
|
|
37
37
|
node.value = node.value.slice(0, -1);
|
|
38
38
|
}
|
|
39
39
|
|
|
40
|
-
if (isSlash(slashNode)) {
|
|
40
|
+
if (slashNode && isSlash(slashNode)) {
|
|
41
41
|
slashNode.replaceWith(newComma());
|
|
42
42
|
}
|
|
43
43
|
|
|
@@ -53,14 +53,16 @@ var index = postcss.plugin('postcss-color-functional-notation', opts => {
|
|
|
53
53
|
}
|
|
54
54
|
}
|
|
55
55
|
});
|
|
56
|
-
const
|
|
57
|
-
|
|
58
|
-
if (
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
56
|
+
const modifiedValue = String(valueAST);
|
|
57
|
+
|
|
58
|
+
if (modifiedValue !== originalValue) {
|
|
59
|
+
if (preserve) {
|
|
60
|
+
decl.cloneBefore({
|
|
61
|
+
value: modifiedValue
|
|
62
|
+
});
|
|
63
|
+
} else {
|
|
64
|
+
decl.value = modifiedValue;
|
|
65
|
+
}
|
|
64
66
|
}
|
|
65
67
|
}
|
|
66
68
|
});
|
|
@@ -76,25 +78,25 @@ const hslaRgbaFuncMatch = /^(hsla|rgba)$/i;
|
|
|
76
78
|
const hueUnitMatch = /^(deg|grad|rad|turn)?$/i;
|
|
77
79
|
const rgbishRegExp = /^rgba?$/i;
|
|
78
80
|
|
|
79
|
-
const isAlphaValue = node => isCalc(node) ||
|
|
81
|
+
const isAlphaValue = node => isCalc(node) || node.type === 'number' && alphaUnitMatch.test(node.unit);
|
|
80
82
|
|
|
81
|
-
const isCalc = node =>
|
|
83
|
+
const isCalc = node => node.type === 'func' && calcFuncMatch.test(node.value);
|
|
82
84
|
|
|
83
|
-
const isHue = node => isCalc(node) ||
|
|
85
|
+
const isHue = node => isCalc(node) || node.type === 'number' && hueUnitMatch.test(node.unit);
|
|
84
86
|
|
|
85
|
-
const isNumber = node => isCalc(node) ||
|
|
87
|
+
const isNumber = node => isCalc(node) || node.type === 'number' && node.unit === '';
|
|
86
88
|
|
|
87
|
-
const isPercentage = node => isCalc(node) ||
|
|
89
|
+
const isPercentage = node => isCalc(node) || node.type === 'number' && (node.unit === '%' || node.unit === '' && node.value === '0');
|
|
88
90
|
|
|
89
|
-
const isHslish = node =>
|
|
91
|
+
const isHslish = node => node.type === 'func' && hslishRegExp.test(node.value);
|
|
90
92
|
|
|
91
|
-
const isHslRgb = node =>
|
|
93
|
+
const isHslRgb = node => node.type === 'func' && hslRgbFuncMatch.test(node.value);
|
|
92
94
|
|
|
93
|
-
const isHslaRgba = node =>
|
|
95
|
+
const isHslaRgba = node => node.type === 'func' && hslaRgbaFuncMatch.test(node.value);
|
|
94
96
|
|
|
95
|
-
const isRgbish = node =>
|
|
97
|
+
const isRgbish = node => node.type === 'func' && rgbishRegExp.test(node.value);
|
|
96
98
|
|
|
97
|
-
const isSlash = node =>
|
|
99
|
+
const isSlash = node => node.type === 'operator' && node.value === '/';
|
|
98
100
|
|
|
99
101
|
const functionalHSLMatch = [isHue, isPercentage, isPercentage, isSlash, isAlphaValue];
|
|
100
102
|
const functionalRGB1Match = [isNumber, isNumber, isNumber, isSlash, isAlphaValue];
|
|
@@ -106,7 +108,7 @@ const matchFunctionalRGB1 = (node, children) => isRgbish(node) && children.every
|
|
|
106
108
|
|
|
107
109
|
const matchFunctionalRGB2 = (node, children) => isRgbish(node) && children.every((child, index) => typeof functionalRGB2Match[index] === 'function' && functionalRGB2Match[index](child));
|
|
108
110
|
|
|
109
|
-
const newComma = () =>
|
|
111
|
+
const newComma = () => valuesParser.comma({
|
|
110
112
|
value: ','
|
|
111
113
|
});
|
|
112
114
|
|
package/index.cjs.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.cjs.js","sources":["index.js"],"sourcesContent":["import postcss from 'postcss';\nimport parser from 'postcss-values-parser';\n\nexport default postcss.plugin('postcss-color-functional-notation', opts => {\n\tconst preserve = 'preserve' in Object(opts) ? Boolean(opts.preserve) : false;\n\n\treturn root => {\n\t\troot.walkDecls(decl => {\n\t\t\tconst { value } = decl;\n\n\t\t\tif (colorAnyRegExp.test(value)) {\n\t\t\t\tconst ast = parser(value).parse();\n\n\t\t\t\tast.walkType('func', node => {\n\t\t\t\t\tif (colorRegExp.test(node.value)) {\n\t\t\t\t\t\tconst children = node.nodes.slice(1, -1);\n\t\t\t\t\t\tconst isFunctionalHSL = matchFunctionalHSL(node, children);\n\t\t\t\t\t\tconst isFunctionalRGB1 = matchFunctionalRGB1(node, children);\n\t\t\t\t\t\tconst isFunctionalRGB2 = matchFunctionalRGB2(node, children);\n\n\t\t\t\t\t\tif (isFunctionalHSL || isFunctionalRGB1 || isFunctionalRGB2) {\n\t\t\t\t\t\t\tconst slashNode = children[3];\n\t\t\t\t\t\t\tconst alphaNode = children[4];\n\n\t\t\t\t\t\t\tif (alphaNode) {\n\t\t\t\t\t\t\t\tif (isPercentage(alphaNode) && !isCalc(alphaNode)) {\n\t\t\t\t\t\t\t\t\talphaNode.unit = '';\n\t\t\t\t\t\t\t\t\talphaNode.value = String(alphaNode.value / 100);\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\tif (isHslRgb(node)) {\n\t\t\t\t\t\t\t\t\tnode.value += 'a';\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else if (isHslaRgba(node)) {\n\t\t\t\t\t\t\t\tnode.value = node.value.slice(0, -1);\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tif (isSlash(slashNode)) {\n\t\t\t\t\t\t\t\tslashNode.replaceWith( newComma() );\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tif (isFunctionalRGB2) {\n\t\t\t\t\t\t\t\tchildren[0].unit = children[1].unit = children[2].unit = '';\n\n\t\t\t\t\t\t\t\tchildren[0].value = String(Math.floor(children[0].value * 255 / 100));\n\t\t\t\t\t\t\t\tchildren[1].value = String(Math.floor(children[1].value * 255 / 100));\n\t\t\t\t\t\t\t\tchildren[2].value = String(Math.floor(children[2].value * 255 / 100));\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tnode.nodes.splice(3, 0, [ newComma() ]);\n\t\t\t\t\t\t\tnode.nodes.splice(2, 0, [ newComma() ]);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\tconst newValue = String(ast);\n\n\t\t\t\tif (preserve) {\n\t\t\t\t\tdecl.cloneBefore({ value: newValue });\n\t\t\t\t} else {\n\t\t\t\t\tdecl.value = newValue;\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t};\n});\n\nconst alphaUnitMatch = /^%?$/i;\nconst calcFuncMatch = /^calc$/i;\nconst colorAnyRegExp = /(^|[^\\w-])(hsla?|rgba?)\\(/i;\nconst colorRegExp = /^(hsla?|rgba?)$/i;\nconst hslishRegExp = /^hsla?$/i;\nconst hslRgbFuncMatch = /^(hsl|rgb)$/i;\nconst hslaRgbaFuncMatch = /^(hsla|rgba)$/i;\nconst hueUnitMatch = /^(deg|grad|rad|turn)?$/i;\nconst rgbishRegExp = /^rgba?$/i;\nconst isAlphaValue = node => isCalc(node) || Object(node).type === 'number' && alphaUnitMatch.test(node.unit);\nconst isCalc = node => Object(node).type === 'func' && calcFuncMatch.test(node.value);\nconst isHue = node => isCalc(node) || Object(node).type === 'number' && hueUnitMatch.test(node.unit);\nconst isNumber = node => isCalc(node) || Object(node).type === 'number' && node.unit === '';\nconst isPercentage = node => isCalc(node) || Object(node).type === 'number' && (node.unit === '%' || node.unit === '' && node.value === '0');\nconst isHslish = node => Object(node).type === 'func' && hslishRegExp.test(node.value);\nconst isHslRgb = node => Object(node).type === 'func' && hslRgbFuncMatch.test(node.value);\nconst isHslaRgba = node => Object(node).type === 'func' && hslaRgbaFuncMatch.test(node.value);\nconst isRgbish = node => Object(node).type === 'func' && rgbishRegExp.test(node.value);\nconst isSlash = node => Object(node).type === 'operator' && node.value === '/';\nconst functionalHSLMatch = [isHue, isPercentage, isPercentage, isSlash, isAlphaValue];\nconst functionalRGB1Match = [isNumber, isNumber, isNumber, isSlash, isAlphaValue];\nconst functionalRGB2Match = [isPercentage, isPercentage, isPercentage, isSlash, isAlphaValue];\n\nconst matchFunctionalHSL = (node, children) => isHslish(node) && children.every(\n\t(child, index) => typeof functionalHSLMatch[index] === 'function' && functionalHSLMatch[index](child)\n);\nconst matchFunctionalRGB1 = (node, children) => isRgbish(node) && children.every(\n\t(child, index) => typeof functionalRGB1Match[index] === 'function' && functionalRGB1Match[index](child)\n);\nconst matchFunctionalRGB2 = (node, children) => isRgbish(node) && children.every(\n\t(child, index) => typeof functionalRGB2Match[index] === 'function' && functionalRGB2Match[index](child)\n);\n\nconst newComma = () => parser.comma({ value: ',' })\n"],"names":["postcss","plugin","opts","preserve","Object","Boolean","root","walkDecls","decl","value","colorAnyRegExp","test","ast","parser","parse","walkType","node","colorRegExp","children","nodes","slice","isFunctionalHSL","matchFunctionalHSL","isFunctionalRGB1","matchFunctionalRGB1","isFunctionalRGB2","matchFunctionalRGB2","slashNode","alphaNode","isPercentage","isCalc","unit","String","isHslRgb","isHslaRgba","isSlash","replaceWith","newComma","Math","floor","splice","newValue","cloneBefore","alphaUnitMatch","calcFuncMatch","hslishRegExp","hslRgbFuncMatch","hslaRgbaFuncMatch","hueUnitMatch","rgbishRegExp","isAlphaValue","type","isHue","isNumber","isHslish","isRgbish","functionalHSLMatch","functionalRGB1Match","functionalRGB2Match","every","child","index","comma"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.cjs.js","sources":["index.js"],"sourcesContent":["import postcss from 'postcss';\nimport valuesParser from 'postcss-values-parser';\n\nexport default postcss.plugin('postcss-color-functional-notation', opts => {\n\tconst preserve = 'preserve' in Object(opts) ? Boolean(opts.preserve) : false;\n\n\treturn root => {\n\t\troot.walkDecls(decl => {\n\t\t\tconst { value: originalValue } = decl;\n\n\t\t\tif (colorAnyRegExp.test(originalValue)) {\n\t\t\t\tconst valueAST = valuesParser(originalValue).parse();\n\n\t\t\t\tvalueAST.walkType('func', node => {\n\t\t\t\t\tif (colorRegExp.test(node.value)) {\n\t\t\t\t\t\tconst children = node.nodes.slice(1, -1);\n\t\t\t\t\t\tconst isFunctionalHSL = matchFunctionalHSL(node, children);\n\t\t\t\t\t\tconst isFunctionalRGB1 = matchFunctionalRGB1(node, children);\n\t\t\t\t\t\tconst isFunctionalRGB2 = matchFunctionalRGB2(node, children);\n\n\t\t\t\t\t\tif (isFunctionalHSL || isFunctionalRGB1 || isFunctionalRGB2) {\n\t\t\t\t\t\t\tconst slashNode = children[3];\n\t\t\t\t\t\t\tconst alphaNode = children[4];\n\n\t\t\t\t\t\t\tif (alphaNode) {\n\t\t\t\t\t\t\t\tif (isPercentage(alphaNode) && !isCalc(alphaNode)) {\n\t\t\t\t\t\t\t\t\talphaNode.unit = '';\n\t\t\t\t\t\t\t\t\talphaNode.value = String(alphaNode.value / 100);\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\tif (isHslRgb(node)) {\n\t\t\t\t\t\t\t\t\tnode.value += 'a';\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else if (isHslaRgba(node)) {\n\t\t\t\t\t\t\t\tnode.value = node.value.slice(0, -1);\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tif (slashNode && isSlash(slashNode)) {\n\t\t\t\t\t\t\t\tslashNode.replaceWith( newComma() );\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tif (isFunctionalRGB2) {\n\t\t\t\t\t\t\t\tchildren[0].unit = children[1].unit = children[2].unit = '';\n\n\t\t\t\t\t\t\t\tchildren[0].value = String(Math.floor(children[0].value * 255 / 100));\n\t\t\t\t\t\t\t\tchildren[1].value = String(Math.floor(children[1].value * 255 / 100));\n\t\t\t\t\t\t\t\tchildren[2].value = String(Math.floor(children[2].value * 255 / 100));\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tnode.nodes.splice(3, 0, [ newComma() ]);\n\t\t\t\t\t\t\tnode.nodes.splice(2, 0, [ newComma() ]);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\tconst modifiedValue = String(valueAST);\n\n\t\t\t\tif (modifiedValue !== originalValue) {\n\t\t\t\t\tif (preserve) {\n\t\t\t\t\t\tdecl.cloneBefore({ value: modifiedValue });\n\t\t\t\t\t} else {\n\t\t\t\t\t\tdecl.value = modifiedValue;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t};\n});\n\nconst alphaUnitMatch = /^%?$/i;\nconst calcFuncMatch = /^calc$/i;\nconst colorAnyRegExp = /(^|[^\\w-])(hsla?|rgba?)\\(/i;\nconst colorRegExp = /^(hsla?|rgba?)$/i;\nconst hslishRegExp = /^hsla?$/i;\nconst hslRgbFuncMatch = /^(hsl|rgb)$/i;\nconst hslaRgbaFuncMatch = /^(hsla|rgba)$/i;\nconst hueUnitMatch = /^(deg|grad|rad|turn)?$/i;\nconst rgbishRegExp = /^rgba?$/i;\nconst isAlphaValue = node => isCalc(node) || node.type === 'number' && alphaUnitMatch.test(node.unit);\nconst isCalc = node => node.type === 'func' && calcFuncMatch.test(node.value);\nconst isHue = node => isCalc(node) || node.type === 'number' && hueUnitMatch.test(node.unit);\nconst isNumber = node => isCalc(node) || node.type === 'number' && node.unit === '';\nconst isPercentage = node => isCalc(node) || node.type === 'number' && (node.unit === '%' || node.unit === '' && node.value === '0');\nconst isHslish = node => node.type === 'func' && hslishRegExp.test(node.value);\nconst isHslRgb = node => node.type === 'func' && hslRgbFuncMatch.test(node.value);\nconst isHslaRgba = node => node.type === 'func' && hslaRgbaFuncMatch.test(node.value);\nconst isRgbish = node => node.type === 'func' && rgbishRegExp.test(node.value);\nconst isSlash = node => node.type === 'operator' && node.value === '/';\nconst functionalHSLMatch = [isHue, isPercentage, isPercentage, isSlash, isAlphaValue];\nconst functionalRGB1Match = [isNumber, isNumber, isNumber, isSlash, isAlphaValue];\nconst functionalRGB2Match = [isPercentage, isPercentage, isPercentage, isSlash, isAlphaValue];\n\nconst matchFunctionalHSL = (node, children) => isHslish(node) && children.every(\n\t(child, index) => typeof functionalHSLMatch[index] === 'function' && functionalHSLMatch[index](child)\n);\nconst matchFunctionalRGB1 = (node, children) => isRgbish(node) && children.every(\n\t(child, index) => typeof functionalRGB1Match[index] === 'function' && functionalRGB1Match[index](child)\n);\nconst matchFunctionalRGB2 = (node, children) => isRgbish(node) && children.every(\n\t(child, index) => typeof functionalRGB2Match[index] === 'function' && functionalRGB2Match[index](child)\n);\n\nconst newComma = () => valuesParser.comma({ value: ',' })\n"],"names":["postcss","plugin","opts","preserve","Object","Boolean","root","walkDecls","decl","originalValue","value","colorAnyRegExp","test","valueAST","valuesParser","parse","walkType","node","colorRegExp","children","nodes","slice","isFunctionalHSL","matchFunctionalHSL","isFunctionalRGB1","matchFunctionalRGB1","isFunctionalRGB2","matchFunctionalRGB2","slashNode","alphaNode","isPercentage","isCalc","unit","String","isHslRgb","isHslaRgba","isSlash","replaceWith","newComma","Math","floor","splice","modifiedValue","cloneBefore","alphaUnitMatch","calcFuncMatch","hslishRegExp","hslRgbFuncMatch","hslaRgbaFuncMatch","hueUnitMatch","rgbishRegExp","isAlphaValue","type","isHue","isNumber","isHslish","isRgbish","functionalHSLMatch","functionalRGB1Match","functionalRGB2Match","every","child","index","comma"],"mappings":"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"}
|
package/index.es.mjs
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
import postcss from 'postcss';
|
|
2
|
-
import
|
|
2
|
+
import valuesParser from 'postcss-values-parser';
|
|
3
3
|
|
|
4
4
|
var index = postcss.plugin('postcss-color-functional-notation', opts => {
|
|
5
5
|
const preserve = 'preserve' in Object(opts) ? Boolean(opts.preserve) : false;
|
|
6
6
|
return root => {
|
|
7
7
|
root.walkDecls(decl => {
|
|
8
|
-
const
|
|
8
|
+
const originalValue = decl.value;
|
|
9
9
|
|
|
10
|
-
if (colorAnyRegExp.test(
|
|
11
|
-
const
|
|
12
|
-
|
|
10
|
+
if (colorAnyRegExp.test(originalValue)) {
|
|
11
|
+
const valueAST = valuesParser(originalValue).parse();
|
|
12
|
+
valueAST.walkType('func', node => {
|
|
13
13
|
if (colorRegExp.test(node.value)) {
|
|
14
14
|
const children = node.nodes.slice(1, -1);
|
|
15
15
|
const isFunctionalHSL = matchFunctionalHSL(node, children);
|
|
@@ -33,7 +33,7 @@ var index = postcss.plugin('postcss-color-functional-notation', opts => {
|
|
|
33
33
|
node.value = node.value.slice(0, -1);
|
|
34
34
|
}
|
|
35
35
|
|
|
36
|
-
if (isSlash(slashNode)) {
|
|
36
|
+
if (slashNode && isSlash(slashNode)) {
|
|
37
37
|
slashNode.replaceWith(newComma());
|
|
38
38
|
}
|
|
39
39
|
|
|
@@ -49,14 +49,16 @@ var index = postcss.plugin('postcss-color-functional-notation', opts => {
|
|
|
49
49
|
}
|
|
50
50
|
}
|
|
51
51
|
});
|
|
52
|
-
const
|
|
53
|
-
|
|
54
|
-
if (
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
52
|
+
const modifiedValue = String(valueAST);
|
|
53
|
+
|
|
54
|
+
if (modifiedValue !== originalValue) {
|
|
55
|
+
if (preserve) {
|
|
56
|
+
decl.cloneBefore({
|
|
57
|
+
value: modifiedValue
|
|
58
|
+
});
|
|
59
|
+
} else {
|
|
60
|
+
decl.value = modifiedValue;
|
|
61
|
+
}
|
|
60
62
|
}
|
|
61
63
|
}
|
|
62
64
|
});
|
|
@@ -72,25 +74,25 @@ const hslaRgbaFuncMatch = /^(hsla|rgba)$/i;
|
|
|
72
74
|
const hueUnitMatch = /^(deg|grad|rad|turn)?$/i;
|
|
73
75
|
const rgbishRegExp = /^rgba?$/i;
|
|
74
76
|
|
|
75
|
-
const isAlphaValue = node => isCalc(node) ||
|
|
77
|
+
const isAlphaValue = node => isCalc(node) || node.type === 'number' && alphaUnitMatch.test(node.unit);
|
|
76
78
|
|
|
77
|
-
const isCalc = node =>
|
|
79
|
+
const isCalc = node => node.type === 'func' && calcFuncMatch.test(node.value);
|
|
78
80
|
|
|
79
|
-
const isHue = node => isCalc(node) ||
|
|
81
|
+
const isHue = node => isCalc(node) || node.type === 'number' && hueUnitMatch.test(node.unit);
|
|
80
82
|
|
|
81
|
-
const isNumber = node => isCalc(node) ||
|
|
83
|
+
const isNumber = node => isCalc(node) || node.type === 'number' && node.unit === '';
|
|
82
84
|
|
|
83
|
-
const isPercentage = node => isCalc(node) ||
|
|
85
|
+
const isPercentage = node => isCalc(node) || node.type === 'number' && (node.unit === '%' || node.unit === '' && node.value === '0');
|
|
84
86
|
|
|
85
|
-
const isHslish = node =>
|
|
87
|
+
const isHslish = node => node.type === 'func' && hslishRegExp.test(node.value);
|
|
86
88
|
|
|
87
|
-
const isHslRgb = node =>
|
|
89
|
+
const isHslRgb = node => node.type === 'func' && hslRgbFuncMatch.test(node.value);
|
|
88
90
|
|
|
89
|
-
const isHslaRgba = node =>
|
|
91
|
+
const isHslaRgba = node => node.type === 'func' && hslaRgbaFuncMatch.test(node.value);
|
|
90
92
|
|
|
91
|
-
const isRgbish = node =>
|
|
93
|
+
const isRgbish = node => node.type === 'func' && rgbishRegExp.test(node.value);
|
|
92
94
|
|
|
93
|
-
const isSlash = node =>
|
|
95
|
+
const isSlash = node => node.type === 'operator' && node.value === '/';
|
|
94
96
|
|
|
95
97
|
const functionalHSLMatch = [isHue, isPercentage, isPercentage, isSlash, isAlphaValue];
|
|
96
98
|
const functionalRGB1Match = [isNumber, isNumber, isNumber, isSlash, isAlphaValue];
|
|
@@ -102,7 +104,7 @@ const matchFunctionalRGB1 = (node, children) => isRgbish(node) && children.every
|
|
|
102
104
|
|
|
103
105
|
const matchFunctionalRGB2 = (node, children) => isRgbish(node) && children.every((child, index) => typeof functionalRGB2Match[index] === 'function' && functionalRGB2Match[index](child));
|
|
104
106
|
|
|
105
|
-
const newComma = () =>
|
|
107
|
+
const newComma = () => valuesParser.comma({
|
|
106
108
|
value: ','
|
|
107
109
|
});
|
|
108
110
|
|
package/index.es.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.es.mjs","sources":["index.js"],"sourcesContent":["import postcss from 'postcss';\nimport parser from 'postcss-values-parser';\n\nexport default postcss.plugin('postcss-color-functional-notation', opts => {\n\tconst preserve = 'preserve' in Object(opts) ? Boolean(opts.preserve) : false;\n\n\treturn root => {\n\t\troot.walkDecls(decl => {\n\t\t\tconst { value } = decl;\n\n\t\t\tif (colorAnyRegExp.test(value)) {\n\t\t\t\tconst ast = parser(value).parse();\n\n\t\t\t\tast.walkType('func', node => {\n\t\t\t\t\tif (colorRegExp.test(node.value)) {\n\t\t\t\t\t\tconst children = node.nodes.slice(1, -1);\n\t\t\t\t\t\tconst isFunctionalHSL = matchFunctionalHSL(node, children);\n\t\t\t\t\t\tconst isFunctionalRGB1 = matchFunctionalRGB1(node, children);\n\t\t\t\t\t\tconst isFunctionalRGB2 = matchFunctionalRGB2(node, children);\n\n\t\t\t\t\t\tif (isFunctionalHSL || isFunctionalRGB1 || isFunctionalRGB2) {\n\t\t\t\t\t\t\tconst slashNode = children[3];\n\t\t\t\t\t\t\tconst alphaNode = children[4];\n\n\t\t\t\t\t\t\tif (alphaNode) {\n\t\t\t\t\t\t\t\tif (isPercentage(alphaNode) && !isCalc(alphaNode)) {\n\t\t\t\t\t\t\t\t\talphaNode.unit = '';\n\t\t\t\t\t\t\t\t\talphaNode.value = String(alphaNode.value / 100);\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\tif (isHslRgb(node)) {\n\t\t\t\t\t\t\t\t\tnode.value += 'a';\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else if (isHslaRgba(node)) {\n\t\t\t\t\t\t\t\tnode.value = node.value.slice(0, -1);\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tif (isSlash(slashNode)) {\n\t\t\t\t\t\t\t\tslashNode.replaceWith( newComma() );\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tif (isFunctionalRGB2) {\n\t\t\t\t\t\t\t\tchildren[0].unit = children[1].unit = children[2].unit = '';\n\n\t\t\t\t\t\t\t\tchildren[0].value = String(Math.floor(children[0].value * 255 / 100));\n\t\t\t\t\t\t\t\tchildren[1].value = String(Math.floor(children[1].value * 255 / 100));\n\t\t\t\t\t\t\t\tchildren[2].value = String(Math.floor(children[2].value * 255 / 100));\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tnode.nodes.splice(3, 0, [ newComma() ]);\n\t\t\t\t\t\t\tnode.nodes.splice(2, 0, [ newComma() ]);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\tconst newValue = String(ast);\n\n\t\t\t\tif (preserve) {\n\t\t\t\t\tdecl.cloneBefore({ value: newValue });\n\t\t\t\t} else {\n\t\t\t\t\tdecl.value = newValue;\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t};\n});\n\nconst alphaUnitMatch = /^%?$/i;\nconst calcFuncMatch = /^calc$/i;\nconst colorAnyRegExp = /(^|[^\\w-])(hsla?|rgba?)\\(/i;\nconst colorRegExp = /^(hsla?|rgba?)$/i;\nconst hslishRegExp = /^hsla?$/i;\nconst hslRgbFuncMatch = /^(hsl|rgb)$/i;\nconst hslaRgbaFuncMatch = /^(hsla|rgba)$/i;\nconst hueUnitMatch = /^(deg|grad|rad|turn)?$/i;\nconst rgbishRegExp = /^rgba?$/i;\nconst isAlphaValue = node => isCalc(node) || Object(node).type === 'number' && alphaUnitMatch.test(node.unit);\nconst isCalc = node => Object(node).type === 'func' && calcFuncMatch.test(node.value);\nconst isHue = node => isCalc(node) || Object(node).type === 'number' && hueUnitMatch.test(node.unit);\nconst isNumber = node => isCalc(node) || Object(node).type === 'number' && node.unit === '';\nconst isPercentage = node => isCalc(node) || Object(node).type === 'number' && (node.unit === '%' || node.unit === '' && node.value === '0');\nconst isHslish = node => Object(node).type === 'func' && hslishRegExp.test(node.value);\nconst isHslRgb = node => Object(node).type === 'func' && hslRgbFuncMatch.test(node.value);\nconst isHslaRgba = node => Object(node).type === 'func' && hslaRgbaFuncMatch.test(node.value);\nconst isRgbish = node => Object(node).type === 'func' && rgbishRegExp.test(node.value);\nconst isSlash = node => Object(node).type === 'operator' && node.value === '/';\nconst functionalHSLMatch = [isHue, isPercentage, isPercentage, isSlash, isAlphaValue];\nconst functionalRGB1Match = [isNumber, isNumber, isNumber, isSlash, isAlphaValue];\nconst functionalRGB2Match = [isPercentage, isPercentage, isPercentage, isSlash, isAlphaValue];\n\nconst matchFunctionalHSL = (node, children) => isHslish(node) && children.every(\n\t(child, index) => typeof functionalHSLMatch[index] === 'function' && functionalHSLMatch[index](child)\n);\nconst matchFunctionalRGB1 = (node, children) => isRgbish(node) && children.every(\n\t(child, index) => typeof functionalRGB1Match[index] === 'function' && functionalRGB1Match[index](child)\n);\nconst matchFunctionalRGB2 = (node, children) => isRgbish(node) && children.every(\n\t(child, index) => typeof functionalRGB2Match[index] === 'function' && functionalRGB2Match[index](child)\n);\n\nconst newComma = () => parser.comma({ value: ',' })\n"],"names":["postcss","plugin","opts","preserve","Object","Boolean","root","walkDecls","decl","value","colorAnyRegExp","test","ast","parser","parse","walkType","node","colorRegExp","children","nodes","slice","isFunctionalHSL","matchFunctionalHSL","isFunctionalRGB1","matchFunctionalRGB1","isFunctionalRGB2","matchFunctionalRGB2","slashNode","alphaNode","isPercentage","isCalc","unit","String","isHslRgb","isHslaRgba","isSlash","replaceWith","newComma","Math","floor","splice","newValue","cloneBefore","alphaUnitMatch","calcFuncMatch","hslishRegExp","hslRgbFuncMatch","hslaRgbaFuncMatch","hueUnitMatch","rgbishRegExp","isAlphaValue","type","isHue","isNumber","isHslish","isRgbish","functionalHSLMatch","functionalRGB1Match","functionalRGB2Match","every","child","index","comma"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.es.mjs","sources":["index.js"],"sourcesContent":["import postcss from 'postcss';\nimport valuesParser from 'postcss-values-parser';\n\nexport default postcss.plugin('postcss-color-functional-notation', opts => {\n\tconst preserve = 'preserve' in Object(opts) ? Boolean(opts.preserve) : false;\n\n\treturn root => {\n\t\troot.walkDecls(decl => {\n\t\t\tconst { value: originalValue } = decl;\n\n\t\t\tif (colorAnyRegExp.test(originalValue)) {\n\t\t\t\tconst valueAST = valuesParser(originalValue).parse();\n\n\t\t\t\tvalueAST.walkType('func', node => {\n\t\t\t\t\tif (colorRegExp.test(node.value)) {\n\t\t\t\t\t\tconst children = node.nodes.slice(1, -1);\n\t\t\t\t\t\tconst isFunctionalHSL = matchFunctionalHSL(node, children);\n\t\t\t\t\t\tconst isFunctionalRGB1 = matchFunctionalRGB1(node, children);\n\t\t\t\t\t\tconst isFunctionalRGB2 = matchFunctionalRGB2(node, children);\n\n\t\t\t\t\t\tif (isFunctionalHSL || isFunctionalRGB1 || isFunctionalRGB2) {\n\t\t\t\t\t\t\tconst slashNode = children[3];\n\t\t\t\t\t\t\tconst alphaNode = children[4];\n\n\t\t\t\t\t\t\tif (alphaNode) {\n\t\t\t\t\t\t\t\tif (isPercentage(alphaNode) && !isCalc(alphaNode)) {\n\t\t\t\t\t\t\t\t\talphaNode.unit = '';\n\t\t\t\t\t\t\t\t\talphaNode.value = String(alphaNode.value / 100);\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\tif (isHslRgb(node)) {\n\t\t\t\t\t\t\t\t\tnode.value += 'a';\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else if (isHslaRgba(node)) {\n\t\t\t\t\t\t\t\tnode.value = node.value.slice(0, -1);\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tif (slashNode && isSlash(slashNode)) {\n\t\t\t\t\t\t\t\tslashNode.replaceWith( newComma() );\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tif (isFunctionalRGB2) {\n\t\t\t\t\t\t\t\tchildren[0].unit = children[1].unit = children[2].unit = '';\n\n\t\t\t\t\t\t\t\tchildren[0].value = String(Math.floor(children[0].value * 255 / 100));\n\t\t\t\t\t\t\t\tchildren[1].value = String(Math.floor(children[1].value * 255 / 100));\n\t\t\t\t\t\t\t\tchildren[2].value = String(Math.floor(children[2].value * 255 / 100));\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tnode.nodes.splice(3, 0, [ newComma() ]);\n\t\t\t\t\t\t\tnode.nodes.splice(2, 0, [ newComma() ]);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\tconst modifiedValue = String(valueAST);\n\n\t\t\t\tif (modifiedValue !== originalValue) {\n\t\t\t\t\tif (preserve) {\n\t\t\t\t\t\tdecl.cloneBefore({ value: modifiedValue });\n\t\t\t\t\t} else {\n\t\t\t\t\t\tdecl.value = modifiedValue;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t};\n});\n\nconst alphaUnitMatch = /^%?$/i;\nconst calcFuncMatch = /^calc$/i;\nconst colorAnyRegExp = /(^|[^\\w-])(hsla?|rgba?)\\(/i;\nconst colorRegExp = /^(hsla?|rgba?)$/i;\nconst hslishRegExp = /^hsla?$/i;\nconst hslRgbFuncMatch = /^(hsl|rgb)$/i;\nconst hslaRgbaFuncMatch = /^(hsla|rgba)$/i;\nconst hueUnitMatch = /^(deg|grad|rad|turn)?$/i;\nconst rgbishRegExp = /^rgba?$/i;\nconst isAlphaValue = node => isCalc(node) || node.type === 'number' && alphaUnitMatch.test(node.unit);\nconst isCalc = node => node.type === 'func' && calcFuncMatch.test(node.value);\nconst isHue = node => isCalc(node) || node.type === 'number' && hueUnitMatch.test(node.unit);\nconst isNumber = node => isCalc(node) || node.type === 'number' && node.unit === '';\nconst isPercentage = node => isCalc(node) || node.type === 'number' && (node.unit === '%' || node.unit === '' && node.value === '0');\nconst isHslish = node => node.type === 'func' && hslishRegExp.test(node.value);\nconst isHslRgb = node => node.type === 'func' && hslRgbFuncMatch.test(node.value);\nconst isHslaRgba = node => node.type === 'func' && hslaRgbaFuncMatch.test(node.value);\nconst isRgbish = node => node.type === 'func' && rgbishRegExp.test(node.value);\nconst isSlash = node => node.type === 'operator' && node.value === '/';\nconst functionalHSLMatch = [isHue, isPercentage, isPercentage, isSlash, isAlphaValue];\nconst functionalRGB1Match = [isNumber, isNumber, isNumber, isSlash, isAlphaValue];\nconst functionalRGB2Match = [isPercentage, isPercentage, isPercentage, isSlash, isAlphaValue];\n\nconst matchFunctionalHSL = (node, children) => isHslish(node) && children.every(\n\t(child, index) => typeof functionalHSLMatch[index] === 'function' && functionalHSLMatch[index](child)\n);\nconst matchFunctionalRGB1 = (node, children) => isRgbish(node) && children.every(\n\t(child, index) => typeof functionalRGB1Match[index] === 'function' && functionalRGB1Match[index](child)\n);\nconst matchFunctionalRGB2 = (node, children) => isRgbish(node) && children.every(\n\t(child, index) => typeof functionalRGB2Match[index] === 'function' && functionalRGB2Match[index](child)\n);\n\nconst newComma = () => valuesParser.comma({ value: ',' })\n"],"names":["postcss","plugin","opts","preserve","Object","Boolean","root","walkDecls","decl","originalValue","value","colorAnyRegExp","test","valueAST","valuesParser","parse","walkType","node","colorRegExp","children","nodes","slice","isFunctionalHSL","matchFunctionalHSL","isFunctionalRGB1","matchFunctionalRGB1","isFunctionalRGB2","matchFunctionalRGB2","slashNode","alphaNode","isPercentage","isCalc","unit","String","isHslRgb","isHslaRgba","isSlash","replaceWith","newComma","Math","floor","splice","modifiedValue","cloneBefore","alphaUnitMatch","calcFuncMatch","hslishRegExp","hslRgbFuncMatch","hslaRgbaFuncMatch","hueUnitMatch","rgbishRegExp","isAlphaValue","type","isHue","isNumber","isHslish","isRgbish","functionalHSLMatch","functionalRGB1Match","functionalRGB2Match","every","child","index","comma"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "postcss-color-functional-notation",
|
|
3
|
-
"version": "2.0.
|
|
3
|
+
"version": "2.0.1",
|
|
4
4
|
"description": "Use space and slash separated color notation in CSS",
|
|
5
5
|
"author": "Jonathan Neal <jonathantneal@hotmail.com>",
|
|
6
6
|
"license": "CC0-1.0",
|
|
@@ -28,18 +28,18 @@
|
|
|
28
28
|
},
|
|
29
29
|
"dependencies": {
|
|
30
30
|
"postcss": "^7.0.2",
|
|
31
|
-
"postcss-values-parser": "^
|
|
31
|
+
"postcss-values-parser": "^2.0.0"
|
|
32
32
|
},
|
|
33
33
|
"devDependencies": {
|
|
34
|
-
"@babel/core": "^7.
|
|
35
|
-
"@babel/preset-env": "^7.
|
|
34
|
+
"@babel/core": "^7.1.0",
|
|
35
|
+
"@babel/preset-env": "^7.1.0",
|
|
36
36
|
"babel-eslint": "^9.0.0",
|
|
37
37
|
"eslint": "^5.6.0",
|
|
38
38
|
"eslint-config-dev": "^2.0.0",
|
|
39
39
|
"postcss-tape": "^2.2.0",
|
|
40
40
|
"pre-commit": "^1.2.2",
|
|
41
41
|
"rollup": "^0.66.0",
|
|
42
|
-
"rollup-plugin-babel": "^4.0.
|
|
42
|
+
"rollup-plugin-babel": "^4.0.3"
|
|
43
43
|
},
|
|
44
44
|
"eslintConfig": {
|
|
45
45
|
"extends": "dev",
|