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.
78 lines
1.8 KiB
78 lines
1.8 KiB
// Generated by CoffeeScript 1.9.3 |
|
var MixedDeclarationSet, |
|
slice = [].slice; |
|
|
|
module.exports = MixedDeclarationSet = (function() { |
|
var self; |
|
|
|
self = MixedDeclarationSet; |
|
|
|
MixedDeclarationSet.mix = function() { |
|
var i, len, mixed, ruleSets, rules; |
|
ruleSets = 1 <= arguments.length ? slice.call(arguments, 0) : []; |
|
mixed = new self; |
|
for (i = 0, len = ruleSets.length; i < len; i++) { |
|
rules = ruleSets[i]; |
|
mixed.mixWithList(rules); |
|
} |
|
return mixed; |
|
}; |
|
|
|
function MixedDeclarationSet() { |
|
this._declarations = {}; |
|
} |
|
|
|
MixedDeclarationSet.prototype.mixWithList = function(rules) { |
|
var i, len, rule; |
|
rules.sort(function(a, b) { |
|
return a.selector.priority > b.selector.priority; |
|
}); |
|
for (i = 0, len = rules.length; i < len; i++) { |
|
rule = rules[i]; |
|
this._mixWithRule(rule); |
|
} |
|
return this; |
|
}; |
|
|
|
MixedDeclarationSet.prototype._mixWithRule = function(rule) { |
|
var dec, prop, ref; |
|
ref = rule.styles._declarations; |
|
for (prop in ref) { |
|
dec = ref[prop]; |
|
this._mixWithDeclaration(dec); |
|
} |
|
}; |
|
|
|
MixedDeclarationSet.prototype._mixWithDeclaration = function(dec) { |
|
var cur; |
|
cur = this._declarations[dec.prop]; |
|
if ((cur != null) && cur.important && !dec.important) { |
|
return; |
|
} |
|
this._declarations[dec.prop] = dec; |
|
}; |
|
|
|
MixedDeclarationSet.prototype.get = function(prop) { |
|
if (prop == null) { |
|
return this._declarations; |
|
} |
|
if (this._declarations[prop] == null) { |
|
return null; |
|
} |
|
return this._declarations[prop].val; |
|
}; |
|
|
|
MixedDeclarationSet.prototype.toObject = function() { |
|
var dec, obj, prop, ref; |
|
obj = {}; |
|
ref = this._declarations; |
|
for (prop in ref) { |
|
dec = ref[prop]; |
|
obj[prop] = dec.val; |
|
} |
|
return obj; |
|
}; |
|
|
|
return MixedDeclarationSet; |
|
|
|
})();
|
|
|