bootstrap.esm.js 140 KB
Newer Older
XhmikosR's avatar
Dist.  
XhmikosR committed
1
/*!
XhmikosR's avatar
XhmikosR committed
2
  * Bootstrap v5.0.0-alpha3 (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
XhmikosR committed
4
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
XhmikosR's avatar
Dist.  
XhmikosR committed
5
6
7
  */
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
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;
}

XhmikosR's avatar
XhmikosR committed
24
25
26
27
28
29
30
31
32
33
function _extends() {
  _extends = Object.assign || function (target) {
    for (var i = 1; i < arguments.length; i++) {
      var source = arguments[i];

      for (var key in source) {
        if (Object.prototype.hasOwnProperty.call(source, key)) {
          target[key] = source[key];
        }
      }
XhmikosR's avatar
XhmikosR committed
34
35
    }

XhmikosR's avatar
XhmikosR committed
36
37
38
39
    return target;
  };

  return _extends.apply(this, arguments);
XhmikosR's avatar
XhmikosR committed
40
41
42
43
44
45
46
47
}

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

XhmikosR's avatar
Dist.  
XhmikosR committed
48
49
/**
 * --------------------------------------------------------------------------
XhmikosR's avatar
XhmikosR committed
50
 * Bootstrap (v5.0.0-alpha3): util/index.js
XhmikosR's avatar
XhmikosR committed
51
 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
XhmikosR's avatar
Dist.  
XhmikosR committed
52
53
 * --------------------------------------------------------------------------
 */
XhmikosR's avatar
XhmikosR committed
54
55
var MAX_UID = 1000000;
var MILLISECONDS_MULTIPLIER = 1000;
XhmikosR's avatar
XhmikosR committed
56
var TRANSITION_END = 'transitionend'; // Shoutout AngusCroll (https://goo.gl/pxwQGp)
XhmikosR's avatar
XhmikosR committed
57
58

var toType = function toType(obj) {
XhmikosR's avatar
XhmikosR committed
59
60
61
62
  if (obj === null || obj === undefined) {
    return "" + obj;
  }

XhmikosR's avatar
XhmikosR committed
63
64
  return {}.toString.call(obj).match(/\s([a-z]+)/i)[1].toLowerCase();
};
XhmikosR's avatar
Dist.  
XhmikosR committed
65
66
67
68
69
70
71
/**
 * --------------------------------------------------------------------------
 * Public Util Api
 * --------------------------------------------------------------------------
 */


XhmikosR's avatar
XhmikosR committed
72
var getUID = function getUID(prefix) {
XhmikosR's avatar
Dist.  
XhmikosR committed
73
  do {
Mark Otto's avatar
Mark Otto committed
74
    prefix += Math.floor(Math.random() * MAX_UID);
XhmikosR's avatar
Dist.  
XhmikosR committed
75
76
77
78
79
  } while (document.getElementById(prefix));

  return prefix;
};

XhmikosR's avatar
XhmikosR committed
80
var getSelector = function getSelector(element) {
XhmikosR's avatar
XhmikosR committed
81
  var selector = element.getAttribute('data-bs-target');
XhmikosR's avatar
Dist.  
XhmikosR committed
82
83

  if (!selector || selector === '#') {
XhmikosR's avatar
XhmikosR committed
84
    var hrefAttr = element.getAttribute('href');
XhmikosR's avatar
XhmikosR committed
85
    selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : null;
XhmikosR's avatar
Dist.  
XhmikosR committed
86
87
  }

XhmikosR's avatar
XhmikosR committed
88
89
90
91
92
93
94
  return selector;
};

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

  if (selector) {
XhmikosR's avatar
Dist.  
XhmikosR committed
95
96
    return document.querySelector(selector) ? selector : null;
  }
XhmikosR's avatar
XhmikosR committed
97
98
99
100
101
102
103

  return null;
};

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

XhmikosR's avatar
XhmikosR committed
106
var getTransitionDurationFromElement = function getTransitionDurationFromElement(element) {
XhmikosR's avatar
Dist.  
XhmikosR committed
107
108
109
110
111
  if (!element) {
    return 0;
  } // Get transition-duration of the element


XhmikosR's avatar
XhmikosR committed
112
  var _window$getComputedSt = window.getComputedStyle(element),
XhmikosR's avatar
Dist.  
XhmikosR committed
113
114
115
      transitionDuration = _window$getComputedSt.transitionDuration,
      transitionDelay = _window$getComputedSt.transitionDelay;

XhmikosR's avatar
XhmikosR committed
116
117
  var floatTransitionDuration = Number.parseFloat(transitionDuration);
  var floatTransitionDelay = Number.parseFloat(transitionDelay); // Return 0 if element or transition duration is not found
XhmikosR's avatar
Dist.  
XhmikosR committed
118
119
120
121
122
123
124
125

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


  transitionDuration = transitionDuration.split(',')[0];
  transitionDelay = transitionDelay.split(',')[0];
XhmikosR's avatar
XhmikosR committed
126
  return (Number.parseFloat(transitionDuration) + Number.parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER;
XhmikosR's avatar
Dist.  
XhmikosR committed
127
128
};

XhmikosR's avatar
XhmikosR committed
129
var triggerTransitionEnd = function triggerTransitionEnd(element) {
XhmikosR's avatar
XhmikosR committed
130
  element.dispatchEvent(new Event(TRANSITION_END));
XhmikosR's avatar
Dist.  
XhmikosR committed
131
132
};

XhmikosR's avatar
XhmikosR committed
133
134
135
var isElement = function isElement(obj) {
  return (obj[0] || obj).nodeType;
};
XhmikosR's avatar
Dist.  
XhmikosR committed
136

XhmikosR's avatar
XhmikosR committed
137
138
139
140
var emulateTransitionEnd = function emulateTransitionEnd(element, duration) {
  var called = false;
  var durationPadding = 5;
  var emulatedDuration = duration + durationPadding;
XhmikosR's avatar
Dist.  
XhmikosR committed
141
142
143
144
145
146
147

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

  element.addEventListener(TRANSITION_END, listener);
XhmikosR's avatar
XhmikosR committed
148
  setTimeout(function () {
XhmikosR's avatar
Dist.  
XhmikosR committed
149
150
151
152
153
154
    if (!called) {
      triggerTransitionEnd(element);
    }
  }, emulatedDuration);
};

XhmikosR's avatar
XhmikosR committed
155
156
157
158
159
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
160
161

    if (!new RegExp(expectedTypes).test(valueType)) {
XhmikosR's avatar
XhmikosR committed
162
      throw new Error(componentName.toUpperCase() + ": " + ("Option \"" + property + "\" provided type \"" + valueType + "\" ") + ("but expected type \"" + expectedTypes + "\"."));
XhmikosR's avatar
Dist.  
XhmikosR committed
163
164
165
166
    }
  });
};

XhmikosR's avatar
XhmikosR committed
167
var isVisible = function isVisible(element) {
XhmikosR's avatar
Dist.  
XhmikosR committed
168
169
170
171
172
  if (!element) {
    return false;
  }

  if (element.style && element.parentNode && element.parentNode.style) {
XhmikosR's avatar
XhmikosR committed
173
174
175
    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
176
177
178
179
180
  }

  return false;
};

XhmikosR's avatar
XhmikosR committed
181
var findShadowRoot = function findShadowRoot(element) {
XhmikosR's avatar
Dist.  
XhmikosR committed
182
183
184
185
186
187
  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
188
    var root = element.getRootNode();
XhmikosR's avatar
Dist.  
XhmikosR committed
189
190
191
192
193
194
195
196
197
198
199
200
201
    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
202
};
XhmikosR's avatar
Dist.  
XhmikosR committed
203

XhmikosR's avatar
XhmikosR committed
204
205
206
var noop = function noop() {
  return function () {};
};
XhmikosR's avatar
Dist.  
XhmikosR committed
207

XhmikosR's avatar
XhmikosR committed
208
209
210
var reflow = function reflow(element) {
  return element.offsetHeight;
};
XhmikosR's avatar
Dist.  
XhmikosR committed
211

XhmikosR's avatar
XhmikosR committed
212
213
214
215
var getjQuery = function getjQuery() {
  var _window = window,
      jQuery = _window.jQuery;

XhmikosR's avatar
XhmikosR committed
216
  if (jQuery && !document.body.hasAttribute('data-bs-no-jquery')) {
XhmikosR's avatar
XhmikosR committed
217
218
219
220
221
222
    return jQuery;
  }

  return null;
};

XhmikosR's avatar
XhmikosR committed
223
224
225
226
227
228
229
230
var onDOMContentLoaded = function onDOMContentLoaded(callback) {
  if (document.readyState === 'loading') {
    document.addEventListener('DOMContentLoaded', callback);
  } else {
    callback();
  }
};

XhmikosR's avatar
Dist.  
XhmikosR committed
231
232
/**
 * --------------------------------------------------------------------------
XhmikosR's avatar
XhmikosR committed
233
 * Bootstrap (v5.0.0-alpha3): dom/data.js
XhmikosR's avatar
XhmikosR committed
234
 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
XhmikosR's avatar
Dist.  
XhmikosR committed
235
236
237
238
239
240
241
242
 * --------------------------------------------------------------------------
 */

/**
 * ------------------------------------------------------------------------
 * Constants
 * ------------------------------------------------------------------------
 */
XhmikosR's avatar
XhmikosR committed
243
244
245
var mapData = function () {
  var storeData = {};
  var id = 1;
XhmikosR's avatar
Dist.  
XhmikosR committed
246
  return {
XhmikosR's avatar
XhmikosR committed
247
    set: function set(element, key, data) {
XhmikosR's avatar
XhmikosR committed
248
249
      if (typeof element.bsKey === 'undefined') {
        element.bsKey = {
XhmikosR's avatar
XhmikosR committed
250
251
          key: key,
          id: id
XhmikosR's avatar
Dist.  
XhmikosR committed
252
253
254
255
        };
        id++;
      }

XhmikosR's avatar
XhmikosR committed
256
      storeData[element.bsKey.id] = data;
XhmikosR's avatar
Dist.  
XhmikosR committed
257
    },
XhmikosR's avatar
XhmikosR committed
258
    get: function get(element, key) {
XhmikosR's avatar
XhmikosR committed
259
      if (!element || typeof element.bsKey === 'undefined') {
XhmikosR's avatar
Dist.  
XhmikosR committed
260
261
262
        return null;
      }

XhmikosR's avatar
XhmikosR committed
263
      var keyProperties = element.bsKey;
XhmikosR's avatar
Dist.  
XhmikosR committed
264
265
266
267
268
269
270

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

      return null;
    },
XhmikosR's avatar
XhmikosR committed
271
    delete: function _delete(element, key) {
XhmikosR's avatar
XhmikosR committed
272
      if (typeof element.bsKey === 'undefined') {
XhmikosR's avatar
Dist.  
XhmikosR committed
273
274
275
        return;
      }

XhmikosR's avatar
XhmikosR committed
276
      var keyProperties = element.bsKey;
XhmikosR's avatar
Dist.  
XhmikosR committed
277
278
279

      if (keyProperties.key === key) {
        delete storeData[keyProperties.id];
XhmikosR's avatar
XhmikosR committed
280
        delete element.bsKey;
XhmikosR's avatar
Dist.  
XhmikosR committed
281
282
283
      }
    }
  };
XhmikosR's avatar
XhmikosR committed
284
}();
XhmikosR's avatar
Dist.  
XhmikosR committed
285

XhmikosR's avatar
XhmikosR committed
286
287
var Data = {
  setData: function setData(instance, key, data) {
XhmikosR's avatar
Dist.  
XhmikosR committed
288
289
    mapData.set(instance, key, data);
  },
XhmikosR's avatar
XhmikosR committed
290
  getData: function getData(instance, key) {
XhmikosR's avatar
Dist.  
XhmikosR committed
291
292
    return mapData.get(instance, key);
  },
XhmikosR's avatar
XhmikosR committed
293
  removeData: function removeData(instance, key) {
XhmikosR's avatar
Dist.  
XhmikosR committed
294
295
    mapData.delete(instance, key);
  }
XhmikosR's avatar
XhmikosR committed
296
};
XhmikosR's avatar
Dist.  
XhmikosR committed
297
298
299

/**
 * --------------------------------------------------------------------------
XhmikosR's avatar
XhmikosR committed
300
 * Bootstrap (v5.0.0-alpha3): dom/event-handler.js
XhmikosR's avatar
XhmikosR committed
301
 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
XhmikosR's avatar
Dist.  
XhmikosR committed
302
303
304
305
306
307
308
309
 * --------------------------------------------------------------------------
 */
/**
 * ------------------------------------------------------------------------
 * Constants
 * ------------------------------------------------------------------------
 */

XhmikosR's avatar
XhmikosR committed
310
311
312
313
var namespaceRegex = /[^.]*(?=\..*)\.|.*/;
var stripNameRegex = /\..*/;
var stripUidRegex = /::\d+$/;
var eventRegistry = {}; // Events storage
XhmikosR's avatar
Dist.  
XhmikosR committed
314

