bootstrap.js 110 KB
Newer Older
1
/*!
Mark Otto's avatar
Mark Otto committed
2
  * Bootstrap v4.0.0-beta.2 (https://getbootstrap.com)
Mark Otto's avatar
dist    
Mark Otto committed
3
4
5
6
7
  * Copyright 2011-2017 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
  */
var bootstrap = (function (exports,$,Popper) {
'use strict';
Mark Otto's avatar
grunt    
Mark Otto committed
8

Mark Otto's avatar
dist    
Mark Otto committed
9
10
$ = $ && $.hasOwnProperty('default') ? $['default'] : $;
Popper = Popper && Popper.hasOwnProperty('default') ? Popper['default'] : Popper;
Jacob Thornton's avatar
Jacob Thornton committed
11
12
13

/**
 * --------------------------------------------------------------------------
Mark Otto's avatar
Mark Otto committed
14
 * Bootstrap (v4.0.0-beta.2): util.js
Jacob Thornton's avatar
Jacob Thornton committed
15
16
17
18
 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
 * --------------------------------------------------------------------------
 */

Mark Otto's avatar
dist    
Mark Otto committed
19
var Util = function ($$$1) {
Jacob Thornton's avatar
Jacob Thornton committed
20
21
22
23
24
25
  /**
   * ------------------------------------------------------------------------
   * Private TransitionEnd Helpers
   * ------------------------------------------------------------------------
   */
  var transition = false;
Chris Rebert's avatar
grunt    
Chris Rebert committed
26
  var MAX_UID = 1000000;
Jacob Thornton's avatar
Jacob Thornton committed
27
28
  var TransitionEndEvent = {
    WebkitTransition: 'webkitTransitionEnd',
Mark Otto's avatar
dist    
Mark Otto committed
29
    transition: 'transitionend' // shoutout AngusCroll (https://goo.gl/pxwQGp)
Jacob Thornton's avatar
Jacob Thornton committed
30

Mark Otto's avatar
dist    
Mark Otto committed
31
  };
Jacob Thornton's avatar
Jacob Thornton committed
32

Mark Otto's avatar
dist    
Mark Otto committed
33
34
  function toType(obj) {
    return {}.toString.call(obj).match(/\s([a-zA-Z]+)/)[1].toLowerCase();
Jacob Thornton's avatar
Jacob Thornton committed
35
36
37
38
39
40
41
  }

  function getSpecialTransitionEndEvent() {
    return {
      bindType: transition.end,
      delegateType: transition.end,
      handle: function handle(event) {
Mark Otto's avatar
dist    
Mark Otto committed
42
        if ($$$1(event.target).is(this)) {
Mark Otto's avatar
Mark Otto committed
43
          return event.handleObj.handler.apply(this, arguments); // eslint-disable-line prefer-rest-params
Jacob Thornton's avatar
Jacob Thornton committed
44
        }
Mark Otto's avatar
dist    
Mark Otto committed
45

Mark Otto's avatar
dist    
Mark Otto committed
46
        return undefined; // eslint-disable-line no-undefined
Jacob Thornton's avatar
Jacob Thornton committed
47
48
49
50
51
52
53
54
55
56
57
      }
    };
  }

  function transitionEndTest() {
    if (window.QUnit) {
      return false;
    }

    var el = document.createElement('bootstrap');

Mark Otto's avatar
grunt    
Mark Otto committed
58
    for (var name in TransitionEndEvent) {
Mark Otto's avatar
dist    
Mark Otto committed
59
      if (typeof el.style[name] !== 'undefined') {
Mark Otto's avatar
grunt    
Mark Otto committed
60
61
62
        return {
          end: TransitionEndEvent[name]
        };
Jacob Thornton's avatar
Jacob Thornton committed
63
64
65
66
67
68
69
70
71
72
      }
    }

    return false;
  }

  function transitionEndEmulator(duration) {
    var _this = this;

    var called = false;
Mark Otto's avatar
dist    
Mark Otto committed
73
    $$$1(this).one(Util.TRANSITION_END, function () {
Jacob Thornton's avatar
Jacob Thornton committed
74
75
76
77
78
79
80
81
82
83
84
85
      called = true;
    });
    setTimeout(function () {
      if (!called) {
        Util.triggerTransitionEnd(_this);
      }
    }, duration);
    return this;
  }

  function setTransitionEndSupport() {
    transition = transitionEndTest();
Mark Otto's avatar
dist    
Mark Otto committed
86
    $$$1.fn.emulateTransitionEnd = transitionEndEmulator;
Jacob Thornton's avatar
Jacob Thornton committed
87
88

    if (Util.supportsTransitionEnd()) {
Mark Otto's avatar
dist    
Mark Otto committed
89
      $$$1.event.special[Util.TRANSITION_END] = getSpecialTransitionEndEvent();
Jacob Thornton's avatar
Jacob Thornton committed
90
91
92
93
94
95
96
97
98
    }
  }
  /**
   * --------------------------------------------------------------------------
   * Public Util Api
   * --------------------------------------------------------------------------
   */


Mark Otto's avatar
dist    
Mark Otto committed
99
  var Util = {
Jacob Thornton's avatar
Jacob Thornton committed
100
101
    TRANSITION_END: 'bsTransitionEnd',
    getUID: function getUID(prefix) {
Jacob Thornton's avatar
Jacob Thornton committed
102
      do {
Mark Otto's avatar
grunt    
Mark Otto committed
103
        // eslint-disable-next-line no-bitwise
Mark Otto's avatar
grunt    
Mark Otto committed
104
        prefix += ~~(Math.random() * MAX_UID); // "~~" acts like a faster Math.floor() here
Jacob Thornton's avatar
Jacob Thornton committed
105
      } while (document.getElementById(prefix));
Mark Otto's avatar
dist    
Mark Otto committed
106

Jacob Thornton's avatar
Jacob Thornton committed
107
108
109
110
      return prefix;
    },
    getSelectorFromElement: function getSelectorFromElement(element) {
      var selector = element.getAttribute('data-target');
Mark Otto's avatar
dist    
Mark Otto committed
111

Mark Otto's avatar
grunt    
Mark Otto committed
112
      if (!selector || selector === '#') {
Jacob Thornton's avatar
Jacob Thornton committed
113
114
115
        selector = element.getAttribute('href') || '';
      }

Mark Otto's avatar
grunt    
Mark Otto committed
116
      try {
Mark Otto's avatar
dist    
Mark Otto committed
117
        var $selector = $$$1(document).find(selector);
Mark Otto's avatar
grunt    
Mark Otto committed
118
119
120
121
        return $selector.length > 0 ? selector : null;
      } catch (error) {
        return null;
      }
Jacob Thornton's avatar
Jacob Thornton committed
122
123
    },
    reflow: function reflow(element) {
Mark Otto's avatar
grunt    
Mark Otto committed
124
      return element.offsetHeight;
Jacob Thornton's avatar
Jacob Thornton committed
125
126
    },
    triggerTransitionEnd: function triggerTransitionEnd(element) {
Mark Otto's avatar
dist    
Mark Otto committed
127
      $$$1(element).trigger(transition.end);
Jacob Thornton's avatar
Jacob Thornton committed
128
129
    },
    supportsTransitionEnd: function supportsTransitionEnd() {
Jacob Thornton's avatar
Jacob Thornton committed
130
      return Boolean(transition);
Jacob Thornton's avatar
Jacob Thornton committed
131
    },
Mark Otto's avatar
dist    
Mark Otto committed
132
133
134
    isElement: function isElement(obj) {
      return (obj[0] || obj).nodeType;
    },
Jacob Thornton's avatar
Jacob Thornton committed
135
136
    typeCheckConfig: function typeCheckConfig(componentName, config, configTypes) {
      for (var property in configTypes) {
Mark Otto's avatar
dist    
Mark Otto committed
137
        if (Object.prototype.hasOwnProperty.call(configTypes, property)) {
Jacob Thornton's avatar
Jacob Thornton committed
138
139
          var expectedTypes = configTypes[property];
          var value = config[property];
Mark Otto's avatar
dist    
Mark Otto committed
140
          var valueType = value && Util.isElement(value) ? 'element' : toType(value);
Jacob Thornton's avatar
Jacob Thornton committed
141

Jacob Thornton's avatar
Jacob Thornton committed
142
          if (!new RegExp(expectedTypes).test(valueType)) {
Mark Otto's avatar
dist    
Mark Otto committed
143
            throw new Error(componentName.toUpperCase() + ": " + ("Option \"" + property + "\" provided type \"" + valueType + "\" ") + ("but expected type \"" + expectedTypes + "\"."));
Jacob Thornton's avatar
Jacob Thornton committed
144
          }
Jacob Thornton's avatar
Jacob Thornton committed
145
146
147
148
149
150
        }
      }
    }
  };
  setTransitionEndSupport();
  return Util;
Mark Otto's avatar
dist    
Mark Otto committed
151
}($);
Jacob Thornton's avatar
Jacob Thornton committed
152

Mark Otto's avatar
dist    
Mark Otto committed
153
154
155
156
157
158
159
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);
Mark Otto's avatar
dist    
Mark Otto committed
160
  }
