bootstrap.esm.js 143 KB
Newer Older
XhmikosR's avatar
Dist.  
XhmikosR committed
1
/*!
2
  * Bootstrap v5.0.0-alpha1 (https://getbootstrap.com/)
XhmikosR's avatar
XhmikosR committed
3
  * Copyright 2011-2020 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
XhmikosR's avatar
Dist.  
XhmikosR committed
4
5
6
7
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
  */
import Popper from 'popper.js';

XhmikosR's avatar
XhmikosR committed
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
function _defineProperties(target, props) {
  for (var i = 0; i < props.length; i++) {
    var descriptor = props[i];
    descriptor.enumerable = descriptor.enumerable || false;
    descriptor.configurable = true;
    if ("value" in descriptor) descriptor.writable = true;
    Object.defineProperty(target, descriptor.key, descriptor);
  }
}

function _createClass(Constructor, protoProps, staticProps) {
  if (protoProps) _defineProperties(Constructor.prototype, protoProps);
  if (staticProps) _defineProperties(Constructor, staticProps);
  return Constructor;
}

function _defineProperty(obj, key, value) {
  if (key in obj) {
    Object.defineProperty(obj, key, {
      value: value,
      enumerable: true,
      configurable: true,
      writable: true
    });
  } else {
    obj[key] = value;
  }

  return obj;
}

39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
function ownKeys(object, enumerableOnly) {
  var keys = Object.keys(object);

  if (Object.getOwnPropertySymbols) {
    var symbols = Object.getOwnPropertySymbols(object);
    if (enumerableOnly) symbols = symbols.filter(function (sym) {
      return Object.getOwnPropertyDescriptor(object, sym).enumerable;
    });
    keys.push.apply(keys, symbols);
  }

  return keys;
}

function _objectSpread2(target) {
XhmikosR's avatar
XhmikosR committed
54
55
56
  for (var i = 1; i < arguments.length; i++) {
    var source = arguments[i] != null ? arguments[i] : {};

57
    if (i % 2) {
XhmikosR's avatar
XhmikosR committed
58
      ownKeys(Object(source), true).forEach(function (key) {
59
60
61
62
63
        _defineProperty(target, key, source[key]);
      });
    } else if (Object.getOwnPropertyDescriptors) {
      Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));
    } else {
XhmikosR's avatar
XhmikosR committed
64
      ownKeys(Object(source)).forEach(function (key) {
65
66
        Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
      });
XhmikosR's avatar
XhmikosR committed
67
68
69
70
71
72
73
74
75
76
77
78
    }
  }

  return target;
}

function _inheritsLoose(subClass, superClass) {
  subClass.prototype = Object.create(superClass.prototype);
  subClass.prototype.constructor = subClass;
  subClass.__proto__ = superClass;
}

XhmikosR's avatar
Dist.  
XhmikosR committed
79
80
/**
 * --------------------------------------------------------------------------
81
 * Bootstrap (v5.0.0-alpha1): util/index.js
XhmikosR's avatar
Dist.  
XhmikosR committed
82
83
84
 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
 * --------------------------------------------------------------------------
 */
XhmikosR's avatar
XhmikosR committed
85
86
var MAX_UID = 1000000;
var MILLISECONDS_MULTIPLIER = 1000;
XhmikosR's avatar
XhmikosR committed
87
var TRANSITION_END = 'transitionend'; // Shoutout AngusCroll (https://goo.gl/pxwQGp)
XhmikosR's avatar
XhmikosR committed
88
89

var toType = function toType(obj) {
XhmikosR's avatar
XhmikosR committed
90
91
92
93
  if (obj === null || obj === undefined) {
    return "" + obj;
  }

XhmikosR's avatar
XhmikosR committed
94
95
  return {}.toString.call(obj).match(/\s([a-z]+)/i)[1].toLowerCase();
};
XhmikosR's avatar
Dist.  
XhmikosR committed
96
97
98
99
100
101
102
/**
 * --------------------------------------------------------------------------
 * Public Util Api
 * --------------------------------------------------------------------------
 */


XhmikosR's avatar
XhmikosR committed
103
var getUID = function getUID(prefix) {
XhmikosR's avatar
Dist.  
XhmikosR committed
104
105
106
107
108
109
110
  do {
    prefix += ~~(Math.random() * MAX_UID); // "~~" acts like a faster Math.floor() here
  } while (document.getElementById(prefix));

  return prefix;
};

XhmikosR's avatar
XhmikosR committed
111
var getSelector = function getSelector(element) {
XhmikosR's avatar
XhmikosR committed
112
  var selector = element.getAttribute('data-target');
XhmikosR's avatar
Dist.  
XhmikosR committed
113
114

  if (!selector || selector === '#') {
XhmikosR's avatar
XhmikosR committed
115
    var hrefAttr = element.getAttribute('href');
XhmikosR's avatar
XhmikosR committed
116
    selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : null;
XhmikosR's avatar
Dist.  
XhmikosR committed
117
118
  }

XhmikosR's avatar
XhmikosR committed
119
120
121
122
123
124
125
  return selector;
};

var getSelectorFromElement = function getSelectorFromElement(element) {
  var selector = getSelector(element);

  if (selector) {
XhmikosR's avatar
Dist.  
XhmikosR committed
126
127
    return document.querySelector(selector) ? selector : null;
  }
XhmikosR's avatar
XhmikosR committed
128
129
130
131
132
133
134

  return null;
};

var getElementFromSelector = function getElementFromSelector(element) {
  var selector = getSelector(element);
  return selector ? document.querySelector(selector) : null;
XhmikosR's avatar
Dist.  
XhmikosR committed
135
136
};

