mirror of
https://github.com/twbs/bootstrap.git
synced 2022-11-09 12:25:43 -05:00
1 line
No EOL
24 KiB
Text
1 line
No EOL
24 KiB
Text
{"version":3,"sources":["../src/dropdown.js"],"names":["Dropdown","Popper","Error","NAME","VERSION","DATA_KEY","EVENT_KEY","DATA_API_KEY","JQUERY_NO_CONFLICT","$","fn","ESCAPE_KEYCODE","SPACE_KEYCODE","TAB_KEYCODE","ARROW_UP_KEYCODE","ARROW_DOWN_KEYCODE","RIGHT_MOUSE_BUTTON_WHICH","REGEXP_KEYDOWN","RegExp","Event","HIDE","HIDDEN","SHOW","SHOWN","CLICK","CLICK_DATA_API","KEYDOWN_DATA_API","KEYUP_DATA_API","ClassName","DISABLED","DROPUP","MENURIGHT","MENULEFT","Selector","DATA_TOGGLE","FORM_CHILD","MENU","NAVBAR_NAV","VISIBLE_ITEMS","AttachmentMap","TOP","TOPEND","BOTTOM","BOTTOMEND","Default","offset","flip","DefaultType","element","config","_element","_popper","_config","_getConfig","_menu","_getMenuElement","_inNavbar","_detectNavbar","_addEventListeners","toggle","disabled","hasClass","parent","_getParentFromElement","isActive","_clearMenus","relatedTarget","showEvent","trigger","isDefaultPrevented","_getPopperConfig","document","documentElement","closest","length","children","on","noop","focus","setAttribute","toggleClass","dispose","removeData","off","destroy","update","scheduleUpdate","event","preventDefault","stopPropagation","extend","constructor","data","Util","typeCheckConfig","find","_getPlacement","$parentDropdown","placement","popperConfig","modifiers","enabled","applyStyle","_jQueryInterface","each","which","type","toggles","makeArray","i","context","dropdownMenu","test","target","tagName","contains","hideEvent","removeClass","selector","getSelectorFromElement","parentNode","_dataApiKeydownHandler","items","get","index","indexOf","call","e","Constructor","noConflict","jQuery"],"mappings":"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","file":"dropdown.js","sourcesContent":["import $ from 'jquery'\nimport Popper from 'popper.js'\nimport Util from './util'\n\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0-beta): dropdown.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Dropdown = (() => {\n\n /**\n * Check for Popper dependency\n * Popper - https://popper.js.org\n */\n if (typeof Popper === 'undefined') {\n throw new Error('Bootstrap dropdown require Popper.js (https://popper.js.org)')\n }\n\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n const NAME = 'dropdown'\n const VERSION = '4.0.0-beta'\n const DATA_KEY = 'bs.dropdown'\n const EVENT_KEY = `.${DATA_KEY}`\n const DATA_API_KEY = '.data-api'\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n const ESCAPE_KEYCODE = 27 // KeyboardEvent.which value for Escape (Esc) key\n const SPACE_KEYCODE = 32 // KeyboardEvent.which value for space key\n const TAB_KEYCODE = 9 // KeyboardEvent.which value for tab key\n const ARROW_UP_KEYCODE = 38 // KeyboardEvent.which value for up arrow key\n const ARROW_DOWN_KEYCODE = 40 // KeyboardEvent.which value for down arrow key\n const RIGHT_MOUSE_BUTTON_WHICH = 3 // MouseEvent.which value for the right button (assuming a right-handed mouse)\n const REGEXP_KEYDOWN = new RegExp(`${ARROW_UP_KEYCODE}|${ARROW_DOWN_KEYCODE}|${ESCAPE_KEYCODE}`)\n\n const Event = {\n HIDE : `hide${EVENT_KEY}`,\n HIDDEN : `hidden${EVENT_KEY}`,\n SHOW : `show${EVENT_KEY}`,\n SHOWN : `shown${EVENT_KEY}`,\n CLICK : `click${EVENT_KEY}`,\n CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`,\n KEYDOWN_DATA_API : `keydown${EVENT_KEY}${DATA_API_KEY}`,\n KEYUP_DATA_API : `keyup${EVENT_KEY}${DATA_API_KEY}`\n }\n\n const ClassName = {\n DISABLED : 'disabled',\n SHOW : 'show',\n DROPUP : 'dropup',\n MENURIGHT : 'dropdown-menu-right',\n MENULEFT : 'dropdown-menu-left'\n }\n\n const Selector = {\n DATA_TOGGLE : '[data-toggle=\"dropdown\"]',\n FORM_CHILD : '.dropdown form',\n MENU : '.dropdown-menu',\n NAVBAR_NAV : '.navbar-nav',\n VISIBLE_ITEMS : '.dropdown-menu .dropdown-item:not(.disabled)'\n }\n\n const AttachmentMap = {\n TOP : 'top-start',\n TOPEND : 'top-end',\n BOTTOM : 'bottom-start',\n BOTTOMEND : 'bottom-end'\n }\n\n const Default = {\n offset : 0,\n flip : true\n }\n\n const DefaultType = {\n offset : '(number|string)',\n flip : 'boolean'\n }\n\n\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n class Dropdown {\n\n constructor(element, config) {\n this._element = element\n this._popper = null\n this._config = this._getConfig(config)\n this._menu = this._getMenuElement()\n this._inNavbar = this._detectNavbar()\n\n this._addEventListeners()\n }\n\n\n // getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n // public\n\n toggle() {\n if (this._element.disabled || $(this._element).hasClass(ClassName.DISABLED)) {\n return\n }\n\n const parent = Dropdown._getParentFromElement(this._element)\n const isActive = $(this._menu).hasClass(ClassName.SHOW)\n\n Dropdown._clearMenus()\n\n if (isActive) {\n return\n }\n\n const relatedTarget = {\n relatedTarget : this._element\n }\n const showEvent = $.Event(Event.SHOW, relatedTarget)\n\n $(parent).trigger(showEvent)\n\n if (showEvent.isDefaultPrevented()) {\n return\n }\n\n let element = this._element\n // for dropup with alignment we use the parent as popper container\n if ($(parent).hasClass(ClassName.DROPUP)) {\n if ($(this._menu).hasClass(ClassName.MENULEFT) || $(this._menu).hasClass(ClassName.MENURIGHT)) {\n element = parent\n }\n }\n this._popper = new Popper(element, this._menu, this._getPopperConfig())\n\n // if this is a touch-enabled device we add extra\n // empty mouseover listeners to the body's immediate children;\n // only needed because of broken event delegation on iOS\n // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n if ('ontouchstart' in document.documentElement &&\n !$(parent).closest(Selector.NAVBAR_NAV).length) {\n $('body').children().on('mouseover', null, $.noop)\n }\n\n this._element.focus()\n this._element.setAttribute('aria-expanded', true)\n\n $(this._menu).toggleClass(ClassName.SHOW)\n $(parent)\n .toggleClass(ClassName.SHOW)\n .trigger($.Event(Event.SHOWN, relatedTarget))\n }\n\n dispose() {\n $.removeData(this._element, DATA_KEY)\n $(this._element).off(EVENT_KEY)\n this._element = null\n this._menu = null\n if (this._popper !== null) {\n this._popper.destroy()\n }\n this._popper = null\n }\n\n update() {\n this._inNavbar = this._detectNavbar()\n if (this._popper !== null) {\n this._popper.scheduleUpdate()\n }\n }\n\n // private\n\n _addEventListeners() {\n $(this._element).on(Event.CLICK, (event) => {\n event.preventDefault()\n event.stopPropagation()\n this.toggle()\n })\n }\n\n _getConfig(config) {\n config = $.extend(\n {},\n this.constructor.Default,\n $(this._element).data(),\n config\n )\n\n Util.typeCheckConfig(\n NAME,\n config,\n this.constructor.DefaultType\n )\n\n return config\n }\n\n _getMenuElement() {\n if (!this._menu) {\n const parent = Dropdown._getParentFromElement(this._element)\n this._menu = $(parent).find(Selector.MENU)[0]\n }\n return this._menu\n }\n\n _getPlacement() {\n const $parentDropdown = $(this._element).parent()\n let placement = AttachmentMap.BOTTOM\n\n // Handle dropup\n if ($parentDropdown.hasClass(ClassName.DROPUP)) {\n placement = AttachmentMap.TOP\n if ($(this._menu).hasClass(ClassName.MENURIGHT)) {\n placement = AttachmentMap.TOPEND\n }\n } else if ($(this._menu).hasClass(ClassName.MENURIGHT)) {\n placement = AttachmentMap.BOTTOMEND\n }\n return placement\n }\n\n _detectNavbar() {\n return $(this._element).closest('.navbar').length > 0\n }\n\n _getPopperConfig() {\n const popperConfig = {\n placement : this._getPlacement(),\n modifiers : {\n offset : {\n offset : this._config.offset\n },\n flip : {\n enabled : this._config.flip\n }\n }\n }\n\n // Disable Popper.js for Dropdown in Navbar\n if (this._inNavbar) {\n popperConfig.modifiers.applyStyle = {\n enabled: !this._inNavbar\n }\n }\n return popperConfig\n }\n\n // static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n const _config = typeof config === 'object' ? config : null\n\n if (!data) {\n data = new Dropdown(this, _config)\n $(this).data(DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new Error(`No method named \"${config}\"`)\n }\n data[config]()\n }\n })\n }\n\n static _clearMenus(event) {\n if (event && (event.which === RIGHT_MOUSE_BUTTON_WHICH ||\n event.type === 'keyup' && event.which !== TAB_KEYCODE)) {\n return\n }\n\n const toggles = $.makeArray($(Selector.DATA_TOGGLE))\n for (let i = 0; i < toggles.length; i++) {\n const parent = Dropdown._getParentFromElement(toggles[i])\n const context = $(toggles[i]).data(DATA_KEY)\n const relatedTarget = {\n relatedTarget : toggles[i]\n }\n\n if (!context) {\n continue\n }\n\n const dropdownMenu = context._menu\n if (!$(parent).hasClass(ClassName.SHOW)) {\n continue\n }\n\n if (event && (event.type === 'click' &&\n /input|textarea/i.test(event.target.tagName) || event.type === 'keyup' && event.which === TAB_KEYCODE)\n && $.contains(parent, event.target)) {\n continue\n }\n\n const hideEvent = $.Event(Event.HIDE, relatedTarget)\n $(parent).trigger(hideEvent)\n if (hideEvent.isDefaultPrevented()) {\n continue\n }\n\n // if this is a touch-enabled device we remove the extra\n // empty mouseover listeners we added for iOS support\n if ('ontouchstart' in document.documentElement) {\n $('body').children().off('mouseover', null, $.noop)\n }\n\n toggles[i].setAttribute('aria-expanded', 'false')\n\n $(dropdownMenu).removeClass(ClassName.SHOW)\n $(parent)\n .removeClass(ClassName.SHOW)\n .trigger($.Event(Event.HIDDEN, relatedTarget))\n }\n }\n\n static _getParentFromElement(element) {\n let parent\n const selector = Util.getSelectorFromElement(element)\n\n if (selector) {\n parent = $(selector)[0]\n }\n\n return parent || element.parentNode\n }\n\n static _dataApiKeydownHandler(event) {\n if (!REGEXP_KEYDOWN.test(event.which) || /button/i.test(event.target.tagName) && event.which === SPACE_KEYCODE ||\n /input|textarea/i.test(event.target.tagName)) {\n return\n }\n\n event.preventDefault()\n event.stopPropagation()\n\n if (this.disabled || $(this).hasClass(ClassName.DISABLED)) {\n return\n }\n\n const parent = Dropdown._getParentFromElement(this)\n const isActive = $(parent).hasClass(ClassName.SHOW)\n\n if (!isActive && (event.which !== ESCAPE_KEYCODE || event.which !== SPACE_KEYCODE) ||\n isActive && (event.which === ESCAPE_KEYCODE || event.which === SPACE_KEYCODE)) {\n\n if (event.which === ESCAPE_KEYCODE) {\n const toggle = $(parent).find(Selector.DATA_TOGGLE)[0]\n $(toggle).trigger('focus')\n }\n\n $(this).trigger('click')\n return\n }\n\n const items = $(parent).find(Selector.VISIBLE_ITEMS).get()\n\n if (!items.length) {\n return\n }\n\n let index = items.indexOf(event.target)\n\n if (event.which === ARROW_UP_KEYCODE && index > 0) { // up\n index--\n }\n\n if (event.which === ARROW_DOWN_KEYCODE && index < items.length - 1) { // down\n index++\n }\n\n if (index < 0) {\n index = 0\n }\n\n items[index].focus()\n }\n\n }\n\n\n /**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n $(document)\n .on(Event.KEYDOWN_DATA_API, Selector.DATA_TOGGLE, Dropdown._dataApiKeydownHandler)\n .on(Event.KEYDOWN_DATA_API, Selector.MENU, Dropdown._dataApiKeydownHandler)\n .on(`${Event.CLICK_DATA_API} ${Event.KEYUP_DATA_API}`, Dropdown._clearMenus)\n .on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n event.preventDefault()\n event.stopPropagation()\n Dropdown._jQueryInterface.call($(this), 'toggle')\n })\n .on(Event.CLICK_DATA_API, Selector.FORM_CHILD, (e) => {\n e.stopPropagation()\n })\n\n\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n $.fn[NAME] = Dropdown._jQueryInterface\n $.fn[NAME].Constructor = Dropdown\n $.fn[NAME].noConflict = function () {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Dropdown._jQueryInterface\n }\n\n return Dropdown\n\n})(jQuery, Popper)\n\nexport default Dropdown\n"]} |