bootstrap.esm.js 142 KB
Newer Older
XhmikosR's avatar
Dist.  
XhmikosR committed
1
/*!
2
  * Bootstrap v5.0.0-alpha1 (https://getbootstrap.com/)
XhmikosR's avatar
XhmikosR committed
3
  * Copyright 2011-2020 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
XhmikosR's avatar
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
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
function _defineProperties(target, props) {
  for (var i = 0; i < props.length; i++) {
    var descriptor = props[i];
    descriptor.enumerable = descriptor.enumerable || false;
    descriptor.configurable = true;
    if ("value" in descriptor) descriptor.writable = true;
    Object.defineProperty(target, descriptor.key, descriptor);
  }
}

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

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

  return obj;
}

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

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

  return keys;
}

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

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

  return target;
}

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

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

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

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


XhmikosR's avatar
XhmikosR committed
103
var getUID = function getUID(prefix) {
XhmikosR's avatar
Dist.  
XhmikosR committed
104
  do {
Mark Otto's avatar
Mark Otto committed
105
    prefix += Math.floor(Math.random() * MAX_UID);
XhmikosR's avatar
Dist.  
XhmikosR committed
106
107
108
109
110
  } while (document.getElementById(prefix));

  return prefix;
};

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

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

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

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

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

  return null;
};

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

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


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

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

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


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

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

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

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

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

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

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

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

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

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

  return false;
};

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


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

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


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

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

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

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

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

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

  return null;
};

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


    return null;
  };
}

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

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

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

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

  return null;
}

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

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

  if (custom) {
    typeEvent = custom;
  }

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

  if (!isNative) {
    typeEvent = originalTypeEvent;
  }

  return [delegation, originalHandler, typeEvent];
}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

    if (defaultPrevented) {
      evt.preventDefault();

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

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

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

    return evt;
  }
};

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

      return;
    }

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

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

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

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

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

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

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

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

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

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

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


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

819
820
/* istanbul ignore if */

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

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

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

XhmikosR's avatar
XhmikosR committed
838
var NAME$1 = 'button';
839
var VERSION$1 = '5.0.0-alpha1';
XhmikosR's avatar
XhmikosR committed
840
841
842
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
843
var CLASS_NAME_ACTIVE = 'active';
XhmikosR's avatar
XhmikosR committed
844
var SELECTOR_DATA_TOGGLE = '[data-toggle="button"]';
XhmikosR's avatar
XhmikosR committed
845
var EVENT_CLICK_DATA_API$1 = "click" + EVENT_KEY$1 + DATA_API_KEY$1;
XhmikosR's avatar
XhmikosR committed
846
847
848
849
850
/**
 * ------------------------------------------------------------------------
 * Class Definition
 * ------------------------------------------------------------------------
 */
XhmikosR's avatar
Dist.  
XhmikosR committed
851

