bootstrap_sb_admin_base_v1 0.1.0 → 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,3894 +0,0 @@
1
- /*!
2
- * Bootstrap v4.0.0 (https://getbootstrap.com)
3
- * Copyright 2011-2018 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
4
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
5
- */
6
- (function (global, factory) {
7
- typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('jquery'), require('popper.js')) :
8
- typeof define === 'function' && define.amd ? define(['exports', 'jquery', 'popper.js'], factory) :
9
- (factory((global.bootstrap = {}),global.jQuery,global.Popper));
10
- }(this, (function (exports,$,Popper) { 'use strict';
11
-
12
- $ = $ && $.hasOwnProperty('default') ? $['default'] : $;
13
- Popper = Popper && Popper.hasOwnProperty('default') ? Popper['default'] : Popper;
14
-
15
- function _defineProperties(target, props) {
16
- for (var i = 0; i < props.length; i++) {
17
- var descriptor = props[i];
18
- descriptor.enumerable = descriptor.enumerable || false;
19
- descriptor.configurable = true;
20
- if ("value" in descriptor) descriptor.writable = true;
21
- Object.defineProperty(target, descriptor.key, descriptor);
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 _extends() {
32
- _extends = Object.assign || function (target) {
33
- for (var i = 1; i < arguments.length; i++) {
34
- var source = arguments[i];
35
-
36
- for (var key in source) {
37
- if (Object.prototype.hasOwnProperty.call(source, key)) {
38
- target[key] = source[key];
39
- }
40
- }
41
- }
42
-
43
- return target;
44
- };
45
-
46
- return _extends.apply(this, arguments);
47
- }
48
-
49
- function _inheritsLoose(subClass, superClass) {
50
- subClass.prototype = Object.create(superClass.prototype);
51
- subClass.prototype.constructor = subClass;
52
- subClass.__proto__ = superClass;
53
- }
54
-
55
- /**
56
- * --------------------------------------------------------------------------
57
- * Bootstrap (v4.0.0): util.js
58
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
59
- * --------------------------------------------------------------------------
60
- */
61
-
62
- var Util = function ($$$1) {
63
- /**
64
- * ------------------------------------------------------------------------
65
- * Private TransitionEnd Helpers
66
- * ------------------------------------------------------------------------
67
- */
68
- var transition = false;
69
- var MAX_UID = 1000000; // Shoutout AngusCroll (https://goo.gl/pxwQGp)
70
-
71
- function toType(obj) {
72
- return {}.toString.call(obj).match(/\s([a-zA-Z]+)/)[1].toLowerCase();
73
- }
74
-
75
- function getSpecialTransitionEndEvent() {
76
- return {
77
- bindType: transition.end,
78
- delegateType: transition.end,
79
- handle: function handle(event) {
80
- if ($$$1(event.target).is(this)) {
81
- return event.handleObj.handler.apply(this, arguments); // eslint-disable-line prefer-rest-params
82
- }
83
-
84
- return undefined; // eslint-disable-line no-undefined
85
- }
86
- };
87
- }
88
-
89
- function transitionEndTest() {
90
- if (typeof window !== 'undefined' && window.QUnit) {
91
- return false;
92
- }
93
-
94
- return {
95
- end: 'transitionend'
96
- };
97
- }
98
-
99
- function transitionEndEmulator(duration) {
100
- var _this = this;
101
-
102
- var called = false;
103
- $$$1(this).one(Util.TRANSITION_END, function () {
104
- called = true;
105
- });
106
- setTimeout(function () {
107
- if (!called) {
108
- Util.triggerTransitionEnd(_this);
109
- }
110
- }, duration);
111
- return this;
112
- }
113
-
114
- function setTransitionEndSupport() {
115
- transition = transitionEndTest();
116
- $$$1.fn.emulateTransitionEnd = transitionEndEmulator;
117
-
118
- if (Util.supportsTransitionEnd()) {
119
- $$$1.event.special[Util.TRANSITION_END] = getSpecialTransitionEndEvent();
120
- }
121
- }
122
-
123
- function escapeId(selector) {
124
- // We escape IDs in case of special selectors (selector = '#myId:something')
125
- // $.escapeSelector does not exist in jQuery < 3
126
- selector = typeof $$$1.escapeSelector === 'function' ? $$$1.escapeSelector(selector).substr(1) : selector.replace(/(:|\.|\[|\]|,|=|@)/g, '\\$1');
127
- return selector;
128
- }
129
- /**
130
- * --------------------------------------------------------------------------
131
- * Public Util Api
132
- * --------------------------------------------------------------------------
133
- */
134
-
135
-
136
- var Util = {
137
- TRANSITION_END: 'bsTransitionEnd',
138
- getUID: function getUID(prefix) {
139
- do {
140
- // eslint-disable-next-line no-bitwise
141
- prefix += ~~(Math.random() * MAX_UID); // "~~" acts like a faster Math.floor() here
142
- } while (document.getElementById(prefix));
143
-
144
- return prefix;
145
- },
146
- getSelectorFromElement: function getSelectorFromElement(element) {
147
- var selector = element.getAttribute('data-target');
148
-
149
- if (!selector || selector === '#') {
150
- selector = element.getAttribute('href') || '';
151
- } // If it's an ID
152
-
153
-
154
- if (selector.charAt(0) === '#') {
155
- selector = escapeId(selector);
156
- }
157
-
158
- try {
159
- var $selector = $$$1(document).find(selector);
160
- return $selector.length > 0 ? selector : null;
161
- } catch (err) {
162
- return null;
163
- }
164
- },
165
- reflow: function reflow(element) {
166
- return element.offsetHeight;
167
- },
168
- triggerTransitionEnd: function triggerTransitionEnd(element) {
169
- $$$1(element).trigger(transition.end);
170
- },
171
- supportsTransitionEnd: function supportsTransitionEnd() {
172
- return Boolean(transition);
173
- },
174
- isElement: function isElement(obj) {
175
- return (obj[0] || obj).nodeType;
176
- },
177
- typeCheckConfig: function typeCheckConfig(componentName, config, configTypes) {
178
- for (var property in configTypes) {
179
- if (Object.prototype.hasOwnProperty.call(configTypes, property)) {
180
- var expectedTypes = configTypes[property];
181
- var value = config[property];
182
- var valueType = value && Util.isElement(value) ? 'element' : toType(value);
183
-
184
- if (!new RegExp(expectedTypes).test(valueType)) {
185
- throw new Error(componentName.toUpperCase() + ": " + ("Option \"" + property + "\" provided type \"" + valueType + "\" ") + ("but expected type \"" + expectedTypes + "\"."));
186
- }
187
- }
188
- }
189
- }
190
- };
191
- setTransitionEndSupport();
192
- return Util;
193
- }($);
194
-
195
- /**
196
- * --------------------------------------------------------------------------
197
- * Bootstrap (v4.0.0): alert.js
198
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
199
- * --------------------------------------------------------------------------
200
- */
201
-
202
- var Alert = function ($$$1) {
203
- /**
204
- * ------------------------------------------------------------------------
205
- * Constants
206
- * ------------------------------------------------------------------------
207
- */
208
- var NAME = 'alert';
209
- var VERSION = '4.0.0';
210
- var DATA_KEY = 'bs.alert';
211
- var EVENT_KEY = "." + DATA_KEY;
212
- var DATA_API_KEY = '.data-api';
213
- var JQUERY_NO_CONFLICT = $$$1.fn[NAME];
214
- var TRANSITION_DURATION = 150;
215
- var Selector = {
216
- DISMISS: '[data-dismiss="alert"]'
217
- };
218
- var Event = {
219
- CLOSE: "close" + EVENT_KEY,
220
- CLOSED: "closed" + EVENT_KEY,
221
- CLICK_DATA_API: "click" + EVENT_KEY + DATA_API_KEY
222
- };
223
- var ClassName = {
224
- ALERT: 'alert',
225
- FADE: 'fade',
226
- SHOW: 'show'
227
- /**
228
- * ------------------------------------------------------------------------
229
- * Class Definition
230
- * ------------------------------------------------------------------------
231
- */
232
-
233
- };
234
-
235
- var Alert =
236
- /*#__PURE__*/
237
- function () {
238
- function Alert(element) {
239
- this._element = element;
240
- } // Getters
241
-
242
-
243
- var _proto = Alert.prototype;
244
-
245
- // Public
246
- _proto.close = function close(element) {
247
- element = element || this._element;
248
-
249
- var rootElement = this._getRootElement(element);
250
-
251
- var customEvent = this._triggerCloseEvent(rootElement);
252
-
253
- if (customEvent.isDefaultPrevented()) {
254
- return;
255
- }
256
-
257
- this._removeElement(rootElement);
258
- };
259
-
260
- _proto.dispose = function dispose() {
261
- $$$1.removeData(this._element, DATA_KEY);
262
- this._element = null;
263
- }; // Private
264
-
265
-
266
- _proto._getRootElement = function _getRootElement(element) {
267
- var selector = Util.getSelectorFromElement(element);
268
- var parent = false;
269
-
270
- if (selector) {
271
- parent = $$$1(selector)[0];
272
- }
273
-
274
- if (!parent) {
275
- parent = $$$1(element).closest("." + ClassName.ALERT)[0];
276
- }
277
-
278
- return parent;
279
- };
280
-
281
- _proto._triggerCloseEvent = function _triggerCloseEvent(element) {
282
- var closeEvent = $$$1.Event(Event.CLOSE);
283
- $$$1(element).trigger(closeEvent);
284
- return closeEvent;
285
- };
286
-
287
- _proto._removeElement = function _removeElement(element) {
288
- var _this = this;
289
-
290
- $$$1(element).removeClass(ClassName.SHOW);
291
-
292
- if (!Util.supportsTransitionEnd() || !$$$1(element).hasClass(ClassName.FADE)) {
293
- this._destroyElement(element);
294
-
295
- return;
296
- }
297
-
298
- $$$1(element).one(Util.TRANSITION_END, function (event) {
299
- return _this._destroyElement(element, event);
300
- }).emulateTransitionEnd(TRANSITION_DURATION);
301
- };
302
-
303
- _proto._destroyElement = function _destroyElement(element) {
304
- $$$1(element).detach().trigger(Event.CLOSED).remove();
305
- }; // Static
306
-
307
-
308
- Alert._jQueryInterface = function _jQueryInterface(config) {
309
- return this.each(function () {
310
- var $element = $$$1(this);
311
- var data = $element.data(DATA_KEY);
312
-
313
- if (!data) {
314
- data = new Alert(this);
315
- $element.data(DATA_KEY, data);
316
- }
317
-
318
- if (config === 'close') {
319
- data[config](this);
320
- }
321
- });
322
- };
323
-
324
- Alert._handleDismiss = function _handleDismiss(alertInstance) {
325
- return function (event) {
326
- if (event) {
327
- event.preventDefault();
328
- }
329
-
330
- alertInstance.close(this);
331
- };
332
- };
333
-
334
- _createClass(Alert, null, [{
335
- key: "VERSION",
336
- get: function get() {
337
- return VERSION;
338
- }
339
- }]);
340
- return Alert;
341
- }();
342
- /**
343
- * ------------------------------------------------------------------------
344
- * Data Api implementation
345
- * ------------------------------------------------------------------------
346
- */
347
-
348
-
349
- $$$1(document).on(Event.CLICK_DATA_API, Selector.DISMISS, Alert._handleDismiss(new Alert()));
350
- /**
351
- * ------------------------------------------------------------------------
352
- * jQuery
353
- * ------------------------------------------------------------------------
354
- */
355
-
356
- $$$1.fn[NAME] = Alert._jQueryInterface;
357
- $$$1.fn[NAME].Constructor = Alert;
358
-
359
- $$$1.fn[NAME].noConflict = function () {
360
- $$$1.fn[NAME] = JQUERY_NO_CONFLICT;
361
- return Alert._jQueryInterface;
362
- };
363
-
364
- return Alert;
365
- }($);
366
-
367
- /**
368
- * --------------------------------------------------------------------------
369
- * Bootstrap (v4.0.0): button.js
370
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
371
- * --------------------------------------------------------------------------
372
- */
373
-
374
- var Button = function ($$$1) {
375
- /**
376
- * ------------------------------------------------------------------------
377
- * Constants
378
- * ------------------------------------------------------------------------
379
- */
380
- var NAME = 'button';
381
- var VERSION = '4.0.0';
382
- var DATA_KEY = 'bs.button';
383
- var EVENT_KEY = "." + DATA_KEY;
384
- var DATA_API_KEY = '.data-api';
385
- var JQUERY_NO_CONFLICT = $$$1.fn[NAME];
386
- var ClassName = {
387
- ACTIVE: 'active',
388
- BUTTON: 'btn',
389
- FOCUS: 'focus'
390
- };
391
- var Selector = {
392
- DATA_TOGGLE_CARROT: '[data-toggle^="button"]',
393
- DATA_TOGGLE: '[data-toggle="buttons"]',
394
- INPUT: 'input',
395
- ACTIVE: '.active',
396
- BUTTON: '.btn'
397
- };
398
- var Event = {
399
- CLICK_DATA_API: "click" + EVENT_KEY + DATA_API_KEY,
400
- FOCUS_BLUR_DATA_API: "focus" + EVENT_KEY + DATA_API_KEY + " " + ("blur" + EVENT_KEY + DATA_API_KEY)
401
- /**
402
- * ------------------------------------------------------------------------
403
- * Class Definition
404
- * ------------------------------------------------------------------------
405
- */
406
-
407
- };
408
-
409
- var Button =
410
- /*#__PURE__*/
411
- function () {
412
- function Button(element) {
413
- this._element = element;
414
- } // Getters
415
-
416
-
417
- var _proto = Button.prototype;
418
-
419
- // Public
420
- _proto.toggle = function toggle() {
421
- var triggerChangeEvent = true;
422
- var addAriaPressed = true;
423
- var rootElement = $$$1(this._element).closest(Selector.DATA_TOGGLE)[0];
424
-
425
- if (rootElement) {
426
- var input = $$$1(this._element).find(Selector.INPUT)[0];
427
-
428
- if (input) {
429
- if (input.type === 'radio') {
430
- if (input.checked && $$$1(this._element).hasClass(ClassName.ACTIVE)) {
431
- triggerChangeEvent = false;
432
- } else {
433
- var activeElement = $$$1(rootElement).find(Selector.ACTIVE)[0];
434
-
435
- if (activeElement) {
436
- $$$1(activeElement).removeClass(ClassName.ACTIVE);
437
- }
438
- }
439
- }
440
-
441
- if (triggerChangeEvent) {
442
- if (input.hasAttribute('disabled') || rootElement.hasAttribute('disabled') || input.classList.contains('disabled') || rootElement.classList.contains('disabled')) {
443
- return;
444
- }
445
-
446
- input.checked = !$$$1(this._element).hasClass(ClassName.ACTIVE);
447
- $$$1(input).trigger('change');
448
- }
449
-
450
- input.focus();
451
- addAriaPressed = false;
452
- }
453
- }
454
-
455
- if (addAriaPressed) {
456
- this._element.setAttribute('aria-pressed', !$$$1(this._element).hasClass(ClassName.ACTIVE));
457
- }
458
-
459
- if (triggerChangeEvent) {
460
- $$$1(this._element).toggleClass(ClassName.ACTIVE);
461
- }
462
- };
463
-
464
- _proto.dispose = function dispose() {
465
- $$$1.removeData(this._element, DATA_KEY);
466
- this._element = null;
467
- }; // Static
468
-
469
-
470
- Button._jQueryInterface = function _jQueryInterface(config) {
471
- return this.each(function () {
472
- var data = $$$1(this).data(DATA_KEY);
473
-
474
- if (!data) {
475
- data = new Button(this);
476
- $$$1(this).data(DATA_KEY, data);
477
- }
478
-
479
- if (config === 'toggle') {
480
- data[config]();
481
- }
482
- });
483
- };
484
-
485
- _createClass(Button, null, [{
486
- key: "VERSION",
487
- get: function get() {
488
- return VERSION;
489
- }
490
- }]);
491
- return Button;
492
- }();
493
- /**
494
- * ------------------------------------------------------------------------
495
- * Data Api implementation
496
- * ------------------------------------------------------------------------
497
- */
498
-
499
-
500
- $$$1(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE_CARROT, function (event) {
501
- event.preventDefault();
502
- var button = event.target;
503
-
504
- if (!$$$1(button).hasClass(ClassName.BUTTON)) {
505
- button = $$$1(button).closest(Selector.BUTTON);
506
- }
507
-
508
- Button._jQueryInterface.call($$$1(button), 'toggle');
509
- }).on(Event.FOCUS_BLUR_DATA_API, Selector.DATA_TOGGLE_CARROT, function (event) {
510
- var button = $$$1(event.target).closest(Selector.BUTTON)[0];
511
- $$$1(button).toggleClass(ClassName.FOCUS, /^focus(in)?$/.test(event.type));
512
- });
513
- /**
514
- * ------------------------------------------------------------------------
515
- * jQuery
516
- * ------------------------------------------------------------------------
517
- */
518
-
519
- $$$1.fn[NAME] = Button._jQueryInterface;
520
- $$$1.fn[NAME].Constructor = Button;
521
-
522
- $$$1.fn[NAME].noConflict = function () {
523
- $$$1.fn[NAME] = JQUERY_NO_CONFLICT;
524
- return Button._jQueryInterface;
525
- };
526
-
527
- return Button;
528
- }($);
529
-
530
- /**
531
- * --------------------------------------------------------------------------
532
- * Bootstrap (v4.0.0): carousel.js
533
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
534
- * --------------------------------------------------------------------------
535
- */
536
-
537
- var Carousel = function ($$$1) {
538
- /**
539
- * ------------------------------------------------------------------------
540
- * Constants
541
- * ------------------------------------------------------------------------
542
- */
543
- var NAME = 'carousel';
544
- var VERSION = '4.0.0';
545
- var DATA_KEY = 'bs.carousel';
546
- var EVENT_KEY = "." + DATA_KEY;
547
- var DATA_API_KEY = '.data-api';
548
- var JQUERY_NO_CONFLICT = $$$1.fn[NAME];
549
- var TRANSITION_DURATION = 600;
550
- var ARROW_LEFT_KEYCODE = 37; // KeyboardEvent.which value for left arrow key
551
-
552
- var ARROW_RIGHT_KEYCODE = 39; // KeyboardEvent.which value for right arrow key
553
-
554
- var TOUCHEVENT_COMPAT_WAIT = 500; // Time for mouse compat events to fire after touch
555
-
556
- var Default = {
557
- interval: 5000,
558
- keyboard: true,
559
- slide: false,
560
- pause: 'hover',
561
- wrap: true
562
- };
563
- var DefaultType = {
564
- interval: '(number|boolean)',
565
- keyboard: 'boolean',
566
- slide: '(boolean|string)',
567
- pause: '(string|boolean)',
568
- wrap: 'boolean'
569
- };
570
- var Direction = {
571
- NEXT: 'next',
572
- PREV: 'prev',
573
- LEFT: 'left',
574
- RIGHT: 'right'
575
- };
576
- var Event = {
577
- SLIDE: "slide" + EVENT_KEY,
578
- SLID: "slid" + EVENT_KEY,
579
- KEYDOWN: "keydown" + EVENT_KEY,
580
- MOUSEENTER: "mouseenter" + EVENT_KEY,
581
- MOUSELEAVE: "mouseleave" + EVENT_KEY,
582
- TOUCHEND: "touchend" + EVENT_KEY,
583
- LOAD_DATA_API: "load" + EVENT_KEY + DATA_API_KEY,
584
- CLICK_DATA_API: "click" + EVENT_KEY + DATA_API_KEY
585
- };
586
- var ClassName = {
587
- CAROUSEL: 'carousel',
588
- ACTIVE: 'active',
589
- SLIDE: 'slide',
590
- RIGHT: 'carousel-item-right',
591
- LEFT: 'carousel-item-left',
592
- NEXT: 'carousel-item-next',
593
- PREV: 'carousel-item-prev',
594
- ITEM: 'carousel-item'
595
- };
596
- var Selector = {
597
- ACTIVE: '.active',
598
- ACTIVE_ITEM: '.active.carousel-item',
599
- ITEM: '.carousel-item',
600
- NEXT_PREV: '.carousel-item-next, .carousel-item-prev',
601
- INDICATORS: '.carousel-indicators',
602
- DATA_SLIDE: '[data-slide], [data-slide-to]',
603
- DATA_RIDE: '[data-ride="carousel"]'
604
- /**
605
- * ------------------------------------------------------------------------
606
- * Class Definition
607
- * ------------------------------------------------------------------------
608
- */
609
-
610
- };
611
-
612
- var Carousel =
613
- /*#__PURE__*/
614
- function () {
615
- function Carousel(element, config) {
616
- this._items = null;
617
- this._interval = null;
618
- this._activeElement = null;
619
- this._isPaused = false;
620
- this._isSliding = false;
621
- this.touchTimeout = null;
622
- this._config = this._getConfig(config);
623
- this._element = $$$1(element)[0];
624
- this._indicatorsElement = $$$1(this._element).find(Selector.INDICATORS)[0];
625
-
626
- this._addEventListeners();
627
- } // Getters
628
-
629
-
630
- var _proto = Carousel.prototype;
631
-
632
- // Public
633
- _proto.next = function next() {
634
- if (!this._isSliding) {
635
- this._slide(Direction.NEXT);
636
- }
637
- };
638
-
639
- _proto.nextWhenVisible = function nextWhenVisible() {
640
- // Don't call next when the page isn't visible
641
- // or the carousel or its parent isn't visible
642
- if (!document.hidden && $$$1(this._element).is(':visible') && $$$1(this._element).css('visibility') !== 'hidden') {
643
- this.next();
644
- }
645
- };
646
-
647
- _proto.prev = function prev() {
648
- if (!this._isSliding) {
649
- this._slide(Direction.PREV);
650
- }
651
- };
652
-
653
- _proto.pause = function pause(event) {
654
- if (!event) {
655
- this._isPaused = true;
656
- }
657
-
658
- if ($$$1(this._element).find(Selector.NEXT_PREV)[0] && Util.supportsTransitionEnd()) {
659
- Util.triggerTransitionEnd(this._element);
660
- this.cycle(true);
661
- }
662
-
663
- clearInterval(this._interval);
664
- this._interval = null;
665
- };
666
-
667
- _proto.cycle = function cycle(event) {
668
- if (!event) {
669
- this._isPaused = false;
670
- }
671
-
672
- if (this._interval) {
673
- clearInterval(this._interval);
674
- this._interval = null;
675
- }
676
-
677
- if (this._config.interval && !this._isPaused) {
678
- this._interval = setInterval((document.visibilityState ? this.nextWhenVisible : this.next).bind(this), this._config.interval);
679
- }
680
- };
681
-
682
- _proto.to = function to(index) {
683
- var _this = this;
684
-
685
- this._activeElement = $$$1(this._element).find(Selector.ACTIVE_ITEM)[0];
686
-
687
- var activeIndex = this._getItemIndex(this._activeElement);
688
-
689
- if (index > this._items.length - 1 || index < 0) {
690
- return;
691
- }
692
-
693
- if (this._isSliding) {
694
- $$$1(this._element).one(Event.SLID, function () {
695
- return _this.to(index);
696
- });
697
- return;
698
- }
699
-
700
- if (activeIndex === index) {
701
- this.pause();
702
- this.cycle();
703
- return;
704
- }
705
-
706
- var direction = index > activeIndex ? Direction.NEXT : Direction.PREV;
707
-
708
- this._slide(direction, this._items[index]);
709
- };
710
-
711
- _proto.dispose = function dispose() {
712
- $$$1(this._element).off(EVENT_KEY);
713
- $$$1.removeData(this._element, DATA_KEY);
714
- this._items = null;
715
- this._config = null;
716
- this._element = null;
717
- this._interval = null;
718
- this._isPaused = null;
719
- this._isSliding = null;
720
- this._activeElement = null;
721
- this._indicatorsElement = null;
722
- }; // Private
723
-
724
-
725
- _proto._getConfig = function _getConfig(config) {
726
- config = _extends({}, Default, config);
727
- Util.typeCheckConfig(NAME, config, DefaultType);
728
- return config;
729
- };
730
-
731
- _proto._addEventListeners = function _addEventListeners() {
732
- var _this2 = this;
733
-
734
- if (this._config.keyboard) {
735
- $$$1(this._element).on(Event.KEYDOWN, function (event) {
736
- return _this2._keydown(event);
737
- });
738
- }
739
-
740
- if (this._config.pause === 'hover') {
741
- $$$1(this._element).on(Event.MOUSEENTER, function (event) {
742
- return _this2.pause(event);
743
- }).on(Event.MOUSELEAVE, function (event) {
744
- return _this2.cycle(event);
745
- });
746
-
747
- if ('ontouchstart' in document.documentElement) {
748
- // If it's a touch-enabled device, mouseenter/leave are fired as
749
- // part of the mouse compatibility events on first tap - the carousel
750
- // would stop cycling until user tapped out of it;
751
- // here, we listen for touchend, explicitly pause the carousel
752
- // (as if it's the second time we tap on it, mouseenter compat event
753
- // is NOT fired) and after a timeout (to allow for mouse compatibility
754
- // events to fire) we explicitly restart cycling
755
- $$$1(this._element).on(Event.TOUCHEND, function () {
756
- _this2.pause();
757
-
758
- if (_this2.touchTimeout) {
759
- clearTimeout(_this2.touchTimeout);
760
- }
761
-
762
- _this2.touchTimeout = setTimeout(function (event) {
763
- return _this2.cycle(event);
764
- }, TOUCHEVENT_COMPAT_WAIT + _this2._config.interval);
765
- });
766
- }
767
- }
768
- };
769
-
770
- _proto._keydown = function _keydown(event) {
771
- if (/input|textarea/i.test(event.target.tagName)) {
772
- return;
773
- }
774
-
775
- switch (event.which) {
776
- case ARROW_LEFT_KEYCODE:
777
- event.preventDefault();
778
- this.prev();
779
- break;
780
-
781
- case ARROW_RIGHT_KEYCODE:
782
- event.preventDefault();
783
- this.next();
784
- break;
785
-
786
- default:
787
- }
788
- };
789
-
790
- _proto._getItemIndex = function _getItemIndex(element) {
791
- this._items = $$$1.makeArray($$$1(element).parent().find(Selector.ITEM));
792
- return this._items.indexOf(element);
793
- };
794
-
795
- _proto._getItemByDirection = function _getItemByDirection(direction, activeElement) {
796
- var isNextDirection = direction === Direction.NEXT;
797
- var isPrevDirection = direction === Direction.PREV;
798
-
799
- var activeIndex = this._getItemIndex(activeElement);
800
-
801
- var lastItemIndex = this._items.length - 1;
802
- var isGoingToWrap = isPrevDirection && activeIndex === 0 || isNextDirection && activeIndex === lastItemIndex;
803
-
804
- if (isGoingToWrap && !this._config.wrap) {
805
- return activeElement;
806
- }
807
-
808
- var delta = direction === Direction.PREV ? -1 : 1;
809
- var itemIndex = (activeIndex + delta) % this._items.length;
810
- return itemIndex === -1 ? this._items[this._items.length - 1] : this._items[itemIndex];
811
- };
812
-
813
- _proto._triggerSlideEvent = function _triggerSlideEvent(relatedTarget, eventDirectionName) {
814
- var targetIndex = this._getItemIndex(relatedTarget);
815
-
816
- var fromIndex = this._getItemIndex($$$1(this._element).find(Selector.ACTIVE_ITEM)[0]);
817
-
818
- var slideEvent = $$$1.Event(Event.SLIDE, {
819
- relatedTarget: relatedTarget,
820
- direction: eventDirectionName,
821
- from: fromIndex,
822
- to: targetIndex
823
- });
824
- $$$1(this._element).trigger(slideEvent);
825
- return slideEvent;
826
- };
827
-
828
- _proto._setActiveIndicatorElement = function _setActiveIndicatorElement(element) {
829
- if (this._indicatorsElement) {
830
- $$$1(this._indicatorsElement).find(Selector.ACTIVE).removeClass(ClassName.ACTIVE);
831
-
832
- var nextIndicator = this._indicatorsElement.children[this._getItemIndex(element)];
833
-
834
- if (nextIndicator) {
835
- $$$1(nextIndicator).addClass(ClassName.ACTIVE);
836
- }
837
- }
838
- };
839
-
840
- _proto._slide = function _slide(direction, element) {
841
- var _this3 = this;
842
-
843
- var activeElement = $$$1(this._element).find(Selector.ACTIVE_ITEM)[0];
844
-
845
- var activeElementIndex = this._getItemIndex(activeElement);
846
-
847
- var nextElement = element || activeElement && this._getItemByDirection(direction, activeElement);
848
-
849
- var nextElementIndex = this._getItemIndex(nextElement);
850
-
851
- var isCycling = Boolean(this._interval);
852
- var directionalClassName;
853
- var orderClassName;
854
- var eventDirectionName;
855
-
856
- if (direction === Direction.NEXT) {
857
- directionalClassName = ClassName.LEFT;
858
- orderClassName = ClassName.NEXT;
859
- eventDirectionName = Direction.LEFT;
860
- } else {
861
- directionalClassName = ClassName.RIGHT;
862
- orderClassName = ClassName.PREV;
863
- eventDirectionName = Direction.RIGHT;
864
- }
865
-
866
- if (nextElement && $$$1(nextElement).hasClass(ClassName.ACTIVE)) {
867
- this._isSliding = false;
868
- return;
869
- }
870
-
871
- var slideEvent = this._triggerSlideEvent(nextElement, eventDirectionName);
872
-
873
- if (slideEvent.isDefaultPrevented()) {
874
- return;
875
- }
876
-
877
- if (!activeElement || !nextElement) {
878
- // Some weirdness is happening, so we bail
879
- return;
880
- }
881
-
882
- this._isSliding = true;
883
-
884
- if (isCycling) {
885
- this.pause();
886
- }
887
-
888
- this._setActiveIndicatorElement(nextElement);
889
-
890
- var slidEvent = $$$1.Event(Event.SLID, {
891
- relatedTarget: nextElement,
892
- direction: eventDirectionName,
893
- from: activeElementIndex,
894
- to: nextElementIndex
895
- });
896
-
897
- if (Util.supportsTransitionEnd() && $$$1(this._element).hasClass(ClassName.SLIDE)) {
898
- $$$1(nextElement).addClass(orderClassName);
899
- Util.reflow(nextElement);
900
- $$$1(activeElement).addClass(directionalClassName);
901
- $$$1(nextElement).addClass(directionalClassName);
902
- $$$1(activeElement).one(Util.TRANSITION_END, function () {
903
- $$$1(nextElement).removeClass(directionalClassName + " " + orderClassName).addClass(ClassName.ACTIVE);
904
- $$$1(activeElement).removeClass(ClassName.ACTIVE + " " + orderClassName + " " + directionalClassName);
905
- _this3._isSliding = false;
906
- setTimeout(function () {
907
- return $$$1(_this3._element).trigger(slidEvent);
908
- }, 0);
909
- }).emulateTransitionEnd(TRANSITION_DURATION);
910
- } else {
911
- $$$1(activeElement).removeClass(ClassName.ACTIVE);
912
- $$$1(nextElement).addClass(ClassName.ACTIVE);
913
- this._isSliding = false;
914
- $$$1(this._element).trigger(slidEvent);
915
- }
916
-
917
- if (isCycling) {
918
- this.cycle();
919
- }
920
- }; // Static
921
-
922
-
923
- Carousel._jQueryInterface = function _jQueryInterface(config) {
924
- return this.each(function () {
925
- var data = $$$1(this).data(DATA_KEY);
926
-
927
- var _config = _extends({}, Default, $$$1(this).data());
928
-
929
- if (typeof config === 'object') {
930
- _config = _extends({}, _config, config);
931
- }
932
-
933
- var action = typeof config === 'string' ? config : _config.slide;
934
-
935
- if (!data) {
936
- data = new Carousel(this, _config);
937
- $$$1(this).data(DATA_KEY, data);
938
- }
939
-
940
- if (typeof config === 'number') {
941
- data.to(config);
942
- } else if (typeof action === 'string') {
943
- if (typeof data[action] === 'undefined') {
944
- throw new TypeError("No method named \"" + action + "\"");
945
- }
946
-
947
- data[action]();
948
- } else if (_config.interval) {
949
- data.pause();
950
- data.cycle();
951
- }
952
- });
953
- };
954
-
955
- Carousel._dataApiClickHandler = function _dataApiClickHandler(event) {
956
- var selector = Util.getSelectorFromElement(this);
957
-
958
- if (!selector) {
959
- return;
960
- }
961
-
962
- var target = $$$1(selector)[0];
963
-
964
- if (!target || !$$$1(target).hasClass(ClassName.CAROUSEL)) {
965
- return;
966
- }
967
-
968
- var config = _extends({}, $$$1(target).data(), $$$1(this).data());
969
- var slideIndex = this.getAttribute('data-slide-to');
970
-
971
- if (slideIndex) {
972
- config.interval = false;
973
- }
974
-
975
- Carousel._jQueryInterface.call($$$1(target), config);
976
-
977
- if (slideIndex) {
978
- $$$1(target).data(DATA_KEY).to(slideIndex);
979
- }
980
-
981
- event.preventDefault();
982
- };
983
-
984
- _createClass(Carousel, null, [{
985
- key: "VERSION",
986
- get: function get() {
987
- return VERSION;
988
- }
989
- }, {
990
- key: "Default",
991
- get: function get() {
992
- return Default;
993
- }
994
- }]);
995
- return Carousel;
996
- }();
997
- /**
998
- * ------------------------------------------------------------------------
999
- * Data Api implementation
1000
- * ------------------------------------------------------------------------
1001
- */
1002
-
1003
-
1004
- $$$1(document).on(Event.CLICK_DATA_API, Selector.DATA_SLIDE, Carousel._dataApiClickHandler);
1005
- $$$1(window).on(Event.LOAD_DATA_API, function () {
1006
- $$$1(Selector.DATA_RIDE).each(function () {
1007
- var $carousel = $$$1(this);
1008
-
1009
- Carousel._jQueryInterface.call($carousel, $carousel.data());
1010
- });
1011
- });
1012
- /**
1013
- * ------------------------------------------------------------------------
1014
- * jQuery
1015
- * ------------------------------------------------------------------------
1016
- */
1017
-
1018
- $$$1.fn[NAME] = Carousel._jQueryInterface;
1019
- $$$1.fn[NAME].Constructor = Carousel;
1020
-
1021
- $$$1.fn[NAME].noConflict = function () {
1022
- $$$1.fn[NAME] = JQUERY_NO_CONFLICT;
1023
- return Carousel._jQueryInterface;
1024
- };
1025
-
1026
- return Carousel;
1027
- }($);
1028
-
1029
- /**
1030
- * --------------------------------------------------------------------------
1031
- * Bootstrap (v4.0.0): collapse.js
1032
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
1033
- * --------------------------------------------------------------------------
1034
- */
1035
-
1036
- var Collapse = function ($$$1) {
1037
- /**
1038
- * ------------------------------------------------------------------------
1039
- * Constants
1040
- * ------------------------------------------------------------------------
1041
- */
1042
- var NAME = 'collapse';
1043
- var VERSION = '4.0.0';
1044
- var DATA_KEY = 'bs.collapse';
1045
- var EVENT_KEY = "." + DATA_KEY;
1046
- var DATA_API_KEY = '.data-api';
1047
- var JQUERY_NO_CONFLICT = $$$1.fn[NAME];
1048
- var TRANSITION_DURATION = 600;
1049
- var Default = {
1050
- toggle: true,
1051
- parent: ''
1052
- };
1053
- var DefaultType = {
1054
- toggle: 'boolean',
1055
- parent: '(string|element)'
1056
- };
1057
- var Event = {
1058
- SHOW: "show" + EVENT_KEY,
1059
- SHOWN: "shown" + EVENT_KEY,
1060
- HIDE: "hide" + EVENT_KEY,
1061
- HIDDEN: "hidden" + EVENT_KEY,
1062
- CLICK_DATA_API: "click" + EVENT_KEY + DATA_API_KEY
1063
- };
1064
- var ClassName = {
1065
- SHOW: 'show',
1066
- COLLAPSE: 'collapse',
1067
- COLLAPSING: 'collapsing',
1068
- COLLAPSED: 'collapsed'
1069
- };
1070
- var Dimension = {
1071
- WIDTH: 'width',
1072
- HEIGHT: 'height'
1073
- };
1074
- var Selector = {
1075
- ACTIVES: '.show, .collapsing',
1076
- DATA_TOGGLE: '[data-toggle="collapse"]'
1077
- /**
1078
- * ------------------------------------------------------------------------
1079
- * Class Definition
1080
- * ------------------------------------------------------------------------
1081
- */
1082
-
1083
- };
1084
-
1085
- var Collapse =
1086
- /*#__PURE__*/
1087
- function () {
1088
- function Collapse(element, config) {
1089
- this._isTransitioning = false;
1090
- this._element = element;
1091
- this._config = this._getConfig(config);
1092
- this._triggerArray = $$$1.makeArray($$$1("[data-toggle=\"collapse\"][href=\"#" + element.id + "\"]," + ("[data-toggle=\"collapse\"][data-target=\"#" + element.id + "\"]")));
1093
- var tabToggles = $$$1(Selector.DATA_TOGGLE);
1094
-
1095
- for (var i = 0; i < tabToggles.length; i++) {
1096
- var elem = tabToggles[i];
1097
- var selector = Util.getSelectorFromElement(elem);
1098
-
1099
- if (selector !== null && $$$1(selector).filter(element).length > 0) {
1100
- this._selector = selector;
1101
-
1102
- this._triggerArray.push(elem);
1103
- }
1104
- }
1105
-
1106
- this._parent = this._config.parent ? this._getParent() : null;
1107
-
1108
- if (!this._config.parent) {
1109
- this._addAriaAndCollapsedClass(this._element, this._triggerArray);
1110
- }
1111
-
1112
- if (this._config.toggle) {
1113
- this.toggle();
1114
- }
1115
- } // Getters
1116
-
1117
-
1118
- var _proto = Collapse.prototype;
1119
-
1120
- // Public
1121
- _proto.toggle = function toggle() {
1122
- if ($$$1(this._element).hasClass(ClassName.SHOW)) {
1123
- this.hide();
1124
- } else {
1125
- this.show();
1126
- }
1127
- };
1128
-
1129
- _proto.show = function show() {
1130
- var _this = this;
1131
-
1132
- if (this._isTransitioning || $$$1(this._element).hasClass(ClassName.SHOW)) {
1133
- return;
1134
- }
1135
-
1136
- var actives;
1137
- var activesData;
1138
-
1139
- if (this._parent) {
1140
- actives = $$$1.makeArray($$$1(this._parent).find(Selector.ACTIVES).filter("[data-parent=\"" + this._config.parent + "\"]"));
1141
-
1142
- if (actives.length === 0) {
1143
- actives = null;
1144
- }
1145
- }
1146
-
1147
- if (actives) {
1148
- activesData = $$$1(actives).not(this._selector).data(DATA_KEY);
1149
-
1150
- if (activesData && activesData._isTransitioning) {
1151
- return;
1152
- }
1153
- }
1154
-
1155
- var startEvent = $$$1.Event(Event.SHOW);
1156
- $$$1(this._element).trigger(startEvent);
1157
-
1158
- if (startEvent.isDefaultPrevented()) {
1159
- return;
1160
- }
1161
-
1162
- if (actives) {
1163
- Collapse._jQueryInterface.call($$$1(actives).not(this._selector), 'hide');
1164
-
1165
- if (!activesData) {
1166
- $$$1(actives).data(DATA_KEY, null);
1167
- }
1168
- }
1169
-
1170
- var dimension = this._getDimension();
1171
-
1172
- $$$1(this._element).removeClass(ClassName.COLLAPSE).addClass(ClassName.COLLAPSING);
1173
- this._element.style[dimension] = 0;
1174
-
1175
- if (this._triggerArray.length > 0) {
1176
- $$$1(this._triggerArray).removeClass(ClassName.COLLAPSED).attr('aria-expanded', true);
1177
- }
1178
-
1179
- this.setTransitioning(true);
1180
-
1181
- var complete = function complete() {
1182
- $$$1(_this._element).removeClass(ClassName.COLLAPSING).addClass(ClassName.COLLAPSE).addClass(ClassName.SHOW);
1183
- _this._element.style[dimension] = '';
1184
-
1185
- _this.setTransitioning(false);
1186
-
1187
- $$$1(_this._element).trigger(Event.SHOWN);
1188
- };
1189
-
1190
- if (!Util.supportsTransitionEnd()) {
1191
- complete();
1192
- return;
1193
- }
1194
-
1195
- var capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1);
1196
- var scrollSize = "scroll" + capitalizedDimension;
1197
- $$$1(this._element).one(Util.TRANSITION_END, complete).emulateTransitionEnd(TRANSITION_DURATION);
1198
- this._element.style[dimension] = this._element[scrollSize] + "px";
1199
- };
1200
-
1201
- _proto.hide = function hide() {
1202
- var _this2 = this;
1203
-
1204
- if (this._isTransitioning || !$$$1(this._element).hasClass(ClassName.SHOW)) {
1205
- return;
1206
- }
1207
-
1208
- var startEvent = $$$1.Event(Event.HIDE);
1209
- $$$1(this._element).trigger(startEvent);
1210
-
1211
- if (startEvent.isDefaultPrevented()) {
1212
- return;
1213
- }
1214
-
1215
- var dimension = this._getDimension();
1216
-
1217
- this._element.style[dimension] = this._element.getBoundingClientRect()[dimension] + "px";
1218
- Util.reflow(this._element);
1219
- $$$1(this._element).addClass(ClassName.COLLAPSING).removeClass(ClassName.COLLAPSE).removeClass(ClassName.SHOW);
1220
-
1221
- if (this._triggerArray.length > 0) {
1222
- for (var i = 0; i < this._triggerArray.length; i++) {
1223
- var trigger = this._triggerArray[i];
1224
- var selector = Util.getSelectorFromElement(trigger);
1225
-
1226
- if (selector !== null) {
1227
- var $elem = $$$1(selector);
1228
-
1229
- if (!$elem.hasClass(ClassName.SHOW)) {
1230
- $$$1(trigger).addClass(ClassName.COLLAPSED).attr('aria-expanded', false);
1231
- }
1232
- }
1233
- }
1234
- }
1235
-
1236
- this.setTransitioning(true);
1237
-
1238
- var complete = function complete() {
1239
- _this2.setTransitioning(false);
1240
-
1241
- $$$1(_this2._element).removeClass(ClassName.COLLAPSING).addClass(ClassName.COLLAPSE).trigger(Event.HIDDEN);
1242
- };
1243
-
1244
- this._element.style[dimension] = '';
1245
-
1246
- if (!Util.supportsTransitionEnd()) {
1247
- complete();
1248
- return;
1249
- }
1250
-
1251
- $$$1(this._element).one(Util.TRANSITION_END, complete).emulateTransitionEnd(TRANSITION_DURATION);
1252
- };
1253
-
1254
- _proto.setTransitioning = function setTransitioning(isTransitioning) {
1255
- this._isTransitioning = isTransitioning;
1256
- };
1257
-
1258
- _proto.dispose = function dispose() {
1259
- $$$1.removeData(this._element, DATA_KEY);
1260
- this._config = null;
1261
- this._parent = null;
1262
- this._element = null;
1263
- this._triggerArray = null;
1264
- this._isTransitioning = null;
1265
- }; // Private
1266
-
1267
-
1268
- _proto._getConfig = function _getConfig(config) {
1269
- config = _extends({}, Default, config);
1270
- config.toggle = Boolean(config.toggle); // Coerce string values
1271
-
1272
- Util.typeCheckConfig(NAME, config, DefaultType);
1273
- return config;
1274
- };
1275
-
1276
- _proto._getDimension = function _getDimension() {
1277
- var hasWidth = $$$1(this._element).hasClass(Dimension.WIDTH);
1278
- return hasWidth ? Dimension.WIDTH : Dimension.HEIGHT;
1279
- };
1280
-
1281
- _proto._getParent = function _getParent() {
1282
- var _this3 = this;
1283
-
1284
- var parent = null;
1285
-
1286
- if (Util.isElement(this._config.parent)) {
1287
- parent = this._config.parent; // It's a jQuery object
1288
-
1289
- if (typeof this._config.parent.jquery !== 'undefined') {
1290
- parent = this._config.parent[0];
1291
- }
1292
- } else {
1293
- parent = $$$1(this._config.parent)[0];
1294
- }
1295
-
1296
- var selector = "[data-toggle=\"collapse\"][data-parent=\"" + this._config.parent + "\"]";
1297
- $$$1(parent).find(selector).each(function (i, element) {
1298
- _this3._addAriaAndCollapsedClass(Collapse._getTargetFromElement(element), [element]);
1299
- });
1300
- return parent;
1301
- };
1302
-
1303
- _proto._addAriaAndCollapsedClass = function _addAriaAndCollapsedClass(element, triggerArray) {
1304
- if (element) {
1305
- var isOpen = $$$1(element).hasClass(ClassName.SHOW);
1306
-
1307
- if (triggerArray.length > 0) {
1308
- $$$1(triggerArray).toggleClass(ClassName.COLLAPSED, !isOpen).attr('aria-expanded', isOpen);
1309
- }
1310
- }
1311
- }; // Static
1312
-
1313
-
1314
- Collapse._getTargetFromElement = function _getTargetFromElement(element) {
1315
- var selector = Util.getSelectorFromElement(element);
1316
- return selector ? $$$1(selector)[0] : null;
1317
- };
1318
-
1319
- Collapse._jQueryInterface = function _jQueryInterface(config) {
1320
- return this.each(function () {
1321
- var $this = $$$1(this);
1322
- var data = $this.data(DATA_KEY);
1323
-
1324
- var _config = _extends({}, Default, $this.data(), typeof config === 'object' && config);
1325
-
1326
- if (!data && _config.toggle && /show|hide/.test(config)) {
1327
- _config.toggle = false;
1328
- }
1329
-
1330
- if (!data) {
1331
- data = new Collapse(this, _config);
1332
- $this.data(DATA_KEY, data);
1333
- }
1334
-
1335
- if (typeof config === 'string') {
1336
- if (typeof data[config] === 'undefined') {
1337
- throw new TypeError("No method named \"" + config + "\"");
1338
- }
1339
-
1340
- data[config]();
1341
- }
1342
- });
1343
- };
1344
-
1345
- _createClass(Collapse, null, [{
1346
- key: "VERSION",
1347
- get: function get() {
1348
- return VERSION;
1349
- }
1350
- }, {
1351
- key: "Default",
1352
- get: function get() {
1353
- return Default;
1354
- }
1355
- }]);
1356
- return Collapse;
1357
- }();
1358
- /**
1359
- * ------------------------------------------------------------------------
1360
- * Data Api implementation
1361
- * ------------------------------------------------------------------------
1362
- */
1363
-
1364
-
1365
- $$$1(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {
1366
- // preventDefault only for <a> elements (which change the URL) not inside the collapsible element
1367
- if (event.currentTarget.tagName === 'A') {
1368
- event.preventDefault();
1369
- }
1370
-
1371
- var $trigger = $$$1(this);
1372
- var selector = Util.getSelectorFromElement(this);
1373
- $$$1(selector).each(function () {
1374
- var $target = $$$1(this);
1375
- var data = $target.data(DATA_KEY);
1376
- var config = data ? 'toggle' : $trigger.data();
1377
-
1378
- Collapse._jQueryInterface.call($target, config);
1379
- });
1380
- });
1381
- /**
1382
- * ------------------------------------------------------------------------
1383
- * jQuery
1384
- * ------------------------------------------------------------------------
1385
- */
1386
-
1387
- $$$1.fn[NAME] = Collapse._jQueryInterface;
1388
- $$$1.fn[NAME].Constructor = Collapse;
1389
-
1390
- $$$1.fn[NAME].noConflict = function () {
1391
- $$$1.fn[NAME] = JQUERY_NO_CONFLICT;
1392
- return Collapse._jQueryInterface;
1393
- };
1394
-
1395
- return Collapse;
1396
- }($);
1397
-
1398
- /**
1399
- * --------------------------------------------------------------------------
1400
- * Bootstrap (v4.0.0): dropdown.js
1401
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
1402
- * --------------------------------------------------------------------------
1403
- */
1404
-
1405
- var Dropdown = function ($$$1) {
1406
- /**
1407
- * ------------------------------------------------------------------------
1408
- * Constants
1409
- * ------------------------------------------------------------------------
1410
- */
1411
- var NAME = 'dropdown';
1412
- var VERSION = '4.0.0';
1413
- var DATA_KEY = 'bs.dropdown';
1414
- var EVENT_KEY = "." + DATA_KEY;
1415
- var DATA_API_KEY = '.data-api';
1416
- var JQUERY_NO_CONFLICT = $$$1.fn[NAME];
1417
- var ESCAPE_KEYCODE = 27; // KeyboardEvent.which value for Escape (Esc) key
1418
-
1419
- var SPACE_KEYCODE = 32; // KeyboardEvent.which value for space key
1420
-
1421
- var TAB_KEYCODE = 9; // KeyboardEvent.which value for tab key
1422
-
1423
- var ARROW_UP_KEYCODE = 38; // KeyboardEvent.which value for up arrow key
1424
-
1425
- var ARROW_DOWN_KEYCODE = 40; // KeyboardEvent.which value for down arrow key
1426
-
1427
- var RIGHT_MOUSE_BUTTON_WHICH = 3; // MouseEvent.which value for the right button (assuming a right-handed mouse)
1428
-
1429
- var REGEXP_KEYDOWN = new RegExp(ARROW_UP_KEYCODE + "|" + ARROW_DOWN_KEYCODE + "|" + ESCAPE_KEYCODE);
1430
- var Event = {
1431
- HIDE: "hide" + EVENT_KEY,
1432
- HIDDEN: "hidden" + EVENT_KEY,
1433
- SHOW: "show" + EVENT_KEY,
1434
- SHOWN: "shown" + EVENT_KEY,
1435
- CLICK: "click" + EVENT_KEY,
1436
- CLICK_DATA_API: "click" + EVENT_KEY + DATA_API_KEY,
1437
- KEYDOWN_DATA_API: "keydown" + EVENT_KEY + DATA_API_KEY,
1438
- KEYUP_DATA_API: "keyup" + EVENT_KEY + DATA_API_KEY
1439
- };
1440
- var ClassName = {
1441
- DISABLED: 'disabled',
1442
- SHOW: 'show',
1443
- DROPUP: 'dropup',
1444
- DROPRIGHT: 'dropright',
1445
- DROPLEFT: 'dropleft',
1446
- MENURIGHT: 'dropdown-menu-right',
1447
- MENULEFT: 'dropdown-menu-left',
1448
- POSITION_STATIC: 'position-static'
1449
- };
1450
- var Selector = {
1451
- DATA_TOGGLE: '[data-toggle="dropdown"]',
1452
- FORM_CHILD: '.dropdown form',
1453
- MENU: '.dropdown-menu',
1454
- NAVBAR_NAV: '.navbar-nav',
1455
- VISIBLE_ITEMS: '.dropdown-menu .dropdown-item:not(.disabled)'
1456
- };
1457
- var AttachmentMap = {
1458
- TOP: 'top-start',
1459
- TOPEND: 'top-end',
1460
- BOTTOM: 'bottom-start',
1461
- BOTTOMEND: 'bottom-end',
1462
- RIGHT: 'right-start',
1463
- RIGHTEND: 'right-end',
1464
- LEFT: 'left-start',
1465
- LEFTEND: 'left-end'
1466
- };
1467
- var Default = {
1468
- offset: 0,
1469
- flip: true,
1470
- boundary: 'scrollParent'
1471
- };
1472
- var DefaultType = {
1473
- offset: '(number|string|function)',
1474
- flip: 'boolean',
1475
- boundary: '(string|element)'
1476
- /**
1477
- * ------------------------------------------------------------------------
1478
- * Class Definition
1479
- * ------------------------------------------------------------------------
1480
- */
1481
-
1482
- };
1483
-
1484
- var Dropdown =
1485
- /*#__PURE__*/
1486
- function () {
1487
- function Dropdown(element, config) {
1488
- this._element = element;
1489
- this._popper = null;
1490
- this._config = this._getConfig(config);
1491
- this._menu = this._getMenuElement();
1492
- this._inNavbar = this._detectNavbar();
1493
-
1494
- this._addEventListeners();
1495
- } // Getters
1496
-
1497
-
1498
- var _proto = Dropdown.prototype;
1499
-
1500
- // Public
1501
- _proto.toggle = function toggle() {
1502
- if (this._element.disabled || $$$1(this._element).hasClass(ClassName.DISABLED)) {
1503
- return;
1504
- }
1505
-
1506
- var parent = Dropdown._getParentFromElement(this._element);
1507
-
1508
- var isActive = $$$1(this._menu).hasClass(ClassName.SHOW);
1509
-
1510
- Dropdown._clearMenus();
1511
-
1512
- if (isActive) {
1513
- return;
1514
- }
1515
-
1516
- var relatedTarget = {
1517
- relatedTarget: this._element
1518
- };
1519
- var showEvent = $$$1.Event(Event.SHOW, relatedTarget);
1520
- $$$1(parent).trigger(showEvent);
1521
-
1522
- if (showEvent.isDefaultPrevented()) {
1523
- return;
1524
- } // Disable totally Popper.js for Dropdown in Navbar
1525
-
1526
-
1527
- if (!this._inNavbar) {
1528
- /**
1529
- * Check for Popper dependency
1530
- * Popper - https://popper.js.org
1531
- */
1532
- if (typeof Popper === 'undefined') {
1533
- throw new TypeError('Bootstrap dropdown require Popper.js (https://popper.js.org)');
1534
- }
1535
-
1536
- var element = this._element; // For dropup with alignment we use the parent as popper container
1537
-
1538
- if ($$$1(parent).hasClass(ClassName.DROPUP)) {
1539
- if ($$$1(this._menu).hasClass(ClassName.MENULEFT) || $$$1(this._menu).hasClass(ClassName.MENURIGHT)) {
1540
- element = parent;
1541
- }
1542
- } // If boundary is not `scrollParent`, then set position to `static`
1543
- // to allow the menu to "escape" the scroll parent's boundaries
1544
- // https://github.com/twbs/bootstrap/issues/24251
1545
-
1546
-
1547
- if (this._config.boundary !== 'scrollParent') {
1548
- $$$1(parent).addClass(ClassName.POSITION_STATIC);
1549
- }
1550
-
1551
- this._popper = new Popper(element, this._menu, this._getPopperConfig());
1552
- } // If this is a touch-enabled device we add extra
1553
- // empty mouseover listeners to the body's immediate children;
1554
- // only needed because of broken event delegation on iOS
1555
- // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html
1556
-
1557
-
1558
- if ('ontouchstart' in document.documentElement && $$$1(parent).closest(Selector.NAVBAR_NAV).length === 0) {
1559
- $$$1('body').children().on('mouseover', null, $$$1.noop);
1560
- }
1561
-
1562
- this._element.focus();
1563
-
1564
- this._element.setAttribute('aria-expanded', true);
1565
-
1566
- $$$1(this._menu).toggleClass(ClassName.SHOW);
1567
- $$$1(parent).toggleClass(ClassName.SHOW).trigger($$$1.Event(Event.SHOWN, relatedTarget));
1568
- };
1569
-
1570
- _proto.dispose = function dispose() {
1571
- $$$1.removeData(this._element, DATA_KEY);
1572
- $$$1(this._element).off(EVENT_KEY);
1573
- this._element = null;
1574
- this._menu = null;
1575
-
1576
- if (this._popper !== null) {
1577
- this._popper.destroy();
1578
-
1579
- this._popper = null;
1580
- }
1581
- };
1582
-
1583
- _proto.update = function update() {
1584
- this._inNavbar = this._detectNavbar();
1585
-
1586
- if (this._popper !== null) {
1587
- this._popper.scheduleUpdate();
1588
- }
1589
- }; // Private
1590
-
1591
-
1592
- _proto._addEventListeners = function _addEventListeners() {
1593
- var _this = this;
1594
-
1595
- $$$1(this._element).on(Event.CLICK, function (event) {
1596
- event.preventDefault();
1597
- event.stopPropagation();
1598
-
1599
- _this.toggle();
1600
- });
1601
- };
1602
-
1603
- _proto._getConfig = function _getConfig(config) {
1604
- config = _extends({}, this.constructor.Default, $$$1(this._element).data(), config);
1605
- Util.typeCheckConfig(NAME, config, this.constructor.DefaultType);
1606
- return config;
1607
- };
1608
-
1609
- _proto._getMenuElement = function _getMenuElement() {
1610
- if (!this._menu) {
1611
- var parent = Dropdown._getParentFromElement(this._element);
1612
-
1613
- this._menu = $$$1(parent).find(Selector.MENU)[0];
1614
- }
1615
-
1616
- return this._menu;
1617
- };
1618
-
1619
- _proto._getPlacement = function _getPlacement() {
1620
- var $parentDropdown = $$$1(this._element).parent();
1621
- var placement = AttachmentMap.BOTTOM; // Handle dropup
1622
-
1623
- if ($parentDropdown.hasClass(ClassName.DROPUP)) {
1624
- placement = AttachmentMap.TOP;
1625
-
1626
- if ($$$1(this._menu).hasClass(ClassName.MENURIGHT)) {
1627
- placement = AttachmentMap.TOPEND;
1628
- }
1629
- } else if ($parentDropdown.hasClass(ClassName.DROPRIGHT)) {
1630
- placement = AttachmentMap.RIGHT;
1631
- } else if ($parentDropdown.hasClass(ClassName.DROPLEFT)) {
1632
- placement = AttachmentMap.LEFT;
1633
- } else if ($$$1(this._menu).hasClass(ClassName.MENURIGHT)) {
1634
- placement = AttachmentMap.BOTTOMEND;
1635
- }
1636
-
1637
- return placement;
1638
- };
1639
-
1640
- _proto._detectNavbar = function _detectNavbar() {
1641
- return $$$1(this._element).closest('.navbar').length > 0;
1642
- };
1643
-
1644
- _proto._getPopperConfig = function _getPopperConfig() {
1645
- var _this2 = this;
1646
-
1647
- var offsetConf = {};
1648
-
1649
- if (typeof this._config.offset === 'function') {
1650
- offsetConf.fn = function (data) {
1651
- data.offsets = _extends({}, data.offsets, _this2._config.offset(data.offsets) || {});
1652
- return data;
1653
- };
1654
- } else {
1655
- offsetConf.offset = this._config.offset;
1656
- }
1657
-
1658
- var popperConfig = {
1659
- placement: this._getPlacement(),
1660
- modifiers: {
1661
- offset: offsetConf,
1662
- flip: {
1663
- enabled: this._config.flip
1664
- },
1665
- preventOverflow: {
1666
- boundariesElement: this._config.boundary
1667
- }
1668
- }
1669
- };
1670
- return popperConfig;
1671
- }; // Static
1672
-
1673
-
1674
- Dropdown._jQueryInterface = function _jQueryInterface(config) {
1675
- return this.each(function () {
1676
- var data = $$$1(this).data(DATA_KEY);
1677
-
1678
- var _config = typeof config === 'object' ? config : null;
1679
-
1680
- if (!data) {
1681
- data = new Dropdown(this, _config);
1682
- $$$1(this).data(DATA_KEY, data);
1683
- }
1684
-
1685
- if (typeof config === 'string') {
1686
- if (typeof data[config] === 'undefined') {
1687
- throw new TypeError("No method named \"" + config + "\"");
1688
- }
1689
-
1690
- data[config]();
1691
- }
1692
- });
1693
- };
1694
-
1695
- Dropdown._clearMenus = function _clearMenus(event) {
1696
- if (event && (event.which === RIGHT_MOUSE_BUTTON_WHICH || event.type === 'keyup' && event.which !== TAB_KEYCODE)) {
1697
- return;
1698
- }
1699
-
1700
- var toggles = $$$1.makeArray($$$1(Selector.DATA_TOGGLE));
1701
-
1702
- for (var i = 0; i < toggles.length; i++) {
1703
- var parent = Dropdown._getParentFromElement(toggles[i]);
1704
-
1705
- var context = $$$1(toggles[i]).data(DATA_KEY);
1706
- var relatedTarget = {
1707
- relatedTarget: toggles[i]
1708
- };
1709
-
1710
- if (!context) {
1711
- continue;
1712
- }
1713
-
1714
- var dropdownMenu = context._menu;
1715
-
1716
- if (!$$$1(parent).hasClass(ClassName.SHOW)) {
1717
- continue;
1718
- }
1719
-
1720
- if (event && (event.type === 'click' && /input|textarea/i.test(event.target.tagName) || event.type === 'keyup' && event.which === TAB_KEYCODE) && $$$1.contains(parent, event.target)) {
1721
- continue;
1722
- }
1723
-
1724
- var hideEvent = $$$1.Event(Event.HIDE, relatedTarget);
1725
- $$$1(parent).trigger(hideEvent);
1726
-
1727
- if (hideEvent.isDefaultPrevented()) {
1728
- continue;
1729
- } // If this is a touch-enabled device we remove the extra
1730
- // empty mouseover listeners we added for iOS support
1731
-
1732
-
1733
- if ('ontouchstart' in document.documentElement) {
1734
- $$$1('body').children().off('mouseover', null, $$$1.noop);
1735
- }
1736
-
1737
- toggles[i].setAttribute('aria-expanded', 'false');
1738
- $$$1(dropdownMenu).removeClass(ClassName.SHOW);
1739
- $$$1(parent).removeClass(ClassName.SHOW).trigger($$$1.Event(Event.HIDDEN, relatedTarget));
1740
- }
1741
- };
1742
-
1743
- Dropdown._getParentFromElement = function _getParentFromElement(element) {
1744
- var parent;
1745
- var selector = Util.getSelectorFromElement(element);
1746
-
1747
- if (selector) {
1748
- parent = $$$1(selector)[0];
1749
- }
1750
-
1751
- return parent || element.parentNode;
1752
- }; // eslint-disable-next-line complexity
1753
-
1754
-
1755
- Dropdown._dataApiKeydownHandler = function _dataApiKeydownHandler(event) {
1756
- // If not input/textarea:
1757
- // - And not a key in REGEXP_KEYDOWN => not a dropdown command
1758
- // If input/textarea:
1759
- // - If space key => not a dropdown command
1760
- // - If key is other than escape
1761
- // - If key is not up or down => not a dropdown command
1762
- // - If trigger inside the menu => not a dropdown command
1763
- if (/input|textarea/i.test(event.target.tagName) ? event.which === SPACE_KEYCODE || event.which !== ESCAPE_KEYCODE && (event.which !== ARROW_DOWN_KEYCODE && event.which !== ARROW_UP_KEYCODE || $$$1(event.target).closest(Selector.MENU).length) : !REGEXP_KEYDOWN.test(event.which)) {
1764
- return;
1765
- }
1766
-
1767
- event.preventDefault();
1768
- event.stopPropagation();
1769
-
1770
- if (this.disabled || $$$1(this).hasClass(ClassName.DISABLED)) {
1771
- return;
1772
- }
1773
-
1774
- var parent = Dropdown._getParentFromElement(this);
1775
-
1776
- var isActive = $$$1(parent).hasClass(ClassName.SHOW);
1777
-
1778
- if (!isActive && (event.which !== ESCAPE_KEYCODE || event.which !== SPACE_KEYCODE) || isActive && (event.which === ESCAPE_KEYCODE || event.which === SPACE_KEYCODE)) {
1779
- if (event.which === ESCAPE_KEYCODE) {
1780
- var toggle = $$$1(parent).find(Selector.DATA_TOGGLE)[0];
1781
- $$$1(toggle).trigger('focus');
1782
- }
1783
-
1784
- $$$1(this).trigger('click');
1785
- return;
1786
- }
1787
-
1788
- var items = $$$1(parent).find(Selector.VISIBLE_ITEMS).get();
1789
-
1790
- if (items.length === 0) {
1791
- return;
1792
- }
1793
-
1794
- var index = items.indexOf(event.target);
1795
-
1796
- if (event.which === ARROW_UP_KEYCODE && index > 0) {
1797
- // Up
1798
- index--;
1799
- }
1800
-
1801
- if (event.which === ARROW_DOWN_KEYCODE && index < items.length - 1) {
1802
- // Down
1803
- index++;
1804
- }
1805
-
1806
- if (index < 0) {
1807
- index = 0;
1808
- }
1809
-
1810
- items[index].focus();
1811
- };
1812
-
1813
- _createClass(Dropdown, null, [{
1814
- key: "VERSION",
1815
- get: function get() {
1816
- return VERSION;
1817
- }
1818
- }, {
1819
- key: "Default",
1820
- get: function get() {
1821
- return Default;
1822
- }
1823
- }, {
1824
- key: "DefaultType",
1825
- get: function get() {
1826
- return DefaultType;
1827
- }
1828
- }]);
1829
- return Dropdown;
1830
- }();
1831
- /**
1832
- * ------------------------------------------------------------------------
1833
- * Data Api implementation
1834
- * ------------------------------------------------------------------------
1835
- */
1836
-
1837
-
1838
- $$$1(document).on(Event.KEYDOWN_DATA_API, Selector.DATA_TOGGLE, Dropdown._dataApiKeydownHandler).on(Event.KEYDOWN_DATA_API, Selector.MENU, Dropdown._dataApiKeydownHandler).on(Event.CLICK_DATA_API + " " + Event.KEYUP_DATA_API, Dropdown._clearMenus).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {
1839
- event.preventDefault();
1840
- event.stopPropagation();
1841
-
1842
- Dropdown._jQueryInterface.call($$$1(this), 'toggle');
1843
- }).on(Event.CLICK_DATA_API, Selector.FORM_CHILD, function (e) {
1844
- e.stopPropagation();
1845
- });
1846
- /**
1847
- * ------------------------------------------------------------------------
1848
- * jQuery
1849
- * ------------------------------------------------------------------------
1850
- */
1851
-
1852
- $$$1.fn[NAME] = Dropdown._jQueryInterface;
1853
- $$$1.fn[NAME].Constructor = Dropdown;
1854
-
1855
- $$$1.fn[NAME].noConflict = function () {
1856
- $$$1.fn[NAME] = JQUERY_NO_CONFLICT;
1857
- return Dropdown._jQueryInterface;
1858
- };
1859
-
1860
- return Dropdown;
1861
- }($, Popper);
1862
-
1863
- /**
1864
- * --------------------------------------------------------------------------
1865
- * Bootstrap (v4.0.0): modal.js
1866
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
1867
- * --------------------------------------------------------------------------
1868
- */
1869
-
1870
- var Modal = function ($$$1) {
1871
- /**
1872
- * ------------------------------------------------------------------------
1873
- * Constants
1874
- * ------------------------------------------------------------------------
1875
- */
1876
- var NAME = 'modal';
1877
- var VERSION = '4.0.0';
1878
- var DATA_KEY = 'bs.modal';
1879
- var EVENT_KEY = "." + DATA_KEY;
1880
- var DATA_API_KEY = '.data-api';
1881
- var JQUERY_NO_CONFLICT = $$$1.fn[NAME];
1882
- var TRANSITION_DURATION = 300;
1883
- var BACKDROP_TRANSITION_DURATION = 150;
1884
- var ESCAPE_KEYCODE = 27; // KeyboardEvent.which value for Escape (Esc) key
1885
-
1886
- var Default = {
1887
- backdrop: true,
1888
- keyboard: true,
1889
- focus: true,
1890
- show: true
1891
- };
1892
- var DefaultType = {
1893
- backdrop: '(boolean|string)',
1894
- keyboard: 'boolean',
1895
- focus: 'boolean',
1896
- show: 'boolean'
1897
- };
1898
- var Event = {
1899
- HIDE: "hide" + EVENT_KEY,
1900
- HIDDEN: "hidden" + EVENT_KEY,
1901
- SHOW: "show" + EVENT_KEY,
1902
- SHOWN: "shown" + EVENT_KEY,
1903
- FOCUSIN: "focusin" + EVENT_KEY,
1904
- RESIZE: "resize" + EVENT_KEY,
1905
- CLICK_DISMISS: "click.dismiss" + EVENT_KEY,
1906
- KEYDOWN_DISMISS: "keydown.dismiss" + EVENT_KEY,
1907
- MOUSEUP_DISMISS: "mouseup.dismiss" + EVENT_KEY,
1908
- MOUSEDOWN_DISMISS: "mousedown.dismiss" + EVENT_KEY,
1909
- CLICK_DATA_API: "click" + EVENT_KEY + DATA_API_KEY
1910
- };
1911
- var ClassName = {
1912
- SCROLLBAR_MEASURER: 'modal-scrollbar-measure',
1913
- BACKDROP: 'modal-backdrop',
1914
- OPEN: 'modal-open',
1915
- FADE: 'fade',
1916
- SHOW: 'show'
1917
- };
1918
- var Selector = {
1919
- DIALOG: '.modal-dialog',
1920
- DATA_TOGGLE: '[data-toggle="modal"]',
1921
- DATA_DISMISS: '[data-dismiss="modal"]',
1922
- FIXED_CONTENT: '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top',
1923
- STICKY_CONTENT: '.sticky-top',
1924
- NAVBAR_TOGGLER: '.navbar-toggler'
1925
- /**
1926
- * ------------------------------------------------------------------------
1927
- * Class Definition
1928
- * ------------------------------------------------------------------------
1929
- */
1930
-
1931
- };
1932
-
1933
- var Modal =
1934
- /*#__PURE__*/
1935
- function () {
1936
- function Modal(element, config) {
1937
- this._config = this._getConfig(config);
1938
- this._element = element;
1939
- this._dialog = $$$1(element).find(Selector.DIALOG)[0];
1940
- this._backdrop = null;
1941
- this._isShown = false;
1942
- this._isBodyOverflowing = false;
1943
- this._ignoreBackdropClick = false;
1944
- this._originalBodyPadding = 0;
1945
- this._scrollbarWidth = 0;
1946
- } // Getters
1947
-
1948
-
1949
- var _proto = Modal.prototype;
1950
-
1951
- // Public
1952
- _proto.toggle = function toggle(relatedTarget) {
1953
- return this._isShown ? this.hide() : this.show(relatedTarget);
1954
- };
1955
-
1956
- _proto.show = function show(relatedTarget) {
1957
- var _this = this;
1958
-
1959
- if (this._isTransitioning || this._isShown) {
1960
- return;
1961
- }
1962
-
1963
- if (Util.supportsTransitionEnd() && $$$1(this._element).hasClass(ClassName.FADE)) {
1964
- this._isTransitioning = true;
1965
- }
1966
-
1967
- var showEvent = $$$1.Event(Event.SHOW, {
1968
- relatedTarget: relatedTarget
1969
- });
1970
- $$$1(this._element).trigger(showEvent);
1971
-
1972
- if (this._isShown || showEvent.isDefaultPrevented()) {
1973
- return;
1974
- }
1975
-
1976
- this._isShown = true;
1977
-
1978
- this._checkScrollbar();
1979
-
1980
- this._setScrollbar();
1981
-
1982
- this._adjustDialog();
1983
-
1984
- $$$1(document.body).addClass(ClassName.OPEN);
1985
-
1986
- this._setEscapeEvent();
1987
-
1988
- this._setResizeEvent();
1989
-
1990
- $$$1(this._element).on(Event.CLICK_DISMISS, Selector.DATA_DISMISS, function (event) {
1991
- return _this.hide(event);
1992
- });
1993
- $$$1(this._dialog).on(Event.MOUSEDOWN_DISMISS, function () {
1994
- $$$1(_this._element).one(Event.MOUSEUP_DISMISS, function (event) {
1995
- if ($$$1(event.target).is(_this._element)) {
1996
- _this._ignoreBackdropClick = true;
1997
- }
1998
- });
1999
- });
2000
-
2001
- this._showBackdrop(function () {
2002
- return _this._showElement(relatedTarget);
2003
- });
2004
- };
2005
-
2006
- _proto.hide = function hide(event) {
2007
- var _this2 = this;
2008
-
2009
- if (event) {
2010
- event.preventDefault();
2011
- }
2012
-
2013
- if (this._isTransitioning || !this._isShown) {
2014
- return;
2015
- }
2016
-
2017
- var hideEvent = $$$1.Event(Event.HIDE);
2018
- $$$1(this._element).trigger(hideEvent);
2019
-
2020
- if (!this._isShown || hideEvent.isDefaultPrevented()) {
2021
- return;
2022
- }
2023
-
2024
- this._isShown = false;
2025
- var transition = Util.supportsTransitionEnd() && $$$1(this._element).hasClass(ClassName.FADE);
2026
-
2027
- if (transition) {
2028
- this._isTransitioning = true;
2029
- }
2030
-
2031
- this._setEscapeEvent();
2032
-
2033
- this._setResizeEvent();
2034
-
2035
- $$$1(document).off(Event.FOCUSIN);
2036
- $$$1(this._element).removeClass(ClassName.SHOW);
2037
- $$$1(this._element).off(Event.CLICK_DISMISS);
2038
- $$$1(this._dialog).off(Event.MOUSEDOWN_DISMISS);
2039
-
2040
- if (transition) {
2041
- $$$1(this._element).one(Util.TRANSITION_END, function (event) {
2042
- return _this2._hideModal(event);
2043
- }).emulateTransitionEnd(TRANSITION_DURATION);
2044
- } else {
2045
- this._hideModal();
2046
- }
2047
- };
2048
-
2049
- _proto.dispose = function dispose() {
2050
- $$$1.removeData(this._element, DATA_KEY);
2051
- $$$1(window, document, this._element, this._backdrop).off(EVENT_KEY);
2052
- this._config = null;
2053
- this._element = null;
2054
- this._dialog = null;
2055
- this._backdrop = null;
2056
- this._isShown = null;
2057
- this._isBodyOverflowing = null;
2058
- this._ignoreBackdropClick = null;
2059
- this._scrollbarWidth = null;
2060
- };
2061
-
2062
- _proto.handleUpdate = function handleUpdate() {
2063
- this._adjustDialog();
2064
- }; // Private
2065
-
2066
-
2067
- _proto._getConfig = function _getConfig(config) {
2068
- config = _extends({}, Default, config);
2069
- Util.typeCheckConfig(NAME, config, DefaultType);
2070
- return config;
2071
- };
2072
-
2073
- _proto._showElement = function _showElement(relatedTarget) {
2074
- var _this3 = this;
2075
-
2076
- var transition = Util.supportsTransitionEnd() && $$$1(this._element).hasClass(ClassName.FADE);
2077
-
2078
- if (!this._element.parentNode || this._element.parentNode.nodeType !== Node.ELEMENT_NODE) {
2079
- // Don't move modal's DOM position
2080
- document.body.appendChild(this._element);
2081
- }
2082
-
2083
- this._element.style.display = 'block';
2084
-
2085
- this._element.removeAttribute('aria-hidden');
2086
-
2087
- this._element.scrollTop = 0;
2088
-
2089
- if (transition) {
2090
- Util.reflow(this._element);
2091
- }
2092
-
2093
- $$$1(this._element).addClass(ClassName.SHOW);
2094
-
2095
- if (this._config.focus) {
2096
- this._enforceFocus();
2097
- }
2098
-
2099
- var shownEvent = $$$1.Event(Event.SHOWN, {
2100
- relatedTarget: relatedTarget
2101
- });
2102
-
2103
- var transitionComplete = function transitionComplete() {
2104
- if (_this3._config.focus) {
2105
- _this3._element.focus();
2106
- }
2107
-
2108
- _this3._isTransitioning = false;
2109
- $$$1(_this3._element).trigger(shownEvent);
2110
- };
2111
-
2112
- if (transition) {
2113
- $$$1(this._dialog).one(Util.TRANSITION_END, transitionComplete).emulateTransitionEnd(TRANSITION_DURATION);
2114
- } else {
2115
- transitionComplete();
2116
- }
2117
- };
2118
-
2119
- _proto._enforceFocus = function _enforceFocus() {
2120
- var _this4 = this;
2121
-
2122
- $$$1(document).off(Event.FOCUSIN) // Guard against infinite focus loop
2123
- .on(Event.FOCUSIN, function (event) {
2124
- if (document !== event.target && _this4._element !== event.target && $$$1(_this4._element).has(event.target).length === 0) {
2125
- _this4._element.focus();
2126
- }
2127
- });
2128
- };
2129
-
2130
- _proto._setEscapeEvent = function _setEscapeEvent() {
2131
- var _this5 = this;
2132
-
2133
- if (this._isShown && this._config.keyboard) {
2134
- $$$1(this._element).on(Event.KEYDOWN_DISMISS, function (event) {
2135
- if (event.which === ESCAPE_KEYCODE) {
2136
- event.preventDefault();
2137
-
2138
- _this5.hide();
2139
- }
2140
- });
2141
- } else if (!this._isShown) {
2142
- $$$1(this._element).off(Event.KEYDOWN_DISMISS);
2143
- }
2144
- };
2145
-
2146
- _proto._setResizeEvent = function _setResizeEvent() {
2147
- var _this6 = this;
2148
-
2149
- if (this._isShown) {
2150
- $$$1(window).on(Event.RESIZE, function (event) {
2151
- return _this6.handleUpdate(event);
2152
- });
2153
- } else {
2154
- $$$1(window).off(Event.RESIZE);
2155
- }
2156
- };
2157
-
2158
- _proto._hideModal = function _hideModal() {
2159
- var _this7 = this;
2160
-
2161
- this._element.style.display = 'none';
2162
-
2163
- this._element.setAttribute('aria-hidden', true);
2164
-
2165
- this._isTransitioning = false;
2166
-
2167
- this._showBackdrop(function () {
2168
- $$$1(document.body).removeClass(ClassName.OPEN);
2169
-
2170
- _this7._resetAdjustments();
2171
-
2172
- _this7._resetScrollbar();
2173
-
2174
- $$$1(_this7._element).trigger(Event.HIDDEN);
2175
- });
2176
- };
2177
-
2178
- _proto._removeBackdrop = function _removeBackdrop() {
2179
- if (this._backdrop) {
2180
- $$$1(this._backdrop).remove();
2181
- this._backdrop = null;
2182
- }
2183
- };
2184
-
2185
- _proto._showBackdrop = function _showBackdrop(callback) {
2186
- var _this8 = this;
2187
-
2188
- var animate = $$$1(this._element).hasClass(ClassName.FADE) ? ClassName.FADE : '';
2189
-
2190
- if (this._isShown && this._config.backdrop) {
2191
- var doAnimate = Util.supportsTransitionEnd() && animate;
2192
- this._backdrop = document.createElement('div');
2193
- this._backdrop.className = ClassName.BACKDROP;
2194
-
2195
- if (animate) {
2196
- $$$1(this._backdrop).addClass(animate);
2197
- }
2198
-
2199
- $$$1(this._backdrop).appendTo(document.body);
2200
- $$$1(this._element).on(Event.CLICK_DISMISS, function (event) {
2201
- if (_this8._ignoreBackdropClick) {
2202
- _this8._ignoreBackdropClick = false;
2203
- return;
2204
- }
2205
-
2206
- if (event.target !== event.currentTarget) {
2207
- return;
2208
- }
2209
-
2210
- if (_this8._config.backdrop === 'static') {
2211
- _this8._element.focus();
2212
- } else {
2213
- _this8.hide();
2214
- }
2215
- });
2216
-
2217
- if (doAnimate) {
2218
- Util.reflow(this._backdrop);
2219
- }
2220
-
2221
- $$$1(this._backdrop).addClass(ClassName.SHOW);
2222
-
2223
- if (!callback) {
2224
- return;
2225
- }
2226
-
2227
- if (!doAnimate) {
2228
- callback();
2229
- return;
2230
- }
2231
-
2232
- $$$1(this._backdrop).one(Util.TRANSITION_END, callback).emulateTransitionEnd(BACKDROP_TRANSITION_DURATION);
2233
- } else if (!this._isShown && this._backdrop) {
2234
- $$$1(this._backdrop).removeClass(ClassName.SHOW);
2235
-
2236
- var callbackRemove = function callbackRemove() {
2237
- _this8._removeBackdrop();
2238
-
2239
- if (callback) {
2240
- callback();
2241
- }
2242
- };
2243
-
2244
- if (Util.supportsTransitionEnd() && $$$1(this._element).hasClass(ClassName.FADE)) {
2245
- $$$1(this._backdrop).one(Util.TRANSITION_END, callbackRemove).emulateTransitionEnd(BACKDROP_TRANSITION_DURATION);
2246
- } else {
2247
- callbackRemove();
2248
- }
2249
- } else if (callback) {
2250
- callback();
2251
- }
2252
- }; // ----------------------------------------------------------------------
2253
- // the following methods are used to handle overflowing modals
2254
- // todo (fat): these should probably be refactored out of modal.js
2255
- // ----------------------------------------------------------------------
2256
-
2257
-
2258
- _proto._adjustDialog = function _adjustDialog() {
2259
- var isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight;
2260
-
2261
- if (!this._isBodyOverflowing && isModalOverflowing) {
2262
- this._element.style.paddingLeft = this._scrollbarWidth + "px";
2263
- }
2264
-
2265
- if (this._isBodyOverflowing && !isModalOverflowing) {
2266
- this._element.style.paddingRight = this._scrollbarWidth + "px";
2267
- }
2268
- };
2269
-
2270
- _proto._resetAdjustments = function _resetAdjustments() {
2271
- this._element.style.paddingLeft = '';
2272
- this._element.style.paddingRight = '';
2273
- };
2274
-
2275
- _proto._checkScrollbar = function _checkScrollbar() {
2276
- var rect = document.body.getBoundingClientRect();
2277
- this._isBodyOverflowing = rect.left + rect.right < window.innerWidth;
2278
- this._scrollbarWidth = this._getScrollbarWidth();
2279
- };
2280
-
2281
- _proto._setScrollbar = function _setScrollbar() {
2282
- var _this9 = this;
2283
-
2284
- if (this._isBodyOverflowing) {
2285
- // Note: DOMNode.style.paddingRight returns the actual value or '' if not set
2286
- // while $(DOMNode).css('padding-right') returns the calculated value or 0 if not set
2287
- // Adjust fixed content padding
2288
- $$$1(Selector.FIXED_CONTENT).each(function (index, element) {
2289
- var actualPadding = $$$1(element)[0].style.paddingRight;
2290
- var calculatedPadding = $$$1(element).css('padding-right');
2291
- $$$1(element).data('padding-right', actualPadding).css('padding-right', parseFloat(calculatedPadding) + _this9._scrollbarWidth + "px");
2292
- }); // Adjust sticky content margin
2293
-
2294
- $$$1(Selector.STICKY_CONTENT).each(function (index, element) {
2295
- var actualMargin = $$$1(element)[0].style.marginRight;
2296
- var calculatedMargin = $$$1(element).css('margin-right');
2297
- $$$1(element).data('margin-right', actualMargin).css('margin-right', parseFloat(calculatedMargin) - _this9._scrollbarWidth + "px");
2298
- }); // Adjust navbar-toggler margin
2299
-
2300
- $$$1(Selector.NAVBAR_TOGGLER).each(function (index, element) {
2301
- var actualMargin = $$$1(element)[0].style.marginRight;
2302
- var calculatedMargin = $$$1(element).css('margin-right');
2303
- $$$1(element).data('margin-right', actualMargin).css('margin-right', parseFloat(calculatedMargin) + _this9._scrollbarWidth + "px");
2304
- }); // Adjust body padding
2305
-
2306
- var actualPadding = document.body.style.paddingRight;
2307
- var calculatedPadding = $$$1('body').css('padding-right');
2308
- $$$1('body').data('padding-right', actualPadding).css('padding-right', parseFloat(calculatedPadding) + this._scrollbarWidth + "px");
2309
- }
2310
- };
2311
-
2312
- _proto._resetScrollbar = function _resetScrollbar() {
2313
- // Restore fixed content padding
2314
- $$$1(Selector.FIXED_CONTENT).each(function (index, element) {
2315
- var padding = $$$1(element).data('padding-right');
2316
-
2317
- if (typeof padding !== 'undefined') {
2318
- $$$1(element).css('padding-right', padding).removeData('padding-right');
2319
- }
2320
- }); // Restore sticky content and navbar-toggler margin
2321
-
2322
- $$$1(Selector.STICKY_CONTENT + ", " + Selector.NAVBAR_TOGGLER).each(function (index, element) {
2323
- var margin = $$$1(element).data('margin-right');
2324
-
2325
- if (typeof margin !== 'undefined') {
2326
- $$$1(element).css('margin-right', margin).removeData('margin-right');
2327
- }
2328
- }); // Restore body padding
2329
-
2330
- var padding = $$$1('body').data('padding-right');
2331
-
2332
- if (typeof padding !== 'undefined') {
2333
- $$$1('body').css('padding-right', padding).removeData('padding-right');
2334
- }
2335
- };
2336
-
2337
- _proto._getScrollbarWidth = function _getScrollbarWidth() {
2338
- // thx d.walsh
2339
- var scrollDiv = document.createElement('div');
2340
- scrollDiv.className = ClassName.SCROLLBAR_MEASURER;
2341
- document.body.appendChild(scrollDiv);
2342
- var scrollbarWidth = scrollDiv.getBoundingClientRect().width - scrollDiv.clientWidth;
2343
- document.body.removeChild(scrollDiv);
2344
- return scrollbarWidth;
2345
- }; // Static
2346
-
2347
-
2348
- Modal._jQueryInterface = function _jQueryInterface(config, relatedTarget) {
2349
- return this.each(function () {
2350
- var data = $$$1(this).data(DATA_KEY);
2351
-
2352
- var _config = _extends({}, Modal.Default, $$$1(this).data(), typeof config === 'object' && config);
2353
-
2354
- if (!data) {
2355
- data = new Modal(this, _config);
2356
- $$$1(this).data(DATA_KEY, data);
2357
- }
2358
-
2359
- if (typeof config === 'string') {
2360
- if (typeof data[config] === 'undefined') {
2361
- throw new TypeError("No method named \"" + config + "\"");
2362
- }
2363
-
2364
- data[config](relatedTarget);
2365
- } else if (_config.show) {
2366
- data.show(relatedTarget);
2367
- }
2368
- });
2369
- };
2370
-
2371
- _createClass(Modal, null, [{
2372
- key: "VERSION",
2373
- get: function get() {
2374
- return VERSION;
2375
- }
2376
- }, {
2377
- key: "Default",
2378
- get: function get() {
2379
- return Default;
2380
- }
2381
- }]);
2382
- return Modal;
2383
- }();
2384
- /**
2385
- * ------------------------------------------------------------------------
2386
- * Data Api implementation
2387
- * ------------------------------------------------------------------------
2388
- */
2389
-
2390
-
2391
- $$$1(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {
2392
- var _this10 = this;
2393
-
2394
- var target;
2395
- var selector = Util.getSelectorFromElement(this);
2396
-
2397
- if (selector) {
2398
- target = $$$1(selector)[0];
2399
- }
2400
-
2401
- var config = $$$1(target).data(DATA_KEY) ? 'toggle' : _extends({}, $$$1(target).data(), $$$1(this).data());
2402
-
2403
- if (this.tagName === 'A' || this.tagName === 'AREA') {
2404
- event.preventDefault();
2405
- }
2406
-
2407
- var $target = $$$1(target).one(Event.SHOW, function (showEvent) {
2408
- if (showEvent.isDefaultPrevented()) {
2409
- // Only register focus restorer if modal will actually get shown
2410
- return;
2411
- }
2412
-
2413
- $target.one(Event.HIDDEN, function () {
2414
- if ($$$1(_this10).is(':visible')) {
2415
- _this10.focus();
2416
- }
2417
- });
2418
- });
2419
-
2420
- Modal._jQueryInterface.call($$$1(target), config, this);
2421
- });
2422
- /**
2423
- * ------------------------------------------------------------------------
2424
- * jQuery
2425
- * ------------------------------------------------------------------------
2426
- */
2427
-
2428
- $$$1.fn[NAME] = Modal._jQueryInterface;
2429
- $$$1.fn[NAME].Constructor = Modal;
2430
-
2431
- $$$1.fn[NAME].noConflict = function () {
2432
- $$$1.fn[NAME] = JQUERY_NO_CONFLICT;
2433
- return Modal._jQueryInterface;
2434
- };
2435
-
2436
- return Modal;
2437
- }($);
2438
-
2439
- /**
2440
- * --------------------------------------------------------------------------
2441
- * Bootstrap (v4.0.0): tooltip.js
2442
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
2443
- * --------------------------------------------------------------------------
2444
- */
2445
-
2446
- var Tooltip = function ($$$1) {
2447
- /**
2448
- * ------------------------------------------------------------------------
2449
- * Constants
2450
- * ------------------------------------------------------------------------
2451
- */
2452
- var NAME = 'tooltip';
2453
- var VERSION = '4.0.0';
2454
- var DATA_KEY = 'bs.tooltip';
2455
- var EVENT_KEY = "." + DATA_KEY;
2456
- var JQUERY_NO_CONFLICT = $$$1.fn[NAME];
2457
- var TRANSITION_DURATION = 150;
2458
- var CLASS_PREFIX = 'bs-tooltip';
2459
- var BSCLS_PREFIX_REGEX = new RegExp("(^|\\s)" + CLASS_PREFIX + "\\S+", 'g');
2460
- var DefaultType = {
2461
- animation: 'boolean',
2462
- template: 'string',
2463
- title: '(string|element|function)',
2464
- trigger: 'string',
2465
- delay: '(number|object)',
2466
- html: 'boolean',
2467
- selector: '(string|boolean)',
2468
- placement: '(string|function)',
2469
- offset: '(number|string)',
2470
- container: '(string|element|boolean)',
2471
- fallbackPlacement: '(string|array)',
2472
- boundary: '(string|element)'
2473
- };
2474
- var AttachmentMap = {
2475
- AUTO: 'auto',
2476
- TOP: 'top',
2477
- RIGHT: 'right',
2478
- BOTTOM: 'bottom',
2479
- LEFT: 'left'
2480
- };
2481
- var Default = {
2482
- animation: true,
2483
- template: '<div class="tooltip" role="tooltip">' + '<div class="arrow"></div>' + '<div class="tooltip-inner"></div></div>',
2484
- trigger: 'hover focus',
2485
- title: '',
2486
- delay: 0,
2487
- html: false,
2488
- selector: false,
2489
- placement: 'top',
2490
- offset: 0,
2491
- container: false,
2492
- fallbackPlacement: 'flip',
2493
- boundary: 'scrollParent'
2494
- };
2495
- var HoverState = {
2496
- SHOW: 'show',
2497
- OUT: 'out'
2498
- };
2499
- var Event = {
2500
- HIDE: "hide" + EVENT_KEY,
2501
- HIDDEN: "hidden" + EVENT_KEY,
2502
- SHOW: "show" + EVENT_KEY,
2503
- SHOWN: "shown" + EVENT_KEY,
2504
- INSERTED: "inserted" + EVENT_KEY,
2505
- CLICK: "click" + EVENT_KEY,
2506
- FOCUSIN: "focusin" + EVENT_KEY,
2507
- FOCUSOUT: "focusout" + EVENT_KEY,
2508
- MOUSEENTER: "mouseenter" + EVENT_KEY,
2509
- MOUSELEAVE: "mouseleave" + EVENT_KEY
2510
- };
2511
- var ClassName = {
2512
- FADE: 'fade',
2513
- SHOW: 'show'
2514
- };
2515
- var Selector = {
2516
- TOOLTIP: '.tooltip',
2517
- TOOLTIP_INNER: '.tooltip-inner',
2518
- ARROW: '.arrow'
2519
- };
2520
- var Trigger = {
2521
- HOVER: 'hover',
2522
- FOCUS: 'focus',
2523
- CLICK: 'click',
2524
- MANUAL: 'manual'
2525
- /**
2526
- * ------------------------------------------------------------------------
2527
- * Class Definition
2528
- * ------------------------------------------------------------------------
2529
- */
2530
-
2531
- };
2532
-
2533
- var Tooltip =
2534
- /*#__PURE__*/
2535
- function () {
2536
- function Tooltip(element, config) {
2537
- /**
2538
- * Check for Popper dependency
2539
- * Popper - https://popper.js.org
2540
- */
2541
- if (typeof Popper === 'undefined') {
2542
- throw new TypeError('Bootstrap tooltips require Popper.js (https://popper.js.org)');
2543
- } // private
2544
-
2545
-
2546
- this._isEnabled = true;
2547
- this._timeout = 0;
2548
- this._hoverState = '';
2549
- this._activeTrigger = {};
2550
- this._popper = null; // Protected
2551
-
2552
- this.element = element;
2553
- this.config = this._getConfig(config);
2554
- this.tip = null;
2555
-
2556
- this._setListeners();
2557
- } // Getters
2558
-
2559
-
2560
- var _proto = Tooltip.prototype;
2561
-
2562
- // Public
2563
- _proto.enable = function enable() {
2564
- this._isEnabled = true;
2565
- };
2566
-
2567
- _proto.disable = function disable() {
2568
- this._isEnabled = false;
2569
- };
2570
-
2571
- _proto.toggleEnabled = function toggleEnabled() {
2572
- this._isEnabled = !this._isEnabled;
2573
- };
2574
-
2575
- _proto.toggle = function toggle(event) {
2576
- if (!this._isEnabled) {
2577
- return;
2578
- }
2579
-
2580
- if (event) {
2581
- var dataKey = this.constructor.DATA_KEY;
2582
- var context = $$$1(event.currentTarget).data(dataKey);
2583
-
2584
- if (!context) {
2585
- context = new this.constructor(event.currentTarget, this._getDelegateConfig());
2586
- $$$1(event.currentTarget).data(dataKey, context);
2587
- }
2588
-
2589
- context._activeTrigger.click = !context._activeTrigger.click;
2590
-
2591
- if (context._isWithActiveTrigger()) {
2592
- context._enter(null, context);
2593
- } else {
2594
- context._leave(null, context);
2595
- }
2596
- } else {
2597
- if ($$$1(this.getTipElement()).hasClass(ClassName.SHOW)) {
2598
- this._leave(null, this);
2599
-
2600
- return;
2601
- }
2602
-
2603
- this._enter(null, this);
2604
- }
2605
- };
2606
-
2607
- _proto.dispose = function dispose() {
2608
- clearTimeout(this._timeout);
2609
- $$$1.removeData(this.element, this.constructor.DATA_KEY);
2610
- $$$1(this.element).off(this.constructor.EVENT_KEY);
2611
- $$$1(this.element).closest('.modal').off('hide.bs.modal');
2612
-
2613
- if (this.tip) {
2614
- $$$1(this.tip).remove();
2615
- }
2616
-
2617
- this._isEnabled = null;
2618
- this._timeout = null;
2619
- this._hoverState = null;
2620
- this._activeTrigger = null;
2621
-
2622
- if (this._popper !== null) {
2623
- this._popper.destroy();
2624
- }
2625
-
2626
- this._popper = null;
2627
- this.element = null;
2628
- this.config = null;
2629
- this.tip = null;
2630
- };
2631
-
2632
- _proto.show = function show() {
2633
- var _this = this;
2634
-
2635
- if ($$$1(this.element).css('display') === 'none') {
2636
- throw new Error('Please use show on visible elements');
2637
- }
2638
-
2639
- var showEvent = $$$1.Event(this.constructor.Event.SHOW);
2640
-
2641
- if (this.isWithContent() && this._isEnabled) {
2642
- $$$1(this.element).trigger(showEvent);
2643
- var isInTheDom = $$$1.contains(this.element.ownerDocument.documentElement, this.element);
2644
-
2645
- if (showEvent.isDefaultPrevented() || !isInTheDom) {
2646
- return;
2647
- }
2648
-
2649
- var tip = this.getTipElement();
2650
- var tipId = Util.getUID(this.constructor.NAME);
2651
- tip.setAttribute('id', tipId);
2652
- this.element.setAttribute('aria-describedby', tipId);
2653
- this.setContent();
2654
-
2655
- if (this.config.animation) {
2656
- $$$1(tip).addClass(ClassName.FADE);
2657
- }
2658
-
2659
- var placement = typeof this.config.placement === 'function' ? this.config.placement.call(this, tip, this.element) : this.config.placement;
2660
-
2661
- var attachment = this._getAttachment(placement);
2662
-
2663
- this.addAttachmentClass(attachment);
2664
- var container = this.config.container === false ? document.body : $$$1(this.config.container);
2665
- $$$1(tip).data(this.constructor.DATA_KEY, this);
2666
-
2667
- if (!$$$1.contains(this.element.ownerDocument.documentElement, this.tip)) {
2668
- $$$1(tip).appendTo(container);
2669
- }
2670
-
2671
- $$$1(this.element).trigger(this.constructor.Event.INSERTED);
2672
- this._popper = new Popper(this.element, tip, {
2673
- placement: attachment,
2674
- modifiers: {
2675
- offset: {
2676
- offset: this.config.offset
2677
- },
2678
- flip: {
2679
- behavior: this.config.fallbackPlacement
2680
- },
2681
- arrow: {
2682
- element: Selector.ARROW
2683
- },
2684
- preventOverflow: {
2685
- boundariesElement: this.config.boundary
2686
- }
2687
- },
2688
- onCreate: function onCreate(data) {
2689
- if (data.originalPlacement !== data.placement) {
2690
- _this._handlePopperPlacementChange(data);
2691
- }
2692
- },
2693
- onUpdate: function onUpdate(data) {
2694
- _this._handlePopperPlacementChange(data);
2695
- }
2696
- });
2697
- $$$1(tip).addClass(ClassName.SHOW); // If this is a touch-enabled device we add extra
2698
- // empty mouseover listeners to the body's immediate children;
2699
- // only needed because of broken event delegation on iOS
2700
- // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html
2701
-
2702
- if ('ontouchstart' in document.documentElement) {
2703
- $$$1('body').children().on('mouseover', null, $$$1.noop);
2704
- }
2705
-
2706
- var complete = function complete() {
2707
- if (_this.config.animation) {
2708
- _this._fixTransition();
2709
- }
2710
-
2711
- var prevHoverState = _this._hoverState;
2712
- _this._hoverState = null;
2713
- $$$1(_this.element).trigger(_this.constructor.Event.SHOWN);
2714
-
2715
- if (prevHoverState === HoverState.OUT) {
2716
- _this._leave(null, _this);
2717
- }
2718
- };
2719
-
2720
- if (Util.supportsTransitionEnd() && $$$1(this.tip).hasClass(ClassName.FADE)) {
2721
- $$$1(this.tip).one(Util.TRANSITION_END, complete).emulateTransitionEnd(Tooltip._TRANSITION_DURATION);
2722
- } else {
2723
- complete();
2724
- }
2725
- }
2726
- };
2727
-
2728
- _proto.hide = function hide(callback) {
2729
- var _this2 = this;
2730
-
2731
- var tip = this.getTipElement();
2732
- var hideEvent = $$$1.Event(this.constructor.Event.HIDE);
2733
-
2734
- var complete = function complete() {
2735
- if (_this2._hoverState !== HoverState.SHOW && tip.parentNode) {
2736
- tip.parentNode.removeChild(tip);
2737
- }
2738
-
2739
- _this2._cleanTipClass();
2740
-
2741
- _this2.element.removeAttribute('aria-describedby');
2742
-
2743
- $$$1(_this2.element).trigger(_this2.constructor.Event.HIDDEN);
2744
-
2745
- if (_this2._popper !== null) {
2746
- _this2._popper.destroy();
2747
- }
2748
-
2749
- if (callback) {
2750
- callback();
2751
- }
2752
- };
2753
-
2754
- $$$1(this.element).trigger(hideEvent);
2755
-
2756
- if (hideEvent.isDefaultPrevented()) {
2757
- return;
2758
- }
2759
-
2760
- $$$1(tip).removeClass(ClassName.SHOW); // If this is a touch-enabled device we remove the extra
2761
- // empty mouseover listeners we added for iOS support
2762
-
2763
- if ('ontouchstart' in document.documentElement) {
2764
- $$$1('body').children().off('mouseover', null, $$$1.noop);
2765
- }
2766
-
2767
- this._activeTrigger[Trigger.CLICK] = false;
2768
- this._activeTrigger[Trigger.FOCUS] = false;
2769
- this._activeTrigger[Trigger.HOVER] = false;
2770
-
2771
- if (Util.supportsTransitionEnd() && $$$1(this.tip).hasClass(ClassName.FADE)) {
2772
- $$$1(tip).one(Util.TRANSITION_END, complete).emulateTransitionEnd(TRANSITION_DURATION);
2773
- } else {
2774
- complete();
2775
- }
2776
-
2777
- this._hoverState = '';
2778
- };
2779
-
2780
- _proto.update = function update() {
2781
- if (this._popper !== null) {
2782
- this._popper.scheduleUpdate();
2783
- }
2784
- }; // Protected
2785
-
2786
-
2787
- _proto.isWithContent = function isWithContent() {
2788
- return Boolean(this.getTitle());
2789
- };
2790
-
2791
- _proto.addAttachmentClass = function addAttachmentClass(attachment) {
2792
- $$$1(this.getTipElement()).addClass(CLASS_PREFIX + "-" + attachment);
2793
- };
2794
-
2795
- _proto.getTipElement = function getTipElement() {
2796
- this.tip = this.tip || $$$1(this.config.template)[0];
2797
- return this.tip;
2798
- };
2799
-
2800
- _proto.setContent = function setContent() {
2801
- var $tip = $$$1(this.getTipElement());
2802
- this.setElementContent($tip.find(Selector.TOOLTIP_INNER), this.getTitle());
2803
- $tip.removeClass(ClassName.FADE + " " + ClassName.SHOW);
2804
- };
2805
-
2806
- _proto.setElementContent = function setElementContent($element, content) {
2807
- var html = this.config.html;
2808
-
2809
- if (typeof content === 'object' && (content.nodeType || content.jquery)) {
2810
- // Content is a DOM node or a jQuery
2811
- if (html) {
2812
- if (!$$$1(content).parent().is($element)) {
2813
- $element.empty().append(content);
2814
- }
2815
- } else {
2816
- $element.text($$$1(content).text());
2817
- }
2818
- } else {
2819
- $element[html ? 'html' : 'text'](content);
2820
- }
2821
- };
2822
-
2823
- _proto.getTitle = function getTitle() {
2824
- var title = this.element.getAttribute('data-original-title');
2825
-
2826
- if (!title) {
2827
- title = typeof this.config.title === 'function' ? this.config.title.call(this.element) : this.config.title;
2828
- }
2829
-
2830
- return title;
2831
- }; // Private
2832
-
2833
-
2834
- _proto._getAttachment = function _getAttachment(placement) {
2835
- return AttachmentMap[placement.toUpperCase()];
2836
- };
2837
-
2838
- _proto._setListeners = function _setListeners() {
2839
- var _this3 = this;
2840
-
2841
- var triggers = this.config.trigger.split(' ');
2842
- triggers.forEach(function (trigger) {
2843
- if (trigger === 'click') {
2844
- $$$1(_this3.element).on(_this3.constructor.Event.CLICK, _this3.config.selector, function (event) {
2845
- return _this3.toggle(event);
2846
- });
2847
- } else if (trigger !== Trigger.MANUAL) {
2848
- var eventIn = trigger === Trigger.HOVER ? _this3.constructor.Event.MOUSEENTER : _this3.constructor.Event.FOCUSIN;
2849
- var eventOut = trigger === Trigger.HOVER ? _this3.constructor.Event.MOUSELEAVE : _this3.constructor.Event.FOCUSOUT;
2850
- $$$1(_this3.element).on(eventIn, _this3.config.selector, function (event) {
2851
- return _this3._enter(event);
2852
- }).on(eventOut, _this3.config.selector, function (event) {
2853
- return _this3._leave(event);
2854
- });
2855
- }
2856
-
2857
- $$$1(_this3.element).closest('.modal').on('hide.bs.modal', function () {
2858
- return _this3.hide();
2859
- });
2860
- });
2861
-
2862
- if (this.config.selector) {
2863
- this.config = _extends({}, this.config, {
2864
- trigger: 'manual',
2865
- selector: ''
2866
- });
2867
- } else {
2868
- this._fixTitle();
2869
- }
2870
- };
2871
-
2872
- _proto._fixTitle = function _fixTitle() {
2873
- var titleType = typeof this.element.getAttribute('data-original-title');
2874
-
2875
- if (this.element.getAttribute('title') || titleType !== 'string') {
2876
- this.element.setAttribute('data-original-title', this.element.getAttribute('title') || '');
2877
- this.element.setAttribute('title', '');
2878
- }
2879
- };
2880
-
2881
- _proto._enter = function _enter(event, context) {
2882
- var dataKey = this.constructor.DATA_KEY;
2883
- context = context || $$$1(event.currentTarget).data(dataKey);
2884
-
2885
- if (!context) {
2886
- context = new this.constructor(event.currentTarget, this._getDelegateConfig());
2887
- $$$1(event.currentTarget).data(dataKey, context);
2888
- }
2889
-
2890
- if (event) {
2891
- context._activeTrigger[event.type === 'focusin' ? Trigger.FOCUS : Trigger.HOVER] = true;
2892
- }
2893
-
2894
- if ($$$1(context.getTipElement()).hasClass(ClassName.SHOW) || context._hoverState === HoverState.SHOW) {
2895
- context._hoverState = HoverState.SHOW;
2896
- return;
2897
- }
2898
-
2899
- clearTimeout(context._timeout);
2900
- context._hoverState = HoverState.SHOW;
2901
-
2902
- if (!context.config.delay || !context.config.delay.show) {
2903
- context.show();
2904
- return;
2905
- }
2906
-
2907
- context._timeout = setTimeout(function () {
2908
- if (context._hoverState === HoverState.SHOW) {
2909
- context.show();
2910
- }
2911
- }, context.config.delay.show);
2912
- };
2913
-
2914
- _proto._leave = function _leave(event, context) {
2915
- var dataKey = this.constructor.DATA_KEY;
2916
- context = context || $$$1(event.currentTarget).data(dataKey);
2917
-
2918
- if (!context) {
2919
- context = new this.constructor(event.currentTarget, this._getDelegateConfig());
2920
- $$$1(event.currentTarget).data(dataKey, context);
2921
- }
2922
-
2923
- if (event) {
2924
- context._activeTrigger[event.type === 'focusout' ? Trigger.FOCUS : Trigger.HOVER] = false;
2925
- }
2926
-
2927
- if (context._isWithActiveTrigger()) {
2928
- return;
2929
- }
2930
-
2931
- clearTimeout(context._timeout);
2932
- context._hoverState = HoverState.OUT;
2933
-
2934
- if (!context.config.delay || !context.config.delay.hide) {
2935
- context.hide();
2936
- return;
2937
- }
2938
-
2939
- context._timeout = setTimeout(function () {
2940
- if (context._hoverState === HoverState.OUT) {
2941
- context.hide();
2942
- }
2943
- }, context.config.delay.hide);
2944
- };
2945
-
2946
- _proto._isWithActiveTrigger = function _isWithActiveTrigger() {
2947
- for (var trigger in this._activeTrigger) {
2948
- if (this._activeTrigger[trigger]) {
2949
- return true;
2950
- }
2951
- }
2952
-
2953
- return false;
2954
- };
2955
-
2956
- _proto._getConfig = function _getConfig(config) {
2957
- config = _extends({}, this.constructor.Default, $$$1(this.element).data(), config);
2958
-
2959
- if (typeof config.delay === 'number') {
2960
- config.delay = {
2961
- show: config.delay,
2962
- hide: config.delay
2963
- };
2964
- }
2965
-
2966
- if (typeof config.title === 'number') {
2967
- config.title = config.title.toString();
2968
- }
2969
-
2970
- if (typeof config.content === 'number') {
2971
- config.content = config.content.toString();
2972
- }
2973
-
2974
- Util.typeCheckConfig(NAME, config, this.constructor.DefaultType);
2975
- return config;
2976
- };
2977
-
2978
- _proto._getDelegateConfig = function _getDelegateConfig() {
2979
- var config = {};
2980
-
2981
- if (this.config) {
2982
- for (var key in this.config) {
2983
- if (this.constructor.Default[key] !== this.config[key]) {
2984
- config[key] = this.config[key];
2985
- }
2986
- }
2987
- }
2988
-
2989
- return config;
2990
- };
2991
-
2992
- _proto._cleanTipClass = function _cleanTipClass() {
2993
- var $tip = $$$1(this.getTipElement());
2994
- var tabClass = $tip.attr('class').match(BSCLS_PREFIX_REGEX);
2995
-
2996
- if (tabClass !== null && tabClass.length > 0) {
2997
- $tip.removeClass(tabClass.join(''));
2998
- }
2999
- };
3000
-
3001
- _proto._handlePopperPlacementChange = function _handlePopperPlacementChange(data) {
3002
- this._cleanTipClass();
3003
-
3004
- this.addAttachmentClass(this._getAttachment(data.placement));
3005
- };
3006
-
3007
- _proto._fixTransition = function _fixTransition() {
3008
- var tip = this.getTipElement();
3009
- var initConfigAnimation = this.config.animation;
3010
-
3011
- if (tip.getAttribute('x-placement') !== null) {
3012
- return;
3013
- }
3014
-
3015
- $$$1(tip).removeClass(ClassName.FADE);
3016
- this.config.animation = false;
3017
- this.hide();
3018
- this.show();
3019
- this.config.animation = initConfigAnimation;
3020
- }; // Static
3021
-
3022
-
3023
- Tooltip._jQueryInterface = function _jQueryInterface(config) {
3024
- return this.each(function () {
3025
- var data = $$$1(this).data(DATA_KEY);
3026
-
3027
- var _config = typeof config === 'object' && config;
3028
-
3029
- if (!data && /dispose|hide/.test(config)) {
3030
- return;
3031
- }
3032
-
3033
- if (!data) {
3034
- data = new Tooltip(this, _config);
3035
- $$$1(this).data(DATA_KEY, data);
3036
- }
3037
-
3038
- if (typeof config === 'string') {
3039
- if (typeof data[config] === 'undefined') {
3040
- throw new TypeError("No method named \"" + config + "\"");
3041
- }
3042
-
3043
- data[config]();
3044
- }
3045
- });
3046
- };
3047
-
3048
- _createClass(Tooltip, null, [{
3049
- key: "VERSION",
3050
- get: function get() {
3051
- return VERSION;
3052
- }
3053
- }, {
3054
- key: "Default",
3055
- get: function get() {
3056
- return Default;
3057
- }
3058
- }, {
3059
- key: "NAME",
3060
- get: function get() {
3061
- return NAME;
3062
- }
3063
- }, {
3064
- key: "DATA_KEY",
3065
- get: function get() {
3066
- return DATA_KEY;
3067
- }
3068
- }, {
3069
- key: "Event",
3070
- get: function get() {
3071
- return Event;
3072
- }
3073
- }, {
3074
- key: "EVENT_KEY",
3075
- get: function get() {
3076
- return EVENT_KEY;
3077
- }
3078
- }, {
3079
- key: "DefaultType",
3080
- get: function get() {
3081
- return DefaultType;
3082
- }
3083
- }]);
3084
- return Tooltip;
3085
- }();
3086
- /**
3087
- * ------------------------------------------------------------------------
3088
- * jQuery
3089
- * ------------------------------------------------------------------------
3090
- */
3091
-
3092
-
3093
- $$$1.fn[NAME] = Tooltip._jQueryInterface;
3094
- $$$1.fn[NAME].Constructor = Tooltip;
3095
-
3096
- $$$1.fn[NAME].noConflict = function () {
3097
- $$$1.fn[NAME] = JQUERY_NO_CONFLICT;
3098
- return Tooltip._jQueryInterface;
3099
- };
3100
-
3101
- return Tooltip;
3102
- }($, Popper);
3103
-
3104
- /**
3105
- * --------------------------------------------------------------------------
3106
- * Bootstrap (v4.0.0): popover.js
3107
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
3108
- * --------------------------------------------------------------------------
3109
- */
3110
-
3111
- var Popover = function ($$$1) {
3112
- /**
3113
- * ------------------------------------------------------------------------
3114
- * Constants
3115
- * ------------------------------------------------------------------------
3116
- */
3117
- var NAME = 'popover';
3118
- var VERSION = '4.0.0';
3119
- var DATA_KEY = 'bs.popover';
3120
- var EVENT_KEY = "." + DATA_KEY;
3121
- var JQUERY_NO_CONFLICT = $$$1.fn[NAME];
3122
- var CLASS_PREFIX = 'bs-popover';
3123
- var BSCLS_PREFIX_REGEX = new RegExp("(^|\\s)" + CLASS_PREFIX + "\\S+", 'g');
3124
- var Default = _extends({}, Tooltip.Default, {
3125
- placement: 'right',
3126
- trigger: 'click',
3127
- content: '',
3128
- template: '<div class="popover" role="tooltip">' + '<div class="arrow"></div>' + '<h3 class="popover-header"></h3>' + '<div class="popover-body"></div></div>'
3129
- });
3130
- var DefaultType = _extends({}, Tooltip.DefaultType, {
3131
- content: '(string|element|function)'
3132
- });
3133
- var ClassName = {
3134
- FADE: 'fade',
3135
- SHOW: 'show'
3136
- };
3137
- var Selector = {
3138
- TITLE: '.popover-header',
3139
- CONTENT: '.popover-body'
3140
- };
3141
- var Event = {
3142
- HIDE: "hide" + EVENT_KEY,
3143
- HIDDEN: "hidden" + EVENT_KEY,
3144
- SHOW: "show" + EVENT_KEY,
3145
- SHOWN: "shown" + EVENT_KEY,
3146
- INSERTED: "inserted" + EVENT_KEY,
3147
- CLICK: "click" + EVENT_KEY,
3148
- FOCUSIN: "focusin" + EVENT_KEY,
3149
- FOCUSOUT: "focusout" + EVENT_KEY,
3150
- MOUSEENTER: "mouseenter" + EVENT_KEY,
3151
- MOUSELEAVE: "mouseleave" + EVENT_KEY
3152
- /**
3153
- * ------------------------------------------------------------------------
3154
- * Class Definition
3155
- * ------------------------------------------------------------------------
3156
- */
3157
-
3158
- };
3159
-
3160
- var Popover =
3161
- /*#__PURE__*/
3162
- function (_Tooltip) {
3163
- _inheritsLoose(Popover, _Tooltip);
3164
-
3165
- function Popover() {
3166
- return _Tooltip.apply(this, arguments) || this;
3167
- }
3168
-
3169
- var _proto = Popover.prototype;
3170
-
3171
- // Overrides
3172
- _proto.isWithContent = function isWithContent() {
3173
- return this.getTitle() || this._getContent();
3174
- };
3175
-
3176
- _proto.addAttachmentClass = function addAttachmentClass(attachment) {
3177
- $$$1(this.getTipElement()).addClass(CLASS_PREFIX + "-" + attachment);
3178
- };
3179
-
3180
- _proto.getTipElement = function getTipElement() {
3181
- this.tip = this.tip || $$$1(this.config.template)[0];
3182
- return this.tip;
3183
- };
3184
-
3185
- _proto.setContent = function setContent() {
3186
- var $tip = $$$1(this.getTipElement()); // We use append for html objects to maintain js events
3187
-
3188
- this.setElementContent($tip.find(Selector.TITLE), this.getTitle());
3189
-
3190
- var content = this._getContent();
3191
-
3192
- if (typeof content === 'function') {
3193
- content = content.call(this.element);
3194
- }
3195
-
3196
- this.setElementContent($tip.find(Selector.CONTENT), content);
3197
- $tip.removeClass(ClassName.FADE + " " + ClassName.SHOW);
3198
- }; // Private
3199
-
3200
-
3201
- _proto._getContent = function _getContent() {
3202
- return this.element.getAttribute('data-content') || this.config.content;
3203
- };
3204
-
3205
- _proto._cleanTipClass = function _cleanTipClass() {
3206
- var $tip = $$$1(this.getTipElement());
3207
- var tabClass = $tip.attr('class').match(BSCLS_PREFIX_REGEX);
3208
-
3209
- if (tabClass !== null && tabClass.length > 0) {
3210
- $tip.removeClass(tabClass.join(''));
3211
- }
3212
- }; // Static
3213
-
3214
-
3215
- Popover._jQueryInterface = function _jQueryInterface(config) {
3216
- return this.each(function () {
3217
- var data = $$$1(this).data(DATA_KEY);
3218
-
3219
- var _config = typeof config === 'object' ? config : null;
3220
-
3221
- if (!data && /destroy|hide/.test(config)) {
3222
- return;
3223
- }
3224
-
3225
- if (!data) {
3226
- data = new Popover(this, _config);
3227
- $$$1(this).data(DATA_KEY, data);
3228
- }
3229
-
3230
- if (typeof config === 'string') {
3231
- if (typeof data[config] === 'undefined') {
3232
- throw new TypeError("No method named \"" + config + "\"");
3233
- }
3234
-
3235
- data[config]();
3236
- }
3237
- });
3238
- };
3239
-
3240
- _createClass(Popover, null, [{
3241
- key: "VERSION",
3242
- // Getters
3243
- get: function get() {
3244
- return VERSION;
3245
- }
3246
- }, {
3247
- key: "Default",
3248
- get: function get() {
3249
- return Default;
3250
- }
3251
- }, {
3252
- key: "NAME",
3253
- get: function get() {
3254
- return NAME;
3255
- }
3256
- }, {
3257
- key: "DATA_KEY",
3258
- get: function get() {
3259
- return DATA_KEY;
3260
- }
3261
- }, {
3262
- key: "Event",
3263
- get: function get() {
3264
- return Event;
3265
- }
3266
- }, {
3267
- key: "EVENT_KEY",
3268
- get: function get() {
3269
- return EVENT_KEY;
3270
- }
3271
- }, {
3272
- key: "DefaultType",
3273
- get: function get() {
3274
- return DefaultType;
3275
- }
3276
- }]);
3277
- return Popover;
3278
- }(Tooltip);
3279
- /**
3280
- * ------------------------------------------------------------------------
3281
- * jQuery
3282
- * ------------------------------------------------------------------------
3283
- */
3284
-
3285
-
3286
- $$$1.fn[NAME] = Popover._jQueryInterface;
3287
- $$$1.fn[NAME].Constructor = Popover;
3288
-
3289
- $$$1.fn[NAME].noConflict = function () {
3290
- $$$1.fn[NAME] = JQUERY_NO_CONFLICT;
3291
- return Popover._jQueryInterface;
3292
- };
3293
-
3294
- return Popover;
3295
- }($);
3296
-
3297
- /**
3298
- * --------------------------------------------------------------------------
3299
- * Bootstrap (v4.0.0): scrollspy.js
3300
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
3301
- * --------------------------------------------------------------------------
3302
- */
3303
-
3304
- var ScrollSpy = function ($$$1) {
3305
- /**
3306
- * ------------------------------------------------------------------------
3307
- * Constants
3308
- * ------------------------------------------------------------------------
3309
- */
3310
- var NAME = 'scrollspy';
3311
- var VERSION = '4.0.0';
3312
- var DATA_KEY = 'bs.scrollspy';
3313
- var EVENT_KEY = "." + DATA_KEY;
3314
- var DATA_API_KEY = '.data-api';
3315
- var JQUERY_NO_CONFLICT = $$$1.fn[NAME];
3316
- var Default = {
3317
- offset: 10,
3318
- method: 'auto',
3319
- target: ''
3320
- };
3321
- var DefaultType = {
3322
- offset: 'number',
3323
- method: 'string',
3324
- target: '(string|element)'
3325
- };
3326
- var Event = {
3327
- ACTIVATE: "activate" + EVENT_KEY,
3328
- SCROLL: "scroll" + EVENT_KEY,
3329
- LOAD_DATA_API: "load" + EVENT_KEY + DATA_API_KEY
3330
- };
3331
- var ClassName = {
3332
- DROPDOWN_ITEM: 'dropdown-item',
3333
- DROPDOWN_MENU: 'dropdown-menu',
3334
- ACTIVE: 'active'
3335
- };
3336
- var Selector = {
3337
- DATA_SPY: '[data-spy="scroll"]',
3338
- ACTIVE: '.active',
3339
- NAV_LIST_GROUP: '.nav, .list-group',
3340
- NAV_LINKS: '.nav-link',
3341
- NAV_ITEMS: '.nav-item',
3342
- LIST_ITEMS: '.list-group-item',
3343
- DROPDOWN: '.dropdown',
3344
- DROPDOWN_ITEMS: '.dropdown-item',
3345
- DROPDOWN_TOGGLE: '.dropdown-toggle'
3346
- };
3347
- var OffsetMethod = {
3348
- OFFSET: 'offset',
3349
- POSITION: 'position'
3350
- /**
3351
- * ------------------------------------------------------------------------
3352
- * Class Definition
3353
- * ------------------------------------------------------------------------
3354
- */
3355
-
3356
- };
3357
-
3358
- var ScrollSpy =
3359
- /*#__PURE__*/
3360
- function () {
3361
- function ScrollSpy(element, config) {
3362
- var _this = this;
3363
-
3364
- this._element = element;
3365
- this._scrollElement = element.tagName === 'BODY' ? window : element;
3366
- this._config = this._getConfig(config);
3367
- this._selector = this._config.target + " " + Selector.NAV_LINKS + "," + (this._config.target + " " + Selector.LIST_ITEMS + ",") + (this._config.target + " " + Selector.DROPDOWN_ITEMS);
3368
- this._offsets = [];
3369
- this._targets = [];
3370
- this._activeTarget = null;
3371
- this._scrollHeight = 0;
3372
- $$$1(this._scrollElement).on(Event.SCROLL, function (event) {
3373
- return _this._process(event);
3374
- });
3375
- this.refresh();
3376
-
3377
- this._process();
3378
- } // Getters
3379
-
3380
-
3381
- var _proto = ScrollSpy.prototype;
3382
-
3383
- // Public
3384
- _proto.refresh = function refresh() {
3385
- var _this2 = this;
3386
-
3387
- var autoMethod = this._scrollElement === this._scrollElement.window ? OffsetMethod.OFFSET : OffsetMethod.POSITION;
3388
- var offsetMethod = this._config.method === 'auto' ? autoMethod : this._config.method;
3389
- var offsetBase = offsetMethod === OffsetMethod.POSITION ? this._getScrollTop() : 0;
3390
- this._offsets = [];
3391
- this._targets = [];
3392
- this._scrollHeight = this._getScrollHeight();
3393
- var targets = $$$1.makeArray($$$1(this._selector));
3394
- targets.map(function (element) {
3395
- var target;
3396
- var targetSelector = Util.getSelectorFromElement(element);
3397
-
3398
- if (targetSelector) {
3399
- target = $$$1(targetSelector)[0];
3400
- }
3401
-
3402
- if (target) {
3403
- var targetBCR = target.getBoundingClientRect();
3404
-
3405
- if (targetBCR.width || targetBCR.height) {
3406
- // TODO (fat): remove sketch reliance on jQuery position/offset
3407
- return [$$$1(target)[offsetMethod]().top + offsetBase, targetSelector];
3408
- }
3409
- }
3410
-
3411
- return null;
3412
- }).filter(function (item) {
3413
- return item;
3414
- }).sort(function (a, b) {
3415
- return a[0] - b[0];
3416
- }).forEach(function (item) {
3417
- _this2._offsets.push(item[0]);
3418
-
3419
- _this2._targets.push(item[1]);
3420
- });
3421
- };
3422
-
3423
- _proto.dispose = function dispose() {
3424
- $$$1.removeData(this._element, DATA_KEY);
3425
- $$$1(this._scrollElement).off(EVENT_KEY);
3426
- this._element = null;
3427
- this._scrollElement = null;
3428
- this._config = null;
3429
- this._selector = null;
3430
- this._offsets = null;
3431
- this._targets = null;
3432
- this._activeTarget = null;
3433
- this._scrollHeight = null;
3434
- }; // Private
3435
-
3436
-
3437
- _proto._getConfig = function _getConfig(config) {
3438
- config = _extends({}, Default, config);
3439
-
3440
- if (typeof config.target !== 'string') {
3441
- var id = $$$1(config.target).attr('id');
3442
-
3443
- if (!id) {
3444
- id = Util.getUID(NAME);
3445
- $$$1(config.target).attr('id', id);
3446
- }
3447
-
3448
- config.target = "#" + id;
3449
- }
3450
-
3451
- Util.typeCheckConfig(NAME, config, DefaultType);
3452
- return config;
3453
- };
3454
-
3455
- _proto._getScrollTop = function _getScrollTop() {
3456
- return this._scrollElement === window ? this._scrollElement.pageYOffset : this._scrollElement.scrollTop;
3457
- };
3458
-
3459
- _proto._getScrollHeight = function _getScrollHeight() {
3460
- return this._scrollElement.scrollHeight || Math.max(document.body.scrollHeight, document.documentElement.scrollHeight);
3461
- };
3462
-
3463
- _proto._getOffsetHeight = function _getOffsetHeight() {
3464
- return this._scrollElement === window ? window.innerHeight : this._scrollElement.getBoundingClientRect().height;
3465
- };
3466
-
3467
- _proto._process = function _process() {
3468
- var scrollTop = this._getScrollTop() + this._config.offset;
3469
-
3470
- var scrollHeight = this._getScrollHeight();
3471
-
3472
- var maxScroll = this._config.offset + scrollHeight - this._getOffsetHeight();
3473
-
3474
- if (this._scrollHeight !== scrollHeight) {
3475
- this.refresh();
3476
- }
3477
-
3478
- if (scrollTop >= maxScroll) {
3479
- var target = this._targets[this._targets.length - 1];
3480
-
3481
- if (this._activeTarget !== target) {
3482
- this._activate(target);
3483
- }
3484
-
3485
- return;
3486
- }
3487
-
3488
- if (this._activeTarget && scrollTop < this._offsets[0] && this._offsets[0] > 0) {
3489
- this._activeTarget = null;
3490
-
3491
- this._clear();
3492
-
3493
- return;
3494
- }
3495
-
3496
- for (var i = this._offsets.length; i--;) {
3497
- var isActiveTarget = this._activeTarget !== this._targets[i] && scrollTop >= this._offsets[i] && (typeof this._offsets[i + 1] === 'undefined' || scrollTop < this._offsets[i + 1]);
3498
-
3499
- if (isActiveTarget) {
3500
- this._activate(this._targets[i]);
3501
- }
3502
- }
3503
- };
3504
-
3505
- _proto._activate = function _activate(target) {
3506
- this._activeTarget = target;
3507
-
3508
- this._clear();
3509
-
3510
- var queries = this._selector.split(','); // eslint-disable-next-line arrow-body-style
3511
-
3512
-
3513
- queries = queries.map(function (selector) {
3514
- return selector + "[data-target=\"" + target + "\"]," + (selector + "[href=\"" + target + "\"]");
3515
- });
3516
- var $link = $$$1(queries.join(','));
3517
-
3518
- if ($link.hasClass(ClassName.DROPDOWN_ITEM)) {
3519
- $link.closest(Selector.DROPDOWN).find(Selector.DROPDOWN_TOGGLE).addClass(ClassName.ACTIVE);
3520
- $link.addClass(ClassName.ACTIVE);
3521
- } else {
3522
- // Set triggered link as active
3523
- $link.addClass(ClassName.ACTIVE); // Set triggered links parents as active
3524
- // With both <ul> and <nav> markup a parent is the previous sibling of any nav ancestor
3525
-
3526
- $link.parents(Selector.NAV_LIST_GROUP).prev(Selector.NAV_LINKS + ", " + Selector.LIST_ITEMS).addClass(ClassName.ACTIVE); // Handle special case when .nav-link is inside .nav-item
3527
-
3528
- $link.parents(Selector.NAV_LIST_GROUP).prev(Selector.NAV_ITEMS).children(Selector.NAV_LINKS).addClass(ClassName.ACTIVE);
3529
- }
3530
-
3531
- $$$1(this._scrollElement).trigger(Event.ACTIVATE, {
3532
- relatedTarget: target
3533
- });
3534
- };
3535
-
3536
- _proto._clear = function _clear() {
3537
- $$$1(this._selector).filter(Selector.ACTIVE).removeClass(ClassName.ACTIVE);
3538
- }; // Static
3539
-
3540
-
3541
- ScrollSpy._jQueryInterface = function _jQueryInterface(config) {
3542
- return this.each(function () {
3543
- var data = $$$1(this).data(DATA_KEY);
3544
-
3545
- var _config = typeof config === 'object' && config;
3546
-
3547
- if (!data) {
3548
- data = new ScrollSpy(this, _config);
3549
- $$$1(this).data(DATA_KEY, data);
3550
- }
3551
-
3552
- if (typeof config === 'string') {
3553
- if (typeof data[config] === 'undefined') {
3554
- throw new TypeError("No method named \"" + config + "\"");
3555
- }
3556
-
3557
- data[config]();
3558
- }
3559
- });
3560
- };
3561
-
3562
- _createClass(ScrollSpy, null, [{
3563
- key: "VERSION",
3564
- get: function get() {
3565
- return VERSION;
3566
- }
3567
- }, {
3568
- key: "Default",
3569
- get: function get() {
3570
- return Default;
3571
- }
3572
- }]);
3573
- return ScrollSpy;
3574
- }();
3575
- /**
3576
- * ------------------------------------------------------------------------
3577
- * Data Api implementation
3578
- * ------------------------------------------------------------------------
3579
- */
3580
-
3581
-
3582
- $$$1(window).on(Event.LOAD_DATA_API, function () {
3583
- var scrollSpys = $$$1.makeArray($$$1(Selector.DATA_SPY));
3584
-
3585
- for (var i = scrollSpys.length; i--;) {
3586
- var $spy = $$$1(scrollSpys[i]);
3587
-
3588
- ScrollSpy._jQueryInterface.call($spy, $spy.data());
3589
- }
3590
- });
3591
- /**
3592
- * ------------------------------------------------------------------------
3593
- * jQuery
3594
- * ------------------------------------------------------------------------
3595
- */
3596
-
3597
- $$$1.fn[NAME] = ScrollSpy._jQueryInterface;
3598
- $$$1.fn[NAME].Constructor = ScrollSpy;
3599
-
3600
- $$$1.fn[NAME].noConflict = function () {
3601
- $$$1.fn[NAME] = JQUERY_NO_CONFLICT;
3602
- return ScrollSpy._jQueryInterface;
3603
- };
3604
-
3605
- return ScrollSpy;
3606
- }($);
3607
-
3608
- /**
3609
- * --------------------------------------------------------------------------
3610
- * Bootstrap (v4.0.0): tab.js
3611
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
3612
- * --------------------------------------------------------------------------
3613
- */
3614
-
3615
- var Tab = function ($$$1) {
3616
- /**
3617
- * ------------------------------------------------------------------------
3618
- * Constants
3619
- * ------------------------------------------------------------------------
3620
- */
3621
- var NAME = 'tab';
3622
- var VERSION = '4.0.0';
3623
- var DATA_KEY = 'bs.tab';
3624
- var EVENT_KEY = "." + DATA_KEY;
3625
- var DATA_API_KEY = '.data-api';
3626
- var JQUERY_NO_CONFLICT = $$$1.fn[NAME];
3627
- var TRANSITION_DURATION = 150;
3628
- var Event = {
3629
- HIDE: "hide" + EVENT_KEY,
3630
- HIDDEN: "hidden" + EVENT_KEY,
3631
- SHOW: "show" + EVENT_KEY,
3632
- SHOWN: "shown" + EVENT_KEY,
3633
- CLICK_DATA_API: "click" + EVENT_KEY + DATA_API_KEY
3634
- };
3635
- var ClassName = {
3636
- DROPDOWN_MENU: 'dropdown-menu',
3637
- ACTIVE: 'active',
3638
- DISABLED: 'disabled',
3639
- FADE: 'fade',
3640
- SHOW: 'show'
3641
- };
3642
- var Selector = {
3643
- DROPDOWN: '.dropdown',
3644
- NAV_LIST_GROUP: '.nav, .list-group',
3645
- ACTIVE: '.active',
3646
- ACTIVE_UL: '> li > .active',
3647
- DATA_TOGGLE: '[data-toggle="tab"], [data-toggle="pill"], [data-toggle="list"]',
3648
- DROPDOWN_TOGGLE: '.dropdown-toggle',
3649
- DROPDOWN_ACTIVE_CHILD: '> .dropdown-menu .active'
3650
- /**
3651
- * ------------------------------------------------------------------------
3652
- * Class Definition
3653
- * ------------------------------------------------------------------------
3654
- */
3655
-
3656
- };
3657
-
3658
- var Tab =
3659
- /*#__PURE__*/
3660
- function () {
3661
- function Tab(element) {
3662
- this._element = element;
3663
- } // Getters
3664
-
3665
-
3666
- var _proto = Tab.prototype;
3667
-
3668
- // Public
3669
- _proto.show = function show() {
3670
- var _this = this;
3671
-
3672
- if (this._element.parentNode && this._element.parentNode.nodeType === Node.ELEMENT_NODE && $$$1(this._element).hasClass(ClassName.ACTIVE) || $$$1(this._element).hasClass(ClassName.DISABLED)) {
3673
- return;
3674
- }
3675
-
3676
- var target;
3677
- var previous;
3678
- var listElement = $$$1(this._element).closest(Selector.NAV_LIST_GROUP)[0];
3679
- var selector = Util.getSelectorFromElement(this._element);
3680
-
3681
- if (listElement) {
3682
- var itemSelector = listElement.nodeName === 'UL' ? Selector.ACTIVE_UL : Selector.ACTIVE;
3683
- previous = $$$1.makeArray($$$1(listElement).find(itemSelector));
3684
- previous = previous[previous.length - 1];
3685
- }
3686
-
3687
- var hideEvent = $$$1.Event(Event.HIDE, {
3688
- relatedTarget: this._element
3689
- });
3690
- var showEvent = $$$1.Event(Event.SHOW, {
3691
- relatedTarget: previous
3692
- });
3693
-
3694
- if (previous) {
3695
- $$$1(previous).trigger(hideEvent);
3696
- }
3697
-
3698
- $$$1(this._element).trigger(showEvent);
3699
-
3700
- if (showEvent.isDefaultPrevented() || hideEvent.isDefaultPrevented()) {
3701
- return;
3702
- }
3703
-
3704
- if (selector) {
3705
- target = $$$1(selector)[0];
3706
- }
3707
-
3708
- this._activate(this._element, listElement);
3709
-
3710
- var complete = function complete() {
3711
- var hiddenEvent = $$$1.Event(Event.HIDDEN, {
3712
- relatedTarget: _this._element
3713
- });
3714
- var shownEvent = $$$1.Event(Event.SHOWN, {
3715
- relatedTarget: previous
3716
- });
3717
- $$$1(previous).trigger(hiddenEvent);
3718
- $$$1(_this._element).trigger(shownEvent);
3719
- };
3720
-
3721
- if (target) {
3722
- this._activate(target, target.parentNode, complete);
3723
- } else {
3724
- complete();
3725
- }
3726
- };
3727
-
3728
- _proto.dispose = function dispose() {
3729
- $$$1.removeData(this._element, DATA_KEY);
3730
- this._element = null;
3731
- }; // Private
3732
-
3733
-
3734
- _proto._activate = function _activate(element, container, callback) {
3735
- var _this2 = this;
3736
-
3737
- var activeElements;
3738
-
3739
- if (container.nodeName === 'UL') {
3740
- activeElements = $$$1(container).find(Selector.ACTIVE_UL);
3741
- } else {
3742
- activeElements = $$$1(container).children(Selector.ACTIVE);
3743
- }
3744
-
3745
- var active = activeElements[0];
3746
- var isTransitioning = callback && Util.supportsTransitionEnd() && active && $$$1(active).hasClass(ClassName.FADE);
3747
-
3748
- var complete = function complete() {
3749
- return _this2._transitionComplete(element, active, callback);
3750
- };
3751
-
3752
- if (active && isTransitioning) {
3753
- $$$1(active).one(Util.TRANSITION_END, complete).emulateTransitionEnd(TRANSITION_DURATION);
3754
- } else {
3755
- complete();
3756
- }
3757
- };
3758
-
3759
- _proto._transitionComplete = function _transitionComplete(element, active, callback) {
3760
- if (active) {
3761
- $$$1(active).removeClass(ClassName.SHOW + " " + ClassName.ACTIVE);
3762
- var dropdownChild = $$$1(active.parentNode).find(Selector.DROPDOWN_ACTIVE_CHILD)[0];
3763
-
3764
- if (dropdownChild) {
3765
- $$$1(dropdownChild).removeClass(ClassName.ACTIVE);
3766
- }
3767
-
3768
- if (active.getAttribute('role') === 'tab') {
3769
- active.setAttribute('aria-selected', false);
3770
- }
3771
- }
3772
-
3773
- $$$1(element).addClass(ClassName.ACTIVE);
3774
-
3775
- if (element.getAttribute('role') === 'tab') {
3776
- element.setAttribute('aria-selected', true);
3777
- }
3778
-
3779
- Util.reflow(element);
3780
- $$$1(element).addClass(ClassName.SHOW);
3781
-
3782
- if (element.parentNode && $$$1(element.parentNode).hasClass(ClassName.DROPDOWN_MENU)) {
3783
- var dropdownElement = $$$1(element).closest(Selector.DROPDOWN)[0];
3784
-
3785
- if (dropdownElement) {
3786
- $$$1(dropdownElement).find(Selector.DROPDOWN_TOGGLE).addClass(ClassName.ACTIVE);
3787
- }
3788
-
3789
- element.setAttribute('aria-expanded', true);
3790
- }
3791
-
3792
- if (callback) {
3793
- callback();
3794
- }
3795
- }; // Static
3796
-
3797
-
3798
- Tab._jQueryInterface = function _jQueryInterface(config) {
3799
- return this.each(function () {
3800
- var $this = $$$1(this);
3801
- var data = $this.data(DATA_KEY);
3802
-
3803
- if (!data) {
3804
- data = new Tab(this);
3805
- $this.data(DATA_KEY, data);
3806
- }
3807
-
3808
- if (typeof config === 'string') {
3809
- if (typeof data[config] === 'undefined') {
3810
- throw new TypeError("No method named \"" + config + "\"");
3811
- }
3812
-
3813
- data[config]();
3814
- }
3815
- });
3816
- };
3817
-
3818
- _createClass(Tab, null, [{
3819
- key: "VERSION",
3820
- get: function get() {
3821
- return VERSION;
3822
- }
3823
- }]);
3824
- return Tab;
3825
- }();
3826
- /**
3827
- * ------------------------------------------------------------------------
3828
- * Data Api implementation
3829
- * ------------------------------------------------------------------------
3830
- */
3831
-
3832
-
3833
- $$$1(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {
3834
- event.preventDefault();
3835
-
3836
- Tab._jQueryInterface.call($$$1(this), 'show');
3837
- });
3838
- /**
3839
- * ------------------------------------------------------------------------
3840
- * jQuery
3841
- * ------------------------------------------------------------------------
3842
- */
3843
-
3844
- $$$1.fn[NAME] = Tab._jQueryInterface;
3845
- $$$1.fn[NAME].Constructor = Tab;
3846
-
3847
- $$$1.fn[NAME].noConflict = function () {
3848
- $$$1.fn[NAME] = JQUERY_NO_CONFLICT;
3849
- return Tab._jQueryInterface;
3850
- };
3851
-
3852
- return Tab;
3853
- }($);
3854
-
3855
- /**
3856
- * --------------------------------------------------------------------------
3857
- * Bootstrap (v4.0.0-alpha.6): index.js
3858
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
3859
- * --------------------------------------------------------------------------
3860
- */
3861
-
3862
- (function ($$$1) {
3863
- if (typeof $$$1 === 'undefined') {
3864
- throw new TypeError('Bootstrap\'s JavaScript requires jQuery. jQuery must be included before Bootstrap\'s JavaScript.');
3865
- }
3866
-
3867
- var version = $$$1.fn.jquery.split(' ')[0].split('.');
3868
- var minMajor = 1;
3869
- var ltMajor = 2;
3870
- var minMinor = 9;
3871
- var minPatch = 1;
3872
- var maxMajor = 4;
3873
-
3874
- if (version[0] < ltMajor && version[1] < minMinor || version[0] === minMajor && version[1] === minMinor && version[2] < minPatch || version[0] >= maxMajor) {
3875
- throw new Error('Bootstrap\'s JavaScript requires at least jQuery v1.9.1 but less than v4.0.0');
3876
- }
3877
- })($);
3878
-
3879
- exports.Util = Util;
3880
- exports.Alert = Alert;
3881
- exports.Button = Button;
3882
- exports.Carousel = Carousel;
3883
- exports.Collapse = Collapse;
3884
- exports.Dropdown = Dropdown;
3885
- exports.Modal = Modal;
3886
- exports.Popover = Popover;
3887
- exports.Scrollspy = ScrollSpy;
3888
- exports.Tab = Tab;
3889
- exports.Tooltip = Tooltip;
3890
-
3891
- Object.defineProperty(exports, '__esModule', { value: true });
3892
-
3893
- })));
3894
- //# sourceMappingURL=bootstrap.js.map