bootstrap 4.6.0 → 5.0.0.alpha1

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 (132) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +1 -1
  3. data/assets/javascripts/bootstrap-sprockets.js +12 -8
  4. data/assets/javascripts/bootstrap.js +1889 -1255
  5. data/assets/javascripts/bootstrap.min.js +3 -3
  6. data/assets/javascripts/bootstrap/alert.js +136 -66
  7. data/assets/javascripts/bootstrap/button.js +59 -147
  8. data/assets/javascripts/bootstrap/carousel.js +276 -180
  9. data/assets/javascripts/bootstrap/collapse.js +284 -136
  10. data/assets/javascripts/bootstrap/dom/data.js +81 -0
  11. data/assets/javascripts/bootstrap/dom/event-handler.js +311 -0
  12. data/assets/javascripts/bootstrap/dom/manipulator.js +100 -0
  13. data/assets/javascripts/bootstrap/dom/polyfill.js +110 -0
  14. data/assets/javascripts/bootstrap/dom/selector-engine.js +98 -0
  15. data/assets/javascripts/bootstrap/dropdown.js +238 -195
  16. data/assets/javascripts/bootstrap/modal.js +321 -223
  17. data/assets/javascripts/bootstrap/popover.js +75 -79
  18. data/assets/javascripts/bootstrap/scrollspy.js +150 -86
  19. data/assets/javascripts/bootstrap/tab.js +154 -82
  20. data/assets/javascripts/bootstrap/toast.js +162 -95
  21. data/assets/javascripts/bootstrap/tooltip.js +337 -191
  22. data/assets/stylesheets/_bootstrap-grid.scss +53 -18
  23. data/assets/stylesheets/_bootstrap-reboot.scss +6 -3
  24. data/assets/stylesheets/_bootstrap.scss +16 -10
  25. data/assets/stylesheets/bootstrap/_alert.scss +3 -4
  26. data/assets/stylesheets/bootstrap/_badge.scss +2 -27
  27. data/assets/stylesheets/bootstrap/_breadcrumb.scss +5 -17
  28. data/assets/stylesheets/bootstrap/_button-group.scss +16 -38
  29. data/assets/stylesheets/bootstrap/_buttons.scss +27 -45
  30. data/assets/stylesheets/bootstrap/_card.scss +22 -68
  31. data/assets/stylesheets/bootstrap/_carousel.scss +13 -15
  32. data/assets/stylesheets/bootstrap/_close.scss +9 -13
  33. data/assets/stylesheets/bootstrap/_containers.scss +41 -0
  34. data/assets/stylesheets/bootstrap/_dropdown.scss +12 -9
  35. data/assets/stylesheets/bootstrap/_forms.scss +9 -347
  36. data/assets/stylesheets/bootstrap/_functions.scss +82 -23
  37. data/assets/stylesheets/bootstrap/_grid.scss +3 -54
  38. data/assets/stylesheets/bootstrap/_helpers.scss +7 -0
  39. data/assets/stylesheets/bootstrap/_list-group.scss +7 -4
  40. data/assets/stylesheets/bootstrap/_mixins.scss +6 -12
  41. data/assets/stylesheets/bootstrap/_modal.scss +34 -39
  42. data/assets/stylesheets/bootstrap/_nav.scss +7 -4
  43. data/assets/stylesheets/bootstrap/_navbar.scss +42 -82
  44. data/assets/stylesheets/bootstrap/_pagination.scss +7 -20
  45. data/assets/stylesheets/bootstrap/_popover.scss +5 -5
  46. data/assets/stylesheets/bootstrap/_progress.scss +3 -5
  47. data/assets/stylesheets/bootstrap/_reboot.scss +304 -172
  48. data/assets/stylesheets/bootstrap/_root.scss +5 -8
  49. data/assets/stylesheets/bootstrap/_spinners.scss +4 -13
  50. data/assets/stylesheets/bootstrap/_tables.scss +80 -114
  51. data/assets/stylesheets/bootstrap/_toasts.scss +2 -4
  52. data/assets/stylesheets/bootstrap/_tooltip.scss +5 -5
  53. data/assets/stylesheets/bootstrap/_transitions.scss +0 -1
  54. data/assets/stylesheets/bootstrap/_type.scss +38 -59
  55. data/assets/stylesheets/bootstrap/_utilities.scss +503 -18
  56. data/assets/stylesheets/bootstrap/_variables.scss +546 -432
  57. data/assets/stylesheets/bootstrap/bootstrap-utilities.scss +18 -0
  58. data/assets/stylesheets/bootstrap/forms/_form-check.scss +142 -0
  59. data/assets/stylesheets/bootstrap/forms/_form-control.scss +116 -0
  60. data/assets/stylesheets/bootstrap/forms/_form-file.scss +91 -0
  61. data/assets/stylesheets/bootstrap/forms/_form-range.scss +136 -0
  62. data/assets/stylesheets/bootstrap/forms/_form-select.scss +82 -0
  63. data/assets/stylesheets/bootstrap/forms/_form-text.scss +11 -0
  64. data/assets/stylesheets/bootstrap/forms/_input-group.scss +140 -0
  65. data/assets/stylesheets/bootstrap/forms/_labels.scss +36 -0
  66. data/assets/stylesheets/bootstrap/forms/_validation.scss +12 -0
  67. data/assets/stylesheets/bootstrap/{utilities → helpers}/_clearfix.scss +0 -0
  68. data/assets/stylesheets/bootstrap/helpers/_colored-links.scss +12 -0
  69. data/assets/stylesheets/bootstrap/helpers/_embed.scss +31 -0
  70. data/assets/stylesheets/bootstrap/helpers/_position.scss +30 -0
  71. data/assets/stylesheets/bootstrap/helpers/_screenreaders.scss +8 -0
  72. data/assets/stylesheets/bootstrap/helpers/_stretched-link.scss +15 -0
  73. data/assets/stylesheets/bootstrap/helpers/_text-truncation.scss +7 -0
  74. data/assets/stylesheets/bootstrap/mixins/_alert.scss +0 -4
  75. data/assets/stylesheets/bootstrap/mixins/_border-radius.scss +1 -1
  76. data/assets/stylesheets/bootstrap/mixins/_breakpoints.scss +11 -8
  77. data/assets/stylesheets/bootstrap/mixins/_buttons.scss +62 -47
  78. data/assets/stylesheets/bootstrap/mixins/_caret.scss +4 -4
  79. data/assets/stylesheets/bootstrap/mixins/_clearfix.scss +2 -0
  80. data/assets/stylesheets/bootstrap/mixins/_container.scss +9 -0
  81. data/assets/stylesheets/bootstrap/mixins/_forms.scss +22 -74
  82. data/assets/stylesheets/bootstrap/mixins/_gradients.scss +9 -11
  83. data/assets/stylesheets/bootstrap/mixins/_grid.scss +85 -33
  84. data/assets/stylesheets/bootstrap/mixins/_image.scss +1 -21
  85. data/assets/stylesheets/bootstrap/mixins/_list-group.scss +2 -1
  86. data/assets/stylesheets/bootstrap/mixins/_lists.scss +1 -1
  87. data/assets/stylesheets/bootstrap/mixins/_pagination.scss +15 -8
  88. data/assets/stylesheets/bootstrap/mixins/_reset-text.scss +2 -2
  89. data/assets/stylesheets/bootstrap/mixins/_screen-reader.scss +17 -23
  90. data/assets/stylesheets/bootstrap/mixins/_table-variants.scss +21 -0
  91. data/assets/stylesheets/bootstrap/mixins/_transition.scss +2 -2
  92. data/assets/stylesheets/bootstrap/mixins/_utilities.scss +49 -0
  93. data/assets/stylesheets/bootstrap/utilities/_api.scss +47 -0
  94. data/assets/stylesheets/bootstrap/vendor/_rfs.scss +234 -126
  95. data/lib/bootstrap/version.rb +2 -2
  96. data/tasks/updater/js.rb +3 -3
  97. metadata +32 -40
  98. data/assets/javascripts/bootstrap/util.js +0 -192
  99. data/assets/stylesheets/bootstrap/_code.scss +0 -48
  100. data/assets/stylesheets/bootstrap/_custom-forms.scss +0 -526
  101. data/assets/stylesheets/bootstrap/_input-group.scss +0 -208
  102. data/assets/stylesheets/bootstrap/_jumbotron.scss +0 -17
  103. data/assets/stylesheets/bootstrap/_media.scss +0 -8
  104. data/assets/stylesheets/bootstrap/_print.scss +0 -141
  105. data/assets/stylesheets/bootstrap/mixins/_background-variant.scss +0 -23
  106. data/assets/stylesheets/bootstrap/mixins/_badge.scss +0 -17
  107. data/assets/stylesheets/bootstrap/mixins/_float.scss +0 -14
  108. data/assets/stylesheets/bootstrap/mixins/_grid-framework.scss +0 -80
  109. data/assets/stylesheets/bootstrap/mixins/_hover.scss +0 -37
  110. data/assets/stylesheets/bootstrap/mixins/_nav-divider.scss +0 -11
  111. data/assets/stylesheets/bootstrap/mixins/_size.scss +0 -7
  112. data/assets/stylesheets/bootstrap/mixins/_table-row.scss +0 -39
  113. data/assets/stylesheets/bootstrap/mixins/_text-emphasis.scss +0 -17
  114. data/assets/stylesheets/bootstrap/mixins/_text-hide.scss +0 -11
  115. data/assets/stylesheets/bootstrap/mixins/_visibility.scss +0 -8
  116. data/assets/stylesheets/bootstrap/utilities/_align.scss +0 -8
  117. data/assets/stylesheets/bootstrap/utilities/_background.scss +0 -19
  118. data/assets/stylesheets/bootstrap/utilities/_borders.scss +0 -75
  119. data/assets/stylesheets/bootstrap/utilities/_display.scss +0 -26
  120. data/assets/stylesheets/bootstrap/utilities/_embed.scss +0 -39
  121. data/assets/stylesheets/bootstrap/utilities/_flex.scss +0 -51
  122. data/assets/stylesheets/bootstrap/utilities/_float.scss +0 -11
  123. data/assets/stylesheets/bootstrap/utilities/_interactions.scss +0 -5
  124. data/assets/stylesheets/bootstrap/utilities/_overflow.scss +0 -5
  125. data/assets/stylesheets/bootstrap/utilities/_position.scss +0 -32
  126. data/assets/stylesheets/bootstrap/utilities/_screenreaders.scss +0 -11
  127. data/assets/stylesheets/bootstrap/utilities/_shadows.scss +0 -6
  128. data/assets/stylesheets/bootstrap/utilities/_sizing.scss +0 -20
  129. data/assets/stylesheets/bootstrap/utilities/_spacing.scss +0 -73
  130. data/assets/stylesheets/bootstrap/utilities/_stretched-link.scss +0 -19
  131. data/assets/stylesheets/bootstrap/utilities/_text.scss +0 -72
  132. data/assets/stylesheets/bootstrap/utilities/_visibility.scss +0 -13
