bootstrap.bundle.js 243 KB
Newer Older
XhmikosR's avatar
Dist    
XhmikosR committed
1001
    _proto.dispose = function dispose() {
XhmikosR's avatar
XhmikosR committed
1002
      Data.removeData(this._element, DATA_KEY$1);
XhmikosR's avatar
Dist    
XhmikosR committed
1003
      this._element = null;
Mark Otto's avatar
Mark Otto committed
1004
1005
    } // Static
    ;
Mark Otto's avatar
dist  
Mark Otto committed
1006

XhmikosR's avatar
XhmikosR committed
1007
    Button.jQueryInterface = function jQueryInterface(config) {
XhmikosR's avatar
Dist    
XhmikosR committed
1008
      return this.each(function () {
XhmikosR's avatar
XhmikosR committed
1009
        var data = Data.getData(this, DATA_KEY$1);
Mark Otto's avatar
dist  
Mark Otto committed
1010

XhmikosR's avatar
Dist    
XhmikosR committed
1011
1012
1013
        if (!data) {
          data = new Button(this);
        }
Mark Otto's avatar
dist  
Mark Otto committed
1014

XhmikosR's avatar
Dist    
XhmikosR committed
1015
1016
        if (config === 'toggle') {
          data[config]();
Mark Otto's avatar
dist  
Mark Otto committed
1017
        }
XhmikosR's avatar
Dist    
XhmikosR committed
1018
1019
      });
    };
Mark Otto's avatar
dist  
Mark Otto committed
1020

XhmikosR's avatar
XhmikosR committed
1021
    Button.getInstance = function getInstance(element) {
XhmikosR's avatar
XhmikosR committed
1022
1023
1024
      return Data.getData(element, DATA_KEY$1);
    };

XhmikosR's avatar
Dist    
XhmikosR committed
1025
1026
1027
1028
1029
1030
    _createClass(Button, null, [{
      key: "VERSION",
      get: function get() {
        return VERSION$1;
      }
    }]);
Mark Otto's avatar
dist    
Mark Otto committed
1031

XhmikosR's avatar
Dist    
XhmikosR committed
1032
1033
1034
1035
1036
1037
1038
    return Button;
  }();
  /**
   * ------------------------------------------------------------------------
   * Data Api implementation
   * ------------------------------------------------------------------------
   */
Mark Otto's avatar
dist  
Mark Otto committed
1039
1040


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

    if (!data) {
      data = new Button(button);
XhmikosR's avatar
Dist    
XhmikosR committed
1048
    }
Mark Otto's avatar
dist    
Mark Otto committed
1049

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

    if (button) {
XhmikosR's avatar
XhmikosR committed
1056
      button.classList.add(CLASS_NAME_FOCUS);
XhmikosR's avatar
XhmikosR committed
1057
    }
XhmikosR's avatar
XhmikosR committed
1058
  });
XhmikosR's avatar
XhmikosR committed
1059
  EventHandler.on(document, EVENT_BLUR_DATA_API, SELECTOR_DATA_TOGGLE_CARROT, function (event) {
XhmikosR's avatar
XhmikosR committed
1060
    var button = event.target.closest(SELECTOR_BUTTON);
XhmikosR's avatar
XhmikosR committed
1061
1062

    if (button) {
XhmikosR's avatar
XhmikosR committed
1063
      button.classList.remove(CLASS_NAME_FOCUS);
XhmikosR's avatar
XhmikosR committed
1064
    }
XhmikosR's avatar
Dist    
XhmikosR committed
1065
  });
XhmikosR's avatar
XhmikosR committed
1066
  var $$2 = getjQuery();
XhmikosR's avatar
Dist    
XhmikosR committed
1067
1068
1069
1070
  /**
   * ------------------------------------------------------------------------
   * jQuery
   * ------------------------------------------------------------------------
XhmikosR's avatar
XhmikosR committed
1071
   * add .button to jQuery only if jQuery is present
XhmikosR's avatar
Dist    
XhmikosR committed
1072
   */
Mark Otto's avatar
dist  
Mark Otto committed
1073

1074
1075
  /* istanbul ignore if */

XhmikosR's avatar
XhmikosR committed
1076
1077
1078
1079
  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
XhmikosR committed
1080

XhmikosR's avatar
XhmikosR committed
1081
1082
1083
    $$2.fn[NAME$1].noConflict = function () {
      $$2.fn[NAME$1] = JQUERY_NO_CONFLICT$1;
      return Button.jQueryInterface;
XhmikosR's avatar
XhmikosR committed
1084
1085
1086
1087
1088
    };
  }

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

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

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

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

    return val;
  }

  function normalizeDataKey(key) {
    return key.replace(/[A-Z]/g, function (chr) {
XhmikosR's avatar
XhmikosR committed
1115
      return "-" + chr.toLowerCase();
XhmikosR's avatar
XhmikosR committed
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
    });
  }

  var Manipulator = {
    setDataAttribute: function setDataAttribute(element, key, value) {
      element.setAttribute("data-" + normalizeDataKey(key), value);
    },
    removeDataAttribute: function removeDataAttribute(element, key) {
      element.removeAttribute("data-" + normalizeDataKey(key));
    },
    getDataAttributes: function getDataAttributes(element) {
      if (!element) {
        return {};
      }

1131
      var attributes = _objectSpread2({}, element.dataset);
Mark Otto's avatar
dist  
Mark Otto committed
1132

XhmikosR's avatar
XhmikosR committed
1133
1134
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
1160
1161
1162
1163
1164
      Object.keys(attributes).forEach(function (key) {
        attributes[key] = normalizeData(attributes[key]);
      });
      return attributes;
    },
    getDataAttribute: function getDataAttribute(element, key) {
      return normalizeData(element.getAttribute("data-" + normalizeDataKey(key)));
    },
    offset: function offset(element) {
      var rect = element.getBoundingClientRect();
      return {
        top: rect.top + document.body.scrollTop,
        left: rect.left + document.body.scrollLeft
      };
    },
    position: function position(element) {
      return {
        top: element.offsetTop,
        left: element.offsetLeft
      };
    },
    toggleClass: function toggleClass(element, className) {
      if (!element) {
        return;
      }

      if (element.classList.contains(className)) {
        element.classList.remove(className);
      } else {
        element.classList.add(className);
      }
    }
XhmikosR's avatar
Dist    
XhmikosR committed
1165
  };
