postcss-calc
Advanced tools
Comparing version 7.0.5 to 8.0.0
@@ -0,1 +1,5 @@ | ||
# 8.0.0 | ||
- Breaking: Updated PostCSS from v7.x to v8.x ([#125](https://github.com/postcss/postcss-calc/pull/125)) | ||
# 7.0.5 | ||
@@ -2,0 +6,0 @@ |
@@ -8,4 +8,2 @@ "use strict"; | ||
var _postcss = require("postcss"); | ||
var _transform = _interopRequireDefault(require("./lib/transform")); | ||
@@ -15,4 +13,4 @@ | ||
var _default = (0, _postcss.plugin)('postcss-calc', function (opts) { | ||
var options = Object.assign({ | ||
function pluginCreator(opts) { | ||
const options = Object.assign({ | ||
precision: 5, | ||
@@ -24,22 +22,33 @@ preserve: false, | ||
}, opts); | ||
return function (css, result) { | ||
css.walk(function (node) { | ||
var type = node.type; | ||
return { | ||
postcssPlugin: 'postcss-calc', | ||
if (type === 'decl') { | ||
(0, _transform.default)(node, "value", options, result); | ||
} | ||
OnceExit(css, { | ||
result | ||
}) { | ||
css.walk(node => { | ||
const { | ||
type | ||
} = node; | ||
if (type === 'atrule' && options.mediaQueries) { | ||
(0, _transform.default)(node, "params", options, result); | ||
} | ||
if (type === 'decl') { | ||
(0, _transform.default)(node, "value", options, result); | ||
} | ||
if (type === 'rule' && options.selectors) { | ||
(0, _transform.default)(node, "selector", options, result); | ||
} | ||
}); | ||
if (type === 'atrule' && options.mediaQueries) { | ||
(0, _transform.default)(node, "params", options, result); | ||
} | ||
if (type === 'rule' && options.selectors) { | ||
(0, _transform.default)(node, "selector", options, result); | ||
} | ||
}); | ||
} | ||
}; | ||
}); | ||
} | ||
pluginCreator.postcss = true; | ||
var _default = pluginCreator; | ||
exports.default = _default; | ||
module.exports = exports.default; |
@@ -7,3 +7,3 @@ "use strict"; | ||
exports.default = void 0; | ||
var conversions = { | ||
const conversions = { | ||
// Absolute length units | ||
@@ -135,4 +135,4 @@ 'px': { | ||
function convertUnit(value, sourceUnit, targetUnit, precision) { | ||
var sourceUnitNormalized = sourceUnit.toLowerCase(); | ||
var targetUnitNormalized = targetUnit.toLowerCase(); | ||
const sourceUnitNormalized = sourceUnit.toLowerCase(); | ||
const targetUnitNormalized = targetUnit.toLowerCase(); | ||
@@ -147,3 +147,3 @@ if (!conversions[targetUnitNormalized]) { | ||
var converted = conversions[targetUnitNormalized][sourceUnitNormalized] * value; | ||
const converted = conversions[targetUnitNormalized][sourceUnitNormalized] * value; | ||
@@ -150,0 +150,0 @@ if (precision !== false) { |
@@ -48,8 +48,6 @@ "use strict"; | ||
var type = node.type; | ||
const type = node.type; | ||
if (isValueType(type)) { | ||
var itemIndex = collected.findIndex(function (x) { | ||
return x.node.type === type; | ||
}); | ||
const itemIndex = collected.findIndex(x => x.node.type === type); | ||
@@ -61,5 +59,6 @@ if (itemIndex >= 0) { | ||
var _covertNodesUnits = covertNodesUnits(collected[itemIndex].node, node, precision), | ||
reducedNode = _covertNodesUnits.left, | ||
current = _covertNodesUnits.right; | ||
const { | ||
left: reducedNode, | ||
right: current | ||
} = covertNodesUnits(collected[itemIndex].node, node, precision); | ||
@@ -108,14 +107,13 @@ if (collected[itemIndex].preOperator === '-') { | ||
collectAddSubItems(preOperator, node.left, collected, precision); | ||
var collectRightOperator = preOperator === '-' ? flip(node.operator) : node.operator; | ||
const collectRightOperator = preOperator === '-' ? flip(node.operator) : node.operator; | ||
collectAddSubItems(collectRightOperator, node.right, collected, precision); | ||
} else { | ||
// * or / | ||
var _reducedNode = reduce(node, precision); // prevent infinite recursive call | ||
const reducedNode = reduce(node, precision); // prevent infinite recursive call | ||
if (_reducedNode.type !== "MathExpression" || isAddSubOperator(_reducedNode.operator)) { | ||
collectAddSubItems(preOperator, _reducedNode, collected, precision); | ||
if (reducedNode.type !== "MathExpression" || isAddSubOperator(reducedNode.operator)) { | ||
collectAddSubItems(preOperator, reducedNode, collected, precision); | ||
} else { | ||
collected.push({ | ||
node: _reducedNode, | ||
node: reducedNode, | ||
preOperator | ||
@@ -134,8 +132,6 @@ }); | ||
function reduceAddSubExpression(node, precision) { | ||
var collected = []; | ||
const collected = []; | ||
collectAddSubItems('+', node, collected, precision); | ||
var withoutZeroItem = collected.filter(function (item) { | ||
return !(isValueType(item.node.type) && item.node.value === 0); | ||
}); | ||
var firstNonZeroItem = withoutZeroItem[0]; // could be undefined | ||
const withoutZeroItem = collected.filter(item => !(isValueType(item.node.type) && item.node.value === 0)); | ||
const firstNonZeroItem = withoutZeroItem[0]; // could be undefined | ||
// prevent producing "calc(-var(--a))" or "calc()" | ||
@@ -145,5 +141,3 @@ // which is invalid css | ||
if (!firstNonZeroItem || firstNonZeroItem.preOperator === '-' && !isValueType(firstNonZeroItem.node.type)) { | ||
var firstZeroItem = collected.find(function (item) { | ||
return isValueType(item.node.type) && item.node.value === 0; | ||
}); | ||
const firstZeroItem = collected.find(item => isValueType(item.node.type) && item.node.value === 0); | ||
withoutZeroItem.unshift(firstZeroItem); | ||
@@ -158,5 +152,5 @@ } // make sure the preOperator of the first item is + | ||
var root = withoutZeroItem[0].node; | ||
let root = withoutZeroItem[0].node; | ||
for (var i = 1; i < withoutZeroItem.length; i++) { | ||
for (let i = 1; i < withoutZeroItem.length; i++) { | ||
root = { | ||
@@ -279,3 +273,3 @@ type: 'MathExpression', | ||
if (right.type === left.type && right.unit && left.unit) { | ||
var converted = (0, _convertUnit.default)(right.value, right.unit, left.unit, precision); | ||
const converted = (0, _convertUnit.default)(right.value, right.unit, left.unit, precision); | ||
right = { | ||
@@ -282,0 +276,0 @@ type: left.type, |
@@ -7,3 +7,3 @@ "use strict"; | ||
exports.default = _default; | ||
var order = { | ||
const order = { | ||
"*": 0, | ||
@@ -17,3 +17,3 @@ "/": 0, | ||
if (prec !== false) { | ||
var precision = Math.pow(10, prec); | ||
const precision = Math.pow(10, prec); | ||
return Math.round(value * precision) / precision; | ||
@@ -29,6 +29,8 @@ } | ||
{ | ||
var left = node.left, | ||
right = node.right, | ||
op = node.operator; | ||
var str = ""; | ||
const { | ||
left, | ||
right, | ||
operator: op | ||
} = node; | ||
let str = ""; | ||
@@ -64,4 +66,4 @@ if (left.type === 'MathExpression' && order[op] < order[left.operator]) { | ||
function _default(calc, node, originalValue, options, result, item) { | ||
var str = stringify(node, options.precision); | ||
var shouldPrintCalc = node.type === "MathExpression" || node.type === "Function"; | ||
let str = stringify(node, options.precision); | ||
const shouldPrintCalc = node.type === "MathExpression" || node.type === "Function"; | ||
@@ -68,0 +70,0 @@ if (shouldPrintCalc) { |
@@ -21,6 +21,6 @@ "use strict"; | ||
// eslint-disable-next-line import/no-unresolved | ||
var MATCH_CALC = /((?:-(moz|webkit)-)?calc)/i; | ||
const MATCH_CALC = /((?:-(moz|webkit)-)?calc)/i; | ||
function transformValue(value, options, result, item) { | ||
return (0, _postcssValueParser.default)(value).walk(function (node) { | ||
return (0, _postcssValueParser.default)(value).walk(node => { | ||
// skip anything which isn't a calc() function | ||
@@ -32,9 +32,9 @@ if (node.type !== 'function' || !MATCH_CALC.test(node.value)) { | ||
var contents = _postcssValueParser.default.stringify(node.nodes); | ||
const contents = _postcssValueParser.default.stringify(node.nodes); | ||
var ast = _parser.parser.parse(contents); // reduce AST to its simplest form, that is, either to a single value | ||
const ast = _parser.parser.parse(contents); // reduce AST to its simplest form, that is, either to a single value | ||
// or a simplified calc expression | ||
var reducedAst = (0, _reducer.default)(ast, options.precision); // stringify AST and write it back | ||
const reducedAst = (0, _reducer.default)(ast, options.precision); // stringify AST and write it back | ||
@@ -48,4 +48,4 @@ node.type = 'word'; | ||
function transformSelector(value, options, result, item) { | ||
return (0, _postcssSelectorParser.default)(function (selectors) { | ||
selectors.walk(function (node) { | ||
return (0, _postcssSelectorParser.default)(selectors => { | ||
selectors.walk(node => { | ||
// attribute value | ||
@@ -68,4 +68,4 @@ // e.g. the "calc(3*3)" part of "div[data-size="calc(3*3)"]" | ||
var _default = function _default(node, property, options, result) { | ||
var value = property === "selector" ? transformSelector(node[property], options, result, node) : transformValue(node[property], options, result, node); // if the preserve option is enabled and the value has changed, write the | ||
var _default = (node, property, options, result) => { | ||
const value = property === "selector" ? transformSelector(node[property], options, result, node) : transformValue(node[property], options, result, node); // if the preserve option is enabled and the value has changed, write the | ||
// transformed value into a cloned node which is inserted before the current | ||
@@ -76,3 +76,3 @@ // node, preserving the original value. Otherwise, overwrite the original | ||
if (options.preserve && node[property] !== value) { | ||
var clone = node.clone(); | ||
const clone = node.clone(); | ||
clone[property] = value; | ||
@@ -79,0 +79,0 @@ node.parent.insertBefore(node, clone); |
{ | ||
"name": "postcss-calc", | ||
"version": "7.0.5", | ||
"version": "8.0.0", | ||
"description": "PostCSS plugin to reduce calc()", | ||
@@ -39,7 +39,7 @@ "keywords": [ | ||
"@babel/register": "^7.0.0", | ||
"ava": "^1.4.1", | ||
"ava": "^3.15.0", | ||
"babel-eslint": "^10.0.1", | ||
"babel-plugin-add-module-exports": "^1.0.0", | ||
"cross-env": "^5.2.0", | ||
"del-cli": "^1.1.0", | ||
"cross-env": "^7.0.0", | ||
"del-cli": "^3.0.0", | ||
"eslint": "^5.7.0", | ||
@@ -49,9 +49,12 @@ "eslint-config-i-am-meticulous": "^11.0.0", | ||
"eslint-plugin-import": "^2.14.0", | ||
"jison-gho": "^0.6.1-215" | ||
"jison-gho": "^0.6.1-216", | ||
"postcss": "^8.2.2" | ||
}, | ||
"dependencies": { | ||
"postcss": "^7.0.27", | ||
"postcss-selector-parser": "^6.0.2", | ||
"postcss-value-parser": "^4.0.2" | ||
}, | ||
"peerDependencies": { | ||
"postcss": "^8.2.2" | ||
}, | ||
"ava": { | ||
@@ -58,0 +61,0 @@ "require": [ |
150799
3742
16
+ Addednanoid@3.3.7(transitive)
+ Addedpicocolors@1.0.0(transitive)
+ Addedpostcss@8.4.38(transitive)
+ Addedsource-map-js@1.2.0(transitive)
- Removedpostcss@^7.0.27
- Removedpicocolors@0.2.1(transitive)
- Removedpostcss@7.0.39(transitive)
- Removedsource-map@0.6.1(transitive)