XhmikosR's avatar
XhmikosR committed
852
var Button = /*#__PURE__*/function () {
XhmikosR's avatar
XhmikosR committed
853
  function Button(element) {
XhmikosR's avatar
Dist.  
XhmikosR committed
854
855
856
857
858
    this._element = element;
    Data.setData(element, DATA_KEY$1, this);
  } // Getters


XhmikosR's avatar
XhmikosR committed
859
  var _proto = Button.prototype;
XhmikosR's avatar
Dist.  
XhmikosR committed
860

XhmikosR's avatar
XhmikosR committed
861
862
  // Public
  _proto.toggle = function toggle() {
XhmikosR's avatar
XhmikosR committed
863
864
    // 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
865
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
866

XhmikosR's avatar
XhmikosR committed
867
  _proto.dispose = function dispose() {
XhmikosR's avatar
Dist.  
XhmikosR committed
868
869
870
    Data.removeData(this._element, DATA_KEY$1);
    this._element = null;
  } // Static
XhmikosR's avatar
XhmikosR committed
871
  ;
XhmikosR's avatar
Dist.  
XhmikosR committed
872

XhmikosR's avatar
XhmikosR committed
873
  Button.jQueryInterface = function jQueryInterface(config) {
XhmikosR's avatar
Dist.  
XhmikosR committed
874
    return this.each(function () {
XhmikosR's avatar
XhmikosR committed
875
      var data = Data.getData(this, DATA_KEY$1);
XhmikosR's avatar
Dist.  
XhmikosR committed
876
877
878
879
880
881
882
883
884

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

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

XhmikosR's avatar
XhmikosR committed
887
  Button.getInstance = function getInstance(element) {
XhmikosR's avatar
Dist.  
XhmikosR committed
888
    return Data.getData(element, DATA_KEY$1);
XhmikosR's avatar
XhmikosR committed
889
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
890

XhmikosR's avatar
XhmikosR committed
891
892
893
894
895
896
897
898
899
  _createClass(Button, null, [{
    key: "VERSION",
    get: function get() {
      return VERSION$1;
    }
  }]);

  return Button;
}();
XhmikosR's avatar
Dist.  
XhmikosR committed
900
901
902
903
904
905
906
/**
 * ------------------------------------------------------------------------
 * Data Api implementation
 * ------------------------------------------------------------------------
 */


XhmikosR's avatar
XhmikosR committed
907
EventHandler.on(document, EVENT_CLICK_DATA_API$1, SELECTOR_DATA_TOGGLE, function (event) {
XhmikosR's avatar
Dist.  
XhmikosR committed
908
  event.preventDefault();
XhmikosR's avatar
XhmikosR committed
909
  var button = event.target.closest(SELECTOR_DATA_TOGGLE);
XhmikosR's avatar
XhmikosR committed
910
  var data = Data.getData(button, DATA_KEY$1);
XhmikosR's avatar
Dist.  
XhmikosR committed
911
912
913
914
915
916
917

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

  data.toggle();
});
XhmikosR's avatar
XhmikosR committed
918
var $$2 = getjQuery();
XhmikosR's avatar
Dist.  
XhmikosR committed
919
920
921
922
923
924
925
/**
 * ------------------------------------------------------------------------
 * jQuery
 * ------------------------------------------------------------------------
 * add .button to jQuery only if jQuery is present
 */

926
927
/* istanbul ignore if */

XhmikosR's avatar
XhmikosR committed
928
929
930
931
if ($$2) {
  var JQUERY_NO_CONFLICT$1 = $$2.fn[NAME$1];
  $$2.fn[NAME$1] = Button.jQueryInterface;
  $$2.fn[NAME$1].Constructor = Button;
XhmikosR's avatar
Dist.  
XhmikosR committed
932

XhmikosR's avatar
XhmikosR committed
933
934
935
  $$2.fn[NAME$1].noConflict = function () {
    $$2.fn[NAME$1] = JQUERY_NO_CONFLICT$1;
    return Button.jQueryInterface;
XhmikosR's avatar
Dist.  
XhmikosR committed
936
937
938
939
940
  };
}

/**
 * --------------------------------------------------------------------------
941
 * Bootstrap (v5.0.0-alpha1): dom/manipulator.js
XhmikosR's avatar
XhmikosR committed
942
 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
XhmikosR's avatar
Dist.  
XhmikosR committed
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
 * --------------------------------------------------------------------------
 */
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
966
  return key.replace(/[A-Z]/g, function (chr) {
XhmikosR's avatar
XhmikosR committed
967
    return "-" + chr.toLowerCase();
XhmikosR's avatar
XhmikosR committed
968
  });
XhmikosR's avatar
Dist.  
XhmikosR committed
969
970
}

XhmikosR's avatar
XhmikosR committed
971
972
973
var Manipulator = {
  setDataAttribute: function setDataAttribute(element, key, value) {
    element.setAttribute("data-" + normalizeDataKey(key), value);
XhmikosR's avatar
Dist.  
XhmikosR committed
974
  },
XhmikosR's avatar
XhmikosR committed
975
976
  removeDataAttribute: function removeDataAttribute(element, key) {
    element.removeAttribute("data-" + normalizeDataKey(key));
XhmikosR's avatar
Dist.  
XhmikosR committed
977
  },
XhmikosR's avatar
XhmikosR committed
978
  getDataAttributes: function getDataAttributes(element) {
XhmikosR's avatar
Dist.  
XhmikosR committed
979
980
981
982
    if (!element) {
      return {};
    }

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

XhmikosR's avatar
XhmikosR committed
985
    Object.keys(attributes).forEach(function (key) {
XhmikosR's avatar
Dist.  
XhmikosR committed
986
987
988
989
      attributes[key] = normalizeData(attributes[key]);
    });
    return attributes;
  },
XhmikosR's avatar
XhmikosR committed
990
991
  getDataAttribute: function getDataAttribute(element, key) {
    return normalizeData(element.getAttribute("data-" + normalizeDataKey(key)));
XhmikosR's avatar
Dist.  
XhmikosR committed
992
  },
XhmikosR's avatar
XhmikosR committed
993
994
  offset: function offset(element) {
    var rect = element.getBoundingClientRect();
XhmikosR's avatar
Dist.  
XhmikosR committed
995
996
997
998
999
    return {
      top: rect.top + document.body.scrollTop,
      left: rect.left + document.body.scrollLeft
    };
  },
XhmikosR's avatar
XhmikosR committed
1000
  position: function position(element) {
XhmikosR's avatar
Dist.  
XhmikosR committed
1001
1002
1003
1004
1005
    return {
      top: element.offsetTop,
      left: element.offsetLeft
    };
  },
XhmikosR's avatar
XhmikosR committed
1006
  toggleClass: function toggleClass(element, className) {
XhmikosR's avatar
Dist.  
XhmikosR committed
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
    if (!element) {
      return;
    }

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

XhmikosR's avatar
XhmikosR committed
1019
1020
1021
1022
1023
1024
1025
1026
1027
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
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
/**
 * --------------------------------------------------------------------------
 * Bootstrap (v5.0.0-alpha1): dom/selector-engine.js
 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
 * --------------------------------------------------------------------------
 */
/**
 * ------------------------------------------------------------------------
 * Constants
 * ------------------------------------------------------------------------
 */

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

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

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

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

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

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

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

      ancestor = ancestor.parentNode;
    }

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

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

      previous = previous.previousElementSibling;
    }

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

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

      next = next.nextElementSibling;
    }

    return [];
  }
};

XhmikosR's avatar
Dist.  
XhmikosR committed
1103
1104
1105
1106
1107
1108
/**
 * ------------------------------------------------------------------------
 * Constants
 * ------------------------------------------------------------------------
 */

XhmikosR's avatar
XhmikosR committed
1109
var NAME$2 = 'carousel';
1110
var VERSION$2 = '5.0.0-alpha1';
XhmikosR's avatar
XhmikosR committed
1111
1112
1113
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
1114
1115
var ARROW_LEFT_KEY = 'ArrowLeft';
var ARROW_RIGHT_KEY = 'ArrowRight';
XhmikosR's avatar
XhmikosR committed
1116
var TOUCHEVENT_COMPAT_WAIT = 500; // Time for mouse compat events to fire after touch
XhmikosR's avatar
Dist.  
XhmikosR committed
1117

XhmikosR's avatar
XhmikosR committed
1118
1119
var SWIPE_THRESHOLD = 40;
var Default = {
XhmikosR's avatar
Dist.  
XhmikosR committed
1120
1121
1122
1123
1124
1125
1126
  interval: 5000,
  keyboard: true,
  slide: false,
  pause: 'hover',
  wrap: true,
  touch: true
};
XhmikosR's avatar
XhmikosR committed
1127
var DefaultType = {
XhmikosR's avatar
Dist.  
XhmikosR committed
1128
1129
1130
1131
1132
1133
1134
  interval: '(number|boolean)',
  keyboard: 'boolean',
  slide: '(boolean|string)',
  pause: '(string|boolean)',
  wrap: 'boolean',
  touch: 'boolean'
};
XhmikosR's avatar
XhmikosR committed
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
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
1160
var SELECTOR_ACTIVE = '.active';
XhmikosR's avatar
XhmikosR committed
1161
1162
1163
1164
1165
1166
1167
var SELECTOR_ACTIVE_ITEM = '.active.carousel-item';
var SELECTOR_ITEM = '.carousel-item';
var SELECTOR_ITEM_IMG = '.carousel-item img';
var SELECTOR_NEXT_PREV = '.carousel-item-next, .carousel-item-prev';
var SELECTOR_INDICATORS = '.carousel-indicators';
var SELECTOR_DATA_SLIDE = '[data-slide], [data-slide-to]';
var SELECTOR_DATA_RIDE = '[data-ride="carousel"]';
XhmikosR's avatar
XhmikosR committed
1168
var PointerType = {
XhmikosR's avatar
Dist.  
XhmikosR committed
1169
1170
1171
  TOUCH: 'touch',
  PEN: 'pen'
};
XhmikosR's avatar
XhmikosR committed
1172
1173
1174
1175
1176
/**
 * ------------------------------------------------------------------------
 * Class Definition
 * ------------------------------------------------------------------------
 */
XhmikosR's avatar
Dist.  
XhmikosR committed
1177

XhmikosR's avatar
XhmikosR committed
1178
var Carousel = /*#__PURE__*/function () {
XhmikosR's avatar
XhmikosR committed
1179
  function Carousel(element, config) {
XhmikosR's avatar
Dist.  
XhmikosR committed
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
    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
1190
    this._indicatorsElement = SelectorEngine.findOne(SELECTOR_INDICATORS, this._element);
XhmikosR's avatar
Dist.  
XhmikosR committed
1191
    this._touchSupported = 'ontouchstart' in document.documentElement || navigator.maxTouchPoints > 0;
XhmikosR's avatar
XhmikosR committed
1192
    this._pointerEvent = Boolean(window.PointerEvent);
XhmikosR's avatar
Dist.  
XhmikosR committed
1193
1194
1195
1196
1197
1198
1199

    this._addEventListeners();

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


XhmikosR's avatar
XhmikosR committed
1200
  var _proto = Carousel.prototype;
XhmikosR's avatar
Dist.  
XhmikosR committed
1201

XhmikosR's avatar
XhmikosR committed
1202
1203
  // Public
  _proto.next = function next() {
XhmikosR's avatar
Dist.  
XhmikosR committed
1204
    if (!this._isSliding) {
XhmikosR's avatar
XhmikosR committed
1205
      this._slide(DIRECTION_NEXT);
XhmikosR's avatar
Dist.  
XhmikosR committed
1206
    }
XhmikosR's avatar
XhmikosR committed
1207
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
1208

XhmikosR's avatar
XhmikosR committed
1209
  _proto.nextWhenVisible = function nextWhenVisible() {
XhmikosR's avatar
Dist.  
XhmikosR committed
1210
1211
1212
1213
1214
    // 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
1215
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
1216

XhmikosR's avatar
XhmikosR committed
1217
  _proto.prev = function prev() {
XhmikosR's avatar
Dist.  
XhmikosR committed
1218
    if (!this._isSliding) {
XhmikosR's avatar
XhmikosR committed
1219
      this._slide(DIRECTION_PREV);
XhmikosR's avatar
Dist.  
XhmikosR committed
1220
    }
XhmikosR's avatar
XhmikosR committed
1221
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
1222

XhmikosR's avatar
XhmikosR committed
1223
  _proto.pause = function pause(event) {
XhmikosR's avatar
Dist.  
XhmikosR committed
1224
1225
1226
1227
    if (!event) {
      this._isPaused = true;
    }

XhmikosR's avatar
XhmikosR committed
1228
    if (SelectorEngine.findOne(SELECTOR_NEXT_PREV, this._element)) {
XhmikosR's avatar
Dist.  
XhmikosR committed
1229
1230
1231
1232
1233
1234
      triggerTransitionEnd(this._element);
      this.cycle(true);
    }

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

XhmikosR's avatar
XhmikosR committed
1237
  _proto.cycle = function cycle(event) {
XhmikosR's avatar
Dist.  
XhmikosR committed
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
    if (!event) {
      this._isPaused = false;
    }

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

    if (this._config && this._config.interval && !this._isPaused) {
      this._interval = setInterval((document.visibilityState ? this.nextWhenVisible : this.next).bind(this), this._config.interval);
    }
XhmikosR's avatar
XhmikosR committed
1250
1251
1252
1253
  };

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

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

XhmikosR's avatar
XhmikosR committed
1257
    var activeIndex = this._getItemIndex(this._activeElement);
XhmikosR's avatar
Dist.  
XhmikosR committed
1258
1259
1260
1261
1262
1263

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

    if (this._isSliding) {
XhmikosR's avatar
XhmikosR committed
1264
      EventHandler.one(this._element, EVENT_SLID, function () {
XhmikosR's avatar
XhmikosR committed
1265
1266
        return _this.to(index);
      });
XhmikosR's avatar
Dist.  
XhmikosR committed
1267
1268
1269
1270
1271
1272
1273
1274
1275
      return;
    }

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

XhmikosR's avatar
XhmikosR committed
1276
    var direction = index > activeIndex ? DIRECTION_NEXT : DIRECTION_PREV;
XhmikosR's avatar
Dist.  
XhmikosR committed
1277
1278

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

XhmikosR's avatar
XhmikosR committed
1281
  _proto.dispose = function dispose() {
XhmikosR's avatar
Dist.  
XhmikosR committed
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
    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
1293
  ;
XhmikosR's avatar
Dist.  
XhmikosR committed
1294

XhmikosR's avatar
XhmikosR committed
1295
  _proto._getConfig = function _getConfig(config) {
XhmikosR's avatar
XhmikosR committed
1296
    config = _objectSpread2(_objectSpread2({}, Default), config);
XhmikosR's avatar
Dist.  
XhmikosR committed
1297
1298
    typeCheckConfig(NAME$2, config, DefaultType);
    return config;
XhmikosR's avatar
XhmikosR committed
1299
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
1300

XhmikosR's avatar
XhmikosR committed
1301
1302
  _proto._handleSwipe = function _handleSwipe() {
    var absDeltax = Math.abs(this.touchDeltaX);
XhmikosR's avatar
Dist.  
XhmikosR committed
1303
1304
1305
1306
1307

    if (absDeltax <= SWIPE_THRESHOLD) {
      return;
    }

XhmikosR's avatar
XhmikosR committed
1308
1309
    var direction = absDeltax / this.touchDeltaX;
    this.touchDeltaX = 0; // swipe left
XhmikosR's avatar
Dist.  
XhmikosR committed
1310
1311
1312
1313
1314
1315
1316
1317
1318

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


    if (direction < 0) {
      this.next();
    }
XhmikosR's avatar
XhmikosR committed
1319
1320
1321
1322
  };

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

    if (this._config.keyboard) {
XhmikosR's avatar
XhmikosR committed
1325
      EventHandler.on(this._element, EVENT_KEYDOWN, function (event) {
XhmikosR's avatar
XhmikosR committed
1326
1327
        return _this2._keydown(event);
      });
XhmikosR's avatar
Dist.  
XhmikosR committed
1328
1329
1330
    }

    if (this._config.pause === 'hover') {
XhmikosR's avatar
XhmikosR committed
1331
      EventHandler.on(this._element, EVENT_MOUSEENTER, function (event) {
XhmikosR's avatar
XhmikosR committed
1332
1333
        return _this2.pause(event);
      });
XhmikosR's avatar
XhmikosR committed
1334
      EventHandler.on(this._element, EVENT_MOUSELEAVE, function (event) {
XhmikosR's avatar
XhmikosR committed
1335
1336
        return _this2.cycle(event);
      });
XhmikosR's avatar
Dist.  
XhmikosR committed
1337
1338
    }

1339
    if (this._config.touch && this._touchSupported) {
XhmikosR's avatar
Dist.  
XhmikosR committed
1340
1341
      this._addTouchEventListeners();
    }
XhmikosR's avatar
XhmikosR committed
1342
1343
1344
1345
  };

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

XhmikosR's avatar
XhmikosR committed
1347
1348
1349
1350
1351
    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
1352
1353
1354
      }
    };

XhmikosR's avatar
XhmikosR committed
1355
    var move = function move(event) {
XhmikosR's avatar
Dist.  
XhmikosR committed
1356
1357
      // ensure swiping with one touch and not pinching
      if (event.touches && event.touches.length > 1) {
XhmikosR's avatar
XhmikosR committed
1358
        _this3.touchDeltaX = 0;
XhmikosR's avatar
Dist.  
XhmikosR committed
1359
      } else {
XhmikosR's avatar
XhmikosR committed
1360
        _this3.touchDeltaX = event.touches[0].clientX - _this3.touchStartX;
XhmikosR's avatar
Dist.  
XhmikosR committed
1361
1362
1363
      }
    };

XhmikosR's avatar
XhmikosR committed
1364
1365
1366
    var end = function end(event) {
      if (_this3._pointerEvent && PointerType[event.pointerType.toUpperCase()]) {
        _this3.touchDeltaX = event.clientX - _this3.touchStartX;
XhmikosR's avatar
Dist.  
XhmikosR committed
1367
1368
      }

XhmikosR's avatar
XhmikosR committed
1369
      _this3._handleSwipe();
XhmikosR's avatar
Dist.  
XhmikosR committed
1370

XhmikosR's avatar
XhmikosR committed
1371
      if (_this3._config.pause === 'hover') {
XhmikosR's avatar
Dist.  
XhmikosR committed
1372
1373
1374
1375
1376
1377
1378
        // 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
1379
        _this3.pause();
XhmikosR's avatar
Dist.  
XhmikosR committed
1380

XhmikosR's avatar
XhmikosR committed
1381
1382
        if (_this3.touchTimeout) {
          clearTimeout(_this3.touchTimeout);
XhmikosR's avatar
Dist.  
XhmikosR committed
1383
1384
        }

XhmikosR's avatar
XhmikosR committed
1385
1386
1387
        _this3.touchTimeout = setTimeout(function (event) {
          return _this3.cycle(event);
        }, TOUCHEVENT_COMPAT_WAIT + _this3._config.interval);
XhmikosR's avatar
Dist.  
XhmikosR committed
1388
1389
1390
      }
    };

XhmikosR's avatar
XhmikosR committed
1391
1392
    SelectorEngine.find(SELECTOR_ITEM_IMG, this._element).forEach(function (itemImg) {
      EventHandler.on(itemImg, EVENT_DRAG_START, function (e) {
XhmikosR's avatar
XhmikosR committed
1393
1394
        return e.preventDefault();
      });
XhmikosR's avatar
Dist.  
XhmikosR committed
1395
1396
1397
    });

    if (this._pointerEvent) {
XhmikosR's avatar
XhmikosR committed
1398
      EventHandler.on(this._element, EVENT_POINTERDOWN, function (event) {
XhmikosR's avatar
XhmikosR committed
1399
1400
        return start(event);
      });
XhmikosR's avatar
XhmikosR committed
1401
      EventHandler.on(this._element, EVENT_POINTERUP, function (event) {
XhmikosR's avatar
XhmikosR committed
1402
1403
        return end(event);
      });
XhmikosR's avatar
Dist.  
XhmikosR committed
1404

XhmikosR's avatar
XhmikosR committed
1405
      this._element.classList.add(CLASS_NAME_POINTER_EVENT);
XhmikosR's avatar
Dist.  
XhmikosR committed
1406
    } else {
XhmikosR's avatar
XhmikosR committed
1407
      EventHandler.on(this._element, EVENT_TOUCHSTART, function (event) {
XhmikosR's avatar
XhmikosR committed
1408
1409
        return start(event);
      });
XhmikosR's avatar
XhmikosR committed
1410
      EventHandler.on(this._element, EVENT_TOUCHMOVE, function (event) {
XhmikosR's avatar
XhmikosR committed
1411
1412
        return move(event);
      });
XhmikosR's avatar
XhmikosR committed
1413
      EventHandler.on(this._element, EVENT_TOUCHEND, function (event) {
XhmikosR's avatar
XhmikosR committed
1414
1415
        return end(event);
      });
XhmikosR's avatar
Dist.  
XhmikosR committed
1416
    }
XhmikosR's avatar
XhmikosR committed
1417
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
1418

XhmikosR's avatar
XhmikosR committed
1419
  _proto._keydown = function _keydown(event) {
XhmikosR's avatar
Dist.  
XhmikosR committed
1420
1421
1422
1423
    if (/input|textarea/i.test(event.target.tagName)) {
      return;
    }

XhmikosR's avatar
XhmikosR committed
1424
1425
    switch (event.key) {
      case ARROW_LEFT_KEY:
XhmikosR's avatar
Dist.  
XhmikosR committed
1426
1427
1428
1429
        event.preventDefault();
        this.prev();
        break;

XhmikosR's avatar
XhmikosR committed
1430
      case ARROW_RIGHT_KEY:
XhmikosR's avatar
Dist.  
XhmikosR committed
1431
1432
1433
1434
        event.preventDefault();
        this.next();
        break;
    }
XhmikosR's avatar
XhmikosR committed
1435
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
1436

XhmikosR's avatar
XhmikosR committed
1437
  _proto._getItemIndex = function _getItemIndex(element) {
XhmikosR's avatar
XhmikosR committed
1438
    this._items = element && element.parentNode ? SelectorEngine.find(SELECTOR_ITEM, element.parentNode) : [];
XhmikosR's avatar
Dist.  
XhmikosR committed
1439
    return this._items.indexOf(element);
XhmikosR's avatar
XhmikosR committed
1440
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
1441

XhmikosR's avatar
XhmikosR committed
1442
  _proto._getItemByDirection = function _getItemByDirection(direction, activeElement) {
XhmikosR's avatar
XhmikosR committed
1443
1444
    var isNextDirection = direction === DIRECTION_NEXT;
    var isPrevDirection = direction === DIRECTION_PREV;
XhmikosR's avatar
Dist.  
XhmikosR committed
1445

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

XhmikosR's avatar
XhmikosR committed
1448
1449
    var lastItemIndex = this._items.length - 1;
    var isGoingToWrap = isPrevDirection && activeIndex === 0 || isNextDirection && activeIndex === lastItemIndex;
XhmikosR's avatar
Dist.  
XhmikosR committed
1450
1451
1452
1453
1454

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

XhmikosR's avatar
XhmikosR committed
1455
    var delta = direction === DIRECTION_PREV ? -1 : 1;
XhmikosR's avatar
XhmikosR committed
1456
    var itemIndex = (activeIndex + delta) % this._items.length;
XhmikosR's avatar
Dist.  
XhmikosR committed
1457
    return itemIndex === -1 ? this._items[this._items.length - 1] : this._items[itemIndex];
XhmikosR's avatar
XhmikosR committed
1458
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
1459

XhmikosR's avatar
XhmikosR committed
1460
1461
  _proto._triggerSlideEvent = function _triggerSlideEvent(relatedTarget, eventDirectionName) {
    var targetIndex = this._getItemIndex(relatedTarget);
XhmikosR's avatar
Dist.  
XhmikosR committed
1462

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

XhmikosR's avatar
XhmikosR committed
1465
    return EventHandler.trigger(this._element, EVENT_SLIDE, {
XhmikosR's avatar
XhmikosR committed
1466
      relatedTarget: relatedTarget,
XhmikosR's avatar
Dist.  
XhmikosR committed
1467
1468
1469
1470
      direction: eventDirectionName,
      from: fromIndex,
      to: targetIndex
    });
XhmikosR's avatar
XhmikosR committed
1471
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
1472

XhmikosR's avatar
XhmikosR committed
1473
  _proto._setActiveIndicatorElement = function _setActiveIndicatorElement(element) {
XhmikosR's avatar
Dist.  
XhmikosR committed
1474
    if (this._indicatorsElement) {
XhmikosR's avatar
XhmikosR committed
1475
      var indicators = SelectorEngine.find(SELECTOR_ACTIVE, this._indicatorsElement);
XhmikosR's avatar
Dist.  
XhmikosR committed
1476

XhmikosR's avatar
XhmikosR committed
1477
      for (var i = 0; i < indicators.length; i++) {
XhmikosR's avatar
XhmikosR committed
1478
        indicators[i].classList.remove(CLASS_NAME_ACTIVE$1);
XhmikosR's avatar
Dist.  
XhmikosR committed
1479
1480
      }

XhmikosR's avatar
XhmikosR committed
1481
      var nextIndicator = this._indicatorsElement.children[this._getItemIndex(element)];
XhmikosR's avatar
Dist.  
XhmikosR committed
1482
1483

      if (nextIndicator) {
XhmikosR's avatar
XhmikosR committed
1484
        nextIndicator.classList.add(CLASS_NAME_ACTIVE$1);
XhmikosR's avatar
Dist.  
XhmikosR committed
1485
1486
      }
    }
XhmikosR's avatar
XhmikosR committed
1487
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
1488

XhmikosR's avatar
XhmikosR committed
1489
1490
  _proto._slide = function _slide(direction, element) {
    var _this4 = this;
XhmikosR's avatar
Dist.  
XhmikosR committed
1491

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

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

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

XhmikosR's avatar
XhmikosR committed
1498
1499
1500
1501
1502
1503
    var nextElementIndex = this._getItemIndex(nextElement);

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

XhmikosR's avatar
XhmikosR committed
1505
1506
1507
1508
    if (direction === DIRECTION_NEXT) {
      directionalClassName = CLASS_NAME_LEFT;
      orderClassName = CLASS_NAME_NEXT;
      eventDirectionName = DIRECTION_LEFT;
XhmikosR's avatar
Dist.  
XhmikosR committed
1509
    } else {
XhmikosR's avatar
XhmikosR committed
1510
1511
1512
      directionalClassName = CLASS_NAME_RIGHT;
      orderClassName = CLASS_NAME_PREV;
      eventDirectionName = DIRECTION_RIGHT;
XhmikosR's avatar
Dist.  
XhmikosR committed
1513
1514
    }

XhmikosR's avatar
XhmikosR committed
1515
    if (nextElement && nextElement.classList.contains(CLASS_NAME_ACTIVE$1)) {
XhmikosR's avatar
Dist.  
XhmikosR committed
1516
1517
1518
1519
      this._isSliding = false;
      return;
    }

XhmikosR's avatar
XhmikosR committed
1520
    var slideEvent = this._triggerSlideEvent(nextElement, eventDirectionName);
XhmikosR's avatar
Dist.  
XhmikosR committed
1521
1522
1523
1524
1525
1526
1527
1528
1529
1530
1531
1532
1533
1534
1535
1536
1537
1538

    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
1539
    if (this._element.classList.contains(CLASS_NAME_SLIDE)) {
XhmikosR's avatar
Dist.  
XhmikosR committed
1540
1541
1542
1543
      nextElement.classList.add(orderClassName);
      reflow(nextElement);
      activeElement.classList.add(directionalClassName);
      nextElement.classList.add(directionalClassName);
XhmikosR's avatar
XhmikosR committed
1544
      var nextElementInterval = parseInt(nextElement.getAttribute('data-interval'), 10);
XhmikosR's avatar
Dist.  
XhmikosR committed
1545
1546
1547
1548
1549
1550
1551
1552

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

XhmikosR's avatar
XhmikosR committed
1553
1554
      var transitionDuration = getTransitionDurationFromElement(activeElement);
      EventHandler.one(activeElement, TRANSITION_END, function () {
XhmikosR's avatar
XhmikosR committed
1555
        nextElement.classList.remove(directionalClassName, orderClassName);
XhmikosR's avatar
XhmikosR committed
1556
        nextElement.classList.add(CLASS_NAME_ACTIVE$1);
XhmikosR's avatar
XhmikosR committed
1557
        activeElement.classList.remove(CLASS_NAME_ACTIVE$1, orderClassName, directionalClassName);
XhmikosR's avatar
XhmikosR committed
1558
1559
        _this4._isSliding = false;
        setTimeout(function () {
XhmikosR's avatar
XhmikosR committed
1560
          EventHandler.trigger(_this4._element, EVENT_SLID, {
XhmikosR's avatar
Dist.  
XhmikosR committed
1561
1562
1563
1564
1565
1566
1567
1568
1569
            relatedTarget: nextElement,
            direction: eventDirectionName,
            from: activeElementIndex,
            to: nextElementIndex
          });
        }, 0);
      });
      emulateTransitionEnd(activeElement, transitionDuration);
    } else {
XhmikosR's avatar
XhmikosR committed
1570
1571
      activeElement.classList.remove(CLASS_NAME_ACTIVE$1);
      nextElement.classList.add(CLASS_NAME_ACTIVE$1);
XhmikosR's avatar
Dist.  
XhmikosR committed
1572
      this._isSliding = false;
XhmikosR's avatar
XhmikosR committed
1573
      EventHandler.trigger(this._element, EVENT_SLID, {
XhmikosR's avatar
Dist.  
XhmikosR committed
1574
1575
1576
1577
1578
1579
1580
1581
1582
1583
1584
        relatedTarget: nextElement,
        direction: eventDirectionName,
        from: activeElementIndex,
        to: nextElementIndex
      });
    }

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

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

XhmikosR's avatar
XhmikosR committed
1590
    var _config = _objectSpread2(_objectSpread2({}, Default), Manipulator.getDataAttributes(element));
XhmikosR's avatar
Dist.  
XhmikosR committed
1591
1592

    if (typeof config === 'object') {
XhmikosR's avatar
XhmikosR committed
1593
      _config = _objectSpread2(_objectSpread2({}, _config), config);
XhmikosR's avatar
Dist.  
XhmikosR committed
1594
1595
    }

XhmikosR's avatar
XhmikosR committed
1596
    var action = typeof config === 'string' ? config : _config.slide;
XhmikosR's avatar
Dist.  
XhmikosR committed
1597
1598
1599
1600
1601
1602
1603
1604
1605

    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
1606
        throw new TypeError("No method named \"" + action + "\"");
XhmikosR's avatar
Dist.  
XhmikosR committed
1607
1608
1609
1610
1611
1612
1613
      }

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

XhmikosR's avatar
XhmikosR committed
1616
  Carousel.jQueryInterface = function jQueryInterface(config) {
XhmikosR's avatar
Dist.  
XhmikosR committed
1617
    return this.each(function () {
XhmikosR's avatar
XhmikosR committed
1618
      Carousel.carouselInterface(this, config);
XhmikosR's avatar
Dist.  
XhmikosR committed
1619
    });
XhmikosR's avatar
XhmikosR committed
1620
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
1621

XhmikosR's avatar
XhmikosR committed
1622
1623
  Carousel.dataApiClickHandler = function dataApiClickHandler(event) {
    var target = getElementFromSelector(this);
XhmikosR's avatar
Dist.  
XhmikosR committed
1624

XhmikosR's avatar
XhmikosR committed
1625
    if (!target || !target.classList.contains(CLASS_NAME_CAROUSEL)) {
XhmikosR's avatar
Dist.  
XhmikosR committed
1626
1627
1628
      return;
    }

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

XhmikosR's avatar
XhmikosR committed
1631
    var slideIndex = this.getAttribute('data-slide-to');
XhmikosR's avatar
Dist.  
XhmikosR committed
1632
1633
1634
1635
1636

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

XhmikosR's avatar
XhmikosR committed
1637
    Carousel.carouselInterface(target, config);
XhmikosR's avatar
Dist.  
XhmikosR committed
1638
1639
1640
1641
1642
1643

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

    event.preventDefault();
XhmikosR's avatar
XhmikosR committed
1644
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
1645

XhmikosR's avatar
XhmikosR committed
1646
  Carousel.getInstance = function getInstance(element) {
XhmikosR's avatar
Dist.  
XhmikosR committed
1647
    return Data.getData(element, DATA_KEY$2);
XhmikosR's avatar
XhmikosR committed
1648
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
1649

XhmikosR's avatar
XhmikosR committed
1650
1651
1652
1653
1654
1655
1656
1657
1658
1659
1660
1661
1662
1663
  _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
1664
1665
1666
1667
1668
1669
1670
/**
 * ------------------------------------------------------------------------
 * Data Api implementation
 * ------------------------------------------------------------------------
 */


XhmikosR's avatar
XhmikosR committed
1671
1672
1673
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
1674

XhmikosR's avatar
XhmikosR committed
1675
  for (var i = 0, len = carousels.length; i < len; i++) {
XhmikosR's avatar
XhmikosR committed
1676
    Carousel.carouselInterface(carousels[i], Data.getData(carousels[i], DATA_KEY$2));
XhmikosR's avatar
Dist.  
XhmikosR committed
1677
1678
  }
});
XhmikosR's avatar
XhmikosR committed
1679
var $$3 = getjQuery();
XhmikosR's avatar
Dist.  
XhmikosR committed
1680
1681
1682
1683
1684
1685
1686
/**
 * ------------------------------------------------------------------------
 * jQuery
 * ------------------------------------------------------------------------
 * add .carousel to jQuery only if jQuery is present
 */

1687
1688
/* istanbul ignore if */

XhmikosR's avatar
XhmikosR committed
1689
1690
1691
1692
if ($$3) {
  var JQUERY_NO_CONFLICT$2 = $$3.fn[NAME$2];
  $$3.fn[NAME$2] = Carousel.jQueryInterface;
  $$3.fn[NAME$2].Constructor = Carousel;
XhmikosR's avatar
Dist.  
XhmikosR committed
1693

XhmikosR's avatar
XhmikosR committed
1694
1695
1696
  $$3.fn[NAME$2].noConflict = function () {
    $$3.fn[NAME$2] = JQUERY_NO_CONFLICT$2;
    return Carousel.jQueryInterface;
XhmikosR's avatar
Dist.  
XhmikosR committed
1697
1698
1699
1700
1701
1702
1703
1704
1705
  };
}

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

XhmikosR's avatar
XhmikosR committed
1706
var NAME$3 = 'collapse';
1707
var VERSION$3 = '5.0.0-alpha1';
XhmikosR's avatar
XhmikosR committed
1708
1709
1710
1711
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
1712
1713
1714
  toggle: true,
  parent: ''
};
XhmikosR's avatar
XhmikosR committed
1715
var DefaultType$1 = {
XhmikosR's avatar
Dist.  
XhmikosR committed
1716
1717
1718
  toggle: 'boolean',
  parent: '(string|element)'
};
XhmikosR's avatar
XhmikosR committed
1719
1720
1721
1722
1723
1724
1725
1726
1727
1728
1729
1730
1731
var EVENT_SHOW = "show" + EVENT_KEY$3;
var EVENT_SHOWN = "shown" + EVENT_KEY$3;
var EVENT_HIDE = "hide" + EVENT_KEY$3;
var EVENT_HIDDEN = "hidden" + EVENT_KEY$3;
var EVENT_CLICK_DATA_API$3 = "click" + EVENT_KEY$3 + DATA_API_KEY$3;
var CLASS_NAME_SHOW = 'show';
var CLASS_NAME_COLLAPSE = 'collapse';
var CLASS_NAME_COLLAPSING = 'collapsing';
var CLASS_NAME_COLLAPSED = 'collapsed';
var WIDTH = 'width';
var HEIGHT = 'height';
var SELECTOR_ACTIVES = '.show, .collapsing';
var SELECTOR_DATA_TOGGLE$1 = '[data-toggle="collapse"]';
XhmikosR's avatar
XhmikosR committed
1732
1733
1734
1735
1736
/**
 * ------------------------------------------------------------------------
 * Class Definition
 * ------------------------------------------------------------------------
 */
XhmikosR's avatar
Dist.  
XhmikosR committed
1737

XhmikosR's avatar
XhmikosR committed
1738
var Collapse = /*#__PURE__*/function () {
XhmikosR's avatar
XhmikosR committed
1739
  function Collapse(element, config) {
XhmikosR's avatar
Dist.  
XhmikosR committed
1740
1741
1742
    this._isTransitioning = false;
    this._element = element;
    this._config = this._getConfig(config);
XhmikosR's avatar
XhmikosR committed
1743
1744
    this._triggerArray = SelectorEngine.find(SELECTOR_DATA_TOGGLE$1 + "[href=\"#" + element.id + "\"]," + (SELECTOR_DATA_TOGGLE$1 + "[data-target=\"#" + element.id + "\"]"));
    var toggleList = SelectorEngine.find(SELECTOR_DATA_TOGGLE$1);
XhmikosR's avatar
XhmikosR committed
1745
1746
1747
1748

    for (var i = 0, len = toggleList.length; i < len; i++) {
      var elem = toggleList[i];
      var selector = getSelectorFromElement(elem);
XhmikosR's avatar
XhmikosR committed
1749
      var filterElement = SelectorEngine.find(selector).filter(function (foundElem) {
XhmikosR's avatar
XhmikosR committed
1750
1751
        return foundElem === element;
      });
XhmikosR's avatar
Dist.  
XhmikosR committed
1752
1753
1754
1755
1756
1757
1758
1759
1760
1761
1762
1763
1764
1765
1766
1767
1768
1769
1770
1771
1772
1773

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

XhmikosR's avatar
XhmikosR committed
1776
1777
  // Public
  _proto.toggle = function toggle() {
XhmikosR's avatar
XhmikosR committed
1778
    if (this._element.classList.contains(CLASS_NAME_SHOW)) {
XhmikosR's avatar
Dist.  
XhmikosR committed
1779
1780
1781
1782
      this.hide();
    } else {
      this.show();
    }
XhmikosR's avatar
XhmikosR committed
1783
1784
1785
1786
  };

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

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

XhmikosR's avatar
XhmikosR committed
1792
1793
    var actives;
    var activesData;
XhmikosR's avatar
Dist.  
XhmikosR committed
1794
1795

    if (this._parent) {
XhmikosR's avatar
XhmikosR committed
1796
      actives = SelectorEngine.find(SELECTOR_ACTIVES, this._parent).filter(function (elem) {
XhmikosR's avatar
XhmikosR committed
1797
1798
        if (typeof _this._config.parent === 'string') {
          return elem.getAttribute('data-parent') === _this._config.parent;
XhmikosR's avatar
Dist.  
XhmikosR committed
1799
1800
        }

XhmikosR's avatar
XhmikosR committed
1801
        return elem.classList.contains(CLASS_NAME_COLLAPSE);
XhmikosR's avatar
Dist.  
XhmikosR committed
1802
1803
1804
1805
1806
1807
1808
      });

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

XhmikosR's avatar
XhmikosR committed
1809
    var container = SelectorEngine.findOne(this._selector);
XhmikosR's avatar
Dist.  
XhmikosR committed
1810
1811

    if (actives) {
XhmikosR's avatar
XhmikosR committed
1812
1813
1814
      var tempActiveData = actives.filter(function (elem) {
        return container !== elem;
      });
XhmikosR's avatar
Dist.  
XhmikosR committed
1815
1816
1817
1818
1819
1820
1821
      activesData = tempActiveData[0] ? Data.getData(tempActiveData[0], DATA_KEY$3) : null;

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

XhmikosR's avatar
XhmikosR committed
1822
    var startEvent = EventHandler.trigger(this._element, EVENT_SHOW);
XhmikosR's avatar
Dist.  
XhmikosR committed
1823
1824
1825
1826
1827
1828

    if (startEvent.defaultPrevented) {
      return;
    }

    if (actives) {
XhmikosR's avatar
XhmikosR committed
1829
      actives.forEach(function (elemActive) {
XhmikosR's avatar
Dist.  
XhmikosR committed
1830
        if (container !== elemActive) {
XhmikosR's avatar
XhmikosR committed
1831
          Collapse.collapseInterface(elemActive, 'hide');
XhmikosR's avatar
Dist.  
XhmikosR committed
1832
1833
1834
1835
1836
1837
1838
1839
        }

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

XhmikosR's avatar
XhmikosR committed
1840
    var dimension = this._getDimension();
XhmikosR's avatar
Dist.  
XhmikosR committed
1841

XhmikosR's avatar
XhmikosR committed
1842
    this._element.classList.remove(CLASS_NAME_COLLAPSE);
XhmikosR's avatar
Dist.  
XhmikosR committed
1843

XhmikosR's avatar
XhmikosR committed
1844
    this._element.classList.add(CLASS_NAME_COLLAPSING);
XhmikosR's avatar
Dist.  
XhmikosR committed
1845
1846
1847
1848

    this._element.style[dimension] = 0;

    if (this._triggerArray.length) {
XhmikosR's avatar
XhmikosR committed
1849
      this._triggerArray.forEach(function (element) {
XhmikosR's avatar
XhmikosR committed
1850
        element.classList.remove(CLASS_NAME_COLLAPSED);
XhmikosR's avatar
Dist.  
XhmikosR committed
1851
1852
1853
1854
1855
1856
        element.setAttribute('aria-expanded', true);
      });
    }

    this.setTransitioning(true);

XhmikosR's avatar
XhmikosR committed
1857
    var complete = function complete() {
XhmikosR's avatar
XhmikosR committed
1858
      _this._element.classList.remove(CLASS_NAME_COLLAPSING);
XhmikosR's avatar
XhmikosR committed
1859

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

XhmikosR's avatar
XhmikosR committed
1862
      _this._element.style[dimension] = '';
XhmikosR's avatar
Dist.  
XhmikosR committed
1863

XhmikosR's avatar
XhmikosR committed
1864
      _this.setTransitioning(false);
XhmikosR's avatar
Dist.  
XhmikosR committed
1865

XhmikosR's avatar
XhmikosR committed
1866
      EventHandler.trigger(_this._element, EVENT_SHOWN);
XhmikosR's avatar
Dist.  
XhmikosR committed
1867
1868
    };

XhmikosR's avatar
XhmikosR committed
1869
1870
1871
    var capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1);
    var scrollSize = "scroll" + capitalizedDimension;
    var transitionDuration = getTransitionDurationFromElement(this._element);
XhmikosR's avatar
Dist.  
XhmikosR committed
1872
1873
    EventHandler.one(this._element, TRANSITION_END, complete);
    emulateTransitionEnd(this._element, transitionDuration);
XhmikosR's avatar
XhmikosR committed
1874
1875
1876
1877
1878
    this._element.style[dimension] = this._element[scrollSize] + "px";
  };

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

XhmikosR's avatar
XhmikosR committed
1880
    if (this._isTransitioning || !this._element.classList.contains(CLASS_NAME_SHOW)) {
XhmikosR's avatar
Dist.  
XhmikosR committed
1881
1882
1883
      return;
    }

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

    if (startEvent.defaultPrevented) {
      return;
    }

XhmikosR's avatar
XhmikosR committed
1890
    var dimension = this._getDimension();
XhmikosR's avatar
Dist.  
XhmikosR committed
1891

XhmikosR's avatar
XhmikosR committed
1892
    this._element.style[dimension] = this._element.getBoundingClientRect()[dimension] + "px";
XhmikosR's avatar
Dist.  
XhmikosR committed
1893
1894
    reflow(this._element);

XhmikosR's avatar
XhmikosR committed
1895
    this._element.classList.add(CLASS_NAME_COLLAPSING);
XhmikosR's avatar
Dist.  
XhmikosR committed
1896

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

XhmikosR's avatar
XhmikosR committed
1899
    var triggerArrayLength = this._triggerArray.length;
XhmikosR's avatar
Dist.  
XhmikosR committed
1900
1901

    if (triggerArrayLength > 0) {
XhmikosR's avatar
XhmikosR committed
1902
1903
      for (var i = 0; i < triggerArrayLength; i++) {
        var trigger = this._triggerArray[i];
XhmikosR's avatar
XhmikosR committed
1904
        var elem = getElementFromSelector(trigger);
XhmikosR's avatar
Dist.  
XhmikosR committed
1905

XhmikosR's avatar
XhmikosR committed
1906
1907
        if (elem && !elem.classList.contains(CLASS_NAME_SHOW)) {
          trigger.classList.add(CLASS_NAME_COLLAPSED);
XhmikosR's avatar
XhmikosR committed
1908
          trigger.setAttribute('aria-expanded', false);
XhmikosR's avatar
Dist.  
XhmikosR committed
1909
1910
1911
1912
1913
1914
        }
      }
    }

    this.setTransitioning(true);

XhmikosR's avatar
XhmikosR committed
1915
1916
    var complete = function complete() {
      _this2.setTransitioning(false);
XhmikosR's avatar
Dist.  
XhmikosR committed
1917

XhmikosR's avatar
XhmikosR committed
1918
      _this2._element.classList.remove(CLASS_NAME_COLLAPSING);
XhmikosR's avatar
Dist.  
XhmikosR committed
1919

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

XhmikosR's avatar
XhmikosR committed
1922
      EventHandler.trigger(_this2._element, EVENT_HIDDEN);
XhmikosR's avatar
Dist.  
XhmikosR committed
1923
1924
1925
    };

    this._element.style[dimension] = '';
XhmikosR's avatar
XhmikosR committed
1926
    var transitionDuration = getTransitionDurationFromElement(this._element);
XhmikosR's avatar
Dist.  
XhmikosR committed
1927
1928
    EventHandler.one(this._element, TRANSITION_END, complete);
    emulateTransitionEnd(this._element, transitionDuration);
XhmikosR's avatar
XhmikosR committed
1929
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
1930

XhmikosR's avatar
XhmikosR committed
1931
  _proto.setTransitioning = function setTransitioning(isTransitioning) {
XhmikosR's avatar
Dist.  
XhmikosR committed
1932
    this._isTransitioning = isTransitioning;
XhmikosR's avatar
XhmikosR committed
1933
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
1934

XhmikosR's avatar
XhmikosR committed
1935
  _proto.dispose = function dispose() {
XhmikosR's avatar
Dist.  
XhmikosR committed
1936
1937
1938
1939
1940
1941
1942
    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
1943
  ;
XhmikosR's avatar
Dist.  
XhmikosR committed
1944

XhmikosR's avatar
XhmikosR committed
1945
  _proto._getConfig = function _getConfig(config) {
XhmikosR's avatar
XhmikosR committed
1946
    config = _objectSpread2(_objectSpread2({}, Default$1), config);
XhmikosR's avatar
Dist.  
XhmikosR committed
1947
1948
1949
1950
    config.toggle = Boolean(config.toggle); // Coerce string values

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

XhmikosR's avatar
XhmikosR committed
1953
  _proto._getDimension = function _getDimension() {
XhmikosR's avatar
XhmikosR committed
1954
    var hasWidth = this._element.classList.contains(WIDTH);
XhmikosR's avatar
Dist.  
XhmikosR committed
1955

XhmikosR's avatar
XhmikosR committed
1956
    return hasWidth ? WIDTH : HEIGHT;
XhmikosR's avatar
XhmikosR committed
1957
1958
1959
1960
  };

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

XhmikosR's avatar
XhmikosR committed
1962
    var parent = this._config.parent;
XhmikosR's avatar
Dist.  
XhmikosR committed
1963
1964
1965
1966
1967
1968
1969
1970
1971
1972

    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
1973
1974
    var selector = SELECTOR_DATA_TOGGLE$1 + "[data-parent=\"" + parent + "\"]";
    SelectorEngine.find(selector, parent).forEach(function (element) {
XhmikosR's avatar
XhmikosR committed
1975
      var selected = getElementFromSelector(element);
1976
1977

      _this3._addAriaAndCollapsedClass(selected, [element]);
XhmikosR's avatar
Dist.  
XhmikosR committed
1978
1979
    });
    return parent;
XhmikosR's avatar
XhmikosR committed
1980
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
1981

XhmikosR's avatar
XhmikosR committed
1982
  _proto._addAriaAndCollapsedClass = function _addAriaAndCollapsedClass(element, triggerArray) {
XhmikosR's avatar
Dist.  
XhmikosR committed
1983
    if (element) {
XhmikosR's avatar
XhmikosR committed
1984
      var isOpen = element.classList.contains(CLASS_NAME_SHOW);
XhmikosR's avatar
Dist.  
XhmikosR committed
1985
1986

      if (triggerArray.length) {
XhmikosR's avatar
XhmikosR committed
1987
        triggerArray.forEach(function (elem) {
XhmikosR's avatar
Dist.  
XhmikosR committed
1988
          if (isOpen) {
XhmikosR's avatar
XhmikosR committed
1989
            elem.classList.remove(CLASS_NAME_COLLAPSED);
XhmikosR's avatar
Dist.  
XhmikosR committed
1990
          } else {
XhmikosR's avatar
XhmikosR committed
1991
            elem.classList.add(CLASS_NAME_COLLAPSED);
XhmikosR's avatar
Dist.  
XhmikosR committed
1992
1993
1994
1995
1996
1997
1998
          }

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

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

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

XhmikosR's avatar
XhmikosR committed
2006
    if (!data && _config.toggle && typeof config === 'string' && /show|hide/.test(config)) {
XhmikosR's avatar
Dist.  
XhmikosR committed
2007
2008
2009
2010
2011
2012
2013
2014
2015
      _config.toggle = false;
    }

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

    if (typeof config === 'string') {
      if (typeof data[config] === 'undefined') {
XhmikosR's avatar
XhmikosR committed
2016
        throw new TypeError("No method named \"" + config + "\"");
XhmikosR's avatar
Dist.  
XhmikosR committed
2017
2018
2019
2020
      }

      data[config]();
    }
XhmikosR's avatar
XhmikosR committed
2021
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
2022

XhmikosR's avatar
XhmikosR committed
2023
  Collapse.jQueryInterface = function jQueryInterface(config) {
XhmikosR's avatar
Dist.  
XhmikosR committed
2024
    return this.each(function () {
XhmikosR's avatar
XhmikosR committed
2025
      Collapse.collapseInterface(this, config);
XhmikosR's avatar
Dist.  
XhmikosR committed
2026
    });
XhmikosR's avatar
XhmikosR committed
2027
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
2028

XhmikosR's avatar
XhmikosR committed
2029
  Collapse.getInstance = function getInstance(element) {
XhmikosR's avatar
Dist.  
XhmikosR committed
2030
    return Data.getData(element, DATA_KEY$3);
XhmikosR's avatar
XhmikosR committed
2031
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
2032

XhmikosR's avatar
XhmikosR committed
2033
2034
2035
2036
2037
2038
2039
2040
2041
2042
2043
2044
2045
2046
  _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
2047
2048
2049
2050
2051
2052
2053
/**
 * ------------------------------------------------------------------------
 * Data Api implementation
 * ------------------------------------------------------------------------
 */


XhmikosR's avatar
XhmikosR committed
2054
EventHandler.on(document, EVENT_CLICK_DATA_API$3, SELECTOR_DATA_TOGGLE$1, function (event) {
XhmikosR's avatar
Dist.  
XhmikosR committed
2055
2056
2057
2058
2059
  // 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
2060
2061
  var triggerData = Manipulator.getDataAttributes(this);
  var selector = getSelectorFromElement(this);
XhmikosR's avatar
XhmikosR committed
2062
  var selectorElements = SelectorEngine.find(selector);
XhmikosR's avatar
XhmikosR committed
2063
2064
2065
  selectorElements.forEach(function (element) {
    var data = Data.getData(element, DATA_KEY$3);
    var config;
XhmikosR's avatar
Dist.  
XhmikosR committed
2066
2067
2068
2069
2070
2071
2072
2073
2074
2075
2076
2077
2078

    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
2079
    Collapse.collapseInterface(element, config);
XhmikosR's avatar
Dist.  
XhmikosR committed
2080
2081
  });
});
XhmikosR's avatar
XhmikosR committed
2082
var $$4 = getjQuery();
XhmikosR's avatar
Dist.  
XhmikosR committed
2083
2084
2085
2086
2087
2088
2089
/**
 * ------------------------------------------------------------------------
 * jQuery
 * ------------------------------------------------------------------------
 * add .collapse to jQuery only if jQuery is present
 */

2090
2091
/* istanbul ignore if */

XhmikosR's avatar
XhmikosR committed
2092
2093
2094
2095
if ($$4) {
  var JQUERY_NO_CONFLICT$3 = $$4.fn[NAME$3];
  $$4.fn[NAME$3] = Collapse.jQueryInterface;
  $$4.fn[NAME$3].Constructor = Collapse;
XhmikosR's avatar
Dist.  
XhmikosR committed
2096

XhmikosR's avatar
XhmikosR committed
2097
2098
2099
  $$4.fn[NAME$3].noConflict = function () {
    $$4.fn[NAME$3] = JQUERY_NO_CONFLICT$3;
    return Collapse.jQueryInterface;
XhmikosR's avatar
Dist.  
XhmikosR committed
2100
2101
2102
2103
2104
2105
2106
2107
2108
  };
}

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

XhmikosR's avatar
XhmikosR committed
2109
var NAME$4 = 'dropdown';
2110
var VERSION$4 = '5.0.0-alpha1';
XhmikosR's avatar
XhmikosR committed
2111
2112
2113
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
2114
2115
2116
2117
2118
2119
2120
2121
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
2122
2123
2124
2125
2126
2127
2128
2129
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
2130
var CLASS_NAME_DISABLED = 'disabled';
XhmikosR's avatar
XhmikosR committed
2131
2132
2133
2134
2135
2136
2137
2138
2139
2140
2141
2142
2143
2144
2145
2146
2147
2148
var CLASS_NAME_SHOW$1 = 'show';
var CLASS_NAME_DROPUP = 'dropup';
var CLASS_NAME_DROPRIGHT = 'dropright';
var CLASS_NAME_DROPLEFT = 'dropleft';
var CLASS_NAME_MENURIGHT = 'dropdown-menu-right';
var CLASS_NAME_NAVBAR = 'navbar';
var CLASS_NAME_POSITION_STATIC = 'position-static';
var SELECTOR_DATA_TOGGLE$2 = '[data-toggle="dropdown"]';
var SELECTOR_FORM_CHILD = '.dropdown form';
var SELECTOR_MENU = '.dropdown-menu';
var SELECTOR_NAVBAR_NAV = '.navbar-nav';
var SELECTOR_VISIBLE_ITEMS = '.dropdown-menu .dropdown-item:not(.disabled):not(:disabled)';
var PLACEMENT_TOP = 'top-start';
var PLACEMENT_TOPEND = 'top-end';
var PLACEMENT_BOTTOM = 'bottom-start';
var PLACEMENT_BOTTOMEND = 'bottom-end';
var PLACEMENT_RIGHT = 'right-start';
var PLACEMENT_LEFT = 'left-start';
XhmikosR's avatar
XhmikosR committed
2149
var Default$2 = {
XhmikosR's avatar
Dist.  
XhmikosR committed
2150
2151
2152
2153
  offset: 0,
  flip: true,
  boundary: 'scrollParent',
  reference: 'toggle',
XhmikosR's avatar
XhmikosR committed
2154
2155
  display: 'dynamic',
  popperConfig: null
XhmikosR's avatar
Dist.  
XhmikosR committed
2156
};
XhmikosR's avatar
XhmikosR committed
2157
var DefaultType$2 = {
XhmikosR's avatar
Dist.  
XhmikosR committed
2158
2159
2160
2161
  offset: '(number|string|function)',
  flip: 'boolean',
  boundary: '(string|element)',
  reference: '(string|element)',
XhmikosR's avatar
XhmikosR committed
2162
2163
  display: 'string',
  popperConfig: '(null|object)'
XhmikosR's avatar
Dist.  
XhmikosR committed
2164
};
XhmikosR's avatar
XhmikosR committed
2165
2166
2167
2168
2169
/**
 * ------------------------------------------------------------------------
 * Class Definition
 * ------------------------------------------------------------------------
 */
XhmikosR's avatar
Dist.  
XhmikosR committed
2170

XhmikosR's avatar
XhmikosR committed
2171
var Dropdown = /*#__PURE__*/function () {
XhmikosR's avatar
XhmikosR committed
2172
  function Dropdown(element, config) {
XhmikosR's avatar
Dist.  
XhmikosR committed
2173
2174
2175
2176
2177
2178
2179
2180
2181
2182
2183
2184
    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
2185
  var _proto = Dropdown.prototype;
XhmikosR's avatar
Dist.  
XhmikosR committed
2186

XhmikosR's avatar
XhmikosR committed
2187
2188
  // Public
  _proto.toggle = function toggle() {
XhmikosR's avatar
XhmikosR committed
2189
    if (this._element.disabled || this._element.classList.contains(CLASS_NAME_DISABLED)) {
XhmikosR's avatar
Dist.  
XhmikosR committed
2190
2191
2192
      return;
    }

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

XhmikosR's avatar
XhmikosR committed
2195
    Dropdown.clearMenus();
XhmikosR's avatar
Dist.  
XhmikosR committed
2196
2197
2198
2199
2200

    if (isActive) {
      return;
    }

XhmikosR's avatar
XhmikosR committed
2201
2202
2203
2204
    this.show();
  };

  _proto.show = function show() {
XhmikosR's avatar
XhmikosR committed
2205
    if (this._element.disabled || this._element.classList.contains(CLASS_NAME_DISABLED) || this._menu.classList.contains(CLASS_NAME_SHOW$1)) {
XhmikosR's avatar
XhmikosR committed
2206
2207
2208
2209
      return;
    }

    var parent = Dropdown.getParentFromElement(this._element);
XhmikosR's avatar
XhmikosR committed
2210
    var relatedTarget = {
XhmikosR's avatar
Dist.  
XhmikosR committed
2211
2212
      relatedTarget: this._element
    };
XhmikosR's avatar
XhmikosR committed
2213
    var showEvent = EventHandler.trigger(this._element, EVENT_SHOW$1, relatedTarget);
XhmikosR's avatar
Dist.  
XhmikosR committed
2214
2215
2216
2217
2218
2219
2220
2221
2222
2223
2224

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


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

XhmikosR's avatar
XhmikosR committed
2225
      var referenceElement = this._element;
XhmikosR's avatar
Dist.  
XhmikosR committed
2226
2227
2228
2229
2230
2231
2232
2233
2234
2235
2236
2237
2238
2239
2240

      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
2241
        parent.classList.add(CLASS_NAME_POSITION_STATIC);
XhmikosR's avatar
Dist.  
XhmikosR committed
2242
2243
2244
2245
2246
2247
2248
2249
2250
      }

      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
2251
    if ('ontouchstart' in document.documentElement && !parent.closest(SELECTOR_NAVBAR_NAV)) {
XhmikosR's avatar
XhmikosR committed
2252
2253
2254
      var _ref;

      (_ref = []).concat.apply(_ref, document.body.children).forEach(function (elem) {
XhmikosR's avatar
XhmikosR committed
2255
2256
        return EventHandler.on(elem, 'mouseover', null, noop());
      });
XhmikosR's avatar
Dist.  
XhmikosR committed
2257
2258
2259
2260
2261
2262
    }

    this._element.focus();

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

XhmikosR's avatar
XhmikosR committed
2263
2264
2265
    Manipulator.toggleClass(this._menu, CLASS_NAME_SHOW$1);
    Manipulator.toggleClass(this._element, CLASS_NAME_SHOW$1);
    EventHandler.trigger(parent, EVENT_SHOWN$1, relatedTarget);
XhmikosR's avatar
XhmikosR committed
2266
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
2267

XhmikosR's avatar
XhmikosR committed
2268
  _proto.hide = function hide() {
XhmikosR's avatar
XhmikosR committed
2269
    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
2270
2271
2272
      return;
    }

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

    if (hideEvent.defaultPrevented) {
      return;
    }

XhmikosR's avatar
XhmikosR committed
2283
2284
2285
2286
    if (this._popper) {
      this._popper.destroy();
    }

XhmikosR's avatar
XhmikosR committed
2287
2288
2289
    Manipulator.toggleClass(this._menu, CLASS_NAME_SHOW$1);
    Manipulator.toggleClass(this._element, CLASS_NAME_SHOW$1);
    EventHandler.trigger(parent, EVENT_HIDDEN$1, relatedTarget);
XhmikosR's avatar
XhmikosR committed
2290
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
2291

XhmikosR's avatar
XhmikosR committed
2292
  _proto.dispose = function dispose() {
XhmikosR's avatar
Dist.  
XhmikosR committed
2293
2294
2295
2296
2297
    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
2298
    if (this._popper) {
XhmikosR's avatar
Dist.  
XhmikosR committed
2299
2300
2301
2302
      this._popper.destroy();

      this._popper = null;
    }
XhmikosR's avatar
XhmikosR committed
2303
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
2304

XhmikosR's avatar
XhmikosR committed
2305
  _proto.update = function update() {
XhmikosR's avatar
Dist.  
XhmikosR committed
2306
2307
    this._inNavbar = this._detectNavbar();

XhmikosR's avatar
XhmikosR committed
2308
    if (this._popper) {
XhmikosR's avatar
Dist.  
XhmikosR committed
2309
2310
2311
      this._popper.scheduleUpdate();
    }
  } // Private
XhmikosR's avatar
XhmikosR committed
2312
  ;
XhmikosR's avatar
Dist.  
XhmikosR committed
2313

XhmikosR's avatar
XhmikosR committed
2314
2315
  _proto._addEventListeners = function _addEventListeners() {
    var _this = this;
XhmikosR's avatar
Dist.  
XhmikosR committed
2316

XhmikosR's avatar
XhmikosR committed
2317
    EventHandler.on(this._element, EVENT_CLICK, function (event) {
XhmikosR's avatar
Dist.  
XhmikosR committed
2318
2319
      event.preventDefault();
      event.stopPropagation();
XhmikosR's avatar
XhmikosR committed
2320
2321

      _this.toggle();
XhmikosR's avatar
Dist.  
XhmikosR committed
2322
    });
XhmikosR's avatar
XhmikosR committed
2323
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
2324

XhmikosR's avatar
XhmikosR committed
2325
  _proto._getConfig = function _getConfig(config) {
XhmikosR's avatar
XhmikosR committed
2326
    config = _objectSpread2(_objectSpread2(_objectSpread2({}, this.constructor.Default), Manipulator.getDataAttributes(this._element)), config);
XhmikosR's avatar
Dist.  
XhmikosR committed
2327
2328
    typeCheckConfig(NAME$4, config, this.constructor.DefaultType);
    return config;
XhmikosR's avatar
XhmikosR committed
2329
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
2330

XhmikosR's avatar
XhmikosR committed
2331
  _proto._getMenuElement = function _getMenuElement() {
XhmikosR's avatar
XhmikosR committed
2332
    return SelectorEngine.next(this._element, SELECTOR_MENU)[0];
XhmikosR's avatar
XhmikosR committed
2333
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
2334

XhmikosR's avatar
XhmikosR committed
2335
2336
  _proto._getPlacement = function _getPlacement() {
    var parentDropdown = this._element.parentNode;
XhmikosR's avatar
XhmikosR committed
2337
    var placement = PLACEMENT_BOTTOM; // Handle dropup
XhmikosR's avatar
Dist.  
XhmikosR committed
2338

XhmikosR's avatar
XhmikosR committed
2339
2340
    if (parentDropdown.classList.contains(CLASS_NAME_DROPUP)) {
      placement = PLACEMENT_TOP;
XhmikosR's avatar
Dist.  
XhmikosR committed
2341

XhmikosR's avatar
XhmikosR committed
2342
2343
      if (this._menu.classList.contains(CLASS_NAME_MENURIGHT)) {
        placement = PLACEMENT_TOPEND;
XhmikosR's avatar
Dist.  
XhmikosR committed
2344
      }
XhmikosR's avatar
XhmikosR committed
2345
2346
2347
2348
2349
2350
    } 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
2351
2352
2353
    }

    return placement;
XhmikosR's avatar
XhmikosR committed
2354
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
2355

XhmikosR's avatar
XhmikosR committed
2356
  _proto._detectNavbar = function _detectNavbar() {
XhmikosR's avatar
XhmikosR committed
2357
    return Boolean(this._element.closest("." + CLASS_NAME_NAVBAR));
XhmikosR's avatar
XhmikosR committed
2358
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
2359

XhmikosR's avatar
XhmikosR committed
2360
2361
2362
2363
  _proto._getOffset = function _getOffset() {
    var _this2 = this;

    var offset = {};
XhmikosR's avatar
Dist.  
XhmikosR committed
2364
2365

    if (typeof this._config.offset === 'function') {
XhmikosR's avatar
XhmikosR committed
2366
      offset.fn = function (data) {
XhmikosR's avatar
XhmikosR committed
2367
        data.offsets = _objectSpread2(_objectSpread2({}, data.offsets), _this2._config.offset(data.offsets, _this2._element) || {});
XhmikosR's avatar
Dist.  
XhmikosR committed
2368
2369
2370
2371
2372
2373
2374
        return data;
      };
    } else {
      offset.offset = this._config.offset;
    }

    return offset;
XhmikosR's avatar
XhmikosR committed
2375
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
2376

XhmikosR's avatar
XhmikosR committed
2377
2378
  _proto._getPopperConfig = function _getPopperConfig() {
    var popperConfig = {
XhmikosR's avatar
Dist.  
XhmikosR committed
2379
2380
2381
2382
2383
2384
2385
2386
2387
      placement: this._getPlacement(),
      modifiers: {
        offset: this._getOffset(),
        flip: {
          enabled: this._config.flip
        },
        preventOverflow: {
          boundariesElement: this._config.boundary
        }
XhmikosR's avatar
XhmikosR committed
2388
2389
      }
    }; // Disable Popper.js if we have a static display
XhmikosR's avatar
Dist.  
XhmikosR committed
2390
2391
2392
2393
2394
2395
2396

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

XhmikosR's avatar
XhmikosR committed
2397
    return _objectSpread2(_objectSpread2({}, popperConfig), this._config.popperConfig);
XhmikosR's avatar
Dist.  
XhmikosR committed
2398
  } // Static
XhmikosR's avatar
XhmikosR committed
2399
  ;
XhmikosR's avatar
Dist.  
XhmikosR committed
2400

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

XhmikosR's avatar
XhmikosR committed
2404
    var _config = typeof config === 'object' ? config : null;
XhmikosR's avatar
Dist.  
XhmikosR committed
2405
2406
2407
2408
2409
2410
2411

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

    if (typeof config === 'string') {
      if (typeof data[config] === 'undefined') {
XhmikosR's avatar
XhmikosR committed
2412
        throw new TypeError("No method named \"" + config + "\"");
XhmikosR's avatar
Dist.  
XhmikosR committed
2413
2414
2415
2416
      }

      data[config]();
    }
XhmikosR's avatar
XhmikosR committed
2417
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
2418

XhmikosR's avatar
XhmikosR committed
2419
  Dropdown.jQueryInterface = function jQueryInterface(config) {
XhmikosR's avatar
Dist.  
XhmikosR committed
2420
    return this.each(function () {
XhmikosR's avatar
XhmikosR committed
2421
      Dropdown.dropdownInterface(this, config);
XhmikosR's avatar
Dist.  
XhmikosR committed
2422
    });
XhmikosR's avatar
XhmikosR committed
2423
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
2424

XhmikosR's avatar
XhmikosR committed
2425
  Dropdown.clearMenus = function clearMenus(event) {
XhmikosR's avatar
XhmikosR committed
2426
    if (event && (event.button === RIGHT_MOUSE_BUTTON || event.type === 'keyup' && event.key !== TAB_KEY)) {
XhmikosR's avatar
Dist.  
XhmikosR committed
2427
2428
2429
      return;
    }

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

XhmikosR's avatar
XhmikosR committed
2432
    for (var i = 0, len = toggles.length; i < len; i++) {
XhmikosR's avatar
XhmikosR committed
2433
      var parent = Dropdown.getParentFromElement(toggles[i]);
XhmikosR's avatar
XhmikosR committed
2434
2435
      var context = Data.getData(toggles[i], DATA_KEY$4);
      var relatedTarget = {
XhmikosR's avatar
Dist.  
XhmikosR committed
2436
2437
2438
2439
2440
2441
2442
2443
2444
2445
2446
        relatedTarget: toggles[i]
      };

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

      if (!context) {
        continue;
      }

XhmikosR's avatar
XhmikosR committed
2447
      var dropdownMenu = context._menu;
XhmikosR's avatar
Dist.  
XhmikosR committed
2448

XhmikosR's avatar
XhmikosR committed
2449
      if (!toggles[i].classList.contains(CLASS_NAME_SHOW$1)) {
XhmikosR's avatar
Dist.  
XhmikosR committed
2450
2451
2452
        continue;
      }

XhmikosR's avatar
XhmikosR committed
2453
      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
2454
2455
2456
        continue;
      }

XhmikosR's avatar
XhmikosR committed
2457
      var hideEvent = EventHandler.trigger(parent, EVENT_HIDE$1, relatedTarget);
XhmikosR's avatar
Dist.  
XhmikosR committed
2458
2459
2460
2461
2462
2463
2464
2465

      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
2466
2467
2468
        var _ref2;

        (_ref2 = []).concat.apply(_ref2, document.body.children).forEach(function (elem) {
XhmikosR's avatar
XhmikosR committed
2469
2470
          return EventHandler.off(elem, 'mouseover', null, noop());
        });
XhmikosR's avatar
Dist.  
XhmikosR committed
2471
2472
2473
      }

      toggles[i].setAttribute('aria-expanded', 'false');
XhmikosR's avatar
XhmikosR committed
2474
2475
2476
2477
2478

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

XhmikosR's avatar
XhmikosR committed
2479
2480
2481
      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
2482
    }
XhmikosR's avatar
XhmikosR committed
2483
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
2484

XhmikosR's avatar
XhmikosR committed
2485
2486
  Dropdown.getParentFromElement = function getParentFromElement(element) {
    return getElementFromSelector(element) || element.parentNode;
XhmikosR's avatar
XhmikosR committed
2487
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
2488

XhmikosR's avatar
XhmikosR committed
2489
  Dropdown.dataApiKeydownHandler = function dataApiKeydownHandler(event) {
XhmikosR's avatar
Dist.  
XhmikosR committed
2490
2491
2492
2493
2494
2495
2496
    // 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
2497
    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
2498
2499
2500
2501
2502
2503
      return;
    }

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

XhmikosR's avatar
XhmikosR committed
2504
    if (this.disabled || this.classList.contains(CLASS_NAME_DISABLED)) {
XhmikosR's avatar
Dist.  
XhmikosR committed
2505
2506
2507
      return;
    }

XhmikosR's avatar
XhmikosR committed
2508
    var parent = Dropdown.getParentFromElement(this);
XhmikosR's avatar
XhmikosR committed
2509
    var isActive = this.classList.contains(CLASS_NAME_SHOW$1);
XhmikosR's avatar
Dist.  
XhmikosR committed
2510

XhmikosR's avatar
XhmikosR committed
2511
    if (event.key === ESCAPE_KEY) {
XhmikosR's avatar
XhmikosR committed
2512
2513
2514
2515
2516
      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
2517

XhmikosR's avatar
XhmikosR committed
2518
    if (!isActive || event.key === SPACE_KEY) {
XhmikosR's avatar
XhmikosR committed
2519
      Dropdown.clearMenus();
XhmikosR's avatar
Dist.  
XhmikosR committed
2520
2521
2522
      return;
    }

XhmikosR's avatar
XhmikosR committed
2523
    var items = SelectorEngine.find(SELECTOR_VISIBLE_ITEMS, parent).filter(isVisible);
XhmikosR's avatar
Dist.  
XhmikosR committed
2524
2525
2526
2527
2528

    if (!items.length) {
      return;
    }

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

XhmikosR's avatar
XhmikosR committed
2531
    if (event.key === ARROW_UP_KEY && index > 0) {
XhmikosR's avatar
Dist.  
XhmikosR committed
2532
2533
2534
2535
      // Up
      index--;
    }

XhmikosR's avatar
XhmikosR committed
2536
    if (event.key === ARROW_DOWN_KEY && index < items.length - 1) {
XhmikosR's avatar
Dist.  
XhmikosR committed
2537
2538
      // Down
      index++;
XhmikosR's avatar
XhmikosR committed
2539
2540
    } // index is -1 if the first keydown is an ArrowUp

XhmikosR's avatar
Dist.  
XhmikosR committed
2541

XhmikosR's avatar
XhmikosR committed
2542
    index = index === -1 ? 0 : index;
XhmikosR's avatar
Dist.  
XhmikosR committed
2543
    items[index].focus();
XhmikosR's avatar
XhmikosR committed
2544
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
2545

XhmikosR's avatar
XhmikosR committed
2546
  Dropdown.getInstance = function getInstance(element) {
XhmikosR's avatar
Dist.  
XhmikosR committed
2547
    return Data.getData(element, DATA_KEY$4);
XhmikosR's avatar
XhmikosR committed
2548
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
2549

XhmikosR's avatar
XhmikosR committed
2550
2551
2552
2553
2554
2555
2556
2557
2558
2559
2560
2561
2562
2563
2564
2565
2566
2567
2568
  _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
2569
2570
2571
2572
2573
2574
2575
/**
 * ------------------------------------------------------------------------
 * Data Api implementation
 * ------------------------------------------------------------------------
 */


XhmikosR's avatar
XhmikosR committed
2576
2577
2578
2579
2580
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
2581
2582
  event.preventDefault();
  event.stopPropagation();
XhmikosR's avatar
XhmikosR committed
2583
  Dropdown.dropdownInterface(this, 'toggle');
XhmikosR's avatar
Dist.  
XhmikosR committed
2584
});
XhmikosR's avatar
XhmikosR committed
2585
EventHandler.on(document, EVENT_CLICK_DATA_API$4, SELECTOR_FORM_CHILD, function (e) {
XhmikosR's avatar
XhmikosR committed
2586
2587
  return e.stopPropagation();
});
XhmikosR's avatar
XhmikosR committed
2588
var $$5 = getjQuery();
XhmikosR's avatar
Dist.  
XhmikosR committed
2589
2590
2591
2592
2593
2594
2595
/**
 * ------------------------------------------------------------------------
 * jQuery
 * ------------------------------------------------------------------------
 * add .dropdown to jQuery only if jQuery is present
 */

2596
2597
/* istanbul ignore if */

XhmikosR's avatar
XhmikosR committed
2598
2599
2600
2601
if ($$5) {
  var JQUERY_NO_CONFLICT$4 = $$5.fn[NAME$4];
  $$5.fn[NAME$4] = Dropdown.jQueryInterface;
  $$5.fn[NAME$4].Constructor = Dropdown;
XhmikosR's avatar
Dist.  
XhmikosR committed
2602

XhmikosR's avatar
XhmikosR committed
2603
2604
2605
  $$5.fn[NAME$4].noConflict = function () {
    $$5.fn[NAME$4] = JQUERY_NO_CONFLICT$4;
    return Dropdown.jQueryInterface;
XhmikosR's avatar
Dist.  
XhmikosR committed
2606
2607
2608
2609
2610
2611
2612
2613
2614
  };
}

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

XhmikosR's avatar
XhmikosR committed
2615
var NAME$5 = 'modal';
2616
var VERSION$5 = '5.0.0-alpha1';
XhmikosR's avatar
XhmikosR committed
2617
2618
2619
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
2620
var ESCAPE_KEY$1 = 'Escape';
XhmikosR's avatar
XhmikosR committed
2621
var Default$3 = {
XhmikosR's avatar
Dist.  
XhmikosR committed
2622
2623
2624
2625
2626
  backdrop: true,
  keyboard: true,
  focus: true,
  show: true
};
XhmikosR's avatar
XhmikosR committed
2627
var DefaultType$3 = {
XhmikosR's avatar
Dist.  
XhmikosR committed
2628
2629
2630
2631
2632
  backdrop: '(boolean|string)',
  keyboard: 'boolean',
  focus: 'boolean',
  show: 'boolean'
};
XhmikosR's avatar
XhmikosR committed
2633
2634
2635
2636
2637
2638
2639
2640
2641
2642
2643
2644
2645
2646
2647
2648
2649
2650
2651
2652
2653
2654
2655
2656
var EVENT_HIDE$2 = "hide" + EVENT_KEY$5;
var EVENT_HIDE_PREVENTED = "hidePrevented" + EVENT_KEY$5;
var EVENT_HIDDEN$2 = "hidden" + EVENT_KEY$5;
var EVENT_SHOW$2 = "show" + EVENT_KEY$5;
var EVENT_SHOWN$2 = "shown" + EVENT_KEY$5;
var EVENT_FOCUSIN = "focusin" + EVENT_KEY$5;
var EVENT_RESIZE = "resize" + EVENT_KEY$5;
var EVENT_CLICK_DISMISS = "click.dismiss" + EVENT_KEY$5;
var EVENT_KEYDOWN_DISMISS = "keydown.dismiss" + EVENT_KEY$5;
var EVENT_MOUSEUP_DISMISS = "mouseup.dismiss" + EVENT_KEY$5;
var EVENT_MOUSEDOWN_DISMISS = "mousedown.dismiss" + EVENT_KEY$5;
var EVENT_CLICK_DATA_API$5 = "click" + EVENT_KEY$5 + DATA_API_KEY$5;
var CLASS_NAME_SCROLLBAR_MEASURER = 'modal-scrollbar-measure';
var CLASS_NAME_BACKDROP = 'modal-backdrop';
var CLASS_NAME_OPEN = 'modal-open';
var CLASS_NAME_FADE = 'fade';
var CLASS_NAME_SHOW$2 = 'show';
var CLASS_NAME_STATIC = 'modal-static';
var SELECTOR_DIALOG = '.modal-dialog';
var SELECTOR_MODAL_BODY = '.modal-body';
var SELECTOR_DATA_TOGGLE$3 = '[data-toggle="modal"]';
var SELECTOR_DATA_DISMISS = '[data-dismiss="modal"]';
var SELECTOR_FIXED_CONTENT = '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top';
var SELECTOR_STICKY_CONTENT = '.sticky-top';
XhmikosR's avatar
XhmikosR committed
2657
2658
2659
2660
2661
/**
 * ------------------------------------------------------------------------
 * Class Definition
 * ------------------------------------------------------------------------
 */
XhmikosR's avatar
Dist.  
XhmikosR committed
2662

XhmikosR's avatar
XhmikosR committed
2663
var Modal = /*#__PURE__*/function () {
XhmikosR's avatar
XhmikosR committed
2664
  function Modal(element, config) {
XhmikosR's avatar
Dist.  
XhmikosR committed
2665
2666
    this._config = this._getConfig(config);
    this._element = element;
XhmikosR's avatar
XhmikosR committed
2667
    this._dialog = SelectorEngine.findOne(SELECTOR_DIALOG, element);
XhmikosR's avatar
Dist.  
XhmikosR committed
2668
2669
2670
2671
2672
2673
2674
2675
2676
2677
    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
2678
  var _proto = Modal.prototype;
XhmikosR's avatar
Dist.  
XhmikosR committed
2679

XhmikosR's avatar
XhmikosR committed
2680
2681
  // Public
  _proto.toggle = function toggle(relatedTarget) {
XhmikosR's avatar
Dist.  
XhmikosR committed
2682
    return this._isShown ? this.hide() : this.show(relatedTarget);
XhmikosR's avatar
XhmikosR committed
2683
2684
2685
2686
  };

  _proto.show = function show(relatedTarget) {
    var _this = this;
XhmikosR's avatar
Dist.  
XhmikosR committed
2687
2688
2689
2690
2691

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

XhmikosR's avatar
XhmikosR committed
2692
    if (this._element.classList.contains(CLASS_NAME_FADE)) {
XhmikosR's avatar
Dist.  
XhmikosR committed
2693
2694
2695
      this._isTransitioning = true;
    }

XhmikosR's avatar
XhmikosR committed
2696
    var showEvent = EventHandler.trigger(this._element, EVENT_SHOW$2, {
XhmikosR's avatar
XhmikosR committed
2697
      relatedTarget: relatedTarget
XhmikosR's avatar
Dist.  
XhmikosR committed
2698
2699
2700
2701
2702
2703
2704
2705
2706
2707
2708
2709
2710
2711
2712
2713
2714
2715
    });

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

    this._isShown = true;

    this._checkScrollbar();

    this._setScrollbar();

    this._adjustDialog();

    this._setEscapeEvent();

    this._setResizeEvent();

XhmikosR's avatar
XhmikosR committed
2716
    EventHandler.on(this._element, EVENT_CLICK_DISMISS, SELECTOR_DATA_DISMISS, function (event) {
XhmikosR's avatar
XhmikosR committed
2717
2718
      return _this.hide(event);
    });
XhmikosR's avatar
XhmikosR committed
2719
2720
    EventHandler.on(this._dialog, EVENT_MOUSEDOWN_DISMISS, function () {
      EventHandler.one(_this._element, EVENT_MOUSEUP_DISMISS, function (event) {
XhmikosR's avatar
XhmikosR committed
2721
2722
        if (event.target === _this._element) {
          _this._ignoreBackdropClick = true;
XhmikosR's avatar
Dist.  
XhmikosR committed
2723
2724
2725
2726
        }
      });
    });

XhmikosR's avatar
XhmikosR committed
2727
2728
2729
2730
2731
2732
2733
    this._showBackdrop(function () {
      return _this._showElement(relatedTarget);
    });
  };

  _proto.hide = function hide(event) {
    var _this2 = this;
XhmikosR's avatar
Dist.  
XhmikosR committed
2734
2735
2736
2737
2738
2739
2740
2741
2742

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

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

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

2745
    if (hideEvent.defaultPrevented) {
XhmikosR's avatar
Dist.  
XhmikosR committed
2746
2747
2748
2749
2750
      return;
    }

    this._isShown = false;

XhmikosR's avatar
XhmikosR committed
2751
    var transition = this._element.classList.contains(CLASS_NAME_FADE);
XhmikosR's avatar
Dist.  
XhmikosR committed
2752
2753
2754
2755
2756
2757
2758
2759
2760

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

    this._setEscapeEvent();

    this._setResizeEvent();

XhmikosR's avatar
XhmikosR committed
2761
    EventHandler.off(document, EVENT_FOCUSIN);
XhmikosR's avatar
Dist.  
XhmikosR committed
2762

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

XhmikosR's avatar
XhmikosR committed
2765
2766
    EventHandler.off(this._element, EVENT_CLICK_DISMISS);
    EventHandler.off(this._dialog, EVENT_MOUSEDOWN_DISMISS);
XhmikosR's avatar
Dist.  
XhmikosR committed
2767
2768

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

XhmikosR's avatar
XhmikosR committed
2779
2780
2781
2782
  _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
2783
    /**
XhmikosR's avatar
XhmikosR committed
2784
     * `document` has 2 events `EVENT_FOCUSIN` and `EVENT_CLICK_DATA_API`
XhmikosR's avatar
Dist.  
XhmikosR committed
2785
     * Do not move `document` in `htmlElements` array
XhmikosR's avatar
XhmikosR committed
2786
     * It will remove `EVENT_CLICK_DATA_API` event that should remain
XhmikosR's avatar
Dist.  
XhmikosR committed
2787
2788
     */

XhmikosR's avatar
XhmikosR committed
2789
    EventHandler.off(document, EVENT_FOCUSIN);
XhmikosR's avatar
Dist.  
XhmikosR committed
2790
2791
2792
2793
2794
2795
2796
2797
2798
2799
    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
2800
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
2801

XhmikosR's avatar
XhmikosR committed
2802
  _proto.handleUpdate = function handleUpdate() {
XhmikosR's avatar
Dist.  
XhmikosR committed
2803
2804
    this._adjustDialog();
  } // Private
XhmikosR's avatar
XhmikosR committed
2805
  ;
XhmikosR's avatar
Dist.  
XhmikosR committed
2806

XhmikosR's avatar
XhmikosR committed
2807
  _proto._getConfig = function _getConfig(config) {
XhmikosR's avatar
XhmikosR committed
2808
    config = _objectSpread2(_objectSpread2({}, Default$3), config);
XhmikosR's avatar
Dist.  
XhmikosR committed
2809
2810
    typeCheckConfig(NAME$5, config, DefaultType$3);
    return config;
XhmikosR's avatar
XhmikosR committed
2811
2812
2813
2814
  };

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

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

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

XhmikosR's avatar
Dist.  
XhmikosR committed
2820
2821
2822
2823
2824
2825
2826
2827
2828
2829
2830
    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
2831
2832
    this._element.setAttribute('role', 'dialog');

XhmikosR's avatar
XhmikosR committed
2833
2834
2835
    this._element.scrollTop = 0;

    if (modalBody) {
XhmikosR's avatar
XhmikosR committed
2836
      modalBody.scrollTop = 0;
XhmikosR's avatar
Dist.  
XhmikosR committed
2837
2838
2839
2840
2841
2842
    }

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

XhmikosR's avatar
XhmikosR committed
2843
    this._element.classList.add(CLASS_NAME_SHOW$2);
XhmikosR's avatar
Dist.  
XhmikosR committed
2844
2845
2846
2847
2848

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

XhmikosR's avatar
XhmikosR committed
2849
2850
2851
    var transitionComplete = function transitionComplete() {
      if (_this3._config.focus) {
        _this3._element.focus();
XhmikosR's avatar
Dist.  
XhmikosR committed
2852
2853
      }

XhmikosR's avatar
XhmikosR committed
2854
      _this3._isTransitioning = false;
XhmikosR's avatar
XhmikosR committed
2855
      EventHandler.trigger(_this3._element, EVENT_SHOWN$2, {
XhmikosR's avatar
XhmikosR committed
2856
        relatedTarget: relatedTarget
XhmikosR's avatar
Dist.  
XhmikosR committed
2857
2858
2859
2860
      });
    };

    if (transition) {
XhmikosR's avatar
XhmikosR committed
2861
      var transitionDuration = getTransitionDurationFromElement(this._dialog);
XhmikosR's avatar
Dist.  
XhmikosR committed
2862
2863
2864
2865
2866
      EventHandler.one(this._dialog, TRANSITION_END, transitionComplete);
      emulateTransitionEnd(this._dialog, transitionDuration);
    } else {
      transitionComplete();
    }
XhmikosR's avatar
XhmikosR committed
2867
2868
2869
2870
  };

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

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

XhmikosR's avatar
XhmikosR committed
2874
    EventHandler.on(document, EVENT_FOCUSIN, function (event) {
XhmikosR's avatar
XhmikosR committed
2875
2876
      if (document !== event.target && _this4._element !== event.target && !_this4._element.contains(event.target)) {
        _this4._element.focus();
XhmikosR's avatar
Dist.  
XhmikosR committed
2877
2878
      }
    });
XhmikosR's avatar
XhmikosR committed
2879
2880
2881
2882
  };

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

XhmikosR's avatar
XhmikosR committed
2884
2885
    if (this._isShown) {
      EventHandler.on(this._element, EVENT_KEYDOWN_DISMISS, function (event) {
XhmikosR's avatar
XhmikosR committed
2886
        if (_this5._config.keyboard && event.key === ESCAPE_KEY$1) {
XhmikosR's avatar
XhmikosR committed
2887
2888
2889
          event.preventDefault();

          _this5.hide();
XhmikosR's avatar
XhmikosR committed
2890
        } else if (!_this5._config.keyboard && event.key === ESCAPE_KEY$1) {
XhmikosR's avatar
XhmikosR committed
2891
          _this5._triggerBackdropTransition();
XhmikosR's avatar
Dist.  
XhmikosR committed
2892
2893
        }
      });
2894
    } else {
XhmikosR's avatar
XhmikosR committed
2895
      EventHandler.off(this._element, EVENT_KEYDOWN_DISMISS);
XhmikosR's avatar
Dist.  
XhmikosR committed
2896
    }
XhmikosR's avatar
XhmikosR committed
2897
2898
2899
2900
  };

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

    if (this._isShown) {
XhmikosR's avatar
XhmikosR committed
2903
      EventHandler.on(window, EVENT_RESIZE, function () {
2904
        return _this6._adjustDialog();
XhmikosR's avatar
XhmikosR committed
2905
      });
XhmikosR's avatar
Dist.  
XhmikosR committed
2906
    } else {
XhmikosR's avatar
XhmikosR committed
2907
      EventHandler.off(window, EVENT_RESIZE);
XhmikosR's avatar
Dist.  
XhmikosR committed
2908
    }
XhmikosR's avatar
XhmikosR committed
2909
2910
2911
2912
  };

  _proto._hideModal = function _hideModal() {
    var _this7 = this;
XhmikosR's avatar
Dist.  
XhmikosR committed
2913
2914
2915
2916
2917
2918
2919

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

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

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

Mark Otto's avatar
Mark Otto committed
2920
2921
    this._element.removeAttribute('role');

XhmikosR's avatar
Dist.  
XhmikosR committed
2922
2923
    this._isTransitioning = false;

XhmikosR's avatar
XhmikosR committed
2924
    this._showBackdrop(function () {
XhmikosR's avatar
XhmikosR committed
2925
      document.body.classList.remove(CLASS_NAME_OPEN);
XhmikosR's avatar
Dist.  
XhmikosR committed
2926

XhmikosR's avatar
XhmikosR committed
2927
      _this7._resetAdjustments();
XhmikosR's avatar
Dist.  
XhmikosR committed
2928

XhmikosR's avatar
XhmikosR committed
2929
      _this7._resetScrollbar();
XhmikosR's avatar
Dist.  
XhmikosR committed
2930

XhmikosR's avatar
XhmikosR committed
2931
      EventHandler.trigger(_this7._element, EVENT_HIDDEN$2);
XhmikosR's avatar
Dist.  
XhmikosR committed
2932
    });
XhmikosR's avatar
XhmikosR committed
2933
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
2934

XhmikosR's avatar
XhmikosR committed
2935
  _proto._removeBackdrop = function _removeBackdrop() {
2936
    this._backdrop.parentNode.removeChild(this._backdrop);
XhmikosR's avatar
Dist.  
XhmikosR committed
2937

2938
    this._backdrop = null;
XhmikosR's avatar
XhmikosR committed
2939
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
2940

XhmikosR's avatar
XhmikosR committed
2941
2942
2943
  _proto._showBackdrop = function _showBackdrop(callback) {
    var _this8 = this;

XhmikosR's avatar
XhmikosR committed
2944
    var animate = this._element.classList.contains(CLASS_NAME_FADE) ? CLASS_NAME_FADE : '';
XhmikosR's avatar
Dist.  
XhmikosR committed
2945
2946
2947

    if (this._isShown && this._config.backdrop) {
      this._backdrop = document.createElement('div');
XhmikosR's avatar
XhmikosR committed
2948
      this._backdrop.className = CLASS_NAME_BACKDROP;
XhmikosR's avatar
Dist.  
XhmikosR committed
2949
2950
2951
2952
2953
2954

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

      document.body.appendChild(this._backdrop);
XhmikosR's avatar
XhmikosR committed
2955
      EventHandler.on(this._element, EVENT_CLICK_DISMISS, function (event) {
XhmikosR's avatar
XhmikosR committed
2956
2957
        if (_this8._ignoreBackdropClick) {
          _this8._ignoreBackdropClick = false;
XhmikosR's avatar
Dist.  
XhmikosR committed
2958
2959
2960
2961
2962
2963
2964
          return;
        }

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

XhmikosR's avatar
XhmikosR committed
2965
        _this8._triggerBackdropTransition();
XhmikosR's avatar
Dist.  
XhmikosR committed
2966
2967
2968
2969
2970
2971
      });

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

XhmikosR's avatar
XhmikosR committed
2972
      this._backdrop.classList.add(CLASS_NAME_SHOW$2);
XhmikosR's avatar
Dist.  
XhmikosR committed
2973
2974
2975
2976
2977
2978

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

XhmikosR's avatar
XhmikosR committed
2979
      var backdropTransitionDuration = getTransitionDurationFromElement(this._backdrop);
XhmikosR's avatar
Dist.  
XhmikosR committed
2980
2981
2982
      EventHandler.one(this._backdrop, TRANSITION_END, callback);
      emulateTransitionEnd(this._backdrop, backdropTransitionDuration);
    } else if (!this._isShown && this._backdrop) {
XhmikosR's avatar
XhmikosR committed
2983
      this._backdrop.classList.remove(CLASS_NAME_SHOW$2);
XhmikosR's avatar
Dist.  
XhmikosR committed
2984

XhmikosR's avatar
XhmikosR committed
2985
2986
      var callbackRemove = function callbackRemove() {
        _this8._removeBackdrop();
XhmikosR's avatar
Dist.  
XhmikosR committed
2987

2988
        callback();
XhmikosR's avatar
Dist.  
XhmikosR committed
2989
2990
      };

XhmikosR's avatar
XhmikosR committed
2991
      if (this._element.classList.contains(CLASS_NAME_FADE)) {
XhmikosR's avatar
XhmikosR committed
2992
2993
        var _backdropTransitionDuration = getTransitionDurationFromElement(this._backdrop);

XhmikosR's avatar
Dist.  
XhmikosR committed
2994
        EventHandler.one(this._backdrop, TRANSITION_END, callbackRemove);
XhmikosR's avatar
XhmikosR committed
2995
        emulateTransitionEnd(this._backdrop, _backdropTransitionDuration);
XhmikosR's avatar
Dist.  
XhmikosR committed
2996
2997
2998
      } else {
        callbackRemove();
      }
2999
    } else {
XhmikosR's avatar
Dist.  
XhmikosR committed
3000
3001
      callback();
    }
XhmikosR's avatar
XhmikosR committed
3002
3003
3004
3005
3006
3007
  };

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

    if (this._config.backdrop === 'static') {
XhmikosR's avatar
XhmikosR committed
3008
      var hideEvent = EventHandler.trigger(this._element, EVENT_HIDE_PREVENTED);
XhmikosR's avatar
XhmikosR committed
3009
3010
3011
3012
3013

      if (hideEvent.defaultPrevented) {
        return;
      }

XhmikosR's avatar
XhmikosR committed
3014
      this._element.classList.add(CLASS_NAME_STATIC);
XhmikosR's avatar
XhmikosR committed
3015
3016
3017

      var modalTransitionDuration = getTransitionDurationFromElement(this._element);
      EventHandler.one(this._element, TRANSITION_END, function () {
XhmikosR's avatar
XhmikosR committed
3018
        _this9._element.classList.remove(CLASS_NAME_STATIC);
XhmikosR's avatar
XhmikosR committed
3019
3020
3021
3022
3023
3024
3025
      });
      emulateTransitionEnd(this._element, modalTransitionDuration);

      this._element.focus();
    } else {
      this.hide();
    }
XhmikosR's avatar
Dist.  
XhmikosR committed
3026
3027
3028
  } // ----------------------------------------------------------------------
  // the following methods are used to handle overflowing modals
  // ----------------------------------------------------------------------
XhmikosR's avatar
XhmikosR committed
3029
  ;
XhmikosR's avatar
Dist.  
XhmikosR committed
3030

XhmikosR's avatar
XhmikosR committed
3031
3032
  _proto._adjustDialog = function _adjustDialog() {
    var isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight;
XhmikosR's avatar
Dist.  
XhmikosR committed
3033
3034

    if (!this._isBodyOverflowing && isModalOverflowing) {
XhmikosR's avatar
XhmikosR committed
3035
      this._element.style.paddingLeft = this._scrollbarWidth + "px";
XhmikosR's avatar
Dist.  
XhmikosR committed
3036
3037
3038
    }

    if (this._isBodyOverflowing && !isModalOverflowing) {
XhmikosR's avatar
XhmikosR committed
3039
      this._element.style.paddingRight = this._scrollbarWidth + "px";
XhmikosR's avatar
Dist.  
XhmikosR committed
3040
    }
XhmikosR's avatar
XhmikosR committed
3041
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
3042

XhmikosR's avatar
XhmikosR committed
3043
  _proto._resetAdjustments = function _resetAdjustments() {
XhmikosR's avatar
Dist.  
XhmikosR committed
3044
3045
    this._element.style.paddingLeft = '';
    this._element.style.paddingRight = '';
XhmikosR's avatar
XhmikosR committed
3046
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
3047

XhmikosR's avatar
XhmikosR committed
3048
3049
  _proto._checkScrollbar = function _checkScrollbar() {
    var rect = document.body.getBoundingClientRect();
XhmikosR's avatar
XhmikosR committed
3050
    this._isBodyOverflowing = Math.round(rect.left + rect.right) < window.innerWidth;
XhmikosR's avatar
Dist.  
XhmikosR committed
3051
    this._scrollbarWidth = this._getScrollbarWidth();
XhmikosR's avatar
XhmikosR committed
3052
3053
3054
  };

  _proto._setScrollbar = function _setScrollbar() {
XhmikosR's avatar
XhmikosR committed
3055
    var _this10 = this;
XhmikosR's avatar
Dist.  
XhmikosR committed
3056
3057
3058
3059
3060

    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
3061
      SelectorEngine.find(SELECTOR_FIXED_CONTENT).forEach(function (element) {
XhmikosR's avatar
XhmikosR committed
3062
3063
        var actualPadding = element.style.paddingRight;
        var calculatedPadding = window.getComputedStyle(element)['padding-right'];
XhmikosR's avatar
Dist.  
XhmikosR committed
3064
        Manipulator.setDataAttribute(element, 'padding-right', actualPadding);
XhmikosR's avatar
XhmikosR committed
3065
        element.style.paddingRight = parseFloat(calculatedPadding) + _this10._scrollbarWidth + "px";
XhmikosR's avatar
Dist.  
XhmikosR committed
3066
3067
      }); // Adjust sticky content margin

XhmikosR's avatar
XhmikosR committed
3068
      SelectorEngine.find(SELECTOR_STICKY_CONTENT).forEach(function (element) {
XhmikosR's avatar
XhmikosR committed
3069
3070
        var actualMargin = element.style.marginRight;
        var calculatedMargin = window.getComputedStyle(element)['margin-right'];
XhmikosR's avatar
Dist.  
XhmikosR committed
3071
        Manipulator.setDataAttribute(element, 'margin-right', actualMargin);
XhmikosR's avatar
XhmikosR committed
3072
        element.style.marginRight = parseFloat(calculatedMargin) - _this10._scrollbarWidth + "px";
XhmikosR's avatar
Dist.  
XhmikosR committed
3073
3074
      }); // Adjust body padding

XhmikosR's avatar
XhmikosR committed
3075
3076
      var actualPadding = document.body.style.paddingRight;
      var calculatedPadding = window.getComputedStyle(document.body)['padding-right'];
XhmikosR's avatar
Dist.  
XhmikosR committed
3077
      Manipulator.setDataAttribute(document.body, 'padding-right', actualPadding);
XhmikosR's avatar
XhmikosR committed
3078
      document.body.style.paddingRight = parseFloat(calculatedPadding) + this._scrollbarWidth + "px";
XhmikosR's avatar
Dist.  
XhmikosR committed
3079
3080
    }

XhmikosR's avatar
XhmikosR committed
3081
    document.body.classList.add(CLASS_NAME_OPEN);
XhmikosR's avatar
XhmikosR committed
3082
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
3083

XhmikosR's avatar
XhmikosR committed
3084
  _proto._resetScrollbar = function _resetScrollbar() {
XhmikosR's avatar
Dist.  
XhmikosR committed
3085
    // Restore fixed content padding
XhmikosR's avatar
XhmikosR committed
3086
    SelectorEngine.find(SELECTOR_FIXED_CONTENT).forEach(function (element) {
XhmikosR's avatar
XhmikosR committed
3087
      var padding = Manipulator.getDataAttribute(element, 'padding-right');
XhmikosR's avatar
Dist.  
XhmikosR committed
3088
3089
3090
3091
3092
3093
3094

      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
3095
    SelectorEngine.find("" + SELECTOR_STICKY_CONTENT).forEach(function (element) {
XhmikosR's avatar
XhmikosR committed
3096
      var margin = Manipulator.getDataAttribute(element, 'margin-right');
XhmikosR's avatar
Dist.  
XhmikosR committed
3097
3098
3099
3100
3101
3102
3103

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

XhmikosR's avatar
XhmikosR committed
3104
    var padding = Manipulator.getDataAttribute(document.body, 'padding-right');
XhmikosR's avatar
Dist.  
XhmikosR committed
3105
3106
3107
3108
3109
3110
3111

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

XhmikosR's avatar
XhmikosR committed
3114
  _proto._getScrollbarWidth = function _getScrollbarWidth() {
XhmikosR's avatar
Dist.  
XhmikosR committed
3115
    // thx d.walsh
XhmikosR's avatar
XhmikosR committed
3116
    var scrollDiv = document.createElement('div');
XhmikosR's avatar
XhmikosR committed
3117
    scrollDiv.className = CLASS_NAME_SCROLLBAR_MEASURER;
XhmikosR's avatar
Dist.  
XhmikosR committed
3118
    document.body.appendChild(scrollDiv);
XhmikosR's avatar
XhmikosR committed
3119
    var scrollbarWidth = scrollDiv.getBoundingClientRect().width - scrollDiv.clientWidth;
XhmikosR's avatar
Dist.  
XhmikosR committed
3120
3121
3122
    document.body.removeChild(scrollDiv);
    return scrollbarWidth;
  } // Static
XhmikosR's avatar
XhmikosR committed
3123
  ;
XhmikosR's avatar
Dist.  
XhmikosR committed
3124

XhmikosR's avatar
XhmikosR committed
3125
  Modal.jQueryInterface = function jQueryInterface(config, relatedTarget) {
XhmikosR's avatar
Dist.  
XhmikosR committed
3126
    return this.each(function () {
XhmikosR's avatar
XhmikosR committed
3127
      var data = Data.getData(this, DATA_KEY$5);
XhmikosR's avatar
Dist.  
XhmikosR committed
3128

XhmikosR's avatar
XhmikosR committed
3129
      var _config = _objectSpread2(_objectSpread2(_objectSpread2({}, Default$3), Manipulator.getDataAttributes(this)), typeof config === 'object' && config ? config : {});
XhmikosR's avatar
Dist.  
XhmikosR committed
3130
3131
3132
3133
3134
3135
3136

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

      if (typeof config === 'string') {
        if (typeof data[config] === 'undefined') {
XhmikosR's avatar
XhmikosR committed
3137
          throw new TypeError("No method named \"" + config + "\"");
XhmikosR's avatar
Dist.  
XhmikosR committed
3138
3139
3140
3141
3142
3143
3144
        }

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

XhmikosR's avatar
XhmikosR committed
3147
  Modal.getInstance = function getInstance(element) {
XhmikosR's avatar
Dist.  
XhmikosR committed
3148
    return Data.getData(element, DATA_KEY$5);
XhmikosR's avatar
XhmikosR committed
3149
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
3150

XhmikosR's avatar
XhmikosR committed
3151
3152
3153
3154
3155
3156
3157
3158
3159
3160
3161
3162
3163
3164
  _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
3165
3166
3167
3168
3169
3170
3171
/**
 * ------------------------------------------------------------------------
 * Data Api implementation
 * ------------------------------------------------------------------------
 */


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

XhmikosR's avatar
XhmikosR committed
3175
  var target = getElementFromSelector(this);
XhmikosR's avatar
Dist.  
XhmikosR committed
3176
3177
3178
3179
3180

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

XhmikosR's avatar
XhmikosR committed
3181
  EventHandler.one(target, EVENT_SHOW$2, function (showEvent) {
XhmikosR's avatar
Dist.  
XhmikosR committed
3182
3183
3184
3185
3186
    if (showEvent.defaultPrevented) {
      // only register focus restorer if modal will actually get shown
      return;
    }

XhmikosR's avatar
XhmikosR committed
3187
    EventHandler.one(target, EVENT_HIDDEN$2, function () {
XhmikosR's avatar
XhmikosR committed
3188
3189
      if (isVisible(_this11)) {
        _this11.focus();
XhmikosR's avatar
Dist.  
XhmikosR committed
3190
3191
3192
      }
    });
  });
XhmikosR's avatar
XhmikosR committed
3193
  var data = Data.getData(target, DATA_KEY$5);
XhmikosR's avatar
Dist.  
XhmikosR committed
3194
3195

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

XhmikosR's avatar
Dist.  
XhmikosR committed
3198
3199
3200
3201
3202
    data = new Modal(target, config);
  }

  data.show(this);
});
XhmikosR's avatar
XhmikosR committed
3203
var $$6 = getjQuery();
XhmikosR's avatar
Dist.  
XhmikosR committed
3204
3205
3206
3207
/**
 * ------------------------------------------------------------------------
 * jQuery
 * ------------------------------------------------------------------------
3208
 * add .modal to jQuery only if jQuery is present
XhmikosR's avatar
Dist.  
XhmikosR committed
3209
3210
 */

3211
3212
/* istanbul ignore if */

XhmikosR's avatar
XhmikosR committed
3213
3214
3215
3216
if ($$6) {
  var JQUERY_NO_CONFLICT$5 = $$6.fn[NAME$5];
  $$6.fn[NAME$5] = Modal.jQueryInterface;
  $$6.fn[NAME$5].Constructor = Modal;
XhmikosR's avatar
Dist.  
XhmikosR committed
3217

XhmikosR's avatar
XhmikosR committed
3218
3219
3220
  $$6.fn[NAME$5].noConflict = function () {
    $$6.fn[NAME$5] = JQUERY_NO_CONFLICT$5;
    return Modal.jQueryInterface;
XhmikosR's avatar
Dist.  
XhmikosR committed
3221
3222
3223
3224
3225
  };
}

/**
 * --------------------------------------------------------------------------
3226
 * Bootstrap (v5.0.0-alpha1): util/sanitizer.js
XhmikosR's avatar
XhmikosR committed
3227
 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
XhmikosR's avatar
Dist.  
XhmikosR committed
3228
3229
 * --------------------------------------------------------------------------
 */
XhmikosR's avatar
XhmikosR committed
3230
3231
var uriAttrs = ['background', 'cite', 'href', 'itemtype', 'longdesc', 'poster', 'src', 'xlink:href'];
var ARIA_ATTRIBUTE_PATTERN = /^aria-[\w-]*$/i;
XhmikosR's avatar
Dist.  
XhmikosR committed
3232
3233
3234
3235
3236
3237
/**
 * 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
3238
var SAFE_URL_PATTERN = /^(?:(?:https?|mailto|ftp|tel|file):|[^#&/:?]*(?:[#/?]|$))/gi;
XhmikosR's avatar
Dist.  
XhmikosR committed
3239
3240
3241
3242
3243
3244
/**
 * 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
3245
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
3246

XhmikosR's avatar
XhmikosR committed
3247
3248
var allowedAttribute = function allowedAttribute(attr, allowedAttributeList) {
  var attrName = attr.nodeName.toLowerCase();
XhmikosR's avatar
Dist.  
XhmikosR committed
3249
3250
3251

  if (allowedAttributeList.indexOf(attrName) !== -1) {
    if (uriAttrs.indexOf(attrName) !== -1) {
Mark Otto's avatar
Mark Otto committed
3252
      return Boolean(attr.nodeValue.match(SAFE_URL_PATTERN) || attr.nodeValue.match(DATA_URL_PATTERN));
XhmikosR's avatar
Dist.  
XhmikosR committed
3253
3254
3255
3256
3257
    }

    return true;
  }

XhmikosR's avatar
XhmikosR committed
3258
3259
3260
  var regExp = allowedAttributeList.filter(function (attrRegex) {
    return attrRegex instanceof RegExp;
  }); // Check if a regular expression validates the attribute.
XhmikosR's avatar
Dist.  
XhmikosR committed
3261

XhmikosR's avatar
XhmikosR committed
3262
  for (var i = 0, len = regExp.length; i < len; i++) {
Mark Otto's avatar
Mark Otto committed
3263
    if (attrName.match(regExp[i])) {
XhmikosR's avatar
Dist.  
XhmikosR committed
3264
3265
3266
3267
3268
3269
3270
      return true;
    }
  }

  return false;
};

XhmikosR's avatar
XhmikosR committed
3271
var DefaultWhitelist = {
XhmikosR's avatar
Dist.  
XhmikosR committed
3272
3273
3274
3275
3276
3277
3278
3279
3280
3281
3282
3283
3284
3285
3286
3287
3288
3289
  // 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
3290
  img: ['src', 'srcset', 'alt', 'title', 'width', 'height'],
XhmikosR's avatar
Dist.  
XhmikosR committed
3291
3292
3293
3294
3295
3296
3297
3298
3299
3300
3301
3302
3303
3304
  li: [],
  ol: [],
  p: [],
  pre: [],
  s: [],
  small: [],
  span: [],
  sub: [],
  sup: [],
  strong: [],
  u: [],
  ul: []
};
function sanitizeHtml(unsafeHtml, whiteList, sanitizeFn) {
XhmikosR's avatar
XhmikosR committed
3305
3306
  var _ref;

XhmikosR's avatar
Dist.  
XhmikosR committed
3307
3308
3309
3310
3311
3312
3313
3314
  if (!unsafeHtml.length) {
    return unsafeHtml;
  }

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

XhmikosR's avatar
XhmikosR committed
3315
3316
3317
  var domParser = new window.DOMParser();
  var createdDocument = domParser.parseFromString(unsafeHtml, 'text/html');
  var whitelistKeys = Object.keys(whiteList);
XhmikosR's avatar
XhmikosR committed
3318
3319

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

XhmikosR's avatar
XhmikosR committed
3321
  var _loop = function _loop(i, len) {
XhmikosR's avatar
XhmikosR committed
3322
3323
    var _ref2;

XhmikosR's avatar
XhmikosR committed
3324
3325
    var el = elements[i];
    var elName = el.nodeName.toLowerCase();
XhmikosR's avatar
Dist.  
XhmikosR committed
3326
3327
3328

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

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

XhmikosR's avatar
XhmikosR committed
3334
3335
    var whitelistedAttributes = [].concat(whiteList['*'] || [], whiteList[elName] || []);
    attributeList.forEach(function (attr) {
XhmikosR's avatar
Dist.  
XhmikosR committed
3336
3337
3338
3339
      if (!allowedAttribute(attr, whitelistedAttributes)) {
        el.removeAttribute(attr.nodeName);
      }
    });
XhmikosR's avatar
XhmikosR committed
3340
3341
3342
  };

  for (var i = 0, len = elements.length; i < len; i++) {
3343
    var _ret = _loop(i);
XhmikosR's avatar
XhmikosR committed
3344
3345

    if (_ret === "continue") continue;
XhmikosR's avatar
Dist.  
XhmikosR committed
3346
3347
3348
3349
3350
3351
3352
3353
3354
3355
3356
  }

  return createdDocument.body.innerHTML;
}

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

XhmikosR's avatar
XhmikosR committed
3357
var NAME$6 = 'tooltip';
3358
var VERSION$6 = '5.0.0-alpha1';
XhmikosR's avatar
XhmikosR committed
3359
3360
3361
3362
3363
3364
var DATA_KEY$6 = 'bs.tooltip';
var EVENT_KEY$6 = "." + DATA_KEY$6;
var CLASS_PREFIX = 'bs-tooltip';
var BSCLS_PREFIX_REGEX = new RegExp("(^|\\s)" + CLASS_PREFIX + "\\S+", 'g');
var DISALLOWED_ATTRIBUTES = ['sanitize', 'whiteList', 'sanitizeFn'];
var DefaultType$4 = {
XhmikosR's avatar
Dist.  
XhmikosR committed
3365
3366
3367
3368
3369
3370
3371
3372
3373
3374
3375
3376
3377
3378
  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
3379
3380
  whiteList: 'object',
  popperConfig: '(null|object)'
XhmikosR's avatar
Dist.  
XhmikosR committed
3381
};
XhmikosR's avatar
XhmikosR committed
3382
var AttachmentMap = {
XhmikosR's avatar
Dist.  
XhmikosR committed
3383
3384
3385
3386
3387
3388
  AUTO: 'auto',
  TOP: 'top',
  RIGHT: 'right',
  BOTTOM: 'bottom',
  LEFT: 'left'
};
XhmikosR's avatar
XhmikosR committed
3389
var Default$4 = {
XhmikosR's avatar
Dist.  
XhmikosR committed
3390
3391
3392
3393
3394
3395
3396
3397
3398
3399
3400
3401
3402
3403
  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
3404
3405
  whiteList: DefaultWhitelist,
  popperConfig: null
XhmikosR's avatar
Dist.  
XhmikosR committed
3406
};
XhmikosR's avatar
XhmikosR committed
3407
var Event$1 = {
XhmikosR's avatar
XhmikosR committed
3408
3409
3410
3411
3412
3413
3414
3415
3416
3417
  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
3418
};
XhmikosR's avatar
XhmikosR committed
3419
3420
3421
3422
3423
3424
3425
3426
3427
3428
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
3429
3430
3431
3432
3433
/**
 * ------------------------------------------------------------------------
 * Class Definition
 * ------------------------------------------------------------------------
 */
XhmikosR's avatar
Dist.  
XhmikosR committed
3434

XhmikosR's avatar
XhmikosR committed
3435
var Tooltip = /*#__PURE__*/function () {
XhmikosR's avatar
XhmikosR committed
3436
  function Tooltip(element, config) {
XhmikosR's avatar
Dist.  
XhmikosR committed
3437
3438
3439
3440
3441
3442
3443
3444
3445
3446
3447
3448
3449
3450
3451
3452
3453
3454
3455
3456
3457
    if (typeof Popper === 'undefined') {
      throw new TypeError('Bootstrap\'s tooltips require Popper.js (https://popper.js.org)');
    } // private


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

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

    this._setListeners();

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


XhmikosR's avatar
XhmikosR committed
3458
  var _proto = Tooltip.prototype;
XhmikosR's avatar
Dist.  
XhmikosR committed
3459

XhmikosR's avatar
XhmikosR committed
3460
3461
  // Public
  _proto.enable = function enable() {
XhmikosR's avatar
Dist.  
XhmikosR committed
3462
    this._isEnabled = true;
XhmikosR's avatar
XhmikosR committed
3463
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
3464

XhmikosR's avatar
XhmikosR committed
3465
  _proto.disable = function disable() {
XhmikosR's avatar
Dist.  
XhmikosR committed
3466
    this._isEnabled = false;
XhmikosR's avatar
XhmikosR committed
3467
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
3468

XhmikosR's avatar
XhmikosR committed
3469
  _proto.toggleEnabled = function toggleEnabled() {
XhmikosR's avatar
Dist.  
XhmikosR committed
3470
    this._isEnabled = !this._isEnabled;
XhmikosR's avatar
XhmikosR committed
3471
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
3472

XhmikosR's avatar
XhmikosR committed
3473
  _proto.toggle = function toggle(event) {
XhmikosR's avatar
Dist.  
XhmikosR committed
3474
3475
3476
3477
3478
    if (!this._isEnabled) {
      return;
    }

    if (event) {
XhmikosR's avatar
XhmikosR committed
3479
      var dataKey = this.constructor.DATA_KEY;
XhmikosR's avatar
XhmikosR committed
3480
      var context = Data.getData(event.target, dataKey);
XhmikosR's avatar
Dist.  
XhmikosR committed
3481
3482

      if (!context) {
XhmikosR's avatar
XhmikosR committed
3483
3484
        context = new this.constructor(event.target, this._getDelegateConfig());
        Data.setData(event.target, dataKey, context);
XhmikosR's avatar
Dist.  
XhmikosR committed
3485
3486
3487
3488
3489
3490
3491
3492
3493
3494
      }

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

      if (context._isWithActiveTrigger()) {
        context._enter(null, context);
      } else {
        context._leave(null, context);
      }
    } else {
XhmikosR's avatar
XhmikosR committed
3495
      if (this.getTipElement().classList.contains(CLASS_NAME_SHOW$3)) {
XhmikosR's avatar
Dist.  
XhmikosR committed
3496
3497
3498
3499
3500
3501
3502
        this._leave(null, this);

        return;
      }

      this._enter(null, this);
    }
XhmikosR's avatar
XhmikosR committed
3503
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
3504

XhmikosR's avatar
XhmikosR committed
3505
  _proto.dispose = function dispose() {
XhmikosR's avatar
Dist.  
XhmikosR committed
3506
3507
3508
    clearTimeout(this._timeout);
    Data.removeData(this.element, this.constructor.DATA_KEY);
    EventHandler.off(this.element, this.constructor.EVENT_KEY);
XhmikosR's avatar
XhmikosR committed
3509
    EventHandler.off(this.element.closest("." + CLASS_NAME_MODAL), 'hide.bs.modal', this._hideModalHandler);
XhmikosR's avatar
Dist.  
XhmikosR committed
3510
3511
3512
3513
3514
3515
3516
3517
3518
3519

    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
3520
    if (this._popper) {
XhmikosR's avatar
Dist.  
XhmikosR committed
3521
3522
3523
3524
3525
3526
3527
      this._popper.destroy();
    }

    this._popper = null;
    this.element = null;
    this.config = null;
    this.tip = null;
XhmikosR's avatar
XhmikosR committed
3528
3529
3530
3531
  };

  _proto.show = function show() {
    var _this = this;
XhmikosR's avatar
Dist.  
XhmikosR committed
3532
3533
3534
3535
3536
3537

    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
3538
3539
3540
      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
3541
3542
3543
3544
3545

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

XhmikosR's avatar
XhmikosR committed
3546
3547
      var tip = this.getTipElement();
      var tipId = getUID(this.constructor.NAME);
XhmikosR's avatar
Dist.  
XhmikosR committed
3548
3549
3550
3551
3552
      tip.setAttribute('id', tipId);
      this.element.setAttribute('aria-describedby', tipId);
      this.setContent();

      if (this.config.animation) {
XhmikosR's avatar
XhmikosR committed
3553
        tip.classList.add(CLASS_NAME_FADE$1);
XhmikosR's avatar
Dist.  
XhmikosR committed
3554
3555
      }

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

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

3560
      this._addAttachmentClass(attachment);
XhmikosR's avatar
Dist.  
XhmikosR committed
3561

XhmikosR's avatar
XhmikosR committed
3562
      var container = this._getContainer();
XhmikosR's avatar
Dist.  
XhmikosR committed
3563
3564
3565
3566
3567
3568
3569
3570

      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
3571
      this._popper = new Popper(this.element, tip, this._getPopperConfig(attachment));
XhmikosR's avatar
XhmikosR committed
3572
      tip.classList.add(CLASS_NAME_SHOW$3); // If this is a touch-enabled device we add extra
XhmikosR's avatar
Dist.  
XhmikosR committed
3573
3574
3575
3576
3577
      // 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
3578
3579
3580
        var _ref;

        (_ref = []).concat.apply(_ref, document.body.children).forEach(function (element) {
XhmikosR's avatar
Dist.  
XhmikosR committed
3581
3582
3583
3584
          EventHandler.on(element, 'mouseover', noop());
        });
      }

XhmikosR's avatar
XhmikosR committed
3585
3586
3587
      var complete = function complete() {
        if (_this.config.animation) {
          _this._fixTransition();
XhmikosR's avatar
Dist.  
XhmikosR committed
3588
3589
        }

XhmikosR's avatar
XhmikosR committed
3590
3591
3592
        var prevHoverState = _this._hoverState;
        _this._hoverState = null;
        EventHandler.trigger(_this.element, _this.constructor.Event.SHOWN);
XhmikosR's avatar
Dist.  
XhmikosR committed
3593

XhmikosR's avatar
XhmikosR committed
3594
        if (prevHoverState === HOVER_STATE_OUT) {
XhmikosR's avatar
XhmikosR committed
3595
          _this._leave(null, _this);
XhmikosR's avatar
Dist.  
XhmikosR committed
3596
3597
3598
        }
      };

XhmikosR's avatar
XhmikosR committed
3599
      if (this.tip.classList.contains(CLASS_NAME_FADE$1)) {
XhmikosR's avatar
XhmikosR committed
3600
        var transitionDuration = getTransitionDurationFromElement(this.tip);
XhmikosR's avatar
Dist.  
XhmikosR committed
3601
3602
3603
3604
3605
3606
        EventHandler.one(this.tip, TRANSITION_END, complete);
        emulateTransitionEnd(this.tip, transitionDuration);
      } else {
        complete();
      }
    }
XhmikosR's avatar
XhmikosR committed
3607
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
3608

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

XhmikosR's avatar
XhmikosR committed
3612
3613
3614
    var tip = this.getTipElement();

    var complete = function complete() {
XhmikosR's avatar
XhmikosR committed
3615
      if (_this2._hoverState !== HOVER_STATE_SHOW && tip.parentNode) {
XhmikosR's avatar
Dist.  
XhmikosR committed
3616
3617
3618
        tip.parentNode.removeChild(tip);
      }

XhmikosR's avatar
XhmikosR committed
3619
3620
3621
      _this2._cleanTipClass();

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

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

3625
      _this2._popper.destroy();
XhmikosR's avatar
Dist.  
XhmikosR committed
3626
3627
    };

XhmikosR's avatar
XhmikosR committed
3628
    var hideEvent = EventHandler.trigger(this.element, this.constructor.Event.HIDE);
XhmikosR's avatar
Dist.  
XhmikosR committed
3629
3630
3631
3632
3633

    if (hideEvent.defaultPrevented) {
      return;
    }

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

    if ('ontouchstart' in document.documentElement) {
XhmikosR's avatar
XhmikosR committed
3638
3639
3640
      var _ref2;

      (_ref2 = []).concat.apply(_ref2, document.body.children).forEach(function (element) {
XhmikosR's avatar
XhmikosR committed
3641
3642
        return EventHandler.off(element, 'mouseover', noop);
      });
XhmikosR's avatar
Dist.  
XhmikosR committed
3643
3644
    }

XhmikosR's avatar
XhmikosR committed
3645
3646
3647
    this._activeTrigger[TRIGGER_CLICK] = false;
    this._activeTrigger[TRIGGER_FOCUS] = false;
    this._activeTrigger[TRIGGER_HOVER] = false;
XhmikosR's avatar
Dist.  
XhmikosR committed
3648

XhmikosR's avatar
XhmikosR committed
3649
    if (this.tip.classList.contains(CLASS_NAME_FADE$1)) {
XhmikosR's avatar
XhmikosR committed
3650
      var transitionDuration = getTransitionDurationFromElement(tip);
XhmikosR's avatar
Dist.  
XhmikosR committed
3651
3652
3653
3654
3655
3656
3657
      EventHandler.one(tip, TRANSITION_END, complete);
      emulateTransitionEnd(tip, transitionDuration);
    } else {
      complete();
    }

    this._hoverState = '';
XhmikosR's avatar
XhmikosR committed
3658
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
3659

XhmikosR's avatar
XhmikosR committed
3660
  _proto.update = function update() {
XhmikosR's avatar
Dist.  
XhmikosR committed
3661
3662
3663
3664
    if (this._popper !== null) {
      this._popper.scheduleUpdate();
    }
  } // Protected
XhmikosR's avatar
XhmikosR committed
3665
  ;
XhmikosR's avatar
Dist.  
XhmikosR committed
3666

XhmikosR's avatar
XhmikosR committed
3667
  _proto.isWithContent = function isWithContent() {
XhmikosR's avatar
Dist.  
XhmikosR committed
3668
    return Boolean(this.getTitle());
XhmikosR's avatar
XhmikosR committed
3669
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
3670

XhmikosR's avatar
XhmikosR committed
3671
  _proto.getTipElement = function getTipElement() {
XhmikosR's avatar
Dist.  
XhmikosR committed
3672
3673
3674
3675
    if (this.tip) {
      return this.tip;
    }

XhmikosR's avatar
XhmikosR committed
3676
    var element = document.createElement('div');
XhmikosR's avatar
Dist.  
XhmikosR committed
3677
3678
3679
    element.innerHTML = this.config.template;
    this.tip = element.children[0];
    return this.tip;
XhmikosR's avatar
XhmikosR committed
3680
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
3681

XhmikosR's avatar
XhmikosR committed
3682
3683
  _proto.setContent = function setContent() {
    var tip = this.getTipElement();
XhmikosR's avatar
XhmikosR committed
3684
    this.setElementContent(SelectorEngine.findOne(SELECTOR_TOOLTIP_INNER, tip), this.getTitle());
XhmikosR's avatar
XhmikosR committed
3685
    tip.classList.remove(CLASS_NAME_FADE$1, CLASS_NAME_SHOW$3);
XhmikosR's avatar
XhmikosR committed
3686
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
3687

XhmikosR's avatar
XhmikosR committed
3688
  _proto.setElementContent = function setElementContent(element, content) {
XhmikosR's avatar
Dist.  
XhmikosR committed
3689
3690
3691
3692
    if (element === null) {
      return;
    }

3693
    if (typeof content === 'object' && isElement(content)) {
XhmikosR's avatar
Dist.  
XhmikosR committed
3694
3695
3696
3697
3698
3699
3700
3701
3702
3703
3704
      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
3705
        element.textContent = content.textContent;
XhmikosR's avatar
Dist.  
XhmikosR committed
3706
3707
3708
3709
3710
3711
3712
3713
3714
3715
3716
3717
      }

      return;
    }

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

      element.innerHTML = content;
    } else {
XhmikosR's avatar
XhmikosR committed
3718
      element.textContent = content;
XhmikosR's avatar
Dist.  
XhmikosR committed
3719
    }
XhmikosR's avatar
XhmikosR committed
3720
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
3721

XhmikosR's avatar
XhmikosR committed
3722
3723
  _proto.getTitle = function getTitle() {
    var title = this.element.getAttribute('data-original-title');
XhmikosR's avatar
Dist.  
XhmikosR committed
3724
3725
3726
3727
3728
3729
3730

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

XhmikosR's avatar
XhmikosR committed
3733
3734
3735
3736
3737
3738
3739
3740
3741
3742
3743
3744
3745
3746
3747
3748
3749
3750
3751
3752
3753
3754
3755
3756
3757
3758
  _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
3759
    return _objectSpread2(_objectSpread2({}, defaultBsConfig), this.config.popperConfig);
XhmikosR's avatar
XhmikosR committed
3760
3761
  };

3762
3763
3764
3765
  _proto._addAttachmentClass = function _addAttachmentClass(attachment) {
    this.getTipElement().classList.add(CLASS_PREFIX + "-" + attachment);
  };

XhmikosR's avatar
XhmikosR committed
3766
  _proto._getOffset = function _getOffset() {
XhmikosR's avatar
XhmikosR committed
3767
    var _this4 = this;
XhmikosR's avatar
Dist.  
XhmikosR committed
3768

XhmikosR's avatar
XhmikosR committed
3769
    var offset = {};
XhmikosR's avatar
Dist.  
XhmikosR committed
3770
3771

    if (typeof this.config.offset === 'function') {
XhmikosR's avatar
XhmikosR committed
3772
      offset.fn = function (data) {
XhmikosR's avatar
XhmikosR committed
3773
        data.offsets = _objectSpread2(_objectSpread2({}, data.offsets), _this4.config.offset(data.offsets, _this4.element) || {});
XhmikosR's avatar
Dist.  
XhmikosR committed
3774
3775
3776
3777
3778
3779
3780
        return data;
      };
    } else {
      offset.offset = this.config.offset;
    }

    return offset;
XhmikosR's avatar
XhmikosR committed
3781
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
3782

XhmikosR's avatar
XhmikosR committed
3783
  _proto._getContainer = function _getContainer() {
XhmikosR's avatar
Dist.  
XhmikosR committed
3784
3785
3786
3787
3788
3789
3790
3791
3792
    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
3793
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
3794

XhmikosR's avatar
XhmikosR committed
3795
  _proto._getAttachment = function _getAttachment(placement) {
XhmikosR's avatar
XhmikosR committed
3796
    return AttachmentMap[placement.toUpperCase()];
XhmikosR's avatar
XhmikosR committed
3797
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
3798

XhmikosR's avatar
XhmikosR committed
3799
  _proto._setListeners = function _setListeners() {
XhmikosR's avatar
XhmikosR committed
3800
    var _this5 = this;
XhmikosR's avatar
XhmikosR committed
3801
3802
3803

    var triggers = this.config.trigger.split(' ');
    triggers.forEach(function (trigger) {
XhmikosR's avatar
Dist.  
XhmikosR committed
3804
      if (trigger === 'click') {
XhmikosR's avatar
XhmikosR committed
3805
3806
        EventHandler.on(_this5.element, _this5.constructor.Event.CLICK, _this5.config.selector, function (event) {
          return _this5.toggle(event);
XhmikosR's avatar
XhmikosR committed
3807
        });
XhmikosR's avatar
XhmikosR committed
3808
3809
3810
      } 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
3811
3812
        EventHandler.on(_this5.element, eventIn, _this5.config.selector, function (event) {
          return _this5._enter(event);
XhmikosR's avatar
XhmikosR committed
3813
        });
XhmikosR's avatar
XhmikosR committed
3814
3815
        EventHandler.on(_this5.element, eventOut, _this5.config.selector, function (event) {
          return _this5._leave(event);
XhmikosR's avatar
XhmikosR committed
3816
        });
XhmikosR's avatar
Dist.  
XhmikosR committed
3817
3818
      }
    });
Mark Otto's avatar
dist v5    
Mark Otto committed
3819
3820

    this._hideModalHandler = function () {
XhmikosR's avatar
XhmikosR committed
3821
3822
      if (_this5.element) {
        _this5.hide();
XhmikosR's avatar
Dist.  
XhmikosR committed
3823
      }
Mark Otto's avatar
dist v5    
Mark Otto committed
3824
3825
    };

XhmikosR's avatar
XhmikosR committed
3826
    EventHandler.on(this.element.closest("." + CLASS_NAME_MODAL), 'hide.bs.modal', this._hideModalHandler);
XhmikosR's avatar
Dist.  
XhmikosR committed
3827
3828

    if (this.config.selector) {
XhmikosR's avatar
XhmikosR committed
3829
      this.config = _objectSpread2(_objectSpread2({}, this.config), {}, {
XhmikosR's avatar
Dist.  
XhmikosR committed
3830
3831
3832
3833
3834
3835
        trigger: 'manual',
        selector: ''
      });
    } else {
      this._fixTitle();
    }
XhmikosR's avatar
XhmikosR committed
3836
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
3837

XhmikosR's avatar
XhmikosR committed
3838
3839
  _proto._fixTitle = function _fixTitle() {
    var titleType = typeof this.element.getAttribute('data-original-title');
XhmikosR's avatar
Dist.  
XhmikosR committed
3840
3841
3842
3843
3844

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

XhmikosR's avatar
XhmikosR committed
3847
3848
  _proto._enter = function _enter(event, context) {
    var dataKey = this.constructor.DATA_KEY;
XhmikosR's avatar
XhmikosR committed
3849
    context = context || Data.getData(event.target, dataKey);
XhmikosR's avatar
Dist.  
XhmikosR committed
3850
3851

    if (!context) {
XhmikosR's avatar
XhmikosR committed
3852
3853
      context = new this.constructor(event.target, this._getDelegateConfig());
      Data.setData(event.target, dataKey, context);
XhmikosR's avatar
Dist.  
XhmikosR committed
3854
3855
3856
    }

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

XhmikosR's avatar
XhmikosR committed
3860
3861
    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
3862
3863
3864
3865
      return;
    }

    clearTimeout(context._timeout);
XhmikosR's avatar
XhmikosR committed
3866
    context._hoverState = HOVER_STATE_SHOW;
XhmikosR's avatar
Dist.  
XhmikosR committed
3867
3868
3869
3870
3871
3872

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

XhmikosR's avatar
XhmikosR committed
3873
    context._timeout = setTimeout(function () {
XhmikosR's avatar
XhmikosR committed
3874
      if (context._hoverState === HOVER_STATE_SHOW) {
XhmikosR's avatar
Dist.  
XhmikosR committed
3875
3876
3877
        context.show();
      }
    }, context.config.delay.show);
XhmikosR's avatar
XhmikosR committed
3878
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
3879

XhmikosR's avatar
XhmikosR committed
3880
3881
  _proto._leave = function _leave(event, context) {
    var dataKey = this.constructor.DATA_KEY;
XhmikosR's avatar
XhmikosR committed
3882
    context = context || Data.getData(event.target, dataKey);
XhmikosR's avatar
Dist.  
XhmikosR committed
3883
3884

    if (!context) {
XhmikosR's avatar
XhmikosR committed
3885
3886
      context = new this.constructor(event.target, this._getDelegateConfig());
      Data.setData(event.target, dataKey, context);
XhmikosR's avatar
Dist.  
XhmikosR committed
3887
3888
3889
    }

    if (event) {
XhmikosR's avatar
XhmikosR committed
3890
      context._activeTrigger[event.type === 'focusout' ? TRIGGER_FOCUS : TRIGGER_HOVER] = false;
XhmikosR's avatar
Dist.  
XhmikosR committed
3891
3892
3893
3894
3895
3896
3897
    }

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

    clearTimeout(context._timeout);
XhmikosR's avatar
XhmikosR committed
3898
    context._hoverState = HOVER_STATE_OUT;
XhmikosR's avatar
Dist.  
XhmikosR committed
3899
3900
3901
3902
3903
3904

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

XhmikosR's avatar
XhmikosR committed
3905
    context._timeout = setTimeout(function () {
XhmikosR's avatar
XhmikosR committed
3906
      if (context._hoverState === HOVER_STATE_OUT) {
XhmikosR's avatar
Dist.  
XhmikosR committed
3907
3908
3909
        context.hide();
      }
    }, context.config.delay.hide);
XhmikosR's avatar
XhmikosR committed
3910
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
3911

XhmikosR's avatar
XhmikosR committed
3912
3913
  _proto._isWithActiveTrigger = function _isWithActiveTrigger() {
    for (var trigger in this._activeTrigger) {
XhmikosR's avatar
Dist.  
XhmikosR committed
3914
3915
3916
3917
3918
3919
      if (this._activeTrigger[trigger]) {
        return true;
      }
    }

    return false;
XhmikosR's avatar
XhmikosR committed
3920
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
3921

XhmikosR's avatar
XhmikosR committed
3922
3923
3924
  _proto._getConfig = function _getConfig(config) {
    var dataAttributes = Manipulator.getDataAttributes(this.element);
    Object.keys(dataAttributes).forEach(function (dataAttr) {
XhmikosR's avatar
Dist.  
XhmikosR committed
3925
3926
3927
3928
3929
3930
3931
3932
3933
      if (DISALLOWED_ATTRIBUTES.indexOf(dataAttr) !== -1) {
        delete dataAttributes[dataAttr];
      }
    });

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

XhmikosR's avatar
XhmikosR committed
3934
    config = _objectSpread2(_objectSpread2(_objectSpread2({}, this.constructor.Default), dataAttributes), typeof config === 'object' && config ? config : {});
XhmikosR's avatar
Dist.  
XhmikosR committed
3935
3936
3937
3938
3939
3940
3941
3942
3943
3944
3945
3946
3947
3948
3949
3950
3951
3952
3953
3954
3955
3956
3957

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

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

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

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

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

    return config;
XhmikosR's avatar
XhmikosR committed
3958
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
3959

XhmikosR's avatar
XhmikosR committed
3960
3961
  _proto._getDelegateConfig = function _getDelegateConfig() {
    var config = {};
XhmikosR's avatar
Dist.  
XhmikosR committed
3962
3963

    if (this.config) {
XhmikosR's avatar
XhmikosR committed
3964
      for (var key in this.config) {
XhmikosR's avatar
Dist.  
XhmikosR committed
3965
3966
3967
3968
3969
3970
3971
        if (this.constructor.Default[key] !== this.config[key]) {
          config[key] = this.config[key];
        }
      }
    }

    return config;
XhmikosR's avatar
XhmikosR committed
3972
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
3973

XhmikosR's avatar
XhmikosR committed
3974
3975
3976
  _proto._cleanTipClass = function _cleanTipClass() {
    var tip = this.getTipElement();
    var tabClass = tip.getAttribute('class').match(BSCLS_PREFIX_REGEX);
XhmikosR's avatar
Dist.  
XhmikosR committed
3977

XhmikosR's avatar
XhmikosR committed
3978
    if (tabClass !== null && tabClass.length > 0) {
XhmikosR's avatar
XhmikosR committed
3979
3980
3981
3982
3983
      tabClass.map(function (token) {
        return token.trim();
      }).forEach(function (tClass) {
        return tip.classList.remove(tClass);
      });
XhmikosR's avatar
Dist.  
XhmikosR committed
3984
    }
XhmikosR's avatar
XhmikosR committed
3985
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
3986

XhmikosR's avatar
XhmikosR committed
3987
3988
  _proto._handlePopperPlacementChange = function _handlePopperPlacementChange(popperData) {
    var popperInstance = popperData.instance;
XhmikosR's avatar
Dist.  
XhmikosR committed
3989
3990
3991
3992
    this.tip = popperInstance.popper;

    this._cleanTipClass();

3993
    this._addAttachmentClass(this._getAttachment(popperData.placement));
XhmikosR's avatar
XhmikosR committed
3994
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
3995

XhmikosR's avatar
XhmikosR committed
3996
3997
3998
  _proto._fixTransition = function _fixTransition() {
    var tip = this.getTipElement();
    var initConfigAnimation = this.config.animation;
XhmikosR's avatar
Dist.  
XhmikosR committed
3999
4000
4001
4002
4003

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

XhmikosR's avatar
XhmikosR committed
4004
    tip.classList.remove(CLASS_NAME_FADE$1);
XhmikosR's avatar
Dist.  
XhmikosR committed
4005
4006
4007
4008
4009
    this.config.animation = false;
    this.hide();
    this.show();
    this.config.animation = initConfigAnimation;
  } // Static
XhmikosR's avatar
XhmikosR committed
4010
  ;
XhmikosR's avatar
Dist.  
XhmikosR committed
4011

XhmikosR's avatar
XhmikosR committed
4012
  Tooltip.jQueryInterface = function jQueryInterface(config) {
XhmikosR's avatar
Dist.  
XhmikosR committed
4013
    return this.each(function () {
XhmikosR's avatar
XhmikosR committed
4014
      var data = Data.getData(this, DATA_KEY$6);
XhmikosR's avatar
Dist.  
XhmikosR committed
4015

XhmikosR's avatar
XhmikosR committed
4016
      var _config = typeof config === 'object' && config;
XhmikosR's avatar
Dist.  
XhmikosR committed
4017
4018
4019
4020
4021
4022
4023
4024
4025
4026
4027

      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
4028
          throw new TypeError("No method named \"" + config + "\"");
XhmikosR's avatar
Dist.  
XhmikosR committed
4029
4030
4031
4032
4033
        }

        data[config]();
      }
    });
XhmikosR's avatar
XhmikosR committed
4034
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
4035

XhmikosR's avatar
XhmikosR committed
4036
  Tooltip.getInstance = function getInstance(element) {
XhmikosR's avatar
Dist.  
XhmikosR committed
4037
    return Data.getData(element, DATA_KEY$6);
XhmikosR's avatar
XhmikosR committed
4038
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
4039

XhmikosR's avatar
XhmikosR committed
4040
4041
4042
4043
4044
4045
4046
4047
4048
4049
4050
4051
4052
4053
4054
4055
4056
4057
4058
4059
4060
4061
4062
  _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
4063
      return Event$1;
XhmikosR's avatar
XhmikosR committed
4064
4065
4066
4067
4068
4069
4070
4071
4072
4073
4074
4075
4076
4077
4078
    }
  }, {
    key: "EVENT_KEY",
    get: function get() {
      return EVENT_KEY$6;
    }
  }, {
    key: "DefaultType",
    get: function get() {
      return DefaultType$4;
    }
  }]);

  return Tooltip;
}();
XhmikosR's avatar
XhmikosR committed
4079
4080

var $$7 = getjQuery();
XhmikosR's avatar
Dist.  
XhmikosR committed
4081
4082
4083
4084
4085
4086
4087
/**
 * ------------------------------------------------------------------------
 * jQuery
 * ------------------------------------------------------------------------
 * add .tooltip to jQuery only if jQuery is present
 */

4088
4089
/* istanbul ignore if */

XhmikosR's avatar
XhmikosR committed
4090
4091
4092
4093
if ($$7) {
  var JQUERY_NO_CONFLICT$6 = $$7.fn[NAME$6];
  $$7.fn[NAME$6] = Tooltip.jQueryInterface;
  $$7.fn[NAME$6].Constructor = Tooltip;
XhmikosR's avatar
Dist.  
XhmikosR committed
4094

XhmikosR's avatar
XhmikosR committed
4095
4096
4097
  $$7.fn[NAME$6].noConflict = function () {
    $$7.fn[NAME$6] = JQUERY_NO_CONFLICT$6;
    return Tooltip.jQueryInterface;
XhmikosR's avatar
Dist.  
XhmikosR committed
4098
4099
4100
4101
4102
4103
4104
4105
4106
  };
}

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

XhmikosR's avatar
XhmikosR committed
4107
var NAME$7 = 'popover';
4108
var VERSION$7 = '5.0.0-alpha1';
XhmikosR's avatar
XhmikosR committed
4109
4110
4111
4112
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
4113

XhmikosR's avatar
XhmikosR committed
4114
var Default$5 = _objectSpread2(_objectSpread2({}, Tooltip.Default), {}, {
XhmikosR's avatar
Dist.  
XhmikosR committed
4115
4116
4117
4118
4119
4120
  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
4121
var DefaultType$5 = _objectSpread2(_objectSpread2({}, Tooltip.DefaultType), {}, {
XhmikosR's avatar
Dist.  
XhmikosR committed
4122
4123
4124
  content: '(string|element|function)'
});

XhmikosR's avatar
XhmikosR committed
4125
var Event$2 = {
XhmikosR's avatar
XhmikosR committed
4126
4127
4128
4129
4130
4131
4132
4133
4134
4135
  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
4136
};
XhmikosR's avatar
XhmikosR committed
4137
4138
4139
4140
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
4141
4142
4143
4144
4145
/**
 * ------------------------------------------------------------------------
 * Class Definition
 * ------------------------------------------------------------------------
 */
XhmikosR's avatar
Dist.  
XhmikosR committed
4146

XhmikosR's avatar
XhmikosR committed
4147
var Popover = /*#__PURE__*/function (_Tooltip) {
XhmikosR's avatar
XhmikosR committed
4148
  _inheritsLoose(Popover, _Tooltip);
XhmikosR's avatar
Dist.  
XhmikosR committed
4149

XhmikosR's avatar
XhmikosR committed
4150
4151
  function Popover() {
    return _Tooltip.apply(this, arguments) || this;
XhmikosR's avatar
Dist.  
XhmikosR committed
4152
4153
  }

XhmikosR's avatar
XhmikosR committed
4154
  var _proto = Popover.prototype;
XhmikosR's avatar
Dist.  
XhmikosR committed
4155

XhmikosR's avatar
XhmikosR committed
4156
4157
  // Overrides
  _proto.isWithContent = function isWithContent() {
XhmikosR's avatar
Dist.  
XhmikosR committed
4158
    return this.getTitle() || this._getContent();
XhmikosR's avatar
XhmikosR committed
4159
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
4160

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

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

XhmikosR's avatar
XhmikosR committed
4166
    var content = this._getContent();
XhmikosR's avatar
Dist.  
XhmikosR committed
4167
4168
4169
4170
4171

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

XhmikosR's avatar
XhmikosR committed
4172
    this.setElementContent(SelectorEngine.findOne(SELECTOR_CONTENT, tip), content);
XhmikosR's avatar
XhmikosR committed
4173
    tip.classList.remove(CLASS_NAME_FADE$2, CLASS_NAME_SHOW$4);
XhmikosR's avatar
XhmikosR committed
4174
4175
4176
4177
  };

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

XhmikosR's avatar
XhmikosR committed
4181
  _proto._getContent = function _getContent() {
XhmikosR's avatar
Dist.  
XhmikosR committed
4182
    return this.element.getAttribute('data-content') || this.config.content;
XhmikosR's avatar
XhmikosR committed
4183
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
4184

XhmikosR's avatar
XhmikosR committed
4185
4186
4187
  _proto._cleanTipClass = function _cleanTipClass() {
    var tip = this.getTipElement();
    var tabClass = tip.getAttribute('class').match(BSCLS_PREFIX_REGEX$1);
XhmikosR's avatar
Dist.  
XhmikosR committed
4188
4189

    if (tabClass !== null && tabClass.length > 0) {
XhmikosR's avatar
XhmikosR committed
4190
4191
4192
4193
4194
      tabClass.map(function (token) {
        return token.trim();
      }).forEach(function (tClass) {
        return tip.classList.remove(tClass);
      });
XhmikosR's avatar
Dist.  
XhmikosR committed
4195
4196
    }
  } // Static
XhmikosR's avatar
XhmikosR committed
4197
  ;
XhmikosR's avatar
Dist.  
XhmikosR committed
4198

XhmikosR's avatar
XhmikosR committed
4199
  Popover.jQueryInterface = function jQueryInterface(config) {
XhmikosR's avatar
Dist.  
XhmikosR committed
4200
    return this.each(function () {
XhmikosR's avatar
XhmikosR committed
4201
      var data = Data.getData(this, DATA_KEY$7);
XhmikosR's avatar
Dist.  
XhmikosR committed
4202

XhmikosR's avatar
XhmikosR committed
4203
      var _config = typeof config === 'object' ? config : null;
XhmikosR's avatar
Dist.  
XhmikosR committed
4204
4205
4206
4207
4208
4209
4210
4211
4212
4213
4214
4215

      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
4216
          throw new TypeError("No method named \"" + config + "\"");
XhmikosR's avatar
Dist.  
XhmikosR committed
4217
4218
4219
4220
4221
        }

        data[config]();
      }
    });
XhmikosR's avatar
XhmikosR committed
4222
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
4223

XhmikosR's avatar
XhmikosR committed
4224
  Popover.getInstance = function getInstance(element) {
XhmikosR's avatar
Dist.  
XhmikosR committed
4225
    return Data.getData(element, DATA_KEY$7);
XhmikosR's avatar
XhmikosR committed
4226
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
4227

XhmikosR's avatar
XhmikosR committed
4228
4229
4230
4231
4232
4233
4234
4235
4236
4237
4238
4239
4240
4241
4242
4243
4244
4245
4246
4247
4248
4249
4250
4251
  _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
4252
      return Event$2;
XhmikosR's avatar
XhmikosR committed
4253
4254
4255
4256
4257
4258
4259
4260
4261
4262
4263
4264
4265
4266
4267
    }
  }, {
    key: "EVENT_KEY",
    get: function get() {
      return EVENT_KEY$7;
    }
  }, {
    key: "DefaultType",
    get: function get() {
      return DefaultType$5;
    }
  }]);

  return Popover;
}(Tooltip);
XhmikosR's avatar
XhmikosR committed
4268
4269

var $$8 = getjQuery();
XhmikosR's avatar
Dist.  
XhmikosR committed
4270
4271
4272
4273
4274
4275
/**
 * ------------------------------------------------------------------------
 * jQuery
 * ------------------------------------------------------------------------
 */

4276
4277
/* istanbul ignore if */

XhmikosR's avatar
XhmikosR committed
4278
4279
4280
4281
if ($$8) {
  var JQUERY_NO_CONFLICT$7 = $$8.fn[NAME$7];
  $$8.fn[NAME$7] = Popover.jQueryInterface;
  $$8.fn[NAME$7].Constructor = Popover;
XhmikosR's avatar
Dist.  
XhmikosR committed
4282

XhmikosR's avatar
XhmikosR committed
4283
4284
4285
  $$8.fn[NAME$7].noConflict = function () {
    $$8.fn[NAME$7] = JQUERY_NO_CONFLICT$7;
    return Popover.jQueryInterface;
XhmikosR's avatar
Dist.  
XhmikosR committed
4286
4287
4288
4289
4290
4291
4292
4293
4294
  };
}

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

XhmikosR's avatar
XhmikosR committed
4295
var NAME$8 = 'scrollspy';
4296
var VERSION$8 = '5.0.0-alpha1';
XhmikosR's avatar
XhmikosR committed
4297
4298
4299
4300
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
4301
4302
4303
4304
  offset: 10,
  method: 'auto',
  target: ''
};
XhmikosR's avatar
XhmikosR committed
4305
var DefaultType$6 = {
XhmikosR's avatar
Dist.  
XhmikosR committed
4306
4307
4308
4309
  offset: 'number',
  method: 'string',
  target: '(string|element)'
};
XhmikosR's avatar
XhmikosR committed
4310
4311
4312
4313
4314
4315
4316
4317
4318
4319
4320
4321
4322
4323
var EVENT_ACTIVATE = "activate" + EVENT_KEY$8;
var EVENT_SCROLL = "scroll" + EVENT_KEY$8;
var EVENT_LOAD_DATA_API$1 = "load" + EVENT_KEY$8 + DATA_API_KEY$6;
var CLASS_NAME_DROPDOWN_ITEM = 'dropdown-item';
var CLASS_NAME_ACTIVE$2 = 'active';
var SELECTOR_DATA_SPY = '[data-spy="scroll"]';
var SELECTOR_NAV_LIST_GROUP = '.nav, .list-group';
var SELECTOR_NAV_LINKS = '.nav-link';
var SELECTOR_NAV_ITEMS = '.nav-item';
var SELECTOR_LIST_ITEMS = '.list-group-item';
var SELECTOR_DROPDOWN = '.dropdown';
var SELECTOR_DROPDOWN_TOGGLE = '.dropdown-toggle';
var METHOD_OFFSET = 'offset';
var METHOD_POSITION = 'position';
XhmikosR's avatar
XhmikosR committed
4324
4325
4326
4327
4328
/**
 * ------------------------------------------------------------------------
 * Class Definition
 * ------------------------------------------------------------------------
 */
XhmikosR's avatar
Dist.  
XhmikosR committed
4329

XhmikosR's avatar
XhmikosR committed
4330
var ScrollSpy = /*#__PURE__*/function () {
XhmikosR's avatar
XhmikosR committed
4331
4332
4333
  function ScrollSpy(element, config) {
    var _this = this;

XhmikosR's avatar
Dist.  
XhmikosR committed
4334
4335
4336
    this._element = element;
    this._scrollElement = element.tagName === 'BODY' ? window : element;
    this._config = this._getConfig(config);
XhmikosR's avatar
XhmikosR committed
4337
    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
4338
4339
4340
4341
    this._offsets = [];
    this._targets = [];
    this._activeTarget = null;
    this._scrollHeight = 0;
XhmikosR's avatar
XhmikosR committed
4342
    EventHandler.on(this._scrollElement, EVENT_SCROLL, function (event) {
XhmikosR's avatar
XhmikosR committed
4343
4344
      return _this._process(event);
    });
XhmikosR's avatar
Dist.  
XhmikosR committed
4345
4346
4347
4348
4349
4350
4351
4352
    this.refresh();

    this._process();

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


XhmikosR's avatar
XhmikosR committed
4353
  var _proto = ScrollSpy.prototype;
XhmikosR's avatar
Dist.  
XhmikosR committed
4354

XhmikosR's avatar
XhmikosR committed
4355
4356
4357
  // Public
  _proto.refresh = function refresh() {
    var _this2 = this;
XhmikosR's avatar
Dist.  
XhmikosR committed
4358

XhmikosR's avatar
XhmikosR committed
4359
    var autoMethod = this._scrollElement === this._scrollElement.window ? METHOD_OFFSET : METHOD_POSITION;
XhmikosR's avatar
XhmikosR committed
4360
    var offsetMethod = this._config.method === 'auto' ? autoMethod : this._config.method;
XhmikosR's avatar
XhmikosR committed
4361
    var offsetBase = offsetMethod === METHOD_POSITION ? this._getScrollTop() : 0;
XhmikosR's avatar
Dist.  
XhmikosR committed
4362
4363
4364
    this._offsets = [];
    this._targets = [];
    this._scrollHeight = this._getScrollHeight();
XhmikosR's avatar
XhmikosR committed
4365
    var targets = SelectorEngine.find(this._selector);
XhmikosR's avatar
XhmikosR committed
4366
4367
4368
    targets.map(function (element) {
      var target;
      var targetSelector = getSelectorFromElement(element);
XhmikosR's avatar
Dist.  
XhmikosR committed
4369
4370
4371
4372
4373
4374

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

      if (target) {
XhmikosR's avatar
XhmikosR committed
4375
        var targetBCR = target.getBoundingClientRect();
XhmikosR's avatar
Dist.  
XhmikosR committed
4376
4377
4378
4379
4380
4381
4382

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

      return null;
XhmikosR's avatar
XhmikosR committed
4383
4384
4385
4386
4387
4388
4389
4390
    }).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
4391
    });
XhmikosR's avatar
XhmikosR committed
4392
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
4393

XhmikosR's avatar
XhmikosR committed
4394
  _proto.dispose = function dispose() {
XhmikosR's avatar
Dist.  
XhmikosR committed
4395
4396
4397
4398
4399
4400
4401
4402
4403
4404
4405
    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
4406
  ;
XhmikosR's avatar
Dist.  
XhmikosR committed
4407

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

XhmikosR's avatar
XhmikosR committed
4411
    if (typeof config.target !== 'string' && isElement(config.target)) {
XhmikosR's avatar
XhmikosR committed
4412
      var id = config.target.id;
XhmikosR's avatar
Dist.  
XhmikosR committed
4413
4414
4415
4416
4417
4418

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

XhmikosR's avatar
XhmikosR committed
4419
      config.target = "#" + id;
XhmikosR's avatar
Dist.  
XhmikosR committed
4420
4421
4422
4423
    }

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

XhmikosR's avatar
XhmikosR committed
4426
  _proto._getScrollTop = function _getScrollTop() {
XhmikosR's avatar
Dist.  
XhmikosR committed
4427
    return this._scrollElement === window ? this._scrollElement.pageYOffset : this._scrollElement.scrollTop;
XhmikosR's avatar
XhmikosR committed
4428
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
4429

XhmikosR's avatar
XhmikosR committed
4430
  _proto._getScrollHeight = function _getScrollHeight() {
XhmikosR's avatar
Dist.  
XhmikosR committed
4431
    return this._scrollElement.scrollHeight || Math.max(document.body.scrollHeight, document.documentElement.scrollHeight);
XhmikosR's avatar
XhmikosR committed
4432
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
4433

XhmikosR's avatar
XhmikosR committed
4434
  _proto._getOffsetHeight = function _getOffsetHeight() {
XhmikosR's avatar
Dist.  
XhmikosR committed
4435
    return this._scrollElement === window ? window.innerHeight : this._scrollElement.getBoundingClientRect().height;
XhmikosR's avatar
XhmikosR committed
4436
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
4437

XhmikosR's avatar
XhmikosR committed
4438
4439
  _proto._process = function _process() {
    var scrollTop = this._getScrollTop() + this._config.offset;
XhmikosR's avatar
Dist.  
XhmikosR committed
4440

XhmikosR's avatar
XhmikosR committed
4441
    var scrollHeight = this._getScrollHeight();
XhmikosR's avatar
Dist.  
XhmikosR committed
4442

XhmikosR's avatar
XhmikosR committed
4443
    var maxScroll = this._config.offset + scrollHeight - this._getOffsetHeight();
XhmikosR's avatar
Dist.  
XhmikosR committed
4444
4445
4446
4447
4448
4449

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

    if (scrollTop >= maxScroll) {
XhmikosR's avatar
XhmikosR committed
4450
      var target = this._targets[this._targets.length - 1];
XhmikosR's avatar
Dist.  
XhmikosR committed
4451
4452
4453
4454
4455
4456
4457
4458
4459
4460
4461
4462
4463
4464
4465
4466

      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
4467
    for (var i = this._offsets.length; i--;) {
XhmikosR's avatar
XhmikosR committed
4468
      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
4469
4470
4471
4472
4473

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

XhmikosR's avatar
XhmikosR committed
4476
  _proto._activate = function _activate(target) {
XhmikosR's avatar
Dist.  
XhmikosR committed
4477
4478
4479
4480
    this._activeTarget = target;

    this._clear();

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

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

XhmikosR's avatar
XhmikosR committed
4487
    if (link.classList.contains(CLASS_NAME_DROPDOWN_ITEM)) {
XhmikosR's avatar
XhmikosR committed
4488
      SelectorEngine.findOne(SELECTOR_DROPDOWN_TOGGLE, link.closest(SELECTOR_DROPDOWN)).classList.add(CLASS_NAME_ACTIVE$2);
XhmikosR's avatar
XhmikosR committed
4489
      link.classList.add(CLASS_NAME_ACTIVE$2);
XhmikosR's avatar
Dist.  
XhmikosR committed
4490
4491
    } else {
      // Set triggered link as active
XhmikosR's avatar
XhmikosR committed
4492
4493
      link.classList.add(CLASS_NAME_ACTIVE$2);
      SelectorEngine.parents(link, SELECTOR_NAV_LIST_GROUP).forEach(function (listGroup) {
XhmikosR's avatar
Dist.  
XhmikosR committed
4494
4495
        // 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
4496
4497
        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
4498
        }); // Handle special case when .nav-link is inside .nav-item
XhmikosR's avatar
Dist.  
XhmikosR committed
4499

XhmikosR's avatar
XhmikosR committed
4500
4501
4502
        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
4503
          });
XhmikosR's avatar
Dist.  
XhmikosR committed
4504
4505
4506
4507
        });
      });
    }

XhmikosR's avatar
XhmikosR committed
4508
    EventHandler.trigger(this._scrollElement, EVENT_ACTIVATE, {
XhmikosR's avatar
Dist.  
XhmikosR committed
4509
4510
      relatedTarget: target
    });
XhmikosR's avatar
XhmikosR committed
4511
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
4512

XhmikosR's avatar
XhmikosR committed
4513
  _proto._clear = function _clear() {
XhmikosR's avatar
XhmikosR committed
4514
4515
    SelectorEngine.find(this._selector).filter(function (node) {
      return node.classList.contains(CLASS_NAME_ACTIVE$2);
XhmikosR's avatar
XhmikosR committed
4516
    }).forEach(function (node) {
XhmikosR's avatar
XhmikosR committed
4517
      return node.classList.remove(CLASS_NAME_ACTIVE$2);
XhmikosR's avatar
XhmikosR committed
4518
    });
XhmikosR's avatar
Dist.  
XhmikosR committed
4519
  } // Static
XhmikosR's avatar
XhmikosR committed
4520
  ;
XhmikosR's avatar
Dist.  
XhmikosR committed
4521

XhmikosR's avatar
XhmikosR committed
4522
  ScrollSpy.jQueryInterface = function jQueryInterface(config) {
XhmikosR's avatar
Dist.  
XhmikosR committed
4523
    return this.each(function () {
XhmikosR's avatar
XhmikosR committed
4524
      var data = Data.getData(this, DATA_KEY$8);
XhmikosR's avatar
Dist.  
XhmikosR committed
4525

XhmikosR's avatar
XhmikosR committed
4526
      var _config = typeof config === 'object' && config;
XhmikosR's avatar
Dist.  
XhmikosR committed
4527
4528
4529
4530
4531
4532
4533

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

      if (typeof config === 'string') {
        if (typeof data[config] === 'undefined') {
XhmikosR's avatar
XhmikosR committed
4534
          throw new TypeError("No method named \"" + config + "\"");
XhmikosR's avatar
Dist.  
XhmikosR committed
4535
4536
4537
4538
4539
        }

        data[config]();
      }
    });
XhmikosR's avatar
XhmikosR committed
4540
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
4541

XhmikosR's avatar
XhmikosR committed
4542
  ScrollSpy.getInstance = function getInstance(element) {
XhmikosR's avatar
Dist.  
XhmikosR committed
4543
    return Data.getData(element, DATA_KEY$8);
XhmikosR's avatar
XhmikosR committed
4544
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
4545

XhmikosR's avatar
XhmikosR committed
4546
4547
4548
4549
4550
4551
4552
4553
4554
4555
4556
4557
4558
4559
  _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
4560
4561
4562
4563
4564
4565
4566
/**
 * ------------------------------------------------------------------------
 * Data Api implementation
 * ------------------------------------------------------------------------
 */


XhmikosR's avatar
XhmikosR committed
4567
4568
EventHandler.on(window, EVENT_LOAD_DATA_API$1, function () {
  SelectorEngine.find(SELECTOR_DATA_SPY).forEach(function (spy) {
XhmikosR's avatar
XhmikosR committed
4569
4570
    return new ScrollSpy(spy, Manipulator.getDataAttributes(spy));
  });
XhmikosR's avatar
Dist.  
XhmikosR committed
4571
});
XhmikosR's avatar
XhmikosR committed
4572
var $$9 = getjQuery();
XhmikosR's avatar
Dist.  
XhmikosR committed
4573
4574
4575
4576
4577
4578
/**
 * ------------------------------------------------------------------------
 * jQuery
 * ------------------------------------------------------------------------
 */

4579
4580
/* istanbul ignore if */

XhmikosR's avatar
XhmikosR committed
4581
4582
4583
4584
if ($$9) {
  var JQUERY_NO_CONFLICT$8 = $$9.fn[NAME$8];
  $$9.fn[NAME$8] = ScrollSpy.jQueryInterface;
  $$9.fn[NAME$8].Constructor = ScrollSpy;
XhmikosR's avatar
Dist.  
XhmikosR committed
4585

XhmikosR's avatar
XhmikosR committed
4586
4587
4588
  $$9.fn[NAME$8].noConflict = function () {
    $$9.fn[NAME$8] = JQUERY_NO_CONFLICT$8;
    return ScrollSpy.jQueryInterface;
XhmikosR's avatar
Dist.  
XhmikosR committed
4589
4590
4591
4592
4593
4594
4595
4596
4597
  };
}

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

XhmikosR's avatar
XhmikosR committed
4598
var NAME$9 = 'tab';
4599
var VERSION$9 = '5.0.0-alpha1';
XhmikosR's avatar
XhmikosR committed
4600
4601
4602
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
4603
4604
4605
4606
4607
4608
4609
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
4610
var CLASS_NAME_DISABLED$1 = 'disabled';
XhmikosR's avatar
XhmikosR committed
4611
4612
4613
4614
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
4615
var SELECTOR_ACTIVE$1 = '.active';
XhmikosR's avatar
XhmikosR committed
4616
4617
4618
4619
var SELECTOR_ACTIVE_UL = ':scope > li > .active';
var SELECTOR_DATA_TOGGLE$4 = '[data-toggle="tab"], [data-toggle="pill"], [data-toggle="list"]';
var SELECTOR_DROPDOWN_TOGGLE$1 = '.dropdown-toggle';
var SELECTOR_DROPDOWN_ACTIVE_CHILD = ':scope > .dropdown-menu .active';
XhmikosR's avatar
XhmikosR committed
4620
4621
4622
4623
4624
/**
 * ------------------------------------------------------------------------
 * Class Definition
 * ------------------------------------------------------------------------
 */
XhmikosR's avatar
Dist.  
XhmikosR committed
4625

XhmikosR's avatar
XhmikosR committed
4626
var Tab = /*#__PURE__*/function () {
XhmikosR's avatar
XhmikosR committed
4627
  function Tab(element) {
XhmikosR's avatar
Dist.  
XhmikosR committed
4628
4629
4630
4631
4632
    this._element = element;
    Data.setData(this._element, DATA_KEY$9, this);
  } // Getters


XhmikosR's avatar
XhmikosR committed
4633
  var _proto = Tab.prototype;
XhmikosR's avatar
Dist.  
XhmikosR committed
4634

XhmikosR's avatar
XhmikosR committed
4635
4636
4637
  // Public
  _proto.show = function show() {
    var _this = this;
XhmikosR's avatar
Dist.  
XhmikosR committed
4638

XhmikosR's avatar
XhmikosR committed
4639
    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
4640
4641
4642
      return;
    }

XhmikosR's avatar
XhmikosR committed
4643
    var previous;
XhmikosR's avatar
XhmikosR committed
4644
    var target = getElementFromSelector(this._element);
XhmikosR's avatar
XhmikosR committed
4645
4646

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

    if (listElement) {
XhmikosR's avatar
XhmikosR committed
4649
      var itemSelector = listElement.nodeName === 'UL' || listElement.nodeName === 'OL' ? SELECTOR_ACTIVE_UL : SELECTOR_ACTIVE$1;
XhmikosR's avatar
XhmikosR committed
4650
      previous = SelectorEngine.find(itemSelector, listElement);
XhmikosR's avatar
Dist.  
XhmikosR committed
4651
4652
4653
      previous = previous[previous.length - 1];
    }

XhmikosR's avatar
XhmikosR committed
4654
    var hideEvent = null;
XhmikosR's avatar
Dist.  
XhmikosR committed
4655
4656

    if (previous) {
XhmikosR's avatar
XhmikosR committed
4657
      hideEvent = EventHandler.trigger(previous, EVENT_HIDE$3, {
XhmikosR's avatar
Dist.  
XhmikosR committed
4658
4659
4660
4661
        relatedTarget: this._element
      });
    }

XhmikosR's avatar
XhmikosR committed
4662
    var showEvent = EventHandler.trigger(this._element, EVENT_SHOW$3, {
XhmikosR's avatar
Dist.  
XhmikosR committed
4663
4664
4665
4666
4667
4668
4669
4670
4671
      relatedTarget: previous
    });

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

    this._activate(this._element, listElement);

XhmikosR's avatar
XhmikosR committed
4672
    var complete = function complete() {
XhmikosR's avatar
XhmikosR committed
4673
      EventHandler.trigger(previous, EVENT_HIDDEN$3, {
XhmikosR's avatar
XhmikosR committed
4674
        relatedTarget: _this._element
XhmikosR's avatar
Dist.  
XhmikosR committed
4675
      });
XhmikosR's avatar
XhmikosR committed
4676
      EventHandler.trigger(_this._element, EVENT_SHOWN$3, {
XhmikosR's avatar
Dist.  
XhmikosR committed
4677
4678
4679
4680
4681
4682
4683
4684
4685
        relatedTarget: previous
      });
    };

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

XhmikosR's avatar
XhmikosR committed
4688
  _proto.dispose = function dispose() {
XhmikosR's avatar
Dist.  
XhmikosR committed
4689
4690
4691
    Data.removeData(this._element, DATA_KEY$9);
    this._element = null;
  } // Private
XhmikosR's avatar
XhmikosR committed
4692
  ;
XhmikosR's avatar
Dist.  
XhmikosR committed
4693

XhmikosR's avatar
XhmikosR committed
4694
4695
  _proto._activate = function _activate(element, container, callback) {
    var _this2 = this;
XhmikosR's avatar
Dist.  
XhmikosR committed
4696

XhmikosR's avatar
XhmikosR committed
4697
    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
4698
    var active = activeElements[0];
XhmikosR's avatar
XhmikosR committed
4699
    var isTransitioning = callback && active && active.classList.contains(CLASS_NAME_FADE$3);
XhmikosR's avatar
Dist.  
XhmikosR committed
4700

XhmikosR's avatar
XhmikosR committed
4701
4702
4703
    var complete = function complete() {
      return _this2._transitionComplete(element, active, callback);
    };
XhmikosR's avatar
Dist.  
XhmikosR committed
4704
4705

    if (active && isTransitioning) {
XhmikosR's avatar
XhmikosR committed
4706
      var transitionDuration = getTransitionDurationFromElement(active);
XhmikosR's avatar
XhmikosR committed
4707
      active.classList.remove(CLASS_NAME_SHOW$5);
XhmikosR's avatar
Dist.  
XhmikosR committed
4708
4709
4710
4711
4712
      EventHandler.one(active, TRANSITION_END, complete);
      emulateTransitionEnd(active, transitionDuration);
    } else {
      complete();
    }
XhmikosR's avatar
XhmikosR committed
4713
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
4714

XhmikosR's avatar
XhmikosR committed
4715
  _proto._transitionComplete = function _transitionComplete(element, active, callback) {
XhmikosR's avatar
Dist.  
XhmikosR committed
4716
    if (active) {
XhmikosR's avatar
XhmikosR committed
4717
4718
      active.classList.remove(CLASS_NAME_ACTIVE$3);
      var dropdownChild = SelectorEngine.findOne(SELECTOR_DROPDOWN_ACTIVE_CHILD, active.parentNode);
XhmikosR's avatar
Dist.  
XhmikosR committed
4719
4720

      if (dropdownChild) {
XhmikosR's avatar
XhmikosR committed
4721
        dropdownChild.classList.remove(CLASS_NAME_ACTIVE$3);
XhmikosR's avatar
Dist.  
XhmikosR committed
4722
4723
4724
4725
4726
4727
4728
      }

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

XhmikosR's avatar
XhmikosR committed
4729
    element.classList.add(CLASS_NAME_ACTIVE$3);
XhmikosR's avatar
Dist.  
XhmikosR committed
4730
4731
4732
4733
4734
4735
4736

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

    reflow(element);

XhmikosR's avatar
XhmikosR committed
4737
4738
    if (element.classList.contains(CLASS_NAME_FADE$3)) {
      element.classList.add(CLASS_NAME_SHOW$5);
XhmikosR's avatar
Dist.  
XhmikosR committed
4739
4740
    }

XhmikosR's avatar
XhmikosR committed
4741
    if (element.parentNode && element.parentNode.classList.contains(CLASS_NAME_DROPDOWN_MENU)) {
XhmikosR's avatar
XhmikosR committed
4742
      var dropdownElement = element.closest(SELECTOR_DROPDOWN$1);
XhmikosR's avatar
Dist.  
XhmikosR committed
4743
4744

      if (dropdownElement) {
XhmikosR's avatar
XhmikosR committed
4745
4746
        SelectorEngine.find(SELECTOR_DROPDOWN_TOGGLE$1).forEach(function (dropdown) {
          return dropdown.classList.add(CLASS_NAME_ACTIVE$3);
XhmikosR's avatar
XhmikosR committed
4747
        });
XhmikosR's avatar
Dist.  
XhmikosR committed
4748
4749
4750
4751
4752
4753
4754
4755
4756
      }

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

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

XhmikosR's avatar
XhmikosR committed
4759
  Tab.jQueryInterface = function jQueryInterface(config) {
XhmikosR's avatar
Dist.  
XhmikosR committed
4760
    return this.each(function () {
XhmikosR's avatar
XhmikosR committed
4761
      var data = Data.getData(this, DATA_KEY$9) || new Tab(this);
XhmikosR's avatar
Dist.  
XhmikosR committed
4762
4763
4764

      if (typeof config === 'string') {
        if (typeof data[config] === 'undefined') {
XhmikosR's avatar
XhmikosR committed
4765
          throw new TypeError("No method named \"" + config + "\"");
XhmikosR's avatar
Dist.  
XhmikosR committed
4766
4767
4768
4769
4770
        }

        data[config]();
      }
    });
XhmikosR's avatar
XhmikosR committed
4771
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
4772

XhmikosR's avatar
XhmikosR committed
4773
  Tab.getInstance = function getInstance(element) {
XhmikosR's avatar
Dist.  
XhmikosR committed
4774
    return Data.getData(element, DATA_KEY$9);
XhmikosR's avatar
XhmikosR committed
4775
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
4776

XhmikosR's avatar
XhmikosR committed
4777
4778
4779
4780
4781
4782
4783
4784
4785
  _createClass(Tab, null, [{
    key: "VERSION",
    get: function get() {
      return VERSION$9;
    }
  }]);

  return Tab;
}();
XhmikosR's avatar
Dist.  
XhmikosR committed
4786
4787
4788
4789
4790
4791
4792
/**
 * ------------------------------------------------------------------------
 * Data Api implementation
 * ------------------------------------------------------------------------
 */


XhmikosR's avatar
XhmikosR committed
4793
EventHandler.on(document, EVENT_CLICK_DATA_API$6, SELECTOR_DATA_TOGGLE$4, function (event) {
XhmikosR's avatar
Dist.  
XhmikosR committed
4794
  event.preventDefault();
XhmikosR's avatar
XhmikosR committed
4795
  var data = Data.getData(this, DATA_KEY$9) || new Tab(this);
XhmikosR's avatar
Dist.  
XhmikosR committed
4796
4797
  data.show();
});
XhmikosR's avatar
XhmikosR committed
4798
var $$a = getjQuery();
XhmikosR's avatar
Dist.  
XhmikosR committed
4799
4800
4801
4802
4803
4804
4805
/**
 * ------------------------------------------------------------------------
 * jQuery
 * ------------------------------------------------------------------------
 * add .tab to jQuery only if jQuery is present
 */

4806
4807
/* istanbul ignore if */

XhmikosR's avatar
XhmikosR committed
4808
4809
4810
4811
if ($$a) {
  var JQUERY_NO_CONFLICT$9 = $$a.fn[NAME$9];
  $$a.fn[NAME$9] = Tab.jQueryInterface;
  $$a.fn[NAME$9].Constructor = Tab;
XhmikosR's avatar
Dist.  
XhmikosR committed
4812

XhmikosR's avatar
XhmikosR committed
4813
4814
4815
  $$a.fn[NAME$9].noConflict = function () {
    $$a.fn[NAME$9] = JQUERY_NO_CONFLICT$9;
    return Tab.jQueryInterface;
XhmikosR's avatar
Dist.  
XhmikosR committed
4816
4817
4818
4819
4820
4821
4822
4823
4824
  };
}

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

XhmikosR's avatar
XhmikosR committed
4825
var NAME$a = 'toast';
4826
var VERSION$a = '5.0.0-alpha1';
XhmikosR's avatar
XhmikosR committed
4827
4828
var DATA_KEY$a = 'bs.toast';
var EVENT_KEY$a = "." + DATA_KEY$a;
XhmikosR's avatar
XhmikosR committed
4829
4830
4831
4832
4833
4834
4835
4836
4837
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
4838
var DefaultType$7 = {
XhmikosR's avatar
Dist.  
XhmikosR committed
4839
4840
4841
4842
  animation: 'boolean',
  autohide: 'boolean',
  delay: 'number'
};
XhmikosR's avatar
XhmikosR committed
4843
var Default$7 = {
XhmikosR's avatar
Dist.  
XhmikosR committed
4844
4845
4846
4847
  animation: true,
  autohide: true,
  delay: 500
};
XhmikosR's avatar
XhmikosR committed
4848
var SELECTOR_DATA_DISMISS$1 = '[data-dismiss="toast"]';
XhmikosR's avatar
XhmikosR committed
4849
4850
4851
4852
4853
/**
 * ------------------------------------------------------------------------
 * Class Definition
 * ------------------------------------------------------------------------
 */
XhmikosR's avatar
Dist.  
XhmikosR committed
4854

XhmikosR's avatar
XhmikosR committed
4855
var Toast = /*#__PURE__*/function () {
XhmikosR's avatar
XhmikosR committed
4856
  function Toast(element, config) {
XhmikosR's avatar
Dist.  
XhmikosR committed
4857
4858
4859
4860
4861
4862
4863
4864
4865
4866
    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
4867
  var _proto = Toast.prototype;
XhmikosR's avatar
Dist.  
XhmikosR committed
4868

XhmikosR's avatar
XhmikosR committed
4869
4870
4871
  // Public
  _proto.show = function show() {
    var _this = this;
XhmikosR's avatar
Dist.  
XhmikosR committed
4872

XhmikosR's avatar
XhmikosR committed
4873
    var showEvent = EventHandler.trigger(this._element, EVENT_SHOW$4);
Mark Otto's avatar
dist v5    
Mark Otto committed
4874
4875
4876
4877

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

    if (this._config.animation) {
XhmikosR's avatar
XhmikosR committed
4880
      this._element.classList.add(CLASS_NAME_FADE$4);
XhmikosR's avatar
Dist.  
XhmikosR committed
4881
4882
    }

XhmikosR's avatar
XhmikosR committed
4883
    var complete = function complete() {
XhmikosR's avatar
XhmikosR committed
4884
      _this._element.classList.remove(CLASS_NAME_SHOWING);
XhmikosR's avatar
Dist.  
XhmikosR committed
4885

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

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

XhmikosR's avatar
XhmikosR committed
4890
4891
4892
4893
      if (_this._config.autohide) {
        _this._timeout = setTimeout(function () {
          _this.hide();
        }, _this._config.delay);
XhmikosR's avatar
Dist.  
XhmikosR committed
4894
4895
4896
      }
    };

XhmikosR's avatar
XhmikosR committed
4897
    this._element.classList.remove(CLASS_NAME_HIDE);
XhmikosR's avatar
Dist.  
XhmikosR committed
4898

4899
4900
    reflow(this._element);

XhmikosR's avatar
XhmikosR committed
4901
    this._element.classList.add(CLASS_NAME_SHOWING);
XhmikosR's avatar
Dist.  
XhmikosR committed
4902
4903

    if (this._config.animation) {
XhmikosR's avatar
XhmikosR committed
4904
      var transitionDuration = getTransitionDurationFromElement(this._element);
XhmikosR's avatar
Dist.  
XhmikosR committed
4905
4906
4907
4908
4909
      EventHandler.one(this._element, TRANSITION_END, complete);
      emulateTransitionEnd(this._element, transitionDuration);
    } else {
      complete();
    }
XhmikosR's avatar
XhmikosR committed
4910
4911
4912
4913
  };

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

XhmikosR's avatar
XhmikosR committed
4915
    if (!this._element.classList.contains(CLASS_NAME_SHOW$6)) {
XhmikosR's avatar
Dist.  
XhmikosR committed
4916
4917
4918
      return;
    }

XhmikosR's avatar
XhmikosR committed
4919
    var hideEvent = EventHandler.trigger(this._element, EVENT_HIDE$4);
Mark Otto's avatar
dist v5    
Mark Otto committed
4920
4921
4922
4923

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

XhmikosR's avatar
XhmikosR committed
4925
    var complete = function complete() {
XhmikosR's avatar
XhmikosR committed
4926
      _this2._element.classList.add(CLASS_NAME_HIDE);
XhmikosR's avatar
XhmikosR committed
4927

XhmikosR's avatar
XhmikosR committed
4928
      EventHandler.trigger(_this2._element, EVENT_HIDDEN$4);
XhmikosR's avatar
XhmikosR committed
4929
4930
    };

XhmikosR's avatar
XhmikosR committed
4931
    this._element.classList.remove(CLASS_NAME_SHOW$6);
XhmikosR's avatar
XhmikosR committed
4932
4933
4934
4935
4936

    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
4937
    } else {
XhmikosR's avatar
XhmikosR committed
4938
      complete();
XhmikosR's avatar
Dist.  
XhmikosR committed
4939
    }
XhmikosR's avatar
XhmikosR committed
4940
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
4941

XhmikosR's avatar
XhmikosR committed
4942
  _proto.dispose = function dispose() {
XhmikosR's avatar
Dist.  
XhmikosR committed
4943
4944
4945
    clearTimeout(this._timeout);
    this._timeout = null;

XhmikosR's avatar
XhmikosR committed
4946
4947
    if (this._element.classList.contains(CLASS_NAME_SHOW$6)) {
      this._element.classList.remove(CLASS_NAME_SHOW$6);
XhmikosR's avatar
Dist.  
XhmikosR committed
4948
4949
    }

XhmikosR's avatar
XhmikosR committed
4950
    EventHandler.off(this._element, EVENT_CLICK_DISMISS$1);
XhmikosR's avatar
Dist.  
XhmikosR committed
4951
4952
4953
4954
    Data.removeData(this._element, DATA_KEY$a);
    this._element = null;
    this._config = null;
  } // Private
XhmikosR's avatar
XhmikosR committed
4955
  ;
XhmikosR's avatar
Dist.  
XhmikosR committed
4956

XhmikosR's avatar
XhmikosR committed
4957
  _proto._getConfig = function _getConfig(config) {
XhmikosR's avatar
XhmikosR committed
4958
    config = _objectSpread2(_objectSpread2(_objectSpread2({}, Default$7), Manipulator.getDataAttributes(this._element)), typeof config === 'object' && config ? config : {});
XhmikosR's avatar
Dist.  
XhmikosR committed
4959
4960
    typeCheckConfig(NAME$a, config, this.constructor.DefaultType);
    return config;
XhmikosR's avatar
XhmikosR committed
4961
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
4962

XhmikosR's avatar
XhmikosR committed
4963
4964
  _proto._setListeners = function _setListeners() {
    var _this3 = this;
XhmikosR's avatar
Dist.  
XhmikosR committed
4965

XhmikosR's avatar
XhmikosR committed
4966
    EventHandler.on(this._element, EVENT_CLICK_DISMISS$1, SELECTOR_DATA_DISMISS$1, function () {
XhmikosR's avatar
XhmikosR committed
4967
4968
      return _this3.hide();
    });
XhmikosR's avatar
Dist.  
XhmikosR committed
4969
  } // Static
XhmikosR's avatar
XhmikosR committed
4970
  ;
XhmikosR's avatar
Dist.  
XhmikosR committed
4971

XhmikosR's avatar
XhmikosR committed
4972
  Toast.jQueryInterface = function jQueryInterface(config) {
XhmikosR's avatar
Dist.  
XhmikosR committed
4973
    return this.each(function () {
XhmikosR's avatar
XhmikosR committed
4974
      var data = Data.getData(this, DATA_KEY$a);
XhmikosR's avatar
Dist.  
XhmikosR committed
4975

XhmikosR's avatar
XhmikosR committed
4976
      var _config = typeof config === 'object' && config;
XhmikosR's avatar
Dist.  
XhmikosR committed
4977
4978
4979
4980
4981
4982
4983

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

      if (typeof config === 'string') {
        if (typeof data[config] === 'undefined') {
XhmikosR's avatar
XhmikosR committed
4984
          throw new TypeError("No method named \"" + config + "\"");
XhmikosR's avatar
Dist.  
XhmikosR committed
4985
4986
4987
4988
4989
        }

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

XhmikosR's avatar
XhmikosR committed
4992
  Toast.getInstance = function getInstance(element) {
XhmikosR's avatar
Dist.  
XhmikosR committed
4993
    return Data.getData(element, DATA_KEY$a);
XhmikosR's avatar
XhmikosR committed
4994
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
4995

XhmikosR's avatar
XhmikosR committed
4996
4997
4998
4999
5000
5001
5002
5003
5004
5005
5006
5007
5008
5009
5010
5011
5012
5013
5014
  _createClass(Toast, null, [{
    key: "VERSION",
    get: function get() {
      return VERSION$a;
    }
  }, {
    key: "DefaultType",
    get: function get() {
      return DefaultType$7;
    }
  }, {
    key: "Default",
    get: function get() {
      return Default$7;
    }
  }]);

  return Toast;
}();
XhmikosR's avatar
XhmikosR committed
5015
5016

var $$b = getjQuery();
XhmikosR's avatar
Dist.  
XhmikosR committed
5017
5018
5019
5020
5021
5022
5023
/**
 * ------------------------------------------------------------------------
 * jQuery
 * ------------------------------------------------------------------------
 *  add .toast to jQuery only if jQuery is present
 */

5024
5025
/* istanbul ignore if */

XhmikosR's avatar
XhmikosR committed
5026
5027
5028
5029
if ($$b) {
  var JQUERY_NO_CONFLICT$a = $$b.fn[NAME$a];
  $$b.fn[NAME$a] = Toast.jQueryInterface;
  $$b.fn[NAME$a].Constructor = Toast;
XhmikosR's avatar
Dist.  
XhmikosR committed
5030

XhmikosR's avatar
XhmikosR committed
5031
5032
5033
  $$b.fn[NAME$a].noConflict = function () {
    $$b.fn[NAME$a] = JQUERY_NO_CONFLICT$a;
    return Toast.jQueryInterface;
XhmikosR's avatar
Dist.  
XhmikosR committed
5034
5035
5036
5037
5038
  };
}

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