Mark Otto's avatar
dist    
Mark Otto committed
161
}
Mark Otto's avatar
dist    
Mark Otto committed
162

Mark Otto's avatar
dist    
Mark Otto committed
163
164
165
166
167
function _createClass(Constructor, protoProps, staticProps) {
  if (protoProps) _defineProperties(Constructor.prototype, protoProps);
  if (staticProps) _defineProperties(Constructor, staticProps);
  return Constructor;
}
Mark Otto's avatar
dist    
Mark Otto committed
168

Mark Otto's avatar
dist    
Mark Otto committed
169
var createClass = _createClass;
Mark Otto's avatar
dist    
Mark Otto committed
170

Mark Otto's avatar
dist    
Mark Otto committed
171
172
173
174
175
function _inheritsLoose(subClass, superClass) {
  subClass.prototype = Object.create(superClass.prototype);
  subClass.prototype.constructor = subClass;
  subClass.__proto__ = superClass;
}
Mark Otto's avatar
dist    
Mark Otto committed
176

Mark Otto's avatar
dist    
Mark Otto committed
177
var inheritsLoose = _inheritsLoose;
Mark Otto's avatar
dist    
Mark Otto committed
178

Jacob Thornton's avatar
Jacob Thornton committed
179
180
/**
 * --------------------------------------------------------------------------
Mark Otto's avatar
Mark Otto committed
181
 * Bootstrap (v4.0.0-beta.2): alert.js
Jacob Thornton's avatar
Jacob Thornton committed
182
183
184
185
 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
 * --------------------------------------------------------------------------
 */

Mark Otto's avatar
dist    
Mark Otto committed
186
var Alert = function ($$$1) {
Jacob Thornton's avatar
Jacob Thornton committed
187
188
189
190
191
192
  /**
   * ------------------------------------------------------------------------
   * Constants
   * ------------------------------------------------------------------------
   */
  var NAME = 'alert';
Mark Otto's avatar
Mark Otto committed
193
  var VERSION = '4.0.0-beta.2';
Jacob Thornton's avatar
Jacob Thornton committed
194
  var DATA_KEY = 'bs.alert';
Mark Otto's avatar
dist    
Mark Otto committed
195
  var EVENT_KEY = "." + DATA_KEY;
Jacob Thornton's avatar
Jacob Thornton committed
196
  var DATA_API_KEY = '.data-api';
Mark Otto's avatar
dist    
Mark Otto committed
197
  var JQUERY_NO_CONFLICT = $$$1.fn[NAME];
Jacob Thornton's avatar
Jacob Thornton committed
198
199
200
201
202
  var TRANSITION_DURATION = 150;
  var Selector = {
    DISMISS: '[data-dismiss="alert"]'
  };
  var Event = {
Mark Otto's avatar
dist    
Mark Otto committed
203
204
205
    CLOSE: "close" + EVENT_KEY,
    CLOSED: "closed" + EVENT_KEY,
    CLICK_DATA_API: "click" + EVENT_KEY + DATA_API_KEY
Jacob Thornton's avatar
Jacob Thornton committed
206
207
208
209
  };
  var ClassName = {
    ALERT: 'alert',
    FADE: 'fade',
Mark Otto's avatar
grunt    
Mark Otto committed
210
    SHOW: 'show'
Mark Otto's avatar
dist    
Mark Otto committed
211
212
213
214
215
    /**
     * ------------------------------------------------------------------------
     * Class Definition
     * ------------------------------------------------------------------------
     */
Jacob Thornton's avatar
Jacob Thornton committed
216

Mark Otto's avatar
dist    
Mark Otto committed
217
  };
Jacob Thornton's avatar
Jacob Thornton committed
218

Mark Otto's avatar
dist    
Mark Otto committed
219
220
221
222
  var Alert =
  /*#__PURE__*/
  function () {
    function Alert(element) {
Jacob Thornton's avatar
Jacob Thornton committed
223
      this._element = element;
Mark Otto's avatar
dist    
Mark Otto committed
224
    } // getters
Jacob Thornton's avatar
Jacob Thornton committed
225
226


Mark Otto's avatar
dist    
Mark Otto committed
227
    var _proto = Alert.prototype;
Jacob Thornton's avatar
Jacob Thornton committed
228

Mark Otto's avatar
dist    
Mark Otto committed
229
230
    // public
    _proto.close = function close(element) {
Mark Otto's avatar
grunt    
Mark Otto committed
231
      element = element || this._element;
Jacob Thornton's avatar
Jacob Thornton committed
232

Mark Otto's avatar
grunt    
Mark Otto committed
233
      var rootElement = this._getRootElement(element);
Mark Otto's avatar
dist    
Mark Otto committed
234

Mark Otto's avatar
grunt    
Mark Otto committed
235
236
237
238
239
      var customEvent = this._triggerCloseEvent(rootElement);

      if (customEvent.isDefaultPrevented()) {
        return;
      }
Jacob Thornton's avatar
Jacob Thornton committed
240

Mark Otto's avatar
grunt    
Mark Otto committed
241
242
      this._removeElement(rootElement);
    };
Jacob Thornton's avatar
Jacob Thornton committed
243

Mark Otto's avatar
dist    
Mark Otto committed
244
    _proto.dispose = function dispose() {
Mark Otto's avatar
dist    
Mark Otto committed
245
      $$$1.removeData(this._element, DATA_KEY);
Mark Otto's avatar
grunt    
Mark Otto committed
246
      this._element = null;
Mark Otto's avatar
dist    
Mark Otto committed
247
    }; // private
Mark Otto's avatar
grunt    
Mark Otto committed
248

Jacob Thornton's avatar
Jacob Thornton committed
249

Mark Otto's avatar
dist    
Mark Otto committed
250
    _proto._getRootElement = function _getRootElement(element) {
Mark Otto's avatar
grunt    
Mark Otto committed
251
252
253
254
      var selector = Util.getSelectorFromElement(element);
      var parent = false;

      if (selector) {
Mark Otto's avatar
dist    
Mark Otto committed
255
        parent = $$$1(selector)[0];
Jacob Thornton's avatar
Jacob Thornton committed
256
      }
Mark Otto's avatar
grunt    
Mark Otto committed
257
258

      if (!parent) {
Mark Otto's avatar
dist    
Mark Otto committed
259
        parent = $$$1(element).closest("." + ClassName.ALERT)[0];
Jacob Thornton's avatar
Jacob Thornton committed
260
261
      }

Mark Otto's avatar
grunt    
Mark Otto committed
262
263
      return parent;
    };
Jacob Thornton's avatar
Jacob Thornton committed
264

Mark Otto's avatar
dist    
Mark Otto committed
265
    _proto._triggerCloseEvent = function _triggerCloseEvent(element) {
Mark Otto's avatar
dist    
Mark Otto committed
266
267
      var closeEvent = $$$1.Event(Event.CLOSE);
      $$$1(element).trigger(closeEvent);
Mark Otto's avatar
grunt    
Mark Otto committed
268
269
      return closeEvent;
    };
Jacob Thornton's avatar
Jacob Thornton committed
270

Mark Otto's avatar
dist    
Mark Otto committed
271
    _proto._removeElement = function _removeElement(element) {
Mark Otto's avatar
dist    
Mark Otto committed
272
      var _this = this;
Mark Otto's avatar
grunt    
Mark Otto committed
273

Mark Otto's avatar
dist    
Mark Otto committed
274
      $$$1(element).removeClass(ClassName.SHOW);
Jacob Thornton's avatar
Jacob Thornton committed
275

Mark Otto's avatar
dist    
Mark Otto committed
276
      if (!Util.supportsTransitionEnd() || !$$$1(element).hasClass(ClassName.FADE)) {
Mark Otto's avatar
grunt    
Mark Otto committed
277
        this._destroyElement(element);
Mark Otto's avatar
dist    
Mark Otto committed
278

Mark Otto's avatar
grunt    
Mark Otto committed
279
        return;
Jacob Thornton's avatar
Jacob Thornton committed
280
      }
Jacob Thornton's avatar
Jacob Thornton committed
281

Mark Otto's avatar
dist    
Mark Otto committed
282
      $$$1(element).one(Util.TRANSITION_END, function (event) {
Mark Otto's avatar
dist    
Mark Otto committed
283
        return _this._destroyElement(element, event);
Mark Otto's avatar
grunt    
Mark Otto committed
284
      }).emulateTransitionEnd(TRANSITION_DURATION);
Mark Otto's avatar
grunt    
Mark Otto committed
285
    };
Jacob Thornton's avatar
Jacob Thornton committed
286

Mark Otto's avatar
dist    
Mark Otto committed
287
    _proto._destroyElement = function _destroyElement(element) {
Mark Otto's avatar
dist    
Mark Otto committed
288
      $$$1(element).detach().trigger(Event.CLOSED).remove();
Mark Otto's avatar
dist    
Mark Otto committed
289
    }; // static
Jacob Thornton's avatar
Jacob Thornton committed
290
291


Mark Otto's avatar
grunt    
Mark Otto committed
292
293
    Alert._jQueryInterface = function _jQueryInterface(config) {
      return this.each(function () {
Mark Otto's avatar
dist    
Mark Otto committed
294
        var $element = $$$1(this);
Mark Otto's avatar
grunt    
Mark Otto committed
295
        var data = $element.data(DATA_KEY);
Jacob Thornton's avatar
Jacob Thornton committed
296

Mark Otto's avatar
grunt    
Mark Otto committed
297
298
299
300
        if (!data) {
          data = new Alert(this);
          $element.data(DATA_KEY, data);
        }
Jacob Thornton's avatar
Jacob Thornton committed
301

Mark Otto's avatar
grunt    
Mark Otto committed
302
303
304
305
306
        if (config === 'close') {
          data[config](this);
        }
      });
    };
Jacob Thornton's avatar
Jacob Thornton committed
307

Mark Otto's avatar
grunt    
Mark Otto committed
308
309
310
311
312
    Alert._handleDismiss = function _handleDismiss(alertInstance) {
      return function (event) {
        if (event) {
          event.preventDefault();
        }
Jacob Thornton's avatar
Jacob Thornton committed
313

Mark Otto's avatar
grunt    
Mark Otto committed
314
315
316
317
        alertInstance.close(this);
      };
    };

Mark Otto's avatar
dist    
Mark Otto committed
318
    createClass(Alert, null, [{
Mark Otto's avatar
dist    
Mark Otto committed
319
      key: "VERSION",
Jacob Thornton's avatar
Jacob Thornton committed
320
321
322
323
324
      get: function get() {
        return VERSION;
      }
    }]);
    return Alert;
Mark Otto's avatar
grunt    
Mark Otto committed
325
326
327
328
329
330
  }();
  /**
   * ------------------------------------------------------------------------
   * Data Api implementation
   * ------------------------------------------------------------------------
   */
Jacob Thornton's avatar
Jacob Thornton committed
331
332


Mark Otto's avatar
dist    
Mark Otto committed
333
  $$$1(document).on(Event.CLICK_DATA_API, Selector.DISMISS, Alert._handleDismiss(new Alert()));
Jacob Thornton's avatar
Jacob Thornton committed
334
335
336
337
338
339
  /**
   * ------------------------------------------------------------------------
   * jQuery
   * ------------------------------------------------------------------------
   */

Mark Otto's avatar
dist    
Mark Otto committed
340
341
  $$$1.fn[NAME] = Alert._jQueryInterface;
  $$$1.fn[NAME].Constructor = Alert;
Mark Otto's avatar
dist    
Mark Otto committed
342

Mark Otto's avatar
dist    
Mark Otto committed
343
344
  $$$1.fn[NAME].noConflict = function () {
    $$$1.fn[NAME] = JQUERY_NO_CONFLICT;
Jacob Thornton's avatar
Jacob Thornton committed
345
346
347
348
    return Alert._jQueryInterface;
  };

  return Alert;
Mark Otto's avatar
dist    
Mark Otto committed
349
}($);
Jacob Thornton's avatar
Jacob Thornton committed
350
351
352

