]>
git.ipfire.org Git - ipfire.org.git/blob - src/scss/bootstrap-4.0.0-alpha.6/js/dist/tab.js
1 var _createClass = function () { function defineProperties(target
, props
) { for (var i
= 0; i
< props
.length
; i
++) { var descriptor
= props
[i
]; descriptor
.enumerable
= descriptor
.enumerable
|| false; descriptor
.configurable
= true; if ("value" in descriptor
) descriptor
.writable
= true; Object
.defineProperty(target
, descriptor
.key
, descriptor
); } } return function (Constructor
, protoProps
, staticProps
) { if (protoProps
) defineProperties(Constructor
.prototype, protoProps
); if (staticProps
) defineProperties(Constructor
, staticProps
); return Constructor
; }; }();
3 function _classCallCheck(instance
, Constructor
) { if (!(instance
instanceof Constructor
)) { throw new TypeError("Cannot call a class as a function"); } }
6 * --------------------------------------------------------------------------
7 * Bootstrap (v4.0.0-alpha.6): tab.js
8 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
9 * --------------------------------------------------------------------------
12 var Tab = function ($) {
15 * ------------------------------------------------------------------------
17 * ------------------------------------------------------------------------
21 var VERSION
= '4.0.0-alpha.6';
22 var DATA_KEY
= 'bs.tab';
23 var EVENT_KEY
= '.' + DATA_KEY
;
24 var DATA_API_KEY
= '.data-api';
25 var JQUERY_NO_CONFLICT
= $.fn
[NAME
];
26 var TRANSITION_DURATION
= 150;
29 HIDE
: 'hide' + EVENT_KEY
,
30 HIDDEN
: 'hidden' + EVENT_KEY
,
31 SHOW
: 'show' + EVENT_KEY
,
32 SHOWN
: 'shown' + EVENT_KEY
,
33 CLICK_DATA_API
: 'click' + EVENT_KEY
+ DATA_API_KEY
37 DROPDOWN_MENU
: 'dropdown-menu',
47 DROPDOWN
: '.dropdown',
48 LIST
: 'ul:not(.dropdown-menu), ol:not(.dropdown-menu), nav:not(.dropdown-menu)',
49 FADE_CHILD
: '> .nav-item .fade, > .fade',
51 ACTIVE_CHILD
: '> .nav-item > .active, > .active',
52 DATA_TOGGLE
: '[data-toggle="tab"], [data-toggle="pill"]',
53 DROPDOWN_TOGGLE
: '.dropdown-toggle',
54 DROPDOWN_ACTIVE_CHILD
: '> .dropdown-menu .active'
58 * ------------------------------------------------------------------------
60 * ------------------------------------------------------------------------
63 var Tab = function () {
64 function Tab(element
) {
65 _classCallCheck(this, Tab
);
67 this._element
= element
;
74 Tab
.prototype.show
= function show() {
77 if (this._element
.parentNode
&& this._element
.parentNode
.nodeType
=== Node
.ELEMENT_NODE
&& $(this._element
).hasClass(ClassName
.ACTIVE
) || $(this._element
).hasClass(ClassName
.DISABLED
)) {
82 var previous
= void 0;
83 var listElement
= $(this._element
).closest(Selector
.LIST
)[0];
84 var selector
= Util
.getSelectorFromElement(this._element
);
87 previous
= $.makeArray($(listElement
).find(Selector
.ACTIVE
));
88 previous
= previous
[previous
.length
- 1];
91 var hideEvent
= $.Event(Event
.HIDE
, {
92 relatedTarget
: this._element
95 var showEvent
= $.Event(Event
.SHOW
, {
96 relatedTarget
: previous
100 $(previous
).trigger(hideEvent
);
103 $(this._element
).trigger(showEvent
);
105 if (showEvent
.isDefaultPrevented() || hideEvent
.isDefaultPrevented()) {
110 target
= $(selector
)[0];
113 this._activate(this._element
, listElement
);
115 var complete
= function complete() {
116 var hiddenEvent
= $.Event(Event
.HIDDEN
, {
117 relatedTarget
: _this
._element
120 var shownEvent
= $.Event(Event
.SHOWN
, {
121 relatedTarget
: previous
124 $(previous
).trigger(hiddenEvent
);
125 $(_this
._element
).trigger(shownEvent
);
129 this._activate(target
, target
.parentNode
, complete
);
135 Tab
.prototype.dispose
= function dispose() {
136 $.removeClass(this._element
, DATA_KEY
);
137 this._element
= null;
142 Tab
.prototype._activate
= function _activate(element
, container
, callback
) {
145 var active
= $(container
).find(Selector
.ACTIVE_CHILD
)[0];
146 var isTransitioning
= callback
&& Util
.supportsTransitionEnd() && (active
&& $(active
).hasClass(ClassName
.FADE
) || Boolean($(container
).find(Selector
.FADE_CHILD
)[0]));
148 var complete
= function complete() {
149 return _this2
._transitionComplete(element
, active
, isTransitioning
, callback
);
152 if (active
&& isTransitioning
) {
153 $(active
).one(Util
.TRANSITION_END
, complete
).emulateTransitionEnd(TRANSITION_DURATION
);
159 $(active
).removeClass(ClassName
.SHOW
);
163 Tab
.prototype._transitionComplete
= function _transitionComplete(element
, active
, isTransitioning
, callback
) {
165 $(active
).removeClass(ClassName
.ACTIVE
);
167 var dropdownChild
= $(active
.parentNode
).find(Selector
.DROPDOWN_ACTIVE_CHILD
)[0];
170 $(dropdownChild
).removeClass(ClassName
.ACTIVE
);
173 active
.setAttribute('aria-expanded', false);
176 $(element
).addClass(ClassName
.ACTIVE
);
177 element
.setAttribute('aria-expanded', true);
179 if (isTransitioning
) {
180 Util
.reflow(element
);
181 $(element
).addClass(ClassName
.SHOW
);
183 $(element
).removeClass(ClassName
.FADE
);
186 if (element
.parentNode
&& $(element
.parentNode
).hasClass(ClassName
.DROPDOWN_MENU
)) {
188 var dropdownElement
= $(element
).closest(Selector
.DROPDOWN
)[0];
189 if (dropdownElement
) {
190 $(dropdownElement
).find(Selector
.DROPDOWN_TOGGLE
).addClass(ClassName
.ACTIVE
);
193 element
.setAttribute('aria-expanded', true);
203 Tab
._jQueryInterface
= function _jQueryInterface(config
) {
204 return this.each(function () {
206 var data
= $this.data(DATA_KEY
);
209 data
= new Tab(this);
210 $this.data(DATA_KEY
, data
);
213 if (typeof config
=== 'string') {
214 if (data
[config
] === undefined) {
215 throw new Error('No method named "' + config
+ '"');
222 _createClass(Tab
, null, [{
224 get: function get() {
233 * ------------------------------------------------------------------------
234 * Data Api implementation
235 * ------------------------------------------------------------------------
238 $(document
).on(Event
.CLICK_DATA_API
, Selector
.DATA_TOGGLE
, function (event
) {
239 event
.preventDefault();
240 Tab
._jQueryInterface
.call($(this), 'show');
244 * ------------------------------------------------------------------------
246 * ------------------------------------------------------------------------
249 $.fn
[NAME
] = Tab
._jQueryInterface
;
250 $.fn
[NAME
].Constructor
= Tab
;
251 $.fn
[NAME
].noConflict = function () {
252 $.fn
[NAME
] = JQUERY_NO_CONFLICT
;
253 return Tab
._jQueryInterface
;
258 //# sourceMappingURL=tab.js.map