diff options
author | Blake Gentry <blakesgentry@gmail.com> | 2017-01-06 21:10:24 +0300 |
---|---|---|
committer | Blake Gentry <blakesgentry@gmail.com> | 2017-01-06 21:10:24 +0300 |
commit | f82164992580fca0c3e3dde7d6d097784a514e5b (patch) | |
tree | bb3ff36c326d696623203563a53cab5982970ad8 /assets/javascripts/bootstrap/dropdown.js | |
parent | 023043a2da9098e7b8521a2ac62b7b5a470c40d9 (diff) |
rake update[v4.0.0-alpha.6]
Diffstat (limited to 'assets/javascripts/bootstrap/dropdown.js')
-rw-r--r-- | assets/javascripts/bootstrap/dropdown.js | 40 |
1 files changed, 21 insertions, 19 deletions
diff --git a/assets/javascripts/bootstrap/dropdown.js b/assets/javascripts/bootstrap/dropdown.js index 0f53f14..87fa677 100644 --- a/assets/javascripts/bootstrap/dropdown.js +++ b/assets/javascripts/bootstrap/dropdown.js @@ -4,7 +4,7 @@ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Cons /** * -------------------------------------------------------------------------- - * Bootstrap (v4.0.0-alpha.5): dropdown.js + * Bootstrap (v4.0.0-alpha.6): dropdown.js * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) * -------------------------------------------------------------------------- */ @@ -18,7 +18,7 @@ var Dropdown = function ($) { */ var NAME = 'dropdown'; - var VERSION = '4.0.0-alpha.5'; + var VERSION = '4.0.0-alpha.6'; var DATA_KEY = 'bs.dropdown'; var EVENT_KEY = '.' + DATA_KEY; var DATA_API_KEY = '.data-api'; @@ -35,13 +35,14 @@ var Dropdown = function ($) { SHOWN: 'shown' + EVENT_KEY, CLICK: 'click' + EVENT_KEY, CLICK_DATA_API: 'click' + EVENT_KEY + DATA_API_KEY, + FOCUSIN_DATA_API: 'focusin' + EVENT_KEY + DATA_API_KEY, KEYDOWN_DATA_API: 'keydown' + EVENT_KEY + DATA_API_KEY }; var ClassName = { BACKDROP: 'dropdown-backdrop', DISABLED: 'disabled', - OPEN: 'open' + SHOW: 'show' }; var Selector = { @@ -79,7 +80,7 @@ var Dropdown = function ($) { } var parent = Dropdown._getParentFromElement(this); - var isActive = $(parent).hasClass(ClassName.OPEN); + var isActive = $(parent).hasClass(ClassName.SHOW); Dropdown._clearMenus(); @@ -96,7 +97,9 @@ var Dropdown = function ($) { $(dropdown).on('click', Dropdown._clearMenus); } - var relatedTarget = { relatedTarget: this }; + var relatedTarget = { + relatedTarget: this + }; var showEvent = $.Event(Event.SHOW, relatedTarget); $(parent).trigger(showEvent); @@ -106,9 +109,9 @@ var Dropdown = function ($) { } this.focus(); - this.setAttribute('aria-expanded', 'true'); + this.setAttribute('aria-expanded', true); - $(parent).toggleClass(ClassName.OPEN); + $(parent).toggleClass(ClassName.SHOW); $(parent).trigger($.Event(Event.SHOWN, relatedTarget)); return false; @@ -133,7 +136,8 @@ var Dropdown = function ($) { var 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') { @@ -159,13 +163,15 @@ var Dropdown = function ($) { for (var i = 0; i < toggles.length; i++) { var parent = Dropdown._getParentFromElement(toggles[i]); - var relatedTarget = { relatedTarget: toggles[i] }; + var relatedTarget = { + relatedTarget: toggles[i] + }; - if (!$(parent).hasClass(ClassName.OPEN)) { + if (!$(parent).hasClass(ClassName.SHOW)) { continue; } - if (event && event.type === 'click' && /input|textarea/i.test(event.target.tagName) && $.contains(parent, event.target)) { + if (event && (event.type === 'click' && /input|textarea/i.test(event.target.tagName) || event.type === 'focusin') && $.contains(parent, event.target)) { continue; } @@ -177,7 +183,7 @@ var Dropdown = function ($) { toggles[i].setAttribute('aria-expanded', 'false'); - $(parent).removeClass(ClassName.OPEN).trigger($.Event(Event.HIDDEN, relatedTarget)); + $(parent).removeClass(ClassName.SHOW).trigger($.Event(Event.HIDDEN, relatedTarget)); } }; @@ -205,7 +211,7 @@ var Dropdown = function ($) { } var parent = Dropdown._getParentFromElement(this); - var isActive = $(parent).hasClass(ClassName.OPEN); + var isActive = $(parent).hasClass(ClassName.SHOW); if (!isActive && event.which !== ESCAPE_KEYCODE || isActive && event.which === ESCAPE_KEYCODE) { @@ -218,11 +224,7 @@ var Dropdown = function ($) { return; } - var items = $.makeArray($(Selector.VISIBLE_ITEMS)); - - items = items.filter(function (item) { - return item.offsetWidth || item.offsetHeight; - }); + var items = $(parent).find(Selector.VISIBLE_ITEMS).get(); if (!items.length) { return; @@ -263,7 +265,7 @@ var Dropdown = function ($) { * ------------------------------------------------------------------------ */ - $(document).on(Event.KEYDOWN_DATA_API, Selector.DATA_TOGGLE, Dropdown._dataApiKeydownHandler).on(Event.KEYDOWN_DATA_API, Selector.ROLE_MENU, Dropdown._dataApiKeydownHandler).on(Event.KEYDOWN_DATA_API, Selector.ROLE_LISTBOX, Dropdown._dataApiKeydownHandler).on(Event.CLICK_DATA_API, Dropdown._clearMenus).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, Dropdown.prototype.toggle).on(Event.CLICK_DATA_API, Selector.FORM_CHILD, function (e) { + $(document).on(Event.KEYDOWN_DATA_API, Selector.DATA_TOGGLE, Dropdown._dataApiKeydownHandler).on(Event.KEYDOWN_DATA_API, Selector.ROLE_MENU, Dropdown._dataApiKeydownHandler).on(Event.KEYDOWN_DATA_API, Selector.ROLE_LISTBOX, Dropdown._dataApiKeydownHandler).on(Event.CLICK_DATA_API + ' ' + Event.FOCUSIN_DATA_API, Dropdown._clearMenus).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, Dropdown.prototype.toggle).on(Event.CLICK_DATA_API, Selector.FORM_CHILD, function (e) { e.stopPropagation(); }); |