dropdown.js 13.8 KB
Newer Older
Johann-S's avatar
build    
Johann-S committed
1
2
var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };

Mark Otto's avatar
grunt    
Mark Otto committed
3
var _createClass = function () { 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); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
fat's avatar
fat committed
4

Mark Otto's avatar
grunt    
Mark Otto committed
5
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
fat's avatar
fat committed
6
7
8

/**
 * --------------------------------------------------------------------------
Mark Otto's avatar
Mark Otto committed
9
 * Bootstrap (v4.0.0-alpha.6): dropdown.js
fat's avatar
fat committed
10
11
12
13
 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
 * --------------------------------------------------------------------------
 */

Mark Otto's avatar
grunt    
Mark Otto committed
14
var Dropdown = function ($) {
fat's avatar
fat committed
15

Johann-S's avatar
build    
Johann-S committed
16
17
18
19
20
21
22
23
  /**
   * 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
24
25
26
27
28
29
30
  /**
   * ------------------------------------------------------------------------
   * Constants
   * ------------------------------------------------------------------------
   */

  var NAME = 'dropdown';
Mark Otto's avatar
Mark Otto committed
31
  var VERSION = '4.0.0-alpha.6';
fat's avatar
fat committed
32
  var DATA_KEY = 'bs.dropdown';
fat's avatar
fat committed
33
34
  var EVENT_KEY = '.' + DATA_KEY;
  var DATA_API_KEY = '.data-api';
fat's avatar
fat committed
35
  var JQUERY_NO_CONFLICT = $.fn[NAME];
Chris Rebert's avatar
grunt    
Chris Rebert committed
36
  var ESCAPE_KEYCODE = 27; // KeyboardEvent.which value for Escape (Esc) key
Mark Otto's avatar
grunt    
Mark Otto committed
37
  var SPACE_KEYCODE = 32; // KeyboardEvent.which value for space key
Mark Otto's avatar
grunt    
Mark Otto committed
38
  var TAB_KEYCODE = 9; // KeyboardEvent.which value for tab key
Chris Rebert's avatar
grunt    
Chris Rebert committed
39
40
41
  var ARROW_UP_KEYCODE = 38; // KeyboardEvent.which value for up arrow key
  var ARROW_DOWN_KEYCODE = 40; // KeyboardEvent.which value for down arrow key
  var RIGHT_MOUSE_BUTTON_WHICH = 3; // MouseEvent.which value for the right button (assuming a right-handed mouse)
Mark Otto's avatar
grunt    
Mark Otto committed
42
  var REGEXP_KEYDOWN = new RegExp(ARROW_UP_KEYCODE + '|' + ARROW_DOWN_KEYCODE + '|' + ESCAPE_KEYCODE);
fat's avatar
fat committed
43
44

  var Event = {
fat's avatar
fat committed
45
46
47
48
49
    HIDE: 'hide' + EVENT_KEY,
    HIDDEN: 'hidden' + EVENT_KEY,
    SHOW: 'show' + EVENT_KEY,
    SHOWN: 'shown' + EVENT_KEY,
    CLICK: 'click' + EVENT_KEY,
Jacob Thornton's avatar
Jacob Thornton committed
50
    CLICK_DATA_API: 'click' + EVENT_KEY + DATA_API_KEY,
Mark Otto's avatar
grunt    
Mark Otto committed
51
52
    KEYDOWN_DATA_API: 'keydown' + EVENT_KEY + DATA_API_KEY,
    KEYUP_DATA_API: 'keyup' + EVENT_KEY + DATA_API_KEY
fat's avatar
fat committed
53
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
65
  };

  var Selector = {
    DATA_TOGGLE: '[data-toggle="dropdown"]',
    FORM_CHILD: '.dropdown form',
Mark Otto's avatar
grunt    
Mark Otto committed
66
    MENU: '.dropdown-menu',
fat's avatar
fat committed
67
    NAVBAR_NAV: '.navbar-nav',
Mark Otto's avatar
grunt    
Mark Otto committed
68
    VISIBLE_ITEMS: '.dropdown-menu .dropdown-item:not(.disabled)'
fat's avatar
fat committed
69
70
  };

Johann-S's avatar
build    
Johann-S committed
71
72
  var AttachmentMap = {
    TOP: 'top-start',
Mark Otto's avatar
build    
Mark Otto committed
73
74
75
    TOPEND: 'top-end',
    BOTTOM: 'bottom-start',
    BOTTOMEND: 'bottom-end'
Johann-S's avatar
build    
Johann-S committed
76
77
78
79
80
81
82
83
84
85
86
87
88
  };

  var Default = {
    placement: AttachmentMap.BOTTOM,
    offset: 0,
    flip: true
  };

  var DefaultType = {
    placement: 'string',
    offset: '(number|string)',
    flip: 'boolean'

Mark Otto's avatar
Mark Otto committed
89
90
91
92
93
    /**
     * ------------------------------------------------------------------------
     * Class Definition
     * ------------------------------------------------------------------------
     */
fat's avatar
fat committed
94

Mark Otto's avatar
Mark Otto committed
95
  };
Mark Otto's avatar
grunt    
Mark Otto committed
96
  var Dropdown = function () {
Johann-S's avatar
build    
Johann-S committed
97
    function Dropdown(element, config) {
fat's avatar
fat committed
98
99
      _classCallCheck(this, Dropdown);

fat's avatar
fat committed
100
      this._element = element;
Johann-S's avatar
build    
Johann-S committed
101
102
103
      this._popper = null;
      this._config = this._getConfig(config);
      this._menu = this._getMenuElement();
Mark Otto's avatar
build    
Mark Otto committed
104
      this._inNavbar = this._detectNavbar();
fat's avatar
fat committed
105
106

      this._addEventListeners();
fat's avatar
fat committed
107
108
    }

Jacob Thornton's avatar
Jacob Thornton committed
109
110
    // getters

Mark Otto's avatar
grunt    
Mark Otto committed
111
    // public
fat's avatar
fat committed
112

Mark Otto's avatar
grunt    
Mark Otto committed
113
    Dropdown.prototype.toggle = function toggle() {
Johann-S's avatar
build    
Johann-S committed
114
115
      if (this._element.disabled || $(this._element).hasClass(ClassName.DISABLED)) {
        return;
Mark Otto's avatar
grunt    
Mark Otto committed
116
      }
fat's avatar
fat committed
117

Johann-S's avatar
build    
Johann-S committed
118
119
      var parent = Dropdown._getParentFromElement(this._element);
      var isActive = $(this._menu).hasClass(ClassName.SHOW);
fat's avatar
fat committed
120

Mark Otto's avatar
grunt    
Mark Otto committed
121
      Dropdown._clearMenus();
fat's avatar
fat committed
122

Mark Otto's avatar
grunt    
Mark Otto committed
123
      if (isActive) {
Johann-S's avatar
build    
Johann-S committed
124
        return;
Mark Otto's avatar
grunt    
Mark Otto committed
125
      }
fat's avatar
fat committed
126

Mark Otto's avatar
grunt    
Mark Otto committed
127
      var relatedTarget = {
Johann-S's avatar
build    
Johann-S committed
128
        relatedTarget: this._element
Mark Otto's avatar
grunt    
Mark Otto committed
129
      };
Mark Otto's avatar
grunt    
Mark Otto committed
130
      var showEvent = $.Event(Event.SHOW, relatedTarget);
fat's avatar
fat committed
131

Mark Otto's avatar
grunt    
Mark Otto committed
132
      $(parent).trigger(showEvent);
fat's avatar
fat committed
133

Mark Otto's avatar
grunt    
Mark Otto committed
134
      if (showEvent.isDefaultPrevented()) {
Johann-S's avatar
build    
Johann-S committed
135
        return;
Mark Otto's avatar
grunt    
Mark Otto committed
136
      }
fat's avatar
fat committed
137

Mark Otto's avatar
build    
Mark Otto committed
138
139
140
141
142
143
144
      var element = this._element;
      // for dropup with alignment we use the parent as popper container
      if ($(parent).hasClass(ClassName.DROPUP)) {
        if ($(this._menu).hasClass(ClassName.MENULEFT) || $(this._menu).hasClass(ClassName.MENURIGHT)) {
          element = parent;
        }
      }
Mark Otto's avatar
build    
Mark Otto committed
145
      this._popper = new Popper(element, this._menu, this._getPopperConfig());
Johann-S's avatar
build    
Johann-S committed
146

Mark Otto's avatar
grunt    
Mark Otto committed
147
148
149
150
      // 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
Mark Otto's avatar
grunt    
Mark Otto committed
151
      if ('ontouchstart' in document.documentElement && !$(parent).closest(Selector.NAVBAR_NAV).length) {
Mark Otto's avatar
build    
Mark Otto committed
152
        $('body').children().on('mouseover', null, $.noop);
Mark Otto's avatar
grunt    
Mark Otto committed
153
154
      }

Johann-S's avatar
build    
Johann-S committed
155
156
      this._element.focus();
      this._element.setAttribute('aria-expanded', true);
fat's avatar
fat committed
157

Johann-S's avatar
build    
Johann-S committed
158
159
      $(this._menu).toggleClass(ClassName.SHOW);
      $(parent).toggleClass(ClassName.SHOW).trigger($.Event(Event.SHOWN, relatedTarget));
Mark Otto's avatar
grunt    
Mark Otto committed
160
    };
fat's avatar
fat committed
161

Mark Otto's avatar
grunt    
Mark Otto committed
162
163
164
165
    Dropdown.prototype.dispose = function dispose() {
      $.removeData(this._element, DATA_KEY);
      $(this._element).off(EVENT_KEY);
      this._element = null;
Johann-S's avatar
build    
Johann-S committed
166
167
168
169
170
171
172
173
      this._menu = null;
      if (this._popper !== null) {
        this._popper.destroy();
      }
      this._popper = null;
    };

    Dropdown.prototype.update = function update() {
Mark Otto's avatar
build    
Mark Otto committed
174
      this._inNavbar = this._detectNavbar();
Johann-S's avatar
build    
Johann-S committed
175
176
177
      if (this._popper !== null) {
        this._popper.scheduleUpdate();
      }
Mark Otto's avatar
grunt    
Mark Otto committed
178
    };
fat's avatar
fat committed
179

Mark Otto's avatar
grunt    
Mark Otto committed
180
    // private
fat's avatar
fat committed
181

Mark Otto's avatar
grunt    
Mark Otto committed
182
    Dropdown.prototype._addEventListeners = function _addEventListeners() {
Johann-S's avatar
build    
Johann-S committed
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
      var _this = this;

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

    Dropdown.prototype._getConfig = function _getConfig(config) {
      var elementData = $(this._element).data();
      if (elementData.placement !== undefined) {
        elementData.placement = AttachmentMap[elementData.placement.toUpperCase()];
      }

      config = $.extend({}, this.constructor.Default, $(this._element).data(), config);

      Util.typeCheckConfig(NAME, config, this.constructor.DefaultType);

      return config;
    };

    Dropdown.prototype._getMenuElement = function _getMenuElement() {
      if (!this._menu) {
        var parent = Dropdown._getParentFromElement(this._element);
        this._menu = $(parent).find(Selector.MENU)[0];
      }
      return this._menu;
Mark Otto's avatar
grunt    
Mark Otto committed
211
    };
fat's avatar
fat committed
212

Mark Otto's avatar
build    
Mark Otto committed
213
214
215
216
217
218
219
220
221
222
    Dropdown.prototype._getPlacement = function _getPlacement() {
      var $parentDropdown = $(this._element).parent();
      var placement = this._config.placement;

      // Handle dropup
      if ($parentDropdown.hasClass(ClassName.DROPUP) || this._config.placement === AttachmentMap.TOP) {
        placement = AttachmentMap.TOP;
        if ($(this._menu).hasClass(ClassName.MENURIGHT)) {
          placement = AttachmentMap.TOPEND;
        }
Mark Otto's avatar
build    
Mark Otto committed
223
224
      } else if ($(this._menu).hasClass(ClassName.MENURIGHT)) {
        placement = AttachmentMap.BOTTOMEND;
Mark Otto's avatar
build    
Mark Otto committed
225
226
227
228
      }
      return placement;
    };

Mark Otto's avatar
build    
Mark Otto committed
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
    Dropdown.prototype._detectNavbar = function _detectNavbar() {
      return $(this._element).closest('.navbar').length > 0;
    };

    Dropdown.prototype._getPopperConfig = function _getPopperConfig() {
      var _this2 = this;

      var popperConfig = {
        placement: this._getPlacement(),
        modifiers: {
          offset: {
            offset: this._config.offset
          },
          flip: {
            enabled: this._config.flip
          }
        }
      };

      if (this._inNavbar) {
        popperConfig.modifiers.AfterApplyStyle = {
          enabled: true,
          order: 901, // ApplyStyle order + 1
          fn: function fn() {
            // reset Popper styles
            $(_this2._menu).attr('style', '');
          }
        };
      }
      return popperConfig;
    };

Mark Otto's avatar
grunt    
Mark Otto committed
261
    // static
fat's avatar
fat committed
262

Mark Otto's avatar
grunt    
Mark Otto committed
263
264
265
    Dropdown._jQueryInterface = function _jQueryInterface(config) {
      return this.each(function () {
        var data = $(this).data(DATA_KEY);
Johann-S's avatar
build    
Johann-S committed
266
        var _config = (typeof config === 'undefined' ? 'undefined' : _typeof(config)) === 'object' ? config : null;
fat's avatar
fat committed
267

Mark Otto's avatar
grunt    
Mark Otto committed
268
        if (!data) {
Johann-S's avatar
build    
Johann-S committed
269
          data = new Dropdown(this, _config);
Mark Otto's avatar
grunt    
Mark Otto committed
270
          $(this).data(DATA_KEY, data);
fat's avatar
fat committed
271
272
        }

Mark Otto's avatar
grunt    
Mark Otto committed
273
274
275
276
        if (typeof config === 'string') {
          if (data[config] === undefined) {
            throw new Error('No method named "' + config + '"');
          }
Johann-S's avatar
build    
Johann-S committed
277
          data[config]();
fat's avatar
fat committed
278
        }
Mark Otto's avatar
grunt    
Mark Otto committed
279
280
      });
    };
fat's avatar
fat committed
281

Mark Otto's avatar
grunt    
Mark Otto committed
282
    Dropdown._clearMenus = function _clearMenus(event) {
Mark Otto's avatar
grunt    
Mark Otto committed
283
      if (event && (event.which === RIGHT_MOUSE_BUTTON_WHICH || event.type === 'keyup' && event.which !== TAB_KEYCODE)) {
Mark Otto's avatar
grunt    
Mark Otto committed
284
285
        return;
      }
fat's avatar
fat committed
286

Mark Otto's avatar
grunt    
Mark Otto committed
287
288
289
      var toggles = $.makeArray($(Selector.DATA_TOGGLE));
      for (var i = 0; i < toggles.length; i++) {
        var parent = Dropdown._getParentFromElement(toggles[i]);
Johann-S's avatar
build    
Johann-S committed
290
        var context = $(toggles[i]).data(DATA_KEY);
Mark Otto's avatar
grunt    
Mark Otto committed
291
292
293
        var relatedTarget = {
          relatedTarget: toggles[i]
        };
fat's avatar
fat committed
294

Johann-S's avatar
build    
Johann-S committed
295
296
297
298
299
        if (!context) {
          continue;
        }

        var dropdownMenu = context._menu;
Mark Otto's avatar
grunt    
Mark Otto committed
300
        if (!$(parent).hasClass(ClassName.SHOW)) {
Mark Otto's avatar
grunt    
Mark Otto committed
301
302
          continue;
        }
fat's avatar
fat committed
303

Mark Otto's avatar
grunt    
Mark Otto committed
304
        if (event && (event.type === 'click' && /input|textarea/i.test(event.target.tagName) || event.type === 'keyup' && event.which === TAB_KEYCODE) && $.contains(parent, event.target)) {
Mark Otto's avatar
grunt    
Mark Otto committed
305
306
          continue;
        }
fat's avatar
fat committed
307

Mark Otto's avatar
grunt    
Mark Otto committed
308
309
310
311
        var hideEvent = $.Event(Event.HIDE, relatedTarget);
        $(parent).trigger(hideEvent);
        if (hideEvent.isDefaultPrevented()) {
          continue;
fat's avatar
fat committed
312
        }
Mark Otto's avatar
grunt    
Mark Otto committed
313

Mark Otto's avatar
grunt    
Mark Otto committed
314
315
316
        // if this is a touch-enabled device we remove the extra
        // empty mouseover listeners we added for iOS support
        if ('ontouchstart' in document.documentElement) {
Mark Otto's avatar
build    
Mark Otto committed
317
          $('body').children().off('mouseover', null, $.noop);
Mark Otto's avatar
grunt    
Mark Otto committed
318
319
        }

Mark Otto's avatar
grunt    
Mark Otto committed
320
321
        toggles[i].setAttribute('aria-expanded', 'false');

Johann-S's avatar
build    
Johann-S committed
322
        $(dropdownMenu).removeClass(ClassName.SHOW);
Mark Otto's avatar
grunt    
Mark Otto committed
323
        $(parent).removeClass(ClassName.SHOW).trigger($.Event(Event.HIDDEN, relatedTarget));
fat's avatar
fat committed
324
      }
Mark Otto's avatar
grunt    
Mark Otto committed
325
326
327
328
329
    };

    Dropdown._getParentFromElement = function _getParentFromElement(element) {
      var parent = void 0;
      var selector = Util.getSelectorFromElement(element);
fat's avatar
fat committed
330

Mark Otto's avatar
grunt    
Mark Otto committed
331
332
      if (selector) {
        parent = $(selector)[0];
fat's avatar
fat committed
333
334
      }

Mark Otto's avatar
grunt    
Mark Otto committed
335
336
      return parent || element.parentNode;
    };
fat's avatar
fat committed
337

Mark Otto's avatar
grunt    
Mark Otto committed
338
    Dropdown._dataApiKeydownHandler = function _dataApiKeydownHandler(event) {
Mark Otto's avatar
grunt    
Mark Otto committed
339
      if (!REGEXP_KEYDOWN.test(event.which) || /button/i.test(event.target.tagName) && event.which === SPACE_KEYCODE || /input|textarea/i.test(event.target.tagName)) {
Mark Otto's avatar
grunt    
Mark Otto committed
340
341
        return;
      }
fat's avatar
fat committed
342

Mark Otto's avatar
grunt    
Mark Otto committed
343
344
      event.preventDefault();
      event.stopPropagation();
fat's avatar
fat committed
345

Mark Otto's avatar
grunt    
Mark Otto committed
346
347
348
      if (this.disabled || $(this).hasClass(ClassName.DISABLED)) {
        return;
      }
fat's avatar
fat committed
349

Mark Otto's avatar
grunt    
Mark Otto committed
350
      var parent = Dropdown._getParentFromElement(this);
Mark Otto's avatar
grunt    
Mark Otto committed
351
      var isActive = $(parent).hasClass(ClassName.SHOW);
fat's avatar
fat committed
352

Mark Otto's avatar
grunt    
Mark Otto committed
353
      if (!isActive && (event.which !== ESCAPE_KEYCODE || event.which !== SPACE_KEYCODE) || isActive && (event.which === ESCAPE_KEYCODE || event.which === SPACE_KEYCODE)) {
Mark Otto's avatar
grunt    
Mark Otto committed
354
355
356
357

        if (event.which === ESCAPE_KEYCODE) {
          var toggle = $(parent).find(Selector.DATA_TOGGLE)[0];
          $(toggle).trigger('focus');
fat's avatar
fat committed
358
359
        }

Mark Otto's avatar
grunt    
Mark Otto committed
360
361
362
        $(this).trigger('click');
        return;
      }
fat's avatar
fat committed
363

Mark Otto's avatar
grunt    
Mark Otto committed
364
      var items = $(parent).find(Selector.VISIBLE_ITEMS).get();
fat's avatar
fat committed
365

Mark Otto's avatar
grunt    
Mark Otto committed
366
367
368
      if (!items.length) {
        return;
      }
fat's avatar
fat committed
369

Mark Otto's avatar
grunt    
Mark Otto committed
370
      var index = items.indexOf(event.target);
Mark Otto's avatar
Mark Otto committed
371

Mark Otto's avatar
grunt    
Mark Otto committed
372
373
374
375
      if (event.which === ARROW_UP_KEYCODE && index > 0) {
        // up
        index--;
      }
Mark Otto's avatar
Mark Otto committed
376

Mark Otto's avatar
grunt    
Mark Otto committed
377
378
379
380
      if (event.which === ARROW_DOWN_KEYCODE && index < items.length - 1) {
        // down
        index++;
      }
fat's avatar
fat committed
381

Mark Otto's avatar
grunt    
Mark Otto committed
382
383
      if (index < 0) {
        index = 0;
fat's avatar
fat committed
384
      }
Mark Otto's avatar
grunt    
Mark Otto committed
385
386
387
388
389

      items[index].focus();
    };

    _createClass(Dropdown, null, [{
Jacob Thornton's avatar
Jacob Thornton committed
390
391
392
393
      key: 'VERSION',
      get: function get() {
        return VERSION;
      }
Johann-S's avatar
build    
Johann-S committed
394
395
396
397
398
399
400
401
402
403
    }, {
      key: 'Default',
      get: function get() {
        return Default;
      }
    }, {
      key: 'DefaultType',
      get: function get() {
        return DefaultType;
      }
fat's avatar
fat committed
404
405
406
    }]);

    return Dropdown;
Mark Otto's avatar
grunt    
Mark Otto committed
407
408
409
410
411
412
413
  }();

  /**
   * ------------------------------------------------------------------------
   * Data Api implementation
   * ------------------------------------------------------------------------
   */
fat's avatar
fat committed
414

Johann-S's avatar
build    
Johann-S committed
415
416
417
418
419
  $(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) {
    event.preventDefault();
    event.stopPropagation();
    Dropdown._jQueryInterface.call($(this), 'toggle');
  }).on(Event.CLICK_DATA_API, Selector.FORM_CHILD, function (e) {
fat's avatar
fat committed
420
    e.stopPropagation();
Mark Otto's avatar
Mark Otto committed
421
  }
fat's avatar
fat committed
422
423
424
425
426
427
428

  /**
   * ------------------------------------------------------------------------
   * jQuery
   * ------------------------------------------------------------------------
   */

Mark Otto's avatar
Mark Otto committed
429
  );$.fn[NAME] = Dropdown._jQueryInterface;
fat's avatar
fat committed
430
431
432
433
434
435
436
  $.fn[NAME].Constructor = Dropdown;
  $.fn[NAME].noConflict = function () {
    $.fn[NAME] = JQUERY_NO_CONFLICT;
    return Dropdown._jQueryInterface;
  };

  return Dropdown;
Johann-S's avatar
build    
Johann-S committed
437
}(jQuery); /* global Popper */
Mark Otto's avatar
build    
Mark Otto committed
438
//# sourceMappingURL=dropdown.js.map