From 421e36135098eed946e8f052a35a5013d5f19947 Mon Sep 17 00:00:00 2001 From: Ben Morton Date: Sat, 20 May 2017 19:32:02 +0100 Subject: [PATCH] Add support for multiple class names in utils add/remove class methods. (#3079) * Add support for multiple class names in utils add/remove class methods. Reset subgroup heights in resetSubgroups method. * Adjust to better process class names --- lib/timeline/component/Group.js | 1 + lib/util.js | 23 ++++++++++++----------- 2 files changed, 13 insertions(+), 11 deletions(-) diff --git a/lib/timeline/component/Group.js b/lib/timeline/component/Group.js index 095262ea..2a6d550b 100644 --- a/lib/timeline/component/Group.js +++ b/lib/timeline/component/Group.js @@ -534,6 +534,7 @@ Group.prototype.resetSubgroups = function() { for (var subgroup in this.subgroups) { if (this.subgroups.hasOwnProperty(subgroup)) { this.subgroups[subgroup].visible = false; + this.subgroups[subgroup].height = 0; } } }; diff --git a/lib/util.js b/lib/util.js index 24e2641a..426fc854 100644 --- a/lib/util.js +++ b/lib/util.js @@ -621,12 +621,13 @@ exports.getAbsoluteTop = function (elem) { * @param {Element} elem * @param {String} className */ -exports.addClassName = function (elem, className) { +exports.addClassName = function (elem, classNames) { var classes = elem.className.split(' '); - if (classes.indexOf(className) == -1) { - classes.push(className); // add the class to the array - elem.className = classes.join(' '); - } + var newClasses = classNames.split(' '); + classes = classes.concat(newClasses.filter(function(className) { + return classes.indexOf(className) < 0; + })); + elem.className = classes.join(' '); }; /** @@ -634,13 +635,13 @@ exports.addClassName = function (elem, className) { * @param {Element} elem * @param {String} className */ -exports.removeClassName = function (elem, className) { +exports.removeClassName = function (elem, classNames) { var classes = elem.className.split(' '); - var index = classes.indexOf(className); - if (index != -1) { - classes.splice(index, 1); // remove the class from the array - elem.className = classes.join(' '); - } + var oldClasses = classNames.split(' '); + classes = classes.filter(function(className) { + return oldClasses.indexOf(className) < 0; + }); + elem.className = classes.join(' '); }; /**