@@ -1,53 +1,151 @@
1
1
  /*!
2
- * Bootstrap modal.js v4.6.0 (https://getbootstrap.com/)
3
- * Copyright 2011-2021 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
2
+ * Bootstrap modal.js v5.0.0-alpha1 (https://getbootstrap.com/)
3
+ * Copyright 2011-2020 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
4
4
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
5
5
  */
6
6
  (function (global, factory) {
7
- typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('jquery'), require('./util.js')) :
8
- typeof define === 'function' && define.amd ? define(['jquery', './util'], factory) :
9
- (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Modal = factory(global.jQuery, global.Util));
10
- }(this, (function ($, Util) { 'use strict';
11
-
12
- function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
13
-
14
- var $__default = /*#__PURE__*/_interopDefaultLegacy($);
15
- var Util__default = /*#__PURE__*/_interopDefaultLegacy(Util);
16
-
17
- function _defineProperties(target, props) {
18
- for (var i = 0; i < props.length; i++) {
19
- var descriptor = props[i];
20
- descriptor.enumerable = descriptor.enumerable || false;
21
- descriptor.configurable = true;
22
- if ("value" in descriptor) descriptor.writable = true;
23
- Object.defineProperty(target, descriptor.key, descriptor);
7
+ typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('./dom/data.js'), require('./dom/event-handler.js'), require('./dom/manipulator.js'), require('./dom/selector-engine.js')) :
8
+ typeof define === 'function' && define.amd ? define(['./dom/data.js', './dom/event-handler.js', './dom/manipulator.js', './dom/selector-engine.js'], factory) :
9
+ (global = global || self, global.Modal = factory(global.Data, global.EventHandler, global.Manipulator, global.SelectorEngine));
10
+ }(this, (function (Data, EventHandler, Manipulator, SelectorEngine) { 'use strict';
11
+
12
+ Data = Data && Object.prototype.hasOwnProperty.call(Data, 'default') ? Data['default'] : Data;
13
+ EventHandler = EventHandler && Object.prototype.hasOwnProperty.call(EventHandler, 'default') ? EventHandler['default'] : EventHandler;
14
+ Manipulator = Manipulator && Object.prototype.hasOwnProperty.call(Manipulator, 'default') ? Manipulator['default'] : Manipulator;
15
+ SelectorEngine = SelectorEngine && Object.prototype.hasOwnProperty.call(SelectorEngine, 'default') ? SelectorEngine['default'] : SelectorEngine;
16
+
17
+ /**
18
+ * --------------------------------------------------------------------------
19
+ * Bootstrap (v5.0.0-alpha1): util/index.js
20
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
21
+ * --------------------------------------------------------------------------
22
+ */
23
+ var MILLISECONDS_MULTIPLIER = 1000;
24
+ var TRANSITION_END = 'transitionend'; // Shoutout AngusCroll (https://goo.gl/pxwQGp)
25
+
26
+ var toType = function toType(obj) {
27
+ if (obj === null || obj === undefined) {
28
+ return "" + obj;
24
29
  }
25
- }
26
30
 
27
- function _createClass(Constructor, protoProps, staticProps) {
28
- if (protoProps) _defineProperties(Constructor.prototype, protoProps);
29
- if (staticProps) _defineProperties(Constructor, staticProps);
30
- return Constructor;
31
- }
31
+ return {}.toString.call(obj).match(/\s([a-z]+)/i)[1].toLowerCase();
32
+ };
32
33
 
33
- function _extends() {
34
- _extends = Object.assign || function (target) {
35
- for (var i = 1; i < arguments.length; i++) {
36
- var source = arguments[i];
34
+ var getSelector = function getSelector(element) {
35
+ var selector = element.getAttribute('data-target');
37
36
 
38
- for (var key in source) {
39
- if (Object.prototype.hasOwnProperty.call(source, key)) {
40
- target[key] = source[key];
41
- }
42
- }
37
+ if (!selector || selector === '#') {
38
+ var hrefAttr = element.getAttribute('href');
39
+ selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : null;
40
+ }
41
+
42
+ return selector;
43
+ };
44
+
45
+ var getElementFromSelector = function getElementFromSelector(element) {
46
+ var selector = getSelector(element);
47
+ return selector ? document.querySelector(selector) : null;
48
+ };
49
+
50
+ var getTransitionDurationFromElement = function getTransitionDurationFromElement(element) {
51
+ if (!element) {
52
+ return 0;
53
+ } // Get transition-duration of the element
54
+
55
+
56
+ var _window$getComputedSt = window.getComputedStyle(element),
57
+ transitionDuration = _window$getComputedSt.transitionDuration,
58
+ transitionDelay = _window$getComputedSt.transitionDelay;
59
+
60
+ var floatTransitionDuration = parseFloat(transitionDuration);
61
+ var floatTransitionDelay = parseFloat(transitionDelay); // Return 0 if element or transition duration is not found
62
+
63
+ if (!floatTransitionDuration && !floatTransitionDelay) {
64
+ return 0;
65
+ } // If multiple durations are defined, take the first
66
+
67
+
68
+ transitionDuration = transitionDuration.split(',')[0];
69
+ transitionDelay = transitionDelay.split(',')[0];
70
+ return (parseFloat(transitionDuration) + parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER;
71
+ };
72
+
73
+ var triggerTransitionEnd = function triggerTransitionEnd(element) {
74
+ element.dispatchEvent(new Event(TRANSITION_END));
75
+ };
76
+
77
+ var isElement = function isElement(obj) {
78
+ return (obj[0] || obj).nodeType;
79
+ };
80
+
81
+ var emulateTransitionEnd = function emulateTransitionEnd(element, duration) {
82
+ var called = false;
83
+ var durationPadding = 5;
84
+ var emulatedDuration = duration + durationPadding;
85
+
86
+ function listener() {
87
+ called = true;
88
+ element.removeEventListener(TRANSITION_END, listener);
89
+ }
90
+
91
+ element.addEventListener(TRANSITION_END, listener);
92
+ setTimeout(function () {
93
+ if (!called) {
94
+ triggerTransitionEnd(element);
43
95
  }
96
+ }, emulatedDuration);
97
+ };
44
98
 
45
- return target;
46
- };
99
+ var typeCheckConfig = function typeCheckConfig(componentName, config, configTypes) {
100
+ Object.keys(configTypes).forEach(function (property) {
101
+ var expectedTypes = configTypes[property];
102
+ var value = config[property];
103
+ var valueType = value && isElement(value) ? 'element' : toType(value);
47
104
 
48
- return _extends.apply(this, arguments);
49
- }
105
+ if (!new RegExp(expectedTypes).test(valueType)) {
106
+ throw new Error(componentName.toUpperCase() + ": " + ("Option \"" + property + "\" provided type \"" + valueType + "\" ") + ("but expected type \"" + expectedTypes + "\"."));
107
+ }
108
+ });
109
+ };
110
+
111
+ var isVisible = function isVisible(element) {
112
+ if (!element) {
113
+ return false;
114
+ }
115
+
116
+ if (element.style && element.parentNode && element.parentNode.style) {
117
+ var elementStyle = getComputedStyle(element);
118
+ var parentNodeStyle = getComputedStyle(element.parentNode);
119
+ return elementStyle.display !== 'none' && parentNodeStyle.display !== 'none' && elementStyle.visibility !== 'hidden';
120
+ }
121
+
122
+ return false;
123
+ };
124
+
125
+ var reflow = function reflow(element) {
126
+ return element.offsetHeight;
127
+ };
128
+
129
+ var getjQuery = function getjQuery() {
130
+ var _window = window,
131
+ jQuery = _window.jQuery;
132
+
133
+ if (jQuery && !document.body.hasAttribute('data-no-jquery')) {
134
+ return jQuery;
135
+ }
136
+
137
+ return null;
138
+ };
139
+
140
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
141
+
142
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
143
+
144
+ function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
50
145
 
146
+ 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); } }
147
+
148
+ function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
51
149
  /**
52
150
  * ------------------------------------------------------------------------
53
151
  * Constants
@@ -55,13 +153,11 @@
55
153
  */
56
154
 
57
155
  var NAME = 'modal';
58
- var VERSION = '4.6.0';
156
+ var VERSION = '5.0.0-alpha1';
59
157
  var DATA_KEY = 'bs.modal';
60
158
  var EVENT_KEY = "." + DATA_KEY;
61
159
  var DATA_API_KEY = '.data-api';
62
- var JQUERY_NO_CONFLICT = $__default['default'].fn[NAME];
63
- var ESCAPE_KEYCODE = 27; // KeyboardEvent.which value for Escape (Esc) key
64
-
160
+ var ESCAPE_KEY = 'Escape';
65
161
  var Default = {
66
162
  backdrop: true,
67
163
  keyboard: true,
@@ -86,7 +182,6 @@
86
182
  var EVENT_MOUSEUP_DISMISS = "mouseup.dismiss" + EVENT_KEY;
87
183
  var EVENT_MOUSEDOWN_DISMISS = "mousedown.dismiss" + EVENT_KEY;
88
184
  var EVENT_CLICK_DATA_API = "click" + EVENT_KEY + DATA_API_KEY;
89
- var CLASS_NAME_SCROLLABLE = 'modal-dialog-scrollable';
90
185
  var CLASS_NAME_SCROLLBAR_MEASURER = 'modal-scrollbar-measure';
91
186
  var CLASS_NAME_BACKDROP = 'modal-backdrop';
92
187
  var CLASS_NAME_OPEN = 'modal-open';
@@ -109,13 +204,14 @@
109
204
  function Modal(element, config) {
110
205
  this._config = this._getConfig(config);
111
206
  this._element = element;
112
- this._dialog = element.querySelector(SELECTOR_DIALOG);
207
+ this._dialog = SelectorEngine.findOne(SELECTOR_DIALOG, element);
113
208
  this._backdrop = null;
114
209
  this._isShown = false;
115
210
  this._isBodyOverflowing = false;
116
211
  this._ignoreBackdropClick = false;
117
212
  this._isTransitioning = false;
118
213
  this._scrollbarWidth = 0;
214
+ Data.setData(element, DATA_KEY, this);
119
215
  } // Getters
120
216
 
121
217
 
@@ -133,16 +229,15 @@
133
229
  return;
134
230
  }
135
231
 
136
- if ($__default['default'](this._element).hasClass(CLASS_NAME_FADE)) {
232
+ if (this._element.classList.contains(CLASS_NAME_FADE)) {
137
233
  this._isTransitioning = true;
138
234
  }
139
235
 
140
- var showEvent = $__default['default'].Event(EVENT_SHOW, {
236
+ var showEvent = EventHandler.trigger(this._element, EVENT_SHOW, {
141
237
  relatedTarget: relatedTarget
142
238
  });
143
- $__default['default'](this._element).trigger(showEvent);
144
239
 
145
- if (this._isShown || showEvent.isDefaultPrevented()) {
240
+ if (this._isShown || showEvent.defaultPrevented) {
146
241
  return;
147
242
  }
148
243
 
@@ -158,12 +253,12 @@
158
253
 
159
254
  this._setResizeEvent();
160
255
 
161
- $__default['default'](this._element).on(EVENT_CLICK_DISMISS, SELECTOR_DATA_DISMISS, function (event) {
256
+ EventHandler.on(this._element, EVENT_CLICK_DISMISS, SELECTOR_DATA_DISMISS, function (event) {
162
257
  return _this.hide(event);
163
258
  });
164
- $__default['default'](this._dialog).on(EVENT_MOUSEDOWN_DISMISS, function () {
165
- $__default['default'](_this._element).one(EVENT_MOUSEUP_DISMISS, function (event) {
166
- if ($__default['default'](event.target).is(_this._element)) {
259
+ EventHandler.on(this._dialog, EVENT_MOUSEDOWN_DISMISS, function () {
260
+ EventHandler.one(_this._element, EVENT_MOUSEUP_DISMISS, function (event) {
261
+ if (event.target === _this._element) {
167
262
  _this._ignoreBackdropClick = true;
168
263
  }
169
264
  });
@@ -185,15 +280,15 @@
185
280
  return;
186
281
  }
187
282
 
188
- var hideEvent = $__default['default'].Event(EVENT_HIDE);
189
- $__default['default'](this._element).trigger(hideEvent);
283
+ var hideEvent = EventHandler.trigger(this._element, EVENT_HIDE);
190
284
 
191
- if (!this._isShown || hideEvent.isDefaultPrevented()) {
285
+ if (hideEvent.defaultPrevented) {
192
286
  return;
193
287
  }
194
288
 
195
289
  this._isShown = false;
196
- var transition = $__default['default'](this._element).hasClass(CLASS_NAME_FADE);
290
+
291
+ var transition = this._element.classList.contains(CLASS_NAME_FADE);
197
292
 
198
293
  if (transition) {
199
294
  this._isTransitioning = true;
@@ -203,16 +298,19 @@
203
298
 
204
299
  this._setResizeEvent();
205
300
 
206
- $__default['default'](document).off(EVENT_FOCUSIN);
207
- $__default['default'](this._element).removeClass(CLASS_NAME_SHOW);
208
- $__default['default'](this._element).off(EVENT_CLICK_DISMISS);
209
- $__default['default'](this._dialog).off(EVENT_MOUSEDOWN_DISMISS);
301
+ EventHandler.off(document, EVENT_FOCUSIN);
302
+
303
+ this._element.classList.remove(CLASS_NAME_SHOW);
304
+
305
+ EventHandler.off(this._element, EVENT_CLICK_DISMISS);
306
+ EventHandler.off(this._dialog, EVENT_MOUSEDOWN_DISMISS);
210
307
 
211
308
  if (transition) {
212
- var transitionDuration = Util__default['default'].getTransitionDurationFromElement(this._element);
213
- $__default['default'](this._element).one(Util__default['default'].TRANSITION_END, function (event) {
309
+ var transitionDuration = getTransitionDurationFromElement(this._element);
310
+ EventHandler.one(this._element, TRANSITION_END, function (event) {
214
311
  return _this2._hideModal(event);
215
- }).emulateTransitionEnd(transitionDuration);
312
+ });
313
+ emulateTransitionEnd(this._element, transitionDuration);
216
314
  } else {
217
315
  this._hideModal();
218
316
  }
@@ -220,7 +318,7 @@
220
318
 
221
319
  _proto.dispose = function dispose() {
222
320
  [window, this._element, this._dialog].forEach(function (htmlElement) {
223
- return $__default['default'](htmlElement).off(EVENT_KEY);
321
+ return EventHandler.off(htmlElement, EVENT_KEY);
224
322
  });
225
323
  /**
226
324
  * `document` has 2 events `EVENT_FOCUSIN` and `EVENT_CLICK_DATA_API`
@@ -228,8 +326,8 @@
228
326
  * It will remove `EVENT_CLICK_DATA_API` event that should remain
229
327
  */
230
328
 
231
- $__default['default'](document).off(EVENT_FOCUSIN);
232
- $__default['default'].removeData(this._element, DATA_KEY);
329
+ EventHandler.off(document, EVENT_FOCUSIN);
330
+ Data.removeData(this._element, DATA_KEY);
233
331
  this._config = null;
234
332
  this._element = null;
235
333
  this._dialog = null;
@@ -247,49 +345,17 @@
247
345
  ;
248
346
 
249
347
  _proto._getConfig = function _getConfig(config) {
250
- config = _extends({}, Default, config);
251
- Util__default['default'].typeCheckConfig(NAME, config, DefaultType);
348
+ config = _objectSpread(_objectSpread({}, Default), config);
349
+ typeCheckConfig(NAME, config, DefaultType);
252
350
  return config;
253
351
  };
254
352
 
255
- _proto._triggerBackdropTransition = function _triggerBackdropTransition() {
353
+ _proto._showElement = function _showElement(relatedTarget) {
256
354
  var _this3 = this;
257
355
 
258
- var hideEventPrevented = $__default['default'].Event(EVENT_HIDE_PREVENTED);
259
- $__default['default'](this._element).trigger(hideEventPrevented);
356
+ var transition = this._element.classList.contains(CLASS_NAME_FADE);
260
357
 
261
- if (hideEventPrevented.isDefaultPrevented()) {
262
- return;
263
- }
264
-
265
- var isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight;
266
-
267
- if (!isModalOverflowing) {
268
- this._element.style.overflowY = 'hidden';
269
- }
270
-
271
- this._element.classList.add(CLASS_NAME_STATIC);
272
-
273
- var modalTransitionDuration = Util__default['default'].getTransitionDurationFromElement(this._dialog);
274
- $__default['default'](this._element).off(Util__default['default'].TRANSITION_END);
275
- $__default['default'](this._element).one(Util__default['default'].TRANSITION_END, function () {
276
- _this3._element.classList.remove(CLASS_NAME_STATIC);
277
-
278
- if (!isModalOverflowing) {
279
- $__default['default'](_this3._element).one(Util__default['default'].TRANSITION_END, function () {
280
- _this3._element.style.overflowY = '';
281
- }).emulateTransitionEnd(_this3._element, modalTransitionDuration);
282
- }
283
- }).emulateTransitionEnd(modalTransitionDuration);
284
-
285
- this._element.focus();
286
- };
287
-
288
- _proto._showElement = function _showElement(relatedTarget) {
289
- var _this4 = this;
290
-
291
- var transition = $__default['default'](this._element).hasClass(CLASS_NAME_FADE);
292
- var modalBody = this._dialog ? this._dialog.querySelector(SELECTOR_MODAL_BODY) : null;
358
+ var modalBody = SelectorEngine.findOne(SELECTOR_MODAL_BODY, this._dialog);
293
359
 
294
360
  if (!this._element.parentNode || this._element.parentNode.nodeType !== Node.ELEMENT_NODE) {
295
361
  // Don't move modal's DOM position
@@ -304,86 +370,86 @@
304
370
 
305
371
  this._element.setAttribute('role', 'dialog');
306
372
 
307
- if ($__default['default'](this._dialog).hasClass(CLASS_NAME_SCROLLABLE) && modalBody) {
373
+ this._element.scrollTop = 0;
374
+
375
+ if (modalBody) {
308
376
  modalBody.scrollTop = 0;
309
- } else {
310
- this._element.scrollTop = 0;
311
377
  }
312
378
 
313
379
  if (transition) {
314
- Util__default['default'].reflow(this._element);
380
+ reflow(this._element);
315
381
  }
316
382
 
317
- $__default['default'](this._element).addClass(CLASS_NAME_SHOW);
383
+ this._element.classList.add(CLASS_NAME_SHOW);
318
384
 
319
385
  if (this._config.focus) {
320
386
  this._enforceFocus();
321
387
  }
322
388
 
323
- var shownEvent = $__default['default'].Event(EVENT_SHOWN, {
324
- relatedTarget: relatedTarget
325
- });
326
-
327
389
  var transitionComplete = function transitionComplete() {
328
- if (_this4._config.focus) {
329
- _this4._element.focus();
390
+ if (_this3._config.focus) {
391
+ _this3._element.focus();
330
392
  }
331
393
 
332
- _this4._isTransitioning = false;
333
- $__default['default'](_this4._element).trigger(shownEvent);
394
+ _this3._isTransitioning = false;
395
+ EventHandler.trigger(_this3._element, EVENT_SHOWN, {
396
+ relatedTarget: relatedTarget
397
+ });
334
398
  };
335
399
 
336
400
  if (transition) {
337
- var transitionDuration = Util__default['default'].getTransitionDurationFromElement(this._dialog);
338
- $__default['default'](this._dialog).one(Util__default['default'].TRANSITION_END, transitionComplete).emulateTransitionEnd(transitionDuration);
401
+ var transitionDuration = getTransitionDurationFromElement(this._dialog);
402
+ EventHandler.one(this._dialog, TRANSITION_END, transitionComplete);
403
+ emulateTransitionEnd(this._dialog, transitionDuration);
339
404
  } else {
340
405
  transitionComplete();
341
406
  }
342
407
  };
343
408
 
344
409
  _proto._enforceFocus = function _enforceFocus() {
345
- var _this5 = this;
410
+ var _this4 = this;
346
411
 
347
- $__default['default'](document).off(EVENT_FOCUSIN) // Guard against infinite focus loop
348
- .on(EVENT_FOCUSIN, function (event) {
349
- if (document !== event.target && _this5._element !== event.target && $__default['default'](_this5._element).has(event.target).length === 0) {
350
- _this5._element.focus();
412
+ EventHandler.off(document, EVENT_FOCUSIN); // guard against infinite focus loop
413
+
414
+ EventHandler.on(document, EVENT_FOCUSIN, function (event) {
415
+ if (document !== event.target && _this4._element !== event.target && !_this4._element.contains(event.target)) {
416
+ _this4._element.focus();
351
417
  }
352
418
  });
353
419
  };
354
420
 
355
421
  _proto._setEscapeEvent = function _setEscapeEvent() {
356
- var _this6 = this;
422
+ var _this5 = this;
357
423
 
358
424
  if (this._isShown) {
359
- $__default['default'](this._element).on(EVENT_KEYDOWN_DISMISS, function (event) {
360
- if (_this6._config.keyboard && event.which === ESCAPE_KEYCODE) {
425
+ EventHandler.on(this._element, EVENT_KEYDOWN_DISMISS, function (event) {
426
+ if (_this5._config.keyboard && event.key === ESCAPE_KEY) {
361
427
  event.preventDefault();
362
428
 
363
- _this6.hide();
364
- } else if (!_this6._config.keyboard && event.which === ESCAPE_KEYCODE) {
365
- _this6._triggerBackdropTransition();
429
+ _this5.hide();
430
+ } else if (!_this5._config.keyboard && event.key === ESCAPE_KEY) {
431
+ _this5._triggerBackdropTransition();
366
432
  }
367
433
  });
368
- } else if (!this._isShown) {
369
- $__default['default'](this._element).off(EVENT_KEYDOWN_DISMISS);
434
+ } else {
435
+ EventHandler.off(this._element, EVENT_KEYDOWN_DISMISS);
370
436
  }
371
437
  };
372
438
 
373
439
  _proto._setResizeEvent = function _setResizeEvent() {
374
- var _this7 = this;
440
+ var _this6 = this;
375
441
 
376
442
  if (this._isShown) {
377
- $__default['default'](window).on(EVENT_RESIZE, function (event) {
378
- return _this7.handleUpdate(event);
443
+ EventHandler.on(window, EVENT_RESIZE, function () {
444
+ return _this6._adjustDialog();
379
445
  });
380
446
  } else {
381
- $__default['default'](window).off(EVENT_RESIZE);
447
+ EventHandler.off(window, EVENT_RESIZE);
382
448
  }
383
449
  };
384
450
 
385
451
  _proto._hideModal = function _hideModal() {
386
- var _this8 = this;
452
+ var _this7 = this;
387
453
 
388
454
  this._element.style.display = 'none';
389
455
 
@@ -396,27 +462,26 @@
396
462
  this._isTransitioning = false;
397
463
 
398
464
  this._showBackdrop(function () {
399
- $__default['default'](document.body).removeClass(CLASS_NAME_OPEN);
465
+ document.body.classList.remove(CLASS_NAME_OPEN);
400
466
 
401
- _this8._resetAdjustments();
467
+ _this7._resetAdjustments();
402
468
 
403
- _this8._resetScrollbar();
469
+ _this7._resetScrollbar();
404
470
 
405
- $__default['default'](_this8._element).trigger(EVENT_HIDDEN);
471
+ EventHandler.trigger(_this7._element, EVENT_HIDDEN);
406
472
  });
407
473
  };
408
474
 
409
475
  _proto._removeBackdrop = function _removeBackdrop() {
410
- if (this._backdrop) {
411
- $__default['default'](this._backdrop).remove();
412
- this._backdrop = null;
413
- }
476
+ this._backdrop.parentNode.removeChild(this._backdrop);
477
+
478
+ this._backdrop = null;
414
479
  };
415
480
 
416
481
  _proto._showBackdrop = function _showBackdrop(callback) {
417
- var _this9 = this;
482
+ var _this8 = this;
418
483
 
419
- var animate = $__default['default'](this._element).hasClass(CLASS_NAME_FADE) ? CLASS_NAME_FADE : '';
484
+ var animate = this._element.classList.contains(CLASS_NAME_FADE) ? CLASS_NAME_FADE : '';
420
485
 
421
486
  if (this._isShown && this._config.backdrop) {
422
487
  this._backdrop = document.createElement('div');
@@ -426,10 +491,10 @@
426
491
  this._backdrop.classList.add(animate);
427
492
  }
428
493
 
429
- $__default['default'](this._backdrop).appendTo(document.body);
430
- $__default['default'](this._element).on(EVENT_CLICK_DISMISS, function (event) {
431
- if (_this9._ignoreBackdropClick) {
432
- _this9._ignoreBackdropClick = false;
494
+ document.body.appendChild(this._backdrop);
495
+ EventHandler.on(this._element, EVENT_CLICK_DISMISS, function (event) {
496
+ if (_this8._ignoreBackdropClick) {
497
+ _this8._ignoreBackdropClick = false;
433
498
  return;
434
499
  }
435
500
 
@@ -437,54 +502,69 @@
437
502
  return;
438
503
  }
439
504
 
440
- if (_this9._config.backdrop === 'static') {
441
- _this9._triggerBackdropTransition();
442
- } else {
443
- _this9.hide();
444
- }
505
+ _this8._triggerBackdropTransition();
445
506
  });
446
507
 
447
508
  if (animate) {
448
- Util__default['default'].reflow(this._backdrop);
509
+ reflow(this._backdrop);
449
510
  }
450
511
 
451
- $__default['default'](this._backdrop).addClass(CLASS_NAME_SHOW);
452
-
453
- if (!callback) {
454
- return;
455
- }
512
+ this._backdrop.classList.add(CLASS_NAME_SHOW);
456
513
 
457
514
  if (!animate) {
458
515
  callback();
459
516
  return;
460
517
  }
461
518
 
462
- var backdropTransitionDuration = Util__default['default'].getTransitionDurationFromElement(this._backdrop);
463
- $__default['default'](this._backdrop).one(Util__default['default'].TRANSITION_END, callback).emulateTransitionEnd(backdropTransitionDuration);
519
+ var backdropTransitionDuration = getTransitionDurationFromElement(this._backdrop);
520
+ EventHandler.one(this._backdrop, TRANSITION_END, callback);
521
+ emulateTransitionEnd(this._backdrop, backdropTransitionDuration);
464
522
  } else if (!this._isShown && this._backdrop) {
465
- $__default['default'](this._backdrop).removeClass(CLASS_NAME_SHOW);
523
+ this._backdrop.classList.remove(CLASS_NAME_SHOW);
466
524
 
467
525
  var callbackRemove = function callbackRemove() {
468
- _this9._removeBackdrop();
526
+ _this8._removeBackdrop();
469
527
 
470
- if (callback) {
471
- callback();
472
- }
528
+ callback();
473
529
  };
474
530
 
475
- if ($__default['default'](this._element).hasClass(CLASS_NAME_FADE)) {
476
- var _backdropTransitionDuration = Util__default['default'].getTransitionDurationFromElement(this._backdrop);
531
+ if (this._element.classList.contains(CLASS_NAME_FADE)) {
532
+ var _backdropTransitionDuration = getTransitionDurationFromElement(this._backdrop);
477
533
 
478
- $__default['default'](this._backdrop).one(Util__default['default'].TRANSITION_END, callbackRemove).emulateTransitionEnd(_backdropTransitionDuration);
534
+ EventHandler.one(this._backdrop, TRANSITION_END, callbackRemove);
535
+ emulateTransitionEnd(this._backdrop, _backdropTransitionDuration);
479
536
  } else {
480
537
  callbackRemove();
481
538
  }
482
- } else if (callback) {
539
+ } else {
483
540
  callback();
484
541
  }
542
+ };
543
+
544
+ _proto._triggerBackdropTransition = function _triggerBackdropTransition() {
545
+ var _this9 = this;
546
+
547
+ if (this._config.backdrop === 'static') {
548
+ var hideEvent = EventHandler.trigger(this._element, EVENT_HIDE_PREVENTED);
549
+
550
+ if (hideEvent.defaultPrevented) {
551
+ return;
552
+ }
553
+
554
+ this._element.classList.add(CLASS_NAME_STATIC);
555
+
556
+ var modalTransitionDuration = getTransitionDurationFromElement(this._element);
557
+ EventHandler.one(this._element, TRANSITION_END, function () {
558
+ _this9._element.classList.remove(CLASS_NAME_STATIC);
559
+ });
560
+ emulateTransitionEnd(this._element, modalTransitionDuration);
561
+
562
+ this._element.focus();
563
+ } else {
564
+ this.hide();
565
+ }
485
566
  } // ----------------------------------------------------------------------
486
567
  // the following methods are used to handle overflowing modals
487
- // todo (fat): these should probably be refactored out of modal.js
488
568
  // ----------------------------------------------------------------------
489
569
  ;
490
570
 
@@ -517,50 +597,58 @@
517
597
  if (this._isBodyOverflowing) {
518
598
  // Note: DOMNode.style.paddingRight returns the actual value or '' if not set
519
599
  // while $(DOMNode).css('padding-right') returns the calculated value or 0 if not set
520
- var fixedContent = [].slice.call(document.querySelectorAll(SELECTOR_FIXED_CONTENT));
521
- var stickyContent = [].slice.call(document.querySelectorAll(SELECTOR_STICKY_CONTENT)); // Adjust fixed content padding
522
-
523
- $__default['default'](fixedContent).each(function (index, element) {
600
+ // Adjust fixed content padding
601
+ SelectorEngine.find(SELECTOR_FIXED_CONTENT).forEach(function (element) {
524
602
  var actualPadding = element.style.paddingRight;
525
- var calculatedPadding = $__default['default'](element).css('padding-right');
526
- $__default['default'](element).data('padding-right', actualPadding).css('padding-right', parseFloat(calculatedPadding) + _this10._scrollbarWidth + "px");
603
+ var calculatedPadding = window.getComputedStyle(element)['padding-right'];
604
+ Manipulator.setDataAttribute(element, 'padding-right', actualPadding);
605
+ element.style.paddingRight = parseFloat(calculatedPadding) + _this10._scrollbarWidth + "px";
527
606
  }); // Adjust sticky content margin
528
607
 
529
- $__default['default'](stickyContent).each(function (index, element) {
608
+ SelectorEngine.find(SELECTOR_STICKY_CONTENT).forEach(function (element) {
530
609
  var actualMargin = element.style.marginRight;
531
- var calculatedMargin = $__default['default'](element).css('margin-right');
532
- $__default['default'](element).data('margin-right', actualMargin).css('margin-right', parseFloat(calculatedMargin) - _this10._scrollbarWidth + "px");
610
+ var calculatedMargin = window.getComputedStyle(element)['margin-right'];
611
+ Manipulator.setDataAttribute(element, 'margin-right', actualMargin);
612
+ element.style.marginRight = parseFloat(calculatedMargin) - _this10._scrollbarWidth + "px";
533
613
  }); // Adjust body padding
534
614
 
535
615
  var actualPadding = document.body.style.paddingRight;
536
- var calculatedPadding = $__default['default'](document.body).css('padding-right');
537
- $__default['default'](document.body).data('padding-right', actualPadding).css('padding-right', parseFloat(calculatedPadding) + this._scrollbarWidth + "px");
616
+ var calculatedPadding = window.getComputedStyle(document.body)['padding-right'];
617
+ Manipulator.setDataAttribute(document.body, 'padding-right', actualPadding);
618
+ document.body.style.paddingRight = parseFloat(calculatedPadding) + this._scrollbarWidth + "px";
538
619
  }
539
620
 
540
- $__default['default'](document.body).addClass(CLASS_NAME_OPEN);
621
+ document.body.classList.add(CLASS_NAME_OPEN);
541
622
  };
542
623
 
543
624
  _proto._resetScrollbar = function _resetScrollbar() {
544
625
  // Restore fixed content padding
545
- var fixedContent = [].slice.call(document.querySelectorAll(SELECTOR_FIXED_CONTENT));
546
- $__default['default'](fixedContent).each(function (index, element) {
547
- var padding = $__default['default'](element).data('padding-right');
548
- $__default['default'](element).removeData('padding-right');
549
- element.style.paddingRight = padding ? padding : '';
550
- }); // Restore sticky content
626
+ SelectorEngine.find(SELECTOR_FIXED_CONTENT).forEach(function (element) {
627
+ var padding = Manipulator.getDataAttribute(element, 'padding-right');
551
628
 
552
- var elements = [].slice.call(document.querySelectorAll("" + SELECTOR_STICKY_CONTENT));
553
- $__default['default'](elements).each(function (index, element) {
554
- var margin = $__default['default'](element).data('margin-right');
629
+ if (typeof padding !== 'undefined') {
630
+ Manipulator.removeDataAttribute(element, 'padding-right');
631
+ element.style.paddingRight = padding;
632
+ }
633
+ }); // Restore sticky content and navbar-toggler margin
634
+
635
+ SelectorEngine.find("" + SELECTOR_STICKY_CONTENT).forEach(function (element) {
636
+ var margin = Manipulator.getDataAttribute(element, 'margin-right');
555
637
 
556
638
  if (typeof margin !== 'undefined') {
557
- $__default['default'](element).css('margin-right', margin).removeData('margin-right');
639
+ Manipulator.removeDataAttribute(element, 'margin-right');
640
+ element.style.marginRight = margin;
558
641
  }
559
642
  }); // Restore body padding
560
643
 
561
- var padding = $__default['default'](document.body).data('padding-right');
562
- $__default['default'](document.body).removeData('padding-right');
563
- document.body.style.paddingRight = padding ? padding : '';
644
+ var padding = Manipulator.getDataAttribute(document.body, 'padding-right');
645
+
646
+ if (typeof padding === 'undefined') {
647
+ document.body.style.paddingRight = '';
648
+ } else {
649
+ Manipulator.removeDataAttribute(document.body, 'padding-right');
650
+ document.body.style.paddingRight = padding;
651
+ }
564
652
  };
565
653
 
566
654
  _proto._getScrollbarWidth = function _getScrollbarWidth() {
@@ -574,15 +662,14 @@
574
662
  } // Static
575
663
  ;
576
664
 
577
- Modal._jQueryInterface = function _jQueryInterface(config, relatedTarget) {
665
+ Modal.jQueryInterface = function jQueryInterface(config, relatedTarget) {
578
666
  return this.each(function () {
579
- var data = $__default['default'](this).data(DATA_KEY);
667
+ var data = Data.getData(this, DATA_KEY);
580
668
 
581
- var _config = _extends({}, Default, $__default['default'](this).data(), typeof config === 'object' && config ? config : {});
669
+ var _config = _objectSpread(_objectSpread(_objectSpread({}, Default), Manipulator.getDataAttributes(this)), typeof config === 'object' && config ? config : {});
582
670
 
583
671
  if (!data) {
584
672
  data = new Modal(this, _config);
585
- $__default['default'](this).data(DATA_KEY, data);
586
673
  }
587
674
 
588
675
  if (typeof config === 'string') {
@@ -597,6 +684,10 @@
597
684
  });
598
685
  };
599
686
 
687
+ Modal.getInstance = function getInstance(element) {
688
+ return Data.getData(element, DATA_KEY);
689
+ };
690
+
600
691
  _createClass(Modal, null, [{
601
692
  key: "VERSION",
602
693
  get: function get() {
@@ -618,50 +709,57 @@
618
709
  */
619
710
 
620
711
 
621
- $__default['default'](document).on(EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {
712
+ EventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {
622
713
  var _this11 = this;
623
714
 
624
- var target;
625
- var selector = Util__default['default'].getSelectorFromElement(this);
626
-
627
- if (selector) {
628
- target = document.querySelector(selector);
629
- }
630
-
631
- var config = $__default['default'](target).data(DATA_KEY) ? 'toggle' : _extends({}, $__default['default'](target).data(), $__default['default'](this).data());
715
+ var target = getElementFromSelector(this);
632
716
 
633
717
  if (this.tagName === 'A' || this.tagName === 'AREA') {
634
718
  event.preventDefault();
635
719
  }
636
720
 
637
- var $target = $__default['default'](target).one(EVENT_SHOW, function (showEvent) {
638
- if (showEvent.isDefaultPrevented()) {
639
- // Only register focus restorer if modal will actually get shown
721
+ EventHandler.one(target, EVENT_SHOW, function (showEvent) {
722
+ if (showEvent.defaultPrevented) {
723
+ // only register focus restorer if modal will actually get shown
640
724
  return;
641
725
  }
642
726
 
643
- $target.one(EVENT_HIDDEN, function () {
644
- if ($__default['default'](_this11).is(':visible')) {
727
+ EventHandler.one(target, EVENT_HIDDEN, function () {
728
+ if (isVisible(_this11)) {
645
729
  _this11.focus();
646
730
  }
647
731
  });
648
732
  });
733
+ var data = Data.getData(target, DATA_KEY);
734
+
735
+ if (!data) {
736
+ var config = _objectSpread(_objectSpread({}, Manipulator.getDataAttributes(target)), Manipulator.getDataAttributes(this));
737
+
738
+ data = new Modal(target, config);
739
+ }
649
740
 
650
- Modal._jQueryInterface.call($__default['default'](target), config, this);
741
+ data.show(this);
651
742
  });
743
+ var $ = getjQuery();
652
744
  /**
653
745
  * ------------------------------------------------------------------------
654
746
  * jQuery
655
747
  * ------------------------------------------------------------------------
748
+ * add .modal to jQuery only if jQuery is present
656
749
  */
657
750
 
658
- $__default['default'].fn[NAME] = Modal._jQueryInterface;
659
- $__default['default'].fn[NAME].Constructor = Modal;
751
+ /* istanbul ignore if */
660
752
 
661
- $__default['default'].fn[NAME].noConflict = function () {
662
- $__default['default'].fn[NAME] = JQUERY_NO_CONFLICT;
663
- return Modal._jQueryInterface;
664
- };
753
+ if ($) {
754
+ var JQUERY_NO_CONFLICT = $.fn[NAME];
755
+ $.fn[NAME] = Modal.jQueryInterface;
756
+ $.fn[NAME].Constructor = Modal;
757
+
758
+ $.fn[NAME].noConflict = function () {
759
+ $.fn[NAME] = JQUERY_NO_CONFLICT;
760
+ return Modal.jQueryInterface;
761
+ };
762
+ }
665
763
 
666
764
  return Modal;
667
765