dropdown.js.map 23.94 KiB
{"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","placement","offset","flip","DefaultType","element","config","_element","_popper","_config","_getConfig","_menu","_getMenuElement","_inNavbar","_detectNavbar","_addEventListeners","disabled","hasClass","parent","_getParentFromElement","isActive","_clearMenus","relatedTarget","showEvent","trigger","isDefaultPrevented","_getPopperConfig","document","documentElement","closest","length","children","on","noop","focus","setAttribute","toggleClass","removeData","off","destroy","scheduleUpdate","event","preventDefault","stopPropagation","toggle","elementData","data","toUpperCase","extend","constructor","Util","typeCheckConfig","find","$parentDropdown","popperConfig","_getPlacement","modifiers","enabled","applyStyle","each","which","type","toggles","makeArray","i","context","dropdownMenu","test","target","tagName","contains","hideEvent","removeClass","selector","getSelectorFromElement","parentNode","items","get","index","indexOf","_dataApiKeydownHandler","_jQueryInterface","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    placement   : AttachmentMap.BOTTOM,\n    offset      : 0,\n    flip        : true\n  }\n\n  const DefaultType = {\n    placement   : 'string',\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      const elementData = $(this._element).data()\n      if (typeof elementData.placement !== 'undefined') {\n        elementData.placement = AttachmentMap[elementData.placement.toUpperCase()]\n      }\n\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 = this._config.placement\n\n      // Handle dropup\n      if ($parentDropdown.hasClass(ClassName.DROPUP) || this._config.placement === AttachmentMap.TOP) {\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"]}