PageSourceSearch

https://www.pflanzenforschung.de/application/themes/plant/resources/bootstrap-3.3.7/js/tab.js

js pflanzenforschung.de collected 2026-09-24 08:58:12 UTC 3,905 bytes, 155 lines download raw bytes

vendor: 3,905 bytes, lines 1-155
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);

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.