Mark Otto's avatar
dist  
Mark Otto committed
1166
1167

  /**
XhmikosR's avatar
Dist    
XhmikosR committed
1168
1169
1170
   * ------------------------------------------------------------------------
   * Constants
   * ------------------------------------------------------------------------
Mark Otto's avatar
dist  
Mark Otto committed
1171
   */
Mark Otto's avatar
dist    
Mark Otto committed
1172

XhmikosR's avatar
Dist    
XhmikosR committed
1173
  var NAME$2 = 'carousel';
1174
  var VERSION$2 = '5.0.0-alpha1';
XhmikosR's avatar
Dist    
XhmikosR committed
1175
1176
1177
  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
1178
1179
  var ARROW_LEFT_KEY = 'ArrowLeft';
  var ARROW_RIGHT_KEY = 'ArrowRight';
XhmikosR's avatar
Dist    
XhmikosR committed
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
  var TOUCHEVENT_COMPAT_WAIT = 500; // Time for mouse compat events to fire after touch

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

XhmikosR's avatar
XhmikosR committed
1242
  var Carousel = /*#__PURE__*/function () {
XhmikosR's avatar
Dist    
XhmikosR committed
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
    function Carousel(element, config) {
      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
1254
      this._indicatorsElement = SelectorEngine.findOne(SELECTOR_INDICATORS, this._element);
XhmikosR's avatar
Dist    
XhmikosR committed
1255
      this._touchSupported = 'ontouchstart' in document.documentElement || navigator.maxTouchPoints > 0;
XhmikosR's avatar
XhmikosR committed
1256
      this._pointerEvent = Boolean(window.PointerEvent);
XhmikosR's avatar
Dist    
XhmikosR committed
1257
1258

      this._addEventListeners();
XhmikosR's avatar
XhmikosR committed
1259
1260

      Data.setData(element, DATA_KEY$2, this);
XhmikosR's avatar
Dist    
XhmikosR committed
1261
1262
1263
1264
1265
1266
1267
1268
    } // Getters


    var _proto = Carousel.prototype;

    // Public
    _proto.next = function next() {
      if (!this._isSliding) {
XhmikosR's avatar
XhmikosR committed
1269
        this._slide(DIRECTION_NEXT);
XhmikosR's avatar
Dist    
XhmikosR committed
1270
      }
Mark Otto's avatar
dist    
Mark Otto committed
1271
    };
Mark Otto's avatar
dist  
Mark Otto committed
1272

XhmikosR's avatar
Dist    
XhmikosR committed
1273
1274
1275
    _proto.nextWhenVisible = function nextWhenVisible() {
      // Don't call next when the page isn't visible
      // or the carousel or its parent isn't visible
XhmikosR's avatar
XhmikosR committed
1276
      if (!document.hidden && isVisible(this._element)) {
XhmikosR's avatar
Dist    
XhmikosR committed
1277
1278
        this.next();
      }
Mark Otto's avatar
dist  
Mark Otto committed
1279
1280
    };

XhmikosR's avatar
Dist    
XhmikosR committed
1281
1282
    _proto.prev = function prev() {
      if (!this._isSliding) {
XhmikosR's avatar
XhmikosR committed
1283
        this._slide(DIRECTION_PREV);
XhmikosR's avatar
Dist    
XhmikosR committed
1284
1285
      }
    };
Mark Otto's avatar
dist  
Mark Otto committed
1286

XhmikosR's avatar
Dist    
XhmikosR committed
1287
1288
1289
1290
    _proto.pause = function pause(event) {
      if (!event) {
        this._isPaused = true;
      }
Mark Otto's avatar
dist  
Mark Otto committed
1291

XhmikosR's avatar
XhmikosR committed
1292
      if (SelectorEngine.findOne(SELECTOR_NEXT_PREV, this._element)) {
XhmikosR's avatar
XhmikosR committed
1293
        triggerTransitionEnd(this._element);
XhmikosR's avatar
Dist    
XhmikosR committed
1294
1295
        this.cycle(true);
      }
Mark Otto's avatar
dist  
Mark Otto committed
1296

XhmikosR's avatar
Dist    
XhmikosR committed
1297
1298
1299
      clearInterval(this._interval);
      this._interval = null;
    };
Mark Otto's avatar
dist  
Mark Otto committed
1300

XhmikosR's avatar
Dist    
XhmikosR committed
1301
1302
1303
1304
    _proto.cycle = function cycle(event) {
      if (!event) {
        this._isPaused = false;
      }
Mark Otto's avatar
dist  
Mark Otto committed
1305

XhmikosR's avatar
Dist    
XhmikosR committed
1306
      if (this._interval) {
Mark Otto's avatar
dist    
Mark Otto committed
1307
1308
        clearInterval(this._interval);
        this._interval = null;
XhmikosR's avatar
Dist    
XhmikosR committed
1309
      }
Mark Otto's avatar
dist  
Mark Otto committed
1310

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

XhmikosR's avatar
Dist    
XhmikosR committed
1316
1317
    _proto.to = function to(index) {
      var _this = this;
Mark Otto's avatar
dist  
Mark Otto committed
1318

XhmikosR's avatar
XhmikosR committed
1319
      this._activeElement = SelectorEngine.findOne(SELECTOR_ACTIVE_ITEM, this._element);
Mark Otto's avatar
dist    
Mark Otto committed
1320

XhmikosR's avatar
Dist    
XhmikosR committed
1321
      var activeIndex = this._getItemIndex(this._activeElement);
Mark Otto's avatar
dist    
Mark Otto committed
1322

XhmikosR's avatar
Dist    
XhmikosR committed
1323
1324
1325
      if (index > this._items.length - 1 || index < 0) {
        return;
      }
Mark Otto's avatar
dist    
Mark Otto committed
1326

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

XhmikosR's avatar
Dist    
XhmikosR committed
1334
1335
1336
1337
1338
      if (activeIndex === index) {
        this.pause();
        this.cycle();
        return;
      }
Mark Otto's avatar
dist    
Mark Otto committed
1339

XhmikosR's avatar
XhmikosR committed
1340
      var direction = index > activeIndex ? DIRECTION_NEXT : DIRECTION_PREV;
Mark Otto's avatar
dist  
Mark Otto committed
1341

XhmikosR's avatar
Dist    
XhmikosR committed
1342
1343
      this._slide(direction, this._items[index]);
    };
Mark Otto's avatar
dist  
Mark Otto committed
1344

XhmikosR's avatar
Dist    
XhmikosR committed
1345
    _proto.dispose = function dispose() {
XhmikosR's avatar
XhmikosR committed
1346
1347
      EventHandler.off(this._element, EVENT_KEY$2);
      Data.removeData(this._element, DATA_KEY$2);
XhmikosR's avatar
Dist    
XhmikosR committed
1348
1349
1350
1351
1352
1353
1354
1355
      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
Mark Otto committed
1356
1357
    } // Private
    ;
XhmikosR's avatar
Dist    
XhmikosR committed
1358
1359

    _proto._getConfig = function _getConfig(config) {
XhmikosR's avatar
XhmikosR committed
1360
      config = _objectSpread2(_objectSpread2({}, Default), config);
XhmikosR's avatar
XhmikosR committed
1361
      typeCheckConfig(NAME$2, config, DefaultType);
XhmikosR's avatar
Dist    
XhmikosR committed
1362
1363
      return config;
    };
Mark Otto's avatar
dist    
Mark Otto committed
1364

XhmikosR's avatar
Dist    
XhmikosR committed
1365
1366
    _proto._handleSwipe = function _handleSwipe() {
      var absDeltax = Math.abs(this.touchDeltaX);
Mark Otto's avatar
dist    
Mark Otto committed
1367

XhmikosR's avatar
Dist    
XhmikosR committed
1368
1369
1370
      if (absDeltax <= SWIPE_THRESHOLD) {
        return;
      }
Mark Otto's avatar
dist    
Mark Otto committed
1371

XhmikosR's avatar
XhmikosR committed
1372
1373
      var direction = absDeltax / this.touchDeltaX;
      this.touchDeltaX = 0; // swipe left
Mark Otto's avatar
dist    
Mark Otto committed
1374

XhmikosR's avatar
Dist    
XhmikosR committed
1375
1376
1377
      if (direction > 0) {
        this.prev();
      } // swipe right
Mark Otto's avatar
dist    
Mark Otto committed
1378

Mark Otto's avatar
dist    
Mark Otto committed
1379

XhmikosR's avatar
Dist    
XhmikosR committed
1380
1381
1382
1383
      if (direction < 0) {
        this.next();
      }
    };
Mark Otto's avatar
dist  
Mark Otto committed
1384

XhmikosR's avatar
Dist    
XhmikosR committed
1385
1386
    _proto._addEventListeners = function _addEventListeners() {
      var _this2 = this;
Mark Otto's avatar
dist  
Mark Otto committed
1387

XhmikosR's avatar
Dist    
XhmikosR committed
1388
      if (this._config.keyboard) {
XhmikosR's avatar
XhmikosR committed
1389
        EventHandler.on(this._element, EVENT_KEYDOWN, function (event) {
XhmikosR's avatar
Dist    
XhmikosR committed
1390
1391
1392
          return _this2._keydown(event);
        });
      }
Mark Otto's avatar
dist    
Mark Otto committed
1393

XhmikosR's avatar
Dist    
XhmikosR committed
1394
      if (this._config.pause === 'hover') {
XhmikosR's avatar
XhmikosR committed
1395
        EventHandler.on(this._element, EVENT_MOUSEENTER, function (event) {
XhmikosR's avatar
Dist    
XhmikosR committed
1396
          return _this2.pause(event);
XhmikosR's avatar
XhmikosR committed
1397
        });
XhmikosR's avatar
XhmikosR committed
1398
        EventHandler.on(this._element, EVENT_MOUSELEAVE, function (event) {
XhmikosR's avatar
Dist    
XhmikosR committed
1399
1400
1401
          return _this2.cycle(event);
        });
      }
Mark Otto's avatar
dist    
Mark Otto committed
1402

1403
      if (this._config.touch && this._touchSupported) {
Mark Otto's avatar
Mark Otto committed
1404
1405
        this._addTouchEventListeners();
      }
XhmikosR's avatar
Dist    
XhmikosR committed
1406
    };
Mark Otto's avatar
dist  
Mark Otto committed
1407

XhmikosR's avatar
Dist    
XhmikosR committed
1408
1409
    _proto._addTouchEventListeners = function _addTouchEventListeners() {
      var _this3 = this;
Mark Otto's avatar
dist    
Mark Otto committed
1410

XhmikosR's avatar
Dist    
XhmikosR committed
1411
      var start = function start(event) {
XhmikosR's avatar
XhmikosR committed
1412
1413
        if (_this3._pointerEvent && PointerType[event.pointerType.toUpperCase()]) {
          _this3.touchStartX = event.clientX;
XhmikosR's avatar
Dist    
XhmikosR committed
1414
        } else if (!_this3._pointerEvent) {
XhmikosR's avatar
XhmikosR committed
1415
          _this3.touchStartX = event.touches[0].clientX;
Mark Otto's avatar
dist    
Mark Otto committed
1416
1417
        }
      };
Mark Otto's avatar
dist  
Mark Otto committed
1418

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

XhmikosR's avatar
Dist    
XhmikosR committed
1428
      var end = function end(event) {
XhmikosR's avatar
XhmikosR committed
1429
1430
        if (_this3._pointerEvent && PointerType[event.pointerType.toUpperCase()]) {
          _this3.touchDeltaX = event.clientX - _this3.touchStartX;
XhmikosR's avatar
Dist    
XhmikosR committed
1431
1432
1433
        }

        _this3._handleSwipe();
Mark Otto's avatar
dist    
Mark Otto committed
1434

XhmikosR's avatar
Dist    
XhmikosR committed
1435
1436
1437
1438
1439
1440
1441
1442
1443
        if (_this3._config.pause === 'hover') {
          // 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
          _this3.pause();
Mark Otto's avatar
dist  
Mark Otto committed
1444

XhmikosR's avatar
Dist    
XhmikosR committed
1445
1446
1447
          if (_this3.touchTimeout) {
            clearTimeout(_this3.touchTimeout);
          }
Mark Otto's avatar
dist  
Mark Otto committed
1448

XhmikosR's avatar
Dist    
XhmikosR committed
1449
1450
1451
          _this3.touchTimeout = setTimeout(function (event) {
            return _this3.cycle(event);
          }, TOUCHEVENT_COMPAT_WAIT + _this3._config.interval);
Mark Otto's avatar
dist    
Mark Otto committed
1452
1453
        }
      };
Mark Otto's avatar
dist    
Mark Otto committed
1454

XhmikosR's avatar
XhmikosR committed
1455
1456
      SelectorEngine.find(SELECTOR_ITEM_IMG, this._element).forEach(function (itemImg) {
        EventHandler.on(itemImg, EVENT_DRAG_START, function (e) {
XhmikosR's avatar
XhmikosR committed
1457
1458
          return e.preventDefault();
        });
XhmikosR's avatar
Dist    
XhmikosR committed
1459
      });
Mark Otto's avatar
dist    
Mark Otto committed
1460

XhmikosR's avatar
Dist    
XhmikosR committed
1461
      if (this._pointerEvent) {
XhmikosR's avatar
XhmikosR committed
1462
        EventHandler.on(this._element, EVENT_POINTERDOWN, function (event) {
XhmikosR's avatar
Dist    
XhmikosR committed
1463
1464
          return start(event);
        });
XhmikosR's avatar
XhmikosR committed
1465
        EventHandler.on(this._element, EVENT_POINTERUP, function (event) {
XhmikosR's avatar
Dist    
XhmikosR committed
1466
1467
          return end(event);
        });
Mark Otto's avatar
dist    
Mark Otto committed
1468

XhmikosR's avatar
XhmikosR committed
1469
        this._element.classList.add(CLASS_NAME_POINTER_EVENT);
XhmikosR's avatar
Dist    
XhmikosR committed
1470
      } else {
XhmikosR's avatar
XhmikosR committed
1471
        EventHandler.on(this._element, EVENT_TOUCHSTART, function (event) {
XhmikosR's avatar
Dist    
XhmikosR committed
1472
          return start(event);
Mark Otto's avatar
dist    
Mark Otto committed
1473
        });
XhmikosR's avatar
XhmikosR committed
1474
        EventHandler.on(this._element, EVENT_TOUCHMOVE, function (event) {
XhmikosR's avatar
Dist    
XhmikosR committed
1475
1476
          return move(event);
        });
XhmikosR's avatar
XhmikosR committed
1477
        EventHandler.on(this._element, EVENT_TOUCHEND, function (event) {
XhmikosR's avatar
Dist    
XhmikosR committed
1478
1479
1480
1481
          return end(event);
        });
      }
    };
Mark Otto's avatar
dist  
Mark Otto committed
1482

XhmikosR's avatar
Dist    
XhmikosR committed
1483
1484
1485
1486
    _proto._keydown = function _keydown(event) {
      if (/input|textarea/i.test(event.target.tagName)) {
        return;
      }
Mark Otto's avatar
dist  
Mark Otto committed
1487

XhmikosR's avatar
XhmikosR committed
1488
1489
      switch (event.key) {
        case ARROW_LEFT_KEY:
XhmikosR's avatar
Dist    
XhmikosR committed
1490
1491
1492
          event.preventDefault();
          this.prev();
          break;
Mark Otto's avatar
dist  
Mark Otto committed
1493

XhmikosR's avatar
XhmikosR committed
1494
        case ARROW_RIGHT_KEY:
XhmikosR's avatar
Dist    
XhmikosR committed
1495
1496
1497
1498
1499
          event.preventDefault();
          this.next();
          break;
      }
    };
Mark Otto's avatar
dist  
Mark Otto committed
1500

XhmikosR's avatar
Dist    
XhmikosR committed
1501
    _proto._getItemIndex = function _getItemIndex(element) {
XhmikosR's avatar
XhmikosR committed
1502
      this._items = element && element.parentNode ? SelectorEngine.find(SELECTOR_ITEM, element.parentNode) : [];
XhmikosR's avatar
Dist    
XhmikosR committed
1503
1504
      return this._items.indexOf(element);
    };
Mark Otto's avatar
dist    
Mark Otto committed
1505

XhmikosR's avatar
Dist    
XhmikosR committed
1506
    _proto._getItemByDirection = function _getItemByDirection(direction, activeElement) {
XhmikosR's avatar
XhmikosR committed
1507
1508
      var isNextDirection = direction === DIRECTION_NEXT;
      var isPrevDirection = direction === DIRECTION_PREV;
Mark Otto's avatar
dist    
Mark Otto committed
1509

XhmikosR's avatar
Dist    
XhmikosR committed
1510
      var activeIndex = this._getItemIndex(activeElement);
Mark Otto's avatar
dist    
Mark Otto committed
1511

XhmikosR's avatar
Dist    
XhmikosR committed
1512
1513
      var lastItemIndex = this._items.length - 1;
      var isGoingToWrap = isPrevDirection && activeIndex === 0 || isNextDirection && activeIndex === lastItemIndex;
Mark Otto's avatar
dist  
Mark Otto committed
1514

XhmikosR's avatar
Dist    
XhmikosR committed
1515
1516
1517
      if (isGoingToWrap && !this._config.wrap) {
        return activeElement;
      }
Mark Otto's avatar
dist  
Mark Otto committed
1518

XhmikosR's avatar
XhmikosR committed
1519
      var delta = direction === DIRECTION_PREV ? -1 : 1;
XhmikosR's avatar
Dist    
XhmikosR committed
1520
1521
1522
      var itemIndex = (activeIndex + delta) % this._items.length;
      return itemIndex === -1 ? this._items[this._items.length - 1] : this._items[itemIndex];
    };
Mark Otto's avatar
dist  
Mark Otto committed
1523

XhmikosR's avatar
Dist    
XhmikosR committed
1524
1525
    _proto._triggerSlideEvent = function _triggerSlideEvent(relatedTarget, eventDirectionName) {
      var targetIndex = this._getItemIndex(relatedTarget);
Mark Otto's avatar
dist  
Mark Otto committed
1526

XhmikosR's avatar
XhmikosR committed
1527
      var fromIndex = this._getItemIndex(SelectorEngine.findOne(SELECTOR_ACTIVE_ITEM, this._element));
Mark Otto's avatar
dist    
Mark Otto committed
1528

XhmikosR's avatar
XhmikosR committed
1529
      return EventHandler.trigger(this._element, EVENT_SLIDE, {
XhmikosR's avatar
Dist    
XhmikosR committed
1530
1531
1532
1533
1534
1535
        relatedTarget: relatedTarget,
        direction: eventDirectionName,
        from: fromIndex,
        to: targetIndex
      });
    };
Mark Otto's avatar
dist  
Mark Otto committed
1536

XhmikosR's avatar
Dist    
XhmikosR committed
1537
1538
    _proto._setActiveIndicatorElement = function _setActiveIndicatorElement(element) {
      if (this._indicatorsElement) {
XhmikosR's avatar
XhmikosR committed
1539
        var indicators = SelectorEngine.find(SELECTOR_ACTIVE$1, this._indicatorsElement);
XhmikosR's avatar
XhmikosR committed
1540
1541

        for (var i = 0; i < indicators.length; i++) {
XhmikosR's avatar
XhmikosR committed
1542
          indicators[i].classList.remove(CLASS_NAME_ACTIVE$1);
XhmikosR's avatar
XhmikosR committed
1543
        }
Mark Otto's avatar
dist  
Mark Otto committed
1544

XhmikosR's avatar
Dist    
XhmikosR committed
1545
        var nextIndicator = this._indicatorsElement.children[this._getItemIndex(element)];
Mark Otto's avatar
dist  
Mark Otto committed
1546

XhmikosR's avatar
Dist    
XhmikosR committed
1547
        if (nextIndicator) {
XhmikosR's avatar
XhmikosR committed
1548
          nextIndicator.classList.add(CLASS_NAME_ACTIVE$1);
Mark Otto's avatar
dist    
Mark Otto committed
1549
        }
XhmikosR's avatar
Dist    
XhmikosR committed
1550
1551
      }
    };
Mark Otto's avatar
dist  
Mark Otto committed
1552

XhmikosR's avatar
Dist    
XhmikosR committed
1553
1554
    _proto._slide = function _slide(direction, element) {
      var _this4 = this;
Mark Otto's avatar
dist  
Mark Otto committed
1555

XhmikosR's avatar
XhmikosR committed
1556
      var activeElement = SelectorEngine.findOne(SELECTOR_ACTIVE_ITEM, this._element);
Mark Otto's avatar
dist  
Mark Otto committed
1557

XhmikosR's avatar
Dist    
XhmikosR committed
1558
      var activeElementIndex = this._getItemIndex(activeElement);
Mark Otto's avatar
dist    
Mark Otto committed
1559

XhmikosR's avatar
Dist    
XhmikosR committed
1560
      var nextElement = element || activeElement && this._getItemByDirection(direction, activeElement);
Mark Otto's avatar
dist    
Mark Otto committed
1561

XhmikosR's avatar
Dist    
XhmikosR committed
1562
      var nextElementIndex = this._getItemIndex(nextElement);
Mark Otto's avatar
dist  
Mark Otto committed
1563

XhmikosR's avatar
Dist    
XhmikosR committed
1564
1565
1566
1567
      var isCycling = Boolean(this._interval);
      var directionalClassName;
      var orderClassName;
      var eventDirectionName;
Mark Otto's avatar
dist  
Mark Otto committed
1568

XhmikosR's avatar
XhmikosR committed
1569
1570
1571
1572
      if (direction === DIRECTION_NEXT) {
        directionalClassName = CLASS_NAME_LEFT;
        orderClassName = CLASS_NAME_NEXT;
        eventDirectionName = DIRECTION_LEFT;
XhmikosR's avatar
Dist    
XhmikosR committed
1573
      } else {
XhmikosR's avatar
XhmikosR committed
1574
1575
1576
        directionalClassName = CLASS_NAME_RIGHT;
        orderClassName = CLASS_NAME_PREV;
        eventDirectionName = DIRECTION_RIGHT;
XhmikosR's avatar
Dist    
XhmikosR committed
1577
      }
Mark Otto's avatar
dist  
Mark Otto committed
1578

XhmikosR's avatar
XhmikosR committed
1579
      if (nextElement && nextElement.classList.contains(CLASS_NAME_ACTIVE$1)) {
XhmikosR's avatar
Dist    
XhmikosR committed
1580
1581
1582
        this._isSliding = false;
        return;
      }
Mark Otto's avatar
dist    
Mark Otto committed
1583

XhmikosR's avatar
Dist    
XhmikosR committed
1584
      var slideEvent = this._triggerSlideEvent(nextElement, eventDirectionName);
Mark Otto's avatar
dist  
Mark Otto committed
1585

XhmikosR's avatar
XhmikosR committed
1586
      if (slideEvent.defaultPrevented) {
XhmikosR's avatar
Dist    
XhmikosR committed
1587
1588
        return;
      }
Mark Otto's avatar
dist  
Mark Otto committed
1589

XhmikosR's avatar
Dist    
XhmikosR committed
1590
1591
1592
1593
      if (!activeElement || !nextElement) {
        // Some weirdness is happening, so we bail
        return;
      }
Mark Otto's avatar
dist  
Mark Otto committed
1594

XhmikosR's avatar
Dist    
XhmikosR committed
1595
      this._isSliding = true;
Mark Otto's avatar
dist    
Mark Otto committed
1596

XhmikosR's avatar
Dist    
XhmikosR committed
1597
1598
1599
      if (isCycling) {
        this.pause();
      }
Mark Otto's avatar
dist  
Mark Otto committed
1600

XhmikosR's avatar
Dist    
XhmikosR committed
1601
      this._setActiveIndicatorElement(nextElement);
Mark Otto's avatar
dist    
Mark Otto committed
1602

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

        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;
Mark Otto's avatar
dist  
Mark Otto committed
1615
1616
        }

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

      if (isCycling) {
        this.cycle();
      }
Mark Otto's avatar
Mark Otto committed
1648
1649
    } // Static
    ;
Mark Otto's avatar
dist  
Mark Otto committed
1650

XhmikosR's avatar
XhmikosR committed
1651
    Carousel.carouselInterface = function carouselInterface(element, config) {
XhmikosR's avatar
XhmikosR committed
1652
      var data = Data.getData(element, DATA_KEY$2);
Mark Otto's avatar
dist  
Mark Otto committed
1653

XhmikosR's avatar
XhmikosR committed
1654
      var _config = _objectSpread2(_objectSpread2({}, Default), Manipulator.getDataAttributes(element));
Mark Otto's avatar
dist  
Mark Otto committed
1655

XhmikosR's avatar
XhmikosR committed
1656
      if (typeof config === 'object') {
XhmikosR's avatar
XhmikosR committed
1657
        _config = _objectSpread2(_objectSpread2({}, _config), config);
XhmikosR's avatar
XhmikosR committed
1658
      }
Mark Otto's avatar
dist  
Mark Otto committed
1659

XhmikosR's avatar
XhmikosR committed
1660
      var action = typeof config === 'string' ? config : _config.slide;
Mark Otto's avatar
dist  
Mark Otto committed
1661

XhmikosR's avatar
XhmikosR committed
1662
1663
1664
1665
1666
1667
1668
1669
      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
Dist.    
XhmikosR committed
1670
          throw new TypeError("No method named \"" + action + "\"");
Mark Otto's avatar
dist    
Mark Otto committed
1671
        }
Mark Otto's avatar
dist  
Mark Otto committed
1672

XhmikosR's avatar
XhmikosR committed
1673
1674
1675
1676
1677
1678
        data[action]();
      } else if (_config.interval && _config.ride) {
        data.pause();
        data.cycle();
      }
    };
