bootstrap.js 113 KB
Newer Older
Mark Otto's avatar
grunt    
Mark Otto committed
1001
1002
1003
1004
   * ------------------------------------------------------------------------
   * Data Api implementation
   * ------------------------------------------------------------------------
   */
Jacob Thornton's avatar
Jacob Thornton committed
1005
1006


Mark Otto's avatar
dist    
Mark Otto committed
1007
1008
1009
1010
  $$$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
1011

Jacob Thornton's avatar
Jacob Thornton committed
1012
1013
      Carousel._jQueryInterface.call($carousel, $carousel.data());
    });
Mark Otto's avatar
Mark Otto committed
1014
  });
Jacob Thornton's avatar
Jacob Thornton committed
1015
1016
1017
1018
1019
1020
  /**
   * ------------------------------------------------------------------------
   * jQuery
   * ------------------------------------------------------------------------
   */

Mark Otto's avatar
dist    
Mark Otto committed
1021
1022
  $$$1.fn[NAME] = Carousel._jQueryInterface;
  $$$1.fn[NAME].Constructor = Carousel;
Mark Otto's avatar
dist    
Mark Otto committed
1023

Mark Otto's avatar
dist    
Mark Otto committed
1024
1025
  $$$1.fn[NAME].noConflict = function () {
    $$$1.fn[NAME] = JQUERY_NO_CONFLICT;
Jacob Thornton's avatar
Jacob Thornton committed
1026
1027
1028
1029
    return Carousel._jQueryInterface;
  };

  return Carousel;
Mark Otto's avatar
dist    
Mark Otto committed
1030
}($);
Jacob Thornton's avatar
Jacob Thornton committed
1031
1032
1033

/**
 * --------------------------------------------------------------------------
Mark Otto's avatar
Mark Otto committed
1034
 * Bootstrap (v4.0.0): collapse.js
Jacob Thornton's avatar
Jacob Thornton committed
1035
1036
1037
1038
 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
 * --------------------------------------------------------------------------
 */

