summaryrefslogtreecommitdiff
path: root/lib/dojo/dom-class.js.uncompressed.js
diff options
context:
space:
mode:
Diffstat (limited to 'lib/dojo/dom-class.js.uncompressed.js')
-rw-r--r--lib/dojo/dom-class.js.uncompressed.js326
1 files changed, 0 insertions, 326 deletions
diff --git a/lib/dojo/dom-class.js.uncompressed.js b/lib/dojo/dom-class.js.uncompressed.js
deleted file mode 100644
index c42d434dd..000000000
--- a/lib/dojo/dom-class.js.uncompressed.js
+++ /dev/null
@@ -1,326 +0,0 @@
-define("dojo/dom-class", ["./_base/lang", "./_base/array", "./dom"], function(lang, array, dom){
- // module:
- // dojo/dom-class
-
- var className = "className";
-
- /* Part I of classList-based implementation is preserved here for posterity
- var classList = "classList";
- has.add("dom-classList", function(){
- return classList in document.createElement("p");
- });
- */
-
- // =============================
- // (CSS) Class Functions
- // =============================
-
- var cls, // exports object
- spaces = /\s+/, a1 = [""];
-
- function str2array(s){
- if(typeof s == "string" || s instanceof String){
- if(s && !spaces.test(s)){
- a1[0] = s;
- return a1;
- }
- var a = s.split(spaces);
- if(a.length && !a[0]){
- a.shift();
- }
- if(a.length && !a[a.length - 1]){
- a.pop();
- }
- return a;
- }
- // assumed to be an array
- if(!s){
- return [];
- }
- return array.filter(s, function(x){ return x; });
- }
-
- /* Part II of classList-based implementation is preserved here for posterity
- if(has("dom-classList")){
- // new classList version
- cls = {
- contains: function containsClass(node, classStr){
- var clslst = classStr && dom.byId(node)[classList];
- return clslst && clslst.contains(classStr); // Boolean
- },
-
- add: function addClass(node, classStr){
- node = dom.byId(node);
- classStr = str2array(classStr);
- for(var i = 0, len = classStr.length; i < len; ++i){
- node[classList].add(classStr[i]);
- }
- },
-
- remove: function removeClass(node, classStr){
- node = dom.byId(node);
- if(classStr === undefined){
- node[className] = "";
- }else{
- classStr = str2array(classStr);
- for(var i = 0, len = classStr.length; i < len; ++i){
- node[classList].remove(classStr[i]);
- }
- }
- },
-
- replace: function replaceClass(node, addClassStr, removeClassStr){
- node = dom.byId(node);
- if(removeClassStr === undefined){
- node[className] = "";
- }else{
- removeClassStr = str2array(removeClassStr);
- for(var i = 0, len = removeClassStr.length; i < len; ++i){
- node[classList].remove(removeClassStr[i]);
- }
- }
- addClassStr = str2array(addClassStr);
- for(i = 0, len = addClassStr.length; i < len; ++i){
- node[classList].add(addClassStr[i]);
- }
- },
-
- toggle: function toggleClass(node, classStr, condition){
- node = dom.byId(node);
- if(condition === undefined){
- classStr = str2array(classStr);
- for(var i = 0, len = classStr.length; i < len; ++i){
- node[classList].toggle(classStr[i]);
- }
- }else{
- cls[condition ? "add" : "remove"](node, classStr);
- }
- return condition; // Boolean
- }
- }
- }
- */
-
- // regular DOM version
- var fakeNode = {}; // for effective replacement
- cls = {
- // summary:
- // This module defines the core dojo DOM class API.
-
- contains: function containsClass(/*DomNode|String*/ node, /*String*/ classStr){
- // summary:
- // Returns whether or not the specified classes are a portion of the
- // class list currently applied to the node.
- // node: String|DOMNode
- // String ID or DomNode reference to check the class for.
- // classStr: String
- // A string class name to look for.
- // example:
- // Do something if a node with id="someNode" has class="aSillyClassName" present
- // | if(dojo.hasClass("someNode","aSillyClassName")){ ... }
-
- return ((" " + dom.byId(node)[className] + " ").indexOf(" " + classStr + " ") >= 0); // Boolean
- },
-
- add: function addClass(/*DomNode|String*/ node, /*String|Array*/ classStr){
- // summary:
- // Adds the specified classes to the end of the class list on the
- // passed node. Will not re-apply duplicate classes.
- //
- // node: String|DOMNode
- // String ID or DomNode reference to add a class string too
- //
- // classStr: String|Array
- // A String class name to add, or several space-separated class names,
- // or an array of class names.
- //
- // example:
- // Add a class to some node:
- // | require(["dojo/dom-class"], function(domClass){
- // | domClass.add("someNode", "anewClass");
- // | });
- //
- // example:
- // Add two classes at once:
- // | require(["dojo/dom-class"], function(domClass){
- // | domClass.add("someNode", "firstClass secondClass");
- // | });
- //
- // example:
- // Add two classes at once (using array):
- // | require(["dojo/dom-class"], function(domClass){
- // | domClass.add("someNode", ["firstClass", "secondClass"]);
- // | });
- //
- // example:
- // Available in `dojo/NodeList` for multiple additions
- // | require(["dojo/query"], function(query){
- // | query("ul > li").addClass("firstLevel");
- // | });
-
- node = dom.byId(node);
- classStr = str2array(classStr);
- var cls = node[className], oldLen;
- cls = cls ? " " + cls + " " : " ";
- oldLen = cls.length;
- for(var i = 0, len = classStr.length, c; i < len; ++i){
- c = classStr[i];
- if(c && cls.indexOf(" " + c + " ") < 0){
- cls += c + " ";
- }
- }
- if(oldLen < cls.length){
- node[className] = cls.substr(1, cls.length - 2);
- }
- },
-
- remove: function removeClass(/*DomNode|String*/ node, /*String|Array?*/ classStr){
- // summary:
- // Removes the specified classes from node. No `contains()`
- // check is required.
- //
- // node: String|DOMNode
- // String ID or DomNode reference to remove the class from.
- //
- // classStr: String|Array
- // An optional String class name to remove, or several space-separated
- // class names, or an array of class names. If omitted, all class names
- // will be deleted.
- //
- // example:
- // Remove a class from some node:
- // | require(["dojo/dom-class"], function(domClass){
- // | domClass.remove("someNode", "firstClass");
- // | });
- //
- // example:
- // Remove two classes from some node:
- // | require(["dojo/dom-class"], function(domClass){
- // | domClass.remove("someNode", "firstClass secondClass");
- // | });
- //
- // example:
- // Remove two classes from some node (using array):
- // | require(["dojo/dom-class"], function(domClass){
- // | domClass.remove("someNode", ["firstClass", "secondClass"]);
- // | });
- //
- // example:
- // Remove all classes from some node:
- // | require(["dojo/dom-class"], function(domClass){
- // | domClass.remove("someNode");
- // | });
- //
- // example:
- // Available in `dojo/NodeList` for multiple removal
- // | require(["dojo/query"], function(query){
- // | query("ul > li").removeClass("foo");
- // | });
-
- node = dom.byId(node);
- var cls;
- if(classStr !== undefined){
- classStr = str2array(classStr);
- cls = " " + node[className] + " ";
- for(var i = 0, len = classStr.length; i < len; ++i){
- cls = cls.replace(" " + classStr[i] + " ", " ");
- }
- cls = lang.trim(cls);
- }else{
- cls = "";
- }
- if(node[className] != cls){ node[className] = cls; }
- },
-
- replace: function replaceClass(/*DomNode|String*/ node, /*String|Array*/ addClassStr, /*String|Array?*/ removeClassStr){
- // summary:
- // Replaces one or more classes on a node if not present.
- // Operates more quickly than calling dojo.removeClass and dojo.addClass
- //
- // node: String|DOMNode
- // String ID or DomNode reference to remove the class from.
- //
- // addClassStr: String|Array
- // A String class name to add, or several space-separated class names,
- // or an array of class names.
- //
- // removeClassStr: String|Array?
- // A String class name to remove, or several space-separated class names,
- // or an array of class names.
- //
- // example:
- // | require(["dojo/dom-class"], function(domClass){
- // | domClass.replace("someNode", "add1 add2", "remove1 remove2");
- // | });
- //
- // example:
- // Replace all classes with addMe
- // | require(["dojo/dom-class"], function(domClass){
- // | domClass.replace("someNode", "addMe");
- // | });
- //
- // example:
- // Available in `dojo/NodeList` for multiple toggles
- // | require(["dojo/query"], function(query){
- // | query(".findMe").replaceClass("addMe", "removeMe");
- // | });
-
- node = dom.byId(node);
- fakeNode[className] = node[className];
- cls.remove(fakeNode, removeClassStr);
- cls.add(fakeNode, addClassStr);
- if(node[className] !== fakeNode[className]){
- node[className] = fakeNode[className];
- }
- },
-
- toggle: function toggleClass(/*DomNode|String*/ node, /*String|Array*/ classStr, /*Boolean?*/ condition){
- // summary:
- // Adds a class to node if not present, or removes if present.
- // Pass a boolean condition if you want to explicitly add or remove.
- // Returns the condition that was specified directly or indirectly.
- //
- // node: String|DOMNode
- // String ID or DomNode reference to toggle a class string
- //
- // classStr: String|Array
- // A String class name to toggle, or several space-separated class names,
- // or an array of class names.
- //
- // condition:
- // If passed, true means to add the class, false means to remove.
- // Otherwise dojo.hasClass(node, classStr) is used to detect the class presence.
- //
- // example:
- // | require(["dojo/dom-class"], function(domClass){
- // | domClass.toggle("someNode", "hovered");
- // | });
- //
- // example:
- // Forcefully add a class
- // | require(["dojo/dom-class"], function(domClass){
- // | domClass.toggle("someNode", "hovered", true);
- // | });
- //
- // example:
- // Available in `dojo/NodeList` for multiple toggles
- // | require(["dojo/query"], function(query){
- // | query(".toggleMe").toggleClass("toggleMe");
- // | });
-
- node = dom.byId(node);
- if(condition === undefined){
- classStr = str2array(classStr);
- for(var i = 0, len = classStr.length, c; i < len; ++i){
- c = classStr[i];
- cls[cls.contains(node, c) ? "remove" : "add"](node, c);
- }
- }else{
- cls[condition ? "add" : "remove"](node, classStr);
- }
- return condition; // Boolean
- }
- };
-
- return cls;
-});