Server : nginx/1.18.0 System : Linux localhost 6.14.3-x86_64-linode168 #1 SMP PREEMPT_DYNAMIC Mon Apr 21 19:47:55 EDT 2025 x86_64 User : www-data ( 33) PHP Version : 8.0.16 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare, Directory : /var/www/ecommerce/node_modules/clean-css/lib/options/ |
var override = require('../utils/override');
var INTEGER_PATTERN = /^\d+$/;
var ALL_UNITS = ['*', 'all'];
var DEFAULT_PRECISION = 'off'; // all precision changes are disabled
var DIRECTIVES_SEPARATOR = ','; // e.g. *=5,px=3
var DIRECTIVE_VALUE_SEPARATOR = '='; // e.g. *=5
function roundingPrecisionFrom(source) {
return override(defaults(DEFAULT_PRECISION), buildPrecisionFrom(source));
}
function defaults(value) {
return {
'ch': value,
'cm': value,
'em': value,
'ex': value,
'in': value,
'mm': value,
'pc': value,
'pt': value,
'px': value,
'q': value,
'rem': value,
'vh': value,
'vmax': value,
'vmin': value,
'vw': value,
'%': value
};
}
function buildPrecisionFrom(source) {
if (source === null || source === undefined) {
return {};
}
if (typeof source == 'boolean') {
return {};
}
if (typeof source == 'number' && source == -1) {
return defaults(DEFAULT_PRECISION);
}
if (typeof source == 'number') {
return defaults(source);
}
if (typeof source == 'string' && INTEGER_PATTERN.test(source)) {
return defaults(parseInt(source));
}
if (typeof source == 'string' && source == DEFAULT_PRECISION) {
return defaults(DEFAULT_PRECISION);
}
if (typeof source == 'object') {
return source;
}
return source
.split(DIRECTIVES_SEPARATOR)
.reduce(function (accumulator, directive) {
var directiveParts = directive.split(DIRECTIVE_VALUE_SEPARATOR);
var name = directiveParts[0];
var value = parseInt(directiveParts[1]);
if (isNaN(value) || value == -1) {
value = DEFAULT_PRECISION;
}
if (ALL_UNITS.indexOf(name) > -1) {
accumulator = override(accumulator, defaults(value));
} else {
accumulator[name] = value;
}
return accumulator;
}, {});
}
module.exports = {
DEFAULT: DEFAULT_PRECISION,
roundingPrecisionFrom: roundingPrecisionFrom
};