mirror of
https://github.com/S2-/minifyfromhtml.git
synced 2025-08-04 04:40:05 +02:00
update packages to latest version
This commit is contained in:
35
node_modules/clean-css/lib/optimizer/level-1/value-optimizers/color.js
generated
vendored
35
node_modules/clean-css/lib/optimizer/level-1/value-optimizers/color.js
generated
vendored
@@ -4,14 +4,14 @@ var shortenRgb = require('./color/shorten-rgb');
|
||||
|
||||
var split = require('../../../utils/split');
|
||||
|
||||
var ANY_COLOR_FUNCTION_PATTERN = /(rgb|rgba|hsl|hsla)\(([^\(\)]+)\)/gi;
|
||||
var ANY_COLOR_FUNCTION_PATTERN = /(rgb|rgba|hsl|hsla)\(([^()]+)\)/gi;
|
||||
var COLOR_PREFIX_PATTERN = /#|rgb|hsl/gi;
|
||||
var HEX_LONG_PATTERN = /(^|[^='"])#([0-9a-f]{6})/gi;
|
||||
var HEX_SHORT_PATTERN = /(^|[^='"])#([0-9a-f]{3})/gi;
|
||||
var HEX_VALUE_PATTERN = /[0-9a-f]/i;
|
||||
var HSL_PATTERN = /hsl\((-?\d+),(-?\d+)%?,(-?\d+)%?\)/gi;
|
||||
var RGBA_HSLA_PATTERN = /(rgb|hsl)a?\((\-?\d+),(\-?\d+\%?),(\-?\d+\%?),(0*[1-9]+[0-9]*(\.?\d*)?)\)/gi;
|
||||
var RGB_PATTERN = /rgb\((\-?\d+),(\-?\d+),(\-?\d+)\)/gi;
|
||||
var RGBA_HSLA_PATTERN = /(rgb|hsl)a?\((-?\d+),(-?\d+%?),(-?\d+%?),(0*[1-9]+[0-9]*(\.?\d*)?)\)/gi;
|
||||
var RGB_PATTERN = /rgb\((-?\d+),(-?\d+),(-?\d+)\)/gi;
|
||||
var TRANSPARENT_FUNCTION_PATTERN = /(?:rgba|hsla)\(0,0%?,0%?,0\)/g;
|
||||
|
||||
var plugin = {
|
||||
@@ -26,36 +26,35 @@ var plugin = {
|
||||
}
|
||||
|
||||
value = value
|
||||
.replace(RGBA_HSLA_PATTERN, function (match, colorFn, p1, p2, p3, alpha) {
|
||||
return (parseInt(alpha, 10) >= 1 ? colorFn + '(' + [p1,p2,p3].join(',') + ')' : match);
|
||||
.replace(RGBA_HSLA_PATTERN, function(match, colorFn, p1, p2, p3, alpha) {
|
||||
return (parseInt(alpha) >= 1 ? colorFn + '(' + [p1, p2, p3].join(',') + ')' : match);
|
||||
})
|
||||
.replace(RGB_PATTERN, function (match, red, green, blue) {
|
||||
.replace(RGB_PATTERN, function(match, red, green, blue) {
|
||||
return shortenRgb(red, green, blue);
|
||||
})
|
||||
.replace(HSL_PATTERN, function (match, hue, saturation, lightness) {
|
||||
.replace(HSL_PATTERN, function(match, hue, saturation, lightness) {
|
||||
return shortenHsl(hue, saturation, lightness);
|
||||
})
|
||||
.replace(HEX_LONG_PATTERN, function (match, prefix, color, at, inputValue) {
|
||||
.replace(HEX_LONG_PATTERN, function(match, prefix, color, at, inputValue) {
|
||||
var suffix = inputValue[at + match.length];
|
||||
|
||||
if (suffix && HEX_VALUE_PATTERN.test(suffix)) {
|
||||
return match;
|
||||
} else if (color[0] == color[1] && color[2] == color[3] && color[4] == color[5]) {
|
||||
} if (color[0] == color[1] && color[2] == color[3] && color[4] == color[5]) {
|
||||
return (prefix + '#' + color[0] + color[2] + color[4]).toLowerCase();
|
||||
} else {
|
||||
return (prefix + '#' + color).toLowerCase();
|
||||
}
|
||||
return (prefix + '#' + color).toLowerCase();
|
||||
})
|
||||
.replace(HEX_SHORT_PATTERN, function (match, prefix, color) {
|
||||
.replace(HEX_SHORT_PATTERN, function(match, prefix, color) {
|
||||
return prefix + '#' + color.toLowerCase();
|
||||
})
|
||||
.replace(ANY_COLOR_FUNCTION_PATTERN, function (match, colorFunction, colorDef) {
|
||||
.replace(ANY_COLOR_FUNCTION_PATTERN, function(match, colorFunction, colorDef) {
|
||||
var tokens = colorDef.split(',');
|
||||
var colorFnLowercase = colorFunction && colorFunction.toLowerCase();
|
||||
var applies = (colorFnLowercase == 'hsl' && tokens.length == 3) ||
|
||||
(colorFnLowercase == 'hsla' && tokens.length == 4) ||
|
||||
(colorFnLowercase == 'rgb' && tokens.length === 3 && colorDef.indexOf('%') > 0) ||
|
||||
(colorFnLowercase == 'rgba' && tokens.length == 4 && colorDef.indexOf('%') > 0);
|
||||
var applies = (colorFnLowercase == 'hsl' && tokens.length == 3)
|
||||
|| (colorFnLowercase == 'hsla' && tokens.length == 4)
|
||||
|| (colorFnLowercase == 'rgb' && tokens.length === 3 && colorDef.indexOf('%') > 0)
|
||||
|| (colorFnLowercase == 'rgba' && tokens.length == 4 && colorDef.indexOf('%') > 0);
|
||||
|
||||
if (!applies) {
|
||||
return match;
|
||||
@@ -73,7 +72,7 @@ var plugin = {
|
||||
});
|
||||
|
||||
if (options.compatibility.colors.opacity && name.indexOf('background') == -1) {
|
||||
value = value.replace(TRANSPARENT_FUNCTION_PATTERN, function (match) {
|
||||
value = value.replace(TRANSPARENT_FUNCTION_PATTERN, function(match) {
|
||||
if (split(value, ',').pop().indexOf('gradient(') > -1) {
|
||||
return match;
|
||||
}
|
||||
|
6
node_modules/clean-css/lib/optimizer/level-1/value-optimizers/color/shorten-hex.js
generated
vendored
6
node_modules/clean-css/lib/optimizer/level-1/value-optimizers/color/shorten-hex.js
generated
vendored
@@ -181,9 +181,9 @@ function shortenHex(value) {
|
||||
shortened = shortened.replace(toHexPattern, hexConverter);
|
||||
}
|
||||
|
||||
return hasHex ?
|
||||
shortened.replace(toNamePattern, nameConverter) :
|
||||
shortened;
|
||||
return hasHex
|
||||
? shortened.replace(toNamePattern, nameConverter)
|
||||
: shortened;
|
||||
}
|
||||
|
||||
module.exports = shortenHex;
|
||||
|
43
node_modules/clean-css/lib/optimizer/level-1/value-optimizers/color/shorten-hsl.js
generated
vendored
43
node_modules/clean-css/lib/optimizer/level-1/value-optimizers/color/shorten-hsl.js
generated
vendored
@@ -5,44 +5,37 @@ function hslToRgb(h, s, l) {
|
||||
var r, g, b;
|
||||
|
||||
// normalize hue orientation b/w 0 and 360 degrees
|
||||
h = h % 360;
|
||||
if (h < 0)
|
||||
h += 360;
|
||||
h %= 360;
|
||||
if (h < 0) { h += 360; }
|
||||
h = ~~h / 360;
|
||||
|
||||
if (s < 0)
|
||||
s = 0;
|
||||
else if (s > 100)
|
||||
s = 100;
|
||||
if (s < 0) { s = 0; } else if (s > 100) { s = 100; }
|
||||
s = ~~s / 100;
|
||||
|
||||
if (l < 0)
|
||||
l = 0;
|
||||
else if (l > 100)
|
||||
l = 100;
|
||||
if (l < 0) { l = 0; } else if (l > 100) { l = 100; }
|
||||
l = ~~l / 100;
|
||||
|
||||
if (s === 0) {
|
||||
r = g = b = l; // achromatic
|
||||
} else {
|
||||
var q = l < 0.5 ?
|
||||
l * (1 + s) :
|
||||
l + s - l * s;
|
||||
var q = l < 0.5
|
||||
? l * (1 + s)
|
||||
: l + s - l * s;
|
||||
var p = 2 * l - q;
|
||||
r = hueToRgb(p, q, h + 1/3);
|
||||
r = hueToRgb(p, q, h + 1 / 3);
|
||||
g = hueToRgb(p, q, h);
|
||||
b = hueToRgb(p, q, h - 1/3);
|
||||
b = hueToRgb(p, q, h - 1 / 3);
|
||||
}
|
||||
|
||||
return [~~(r * 255), ~~(g * 255), ~~(b * 255)];
|
||||
}
|
||||
|
||||
function hueToRgb(p, q, t) {
|
||||
if (t < 0) t += 1;
|
||||
if (t > 1) t -= 1;
|
||||
if (t < 1/6) return p + (q - p) * 6 * t;
|
||||
if (t < 1/2) return q;
|
||||
if (t < 2/3) return p + (q - p) * (2/3 - t) * 6;
|
||||
if (t < 0) { t += 1; }
|
||||
if (t > 1) { t -= 1; }
|
||||
if (t < 1 / 6) { return p + (q - p) * 6 * t; }
|
||||
if (t < 1 / 2) { return q; }
|
||||
if (t < 2 / 3) { return p + (q - p) * (2 / 3 - t) * 6; }
|
||||
return p;
|
||||
}
|
||||
|
||||
@@ -52,10 +45,10 @@ function shortenHsl(hue, saturation, lightness) {
|
||||
var greenAsHex = asRgb[1].toString(16);
|
||||
var blueAsHex = asRgb[2].toString(16);
|
||||
|
||||
return '#' +
|
||||
((redAsHex.length == 1 ? '0' : '') + redAsHex) +
|
||||
((greenAsHex.length == 1 ? '0' : '') + greenAsHex) +
|
||||
((blueAsHex.length == 1 ? '0' : '') + blueAsHex);
|
||||
return '#'
|
||||
+ ((redAsHex.length == 1 ? '0' : '') + redAsHex)
|
||||
+ ((greenAsHex.length == 1 ? '0' : '') + greenAsHex)
|
||||
+ ((blueAsHex.length == 1 ? '0' : '') + blueAsHex);
|
||||
}
|
||||
|
||||
module.exports = shortenHsl;
|
||||
|
73
node_modules/clean-css/lib/optimizer/level-1/value-optimizers/fraction.js
generated
vendored
73
node_modules/clean-css/lib/optimizer/level-1/value-optimizers/fraction.js
generated
vendored
@@ -1,13 +1,62 @@
|
||||
var split = require('../../../utils/split');
|
||||
var startsAsUrl = require('./starts-as-url');
|
||||
|
||||
var OptimizationLevel = require('../../../options/optimization-level').OptimizationLevel;
|
||||
|
||||
var EXPRESSION_PATTERN = /^expression\(.*\)$/;
|
||||
var ANY_FUNCTION_PATTERN = /^(-(?:moz|ms|o|webkit)-[a-z-]+|[a-z-]+)\((.+)\)$/;
|
||||
var TOKEN_SEPARATOR_PATTERN = /([\s,/])/;
|
||||
|
||||
var DOT_ZERO_PATTERN = /(^|\D)\.0+(\D|$)/g;
|
||||
var FRACTION_PATTERN = /\.([1-9]*)0+(\D|$)/g;
|
||||
var LEADING_ZERO_FRACTION_PATTERN = /(^|\D)0\.(\d)/g;
|
||||
var MINUS_ZERO_FRACTION_PATTERN = /([^\w\d\-]|^)\-0([^\.]|$)/g;
|
||||
var MINUS_ZERO_FRACTION_PATTERN = /([^\w\d-]|^)-0([^.]|$)/g;
|
||||
var ZERO_PREFIXED_UNIT_PATTERN = /(^|\s)0+([1-9])/g;
|
||||
|
||||
function optimizeRecursively(value) {
|
||||
var functionTokens;
|
||||
var tokens;
|
||||
|
||||
if (startsAsUrl(value)) {
|
||||
return value;
|
||||
}
|
||||
|
||||
if (EXPRESSION_PATTERN.test(value)) {
|
||||
return value;
|
||||
}
|
||||
|
||||
functionTokens = ANY_FUNCTION_PATTERN.exec(value);
|
||||
|
||||
if (!functionTokens) {
|
||||
return optimizeFractions(value);
|
||||
}
|
||||
|
||||
tokens = split(functionTokens[2], TOKEN_SEPARATOR_PATTERN)
|
||||
.map(function(token) { return optimizeRecursively(token); });
|
||||
|
||||
return functionTokens[1] + '(' + tokens.join('') + ')';
|
||||
}
|
||||
|
||||
function optimizeFractions(value) {
|
||||
if (value.indexOf('0') == -1) {
|
||||
return value;
|
||||
}
|
||||
|
||||
if (value.indexOf('-') > -1) {
|
||||
value = value
|
||||
.replace(MINUS_ZERO_FRACTION_PATTERN, '$10$2')
|
||||
.replace(MINUS_ZERO_FRACTION_PATTERN, '$10$2');
|
||||
}
|
||||
|
||||
return value
|
||||
.replace(ZERO_PREFIXED_UNIT_PATTERN, '$1$2')
|
||||
.replace(DOT_ZERO_PATTERN, '$10$2')
|
||||
.replace(FRACTION_PATTERN, function(match, nonZeroPart, suffix) {
|
||||
return (nonZeroPart.length > 0 ? '.' : '') + nonZeroPart + suffix;
|
||||
})
|
||||
.replace(LEADING_ZERO_FRACTION_PATTERN, '$1.$2');
|
||||
}
|
||||
|
||||
var plugin = {
|
||||
level1: {
|
||||
value: function fraction(name, value, options) {
|
||||
@@ -15,27 +64,7 @@ var plugin = {
|
||||
return value;
|
||||
}
|
||||
|
||||
if (startsAsUrl(value)) {
|
||||
return value;
|
||||
}
|
||||
|
||||
if (value.indexOf('0') == -1) {
|
||||
return value;
|
||||
}
|
||||
|
||||
if (value.indexOf('-') > -1) {
|
||||
value = value
|
||||
.replace(MINUS_ZERO_FRACTION_PATTERN, '$10$2')
|
||||
.replace(MINUS_ZERO_FRACTION_PATTERN, '$10$2');
|
||||
}
|
||||
|
||||
return value
|
||||
.replace(ZERO_PREFIXED_UNIT_PATTERN, '$1$2')
|
||||
.replace(DOT_ZERO_PATTERN, '$10$2')
|
||||
.replace(FRACTION_PATTERN, function (match, nonZeroPart, suffix) {
|
||||
return (nonZeroPart.length > 0 ? '.' : '') + nonZeroPart + suffix;
|
||||
})
|
||||
.replace(LEADING_ZERO_FRACTION_PATTERN, '$1.$2');
|
||||
return optimizeRecursively(value);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
4
node_modules/clean-css/lib/optimizer/level-1/value-optimizers/precision.js
generated
vendored
4
node_modules/clean-css/lib/optimizer/level-1/value-optimizers/precision.js
generated
vendored
@@ -7,10 +7,10 @@ var plugin = {
|
||||
|
||||
return value
|
||||
.replace(options.precision.decimalPointMatcher, '$1$2$3')
|
||||
.replace(options.precision.zeroMatcher, function (match, integerPart, fractionPart, unit) {
|
||||
.replace(options.precision.zeroMatcher, function(match, integerPart, fractionPart, unit) {
|
||||
var multiplier = options.precision.units[unit].multiplier;
|
||||
var parsedInteger = parseInt(integerPart);
|
||||
var integer = isNaN(parsedInteger) ? 0 : parsedInteger;
|
||||
var integer = Number.isNaN(parsedInteger) ? 0 : parsedInteger;
|
||||
var fraction = parseFloat(fractionPart);
|
||||
|
||||
return Math.round((integer + fraction) * multiplier) / multiplier + unit;
|
||||
|
14
node_modules/clean-css/lib/optimizer/level-1/value-optimizers/text-quotes.js
generated
vendored
14
node_modules/clean-css/lib/optimizer/level-1/value-optimizers/text-quotes.js
generated
vendored
@@ -3,10 +3,16 @@ var OptimizationLevel = require('../../../options/optimization-level').Optimizat
|
||||
var LOCAL_PREFIX_PATTERN = /^local\(/i;
|
||||
var QUOTED_PATTERN = /^('.*'|".*")$/;
|
||||
var QUOTED_BUT_SAFE_PATTERN = /^['"][a-zA-Z][a-zA-Z\d\-_]+['"]$/;
|
||||
// eslint-disable-next-line max-len
|
||||
var GENERIC_FONT_FAMILY_PATTERN = /^['"](?:cursive|default|emoji|fangsong|fantasy|inherit|initial|math|monospace|revert|revert-layer|sans-serif|serif|system-ui|ui-monospace|ui-rounded|ui-sans-serif|ui-serif|unset)['"]$/;
|
||||
|
||||
var plugin = {
|
||||
level1: {
|
||||
value: function textQuotes(_name, value, options) {
|
||||
value: function textQuotes(name, value, options) {
|
||||
if ((name == 'font-family' || name == 'font') && GENERIC_FONT_FAMILY_PATTERN.test(value)) {
|
||||
return value;
|
||||
}
|
||||
|
||||
if (!options.level[OptimizationLevel.One].removeQuotes) {
|
||||
return value;
|
||||
}
|
||||
@@ -15,9 +21,9 @@ var plugin = {
|
||||
return value;
|
||||
}
|
||||
|
||||
return QUOTED_BUT_SAFE_PATTERN.test(value) ?
|
||||
value.substring(1, value.length - 1) :
|
||||
value;
|
||||
return QUOTED_BUT_SAFE_PATTERN.test(value)
|
||||
? value.substring(1, value.length - 1)
|
||||
: value;
|
||||
}
|
||||
}
|
||||
};
|
||||
|
4
node_modules/clean-css/lib/optimizer/level-1/value-optimizers/time.js
generated
vendored
4
node_modules/clean-css/lib/optimizer/level-1/value-optimizers/time.js
generated
vendored
@@ -1,6 +1,6 @@
|
||||
var OptimizationLevel = require('../../../options/optimization-level').OptimizationLevel;
|
||||
|
||||
var TIME_VALUE = /^(\-?[\d\.]+)(m?s)$/;
|
||||
var TIME_VALUE = /^(-?[\d.]+)(m?s)$/;
|
||||
|
||||
var plugin = {
|
||||
level1: {
|
||||
@@ -13,7 +13,7 @@ var plugin = {
|
||||
return value;
|
||||
}
|
||||
|
||||
return value.replace(TIME_VALUE, function (match, val, unit) {
|
||||
return value.replace(TIME_VALUE, function(match, val, unit) {
|
||||
var newValue;
|
||||
|
||||
if (unit == 'ms') {
|
||||
|
14
node_modules/clean-css/lib/optimizer/level-1/value-optimizers/unit.js
generated
vendored
14
node_modules/clean-css/lib/optimizer/level-1/value-optimizers/unit.js
generated
vendored
@@ -7,7 +7,7 @@ var plugin = {
|
||||
return value;
|
||||
}
|
||||
|
||||
return value.replace(WHOLE_PIXEL_VALUE, function (match, val) {
|
||||
return value.replace(WHOLE_PIXEL_VALUE, function(match, val) {
|
||||
var newValue;
|
||||
var intVal = parseInt(val);
|
||||
|
||||
@@ -15,15 +15,21 @@ var plugin = {
|
||||
return match;
|
||||
}
|
||||
|
||||
if (options.compatibility.properties.shorterLengthUnits && options.compatibility.units.pt && intVal * 3 % 4 === 0) {
|
||||
if (options.compatibility.properties.shorterLengthUnits
|
||||
&& options.compatibility.units.pt
|
||||
&& intVal * 3 % 4 === 0) {
|
||||
newValue = intVal * 3 / 4 + 'pt';
|
||||
}
|
||||
|
||||
if (options.compatibility.properties.shorterLengthUnits && options.compatibility.units.pc && intVal % 16 === 0) {
|
||||
if (options.compatibility.properties.shorterLengthUnits
|
||||
&& options.compatibility.units.pc
|
||||
&& intVal % 16 === 0) {
|
||||
newValue = intVal / 16 + 'pc';
|
||||
}
|
||||
|
||||
if (options.compatibility.properties.shorterLengthUnits && options.compatibility.units.in && intVal % 96 === 0) {
|
||||
if (options.compatibility.properties.shorterLengthUnits
|
||||
&& options.compatibility.units.in
|
||||
&& intVal % 96 === 0) {
|
||||
newValue = intVal / 96 + 'in';
|
||||
}
|
||||
|
||||
|
10
node_modules/clean-css/lib/optimizer/level-1/value-optimizers/url-quotes.js
generated
vendored
10
node_modules/clean-css/lib/optimizer/level-1/value-optimizers/url-quotes.js
generated
vendored
@@ -1,5 +1,5 @@
|
||||
var QUOTED_URL_PATTERN = /^url\(['"].+['"]\)$/;
|
||||
var QUOTED_URL_WITH_WHITESPACE_PATTERN = /^url\(['"].*[\*\s\(\)'"].*['"]\)$/;
|
||||
var QUOTED_URL_WITH_WHITESPACE_PATTERN = /^url\(['"].*[*\s()'"].*['"]\)$/;
|
||||
var QUOTES_PATTERN = /["']/g;
|
||||
var URL_DATA_PATTERN = /^url\(['"]data:[^;]+;charset/;
|
||||
|
||||
@@ -10,9 +10,11 @@ var plugin = {
|
||||
return value;
|
||||
}
|
||||
|
||||
return QUOTED_URL_PATTERN.test(value) && !QUOTED_URL_WITH_WHITESPACE_PATTERN.test(value) && !URL_DATA_PATTERN.test(value) ?
|
||||
value.replace(QUOTES_PATTERN, '') :
|
||||
value;
|
||||
return QUOTED_URL_PATTERN.test(value)
|
||||
&& !QUOTED_URL_WITH_WHITESPACE_PATTERN.test(value)
|
||||
&& !URL_DATA_PATTERN.test(value)
|
||||
? value.replace(QUOTES_PATTERN, '')
|
||||
: value;
|
||||
}
|
||||
}
|
||||
};
|
||||
|
7
node_modules/clean-css/lib/optimizer/level-1/value-optimizers/url-whitespace.js
generated
vendored
7
node_modules/clean-css/lib/optimizer/level-1/value-optimizers/url-whitespace.js
generated
vendored
@@ -1,6 +1,8 @@
|
||||
var startsAsUrl = require('./starts-as-url');
|
||||
|
||||
var WHITESPACE_PATTERN = /\\?\n|\\?\r\n/g;
|
||||
var WHITESPACE_PREFIX_PATTERN = /(\()\s+/g;
|
||||
var WHITESPACE_SUFFIX_PATTERN = /\s+(\))/g;
|
||||
|
||||
var plugin = {
|
||||
level1: {
|
||||
@@ -9,7 +11,10 @@ var plugin = {
|
||||
return value;
|
||||
}
|
||||
|
||||
return value.replace(WHITESPACE_PATTERN, '');
|
||||
return value
|
||||
.replace(WHITESPACE_PATTERN, '')
|
||||
.replace(WHITESPACE_PREFIX_PATTERN, '$1')
|
||||
.replace(WHITESPACE_SUFFIX_PATTERN, '$1');
|
||||
}
|
||||
}
|
||||
};
|
||||
|
10
node_modules/clean-css/lib/optimizer/level-1/value-optimizers/whitespace.js
generated
vendored
10
node_modules/clean-css/lib/optimizer/level-1/value-optimizers/whitespace.js
generated
vendored
@@ -4,9 +4,12 @@ var Marker = require('../../../tokenizer/marker');
|
||||
|
||||
var CALC_DIVISION_WHITESPACE_PATTERN = /\) ?\/ ?/g;
|
||||
var COMMA_AND_SPACE_PATTERN = /, /g;
|
||||
var LINE_BREAK_PATTERN = /\r?\n/g;
|
||||
var MULTI_WHITESPACE_PATTERN = /\s+/g;
|
||||
var FUNCTION_CLOSING_BRACE_WHITESPACE_PATTERN = /\s+(;?\))/g;
|
||||
var FUNCTION_OPENING_BRACE_WHITESPACE_PATTERN = /(\(;?)\s+/g;
|
||||
var VARIABLE_NAME_PATTERN = /^--\S+$/;
|
||||
var VARIABLE_VALUE_PATTERN = /^var\(\s*--\S+\s*\)$/;
|
||||
|
||||
var plugin = {
|
||||
level1: {
|
||||
@@ -15,7 +18,11 @@ var plugin = {
|
||||
return value;
|
||||
}
|
||||
|
||||
if (value.indexOf(' ') == -1 || value.indexOf('expression') === 0) {
|
||||
if (VARIABLE_NAME_PATTERN.test(name) && !VARIABLE_VALUE_PATTERN.test(value)) {
|
||||
return value;
|
||||
}
|
||||
|
||||
if ((value.indexOf(' ') == -1 && value.indexOf('\n') == -1) || value.indexOf('expression') === 0) {
|
||||
return value;
|
||||
}
|
||||
|
||||
@@ -23,6 +30,7 @@ var plugin = {
|
||||
return value;
|
||||
}
|
||||
|
||||
value = value.replace(LINE_BREAK_PATTERN, '');
|
||||
value = value.replace(MULTI_WHITESPACE_PATTERN, ' ');
|
||||
|
||||
if (value.indexOf('calc') > -1) {
|
||||
|
40
node_modules/clean-css/lib/optimizer/level-1/value-optimizers/zero.js
generated
vendored
40
node_modules/clean-css/lib/optimizer/level-1/value-optimizers/zero.js
generated
vendored
@@ -1,4 +1,34 @@
|
||||
var FUNCTION_PATTERN = /^(?:\-moz\-calc|\-webkit\-calc|calc|rgb|hsl|rgba|hsla|min|max|clamp)\(/;
|
||||
var split = require('../../../utils/split');
|
||||
|
||||
var ANY_FUNCTION_PATTERN = /^(-(?:moz|ms|o|webkit)-[a-z-]+|[a-z-]+)\((.+)\)$/;
|
||||
var SKIP_FUNCTION_PATTERN = /^(?:-moz-calc|-webkit-calc|calc|rgb|hsl|rgba|hsla|min|max|clamp|expression)\(/;
|
||||
var TOKEN_SEPARATOR_PATTERN = /([\s,/])/;
|
||||
|
||||
function removeRecursively(value, options) {
|
||||
var functionTokens;
|
||||
var tokens;
|
||||
|
||||
if (SKIP_FUNCTION_PATTERN.test(value)) {
|
||||
return value;
|
||||
}
|
||||
|
||||
functionTokens = ANY_FUNCTION_PATTERN.exec(value);
|
||||
|
||||
if (!functionTokens) {
|
||||
return removeZeros(value, options);
|
||||
}
|
||||
|
||||
tokens = split(functionTokens[2], TOKEN_SEPARATOR_PATTERN)
|
||||
.map(function(token) { return removeRecursively(token, options); });
|
||||
|
||||
return functionTokens[1] + '(' + tokens.join('') + ')';
|
||||
}
|
||||
|
||||
function removeZeros(value, options) {
|
||||
return value
|
||||
.replace(options.unitsRegexp, '$10$2')
|
||||
.replace(options.unitsRegexp, '$10$2');
|
||||
}
|
||||
|
||||
var plugin = {
|
||||
level1: {
|
||||
@@ -7,17 +37,11 @@ var plugin = {
|
||||
return value;
|
||||
}
|
||||
|
||||
if (FUNCTION_PATTERN.test(value)) {
|
||||
return value;
|
||||
}
|
||||
|
||||
if (value.indexOf('%') > 0 && (name == 'height' || name == 'max-height' || name == 'width' || name == 'max-width')) {
|
||||
return value;
|
||||
}
|
||||
|
||||
return value
|
||||
.replace(options.unitsRegexp, '$1' + '0' + '$2')
|
||||
.replace(options.unitsRegexp, '$1' + '0' + '$2');
|
||||
return removeRecursively(value, options);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
Reference in New Issue
Block a user