Tab layout, first commit with new third party packages
[openemr.git] / public / assets / knockout-3-4-0 / src / binding / defaultBindings / css.js
blob9cccb0e19c1d1025e587e1aada599c18e9be41c4
1 var classesWrittenByBindingKey = '__ko__cssValue';
2 ko.bindingHandlers['css'] = {
3     'update': function (element, valueAccessor) {
4         var value = ko.utils.unwrapObservable(valueAccessor());
5         if (value !== null && typeof value == "object") {
6             ko.utils.objectForEach(value, function(className, shouldHaveClass) {
7                 shouldHaveClass = ko.utils.unwrapObservable(shouldHaveClass);
8                 ko.utils.toggleDomNodeCssClass(element, className, shouldHaveClass);
9             });
10         } else {
11             value = ko.utils.stringTrim(String(value || '')); // Make sure we don't try to store or set a non-string value
12             ko.utils.toggleDomNodeCssClass(element, element[classesWrittenByBindingKey], false);
13             element[classesWrittenByBindingKey] = value;
14             ko.utils.toggleDomNodeCssClass(element, value, true);
15         }
16     }