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 CHANGED
@@ -1,5 +1,9 @@
1
1
  # Changes to PostCSS Color Functional Notation
2
2
 
3
+ ### 2.0.1 (September 18, 2018)
4
+
5
+ - Updated: PostCSS Values Parser 2 (patch for this project)
6
+
3
7
  ### 2.0.0 (September 17, 2018)
4
8
 
5
9
  - Updated: Support for PostCSS v7+
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 parser = _interopDefault(require('postcss-values-parser'));
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 value = decl.value;
12
+ const originalValue = decl.value;
13
13
 
14
- if (colorAnyRegExp.test(value)) {
15
- const ast = parser(value).parse();
16
- ast.walkType('func', node => {
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 newValue = String(ast);
57
-
58
- if (preserve) {
59
- decl.cloneBefore({
60
- value: newValue
61
- });
62
- } else {
63
- decl.value = newValue;
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) || Object(node).type === 'number' && alphaUnitMatch.test(node.unit);
81
+ const isAlphaValue = node => isCalc(node) || node.type === 'number' && alphaUnitMatch.test(node.unit);
80
82
 
81
- const isCalc = node => Object(node).type === 'func' && calcFuncMatch.test(node.value);
83
+ const isCalc = node => node.type === 'func' && calcFuncMatch.test(node.value);
82
84
 
83
- const isHue = node => isCalc(node) || Object(node).type === 'number' && hueUnitMatch.test(node.unit);
85
+ const isHue = node => isCalc(node) || node.type === 'number' && hueUnitMatch.test(node.unit);
84
86
 
85
- const isNumber = node => isCalc(node) || Object(node).type === 'number' && node.unit === '';
87
+ const isNumber = node => isCalc(node) || node.type === 'number' && node.unit === '';
86
88
 
87
- const isPercentage = node => isCalc(node) || Object(node).type === 'number' && (node.unit === '%' || node.unit === '' && node.value === '0');
89
+ const isPercentage = node => isCalc(node) || node.type === 'number' && (node.unit === '%' || node.unit === '' && node.value === '0');
88
90
 
89
- const isHslish = node => Object(node).type === 'func' && hslishRegExp.test(node.value);
91
+ const isHslish = node => node.type === 'func' && hslishRegExp.test(node.value);
90
92
 
91
- const isHslRgb = node => Object(node).type === 'func' && hslRgbFuncMatch.test(node.value);
93
+ const isHslRgb = node => node.type === 'func' && hslRgbFuncMatch.test(node.value);
92
94
 
93
- const isHslaRgba = node => Object(node).type === 'func' && hslaRgbaFuncMatch.test(node.value);
95
+ const isHslaRgba = node => node.type === 'func' && hslaRgbaFuncMatch.test(node.value);
94
96
 
95
- const isRgbish = node => Object(node).type === 'func' && rgbishRegExp.test(node.value);
97
+ const isRgbish = node => node.type === 'func' && rgbishRegExp.test(node.value);
96
98
 
97
- const isSlash = node => Object(node).type === 'operator' && node.value === '/';
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 = () => parser.comma({
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 parser from 'postcss-values-parser';
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 value = decl.value;
8
+ const originalValue = decl.value;
9
9
 
10
- if (colorAnyRegExp.test(value)) {
11
- const ast = parser(value).parse();
12
- ast.walkType('func', node => {
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 newValue = String(ast);
53
-
54
- if (preserve) {
55
- decl.cloneBefore({
56
- value: newValue
57
- });
58
- } else {
59
- decl.value = newValue;
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) || Object(node).type === 'number' && alphaUnitMatch.test(node.unit);
77
+ const isAlphaValue = node => isCalc(node) || node.type === 'number' && alphaUnitMatch.test(node.unit);
76
78
 
77
- const isCalc = node => Object(node).type === 'func' && calcFuncMatch.test(node.value);
79
+ const isCalc = node => node.type === 'func' && calcFuncMatch.test(node.value);
78
80
 
79
- const isHue = node => isCalc(node) || Object(node).type === 'number' && hueUnitMatch.test(node.unit);
81
+ const isHue = node => isCalc(node) || node.type === 'number' && hueUnitMatch.test(node.unit);
80
82
 
81
- const isNumber = node => isCalc(node) || Object(node).type === 'number' && node.unit === '';
83
+ const isNumber = node => isCalc(node) || node.type === 'number' && node.unit === '';
82
84
 
83
- const isPercentage = node => isCalc(node) || Object(node).type === 'number' && (node.unit === '%' || node.unit === '' && node.value === '0');
85
+ const isPercentage = node => isCalc(node) || node.type === 'number' && (node.unit === '%' || node.unit === '' && node.value === '0');
84
86
 
85
- const isHslish = node => Object(node).type === 'func' && hslishRegExp.test(node.value);
87
+ const isHslish = node => node.type === 'func' && hslishRegExp.test(node.value);
86
88
 
87
- const isHslRgb = node => Object(node).type === 'func' && hslRgbFuncMatch.test(node.value);
89
+ const isHslRgb = node => node.type === 'func' && hslRgbFuncMatch.test(node.value);
88
90
 
89
- const isHslaRgba = node => Object(node).type === 'func' && hslaRgbaFuncMatch.test(node.value);
91
+ const isHslaRgba = node => node.type === 'func' && hslaRgbaFuncMatch.test(node.value);
90
92
 
91
- const isRgbish = node => Object(node).type === 'func' && rgbishRegExp.test(node.value);
93
+ const isRgbish = node => node.type === 'func' && rgbishRegExp.test(node.value);
92
94
 
93
- const isSlash = node => Object(node).type === 'operator' && node.value === '/';
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 = () => parser.comma({
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.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": "^1.5.0"
31
+ "postcss-values-parser": "^2.0.0"
32
32
  },
33
33
  "devDependencies": {
34
- "@babel/core": "^7.0.0",
35
- "@babel/preset-env": "^7.0.0",
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.1"
42
+ "rollup-plugin-babel": "^4.0.3"
43
43
  },
44
44
  "eslintConfig": {
45
45
  "extends": "dev",