Mark Otto's avatar
dist    
Mark Otto committed
1039
var Collapse = function ($$$1) {
Jacob Thornton's avatar
Jacob Thornton committed
1040
1041
1042
1043
1044
1045
  /**
   * ------------------------------------------------------------------------
   * Constants
   * ------------------------------------------------------------------------
   */
  var NAME = 'collapse';
Mark Otto's avatar
Mark Otto committed
1046
  var VERSION = '4.0.0';
Jacob Thornton's avatar
Jacob Thornton committed
1047
  var DATA_KEY = 'bs.collapse';
Mark Otto's avatar
dist    
Mark Otto committed
1048
  var EVENT_KEY = "." + DATA_KEY;
Jacob Thornton's avatar
Jacob Thornton committed
1049
  var DATA_API_KEY = '.data-api';
Mark Otto's avatar
dist    
Mark Otto committed
1050
  var JQUERY_NO_CONFLICT = $$$1.fn[NAME];
Jacob Thornton's avatar
Jacob Thornton committed
1051
1052
1053
1054
1055
1056
1057
  var TRANSITION_DURATION = 600;
  var Default = {
    toggle: true,
    parent: ''
  };
  var DefaultType = {
    toggle: 'boolean',
Mark Otto's avatar
dist    
Mark Otto committed
1058
    parent: '(string|element)'
Jacob Thornton's avatar
Jacob Thornton committed
1059
1060
  };
  var Event = {
Mark Otto's avatar
dist    
Mark Otto committed
1061
1062
1063
1064
1065
    SHOW: "show" + EVENT_KEY,
    SHOWN: "shown" + EVENT_KEY,
    HIDE: "hide" + EVENT_KEY,
    HIDDEN: "hidden" + EVENT_KEY,
    CLICK_DATA_API: "click" + EVENT_KEY + DATA_API_KEY
Jacob Thornton's avatar
Jacob Thornton committed
1066
1067
  };
  var ClassName = {
Mark Otto's avatar
grunt    
Mark Otto committed
1068
    SHOW: 'show',
Jacob Thornton's avatar
Jacob Thornton committed
1069
1070
1071
1072
1073
1074
1075
1076
1077
    COLLAPSE: 'collapse',
    COLLAPSING: 'collapsing',
    COLLAPSED: 'collapsed'
  };
  var Dimension = {
    WIDTH: 'width',
    HEIGHT: 'height'
  };
  var Selector = {
Johann-S's avatar
build    
Johann-S committed
1078
1079
    ACTIVES: '.show, .collapsing',
    DATA_TOGGLE: '[data-toggle="collapse"]'
Mark Otto's avatar
dist    
Mark Otto committed
1080
1081
1082
1083
1084
    /**
     * ------------------------------------------------------------------------
     * Class Definition
     * ------------------------------------------------------------------------
     */
Jacob Thornton's avatar
Jacob Thornton committed
1085

Mark Otto's avatar
dist    
Mark Otto committed
1086
  };
Jacob Thornton's avatar
Jacob Thornton committed
1087

Mark Otto's avatar
dist    
Mark Otto committed
1088
1089
1090
1091
  var Collapse =
  /*#__PURE__*/
  function () {
    function Collapse(element, config) {
Jacob Thornton's avatar
Jacob Thornton committed
1092
1093
1094
      this._isTransitioning = false;
      this._element = element;
      this._config = this._getConfig(config);
Mark Otto's avatar
dist    
Mark Otto committed
1095
1096
      this._triggerArray = $$$1.makeArray($$$1("[data-toggle=\"collapse\"][href=\"#" + element.id + "\"]," + ("[data-toggle=\"collapse\"][data-target=\"#" + element.id + "\"]")));
      var tabToggles = $$$1(Selector.DATA_TOGGLE);
Mark Otto's avatar
dist    
Mark Otto committed
1097

Mark Otto's avatar
build    
Mark Otto committed
1098
1099
1100
      for (var i = 0; i < tabToggles.length; i++) {
        var elem = tabToggles[i];
        var selector = Util.getSelectorFromElement(elem);
Mark Otto's avatar
dist    
Mark Otto committed
1101

Mark Otto's avatar
dist    
Mark Otto committed
1102
        if (selector !== null && $$$1(selector).filter(element).length > 0) {
Mark Otto's avatar
dist    
Mark Otto committed
1103
1104
          this._selector = selector;

Mark Otto's avatar
build    
Mark Otto committed
1105
1106
1107
          this._triggerArray.push(elem);
        }
      }
Johann-S's avatar
build    
Johann-S committed
1108

Jacob Thornton's avatar
Jacob Thornton committed
1109
1110
1111
1112
1113
1114
1115
1116
1117
      this._parent = this._config.parent ? this._getParent() : null;

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

      if (this._config.toggle) {
        this.toggle();
      }
Mark Otto's avatar
dist    
Mark Otto committed
1118
    } // Getters
Jacob Thornton's avatar
Jacob Thornton committed
1119
1120


Mark Otto's avatar
dist    
Mark Otto committed
1121
    var _proto = Collapse.prototype;
Jacob Thornton's avatar
Jacob Thornton committed
1122

Mark Otto's avatar
dist    
Mark Otto committed
1123
    // Public
Mark Otto's avatar
dist    
Mark Otto committed
1124
    _proto.toggle = function toggle() {
Mark Otto's avatar
dist    
Mark Otto committed
1125
      if ($$$1(this._element).hasClass(ClassName.SHOW)) {
Mark Otto's avatar
grunt    
Mark Otto committed
1126
1127
1128
        this.hide();
      } else {
        this.show();
Jacob Thornton's avatar
Jacob Thornton committed
1129
      }
Mark Otto's avatar
grunt    
Mark Otto committed
1130
    };
Jacob Thornton's avatar
Jacob Thornton committed
1131

Mark Otto's avatar
dist    
Mark Otto committed
1132
    _proto.show = function show() {
Mark Otto's avatar
dist    
Mark Otto committed
1133
      var _this = this;
Jacob Thornton's avatar
Jacob Thornton committed
1134

Mark Otto's avatar
dist    
Mark Otto committed
1135
      if (this._isTransitioning || $$$1(this._element).hasClass(ClassName.SHOW)) {
Mark Otto's avatar
grunt    
Mark Otto committed
1136
1137
        return;
      }
Jacob Thornton's avatar
Jacob Thornton committed
1138

Mark Otto's avatar
dist    
Mark Otto committed
1139
1140
      var actives;
      var activesData;
Jacob Thornton's avatar
Jacob Thornton committed
1141

Mark Otto's avatar
grunt    
Mark Otto committed
1142
      if (this._parent) {
Mark Otto's avatar
dist    
Mark Otto committed
1143
        actives = $$$1.makeArray($$$1(this._parent).find(Selector.ACTIVES).filter("[data-parent=\"" + this._config.parent + "\"]"));
Mark Otto's avatar
dist    
Mark Otto committed
1144

Mark Otto's avatar
dist    
Mark Otto committed
1145
        if (actives.length === 0) {
Mark Otto's avatar
grunt    
Mark Otto committed
1146
          actives = null;
Jacob Thornton's avatar
Jacob Thornton committed
1147
        }
Mark Otto's avatar
grunt    
Mark Otto committed
1148
      }
Jacob Thornton's avatar
Jacob Thornton committed
1149

Mark Otto's avatar
grunt    
Mark Otto committed
1150
      if (actives) {
Mark Otto's avatar
dist    
Mark Otto committed
1151
        activesData = $$$1(actives).not(this._selector).data(DATA_KEY);
Mark Otto's avatar
dist    
Mark Otto committed
1152

Mark Otto's avatar
grunt    
Mark Otto committed
1153
        if (activesData && activesData._isTransitioning) {
Jacob Thornton's avatar
Jacob Thornton committed
1154
1155
          return;
        }
Mark Otto's avatar
grunt    
Mark Otto committed
1156
      }
Jacob Thornton's avatar
Jacob Thornton committed
1157

Mark Otto's avatar
dist    
Mark Otto committed
1158
1159
      var startEvent = $$$1.Event(Event.SHOW);
      $$$1(this._element).trigger(startEvent);
Mark Otto's avatar
dist    
Mark Otto committed
1160

Mark Otto's avatar
grunt    
Mark Otto committed
1161
1162
1163
1164
1165
      if (startEvent.isDefaultPrevented()) {
        return;
      }

      if (actives) {
Mark Otto's avatar
dist    
Mark Otto committed
1166
        Collapse._jQueryInterface.call($$$1(actives).not(this._selector), 'hide');
Mark Otto's avatar
dist    
Mark Otto committed
1167

Mark Otto's avatar
grunt    
Mark Otto committed
1168
        if (!activesData) {
Mark Otto's avatar
dist    
Mark Otto committed
1169
          $$$1(actives).data(DATA_KEY, null);
Jacob Thornton's avatar
Jacob Thornton committed
1170
        }
Mark Otto's avatar
grunt    
Mark Otto committed
1171
      }
Jacob Thornton's avatar
Jacob Thornton committed
1172

Mark Otto's avatar
grunt    
Mark Otto committed
1173
      var dimension = this._getDimension();
Jacob Thornton's avatar
Jacob Thornton committed
1174

Mark Otto's avatar
dist    
Mark Otto committed
1175
      $$$1(this._element).removeClass(ClassName.COLLAPSE).addClass(ClassName.COLLAPSING);
Mark Otto's avatar
grunt    
Mark Otto committed
1176
      this._element.style[dimension] = 0;
Jacob Thornton's avatar
Jacob Thornton committed
1177

Mark Otto's avatar
dist    
Mark Otto committed
1178
      if (this._triggerArray.length > 0) {
Mark Otto's avatar
dist    
Mark Otto committed
1179
        $$$1(this._triggerArray).removeClass(ClassName.COLLAPSED).attr('aria-expanded', true);
Mark Otto's avatar
grunt    
Mark Otto committed
1180
      }
Jacob Thornton's avatar
Jacob Thornton committed
1181

Mark Otto's avatar
grunt    
Mark Otto committed
1182
      this.setTransitioning(true);
Jacob Thornton's avatar
Jacob Thornton committed
1183

Mark Otto's avatar
grunt    
Mark Otto committed
1184
      var complete = function complete() {
Mark Otto's avatar
dist    
Mark Otto committed
1185
        $$$1(_this._element).removeClass(ClassName.COLLAPSING).addClass(ClassName.COLLAPSE).addClass(ClassName.SHOW);
Mark Otto's avatar
dist    
Mark Otto committed
1186
        _this._element.style[dimension] = '';
Jacob Thornton's avatar
Jacob Thornton committed
1187

Mark Otto's avatar
dist    
Mark Otto committed
1188
        _this.setTransitioning(false);
Jacob Thornton's avatar
Jacob Thornton committed
1189

Mark Otto's avatar
dist    
Mark Otto committed
1190
        $$$1(_this._element).trigger(Event.SHOWN);
Mark Otto's avatar
grunt    
Mark Otto committed
1191
      };
Jacob Thornton's avatar
Jacob Thornton committed
1192

Mark Otto's avatar
grunt    
Mark Otto committed
1193
1194
1195
1196
      if (!Util.supportsTransitionEnd()) {
        complete();
        return;
      }
Jacob Thornton's avatar
Jacob Thornton committed
1197

Mark Otto's avatar
grunt    
Mark Otto committed
1198
      var capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1);
Mark Otto's avatar
dist    
Mark Otto committed
1199
      var scrollSize = "scroll" + capitalizedDimension;
Mark Otto's avatar
dist    
Mark Otto committed
1200
      $$$1(this._element).one(Util.TRANSITION_END, complete).emulateTransitionEnd(TRANSITION_DURATION);
Mark Otto's avatar
dist    
Mark Otto committed
1201
      this._element.style[dimension] = this._element[scrollSize] + "px";
Mark Otto's avatar
grunt    
Mark Otto committed
1202
    };
Jacob Thornton's avatar
Jacob Thornton committed
1203

Mark Otto's avatar
dist    
Mark Otto committed
1204
    _proto.hide = function hide() {
Mark Otto's avatar
dist    
Mark Otto committed
1205
      var _this2 = this;
Jacob Thornton's avatar
Jacob Thornton committed
1206

Mark Otto's avatar
dist    
Mark Otto committed
1207
      if (this._isTransitioning || !$$$1(this._element).hasClass(ClassName.SHOW)) {
Mark Otto's avatar
grunt    
Mark Otto committed
1208
1209
        return;
      }
Jacob Thornton's avatar
Jacob Thornton committed
1210

Mark Otto's avatar
dist    
Mark Otto committed
1211
1212
      var startEvent = $$$1.Event(Event.HIDE);
      $$$1(this._element).trigger(startEvent);
Mark Otto's avatar
dist    
Mark Otto committed
1213

Mark Otto's avatar
grunt    
Mark Otto committed
1214
1215
1216
      if (startEvent.isDefaultPrevented()) {
        return;
      }
Jacob Thornton's avatar
Jacob Thornton committed
1217

Mark Otto's avatar
grunt    
Mark Otto committed
1218
      var dimension = this._getDimension();
Jacob Thornton's avatar
Jacob Thornton committed
1219

Mark Otto's avatar
dist    
Mark Otto committed
1220
      this._element.style[dimension] = this._element.getBoundingClientRect()[dimension] + "px";
Mark Otto's avatar
grunt    
Mark Otto committed
1221
      Util.reflow(this._element);
Mark Otto's avatar
dist    
Mark Otto committed
1222
      $$$1(this._element).addClass(ClassName.COLLAPSING).removeClass(ClassName.COLLAPSE).removeClass(ClassName.SHOW);
Jacob Thornton's avatar
Jacob Thornton committed
1223

Mark Otto's avatar
dist    
Mark Otto committed
1224
      if (this._triggerArray.length > 0) {
Mark Otto's avatar
build    
Mark Otto committed
1225
1226
1227
        for (var i = 0; i < this._triggerArray.length; i++) {
          var trigger = this._triggerArray[i];
          var selector = Util.getSelectorFromElement(trigger);
Mark Otto's avatar
dist    
Mark Otto committed
1228

Mark Otto's avatar
build    
Mark Otto committed
1229
          if (selector !== null) {
Mark Otto's avatar
dist    
Mark Otto committed
1230
            var $elem = $$$1(selector);
Mark Otto's avatar
dist    
Mark Otto committed
1231

Mark Otto's avatar
build    
Mark Otto committed
1232
            if (!$elem.hasClass(ClassName.SHOW)) {
Mark Otto's avatar
dist    
Mark Otto committed
1233
              $$$1(trigger).addClass(ClassName.COLLAPSED).attr('aria-expanded', false);
Mark Otto's avatar
build    
Mark Otto committed
1234
1235
1236
            }
          }
        }
Mark Otto's avatar
grunt    
Mark Otto committed
1237
      }
Jacob Thornton's avatar
Jacob Thornton committed
1238

Mark Otto's avatar
grunt    
Mark Otto committed
1239
      this.setTransitioning(true);
Jacob Thornton's avatar
Jacob Thornton committed
1240

Mark Otto's avatar
grunt    
Mark Otto committed
1241
      var complete = function complete() {
Mark Otto's avatar
dist    
Mark Otto committed
1242
        _this2.setTransitioning(false);
Mark Otto's avatar
dist    
Mark Otto committed
1243

Mark Otto's avatar
dist    
Mark Otto committed
1244
        $$$1(_this2._element).removeClass(ClassName.COLLAPSING).addClass(ClassName.COLLAPSE).trigger(Event.HIDDEN);
Mark Otto's avatar
grunt    
Mark Otto committed
1245
      };
Jacob Thornton's avatar
Jacob Thornton committed
1246

Mark Otto's avatar
grunt    
Mark Otto committed
1247
      this._element.style[dimension] = '';
Jacob Thornton's avatar
Jacob Thornton committed
1248

Mark Otto's avatar
grunt    
Mark Otto committed
1249
1250
1251
      if (!Util.supportsTransitionEnd()) {
        complete();
        return;
Jacob Thornton's avatar
Jacob Thornton committed
1252
1253
      }

Mark Otto's avatar
dist    
Mark Otto committed
1254
      $$$1(this._element).one(Util.TRANSITION_END, complete).emulateTransitionEnd(TRANSITION_DURATION);
Mark Otto's avatar
grunt    
Mark Otto committed
1255
    };
Jacob Thornton's avatar
Jacob Thornton committed
1256

Mark Otto's avatar
dist    
Mark Otto committed
1257
    _proto.setTransitioning = function setTransitioning(isTransitioning) {
Mark Otto's avatar
grunt    
Mark Otto committed
1258
1259
      this._isTransitioning = isTransitioning;
    };
Jacob Thornton's avatar
Jacob Thornton committed
1260

Mark Otto's avatar
dist    
Mark Otto committed
1261
    _proto.dispose = function dispose() {
Mark Otto's avatar
dist    
Mark Otto committed
1262
      $$$1.removeData(this._element, DATA_KEY);
Mark Otto's avatar
grunt    
Mark Otto committed
1263
1264
1265
1266
1267
      this._config = null;
      this._parent = null;
      this._element = null;
      this._triggerArray = null;
      this._isTransitioning = null;
Mark Otto's avatar
dist    
Mark Otto committed
1268
    }; // Private
Jacob Thornton's avatar
Jacob Thornton committed
1269
1270


Mark Otto's avatar
dist    
Mark Otto committed
1271
    _proto._getConfig = function _getConfig(config) {
Mark Otto's avatar
dist    
Mark Otto committed
1272
      config = _extends({}, Default, config);
Mark Otto's avatar
dist    
Mark Otto committed
1273
      config.toggle = Boolean(config.toggle); // Coerce string values
Mark Otto's avatar
dist    
Mark Otto committed
1274

Mark Otto's avatar
Mark Otto committed
1275
      Util.typeCheckConfig(NAME, config, DefaultType);
Mark Otto's avatar
grunt    
Mark Otto committed
1276
1277
1278
      return config;
    };

Mark Otto's avatar
dist    
Mark Otto committed
1279
    _proto._getDimension = function _getDimension() {
Mark Otto's avatar
dist    
Mark Otto committed
1280
      var hasWidth = $$$1(this._element).hasClass(Dimension.WIDTH);
Mark Otto's avatar
grunt    
Mark Otto committed
1281
1282
1283
      return hasWidth ? Dimension.WIDTH : Dimension.HEIGHT;
    };

Mark Otto's avatar
dist    
Mark Otto committed
1284
    _proto._getParent = function _getParent() {
Mark Otto's avatar
dist    
Mark Otto committed
1285
      var _this3 = this;
Mark Otto's avatar
grunt    
Mark Otto committed
1286

Mark Otto's avatar
dist    
Mark Otto committed
1287
      var parent = null;
Mark Otto's avatar
grunt    
Mark Otto committed
1288

Mark Otto's avatar
dist    
Mark Otto committed
1289
      if (Util.isElement(this._config.parent)) {
Mark Otto's avatar
dist    
Mark Otto committed
1290
        parent = this._config.parent; // It's a jQuery object
Mark Otto's avatar
dist    
Mark Otto committed
1291
1292
1293
1294
1295

        if (typeof this._config.parent.jquery !== 'undefined') {
          parent = this._config.parent[0];
        }
      } else {
Mark Otto's avatar
dist    
Mark Otto committed
1296
        parent = $$$1(this._config.parent)[0];
Mark Otto's avatar
dist    
Mark Otto committed
1297
1298
1299
      }

      var selector = "[data-toggle=\"collapse\"][data-parent=\"" + this._config.parent + "\"]";
Mark Otto's avatar
dist    
Mark Otto committed
1300
      $$$1(parent).find(selector).each(function (i, element) {
Mark Otto's avatar
dist    
Mark Otto committed
1301
        _this3._addAriaAndCollapsedClass(Collapse._getTargetFromElement(element), [element]);
Mark Otto's avatar
grunt    
Mark Otto committed
1302
1303
1304
1305
      });
      return parent;
    };

Mark Otto's avatar
dist    
Mark Otto committed
1306
    _proto._addAriaAndCollapsedClass = function _addAriaAndCollapsedClass(element, triggerArray) {
Mark Otto's avatar
grunt    
Mark Otto committed
1307
      if (element) {
Mark Otto's avatar
dist    
Mark Otto committed
1308
        var isOpen = $$$1(element).hasClass(ClassName.SHOW);
Mark Otto's avatar
grunt    
Mark Otto committed
1309

Mark Otto's avatar
dist    
Mark Otto committed
1310
        if (triggerArray.length > 0) {
Mark Otto's avatar
dist    
Mark Otto committed
1311
          $$$1(triggerArray).toggleClass(ClassName.COLLAPSED, !isOpen).attr('aria-expanded', isOpen);
Jacob Thornton's avatar
Jacob Thornton committed
1312
1313
        }
      }
Mark Otto's avatar
dist    
Mark Otto committed
1314
    }; // Static
Jacob Thornton's avatar
Jacob Thornton committed
1315
1316


Mark Otto's avatar
grunt    
Mark Otto committed
1317
1318
    Collapse._getTargetFromElement = function _getTargetFromElement(element) {
      var selector = Util.getSelectorFromElement(element);
Mark Otto's avatar
dist    
Mark Otto committed
1319
      return selector ? $$$1(selector)[0] : null;
Mark Otto's avatar
grunt    
Mark Otto committed
1320
    };
Jacob Thornton's avatar
Jacob Thornton committed
1321

Mark Otto's avatar
grunt    
Mark Otto committed
1322
1323
    Collapse._jQueryInterface = function _jQueryInterface(config) {
      return this.each(function () {
Mark Otto's avatar
dist    
Mark Otto committed
1324
        var $this = $$$1(this);
Mark Otto's avatar
grunt    
Mark Otto committed
1325
        var data = $this.data(DATA_KEY);
Mark Otto's avatar
dist    
Mark Otto committed
1326

Mark Otto's avatar
dist    
Mark Otto committed
1327
        var _config = _extends({}, Default, $this.data(), typeof config === 'object' && config);
Jacob Thornton's avatar
Jacob Thornton committed
1328

Mark Otto's avatar
grunt    
Mark Otto committed
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
        if (!data && _config.toggle && /show|hide/.test(config)) {
          _config.toggle = false;
        }

        if (!data) {
          data = new Collapse(this, _config);
          $this.data(DATA_KEY, data);
        }

        if (typeof config === 'string') {
Mark Otto's avatar
dist    
Mark Otto committed
1339
          if (typeof data[config] === 'undefined') {
Mark Otto's avatar
dist    
Mark Otto committed
1340
            throw new TypeError("No method named \"" + config + "\"");
Jacob Thornton's avatar
Jacob Thornton committed
1341
          }
Mark Otto's avatar
dist    
Mark Otto committed
1342

Mark Otto's avatar
grunt    
Mark Otto committed
1343
1344
1345
1346
1347
          data[config]();
        }
      });
    };

Mark Otto's avatar
Mark Otto committed
1348
    _createClass(Collapse, null, [{
Mark Otto's avatar
dist    
Mark Otto committed
1349
      key: "VERSION",
Jacob Thornton's avatar
Jacob Thornton committed
1350
1351
1352
1353
      get: function get() {
        return VERSION;
      }
    }, {
Mark Otto's avatar
dist    
Mark Otto committed
1354
      key: "Default",
Jacob Thornton's avatar
Jacob Thornton committed
1355
1356
1357
1358
1359
      get: function get() {
        return Default;
      }
    }]);
    return Collapse;
Mark Otto's avatar
grunt    
Mark Otto committed
1360
1361
1362
1363
1364
1365
  }();
  /**
   * ------------------------------------------------------------------------
   * Data Api implementation
   * ------------------------------------------------------------------------
   */
