@coreui/coreui 4.0.5 → 4.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (143) hide show
  1. package/README.md +4 -7
  2. package/dist/css/coreui-grid.css +254 -205
  3. package/dist/css/coreui-grid.css.map +1 -1
  4. package/dist/css/coreui-grid.min.css +2 -2
  5. package/dist/css/coreui-grid.min.css.map +1 -1
  6. package/dist/css/coreui-grid.rtl.css +255 -206
  7. package/dist/css/coreui-grid.rtl.css.map +1 -1
  8. package/dist/css/coreui-grid.rtl.min.css +3 -3
  9. package/dist/css/coreui-grid.rtl.min.css.map +1 -1
  10. package/dist/css/coreui-reboot.css +63 -8
  11. package/dist/css/coreui-reboot.css.map +1 -1
  12. package/dist/css/coreui-reboot.min.css +2 -2
  13. package/dist/css/coreui-reboot.min.css.map +1 -1
  14. package/dist/css/coreui-reboot.rtl.css +64 -9
  15. package/dist/css/coreui-reboot.rtl.css.map +1 -1
  16. package/dist/css/coreui-reboot.rtl.min.css +3 -3
  17. package/dist/css/coreui-reboot.rtl.min.css.map +1 -1
  18. package/dist/css/coreui-utilities.css +181 -81
  19. package/dist/css/coreui-utilities.css.map +1 -1
  20. package/dist/css/coreui-utilities.min.css +2 -2
  21. package/dist/css/coreui-utilities.min.css.map +1 -1
  22. package/dist/css/coreui-utilities.rtl.css +182 -82
  23. package/dist/css/coreui-utilities.rtl.css.map +1 -1
  24. package/dist/css/coreui-utilities.rtl.min.css +3 -3
  25. package/dist/css/coreui-utilities.rtl.min.css.map +1 -1
  26. package/dist/css/coreui.css +713 -346
  27. package/dist/css/coreui.css.map +1 -1
  28. package/dist/css/coreui.min.css +2 -2
  29. package/dist/css/coreui.min.css.map +1 -1
  30. package/dist/css/coreui.rtl.css +699 -347
  31. package/dist/css/coreui.rtl.css.map +1 -1
  32. package/dist/css/coreui.rtl.min.css +3 -3
  33. package/dist/css/coreui.rtl.min.css.map +1 -1
  34. package/dist/js/coreui.bundle.js +851 -746
  35. package/dist/js/coreui.bundle.js.map +1 -1
  36. package/dist/js/coreui.bundle.min.js +3 -3
  37. package/dist/js/coreui.bundle.min.js.map +1 -1
  38. package/dist/js/coreui.esm.js +704 -644
  39. package/dist/js/coreui.esm.js.map +1 -1
  40. package/dist/js/coreui.esm.min.js +3 -3
  41. package/dist/js/coreui.esm.min.js.map +1 -1
  42. package/dist/js/coreui.js +714 -656
  43. package/dist/js/coreui.js.map +1 -1
  44. package/dist/js/coreui.min.js +3 -3
  45. package/dist/js/coreui.min.js.map +1 -1
  46. package/js/dist/alert.js +82 -49
  47. package/js/dist/alert.js.map +1 -1
  48. package/js/dist/base-component.js +26 -18
  49. package/js/dist/base-component.js.map +1 -1
  50. package/js/dist/button.js +23 -13
  51. package/js/dist/button.js.map +1 -1
  52. package/js/dist/carousel.js +95 -50
  53. package/js/dist/carousel.js.map +1 -1
  54. package/js/dist/collapse.js +125 -139
  55. package/js/dist/collapse.js.map +1 -1
  56. package/js/dist/dom/data.js +6 -6
  57. package/js/dist/dom/data.js.map +1 -1
  58. package/js/dist/dom/event-handler.js +15 -6
  59. package/js/dist/dom/event-handler.js.map +1 -1
  60. package/js/dist/dom/manipulator.js +7 -7
  61. package/js/dist/dom/manipulator.js.map +1 -1
  62. package/js/dist/dom/selector-engine.js +74 -9
  63. package/js/dist/dom/selector-engine.js.map +1 -1
  64. package/js/dist/dropdown.js +125 -112
  65. package/js/dist/dropdown.js.map +1 -1
  66. package/js/dist/modal.js +270 -93
  67. package/js/dist/modal.js.map +1 -1
  68. package/js/dist/offcanvas.js +231 -62
  69. package/js/dist/offcanvas.js.map +1 -1
  70. package/js/dist/popover.js +29 -59
  71. package/js/dist/popover.js.map +1 -1
  72. package/js/dist/scrollspy.js +45 -35
  73. package/js/dist/scrollspy.js.map +1 -1
  74. package/js/dist/tab.js +45 -23
  75. package/js/dist/tab.js.map +1 -1
  76. package/js/dist/toast.js +132 -34
  77. package/js/dist/toast.js.map +1 -1
  78. package/js/dist/tooltip.js +127 -109
  79. package/js/dist/tooltip.js.map +1 -1
  80. package/js/src/alert.js +21 -47
  81. package/js/src/base-component.js +3 -3
  82. package/js/src/button.js +1 -1
  83. package/js/src/carousel.js +10 -4
  84. package/js/src/collapse.js +66 -119
  85. package/js/src/dom/data.js +1 -1
  86. package/js/src/dom/event-handler.js +1 -2
  87. package/js/src/dom/manipulator.js +3 -3
  88. package/js/src/dom/selector-engine.js +18 -1
  89. package/js/src/dropdown.js +53 -68
  90. package/js/src/modal.js +24 -35
  91. package/js/src/navigation.js +1 -1
  92. package/js/src/offcanvas.js +16 -18
  93. package/js/src/popover.js +7 -49
  94. package/js/src/scrollspy.js +1 -1
  95. package/js/src/sidebar.js +21 -27
  96. package/js/src/tab.js +1 -1
  97. package/js/src/toast.js +11 -11
  98. package/js/src/tooltip.js +66 -50
  99. package/js/src/util/backdrop.js +6 -5
  100. package/js/src/util/component-functions.js +34 -0
  101. package/js/src/util/focustrap.js +105 -0
  102. package/js/src/util/index.js +39 -11
  103. package/js/src/util/sanitizer.js +21 -22
  104. package/js/src/util/scrollbar.js +1 -1
  105. package/package.json +54 -55
  106. package/scss/_buttons.scss +1 -2
  107. package/scss/_card.scss +2 -1
  108. package/scss/_dropdown.scss +1 -1
  109. package/scss/_functions.scss +51 -12
  110. package/scss/_grid.scss +0 -23
  111. package/scss/_helpers.scss +2 -0
  112. package/scss/_mixins.scss +1 -0
  113. package/scss/_modal.scss +2 -12
  114. package/scss/_nav.scss +1 -2
  115. package/scss/_navbar.scss +30 -1
  116. package/scss/_offcanvas.scss +6 -2
  117. package/scss/_placeholders.scss +51 -0
  118. package/scss/_reboot.scss +12 -8
  119. package/scss/_root.scss +36 -7
  120. package/scss/_tables.scss +9 -5
  121. package/scss/_toasts.scss +2 -2
  122. package/scss/_transitions.scss +6 -0
  123. package/scss/_utilities.scss +31 -8
  124. package/scss/_variables.scss +188 -13
  125. package/scss/coreui-grid.rtl.scss +1 -1
  126. package/scss/coreui-grid.scss +3 -1
  127. package/scss/coreui-reboot.rtl.scss +1 -1
  128. package/scss/coreui-reboot.scss +2 -4
  129. package/scss/coreui-utilities.rtl.scss +1 -1
  130. package/scss/coreui-utilities.scss +1 -1
  131. package/scss/coreui.rtl.scss +1 -1
  132. package/scss/coreui.scss +2 -1
  133. package/scss/forms/_form-control.scss +1 -1
  134. package/scss/forms/_form-select.scss +2 -0
  135. package/scss/helpers/_stacks.scss +15 -0
  136. package/scss/helpers/_vr.scss +8 -0
  137. package/scss/mixins/_backdrop.scss +14 -0
  138. package/scss/mixins/_grid.scss +26 -7
  139. package/scss/mixins/_ltr-rtl.scss +21 -0
  140. package/scss/mixins/_reset-text.scss +1 -1
  141. package/scss/mixins/_utilities.scss +28 -33
  142. package/scss/mixins/_visually-hidden.scss +1 -1
  143. package/scss/sidebar/_sidebar-nav.scss +1 -0
