bootstrap 4.1.3 → 4.2.1

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.

Potentially problematic release.


This version of bootstrap might be problematic. Click here for more details.

Files changed (69) hide show
  1. checksums.yaml +4 -4
  2. data/.travis.yml +1 -1
  3. data/README.md +1 -1
  4. data/Rakefile +2 -2
  5. data/assets/javascripts/bootstrap-sprockets.js +6 -5
  6. data/assets/javascripts/bootstrap.js +3290 -2985
  7. data/assets/javascripts/bootstrap.min.js +2 -2
  8. data/assets/javascripts/bootstrap/alert.js +127 -132
  9. data/assets/javascripts/bootstrap/button.js +119 -124
  10. data/assets/javascripts/bootstrap/carousel.js +492 -393
  11. data/assets/javascripts/bootstrap/collapse.js +276 -279
  12. data/assets/javascripts/bootstrap/dropdown.js +413 -374
  13. data/assets/javascripts/bootstrap/modal.js +455 -445
  14. data/assets/javascripts/bootstrap/popover.js +155 -160
  15. data/assets/javascripts/bootstrap/scrollspy.js +246 -250
  16. data/assets/javascripts/bootstrap/tab.js +180 -192
  17. data/assets/javascripts/bootstrap/toast.js +277 -0
  18. data/assets/javascripts/bootstrap/tooltip.js +533 -522
  19. data/assets/javascripts/bootstrap/util.js +140 -116
  20. data/assets/stylesheets/_bootstrap-grid.scss +2 -5
  21. data/assets/stylesheets/_bootstrap-reboot.scss +1 -1
  22. data/assets/stylesheets/_bootstrap.scss +3 -1
  23. data/assets/stylesheets/bootstrap/_alert.scss +1 -1
  24. data/assets/stylesheets/bootstrap/_badge.scss +6 -0
  25. data/assets/stylesheets/bootstrap/_button-group.scss +9 -18
  26. data/assets/stylesheets/bootstrap/_buttons.scss +7 -10
  27. data/assets/stylesheets/bootstrap/_card.scss +30 -21
  28. data/assets/stylesheets/bootstrap/_carousel.scss +36 -74
  29. data/assets/stylesheets/bootstrap/_close.scss +15 -6
  30. data/assets/stylesheets/bootstrap/_custom-forms.scss +103 -29
  31. data/assets/stylesheets/bootstrap/_dropdown.scss +30 -5
  32. data/assets/stylesheets/bootstrap/_forms.scss +12 -11
  33. data/assets/stylesheets/bootstrap/_functions.scss +4 -4
  34. data/assets/stylesheets/bootstrap/_images.scss +1 -1
  35. data/assets/stylesheets/bootstrap/_input-group.scss +24 -4
  36. data/assets/stylesheets/bootstrap/_list-group.scss +6 -0
  37. data/assets/stylesheets/bootstrap/_modal.scss +16 -10
  38. data/assets/stylesheets/bootstrap/_nav.scss +2 -0
  39. data/assets/stylesheets/bootstrap/_navbar.scss +4 -4
  40. data/assets/stylesheets/bootstrap/_popover.scss +1 -1
  41. data/assets/stylesheets/bootstrap/_reboot.scss +14 -35
  42. data/assets/stylesheets/bootstrap/_spinners.scss +53 -0
  43. data/assets/stylesheets/bootstrap/_tables.scss +2 -2
  44. data/assets/stylesheets/bootstrap/_toasts.scss +43 -0
  45. data/assets/stylesheets/bootstrap/_type.scss +2 -2
  46. data/assets/stylesheets/bootstrap/_utilities.scss +1 -0
  47. data/assets/stylesheets/bootstrap/_variables.scss +220 -81
  48. data/assets/stylesheets/bootstrap/mixins/_badge.scss +1 -2
  49. data/assets/stylesheets/bootstrap/mixins/_breakpoints.scss +2 -2
  50. data/assets/stylesheets/bootstrap/mixins/_buttons.scss +9 -7
  51. data/assets/stylesheets/bootstrap/mixins/_caret.scss +0 -4
  52. data/assets/stylesheets/bootstrap/mixins/_forms.scss +61 -10
  53. data/assets/stylesheets/bootstrap/mixins/_grid-framework.scss +3 -4
  54. data/assets/stylesheets/bootstrap/mixins/_grid.scss +9 -10
  55. data/assets/stylesheets/bootstrap/mixins/_table-row.scss +10 -1
  56. data/assets/stylesheets/bootstrap/mixins/_text-emphasis.scss +1 -1
  57. data/assets/stylesheets/bootstrap/mixins/_transition.scss +5 -2
  58. data/assets/stylesheets/bootstrap/utilities/_borders.scss +4 -0
  59. data/assets/stylesheets/bootstrap/utilities/_embed.scss +7 -20
  60. data/assets/stylesheets/bootstrap/utilities/_overflow.scss +5 -0
  61. data/assets/stylesheets/bootstrap/utilities/_position.scss +0 -5
  62. data/assets/stylesheets/bootstrap/utilities/_sizing.scss +8 -0
  63. data/assets/stylesheets/bootstrap/utilities/_spacing.scss +23 -1
  64. data/assets/stylesheets/bootstrap/utilities/_text.scss +13 -4
  65. data/bootstrap.gemspec +6 -3
  66. data/lib/bootstrap.rb +10 -7
  67. data/lib/bootstrap/engine.rb +3 -0
  68. data/lib/bootstrap/version.rb +4 -2
  69. metadata +15 -11
