bootstrap 4.6.0 → 5.0.0

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 (149) hide show
  1. checksums.yaml +4 -4
  2. data/.travis.yml +2 -1
  3. data/README.md +7 -4
  4. data/assets/javascripts/bootstrap/alert.js +181 -109
  5. data/assets/javascripts/bootstrap/base-component.js +63 -0
  6. data/assets/javascripts/bootstrap/button.js +85 -173
  7. data/assets/javascripts/bootstrap/carousel.js +458 -355
  8. data/assets/javascripts/bootstrap/collapse.js +366 -218
  9. data/assets/javascripts/bootstrap/dom/data.js +68 -0
  10. data/assets/javascripts/bootstrap/dom/event-handler.js +322 -0
  11. data/assets/javascripts/bootstrap/dom/manipulator.js +88 -0
  12. data/assets/javascripts/bootstrap/dom/selector-engine.js +85 -0
  13. data/assets/javascripts/bootstrap/dropdown.js +459 -351
  14. data/assets/javascripts/bootstrap/modal.js +597 -429
  15. data/assets/javascripts/bootstrap/offcanvas.js +671 -0
  16. data/assets/javascripts/bootstrap/popover.js +130 -154
  17. data/assets/javascripts/bootstrap/scrollspy.js +238 -188
  18. data/assets/javascripts/bootstrap/tab.js +235 -137
  19. data/assets/javascripts/bootstrap/toast.js +210 -148
  20. data/assets/javascripts/bootstrap/tooltip.js +627 -466
  21. data/assets/javascripts/bootstrap-global-this-define.js +6 -0
  22. data/assets/javascripts/bootstrap-global-this-undefine.js +2 -0
  23. data/assets/javascripts/bootstrap-sprockets.js +15 -8
  24. data/assets/javascripts/bootstrap.js +3174 -2563
  25. data/assets/javascripts/bootstrap.min.js +2 -2
  26. data/assets/stylesheets/_bootstrap-grid.scss +51 -16
  27. data/assets/stylesheets/_bootstrap-reboot.scss +4 -1
  28. data/assets/stylesheets/_bootstrap.scss +16 -8
  29. data/assets/stylesheets/bootstrap/_accordion.scss +118 -0
  30. data/assets/stylesheets/bootstrap/_alert.scss +15 -10
  31. data/assets/stylesheets/bootstrap/_badge.scss +2 -27
  32. data/assets/stylesheets/bootstrap/_breadcrumb.scss +3 -17
  33. data/assets/stylesheets/bootstrap/_button-group.scss +21 -45
  34. data/assets/stylesheets/bootstrap/_buttons.scss +29 -60
  35. data/assets/stylesheets/bootstrap/_card.scss +20 -91
  36. data/assets/stylesheets/bootstrap/_carousel.scss +65 -33
  37. data/assets/stylesheets/bootstrap/_close.scss +30 -30
  38. data/assets/stylesheets/bootstrap/_containers.scss +41 -0
  39. data/assets/stylesheets/bootstrap/_dropdown.scss +84 -36
  40. data/assets/stylesheets/bootstrap/_forms.scss +9 -347
  41. data/assets/stylesheets/bootstrap/_functions.scss +84 -23
  42. data/assets/stylesheets/bootstrap/_grid.scss +3 -54
  43. data/assets/stylesheets/bootstrap/_helpers.scss +7 -0
  44. data/assets/stylesheets/bootstrap/_list-group.scss +28 -8
  45. data/assets/stylesheets/bootstrap/_mixins.scss +8 -13
  46. data/assets/stylesheets/bootstrap/_modal.scss +43 -55
  47. data/assets/stylesheets/bootstrap/_nav.scss +23 -4
  48. data/assets/stylesheets/bootstrap/_navbar.scss +45 -71
  49. data/assets/stylesheets/bootstrap/_offcanvas.scss +77 -0
  50. data/assets/stylesheets/bootstrap/_pagination.scss +10 -20
  51. data/assets/stylesheets/bootstrap/_popover.scss +15 -27
  52. data/assets/stylesheets/bootstrap/_progress.scss +5 -4
  53. data/assets/stylesheets/bootstrap/_reboot.scss +316 -179
  54. data/assets/stylesheets/bootstrap/_root.scss +5 -8
  55. data/assets/stylesheets/bootstrap/_spinners.scss +11 -7
  56. data/assets/stylesheets/bootstrap/_tables.scss +79 -114
  57. data/assets/stylesheets/bootstrap/_toasts.scss +20 -15
  58. data/assets/stylesheets/bootstrap/_tooltip.scss +17 -17
  59. data/assets/stylesheets/bootstrap/_transitions.scss +2 -1
  60. data/assets/stylesheets/bootstrap/_type.scss +38 -59
  61. data/assets/stylesheets/bootstrap/_utilities.scss +594 -18
  62. data/assets/stylesheets/bootstrap/_variables.scss +800 -482
  63. data/assets/stylesheets/bootstrap/bootstrap-utilities.scss +18 -0
  64. data/assets/stylesheets/bootstrap/forms/_floating-labels.scss +61 -0
  65. data/assets/stylesheets/bootstrap/forms/_form-check.scss +152 -0
  66. data/assets/stylesheets/bootstrap/forms/_form-control.scss +219 -0
  67. data/assets/stylesheets/bootstrap/forms/_form-range.scss +91 -0
  68. data/assets/stylesheets/bootstrap/forms/_form-select.scss +67 -0
  69. data/assets/stylesheets/bootstrap/forms/_form-text.scss +11 -0
  70. data/assets/stylesheets/bootstrap/forms/_input-group.scss +121 -0
  71. data/assets/stylesheets/bootstrap/forms/_labels.scss +36 -0
  72. data/assets/stylesheets/bootstrap/forms/_validation.scss +12 -0
  73. data/assets/stylesheets/bootstrap/helpers/_colored-links.scss +12 -0
  74. data/assets/stylesheets/bootstrap/helpers/_position.scss +30 -0
  75. data/assets/stylesheets/bootstrap/helpers/_ratio.scss +26 -0
  76. data/assets/stylesheets/bootstrap/helpers/_stretched-link.scss +15 -0
  77. data/assets/stylesheets/bootstrap/helpers/_text-truncation.scss +7 -0
  78. data/assets/stylesheets/bootstrap/helpers/_visually-hidden.scss +8 -0
  79. data/assets/stylesheets/bootstrap/mixins/_alert.scss +3 -5
  80. data/assets/stylesheets/bootstrap/mixins/_border-radius.scss +10 -8
  81. data/assets/stylesheets/bootstrap/mixins/_box-shadow.scss +7 -9
  82. data/assets/stylesheets/bootstrap/mixins/_breakpoints.scss +14 -10
  83. data/assets/stylesheets/bootstrap/mixins/_buttons.scss +71 -48
  84. data/assets/stylesheets/bootstrap/mixins/_caret.scss +10 -8
  85. data/assets/stylesheets/bootstrap/mixins/_clearfix.scss +2 -0
  86. data/assets/stylesheets/bootstrap/mixins/_color-scheme.scss +7 -0
  87. data/assets/stylesheets/bootstrap/mixins/_container.scss +9 -0
  88. data/assets/stylesheets/bootstrap/mixins/_forms.scss +38 -86
  89. data/assets/stylesheets/bootstrap/mixins/_gradients.scss +13 -11
  90. data/assets/stylesheets/bootstrap/mixins/_grid.scss +89 -33
  91. data/assets/stylesheets/bootstrap/mixins/_image.scss +1 -21
  92. data/assets/stylesheets/bootstrap/mixins/_list-group.scss +5 -2
  93. data/assets/stylesheets/bootstrap/mixins/_lists.scss +1 -1
  94. data/assets/stylesheets/bootstrap/mixins/_pagination.scss +17 -8
  95. data/assets/stylesheets/bootstrap/mixins/_reset-text.scss +2 -2
  96. data/assets/stylesheets/bootstrap/mixins/_table-variants.scss +21 -0
  97. data/assets/stylesheets/bootstrap/mixins/_transition.scss +1 -1
  98. data/assets/stylesheets/bootstrap/mixins/_utilities.scss +68 -0
  99. data/assets/stylesheets/bootstrap/mixins/_visually-hidden.scss +29 -0
  100. data/assets/stylesheets/bootstrap/utilities/_api.scss +47 -0
  101. data/assets/stylesheets/bootstrap/vendor/_rfs.scss +234 -126
  102. data/bootstrap.gemspec +1 -3
  103. data/lib/bootstrap/version.rb +2 -2
  104. data/tasks/updater/js.rb +20 -5
  105. data/tasks/updater/network.rb +7 -1
  106. data/test/dummy_rails/app/assets/javascripts/application.js +4 -3
  107. data/test/dummy_rails/app/views/layouts/application.html.erb +3 -1
  108. data/test/dummy_rails/app/views/pages/root.html +89 -0
  109. data/test/dummy_rails/config/application.rb +0 -3
  110. data/test/gemfiles/rails_6_1.gemfile +7 -0
  111. metadata +45 -73
  112. data/assets/javascripts/bootstrap/util.js +0 -192
  113. data/assets/stylesheets/bootstrap/_code.scss +0 -48
  114. data/assets/stylesheets/bootstrap/_custom-forms.scss +0 -526
  115. data/assets/stylesheets/bootstrap/_input-group.scss +0 -208
  116. data/assets/stylesheets/bootstrap/_jumbotron.scss +0 -17
  117. data/assets/stylesheets/bootstrap/_media.scss +0 -8
  118. data/assets/stylesheets/bootstrap/_print.scss +0 -141
  119. data/assets/stylesheets/bootstrap/mixins/_background-variant.scss +0 -23
  120. data/assets/stylesheets/bootstrap/mixins/_badge.scss +0 -17
  121. data/assets/stylesheets/bootstrap/mixins/_float.scss +0 -14
  122. data/assets/stylesheets/bootstrap/mixins/_grid-framework.scss +0 -80
  123. data/assets/stylesheets/bootstrap/mixins/_hover.scss +0 -37
  124. data/assets/stylesheets/bootstrap/mixins/_nav-divider.scss +0 -11
  125. data/assets/stylesheets/bootstrap/mixins/_screen-reader.scss +0 -34
  126. data/assets/stylesheets/bootstrap/mixins/_size.scss +0 -7
  127. data/assets/stylesheets/bootstrap/mixins/_table-row.scss +0 -39
  128. data/assets/stylesheets/bootstrap/mixins/_text-emphasis.scss +0 -17
  129. data/assets/stylesheets/bootstrap/mixins/_text-hide.scss +0 -11
  130. data/assets/stylesheets/bootstrap/mixins/_visibility.scss +0 -8
  131. data/assets/stylesheets/bootstrap/utilities/_align.scss +0 -8
  132. data/assets/stylesheets/bootstrap/utilities/_background.scss +0 -19
  133. data/assets/stylesheets/bootstrap/utilities/_borders.scss +0 -75
  134. data/assets/stylesheets/bootstrap/utilities/_display.scss +0 -26
  135. data/assets/stylesheets/bootstrap/utilities/_embed.scss +0 -39
  136. data/assets/stylesheets/bootstrap/utilities/_flex.scss +0 -51
  137. data/assets/stylesheets/bootstrap/utilities/_float.scss +0 -11
  138. data/assets/stylesheets/bootstrap/utilities/_interactions.scss +0 -5
  139. data/assets/stylesheets/bootstrap/utilities/_overflow.scss +0 -5
  140. data/assets/stylesheets/bootstrap/utilities/_position.scss +0 -32
  141. data/assets/stylesheets/bootstrap/utilities/_screenreaders.scss +0 -11
  142. data/assets/stylesheets/bootstrap/utilities/_shadows.scss +0 -6
  143. data/assets/stylesheets/bootstrap/utilities/_sizing.scss +0 -20
  144. data/assets/stylesheets/bootstrap/utilities/_spacing.scss +0 -73
  145. data/assets/stylesheets/bootstrap/utilities/_stretched-link.scss +0 -19
  146. data/assets/stylesheets/bootstrap/utilities/_text.scss +0 -72
  147. data/assets/stylesheets/bootstrap/utilities/_visibility.scss +0 -13
  148. data/test/dummy_rails/app/views/pages/root.html.slim +0 -58
  149. /data/assets/stylesheets/bootstrap/{utilities → helpers}/_clearfix.scss +0 -0
