bootstrap 4.0.0 → 4.3.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.
Files changed (104) hide show
  1. checksums.yaml +5 -5
  2. data/.travis.yml +1 -1
  3. data/CHANGELOG.md +8 -0
  4. data/README.md +2 -2
  5. data/Rakefile +4 -2
  6. data/assets/javascripts/bootstrap/alert.js +45 -22
  7. data/assets/javascripts/bootstrap/button.js +39 -19
  8. data/assets/javascripts/bootstrap/carousel.js +213 -51
  9. data/assets/javascripts/bootstrap/collapse.js +105 -52
  10. data/assets/javascripts/bootstrap/dropdown.js +169 -45
  11. data/assets/javascripts/bootstrap/modal.js +139 -71
  12. data/assets/javascripts/bootstrap/popover.js +77 -20
  13. data/assets/javascripts/bootstrap/scrollspy.js +87 -29
  14. data/assets/javascripts/bootstrap/tab.js +50 -32
  15. data/assets/javascripts/bootstrap/toast.js +282 -0
  16. data/assets/javascripts/bootstrap/tooltip.js +295 -59
  17. data/assets/javascripts/bootstrap/util.js +78 -45
  18. data/assets/javascripts/bootstrap-sprockets.js +7 -6
  19. data/assets/javascripts/bootstrap.js +1537 -996
  20. data/assets/javascripts/bootstrap.min.js +3 -3
  21. data/assets/stylesheets/_bootstrap-grid.scss +4 -7
  22. data/assets/stylesheets/_bootstrap-reboot.scss +3 -3
  23. data/assets/stylesheets/_bootstrap.scss +5 -3
  24. data/assets/stylesheets/bootstrap/_alert.scss +1 -1
  25. data/assets/stylesheets/bootstrap/_badge.scss +8 -1
  26. data/assets/stylesheets/bootstrap/_breadcrumb.scss +9 -6
  27. data/assets/stylesheets/bootstrap/_button-group.scss +16 -19
  28. data/assets/stylesheets/bootstrap/_buttons.scss +10 -16
  29. data/assets/stylesheets/bootstrap/_card.scss +53 -34
  30. data/assets/stylesheets/bootstrap/_carousel.scss +66 -60
  31. data/assets/stylesheets/bootstrap/_close.scss +15 -8
  32. data/assets/stylesheets/bootstrap/_code.scss +5 -13
  33. data/assets/stylesheets/bootstrap/_custom-forms.scss +250 -40
  34. data/assets/stylesheets/bootstrap/_dropdown.scss +65 -5
  35. data/assets/stylesheets/bootstrap/_forms.scss +32 -35
  36. data/assets/stylesheets/bootstrap/_functions.scss +9 -9
  37. data/assets/stylesheets/bootstrap/_images.scss +2 -2
  38. data/assets/stylesheets/bootstrap/_input-group.scss +45 -11
  39. data/assets/stylesheets/bootstrap/_jumbotron.scss +1 -0
  40. data/assets/stylesheets/bootstrap/_list-group.scss +39 -5
  41. data/assets/stylesheets/bootstrap/_mixins.scss +6 -1
  42. data/assets/stylesheets/bootstrap/_modal.scss +80 -19
  43. data/assets/stylesheets/bootstrap/_nav.scss +2 -0
  44. data/assets/stylesheets/bootstrap/_navbar.scss +9 -26
  45. data/assets/stylesheets/bootstrap/_pagination.scss +2 -6
  46. data/assets/stylesheets/bootstrap/_popover.scss +47 -59
  47. data/assets/stylesheets/bootstrap/_print.scss +23 -6
  48. data/assets/stylesheets/bootstrap/_progress.scss +16 -6
  49. data/assets/stylesheets/bootstrap/_reboot.scss +51 -50
  50. data/assets/stylesheets/bootstrap/_spinners.scss +55 -0
  51. data/assets/stylesheets/bootstrap/_tables.scss +16 -11
  52. data/assets/stylesheets/bootstrap/_toasts.scss +44 -0
  53. data/assets/stylesheets/bootstrap/_tooltip.scss +1 -1
  54. data/assets/stylesheets/bootstrap/_transitions.scss +4 -20
  55. data/assets/stylesheets/bootstrap/_type.scss +16 -16
  56. data/assets/stylesheets/bootstrap/_utilities.scss +3 -0
  57. data/assets/stylesheets/bootstrap/_variables.scss +430 -201
  58. data/assets/stylesheets/bootstrap/mixins/_badge.scss +7 -2
  59. data/assets/stylesheets/bootstrap/mixins/_border-radius.scss +29 -1
  60. data/assets/stylesheets/bootstrap/mixins/_box-shadow.scss +16 -1
  61. data/assets/stylesheets/bootstrap/mixins/_breakpoints.scss +3 -3
  62. data/assets/stylesheets/bootstrap/mixins/_buttons.scss +12 -14
  63. data/assets/stylesheets/bootstrap/mixins/_caret.scss +5 -8
  64. data/assets/stylesheets/bootstrap/mixins/_deprecate.scss +10 -0
  65. data/assets/stylesheets/bootstrap/mixins/_float.scss +3 -0
  66. data/assets/stylesheets/bootstrap/mixins/_forms.scss +68 -13
  67. data/assets/stylesheets/bootstrap/mixins/_gradients.scss +7 -7
  68. data/assets/stylesheets/bootstrap/mixins/_grid-framework.scss +3 -4
  69. data/assets/stylesheets/bootstrap/mixins/_grid.scss +9 -10
  70. data/assets/stylesheets/bootstrap/mixins/_hover.scss +3 -5
  71. data/assets/stylesheets/bootstrap/mixins/_image.scss +2 -2
  72. data/assets/stylesheets/bootstrap/mixins/_list-group.scss +1 -1
  73. data/assets/stylesheets/bootstrap/mixins/_nav-divider.scss +2 -2
  74. data/assets/stylesheets/bootstrap/mixins/_pagination.scss +1 -1
  75. data/assets/stylesheets/bootstrap/mixins/_reset-text.scss +1 -1
  76. data/assets/stylesheets/bootstrap/mixins/_screen-reader.scss +1 -3
  77. data/assets/stylesheets/bootstrap/mixins/_size.scss +1 -0
  78. data/assets/stylesheets/bootstrap/mixins/_table-row.scss +10 -1
  79. data/assets/stylesheets/bootstrap/mixins/_text-emphasis.scss +5 -3
  80. data/assets/stylesheets/bootstrap/mixins/_text-hide.scss +3 -1
  81. data/assets/stylesheets/bootstrap/mixins/_transition.scss +7 -0
  82. data/assets/stylesheets/bootstrap/mixins/_visibility.scss +1 -0
  83. data/assets/stylesheets/bootstrap/utilities/_borders.scss +17 -1
  84. data/assets/stylesheets/bootstrap/utilities/_display.scss +6 -18
  85. data/assets/stylesheets/bootstrap/utilities/_embed.scss +7 -20
  86. data/assets/stylesheets/bootstrap/utilities/_flex.scss +5 -0
  87. data/assets/stylesheets/bootstrap/utilities/_float.scss +5 -3
  88. data/assets/stylesheets/bootstrap/utilities/_overflow.scss +5 -0
  89. data/assets/stylesheets/bootstrap/utilities/_position.scss +0 -4
  90. data/assets/stylesheets/bootstrap/utilities/_shadows.scss +6 -0
  91. data/assets/stylesheets/bootstrap/utilities/_sizing.scss +8 -0
  92. data/assets/stylesheets/bootstrap/utilities/_spacing.scss +23 -1
  93. data/assets/stylesheets/bootstrap/utilities/_stretched-link.scss +19 -0
  94. data/assets/stylesheets/bootstrap/utilities/_text.scss +26 -6
  95. data/assets/stylesheets/bootstrap/utilities/_visibility.scss +4 -2
  96. data/assets/stylesheets/bootstrap/vendor/_rfs.scss +204 -0
  97. data/bootstrap.gemspec +6 -3
  98. data/lib/bootstrap/engine.rb +3 -0
  99. data/lib/bootstrap/version.rb +4 -2
  100. data/lib/bootstrap.rb +10 -7
  101. data/tasks/updater/js.rb +1 -1
  102. data/test/test_helper.rb +7 -6
  103. metadata +19 -12
  104. data/assets/stylesheets/bootstrap/mixins/_navbar-align.scss +0 -10
@@ -1,83 +1,99 @@
1
1
  /*!
2
- * Bootstrap v4.0.0 (https://getbootstrap.com)
3
- * Copyright 2011-2018 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
2
+ * Bootstrap v4.3.1 (https://getbootstrap.com/)
3
+ * Copyright 2011-2019 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
4
4
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
5
5
  */
6
6
  (function (global, factory) {
7
- typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('jquery'), require('popper.js')) :
8
- typeof define === 'function' && define.amd ? define(['exports', 'jquery', 'popper.js'], factory) :
9
- (factory((global.bootstrap = {}),global.jQuery,global.Popper));
10
- }(this, (function (exports,$,Popper) { 'use strict';
11
-
12
- $ = $ && $.hasOwnProperty('default') ? $['default'] : $;
13
- Popper = Popper && Popper.hasOwnProperty('default') ? Popper['default'] : Popper;
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);
7
+ typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('jquery'), require('popper.js')) :
8
+ typeof define === 'function' && define.amd ? define(['exports', 'jquery', 'popper.js'], factory) :
9
+ (global = global || self, factory(global.bootstrap = {}, global.jQuery, global.Popper));
10
+ }(this, function (exports, $, Popper) { 'use strict';
11
+
12
+ $ = $ && $.hasOwnProperty('default') ? $['default'] : $;
13
+ Popper = Popper && Popper.hasOwnProperty('default') ? Popper['default'] : Popper;
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;
22
29
  }
23
- }
24
30
 
25
- function _createClass(Constructor, protoProps, staticProps) {
26
- if (protoProps) _defineProperties(Constructor.prototype, protoProps);
27
- if (staticProps) _defineProperties(Constructor, staticProps);
28
- return Constructor;
29
- }
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
+ }
30
45
 
31
- function _extends() {
32
- _extends = Object.assign || function (target) {
46
+ function _objectSpread(target) {
33
47
  for (var i = 1; i < arguments.length; i++) {
34
- var source = arguments[i];
48
+ var source = arguments[i] != null ? arguments[i] : {};
49
+ var ownKeys = Object.keys(source);
35
50
 
36
- for (var key in source) {
37
- if (Object.prototype.hasOwnProperty.call(source, key)) {
38
- target[key] = source[key];
39
- }
51
+ if (typeof Object.getOwnPropertySymbols === 'function') {
52
+ ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) {
53
+ return Object.getOwnPropertyDescriptor(source, sym).enumerable;
54
+ }));
40
55
  }
56
+
57
+ ownKeys.forEach(function (key) {
58
+ _defineProperty(target, key, source[key]);
59
+ });
41
60
  }
42
61
 
43
62
  return target;
44
- };
45
-
46
- return _extends.apply(this, arguments);
47
- }
48
-
49
- function _inheritsLoose(subClass, superClass) {
50
- subClass.prototype = Object.create(superClass.prototype);
51
- subClass.prototype.constructor = subClass;
52
- subClass.__proto__ = superClass;
53
- }
63
+ }
54
64
 
55
- /**
56
- * --------------------------------------------------------------------------
57
- * Bootstrap (v4.0.0): util.js
58
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
59
- * --------------------------------------------------------------------------
60
- */
65
+ function _inheritsLoose(subClass, superClass) {
66
+ subClass.prototype = Object.create(superClass.prototype);
67
+ subClass.prototype.constructor = subClass;
68
+ subClass.__proto__ = superClass;
69
+ }
61
70
 