XhmikosR's avatar
XhmikosR committed
137
var getTransitionDurationFromElement = function getTransitionDurationFromElement(element) {
XhmikosR's avatar
Dist.  
XhmikosR committed
138
139
140
141
142
  if (!element) {
    return 0;
  } // Get transition-duration of the element


XhmikosR's avatar
XhmikosR committed
143
  var _window$getComputedSt = window.getComputedStyle(element),
XhmikosR's avatar
Dist.  
XhmikosR committed
144
145
146
      transitionDuration = _window$getComputedSt.transitionDuration,
      transitionDelay = _window$getComputedSt.transitionDelay;

XhmikosR's avatar
XhmikosR committed
147
148
  var floatTransitionDuration = parseFloat(transitionDuration);
  var floatTransitionDelay = parseFloat(transitionDelay); // Return 0 if element or transition duration is not found
XhmikosR's avatar
Dist.  
XhmikosR committed
149
150
151
152
153
154
155
156
157
158
159

  if (!floatTransitionDuration && !floatTransitionDelay) {
    return 0;
  } // If multiple durations are defined, take the first


  transitionDuration = transitionDuration.split(',')[0];
  transitionDelay = transitionDelay.split(',')[0];
  return (parseFloat(transitionDuration) + parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER;
};

XhmikosR's avatar
XhmikosR committed
160
var triggerTransitionEnd = function triggerTransitionEnd(element) {
XhmikosR's avatar
XhmikosR committed
161
  element.dispatchEvent(new Event(TRANSITION_END));
XhmikosR's avatar
Dist.  
XhmikosR committed
162
163
};

XhmikosR's avatar
XhmikosR committed
164
165
166
var isElement = function isElement(obj) {
  return (obj[0] || obj).nodeType;
};
XhmikosR's avatar
Dist.  
XhmikosR committed
167

XhmikosR's avatar
XhmikosR committed
168
169
170
171
var emulateTransitionEnd = function emulateTransitionEnd(element, duration) {
  var called = false;
  var durationPadding = 5;
  var emulatedDuration = duration + durationPadding;
XhmikosR's avatar
Dist.  
XhmikosR committed
172
173
174
175
176
177
178

  function listener() {
    called = true;
    element.removeEventListener(TRANSITION_END, listener);
  }

  element.addEventListener(TRANSITION_END, listener);
XhmikosR's avatar
XhmikosR committed
179
  setTimeout(function () {
XhmikosR's avatar
Dist.  
XhmikosR committed
180
181
182
183
184
185
    if (!called) {
      triggerTransitionEnd(element);
    }
  }, emulatedDuration);
};

XhmikosR's avatar
XhmikosR committed
186
187
188
189
190
var typeCheckConfig = function typeCheckConfig(componentName, config, configTypes) {
  Object.keys(configTypes).forEach(function (property) {
    var expectedTypes = configTypes[property];
    var value = config[property];
    var valueType = value && isElement(value) ? 'element' : toType(value);
XhmikosR's avatar
Dist.  
XhmikosR committed
191
192

    if (!new RegExp(expectedTypes).test(valueType)) {
XhmikosR's avatar
XhmikosR committed
193
      throw new Error(componentName.toUpperCase() + ": " + ("Option \"" + property + "\" provided type \"" + valueType + "\" ") + ("but expected type \"" + expectedTypes + "\"."));
XhmikosR's avatar
Dist.  
XhmikosR committed
194
195
196
197
    }
  });
};

XhmikosR's avatar
XhmikosR committed
198
var isVisible = function isVisible(element) {
XhmikosR's avatar
Dist.  
XhmikosR committed
199
200
201
202
203
  if (!element) {
    return false;
  }

  if (element.style && element.parentNode && element.parentNode.style) {
XhmikosR's avatar
XhmikosR committed
204
205
206
    var elementStyle = getComputedStyle(element);
    var parentNodeStyle = getComputedStyle(element.parentNode);
    return elementStyle.display !== 'none' && parentNodeStyle.display !== 'none' && elementStyle.visibility !== 'hidden';
XhmikosR's avatar
Dist.  
XhmikosR committed
207
208
209
210
211
  }

  return false;
};

XhmikosR's avatar
XhmikosR committed
212
var findShadowRoot = function findShadowRoot(element) {
XhmikosR's avatar
Dist.  
XhmikosR committed
213
214
215
216
217
218
  if (!document.documentElement.attachShadow) {
    return null;
  } // Can find the shadow root otherwise it'll return the document


  if (typeof element.getRootNode === 'function') {
XhmikosR's avatar
XhmikosR committed
219
    var root = element.getRootNode();
XhmikosR's avatar
Dist.  
XhmikosR committed
220
221
222
223
224
225
226
227
228
229
230
231
232
    return root instanceof ShadowRoot ? root : null;
  }

  if (element instanceof ShadowRoot) {
    return element;
  } // when we don't find a shadow root


  if (!element.parentNode) {
    return null;
  }

  return findShadowRoot(element.parentNode);
XhmikosR's avatar
XhmikosR committed
233
};
XhmikosR's avatar
Dist.  
XhmikosR committed
234

XhmikosR's avatar
XhmikosR committed
235
236
237
var noop = function noop() {
  return function () {};
};
XhmikosR's avatar
Dist.  
XhmikosR committed
238

XhmikosR's avatar
XhmikosR committed
239
240
241
var reflow = function reflow(element) {
  return element.offsetHeight;
};
XhmikosR's avatar
Dist.  
XhmikosR committed
242

XhmikosR's avatar
XhmikosR committed
243
244
245
246
247
248
249
250
251
252
253
var getjQuery = function getjQuery() {
  var _window = window,
      jQuery = _window.jQuery;

  if (jQuery && !document.body.hasAttribute('data-no-jquery')) {
    return jQuery;
  }

  return null;
};

XhmikosR's avatar
Dist.  
XhmikosR committed
254
255
/**
 * --------------------------------------------------------------------------
256
 * Bootstrap (v5.0.0-alpha1): dom/data.js
XhmikosR's avatar
Dist.  
XhmikosR committed
257
258
259
260
261
262
263
264
265
 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
 * --------------------------------------------------------------------------
 */

/**
 * ------------------------------------------------------------------------
 * Constants
 * ------------------------------------------------------------------------
 */
XhmikosR's avatar
XhmikosR committed
266
267
268
var mapData = function () {
  var storeData = {};
  var id = 1;
XhmikosR's avatar
Dist.  
XhmikosR committed
269
  return {
XhmikosR's avatar
XhmikosR committed
270
    set: function set(element, key, data) {
XhmikosR's avatar
Dist.  
XhmikosR committed
271
272
      if (typeof element.key === 'undefined') {
        element.key = {
XhmikosR's avatar
XhmikosR committed
273
274
          key: key,
          id: id
XhmikosR's avatar
Dist.  
XhmikosR committed
275
276
277
278
279
280
        };
        id++;
      }

      storeData[element.key.id] = data;
    },
XhmikosR's avatar
XhmikosR committed
281
    get: function get(element, key) {
XhmikosR's avatar
Dist.  
XhmikosR committed
282
283
284
285
      if (!element || typeof element.key === 'undefined') {
        return null;
      }

XhmikosR's avatar
XhmikosR committed
286
      var keyProperties = element.key;
XhmikosR's avatar
Dist.  
XhmikosR committed
287
288
289
290
291
292
293

      if (keyProperties.key === key) {
        return storeData[keyProperties.id];
      }

      return null;
    },
XhmikosR's avatar
XhmikosR committed
294
    delete: function _delete(element, key) {
XhmikosR's avatar
Dist.  
XhmikosR committed
295
296
297
298
      if (typeof element.key === 'undefined') {
        return;
      }

XhmikosR's avatar
XhmikosR committed
299
      var keyProperties = element.key;
XhmikosR's avatar
Dist.  
XhmikosR committed
300
301
302
303
304
305
306

      if (keyProperties.key === key) {
        delete storeData[keyProperties.id];
        delete element.key;
      }
    }
  };
XhmikosR's avatar
XhmikosR committed
307
}();
XhmikosR's avatar
Dist.  
XhmikosR committed
308

XhmikosR's avatar
XhmikosR committed
309
310
var Data = {
  setData: function setData(instance, key, data) {
XhmikosR's avatar
Dist.  
XhmikosR committed
311
312
    mapData.set(instance, key, data);
  },
XhmikosR's avatar
XhmikosR committed
313
  getData: function getData(instance, key) {
XhmikosR's avatar
Dist.  
XhmikosR committed
314
315
    return mapData.get(instance, key);
  },
XhmikosR's avatar
XhmikosR committed
316
  removeData: function removeData(instance, key) {
XhmikosR's avatar
Dist.  
XhmikosR committed
317
318
    mapData.delete(instance, key);
  }
XhmikosR's avatar
XhmikosR committed
319
};
XhmikosR's avatar
Dist.  
XhmikosR committed
320

XhmikosR's avatar
XhmikosR committed
321
322
/* istanbul ignore file */
var find = Element.prototype.querySelectorAll;
XhmikosR's avatar
XhmikosR committed
323
var findOne = Element.prototype.querySelector; // MSEdge resets defaultPrevented flag upon dispatchEvent call if at least one listener is attached
XhmikosR's avatar
Dist.  
XhmikosR committed
324

XhmikosR's avatar
XhmikosR committed
325
var defaultPreventedPreservedOnDispatch = function () {
XhmikosR's avatar
XhmikosR committed
326
  var e = new CustomEvent('Bootstrap', {
XhmikosR's avatar
XhmikosR committed
327
328
329
330
331
332
333
334
335
336
    cancelable: true
  });
  var element = document.createElement('div');
  element.addEventListener('Bootstrap', function () {
    return null;
  });
  e.preventDefault();
  element.dispatchEvent(e);
  return e.defaultPrevented;
}();
XhmikosR's avatar
Dist.  
XhmikosR committed
337

XhmikosR's avatar
XhmikosR committed
338
var scopeSelectorRegex = /:scope\b/;
XhmikosR's avatar
Dist.  
XhmikosR committed
339

XhmikosR's avatar
XhmikosR committed
340
341
var supportScopeQuery = function () {
  var element = document.createElement('div');
XhmikosR's avatar
Dist.  
XhmikosR committed
342

XhmikosR's avatar
XhmikosR committed
343
344
  try {
    element.querySelectorAll(':scope *');
XhmikosR's avatar
XhmikosR committed
345
  } catch (_) {
XhmikosR's avatar
XhmikosR committed
346
347
    return false;
  }
XhmikosR's avatar
Dist.  
XhmikosR committed
348

XhmikosR's avatar
XhmikosR committed
349
350
351
352
353
354
355
356
357
358
  return true;
}();

if (!supportScopeQuery) {
  find = function find(selector) {
    if (!scopeSelectorRegex.test(selector)) {
      return this.querySelectorAll(selector);
    }

    var hasId = Boolean(this.id);
XhmikosR's avatar
Dist.  
XhmikosR committed
359

XhmikosR's avatar
XhmikosR committed
360
361
362
363
364
    if (!hasId) {
      this.id = getUID('scope');
    }

    var nodeList = null;
XhmikosR's avatar
Dist.  
XhmikosR committed
365

XhmikosR's avatar
XhmikosR committed
366
367
368
369
370
371
    try {
      selector = selector.replace(scopeSelectorRegex, "#" + this.id);
      nodeList = this.querySelectorAll(selector);
    } finally {
      if (!hasId) {
        this.removeAttribute('id');
XhmikosR's avatar
Dist.  
XhmikosR committed
372
      }
XhmikosR's avatar
XhmikosR committed
373
    }
XhmikosR's avatar
Dist.  
XhmikosR committed
374

XhmikosR's avatar
XhmikosR committed
375
376
    return nodeList;
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
377

XhmikosR's avatar
XhmikosR committed
378
379
380
381
382
383
384
385
386
387
388
389
  findOne = function findOne(selector) {
    if (!scopeSelectorRegex.test(selector)) {
      return this.querySelector(selector);
    }

    var matches = find.call(this, selector);

    if (typeof matches[0] !== 'undefined') {
      return matches[0];
    }

    return null;
XhmikosR's avatar
Dist.  
XhmikosR committed
390
  };
XhmikosR's avatar
XhmikosR committed
391
}
XhmikosR's avatar
Dist.  
XhmikosR committed
392
393
394

/**
 * --------------------------------------------------------------------------
395
 * Bootstrap (v5.0.0-alpha1): dom/event-handler.js
XhmikosR's avatar
Dist.  
XhmikosR committed
396
397
398
399
400
401
402
403
404
 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
 * --------------------------------------------------------------------------
 */
/**
 * ------------------------------------------------------------------------
 * Constants
 * ------------------------------------------------------------------------
 */

XhmikosR's avatar
XhmikosR committed
405
var $ = getjQuery();
XhmikosR's avatar
XhmikosR committed
406
407
408
409
var namespaceRegex = /[^.]*(?=\..*)\.|.*/;
var stripNameRegex = /\..*/;
var stripUidRegex = /::\d+$/;
var eventRegistry = {}; // Events storage
XhmikosR's avatar
Dist.  
XhmikosR committed
410

XhmikosR's avatar
XhmikosR committed
411
412
var uidEvent = 1;
var customEvents = {
XhmikosR's avatar
Dist.  
XhmikosR committed
413
414
415
  mouseenter: 'mouseover',
  mouseleave: 'mouseout'
};
XhmikosR's avatar
XhmikosR committed
416
var nativeEvents = ['click', 'dblclick', 'mouseup', 'mousedown', 'contextmenu', 'mousewheel', 'DOMMouseScroll', 'mouseover', 'mouseout', 'mousemove', 'selectstart', 'selectend', 'keydown', 'keypress', 'keyup', 'orientationchange', 'touchstart', 'touchmove', 'touchend', 'touchcancel', 'pointerdown', 'pointermove', 'pointerup', 'pointerleave', 'pointercancel', 'gesturestart', 'gesturechange', 'gestureend', 'focus', 'blur', 'change', 'reset', 'select', 'submit', 'focusin', 'focusout', 'load', 'unload', 'beforeunload', 'resize', 'move', 'DOMContentLoaded', 'readystatechange', 'error', 'abort', 'scroll'];
XhmikosR's avatar
Dist.  
XhmikosR committed
417
418
419
420
421
422
423
/**
 * ------------------------------------------------------------------------
 * Private methods
 * ------------------------------------------------------------------------
 */

function getUidEvent(element, uid) {
XhmikosR's avatar
XhmikosR committed
424
  return uid && uid + "::" + uidEvent++ || element.uidEvent || uidEvent++;
XhmikosR's avatar
Dist.  
XhmikosR committed
425
426
427
}

function getEvent(element) {
XhmikosR's avatar
XhmikosR committed
428
  var uid = getUidEvent(element);
XhmikosR's avatar
Dist.  
XhmikosR committed
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
  element.uidEvent = uid;
  eventRegistry[uid] = eventRegistry[uid] || {};
  return eventRegistry[uid];
}

function bootstrapHandler(element, fn) {
  return function handler(event) {
    if (handler.oneOff) {
      EventHandler.off(element, event.type, fn);
    }

    return fn.apply(element, [event]);
  };
}

function bootstrapDelegationHandler(element, selector, fn) {
  return function handler(event) {
XhmikosR's avatar
XhmikosR committed
446
    var domElements = element.querySelectorAll(selector);
XhmikosR's avatar
Dist.  
XhmikosR committed
447

XhmikosR's avatar
XhmikosR committed
448
449
    for (var target = event.target; target && target !== this; target = target.parentNode) {
      for (var i = domElements.length; i--;) {
XhmikosR's avatar
Dist.  
XhmikosR committed
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
        if (domElements[i] === target) {
          if (handler.oneOff) {
            EventHandler.off(element, event.type, fn);
          }

          return fn.apply(target, [event]);
        }
      }
    } // To please ESLint


    return null;
  };
}

function findHandler(events, handler, delegationSelector) {
  if (delegationSelector === void 0) {
    delegationSelector = null;
  }

Mark Otto's avatar
dist v5    
Mark Otto committed
470
471
472
473
  var uidEventList = Object.keys(events);

  for (var i = 0, len = uidEventList.length; i < len; i++) {
    var event = events[uidEventList[i]];
XhmikosR's avatar
Dist.  
XhmikosR committed
474
475

    if (event.originalHandler === handler && event.delegationSelector === delegationSelector) {
Mark Otto's avatar
dist v5    
Mark Otto committed
476
      return event;
XhmikosR's avatar
Dist.  
XhmikosR committed
477
478
479
480
481
482
483
    }
  }

  return null;
}

function normalizeParams(originalTypeEvent, handler, delegationFn) {
XhmikosR's avatar
XhmikosR committed
484
485
  var delegation = typeof handler === 'string';
  var originalHandler = delegation ? delegationFn : handler; // allow to get the native events from namespaced events ('click.bs.button' --> 'click')
XhmikosR's avatar
Dist.  
XhmikosR committed
486

XhmikosR's avatar
XhmikosR committed
487
488
  var typeEvent = originalTypeEvent.replace(stripNameRegex, '');
  var custom = customEvents[typeEvent];
XhmikosR's avatar
Dist.  
XhmikosR committed
489
490
491
492
493

  if (custom) {
    typeEvent = custom;
  }

XhmikosR's avatar
XhmikosR committed
494
  var isNative = nativeEvents.indexOf(typeEvent) > -1;
XhmikosR's avatar
Dist.  
XhmikosR committed
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512

  if (!isNative) {
    typeEvent = originalTypeEvent;
  }

  return [delegation, originalHandler, typeEvent];
}

function addHandler(element, originalTypeEvent, handler, delegationFn, oneOff) {
  if (typeof originalTypeEvent !== 'string' || !element) {
    return;
  }

  if (!handler) {
    handler = delegationFn;
    delegationFn = null;
  }

XhmikosR's avatar
XhmikosR committed
513
514
515
516
  var _normalizeParams = normalizeParams(originalTypeEvent, handler, delegationFn),
      delegation = _normalizeParams[0],
      originalHandler = _normalizeParams[1],
      typeEvent = _normalizeParams[2];
XhmikosR's avatar
Dist.  
XhmikosR committed
517

XhmikosR's avatar
XhmikosR committed
518
519
520
  var events = getEvent(element);
  var handlers = events[typeEvent] || (events[typeEvent] = {});
  var previousFn = findHandler(handlers, originalHandler, delegation ? handler : null);
XhmikosR's avatar
Dist.  
XhmikosR committed
521
522
523
524
525
526

  if (previousFn) {
    previousFn.oneOff = previousFn.oneOff && oneOff;
    return;
  }

XhmikosR's avatar
XhmikosR committed
527
528
  var uid = getUidEvent(originalHandler, originalTypeEvent.replace(namespaceRegex, ''));
  var fn = delegation ? bootstrapDelegationHandler(element, handler, delegationFn) : bootstrapHandler(element, handler);
XhmikosR's avatar
Dist.  
XhmikosR committed
529
530
531
532
533
534
535
536
537
  fn.delegationSelector = delegation ? handler : null;
  fn.originalHandler = originalHandler;
  fn.oneOff = oneOff;
  fn.uidEvent = uid;
  handlers[uid] = fn;
  element.addEventListener(typeEvent, fn, delegation);
}

function removeHandler(element, events, typeEvent, handler, delegationSelector) {
XhmikosR's avatar
XhmikosR committed
538
  var fn = findHandler(events[typeEvent], handler, delegationSelector);
XhmikosR's avatar
Dist.  
XhmikosR committed
539

Mark Otto's avatar
dist v5    
Mark Otto committed
540
  if (!fn) {
XhmikosR's avatar
Dist.  
XhmikosR committed
541
542
543
544
545
546
547
548
    return;
  }

  element.removeEventListener(typeEvent, fn, Boolean(delegationSelector));
  delete events[typeEvent][fn.uidEvent];
}

function removeNamespacedHandlers(element, events, typeEvent, namespace) {
XhmikosR's avatar
XhmikosR committed
549
550
  var storeElementEvent = events[typeEvent] || {};
  Object.keys(storeElementEvent).forEach(function (handlerKey) {
XhmikosR's avatar
Dist.  
XhmikosR committed
551
    if (handlerKey.indexOf(namespace) > -1) {
XhmikosR's avatar
XhmikosR committed
552
      var event = storeElementEvent[handlerKey];
XhmikosR's avatar
Dist.  
XhmikosR committed
553
554
555
556
557
      removeHandler(element, events, typeEvent, event.originalHandler, event.delegationSelector);
    }
  });
}

XhmikosR's avatar
XhmikosR committed
558
559
var EventHandler = {
  on: function on(element, event, handler, delegationFn) {
XhmikosR's avatar
Dist.  
XhmikosR committed
560
561
    addHandler(element, event, handler, delegationFn, false);
  },
XhmikosR's avatar
XhmikosR committed
562
  one: function one(element, event, handler, delegationFn) {
XhmikosR's avatar
Dist.  
XhmikosR committed
563
564
    addHandler(element, event, handler, delegationFn, true);
  },
XhmikosR's avatar
XhmikosR committed
565
  off: function off(element, originalTypeEvent, handler, delegationFn) {
XhmikosR's avatar
Dist.  
XhmikosR committed
566
567
568
569
    if (typeof originalTypeEvent !== 'string' || !element) {
      return;
    }

XhmikosR's avatar
XhmikosR committed
570
571
572
573
    var _normalizeParams2 = normalizeParams(originalTypeEvent, handler, delegationFn),
        delegation = _normalizeParams2[0],
        originalHandler = _normalizeParams2[1],
        typeEvent = _normalizeParams2[2];
XhmikosR's avatar
Dist.  
XhmikosR committed
574

XhmikosR's avatar
XhmikosR committed
575
576
577
    var inNamespace = typeEvent !== originalTypeEvent;
    var events = getEvent(element);
    var isNamespace = originalTypeEvent.charAt(0) === '.';
XhmikosR's avatar
Dist.  
XhmikosR committed
578
579
580
581
582
583
584
585
586
587
588
589

    if (typeof originalHandler !== 'undefined') {
      // Simplest case: handler is passed, remove that listener ONLY.
      if (!events || !events[typeEvent]) {
        return;
      }

      removeHandler(element, events, typeEvent, originalHandler, delegation ? handler : null);
      return;
    }

    if (isNamespace) {
XhmikosR's avatar
XhmikosR committed
590
      Object.keys(events).forEach(function (elementEvent) {
XhmikosR's avatar
XhmikosR committed
591
        removeNamespacedHandlers(element, events, elementEvent, originalTypeEvent.slice(1));
XhmikosR's avatar
Dist.  
XhmikosR committed
592
593
594
      });
    }

XhmikosR's avatar
XhmikosR committed
595
596
597
    var storeElementEvent = events[typeEvent] || {};
    Object.keys(storeElementEvent).forEach(function (keyHandlers) {
      var handlerKey = keyHandlers.replace(stripUidRegex, '');
XhmikosR's avatar
Dist.  
XhmikosR committed
598
599

      if (!inNamespace || originalTypeEvent.indexOf(handlerKey) > -1) {
XhmikosR's avatar
XhmikosR committed
600
        var event = storeElementEvent[keyHandlers];
XhmikosR's avatar
Dist.  
XhmikosR committed
601
602
603
604
        removeHandler(element, events, typeEvent, event.originalHandler, event.delegationSelector);
      }
    });
  },
XhmikosR's avatar
XhmikosR committed
605
  trigger: function trigger(element, event, args) {
XhmikosR's avatar
Dist.  
XhmikosR committed
606
607
608
609
    if (typeof event !== 'string' || !element) {
      return null;
    }

XhmikosR's avatar
XhmikosR committed
610
611
612
613
614
615
616
617
    var typeEvent = event.replace(stripNameRegex, '');
    var inNamespace = event !== typeEvent;
    var isNative = nativeEvents.indexOf(typeEvent) > -1;
    var jQueryEvent;
    var bubbles = true;
    var nativeDispatch = true;
    var defaultPrevented = false;
    var evt = null;
XhmikosR's avatar
Dist.  
XhmikosR committed
618

XhmikosR's avatar
XhmikosR committed
619
620
621
    if (inNamespace && $) {
      jQueryEvent = $.Event(event, args);
      $(element).trigger(jQueryEvent);
XhmikosR's avatar
Dist.  
XhmikosR committed
622
623
624
625
626
627
628
629
630
      bubbles = !jQueryEvent.isPropagationStopped();
      nativeDispatch = !jQueryEvent.isImmediatePropagationStopped();
      defaultPrevented = jQueryEvent.isDefaultPrevented();
    }

    if (isNative) {
      evt = document.createEvent('HTMLEvents');
      evt.initEvent(typeEvent, bubbles, true);
    } else {
XhmikosR's avatar
XhmikosR committed
631
      evt = new CustomEvent(event, {
XhmikosR's avatar
XhmikosR committed
632
        bubbles: bubbles,
XhmikosR's avatar
Dist.  
XhmikosR committed
633
634
635
636
637
638
        cancelable: true
      });
    } // merge custom informations in our event


    if (typeof args !== 'undefined') {
XhmikosR's avatar
XhmikosR committed
639
      Object.keys(args).forEach(function (key) {
XhmikosR's avatar
Dist.  
XhmikosR committed
640
        Object.defineProperty(evt, key, {
XhmikosR's avatar
XhmikosR committed
641
          get: function get() {
XhmikosR's avatar
Dist.  
XhmikosR committed
642
643
644
645
646
647
648
649
650
            return args[key];
          }
        });
      });
    }

    if (defaultPrevented) {
      evt.preventDefault();

XhmikosR's avatar
XhmikosR committed
651
      if (!defaultPreventedPreservedOnDispatch) {
XhmikosR's avatar
Dist.  
XhmikosR committed
652
        Object.defineProperty(evt, 'defaultPrevented', {
XhmikosR's avatar
XhmikosR committed
653
654
655
          get: function get() {
            return true;
          }
XhmikosR's avatar
Dist.  
XhmikosR committed
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
        });
      }
    }

    if (nativeDispatch) {
      element.dispatchEvent(evt);
    }

    if (evt.defaultPrevented && typeof jQueryEvent !== 'undefined') {
      jQueryEvent.preventDefault();
    }

    return evt;
  }
};

/**
 * ------------------------------------------------------------------------
 * Constants
 * ------------------------------------------------------------------------
 */

XhmikosR's avatar
XhmikosR committed
678
var NAME = 'alert';
679
var VERSION = '5.0.0-alpha1';
XhmikosR's avatar
XhmikosR committed
680
681
682
var DATA_KEY = 'bs.alert';
var EVENT_KEY = "." + DATA_KEY;
var DATA_API_KEY = '.data-api';
XhmikosR's avatar
XhmikosR committed
683
684
685
686
687
688
689
var SELECTOR_DISMISS = '[data-dismiss="alert"]';
var EVENT_CLOSE = "close" + EVENT_KEY;
var EVENT_CLOSED = "closed" + EVENT_KEY;
var EVENT_CLICK_DATA_API = "click" + EVENT_KEY + DATA_API_KEY;
var CLASSNAME_ALERT = 'alert';
var CLASSNAME_FADE = 'fade';
var CLASSNAME_SHOW = 'show';
XhmikosR's avatar
XhmikosR committed
690
691
692
693
694
/**
 * ------------------------------------------------------------------------
 * Class Definition
 * ------------------------------------------------------------------------
 */
XhmikosR's avatar
Dist.  
XhmikosR committed
695

XhmikosR's avatar
XhmikosR committed
696
var Alert = /*#__PURE__*/function () {
XhmikosR's avatar
XhmikosR committed
697
  function Alert(element) {
XhmikosR's avatar
Dist.  
XhmikosR committed
698
699
700
701
702
703
704
705
    this._element = element;

    if (this._element) {
      Data.setData(element, DATA_KEY, this);
    }
  } // Getters


XhmikosR's avatar
XhmikosR committed
706
  var _proto = Alert.prototype;
XhmikosR's avatar
Dist.  
XhmikosR committed
707

XhmikosR's avatar
XhmikosR committed
708
709
710
  // Public
  _proto.close = function close(element) {
    var rootElement = this._element;
XhmikosR's avatar
Dist.  
XhmikosR committed
711
712
713
714
715

    if (element) {
      rootElement = this._getRootElement(element);
    }

XhmikosR's avatar
XhmikosR committed
716
    var customEvent = this._triggerCloseEvent(rootElement);
XhmikosR's avatar
Dist.  
XhmikosR committed
717
718
719
720
721
722

    if (customEvent === null || customEvent.defaultPrevented) {
      return;
    }

    this._removeElement(rootElement);
XhmikosR's avatar
XhmikosR committed
723
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
724

XhmikosR's avatar
XhmikosR committed
725
  _proto.dispose = function dispose() {
XhmikosR's avatar
Dist.  
XhmikosR committed
726
727
728
    Data.removeData(this._element, DATA_KEY);
    this._element = null;
  } // Private
XhmikosR's avatar
XhmikosR committed
729
  ;
XhmikosR's avatar
Dist.  
XhmikosR committed
730

XhmikosR's avatar
XhmikosR committed
731
  _proto._getRootElement = function _getRootElement(element) {
XhmikosR's avatar
XhmikosR committed
732
    return getElementFromSelector(element) || element.closest("." + CLASSNAME_ALERT);
XhmikosR's avatar
XhmikosR committed
733
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
734

XhmikosR's avatar
XhmikosR committed
735
  _proto._triggerCloseEvent = function _triggerCloseEvent(element) {
XhmikosR's avatar
XhmikosR committed
736
    return EventHandler.trigger(element, EVENT_CLOSE);
XhmikosR's avatar
XhmikosR committed
737
738
739
740
  };

  _proto._removeElement = function _removeElement(element) {
    var _this = this;
XhmikosR's avatar
Dist.  
XhmikosR committed
741

XhmikosR's avatar
XhmikosR committed
742
    element.classList.remove(CLASSNAME_SHOW);
XhmikosR's avatar
Dist.  
XhmikosR committed
743

XhmikosR's avatar
XhmikosR committed
744
    if (!element.classList.contains(CLASSNAME_FADE)) {
XhmikosR's avatar
Dist.  
XhmikosR committed
745
746
747
748
749
      this._destroyElement(element);

      return;
    }

XhmikosR's avatar
XhmikosR committed
750
    var transitionDuration = getTransitionDurationFromElement(element);
751
752
    EventHandler.one(element, TRANSITION_END, function () {
      return _this._destroyElement(element);
XhmikosR's avatar
XhmikosR committed
753
    });
XhmikosR's avatar
Dist.  
XhmikosR committed
754
    emulateTransitionEnd(element, transitionDuration);
XhmikosR's avatar
XhmikosR committed
755
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
756

XhmikosR's avatar
XhmikosR committed
757
  _proto._destroyElement = function _destroyElement(element) {
XhmikosR's avatar
Dist.  
XhmikosR committed
758
759
760
761
    if (element.parentNode) {
      element.parentNode.removeChild(element);
    }

XhmikosR's avatar
XhmikosR committed
762
    EventHandler.trigger(element, EVENT_CLOSED);
XhmikosR's avatar
Dist.  
XhmikosR committed
763
  } // Static
XhmikosR's avatar
XhmikosR committed
764
  ;
XhmikosR's avatar
Dist.  
XhmikosR committed
765

XhmikosR's avatar
XhmikosR committed
766
  Alert.jQueryInterface = function jQueryInterface(config) {
XhmikosR's avatar
Dist.  
XhmikosR committed
767
    return this.each(function () {
XhmikosR's avatar
XhmikosR committed
768
      var data = Data.getData(this, DATA_KEY);
XhmikosR's avatar
Dist.  
XhmikosR committed
769
770
771
772
773
774
775
776
777

      if (!data) {
        data = new Alert(this);
      }

      if (config === 'close') {
        data[config](this);
      }
    });
XhmikosR's avatar
XhmikosR committed
778
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
779

XhmikosR's avatar
XhmikosR committed
780
  Alert.handleDismiss = function handleDismiss(alertInstance) {
XhmikosR's avatar
Dist.  
XhmikosR committed
781
782
783
784
785
786
787
    return function (event) {
      if (event) {
        event.preventDefault();
      }

      alertInstance.close(this);
    };
XhmikosR's avatar
XhmikosR committed
788
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
789

XhmikosR's avatar
XhmikosR committed
790
  Alert.getInstance = function getInstance(element) {
XhmikosR's avatar
Dist.  
XhmikosR committed
791
    return Data.getData(element, DATA_KEY);
XhmikosR's avatar
XhmikosR committed
792
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
793

XhmikosR's avatar
XhmikosR committed
794
795
796
797
798
799
800
801
802
  _createClass(Alert, null, [{
    key: "VERSION",
    get: function get() {
      return VERSION;
    }
  }]);

  return Alert;
}();
XhmikosR's avatar
Dist.  
XhmikosR committed
803
804
805
806
807
808
809
/**
 * ------------------------------------------------------------------------
 * Data Api implementation
 * ------------------------------------------------------------------------
 */


XhmikosR's avatar
XhmikosR committed
810
EventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DISMISS, Alert.handleDismiss(new Alert()));
XhmikosR's avatar
XhmikosR committed
811
var $$1 = getjQuery();
XhmikosR's avatar
Dist.  
XhmikosR committed
812
813
814
815
816
817
818
/**
 * ------------------------------------------------------------------------
 * jQuery
 * ------------------------------------------------------------------------
 * add .alert to jQuery only if jQuery is present
 */

819
820
/* istanbul ignore if */

XhmikosR's avatar
XhmikosR committed
821
822
823
824
if ($$1) {
  var JQUERY_NO_CONFLICT = $$1.fn[NAME];
  $$1.fn[NAME] = Alert.jQueryInterface;
  $$1.fn[NAME].Constructor = Alert;
XhmikosR's avatar
Dist.  
XhmikosR committed
825

XhmikosR's avatar
XhmikosR committed
826
827
828
  $$1.fn[NAME].noConflict = function () {
    $$1.fn[NAME] = JQUERY_NO_CONFLICT;
    return Alert.jQueryInterface;
XhmikosR's avatar
Dist.  
XhmikosR committed
829
830
831
  };
}

XhmikosR's avatar
XhmikosR committed
832
833
/**
 * --------------------------------------------------------------------------
834
 * Bootstrap (v5.0.0-alpha1): dom/selector-engine.js
XhmikosR's avatar
XhmikosR committed
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
 * --------------------------------------------------------------------------
 */
/**
 * ------------------------------------------------------------------------
 * Constants
 * ------------------------------------------------------------------------
 */

var NODE_TEXT = 3;
var SelectorEngine = {
  matches: function matches(element, selector) {
    return element.matches(selector);
  },
  find: function find$1(selector, element) {
    var _ref;

    if (element === void 0) {
      element = document.documentElement;
    }

    return (_ref = []).concat.apply(_ref, find.call(element, selector));
  },
  findOne: function findOne$1(selector, element) {
    if (element === void 0) {
      element = document.documentElement;
    }

    return findOne.call(element, selector);
  },
  children: function children(element, selector) {
    var _ref2;

    var children = (_ref2 = []).concat.apply(_ref2, element.children);

    return children.filter(function (child) {
      return child.matches(selector);
    });
  },
  parents: function parents(element, selector) {
    var parents = [];
    var ancestor = element.parentNode;

    while (ancestor && ancestor.nodeType === Node.ELEMENT_NODE && ancestor.nodeType !== NODE_TEXT) {
      if (this.matches(ancestor, selector)) {
        parents.push(ancestor);
      }

      ancestor = ancestor.parentNode;
    }

    return parents;
  },
  prev: function prev(element, selector) {
    var previous = element.previousElementSibling;

    while (previous) {
      if (previous.matches(selector)) {
        return [previous];
      }

      previous = previous.previousElementSibling;
    }

    return [];
  },
  next: function next(element, selector) {
    var next = element.nextElementSibling;

    while (next) {
      if (this.matches(next, selector)) {
        return [next];
      }

      next = next.nextElementSibling;
    }

    return [];
  }
};

XhmikosR's avatar
Dist.  
XhmikosR committed
916
917
918
919
920
921
/**
 * ------------------------------------------------------------------------
 * Constants
 * ------------------------------------------------------------------------
 */

XhmikosR's avatar
XhmikosR committed
922
var NAME$1 = 'button';
923
var VERSION$1 = '5.0.0-alpha1';
XhmikosR's avatar
XhmikosR committed
924
925
926
var DATA_KEY$1 = 'bs.button';
var EVENT_KEY$1 = "." + DATA_KEY$1;
var DATA_API_KEY$1 = '.data-api';
XhmikosR's avatar
XhmikosR committed
927
928
929
930
931
932
933
934
935
936
937
var CLASS_NAME_ACTIVE = 'active';
var CLASS_NAME_DISABLED = 'disabled';
var CLASS_NAME_FOCUS = 'focus';
var SELECTOR_DATA_TOGGLE_CARROT = '[data-toggle^="button"]';
var SELECTOR_DATA_TOGGLE = '[data-toggle="buttons"]';
var SELECTOR_INPUT = 'input:not([type="hidden"])';
var SELECTOR_ACTIVE = '.active';
var SELECTOR_BUTTON = '.btn';
var EVENT_CLICK_DATA_API$1 = "click" + EVENT_KEY$1 + DATA_API_KEY$1;
var EVENT_FOCUS_DATA_API = "focus" + EVENT_KEY$1 + DATA_API_KEY$1;
var EVENT_BLUR_DATA_API = "blur" + EVENT_KEY$1 + DATA_API_KEY$1;
XhmikosR's avatar
XhmikosR committed
938
939
940
941
942
/**
 * ------------------------------------------------------------------------
 * Class Definition
 * ------------------------------------------------------------------------
 */
XhmikosR's avatar
Dist.  
XhmikosR committed
943

XhmikosR's avatar
XhmikosR committed
944
var Button = /*#__PURE__*/function () {
XhmikosR's avatar
XhmikosR committed
945
  function Button(element) {
XhmikosR's avatar
Dist.  
XhmikosR committed
946
947
948
949
950
    this._element = element;
    Data.setData(element, DATA_KEY$1, this);
  } // Getters


XhmikosR's avatar
XhmikosR committed
951
  var _proto = Button.prototype;
XhmikosR's avatar
Dist.  
XhmikosR committed
952

XhmikosR's avatar
XhmikosR committed
953
954
955
956
  // Public
  _proto.toggle = function toggle() {
    var triggerChangeEvent = true;
    var addAriaPressed = true;
XhmikosR's avatar
XhmikosR committed
957
958

    var rootElement = this._element.closest(SELECTOR_DATA_TOGGLE);
XhmikosR's avatar
Dist.  
XhmikosR committed
959
960

    if (rootElement) {
XhmikosR's avatar
XhmikosR committed
961
      var input = SelectorEngine.findOne(SELECTOR_INPUT, this._element);
XhmikosR's avatar
Dist.  
XhmikosR committed
962

XhmikosR's avatar
XhmikosR committed
963
      if (input && input.type === 'radio') {
XhmikosR's avatar
XhmikosR committed
964
        if (input.checked && this._element.classList.contains(CLASS_NAME_ACTIVE)) {
XhmikosR's avatar
XhmikosR committed
965
966
          triggerChangeEvent = false;
        } else {
XhmikosR's avatar
XhmikosR committed
967
          var activeElement = SelectorEngine.findOne(SELECTOR_ACTIVE, rootElement);
XhmikosR's avatar
Dist.  
XhmikosR committed
968

XhmikosR's avatar
XhmikosR committed
969
          if (activeElement) {
XhmikosR's avatar
XhmikosR committed
970
            activeElement.classList.remove(CLASS_NAME_ACTIVE);
XhmikosR's avatar
Dist.  
XhmikosR committed
971
972
973
974
          }
        }

        if (triggerChangeEvent) {
XhmikosR's avatar
XhmikosR committed
975
          if (input.hasAttribute('disabled') || rootElement.hasAttribute('disabled') || input.classList.contains(CLASS_NAME_DISABLED) || rootElement.classList.contains(CLASS_NAME_DISABLED)) {
XhmikosR's avatar
Dist.  
XhmikosR committed
976
977
978
            return;
          }

XhmikosR's avatar
XhmikosR committed
979
          input.checked = !this._element.classList.contains(CLASS_NAME_ACTIVE);
XhmikosR's avatar
Dist.  
XhmikosR committed
980
981
982
983
984
985
986
987
988
          EventHandler.trigger(input, 'change');
        }

        input.focus();
        addAriaPressed = false;
      }
    }

    if (addAriaPressed) {
XhmikosR's avatar
XhmikosR committed
989
      this._element.setAttribute('aria-pressed', !this._element.classList.contains(CLASS_NAME_ACTIVE));
XhmikosR's avatar
Dist.  
XhmikosR committed
990
991
992
    }

    if (triggerChangeEvent) {
XhmikosR's avatar
XhmikosR committed
993
      this._element.classList.toggle(CLASS_NAME_ACTIVE);
XhmikosR's avatar
Dist.  
XhmikosR committed
994
    }
XhmikosR's avatar
XhmikosR committed
995
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
996

XhmikosR's avatar
XhmikosR committed
997
  _proto.dispose = function dispose() {
XhmikosR's avatar
Dist.  
XhmikosR committed
998
999
1000
    Data.removeData(this._element, DATA_KEY$1);
    this._element = null;
  } // Static
XhmikosR's avatar
XhmikosR committed
1001
  ;
XhmikosR's avatar
Dist.  
XhmikosR committed
1002

XhmikosR's avatar
XhmikosR committed
1003
  Button.jQueryInterface = function jQueryInterface(config) {
XhmikosR's avatar
Dist.  
XhmikosR committed
1004
    return this.each(function () {
XhmikosR's avatar
XhmikosR committed
1005
      var data = Data.getData(this, DATA_KEY$1);
XhmikosR's avatar
Dist.  
XhmikosR committed
1006
1007
1008
1009
1010
1011
1012
1013
1014

      if (!data) {
        data = new Button(this);
      }

      if (config === 'toggle') {
        data[config]();
      }
    });
XhmikosR's avatar
XhmikosR committed
1015
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
1016

XhmikosR's avatar
XhmikosR committed
1017
  Button.getInstance = function getInstance(element) {
XhmikosR's avatar
Dist.  
XhmikosR committed
1018
    return Data.getData(element, DATA_KEY$1);
XhmikosR's avatar
XhmikosR committed
1019
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
1020

XhmikosR's avatar
XhmikosR committed
1021
1022
1023
1024
1025
1026
1027
1028
1029
  _createClass(Button, null, [{
    key: "VERSION",
    get: function get() {
      return VERSION$1;
    }
  }]);

  return Button;
}();
XhmikosR's avatar
Dist.  
XhmikosR committed
1030
1031
1032
1033
1034
1035
1036
/**
 * ------------------------------------------------------------------------
 * Data Api implementation
 * ------------------------------------------------------------------------
 */


XhmikosR's avatar
XhmikosR committed
1037
EventHandler.on(document, EVENT_CLICK_DATA_API$1, SELECTOR_DATA_TOGGLE_CARROT, function (event) {
XhmikosR's avatar
Dist.  
XhmikosR committed
1038
  event.preventDefault();
XhmikosR's avatar
XhmikosR committed
1039
  var button = event.target.closest(SELECTOR_BUTTON);
XhmikosR's avatar
XhmikosR committed
1040
  var data = Data.getData(button, DATA_KEY$1);
XhmikosR's avatar
Dist.  
XhmikosR committed
1041
1042
1043
1044
1045
1046
1047

  if (!data) {
    data = new Button(button);
  }

  data.toggle();
});
XhmikosR's avatar
XhmikosR committed
1048
EventHandler.on(document, EVENT_FOCUS_DATA_API, SELECTOR_DATA_TOGGLE_CARROT, function (event) {
XhmikosR's avatar
XhmikosR committed
1049
  var button = event.target.closest(SELECTOR_BUTTON);
XhmikosR's avatar
XhmikosR committed
1050
1051

  if (button) {
XhmikosR's avatar
XhmikosR committed
1052
    button.classList.add(CLASS_NAME_FOCUS);
XhmikosR's avatar
XhmikosR committed
1053
  }
XhmikosR's avatar
Dist.  
XhmikosR committed
1054
});
XhmikosR's avatar
XhmikosR committed
1055
EventHandler.on(document, EVENT_BLUR_DATA_API, SELECTOR_DATA_TOGGLE_CARROT, function (event) {
XhmikosR's avatar
XhmikosR committed
1056
  var button = event.target.closest(SELECTOR_BUTTON);
XhmikosR's avatar
XhmikosR committed
1057
1058

  if (button) {
XhmikosR's avatar
XhmikosR committed
1059
    button.classList.remove(CLASS_NAME_FOCUS);
XhmikosR's avatar
XhmikosR committed
1060
  }
XhmikosR's avatar
Dist.  
XhmikosR committed
1061
});
XhmikosR's avatar
XhmikosR committed
1062
var $$2 = getjQuery();
XhmikosR's avatar
Dist.  
XhmikosR committed
1063
1064
1065
1066
1067
1068
1069
/**
 * ------------------------------------------------------------------------
 * jQuery
 * ------------------------------------------------------------------------
 * add .button to jQuery only if jQuery is present
 */

1070
1071
/* istanbul ignore if */

XhmikosR's avatar
XhmikosR committed
1072
1073
1074
1075
if ($$2) {
  var JQUERY_NO_CONFLICT$1 = $$2.fn[NAME$1];
  $$2.fn[NAME$1] = Button.jQueryInterface;
  $$2.fn[NAME$1].Constructor = Button;
XhmikosR's avatar
Dist.  
XhmikosR committed
1076

XhmikosR's avatar
XhmikosR committed
1077
1078
1079
  $$2.fn[NAME$1].noConflict = function () {
    $$2.fn[NAME$1] = JQUERY_NO_CONFLICT$1;
    return Button.jQueryInterface;
XhmikosR's avatar
Dist.  
XhmikosR committed
1080
1081
1082
1083
1084
  };
}

/**
 * --------------------------------------------------------------------------
1085
 * Bootstrap (v5.0.0-alpha1): dom/manipulator.js
XhmikosR's avatar
Dist.  
XhmikosR committed
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
 * --------------------------------------------------------------------------
 */
function normalizeData(val) {
  if (val === 'true') {
    return true;
  }

  if (val === 'false') {
    return false;
  }

  if (val === Number(val).toString()) {
    return Number(val);
  }

  if (val === '' || val === 'null') {
    return null;
  }

  return val;
}

function normalizeDataKey(key) {
XhmikosR's avatar
XhmikosR committed
1110
  return key.replace(/[A-Z]/g, function (chr) {
XhmikosR's avatar
XhmikosR committed
1111
    return "-" + chr.toLowerCase();
XhmikosR's avatar
XhmikosR committed
1112
  });
XhmikosR's avatar
Dist.  
XhmikosR committed
1113
1114
}

XhmikosR's avatar
XhmikosR committed
1115
1116
1117
var Manipulator = {
  setDataAttribute: function setDataAttribute(element, key, value) {
    element.setAttribute("data-" + normalizeDataKey(key), value);
XhmikosR's avatar
Dist.  
XhmikosR committed
1118
  },
XhmikosR's avatar
XhmikosR committed
1119
1120
  removeDataAttribute: function removeDataAttribute(element, key) {
    element.removeAttribute("data-" + normalizeDataKey(key));
XhmikosR's avatar
Dist.  
XhmikosR committed
1121
  },
XhmikosR's avatar
XhmikosR committed
1122
  getDataAttributes: function getDataAttributes(element) {
XhmikosR's avatar
Dist.  
XhmikosR committed
1123
1124
1125
1126
    if (!element) {
      return {};
    }

1127
    var attributes = _objectSpread2({}, element.dataset);
XhmikosR's avatar
Dist.  
XhmikosR committed
1128

XhmikosR's avatar
XhmikosR committed
1129
    Object.keys(attributes).forEach(function (key) {
XhmikosR's avatar
Dist.  
XhmikosR committed
1130
1131
1132
1133
      attributes[key] = normalizeData(attributes[key]);
    });
    return attributes;
  },
XhmikosR's avatar
XhmikosR committed
1134
1135
  getDataAttribute: function getDataAttribute(element, key) {
    return normalizeData(element.getAttribute("data-" + normalizeDataKey(key)));
XhmikosR's avatar
Dist.  
XhmikosR committed
1136
  },
XhmikosR's avatar
XhmikosR committed
1137
1138
  offset: function offset(element) {
    var rect = element.getBoundingClientRect();
XhmikosR's avatar
Dist.  
XhmikosR committed
1139
1140
1141
1142
1143
    return {
      top: rect.top + document.body.scrollTop,
      left: rect.left + document.body.scrollLeft
    };
  },
XhmikosR's avatar
XhmikosR committed
1144
  position: function position(element) {
XhmikosR's avatar
Dist.  
XhmikosR committed
1145
1146
1147
1148
1149
    return {
      top: element.offsetTop,
      left: element.offsetLeft
    };
  },
XhmikosR's avatar
XhmikosR committed
1150
  toggleClass: function toggleClass(element, className) {
XhmikosR's avatar
Dist.  
XhmikosR committed
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
    if (!element) {
      return;
    }

    if (element.classList.contains(className)) {
      element.classList.remove(className);
    } else {
      element.classList.add(className);
    }
  }
};

/**
 * ------------------------------------------------------------------------
 * Constants
 * ------------------------------------------------------------------------
 */

XhmikosR's avatar
XhmikosR committed
1169
var NAME$2 = 'carousel';
1170
var VERSION$2 = '5.0.0-alpha1';
XhmikosR's avatar
XhmikosR committed
1171
1172
1173
var DATA_KEY$2 = 'bs.carousel';
var EVENT_KEY$2 = "." + DATA_KEY$2;
var DATA_API_KEY$2 = '.data-api';
XhmikosR's avatar
XhmikosR committed
1174
1175
var ARROW_LEFT_KEY = 'ArrowLeft';
var ARROW_RIGHT_KEY = 'ArrowRight';
XhmikosR's avatar
XhmikosR committed
1176
var TOUCHEVENT_COMPAT_WAIT = 500; // Time for mouse compat events to fire after touch
XhmikosR's avatar
Dist.  
XhmikosR committed
1177

XhmikosR's avatar
XhmikosR committed
1178
1179
var SWIPE_THRESHOLD = 40;
var Default = {
XhmikosR's avatar
Dist.  
XhmikosR committed
1180
1181
1182
1183
1184
1185
1186
  interval: 5000,
  keyboard: true,
  slide: false,
  pause: 'hover',
  wrap: true,
  touch: true
};
XhmikosR's avatar
XhmikosR committed
1187
var DefaultType = {
XhmikosR's avatar
Dist.  
XhmikosR committed
1188
1189
1190
1191
1192
1193
1194
  interval: '(number|boolean)',
  keyboard: 'boolean',
  slide: '(boolean|string)',
  pause: '(string|boolean)',
  wrap: 'boolean',
  touch: 'boolean'
};
XhmikosR's avatar
XhmikosR committed
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
var DIRECTION_NEXT = 'next';
var DIRECTION_PREV = 'prev';
var DIRECTION_LEFT = 'left';
var DIRECTION_RIGHT = 'right';
var EVENT_SLIDE = "slide" + EVENT_KEY$2;
var EVENT_SLID = "slid" + EVENT_KEY$2;
var EVENT_KEYDOWN = "keydown" + EVENT_KEY$2;
var EVENT_MOUSEENTER = "mouseenter" + EVENT_KEY$2;
var EVENT_MOUSELEAVE = "mouseleave" + EVENT_KEY$2;
var EVENT_TOUCHSTART = "touchstart" + EVENT_KEY$2;
var EVENT_TOUCHMOVE = "touchmove" + EVENT_KEY$2;
var EVENT_TOUCHEND = "touchend" + EVENT_KEY$2;
var EVENT_POINTERDOWN = "pointerdown" + EVENT_KEY$2;
var EVENT_POINTERUP = "pointerup" + EVENT_KEY$2;
var EVENT_DRAG_START = "dragstart" + EVENT_KEY$2;
var EVENT_LOAD_DATA_API = "load" + EVENT_KEY$2 + DATA_API_KEY$2;
var EVENT_CLICK_DATA_API$2 = "click" + EVENT_KEY$2 + DATA_API_KEY$2;
var CLASS_NAME_CAROUSEL = 'carousel';
var CLASS_NAME_ACTIVE$1 = 'active';
var CLASS_NAME_SLIDE = 'slide';
var CLASS_NAME_RIGHT = 'carousel-item-right';
var CLASS_NAME_LEFT = 'carousel-item-left';
var CLASS_NAME_NEXT = 'carousel-item-next';
var CLASS_NAME_PREV = 'carousel-item-prev';
var CLASS_NAME_POINTER_EVENT = 'pointer-event';
var SELECTOR_ACTIVE$1 = '.active';
var SELECTOR_ACTIVE_ITEM = '.active.carousel-item';
var SELECTOR_ITEM = '.carousel-item';
var SELECTOR_ITEM_IMG = '.carousel-item img';
var SELECTOR_NEXT_PREV = '.carousel-item-next, .carousel-item-prev';
var SELECTOR_INDICATORS = '.carousel-indicators';
var SELECTOR_DATA_SLIDE = '[data-slide], [data-slide-to]';
var SELECTOR_DATA_RIDE = '[data-ride="carousel"]';
XhmikosR's avatar
XhmikosR committed
1228
var PointerType = {
XhmikosR's avatar
Dist.  
XhmikosR committed
1229
1230
1231
  TOUCH: 'touch',
  PEN: 'pen'
};
XhmikosR's avatar
XhmikosR committed
1232
1233
1234
1235
1236
/**
 * ------------------------------------------------------------------------
 * Class Definition
 * ------------------------------------------------------------------------
 */
XhmikosR's avatar
Dist.  
XhmikosR committed
1237

XhmikosR's avatar
XhmikosR committed
1238
var Carousel = /*#__PURE__*/function () {
XhmikosR's avatar
XhmikosR committed
1239
  function Carousel(element, config) {
XhmikosR's avatar
Dist.  
XhmikosR committed
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
    this._items = null;
    this._interval = null;
    this._activeElement = null;
    this._isPaused = false;
    this._isSliding = false;
    this.touchTimeout = null;
    this.touchStartX = 0;
    this.touchDeltaX = 0;
    this._config = this._getConfig(config);
    this._element = element;
XhmikosR's avatar
XhmikosR committed
1250
    this._indicatorsElement = SelectorEngine.findOne(SELECTOR_INDICATORS, this._element);
XhmikosR's avatar
Dist.  
XhmikosR committed
1251
    this._touchSupported = 'ontouchstart' in document.documentElement || navigator.maxTouchPoints > 0;
XhmikosR's avatar
XhmikosR committed
1252
    this._pointerEvent = Boolean(window.PointerEvent);
XhmikosR's avatar
Dist.  
XhmikosR committed
1253
1254
1255
1256
1257
1258
1259

    this._addEventListeners();

    Data.setData(element, DATA_KEY$2, this);
  } // Getters


XhmikosR's avatar
XhmikosR committed
1260
  var _proto = Carousel.prototype;
XhmikosR's avatar
Dist.  
XhmikosR committed
1261

XhmikosR's avatar
XhmikosR committed
1262
1263
  // Public
  _proto.next = function next() {
XhmikosR's avatar
Dist.  
XhmikosR committed
1264
    if (!this._isSliding) {
XhmikosR's avatar
XhmikosR committed
1265
      this._slide(DIRECTION_NEXT);
XhmikosR's avatar
Dist.  
XhmikosR committed
1266
    }
XhmikosR's avatar
XhmikosR committed
1267
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
1268

XhmikosR's avatar
XhmikosR committed
1269
  _proto.nextWhenVisible = function nextWhenVisible() {
XhmikosR's avatar
Dist.  
XhmikosR committed
1270
1271
1272
1273
1274
    // Don't call next when the page isn't visible
    // or the carousel or its parent isn't visible
    if (!document.hidden && isVisible(this._element)) {
      this.next();
    }
XhmikosR's avatar
XhmikosR committed
1275
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
1276

XhmikosR's avatar
XhmikosR committed
1277
  _proto.prev = function prev() {
XhmikosR's avatar
Dist.  
XhmikosR committed
1278
    if (!this._isSliding) {
XhmikosR's avatar
XhmikosR committed
1279
      this._slide(DIRECTION_PREV);
XhmikosR's avatar
Dist.  
XhmikosR committed
1280
    }
XhmikosR's avatar
XhmikosR committed
1281
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
1282

XhmikosR's avatar
XhmikosR committed
1283
  _proto.pause = function pause(event) {
XhmikosR's avatar
Dist.  
XhmikosR committed
1284
1285
1286
1287
    if (!event) {
      this._isPaused = true;
    }

XhmikosR's avatar
XhmikosR committed
1288
    if (SelectorEngine.findOne(SELECTOR_NEXT_PREV, this._element)) {
XhmikosR's avatar
Dist.  
XhmikosR committed
1289
1290
1291
1292
1293
1294
      triggerTransitionEnd(this._element);
      this.cycle(true);
    }

    clearInterval(this._interval);
    this._interval = null;
XhmikosR's avatar
XhmikosR committed
1295
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
1296

XhmikosR's avatar
XhmikosR committed
1297
  _proto.cycle = function cycle(event) {
XhmikosR's avatar
Dist.  
XhmikosR committed
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
    if (!event) {
      this._isPaused = false;
    }

    if (this._interval) {
      clearInterval(this._interval);
      this._interval = null;
    }

    if (this._config && this._config.interval && !this._isPaused) {
      this._interval = setInterval((document.visibilityState ? this.nextWhenVisible : this.next).bind(this), this._config.interval);
    }
XhmikosR's avatar
XhmikosR committed
1310
1311
1312
1313
  };

  _proto.to = function to(index) {
    var _this = this;
XhmikosR's avatar
Dist.  
XhmikosR committed
1314

XhmikosR's avatar
XhmikosR committed
1315
    this._activeElement = SelectorEngine.findOne(SELECTOR_ACTIVE_ITEM, this._element);
XhmikosR's avatar
Dist.  
XhmikosR committed
1316

XhmikosR's avatar
XhmikosR committed
1317
    var activeIndex = this._getItemIndex(this._activeElement);
XhmikosR's avatar
Dist.  
XhmikosR committed
1318
1319
1320
1321
1322
1323

    if (index > this._items.length - 1 || index < 0) {
      return;
    }

    if (this._isSliding) {
XhmikosR's avatar
XhmikosR committed
1324
      EventHandler.one(this._element, EVENT_SLID, function () {
XhmikosR's avatar
XhmikosR committed
1325
1326
        return _this.to(index);
      });
XhmikosR's avatar
Dist.  
XhmikosR committed
1327
1328
1329
1330
1331
1332
1333
1334
1335
      return;
    }

    if (activeIndex === index) {
      this.pause();
      this.cycle();
      return;
    }

XhmikosR's avatar
XhmikosR committed
1336
    var direction = index > activeIndex ? DIRECTION_NEXT : DIRECTION_PREV;
XhmikosR's avatar
Dist.  
XhmikosR committed
1337
1338

    this._slide(direction, this._items[index]);
XhmikosR's avatar
XhmikosR committed
1339
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
1340

XhmikosR's avatar
XhmikosR committed
1341
  _proto.dispose = function dispose() {
XhmikosR's avatar
Dist.  
XhmikosR committed
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
    EventHandler.off(this._element, EVENT_KEY$2);
    Data.removeData(this._element, DATA_KEY$2);
    this._items = null;
    this._config = null;
    this._element = null;
    this._interval = null;
    this._isPaused = null;
    this._isSliding = null;
    this._activeElement = null;
    this._indicatorsElement = null;
  } // Private
XhmikosR's avatar
XhmikosR committed
1353
  ;
XhmikosR's avatar
Dist.  
XhmikosR committed
1354

XhmikosR's avatar
XhmikosR committed
1355
  _proto._getConfig = function _getConfig(config) {
XhmikosR's avatar
XhmikosR committed
1356
    config = _objectSpread2(_objectSpread2({}, Default), config);
XhmikosR's avatar
Dist.  
XhmikosR committed
1357
1358
    typeCheckConfig(NAME$2, config, DefaultType);
    return config;
XhmikosR's avatar
XhmikosR committed
1359
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
1360

XhmikosR's avatar
XhmikosR committed
1361
1362
  _proto._handleSwipe = function _handleSwipe() {
    var absDeltax = Math.abs(this.touchDeltaX);
XhmikosR's avatar
Dist.  
XhmikosR committed
1363
1364
1365
1366
1367

    if (absDeltax <= SWIPE_THRESHOLD) {
      return;
    }

XhmikosR's avatar
XhmikosR committed
1368
1369
    var direction = absDeltax / this.touchDeltaX;
    this.touchDeltaX = 0; // swipe left
XhmikosR's avatar
Dist.  
XhmikosR committed
1370
1371
1372
1373
1374
1375
1376
1377
1378

    if (direction > 0) {
      this.prev();
    } // swipe right


    if (direction < 0) {
      this.next();
    }
XhmikosR's avatar
XhmikosR committed
1379
1380
1381
1382
  };

  _proto._addEventListeners = function _addEventListeners() {
    var _this2 = this;
XhmikosR's avatar
Dist.  
XhmikosR committed
1383
1384

    if (this._config.keyboard) {
XhmikosR's avatar
XhmikosR committed
1385
      EventHandler.on(this._element, EVENT_KEYDOWN, function (event) {
XhmikosR's avatar
XhmikosR committed
1386
1387
        return _this2._keydown(event);
      });
XhmikosR's avatar
Dist.  
XhmikosR committed
1388
1389
1390
    }

    if (this._config.pause === 'hover') {
XhmikosR's avatar
XhmikosR committed
1391
      EventHandler.on(this._element, EVENT_MOUSEENTER, function (event) {
XhmikosR's avatar
XhmikosR committed
1392
1393
        return _this2.pause(event);
      });
XhmikosR's avatar
XhmikosR committed
1394
      EventHandler.on(this._element, EVENT_MOUSELEAVE, function (event) {
XhmikosR's avatar
XhmikosR committed
1395
1396
        return _this2.cycle(event);
      });
XhmikosR's avatar
Dist.  
XhmikosR committed
1397
1398
    }

1399
    if (this._config.touch && this._touchSupported) {
XhmikosR's avatar
Dist.  
XhmikosR committed
1400
1401
      this._addTouchEventListeners();
    }
XhmikosR's avatar
XhmikosR committed
1402
1403
1404
1405
  };

  _proto._addTouchEventListeners = function _addTouchEventListeners() {
    var _this3 = this;
XhmikosR's avatar
Dist.  
XhmikosR committed
1406

XhmikosR's avatar
XhmikosR committed
1407
1408
1409
1410
1411
    var start = function start(event) {
      if (_this3._pointerEvent && PointerType[event.pointerType.toUpperCase()]) {
        _this3.touchStartX = event.clientX;
      } else if (!_this3._pointerEvent) {
        _this3.touchStartX = event.touches[0].clientX;
XhmikosR's avatar
Dist.  
XhmikosR committed
1412
1413
1414
      }
    };

XhmikosR's avatar
XhmikosR committed
1415
    var move = function move(event) {
XhmikosR's avatar
Dist.  
XhmikosR committed
1416
1417
      // ensure swiping with one touch and not pinching
      if (event.touches && event.touches.length > 1) {
XhmikosR's avatar
XhmikosR committed
1418
        _this3.touchDeltaX = 0;
XhmikosR's avatar
Dist.  
XhmikosR committed
1419
      } else {
XhmikosR's avatar
XhmikosR committed
1420
        _this3.touchDeltaX = event.touches[0].clientX - _this3.touchStartX;
XhmikosR's avatar
Dist.  
XhmikosR committed
1421
1422
1423
      }
    };

XhmikosR's avatar
XhmikosR committed
1424
1425
1426
    var end = function end(event) {
      if (_this3._pointerEvent && PointerType[event.pointerType.toUpperCase()]) {
        _this3.touchDeltaX = event.clientX - _this3.touchStartX;
XhmikosR's avatar
Dist.  
XhmikosR committed
1427
1428
      }

XhmikosR's avatar
XhmikosR committed
1429
      _this3._handleSwipe();
XhmikosR's avatar
Dist.  
XhmikosR committed
1430

XhmikosR's avatar
XhmikosR committed
1431
      if (_this3._config.pause === 'hover') {
XhmikosR's avatar
Dist.  
XhmikosR committed
1432
1433
1434
1435
1436
1437
1438
        // If it's a touch-enabled device, mouseenter/leave are fired as
        // part of the mouse compatibility events on first tap - the carousel
        // would stop cycling until user tapped out of it;
        // here, we listen for touchend, explicitly pause the carousel
        // (as if it's the second time we tap on it, mouseenter compat event
        // is NOT fired) and after a timeout (to allow for mouse compatibility
        // events to fire) we explicitly restart cycling
XhmikosR's avatar
XhmikosR committed
1439
        _this3.pause();
XhmikosR's avatar
Dist.  
XhmikosR committed
1440

XhmikosR's avatar
XhmikosR committed
1441
1442
        if (_this3.touchTimeout) {
          clearTimeout(_this3.touchTimeout);
XhmikosR's avatar
Dist.  
XhmikosR committed
1443
1444
        }

XhmikosR's avatar
XhmikosR committed
1445
1446
1447
        _this3.touchTimeout = setTimeout(function (event) {
          return _this3.cycle(event);
        }, TOUCHEVENT_COMPAT_WAIT + _this3._config.interval);
XhmikosR's avatar
Dist.  
XhmikosR committed
1448
1449
1450
      }
    };

XhmikosR's avatar
XhmikosR committed
1451
1452
    SelectorEngine.find(SELECTOR_ITEM_IMG, this._element).forEach(function (itemImg) {
      EventHandler.on(itemImg, EVENT_DRAG_START, function (e) {
XhmikosR's avatar
XhmikosR committed
1453
1454
        return e.preventDefault();
      });
XhmikosR's avatar
Dist.  
XhmikosR committed
1455
1456
1457
    });

    if (this._pointerEvent) {
XhmikosR's avatar
XhmikosR committed
1458
      EventHandler.on(this._element, EVENT_POINTERDOWN, function (event) {
XhmikosR's avatar
XhmikosR committed
1459
1460
        return start(event);
      });
XhmikosR's avatar
XhmikosR committed
1461
      EventHandler.on(this._element, EVENT_POINTERUP, function (event) {
XhmikosR's avatar
XhmikosR committed
1462
1463
        return end(event);
      });
XhmikosR's avatar
Dist.  
XhmikosR committed
1464

XhmikosR's avatar
XhmikosR committed
1465
      this._element.classList.add(CLASS_NAME_POINTER_EVENT);
XhmikosR's avatar
Dist.  
XhmikosR committed
1466
    } else {
XhmikosR's avatar
XhmikosR committed
1467
      EventHandler.on(this._element, EVENT_TOUCHSTART, function (event) {
XhmikosR's avatar
XhmikosR committed
1468
1469
        return start(event);
      });
XhmikosR's avatar
XhmikosR committed
1470
      EventHandler.on(this._element, EVENT_TOUCHMOVE, function (event) {
XhmikosR's avatar
XhmikosR committed
1471
1472
        return move(event);
      });
XhmikosR's avatar
XhmikosR committed
1473
      EventHandler.on(this._element, EVENT_TOUCHEND, function (event) {
XhmikosR's avatar
XhmikosR committed
1474
1475
        return end(event);
      });
XhmikosR's avatar
Dist.  
XhmikosR committed
1476
    }
XhmikosR's avatar
XhmikosR committed
1477
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
1478

XhmikosR's avatar
XhmikosR committed
1479
  _proto._keydown = function _keydown(event) {
XhmikosR's avatar
Dist.  
XhmikosR committed
1480
1481
1482
1483
    if (/input|textarea/i.test(event.target.tagName)) {
      return;
    }

XhmikosR's avatar
XhmikosR committed
1484
1485
    switch (event.key) {
      case ARROW_LEFT_KEY:
XhmikosR's avatar
Dist.  
XhmikosR committed
1486
1487
1488
1489
        event.preventDefault();
        this.prev();
        break;

XhmikosR's avatar
XhmikosR committed
1490
      case ARROW_RIGHT_KEY:
XhmikosR's avatar
Dist.  
XhmikosR committed
1491
1492
1493
1494
        event.preventDefault();
        this.next();
        break;
    }
XhmikosR's avatar
XhmikosR committed
1495
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
1496

XhmikosR's avatar
XhmikosR committed
1497
  _proto._getItemIndex = function _getItemIndex(element) {
XhmikosR's avatar
XhmikosR committed
1498
    this._items = element && element.parentNode ? SelectorEngine.find(SELECTOR_ITEM, element.parentNode) : [];
XhmikosR's avatar
Dist.  
XhmikosR committed
1499
    return this._items.indexOf(element);
XhmikosR's avatar
XhmikosR committed
1500
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
1501

XhmikosR's avatar
XhmikosR committed
1502
  _proto._getItemByDirection = function _getItemByDirection(direction, activeElement) {
XhmikosR's avatar
XhmikosR committed
1503
1504
    var isNextDirection = direction === DIRECTION_NEXT;
    var isPrevDirection = direction === DIRECTION_PREV;
XhmikosR's avatar
Dist.  
XhmikosR committed
1505

XhmikosR's avatar
XhmikosR committed
1506
    var activeIndex = this._getItemIndex(activeElement);
XhmikosR's avatar
Dist.  
XhmikosR committed
1507

XhmikosR's avatar
XhmikosR committed
1508
1509
    var lastItemIndex = this._items.length - 1;
    var isGoingToWrap = isPrevDirection && activeIndex === 0 || isNextDirection && activeIndex === lastItemIndex;
XhmikosR's avatar
Dist.  
XhmikosR committed
1510
1511
1512
1513
1514

    if (isGoingToWrap && !this._config.wrap) {
      return activeElement;
    }

XhmikosR's avatar
XhmikosR committed
1515
    var delta = direction === DIRECTION_PREV ? -1 : 1;
XhmikosR's avatar
XhmikosR committed
1516
    var itemIndex = (activeIndex + delta) % this._items.length;
XhmikosR's avatar
Dist.  
XhmikosR committed
1517
    return itemIndex === -1 ? this._items[this._items.length - 1] : this._items[itemIndex];
XhmikosR's avatar
XhmikosR committed
1518
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
1519

XhmikosR's avatar
XhmikosR committed
1520
1521
  _proto._triggerSlideEvent = function _triggerSlideEvent(relatedTarget, eventDirectionName) {
    var targetIndex = this._getItemIndex(relatedTarget);
XhmikosR's avatar
Dist.  
XhmikosR committed
1522

XhmikosR's avatar
XhmikosR committed
1523
    var fromIndex = this._getItemIndex(SelectorEngine.findOne(SELECTOR_ACTIVE_ITEM, this._element));
XhmikosR's avatar
Dist.  
XhmikosR committed
1524

XhmikosR's avatar
XhmikosR committed
1525
    return EventHandler.trigger(this._element, EVENT_SLIDE, {
XhmikosR's avatar
XhmikosR committed
1526
      relatedTarget: relatedTarget,
XhmikosR's avatar
Dist.  
XhmikosR committed
1527
1528
1529
1530
      direction: eventDirectionName,
      from: fromIndex,
      to: targetIndex
    });
XhmikosR's avatar
XhmikosR committed
1531
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
1532

XhmikosR's avatar
XhmikosR committed
1533
  _proto._setActiveIndicatorElement = function _setActiveIndicatorElement(element) {
XhmikosR's avatar
Dist.  
XhmikosR committed
1534
    if (this._indicatorsElement) {
XhmikosR's avatar
XhmikosR committed
1535
      var indicators = SelectorEngine.find(SELECTOR_ACTIVE$1, this._indicatorsElement);
XhmikosR's avatar
Dist.  
XhmikosR committed
1536

XhmikosR's avatar
XhmikosR committed
1537
      for (var i = 0; i < indicators.length; i++) {
XhmikosR's avatar
XhmikosR committed
1538
        indicators[i].classList.remove(CLASS_NAME_ACTIVE$1);
XhmikosR's avatar
Dist.  
XhmikosR committed
1539
1540
      }

XhmikosR's avatar
XhmikosR committed
1541
      var nextIndicator = this._indicatorsElement.children[this._getItemIndex(element)];
XhmikosR's avatar
Dist.  
XhmikosR committed
1542
1543

      if (nextIndicator) {
XhmikosR's avatar
XhmikosR committed
1544
        nextIndicator.classList.add(CLASS_NAME_ACTIVE$1);
XhmikosR's avatar
Dist.  
XhmikosR committed
1545
1546
      }
    }
XhmikosR's avatar
XhmikosR committed
1547
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
1548

XhmikosR's avatar
XhmikosR committed
1549
1550
  _proto._slide = function _slide(direction, element) {
    var _this4 = this;
XhmikosR's avatar
Dist.  
XhmikosR committed
1551

XhmikosR's avatar
XhmikosR committed
1552
    var activeElement = SelectorEngine.findOne(SELECTOR_ACTIVE_ITEM, this._element);
XhmikosR's avatar
Dist.  
XhmikosR committed
1553

XhmikosR's avatar
XhmikosR committed
1554
    var activeElementIndex = this._getItemIndex(activeElement);
XhmikosR's avatar
Dist.  
XhmikosR committed
1555

XhmikosR's avatar
XhmikosR committed
1556
    var nextElement = element || activeElement && this._getItemByDirection(direction, activeElement);
XhmikosR's avatar
Dist.  
XhmikosR committed
1557

XhmikosR's avatar
XhmikosR committed
1558
1559
1560
1561
1562
1563
    var nextElementIndex = this._getItemIndex(nextElement);

    var isCycling = Boolean(this._interval);
    var directionalClassName;
    var orderClassName;
    var eventDirectionName;
XhmikosR's avatar
Dist.  
XhmikosR committed
1564

XhmikosR's avatar
XhmikosR committed
1565
1566
1567
1568
    if (direction === DIRECTION_NEXT) {
      directionalClassName = CLASS_NAME_LEFT;
      orderClassName = CLASS_NAME_NEXT;
      eventDirectionName = DIRECTION_LEFT;
XhmikosR's avatar
Dist.  
XhmikosR committed
1569
    } else {
XhmikosR's avatar
XhmikosR committed
1570
1571
1572
      directionalClassName = CLASS_NAME_RIGHT;
      orderClassName = CLASS_NAME_PREV;
      eventDirectionName = DIRECTION_RIGHT;
XhmikosR's avatar
Dist.  
XhmikosR committed
1573
1574
    }

XhmikosR's avatar
XhmikosR committed
1575
    if (nextElement && nextElement.classList.contains(CLASS_NAME_ACTIVE$1)) {
XhmikosR's avatar
Dist.  
XhmikosR committed
1576
1577
1578
1579
      this._isSliding = false;
      return;
    }

XhmikosR's avatar
XhmikosR committed
1580
    var slideEvent = this._triggerSlideEvent(nextElement, eventDirectionName);
XhmikosR's avatar
Dist.  
XhmikosR committed
1581
1582
1583
1584
1585
1586
1587
1588
1589
1590
1591
1592
1593
1594
1595
1596
1597
1598

    if (slideEvent.defaultPrevented) {
      return;
    }

    if (!activeElement || !nextElement) {
      // Some weirdness is happening, so we bail
      return;
    }

    this._isSliding = true;

    if (isCycling) {
      this.pause();
    }

    this._setActiveIndicatorElement(nextElement);

XhmikosR's avatar
XhmikosR committed
1599
    if (this._element.classList.contains(CLASS_NAME_SLIDE)) {
XhmikosR's avatar
Dist.  
XhmikosR committed
1600
1601
1602
1603
      nextElement.classList.add(orderClassName);
      reflow(nextElement);
      activeElement.classList.add(directionalClassName);
      nextElement.classList.add(directionalClassName);
XhmikosR's avatar
XhmikosR committed
1604
      var nextElementInterval = parseInt(nextElement.getAttribute('data-interval'), 10);
XhmikosR's avatar
Dist.  
XhmikosR committed
1605
1606
1607
1608
1609
1610
1611
1612

      if (nextElementInterval) {
        this._config.defaultInterval = this._config.defaultInterval || this._config.interval;
        this._config.interval = nextElementInterval;
      } else {
        this._config.interval = this._config.defaultInterval || this._config.interval;
      }

XhmikosR's avatar
XhmikosR committed
1613
1614
      var transitionDuration = getTransitionDurationFromElement(activeElement);
      EventHandler.one(activeElement, TRANSITION_END, function () {
XhmikosR's avatar
XhmikosR committed
1615
        nextElement.classList.remove(directionalClassName, orderClassName);
XhmikosR's avatar
XhmikosR committed
1616
        nextElement.classList.add(CLASS_NAME_ACTIVE$1);
XhmikosR's avatar
XhmikosR committed
1617
        activeElement.classList.remove(CLASS_NAME_ACTIVE$1, orderClassName, directionalClassName);
XhmikosR's avatar
XhmikosR committed
1618
1619
        _this4._isSliding = false;
        setTimeout(function () {
XhmikosR's avatar
XhmikosR committed
1620
          EventHandler.trigger(_this4._element, EVENT_SLID, {
XhmikosR's avatar
Dist.  
XhmikosR committed
1621
1622
1623
1624
1625
1626
1627
1628
1629
            relatedTarget: nextElement,
            direction: eventDirectionName,
            from: activeElementIndex,
            to: nextElementIndex
          });
        }, 0);
      });
      emulateTransitionEnd(activeElement, transitionDuration);
    } else {
XhmikosR's avatar
XhmikosR committed
1630
1631
      activeElement.classList.remove(CLASS_NAME_ACTIVE$1);
      nextElement.classList.add(CLASS_NAME_ACTIVE$1);
XhmikosR's avatar
Dist.  
XhmikosR committed
1632
      this._isSliding = false;
XhmikosR's avatar
XhmikosR committed
1633
      EventHandler.trigger(this._element, EVENT_SLID, {
XhmikosR's avatar
Dist.  
XhmikosR committed
1634
1635
1636
1637
1638
1639
1640
1641
1642
1643
1644
        relatedTarget: nextElement,
        direction: eventDirectionName,
        from: activeElementIndex,
        to: nextElementIndex
      });
    }

    if (isCycling) {
      this.cycle();
    }
  } // Static
XhmikosR's avatar
XhmikosR committed
1645
  ;
XhmikosR's avatar
Dist.  
XhmikosR committed
1646

XhmikosR's avatar
XhmikosR committed
1647
  Carousel.carouselInterface = function carouselInterface(element, config) {
XhmikosR's avatar
XhmikosR committed
1648
    var data = Data.getData(element, DATA_KEY$2);
XhmikosR's avatar
Dist.  
XhmikosR committed
1649

XhmikosR's avatar
XhmikosR committed
1650
    var _config = _objectSpread2(_objectSpread2({}, Default), Manipulator.getDataAttributes(element));
XhmikosR's avatar
Dist.  
XhmikosR committed
1651
1652

    if (typeof config === 'object') {
XhmikosR's avatar
XhmikosR committed
1653
      _config = _objectSpread2(_objectSpread2({}, _config), config);
XhmikosR's avatar
Dist.  
XhmikosR committed
1654
1655
    }

XhmikosR's avatar
XhmikosR committed
1656
    var action = typeof config === 'string' ? config : _config.slide;
XhmikosR's avatar
Dist.  
XhmikosR committed
1657
1658
1659
1660
1661
1662
1663
1664
1665

    if (!data) {
      data = new Carousel(element, _config);
    }

    if (typeof config === 'number') {
      data.to(config);
    } else if (typeof action === 'string') {
      if (typeof data[action] === 'undefined') {
XhmikosR's avatar
XhmikosR committed
1666
        throw new TypeError("No method named \"" + action + "\"");
XhmikosR's avatar
Dist.  
XhmikosR committed
1667
1668
1669
1670
1671
1672
1673
      }

      data[action]();
    } else if (_config.interval && _config.ride) {
      data.pause();
      data.cycle();
    }
XhmikosR's avatar
XhmikosR committed
1674
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
1675

XhmikosR's avatar
XhmikosR committed
1676
  Carousel.jQueryInterface = function jQueryInterface(config) {
XhmikosR's avatar
Dist.  
XhmikosR committed
1677
    return this.each(function () {
XhmikosR's avatar
XhmikosR committed
1678
      Carousel.carouselInterface(this, config);
XhmikosR's avatar
Dist.  
XhmikosR committed
1679
    });
XhmikosR's avatar
XhmikosR committed
1680
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
1681

XhmikosR's avatar
XhmikosR committed
1682
1683
  Carousel.dataApiClickHandler = function dataApiClickHandler(event) {
    var target = getElementFromSelector(this);
XhmikosR's avatar
Dist.  
XhmikosR committed
1684

XhmikosR's avatar
XhmikosR committed
1685
    if (!target || !target.classList.contains(CLASS_NAME_CAROUSEL)) {
XhmikosR's avatar
Dist.  
XhmikosR committed
1686
1687
1688
      return;
    }

XhmikosR's avatar
XhmikosR committed
1689
    var config = _objectSpread2(_objectSpread2({}, Manipulator.getDataAttributes(target)), Manipulator.getDataAttributes(this));
XhmikosR's avatar
Dist.  
XhmikosR committed
1690

XhmikosR's avatar
XhmikosR committed
1691
    var slideIndex = this.getAttribute('data-slide-to');
XhmikosR's avatar
Dist.  
XhmikosR committed
1692
1693
1694
1695
1696

    if (slideIndex) {
      config.interval = false;
    }

XhmikosR's avatar
XhmikosR committed
1697
    Carousel.carouselInterface(target, config);
XhmikosR's avatar
Dist.  
XhmikosR committed
1698
1699
1700
1701
1702
1703

    if (slideIndex) {
      Data.getData(target, DATA_KEY$2).to(slideIndex);
    }

    event.preventDefault();
XhmikosR's avatar
XhmikosR committed
1704
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
1705

XhmikosR's avatar
XhmikosR committed
1706
  Carousel.getInstance = function getInstance(element) {
XhmikosR's avatar
Dist.  
XhmikosR committed
1707
    return Data.getData(element, DATA_KEY$2);
XhmikosR's avatar
XhmikosR committed
1708
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
1709

XhmikosR's avatar
XhmikosR committed
1710
1711
1712
1713
1714
1715
1716
1717
1718
1719
1720
1721
1722
1723
  _createClass(Carousel, null, [{
    key: "VERSION",
    get: function get() {
      return VERSION$2;
    }
  }, {
    key: "Default",
    get: function get() {
      return Default;
    }
  }]);

  return Carousel;
}();
XhmikosR's avatar
Dist.  
XhmikosR committed
1724
1725
1726
1727
1728
1729
1730
/**
 * ------------------------------------------------------------------------
 * Data Api implementation
 * ------------------------------------------------------------------------
 */


XhmikosR's avatar
XhmikosR committed
1731
1732
1733
EventHandler.on(document, EVENT_CLICK_DATA_API$2, SELECTOR_DATA_SLIDE, Carousel.dataApiClickHandler);
EventHandler.on(window, EVENT_LOAD_DATA_API, function () {
  var carousels = SelectorEngine.find(SELECTOR_DATA_RIDE);
XhmikosR's avatar
Dist.  
XhmikosR committed
1734

XhmikosR's avatar
XhmikosR committed
1735
  for (var i = 0, len = carousels.length; i < len; i++) {
XhmikosR's avatar
XhmikosR committed
1736
    Carousel.carouselInterface(carousels[i], Data.getData(carousels[i], DATA_KEY$2));
XhmikosR's avatar
Dist.  
XhmikosR committed
1737
1738
  }
});
XhmikosR's avatar
XhmikosR committed
1739
var $$3 = getjQuery();
XhmikosR's avatar
Dist.  
XhmikosR committed
1740
1741
1742
1743
1744
1745
1746
/**
 * ------------------------------------------------------------------------
 * jQuery
 * ------------------------------------------------------------------------
 * add .carousel to jQuery only if jQuery is present
 */

1747
1748
/* istanbul ignore if */

XhmikosR's avatar
XhmikosR committed
1749
1750
1751
1752
if ($$3) {
  var JQUERY_NO_CONFLICT$2 = $$3.fn[NAME$2];
  $$3.fn[NAME$2] = Carousel.jQueryInterface;
  $$3.fn[NAME$2].Constructor = Carousel;
XhmikosR's avatar
Dist.  
XhmikosR committed
1753

XhmikosR's avatar
XhmikosR committed
1754
1755
1756
  $$3.fn[NAME$2].noConflict = function () {
    $$3.fn[NAME$2] = JQUERY_NO_CONFLICT$2;
    return Carousel.jQueryInterface;
XhmikosR's avatar
Dist.  
XhmikosR committed
1757
1758
1759
1760
1761
1762
1763
1764
1765
  };
}

/**
 * ------------------------------------------------------------------------
 * Constants
 * ------------------------------------------------------------------------
 */

XhmikosR's avatar
XhmikosR committed
1766
var NAME$3 = 'collapse';
1767
var VERSION$3 = '5.0.0-alpha1';
XhmikosR's avatar
XhmikosR committed
1768
1769
1770
1771
var DATA_KEY$3 = 'bs.collapse';
var EVENT_KEY$3 = "." + DATA_KEY$3;
var DATA_API_KEY$3 = '.data-api';
var Default$1 = {
XhmikosR's avatar
Dist.  
XhmikosR committed
1772
1773
1774
  toggle: true,
  parent: ''
};
XhmikosR's avatar
XhmikosR committed
1775
var DefaultType$1 = {
XhmikosR's avatar
Dist.  
XhmikosR committed
1776
1777
1778
  toggle: 'boolean',
  parent: '(string|element)'
};
XhmikosR's avatar
XhmikosR committed
1779
1780
1781
1782
1783
1784
1785
1786
1787
1788
1789
1790
1791
var EVENT_SHOW = "show" + EVENT_KEY$3;
var EVENT_SHOWN = "shown" + EVENT_KEY$3;
var EVENT_HIDE = "hide" + EVENT_KEY$3;
var EVENT_HIDDEN = "hidden" + EVENT_KEY$3;
var EVENT_CLICK_DATA_API$3 = "click" + EVENT_KEY$3 + DATA_API_KEY$3;
var CLASS_NAME_SHOW = 'show';
var CLASS_NAME_COLLAPSE = 'collapse';
var CLASS_NAME_COLLAPSING = 'collapsing';
var CLASS_NAME_COLLAPSED = 'collapsed';
var WIDTH = 'width';
var HEIGHT = 'height';
var SELECTOR_ACTIVES = '.show, .collapsing';
var SELECTOR_DATA_TOGGLE$1 = '[data-toggle="collapse"]';
XhmikosR's avatar
XhmikosR committed
1792
1793
1794
1795
1796
/**
 * ------------------------------------------------------------------------
 * Class Definition
 * ------------------------------------------------------------------------
 */
XhmikosR's avatar
Dist.  
XhmikosR committed
1797

XhmikosR's avatar
XhmikosR committed
1798
var Collapse = /*#__PURE__*/function () {
XhmikosR's avatar
XhmikosR committed
1799
  function Collapse(element, config) {
XhmikosR's avatar
Dist.  
XhmikosR committed
1800
1801
1802
    this._isTransitioning = false;
    this._element = element;
    this._config = this._getConfig(config);
XhmikosR's avatar
XhmikosR committed
1803
1804
    this._triggerArray = SelectorEngine.find(SELECTOR_DATA_TOGGLE$1 + "[href=\"#" + element.id + "\"]," + (SELECTOR_DATA_TOGGLE$1 + "[data-target=\"#" + element.id + "\"]"));
    var toggleList = SelectorEngine.find(SELECTOR_DATA_TOGGLE$1);
XhmikosR's avatar
XhmikosR committed
1805
1806
1807
1808

    for (var i = 0, len = toggleList.length; i < len; i++) {
      var elem = toggleList[i];
      var selector = getSelectorFromElement(elem);
XhmikosR's avatar
XhmikosR committed
1809
      var filterElement = SelectorEngine.find(selector).filter(function (foundElem) {
XhmikosR's avatar
XhmikosR committed
1810
1811
        return foundElem === element;
      });
XhmikosR's avatar
Dist.  
XhmikosR committed
1812
1813
1814
1815
1816
1817
1818
1819
1820
1821
1822
1823
1824
1825
1826
1827
1828
1829
1830
1831
1832
1833

      if (selector !== null && filterElement.length) {
        this._selector = selector;

        this._triggerArray.push(elem);
      }
    }

    this._parent = this._config.parent ? this._getParent() : null;

    if (!this._config.parent) {
      this._addAriaAndCollapsedClass(this._element, this._triggerArray);
    }

    if (this._config.toggle) {
      this.toggle();
    }

    Data.setData(element, DATA_KEY$3, this);
  } // Getters


XhmikosR's avatar
XhmikosR committed
1834
  var _proto = Collapse.prototype;
XhmikosR's avatar
Dist.  
XhmikosR committed
1835

XhmikosR's avatar
XhmikosR committed
1836
1837
  // Public
  _proto.toggle = function toggle() {
XhmikosR's avatar
XhmikosR committed
1838
    if (this._element.classList.contains(CLASS_NAME_SHOW)) {
XhmikosR's avatar
Dist.  
XhmikosR committed
1839
1840
1841
1842
      this.hide();
    } else {
      this.show();
    }
XhmikosR's avatar
XhmikosR committed
1843
1844
1845
1846
  };

  _proto.show = function show() {
    var _this = this;
XhmikosR's avatar
Dist.  
XhmikosR committed
1847

XhmikosR's avatar
XhmikosR committed
1848
    if (this._isTransitioning || this._element.classList.contains(CLASS_NAME_SHOW)) {
XhmikosR's avatar
Dist.  
XhmikosR committed
1849
1850
1851
      return;
    }

XhmikosR's avatar
XhmikosR committed
1852
1853
    var actives;
    var activesData;
XhmikosR's avatar
Dist.  
XhmikosR committed
1854
1855

    if (this._parent) {
XhmikosR's avatar
XhmikosR committed
1856
      actives = SelectorEngine.find(SELECTOR_ACTIVES, this._parent).filter(function (elem) {
XhmikosR's avatar
XhmikosR committed
1857
1858
        if (typeof _this._config.parent === 'string') {
          return elem.getAttribute('data-parent') === _this._config.parent;
XhmikosR's avatar
Dist.  
XhmikosR committed
1859
1860
        }

XhmikosR's avatar
XhmikosR committed
1861
        return elem.classList.contains(CLASS_NAME_COLLAPSE);
XhmikosR's avatar
Dist.  
XhmikosR committed
1862
1863
1864
1865
1866
1867
1868
      });

      if (actives.length === 0) {
        actives = null;
      }
    }

XhmikosR's avatar
XhmikosR committed
1869
    var container = SelectorEngine.findOne(this._selector);
XhmikosR's avatar
Dist.  
XhmikosR committed
1870
1871

    if (actives) {
XhmikosR's avatar
XhmikosR committed
1872
1873
1874
      var tempActiveData = actives.filter(function (elem) {
        return container !== elem;
      });
XhmikosR's avatar
Dist.  
XhmikosR committed
1875
1876
1877
1878
1879
1880
1881
      activesData = tempActiveData[0] ? Data.getData(tempActiveData[0], DATA_KEY$3) : null;

      if (activesData && activesData._isTransitioning) {
        return;
      }
    }

XhmikosR's avatar
XhmikosR committed
1882
    var startEvent = EventHandler.trigger(this._element, EVENT_SHOW);
XhmikosR's avatar
Dist.  
XhmikosR committed
1883
1884
1885
1886
1887
1888

    if (startEvent.defaultPrevented) {
      return;
    }

    if (actives) {
XhmikosR's avatar
XhmikosR committed
1889
      actives.forEach(function (elemActive) {
XhmikosR's avatar
Dist.  
XhmikosR committed
1890
        if (container !== elemActive) {
XhmikosR's avatar
XhmikosR committed
1891
          Collapse.collapseInterface(elemActive, 'hide');
XhmikosR's avatar
Dist.  
XhmikosR committed
1892
1893
1894
1895
1896
1897
1898
1899
        }

        if (!activesData) {
          Data.setData(elemActive, DATA_KEY$3, null);
        }
      });
    }

XhmikosR's avatar
XhmikosR committed
1900
    var dimension = this._getDimension();
XhmikosR's avatar
Dist.  
XhmikosR committed
1901

XhmikosR's avatar
XhmikosR committed
1902
    this._element.classList.remove(CLASS_NAME_COLLAPSE);
XhmikosR's avatar
Dist.  
XhmikosR committed
1903

XhmikosR's avatar
XhmikosR committed
1904
    this._element.classList.add(CLASS_NAME_COLLAPSING);
XhmikosR's avatar
Dist.  
XhmikosR committed
1905
1906
1907
1908

    this._element.style[dimension] = 0;

    if (this._triggerArray.length) {
XhmikosR's avatar
XhmikosR committed
1909
      this._triggerArray.forEach(function (element) {
XhmikosR's avatar
XhmikosR committed
1910
        element.classList.remove(CLASS_NAME_COLLAPSED);
XhmikosR's avatar
Dist.  
XhmikosR committed
1911
1912
1913
1914
1915
1916
        element.setAttribute('aria-expanded', true);
      });
    }

    this.setTransitioning(true);

XhmikosR's avatar
XhmikosR committed
1917
    var complete = function complete() {
XhmikosR's avatar
XhmikosR committed
1918
      _this._element.classList.remove(CLASS_NAME_COLLAPSING);
XhmikosR's avatar
XhmikosR committed
1919

XhmikosR's avatar
XhmikosR committed
1920
      _this._element.classList.add(CLASS_NAME_COLLAPSE, CLASS_NAME_SHOW);
XhmikosR's avatar
Dist.  
XhmikosR committed
1921

XhmikosR's avatar
XhmikosR committed
1922
      _this._element.style[dimension] = '';
XhmikosR's avatar
Dist.  
XhmikosR committed
1923

XhmikosR's avatar
XhmikosR committed
1924
      _this.setTransitioning(false);
XhmikosR's avatar
Dist.  
XhmikosR committed
1925

XhmikosR's avatar
XhmikosR committed
1926
      EventHandler.trigger(_this._element, EVENT_SHOWN);
XhmikosR's avatar
Dist.  
XhmikosR committed
1927
1928
    };

XhmikosR's avatar
XhmikosR committed
1929
1930
1931
    var capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1);
    var scrollSize = "scroll" + capitalizedDimension;
    var transitionDuration = getTransitionDurationFromElement(this._element);
XhmikosR's avatar
Dist.  
XhmikosR committed
1932
1933
    EventHandler.one(this._element, TRANSITION_END, complete);
    emulateTransitionEnd(this._element, transitionDuration);
XhmikosR's avatar
XhmikosR committed
1934
1935
1936
1937
1938
    this._element.style[dimension] = this._element[scrollSize] + "px";
  };

  _proto.hide = function hide() {
    var _this2 = this;
XhmikosR's avatar
Dist.  
XhmikosR committed
1939

XhmikosR's avatar
XhmikosR committed
1940
    if (this._isTransitioning || !this._element.classList.contains(CLASS_NAME_SHOW)) {
XhmikosR's avatar
Dist.  
XhmikosR committed
1941
1942
1943
      return;
    }

XhmikosR's avatar
XhmikosR committed
1944
    var startEvent = EventHandler.trigger(this._element, EVENT_HIDE);
XhmikosR's avatar
Dist.  
XhmikosR committed
1945
1946
1947
1948
1949

    if (startEvent.defaultPrevented) {
      return;
    }

XhmikosR's avatar
XhmikosR committed
1950
    var dimension = this._getDimension();
XhmikosR's avatar
Dist.  
XhmikosR committed
1951

XhmikosR's avatar
XhmikosR committed
1952
    this._element.style[dimension] = this._element.getBoundingClientRect()[dimension] + "px";
XhmikosR's avatar
Dist.  
XhmikosR committed
1953
1954
    reflow(this._element);

XhmikosR's avatar
XhmikosR committed
1955
    this._element.classList.add(CLASS_NAME_COLLAPSING);
XhmikosR's avatar
Dist.  
XhmikosR committed
1956

XhmikosR's avatar
XhmikosR committed
1957
    this._element.classList.remove(CLASS_NAME_COLLAPSE, CLASS_NAME_SHOW);
XhmikosR's avatar
Dist.  
XhmikosR committed
1958

XhmikosR's avatar
XhmikosR committed
1959
    var triggerArrayLength = this._triggerArray.length;
XhmikosR's avatar
Dist.  
XhmikosR committed
1960
1961

    if (triggerArrayLength > 0) {
XhmikosR's avatar
XhmikosR committed
1962
1963
      for (var i = 0; i < triggerArrayLength; i++) {
        var trigger = this._triggerArray[i];
XhmikosR's avatar
XhmikosR committed
1964
        var elem = getElementFromSelector(trigger);
XhmikosR's avatar
Dist.  
XhmikosR committed
1965

XhmikosR's avatar
XhmikosR committed
1966
1967
        if (elem && !elem.classList.contains(CLASS_NAME_SHOW)) {
          trigger.classList.add(CLASS_NAME_COLLAPSED);
XhmikosR's avatar
XhmikosR committed
1968
          trigger.setAttribute('aria-expanded', false);
XhmikosR's avatar
Dist.  
XhmikosR committed
1969
1970
1971
1972
1973
1974
        }
      }
    }

    this.setTransitioning(true);

XhmikosR's avatar
XhmikosR committed
1975
1976
    var complete = function complete() {
      _this2.setTransitioning(false);
XhmikosR's avatar
Dist.  
XhmikosR committed
1977

XhmikosR's avatar
XhmikosR committed
1978
      _this2._element.classList.remove(CLASS_NAME_COLLAPSING);
XhmikosR's avatar
Dist.  
XhmikosR committed
1979

XhmikosR's avatar
XhmikosR committed
1980
      _this2._element.classList.add(CLASS_NAME_COLLAPSE);
XhmikosR's avatar
Dist.  
XhmikosR committed
1981

XhmikosR's avatar
XhmikosR committed
1982
      EventHandler.trigger(_this2._element, EVENT_HIDDEN);
XhmikosR's avatar
Dist.  
XhmikosR committed
1983
1984
1985
    };

    this._element.style[dimension] = '';
XhmikosR's avatar
XhmikosR committed
1986
    var transitionDuration = getTransitionDurationFromElement(this._element);
XhmikosR's avatar
Dist.  
XhmikosR committed
1987
1988
    EventHandler.one(this._element, TRANSITION_END, complete);
    emulateTransitionEnd(this._element, transitionDuration);
XhmikosR's avatar
XhmikosR committed
1989
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
1990

XhmikosR's avatar
XhmikosR committed
1991
  _proto.setTransitioning = function setTransitioning(isTransitioning) {
XhmikosR's avatar
Dist.  
XhmikosR committed
1992
    this._isTransitioning = isTransitioning;
XhmikosR's avatar
XhmikosR committed
1993
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
1994

XhmikosR's avatar
XhmikosR committed
1995
  _proto.dispose = function dispose() {
XhmikosR's avatar
Dist.  
XhmikosR committed
1996
1997
1998
1999
2000
2001
2002
    Data.removeData(this._element, DATA_KEY$3);
    this._config = null;
    this._parent = null;
    this._element = null;
    this._triggerArray = null;
    this._isTransitioning = null;
  } // Private
XhmikosR's avatar
XhmikosR committed
2003
  ;
XhmikosR's avatar
Dist.  
XhmikosR committed
2004

XhmikosR's avatar
XhmikosR committed
2005
  _proto._getConfig = function _getConfig(config) {
XhmikosR's avatar
XhmikosR committed
2006
    config = _objectSpread2(_objectSpread2({}, Default$1), config);
XhmikosR's avatar
Dist.  
XhmikosR committed
2007
2008
2009
2010
    config.toggle = Boolean(config.toggle); // Coerce string values

    typeCheckConfig(NAME$3, config, DefaultType$1);
    return config;
XhmikosR's avatar
XhmikosR committed
2011
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
2012

XhmikosR's avatar
XhmikosR committed
2013
  _proto._getDimension = function _getDimension() {
XhmikosR's avatar
XhmikosR committed
2014
    var hasWidth = this._element.classList.contains(WIDTH);
XhmikosR's avatar
Dist.  
XhmikosR committed
2015

XhmikosR's avatar
XhmikosR committed
2016
    return hasWidth ? WIDTH : HEIGHT;
XhmikosR's avatar
XhmikosR committed
2017
2018
2019
2020
  };

  _proto._getParent = function _getParent() {
    var _this3 = this;
XhmikosR's avatar
Dist.  
XhmikosR committed
2021

XhmikosR's avatar
XhmikosR committed
2022
    var parent = this._config.parent;
XhmikosR's avatar
Dist.  
XhmikosR committed
2023
2024
2025
2026
2027
2028
2029
2030
2031
2032

    if (isElement(parent)) {
      // it's a jQuery object
      if (typeof parent.jquery !== 'undefined' || typeof parent[0] !== 'undefined') {
        parent = parent[0];
      }
    } else {
      parent = SelectorEngine.findOne(parent);
    }

XhmikosR's avatar
XhmikosR committed
2033
2034
    var selector = SELECTOR_DATA_TOGGLE$1 + "[data-parent=\"" + parent + "\"]";
    SelectorEngine.find(selector, parent).forEach(function (element) {
XhmikosR's avatar
XhmikosR committed
2035
      var selected = getElementFromSelector(element);
2036
2037

      _this3._addAriaAndCollapsedClass(selected, [element]);
XhmikosR's avatar
Dist.  
XhmikosR committed
2038
2039
    });
    return parent;
XhmikosR's avatar
XhmikosR committed
2040
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
2041

XhmikosR's avatar
XhmikosR committed
2042
  _proto._addAriaAndCollapsedClass = function _addAriaAndCollapsedClass(element, triggerArray) {
XhmikosR's avatar
Dist.  
XhmikosR committed
2043
    if (element) {
XhmikosR's avatar
XhmikosR committed
2044
      var isOpen = element.classList.contains(CLASS_NAME_SHOW);
XhmikosR's avatar
Dist.  
XhmikosR committed
2045
2046

      if (triggerArray.length) {
XhmikosR's avatar
XhmikosR committed
2047
        triggerArray.forEach(function (elem) {
XhmikosR's avatar
Dist.  
XhmikosR committed
2048
          if (isOpen) {
XhmikosR's avatar
XhmikosR committed
2049
            elem.classList.remove(CLASS_NAME_COLLAPSED);
XhmikosR's avatar
Dist.  
XhmikosR committed
2050
          } else {
XhmikosR's avatar
XhmikosR committed
2051
            elem.classList.add(CLASS_NAME_COLLAPSED);
XhmikosR's avatar
Dist.  
XhmikosR committed
2052
2053
2054
2055
2056
2057
2058
          }

          elem.setAttribute('aria-expanded', isOpen);
        });
      }
    }
  } // Static
XhmikosR's avatar
XhmikosR committed
2059
  ;
XhmikosR's avatar
Dist.  
XhmikosR committed
2060

XhmikosR's avatar
XhmikosR committed
2061
  Collapse.collapseInterface = function collapseInterface(element, config) {
XhmikosR's avatar
XhmikosR committed
2062
    var data = Data.getData(element, DATA_KEY$3);
XhmikosR's avatar
Dist.  
XhmikosR committed
2063

XhmikosR's avatar
XhmikosR committed
2064
    var _config = _objectSpread2(_objectSpread2(_objectSpread2({}, Default$1), Manipulator.getDataAttributes(element)), typeof config === 'object' && config ? config : {});
XhmikosR's avatar
Dist.  
XhmikosR committed
2065

XhmikosR's avatar
XhmikosR committed
2066
    if (!data && _config.toggle && typeof config === 'string' && /show|hide/.test(config)) {
XhmikosR's avatar
Dist.  
XhmikosR committed
2067
2068
2069
2070
2071
2072
2073
2074
2075
      _config.toggle = false;
    }

    if (!data) {
      data = new Collapse(element, _config);
    }

    if (typeof config === 'string') {
      if (typeof data[config] === 'undefined') {
XhmikosR's avatar
XhmikosR committed
2076
        throw new TypeError("No method named \"" + config + "\"");
XhmikosR's avatar
Dist.  
XhmikosR committed
2077
2078
2079
2080
      }

      data[config]();
    }
XhmikosR's avatar
XhmikosR committed
2081
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
2082

XhmikosR's avatar
XhmikosR committed
2083
  Collapse.jQueryInterface = function jQueryInterface(config) {
XhmikosR's avatar
Dist.  
XhmikosR committed
2084
    return this.each(function () {
XhmikosR's avatar
XhmikosR committed
2085
      Collapse.collapseInterface(this, config);
XhmikosR's avatar
Dist.  
XhmikosR committed
2086
    });
XhmikosR's avatar
XhmikosR committed
2087
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
2088

XhmikosR's avatar
XhmikosR committed
2089
  Collapse.getInstance = function getInstance(element) {
XhmikosR's avatar
Dist.  
XhmikosR committed
2090
    return Data.getData(element, DATA_KEY$3);
XhmikosR's avatar
XhmikosR committed
2091
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
2092

XhmikosR's avatar
XhmikosR committed
2093
2094
2095
2096
2097
2098
2099
2100
2101
2102
2103
2104
2105
2106
  _createClass(Collapse, null, [{
    key: "VERSION",
    get: function get() {
      return VERSION$3;
    }
  }, {
    key: "Default",
    get: function get() {
      return Default$1;
    }
  }]);

  return Collapse;
}();
XhmikosR's avatar
Dist.  
XhmikosR committed
2107
2108
2109
2110
2111
2112
2113
/**
 * ------------------------------------------------------------------------
 * Data Api implementation
 * ------------------------------------------------------------------------
 */


XhmikosR's avatar
XhmikosR committed
2114
EventHandler.on(document, EVENT_CLICK_DATA_API$3, SELECTOR_DATA_TOGGLE$1, function (event) {
XhmikosR's avatar
Dist.  
XhmikosR committed
2115
2116
2117
2118
2119
  // preventDefault only for <a> elements (which change the URL) not inside the collapsible element
  if (event.target.tagName === 'A') {
    event.preventDefault();
  }

XhmikosR's avatar
XhmikosR committed
2120
2121
  var triggerData = Manipulator.getDataAttributes(this);
  var selector = getSelectorFromElement(this);
XhmikosR's avatar
XhmikosR committed
2122
  var selectorElements = SelectorEngine.find(selector);
XhmikosR's avatar
XhmikosR committed
2123
2124
2125
  selectorElements.forEach(function (element) {
    var data = Data.getData(element, DATA_KEY$3);
    var config;
XhmikosR's avatar
Dist.  
XhmikosR committed
2126
2127
2128
2129
2130
2131
2132
2133
2134
2135
2136
2137
2138

    if (data) {
      // update parent attribute
      if (data._parent === null && typeof triggerData.parent === 'string') {
        data._config.parent = triggerData.parent;
        data._parent = data._getParent();
      }

      config = 'toggle';
    } else {
      config = triggerData;
    }

XhmikosR's avatar
XhmikosR committed
2139
    Collapse.collapseInterface(element, config);
XhmikosR's avatar
Dist.  
XhmikosR committed
2140
2141
  });
});
XhmikosR's avatar
XhmikosR committed
2142
var $$4 = getjQuery();
XhmikosR's avatar
Dist.  
XhmikosR committed
2143
2144
2145
2146
2147
2148
2149
/**
 * ------------------------------------------------------------------------
 * jQuery
 * ------------------------------------------------------------------------
 * add .collapse to jQuery only if jQuery is present
 */

2150
2151
/* istanbul ignore if */

XhmikosR's avatar
XhmikosR committed
2152
2153
2154
2155
if ($$4) {
  var JQUERY_NO_CONFLICT$3 = $$4.fn[NAME$3];
  $$4.fn[NAME$3] = Collapse.jQueryInterface;
  $$4.fn[NAME$3].Constructor = Collapse;
XhmikosR's avatar
Dist.  
XhmikosR committed
2156

XhmikosR's avatar
XhmikosR committed
2157
2158
2159
  $$4.fn[NAME$3].noConflict = function () {
    $$4.fn[NAME$3] = JQUERY_NO_CONFLICT$3;
    return Collapse.jQueryInterface;
XhmikosR's avatar
Dist.  
XhmikosR committed
2160
2161
2162
2163
2164
2165
2166
2167
2168
  };
}

/**
 * ------------------------------------------------------------------------
 * Constants
 * ------------------------------------------------------------------------
 */

XhmikosR's avatar
XhmikosR committed
2169
var NAME$4 = 'dropdown';
2170
var VERSION$4 = '5.0.0-alpha1';
XhmikosR's avatar
XhmikosR committed
2171
2172
2173
var DATA_KEY$4 = 'bs.dropdown';
var EVENT_KEY$4 = "." + DATA_KEY$4;
var DATA_API_KEY$4 = '.data-api';
XhmikosR's avatar
XhmikosR committed
2174
2175
2176
2177
2178
2179
2180
2181
var ESCAPE_KEY = 'Escape';
var SPACE_KEY = 'Space';
var TAB_KEY = 'Tab';
var ARROW_UP_KEY = 'ArrowUp';
var ARROW_DOWN_KEY = 'ArrowDown';
var RIGHT_MOUSE_BUTTON = 2; // MouseEvent.button value for the secondary button, usually the right button

var REGEXP_KEYDOWN = new RegExp(ARROW_UP_KEY + "|" + ARROW_DOWN_KEY + "|" + ESCAPE_KEY);
XhmikosR's avatar
XhmikosR committed
2182
2183
2184
2185
2186
2187
2188
2189
2190
2191
2192
2193
2194
2195
2196
2197
2198
2199
2200
2201
2202
2203
2204
2205
2206
2207
2208
var EVENT_HIDE$1 = "hide" + EVENT_KEY$4;
var EVENT_HIDDEN$1 = "hidden" + EVENT_KEY$4;
var EVENT_SHOW$1 = "show" + EVENT_KEY$4;
var EVENT_SHOWN$1 = "shown" + EVENT_KEY$4;
var EVENT_CLICK = "click" + EVENT_KEY$4;
var EVENT_CLICK_DATA_API$4 = "click" + EVENT_KEY$4 + DATA_API_KEY$4;
var EVENT_KEYDOWN_DATA_API = "keydown" + EVENT_KEY$4 + DATA_API_KEY$4;
var EVENT_KEYUP_DATA_API = "keyup" + EVENT_KEY$4 + DATA_API_KEY$4;
var CLASS_NAME_DISABLED$1 = 'disabled';
var CLASS_NAME_SHOW$1 = 'show';
var CLASS_NAME_DROPUP = 'dropup';
var CLASS_NAME_DROPRIGHT = 'dropright';
var CLASS_NAME_DROPLEFT = 'dropleft';
var CLASS_NAME_MENURIGHT = 'dropdown-menu-right';
var CLASS_NAME_NAVBAR = 'navbar';
var CLASS_NAME_POSITION_STATIC = 'position-static';
var SELECTOR_DATA_TOGGLE$2 = '[data-toggle="dropdown"]';
var SELECTOR_FORM_CHILD = '.dropdown form';
var SELECTOR_MENU = '.dropdown-menu';
var SELECTOR_NAVBAR_NAV = '.navbar-nav';
var SELECTOR_VISIBLE_ITEMS = '.dropdown-menu .dropdown-item:not(.disabled):not(:disabled)';
var PLACEMENT_TOP = 'top-start';
var PLACEMENT_TOPEND = 'top-end';
var PLACEMENT_BOTTOM = 'bottom-start';
var PLACEMENT_BOTTOMEND = 'bottom-end';
var PLACEMENT_RIGHT = 'right-start';
var PLACEMENT_LEFT = 'left-start';
XhmikosR's avatar
XhmikosR committed
2209
var Default$2 = {
XhmikosR's avatar
Dist.  
XhmikosR committed
2210
2211
2212
2213
  offset: 0,
  flip: true,
  boundary: 'scrollParent',
  reference: 'toggle',
XhmikosR's avatar
XhmikosR committed
2214
2215
  display: 'dynamic',
  popperConfig: null
XhmikosR's avatar
Dist.  
XhmikosR committed
2216
};
XhmikosR's avatar
XhmikosR committed
2217
var DefaultType$2 = {
XhmikosR's avatar
Dist.  
XhmikosR committed
2218
2219
2220
2221
  offset: '(number|string|function)',
  flip: 'boolean',
  boundary: '(string|element)',
  reference: '(string|element)',
XhmikosR's avatar
XhmikosR committed
2222
2223
  display: 'string',
  popperConfig: '(null|object)'
XhmikosR's avatar
Dist.  
XhmikosR committed
2224
};
XhmikosR's avatar
XhmikosR committed
2225
2226
2227
2228
2229
/**
 * ------------------------------------------------------------------------
 * Class Definition
 * ------------------------------------------------------------------------
 */
XhmikosR's avatar
Dist.  
XhmikosR committed
2230

XhmikosR's avatar
XhmikosR committed
2231
var Dropdown = /*#__PURE__*/function () {
XhmikosR's avatar
XhmikosR committed
2232
  function Dropdown(element, config) {
XhmikosR's avatar
Dist.  
XhmikosR committed
2233
2234
2235
2236
2237
2238
2239
2240
2241
2242
2243
2244
    this._element = element;
    this._popper = null;
    this._config = this._getConfig(config);
    this._menu = this._getMenuElement();
    this._inNavbar = this._detectNavbar();

    this._addEventListeners();

    Data.setData(element, DATA_KEY$4, this);
  } // Getters


XhmikosR's avatar
XhmikosR committed
2245
  var _proto = Dropdown.prototype;
XhmikosR's avatar
Dist.  
XhmikosR committed
2246

XhmikosR's avatar
XhmikosR committed
2247
2248
  // Public
  _proto.toggle = function toggle() {
XhmikosR's avatar
XhmikosR committed
2249
    if (this._element.disabled || this._element.classList.contains(CLASS_NAME_DISABLED$1)) {
XhmikosR's avatar
Dist.  
XhmikosR committed
2250
2251
2252
      return;
    }

XhmikosR's avatar
XhmikosR committed
2253
    var isActive = this._element.classList.contains(CLASS_NAME_SHOW$1);
XhmikosR's avatar
Dist.  
XhmikosR committed
2254

XhmikosR's avatar
XhmikosR committed
2255
    Dropdown.clearMenus();
XhmikosR's avatar
Dist.  
XhmikosR committed
2256
2257
2258
2259
2260

    if (isActive) {
      return;
    }

XhmikosR's avatar
XhmikosR committed
2261
2262
2263
2264
    this.show();
  };

  _proto.show = function show() {
XhmikosR's avatar
XhmikosR committed
2265
    if (this._element.disabled || this._element.classList.contains(CLASS_NAME_DISABLED$1) || this._menu.classList.contains(CLASS_NAME_SHOW$1)) {
XhmikosR's avatar
XhmikosR committed
2266
2267
2268
2269
      return;
    }

    var parent = Dropdown.getParentFromElement(this._element);
XhmikosR's avatar
XhmikosR committed
2270
    var relatedTarget = {
XhmikosR's avatar
Dist.  
XhmikosR committed
2271
2272
      relatedTarget: this._element
    };
XhmikosR's avatar
XhmikosR committed
2273
    var showEvent = EventHandler.trigger(this._element, EVENT_SHOW$1, relatedTarget);
XhmikosR's avatar
Dist.  
XhmikosR committed
2274
2275
2276
2277
2278
2279
2280
2281
2282
2283
2284

    if (showEvent.defaultPrevented) {
      return;
    } // Disable totally Popper.js for Dropdown in Navbar


    if (!this._inNavbar) {
      if (typeof Popper === 'undefined') {
        throw new TypeError('Bootstrap\'s dropdowns require Popper.js (https://popper.js.org)');
      }

XhmikosR's avatar
XhmikosR committed
2285
      var referenceElement = this._element;
XhmikosR's avatar
Dist.  
XhmikosR committed
2286
2287
2288
2289
2290
2291
2292
2293
2294
2295
2296
2297
2298
2299
2300

      if (this._config.reference === 'parent') {
        referenceElement = parent;
      } else if (isElement(this._config.reference)) {
        referenceElement = this._config.reference; // Check if it's jQuery element

        if (typeof this._config.reference.jquery !== 'undefined') {
          referenceElement = this._config.reference[0];
        }
      } // If boundary is not `scrollParent`, then set position to `static`
      // to allow the menu to "escape" the scroll parent's boundaries
      // https://github.com/twbs/bootstrap/issues/24251


      if (this._config.boundary !== 'scrollParent') {
XhmikosR's avatar
XhmikosR committed
2301
        parent.classList.add(CLASS_NAME_POSITION_STATIC);
XhmikosR's avatar
Dist.  
XhmikosR committed
2302
2303
2304
2305
2306
2307
2308
2309
2310
      }

      this._popper = new Popper(referenceElement, this._menu, this._getPopperConfig());
    } // If this is a touch-enabled device we add extra
    // empty mouseover listeners to the body's immediate children;
    // only needed because of broken event delegation on iOS
    // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html


XhmikosR's avatar
XhmikosR committed
2311
    if ('ontouchstart' in document.documentElement && !parent.closest(SELECTOR_NAVBAR_NAV)) {
XhmikosR's avatar
XhmikosR committed
2312
2313
2314
      var _ref;

      (_ref = []).concat.apply(_ref, document.body.children).forEach(function (elem) {
XhmikosR's avatar
XhmikosR committed
2315
2316
        return EventHandler.on(elem, 'mouseover', null, noop());
      });
XhmikosR's avatar
Dist.  
XhmikosR committed
2317
2318
2319
2320
2321
2322
    }

    this._element.focus();

    this._element.setAttribute('aria-expanded', true);

XhmikosR's avatar
XhmikosR committed
2323
2324
2325
    Manipulator.toggleClass(this._menu, CLASS_NAME_SHOW$1);
    Manipulator.toggleClass(this._element, CLASS_NAME_SHOW$1);
    EventHandler.trigger(parent, EVENT_SHOWN$1, relatedTarget);
XhmikosR's avatar
XhmikosR committed
2326
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
2327

XhmikosR's avatar
XhmikosR committed
2328
  _proto.hide = function hide() {
XhmikosR's avatar
XhmikosR committed
2329
    if (this._element.disabled || this._element.classList.contains(CLASS_NAME_DISABLED$1) || !this._menu.classList.contains(CLASS_NAME_SHOW$1)) {
XhmikosR's avatar
Dist.  
XhmikosR committed
2330
2331
2332
      return;
    }

XhmikosR's avatar
XhmikosR committed
2333
    var parent = Dropdown.getParentFromElement(this._element);
XhmikosR's avatar
XhmikosR committed
2334
    var relatedTarget = {
XhmikosR's avatar
Dist.  
XhmikosR committed
2335
2336
      relatedTarget: this._element
    };
XhmikosR's avatar
XhmikosR committed
2337
    var hideEvent = EventHandler.trigger(parent, EVENT_HIDE$1, relatedTarget);
XhmikosR's avatar
Dist.  
XhmikosR committed
2338
2339
2340
2341
2342

    if (hideEvent.defaultPrevented) {
      return;
    }

XhmikosR's avatar
XhmikosR committed
2343
2344
2345
2346
    if (this._popper) {
      this._popper.destroy();
    }

XhmikosR's avatar
XhmikosR committed
2347
2348
2349
    Manipulator.toggleClass(this._menu, CLASS_NAME_SHOW$1);
    Manipulator.toggleClass(this._element, CLASS_NAME_SHOW$1);
    EventHandler.trigger(parent, EVENT_HIDDEN$1, relatedTarget);
XhmikosR's avatar
XhmikosR committed
2350
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
2351

XhmikosR's avatar
XhmikosR committed
2352
  _proto.dispose = function dispose() {
XhmikosR's avatar
Dist.  
XhmikosR committed
2353
2354
2355
2356
2357
    Data.removeData(this._element, DATA_KEY$4);
    EventHandler.off(this._element, EVENT_KEY$4);
    this._element = null;
    this._menu = null;

XhmikosR's avatar
XhmikosR committed
2358
    if (this._popper) {
XhmikosR's avatar
Dist.  
XhmikosR committed
2359
2360
2361
2362
      this._popper.destroy();

      this._popper = null;
    }
XhmikosR's avatar
XhmikosR committed
2363
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
2364

XhmikosR's avatar
XhmikosR committed
2365
  _proto.update = function update() {
XhmikosR's avatar
Dist.  
XhmikosR committed
2366
2367
    this._inNavbar = this._detectNavbar();

XhmikosR's avatar
XhmikosR committed
2368
    if (this._popper) {
XhmikosR's avatar
Dist.  
XhmikosR committed
2369
2370
2371
      this._popper.scheduleUpdate();
    }
  } // Private
XhmikosR's avatar
XhmikosR committed
2372
  ;
XhmikosR's avatar
Dist.  
XhmikosR committed
2373

XhmikosR's avatar
XhmikosR committed
2374
2375
  _proto._addEventListeners = function _addEventListeners() {
    var _this = this;
XhmikosR's avatar
Dist.  
XhmikosR committed
2376

XhmikosR's avatar
XhmikosR committed
2377
    EventHandler.on(this._element, EVENT_CLICK, function (event) {
XhmikosR's avatar
Dist.  
XhmikosR committed
2378
2379
      event.preventDefault();
      event.stopPropagation();
XhmikosR's avatar
XhmikosR committed
2380
2381

      _this.toggle();
XhmikosR's avatar
Dist.  
XhmikosR committed
2382
    });
XhmikosR's avatar
XhmikosR committed
2383
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
2384

XhmikosR's avatar
XhmikosR committed
2385
  _proto._getConfig = function _getConfig(config) {
XhmikosR's avatar
XhmikosR committed
2386
    config = _objectSpread2(_objectSpread2(_objectSpread2({}, this.constructor.Default), Manipulator.getDataAttributes(this._element)), config);
XhmikosR's avatar
Dist.  
XhmikosR committed
2387
2388
    typeCheckConfig(NAME$4, config, this.constructor.DefaultType);
    return config;
XhmikosR's avatar
XhmikosR committed
2389
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
2390

XhmikosR's avatar
XhmikosR committed
2391
  _proto._getMenuElement = function _getMenuElement() {
XhmikosR's avatar
XhmikosR committed
2392
    return SelectorEngine.next(this._element, SELECTOR_MENU)[0];
XhmikosR's avatar
XhmikosR committed
2393
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
2394

XhmikosR's avatar
XhmikosR committed
2395
2396
  _proto._getPlacement = function _getPlacement() {
    var parentDropdown = this._element.parentNode;
XhmikosR's avatar
XhmikosR committed
2397
    var placement = PLACEMENT_BOTTOM; // Handle dropup
XhmikosR's avatar
Dist.  
XhmikosR committed
2398

XhmikosR's avatar
XhmikosR committed
2399
2400
    if (parentDropdown.classList.contains(CLASS_NAME_DROPUP)) {
      placement = PLACEMENT_TOP;
XhmikosR's avatar
Dist.  
XhmikosR committed
2401

XhmikosR's avatar
XhmikosR committed
2402
2403
      if (this._menu.classList.contains(CLASS_NAME_MENURIGHT)) {
        placement = PLACEMENT_TOPEND;
XhmikosR's avatar
Dist.  
XhmikosR committed
2404
      }
XhmikosR's avatar
XhmikosR committed
2405
2406
2407
2408
2409
2410
    } else if (parentDropdown.classList.contains(CLASS_NAME_DROPRIGHT)) {
      placement = PLACEMENT_RIGHT;
    } else if (parentDropdown.classList.contains(CLASS_NAME_DROPLEFT)) {
      placement = PLACEMENT_LEFT;
    } else if (this._menu.classList.contains(CLASS_NAME_MENURIGHT)) {
      placement = PLACEMENT_BOTTOMEND;
XhmikosR's avatar
Dist.  
XhmikosR committed
2411
2412
2413
    }

    return placement;
XhmikosR's avatar
XhmikosR committed
2414
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
2415

XhmikosR's avatar
XhmikosR committed
2416
  _proto._detectNavbar = function _detectNavbar() {
XhmikosR's avatar
XhmikosR committed
2417
    return Boolean(this._element.closest("." + CLASS_NAME_NAVBAR));
XhmikosR's avatar
XhmikosR committed
2418
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
2419

XhmikosR's avatar
XhmikosR committed
2420
2421
2422
2423
  _proto._getOffset = function _getOffset() {
    var _this2 = this;

    var offset = {};
XhmikosR's avatar
Dist.  
XhmikosR committed
2424
2425

    if (typeof this._config.offset === 'function') {
XhmikosR's avatar
XhmikosR committed
2426
      offset.fn = function (data) {
XhmikosR's avatar
XhmikosR committed
2427
        data.offsets = _objectSpread2(_objectSpread2({}, data.offsets), _this2._config.offset(data.offsets, _this2._element) || {});
XhmikosR's avatar
Dist.  
XhmikosR committed
2428
2429
2430
2431
2432
2433
2434
        return data;
      };
    } else {
      offset.offset = this._config.offset;
    }

    return offset;
XhmikosR's avatar
XhmikosR committed
2435
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
2436

XhmikosR's avatar
XhmikosR committed
2437
2438
  _proto._getPopperConfig = function _getPopperConfig() {
    var popperConfig = {
XhmikosR's avatar
Dist.  
XhmikosR committed
2439
2440
2441
2442
2443
2444
2445
2446
2447
      placement: this._getPlacement(),
      modifiers: {
        offset: this._getOffset(),
        flip: {
          enabled: this._config.flip
        },
        preventOverflow: {
          boundariesElement: this._config.boundary
        }
XhmikosR's avatar
XhmikosR committed
2448
2449
      }
    }; // Disable Popper.js if we have a static display
XhmikosR's avatar
Dist.  
XhmikosR committed
2450
2451
2452
2453
2454
2455
2456

    if (this._config.display === 'static') {
      popperConfig.modifiers.applyStyle = {
        enabled: false
      };
    }

XhmikosR's avatar
XhmikosR committed
2457
    return _objectSpread2(_objectSpread2({}, popperConfig), this._config.popperConfig);
XhmikosR's avatar
Dist.  
XhmikosR committed
2458
  } // Static
XhmikosR's avatar
XhmikosR committed
2459
  ;
XhmikosR's avatar
Dist.  
XhmikosR committed
2460

XhmikosR's avatar
XhmikosR committed
2461
  Dropdown.dropdownInterface = function dropdownInterface(element, config) {
XhmikosR's avatar
XhmikosR committed
2462
    var data = Data.getData(element, DATA_KEY$4);
XhmikosR's avatar
Dist.  
XhmikosR committed
2463

XhmikosR's avatar
XhmikosR committed
2464
    var _config = typeof config === 'object' ? config : null;
XhmikosR's avatar
Dist.  
XhmikosR committed
2465
2466
2467
2468
2469
2470
2471

    if (!data) {
      data = new Dropdown(element, _config);
    }

    if (typeof config === 'string') {
      if (typeof data[config] === 'undefined') {
XhmikosR's avatar
XhmikosR committed
2472
        throw new TypeError("No method named \"" + config + "\"");
XhmikosR's avatar
Dist.  
XhmikosR committed
2473
2474
2475
2476
      }

      data[config]();
    }
XhmikosR's avatar
XhmikosR committed
2477
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
2478

XhmikosR's avatar
XhmikosR committed
2479
  Dropdown.jQueryInterface = function jQueryInterface(config) {
XhmikosR's avatar
Dist.  
XhmikosR committed
2480
    return this.each(function () {
XhmikosR's avatar
XhmikosR committed
2481
      Dropdown.dropdownInterface(this, config);
XhmikosR's avatar
Dist.  
XhmikosR committed
2482
    });
XhmikosR's avatar
XhmikosR committed
2483
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
2484

XhmikosR's avatar
XhmikosR committed
2485
  Dropdown.clearMenus = function clearMenus(event) {
XhmikosR's avatar
XhmikosR committed
2486
    if (event && (event.button === RIGHT_MOUSE_BUTTON || event.type === 'keyup' && event.key !== TAB_KEY)) {
XhmikosR's avatar
Dist.  
XhmikosR committed
2487
2488
2489
      return;
    }

XhmikosR's avatar
XhmikosR committed
2490
    var toggles = SelectorEngine.find(SELECTOR_DATA_TOGGLE$2);
XhmikosR's avatar
Dist.  
XhmikosR committed
2491

XhmikosR's avatar
XhmikosR committed
2492
    for (var i = 0, len = toggles.length; i < len; i++) {
XhmikosR's avatar
XhmikosR committed
2493
      var parent = Dropdown.getParentFromElement(toggles[i]);
XhmikosR's avatar
XhmikosR committed
2494
2495
      var context = Data.getData(toggles[i], DATA_KEY$4);
      var relatedTarget = {
XhmikosR's avatar
Dist.  
XhmikosR committed
2496
2497
2498
2499
2500
2501
2502
2503
2504
2505
2506
        relatedTarget: toggles[i]
      };

      if (event && event.type === 'click') {
        relatedTarget.clickEvent = event;
      }

      if (!context) {
        continue;
      }

XhmikosR's avatar
XhmikosR committed
2507
      var dropdownMenu = context._menu;
XhmikosR's avatar
Dist.  
XhmikosR committed
2508

XhmikosR's avatar
XhmikosR committed
2509
      if (!toggles[i].classList.contains(CLASS_NAME_SHOW$1)) {
XhmikosR's avatar
Dist.  
XhmikosR committed
2510
2511
2512
        continue;
      }

XhmikosR's avatar
XhmikosR committed
2513
      if (event && (event.type === 'click' && /input|textarea/i.test(event.target.tagName) || event.type === 'keyup' && event.key === TAB_KEY) && dropdownMenu.contains(event.target)) {
XhmikosR's avatar
Dist.  
XhmikosR committed
2514
2515
2516
        continue;
      }

XhmikosR's avatar
XhmikosR committed
2517
      var hideEvent = EventHandler.trigger(parent, EVENT_HIDE$1, relatedTarget);
XhmikosR's avatar
Dist.  
XhmikosR committed
2518
2519
2520
2521
2522
2523
2524
2525

      if (hideEvent.defaultPrevented) {
        continue;
      } // If this is a touch-enabled device we remove the extra
      // empty mouseover listeners we added for iOS support


      if ('ontouchstart' in document.documentElement) {
XhmikosR's avatar
XhmikosR committed
2526
2527
2528
        var _ref2;

        (_ref2 = []).concat.apply(_ref2, document.body.children).forEach(function (elem) {
XhmikosR's avatar
XhmikosR committed
2529
2530
          return EventHandler.off(elem, 'mouseover', null, noop());
        });
XhmikosR's avatar
Dist.  
XhmikosR committed
2531
2532
2533
      }

      toggles[i].setAttribute('aria-expanded', 'false');
XhmikosR's avatar
XhmikosR committed
2534
2535
2536
2537
2538

      if (context._popper) {
        context._popper.destroy();
      }

XhmikosR's avatar
XhmikosR committed
2539
2540
2541
      dropdownMenu.classList.remove(CLASS_NAME_SHOW$1);
      toggles[i].classList.remove(CLASS_NAME_SHOW$1);
      EventHandler.trigger(parent, EVENT_HIDDEN$1, relatedTarget);
XhmikosR's avatar
Dist.  
XhmikosR committed
2542
    }
XhmikosR's avatar
XhmikosR committed
2543
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
2544

XhmikosR's avatar
XhmikosR committed
2545
2546
  Dropdown.getParentFromElement = function getParentFromElement(element) {
    return getElementFromSelector(element) || element.parentNode;
XhmikosR's avatar
XhmikosR committed
2547
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
2548

XhmikosR's avatar
XhmikosR committed
2549
  Dropdown.dataApiKeydownHandler = function dataApiKeydownHandler(event) {
XhmikosR's avatar
Dist.  
XhmikosR committed
2550
2551
2552
2553
2554
2555
2556
    // If not input/textarea:
    //  - And not a key in REGEXP_KEYDOWN => not a dropdown command
    // If input/textarea:
    //  - If space key => not a dropdown command
    //  - If key is other than escape
    //    - If key is not up or down => not a dropdown command
    //    - If trigger inside the menu => not a dropdown command
XhmikosR's avatar
XhmikosR committed
2557
    if (/input|textarea/i.test(event.target.tagName) ? event.key === SPACE_KEY || event.key !== ESCAPE_KEY && (event.key !== ARROW_DOWN_KEY && event.key !== ARROW_UP_KEY || event.target.closest(SELECTOR_MENU)) : !REGEXP_KEYDOWN.test(event.key)) {
XhmikosR's avatar
Dist.  
XhmikosR committed
2558
2559
2560
2561
2562
2563
      return;
    }

    event.preventDefault();
    event.stopPropagation();

XhmikosR's avatar
XhmikosR committed
2564
    if (this.disabled || this.classList.contains(CLASS_NAME_DISABLED$1)) {
XhmikosR's avatar
Dist.  
XhmikosR committed
2565
2566
2567
      return;
    }

XhmikosR's avatar
XhmikosR committed
2568
    var parent = Dropdown.getParentFromElement(this);
XhmikosR's avatar
XhmikosR committed
2569
    var isActive = this.classList.contains(CLASS_NAME_SHOW$1);
XhmikosR's avatar
Dist.  
XhmikosR committed
2570

XhmikosR's avatar
XhmikosR committed
2571
    if (event.key === ESCAPE_KEY) {
XhmikosR's avatar
XhmikosR committed
2572
2573
2574
2575
2576
      var button = this.matches(SELECTOR_DATA_TOGGLE$2) ? this : SelectorEngine.prev(this, SELECTOR_DATA_TOGGLE$2)[0];
      button.focus();
      Dropdown.clearMenus();
      return;
    }
XhmikosR's avatar
Dist.  
XhmikosR committed
2577

XhmikosR's avatar
XhmikosR committed
2578
    if (!isActive || event.key === SPACE_KEY) {
XhmikosR's avatar
XhmikosR committed
2579
      Dropdown.clearMenus();
XhmikosR's avatar
Dist.  
XhmikosR committed
2580
2581
2582
      return;
    }

XhmikosR's avatar
XhmikosR committed
2583
    var items = SelectorEngine.find(SELECTOR_VISIBLE_ITEMS, parent).filter(isVisible);
XhmikosR's avatar
Dist.  
XhmikosR committed
2584
2585
2586
2587
2588

    if (!items.length) {
      return;
    }

XhmikosR's avatar
XhmikosR committed
2589
    var index = items.indexOf(event.target);
XhmikosR's avatar
Dist.  
XhmikosR committed
2590

XhmikosR's avatar
XhmikosR committed
2591
    if (event.key === ARROW_UP_KEY && index > 0) {
XhmikosR's avatar
Dist.  
XhmikosR committed
2592
2593
2594
2595
      // Up
      index--;
    }

XhmikosR's avatar
XhmikosR committed
2596
    if (event.key === ARROW_DOWN_KEY && index < items.length - 1) {
XhmikosR's avatar
Dist.  
XhmikosR committed
2597
2598
      // Down
      index++;
XhmikosR's avatar
XhmikosR committed
2599
2600
    } // index is -1 if the first keydown is an ArrowUp

XhmikosR's avatar
Dist.  
XhmikosR committed
2601

XhmikosR's avatar
XhmikosR committed
2602
    index = index === -1 ? 0 : index;
XhmikosR's avatar
Dist.  
XhmikosR committed
2603
    items[index].focus();
XhmikosR's avatar
XhmikosR committed
2604
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
2605

XhmikosR's avatar
XhmikosR committed
2606
  Dropdown.getInstance = function getInstance(element) {
XhmikosR's avatar
Dist.  
XhmikosR committed
2607
    return Data.getData(element, DATA_KEY$4);
XhmikosR's avatar
XhmikosR committed
2608
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
2609

XhmikosR's avatar
XhmikosR committed
2610
2611
2612
2613
2614
2615
2616
2617
2618
2619
2620
2621
2622
2623
2624
2625
2626
2627
2628
  _createClass(Dropdown, null, [{
    key: "VERSION",
    get: function get() {
      return VERSION$4;
    }
  }, {
    key: "Default",
    get: function get() {
      return Default$2;
    }
  }, {
    key: "DefaultType",
    get: function get() {
      return DefaultType$2;
    }
  }]);

  return Dropdown;
}();
XhmikosR's avatar
Dist.  
XhmikosR committed
2629
2630
2631
2632
2633
2634
2635
/**
 * ------------------------------------------------------------------------
 * Data Api implementation
 * ------------------------------------------------------------------------
 */


XhmikosR's avatar
XhmikosR committed
2636
2637
2638
2639
2640
EventHandler.on(document, EVENT_KEYDOWN_DATA_API, SELECTOR_DATA_TOGGLE$2, Dropdown.dataApiKeydownHandler);
EventHandler.on(document, EVENT_KEYDOWN_DATA_API, SELECTOR_MENU, Dropdown.dataApiKeydownHandler);
EventHandler.on(document, EVENT_CLICK_DATA_API$4, Dropdown.clearMenus);
EventHandler.on(document, EVENT_KEYUP_DATA_API, Dropdown.clearMenus);
EventHandler.on(document, EVENT_CLICK_DATA_API$4, SELECTOR_DATA_TOGGLE$2, function (event) {
XhmikosR's avatar
Dist.  
XhmikosR committed
2641
2642
  event.preventDefault();
  event.stopPropagation();
XhmikosR's avatar
XhmikosR committed
2643
  Dropdown.dropdownInterface(this, 'toggle');
XhmikosR's avatar
Dist.  
XhmikosR committed
2644
});
XhmikosR's avatar
XhmikosR committed
2645
EventHandler.on(document, EVENT_CLICK_DATA_API$4, SELECTOR_FORM_CHILD, function (e) {
XhmikosR's avatar
XhmikosR committed
2646
2647
  return e.stopPropagation();
});
XhmikosR's avatar
XhmikosR committed
2648
var $$5 = getjQuery();
XhmikosR's avatar
Dist.  
XhmikosR committed
2649
2650
2651
2652
2653
2654
2655
/**
 * ------------------------------------------------------------------------
 * jQuery
 * ------------------------------------------------------------------------
 * add .dropdown to jQuery only if jQuery is present
 */

2656
2657
/* istanbul ignore if */

XhmikosR's avatar
XhmikosR committed
2658
2659
2660
2661
if ($$5) {
  var JQUERY_NO_CONFLICT$4 = $$5.fn[NAME$4];
  $$5.fn[NAME$4] = Dropdown.jQueryInterface;
  $$5.fn[NAME$4].Constructor = Dropdown;
XhmikosR's avatar
Dist.  
XhmikosR committed
2662

XhmikosR's avatar
XhmikosR committed
2663
2664
2665
  $$5.fn[NAME$4].noConflict = function () {
    $$5.fn[NAME$4] = JQUERY_NO_CONFLICT$4;
    return Dropdown.jQueryInterface;
XhmikosR's avatar
Dist.  
XhmikosR committed
2666
2667
2668
2669
2670
2671
2672
2673
2674
  };
}

/**
 * ------------------------------------------------------------------------
 * Constants
 * ------------------------------------------------------------------------
 */

XhmikosR's avatar
XhmikosR committed
2675
var NAME$5 = 'modal';
2676
var VERSION$5 = '5.0.0-alpha1';
XhmikosR's avatar
XhmikosR committed
2677
2678
2679
var DATA_KEY$5 = 'bs.modal';
var EVENT_KEY$5 = "." + DATA_KEY$5;
var DATA_API_KEY$5 = '.data-api';
XhmikosR's avatar
XhmikosR committed
2680
var ESCAPE_KEY$1 = 'Escape';
XhmikosR's avatar
XhmikosR committed
2681
var Default$3 = {
XhmikosR's avatar
Dist.  
XhmikosR committed
2682
2683
2684
2685
2686
  backdrop: true,
  keyboard: true,
  focus: true,
  show: true
};
XhmikosR's avatar
XhmikosR committed
2687
var DefaultType$3 = {
XhmikosR's avatar
Dist.  
XhmikosR committed
2688
2689
2690
2691
2692
  backdrop: '(boolean|string)',
  keyboard: 'boolean',
  focus: 'boolean',
  show: 'boolean'
};
XhmikosR's avatar
XhmikosR committed
2693
2694
2695
2696
2697
2698
2699
2700
2701
2702
2703
2704
2705
2706
2707
2708
2709
2710
2711
2712
2713
2714
2715
2716
var EVENT_HIDE$2 = "hide" + EVENT_KEY$5;
var EVENT_HIDE_PREVENTED = "hidePrevented" + EVENT_KEY$5;
var EVENT_HIDDEN$2 = "hidden" + EVENT_KEY$5;
var EVENT_SHOW$2 = "show" + EVENT_KEY$5;
var EVENT_SHOWN$2 = "shown" + EVENT_KEY$5;
var EVENT_FOCUSIN = "focusin" + EVENT_KEY$5;
var EVENT_RESIZE = "resize" + EVENT_KEY$5;
var EVENT_CLICK_DISMISS = "click.dismiss" + EVENT_KEY$5;
var EVENT_KEYDOWN_DISMISS = "keydown.dismiss" + EVENT_KEY$5;
var EVENT_MOUSEUP_DISMISS = "mouseup.dismiss" + EVENT_KEY$5;
var EVENT_MOUSEDOWN_DISMISS = "mousedown.dismiss" + EVENT_KEY$5;
var EVENT_CLICK_DATA_API$5 = "click" + EVENT_KEY$5 + DATA_API_KEY$5;
var CLASS_NAME_SCROLLBAR_MEASURER = 'modal-scrollbar-measure';
var CLASS_NAME_BACKDROP = 'modal-backdrop';
var CLASS_NAME_OPEN = 'modal-open';
var CLASS_NAME_FADE = 'fade';
var CLASS_NAME_SHOW$2 = 'show';
var CLASS_NAME_STATIC = 'modal-static';
var SELECTOR_DIALOG = '.modal-dialog';
var SELECTOR_MODAL_BODY = '.modal-body';
var SELECTOR_DATA_TOGGLE$3 = '[data-toggle="modal"]';
var SELECTOR_DATA_DISMISS = '[data-dismiss="modal"]';
var SELECTOR_FIXED_CONTENT = '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top';
var SELECTOR_STICKY_CONTENT = '.sticky-top';
XhmikosR's avatar
XhmikosR committed
2717
2718
2719
2720
2721
/**
 * ------------------------------------------------------------------------
 * Class Definition
 * ------------------------------------------------------------------------
 */
XhmikosR's avatar
Dist.  
XhmikosR committed
2722

XhmikosR's avatar
XhmikosR committed
2723
var Modal = /*#__PURE__*/function () {
XhmikosR's avatar
XhmikosR committed
2724
  function Modal(element, config) {
XhmikosR's avatar
Dist.  
XhmikosR committed
2725
2726
    this._config = this._getConfig(config);
    this._element = element;
XhmikosR's avatar
XhmikosR committed
2727
    this._dialog = SelectorEngine.findOne(SELECTOR_DIALOG, element);
XhmikosR's avatar
Dist.  
XhmikosR committed
2728
2729
2730
2731
2732
2733
2734
2735
2736
2737
    this._backdrop = null;
    this._isShown = false;
    this._isBodyOverflowing = false;
    this._ignoreBackdropClick = false;
    this._isTransitioning = false;
    this._scrollbarWidth = 0;
    Data.setData(element, DATA_KEY$5, this);
  } // Getters


XhmikosR's avatar
XhmikosR committed
2738
  var _proto = Modal.prototype;
XhmikosR's avatar
Dist.  
XhmikosR committed
2739

XhmikosR's avatar
XhmikosR committed
2740
2741
  // Public
  _proto.toggle = function toggle(relatedTarget) {
XhmikosR's avatar
Dist.  
XhmikosR committed
2742
    return this._isShown ? this.hide() : this.show(relatedTarget);
XhmikosR's avatar
XhmikosR committed
2743
2744
2745
2746
  };

  _proto.show = function show(relatedTarget) {
    var _this = this;
XhmikosR's avatar
Dist.  
XhmikosR committed
2747
2748
2749
2750
2751

    if (this._isShown || this._isTransitioning) {
      return;
    }

XhmikosR's avatar
XhmikosR committed
2752
    if (this._element.classList.contains(CLASS_NAME_FADE)) {
XhmikosR's avatar
Dist.  
XhmikosR committed
2753
2754
2755
      this._isTransitioning = true;
    }

XhmikosR's avatar
XhmikosR committed
2756
    var showEvent = EventHandler.trigger(this._element, EVENT_SHOW$2, {
XhmikosR's avatar
XhmikosR committed
2757
      relatedTarget: relatedTarget
XhmikosR's avatar
Dist.  
XhmikosR committed
2758
2759
2760
2761
2762
2763
2764
2765
2766
2767
2768
2769
2770
2771
2772
2773
2774
2775
    });

    if (this._isShown || showEvent.defaultPrevented) {
      return;
    }

    this._isShown = true;

    this._checkScrollbar();

    this._setScrollbar();

    this._adjustDialog();

    this._setEscapeEvent();

    this._setResizeEvent();

XhmikosR's avatar
XhmikosR committed
2776
    EventHandler.on(this._element, EVENT_CLICK_DISMISS, SELECTOR_DATA_DISMISS, function (event) {
XhmikosR's avatar
XhmikosR committed
2777
2778
      return _this.hide(event);
    });
XhmikosR's avatar
XhmikosR committed
2779
2780
    EventHandler.on(this._dialog, EVENT_MOUSEDOWN_DISMISS, function () {
      EventHandler.one(_this._element, EVENT_MOUSEUP_DISMISS, function (event) {
XhmikosR's avatar
XhmikosR committed
2781
2782
        if (event.target === _this._element) {
          _this._ignoreBackdropClick = true;
XhmikosR's avatar
Dist.  
XhmikosR committed
2783
2784
2785
2786
        }
      });
    });

XhmikosR's avatar
XhmikosR committed
2787
2788
2789
2790
2791
2792
2793
    this._showBackdrop(function () {
      return _this._showElement(relatedTarget);
    });
  };

  _proto.hide = function hide(event) {
    var _this2 = this;
XhmikosR's avatar
Dist.  
XhmikosR committed
2794
2795
2796
2797
2798
2799
2800
2801
2802

    if (event) {
      event.preventDefault();
    }

    if (!this._isShown || this._isTransitioning) {
      return;
    }

XhmikosR's avatar
XhmikosR committed
2803
    var hideEvent = EventHandler.trigger(this._element, EVENT_HIDE$2);
XhmikosR's avatar
Dist.  
XhmikosR committed
2804

2805
    if (hideEvent.defaultPrevented) {
XhmikosR's avatar
Dist.  
XhmikosR committed
2806
2807
2808
2809
2810
      return;
    }

    this._isShown = false;

XhmikosR's avatar
XhmikosR committed
2811
    var transition = this._element.classList.contains(CLASS_NAME_FADE);
XhmikosR's avatar
Dist.  
XhmikosR committed
2812
2813
2814
2815
2816
2817
2818
2819
2820

    if (transition) {
      this._isTransitioning = true;
    }

    this._setEscapeEvent();

    this._setResizeEvent();

XhmikosR's avatar
XhmikosR committed
2821
    EventHandler.off(document, EVENT_FOCUSIN);
XhmikosR's avatar
Dist.  
XhmikosR committed
2822

XhmikosR's avatar
XhmikosR committed
2823
    this._element.classList.remove(CLASS_NAME_SHOW$2);
XhmikosR's avatar
Dist.  
XhmikosR committed
2824

XhmikosR's avatar
XhmikosR committed
2825
2826
    EventHandler.off(this._element, EVENT_CLICK_DISMISS);
    EventHandler.off(this._dialog, EVENT_MOUSEDOWN_DISMISS);
XhmikosR's avatar
Dist.  
XhmikosR committed
2827
2828

    if (transition) {
XhmikosR's avatar
XhmikosR committed
2829
2830
2831
2832
      var transitionDuration = getTransitionDurationFromElement(this._element);
      EventHandler.one(this._element, TRANSITION_END, function (event) {
        return _this2._hideModal(event);
      });
XhmikosR's avatar
Dist.  
XhmikosR committed
2833
2834
2835
2836
      emulateTransitionEnd(this._element, transitionDuration);
    } else {
      this._hideModal();
    }
XhmikosR's avatar
XhmikosR committed
2837
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
2838

XhmikosR's avatar
XhmikosR committed
2839
2840
2841
2842
  _proto.dispose = function dispose() {
    [window, this._element, this._dialog].forEach(function (htmlElement) {
      return EventHandler.off(htmlElement, EVENT_KEY$5);
    });
XhmikosR's avatar
Dist.  
XhmikosR committed
2843
    /**
XhmikosR's avatar
XhmikosR committed
2844
     * `document` has 2 events `EVENT_FOCUSIN` and `EVENT_CLICK_DATA_API`
XhmikosR's avatar
Dist.  
XhmikosR committed
2845
     * Do not move `document` in `htmlElements` array
XhmikosR's avatar
XhmikosR committed
2846
     * It will remove `EVENT_CLICK_DATA_API` event that should remain
XhmikosR's avatar
Dist.  
XhmikosR committed
2847
2848
     */

XhmikosR's avatar
XhmikosR committed
2849
    EventHandler.off(document, EVENT_FOCUSIN);
XhmikosR's avatar
Dist.  
XhmikosR committed
2850
2851
2852
2853
2854
2855
2856
2857
2858
2859
    Data.removeData(this._element, DATA_KEY$5);
    this._config = null;
    this._element = null;
    this._dialog = null;
    this._backdrop = null;
    this._isShown = null;
    this._isBodyOverflowing = null;
    this._ignoreBackdropClick = null;
    this._isTransitioning = null;
    this._scrollbarWidth = null;
XhmikosR's avatar
XhmikosR committed
2860
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
2861

XhmikosR's avatar
XhmikosR committed
2862
  _proto.handleUpdate = function handleUpdate() {
XhmikosR's avatar
Dist.  
XhmikosR committed
2863
2864
    this._adjustDialog();
  } // Private
XhmikosR's avatar
XhmikosR committed
2865
  ;
XhmikosR's avatar
Dist.  
XhmikosR committed
2866

XhmikosR's avatar
XhmikosR committed
2867
  _proto._getConfig = function _getConfig(config) {
XhmikosR's avatar
XhmikosR committed
2868
    config = _objectSpread2(_objectSpread2({}, Default$3), config);
XhmikosR's avatar
Dist.  
XhmikosR committed
2869
2870
    typeCheckConfig(NAME$5, config, DefaultType$3);
    return config;
XhmikosR's avatar
XhmikosR committed
2871
2872
2873
2874
  };

  _proto._showElement = function _showElement(relatedTarget) {
    var _this3 = this;
XhmikosR's avatar
Dist.  
XhmikosR committed
2875

XhmikosR's avatar
XhmikosR committed
2876
    var transition = this._element.classList.contains(CLASS_NAME_FADE);
XhmikosR's avatar
Dist.  
XhmikosR committed
2877

XhmikosR's avatar
XhmikosR committed
2878
    var modalBody = SelectorEngine.findOne(SELECTOR_MODAL_BODY, this._dialog);
XhmikosR's avatar
XhmikosR committed
2879

XhmikosR's avatar
Dist.  
XhmikosR committed
2880
2881
2882
2883
2884
2885
2886
2887
2888
2889
2890
    if (!this._element.parentNode || this._element.parentNode.nodeType !== Node.ELEMENT_NODE) {
      // Don't move modal's DOM position
      document.body.appendChild(this._element);
    }

    this._element.style.display = 'block';

    this._element.removeAttribute('aria-hidden');

    this._element.setAttribute('aria-modal', true);

XhmikosR's avatar
XhmikosR committed
2891
2892
2893
    this._element.scrollTop = 0;

    if (modalBody) {
XhmikosR's avatar
XhmikosR committed
2894
      modalBody.scrollTop = 0;
XhmikosR's avatar
Dist.  
XhmikosR committed
2895
2896
2897
2898
2899
2900
    }

    if (transition) {
      reflow(this._element);
    }

XhmikosR's avatar
XhmikosR committed
2901
    this._element.classList.add(CLASS_NAME_SHOW$2);
XhmikosR's avatar
Dist.  
XhmikosR committed
2902
2903
2904
2905
2906

    if (this._config.focus) {
      this._enforceFocus();
    }

XhmikosR's avatar
XhmikosR committed
2907
2908
2909
    var transitionComplete = function transitionComplete() {
      if (_this3._config.focus) {
        _this3._element.focus();
XhmikosR's avatar
Dist.  
XhmikosR committed
2910
2911
      }

XhmikosR's avatar
XhmikosR committed
2912
      _this3._isTransitioning = false;
XhmikosR's avatar
XhmikosR committed
2913
      EventHandler.trigger(_this3._element, EVENT_SHOWN$2, {
XhmikosR's avatar
XhmikosR committed
2914
        relatedTarget: relatedTarget
XhmikosR's avatar
Dist.  
XhmikosR committed
2915
2916
2917
2918
      });
    };

    if (transition) {
XhmikosR's avatar
XhmikosR committed
2919
      var transitionDuration = getTransitionDurationFromElement(this._dialog);
XhmikosR's avatar
Dist.  
XhmikosR committed
2920
2921
2922
2923
2924
      EventHandler.one(this._dialog, TRANSITION_END, transitionComplete);
      emulateTransitionEnd(this._dialog, transitionDuration);
    } else {
      transitionComplete();
    }
XhmikosR's avatar
XhmikosR committed
2925
2926
2927
2928
  };

  _proto._enforceFocus = function _enforceFocus() {
    var _this4 = this;
XhmikosR's avatar
Dist.  
XhmikosR committed
2929

XhmikosR's avatar
XhmikosR committed
2930
    EventHandler.off(document, EVENT_FOCUSIN); // guard against infinite focus loop
XhmikosR's avatar
Dist.  
XhmikosR committed
2931

XhmikosR's avatar
XhmikosR committed
2932
    EventHandler.on(document, EVENT_FOCUSIN, function (event) {
XhmikosR's avatar
XhmikosR committed
2933
2934
      if (document !== event.target && _this4._element !== event.target && !_this4._element.contains(event.target)) {
        _this4._element.focus();
XhmikosR's avatar
Dist.  
XhmikosR committed
2935
2936
      }
    });
XhmikosR's avatar
XhmikosR committed
2937
2938
2939
2940
  };

  _proto._setEscapeEvent = function _setEscapeEvent() {
    var _this5 = this;
XhmikosR's avatar
Dist.  
XhmikosR committed
2941

XhmikosR's avatar
XhmikosR committed
2942
2943
    if (this._isShown) {
      EventHandler.on(this._element, EVENT_KEYDOWN_DISMISS, function (event) {
XhmikosR's avatar
XhmikosR committed
2944
        if (_this5._config.keyboard && event.key === ESCAPE_KEY$1) {
XhmikosR's avatar
XhmikosR committed
2945
2946
2947
          event.preventDefault();

          _this5.hide();
XhmikosR's avatar
XhmikosR committed
2948
        } else if (!_this5._config.keyboard && event.key === ESCAPE_KEY$1) {
XhmikosR's avatar
XhmikosR committed
2949
          _this5._triggerBackdropTransition();
XhmikosR's avatar
Dist.  
XhmikosR committed
2950
2951
        }
      });
2952
    } else {
XhmikosR's avatar
XhmikosR committed
2953
      EventHandler.off(this._element, EVENT_KEYDOWN_DISMISS);
XhmikosR's avatar
Dist.  
XhmikosR committed
2954
    }
XhmikosR's avatar
XhmikosR committed
2955
2956
2957
2958
  };

  _proto._setResizeEvent = function _setResizeEvent() {
    var _this6 = this;
XhmikosR's avatar
Dist.  
XhmikosR committed
2959
2960

    if (this._isShown) {
XhmikosR's avatar
XhmikosR committed
2961
      EventHandler.on(window, EVENT_RESIZE, function () {
2962
        return _this6._adjustDialog();
XhmikosR's avatar
XhmikosR committed
2963
      });
XhmikosR's avatar
Dist.  
XhmikosR committed
2964
    } else {
XhmikosR's avatar
XhmikosR committed
2965
      EventHandler.off(window, EVENT_RESIZE);
XhmikosR's avatar
Dist.  
XhmikosR committed
2966
    }
XhmikosR's avatar
XhmikosR committed
2967
2968
2969
2970
  };

  _proto._hideModal = function _hideModal() {
    var _this7 = this;
XhmikosR's avatar
Dist.  
XhmikosR committed
2971
2972
2973
2974
2975
2976
2977
2978
2979

    this._element.style.display = 'none';

    this._element.setAttribute('aria-hidden', true);

    this._element.removeAttribute('aria-modal');

    this._isTransitioning = false;

XhmikosR's avatar
XhmikosR committed
2980
    this._showBackdrop(function () {
XhmikosR's avatar
XhmikosR committed
2981
      document.body.classList.remove(CLASS_NAME_OPEN);
XhmikosR's avatar
Dist.  
XhmikosR committed
2982

XhmikosR's avatar
XhmikosR committed
2983
      _this7._resetAdjustments();
XhmikosR's avatar
Dist.  
XhmikosR committed
2984

XhmikosR's avatar
XhmikosR committed
2985
      _this7._resetScrollbar();
XhmikosR's avatar
Dist.  
XhmikosR committed
2986

XhmikosR's avatar
XhmikosR committed
2987
      EventHandler.trigger(_this7._element, EVENT_HIDDEN$2);
XhmikosR's avatar
Dist.  
XhmikosR committed
2988
    });
XhmikosR's avatar
XhmikosR committed
2989
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
2990

XhmikosR's avatar
XhmikosR committed
2991
  _proto._removeBackdrop = function _removeBackdrop() {
2992
    this._backdrop.parentNode.removeChild(this._backdrop);
XhmikosR's avatar
Dist.  
XhmikosR committed
2993

2994
    this._backdrop = null;
XhmikosR's avatar
XhmikosR committed
2995
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
2996

XhmikosR's avatar
XhmikosR committed
2997
2998
2999
  _proto._showBackdrop = function _showBackdrop(callback) {
    var _this8 = this;

XhmikosR's avatar
XhmikosR committed
3000
    var animate = this._element.classList.contains(CLASS_NAME_FADE) ? CLASS_NAME_FADE : '';
XhmikosR's avatar
Dist.  
XhmikosR committed
3001
3002
3003

    if (this._isShown && this._config.backdrop) {
      this._backdrop = document.createElement('div');
XhmikosR's avatar
XhmikosR committed
3004
      this._backdrop.className = CLASS_NAME_BACKDROP;
XhmikosR's avatar
Dist.  
XhmikosR committed
3005
3006
3007
3008
3009
3010

      if (animate) {
        this._backdrop.classList.add(animate);
      }

      document.body.appendChild(this._backdrop);
XhmikosR's avatar
XhmikosR committed
3011
      EventHandler.on(this._element, EVENT_CLICK_DISMISS, function (event) {
XhmikosR's avatar
XhmikosR committed
3012
3013
        if (_this8._ignoreBackdropClick) {
          _this8._ignoreBackdropClick = false;
XhmikosR's avatar
Dist.  
XhmikosR committed
3014
3015
3016
3017
3018
3019
3020
          return;
        }

        if (event.target !== event.currentTarget) {
          return;
        }

XhmikosR's avatar
XhmikosR committed
3021
        _this8._triggerBackdropTransition();
XhmikosR's avatar
Dist.  
XhmikosR committed
3022
3023
3024
3025
3026
3027
      });

      if (animate) {
        reflow(this._backdrop);
      }

XhmikosR's avatar
XhmikosR committed
3028
      this._backdrop.classList.add(CLASS_NAME_SHOW$2);
XhmikosR's avatar
Dist.  
XhmikosR committed
3029
3030
3031
3032
3033
3034

      if (!animate) {
        callback();
        return;
      }

XhmikosR's avatar
XhmikosR committed
3035
      var backdropTransitionDuration = getTransitionDurationFromElement(this._backdrop);
XhmikosR's avatar
Dist.  
XhmikosR committed
3036
3037
3038
      EventHandler.one(this._backdrop, TRANSITION_END, callback);
      emulateTransitionEnd(this._backdrop, backdropTransitionDuration);
    } else if (!this._isShown && this._backdrop) {
XhmikosR's avatar
XhmikosR committed
3039
      this._backdrop.classList.remove(CLASS_NAME_SHOW$2);
XhmikosR's avatar
Dist.  
XhmikosR committed
3040

XhmikosR's avatar
XhmikosR committed
3041
3042
      var callbackRemove = function callbackRemove() {
        _this8._removeBackdrop();
XhmikosR's avatar
Dist.  
XhmikosR committed
3043

3044
        callback();
XhmikosR's avatar
Dist.  
XhmikosR committed
3045
3046
      };

XhmikosR's avatar
XhmikosR committed
3047
      if (this._element.classList.contains(CLASS_NAME_FADE)) {
XhmikosR's avatar
XhmikosR committed
3048
3049
        var _backdropTransitionDuration = getTransitionDurationFromElement(this._backdrop);

XhmikosR's avatar
Dist.  
XhmikosR committed
3050
        EventHandler.one(this._backdrop, TRANSITION_END, callbackRemove);
XhmikosR's avatar
XhmikosR committed
3051
        emulateTransitionEnd(this._backdrop, _backdropTransitionDuration);
XhmikosR's avatar
Dist.  
XhmikosR committed
3052
3053
3054
      } else {
        callbackRemove();
      }
3055
    } else {
XhmikosR's avatar
Dist.  
XhmikosR committed
3056
3057
      callback();
    }
XhmikosR's avatar
XhmikosR committed
3058
3059
3060
3061
3062
3063
  };

  _proto._triggerBackdropTransition = function _triggerBackdropTransition() {
    var _this9 = this;

    if (this._config.backdrop === 'static') {
XhmikosR's avatar
XhmikosR committed
3064
      var hideEvent = EventHandler.trigger(this._element, EVENT_HIDE_PREVENTED);
XhmikosR's avatar
XhmikosR committed
3065
3066
3067
3068
3069

      if (hideEvent.defaultPrevented) {
        return;
      }

XhmikosR's avatar
XhmikosR committed
3070
      this._element.classList.add(CLASS_NAME_STATIC);
XhmikosR's avatar
XhmikosR committed
3071
3072
3073

      var modalTransitionDuration = getTransitionDurationFromElement(this._element);
      EventHandler.one(this._element, TRANSITION_END, function () {
XhmikosR's avatar
XhmikosR committed
3074
        _this9._element.classList.remove(CLASS_NAME_STATIC);
XhmikosR's avatar
XhmikosR committed
3075
3076
3077
3078
3079
3080
3081
      });
      emulateTransitionEnd(this._element, modalTransitionDuration);

      this._element.focus();
    } else {
      this.hide();
    }
XhmikosR's avatar
Dist.  
XhmikosR committed
3082
3083
3084
  } // ----------------------------------------------------------------------
  // the following methods are used to handle overflowing modals
  // ----------------------------------------------------------------------
XhmikosR's avatar
XhmikosR committed
3085
  ;
XhmikosR's avatar
Dist.  
XhmikosR committed
3086

XhmikosR's avatar
XhmikosR committed
3087
3088
  _proto._adjustDialog = function _adjustDialog() {
    var isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight;
XhmikosR's avatar
Dist.  
XhmikosR committed
3089
3090

    if (!this._isBodyOverflowing && isModalOverflowing) {
XhmikosR's avatar
XhmikosR committed
3091
      this._element.style.paddingLeft = this._scrollbarWidth + "px";
XhmikosR's avatar
Dist.  
XhmikosR committed
3092
3093
3094
    }

    if (this._isBodyOverflowing && !isModalOverflowing) {
XhmikosR's avatar
XhmikosR committed
3095
      this._element.style.paddingRight = this._scrollbarWidth + "px";
XhmikosR's avatar
Dist.  
XhmikosR committed
3096
    }
XhmikosR's avatar
XhmikosR committed
3097
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
3098

XhmikosR's avatar
XhmikosR committed
3099
  _proto._resetAdjustments = function _resetAdjustments() {
XhmikosR's avatar
Dist.  
XhmikosR committed
3100
3101
    this._element.style.paddingLeft = '';
    this._element.style.paddingRight = '';
XhmikosR's avatar
XhmikosR committed
3102
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
3103

XhmikosR's avatar
XhmikosR committed
3104
3105
  _proto._checkScrollbar = function _checkScrollbar() {
    var rect = document.body.getBoundingClientRect();
XhmikosR's avatar
XhmikosR committed
3106
    this._isBodyOverflowing = Math.round(rect.left + rect.right) < window.innerWidth;
XhmikosR's avatar
Dist.  
XhmikosR committed
3107
    this._scrollbarWidth = this._getScrollbarWidth();
XhmikosR's avatar
XhmikosR committed
3108
3109
3110
  };

  _proto._setScrollbar = function _setScrollbar() {
XhmikosR's avatar
XhmikosR committed
3111
    var _this10 = this;
XhmikosR's avatar
Dist.  
XhmikosR committed
3112
3113
3114
3115
3116

    if (this._isBodyOverflowing) {
      // Note: DOMNode.style.paddingRight returns the actual value or '' if not set
      //   while $(DOMNode).css('padding-right') returns the calculated value or 0 if not set
      // Adjust fixed content padding
XhmikosR's avatar
XhmikosR committed
3117
      SelectorEngine.find(SELECTOR_FIXED_CONTENT).forEach(function (element) {
XhmikosR's avatar
XhmikosR committed
3118
3119
        var actualPadding = element.style.paddingRight;
        var calculatedPadding = window.getComputedStyle(element)['padding-right'];
XhmikosR's avatar
Dist.  
XhmikosR committed
3120
        Manipulator.setDataAttribute(element, 'padding-right', actualPadding);
XhmikosR's avatar
XhmikosR committed
3121
        element.style.paddingRight = parseFloat(calculatedPadding) + _this10._scrollbarWidth + "px";
XhmikosR's avatar
Dist.  
XhmikosR committed
3122
3123
      }); // Adjust sticky content margin

XhmikosR's avatar
XhmikosR committed
3124
      SelectorEngine.find(SELECTOR_STICKY_CONTENT).forEach(function (element) {
XhmikosR's avatar
XhmikosR committed
3125
3126
        var actualMargin = element.style.marginRight;
        var calculatedMargin = window.getComputedStyle(element)['margin-right'];
XhmikosR's avatar
Dist.  
XhmikosR committed
3127
        Manipulator.setDataAttribute(element, 'margin-right', actualMargin);
XhmikosR's avatar
XhmikosR committed
3128
        element.style.marginRight = parseFloat(calculatedMargin) - _this10._scrollbarWidth + "px";
XhmikosR's avatar
Dist.  
XhmikosR committed
3129
3130
      }); // Adjust body padding

XhmikosR's avatar
XhmikosR committed
3131
3132
      var actualPadding = document.body.style.paddingRight;
      var calculatedPadding = window.getComputedStyle(document.body)['padding-right'];
XhmikosR's avatar
Dist.  
XhmikosR committed
3133
      Manipulator.setDataAttribute(document.body, 'padding-right', actualPadding);
XhmikosR's avatar
XhmikosR committed
3134
      document.body.style.paddingRight = parseFloat(calculatedPadding) + this._scrollbarWidth + "px";
XhmikosR's avatar
Dist.  
XhmikosR committed
3135
3136
    }

XhmikosR's avatar
XhmikosR committed
3137
    document.body.classList.add(CLASS_NAME_OPEN);
XhmikosR's avatar
XhmikosR committed
3138
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
3139

XhmikosR's avatar
XhmikosR committed
3140
  _proto._resetScrollbar = function _resetScrollbar() {
XhmikosR's avatar
Dist.  
XhmikosR committed
3141
    // Restore fixed content padding
XhmikosR's avatar
XhmikosR committed
3142
    SelectorEngine.find(SELECTOR_FIXED_CONTENT).forEach(function (element) {
XhmikosR's avatar
XhmikosR committed
3143
      var padding = Manipulator.getDataAttribute(element, 'padding-right');
XhmikosR's avatar
Dist.  
XhmikosR committed
3144
3145
3146
3147
3148
3149
3150

      if (typeof padding !== 'undefined') {
        Manipulator.removeDataAttribute(element, 'padding-right');
        element.style.paddingRight = padding;
      }
    }); // Restore sticky content and navbar-toggler margin

XhmikosR's avatar
XhmikosR committed
3151
    SelectorEngine.find("" + SELECTOR_STICKY_CONTENT).forEach(function (element) {
XhmikosR's avatar
XhmikosR committed
3152
      var margin = Manipulator.getDataAttribute(element, 'margin-right');
XhmikosR's avatar
Dist.  
XhmikosR committed
3153
3154
3155
3156
3157
3158
3159

      if (typeof margin !== 'undefined') {
        Manipulator.removeDataAttribute(element, 'margin-right');
        element.style.marginRight = margin;
      }
    }); // Restore body padding

XhmikosR's avatar
XhmikosR committed
3160
    var padding = Manipulator.getDataAttribute(document.body, 'padding-right');
XhmikosR's avatar
Dist.  
XhmikosR committed
3161
3162
3163
3164
3165
3166
3167

    if (typeof padding === 'undefined') {
      document.body.style.paddingRight = '';
    } else {
      Manipulator.removeDataAttribute(document.body, 'padding-right');
      document.body.style.paddingRight = padding;
    }
XhmikosR's avatar
XhmikosR committed
3168
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
3169

XhmikosR's avatar
XhmikosR committed
3170
  _proto._getScrollbarWidth = function _getScrollbarWidth() {
XhmikosR's avatar
Dist.  
XhmikosR committed
3171
    // thx d.walsh
XhmikosR's avatar
XhmikosR committed
3172
    var scrollDiv = document.createElement('div');
XhmikosR's avatar
XhmikosR committed
3173
    scrollDiv.className = CLASS_NAME_SCROLLBAR_MEASURER;
XhmikosR's avatar
Dist.  
XhmikosR committed
3174
    document.body.appendChild(scrollDiv);
XhmikosR's avatar
XhmikosR committed
3175
    var scrollbarWidth = scrollDiv.getBoundingClientRect().width - scrollDiv.clientWidth;
XhmikosR's avatar
Dist.  
XhmikosR committed
3176
3177
3178
    document.body.removeChild(scrollDiv);
    return scrollbarWidth;
  } // Static
XhmikosR's avatar
XhmikosR committed
3179
  ;
XhmikosR's avatar
Dist.  
XhmikosR committed
3180

XhmikosR's avatar
XhmikosR committed
3181
  Modal.jQueryInterface = function jQueryInterface(config, relatedTarget) {
XhmikosR's avatar
Dist.  
XhmikosR committed
3182
    return this.each(function () {
XhmikosR's avatar
XhmikosR committed
3183
      var data = Data.getData(this, DATA_KEY$5);
XhmikosR's avatar
Dist.  
XhmikosR committed
3184

XhmikosR's avatar
XhmikosR committed
3185
      var _config = _objectSpread2(_objectSpread2(_objectSpread2({}, Default$3), Manipulator.getDataAttributes(this)), typeof config === 'object' && config ? config : {});
XhmikosR's avatar
Dist.  
XhmikosR committed
3186
3187
3188
3189
3190
3191
3192

      if (!data) {
        data = new Modal(this, _config);
      }

      if (typeof config === 'string') {
        if (typeof data[config] === 'undefined') {
XhmikosR's avatar
XhmikosR committed
3193
          throw new TypeError("No method named \"" + config + "\"");
XhmikosR's avatar
Dist.  
XhmikosR committed
3194
3195
3196
3197
3198
3199
3200
        }

        data[config](relatedTarget);
      } else if (_config.show) {
        data.show(relatedTarget);
      }
    });
XhmikosR's avatar
XhmikosR committed
3201
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
3202

XhmikosR's avatar
XhmikosR committed
3203
  Modal.getInstance = function getInstance(element) {
XhmikosR's avatar
Dist.  
XhmikosR committed
3204
    return Data.getData(element, DATA_KEY$5);
XhmikosR's avatar
XhmikosR committed
3205
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
3206

XhmikosR's avatar
XhmikosR committed
3207
3208
3209
3210
3211
3212
3213
3214
3215
3216
3217
3218
3219
3220
  _createClass(Modal, null, [{
    key: "VERSION",
    get: function get() {
      return VERSION$5;
    }
  }, {
    key: "Default",
    get: function get() {
      return Default$3;
    }
  }]);

  return Modal;
}();
XhmikosR's avatar
Dist.  
XhmikosR committed
3221
3222
3223
3224
3225
3226
3227
/**
 * ------------------------------------------------------------------------
 * Data Api implementation
 * ------------------------------------------------------------------------
 */


XhmikosR's avatar
XhmikosR committed
3228
EventHandler.on(document, EVENT_CLICK_DATA_API$5, SELECTOR_DATA_TOGGLE$3, function (event) {
XhmikosR's avatar
XhmikosR committed
3229
  var _this11 = this;
XhmikosR's avatar
XhmikosR committed
3230

XhmikosR's avatar
XhmikosR committed
3231
  var target = getElementFromSelector(this);
XhmikosR's avatar
Dist.  
XhmikosR committed
3232
3233
3234
3235
3236

  if (this.tagName === 'A' || this.tagName === 'AREA') {
    event.preventDefault();
  }

XhmikosR's avatar
XhmikosR committed
3237
  EventHandler.one(target, EVENT_SHOW$2, function (showEvent) {
XhmikosR's avatar
Dist.  
XhmikosR committed
3238
3239
3240
3241
3242
    if (showEvent.defaultPrevented) {
      // only register focus restorer if modal will actually get shown
      return;
    }

XhmikosR's avatar
XhmikosR committed
3243
    EventHandler.one(target, EVENT_HIDDEN$2, function () {
XhmikosR's avatar
XhmikosR committed
3244
3245
      if (isVisible(_this11)) {
        _this11.focus();
XhmikosR's avatar
Dist.  
XhmikosR committed
3246
3247
3248
      }
    });
  });
XhmikosR's avatar
XhmikosR committed
3249
  var data = Data.getData(target, DATA_KEY$5);
XhmikosR's avatar
Dist.  
XhmikosR committed
3250
3251

  if (!data) {
XhmikosR's avatar
XhmikosR committed
3252
    var config = _objectSpread2(_objectSpread2({}, Manipulator.getDataAttributes(target)), Manipulator.getDataAttributes(this));
3253

XhmikosR's avatar
Dist.  
XhmikosR committed
3254
3255
3256
3257
3258
    data = new Modal(target, config);
  }

  data.show(this);
});
XhmikosR's avatar
XhmikosR committed
3259
var $$6 = getjQuery();
XhmikosR's avatar
Dist.  
XhmikosR committed
3260
3261
3262
3263
/**
 * ------------------------------------------------------------------------
 * jQuery
 * ------------------------------------------------------------------------
3264
 * add .modal to jQuery only if jQuery is present
XhmikosR's avatar
Dist.  
XhmikosR committed
3265
3266
 */

3267
3268
/* istanbul ignore if */

XhmikosR's avatar
XhmikosR committed
3269
3270
3271
3272
if ($$6) {
  var JQUERY_NO_CONFLICT$5 = $$6.fn[NAME$5];
  $$6.fn[NAME$5] = Modal.jQueryInterface;
  $$6.fn[NAME$5].Constructor = Modal;
XhmikosR's avatar
Dist.  
XhmikosR committed
3273

XhmikosR's avatar
XhmikosR committed
3274
3275
3276
  $$6.fn[NAME$5].noConflict = function () {
    $$6.fn[NAME$5] = JQUERY_NO_CONFLICT$5;
    return Modal.jQueryInterface;
XhmikosR's avatar
Dist.  
XhmikosR committed
3277
3278
3279
3280
3281
  };
}

/**
 * --------------------------------------------------------------------------
3282
 * Bootstrap (v5.0.0-alpha1): util/sanitizer.js
XhmikosR's avatar
Dist.  
XhmikosR committed
3283
3284
3285
 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
 * --------------------------------------------------------------------------
 */
XhmikosR's avatar
XhmikosR committed
3286
3287
var uriAttrs = ['background', 'cite', 'href', 'itemtype', 'longdesc', 'poster', 'src', 'xlink:href'];
var ARIA_ATTRIBUTE_PATTERN = /^aria-[\w-]*$/i;
XhmikosR's avatar
Dist.  
XhmikosR committed
3288
3289
3290
3291
3292
3293
/**
 * A pattern that recognizes a commonly useful subset of URLs that are safe.
 *
 * Shoutout to Angular 7 https://github.com/angular/angular/blob/7.2.4/packages/core/src/sanitization/url_sanitizer.ts
 */

XhmikosR's avatar
XhmikosR committed
3294
var SAFE_URL_PATTERN = /^(?:(?:https?|mailto|ftp|tel|file):|[^#&/:?]*(?:[#/?]|$))/gi;
XhmikosR's avatar
Dist.  
XhmikosR committed
3295
3296
3297
3298
3299
3300
/**
 * A pattern that matches safe data URLs. Only matches image, video and audio types.
 *
 * Shoutout to Angular 7 https://github.com/angular/angular/blob/7.2.4/packages/core/src/sanitization/url_sanitizer.ts
 */

XhmikosR's avatar
XhmikosR committed
3301
var DATA_URL_PATTERN = /^data:(?:image\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\/(?:mpeg|mp4|ogg|webm)|audio\/(?:mp3|oga|ogg|opus));base64,[\d+/a-z]+=*$/i;
XhmikosR's avatar
Dist.  
XhmikosR committed
3302

XhmikosR's avatar
XhmikosR committed
3303
3304
var allowedAttribute = function allowedAttribute(attr, allowedAttributeList) {
  var attrName = attr.nodeName.toLowerCase();
XhmikosR's avatar
Dist.  
XhmikosR committed
3305
3306
3307

  if (allowedAttributeList.indexOf(attrName) !== -1) {
    if (uriAttrs.indexOf(attrName) !== -1) {
XhmikosR's avatar
XhmikosR committed
3308
      return SAFE_URL_PATTERN.test(attr.nodeValue) || DATA_URL_PATTERN.test(attr.nodeValue);
XhmikosR's avatar
Dist.  
XhmikosR committed
3309
3310
3311
3312
3313
    }

    return true;
  }

XhmikosR's avatar
XhmikosR committed
3314
3315
3316
  var regExp = allowedAttributeList.filter(function (attrRegex) {
    return attrRegex instanceof RegExp;
  }); // Check if a regular expression validates the attribute.
XhmikosR's avatar
Dist.  
XhmikosR committed
3317

XhmikosR's avatar
XhmikosR committed
3318
3319
  for (var i = 0, len = regExp.length; i < len; i++) {
    if (regExp[i].test(attrName)) {
XhmikosR's avatar
Dist.  
XhmikosR committed
3320
3321
3322
3323
3324
3325
3326
      return true;
    }
  }

  return false;
};

XhmikosR's avatar
XhmikosR committed
3327
var DefaultWhitelist = {
XhmikosR's avatar
Dist.  
XhmikosR committed
3328
3329
3330
3331
3332
3333
3334
3335
3336
3337
3338
3339
3340
3341
3342
3343
3344
3345
  // Global attributes allowed on any supplied element below.
  '*': ['class', 'dir', 'id', 'lang', 'role', ARIA_ATTRIBUTE_PATTERN],
  a: ['target', 'href', 'title', 'rel'],
  area: [],
  b: [],
  br: [],
  col: [],
  code: [],
  div: [],
  em: [],
  hr: [],
  h1: [],
  h2: [],
  h3: [],
  h4: [],
  h5: [],
  h6: [],
  i: [],
XhmikosR's avatar
XhmikosR committed
3346
  img: ['src', 'srcset', 'alt', 'title', 'width', 'height'],
XhmikosR's avatar
Dist.  
XhmikosR committed
3347
3348
3349
3350
3351
3352
3353
3354
3355
3356
3357
3358
3359
3360
  li: [],
  ol: [],
  p: [],
  pre: [],
  s: [],
  small: [],
  span: [],
  sub: [],
  sup: [],
  strong: [],
  u: [],
  ul: []
};
function sanitizeHtml(unsafeHtml, whiteList, sanitizeFn) {
XhmikosR's avatar
XhmikosR committed
3361
3362
  var _ref;

XhmikosR's avatar
Dist.  
XhmikosR committed
3363
3364
3365
3366
3367
3368
3369
3370
  if (!unsafeHtml.length) {
    return unsafeHtml;
  }

  if (sanitizeFn && typeof sanitizeFn === 'function') {
    return sanitizeFn(unsafeHtml);
  }

XhmikosR's avatar
XhmikosR committed
3371
3372
3373
  var domParser = new window.DOMParser();
  var createdDocument = domParser.parseFromString(unsafeHtml, 'text/html');
  var whitelistKeys = Object.keys(whiteList);
XhmikosR's avatar
XhmikosR committed
3374
3375

  var elements = (_ref = []).concat.apply(_ref, createdDocument.body.querySelectorAll('*'));
XhmikosR's avatar
Dist.  
XhmikosR committed
3376

XhmikosR's avatar
XhmikosR committed
3377
  var _loop = function _loop(i, len) {
XhmikosR's avatar
XhmikosR committed
3378
3379
    var _ref2;

XhmikosR's avatar
XhmikosR committed
3380
3381
    var el = elements[i];
    var elName = el.nodeName.toLowerCase();
XhmikosR's avatar
Dist.  
XhmikosR committed
3382
3383
3384

    if (whitelistKeys.indexOf(elName) === -1) {
      el.parentNode.removeChild(el);
XhmikosR's avatar
XhmikosR committed
3385
      return "continue";
XhmikosR's avatar
Dist.  
XhmikosR committed
3386
3387
    }

XhmikosR's avatar
XhmikosR committed
3388
3389
    var attributeList = (_ref2 = []).concat.apply(_ref2, el.attributes);

XhmikosR's avatar
XhmikosR committed
3390
3391
    var whitelistedAttributes = [].concat(whiteList['*'] || [], whiteList[elName] || []);
    attributeList.forEach(function (attr) {
XhmikosR's avatar
Dist.  
XhmikosR committed
3392
3393
3394
3395
      if (!allowedAttribute(attr, whitelistedAttributes)) {
        el.removeAttribute(attr.nodeName);
      }
    });
XhmikosR's avatar
XhmikosR committed
3396
3397
3398
  };

  for (var i = 0, len = elements.length; i < len; i++) {
3399
    var _ret = _loop(i);
XhmikosR's avatar
XhmikosR committed
3400
3401

    if (_ret === "continue") continue;
XhmikosR's avatar
Dist.  
XhmikosR committed
3402
3403
3404
3405
3406
3407
3408
3409
3410
3411
3412
  }

  return createdDocument.body.innerHTML;
}

/**
 * ------------------------------------------------------------------------
 * Constants
 * ------------------------------------------------------------------------
 */

XhmikosR's avatar
XhmikosR committed
3413
var NAME$6 = 'tooltip';
3414
var VERSION$6 = '5.0.0-alpha1';
XhmikosR's avatar
XhmikosR committed
3415
3416
3417
3418
3419
3420
var DATA_KEY$6 = 'bs.tooltip';
var EVENT_KEY$6 = "." + DATA_KEY$6;
var CLASS_PREFIX = 'bs-tooltip';
var BSCLS_PREFIX_REGEX = new RegExp("(^|\\s)" + CLASS_PREFIX + "\\S+", 'g');
var DISALLOWED_ATTRIBUTES = ['sanitize', 'whiteList', 'sanitizeFn'];
var DefaultType$4 = {
XhmikosR's avatar
Dist.  
XhmikosR committed
3421
3422
3423
3424
3425
3426
3427
3428
3429
3430
3431
3432
3433
3434
  animation: 'boolean',
  template: 'string',
  title: '(string|element|function)',
  trigger: 'string',
  delay: '(number|object)',
  html: 'boolean',
  selector: '(string|boolean)',
  placement: '(string|function)',
  offset: '(number|string|function)',
  container: '(string|element|boolean)',
  fallbackPlacement: '(string|array)',
  boundary: '(string|element)',
  sanitize: 'boolean',
  sanitizeFn: '(null|function)',
XhmikosR's avatar
XhmikosR committed
3435
3436
  whiteList: 'object',
  popperConfig: '(null|object)'
XhmikosR's avatar
Dist.  
XhmikosR committed
3437
};
XhmikosR's avatar
XhmikosR committed
3438
var AttachmentMap = {
XhmikosR's avatar
Dist.  
XhmikosR committed
3439
3440
3441
3442
3443
3444
  AUTO: 'auto',
  TOP: 'top',
  RIGHT: 'right',
  BOTTOM: 'bottom',
  LEFT: 'left'
};
XhmikosR's avatar
XhmikosR committed
3445
var Default$4 = {
XhmikosR's avatar
Dist.  
XhmikosR committed
3446
3447
3448
3449
3450
3451
3452
3453
3454
3455
3456
3457
3458
3459
  animation: true,
  template: '<div class="tooltip" role="tooltip">' + '<div class="tooltip-arrow"></div>' + '<div class="tooltip-inner"></div></div>',
  trigger: 'hover focus',
  title: '',
  delay: 0,
  html: false,
  selector: false,
  placement: 'top',
  offset: 0,
  container: false,
  fallbackPlacement: 'flip',
  boundary: 'scrollParent',
  sanitize: true,
  sanitizeFn: null,
XhmikosR's avatar
XhmikosR committed
3460
3461
  whiteList: DefaultWhitelist,
  popperConfig: null
XhmikosR's avatar
Dist.  
XhmikosR committed
3462
};
XhmikosR's avatar
XhmikosR committed
3463
var Event$1 = {
XhmikosR's avatar
XhmikosR committed
3464
3465
3466
3467
3468
3469
3470
3471
3472
3473
  HIDE: "hide" + EVENT_KEY$6,
  HIDDEN: "hidden" + EVENT_KEY$6,
  SHOW: "show" + EVENT_KEY$6,
  SHOWN: "shown" + EVENT_KEY$6,
  INSERTED: "inserted" + EVENT_KEY$6,
  CLICK: "click" + EVENT_KEY$6,
  FOCUSIN: "focusin" + EVENT_KEY$6,
  FOCUSOUT: "focusout" + EVENT_KEY$6,
  MOUSEENTER: "mouseenter" + EVENT_KEY$6,
  MOUSELEAVE: "mouseleave" + EVENT_KEY$6
XhmikosR's avatar
Dist.  
XhmikosR committed
3474
};
XhmikosR's avatar
XhmikosR committed
3475
3476
3477
3478
3479
3480
3481
3482
3483
3484
var CLASS_NAME_FADE$1 = 'fade';
var CLASS_NAME_MODAL = 'modal';
var CLASS_NAME_SHOW$3 = 'show';
var HOVER_STATE_SHOW = 'show';
var HOVER_STATE_OUT = 'out';
var SELECTOR_TOOLTIP_INNER = '.tooltip-inner';
var TRIGGER_HOVER = 'hover';
var TRIGGER_FOCUS = 'focus';
var TRIGGER_CLICK = 'click';
var TRIGGER_MANUAL = 'manual';
XhmikosR's avatar
XhmikosR committed
3485
3486
3487
3488
3489
/**
 * ------------------------------------------------------------------------
 * Class Definition
 * ------------------------------------------------------------------------
 */
XhmikosR's avatar
Dist.  
XhmikosR committed
3490

XhmikosR's avatar
XhmikosR committed
3491
var Tooltip = /*#__PURE__*/function () {
XhmikosR's avatar
XhmikosR committed
3492
  function Tooltip(element, config) {
XhmikosR's avatar
Dist.  
XhmikosR committed
3493
3494
3495
3496
3497
3498
3499
3500
3501
3502
3503
3504
3505
3506
3507
3508
3509
3510
3511
3512
3513
    if (typeof Popper === 'undefined') {
      throw new TypeError('Bootstrap\'s tooltips require Popper.js (https://popper.js.org)');
    } // private


    this._isEnabled = true;
    this._timeout = 0;
    this._hoverState = '';
    this._activeTrigger = {};
    this._popper = null; // Protected

    this.element = element;
    this.config = this._getConfig(config);
    this.tip = null;

    this._setListeners();

    Data.setData(element, this.constructor.DATA_KEY, this);
  } // Getters


XhmikosR's avatar
XhmikosR committed
3514
  var _proto = Tooltip.prototype;
XhmikosR's avatar
Dist.  
XhmikosR committed
3515

XhmikosR's avatar
XhmikosR committed
3516
3517
  // Public
  _proto.enable = function enable() {
XhmikosR's avatar
Dist.  
XhmikosR committed
3518
    this._isEnabled = true;
XhmikosR's avatar
XhmikosR committed
3519
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
3520

XhmikosR's avatar
XhmikosR committed
3521
  _proto.disable = function disable() {
XhmikosR's avatar
Dist.  
XhmikosR committed
3522
    this._isEnabled = false;
XhmikosR's avatar
XhmikosR committed
3523
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
3524

XhmikosR's avatar
XhmikosR committed
3525
  _proto.toggleEnabled = function toggleEnabled() {
XhmikosR's avatar
Dist.  
XhmikosR committed
3526
    this._isEnabled = !this._isEnabled;
XhmikosR's avatar
XhmikosR committed
3527
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
3528

XhmikosR's avatar
XhmikosR committed
3529
  _proto.toggle = function toggle(event) {
XhmikosR's avatar
Dist.  
XhmikosR committed
3530
3531
3532
3533
3534
    if (!this._isEnabled) {
      return;
    }

    if (event) {
XhmikosR's avatar
XhmikosR committed
3535
      var dataKey = this.constructor.DATA_KEY;
XhmikosR's avatar
XhmikosR committed
3536
      var context = Data.getData(event.target, dataKey);
XhmikosR's avatar
Dist.  
XhmikosR committed
3537
3538

      if (!context) {
XhmikosR's avatar
XhmikosR committed
3539
3540
        context = new this.constructor(event.target, this._getDelegateConfig());
        Data.setData(event.target, dataKey, context);
XhmikosR's avatar
Dist.  
XhmikosR committed
3541
3542
3543
3544
3545
3546
3547
3548
3549
3550
      }

      context._activeTrigger.click = !context._activeTrigger.click;

      if (context._isWithActiveTrigger()) {
        context._enter(null, context);
      } else {
        context._leave(null, context);
      }
    } else {
XhmikosR's avatar
XhmikosR committed
3551
      if (this.getTipElement().classList.contains(CLASS_NAME_SHOW$3)) {
XhmikosR's avatar
Dist.  
XhmikosR committed
3552
3553
3554
3555
3556
3557
3558
        this._leave(null, this);

        return;
      }

      this._enter(null, this);
    }
XhmikosR's avatar
XhmikosR committed
3559
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
3560

XhmikosR's avatar
XhmikosR committed
3561
  _proto.dispose = function dispose() {
XhmikosR's avatar
Dist.  
XhmikosR committed
3562
3563
3564
    clearTimeout(this._timeout);
    Data.removeData(this.element, this.constructor.DATA_KEY);
    EventHandler.off(this.element, this.constructor.EVENT_KEY);
XhmikosR's avatar
XhmikosR committed
3565
    EventHandler.off(this.element.closest("." + CLASS_NAME_MODAL), 'hide.bs.modal', this._hideModalHandler);
XhmikosR's avatar
Dist.  
XhmikosR committed
3566
3567
3568
3569
3570
3571
3572
3573
3574
3575

    if (this.tip) {
      this.tip.parentNode.removeChild(this.tip);
    }

    this._isEnabled = null;
    this._timeout = null;
    this._hoverState = null;
    this._activeTrigger = null;

XhmikosR's avatar
XhmikosR committed
3576
    if (this._popper) {
XhmikosR's avatar
Dist.  
XhmikosR committed
3577
3578
3579
3580
3581
3582
3583
      this._popper.destroy();
    }

    this._popper = null;
    this.element = null;
    this.config = null;
    this.tip = null;
XhmikosR's avatar
XhmikosR committed
3584
3585
3586
3587
  };

  _proto.show = function show() {
    var _this = this;
XhmikosR's avatar
Dist.  
XhmikosR committed
3588
3589
3590
3591
3592
3593

    if (this.element.style.display === 'none') {
      throw new Error('Please use show on visible elements');
    }

    if (this.isWithContent() && this._isEnabled) {
XhmikosR's avatar
XhmikosR committed
3594
3595
3596
      var showEvent = EventHandler.trigger(this.element, this.constructor.Event.SHOW);
      var shadowRoot = findShadowRoot(this.element);
      var isInTheDom = shadowRoot === null ? this.element.ownerDocument.documentElement.contains(this.element) : shadowRoot.contains(this.element);
XhmikosR's avatar
Dist.  
XhmikosR committed
3597
3598
3599
3600
3601

      if (showEvent.defaultPrevented || !isInTheDom) {
        return;
      }

XhmikosR's avatar
XhmikosR committed
3602
3603
      var tip = this.getTipElement();
      var tipId = getUID(this.constructor.NAME);
XhmikosR's avatar
Dist.  
XhmikosR committed
3604
3605
3606
3607
3608
      tip.setAttribute('id', tipId);
      this.element.setAttribute('aria-describedby', tipId);
      this.setContent();

      if (this.config.animation) {
XhmikosR's avatar
XhmikosR committed
3609
        tip.classList.add(CLASS_NAME_FADE$1);
XhmikosR's avatar
Dist.  
XhmikosR committed
3610
3611
      }

XhmikosR's avatar
XhmikosR committed
3612
      var placement = typeof this.config.placement === 'function' ? this.config.placement.call(this, tip, this.element) : this.config.placement;
XhmikosR's avatar
Dist.  
XhmikosR committed
3613

XhmikosR's avatar
XhmikosR committed
3614
      var attachment = this._getAttachment(placement);
XhmikosR's avatar
Dist.  
XhmikosR committed
3615

3616
      this._addAttachmentClass(attachment);
XhmikosR's avatar
Dist.  
XhmikosR committed
3617

XhmikosR's avatar
XhmikosR committed
3618
      var container = this._getContainer();
XhmikosR's avatar
Dist.  
XhmikosR committed
3619
3620
3621
3622
3623
3624
3625
3626

      Data.setData(tip, this.constructor.DATA_KEY, this);

      if (!this.element.ownerDocument.documentElement.contains(this.tip)) {
        container.appendChild(tip);
      }

      EventHandler.trigger(this.element, this.constructor.Event.INSERTED);
XhmikosR's avatar
XhmikosR committed
3627
      this._popper = new Popper(this.element, tip, this._getPopperConfig(attachment));
XhmikosR's avatar
XhmikosR committed
3628
      tip.classList.add(CLASS_NAME_SHOW$3); // If this is a touch-enabled device we add extra
XhmikosR's avatar
Dist.  
XhmikosR committed
3629
3630
3631
3632
3633
      // empty mouseover listeners to the body's immediate children;
      // only needed because of broken event delegation on iOS
      // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html

      if ('ontouchstart' in document.documentElement) {
XhmikosR's avatar
XhmikosR committed
3634
3635
3636
        var _ref;

        (_ref = []).concat.apply(_ref, document.body.children).forEach(function (element) {
XhmikosR's avatar
Dist.  
XhmikosR committed
3637
3638
3639
3640
          EventHandler.on(element, 'mouseover', noop());
        });
      }

XhmikosR's avatar
XhmikosR committed
3641
3642
3643
      var complete = function complete() {
        if (_this.config.animation) {
          _this._fixTransition();
XhmikosR's avatar
Dist.  
XhmikosR committed
3644
3645
        }

XhmikosR's avatar
XhmikosR committed
3646
3647
3648
        var prevHoverState = _this._hoverState;
        _this._hoverState = null;
        EventHandler.trigger(_this.element, _this.constructor.Event.SHOWN);
XhmikosR's avatar
Dist.  
XhmikosR committed
3649

XhmikosR's avatar
XhmikosR committed
3650
        if (prevHoverState === HOVER_STATE_OUT) {
XhmikosR's avatar
XhmikosR committed
3651
          _this._leave(null, _this);
XhmikosR's avatar
Dist.  
XhmikosR committed
3652
3653
3654
        }
      };

XhmikosR's avatar
XhmikosR committed
3655
      if (this.tip.classList.contains(CLASS_NAME_FADE$1)) {
XhmikosR's avatar
XhmikosR committed
3656
        var transitionDuration = getTransitionDurationFromElement(this.tip);
XhmikosR's avatar
Dist.  
XhmikosR committed
3657
3658
3659
3660
3661
3662
        EventHandler.one(this.tip, TRANSITION_END, complete);
        emulateTransitionEnd(this.tip, transitionDuration);
      } else {
        complete();
      }
    }
XhmikosR's avatar
XhmikosR committed
3663
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
3664

3665
  _proto.hide = function hide() {
XhmikosR's avatar
XhmikosR committed
3666
    var _this2 = this;
XhmikosR's avatar
Dist.  
XhmikosR committed
3667

XhmikosR's avatar
XhmikosR committed
3668
3669
3670
    var tip = this.getTipElement();

    var complete = function complete() {
XhmikosR's avatar
XhmikosR committed
3671
      if (_this2._hoverState !== HOVER_STATE_SHOW && tip.parentNode) {
XhmikosR's avatar
Dist.  
XhmikosR committed
3672
3673
3674
        tip.parentNode.removeChild(tip);
      }

XhmikosR's avatar
XhmikosR committed
3675
3676
3677
      _this2._cleanTipClass();

      _this2.element.removeAttribute('aria-describedby');
XhmikosR's avatar
Dist.  
XhmikosR committed
3678

XhmikosR's avatar
XhmikosR committed
3679
      EventHandler.trigger(_this2.element, _this2.constructor.Event.HIDDEN);
XhmikosR's avatar
Dist.  
XhmikosR committed
3680

3681
      _this2._popper.destroy();
XhmikosR's avatar
Dist.  
XhmikosR committed
3682
3683
    };

XhmikosR's avatar
XhmikosR committed
3684
    var hideEvent = EventHandler.trigger(this.element, this.constructor.Event.HIDE);
XhmikosR's avatar
Dist.  
XhmikosR committed
3685
3686
3687
3688
3689

    if (hideEvent.defaultPrevented) {
      return;
    }

XhmikosR's avatar
XhmikosR committed
3690
    tip.classList.remove(CLASS_NAME_SHOW$3); // If this is a touch-enabled device we remove the extra
XhmikosR's avatar
Dist.  
XhmikosR committed
3691
3692
3693
    // empty mouseover listeners we added for iOS support

    if ('ontouchstart' in document.documentElement) {
XhmikosR's avatar
XhmikosR committed
3694
3695
3696
      var _ref2;

      (_ref2 = []).concat.apply(_ref2, document.body.children).forEach(function (element) {
XhmikosR's avatar
XhmikosR committed
3697
3698
        return EventHandler.off(element, 'mouseover', noop);
      });
XhmikosR's avatar
Dist.  
XhmikosR committed
3699
3700
    }

XhmikosR's avatar
XhmikosR committed
3701
3702
3703
    this._activeTrigger[TRIGGER_CLICK] = false;
    this._activeTrigger[TRIGGER_FOCUS] = false;
    this._activeTrigger[TRIGGER_HOVER] = false;
XhmikosR's avatar
Dist.  
XhmikosR committed
3704

XhmikosR's avatar
XhmikosR committed
3705
    if (this.tip.classList.contains(CLASS_NAME_FADE$1)) {
XhmikosR's avatar
XhmikosR committed
3706
      var transitionDuration = getTransitionDurationFromElement(tip);
XhmikosR's avatar
Dist.  
XhmikosR committed
3707
3708
3709
3710
3711
3712
3713
      EventHandler.one(tip, TRANSITION_END, complete);
      emulateTransitionEnd(tip, transitionDuration);
    } else {
      complete();
    }

    this._hoverState = '';
XhmikosR's avatar
XhmikosR committed
3714
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
3715

XhmikosR's avatar
XhmikosR committed
3716
  _proto.update = function update() {
XhmikosR's avatar
Dist.  
XhmikosR committed
3717
3718
3719
3720
    if (this._popper !== null) {
      this._popper.scheduleUpdate();
    }
  } // Protected
XhmikosR's avatar
XhmikosR committed
3721
  ;
XhmikosR's avatar
Dist.  
XhmikosR committed
3722

XhmikosR's avatar
XhmikosR committed
3723
  _proto.isWithContent = function isWithContent() {
XhmikosR's avatar
Dist.  
XhmikosR committed
3724
    return Boolean(this.getTitle());
XhmikosR's avatar
XhmikosR committed
3725
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
3726

XhmikosR's avatar
XhmikosR committed
3727
  _proto.getTipElement = function getTipElement() {
XhmikosR's avatar
Dist.  
XhmikosR committed
3728
3729
3730
3731
    if (this.tip) {
      return this.tip;
    }

XhmikosR's avatar
XhmikosR committed
3732
    var element = document.createElement('div');
XhmikosR's avatar
Dist.  
XhmikosR committed
3733
3734
3735
    element.innerHTML = this.config.template;
    this.tip = element.children[0];
    return this.tip;
XhmikosR's avatar
XhmikosR committed
3736
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
3737

XhmikosR's avatar
XhmikosR committed
3738
3739
  _proto.setContent = function setContent() {
    var tip = this.getTipElement();
XhmikosR's avatar
XhmikosR committed
3740
    this.setElementContent(SelectorEngine.findOne(SELECTOR_TOOLTIP_INNER, tip), this.getTitle());
XhmikosR's avatar
XhmikosR committed
3741
    tip.classList.remove(CLASS_NAME_FADE$1, CLASS_NAME_SHOW$3);
XhmikosR's avatar
XhmikosR committed
3742
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
3743

XhmikosR's avatar
XhmikosR committed
3744
  _proto.setElementContent = function setElementContent(element, content) {
XhmikosR's avatar
Dist.  
XhmikosR committed
3745
3746
3747
3748
    if (element === null) {
      return;
    }

3749
    if (typeof content === 'object' && isElement(content)) {
XhmikosR's avatar
Dist.  
XhmikosR committed
3750
3751
3752
3753
3754
3755
3756
3757
3758
3759
3760
      if (content.jquery) {
        content = content[0];
      } // content is a DOM node or a jQuery


      if (this.config.html) {
        if (content.parentNode !== element) {
          element.innerHTML = '';
          element.appendChild(content);
        }
      } else {
XhmikosR's avatar
XhmikosR committed
3761
        element.textContent = content.textContent;
XhmikosR's avatar
Dist.  
XhmikosR committed
3762
3763
3764
3765
3766
3767
3768
3769
3770
3771
3772
3773
      }

      return;
    }

    if (this.config.html) {
      if (this.config.sanitize) {
        content = sanitizeHtml(content, this.config.whiteList, this.config.sanitizeFn);
      }

      element.innerHTML = content;
    } else {
XhmikosR's avatar
XhmikosR committed
3774
      element.textContent = content;
XhmikosR's avatar
Dist.  
XhmikosR committed
3775
    }
XhmikosR's avatar
XhmikosR committed
3776
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
3777

XhmikosR's avatar
XhmikosR committed
3778
3779
  _proto.getTitle = function getTitle() {
    var title = this.element.getAttribute('data-original-title');
XhmikosR's avatar
Dist.  
XhmikosR committed
3780
3781
3782
3783
3784
3785
3786

    if (!title) {
      title = typeof this.config.title === 'function' ? this.config.title.call(this.element) : this.config.title;
    }

    return title;
  } // Private
XhmikosR's avatar
XhmikosR committed
3787
  ;
XhmikosR's avatar
Dist.  
XhmikosR committed
3788

XhmikosR's avatar
XhmikosR committed
3789
3790
3791
3792
3793
3794
3795
3796
3797
3798
3799
3800
3801
3802
3803
3804
3805
3806
3807
3808
3809
3810
3811
3812
3813
3814
  _proto._getPopperConfig = function _getPopperConfig(attachment) {
    var _this3 = this;

    var defaultBsConfig = {
      placement: attachment,
      modifiers: {
        offset: this._getOffset(),
        flip: {
          behavior: this.config.fallbackPlacement
        },
        arrow: {
          element: "." + this.constructor.NAME + "-arrow"
        },
        preventOverflow: {
          boundariesElement: this.config.boundary
        }
      },
      onCreate: function onCreate(data) {
        if (data.originalPlacement !== data.placement) {
          _this3._handlePopperPlacementChange(data);
        }
      },
      onUpdate: function onUpdate(data) {
        return _this3._handlePopperPlacementChange(data);
      }
    };
XhmikosR's avatar
XhmikosR committed
3815
    return _objectSpread2(_objectSpread2({}, defaultBsConfig), this.config.popperConfig);
XhmikosR's avatar
XhmikosR committed
3816
3817
  };

3818
3819
3820
3821
  _proto._addAttachmentClass = function _addAttachmentClass(attachment) {
    this.getTipElement().classList.add(CLASS_PREFIX + "-" + attachment);
  };

XhmikosR's avatar
XhmikosR committed
3822
  _proto._getOffset = function _getOffset() {
XhmikosR's avatar
XhmikosR committed
3823
    var _this4 = this;
XhmikosR's avatar
Dist.  
XhmikosR committed
3824

XhmikosR's avatar
XhmikosR committed
3825
    var offset = {};
XhmikosR's avatar
Dist.  
XhmikosR committed
3826
3827

    if (typeof this.config.offset === 'function') {
XhmikosR's avatar
XhmikosR committed
3828
      offset.fn = function (data) {
XhmikosR's avatar
XhmikosR committed
3829
        data.offsets = _objectSpread2(_objectSpread2({}, data.offsets), _this4.config.offset(data.offsets, _this4.element) || {});
XhmikosR's avatar
Dist.  
XhmikosR committed
3830
3831
3832
3833
3834
3835
3836
        return data;
      };
    } else {
      offset.offset = this.config.offset;
    }

    return offset;
XhmikosR's avatar
XhmikosR committed
3837
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
3838

XhmikosR's avatar
XhmikosR committed
3839
  _proto._getContainer = function _getContainer() {
XhmikosR's avatar
Dist.  
XhmikosR committed
3840
3841
3842
3843
3844
3845
3846
3847
3848
    if (this.config.container === false) {
      return document.body;
    }

    if (isElement(this.config.container)) {
      return this.config.container;
    }

    return SelectorEngine.findOne(this.config.container);
XhmikosR's avatar
XhmikosR committed
3849
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
3850

XhmikosR's avatar
XhmikosR committed
3851
  _proto._getAttachment = function _getAttachment(placement) {
XhmikosR's avatar
XhmikosR committed
3852
    return AttachmentMap[placement.toUpperCase()];
XhmikosR's avatar
XhmikosR committed
3853
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
3854

XhmikosR's avatar
XhmikosR committed
3855
  _proto._setListeners = function _setListeners() {
XhmikosR's avatar
XhmikosR committed
3856
    var _this5 = this;
XhmikosR's avatar
XhmikosR committed
3857
3858
3859

    var triggers = this.config.trigger.split(' ');
    triggers.forEach(function (trigger) {
XhmikosR's avatar
Dist.  
XhmikosR committed
3860
      if (trigger === 'click') {
XhmikosR's avatar
XhmikosR committed
3861
3862
        EventHandler.on(_this5.element, _this5.constructor.Event.CLICK, _this5.config.selector, function (event) {
          return _this5.toggle(event);
XhmikosR's avatar
XhmikosR committed
3863
        });
XhmikosR's avatar
XhmikosR committed
3864
3865
3866
      } else if (trigger !== TRIGGER_MANUAL) {
        var eventIn = trigger === TRIGGER_HOVER ? _this5.constructor.Event.MOUSEENTER : _this5.constructor.Event.FOCUSIN;
        var eventOut = trigger === TRIGGER_HOVER ? _this5.constructor.Event.MOUSELEAVE : _this5.constructor.Event.FOCUSOUT;
XhmikosR's avatar
XhmikosR committed
3867
3868
        EventHandler.on(_this5.element, eventIn, _this5.config.selector, function (event) {
          return _this5._enter(event);
XhmikosR's avatar
XhmikosR committed
3869
        });
XhmikosR's avatar
XhmikosR committed
3870
3871
        EventHandler.on(_this5.element, eventOut, _this5.config.selector, function (event) {
          return _this5._leave(event);
XhmikosR's avatar
XhmikosR committed
3872
        });
XhmikosR's avatar
Dist.  
XhmikosR committed
3873
3874
      }
    });
Mark Otto's avatar
dist v5    
Mark Otto committed
3875
3876

    this._hideModalHandler = function () {
XhmikosR's avatar
XhmikosR committed
3877
3878
      if (_this5.element) {
        _this5.hide();
XhmikosR's avatar
Dist.  
XhmikosR committed
3879
      }
Mark Otto's avatar
dist v5    
Mark Otto committed
3880
3881
    };

XhmikosR's avatar
XhmikosR committed
3882
    EventHandler.on(this.element.closest("." + CLASS_NAME_MODAL), 'hide.bs.modal', this._hideModalHandler);
XhmikosR's avatar
Dist.  
XhmikosR committed
3883
3884

    if (this.config.selector) {
XhmikosR's avatar
XhmikosR committed
3885
      this.config = _objectSpread2(_objectSpread2({}, this.config), {}, {
XhmikosR's avatar
Dist.  
XhmikosR committed
3886
3887
3888
3889
3890
3891
        trigger: 'manual',
        selector: ''
      });
    } else {
      this._fixTitle();
    }
XhmikosR's avatar
XhmikosR committed
3892
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
3893

XhmikosR's avatar
XhmikosR committed
3894
3895
  _proto._fixTitle = function _fixTitle() {
    var titleType = typeof this.element.getAttribute('data-original-title');
XhmikosR's avatar
Dist.  
XhmikosR committed
3896
3897
3898
3899
3900

    if (this.element.getAttribute('title') || titleType !== 'string') {
      this.element.setAttribute('data-original-title', this.element.getAttribute('title') || '');
      this.element.setAttribute('title', '');
    }
XhmikosR's avatar
XhmikosR committed
3901
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
3902

XhmikosR's avatar
XhmikosR committed
3903
3904
  _proto._enter = function _enter(event, context) {
    var dataKey = this.constructor.DATA_KEY;
XhmikosR's avatar
XhmikosR committed
3905
    context = context || Data.getData(event.target, dataKey);
XhmikosR's avatar
Dist.  
XhmikosR committed
3906
3907

    if (!context) {
XhmikosR's avatar
XhmikosR committed
3908
3909
      context = new this.constructor(event.target, this._getDelegateConfig());
      Data.setData(event.target, dataKey, context);
XhmikosR's avatar
Dist.  
XhmikosR committed
3910
3911
3912
    }

    if (event) {
XhmikosR's avatar
XhmikosR committed
3913
      context._activeTrigger[event.type === 'focusin' ? TRIGGER_FOCUS : TRIGGER_HOVER] = true;
XhmikosR's avatar
Dist.  
XhmikosR committed
3914
3915
    }

XhmikosR's avatar
XhmikosR committed
3916
3917
    if (context.getTipElement().classList.contains(CLASS_NAME_SHOW$3) || context._hoverState === HOVER_STATE_SHOW) {
      context._hoverState = HOVER_STATE_SHOW;
XhmikosR's avatar
Dist.  
XhmikosR committed
3918
3919
3920
3921
      return;
    }

    clearTimeout(context._timeout);
XhmikosR's avatar
XhmikosR committed
3922
    context._hoverState = HOVER_STATE_SHOW;
XhmikosR's avatar
Dist.  
XhmikosR committed
3923
3924
3925
3926
3927
3928

    if (!context.config.delay || !context.config.delay.show) {
      context.show();
      return;
    }

XhmikosR's avatar
XhmikosR committed
3929
    context._timeout = setTimeout(function () {
XhmikosR's avatar
XhmikosR committed
3930
      if (context._hoverState === HOVER_STATE_SHOW) {
XhmikosR's avatar
Dist.  
XhmikosR committed
3931
3932
3933
        context.show();
      }
    }, context.config.delay.show);
XhmikosR's avatar
XhmikosR committed
3934
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
3935

XhmikosR's avatar
XhmikosR committed
3936
3937
  _proto._leave = function _leave(event, context) {
    var dataKey = this.constructor.DATA_KEY;
XhmikosR's avatar
XhmikosR committed
3938
    context = context || Data.getData(event.target, dataKey);
XhmikosR's avatar
Dist.  
XhmikosR committed
3939
3940

    if (!context) {
XhmikosR's avatar
XhmikosR committed
3941
3942
      context = new this.constructor(event.target, this._getDelegateConfig());
      Data.setData(event.target, dataKey, context);
XhmikosR's avatar
Dist.  
XhmikosR committed
3943
3944
3945
    }

    if (event) {
XhmikosR's avatar
XhmikosR committed
3946
      context._activeTrigger[event.type === 'focusout' ? TRIGGER_FOCUS : TRIGGER_HOVER] = false;
XhmikosR's avatar
Dist.  
XhmikosR committed
3947
3948
3949
3950
3951
3952
3953
    }

    if (context._isWithActiveTrigger()) {
      return;
    }

    clearTimeout(context._timeout);
XhmikosR's avatar
XhmikosR committed
3954
    context._hoverState = HOVER_STATE_OUT;
XhmikosR's avatar
Dist.  
XhmikosR committed
3955
3956
3957
3958
3959
3960

    if (!context.config.delay || !context.config.delay.hide) {
      context.hide();
      return;
    }

XhmikosR's avatar
XhmikosR committed
3961
    context._timeout = setTimeout(function () {
XhmikosR's avatar
XhmikosR committed
3962
      if (context._hoverState === HOVER_STATE_OUT) {
XhmikosR's avatar
Dist.  
XhmikosR committed
3963
3964
3965
        context.hide();
      }
    }, context.config.delay.hide);
XhmikosR's avatar
XhmikosR committed
3966
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
3967

XhmikosR's avatar
XhmikosR committed
3968
3969
  _proto._isWithActiveTrigger = function _isWithActiveTrigger() {
    for (var trigger in this._activeTrigger) {
XhmikosR's avatar
Dist.  
XhmikosR committed
3970
3971
3972
3973
3974
3975
      if (this._activeTrigger[trigger]) {
        return true;
      }
    }

    return false;
XhmikosR's avatar
XhmikosR committed
3976
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
3977

XhmikosR's avatar
XhmikosR committed
3978
3979
3980
  _proto._getConfig = function _getConfig(config) {
    var dataAttributes = Manipulator.getDataAttributes(this.element);
    Object.keys(dataAttributes).forEach(function (dataAttr) {
XhmikosR's avatar
Dist.  
XhmikosR committed
3981
3982
3983
3984
3985
3986
3987
3988
3989
      if (DISALLOWED_ATTRIBUTES.indexOf(dataAttr) !== -1) {
        delete dataAttributes[dataAttr];
      }
    });

    if (config && typeof config.container === 'object' && config.container.jquery) {
      config.container = config.container[0];
    }

XhmikosR's avatar
XhmikosR committed
3990
    config = _objectSpread2(_objectSpread2(_objectSpread2({}, this.constructor.Default), dataAttributes), typeof config === 'object' && config ? config : {});
XhmikosR's avatar
Dist.  
XhmikosR committed
3991
3992
3993
3994
3995
3996
3997
3998
3999
4000
4001
4002
4003
4004
4005
4006
4007
4008
4009
4010
4011
4012
4013

    if (typeof config.delay === 'number') {
      config.delay = {
        show: config.delay,
        hide: config.delay
      };
    }

    if (typeof config.title === 'number') {
      config.title = config.title.toString();
    }

    if (typeof config.content === 'number') {
      config.content = config.content.toString();
    }

    typeCheckConfig(NAME$6, config, this.constructor.DefaultType);

    if (config.sanitize) {
      config.template = sanitizeHtml(config.template, config.whiteList, config.sanitizeFn);
    }

    return config;
XhmikosR's avatar
XhmikosR committed
4014
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
4015

XhmikosR's avatar
XhmikosR committed
4016
4017
  _proto._getDelegateConfig = function _getDelegateConfig() {
    var config = {};
XhmikosR's avatar
Dist.  
XhmikosR committed
4018
4019

    if (this.config) {
XhmikosR's avatar
XhmikosR committed
4020
      for (var key in this.config) {
XhmikosR's avatar
Dist.  
XhmikosR committed
4021
4022
4023
4024
4025
4026
4027
        if (this.constructor.Default[key] !== this.config[key]) {
          config[key] = this.config[key];
        }
      }
    }

    return config;
XhmikosR's avatar
XhmikosR committed
4028
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
4029

XhmikosR's avatar
XhmikosR committed
4030
4031
4032
  _proto._cleanTipClass = function _cleanTipClass() {
    var tip = this.getTipElement();
    var tabClass = tip.getAttribute('class').match(BSCLS_PREFIX_REGEX);
XhmikosR's avatar
Dist.  
XhmikosR committed
4033

XhmikosR's avatar
XhmikosR committed
4034
    if (tabClass !== null && tabClass.length > 0) {
XhmikosR's avatar
XhmikosR committed
4035
4036
4037
4038
4039
      tabClass.map(function (token) {
        return token.trim();
      }).forEach(function (tClass) {
        return tip.classList.remove(tClass);
      });
XhmikosR's avatar
Dist.  
XhmikosR committed
4040
    }
XhmikosR's avatar
XhmikosR committed
4041
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
4042

XhmikosR's avatar
XhmikosR committed
4043
4044
  _proto._handlePopperPlacementChange = function _handlePopperPlacementChange(popperData) {
    var popperInstance = popperData.instance;
XhmikosR's avatar
Dist.  
XhmikosR committed
4045
4046
4047
4048
    this.tip = popperInstance.popper;

    this._cleanTipClass();

4049
    this._addAttachmentClass(this._getAttachment(popperData.placement));
XhmikosR's avatar
XhmikosR committed
4050
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
4051

XhmikosR's avatar
XhmikosR committed
4052
4053
4054
  _proto._fixTransition = function _fixTransition() {
    var tip = this.getTipElement();
    var initConfigAnimation = this.config.animation;
XhmikosR's avatar
Dist.  
XhmikosR committed
4055
4056
4057
4058
4059

    if (tip.getAttribute('x-placement') !== null) {
      return;
    }

XhmikosR's avatar
XhmikosR committed
4060
    tip.classList.remove(CLASS_NAME_FADE$1);
XhmikosR's avatar
Dist.  
XhmikosR committed
4061
4062
4063
4064
4065
    this.config.animation = false;
    this.hide();
    this.show();
    this.config.animation = initConfigAnimation;
  } // Static
XhmikosR's avatar
XhmikosR committed
4066
  ;
XhmikosR's avatar
Dist.  
XhmikosR committed
4067

XhmikosR's avatar
XhmikosR committed
4068
  Tooltip.jQueryInterface = function jQueryInterface(config) {
XhmikosR's avatar
Dist.  
XhmikosR committed
4069
    return this.each(function () {
XhmikosR's avatar
XhmikosR committed
4070
      var data = Data.getData(this, DATA_KEY$6);
XhmikosR's avatar
Dist.  
XhmikosR committed
4071

XhmikosR's avatar
XhmikosR committed
4072
      var _config = typeof config === 'object' && config;
XhmikosR's avatar
Dist.  
XhmikosR committed
4073
4074
4075
4076
4077
4078
4079
4080
4081
4082
4083

      if (!data && /dispose|hide/.test(config)) {
        return;
      }

      if (!data) {
        data = new Tooltip(this, _config);
      }

      if (typeof config === 'string') {
        if (typeof data[config] === 'undefined') {
XhmikosR's avatar
XhmikosR committed
4084
          throw new TypeError("No method named \"" + config + "\"");
XhmikosR's avatar
Dist.  
XhmikosR committed
4085
4086
4087
4088
4089
        }

        data[config]();
      }
    });
XhmikosR's avatar
XhmikosR committed
4090
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
4091

XhmikosR's avatar
XhmikosR committed
4092
  Tooltip.getInstance = function getInstance(element) {
XhmikosR's avatar
Dist.  
XhmikosR committed
4093
    return Data.getData(element, DATA_KEY$6);
XhmikosR's avatar
XhmikosR committed
4094
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
4095

XhmikosR's avatar
XhmikosR committed
4096
4097
4098
4099
4100
4101
4102
4103
4104
4105
4106
4107
4108
4109
4110
4111
4112
4113
4114
4115
4116
4117
4118
  _createClass(Tooltip, null, [{
    key: "VERSION",
    get: function get() {
      return VERSION$6;
    }
  }, {
    key: "Default",
    get: function get() {
      return Default$4;
    }
  }, {
    key: "NAME",
    get: function get() {
      return NAME$6;
    }
  }, {
    key: "DATA_KEY",
    get: function get() {
      return DATA_KEY$6;
    }
  }, {
    key: "Event",
    get: function get() {
XhmikosR's avatar
XhmikosR committed
4119
      return Event$1;
XhmikosR's avatar
XhmikosR committed
4120
4121
4122
4123
4124
4125
4126
4127
4128
4129
4130
4131
4132
4133
4134
    }
  }, {
    key: "EVENT_KEY",
    get: function get() {
      return EVENT_KEY$6;
    }
  }, {
    key: "DefaultType",
    get: function get() {
      return DefaultType$4;
    }
  }]);

  return Tooltip;
}();
XhmikosR's avatar
XhmikosR committed
4135
4136

var $$7 = getjQuery();
XhmikosR's avatar
Dist.  
XhmikosR committed
4137
4138
4139
4140
4141
4142
4143
/**
 * ------------------------------------------------------------------------
 * jQuery
 * ------------------------------------------------------------------------
 * add .tooltip to jQuery only if jQuery is present
 */

4144
4145
/* istanbul ignore if */

XhmikosR's avatar
XhmikosR committed
4146
4147
4148
4149
if ($$7) {
  var JQUERY_NO_CONFLICT$6 = $$7.fn[NAME$6];
  $$7.fn[NAME$6] = Tooltip.jQueryInterface;
  $$7.fn[NAME$6].Constructor = Tooltip;
XhmikosR's avatar
Dist.  
XhmikosR committed
4150

XhmikosR's avatar
XhmikosR committed
4151
4152
4153
  $$7.fn[NAME$6].noConflict = function () {
    $$7.fn[NAME$6] = JQUERY_NO_CONFLICT$6;
    return Tooltip.jQueryInterface;
XhmikosR's avatar
Dist.  
XhmikosR committed
4154
4155
4156
4157
4158
4159
4160
4161
4162
  };
}

/**
 * ------------------------------------------------------------------------
 * Constants
 * ------------------------------------------------------------------------
 */

XhmikosR's avatar
XhmikosR committed
4163
var NAME$7 = 'popover';
4164
var VERSION$7 = '5.0.0-alpha1';
XhmikosR's avatar
XhmikosR committed
4165
4166
4167
4168
var DATA_KEY$7 = 'bs.popover';
var EVENT_KEY$7 = "." + DATA_KEY$7;
var CLASS_PREFIX$1 = 'bs-popover';
var BSCLS_PREFIX_REGEX$1 = new RegExp("(^|\\s)" + CLASS_PREFIX$1 + "\\S+", 'g');
XhmikosR's avatar
Dist.  
XhmikosR committed
4169

XhmikosR's avatar
XhmikosR committed
4170
var Default$5 = _objectSpread2(_objectSpread2({}, Tooltip.Default), {}, {
XhmikosR's avatar
Dist.  
XhmikosR committed
4171
4172
4173
4174
4175
4176
  placement: 'right',
  trigger: 'click',
  content: '',
  template: '<div class="popover" role="tooltip">' + '<div class="popover-arrow"></div>' + '<h3 class="popover-header"></h3>' + '<div class="popover-body"></div></div>'
});

XhmikosR's avatar
XhmikosR committed
4177
var DefaultType$5 = _objectSpread2(_objectSpread2({}, Tooltip.DefaultType), {}, {
XhmikosR's avatar
Dist.  
XhmikosR committed
4178
4179
4180
  content: '(string|element|function)'
});

XhmikosR's avatar
XhmikosR committed
4181
var Event$2 = {
XhmikosR's avatar
XhmikosR committed
4182
4183
4184
4185
4186
4187
4188
4189
4190
4191
  HIDE: "hide" + EVENT_KEY$7,
  HIDDEN: "hidden" + EVENT_KEY$7,
  SHOW: "show" + EVENT_KEY$7,
  SHOWN: "shown" + EVENT_KEY$7,
  INSERTED: "inserted" + EVENT_KEY$7,
  CLICK: "click" + EVENT_KEY$7,
  FOCUSIN: "focusin" + EVENT_KEY$7,
  FOCUSOUT: "focusout" + EVENT_KEY$7,
  MOUSEENTER: "mouseenter" + EVENT_KEY$7,
  MOUSELEAVE: "mouseleave" + EVENT_KEY$7
XhmikosR's avatar
Dist.  
XhmikosR committed
4192
};
XhmikosR's avatar
XhmikosR committed
4193
4194
4195
4196
var CLASS_NAME_FADE$2 = 'fade';
var CLASS_NAME_SHOW$4 = 'show';
var SELECTOR_TITLE = '.popover-header';
var SELECTOR_CONTENT = '.popover-body';
XhmikosR's avatar
XhmikosR committed
4197
4198
4199
4200
4201
/**
 * ------------------------------------------------------------------------
 * Class Definition
 * ------------------------------------------------------------------------
 */
XhmikosR's avatar
Dist.  
XhmikosR committed
4202

XhmikosR's avatar
XhmikosR committed
4203
var Popover = /*#__PURE__*/function (_Tooltip) {
XhmikosR's avatar
XhmikosR committed
4204
  _inheritsLoose(Popover, _Tooltip);
XhmikosR's avatar
Dist.  
XhmikosR committed
4205

XhmikosR's avatar
XhmikosR committed
4206
4207
  function Popover() {
    return _Tooltip.apply(this, arguments) || this;
XhmikosR's avatar
Dist.  
XhmikosR committed
4208
4209
  }

XhmikosR's avatar
XhmikosR committed
4210
  var _proto = Popover.prototype;
XhmikosR's avatar
Dist.  
XhmikosR committed
4211

XhmikosR's avatar
XhmikosR committed
4212
4213
  // Overrides
  _proto.isWithContent = function isWithContent() {
XhmikosR's avatar
Dist.  
XhmikosR committed
4214
    return this.getTitle() || this._getContent();
XhmikosR's avatar
XhmikosR committed
4215
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
4216

XhmikosR's avatar
XhmikosR committed
4217
4218
  _proto.setContent = function setContent() {
    var tip = this.getTipElement(); // we use append for html objects to maintain js events
XhmikosR's avatar
Dist.  
XhmikosR committed
4219

XhmikosR's avatar
XhmikosR committed
4220
    this.setElementContent(SelectorEngine.findOne(SELECTOR_TITLE, tip), this.getTitle());
XhmikosR's avatar
Dist.  
XhmikosR committed
4221

XhmikosR's avatar
XhmikosR committed
4222
    var content = this._getContent();
XhmikosR's avatar
Dist.  
XhmikosR committed
4223
4224
4225
4226
4227

    if (typeof content === 'function') {
      content = content.call(this.element);
    }

XhmikosR's avatar
XhmikosR committed
4228
    this.setElementContent(SelectorEngine.findOne(SELECTOR_CONTENT, tip), content);
XhmikosR's avatar
XhmikosR committed
4229
    tip.classList.remove(CLASS_NAME_FADE$2, CLASS_NAME_SHOW$4);
XhmikosR's avatar
XhmikosR committed
4230
4231
4232
4233
  };

  _proto._addAttachmentClass = function _addAttachmentClass(attachment) {
    this.getTipElement().classList.add(CLASS_PREFIX$1 + "-" + attachment);
XhmikosR's avatar
Dist.  
XhmikosR committed
4234
  } // Private
XhmikosR's avatar
XhmikosR committed
4235
  ;
XhmikosR's avatar
Dist.  
XhmikosR committed
4236

XhmikosR's avatar
XhmikosR committed
4237
  _proto._getContent = function _getContent() {
XhmikosR's avatar
Dist.  
XhmikosR committed
4238
    return this.element.getAttribute('data-content') || this.config.content;
XhmikosR's avatar
XhmikosR committed
4239
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
4240

XhmikosR's avatar
XhmikosR committed
4241
4242
4243
  _proto._cleanTipClass = function _cleanTipClass() {
    var tip = this.getTipElement();
    var tabClass = tip.getAttribute('class').match(BSCLS_PREFIX_REGEX$1);
XhmikosR's avatar
Dist.  
XhmikosR committed
4244
4245

    if (tabClass !== null && tabClass.length > 0) {
XhmikosR's avatar
XhmikosR committed
4246
4247
4248
4249
4250
      tabClass.map(function (token) {
        return token.trim();
      }).forEach(function (tClass) {
        return tip.classList.remove(tClass);
      });
XhmikosR's avatar
Dist.  
XhmikosR committed
4251
4252
    }
  } // Static
XhmikosR's avatar
XhmikosR committed
4253
  ;
XhmikosR's avatar
Dist.  
XhmikosR committed
4254

XhmikosR's avatar
XhmikosR committed
4255
  Popover.jQueryInterface = function jQueryInterface(config) {
XhmikosR's avatar
Dist.  
XhmikosR committed
4256
    return this.each(function () {
XhmikosR's avatar
XhmikosR committed
4257
      var data = Data.getData(this, DATA_KEY$7);
XhmikosR's avatar
Dist.  
XhmikosR committed
4258

XhmikosR's avatar
XhmikosR committed
4259
      var _config = typeof config === 'object' ? config : null;
XhmikosR's avatar
Dist.  
XhmikosR committed
4260
4261
4262
4263
4264
4265
4266
4267
4268
4269
4270
4271

      if (!data && /dispose|hide/.test(config)) {
        return;
      }

      if (!data) {
        data = new Popover(this, _config);
        Data.setData(this, DATA_KEY$7, data);
      }

      if (typeof config === 'string') {
        if (typeof data[config] === 'undefined') {
XhmikosR's avatar
XhmikosR committed
4272
          throw new TypeError("No method named \"" + config + "\"");
XhmikosR's avatar
Dist.  
XhmikosR committed
4273
4274
4275
4276
4277
        }

        data[config]();
      }
    });
XhmikosR's avatar
XhmikosR committed
4278
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
4279

XhmikosR's avatar
XhmikosR committed
4280
  Popover.getInstance = function getInstance(element) {
XhmikosR's avatar
Dist.  
XhmikosR committed
4281
    return Data.getData(element, DATA_KEY$7);
XhmikosR's avatar
XhmikosR committed
4282
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
4283

XhmikosR's avatar
XhmikosR committed
4284
4285
4286
4287
4288
4289
4290
4291
4292
4293
4294
4295
4296
4297
4298
4299
4300
4301
4302
4303
4304
4305
4306
4307
  _createClass(Popover, null, [{
    key: "VERSION",
    // Getters
    get: function get() {
      return VERSION$7;
    }
  }, {
    key: "Default",
    get: function get() {
      return Default$5;
    }
  }, {
    key: "NAME",
    get: function get() {
      return NAME$7;
    }
  }, {
    key: "DATA_KEY",
    get: function get() {
      return DATA_KEY$7;
    }
  }, {
    key: "Event",
    get: function get() {
XhmikosR's avatar
XhmikosR committed
4308
      return Event$2;
XhmikosR's avatar
XhmikosR committed
4309
4310
4311
4312
4313
4314
4315
4316
4317
4318
4319
4320
4321
4322
4323
    }
  }, {
    key: "EVENT_KEY",
    get: function get() {
      return EVENT_KEY$7;
    }
  }, {
    key: "DefaultType",
    get: function get() {
      return DefaultType$5;
    }
  }]);

  return Popover;
}(Tooltip);
XhmikosR's avatar
XhmikosR committed
4324
4325

var $$8 = getjQuery();
XhmikosR's avatar
Dist.  
XhmikosR committed
4326
4327
4328
4329
4330
4331
/**
 * ------------------------------------------------------------------------
 * jQuery
 * ------------------------------------------------------------------------
 */

4332
4333
/* istanbul ignore if */

XhmikosR's avatar
XhmikosR committed
4334
4335
4336
4337
if ($$8) {
  var JQUERY_NO_CONFLICT$7 = $$8.fn[NAME$7];
  $$8.fn[NAME$7] = Popover.jQueryInterface;
  $$8.fn[NAME$7].Constructor = Popover;
XhmikosR's avatar
Dist.  
XhmikosR committed
4338

XhmikosR's avatar
XhmikosR committed
4339
4340
4341
  $$8.fn[NAME$7].noConflict = function () {
    $$8.fn[NAME$7] = JQUERY_NO_CONFLICT$7;
    return Popover.jQueryInterface;
XhmikosR's avatar
Dist.  
XhmikosR committed
4342
4343
4344
4345
4346
4347
4348
4349
4350
  };
}

/**
 * ------------------------------------------------------------------------
 * Constants
 * ------------------------------------------------------------------------
 */

XhmikosR's avatar
XhmikosR committed
4351
var NAME$8 = 'scrollspy';
4352
var VERSION$8 = '5.0.0-alpha1';
XhmikosR's avatar
XhmikosR committed
4353
4354
4355
4356
var DATA_KEY$8 = 'bs.scrollspy';
var EVENT_KEY$8 = "." + DATA_KEY$8;
var DATA_API_KEY$6 = '.data-api';
var Default$6 = {
XhmikosR's avatar
Dist.  
XhmikosR committed
4357
4358
4359
4360
  offset: 10,
  method: 'auto',
  target: ''
};
XhmikosR's avatar
XhmikosR committed
4361
var DefaultType$6 = {
XhmikosR's avatar
Dist.  
XhmikosR committed
4362
4363
4364
4365
  offset: 'number',
  method: 'string',
  target: '(string|element)'
};
XhmikosR's avatar
XhmikosR committed
4366
4367
4368
4369
4370
4371
4372
4373
4374
4375
4376
4377
4378
4379
var EVENT_ACTIVATE = "activate" + EVENT_KEY$8;
var EVENT_SCROLL = "scroll" + EVENT_KEY$8;
var EVENT_LOAD_DATA_API$1 = "load" + EVENT_KEY$8 + DATA_API_KEY$6;
var CLASS_NAME_DROPDOWN_ITEM = 'dropdown-item';
var CLASS_NAME_ACTIVE$2 = 'active';
var SELECTOR_DATA_SPY = '[data-spy="scroll"]';
var SELECTOR_NAV_LIST_GROUP = '.nav, .list-group';
var SELECTOR_NAV_LINKS = '.nav-link';
var SELECTOR_NAV_ITEMS = '.nav-item';
var SELECTOR_LIST_ITEMS = '.list-group-item';
var SELECTOR_DROPDOWN = '.dropdown';
var SELECTOR_DROPDOWN_TOGGLE = '.dropdown-toggle';
var METHOD_OFFSET = 'offset';
var METHOD_POSITION = 'position';
XhmikosR's avatar
XhmikosR committed
4380
4381
4382
4383
4384
/**
 * ------------------------------------------------------------------------
 * Class Definition
 * ------------------------------------------------------------------------
 */
XhmikosR's avatar
Dist.  
XhmikosR committed
4385

XhmikosR's avatar
XhmikosR committed
4386
var ScrollSpy = /*#__PURE__*/function () {
XhmikosR's avatar
XhmikosR committed
4387
4388
4389
  function ScrollSpy(element, config) {
    var _this = this;

XhmikosR's avatar
Dist.  
XhmikosR committed
4390
4391
4392
    this._element = element;
    this._scrollElement = element.tagName === 'BODY' ? window : element;
    this._config = this._getConfig(config);
XhmikosR's avatar
XhmikosR committed
4393
    this._selector = this._config.target + " " + SELECTOR_NAV_LINKS + "," + (this._config.target + " " + SELECTOR_LIST_ITEMS + ",") + (this._config.target + " ." + CLASS_NAME_DROPDOWN_ITEM);
XhmikosR's avatar
Dist.  
XhmikosR committed
4394
4395
4396
4397
    this._offsets = [];
    this._targets = [];
    this._activeTarget = null;
    this._scrollHeight = 0;
XhmikosR's avatar
XhmikosR committed
4398
    EventHandler.on(this._scrollElement, EVENT_SCROLL, function (event) {
XhmikosR's avatar
XhmikosR committed
4399
4400
      return _this._process(event);
    });
XhmikosR's avatar
Dist.  
XhmikosR committed
4401
4402
4403
4404
4405
4406
4407
4408
    this.refresh();

    this._process();

    Data.setData(element, DATA_KEY$8, this);
  } // Getters


XhmikosR's avatar
XhmikosR committed
4409
  var _proto = ScrollSpy.prototype;
XhmikosR's avatar
Dist.  
XhmikosR committed
4410

XhmikosR's avatar
XhmikosR committed
4411
4412
4413
  // Public
  _proto.refresh = function refresh() {
    var _this2 = this;
XhmikosR's avatar
Dist.  
XhmikosR committed
4414

XhmikosR's avatar
XhmikosR committed
4415
    var autoMethod = this._scrollElement === this._scrollElement.window ? METHOD_OFFSET : METHOD_POSITION;
XhmikosR's avatar
XhmikosR committed
4416
    var offsetMethod = this._config.method === 'auto' ? autoMethod : this._config.method;
XhmikosR's avatar
XhmikosR committed
4417
    var offsetBase = offsetMethod === METHOD_POSITION ? this._getScrollTop() : 0;
XhmikosR's avatar
Dist.  
XhmikosR committed
4418
4419
4420
    this._offsets = [];
    this._targets = [];
    this._scrollHeight = this._getScrollHeight();
XhmikosR's avatar
XhmikosR committed
4421
    var targets = SelectorEngine.find(this._selector);
XhmikosR's avatar
XhmikosR committed
4422
4423
4424
    targets.map(function (element) {
      var target;
      var targetSelector = getSelectorFromElement(element);
XhmikosR's avatar
Dist.  
XhmikosR committed
4425
4426
4427
4428
4429
4430

      if (targetSelector) {
        target = SelectorEngine.findOne(targetSelector);
      }

      if (target) {
XhmikosR's avatar
XhmikosR committed
4431
        var targetBCR = target.getBoundingClientRect();
XhmikosR's avatar
Dist.  
XhmikosR committed
4432
4433
4434
4435
4436
4437
4438

        if (targetBCR.width || targetBCR.height) {
          return [Manipulator[offsetMethod](target).top + offsetBase, targetSelector];
        }
      }

      return null;
XhmikosR's avatar
XhmikosR committed
4439
4440
4441
4442
4443
4444
4445
4446
    }).filter(function (item) {
      return item;
    }).sort(function (a, b) {
      return a[0] - b[0];
    }).forEach(function (item) {
      _this2._offsets.push(item[0]);

      _this2._targets.push(item[1]);
XhmikosR's avatar
Dist.  
XhmikosR committed
4447
    });
XhmikosR's avatar
XhmikosR committed
4448
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
4449

XhmikosR's avatar
XhmikosR committed
4450
  _proto.dispose = function dispose() {
XhmikosR's avatar
Dist.  
XhmikosR committed
4451
4452
4453
4454
4455
4456
4457
4458
4459
4460
4461
    Data.removeData(this._element, DATA_KEY$8);
    EventHandler.off(this._scrollElement, EVENT_KEY$8);
    this._element = null;
    this._scrollElement = null;
    this._config = null;
    this._selector = null;
    this._offsets = null;
    this._targets = null;
    this._activeTarget = null;
    this._scrollHeight = null;
  } // Private
XhmikosR's avatar
XhmikosR committed
4462
  ;
XhmikosR's avatar
Dist.  
XhmikosR committed
4463

XhmikosR's avatar
XhmikosR committed
4464
  _proto._getConfig = function _getConfig(config) {
XhmikosR's avatar
XhmikosR committed
4465
    config = _objectSpread2(_objectSpread2({}, Default$6), typeof config === 'object' && config ? config : {});
XhmikosR's avatar
Dist.  
XhmikosR committed
4466

XhmikosR's avatar
XhmikosR committed
4467
    if (typeof config.target !== 'string' && isElement(config.target)) {
XhmikosR's avatar
XhmikosR committed
4468
      var id = config.target.id;
XhmikosR's avatar
Dist.  
XhmikosR committed
4469
4470
4471
4472
4473
4474

      if (!id) {
        id = getUID(NAME$8);
        config.target.id = id;
      }

XhmikosR's avatar
XhmikosR committed
4475
      config.target = "#" + id;
XhmikosR's avatar
Dist.  
XhmikosR committed
4476
4477
4478
4479
    }

    typeCheckConfig(NAME$8, config, DefaultType$6);
    return config;
XhmikosR's avatar
XhmikosR committed
4480
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
4481

XhmikosR's avatar
XhmikosR committed
4482
  _proto._getScrollTop = function _getScrollTop() {
XhmikosR's avatar
Dist.  
XhmikosR committed
4483
    return this._scrollElement === window ? this._scrollElement.pageYOffset : this._scrollElement.scrollTop;
XhmikosR's avatar
XhmikosR committed
4484
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
4485

XhmikosR's avatar
XhmikosR committed
4486
  _proto._getScrollHeight = function _getScrollHeight() {
XhmikosR's avatar
Dist.  
XhmikosR committed
4487
    return this._scrollElement.scrollHeight || Math.max(document.body.scrollHeight, document.documentElement.scrollHeight);
XhmikosR's avatar
XhmikosR committed
4488
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
4489

XhmikosR's avatar
XhmikosR committed
4490
  _proto._getOffsetHeight = function _getOffsetHeight() {
XhmikosR's avatar
Dist.  
XhmikosR committed
4491
    return this._scrollElement === window ? window.innerHeight : this._scrollElement.getBoundingClientRect().height;
XhmikosR's avatar
XhmikosR committed
4492
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
4493

XhmikosR's avatar
XhmikosR committed
4494
4495
  _proto._process = function _process() {
    var scrollTop = this._getScrollTop() + this._config.offset;
XhmikosR's avatar
Dist.  
XhmikosR committed
4496

XhmikosR's avatar
XhmikosR committed
4497
    var scrollHeight = this._getScrollHeight();
XhmikosR's avatar
Dist.  
XhmikosR committed
4498

XhmikosR's avatar
XhmikosR committed
4499
    var maxScroll = this._config.offset + scrollHeight - this._getOffsetHeight();
XhmikosR's avatar
Dist.  
XhmikosR committed
4500
4501
4502
4503
4504
4505

    if (this._scrollHeight !== scrollHeight) {
      this.refresh();
    }

    if (scrollTop >= maxScroll) {
XhmikosR's avatar
XhmikosR committed
4506
      var target = this._targets[this._targets.length - 1];
XhmikosR's avatar
Dist.  
XhmikosR committed
4507
4508
4509
4510
4511
4512
4513
4514
4515
4516
4517
4518
4519
4520
4521
4522

      if (this._activeTarget !== target) {
        this._activate(target);
      }

      return;
    }

    if (this._activeTarget && scrollTop < this._offsets[0] && this._offsets[0] > 0) {
      this._activeTarget = null;

      this._clear();

      return;
    }

XhmikosR's avatar
XhmikosR committed
4523
    for (var i = this._offsets.length; i--;) {
XhmikosR's avatar
XhmikosR committed
4524
      var isActiveTarget = this._activeTarget !== this._targets[i] && scrollTop >= this._offsets[i] && (typeof this._offsets[i + 1] === 'undefined' || scrollTop < this._offsets[i + 1]);
XhmikosR's avatar
Dist.  
XhmikosR committed
4525
4526
4527
4528
4529

      if (isActiveTarget) {
        this._activate(this._targets[i]);
      }
    }
XhmikosR's avatar
XhmikosR committed
4530
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
4531

XhmikosR's avatar
XhmikosR committed
4532
  _proto._activate = function _activate(target) {
XhmikosR's avatar
Dist.  
XhmikosR committed
4533
4534
4535
4536
    this._activeTarget = target;

    this._clear();

XhmikosR's avatar
XhmikosR committed
4537
4538
4539
    var queries = this._selector.split(',').map(function (selector) {
      return selector + "[data-target=\"" + target + "\"]," + selector + "[href=\"" + target + "\"]";
    });
XhmikosR's avatar
Dist.  
XhmikosR committed
4540

XhmikosR's avatar
XhmikosR committed
4541
    var link = SelectorEngine.findOne(queries.join(','));
XhmikosR's avatar
Dist.  
XhmikosR committed
4542

XhmikosR's avatar
XhmikosR committed
4543
    if (link.classList.contains(CLASS_NAME_DROPDOWN_ITEM)) {
XhmikosR's avatar
XhmikosR committed
4544
      SelectorEngine.findOne(SELECTOR_DROPDOWN_TOGGLE, link.closest(SELECTOR_DROPDOWN)).classList.add(CLASS_NAME_ACTIVE$2);
XhmikosR's avatar
XhmikosR committed
4545
      link.classList.add(CLASS_NAME_ACTIVE$2);
XhmikosR's avatar
Dist.  
XhmikosR committed
4546
4547
    } else {
      // Set triggered link as active
XhmikosR's avatar
XhmikosR committed
4548
4549
      link.classList.add(CLASS_NAME_ACTIVE$2);
      SelectorEngine.parents(link, SELECTOR_NAV_LIST_GROUP).forEach(function (listGroup) {
XhmikosR's avatar
Dist.  
XhmikosR committed
4550
4551
        // Set triggered links parents as active
        // With both <ul> and <nav> markup a parent is the previous sibling of any nav ancestor
XhmikosR's avatar
XhmikosR committed
4552
4553
        SelectorEngine.prev(listGroup, SELECTOR_NAV_LINKS + ", " + SELECTOR_LIST_ITEMS).forEach(function (item) {
          return item.classList.add(CLASS_NAME_ACTIVE$2);
XhmikosR's avatar
XhmikosR committed
4554
        }); // Handle special case when .nav-link is inside .nav-item
XhmikosR's avatar
Dist.  
XhmikosR committed
4555

XhmikosR's avatar
XhmikosR committed
4556
4557
4558
        SelectorEngine.prev(listGroup, SELECTOR_NAV_ITEMS).forEach(function (navItem) {
          SelectorEngine.children(navItem, SELECTOR_NAV_LINKS).forEach(function (item) {
            return item.classList.add(CLASS_NAME_ACTIVE$2);
XhmikosR's avatar
XhmikosR committed
4559
          });
XhmikosR's avatar
Dist.  
XhmikosR committed
4560
4561
4562
4563
        });
      });
    }

XhmikosR's avatar
XhmikosR committed
4564
    EventHandler.trigger(this._scrollElement, EVENT_ACTIVATE, {
XhmikosR's avatar
Dist.  
XhmikosR committed
4565
4566
      relatedTarget: target
    });
XhmikosR's avatar
XhmikosR committed
4567
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
4568

XhmikosR's avatar
XhmikosR committed
4569
  _proto._clear = function _clear() {
XhmikosR's avatar
XhmikosR committed
4570
4571
    SelectorEngine.find(this._selector).filter(function (node) {
      return node.classList.contains(CLASS_NAME_ACTIVE$2);
XhmikosR's avatar
XhmikosR committed
4572
    }).forEach(function (node) {
XhmikosR's avatar
XhmikosR committed
4573
      return node.classList.remove(CLASS_NAME_ACTIVE$2);
XhmikosR's avatar
XhmikosR committed
4574
    });
XhmikosR's avatar
Dist.  
XhmikosR committed
4575
  } // Static
XhmikosR's avatar
XhmikosR committed
4576
  ;
XhmikosR's avatar
Dist.  
XhmikosR committed
4577

XhmikosR's avatar
XhmikosR committed
4578
  ScrollSpy.jQueryInterface = function jQueryInterface(config) {
XhmikosR's avatar
Dist.  
XhmikosR committed
4579
    return this.each(function () {
XhmikosR's avatar
XhmikosR committed
4580
      var data = Data.getData(this, DATA_KEY$8);
XhmikosR's avatar
Dist.  
XhmikosR committed
4581

XhmikosR's avatar
XhmikosR committed
4582
      var _config = typeof config === 'object' && config;
XhmikosR's avatar
Dist.  
XhmikosR committed
4583
4584
4585
4586
4587
4588
4589

      if (!data) {
        data = new ScrollSpy(this, _config);
      }

      if (typeof config === 'string') {
        if (typeof data[config] === 'undefined') {
XhmikosR's avatar
XhmikosR committed
4590
          throw new TypeError("No method named \"" + config + "\"");
XhmikosR's avatar
Dist.  
XhmikosR committed
4591
4592
4593
4594
4595
        }

        data[config]();
      }
    });
XhmikosR's avatar
XhmikosR committed
4596
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
4597

XhmikosR's avatar
XhmikosR committed
4598
  ScrollSpy.getInstance = function getInstance(element) {
XhmikosR's avatar
Dist.  
XhmikosR committed
4599
    return Data.getData(element, DATA_KEY$8);
XhmikosR's avatar
XhmikosR committed
4600
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
4601

XhmikosR's avatar
XhmikosR committed
4602
4603
4604
4605
4606
4607
4608
4609
4610
4611
4612
4613
4614
4615
  _createClass(ScrollSpy, null, [{
    key: "VERSION",
    get: function get() {
      return VERSION$8;
    }
  }, {
    key: "Default",
    get: function get() {
      return Default$6;
    }
  }]);

  return ScrollSpy;
}();
XhmikosR's avatar
Dist.  
XhmikosR committed
4616
4617
4618
4619
4620
4621
4622
/**
 * ------------------------------------------------------------------------
 * Data Api implementation
 * ------------------------------------------------------------------------
 */


XhmikosR's avatar
XhmikosR committed
4623
4624
EventHandler.on(window, EVENT_LOAD_DATA_API$1, function () {
  SelectorEngine.find(SELECTOR_DATA_SPY).forEach(function (spy) {
XhmikosR's avatar
XhmikosR committed
4625
4626
    return new ScrollSpy(spy, Manipulator.getDataAttributes(spy));
  });
XhmikosR's avatar
Dist.  
XhmikosR committed
4627
});
XhmikosR's avatar
XhmikosR committed
4628
var $$9 = getjQuery();
XhmikosR's avatar
Dist.  
XhmikosR committed
4629
4630
4631
4632
4633
4634
/**
 * ------------------------------------------------------------------------
 * jQuery
 * ------------------------------------------------------------------------
 */

4635
4636
/* istanbul ignore if */

XhmikosR's avatar
XhmikosR committed
4637
4638
4639
4640
if ($$9) {
  var JQUERY_NO_CONFLICT$8 = $$9.fn[NAME$8];
  $$9.fn[NAME$8] = ScrollSpy.jQueryInterface;
  $$9.fn[NAME$8].Constructor = ScrollSpy;
XhmikosR's avatar
Dist.  
XhmikosR committed
4641

XhmikosR's avatar
XhmikosR committed
4642
4643
4644
  $$9.fn[NAME$8].noConflict = function () {
    $$9.fn[NAME$8] = JQUERY_NO_CONFLICT$8;
    return ScrollSpy.jQueryInterface;
XhmikosR's avatar
Dist.  
XhmikosR committed
4645
4646
4647
4648
4649
4650
4651
4652
4653
  };
}

/**
 * ------------------------------------------------------------------------
 * Constants
 * ------------------------------------------------------------------------
 */

XhmikosR's avatar
XhmikosR committed
4654
var NAME$9 = 'tab';
4655
var VERSION$9 = '5.0.0-alpha1';
XhmikosR's avatar
XhmikosR committed
4656
4657
4658
var DATA_KEY$9 = 'bs.tab';
var EVENT_KEY$9 = "." + DATA_KEY$9;
var DATA_API_KEY$7 = '.data-api';
XhmikosR's avatar
XhmikosR committed
4659
4660
4661
4662
4663
4664
4665
4666
4667
4668
4669
4670
4671
4672
4673
4674
4675
var EVENT_HIDE$3 = "hide" + EVENT_KEY$9;
var EVENT_HIDDEN$3 = "hidden" + EVENT_KEY$9;
var EVENT_SHOW$3 = "show" + EVENT_KEY$9;
var EVENT_SHOWN$3 = "shown" + EVENT_KEY$9;
var EVENT_CLICK_DATA_API$6 = "click" + EVENT_KEY$9 + DATA_API_KEY$7;
var CLASS_NAME_DROPDOWN_MENU = 'dropdown-menu';
var CLASS_NAME_ACTIVE$3 = 'active';
var CLASS_NAME_DISABLED$2 = 'disabled';
var CLASS_NAME_FADE$3 = 'fade';
var CLASS_NAME_SHOW$5 = 'show';
var SELECTOR_DROPDOWN$1 = '.dropdown';
var SELECTOR_NAV_LIST_GROUP$1 = '.nav, .list-group';
var SELECTOR_ACTIVE$2 = '.active';
var SELECTOR_ACTIVE_UL = ':scope > li > .active';
var SELECTOR_DATA_TOGGLE$4 = '[data-toggle="tab"], [data-toggle="pill"], [data-toggle="list"]';
var SELECTOR_DROPDOWN_TOGGLE$1 = '.dropdown-toggle';
var SELECTOR_DROPDOWN_ACTIVE_CHILD = ':scope > .dropdown-menu .active';
XhmikosR's avatar
XhmikosR committed
4676
4677
4678
4679
4680
/**
 * ------------------------------------------------------------------------
 * Class Definition
 * ------------------------------------------------------------------------
 */
XhmikosR's avatar
Dist.  
XhmikosR committed
4681

XhmikosR's avatar
XhmikosR committed
4682
var Tab = /*#__PURE__*/function () {
XhmikosR's avatar
XhmikosR committed
4683
  function Tab(element) {
XhmikosR's avatar
Dist.  
XhmikosR committed
4684
4685
4686
4687
4688
    this._element = element;
    Data.setData(this._element, DATA_KEY$9, this);
  } // Getters


XhmikosR's avatar
XhmikosR committed
4689
  var _proto = Tab.prototype;
XhmikosR's avatar
Dist.  
XhmikosR committed
4690

XhmikosR's avatar
XhmikosR committed
4691
4692
4693
  // Public
  _proto.show = function show() {
    var _this = this;
XhmikosR's avatar
Dist.  
XhmikosR committed
4694

XhmikosR's avatar
XhmikosR committed
4695
    if (this._element.parentNode && this._element.parentNode.nodeType === Node.ELEMENT_NODE && this._element.classList.contains(CLASS_NAME_ACTIVE$3) || this._element.classList.contains(CLASS_NAME_DISABLED$2)) {
XhmikosR's avatar
Dist.  
XhmikosR committed
4696
4697
4698
      return;
    }

XhmikosR's avatar
XhmikosR committed
4699
    var previous;
XhmikosR's avatar
XhmikosR committed
4700
    var target = getElementFromSelector(this._element);
XhmikosR's avatar
XhmikosR committed
4701
4702

    var listElement = this._element.closest(SELECTOR_NAV_LIST_GROUP$1);
XhmikosR's avatar
Dist.  
XhmikosR committed
4703
4704

    if (listElement) {
XhmikosR's avatar
XhmikosR committed
4705
4706
      var itemSelector = listElement.nodeName === 'UL' || listElement.nodeName === 'OL' ? SELECTOR_ACTIVE_UL : SELECTOR_ACTIVE$2;
      previous = SelectorEngine.find(itemSelector, listElement);
XhmikosR's avatar
Dist.  
XhmikosR committed
4707
4708
4709
      previous = previous[previous.length - 1];
    }

XhmikosR's avatar
XhmikosR committed
4710
    var hideEvent = null;
XhmikosR's avatar
Dist.  
XhmikosR committed
4711
4712

    if (previous) {
XhmikosR's avatar
XhmikosR committed
4713
      hideEvent = EventHandler.trigger(previous, EVENT_HIDE$3, {
XhmikosR's avatar
Dist.  
XhmikosR committed
4714
4715
4716
4717
        relatedTarget: this._element
      });
    }

XhmikosR's avatar
XhmikosR committed
4718
    var showEvent = EventHandler.trigger(this._element, EVENT_SHOW$3, {
XhmikosR's avatar
Dist.  
XhmikosR committed
4719
4720
4721
4722
4723
4724
4725
4726
4727
      relatedTarget: previous
    });

    if (showEvent.defaultPrevented || hideEvent !== null && hideEvent.defaultPrevented) {
      return;
    }

    this._activate(this._element, listElement);

XhmikosR's avatar
XhmikosR committed
4728
    var complete = function complete() {
XhmikosR's avatar
XhmikosR committed
4729
      EventHandler.trigger(previous, EVENT_HIDDEN$3, {
XhmikosR's avatar
XhmikosR committed
4730
        relatedTarget: _this._element
XhmikosR's avatar
Dist.  
XhmikosR committed
4731
      });
XhmikosR's avatar
XhmikosR committed
4732
      EventHandler.trigger(_this._element, EVENT_SHOWN$3, {
XhmikosR's avatar
Dist.  
XhmikosR committed
4733
4734
4735
4736
4737
4738
4739
4740
4741
        relatedTarget: previous
      });
    };

    if (target) {
      this._activate(target, target.parentNode, complete);
    } else {
      complete();
    }
XhmikosR's avatar
XhmikosR committed
4742
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
4743

XhmikosR's avatar
XhmikosR committed
4744
  _proto.dispose = function dispose() {
XhmikosR's avatar
Dist.  
XhmikosR committed
4745
4746
4747
    Data.removeData(this._element, DATA_KEY$9);
    this._element = null;
  } // Private
XhmikosR's avatar
XhmikosR committed
4748
  ;
XhmikosR's avatar
Dist.  
XhmikosR committed
4749

XhmikosR's avatar
XhmikosR committed
4750
4751
  _proto._activate = function _activate(element, container, callback) {
    var _this2 = this;
XhmikosR's avatar
Dist.  
XhmikosR committed
4752

XhmikosR's avatar
XhmikosR committed
4753
    var activeElements = container && (container.nodeName === 'UL' || container.nodeName === 'OL') ? SelectorEngine.find(SELECTOR_ACTIVE_UL, container) : SelectorEngine.children(container, SELECTOR_ACTIVE$2);
XhmikosR's avatar
XhmikosR committed
4754
    var active = activeElements[0];
XhmikosR's avatar
XhmikosR committed
4755
    var isTransitioning = callback && active && active.classList.contains(CLASS_NAME_FADE$3);
XhmikosR's avatar
Dist.  
XhmikosR committed
4756

XhmikosR's avatar
XhmikosR committed
4757
4758
4759
    var complete = function complete() {
      return _this2._transitionComplete(element, active, callback);
    };
XhmikosR's avatar
Dist.  
XhmikosR committed
4760
4761

    if (active && isTransitioning) {
XhmikosR's avatar
XhmikosR committed
4762
      var transitionDuration = getTransitionDurationFromElement(active);
XhmikosR's avatar
XhmikosR committed
4763
      active.classList.remove(CLASS_NAME_SHOW$5);
XhmikosR's avatar
Dist.  
XhmikosR committed
4764
4765
4766
4767
4768
      EventHandler.one(active, TRANSITION_END, complete);
      emulateTransitionEnd(active, transitionDuration);
    } else {
      complete();
    }
XhmikosR's avatar
XhmikosR committed
4769
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
4770

XhmikosR's avatar
XhmikosR committed
4771
  _proto._transitionComplete = function _transitionComplete(element, active, callback) {
XhmikosR's avatar
Dist.  
XhmikosR committed
4772
    if (active) {
XhmikosR's avatar
XhmikosR committed
4773
4774
      active.classList.remove(CLASS_NAME_ACTIVE$3);
      var dropdownChild = SelectorEngine.findOne(SELECTOR_DROPDOWN_ACTIVE_CHILD, active.parentNode);
XhmikosR's avatar
Dist.  
XhmikosR committed
4775
4776

      if (dropdownChild) {
XhmikosR's avatar
XhmikosR committed
4777
        dropdownChild.classList.remove(CLASS_NAME_ACTIVE$3);
XhmikosR's avatar
Dist.  
XhmikosR committed
4778
4779
4780
4781
4782
4783
4784
      }

      if (active.getAttribute('role') === 'tab') {
        active.setAttribute('aria-selected', false);
      }
    }

XhmikosR's avatar
XhmikosR committed
4785
    element.classList.add(CLASS_NAME_ACTIVE$3);
XhmikosR's avatar
Dist.  
XhmikosR committed
4786
4787
4788
4789
4790
4791
4792

    if (element.getAttribute('role') === 'tab') {
      element.setAttribute('aria-selected', true);
    }

    reflow(element);

XhmikosR's avatar
XhmikosR committed
4793
4794
    if (element.classList.contains(CLASS_NAME_FADE$3)) {
      element.classList.add(CLASS_NAME_SHOW$5);
XhmikosR's avatar
Dist.  
XhmikosR committed
4795
4796
    }

XhmikosR's avatar
XhmikosR committed
4797
    if (element.parentNode && element.parentNode.classList.contains(CLASS_NAME_DROPDOWN_MENU)) {
XhmikosR's avatar
XhmikosR committed
4798
      var dropdownElement = element.closest(SELECTOR_DROPDOWN$1);
XhmikosR's avatar
Dist.  
XhmikosR committed
4799
4800

      if (dropdownElement) {
XhmikosR's avatar
XhmikosR committed
4801
4802
        SelectorEngine.find(SELECTOR_DROPDOWN_TOGGLE$1).forEach(function (dropdown) {
          return dropdown.classList.add(CLASS_NAME_ACTIVE$3);
XhmikosR's avatar
XhmikosR committed
4803
        });
XhmikosR's avatar
Dist.  
XhmikosR committed
4804
4805
4806
4807
4808
4809
4810
4811
4812
      }

      element.setAttribute('aria-expanded', true);
    }

    if (callback) {
      callback();
    }
  } // Static
XhmikosR's avatar
XhmikosR committed
4813
  ;
XhmikosR's avatar
Dist.  
XhmikosR committed
4814

XhmikosR's avatar
XhmikosR committed
4815
  Tab.jQueryInterface = function jQueryInterface(config) {
XhmikosR's avatar
Dist.  
XhmikosR committed
4816
    return this.each(function () {
XhmikosR's avatar
XhmikosR committed
4817
      var data = Data.getData(this, DATA_KEY$9) || new Tab(this);
XhmikosR's avatar
Dist.  
XhmikosR committed
4818
4819
4820

      if (typeof config === 'string') {
        if (typeof data[config] === 'undefined') {
XhmikosR's avatar
XhmikosR committed
4821
          throw new TypeError("No method named \"" + config + "\"");
XhmikosR's avatar
Dist.  
XhmikosR committed
4822
4823
4824
4825
4826
        }

        data[config]();
      }
    });
XhmikosR's avatar
XhmikosR committed
4827
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
4828

XhmikosR's avatar
XhmikosR committed
4829
  Tab.getInstance = function getInstance(element) {
XhmikosR's avatar
Dist.  
XhmikosR committed
4830
    return Data.getData(element, DATA_KEY$9);
XhmikosR's avatar
XhmikosR committed
4831
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
4832

XhmikosR's avatar
XhmikosR committed
4833
4834
4835
4836
4837
4838
4839
4840
4841
  _createClass(Tab, null, [{
    key: "VERSION",
    get: function get() {
      return VERSION$9;
    }
  }]);

  return Tab;
}();
XhmikosR's avatar
Dist.  
XhmikosR committed
4842
4843
4844
4845
4846
4847
4848
/**
 * ------------------------------------------------------------------------
 * Data Api implementation
 * ------------------------------------------------------------------------
 */


XhmikosR's avatar
XhmikosR committed
4849
EventHandler.on(document, EVENT_CLICK_DATA_API$6, SELECTOR_DATA_TOGGLE$4, function (event) {
XhmikosR's avatar
Dist.  
XhmikosR committed
4850
  event.preventDefault();
XhmikosR's avatar
XhmikosR committed
4851
  var data = Data.getData(this, DATA_KEY$9) || new Tab(this);
XhmikosR's avatar
Dist.  
XhmikosR committed
4852
4853
  data.show();
});
XhmikosR's avatar
XhmikosR committed
4854
var $$a = getjQuery();
XhmikosR's avatar
Dist.  
XhmikosR committed
4855
4856
4857
4858
4859
4860
4861
/**
 * ------------------------------------------------------------------------
 * jQuery
 * ------------------------------------------------------------------------
 * add .tab to jQuery only if jQuery is present
 */

4862
4863
/* istanbul ignore if */

XhmikosR's avatar
XhmikosR committed
4864
4865
4866
4867
if ($$a) {
  var JQUERY_NO_CONFLICT$9 = $$a.fn[NAME$9];
  $$a.fn[NAME$9] = Tab.jQueryInterface;
  $$a.fn[NAME$9].Constructor = Tab;
XhmikosR's avatar
Dist.  
XhmikosR committed
4868

XhmikosR's avatar
XhmikosR committed
4869
4870
4871
  $$a.fn[NAME$9].noConflict = function () {
    $$a.fn[NAME$9] = JQUERY_NO_CONFLICT$9;
    return Tab.jQueryInterface;
XhmikosR's avatar
Dist.  
XhmikosR committed
4872
4873
4874
4875
4876
4877
4878
4879
4880
  };
}

/**
 * ------------------------------------------------------------------------
 * Constants
 * ------------------------------------------------------------------------
 */

XhmikosR's avatar
XhmikosR committed
4881
var NAME$a = 'toast';
4882
var VERSION$a = '5.0.0-alpha1';
XhmikosR's avatar
XhmikosR committed
4883
4884
var DATA_KEY$a = 'bs.toast';
var EVENT_KEY$a = "." + DATA_KEY$a;
XhmikosR's avatar
XhmikosR committed
4885
4886
4887
4888
4889
4890
4891
4892
4893
var EVENT_CLICK_DISMISS$1 = "click.dismiss" + EVENT_KEY$a;
var EVENT_HIDE$4 = "hide" + EVENT_KEY$a;
var EVENT_HIDDEN$4 = "hidden" + EVENT_KEY$a;
var EVENT_SHOW$4 = "show" + EVENT_KEY$a;
var EVENT_SHOWN$4 = "shown" + EVENT_KEY$a;
var CLASS_NAME_FADE$4 = 'fade';
var CLASS_NAME_HIDE = 'hide';
var CLASS_NAME_SHOW$6 = 'show';
var CLASS_NAME_SHOWING = 'showing';
XhmikosR's avatar
XhmikosR committed
4894
var DefaultType$7 = {
XhmikosR's avatar
Dist.  
XhmikosR committed
4895
4896
4897
4898
  animation: 'boolean',
  autohide: 'boolean',
  delay: 'number'
};
XhmikosR's avatar
XhmikosR committed
4899
var Default$7 = {
XhmikosR's avatar
Dist.  
XhmikosR committed
4900
4901
4902
4903
  animation: true,
  autohide: true,
  delay: 500
};
XhmikosR's avatar
XhmikosR committed
4904
var SELECTOR_DATA_DISMISS$1 = '[data-dismiss="toast"]';
XhmikosR's avatar
XhmikosR committed
4905
4906
4907
4908
4909
/**
 * ------------------------------------------------------------------------
 * Class Definition
 * ------------------------------------------------------------------------
 */
XhmikosR's avatar
Dist.  
XhmikosR committed
4910

XhmikosR's avatar
XhmikosR committed
4911
var Toast = /*#__PURE__*/function () {
XhmikosR's avatar
XhmikosR committed
4912
  function Toast(element, config) {
XhmikosR's avatar
Dist.  
XhmikosR committed
4913
4914
4915
4916
4917
4918
4919
4920
4921
4922
    this._element = element;
    this._config = this._getConfig(config);
    this._timeout = null;

    this._setListeners();

    Data.setData(element, DATA_KEY$a, this);
  } // Getters


XhmikosR's avatar
XhmikosR committed
4923
  var _proto = Toast.prototype;
XhmikosR's avatar
Dist.  
XhmikosR committed
4924

XhmikosR's avatar
XhmikosR committed
4925
4926
4927
  // Public
  _proto.show = function show() {
    var _this = this;
XhmikosR's avatar
Dist.  
XhmikosR committed
4928

XhmikosR's avatar
XhmikosR committed
4929
    var showEvent = EventHandler.trigger(this._element, EVENT_SHOW$4);
Mark Otto's avatar
dist v5    
Mark Otto committed
4930
4931
4932
4933

    if (showEvent.defaultPrevented) {
      return;
    }
XhmikosR's avatar
Dist.  
XhmikosR committed
4934
4935

    if (this._config.animation) {
XhmikosR's avatar
XhmikosR committed
4936
      this._element.classList.add(CLASS_NAME_FADE$4);
XhmikosR's avatar
Dist.  
XhmikosR committed
4937
4938
    }

XhmikosR's avatar
XhmikosR committed
4939
    var complete = function complete() {
XhmikosR's avatar
XhmikosR committed
4940
      _this._element.classList.remove(CLASS_NAME_SHOWING);
XhmikosR's avatar
Dist.  
XhmikosR committed
4941

XhmikosR's avatar
XhmikosR committed
4942
      _this._element.classList.add(CLASS_NAME_SHOW$6);
XhmikosR's avatar
Dist.  
XhmikosR committed
4943

XhmikosR's avatar
XhmikosR committed
4944
      EventHandler.trigger(_this._element, EVENT_SHOWN$4);
XhmikosR's avatar
Dist.  
XhmikosR committed
4945

XhmikosR's avatar
XhmikosR committed
4946
4947
4948
4949
      if (_this._config.autohide) {
        _this._timeout = setTimeout(function () {
          _this.hide();
        }, _this._config.delay);
XhmikosR's avatar
Dist.  
XhmikosR committed
4950
4951
4952
      }
    };

XhmikosR's avatar
XhmikosR committed
4953
    this._element.classList.remove(CLASS_NAME_HIDE);
XhmikosR's avatar
Dist.  
XhmikosR committed
4954

4955
4956
    reflow(this._element);

XhmikosR's avatar
XhmikosR committed
4957
    this._element.classList.add(CLASS_NAME_SHOWING);
XhmikosR's avatar
Dist.  
XhmikosR committed
4958
4959

    if (this._config.animation) {
XhmikosR's avatar
XhmikosR committed
4960
      var transitionDuration = getTransitionDurationFromElement(this._element);
XhmikosR's avatar
Dist.  
XhmikosR committed
4961
4962
4963
4964
4965
      EventHandler.one(this._element, TRANSITION_END, complete);
      emulateTransitionEnd(this._element, transitionDuration);
    } else {
      complete();
    }
XhmikosR's avatar
XhmikosR committed
4966
4967
4968
4969
  };

  _proto.hide = function hide() {
    var _this2 = this;
XhmikosR's avatar
Dist.  
XhmikosR committed
4970

XhmikosR's avatar
XhmikosR committed
4971
    if (!this._element.classList.contains(CLASS_NAME_SHOW$6)) {
XhmikosR's avatar
Dist.  
XhmikosR committed
4972
4973
4974
      return;
    }

XhmikosR's avatar
XhmikosR committed
4975
    var hideEvent = EventHandler.trigger(this._element, EVENT_HIDE$4);
Mark Otto's avatar
dist v5    
Mark Otto committed
4976
4977
4978
4979

    if (hideEvent.defaultPrevented) {
      return;
    }
XhmikosR's avatar
Dist.  
XhmikosR committed
4980

XhmikosR's avatar
XhmikosR committed
4981
    var complete = function complete() {
XhmikosR's avatar
XhmikosR committed
4982
      _this2._element.classList.add(CLASS_NAME_HIDE);
XhmikosR's avatar
XhmikosR committed
4983

XhmikosR's avatar
XhmikosR committed
4984
      EventHandler.trigger(_this2._element, EVENT_HIDDEN$4);
XhmikosR's avatar
XhmikosR committed
4985
4986
    };

XhmikosR's avatar
XhmikosR committed
4987
    this._element.classList.remove(CLASS_NAME_SHOW$6);
XhmikosR's avatar
XhmikosR committed
4988
4989
4990
4991
4992

    if (this._config.animation) {
      var transitionDuration = getTransitionDurationFromElement(this._element);
      EventHandler.one(this._element, TRANSITION_END, complete);
      emulateTransitionEnd(this._element, transitionDuration);
XhmikosR's avatar
Dist.  
XhmikosR committed
4993
    } else {
XhmikosR's avatar
XhmikosR committed
4994
      complete();
XhmikosR's avatar
Dist.  
XhmikosR committed
4995
    }
XhmikosR's avatar
XhmikosR committed
4996
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
4997

XhmikosR's avatar
XhmikosR committed
4998
  _proto.dispose = function dispose() {
XhmikosR's avatar
Dist.  
XhmikosR committed
4999
5000
5001
    clearTimeout(this._timeout);
    this._timeout = null;

XhmikosR's avatar
XhmikosR committed
5002
5003
    if (this._element.classList.contains(CLASS_NAME_SHOW$6)) {
      this._element.classList.remove(CLASS_NAME_SHOW$6);
XhmikosR's avatar
Dist.  
XhmikosR committed
5004
5005
    }

XhmikosR's avatar
XhmikosR committed
5006
    EventHandler.off(this._element, EVENT_CLICK_DISMISS$1);
XhmikosR's avatar
Dist.  
XhmikosR committed
5007
5008
5009
5010
    Data.removeData(this._element, DATA_KEY$a);
    this._element = null;
    this._config = null;
  } // Private
XhmikosR's avatar
XhmikosR committed
5011
  ;
XhmikosR's avatar
Dist.  
XhmikosR committed
5012

XhmikosR's avatar
XhmikosR committed
5013
  _proto._getConfig = function _getConfig(config) {
XhmikosR's avatar
XhmikosR committed
5014
    config = _objectSpread2(_objectSpread2(_objectSpread2({}, Default$7), Manipulator.getDataAttributes(this._element)), typeof config === 'object' && config ? config : {});
XhmikosR's avatar
Dist.  
XhmikosR committed
5015
5016
    typeCheckConfig(NAME$a, config, this.constructor.DefaultType);
    return config;
XhmikosR's avatar
XhmikosR committed
5017
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
5018

XhmikosR's avatar
XhmikosR committed
5019
5020
  _proto._setListeners = function _setListeners() {
    var _this3 = this;
XhmikosR's avatar
Dist.  
XhmikosR committed
5021

XhmikosR's avatar
XhmikosR committed
5022
    EventHandler.on(this._element, EVENT_CLICK_DISMISS$1, SELECTOR_DATA_DISMISS$1, function () {
XhmikosR's avatar
XhmikosR committed
5023
5024
      return _this3.hide();
    });
XhmikosR's avatar
Dist.  
XhmikosR committed
5025
  } // Static
XhmikosR's avatar
XhmikosR committed
5026
  ;
XhmikosR's avatar
Dist.  
XhmikosR committed
5027

XhmikosR's avatar
XhmikosR committed
5028
  Toast.jQueryInterface = function jQueryInterface(config) {
XhmikosR's avatar
Dist.  
XhmikosR committed
5029
    return this.each(function () {
XhmikosR's avatar
XhmikosR committed
5030
      var data = Data.getData(this, DATA_KEY$a);
XhmikosR's avatar
Dist.  
XhmikosR committed
5031

XhmikosR's avatar
XhmikosR committed
5032
      var _config = typeof config === 'object' && config;
XhmikosR's avatar
Dist.  
XhmikosR committed
5033
5034
5035
5036
5037
5038
5039

      if (!data) {
        data = new Toast(this, _config);
      }

      if (typeof config === 'string') {
        if (typeof data[config] === 'undefined') {
XhmikosR's avatar
XhmikosR committed
5040
          throw new TypeError("No method named \"" + config + "\"");
XhmikosR's avatar
Dist.  
XhmikosR committed
5041
5042
5043
5044
5045
        }

        data[config](this);
      }
    });
XhmikosR's avatar
XhmikosR committed
5046
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
5047

XhmikosR's avatar
XhmikosR committed
5048
  Toast.getInstance = function getInstance(element) {
XhmikosR's avatar
Dist.  
XhmikosR committed
5049
    return Data.getData(element, DATA_KEY$a);
XhmikosR's avatar
XhmikosR committed
5050
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
5051

XhmikosR's avatar
XhmikosR committed
5052
5053
5054
5055
5056
5057
5058
5059
5060
5061
5062
5063
5064
5065
5066
5067
5068
5069
5070
  _createClass(Toast, null, [{
    key: "VERSION",
    get: function get() {
      return VERSION$a;
    }
  }, {
    key: "DefaultType",
    get: function get() {
      return DefaultType$7;
    }
  }, {
    key: "Default",
    get: function get() {
      return Default$7;
    }
  }]);

  return Toast;
}();
XhmikosR's avatar
XhmikosR committed
5071
5072

var $$b = getjQuery();
XhmikosR's avatar
Dist.  
XhmikosR committed
5073
5074
5075
5076
5077
5078
5079
/**
 * ------------------------------------------------------------------------
 * jQuery
 * ------------------------------------------------------------------------
 *  add .toast to jQuery only if jQuery is present
 */

5080
5081
/* istanbul ignore if */

XhmikosR's avatar
XhmikosR committed
5082
5083
5084
5085
if ($$b) {
  var JQUERY_NO_CONFLICT$a = $$b.fn[NAME$a];
  $$b.fn[NAME$a] = Toast.jQueryInterface;
  $$b.fn[NAME$a].Constructor = Toast;
XhmikosR's avatar
Dist.  
XhmikosR committed
5086

XhmikosR's avatar
XhmikosR committed
5087
5088
5089
  $$b.fn[NAME$a].noConflict = function () {
    $$b.fn[NAME$a] = JQUERY_NO_CONFLICT$a;
    return Toast.jQueryInterface;
XhmikosR's avatar
Dist.  
XhmikosR committed
5090
5091
5092
5093
5094
  };
}

export { Alert, Button, Carousel, Collapse, Dropdown, Modal, Popover, ScrollSpy, Tab, Toast, Tooltip };
//# sourceMappingURL=bootstrap.esm.js.map