Jacob Thornton's avatar
Jacob Thornton committed
1366

Mark Otto's avatar
dist    
Mark Otto committed
1367

Mark Otto's avatar
dist    
Mark Otto committed
1368
  $$$1(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {
Mark Otto's avatar
dist    
Mark Otto committed
1369
    // preventDefault only for <a> elements (which change the URL) not inside the collapsible element
Mark Otto's avatar
dist    
Mark Otto committed
1370
    if (event.currentTarget.tagName === 'A') {
Mark Otto's avatar
grunt    
Mark Otto committed
1371
1372
      event.preventDefault();
    }
Jacob Thornton's avatar
Jacob Thornton committed
1373

Mark Otto's avatar
dist    
Mark Otto committed
1374
    var $trigger = $$$1(this);
Mark Otto's avatar
build    
Mark Otto committed
1375
    var selector = Util.getSelectorFromElement(this);
Mark Otto's avatar
dist    
Mark Otto committed
1376
1377
    $$$1(selector).each(function () {
      var $target = $$$1(this);
Mark Otto's avatar
build    
Mark Otto committed
1378
1379
      var data = $target.data(DATA_KEY);
      var config = data ? 'toggle' : $trigger.data();
Mark Otto's avatar
dist    
Mark Otto committed
1380

Mark Otto's avatar
build    
Mark Otto committed
1381
1382
      Collapse._jQueryInterface.call($target, config);
    });
Mark Otto's avatar
Mark Otto committed
1383
  });