XhmikosR's avatar
XhmikosR committed
315
316
var uidEvent = 1;
var customEvents = {
XhmikosR's avatar
Dist.  
XhmikosR committed
317
318
319
  mouseenter: 'mouseover',
  mouseleave: 'mouseout'
};
XhmikosR's avatar
XhmikosR committed
320
var nativeEvents = new Set(['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
321
322
323
324
325
326
327
/**
 * ------------------------------------------------------------------------
 * Private methods
 * ------------------------------------------------------------------------
 */

function getUidEvent(element, uid) {
XhmikosR's avatar
XhmikosR committed
328
  return uid && uid + "::" + uidEvent++ || element.uidEvent || uidEvent++;
XhmikosR's avatar
Dist.  
XhmikosR committed
329
330
331
}

function getEvent(element) {
XhmikosR's avatar
XhmikosR committed
332
  var uid = getUidEvent(element);
XhmikosR's avatar
Dist.  
XhmikosR committed
333
334
335
336
337
338
339
  element.uidEvent = uid;
  eventRegistry[uid] = eventRegistry[uid] || {};
  return eventRegistry[uid];
}

function bootstrapHandler(element, fn) {
  return function handler(event) {
XhmikosR's avatar
XhmikosR committed
340
341
    event.delegateTarget = element;

XhmikosR's avatar
Dist.  
XhmikosR committed
342
343
344
345
346
347
348
349
350
351
    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
352
    var domElements = element.querySelectorAll(selector);
XhmikosR's avatar
Dist.  
XhmikosR committed
353

XhmikosR's avatar
XhmikosR committed
354
355
    for (var target = event.target; target && target !== this; target = target.parentNode) {
      for (var i = domElements.length; i--;) {
XhmikosR's avatar
Dist.  
XhmikosR committed
356
        if (domElements[i] === target) {
XhmikosR's avatar
XhmikosR committed
357
358
          event.delegateTarget = target;

XhmikosR's avatar
Dist.  
XhmikosR committed
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
          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
378
379
380
381
  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
382
383

    if (event.originalHandler === handler && event.delegationSelector === delegationSelector) {
Mark Otto's avatar
dist v5    
Mark Otto committed
384
      return event;
XhmikosR's avatar
Dist.  
XhmikosR committed
385
386
387
388
389
390
391
    }
  }

  return null;
}

function normalizeParams(originalTypeEvent, handler, delegationFn) {
XhmikosR's avatar
XhmikosR committed
392
393
  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
394

XhmikosR's avatar
XhmikosR committed
395
396
  var typeEvent = originalTypeEvent.replace(stripNameRegex, '');
  var custom = customEvents[typeEvent];
XhmikosR's avatar
Dist.  
XhmikosR committed
397
398
399
400
401

  if (custom) {
    typeEvent = custom;
  }

XhmikosR's avatar
XhmikosR committed
402
  var isNative = nativeEvents.has(typeEvent);
XhmikosR's avatar
Dist.  
XhmikosR committed
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420

  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
421
422
423
424
  var _normalizeParams = normalizeParams(originalTypeEvent, handler, delegationFn),
      delegation = _normalizeParams[0],
      originalHandler = _normalizeParams[1],
      typeEvent = _normalizeParams[2];
XhmikosR's avatar
Dist.  
XhmikosR committed
425

XhmikosR's avatar
XhmikosR committed
426
427
428
  var events = getEvent(element);
  var handlers = events[typeEvent] || (events[typeEvent] = {});
  var previousFn = findHandler(handlers, originalHandler, delegation ? handler : null);
XhmikosR's avatar
Dist.  
XhmikosR committed
429
430
431
432
433
434

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

XhmikosR's avatar
XhmikosR committed
435
436
  var uid = getUidEvent(originalHandler, originalTypeEvent.replace(namespaceRegex, ''));
  var fn = delegation ? bootstrapDelegationHandler(element, handler, delegationFn) : bootstrapHandler(element, handler);
XhmikosR's avatar
Dist.  
XhmikosR committed
437
438
439
440
441
442
443
444
445
  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
446
  var fn = findHandler(events[typeEvent], handler, delegationSelector);
XhmikosR's avatar
Dist.  
XhmikosR committed
447

Mark Otto's avatar
dist v5    
Mark Otto committed
448
  if (!fn) {
XhmikosR's avatar
Dist.  
XhmikosR committed
449
450
451
452
453
454
455
456
    return;
  }

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

function removeNamespacedHandlers(element, events, typeEvent, namespace) {
XhmikosR's avatar
XhmikosR committed
457
458
  var storeElementEvent = events[typeEvent] || {};
  Object.keys(storeElementEvent).forEach(function (handlerKey) {
XhmikosR's avatar
XhmikosR committed
459
    if (handlerKey.includes(namespace)) {
XhmikosR's avatar
XhmikosR committed
460
      var event = storeElementEvent[handlerKey];
XhmikosR's avatar
Dist.  
XhmikosR committed
461
462
463
464
465
      removeHandler(element, events, typeEvent, event.originalHandler, event.delegationSelector);
    }
  });
}

XhmikosR's avatar
XhmikosR committed
466
467
var EventHandler = {
  on: function on(element, event, handler, delegationFn) {
XhmikosR's avatar
Dist.  
XhmikosR committed
468
469
    addHandler(element, event, handler, delegationFn, false);
  },
XhmikosR's avatar
XhmikosR committed
470
  one: function one(element, event, handler, delegationFn) {
XhmikosR's avatar
Dist.  
XhmikosR committed
471
472
    addHandler(element, event, handler, delegationFn, true);
  },
XhmikosR's avatar
XhmikosR committed
473
  off: function off(element, originalTypeEvent, handler, delegationFn) {
XhmikosR's avatar
Dist.  
XhmikosR committed
474
475
476
477
    if (typeof originalTypeEvent !== 'string' || !element) {
      return;
    }

XhmikosR's avatar
XhmikosR committed
478
479
480
481
    var _normalizeParams2 = normalizeParams(originalTypeEvent, handler, delegationFn),
        delegation = _normalizeParams2[0],
        originalHandler = _normalizeParams2[1],
        typeEvent = _normalizeParams2[2];
XhmikosR's avatar
Dist.  
XhmikosR committed
482

XhmikosR's avatar
XhmikosR committed
483
484
    var inNamespace = typeEvent !== originalTypeEvent;
    var events = getEvent(element);
XhmikosR's avatar
XhmikosR committed
485
    var isNamespace = originalTypeEvent.startsWith('.');
XhmikosR's avatar
Dist.  
XhmikosR committed
486
487
488
489
490
491
492
493
494
495
496
497

    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
498
      Object.keys(events).forEach(function (elementEvent) {
XhmikosR's avatar
XhmikosR committed
499
        removeNamespacedHandlers(element, events, elementEvent, originalTypeEvent.slice(1));
XhmikosR's avatar
Dist.  
XhmikosR committed
500
501
502
      });
    }

XhmikosR's avatar
XhmikosR committed
503
504
505
    var storeElementEvent = events[typeEvent] || {};
    Object.keys(storeElementEvent).forEach(function (keyHandlers) {
      var handlerKey = keyHandlers.replace(stripUidRegex, '');
XhmikosR's avatar
Dist.  
XhmikosR committed
506

XhmikosR's avatar
XhmikosR committed
507
      if (!inNamespace || originalTypeEvent.includes(handlerKey)) {
XhmikosR's avatar
XhmikosR committed
508
        var event = storeElementEvent[keyHandlers];
XhmikosR's avatar
Dist.  
XhmikosR committed
509
510
511
512
        removeHandler(element, events, typeEvent, event.originalHandler, event.delegationSelector);
      }
    });
  },
XhmikosR's avatar
XhmikosR committed
513
  trigger: function trigger(element, event, args) {
XhmikosR's avatar
Dist.  
XhmikosR committed
514
515
516
517
    if (typeof event !== 'string' || !element) {
      return null;
    }

XhmikosR's avatar
XhmikosR committed
518
    var $ = getjQuery();
XhmikosR's avatar
XhmikosR committed
519
520
    var typeEvent = event.replace(stripNameRegex, '');
    var inNamespace = event !== typeEvent;
XhmikosR's avatar
XhmikosR committed
521
    var isNative = nativeEvents.has(typeEvent);
XhmikosR's avatar
XhmikosR committed
522
523
524
525
526
    var jQueryEvent;
    var bubbles = true;
    var nativeDispatch = true;
    var defaultPrevented = false;
    var evt = null;
XhmikosR's avatar
Dist.  
XhmikosR committed
527

XhmikosR's avatar
XhmikosR committed
528
529
530
    if (inNamespace && $) {
      jQueryEvent = $.Event(event, args);
      $(element).trigger(jQueryEvent);
XhmikosR's avatar
Dist.  
XhmikosR committed
531
532
533
534
535
536
537
538
539
      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
540
      evt = new CustomEvent(event, {
XhmikosR's avatar
XhmikosR committed
541
        bubbles: bubbles,
XhmikosR's avatar
Dist.  
XhmikosR committed
542
543
        cancelable: true
      });
XhmikosR's avatar
XhmikosR committed
544
    } // merge custom information in our event
XhmikosR's avatar
Dist.  
XhmikosR committed
545
546
547


    if (typeof args !== 'undefined') {
XhmikosR's avatar
XhmikosR committed
548
      Object.keys(args).forEach(function (key) {
XhmikosR's avatar
Dist.  
XhmikosR committed
549
        Object.defineProperty(evt, key, {
XhmikosR's avatar
XhmikosR committed
550
          get: function get() {
XhmikosR's avatar
Dist.  
XhmikosR committed
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
            return args[key];
          }
        });
      });
    }

    if (defaultPrevented) {
      evt.preventDefault();
    }

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

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

    return evt;
  }
};

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

XhmikosR's avatar
XhmikosR committed
579
var NAME = 'alert';
XhmikosR's avatar
XhmikosR committed
580
var VERSION = '5.0.0-alpha3';
XhmikosR's avatar
XhmikosR committed
581
582
583
var DATA_KEY = 'bs.alert';
var EVENT_KEY = "." + DATA_KEY;
var DATA_API_KEY = '.data-api';
XhmikosR's avatar
XhmikosR committed
584
var SELECTOR_DISMISS = '[data-bs-dismiss="alert"]';
XhmikosR's avatar
XhmikosR committed
585
586
587
588
589
590
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
591
592
593
594
595
/**
 * ------------------------------------------------------------------------
 * Class Definition
 * ------------------------------------------------------------------------
 */
XhmikosR's avatar
Dist.  
XhmikosR committed
596

XhmikosR's avatar
XhmikosR committed
597
var Alert = /*#__PURE__*/function () {
XhmikosR's avatar
XhmikosR committed
598
  function Alert(element) {
XhmikosR's avatar
Dist.  
XhmikosR committed
599
600
601
602
603
604
605
606
    this._element = element;

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


XhmikosR's avatar
XhmikosR committed
607
  var _proto = Alert.prototype;
XhmikosR's avatar
Dist.  
XhmikosR committed
608

XhmikosR's avatar
XhmikosR committed
609
610
  // Public
  _proto.close = function close(element) {
XhmikosR's avatar
XhmikosR committed
611
    var rootElement = element ? this._getRootElement(element) : this._element;
XhmikosR's avatar
Dist.  
XhmikosR committed
612

XhmikosR's avatar
XhmikosR committed
613
    var customEvent = this._triggerCloseEvent(rootElement);
XhmikosR's avatar
Dist.  
XhmikosR committed
614
615
616
617
618
619

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

    this._removeElement(rootElement);
XhmikosR's avatar
XhmikosR committed
620
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
621

XhmikosR's avatar
XhmikosR committed
622
  _proto.dispose = function dispose() {
XhmikosR's avatar
Dist.  
XhmikosR committed
623
624
625
    Data.removeData(this._element, DATA_KEY);
    this._element = null;
  } // Private
XhmikosR's avatar
XhmikosR committed
626
  ;
XhmikosR's avatar
Dist.  
XhmikosR committed
627

XhmikosR's avatar
XhmikosR committed
628
  _proto._getRootElement = function _getRootElement(element) {
XhmikosR's avatar
XhmikosR committed
629
    return getElementFromSelector(element) || element.closest("." + CLASSNAME_ALERT);
XhmikosR's avatar
XhmikosR committed
630
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
631

XhmikosR's avatar
XhmikosR committed
632
  _proto._triggerCloseEvent = function _triggerCloseEvent(element) {
XhmikosR's avatar
XhmikosR committed
633
    return EventHandler.trigger(element, EVENT_CLOSE);
XhmikosR's avatar
XhmikosR committed
634
635
636
637
  };

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

XhmikosR's avatar
XhmikosR committed
639
    element.classList.remove(CLASSNAME_SHOW);
XhmikosR's avatar
Dist.  
XhmikosR committed
640

XhmikosR's avatar
XhmikosR committed
641
    if (!element.classList.contains(CLASSNAME_FADE)) {
XhmikosR's avatar
Dist.  
XhmikosR committed
642
643
644
645
646
      this._destroyElement(element);

      return;
    }

XhmikosR's avatar
XhmikosR committed
647
    var transitionDuration = getTransitionDurationFromElement(element);
648
649
    EventHandler.one(element, TRANSITION_END, function () {
      return _this._destroyElement(element);
XhmikosR's avatar
XhmikosR committed
650
    });
XhmikosR's avatar
Dist.  
XhmikosR committed
651
    emulateTransitionEnd(element, transitionDuration);
XhmikosR's avatar
XhmikosR committed
652
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
653

XhmikosR's avatar
XhmikosR committed
654
  _proto._destroyElement = function _destroyElement(element) {
XhmikosR's avatar
Dist.  
XhmikosR committed
655
656
657
658
    if (element.parentNode) {
      element.parentNode.removeChild(element);
    }

XhmikosR's avatar
XhmikosR committed
659
    EventHandler.trigger(element, EVENT_CLOSED);
XhmikosR's avatar
Dist.  
XhmikosR committed
660
  } // Static
XhmikosR's avatar
XhmikosR committed
661
  ;
XhmikosR's avatar
Dist.  
XhmikosR committed
662

XhmikosR's avatar
XhmikosR committed
663
  Alert.jQueryInterface = function jQueryInterface(config) {
XhmikosR's avatar
Dist.  
XhmikosR committed
664
    return this.each(function () {
XhmikosR's avatar
XhmikosR committed
665
      var data = Data.getData(this, DATA_KEY);
XhmikosR's avatar
Dist.  
XhmikosR committed
666
667
668
669
670
671
672
673
674

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

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

XhmikosR's avatar
XhmikosR committed
677
  Alert.handleDismiss = function handleDismiss(alertInstance) {
XhmikosR's avatar
Dist.  
XhmikosR committed
678
679
680
681
682
683
684
    return function (event) {
      if (event) {
        event.preventDefault();
      }

      alertInstance.close(this);
    };
XhmikosR's avatar
XhmikosR committed
685
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
686

XhmikosR's avatar
XhmikosR committed
687
  Alert.getInstance = function getInstance(element) {
XhmikosR's avatar
Dist.  
XhmikosR committed
688
    return Data.getData(element, DATA_KEY);
XhmikosR's avatar
XhmikosR committed
689
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
690

XhmikosR's avatar
XhmikosR committed
691
692
693
694
695
696
697
698
699
  _createClass(Alert, null, [{
    key: "VERSION",
    get: function get() {
      return VERSION;
    }
  }]);

  return Alert;
}();
XhmikosR's avatar
Dist.  
XhmikosR committed
700
701
702
703
704
705
706
/**
 * ------------------------------------------------------------------------
 * Data Api implementation
 * ------------------------------------------------------------------------
 */


XhmikosR's avatar
XhmikosR committed
707
EventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DISMISS, Alert.handleDismiss(new Alert()));
XhmikosR's avatar
Dist.  
XhmikosR committed
708
709
710
711
/**
 * ------------------------------------------------------------------------
 * jQuery
 * ------------------------------------------------------------------------
XhmikosR's avatar
XhmikosR committed
712
 * add .Alert to jQuery only if jQuery is present
XhmikosR's avatar
Dist.  
XhmikosR committed
713
714
 */

XhmikosR's avatar
XhmikosR committed
715
716
717
onDOMContentLoaded(function () {
  var $ = getjQuery();
  /* istanbul ignore if */
718

XhmikosR's avatar
XhmikosR committed
719
720
721
722
  if ($) {
    var JQUERY_NO_CONFLICT = $.fn[NAME];
    $.fn[NAME] = Alert.jQueryInterface;
    $.fn[NAME].Constructor = Alert;
XhmikosR's avatar
Dist.  
XhmikosR committed
723

XhmikosR's avatar
XhmikosR committed
724
725
726
727
728
729
    $.fn[NAME].noConflict = function () {
      $.fn[NAME] = JQUERY_NO_CONFLICT;
      return Alert.jQueryInterface;
    };
  }
});
XhmikosR's avatar
Dist.  
XhmikosR committed
730
731
732
733
734
735
736

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

XhmikosR's avatar
XhmikosR committed
737
var NAME$1 = 'button';
XhmikosR's avatar
XhmikosR committed
738
var VERSION$1 = '5.0.0-alpha3';
XhmikosR's avatar
XhmikosR committed
739
740
741
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
742
var CLASS_NAME_ACTIVE = 'active';
XhmikosR's avatar
XhmikosR committed
743
var SELECTOR_DATA_TOGGLE = '[data-bs-toggle="button"]';
XhmikosR's avatar
XhmikosR committed
744
var EVENT_CLICK_DATA_API$1 = "click" + EVENT_KEY$1 + DATA_API_KEY$1;
XhmikosR's avatar
XhmikosR committed
745
746
747
748
749
/**
 * ------------------------------------------------------------------------
 * Class Definition
 * ------------------------------------------------------------------------
 */
XhmikosR's avatar
Dist.  
XhmikosR committed
750

XhmikosR's avatar
XhmikosR committed
751
var Button = /*#__PURE__*/function () {
XhmikosR's avatar
XhmikosR committed
752
  function Button(element) {
XhmikosR's avatar
Dist.  
XhmikosR committed
753
754
755
756
757
    this._element = element;
    Data.setData(element, DATA_KEY$1, this);
  } // Getters


XhmikosR's avatar
XhmikosR committed
758
  var _proto = Button.prototype;
XhmikosR's avatar
Dist.  
XhmikosR committed
759

XhmikosR's avatar
XhmikosR committed
760
761
  // Public
  _proto.toggle = function toggle() {
XhmikosR's avatar
XhmikosR committed
762
763
    // Toggle class and sync the `aria-pressed` attribute with the return value of the `.toggle()` method
    this._element.setAttribute('aria-pressed', this._element.classList.toggle(CLASS_NAME_ACTIVE));
XhmikosR's avatar
XhmikosR committed
764
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
765

XhmikosR's avatar
XhmikosR committed
766
  _proto.dispose = function dispose() {
XhmikosR's avatar
Dist.  
XhmikosR committed
767
768
769
    Data.removeData(this._element, DATA_KEY$1);
    this._element = null;
  } // Static
XhmikosR's avatar
XhmikosR committed
770
  ;
XhmikosR's avatar
Dist.  
XhmikosR committed
771

XhmikosR's avatar
XhmikosR committed
772
  Button.jQueryInterface = function jQueryInterface(config) {
XhmikosR's avatar
Dist.  
XhmikosR committed
773
    return this.each(function () {
XhmikosR's avatar
XhmikosR committed
774
      var data = Data.getData(this, DATA_KEY$1);
XhmikosR's avatar
Dist.  
XhmikosR committed
775
776
777
778
779
780
781
782
783

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

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

XhmikosR's avatar
XhmikosR committed
786
  Button.getInstance = function getInstance(element) {
XhmikosR's avatar
Dist.  
XhmikosR committed
787
    return Data.getData(element, DATA_KEY$1);
XhmikosR's avatar
XhmikosR committed
788
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
789

XhmikosR's avatar
XhmikosR committed
790
791
792
793
794
795
796
797
798
  _createClass(Button, null, [{
    key: "VERSION",
    get: function get() {
      return VERSION$1;
    }
  }]);

  return Button;
}();
XhmikosR's avatar
Dist.  
XhmikosR committed
799
800
801
802
803
804
805
/**
 * ------------------------------------------------------------------------
 * Data Api implementation
 * ------------------------------------------------------------------------
 */


XhmikosR's avatar
XhmikosR committed
806
EventHandler.on(document, EVENT_CLICK_DATA_API$1, SELECTOR_DATA_TOGGLE, function (event) {
XhmikosR's avatar
Dist.  
XhmikosR committed
807
  event.preventDefault();
XhmikosR's avatar
XhmikosR committed
808
  var button = event.target.closest(SELECTOR_DATA_TOGGLE);
XhmikosR's avatar
XhmikosR committed
809
  var data = Data.getData(button, DATA_KEY$1);
XhmikosR's avatar
Dist.  
XhmikosR committed
810
811
812
813
814
815
816
817
818
819
820

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

  data.toggle();
});
/**
 * ------------------------------------------------------------------------
 * jQuery
 * ------------------------------------------------------------------------
XhmikosR's avatar
XhmikosR committed
821
 * add .Button to jQuery only if jQuery is present
XhmikosR's avatar
Dist.  
XhmikosR committed
822
823
 */

XhmikosR's avatar
XhmikosR committed
824
825
826
onDOMContentLoaded(function () {
  var $ = getjQuery();
  /* istanbul ignore if */
827

XhmikosR's avatar
XhmikosR committed
828
829
830
831
  if ($) {
    var JQUERY_NO_CONFLICT = $.fn[NAME$1];
    $.fn[NAME$1] = Button.jQueryInterface;
    $.fn[NAME$1].Constructor = Button;
XhmikosR's avatar
Dist.  
XhmikosR committed
832

XhmikosR's avatar
XhmikosR committed
833
834
835
836
837
838
    $.fn[NAME$1].noConflict = function () {
      $.fn[NAME$1] = JQUERY_NO_CONFLICT;
      return Button.jQueryInterface;
    };
  }
});
XhmikosR's avatar
Dist.  
XhmikosR committed
839
840
841

/**
 * --------------------------------------------------------------------------
XhmikosR's avatar
XhmikosR committed
842
 * Bootstrap (v5.0.0-alpha3): dom/manipulator.js
XhmikosR's avatar
XhmikosR committed
843
 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
XhmikosR's avatar
Dist.  
XhmikosR committed
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
 * --------------------------------------------------------------------------
 */
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
867
  return key.replace(/[A-Z]/g, function (chr) {
XhmikosR's avatar
XhmikosR committed
868
    return "-" + chr.toLowerCase();
XhmikosR's avatar
XhmikosR committed
869
  });
XhmikosR's avatar
Dist.  
XhmikosR committed
870
871
}

XhmikosR's avatar
XhmikosR committed
872
873
var Manipulator = {
  setDataAttribute: function setDataAttribute(element, key, value) {
XhmikosR's avatar
XhmikosR committed
874
    element.setAttribute("data-bs-" + normalizeDataKey(key), value);
XhmikosR's avatar
Dist.  
XhmikosR committed
875
  },
XhmikosR's avatar
XhmikosR committed
876
  removeDataAttribute: function removeDataAttribute(element, key) {
XhmikosR's avatar
XhmikosR committed
877
    element.removeAttribute("data-bs-" + normalizeDataKey(key));
XhmikosR's avatar
Dist.  
XhmikosR committed
878
  },
XhmikosR's avatar
XhmikosR committed
879
  getDataAttributes: function getDataAttributes(element) {
XhmikosR's avatar
Dist.  
XhmikosR committed
880
881
882
883
    if (!element) {
      return {};
    }

XhmikosR's avatar
XhmikosR committed
884
885
886
887
888
889
890
    var attributes = {};
    Object.keys(element.dataset).filter(function (key) {
      return key.startsWith('bs');
    }).forEach(function (key) {
      var pureKey = key.replace(/^bs/, '');
      pureKey = pureKey.charAt(0).toLowerCase() + pureKey.slice(1, pureKey.length);
      attributes[pureKey] = normalizeData(element.dataset[key]);
XhmikosR's avatar
Dist.  
XhmikosR committed
891
892
893
    });
    return attributes;
  },
XhmikosR's avatar
XhmikosR committed
894
  getDataAttribute: function getDataAttribute(element, key) {
XhmikosR's avatar
XhmikosR committed
895
    return normalizeData(element.getAttribute("data-bs-" + normalizeDataKey(key)));
XhmikosR's avatar
Dist.  
XhmikosR committed
896
  },
XhmikosR's avatar
XhmikosR committed
897
898
  offset: function offset(element) {
    var rect = element.getBoundingClientRect();
XhmikosR's avatar
Dist.  
XhmikosR committed
899
900
901
902
903
    return {
      top: rect.top + document.body.scrollTop,
      left: rect.left + document.body.scrollLeft
    };
  },
XhmikosR's avatar
XhmikosR committed
904
  position: function position(element) {
XhmikosR's avatar
Dist.  
XhmikosR committed
905
906
907
908
909
910
911
    return {
      top: element.offsetTop,
      left: element.offsetLeft
    };
  }
};

XhmikosR's avatar
XhmikosR committed
912
913
/**
 * --------------------------------------------------------------------------
XhmikosR's avatar
XhmikosR committed
914
 * Bootstrap (v5.0.0-alpha3): dom/selector-engine.js
XhmikosR's avatar
XhmikosR committed
915
916
917
 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
 * --------------------------------------------------------------------------
 */
XhmikosR's avatar
XhmikosR committed
918

XhmikosR's avatar
XhmikosR committed
919
920
921
922
923
924
925
926
927
928
/**
 * ------------------------------------------------------------------------
 * Constants
 * ------------------------------------------------------------------------
 */
var NODE_TEXT = 3;
var SelectorEngine = {
  matches: function matches(element, selector) {
    return element.matches(selector);
  },
XhmikosR's avatar
XhmikosR committed
929
  find: function find(selector, element) {
XhmikosR's avatar
XhmikosR committed
930
931
932
933
934
935
    var _ref;

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

XhmikosR's avatar
XhmikosR committed
936
    return (_ref = []).concat.apply(_ref, Element.prototype.querySelectorAll.call(element, selector));
XhmikosR's avatar
XhmikosR committed
937
  },
XhmikosR's avatar
XhmikosR committed
938
  findOne: function findOne(selector, element) {
XhmikosR's avatar
XhmikosR committed
939
940
941
942
    if (element === void 0) {
      element = document.documentElement;
    }

XhmikosR's avatar
XhmikosR committed
943
    return Element.prototype.querySelector.call(element, selector);
XhmikosR's avatar
XhmikosR committed
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
  },
  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
996
997
998
999
1000
1001
/**
 * ------------------------------------------------------------------------
 * Constants
 * ------------------------------------------------------------------------
 */

XhmikosR's avatar
XhmikosR committed
1002
var NAME$2 = 'carousel';
XhmikosR's avatar
XhmikosR committed
1003
var VERSION$2 = '5.0.0-alpha3';
XhmikosR's avatar
XhmikosR committed
1004
1005
1006
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
1007
1008
var ARROW_LEFT_KEY = 'ArrowLeft';
var ARROW_RIGHT_KEY = 'ArrowRight';
XhmikosR's avatar
XhmikosR committed
1009
var TOUCHEVENT_COMPAT_WAIT = 500; // Time for mouse compat events to fire after touch
XhmikosR's avatar
Dist.  
XhmikosR committed
1010

XhmikosR's avatar
XhmikosR committed
1011
1012
var SWIPE_THRESHOLD = 40;
var Default = {
XhmikosR's avatar
Dist.  
XhmikosR committed
1013
1014
1015
1016
1017
1018
1019
  interval: 5000,
  keyboard: true,
  slide: false,
  pause: 'hover',
  wrap: true,
  touch: true
};
XhmikosR's avatar
XhmikosR committed
1020
var DefaultType = {
XhmikosR's avatar
Dist.  
XhmikosR committed
1021
1022
1023
1024
1025
1026
1027
  interval: '(number|boolean)',
  keyboard: 'boolean',
  slide: '(boolean|string)',
  pause: '(string|boolean)',
  wrap: 'boolean',
  touch: 'boolean'
};
XhmikosR's avatar
XhmikosR committed
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
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';
XhmikosR's avatar
XhmikosR committed
1053
var SELECTOR_ACTIVE = '.active';
XhmikosR's avatar
XhmikosR committed
1054
1055
1056
1057
1058
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';
XhmikosR's avatar
XhmikosR committed
1059
1060
var SELECTOR_DATA_SLIDE = '[data-bs-slide], [data-bs-slide-to]';
var SELECTOR_DATA_RIDE = '[data-bs-ride="carousel"]';
XhmikosR's avatar
XhmikosR committed
1061
var PointerType = {
XhmikosR's avatar
Dist.  
XhmikosR committed
1062
1063
1064
  TOUCH: 'touch',
  PEN: 'pen'
};
XhmikosR's avatar
XhmikosR committed
1065
1066
1067
1068
1069
/**
 * ------------------------------------------------------------------------
 * Class Definition
 * ------------------------------------------------------------------------
 */
XhmikosR's avatar
Dist.  
XhmikosR committed
1070

XhmikosR's avatar
XhmikosR committed
1071
var Carousel = /*#__PURE__*/function () {
XhmikosR's avatar
XhmikosR committed
1072
  function Carousel(element, config) {
XhmikosR's avatar
Dist.  
XhmikosR committed
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
    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
1083
    this._indicatorsElement = SelectorEngine.findOne(SELECTOR_INDICATORS, this._element);
XhmikosR's avatar
Dist.  
XhmikosR committed
1084
    this._touchSupported = 'ontouchstart' in document.documentElement || navigator.maxTouchPoints > 0;
XhmikosR's avatar
XhmikosR committed
1085
    this._pointerEvent = Boolean(window.PointerEvent);
XhmikosR's avatar
Dist.  
XhmikosR committed
1086
1087
1088
1089
1090
1091
1092

    this._addEventListeners();

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


XhmikosR's avatar
XhmikosR committed
1093
  var _proto = Carousel.prototype;
XhmikosR's avatar
Dist.  
XhmikosR committed
1094

XhmikosR's avatar
XhmikosR committed
1095
1096
  // Public
  _proto.next = function next() {
XhmikosR's avatar
Dist.  
XhmikosR committed
1097
    if (!this._isSliding) {
XhmikosR's avatar
XhmikosR committed
1098
      this._slide(DIRECTION_NEXT);
XhmikosR's avatar
Dist.  
XhmikosR committed
1099
    }
XhmikosR's avatar
XhmikosR committed
1100
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
1101

XhmikosR's avatar
XhmikosR committed
1102
  _proto.nextWhenVisible = function nextWhenVisible() {
XhmikosR's avatar
Dist.  
XhmikosR committed
1103
1104
1105
1106
1107
    // 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
1108
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
1109

XhmikosR's avatar
XhmikosR committed
1110
  _proto.prev = function prev() {
XhmikosR's avatar
Dist.  
XhmikosR committed
1111
    if (!this._isSliding) {
XhmikosR's avatar
XhmikosR committed
1112
      this._slide(DIRECTION_PREV);
XhmikosR's avatar
Dist.  
XhmikosR committed
1113
    }
XhmikosR's avatar
XhmikosR committed
1114
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
1115

XhmikosR's avatar
XhmikosR committed
1116
  _proto.pause = function pause(event) {
XhmikosR's avatar
Dist.  
XhmikosR committed
1117
1118
1119
1120
    if (!event) {
      this._isPaused = true;
    }

XhmikosR's avatar
XhmikosR committed
1121
    if (SelectorEngine.findOne(SELECTOR_NEXT_PREV, this._element)) {
XhmikosR's avatar
Dist.  
XhmikosR committed
1122
1123
1124
1125
1126
1127
      triggerTransitionEnd(this._element);
      this.cycle(true);
    }

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

XhmikosR's avatar
XhmikosR committed
1130
  _proto.cycle = function cycle(event) {
XhmikosR's avatar
Dist.  
XhmikosR committed
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
    if (!event) {
      this._isPaused = false;
    }

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

    if (this._config && this._config.interval && !this._isPaused) {
XhmikosR's avatar
XhmikosR committed
1141
1142
      this._updateInterval();

XhmikosR's avatar
Dist.  
XhmikosR committed
1143
1144
      this._interval = setInterval((document.visibilityState ? this.nextWhenVisible : this.next).bind(this), this._config.interval);
    }
XhmikosR's avatar
XhmikosR committed
1145
1146
1147
1148
  };

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

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

XhmikosR's avatar
XhmikosR committed
1152
    var activeIndex = this._getItemIndex(this._activeElement);
XhmikosR's avatar
Dist.  
XhmikosR committed
1153
1154
1155
1156
1157
1158

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

    if (this._isSliding) {
XhmikosR's avatar
XhmikosR committed
1159
      EventHandler.one(this._element, EVENT_SLID, function () {
XhmikosR's avatar
XhmikosR committed
1160
1161
        return _this.to(index);
      });
XhmikosR's avatar
Dist.  
XhmikosR committed
1162
1163
1164
1165
1166
1167
1168
1169
1170
      return;
    }

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

XhmikosR's avatar
XhmikosR committed
1171
    var direction = index > activeIndex ? DIRECTION_NEXT : DIRECTION_PREV;
XhmikosR's avatar
Dist.  
XhmikosR committed
1172
1173

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

XhmikosR's avatar
XhmikosR committed
1176
  _proto.dispose = function dispose() {
XhmikosR's avatar
Dist.  
XhmikosR committed
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
    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
1188
  ;
XhmikosR's avatar
Dist.  
XhmikosR committed
1189

XhmikosR's avatar
XhmikosR committed
1190
  _proto._getConfig = function _getConfig(config) {
XhmikosR's avatar
XhmikosR committed
1191
    config = _extends({}, Default, config);
XhmikosR's avatar
Dist.  
XhmikosR committed
1192
1193
    typeCheckConfig(NAME$2, config, DefaultType);
    return config;
XhmikosR's avatar
XhmikosR committed
1194
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
1195

XhmikosR's avatar
XhmikosR committed
1196
1197
  _proto._handleSwipe = function _handleSwipe() {
    var absDeltax = Math.abs(this.touchDeltaX);
XhmikosR's avatar
Dist.  
XhmikosR committed
1198
1199
1200
1201
1202

    if (absDeltax <= SWIPE_THRESHOLD) {
      return;
    }

XhmikosR's avatar
XhmikosR committed
1203
1204
    var direction = absDeltax / this.touchDeltaX;
    this.touchDeltaX = 0; // swipe left
XhmikosR's avatar
Dist.  
XhmikosR committed
1205
1206
1207
1208
1209
1210
1211
1212
1213

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


    if (direction < 0) {
      this.next();
    }
XhmikosR's avatar
XhmikosR committed
1214
1215
1216
1217
  };

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

    if (this._config.keyboard) {
XhmikosR's avatar
XhmikosR committed
1220
      EventHandler.on(this._element, EVENT_KEYDOWN, function (event) {
XhmikosR's avatar
XhmikosR committed
1221
1222
        return _this2._keydown(event);
      });
XhmikosR's avatar
Dist.  
XhmikosR committed
1223
1224
1225
    }

    if (this._config.pause === 'hover') {
XhmikosR's avatar
XhmikosR committed
1226
      EventHandler.on(this._element, EVENT_MOUSEENTER, function (event) {
XhmikosR's avatar
XhmikosR committed
1227
1228
        return _this2.pause(event);
      });
XhmikosR's avatar
XhmikosR committed
1229
      EventHandler.on(this._element, EVENT_MOUSELEAVE, function (event) {
XhmikosR's avatar
XhmikosR committed
1230
1231
        return _this2.cycle(event);
      });
XhmikosR's avatar
Dist.  
XhmikosR committed
1232
1233
    }

1234
    if (this._config.touch && this._touchSupported) {
XhmikosR's avatar
Dist.  
XhmikosR committed
1235
1236
      this._addTouchEventListeners();
    }
XhmikosR's avatar
XhmikosR committed
1237
1238
1239
1240
  };

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

XhmikosR's avatar
XhmikosR committed
1242
1243
1244
1245
1246
    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
1247
1248
1249
      }
    };

XhmikosR's avatar
XhmikosR committed
1250
    var move = function move(event) {
XhmikosR's avatar
Dist.  
XhmikosR committed
1251
1252
      // ensure swiping with one touch and not pinching
      if (event.touches && event.touches.length > 1) {
XhmikosR's avatar
XhmikosR committed
1253
        _this3.touchDeltaX = 0;
XhmikosR's avatar
Dist.  
XhmikosR committed
1254
      } else {
XhmikosR's avatar
XhmikosR committed
1255
        _this3.touchDeltaX = event.touches[0].clientX - _this3.touchStartX;
XhmikosR's avatar
Dist.  
XhmikosR committed
1256
1257
1258
      }
    };

XhmikosR's avatar
XhmikosR committed
1259
1260
1261
    var end = function end(event) {
      if (_this3._pointerEvent && PointerType[event.pointerType.toUpperCase()]) {
        _this3.touchDeltaX = event.clientX - _this3.touchStartX;
XhmikosR's avatar
Dist.  
XhmikosR committed
1262
1263
      }

XhmikosR's avatar
XhmikosR committed
1264
      _this3._handleSwipe();
XhmikosR's avatar
Dist.  
XhmikosR committed
1265

XhmikosR's avatar
XhmikosR committed
1266
      if (_this3._config.pause === 'hover') {
XhmikosR's avatar
Dist.  
XhmikosR committed
1267
1268
1269
1270
1271
1272
1273
        // 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
1274
        _this3.pause();
XhmikosR's avatar
Dist.  
XhmikosR committed
1275

XhmikosR's avatar
XhmikosR committed
1276
1277
        if (_this3.touchTimeout) {
          clearTimeout(_this3.touchTimeout);
XhmikosR's avatar
Dist.  
XhmikosR committed
1278
1279
        }

XhmikosR's avatar
XhmikosR committed
1280
1281
1282
        _this3.touchTimeout = setTimeout(function (event) {
          return _this3.cycle(event);
        }, TOUCHEVENT_COMPAT_WAIT + _this3._config.interval);
XhmikosR's avatar
Dist.  
XhmikosR committed
1283
1284
1285
      }
    };

XhmikosR's avatar
XhmikosR committed
1286
1287
    SelectorEngine.find(SELECTOR_ITEM_IMG, this._element).forEach(function (itemImg) {
      EventHandler.on(itemImg, EVENT_DRAG_START, function (e) {
XhmikosR's avatar
XhmikosR committed
1288
1289
        return e.preventDefault();
      });
XhmikosR's avatar
Dist.  
XhmikosR committed
1290
1291
1292
    });

    if (this._pointerEvent) {
XhmikosR's avatar
XhmikosR committed
1293
      EventHandler.on(this._element, EVENT_POINTERDOWN, function (event) {
XhmikosR's avatar
XhmikosR committed
1294
1295
        return start(event);
      });
XhmikosR's avatar
XhmikosR committed
1296
      EventHandler.on(this._element, EVENT_POINTERUP, function (event) {
XhmikosR's avatar
XhmikosR committed
1297
1298
        return end(event);
      });
XhmikosR's avatar
Dist.  
XhmikosR committed
1299

XhmikosR's avatar
XhmikosR committed
1300
      this._element.classList.add(CLASS_NAME_POINTER_EVENT);
XhmikosR's avatar
Dist.  
XhmikosR committed
1301
    } else {
XhmikosR's avatar
XhmikosR committed
1302
      EventHandler.on(this._element, EVENT_TOUCHSTART, function (event) {
XhmikosR's avatar
XhmikosR committed
1303
1304
        return start(event);
      });
XhmikosR's avatar
XhmikosR committed
1305
      EventHandler.on(this._element, EVENT_TOUCHMOVE, function (event) {
XhmikosR's avatar
XhmikosR committed
1306
1307
        return move(event);
      });
XhmikosR's avatar
XhmikosR committed
1308
      EventHandler.on(this._element, EVENT_TOUCHEND, function (event) {
XhmikosR's avatar
XhmikosR committed
1309
1310
        return end(event);
      });
XhmikosR's avatar
Dist.  
XhmikosR committed
1311
    }
XhmikosR's avatar
XhmikosR committed
1312
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
1313

XhmikosR's avatar
XhmikosR committed
1314
  _proto._keydown = function _keydown(event) {
XhmikosR's avatar
Dist.  
XhmikosR committed
1315
1316
1317
1318
    if (/input|textarea/i.test(event.target.tagName)) {
      return;
    }

XhmikosR's avatar
XhmikosR committed
1319
1320
    switch (event.key) {
      case ARROW_LEFT_KEY:
XhmikosR's avatar
Dist.  
XhmikosR committed
1321
1322
1323
1324
        event.preventDefault();
        this.prev();
        break;

XhmikosR's avatar
XhmikosR committed
1325
      case ARROW_RIGHT_KEY:
XhmikosR's avatar
Dist.  
XhmikosR committed
1326
1327
1328
1329
        event.preventDefault();
        this.next();
        break;
    }
XhmikosR's avatar
XhmikosR committed
1330
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
1331

XhmikosR's avatar
XhmikosR committed
1332
  _proto._getItemIndex = function _getItemIndex(element) {
XhmikosR's avatar
XhmikosR committed
1333
    this._items = element && element.parentNode ? SelectorEngine.find(SELECTOR_ITEM, element.parentNode) : [];
XhmikosR's avatar
Dist.  
XhmikosR committed
1334
    return this._items.indexOf(element);
XhmikosR's avatar
XhmikosR committed
1335
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
1336

XhmikosR's avatar
XhmikosR committed
1337
  _proto._getItemByDirection = function _getItemByDirection(direction, activeElement) {
XhmikosR's avatar
XhmikosR committed
1338
1339
    var isNextDirection = direction === DIRECTION_NEXT;
    var isPrevDirection = direction === DIRECTION_PREV;
XhmikosR's avatar
Dist.  
XhmikosR committed
1340

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

XhmikosR's avatar
XhmikosR committed
1343
1344
    var lastItemIndex = this._items.length - 1;
    var isGoingToWrap = isPrevDirection && activeIndex === 0 || isNextDirection && activeIndex === lastItemIndex;
XhmikosR's avatar
Dist.  
XhmikosR committed
1345
1346
1347
1348
1349

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

XhmikosR's avatar
XhmikosR committed
1350
    var delta = direction === DIRECTION_PREV ? -1 : 1;
XhmikosR's avatar
XhmikosR committed
1351
    var itemIndex = (activeIndex + delta) % this._items.length;
XhmikosR's avatar
Dist.  
XhmikosR committed
1352
    return itemIndex === -1 ? this._items[this._items.length - 1] : this._items[itemIndex];
XhmikosR's avatar
XhmikosR committed
1353
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
1354

XhmikosR's avatar
XhmikosR committed
1355
1356
  _proto._triggerSlideEvent = function _triggerSlideEvent(relatedTarget, eventDirectionName) {
    var targetIndex = this._getItemIndex(relatedTarget);
XhmikosR's avatar
Dist.  
XhmikosR committed
1357

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

XhmikosR's avatar
XhmikosR committed
1360
    return EventHandler.trigger(this._element, EVENT_SLIDE, {
XhmikosR's avatar
XhmikosR committed
1361
      relatedTarget: relatedTarget,
XhmikosR's avatar
Dist.  
XhmikosR committed
1362
1363
1364
1365
      direction: eventDirectionName,
      from: fromIndex,
      to: targetIndex
    });
XhmikosR's avatar
XhmikosR committed
1366
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
1367

XhmikosR's avatar
XhmikosR committed
1368
  _proto._setActiveIndicatorElement = function _setActiveIndicatorElement(element) {
XhmikosR's avatar
Dist.  
XhmikosR committed
1369
    if (this._indicatorsElement) {
XhmikosR's avatar
XhmikosR committed
1370
      var indicators = SelectorEngine.find(SELECTOR_ACTIVE, this._indicatorsElement);
XhmikosR's avatar
Dist.  
XhmikosR committed
1371

XhmikosR's avatar
XhmikosR committed
1372
      for (var i = 0; i < indicators.length; i++) {
XhmikosR's avatar
XhmikosR committed
1373
        indicators[i].classList.remove(CLASS_NAME_ACTIVE$1);
XhmikosR's avatar
Dist.  
XhmikosR committed
1374
1375
      }

XhmikosR's avatar
XhmikosR committed
1376
      var nextIndicator = this._indicatorsElement.children[this._getItemIndex(element)];
XhmikosR's avatar
Dist.  
XhmikosR committed
1377
1378

      if (nextIndicator) {
XhmikosR's avatar
XhmikosR committed
1379
        nextIndicator.classList.add(CLASS_NAME_ACTIVE$1);
XhmikosR's avatar
Dist.  
XhmikosR committed
1380
1381
      }
    }
XhmikosR's avatar
XhmikosR committed
1382
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
1383

XhmikosR's avatar
XhmikosR committed
1384
1385
1386
1387
1388
1389
1390
  _proto._updateInterval = function _updateInterval() {
    var element = this._activeElement || SelectorEngine.findOne(SELECTOR_ACTIVE_ITEM, this._element);

    if (!element) {
      return;
    }

XhmikosR's avatar
XhmikosR committed
1391
    var elementInterval = Number.parseInt(element.getAttribute('data-bs-interval'), 10);
XhmikosR's avatar
XhmikosR committed
1392
1393
1394
1395
1396
1397
1398
1399
1400

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

XhmikosR's avatar
XhmikosR committed
1401
1402
  _proto._slide = function _slide(direction, element) {
    var _this4 = this;
XhmikosR's avatar
Dist.  
XhmikosR committed
1403

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

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

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

XhmikosR's avatar
XhmikosR committed
1410
1411
1412
1413
1414
1415
    var nextElementIndex = this._getItemIndex(nextElement);

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

XhmikosR's avatar
XhmikosR committed
1417
1418
1419
1420
    if (direction === DIRECTION_NEXT) {
      directionalClassName = CLASS_NAME_LEFT;
      orderClassName = CLASS_NAME_NEXT;
      eventDirectionName = DIRECTION_LEFT;
XhmikosR's avatar
Dist.  
XhmikosR committed
1421
    } else {
XhmikosR's avatar
XhmikosR committed
1422
1423
1424
      directionalClassName = CLASS_NAME_RIGHT;
      orderClassName = CLASS_NAME_PREV;
      eventDirectionName = DIRECTION_RIGHT;
XhmikosR's avatar
Dist.  
XhmikosR committed
1425
1426
    }

XhmikosR's avatar
XhmikosR committed
1427
    if (nextElement && nextElement.classList.contains(CLASS_NAME_ACTIVE$1)) {
XhmikosR's avatar
Dist.  
XhmikosR committed
1428
1429
1430
1431
      this._isSliding = false;
      return;
    }

XhmikosR's avatar
XhmikosR committed
1432
    var slideEvent = this._triggerSlideEvent(nextElement, eventDirectionName);
XhmikosR's avatar
Dist.  
XhmikosR committed
1433
1434
1435
1436
1437
1438
1439
1440
1441
1442
1443
1444
1445
1446
1447
1448
1449
1450

    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
1451
1452
    this._activeElement = nextElement;

XhmikosR's avatar
XhmikosR committed
1453
    if (this._element.classList.contains(CLASS_NAME_SLIDE)) {
XhmikosR's avatar
Dist.  
XhmikosR committed
1454
1455
1456
1457
      nextElement.classList.add(orderClassName);
      reflow(nextElement);
      activeElement.classList.add(directionalClassName);
      nextElement.classList.add(directionalClassName);
XhmikosR's avatar
XhmikosR committed
1458
1459
      var transitionDuration = getTransitionDurationFromElement(activeElement);
      EventHandler.one(activeElement, TRANSITION_END, function () {
XhmikosR's avatar
XhmikosR committed
1460
        nextElement.classList.remove(directionalClassName, orderClassName);
XhmikosR's avatar
XhmikosR committed
1461
        nextElement.classList.add(CLASS_NAME_ACTIVE$1);
XhmikosR's avatar
XhmikosR committed
1462
        activeElement.classList.remove(CLASS_NAME_ACTIVE$1, orderClassName, directionalClassName);
XhmikosR's avatar
XhmikosR committed
1463
1464
        _this4._isSliding = false;
        setTimeout(function () {
XhmikosR's avatar
XhmikosR committed
1465
          EventHandler.trigger(_this4._element, EVENT_SLID, {
XhmikosR's avatar
Dist.  
XhmikosR committed
1466
1467
1468
1469
1470
1471
1472
1473
1474
            relatedTarget: nextElement,
            direction: eventDirectionName,
            from: activeElementIndex,
            to: nextElementIndex
          });
        }, 0);
      });
      emulateTransitionEnd(activeElement, transitionDuration);
    } else {
XhmikosR's avatar
XhmikosR committed
1475
1476
      activeElement.classList.remove(CLASS_NAME_ACTIVE$1);
      nextElement.classList.add(CLASS_NAME_ACTIVE$1);
XhmikosR's avatar
Dist.  
XhmikosR committed
1477
      this._isSliding = false;
XhmikosR's avatar
XhmikosR committed
1478
      EventHandler.trigger(this._element, EVENT_SLID, {
XhmikosR's avatar
Dist.  
XhmikosR committed
1479
1480
1481
1482
1483
1484
1485
1486
1487
1488
1489
        relatedTarget: nextElement,
        direction: eventDirectionName,
        from: activeElementIndex,
        to: nextElementIndex
      });
    }

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

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

XhmikosR's avatar
XhmikosR committed
1495
    var _config = _extends({}, Default, Manipulator.getDataAttributes(element));
XhmikosR's avatar
Dist.  
XhmikosR committed
1496
1497

    if (typeof config === 'object') {
XhmikosR's avatar
XhmikosR committed
1498
      _config = _extends({}, _config, config);
XhmikosR's avatar
Dist.  
XhmikosR committed
1499
1500
    }

XhmikosR's avatar
XhmikosR committed
1501
    var action = typeof config === 'string' ? config : _config.slide;
XhmikosR's avatar
Dist.  
XhmikosR committed
1502
1503
1504
1505
1506
1507
1508
1509
1510

    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
1511
        throw new TypeError("No method named \"" + action + "\"");
XhmikosR's avatar
Dist.  
XhmikosR committed
1512
1513
1514
1515
1516
1517
1518
      }

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

XhmikosR's avatar
XhmikosR committed
1521
  Carousel.jQueryInterface = function jQueryInterface(config) {
XhmikosR's avatar
Dist.  
XhmikosR committed
1522
    return this.each(function () {
XhmikosR's avatar
XhmikosR committed
1523
      Carousel.carouselInterface(this, config);
XhmikosR's avatar
Dist.  
XhmikosR committed
1524
    });
XhmikosR's avatar
XhmikosR committed
1525
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
1526

XhmikosR's avatar
XhmikosR committed
1527
1528
  Carousel.dataApiClickHandler = function dataApiClickHandler(event) {
    var target = getElementFromSelector(this);
XhmikosR's avatar
Dist.  
XhmikosR committed
1529

XhmikosR's avatar
XhmikosR committed
1530
    if (!target || !target.classList.contains(CLASS_NAME_CAROUSEL)) {
XhmikosR's avatar
Dist.  
XhmikosR committed
1531
1532
1533
      return;
    }

XhmikosR's avatar
XhmikosR committed
1534
    var config = _extends({}, Manipulator.getDataAttributes(target), Manipulator.getDataAttributes(this));
XhmikosR's avatar
Dist.  
XhmikosR committed
1535

XhmikosR's avatar
XhmikosR committed
1536
    var slideIndex = this.getAttribute('data-bs-slide-to');
XhmikosR's avatar
Dist.  
XhmikosR committed
1537
1538
1539
1540
1541

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

XhmikosR's avatar
XhmikosR committed
1542
    Carousel.carouselInterface(target, config);
XhmikosR's avatar
Dist.  
XhmikosR committed
1543
1544
1545
1546
1547
1548

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

    event.preventDefault();
XhmikosR's avatar
XhmikosR committed
1549
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
1550

XhmikosR's avatar
XhmikosR committed
1551
  Carousel.getInstance = function getInstance(element) {
XhmikosR's avatar
Dist.  
XhmikosR committed
1552
    return Data.getData(element, DATA_KEY$2);
XhmikosR's avatar
XhmikosR committed
1553
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
1554

XhmikosR's avatar
XhmikosR committed
1555
1556
1557
1558
1559
1560
1561
1562
1563
1564
1565
1566
1567
1568
  _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
1569
1570
1571
1572
1573
1574
1575
/**
 * ------------------------------------------------------------------------
 * Data Api implementation
 * ------------------------------------------------------------------------
 */


XhmikosR's avatar
XhmikosR committed
1576
1577
1578
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
1579

XhmikosR's avatar
XhmikosR committed
1580
  for (var i = 0, len = carousels.length; i < len; i++) {
XhmikosR's avatar
XhmikosR committed
1581
    Carousel.carouselInterface(carousels[i], Data.getData(carousels[i], DATA_KEY$2));
XhmikosR's avatar
Dist.  
XhmikosR committed
1582
1583
1584
1585
1586
1587
  }
});
/**
 * ------------------------------------------------------------------------
 * jQuery
 * ------------------------------------------------------------------------
XhmikosR's avatar
XhmikosR committed
1588
 * add .Carousel to jQuery only if jQuery is present
XhmikosR's avatar
Dist.  
XhmikosR committed
1589
1590
 */

XhmikosR's avatar
XhmikosR committed
1591
1592
1593
onDOMContentLoaded(function () {
  var $ = getjQuery();
  /* istanbul ignore if */
1594

XhmikosR's avatar
XhmikosR committed
1595
1596
1597
1598
  if ($) {
    var JQUERY_NO_CONFLICT = $.fn[NAME$2];
    $.fn[NAME$2] = Carousel.jQueryInterface;
    $.fn[NAME$2].Constructor = Carousel;
XhmikosR's avatar
Dist.  
XhmikosR committed
1599

XhmikosR's avatar
XhmikosR committed
1600
1601
1602
1603
1604
1605
    $.fn[NAME$2].noConflict = function () {
      $.fn[NAME$2] = JQUERY_NO_CONFLICT;
      return Carousel.jQueryInterface;
    };
  }
});
XhmikosR's avatar
Dist.  
XhmikosR committed
1606
1607
1608
1609
1610
1611
1612

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

XhmikosR's avatar
XhmikosR committed
1613
var NAME$3 = 'collapse';
XhmikosR's avatar
XhmikosR committed
1614
var VERSION$3 = '5.0.0-alpha3';
XhmikosR's avatar
XhmikosR committed
1615
1616
1617
1618
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
1619
1620
1621
  toggle: true,
  parent: ''
};
XhmikosR's avatar
XhmikosR committed
1622
var DefaultType$1 = {
XhmikosR's avatar
Dist.  
XhmikosR committed
1623
1624
1625
  toggle: 'boolean',
  parent: '(string|element)'
};
XhmikosR's avatar
XhmikosR committed
1626
1627
1628
1629
1630
1631
1632
1633
1634
1635
1636
1637
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';
XhmikosR's avatar
XhmikosR committed
1638
var SELECTOR_DATA_TOGGLE$1 = '[data-bs-toggle="collapse"]';
XhmikosR's avatar
XhmikosR committed
1639
1640
1641
1642
1643
/**
 * ------------------------------------------------------------------------
 * Class Definition
 * ------------------------------------------------------------------------
 */
XhmikosR's avatar
Dist.  
XhmikosR committed
1644

XhmikosR's avatar
XhmikosR committed
1645
var Collapse = /*#__PURE__*/function () {
XhmikosR's avatar
XhmikosR committed
1646
  function Collapse(element, config) {
XhmikosR's avatar
Dist.  
XhmikosR committed
1647
1648
1649
    this._isTransitioning = false;
    this._element = element;
    this._config = this._getConfig(config);
XhmikosR's avatar
XhmikosR committed
1650
    this._triggerArray = SelectorEngine.find(SELECTOR_DATA_TOGGLE$1 + "[href=\"#" + element.id + "\"]," + (SELECTOR_DATA_TOGGLE$1 + "[data-bs-target=\"#" + element.id + "\"]"));
XhmikosR's avatar
XhmikosR committed
1651
    var toggleList = SelectorEngine.find(SELECTOR_DATA_TOGGLE$1);
XhmikosR's avatar
XhmikosR committed
1652
1653
1654
1655

    for (var i = 0, len = toggleList.length; i < len; i++) {
      var elem = toggleList[i];
      var selector = getSelectorFromElement(elem);
XhmikosR's avatar
XhmikosR committed
1656
      var filterElement = SelectorEngine.find(selector).filter(function (foundElem) {
XhmikosR's avatar
XhmikosR committed
1657
1658
        return foundElem === element;
      });
XhmikosR's avatar
Dist.  
XhmikosR committed
1659
1660
1661
1662
1663
1664
1665
1666
1667
1668
1669
1670
1671
1672
1673
1674
1675
1676
1677
1678
1679
1680

      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
1681
  var _proto = Collapse.prototype;
XhmikosR's avatar
Dist.  
XhmikosR committed
1682

XhmikosR's avatar
XhmikosR committed
1683
1684
  // Public
  _proto.toggle = function toggle() {
XhmikosR's avatar
XhmikosR committed
1685
    if (this._element.classList.contains(CLASS_NAME_SHOW)) {
XhmikosR's avatar
Dist.  
XhmikosR committed
1686
1687
1688
1689
      this.hide();
    } else {
      this.show();
    }
XhmikosR's avatar
XhmikosR committed
1690
1691
1692
1693
  };

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

XhmikosR's avatar
XhmikosR committed
1695
    if (this._isTransitioning || this._element.classList.contains(CLASS_NAME_SHOW)) {
XhmikosR's avatar
Dist.  
XhmikosR committed
1696
1697
1698
      return;
    }

XhmikosR's avatar
XhmikosR committed
1699
1700
    var actives;
    var activesData;
XhmikosR's avatar
Dist.  
XhmikosR committed
1701
1702

    if (this._parent) {
XhmikosR's avatar
XhmikosR committed
1703
      actives = SelectorEngine.find(SELECTOR_ACTIVES, this._parent).filter(function (elem) {
XhmikosR's avatar
XhmikosR committed
1704
        if (typeof _this._config.parent === 'string') {
XhmikosR's avatar
XhmikosR committed
1705
          return elem.getAttribute('data-bs-parent') === _this._config.parent;
XhmikosR's avatar
Dist.  
XhmikosR committed
1706
1707
        }

XhmikosR's avatar
XhmikosR committed
1708
        return elem.classList.contains(CLASS_NAME_COLLAPSE);
XhmikosR's avatar
Dist.  
XhmikosR committed
1709
1710
1711
1712
1713
1714
1715
      });

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

XhmikosR's avatar
XhmikosR committed
1716
    var container = SelectorEngine.findOne(this._selector);
XhmikosR's avatar
Dist.  
XhmikosR committed
1717
1718

    if (actives) {
XhmikosR's avatar
XhmikosR committed
1719
      var tempActiveData = actives.find(function (elem) {
XhmikosR's avatar
XhmikosR committed
1720
1721
        return container !== elem;
      });
XhmikosR's avatar
XhmikosR committed
1722
      activesData = tempActiveData ? Data.getData(tempActiveData, DATA_KEY$3) : null;
XhmikosR's avatar
Dist.  
XhmikosR committed
1723
1724
1725
1726
1727
1728

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

XhmikosR's avatar
XhmikosR committed
1729
    var startEvent = EventHandler.trigger(this._element, EVENT_SHOW);
XhmikosR's avatar
Dist.  
XhmikosR committed
1730
1731
1732
1733
1734
1735

    if (startEvent.defaultPrevented) {
      return;
    }

    if (actives) {
XhmikosR's avatar
XhmikosR committed
1736
      actives.forEach(function (elemActive) {
XhmikosR's avatar
Dist.  
XhmikosR committed
1737
        if (container !== elemActive) {
XhmikosR's avatar
XhmikosR committed
1738
          Collapse.collapseInterface(elemActive, 'hide');
XhmikosR's avatar
Dist.  
XhmikosR committed
1739
1740
1741
1742
1743
1744
1745
1746
        }

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

XhmikosR's avatar
XhmikosR committed
1747
    var dimension = this._getDimension();
XhmikosR's avatar
Dist.  
XhmikosR committed
1748

XhmikosR's avatar
XhmikosR committed
1749
    this._element.classList.remove(CLASS_NAME_COLLAPSE);
XhmikosR's avatar
Dist.  
XhmikosR committed
1750

XhmikosR's avatar
XhmikosR committed
1751
    this._element.classList.add(CLASS_NAME_COLLAPSING);
XhmikosR's avatar
Dist.  
XhmikosR committed
1752
1753
1754
1755

    this._element.style[dimension] = 0;

    if (this._triggerArray.length) {
XhmikosR's avatar
XhmikosR committed
1756
      this._triggerArray.forEach(function (element) {
XhmikosR's avatar
XhmikosR committed
1757
        element.classList.remove(CLASS_NAME_COLLAPSED);
XhmikosR's avatar
Dist.  
XhmikosR committed
1758
1759
1760
1761
1762
1763
        element.setAttribute('aria-expanded', true);
      });
    }

    this.setTransitioning(true);

XhmikosR's avatar
XhmikosR committed
1764
    var complete = function complete() {
XhmikosR's avatar
XhmikosR committed
1765
      _this._element.classList.remove(CLASS_NAME_COLLAPSING);
XhmikosR's avatar
XhmikosR committed
1766

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

XhmikosR's avatar
XhmikosR committed
1769
      _this._element.style[dimension] = '';
XhmikosR's avatar
Dist.  
XhmikosR committed
1770

XhmikosR's avatar
XhmikosR committed
1771
      _this.setTransitioning(false);
XhmikosR's avatar
Dist.  
XhmikosR committed
1772

XhmikosR's avatar
XhmikosR committed
1773
      EventHandler.trigger(_this._element, EVENT_SHOWN);
XhmikosR's avatar
Dist.  
XhmikosR committed
1774
1775
    };

XhmikosR's avatar
XhmikosR committed
1776
1777
1778
    var capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1);
    var scrollSize = "scroll" + capitalizedDimension;
    var transitionDuration = getTransitionDurationFromElement(this._element);
XhmikosR's avatar
Dist.  
XhmikosR committed
1779
1780
    EventHandler.one(this._element, TRANSITION_END, complete);
    emulateTransitionEnd(this._element, transitionDuration);
XhmikosR's avatar
XhmikosR committed
1781
1782
1783
1784
1785
    this._element.style[dimension] = this._element[scrollSize] + "px";
  };

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

XhmikosR's avatar
XhmikosR committed
1787
    if (this._isTransitioning || !this._element.classList.contains(CLASS_NAME_SHOW)) {
XhmikosR's avatar
Dist.  
XhmikosR committed
1788
1789
1790
      return;
    }

XhmikosR's avatar
XhmikosR committed
1791
    var startEvent = EventHandler.trigger(this._element, EVENT_HIDE);
XhmikosR's avatar
Dist.  
XhmikosR committed
1792
1793
1794
1795
1796

    if (startEvent.defaultPrevented) {
      return;
    }

XhmikosR's avatar
XhmikosR committed
1797
    var dimension = this._getDimension();
XhmikosR's avatar
Dist.  
XhmikosR committed
1798

XhmikosR's avatar
XhmikosR committed
1799
    this._element.style[dimension] = this._element.getBoundingClientRect()[dimension] + "px";
XhmikosR's avatar
Dist.  
XhmikosR committed
1800
1801
    reflow(this._element);

XhmikosR's avatar
XhmikosR committed
1802
    this._element.classList.add(CLASS_NAME_COLLAPSING);
XhmikosR's avatar
Dist.  
XhmikosR committed
1803

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

XhmikosR's avatar
XhmikosR committed
1806
    var triggerArrayLength = this._triggerArray.length;
XhmikosR's avatar
Dist.  
XhmikosR committed
1807
1808

    if (triggerArrayLength > 0) {
XhmikosR's avatar
XhmikosR committed
1809
1810
      for (var i = 0; i < triggerArrayLength; i++) {
        var trigger = this._triggerArray[i];
XhmikosR's avatar
XhmikosR committed
1811
        var elem = getElementFromSelector(trigger);
XhmikosR's avatar
Dist.  
XhmikosR committed
1812

XhmikosR's avatar
XhmikosR committed
1813
1814
        if (elem && !elem.classList.contains(CLASS_NAME_SHOW)) {
          trigger.classList.add(CLASS_NAME_COLLAPSED);
XhmikosR's avatar
XhmikosR committed
1815
          trigger.setAttribute('aria-expanded', false);
XhmikosR's avatar
Dist.  
XhmikosR committed
1816
1817
1818
1819
1820
1821
        }
      }
    }

    this.setTransitioning(true);

XhmikosR's avatar
XhmikosR committed
1822
1823
    var complete = function complete() {
      _this2.setTransitioning(false);
XhmikosR's avatar
Dist.  
XhmikosR committed
1824

XhmikosR's avatar
XhmikosR committed
1825
      _this2._element.classList.remove(CLASS_NAME_COLLAPSING);
XhmikosR's avatar
Dist.  
XhmikosR committed
1826

XhmikosR's avatar
XhmikosR committed
1827
      _this2._element.classList.add(CLASS_NAME_COLLAPSE);
XhmikosR's avatar
Dist.  
XhmikosR committed
1828

XhmikosR's avatar
XhmikosR committed
1829
      EventHandler.trigger(_this2._element, EVENT_HIDDEN);
XhmikosR's avatar
Dist.  
XhmikosR committed
1830
1831
1832
    };

    this._element.style[dimension] = '';
XhmikosR's avatar
XhmikosR committed
1833
    var transitionDuration = getTransitionDurationFromElement(this._element);
XhmikosR's avatar
Dist.  
XhmikosR committed
1834
1835
    EventHandler.one(this._element, TRANSITION_END, complete);
    emulateTransitionEnd(this._element, transitionDuration);
XhmikosR's avatar
XhmikosR committed
1836
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
1837

XhmikosR's avatar
XhmikosR committed
1838
  _proto.setTransitioning = function setTransitioning(isTransitioning) {
XhmikosR's avatar
Dist.  
XhmikosR committed
1839
    this._isTransitioning = isTransitioning;
XhmikosR's avatar
XhmikosR committed
1840
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
1841

XhmikosR's avatar
XhmikosR committed
1842
  _proto.dispose = function dispose() {
XhmikosR's avatar
Dist.  
XhmikosR committed
1843
1844
1845
1846
1847
1848
1849
    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
1850
  ;
XhmikosR's avatar
Dist.  
XhmikosR committed
1851

XhmikosR's avatar
XhmikosR committed
1852
  _proto._getConfig = function _getConfig(config) {
XhmikosR's avatar
XhmikosR committed
1853
    config = _extends({}, Default$1, config);
XhmikosR's avatar
Dist.  
XhmikosR committed
1854
1855
1856
1857
    config.toggle = Boolean(config.toggle); // Coerce string values

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

XhmikosR's avatar
XhmikosR committed
1860
  _proto._getDimension = function _getDimension() {
XhmikosR's avatar
XhmikosR committed
1861
    return this._element.classList.contains(WIDTH) ? WIDTH : HEIGHT;
XhmikosR's avatar
XhmikosR committed
1862
1863
1864
1865
  };

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

XhmikosR's avatar
XhmikosR committed
1867
    var parent = this._config.parent;
XhmikosR's avatar
Dist.  
XhmikosR committed
1868
1869
1870
1871
1872
1873
1874
1875
1876
1877

    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
1878
    var selector = SELECTOR_DATA_TOGGLE$1 + "[data-bs-parent=\"" + parent + "\"]";
XhmikosR's avatar
XhmikosR committed
1879
    SelectorEngine.find(selector, parent).forEach(function (element) {
XhmikosR's avatar
XhmikosR committed
1880
      var selected = getElementFromSelector(element);
1881
1882

      _this3._addAriaAndCollapsedClass(selected, [element]);
XhmikosR's avatar
Dist.  
XhmikosR committed
1883
1884
    });
    return parent;
XhmikosR's avatar
XhmikosR committed
1885
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
1886

XhmikosR's avatar
XhmikosR committed
1887
  _proto._addAriaAndCollapsedClass = function _addAriaAndCollapsedClass(element, triggerArray) {
XhmikosR's avatar
XhmikosR committed
1888
1889
1890
    if (!element || !triggerArray.length) {
      return;
    }
XhmikosR's avatar
Dist.  
XhmikosR committed
1891

XhmikosR's avatar
XhmikosR committed
1892
1893
1894
1895
1896
1897
    var isOpen = element.classList.contains(CLASS_NAME_SHOW);
    triggerArray.forEach(function (elem) {
      if (isOpen) {
        elem.classList.remove(CLASS_NAME_COLLAPSED);
      } else {
        elem.classList.add(CLASS_NAME_COLLAPSED);
XhmikosR's avatar
Dist.  
XhmikosR committed
1898
      }
XhmikosR's avatar
XhmikosR committed
1899
1900
1901

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

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

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

XhmikosR's avatar
XhmikosR committed
1910
    if (!data && _config.toggle && typeof config === 'string' && /show|hide/.test(config)) {
XhmikosR's avatar
Dist.  
XhmikosR committed
1911
1912
1913
1914
1915
1916
1917
1918
1919
      _config.toggle = false;
    }

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

    if (typeof config === 'string') {
      if (typeof data[config] === 'undefined') {
XhmikosR's avatar
XhmikosR committed
1920
        throw new TypeError("No method named \"" + config + "\"");
XhmikosR's avatar
Dist.  
XhmikosR committed
1921
1922
1923
1924
      }

      data[config]();
    }
XhmikosR's avatar
XhmikosR committed
1925
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
1926

XhmikosR's avatar
XhmikosR committed
1927
  Collapse.jQueryInterface = function jQueryInterface(config) {
XhmikosR's avatar
Dist.  
XhmikosR committed
1928
    return this.each(function () {
XhmikosR's avatar
XhmikosR committed
1929
      Collapse.collapseInterface(this, config);
XhmikosR's avatar
Dist.  
XhmikosR committed
1930
    });
XhmikosR's avatar
XhmikosR committed
1931
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
1932

XhmikosR's avatar
XhmikosR committed
1933
  Collapse.getInstance = function getInstance(element) {
XhmikosR's avatar
Dist.  
XhmikosR committed
1934
    return Data.getData(element, DATA_KEY$3);
XhmikosR's avatar
XhmikosR committed
1935
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
1936

XhmikosR's avatar
XhmikosR committed
1937
1938
1939
1940
1941
1942
1943
1944
1945
1946
1947
1948
1949
1950
  _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
1951
1952
1953
1954
1955
1956
1957
/**
 * ------------------------------------------------------------------------
 * Data Api implementation
 * ------------------------------------------------------------------------
 */


XhmikosR's avatar
XhmikosR committed
1958
EventHandler.on(document, EVENT_CLICK_DATA_API$3, SELECTOR_DATA_TOGGLE$1, function (event) {
XhmikosR's avatar
Dist.  
XhmikosR committed
1959
1960
1961
1962
1963
  // 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
1964
1965
  var triggerData = Manipulator.getDataAttributes(this);
  var selector = getSelectorFromElement(this);
XhmikosR's avatar
XhmikosR committed
1966
  var selectorElements = SelectorEngine.find(selector);
XhmikosR's avatar
XhmikosR committed
1967
1968
1969
  selectorElements.forEach(function (element) {
    var data = Data.getData(element, DATA_KEY$3);
    var config;
XhmikosR's avatar
Dist.  
XhmikosR committed
1970
1971
1972
1973
1974
1975
1976
1977
1978
1979
1980
1981
1982

    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
1983
    Collapse.collapseInterface(element, config);
XhmikosR's avatar
Dist.  
XhmikosR committed
1984
1985
1986
1987
1988
1989
  });
});
/**
 * ------------------------------------------------------------------------
 * jQuery
 * ------------------------------------------------------------------------
XhmikosR's avatar
XhmikosR committed
1990
 * add .Collapse to jQuery only if jQuery is present
XhmikosR's avatar
Dist.  
XhmikosR committed
1991
1992
 */

XhmikosR's avatar
XhmikosR committed
1993
1994
1995
onDOMContentLoaded(function () {
  var $ = getjQuery();
  /* istanbul ignore if */
1996

XhmikosR's avatar
XhmikosR committed
1997
1998
1999
2000
  if ($) {
    var JQUERY_NO_CONFLICT = $.fn[NAME$3];
    $.fn[NAME$3] = Collapse.jQueryInterface;
    $.fn[NAME$3].Constructor = Collapse;
XhmikosR's avatar
Dist.  
XhmikosR committed
2001

XhmikosR's avatar
XhmikosR committed
2002
2003
2004
2005
2006
2007
    $.fn[NAME$3].noConflict = function () {
      $.fn[NAME$3] = JQUERY_NO_CONFLICT;
      return Collapse.jQueryInterface;
    };
  }
});
XhmikosR's avatar
Dist.  
XhmikosR committed
2008
2009
2010
2011
2012
2013
2014

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

XhmikosR's avatar
XhmikosR committed
2015
var NAME$4 = 'dropdown';
XhmikosR's avatar
XhmikosR committed
2016
var VERSION$4 = '5.0.0-alpha3';
XhmikosR's avatar
XhmikosR committed
2017
2018
2019
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
2020
2021
2022
2023
2024
2025
2026
2027
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
2028
2029
2030
2031
2032
2033
2034
2035
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;
XhmikosR's avatar
XhmikosR committed
2036
var CLASS_NAME_DISABLED = 'disabled';
XhmikosR's avatar
XhmikosR committed
2037
2038
2039
2040
2041
2042
2043
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';
XhmikosR's avatar
XhmikosR committed
2044
var SELECTOR_DATA_TOGGLE$2 = '[data-bs-toggle="dropdown"]';
XhmikosR's avatar
XhmikosR committed
2045
2046
2047
2048
2049
2050
2051
2052
2053
2054
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
2055
var Default$2 = {
XhmikosR's avatar
Dist.  
XhmikosR committed
2056
2057
2058
2059
  offset: 0,
  flip: true,
  boundary: 'scrollParent',
  reference: 'toggle',
XhmikosR's avatar
XhmikosR committed
2060
2061
  display: 'dynamic',
  popperConfig: null
XhmikosR's avatar
Dist.  
XhmikosR committed
2062
};
XhmikosR's avatar
XhmikosR committed
2063
var DefaultType$2 = {
XhmikosR's avatar
Dist.  
XhmikosR committed
2064
2065
2066
2067
  offset: '(number|string|function)',
  flip: 'boolean',
  boundary: '(string|element)',
  reference: '(string|element)',
XhmikosR's avatar
XhmikosR committed
2068
2069
  display: 'string',
  popperConfig: '(null|object)'
XhmikosR's avatar
Dist.  
XhmikosR committed
2070
};
XhmikosR's avatar
XhmikosR committed
2071
2072
2073
2074
2075
/**
 * ------------------------------------------------------------------------
 * Class Definition
 * ------------------------------------------------------------------------
 */
XhmikosR's avatar
Dist.  
XhmikosR committed
2076

XhmikosR's avatar
XhmikosR committed
2077
var Dropdown = /*#__PURE__*/function () {
XhmikosR's avatar
XhmikosR committed
2078
  function Dropdown(element, config) {
XhmikosR's avatar
Dist.  
XhmikosR committed
2079
2080
2081
2082
2083
2084
2085
2086
2087
2088
2089
2090
    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
2091
  var _proto = Dropdown.prototype;
XhmikosR's avatar
Dist.  
XhmikosR committed
2092

XhmikosR's avatar
XhmikosR committed
2093
2094
  // Public
  _proto.toggle = function toggle() {
XhmikosR's avatar
XhmikosR committed
2095
    if (this._element.disabled || this._element.classList.contains(CLASS_NAME_DISABLED)) {
XhmikosR's avatar
Dist.  
XhmikosR committed
2096
2097
2098
      return;
    }

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

XhmikosR's avatar
XhmikosR committed
2101
    Dropdown.clearMenus();
XhmikosR's avatar
Dist.  
XhmikosR committed
2102
2103
2104
2105
2106

    if (isActive) {
      return;
    }

XhmikosR's avatar
XhmikosR committed
2107
2108
2109
2110
    this.show();
  };

  _proto.show = function show() {
XhmikosR's avatar
XhmikosR committed
2111
    if (this._element.disabled || this._element.classList.contains(CLASS_NAME_DISABLED) || this._menu.classList.contains(CLASS_NAME_SHOW$1)) {
XhmikosR's avatar
XhmikosR committed
2112
2113
2114
2115
      return;
    }

    var parent = Dropdown.getParentFromElement(this._element);
XhmikosR's avatar
XhmikosR committed
2116
    var relatedTarget = {
XhmikosR's avatar
Dist.  
XhmikosR committed
2117
2118
      relatedTarget: this._element
    };
XhmikosR's avatar
XhmikosR committed
2119
    var showEvent = EventHandler.trigger(this._element, EVENT_SHOW$1, relatedTarget);
XhmikosR's avatar
Dist.  
XhmikosR committed
2120
2121
2122

    if (showEvent.defaultPrevented) {
      return;
XhmikosR's avatar
XhmikosR committed
2123
    } // Totally disable Popper for Dropdowns in Navbar
XhmikosR's avatar
Dist.  
XhmikosR committed
2124
2125
2126
2127


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

XhmikosR's avatar
XhmikosR committed
2131
      var referenceElement = this._element;
XhmikosR's avatar
Dist.  
XhmikosR committed
2132
2133
2134
2135
2136
2137
2138
2139
2140
2141
2142
2143
2144
2145
2146

      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
2147
        parent.classList.add(CLASS_NAME_POSITION_STATIC);
XhmikosR's avatar
Dist.  
XhmikosR committed
2148
2149
2150
2151
2152
2153
2154
2155
2156
      }

      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
2157
    if ('ontouchstart' in document.documentElement && !parent.closest(SELECTOR_NAVBAR_NAV)) {
XhmikosR's avatar
XhmikosR committed
2158
2159
2160
      var _ref;

      (_ref = []).concat.apply(_ref, document.body.children).forEach(function (elem) {
XhmikosR's avatar
XhmikosR committed
2161
2162
        return EventHandler.on(elem, 'mouseover', null, noop());
      });
XhmikosR's avatar
Dist.  
XhmikosR committed
2163
2164
2165
2166
2167
2168
    }

    this._element.focus();

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

Mark Otto's avatar
Mark Otto committed
2169
2170
2171
2172
    this._menu.classList.toggle(CLASS_NAME_SHOW$1);

    this._element.classList.toggle(CLASS_NAME_SHOW$1);

XhmikosR's avatar
XhmikosR committed
2173
    EventHandler.trigger(parent, EVENT_SHOWN$1, relatedTarget);
XhmikosR's avatar
XhmikosR committed
2174
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
2175

XhmikosR's avatar
XhmikosR committed
2176
  _proto.hide = function hide() {
XhmikosR's avatar
XhmikosR committed
2177
    if (this._element.disabled || this._element.classList.contains(CLASS_NAME_DISABLED) || !this._menu.classList.contains(CLASS_NAME_SHOW$1)) {
XhmikosR's avatar
Dist.  
XhmikosR committed
2178
2179
2180
      return;
    }

XhmikosR's avatar
XhmikosR committed
2181
    var parent = Dropdown.getParentFromElement(this._element);
XhmikosR's avatar
XhmikosR committed
2182
    var relatedTarget = {
XhmikosR's avatar
Dist.  
XhmikosR committed
2183
2184
      relatedTarget: this._element
    };
XhmikosR's avatar
XhmikosR committed
2185
    var hideEvent = EventHandler.trigger(parent, EVENT_HIDE$1, relatedTarget);
XhmikosR's avatar
Dist.  
XhmikosR committed
2186
2187
2188
2189
2190

    if (hideEvent.defaultPrevented) {
      return;
    }

XhmikosR's avatar
XhmikosR committed
2191
2192
2193
2194
    if (this._popper) {
      this._popper.destroy();
    }

Mark Otto's avatar
Mark Otto committed
2195
2196
2197
2198
    this._menu.classList.toggle(CLASS_NAME_SHOW$1);

    this._element.classList.toggle(CLASS_NAME_SHOW$1);

XhmikosR's avatar
XhmikosR committed
2199
    EventHandler.trigger(parent, EVENT_HIDDEN$1, relatedTarget);
XhmikosR's avatar
XhmikosR committed
2200
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
2201

XhmikosR's avatar
XhmikosR committed
2202
  _proto.dispose = function dispose() {
XhmikosR's avatar
Dist.  
XhmikosR committed
2203
2204
2205
2206
2207
    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
2208
    if (this._popper) {
XhmikosR's avatar
Dist.  
XhmikosR committed
2209
2210
2211
2212
      this._popper.destroy();

      this._popper = null;
    }
XhmikosR's avatar
XhmikosR committed
2213
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
2214

XhmikosR's avatar
XhmikosR committed
2215
  _proto.update = function update() {
XhmikosR's avatar
Dist.  
XhmikosR committed
2216
2217
    this._inNavbar = this._detectNavbar();

XhmikosR's avatar
XhmikosR committed
2218
    if (this._popper) {
XhmikosR's avatar
Dist.  
XhmikosR committed
2219
2220
2221
      this._popper.scheduleUpdate();
    }
  } // Private
XhmikosR's avatar
XhmikosR committed
2222
  ;
XhmikosR's avatar
Dist.  
XhmikosR committed
2223

XhmikosR's avatar
XhmikosR committed
2224
2225
  _proto._addEventListeners = function _addEventListeners() {
    var _this = this;
XhmikosR's avatar
Dist.  
XhmikosR committed
2226

XhmikosR's avatar
XhmikosR committed
2227
    EventHandler.on(this._element, EVENT_CLICK, function (event) {
XhmikosR's avatar
Dist.  
XhmikosR committed
2228
2229
      event.preventDefault();
      event.stopPropagation();
XhmikosR's avatar
XhmikosR committed
2230
2231

      _this.toggle();
XhmikosR's avatar
Dist.  
XhmikosR committed
2232
    });
XhmikosR's avatar
XhmikosR committed
2233
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
2234

XhmikosR's avatar
XhmikosR committed
2235
  _proto._getConfig = function _getConfig(config) {
XhmikosR's avatar
XhmikosR committed
2236
    config = _extends({}, this.constructor.Default, Manipulator.getDataAttributes(this._element), config);
XhmikosR's avatar
Dist.  
XhmikosR committed
2237
2238
    typeCheckConfig(NAME$4, config, this.constructor.DefaultType);
    return config;
XhmikosR's avatar
XhmikosR committed
2239
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
2240

XhmikosR's avatar
XhmikosR committed
2241
  _proto._getMenuElement = function _getMenuElement() {
XhmikosR's avatar
XhmikosR committed
2242
    return SelectorEngine.next(this._element, SELECTOR_MENU)[0];
XhmikosR's avatar
XhmikosR committed
2243
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
2244

XhmikosR's avatar
XhmikosR committed
2245
2246
  _proto._getPlacement = function _getPlacement() {
    var parentDropdown = this._element.parentNode;
XhmikosR's avatar
XhmikosR committed
2247
    var placement = PLACEMENT_BOTTOM; // Handle dropup
XhmikosR's avatar
Dist.  
XhmikosR committed
2248

XhmikosR's avatar
XhmikosR committed
2249
    if (parentDropdown.classList.contains(CLASS_NAME_DROPUP)) {
XhmikosR's avatar
XhmikosR committed
2250
      placement = this._menu.classList.contains(CLASS_NAME_MENURIGHT) ? PLACEMENT_TOPEND : PLACEMENT_TOP;
XhmikosR's avatar
XhmikosR committed
2251
2252
2253
2254
2255
2256
    } 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
2257
2258
2259
    }

    return placement;
XhmikosR's avatar
XhmikosR committed
2260
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
2261

XhmikosR's avatar
XhmikosR committed
2262
  _proto._detectNavbar = function _detectNavbar() {
XhmikosR's avatar
XhmikosR committed
2263
    return Boolean(this._element.closest("." + CLASS_NAME_NAVBAR));
XhmikosR's avatar
XhmikosR committed
2264
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
2265

XhmikosR's avatar
XhmikosR committed
2266
2267
2268
2269
  _proto._getOffset = function _getOffset() {
    var _this2 = this;

    var offset = {};
XhmikosR's avatar
Dist.  
XhmikosR committed
2270
2271

    if (typeof this._config.offset === 'function') {
XhmikosR's avatar
XhmikosR committed
2272
      offset.fn = function (data) {
XhmikosR's avatar
XhmikosR committed
2273
        data.offsets = _extends({}, data.offsets, _this2._config.offset(data.offsets, _this2._element) || {});
XhmikosR's avatar
Dist.  
XhmikosR committed
2274
2275
2276
2277
2278
2279
2280
        return data;
      };
    } else {
      offset.offset = this._config.offset;
    }

    return offset;
XhmikosR's avatar
XhmikosR committed
2281
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
2282

XhmikosR's avatar
XhmikosR committed
2283
2284
  _proto._getPopperConfig = function _getPopperConfig() {
    var popperConfig = {
XhmikosR's avatar
Dist.  
XhmikosR committed
2285
2286
2287
2288
2289
2290
2291
2292
2293
      placement: this._getPlacement(),
      modifiers: {
        offset: this._getOffset(),
        flip: {
          enabled: this._config.flip
        },
        preventOverflow: {
          boundariesElement: this._config.boundary
        }
XhmikosR's avatar
XhmikosR committed
2294
      }
XhmikosR's avatar
XhmikosR committed
2295
    }; // Disable Popper if we have a static display
XhmikosR's avatar
Dist.  
XhmikosR committed
2296
2297
2298
2299
2300
2301
2302

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

XhmikosR's avatar
XhmikosR committed
2303
    return _extends({}, popperConfig, this._config.popperConfig);
XhmikosR's avatar
Dist.  
XhmikosR committed
2304
  } // Static
XhmikosR's avatar
XhmikosR committed
2305
  ;
XhmikosR's avatar
Dist.  
XhmikosR committed
2306

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

XhmikosR's avatar
XhmikosR committed
2310
    var _config = typeof config === 'object' ? config : null;
XhmikosR's avatar
Dist.  
XhmikosR committed
2311
2312
2313
2314
2315
2316
2317

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

    if (typeof config === 'string') {
      if (typeof data[config] === 'undefined') {
XhmikosR's avatar
XhmikosR committed
2318
        throw new TypeError("No method named \"" + config + "\"");
XhmikosR's avatar
Dist.  
XhmikosR committed
2319
2320
2321
2322
      }

      data[config]();
    }
XhmikosR's avatar
XhmikosR committed
2323
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
2324

XhmikosR's avatar
XhmikosR committed
2325
  Dropdown.jQueryInterface = function jQueryInterface(config) {
XhmikosR's avatar
Dist.  
XhmikosR committed
2326
    return this.each(function () {
XhmikosR's avatar
XhmikosR committed
2327
      Dropdown.dropdownInterface(this, config);
XhmikosR's avatar
Dist.  
XhmikosR committed
2328
    });
XhmikosR's avatar
XhmikosR committed
2329
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
2330

XhmikosR's avatar
XhmikosR committed
2331
  Dropdown.clearMenus = function clearMenus(event) {
XhmikosR's avatar
XhmikosR committed
2332
    if (event && (event.button === RIGHT_MOUSE_BUTTON || event.type === 'keyup' && event.key !== TAB_KEY)) {
XhmikosR's avatar
Dist.  
XhmikosR committed
2333
2334
2335
      return;
    }

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

XhmikosR's avatar
XhmikosR committed
2338
    for (var i = 0, len = toggles.length; i < len; i++) {
XhmikosR's avatar
XhmikosR committed
2339
      var parent = Dropdown.getParentFromElement(toggles[i]);
XhmikosR's avatar
XhmikosR committed
2340
2341
      var context = Data.getData(toggles[i], DATA_KEY$4);
      var relatedTarget = {
XhmikosR's avatar
Dist.  
XhmikosR committed
2342
2343
2344
2345
2346
2347
2348
2349
2350
2351
2352
        relatedTarget: toggles[i]
      };

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

      if (!context) {
        continue;
      }

XhmikosR's avatar
XhmikosR committed
2353
      var dropdownMenu = context._menu;
XhmikosR's avatar
Dist.  
XhmikosR committed
2354

XhmikosR's avatar
XhmikosR committed
2355
      if (!toggles[i].classList.contains(CLASS_NAME_SHOW$1)) {
XhmikosR's avatar
Dist.  
XhmikosR committed
2356
2357
2358
        continue;
      }

XhmikosR's avatar
XhmikosR committed
2359
      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
2360
2361
2362
        continue;
      }

XhmikosR's avatar
XhmikosR committed
2363
      var hideEvent = EventHandler.trigger(parent, EVENT_HIDE$1, relatedTarget);
XhmikosR's avatar
Dist.  
XhmikosR committed
2364
2365
2366
2367
2368
2369
2370
2371

      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
2372
2373
2374
        var _ref2;

        (_ref2 = []).concat.apply(_ref2, document.body.children).forEach(function (elem) {
XhmikosR's avatar
XhmikosR committed
2375
2376
          return EventHandler.off(elem, 'mouseover', null, noop());
        });
XhmikosR's avatar
Dist.  
XhmikosR committed
2377
2378
2379
      }

      toggles[i].setAttribute('aria-expanded', 'false');
XhmikosR's avatar
XhmikosR committed
2380
2381
2382
2383
2384

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

XhmikosR's avatar
XhmikosR committed
2385
2386
2387
      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
2388
    }
XhmikosR's avatar
XhmikosR committed
2389
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
2390

XhmikosR's avatar
XhmikosR committed
2391
2392
  Dropdown.getParentFromElement = function getParentFromElement(element) {
    return getElementFromSelector(element) || element.parentNode;
XhmikosR's avatar
XhmikosR committed
2393
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
2394

XhmikosR's avatar
XhmikosR committed
2395
  Dropdown.dataApiKeydownHandler = function dataApiKeydownHandler(event) {
XhmikosR's avatar
Dist.  
XhmikosR committed
2396
2397
2398
2399
2400
2401
2402
    // 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
2403
    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
2404
2405
2406
2407
2408
2409
      return;
    }

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

XhmikosR's avatar
XhmikosR committed
2410
    if (this.disabled || this.classList.contains(CLASS_NAME_DISABLED)) {
XhmikosR's avatar
Dist.  
XhmikosR committed
2411
2412
2413
      return;
    }

XhmikosR's avatar
XhmikosR committed
2414
    var parent = Dropdown.getParentFromElement(this);
XhmikosR's avatar
XhmikosR committed
2415
    var isActive = this.classList.contains(CLASS_NAME_SHOW$1);
XhmikosR's avatar
Dist.  
XhmikosR committed
2416

XhmikosR's avatar
XhmikosR committed
2417
    if (event.key === ESCAPE_KEY) {
XhmikosR's avatar
XhmikosR committed
2418
2419
2420
2421
2422
      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
2423

XhmikosR's avatar
XhmikosR committed
2424
    if (!isActive || event.key === SPACE_KEY) {
XhmikosR's avatar
XhmikosR committed
2425
      Dropdown.clearMenus();
XhmikosR's avatar
Dist.  
XhmikosR committed
2426
2427
2428
      return;
    }

XhmikosR's avatar
XhmikosR committed
2429
    var items = SelectorEngine.find(SELECTOR_VISIBLE_ITEMS, parent).filter(isVisible);
XhmikosR's avatar
Dist.  
XhmikosR committed
2430
2431
2432
2433
2434

    if (!items.length) {
      return;
    }

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

XhmikosR's avatar
XhmikosR committed
2437
    if (event.key === ARROW_UP_KEY && index > 0) {
XhmikosR's avatar
Dist.  
XhmikosR committed
2438
2439
2440
2441
      // Up
      index--;
    }

XhmikosR's avatar
XhmikosR committed
2442
    if (event.key === ARROW_DOWN_KEY && index < items.length - 1) {
XhmikosR's avatar
Dist.  
XhmikosR committed
2443
2444
      // Down
      index++;
XhmikosR's avatar
XhmikosR committed
2445
2446
    } // index is -1 if the first keydown is an ArrowUp

XhmikosR's avatar
Dist.  
XhmikosR committed
2447

XhmikosR's avatar
XhmikosR committed
2448
    index = index === -1 ? 0 : index;
XhmikosR's avatar
Dist.  
XhmikosR committed
2449
    items[index].focus();
XhmikosR's avatar
XhmikosR committed
2450
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
2451

XhmikosR's avatar
XhmikosR committed
2452
  Dropdown.getInstance = function getInstance(element) {
XhmikosR's avatar
Dist.  
XhmikosR committed
2453
    return Data.getData(element, DATA_KEY$4);
XhmikosR's avatar
XhmikosR committed
2454
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
2455

XhmikosR's avatar
XhmikosR committed
2456
2457
2458
2459
2460
2461
2462
2463
2464
2465
2466
2467
2468
2469
2470
2471
2472
2473
2474
  _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
2475
2476
2477
2478
2479
2480
2481
/**
 * ------------------------------------------------------------------------
 * Data Api implementation
 * ------------------------------------------------------------------------
 */


XhmikosR's avatar
XhmikosR committed
2482
2483
2484
2485
2486
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
2487
2488
  event.preventDefault();
  event.stopPropagation();
XhmikosR's avatar
XhmikosR committed
2489
  Dropdown.dropdownInterface(this, 'toggle');
XhmikosR's avatar
Dist.  
XhmikosR committed
2490
});
XhmikosR's avatar
XhmikosR committed
2491
EventHandler.on(document, EVENT_CLICK_DATA_API$4, SELECTOR_FORM_CHILD, function (e) {
XhmikosR's avatar
XhmikosR committed
2492
2493
  return e.stopPropagation();
});
XhmikosR's avatar
Dist.  
XhmikosR committed
2494
2495
2496
2497
/**
 * ------------------------------------------------------------------------
 * jQuery
 * ------------------------------------------------------------------------
XhmikosR's avatar
XhmikosR committed
2498
 * add .Dropdown to jQuery only if jQuery is present
XhmikosR's avatar
Dist.  
XhmikosR committed
2499
2500
 */

XhmikosR's avatar
XhmikosR committed
2501
2502
2503
onDOMContentLoaded(function () {
  var $ = getjQuery();
  /* istanbul ignore if */
2504

XhmikosR's avatar
XhmikosR committed
2505
2506
2507
2508
  if ($) {
    var JQUERY_NO_CONFLICT = $.fn[NAME$4];
    $.fn[NAME$4] = Dropdown.jQueryInterface;
    $.fn[NAME$4].Constructor = Dropdown;
XhmikosR's avatar
Dist.  
XhmikosR committed
2509

XhmikosR's avatar
XhmikosR committed
2510
2511
2512
2513
2514
2515
    $.fn[NAME$4].noConflict = function () {
      $.fn[NAME$4] = JQUERY_NO_CONFLICT;
      return Dropdown.jQueryInterface;
    };
  }
});
XhmikosR's avatar
Dist.  
XhmikosR committed
2516
2517
2518
2519
2520
2521
2522

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

XhmikosR's avatar
XhmikosR committed
2523
var NAME$5 = 'modal';
XhmikosR's avatar
XhmikosR committed
2524
var VERSION$5 = '5.0.0-alpha3';
XhmikosR's avatar
XhmikosR committed
2525
2526
2527
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
2528
var ESCAPE_KEY$1 = 'Escape';
XhmikosR's avatar
XhmikosR committed
2529
var Default$3 = {
XhmikosR's avatar
Dist.  
XhmikosR committed
2530
2531
2532
2533
2534
  backdrop: true,
  keyboard: true,
  focus: true,
  show: true
};
XhmikosR's avatar
XhmikosR committed
2535
var DefaultType$3 = {
XhmikosR's avatar
Dist.  
XhmikosR committed
2536
2537
2538
2539
2540
  backdrop: '(boolean|string)',
  keyboard: 'boolean',
  focus: 'boolean',
  show: 'boolean'
};
XhmikosR's avatar
XhmikosR committed
2541
2542
2543
2544
2545
2546
2547
2548
2549
2550
2551
2552
2553
2554
2555
2556
2557
2558
2559
2560
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';
XhmikosR's avatar
XhmikosR committed
2561
2562
var SELECTOR_DATA_TOGGLE$3 = '[data-bs-toggle="modal"]';
var SELECTOR_DATA_DISMISS = '[data-bs-dismiss="modal"]';
XhmikosR's avatar
XhmikosR committed
2563
2564
var SELECTOR_FIXED_CONTENT = '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top';
var SELECTOR_STICKY_CONTENT = '.sticky-top';
XhmikosR's avatar
XhmikosR committed
2565
2566
2567
2568
2569
/**
 * ------------------------------------------------------------------------
 * Class Definition
 * ------------------------------------------------------------------------
 */
XhmikosR's avatar
Dist.  
XhmikosR committed
2570

XhmikosR's avatar
XhmikosR committed
2571
var Modal = /*#__PURE__*/function () {
XhmikosR's avatar
XhmikosR committed
2572
  function Modal(element, config) {
XhmikosR's avatar
Dist.  
XhmikosR committed
2573
2574
    this._config = this._getConfig(config);
    this._element = element;
XhmikosR's avatar
XhmikosR committed
2575
    this._dialog = SelectorEngine.findOne(SELECTOR_DIALOG, element);
XhmikosR's avatar
Dist.  
XhmikosR committed
2576
2577
2578
2579
2580
2581
2582
2583
2584
2585
    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
2586
  var _proto = Modal.prototype;
XhmikosR's avatar
Dist.  
XhmikosR committed
2587

XhmikosR's avatar
XhmikosR committed
2588
2589
  // Public
  _proto.toggle = function toggle(relatedTarget) {
XhmikosR's avatar
Dist.  
XhmikosR committed
2590
    return this._isShown ? this.hide() : this.show(relatedTarget);
XhmikosR's avatar
XhmikosR committed
2591
2592
2593
2594
  };

  _proto.show = function show(relatedTarget) {
    var _this = this;
XhmikosR's avatar
Dist.  
XhmikosR committed
2595
2596
2597
2598
2599

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

XhmikosR's avatar
XhmikosR committed
2600
    if (this._element.classList.contains(CLASS_NAME_FADE)) {
XhmikosR's avatar
Dist.  
XhmikosR committed
2601
2602
2603
      this._isTransitioning = true;
    }

XhmikosR's avatar
XhmikosR committed
2604
    var showEvent = EventHandler.trigger(this._element, EVENT_SHOW$2, {
XhmikosR's avatar
XhmikosR committed
2605
      relatedTarget: relatedTarget
XhmikosR's avatar
Dist.  
XhmikosR committed
2606
2607
2608
2609
2610
2611
2612
2613
2614
2615
2616
2617
2618
2619
2620
2621
2622
2623
    });

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

    this._isShown = true;

    this._checkScrollbar();

    this._setScrollbar();

    this._adjustDialog();

    this._setEscapeEvent();

    this._setResizeEvent();

XhmikosR's avatar
XhmikosR committed
2624
    EventHandler.on(this._element, EVENT_CLICK_DISMISS, SELECTOR_DATA_DISMISS, function (event) {
XhmikosR's avatar
XhmikosR committed
2625
2626
      return _this.hide(event);
    });
XhmikosR's avatar
XhmikosR committed
2627
2628
    EventHandler.on(this._dialog, EVENT_MOUSEDOWN_DISMISS, function () {
      EventHandler.one(_this._element, EVENT_MOUSEUP_DISMISS, function (event) {
XhmikosR's avatar
XhmikosR committed
2629
2630
        if (event.target === _this._element) {
          _this._ignoreBackdropClick = true;
XhmikosR's avatar
Dist.  
XhmikosR committed
2631
2632
2633
2634
        }
      });
    });

XhmikosR's avatar
XhmikosR committed
2635
2636
2637
2638
2639
2640
2641
    this._showBackdrop(function () {
      return _this._showElement(relatedTarget);
    });
  };

  _proto.hide = function hide(event) {
    var _this2 = this;
XhmikosR's avatar
Dist.  
XhmikosR committed
2642
2643
2644
2645
2646
2647
2648
2649
2650

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

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

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

2653
    if (hideEvent.defaultPrevented) {
XhmikosR's avatar
Dist.  
XhmikosR committed
2654
2655
2656
2657
2658
      return;
    }

    this._isShown = false;

XhmikosR's avatar
XhmikosR committed
2659
    var transition = this._element.classList.contains(CLASS_NAME_FADE);
XhmikosR's avatar
Dist.  
XhmikosR committed
2660
2661
2662
2663
2664
2665
2666
2667
2668

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

    this._setEscapeEvent();

    this._setResizeEvent();

XhmikosR's avatar
XhmikosR committed
2669
    EventHandler.off(document, EVENT_FOCUSIN);
XhmikosR's avatar
Dist.  
XhmikosR committed
2670

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

XhmikosR's avatar
XhmikosR committed
2673
2674
    EventHandler.off(this._element, EVENT_CLICK_DISMISS);
    EventHandler.off(this._dialog, EVENT_MOUSEDOWN_DISMISS);
XhmikosR's avatar
Dist.  
XhmikosR committed
2675
2676

    if (transition) {
XhmikosR's avatar
XhmikosR committed
2677
2678
2679
2680
      var transitionDuration = getTransitionDurationFromElement(this._element);
      EventHandler.one(this._element, TRANSITION_END, function (event) {
        return _this2._hideModal(event);
      });
XhmikosR's avatar
Dist.  
XhmikosR committed
2681
2682
2683
2684
      emulateTransitionEnd(this._element, transitionDuration);
    } else {
      this._hideModal();
    }
XhmikosR's avatar
XhmikosR committed
2685
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
2686

XhmikosR's avatar
XhmikosR committed
2687
2688
2689
2690
  _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
2691
    /**
XhmikosR's avatar
XhmikosR committed
2692
     * `document` has 2 events `EVENT_FOCUSIN` and `EVENT_CLICK_DATA_API`
XhmikosR's avatar
Dist.  
XhmikosR committed
2693
     * Do not move `document` in `htmlElements` array
XhmikosR's avatar
XhmikosR committed
2694
     * It will remove `EVENT_CLICK_DATA_API` event that should remain
XhmikosR's avatar
Dist.  
XhmikosR committed
2695
2696
     */

XhmikosR's avatar
XhmikosR committed
2697
    EventHandler.off(document, EVENT_FOCUSIN);
XhmikosR's avatar
Dist.  
XhmikosR committed
2698
2699
2700
2701
2702
2703
2704
2705
2706
2707
    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
2708
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
2709

XhmikosR's avatar
XhmikosR committed
2710
  _proto.handleUpdate = function handleUpdate() {
XhmikosR's avatar
Dist.  
XhmikosR committed
2711
2712
    this._adjustDialog();
  } // Private
XhmikosR's avatar
XhmikosR committed
2713
  ;
XhmikosR's avatar
Dist.  
XhmikosR committed
2714

XhmikosR's avatar
XhmikosR committed
2715
  _proto._getConfig = function _getConfig(config) {
XhmikosR's avatar
XhmikosR committed
2716
    config = _extends({}, Default$3, config);
XhmikosR's avatar
Dist.  
XhmikosR committed
2717
2718
    typeCheckConfig(NAME$5, config, DefaultType$3);
    return config;
XhmikosR's avatar
XhmikosR committed
2719
2720
2721
2722
  };

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

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

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

XhmikosR's avatar
Dist.  
XhmikosR committed
2728
2729
2730
2731
2732
2733
2734
2735
2736
2737
2738
    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);

Mark Otto's avatar
Mark Otto committed
2739
2740
    this._element.setAttribute('role', 'dialog');

XhmikosR's avatar
XhmikosR committed
2741
2742
2743
    this._element.scrollTop = 0;

    if (modalBody) {
XhmikosR's avatar
XhmikosR committed
2744
      modalBody.scrollTop = 0;
XhmikosR's avatar
Dist.  
XhmikosR committed
2745
2746
2747
2748
2749
2750
    }

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

XhmikosR's avatar
XhmikosR committed
2751
    this._element.classList.add(CLASS_NAME_SHOW$2);
XhmikosR's avatar
Dist.  
XhmikosR committed
2752
2753
2754
2755
2756

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

XhmikosR's avatar
XhmikosR committed
2757
2758
2759
    var transitionComplete = function transitionComplete() {
      if (_this3._config.focus) {
        _this3._element.focus();
XhmikosR's avatar
Dist.  
XhmikosR committed
2760
2761
      }

XhmikosR's avatar
XhmikosR committed
2762
      _this3._isTransitioning = false;
XhmikosR's avatar
XhmikosR committed
2763
      EventHandler.trigger(_this3._element, EVENT_SHOWN$2, {
XhmikosR's avatar
XhmikosR committed
2764
        relatedTarget: relatedTarget
XhmikosR's avatar
Dist.  
XhmikosR committed
2765
2766
2767
2768
      });
    };

    if (transition) {
XhmikosR's avatar
XhmikosR committed
2769
      var transitionDuration = getTransitionDurationFromElement(this._dialog);
XhmikosR's avatar
Dist.  
XhmikosR committed
2770
2771
2772
2773
2774
      EventHandler.one(this._dialog, TRANSITION_END, transitionComplete);
      emulateTransitionEnd(this._dialog, transitionDuration);
    } else {
      transitionComplete();
    }
XhmikosR's avatar
XhmikosR committed
2775
2776
2777
2778
  };

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

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

XhmikosR's avatar
XhmikosR committed
2782
    EventHandler.on(document, EVENT_FOCUSIN, function (event) {
XhmikosR's avatar
XhmikosR committed
2783
2784
      if (document !== event.target && _this4._element !== event.target && !_this4._element.contains(event.target)) {
        _this4._element.focus();
XhmikosR's avatar
Dist.  
XhmikosR committed
2785
2786
      }
    });
XhmikosR's avatar
XhmikosR committed
2787
2788
2789
2790
  };

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

XhmikosR's avatar
XhmikosR committed
2792
2793
    if (this._isShown) {
      EventHandler.on(this._element, EVENT_KEYDOWN_DISMISS, function (event) {
XhmikosR's avatar
XhmikosR committed
2794
        if (_this5._config.keyboard && event.key === ESCAPE_KEY$1) {
XhmikosR's avatar
XhmikosR committed
2795
2796
2797
          event.preventDefault();

          _this5.hide();
XhmikosR's avatar
XhmikosR committed
2798
        } else if (!_this5._config.keyboard && event.key === ESCAPE_KEY$1) {
XhmikosR's avatar
XhmikosR committed
2799
          _this5._triggerBackdropTransition();
XhmikosR's avatar
Dist.  
XhmikosR committed
2800
2801
        }
      });
2802
    } else {
XhmikosR's avatar
XhmikosR committed
2803
      EventHandler.off(this._element, EVENT_KEYDOWN_DISMISS);
XhmikosR's avatar
Dist.  
XhmikosR committed
2804
    }
XhmikosR's avatar
XhmikosR committed
2805
2806
2807
2808
  };

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

    if (this._isShown) {
XhmikosR's avatar
XhmikosR committed
2811
      EventHandler.on(window, EVENT_RESIZE, function () {
2812
        return _this6._adjustDialog();
XhmikosR's avatar
XhmikosR committed
2813
      });
XhmikosR's avatar
Dist.  
XhmikosR committed
2814
    } else {
XhmikosR's avatar
XhmikosR committed
2815
      EventHandler.off(window, EVENT_RESIZE);
XhmikosR's avatar
Dist.  
XhmikosR committed
2816
    }
XhmikosR's avatar
XhmikosR committed
2817
2818
2819
2820
  };

  _proto._hideModal = function _hideModal() {
    var _this7 = this;
XhmikosR's avatar
Dist.  
XhmikosR committed
2821
2822
2823
2824
2825
2826
2827

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

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

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

Mark Otto's avatar
Mark Otto committed
2828
2829
    this._element.removeAttribute('role');

XhmikosR's avatar
Dist.  
XhmikosR committed
2830
2831
    this._isTransitioning = false;

XhmikosR's avatar
XhmikosR committed
2832
    this._showBackdrop(function () {
XhmikosR's avatar
XhmikosR committed
2833
      document.body.classList.remove(CLASS_NAME_OPEN);
XhmikosR's avatar
Dist.  
XhmikosR committed
2834

XhmikosR's avatar
XhmikosR committed
2835
      _this7._resetAdjustments();
XhmikosR's avatar
Dist.  
XhmikosR committed
2836

XhmikosR's avatar
XhmikosR committed
2837
      _this7._resetScrollbar();
XhmikosR's avatar
Dist.  
XhmikosR committed
2838

XhmikosR's avatar
XhmikosR committed
2839
      EventHandler.trigger(_this7._element, EVENT_HIDDEN$2);
XhmikosR's avatar
Dist.  
XhmikosR committed
2840
    });
XhmikosR's avatar
XhmikosR committed
2841
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
2842

XhmikosR's avatar
XhmikosR committed
2843
  _proto._removeBackdrop = function _removeBackdrop() {
2844
    this._backdrop.parentNode.removeChild(this._backdrop);
XhmikosR's avatar
Dist.  
XhmikosR committed
2845

2846
    this._backdrop = null;
XhmikosR's avatar
XhmikosR committed
2847
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
2848

XhmikosR's avatar
XhmikosR committed
2849
2850
2851
  _proto._showBackdrop = function _showBackdrop(callback) {
    var _this8 = this;

XhmikosR's avatar
XhmikosR committed
2852
    var animate = this._element.classList.contains(CLASS_NAME_FADE) ? CLASS_NAME_FADE : '';
XhmikosR's avatar
Dist.  
XhmikosR committed
2853
2854
2855

    if (this._isShown && this._config.backdrop) {
      this._backdrop = document.createElement('div');
XhmikosR's avatar
XhmikosR committed
2856
      this._backdrop.className = CLASS_NAME_BACKDROP;
XhmikosR's avatar
Dist.  
XhmikosR committed
2857
2858
2859
2860
2861
2862

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

      document.body.appendChild(this._backdrop);
XhmikosR's avatar
XhmikosR committed
2863
      EventHandler.on(this._element, EVENT_CLICK_DISMISS, function (event) {
XhmikosR's avatar
XhmikosR committed
2864
2865
        if (_this8._ignoreBackdropClick) {
          _this8._ignoreBackdropClick = false;
XhmikosR's avatar
Dist.  
XhmikosR committed
2866
2867
2868
2869
2870
2871
2872
          return;
        }

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

XhmikosR's avatar
XhmikosR committed
2873
2874
2875
2876
2877
        if (_this8._config.backdrop === 'static') {
          _this8._triggerBackdropTransition();
        } else {
          _this8.hide();
        }
XhmikosR's avatar
Dist.  
XhmikosR committed
2878
2879
2880
2881
2882
2883
      });

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

XhmikosR's avatar
XhmikosR committed
2884
      this._backdrop.classList.add(CLASS_NAME_SHOW$2);
XhmikosR's avatar
Dist.  
XhmikosR committed
2885
2886
2887
2888
2889
2890

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

XhmikosR's avatar
XhmikosR committed
2891
      var backdropTransitionDuration = getTransitionDurationFromElement(this._backdrop);
XhmikosR's avatar
Dist.  
XhmikosR committed
2892
2893
2894
      EventHandler.one(this._backdrop, TRANSITION_END, callback);
      emulateTransitionEnd(this._backdrop, backdropTransitionDuration);
    } else if (!this._isShown && this._backdrop) {
XhmikosR's avatar
XhmikosR committed
2895
      this._backdrop.classList.remove(CLASS_NAME_SHOW$2);
XhmikosR's avatar
Dist.  
XhmikosR committed
2896

XhmikosR's avatar
XhmikosR committed
2897
2898
      var callbackRemove = function callbackRemove() {
        _this8._removeBackdrop();
XhmikosR's avatar
Dist.  
XhmikosR committed
2899

2900
        callback();
XhmikosR's avatar
Dist.  
XhmikosR committed
2901
2902
      };

XhmikosR's avatar
XhmikosR committed
2903
      if (this._element.classList.contains(CLASS_NAME_FADE)) {
XhmikosR's avatar
XhmikosR committed
2904
2905
        var _backdropTransitionDuration = getTransitionDurationFromElement(this._backdrop);

XhmikosR's avatar
Dist.  
XhmikosR committed
2906
        EventHandler.one(this._backdrop, TRANSITION_END, callbackRemove);
XhmikosR's avatar
XhmikosR committed
2907
        emulateTransitionEnd(this._backdrop, _backdropTransitionDuration);
XhmikosR's avatar
Dist.  
XhmikosR committed
2908
2909
2910
      } else {
        callbackRemove();
      }
2911
    } else {
XhmikosR's avatar
Dist.  
XhmikosR committed
2912
2913
      callback();
    }
XhmikosR's avatar
XhmikosR committed
2914
2915
2916
2917
2918
  };

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

XhmikosR's avatar
XhmikosR committed
2919
    var hideEvent = EventHandler.trigger(this._element, EVENT_HIDE_PREVENTED);
XhmikosR's avatar
XhmikosR committed
2920

XhmikosR's avatar
XhmikosR committed
2921
2922
2923
    if (hideEvent.defaultPrevented) {
      return;
    }
XhmikosR's avatar
XhmikosR committed
2924

XhmikosR's avatar
XhmikosR committed
2925
    var isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight;
XhmikosR's avatar
XhmikosR committed
2926

XhmikosR's avatar
XhmikosR committed
2927
2928
2929
    if (!isModalOverflowing) {
      this._element.style.overflowY = 'hidden';
    }
XhmikosR's avatar
XhmikosR committed
2930

XhmikosR's avatar
XhmikosR committed
2931
    this._element.classList.add(CLASS_NAME_STATIC);
XhmikosR's avatar
XhmikosR committed
2932

XhmikosR's avatar
XhmikosR committed
2933
2934
2935
2936
    var modalTransitionDuration = getTransitionDurationFromElement(this._dialog);
    EventHandler.off(this._element, TRANSITION_END);
    EventHandler.one(this._element, TRANSITION_END, function () {
      _this9._element.classList.remove(CLASS_NAME_STATIC);
XhmikosR's avatar
XhmikosR committed
2937

XhmikosR's avatar
XhmikosR committed
2938
2939
2940
2941
2942
2943
2944
2945
      if (!isModalOverflowing) {
        EventHandler.one(_this9._element, TRANSITION_END, function () {
          _this9._element.style.overflowY = '';
        });
        emulateTransitionEnd(_this9._element, modalTransitionDuration);
      }
    });
    emulateTransitionEnd(this._element, modalTransitionDuration);
XhmikosR's avatar
XhmikosR committed
2946

XhmikosR's avatar
XhmikosR committed
2947
    this._element.focus();
XhmikosR's avatar
Dist.  
XhmikosR committed
2948
2949
2950
  } // ----------------------------------------------------------------------
  // the following methods are used to handle overflowing modals
  // ----------------------------------------------------------------------
XhmikosR's avatar
XhmikosR committed
2951
  ;
XhmikosR's avatar
Dist.  
XhmikosR committed
2952

XhmikosR's avatar
XhmikosR committed
2953
2954
  _proto._adjustDialog = function _adjustDialog() {
    var isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight;
XhmikosR's avatar
Dist.  
XhmikosR committed
2955
2956

    if (!this._isBodyOverflowing && isModalOverflowing) {
XhmikosR's avatar
XhmikosR committed
2957
      this._element.style.paddingLeft = this._scrollbarWidth + "px";
XhmikosR's avatar
Dist.  
XhmikosR committed
2958
2959
2960
    }

    if (this._isBodyOverflowing && !isModalOverflowing) {
XhmikosR's avatar
XhmikosR committed
2961
      this._element.style.paddingRight = this._scrollbarWidth + "px";
XhmikosR's avatar
Dist.  
XhmikosR committed
2962
    }
XhmikosR's avatar
XhmikosR committed
2963
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
2964

XhmikosR's avatar
XhmikosR committed
2965
  _proto._resetAdjustments = function _resetAdjustments() {
XhmikosR's avatar
Dist.  
XhmikosR committed
2966
2967
    this._element.style.paddingLeft = '';
    this._element.style.paddingRight = '';
XhmikosR's avatar
XhmikosR committed
2968
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
2969

XhmikosR's avatar
XhmikosR committed
2970
2971
  _proto._checkScrollbar = function _checkScrollbar() {
    var rect = document.body.getBoundingClientRect();
XhmikosR's avatar
XhmikosR committed
2972
    this._isBodyOverflowing = Math.round(rect.left + rect.right) < window.innerWidth;
XhmikosR's avatar
Dist.  
XhmikosR committed
2973
    this._scrollbarWidth = this._getScrollbarWidth();
XhmikosR's avatar
XhmikosR committed
2974
2975
2976
  };

  _proto._setScrollbar = function _setScrollbar() {
XhmikosR's avatar
XhmikosR committed
2977
    var _this10 = this;
XhmikosR's avatar
Dist.  
XhmikosR committed
2978
2979
2980
2981
2982

    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
2983
      SelectorEngine.find(SELECTOR_FIXED_CONTENT).forEach(function (element) {
XhmikosR's avatar
XhmikosR committed
2984
2985
        var actualPadding = element.style.paddingRight;
        var calculatedPadding = window.getComputedStyle(element)['padding-right'];
XhmikosR's avatar
Dist.  
XhmikosR committed
2986
        Manipulator.setDataAttribute(element, 'padding-right', actualPadding);
XhmikosR's avatar
XhmikosR committed
2987
        element.style.paddingRight = Number.parseFloat(calculatedPadding) + _this10._scrollbarWidth + "px";
XhmikosR's avatar
Dist.  
XhmikosR committed
2988
2989
      }); // Adjust sticky content margin

XhmikosR's avatar
XhmikosR committed
2990
      SelectorEngine.find(SELECTOR_STICKY_CONTENT).forEach(function (element) {
XhmikosR's avatar
XhmikosR committed
2991
2992
        var actualMargin = element.style.marginRight;
        var calculatedMargin = window.getComputedStyle(element)['margin-right'];
XhmikosR's avatar
Dist.  
XhmikosR committed
2993
        Manipulator.setDataAttribute(element, 'margin-right', actualMargin);
XhmikosR's avatar
XhmikosR committed
2994
        element.style.marginRight = Number.parseFloat(calculatedMargin) - _this10._scrollbarWidth + "px";
XhmikosR's avatar
Dist.  
XhmikosR committed
2995
2996
      }); // Adjust body padding

XhmikosR's avatar
XhmikosR committed
2997
2998
      var actualPadding = document.body.style.paddingRight;
      var calculatedPadding = window.getComputedStyle(document.body)['padding-right'];
XhmikosR's avatar
Dist.  
XhmikosR committed
2999
      Manipulator.setDataAttribute(document.body, 'padding-right', actualPadding);
XhmikosR's avatar
XhmikosR committed
3000
      document.body.style.paddingRight = Number.parseFloat(calculatedPadding) + this._scrollbarWidth + "px";
XhmikosR's avatar
Dist.  
XhmikosR committed
3001
3002
    }

XhmikosR's avatar
XhmikosR committed
3003
    document.body.classList.add(CLASS_NAME_OPEN);
XhmikosR's avatar
XhmikosR committed
3004
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
3005

XhmikosR's avatar
XhmikosR committed
3006
  _proto._resetScrollbar = function _resetScrollbar() {
XhmikosR's avatar
Dist.  
XhmikosR committed
3007
    // Restore fixed content padding
XhmikosR's avatar
XhmikosR committed
3008
    SelectorEngine.find(SELECTOR_FIXED_CONTENT).forEach(function (element) {
XhmikosR's avatar
XhmikosR committed
3009
      var padding = Manipulator.getDataAttribute(element, 'padding-right');
XhmikosR's avatar
Dist.  
XhmikosR committed
3010
3011
3012
3013
3014
3015
3016

      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
3017
    SelectorEngine.find("" + SELECTOR_STICKY_CONTENT).forEach(function (element) {
XhmikosR's avatar
XhmikosR committed
3018
      var margin = Manipulator.getDataAttribute(element, 'margin-right');
XhmikosR's avatar
Dist.  
XhmikosR committed
3019
3020
3021
3022
3023
3024
3025

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

XhmikosR's avatar
XhmikosR committed
3026
    var padding = Manipulator.getDataAttribute(document.body, 'padding-right');
XhmikosR's avatar
Dist.  
XhmikosR committed
3027
3028
3029
3030
3031
3032
3033

    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
3034
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
3035

XhmikosR's avatar
XhmikosR committed
3036
  _proto._getScrollbarWidth = function _getScrollbarWidth() {
XhmikosR's avatar
Dist.  
XhmikosR committed
3037
    // thx d.walsh
XhmikosR's avatar
XhmikosR committed
3038
    var scrollDiv = document.createElement('div');
XhmikosR's avatar
XhmikosR committed
3039
    scrollDiv.className = CLASS_NAME_SCROLLBAR_MEASURER;
XhmikosR's avatar
Dist.  
XhmikosR committed
3040
    document.body.appendChild(scrollDiv);
XhmikosR's avatar
XhmikosR committed
3041
    var scrollbarWidth = scrollDiv.getBoundingClientRect().width - scrollDiv.clientWidth;
XhmikosR's avatar
Dist.  
XhmikosR committed
3042
3043
3044
    document.body.removeChild(scrollDiv);
    return scrollbarWidth;
  } // Static
XhmikosR's avatar
XhmikosR committed
3045
  ;
XhmikosR's avatar
Dist.  
XhmikosR committed
3046

XhmikosR's avatar
XhmikosR committed
3047
  Modal.jQueryInterface = function jQueryInterface(config, relatedTarget) {
XhmikosR's avatar
Dist.  
XhmikosR committed
3048
    return this.each(function () {
XhmikosR's avatar
XhmikosR committed
3049
      var data = Data.getData(this, DATA_KEY$5);
XhmikosR's avatar
Dist.  
XhmikosR committed
3050

XhmikosR's avatar
XhmikosR committed
3051
      var _config = _extends({}, Default$3, Manipulator.getDataAttributes(this), typeof config === 'object' && config ? config : {});
XhmikosR's avatar
Dist.  
XhmikosR committed
3052
3053
3054
3055
3056
3057
3058

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

      if (typeof config === 'string') {
        if (typeof data[config] === 'undefined') {
XhmikosR's avatar
XhmikosR committed
3059
          throw new TypeError("No method named \"" + config + "\"");
XhmikosR's avatar
Dist.  
XhmikosR committed
3060
3061
3062
3063
3064
3065
3066
        }

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

XhmikosR's avatar
XhmikosR committed
3069
  Modal.getInstance = function getInstance(element) {
XhmikosR's avatar
Dist.  
XhmikosR committed
3070
    return Data.getData(element, DATA_KEY$5);
XhmikosR's avatar
XhmikosR committed
3071
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
3072

XhmikosR's avatar
XhmikosR committed
3073
3074
3075
3076
3077
3078
3079
3080
3081
3082
3083
3084
3085
3086
  _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
3087
3088
3089
3090
3091
3092
3093
/**
 * ------------------------------------------------------------------------
 * Data Api implementation
 * ------------------------------------------------------------------------
 */


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

XhmikosR's avatar
XhmikosR committed
3097
  var target = getElementFromSelector(this);
XhmikosR's avatar
Dist.  
XhmikosR committed
3098
3099
3100
3101
3102

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

XhmikosR's avatar
XhmikosR committed
3103
  EventHandler.one(target, EVENT_SHOW$2, function (showEvent) {
XhmikosR's avatar
Dist.  
XhmikosR committed
3104
3105
3106
3107
3108
    if (showEvent.defaultPrevented) {
      // only register focus restorer if modal will actually get shown
      return;
    }

XhmikosR's avatar
XhmikosR committed
3109
    EventHandler.one(target, EVENT_HIDDEN$2, function () {
XhmikosR's avatar
XhmikosR committed
3110
3111
      if (isVisible(_this11)) {
        _this11.focus();
XhmikosR's avatar
Dist.  
XhmikosR committed
3112
3113
3114
      }
    });
  });
XhmikosR's avatar
XhmikosR committed
3115
  var data = Data.getData(target, DATA_KEY$5);
XhmikosR's avatar
Dist.  
XhmikosR committed
3116
3117

  if (!data) {
XhmikosR's avatar
XhmikosR committed
3118
    var config = _extends({}, Manipulator.getDataAttributes(target), Manipulator.getDataAttributes(this));
3119

XhmikosR's avatar
Dist.  
XhmikosR committed
3120
3121
3122
3123
3124
3125
3126
3127
3128
    data = new Modal(target, config);
  }

  data.show(this);
});
/**
 * ------------------------------------------------------------------------
 * jQuery
 * ------------------------------------------------------------------------
XhmikosR's avatar
XhmikosR committed
3129
 * add .Modal to jQuery only if jQuery is present
XhmikosR's avatar
Dist.  
XhmikosR committed
3130
3131
 */

XhmikosR's avatar
XhmikosR committed
3132
3133
3134
onDOMContentLoaded(function () {
  var $ = getjQuery();
  /* istanbul ignore if */
3135

XhmikosR's avatar
XhmikosR committed
3136
3137
3138
3139
  if ($) {
    var JQUERY_NO_CONFLICT = $.fn[NAME$5];
    $.fn[NAME$5] = Modal.jQueryInterface;
    $.fn[NAME$5].Constructor = Modal;
XhmikosR's avatar
Dist.  
XhmikosR committed
3140

XhmikosR's avatar
XhmikosR committed
3141
3142
3143
3144
3145
3146
    $.fn[NAME$5].noConflict = function () {
      $.fn[NAME$5] = JQUERY_NO_CONFLICT;
      return Modal.jQueryInterface;
    };
  }
});
XhmikosR's avatar
Dist.  
XhmikosR committed
3147
3148
3149

/**
 * --------------------------------------------------------------------------
XhmikosR's avatar
XhmikosR committed
3150
 * Bootstrap (v5.0.0-alpha3): util/sanitizer.js
XhmikosR's avatar
XhmikosR committed
3151
 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
XhmikosR's avatar
Dist.  
XhmikosR committed
3152
3153
 * --------------------------------------------------------------------------
 */
XhmikosR's avatar
XhmikosR committed
3154
var uriAttrs = new Set(['background', 'cite', 'href', 'itemtype', 'longdesc', 'poster', 'src', 'xlink:href']);
XhmikosR's avatar
XhmikosR committed
3155
var ARIA_ATTRIBUTE_PATTERN = /^aria-[\w-]*$/i;
XhmikosR's avatar
Dist.  
XhmikosR committed
3156
3157
3158
3159
3160
3161
/**
 * 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
3162
var SAFE_URL_PATTERN = /^(?:(?:https?|mailto|ftp|tel|file):|[^#&/:?]*(?:[#/?]|$))/gi;
XhmikosR's avatar
Dist.  
XhmikosR committed
3163
3164
3165
3166
3167
3168
/**
 * 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
3169
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
3170

XhmikosR's avatar
XhmikosR committed
3171
3172
var allowedAttribute = function allowedAttribute(attr, allowedAttributeList) {
  var attrName = attr.nodeName.toLowerCase();
XhmikosR's avatar
Dist.  
XhmikosR committed
3173

XhmikosR's avatar
XhmikosR committed
3174
3175
  if (allowedAttributeList.includes(attrName)) {
    if (uriAttrs.has(attrName)) {
Mark Otto's avatar
Mark Otto committed
3176
      return Boolean(attr.nodeValue.match(SAFE_URL_PATTERN) || attr.nodeValue.match(DATA_URL_PATTERN));
XhmikosR's avatar
Dist.  
XhmikosR committed
3177
3178
3179
3180
3181
    }

    return true;
  }

XhmikosR's avatar
XhmikosR committed
3182
3183
3184
  var regExp = allowedAttributeList.filter(function (attrRegex) {
    return attrRegex instanceof RegExp;
  }); // Check if a regular expression validates the attribute.
XhmikosR's avatar
Dist.  
XhmikosR committed
3185

XhmikosR's avatar
XhmikosR committed
3186
  for (var i = 0, len = regExp.length; i < len; i++) {
Mark Otto's avatar
Mark Otto committed
3187
    if (attrName.match(regExp[i])) {
XhmikosR's avatar
Dist.  
XhmikosR committed
3188
3189
3190
3191
3192
3193
3194
      return true;
    }
  }

  return false;
};

XhmikosR's avatar
XhmikosR committed
3195
var DefaultAllowlist = {
XhmikosR's avatar
Dist.  
XhmikosR committed
3196
3197
3198
3199
3200
3201
3202
3203
3204
3205
3206
3207
3208
3209
3210
3211
3212
3213
  // 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
3214
  img: ['src', 'srcset', 'alt', 'title', 'width', 'height'],
XhmikosR's avatar
Dist.  
XhmikosR committed
3215
3216
3217
3218
3219
3220
3221
3222
3223
3224
3225
3226
3227
  li: [],
  ol: [],
  p: [],
  pre: [],
  s: [],
  small: [],
  span: [],
  sub: [],
  sup: [],
  strong: [],
  u: [],
  ul: []
};
XhmikosR's avatar
XhmikosR committed
3228
function sanitizeHtml(unsafeHtml, allowList, sanitizeFn) {
XhmikosR's avatar
XhmikosR committed
3229
3230
  var _ref;

XhmikosR's avatar
Dist.  
XhmikosR committed
3231
3232
3233
3234
3235
3236
3237
3238
  if (!unsafeHtml.length) {
    return unsafeHtml;
  }

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

XhmikosR's avatar
XhmikosR committed
3239
3240
  var domParser = new window.DOMParser();
  var createdDocument = domParser.parseFromString(unsafeHtml, 'text/html');
XhmikosR's avatar
XhmikosR committed
3241
  var allowlistKeys = Object.keys(allowList);
XhmikosR's avatar
XhmikosR committed
3242
3243

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

XhmikosR's avatar
XhmikosR committed
3245
  var _loop = function _loop(i, len) {
XhmikosR's avatar
XhmikosR committed
3246
3247
    var _ref2;

XhmikosR's avatar
XhmikosR committed
3248
3249
    var el = elements[i];
    var elName = el.nodeName.toLowerCase();
XhmikosR's avatar
Dist.  
XhmikosR committed
3250

XhmikosR's avatar
XhmikosR committed
3251
    if (!allowlistKeys.includes(elName)) {
XhmikosR's avatar
Dist.  
XhmikosR committed
3252
      el.parentNode.removeChild(el);
XhmikosR's avatar
XhmikosR committed
3253
      return "continue";
XhmikosR's avatar
Dist.  
XhmikosR committed
3254
3255
    }

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

XhmikosR's avatar
XhmikosR committed
3258
    var allowedAttributes = [].concat(allowList['*'] || [], allowList[elName] || []);
XhmikosR's avatar
XhmikosR committed
3259
    attributeList.forEach(function (attr) {
XhmikosR's avatar
XhmikosR committed
3260
      if (!allowedAttribute(attr, allowedAttributes)) {
XhmikosR's avatar
Dist.  
XhmikosR committed
3261
3262
3263
        el.removeAttribute(attr.nodeName);
      }
    });
XhmikosR's avatar
XhmikosR committed
3264
3265
3266
  };

  for (var i = 0, len = elements.length; i < len; i++) {
3267
    var _ret = _loop(i);
XhmikosR's avatar
XhmikosR committed
3268
3269

    if (_ret === "continue") continue;
XhmikosR's avatar
Dist.  
XhmikosR committed
3270
3271
3272
3273
3274
3275
3276
3277
3278
3279
3280
  }

  return createdDocument.body.innerHTML;
}

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

XhmikosR's avatar
XhmikosR committed
3281
var NAME$6 = 'tooltip';
XhmikosR's avatar
XhmikosR committed
3282
var VERSION$6 = '5.0.0-alpha3';
XhmikosR's avatar
XhmikosR committed
3283
3284
3285
3286
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');
XhmikosR's avatar
XhmikosR committed
3287
var DISALLOWED_ATTRIBUTES = new Set(['sanitize', 'allowList', 'sanitizeFn']);
XhmikosR's avatar
XhmikosR committed
3288
var DefaultType$4 = {
XhmikosR's avatar
Dist.  
XhmikosR committed
3289
3290
3291
3292
3293
3294
3295
3296
3297
3298
3299
3300
3301
3302
  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
3303
  allowList: 'object',
XhmikosR's avatar
XhmikosR committed
3304
  popperConfig: '(null|object)'
XhmikosR's avatar
Dist.  
XhmikosR committed
3305
};
XhmikosR's avatar
XhmikosR committed
3306
var AttachmentMap = {
XhmikosR's avatar
Dist.  
XhmikosR committed
3307
3308
3309
3310
3311
3312
  AUTO: 'auto',
  TOP: 'top',
  RIGHT: 'right',
  BOTTOM: 'bottom',
  LEFT: 'left'
};
XhmikosR's avatar
XhmikosR committed
3313
var Default$4 = {
XhmikosR's avatar
Dist.  
XhmikosR committed
3314
3315
3316
3317
3318
3319
3320
3321
3322
3323
3324
3325
3326
3327
  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
3328
  allowList: DefaultAllowlist,
XhmikosR's avatar
XhmikosR committed
3329
  popperConfig: null
XhmikosR's avatar
Dist.  
XhmikosR committed
3330
};
XhmikosR's avatar
XhmikosR committed
3331
var Event$1 = {
XhmikosR's avatar
XhmikosR committed
3332
3333
3334
3335
3336
3337
3338
3339
3340
3341
  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
3342
};
XhmikosR's avatar
XhmikosR committed
3343
3344
3345
3346
3347
3348
3349
3350
3351
3352
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
3353
3354
3355
3356
3357
/**
 * ------------------------------------------------------------------------
 * Class Definition
 * ------------------------------------------------------------------------
 */
XhmikosR's avatar
Dist.  
XhmikosR committed
3358

XhmikosR's avatar
XhmikosR committed
3359
var Tooltip = /*#__PURE__*/function () {
XhmikosR's avatar
XhmikosR committed
3360
  function Tooltip(element, config) {
XhmikosR's avatar
Dist.  
XhmikosR committed
3361
    if (typeof Popper === 'undefined') {
XhmikosR's avatar
XhmikosR committed
3362
      throw new TypeError('Bootstrap\'s tooltips require Popper (https://popper.js.org)');
XhmikosR's avatar
Dist.  
XhmikosR committed
3363
3364
3365
3366
3367
3368
3369
3370
3371
3372
3373
3374
3375
3376
3377
3378
3379
3380
3381
    } // 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
3382
  var _proto = Tooltip.prototype;
XhmikosR's avatar
Dist.  
XhmikosR committed
3383

XhmikosR's avatar
XhmikosR committed
3384
3385
  // Public
  _proto.enable = function enable() {
XhmikosR's avatar
Dist.  
XhmikosR committed
3386
    this._isEnabled = true;
XhmikosR's avatar
XhmikosR committed
3387
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
3388

XhmikosR's avatar
XhmikosR committed
3389
  _proto.disable = function disable() {
XhmikosR's avatar
Dist.  
XhmikosR committed
3390
    this._isEnabled = false;
XhmikosR's avatar
XhmikosR committed
3391
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
3392

XhmikosR's avatar
XhmikosR committed
3393
  _proto.toggleEnabled = function toggleEnabled() {
XhmikosR's avatar
Dist.  
XhmikosR committed
3394
    this._isEnabled = !this._isEnabled;
XhmikosR's avatar
XhmikosR committed
3395
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
3396

XhmikosR's avatar
XhmikosR committed
3397
  _proto.toggle = function toggle(event) {
XhmikosR's avatar
Dist.  
XhmikosR committed
3398
3399
3400
3401
3402
    if (!this._isEnabled) {
      return;
    }

    if (event) {
XhmikosR's avatar
XhmikosR committed
3403
      var dataKey = this.constructor.DATA_KEY;
XhmikosR's avatar
XhmikosR committed
3404
      var context = Data.getData(event.delegateTarget, dataKey);
XhmikosR's avatar
Dist.  
XhmikosR committed
3405
3406

      if (!context) {
XhmikosR's avatar
XhmikosR committed
3407
3408
        context = new this.constructor(event.delegateTarget, this._getDelegateConfig());
        Data.setData(event.delegateTarget, dataKey, context);
XhmikosR's avatar
Dist.  
XhmikosR committed
3409
3410
3411
3412
3413
3414
3415
3416
3417
3418
      }

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

      if (context._isWithActiveTrigger()) {
        context._enter(null, context);
      } else {
        context._leave(null, context);
      }
    } else {
XhmikosR's avatar
XhmikosR committed
3419
      if (this.getTipElement().classList.contains(CLASS_NAME_SHOW$3)) {
XhmikosR's avatar
Dist.  
XhmikosR committed
3420
3421
3422
3423
3424
3425
3426
        this._leave(null, this);

        return;
      }

      this._enter(null, this);
    }
XhmikosR's avatar
XhmikosR committed
3427
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
3428

XhmikosR's avatar
XhmikosR committed
3429
  _proto.dispose = function dispose() {
XhmikosR's avatar
Dist.  
XhmikosR committed
3430
3431
3432
    clearTimeout(this._timeout);
    Data.removeData(this.element, this.constructor.DATA_KEY);
    EventHandler.off(this.element, this.constructor.EVENT_KEY);
XhmikosR's avatar
XhmikosR committed
3433
    EventHandler.off(this.element.closest("." + CLASS_NAME_MODAL), 'hide.bs.modal', this._hideModalHandler);
XhmikosR's avatar
Dist.  
XhmikosR committed
3434
3435
3436
3437
3438
3439
3440
3441
3442
3443

    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
3444
    if (this._popper) {
XhmikosR's avatar
Dist.  
XhmikosR committed
3445
3446
3447
3448
3449
3450
3451
      this._popper.destroy();
    }

    this._popper = null;
    this.element = null;
    this.config = null;
    this.tip = null;
XhmikosR's avatar
XhmikosR committed
3452
3453
3454
3455
  };

  _proto.show = function show() {
    var _this = this;
XhmikosR's avatar
Dist.  
XhmikosR committed
3456
3457
3458
3459
3460
3461

    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
3462
3463
3464
      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
3465
3466
3467
3468
3469

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

XhmikosR's avatar
XhmikosR committed
3470
3471
      var tip = this.getTipElement();
      var tipId = getUID(this.constructor.NAME);
XhmikosR's avatar
Dist.  
XhmikosR committed
3472
3473
3474
3475
3476
      tip.setAttribute('id', tipId);
      this.element.setAttribute('aria-describedby', tipId);
      this.setContent();

      if (this.config.animation) {
XhmikosR's avatar
XhmikosR committed
3477
        tip.classList.add(CLASS_NAME_FADE$1);
XhmikosR's avatar
Dist.  
XhmikosR committed
3478
3479
      }

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

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

3484
      this._addAttachmentClass(attachment);
XhmikosR's avatar
Dist.  
XhmikosR committed
3485

XhmikosR's avatar
XhmikosR committed
3486
      var container = this._getContainer();
XhmikosR's avatar
Dist.  
XhmikosR committed
3487
3488
3489
3490
3491
3492
3493
3494

      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
3495
      this._popper = new Popper(this.element, tip, this._getPopperConfig(attachment));
XhmikosR's avatar
XhmikosR committed
3496
      tip.classList.add(CLASS_NAME_SHOW$3); // If this is a touch-enabled device we add extra
XhmikosR's avatar
Dist.  
XhmikosR committed
3497
3498
3499
3500
3501
      // 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
3502
3503
3504
        var _ref;

        (_ref = []).concat.apply(_ref, document.body.children).forEach(function (element) {
XhmikosR's avatar
Dist.  
XhmikosR committed
3505
3506
3507
3508
          EventHandler.on(element, 'mouseover', noop());
        });
      }

XhmikosR's avatar
XhmikosR committed
3509
3510
3511
      var complete = function complete() {
        if (_this.config.animation) {
          _this._fixTransition();
XhmikosR's avatar
Dist.  
XhmikosR committed
3512
3513
        }

XhmikosR's avatar
XhmikosR committed
3514
3515
3516
        var prevHoverState = _this._hoverState;
        _this._hoverState = null;
        EventHandler.trigger(_this.element, _this.constructor.Event.SHOWN);
XhmikosR's avatar
Dist.  
XhmikosR committed
3517

XhmikosR's avatar
XhmikosR committed
3518
        if (prevHoverState === HOVER_STATE_OUT) {
XhmikosR's avatar
XhmikosR committed
3519
          _this._leave(null, _this);
XhmikosR's avatar
Dist.  
XhmikosR committed
3520
3521
3522
        }
      };

XhmikosR's avatar
XhmikosR committed
3523
      if (this.tip.classList.contains(CLASS_NAME_FADE$1)) {
XhmikosR's avatar
XhmikosR committed
3524
        var transitionDuration = getTransitionDurationFromElement(this.tip);
XhmikosR's avatar
Dist.  
XhmikosR committed
3525
3526
3527
3528
3529
3530
        EventHandler.one(this.tip, TRANSITION_END, complete);
        emulateTransitionEnd(this.tip, transitionDuration);
      } else {
        complete();
      }
    }
XhmikosR's avatar
XhmikosR committed
3531
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
3532

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

XhmikosR's avatar
XhmikosR committed
3536
3537
3538
3539
    if (!this._popper) {
      return;
    }

XhmikosR's avatar
XhmikosR committed
3540
3541
3542
    var tip = this.getTipElement();

    var complete = function complete() {
XhmikosR's avatar
XhmikosR committed
3543
      if (_this2._hoverState !== HOVER_STATE_SHOW && tip.parentNode) {
XhmikosR's avatar
Dist.  
XhmikosR committed
3544
3545
3546
        tip.parentNode.removeChild(tip);
      }

XhmikosR's avatar
XhmikosR committed
3547
3548
3549
      _this2._cleanTipClass();

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

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

3553
      _this2._popper.destroy();
XhmikosR's avatar
Dist.  
XhmikosR committed
3554
3555
    };

XhmikosR's avatar
XhmikosR committed
3556
    var hideEvent = EventHandler.trigger(this.element, this.constructor.Event.HIDE);
XhmikosR's avatar
Dist.  
XhmikosR committed
3557
3558
3559
3560
3561

    if (hideEvent.defaultPrevented) {
      return;
    }

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

    if ('ontouchstart' in document.documentElement) {
XhmikosR's avatar
XhmikosR committed
3566
3567
3568
      var _ref2;

      (_ref2 = []).concat.apply(_ref2, document.body.children).forEach(function (element) {
XhmikosR's avatar
XhmikosR committed
3569
3570
        return EventHandler.off(element, 'mouseover', noop);
      });
XhmikosR's avatar
Dist.  
XhmikosR committed
3571
3572
    }

XhmikosR's avatar
XhmikosR committed
3573
3574
3575
    this._activeTrigger[TRIGGER_CLICK] = false;
    this._activeTrigger[TRIGGER_FOCUS] = false;
    this._activeTrigger[TRIGGER_HOVER] = false;
XhmikosR's avatar
Dist.  
XhmikosR committed
3576

XhmikosR's avatar
XhmikosR committed
3577
    if (this.tip.classList.contains(CLASS_NAME_FADE$1)) {
XhmikosR's avatar
XhmikosR committed
3578
      var transitionDuration = getTransitionDurationFromElement(tip);
XhmikosR's avatar
Dist.  
XhmikosR committed
3579
3580
3581
3582
3583
3584
3585
      EventHandler.one(tip, TRANSITION_END, complete);
      emulateTransitionEnd(tip, transitionDuration);
    } else {
      complete();
    }

    this._hoverState = '';
XhmikosR's avatar
XhmikosR committed
3586
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
3587

XhmikosR's avatar
XhmikosR committed
3588
  _proto.update = function update() {
XhmikosR's avatar
Dist.  
XhmikosR committed
3589
3590
3591
3592
    if (this._popper !== null) {
      this._popper.scheduleUpdate();
    }
  } // Protected
XhmikosR's avatar
XhmikosR committed
3593
  ;
XhmikosR's avatar
Dist.  
XhmikosR committed
3594

XhmikosR's avatar
XhmikosR committed
3595
  _proto.isWithContent = function isWithContent() {
XhmikosR's avatar
Dist.  
XhmikosR committed
3596
    return Boolean(this.getTitle());
XhmikosR's avatar
XhmikosR committed
3597
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
3598

XhmikosR's avatar
XhmikosR committed
3599
  _proto.getTipElement = function getTipElement() {
XhmikosR's avatar
Dist.  
XhmikosR committed
3600
3601
3602
3603
    if (this.tip) {
      return this.tip;
    }

XhmikosR's avatar
XhmikosR committed
3604
    var element = document.createElement('div');
XhmikosR's avatar
Dist.  
XhmikosR committed
3605
3606
3607
    element.innerHTML = this.config.template;
    this.tip = element.children[0];
    return this.tip;
XhmikosR's avatar
XhmikosR committed
3608
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
3609

XhmikosR's avatar
XhmikosR committed
3610
3611
  _proto.setContent = function setContent() {
    var tip = this.getTipElement();
XhmikosR's avatar
XhmikosR committed
3612
    this.setElementContent(SelectorEngine.findOne(SELECTOR_TOOLTIP_INNER, tip), this.getTitle());
XhmikosR's avatar
XhmikosR committed
3613
    tip.classList.remove(CLASS_NAME_FADE$1, CLASS_NAME_SHOW$3);
XhmikosR's avatar
XhmikosR committed
3614
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
3615

XhmikosR's avatar
XhmikosR committed
3616
  _proto.setElementContent = function setElementContent(element, content) {
XhmikosR's avatar
Dist.  
XhmikosR committed
3617
3618
3619
3620
    if (element === null) {
      return;
    }

3621
    if (typeof content === 'object' && isElement(content)) {
XhmikosR's avatar
Dist.  
XhmikosR committed
3622
3623
3624
3625
3626
3627
3628
3629
3630
3631
3632
      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
3633
        element.textContent = content.textContent;
XhmikosR's avatar
Dist.  
XhmikosR committed
3634
3635
3636
3637
3638
3639
3640
      }

      return;
    }

    if (this.config.html) {
      if (this.config.sanitize) {
XhmikosR's avatar
XhmikosR committed
3641
        content = sanitizeHtml(content, this.config.allowList, this.config.sanitizeFn);
XhmikosR's avatar
Dist.  
XhmikosR committed
3642
3643
3644
3645
      }

      element.innerHTML = content;
    } else {
XhmikosR's avatar
XhmikosR committed
3646
      element.textContent = content;
XhmikosR's avatar
Dist.  
XhmikosR committed
3647
    }
XhmikosR's avatar
XhmikosR committed
3648
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
3649

XhmikosR's avatar
XhmikosR committed
3650
  _proto.getTitle = function getTitle() {
XhmikosR's avatar
XhmikosR committed
3651
    var title = this.element.getAttribute('data-bs-original-title');
XhmikosR's avatar
Dist.  
XhmikosR committed
3652
3653
3654
3655
3656
3657
3658

    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
3659
  ;
XhmikosR's avatar
Dist.  
XhmikosR committed
3660

XhmikosR's avatar
XhmikosR committed
3661
3662
3663
3664
3665
3666
3667
3668
3669
3670
3671
3672
3673
3674
3675
3676
3677
3678
3679
3680
3681
3682
3683
3684
3685
3686
  _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
3687
    return _extends({}, defaultBsConfig, this.config.popperConfig);
XhmikosR's avatar
XhmikosR committed
3688
3689
  };

3690
3691
3692
3693
  _proto._addAttachmentClass = function _addAttachmentClass(attachment) {
    this.getTipElement().classList.add(CLASS_PREFIX + "-" + attachment);
  };

XhmikosR's avatar
XhmikosR committed
3694
  _proto._getOffset = function _getOffset() {
XhmikosR's avatar
XhmikosR committed
3695
    var _this4 = this;
XhmikosR's avatar
Dist.  
XhmikosR committed
3696

XhmikosR's avatar
XhmikosR committed
3697
    var offset = {};
XhmikosR's avatar
Dist.  
XhmikosR committed
3698
3699

    if (typeof this.config.offset === 'function') {
XhmikosR's avatar
XhmikosR committed
3700
      offset.fn = function (data) {
XhmikosR's avatar
XhmikosR committed
3701
        data.offsets = _extends({}, data.offsets, _this4.config.offset(data.offsets, _this4.element) || {});
XhmikosR's avatar
Dist.  
XhmikosR committed
3702
3703
3704
3705
3706
3707
3708
        return data;
      };
    } else {
      offset.offset = this.config.offset;
    }

    return offset;
XhmikosR's avatar
XhmikosR committed
3709
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
3710

XhmikosR's avatar
XhmikosR committed
3711
  _proto._getContainer = function _getContainer() {
XhmikosR's avatar
Dist.  
XhmikosR committed
3712
3713
3714
3715
3716
3717
3718
3719
3720
    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
3721
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
3722

XhmikosR's avatar
XhmikosR committed
3723
  _proto._getAttachment = function _getAttachment(placement) {
XhmikosR's avatar
XhmikosR committed
3724
    return AttachmentMap[placement.toUpperCase()];
XhmikosR's avatar
XhmikosR committed
3725
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
3726

XhmikosR's avatar
XhmikosR committed
3727
  _proto._setListeners = function _setListeners() {
XhmikosR's avatar
XhmikosR committed
3728
    var _this5 = this;
XhmikosR's avatar
XhmikosR committed
3729
3730
3731

    var triggers = this.config.trigger.split(' ');
    triggers.forEach(function (trigger) {
XhmikosR's avatar
Dist.  
XhmikosR committed
3732
      if (trigger === 'click') {
XhmikosR's avatar
XhmikosR committed
3733
3734
        EventHandler.on(_this5.element, _this5.constructor.Event.CLICK, _this5.config.selector, function (event) {
          return _this5.toggle(event);
XhmikosR's avatar
XhmikosR committed
3735
        });
XhmikosR's avatar
XhmikosR committed
3736
3737
3738
      } 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
3739
3740
        EventHandler.on(_this5.element, eventIn, _this5.config.selector, function (event) {
          return _this5._enter(event);
XhmikosR's avatar
XhmikosR committed
3741
        });
XhmikosR's avatar
XhmikosR committed
3742
3743
        EventHandler.on(_this5.element, eventOut, _this5.config.selector, function (event) {
          return _this5._leave(event);
XhmikosR's avatar
XhmikosR committed
3744
        });
XhmikosR's avatar
Dist.  
XhmikosR committed
3745
3746
      }
    });
Mark Otto's avatar
dist v5    
Mark Otto committed
3747
3748

    this._hideModalHandler = function () {
XhmikosR's avatar
XhmikosR committed
3749
3750
      if (_this5.element) {
        _this5.hide();
XhmikosR's avatar
Dist.  
XhmikosR committed
3751
      }
Mark Otto's avatar
dist v5    
Mark Otto committed
3752
3753
    };

XhmikosR's avatar
XhmikosR committed
3754
    EventHandler.on(this.element.closest("." + CLASS_NAME_MODAL), 'hide.bs.modal', this._hideModalHandler);
XhmikosR's avatar
Dist.  
XhmikosR committed
3755
3756

    if (this.config.selector) {
XhmikosR's avatar
XhmikosR committed
3757
      this.config = _extends({}, this.config, {
XhmikosR's avatar
Dist.  
XhmikosR committed
3758
3759
3760
3761
3762
3763
        trigger: 'manual',
        selector: ''
      });
    } else {
      this._fixTitle();
    }
XhmikosR's avatar
XhmikosR committed
3764
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
3765

XhmikosR's avatar
XhmikosR committed
3766
  _proto._fixTitle = function _fixTitle() {
XhmikosR's avatar
XhmikosR committed
3767
3768
    var title = this.element.getAttribute('title');
    var originalTitleType = typeof this.element.getAttribute('data-bs-original-title');
XhmikosR's avatar
Dist.  
XhmikosR committed
3769

XhmikosR's avatar
XhmikosR committed
3770
3771
    if (title || originalTitleType !== 'string') {
      this.element.setAttribute('data-bs-original-title', title || '');
XhmikosR's avatar
Dist.  
XhmikosR committed
3772
3773
      this.element.setAttribute('title', '');
    }
XhmikosR's avatar
XhmikosR committed
3774
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
3775

XhmikosR's avatar
XhmikosR committed
3776
3777
  _proto._enter = function _enter(event, context) {
    var dataKey = this.constructor.DATA_KEY;
XhmikosR's avatar
XhmikosR committed
3778
    context = context || Data.getData(event.delegateTarget, dataKey);
XhmikosR's avatar
Dist.  
XhmikosR committed
3779
3780

    if (!context) {
XhmikosR's avatar
XhmikosR committed
3781
3782
      context = new this.constructor(event.delegateTarget, this._getDelegateConfig());
      Data.setData(event.delegateTarget, dataKey, context);
XhmikosR's avatar
Dist.  
XhmikosR committed
3783
3784
3785
    }

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

XhmikosR's avatar
XhmikosR committed
3789
3790
    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
3791
3792
3793
3794
      return;
    }

    clearTimeout(context._timeout);
XhmikosR's avatar
XhmikosR committed
3795
    context._hoverState = HOVER_STATE_SHOW;
XhmikosR's avatar
Dist.  
XhmikosR committed
3796
3797
3798
3799
3800
3801

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

XhmikosR's avatar
XhmikosR committed
3802
    context._timeout = setTimeout(function () {
XhmikosR's avatar
XhmikosR committed
3803
      if (context._hoverState === HOVER_STATE_SHOW) {
XhmikosR's avatar
Dist.  
XhmikosR committed
3804
3805
3806
        context.show();
      }
    }, context.config.delay.show);
XhmikosR's avatar
XhmikosR committed
3807
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
3808

XhmikosR's avatar
XhmikosR committed
3809
3810
  _proto._leave = function _leave(event, context) {
    var dataKey = this.constructor.DATA_KEY;
XhmikosR's avatar
XhmikosR committed
3811
    context = context || Data.getData(event.delegateTarget, dataKey);
XhmikosR's avatar
Dist.  
XhmikosR committed
3812
3813

    if (!context) {
XhmikosR's avatar
XhmikosR committed
3814
3815
      context = new this.constructor(event.delegateTarget, this._getDelegateConfig());
      Data.setData(event.delegateTarget, dataKey, context);
XhmikosR's avatar
Dist.  
XhmikosR committed
3816
3817
3818
    }

    if (event) {
XhmikosR's avatar
XhmikosR committed
3819
      context._activeTrigger[event.type === 'focusout' ? TRIGGER_FOCUS : TRIGGER_HOVER] = false;
XhmikosR's avatar
Dist.  
XhmikosR committed
3820
3821
3822
3823
3824
3825
3826
    }

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

    clearTimeout(context._timeout);
XhmikosR's avatar
XhmikosR committed
3827
    context._hoverState = HOVER_STATE_OUT;
XhmikosR's avatar
Dist.  
XhmikosR committed
3828
3829
3830
3831
3832
3833

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

XhmikosR's avatar
XhmikosR committed
3834
    context._timeout = setTimeout(function () {
XhmikosR's avatar
XhmikosR committed
3835
      if (context._hoverState === HOVER_STATE_OUT) {
XhmikosR's avatar
Dist.  
XhmikosR committed
3836
3837
3838
        context.hide();
      }
    }, context.config.delay.hide);
XhmikosR's avatar
XhmikosR committed
3839
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
3840

XhmikosR's avatar
XhmikosR committed
3841
3842
  _proto._isWithActiveTrigger = function _isWithActiveTrigger() {
    for (var trigger in this._activeTrigger) {
XhmikosR's avatar
Dist.  
XhmikosR committed
3843
3844
3845
3846
3847
3848
      if (this._activeTrigger[trigger]) {
        return true;
      }
    }

    return false;
XhmikosR's avatar
XhmikosR committed
3849
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
3850

XhmikosR's avatar
XhmikosR committed
3851
3852
3853
  _proto._getConfig = function _getConfig(config) {
    var dataAttributes = Manipulator.getDataAttributes(this.element);
    Object.keys(dataAttributes).forEach(function (dataAttr) {
XhmikosR's avatar
XhmikosR committed
3854
      if (DISALLOWED_ATTRIBUTES.has(dataAttr)) {
XhmikosR's avatar
Dist.  
XhmikosR committed
3855
3856
3857
3858
3859
3860
3861
3862
        delete dataAttributes[dataAttr];
      }
    });

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

XhmikosR's avatar
XhmikosR committed
3863
    config = _extends({}, this.constructor.Default, dataAttributes, typeof config === 'object' && config ? config : {});
XhmikosR's avatar
Dist.  
XhmikosR committed
3864
3865
3866
3867
3868
3869
3870
3871
3872
3873
3874
3875
3876
3877
3878
3879
3880
3881
3882

    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) {
XhmikosR's avatar
XhmikosR committed
3883
      config.template = sanitizeHtml(config.template, config.allowList, config.sanitizeFn);
XhmikosR's avatar
Dist.  
XhmikosR committed
3884
3885
3886
    }

    return config;
XhmikosR's avatar
XhmikosR committed
3887
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
3888

XhmikosR's avatar
XhmikosR committed
3889
3890
  _proto._getDelegateConfig = function _getDelegateConfig() {
    var config = {};
XhmikosR's avatar
Dist.  
XhmikosR committed
3891
3892

    if (this.config) {
XhmikosR's avatar
XhmikosR committed
3893
      for (var key in this.config) {
XhmikosR's avatar
Dist.  
XhmikosR committed
3894
3895
3896
3897
3898
3899
3900
        if (this.constructor.Default[key] !== this.config[key]) {
          config[key] = this.config[key];
        }
      }
    }

    return config;
XhmikosR's avatar
XhmikosR committed
3901
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
3902

XhmikosR's avatar
XhmikosR committed
3903
3904
3905
  _proto._cleanTipClass = function _cleanTipClass() {
    var tip = this.getTipElement();
    var tabClass = tip.getAttribute('class').match(BSCLS_PREFIX_REGEX);
XhmikosR's avatar
Dist.  
XhmikosR committed
3906

XhmikosR's avatar
XhmikosR committed
3907
    if (tabClass !== null && tabClass.length > 0) {
XhmikosR's avatar
XhmikosR committed
3908
3909
3910
3911
3912
      tabClass.map(function (token) {
        return token.trim();
      }).forEach(function (tClass) {
        return tip.classList.remove(tClass);
      });
XhmikosR's avatar
Dist.  
XhmikosR committed
3913
    }
XhmikosR's avatar
XhmikosR committed
3914
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
3915

XhmikosR's avatar
XhmikosR committed
3916
  _proto._handlePopperPlacementChange = function _handlePopperPlacementChange(popperData) {
XhmikosR's avatar
XhmikosR committed
3917
    this.tip = popperData.instance.popper;
XhmikosR's avatar
Dist.  
XhmikosR committed
3918
3919
3920

    this._cleanTipClass();

3921
    this._addAttachmentClass(this._getAttachment(popperData.placement));
XhmikosR's avatar
XhmikosR committed
3922
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
3923

XhmikosR's avatar
XhmikosR committed
3924
3925
3926
  _proto._fixTransition = function _fixTransition() {
    var tip = this.getTipElement();
    var initConfigAnimation = this.config.animation;
XhmikosR's avatar
Dist.  
XhmikosR committed
3927
3928
3929
3930
3931

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

XhmikosR's avatar
XhmikosR committed
3932
    tip.classList.remove(CLASS_NAME_FADE$1);
XhmikosR's avatar
Dist.  
XhmikosR committed
3933
3934
3935
3936
3937
    this.config.animation = false;
    this.hide();
    this.show();
    this.config.animation = initConfigAnimation;
  } // Static
XhmikosR's avatar
XhmikosR committed
3938
  ;
XhmikosR's avatar
Dist.  
XhmikosR committed
3939

XhmikosR's avatar
XhmikosR committed
3940
  Tooltip.jQueryInterface = function jQueryInterface(config) {
XhmikosR's avatar
Dist.  
XhmikosR committed
3941
    return this.each(function () {
XhmikosR's avatar
XhmikosR committed
3942
      var data = Data.getData(this, DATA_KEY$6);
XhmikosR's avatar
Dist.  
XhmikosR committed
3943

XhmikosR's avatar
XhmikosR committed
3944
      var _config = typeof config === 'object' && config;
XhmikosR's avatar
Dist.  
XhmikosR committed
3945
3946
3947
3948
3949
3950
3951
3952
3953
3954
3955

      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
3956
          throw new TypeError("No method named \"" + config + "\"");
XhmikosR's avatar
Dist.  
XhmikosR committed
3957
3958
3959
3960
3961
        }

        data[config]();
      }
    });
XhmikosR's avatar
XhmikosR committed
3962
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
3963

XhmikosR's avatar
XhmikosR committed
3964
  Tooltip.getInstance = function getInstance(element) {
XhmikosR's avatar
Dist.  
XhmikosR committed
3965
    return Data.getData(element, DATA_KEY$6);
XhmikosR's avatar
XhmikosR committed
3966
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
3967

XhmikosR's avatar
XhmikosR committed
3968
3969
3970
3971
3972
3973
3974
3975
3976
3977
3978
3979
3980
3981
3982
3983
3984
3985
3986
3987
3988
3989
3990
  _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
3991
      return Event$1;
XhmikosR's avatar
XhmikosR committed
3992
3993
3994
3995
3996
3997
3998
3999
4000
4001
4002
4003
4004
4005
4006
    }
  }, {
    key: "EVENT_KEY",
    get: function get() {
      return EVENT_KEY$6;
    }
  }, {
    key: "DefaultType",
    get: function get() {
      return DefaultType$4;
    }
  }]);

  return Tooltip;
}();
XhmikosR's avatar
Dist.  
XhmikosR committed
4007
4008
4009
4010
/**
 * ------------------------------------------------------------------------
 * jQuery
 * ------------------------------------------------------------------------
XhmikosR's avatar
XhmikosR committed
4011
 * add .Tooltip to jQuery only if jQuery is present
XhmikosR's avatar
Dist.  
XhmikosR committed
4012
4013
 */

4014

XhmikosR's avatar
XhmikosR committed
4015
4016
4017
onDOMContentLoaded(function () {
  var $ = getjQuery();
  /* istanbul ignore if */
XhmikosR's avatar
Dist.  
XhmikosR committed
4018

XhmikosR's avatar
XhmikosR committed
4019
4020
4021
4022
4023
4024
4025
4026
4027
4028
4029
  if ($) {
    var JQUERY_NO_CONFLICT = $.fn[NAME$6];
    $.fn[NAME$6] = Tooltip.jQueryInterface;
    $.fn[NAME$6].Constructor = Tooltip;

    $.fn[NAME$6].noConflict = function () {
      $.fn[NAME$6] = JQUERY_NO_CONFLICT;
      return Tooltip.jQueryInterface;
    };
  }
});
XhmikosR's avatar
Dist.  
XhmikosR committed
4030
4031
4032
4033
4034
4035
4036

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

XhmikosR's avatar
XhmikosR committed
4037
var NAME$7 = 'popover';
XhmikosR's avatar
XhmikosR committed
4038
var VERSION$7 = '5.0.0-alpha3';
XhmikosR's avatar
XhmikosR committed
4039
4040
4041
4042
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
4043

XhmikosR's avatar
XhmikosR committed
4044
var Default$5 = _extends({}, Tooltip.Default, {
XhmikosR's avatar
Dist.  
XhmikosR committed
4045
4046
4047
4048
4049
4050
  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
4051
var DefaultType$5 = _extends({}, Tooltip.DefaultType, {
XhmikosR's avatar
Dist.  
XhmikosR committed
4052
4053
4054
  content: '(string|element|function)'
});

XhmikosR's avatar
XhmikosR committed
4055
var Event$2 = {
XhmikosR's avatar
XhmikosR committed
4056
4057
4058
4059
4060
4061
4062
4063
4064
4065
  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
4066
};
XhmikosR's avatar
XhmikosR committed
4067
4068
4069
4070
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
4071
4072
4073
4074
4075
/**
 * ------------------------------------------------------------------------
 * Class Definition
 * ------------------------------------------------------------------------
 */
XhmikosR's avatar
Dist.  
XhmikosR committed
4076

XhmikosR's avatar
XhmikosR committed
4077
var Popover = /*#__PURE__*/function (_Tooltip) {
XhmikosR's avatar
XhmikosR committed
4078
  _inheritsLoose(Popover, _Tooltip);
XhmikosR's avatar
Dist.  
XhmikosR committed
4079

XhmikosR's avatar
XhmikosR committed
4080
4081
  function Popover() {
    return _Tooltip.apply(this, arguments) || this;
XhmikosR's avatar
Dist.  
XhmikosR committed
4082
4083
  }

XhmikosR's avatar
XhmikosR committed
4084
  var _proto = Popover.prototype;
XhmikosR's avatar
Dist.  
XhmikosR committed
4085

XhmikosR's avatar
XhmikosR committed
4086
4087
  // Overrides
  _proto.isWithContent = function isWithContent() {
XhmikosR's avatar
Dist.  
XhmikosR committed
4088
    return this.getTitle() || this._getContent();
XhmikosR's avatar
XhmikosR committed
4089
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
4090

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

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

XhmikosR's avatar
XhmikosR committed
4096
    var content = this._getContent();
XhmikosR's avatar
Dist.  
XhmikosR committed
4097
4098
4099
4100
4101

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

XhmikosR's avatar
XhmikosR committed
4102
    this.setElementContent(SelectorEngine.findOne(SELECTOR_CONTENT, tip), content);
XhmikosR's avatar
XhmikosR committed
4103
    tip.classList.remove(CLASS_NAME_FADE$2, CLASS_NAME_SHOW$4);
XhmikosR's avatar
XhmikosR committed
4104
4105
  } // Private
  ;
XhmikosR's avatar
XhmikosR committed
4106
4107
4108

  _proto._addAttachmentClass = function _addAttachmentClass(attachment) {
    this.getTipElement().classList.add(CLASS_PREFIX$1 + "-" + attachment);
XhmikosR's avatar
XhmikosR committed
4109
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
4110

XhmikosR's avatar
XhmikosR committed
4111
  _proto._getContent = function _getContent() {
XhmikosR's avatar
XhmikosR committed
4112
    return this.element.getAttribute('data-bs-content') || this.config.content;
XhmikosR's avatar
XhmikosR committed
4113
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
4114

XhmikosR's avatar
XhmikosR committed
4115
4116
4117
  _proto._cleanTipClass = function _cleanTipClass() {
    var tip = this.getTipElement();
    var tabClass = tip.getAttribute('class').match(BSCLS_PREFIX_REGEX$1);
XhmikosR's avatar
Dist.  
XhmikosR committed
4118
4119

    if (tabClass !== null && tabClass.length > 0) {
XhmikosR's avatar
XhmikosR committed
4120
4121
4122
4123
4124
      tabClass.map(function (token) {
        return token.trim();
      }).forEach(function (tClass) {
        return tip.classList.remove(tClass);
      });
XhmikosR's avatar
Dist.  
XhmikosR committed
4125
4126
    }
  } // Static
XhmikosR's avatar
XhmikosR committed
4127
  ;
XhmikosR's avatar
Dist.  
XhmikosR committed
4128

XhmikosR's avatar
XhmikosR committed
4129
  Popover.jQueryInterface = function jQueryInterface(config) {
XhmikosR's avatar
Dist.  
XhmikosR committed
4130
    return this.each(function () {
XhmikosR's avatar
XhmikosR committed
4131
      var data = Data.getData(this, DATA_KEY$7);
XhmikosR's avatar
Dist.  
XhmikosR committed
4132

XhmikosR's avatar
XhmikosR committed
4133
      var _config = typeof config === 'object' ? config : null;
XhmikosR's avatar
Dist.  
XhmikosR committed
4134
4135
4136
4137
4138
4139
4140
4141
4142
4143
4144
4145

      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
4146
          throw new TypeError("No method named \"" + config + "\"");
XhmikosR's avatar
Dist.  
XhmikosR committed
4147
4148
4149
4150
4151
        }

        data[config]();
      }
    });
XhmikosR's avatar
XhmikosR committed
4152
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
4153

XhmikosR's avatar
XhmikosR committed
4154
  Popover.getInstance = function getInstance(element) {
XhmikosR's avatar
Dist.  
XhmikosR committed
4155
    return Data.getData(element, DATA_KEY$7);
XhmikosR's avatar
XhmikosR committed
4156
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
4157

XhmikosR's avatar
XhmikosR committed
4158
4159
4160
4161
4162
4163
4164
4165
4166
4167
4168
4169
4170
4171
4172
4173
4174
4175
4176
4177
4178
4179
4180
4181
  _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
4182
      return Event$2;
XhmikosR's avatar
XhmikosR committed
4183
4184
4185
4186
4187
4188
4189
4190
4191
4192
4193
4194
4195
4196
4197
    }
  }, {
    key: "EVENT_KEY",
    get: function get() {
      return EVENT_KEY$7;
    }
  }, {
    key: "DefaultType",
    get: function get() {
      return DefaultType$5;
    }
  }]);

  return Popover;
}(Tooltip);
XhmikosR's avatar
Dist.  
XhmikosR committed
4198
4199
4200
4201
/**
 * ------------------------------------------------------------------------
 * jQuery
 * ------------------------------------------------------------------------
XhmikosR's avatar
XhmikosR committed
4202
 * add .Popover to jQuery only if jQuery is present
XhmikosR's avatar
Dist.  
XhmikosR committed
4203
4204
 */

4205

XhmikosR's avatar
XhmikosR committed
4206
4207
4208
onDOMContentLoaded(function () {
  var $ = getjQuery();
  /* istanbul ignore if */
XhmikosR's avatar
Dist.  
XhmikosR committed
4209

XhmikosR's avatar
XhmikosR committed
4210
4211
4212
4213
4214
4215
4216
4217
4218
4219
4220
  if ($) {
    var JQUERY_NO_CONFLICT = $.fn[NAME$7];
    $.fn[NAME$7] = Popover.jQueryInterface;
    $.fn[NAME$7].Constructor = Popover;

    $.fn[NAME$7].noConflict = function () {
      $.fn[NAME$7] = JQUERY_NO_CONFLICT;
      return Popover.jQueryInterface;
    };
  }
});
XhmikosR's avatar
Dist.  
XhmikosR committed
4221
4222
4223
4224
4225
4226
4227

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

XhmikosR's avatar
XhmikosR committed
4228
var NAME$8 = 'scrollspy';
XhmikosR's avatar
XhmikosR committed
4229
var VERSION$8 = '5.0.0-alpha3';
XhmikosR's avatar
XhmikosR committed
4230
4231
4232
4233
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
4234
4235
4236
4237
  offset: 10,
  method: 'auto',
  target: ''
};
XhmikosR's avatar
XhmikosR committed
4238
var DefaultType$6 = {
XhmikosR's avatar
Dist.  
XhmikosR committed
4239
4240
4241
4242
  offset: 'number',
  method: 'string',
  target: '(string|element)'
};
XhmikosR's avatar
XhmikosR committed
4243
4244
4245
4246
4247
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';
XhmikosR's avatar
XhmikosR committed
4248
var SELECTOR_DATA_SPY = '[data-bs-spy="scroll"]';
XhmikosR's avatar
XhmikosR committed
4249
4250
4251
4252
4253
4254
4255
4256
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
4257
4258
4259
4260
4261
/**
 * ------------------------------------------------------------------------
 * Class Definition
 * ------------------------------------------------------------------------
 */
XhmikosR's avatar
Dist.  
XhmikosR committed
4262

XhmikosR's avatar
XhmikosR committed
4263
var ScrollSpy = /*#__PURE__*/function () {
XhmikosR's avatar
XhmikosR committed
4264
4265
4266
  function ScrollSpy(element, config) {
    var _this = this;

XhmikosR's avatar
Dist.  
XhmikosR committed
4267
4268
4269
    this._element = element;
    this._scrollElement = element.tagName === 'BODY' ? window : element;
    this._config = this._getConfig(config);
XhmikosR's avatar
XhmikosR committed
4270
    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
4271
4272
4273
4274
    this._offsets = [];
    this._targets = [];
    this._activeTarget = null;
    this._scrollHeight = 0;
XhmikosR's avatar
XhmikosR committed
4275
    EventHandler.on(this._scrollElement, EVENT_SCROLL, function (event) {
XhmikosR's avatar
XhmikosR committed
4276
4277
      return _this._process(event);
    });
XhmikosR's avatar
Dist.  
XhmikosR committed
4278
4279
4280
4281
4282
4283
4284
4285
    this.refresh();

    this._process();

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


XhmikosR's avatar
XhmikosR committed
4286
  var _proto = ScrollSpy.prototype;
XhmikosR's avatar
Dist.  
XhmikosR committed
4287

XhmikosR's avatar
XhmikosR committed
4288
4289
4290
  // Public
  _proto.refresh = function refresh() {
    var _this2 = this;
XhmikosR's avatar
Dist.  
XhmikosR committed
4291

XhmikosR's avatar
XhmikosR committed
4292
    var autoMethod = this._scrollElement === this._scrollElement.window ? METHOD_OFFSET : METHOD_POSITION;
XhmikosR's avatar
XhmikosR committed
4293
    var offsetMethod = this._config.method === 'auto' ? autoMethod : this._config.method;
XhmikosR's avatar
XhmikosR committed
4294
    var offsetBase = offsetMethod === METHOD_POSITION ? this._getScrollTop() : 0;
XhmikosR's avatar
Dist.  
XhmikosR committed
4295
4296
4297
    this._offsets = [];
    this._targets = [];
    this._scrollHeight = this._getScrollHeight();
XhmikosR's avatar
XhmikosR committed
4298
    var targets = SelectorEngine.find(this._selector);
XhmikosR's avatar
XhmikosR committed
4299
4300
    targets.map(function (element) {
      var targetSelector = getSelectorFromElement(element);
XhmikosR's avatar
XhmikosR committed
4301
      var target = targetSelector ? SelectorEngine.findOne(targetSelector) : null;
XhmikosR's avatar
Dist.  
XhmikosR committed
4302
4303

      if (target) {
XhmikosR's avatar
XhmikosR committed
4304
        var targetBCR = target.getBoundingClientRect();
XhmikosR's avatar
Dist.  
XhmikosR committed
4305
4306
4307
4308
4309
4310
4311

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

      return null;
XhmikosR's avatar
XhmikosR committed
4312
4313
4314
4315
4316
4317
4318
4319
    }).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
4320
    });
XhmikosR's avatar
XhmikosR committed
4321
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
4322

XhmikosR's avatar
XhmikosR committed
4323
  _proto.dispose = function dispose() {
XhmikosR's avatar
Dist.  
XhmikosR committed
4324
4325
4326
4327
4328
4329
4330
4331
4332
4333
4334
    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
4335
  ;
XhmikosR's avatar
Dist.  
XhmikosR committed
4336

XhmikosR's avatar
XhmikosR committed
4337
  _proto._getConfig = function _getConfig(config) {
XhmikosR's avatar
XhmikosR committed
4338
    config = _extends({}, Default$6, typeof config === 'object' && config ? config : {});
XhmikosR's avatar
Dist.  
XhmikosR committed
4339

XhmikosR's avatar
XhmikosR committed
4340
    if (typeof config.target !== 'string' && isElement(config.target)) {
XhmikosR's avatar
XhmikosR committed
4341
      var id = config.target.id;
XhmikosR's avatar
Dist.  
XhmikosR committed
4342
4343
4344
4345
4346
4347

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

XhmikosR's avatar
XhmikosR committed
4348
      config.target = "#" + id;
XhmikosR's avatar
Dist.  
XhmikosR committed
4349
4350
4351
4352
    }

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

XhmikosR's avatar
XhmikosR committed
4355
  _proto._getScrollTop = function _getScrollTop() {
XhmikosR's avatar
Dist.  
XhmikosR committed
4356
    return this._scrollElement === window ? this._scrollElement.pageYOffset : this._scrollElement.scrollTop;
XhmikosR's avatar
XhmikosR committed
4357
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
4358

XhmikosR's avatar
XhmikosR committed
4359
  _proto._getScrollHeight = function _getScrollHeight() {
XhmikosR's avatar
Dist.  
XhmikosR committed
4360
    return this._scrollElement.scrollHeight || Math.max(document.body.scrollHeight, document.documentElement.scrollHeight);
XhmikosR's avatar
XhmikosR committed
4361
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
4362

XhmikosR's avatar
XhmikosR committed
4363
  _proto._getOffsetHeight = function _getOffsetHeight() {
XhmikosR's avatar
Dist.  
XhmikosR committed
4364
    return this._scrollElement === window ? window.innerHeight : this._scrollElement.getBoundingClientRect().height;
XhmikosR's avatar
XhmikosR committed
4365
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
4366

XhmikosR's avatar
XhmikosR committed
4367
4368
  _proto._process = function _process() {
    var scrollTop = this._getScrollTop() + this._config.offset;
XhmikosR's avatar
Dist.  
XhmikosR committed
4369

XhmikosR's avatar
XhmikosR committed
4370
    var scrollHeight = this._getScrollHeight();
XhmikosR's avatar
Dist.  
XhmikosR committed
4371

XhmikosR's avatar
XhmikosR committed
4372
    var maxScroll = this._config.offset + scrollHeight - this._getOffsetHeight();
XhmikosR's avatar
Dist.  
XhmikosR committed
4373
4374
4375
4376
4377
4378

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

    if (scrollTop >= maxScroll) {
XhmikosR's avatar
XhmikosR committed
4379
      var target = this._targets[this._targets.length - 1];
XhmikosR's avatar
Dist.  
XhmikosR committed
4380
4381
4382
4383
4384
4385
4386
4387
4388
4389
4390
4391
4392
4393
4394
4395

      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
4396
    for (var i = this._offsets.length; i--;) {
XhmikosR's avatar
XhmikosR committed
4397
      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
4398
4399
4400
4401
4402

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

XhmikosR's avatar
XhmikosR committed
4405
  _proto._activate = function _activate(target) {
XhmikosR's avatar
Dist.  
XhmikosR committed
4406
4407
4408
4409
    this._activeTarget = target;

    this._clear();

XhmikosR's avatar
XhmikosR committed
4410
    var queries = this._selector.split(',').map(function (selector) {
XhmikosR's avatar
XhmikosR committed
4411
      return selector + "[data-bs-target=\"" + target + "\"]," + selector + "[href=\"" + target + "\"]";
XhmikosR's avatar
XhmikosR committed
4412
    });
XhmikosR's avatar
Dist.  
XhmikosR committed
4413

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

XhmikosR's avatar
XhmikosR committed
4416
    if (link.classList.contains(CLASS_NAME_DROPDOWN_ITEM)) {
XhmikosR's avatar
XhmikosR committed
4417
      SelectorEngine.findOne(SELECTOR_DROPDOWN_TOGGLE, link.closest(SELECTOR_DROPDOWN)).classList.add(CLASS_NAME_ACTIVE$2);
XhmikosR's avatar
XhmikosR committed
4418
      link.classList.add(CLASS_NAME_ACTIVE$2);
XhmikosR's avatar
Dist.  
XhmikosR committed
4419
4420
    } else {
      // Set triggered link as active
XhmikosR's avatar
XhmikosR committed
4421
4422
      link.classList.add(CLASS_NAME_ACTIVE$2);
      SelectorEngine.parents(link, SELECTOR_NAV_LIST_GROUP).forEach(function (listGroup) {
XhmikosR's avatar
Dist.  
XhmikosR committed
4423
4424
        // 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
4425
4426
        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
4427
        }); // Handle special case when .nav-link is inside .nav-item
XhmikosR's avatar
Dist.  
XhmikosR committed
4428

XhmikosR's avatar
XhmikosR committed
4429
4430
4431
        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
4432
          });
XhmikosR's avatar
Dist.  
XhmikosR committed
4433
4434
4435
4436
        });
      });
    }

XhmikosR's avatar
XhmikosR committed
4437
    EventHandler.trigger(this._scrollElement, EVENT_ACTIVATE, {
XhmikosR's avatar
Dist.  
XhmikosR committed
4438
4439
      relatedTarget: target
    });
XhmikosR's avatar
XhmikosR committed
4440
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
4441

XhmikosR's avatar
XhmikosR committed
4442
  _proto._clear = function _clear() {
XhmikosR's avatar
XhmikosR committed
4443
4444
    SelectorEngine.find(this._selector).filter(function (node) {
      return node.classList.contains(CLASS_NAME_ACTIVE$2);
XhmikosR's avatar
XhmikosR committed
4445
    }).forEach(function (node) {
XhmikosR's avatar
XhmikosR committed
4446
      return node.classList.remove(CLASS_NAME_ACTIVE$2);
XhmikosR's avatar
XhmikosR committed
4447
    });
XhmikosR's avatar
Dist.  
XhmikosR committed
4448
  } // Static
XhmikosR's avatar
XhmikosR committed
4449
  ;
XhmikosR's avatar
Dist.  
XhmikosR committed
4450

XhmikosR's avatar
XhmikosR committed
4451
  ScrollSpy.jQueryInterface = function jQueryInterface(config) {
XhmikosR's avatar
Dist.  
XhmikosR committed
4452
    return this.each(function () {
XhmikosR's avatar
XhmikosR committed
4453
      var data = Data.getData(this, DATA_KEY$8);
XhmikosR's avatar
Dist.  
XhmikosR committed
4454

XhmikosR's avatar
XhmikosR committed
4455
      var _config = typeof config === 'object' && config;
XhmikosR's avatar
Dist.  
XhmikosR committed
4456
4457
4458
4459
4460
4461
4462

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

      if (typeof config === 'string') {
        if (typeof data[config] === 'undefined') {
XhmikosR's avatar
XhmikosR committed
4463
          throw new TypeError("No method named \"" + config + "\"");
XhmikosR's avatar
Dist.  
XhmikosR committed
4464
4465
4466
4467
4468
        }

        data[config]();
      }
    });
XhmikosR's avatar
XhmikosR committed
4469
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
4470

XhmikosR's avatar
XhmikosR committed
4471
  ScrollSpy.getInstance = function getInstance(element) {
XhmikosR's avatar
Dist.  
XhmikosR committed
4472
    return Data.getData(element, DATA_KEY$8);
XhmikosR's avatar
XhmikosR committed
4473
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
4474

XhmikosR's avatar
XhmikosR committed
4475
4476
4477
4478
4479
4480
4481
4482
4483
4484
4485
4486
4487
4488
  _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
4489
4490
4491
4492
4493
4494
4495
/**
 * ------------------------------------------------------------------------
 * Data Api implementation
 * ------------------------------------------------------------------------
 */


XhmikosR's avatar
XhmikosR committed
4496
4497
EventHandler.on(window, EVENT_LOAD_DATA_API$1, function () {
  SelectorEngine.find(SELECTOR_DATA_SPY).forEach(function (spy) {
XhmikosR's avatar
XhmikosR committed
4498
4499
    return new ScrollSpy(spy, Manipulator.getDataAttributes(spy));
  });
XhmikosR's avatar
Dist.  
XhmikosR committed
4500
4501
4502
4503
4504
});
/**
 * ------------------------------------------------------------------------
 * jQuery
 * ------------------------------------------------------------------------
XhmikosR's avatar
XhmikosR committed
4505
 * add .ScrollSpy to jQuery only if jQuery is present
XhmikosR's avatar
Dist.  
XhmikosR committed
4506
4507
 */

XhmikosR's avatar
XhmikosR committed
4508
4509
4510
onDOMContentLoaded(function () {
  var $ = getjQuery();
  /* istanbul ignore if */
4511

XhmikosR's avatar
XhmikosR committed
4512
4513
4514
4515
  if ($) {
    var JQUERY_NO_CONFLICT = $.fn[NAME$8];
    $.fn[NAME$8] = ScrollSpy.jQueryInterface;
    $.fn[NAME$8].Constructor = ScrollSpy;
XhmikosR's avatar
Dist.  
XhmikosR committed
4516

XhmikosR's avatar
XhmikosR committed
4517
4518
4519
4520
4521
4522
    $.fn[NAME$8].noConflict = function () {
      $.fn[NAME$8] = JQUERY_NO_CONFLICT;
      return ScrollSpy.jQueryInterface;
    };
  }
});
XhmikosR's avatar
Dist.  
XhmikosR committed
4523
4524
4525
4526
4527
4528
4529

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

XhmikosR's avatar
XhmikosR committed
4530
var NAME$9 = 'tab';
XhmikosR's avatar
XhmikosR committed
4531
var VERSION$9 = '5.0.0-alpha3';
XhmikosR's avatar
XhmikosR committed
4532
4533
4534
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
4535
4536
4537
4538
4539
4540
4541
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';
XhmikosR's avatar
XhmikosR committed
4542
var CLASS_NAME_DISABLED$1 = 'disabled';
XhmikosR's avatar
XhmikosR committed
4543
4544
4545
4546
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';
XhmikosR's avatar
XhmikosR committed
4547
var SELECTOR_ACTIVE$1 = '.active';
XhmikosR's avatar
XhmikosR committed
4548
var SELECTOR_ACTIVE_UL = ':scope > li > .active';
XhmikosR's avatar
XhmikosR committed
4549
var SELECTOR_DATA_TOGGLE$4 = '[data-bs-toggle="tab"], [data-bs-toggle="pill"], [data-bs-toggle="list"]';
XhmikosR's avatar
XhmikosR committed
4550
4551
var SELECTOR_DROPDOWN_TOGGLE$1 = '.dropdown-toggle';
var SELECTOR_DROPDOWN_ACTIVE_CHILD = ':scope > .dropdown-menu .active';
XhmikosR's avatar
XhmikosR committed
4552
4553
4554
4555
4556
/**
 * ------------------------------------------------------------------------
 * Class Definition
 * ------------------------------------------------------------------------
 */
XhmikosR's avatar
Dist.  
XhmikosR committed
4557

XhmikosR's avatar
XhmikosR committed
4558
var Tab = /*#__PURE__*/function () {
XhmikosR's avatar
XhmikosR committed
4559
  function Tab(element) {
XhmikosR's avatar
Dist.  
XhmikosR committed
4560
4561
4562
4563
4564
    this._element = element;
    Data.setData(this._element, DATA_KEY$9, this);
  } // Getters


XhmikosR's avatar
XhmikosR committed
4565
  var _proto = Tab.prototype;
XhmikosR's avatar
Dist.  
XhmikosR committed
4566

XhmikosR's avatar
XhmikosR committed
4567
4568
4569
  // Public
  _proto.show = function show() {
    var _this = this;
XhmikosR's avatar
Dist.  
XhmikosR committed
4570

XhmikosR's avatar
XhmikosR committed
4571
    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$1)) {
XhmikosR's avatar
Dist.  
XhmikosR committed
4572
4573
4574
      return;
    }

XhmikosR's avatar
XhmikosR committed
4575
    var previous;
XhmikosR's avatar
XhmikosR committed
4576
    var target = getElementFromSelector(this._element);
XhmikosR's avatar
XhmikosR committed
4577
4578

    var listElement = this._element.closest(SELECTOR_NAV_LIST_GROUP$1);
XhmikosR's avatar
Dist.  
XhmikosR committed
4579
4580

    if (listElement) {
XhmikosR's avatar
XhmikosR committed
4581
      var itemSelector = listElement.nodeName === 'UL' || listElement.nodeName === 'OL' ? SELECTOR_ACTIVE_UL : SELECTOR_ACTIVE$1;
XhmikosR's avatar
XhmikosR committed
4582
      previous = SelectorEngine.find(itemSelector, listElement);
XhmikosR's avatar
Dist.  
XhmikosR committed
4583
4584
4585
      previous = previous[previous.length - 1];
    }

XhmikosR's avatar
XhmikosR committed
4586
    var hideEvent = null;
XhmikosR's avatar
Dist.  
XhmikosR committed
4587
4588

    if (previous) {
XhmikosR's avatar
XhmikosR committed
4589
      hideEvent = EventHandler.trigger(previous, EVENT_HIDE$3, {
XhmikosR's avatar
Dist.  
XhmikosR committed
4590
4591
4592
4593
        relatedTarget: this._element
      });
    }

XhmikosR's avatar
XhmikosR committed
4594
    var showEvent = EventHandler.trigger(this._element, EVENT_SHOW$3, {
XhmikosR's avatar
Dist.  
XhmikosR committed
4595
4596
4597
4598
4599
4600
4601
4602
4603
      relatedTarget: previous
    });

    if (showEvent.defaultPrevented || hideEvent !== null && hideEvent.defaultPrevented) {
      return;
    }

    this._activate(this._element, listElement);

XhmikosR's avatar
XhmikosR committed
4604
    var complete = function complete() {
XhmikosR's avatar
XhmikosR committed
4605
      EventHandler.trigger(previous, EVENT_HIDDEN$3, {
XhmikosR's avatar
XhmikosR committed
4606
        relatedTarget: _this._element
XhmikosR's avatar
Dist.  
XhmikosR committed
4607
      });
XhmikosR's avatar
XhmikosR committed
4608
      EventHandler.trigger(_this._element, EVENT_SHOWN$3, {
XhmikosR's avatar
Dist.  
XhmikosR committed
4609
4610
4611
4612
4613
4614
4615
4616
4617
        relatedTarget: previous
      });
    };

    if (target) {
      this._activate(target, target.parentNode, complete);
    } else {
      complete();
    }
XhmikosR's avatar
XhmikosR committed
4618
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
4619

XhmikosR's avatar
XhmikosR committed
4620
  _proto.dispose = function dispose() {
XhmikosR's avatar
Dist.  
XhmikosR committed
4621
4622
4623
    Data.removeData(this._element, DATA_KEY$9);
    this._element = null;
  } // Private
XhmikosR's avatar
XhmikosR committed
4624
  ;
XhmikosR's avatar
Dist.  
XhmikosR committed
4625

XhmikosR's avatar
XhmikosR committed
4626
4627
  _proto._activate = function _activate(element, container, callback) {
    var _this2 = this;
XhmikosR's avatar
Dist.  
XhmikosR committed
4628

XhmikosR's avatar
XhmikosR committed
4629
    var activeElements = container && (container.nodeName === 'UL' || container.nodeName === 'OL') ? SelectorEngine.find(SELECTOR_ACTIVE_UL, container) : SelectorEngine.children(container, SELECTOR_ACTIVE$1);
XhmikosR's avatar
XhmikosR committed
4630
    var active = activeElements[0];
XhmikosR's avatar
XhmikosR committed
4631
    var isTransitioning = callback && active && active.classList.contains(CLASS_NAME_FADE$3);
XhmikosR's avatar
Dist.  
XhmikosR committed
4632

XhmikosR's avatar
XhmikosR committed
4633
4634
4635
    var complete = function complete() {
      return _this2._transitionComplete(element, active, callback);
    };
XhmikosR's avatar
Dist.  
XhmikosR committed
4636
4637

    if (active && isTransitioning) {
XhmikosR's avatar
XhmikosR committed
4638
      var transitionDuration = getTransitionDurationFromElement(active);
XhmikosR's avatar
XhmikosR committed
4639
      active.classList.remove(CLASS_NAME_SHOW$5);
XhmikosR's avatar
Dist.  
XhmikosR committed
4640
4641
4642
4643
4644
      EventHandler.one(active, TRANSITION_END, complete);
      emulateTransitionEnd(active, transitionDuration);
    } else {
      complete();
    }
XhmikosR's avatar
XhmikosR committed
4645
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
4646

XhmikosR's avatar
XhmikosR committed
4647
  _proto._transitionComplete = function _transitionComplete(element, active, callback) {
XhmikosR's avatar
Dist.  
XhmikosR committed
4648
    if (active) {
XhmikosR's avatar
XhmikosR committed
4649
4650
      active.classList.remove(CLASS_NAME_ACTIVE$3);
      var dropdownChild = SelectorEngine.findOne(SELECTOR_DROPDOWN_ACTIVE_CHILD, active.parentNode);
XhmikosR's avatar
Dist.  
XhmikosR committed
4651
4652

      if (dropdownChild) {
XhmikosR's avatar
XhmikosR committed
4653
        dropdownChild.classList.remove(CLASS_NAME_ACTIVE$3);
XhmikosR's avatar
Dist.  
XhmikosR committed
4654
4655
4656
4657
4658
4659
4660
      }

      if (active.getAttribute('role') === 'tab') {
        active.setAttribute('aria-selected', false);
      }
    }

XhmikosR's avatar
XhmikosR committed
4661
    element.classList.add(CLASS_NAME_ACTIVE$3);
XhmikosR's avatar
Dist.  
XhmikosR committed
4662
4663
4664
4665
4666
4667
4668

    if (element.getAttribute('role') === 'tab') {
      element.setAttribute('aria-selected', true);
    }

    reflow(element);

XhmikosR's avatar
XhmikosR committed
4669
4670
    if (element.classList.contains(CLASS_NAME_FADE$3)) {
      element.classList.add(CLASS_NAME_SHOW$5);
XhmikosR's avatar
Dist.  
XhmikosR committed
4671
4672
    }

XhmikosR's avatar
XhmikosR committed
4673
    if (element.parentNode && element.parentNode.classList.contains(CLASS_NAME_DROPDOWN_MENU)) {
XhmikosR's avatar
XhmikosR committed
4674
      var dropdownElement = element.closest(SELECTOR_DROPDOWN$1);
XhmikosR's avatar
Dist.  
XhmikosR committed
4675
4676

      if (dropdownElement) {
XhmikosR's avatar
XhmikosR committed
4677
4678
        SelectorEngine.find(SELECTOR_DROPDOWN_TOGGLE$1).forEach(function (dropdown) {
          return dropdown.classList.add(CLASS_NAME_ACTIVE$3);
XhmikosR's avatar
XhmikosR committed
4679
        });
XhmikosR's avatar
Dist.  
XhmikosR committed
4680
4681
4682
4683
4684
4685
4686
4687
4688
      }

      element.setAttribute('aria-expanded', true);
    }

    if (callback) {
      callback();
    }
  } // Static
XhmikosR's avatar
XhmikosR committed
4689
  ;
XhmikosR's avatar
Dist.  
XhmikosR committed
4690

XhmikosR's avatar
XhmikosR committed
4691
  Tab.jQueryInterface = function jQueryInterface(config) {
XhmikosR's avatar
Dist.  
XhmikosR committed
4692
    return this.each(function () {
XhmikosR's avatar
XhmikosR committed
4693
      var data = Data.getData(this, DATA_KEY$9) || new Tab(this);
XhmikosR's avatar
Dist.  
XhmikosR committed
4694
4695
4696

      if (typeof config === 'string') {
        if (typeof data[config] === 'undefined') {
XhmikosR's avatar
XhmikosR committed
4697
          throw new TypeError("No method named \"" + config + "\"");
XhmikosR's avatar
Dist.  
XhmikosR committed
4698
4699
4700
4701
4702
        }

        data[config]();
      }
    });
XhmikosR's avatar
XhmikosR committed
4703
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
4704

XhmikosR's avatar
XhmikosR committed
4705
  Tab.getInstance = function getInstance(element) {
XhmikosR's avatar
Dist.  
XhmikosR committed
4706
    return Data.getData(element, DATA_KEY$9);
XhmikosR's avatar
XhmikosR committed
4707
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
4708

XhmikosR's avatar
XhmikosR committed
4709
4710
4711
4712
4713
4714
4715
4716
4717
  _createClass(Tab, null, [{
    key: "VERSION",
    get: function get() {
      return VERSION$9;
    }
  }]);

  return Tab;
}();
XhmikosR's avatar
Dist.  
XhmikosR committed
4718
4719
4720
4721
4722
4723
4724
/**
 * ------------------------------------------------------------------------
 * Data Api implementation
 * ------------------------------------------------------------------------
 */


XhmikosR's avatar
XhmikosR committed
4725
EventHandler.on(document, EVENT_CLICK_DATA_API$6, SELECTOR_DATA_TOGGLE$4, function (event) {
XhmikosR's avatar
Dist.  
XhmikosR committed
4726
  event.preventDefault();
XhmikosR's avatar
XhmikosR committed
4727
  var data = Data.getData(this, DATA_KEY$9) || new Tab(this);
XhmikosR's avatar
Dist.  
XhmikosR committed
4728
4729
4730
4731
4732
4733
  data.show();
});
/**
 * ------------------------------------------------------------------------
 * jQuery
 * ------------------------------------------------------------------------
XhmikosR's avatar
XhmikosR committed
4734
 * add .Tab to jQuery only if jQuery is present
XhmikosR's avatar
Dist.  
XhmikosR committed
4735
4736
 */

XhmikosR's avatar
XhmikosR committed
4737
4738
4739
onDOMContentLoaded(function () {
  var $ = getjQuery();
  /* istanbul ignore if */
4740

XhmikosR's avatar
XhmikosR committed
4741
4742
4743
4744
  if ($) {
    var JQUERY_NO_CONFLICT = $.fn[NAME$9];
    $.fn[NAME$9] = Tab.jQueryInterface;
    $.fn[NAME$9].Constructor = Tab;
XhmikosR's avatar
Dist.  
XhmikosR committed
4745

XhmikosR's avatar
XhmikosR committed
4746
4747
4748
4749
4750
4751
    $.fn[NAME$9].noConflict = function () {
      $.fn[NAME$9] = JQUERY_NO_CONFLICT;
      return Tab.jQueryInterface;
    };
  }
});
XhmikosR's avatar
Dist.  
XhmikosR committed
4752
4753
4754
4755
4756
4757
4758

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

XhmikosR's avatar
XhmikosR committed
4759
var NAME$a = 'toast';
XhmikosR's avatar
XhmikosR committed
4760
var VERSION$a = '5.0.0-alpha3';
XhmikosR's avatar
XhmikosR committed
4761
4762
var DATA_KEY$a = 'bs.toast';
var EVENT_KEY$a = "." + DATA_KEY$a;
XhmikosR's avatar
XhmikosR committed
4763
4764
4765
4766
4767
4768
4769
4770
4771
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
4772
var DefaultType$7 = {
XhmikosR's avatar
Dist.  
XhmikosR committed
4773
4774
4775
4776
  animation: 'boolean',
  autohide: 'boolean',
  delay: 'number'
};
XhmikosR's avatar
XhmikosR committed
4777
var Default$7 = {
XhmikosR's avatar
Dist.  
XhmikosR committed
4778
4779
  animation: true,
  autohide: true,
XhmikosR's avatar
XhmikosR committed
4780
  delay: 5000
XhmikosR's avatar
Dist.  
XhmikosR committed
4781
};
XhmikosR's avatar
XhmikosR committed
4782
var SELECTOR_DATA_DISMISS$1 = '[data-bs-dismiss="toast"]';
XhmikosR's avatar
XhmikosR committed
4783
4784
4785
4786
4787
/**
 * ------------------------------------------------------------------------
 * Class Definition
 * ------------------------------------------------------------------------
 */
XhmikosR's avatar
Dist.  
XhmikosR committed
4788

XhmikosR's avatar
XhmikosR committed
4789
var Toast = /*#__PURE__*/function () {
XhmikosR's avatar
XhmikosR committed
4790
  function Toast(element, config) {
XhmikosR's avatar
Dist.  
XhmikosR committed
4791
4792
4793
4794
4795
4796
4797
4798
4799
4800
    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
4801
  var _proto = Toast.prototype;
XhmikosR's avatar
Dist.  
XhmikosR committed
4802

XhmikosR's avatar
XhmikosR committed
4803
4804
4805
  // Public
  _proto.show = function show() {
    var _this = this;
XhmikosR's avatar
Dist.  
XhmikosR committed
4806

XhmikosR's avatar
XhmikosR committed
4807
    var showEvent = EventHandler.trigger(this._element, EVENT_SHOW$4);
Mark Otto's avatar
dist v5    
Mark Otto committed
4808
4809
4810
4811

    if (showEvent.defaultPrevented) {
      return;
    }
XhmikosR's avatar
Dist.  
XhmikosR committed
4812

XhmikosR's avatar
XhmikosR committed
4813
4814
    this._clearTimeout();

XhmikosR's avatar
Dist.  
XhmikosR committed
4815
    if (this._config.animation) {
XhmikosR's avatar
XhmikosR committed
4816
      this._element.classList.add(CLASS_NAME_FADE$4);
XhmikosR's avatar
Dist.  
XhmikosR committed
4817
4818
    }

XhmikosR's avatar
XhmikosR committed
4819
    var complete = function complete() {
XhmikosR's avatar
XhmikosR committed
4820
      _this._element.classList.remove(CLASS_NAME_SHOWING);
XhmikosR's avatar
Dist.  
XhmikosR committed
4821

XhmikosR's avatar
XhmikosR committed
4822
      _this._element.classList.add(CLASS_NAME_SHOW$6);
XhmikosR's avatar
Dist.  
XhmikosR committed
4823

XhmikosR's avatar
XhmikosR committed
4824
      EventHandler.trigger(_this._element, EVENT_SHOWN$4);
XhmikosR's avatar
Dist.  
XhmikosR committed
4825

XhmikosR's avatar
XhmikosR committed
4826
4827
4828
4829
      if (_this._config.autohide) {
        _this._timeout = setTimeout(function () {
          _this.hide();
        }, _this._config.delay);
XhmikosR's avatar
Dist.  
XhmikosR committed
4830
4831
4832
      }
    };

XhmikosR's avatar
XhmikosR committed
4833
    this._element.classList.remove(CLASS_NAME_HIDE);
XhmikosR's avatar
Dist.  
XhmikosR committed
4834

4835
4836
    reflow(this._element);

XhmikosR's avatar
XhmikosR committed
4837
    this._element.classList.add(CLASS_NAME_SHOWING);
XhmikosR's avatar
Dist.  
XhmikosR committed
4838
4839

    if (this._config.animation) {
XhmikosR's avatar
XhmikosR committed
4840
      var transitionDuration = getTransitionDurationFromElement(this._element);
XhmikosR's avatar
Dist.  
XhmikosR committed
4841
4842
4843
4844
4845
      EventHandler.one(this._element, TRANSITION_END, complete);
      emulateTransitionEnd(this._element, transitionDuration);
    } else {
      complete();
    }
XhmikosR's avatar
XhmikosR committed
4846
4847
4848
4849
  };

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

XhmikosR's avatar
XhmikosR committed
4851
    if (!this._element.classList.contains(CLASS_NAME_SHOW$6)) {
XhmikosR's avatar
Dist.  
XhmikosR committed
4852
4853
4854
      return;
    }

XhmikosR's avatar
XhmikosR committed
4855
    var hideEvent = EventHandler.trigger(this._element, EVENT_HIDE$4);
Mark Otto's avatar
dist v5    
Mark Otto committed
4856
4857
4858
4859

    if (hideEvent.defaultPrevented) {
      return;
    }
XhmikosR's avatar
Dist.  
XhmikosR committed
4860

XhmikosR's avatar
XhmikosR committed
4861
    var complete = function complete() {
XhmikosR's avatar
XhmikosR committed
4862
      _this2._element.classList.add(CLASS_NAME_HIDE);
XhmikosR's avatar
XhmikosR committed
4863

XhmikosR's avatar
XhmikosR committed
4864
      EventHandler.trigger(_this2._element, EVENT_HIDDEN$4);
XhmikosR's avatar
XhmikosR committed
4865
4866
    };

XhmikosR's avatar
XhmikosR committed
4867
    this._element.classList.remove(CLASS_NAME_SHOW$6);
XhmikosR's avatar
XhmikosR committed
4868
4869
4870
4871
4872

    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
4873
    } else {
XhmikosR's avatar
XhmikosR committed
4874
      complete();
XhmikosR's avatar
Dist.  
XhmikosR committed
4875
    }
XhmikosR's avatar
XhmikosR committed
4876
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
4877

XhmikosR's avatar
XhmikosR committed
4878
  _proto.dispose = function dispose() {
XhmikosR's avatar
XhmikosR committed
4879
    this._clearTimeout();
XhmikosR's avatar
Dist.  
XhmikosR committed
4880

XhmikosR's avatar
XhmikosR committed
4881
4882
    if (this._element.classList.contains(CLASS_NAME_SHOW$6)) {
      this._element.classList.remove(CLASS_NAME_SHOW$6);
XhmikosR's avatar
Dist.  
XhmikosR committed
4883
4884
    }

XhmikosR's avatar
XhmikosR committed
4885
    EventHandler.off(this._element, EVENT_CLICK_DISMISS$1);
XhmikosR's avatar
Dist.  
XhmikosR committed
4886
4887
4888
4889
    Data.removeData(this._element, DATA_KEY$a);
    this._element = null;
    this._config = null;
  } // Private
XhmikosR's avatar
XhmikosR committed
4890
  ;
XhmikosR's avatar
Dist.  
XhmikosR committed
4891

XhmikosR's avatar
XhmikosR committed
4892
  _proto._getConfig = function _getConfig(config) {
XhmikosR's avatar
XhmikosR committed
4893
    config = _extends({}, Default$7, Manipulator.getDataAttributes(this._element), typeof config === 'object' && config ? config : {});
XhmikosR's avatar
Dist.  
XhmikosR committed
4894
4895
    typeCheckConfig(NAME$a, config, this.constructor.DefaultType);
    return config;
XhmikosR's avatar
XhmikosR committed
4896
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
4897

XhmikosR's avatar
XhmikosR committed
4898
4899
  _proto._setListeners = function _setListeners() {
    var _this3 = this;
XhmikosR's avatar
Dist.  
XhmikosR committed
4900

XhmikosR's avatar
XhmikosR committed
4901
    EventHandler.on(this._element, EVENT_CLICK_DISMISS$1, SELECTOR_DATA_DISMISS$1, function () {
XhmikosR's avatar
XhmikosR committed
4902
4903
      return _this3.hide();
    });
XhmikosR's avatar
XhmikosR committed
4904
4905
4906
4907
4908
  };

  _proto._clearTimeout = function _clearTimeout() {
    clearTimeout(this._timeout);
    this._timeout = null;
XhmikosR's avatar
Dist.  
XhmikosR committed
4909
  } // Static
XhmikosR's avatar
XhmikosR committed
4910
  ;
XhmikosR's avatar
Dist.  
XhmikosR committed
4911

XhmikosR's avatar
XhmikosR committed
4912
  Toast.jQueryInterface = function jQueryInterface(config) {
XhmikosR's avatar
Dist.  
XhmikosR committed
4913
    return this.each(function () {
XhmikosR's avatar
XhmikosR committed
4914
      var data = Data.getData(this, DATA_KEY$a);
XhmikosR's avatar
Dist.  
XhmikosR committed
4915

XhmikosR's avatar
XhmikosR committed
4916
      var _config = typeof config === 'object' && config;
XhmikosR's avatar
Dist.  
XhmikosR committed
4917
4918
4919
4920
4921
4922
4923

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

      if (typeof config === 'string') {
        if (typeof data[config] === 'undefined') {
XhmikosR's avatar
XhmikosR committed
4924
          throw new TypeError("No method named \"" + config + "\"");
XhmikosR's avatar
Dist.  
XhmikosR committed
4925
4926
4927
4928
4929
        }

        data[config](this);
      }
    });
XhmikosR's avatar
XhmikosR committed
4930
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
4931

XhmikosR's avatar
XhmikosR committed
4932
  Toast.getInstance = function getInstance(element) {
XhmikosR's avatar
Dist.  
XhmikosR committed
4933
    return Data.getData(element, DATA_KEY$a);
XhmikosR's avatar
XhmikosR committed
4934
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
4935

XhmikosR's avatar
XhmikosR committed
4936
4937
4938
4939
4940
4941
4942
4943
4944
4945
4946
4947
4948
4949
4950
4951
4952
4953
4954
  _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
Dist.  
XhmikosR committed
4955
4956
4957
4958
/**
 * ------------------------------------------------------------------------
 * jQuery
 * ------------------------------------------------------------------------
XhmikosR's avatar
XhmikosR committed
4959
 * add .Toast to jQuery only if jQuery is present
XhmikosR's avatar
Dist.  
XhmikosR committed
4960
4961
 */

4962

XhmikosR's avatar
XhmikosR committed
4963
4964
4965
onDOMContentLoaded(function () {
  var $ = getjQuery();
  /* istanbul ignore if */
XhmikosR's avatar
Dist.  
XhmikosR committed
4966

XhmikosR's avatar
XhmikosR committed
4967
4968
4969
4970
4971
4972
4973
4974
4975
4976
4977
  if ($) {
    var JQUERY_NO_CONFLICT = $.fn[NAME$a];
    $.fn[NAME$a] = Toast.jQueryInterface;
    $.fn[NAME$a].Constructor = Toast;

    $.fn[NAME$a].noConflict = function () {
      $.fn[NAME$a] = JQUERY_NO_CONFLICT;
      return Toast.jQueryInterface;
    };
  }
});
XhmikosR's avatar
Dist.  
XhmikosR committed
4978
4979
4980

export { Alert, Button, Carousel, Collapse, Dropdown, Modal, Popover, ScrollSpy, Tab, Toast, Tooltip };
//# sourceMappingURL=bootstrap.esm.js.map