Mark Otto's avatar
dist  
Mark Otto committed
1679

XhmikosR's avatar
XhmikosR committed
1680
    Carousel.jQueryInterface = function jQueryInterface(config) {
XhmikosR's avatar
XhmikosR committed
1681
      return this.each(function () {
XhmikosR's avatar
XhmikosR committed
1682
        Carousel.carouselInterface(this, config);
XhmikosR's avatar
Dist    
XhmikosR committed
1683
1684
      });
    };
Mark Otto's avatar
dist  
Mark Otto committed
1685

XhmikosR's avatar
XhmikosR committed
1686
1687
    Carousel.dataApiClickHandler = function dataApiClickHandler(event) {
      var target = getElementFromSelector(this);
XhmikosR's avatar
Dist    
XhmikosR committed
1688

XhmikosR's avatar
XhmikosR committed
1689
      if (!target || !target.classList.contains(CLASS_NAME_CAROUSEL)) {
XhmikosR's avatar
Dist    
XhmikosR committed
1690
1691
        return;
      }
Mark Otto's avatar
dist  
Mark Otto committed
1692

XhmikosR's avatar
XhmikosR committed
1693
      var config = _objectSpread2(_objectSpread2({}, Manipulator.getDataAttributes(target)), Manipulator.getDataAttributes(this));
Mark Otto's avatar
dist    
Mark Otto committed
1694

XhmikosR's avatar
Dist    
XhmikosR committed
1695
      var slideIndex = this.getAttribute('data-slide-to');
Mark Otto's avatar
dist    
Mark Otto committed
1696

XhmikosR's avatar
Dist    
XhmikosR committed
1697
1698
      if (slideIndex) {
        config.interval = false;
Mark Otto's avatar
dist    
Mark Otto committed
1699
      }
Mark Otto's avatar
dist    
Mark Otto committed
1700

XhmikosR's avatar
XhmikosR committed
1701
      Carousel.carouselInterface(target, config);
Mark Otto's avatar
dist  
Mark Otto committed
1702

XhmikosR's avatar
Dist    
XhmikosR committed
1703
      if (slideIndex) {
XhmikosR's avatar
XhmikosR committed
1704
        Data.getData(target, DATA_KEY$2).to(slideIndex);
XhmikosR's avatar
Dist    
XhmikosR committed
1705
1706
1707
      }

      event.preventDefault();
Mark Otto's avatar
dist    
Mark Otto committed
1708
    };