Jacob Thornton's avatar
Jacob Thornton committed
1384
1385
1386
1387
1388
1389
  /**
   * ------------------------------------------------------------------------
   * jQuery
   * ------------------------------------------------------------------------
   */

Mark Otto's avatar
dist    
Mark Otto committed
1390
1391
  $$$1.fn[NAME] = Collapse._jQueryInterface;
  $$$1.fn[NAME].Constructor = Collapse;
Mark Otto's avatar
dist    
Mark Otto committed
1392

Mark Otto's avatar
dist    
Mark Otto committed
1393
1394
  $$$1.fn[NAME].noConflict = function () {
    $$$1.fn[NAME] = JQUERY_NO_CONFLICT;
Jacob Thornton's avatar
Jacob Thornton committed
1395
1396
1397
1398
    return Collapse._jQueryInterface;
  };

  return Collapse;
Mark Otto's avatar
dist    
Mark Otto committed
1399
}($);
Jacob Thornton's avatar
Jacob Thornton committed
1400
1401
1402

/**
 * --------------------------------------------------------------------------
Mark Otto's avatar
Mark Otto committed
1403
 * Bootstrap (v4.0.0): dropdown.js
Jacob Thornton's avatar
Jacob Thornton committed
1404
1405
1406
1407
 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
 * --------------------------------------------------------------------------
 */

