You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
85 lines
1.8 KiB
85 lines
1.8 KiB
|
3 years ago
|
// Generated by CoffeeScript 1.9.3
|
||
|
|
var _Declaration;
|
||
|
|
|
||
|
|
module.exports = _Declaration = (function() {
|
||
|
|
var self;
|
||
|
|
|
||
|
|
self = _Declaration;
|
||
|
|
|
||
|
|
_Declaration.importantClauseRx = /(\s\!important)$/;
|
||
|
|
|
||
|
|
_Declaration.setOnto = function(declarations, prop, val) {
|
||
|
|
var dec;
|
||
|
|
if (!(dec = declarations[prop])) {
|
||
|
|
return declarations[prop] = new this(prop, val);
|
||
|
|
} else {
|
||
|
|
return dec.set(val);
|
||
|
|
}
|
||
|
|
};
|
||
|
|
|
||
|
|
_Declaration.sanitizeValue = function(val) {
|
||
|
|
return String(val).trim().replace(/[\s]+/g, ' ');
|
||
|
|
};
|
||
|
|
|
||
|
|
_Declaration.inheritAllowed = false;
|
||
|
|
|
||
|
|
function _Declaration(prop1, val) {
|
||
|
|
this.prop = prop1;
|
||
|
|
this.important = false;
|
||
|
|
this.set(val);
|
||
|
|
}
|
||
|
|
|
||
|
|
_Declaration.prototype.get = function() {
|
||
|
|
return this._get();
|
||
|
|
};
|
||
|
|
|
||
|
|
_Declaration.prototype._get = function() {
|
||
|
|
return this.val;
|
||
|
|
};
|
||
|
|
|
||
|
|
_Declaration.prototype._pickImportantClause = function(val) {
|
||
|
|
if (self.importantClauseRx.test(String(val))) {
|
||
|
|
this.important = true;
|
||
|
|
return val.replace(self.importantClauseRx, '');
|
||
|
|
} else {
|
||
|
|
this.important = false;
|
||
|
|
return val;
|
||
|
|
}
|
||
|
|
};
|
||
|
|
|
||
|
|
_Declaration.prototype.set = function(val) {
|
||
|
|
val = self.sanitizeValue(val);
|
||
|
|
val = this._pickImportantClause(val);
|
||
|
|
val = val.trim();
|
||
|
|
if (this._handleNullOrInherit(val)) {
|
||
|
|
return this;
|
||
|
|
}
|
||
|
|
this._set(val);
|
||
|
|
return this;
|
||
|
|
};
|
||
|
|
|
||
|
|
_Declaration.prototype._set = function(val) {
|
||
|
|
return this.val = val;
|
||
|
|
};
|
||
|
|
|
||
|
|
_Declaration.prototype._handleNullOrInherit = function(val) {
|
||
|
|
if (val === '') {
|
||
|
|
this.val = '';
|
||
|
|
return true;
|
||
|
|
}
|
||
|
|
if (val === 'inherit') {
|
||
|
|
if (this.constructor.inheritAllowed) {
|
||
|
|
this.val = 'inherit';
|
||
|
|
} else {
|
||
|
|
throw Error("Inherit is not allowed for `" + this.prop + "`");
|
||
|
|
}
|
||
|
|
return true;
|
||
|
|
} else {
|
||
|
|
return false;
|
||
|
|
}
|
||
|
|
};
|
||
|
|
|
||
|
|
return _Declaration;
|
||
|
|
|
||
|
|
})();
|