Mark Otto's avatar
dist  
Mark Otto committed
1709

XhmikosR's avatar
XhmikosR committed
1710
    Carousel.getInstance = function getInstance(element) {
XhmikosR's avatar
XhmikosR committed
1711
1712
1713
      return Data.getData(element, DATA_KEY$2);
    };

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

Mark Otto's avatar
dist    
Mark Otto committed
1726
    return Carousel;
XhmikosR's avatar
Dist    
XhmikosR committed
1727
1728
1729
1730
1731
1732
1733
1734
  }();
  /**
   * ------------------------------------------------------------------------
   * Data Api implementation
   * ------------------------------------------------------------------------
   */


XhmikosR's avatar
XhmikosR committed
1735
1736
1737
  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
1738
1739

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

1751
1752
  /* istanbul ignore if */

XhmikosR's avatar
XhmikosR committed
1753
1754
1755
1756
  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
1757

XhmikosR's avatar
XhmikosR committed
1758
1759
1760
    $$3.fn[NAME$2].noConflict = function () {
      $$3.fn[NAME$2] = JQUERY_NO_CONFLICT$2;
      return Carousel.jQueryInterface;
XhmikosR's avatar
XhmikosR committed
1761
1762
    };
  }
Mark Otto's avatar
dist  
Mark Otto committed
1763