@@ -1,3 +1,8 @@
1
+ /*!
2
+ * Bootstrap tab.js v4.2.1 (https://getbootstrap.com/)
3
+ * Copyright 2011-2018 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
4
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
5
+ */
1
6
  (function (global, factory) {
2
7
  typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('jquery'), require('./util.js')) :
3
8
  typeof define === 'function' && define.amd ? define(['jquery', './util.js'], factory) :
@@ -24,253 +29,236 @@
24
29
  }
25
30
 
26
31
  /**
27
- * --------------------------------------------------------------------------
28
- * Bootstrap (v4.1.3): tab.js
29
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
30
- * --------------------------------------------------------------------------
32
+ * ------------------------------------------------------------------------
33
+ * Constants
34
+ * ------------------------------------------------------------------------
31
35
  */
32
36
 
33
- var Tab = function ($$$1) {
37
+ var NAME = 'tab';
38
+ var VERSION = '4.2.1';
39
+ var DATA_KEY = 'bs.tab';
40
+ var EVENT_KEY = "." + DATA_KEY;
41
+ var DATA_API_KEY = '.data-api';
42
+ var JQUERY_NO_CONFLICT = $.fn[NAME];
43
+ var Event = {
44
+ HIDE: "hide" + EVENT_KEY,
45
+ HIDDEN: "hidden" + EVENT_KEY,
46
+ SHOW: "show" + EVENT_KEY,
47
+ SHOWN: "shown" + EVENT_KEY,
48
+ CLICK_DATA_API: "click" + EVENT_KEY + DATA_API_KEY
49
+ };
50
+ var ClassName = {
51
+ DROPDOWN_MENU: 'dropdown-menu',
52
+ ACTIVE: 'active',
53
+ DISABLED: 'disabled',
54
+ FADE: 'fade',
55
+ SHOW: 'show'
56
+ };
57
+ var Selector = {
58
+ DROPDOWN: '.dropdown',
59
+ NAV_LIST_GROUP: '.nav, .list-group',
60
+ ACTIVE: '.active',
61
+ ACTIVE_UL: '> li > .active',
62
+ DATA_TOGGLE: '[data-toggle="tab"], [data-toggle="pill"], [data-toggle="list"]',
63
+ DROPDOWN_TOGGLE: '.dropdown-toggle',
64
+ DROPDOWN_ACTIVE_CHILD: '> .dropdown-menu .active'
34
65
  /**
35
66
  * ------------------------------------------------------------------------
36
- * Constants
67
+ * Class Definition
37
68
  * ------------------------------------------------------------------------
38
69
  */
39
- var NAME = 'tab';
40
- var VERSION = '4.1.3';
41
- var DATA_KEY = 'bs.tab';
42
- var EVENT_KEY = "." + DATA_KEY;
43
- var DATA_API_KEY = '.data-api';
44
- var JQUERY_NO_CONFLICT = $$$1.fn[NAME];
45
- var Event = {
46
- HIDE: "hide" + EVENT_KEY,
47
- HIDDEN: "hidden" + EVENT_KEY,
48
- SHOW: "show" + EVENT_KEY,
49
- SHOWN: "shown" + EVENT_KEY,
50
- CLICK_DATA_API: "click" + EVENT_KEY + DATA_API_KEY
51
- };
52
- var ClassName = {
53
- DROPDOWN_MENU: 'dropdown-menu',
54
- ACTIVE: 'active',
55
- DISABLED: 'disabled',
56
- FADE: 'fade',
57
- SHOW: 'show'
58
- };
59
- var Selector = {
60
- DROPDOWN: '.dropdown',
61
- NAV_LIST_GROUP: '.nav, .list-group',
62
- ACTIVE: '.active',
63
- ACTIVE_UL: '> li > .active',
64
- DATA_TOGGLE: '[data-toggle="tab"], [data-toggle="pill"], [data-toggle="list"]',
65
- DROPDOWN_TOGGLE: '.dropdown-toggle',
66
- DROPDOWN_ACTIVE_CHILD: '> .dropdown-menu .active'
67
- /**
68
- * ------------------------------------------------------------------------
69
- * Class Definition
70
- * ------------------------------------------------------------------------
71
- */
72
-
73
- };
74
70
 
75
- var Tab =
76
- /*#__PURE__*/
77
- function () {
78
- function Tab(element) {
79
- this._element = element;
80
- } // Getters
71
+ };
81
72
 
73
+ var Tab =
74
+ /*#__PURE__*/
75
+ function () {
76
+ function Tab(element) {
77
+ this._element = element;
78
+ } // Getters
82
79
 
83
- var _proto = Tab.prototype;
84
80
 
85
- // Public
86
- _proto.show = function show() {
87
- var _this = this;
81
+ var _proto = Tab.prototype;
88
82
 
89
- if (this._element.parentNode && this._element.parentNode.nodeType === Node.ELEMENT_NODE && $$$1(this._element).hasClass(ClassName.ACTIVE) || $$$1(this._element).hasClass(ClassName.DISABLED)) {
90
- return;
91
- }
83
+ // Public
84
+ _proto.show = function show() {
85
+ var _this = this;
92
86
 
93
- var target;
94
- var previous;
95
- var listElement = $$$1(this._element).closest(Selector.NAV_LIST_GROUP)[0];
96
- var selector = Util.getSelectorFromElement(this._element);
87
+ if (this._element.parentNode && this._element.parentNode.nodeType === Node.ELEMENT_NODE && $(this._element).hasClass(ClassName.ACTIVE) || $(this._element).hasClass(ClassName.DISABLED)) {
88
+ return;
89
+ }
97
90
 
98
- if (listElement) {
99
- var itemSelector = listElement.nodeName === 'UL' ? Selector.ACTIVE_UL : Selector.ACTIVE;
100
- previous = $$$1.makeArray($$$1(listElement).find(itemSelector));
101
- previous = previous[previous.length - 1];
102
- }
91
+ var target;
92
+ var previous;
93
+ var listElement = $(this._element).closest(Selector.NAV_LIST_GROUP)[0];
94
+ var selector = Util.getSelectorFromElement(this._element);
103
95
 
104
- var hideEvent = $$$1.Event(Event.HIDE, {
105
- relatedTarget: this._element
106
- });
107
- var showEvent = $$$1.Event(Event.SHOW, {
108
- relatedTarget: previous
109
- });
96
+ if (listElement) {
97
+ var itemSelector = listElement.nodeName === 'UL' || listElement.nodeName === 'OL' ? Selector.ACTIVE_UL : Selector.ACTIVE;
98
+ previous = $.makeArray($(listElement).find(itemSelector));
99
+ previous = previous[previous.length - 1];
100
+ }
110
101
 
111
- if (previous) {
112
- $$$1(previous).trigger(hideEvent);
113
- }
102
+ var hideEvent = $.Event(Event.HIDE, {
103
+ relatedTarget: this._element
104
+ });
105
+ var showEvent = $.Event(Event.SHOW, {
106
+ relatedTarget: previous
107
+ });
114
108
 
115
- $$$1(this._element).trigger(showEvent);
109
+ if (previous) {
110
+ $(previous).trigger(hideEvent);
111
+ }
116
112
 
117
- if (showEvent.isDefaultPrevented() || hideEvent.isDefaultPrevented()) {
118
- return;
119
- }
113
+ $(this._element).trigger(showEvent);
120
114
 
121
- if (selector) {
122
- target = document.querySelector(selector);
123
- }
115
+ if (showEvent.isDefaultPrevented() || hideEvent.isDefaultPrevented()) {
116
+ return;
117
+ }
124
118
 
125
- this._activate(this._element, listElement);
126
-
127
- var complete = function complete() {
128
- var hiddenEvent = $$$1.Event(Event.HIDDEN, {
129
- relatedTarget: _this._element
130
- });
131
- var shownEvent = $$$1.Event(Event.SHOWN, {
132
- relatedTarget: previous
133
- });
134
- $$$1(previous).trigger(hiddenEvent);
135
- $$$1(_this._element).trigger(shownEvent);
136
- };
137
-
138
- if (target) {
139
- this._activate(target, target.parentNode, complete);
140
- } else {
141
- complete();
142
- }
143
- };
119
+ if (selector) {
120
+ target = document.querySelector(selector);
121
+ }
144
122
 
145
- _proto.dispose = function dispose() {
146
- $$$1.removeData(this._element, DATA_KEY);
147
- this._element = null;
148
- }; // Private
123
+ this._activate(this._element, listElement);
149
124
 
125
+ var complete = function complete() {
126
+ var hiddenEvent = $.Event(Event.HIDDEN, {
127
+ relatedTarget: _this._element
128
+ });
129
+ var shownEvent = $.Event(Event.SHOWN, {
130
+ relatedTarget: previous
131
+ });
132
+ $(previous).trigger(hiddenEvent);
133
+ $(_this._element).trigger(shownEvent);
134
+ };
150
135
 
151
- _proto._activate = function _activate(element, container, callback) {
152
- var _this2 = this;
136
+ if (target) {
137
+ this._activate(target, target.parentNode, complete);
138
+ } else {
139
+ complete();
140
+ }
141
+ };
153
142
 
154
- var activeElements;
143
+ _proto.dispose = function dispose() {
144
+ $.removeData(this._element, DATA_KEY);
145
+ this._element = null;
146
+ }; // Private
155
147
 
156
- if (container.nodeName === 'UL') {
157
- activeElements = $$$1(container).find(Selector.ACTIVE_UL);
158
- } else {
159
- activeElements = $$$1(container).children(Selector.ACTIVE);
160
- }
161
148
 
162
- var active = activeElements[0];
163
- var isTransitioning = callback && active && $$$1(active).hasClass(ClassName.FADE);
149
+ _proto._activate = function _activate(element, container, callback) {
150
+ var _this2 = this;
164
151
 
165
- var complete = function complete() {
166
- return _this2._transitionComplete(element, active, callback);
167
- };
152
+ var activeElements = container && (container.nodeName === 'UL' || container.nodeName === 'OL') ? $(container).find(Selector.ACTIVE_UL) : $(container).children(Selector.ACTIVE);
153
+ var active = activeElements[0];
154
+ var isTransitioning = callback && active && $(active).hasClass(ClassName.FADE);
168
155
 
169
- if (active && isTransitioning) {
170
- var transitionDuration = Util.getTransitionDurationFromElement(active);
171
- $$$1(active).one(Util.TRANSITION_END, complete).emulateTransitionEnd(transitionDuration);
172
- } else {
173
- complete();
174
- }
156
+ var complete = function complete() {
157
+ return _this2._transitionComplete(element, active, callback);
175
158
  };
176
159
 
177
- _proto._transitionComplete = function _transitionComplete(element, active, callback) {
178
- if (active) {
179
- $$$1(active).removeClass(ClassName.SHOW + " " + ClassName.ACTIVE);
180
- var dropdownChild = $$$1(active.parentNode).find(Selector.DROPDOWN_ACTIVE_CHILD)[0];
160
+ if (active && isTransitioning) {
161
+ var transitionDuration = Util.getTransitionDurationFromElement(active);
162
+ $(active).removeClass(ClassName.SHOW).one(Util.TRANSITION_END, complete).emulateTransitionEnd(transitionDuration);
163
+ } else {
164
+ complete();
165
+ }
166
+ };
181
167
 
182
- if (dropdownChild) {
183
- $$$1(dropdownChild).removeClass(ClassName.ACTIVE);
184
- }
168
+ _proto._transitionComplete = function _transitionComplete(element, active, callback) {
169
+ if (active) {
170
+ $(active).removeClass(ClassName.ACTIVE);
171
+ var dropdownChild = $(active.parentNode).find(Selector.DROPDOWN_ACTIVE_CHILD)[0];
185
172
 
186
- if (active.getAttribute('role') === 'tab') {
187
- active.setAttribute('aria-selected', false);
188
- }
173
+ if (dropdownChild) {
174
+ $(dropdownChild).removeClass(ClassName.ACTIVE);
189
175
  }
190
176
 
191
- $$$1(element).addClass(ClassName.ACTIVE);
192
-
193
- if (element.getAttribute('role') === 'tab') {
194
- element.setAttribute('aria-selected', true);
177
+ if (active.getAttribute('role') === 'tab') {
178
+ active.setAttribute('aria-selected', false);
195
179
  }
180
+ }
196
181
 
197
- Util.reflow(element);
198
- $$$1(element).addClass(ClassName.SHOW);
182
+ $(element).addClass(ClassName.ACTIVE);
199
183
 
200
- if (element.parentNode && $$$1(element.parentNode).hasClass(ClassName.DROPDOWN_MENU)) {
201
- var dropdownElement = $$$1(element).closest(Selector.DROPDOWN)[0];
184
+ if (element.getAttribute('role') === 'tab') {
185
+ element.setAttribute('aria-selected', true);
186
+ }
202
187
 
203
- if (dropdownElement) {
204
- var dropdownToggleList = [].slice.call(dropdownElement.querySelectorAll(Selector.DROPDOWN_TOGGLE));
205
- $$$1(dropdownToggleList).addClass(ClassName.ACTIVE);
206
- }
188
+ Util.reflow(element);
189
+ $(element).addClass(ClassName.SHOW);
207
190
 
208
- element.setAttribute('aria-expanded', true);
209
- }
191
+ if (element.parentNode && $(element.parentNode).hasClass(ClassName.DROPDOWN_MENU)) {
192
+ var dropdownElement = $(element).closest(Selector.DROPDOWN)[0];
210
193
 
211
- if (callback) {
212
- callback();
194
+ if (dropdownElement) {
195
+ var dropdownToggleList = [].slice.call(dropdownElement.querySelectorAll(Selector.DROPDOWN_TOGGLE));
196
+ $(dropdownToggleList).addClass(ClassName.ACTIVE);
213
197
  }
214
- }; // Static
215
198
 
199
+ element.setAttribute('aria-expanded', true);
200
+ }
216
201
 
217
- Tab._jQueryInterface = function _jQueryInterface(config) {
218
- return this.each(function () {
219
- var $this = $$$1(this);
220
- var data = $this.data(DATA_KEY);
202
+ if (callback) {
203
+ callback();
204
+ }
205
+ }; // Static
221
206
 
222
- if (!data) {
223
- data = new Tab(this);
224
- $this.data(DATA_KEY, data);
225
- }
226
207
 
227
- if (typeof config === 'string') {
228
- if (typeof data[config] === 'undefined') {
229
- throw new TypeError("No method named \"" + config + "\"");
230
- }
208
+ Tab._jQueryInterface = function _jQueryInterface(config) {
209
+ return this.each(function () {
210
+ var $this = $(this);
211
+ var data = $this.data(DATA_KEY);
212
+
213
+ if (!data) {
214
+ data = new Tab(this);
215
+ $this.data(DATA_KEY, data);
216
+ }
231
217
 
232
- data[config]();
218
+ if (typeof config === 'string') {
219
+ if (typeof data[config] === 'undefined') {
220
+ throw new TypeError("No method named \"" + config + "\"");
233
221
  }
234
- });
235
- };
236
222
 
237
- _createClass(Tab, null, [{
238
- key: "VERSION",
239
- get: function get() {
240
- return VERSION;
223
+ data[config]();
241
224
  }
242
- }]);
225
+ });
226
+ };
243
227
 
244
- return Tab;
245
- }();
246
- /**
247
- * ------------------------------------------------------------------------
248
- * Data Api implementation
249
- * ------------------------------------------------------------------------
250
- */
228
+ _createClass(Tab, null, [{
229
+ key: "VERSION",
230
+ get: function get() {
231
+ return VERSION;
232
+ }
233
+ }]);
251
234
 
235
+ return Tab;
236
+ }();
237
+ /**
238
+ * ------------------------------------------------------------------------
239
+ * Data Api implementation
240
+ * ------------------------------------------------------------------------
241
+ */
252
242
 
253
- $$$1(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {
254
- event.preventDefault();
255
243
 
256
- Tab._jQueryInterface.call($$$1(this), 'show');
257
- });
258
- /**
259
- * ------------------------------------------------------------------------
260
- * jQuery
261
- * ------------------------------------------------------------------------
262
- */
244
+ $(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {
245
+ event.preventDefault();
263
246
 
264
- $$$1.fn[NAME] = Tab._jQueryInterface;
265
- $$$1.fn[NAME].Constructor = Tab;
247
+ Tab._jQueryInterface.call($(this), 'show');
248
+ });
249
+ /**
250
+ * ------------------------------------------------------------------------
251
+ * jQuery
252
+ * ------------------------------------------------------------------------
253
+ */
266
254
 
267
- $$$1.fn[NAME].noConflict = function () {
268
- $$$1.fn[NAME] = JQUERY_NO_CONFLICT;
269
- return Tab._jQueryInterface;
270
- };
255
+ $.fn[NAME] = Tab._jQueryInterface;
256
+ $.fn[NAME].Constructor = Tab;
271
257
 
272
- return Tab;
273
- }($);
258
+ $.fn[NAME].noConflict = function () {
259
+ $.fn[NAME] = JQUERY_NO_CONFLICT;
260
+ return Tab._jQueryInterface;
261
+ };
274
262
 
275
263
  return Tab;
276
264
 
@@ -0,0 +1,277 @@
1
+ /*!
2
+ * Bootstrap toast.js v4.2.1 (https://getbootstrap.com/)
3
+ * Copyright 2011-2018 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
4
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
5
+ */
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.js'], factory) :
9
+ (global.Toast = factory(global.jQuery,global.Util));
10
+ }(this, (function ($,Util) { 'use strict';
11
+
12
+ $ = $ && $.hasOwnProperty('default') ? $['default'] : $;
13
+ Util = Util && Util.hasOwnProperty('default') ? Util['default'] : Util;
14
+
15
+ function _defineProperties(target, props) {
16
+ for (var i = 0; i < props.length; i++) {
17
+ var descriptor = props[i];
18
+ descriptor.enumerable = descriptor.enumerable || false;
19
+ descriptor.configurable = true;
20
+ if ("value" in descriptor) descriptor.writable = true;
21
+ Object.defineProperty(target, descriptor.key, descriptor);
22
+ }
23
+ }
24
+
25
+ function _createClass(Constructor, protoProps, staticProps) {
26
+ if (protoProps) _defineProperties(Constructor.prototype, protoProps);
27
+ if (staticProps) _defineProperties(Constructor, staticProps);
28
+ return Constructor;
29
+ }
30
+
31
+ function _defineProperty(obj, key, value) {
32
+ if (key in obj) {
33
+ Object.defineProperty(obj, key, {
34
+ value: value,
35
+ enumerable: true,
36
+ configurable: true,
37
+ writable: true
38
+ });
39
+ } else {
40
+ obj[key] = value;
41
+ }
42
+
43
+ return obj;
44
+ }
45
+
46
+ function _objectSpread(target) {
47
+ for (var i = 1; i < arguments.length; i++) {
48
+ var source = arguments[i] != null ? arguments[i] : {};
49
+ var ownKeys = Object.keys(source);
50
+
51
+ if (typeof Object.getOwnPropertySymbols === 'function') {
52
+ ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) {
53
+ return Object.getOwnPropertyDescriptor(source, sym).enumerable;
54
+ }));
55
+ }
56
+
57
+ ownKeys.forEach(function (key) {
58
+ _defineProperty(target, key, source[key]);
59
+ });
60
+ }
61
+
62
+ return target;
63
+ }
64
+
65
+ /**
66
+ * ------------------------------------------------------------------------
67
+ * Constants
68
+ * ------------------------------------------------------------------------
69
+ */
70
+
71
+ var NAME = 'toast';
72
+ var VERSION = '4.2.1';
73
+ var DATA_KEY = 'bs.toast';
74
+ var EVENT_KEY = "." + DATA_KEY;
75
+ var JQUERY_NO_CONFLICT = $.fn[NAME];
76
+ var Event = {
77
+ CLICK_DISMISS: "click.dismiss" + EVENT_KEY,
78
+ HIDE: "hide" + EVENT_KEY,
79
+ HIDDEN: "hidden" + EVENT_KEY,
80
+ SHOW: "show" + EVENT_KEY,
81
+ SHOWN: "shown" + EVENT_KEY
82
+ };
83
+ var ClassName = {
84
+ FADE: 'fade',
85
+ HIDE: 'hide',
86
+ SHOW: 'show',
87
+ SHOWING: 'showing'
88
+ };
89
+ var DefaultType = {
90
+ animation: 'boolean',
91
+ autohide: 'boolean',
92
+ delay: 'number'
93
+ };
94
+ var Default = {
95
+ animation: true,
96
+ autohide: true,
97
+ delay: 500
98
+ };
99
+ var Selector = {
100
+ DATA_DISMISS: '[data-dismiss="toast"]'
101
+ /**
102
+ * ------------------------------------------------------------------------
103
+ * Class Definition
104
+ * ------------------------------------------------------------------------
105
+ */
106
+
107
+ };
108
+
109
+ var Toast =
110
+ /*#__PURE__*/
111
+ function () {
112
+ function Toast(element, config) {
113
+ this._element = element;
114
+ this._config = this._getConfig(config);
115
+ this._timeout = null;
116
+
117
+ this._setListeners();
118
+ } // Getters
119
+
120
+
121
+ var _proto = Toast.prototype;
122
+
123
+ // Public
124
+ _proto.show = function show() {
125
+ var _this = this;
126
+
127
+ $(this._element).trigger(Event.SHOW);
128
+
129
+ if (this._config.animation) {
130
+ this._element.classList.add(ClassName.FADE);
131
+ }
132
+
133
+ var complete = function complete() {
134
+ _this._element.classList.remove(ClassName.SHOWING);
135
+
136
+ _this._element.classList.add(ClassName.SHOW);
137
+
138
+ $(_this._element).trigger(Event.SHOWN);
139
+
140
+ if (_this._config.autohide) {
141
+ _this.hide();
142
+ }
143
+ };
144
+
145
+ this._element.classList.remove(ClassName.HIDE);
146
+
147
+ this._element.classList.add(ClassName.SHOWING);
148
+
149
+ if (this._config.animation) {
150
+ var transitionDuration = Util.getTransitionDurationFromElement(this._element);
151
+ $(this._element).one(Util.TRANSITION_END, complete).emulateTransitionEnd(transitionDuration);
152
+ } else {
153
+ complete();
154
+ }
155
+ };
156
+
157
+ _proto.hide = function hide(withoutTimeout) {
158
+ var _this2 = this;
159
+
160
+ if (!this._element.classList.contains(ClassName.SHOW)) {
161
+ return;
162
+ }
163
+
164
+ $(this._element).trigger(Event.HIDE);
165
+
166
+ if (withoutTimeout) {
167
+ this._close();
168
+ } else {
169
+ this._timeout = setTimeout(function () {
170
+ _this2._close();
171
+ }, this._config.delay);
172
+ }
173
+ };
174
+
175
+ _proto.dispose = function dispose() {
176
+ clearTimeout(this._timeout);
177
+ this._timeout = null;
178
+
179
+ if (this._element.classList.contains(ClassName.SHOW)) {
180
+ this._element.classList.remove(ClassName.SHOW);
181
+ }
182
+
183
+ $(this._element).off(Event.CLICK_DISMISS);
184
+ $.removeData(this._element, DATA_KEY);
185
+ this._element = null;
186
+ this._config = null;
187
+ }; // Private
188
+
189
+
190
+ _proto._getConfig = function _getConfig(config) {
191
+ config = _objectSpread({}, Default, $(this._element).data(), typeof config === 'object' && config ? config : {});
192
+ Util.typeCheckConfig(NAME, config, this.constructor.DefaultType);
193
+ return config;
194
+ };
195
+
196
+ _proto._setListeners = function _setListeners() {
197
+ var _this3 = this;
198
+
199
+ $(this._element).on(Event.CLICK_DISMISS, Selector.DATA_DISMISS, function () {
200
+ return _this3.hide(true);
201
+ });
202
+ };
203
+
204
+ _proto._close = function _close() {
205
+ var _this4 = this;
206
+
207
+ var complete = function complete() {
208
+ _this4._element.classList.add(ClassName.HIDE);
209
+
210
+ $(_this4._element).trigger(Event.HIDDEN);
211
+ };
212
+
213
+ this._element.classList.remove(ClassName.SHOW);
214
+
215
+ if (this._config.animation) {
216
+ var transitionDuration = Util.getTransitionDurationFromElement(this._element);
217
+ $(this._element).one(Util.TRANSITION_END, complete).emulateTransitionEnd(transitionDuration);
218
+ } else {
219
+ complete();
220
+ }
221
+ }; // Static
222
+
223
+
224
+ Toast._jQueryInterface = function _jQueryInterface(config) {
225
+ return this.each(function () {
226
+ var $element = $(this);
227
+ var data = $element.data(DATA_KEY);
228
+
229
+ var _config = typeof config === 'object' && config;
230
+
231
+ if (!data) {
232
+ data = new Toast(this, _config);
233
+ $element.data(DATA_KEY, data);
234
+ }
235
+
236
+ if (typeof config === 'string') {
237
+ if (typeof data[config] === 'undefined') {
238
+ throw new TypeError("No method named \"" + config + "\"");
239
+ }
240
+
241
+ data[config](this);
242
+ }
243
+ });
244
+ };
245
+
246
+ _createClass(Toast, null, [{
247
+ key: "VERSION",
248
+ get: function get() {
249
+ return VERSION;
250
+ }
251
+ }, {
252
+ key: "DefaultType",
253
+ get: function get() {
254
+ return DefaultType;
255
+ }
256
+ }]);
257
+
258
+ return Toast;
259
+ }();
260
+ /**
261
+ * ------------------------------------------------------------------------
262
+ * jQuery
263
+ * ------------------------------------------------------------------------
264
+ */
265
+
266
+
267
+ $.fn[NAME] = Toast._jQueryInterface;
268
+ $.fn[NAME].Constructor = Toast;
269
+
270
+ $.fn[NAME].noConflict = function () {
271
+ $.fn[NAME] = JQUERY_NO_CONFLICT;
272
+ return Toast._jQueryInterface;
273
+ };
274
+
275
+ return Toast;
276
+
277
+ })));