39 lines
855 B
JavaScript
39 lines
855 B
JavaScript
'use strict';
|
|
|
|
function hasImportant (rawDecl) {
|
|
var parts = rawDecl.split(' ');
|
|
|
|
for (var i = 0; i < parts.length; i++) {
|
|
var part = parts[i].trim();
|
|
|
|
if (part === '!important') return true;
|
|
}
|
|
|
|
return false;
|
|
}
|
|
|
|
exports.addon = function (renderer) {
|
|
var decl = renderer.decl;
|
|
|
|
renderer.decl = function (prop, value) {
|
|
var rawDecl = decl(prop, value);
|
|
var decls = rawDecl.split(';');
|
|
var css = '';
|
|
|
|
for (var i = 0; i < decls.length; i++) {
|
|
rawDecl = decls[i].trim();
|
|
|
|
if (!rawDecl) continue;
|
|
|
|
// Don't add "!important" if it is already added.
|
|
if (!hasImportant(rawDecl)) {
|
|
css += rawDecl + ' !important;';
|
|
} else {
|
|
css += rawDecl + ';';
|
|
}
|
|
}
|
|
|
|
return css;
|
|
};
|
|
};
|