@@ -1,93 +1,181 @@
1
1
  /*!
2
- * Bootstrap toast.js v4.6.0 (https://getbootstrap.com/)
2
+ * Bootstrap toast.js v5.0.0 (https://getbootstrap.com/)
3
3
  * Copyright 2011-2021 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.Toast = factory(global.jQuery, global.Util));
10
- }(this, (function ($, Util) { 'use strict';
7
+ typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('./dom/data.js'), require('./dom/event-handler.js'), require('./dom/manipulator.js'), require('./base-component.js')) :
8
+ typeof define === 'function' && define.amd ? define(['./dom/data', './dom/event-handler', './dom/manipulator', './base-component'], factory) :
9
+ (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Toast = factory(global.Data, global.EventHandler, global.Manipulator, global.Base));
10
+ }(this, (function (Data, EventHandler, Manipulator, BaseComponent) { 'use strict';
11
11
 
12
12
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
13
13
 
14
- var $__default = /*#__PURE__*/_interopDefaultLegacy($);
15
- var Util__default = /*#__PURE__*/_interopDefaultLegacy(Util);
14
+ var Data__default = /*#__PURE__*/_interopDefaultLegacy(Data);
15
+ var EventHandler__default = /*#__PURE__*/_interopDefaultLegacy(EventHandler);
16
+ var Manipulator__default = /*#__PURE__*/_interopDefaultLegacy(Manipulator);
17
+ var BaseComponent__default = /*#__PURE__*/_interopDefaultLegacy(BaseComponent);
16
18
 
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);
19
+ /**
20
+ * --------------------------------------------------------------------------
21
+ * Bootstrap (v5.0.0): util/index.js
22
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
23
+ * --------------------------------------------------------------------------
24
+ */
25
+ const MILLISECONDS_MULTIPLIER = 1000;
26
+ const TRANSITION_END = 'transitionend'; // Shoutout AngusCroll (https://goo.gl/pxwQGp)
27
+
28
+ const toType = obj => {
29
+ if (obj === null || obj === undefined) {
30
+ return `${obj}`;
24
31
  }
25
- }
26
32
 
