~smagoun/whoopsie/whoopsie-lp1017637

« back to all changes in this revision

Viewing changes to backend/stats/static/js/yui/build/dom-class/dom-class.js

  • Committer: Evan Dandrea
  • Date: 2012-05-09 05:53:45 UTC
  • Revision ID: evan.dandrea@canonical.com-20120509055345-z2j41tmcbf4as5uf
The backend now lives in lp:daisy and the website (errors.ubuntu.com) now lives in lp:errors.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
/*
2
 
YUI 3.5.0 (build 5089)
3
 
Copyright 2012 Yahoo! Inc. All rights reserved.
4
 
Licensed under the BSD License.
5
 
http://yuilibrary.com/license/
6
 
*/
7
 
YUI.add('dom-class', function(Y) {
8
 
 
9
 
var addClass, hasClass, removeClass;
10
 
 
11
 
Y.mix(Y.DOM, {
12
 
    /**
13
 
     * Determines whether a DOM element has the given className.
14
 
     * @method hasClass
15
 
     * @for DOM
16
 
     * @param {HTMLElement} element The DOM element. 
17
 
     * @param {String} className the class name to search for
18
 
     * @return {Boolean} Whether or not the element has the given class. 
19
 
     */
20
 
    hasClass: function(node, className) {
21
 
        var re = Y.DOM._getRegExp('(?:^|\\s+)' + className + '(?:\\s+|$)');
22
 
        return re.test(node.className);
23
 
    },
24
 
 
25
 
    /**
26
 
     * Adds a class name to a given DOM element.
27
 
     * @method addClass         
28
 
     * @for DOM
29
 
     * @param {HTMLElement} element The DOM element. 
30
 
     * @param {String} className the class name to add to the class attribute
31
 
     */
32
 
    addClass: function(node, className) {
33
 
        if (!Y.DOM.hasClass(node, className)) { // skip if already present 
34
 
            node.className = Y.Lang.trim([node.className, className].join(' '));
35
 
        }
36
 
    },
37
 
 
38
 
    /**
39
 
     * Removes a class name from a given element.
40
 
     * @method removeClass         
41
 
     * @for DOM
42
 
     * @param {HTMLElement} element The DOM element. 
43
 
     * @param {String} className the class name to remove from the class attribute
44
 
     */
45
 
    removeClass: function(node, className) {
46
 
        if (className && hasClass(node, className)) {
47
 
            node.className = Y.Lang.trim(node.className.replace(Y.DOM._getRegExp('(?:^|\\s+)' +
48
 
                            className + '(?:\\s+|$)'), ' '));
49
 
 
50
 
            if ( hasClass(node, className) ) { // in case of multiple adjacent
51
 
                removeClass(node, className);
52
 
            }
53
 
        }                 
54
 
    },
55
 
 
56
 
    /**
57
 
     * Replace a class with another class for a given element.
58
 
     * If no oldClassName is present, the newClassName is simply added.
59
 
     * @method replaceClass  
60
 
     * @for DOM
61
 
     * @param {HTMLElement} element The DOM element 
62
 
     * @param {String} oldClassName the class name to be replaced
63
 
     * @param {String} newClassName the class name that will be replacing the old class name
64
 
     */
65
 
    replaceClass: function(node, oldC, newC) {
66
 
        removeClass(node, oldC); // remove first in case oldC === newC
67
 
        addClass(node, newC);
68
 
    },
69
 
 
70
 
    /**
71
 
     * If the className exists on the node it is removed, if it doesn't exist it is added.
72
 
     * @method toggleClass  
73
 
     * @for DOM
74
 
     * @param {HTMLElement} element The DOM element
75
 
     * @param {String} className the class name to be toggled
76
 
     * @param {Boolean} addClass optional boolean to indicate whether class
77
 
     * should be added or removed regardless of current state
78
 
     */
79
 
    toggleClass: function(node, className, force) {
80
 
        var add = (force !== undefined) ? force :
81
 
                !(hasClass(node, className));
82
 
 
83
 
        if (add) {
84
 
            addClass(node, className);
85
 
        } else {
86
 
            removeClass(node, className);
87
 
        }
88
 
    }
89
 
});
90
 
 
91
 
hasClass = Y.DOM.hasClass;
92
 
removeClass = Y.DOM.removeClass;
93
 
addClass = Y.DOM.addClass;
94
 
 
95
 
 
96
 
 
97
 
}, '3.5.0' ,{requires:['dom-core']});