source: trip-planner-front/node_modules/bootstrap/js/tab.js@ eed0bf8

Last change on this file since eed0bf8 was fa375fe, checked in by Ema <ema_spirova@…>, 3 years ago

adding new components

  • Property mode set to 100644
File size: 3.8 KB
Line 
1/* ========================================================================
2 * Bootstrap: tab.js v3.4.1
3 * https://getbootstrap.com/docs/3.4/javascript/#tabs
4 * ========================================================================
5 * Copyright 2011-2019 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.4.1'
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 = $(document).find(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);
Note: See TracBrowser for help on using the repository browser.