1
0
mirror of https://github.com/svg/svgo.git synced 2025-07-31 07:44:22 +03:00

merge plugins/roundNumericValues and plugins/removeDefaultPx into one plugins/cleanupNumericValues

This commit is contained in:
deepsweet
2012-11-29 18:42:41 +02:00
parent 67daff27b1
commit 140daaeaef
7 changed files with 15 additions and 44 deletions

View File

@ -0,0 +1,47 @@
'use strict';
var regNumericValues = /^([\-+]?\d*\.?\d+)(px|pt|pc|mm|cm|m|in|ft|em|ex|%)?$/,
removeLeadingZero = require('../lib/svgo/tools').removeLeadingZero;
/**
* Round numeric values to the fixed precision,
* remove default 'px' units.
*
* @param {Object} item current iteration item
* @param {Object} params plugin params
* @return {Boolean} if false, item will be filtered out
*
* @author Kir Belevich
*/
exports.cleanupNumericValues = function(item, params) {
if (item.isElem()) {
var match;
item.eachAttr(function(attr) {
match = attr.value.match(regNumericValues);
// if attribute value matches regNumericValues
if (match) {
// round it to the fixed precision
var num = +(+match[1]).toFixed(params.floatPrecision),
units = match[2] || '';
// and remove leading zero
if (params.leadingZero) {
num = removeLeadingZero(num);
}
// remove default 'px' units
if (params.defaultPx && units === 'px') {
units = '';
}
attr.value = num + units;
}
});
}
};