XhmikosR's avatar
Dist    
XhmikosR committed
1764
1765
1766
1767
1768
  /**
   * ------------------------------------------------------------------------
   * Constants
   * ------------------------------------------------------------------------
   */
Mark Otto's avatar
dist  
Mark Otto committed
1769

XhmikosR's avatar
Dist    
XhmikosR committed
1770
  var NAME$3 = 'collapse';
1771
  var VERSION$3 = '5.0.0-alpha1';
XhmikosR's avatar
Dist    
XhmikosR committed
1772
1773
1774
1775
1776
1777
1778
1779
1780
1781
1782
  var DATA_KEY$3 = 'bs.collapse';
  var EVENT_KEY$3 = "." + DATA_KEY$3;
  var DATA_API_KEY$3 = '.data-api';
  var Default$1 = {
    toggle: true,
    parent: ''
  };
  var DefaultType$1 = {
    toggle: 'boolean',
    parent: '(string|element)'
  };
XhmikosR's avatar
XhmikosR committed
1783
1784
1785
1786
1787
1788
1789
1790
1791
1792
1793
1794
1795
  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
1796
1797
1798
1799
1800
  /**
   * ------------------------------------------------------------------------
   * Class Definition
   * ------------------------------------------------------------------------
   */
Mark Otto's avatar
dist    
Mark Otto committed
1801

