1!function ($) { 2 3 "use strict"; // jshint ;_; 4 5 6 /* CSS TRANSITION SUPPORT (http://www.modernizr.com/) 7 * ======================================================= */ 8 9 $(function () { 10 11 $.support.transition = (function () { 12 13 var transitionEnd = (function () { 14 15 var el = document.createElement('bootstrap') 16 , transEndEventNames = { 17 'WebkitTransition' : 'webkitTransitionEnd' 18 , 'MozTransition' : 'transitionend' 19 , 'OTransition' : 'oTransitionEnd otransitionend' 20 , 'transition' : 'transitionend' 21 } 22 , name 23 24 for (name in transEndEventNames){ 25 if (el.style[name] !== undefined) { 26 return transEndEventNames[name] 27 } 28 } 29 30 }()) 31 32 return transitionEnd && { 33 end: transitionEnd 34 } 35 36 })() 37 38 }) 39 40}(window.jQuery); 41 42/* ======================================================== 43 * bootstrap-tab.js v2.3.2 44 * http://twitter.github.com/bootstrap/javascript.html#tabs 45 * ======================================================== 46 * Copyright 2012 Twitter, Inc. 47 * 48 * Licensed under the Apache License, Version 2.0 (the "License"); 49 * you may not use this file except in compliance with the License. 50 * You may obtain a copy of the License at 51 * 52 * http://www.apache.org/licenses/LICENSE-2.0 53 * 54 * Unless required by applicable law or agreed to in writing, software 55 * distributed under the License is distributed on an "AS IS" BASIS, 56 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 57 * See the License for the specific language governing permissions and 58 * limitations under the License. 59 * ======================================================== */ 60 61 62!function ($) { 63 64 "use strict"; // jshint ;_; 65 66 67 /* TAB CLASS DEFINITION 68 * ==================== */ 69 70 var Tab = function (element) { 71 this.element = $(element) 72 } 73 74 Tab.prototype = { 75 76 constructor: Tab 77 78 , show: function () { 79 var $this = this.element 80 , $ul = $this.closest('ul:not(.dropdown-menu)') 81 , selector = $this.attr('data-target') 82 , previous 83 , $target 84 , e 85 86 if (!selector) { 87 selector = $this.attr('href') 88 selector = selector && selector.replace(/.*(?=#[^\s]*$)/, '') //strip for ie7 89 } 90 91 if ( $this.parent('li').hasClass('active') ) return 92 93 previous = $ul.find('.active:last a')[0] 94 95 e = $.Event('show', { 96 relatedTarget: previous 97 }) 98 99 $this.trigger(e) 100 101 if (e.isDefaultPrevented()) return 102 103 $target = $(selector) 104 105 this.activate($this.parent('li'), $ul) 106 this.activate($target, $target.parent(), function () { 107 $this.trigger({ 108 type: 'shown' 109 , relatedTarget: previous 110 }) 111 }) 112 } 113 114 , activate: function ( element, container, callback) { 115 var $active = container.find('> .active') 116 , transition = callback 117 && $.support.transition 118 && $active.hasClass('fade') 119 120 function next() { 121 $active 122 .removeClass('active') 123 .find('> .dropdown-menu > .active') 124 .removeClass('active') 125 126 element.addClass('active') 127 128 if (transition) { 129 element[0].offsetWidth // reflow for transition 130 element.addClass('in') 131 } else { 132 element.removeClass('fade') 133 } 134 135 if ( element.parent('.dropdown-menu') ) { 136 element.closest('li.dropdown').addClass('active') 137 } 138 139 callback && callback() 140 } 141 142 transition ? 143 $active.one($.support.transition.end, next) : 144 next() 145 146 $active.removeClass('in') 147 } 148 } 149 150 151 /* TAB PLUGIN DEFINITION 152 * ===================== */ 153 154 var old = $.fn.tab 155 156 $.fn.tab = function ( option ) { 157 return this.each(function () { 158 var $this = $(this) 159 , data = $this.data('tab') 160 if (!data) $this.data('tab', (data = new Tab(this))) 161 if (typeof option == 'string') data[option]() 162 }) 163 } 164 165 $.fn.tab.Constructor = Tab 166 167 168 /* TAB NO CONFLICT 169 * =============== */ 170 171 $.fn.tab.noConflict = function () { 172 $.fn.tab = old 173 return this 174 } 175 176 177 /* TAB DATA-API 178 * ============ */ 179 180 $(document).on('click.tab.data-api', '[data-toggle="tab"], [data-toggle="pill"]', function (e) { 181 e.preventDefault() 182 $(this).tab('show') 183 }) 184 185}(window.jQuery);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.