/**
 * --------------------------------------------------------------------------
Mark Otto's avatar
Mark Otto committed
353
 * Bootstrap (v4.0.0-beta.2): button.js
Jacob Thornton's avatar
Jacob Thornton committed
354
355
356
357
 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
 * --------------------------------------------------------------------------
 */

Mark Otto's avatar
dist    
Mark Otto committed
358
var Button = function ($$$1) {
Jacob Thornton's avatar
Jacob Thornton committed
359
360
361
362
363
364
  /**
   * ------------------------------------------------------------------------
   * Constants
   * ------------------------------------------------------------------------
   */
  var NAME = 'button';
Mark Otto's avatar
Mark Otto committed
365
  var VERSION = '4.0.0-beta.2';
Jacob Thornton's avatar
Jacob Thornton committed
366
  var DATA_KEY = 'bs.button';
Mark Otto's avatar
dist    
Mark Otto committed
367
  var EVENT_KEY = "." + DATA_KEY;
Jacob Thornton's avatar
Jacob Thornton committed
368
  var DATA_API_KEY = '.data-api';
Mark Otto's avatar
dist    
Mark Otto committed
369
  var JQUERY_NO_CONFLICT = $$$1.fn[NAME];
Jacob Thornton's avatar
Jacob Thornton committed
370
371
372
373
374
375
376
377
378
379
380
381
382
  var ClassName = {
    ACTIVE: 'active',
    BUTTON: 'btn',
    FOCUS: 'focus'
  };
  var Selector = {
    DATA_TOGGLE_CARROT: '[data-toggle^="button"]',
    DATA_TOGGLE: '[data-toggle="buttons"]',
    INPUT: 'input',
    ACTIVE: '.active',
    BUTTON: '.btn'
  };
  var Event = {
Mark Otto's avatar
dist    
Mark Otto committed
383
384
    CLICK_DATA_API: "click" + EVENT_KEY + DATA_API_KEY,
    FOCUS_BLUR_DATA_API: "focus" + EVENT_KEY + DATA_API_KEY + " " + ("blur" + EVENT_KEY + DATA_API_KEY)
Mark Otto's avatar
dist    
Mark Otto committed
385
386
387
388
389
    /**
     * ------------------------------------------------------------------------
     * Class Definition
     * ------------------------------------------------------------------------
     */
Jacob Thornton's avatar
Jacob Thornton committed
390

Mark Otto's avatar
dist    
Mark Otto committed
391
  };
Jacob Thornton's avatar
Jacob Thornton committed
392

Mark Otto's avatar
dist    
Mark Otto committed
393
394
395
396
  var Button =
  /*#__PURE__*/
  function () {
    function Button(element) {
Jacob Thornton's avatar
Jacob Thornton committed
397
      this._element = element;
Mark Otto's avatar
dist    
Mark Otto committed
398
    } // getters
Jacob Thornton's avatar
Jacob Thornton committed
399
400


Mark Otto's avatar
dist    
Mark Otto committed
401
    var _proto = Button.prototype;
Jacob Thornton's avatar
Jacob Thornton committed
402

Mark Otto's avatar
dist    
Mark Otto committed
403
404
    // public
    _proto.toggle = function toggle() {
Mark Otto's avatar
grunt    
Mark Otto committed
405
      var triggerChangeEvent = true;
Mark Otto's avatar
grunt    
Mark Otto committed
406
      var addAriaPressed = true;
Mark Otto's avatar
dist    
Mark Otto committed
407
      var rootElement = $$$1(this._element).closest(Selector.DATA_TOGGLE)[0];
Jacob Thornton's avatar
Jacob Thornton committed
408

Mark Otto's avatar
grunt    
Mark Otto committed
409
      if (rootElement) {
Mark Otto's avatar
dist    
Mark Otto committed
410
        var input = $$$1(this._element).find(Selector.INPUT)[0];
Jacob Thornton's avatar
Jacob Thornton committed
411

Mark Otto's avatar
grunt    
Mark Otto committed
412
413
        if (input) {
          if (input.type === 'radio') {
Mark Otto's avatar
dist    
Mark Otto committed
414
            if (input.checked && $$$1(this._element).hasClass(ClassName.ACTIVE)) {
Mark Otto's avatar
grunt    
Mark Otto committed
415
416
              triggerChangeEvent = false;
            } else {
Mark Otto's avatar
dist    
Mark Otto committed
417
              var activeElement = $$$1(rootElement).find(Selector.ACTIVE)[0];
Jacob Thornton's avatar
Jacob Thornton committed
418

Mark Otto's avatar
grunt    
Mark Otto committed
419
              if (activeElement) {
Mark Otto's avatar
dist    
Mark Otto committed
420
                $$$1(activeElement).removeClass(ClassName.ACTIVE);
Jacob Thornton's avatar
Jacob Thornton committed
421
422
              }
            }
Mark Otto's avatar
grunt    
Mark Otto committed
423
          }
Jacob Thornton's avatar
Jacob Thornton committed
424

Mark Otto's avatar
grunt    
Mark Otto committed
425
          if (triggerChangeEvent) {
Johann-S's avatar
build    
Johann-S committed
426
427
428
            if (input.hasAttribute('disabled') || rootElement.hasAttribute('disabled') || input.classList.contains('disabled') || rootElement.classList.contains('disabled')) {
              return;
            }
Mark Otto's avatar
dist    
Mark Otto committed
429

Mark Otto's avatar
dist    
Mark Otto committed
430
431
            input.checked = !$$$1(this._element).hasClass(ClassName.ACTIVE);
            $$$1(input).trigger('change');
Jacob Thornton's avatar
Jacob Thornton committed
432
433
          }

Mark Otto's avatar
grunt    
Mark Otto committed
434
          input.focus();
Mark Otto's avatar
grunt    
Mark Otto committed
435
          addAriaPressed = false;
Jacob Thornton's avatar
Jacob Thornton committed
436
437
        }
      }
Mark Otto's avatar
grunt    
Mark Otto committed
438

Mark Otto's avatar
grunt    
Mark Otto committed
439
      if (addAriaPressed) {
Mark Otto's avatar
dist    
Mark Otto committed
440
        this._element.setAttribute('aria-pressed', !$$$1(this._element).hasClass(ClassName.ACTIVE));
Mark Otto's avatar
grunt    
Mark Otto committed
441
      }
Mark Otto's avatar
grunt    
Mark Otto committed
442

Mark Otto's avatar
grunt    
Mark Otto committed
443
      if (triggerChangeEvent) {
Mark Otto's avatar
dist    
Mark Otto committed
444
        $$$1(this._element).toggleClass(ClassName.ACTIVE);
Jacob Thornton's avatar
Jacob Thornton committed
445
      }
Mark Otto's avatar
grunt    
Mark Otto committed
446
    };
Jacob Thornton's avatar
Jacob Thornton committed
447

Mark Otto's avatar
dist    
Mark Otto committed
448
    _proto.dispose = function dispose() {
Mark Otto's avatar
dist    
Mark Otto committed
449
      $$$1.removeData(this._element, DATA_KEY);
Mark Otto's avatar
grunt    
Mark Otto committed
450
      this._element = null;
Mark Otto's avatar
dist    
Mark Otto committed
451
    }; // static
Jacob Thornton's avatar
Jacob Thornton committed
452
453


Mark Otto's avatar
grunt    
Mark Otto committed
454
455
    Button._jQueryInterface = function _jQueryInterface(config) {
      return this.each(function () {
Mark Otto's avatar
dist    
Mark Otto committed
456
        var data = $$$1(this).data(DATA_KEY);
Jacob Thornton's avatar
Jacob Thornton committed
457

Mark Otto's avatar
grunt    
Mark Otto committed
458
459
        if (!data) {
          data = new Button(this);
Mark Otto's avatar
dist    
Mark Otto committed
460
          $$$1(this).data(DATA_KEY, data);
Mark Otto's avatar
grunt    
Mark Otto committed
461
462
463
464
465
466
467
468
        }

        if (config === 'toggle') {
          data[config]();
        }
      });
    };

Mark Otto's avatar
dist    
Mark Otto committed
469
    createClass(Button, null, [{
Mark Otto's avatar
dist    
Mark Otto committed
470
      key: "VERSION",
Jacob Thornton's avatar
Jacob Thornton committed
471
472
473
474
475
      get: function get() {
        return VERSION;
      }
    }]);
    return Button;
Mark Otto's avatar
grunt    
Mark Otto committed
476
477
478
479
480
481
  }();
  /**
   * ------------------------------------------------------------------------
   * Data Api implementation
   * ------------------------------------------------------------------------
   */
Jacob Thornton's avatar
Jacob Thornton committed
482

Mark Otto's avatar
dist    
Mark Otto committed
483

Mark Otto's avatar
dist    
Mark Otto committed
484
  $$$1(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE_CARROT, function (event) {
Jacob Thornton's avatar
Jacob Thornton committed
485
486
487
    event.preventDefault();
    var button = event.target;

Mark Otto's avatar
dist    
Mark Otto committed
488
489
    if (!$$$1(button).hasClass(ClassName.BUTTON)) {
      button = $$$1(button).closest(Selector.BUTTON);
Jacob Thornton's avatar
Jacob Thornton committed
490
491
    }

Mark Otto's avatar
dist    
Mark Otto committed
492
    Button._jQueryInterface.call($$$1(button), 'toggle');
Jacob Thornton's avatar
Jacob Thornton committed
493
  }).on(Event.FOCUS_BLUR_DATA_API, Selector.DATA_TOGGLE_CARROT, function (event) {
Mark Otto's avatar
dist    
Mark Otto committed
494
495
    var button = $$$1(event.target).closest(Selector.BUTTON)[0];
    $$$1(button).toggleClass(ClassName.FOCUS, /^focus(in)?$/.test(event.type));
Mark Otto's avatar
Mark Otto committed
496
  });
Jacob Thornton's avatar
Jacob Thornton committed
497
498
499
500
501
502
  /**
   * ------------------------------------------------------------------------
   * jQuery
   * ------------------------------------------------------------------------
   */

Mark Otto's avatar
dist    
Mark Otto committed
503
504
  $$$1.fn[NAME] = Button._jQueryInterface;
  $$$1.fn[NAME].Constructor = Button;
Mark Otto's avatar
dist    
Mark Otto committed
505

Mark Otto's avatar
dist    
Mark Otto committed
506
507
  $$$1.fn[NAME].noConflict = function () {
    $$$1.fn[NAME] = JQUERY_NO_CONFLICT;
Jacob Thornton's avatar
Jacob Thornton committed
508
509
510
511
    return Button._jQueryInterface;
  };

  return Button;
Mark Otto's avatar
dist    
Mark Otto committed
512
}($);
Jacob Thornton's avatar
Jacob Thornton committed
513
514
515

