active_admin_with_bootstrap_4 0.1.0 → 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 9056045504deb753d0ef40ba5df0ba23a6f51a91
4
- data.tar.gz: cf3de3682a3b519a9f21eb46bdb6c16c52c35fcc
3
+ metadata.gz: d3281e3a0b4d84064a5c05c195a46a2912ca7ef8
4
+ data.tar.gz: 0a7737d48eec344db521ead956add10b1a1bf53b
5
5
  SHA512:
6
- metadata.gz: a9d99f4fe0c6333b2cac7368caa273a32853f15d0462e7fe86684d92049758a684a512ccd4e922df125a16141569020090ff9114088b7e85d4a3dc34e58a206f
7
- data.tar.gz: 452ce63ff59e8faf8ed016ce913d8dc4c23152db8804956747bd8968d987b861f9c749047196c72d5d06e2716ec1af4c3a81a8e1d0df6d17479441af674df4d9
6
+ metadata.gz: 3d6ee50b3baabfaa6ed2d5bab0f2981fd1f6e5f1a1e114be12584481d72c59cbd6283197c2ca07cdcdd8136f580fa75ae0b3b2dff75c75e7d4230cf6e21e4f9d
7
+ data.tar.gz: d55983b2b2ec22fecbfb8607a4bc673d3e5bd94d5857e9f95f6d19eacfdeb6f9a2ccedf2926a4dbe5df4850d6668139e7589915d4d4f147af6c003a7881f3eae
@@ -1,3 +1,3 @@
1
1
  module ActiveAdminWithBootstrap4
2
- VERSION = "0.1.0"
2
+ VERSION = "0.1.1"
3
3
  end