27
- function _createClass(Constructor, protoProps, staticProps) {
28
- if (protoProps) _defineProperties(Constructor.prototype, protoProps);
29
- if (staticProps) _defineProperties(Constructor, staticProps);
30
- return Constructor;
31
- }
33
+ return {}.toString.call(obj).match(/\s([a-z]+)/i)[1].toLowerCase();
34
+ };
32
35
 
33
- function _extends() {
34
- _extends = Object.assign || function (target) {
35
- for (var i = 1; i < arguments.length; i++) {
36
- var source = arguments[i];
36
+ const getTransitionDurationFromElement = element => {
37
+ if (!element) {
38
+ return 0;
39
+ } // Get transition-duration of the element
37
40
 
38
- for (var key in source) {
39
- if (Object.prototype.hasOwnProperty.call(source, key)) {
40
- target[key] = source[key];
41
- }
42
- }
41
+
42
+ let {
43
+ transitionDuration,
44
+ transitionDelay
45
+ } = window.getComputedStyle(element);
46
+ const floatTransitionDuration = Number.parseFloat(transitionDuration);
47
+ const floatTransitionDelay = Number.parseFloat(transitionDelay); // Return 0 if element or transition duration is not found
48
+
49
+ if (!floatTransitionDuration && !floatTransitionDelay) {
50
+ return 0;
51
+ } // If multiple durations are defined, take the first
52
+
53
+
54
+ transitionDuration = transitionDuration.split(',')[0];
55
+ transitionDelay = transitionDelay.split(',')[0];
56
+ return (Number.parseFloat(transitionDuration) + Number.parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER;
57
+ };
58
+
59
+ const triggerTransitionEnd = element => {
60
+ element.dispatchEvent(new Event(TRANSITION_END));
61
+ };
62
+
63
+ const isElement = obj => (obj[0] || obj).nodeType;
64
+
65
+ const emulateTransitionEnd = (element, duration) => {
66
+ let called = false;
67
+ const durationPadding = 5;
68
+ const emulatedDuration = duration + durationPadding;
69
+
70
+ function listener() {
71
+ called = true;
72
+ element.removeEventListener(TRANSITION_END, listener);
73
+ }
74
+
75
+ element.addEventListener(TRANSITION_END, listener);
76
+ setTimeout(() => {
77
+ if (!called) {
78
+ triggerTransitionEnd(element);
43
79
  }
80
+ }, emulatedDuration);
81
+ };
44
82
 
45
- return target;
46
- };
83
+ const typeCheckConfig = (componentName, config, configTypes) => {
84
+ Object.keys(configTypes).forEach(property => {
85
+ const expectedTypes = configTypes[property];
86
+ const value = config[property];
87
+ const valueType = value && isElement(value) ? 'element' : toType(value);
47
88
 
48
- return _extends.apply(this, arguments);
49
- }
89
+ if (!new RegExp(expectedTypes).test(valueType)) {
90
+ throw new TypeError(`${componentName.toUpperCase()}: Option "${property}" provided type "${valueType}" but expected type "${expectedTypes}".`);
91
+ }
92
+ });
93
+ };
94
+
95
+ const reflow = element => element.offsetHeight;
96
+
97
+ const getjQuery = () => {
98
+ const {
99
+ jQuery
100
+ } = window;
101
+
102
+ if (jQuery && !document.body.hasAttribute('data-bs-no-jquery')) {
103
+ return jQuery;
104
+ }
105
+
106
+ return null;
107
+ };
50
108
 
109
+ const onDOMContentLoaded = callback => {
110
+ if (document.readyState === 'loading') {
111
+ document.addEventListener('DOMContentLoaded', callback);
112
+ } else {
113
+ callback();
114
+ }
115
+ };
116
+
117
+ const defineJQueryPlugin = (name, plugin) => {
118
+ onDOMContentLoaded(() => {
119
+ const $ = getjQuery();
120
+ /* istanbul ignore if */
121
+
122
+ if ($) {
123
+ const JQUERY_NO_CONFLICT = $.fn[name];
124
+ $.fn[name] = plugin.jQueryInterface;
125
+ $.fn[name].Constructor = plugin;
126
+
127
+ $.fn[name].noConflict = () => {
128
+ $.fn[name] = JQUERY_NO_CONFLICT;
129
+ return plugin.jQueryInterface;
130
+ };
131
+ }
132
+ });
133
+ };
134
+
135
+ /**
136
+ * --------------------------------------------------------------------------
137
+ * Bootstrap (v5.0.0): toast.js
138
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
139
+ * --------------------------------------------------------------------------
140
+ */
51
141
  /**
52
142
  * ------------------------------------------------------------------------
53
143
  * Constants
54
144
  * ------------------------------------------------------------------------
55
145
  */
56
146
 
57
- var NAME = 'toast';
58
- var VERSION = '4.6.0';
59
- var DATA_KEY = 'bs.toast';
60
- var EVENT_KEY = "." + DATA_KEY;
61
- var JQUERY_NO_CONFLICT = $__default['default'].fn[NAME];
62
- var EVENT_CLICK_DISMISS = "click.dismiss" + EVENT_KEY;
63
- var EVENT_HIDE = "hide" + EVENT_KEY;
64
- var EVENT_HIDDEN = "hidden" + EVENT_KEY;
65
- var EVENT_SHOW = "show" + EVENT_KEY;
66
- var EVENT_SHOWN = "shown" + EVENT_KEY;
67
- var CLASS_NAME_FADE = 'fade';
68
- var CLASS_NAME_HIDE = 'hide';
69
- var CLASS_NAME_SHOW = 'show';
70
- var CLASS_NAME_SHOWING = 'showing';
71
- var DefaultType = {
147
+ const NAME = 'toast';
148
+ const DATA_KEY = 'bs.toast';
149
+ const EVENT_KEY = `.${DATA_KEY}`;
150
+ const EVENT_CLICK_DISMISS = `click.dismiss${EVENT_KEY}`;
151
+ const EVENT_HIDE = `hide${EVENT_KEY}`;
152
+ const EVENT_HIDDEN = `hidden${EVENT_KEY}`;
153
+ const EVENT_SHOW = `show${EVENT_KEY}`;
154
+ const EVENT_SHOWN = `shown${EVENT_KEY}`;
155
+ const CLASS_NAME_FADE = 'fade';
156
+ const CLASS_NAME_HIDE = 'hide';
157
+ const CLASS_NAME_SHOW = 'show';
158
+ const CLASS_NAME_SHOWING = 'showing';
159
+ const DefaultType = {
72
160
  animation: 'boolean',
73
161
  autohide: 'boolean',
74
162
  delay: 'number'
75
163
  };
76
- var Default = {
164
+ const Default = {
77
165
  animation: true,
78
166
  autohide: true,
79
- delay: 500
167
+ delay: 5000
80
168
  };
81
- var SELECTOR_DATA_DISMISS = '[data-dismiss="toast"]';
169
+ const SELECTOR_DATA_DISMISS = '[data-bs-dismiss="toast"]';
82
170
  /**
83
171
  * ------------------------------------------------------------------------
84
172
  * Class Definition
85
173
  * ------------------------------------------------------------------------
86
174
  */
87
175
 
88
- var Toast = /*#__PURE__*/function () {
89
- function Toast(element, config) {
90
- this._element = element;
176
+ class Toast extends BaseComponent__default['default'] {
177
+ constructor(element, config) {
178
+ super(element);
91
179
  this._config = this._getConfig(config);
92
180
  this._timeout = null;
93
181
 
@@ -95,16 +183,23 @@
95
183
  } // Getters
96
184
 
97
185
 
98
- var _proto = Toast.prototype;
186
+ static get DefaultType() {
187
+ return DefaultType;
188
+ }
189
+
190
+ static get Default() {
191
+ return Default;
192
+ }
99
193
 
100
- // Public
101
- _proto.show = function show() {
102
- var _this = this;
194
+ static get DATA_KEY() {
195
+ return DATA_KEY;
196
+ } // Public
103
197
 
104
- var showEvent = $__default['default'].Event(EVENT_SHOW);
105
- $__default['default'](this._element).trigger(showEvent);
106
198
 
107
- if (showEvent.isDefaultPrevented()) {
199
+ show() {
200
+ const showEvent = EventHandler__default['default'].trigger(this._element, EVENT_SHOW);
201
+
202
+ if (showEvent.defaultPrevented) {
108
203
  return;
109
204
  }
110
205
 
@@ -114,157 +209,124 @@
114
209
  this._element.classList.add(CLASS_NAME_FADE);
115
210
  }
116
211
 
117
- var complete = function complete() {
118
- _this._element.classList.remove(CLASS_NAME_SHOWING);
212
+ const complete = () => {
213
+ this._element.classList.remove(CLASS_NAME_SHOWING);
119
214
 
120
- _this._element.classList.add(CLASS_NAME_SHOW);
215
+ this._element.classList.add(CLASS_NAME_SHOW);
121
216
 
122
- $__default['default'](_this._element).trigger(EVENT_SHOWN);
217
+ EventHandler__default['default'].trigger(this._element, EVENT_SHOWN);
123
218
 
124
- if (_this._config.autohide) {
125
- _this._timeout = setTimeout(function () {
126
- _this.hide();
127
- }, _this._config.delay);
219
+ if (this._config.autohide) {
220
+ this._timeout = setTimeout(() => {
221
+ this.hide();
222
+ }, this._config.delay);
128
223
  }
129
224
  };
130
225
 
131
226
  this._element.classList.remove(CLASS_NAME_HIDE);
132
227
 
133
- Util__default['default'].reflow(this._element);
228
+ reflow(this._element);
134
229
 
135
230
  this._element.classList.add(CLASS_NAME_SHOWING);
136
231
 
137
232
  if (this._config.animation) {
138
- var transitionDuration = Util__default['default'].getTransitionDurationFromElement(this._element);
139
- $__default['default'](this._element).one(Util__default['default'].TRANSITION_END, complete).emulateTransitionEnd(transitionDuration);
233
+ const transitionDuration = getTransitionDurationFromElement(this._element);
234
+ EventHandler__default['default'].one(this._element, 'transitionend', complete);
235
+ emulateTransitionEnd(this._element, transitionDuration);
140
236
  } else {
141
237
  complete();
142
238
  }
143
- };
239
+ }
144
240
 
145
- _proto.hide = function hide() {
241
+ hide() {
146
242
  if (!this._element.classList.contains(CLASS_NAME_SHOW)) {
147
243
  return;
148
244
  }
149
245
 
150
- var hideEvent = $__default['default'].Event(EVENT_HIDE);
151
- $__default['default'](this._element).trigger(hideEvent);
246
+ const hideEvent = EventHandler__default['default'].trigger(this._element, EVENT_HIDE);
152
247
 
153
- if (hideEvent.isDefaultPrevented()) {
248
+ if (hideEvent.defaultPrevented) {
154
249
  return;
155
250
  }
156
251
 
157
- this._close();
158
- };
252
+ const complete = () => {
253
+ this._element.classList.add(CLASS_NAME_HIDE);
254
+
255
+ EventHandler__default['default'].trigger(this._element, EVENT_HIDDEN);
256
+ };
257
+
258
+ this._element.classList.remove(CLASS_NAME_SHOW);
259
+
260
+ if (this._config.animation) {
261
+ const transitionDuration = getTransitionDurationFromElement(this._element);
262
+ EventHandler__default['default'].one(this._element, 'transitionend', complete);
263
+ emulateTransitionEnd(this._element, transitionDuration);
264
+ } else {
265
+ complete();
266
+ }
267
+ }
159
268
 
160
- _proto.dispose = function dispose() {
269
+ dispose() {
161
270
  this._clearTimeout();
162
271
 
163
272
  if (this._element.classList.contains(CLASS_NAME_SHOW)) {
164
273
  this._element.classList.remove(CLASS_NAME_SHOW);
165
274
  }
166
275
 
167
- $__default['default'](this._element).off(EVENT_CLICK_DISMISS);
168
- $__default['default'].removeData(this._element, DATA_KEY);
169
- this._element = null;
276
+ super.dispose();
170
277
  this._config = null;
171
278
  } // Private
172
- ;
173
-
174
- _proto._getConfig = function _getConfig(config) {
175
- config = _extends({}, Default, $__default['default'](this._element).data(), typeof config === 'object' && config ? config : {});
176
- Util__default['default'].typeCheckConfig(NAME, config, this.constructor.DefaultType);
177
- return config;
178
- };
179
-
180
- _proto._setListeners = function _setListeners() {
181
- var _this2 = this;
182
-
183
- $__default['default'](this._element).on(EVENT_CLICK_DISMISS, SELECTOR_DATA_DISMISS, function () {
184
- return _this2.hide();
185
- });
186
- };
187
279
 
188
- _proto._close = function _close() {
189
- var _this3 = this;
190
280
 
191
- var complete = function complete() {
192
- _this3._element.classList.add(CLASS_NAME_HIDE);
193
-
194
- $__default['default'](_this3._element).trigger(EVENT_HIDDEN);
281
+ _getConfig(config) {
282
+ config = { ...Default,
283
+ ...Manipulator__default['default'].getDataAttributes(this._element),
284
+ ...(typeof config === 'object' && config ? config : {})
195
285
  };
286
+ typeCheckConfig(NAME, config, this.constructor.DefaultType);
287
+ return config;
288
+ }
196
289
 
197
- this._element.classList.remove(CLASS_NAME_SHOW);
198
-
199
- if (this._config.animation) {
200
- var transitionDuration = Util__default['default'].getTransitionDurationFromElement(this._element);
201
- $__default['default'](this._element).one(Util__default['default'].TRANSITION_END, complete).emulateTransitionEnd(transitionDuration);
202
- } else {
203
- complete();
204
- }
205
- };
290
+ _setListeners() {
291
+ EventHandler__default['default'].on(this._element, EVENT_CLICK_DISMISS, SELECTOR_DATA_DISMISS, () => this.hide());
292
+ }
206
293
 
207
- _proto._clearTimeout = function _clearTimeout() {
294
+ _clearTimeout() {
208
295
  clearTimeout(this._timeout);
209
296
  this._timeout = null;
210
297
  } // Static
211
- ;
212
298
 
213
- Toast._jQueryInterface = function _jQueryInterface(config) {
299
+
300
+ static jQueryInterface(config) {
214
301
  return this.each(function () {
215
- var $element = $__default['default'](this);
216
- var data = $element.data(DATA_KEY);
302
+ let data = Data__default['default'].get(this, DATA_KEY);
217
303
 
218
- var _config = typeof config === 'object' && config;
304
+ const _config = typeof config === 'object' && config;
219
305
 
220
306
  if (!data) {
221
307
  data = new Toast(this, _config);
222
- $element.data(DATA_KEY, data);
223
308
  }
224
309
 
225
310
  if (typeof config === 'string') {
226
311
  if (typeof data[config] === 'undefined') {
227
- throw new TypeError("No method named \"" + config + "\"");
312
+ throw new TypeError(`No method named "${config}"`);
228
313
  }
229
314
 
230
315
  data[config](this);
231
316
  }
232
317
  });
233
- };
234
-
235
- _createClass(Toast, null, [{
236
- key: "VERSION",
237
- get: function get() {
238
- return VERSION;
239
- }
240
- }, {
241
- key: "DefaultType",
242
- get: function get() {
243
- return DefaultType;
244
- }
245
- }, {
246
- key: "Default",
247
- get: function get() {
248
- return Default;
249
- }
250
- }]);
318
+ }
251
319
 
252
- return Toast;
253
- }();
320
+ }
254
321
  /**
255
322
  * ------------------------------------------------------------------------
256
323
  * jQuery
257
324
  * ------------------------------------------------------------------------
325
+ * add .Toast to jQuery only if jQuery is present
258
326
  */
259
327
 
260
328
 
261
- $__default['default'].fn[NAME] = Toast._jQueryInterface;
262
- $__default['default'].fn[NAME].Constructor = Toast;
263
-
264
- $__default['default'].fn[NAME].noConflict = function () {
265
- $__default['default'].fn[NAME] = JQUERY_NO_CONFLICT;
266
- return Toast._jQueryInterface;
267
- };
329
+ defineJQueryPlugin(NAME, Toast);
268
330
 
269
331
  return Toast;
270
332