XhmikosR's avatar
XhmikosR committed
1802
  var Collapse = /*#__PURE__*/function () {
XhmikosR's avatar
Dist    
XhmikosR committed
1803
1804
1805
1806
    function Collapse(element, config) {
      this._isTransitioning = false;
      this._element = element;
      this._config = this._getConfig(config);
XhmikosR's avatar
XhmikosR committed
1807
1808
      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
Dist    
XhmikosR committed
1809
1810
1811

      for (var i = 0, len = toggleList.length; i < len; i++) {
        var elem = toggleList[i];
XhmikosR's avatar
XhmikosR committed
1812
        var selector = getSelectorFromElement(elem);
XhmikosR's avatar
XhmikosR committed
1813
        var filterElement = SelectorEngine.find(selector).filter(function (foundElem) {
XhmikosR's avatar
Dist    
XhmikosR committed
1814
1815
          return foundElem === element;
        });
Mark Otto's avatar
dist  
Mark Otto committed
1816

XhmikosR's avatar
XhmikosR committed
1817
        if (selector !== null && filterElement.length) {
XhmikosR's avatar
Dist    
XhmikosR committed
1818
          this._selector = selector;
Mark Otto's avatar
dist  
Mark Otto committed
1819

XhmikosR's avatar
Dist    
XhmikosR committed
1820
          this._triggerArray.push(elem);
Mark Otto's avatar
dist    
Mark Otto committed
1821
        }
XhmikosR's avatar
Dist    
XhmikosR committed
1822
      }
Mark Otto's avatar
dist  
Mark Otto committed
1823

XhmikosR's avatar
Dist    
XhmikosR committed
1824
      this._parent = this._config.parent ? this._getParent() : null;
Mark Otto's avatar
dist  
Mark Otto committed
1825

XhmikosR's avatar
Dist    
XhmikosR committed
1826
1827
1828
      if (!this._config.parent) {
        this._addAriaAndCollapsedClass(this._element, this._triggerArray);
      }
Mark Otto's avatar
dist  
Mark Otto committed
1829

XhmikosR's avatar
Dist    
XhmikosR committed
1830
1831
1832
      if (this._config.toggle) {
        this.toggle();
      }
XhmikosR's avatar
XhmikosR committed
1833
1834

      Data.setData(element, DATA_KEY$3, this);
XhmikosR's avatar
Dist    
XhmikosR committed
1835
    } // Getters
Mark Otto's avatar
dist  
Mark Otto committed
1836
1837


XhmikosR's avatar
Dist    
XhmikosR committed
1838
    var _proto = Collapse.prototype;
Mark Otto's avatar
dist  
Mark Otto committed
1839

XhmikosR's avatar
Dist    
XhmikosR committed
1840
1841
    // Public
    _proto.toggle = function toggle() {
XhmikosR's avatar
XhmikosR committed
1842
      if (this._element.classList.contains(CLASS_NAME_SHOW)) {
XhmikosR's avatar
Dist    
XhmikosR committed
1843
1844
1845
1846
1847
        this.hide();
      } else {
        this.show();
      }
    };
Mark Otto's avatar
dist  
Mark Otto committed
1848

XhmikosR's avatar
Dist    
XhmikosR committed
1849
1850
    _proto.show = function show() {
      var _this = this;
Mark Otto's avatar
dist  
Mark Otto committed
1851

XhmikosR's avatar
XhmikosR committed
1852
      if (this._isTransitioning || this._element.classList.contains(CLASS_NAME_SHOW)) {
XhmikosR's avatar
Dist    
XhmikosR committed
1853
1854
        return;
      }
Mark Otto's avatar
dist    
Mark Otto committed
1855

XhmikosR's avatar
Dist    
XhmikosR committed
1856
1857
      var actives;
      var activesData;
Mark Otto's avatar
dist    
Mark Otto committed
1858

XhmikosR's avatar
Dist    
XhmikosR committed
1859
      if (this._parent) {
XhmikosR's avatar
XhmikosR committed
1860
        actives = SelectorEngine.find(SELECTOR_ACTIVES, this._parent).filter(function (elem) {
XhmikosR's avatar
Dist    
XhmikosR committed
1861
1862
          if (typeof _this._config.parent === 'string') {
            return elem.getAttribute('data-parent') === _this._config.parent;
Mark Otto's avatar
dist    
Mark Otto committed
1863
          }
Mark Otto's avatar
dist  
Mark Otto committed
1864

XhmikosR's avatar
XhmikosR committed
1865
          return elem.classList.contains(CLASS_NAME_COLLAPSE);
XhmikosR's avatar
Dist    
XhmikosR committed
1866
        });
Mark Otto's avatar
dist    
Mark Otto committed
1867

XhmikosR's avatar
Dist    
XhmikosR committed
1868
1869
        if (actives.length === 0) {
          actives = null;
Mark Otto's avatar
dist  
Mark Otto committed
1870
        }
XhmikosR's avatar
Dist    
XhmikosR committed
1871
      }
Mark Otto's avatar
dist  
Mark Otto committed
1872

XhmikosR's avatar
XhmikosR committed
1873
1874
      var container = SelectorEngine.findOne(this._selector);

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

XhmikosR's avatar
Dist    
XhmikosR committed
1881
        if (activesData && activesData._isTransitioning) {
Mark Otto's avatar
dist    
Mark Otto committed
1882
1883
          return;
        }
XhmikosR's avatar
Dist    
XhmikosR committed
1884
      }
Mark Otto's avatar
dist  
Mark Otto committed
1885

XhmikosR's avatar
XhmikosR committed
1886
      var startEvent = EventHandler.trigger(this._element, EVENT_SHOW);
Mark Otto's avatar
dist  
Mark Otto committed
1887

XhmikosR's avatar
XhmikosR committed
1888
      if (startEvent.defaultPrevented) {
XhmikosR's avatar
Dist    
XhmikosR committed
1889
1890
        return;
      }
Mark Otto's avatar
dist  
Mark Otto committed
1891

XhmikosR's avatar
Dist    
XhmikosR committed
1892
      if (actives) {
XhmikosR's avatar
XhmikosR committed
1893
1894
        actives.forEach(function (elemActive) {
          if (container !== elemActive) {
XhmikosR's avatar
XhmikosR committed
1895
            Collapse.collapseInterface(elemActive, 'hide');
XhmikosR's avatar
XhmikosR committed
1896
          }
Mark Otto's avatar
dist  
Mark Otto committed
1897

XhmikosR's avatar
XhmikosR committed
1898
1899
1900
1901
          if (!activesData) {
            Data.setData(elemActive, DATA_KEY$3, null);
          }
        });
XhmikosR's avatar
Dist    
XhmikosR committed
1902
      }
Mark Otto's avatar
dist  
Mark Otto committed
1903

XhmikosR's avatar
Dist    
XhmikosR committed
1904
      var dimension = this._getDimension();
Mark Otto's avatar
dist  
Mark Otto committed
1905

XhmikosR's avatar
XhmikosR committed
1906
      this._element.classList.remove(CLASS_NAME_COLLAPSE);
XhmikosR's avatar
XhmikosR committed
1907

XhmikosR's avatar
XhmikosR committed
1908
      this._element.classList.add(CLASS_NAME_COLLAPSING);
XhmikosR's avatar
XhmikosR committed
1909

XhmikosR's avatar
Dist    
XhmikosR committed
1910
      this._element.style[dimension] = 0;
Mark Otto's avatar
dist  
Mark Otto committed
1911

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

XhmikosR's avatar
Dist    
XhmikosR committed
1919
      this.setTransitioning(true);
Mark Otto's avatar
dist  
Mark Otto committed
1920

XhmikosR's avatar
Dist    
XhmikosR committed
1921
      var complete = function complete() {
XhmikosR's avatar
XhmikosR committed
1922
        _this._element.classList.remove(CLASS_NAME_COLLAPSING);
XhmikosR's avatar
XhmikosR committed
1923

XhmikosR's avatar
XhmikosR committed
1924
        _this._element.classList.add(CLASS_NAME_COLLAPSE, CLASS_NAME_SHOW);
XhmikosR's avatar
XhmikosR committed
1925

XhmikosR's avatar
Dist    
XhmikosR committed
1926
1927
1928
1929
        _this._element.style[dimension] = '';

        _this.setTransitioning(false);

XhmikosR's avatar
XhmikosR committed
1930
        EventHandler.trigger(_this._element, EVENT_SHOWN);
Mark Otto's avatar
dist    
Mark Otto committed
1931
      };
Mark Otto's avatar
dist  
Mark Otto committed
1932

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

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

XhmikosR's avatar
XhmikosR committed
1944
      if (this._isTransitioning || !this._element.classList.contains(CLASS_NAME_SHOW)) {
XhmikosR's avatar
Dist    
XhmikosR committed
1945
1946
        return;
      }
Mark Otto's avatar
dist  
Mark Otto committed
1947

XhmikosR's avatar
XhmikosR committed
1948
      var startEvent = EventHandler.trigger(this._element, EVENT_HIDE);
Mark Otto's avatar
dist    
Mark Otto committed
1949

XhmikosR's avatar
XhmikosR committed
1950
      if (startEvent.defaultPrevented) {
XhmikosR's avatar
Dist    
XhmikosR committed
1951
1952
        return;
      }
Mark Otto's avatar
dist  
Mark Otto committed
1953

XhmikosR's avatar
Dist    
XhmikosR committed
1954
      var dimension = this._getDimension();
Mark Otto's avatar
dist  
Mark Otto committed
1955

XhmikosR's avatar
Dist    
XhmikosR committed
1956
      this._element.style[dimension] = this._element.getBoundingClientRect()[dimension] + "px";
XhmikosR's avatar
XhmikosR committed
1957
1958
      reflow(this._element);

XhmikosR's avatar
XhmikosR committed
1959
      this._element.classList.add(CLASS_NAME_COLLAPSING);
XhmikosR's avatar
XhmikosR committed
1960

XhmikosR's avatar
XhmikosR committed
1961
      this._element.classList.remove(CLASS_NAME_COLLAPSE, CLASS_NAME_SHOW);
XhmikosR's avatar
XhmikosR committed
1962

XhmikosR's avatar
Dist    
XhmikosR committed
1963
      var triggerArrayLength = this._triggerArray.length;
Mark Otto's avatar
dist  
Mark Otto committed
1964

XhmikosR's avatar
Dist    
XhmikosR committed
1965
1966
1967
      if (triggerArrayLength > 0) {
        for (var i = 0; i < triggerArrayLength; i++) {
          var trigger = this._triggerArray[i];
XhmikosR's avatar
XhmikosR committed
1968
          var elem = getElementFromSelector(trigger);
Mark Otto's avatar
dist    
Mark Otto committed
1969

XhmikosR's avatar
XhmikosR committed
1970
1971
          if (elem && !elem.classList.contains(CLASS_NAME_SHOW)) {
            trigger.classList.add(CLASS_NAME_COLLAPSED);
XhmikosR's avatar
XhmikosR committed
1972
            trigger.setAttribute('aria-expanded', false);
Mark Otto's avatar
dist  
Mark Otto committed
1973
1974
          }
        }
XhmikosR's avatar
Dist    
XhmikosR committed
1975
      }
Mark Otto's avatar
dist  
Mark Otto committed
1976

XhmikosR's avatar
Dist    
XhmikosR committed
1977
      this.setTransitioning(true);
Mark Otto's avatar
dist  
Mark Otto committed
1978

XhmikosR's avatar
Dist    
XhmikosR committed
1979
1980
      var complete = function complete() {
        _this2.setTransitioning(false);
Mark Otto's avatar
dist  
Mark Otto committed
1981

XhmikosR's avatar
XhmikosR committed
1982
        _this2._element.classList.remove(CLASS_NAME_COLLAPSING);
XhmikosR's avatar
XhmikosR committed
1983

XhmikosR's avatar
XhmikosR committed
1984
        _this2._element.classList.add(CLASS_NAME_COLLAPSE);
XhmikosR's avatar
XhmikosR committed
1985

XhmikosR's avatar
XhmikosR committed
1986
        EventHandler.trigger(_this2._element, EVENT_HIDDEN);
Mark Otto's avatar
dist    
Mark Otto committed
1987
      };
Mark Otto's avatar
dist  
Mark Otto committed
1988

XhmikosR's avatar
Dist    
XhmikosR committed
1989
      this._element.style[dimension] = '';
XhmikosR's avatar
XhmikosR committed
1990
1991
1992
      var transitionDuration = getTransitionDurationFromElement(this._element);
      EventHandler.one(this._element, TRANSITION_END, complete);
      emulateTransitionEnd(this._element, transitionDuration);
XhmikosR's avatar
Dist    
XhmikosR committed
1993
    };
Mark Otto's avatar
dist  
Mark Otto committed
1994

XhmikosR's avatar
Dist    
XhmikosR committed
1995
1996
1997
    _proto.setTransitioning = function setTransitioning(isTransitioning) {
      this._isTransitioning = isTransitioning;
    };
Mark Otto's avatar
dist  
Mark Otto committed
1998

XhmikosR's avatar
Dist    
XhmikosR committed
1999
    _proto.dispose = function dispose() {
XhmikosR's avatar
XhmikosR committed
2000
      Data.removeData(this._element, DATA_KEY$3);
For faster browsing, not all history is shown. View entire blame