/**
 * --------------------------------------------------------------------------
Mark Otto's avatar
Mark Otto committed
516
 * Bootstrap (v4.0.0-beta.2): carousel.js
Jacob Thornton's avatar
Jacob Thornton committed
517
518
519
520
 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
 * --------------------------------------------------------------------------
 */

Mark Otto's avatar
dist    
Mark Otto committed
521
var Carousel = function ($$$1) {
Jacob Thornton's avatar
Jacob Thornton committed
522
523
524
525
526
527
  /**
   * ------------------------------------------------------------------------
   * Constants
   * ------------------------------------------------------------------------
   */
  var NAME = 'carousel';
Mark Otto's avatar
Mark Otto committed
528
  var VERSION = '4.0.0-beta.2';
Jacob Thornton's avatar
Jacob Thornton committed
529
  var DATA_KEY = 'bs.carousel';
Mark Otto's avatar
dist    
Mark Otto committed
530
  var EVENT_KEY = "." + DATA_KEY;
Jacob Thornton's avatar
Jacob Thornton committed
531
  var DATA_API_KEY = '.data-api';
Mark Otto's avatar
dist    
Mark Otto committed
532
  var JQUERY_NO_CONFLICT = $$$1.fn[NAME];
Jacob Thornton's avatar
Jacob Thornton committed
533
  var TRANSITION_DURATION = 600;
Chris Rebert's avatar
grunt    
Chris Rebert committed
534
  var ARROW_LEFT_KEYCODE = 37; // KeyboardEvent.which value for left arrow key
Mark Otto's avatar
dist    
Mark Otto committed
535

Chris Rebert's avatar
grunt    
Chris Rebert committed
536
  var ARROW_RIGHT_KEYCODE = 39; // KeyboardEvent.which value for right arrow key
Mark Otto's avatar
dist    
Mark Otto committed
537

Mark Otto's avatar
build    
Mark Otto committed
538
  var TOUCHEVENT_COMPAT_WAIT = 500; // Time for mouse compat events to fire after touch
Jacob Thornton's avatar
Jacob Thornton committed
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555

  var Default = {
    interval: 5000,
    keyboard: true,
    slide: false,
    pause: 'hover',
    wrap: true
  };
  var DefaultType = {
    interval: '(number|boolean)',
    keyboard: 'boolean',
    slide: '(boolean|string)',
    pause: '(string|boolean)',
    wrap: 'boolean'
  };
  var Direction = {
    NEXT: 'next',
Mark Otto's avatar
grunt    
Mark Otto committed
556
557
558
    PREV: 'prev',
    LEFT: 'left',
    RIGHT: 'right'
Jacob Thornton's avatar
Jacob Thornton committed
559
560
  };
  var Event = {
Mark Otto's avatar
dist    
Mark Otto committed
561
562
563
564
565
566
567
568
    SLIDE: "slide" + EVENT_KEY,
    SLID: "slid" + EVENT_KEY,
    KEYDOWN: "keydown" + EVENT_KEY,
    MOUSEENTER: "mouseenter" + EVENT_KEY,
    MOUSELEAVE: "mouseleave" + EVENT_KEY,
    TOUCHEND: "touchend" + EVENT_KEY,
    LOAD_DATA_API: "load" + EVENT_KEY + DATA_API_KEY,
    CLICK_DATA_API: "click" + EVENT_KEY + DATA_API_KEY
Jacob Thornton's avatar
Jacob Thornton committed
569
570
571
572
573
  };
  var ClassName = {
    CAROUSEL: 'carousel',
    ACTIVE: 'active',
    SLIDE: 'slide',
Mark Otto's avatar
grunt    
Mark Otto committed
574
575
576
577
    RIGHT: 'carousel-item-right',
    LEFT: 'carousel-item-left',
    NEXT: 'carousel-item-next',
    PREV: 'carousel-item-prev',
Jacob Thornton's avatar
Jacob Thornton committed
578
579
580
581
582
583
    ITEM: 'carousel-item'
  };
  var Selector = {
    ACTIVE: '.active',
    ACTIVE_ITEM: '.active.carousel-item',
    ITEM: '.carousel-item',
Mark Otto's avatar
grunt    
Mark Otto committed
584
    NEXT_PREV: '.carousel-item-next, .carousel-item-prev',
Jacob Thornton's avatar
Jacob Thornton committed
585
586
587
    INDICATORS: '.carousel-indicators',
    DATA_SLIDE: '[data-slide], [data-slide-to]',
    DATA_RIDE: '[data-ride="carousel"]'
Mark Otto's avatar
dist    
Mark Otto committed
588
589
590
591
592
    /**
     * ------------------------------------------------------------------------
     * Class Definition
     * ------------------------------------------------------------------------
     */
Jacob Thornton's avatar
Jacob Thornton committed
593

Mark Otto's avatar
dist    
Mark Otto committed
594
  };
Jacob Thornton's avatar
Jacob Thornton committed
595

Mark Otto's avatar
dist    
Mark Otto committed
596
597
598
599
  var Carousel =
  /*#__PURE__*/
  function () {
    function Carousel(element, config) {
Jacob Thornton's avatar
Jacob Thornton committed
600
601
602
603
604
      this._items = null;
      this._interval = null;
      this._activeElement = null;
      this._isPaused = false;
      this._isSliding = false;
Mark Otto's avatar
build    
Mark Otto committed
605
      this.touchTimeout = null;
Jacob Thornton's avatar
Jacob Thornton committed
606
      this._config = this._getConfig(config);
Mark Otto's avatar
dist    
Mark Otto committed
607
608
      this._element = $$$1(element)[0];
      this._indicatorsElement = $$$1(this._element).find(Selector.INDICATORS)[0];
Jacob Thornton's avatar
Jacob Thornton committed
609
610

      this._addEventListeners();
Mark Otto's avatar
dist    
Mark Otto committed
611
    } // getters
Jacob Thornton's avatar
Jacob Thornton committed
612
613


Mark Otto's avatar
dist    
Mark Otto committed
614
    var _proto = Carousel.prototype;
Jacob Thornton's avatar
Jacob Thornton committed
615

Mark Otto's avatar
dist    
Mark Otto committed
616
617
    // public
    _proto.next = function next() {
Mark Otto's avatar
grunt    
Mark Otto committed
618
619
      if (!this._isSliding) {
        this._slide(Direction.NEXT);
Mark Otto's avatar
grunt    
Mark Otto committed
620
621
      }
    };
Jacob Thornton's avatar
Jacob Thornton committed
622

Mark Otto's avatar
dist    
Mark Otto committed
623
    _proto.nextWhenVisible = function nextWhenVisible() {
Mark Otto's avatar
grunt    
Mark Otto committed
624
      // Don't call next when the page isn't visible
Mark Otto's avatar
dist    
Mark Otto committed
625
      // or the carousel or its parent isn't visible
Mark Otto's avatar
dist    
Mark Otto committed
626
      if (!document.hidden && $$$1(this._element).is(':visible') && $$$1(this._element).css('visibility') !== 'hidden') {
Mark Otto's avatar
grunt    
Mark Otto committed
627
        this.next();
Jacob Thornton's avatar
Jacob Thornton committed
628
      }
Mark Otto's avatar
grunt    
Mark Otto committed
629
630
    };

Mark Otto's avatar
dist    
Mark Otto committed
631
    _proto.prev = function prev() {
Mark Otto's avatar
grunt    
Mark Otto committed
632
633
      if (!this._isSliding) {
        this._slide(Direction.PREV);
XhmikosR's avatar
XhmikosR committed
634
      }
Mark Otto's avatar
grunt    
Mark Otto committed
635
636
    };

Mark Otto's avatar
dist    
Mark Otto committed
637
    _proto.pause = function pause(event) {
Mark Otto's avatar
grunt    
Mark Otto committed
638
639
      if (!event) {
        this._isPaused = true;
Jacob Thornton's avatar
Jacob Thornton committed
640
641
      }

Mark Otto's avatar
dist    
Mark Otto committed
642
      if ($$$1(this._element).find(Selector.NEXT_PREV)[0] && Util.supportsTransitionEnd()) {
Mark Otto's avatar
grunt    
Mark Otto committed
643
644
645
646
647
648
649
650
        Util.triggerTransitionEnd(this._element);
        this.cycle(true);
      }

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

Mark Otto's avatar
dist    
Mark Otto committed
651
    _proto.cycle = function cycle(event) {
Mark Otto's avatar
grunt    
Mark Otto committed
652
653
654
      if (!event) {
        this._isPaused = false;
      }
Jacob Thornton's avatar
Jacob Thornton committed
655

Mark Otto's avatar
grunt    
Mark Otto committed
656
      if (this._interval) {
Jacob Thornton's avatar
Jacob Thornton committed
657
658
659
660
        clearInterval(this._interval);
        this._interval = null;
      }

Mark Otto's avatar
grunt    
Mark Otto committed
661
      if (this._config.interval && !this._isPaused) {
Mark Otto's avatar
grunt    
Mark Otto committed
662
        this._interval = setInterval((document.visibilityState ? this.nextWhenVisible : this.next).bind(this), this._config.interval);
Mark Otto's avatar
grunt    
Mark Otto committed
663
664
      }
    };
Jacob Thornton's avatar
Jacob Thornton committed
665

Mark Otto's avatar
dist    
Mark Otto committed
666
    _proto.to = function to(index) {
Mark Otto's avatar
dist    
Mark Otto committed
667
      var _this = this;
Mark Otto's avatar
grunt    
Mark Otto committed
668

Mark Otto's avatar
dist    
Mark Otto committed
669
      this._activeElement = $$$1(this._element).find(Selector.ACTIVE_ITEM)[0];
Mark Otto's avatar
grunt    
Mark Otto committed
670
671
672
673
674

      var activeIndex = this._getItemIndex(this._activeElement);

      if (index > this._items.length - 1 || index < 0) {
        return;
Jacob Thornton's avatar
Jacob Thornton committed
675
676
      }

Mark Otto's avatar
grunt    
Mark Otto committed
677
      if (this._isSliding) {
Mark Otto's avatar
dist    
Mark Otto committed
678
        $$$1(this._element).one(Event.SLID, function () {
Mark Otto's avatar
dist    
Mark Otto committed
679
          return _this.to(index);
Mark Otto's avatar
grunt    
Mark Otto committed
680
681
682
        });
        return;
      }
Jacob Thornton's avatar
Jacob Thornton committed
683

Mark Otto's avatar
grunt    
Mark Otto committed
684
685
686
687
688
      if (activeIndex === index) {
        this.pause();
        this.cycle();
        return;
      }
Jacob Thornton's avatar
Jacob Thornton committed
689

Mark Otto's avatar
grunt    
Mark Otto committed
690
      var direction = index > activeIndex ? Direction.NEXT : Direction.PREV;
Jacob Thornton's avatar
Jacob Thornton committed
691

Mark Otto's avatar
grunt    
Mark Otto committed
692
693
      this._slide(direction, this._items[index]);
    };
Jacob Thornton's avatar
Jacob Thornton committed
694

Mark Otto's avatar
dist    
Mark Otto committed
695
    _proto.dispose = function dispose() {
Mark Otto's avatar
dist    
Mark Otto committed
696
697
      $$$1(this._element).off(EVENT_KEY);
      $$$1.removeData(this._element, DATA_KEY);
Mark Otto's avatar
grunt    
Mark Otto committed
698
699
700
701
702
703
704
705
      this._items = null;
      this._config = null;
      this._element = null;
      this._interval = null;
      this._isPaused = null;
      this._isSliding = null;
      this._activeElement = null;
      this._indicatorsElement = null;
Mark Otto's avatar
dist    
Mark Otto committed
706
    }; // private
Jacob Thornton's avatar
Jacob Thornton committed
707
708


Mark Otto's avatar
dist    
Mark Otto committed
709
    _proto._getConfig = function _getConfig(config) {
Mark Otto's avatar
dist    
Mark Otto committed
710
      config = $$$1.extend({}, Default, config);
Mark Otto's avatar
grunt    
Mark Otto committed
711
712
713
      Util.typeCheckConfig(NAME, config, DefaultType);
      return config;
    };
Jacob Thornton's avatar
Jacob Thornton committed
714

Mark Otto's avatar
dist    
Mark Otto committed
715
    _proto._addEventListeners = function _addEventListeners() {
Mark Otto's avatar
dist    
Mark Otto committed
716
      var _this2 = this;
Mark Otto's avatar
grunt    
Mark Otto committed
717

Mark Otto's avatar
grunt    
Mark Otto committed
718
      if (this._config.keyboard) {
Mark Otto's avatar
dist    
Mark Otto committed
719
        $$$1(this._element).on(Event.KEYDOWN, function (event) {
Mark Otto's avatar
dist    
Mark Otto committed
720
          return _this2._keydown(event);
Mark Otto's avatar
grunt    
Mark Otto committed
721
        });
Jacob Thornton's avatar
Jacob Thornton committed
722
723
      }

Mark Otto's avatar
build    
Mark Otto committed
724
      if (this._config.pause === 'hover') {
Mark Otto's avatar
dist    
Mark Otto committed
725
        $$$1(this._element).on(Event.MOUSEENTER, function (event) {
Mark Otto's avatar
dist    
Mark Otto committed
726
          return _this2.pause(event);
Mark Otto's avatar
grunt    
Mark Otto committed
727
        }).on(Event.MOUSELEAVE, function (event) {
Mark Otto's avatar
dist    
Mark Otto committed
728
          return _this2.cycle(event);
Mark Otto's avatar
grunt    
Mark Otto committed
729
        });
Mark Otto's avatar
dist    
Mark Otto committed
730

Mark Otto's avatar
build    
Mark Otto committed
731
732
733
734
735
736
737
738
        if ('ontouchstart' in document.documentElement) {
          // 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
Mark Otto's avatar
dist    
Mark Otto committed
739
          $$$1(this._element).on(Event.TOUCHEND, function () {
Mark Otto's avatar
dist    
Mark Otto committed
740
            _this2.pause();
Mark Otto's avatar
dist    
Mark Otto committed
741

Mark Otto's avatar
dist    
Mark Otto committed
742
743
            if (_this2.touchTimeout) {
              clearTimeout(_this2.touchTimeout);
Mark Otto's avatar
build    
Mark Otto committed
744
            }
Mark Otto's avatar
dist    
Mark Otto committed
745

Mark Otto's avatar
dist    
Mark Otto committed
746
747
748
            _this2.touchTimeout = setTimeout(function (event) {
              return _this2.cycle(event);
            }, TOUCHEVENT_COMPAT_WAIT + _this2._config.interval);
Mark Otto's avatar
build    
Mark Otto committed
749
750
          });
        }
Jacob Thornton's avatar
Jacob Thornton committed
751
      }
Mark Otto's avatar
grunt    
Mark Otto committed
752
    };
Jacob Thornton's avatar
Jacob Thornton committed
753

Mark Otto's avatar
dist    
Mark Otto committed
754
    _proto._keydown = function _keydown(event) {
Mark Otto's avatar
grunt    
Mark Otto committed
755
756
      if (/input|textarea/i.test(event.target.tagName)) {
        return;
Jacob Thornton's avatar
Jacob Thornton committed
757
      }
Mark Otto's avatar
grunt    
Mark Otto committed
758
759
760

      switch (event.which) {
        case ARROW_LEFT_KEYCODE:
Mark Otto's avatar
grunt    
Mark Otto committed
761
          event.preventDefault();
Mark Otto's avatar
grunt    
Mark Otto committed
762
763
          this.prev();
          break;
Mark Otto's avatar
dist    
Mark Otto committed
764

Mark Otto's avatar
grunt    
Mark Otto committed
765
        case ARROW_RIGHT_KEYCODE:
Mark Otto's avatar
grunt    
Mark Otto committed
766
          event.preventDefault();
Mark Otto's avatar
grunt    
Mark Otto committed
767
768
          this.next();
          break;
Mark Otto's avatar
dist    
Mark Otto committed
769

Mark Otto's avatar
grunt    
Mark Otto committed
770
771
        default:
          return;
Jacob Thornton's avatar
Jacob Thornton committed
772
      }
Mark Otto's avatar
grunt    
Mark Otto committed
773
    };
Jacob Thornton's avatar
Jacob Thornton committed
774

Mark Otto's avatar
dist    
Mark Otto committed
775
    _proto._getItemIndex = function _getItemIndex(element) {
Mark Otto's avatar
dist    
Mark Otto committed
776
      this._items = $$$1.makeArray($$$1(element).parent().find(Selector.ITEM));
Mark Otto's avatar
grunt    
Mark Otto committed
777
778
      return this._items.indexOf(element);
    };
Jacob Thornton's avatar
Jacob Thornton committed
779

Mark Otto's avatar
dist    
Mark Otto committed
780
    _proto._getItemByDirection = function _getItemByDirection(direction, activeElement) {
Mark Otto's avatar
grunt    
Mark Otto committed
781
      var isNextDirection = direction === Direction.NEXT;
Mark Otto's avatar
grunt    
Mark Otto committed
782
      var isPrevDirection = direction === Direction.PREV;
Mark Otto's avatar
dist    
Mark Otto committed
783

Mark Otto's avatar
grunt    
Mark Otto committed
784
      var activeIndex = this._getItemIndex(activeElement);
Mark Otto's avatar
dist    
Mark Otto committed
785

Mark Otto's avatar
grunt    
Mark Otto committed
786
787
      var lastItemIndex = this._items.length - 1;
      var isGoingToWrap = isPrevDirection && activeIndex === 0 || isNextDirection && activeIndex === lastItemIndex;
Jacob Thornton's avatar
Jacob Thornton committed
788

Mark Otto's avatar
grunt    
Mark Otto committed
789
790
      if (isGoingToWrap && !this._config.wrap) {
        return activeElement;
Jacob Thornton's avatar
Jacob Thornton committed
791
792
      }

Mark Otto's avatar
grunt    
Mark Otto committed
793
      var delta = direction === Direction.PREV ? -1 : 1;
Mark Otto's avatar
grunt    
Mark Otto committed
794
795
796
      var itemIndex = (activeIndex + delta) % this._items.length;
      return itemIndex === -1 ? this._items[this._items.length - 1] : this._items[itemIndex];
    };
Jacob Thornton's avatar
Jacob Thornton committed
797

Mark Otto's avatar
dist    
Mark Otto committed
798
    _proto._triggerSlideEvent = function _triggerSlideEvent(relatedTarget, eventDirectionName) {
Mark Otto's avatar
grunt    
Mark Otto committed
799
      var targetIndex = this._getItemIndex(relatedTarget);
Mark Otto's avatar
dist    
Mark Otto committed
800

Mark Otto's avatar
dist    
Mark Otto committed
801
      var fromIndex = this._getItemIndex($$$1(this._element).find(Selector.ACTIVE_ITEM)[0]);
Mark Otto's avatar
dist    
Mark Otto committed
802

Mark Otto's avatar
dist    
Mark Otto committed
803
      var slideEvent = $$$1.Event(Event.SLIDE, {
Mark Otto's avatar
grunt    
Mark Otto committed
804
        relatedTarget: relatedTarget,
Mark Otto's avatar
grunt    
Mark Otto committed
805
806
807
        direction: eventDirectionName,
        from: fromIndex,
        to: targetIndex
Mark Otto's avatar
grunt    
Mark Otto committed
808
      });
Mark Otto's avatar
dist    
Mark Otto committed
809
      $$$1(this._element).trigger(slideEvent);
Mark Otto's avatar
grunt    
Mark Otto committed
810
811
      return slideEvent;
    };
Jacob Thornton's avatar
Jacob Thornton committed
812

Mark Otto's avatar
dist    
Mark Otto committed
813
    _proto._setActiveIndicatorElement = function _setActiveIndicatorElement(element) {
Mark Otto's avatar
grunt    
Mark Otto committed
814
      if (this._indicatorsElement) {
Mark Otto's avatar
dist    
Mark Otto committed
815
        $$$1(this._indicatorsElement).find(Selector.ACTIVE).removeClass(ClassName.ACTIVE);
Jacob Thornton's avatar
Jacob Thornton committed
816

Mark Otto's avatar
grunt    
Mark Otto committed
817
        var nextIndicator = this._indicatorsElement.children[this._getItemIndex(element)];
Jacob Thornton's avatar
Jacob Thornton committed
818

Mark Otto's avatar
grunt    
Mark Otto committed
819
        if (nextIndicator) {
Mark Otto's avatar
dist    
Mark Otto committed
820
          $$$1(nextIndicator).addClass(ClassName.ACTIVE);
Jacob Thornton's avatar
Jacob Thornton committed
821
        }
Mark Otto's avatar
grunt    
Mark Otto committed
822
823
      }
    };
Jacob Thornton's avatar
Jacob Thornton committed
824

Mark Otto's avatar
dist    
Mark Otto committed
825
    _proto._slide = function _slide(direction, element) {
Mark Otto's avatar
dist    
Mark Otto committed
826
      var _this3 = this;
Jacob Thornton's avatar
Jacob Thornton committed
827

Mark Otto's avatar
dist    
Mark Otto committed
828
      var activeElement = $$$1(this._element).find(Selector.ACTIVE_ITEM)[0];
Mark Otto's avatar
dist    
Mark Otto committed
829

Mark Otto's avatar
grunt    
Mark Otto committed
830
      var activeElementIndex = this._getItemIndex(activeElement);
Mark Otto's avatar
dist    
Mark Otto committed
831

Mark Otto's avatar
grunt    
Mark Otto committed
832
      var nextElement = element || activeElement && this._getItemByDirection(direction, activeElement);
Mark Otto's avatar
dist    
Mark Otto committed
833

Mark Otto's avatar
grunt    
Mark Otto committed
834
      var nextElementIndex = this._getItemIndex(nextElement);
Jacob Thornton's avatar
Jacob Thornton committed
835

Mark Otto's avatar
dist    
Mark Otto committed
836
837
838
839
      var isCycling = Boolean(this._interval);
      var directionalClassName;
      var orderClassName;
      var eventDirectionName;
Mark Otto's avatar
grunt    
Mark Otto committed
840
841
842
843
844
845
846
847
848
849

      if (direction === Direction.NEXT) {
        directionalClassName = ClassName.LEFT;
        orderClassName = ClassName.NEXT;
        eventDirectionName = Direction.LEFT;
      } else {
        directionalClassName = ClassName.RIGHT;
        orderClassName = ClassName.PREV;
        eventDirectionName = Direction.RIGHT;
      }
Mark Otto's avatar
grunt    
Mark Otto committed
850

Mark Otto's avatar
dist    
Mark Otto committed
851
      if (nextElement && $$$1(nextElement).hasClass(ClassName.ACTIVE)) {
Mark Otto's avatar
grunt    
Mark Otto committed
852
853
854
        this._isSliding = false;
        return;
      }
Jacob Thornton's avatar
Jacob Thornton committed
855

Mark Otto's avatar
grunt    
Mark Otto committed
856
      var slideEvent = this._triggerSlideEvent(nextElement, eventDirectionName);
Mark Otto's avatar
dist    
Mark Otto committed
857

Mark Otto's avatar
grunt    
Mark Otto committed
858
859
860
      if (slideEvent.isDefaultPrevented()) {
        return;
      }
Jacob Thornton's avatar
Jacob Thornton committed
861

Mark Otto's avatar
grunt    
Mark Otto committed
862
863
864
865
      if (!activeElement || !nextElement) {
        // some weirdness is happening, so we bail
        return;
      }
Jacob Thornton's avatar
Jacob Thornton committed
866

Mark Otto's avatar
grunt    
Mark Otto committed
867
868
869
870
871
      this._isSliding = true;

      if (isCycling) {
        this.pause();
      }
Jacob Thornton's avatar
Jacob Thornton committed
872

Mark Otto's avatar
grunt    
Mark Otto committed
873
      this._setActiveIndicatorElement(nextElement);
Jacob Thornton's avatar
Jacob Thornton committed
874

Mark Otto's avatar
dist    
Mark Otto committed
875
      var slidEvent = $$$1.Event(Event.SLID, {
Mark Otto's avatar
grunt    
Mark Otto committed
876
        relatedTarget: nextElement,
Mark Otto's avatar
grunt    
Mark Otto committed
877
878
879
        direction: eventDirectionName,
        from: activeElementIndex,
        to: nextElementIndex
Mark Otto's avatar
grunt    
Mark Otto committed
880
      });
Jacob Thornton's avatar
Jacob Thornton committed
881

Mark Otto's avatar
dist    
Mark Otto committed
882
883
      if (Util.supportsTransitionEnd() && $$$1(this._element).hasClass(ClassName.SLIDE)) {
        $$$1(nextElement).addClass(orderClassName);
Mark Otto's avatar
grunt    
Mark Otto committed
884
        Util.reflow(nextElement);
Mark Otto's avatar
dist    
Mark Otto committed
885
886
887
888
889
        $$$1(activeElement).addClass(directionalClassName);
        $$$1(nextElement).addClass(directionalClassName);
        $$$1(activeElement).one(Util.TRANSITION_END, function () {
          $$$1(nextElement).removeClass(directionalClassName + " " + orderClassName).addClass(ClassName.ACTIVE);
          $$$1(activeElement).removeClass(ClassName.ACTIVE + " " + orderClassName + " " + directionalClassName);
Mark Otto's avatar
dist    
Mark Otto committed
890
          _this3._isSliding = false;
Mark Otto's avatar
grunt    
Mark Otto committed
891
          setTimeout(function () {
Mark Otto's avatar
dist    
Mark Otto committed
892
            return $$$1(_this3._element).trigger(slidEvent);
Mark Otto's avatar
grunt    
Mark Otto committed
893
894
895
          }, 0);
        }).emulateTransitionEnd(TRANSITION_DURATION);
      } else {
Mark Otto's avatar
dist    
Mark Otto committed
896
897
        $$$1(activeElement).removeClass(ClassName.ACTIVE);
        $$$1(nextElement).addClass(ClassName.ACTIVE);
Mark Otto's avatar
grunt    
Mark Otto committed
898
        this._isSliding = false;
Mark Otto's avatar
dist    
Mark Otto committed
899
        $$$1(this._element).trigger(slidEvent);
Jacob Thornton's avatar
Jacob Thornton committed
900
901
      }

Mark Otto's avatar
grunt    
Mark Otto committed
902
903
904
      if (isCycling) {
        this.cycle();
      }
Mark Otto's avatar
dist    
Mark Otto committed
905
    }; // static
Jacob Thornton's avatar
Jacob Thornton committed
906
907


Mark Otto's avatar
grunt    
Mark Otto committed
908
909
    Carousel._jQueryInterface = function _jQueryInterface(config) {
      return this.each(function () {
Mark Otto's avatar
dist    
Mark Otto committed
910
        var data = $$$1(this).data(DATA_KEY);
Mark Otto's avatar
dist    
Mark Otto committed
911

Mark Otto's avatar
dist    
Mark Otto committed
912
        var _config = $$$1.extend({}, Default, $$$1(this).data());
Jacob Thornton's avatar
Jacob Thornton committed
913

Mark Otto's avatar
dist    
Mark Otto committed
914
        if (typeof config === 'object') {
Mark Otto's avatar
dist    
Mark Otto committed
915
          $$$1.extend(_config, config);
Mark Otto's avatar
grunt    
Mark Otto committed
916
        }
Jacob Thornton's avatar
Jacob Thornton committed
917

Mark Otto's avatar
grunt    
Mark Otto committed
918
        var action = typeof config === 'string' ? config : _config.slide;
Jacob Thornton's avatar
Jacob Thornton committed
919

Mark Otto's avatar
grunt    
Mark Otto committed
920
921
        if (!data) {
          data = new Carousel(this, _config);
Mark Otto's avatar
dist    
Mark Otto committed
922
          $$$1(this).data(DATA_KEY, data);
Mark Otto's avatar
grunt    
Mark Otto committed
923
        }
Jacob Thornton's avatar
Jacob Thornton committed
924

Mark Otto's avatar
grunt    
Mark Otto committed
925
926
927
        if (typeof config === 'number') {
          data.to(config);
        } else if (typeof action === 'string') {
Mark Otto's avatar
dist    
Mark Otto committed
928
          if (typeof data[action] === 'undefined') {
Mark Otto's avatar
dist    
Mark Otto committed
929
            throw new Error("No method named \"" + action + "\"");
Mark Otto's avatar
grunt    
Mark Otto committed
930
          }
Mark Otto's avatar
dist    
Mark Otto committed
931

Mark Otto's avatar
grunt    
Mark Otto committed
932
933
934
935
          data[action]();
        } else if (_config.interval) {
          data.pause();
          data.cycle();
Jacob Thornton's avatar
Jacob Thornton committed
936
        }
Mark Otto's avatar
grunt    
Mark Otto committed
937
938
      });
    };
Jacob Thornton's avatar
Jacob Thornton committed
939

Mark Otto's avatar
grunt    
Mark Otto committed
940
941
    Carousel._dataApiClickHandler = function _dataApiClickHandler(event) {
      var selector = Util.getSelectorFromElement(this);
Jacob Thornton's avatar
Jacob Thornton committed
942

Mark Otto's avatar
grunt    
Mark Otto committed
943
944
945
      if (!selector) {
        return;
      }
Jacob Thornton's avatar
Jacob Thornton committed
946

Mark Otto's avatar
dist    
Mark Otto committed
947
      var target = $$$1(selector)[0];
Jacob Thornton's avatar
Jacob Thornton committed
948

Mark Otto's avatar
dist    
Mark Otto committed
949
      if (!target || !$$$1(target).hasClass(ClassName.CAROUSEL)) {
Mark Otto's avatar
grunt    
Mark Otto committed
950
951
        return;
      }
Jacob Thornton's avatar
Jacob Thornton committed
952

Mark Otto's avatar
dist    
Mark Otto committed
953
      var config = $$$1.extend({}, $$$1(target).data(), $$$1(this).data());
Mark Otto's avatar
grunt    
Mark Otto committed
954
      var slideIndex = this.getAttribute('data-slide-to');
Jacob Thornton's avatar
Jacob Thornton committed
955

Mark Otto's avatar
grunt    
Mark Otto committed
956
957
958
      if (slideIndex) {
        config.interval = false;
      }
Jacob Thornton's avatar
Jacob Thornton committed
959

Mark Otto's avatar
dist    
Mark Otto committed
960
      Carousel._jQueryInterface.call($$$1(target), config);
Mark Otto's avatar
grunt    
Mark Otto committed
961
962

      if (slideIndex) {
Mark Otto's avatar
dist    
Mark Otto committed
963
        $$$1(target).data(DATA_KEY).to(slideIndex);
Jacob Thornton's avatar
Jacob Thornton committed
964
      }
Mark Otto's avatar
grunt    
Mark Otto committed
965
966
967
968

      event.preventDefault();
    };

Mark Otto's avatar
dist    
Mark Otto committed
969
    createClass(Carousel, null, [{
Mark Otto's avatar
dist    
Mark Otto committed
970
      key: "VERSION",
Jacob Thornton's avatar
Jacob Thornton committed
971
972
973
974
      get: function get() {
        return VERSION;
      }
    }, {
Mark Otto's avatar
dist    
Mark Otto committed
975
      key: "Default",
Jacob Thornton's avatar
Jacob Thornton committed
976
977
978
979
980
      get: function get() {
        return Default;
      }
    }]);
    return Carousel;
Mark Otto's avatar
grunt    
Mark Otto committed
981
982
983
984
985
986
  }();
  /**
   * ------------------------------------------------------------------------
   * Data Api implementation
   * ------------------------------------------------------------------------
   */
Jacob Thornton's avatar
Jacob Thornton committed
987
988


Mark Otto's avatar
dist    
Mark Otto committed
989
990
991
992
  $$$1(document).on(Event.CLICK_DATA_API, Selector.DATA_SLIDE, Carousel._dataApiClickHandler);
  $$$1(window).on(Event.LOAD_DATA_API, function () {
    $$$1(Selector.DATA_RIDE).each(function () {
      var $carousel = $$$1(this);
Mark Otto's avatar
dist    
Mark Otto committed
993

Jacob Thornton's avatar
Jacob Thornton committed
994
995
      Carousel._jQueryInterface.call($carousel, $carousel.data());
    });
Mark Otto's avatar
Mark Otto committed
996
  });
Jacob Thornton's avatar
Jacob Thornton committed
997
998
999
1000
  /**
   * ------------------------------------------------------------------------
   * jQuery
   * ------------------------------------------------------------------------
For faster browsing, not all history is shown. View entire blame