unignore bower_components
[bootswatch] / 2 / bower_components / bootstrap / docs / assets / js / bootstrap-alert.js
1 /* ==========================================================
2  * bootstrap-alert.js v2.3.2
3  * http://twbs.github.com/bootstrap/javascript.html#alerts
4  * ==========================================================
5  * Copyright 2013 Twitter, Inc.
6  *
7  * Licensed under the Apache License, Version 2.0 (the "License");
8  * you may not use this file except in compliance with the License.
9  * You may obtain a copy of the License at
10  *
11  * http://www.apache.org/licenses/LICENSE-2.0
12  *
13  * Unless required by applicable law or agreed to in writing, software
14  * distributed under the License is distributed on an "AS IS" BASIS,
15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16  * See the License for the specific language governing permissions and
17  * limitations under the License.
18  * ========================================================== */
19
20
21 !function ($) {
22
23   "use strict"; // jshint ;_;
24
25
26  /* ALERT CLASS DEFINITION
27   * ====================== */
28
29   var dismiss = '[data-dismiss="alert"]'
30     , Alert = function (el) {
31         $(el).on('click', dismiss, this.close)
32       }
33
34   Alert.prototype.close = function (e) {
35     var $this = $(this)
36       , selector = $this.attr('data-target')
37       , $parent
38
39     if (!selector) {
40       selector = $this.attr('href')
41       selector = selector && selector.replace(/.*(?=#[^\s]*$)/, '') //strip for ie7
42     }
43
44     $parent = $(selector)
45
46     e && e.preventDefault()
47
48     $parent.length || ($parent = $this.hasClass('alert') ? $this : $this.parent())
49
50     $parent.trigger(e = $.Event('close'))
51
52     if (e.isDefaultPrevented()) return
53
54     $parent.removeClass('in')
55
56     function removeElement() {
57       $parent
58         .trigger('closed')
59         .remove()
60     }
61
62     $.support.transition && $parent.hasClass('fade') ?
63       $parent.on($.support.transition.end, removeElement) :
64       removeElement()
65   }
66
67
68  /* ALERT PLUGIN DEFINITION
69   * ======================= */
70
71   var old = $.fn.alert
72
73   $.fn.alert = function (option) {
74     return this.each(function () {
75       var $this = $(this)
76         , data = $this.data('alert')
77       if (!data) $this.data('alert', (data = new Alert(this)))
78       if (typeof option == 'string') data[option].call($this)
79     })
80   }
81
82   $.fn.alert.Constructor = Alert
83
84
85  /* ALERT NO CONFLICT
86   * ================= */
87
88   $.fn.alert.noConflict = function () {
89     $.fn.alert = old
90     return this
91   }
92
93
94  /* ALERT DATA-API
95   * ============== */
96
97   $(document).on('click.alert.data-api', dismiss, Alert.prototype.close)
98
99 }(window.jQuery);