62
- var Util = function ($$$1) {
71
+ /**
72
+ * --------------------------------------------------------------------------
73
+ * Bootstrap (v4.3.1): util.js
74
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
75
+ * --------------------------------------------------------------------------
76
+ */
63
77
  /**
64
78
  * ------------------------------------------------------------------------
65
79
  * Private TransitionEnd Helpers
66
80
  * ------------------------------------------------------------------------
67
81
  */
68
- var transition = false;
69
- var MAX_UID = 1000000; // Shoutout AngusCroll (https://goo.gl/pxwQGp)
82
+
83
+ var TRANSITION_END = 'transitionend';
84
+ var MAX_UID = 1000000;
85
+ var MILLISECONDS_MULTIPLIER = 1000; // Shoutout AngusCroll (https://goo.gl/pxwQGp)
70
86
 
71
87
  function toType(obj) {
72
- return {}.toString.call(obj).match(/\s([a-zA-Z]+)/)[1].toLowerCase();
88
+ return {}.toString.call(obj).match(/\s([a-z]+)/i)[1].toLowerCase();
73
89
  }
74
90
 
75
91
  function getSpecialTransitionEndEvent() {
76
92
  return {
77
- bindType: transition.end,
78
- delegateType: transition.end,
93
+ bindType: TRANSITION_END,
94
+ delegateType: TRANSITION_END,
79
95
  handle: function handle(event) {
80
- if ($$$1(event.target).is(this)) {
96
+ if ($(event.target).is(this)) {
81
97
  return event.handleObj.handler.apply(this, arguments); // eslint-disable-line prefer-rest-params
82
98
  }
83
99
 
@@ -86,21 +102,11 @@ var Util = function ($$$1) {
86
102
  };
87
103
  }
88
104
 
89
- function transitionEndTest() {
90
- if (typeof window !== 'undefined' && window.QUnit) {
91
- return false;
92
- }
93
-
94
- return {
95
- end: 'transitionend'
96
- };
97
- }
98
-
99
105
  function transitionEndEmulator(duration) {
100
106
  var _this = this;
101
107
 
102
108
  var called = false;
103
- $$$1(this).one(Util.TRANSITION_END, function () {
109
+ $(this).one(Util.TRANSITION_END, function () {
104
110
  called = true;
105
111
  });
106
112
  setTimeout(function () {
@@ -112,19 +118,8 @@ var Util = function ($$$1) {
112
118
  }
113
119
 
114
120
  function setTransitionEndSupport() {
115
- transition = transitionEndTest();
116
- $$$1.fn.emulateTransitionEnd = transitionEndEmulator;
117
-
118
- if (Util.supportsTransitionEnd()) {
119
- $$$1.event.special[Util.TRANSITION_END] = getSpecialTransitionEndEvent();
120
- }
121
- }
122
-
123
- function escapeId(selector) {
124
- // We escape IDs in case of special selectors (selector = '#myId:something')
125
- // $.escapeSelector does not exist in jQuery < 3
126
- selector = typeof $$$1.escapeSelector === 'function' ? $$$1.escapeSelector(selector).substr(1) : selector.replace(/(:|\.|\[|\]|,|=|@)/g, '\\$1');
127
- return selector;
121
+ $.fn.emulateTransitionEnd = transitionEndEmulator;
122
+ $.event.special[Util.TRANSITION_END] = getSpecialTransitionEndEvent();
128
123
  }
129
124
  /**
130
125
  * --------------------------------------------------------------------------
@@ -147,29 +142,45 @@ var Util = function ($$$1) {
147
142
  var selector = element.getAttribute('data-target');
148
143
 
149
144
  if (!selector || selector === '#') {
150
- selector = element.getAttribute('href') || '';
151
- } // If it's an ID
152
-
153
-
154
- if (selector.charAt(0) === '#') {
155
- selector = escapeId(selector);
145
+ var hrefAttr = element.getAttribute('href');
146
+ selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : '';
156
147
  }
157
148
 
158
149
  try {
159
- var $selector = $$$1(document).find(selector);
160
- return $selector.length > 0 ? selector : null;
150
+ return document.querySelector(selector) ? selector : null;
161
151
  } catch (err) {
162
152
  return null;
163
153
  }
164
154
  },
155
+ getTransitionDurationFromElement: function getTransitionDurationFromElement(element) {
156
+ if (!element) {
157
+ return 0;
158
+ } // Get transition-duration of the element
159
+
160
+
161
+ var transitionDuration = $(element).css('transition-duration');
162
+ var transitionDelay = $(element).css('transition-delay');
163
+ var floatTransitionDuration = parseFloat(transitionDuration);
164
+ var floatTransitionDelay = parseFloat(transitionDelay); // Return 0 if element or transition duration is not found
165
+
166
+ if (!floatTransitionDuration && !floatTransitionDelay) {
167
+ return 0;
168
+ } // If multiple durations are defined, take the first
169
+
170
+
171
+ transitionDuration = transitionDuration.split(',')[0];
172
+ transitionDelay = transitionDelay.split(',')[0];
173
+ return (parseFloat(transitionDuration) + parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER;
174
+ },
165
175
  reflow: function reflow(element) {
166
176
  return element.offsetHeight;
167
177
  },
168
178
  triggerTransitionEnd: function triggerTransitionEnd(element) {
169
- $$$1(element).trigger(transition.end);
179
+ $(element).trigger(TRANSITION_END);
170
180
  },
181
+ // TODO: Remove in v5
171
182
  supportsTransitionEnd: function supportsTransitionEnd() {
172
- return Boolean(transition);
183
+ return Boolean(TRANSITION_END);
173
184
  },
174
185
  isElement: function isElement(obj) {
175
186
  return (obj[0] || obj).nodeType;
@@ -186,32 +197,44 @@ var Util = function ($$$1) {
186
197
  }
187
198
  }
188
199
  }
200
+ },
201
+ findShadowRoot: function findShadowRoot(element) {
202
+ if (!document.documentElement.attachShadow) {
203
+ return null;
204
+ } // Can find the shadow root otherwise it'll return the document
205
+
206
+
207
+ if (typeof element.getRootNode === 'function') {
208
+ var root = element.getRootNode();
209
+ return root instanceof ShadowRoot ? root : null;
210
+ }
211
+
212
+ if (element instanceof ShadowRoot) {
213
+ return element;
214
+ } // when we don't find a shadow root
215
+
216
+
217
+ if (!element.parentNode) {
218
+ return null;
219
+ }
220
+
221
+ return Util.findShadowRoot(element.parentNode);
189
222
  }
190
223
  };
191
224
  setTransitionEndSupport();
192
- return Util;
193
- }($);
194
225
 
195
- /**
196
- * --------------------------------------------------------------------------
197
- * Bootstrap (v4.0.0): alert.js
198
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
199
- * --------------------------------------------------------------------------
200
- */
201
-
202
- var Alert = function ($$$1) {
203
226
  /**
204
227
  * ------------------------------------------------------------------------
205
228
  * Constants
206
229
  * ------------------------------------------------------------------------
207
230
  */
231
+
208
232
  var NAME = 'alert';
209
- var VERSION = '4.0.0';
233
+ var VERSION = '4.3.1';
210
234
  var DATA_KEY = 'bs.alert';
211
235
  var EVENT_KEY = "." + DATA_KEY;
212
236
  var DATA_API_KEY = '.data-api';
213
- var JQUERY_NO_CONFLICT = $$$1.fn[NAME];
214
- var TRANSITION_DURATION = 150;
237
+ var JQUERY_NO_CONFLICT = $.fn[NAME];
215
238
  var Selector = {
216
239
  DISMISS: '[data-dismiss="alert"]'
217
240
  };
@@ -244,9 +267,11 @@ var Alert = function ($$$1) {
244
267
 
245
268
  // Public
246
269
  _proto.close = function close(element) {
247
- element = element || this._element;
270
+ var rootElement = this._element;
248
271
 
249
- var rootElement = this._getRootElement(element);
272
+ if (element) {
273
+ rootElement = this._getRootElement(element);
274
+ }
250
275
 
251
276
  var customEvent = this._triggerCloseEvent(rootElement);
252
277
 
@@ -258,56 +283,57 @@ var Alert = function ($$$1) {
258
283
  };
259
284
 
260
285
  _proto.dispose = function dispose() {
261
- $$$1.removeData(this._element, DATA_KEY);
286
+ $.removeData(this._element, DATA_KEY);
262
287
  this._element = null;
263
- }; // Private
264
-
288
+ } // Private
289
+ ;
265
290
 
266
291
  _proto._getRootElement = function _getRootElement(element) {
267
292
  var selector = Util.getSelectorFromElement(element);
268
293
  var parent = false;
269
294
 
270
295
  if (selector) {
271
- parent = $$$1(selector)[0];
296
+ parent = document.querySelector(selector);
272
297
  }
273
298
 
274
299
  if (!parent) {
275
- parent = $$$1(element).closest("." + ClassName.ALERT)[0];
300
+ parent = $(element).closest("." + ClassName.ALERT)[0];
276
301
  }
277
302
 
278
303
  return parent;
279
304
  };
280
305
 
281
306
  _proto._triggerCloseEvent = function _triggerCloseEvent(element) {
282
- var closeEvent = $$$1.Event(Event.CLOSE);
283
- $$$1(element).trigger(closeEvent);
307
+ var closeEvent = $.Event(Event.CLOSE);
308
+ $(element).trigger(closeEvent);
284
309
  return closeEvent;
285
310
  };
286
311
 
287
312
  _proto._removeElement = function _removeElement(element) {
288
313
  var _this = this;
289
314
 
290
- $$$1(element).removeClass(ClassName.SHOW);
315
+ $(element).removeClass(ClassName.SHOW);
291
316
 
292
- if (!Util.supportsTransitionEnd() || !$$$1(element).hasClass(ClassName.FADE)) {
317
+ if (!$(element).hasClass(ClassName.FADE)) {
293
318
  this._destroyElement(element);
294
319
 
295
320
  return;
296
321
  }
297
322
 
298
- $$$1(element).one(Util.TRANSITION_END, function (event) {
323
+ var transitionDuration = Util.getTransitionDurationFromElement(element);
324
+ $(element).one(Util.TRANSITION_END, function (event) {
299
325
  return _this._destroyElement(element, event);
300
- }).emulateTransitionEnd(TRANSITION_DURATION);
326
+ }).emulateTransitionEnd(transitionDuration);
301
327
  };
302
328
 
303
329
  _proto._destroyElement = function _destroyElement(element) {
304
- $$$1(element).detach().trigger(Event.CLOSED).remove();
305
- }; // Static
306
-
330
+ $(element).detach().trigger(Event.CLOSED).remove();
331
+ } // Static
332
+ ;
307
333
 
308
334
  Alert._jQueryInterface = function _jQueryInterface(config) {
309
335
  return this.each(function () {
310
- var $element = $$$1(this);
336
+ var $element = $(this);
311
337
  var data = $element.data(DATA_KEY);
312
338
 
313
339
  if (!data) {
@@ -337,6 +363,7 @@ var Alert = function ($$$1) {
337
363
  return VERSION;
338
364
  }
339
365
  }]);
366
+
340
367
  return Alert;
341
368
  }();
342
369
  /**
@@ -346,58 +373,48 @@ var Alert = function ($$$1) {
346
373
  */
347
374
 
348
375
 
349
- $$$1(document).on(Event.CLICK_DATA_API, Selector.DISMISS, Alert._handleDismiss(new Alert()));
376
+ $(document).on(Event.CLICK_DATA_API, Selector.DISMISS, Alert._handleDismiss(new Alert()));
350
377
  /**
351
378
  * ------------------------------------------------------------------------
352
379
  * jQuery
353
380
  * ------------------------------------------------------------------------
354
381
  */
355
382
 
356
- $$$1.fn[NAME] = Alert._jQueryInterface;
357
- $$$1.fn[NAME].Constructor = Alert;
383
+ $.fn[NAME] = Alert._jQueryInterface;
384
+ $.fn[NAME].Constructor = Alert;
358
385
 
359
- $$$1.fn[NAME].noConflict = function () {
360
- $$$1.fn[NAME] = JQUERY_NO_CONFLICT;
386
+ $.fn[NAME].noConflict = function () {
387
+ $.fn[NAME] = JQUERY_NO_CONFLICT;
361
388
  return Alert._jQueryInterface;
362
389
  };
363
390
 
364
- return Alert;
365
- }($);
366
-
367
- /**
368
- * --------------------------------------------------------------------------
369
- * Bootstrap (v4.0.0): button.js
370
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
371
- * --------------------------------------------------------------------------
372
- */
373
-
374
- var Button = function ($$$1) {
375
391
  /**
376
392
  * ------------------------------------------------------------------------
377
393
  * Constants
378
394
  * ------------------------------------------------------------------------
379
395
  */
380
- var NAME = 'button';
381
- var VERSION = '4.0.0';
382
- var DATA_KEY = 'bs.button';
383
- var EVENT_KEY = "." + DATA_KEY;
384
- var DATA_API_KEY = '.data-api';
385
- var JQUERY_NO_CONFLICT = $$$1.fn[NAME];
386
- var ClassName = {
396
+
397
+ var NAME$1 = 'button';
398
+ var VERSION$1 = '4.3.1';
399
+ var DATA_KEY$1 = 'bs.button';
400
+ var EVENT_KEY$1 = "." + DATA_KEY$1;
401
+ var DATA_API_KEY$1 = '.data-api';
402
+ var JQUERY_NO_CONFLICT$1 = $.fn[NAME$1];
403
+ var ClassName$1 = {
387
404
  ACTIVE: 'active',
388
405
  BUTTON: 'btn',
389
406
  FOCUS: 'focus'
390
407
  };
391
- var Selector = {
408
+ var Selector$1 = {
392
409
  DATA_TOGGLE_CARROT: '[data-toggle^="button"]',
393
410
  DATA_TOGGLE: '[data-toggle="buttons"]',
394
- INPUT: 'input',
411
+ INPUT: 'input:not([type="hidden"])',
395
412
  ACTIVE: '.active',
396
413
  BUTTON: '.btn'
397
414
  };
398
- var Event = {
399
- CLICK_DATA_API: "click" + EVENT_KEY + DATA_API_KEY,
400
- FOCUS_BLUR_DATA_API: "focus" + EVENT_KEY + DATA_API_KEY + " " + ("blur" + EVENT_KEY + DATA_API_KEY)
415
+ var Event$1 = {
416
+ CLICK_DATA_API: "click" + EVENT_KEY$1 + DATA_API_KEY$1,
417
+ FOCUS_BLUR_DATA_API: "focus" + EVENT_KEY$1 + DATA_API_KEY$1 + " " + ("blur" + EVENT_KEY$1 + DATA_API_KEY$1)
401
418
  /**
402
419
  * ------------------------------------------------------------------------
403
420
  * Class Definition
@@ -420,20 +437,20 @@ var Button = function ($$$1) {
420
437
  _proto.toggle = function toggle() {
421
438
  var triggerChangeEvent = true;
422
439
  var addAriaPressed = true;
423
- var rootElement = $$$1(this._element).closest(Selector.DATA_TOGGLE)[0];
440
+ var rootElement = $(this._element).closest(Selector$1.DATA_TOGGLE)[0];
424
441
 
425
442
  if (rootElement) {
426
- var input = $$$1(this._element).find(Selector.INPUT)[0];
443
+ var input = this._element.querySelector(Selector$1.INPUT);
427
444
 
428
445
  if (input) {
429
446
  if (input.type === 'radio') {
430
- if (input.checked && $$$1(this._element).hasClass(ClassName.ACTIVE)) {
447
+ if (input.checked && this._element.classList.contains(ClassName$1.ACTIVE)) {
431
448
  triggerChangeEvent = false;
432
449
  } else {
433
- var activeElement = $$$1(rootElement).find(Selector.ACTIVE)[0];
450
+ var activeElement = rootElement.querySelector(Selector$1.ACTIVE);
434
451
 
435
452
  if (activeElement) {
436
- $$$1(activeElement).removeClass(ClassName.ACTIVE);
453
+ $(activeElement).removeClass(ClassName$1.ACTIVE);
437
454
  }
438
455
  }
439
456
  }
@@ -443,8 +460,8 @@ var Button = function ($$$1) {
443
460
  return;
444
461
  }
445
462
 
446
- input.checked = !$$$1(this._element).hasClass(ClassName.ACTIVE);
447
- $$$1(input).trigger('change');
463
+ input.checked = !this._element.classList.contains(ClassName$1.ACTIVE);
464
+ $(input).trigger('change');
448
465
  }
449
466
 
450
467
  input.focus();
@@ -453,27 +470,27 @@ var Button = function ($$$1) {
453
470
  }
454
471
 
455
472
  if (addAriaPressed) {
456
- this._element.setAttribute('aria-pressed', !$$$1(this._element).hasClass(ClassName.ACTIVE));
473
+ this._element.setAttribute('aria-pressed', !this._element.classList.contains(ClassName$1.ACTIVE));
457
474
  }
458
475
 
459
476
  if (triggerChangeEvent) {
460
- $$$1(this._element).toggleClass(ClassName.ACTIVE);
477
+ $(this._element).toggleClass(ClassName$1.ACTIVE);
461
478
  }
462
479
  };
463
480
 
464
481
  _proto.dispose = function dispose() {
465
- $$$1.removeData(this._element, DATA_KEY);
482
+ $.removeData(this._element, DATA_KEY$1);
466
483
  this._element = null;
467
- }; // Static
468
-
484
+ } // Static
485
+ ;
469
486
 
470
487
  Button._jQueryInterface = function _jQueryInterface(config) {
471
488
  return this.each(function () {
472
- var data = $$$1(this).data(DATA_KEY);
489
+ var data = $(this).data(DATA_KEY$1);
473
490
 
474
491
  if (!data) {
475
492
  data = new Button(this);
476
- $$$1(this).data(DATA_KEY, data);
493
+ $(this).data(DATA_KEY$1, data);
477
494
  }
478
495
 
479
496
  if (config === 'toggle') {
@@ -485,9 +502,10 @@ var Button = function ($$$1) {
485
502
  _createClass(Button, null, [{
486
503
  key: "VERSION",
487
504
  get: function get() {
488
- return VERSION;
505
+ return VERSION$1;
489
506
  }
490
507
  }]);
508
+
491
509
  return Button;
492
510
  }();
493
511
  /**
@@ -497,18 +515,18 @@ var Button = function ($$$1) {
497
515
  */
498
516
 
499
517
 
500
- $$$1(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE_CARROT, function (event) {
518
+ $(document).on(Event$1.CLICK_DATA_API, Selector$1.DATA_TOGGLE_CARROT, function (event) {
501
519
  event.preventDefault();
502
520
  var button = event.target;
503
521
 
504
- if (!$$$1(button).hasClass(ClassName.BUTTON)) {
505
- button = $$$1(button).closest(Selector.BUTTON);
522
+ if (!$(button).hasClass(ClassName$1.BUTTON)) {
523
+ button = $(button).closest(Selector$1.BUTTON);
506
524
  }
507
525
 
508
- Button._jQueryInterface.call($$$1(button), 'toggle');
509
- }).on(Event.FOCUS_BLUR_DATA_API, Selector.DATA_TOGGLE_CARROT, function (event) {
510
- var button = $$$1(event.target).closest(Selector.BUTTON)[0];
511
- $$$1(button).toggleClass(ClassName.FOCUS, /^focus(in)?$/.test(event.type));
526
+ Button._jQueryInterface.call($(button), 'toggle');
527
+ }).on(Event$1.FOCUS_BLUR_DATA_API, Selector$1.DATA_TOGGLE_CARROT, function (event) {
528
+ var button = $(event.target).closest(Selector$1.BUTTON)[0];
529
+ $(button).toggleClass(ClassName$1.FOCUS, /^focus(in)?$/.test(event.type));
512
530
  });
513
531
  /**
514
532
  * ------------------------------------------------------------------------
@@ -516,56 +534,48 @@ var Button = function ($$$1) {
516
534
  * ------------------------------------------------------------------------
517
535
  */
518
536
 
519
- $$$1.fn[NAME] = Button._jQueryInterface;
520
- $$$1.fn[NAME].Constructor = Button;
537
+ $.fn[NAME$1] = Button._jQueryInterface;
538
+ $.fn[NAME$1].Constructor = Button;
521
539
 
522
- $$$1.fn[NAME].noConflict = function () {
523
- $$$1.fn[NAME] = JQUERY_NO_CONFLICT;
540
+ $.fn[NAME$1].noConflict = function () {
541
+ $.fn[NAME$1] = JQUERY_NO_CONFLICT$1;
524
542
  return Button._jQueryInterface;
525
543
  };
526
544
 
527
- return Button;
528
- }($);
529
-
530
- /**
531
- * --------------------------------------------------------------------------
532
- * Bootstrap (v4.0.0): carousel.js
533
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
534
- * --------------------------------------------------------------------------
535
- */
536
-
537
- var Carousel = function ($$$1) {
538
545
  /**
539
546
  * ------------------------------------------------------------------------
540
547
  * Constants
541
548
  * ------------------------------------------------------------------------
542
549
  */
543
- var NAME = 'carousel';
544
- var VERSION = '4.0.0';
545
- var DATA_KEY = 'bs.carousel';
546
- var EVENT_KEY = "." + DATA_KEY;
547
- var DATA_API_KEY = '.data-api';
548
- var JQUERY_NO_CONFLICT = $$$1.fn[NAME];
549
- var TRANSITION_DURATION = 600;
550
+
551
+ var NAME$2 = 'carousel';
552
+ var VERSION$2 = '4.3.1';
553
+ var DATA_KEY$2 = 'bs.carousel';
554
+ var EVENT_KEY$2 = "." + DATA_KEY$2;
555
+ var DATA_API_KEY$2 = '.data-api';
556
+ var JQUERY_NO_CONFLICT$2 = $.fn[NAME$2];
550
557
  var ARROW_LEFT_KEYCODE = 37; // KeyboardEvent.which value for left arrow key
551
558
 
552
559
  var ARROW_RIGHT_KEYCODE = 39; // KeyboardEvent.which value for right arrow key
553
560
 
554
561
  var TOUCHEVENT_COMPAT_WAIT = 500; // Time for mouse compat events to fire after touch
555
562
 
563
+ var SWIPE_THRESHOLD = 40;
556
564
  var Default = {
557
565
  interval: 5000,
558
566
  keyboard: true,
559
567
  slide: false,
560
568
  pause: 'hover',
561
- wrap: true
569
+ wrap: true,
570
+ touch: true
562
571
  };
563
572
  var DefaultType = {
564
573
  interval: '(number|boolean)',
565
574
  keyboard: 'boolean',
566
575
  slide: '(boolean|string)',
567
576
  pause: '(string|boolean)',
568
- wrap: 'boolean'
577
+ wrap: 'boolean',
578
+ touch: 'boolean'
569
579
  };
570
580
  var Direction = {
571
581
  NEXT: 'next',
@@ -573,17 +583,22 @@ var Carousel = function ($$$1) {
573
583
  LEFT: 'left',
574
584
  RIGHT: 'right'
575
585
  };
576
- var Event = {
577
- SLIDE: "slide" + EVENT_KEY,
578
- SLID: "slid" + EVENT_KEY,
579
- KEYDOWN: "keydown" + EVENT_KEY,
580
- MOUSEENTER: "mouseenter" + EVENT_KEY,
581
- MOUSELEAVE: "mouseleave" + EVENT_KEY,
582
- TOUCHEND: "touchend" + EVENT_KEY,
583
- LOAD_DATA_API: "load" + EVENT_KEY + DATA_API_KEY,
584
- CLICK_DATA_API: "click" + EVENT_KEY + DATA_API_KEY
586
+ var Event$2 = {
587
+ SLIDE: "slide" + EVENT_KEY$2,
588
+ SLID: "slid" + EVENT_KEY$2,
589
+ KEYDOWN: "keydown" + EVENT_KEY$2,
590
+ MOUSEENTER: "mouseenter" + EVENT_KEY$2,
591
+ MOUSELEAVE: "mouseleave" + EVENT_KEY$2,
592
+ TOUCHSTART: "touchstart" + EVENT_KEY$2,
593
+ TOUCHMOVE: "touchmove" + EVENT_KEY$2,
594
+ TOUCHEND: "touchend" + EVENT_KEY$2,
595
+ POINTERDOWN: "pointerdown" + EVENT_KEY$2,
596
+ POINTERUP: "pointerup" + EVENT_KEY$2,
597
+ DRAG_START: "dragstart" + EVENT_KEY$2,
598
+ LOAD_DATA_API: "load" + EVENT_KEY$2 + DATA_API_KEY$2,
599
+ CLICK_DATA_API: "click" + EVENT_KEY$2 + DATA_API_KEY$2
585
600
  };
586
- var ClassName = {
601
+ var ClassName$2 = {
587
602
  CAROUSEL: 'carousel',
588
603
  ACTIVE: 'active',
589
604
  SLIDE: 'slide',
@@ -591,16 +606,22 @@ var Carousel = function ($$$1) {
591
606
  LEFT: 'carousel-item-left',
592
607
  NEXT: 'carousel-item-next',
593
608
  PREV: 'carousel-item-prev',
594
- ITEM: 'carousel-item'
609
+ ITEM: 'carousel-item',
610
+ POINTER_EVENT: 'pointer-event'
595
611
  };
596
- var Selector = {
612
+ var Selector$2 = {
597
613
  ACTIVE: '.active',
598
614
  ACTIVE_ITEM: '.active.carousel-item',
599
615
  ITEM: '.carousel-item',
616
+ ITEM_IMG: '.carousel-item img',
600
617
  NEXT_PREV: '.carousel-item-next, .carousel-item-prev',
601
618
  INDICATORS: '.carousel-indicators',
602
619
  DATA_SLIDE: '[data-slide], [data-slide-to]',
603
620
  DATA_RIDE: '[data-ride="carousel"]'
621
+ };
622
+ var PointerType = {
623
+ TOUCH: 'touch',
624
+ PEN: 'pen'
604
625
  /**
605
626
  * ------------------------------------------------------------------------
606
627
  * Class Definition
@@ -619,9 +640,13 @@ var Carousel = function ($$$1) {
619
640
  this._isPaused = false;
620
641
  this._isSliding = false;
621
642
  this.touchTimeout = null;
643
+ this.touchStartX = 0;
644
+ this.touchDeltaX = 0;
622
645
  this._config = this._getConfig(config);
623
- this._element = $$$1(element)[0];
624
- this._indicatorsElement = $$$1(this._element).find(Selector.INDICATORS)[0];
646
+ this._element = element;
647
+ this._indicatorsElement = this._element.querySelector(Selector$2.INDICATORS);
648
+ this._touchSupported = 'ontouchstart' in document.documentElement || navigator.maxTouchPoints > 0;
649
+ this._pointerEvent = Boolean(window.PointerEvent || window.MSPointerEvent);
625
650
 
626
651
  this._addEventListeners();
627
652
  } // Getters
@@ -639,7 +664,7 @@ var Carousel = function ($$$1) {
639
664
  _proto.nextWhenVisible = function nextWhenVisible() {
640
665
  // Don't call next when the page isn't visible
641
666
  // or the carousel or its parent isn't visible
642
- if (!document.hidden && $$$1(this._element).is(':visible') && $$$1(this._element).css('visibility') !== 'hidden') {
667
+ if (!document.hidden && $(this._element).is(':visible') && $(this._element).css('visibility') !== 'hidden') {
643
668
  this.next();
644
669
  }
645
670
  };
@@ -655,7 +680,7 @@ var Carousel = function ($$$1) {
655
680
  this._isPaused = true;
656
681
  }
657
682
 
658
- if ($$$1(this._element).find(Selector.NEXT_PREV)[0] && Util.supportsTransitionEnd()) {
683
+ if (this._element.querySelector(Selector$2.NEXT_PREV)) {
659
684
  Util.triggerTransitionEnd(this._element);
660
685
  this.cycle(true);
661
686
  }
@@ -682,7 +707,7 @@ var Carousel = function ($$$1) {
682
707
  _proto.to = function to(index) {
683
708
  var _this = this;
684
709
 
685
- this._activeElement = $$$1(this._element).find(Selector.ACTIVE_ITEM)[0];
710
+ this._activeElement = this._element.querySelector(Selector$2.ACTIVE_ITEM);
686
711
 
687
712
  var activeIndex = this._getItemIndex(this._activeElement);
688
713
 
@@ -691,7 +716,7 @@ var Carousel = function ($$$1) {
691
716
  }
692
717
 
693
718
  if (this._isSliding) {
694
- $$$1(this._element).one(Event.SLID, function () {
719
+ $(this._element).one(Event$2.SLID, function () {
695
720
  return _this.to(index);
696
721
  });
697
722
  return;
@@ -709,8 +734,8 @@ var Carousel = function ($$$1) {
709
734
  };
710
735
 
711
736
  _proto.dispose = function dispose() {
712
- $$$1(this._element).off(EVENT_KEY);
713
- $$$1.removeData(this._element, DATA_KEY);
737
+ $(this._element).off(EVENT_KEY$2);
738
+ $.removeData(this._element, DATA_KEY$2);
714
739
  this._items = null;
715
740
  this._config = null;
716
741
  this._element = null;
@@ -719,32 +744,88 @@ var Carousel = function ($$$1) {
719
744
  this._isSliding = null;
720
745
  this._activeElement = null;
721
746
  this._indicatorsElement = null;
722
- }; // Private
723
-
747
+ } // Private
748
+ ;
724
749
 
725
750
  _proto._getConfig = function _getConfig(config) {
726
- config = _extends({}, Default, config);
727
- Util.typeCheckConfig(NAME, config, DefaultType);
751
+ config = _objectSpread({}, Default, config);
752
+ Util.typeCheckConfig(NAME$2, config, DefaultType);
728
753
  return config;
729
754
  };
730
755
 
756
+ _proto._handleSwipe = function _handleSwipe() {
757
+ var absDeltax = Math.abs(this.touchDeltaX);
758
+
759
+ if (absDeltax <= SWIPE_THRESHOLD) {
760
+ return;
761
+ }
762
+
763
+ var direction = absDeltax / this.touchDeltaX; // swipe left
764
+
765
+ if (direction > 0) {
766
+ this.prev();
767
+ } // swipe right
768
+
769
+
770
+ if (direction < 0) {
771
+ this.next();
772
+ }
773
+ };
774
+
731
775
  _proto._addEventListeners = function _addEventListeners() {
732
776
  var _this2 = this;
733
777
 
734
778
  if (this._config.keyboard) {
735
- $$$1(this._element).on(Event.KEYDOWN, function (event) {
779
+ $(this._element).on(Event$2.KEYDOWN, function (event) {
736
780
  return _this2._keydown(event);
737
781
  });
738
782
  }
739
783
 
740
784
  if (this._config.pause === 'hover') {
741
- $$$1(this._element).on(Event.MOUSEENTER, function (event) {
785
+ $(this._element).on(Event$2.MOUSEENTER, function (event) {
742
786
  return _this2.pause(event);
743
- }).on(Event.MOUSELEAVE, function (event) {
787
+ }).on(Event$2.MOUSELEAVE, function (event) {
744
788
  return _this2.cycle(event);
745
789
  });
790
+ }
746
791
 
747
- if ('ontouchstart' in document.documentElement) {
792
+ if (this._config.touch) {
793
+ this._addTouchEventListeners();
794
+ }
795
+ };
796
+
797
+ _proto._addTouchEventListeners = function _addTouchEventListeners() {
798
+ var _this3 = this;
799
+
800
+ if (!this._touchSupported) {
801
+ return;
802
+ }
803
+
804
+ var start = function start(event) {
805
+ if (_this3._pointerEvent && PointerType[event.originalEvent.pointerType.toUpperCase()]) {
806
+ _this3.touchStartX = event.originalEvent.clientX;
807
+ } else if (!_this3._pointerEvent) {
808
+ _this3.touchStartX = event.originalEvent.touches[0].clientX;
809
+ }
810
+ };
811
+
812
+ var move = function move(event) {
813
+ // ensure swiping with one touch and not pinching
814
+ if (event.originalEvent.touches && event.originalEvent.touches.length > 1) {
815
+ _this3.touchDeltaX = 0;
816
+ } else {
817
+ _this3.touchDeltaX = event.originalEvent.touches[0].clientX - _this3.touchStartX;
818
+ }
819
+ };
820
+
821
+ var end = function end(event) {
822
+ if (_this3._pointerEvent && PointerType[event.originalEvent.pointerType.toUpperCase()]) {
823
+ _this3.touchDeltaX = event.originalEvent.clientX - _this3.touchStartX;
824
+ }
825
+
826
+ _this3._handleSwipe();
827
+
828
+ if (_this3._config.pause === 'hover') {
748
829
  // If it's a touch-enabled device, mouseenter/leave are fired as
749
830
  // part of the mouse compatibility events on first tap - the carousel
750
831
  // would stop cycling until user tapped out of it;
@@ -752,18 +833,41 @@ var Carousel = function ($$$1) {
752
833
  // (as if it's the second time we tap on it, mouseenter compat event
753
834
  // is NOT fired) and after a timeout (to allow for mouse compatibility
754
835
  // events to fire) we explicitly restart cycling
755
- $$$1(this._element).on(Event.TOUCHEND, function () {
756
- _this2.pause();
836
+ _this3.pause();
757
837
 
758
- if (_this2.touchTimeout) {
759
- clearTimeout(_this2.touchTimeout);
760
- }
838
+ if (_this3.touchTimeout) {
839
+ clearTimeout(_this3.touchTimeout);
840
+ }
761
841
 
762
- _this2.touchTimeout = setTimeout(function (event) {
763
- return _this2.cycle(event);
764
- }, TOUCHEVENT_COMPAT_WAIT + _this2._config.interval);
765
- });
842
+ _this3.touchTimeout = setTimeout(function (event) {
843
+ return _this3.cycle(event);
844
+ }, TOUCHEVENT_COMPAT_WAIT + _this3._config.interval);
766
845
  }
846
+ };
847
+
848
+ $(this._element.querySelectorAll(Selector$2.ITEM_IMG)).on(Event$2.DRAG_START, function (e) {
849
+ return e.preventDefault();
850
+ });
851
+
852
+ if (this._pointerEvent) {
853
+ $(this._element).on(Event$2.POINTERDOWN, function (event) {
854
+ return start(event);
855
+ });
856
+ $(this._element).on(Event$2.POINTERUP, function (event) {
857
+ return end(event);
858
+ });
859
+
860
+ this._element.classList.add(ClassName$2.POINTER_EVENT);
861
+ } else {
862
+ $(this._element).on(Event$2.TOUCHSTART, function (event) {
863
+ return start(event);
864
+ });
865
+ $(this._element).on(Event$2.TOUCHMOVE, function (event) {
866
+ return move(event);
867
+ });
868
+ $(this._element).on(Event$2.TOUCHEND, function (event) {
869
+ return end(event);
870
+ });
767
871
  }
768
872
  };
769
873
 
@@ -788,7 +892,7 @@ var Carousel = function ($$$1) {
788
892
  };
789
893
 
790
894
  _proto._getItemIndex = function _getItemIndex(element) {
791
- this._items = $$$1.makeArray($$$1(element).parent().find(Selector.ITEM));
895
+ this._items = element && element.parentNode ? [].slice.call(element.parentNode.querySelectorAll(Selector$2.ITEM)) : [];
792
896
  return this._items.indexOf(element);
793
897
  };
794
898
 
@@ -813,34 +917,35 @@ var Carousel = function ($$$1) {
813
917
  _proto._triggerSlideEvent = function _triggerSlideEvent(relatedTarget, eventDirectionName) {
814
918
  var targetIndex = this._getItemIndex(relatedTarget);
815
919
 
816
- var fromIndex = this._getItemIndex($$$1(this._element).find(Selector.ACTIVE_ITEM)[0]);
920
+ var fromIndex = this._getItemIndex(this._element.querySelector(Selector$2.ACTIVE_ITEM));
817
921
 
818
- var slideEvent = $$$1.Event(Event.SLIDE, {
922
+ var slideEvent = $.Event(Event$2.SLIDE, {
819
923
  relatedTarget: relatedTarget,
820
924
  direction: eventDirectionName,
821
925
  from: fromIndex,
822
926
  to: targetIndex
823
927
  });
824
- $$$1(this._element).trigger(slideEvent);
928
+ $(this._element).trigger(slideEvent);
825
929
  return slideEvent;
826
930
  };
827
931
 
828
932
  _proto._setActiveIndicatorElement = function _setActiveIndicatorElement(element) {
829
933
  if (this._indicatorsElement) {
830
- $$$1(this._indicatorsElement).find(Selector.ACTIVE).removeClass(ClassName.ACTIVE);
934
+ var indicators = [].slice.call(this._indicatorsElement.querySelectorAll(Selector$2.ACTIVE));
935
+ $(indicators).removeClass(ClassName$2.ACTIVE);
831
936
 
832
937
  var nextIndicator = this._indicatorsElement.children[this._getItemIndex(element)];
833
938
 
834
939
  if (nextIndicator) {
835
- $$$1(nextIndicator).addClass(ClassName.ACTIVE);
940
+ $(nextIndicator).addClass(ClassName$2.ACTIVE);
836
941
  }
837
942
  }
838
943
  };
839
944
 
840
945
  _proto._slide = function _slide(direction, element) {
841
- var _this3 = this;
946
+ var _this4 = this;
842
947
 
843
- var activeElement = $$$1(this._element).find(Selector.ACTIVE_ITEM)[0];
948
+ var activeElement = this._element.querySelector(Selector$2.ACTIVE_ITEM);
844
949
 
845
950
  var activeElementIndex = this._getItemIndex(activeElement);
846
951
 
@@ -854,16 +959,16 @@ var Carousel = function ($$$1) {
854
959
  var eventDirectionName;
855
960
 
856
961
  if (direction === Direction.NEXT) {
857
- directionalClassName = ClassName.LEFT;
858
- orderClassName = ClassName.NEXT;
962
+ directionalClassName = ClassName$2.LEFT;
963
+ orderClassName = ClassName$2.NEXT;
859
964
  eventDirectionName = Direction.LEFT;
860
965
  } else {
861
- directionalClassName = ClassName.RIGHT;
862
- orderClassName = ClassName.PREV;
966
+ directionalClassName = ClassName$2.RIGHT;
967
+ orderClassName = ClassName$2.PREV;
863
968
  eventDirectionName = Direction.RIGHT;
864
969
  }
865
970
 
866
- if (nextElement && $$$1(nextElement).hasClass(ClassName.ACTIVE)) {
971
+ if (nextElement && $(nextElement).hasClass(ClassName$2.ACTIVE)) {
867
972
  this._isSliding = false;
868
973
  return;
869
974
  }
@@ -887,54 +992,64 @@ var Carousel = function ($$$1) {
887
992
 
888
993
  this._setActiveIndicatorElement(nextElement);
889
994
 
890
- var slidEvent = $$$1.Event(Event.SLID, {
995
+ var slidEvent = $.Event(Event$2.SLID, {
891
996
  relatedTarget: nextElement,
892
997
  direction: eventDirectionName,
893
998
  from: activeElementIndex,
894
999
  to: nextElementIndex
895
1000
  });
896
1001
 
897
- if (Util.supportsTransitionEnd() && $$$1(this._element).hasClass(ClassName.SLIDE)) {
898
- $$$1(nextElement).addClass(orderClassName);
1002
+ if ($(this._element).hasClass(ClassName$2.SLIDE)) {
1003
+ $(nextElement).addClass(orderClassName);
899
1004
  Util.reflow(nextElement);
900
- $$$1(activeElement).addClass(directionalClassName);
901
- $$$1(nextElement).addClass(directionalClassName);
902
- $$$1(activeElement).one(Util.TRANSITION_END, function () {
903
- $$$1(nextElement).removeClass(directionalClassName + " " + orderClassName).addClass(ClassName.ACTIVE);
904
- $$$1(activeElement).removeClass(ClassName.ACTIVE + " " + orderClassName + " " + directionalClassName);
905
- _this3._isSliding = false;
1005
+ $(activeElement).addClass(directionalClassName);
1006
+ $(nextElement).addClass(directionalClassName);
1007
+ var nextElementInterval = parseInt(nextElement.getAttribute('data-interval'), 10);
1008
+
1009
+ if (nextElementInterval) {
1010
+ this._config.defaultInterval = this._config.defaultInterval || this._config.interval;
1011
+ this._config.interval = nextElementInterval;
1012
+ } else {
1013
+ this._config.interval = this._config.defaultInterval || this._config.interval;
1014
+ }
1015
+
1016
+ var transitionDuration = Util.getTransitionDurationFromElement(activeElement);
1017
+ $(activeElement).one(Util.TRANSITION_END, function () {
1018
+ $(nextElement).removeClass(directionalClassName + " " + orderClassName).addClass(ClassName$2.ACTIVE);
1019
+ $(activeElement).removeClass(ClassName$2.ACTIVE + " " + orderClassName + " " + directionalClassName);
1020
+ _this4._isSliding = false;
906
1021
  setTimeout(function () {
907
- return $$$1(_this3._element).trigger(slidEvent);
1022
+ return $(_this4._element).trigger(slidEvent);
908
1023
  }, 0);
909
- }).emulateTransitionEnd(TRANSITION_DURATION);
1024
+ }).emulateTransitionEnd(transitionDuration);
910
1025
  } else {
911
- $$$1(activeElement).removeClass(ClassName.ACTIVE);
912
- $$$1(nextElement).addClass(ClassName.ACTIVE);
1026
+ $(activeElement).removeClass(ClassName$2.ACTIVE);
1027
+ $(nextElement).addClass(ClassName$2.ACTIVE);
913
1028
  this._isSliding = false;
914
- $$$1(this._element).trigger(slidEvent);
1029
+ $(this._element).trigger(slidEvent);
915
1030
  }
916
1031
 
917
1032
  if (isCycling) {
918
1033
  this.cycle();
919
1034
  }
920
- }; // Static
921
-
1035
+ } // Static
1036
+ ;
922
1037
 
923
1038
  Carousel._jQueryInterface = function _jQueryInterface(config) {
924
1039
  return this.each(function () {
925
- var data = $$$1(this).data(DATA_KEY);
1040
+ var data = $(this).data(DATA_KEY$2);
926
1041
 
927
- var _config = _extends({}, Default, $$$1(this).data());
1042
+ var _config = _objectSpread({}, Default, $(this).data());
928
1043
 
929
1044
  if (typeof config === 'object') {
930
- _config = _extends({}, _config, config);
1045
+ _config = _objectSpread({}, _config, config);
931
1046
  }
932
1047
 
933
1048
  var action = typeof config === 'string' ? config : _config.slide;
934
1049
 
935
1050
  if (!data) {
936
1051
  data = new Carousel(this, _config);
937
- $$$1(this).data(DATA_KEY, data);
1052
+ $(this).data(DATA_KEY$2, data);
938
1053
  }
939
1054
 
940
1055
  if (typeof config === 'number') {
@@ -945,7 +1060,7 @@ var Carousel = function ($$$1) {
945
1060
  }
946
1061
 
947
1062
  data[action]();
948
- } else if (_config.interval) {
1063
+ } else if (_config.interval && _config.ride) {
949
1064
  data.pause();
950
1065
  data.cycle();
951
1066
  }
@@ -959,23 +1074,24 @@ var Carousel = function ($$$1) {
959
1074
  return;
960
1075
  }
961
1076
 
962
- var target = $$$1(selector)[0];
1077
+ var target = $(selector)[0];
963
1078
 
964
- if (!target || !$$$1(target).hasClass(ClassName.CAROUSEL)) {
1079
+ if (!target || !$(target).hasClass(ClassName$2.CAROUSEL)) {
965
1080
  return;
966
1081
  }
967
1082
 
968
- var config = _extends({}, $$$1(target).data(), $$$1(this).data());
1083
+ var config = _objectSpread({}, $(target).data(), $(this).data());
1084
+
969
1085
  var slideIndex = this.getAttribute('data-slide-to');
970
1086
 
971
1087
  if (slideIndex) {
972
1088
  config.interval = false;
973
1089
  }
974
1090
 
975
- Carousel._jQueryInterface.call($$$1(target), config);
1091
+ Carousel._jQueryInterface.call($(target), config);
976
1092
 
977
1093
  if (slideIndex) {
978
- $$$1(target).data(DATA_KEY).to(slideIndex);
1094
+ $(target).data(DATA_KEY$2).to(slideIndex);
979
1095
  }
980
1096
 
981
1097
  event.preventDefault();
@@ -984,7 +1100,7 @@ var Carousel = function ($$$1) {
984
1100
  _createClass(Carousel, null, [{
985
1101
  key: "VERSION",
986
1102
  get: function get() {
987
- return VERSION;
1103
+ return VERSION$2;
988
1104
  }
989
1105
  }, {
990
1106
  key: "Default",
@@ -992,6 +1108,7 @@ var Carousel = function ($$$1) {
992
1108
  return Default;
993
1109
  }
994
1110
  }]);
1111
+
995
1112
  return Carousel;
996
1113
  }();
997
1114
  /**
@@ -1001,13 +1118,15 @@ var Carousel = function ($$$1) {
1001
1118
  */
1002
1119
 
1003
1120
 
1004
- $$$1(document).on(Event.CLICK_DATA_API, Selector.DATA_SLIDE, Carousel._dataApiClickHandler);
1005
- $$$1(window).on(Event.LOAD_DATA_API, function () {
1006
- $$$1(Selector.DATA_RIDE).each(function () {
1007
- var $carousel = $$$1(this);
1121
+ $(document).on(Event$2.CLICK_DATA_API, Selector$2.DATA_SLIDE, Carousel._dataApiClickHandler);
1122
+ $(window).on(Event$2.LOAD_DATA_API, function () {
1123
+ var carousels = [].slice.call(document.querySelectorAll(Selector$2.DATA_RIDE));
1124
+
1125
+ for (var i = 0, len = carousels.length; i < len; i++) {
1126
+ var $carousel = $(carousels[i]);
1008
1127
 
1009
1128
  Carousel._jQueryInterface.call($carousel, $carousel.data());
1010
- });
1129
+ }
1011
1130
  });
1012
1131
  /**
1013
1132
  * ------------------------------------------------------------------------
@@ -1015,53 +1134,42 @@ var Carousel = function ($$$1) {
1015
1134
  * ------------------------------------------------------------------------
1016
1135
  */
1017
1136
 
1018
- $$$1.fn[NAME] = Carousel._jQueryInterface;
1019
- $$$1.fn[NAME].Constructor = Carousel;
1137
+ $.fn[NAME$2] = Carousel._jQueryInterface;
1138
+ $.fn[NAME$2].Constructor = Carousel;
1020
1139
 
1021
- $$$1.fn[NAME].noConflict = function () {
1022
- $$$1.fn[NAME] = JQUERY_NO_CONFLICT;
1140
+ $.fn[NAME$2].noConflict = function () {
1141
+ $.fn[NAME$2] = JQUERY_NO_CONFLICT$2;
1023
1142
  return Carousel._jQueryInterface;
1024
1143
  };
1025
1144
 
1026
- return Carousel;
1027
- }($);
1028
-
1029
- /**
1030
- * --------------------------------------------------------------------------
1031
- * Bootstrap (v4.0.0): collapse.js
1032
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
1033
- * --------------------------------------------------------------------------
1034
- */
1035
-
1036
- var Collapse = function ($$$1) {
1037
1145
  /**
1038
1146
  * ------------------------------------------------------------------------
1039
1147
  * Constants
1040
1148
  * ------------------------------------------------------------------------
1041
1149
  */
1042
- var NAME = 'collapse';
1043
- var VERSION = '4.0.0';
1044
- var DATA_KEY = 'bs.collapse';
1045
- var EVENT_KEY = "." + DATA_KEY;
1046
- var DATA_API_KEY = '.data-api';
1047
- var JQUERY_NO_CONFLICT = $$$1.fn[NAME];
1048
- var TRANSITION_DURATION = 600;
1049
- var Default = {
1150
+
1151
+ var NAME$3 = 'collapse';
1152
+ var VERSION$3 = '4.3.1';
1153
+ var DATA_KEY$3 = 'bs.collapse';
1154
+ var EVENT_KEY$3 = "." + DATA_KEY$3;
1155
+ var DATA_API_KEY$3 = '.data-api';
1156
+ var JQUERY_NO_CONFLICT$3 = $.fn[NAME$3];
1157
+ var Default$1 = {
1050
1158
  toggle: true,
1051
1159
  parent: ''
1052
1160
  };
1053
- var DefaultType = {
1161
+ var DefaultType$1 = {
1054
1162
  toggle: 'boolean',
1055
1163
  parent: '(string|element)'
1056
1164
  };
1057
- var Event = {
1058
- SHOW: "show" + EVENT_KEY,
1059
- SHOWN: "shown" + EVENT_KEY,
1060
- HIDE: "hide" + EVENT_KEY,
1061
- HIDDEN: "hidden" + EVENT_KEY,
1062
- CLICK_DATA_API: "click" + EVENT_KEY + DATA_API_KEY
1165
+ var Event$3 = {
1166
+ SHOW: "show" + EVENT_KEY$3,
1167
+ SHOWN: "shown" + EVENT_KEY$3,
1168
+ HIDE: "hide" + EVENT_KEY$3,
1169
+ HIDDEN: "hidden" + EVENT_KEY$3,
1170
+ CLICK_DATA_API: "click" + EVENT_KEY$3 + DATA_API_KEY$3
1063
1171
  };
1064
- var ClassName = {
1172
+ var ClassName$3 = {
1065
1173
  SHOW: 'show',
1066
1174
  COLLAPSE: 'collapse',
1067
1175
  COLLAPSING: 'collapsing',
@@ -1071,7 +1179,7 @@ var Collapse = function ($$$1) {
1071
1179
  WIDTH: 'width',
1072
1180
  HEIGHT: 'height'
1073
1181
  };
1074
- var Selector = {
1182
+ var Selector$3 = {
1075
1183
  ACTIVES: '.show, .collapsing',
1076
1184
  DATA_TOGGLE: '[data-toggle="collapse"]'
1077
1185
  /**
@@ -1089,14 +1197,17 @@ var Collapse = function ($$$1) {
1089
1197
  this._isTransitioning = false;
1090
1198
  this._element = element;
1091
1199
  this._config = this._getConfig(config);
1092
- this._triggerArray = $$$1.makeArray($$$1("[data-toggle=\"collapse\"][href=\"#" + element.id + "\"]," + ("[data-toggle=\"collapse\"][data-target=\"#" + element.id + "\"]")));
1093
- var tabToggles = $$$1(Selector.DATA_TOGGLE);
1200
+ this._triggerArray = [].slice.call(document.querySelectorAll("[data-toggle=\"collapse\"][href=\"#" + element.id + "\"]," + ("[data-toggle=\"collapse\"][data-target=\"#" + element.id + "\"]")));
1201
+ var toggleList = [].slice.call(document.querySelectorAll(Selector$3.DATA_TOGGLE));
1094
1202
 
1095
- for (var i = 0; i < tabToggles.length; i++) {
1096
- var elem = tabToggles[i];
1203
+ for (var i = 0, len = toggleList.length; i < len; i++) {
1204
+ var elem = toggleList[i];
1097
1205
  var selector = Util.getSelectorFromElement(elem);
1206
+ var filterElement = [].slice.call(document.querySelectorAll(selector)).filter(function (foundElem) {
1207
+ return foundElem === element;
1208
+ });
1098
1209
 
1099
- if (selector !== null && $$$1(selector).filter(element).length > 0) {
1210
+ if (selector !== null && filterElement.length > 0) {
1100
1211
  this._selector = selector;
1101
1212
 
1102
1213
  this._triggerArray.push(elem);
@@ -1119,7 +1230,7 @@ var Collapse = function ($$$1) {
1119
1230
 
1120
1231
  // Public
1121
1232
  _proto.toggle = function toggle() {
1122
- if ($$$1(this._element).hasClass(ClassName.SHOW)) {
1233
+ if ($(this._element).hasClass(ClassName$3.SHOW)) {
1123
1234
  this.hide();
1124
1235
  } else {
1125
1236
  this.show();
@@ -1129,7 +1240,7 @@ var Collapse = function ($$$1) {
1129
1240
  _proto.show = function show() {
1130
1241
  var _this = this;
1131
1242
 
1132
- if (this._isTransitioning || $$$1(this._element).hasClass(ClassName.SHOW)) {
1243
+ if (this._isTransitioning || $(this._element).hasClass(ClassName$3.SHOW)) {
1133
1244
  return;
1134
1245
  }
1135
1246
 
@@ -1137,7 +1248,13 @@ var Collapse = function ($$$1) {
1137
1248
  var activesData;
1138
1249
 
1139
1250
  if (this._parent) {
1140
- actives = $$$1.makeArray($$$1(this._parent).find(Selector.ACTIVES).filter("[data-parent=\"" + this._config.parent + "\"]"));
1251
+ actives = [].slice.call(this._parent.querySelectorAll(Selector$3.ACTIVES)).filter(function (elem) {
1252
+ if (typeof _this._config.parent === 'string') {
1253
+ return elem.getAttribute('data-parent') === _this._config.parent;
1254
+ }
1255
+
1256
+ return elem.classList.contains(ClassName$3.COLLAPSE);
1257
+ });
1141
1258
 
1142
1259
  if (actives.length === 0) {
1143
1260
  actives = null;
@@ -1145,68 +1262,64 @@ var Collapse = function ($$$1) {
1145
1262
  }
1146
1263
 
1147
1264
  if (actives) {
1148
- activesData = $$$1(actives).not(this._selector).data(DATA_KEY);
1265
+ activesData = $(actives).not(this._selector).data(DATA_KEY$3);
1149
1266
 
1150
1267
  if (activesData && activesData._isTransitioning) {
1151
1268
  return;
1152
1269
  }
1153
1270
  }
1154
1271
 
1155
- var startEvent = $$$1.Event(Event.SHOW);
1156
- $$$1(this._element).trigger(startEvent);
1272
+ var startEvent = $.Event(Event$3.SHOW);
1273
+ $(this._element).trigger(startEvent);
1157
1274
 
1158
1275
  if (startEvent.isDefaultPrevented()) {
1159
1276
  return;
1160
1277
  }
1161
1278
 
1162
1279
  if (actives) {
1163
- Collapse._jQueryInterface.call($$$1(actives).not(this._selector), 'hide');
1280
+ Collapse._jQueryInterface.call($(actives).not(this._selector), 'hide');
1164
1281
 
1165
1282
  if (!activesData) {
1166
- $$$1(actives).data(DATA_KEY, null);
1283
+ $(actives).data(DATA_KEY$3, null);
1167
1284
  }
1168
1285
  }
1169
1286
 
1170
1287
  var dimension = this._getDimension();
1171
1288
 
1172
- $$$1(this._element).removeClass(ClassName.COLLAPSE).addClass(ClassName.COLLAPSING);
1289
+ $(this._element).removeClass(ClassName$3.COLLAPSE).addClass(ClassName$3.COLLAPSING);
1173
1290
  this._element.style[dimension] = 0;
1174
1291
 
1175
- if (this._triggerArray.length > 0) {
1176
- $$$1(this._triggerArray).removeClass(ClassName.COLLAPSED).attr('aria-expanded', true);
1292
+ if (this._triggerArray.length) {
1293
+ $(this._triggerArray).removeClass(ClassName$3.COLLAPSED).attr('aria-expanded', true);
1177
1294
  }
1178
1295
 
1179
1296
  this.setTransitioning(true);
1180
1297
 
1181
1298
  var complete = function complete() {
1182
- $$$1(_this._element).removeClass(ClassName.COLLAPSING).addClass(ClassName.COLLAPSE).addClass(ClassName.SHOW);
1299
+ $(_this._element).removeClass(ClassName$3.COLLAPSING).addClass(ClassName$3.COLLAPSE).addClass(ClassName$3.SHOW);
1183
1300
  _this._element.style[dimension] = '';
1184
1301
 
1185
1302
  _this.setTransitioning(false);
1186
1303
 
1187
- $$$1(_this._element).trigger(Event.SHOWN);
1304
+ $(_this._element).trigger(Event$3.SHOWN);
1188
1305
  };
1189
1306
 
1190
- if (!Util.supportsTransitionEnd()) {
1191
- complete();
1192
- return;
1193
- }
1194
-
1195
1307
  var capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1);
1196
1308
  var scrollSize = "scroll" + capitalizedDimension;
1197
- $$$1(this._element).one(Util.TRANSITION_END, complete).emulateTransitionEnd(TRANSITION_DURATION);
1309
+ var transitionDuration = Util.getTransitionDurationFromElement(this._element);
1310
+ $(this._element).one(Util.TRANSITION_END, complete).emulateTransitionEnd(transitionDuration);
1198
1311
  this._element.style[dimension] = this._element[scrollSize] + "px";
1199
1312
  };
1200
1313
 
1201
1314
  _proto.hide = function hide() {
1202
1315
  var _this2 = this;
1203
1316
 
1204
- if (this._isTransitioning || !$$$1(this._element).hasClass(ClassName.SHOW)) {
1317
+ if (this._isTransitioning || !$(this._element).hasClass(ClassName$3.SHOW)) {
1205
1318
  return;
1206
1319
  }
1207
1320
 
1208
- var startEvent = $$$1.Event(Event.HIDE);
1209
- $$$1(this._element).trigger(startEvent);
1321
+ var startEvent = $.Event(Event$3.HIDE);
1322
+ $(this._element).trigger(startEvent);
1210
1323
 
1211
1324
  if (startEvent.isDefaultPrevented()) {
1212
1325
  return;
@@ -1216,18 +1329,19 @@ var Collapse = function ($$$1) {
1216
1329
 
1217
1330
  this._element.style[dimension] = this._element.getBoundingClientRect()[dimension] + "px";
1218
1331
  Util.reflow(this._element);
1219
- $$$1(this._element).addClass(ClassName.COLLAPSING).removeClass(ClassName.COLLAPSE).removeClass(ClassName.SHOW);
1332
+ $(this._element).addClass(ClassName$3.COLLAPSING).removeClass(ClassName$3.COLLAPSE).removeClass(ClassName$3.SHOW);
1333
+ var triggerArrayLength = this._triggerArray.length;
1220
1334
 
1221
- if (this._triggerArray.length > 0) {
1222
- for (var i = 0; i < this._triggerArray.length; i++) {
1335
+ if (triggerArrayLength > 0) {
1336
+ for (var i = 0; i < triggerArrayLength; i++) {
1223
1337
  var trigger = this._triggerArray[i];
1224
1338
  var selector = Util.getSelectorFromElement(trigger);
1225
1339
 
1226
1340
  if (selector !== null) {
1227
- var $elem = $$$1(selector);
1341
+ var $elem = $([].slice.call(document.querySelectorAll(selector)));
1228
1342
 
1229
- if (!$elem.hasClass(ClassName.SHOW)) {
1230
- $$$1(trigger).addClass(ClassName.COLLAPSED).attr('aria-expanded', false);
1343
+ if (!$elem.hasClass(ClassName$3.SHOW)) {
1344
+ $(trigger).addClass(ClassName$3.COLLAPSED).attr('aria-expanded', false);
1231
1345
  }
1232
1346
  }
1233
1347
  }
@@ -1238,17 +1352,12 @@ var Collapse = function ($$$1) {
1238
1352
  var complete = function complete() {
1239
1353
  _this2.setTransitioning(false);
1240
1354
 
1241
- $$$1(_this2._element).removeClass(ClassName.COLLAPSING).addClass(ClassName.COLLAPSE).trigger(Event.HIDDEN);
1355
+ $(_this2._element).removeClass(ClassName$3.COLLAPSING).addClass(ClassName$3.COLLAPSE).trigger(Event$3.HIDDEN);
1242
1356
  };
1243
1357
 
1244
1358
  this._element.style[dimension] = '';
1245
-
1246
- if (!Util.supportsTransitionEnd()) {
1247
- complete();
1248
- return;
1249
- }
1250
-
1251
- $$$1(this._element).one(Util.TRANSITION_END, complete).emulateTransitionEnd(TRANSITION_DURATION);
1359
+ var transitionDuration = Util.getTransitionDurationFromElement(this._element);
1360
+ $(this._element).one(Util.TRANSITION_END, complete).emulateTransitionEnd(transitionDuration);
1252
1361
  };
1253
1362
 
1254
1363
  _proto.setTransitioning = function setTransitioning(isTransitioning) {
@@ -1256,32 +1365,32 @@ var Collapse = function ($$$1) {
1256
1365
  };
1257
1366
 
1258
1367
  _proto.dispose = function dispose() {
1259
- $$$1.removeData(this._element, DATA_KEY);
1368
+ $.removeData(this._element, DATA_KEY$3);
1260
1369
  this._config = null;
1261
1370
  this._parent = null;
1262
1371
  this._element = null;
1263
1372
  this._triggerArray = null;
1264
1373
  this._isTransitioning = null;
1265
- }; // Private
1266
-
1374
+ } // Private
1375
+ ;
1267
1376
 
1268
1377
  _proto._getConfig = function _getConfig(config) {
1269
- config = _extends({}, Default, config);
1378
+ config = _objectSpread({}, Default$1, config);
1270
1379
  config.toggle = Boolean(config.toggle); // Coerce string values
1271
1380
 
1272
- Util.typeCheckConfig(NAME, config, DefaultType);
1381
+ Util.typeCheckConfig(NAME$3, config, DefaultType$1);
1273
1382
  return config;
1274
1383
  };
1275
1384
 
1276
1385
  _proto._getDimension = function _getDimension() {
1277
- var hasWidth = $$$1(this._element).hasClass(Dimension.WIDTH);
1386
+ var hasWidth = $(this._element).hasClass(Dimension.WIDTH);
1278
1387
  return hasWidth ? Dimension.WIDTH : Dimension.HEIGHT;
1279
1388
  };
1280
1389
 
1281
1390
  _proto._getParent = function _getParent() {
1282
1391
  var _this3 = this;
1283
1392
 
1284
- var parent = null;
1393
+ var parent;
1285
1394
 
1286
1395
  if (Util.isElement(this._config.parent)) {
1287
1396
  parent = this._config.parent; // It's a jQuery object
@@ -1290,38 +1399,37 @@ var Collapse = function ($$$1) {
1290
1399
  parent = this._config.parent[0];
1291
1400
  }
1292
1401
  } else {
1293
- parent = $$$1(this._config.parent)[0];
1402
+ parent = document.querySelector(this._config.parent);
1294
1403
  }
1295
1404
 
1296
1405
  var selector = "[data-toggle=\"collapse\"][data-parent=\"" + this._config.parent + "\"]";
1297
- $$$1(parent).find(selector).each(function (i, element) {
1406
+ var children = [].slice.call(parent.querySelectorAll(selector));
1407
+ $(children).each(function (i, element) {
1298
1408
  _this3._addAriaAndCollapsedClass(Collapse._getTargetFromElement(element), [element]);
1299
1409
  });
1300
1410
  return parent;
1301
1411
  };
1302
1412
 
1303
1413
  _proto._addAriaAndCollapsedClass = function _addAriaAndCollapsedClass(element, triggerArray) {
1304
- if (element) {
1305
- var isOpen = $$$1(element).hasClass(ClassName.SHOW);
1414
+ var isOpen = $(element).hasClass(ClassName$3.SHOW);
1306
1415
 
1307
- if (triggerArray.length > 0) {
1308
- $$$1(triggerArray).toggleClass(ClassName.COLLAPSED, !isOpen).attr('aria-expanded', isOpen);
1309
- }
1416
+ if (triggerArray.length) {
1417
+ $(triggerArray).toggleClass(ClassName$3.COLLAPSED, !isOpen).attr('aria-expanded', isOpen);
1310
1418
  }
1311
- }; // Static
1312
-
1419
+ } // Static
1420
+ ;
1313
1421
 
1314
1422
  Collapse._getTargetFromElement = function _getTargetFromElement(element) {
1315
1423
  var selector = Util.getSelectorFromElement(element);
1316
- return selector ? $$$1(selector)[0] : null;
1424
+ return selector ? document.querySelector(selector) : null;
1317
1425
  };
1318
1426
 
1319
1427
  Collapse._jQueryInterface = function _jQueryInterface(config) {
1320
1428
  return this.each(function () {
1321
- var $this = $$$1(this);
1322
- var data = $this.data(DATA_KEY);
1429
+ var $this = $(this);
1430
+ var data = $this.data(DATA_KEY$3);
1323
1431
 
1324
- var _config = _extends({}, Default, $this.data(), typeof config === 'object' && config);
1432
+ var _config = _objectSpread({}, Default$1, $this.data(), typeof config === 'object' && config ? config : {});
1325
1433
 
1326
1434
  if (!data && _config.toggle && /show|hide/.test(config)) {
1327
1435
  _config.toggle = false;
@@ -1329,7 +1437,7 @@ var Collapse = function ($$$1) {
1329
1437
 
1330
1438
  if (!data) {
1331
1439
  data = new Collapse(this, _config);
1332
- $this.data(DATA_KEY, data);
1440
+ $this.data(DATA_KEY$3, data);
1333
1441
  }
1334
1442
 
1335
1443
  if (typeof config === 'string') {
@@ -1345,14 +1453,15 @@ var Collapse = function ($$$1) {
1345
1453
  _createClass(Collapse, null, [{
1346
1454
  key: "VERSION",
1347
1455
  get: function get() {
1348
- return VERSION;
1456
+ return VERSION$3;
1349
1457
  }
1350
1458
  }, {
1351
1459
  key: "Default",
1352
1460
  get: function get() {
1353
- return Default;
1461
+ return Default$1;
1354
1462
  }
1355
1463
  }]);
1464
+
1356
1465
  return Collapse;
1357
1466
  }();
1358
1467
  /**
@@ -1362,17 +1471,18 @@ var Collapse = function ($$$1) {
1362
1471
  */
1363
1472
 
1364
1473
 
1365
- $$$1(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {
1474
+ $(document).on(Event$3.CLICK_DATA_API, Selector$3.DATA_TOGGLE, function (event) {
1366
1475
  // preventDefault only for <a> elements (which change the URL) not inside the collapsible element
1367
1476
  if (event.currentTarget.tagName === 'A') {
1368
1477
  event.preventDefault();
1369
1478
  }
1370
1479
 
1371
- var $trigger = $$$1(this);
1480
+ var $trigger = $(this);
1372
1481
  var selector = Util.getSelectorFromElement(this);
1373
- $$$1(selector).each(function () {
1374
- var $target = $$$1(this);
1375
- var data = $target.data(DATA_KEY);
1482
+ var selectors = [].slice.call(document.querySelectorAll(selector));
1483
+ $(selectors).each(function () {
1484
+ var $target = $(this);
1485
+ var data = $target.data(DATA_KEY$3);
1376
1486
  var config = data ? 'toggle' : $trigger.data();
1377
1487
 
1378
1488
  Collapse._jQueryInterface.call($target, config);
@@ -1384,36 +1494,26 @@ var Collapse = function ($$$1) {
1384
1494
  * ------------------------------------------------------------------------
1385
1495
  */
1386
1496
 
1387
- $$$1.fn[NAME] = Collapse._jQueryInterface;
1388
- $$$1.fn[NAME].Constructor = Collapse;
1497
+ $.fn[NAME$3] = Collapse._jQueryInterface;
1498
+ $.fn[NAME$3].Constructor = Collapse;
1389
1499
 
1390
- $$$1.fn[NAME].noConflict = function () {
1391
- $$$1.fn[NAME] = JQUERY_NO_CONFLICT;
1500
+ $.fn[NAME$3].noConflict = function () {
1501
+ $.fn[NAME$3] = JQUERY_NO_CONFLICT$3;
1392
1502
  return Collapse._jQueryInterface;
1393
1503
  };
1394
1504
 
1395
- return Collapse;
1396
- }($);
1397
-
1398
- /**
1399
- * --------------------------------------------------------------------------
1400
- * Bootstrap (v4.0.0): dropdown.js
1401
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
1402
- * --------------------------------------------------------------------------
1403
- */
1404
-
1405
- var Dropdown = function ($$$1) {
1406
1505
  /**
1407
1506
  * ------------------------------------------------------------------------
1408
1507
  * Constants
1409
1508
  * ------------------------------------------------------------------------
1410
1509
  */
1411
- var NAME = 'dropdown';
1412
- var VERSION = '4.0.0';
1413
- var DATA_KEY = 'bs.dropdown';
1414
- var EVENT_KEY = "." + DATA_KEY;
1415
- var DATA_API_KEY = '.data-api';
1416
- var JQUERY_NO_CONFLICT = $$$1.fn[NAME];
1510
+
1511
+ var NAME$4 = 'dropdown';
1512
+ var VERSION$4 = '4.3.1';
1513
+ var DATA_KEY$4 = 'bs.dropdown';
1514
+ var EVENT_KEY$4 = "." + DATA_KEY$4;
1515
+ var DATA_API_KEY$4 = '.data-api';
1516
+ var JQUERY_NO_CONFLICT$4 = $.fn[NAME$4];
1417
1517
  var ESCAPE_KEYCODE = 27; // KeyboardEvent.which value for Escape (Esc) key
1418
1518
 
1419
1519
  var SPACE_KEYCODE = 32; // KeyboardEvent.which value for space key
@@ -1427,17 +1527,17 @@ var Dropdown = function ($$$1) {
1427
1527
  var RIGHT_MOUSE_BUTTON_WHICH = 3; // MouseEvent.which value for the right button (assuming a right-handed mouse)
1428
1528
 
1429
1529
  var REGEXP_KEYDOWN = new RegExp(ARROW_UP_KEYCODE + "|" + ARROW_DOWN_KEYCODE + "|" + ESCAPE_KEYCODE);
1430
- var Event = {
1431
- HIDE: "hide" + EVENT_KEY,
1432
- HIDDEN: "hidden" + EVENT_KEY,
1433
- SHOW: "show" + EVENT_KEY,
1434
- SHOWN: "shown" + EVENT_KEY,
1435
- CLICK: "click" + EVENT_KEY,
1436
- CLICK_DATA_API: "click" + EVENT_KEY + DATA_API_KEY,
1437
- KEYDOWN_DATA_API: "keydown" + EVENT_KEY + DATA_API_KEY,
1438
- KEYUP_DATA_API: "keyup" + EVENT_KEY + DATA_API_KEY
1530
+ var Event$4 = {
1531
+ HIDE: "hide" + EVENT_KEY$4,
1532
+ HIDDEN: "hidden" + EVENT_KEY$4,
1533
+ SHOW: "show" + EVENT_KEY$4,
1534
+ SHOWN: "shown" + EVENT_KEY$4,
1535
+ CLICK: "click" + EVENT_KEY$4,
1536
+ CLICK_DATA_API: "click" + EVENT_KEY$4 + DATA_API_KEY$4,
1537
+ KEYDOWN_DATA_API: "keydown" + EVENT_KEY$4 + DATA_API_KEY$4,
1538
+ KEYUP_DATA_API: "keyup" + EVENT_KEY$4 + DATA_API_KEY$4
1439
1539
  };
1440
- var ClassName = {
1540
+ var ClassName$4 = {
1441
1541
  DISABLED: 'disabled',
1442
1542
  SHOW: 'show',
1443
1543
  DROPUP: 'dropup',
@@ -1447,12 +1547,12 @@ var Dropdown = function ($$$1) {
1447
1547
  MENULEFT: 'dropdown-menu-left',
1448
1548
  POSITION_STATIC: 'position-static'
1449
1549
  };
1450
- var Selector = {
1550
+ var Selector$4 = {
1451
1551
  DATA_TOGGLE: '[data-toggle="dropdown"]',
1452
1552
  FORM_CHILD: '.dropdown form',
1453
1553
  MENU: '.dropdown-menu',
1454
1554
  NAVBAR_NAV: '.navbar-nav',
1455
- VISIBLE_ITEMS: '.dropdown-menu .dropdown-item:not(.disabled)'
1555
+ VISIBLE_ITEMS: '.dropdown-menu .dropdown-item:not(.disabled):not(:disabled)'
1456
1556
  };
1457
1557
  var AttachmentMap = {
1458
1558
  TOP: 'top-start',
@@ -1464,15 +1564,19 @@ var Dropdown = function ($$$1) {
1464
1564
  LEFT: 'left-start',
1465
1565
  LEFTEND: 'left-end'
1466
1566
  };
1467
- var Default = {
1567
+ var Default$2 = {
1468
1568
  offset: 0,
1469
1569
  flip: true,
1470
- boundary: 'scrollParent'
1570
+ boundary: 'scrollParent',
1571
+ reference: 'toggle',
1572
+ display: 'dynamic'
1471
1573
  };
1472
- var DefaultType = {
1574
+ var DefaultType$2 = {
1473
1575
  offset: '(number|string|function)',
1474
1576
  flip: 'boolean',
1475
- boundary: '(string|element)'
1577
+ boundary: '(string|element)',
1578
+ reference: '(string|element)',
1579
+ display: 'string'
1476
1580
  /**
1477
1581
  * ------------------------------------------------------------------------
1478
1582
  * Class Definition
@@ -1499,13 +1603,13 @@ var Dropdown = function ($$$1) {
1499
1603
 
1500
1604
  // Public
1501
1605
  _proto.toggle = function toggle() {
1502
- if (this._element.disabled || $$$1(this._element).hasClass(ClassName.DISABLED)) {
1606
+ if (this._element.disabled || $(this._element).hasClass(ClassName$4.DISABLED)) {
1503
1607
  return;
1504
1608
  }
1505
1609
 
1506
1610
  var parent = Dropdown._getParentFromElement(this._element);
1507
1611
 
1508
- var isActive = $$$1(this._menu).hasClass(ClassName.SHOW);
1612
+ var isActive = $(this._menu).hasClass(ClassName$4.SHOW);
1509
1613
 
1510
1614
  Dropdown._clearMenus();
1511
1615
 
@@ -1516,8 +1620,8 @@ var Dropdown = function ($$$1) {
1516
1620
  var relatedTarget = {
1517
1621
  relatedTarget: this._element
1518
1622
  };
1519
- var showEvent = $$$1.Event(Event.SHOW, relatedTarget);
1520
- $$$1(parent).trigger(showEvent);
1623
+ var showEvent = $.Event(Event$4.SHOW, relatedTarget);
1624
+ $(parent).trigger(showEvent);
1521
1625
 
1522
1626
  if (showEvent.isDefaultPrevented()) {
1523
1627
  return;
@@ -1530,14 +1634,18 @@ var Dropdown = function ($$$1) {
1530
1634
  * Popper - https://popper.js.org
1531
1635
  */
1532
1636
  if (typeof Popper === 'undefined') {
1533
- throw new TypeError('Bootstrap dropdown require Popper.js (https://popper.js.org)');
1637
+ throw new TypeError('Bootstrap\'s dropdowns require Popper.js (https://popper.js.org/)');
1534
1638
  }
1535
1639
 
1536
- var element = this._element; // For dropup with alignment we use the parent as popper container
1640
+ var referenceElement = this._element;
1537
1641
 
1538
- if ($$$1(parent).hasClass(ClassName.DROPUP)) {
1539
- if ($$$1(this._menu).hasClass(ClassName.MENULEFT) || $$$1(this._menu).hasClass(ClassName.MENURIGHT)) {
1540
- element = parent;
1642
+ if (this._config.reference === 'parent') {
1643
+ referenceElement = parent;
1644
+ } else if (Util.isElement(this._config.reference)) {
1645
+ referenceElement = this._config.reference; // Check if it's jQuery element
1646
+
1647
+ if (typeof this._config.reference.jquery !== 'undefined') {
1648
+ referenceElement = this._config.reference[0];
1541
1649
  }
1542
1650
  } // If boundary is not `scrollParent`, then set position to `static`
1543
1651
  // to allow the menu to "escape" the scroll parent's boundaries
@@ -1545,31 +1653,75 @@ var Dropdown = function ($$$1) {
1545
1653
 
1546
1654
 
1547
1655
  if (this._config.boundary !== 'scrollParent') {
1548
- $$$1(parent).addClass(ClassName.POSITION_STATIC);
1656
+ $(parent).addClass(ClassName$4.POSITION_STATIC);
1549
1657
  }
1550
1658
 
1551
- this._popper = new Popper(element, this._menu, this._getPopperConfig());
1659
+ this._popper = new Popper(referenceElement, this._menu, this._getPopperConfig());
1552
1660
  } // If this is a touch-enabled device we add extra
1553
1661
  // empty mouseover listeners to the body's immediate children;
1554
1662
  // only needed because of broken event delegation on iOS
1555
1663
  // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html
1556
1664
 
1557
1665
 
1558
- if ('ontouchstart' in document.documentElement && $$$1(parent).closest(Selector.NAVBAR_NAV).length === 0) {
1559
- $$$1('body').children().on('mouseover', null, $$$1.noop);
1666
+ if ('ontouchstart' in document.documentElement && $(parent).closest(Selector$4.NAVBAR_NAV).length === 0) {
1667
+ $(document.body).children().on('mouseover', null, $.noop);
1560
1668
  }
1561
1669
 
1562
1670
  this._element.focus();
1563
1671
 
1564
1672
  this._element.setAttribute('aria-expanded', true);
1565
1673
 
1566
- $$$1(this._menu).toggleClass(ClassName.SHOW);
1567
- $$$1(parent).toggleClass(ClassName.SHOW).trigger($$$1.Event(Event.SHOWN, relatedTarget));
1674
+ $(this._menu).toggleClass(ClassName$4.SHOW);
1675
+ $(parent).toggleClass(ClassName$4.SHOW).trigger($.Event(Event$4.SHOWN, relatedTarget));
1676
+ };
1677
+
1678
+ _proto.show = function show() {
1679
+ if (this._element.disabled || $(this._element).hasClass(ClassName$4.DISABLED) || $(this._menu).hasClass(ClassName$4.SHOW)) {
1680
+ return;
1681
+ }
1682
+
1683
+ var relatedTarget = {
1684
+ relatedTarget: this._element
1685
+ };
1686
+ var showEvent = $.Event(Event$4.SHOW, relatedTarget);
1687
+
1688
+ var parent = Dropdown._getParentFromElement(this._element);
1689
+
1690
+ $(parent).trigger(showEvent);
1691
+
1692
+ if (showEvent.isDefaultPrevented()) {
1693
+ return;
1694
+ }
1695
+
1696
+ $(this._menu).toggleClass(ClassName$4.SHOW);
1697
+ $(parent).toggleClass(ClassName$4.SHOW).trigger($.Event(Event$4.SHOWN, relatedTarget));
1698
+ };
1699
+
1700
+ _proto.hide = function hide() {
1701
+ if (this._element.disabled || $(this._element).hasClass(ClassName$4.DISABLED) || !$(this._menu).hasClass(ClassName$4.SHOW)) {
1702
+ return;
1703
+ }
1704
+
1705
+ var relatedTarget = {
1706
+ relatedTarget: this._element
1707
+ };
1708
+ var hideEvent = $.Event(Event$4.HIDE, relatedTarget);
1709
+
1710
+ var parent = Dropdown._getParentFromElement(this._element);
1711
+
1712
+ $(parent).trigger(hideEvent);
1713
+
1714
+ if (hideEvent.isDefaultPrevented()) {
1715
+ return;
1716
+ }
1717
+
1718
+ $(this._menu).toggleClass(ClassName$4.SHOW);
1719
+ $(parent).toggleClass(ClassName$4.SHOW).trigger($.Event(Event$4.HIDDEN, relatedTarget));
1568
1720
  };
1569
1721
 
1570
1722
  _proto.dispose = function dispose() {
1571
- $$$1.removeData(this._element, DATA_KEY);
1572
- $$$1(this._element).off(EVENT_KEY);
1723
+ $.removeData(this._element, DATA_KEY$4);
1724
+ $(this._element).off(EVENT_KEY$4);
1573
1725
  this._element = null;
1574
1726
  this._menu = null;
1575
1727
 
@@ -1586,13 +1738,13 @@ var Dropdown = function ($$$1) {
1586
1738
  if (this._popper !== null) {
1587
1739
  this._popper.scheduleUpdate();
1588
1740
  }
1589
- }; // Private
1590
-
1741
+ } // Private
1742
+ ;
1591
1743
 
1592
1744
  _proto._addEventListeners = function _addEventListeners() {
1593
1745
  var _this = this;
1594
1746
 
1595
- $$$1(this._element).on(Event.CLICK, function (event) {
1747
+ $(this._element).on(Event$4.CLICK, function (event) {
1596
1748
  event.preventDefault();
1597
1749
  event.stopPropagation();
1598
1750
 
@@ -1601,8 +1753,8 @@ var Dropdown = function ($$$1) {
1601
1753
  };
1602
1754
 
1603
1755
  _proto._getConfig = function _getConfig(config) {
1604
- config = _extends({}, this.constructor.Default, $$$1(this._element).data(), config);
1605
- Util.typeCheckConfig(NAME, config, this.constructor.DefaultType);
1756
+ config = _objectSpread({}, this.constructor.Default, $(this._element).data(), config);
1757
+ Util.typeCheckConfig(NAME$4, config, this.constructor.DefaultType);
1606
1758
  return config;
1607
1759
  };
1608
1760
 
@@ -1610,27 +1762,29 @@ var Dropdown = function ($$$1) {
1610
1762
  if (!this._menu) {
1611
1763
  var parent = Dropdown._getParentFromElement(this._element);
1612
1764
 
1613
- this._menu = $$$1(parent).find(Selector.MENU)[0];
1765
+ if (parent) {
1766
+ this._menu = parent.querySelector(Selector$4.MENU);
1767
+ }
1614
1768
  }
1615
1769
 
1616
1770
  return this._menu;
1617
1771
  };
1618
1772
 
1619
1773
  _proto._getPlacement = function _getPlacement() {
1620
- var $parentDropdown = $$$1(this._element).parent();
1774
+ var $parentDropdown = $(this._element.parentNode);
1621
1775
  var placement = AttachmentMap.BOTTOM; // Handle dropup
1622
1776
 
1623
- if ($parentDropdown.hasClass(ClassName.DROPUP)) {
1777
+ if ($parentDropdown.hasClass(ClassName$4.DROPUP)) {
1624
1778
  placement = AttachmentMap.TOP;
1625
1779
 
1626
- if ($$$1(this._menu).hasClass(ClassName.MENURIGHT)) {
1780
+ if ($(this._menu).hasClass(ClassName$4.MENURIGHT)) {
1627
1781
  placement = AttachmentMap.TOPEND;
1628
1782
  }
1629
- } else if ($parentDropdown.hasClass(ClassName.DROPRIGHT)) {
1783
+ } else if ($parentDropdown.hasClass(ClassName$4.DROPRIGHT)) {
1630
1784
  placement = AttachmentMap.RIGHT;
1631
- } else if ($parentDropdown.hasClass(ClassName.DROPLEFT)) {
1785
+ } else if ($parentDropdown.hasClass(ClassName$4.DROPLEFT)) {
1632
1786
  placement = AttachmentMap.LEFT;
1633
- } else if ($$$1(this._menu).hasClass(ClassName.MENURIGHT)) {
1787
+ } else if ($(this._menu).hasClass(ClassName$4.MENURIGHT)) {
1634
1788
  placement = AttachmentMap.BOTTOMEND;
1635
1789
  }
1636
1790
 
@@ -1638,48 +1792,60 @@ var Dropdown = function ($$$1) {
1638
1792
  };
1639
1793
 
1640
1794
  _proto._detectNavbar = function _detectNavbar() {
1641
- return $$$1(this._element).closest('.navbar').length > 0;
1795
+ return $(this._element).closest('.navbar').length > 0;
1642
1796
  };
1643
1797
 
1644
- _proto._getPopperConfig = function _getPopperConfig() {
1798
+ _proto._getOffset = function _getOffset() {
1645
1799
  var _this2 = this;
1646
1800
 
1647
- var offsetConf = {};
1801
+ var offset = {};
1648
1802
 
1649
1803
  if (typeof this._config.offset === 'function') {
1650
- offsetConf.fn = function (data) {
1651
- data.offsets = _extends({}, data.offsets, _this2._config.offset(data.offsets) || {});
1804
+ offset.fn = function (data) {
1805
+ data.offsets = _objectSpread({}, data.offsets, _this2._config.offset(data.offsets, _this2._element) || {});
1652
1806
  return data;
1653
1807
  };
1654
1808
  } else {
1655
- offsetConf.offset = this._config.offset;
1809
+ offset.offset = this._config.offset;
1656
1810
  }
1657
1811
 
1812
+ return offset;
1813
+ };
1814
+
1815
+ _proto._getPopperConfig = function _getPopperConfig() {
1658
1816
  var popperConfig = {
1659
1817
  placement: this._getPlacement(),
1660
1818
  modifiers: {
1661
- offset: offsetConf,
1819
+ offset: this._getOffset(),
1662
1820
  flip: {
1663
1821
  enabled: this._config.flip
1664
1822
  },
1665
1823
  preventOverflow: {
1666
1824
  boundariesElement: this._config.boundary
1667
1825
  }
1668
- }
1826
+ } // Disable Popper.js if we have a static display
1827
+
1669
1828
  };
1670
- return popperConfig;
1671
- }; // Static
1672
1829
 
1830
+ if (this._config.display === 'static') {
1831
+ popperConfig.modifiers.applyStyle = {
1832
+ enabled: false
1833
+ };
1834
+ }
1835
+
1836
+ return popperConfig;
1837
+ } // Static
1838
+ ;
1673
1839
 
1674
1840
  Dropdown._jQueryInterface = function _jQueryInterface(config) {
1675
1841
  return this.each(function () {
1676
- var data = $$$1(this).data(DATA_KEY);
1842
+ var data = $(this).data(DATA_KEY$4);
1677
1843
 
1678
1844
  var _config = typeof config === 'object' ? config : null;
1679
1845
 
1680
1846
  if (!data) {
1681
1847
  data = new Dropdown(this, _config);
1682
- $$$1(this).data(DATA_KEY, data);
1848
+ $(this).data(DATA_KEY$4, data);
1683
1849
  }
1684
1850
 
1685
1851
  if (typeof config === 'string') {
@@ -1697,32 +1863,36 @@ var Dropdown = function ($$$1) {
1697
1863
  return;
1698
1864
  }
1699
1865
 
1700
- var toggles = $$$1.makeArray($$$1(Selector.DATA_TOGGLE));
1866
+ var toggles = [].slice.call(document.querySelectorAll(Selector$4.DATA_TOGGLE));
1701
1867
 
1702
- for (var i = 0; i < toggles.length; i++) {
1868
+ for (var i = 0, len = toggles.length; i < len; i++) {
1703
1869
  var parent = Dropdown._getParentFromElement(toggles[i]);
1704
1870
 
1705
- var context = $$$1(toggles[i]).data(DATA_KEY);
1871
+ var context = $(toggles[i]).data(DATA_KEY$4);
1706
1872
  var relatedTarget = {
1707
1873
  relatedTarget: toggles[i]
1708
1874
  };
1709
1875
 
1876
+ if (event && event.type === 'click') {
1877
+ relatedTarget.clickEvent = event;
1878
+ }
1879
+
1710
1880
  if (!context) {
1711
1881
  continue;
1712
1882
  }
1713
1883
 
1714
1884
  var dropdownMenu = context._menu;
1715
1885
 
1716
- if (!$$$1(parent).hasClass(ClassName.SHOW)) {
1886
+ if (!$(parent).hasClass(ClassName$4.SHOW)) {
1717
1887
  continue;
1718
1888
  }
1719
1889
 
1720
- if (event && (event.type === 'click' && /input|textarea/i.test(event.target.tagName) || event.type === 'keyup' && event.which === TAB_KEYCODE) && $$$1.contains(parent, event.target)) {
1890
+ if (event && (event.type === 'click' && /input|textarea/i.test(event.target.tagName) || event.type === 'keyup' && event.which === TAB_KEYCODE) && $.contains(parent, event.target)) {
1721
1891
  continue;
1722
1892
  }
1723
1893
 
1724
- var hideEvent = $$$1.Event(Event.HIDE, relatedTarget);
1725
- $$$1(parent).trigger(hideEvent);
1894
+ var hideEvent = $.Event(Event$4.HIDE, relatedTarget);
1895
+ $(parent).trigger(hideEvent);
1726
1896
 
1727
1897
  if (hideEvent.isDefaultPrevented()) {
1728
1898
  continue;
@@ -1731,12 +1901,12 @@ var Dropdown = function ($$$1) {
1731
1901
 
1732
1902
 
1733
1903
  if ('ontouchstart' in document.documentElement) {
1734
- $$$1('body').children().off('mouseover', null, $$$1.noop);
1904
+ $(document.body).children().off('mouseover', null, $.noop);
1735
1905
  }
1736
1906
 
1737
1907
  toggles[i].setAttribute('aria-expanded', 'false');
1738
- $$$1(dropdownMenu).removeClass(ClassName.SHOW);
1739
- $$$1(parent).removeClass(ClassName.SHOW).trigger($$$1.Event(Event.HIDDEN, relatedTarget));
1908
+ $(dropdownMenu).removeClass(ClassName$4.SHOW);
1909
+ $(parent).removeClass(ClassName$4.SHOW).trigger($.Event(Event$4.HIDDEN, relatedTarget));
1740
1910
  }
1741
1911
  };
1742
1912
 
@@ -1745,12 +1915,12 @@ var Dropdown = function ($$$1) {
1745
1915
  var selector = Util.getSelectorFromElement(element);
1746
1916
 
1747
1917
  if (selector) {
1748
- parent = $$$1(selector)[0];
1918
+ parent = document.querySelector(selector);
1749
1919
  }
1750
1920
 
1751
1921
  return parent || element.parentNode;
1752
- }; // eslint-disable-next-line complexity
1753
-
1922
+ } // eslint-disable-next-line complexity
1923
+ ;
1754
1924
 
1755
1925
  Dropdown._dataApiKeydownHandler = function _dataApiKeydownHandler(event) {
1756
1926
  // If not input/textarea:
@@ -1760,32 +1930,32 @@ var Dropdown = function ($$$1) {
1760
1930
  // - If key is other than escape
1761
1931
  // - If key is not up or down => not a dropdown command
1762
1932
  // - If trigger inside the menu => not a dropdown command
1763
- if (/input|textarea/i.test(event.target.tagName) ? event.which === SPACE_KEYCODE || event.which !== ESCAPE_KEYCODE && (event.which !== ARROW_DOWN_KEYCODE && event.which !== ARROW_UP_KEYCODE || $$$1(event.target).closest(Selector.MENU).length) : !REGEXP_KEYDOWN.test(event.which)) {
1933
+ if (/input|textarea/i.test(event.target.tagName) ? event.which === SPACE_KEYCODE || event.which !== ESCAPE_KEYCODE && (event.which !== ARROW_DOWN_KEYCODE && event.which !== ARROW_UP_KEYCODE || $(event.target).closest(Selector$4.MENU).length) : !REGEXP_KEYDOWN.test(event.which)) {
1764
1934
  return;
1765
1935
  }
1766
1936
 
1767
1937
  event.preventDefault();
1768
1938
  event.stopPropagation();
1769
1939
 
1770
- if (this.disabled || $$$1(this).hasClass(ClassName.DISABLED)) {
1940
+ if (this.disabled || $(this).hasClass(ClassName$4.DISABLED)) {
1771
1941
  return;
1772
1942
  }
1773
1943
 
1774
1944
  var parent = Dropdown._getParentFromElement(this);
1775
1945
 
1776
- var isActive = $$$1(parent).hasClass(ClassName.SHOW);
1946
+ var isActive = $(parent).hasClass(ClassName$4.SHOW);
1777
1947
 
1778
- if (!isActive && (event.which !== ESCAPE_KEYCODE || event.which !== SPACE_KEYCODE) || isActive && (event.which === ESCAPE_KEYCODE || event.which === SPACE_KEYCODE)) {
1948
+ if (!isActive || isActive && (event.which === ESCAPE_KEYCODE || event.which === SPACE_KEYCODE)) {
1779
1949
  if (event.which === ESCAPE_KEYCODE) {
1780
- var toggle = $$$1(parent).find(Selector.DATA_TOGGLE)[0];
1781
- $$$1(toggle).trigger('focus');
1950
+ var toggle = parent.querySelector(Selector$4.DATA_TOGGLE);
1951
+ $(toggle).trigger('focus');
1782
1952
  }
1783
1953
 
1784
- $$$1(this).trigger('click');
1954
+ $(this).trigger('click');
1785
1955
  return;
1786
1956
  }
1787
1957
 
1788
- var items = $$$1(parent).find(Selector.VISIBLE_ITEMS).get();
1958
+ var items = [].slice.call(parent.querySelectorAll(Selector$4.VISIBLE_ITEMS));
1789
1959
 
1790
1960
  if (items.length === 0) {
1791
1961
  return;
@@ -1813,19 +1983,20 @@ var Dropdown = function ($$$1) {
1813
1983
  _createClass(Dropdown, null, [{
1814
1984
  key: "VERSION",
1815
1985
  get: function get() {
1816
- return VERSION;
1986
+ return VERSION$4;
1817
1987
  }
1818
1988
  }, {
1819
1989
  key: "Default",
1820
1990
  get: function get() {
1821
- return Default;
1991
+ return Default$2;
1822
1992
  }
1823
1993
  }, {
1824
1994
  key: "DefaultType",
1825
1995
  get: function get() {
1826
- return DefaultType;
1996
+ return DefaultType$2;
1827
1997
  }
1828
1998
  }]);
1999
+
1829
2000
  return Dropdown;
1830
2001
  }();
1831
2002
  /**
@@ -1835,12 +2006,12 @@ var Dropdown = function ($$$1) {
1835
2006
  */
1836
2007
 
1837
2008
 
1838
- $$$1(document).on(Event.KEYDOWN_DATA_API, Selector.DATA_TOGGLE, Dropdown._dataApiKeydownHandler).on(Event.KEYDOWN_DATA_API, Selector.MENU, Dropdown._dataApiKeydownHandler).on(Event.CLICK_DATA_API + " " + Event.KEYUP_DATA_API, Dropdown._clearMenus).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {
2009
+ $(document).on(Event$4.KEYDOWN_DATA_API, Selector$4.DATA_TOGGLE, Dropdown._dataApiKeydownHandler).on(Event$4.KEYDOWN_DATA_API, Selector$4.MENU, Dropdown._dataApiKeydownHandler).on(Event$4.CLICK_DATA_API + " " + Event$4.KEYUP_DATA_API, Dropdown._clearMenus).on(Event$4.CLICK_DATA_API, Selector$4.DATA_TOGGLE, function (event) {
1839
2010
  event.preventDefault();
1840
2011
  event.stopPropagation();
1841
2012
 
1842
- Dropdown._jQueryInterface.call($$$1(this), 'toggle');
1843
- }).on(Event.CLICK_DATA_API, Selector.FORM_CHILD, function (e) {
2013
+ Dropdown._jQueryInterface.call($(this), 'toggle');
2014
+ }).on(Event$4.CLICK_DATA_API, Selector$4.FORM_CHILD, function (e) {
1844
2015
  e.stopPropagation();
1845
2016
  });
1846
2017
  /**
@@ -1849,79 +2020,68 @@ var Dropdown = function ($$$1) {
1849
2020
  * ------------------------------------------------------------------------
1850
2021
  */
1851
2022
 
1852
- $$$1.fn[NAME] = Dropdown._jQueryInterface;
1853
- $$$1.fn[NAME].Constructor = Dropdown;
2023
+ $.fn[NAME$4] = Dropdown._jQueryInterface;
2024
+ $.fn[NAME$4].Constructor = Dropdown;
1854
2025
 
1855
- $$$1.fn[NAME].noConflict = function () {
1856
- $$$1.fn[NAME] = JQUERY_NO_CONFLICT;
2026
+ $.fn[NAME$4].noConflict = function () {
2027
+ $.fn[NAME$4] = JQUERY_NO_CONFLICT$4;
1857
2028
  return Dropdown._jQueryInterface;
1858
2029
  };
1859
2030
 
1860
- return Dropdown;
1861
- }($, Popper);
1862
-
1863
- /**
1864
- * --------------------------------------------------------------------------
1865
- * Bootstrap (v4.0.0): modal.js
1866
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
1867
- * --------------------------------------------------------------------------
1868
- */
1869
-
1870
- var Modal = function ($$$1) {
1871
2031
  /**
1872
2032
  * ------------------------------------------------------------------------
1873
2033
  * Constants
1874
2034
  * ------------------------------------------------------------------------
1875
2035
  */
1876
- var NAME = 'modal';
1877
- var VERSION = '4.0.0';
1878
- var DATA_KEY = 'bs.modal';
1879
- var EVENT_KEY = "." + DATA_KEY;
1880
- var DATA_API_KEY = '.data-api';
1881
- var JQUERY_NO_CONFLICT = $$$1.fn[NAME];
1882
- var TRANSITION_DURATION = 300;
1883
- var BACKDROP_TRANSITION_DURATION = 150;
1884
- var ESCAPE_KEYCODE = 27; // KeyboardEvent.which value for Escape (Esc) key
1885
2036
 
1886
- var Default = {
2037
+ var NAME$5 = 'modal';
2038
+ var VERSION$5 = '4.3.1';
2039
+ var DATA_KEY$5 = 'bs.modal';
2040
+ var EVENT_KEY$5 = "." + DATA_KEY$5;
2041
+ var DATA_API_KEY$5 = '.data-api';
2042
+ var JQUERY_NO_CONFLICT$5 = $.fn[NAME$5];
2043
+ var ESCAPE_KEYCODE$1 = 27; // KeyboardEvent.which value for Escape (Esc) key
2044
+
2045
+ var Default$3 = {
1887
2046
  backdrop: true,
1888
2047
  keyboard: true,
1889
2048
  focus: true,
1890
2049
  show: true
1891
2050
  };
1892
- var DefaultType = {
2051
+ var DefaultType$3 = {
1893
2052
  backdrop: '(boolean|string)',
1894
2053
  keyboard: 'boolean',
1895
2054
  focus: 'boolean',
1896
2055
  show: 'boolean'
1897
2056
  };
1898
- var Event = {
1899
- HIDE: "hide" + EVENT_KEY,
1900
- HIDDEN: "hidden" + EVENT_KEY,
1901
- SHOW: "show" + EVENT_KEY,
1902
- SHOWN: "shown" + EVENT_KEY,
1903
- FOCUSIN: "focusin" + EVENT_KEY,
1904
- RESIZE: "resize" + EVENT_KEY,
1905
- CLICK_DISMISS: "click.dismiss" + EVENT_KEY,
1906
- KEYDOWN_DISMISS: "keydown.dismiss" + EVENT_KEY,
1907
- MOUSEUP_DISMISS: "mouseup.dismiss" + EVENT_KEY,
1908
- MOUSEDOWN_DISMISS: "mousedown.dismiss" + EVENT_KEY,
1909
- CLICK_DATA_API: "click" + EVENT_KEY + DATA_API_KEY
2057
+ var Event$5 = {
2058
+ HIDE: "hide" + EVENT_KEY$5,
2059
+ HIDDEN: "hidden" + EVENT_KEY$5,
2060
+ SHOW: "show" + EVENT_KEY$5,
2061
+ SHOWN: "shown" + EVENT_KEY$5,
2062
+ FOCUSIN: "focusin" + EVENT_KEY$5,
2063
+ RESIZE: "resize" + EVENT_KEY$5,
2064
+ CLICK_DISMISS: "click.dismiss" + EVENT_KEY$5,
2065
+ KEYDOWN_DISMISS: "keydown.dismiss" + EVENT_KEY$5,
2066
+ MOUSEUP_DISMISS: "mouseup.dismiss" + EVENT_KEY$5,
2067
+ MOUSEDOWN_DISMISS: "mousedown.dismiss" + EVENT_KEY$5,
2068
+ CLICK_DATA_API: "click" + EVENT_KEY$5 + DATA_API_KEY$5
1910
2069
  };
1911
- var ClassName = {
2070
+ var ClassName$5 = {
2071
+ SCROLLABLE: 'modal-dialog-scrollable',
1912
2072
  SCROLLBAR_MEASURER: 'modal-scrollbar-measure',
1913
2073
  BACKDROP: 'modal-backdrop',
1914
2074
  OPEN: 'modal-open',
1915
2075
  FADE: 'fade',
1916
2076
  SHOW: 'show'
1917
2077
  };
1918
- var Selector = {
2078
+ var Selector$5 = {
1919
2079
  DIALOG: '.modal-dialog',
2080
+ MODAL_BODY: '.modal-body',
1920
2081
  DATA_TOGGLE: '[data-toggle="modal"]',
1921
2082
  DATA_DISMISS: '[data-dismiss="modal"]',
1922
2083
  FIXED_CONTENT: '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top',
1923
- STICKY_CONTENT: '.sticky-top',
1924
- NAVBAR_TOGGLER: '.navbar-toggler'
2084
+ STICKY_CONTENT: '.sticky-top'
1925
2085
  /**
1926
2086
  * ------------------------------------------------------------------------
1927
2087
  * Class Definition
@@ -1936,12 +2096,12 @@ var Modal = function ($$$1) {
1936
2096
  function Modal(element, config) {
1937
2097
  this._config = this._getConfig(config);
1938
2098
  this._element = element;
1939
- this._dialog = $$$1(element).find(Selector.DIALOG)[0];
2099
+ this._dialog = element.querySelector(Selector$5.DIALOG);
1940
2100
  this._backdrop = null;
1941
2101
  this._isShown = false;
1942
2102
  this._isBodyOverflowing = false;
1943
2103
  this._ignoreBackdropClick = false;
1944
- this._originalBodyPadding = 0;
2104
+ this._isTransitioning = false;
1945
2105
  this._scrollbarWidth = 0;
1946
2106
  } // Getters
1947
2107
 
@@ -1956,18 +2116,18 @@ var Modal = function ($$$1) {
1956
2116
  _proto.show = function show(relatedTarget) {
1957
2117
  var _this = this;
1958
2118
 
1959
- if (this._isTransitioning || this._isShown) {
2119
+ if (this._isShown || this._isTransitioning) {
1960
2120
  return;
1961
2121
  }
1962
2122
 
1963
- if (Util.supportsTransitionEnd() && $$$1(this._element).hasClass(ClassName.FADE)) {
2123
+ if ($(this._element).hasClass(ClassName$5.FADE)) {
1964
2124
  this._isTransitioning = true;
1965
2125
  }
1966
2126
 
1967
- var showEvent = $$$1.Event(Event.SHOW, {
2127
+ var showEvent = $.Event(Event$5.SHOW, {
1968
2128
  relatedTarget: relatedTarget
1969
2129
  });
1970
- $$$1(this._element).trigger(showEvent);
2130
+ $(this._element).trigger(showEvent);
1971
2131
 
1972
2132
  if (this._isShown || showEvent.isDefaultPrevented()) {
1973
2133
  return;
@@ -1981,18 +2141,16 @@ var Modal = function ($$$1) {
1981
2141
 
1982
2142
  this._adjustDialog();
1983
2143
 
1984
- $$$1(document.body).addClass(ClassName.OPEN);
1985
-
1986
2144
  this._setEscapeEvent();
1987
2145
 
1988
2146
  this._setResizeEvent();
1989
2147
 
1990
- $$$1(this._element).on(Event.CLICK_DISMISS, Selector.DATA_DISMISS, function (event) {
2148
+ $(this._element).on(Event$5.CLICK_DISMISS, Selector$5.DATA_DISMISS, function (event) {
1991
2149
  return _this.hide(event);
1992
2150
  });
1993
- $$$1(this._dialog).on(Event.MOUSEDOWN_DISMISS, function () {
1994
- $$$1(_this._element).one(Event.MOUSEUP_DISMISS, function (event) {
1995
- if ($$$1(event.target).is(_this._element)) {
2151
+ $(this._dialog).on(Event$5.MOUSEDOWN_DISMISS, function () {
2152
+ $(_this._element).one(Event$5.MOUSEUP_DISMISS, function (event) {
2153
+ if ($(event.target).is(_this._element)) {
1996
2154
  _this._ignoreBackdropClick = true;
1997
2155
  }
1998
2156
  });
@@ -2010,19 +2168,19 @@ var Modal = function ($$$1) {
2010
2168
  event.preventDefault();
2011
2169
  }
2012
2170
 
2013
- if (this._isTransitioning || !this._isShown) {
2171
+ if (!this._isShown || this._isTransitioning) {
2014
2172
  return;
2015
2173
  }
2016
2174
 
2017
- var hideEvent = $$$1.Event(Event.HIDE);
2018
- $$$1(this._element).trigger(hideEvent);
2175
+ var hideEvent = $.Event(Event$5.HIDE);
2176
+ $(this._element).trigger(hideEvent);
2019
2177
 
2020
2178
  if (!this._isShown || hideEvent.isDefaultPrevented()) {
2021
2179
  return;
2022
2180
  }
2023
2181
 
2024
2182
  this._isShown = false;
2025
- var transition = Util.supportsTransitionEnd() && $$$1(this._element).hasClass(ClassName.FADE);
2183
+ var transition = $(this._element).hasClass(ClassName$5.FADE);
2026
2184
 
2027
2185
  if (transition) {
2028
2186
  this._isTransitioning = true;
@@ -2032,23 +2190,33 @@ var Modal = function ($$$1) {
2032
2190
 
2033
2191
  this._setResizeEvent();
2034
2192
 
2035
- $$$1(document).off(Event.FOCUSIN);
2036
- $$$1(this._element).removeClass(ClassName.SHOW);
2037
- $$$1(this._element).off(Event.CLICK_DISMISS);
2038
- $$$1(this._dialog).off(Event.MOUSEDOWN_DISMISS);
2193
+ $(document).off(Event$5.FOCUSIN);
2194
+ $(this._element).removeClass(ClassName$5.SHOW);
2195
+ $(this._element).off(Event$5.CLICK_DISMISS);
2196
+ $(this._dialog).off(Event$5.MOUSEDOWN_DISMISS);
2039
2197
 
2040
2198
  if (transition) {
2041
- $$$1(this._element).one(Util.TRANSITION_END, function (event) {
2199
+ var transitionDuration = Util.getTransitionDurationFromElement(this._element);
2200
+ $(this._element).one(Util.TRANSITION_END, function (event) {
2042
2201
  return _this2._hideModal(event);
2043
- }).emulateTransitionEnd(TRANSITION_DURATION);
2202
+ }).emulateTransitionEnd(transitionDuration);
2044
2203
  } else {
2045
2204
  this._hideModal();
2046
2205
  }
2047
2206
  };
2048
2207
 
2049
2208
  _proto.dispose = function dispose() {
2050
- $$$1.removeData(this._element, DATA_KEY);
2051
- $$$1(window, document, this._element, this._backdrop).off(EVENT_KEY);
2209
+ [window, this._element, this._dialog].forEach(function (htmlElement) {
2210
+ return $(htmlElement).off(EVENT_KEY$5);
2211
+ });
2212
+ /**
2213
+ * `document` has 2 events `Event.FOCUSIN` and `Event.CLICK_DATA_API`
2214
+ * Do not move `document` in `htmlElements` array
2215
+ * It will remove `Event.CLICK_DATA_API` event that should remain
2216
+ */
2217
+
2218
+ $(document).off(Event$5.FOCUSIN);
2219
+ $.removeData(this._element, DATA_KEY$5);
2052
2220
  this._config = null;
2053
2221
  this._element = null;
2054
2222
  this._dialog = null;
@@ -2056,24 +2224,25 @@ var Modal = function ($$$1) {
2056
2224
  this._isShown = null;
2057
2225
  this._isBodyOverflowing = null;
2058
2226
  this._ignoreBackdropClick = null;
2227
+ this._isTransitioning = null;
2059
2228
  this._scrollbarWidth = null;
2060
2229
  };
2061
2230
 
2062
2231
  _proto.handleUpdate = function handleUpdate() {
2063
2232
  this._adjustDialog();
2064
- }; // Private
2065
-
2233
+ } // Private
2234
+ ;
2066
2235
 
2067
2236
  _proto._getConfig = function _getConfig(config) {
2068
- config = _extends({}, Default, config);
2069
- Util.typeCheckConfig(NAME, config, DefaultType);
2237
+ config = _objectSpread({}, Default$3, config);
2238
+ Util.typeCheckConfig(NAME$5, config, DefaultType$3);
2070
2239
  return config;
2071
2240
  };
2072
2241
 
2073
2242
  _proto._showElement = function _showElement(relatedTarget) {
2074
2243
  var _this3 = this;
2075
2244
 
2076
- var transition = Util.supportsTransitionEnd() && $$$1(this._element).hasClass(ClassName.FADE);
2245
+ var transition = $(this._element).hasClass(ClassName$5.FADE);
2077
2246
 
2078
2247
  if (!this._element.parentNode || this._element.parentNode.nodeType !== Node.ELEMENT_NODE) {
2079
2248
  // Don't move modal's DOM position
@@ -2084,19 +2253,25 @@ var Modal = function ($$$1) {
2084
2253
 
2085
2254
  this._element.removeAttribute('aria-hidden');
2086
2255
 
2087
- this._element.scrollTop = 0;
2256
+ this._element.setAttribute('aria-modal', true);
2088
2257
 
2089
- if (transition) {
2090
- Util.reflow(this._element);
2258
+ if ($(this._dialog).hasClass(ClassName$5.SCROLLABLE)) {
2259
+ this._dialog.querySelector(Selector$5.MODAL_BODY).scrollTop = 0;
2260
+ } else {
2261
+ this._element.scrollTop = 0;
2262
+ }
2263
+
2264
+ if (transition) {
2265
+ Util.reflow(this._element);
2091
2266
  }
2092
2267
 
2093
- $$$1(this._element).addClass(ClassName.SHOW);
2268
+ $(this._element).addClass(ClassName$5.SHOW);
2094
2269
 
2095
2270
  if (this._config.focus) {
2096
2271
  this._enforceFocus();
2097
2272
  }
2098
2273
 
2099
- var shownEvent = $$$1.Event(Event.SHOWN, {
2274
+ var shownEvent = $.Event(Event$5.SHOWN, {
2100
2275
  relatedTarget: relatedTarget
2101
2276
  });
2102
2277
 
@@ -2106,11 +2281,12 @@ var Modal = function ($$$1) {
2106
2281
  }
2107
2282
 
2108
2283
  _this3._isTransitioning = false;
2109
- $$$1(_this3._element).trigger(shownEvent);
2284
+ $(_this3._element).trigger(shownEvent);
2110
2285
  };
2111
2286
 
2112
2287
  if (transition) {
2113
- $$$1(this._dialog).one(Util.TRANSITION_END, transitionComplete).emulateTransitionEnd(TRANSITION_DURATION);
2288
+ var transitionDuration = Util.getTransitionDurationFromElement(this._dialog);
2289
+ $(this._dialog).one(Util.TRANSITION_END, transitionComplete).emulateTransitionEnd(transitionDuration);
2114
2290
  } else {
2115
2291
  transitionComplete();
2116
2292
  }
@@ -2119,9 +2295,9 @@ var Modal = function ($$$1) {
2119
2295
  _proto._enforceFocus = function _enforceFocus() {
2120
2296
  var _this4 = this;
2121
2297
 
2122
- $$$1(document).off(Event.FOCUSIN) // Guard against infinite focus loop
2123
- .on(Event.FOCUSIN, function (event) {
2124
- if (document !== event.target && _this4._element !== event.target && $$$1(_this4._element).has(event.target).length === 0) {
2298
+ $(document).off(Event$5.FOCUSIN) // Guard against infinite focus loop
2299
+ .on(Event$5.FOCUSIN, function (event) {
2300
+ if (document !== event.target && _this4._element !== event.target && $(_this4._element).has(event.target).length === 0) {
2125
2301
  _this4._element.focus();
2126
2302
  }
2127
2303
  });
@@ -2131,15 +2307,15 @@ var Modal = function ($$$1) {
2131
2307
  var _this5 = this;
2132
2308
 
2133
2309
  if (this._isShown && this._config.keyboard) {
2134
- $$$1(this._element).on(Event.KEYDOWN_DISMISS, function (event) {
2135
- if (event.which === ESCAPE_KEYCODE) {
2310
+ $(this._element).on(Event$5.KEYDOWN_DISMISS, function (event) {
2311
+ if (event.which === ESCAPE_KEYCODE$1) {
2136
2312
  event.preventDefault();
2137
2313
 
2138
2314
  _this5.hide();
2139
2315
  }
2140
2316
  });
2141
2317
  } else if (!this._isShown) {
2142
- $$$1(this._element).off(Event.KEYDOWN_DISMISS);
2318
+ $(this._element).off(Event$5.KEYDOWN_DISMISS);
2143
2319
  }
2144
2320
  };
2145
2321
 
@@ -2147,11 +2323,11 @@ var Modal = function ($$$1) {
2147
2323
  var _this6 = this;
2148
2324
 
2149
2325
  if (this._isShown) {
2150
- $$$1(window).on(Event.RESIZE, function (event) {
2326
+ $(window).on(Event$5.RESIZE, function (event) {
2151
2327
  return _this6.handleUpdate(event);
2152
2328
  });
2153
2329
  } else {
2154
- $$$1(window).off(Event.RESIZE);
2330
+ $(window).off(Event$5.RESIZE);
2155
2331
  }
2156
2332
  };
2157
2333
 
@@ -2162,22 +2338,24 @@ var Modal = function ($$$1) {
2162
2338
 
2163
2339
  this._element.setAttribute('aria-hidden', true);
2164
2340
 
2341
+ this._element.removeAttribute('aria-modal');
2342
+
2165
2343
  this._isTransitioning = false;
2166
2344
 
2167
2345
  this._showBackdrop(function () {
2168
- $$$1(document.body).removeClass(ClassName.OPEN);
2346
+ $(document.body).removeClass(ClassName$5.OPEN);
2169
2347
 
2170
2348
  _this7._resetAdjustments();
2171
2349
 
2172
2350
  _this7._resetScrollbar();
2173
2351
 
2174
- $$$1(_this7._element).trigger(Event.HIDDEN);
2352
+ $(_this7._element).trigger(Event$5.HIDDEN);
2175
2353
  });
2176
2354
  };
2177
2355
 
2178
2356
  _proto._removeBackdrop = function _removeBackdrop() {
2179
2357
  if (this._backdrop) {
2180
- $$$1(this._backdrop).remove();
2358
+ $(this._backdrop).remove();
2181
2359
  this._backdrop = null;
2182
2360
  }
2183
2361
  };
@@ -2185,19 +2363,18 @@ var Modal = function ($$$1) {
2185
2363
  _proto._showBackdrop = function _showBackdrop(callback) {
2186
2364
  var _this8 = this;
2187
2365
 
2188
- var animate = $$$1(this._element).hasClass(ClassName.FADE) ? ClassName.FADE : '';
2366
+ var animate = $(this._element).hasClass(ClassName$5.FADE) ? ClassName$5.FADE : '';
2189
2367
 
2190
2368
  if (this._isShown && this._config.backdrop) {
2191
- var doAnimate = Util.supportsTransitionEnd() && animate;
2192
2369
  this._backdrop = document.createElement('div');
2193
- this._backdrop.className = ClassName.BACKDROP;
2370
+ this._backdrop.className = ClassName$5.BACKDROP;
2194
2371
 
2195
2372
  if (animate) {
2196
- $$$1(this._backdrop).addClass(animate);
2373
+ this._backdrop.classList.add(animate);
2197
2374
  }
2198
2375
 
2199
- $$$1(this._backdrop).appendTo(document.body);
2200
- $$$1(this._element).on(Event.CLICK_DISMISS, function (event) {
2376
+ $(this._backdrop).appendTo(document.body);
2377
+ $(this._element).on(Event$5.CLICK_DISMISS, function (event) {
2201
2378
  if (_this8._ignoreBackdropClick) {
2202
2379
  _this8._ignoreBackdropClick = false;
2203
2380
  return;
@@ -2214,24 +2391,25 @@ var Modal = function ($$$1) {
2214
2391
  }
2215
2392
  });
2216
2393
 
2217
- if (doAnimate) {
2394
+ if (animate) {
2218
2395
  Util.reflow(this._backdrop);
2219
2396
  }
2220
2397
 
2221
- $$$1(this._backdrop).addClass(ClassName.SHOW);
2398
+ $(this._backdrop).addClass(ClassName$5.SHOW);
2222
2399
 
2223
2400
  if (!callback) {
2224
2401
  return;
2225
2402
  }
2226
2403
 
2227
- if (!doAnimate) {
2404
+ if (!animate) {
2228
2405
  callback();
2229
2406
  return;
2230
2407
  }
2231
2408
 
2232
- $$$1(this._backdrop).one(Util.TRANSITION_END, callback).emulateTransitionEnd(BACKDROP_TRANSITION_DURATION);
2409
+ var backdropTransitionDuration = Util.getTransitionDurationFromElement(this._backdrop);
2410
+ $(this._backdrop).one(Util.TRANSITION_END, callback).emulateTransitionEnd(backdropTransitionDuration);
2233
2411
  } else if (!this._isShown && this._backdrop) {
2234
- $$$1(this._backdrop).removeClass(ClassName.SHOW);
2412
+ $(this._backdrop).removeClass(ClassName$5.SHOW);
2235
2413
 
2236
2414
  var callbackRemove = function callbackRemove() {
2237
2415
  _this8._removeBackdrop();
@@ -2241,19 +2419,21 @@ var Modal = function ($$$1) {
2241
2419
  }
2242
2420
  };
2243
2421
 
2244
- if (Util.supportsTransitionEnd() && $$$1(this._element).hasClass(ClassName.FADE)) {
2245
- $$$1(this._backdrop).one(Util.TRANSITION_END, callbackRemove).emulateTransitionEnd(BACKDROP_TRANSITION_DURATION);
2422
+ if ($(this._element).hasClass(ClassName$5.FADE)) {
2423
+ var _backdropTransitionDuration = Util.getTransitionDurationFromElement(this._backdrop);
2424
+
2425
+ $(this._backdrop).one(Util.TRANSITION_END, callbackRemove).emulateTransitionEnd(_backdropTransitionDuration);
2246
2426
  } else {
2247
2427
  callbackRemove();
2248
2428
  }
2249
2429
  } else if (callback) {
2250
2430
  callback();
2251
2431
  }
2252
- }; // ----------------------------------------------------------------------
2432
+ } // ----------------------------------------------------------------------
2253
2433
  // the following methods are used to handle overflowing modals
2254
2434
  // todo (fat): these should probably be refactored out of modal.js
2255
2435
  // ----------------------------------------------------------------------
2256
-
2436
+ ;
2257
2437
 
2258
2438
  _proto._adjustDialog = function _adjustDialog() {
2259
2439
  var isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight;
@@ -2284,76 +2464,72 @@ var Modal = function ($$$1) {
2284
2464
  if (this._isBodyOverflowing) {
2285
2465
  // Note: DOMNode.style.paddingRight returns the actual value or '' if not set
2286
2466
  // while $(DOMNode).css('padding-right') returns the calculated value or 0 if not set
2287
- // Adjust fixed content padding
2288
- $$$1(Selector.FIXED_CONTENT).each(function (index, element) {
2289
- var actualPadding = $$$1(element)[0].style.paddingRight;
2290
- var calculatedPadding = $$$1(element).css('padding-right');
2291
- $$$1(element).data('padding-right', actualPadding).css('padding-right', parseFloat(calculatedPadding) + _this9._scrollbarWidth + "px");
2292
- }); // Adjust sticky content margin
2467
+ var fixedContent = [].slice.call(document.querySelectorAll(Selector$5.FIXED_CONTENT));
2468
+ var stickyContent = [].slice.call(document.querySelectorAll(Selector$5.STICKY_CONTENT)); // Adjust fixed content padding
2293
2469
 
2294
- $$$1(Selector.STICKY_CONTENT).each(function (index, element) {
2295
- var actualMargin = $$$1(element)[0].style.marginRight;
2296
- var calculatedMargin = $$$1(element).css('margin-right');
2297
- $$$1(element).data('margin-right', actualMargin).css('margin-right', parseFloat(calculatedMargin) - _this9._scrollbarWidth + "px");
2298
- }); // Adjust navbar-toggler margin
2470
+ $(fixedContent).each(function (index, element) {
2471
+ var actualPadding = element.style.paddingRight;
2472
+ var calculatedPadding = $(element).css('padding-right');
2473
+ $(element).data('padding-right', actualPadding).css('padding-right', parseFloat(calculatedPadding) + _this9._scrollbarWidth + "px");
2474
+ }); // Adjust sticky content margin
2299
2475
 
2300
- $$$1(Selector.NAVBAR_TOGGLER).each(function (index, element) {
2301
- var actualMargin = $$$1(element)[0].style.marginRight;
2302
- var calculatedMargin = $$$1(element).css('margin-right');
2303
- $$$1(element).data('margin-right', actualMargin).css('margin-right', parseFloat(calculatedMargin) + _this9._scrollbarWidth + "px");
2476
+ $(stickyContent).each(function (index, element) {
2477
+ var actualMargin = element.style.marginRight;
2478
+ var calculatedMargin = $(element).css('margin-right');
2479
+ $(element).data('margin-right', actualMargin).css('margin-right', parseFloat(calculatedMargin) - _this9._scrollbarWidth + "px");
2304
2480
  }); // Adjust body padding
2305
2481
 
2306
2482
  var actualPadding = document.body.style.paddingRight;
2307
- var calculatedPadding = $$$1('body').css('padding-right');
2308
- $$$1('body').data('padding-right', actualPadding).css('padding-right', parseFloat(calculatedPadding) + this._scrollbarWidth + "px");
2483
+ var calculatedPadding = $(document.body).css('padding-right');
2484
+ $(document.body).data('padding-right', actualPadding).css('padding-right', parseFloat(calculatedPadding) + this._scrollbarWidth + "px");
2309
2485
  }
2486
+
2487
+ $(document.body).addClass(ClassName$5.OPEN);
2310
2488
  };
2311
2489
 
2312
2490
  _proto._resetScrollbar = function _resetScrollbar() {
2313
2491
  // Restore fixed content padding
2314
- $$$1(Selector.FIXED_CONTENT).each(function (index, element) {
2315
- var padding = $$$1(element).data('padding-right');
2492
+ var fixedContent = [].slice.call(document.querySelectorAll(Selector$5.FIXED_CONTENT));
2493
+ $(fixedContent).each(function (index, element) {
2494
+ var padding = $(element).data('padding-right');
2495
+ $(element).removeData('padding-right');
2496
+ element.style.paddingRight = padding ? padding : '';
2497
+ }); // Restore sticky content
2316
2498
 
2317
- if (typeof padding !== 'undefined') {
2318
- $$$1(element).css('padding-right', padding).removeData('padding-right');
2319
- }
2320
- }); // Restore sticky content and navbar-toggler margin
2321
-
2322
- $$$1(Selector.STICKY_CONTENT + ", " + Selector.NAVBAR_TOGGLER).each(function (index, element) {
2323
- var margin = $$$1(element).data('margin-right');
2499
+ var elements = [].slice.call(document.querySelectorAll("" + Selector$5.STICKY_CONTENT));
2500
+ $(elements).each(function (index, element) {
2501
+ var margin = $(element).data('margin-right');
2324
2502
 
2325
2503
  if (typeof margin !== 'undefined') {
2326
- $$$1(element).css('margin-right', margin).removeData('margin-right');
2504
+ $(element).css('margin-right', margin).removeData('margin-right');
2327
2505
  }
2328
2506
  }); // Restore body padding
2329
2507
 
2330
- var padding = $$$1('body').data('padding-right');
2331
-
2332
- if (typeof padding !== 'undefined') {
2333
- $$$1('body').css('padding-right', padding).removeData('padding-right');
2334
- }
2508
+ var padding = $(document.body).data('padding-right');
2509
+ $(document.body).removeData('padding-right');
2510
+ document.body.style.paddingRight = padding ? padding : '';
2335
2511
  };
2336
2512
 
2337
2513
  _proto._getScrollbarWidth = function _getScrollbarWidth() {
2338
2514
  // thx d.walsh
2339
2515
  var scrollDiv = document.createElement('div');
2340
- scrollDiv.className = ClassName.SCROLLBAR_MEASURER;
2516
+ scrollDiv.className = ClassName$5.SCROLLBAR_MEASURER;
2341
2517
  document.body.appendChild(scrollDiv);
2342
2518
  var scrollbarWidth = scrollDiv.getBoundingClientRect().width - scrollDiv.clientWidth;
2343
2519
  document.body.removeChild(scrollDiv);
2344
2520
  return scrollbarWidth;
2345
- }; // Static
2346
-
2521
+ } // Static
2522
+ ;
2347
2523
 
2348
2524
  Modal._jQueryInterface = function _jQueryInterface(config, relatedTarget) {
2349
2525
  return this.each(function () {
2350
- var data = $$$1(this).data(DATA_KEY);
2526
+ var data = $(this).data(DATA_KEY$5);
2351
2527
 
2352
- var _config = _extends({}, Modal.Default, $$$1(this).data(), typeof config === 'object' && config);
2528
+ var _config = _objectSpread({}, Default$3, $(this).data(), typeof config === 'object' && config ? config : {});
2353
2529
 
2354
2530
  if (!data) {
2355
2531
  data = new Modal(this, _config);
2356
- $$$1(this).data(DATA_KEY, data);
2532
+ $(this).data(DATA_KEY$5, data);
2357
2533
  }
2358
2534
 
2359
2535
  if (typeof config === 'string') {
@@ -2371,14 +2547,15 @@ var Modal = function ($$$1) {
2371
2547
  _createClass(Modal, null, [{
2372
2548
  key: "VERSION",
2373
2549
  get: function get() {
2374
- return VERSION;
2550
+ return VERSION$5;
2375
2551
  }
2376
2552
  }, {
2377
2553
  key: "Default",
2378
2554
  get: function get() {
2379
- return Default;
2555
+ return Default$3;
2380
2556
  }
2381
2557
  }]);
2558
+
2382
2559
  return Modal;
2383
2560
  }();
2384
2561
  /**
@@ -2388,36 +2565,36 @@ var Modal = function ($$$1) {
2388
2565
  */
2389
2566
 
2390
2567
 
2391
- $$$1(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {
2568
+ $(document).on(Event$5.CLICK_DATA_API, Selector$5.DATA_TOGGLE, function (event) {
2392
2569
  var _this10 = this;
2393
2570
 
2394
2571
  var target;
2395
2572
  var selector = Util.getSelectorFromElement(this);
2396
2573
 
2397
2574
  if (selector) {
2398
- target = $$$1(selector)[0];
2575
+ target = document.querySelector(selector);
2399
2576
  }
2400
2577
 
2401
- var config = $$$1(target).data(DATA_KEY) ? 'toggle' : _extends({}, $$$1(target).data(), $$$1(this).data());
2578
+ var config = $(target).data(DATA_KEY$5) ? 'toggle' : _objectSpread({}, $(target).data(), $(this).data());
2402
2579
 
2403
2580
  if (this.tagName === 'A' || this.tagName === 'AREA') {
2404
2581
  event.preventDefault();
2405
2582
  }
2406
2583
 
2407
- var $target = $$$1(target).one(Event.SHOW, function (showEvent) {
2584
+ var $target = $(target).one(Event$5.SHOW, function (showEvent) {
2408
2585
  if (showEvent.isDefaultPrevented()) {
2409
2586
  // Only register focus restorer if modal will actually get shown
2410
2587
  return;
2411
2588
  }
2412
2589
 
2413
- $target.one(Event.HIDDEN, function () {
2414
- if ($$$1(_this10).is(':visible')) {
2590
+ $target.one(Event$5.HIDDEN, function () {
2591
+ if ($(_this10).is(':visible')) {
2415
2592
  _this10.focus();
2416
2593
  }
2417
2594
  });
2418
2595
  });
2419
2596
 
2420
- Modal._jQueryInterface.call($$$1(target), config, this);
2597
+ Modal._jQueryInterface.call($(target), config, this);
2421
2598
  });
2422
2599
  /**
2423
2600
  * ------------------------------------------------------------------------
@@ -2425,39 +2602,150 @@ var Modal = function ($$$1) {
2425
2602
  * ------------------------------------------------------------------------
2426
2603
  */
2427
2604
 
2428
- $$$1.fn[NAME] = Modal._jQueryInterface;
2429
- $$$1.fn[NAME].Constructor = Modal;
2605
+ $.fn[NAME$5] = Modal._jQueryInterface;
2606
+ $.fn[NAME$5].Constructor = Modal;
2430
2607
 
2431
- $$$1.fn[NAME].noConflict = function () {
2432
- $$$1.fn[NAME] = JQUERY_NO_CONFLICT;
2608
+ $.fn[NAME$5].noConflict = function () {
2609
+ $.fn[NAME$5] = JQUERY_NO_CONFLICT$5;
2433
2610
  return Modal._jQueryInterface;
2434
2611
  };
2435
2612
 
2436
- return Modal;
2437
- }($);
2613
+ /**
2614
+ * --------------------------------------------------------------------------
2615
+ * Bootstrap (v4.3.1): tools/sanitizer.js
2616
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
2617
+ * --------------------------------------------------------------------------
2618
+ */
2619
+ var uriAttrs = ['background', 'cite', 'href', 'itemtype', 'longdesc', 'poster', 'src', 'xlink:href'];
2620
+ var ARIA_ATTRIBUTE_PATTERN = /^aria-[\w-]*$/i;
2621
+ var DefaultWhitelist = {
2622
+ // Global attributes allowed on any supplied element below.
2623
+ '*': ['class', 'dir', 'id', 'lang', 'role', ARIA_ATTRIBUTE_PATTERN],
2624
+ a: ['target', 'href', 'title', 'rel'],
2625
+ area: [],
2626
+ b: [],
2627
+ br: [],
2628
+ col: [],
2629
+ code: [],
2630
+ div: [],
2631
+ em: [],
2632
+ hr: [],
2633
+ h1: [],
2634
+ h2: [],
2635
+ h3: [],
2636
+ h4: [],
2637
+ h5: [],
2638
+ h6: [],
2639
+ i: [],
2640
+ img: ['src', 'alt', 'title', 'width', 'height'],
2641
+ li: [],
2642
+ ol: [],
2643
+ p: [],
2644
+ pre: [],
2645
+ s: [],
2646
+ small: [],
2647
+ span: [],
2648
+ sub: [],
2649
+ sup: [],
2650
+ strong: [],
2651
+ u: [],
2652
+ ul: []
2653
+ /**
2654
+ * A pattern that recognizes a commonly useful subset of URLs that are safe.
2655
+ *
2656
+ * Shoutout to Angular 7 https://github.com/angular/angular/blob/7.2.4/packages/core/src/sanitization/url_sanitizer.ts
2657
+ */
2658
+
2659
+ };
2660
+ var SAFE_URL_PATTERN = /^(?:(?:https?|mailto|ftp|tel|file):|[^&:/?#]*(?:[/?#]|$))/gi;
2661
+ /**
2662
+ * A pattern that matches safe data URLs. Only matches image, video and audio types.
2663
+ *
2664
+ * Shoutout to Angular 7 https://github.com/angular/angular/blob/7.2.4/packages/core/src/sanitization/url_sanitizer.ts
2665
+ */
2666
+
2667
+ var DATA_URL_PATTERN = /^data:(?:image\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\/(?:mpeg|mp4|ogg|webm)|audio\/(?:mp3|oga|ogg|opus));base64,[a-z0-9+/]+=*$/i;
2668
+
2669
+ function allowedAttribute(attr, allowedAttributeList) {
2670
+ var attrName = attr.nodeName.toLowerCase();
2671
+
2672
+ if (allowedAttributeList.indexOf(attrName) !== -1) {
2673
+ if (uriAttrs.indexOf(attrName) !== -1) {
2674
+ return Boolean(attr.nodeValue.match(SAFE_URL_PATTERN) || attr.nodeValue.match(DATA_URL_PATTERN));
2675
+ }
2676
+
2677
+ return true;
2678
+ }
2679
+
2680
+ var regExp = allowedAttributeList.filter(function (attrRegex) {
2681
+ return attrRegex instanceof RegExp;
2682
+ }); // Check if a regular expression validates the attribute.
2683
+
2684
+ for (var i = 0, l = regExp.length; i < l; i++) {
2685
+ if (attrName.match(regExp[i])) {
2686
+ return true;
2687
+ }
2688
+ }
2689
+
2690
+ return false;
2691
+ }
2692
+
2693
+ function sanitizeHtml(unsafeHtml, whiteList, sanitizeFn) {
2694
+ if (unsafeHtml.length === 0) {
2695
+ return unsafeHtml;
2696
+ }
2697
+
2698
+ if (sanitizeFn && typeof sanitizeFn === 'function') {
2699
+ return sanitizeFn(unsafeHtml);
2700
+ }
2701
+
2702
+ var domParser = new window.DOMParser();
2703
+ var createdDocument = domParser.parseFromString(unsafeHtml, 'text/html');
2704
+ var whitelistKeys = Object.keys(whiteList);
2705
+ var elements = [].slice.call(createdDocument.body.querySelectorAll('*'));
2706
+
2707
+ var _loop = function _loop(i, len) {
2708
+ var el = elements[i];
2709
+ var elName = el.nodeName.toLowerCase();
2710
+
2711
+ if (whitelistKeys.indexOf(el.nodeName.toLowerCase()) === -1) {
2712
+ el.parentNode.removeChild(el);
2713
+ return "continue";
2714
+ }
2715
+
2716
+ var attributeList = [].slice.call(el.attributes);
2717
+ var whitelistedAttributes = [].concat(whiteList['*'] || [], whiteList[elName] || []);
2718
+ attributeList.forEach(function (attr) {
2719
+ if (!allowedAttribute(attr, whitelistedAttributes)) {
2720
+ el.removeAttribute(attr.nodeName);
2721
+ }
2722
+ });
2723
+ };
2438
2724
 
2439
- /**
2440
- * --------------------------------------------------------------------------
2441
- * Bootstrap (v4.0.0): tooltip.js
2442
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
2443
- * --------------------------------------------------------------------------
2444
- */
2725
+ for (var i = 0, len = elements.length; i < len; i++) {
2726
+ var _ret = _loop(i, len);
2727
+
2728
+ if (_ret === "continue") continue;
2729
+ }
2730
+
2731
+ return createdDocument.body.innerHTML;
2732
+ }
2445
2733
 
2446
- var Tooltip = function ($$$1) {
2447
2734
  /**
2448
2735
  * ------------------------------------------------------------------------
2449
2736
  * Constants
2450
2737
  * ------------------------------------------------------------------------
2451
2738
  */
2452
- var NAME = 'tooltip';
2453
- var VERSION = '4.0.0';
2454
- var DATA_KEY = 'bs.tooltip';
2455
- var EVENT_KEY = "." + DATA_KEY;
2456
- var JQUERY_NO_CONFLICT = $$$1.fn[NAME];
2457
- var TRANSITION_DURATION = 150;
2739
+
2740
+ var NAME$6 = 'tooltip';
2741
+ var VERSION$6 = '4.3.1';
2742
+ var DATA_KEY$6 = 'bs.tooltip';
2743
+ var EVENT_KEY$6 = "." + DATA_KEY$6;
2744
+ var JQUERY_NO_CONFLICT$6 = $.fn[NAME$6];
2458
2745
  var CLASS_PREFIX = 'bs-tooltip';
2459
2746
  var BSCLS_PREFIX_REGEX = new RegExp("(^|\\s)" + CLASS_PREFIX + "\\S+", 'g');
2460
- var DefaultType = {
2747
+ var DISALLOWED_ATTRIBUTES = ['sanitize', 'whiteList', 'sanitizeFn'];
2748
+ var DefaultType$4 = {
2461
2749
  animation: 'boolean',
2462
2750
  template: 'string',
2463
2751
  title: '(string|element|function)',
@@ -2466,19 +2754,22 @@ var Tooltip = function ($$$1) {
2466
2754
  html: 'boolean',
2467
2755
  selector: '(string|boolean)',
2468
2756
  placement: '(string|function)',
2469
- offset: '(number|string)',
2757
+ offset: '(number|string|function)',
2470
2758
  container: '(string|element|boolean)',
2471
2759
  fallbackPlacement: '(string|array)',
2472
- boundary: '(string|element)'
2760
+ boundary: '(string|element)',
2761
+ sanitize: 'boolean',
2762
+ sanitizeFn: '(null|function)',
2763
+ whiteList: 'object'
2473
2764
  };
2474
- var AttachmentMap = {
2765
+ var AttachmentMap$1 = {
2475
2766
  AUTO: 'auto',
2476
2767
  TOP: 'top',
2477
2768
  RIGHT: 'right',
2478
2769
  BOTTOM: 'bottom',
2479
2770
  LEFT: 'left'
2480
2771
  };
2481
- var Default = {
2772
+ var Default$4 = {
2482
2773
  animation: true,
2483
2774
  template: '<div class="tooltip" role="tooltip">' + '<div class="arrow"></div>' + '<div class="tooltip-inner"></div></div>',
2484
2775
  trigger: 'hover focus',
@@ -2490,29 +2781,32 @@ var Tooltip = function ($$$1) {
2490
2781
  offset: 0,
2491
2782
  container: false,
2492
2783
  fallbackPlacement: 'flip',
2493
- boundary: 'scrollParent'
2784
+ boundary: 'scrollParent',
2785
+ sanitize: true,
2786
+ sanitizeFn: null,
2787
+ whiteList: DefaultWhitelist
2494
2788
  };
2495
2789
  var HoverState = {
2496
2790
  SHOW: 'show',
2497
2791
  OUT: 'out'
2498
2792
  };
2499
- var Event = {
2500
- HIDE: "hide" + EVENT_KEY,
2501
- HIDDEN: "hidden" + EVENT_KEY,
2502
- SHOW: "show" + EVENT_KEY,
2503
- SHOWN: "shown" + EVENT_KEY,
2504
- INSERTED: "inserted" + EVENT_KEY,
2505
- CLICK: "click" + EVENT_KEY,
2506
- FOCUSIN: "focusin" + EVENT_KEY,
2507
- FOCUSOUT: "focusout" + EVENT_KEY,
2508
- MOUSEENTER: "mouseenter" + EVENT_KEY,
2509
- MOUSELEAVE: "mouseleave" + EVENT_KEY
2793
+ var Event$6 = {
2794
+ HIDE: "hide" + EVENT_KEY$6,
2795
+ HIDDEN: "hidden" + EVENT_KEY$6,
2796
+ SHOW: "show" + EVENT_KEY$6,
2797
+ SHOWN: "shown" + EVENT_KEY$6,
2798
+ INSERTED: "inserted" + EVENT_KEY$6,
2799
+ CLICK: "click" + EVENT_KEY$6,
2800
+ FOCUSIN: "focusin" + EVENT_KEY$6,
2801
+ FOCUSOUT: "focusout" + EVENT_KEY$6,
2802
+ MOUSEENTER: "mouseenter" + EVENT_KEY$6,
2803
+ MOUSELEAVE: "mouseleave" + EVENT_KEY$6
2510
2804
  };
2511
- var ClassName = {
2805
+ var ClassName$6 = {
2512
2806
  FADE: 'fade',
2513
2807
  SHOW: 'show'
2514
2808
  };
2515
- var Selector = {
2809
+ var Selector$6 = {
2516
2810
  TOOLTIP: '.tooltip',
2517
2811
  TOOLTIP_INNER: '.tooltip-inner',
2518
2812
  ARROW: '.arrow'
@@ -2539,7 +2833,7 @@ var Tooltip = function ($$$1) {
2539
2833
  * Popper - https://popper.js.org
2540
2834
  */
2541
2835
  if (typeof Popper === 'undefined') {
2542
- throw new TypeError('Bootstrap tooltips require Popper.js (https://popper.js.org)');
2836
+ throw new TypeError('Bootstrap\'s tooltips require Popper.js (https://popper.js.org/)');
2543
2837
  } // private
2544
2838
 
2545
2839
 
@@ -2579,11 +2873,11 @@ var Tooltip = function ($$$1) {
2579
2873
 
2580
2874
  if (event) {
2581
2875
  var dataKey = this.constructor.DATA_KEY;
2582
- var context = $$$1(event.currentTarget).data(dataKey);
2876
+ var context = $(event.currentTarget).data(dataKey);
2583
2877
 
2584
2878
  if (!context) {
2585
2879
  context = new this.constructor(event.currentTarget, this._getDelegateConfig());
2586
- $$$1(event.currentTarget).data(dataKey, context);
2880
+ $(event.currentTarget).data(dataKey, context);
2587
2881
  }
2588
2882
 
2589
2883
  context._activeTrigger.click = !context._activeTrigger.click;
@@ -2594,7 +2888,7 @@ var Tooltip = function ($$$1) {
2594
2888
  context._leave(null, context);
2595
2889
  }
2596
2890
  } else {
2597
- if ($$$1(this.getTipElement()).hasClass(ClassName.SHOW)) {
2891
+ if ($(this.getTipElement()).hasClass(ClassName$6.SHOW)) {
2598
2892
  this._leave(null, this);
2599
2893
 
2600
2894
  return;
@@ -2606,12 +2900,12 @@ var Tooltip = function ($$$1) {
2606
2900
 
2607
2901
  _proto.dispose = function dispose() {
2608
2902
  clearTimeout(this._timeout);
2609
- $$$1.removeData(this.element, this.constructor.DATA_KEY);
2610
- $$$1(this.element).off(this.constructor.EVENT_KEY);
2611
- $$$1(this.element).closest('.modal').off('hide.bs.modal');
2903
+ $.removeData(this.element, this.constructor.DATA_KEY);
2904
+ $(this.element).off(this.constructor.EVENT_KEY);
2905
+ $(this.element).closest('.modal').off('hide.bs.modal');
2612
2906
 
2613
2907
  if (this.tip) {
2614
- $$$1(this.tip).remove();
2908
+ $(this.tip).remove();
2615
2909
  }
2616
2910
 
2617
2911
  this._isEnabled = null;
@@ -2632,15 +2926,16 @@ var Tooltip = function ($$$1) {
2632
2926
  _proto.show = function show() {
2633
2927
  var _this = this;
2634
2928
 
2635
- if ($$$1(this.element).css('display') === 'none') {
2929
+ if ($(this.element).css('display') === 'none') {
2636
2930
  throw new Error('Please use show on visible elements');
2637
2931
  }
2638
2932
 
2639
- var showEvent = $$$1.Event(this.constructor.Event.SHOW);
2933
+ var showEvent = $.Event(this.constructor.Event.SHOW);
2640
2934
 
2641
2935
  if (this.isWithContent() && this._isEnabled) {
2642
- $$$1(this.element).trigger(showEvent);
2643
- var isInTheDom = $$$1.contains(this.element.ownerDocument.documentElement, this.element);
2936
+ $(this.element).trigger(showEvent);
2937
+ var shadowRoot = Util.findShadowRoot(this.element);
2938
+ var isInTheDom = $.contains(shadowRoot !== null ? shadowRoot : this.element.ownerDocument.documentElement, this.element);
2644
2939
 
2645
2940
  if (showEvent.isDefaultPrevented() || !isInTheDom) {
2646
2941
  return;
@@ -2653,7 +2948,7 @@ var Tooltip = function ($$$1) {
2653
2948
  this.setContent();
2654
2949
 
2655
2950
  if (this.config.animation) {
2656
- $$$1(tip).addClass(ClassName.FADE);
2951
+ $(tip).addClass(ClassName$6.FADE);
2657
2952
  }
2658
2953
 
2659
2954
  var placement = typeof this.config.placement === 'function' ? this.config.placement.call(this, tip, this.element) : this.config.placement;
@@ -2661,25 +2956,25 @@ var Tooltip = function ($$$1) {
2661
2956
  var attachment = this._getAttachment(placement);
2662
2957
 
2663
2958
  this.addAttachmentClass(attachment);
2664
- var container = this.config.container === false ? document.body : $$$1(this.config.container);
2665
- $$$1(tip).data(this.constructor.DATA_KEY, this);
2666
2959
 
2667
- if (!$$$1.contains(this.element.ownerDocument.documentElement, this.tip)) {
2668
- $$$1(tip).appendTo(container);
2960
+ var container = this._getContainer();
2961
+
2962
+ $(tip).data(this.constructor.DATA_KEY, this);
2963
+
2964
+ if (!$.contains(this.element.ownerDocument.documentElement, this.tip)) {
2965
+ $(tip).appendTo(container);
2669
2966
  }
2670
2967
 
2671
- $$$1(this.element).trigger(this.constructor.Event.INSERTED);
2968
+ $(this.element).trigger(this.constructor.Event.INSERTED);
2672
2969
  this._popper = new Popper(this.element, tip, {
2673
2970
  placement: attachment,
2674
2971
  modifiers: {
2675
- offset: {
2676
- offset: this.config.offset
2677
- },
2972
+ offset: this._getOffset(),
2678
2973
  flip: {
2679
2974
  behavior: this.config.fallbackPlacement
2680
2975
  },
2681
2976
  arrow: {
2682
- element: Selector.ARROW
2977
+ element: Selector$6.ARROW
2683
2978
  },
2684
2979
  preventOverflow: {
2685
2980
  boundariesElement: this.config.boundary
@@ -2691,16 +2986,16 @@ var Tooltip = function ($$$1) {
2691
2986
  }
2692
2987
  },
2693
2988
  onUpdate: function onUpdate(data) {
2694
- _this._handlePopperPlacementChange(data);
2989
+ return _this._handlePopperPlacementChange(data);
2695
2990
  }
2696
2991
  });
2697
- $$$1(tip).addClass(ClassName.SHOW); // If this is a touch-enabled device we add extra
2992
+ $(tip).addClass(ClassName$6.SHOW); // If this is a touch-enabled device we add extra
2698
2993
  // empty mouseover listeners to the body's immediate children;
2699
2994
  // only needed because of broken event delegation on iOS
2700
2995
  // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html
2701
2996
 
2702
2997
  if ('ontouchstart' in document.documentElement) {
2703
- $$$1('body').children().on('mouseover', null, $$$1.noop);
2998
+ $(document.body).children().on('mouseover', null, $.noop);
2704
2999
  }
2705
3000
 
2706
3001
  var complete = function complete() {
@@ -2710,15 +3005,16 @@ var Tooltip = function ($$$1) {
2710
3005
 
2711
3006
  var prevHoverState = _this._hoverState;
2712
3007
  _this._hoverState = null;
2713
- $$$1(_this.element).trigger(_this.constructor.Event.SHOWN);
3008
+ $(_this.element).trigger(_this.constructor.Event.SHOWN);
2714
3009
 
2715
3010
  if (prevHoverState === HoverState.OUT) {
2716
3011
  _this._leave(null, _this);
2717
3012
  }
2718
3013
  };
2719
3014
 
2720
- if (Util.supportsTransitionEnd() && $$$1(this.tip).hasClass(ClassName.FADE)) {
2721
- $$$1(this.tip).one(Util.TRANSITION_END, complete).emulateTransitionEnd(Tooltip._TRANSITION_DURATION);
3015
+ if ($(this.tip).hasClass(ClassName$6.FADE)) {
3016
+ var transitionDuration = Util.getTransitionDurationFromElement(this.tip);
3017
+ $(this.tip).one(Util.TRANSITION_END, complete).emulateTransitionEnd(transitionDuration);
2722
3018
  } else {
2723
3019
  complete();
2724
3020
  }
@@ -2729,7 +3025,7 @@ var Tooltip = function ($$$1) {
2729
3025
  var _this2 = this;
2730
3026
 
2731
3027
  var tip = this.getTipElement();
2732
- var hideEvent = $$$1.Event(this.constructor.Event.HIDE);
3028
+ var hideEvent = $.Event(this.constructor.Event.HIDE);
2733
3029
 
2734
3030
  var complete = function complete() {
2735
3031
  if (_this2._hoverState !== HoverState.SHOW && tip.parentNode) {
@@ -2740,7 +3036,7 @@ var Tooltip = function ($$$1) {
2740
3036
 
2741
3037
  _this2.element.removeAttribute('aria-describedby');
2742
3038
 
2743
- $$$1(_this2.element).trigger(_this2.constructor.Event.HIDDEN);
3039
+ $(_this2.element).trigger(_this2.constructor.Event.HIDDEN);
2744
3040
 
2745
3041
  if (_this2._popper !== null) {
2746
3042
  _this2._popper.destroy();
@@ -2751,25 +3047,26 @@ var Tooltip = function ($$$1) {
2751
3047
  }
2752
3048
  };
2753
3049
 
2754
- $$$1(this.element).trigger(hideEvent);
3050
+ $(this.element).trigger(hideEvent);
2755
3051
 
2756
3052
  if (hideEvent.isDefaultPrevented()) {
2757
3053
  return;
2758
3054
  }
2759
3055
 
2760
- $$$1(tip).removeClass(ClassName.SHOW); // If this is a touch-enabled device we remove the extra
3056
+ $(tip).removeClass(ClassName$6.SHOW); // If this is a touch-enabled device we remove the extra
2761
3057
  // empty mouseover listeners we added for iOS support
2762
3058
 
2763
3059
  if ('ontouchstart' in document.documentElement) {
2764
- $$$1('body').children().off('mouseover', null, $$$1.noop);
3060
+ $(document.body).children().off('mouseover', null, $.noop);
2765
3061
  }
2766
3062
 
2767
3063
  this._activeTrigger[Trigger.CLICK] = false;
2768
3064
  this._activeTrigger[Trigger.FOCUS] = false;
2769
3065
  this._activeTrigger[Trigger.HOVER] = false;
2770
3066
 
2771
- if (Util.supportsTransitionEnd() && $$$1(this.tip).hasClass(ClassName.FADE)) {
2772
- $$$1(tip).one(Util.TRANSITION_END, complete).emulateTransitionEnd(TRANSITION_DURATION);
3067
+ if ($(this.tip).hasClass(ClassName$6.FADE)) {
3068
+ var transitionDuration = Util.getTransitionDurationFromElement(tip);
3069
+ $(tip).one(Util.TRANSITION_END, complete).emulateTransitionEnd(transitionDuration);
2773
3070
  } else {
2774
3071
  complete();
2775
3072
  }
@@ -2781,42 +3078,50 @@ var Tooltip = function ($$$1) {
2781
3078
  if (this._popper !== null) {
2782
3079
  this._popper.scheduleUpdate();
2783
3080
  }
2784
- }; // Protected
2785
-
3081
+ } // Protected
3082
+ ;
2786
3083
 
2787
3084
  _proto.isWithContent = function isWithContent() {
2788
3085
  return Boolean(this.getTitle());
2789
3086
  };
2790
3087
 
2791
3088
  _proto.addAttachmentClass = function addAttachmentClass(attachment) {
2792
- $$$1(this.getTipElement()).addClass(CLASS_PREFIX + "-" + attachment);
3089
+ $(this.getTipElement()).addClass(CLASS_PREFIX + "-" + attachment);
2793
3090
  };
2794
3091
 
2795
3092
  _proto.getTipElement = function getTipElement() {
2796
- this.tip = this.tip || $$$1(this.config.template)[0];
3093
+ this.tip = this.tip || $(this.config.template)[0];
2797
3094
  return this.tip;
2798
3095
  };
2799
3096
 
2800
3097
  _proto.setContent = function setContent() {
2801
- var $tip = $$$1(this.getTipElement());
2802
- this.setElementContent($tip.find(Selector.TOOLTIP_INNER), this.getTitle());
2803
- $tip.removeClass(ClassName.FADE + " " + ClassName.SHOW);
3098
+ var tip = this.getTipElement();
3099
+ this.setElementContent($(tip.querySelectorAll(Selector$6.TOOLTIP_INNER)), this.getTitle());
3100
+ $(tip).removeClass(ClassName$6.FADE + " " + ClassName$6.SHOW);
2804
3101
  };
2805
3102
 
2806
3103
  _proto.setElementContent = function setElementContent($element, content) {
2807
- var html = this.config.html;
2808
-
2809
3104
  if (typeof content === 'object' && (content.nodeType || content.jquery)) {
2810
3105
  // Content is a DOM node or a jQuery
2811
- if (html) {
2812
- if (!$$$1(content).parent().is($element)) {
3106
+ if (this.config.html) {
3107
+ if (!$(content).parent().is($element)) {
2813
3108
  $element.empty().append(content);
2814
3109
  }
2815
3110
  } else {
2816
- $element.text($$$1(content).text());
3111
+ $element.text($(content).text());
3112
+ }
3113
+
3114
+ return;
3115
+ }
3116
+
3117
+ if (this.config.html) {
3118
+ if (this.config.sanitize) {
3119
+ content = sanitizeHtml(content, this.config.whiteList, this.config.sanitizeFn);
2817
3120
  }
3121
+
3122
+ $element.html(content);
2818
3123
  } else {
2819
- $element[html ? 'html' : 'text'](content);
3124
+ $element.text(content);
2820
3125
  }
2821
3126
  };
2822
3127
 
@@ -2828,39 +3133,69 @@ var Tooltip = function ($$$1) {
2828
3133
  }
2829
3134
 
2830
3135
  return title;
2831
- }; // Private
3136
+ } // Private
3137
+ ;
3138
+
3139
+ _proto._getOffset = function _getOffset() {
3140
+ var _this3 = this;
3141
+
3142
+ var offset = {};
3143
+
3144
+ if (typeof this.config.offset === 'function') {
3145
+ offset.fn = function (data) {
3146
+ data.offsets = _objectSpread({}, data.offsets, _this3.config.offset(data.offsets, _this3.element) || {});
3147
+ return data;
3148
+ };
3149
+ } else {
3150
+ offset.offset = this.config.offset;
3151
+ }
3152
+
3153
+ return offset;
3154
+ };
3155
+
3156
+ _proto._getContainer = function _getContainer() {
3157
+ if (this.config.container === false) {
3158
+ return document.body;
3159
+ }
3160
+
3161
+ if (Util.isElement(this.config.container)) {
3162
+ return $(this.config.container);
3163
+ }
2832
3164
 
3165
+ return $(document).find(this.config.container);
3166
+ };
2833
3167
 
2834
3168
  _proto._getAttachment = function _getAttachment(placement) {
2835
- return AttachmentMap[placement.toUpperCase()];
3169
+ return AttachmentMap$1[placement.toUpperCase()];
2836
3170
  };
2837
3171
 
2838
3172
  _proto._setListeners = function _setListeners() {
2839
- var _this3 = this;
3173
+ var _this4 = this;
2840
3174
 
2841
3175
  var triggers = this.config.trigger.split(' ');
2842
3176
  triggers.forEach(function (trigger) {
2843
3177
  if (trigger === 'click') {
2844
- $$$1(_this3.element).on(_this3.constructor.Event.CLICK, _this3.config.selector, function (event) {
2845
- return _this3.toggle(event);
3178
+ $(_this4.element).on(_this4.constructor.Event.CLICK, _this4.config.selector, function (event) {
3179
+ return _this4.toggle(event);
2846
3180
  });
2847
3181
  } else if (trigger !== Trigger.MANUAL) {
2848
- var eventIn = trigger === Trigger.HOVER ? _this3.constructor.Event.MOUSEENTER : _this3.constructor.Event.FOCUSIN;
2849
- var eventOut = trigger === Trigger.HOVER ? _this3.constructor.Event.MOUSELEAVE : _this3.constructor.Event.FOCUSOUT;
2850
- $$$1(_this3.element).on(eventIn, _this3.config.selector, function (event) {
2851
- return _this3._enter(event);
2852
- }).on(eventOut, _this3.config.selector, function (event) {
2853
- return _this3._leave(event);
3182
+ var eventIn = trigger === Trigger.HOVER ? _this4.constructor.Event.MOUSEENTER : _this4.constructor.Event.FOCUSIN;
3183
+ var eventOut = trigger === Trigger.HOVER ? _this4.constructor.Event.MOUSELEAVE : _this4.constructor.Event.FOCUSOUT;
3184
+ $(_this4.element).on(eventIn, _this4.config.selector, function (event) {
3185
+ return _this4._enter(event);
3186
+ }).on(eventOut, _this4.config.selector, function (event) {
3187
+ return _this4._leave(event);
2854
3188
  });
2855
3189
  }
2856
-
2857
- $$$1(_this3.element).closest('.modal').on('hide.bs.modal', function () {
2858
- return _this3.hide();
2859
- });
3190
+ });
3191
+ $(this.element).closest('.modal').on('hide.bs.modal', function () {
3192
+ if (_this4.element) {
3193
+ _this4.hide();
3194
+ }
2860
3195
  });
2861
3196
 
2862
3197
  if (this.config.selector) {
2863
- this.config = _extends({}, this.config, {
3198
+ this.config = _objectSpread({}, this.config, {
2864
3199
  trigger: 'manual',
2865
3200
  selector: ''
2866
3201
  });
@@ -2880,18 +3215,18 @@ var Tooltip = function ($$$1) {
2880
3215
 
2881
3216
  _proto._enter = function _enter(event, context) {
2882
3217
  var dataKey = this.constructor.DATA_KEY;
2883
- context = context || $$$1(event.currentTarget).data(dataKey);
3218
+ context = context || $(event.currentTarget).data(dataKey);
2884
3219
 
2885
3220
  if (!context) {
2886
3221
  context = new this.constructor(event.currentTarget, this._getDelegateConfig());
2887
- $$$1(event.currentTarget).data(dataKey, context);
3222
+ $(event.currentTarget).data(dataKey, context);
2888
3223
  }
2889
3224
 
2890
3225
  if (event) {
2891
3226
  context._activeTrigger[event.type === 'focusin' ? Trigger.FOCUS : Trigger.HOVER] = true;
2892
3227
  }
2893
3228
 
2894
- if ($$$1(context.getTipElement()).hasClass(ClassName.SHOW) || context._hoverState === HoverState.SHOW) {
3229
+ if ($(context.getTipElement()).hasClass(ClassName$6.SHOW) || context._hoverState === HoverState.SHOW) {
2895
3230
  context._hoverState = HoverState.SHOW;
2896
3231
  return;
2897
3232
  }
@@ -2913,11 +3248,11 @@ var Tooltip = function ($$$1) {
2913
3248
 
2914
3249
  _proto._leave = function _leave(event, context) {
2915
3250
  var dataKey = this.constructor.DATA_KEY;
2916
- context = context || $$$1(event.currentTarget).data(dataKey);
3251
+ context = context || $(event.currentTarget).data(dataKey);
2917
3252
 
2918
3253
  if (!context) {
2919
3254
  context = new this.constructor(event.currentTarget, this._getDelegateConfig());
2920
- $$$1(event.currentTarget).data(dataKey, context);
3255
+ $(event.currentTarget).data(dataKey, context);
2921
3256
  }
2922
3257
 
2923
3258
  if (event) {
@@ -2954,7 +3289,13 @@ var Tooltip = function ($$$1) {
2954
3289
  };
2955
3290
 
2956
3291
  _proto._getConfig = function _getConfig(config) {
2957
- config = _extends({}, this.constructor.Default, $$$1(this.element).data(), config);
3292
+ var dataAttributes = $(this.element).data();
3293
+ Object.keys(dataAttributes).forEach(function (dataAttr) {
3294
+ if (DISALLOWED_ATTRIBUTES.indexOf(dataAttr) !== -1) {
3295
+ delete dataAttributes[dataAttr];
3296
+ }
3297
+ });
3298
+ config = _objectSpread({}, this.constructor.Default, dataAttributes, typeof config === 'object' && config ? config : {});
2958
3299
 
2959
3300
  if (typeof config.delay === 'number') {
2960
3301
  config.delay = {
@@ -2971,7 +3312,12 @@ var Tooltip = function ($$$1) {
2971
3312
  config.content = config.content.toString();
2972
3313
  }
2973
3314
 
2974
- Util.typeCheckConfig(NAME, config, this.constructor.DefaultType);
3315
+ Util.typeCheckConfig(NAME$6, config, this.constructor.DefaultType);
3316
+
3317
+ if (config.sanitize) {
3318
+ config.template = sanitizeHtml(config.template, config.whiteList, config.sanitizeFn);
3319
+ }
3320
+
2975
3321
  return config;
2976
3322
  };
2977
3323
 
@@ -2990,18 +3336,21 @@ var Tooltip = function ($$$1) {
2990
3336
  };
2991
3337
 
2992
3338
  _proto._cleanTipClass = function _cleanTipClass() {
2993
- var $tip = $$$1(this.getTipElement());
3339
+ var $tip = $(this.getTipElement());
2994
3340
  var tabClass = $tip.attr('class').match(BSCLS_PREFIX_REGEX);
2995
3341
 
2996
- if (tabClass !== null && tabClass.length > 0) {
3342
+ if (tabClass !== null && tabClass.length) {
2997
3343
  $tip.removeClass(tabClass.join(''));
2998
3344
  }
2999
3345
  };
3000
3346
 
3001
- _proto._handlePopperPlacementChange = function _handlePopperPlacementChange(data) {
3347
+ _proto._handlePopperPlacementChange = function _handlePopperPlacementChange(popperData) {
3348
+ var popperInstance = popperData.instance;
3349
+ this.tip = popperInstance.popper;
3350
+
3002
3351
  this._cleanTipClass();
3003
3352
 
3004
- this.addAttachmentClass(this._getAttachment(data.placement));
3353
+ this.addAttachmentClass(this._getAttachment(popperData.placement));
3005
3354
  };
3006
3355
 
3007
3356
  _proto._fixTransition = function _fixTransition() {
@@ -3012,17 +3361,17 @@ var Tooltip = function ($$$1) {
3012
3361
  return;
3013
3362
  }
3014
3363
 
3015
- $$$1(tip).removeClass(ClassName.FADE);
3364
+ $(tip).removeClass(ClassName$6.FADE);
3016
3365
  this.config.animation = false;
3017
3366
  this.hide();
3018
3367
  this.show();
3019
3368
  this.config.animation = initConfigAnimation;
3020
- }; // Static
3021
-
3369
+ } // Static
3370
+ ;
3022
3371
 
3023
3372
  Tooltip._jQueryInterface = function _jQueryInterface(config) {
3024
3373
  return this.each(function () {
3025
- var data = $$$1(this).data(DATA_KEY);
3374
+ var data = $(this).data(DATA_KEY$6);
3026
3375
 
3027
3376
  var _config = typeof config === 'object' && config;
3028
3377
 
@@ -3032,7 +3381,7 @@ var Tooltip = function ($$$1) {
3032
3381
 
3033
3382
  if (!data) {
3034
3383
  data = new Tooltip(this, _config);
3035
- $$$1(this).data(DATA_KEY, data);
3384
+ $(this).data(DATA_KEY$6, data);
3036
3385
  }
3037
3386
 
3038
3387
  if (typeof config === 'string') {
@@ -3048,39 +3397,40 @@ var Tooltip = function ($$$1) {
3048
3397
  _createClass(Tooltip, null, [{
3049
3398
  key: "VERSION",
3050
3399
  get: function get() {
3051
- return VERSION;
3400
+ return VERSION$6;
3052
3401
  }
3053
3402
  }, {
3054
3403
  key: "Default",
3055
3404
  get: function get() {
3056
- return Default;
3405
+ return Default$4;
3057
3406
  }
3058
3407
  }, {
3059
3408
  key: "NAME",
3060
3409
  get: function get() {
3061
- return NAME;
3410
+ return NAME$6;
3062
3411
  }
3063
3412
  }, {
3064
3413
  key: "DATA_KEY",
3065
3414
  get: function get() {
3066
- return DATA_KEY;
3415
+ return DATA_KEY$6;
3067
3416
  }
3068
3417
  }, {
3069
3418
  key: "Event",
3070
3419
  get: function get() {
3071
- return Event;
3420
+ return Event$6;
3072
3421
  }
3073
3422
  }, {
3074
3423
  key: "EVENT_KEY",
3075
3424
  get: function get() {
3076
- return EVENT_KEY;
3425
+ return EVENT_KEY$6;
3077
3426
  }
3078
3427
  }, {
3079
3428
  key: "DefaultType",
3080
3429
  get: function get() {
3081
- return DefaultType;
3430
+ return DefaultType$4;
3082
3431
  }
3083
3432
  }]);
3433
+
3084
3434
  return Tooltip;
3085
3435
  }();
3086
3436
  /**
@@ -3090,65 +3440,58 @@ var Tooltip = function ($$$1) {
3090
3440
  */
3091
3441
 
3092
3442
 
3093
- $$$1.fn[NAME] = Tooltip._jQueryInterface;
3094
- $$$1.fn[NAME].Constructor = Tooltip;
3443
+ $.fn[NAME$6] = Tooltip._jQueryInterface;
3444
+ $.fn[NAME$6].Constructor = Tooltip;
3095
3445
 
3096
- $$$1.fn[NAME].noConflict = function () {
3097
- $$$1.fn[NAME] = JQUERY_NO_CONFLICT;
3446
+ $.fn[NAME$6].noConflict = function () {
3447
+ $.fn[NAME$6] = JQUERY_NO_CONFLICT$6;
3098
3448
  return Tooltip._jQueryInterface;
3099
3449
  };
3100
3450
 
3101
- return Tooltip;
3102
- }($, Popper);
3103
-
3104
- /**
3105
- * --------------------------------------------------------------------------
3106
- * Bootstrap (v4.0.0): popover.js
3107
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
3108
- * --------------------------------------------------------------------------
3109
- */
3110
-
3111
- var Popover = function ($$$1) {
3112
3451
  /**
3113
3452
  * ------------------------------------------------------------------------
3114
3453
  * Constants
3115
3454
  * ------------------------------------------------------------------------
3116
3455
  */
3117
- var NAME = 'popover';
3118
- var VERSION = '4.0.0';
3119
- var DATA_KEY = 'bs.popover';
3120
- var EVENT_KEY = "." + DATA_KEY;
3121
- var JQUERY_NO_CONFLICT = $$$1.fn[NAME];
3122
- var CLASS_PREFIX = 'bs-popover';
3123
- var BSCLS_PREFIX_REGEX = new RegExp("(^|\\s)" + CLASS_PREFIX + "\\S+", 'g');
3124
- var Default = _extends({}, Tooltip.Default, {
3456
+
3457
+ var NAME$7 = 'popover';
3458
+ var VERSION$7 = '4.3.1';
3459
+ var DATA_KEY$7 = 'bs.popover';
3460
+ var EVENT_KEY$7 = "." + DATA_KEY$7;
3461
+ var JQUERY_NO_CONFLICT$7 = $.fn[NAME$7];
3462
+ var CLASS_PREFIX$1 = 'bs-popover';
3463
+ var BSCLS_PREFIX_REGEX$1 = new RegExp("(^|\\s)" + CLASS_PREFIX$1 + "\\S+", 'g');
3464
+
3465
+ var Default$5 = _objectSpread({}, Tooltip.Default, {
3125
3466
  placement: 'right',
3126
3467
  trigger: 'click',
3127
3468
  content: '',
3128
3469
  template: '<div class="popover" role="tooltip">' + '<div class="arrow"></div>' + '<h3 class="popover-header"></h3>' + '<div class="popover-body"></div></div>'
3129
3470
  });
3130
- var DefaultType = _extends({}, Tooltip.DefaultType, {
3471
+
3472
+ var DefaultType$5 = _objectSpread({}, Tooltip.DefaultType, {
3131
3473
  content: '(string|element|function)'
3132
3474
  });
3133
- var ClassName = {
3475
+
3476
+ var ClassName$7 = {
3134
3477
  FADE: 'fade',
3135
3478
  SHOW: 'show'
3136
3479
  };
3137
- var Selector = {
3480
+ var Selector$7 = {
3138
3481
  TITLE: '.popover-header',
3139
3482
  CONTENT: '.popover-body'
3140
3483
  };
3141
- var Event = {
3142
- HIDE: "hide" + EVENT_KEY,
3143
- HIDDEN: "hidden" + EVENT_KEY,
3144
- SHOW: "show" + EVENT_KEY,
3145
- SHOWN: "shown" + EVENT_KEY,
3146
- INSERTED: "inserted" + EVENT_KEY,
3147
- CLICK: "click" + EVENT_KEY,
3148
- FOCUSIN: "focusin" + EVENT_KEY,
3149
- FOCUSOUT: "focusout" + EVENT_KEY,
3150
- MOUSEENTER: "mouseenter" + EVENT_KEY,
3151
- MOUSELEAVE: "mouseleave" + EVENT_KEY
3484
+ var Event$7 = {
3485
+ HIDE: "hide" + EVENT_KEY$7,
3486
+ HIDDEN: "hidden" + EVENT_KEY$7,
3487
+ SHOW: "show" + EVENT_KEY$7,
3488
+ SHOWN: "shown" + EVENT_KEY$7,
3489
+ INSERTED: "inserted" + EVENT_KEY$7,
3490
+ CLICK: "click" + EVENT_KEY$7,
3491
+ FOCUSIN: "focusin" + EVENT_KEY$7,
3492
+ FOCUSOUT: "focusout" + EVENT_KEY$7,
3493
+ MOUSEENTER: "mouseenter" + EVENT_KEY$7,
3494
+ MOUSELEAVE: "mouseleave" + EVENT_KEY$7
3152
3495
  /**
3153
3496
  * ------------------------------------------------------------------------
3154
3497
  * Class Definition
@@ -3174,18 +3517,18 @@ var Popover = function ($$$1) {
3174
3517
  };
3175
3518
 
3176
3519
  _proto.addAttachmentClass = function addAttachmentClass(attachment) {
3177
- $$$1(this.getTipElement()).addClass(CLASS_PREFIX + "-" + attachment);
3520
+ $(this.getTipElement()).addClass(CLASS_PREFIX$1 + "-" + attachment);
3178
3521
  };
3179
3522
 
3180
3523
  _proto.getTipElement = function getTipElement() {
3181
- this.tip = this.tip || $$$1(this.config.template)[0];
3524
+ this.tip = this.tip || $(this.config.template)[0];
3182
3525
  return this.tip;
3183
3526
  };
3184
3527
 
3185
3528
  _proto.setContent = function setContent() {
3186
- var $tip = $$$1(this.getTipElement()); // We use append for html objects to maintain js events
3529
+ var $tip = $(this.getTipElement()); // We use append for html objects to maintain js events
3187
3530
 
3188
- this.setElementContent($tip.find(Selector.TITLE), this.getTitle());
3531
+ this.setElementContent($tip.find(Selector$7.TITLE), this.getTitle());
3189
3532
 
3190
3533
  var content = this._getContent();
3191
3534
 
@@ -3193,38 +3536,38 @@ var Popover = function ($$$1) {
3193
3536
  content = content.call(this.element);
3194
3537
  }
3195
3538
 
3196
- this.setElementContent($tip.find(Selector.CONTENT), content);
3197
- $tip.removeClass(ClassName.FADE + " " + ClassName.SHOW);
3198
- }; // Private
3199
-
3539
+ this.setElementContent($tip.find(Selector$7.CONTENT), content);
3540
+ $tip.removeClass(ClassName$7.FADE + " " + ClassName$7.SHOW);
3541
+ } // Private
3542
+ ;
3200
3543
 
3201
3544
  _proto._getContent = function _getContent() {
3202
3545
  return this.element.getAttribute('data-content') || this.config.content;
3203
3546
  };
3204
3547
 
3205
3548
  _proto._cleanTipClass = function _cleanTipClass() {
3206
- var $tip = $$$1(this.getTipElement());
3207
- var tabClass = $tip.attr('class').match(BSCLS_PREFIX_REGEX);
3549
+ var $tip = $(this.getTipElement());
3550
+ var tabClass = $tip.attr('class').match(BSCLS_PREFIX_REGEX$1);
3208
3551
 
3209
3552
  if (tabClass !== null && tabClass.length > 0) {
3210
3553
  $tip.removeClass(tabClass.join(''));
3211
3554
  }
3212
- }; // Static
3213
-
3555
+ } // Static
3556
+ ;
3214
3557
 
3215
3558
  Popover._jQueryInterface = function _jQueryInterface(config) {
3216
3559
  return this.each(function () {
3217
- var data = $$$1(this).data(DATA_KEY);
3560
+ var data = $(this).data(DATA_KEY$7);
3218
3561
 
3219
3562
  var _config = typeof config === 'object' ? config : null;
3220
3563
 
3221
- if (!data && /destroy|hide/.test(config)) {
3564
+ if (!data && /dispose|hide/.test(config)) {
3222
3565
  return;
3223
3566
  }
3224
3567
 
3225
3568
  if (!data) {
3226
3569
  data = new Popover(this, _config);
3227
- $$$1(this).data(DATA_KEY, data);
3570
+ $(this).data(DATA_KEY$7, data);
3228
3571
  }
3229
3572
 
3230
3573
  if (typeof config === 'string') {
@@ -3241,39 +3584,40 @@ var Popover = function ($$$1) {
3241
3584
  key: "VERSION",
3242
3585
  // Getters
3243
3586
  get: function get() {
3244
- return VERSION;
3587
+ return VERSION$7;
3245
3588
  }
3246
3589
  }, {
3247
3590
  key: "Default",
3248
3591
  get: function get() {
3249
- return Default;
3592
+ return Default$5;
3250
3593
  }
3251
3594
  }, {
3252
3595
  key: "NAME",
3253
3596
  get: function get() {
3254
- return NAME;
3597
+ return NAME$7;
3255
3598
  }
3256
3599
  }, {
3257
3600
  key: "DATA_KEY",
3258
3601
  get: function get() {
3259
- return DATA_KEY;
3602
+ return DATA_KEY$7;
3260
3603
  }
3261
3604
  }, {
3262
3605
  key: "Event",
3263
3606
  get: function get() {
3264
- return Event;
3607
+ return Event$7;
3265
3608
  }
3266
3609
  }, {
3267
3610
  key: "EVENT_KEY",
3268
3611
  get: function get() {
3269
- return EVENT_KEY;
3612
+ return EVENT_KEY$7;
3270
3613
  }
3271
3614
  }, {
3272
3615
  key: "DefaultType",
3273
3616
  get: function get() {
3274
- return DefaultType;
3617
+ return DefaultType$5;
3275
3618
  }
3276
3619
  }]);
3620
+
3277
3621
  return Popover;
3278
3622
  }(Tooltip);
3279
3623
  /**
@@ -3283,57 +3627,47 @@ var Popover = function ($$$1) {
3283
3627
  */
3284
3628
 
3285
3629
 
3286
- $$$1.fn[NAME] = Popover._jQueryInterface;
3287
- $$$1.fn[NAME].Constructor = Popover;
3630
+ $.fn[NAME$7] = Popover._jQueryInterface;
3631
+ $.fn[NAME$7].Constructor = Popover;
3288
3632
 
3289
- $$$1.fn[NAME].noConflict = function () {
3290
- $$$1.fn[NAME] = JQUERY_NO_CONFLICT;
3633
+ $.fn[NAME$7].noConflict = function () {
3634
+ $.fn[NAME$7] = JQUERY_NO_CONFLICT$7;
3291
3635
  return Popover._jQueryInterface;
3292
3636
  };
3293
3637
 
3294
- return Popover;
3295
- }($);
3296
-
3297
- /**
3298
- * --------------------------------------------------------------------------
3299
- * Bootstrap (v4.0.0): scrollspy.js
3300
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
3301
- * --------------------------------------------------------------------------
3302
- */
3303
-
3304
- var ScrollSpy = function ($$$1) {
3305
3638
  /**
3306
3639
  * ------------------------------------------------------------------------
3307
3640
  * Constants
3308
3641
  * ------------------------------------------------------------------------
3309
3642
  */
3310
- var NAME = 'scrollspy';
3311
- var VERSION = '4.0.0';
3312
- var DATA_KEY = 'bs.scrollspy';
3313
- var EVENT_KEY = "." + DATA_KEY;
3314
- var DATA_API_KEY = '.data-api';
3315
- var JQUERY_NO_CONFLICT = $$$1.fn[NAME];
3316
- var Default = {
3643
+
3644
+ var NAME$8 = 'scrollspy';
3645
+ var VERSION$8 = '4.3.1';
3646
+ var DATA_KEY$8 = 'bs.scrollspy';
3647
+ var EVENT_KEY$8 = "." + DATA_KEY$8;
3648
+ var DATA_API_KEY$6 = '.data-api';
3649
+ var JQUERY_NO_CONFLICT$8 = $.fn[NAME$8];
3650
+ var Default$6 = {
3317
3651
  offset: 10,
3318
3652
  method: 'auto',
3319
3653
  target: ''
3320
3654
  };
3321
- var DefaultType = {
3655
+ var DefaultType$6 = {
3322
3656
  offset: 'number',
3323
3657
  method: 'string',
3324
3658
  target: '(string|element)'
3325
3659
  };
3326
- var Event = {
3327
- ACTIVATE: "activate" + EVENT_KEY,
3328
- SCROLL: "scroll" + EVENT_KEY,
3329
- LOAD_DATA_API: "load" + EVENT_KEY + DATA_API_KEY
3660
+ var Event$8 = {
3661
+ ACTIVATE: "activate" + EVENT_KEY$8,
3662
+ SCROLL: "scroll" + EVENT_KEY$8,
3663
+ LOAD_DATA_API: "load" + EVENT_KEY$8 + DATA_API_KEY$6
3330
3664
  };
3331
- var ClassName = {
3665
+ var ClassName$8 = {
3332
3666
  DROPDOWN_ITEM: 'dropdown-item',
3333
3667
  DROPDOWN_MENU: 'dropdown-menu',
3334
3668
  ACTIVE: 'active'
3335
3669
  };
3336
- var Selector = {
3670
+ var Selector$8 = {
3337
3671
  DATA_SPY: '[data-spy="scroll"]',
3338
3672
  ACTIVE: '.active',
3339
3673
  NAV_LIST_GROUP: '.nav, .list-group',
@@ -3364,12 +3698,12 @@ var ScrollSpy = function ($$$1) {
3364
3698
  this._element = element;
3365
3699
  this._scrollElement = element.tagName === 'BODY' ? window : element;
3366
3700
  this._config = this._getConfig(config);
3367
- this._selector = this._config.target + " " + Selector.NAV_LINKS + "," + (this._config.target + " " + Selector.LIST_ITEMS + ",") + (this._config.target + " " + Selector.DROPDOWN_ITEMS);
3701
+ this._selector = this._config.target + " " + Selector$8.NAV_LINKS + "," + (this._config.target + " " + Selector$8.LIST_ITEMS + ",") + (this._config.target + " " + Selector$8.DROPDOWN_ITEMS);
3368
3702
  this._offsets = [];
3369
3703
  this._targets = [];
3370
3704
  this._activeTarget = null;
3371
3705
  this._scrollHeight = 0;
3372
- $$$1(this._scrollElement).on(Event.SCROLL, function (event) {
3706
+ $(this._scrollElement).on(Event$8.SCROLL, function (event) {
3373
3707
  return _this._process(event);
3374
3708
  });
3375
3709
  this.refresh();
@@ -3390,13 +3724,13 @@ var ScrollSpy = function ($$$1) {
3390
3724
  this._offsets = [];
3391
3725
  this._targets = [];
3392
3726
  this._scrollHeight = this._getScrollHeight();
3393
- var targets = $$$1.makeArray($$$1(this._selector));
3727
+ var targets = [].slice.call(document.querySelectorAll(this._selector));
3394
3728
  targets.map(function (element) {
3395
3729
  var target;
3396
3730
  var targetSelector = Util.getSelectorFromElement(element);
3397
3731
 
3398
3732
  if (targetSelector) {
3399
- target = $$$1(targetSelector)[0];
3733
+ target = document.querySelector(targetSelector);
3400
3734
  }
3401
3735
 
3402
3736
  if (target) {
@@ -3404,7 +3738,7 @@ var ScrollSpy = function ($$$1) {
3404
3738
 
3405
3739
  if (targetBCR.width || targetBCR.height) {
3406
3740
  // TODO (fat): remove sketch reliance on jQuery position/offset
3407
- return [$$$1(target)[offsetMethod]().top + offsetBase, targetSelector];
3741
+ return [$(target)[offsetMethod]().top + offsetBase, targetSelector];
3408
3742
  }
3409
3743
  }
3410
3744
 
@@ -3421,8 +3755,8 @@ var ScrollSpy = function ($$$1) {
3421
3755
  };
3422
3756
 
3423
3757
  _proto.dispose = function dispose() {
3424
- $$$1.removeData(this._element, DATA_KEY);
3425
- $$$1(this._scrollElement).off(EVENT_KEY);
3758
+ $.removeData(this._element, DATA_KEY$8);
3759
+ $(this._scrollElement).off(EVENT_KEY$8);
3426
3760
  this._element = null;
3427
3761
  this._scrollElement = null;
3428
3762
  this._config = null;
@@ -3431,24 +3765,24 @@ var ScrollSpy = function ($$$1) {
3431
3765
  this._targets = null;
3432
3766
  this._activeTarget = null;
3433
3767
  this._scrollHeight = null;
3434
- }; // Private
3435
-
3768
+ } // Private
3769
+ ;
3436
3770
 
3437
3771
  _proto._getConfig = function _getConfig(config) {
3438
- config = _extends({}, Default, config);
3772
+ config = _objectSpread({}, Default$6, typeof config === 'object' && config ? config : {});
3439
3773
 
3440
3774
  if (typeof config.target !== 'string') {
3441
- var id = $$$1(config.target).attr('id');
3775
+ var id = $(config.target).attr('id');
3442
3776
 
3443
3777
  if (!id) {
3444
- id = Util.getUID(NAME);
3445
- $$$1(config.target).attr('id', id);
3778
+ id = Util.getUID(NAME$8);
3779
+ $(config.target).attr('id', id);
3446
3780
  }
3447
3781
 
3448
3782
  config.target = "#" + id;
3449
3783
  }
3450
3784
 
3451
- Util.typeCheckConfig(NAME, config, DefaultType);
3785
+ Util.typeCheckConfig(NAME$8, config, DefaultType$6);
3452
3786
  return config;
3453
3787
  };
3454
3788
 
@@ -3493,7 +3827,9 @@ var ScrollSpy = function ($$$1) {
3493
3827
  return;
3494
3828
  }
3495
3829
 
3496
- for (var i = this._offsets.length; i--;) {
3830
+ var offsetLength = this._offsets.length;
3831
+
3832
+ for (var i = offsetLength; i--;) {
3497
3833
  var isActiveTarget = this._activeTarget !== this._targets[i] && scrollTop >= this._offsets[i] && (typeof this._offsets[i + 1] === 'undefined' || scrollTop < this._offsets[i + 1]);
3498
3834
 
3499
3835
  if (isActiveTarget) {
@@ -3507,46 +3843,48 @@ var ScrollSpy = function ($$$1) {
3507
3843
 
3508
3844
  this._clear();
3509
3845
 
3510
- var queries = this._selector.split(','); // eslint-disable-next-line arrow-body-style
3511
-
3512
-
3513
- queries = queries.map(function (selector) {
3514
- return selector + "[data-target=\"" + target + "\"]," + (selector + "[href=\"" + target + "\"]");
3846
+ var queries = this._selector.split(',').map(function (selector) {
3847
+ return selector + "[data-target=\"" + target + "\"]," + selector + "[href=\"" + target + "\"]";
3515
3848
  });
3516
- var $link = $$$1(queries.join(','));
3517
3849
 
3518
- if ($link.hasClass(ClassName.DROPDOWN_ITEM)) {
3519
- $link.closest(Selector.DROPDOWN).find(Selector.DROPDOWN_TOGGLE).addClass(ClassName.ACTIVE);
3520
- $link.addClass(ClassName.ACTIVE);
3850
+ var $link = $([].slice.call(document.querySelectorAll(queries.join(','))));
3851
+
3852
+ if ($link.hasClass(ClassName$8.DROPDOWN_ITEM)) {
3853
+ $link.closest(Selector$8.DROPDOWN).find(Selector$8.DROPDOWN_TOGGLE).addClass(ClassName$8.ACTIVE);
3854
+ $link.addClass(ClassName$8.ACTIVE);
3521
3855
  } else {
3522
3856
  // Set triggered link as active
3523
- $link.addClass(ClassName.ACTIVE); // Set triggered links parents as active
3857
+ $link.addClass(ClassName$8.ACTIVE); // Set triggered links parents as active
3524
3858
  // With both <ul> and <nav> markup a parent is the previous sibling of any nav ancestor
3525
3859
 
3526
- $link.parents(Selector.NAV_LIST_GROUP).prev(Selector.NAV_LINKS + ", " + Selector.LIST_ITEMS).addClass(ClassName.ACTIVE); // Handle special case when .nav-link is inside .nav-item
3860
+ $link.parents(Selector$8.NAV_LIST_GROUP).prev(Selector$8.NAV_LINKS + ", " + Selector$8.LIST_ITEMS).addClass(ClassName$8.ACTIVE); // Handle special case when .nav-link is inside .nav-item
3527
3861
 
3528
- $link.parents(Selector.NAV_LIST_GROUP).prev(Selector.NAV_ITEMS).children(Selector.NAV_LINKS).addClass(ClassName.ACTIVE);
3862
+ $link.parents(Selector$8.NAV_LIST_GROUP).prev(Selector$8.NAV_ITEMS).children(Selector$8.NAV_LINKS).addClass(ClassName$8.ACTIVE);
3529
3863
  }
3530
3864
 
3531
- $$$1(this._scrollElement).trigger(Event.ACTIVATE, {
3865
+ $(this._scrollElement).trigger(Event$8.ACTIVATE, {
3532
3866
  relatedTarget: target
3533
3867
  });
3534
3868
  };
3535
3869
 
3536
3870
  _proto._clear = function _clear() {
3537
- $$$1(this._selector).filter(Selector.ACTIVE).removeClass(ClassName.ACTIVE);
3538
- }; // Static
3539
-
3871
+ [].slice.call(document.querySelectorAll(this._selector)).filter(function (node) {
3872
+ return node.classList.contains(ClassName$8.ACTIVE);
3873
+ }).forEach(function (node) {
3874
+ return node.classList.remove(ClassName$8.ACTIVE);
3875
+ });
3876
+ } // Static
3877
+ ;
3540
3878
 
3541
3879
  ScrollSpy._jQueryInterface = function _jQueryInterface(config) {
3542
3880
  return this.each(function () {
3543
- var data = $$$1(this).data(DATA_KEY);
3881
+ var data = $(this).data(DATA_KEY$8);
3544
3882
 
3545
3883
  var _config = typeof config === 'object' && config;
3546
3884
 
3547
3885
  if (!data) {
3548
3886
  data = new ScrollSpy(this, _config);
3549
- $$$1(this).data(DATA_KEY, data);
3887
+ $(this).data(DATA_KEY$8, data);
3550
3888
  }
3551
3889
 
3552
3890
  if (typeof config === 'string') {
@@ -3562,14 +3900,15 @@ var ScrollSpy = function ($$$1) {
3562
3900
  _createClass(ScrollSpy, null, [{
3563
3901
  key: "VERSION",
3564
3902
  get: function get() {
3565
- return VERSION;
3903
+ return VERSION$8;
3566
3904
  }
3567
3905
  }, {
3568
3906
  key: "Default",
3569
3907
  get: function get() {
3570
- return Default;
3908
+ return Default$6;
3571
3909
  }
3572
3910
  }]);
3911
+
3573
3912
  return ScrollSpy;
3574
3913
  }();
3575
3914
  /**
@@ -3579,11 +3918,12 @@ var ScrollSpy = function ($$$1) {
3579
3918
  */
3580
3919
 
3581
3920
 
3582
- $$$1(window).on(Event.LOAD_DATA_API, function () {
3583
- var scrollSpys = $$$1.makeArray($$$1(Selector.DATA_SPY));
3921
+ $(window).on(Event$8.LOAD_DATA_API, function () {
3922
+ var scrollSpys = [].slice.call(document.querySelectorAll(Selector$8.DATA_SPY));
3923
+ var scrollSpysLength = scrollSpys.length;
3584
3924
 
3585
- for (var i = scrollSpys.length; i--;) {
3586
- var $spy = $$$1(scrollSpys[i]);
3925
+ for (var i = scrollSpysLength; i--;) {
3926
+ var $spy = $(scrollSpys[i]);
3587
3927
 
3588
3928
  ScrollSpy._jQueryInterface.call($spy, $spy.data());
3589
3929
  }
@@ -3594,52 +3934,41 @@ var ScrollSpy = function ($$$1) {
3594
3934
  * ------------------------------------------------------------------------
3595
3935
  */
3596
3936
 
3597
- $$$1.fn[NAME] = ScrollSpy._jQueryInterface;
3598
- $$$1.fn[NAME].Constructor = ScrollSpy;
3937
+ $.fn[NAME$8] = ScrollSpy._jQueryInterface;
3938
+ $.fn[NAME$8].Constructor = ScrollSpy;
3599
3939
 
3600
- $$$1.fn[NAME].noConflict = function () {
3601
- $$$1.fn[NAME] = JQUERY_NO_CONFLICT;
3940
+ $.fn[NAME$8].noConflict = function () {
3941
+ $.fn[NAME$8] = JQUERY_NO_CONFLICT$8;
3602
3942
  return ScrollSpy._jQueryInterface;
3603
3943
  };
3604
3944
 
3605
- return ScrollSpy;
3606
- }($);
3607
-
3608
- /**
3609
- * --------------------------------------------------------------------------
3610
- * Bootstrap (v4.0.0): tab.js
3611
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
3612
- * --------------------------------------------------------------------------
3613
- */
3614
-
3615
- var Tab = function ($$$1) {
3616
3945
  /**
3617
3946
  * ------------------------------------------------------------------------
3618
3947
  * Constants
3619
3948
  * ------------------------------------------------------------------------
3620
3949
  */
3621
- var NAME = 'tab';
3622
- var VERSION = '4.0.0';
3623
- var DATA_KEY = 'bs.tab';
3624
- var EVENT_KEY = "." + DATA_KEY;
3625
- var DATA_API_KEY = '.data-api';
3626
- var JQUERY_NO_CONFLICT = $$$1.fn[NAME];
3627
- var TRANSITION_DURATION = 150;
3628
- var Event = {
3629
- HIDE: "hide" + EVENT_KEY,
3630
- HIDDEN: "hidden" + EVENT_KEY,
3631
- SHOW: "show" + EVENT_KEY,
3632
- SHOWN: "shown" + EVENT_KEY,
3633
- CLICK_DATA_API: "click" + EVENT_KEY + DATA_API_KEY
3950
+
3951
+ var NAME$9 = 'tab';
3952
+ var VERSION$9 = '4.3.1';
3953
+ var DATA_KEY$9 = 'bs.tab';
3954
+ var EVENT_KEY$9 = "." + DATA_KEY$9;
3955
+ var DATA_API_KEY$7 = '.data-api';
3956
+ var JQUERY_NO_CONFLICT$9 = $.fn[NAME$9];
3957
+ var Event$9 = {
3958
+ HIDE: "hide" + EVENT_KEY$9,
3959
+ HIDDEN: "hidden" + EVENT_KEY$9,
3960
+ SHOW: "show" + EVENT_KEY$9,
3961
+ SHOWN: "shown" + EVENT_KEY$9,
3962
+ CLICK_DATA_API: "click" + EVENT_KEY$9 + DATA_API_KEY$7
3634
3963
  };
3635
- var ClassName = {
3964
+ var ClassName$9 = {
3636
3965
  DROPDOWN_MENU: 'dropdown-menu',
3637
3966
  ACTIVE: 'active',
3638
3967
  DISABLED: 'disabled',
3639
3968
  FADE: 'fade',
3640
3969
  SHOW: 'show'
3641
3970
  };
3642
- var Selector = {
3971
+ var Selector$9 = {
3643
3972
  DROPDOWN: '.dropdown',
3644
3973
  NAV_LIST_GROUP: '.nav, .list-group',
3645
3974
  ACTIVE: '.active',
@@ -3669,53 +3998,53 @@ var Tab = function ($$$1) {
3669
3998
  _proto.show = function show() {
3670
3999
  var _this = this;
3671
4000
 
3672
- if (this._element.parentNode && this._element.parentNode.nodeType === Node.ELEMENT_NODE && $$$1(this._element).hasClass(ClassName.ACTIVE) || $$$1(this._element).hasClass(ClassName.DISABLED)) {
4001
+ if (this._element.parentNode && this._element.parentNode.nodeType === Node.ELEMENT_NODE && $(this._element).hasClass(ClassName$9.ACTIVE) || $(this._element).hasClass(ClassName$9.DISABLED)) {
3673
4002
  return;
3674
4003
  }
3675
4004
 
3676
4005
  var target;
3677
4006
  var previous;
3678
- var listElement = $$$1(this._element).closest(Selector.NAV_LIST_GROUP)[0];
4007
+ var listElement = $(this._element).closest(Selector$9.NAV_LIST_GROUP)[0];
3679
4008
  var selector = Util.getSelectorFromElement(this._element);
3680
4009
 
3681
4010
  if (listElement) {
3682
- var itemSelector = listElement.nodeName === 'UL' ? Selector.ACTIVE_UL : Selector.ACTIVE;
3683
- previous = $$$1.makeArray($$$1(listElement).find(itemSelector));
4011
+ var itemSelector = listElement.nodeName === 'UL' || listElement.nodeName === 'OL' ? Selector$9.ACTIVE_UL : Selector$9.ACTIVE;
4012
+ previous = $.makeArray($(listElement).find(itemSelector));
3684
4013
  previous = previous[previous.length - 1];
3685
4014
  }
3686
4015
 
3687
- var hideEvent = $$$1.Event(Event.HIDE, {
4016
+ var hideEvent = $.Event(Event$9.HIDE, {
3688
4017
  relatedTarget: this._element
3689
4018
  });
3690
- var showEvent = $$$1.Event(Event.SHOW, {
4019
+ var showEvent = $.Event(Event$9.SHOW, {
3691
4020
  relatedTarget: previous
3692
4021
  });
3693
4022
 
3694
4023
  if (previous) {
3695
- $$$1(previous).trigger(hideEvent);
4024
+ $(previous).trigger(hideEvent);
3696
4025
  }
3697
4026
 
3698
- $$$1(this._element).trigger(showEvent);
4027
+ $(this._element).trigger(showEvent);
3699
4028
 
3700
4029
  if (showEvent.isDefaultPrevented() || hideEvent.isDefaultPrevented()) {
3701
4030
  return;
3702
4031
  }
3703
4032
 
3704
4033
  if (selector) {
3705
- target = $$$1(selector)[0];
4034
+ target = document.querySelector(selector);
3706
4035
  }
3707
4036
 
3708
4037
  this._activate(this._element, listElement);
3709
4038
 
3710
4039
  var complete = function complete() {
3711
- var hiddenEvent = $$$1.Event(Event.HIDDEN, {
4040
+ var hiddenEvent = $.Event(Event$9.HIDDEN, {
3712
4041
  relatedTarget: _this._element
3713
4042
  });
3714
- var shownEvent = $$$1.Event(Event.SHOWN, {
4043
+ var shownEvent = $.Event(Event$9.SHOWN, {
3715
4044
  relatedTarget: previous
3716
4045
  });
3717
- $$$1(previous).trigger(hiddenEvent);
3718
- $$$1(_this._element).trigger(shownEvent);
4046
+ $(previous).trigger(hiddenEvent);
4047
+ $(_this._element).trigger(shownEvent);
3719
4048
  };
3720
4049
 
3721
4050
  if (target) {
@@ -3726,31 +4055,25 @@ var Tab = function ($$$1) {
3726
4055
  };
3727
4056
 
3728
4057
  _proto.dispose = function dispose() {
3729
- $$$1.removeData(this._element, DATA_KEY);
4058
+ $.removeData(this._element, DATA_KEY$9);
3730
4059
  this._element = null;
3731
- }; // Private
3732
-
4060
+ } // Private
4061
+ ;
3733
4062
 
3734
4063
  _proto._activate = function _activate(element, container, callback) {
3735
4064
  var _this2 = this;
3736
4065
 
3737
- var activeElements;
3738
-
3739
- if (container.nodeName === 'UL') {
3740
- activeElements = $$$1(container).find(Selector.ACTIVE_UL);
3741
- } else {
3742
- activeElements = $$$1(container).children(Selector.ACTIVE);
3743
- }
3744
-
4066
+ var activeElements = container && (container.nodeName === 'UL' || container.nodeName === 'OL') ? $(container).find(Selector$9.ACTIVE_UL) : $(container).children(Selector$9.ACTIVE);
3745
4067
  var active = activeElements[0];
3746
- var isTransitioning = callback && Util.supportsTransitionEnd() && active && $$$1(active).hasClass(ClassName.FADE);
4068
+ var isTransitioning = callback && active && $(active).hasClass(ClassName$9.FADE);
3747
4069
 
3748
4070
  var complete = function complete() {
3749
4071
  return _this2._transitionComplete(element, active, callback);
3750
4072
  };
3751
4073
 
3752
4074
  if (active && isTransitioning) {
3753
- $$$1(active).one(Util.TRANSITION_END, complete).emulateTransitionEnd(TRANSITION_DURATION);
4075
+ var transitionDuration = Util.getTransitionDurationFromElement(active);
4076
+ $(active).removeClass(ClassName$9.SHOW).one(Util.TRANSITION_END, complete).emulateTransitionEnd(transitionDuration);
3754
4077
  } else {
3755
4078
  complete();
3756
4079
  }
@@ -3758,11 +4081,11 @@ var Tab = function ($$$1) {
3758
4081
 
3759
4082
  _proto._transitionComplete = function _transitionComplete(element, active, callback) {
3760
4083
  if (active) {
3761
- $$$1(active).removeClass(ClassName.SHOW + " " + ClassName.ACTIVE);
3762
- var dropdownChild = $$$1(active.parentNode).find(Selector.DROPDOWN_ACTIVE_CHILD)[0];
4084
+ $(active).removeClass(ClassName$9.ACTIVE);
4085
+ var dropdownChild = $(active.parentNode).find(Selector$9.DROPDOWN_ACTIVE_CHILD)[0];
3763
4086
 
3764
4087
  if (dropdownChild) {
3765
- $$$1(dropdownChild).removeClass(ClassName.ACTIVE);
4088
+ $(dropdownChild).removeClass(ClassName$9.ACTIVE);
3766
4089
  }
3767
4090
 
3768
4091
  if (active.getAttribute('role') === 'tab') {
@@ -3770,20 +4093,24 @@ var Tab = function ($$$1) {
3770
4093
  }
3771
4094
  }
3772
4095
 
3773
- $$$1(element).addClass(ClassName.ACTIVE);
4096
+ $(element).addClass(ClassName$9.ACTIVE);
3774
4097
 
3775
4098
  if (element.getAttribute('role') === 'tab') {
3776
4099
  element.setAttribute('aria-selected', true);
3777
4100
  }
3778
4101
 
3779
4102
  Util.reflow(element);
3780
- $$$1(element).addClass(ClassName.SHOW);
3781
4103
 
3782
- if (element.parentNode && $$$1(element.parentNode).hasClass(ClassName.DROPDOWN_MENU)) {
3783
- var dropdownElement = $$$1(element).closest(Selector.DROPDOWN)[0];
4104
+ if (element.classList.contains(ClassName$9.FADE)) {
4105
+ element.classList.add(ClassName$9.SHOW);
4106
+ }
4107
+
4108
+ if (element.parentNode && $(element.parentNode).hasClass(ClassName$9.DROPDOWN_MENU)) {
4109
+ var dropdownElement = $(element).closest(Selector$9.DROPDOWN)[0];
3784
4110
 
3785
4111
  if (dropdownElement) {
3786
- $$$1(dropdownElement).find(Selector.DROPDOWN_TOGGLE).addClass(ClassName.ACTIVE);
4112
+ var dropdownToggleList = [].slice.call(dropdownElement.querySelectorAll(Selector$9.DROPDOWN_TOGGLE));
4113
+ $(dropdownToggleList).addClass(ClassName$9.ACTIVE);
3787
4114
  }
3788
4115
 
3789
4116
  element.setAttribute('aria-expanded', true);
@@ -3792,17 +4119,17 @@ var Tab = function ($$$1) {
3792
4119
  if (callback) {
3793
4120
  callback();
3794
4121
  }
3795
- }; // Static
3796
-
4122
+ } // Static
4123
+ ;
3797
4124
 
3798
4125
  Tab._jQueryInterface = function _jQueryInterface(config) {
3799
4126
  return this.each(function () {
3800
- var $this = $$$1(this);
3801
- var data = $this.data(DATA_KEY);
4127
+ var $this = $(this);
4128
+ var data = $this.data(DATA_KEY$9);
3802
4129
 
3803
4130
  if (!data) {
3804
4131
  data = new Tab(this);
3805
- $this.data(DATA_KEY, data);
4132
+ $this.data(DATA_KEY$9, data);
3806
4133
  }
3807
4134
 
3808
4135
  if (typeof config === 'string') {
@@ -3818,9 +4145,10 @@ var Tab = function ($$$1) {
3818
4145
  _createClass(Tab, null, [{
3819
4146
  key: "VERSION",
3820
4147
  get: function get() {
3821
- return VERSION;
4148
+ return VERSION$9;
3822
4149
  }
3823
4150
  }]);
4151
+
3824
4152
  return Tab;
3825
4153
  }();
3826
4154
  /**
@@ -3830,10 +4158,10 @@ var Tab = function ($$$1) {
3830
4158
  */
3831
4159
 
3832
4160
 
3833
- $$$1(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {
4161
+ $(document).on(Event$9.CLICK_DATA_API, Selector$9.DATA_TOGGLE, function (event) {
3834
4162
  event.preventDefault();
3835
4163
 
3836
- Tab._jQueryInterface.call($$$1(this), 'show');
4164
+ Tab._jQueryInterface.call($(this), 'show');
3837
4165
  });
3838
4166
  /**
3839
4167
  * ------------------------------------------------------------------------
@@ -3841,53 +4169,266 @@ var Tab = function ($$$1) {
3841
4169
  * ------------------------------------------------------------------------
3842
4170
  */
3843
4171
 
3844
- $$$1.fn[NAME] = Tab._jQueryInterface;
3845
- $$$1.fn[NAME].Constructor = Tab;
4172
+ $.fn[NAME$9] = Tab._jQueryInterface;
4173
+ $.fn[NAME$9].Constructor = Tab;
3846
4174
 
3847
- $$$1.fn[NAME].noConflict = function () {
3848
- $$$1.fn[NAME] = JQUERY_NO_CONFLICT;
4175
+ $.fn[NAME$9].noConflict = function () {
4176
+ $.fn[NAME$9] = JQUERY_NO_CONFLICT$9;
3849
4177
  return Tab._jQueryInterface;
3850
4178
  };
3851
4179
 
3852
- return Tab;
3853
- }($);
4180
+ /**
4181
+ * ------------------------------------------------------------------------
4182
+ * Constants
4183
+ * ------------------------------------------------------------------------
4184
+ */
3854
4185
 
3855
- /**
3856
- * --------------------------------------------------------------------------
3857
- * Bootstrap (v4.0.0-alpha.6): index.js
3858
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
3859
- * --------------------------------------------------------------------------
3860
- */
4186
+ var NAME$a = 'toast';
4187
+ var VERSION$a = '4.3.1';
4188
+ var DATA_KEY$a = 'bs.toast';
4189
+ var EVENT_KEY$a = "." + DATA_KEY$a;
4190
+ var JQUERY_NO_CONFLICT$a = $.fn[NAME$a];
4191
+ var Event$a = {
4192
+ CLICK_DISMISS: "click.dismiss" + EVENT_KEY$a,
4193
+ HIDE: "hide" + EVENT_KEY$a,
4194
+ HIDDEN: "hidden" + EVENT_KEY$a,
4195
+ SHOW: "show" + EVENT_KEY$a,
4196
+ SHOWN: "shown" + EVENT_KEY$a
4197
+ };
4198
+ var ClassName$a = {
4199
+ FADE: 'fade',
4200
+ HIDE: 'hide',
4201
+ SHOW: 'show',
4202
+ SHOWING: 'showing'
4203
+ };
4204
+ var DefaultType$7 = {
4205
+ animation: 'boolean',
4206
+ autohide: 'boolean',
4207
+ delay: 'number'
4208
+ };
4209
+ var Default$7 = {
4210
+ animation: true,
4211
+ autohide: true,
4212
+ delay: 500
4213
+ };
4214
+ var Selector$a = {
4215
+ DATA_DISMISS: '[data-dismiss="toast"]'
4216
+ /**
4217
+ * ------------------------------------------------------------------------
4218
+ * Class Definition
4219
+ * ------------------------------------------------------------------------
4220
+ */
3861
4221
 
3862
- (function ($$$1) {
3863
- if (typeof $$$1 === 'undefined') {
3864
- throw new TypeError('Bootstrap\'s JavaScript requires jQuery. jQuery must be included before Bootstrap\'s JavaScript.');
3865
- }
4222
+ };
3866
4223
 
3867
- var version = $$$1.fn.jquery.split(' ')[0].split('.');
3868
- var minMajor = 1;
3869
- var ltMajor = 2;
3870
- var minMinor = 9;
3871
- var minPatch = 1;
3872
- var maxMajor = 4;
4224
+ var Toast =
4225
+ /*#__PURE__*/
4226
+ function () {
4227
+ function Toast(element, config) {
4228
+ this._element = element;
4229
+ this._config = this._getConfig(config);
4230
+ this._timeout = null;
3873
4231
 
3874
- if (version[0] < ltMajor && version[1] < minMinor || version[0] === minMajor && version[1] === minMinor && version[2] < minPatch || version[0] >= maxMajor) {
3875
- throw new Error('Bootstrap\'s JavaScript requires at least jQuery v1.9.1 but less than v4.0.0');
3876
- }
3877
- })($);
3878
-
3879
- exports.Util = Util;
3880
- exports.Alert = Alert;
3881
- exports.Button = Button;
3882
- exports.Carousel = Carousel;
3883
- exports.Collapse = Collapse;
3884
- exports.Dropdown = Dropdown;
3885
- exports.Modal = Modal;
3886
- exports.Popover = Popover;
3887
- exports.Scrollspy = ScrollSpy;
3888
- exports.Tab = Tab;
3889
- exports.Tooltip = Tooltip;
3890
-
3891
- Object.defineProperty(exports, '__esModule', { value: true });
3892
-
3893
- })));
4232
+ this._setListeners();
4233
+ } // Getters
4234
+
4235
+
4236
+ var _proto = Toast.prototype;
4237
+
4238
+ // Public
4239
+ _proto.show = function show() {
4240
+ var _this = this;
4241
+
4242
+ $(this._element).trigger(Event$a.SHOW);
4243
+
4244
+ if (this._config.animation) {
4245
+ this._element.classList.add(ClassName$a.FADE);
4246
+ }
4247
+
4248
+ var complete = function complete() {
4249
+ _this._element.classList.remove(ClassName$a.SHOWING);
4250
+
4251
+ _this._element.classList.add(ClassName$a.SHOW);
4252
+
4253
+ $(_this._element).trigger(Event$a.SHOWN);
4254
+
4255
+ if (_this._config.autohide) {
4256
+ _this.hide();
4257
+ }
4258
+ };
4259
+
4260
+ this._element.classList.remove(ClassName$a.HIDE);
4261
+
4262
+ this._element.classList.add(ClassName$a.SHOWING);
4263
+
4264
+ if (this._config.animation) {
4265
+ var transitionDuration = Util.getTransitionDurationFromElement(this._element);
4266
+ $(this._element).one(Util.TRANSITION_END, complete).emulateTransitionEnd(transitionDuration);
4267
+ } else {
4268
+ complete();
4269
+ }
4270
+ };
4271
+
4272
+ _proto.hide = function hide(withoutTimeout) {
4273
+ var _this2 = this;
4274
+
4275
+ if (!this._element.classList.contains(ClassName$a.SHOW)) {
4276
+ return;
4277
+ }
4278
+
4279
+ $(this._element).trigger(Event$a.HIDE);
4280
+
4281
+ if (withoutTimeout) {
4282
+ this._close();
4283
+ } else {
4284
+ this._timeout = setTimeout(function () {
4285
+ _this2._close();
4286
+ }, this._config.delay);
4287
+ }
4288
+ };
4289
+
4290
+ _proto.dispose = function dispose() {
4291
+ clearTimeout(this._timeout);
4292
+ this._timeout = null;
4293
+
4294
+ if (this._element.classList.contains(ClassName$a.SHOW)) {
4295
+ this._element.classList.remove(ClassName$a.SHOW);
4296
+ }
4297
+
4298
+ $(this._element).off(Event$a.CLICK_DISMISS);
4299
+ $.removeData(this._element, DATA_KEY$a);
4300
+ this._element = null;
4301
+ this._config = null;
4302
+ } // Private
4303
+ ;
4304
+
4305
+ _proto._getConfig = function _getConfig(config) {
4306
+ config = _objectSpread({}, Default$7, $(this._element).data(), typeof config === 'object' && config ? config : {});
4307
+ Util.typeCheckConfig(NAME$a, config, this.constructor.DefaultType);
4308
+ return config;
4309
+ };
4310
+
4311
+ _proto._setListeners = function _setListeners() {
4312
+ var _this3 = this;
4313
+
4314
+ $(this._element).on(Event$a.CLICK_DISMISS, Selector$a.DATA_DISMISS, function () {
4315
+ return _this3.hide(true);
4316
+ });
4317
+ };
4318
+
4319
+ _proto._close = function _close() {
4320
+ var _this4 = this;
4321
+
4322
+ var complete = function complete() {
4323
+ _this4._element.classList.add(ClassName$a.HIDE);
4324
+
4325
+ $(_this4._element).trigger(Event$a.HIDDEN);
4326
+ };
4327
+
4328
+ this._element.classList.remove(ClassName$a.SHOW);
4329
+
4330
+ if (this._config.animation) {
4331
+ var transitionDuration = Util.getTransitionDurationFromElement(this._element);
4332
+ $(this._element).one(Util.TRANSITION_END, complete).emulateTransitionEnd(transitionDuration);
4333
+ } else {
4334
+ complete();
4335
+ }
4336
+ } // Static
4337
+ ;
4338
+
4339
+ Toast._jQueryInterface = function _jQueryInterface(config) {
4340
+ return this.each(function () {
4341
+ var $element = $(this);
4342
+ var data = $element.data(DATA_KEY$a);
4343
+
4344
+ var _config = typeof config === 'object' && config;
4345
+
4346
+ if (!data) {
4347
+ data = new Toast(this, _config);
4348
+ $element.data(DATA_KEY$a, data);
4349
+ }
4350
+
4351
+ if (typeof config === 'string') {
4352
+ if (typeof data[config] === 'undefined') {
4353
+ throw new TypeError("No method named \"" + config + "\"");
4354
+ }
4355
+
4356
+ data[config](this);
4357
+ }
4358
+ });
4359
+ };
4360
+
4361
+ _createClass(Toast, null, [{
4362
+ key: "VERSION",
4363
+ get: function get() {
4364
+ return VERSION$a;
4365
+ }
4366
+ }, {
4367
+ key: "DefaultType",
4368
+ get: function get() {
4369
+ return DefaultType$7;
4370
+ }
4371
+ }, {
4372
+ key: "Default",
4373
+ get: function get() {
4374
+ return Default$7;
4375
+ }
4376
+ }]);
4377
+
4378
+ return Toast;
4379
+ }();
4380
+ /**
4381
+ * ------------------------------------------------------------------------
4382
+ * jQuery
4383
+ * ------------------------------------------------------------------------
4384
+ */
4385
+
4386
+
4387
+ $.fn[NAME$a] = Toast._jQueryInterface;
4388
+ $.fn[NAME$a].Constructor = Toast;
4389
+
4390
+ $.fn[NAME$a].noConflict = function () {
4391
+ $.fn[NAME$a] = JQUERY_NO_CONFLICT$a;
4392
+ return Toast._jQueryInterface;
4393
+ };
4394
+
4395
+ /**
4396
+ * --------------------------------------------------------------------------
4397
+ * Bootstrap (v4.3.1): index.js
4398
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
4399
+ * --------------------------------------------------------------------------
4400
+ */
4401
+
4402
+ (function () {
4403
+ if (typeof $ === 'undefined') {
4404
+ throw new TypeError('Bootstrap\'s JavaScript requires jQuery. jQuery must be included before Bootstrap\'s JavaScript.');
4405
+ }
4406
+
4407
+ var version = $.fn.jquery.split(' ')[0].split('.');
4408
+ var minMajor = 1;
4409
+ var ltMajor = 2;
4410
+ var minMinor = 9;
4411
+ var minPatch = 1;
4412
+ var maxMajor = 4;
4413
+
4414
+ if (version[0] < ltMajor && version[1] < minMinor || version[0] === minMajor && version[1] === minMinor && version[2] < minPatch || version[0] >= maxMajor) {
4415
+ throw new Error('Bootstrap\'s JavaScript requires at least jQuery v1.9.1 but less than v4.0.0');
4416
+ }
4417
+ })();
4418
+
4419
+ exports.Util = Util;
4420
+ exports.Alert = Alert;
4421
+ exports.Button = Button;
4422
+ exports.Carousel = Carousel;
4423
+ exports.Collapse = Collapse;
4424
+ exports.Dropdown = Dropdown;
4425
+ exports.Modal = Modal;
4426
+ exports.Popover = Popover;
4427
+ exports.Scrollspy = ScrollSpy;
4428
+ exports.Tab = Tab;
4429
+ exports.Toast = Toast;
4430
+ exports.Tooltip = Tooltip;
4431
+
4432
+ Object.defineProperty(exports, '__esModule', { value: true });
4433
+
4434
+ }));