corrade-nucleus-nucleons – Blame information for rev 20

Subversion Repositories:
Rev:
Rev Author Line No. Line
20 office 1 /* ========================================================================
2 * Bootstrap: tab.js v3.3.7
3 * http://getbootstrap.com/javascript/#tabs
4 * ========================================================================
5 * Copyright 2011-2016 Twitter, Inc.
6 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
7 * ======================================================================== */
8  
9  
10 +function ($) {
11 'use strict';
12  
13 // TAB CLASS DEFINITION
14 // ====================
15  
16 var Tab = function (element) {
17 // jscs:disable requireDollarBeforejQueryAssignment
18 this.element = $(element)
19 // jscs:enable requireDollarBeforejQueryAssignment
20 }
21  
22 Tab.VERSION = '3.3.7'
23  
24 Tab.TRANSITION_DURATION = 150
25  
26 Tab.prototype.show = function () {
27 var $this = this.element
28 var $ul = $this.closest('ul:not(.dropdown-menu)')
29 var selector = $this.data('target')
30  
31 if (!selector) {
32 selector = $this.attr('href')
33 selector = selector && selector.replace(/.*(?=#[^\s]*$)/, '') // strip for ie7
34 }
35  
36 if ($this.parent('li').hasClass('active')) return
37  
38 var $previous = $ul.find('.active:last a')
39 var hideEvent = $.Event('hide.bs.tab', {
40 relatedTarget: $this[0]
41 })
42 var showEvent = $.Event('show.bs.tab', {
43 relatedTarget: $previous[0]
44 })
45  
46 $previous.trigger(hideEvent)
47 $this.trigger(showEvent)
48  
49 if (showEvent.isDefaultPrevented() || hideEvent.isDefaultPrevented()) return
50  
51 var $target = $(selector)
52  
53 this.activate($this.closest('li'), $ul)
54 this.activate($target, $target.parent(), function () {
55 $previous.trigger({
56 type: 'hidden.bs.tab',
57 relatedTarget: $this[0]
58 })
59 $this.trigger({
60 type: 'shown.bs.tab',
61 relatedTarget: $previous[0]
62 })
63 })
64 }
65  
66 Tab.prototype.activate = function (element, container, callback) {
67 var $active = container.find('> .active')
68 var transition = callback
69 && $.support.transition
70 && ($active.length && $active.hasClass('fade') || !!container.find('> .fade').length)
71  
72 function next() {
73 $active
74 .removeClass('active')
75 .find('> .dropdown-menu > .active')
76 .removeClass('active')
77 .end()
78 .find('[data-toggle="tab"]')
79 .attr('aria-expanded', false)
80  
81 element
82 .addClass('active')
83 .find('[data-toggle="tab"]')
84 .attr('aria-expanded', true)
85  
86 if (transition) {
87 element[0].offsetWidth // reflow for transition
88 element.addClass('in')
89 } else {
90 element.removeClass('fade')
91 }
92  
93 if (element.parent('.dropdown-menu').length) {
94 element
95 .closest('li.dropdown')
96 .addClass('active')
97 .end()
98 .find('[data-toggle="tab"]')
99 .attr('aria-expanded', true)
100 }
101  
102 callback && callback()
103 }
104  
105 $active.length && transition ?
106 $active
107 .one('bsTransitionEnd', next)
108 .emulateTransitionEnd(Tab.TRANSITION_DURATION) :
109 next()
110  
111 $active.removeClass('in')
112 }
113  
114  
115 // TAB PLUGIN DEFINITION
116 // =====================
117  
118 function Plugin(option) {
119 return this.each(function () {
120 var $this = $(this)
121 var data = $this.data('bs.tab')
122  
123 if (!data) $this.data('bs.tab', (data = new Tab(this)))
124 if (typeof option == 'string') data[option]()
125 })
126 }
127  
128 var old = $.fn.tab
129  
130 $.fn.tab = Plugin
131 $.fn.tab.Constructor = Tab
132  
133  
134 // TAB NO CONFLICT
135 // ===============
136  
137 $.fn.tab.noConflict = function () {
138 $.fn.tab = old
139 return this
140 }
141  
142  
143 // TAB DATA-API
144 // ============
145  
146 var clickHandler = function (e) {
147 e.preventDefault()
148 Plugin.call($(this), 'show')
149 }
150  
151 $(document)
152 .on('click.bs.tab.data-api', '[data-toggle="tab"]', clickHandler)
153 .on('click.bs.tab.data-api', '[data-toggle="pill"]', clickHandler)
154  
155 }(jQuery);