Mark Otto's avatar
dist    
Mark Otto committed
1408
var Dropdown = function ($$$1) {
Jacob Thornton's avatar
Jacob Thornton committed
1409
1410
1411
1412
1413
1414
  /**
   * ------------------------------------------------------------------------
   * Constants
   * ------------------------------------------------------------------------
   */
  var NAME = 'dropdown';
Mark Otto's avatar
Mark Otto committed
1415
  var VERSION = '4.0.0';
Jacob Thornton's avatar
Jacob Thornton committed
1416
  var DATA_KEY = 'bs.dropdown';
Mark Otto's avatar
dist    
Mark Otto committed
1417
  var EVENT_KEY = "." + DATA_KEY;
Jacob Thornton's avatar
Jacob Thornton committed
1418
  var DATA_API_KEY = '.data-api';
Mark Otto's avatar
dist    
Mark Otto committed
1419
  var JQUERY_NO_CONFLICT = $$$1.fn[NAME];
Chris Rebert's avatar
grunt    
Chris Rebert committed
1420
  var ESCAPE_KEYCODE = 27; // KeyboardEvent.which value for Escape (Esc) key
Mark Otto's avatar
dist    
Mark Otto committed
1421

Mark Otto's avatar
grunt    
Mark Otto committed
1422
  var SPACE_KEYCODE = 32; // KeyboardEvent.which value for space key
Mark Otto's avatar
dist    
Mark Otto committed
1423

Mark Otto's avatar
grunt    
Mark Otto committed
1424
  var TAB_KEYCODE = 9; // KeyboardEvent.which value for tab key
Mark Otto's avatar
dist    
Mark Otto committed
1425

Chris Rebert's avatar
grunt    
Chris Rebert committed
1426
  var ARROW_UP_KEYCODE = 38; // KeyboardEvent.which value for up arrow key
Mark Otto's avatar
dist    
Mark Otto committed
1427

Chris Rebert's avatar
grunt    
Chris Rebert committed
1428
  var ARROW_DOWN_KEYCODE = 40; // KeyboardEvent.which value for down arrow key
Mark Otto's avatar
dist    
Mark Otto committed
1429

Chris Rebert's avatar
grunt    
Chris Rebert committed
1430
  var RIGHT_MOUSE_BUTTON_WHICH = 3; // MouseEvent.which value for the right button (assuming a right-handed mouse)
Jacob Thornton's avatar
Jacob Thornton committed
1431

Mark Otto's avatar
dist    
Mark Otto committed
1432
  var REGEXP_KEYDOWN = new RegExp(ARROW_UP_KEYCODE + "|" + ARROW_DOWN_KEYCODE + "|" + ESCAPE_KEYCODE);
Jacob Thornton's avatar
Jacob Thornton committed
1433
  var Event = {
Mark Otto's avatar
dist    
Mark Otto committed
1434
1435
1436
1437
1438
1439
1440
1441
    HIDE: "hide" + EVENT_KEY,
    HIDDEN: "hidden" + EVENT_KEY,
    SHOW: "show" + EVENT_KEY,
    SHOWN: "shown" + EVENT_KEY,
    CLICK: "click" + EVENT_KEY,
    CLICK_DATA_API: "click" + EVENT_KEY + DATA_API_KEY,
    KEYDOWN_DATA_API: "keydown" + EVENT_KEY + DATA_API_KEY,
    KEYUP_DATA_API: "keyup" + EVENT_KEY + DATA_API_KEY
Jacob Thornton's avatar
Jacob Thornton committed
1442
1443
1444
  };
  var ClassName = {
    DISABLED: 'disabled',
Mark Otto's avatar
build    
Mark Otto committed
1445
1446
    SHOW: 'show',
    DROPUP: 'dropup',
Mark Otto's avatar
dist    
Mark Otto committed
1447
1448
    DROPRIGHT: 'dropright',
    DROPLEFT: 'dropleft',
Mark Otto's avatar
build    
Mark Otto committed
1449
    MENURIGHT: 'dropdown-menu-right',
Mark Otto's avatar
dist    
Mark Otto committed
1450
1451
    MENULEFT: 'dropdown-menu-left',
    POSITION_STATIC: 'position-static'
Jacob Thornton's avatar
Jacob Thornton committed
1452
1453
1454
1455
  };
  var Selector = {
    DATA_TOGGLE: '[data-toggle="dropdown"]',
    FORM_CHILD: '.dropdown form',
Mark Otto's avatar
grunt    
Mark Otto committed
1456
    MENU: '.dropdown-menu',
Jacob Thornton's avatar
Jacob Thornton committed
1457
    NAVBAR_NAV: '.navbar-nav',
Mark Otto's avatar
grunt    
Mark Otto committed
1458
    VISIBLE_ITEMS: '.dropdown-menu .dropdown-item:not(.disabled)'
Jacob Thornton's avatar
Jacob Thornton committed
1459
  };
Johann-S's avatar
build    
Johann-S committed
1460
1461
  var AttachmentMap = {
    TOP: 'top-start',
Mark Otto's avatar
build    
Mark Otto committed
1462
1463
    TOPEND: 'top-end',
    BOTTOM: 'bottom-start',
Mark Otto's avatar
dist    
Mark Otto committed
1464
1465
1466
1467
1468
    BOTTOMEND: 'bottom-end',
    RIGHT: 'right-start',
    RIGHTEND: 'right-end',
    LEFT: 'left-start',
    LEFTEND: 'left-end'
Johann-S's avatar
build    
Johann-S committed
1469
1470
1471
  };
  var Default = {
    offset: 0,
Mark Otto's avatar
dist    
Mark Otto committed
1472
    flip: true,
Mark Otto's avatar
dist    
Mark Otto committed
1473
    boundary: 'scrollParent',
Mark Otto's avatar
dist    
Mark Otto committed
1474
1475
    reference: 'toggle',
    display: 'dynamic'
Johann-S's avatar
build    
Johann-S committed
1476
1477
  };
  var DefaultType = {
Mark Otto's avatar
dist    
Mark Otto committed
1478
    offset: '(number|string|function)',
Mark Otto's avatar
dist    
Mark Otto committed
1479
    flip: 'boolean',
Mark Otto's avatar
dist    
Mark Otto committed
1480
    boundary: '(string|element)',
Mark Otto's avatar
dist    
Mark Otto committed
1481
1482
    reference: '(string|element)',
    display: 'string'
Mark Otto's avatar
dist    
Mark Otto committed
1483
1484
1485
1486
1487
    /**
     * ------------------------------------------------------------------------
     * Class Definition
     * ------------------------------------------------------------------------
     */
Jacob Thornton's avatar
Jacob Thornton committed
1488

Mark Otto's avatar
dist    
Mark Otto committed
1489
  };
Jacob Thornton's avatar
Jacob Thornton committed
1490

Mark Otto's avatar
dist    
Mark Otto committed
1491
1492
1493
1494
  var Dropdown =
  /*#__PURE__*/
  function () {
    function Dropdown(element, config) {
Jacob Thornton's avatar
Jacob Thornton committed
1495
      this._element = element;
Johann-S's avatar
build    
Johann-S committed
1496
1497
1498
      this._popper = null;
      this._config = this._getConfig(config);
      this._menu = this._getMenuElement();
Mark Otto's avatar
build    
Mark Otto committed
1499
      this._inNavbar = this._detectNavbar();
Jacob Thornton's avatar
Jacob Thornton committed
1500
1501

      this._addEventListeners();
Mark Otto's avatar
dist    
Mark Otto committed
1502
    } // Getters
Jacob Thornton's avatar
Jacob Thornton committed
1503
1504


Mark Otto's avatar
dist    
Mark Otto committed
1505
    var _proto = Dropdown.prototype;
Jacob Thornton's avatar
Jacob Thornton committed
1506

Mark Otto's avatar
dist    
Mark Otto committed
1507
    // Public
Mark Otto's avatar
dist    
Mark Otto committed
1508
    _proto.toggle = function toggle() {
Mark Otto's avatar
dist    
Mark Otto committed
1509
      if (this._element.disabled || $$$1(this._element).hasClass(ClassName.DISABLED)) {
Johann-S's avatar
build    
Johann-S committed
1510
        return;
Mark Otto's avatar
grunt    
Mark Otto committed
1511
      }
Jacob Thornton's avatar
Jacob Thornton committed
1512

Johann-S's avatar
build    
Johann-S committed
1513
      var parent = Dropdown._getParentFromElement(this._element);
Mark Otto's avatar
dist    
Mark Otto committed
1514

Mark Otto's avatar
dist    
Mark Otto committed
1515
      var isActive = $$$1(this._menu).hasClass(ClassName.SHOW);
Jacob Thornton's avatar
Jacob Thornton committed
1516

Mark Otto's avatar
grunt    
Mark Otto committed
1517
      Dropdown._clearMenus();
Jacob Thornton's avatar
Jacob Thornton committed
1518

Mark Otto's avatar
grunt    
Mark Otto committed
1519
      if (isActive) {
Johann-S's avatar
build    
Johann-S committed
1520
        return;
Mark Otto's avatar
grunt    
Mark Otto committed
1521
      }
Jacob Thornton's avatar
Jacob Thornton committed
1522

Mark Otto's avatar
grunt    
Mark Otto committed
1523
      var relatedTarget = {
Johann-S's avatar
build    
Johann-S committed
1524
        relatedTarget: this._element
Mark Otto's avatar
grunt    
Mark Otto committed
1525
      };
Mark Otto's avatar
dist    
Mark Otto committed
1526
1527
      var showEvent = $$$1.Event(Event.SHOW, relatedTarget);
      $$$1(parent).trigger(showEvent);
Jacob Thornton's avatar
Jacob Thornton committed
1528

Mark Otto's avatar
grunt    
Mark Otto committed
1529
      if (showEvent.isDefaultPrevented()) {
Johann-S's avatar
build    
Johann-S committed
1530
        return;
Mark Otto's avatar
dist    
Mark Otto committed
1531
      } // Disable totally Popper.js for Dropdown in Navbar
Mark Otto's avatar
dist    
Mark Otto committed
1532
1533


Mark Otto's avatar
dist    
Mark Otto committed
1534
1535
1536
1537
1538
1539
      if (!this._inNavbar) {
        /**
         * Check for Popper dependency
         * Popper - https://popper.js.org
         */
        if (typeof Popper === 'undefined') {
Mark Otto's avatar
dist    
Mark Otto committed
1540
          throw new TypeError('Bootstrap dropdown require Popper.js (https://popper.js.org)');
Mark Otto's avatar
dist    
Mark Otto committed
1541
        }
Jacob Thornton's avatar
Jacob Thornton committed
1542

Mark Otto's avatar
dist    
Mark Otto committed
1543
1544
1545
1546
1547
1548
        var referenceElement = this._element;

        if (this._config.reference === 'parent') {
          referenceElement = parent;
        } else if (Util.isElement(this._config.reference)) {
          referenceElement = this._config.reference; // Check if it's jQuery element
Mark Otto's avatar
dist    
Mark Otto committed
1549

Mark Otto's avatar
dist    
Mark Otto committed
1550
1551
          if (typeof this._config.reference.jquery !== 'undefined') {
            referenceElement = this._config.reference[0];
Mark Otto's avatar
dist    
Mark Otto committed
1552
          }
Mark Otto's avatar
dist    
Mark Otto committed
1553
1554
1555
1556
1557
1558
1559
        } // If boundary is not `scrollParent`, then set position to `static`
        // to allow the menu to "escape" the scroll parent's boundaries
        // https://github.com/twbs/bootstrap/issues/24251


        if (this._config.boundary !== 'scrollParent') {
          $$$1(parent).addClass(ClassName.POSITION_STATIC);
Mark Otto's avatar
build    
Mark Otto committed
1560
        }
Johann-S's avatar
build    
Johann-S committed
1561

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

Mark Otto's avatar
dist    
Mark Otto committed
1568

Mark Otto's avatar
dist    
Mark Otto committed
1569
      if ('ontouchstart' in document.documentElement && $$$1(parent).closest(Selector.NAVBAR_NAV).length === 0) {
Mark Otto's avatar
dist    
Mark Otto committed
1570
        $$$1(document.body).children().on('mouseover', null, $$$1.noop);
Mark Otto's avatar
grunt    
Mark Otto committed
1571
1572
      }

Johann-S's avatar
build    
Johann-S committed
1573
      this._element.focus();
Mark Otto's avatar
dist    
Mark Otto committed
1574

Johann-S's avatar
build    
Johann-S committed
1575
      this._element.setAttribute('aria-expanded', true);
Jacob Thornton's avatar
Jacob Thornton committed
1576

Mark Otto's avatar
dist    
Mark Otto committed
1577
1578
      $$$1(this._menu).toggleClass(ClassName.SHOW);
      $$$1(parent).toggleClass(ClassName.SHOW).trigger($$$1.Event(Event.SHOWN, relatedTarget));
Mark Otto's avatar
grunt    
Mark Otto committed
1579
    };
Jacob Thornton's avatar
Jacob Thornton committed
1580

Mark Otto's avatar
dist    
Mark Otto committed
1581
    _proto.dispose = function dispose() {
Mark Otto's avatar
dist    
Mark Otto committed
1582
1583
      $$$1.removeData(this._element, DATA_KEY);
      $$$1(this._element).off(EVENT_KEY);
Mark Otto's avatar
grunt    
Mark Otto committed
1584
      this._element = null;
Johann-S's avatar
build    
Johann-S committed
1585
      this._menu = null;
Mark Otto's avatar
dist    
Mark Otto committed
1586

Johann-S's avatar
build    
Johann-S committed
1587
1588
      if (this._popper !== null) {
        this._popper.destroy();
Mark Otto's avatar
dist    
Mark Otto committed
1589

Mark Otto's avatar
dist    
Mark Otto committed
1590
1591
        this._popper = null;
      }
Johann-S's avatar
build    
Johann-S committed
1592
1593
    };

Mark Otto's avatar
dist    
Mark Otto committed
1594
    _proto.update = function update() {
Mark Otto's avatar
build    
Mark Otto committed
1595
      this._inNavbar = this._detectNavbar();
Mark Otto's avatar
dist    
Mark Otto committed
1596

Johann-S's avatar
build    
Johann-S committed
1597
1598
1599
      if (this._popper !== null) {
        this._popper.scheduleUpdate();
      }
Mark Otto's avatar
dist    
Mark Otto committed
1600
    }; // Private
Jacob Thornton's avatar
Jacob Thornton committed
1601
1602


Mark Otto's avatar
dist    
Mark Otto committed
1603
    _proto._addEventListeners = function _addEventListeners() {
Mark Otto's avatar
dist    
Mark Otto committed
1604
      var _this = this;
Johann-S's avatar
build    
Johann-S committed
1605

Mark Otto's avatar
dist    
Mark Otto committed
1606
      $$$1(this._element).on(Event.CLICK, function (event) {
Johann-S's avatar
build    
Johann-S committed
1607
1608
        event.preventDefault();
        event.stopPropagation();
Mark Otto's avatar
dist    
Mark Otto committed
1609

Mark Otto's avatar
dist    
Mark Otto committed
1610
        _this.toggle();
Johann-S's avatar
build    
Johann-S committed
1611
1612
1613
      });
    };

Mark Otto's avatar
dist    
Mark Otto committed
1614
    _proto._getConfig = function _getConfig(config) {
Mark Otto's avatar
dist    
Mark Otto committed
1615
      config = _extends({}, this.constructor.Default, $$$1(this._element).data(), config);
Johann-S's avatar
build    
Johann-S committed
1616
1617
1618
1619
      Util.typeCheckConfig(NAME, config, this.constructor.DefaultType);
      return config;
    };

Mark Otto's avatar
dist    
Mark Otto committed
1620
    _proto._getMenuElement = function _getMenuElement() {
Johann-S's avatar
build    
Johann-S committed
1621
1622
      if (!this._menu) {
        var parent = Dropdown._getParentFromElement(this._element);
Mark Otto's avatar
dist    
Mark Otto committed
1623

Mark Otto's avatar
dist    
Mark Otto committed
1624
        this._menu = $$$1(parent).find(Selector.MENU)[0];
Johann-S's avatar
build    
Johann-S committed
1625
      }
Mark Otto's avatar
dist    
Mark Otto committed
1626

Johann-S's avatar
build    
Johann-S committed
1627
      return this._menu;
Mark Otto's avatar
grunt    
Mark Otto committed
1628
    };
Jacob Thornton's avatar
Jacob Thornton committed
1629

Mark Otto's avatar
dist    
Mark Otto committed
1630
    _proto._getPlacement = function _getPlacement() {
Mark Otto's avatar
dist    
Mark Otto committed
1631
      var $parentDropdown = $$$1(this._element).parent();
Mark Otto's avatar
dist    
Mark Otto committed
1632
      var placement = AttachmentMap.BOTTOM; // Handle dropup
Mark Otto's avatar
build    
Mark Otto committed
1633

Mark Otto's avatar
dist    
Mark Otto committed
1634
      if ($parentDropdown.hasClass(ClassName.DROPUP)) {
Mark Otto's avatar
build    
Mark Otto committed
1635
        placement = AttachmentMap.TOP;
Mark Otto's avatar
dist    
Mark Otto committed
1636

Mark Otto's avatar
dist    
Mark Otto committed
1637
        if ($$$1(this._menu).hasClass(ClassName.MENURIGHT)) {
Mark Otto's avatar
build    
Mark Otto committed
1638
1639
          placement = AttachmentMap.TOPEND;
        }
Mark Otto's avatar
dist    
Mark Otto committed
1640
1641
1642
1643
      } else if ($parentDropdown.hasClass(ClassName.DROPRIGHT)) {
        placement = AttachmentMap.RIGHT;
      } else if ($parentDropdown.hasClass(ClassName.DROPLEFT)) {
        placement = AttachmentMap.LEFT;
Mark Otto's avatar
dist    
Mark Otto committed
1644
      } else if ($$$1(this._menu).hasClass(ClassName.MENURIGHT)) {
Mark Otto's avatar
build    
Mark Otto committed
1645
        placement = AttachmentMap.BOTTOMEND;
Mark Otto's avatar
build    
Mark Otto committed
1646
      }
Mark Otto's avatar
dist    
Mark Otto committed
1647

Mark Otto's avatar
build    
Mark Otto committed
1648
1649
1650
      return placement;
    };

Mark Otto's avatar
dist    
Mark Otto committed
1651
    _proto._detectNavbar = function _detectNavbar() {
Mark Otto's avatar
dist    
Mark Otto committed
1652
      return $$$1(this._element).closest('.navbar').length > 0;
Mark Otto's avatar
build    
Mark Otto committed
1653
1654
    };

Mark Otto's avatar
dist    
Mark Otto committed
1655
    _proto._getPopperConfig = function _getPopperConfig() {
Mark Otto's avatar
dist    
Mark Otto committed
1656
1657
1658
1659
1660
1661
      var _this2 = this;

      var offsetConf = {};

      if (typeof this._config.offset === 'function') {
        offsetConf.fn = function (data) {
Mark Otto's avatar
dist    
Mark Otto committed
1662
          data.offsets = _extends({}, data.offsets, _this2._config.offset(data.offsets) || {});
Mark Otto's avatar
dist    
Mark Otto committed
1663
1664
1665
1666
1667
1668
          return data;
        };
      } else {
        offsetConf.offset = this._config.offset;
      }

Mark Otto's avatar
build    
Mark Otto committed
1669
1670
1671
      var popperConfig = {
        placement: this._getPlacement(),
        modifiers: {
Mark Otto's avatar
dist    
Mark Otto committed
1672
          offset: offsetConf,
Mark Otto's avatar
build    
Mark Otto committed
1673
1674
          flip: {
            enabled: this._config.flip
Mark Otto's avatar
dist    
Mark Otto committed
1675
1676
1677
          },
          preventOverflow: {
            boundariesElement: this._config.boundary
Mark Otto's avatar
build    
Mark Otto committed
1678
          }
Mark Otto's avatar
dist    
Mark Otto committed
1679
1680
        } // Disable Popper.js if we have a static display

Mark Otto's avatar
dist    
Mark Otto committed
1681
      };
Mark Otto's avatar
dist    
Mark Otto committed
1682
1683
1684
1685
1686
1687
1688

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

Mark Otto's avatar
build    
Mark Otto committed
1689
      return popperConfig;
Mark Otto's avatar
dist    
Mark Otto committed
1690
    }; // Static
Mark Otto's avatar
build    
Mark Otto committed
1691

Jacob Thornton's avatar
Jacob Thornton committed
1692

Mark Otto's avatar
grunt    
Mark Otto committed
1693
1694
    Dropdown._jQueryInterface = function _jQueryInterface(config) {
      return this.each(function () {
Mark Otto's avatar
dist    
Mark Otto committed
1695
        var data = $$$1(this).data(DATA_KEY);
Mark Otto's avatar
dist    
Mark Otto committed
1696
1697

        var _config = typeof config === 'object' ? config : null;
Jacob Thornton's avatar
Jacob Thornton committed
1698

Mark Otto's avatar
grunt    
Mark Otto committed
1699
        if (!data) {
Johann-S's avatar
build    
Johann-S committed
1700
          data = new Dropdown(this, _config);
Mark Otto's avatar
dist    
Mark Otto committed
1701
          $$$1(this).data(DATA_KEY, data);
Jacob Thornton's avatar
Jacob Thornton committed
1702
1703
        }

Mark Otto's avatar
grunt    
Mark Otto committed
1704
        if (typeof config === 'string') {
Mark Otto's avatar
dist    
Mark Otto committed
1705
          if (typeof data[config] === 'undefined') {
Mark Otto's avatar
dist    
Mark Otto committed
1706
            throw new TypeError("No method named \"" + config + "\"");
Mark Otto's avatar
grunt    
Mark Otto committed
1707
          }
Mark Otto's avatar
dist    
Mark Otto committed
1708

Johann-S's avatar
build    
Johann-S committed
1709
          data[config]();
Jacob Thornton's avatar
Jacob Thornton committed
1710
        }
Mark Otto's avatar
grunt    
Mark Otto committed
1711
1712
      });
    };
Jacob Thornton's avatar
Jacob Thornton committed
1713

Mark Otto's avatar
grunt    
Mark Otto committed
1714
    Dropdown._clearMenus = function _clearMenus(event) {
Mark Otto's avatar
grunt    
Mark Otto committed
1715
      if (event && (event.which === RIGHT_MOUSE_BUTTON_WHICH || event.type === 'keyup' && event.which !== TAB_KEYCODE)) {
Mark Otto's avatar
grunt    
Mark Otto committed
1716
1717
        return;
      }
Jacob Thornton's avatar
Jacob Thornton committed
1718

Mark Otto's avatar
dist    
Mark Otto committed
1719
      var toggles = $$$1.makeArray($$$1(Selector.DATA_TOGGLE));
Mark Otto's avatar
dist    
Mark Otto committed
1720

Mark Otto's avatar
grunt    
Mark Otto committed
1721
1722
      for (var i = 0; i < toggles.length; i++) {
        var parent = Dropdown._getParentFromElement(toggles[i]);
Mark Otto's avatar
dist    
Mark Otto committed
1723

Mark Otto's avatar
dist    
Mark Otto committed
1724
        var context = $$$1(toggles[i]).data(DATA_KEY);
Mark Otto's avatar
grunt    
Mark Otto committed
1725
1726
1727
        var relatedTarget = {
          relatedTarget: toggles[i]
        };
Jacob Thornton's avatar
Jacob Thornton committed
1728

Johann-S's avatar
build    
Johann-S committed
1729
1730
1731
1732
1733
        if (!context) {
          continue;
        }

        var dropdownMenu = context._menu;
Mark Otto's avatar
dist    
Mark Otto committed
1734

Mark Otto's avatar
dist    
Mark Otto committed
1735
        if (!$$$1(parent).hasClass(ClassName.SHOW)) {
Mark Otto's avatar
grunt    
Mark Otto committed
1736
1737
          continue;
        }
Jacob Thornton's avatar
Jacob Thornton committed
1738

Mark Otto's avatar
dist    
Mark Otto committed
1739
        if (event && (event.type === 'click' && /input|textarea/i.test(event.target.tagName) || event.type === 'keyup' && event.which === TAB_KEYCODE) && $$$1.contains(parent, event.target)) {
Mark Otto's avatar
grunt    
Mark Otto committed
1740
1741
          continue;
        }
Jacob Thornton's avatar
Jacob Thornton committed
1742

Mark Otto's avatar
dist    
Mark Otto committed
1743
1744
        var hideEvent = $$$1.Event(Event.HIDE, relatedTarget);
        $$$1(parent).trigger(hideEvent);
Mark Otto's avatar
dist    
Mark Otto committed
1745

Mark Otto's avatar
grunt    
Mark Otto committed
1746
1747
        if (hideEvent.isDefaultPrevented()) {
          continue;
Mark Otto's avatar
dist    
Mark Otto committed
1748
        } // If this is a touch-enabled device we remove the extra
Mark Otto's avatar
grunt    
Mark Otto committed
1749
        // empty mouseover listeners we added for iOS support
Mark Otto's avatar
dist    
Mark Otto committed
1750
1751


Mark Otto's avatar
grunt    
Mark Otto committed
1752
        if ('ontouchstart' in document.documentElement) {
Mark Otto's avatar
dist    
Mark Otto committed
1753
          $$$1(document.body).children().off('mouseover', null, $$$1.noop);
Mark Otto's avatar
grunt    
Mark Otto committed
1754
1755
        }

Mark Otto's avatar
grunt    
Mark Otto committed
1756
        toggles[i].setAttribute('aria-expanded', 'false');
Mark Otto's avatar
dist    
Mark Otto committed
1757
1758
        $$$1(dropdownMenu).removeClass(ClassName.SHOW);
        $$$1(parent).removeClass(ClassName.SHOW).trigger($$$1.Event(Event.HIDDEN, relatedTarget));
Jacob Thornton's avatar
Jacob Thornton committed
1759
      }
Mark Otto's avatar
grunt    
Mark Otto committed
1760
    };
Jacob Thornton's avatar
Jacob Thornton committed
1761

Mark Otto's avatar
grunt    
Mark Otto committed
1762
    Dropdown._getParentFromElement = function _getParentFromElement(element) {
Mark Otto's avatar
dist    
Mark Otto committed
1763
      var parent;
Mark Otto's avatar
grunt    
Mark Otto committed
1764
      var selector = Util.getSelectorFromElement(element);
Jacob Thornton's avatar
Jacob Thornton committed
1765

Mark Otto's avatar
grunt    
Mark Otto committed
1766
      if (selector) {
Mark Otto's avatar
dist    
Mark Otto committed
1767
        parent = $$$1(selector)[0];
Jacob Thornton's avatar
Jacob Thornton committed
1768
1769
      }

Mark Otto's avatar
grunt    
Mark Otto committed
1770
      return parent || element.parentNode;
Mark Otto's avatar
dist    
Mark Otto committed
1771
1772
    }; // eslint-disable-next-line complexity

Jacob Thornton's avatar
Jacob Thornton committed
1773

Mark Otto's avatar
grunt    
Mark Otto committed
1774
    Dropdown._dataApiKeydownHandler = function _dataApiKeydownHandler(event) {
Mark Otto's avatar
dist    
Mark Otto committed
1775
1776
1777
1778
1779
1780
1781
1782
      // If not input/textarea:
      //  - And not a key in REGEXP_KEYDOWN => not a dropdown command
      // If input/textarea:
      //  - If space key => not a dropdown command
      //  - If key is other than escape
      //    - If key is not up or down => not a dropdown command
      //    - If trigger inside the menu => not a dropdown command
      if (/input|textarea/i.test(event.target.tagName) ? event.which === SPACE_KEYCODE || event.which !== ESCAPE_KEYCODE && (event.which !== ARROW_DOWN_KEYCODE && event.which !== ARROW_UP_KEYCODE || $$$1(event.target).closest(Selector.MENU).length) : !REGEXP_KEYDOWN.test(event.which)) {
Mark Otto's avatar
grunt    
Mark Otto committed
1783
1784
        return;
      }
Jacob Thornton's avatar
Jacob Thornton committed
1785

Mark Otto's avatar
grunt    
Mark Otto committed
1786
1787
      event.preventDefault();
      event.stopPropagation();
Jacob Thornton's avatar
Jacob Thornton committed
1788

Mark Otto's avatar
dist    
Mark Otto committed
1789
      if (this.disabled || $$$1(this).hasClass(ClassName.DISABLED)) {
Mark Otto's avatar
grunt    
Mark Otto committed
1790
1791
        return;
      }
Jacob Thornton's avatar
Jacob Thornton committed
1792

Mark Otto's avatar
grunt    
Mark Otto committed
1793
      var parent = Dropdown._getParentFromElement(this);
Mark Otto's avatar
dist    
Mark Otto committed
1794

Mark Otto's avatar
dist    
Mark Otto committed
1795
      var isActive = $$$1(parent).hasClass(ClassName.SHOW);
Jacob Thornton's avatar
Jacob Thornton committed
1796

Mark Otto's avatar
grunt    
Mark Otto committed
1797
      if (!isActive && (event.which !== ESCAPE_KEYCODE || event.which !== SPACE_KEYCODE) || isActive && (event.which === ESCAPE_KEYCODE || event.which === SPACE_KEYCODE)) {
Mark Otto's avatar
grunt    
Mark Otto committed
1798
        if (event.which === ESCAPE_KEYCODE) {
Mark Otto's avatar
dist    
Mark Otto committed
1799
1800
          var toggle = $$$1(parent).find(Selector.DATA_TOGGLE)[0];
          $$$1(toggle).trigger('focus');
Jacob Thornton's avatar
Jacob Thornton committed
1801
1802
        }

Mark Otto's avatar
dist    
Mark Otto committed
1803
        $$$1(this).trigger('click');
Mark Otto's avatar
grunt    
Mark Otto committed
1804
1805
        return;
      }
Jacob Thornton's avatar
Jacob Thornton committed
1806

Mark Otto's avatar
dist    
Mark Otto committed
1807
      var items = $$$1(parent).find(Selector.VISIBLE_ITEMS).get();
Jacob Thornton's avatar
Jacob Thornton committed
1808

Mark Otto's avatar
dist    
Mark Otto committed
1809
      if (items.length === 0) {
Mark Otto's avatar
grunt    
Mark Otto committed
1810
1811
        return;
      }
Jacob Thornton's avatar
Jacob Thornton committed
1812

Mark Otto's avatar
grunt    
Mark Otto committed
1813
      var index = items.indexOf(event.target);
Jacob Thornton's avatar
Jacob Thornton committed
1814

Mark Otto's avatar
grunt    
Mark Otto committed
1815
      if (event.which === ARROW_UP_KEYCODE && index > 0) {
Mark Otto's avatar
dist    
Mark Otto committed
1816
        // Up
Mark Otto's avatar
grunt    
Mark Otto committed
1817
1818
        index--;
      }
Jacob Thornton's avatar
Jacob Thornton committed
1819

Mark Otto's avatar
grunt    
Mark Otto committed
1820
      if (event.which === ARROW_DOWN_KEYCODE && index < items.length - 1) {
Mark Otto's avatar
dist    
Mark Otto committed
1821
        // Down
Mark Otto's avatar
grunt    
Mark Otto committed
1822
1823
        index++;
      }
Jacob Thornton's avatar
Jacob Thornton committed
1824

Mark Otto's avatar
grunt    
Mark Otto committed
1825
1826
      if (index < 0) {
        index = 0;
Jacob Thornton's avatar
Jacob Thornton committed
1827
      }
Mark Otto's avatar
grunt    
Mark Otto committed
1828
1829
1830
1831

      items[index].focus();
    };

Mark Otto's avatar
Mark Otto committed
1832
    _createClass(Dropdown, null, [{
Mark Otto's avatar
dist    
Mark Otto committed
1833
      key: "VERSION",
Jacob Thornton's avatar
Jacob Thornton committed
1834
1835
1836
      get: function get() {
        return VERSION;
      }
Johann-S's avatar
build    
Johann-S committed
1837
    }, {
Mark Otto's avatar
dist    
Mark Otto committed
1838
      key: "Default",
Johann-S's avatar
build    
Johann-S committed
1839
1840
1841
1842
      get: function get() {
        return Default;
      }
    }, {
Mark Otto's avatar
dist    
Mark Otto committed
1843
      key: "DefaultType",
Johann-S's avatar
build    
Johann-S committed
1844
1845
1846
      get: function get() {
        return DefaultType;
      }
Jacob Thornton's avatar
Jacob Thornton committed
1847
1848
    }]);
    return Dropdown;
Mark Otto's avatar
grunt    
Mark Otto committed
1849
1850
1851
1852
1853
1854
  }();
  /**
   * ------------------------------------------------------------------------
   * Data Api implementation
   * ------------------------------------------------------------------------
   */
Jacob Thornton's avatar
Jacob Thornton committed
1855

Mark Otto's avatar
dist    
Mark Otto committed
1856

Mark Otto's avatar
dist    
Mark Otto committed
1857
  $$$1(document).on(Event.KEYDOWN_DATA_API, Selector.DATA_TOGGLE, Dropdown._dataApiKeydownHandler).on(Event.KEYDOWN_DATA_API, Selector.MENU, Dropdown._dataApiKeydownHandler).on(Event.CLICK_DATA_API + " " + Event.KEYUP_DATA_API, Dropdown._clearMenus).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {
Johann-S's avatar
build    
Johann-S committed
1858
1859
    event.preventDefault();
    event.stopPropagation();
Mark Otto's avatar
dist    
Mark Otto committed
1860

Mark Otto's avatar
dist    
Mark Otto committed
1861
    Dropdown._jQueryInterface.call($$$1(this), 'toggle');
Johann-S's avatar
build    
Johann-S committed
1862
  }).on(Event.CLICK_DATA_API, Selector.FORM_CHILD, function (e) {
Jacob Thornton's avatar
Jacob Thornton committed
1863
    e.stopPropagation();
Mark Otto's avatar
Mark Otto committed
1864
  });
Jacob Thornton's avatar
Jacob Thornton committed
1865
1866
1867
1868
1869
1870
  /**
   * ------------------------------------------------------------------------
   * jQuery
   * ------------------------------------------------------------------------
   */

Mark Otto's avatar
dist    
Mark Otto committed
1871
1872
  $$$1.fn[NAME] = Dropdown._jQueryInterface;
  $$$1.fn[NAME].Constructor = Dropdown;
Mark Otto's avatar
dist    
Mark Otto committed
1873

Mark Otto's avatar
dist    
Mark Otto committed
1874
1875
  $$$1.fn[NAME].noConflict = function () {
    $$$1.fn[NAME] = JQUERY_NO_CONFLICT;
Jacob Thornton's avatar
Jacob Thornton committed
1876
1877
1878
1879
    return Dropdown._jQueryInterface;
  };

  return Dropdown;
Mark Otto's avatar
dist    
Mark Otto committed
1880
}($, Popper);
Jacob Thornton's avatar
Jacob Thornton committed
1881
1882
1883