@@ -0,0 +1,3 @@
1
+ //= require jquery
2
+ //= require popper
3
+ //= require bootstrap
@@ -0,0 +1,4435 @@
1
+ /*!
2
+ * Bootstrap v4.3.1 (https://getbootstrap.com/)
3
+ * Copyright 2011-2019 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
4
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
5
+ */
6
+ (function (global, factory) {
7
+ typeof exports === 'object' && typeof module !== 'undefined' ? 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;
29
+ }
30
+
31
+ function _defineProperty(obj, key, value) {
32
+ if (key in obj) {
33
+ Object.defineProperty(obj, key, {
34
+ value: value,
35
+ enumerable: true,
36
+ configurable: true,
37
+ writable: true
38
+ });
39
+ } else {
40
+ obj[key] = value;
41
+ }
42
+
43
+ return obj;
44
+ }
45
+
46
+ function _objectSpread(target) {
47
+ for (var i = 1; i < arguments.length; i++) {
48
+ var source = arguments[i] != null ? arguments[i] : {};
49
+ var ownKeys = Object.keys(source);
50
+
51
+ if (typeof Object.getOwnPropertySymbols === 'function') {
52
+ ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) {
53
+ return Object.getOwnPropertyDescriptor(source, sym).enumerable;
54
+ }));
55
+ }
56
+
57
+ ownKeys.forEach(function (key) {
58
+ _defineProperty(target, key, source[key]);
59
+ });
60
+ }
61
+
62
+ return target;
63
+ }
64
+
65
+ function _inheritsLoose(subClass, superClass) {
66
+ subClass.prototype = Object.create(superClass.prototype);
67
+ subClass.prototype.constructor = subClass;
68
+ subClass.__proto__ = superClass;
69
+ }
70
+
71
+ /**
72
+ * --------------------------------------------------------------------------
73
+ * Bootstrap (v4.3.1): util.js
74
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
75
+ * --------------------------------------------------------------------------
76
+ */
77
+ /**
78
+ * ------------------------------------------------------------------------
79
+ * Private TransitionEnd Helpers
80
+ * ------------------------------------------------------------------------
81
+ */
82
+
83
+ var TRANSITION_END = 'transitionend';
84
+ var MAX_UID = 1000000;
85
+ var MILLISECONDS_MULTIPLIER = 1000; // Shoutout AngusCroll (https://goo.gl/pxwQGp)
86
+
87
+ function toType(obj) {
88
+ return {}.toString.call(obj).match(/\s([a-z]+)/i)[1].toLowerCase();
89
+ }
90
+
91
+ function getSpecialTransitionEndEvent() {
92
+ return {
93
+ bindType: TRANSITION_END,
94
+ delegateType: TRANSITION_END,
95
+ handle: function handle(event) {
96
+ if ($(event.target).is(this)) {
97
+ return event.handleObj.handler.apply(this, arguments); // eslint-disable-line prefer-rest-params
98
+ }
99
+
100
+ return undefined; // eslint-disable-line no-undefined
101
+ }
102
+ };
103
+ }
104
+
105
+ function transitionEndEmulator(duration) {
106
+ var _this = this;
107
+
108
+ var called = false;
109
+ $(this).one(Util.TRANSITION_END, function () {
110
+ called = true;
111
+ });
112
+ setTimeout(function () {
113
+ if (!called) {
114
+ Util.triggerTransitionEnd(_this);
115
+ }
116
+ }, duration);
117
+ return this;
118
+ }
119
+
120
+ function setTransitionEndSupport() {
121
+ $.fn.emulateTransitionEnd = transitionEndEmulator;
122
+ $.event.special[Util.TRANSITION_END] = getSpecialTransitionEndEvent();
123
+ }
124
+ /**
125
+ * --------------------------------------------------------------------------
126
+ * Public Util Api
127
+ * --------------------------------------------------------------------------
128
+ */
129
+
130
+
131
+ var Util = {
132
+ TRANSITION_END: 'bsTransitionEnd',
133
+ getUID: function getUID(prefix) {
134
+ do {
135
+ // eslint-disable-next-line no-bitwise
136
+ prefix += ~~(Math.random() * MAX_UID); // "~~" acts like a faster Math.floor() here
137
+ } while (document.getElementById(prefix));
138
+
139
+ return prefix;
140
+ },
141
+ getSelectorFromElement: function getSelectorFromElement(element) {
142
+ var selector = element.getAttribute('data-target');
143
+
144
+ if (!selector || selector === '#') {
145
+ var hrefAttr = element.getAttribute('href');
146
+ selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : '';
147
+ }
148
+
149
+ try {
150
+ return document.querySelector(selector) ? selector : null;
151
+ } catch (err) {
152
+ return null;
153
+ }
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
+ },
175
+ reflow: function reflow(element) {
176
+ return element.offsetHeight;
177
+ },
178
+ triggerTransitionEnd: function triggerTransitionEnd(element) {
179
+ $(element).trigger(TRANSITION_END);
180
+ },
181
+ // TODO: Remove in v5
182
+ supportsTransitionEnd: function supportsTransitionEnd() {
183
+ return Boolean(TRANSITION_END);
184
+ },
185
+ isElement: function isElement(obj) {
186
+ return (obj[0] || obj).nodeType;
187
+ },
188
+ typeCheckConfig: function typeCheckConfig(componentName, config, configTypes) {
189
+ for (var property in configTypes) {
190
+ if (Object.prototype.hasOwnProperty.call(configTypes, property)) {
191
+ var expectedTypes = configTypes[property];
192
+ var value = config[property];
193
+ var valueType = value && Util.isElement(value) ? 'element' : toType(value);
194
+
195
+ if (!new RegExp(expectedTypes).test(valueType)) {
196
+ throw new Error(componentName.toUpperCase() + ": " + ("Option \"" + property + "\" provided type \"" + valueType + "\" ") + ("but expected type \"" + expectedTypes + "\"."));
197
+ }
198
+ }
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);
222
+ }
223
+ };
224
+ setTransitionEndSupport();
225
+
226
+ /**
227
+ * ------------------------------------------------------------------------
228
+ * Constants
229
+ * ------------------------------------------------------------------------
230
+ */
231
+
232
+ var NAME = 'alert';
233
+ var VERSION = '4.3.1';
234
+ var DATA_KEY = 'bs.alert';
235
+ var EVENT_KEY = "." + DATA_KEY;
236
+ var DATA_API_KEY = '.data-api';
237
+ var JQUERY_NO_CONFLICT = $.fn[NAME];
238
+ var Selector = {
239
+ DISMISS: '[data-dismiss="alert"]'
240
+ };
241
+ var Event = {
242
+ CLOSE: "close" + EVENT_KEY,
243
+ CLOSED: "closed" + EVENT_KEY,
244
+ CLICK_DATA_API: "click" + EVENT_KEY + DATA_API_KEY
245
+ };
246
+ var ClassName = {
247
+ ALERT: 'alert',
248
+ FADE: 'fade',
249
+ SHOW: 'show'
250
+ /**
251
+ * ------------------------------------------------------------------------
252
+ * Class Definition
253
+ * ------------------------------------------------------------------------
254
+ */
255
+
256
+ };
257
+
258
+ var Alert =
259
+ /*#__PURE__*/
260
+ function () {
261
+ function Alert(element) {
262
+ this._element = element;
263
+ } // Getters
264
+
265
+
266
+ var _proto = Alert.prototype;
267
+
268
+ // Public
269
+ _proto.close = function close(element) {
270
+ var rootElement = this._element;
271
+
272
+ if (element) {
273
+ rootElement = this._getRootElement(element);
274
+ }
275
+
276
+ var customEvent = this._triggerCloseEvent(rootElement);
277
+
278
+ if (customEvent.isDefaultPrevented()) {
279
+ return;
280
+ }
281
+
282
+ this._removeElement(rootElement);
283
+ };
284
+
285
+ _proto.dispose = function dispose() {
286
+ $.removeData(this._element, DATA_KEY);
287
+ this._element = null;
288
+ } // Private
289
+ ;
290
+
291
+ _proto._getRootElement = function _getRootElement(element) {
292
+ var selector = Util.getSelectorFromElement(element);
293
+ var parent = false;
294
+
295
+ if (selector) {
296
+ parent = document.querySelector(selector);
297
+ }
298
+
299
+ if (!parent) {
300
+ parent = $(element).closest("." + ClassName.ALERT)[0];
301
+ }
302
+
303
+ return parent;
304
+ };
305
+
306
+ _proto._triggerCloseEvent = function _triggerCloseEvent(element) {
307
+ var closeEvent = $.Event(Event.CLOSE);
308
+ $(element).trigger(closeEvent);
309
+ return closeEvent;
310
+ };
311
+
312
+ _proto._removeElement = function _removeElement(element) {
313
+ var _this = this;
314
+
315
+ $(element).removeClass(ClassName.SHOW);
316
+
317
+ if (!$(element).hasClass(ClassName.FADE)) {
318
+ this._destroyElement(element);
319
+
320
+ return;
321
+ }
322
+
323
+ var transitionDuration = Util.getTransitionDurationFromElement(element);
324
+ $(element).one(Util.TRANSITION_END, function (event) {
325
+ return _this._destroyElement(element, event);
326
+ }).emulateTransitionEnd(transitionDuration);
327
+ };
328
+
329
+ _proto._destroyElement = function _destroyElement(element) {
330
+ $(element).detach().trigger(Event.CLOSED).remove();
331
+ } // Static
332
+ ;
333
+
334
+ Alert._jQueryInterface = function _jQueryInterface(config) {
335
+ return this.each(function () {
336
+ var $element = $(this);
337
+ var data = $element.data(DATA_KEY);
338
+
339
+ if (!data) {
340
+ data = new Alert(this);
341
+ $element.data(DATA_KEY, data);
342
+ }
343
+
344
+ if (config === 'close') {
345
+ data[config](this);
346
+ }
347
+ });
348
+ };
349
+
350
+ Alert._handleDismiss = function _handleDismiss(alertInstance) {
351
+ return function (event) {
352
+ if (event) {
353
+ event.preventDefault();
354
+ }
355
+
356
+ alertInstance.close(this);
357
+ };
358
+ };
359
+
360
+ _createClass(Alert, null, [{
361
+ key: "VERSION",
362
+ get: function get() {
363
+ return VERSION;
364
+ }
365
+ }]);
366
+
367
+ return Alert;
368
+ }();
369
+ /**
370
+ * ------------------------------------------------------------------------
371
+ * Data Api implementation
372
+ * ------------------------------------------------------------------------
373
+ */
374
+
375
+
376
+ $(document).on(Event.CLICK_DATA_API, Selector.DISMISS, Alert._handleDismiss(new Alert()));
377
+ /**
378
+ * ------------------------------------------------------------------------
379
+ * jQuery
380
+ * ------------------------------------------------------------------------
381
+ */
382
+
383
+ $.fn[NAME] = Alert._jQueryInterface;
384
+ $.fn[NAME].Constructor = Alert;
385
+
386
+ $.fn[NAME].noConflict = function () {
387
+ $.fn[NAME] = JQUERY_NO_CONFLICT;
388
+ return Alert._jQueryInterface;
389
+ };
390
+
391
+ /**
392
+ * ------------------------------------------------------------------------
393
+ * Constants
394
+ * ------------------------------------------------------------------------
395
+ */
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 = {
404
+ ACTIVE: 'active',
405
+ BUTTON: 'btn',
406
+ FOCUS: 'focus'
407
+ };
408
+ var Selector$1 = {
409
+ DATA_TOGGLE_CARROT: '[data-toggle^="button"]',
410
+ DATA_TOGGLE: '[data-toggle="buttons"]',
411
+ INPUT: 'input:not([type="hidden"])',
412
+ ACTIVE: '.active',
413
+ BUTTON: '.btn'
414
+ };
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)
418
+ /**
419
+ * ------------------------------------------------------------------------
420
+ * Class Definition
421
+ * ------------------------------------------------------------------------
422
+ */
423
+
424
+ };
425
+
426
+ var Button =
427
+ /*#__PURE__*/
428
+ function () {
429
+ function Button(element) {
430
+ this._element = element;
431
+ } // Getters
432
+
433
+
434
+ var _proto = Button.prototype;
435
+
436
+ // Public
437
+ _proto.toggle = function toggle() {
438
+ var triggerChangeEvent = true;
439
+ var addAriaPressed = true;
440
+ var rootElement = $(this._element).closest(Selector$1.DATA_TOGGLE)[0];
441
+
442
+ if (rootElement) {
443
+ var input = this._element.querySelector(Selector$1.INPUT);
444
+
445
+ if (input) {
446
+ if (input.type === 'radio') {
447
+ if (input.checked && this._element.classList.contains(ClassName$1.ACTIVE)) {
448
+ triggerChangeEvent = false;
449
+ } else {
450
+ var activeElement = rootElement.querySelector(Selector$1.ACTIVE);
451
+
452
+ if (activeElement) {
453
+ $(activeElement).removeClass(ClassName$1.ACTIVE);
454
+ }
455
+ }
456
+ }
457
+
458
+ if (triggerChangeEvent) {
459
+ if (input.hasAttribute('disabled') || rootElement.hasAttribute('disabled') || input.classList.contains('disabled') || rootElement.classList.contains('disabled')) {
460
+ return;
461
+ }
462
+
463
+ input.checked = !this._element.classList.contains(ClassName$1.ACTIVE);
464
+ $(input).trigger('change');
465
+ }
466
+
467
+ input.focus();
468
+ addAriaPressed = false;
469
+ }
470
+ }
471
+
472
+ if (addAriaPressed) {
473
+ this._element.setAttribute('aria-pressed', !this._element.classList.contains(ClassName$1.ACTIVE));
474
+ }
475
+
476
+ if (triggerChangeEvent) {
477
+ $(this._element).toggleClass(ClassName$1.ACTIVE);
478
+ }
479
+ };
480
+
481
+ _proto.dispose = function dispose() {
482
+ $.removeData(this._element, DATA_KEY$1);
483
+ this._element = null;
484
+ } // Static
485
+ ;
486
+
487
+ Button._jQueryInterface = function _jQueryInterface(config) {
488
+ return this.each(function () {
489
+ var data = $(this).data(DATA_KEY$1);
490
+
491
+ if (!data) {
492
+ data = new Button(this);
493
+ $(this).data(DATA_KEY$1, data);
494
+ }
495
+
496
+ if (config === 'toggle') {
497
+ data[config]();
498
+ }
499
+ });
500
+ };
501
+
502
+ _createClass(Button, null, [{
503
+ key: "VERSION",
504
+ get: function get() {
505
+ return VERSION$1;
506
+ }
507
+ }]);
508
+
509
+ return Button;
510
+ }();
511
+ /**
512
+ * ------------------------------------------------------------------------
513
+ * Data Api implementation
514
+ * ------------------------------------------------------------------------
515
+ */
516
+
517
+
518
+ $(document).on(Event$1.CLICK_DATA_API, Selector$1.DATA_TOGGLE_CARROT, function (event) {
519
+ event.preventDefault();
520
+ var button = event.target;
521
+
522
+ if (!$(button).hasClass(ClassName$1.BUTTON)) {
523
+ button = $(button).closest(Selector$1.BUTTON);
524
+ }
525
+
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));
530
+ });
531
+ /**
532
+ * ------------------------------------------------------------------------
533
+ * jQuery
534
+ * ------------------------------------------------------------------------
535
+ */
536
+
537
+ $.fn[NAME$1] = Button._jQueryInterface;
538
+ $.fn[NAME$1].Constructor = Button;
539
+
540
+ $.fn[NAME$1].noConflict = function () {
541
+ $.fn[NAME$1] = JQUERY_NO_CONFLICT$1;
542
+ return Button._jQueryInterface;
543
+ };
544
+
545
+ /**
546
+ * ------------------------------------------------------------------------
547
+ * Constants
548
+ * ------------------------------------------------------------------------
549
+ */
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];
557
+ var ARROW_LEFT_KEYCODE = 37; // KeyboardEvent.which value for left arrow key
558
+
559
+ var ARROW_RIGHT_KEYCODE = 39; // KeyboardEvent.which value for right arrow key
560
+
561
+ var TOUCHEVENT_COMPAT_WAIT = 500; // Time for mouse compat events to fire after touch
562
+
563
+ var SWIPE_THRESHOLD = 40;
564
+ var Default = {
565
+ interval: 5000,
566
+ keyboard: true,
567
+ slide: false,
568
+ pause: 'hover',
569
+ wrap: true,
570
+ touch: true
571
+ };
572
+ var DefaultType = {
573
+ interval: '(number|boolean)',
574
+ keyboard: 'boolean',
575
+ slide: '(boolean|string)',
576
+ pause: '(string|boolean)',
577
+ wrap: 'boolean',
578
+ touch: 'boolean'
579
+ };
580
+ var Direction = {
581
+ NEXT: 'next',
582
+ PREV: 'prev',
583
+ LEFT: 'left',
584
+ RIGHT: 'right'
585
+ };
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
600
+ };
601
+ var ClassName$2 = {
602
+ CAROUSEL: 'carousel',
603
+ ACTIVE: 'active',
604
+ SLIDE: 'slide',
605
+ RIGHT: 'carousel-item-right',
606
+ LEFT: 'carousel-item-left',
607
+ NEXT: 'carousel-item-next',
608
+ PREV: 'carousel-item-prev',
609
+ ITEM: 'carousel-item',
610
+ POINTER_EVENT: 'pointer-event'
611
+ };
612
+ var Selector$2 = {
613
+ ACTIVE: '.active',
614
+ ACTIVE_ITEM: '.active.carousel-item',
615
+ ITEM: '.carousel-item',
616
+ ITEM_IMG: '.carousel-item img',
617
+ NEXT_PREV: '.carousel-item-next, .carousel-item-prev',
618
+ INDICATORS: '.carousel-indicators',
619
+ DATA_SLIDE: '[data-slide], [data-slide-to]',
620
+ DATA_RIDE: '[data-ride="carousel"]'
621
+ };
622
+ var PointerType = {
623
+ TOUCH: 'touch',
624
+ PEN: 'pen'
625
+ /**
626
+ * ------------------------------------------------------------------------
627
+ * Class Definition
628
+ * ------------------------------------------------------------------------
629
+ */
630
+
631
+ };
632
+
633
+ var Carousel =
634
+ /*#__PURE__*/
635
+ function () {
636
+ function Carousel(element, config) {
637
+ this._items = null;
638
+ this._interval = null;
639
+ this._activeElement = null;
640
+ this._isPaused = false;
641
+ this._isSliding = false;
642
+ this.touchTimeout = null;
643
+ this.touchStartX = 0;
644
+ this.touchDeltaX = 0;
645
+ this._config = this._getConfig(config);
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);
650
+
651
+ this._addEventListeners();
652
+ } // Getters
653
+
654
+
655
+ var _proto = Carousel.prototype;
656
+
657
+ // Public
658
+ _proto.next = function next() {
659
+ if (!this._isSliding) {
660
+ this._slide(Direction.NEXT);
661
+ }
662
+ };
663
+
664
+ _proto.nextWhenVisible = function nextWhenVisible() {
665
+ // Don't call next when the page isn't visible
666
+ // or the carousel or its parent isn't visible
667
+ if (!document.hidden && $(this._element).is(':visible') && $(this._element).css('visibility') !== 'hidden') {
668
+ this.next();
669
+ }
670
+ };
671
+
672
+ _proto.prev = function prev() {
673
+ if (!this._isSliding) {
674
+ this._slide(Direction.PREV);
675
+ }
676
+ };
677
+
678
+ _proto.pause = function pause(event) {
679
+ if (!event) {
680
+ this._isPaused = true;
681
+ }
682
+
683
+ if (this._element.querySelector(Selector$2.NEXT_PREV)) {
684
+ Util.triggerTransitionEnd(this._element);
685
+ this.cycle(true);
686
+ }
687
+
688
+ clearInterval(this._interval);
689
+ this._interval = null;
690
+ };
691
+
692
+ _proto.cycle = function cycle(event) {
693
+ if (!event) {
694
+ this._isPaused = false;
695
+ }
696
+
697
+ if (this._interval) {
698
+ clearInterval(this._interval);
699
+ this._interval = null;
700
+ }
701
+
702
+ if (this._config.interval && !this._isPaused) {
703
+ this._interval = setInterval((document.visibilityState ? this.nextWhenVisible : this.next).bind(this), this._config.interval);
704
+ }
705
+ };
706
+
707
+ _proto.to = function to(index) {
708
+ var _this = this;
709
+
710
+ this._activeElement = this._element.querySelector(Selector$2.ACTIVE_ITEM);
711
+
712
+ var activeIndex = this._getItemIndex(this._activeElement);
713
+
714
+ if (index > this._items.length - 1 || index < 0) {
715
+ return;
716
+ }
717
+
718
+ if (this._isSliding) {
719
+ $(this._element).one(Event$2.SLID, function () {
720
+ return _this.to(index);
721
+ });
722
+ return;
723
+ }
724
+
725
+ if (activeIndex === index) {
726
+ this.pause();
727
+ this.cycle();
728
+ return;
729
+ }
730
+
731
+ var direction = index > activeIndex ? Direction.NEXT : Direction.PREV;
732
+
733
+ this._slide(direction, this._items[index]);
734
+ };
735
+
736
+ _proto.dispose = function dispose() {
737
+ $(this._element).off(EVENT_KEY$2);
738
+ $.removeData(this._element, DATA_KEY$2);
739
+ this._items = null;
740
+ this._config = null;
741
+ this._element = null;
742
+ this._interval = null;
743
+ this._isPaused = null;
744
+ this._isSliding = null;
745
+ this._activeElement = null;
746
+ this._indicatorsElement = null;
747
+ } // Private
748
+ ;
749
+
750
+ _proto._getConfig = function _getConfig(config) {
751
+ config = _objectSpread({}, Default, config);
752
+ Util.typeCheckConfig(NAME$2, config, DefaultType);
753
+ return config;
754
+ };
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
+
775
+ _proto._addEventListeners = function _addEventListeners() {
776
+ var _this2 = this;
777
+
778
+ if (this._config.keyboard) {
779
+ $(this._element).on(Event$2.KEYDOWN, function (event) {
780
+ return _this2._keydown(event);
781
+ });
782
+ }
783
+
784
+ if (this._config.pause === 'hover') {
785
+ $(this._element).on(Event$2.MOUSEENTER, function (event) {
786
+ return _this2.pause(event);
787
+ }).on(Event$2.MOUSELEAVE, function (event) {
788
+ return _this2.cycle(event);
789
+ });
790
+ }
791
+
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') {
829
+ // If it's a touch-enabled device, mouseenter/leave are fired as
830
+ // part of the mouse compatibility events on first tap - the carousel
831
+ // would stop cycling until user tapped out of it;
832
+ // here, we listen for touchend, explicitly pause the carousel
833
+ // (as if it's the second time we tap on it, mouseenter compat event
834
+ // is NOT fired) and after a timeout (to allow for mouse compatibility
835
+ // events to fire) we explicitly restart cycling
836
+ _this3.pause();
837
+
838
+ if (_this3.touchTimeout) {
839
+ clearTimeout(_this3.touchTimeout);
840
+ }
841
+
842
+ _this3.touchTimeout = setTimeout(function (event) {
843
+ return _this3.cycle(event);
844
+ }, TOUCHEVENT_COMPAT_WAIT + _this3._config.interval);
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
+ });
871
+ }
872
+ };
873
+
874
+ _proto._keydown = function _keydown(event) {
875
+ if (/input|textarea/i.test(event.target.tagName)) {
876
+ return;
877
+ }
878
+
879
+ switch (event.which) {
880
+ case ARROW_LEFT_KEYCODE:
881
+ event.preventDefault();
882
+ this.prev();
883
+ break;
884
+
885
+ case ARROW_RIGHT_KEYCODE:
886
+ event.preventDefault();
887
+ this.next();
888
+ break;
889
+
890
+ default:
891
+ }
892
+ };
893
+
894
+ _proto._getItemIndex = function _getItemIndex(element) {
895
+ this._items = element && element.parentNode ? [].slice.call(element.parentNode.querySelectorAll(Selector$2.ITEM)) : [];
896
+ return this._items.indexOf(element);
897
+ };
898
+
899
+ _proto._getItemByDirection = function _getItemByDirection(direction, activeElement) {
900
+ var isNextDirection = direction === Direction.NEXT;
901
+ var isPrevDirection = direction === Direction.PREV;
902
+
903
+ var activeIndex = this._getItemIndex(activeElement);
904
+
905
+ var lastItemIndex = this._items.length - 1;
906
+ var isGoingToWrap = isPrevDirection && activeIndex === 0 || isNextDirection && activeIndex === lastItemIndex;
907
+
908
+ if (isGoingToWrap && !this._config.wrap) {
909
+ return activeElement;
910
+ }
911
+
912
+ var delta = direction === Direction.PREV ? -1 : 1;
913
+ var itemIndex = (activeIndex + delta) % this._items.length;
914
+ return itemIndex === -1 ? this._items[this._items.length - 1] : this._items[itemIndex];
915
+ };
916
+
917
+ _proto._triggerSlideEvent = function _triggerSlideEvent(relatedTarget, eventDirectionName) {
918
+ var targetIndex = this._getItemIndex(relatedTarget);
919
+
920
+ var fromIndex = this._getItemIndex(this._element.querySelector(Selector$2.ACTIVE_ITEM));
921
+
922
+ var slideEvent = $.Event(Event$2.SLIDE, {
923
+ relatedTarget: relatedTarget,
924
+ direction: eventDirectionName,
925
+ from: fromIndex,
926
+ to: targetIndex
927
+ });
928
+ $(this._element).trigger(slideEvent);
929
+ return slideEvent;
930
+ };
931
+
932
+ _proto._setActiveIndicatorElement = function _setActiveIndicatorElement(element) {
933
+ if (this._indicatorsElement) {
934
+ var indicators = [].slice.call(this._indicatorsElement.querySelectorAll(Selector$2.ACTIVE));
935
+ $(indicators).removeClass(ClassName$2.ACTIVE);
936
+
937
+ var nextIndicator = this._indicatorsElement.children[this._getItemIndex(element)];
938
+
939
+ if (nextIndicator) {
940
+ $(nextIndicator).addClass(ClassName$2.ACTIVE);
941
+ }
942
+ }
943
+ };
944
+
945
+ _proto._slide = function _slide(direction, element) {
946
+ var _this4 = this;
947
+
948
+ var activeElement = this._element.querySelector(Selector$2.ACTIVE_ITEM);
949
+
950
+ var activeElementIndex = this._getItemIndex(activeElement);
951
+
952
+ var nextElement = element || activeElement && this._getItemByDirection(direction, activeElement);
953
+
954
+ var nextElementIndex = this._getItemIndex(nextElement);
955
+
956
+ var isCycling = Boolean(this._interval);
957
+ var directionalClassName;
958
+ var orderClassName;
959
+ var eventDirectionName;
960
+
961
+ if (direction === Direction.NEXT) {
962
+ directionalClassName = ClassName$2.LEFT;
963
+ orderClassName = ClassName$2.NEXT;
964
+ eventDirectionName = Direction.LEFT;
965
+ } else {
966
+ directionalClassName = ClassName$2.RIGHT;
967
+ orderClassName = ClassName$2.PREV;
968
+ eventDirectionName = Direction.RIGHT;
969
+ }
970
+
971
+ if (nextElement && $(nextElement).hasClass(ClassName$2.ACTIVE)) {
972
+ this._isSliding = false;
973
+ return;
974
+ }
975
+
976
+ var slideEvent = this._triggerSlideEvent(nextElement, eventDirectionName);
977
+
978
+ if (slideEvent.isDefaultPrevented()) {
979
+ return;
980
+ }
981
+
982
+ if (!activeElement || !nextElement) {
983
+ // Some weirdness is happening, so we bail
984
+ return;
985
+ }
986
+
987
+ this._isSliding = true;
988
+
989
+ if (isCycling) {
990
+ this.pause();
991
+ }
992
+
993
+ this._setActiveIndicatorElement(nextElement);
994
+
995
+ var slidEvent = $.Event(Event$2.SLID, {
996
+ relatedTarget: nextElement,
997
+ direction: eventDirectionName,
998
+ from: activeElementIndex,
999
+ to: nextElementIndex
1000
+ });
1001
+
1002
+ if ($(this._element).hasClass(ClassName$2.SLIDE)) {
1003
+ $(nextElement).addClass(orderClassName);
1004
+ Util.reflow(nextElement);
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;
1021
+ setTimeout(function () {
1022
+ return $(_this4._element).trigger(slidEvent);
1023
+ }, 0);
1024
+ }).emulateTransitionEnd(transitionDuration);
1025
+ } else {
1026
+ $(activeElement).removeClass(ClassName$2.ACTIVE);
1027
+ $(nextElement).addClass(ClassName$2.ACTIVE);
1028
+ this._isSliding = false;
1029
+ $(this._element).trigger(slidEvent);
1030
+ }
1031
+
1032
+ if (isCycling) {
1033
+ this.cycle();
1034
+ }
1035
+ } // Static
1036
+ ;
1037
+
1038
+ Carousel._jQueryInterface = function _jQueryInterface(config) {
1039
+ return this.each(function () {
1040
+ var data = $(this).data(DATA_KEY$2);
1041
+
1042
+ var _config = _objectSpread({}, Default, $(this).data());
1043
+
1044
+ if (typeof config === 'object') {
1045
+ _config = _objectSpread({}, _config, config);
1046
+ }
1047
+
1048
+ var action = typeof config === 'string' ? config : _config.slide;
1049
+
1050
+ if (!data) {
1051
+ data = new Carousel(this, _config);
1052
+ $(this).data(DATA_KEY$2, data);
1053
+ }
1054
+
1055
+ if (typeof config === 'number') {
1056
+ data.to(config);
1057
+ } else if (typeof action === 'string') {
1058
+ if (typeof data[action] === 'undefined') {
1059
+ throw new TypeError("No method named \"" + action + "\"");
1060
+ }
1061
+
1062
+ data[action]();
1063
+ } else if (_config.interval && _config.ride) {
1064
+ data.pause();
1065
+ data.cycle();
1066
+ }
1067
+ });
1068
+ };
1069
+
1070
+ Carousel._dataApiClickHandler = function _dataApiClickHandler(event) {
1071
+ var selector = Util.getSelectorFromElement(this);
1072
+
1073
+ if (!selector) {
1074
+ return;
1075
+ }
1076
+
1077
+ var target = $(selector)[0];
1078
+
1079
+ if (!target || !$(target).hasClass(ClassName$2.CAROUSEL)) {
1080
+ return;
1081
+ }
1082
+
1083
+ var config = _objectSpread({}, $(target).data(), $(this).data());
1084
+
1085
+ var slideIndex = this.getAttribute('data-slide-to');
1086
+
1087
+ if (slideIndex) {
1088
+ config.interval = false;
1089
+ }
1090
+
1091
+ Carousel._jQueryInterface.call($(target), config);
1092
+
1093
+ if (slideIndex) {
1094
+ $(target).data(DATA_KEY$2).to(slideIndex);
1095
+ }
1096
+
1097
+ event.preventDefault();
1098
+ };
1099
+
1100
+ _createClass(Carousel, null, [{
1101
+ key: "VERSION",
1102
+ get: function get() {
1103
+ return VERSION$2;
1104
+ }
1105
+ }, {
1106
+ key: "Default",
1107
+ get: function get() {
1108
+ return Default;
1109
+ }
1110
+ }]);
1111
+
1112
+ return Carousel;
1113
+ }();
1114
+ /**
1115
+ * ------------------------------------------------------------------------
1116
+ * Data Api implementation
1117
+ * ------------------------------------------------------------------------
1118
+ */
1119
+
1120
+
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]);
1127
+
1128
+ Carousel._jQueryInterface.call($carousel, $carousel.data());
1129
+ }
1130
+ });
1131
+ /**
1132
+ * ------------------------------------------------------------------------
1133
+ * jQuery
1134
+ * ------------------------------------------------------------------------
1135
+ */
1136
+
1137
+ $.fn[NAME$2] = Carousel._jQueryInterface;
1138
+ $.fn[NAME$2].Constructor = Carousel;
1139
+
1140
+ $.fn[NAME$2].noConflict = function () {
1141
+ $.fn[NAME$2] = JQUERY_NO_CONFLICT$2;
1142
+ return Carousel._jQueryInterface;
1143
+ };
1144
+
1145
+ /**
1146
+ * ------------------------------------------------------------------------
1147
+ * Constants
1148
+ * ------------------------------------------------------------------------
1149
+ */
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 = {
1158
+ toggle: true,
1159
+ parent: ''
1160
+ };
1161
+ var DefaultType$1 = {
1162
+ toggle: 'boolean',
1163
+ parent: '(string|element)'
1164
+ };
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
1171
+ };
1172
+ var ClassName$3 = {
1173
+ SHOW: 'show',
1174
+ COLLAPSE: 'collapse',
1175
+ COLLAPSING: 'collapsing',
1176
+ COLLAPSED: 'collapsed'
1177
+ };
1178
+ var Dimension = {
1179
+ WIDTH: 'width',
1180
+ HEIGHT: 'height'
1181
+ };
1182
+ var Selector$3 = {
1183
+ ACTIVES: '.show, .collapsing',
1184
+ DATA_TOGGLE: '[data-toggle="collapse"]'
1185
+ /**
1186
+ * ------------------------------------------------------------------------
1187
+ * Class Definition
1188
+ * ------------------------------------------------------------------------
1189
+ */
1190
+
1191
+ };
1192
+
1193
+ var Collapse =
1194
+ /*#__PURE__*/
1195
+ function () {
1196
+ function Collapse(element, config) {
1197
+ this._isTransitioning = false;
1198
+ this._element = element;
1199
+ this._config = this._getConfig(config);
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));
1202
+
1203
+ for (var i = 0, len = toggleList.length; i < len; i++) {
1204
+ var elem = toggleList[i];
1205
+ var selector = Util.getSelectorFromElement(elem);
1206
+ var filterElement = [].slice.call(document.querySelectorAll(selector)).filter(function (foundElem) {
1207
+ return foundElem === element;
1208
+ });
1209
+
1210
+ if (selector !== null && filterElement.length > 0) {
1211
+ this._selector = selector;
1212
+
1213
+ this._triggerArray.push(elem);
1214
+ }
1215
+ }
1216
+
1217
+ this._parent = this._config.parent ? this._getParent() : null;
1218
+
1219
+ if (!this._config.parent) {
1220
+ this._addAriaAndCollapsedClass(this._element, this._triggerArray);
1221
+ }
1222
+
1223
+ if (this._config.toggle) {
1224
+ this.toggle();
1225
+ }
1226
+ } // Getters
1227
+
1228
+
1229
+ var _proto = Collapse.prototype;
1230
+
1231
+ // Public
1232
+ _proto.toggle = function toggle() {
1233
+ if ($(this._element).hasClass(ClassName$3.SHOW)) {
1234
+ this.hide();
1235
+ } else {
1236
+ this.show();
1237
+ }
1238
+ };
1239
+
1240
+ _proto.show = function show() {
1241
+ var _this = this;
1242
+
1243
+ if (this._isTransitioning || $(this._element).hasClass(ClassName$3.SHOW)) {
1244
+ return;
1245
+ }
1246
+
1247
+ var actives;
1248
+ var activesData;
1249
+
1250
+ if (this._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
+ });
1258
+
1259
+ if (actives.length === 0) {
1260
+ actives = null;
1261
+ }
1262
+ }
1263
+
1264
+ if (actives) {
1265
+ activesData = $(actives).not(this._selector).data(DATA_KEY$3);
1266
+
1267
+ if (activesData && activesData._isTransitioning) {
1268
+ return;
1269
+ }
1270
+ }
1271
+
1272
+ var startEvent = $.Event(Event$3.SHOW);
1273
+ $(this._element).trigger(startEvent);
1274
+
1275
+ if (startEvent.isDefaultPrevented()) {
1276
+ return;
1277
+ }
1278
+
1279
+ if (actives) {
1280
+ Collapse._jQueryInterface.call($(actives).not(this._selector), 'hide');
1281
+
1282
+ if (!activesData) {
1283
+ $(actives).data(DATA_KEY$3, null);
1284
+ }
1285
+ }
1286
+
1287
+ var dimension = this._getDimension();
1288
+
1289
+ $(this._element).removeClass(ClassName$3.COLLAPSE).addClass(ClassName$3.COLLAPSING);
1290
+ this._element.style[dimension] = 0;
1291
+
1292
+ if (this._triggerArray.length) {
1293
+ $(this._triggerArray).removeClass(ClassName$3.COLLAPSED).attr('aria-expanded', true);
1294
+ }
1295
+
1296
+ this.setTransitioning(true);
1297
+
1298
+ var complete = function complete() {
1299
+ $(_this._element).removeClass(ClassName$3.COLLAPSING).addClass(ClassName$3.COLLAPSE).addClass(ClassName$3.SHOW);
1300
+ _this._element.style[dimension] = '';
1301
+
1302
+ _this.setTransitioning(false);
1303
+
1304
+ $(_this._element).trigger(Event$3.SHOWN);
1305
+ };
1306
+
1307
+ var capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1);
1308
+ var scrollSize = "scroll" + capitalizedDimension;
1309
+ var transitionDuration = Util.getTransitionDurationFromElement(this._element);
1310
+ $(this._element).one(Util.TRANSITION_END, complete).emulateTransitionEnd(transitionDuration);
1311
+ this._element.style[dimension] = this._element[scrollSize] + "px";
1312
+ };
1313
+
1314
+ _proto.hide = function hide() {
1315
+ var _this2 = this;
1316
+
1317
+ if (this._isTransitioning || !$(this._element).hasClass(ClassName$3.SHOW)) {
1318
+ return;
1319
+ }
1320
+
1321
+ var startEvent = $.Event(Event$3.HIDE);
1322
+ $(this._element).trigger(startEvent);
1323
+
1324
+ if (startEvent.isDefaultPrevented()) {
1325
+ return;
1326
+ }
1327
+
1328
+ var dimension = this._getDimension();
1329
+
1330
+ this._element.style[dimension] = this._element.getBoundingClientRect()[dimension] + "px";
1331
+ Util.reflow(this._element);
1332
+ $(this._element).addClass(ClassName$3.COLLAPSING).removeClass(ClassName$3.COLLAPSE).removeClass(ClassName$3.SHOW);
1333
+ var triggerArrayLength = this._triggerArray.length;
1334
+
1335
+ if (triggerArrayLength > 0) {
1336
+ for (var i = 0; i < triggerArrayLength; i++) {
1337
+ var trigger = this._triggerArray[i];
1338
+ var selector = Util.getSelectorFromElement(trigger);
1339
+
1340
+ if (selector !== null) {
1341
+ var $elem = $([].slice.call(document.querySelectorAll(selector)));
1342
+
1343
+ if (!$elem.hasClass(ClassName$3.SHOW)) {
1344
+ $(trigger).addClass(ClassName$3.COLLAPSED).attr('aria-expanded', false);
1345
+ }
1346
+ }
1347
+ }
1348
+ }
1349
+
1350
+ this.setTransitioning(true);
1351
+
1352
+ var complete = function complete() {
1353
+ _this2.setTransitioning(false);
1354
+
1355
+ $(_this2._element).removeClass(ClassName$3.COLLAPSING).addClass(ClassName$3.COLLAPSE).trigger(Event$3.HIDDEN);
1356
+ };
1357
+
1358
+ this._element.style[dimension] = '';
1359
+ var transitionDuration = Util.getTransitionDurationFromElement(this._element);
1360
+ $(this._element).one(Util.TRANSITION_END, complete).emulateTransitionEnd(transitionDuration);
1361
+ };
1362
+
1363
+ _proto.setTransitioning = function setTransitioning(isTransitioning) {
1364
+ this._isTransitioning = isTransitioning;
1365
+ };
1366
+
1367
+ _proto.dispose = function dispose() {
1368
+ $.removeData(this._element, DATA_KEY$3);
1369
+ this._config = null;
1370
+ this._parent = null;
1371
+ this._element = null;
1372
+ this._triggerArray = null;
1373
+ this._isTransitioning = null;
1374
+ } // Private
1375
+ ;
1376
+
1377
+ _proto._getConfig = function _getConfig(config) {
1378
+ config = _objectSpread({}, Default$1, config);
1379
+ config.toggle = Boolean(config.toggle); // Coerce string values
1380
+
1381
+ Util.typeCheckConfig(NAME$3, config, DefaultType$1);
1382
+ return config;
1383
+ };
1384
+
1385
+ _proto._getDimension = function _getDimension() {
1386
+ var hasWidth = $(this._element).hasClass(Dimension.WIDTH);
1387
+ return hasWidth ? Dimension.WIDTH : Dimension.HEIGHT;
1388
+ };
1389
+
1390
+ _proto._getParent = function _getParent() {
1391
+ var _this3 = this;
1392
+
1393
+ var parent;
1394
+
1395
+ if (Util.isElement(this._config.parent)) {
1396
+ parent = this._config.parent; // It's a jQuery object
1397
+
1398
+ if (typeof this._config.parent.jquery !== 'undefined') {
1399
+ parent = this._config.parent[0];
1400
+ }
1401
+ } else {
1402
+ parent = document.querySelector(this._config.parent);
1403
+ }
1404
+
1405
+ var selector = "[data-toggle=\"collapse\"][data-parent=\"" + this._config.parent + "\"]";
1406
+ var children = [].slice.call(parent.querySelectorAll(selector));
1407
+ $(children).each(function (i, element) {
1408
+ _this3._addAriaAndCollapsedClass(Collapse._getTargetFromElement(element), [element]);
1409
+ });
1410
+ return parent;
1411
+ };
1412
+
1413
+ _proto._addAriaAndCollapsedClass = function _addAriaAndCollapsedClass(element, triggerArray) {
1414
+ var isOpen = $(element).hasClass(ClassName$3.SHOW);
1415
+
1416
+ if (triggerArray.length) {
1417
+ $(triggerArray).toggleClass(ClassName$3.COLLAPSED, !isOpen).attr('aria-expanded', isOpen);
1418
+ }
1419
+ } // Static
1420
+ ;
1421
+
1422
+ Collapse._getTargetFromElement = function _getTargetFromElement(element) {
1423
+ var selector = Util.getSelectorFromElement(element);
1424
+ return selector ? document.querySelector(selector) : null;
1425
+ };
1426
+
1427
+ Collapse._jQueryInterface = function _jQueryInterface(config) {
1428
+ return this.each(function () {
1429
+ var $this = $(this);
1430
+ var data = $this.data(DATA_KEY$3);
1431
+
1432
+ var _config = _objectSpread({}, Default$1, $this.data(), typeof config === 'object' && config ? config : {});
1433
+
1434
+ if (!data && _config.toggle && /show|hide/.test(config)) {
1435
+ _config.toggle = false;
1436
+ }
1437
+
1438
+ if (!data) {
1439
+ data = new Collapse(this, _config);
1440
+ $this.data(DATA_KEY$3, data);
1441
+ }
1442
+
1443
+ if (typeof config === 'string') {
1444
+ if (typeof data[config] === 'undefined') {
1445
+ throw new TypeError("No method named \"" + config + "\"");
1446
+ }
1447
+
1448
+ data[config]();
1449
+ }
1450
+ });
1451
+ };
1452
+
1453
+ _createClass(Collapse, null, [{
1454
+ key: "VERSION",
1455
+ get: function get() {
1456
+ return VERSION$3;
1457
+ }
1458
+ }, {
1459
+ key: "Default",
1460
+ get: function get() {
1461
+ return Default$1;
1462
+ }
1463
+ }]);
1464
+
1465
+ return Collapse;
1466
+ }();
1467
+ /**
1468
+ * ------------------------------------------------------------------------
1469
+ * Data Api implementation
1470
+ * ------------------------------------------------------------------------
1471
+ */
1472
+
1473
+
1474
+ $(document).on(Event$3.CLICK_DATA_API, Selector$3.DATA_TOGGLE, function (event) {
1475
+ // preventDefault only for <a> elements (which change the URL) not inside the collapsible element
1476
+ if (event.currentTarget.tagName === 'A') {
1477
+ event.preventDefault();
1478
+ }
1479
+
1480
+ var $trigger = $(this);
1481
+ var selector = Util.getSelectorFromElement(this);
1482
+ var selectors = [].slice.call(document.querySelectorAll(selector));
1483
+ $(selectors).each(function () {
1484
+ var $target = $(this);
1485
+ var data = $target.data(DATA_KEY$3);
1486
+ var config = data ? 'toggle' : $trigger.data();
1487
+
1488
+ Collapse._jQueryInterface.call($target, config);
1489
+ });
1490
+ });
1491
+ /**
1492
+ * ------------------------------------------------------------------------
1493
+ * jQuery
1494
+ * ------------------------------------------------------------------------
1495
+ */
1496
+
1497
+ $.fn[NAME$3] = Collapse._jQueryInterface;
1498
+ $.fn[NAME$3].Constructor = Collapse;
1499
+
1500
+ $.fn[NAME$3].noConflict = function () {
1501
+ $.fn[NAME$3] = JQUERY_NO_CONFLICT$3;
1502
+ return Collapse._jQueryInterface;
1503
+ };
1504
+
1505
+ /**
1506
+ * ------------------------------------------------------------------------
1507
+ * Constants
1508
+ * ------------------------------------------------------------------------
1509
+ */
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];
1517
+ var ESCAPE_KEYCODE = 27; // KeyboardEvent.which value for Escape (Esc) key
1518
+
1519
+ var SPACE_KEYCODE = 32; // KeyboardEvent.which value for space key
1520
+
1521
+ var TAB_KEYCODE = 9; // KeyboardEvent.which value for tab key
1522
+
1523
+ var ARROW_UP_KEYCODE = 38; // KeyboardEvent.which value for up arrow key
1524
+
1525
+ var ARROW_DOWN_KEYCODE = 40; // KeyboardEvent.which value for down arrow key
1526
+
1527
+ var RIGHT_MOUSE_BUTTON_WHICH = 3; // MouseEvent.which value for the right button (assuming a right-handed mouse)
1528
+
1529
+ var REGEXP_KEYDOWN = new RegExp(ARROW_UP_KEYCODE + "|" + ARROW_DOWN_KEYCODE + "|" + ESCAPE_KEYCODE);
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
1539
+ };
1540
+ var ClassName$4 = {
1541
+ DISABLED: 'disabled',
1542
+ SHOW: 'show',
1543
+ DROPUP: 'dropup',
1544
+ DROPRIGHT: 'dropright',
1545
+ DROPLEFT: 'dropleft',
1546
+ MENURIGHT: 'dropdown-menu-right',
1547
+ MENULEFT: 'dropdown-menu-left',
1548
+ POSITION_STATIC: 'position-static'
1549
+ };
1550
+ var Selector$4 = {
1551
+ DATA_TOGGLE: '[data-toggle="dropdown"]',
1552
+ FORM_CHILD: '.dropdown form',
1553
+ MENU: '.dropdown-menu',
1554
+ NAVBAR_NAV: '.navbar-nav',
1555
+ VISIBLE_ITEMS: '.dropdown-menu .dropdown-item:not(.disabled):not(:disabled)'
1556
+ };
1557
+ var AttachmentMap = {
1558
+ TOP: 'top-start',
1559
+ TOPEND: 'top-end',
1560
+ BOTTOM: 'bottom-start',
1561
+ BOTTOMEND: 'bottom-end',
1562
+ RIGHT: 'right-start',
1563
+ RIGHTEND: 'right-end',
1564
+ LEFT: 'left-start',
1565
+ LEFTEND: 'left-end'
1566
+ };
1567
+ var Default$2 = {
1568
+ offset: 0,
1569
+ flip: true,
1570
+ boundary: 'scrollParent',
1571
+ reference: 'toggle',
1572
+ display: 'dynamic'
1573
+ };
1574
+ var DefaultType$2 = {
1575
+ offset: '(number|string|function)',
1576
+ flip: 'boolean',
1577
+ boundary: '(string|element)',
1578
+ reference: '(string|element)',
1579
+ display: 'string'
1580
+ /**
1581
+ * ------------------------------------------------------------------------
1582
+ * Class Definition
1583
+ * ------------------------------------------------------------------------
1584
+ */
1585
+
1586
+ };
1587
+
1588
+ var Dropdown =
1589
+ /*#__PURE__*/
1590
+ function () {
1591
+ function Dropdown(element, config) {
1592
+ this._element = element;
1593
+ this._popper = null;
1594
+ this._config = this._getConfig(config);
1595
+ this._menu = this._getMenuElement();
1596
+ this._inNavbar = this._detectNavbar();
1597
+
1598
+ this._addEventListeners();
1599
+ } // Getters
1600
+
1601
+
1602
+ var _proto = Dropdown.prototype;
1603
+
1604
+ // Public
1605
+ _proto.toggle = function toggle() {
1606
+ if (this._element.disabled || $(this._element).hasClass(ClassName$4.DISABLED)) {
1607
+ return;
1608
+ }
1609
+
1610
+ var parent = Dropdown._getParentFromElement(this._element);
1611
+
1612
+ var isActive = $(this._menu).hasClass(ClassName$4.SHOW);
1613
+
1614
+ Dropdown._clearMenus();
1615
+
1616
+ if (isActive) {
1617
+ return;
1618
+ }
1619
+
1620
+ var relatedTarget = {
1621
+ relatedTarget: this._element
1622
+ };
1623
+ var showEvent = $.Event(Event$4.SHOW, relatedTarget);
1624
+ $(parent).trigger(showEvent);
1625
+
1626
+ if (showEvent.isDefaultPrevented()) {
1627
+ return;
1628
+ } // Disable totally Popper.js for Dropdown in Navbar
1629
+
1630
+
1631
+ if (!this._inNavbar) {
1632
+ /**
1633
+ * Check for Popper dependency
1634
+ * Popper - https://popper.js.org
1635
+ */
1636
+ if (typeof Popper === 'undefined') {
1637
+ throw new TypeError('Bootstrap\'s dropdowns require Popper.js (https://popper.js.org/)');
1638
+ }
1639
+
1640
+ var referenceElement = this._element;
1641
+
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];
1649
+ }
1650
+ } // If boundary is not `scrollParent`, then set position to `static`
1651
+ // to allow the menu to "escape" the scroll parent's boundaries
1652
+ // https://github.com/twbs/bootstrap/issues/24251
1653
+
1654
+
1655
+ if (this._config.boundary !== 'scrollParent') {
1656
+ $(parent).addClass(ClassName$4.POSITION_STATIC);
1657
+ }
1658
+
1659
+ this._popper = new Popper(referenceElement, this._menu, this._getPopperConfig());
1660
+ } // If this is a touch-enabled device we add extra
1661
+ // empty mouseover listeners to the body's immediate children;
1662
+ // only needed because of broken event delegation on iOS
1663
+ // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html
1664
+
1665
+
1666
+ if ('ontouchstart' in document.documentElement && $(parent).closest(Selector$4.NAVBAR_NAV).length === 0) {
1667
+ $(document.body).children().on('mouseover', null, $.noop);
1668
+ }
1669
+
1670
+ this._element.focus();
1671
+
1672
+ this._element.setAttribute('aria-expanded', true);
1673
+
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));
1720
+ };
1721
+
1722
+ _proto.dispose = function dispose() {
1723
+ $.removeData(this._element, DATA_KEY$4);
1724
+ $(this._element).off(EVENT_KEY$4);
1725
+ this._element = null;
1726
+ this._menu = null;
1727
+
1728
+ if (this._popper !== null) {
1729
+ this._popper.destroy();
1730
+
1731
+ this._popper = null;
1732
+ }
1733
+ };
1734
+
1735
+ _proto.update = function update() {
1736
+ this._inNavbar = this._detectNavbar();
1737
+
1738
+ if (this._popper !== null) {
1739
+ this._popper.scheduleUpdate();
1740
+ }
1741
+ } // Private
1742
+ ;
1743
+
1744
+ _proto._addEventListeners = function _addEventListeners() {
1745
+ var _this = this;
1746
+
1747
+ $(this._element).on(Event$4.CLICK, function (event) {
1748
+ event.preventDefault();
1749
+ event.stopPropagation();
1750
+
1751
+ _this.toggle();
1752
+ });
1753
+ };
1754
+
1755
+ _proto._getConfig = function _getConfig(config) {
1756
+ config = _objectSpread({}, this.constructor.Default, $(this._element).data(), config);
1757
+ Util.typeCheckConfig(NAME$4, config, this.constructor.DefaultType);
1758
+ return config;
1759
+ };
1760
+
1761
+ _proto._getMenuElement = function _getMenuElement() {
1762
+ if (!this._menu) {
1763
+ var parent = Dropdown._getParentFromElement(this._element);
1764
+
1765
+ if (parent) {
1766
+ this._menu = parent.querySelector(Selector$4.MENU);
1767
+ }
1768
+ }
1769
+
1770
+ return this._menu;
1771
+ };
1772
+
1773
+ _proto._getPlacement = function _getPlacement() {
1774
+ var $parentDropdown = $(this._element.parentNode);
1775
+ var placement = AttachmentMap.BOTTOM; // Handle dropup
1776
+
1777
+ if ($parentDropdown.hasClass(ClassName$4.DROPUP)) {
1778
+ placement = AttachmentMap.TOP;
1779
+
1780
+ if ($(this._menu).hasClass(ClassName$4.MENURIGHT)) {
1781
+ placement = AttachmentMap.TOPEND;
1782
+ }
1783
+ } else if ($parentDropdown.hasClass(ClassName$4.DROPRIGHT)) {
1784
+ placement = AttachmentMap.RIGHT;
1785
+ } else if ($parentDropdown.hasClass(ClassName$4.DROPLEFT)) {
1786
+ placement = AttachmentMap.LEFT;
1787
+ } else if ($(this._menu).hasClass(ClassName$4.MENURIGHT)) {
1788
+ placement = AttachmentMap.BOTTOMEND;
1789
+ }
1790
+
1791
+ return placement;
1792
+ };
1793
+
1794
+ _proto._detectNavbar = function _detectNavbar() {
1795
+ return $(this._element).closest('.navbar').length > 0;
1796
+ };
1797
+
1798
+ _proto._getOffset = function _getOffset() {
1799
+ var _this2 = this;
1800
+
1801
+ var offset = {};
1802
+
1803
+ if (typeof this._config.offset === 'function') {
1804
+ offset.fn = function (data) {
1805
+ data.offsets = _objectSpread({}, data.offsets, _this2._config.offset(data.offsets, _this2._element) || {});
1806
+ return data;
1807
+ };
1808
+ } else {
1809
+ offset.offset = this._config.offset;
1810
+ }
1811
+
1812
+ return offset;
1813
+ };
1814
+
1815
+ _proto._getPopperConfig = function _getPopperConfig() {
1816
+ var popperConfig = {
1817
+ placement: this._getPlacement(),
1818
+ modifiers: {
1819
+ offset: this._getOffset(),
1820
+ flip: {
1821
+ enabled: this._config.flip
1822
+ },
1823
+ preventOverflow: {
1824
+ boundariesElement: this._config.boundary
1825
+ }
1826
+ } // Disable Popper.js if we have a static display
1827
+
1828
+ };
1829
+
1830
+ if (this._config.display === 'static') {
1831
+ popperConfig.modifiers.applyStyle = {
1832
+ enabled: false
1833
+ };
1834
+ }
1835
+
1836
+ return popperConfig;
1837
+ } // Static
1838
+ ;
1839
+
1840
+ Dropdown._jQueryInterface = function _jQueryInterface(config) {
1841
+ return this.each(function () {
1842
+ var data = $(this).data(DATA_KEY$4);
1843
+
1844
+ var _config = typeof config === 'object' ? config : null;
1845
+
1846
+ if (!data) {
1847
+ data = new Dropdown(this, _config);
1848
+ $(this).data(DATA_KEY$4, data);
1849
+ }
1850
+
1851
+ if (typeof config === 'string') {
1852
+ if (typeof data[config] === 'undefined') {
1853
+ throw new TypeError("No method named \"" + config + "\"");
1854
+ }
1855
+
1856
+ data[config]();
1857
+ }
1858
+ });
1859
+ };
1860
+
1861
+ Dropdown._clearMenus = function _clearMenus(event) {
1862
+ if (event && (event.which === RIGHT_MOUSE_BUTTON_WHICH || event.type === 'keyup' && event.which !== TAB_KEYCODE)) {
1863
+ return;
1864
+ }
1865
+
1866
+ var toggles = [].slice.call(document.querySelectorAll(Selector$4.DATA_TOGGLE));
1867
+
1868
+ for (var i = 0, len = toggles.length; i < len; i++) {
1869
+ var parent = Dropdown._getParentFromElement(toggles[i]);
1870
+
1871
+ var context = $(toggles[i]).data(DATA_KEY$4);
1872
+ var relatedTarget = {
1873
+ relatedTarget: toggles[i]
1874
+ };
1875
+
1876
+ if (event && event.type === 'click') {
1877
+ relatedTarget.clickEvent = event;
1878
+ }
1879
+
1880
+ if (!context) {
1881
+ continue;
1882
+ }
1883
+
1884
+ var dropdownMenu = context._menu;
1885
+
1886
+ if (!$(parent).hasClass(ClassName$4.SHOW)) {
1887
+ continue;
1888
+ }
1889
+
1890
+ if (event && (event.type === 'click' && /input|textarea/i.test(event.target.tagName) || event.type === 'keyup' && event.which === TAB_KEYCODE) && $.contains(parent, event.target)) {
1891
+ continue;
1892
+ }
1893
+
1894
+ var hideEvent = $.Event(Event$4.HIDE, relatedTarget);
1895
+ $(parent).trigger(hideEvent);
1896
+
1897
+ if (hideEvent.isDefaultPrevented()) {
1898
+ continue;
1899
+ } // If this is a touch-enabled device we remove the extra
1900
+ // empty mouseover listeners we added for iOS support
1901
+
1902
+
1903
+ if ('ontouchstart' in document.documentElement) {
1904
+ $(document.body).children().off('mouseover', null, $.noop);
1905
+ }
1906
+
1907
+ toggles[i].setAttribute('aria-expanded', 'false');
1908
+ $(dropdownMenu).removeClass(ClassName$4.SHOW);
1909
+ $(parent).removeClass(ClassName$4.SHOW).trigger($.Event(Event$4.HIDDEN, relatedTarget));
1910
+ }
1911
+ };
1912
+
1913
+ Dropdown._getParentFromElement = function _getParentFromElement(element) {
1914
+ var parent;
1915
+ var selector = Util.getSelectorFromElement(element);
1916
+
1917
+ if (selector) {
1918
+ parent = document.querySelector(selector);
1919
+ }
1920
+
1921
+ return parent || element.parentNode;
1922
+ } // eslint-disable-next-line complexity
1923
+ ;
1924
+
1925
+ Dropdown._dataApiKeydownHandler = function _dataApiKeydownHandler(event) {
1926
+ // If not input/textarea:
1927
+ // - And not a key in REGEXP_KEYDOWN => not a dropdown command
1928
+ // If input/textarea:
1929
+ // - If space key => not a dropdown command
1930
+ // - If key is other than escape
1931
+ // - If key is not up or down => not a dropdown command
1932
+ // - If trigger inside the menu => not a dropdown command
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)) {
1934
+ return;
1935
+ }
1936
+
1937
+ event.preventDefault();
1938
+ event.stopPropagation();
1939
+
1940
+ if (this.disabled || $(this).hasClass(ClassName$4.DISABLED)) {
1941
+ return;
1942
+ }
1943
+
1944
+ var parent = Dropdown._getParentFromElement(this);
1945
+
1946
+ var isActive = $(parent).hasClass(ClassName$4.SHOW);
1947
+
1948
+ if (!isActive || isActive && (event.which === ESCAPE_KEYCODE || event.which === SPACE_KEYCODE)) {
1949
+ if (event.which === ESCAPE_KEYCODE) {
1950
+ var toggle = parent.querySelector(Selector$4.DATA_TOGGLE);
1951
+ $(toggle).trigger('focus');
1952
+ }
1953
+
1954
+ $(this).trigger('click');
1955
+ return;
1956
+ }
1957
+
1958
+ var items = [].slice.call(parent.querySelectorAll(Selector$4.VISIBLE_ITEMS));
1959
+
1960
+ if (items.length === 0) {
1961
+ return;
1962
+ }
1963
+
1964
+ var index = items.indexOf(event.target);
1965
+
1966
+ if (event.which === ARROW_UP_KEYCODE && index > 0) {
1967
+ // Up
1968
+ index--;
1969
+ }
1970
+
1971
+ if (event.which === ARROW_DOWN_KEYCODE && index < items.length - 1) {
1972
+ // Down
1973
+ index++;
1974
+ }
1975
+
1976
+ if (index < 0) {
1977
+ index = 0;
1978
+ }
1979
+
1980
+ items[index].focus();
1981
+ };
1982
+
1983
+ _createClass(Dropdown, null, [{
1984
+ key: "VERSION",
1985
+ get: function get() {
1986
+ return VERSION$4;
1987
+ }
1988
+ }, {
1989
+ key: "Default",
1990
+ get: function get() {
1991
+ return Default$2;
1992
+ }
1993
+ }, {
1994
+ key: "DefaultType",
1995
+ get: function get() {
1996
+ return DefaultType$2;
1997
+ }
1998
+ }]);
1999
+
2000
+ return Dropdown;
2001
+ }();
2002
+ /**
2003
+ * ------------------------------------------------------------------------
2004
+ * Data Api implementation
2005
+ * ------------------------------------------------------------------------
2006
+ */
2007
+
2008
+
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) {
2010
+ event.preventDefault();
2011
+ event.stopPropagation();
2012
+
2013
+ Dropdown._jQueryInterface.call($(this), 'toggle');
2014
+ }).on(Event$4.CLICK_DATA_API, Selector$4.FORM_CHILD, function (e) {
2015
+ e.stopPropagation();
2016
+ });
2017
+ /**
2018
+ * ------------------------------------------------------------------------
2019
+ * jQuery
2020
+ * ------------------------------------------------------------------------
2021
+ */
2022
+
2023
+ $.fn[NAME$4] = Dropdown._jQueryInterface;
2024
+ $.fn[NAME$4].Constructor = Dropdown;
2025
+
2026
+ $.fn[NAME$4].noConflict = function () {
2027
+ $.fn[NAME$4] = JQUERY_NO_CONFLICT$4;
2028
+ return Dropdown._jQueryInterface;
2029
+ };
2030
+
2031
+ /**
2032
+ * ------------------------------------------------------------------------
2033
+ * Constants
2034
+ * ------------------------------------------------------------------------
2035
+ */
2036
+
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 = {
2046
+ backdrop: true,
2047
+ keyboard: true,
2048
+ focus: true,
2049
+ show: true
2050
+ };
2051
+ var DefaultType$3 = {
2052
+ backdrop: '(boolean|string)',
2053
+ keyboard: 'boolean',
2054
+ focus: 'boolean',
2055
+ show: 'boolean'
2056
+ };
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
2069
+ };
2070
+ var ClassName$5 = {
2071
+ SCROLLABLE: 'modal-dialog-scrollable',
2072
+ SCROLLBAR_MEASURER: 'modal-scrollbar-measure',
2073
+ BACKDROP: 'modal-backdrop',
2074
+ OPEN: 'modal-open',
2075
+ FADE: 'fade',
2076
+ SHOW: 'show'
2077
+ };
2078
+ var Selector$5 = {
2079
+ DIALOG: '.modal-dialog',
2080
+ MODAL_BODY: '.modal-body',
2081
+ DATA_TOGGLE: '[data-toggle="modal"]',
2082
+ DATA_DISMISS: '[data-dismiss="modal"]',
2083
+ FIXED_CONTENT: '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top',
2084
+ STICKY_CONTENT: '.sticky-top'
2085
+ /**
2086
+ * ------------------------------------------------------------------------
2087
+ * Class Definition
2088
+ * ------------------------------------------------------------------------
2089
+ */
2090
+
2091
+ };
2092
+
2093
+ var Modal =
2094
+ /*#__PURE__*/
2095
+ function () {
2096
+ function Modal(element, config) {
2097
+ this._config = this._getConfig(config);
2098
+ this._element = element;
2099
+ this._dialog = element.querySelector(Selector$5.DIALOG);
2100
+ this._backdrop = null;
2101
+ this._isShown = false;
2102
+ this._isBodyOverflowing = false;
2103
+ this._ignoreBackdropClick = false;
2104
+ this._isTransitioning = false;
2105
+ this._scrollbarWidth = 0;
2106
+ } // Getters
2107
+
2108
+
2109
+ var _proto = Modal.prototype;
2110
+
2111
+ // Public
2112
+ _proto.toggle = function toggle(relatedTarget) {
2113
+ return this._isShown ? this.hide() : this.show(relatedTarget);
2114
+ };
2115
+
2116
+ _proto.show = function show(relatedTarget) {
2117
+ var _this = this;
2118
+
2119
+ if (this._isShown || this._isTransitioning) {
2120
+ return;
2121
+ }
2122
+
2123
+ if ($(this._element).hasClass(ClassName$5.FADE)) {
2124
+ this._isTransitioning = true;
2125
+ }
2126
+
2127
+ var showEvent = $.Event(Event$5.SHOW, {
2128
+ relatedTarget: relatedTarget
2129
+ });
2130
+ $(this._element).trigger(showEvent);
2131
+
2132
+ if (this._isShown || showEvent.isDefaultPrevented()) {
2133
+ return;
2134
+ }
2135
+
2136
+ this._isShown = true;
2137
+
2138
+ this._checkScrollbar();
2139
+
2140
+ this._setScrollbar();
2141
+
2142
+ this._adjustDialog();
2143
+
2144
+ this._setEscapeEvent();
2145
+
2146
+ this._setResizeEvent();
2147
+
2148
+ $(this._element).on(Event$5.CLICK_DISMISS, Selector$5.DATA_DISMISS, function (event) {
2149
+ return _this.hide(event);
2150
+ });
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)) {
2154
+ _this._ignoreBackdropClick = true;
2155
+ }
2156
+ });
2157
+ });
2158
+
2159
+ this._showBackdrop(function () {
2160
+ return _this._showElement(relatedTarget);
2161
+ });
2162
+ };
2163
+
2164
+ _proto.hide = function hide(event) {
2165
+ var _this2 = this;
2166
+
2167
+ if (event) {
2168
+ event.preventDefault();
2169
+ }
2170
+
2171
+ if (!this._isShown || this._isTransitioning) {
2172
+ return;
2173
+ }
2174
+
2175
+ var hideEvent = $.Event(Event$5.HIDE);
2176
+ $(this._element).trigger(hideEvent);
2177
+
2178
+ if (!this._isShown || hideEvent.isDefaultPrevented()) {
2179
+ return;
2180
+ }
2181
+
2182
+ this._isShown = false;
2183
+ var transition = $(this._element).hasClass(ClassName$5.FADE);
2184
+
2185
+ if (transition) {
2186
+ this._isTransitioning = true;
2187
+ }
2188
+
2189
+ this._setEscapeEvent();
2190
+
2191
+ this._setResizeEvent();
2192
+
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);
2197
+
2198
+ if (transition) {
2199
+ var transitionDuration = Util.getTransitionDurationFromElement(this._element);
2200
+ $(this._element).one(Util.TRANSITION_END, function (event) {
2201
+ return _this2._hideModal(event);
2202
+ }).emulateTransitionEnd(transitionDuration);
2203
+ } else {
2204
+ this._hideModal();
2205
+ }
2206
+ };
2207
+
2208
+ _proto.dispose = function dispose() {
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);
2220
+ this._config = null;
2221
+ this._element = null;
2222
+ this._dialog = null;
2223
+ this._backdrop = null;
2224
+ this._isShown = null;
2225
+ this._isBodyOverflowing = null;
2226
+ this._ignoreBackdropClick = null;
2227
+ this._isTransitioning = null;
2228
+ this._scrollbarWidth = null;
2229
+ };
2230
+
2231
+ _proto.handleUpdate = function handleUpdate() {
2232
+ this._adjustDialog();
2233
+ } // Private
2234
+ ;
2235
+
2236
+ _proto._getConfig = function _getConfig(config) {
2237
+ config = _objectSpread({}, Default$3, config);
2238
+ Util.typeCheckConfig(NAME$5, config, DefaultType$3);
2239
+ return config;
2240
+ };
2241
+
2242
+ _proto._showElement = function _showElement(relatedTarget) {
2243
+ var _this3 = this;
2244
+
2245
+ var transition = $(this._element).hasClass(ClassName$5.FADE);
2246
+
2247
+ if (!this._element.parentNode || this._element.parentNode.nodeType !== Node.ELEMENT_NODE) {
2248
+ // Don't move modal's DOM position
2249
+ document.body.appendChild(this._element);
2250
+ }
2251
+
2252
+ this._element.style.display = 'block';
2253
+
2254
+ this._element.removeAttribute('aria-hidden');
2255
+
2256
+ this._element.setAttribute('aria-modal', true);
2257
+
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);
2266
+ }
2267
+
2268
+ $(this._element).addClass(ClassName$5.SHOW);
2269
+
2270
+ if (this._config.focus) {
2271
+ this._enforceFocus();
2272
+ }
2273
+
2274
+ var shownEvent = $.Event(Event$5.SHOWN, {
2275
+ relatedTarget: relatedTarget
2276
+ });
2277
+
2278
+ var transitionComplete = function transitionComplete() {
2279
+ if (_this3._config.focus) {
2280
+ _this3._element.focus();
2281
+ }
2282
+
2283
+ _this3._isTransitioning = false;
2284
+ $(_this3._element).trigger(shownEvent);
2285
+ };
2286
+
2287
+ if (transition) {
2288
+ var transitionDuration = Util.getTransitionDurationFromElement(this._dialog);
2289
+ $(this._dialog).one(Util.TRANSITION_END, transitionComplete).emulateTransitionEnd(transitionDuration);
2290
+ } else {
2291
+ transitionComplete();
2292
+ }
2293
+ };
2294
+
2295
+ _proto._enforceFocus = function _enforceFocus() {
2296
+ var _this4 = this;
2297
+
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) {
2301
+ _this4._element.focus();
2302
+ }
2303
+ });
2304
+ };
2305
+
2306
+ _proto._setEscapeEvent = function _setEscapeEvent() {
2307
+ var _this5 = this;
2308
+
2309
+ if (this._isShown && this._config.keyboard) {
2310
+ $(this._element).on(Event$5.KEYDOWN_DISMISS, function (event) {
2311
+ if (event.which === ESCAPE_KEYCODE$1) {
2312
+ event.preventDefault();
2313
+
2314
+ _this5.hide();
2315
+ }
2316
+ });
2317
+ } else if (!this._isShown) {
2318
+ $(this._element).off(Event$5.KEYDOWN_DISMISS);
2319
+ }
2320
+ };
2321
+
2322
+ _proto._setResizeEvent = function _setResizeEvent() {
2323
+ var _this6 = this;
2324
+
2325
+ if (this._isShown) {
2326
+ $(window).on(Event$5.RESIZE, function (event) {
2327
+ return _this6.handleUpdate(event);
2328
+ });
2329
+ } else {
2330
+ $(window).off(Event$5.RESIZE);
2331
+ }
2332
+ };
2333
+
2334
+ _proto._hideModal = function _hideModal() {
2335
+ var _this7 = this;
2336
+
2337
+ this._element.style.display = 'none';
2338
+
2339
+ this._element.setAttribute('aria-hidden', true);
2340
+
2341
+ this._element.removeAttribute('aria-modal');
2342
+
2343
+ this._isTransitioning = false;
2344
+
2345
+ this._showBackdrop(function () {
2346
+ $(document.body).removeClass(ClassName$5.OPEN);
2347
+
2348
+ _this7._resetAdjustments();
2349
+
2350
+ _this7._resetScrollbar();
2351
+
2352
+ $(_this7._element).trigger(Event$5.HIDDEN);
2353
+ });
2354
+ };
2355
+
2356
+ _proto._removeBackdrop = function _removeBackdrop() {
2357
+ if (this._backdrop) {
2358
+ $(this._backdrop).remove();
2359
+ this._backdrop = null;
2360
+ }
2361
+ };
2362
+
2363
+ _proto._showBackdrop = function _showBackdrop(callback) {
2364
+ var _this8 = this;
2365
+
2366
+ var animate = $(this._element).hasClass(ClassName$5.FADE) ? ClassName$5.FADE : '';
2367
+
2368
+ if (this._isShown && this._config.backdrop) {
2369
+ this._backdrop = document.createElement('div');
2370
+ this._backdrop.className = ClassName$5.BACKDROP;
2371
+
2372
+ if (animate) {
2373
+ this._backdrop.classList.add(animate);
2374
+ }
2375
+
2376
+ $(this._backdrop).appendTo(document.body);
2377
+ $(this._element).on(Event$5.CLICK_DISMISS, function (event) {
2378
+ if (_this8._ignoreBackdropClick) {
2379
+ _this8._ignoreBackdropClick = false;
2380
+ return;
2381
+ }
2382
+
2383
+ if (event.target !== event.currentTarget) {
2384
+ return;
2385
+ }
2386
+
2387
+ if (_this8._config.backdrop === 'static') {
2388
+ _this8._element.focus();
2389
+ } else {
2390
+ _this8.hide();
2391
+ }
2392
+ });
2393
+
2394
+ if (animate) {
2395
+ Util.reflow(this._backdrop);
2396
+ }
2397
+
2398
+ $(this._backdrop).addClass(ClassName$5.SHOW);
2399
+
2400
+ if (!callback) {
2401
+ return;
2402
+ }
2403
+
2404
+ if (!animate) {
2405
+ callback();
2406
+ return;
2407
+ }
2408
+
2409
+ var backdropTransitionDuration = Util.getTransitionDurationFromElement(this._backdrop);
2410
+ $(this._backdrop).one(Util.TRANSITION_END, callback).emulateTransitionEnd(backdropTransitionDuration);
2411
+ } else if (!this._isShown && this._backdrop) {
2412
+ $(this._backdrop).removeClass(ClassName$5.SHOW);
2413
+
2414
+ var callbackRemove = function callbackRemove() {
2415
+ _this8._removeBackdrop();
2416
+
2417
+ if (callback) {
2418
+ callback();
2419
+ }
2420
+ };
2421
+
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);
2426
+ } else {
2427
+ callbackRemove();
2428
+ }
2429
+ } else if (callback) {
2430
+ callback();
2431
+ }
2432
+ } // ----------------------------------------------------------------------
2433
+ // the following methods are used to handle overflowing modals
2434
+ // todo (fat): these should probably be refactored out of modal.js
2435
+ // ----------------------------------------------------------------------
2436
+ ;
2437
+
2438
+ _proto._adjustDialog = function _adjustDialog() {
2439
+ var isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight;
2440
+
2441
+ if (!this._isBodyOverflowing && isModalOverflowing) {
2442
+ this._element.style.paddingLeft = this._scrollbarWidth + "px";
2443
+ }
2444
+
2445
+ if (this._isBodyOverflowing && !isModalOverflowing) {
2446
+ this._element.style.paddingRight = this._scrollbarWidth + "px";
2447
+ }
2448
+ };
2449
+
2450
+ _proto._resetAdjustments = function _resetAdjustments() {
2451
+ this._element.style.paddingLeft = '';
2452
+ this._element.style.paddingRight = '';
2453
+ };
2454
+
2455
+ _proto._checkScrollbar = function _checkScrollbar() {
2456
+ var rect = document.body.getBoundingClientRect();
2457
+ this._isBodyOverflowing = rect.left + rect.right < window.innerWidth;
2458
+ this._scrollbarWidth = this._getScrollbarWidth();
2459
+ };
2460
+
2461
+ _proto._setScrollbar = function _setScrollbar() {
2462
+ var _this9 = this;
2463
+
2464
+ if (this._isBodyOverflowing) {
2465
+ // Note: DOMNode.style.paddingRight returns the actual value or '' if not set
2466
+ // while $(DOMNode).css('padding-right') returns the calculated value or 0 if not set
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
2469
+
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
2475
+
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");
2480
+ }); // Adjust body padding
2481
+
2482
+ var actualPadding = document.body.style.paddingRight;
2483
+ var calculatedPadding = $(document.body).css('padding-right');
2484
+ $(document.body).data('padding-right', actualPadding).css('padding-right', parseFloat(calculatedPadding) + this._scrollbarWidth + "px");
2485
+ }
2486
+
2487
+ $(document.body).addClass(ClassName$5.OPEN);
2488
+ };
2489
+
2490
+ _proto._resetScrollbar = function _resetScrollbar() {
2491
+ // Restore fixed content padding
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
2498
+
2499
+ var elements = [].slice.call(document.querySelectorAll("" + Selector$5.STICKY_CONTENT));
2500
+ $(elements).each(function (index, element) {
2501
+ var margin = $(element).data('margin-right');
2502
+
2503
+ if (typeof margin !== 'undefined') {
2504
+ $(element).css('margin-right', margin).removeData('margin-right');
2505
+ }
2506
+ }); // Restore body padding
2507
+
2508
+ var padding = $(document.body).data('padding-right');
2509
+ $(document.body).removeData('padding-right');
2510
+ document.body.style.paddingRight = padding ? padding : '';
2511
+ };
2512
+
2513
+ _proto._getScrollbarWidth = function _getScrollbarWidth() {
2514
+ // thx d.walsh
2515
+ var scrollDiv = document.createElement('div');
2516
+ scrollDiv.className = ClassName$5.SCROLLBAR_MEASURER;
2517
+ document.body.appendChild(scrollDiv);
2518
+ var scrollbarWidth = scrollDiv.getBoundingClientRect().width - scrollDiv.clientWidth;
2519
+ document.body.removeChild(scrollDiv);
2520
+ return scrollbarWidth;
2521
+ } // Static
2522
+ ;
2523
+
2524
+ Modal._jQueryInterface = function _jQueryInterface(config, relatedTarget) {
2525
+ return this.each(function () {
2526
+ var data = $(this).data(DATA_KEY$5);
2527
+
2528
+ var _config = _objectSpread({}, Default$3, $(this).data(), typeof config === 'object' && config ? config : {});
2529
+
2530
+ if (!data) {
2531
+ data = new Modal(this, _config);
2532
+ $(this).data(DATA_KEY$5, data);
2533
+ }
2534
+
2535
+ if (typeof config === 'string') {
2536
+ if (typeof data[config] === 'undefined') {
2537
+ throw new TypeError("No method named \"" + config + "\"");
2538
+ }
2539
+
2540
+ data[config](relatedTarget);
2541
+ } else if (_config.show) {
2542
+ data.show(relatedTarget);
2543
+ }
2544
+ });
2545
+ };
2546
+
2547
+ _createClass(Modal, null, [{
2548
+ key: "VERSION",
2549
+ get: function get() {
2550
+ return VERSION$5;
2551
+ }
2552
+ }, {
2553
+ key: "Default",
2554
+ get: function get() {
2555
+ return Default$3;
2556
+ }
2557
+ }]);
2558
+
2559
+ return Modal;
2560
+ }();
2561
+ /**
2562
+ * ------------------------------------------------------------------------
2563
+ * Data Api implementation
2564
+ * ------------------------------------------------------------------------
2565
+ */
2566
+
2567
+
2568
+ $(document).on(Event$5.CLICK_DATA_API, Selector$5.DATA_TOGGLE, function (event) {
2569
+ var _this10 = this;
2570
+
2571
+ var target;
2572
+ var selector = Util.getSelectorFromElement(this);
2573
+
2574
+ if (selector) {
2575
+ target = document.querySelector(selector);
2576
+ }
2577
+
2578
+ var config = $(target).data(DATA_KEY$5) ? 'toggle' : _objectSpread({}, $(target).data(), $(this).data());
2579
+
2580
+ if (this.tagName === 'A' || this.tagName === 'AREA') {
2581
+ event.preventDefault();
2582
+ }
2583
+
2584
+ var $target = $(target).one(Event$5.SHOW, function (showEvent) {
2585
+ if (showEvent.isDefaultPrevented()) {
2586
+ // Only register focus restorer if modal will actually get shown
2587
+ return;
2588
+ }
2589
+
2590
+ $target.one(Event$5.HIDDEN, function () {
2591
+ if ($(_this10).is(':visible')) {
2592
+ _this10.focus();
2593
+ }
2594
+ });
2595
+ });
2596
+
2597
+ Modal._jQueryInterface.call($(target), config, this);
2598
+ });
2599
+ /**
2600
+ * ------------------------------------------------------------------------
2601
+ * jQuery
2602
+ * ------------------------------------------------------------------------
2603
+ */
2604
+
2605
+ $.fn[NAME$5] = Modal._jQueryInterface;
2606
+ $.fn[NAME$5].Constructor = Modal;
2607
+
2608
+ $.fn[NAME$5].noConflict = function () {
2609
+ $.fn[NAME$5] = JQUERY_NO_CONFLICT$5;
2610
+ return Modal._jQueryInterface;
2611
+ };
2612
+
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
+ };
2724
+
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
+ }
2733
+
2734
+ /**
2735
+ * ------------------------------------------------------------------------
2736
+ * Constants
2737
+ * ------------------------------------------------------------------------
2738
+ */
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];
2745
+ var CLASS_PREFIX = 'bs-tooltip';
2746
+ var BSCLS_PREFIX_REGEX = new RegExp("(^|\\s)" + CLASS_PREFIX + "\\S+", 'g');
2747
+ var DISALLOWED_ATTRIBUTES = ['sanitize', 'whiteList', 'sanitizeFn'];
2748
+ var DefaultType$4 = {
2749
+ animation: 'boolean',
2750
+ template: 'string',
2751
+ title: '(string|element|function)',
2752
+ trigger: 'string',
2753
+ delay: '(number|object)',
2754
+ html: 'boolean',
2755
+ selector: '(string|boolean)',
2756
+ placement: '(string|function)',
2757
+ offset: '(number|string|function)',
2758
+ container: '(string|element|boolean)',
2759
+ fallbackPlacement: '(string|array)',
2760
+ boundary: '(string|element)',
2761
+ sanitize: 'boolean',
2762
+ sanitizeFn: '(null|function)',
2763
+ whiteList: 'object'
2764
+ };
2765
+ var AttachmentMap$1 = {
2766
+ AUTO: 'auto',
2767
+ TOP: 'top',
2768
+ RIGHT: 'right',
2769
+ BOTTOM: 'bottom',
2770
+ LEFT: 'left'
2771
+ };
2772
+ var Default$4 = {
2773
+ animation: true,
2774
+ template: '<div class="tooltip" role="tooltip">' + '<div class="arrow"></div>' + '<div class="tooltip-inner"></div></div>',
2775
+ trigger: 'hover focus',
2776
+ title: '',
2777
+ delay: 0,
2778
+ html: false,
2779
+ selector: false,
2780
+ placement: 'top',
2781
+ offset: 0,
2782
+ container: false,
2783
+ fallbackPlacement: 'flip',
2784
+ boundary: 'scrollParent',
2785
+ sanitize: true,
2786
+ sanitizeFn: null,
2787
+ whiteList: DefaultWhitelist
2788
+ };
2789
+ var HoverState = {
2790
+ SHOW: 'show',
2791
+ OUT: 'out'
2792
+ };
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
2804
+ };
2805
+ var ClassName$6 = {
2806
+ FADE: 'fade',
2807
+ SHOW: 'show'
2808
+ };
2809
+ var Selector$6 = {
2810
+ TOOLTIP: '.tooltip',
2811
+ TOOLTIP_INNER: '.tooltip-inner',
2812
+ ARROW: '.arrow'
2813
+ };
2814
+ var Trigger = {
2815
+ HOVER: 'hover',
2816
+ FOCUS: 'focus',
2817
+ CLICK: 'click',
2818
+ MANUAL: 'manual'
2819
+ /**
2820
+ * ------------------------------------------------------------------------
2821
+ * Class Definition
2822
+ * ------------------------------------------------------------------------
2823
+ */
2824
+
2825
+ };
2826
+
2827
+ var Tooltip =
2828
+ /*#__PURE__*/
2829
+ function () {
2830
+ function Tooltip(element, config) {
2831
+ /**
2832
+ * Check for Popper dependency
2833
+ * Popper - https://popper.js.org
2834
+ */
2835
+ if (typeof Popper === 'undefined') {
2836
+ throw new TypeError('Bootstrap\'s tooltips require Popper.js (https://popper.js.org/)');
2837
+ } // private
2838
+
2839
+
2840
+ this._isEnabled = true;
2841
+ this._timeout = 0;
2842
+ this._hoverState = '';
2843
+ this._activeTrigger = {};
2844
+ this._popper = null; // Protected
2845
+
2846
+ this.element = element;
2847
+ this.config = this._getConfig(config);
2848
+ this.tip = null;
2849
+
2850
+ this._setListeners();
2851
+ } // Getters
2852
+
2853
+
2854
+ var _proto = Tooltip.prototype;
2855
+
2856
+ // Public
2857
+ _proto.enable = function enable() {
2858
+ this._isEnabled = true;
2859
+ };
2860
+
2861
+ _proto.disable = function disable() {
2862
+ this._isEnabled = false;
2863
+ };
2864
+
2865
+ _proto.toggleEnabled = function toggleEnabled() {
2866
+ this._isEnabled = !this._isEnabled;
2867
+ };
2868
+
2869
+ _proto.toggle = function toggle(event) {
2870
+ if (!this._isEnabled) {
2871
+ return;
2872
+ }
2873
+
2874
+ if (event) {
2875
+ var dataKey = this.constructor.DATA_KEY;
2876
+ var context = $(event.currentTarget).data(dataKey);
2877
+
2878
+ if (!context) {
2879
+ context = new this.constructor(event.currentTarget, this._getDelegateConfig());
2880
+ $(event.currentTarget).data(dataKey, context);
2881
+ }
2882
+
2883
+ context._activeTrigger.click = !context._activeTrigger.click;
2884
+
2885
+ if (context._isWithActiveTrigger()) {
2886
+ context._enter(null, context);
2887
+ } else {
2888
+ context._leave(null, context);
2889
+ }
2890
+ } else {
2891
+ if ($(this.getTipElement()).hasClass(ClassName$6.SHOW)) {
2892
+ this._leave(null, this);
2893
+
2894
+ return;
2895
+ }
2896
+
2897
+ this._enter(null, this);
2898
+ }
2899
+ };
2900
+
2901
+ _proto.dispose = function dispose() {
2902
+ clearTimeout(this._timeout);
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');
2906
+
2907
+ if (this.tip) {
2908
+ $(this.tip).remove();
2909
+ }
2910
+
2911
+ this._isEnabled = null;
2912
+ this._timeout = null;
2913
+ this._hoverState = null;
2914
+ this._activeTrigger = null;
2915
+
2916
+ if (this._popper !== null) {
2917
+ this._popper.destroy();
2918
+ }
2919
+
2920
+ this._popper = null;
2921
+ this.element = null;
2922
+ this.config = null;
2923
+ this.tip = null;
2924
+ };
2925
+
2926
+ _proto.show = function show() {
2927
+ var _this = this;
2928
+
2929
+ if ($(this.element).css('display') === 'none') {
2930
+ throw new Error('Please use show on visible elements');
2931
+ }
2932
+
2933
+ var showEvent = $.Event(this.constructor.Event.SHOW);
2934
+
2935
+ if (this.isWithContent() && this._isEnabled) {
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);
2939
+
2940
+ if (showEvent.isDefaultPrevented() || !isInTheDom) {
2941
+ return;
2942
+ }
2943
+
2944
+ var tip = this.getTipElement();
2945
+ var tipId = Util.getUID(this.constructor.NAME);
2946
+ tip.setAttribute('id', tipId);
2947
+ this.element.setAttribute('aria-describedby', tipId);
2948
+ this.setContent();
2949
+
2950
+ if (this.config.animation) {
2951
+ $(tip).addClass(ClassName$6.FADE);
2952
+ }
2953
+
2954
+ var placement = typeof this.config.placement === 'function' ? this.config.placement.call(this, tip, this.element) : this.config.placement;
2955
+
2956
+ var attachment = this._getAttachment(placement);
2957
+
2958
+ this.addAttachmentClass(attachment);
2959
+
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);
2966
+ }
2967
+
2968
+ $(this.element).trigger(this.constructor.Event.INSERTED);
2969
+ this._popper = new Popper(this.element, tip, {
2970
+ placement: attachment,
2971
+ modifiers: {
2972
+ offset: this._getOffset(),
2973
+ flip: {
2974
+ behavior: this.config.fallbackPlacement
2975
+ },
2976
+ arrow: {
2977
+ element: Selector$6.ARROW
2978
+ },
2979
+ preventOverflow: {
2980
+ boundariesElement: this.config.boundary
2981
+ }
2982
+ },
2983
+ onCreate: function onCreate(data) {
2984
+ if (data.originalPlacement !== data.placement) {
2985
+ _this._handlePopperPlacementChange(data);
2986
+ }
2987
+ },
2988
+ onUpdate: function onUpdate(data) {
2989
+ return _this._handlePopperPlacementChange(data);
2990
+ }
2991
+ });
2992
+ $(tip).addClass(ClassName$6.SHOW); // If this is a touch-enabled device we add extra
2993
+ // empty mouseover listeners to the body's immediate children;
2994
+ // only needed because of broken event delegation on iOS
2995
+ // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html
2996
+
2997
+ if ('ontouchstart' in document.documentElement) {
2998
+ $(document.body).children().on('mouseover', null, $.noop);
2999
+ }
3000
+
3001
+ var complete = function complete() {
3002
+ if (_this.config.animation) {
3003
+ _this._fixTransition();
3004
+ }
3005
+
3006
+ var prevHoverState = _this._hoverState;
3007
+ _this._hoverState = null;
3008
+ $(_this.element).trigger(_this.constructor.Event.SHOWN);
3009
+
3010
+ if (prevHoverState === HoverState.OUT) {
3011
+ _this._leave(null, _this);
3012
+ }
3013
+ };
3014
+
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);
3018
+ } else {
3019
+ complete();
3020
+ }
3021
+ }
3022
+ };
3023
+
3024
+ _proto.hide = function hide(callback) {
3025
+ var _this2 = this;
3026
+
3027
+ var tip = this.getTipElement();
3028
+ var hideEvent = $.Event(this.constructor.Event.HIDE);
3029
+
3030
+ var complete = function complete() {
3031
+ if (_this2._hoverState !== HoverState.SHOW && tip.parentNode) {
3032
+ tip.parentNode.removeChild(tip);
3033
+ }
3034
+
3035
+ _this2._cleanTipClass();
3036
+
3037
+ _this2.element.removeAttribute('aria-describedby');
3038
+
3039
+ $(_this2.element).trigger(_this2.constructor.Event.HIDDEN);
3040
+
3041
+ if (_this2._popper !== null) {
3042
+ _this2._popper.destroy();
3043
+ }
3044
+
3045
+ if (callback) {
3046
+ callback();
3047
+ }
3048
+ };
3049
+
3050
+ $(this.element).trigger(hideEvent);
3051
+
3052
+ if (hideEvent.isDefaultPrevented()) {
3053
+ return;
3054
+ }
3055
+
3056
+ $(tip).removeClass(ClassName$6.SHOW); // If this is a touch-enabled device we remove the extra
3057
+ // empty mouseover listeners we added for iOS support
3058
+
3059
+ if ('ontouchstart' in document.documentElement) {
3060
+ $(document.body).children().off('mouseover', null, $.noop);
3061
+ }
3062
+
3063
+ this._activeTrigger[Trigger.CLICK] = false;
3064
+ this._activeTrigger[Trigger.FOCUS] = false;
3065
+ this._activeTrigger[Trigger.HOVER] = false;
3066
+
3067
+ if ($(this.tip).hasClass(ClassName$6.FADE)) {
3068
+ var transitionDuration = Util.getTransitionDurationFromElement(tip);
3069
+ $(tip).one(Util.TRANSITION_END, complete).emulateTransitionEnd(transitionDuration);
3070
+ } else {
3071
+ complete();
3072
+ }
3073
+
3074
+ this._hoverState = '';
3075
+ };
3076
+
3077
+ _proto.update = function update() {
3078
+ if (this._popper !== null) {
3079
+ this._popper.scheduleUpdate();
3080
+ }
3081
+ } // Protected
3082
+ ;
3083
+
3084
+ _proto.isWithContent = function isWithContent() {
3085
+ return Boolean(this.getTitle());
3086
+ };
3087
+
3088
+ _proto.addAttachmentClass = function addAttachmentClass(attachment) {
3089
+ $(this.getTipElement()).addClass(CLASS_PREFIX + "-" + attachment);
3090
+ };
3091
+
3092
+ _proto.getTipElement = function getTipElement() {
3093
+ this.tip = this.tip || $(this.config.template)[0];
3094
+ return this.tip;
3095
+ };
3096
+
3097
+ _proto.setContent = function setContent() {
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);
3101
+ };
3102
+
3103
+ _proto.setElementContent = function setElementContent($element, content) {
3104
+ if (typeof content === 'object' && (content.nodeType || content.jquery)) {
3105
+ // Content is a DOM node or a jQuery
3106
+ if (this.config.html) {
3107
+ if (!$(content).parent().is($element)) {
3108
+ $element.empty().append(content);
3109
+ }
3110
+ } else {
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);
3120
+ }
3121
+
3122
+ $element.html(content);
3123
+ } else {
3124
+ $element.text(content);
3125
+ }
3126
+ };
3127
+
3128
+ _proto.getTitle = function getTitle() {
3129
+ var title = this.element.getAttribute('data-original-title');
3130
+
3131
+ if (!title) {
3132
+ title = typeof this.config.title === 'function' ? this.config.title.call(this.element) : this.config.title;
3133
+ }
3134
+
3135
+ return title;
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
+ }
3164
+
3165
+ return $(document).find(this.config.container);
3166
+ };
3167
+
3168
+ _proto._getAttachment = function _getAttachment(placement) {
3169
+ return AttachmentMap$1[placement.toUpperCase()];
3170
+ };
3171
+
3172
+ _proto._setListeners = function _setListeners() {
3173
+ var _this4 = this;
3174
+
3175
+ var triggers = this.config.trigger.split(' ');
3176
+ triggers.forEach(function (trigger) {
3177
+ if (trigger === 'click') {
3178
+ $(_this4.element).on(_this4.constructor.Event.CLICK, _this4.config.selector, function (event) {
3179
+ return _this4.toggle(event);
3180
+ });
3181
+ } else if (trigger !== Trigger.MANUAL) {
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);
3188
+ });
3189
+ }
3190
+ });
3191
+ $(this.element).closest('.modal').on('hide.bs.modal', function () {
3192
+ if (_this4.element) {
3193
+ _this4.hide();
3194
+ }
3195
+ });
3196
+
3197
+ if (this.config.selector) {
3198
+ this.config = _objectSpread({}, this.config, {
3199
+ trigger: 'manual',
3200
+ selector: ''
3201
+ });
3202
+ } else {
3203
+ this._fixTitle();
3204
+ }
3205
+ };
3206
+
3207
+ _proto._fixTitle = function _fixTitle() {
3208
+ var titleType = typeof this.element.getAttribute('data-original-title');
3209
+
3210
+ if (this.element.getAttribute('title') || titleType !== 'string') {
3211
+ this.element.setAttribute('data-original-title', this.element.getAttribute('title') || '');
3212
+ this.element.setAttribute('title', '');
3213
+ }
3214
+ };
3215
+
3216
+ _proto._enter = function _enter(event, context) {
3217
+ var dataKey = this.constructor.DATA_KEY;
3218
+ context = context || $(event.currentTarget).data(dataKey);
3219
+
3220
+ if (!context) {
3221
+ context = new this.constructor(event.currentTarget, this._getDelegateConfig());
3222
+ $(event.currentTarget).data(dataKey, context);
3223
+ }
3224
+
3225
+ if (event) {
3226
+ context._activeTrigger[event.type === 'focusin' ? Trigger.FOCUS : Trigger.HOVER] = true;
3227
+ }
3228
+
3229
+ if ($(context.getTipElement()).hasClass(ClassName$6.SHOW) || context._hoverState === HoverState.SHOW) {
3230
+ context._hoverState = HoverState.SHOW;
3231
+ return;
3232
+ }
3233
+
3234
+ clearTimeout(context._timeout);
3235
+ context._hoverState = HoverState.SHOW;
3236
+
3237
+ if (!context.config.delay || !context.config.delay.show) {
3238
+ context.show();
3239
+ return;
3240
+ }
3241
+
3242
+ context._timeout = setTimeout(function () {
3243
+ if (context._hoverState === HoverState.SHOW) {
3244
+ context.show();
3245
+ }
3246
+ }, context.config.delay.show);
3247
+ };
3248
+
3249
+ _proto._leave = function _leave(event, context) {
3250
+ var dataKey = this.constructor.DATA_KEY;
3251
+ context = context || $(event.currentTarget).data(dataKey);
3252
+
3253
+ if (!context) {
3254
+ context = new this.constructor(event.currentTarget, this._getDelegateConfig());
3255
+ $(event.currentTarget).data(dataKey, context);
3256
+ }
3257
+
3258
+ if (event) {
3259
+ context._activeTrigger[event.type === 'focusout' ? Trigger.FOCUS : Trigger.HOVER] = false;
3260
+ }
3261
+
3262
+ if (context._isWithActiveTrigger()) {
3263
+ return;
3264
+ }
3265
+
3266
+ clearTimeout(context._timeout);
3267
+ context._hoverState = HoverState.OUT;
3268
+
3269
+ if (!context.config.delay || !context.config.delay.hide) {
3270
+ context.hide();
3271
+ return;
3272
+ }
3273
+
3274
+ context._timeout = setTimeout(function () {
3275
+ if (context._hoverState === HoverState.OUT) {
3276
+ context.hide();
3277
+ }
3278
+ }, context.config.delay.hide);
3279
+ };
3280
+
3281
+ _proto._isWithActiveTrigger = function _isWithActiveTrigger() {
3282
+ for (var trigger in this._activeTrigger) {
3283
+ if (this._activeTrigger[trigger]) {
3284
+ return true;
3285
+ }
3286
+ }
3287
+
3288
+ return false;
3289
+ };
3290
+
3291
+ _proto._getConfig = function _getConfig(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 : {});
3299
+
3300
+ if (typeof config.delay === 'number') {
3301
+ config.delay = {
3302
+ show: config.delay,
3303
+ hide: config.delay
3304
+ };
3305
+ }
3306
+
3307
+ if (typeof config.title === 'number') {
3308
+ config.title = config.title.toString();
3309
+ }
3310
+
3311
+ if (typeof config.content === 'number') {
3312
+ config.content = config.content.toString();
3313
+ }
3314
+
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
+
3321
+ return config;
3322
+ };
3323
+
3324
+ _proto._getDelegateConfig = function _getDelegateConfig() {
3325
+ var config = {};
3326
+
3327
+ if (this.config) {
3328
+ for (var key in this.config) {
3329
+ if (this.constructor.Default[key] !== this.config[key]) {
3330
+ config[key] = this.config[key];
3331
+ }
3332
+ }
3333
+ }
3334
+
3335
+ return config;
3336
+ };
3337
+
3338
+ _proto._cleanTipClass = function _cleanTipClass() {
3339
+ var $tip = $(this.getTipElement());
3340
+ var tabClass = $tip.attr('class').match(BSCLS_PREFIX_REGEX);
3341
+
3342
+ if (tabClass !== null && tabClass.length) {
3343
+ $tip.removeClass(tabClass.join(''));
3344
+ }
3345
+ };
3346
+
3347
+ _proto._handlePopperPlacementChange = function _handlePopperPlacementChange(popperData) {
3348
+ var popperInstance = popperData.instance;
3349
+ this.tip = popperInstance.popper;
3350
+
3351
+ this._cleanTipClass();
3352
+
3353
+ this.addAttachmentClass(this._getAttachment(popperData.placement));
3354
+ };
3355
+
3356
+ _proto._fixTransition = function _fixTransition() {
3357
+ var tip = this.getTipElement();
3358
+ var initConfigAnimation = this.config.animation;
3359
+
3360
+ if (tip.getAttribute('x-placement') !== null) {
3361
+ return;
3362
+ }
3363
+
3364
+ $(tip).removeClass(ClassName$6.FADE);
3365
+ this.config.animation = false;
3366
+ this.hide();
3367
+ this.show();
3368
+ this.config.animation = initConfigAnimation;
3369
+ } // Static
3370
+ ;
3371
+
3372
+ Tooltip._jQueryInterface = function _jQueryInterface(config) {
3373
+ return this.each(function () {
3374
+ var data = $(this).data(DATA_KEY$6);
3375
+
3376
+ var _config = typeof config === 'object' && config;
3377
+
3378
+ if (!data && /dispose|hide/.test(config)) {
3379
+ return;
3380
+ }
3381
+
3382
+ if (!data) {
3383
+ data = new Tooltip(this, _config);
3384
+ $(this).data(DATA_KEY$6, data);
3385
+ }
3386
+
3387
+ if (typeof config === 'string') {
3388
+ if (typeof data[config] === 'undefined') {
3389
+ throw new TypeError("No method named \"" + config + "\"");
3390
+ }
3391
+
3392
+ data[config]();
3393
+ }
3394
+ });
3395
+ };
3396
+
3397
+ _createClass(Tooltip, null, [{
3398
+ key: "VERSION",
3399
+ get: function get() {
3400
+ return VERSION$6;
3401
+ }
3402
+ }, {
3403
+ key: "Default",
3404
+ get: function get() {
3405
+ return Default$4;
3406
+ }
3407
+ }, {
3408
+ key: "NAME",
3409
+ get: function get() {
3410
+ return NAME$6;
3411
+ }
3412
+ }, {
3413
+ key: "DATA_KEY",
3414
+ get: function get() {
3415
+ return DATA_KEY$6;
3416
+ }
3417
+ }, {
3418
+ key: "Event",
3419
+ get: function get() {
3420
+ return Event$6;
3421
+ }
3422
+ }, {
3423
+ key: "EVENT_KEY",
3424
+ get: function get() {
3425
+ return EVENT_KEY$6;
3426
+ }
3427
+ }, {
3428
+ key: "DefaultType",
3429
+ get: function get() {
3430
+ return DefaultType$4;
3431
+ }
3432
+ }]);
3433
+
3434
+ return Tooltip;
3435
+ }();
3436
+ /**
3437
+ * ------------------------------------------------------------------------
3438
+ * jQuery
3439
+ * ------------------------------------------------------------------------
3440
+ */
3441
+
3442
+
3443
+ $.fn[NAME$6] = Tooltip._jQueryInterface;
3444
+ $.fn[NAME$6].Constructor = Tooltip;
3445
+
3446
+ $.fn[NAME$6].noConflict = function () {
3447
+ $.fn[NAME$6] = JQUERY_NO_CONFLICT$6;
3448
+ return Tooltip._jQueryInterface;
3449
+ };
3450
+
3451
+ /**
3452
+ * ------------------------------------------------------------------------
3453
+ * Constants
3454
+ * ------------------------------------------------------------------------
3455
+ */
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, {
3466
+ placement: 'right',
3467
+ trigger: 'click',
3468
+ content: '',
3469
+ template: '<div class="popover" role="tooltip">' + '<div class="arrow"></div>' + '<h3 class="popover-header"></h3>' + '<div class="popover-body"></div></div>'
3470
+ });
3471
+
3472
+ var DefaultType$5 = _objectSpread({}, Tooltip.DefaultType, {
3473
+ content: '(string|element|function)'
3474
+ });
3475
+
3476
+ var ClassName$7 = {
3477
+ FADE: 'fade',
3478
+ SHOW: 'show'
3479
+ };
3480
+ var Selector$7 = {
3481
+ TITLE: '.popover-header',
3482
+ CONTENT: '.popover-body'
3483
+ };
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
3495
+ /**
3496
+ * ------------------------------------------------------------------------
3497
+ * Class Definition
3498
+ * ------------------------------------------------------------------------
3499
+ */
3500
+
3501
+ };
3502
+
3503
+ var Popover =
3504
+ /*#__PURE__*/
3505
+ function (_Tooltip) {
3506
+ _inheritsLoose(Popover, _Tooltip);
3507
+
3508
+ function Popover() {
3509
+ return _Tooltip.apply(this, arguments) || this;
3510
+ }
3511
+
3512
+ var _proto = Popover.prototype;
3513
+
3514
+ // Overrides
3515
+ _proto.isWithContent = function isWithContent() {
3516
+ return this.getTitle() || this._getContent();
3517
+ };
3518
+
3519
+ _proto.addAttachmentClass = function addAttachmentClass(attachment) {
3520
+ $(this.getTipElement()).addClass(CLASS_PREFIX$1 + "-" + attachment);
3521
+ };
3522
+
3523
+ _proto.getTipElement = function getTipElement() {
3524
+ this.tip = this.tip || $(this.config.template)[0];
3525
+ return this.tip;
3526
+ };
3527
+
3528
+ _proto.setContent = function setContent() {
3529
+ var $tip = $(this.getTipElement()); // We use append for html objects to maintain js events
3530
+
3531
+ this.setElementContent($tip.find(Selector$7.TITLE), this.getTitle());
3532
+
3533
+ var content = this._getContent();
3534
+
3535
+ if (typeof content === 'function') {
3536
+ content = content.call(this.element);
3537
+ }
3538
+
3539
+ this.setElementContent($tip.find(Selector$7.CONTENT), content);
3540
+ $tip.removeClass(ClassName$7.FADE + " " + ClassName$7.SHOW);
3541
+ } // Private
3542
+ ;
3543
+
3544
+ _proto._getContent = function _getContent() {
3545
+ return this.element.getAttribute('data-content') || this.config.content;
3546
+ };
3547
+
3548
+ _proto._cleanTipClass = function _cleanTipClass() {
3549
+ var $tip = $(this.getTipElement());
3550
+ var tabClass = $tip.attr('class').match(BSCLS_PREFIX_REGEX$1);
3551
+
3552
+ if (tabClass !== null && tabClass.length > 0) {
3553
+ $tip.removeClass(tabClass.join(''));
3554
+ }
3555
+ } // Static
3556
+ ;
3557
+
3558
+ Popover._jQueryInterface = function _jQueryInterface(config) {
3559
+ return this.each(function () {
3560
+ var data = $(this).data(DATA_KEY$7);
3561
+
3562
+ var _config = typeof config === 'object' ? config : null;
3563
+
3564
+ if (!data && /dispose|hide/.test(config)) {
3565
+ return;
3566
+ }
3567
+
3568
+ if (!data) {
3569
+ data = new Popover(this, _config);
3570
+ $(this).data(DATA_KEY$7, data);
3571
+ }
3572
+
3573
+ if (typeof config === 'string') {
3574
+ if (typeof data[config] === 'undefined') {
3575
+ throw new TypeError("No method named \"" + config + "\"");
3576
+ }
3577
+
3578
+ data[config]();
3579
+ }
3580
+ });
3581
+ };
3582
+
3583
+ _createClass(Popover, null, [{
3584
+ key: "VERSION",
3585
+ // Getters
3586
+ get: function get() {
3587
+ return VERSION$7;
3588
+ }
3589
+ }, {
3590
+ key: "Default",
3591
+ get: function get() {
3592
+ return Default$5;
3593
+ }
3594
+ }, {
3595
+ key: "NAME",
3596
+ get: function get() {
3597
+ return NAME$7;
3598
+ }
3599
+ }, {
3600
+ key: "DATA_KEY",
3601
+ get: function get() {
3602
+ return DATA_KEY$7;
3603
+ }
3604
+ }, {
3605
+ key: "Event",
3606
+ get: function get() {
3607
+ return Event$7;
3608
+ }
3609
+ }, {
3610
+ key: "EVENT_KEY",
3611
+ get: function get() {
3612
+ return EVENT_KEY$7;
3613
+ }
3614
+ }, {
3615
+ key: "DefaultType",
3616
+ get: function get() {
3617
+ return DefaultType$5;
3618
+ }
3619
+ }]);
3620
+
3621
+ return Popover;
3622
+ }(Tooltip);
3623
+ /**
3624
+ * ------------------------------------------------------------------------
3625
+ * jQuery
3626
+ * ------------------------------------------------------------------------
3627
+ */
3628
+
3629
+
3630
+ $.fn[NAME$7] = Popover._jQueryInterface;
3631
+ $.fn[NAME$7].Constructor = Popover;
3632
+
3633
+ $.fn[NAME$7].noConflict = function () {
3634
+ $.fn[NAME$7] = JQUERY_NO_CONFLICT$7;
3635
+ return Popover._jQueryInterface;
3636
+ };
3637
+
3638
+ /**
3639
+ * ------------------------------------------------------------------------
3640
+ * Constants
3641
+ * ------------------------------------------------------------------------
3642
+ */
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 = {
3651
+ offset: 10,
3652
+ method: 'auto',
3653
+ target: ''
3654
+ };
3655
+ var DefaultType$6 = {
3656
+ offset: 'number',
3657
+ method: 'string',
3658
+ target: '(string|element)'
3659
+ };
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
3664
+ };
3665
+ var ClassName$8 = {
3666
+ DROPDOWN_ITEM: 'dropdown-item',
3667
+ DROPDOWN_MENU: 'dropdown-menu',
3668
+ ACTIVE: 'active'
3669
+ };
3670
+ var Selector$8 = {
3671
+ DATA_SPY: '[data-spy="scroll"]',
3672
+ ACTIVE: '.active',
3673
+ NAV_LIST_GROUP: '.nav, .list-group',
3674
+ NAV_LINKS: '.nav-link',
3675
+ NAV_ITEMS: '.nav-item',
3676
+ LIST_ITEMS: '.list-group-item',
3677
+ DROPDOWN: '.dropdown',
3678
+ DROPDOWN_ITEMS: '.dropdown-item',
3679
+ DROPDOWN_TOGGLE: '.dropdown-toggle'
3680
+ };
3681
+ var OffsetMethod = {
3682
+ OFFSET: 'offset',
3683
+ POSITION: 'position'
3684
+ /**
3685
+ * ------------------------------------------------------------------------
3686
+ * Class Definition
3687
+ * ------------------------------------------------------------------------
3688
+ */
3689
+
3690
+ };
3691
+
3692
+ var ScrollSpy =
3693
+ /*#__PURE__*/
3694
+ function () {
3695
+ function ScrollSpy(element, config) {
3696
+ var _this = this;
3697
+
3698
+ this._element = element;
3699
+ this._scrollElement = element.tagName === 'BODY' ? window : element;
3700
+ this._config = this._getConfig(config);
3701
+ this._selector = this._config.target + " " + Selector$8.NAV_LINKS + "," + (this._config.target + " " + Selector$8.LIST_ITEMS + ",") + (this._config.target + " " + Selector$8.DROPDOWN_ITEMS);
3702
+ this._offsets = [];
3703
+ this._targets = [];
3704
+ this._activeTarget = null;
3705
+ this._scrollHeight = 0;
3706
+ $(this._scrollElement).on(Event$8.SCROLL, function (event) {
3707
+ return _this._process(event);
3708
+ });
3709
+ this.refresh();
3710
+
3711
+ this._process();
3712
+ } // Getters
3713
+
3714
+
3715
+ var _proto = ScrollSpy.prototype;
3716
+
3717
+ // Public
3718
+ _proto.refresh = function refresh() {
3719
+ var _this2 = this;
3720
+
3721
+ var autoMethod = this._scrollElement === this._scrollElement.window ? OffsetMethod.OFFSET : OffsetMethod.POSITION;
3722
+ var offsetMethod = this._config.method === 'auto' ? autoMethod : this._config.method;
3723
+ var offsetBase = offsetMethod === OffsetMethod.POSITION ? this._getScrollTop() : 0;
3724
+ this._offsets = [];
3725
+ this._targets = [];
3726
+ this._scrollHeight = this._getScrollHeight();
3727
+ var targets = [].slice.call(document.querySelectorAll(this._selector));
3728
+ targets.map(function (element) {
3729
+ var target;
3730
+ var targetSelector = Util.getSelectorFromElement(element);
3731
+
3732
+ if (targetSelector) {
3733
+ target = document.querySelector(targetSelector);
3734
+ }
3735
+
3736
+ if (target) {
3737
+ var targetBCR = target.getBoundingClientRect();
3738
+
3739
+ if (targetBCR.width || targetBCR.height) {
3740
+ // TODO (fat): remove sketch reliance on jQuery position/offset
3741
+ return [$(target)[offsetMethod]().top + offsetBase, targetSelector];
3742
+ }
3743
+ }
3744
+
3745
+ return null;
3746
+ }).filter(function (item) {
3747
+ return item;
3748
+ }).sort(function (a, b) {
3749
+ return a[0] - b[0];
3750
+ }).forEach(function (item) {
3751
+ _this2._offsets.push(item[0]);
3752
+
3753
+ _this2._targets.push(item[1]);
3754
+ });
3755
+ };
3756
+
3757
+ _proto.dispose = function dispose() {
3758
+ $.removeData(this._element, DATA_KEY$8);
3759
+ $(this._scrollElement).off(EVENT_KEY$8);
3760
+ this._element = null;
3761
+ this._scrollElement = null;
3762
+ this._config = null;
3763
+ this._selector = null;
3764
+ this._offsets = null;
3765
+ this._targets = null;
3766
+ this._activeTarget = null;
3767
+ this._scrollHeight = null;
3768
+ } // Private
3769
+ ;
3770
+
3771
+ _proto._getConfig = function _getConfig(config) {
3772
+ config = _objectSpread({}, Default$6, typeof config === 'object' && config ? config : {});
3773
+
3774
+ if (typeof config.target !== 'string') {
3775
+ var id = $(config.target).attr('id');
3776
+
3777
+ if (!id) {
3778
+ id = Util.getUID(NAME$8);
3779
+ $(config.target).attr('id', id);
3780
+ }
3781
+
3782
+ config.target = "#" + id;
3783
+ }
3784
+
3785
+ Util.typeCheckConfig(NAME$8, config, DefaultType$6);
3786
+ return config;
3787
+ };
3788
+
3789
+ _proto._getScrollTop = function _getScrollTop() {
3790
+ return this._scrollElement === window ? this._scrollElement.pageYOffset : this._scrollElement.scrollTop;
3791
+ };
3792
+
3793
+ _proto._getScrollHeight = function _getScrollHeight() {
3794
+ return this._scrollElement.scrollHeight || Math.max(document.body.scrollHeight, document.documentElement.scrollHeight);
3795
+ };
3796
+
3797
+ _proto._getOffsetHeight = function _getOffsetHeight() {
3798
+ return this._scrollElement === window ? window.innerHeight : this._scrollElement.getBoundingClientRect().height;
3799
+ };
3800
+
3801
+ _proto._process = function _process() {
3802
+ var scrollTop = this._getScrollTop() + this._config.offset;
3803
+
3804
+ var scrollHeight = this._getScrollHeight();
3805
+
3806
+ var maxScroll = this._config.offset + scrollHeight - this._getOffsetHeight();
3807
+
3808
+ if (this._scrollHeight !== scrollHeight) {
3809
+ this.refresh();
3810
+ }
3811
+
3812
+ if (scrollTop >= maxScroll) {
3813
+ var target = this._targets[this._targets.length - 1];
3814
+
3815
+ if (this._activeTarget !== target) {
3816
+ this._activate(target);
3817
+ }
3818
+
3819
+ return;
3820
+ }
3821
+
3822
+ if (this._activeTarget && scrollTop < this._offsets[0] && this._offsets[0] > 0) {
3823
+ this._activeTarget = null;
3824
+
3825
+ this._clear();
3826
+
3827
+ return;
3828
+ }
3829
+
3830
+ var offsetLength = this._offsets.length;
3831
+
3832
+ for (var i = offsetLength; i--;) {
3833
+ var isActiveTarget = this._activeTarget !== this._targets[i] && scrollTop >= this._offsets[i] && (typeof this._offsets[i + 1] === 'undefined' || scrollTop < this._offsets[i + 1]);
3834
+
3835
+ if (isActiveTarget) {
3836
+ this._activate(this._targets[i]);
3837
+ }
3838
+ }
3839
+ };
3840
+
3841
+ _proto._activate = function _activate(target) {
3842
+ this._activeTarget = target;
3843
+
3844
+ this._clear();
3845
+
3846
+ var queries = this._selector.split(',').map(function (selector) {
3847
+ return selector + "[data-target=\"" + target + "\"]," + selector + "[href=\"" + target + "\"]";
3848
+ });
3849
+
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);
3855
+ } else {
3856
+ // Set triggered link as active
3857
+ $link.addClass(ClassName$8.ACTIVE); // Set triggered links parents as active
3858
+ // With both <ul> and <nav> markup a parent is the previous sibling of any nav ancestor
3859
+
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
3861
+
3862
+ $link.parents(Selector$8.NAV_LIST_GROUP).prev(Selector$8.NAV_ITEMS).children(Selector$8.NAV_LINKS).addClass(ClassName$8.ACTIVE);
3863
+ }
3864
+
3865
+ $(this._scrollElement).trigger(Event$8.ACTIVATE, {
3866
+ relatedTarget: target
3867
+ });
3868
+ };
3869
+
3870
+ _proto._clear = function _clear() {
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
+ ;
3878
+
3879
+ ScrollSpy._jQueryInterface = function _jQueryInterface(config) {
3880
+ return this.each(function () {
3881
+ var data = $(this).data(DATA_KEY$8);
3882
+
3883
+ var _config = typeof config === 'object' && config;
3884
+
3885
+ if (!data) {
3886
+ data = new ScrollSpy(this, _config);
3887
+ $(this).data(DATA_KEY$8, data);
3888
+ }
3889
+
3890
+ if (typeof config === 'string') {
3891
+ if (typeof data[config] === 'undefined') {
3892
+ throw new TypeError("No method named \"" + config + "\"");
3893
+ }
3894
+
3895
+ data[config]();
3896
+ }
3897
+ });
3898
+ };
3899
+
3900
+ _createClass(ScrollSpy, null, [{
3901
+ key: "VERSION",
3902
+ get: function get() {
3903
+ return VERSION$8;
3904
+ }
3905
+ }, {
3906
+ key: "Default",
3907
+ get: function get() {
3908
+ return Default$6;
3909
+ }
3910
+ }]);
3911
+
3912
+ return ScrollSpy;
3913
+ }();
3914
+ /**
3915
+ * ------------------------------------------------------------------------
3916
+ * Data Api implementation
3917
+ * ------------------------------------------------------------------------
3918
+ */
3919
+
3920
+
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;
3924
+
3925
+ for (var i = scrollSpysLength; i--;) {
3926
+ var $spy = $(scrollSpys[i]);
3927
+
3928
+ ScrollSpy._jQueryInterface.call($spy, $spy.data());
3929
+ }
3930
+ });
3931
+ /**
3932
+ * ------------------------------------------------------------------------
3933
+ * jQuery
3934
+ * ------------------------------------------------------------------------
3935
+ */
3936
+
3937
+ $.fn[NAME$8] = ScrollSpy._jQueryInterface;
3938
+ $.fn[NAME$8].Constructor = ScrollSpy;
3939
+
3940
+ $.fn[NAME$8].noConflict = function () {
3941
+ $.fn[NAME$8] = JQUERY_NO_CONFLICT$8;
3942
+ return ScrollSpy._jQueryInterface;
3943
+ };
3944
+
3945
+ /**
3946
+ * ------------------------------------------------------------------------
3947
+ * Constants
3948
+ * ------------------------------------------------------------------------
3949
+ */
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
3963
+ };
3964
+ var ClassName$9 = {
3965
+ DROPDOWN_MENU: 'dropdown-menu',
3966
+ ACTIVE: 'active',
3967
+ DISABLED: 'disabled',
3968
+ FADE: 'fade',
3969
+ SHOW: 'show'
3970
+ };
3971
+ var Selector$9 = {
3972
+ DROPDOWN: '.dropdown',
3973
+ NAV_LIST_GROUP: '.nav, .list-group',
3974
+ ACTIVE: '.active',
3975
+ ACTIVE_UL: '> li > .active',
3976
+ DATA_TOGGLE: '[data-toggle="tab"], [data-toggle="pill"], [data-toggle="list"]',
3977
+ DROPDOWN_TOGGLE: '.dropdown-toggle',
3978
+ DROPDOWN_ACTIVE_CHILD: '> .dropdown-menu .active'
3979
+ /**
3980
+ * ------------------------------------------------------------------------
3981
+ * Class Definition
3982
+ * ------------------------------------------------------------------------
3983
+ */
3984
+
3985
+ };
3986
+
3987
+ var Tab =
3988
+ /*#__PURE__*/
3989
+ function () {
3990
+ function Tab(element) {
3991
+ this._element = element;
3992
+ } // Getters
3993
+
3994
+
3995
+ var _proto = Tab.prototype;
3996
+
3997
+ // Public
3998
+ _proto.show = function show() {
3999
+ var _this = this;
4000
+
4001
+ if (this._element.parentNode && this._element.parentNode.nodeType === Node.ELEMENT_NODE && $(this._element).hasClass(ClassName$9.ACTIVE) || $(this._element).hasClass(ClassName$9.DISABLED)) {
4002
+ return;
4003
+ }
4004
+
4005
+ var target;
4006
+ var previous;
4007
+ var listElement = $(this._element).closest(Selector$9.NAV_LIST_GROUP)[0];
4008
+ var selector = Util.getSelectorFromElement(this._element);
4009
+
4010
+ if (listElement) {
4011
+ var itemSelector = listElement.nodeName === 'UL' || listElement.nodeName === 'OL' ? Selector$9.ACTIVE_UL : Selector$9.ACTIVE;
4012
+ previous = $.makeArray($(listElement).find(itemSelector));
4013
+ previous = previous[previous.length - 1];
4014
+ }
4015
+
4016
+ var hideEvent = $.Event(Event$9.HIDE, {
4017
+ relatedTarget: this._element
4018
+ });
4019
+ var showEvent = $.Event(Event$9.SHOW, {
4020
+ relatedTarget: previous
4021
+ });
4022
+
4023
+ if (previous) {
4024
+ $(previous).trigger(hideEvent);
4025
+ }
4026
+
4027
+ $(this._element).trigger(showEvent);
4028
+
4029
+ if (showEvent.isDefaultPrevented() || hideEvent.isDefaultPrevented()) {
4030
+ return;
4031
+ }
4032
+
4033
+ if (selector) {
4034
+ target = document.querySelector(selector);
4035
+ }
4036
+
4037
+ this._activate(this._element, listElement);
4038
+
4039
+ var complete = function complete() {
4040
+ var hiddenEvent = $.Event(Event$9.HIDDEN, {
4041
+ relatedTarget: _this._element
4042
+ });
4043
+ var shownEvent = $.Event(Event$9.SHOWN, {
4044
+ relatedTarget: previous
4045
+ });
4046
+ $(previous).trigger(hiddenEvent);
4047
+ $(_this._element).trigger(shownEvent);
4048
+ };
4049
+
4050
+ if (target) {
4051
+ this._activate(target, target.parentNode, complete);
4052
+ } else {
4053
+ complete();
4054
+ }
4055
+ };
4056
+
4057
+ _proto.dispose = function dispose() {
4058
+ $.removeData(this._element, DATA_KEY$9);
4059
+ this._element = null;
4060
+ } // Private
4061
+ ;
4062
+
4063
+ _proto._activate = function _activate(element, container, callback) {
4064
+ var _this2 = this;
4065
+
4066
+ var activeElements = container && (container.nodeName === 'UL' || container.nodeName === 'OL') ? $(container).find(Selector$9.ACTIVE_UL) : $(container).children(Selector$9.ACTIVE);
4067
+ var active = activeElements[0];
4068
+ var isTransitioning = callback && active && $(active).hasClass(ClassName$9.FADE);
4069
+
4070
+ var complete = function complete() {
4071
+ return _this2._transitionComplete(element, active, callback);
4072
+ };
4073
+
4074
+ if (active && isTransitioning) {
4075
+ var transitionDuration = Util.getTransitionDurationFromElement(active);
4076
+ $(active).removeClass(ClassName$9.SHOW).one(Util.TRANSITION_END, complete).emulateTransitionEnd(transitionDuration);
4077
+ } else {
4078
+ complete();
4079
+ }
4080
+ };
4081
+
4082
+ _proto._transitionComplete = function _transitionComplete(element, active, callback) {
4083
+ if (active) {
4084
+ $(active).removeClass(ClassName$9.ACTIVE);
4085
+ var dropdownChild = $(active.parentNode).find(Selector$9.DROPDOWN_ACTIVE_CHILD)[0];
4086
+
4087
+ if (dropdownChild) {
4088
+ $(dropdownChild).removeClass(ClassName$9.ACTIVE);
4089
+ }
4090
+
4091
+ if (active.getAttribute('role') === 'tab') {
4092
+ active.setAttribute('aria-selected', false);
4093
+ }
4094
+ }
4095
+
4096
+ $(element).addClass(ClassName$9.ACTIVE);
4097
+
4098
+ if (element.getAttribute('role') === 'tab') {
4099
+ element.setAttribute('aria-selected', true);
4100
+ }
4101
+
4102
+ Util.reflow(element);
4103
+
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];
4110
+
4111
+ if (dropdownElement) {
4112
+ var dropdownToggleList = [].slice.call(dropdownElement.querySelectorAll(Selector$9.DROPDOWN_TOGGLE));
4113
+ $(dropdownToggleList).addClass(ClassName$9.ACTIVE);
4114
+ }
4115
+
4116
+ element.setAttribute('aria-expanded', true);
4117
+ }
4118
+
4119
+ if (callback) {
4120
+ callback();
4121
+ }
4122
+ } // Static
4123
+ ;
4124
+
4125
+ Tab._jQueryInterface = function _jQueryInterface(config) {
4126
+ return this.each(function () {
4127
+ var $this = $(this);
4128
+ var data = $this.data(DATA_KEY$9);
4129
+
4130
+ if (!data) {
4131
+ data = new Tab(this);
4132
+ $this.data(DATA_KEY$9, data);
4133
+ }
4134
+
4135
+ if (typeof config === 'string') {
4136
+ if (typeof data[config] === 'undefined') {
4137
+ throw new TypeError("No method named \"" + config + "\"");
4138
+ }
4139
+
4140
+ data[config]();
4141
+ }
4142
+ });
4143
+ };
4144
+
4145
+ _createClass(Tab, null, [{
4146
+ key: "VERSION",
4147
+ get: function get() {
4148
+ return VERSION$9;
4149
+ }
4150
+ }]);
4151
+
4152
+ return Tab;
4153
+ }();
4154
+ /**
4155
+ * ------------------------------------------------------------------------
4156
+ * Data Api implementation
4157
+ * ------------------------------------------------------------------------
4158
+ */
4159
+
4160
+
4161
+ $(document).on(Event$9.CLICK_DATA_API, Selector$9.DATA_TOGGLE, function (event) {
4162
+ event.preventDefault();
4163
+
4164
+ Tab._jQueryInterface.call($(this), 'show');
4165
+ });
4166
+ /**
4167
+ * ------------------------------------------------------------------------
4168
+ * jQuery
4169
+ * ------------------------------------------------------------------------
4170
+ */
4171
+
4172
+ $.fn[NAME$9] = Tab._jQueryInterface;
4173
+ $.fn[NAME$9].Constructor = Tab;
4174
+
4175
+ $.fn[NAME$9].noConflict = function () {
4176
+ $.fn[NAME$9] = JQUERY_NO_CONFLICT$9;
4177
+ return Tab._jQueryInterface;
4178
+ };
4179
+
4180
+ /**
4181
+ * ------------------------------------------------------------------------
4182
+ * Constants
4183
+ * ------------------------------------------------------------------------
4184
+ */
4185
+
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
+ */
4221
+
4222
+ };
4223
+
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;
4231
+
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
+ }));
4435
+ //# sourceMappingURL=bootstrap.js.map