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/dropdown.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'js/src/dropdown.js') diff --git a/js/src/dropdown.js b/js/src/dropdown.js index e38792d3b..656a05e77 100644 --- a/js/src/dropdown.js +++ b/js/src/dropdown.js @@ -3,7 +3,7 @@ import Util from './util' /** * -------------------------------------------------------------------------- - * Bootstrap (v4.0.0-alpha.4): dropdown.js + * Bootstrap (v4.0.0-alpha.5): dropdown.js * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) * -------------------------------------------------------------------------- */ @@ -18,7 +18,7 @@ const Dropdown = (($) => { */ const NAME = 'dropdown' - const VERSION = '4.0.0-alpha.4' + const VERSION = '4.0.0-alpha.5' const DATA_KEY = 'bs.dropdown' const EVENT_KEY = `.${DATA_KEY}` const DATA_API_KEY = '.data-api' -- cgit v1.2.3 From 9d129a43d6c24d9e60cc8fc7cfbddaaa4c586fdf Mon Sep 17 00:00:00 2001 From: Johann-S Date: Mon, 24 Oct 2016 10:57:32 +0200 Subject: Use a single class name for opened/expanded/shown state of widgets --- js/src/dropdown.js | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) (limited to 'js/src/dropdown.js') diff --git a/js/src/dropdown.js b/js/src/dropdown.js index 656a05e77..3246e6bef 100644 --- a/js/src/dropdown.js +++ b/js/src/dropdown.js @@ -41,7 +41,7 @@ const Dropdown = (($) => { const ClassName = { BACKDROP : 'dropdown-backdrop', DISABLED : 'disabled', - OPEN : 'open' + ACTIVE : 'active' } const Selector = { @@ -86,7 +86,7 @@ const Dropdown = (($) => { } let parent = Dropdown._getParentFromElement(this) - let isActive = $(parent).hasClass(ClassName.OPEN) + let isActive = $(parent).hasClass(ClassName.ACTIVE) Dropdown._clearMenus() @@ -116,7 +116,7 @@ const Dropdown = (($) => { this.focus() this.setAttribute('aria-expanded', 'true') - $(parent).toggleClass(ClassName.OPEN) + $(parent).toggleClass(ClassName.ACTIVE) $(parent).trigger($.Event(Event.SHOWN, relatedTarget)) return false @@ -171,7 +171,7 @@ const Dropdown = (($) => { let parent = Dropdown._getParentFromElement(toggles[i]) let relatedTarget = { relatedTarget : toggles[i] } - if (!$(parent).hasClass(ClassName.OPEN)) { + if (!$(parent).hasClass(ClassName.ACTIVE)) { continue } @@ -190,7 +190,7 @@ const Dropdown = (($) => { toggles[i].setAttribute('aria-expanded', 'false') $(parent) - .removeClass(ClassName.OPEN) + .removeClass(ClassName.ACTIVE) .trigger($.Event(Event.HIDDEN, relatedTarget)) } } @@ -220,7 +220,7 @@ const Dropdown = (($) => { } let parent = Dropdown._getParentFromElement(this) - let isActive = $(parent).hasClass(ClassName.OPEN) + let isActive = $(parent).hasClass(ClassName.ACTIVE) if ((!isActive && event.which !== ESCAPE_KEYCODE) || (isActive && event.which === ESCAPE_KEYCODE)) { -- 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/dropdown.js | 49 +++++++++++++++++++++++++++---------------------- 1 file changed, 27 insertions(+), 22 deletions(-) (limited to 'js/src/dropdown.js') diff --git a/js/src/dropdown.js b/js/src/dropdown.js index 3246e6bef..644659266 100644 --- a/js/src/dropdown.js +++ b/js/src/dropdown.js @@ -85,8 +85,8 @@ const Dropdown = (($) => { return false } - let parent = Dropdown._getParentFromElement(this) - let isActive = $(parent).hasClass(ClassName.ACTIVE) + const parent = Dropdown._getParentFromElement(this) + const isActive = $(parent).hasClass(ClassName.ACTIVE) Dropdown._clearMenus() @@ -95,17 +95,19 @@ const Dropdown = (($) => { } if ('ontouchstart' in document.documentElement && - (!$(parent).closest(Selector.NAVBAR_NAV).length)) { + !$(parent).closest(Selector.NAVBAR_NAV).length) { // if mobile we use a backdrop because click events don't delegate - let dropdown = document.createElement('div') + const dropdown = document.createElement('div') dropdown.className = ClassName.BACKDROP $(dropdown).insertBefore(this) $(dropdown).on('click', Dropdown._clearMenus) } - let relatedTarget = { relatedTarget : this } - let showEvent = $.Event(Event.SHOW, relatedTarget) + const relatedTarget = { + relatedTarget : this + } + const showEvent = $.Event(Event.SHOW, relatedTarget) $(parent).trigger(showEvent) @@ -114,7 +116,7 @@ const Dropdown = (($) => { } this.focus() - this.setAttribute('aria-expanded', 'true') + this.setAttribute('aria-expanded', true) $(parent).toggleClass(ClassName.ACTIVE) $(parent).trigger($.Event(Event.SHOWN, relatedTarget)) @@ -140,10 +142,11 @@ const Dropdown = (($) => { static _jQueryInterface(config) { return this.each(function () { - let data = $(this).data(DATA_KEY) + let data = $(this).data(DATA_KEY) if (!data) { - $(this).data(DATA_KEY, (data = new Dropdown(this))) + data = new Dropdown(this) + $(this).data(DATA_KEY, data) } if (typeof config === 'string') { @@ -160,28 +163,30 @@ const Dropdown = (($) => { return } - let backdrop = $(Selector.BACKDROP)[0] + const backdrop = $(Selector.BACKDROP)[0] if (backdrop) { backdrop.parentNode.removeChild(backdrop) } - let toggles = $.makeArray($(Selector.DATA_TOGGLE)) + const toggles = $.makeArray($(Selector.DATA_TOGGLE)) for (let i = 0; i < toggles.length; i++) { - let parent = Dropdown._getParentFromElement(toggles[i]) - let relatedTarget = { relatedTarget : toggles[i] } + const parent = Dropdown._getParentFromElement(toggles[i]) + const relatedTarget = { + relatedTarget : toggles[i] + } if (!$(parent).hasClass(ClassName.ACTIVE)) { continue } if (event && event.type === 'click' && - (/input|textarea/i.test(event.target.tagName)) && - ($.contains(parent, event.target))) { + /input|textarea/i.test(event.target.tagName) && + $.contains(parent, event.target)) { continue } - let hideEvent = $.Event(Event.HIDE, relatedTarget) + const hideEvent = $.Event(Event.HIDE, relatedTarget) $(parent).trigger(hideEvent) if (hideEvent.isDefaultPrevented()) { continue @@ -197,7 +202,7 @@ const Dropdown = (($) => { static _getParentFromElement(element) { let parent - let selector = Util.getSelectorFromElement(element) + const selector = Util.getSelectorFromElement(element) if (selector) { parent = $(selector)[0] @@ -219,14 +224,14 @@ const Dropdown = (($) => { return } - let parent = Dropdown._getParentFromElement(this) - let isActive = $(parent).hasClass(ClassName.ACTIVE) + const parent = Dropdown._getParentFromElement(this) + const isActive = $(parent).hasClass(ClassName.ACTIVE) - if ((!isActive && event.which !== ESCAPE_KEYCODE) || - (isActive && event.which === ESCAPE_KEYCODE)) { + if (!isActive && event.which !== ESCAPE_KEYCODE || + isActive && event.which === ESCAPE_KEYCODE) { if (event.which === ESCAPE_KEYCODE) { - let toggle = $(parent).find(Selector.DATA_TOGGLE)[0] + const toggle = $(parent).find(Selector.DATA_TOGGLE)[0] $(toggle).trigger('focus') } -- cgit v1.2.3 From 3606c5b9c5b288f17b29ea451470b260d4c1f327 Mon Sep 17 00:00:00 2001 From: Pierre-Denis Vanduynslager Date: Sat, 26 Nov 2016 03:35:49 -0500 Subject: Dropdown perf - on keyboard nav, find active item in the active dropdown rather than the whole document (#19953) --- js/src/dropdown.js | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) (limited to 'js/src/dropdown.js') diff --git a/js/src/dropdown.js b/js/src/dropdown.js index 644659266..324eef793 100644 --- a/js/src/dropdown.js +++ b/js/src/dropdown.js @@ -239,11 +239,7 @@ const Dropdown = (($) => { return } - let items = $.makeArray($(Selector.VISIBLE_ITEMS)) - - items = items.filter((item) => { - return item.offsetWidth || item.offsetHeight - }) + let items = $(parent).find(Selector.VISIBLE_ITEMS).get() if (!items.length) { return -- cgit v1.2.3 From b110070dcd5b957c1674bd08238e96faa9c2691e Mon Sep 17 00:00:00 2001 From: Mark Otto Date: Sat, 26 Nov 2016 01:04:02 -0800 Subject: Follow up fix to #19953 for linting error in builds See https://travis-ci.org/twbs/bootstrap/jobs/179010884 for build failure --- js/src/dropdown.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'js/src/dropdown.js') diff --git a/js/src/dropdown.js b/js/src/dropdown.js index 324eef793..8b2164aa9 100644 --- a/js/src/dropdown.js +++ b/js/src/dropdown.js @@ -239,7 +239,7 @@ const Dropdown = (($) => { return } - let items = $(parent).find(Selector.VISIBLE_ITEMS).get() + const items = $(parent).find(Selector.VISIBLE_ITEMS).get() if (!items.length) { return -- cgit v1.2.3 From bf39bb3ac3d2aef4687b3cd4762015d5f218e2bc Mon Sep 17 00:00:00 2001 From: Starsam80 Date: Thu, 27 Oct 2016 16:13:17 -0600 Subject: Rename `.active` to `.show` --- js/src/dropdown.js | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) (limited to 'js/src/dropdown.js') diff --git a/js/src/dropdown.js b/js/src/dropdown.js index 8b2164aa9..97bba1c76 100644 --- a/js/src/dropdown.js +++ b/js/src/dropdown.js @@ -41,7 +41,7 @@ const Dropdown = (($) => { const ClassName = { BACKDROP : 'dropdown-backdrop', DISABLED : 'disabled', - ACTIVE : 'active' + SHOW : 'show' } const Selector = { @@ -86,7 +86,7 @@ const Dropdown = (($) => { } const parent = Dropdown._getParentFromElement(this) - const isActive = $(parent).hasClass(ClassName.ACTIVE) + const isActive = $(parent).hasClass(ClassName.SHOW) Dropdown._clearMenus() @@ -118,7 +118,7 @@ const Dropdown = (($) => { this.focus() this.setAttribute('aria-expanded', true) - $(parent).toggleClass(ClassName.ACTIVE) + $(parent).toggleClass(ClassName.SHOW) $(parent).trigger($.Event(Event.SHOWN, relatedTarget)) return false @@ -176,7 +176,7 @@ const Dropdown = (($) => { relatedTarget : toggles[i] } - if (!$(parent).hasClass(ClassName.ACTIVE)) { + if (!$(parent).hasClass(ClassName.SHOW)) { continue } @@ -195,7 +195,7 @@ const Dropdown = (($) => { toggles[i].setAttribute('aria-expanded', 'false') $(parent) - .removeClass(ClassName.ACTIVE) + .removeClass(ClassName.SHOW) .trigger($.Event(Event.HIDDEN, relatedTarget)) } } @@ -225,7 +225,7 @@ const Dropdown = (($) => { } const parent = Dropdown._getParentFromElement(this) - const isActive = $(parent).hasClass(ClassName.ACTIVE) + const isActive = $(parent).hasClass(ClassName.SHOW) if (!isActive && event.which !== ESCAPE_KEYCODE || isActive && event.which === ESCAPE_KEYCODE) { -- cgit v1.2.3