/**
 * --------------------------------------------------------------------------
Mark Otto's avatar
Mark Otto committed
1884
 * Bootstrap (v4.0.0): modal.js
Jacob Thornton's avatar
Jacob Thornton committed
1885
1886
1887
1888
 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
 * --------------------------------------------------------------------------
 */

Mark Otto's avatar
dist    
Mark Otto committed
1889
var Modal = function ($$$1) {
Jacob Thornton's avatar
Jacob Thornton committed
1890
1891
1892
1893
1894
1895
  /**
   * ------------------------------------------------------------------------
   * Constants
   * ------------------------------------------------------------------------
   */
  var NAME = 'modal';
Mark Otto's avatar
Mark Otto committed
1896
  var VERSION = '4.0.0';
Jacob Thornton's avatar
Jacob Thornton committed
1897
  var DATA_KEY = 'bs.modal';
Mark Otto's avatar
dist    
Mark Otto committed
1898
  var EVENT_KEY = "." + DATA_KEY;
Jacob Thornton's avatar
Jacob Thornton committed
1899
  var DATA_API_KEY = '.data-api';
Mark Otto's avatar
dist    
Mark Otto committed
1900
  var JQUERY_NO_CONFLICT = $$$1.fn[NAME];
Jacob Thornton's avatar
Jacob Thornton committed
1901
1902
  var TRANSITION_DURATION = 300;
  var BACKDROP_TRANSITION_DURATION = 150;
Chris Rebert's avatar
grunt    
Chris Rebert committed
1903
  var ESCAPE_KEYCODE = 27; // KeyboardEvent.which value for Escape (Esc) key
Jacob Thornton's avatar
Jacob Thornton committed
1904
1905
1906
1907
1908
1909
1910
1911
1912
1913
1914
1915
1916
1917

  var Default = {
    backdrop: true,
    keyboard: true,
    focus: true,
    show: true
  };
  var DefaultType = {
    backdrop: '(boolean|string)',
    keyboard: 'boolean',
    focus: 'boolean',
    show: 'boolean'
  };
  var Event = {
Mark Otto's avatar
dist    
Mark Otto committed
1918
1919
1920
1921
1922
1923
1924
1925
1926
1927
1928
    HIDE: "hide" + EVENT_KEY,
    HIDDEN: "hidden" + EVENT_KEY,
    SHOW: "show" + EVENT_KEY,
    SHOWN: "shown" + EVENT_KEY,
    FOCUSIN: "focusin" + EVENT_KEY,
    RESIZE: "resize" + EVENT_KEY,
    CLICK_DISMISS: "click.dismiss" + EVENT_KEY,
    KEYDOWN_DISMISS: "keydown.dismiss" + EVENT_KEY,
    MOUSEUP_DISMISS: "mouseup.dismiss" + EVENT_KEY,
    MOUSEDOWN_DISMISS: "mousedown.dismiss" + EVENT_KEY,
    CLICK_DATA_API: "click" + EVENT_KEY + DATA_API_KEY
Jacob Thornton's avatar
Jacob Thornton committed
1929
1930
1931
1932
1933
1934
  };
  var ClassName = {
    SCROLLBAR_MEASURER: 'modal-scrollbar-measure',
    BACKDROP: 'modal-backdrop',
    OPEN: 'modal-open',
    FADE: 'fade',
Mark Otto's avatar
grunt    
Mark Otto committed
1935
    SHOW: 'show'
Jacob Thornton's avatar
Jacob Thornton committed
1936
1937
1938
1939
1940
  };
  var Selector = {
    DIALOG: '.modal-dialog',
    DATA_TOGGLE: '[data-toggle="modal"]',
    DATA_DISMISS: '[data-dismiss="modal"]',
Mark Otto's avatar
grunt    
Mark Otto committed
1941
    FIXED_CONTENT: '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top',
Mark Otto's avatar
dist    
Mark Otto committed
1942
    STICKY_CONTENT: '.sticky-top',
Mark Otto's avatar
grunt    
Mark Otto committed
1943
    NAVBAR_TOGGLER: '.navbar-toggler'
Mark Otto's avatar
dist    
Mark Otto committed
1944
1945
1946
1947
1948
    /**
     * ------------------------------------------------------------------------
     * Class Definition
     * ------------------------------------------------------------------------
     */
Jacob Thornton's avatar
Jacob Thornton committed
1949

Mark Otto's avatar
dist    
Mark Otto committed
1950
  };
Jacob Thornton's avatar
Jacob Thornton committed
1951

Mark Otto's avatar
dist    
Mark Otto committed
1952
1953
1954
1955
  var Modal =
  /*#__PURE__*/
  function () {
    function Modal(element, config) {
Jacob Thornton's avatar
Jacob Thornton committed
1956
1957
      this._config = this._getConfig(config);
      this._element = element;
Mark Otto's avatar
dist    
Mark Otto committed
1958
      this._dialog = $$$1(element).find(Selector.DIALOG)[0];
Jacob Thornton's avatar
Jacob Thornton committed
1959
1960
1961
1962
1963
1964
      this._backdrop = null;
      this._isShown = false;
      this._isBodyOverflowing = false;
      this._ignoreBackdropClick = false;
      this._originalBodyPadding = 0;
      this._scrollbarWidth = 0;
Mark Otto's avatar
dist    
Mark Otto committed
1965
    } // Getters
Jacob Thornton's avatar
Jacob Thornton committed
1966
1967


Mark Otto's avatar
dist    
Mark Otto committed
1968
    var _proto = Modal.prototype;
Jacob Thornton's avatar
Jacob Thornton committed
1969

Mark Otto's avatar
dist    
Mark Otto committed
1970
    // Public
Mark Otto's avatar
dist    
Mark Otto committed
1971
    _proto.toggle = function toggle(relatedTarget) {
Mark Otto's avatar
grunt    
Mark Otto committed
1972
1973
      return this._isShown ? this.hide() : this.show(relatedTarget);
    };
Jacob Thornton's avatar
Jacob Thornton committed
1974

Mark Otto's avatar
dist    
Mark Otto committed
1975
    _proto.show = function show(relatedTarget) {
Mark Otto's avatar
dist    
Mark Otto committed
1976
      var _this = this;
Jacob Thornton's avatar
Jacob Thornton committed
1977

Mark Otto's avatar
dist    
Mark Otto committed
1978
      if (this._isTransitioning || this._isShown) {
Mark Otto's avatar
grunt    
Mark Otto committed
1979
        return;
Mark Otto's avatar
grunt    
Mark Otto committed
1980
1981
      }

Mark Otto's avatar
dist    
Mark Otto committed
1982
      if (Util.supportsTransitionEnd() && $$$1(this._element).hasClass(ClassName.FADE)) {
Mark Otto's avatar
grunt    
Mark Otto committed
1983
1984
        this._isTransitioning = true;
      }
Mark Otto's avatar
grunt    
Mark Otto committed
1985

Mark Otto's avatar
dist    
Mark Otto committed
1986
      var showEvent = $$$1.Event(Event.SHOW, {
Mark Otto's avatar
grunt    
Mark Otto committed
1987
1988
        relatedTarget: relatedTarget
      });
Mark Otto's avatar
dist    
Mark Otto committed
1989
      $$$1(this._element).trigger(showEvent);
Jacob Thornton's avatar
Jacob Thornton committed
1990

Mark Otto's avatar
grunt    
Mark Otto committed
1991
1992
1993
      if (this._isShown || showEvent.isDefaultPrevented()) {
        return;
      }
Jacob Thornton's avatar
Jacob Thornton committed
1994

Mark Otto's avatar
grunt    
Mark Otto committed
1995
      this._isShown = true;
Jacob Thornton's avatar
Jacob Thornton committed
1996

Mark Otto's avatar
grunt    
Mark Otto committed
1997
      this._checkScrollbar();
Mark Otto's avatar
dist    
Mark Otto committed
1998

Mark Otto's avatar
grunt    
Mark Otto committed
1999
      this._setScrollbar();
Jacob Thornton's avatar
Jacob Thornton committed
2000

For faster browsing, not all history is shown. View entire blame