From dc1b4e78d49e7c3caedc2918298b646cf8c8200b Mon Sep 17 00:00:00 2001 From: Max Beatty Date: Thu, 4 Aug 2016 16:57:08 -0700 Subject: add support for ol in tab plugin. fixes #17754 --- js/src/tab.js | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) (limited to 'js/src/tab.js') diff --git a/js/src/tab.js b/js/src/tab.js index 7bd8f2f9c..7a698851b 100644 --- a/js/src/tab.js +++ b/js/src/tab.js @@ -44,7 +44,7 @@ const Tab = (($) => { A : 'a', LI : 'li', DROPDOWN : '.dropdown', - UL : 'ul:not(.dropdown-menu)', + LIST : 'ul:not(.dropdown-menu), ol:not(.dropdown-menu)', FADE_CHILD : '> .nav-item .fade, > .fade', ACTIVE : '.active', ACTIVE_CHILD : '> .nav-item > .active, > .active', @@ -85,11 +85,11 @@ const Tab = (($) => { let target let previous - let ulElement = $(this._element).closest(Selector.UL)[0] + let listElement = $(this._element).closest(Selector.LIST)[0] let selector = Util.getSelectorFromElement(this._element) - if (ulElement) { - previous = $.makeArray($(ulElement).find(Selector.ACTIVE)) + if (listElement) { + previous = $.makeArray($(listElement).find(Selector.ACTIVE)) previous = previous[previous.length - 1] } @@ -118,7 +118,7 @@ const Tab = (($) => { this._activate( this._element, - ulElement + listElement ) let complete = () => { -- cgit v1.2.3 From 8ff7edaab4f55b6612df3fe670aa9b9ac0984eae Mon Sep 17 00:00:00 2001 From: Mark Otto Date: Wed, 19 Oct 2016 08:27:41 -0700 Subject: version bump to alpha 5 --- js/src/tab.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'js/src/tab.js') diff --git a/js/src/tab.js b/js/src/tab.js index bf059d367..4424a7a41 100644 --- a/js/src/tab.js +++ b/js/src/tab.js @@ -3,7 +3,7 @@ import Util from './util' /** * -------------------------------------------------------------------------- - * Bootstrap (v4.0.0-alpha.4): tab.js + * Bootstrap (v4.0.0-alpha.5): tab.js * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) * -------------------------------------------------------------------------- */ @@ -18,7 +18,7 @@ const Tab = (($) => { */ const NAME = 'tab' - const VERSION = '4.0.0-alpha.4' + const VERSION = '4.0.0-alpha.5' const DATA_KEY = 'bs.tab' const EVENT_KEY = `.${DATA_KEY}` const DATA_API_KEY = '.data-api' -- cgit v1.2.3 From 0974267b8c2b137d563d36c2390b4491fb1e0309 Mon Sep 17 00:00:00 2001 From: Bardi Harborow Date: Tue, 1 Nov 2016 14:32:36 +1100 Subject: Move from $.proxy to es6 arrow functions. (#21049) --- js/src/tab.js | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) (limited to 'js/src/tab.js') diff --git a/js/src/tab.js b/js/src/tab.js index c625a010d..012d2f76f 100644 --- a/js/src/tab.js +++ b/js/src/tab.js @@ -156,9 +156,7 @@ const Tab = (($) => { && ((active && $(active).hasClass(ClassName.FADE)) || Boolean($(container).find(Selector.FADE_CHILD)[0])) - let complete = $.proxy( - this._transitionComplete, - this, + let complete = () => this._transitionComplete( element, active, isTransitioning, -- cgit v1.2.3 From c2616fb74e6bdc0cd46a5678a2c5cffcbe422106 Mon Sep 17 00:00:00 2001 From: Bardi Harborow Date: Tue, 22 Nov 2016 01:36:00 +1100 Subject: Make JS compliant with the new ESLint rules. --- js/src/tab.js | 40 ++++++++++++++++++++-------------------- 1 file changed, 20 insertions(+), 20 deletions(-) (limited to 'js/src/tab.js') diff --git a/js/src/tab.js b/js/src/tab.js index 012d2f76f..c5d205bcf 100644 --- a/js/src/tab.js +++ b/js/src/tab.js @@ -78,26 +78,26 @@ const Tab = (($) => { show() { if (this._element.parentNode && - (this._element.parentNode.nodeType === Node.ELEMENT_NODE) && - ($(this._element).hasClass(ClassName.ACTIVE))) { + this._element.parentNode.nodeType === Node.ELEMENT_NODE && + $(this._element).hasClass(ClassName.ACTIVE)) { return } let target let previous - let listElement = $(this._element).closest(Selector.LIST)[0] - let selector = Util.getSelectorFromElement(this._element) + const listElement = $(this._element).closest(Selector.LIST)[0] + const selector = Util.getSelectorFromElement(this._element) if (listElement) { previous = $.makeArray($(listElement).find(Selector.ACTIVE)) previous = previous[previous.length - 1] } - let hideEvent = $.Event(Event.HIDE, { + const hideEvent = $.Event(Event.HIDE, { relatedTarget: this._element }) - let showEvent = $.Event(Event.SHOW, { + const showEvent = $.Event(Event.SHOW, { relatedTarget: previous }) @@ -108,7 +108,7 @@ const Tab = (($) => { $(this._element).trigger(showEvent) if (showEvent.isDefaultPrevented() || - (hideEvent.isDefaultPrevented())) { + hideEvent.isDefaultPrevented()) { return } @@ -121,12 +121,12 @@ const Tab = (($) => { listElement ) - let complete = () => { - let hiddenEvent = $.Event(Event.HIDDEN, { + const complete = () => { + const hiddenEvent = $.Event(Event.HIDDEN, { relatedTarget: this._element }) - let shownEvent = $.Event(Event.SHOWN, { + const shownEvent = $.Event(Event.SHOWN, { relatedTarget: previous }) @@ -150,13 +150,13 @@ const Tab = (($) => { // private _activate(element, container, callback) { - let active = $(container).find(Selector.ACTIVE_CHILD)[0] - let isTransitioning = callback + const active = $(container).find(Selector.ACTIVE_CHILD)[0] + const isTransitioning = callback && Util.supportsTransitionEnd() - && ((active && $(active).hasClass(ClassName.FADE)) + && (active && $(active).hasClass(ClassName.FADE) || Boolean($(container).find(Selector.FADE_CHILD)[0])) - let complete = () => this._transitionComplete( + const complete = () => this._transitionComplete( element, active, isTransitioning, @@ -181,7 +181,7 @@ const Tab = (($) => { if (active) { $(active).removeClass(ClassName.ACTIVE) - let dropdownChild = $(active).find( + const dropdownChild = $(active).find( Selector.DROPDOWN_ACTIVE_CHILD )[0] @@ -203,9 +203,9 @@ const Tab = (($) => { } if (element.parentNode && - ($(element.parentNode).hasClass(ClassName.DROPDOWN_MENU))) { + $(element.parentNode).hasClass(ClassName.DROPDOWN_MENU)) { - let dropdownElement = $(element).closest(Selector.DROPDOWN)[0] + const dropdownElement = $(element).closest(Selector.DROPDOWN)[0] if (dropdownElement) { $(dropdownElement).find(Selector.DROPDOWN_TOGGLE).addClass(ClassName.ACTIVE) } @@ -223,11 +223,11 @@ const Tab = (($) => { static _jQueryInterface(config) { return this.each(function () { - let $this = $(this) - let data = $this.data(DATA_KEY) + const $this = $(this) + let data = $this.data(DATA_KEY) if (!data) { - data = data = new Tab(this) + data = new Tab(this) $this.data(DATA_KEY, data) } -- cgit v1.2.3 From b1b1f30cbd0f4f620047dc158cf91e328eeecc6b Mon Sep 17 00:00:00 2001 From: Matt Hernandez Date: Fri, 25 Nov 2016 14:56:41 -0800 Subject: [Fix #17371][V4] Deactivating dropdown links in nav tab (#17642) * Fix bug with dropdown tab links not deactivating when other tab or dropdown link is clicked * Revise bug fix for more stability --- js/src/tab.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'js/src/tab.js') diff --git a/js/src/tab.js b/js/src/tab.js index 012d2f76f..9dc33e4da 100644 --- a/js/src/tab.js +++ b/js/src/tab.js @@ -181,7 +181,7 @@ const Tab = (($) => { if (active) { $(active).removeClass(ClassName.ACTIVE) - let dropdownChild = $(active).find( + let dropdownChild = $(active.parentNode).find( Selector.DROPDOWN_ACTIVE_CHILD )[0] -- cgit v1.2.3 From d991c868a4b9b598a622f739547f71ee0ea7a352 Mon Sep 17 00:00:00 2001 From: Starsam80 Date: Thu, 27 Oct 2016 16:50:23 -0600 Subject: Fix tabs by using new classes --- js/src/tab.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'js/src/tab.js') diff --git a/js/src/tab.js b/js/src/tab.js index e7e8f550f..c7e5fbfbe 100644 --- a/js/src/tab.js +++ b/js/src/tab.js @@ -37,7 +37,7 @@ const Tab = (($) => { DROPDOWN_MENU : 'dropdown-menu', ACTIVE : 'active', FADE : 'fade', - IN : 'in' + SHOW : 'show' } const Selector = { @@ -173,7 +173,7 @@ const Tab = (($) => { } if (active) { - $(active).removeClass(ClassName.IN) + $(active).removeClass(ClassName.SHOW) } } @@ -197,7 +197,7 @@ const Tab = (($) => { if (isTransitioning) { Util.reflow(element) - $(element).addClass(ClassName.IN) + $(element).addClass(ClassName.SHOW) } else { $(element).removeClass(ClassName.FADE) } -- cgit v1.2.3 From 9103bffe37d366f8b2a4092092ddec850917d260 Mon Sep 17 00:00:00 2001 From: Alessandro Rodi Date: Sun, 25 Dec 2016 08:31:34 +0100 Subject: [Fix #19849] Tabs are opened even if disabled. (#20795) * [Fix #19849] Tabs are opened even if disabled. * fix hund code review hints * rollback hound issues because Travis fails --- js/src/tab.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'js/src/tab.js') diff --git a/js/src/tab.js b/js/src/tab.js index c7e5fbfbe..2f4e453e0 100644 --- a/js/src/tab.js +++ b/js/src/tab.js @@ -36,6 +36,7 @@ const Tab = (($) => { const ClassName = { DROPDOWN_MENU : 'dropdown-menu', ACTIVE : 'active', + DISABLED : 'disabled', FADE : 'fade', SHOW : 'show' } @@ -79,7 +80,8 @@ const Tab = (($) => { show() { if (this._element.parentNode && this._element.parentNode.nodeType === Node.ELEMENT_NODE && - $(this._element).hasClass(ClassName.ACTIVE)) { + $(this._element).hasClass(ClassName.ACTIVE) || + $(this._element).hasClass(ClassName.DISABLED)) { return } -- cgit v1.2.3