var ScriptAttribute = require("./script");
/**
*/
module.exports = ScriptAttribute.extend({
/**
*/
update: function() {
var classes = this.currentValue;
if (typeof classes === "string") {
return this.node.setAttribute("class", classes);
}
Eif (!classes) {
return this.node.removeAttribute("class");
}
var classesToUse = this.node.getAttribute("class");
classesToUse = classesToUse ? classesToUse.split(" ") : [];
for (var classNames in classes) {
var useClass = classes[classNames];
var classNamesArray = classNames.split(/[,\s]+/g);
for (var i = 0, n = classNamesArray.length; i < n; i++) {
var className = classNamesArray[i];
var j = classesToUse.indexOf(className);
if (useClass) {
if (!~j) {
classesToUse.push(className);
}
} else if (~j) {
classesToUse.splice(j, 1);
}
}
}
this.node.setAttribute("class", classesToUse.join(" "));
}
});
module.exports.test = function(value) {
return typeof value === "object" && !value.buffered;
};
|