@@ -1,48 +1,56 @@
1
1
  /*!
2
- * CoreUI dropdown.js v4.0.5 (https://coreui.io)
3
- * Copyright 2021 The CoreUI Team (https://github.com/orgs/coreui/people)
2
+ * CoreUI dropdown.js v4.1.2 (https://coreui.io)
3
+ * Copyright 2022 The CoreUI Team (https://github.com/orgs/coreui/people)
4
4
  * Licensed under MIT (https://coreui.io)
5
5
  */
6
6
  (function (global, factory) {
7
- typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('@popperjs/core'), require('./dom/selector-engine.js'), require('./dom/event-handler.js'), require('./dom/manipulator.js'), require('./base-component.js')) :
8
- typeof define === 'function' && define.amd ? define(['@popperjs/core', './dom/selector-engine', './dom/event-handler', './dom/manipulator', './base-component'], factory) :
9
- (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Dropdown = factory(global.Popper, global.SelectorEngine, global.EventHandler, global.Manipulator, global.Base));
10
- }(this, (function (Popper, SelectorEngine, EventHandler, Manipulator, BaseComponent) { 'use strict';
7
+ typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('@popperjs/core'), require('./dom/event-handler.js'), require('./dom/manipulator.js'), require('./dom/selector-engine.js'), require('./base-component.js')) :
8
+ typeof define === 'function' && define.amd ? define(['@popperjs/core', './dom/event-handler', './dom/manipulator', './dom/selector-engine', './base-component'], factory) :
9
+ (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Dropdown = factory(global.Popper, global.EventHandler, global.Manipulator, global.SelectorEngine, global.Base));
10
+ })(this, (function (Popper, EventHandler, Manipulator, SelectorEngine, BaseComponent) { 'use strict';
11
11
 
12
- function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
12
+ const _interopDefaultLegacy = e => e && typeof e === 'object' && 'default' in e ? e : { default: e };
13
13
 
14
14
  function _interopNamespace(e) {
15
15
  if (e && e.__esModule) return e;
16
- var n = Object.create(null);
16
+ const n = Object.create(null, { [Symbol.toStringTag]: { value: 'Module' } });
17
17
  if (e) {
18
- Object.keys(e).forEach(function (k) {
18
+ for (const k in e) {
19
19
  if (k !== 'default') {
20
- var d = Object.getOwnPropertyDescriptor(e, k);
20
+ const d = Object.getOwnPropertyDescriptor(e, k);
21
21
  Object.defineProperty(n, k, d.get ? d : {
22
22
  enumerable: true,
23
- get: function () {
24
- return e[k];
25
- }
23
+ get: () => e[k]
26
24
  });
27
25
  }
28
- });
26
+ }
29
27
  }
30
- n['default'] = e;
28
+ n.default = e;
31
29
  return Object.freeze(n);
32
30
  }
33
31
 
34
- var Popper__namespace = /*#__PURE__*/_interopNamespace(Popper);
35
- var SelectorEngine__default = /*#__PURE__*/_interopDefaultLegacy(SelectorEngine);
36
- var EventHandler__default = /*#__PURE__*/_interopDefaultLegacy(EventHandler);
37
- var Manipulator__default = /*#__PURE__*/_interopDefaultLegacy(Manipulator);
38
- var BaseComponent__default = /*#__PURE__*/_interopDefaultLegacy(BaseComponent);
32
+ const Popper__namespace = /*#__PURE__*/_interopNamespace(Popper);
33
+ const EventHandler__default = /*#__PURE__*/_interopDefaultLegacy(EventHandler);
34
+ const Manipulator__default = /*#__PURE__*/_interopDefaultLegacy(Manipulator);
35
+ const SelectorEngine__default = /*#__PURE__*/_interopDefaultLegacy(SelectorEngine);
36
+ const BaseComponent__default = /*#__PURE__*/_interopDefaultLegacy(BaseComponent);
37
+
38
+ /**
39
+ * --------------------------------------------------------------------------
40
+ * CoreUI (v4.1.2): alert.js
41
+ * Licensed under MIT (https://coreui.io/license)
42
+ *
43
+ * This component is a modified version of the Bootstrap's util/index.js
44
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
45
+ * --------------------------------------------------------------------------
46
+ */
39
47
 
40
- const toType = obj => {
41
- if (obj === null || obj === undefined) {
42
- return `${obj}`;
48
+ const toType = object => {
49
+ if (object === null || object === undefined) {
50
+ return `${object}`;
43
51
  }
44
52
 
45
- return {}.toString.call(obj).match(/\s([a-z]+)/i)[1].toLowerCase();
53
+ return Object.prototype.toString.call(object).match(/\s([a-z]+)/i)[1].toLowerCase();
46
54
  };
47
55
 
48
56
  const getSelector = element => {
@@ -93,7 +101,7 @@
93
101
  }
94
102
 
95
103
  if (typeof obj === 'string' && obj.length > 0) {
96
- return SelectorEngine__default['default'].findOne(obj);
104
+ return document.querySelector(obj);
97
105
  }
98
106
 
99
107
  return null;
@@ -116,7 +124,27 @@
116
124
  return false;
117
125
  }
118
126
 
119
- return getComputedStyle(element).getPropertyValue('visibility') === 'visible';
127
+ const elementIsVisible = getComputedStyle(element).getPropertyValue('visibility') === 'visible'; // Handle `details` element as its content may falsie appear visible when it is closed
128
+
129
+ const closedDetails = element.closest('details:not([open])');
130
+
131
+ if (!closedDetails) {
132
+ return elementIsVisible;
133
+ }
134
+
135
+ if (closedDetails !== element) {
136
+ const summary = element.closest('summary');
137
+
138
+ if (summary && summary.parentNode !== closedDetails) {
139
+ return false;
140
+ }
141
+
142
+ if (summary === null) {
143
+ return false;
144
+ }
145
+ }
146
+
147
+ return elementIsVisible;
120
148
  };
121
149
 
122
150
  const isDisabled = element => {
@@ -216,7 +244,7 @@
216
244
 
217
245
  /**
218
246
  * --------------------------------------------------------------------------
219
- * CoreUI (v4.0.5): dropdown.js
247
+ * CoreUI (v4.1.2): dropdown.js
220
248
  * Licensed under MIT (https://coreui.io/license)
221
249
  *
222
250
  * This component is a modified version of the Bootstrap's dropdown.js
@@ -245,7 +273,6 @@
245
273
  const EVENT_HIDDEN = `hidden${EVENT_KEY}`;
246
274
  const EVENT_SHOW = `show${EVENT_KEY}`;
247
275
  const EVENT_SHOWN = `shown${EVENT_KEY}`;
248
- const EVENT_CLICK = `click${EVENT_KEY}`;
249
276
  const EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`;
250
277
  const EVENT_KEYDOWN_DATA_API = `keydown${EVENT_KEY}${DATA_API_KEY}`;
251
278
  const EVENT_KEYUP_DATA_API = `keyup${EVENT_KEY}${DATA_API_KEY}`;
@@ -286,15 +313,13 @@
286
313
  * ------------------------------------------------------------------------
287
314
  */
288
315
 
289
- class Dropdown extends BaseComponent__default['default'] {
316
+ class Dropdown extends BaseComponent__default.default {
290
317
  constructor(element, config) {
291
318
  super(element);
292
319
  this._popper = null;
293
320
  this._config = this._getConfig(config);
294
321
  this._menu = this._getMenuElement();
295
322
  this._inNavbar = this._detectNavbar();
296
-
297
- this._addEventListeners();
298
323
  } // Getters
299
324
 
300
325
 
@@ -312,61 +337,29 @@
312
337
 
313
338
 
314
339
  toggle() {
315
- if (isDisabled(this._element)) {
316
- return;
317
- }
318
-
319
- const isActive = this._element.classList.contains(CLASS_NAME_SHOW);
320
-
321
- if (isActive) {
322
- this.hide();
323
- return;
324
- }
325
-
326
- this.show();
340
+ return this._isShown() ? this.hide() : this.show();
327
341
  }
328
342
 
329
343
  show() {
330
- if (isDisabled(this._element) || this._menu.classList.contains(CLASS_NAME_SHOW)) {
344
+ if (isDisabled(this._element) || this._isShown(this._menu)) {
331
345
  return;
332
346
  }
333
347
 
334
- const parent = Dropdown.getParentFromElement(this._element);
335
348
  const relatedTarget = {
336
349
  relatedTarget: this._element
337
350
  };
338
- const showEvent = EventHandler__default['default'].trigger(this._element, EVENT_SHOW, relatedTarget);
351
+ const showEvent = EventHandler__default.default.trigger(this._element, EVENT_SHOW, relatedTarget);
339
352
 
340
353
  if (showEvent.defaultPrevented) {
341
354
  return;
342
- } // Totally disable Popper for Dropdowns in Navbar
355
+ }
343
356
 
357
+ const parent = Dropdown.getParentFromElement(this._element); // Totally disable Popper for Dropdowns in Navbar
344
358
 
345
359
  if (this._inNavbar) {
346
- Manipulator__default['default'].setDataAttribute(this._menu, 'popper', 'none');
360
+ Manipulator__default.default.setDataAttribute(this._menu, 'popper', 'none');
347
361
  } else {
348
- if (typeof Popper__namespace === 'undefined') {
349
- throw new TypeError('Bootstrap\'s dropdowns require Popper (https://popper.js.org)');
350
- }
351
-
352
- let referenceElement = this._element;
353
-
354
- if (this._config.reference === 'parent') {
355
- referenceElement = parent;
356
- } else if (isElement(this._config.reference)) {
357
- referenceElement = getElement(this._config.reference);
358
- } else if (typeof this._config.reference === 'object') {
359
- referenceElement = this._config.reference;
360
- }
361
-
362
- const popperConfig = this._getPopperConfig();
363
-
364
- const isDisplayStatic = popperConfig.modifiers.find(modifier => modifier.name === 'applyStyles' && modifier.enabled === false);
365
- this._popper = Popper__namespace.createPopper(referenceElement, this._menu, popperConfig);
366
-
367
- if (isDisplayStatic) {
368
- Manipulator__default['default'].setDataAttribute(this._menu, 'popper', 'static');
369
- }
362
+ this._createPopper(parent);
370
363
  } // If this is a touch-enabled device we add extra
371
364
  // empty mouseover listeners to the body's immediate children;
372
365
  // only needed because of broken event delegation on iOS
@@ -374,22 +367,22 @@
374
367
 
375
368
 
376
369
  if ('ontouchstart' in document.documentElement && !parent.closest(SELECTOR_NAVBAR_NAV)) {
377
- [].concat(...document.body.children).forEach(elem => EventHandler__default['default'].on(elem, 'mouseover', noop));
370
+ [].concat(...document.body.children).forEach(elem => EventHandler__default.default.on(elem, 'mouseover', noop));
378
371
  }
379
372
 
380
373
  this._element.focus();
381
374
 
382
375
  this._element.setAttribute('aria-expanded', true);
383
376
 
384
- this._menu.classList.toggle(CLASS_NAME_SHOW);
377
+ this._menu.classList.add(CLASS_NAME_SHOW);
385
378
 
386
- this._element.classList.toggle(CLASS_NAME_SHOW);
379
+ this._element.classList.add(CLASS_NAME_SHOW);
387
380
 
388
- EventHandler__default['default'].trigger(this._element, EVENT_SHOWN, relatedTarget);
381
+ EventHandler__default.default.trigger(this._element, EVENT_SHOWN, relatedTarget);
389
382
  }
390
383
 
391
384
  hide() {
392
- if (isDisabled(this._element) || !this._menu.classList.contains(CLASS_NAME_SHOW)) {
385
+ if (isDisabled(this._element) || !this._isShown(this._menu)) {
393
386
  return;
394
387
  }
395
388
 
@@ -417,15 +410,8 @@
417
410
  } // Private
418
411
 
419
412
 
420
- _addEventListeners() {
421
- EventHandler__default['default'].on(this._element, EVENT_CLICK, event => {
422
- event.preventDefault();
423
- this.toggle();
424
- });
425
- }
426
-
427
413
  _completeHide(relatedTarget) {
428
- const hideEvent = EventHandler__default['default'].trigger(this._element, EVENT_HIDE, relatedTarget);
414
+ const hideEvent = EventHandler__default.default.trigger(this._element, EVENT_HIDE, relatedTarget);
429
415
 
430
416
  if (hideEvent.defaultPrevented) {
431
417
  return;
@@ -434,7 +420,7 @@
434
420
 
435
421
 
436
422
  if ('ontouchstart' in document.documentElement) {
437
- [].concat(...document.body.children).forEach(elem => EventHandler__default['default'].off(elem, 'mouseover', noop));
423
+ [].concat(...document.body.children).forEach(elem => EventHandler__default.default.off(elem, 'mouseover', noop));
438
424
  }
439
425
 
440
426
  if (this._popper) {
@@ -447,13 +433,13 @@
447
433
 
448
434
  this._element.setAttribute('aria-expanded', 'false');
449
435
 
450
- Manipulator__default['default'].removeDataAttribute(this._menu, 'popper');
451
- EventHandler__default['default'].trigger(this._element, EVENT_HIDDEN, relatedTarget);
436
+ Manipulator__default.default.removeDataAttribute(this._menu, 'popper');
437
+ EventHandler__default.default.trigger(this._element, EVENT_HIDDEN, relatedTarget);
452
438
  }
453
439
 
454
440
  _getConfig(config) {
455
441
  config = { ...this.constructor.Default,
456
- ...Manipulator__default['default'].getDataAttributes(this._element),
442
+ ...Manipulator__default.default.getDataAttributes(this._element),
457
443
  ...config
458
444
  };
459
445
  typeCheckConfig(NAME, config, this.constructor.DefaultType);
@@ -466,8 +452,37 @@
466
452
  return config;
467
453
  }
468
454
 
455
+ _createPopper(parent) {
456
+ if (typeof Popper__namespace === 'undefined') {
457
+ throw new TypeError('Bootstrap\'s dropdowns require Popper (https://popper.js.org)');
458
+ }
459
+
460
+ let referenceElement = this._element;
461
+
462
+ if (this._config.reference === 'parent') {
463
+ referenceElement = parent;
464
+ } else if (isElement(this._config.reference)) {
465
+ referenceElement = getElement(this._config.reference);
466
+ } else if (typeof this._config.reference === 'object') {
467
+ referenceElement = this._config.reference;
468
+ }
469
+
470
+ const popperConfig = this._getPopperConfig();
471
+
472
+ const isDisplayStatic = popperConfig.modifiers.find(modifier => modifier.name === 'applyStyles' && modifier.enabled === false);
473
+ this._popper = Popper__namespace.createPopper(referenceElement, this._menu, popperConfig);
474
+
475
+ if (isDisplayStatic) {
476
+ Manipulator__default.default.setDataAttribute(this._menu, 'popper', 'static');
477
+ }
478
+ }
479
+
480
+ _isShown(element = this._element) {
481
+ return element.classList.contains(CLASS_NAME_SHOW);
482
+ }
483
+
469
484
  _getMenuElement() {
470
- return SelectorEngine__default['default'].next(this._element, SELECTOR_MENU)[0];
485
+ return SelectorEngine__default.default.next(this._element, SELECTOR_MENU)[0];
471
486
  }
472
487
 
473
488
  _getPlacement() {
@@ -543,7 +558,7 @@
543
558
  key,
544
559
  target
545
560
  }) {
546
- const items = SelectorEngine__default['default'].find(SELECTOR_VISIBLE_ITEMS, this._menu).filter(isVisible);
561
+ const items = SelectorEngine__default.default.find(SELECTOR_VISIBLE_ITEMS, this._menu).filter(isVisible);
547
562
 
548
563
  if (!items.length) {
549
564
  return;
@@ -555,21 +570,19 @@
555
570
  } // Static
556
571
 
557
572
 
558
- static dropdownInterface(element, config) {
559
- const data = Dropdown.getOrCreateInstance(element, config);
573
+ static jQueryInterface(config) {
574
+ return this.each(function () {
575
+ const data = Dropdown.getOrCreateInstance(this, config);
576
+
577
+ if (typeof config !== 'string') {
578
+ return;
579
+ }
560
580
 
561
- if (typeof config === 'string') {
562
581
  if (typeof data[config] === 'undefined') {
563
582
  throw new TypeError(`No method named "${config}"`);
564
583
  }
565
584
 
566
585
  data[config]();
567
- }
568
- }
569
-
570
- static jQueryInterface(config) {
571
- return this.each(function () {
572
- Dropdown.dropdownInterface(this, config);
573
586
  });
574
587
  }
575
588
 
@@ -578,7 +591,7 @@
578
591
  return;
579
592
  }
580
593
 
581
- const toggles = SelectorEngine__default['default'].find(SELECTOR_DATA_TOGGLE);
594
+ const toggles = SelectorEngine__default.default.find(SELECTOR_DATA_TOGGLE);
582
595
 
583
596
  for (let i = 0, len = toggles.length; i < len; i++) {
584
597
  const context = Dropdown.getInstance(toggles[i]);
@@ -587,7 +600,7 @@
587
600
  continue;
588
601
  }
589
602
 
590
- if (!context._element.classList.contains(CLASS_NAME_SHOW)) {
603
+ if (!context._isShown()) {
591
604
  continue;
592
605
  }
593
606
 
@@ -646,20 +659,20 @@
646
659
  return;
647
660
  }
648
661
 
649
- const getToggleButton = () => this.matches(SELECTOR_DATA_TOGGLE) ? this : SelectorEngine__default['default'].prev(this, SELECTOR_DATA_TOGGLE)[0];
662
+ const getToggleButton = this.matches(SELECTOR_DATA_TOGGLE) ? this : SelectorEngine__default.default.prev(this, SELECTOR_DATA_TOGGLE)[0];
663
+ const instance = Dropdown.getOrCreateInstance(getToggleButton);
650
664
 
651
665
  if (event.key === ESCAPE_KEY) {
652
- getToggleButton().focus();
653
- Dropdown.clearMenus();
666
+ instance.hide();
654
667
  return;
655
668
  }
656
669
 
657
670
  if (event.key === ARROW_UP_KEY || event.key === ARROW_DOWN_KEY) {
658
671
  if (!isActive) {
659
- getToggleButton().click();
672
+ instance.show();
660
673
  }
661
674
 
662
- Dropdown.getInstance(getToggleButton())._selectMenuItem(event);
675
+ instance._selectMenuItem(event);
663
676
 
664
677
  return;
665
678
  }
@@ -677,13 +690,13 @@
677
690
  */
678
691
 
679
692
 
680
- EventHandler__default['default'].on(document, EVENT_KEYDOWN_DATA_API, SELECTOR_DATA_TOGGLE, Dropdown.dataApiKeydownHandler);
681
- EventHandler__default['default'].on(document, EVENT_KEYDOWN_DATA_API, SELECTOR_MENU, Dropdown.dataApiKeydownHandler);
682
- EventHandler__default['default'].on(document, EVENT_CLICK_DATA_API, Dropdown.clearMenus);
683
- EventHandler__default['default'].on(document, EVENT_KEYUP_DATA_API, Dropdown.clearMenus);
684
- EventHandler__default['default'].on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {
693
+ EventHandler__default.default.on(document, EVENT_KEYDOWN_DATA_API, SELECTOR_DATA_TOGGLE, Dropdown.dataApiKeydownHandler);
694
+ EventHandler__default.default.on(document, EVENT_KEYDOWN_DATA_API, SELECTOR_MENU, Dropdown.dataApiKeydownHandler);
695
+ EventHandler__default.default.on(document, EVENT_CLICK_DATA_API, Dropdown.clearMenus);
696
+ EventHandler__default.default.on(document, EVENT_KEYUP_DATA_API, Dropdown.clearMenus);
697
+ EventHandler__default.default.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {
685
698
  event.preventDefault();
686
- Dropdown.dropdownInterface(this);
699
+ Dropdown.getOrCreateInstance(this).toggle();
687
700
  });
688
701
  /**
689
702
  * ------------------------------------------------------------------------
@@ -696,5 +709,5 @@
696
709
 
697
710
  return Dropdown;
698
711
 
699
- })));
712
+ }));
700
713
  //# sourceMappingURL=dropdown.js.map