dropdown.js 13.5 KB
Newer Older
Mark Otto's avatar
dist    
Mark Otto committed
1
function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
Mark Otto's avatar
dist    
Mark Otto committed
2

Mark Otto's avatar
dist    
Mark Otto committed
3
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
fat's avatar
fat committed
4
5
6

/**
 * --------------------------------------------------------------------------
Mark Otto's avatar
Mark Otto committed
7
 * Bootstrap (v4.0.0-beta.2): dropdown.js
fat's avatar
fat committed
8
9
10
 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
 * --------------------------------------------------------------------------
 */
Mark Otto's avatar
dist    
Mark Otto committed
11
var Dropdown = function ($) {
Johann-S's avatar
build    
Johann-S committed
12
13
14
15
16
17
18
  /**
   * Check for Popper dependency
   * Popper - https://popper.js.org
   */
  if (typeof Popper === 'undefined') {
    throw new Error('Bootstrap dropdown require Popper.js (https://popper.js.org)');
  }
fat's avatar
fat committed
19
20
21
22
23
24
  /**
   * ------------------------------------------------------------------------
   * Constants
   * ------------------------------------------------------------------------
   */

Mark Otto's avatar
dist    
Mark Otto committed
25

fat's avatar
fat committed
26
  var NAME = 'dropdown';
Mark Otto's avatar
Mark Otto committed
27
  var VERSION = '4.0.0-beta.2';
fat's avatar
fat committed
28
  var DATA_KEY = 'bs.dropdown';
Mark Otto's avatar
dist    
Mark Otto committed
29
  var EVENT_KEY = "." + DATA_KEY;
fat's avatar
fat committed
30
  var DATA_API_KEY = '.data-api';
fat's avatar
fat committed
31
  var JQUERY_NO_CONFLICT = $.fn[NAME];
Chris Rebert's avatar
grunt    
Chris Rebert committed
32
  var ESCAPE_KEYCODE = 27; // KeyboardEvent.which value for Escape (Esc) key
Mark Otto's avatar
dist    
Mark Otto committed
33

Mark Otto's avatar
grunt    
Mark Otto committed
34
  var SPACE_KEYCODE = 32; // KeyboardEvent.which value for space key
Mark Otto's avatar
dist    
Mark Otto committed
35

Mark Otto's avatar
grunt    
Mark Otto committed
36
  var TAB_KEYCODE = 9; // KeyboardEvent.which value for tab key
Mark Otto's avatar
dist    
Mark Otto committed
37

Chris Rebert's avatar
grunt    
Chris Rebert committed
38
  var ARROW_UP_KEYCODE = 38; // KeyboardEvent.which value for up arrow key
Mark Otto's avatar
dist    
Mark Otto committed
39

Chris Rebert's avatar
grunt    
Chris Rebert committed
40
  var ARROW_DOWN_KEYCODE = 40; // KeyboardEvent.which value for down arrow key
Mark Otto's avatar
dist    
Mark Otto committed
41

Chris Rebert's avatar
grunt    
Chris Rebert committed
42
  var RIGHT_MOUSE_BUTTON_WHICH = 3; // MouseEvent.which value for the right button (assuming a right-handed mouse)
fat's avatar
fat committed
43

Mark Otto's avatar
dist    
Mark Otto committed
44
  var REGEXP_KEYDOWN = new RegExp(ARROW_UP_KEYCODE + "|" + ARROW_DOWN_KEYCODE + "|" + ESCAPE_KEYCODE);
fat's avatar
fat committed
45
  var Event = {
Mark Otto's avatar
dist    
Mark Otto committed
46
47
48
49
50
51
52
53
    HIDE: "hide" + EVENT_KEY,
    HIDDEN: "hidden" + EVENT_KEY,
    SHOW: "show" + EVENT_KEY,
    SHOWN: "shown" + EVENT_KEY,
    CLICK: "click" + EVENT_KEY,
    CLICK_DATA_API: "click" + EVENT_KEY + DATA_API_KEY,
    KEYDOWN_DATA_API: "keydown" + EVENT_KEY + DATA_API_KEY,
    KEYUP_DATA_API: "keyup" + EVENT_KEY + DATA_API_KEY
fat's avatar
fat committed
54
55
56
  };
  var ClassName = {
    DISABLED: 'disabled',
Mark Otto's avatar
build    
Mark Otto committed
57
58
59
60
    SHOW: 'show',
    DROPUP: 'dropup',
    MENURIGHT: 'dropdown-menu-right',
    MENULEFT: 'dropdown-menu-left'
fat's avatar
fat committed
61
62
63
64
  };
  var Selector = {
    DATA_TOGGLE: '[data-toggle="dropdown"]',
    FORM_CHILD: '.dropdown form',
Mark Otto's avatar
grunt    
Mark Otto committed
65
    MENU: '.dropdown-menu',
fat's avatar
fat committed
66
    NAVBAR_NAV: '.navbar-nav',
Mark Otto's avatar
grunt    
Mark Otto committed
67
    VISIBLE_ITEMS: '.dropdown-menu .dropdown-item:not(.disabled)'
fat's avatar
fat committed
68
  };
Johann-S's avatar
build    
Johann-S committed
69
70
  var AttachmentMap = {
    TOP: 'top-start',
Mark Otto's avatar
build    
Mark Otto committed
71
72
73
    TOPEND: 'top-end',
    BOTTOM: 'bottom-start',
    BOTTOMEND: 'bottom-end'
Johann-S's avatar
build    
Johann-S committed
74
75
76
77
78
79
  };
  var Default = {
    offset: 0,
    flip: true
  };
  var DefaultType = {
Mark Otto's avatar
dist    
Mark Otto committed
80
    offset: '(number|string|function)',
Johann-S's avatar
build    
Johann-S committed
81
    flip: 'boolean'
Mark Otto's avatar
dist    
Mark Otto committed
82
83
84
85
86
    /**
     * ------------------------------------------------------------------------
     * Class Definition
     * ------------------------------------------------------------------------
     */
fat's avatar
fat committed
87

Mark Otto's avatar
dist    
Mark Otto committed
88
  };
fat's avatar
fat committed
89

Mark Otto's avatar
dist    
Mark Otto committed
90
91
92
93
  var Dropdown =
  /*#__PURE__*/
  function () {
    function Dropdown(element, config) {
fat's avatar
fat committed
94
      this._element = element;
Johann-S's avatar
build    
Johann-S committed
95
96
97
      this._popper = null;
      this._config = this._getConfig(config);
      this._menu = this._getMenuElement();
Mark Otto's avatar
build    
Mark Otto committed
98
      this._inNavbar = this._detectNavbar();
fat's avatar
fat committed
99
100

      this._addEventListeners();
Mark Otto's avatar
dist    
Mark Otto committed
101
    } // getters
fat's avatar
fat committed
102

Jacob Thornton's avatar
Jacob Thornton committed
103

Mark Otto's avatar
dist    
Mark Otto committed
104
    var _proto = Dropdown.prototype;
fat's avatar
fat committed
105

Mark Otto's avatar
dist    
Mark Otto committed
106
107
108
109
110
    // public
    _proto.toggle = function toggle() {
      if (this._element.disabled || $(this._element).hasClass(ClassName.DISABLED)) {
        return;
      }
fat's avatar
fat committed
111

Mark Otto's avatar
dist    
Mark Otto committed
112
      var parent = Dropdown._getParentFromElement(this._element);
fat's avatar
fat committed
113

Mark Otto's avatar
dist    
Mark Otto committed
114
      var isActive = $(this._menu).hasClass(ClassName.SHOW);
fat's avatar
fat committed
115

Mark Otto's avatar
dist    
Mark Otto committed
116
      Dropdown._clearMenus();
fat's avatar
fat committed
117

Mark Otto's avatar
dist    
Mark Otto committed
118
119
120
      if (isActive) {
        return;
      }
fat's avatar
fat committed
121

Mark Otto's avatar
dist    
Mark Otto committed
122
123
124
125
126
      var relatedTarget = {
        relatedTarget: this._element
      };
      var showEvent = $.Event(Event.SHOW, relatedTarget);
      $(parent).trigger(showEvent);
fat's avatar
fat committed
127

Mark Otto's avatar
dist    
Mark Otto committed
128
129
130
      if (showEvent.isDefaultPrevented()) {
        return;
      }
Mark Otto's avatar
dist    
Mark Otto committed
131

Mark Otto's avatar
dist    
Mark Otto committed
132
      var element = this._element; // for dropup with alignment we use the parent as popper container
Mark Otto's avatar
grunt    
Mark Otto committed
133

Mark Otto's avatar
dist    
Mark Otto committed
134
135
136
      if ($(parent).hasClass(ClassName.DROPUP)) {
        if ($(this._menu).hasClass(ClassName.MENULEFT) || $(this._menu).hasClass(ClassName.MENURIGHT)) {
          element = parent;
Mark Otto's avatar
dist    
Mark Otto committed
137
        }
Mark Otto's avatar
dist    
Mark Otto committed
138
      }
fat's avatar
fat committed
139

Mark Otto's avatar
dist    
Mark Otto committed
140
141
142
143
      this._popper = new Popper(element, this._menu, this._getPopperConfig()); // if this is a touch-enabled device we add extra
      // empty mouseover listeners to the body's immediate children;
      // only needed because of broken event delegation on iOS
      // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html
fat's avatar
fat committed
144

Mark Otto's avatar
dist    
Mark Otto committed
145
146
      if ('ontouchstart' in document.documentElement && !$(parent).closest(Selector.NAVBAR_NAV).length) {
        $('body').children().on('mouseover', null, $.noop);
Mark Otto's avatar
dist    
Mark Otto committed
147
      }
Mark Otto's avatar
dist    
Mark Otto committed
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164

      this._element.focus();

      this._element.setAttribute('aria-expanded', true);

      $(this._menu).toggleClass(ClassName.SHOW);
      $(parent).toggleClass(ClassName.SHOW).trigger($.Event(Event.SHOWN, relatedTarget));
    };

    _proto.dispose = function dispose() {
      $.removeData(this._element, DATA_KEY);
      $(this._element).off(EVENT_KEY);
      this._element = null;
      this._menu = null;

      if (this._popper !== null) {
        this._popper.destroy();
Johann-S's avatar
build    
Johann-S committed
165
      }
fat's avatar
fat committed
166

Mark Otto's avatar
dist    
Mark Otto committed
167
168
      this._popper = null;
    };
Johann-S's avatar
build    
Johann-S committed
169

Mark Otto's avatar
dist    
Mark Otto committed
170
171
172
173
174
    _proto.update = function update() {
      this._inNavbar = this._detectNavbar();

      if (this._popper !== null) {
        this._popper.scheduleUpdate();
Johann-S's avatar
build    
Johann-S committed
175
      }
Mark Otto's avatar
dist    
Mark Otto committed
176
177
178
179
180
181
182
183
184
185
186
187
188
    }; // private


    _proto._addEventListeners = function _addEventListeners() {
      var _this = this;

      $(this._element).on(Event.CLICK, function (event) {
        event.preventDefault();
        event.stopPropagation();

        _this.toggle();
      });
    };
Johann-S's avatar
build    
Johann-S committed
189

Mark Otto's avatar
dist    
Mark Otto committed
190
191
192
193
194
    _proto._getConfig = function _getConfig(config) {
      config = $.extend({}, this.constructor.Default, $(this._element).data(), config);
      Util.typeCheckConfig(NAME, config, this.constructor.DefaultType);
      return config;
    };
Johann-S's avatar
build    
Johann-S committed
195

Mark Otto's avatar
dist    
Mark Otto committed
196
197
198
199
200
    _proto._getMenuElement = function _getMenuElement() {
      if (!this._menu) {
        var parent = Dropdown._getParentFromElement(this._element);

        this._menu = $(parent).find(Selector.MENU)[0];
Johann-S's avatar
build    
Johann-S committed
201
      }
Mark Otto's avatar
dist    
Mark Otto committed
202
203
204
205
206
207
208
209
210
211
212
213
214

      return this._menu;
    };

    _proto._getPlacement = function _getPlacement() {
      var $parentDropdown = $(this._element).parent();
      var placement = AttachmentMap.BOTTOM; // Handle dropup

      if ($parentDropdown.hasClass(ClassName.DROPUP)) {
        placement = AttachmentMap.TOP;

        if ($(this._menu).hasClass(ClassName.MENURIGHT)) {
          placement = AttachmentMap.TOPEND;
Mark Otto's avatar
build    
Mark Otto committed
215
        }
Mark Otto's avatar
dist    
Mark Otto committed
216
217
      } else if ($(this._menu).hasClass(ClassName.MENURIGHT)) {
        placement = AttachmentMap.BOTTOMEND;
Mark Otto's avatar
build    
Mark Otto committed
218
      }
Mark Otto's avatar
dist    
Mark Otto committed
219
220
221
222
223
224
225
226
227

      return placement;
    };

    _proto._detectNavbar = function _detectNavbar() {
      return $(this._element).closest('.navbar').length > 0;
    };

    _proto._getPopperConfig = function _getPopperConfig() {
Mark Otto's avatar
dist    
Mark Otto committed
228
229
230
231
232
233
234
235
236
237
238
239
240
      var _this2 = this;

      var offsetConf = {};

      if (typeof this._config.offset === 'function') {
        offsetConf.fn = function (data) {
          data.offsets = $.extend({}, data.offsets, _this2._config.offset(data.offsets) || {});
          return data;
        };
      } else {
        offsetConf.offset = this._config.offset;
      }

Mark Otto's avatar
dist    
Mark Otto committed
241
242
243
      var popperConfig = {
        placement: this._getPlacement(),
        modifiers: {
Mark Otto's avatar
dist    
Mark Otto committed
244
          offset: offsetConf,
Mark Otto's avatar
dist    
Mark Otto committed
245
246
          flip: {
            enabled: this._config.flip
Mark Otto's avatar
build    
Mark Otto committed
247
          }
Mark Otto's avatar
dist    
Mark Otto committed
248
249
250
251
252
253
254
255
        } // Disable Popper.js for Dropdown in Navbar

      };

      if (this._inNavbar) {
        popperConfig.modifiers.applyStyle = {
          enabled: !this._inNavbar
        };
Mark Otto's avatar
dist    
Mark Otto committed
256
      }
Mark Otto's avatar
dist    
Mark Otto committed
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275

      return popperConfig;
    }; // static


    Dropdown._jQueryInterface = function _jQueryInterface(config) {
      return this.each(function () {
        var data = $(this).data(DATA_KEY);

        var _config = typeof config === 'object' ? config : null;

        if (!data) {
          data = new Dropdown(this, _config);
          $(this).data(DATA_KEY, data);
        }

        if (typeof config === 'string') {
          if (typeof data[config] === 'undefined') {
            throw new Error("No method named \"" + config + "\"");
Mark Otto's avatar
dist    
Mark Otto committed
276
          }
Mark Otto's avatar
build    
Mark Otto committed
277

Mark Otto's avatar
dist    
Mark Otto committed
278
          data[config]();
Mark Otto's avatar
dist    
Mark Otto committed
279
        }
Mark Otto's avatar
dist    
Mark Otto committed
280
281
282
283
284
285
      });
    };

    Dropdown._clearMenus = function _clearMenus(event) {
      if (event && (event.which === RIGHT_MOUSE_BUTTON_WHICH || event.type === 'keyup' && event.which !== TAB_KEYCODE)) {
        return;
Mark Otto's avatar
build    
Mark Otto committed
286
287
      }

Mark Otto's avatar
dist    
Mark Otto committed
288
      var toggles = $.makeArray($(Selector.DATA_TOGGLE));
fat's avatar
fat committed
289

Mark Otto's avatar
dist    
Mark Otto committed
290
291
      for (var i = 0; i < toggles.length; i++) {
        var parent = Dropdown._getParentFromElement(toggles[i]);
fat's avatar
fat committed
292

Mark Otto's avatar
dist    
Mark Otto committed
293
294
295
296
        var context = $(toggles[i]).data(DATA_KEY);
        var relatedTarget = {
          relatedTarget: toggles[i]
        };
fat's avatar
fat committed
297

Mark Otto's avatar
dist    
Mark Otto committed
298
299
        if (!context) {
          continue;
Johann-S's avatar
build    
Johann-S committed
300
301
        }

Mark Otto's avatar
dist    
Mark Otto committed
302
        var dropdownMenu = context._menu;
fat's avatar
fat committed
303

Mark Otto's avatar
dist    
Mark Otto committed
304
305
306
        if (!$(parent).hasClass(ClassName.SHOW)) {
          continue;
        }
fat's avatar
fat committed
307

Mark Otto's avatar
dist    
Mark Otto committed
308
309
310
        if (event && (event.type === 'click' && /input|textarea/i.test(event.target.tagName) || event.type === 'keyup' && event.which === TAB_KEYCODE) && $.contains(parent, event.target)) {
          continue;
        }
Mark Otto's avatar
grunt    
Mark Otto committed
311

Mark Otto's avatar
dist    
Mark Otto committed
312
313
        var hideEvent = $.Event(Event.HIDE, relatedTarget);
        $(parent).trigger(hideEvent);
Mark Otto's avatar
grunt    
Mark Otto committed
314

Mark Otto's avatar
dist    
Mark Otto committed
315
316
317
318
        if (hideEvent.isDefaultPrevented()) {
          continue;
        } // if this is a touch-enabled device we remove the extra
        // empty mouseover listeners we added for iOS support
Mark Otto's avatar
grunt    
Mark Otto committed
319
320


Mark Otto's avatar
dist    
Mark Otto committed
321
322
        if ('ontouchstart' in document.documentElement) {
          $('body').children().off('mouseover', null, $.noop);
Mark Otto's avatar
dist    
Mark Otto committed
323
        }
Mark Otto's avatar
dist    
Mark Otto committed
324
325
326
327

        toggles[i].setAttribute('aria-expanded', 'false');
        $(dropdownMenu).removeClass(ClassName.SHOW);
        $(parent).removeClass(ClassName.SHOW).trigger($.Event(Event.HIDDEN, relatedTarget));
fat's avatar
fat committed
328
      }
Mark Otto's avatar
dist    
Mark Otto committed
329
    };
fat's avatar
fat committed
330

Mark Otto's avatar
dist    
Mark Otto committed
331
332
333
    Dropdown._getParentFromElement = function _getParentFromElement(element) {
      var parent;
      var selector = Util.getSelectorFromElement(element);
fat's avatar
fat committed
334

Mark Otto's avatar
dist    
Mark Otto committed
335
336
      if (selector) {
        parent = $(selector)[0];
Mark Otto's avatar
grunt    
Mark Otto committed
337
      }
Mark Otto's avatar
dist    
Mark Otto committed
338

Mark Otto's avatar
dist    
Mark Otto committed
339
340
      return parent || element.parentNode;
    };
fat's avatar
fat committed
341

Mark Otto's avatar
dist    
Mark Otto committed
342
    Dropdown._dataApiKeydownHandler = function _dataApiKeydownHandler(event) {
Mark Otto's avatar
dist    
Mark Otto committed
343
344
345
346
347
348
349
350
      // If not input/textarea:
      //  - And not a key in REGEXP_KEYDOWN => not a dropdown command
      // If input/textarea:
      //  - If space key => not a dropdown command
      //  - If key is other than escape
      //    - If key is not up or down => not a dropdown command
      //    - If trigger inside the menu => not a dropdown command
      if (/input|textarea/i.test(event.target.tagName) ? event.which === SPACE_KEYCODE || event.which !== ESCAPE_KEYCODE && (event.which !== ARROW_DOWN_KEYCODE && event.which !== ARROW_UP_KEYCODE || $(event.target).closest(Selector.MENU).length) : !REGEXP_KEYDOWN.test(event.which)) {
Mark Otto's avatar
dist    
Mark Otto committed
351
352
        return;
      }
fat's avatar
fat committed
353

Mark Otto's avatar
dist    
Mark Otto committed
354
355
      event.preventDefault();
      event.stopPropagation();
fat's avatar
fat committed
356

Mark Otto's avatar
dist    
Mark Otto committed
357
358
359
      if (this.disabled || $(this).hasClass(ClassName.DISABLED)) {
        return;
      }
fat's avatar
fat committed
360

Mark Otto's avatar
dist    
Mark Otto committed
361
      var parent = Dropdown._getParentFromElement(this);
Mark Otto's avatar
grunt    
Mark Otto committed
362

Mark Otto's avatar
dist    
Mark Otto committed
363
364
365
366
367
368
      var isActive = $(parent).hasClass(ClassName.SHOW);

      if (!isActive && (event.which !== ESCAPE_KEYCODE || event.which !== SPACE_KEYCODE) || isActive && (event.which === ESCAPE_KEYCODE || event.which === SPACE_KEYCODE)) {
        if (event.which === ESCAPE_KEYCODE) {
          var toggle = $(parent).find(Selector.DATA_TOGGLE)[0];
          $(toggle).trigger('focus');
fat's avatar
fat committed
369
370
        }

Mark Otto's avatar
dist    
Mark Otto committed
371
372
373
        $(this).trigger('click');
        return;
      }
fat's avatar
fat committed
374

Mark Otto's avatar
dist    
Mark Otto committed
375
      var items = $(parent).find(Selector.VISIBLE_ITEMS).get();
fat's avatar
fat committed
376

Mark Otto's avatar
dist    
Mark Otto committed
377
378
379
      if (!items.length) {
        return;
      }
fat's avatar
fat committed
380

Mark Otto's avatar
dist    
Mark Otto committed
381
      var index = items.indexOf(event.target);
Mark Otto's avatar
Mark Otto committed
382

Mark Otto's avatar
dist    
Mark Otto committed
383
384
385
386
      if (event.which === ARROW_UP_KEYCODE && index > 0) {
        // up
        index--;
      }
Mark Otto's avatar
Mark Otto committed
387

Mark Otto's avatar
dist    
Mark Otto committed
388
389
390
391
      if (event.which === ARROW_DOWN_KEYCODE && index < items.length - 1) {
        // down
        index++;
      }
fat's avatar
fat committed
392

Mark Otto's avatar
dist    
Mark Otto committed
393
394
      if (index < 0) {
        index = 0;
fat's avatar
fat committed
395
      }
Mark Otto's avatar
dist    
Mark Otto committed
396
397
398
399
400
401

      items[index].focus();
    };

    _createClass(Dropdown, null, [{
      key: "VERSION",
Jacob Thornton's avatar
Jacob Thornton committed
402
403
404
      get: function get() {
        return VERSION;
      }
Johann-S's avatar
build    
Johann-S committed
405
    }, {
Mark Otto's avatar
dist    
Mark Otto committed
406
      key: "Default",
Johann-S's avatar
build    
Johann-S committed
407
408
409
410
      get: function get() {
        return Default;
      }
    }, {
Mark Otto's avatar
dist    
Mark Otto committed
411
      key: "DefaultType",
Johann-S's avatar
build    
Johann-S committed
412
413
414
      get: function get() {
        return DefaultType;
      }
fat's avatar
fat committed
415
416
417
    }]);

    return Dropdown;
Mark Otto's avatar
grunt    
Mark Otto committed
418
419
420
421
422
423
  }();
  /**
   * ------------------------------------------------------------------------
   * Data Api implementation
   * ------------------------------------------------------------------------
   */
fat's avatar
fat committed
424

Mark Otto's avatar
dist    
Mark Otto committed
425
426

  $(document).on(Event.KEYDOWN_DATA_API, Selector.DATA_TOGGLE, Dropdown._dataApiKeydownHandler).on(Event.KEYDOWN_DATA_API, Selector.MENU, Dropdown._dataApiKeydownHandler).on(Event.CLICK_DATA_API + " " + Event.KEYUP_DATA_API, Dropdown._clearMenus).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {
Johann-S's avatar
build    
Johann-S committed
427
428
    event.preventDefault();
    event.stopPropagation();
Mark Otto's avatar
dist    
Mark Otto committed
429

Johann-S's avatar
build    
Johann-S committed
430
431
    Dropdown._jQueryInterface.call($(this), 'toggle');
  }).on(Event.CLICK_DATA_API, Selector.FORM_CHILD, function (e) {
fat's avatar
fat committed
432
    e.stopPropagation();
Mark Otto's avatar
Mark Otto committed
433
  });
fat's avatar
fat committed
434
435
436
437
438
439
  /**
   * ------------------------------------------------------------------------
   * jQuery
   * ------------------------------------------------------------------------
   */

Mark Otto's avatar
Mark Otto committed
440
  $.fn[NAME] = Dropdown._jQueryInterface;
fat's avatar
fat committed
441
  $.fn[NAME].Constructor = Dropdown;
Mark Otto's avatar
dist    
Mark Otto committed
442

fat's avatar
fat committed
443
444
445
446
447
448
  $.fn[NAME].noConflict = function () {
    $.fn[NAME] = JQUERY_NO_CONFLICT;
    return Dropdown._jQueryInterface;
  };

  return Dropdown;
Mark Otto's avatar
dist    
Mark Otto committed
449
}($, Popper);
Mark Otto's avatar
build    
Mark Otto committed
450
//# sourceMappingURL=dropdown.js.map