bootstrap.js 112 KB
Newer Older
Jacob Thornton's avatar
Jacob Thornton committed
1001
1002
1003
1004
1005
   * ------------------------------------------------------------------------
   * jQuery
   * ------------------------------------------------------------------------
   */

Mark Otto's avatar
dist    
Mark Otto committed
1006
1007
  $$$1.fn[NAME] = Carousel._jQueryInterface;
  $$$1.fn[NAME].Constructor = Carousel;
Mark Otto's avatar
dist    
Mark Otto committed
1008

Mark Otto's avatar
dist    
Mark Otto committed
1009
1010
  $$$1.fn[NAME].noConflict = function () {
    $$$1.fn[NAME] = JQUERY_NO_CONFLICT;
Jacob Thornton's avatar
Jacob Thornton committed
1011
1012
1013
1014
    return Carousel._jQueryInterface;
  };

  return Carousel;
Mark Otto's avatar
dist    
Mark Otto committed
1015
}($);
Jacob Thornton's avatar
Jacob Thornton committed
1016
1017
1018

/**
 * --------------------------------------------------------------------------
Mark Otto's avatar
Mark Otto committed
1019
 * Bootstrap (v4.0.0): collapse.js
Jacob Thornton's avatar
Jacob Thornton committed
1020
1021
1022
1023
 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
 * --------------------------------------------------------------------------
 */

Mark Otto's avatar
dist    
Mark Otto committed
1024
var Collapse = function ($$$1) {
Jacob Thornton's avatar
Jacob Thornton committed
1025
1026
1027
1028
1029
1030
  /**
   * ------------------------------------------------------------------------
   * Constants
   * ------------------------------------------------------------------------
   */
  var NAME = 'collapse';
Mark Otto's avatar
Mark Otto committed
1031
  var VERSION = '4.0.0';
Jacob Thornton's avatar
Jacob Thornton committed
1032
  var DATA_KEY = 'bs.collapse';
Mark Otto's avatar
dist    
Mark Otto committed
1033
  var EVENT_KEY = "." + DATA_KEY;
Jacob Thornton's avatar
Jacob Thornton committed
1034
  var DATA_API_KEY = '.data-api';
Mark Otto's avatar
dist    
Mark Otto committed
1035
  var JQUERY_NO_CONFLICT = $$$1.fn[NAME];
Jacob Thornton's avatar
Jacob Thornton committed
1036
1037
1038
1039
1040
1041
1042
  var TRANSITION_DURATION = 600;
  var Default = {
    toggle: true,
    parent: ''
  };
  var DefaultType = {
    toggle: 'boolean',
Mark Otto's avatar
dist    
Mark Otto committed
1043
    parent: '(string|element)'
Jacob Thornton's avatar
Jacob Thornton committed
1044
1045
  };
  var Event = {
Mark Otto's avatar
dist    
Mark Otto committed
1046
1047
1048
1049
1050
    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
1051
1052
  };
  var ClassName = {
Mark Otto's avatar
grunt    
Mark Otto committed
1053
    SHOW: 'show',
Jacob Thornton's avatar
Jacob Thornton committed
1054
1055
1056
1057
1058
1059
1060
1061
1062
    COLLAPSE: 'collapse',
    COLLAPSING: 'collapsing',
    COLLAPSED: 'collapsed'
  };
  var Dimension = {
    WIDTH: 'width',
    HEIGHT: 'height'
  };
  var Selector = {
Johann-S's avatar
build    
Johann-S committed
1063
1064
    ACTIVES: '.show, .collapsing',
    DATA_TOGGLE: '[data-toggle="collapse"]'
Mark Otto's avatar
dist    
Mark Otto committed
1065
1066
1067
1068
1069
    /**
     * ------------------------------------------------------------------------
     * Class Definition
     * ------------------------------------------------------------------------
     */
Jacob Thornton's avatar
Jacob Thornton committed
1070

Mark Otto's avatar
dist    
Mark Otto committed
1071
  };
Jacob Thornton's avatar
Jacob Thornton committed
1072

Mark Otto's avatar
dist    
Mark Otto committed
1073
1074
1075
1076
  var Collapse =
  /*#__PURE__*/
  function () {
    function Collapse(element, config) {
Jacob Thornton's avatar
Jacob Thornton committed
1077
1078
1079
      this._isTransitioning = false;
      this._element = element;
      this._config = this._getConfig(config);
Mark Otto's avatar
dist    
Mark Otto committed
1080
1081
      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
1082

Mark Otto's avatar
build    
Mark Otto committed
1083
1084
1085
      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
1086

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

Mark Otto's avatar
build    
Mark Otto committed
1090
1091
1092
          this._triggerArray.push(elem);
        }
      }
Johann-S's avatar
build    
Johann-S committed
1093

Jacob Thornton's avatar
Jacob Thornton committed
1094
1095
1096
1097
1098
1099
1100
1101
1102
      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
1103
    } // Getters
Jacob Thornton's avatar
Jacob Thornton committed
1104
1105


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

Mark Otto's avatar
dist    
Mark Otto committed
1108
    // Public
Mark Otto's avatar
dist    
Mark Otto committed
1109
    _proto.toggle = function toggle() {
Mark Otto's avatar
dist    
Mark Otto committed
1110
      if ($$$1(this._element).hasClass(ClassName.SHOW)) {
Mark Otto's avatar
grunt    
Mark Otto committed
1111
1112
1113
        this.hide();
      } else {
        this.show();
Jacob Thornton's avatar
Jacob Thornton committed
1114
      }
Mark Otto's avatar
grunt    
Mark Otto committed
1115
    };
Jacob Thornton's avatar
Jacob Thornton committed
1116

Mark Otto's avatar
dist    
Mark Otto committed
1117
    _proto.show = function show() {
Mark Otto's avatar
dist    
Mark Otto committed
1118
      var _this = this;
Jacob Thornton's avatar
Jacob Thornton committed
1119

Mark Otto's avatar
dist    
Mark Otto committed
1120
      if (this._isTransitioning || $$$1(this._element).hasClass(ClassName.SHOW)) {
Mark Otto's avatar
grunt    
Mark Otto committed
1121
1122
        return;
      }
Jacob Thornton's avatar
Jacob Thornton committed
1123

Mark Otto's avatar
dist    
Mark Otto committed
1124
1125
      var actives;
      var activesData;
Jacob Thornton's avatar
Jacob Thornton committed
1126

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

Mark Otto's avatar
dist    
Mark Otto committed
1130
        if (actives.length === 0) {
Mark Otto's avatar
grunt    
Mark Otto committed
1131
          actives = null;
Jacob Thornton's avatar
Jacob Thornton committed
1132
        }
Mark Otto's avatar
grunt    
Mark Otto committed
1133
      }
Jacob Thornton's avatar
Jacob Thornton committed
1134

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

Mark Otto's avatar
grunt    
Mark Otto committed
1138
        if (activesData && activesData._isTransitioning) {
Jacob Thornton's avatar
Jacob Thornton committed
1139
1140
          return;
        }
Mark Otto's avatar
grunt    
Mark Otto committed
1141
      }
Jacob Thornton's avatar
Jacob Thornton committed
1142

Mark Otto's avatar
dist    
Mark Otto committed
1143
1144
      var startEvent = $$$1.Event(Event.SHOW);
      $$$1(this._element).trigger(startEvent);
Mark Otto's avatar
dist    
Mark Otto committed
1145

Mark Otto's avatar
grunt    
Mark Otto committed
1146
1147
1148
1149
1150
      if (startEvent.isDefaultPrevented()) {
        return;
      }

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

Mark Otto's avatar
grunt    
Mark Otto committed
1153
        if (!activesData) {
Mark Otto's avatar
dist    
Mark Otto committed
1154
          $$$1(actives).data(DATA_KEY, null);
Jacob Thornton's avatar
Jacob Thornton committed
1155
        }
Mark Otto's avatar
grunt    
Mark Otto committed
1156
      }
Jacob Thornton's avatar
Jacob Thornton committed
1157

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

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

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

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

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

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

Mark Otto's avatar
dist    
Mark Otto committed
1175
        $$$1(_this._element).trigger(Event.SHOWN);
Mark Otto's avatar
grunt    
Mark Otto committed
1176
      };
Jacob Thornton's avatar
Jacob Thornton committed
1177

Mark Otto's avatar
grunt    
Mark Otto committed
1178
1179
1180
1181
      if (!Util.supportsTransitionEnd()) {
        complete();
        return;
      }
Jacob Thornton's avatar
Jacob Thornton committed
1182

Mark Otto's avatar
grunt    
Mark Otto committed
1183
      var capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1);
Mark Otto's avatar
dist    
Mark Otto committed
1184
      var scrollSize = "scroll" + capitalizedDimension;
Mark Otto's avatar
dist    
Mark Otto committed
1185
      $$$1(this._element).one(Util.TRANSITION_END, complete).emulateTransitionEnd(TRANSITION_DURATION);
Mark Otto's avatar
dist    
Mark Otto committed
1186
      this._element.style[dimension] = this._element[scrollSize] + "px";
Mark Otto's avatar
grunt    
Mark Otto committed
1187
    };
Jacob Thornton's avatar
Jacob Thornton committed
1188

Mark Otto's avatar
dist    
Mark Otto committed
1189
    _proto.hide = function hide() {
Mark Otto's avatar
dist    
Mark Otto committed
1190
      var _this2 = this;
Jacob Thornton's avatar
Jacob Thornton committed
1191

Mark Otto's avatar
dist    
Mark Otto committed
1192
      if (this._isTransitioning || !$$$1(this._element).hasClass(ClassName.SHOW)) {
Mark Otto's avatar
grunt    
Mark Otto committed
1193
1194
        return;
      }
Jacob Thornton's avatar
Jacob Thornton committed
1195

Mark Otto's avatar
dist    
Mark Otto committed
1196
1197
      var startEvent = $$$1.Event(Event.HIDE);
      $$$1(this._element).trigger(startEvent);
Mark Otto's avatar
dist    
Mark Otto committed
1198

Mark Otto's avatar
grunt    
Mark Otto committed
1199
1200
1201
      if (startEvent.isDefaultPrevented()) {
        return;
      }
Jacob Thornton's avatar
Jacob Thornton committed
1202

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

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

Mark Otto's avatar
dist    
Mark Otto committed
1209
      if (this._triggerArray.length > 0) {
Mark Otto's avatar
build    
Mark Otto committed
1210
1211
1212
        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
1213

Mark Otto's avatar
build    
Mark Otto committed
1214
          if (selector !== null) {
Mark Otto's avatar
dist    
Mark Otto committed
1215
            var $elem = $$$1(selector);
Mark Otto's avatar
dist    
Mark Otto committed
1216

Mark Otto's avatar
build    
Mark Otto committed
1217
            if (!$elem.hasClass(ClassName.SHOW)) {
Mark Otto's avatar
dist    
Mark Otto committed
1218
              $$$1(trigger).addClass(ClassName.COLLAPSED).attr('aria-expanded', false);
Mark Otto's avatar
build    
Mark Otto committed
1219
1220
1221
            }
          }
        }
Mark Otto's avatar
grunt    
Mark Otto committed
1222
      }
Jacob Thornton's avatar
Jacob Thornton committed
1223

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

Mark Otto's avatar
grunt    
Mark Otto committed
1226
      var complete = function complete() {
Mark Otto's avatar
dist    
Mark Otto committed
1227
        _this2.setTransitioning(false);
Mark Otto's avatar
dist    
Mark Otto committed
1228

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

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

Mark Otto's avatar
grunt    
Mark Otto committed
1234
1235
1236
      if (!Util.supportsTransitionEnd()) {
        complete();
        return;
Jacob Thornton's avatar
Jacob Thornton committed
1237
1238
      }

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

Mark Otto's avatar
dist    
Mark Otto committed
1242
    _proto.setTransitioning = function setTransitioning(isTransitioning) {
Mark Otto's avatar
grunt    
Mark Otto committed
1243
1244
      this._isTransitioning = isTransitioning;
    };
Jacob Thornton's avatar
Jacob Thornton committed
1245

Mark Otto's avatar
dist    
Mark Otto committed
1246
    _proto.dispose = function dispose() {
Mark Otto's avatar
dist    
Mark Otto committed
1247
      $$$1.removeData(this._element, DATA_KEY);
Mark Otto's avatar
grunt    
Mark Otto committed
1248
1249
1250
1251
1252
      this._config = null;
      this._parent = null;
      this._element = null;
      this._triggerArray = null;
      this._isTransitioning = null;
Mark Otto's avatar
dist    
Mark Otto committed
1253
    }; // Private
Jacob Thornton's avatar
Jacob Thornton committed
1254
1255


Mark Otto's avatar
dist    
Mark Otto committed
1256
    _proto._getConfig = function _getConfig(config) {
Mark Otto's avatar
dist    
Mark Otto committed
1257
      config = _extends({}, Default, config);
Mark Otto's avatar
dist    
Mark Otto committed
1258
      config.toggle = Boolean(config.toggle); // Coerce string values
Mark Otto's avatar
dist    
Mark Otto committed
1259

Mark Otto's avatar
Mark Otto committed
1260
      Util.typeCheckConfig(NAME, config, DefaultType);
Mark Otto's avatar
grunt    
Mark Otto committed
1261
1262
1263
      return config;
    };

Mark Otto's avatar
dist    
Mark Otto committed
1264
    _proto._getDimension = function _getDimension() {
Mark Otto's avatar
dist    
Mark Otto committed
1265
      var hasWidth = $$$1(this._element).hasClass(Dimension.WIDTH);
Mark Otto's avatar
grunt    
Mark Otto committed
1266
1267
1268
      return hasWidth ? Dimension.WIDTH : Dimension.HEIGHT;
    };

Mark Otto's avatar
dist    
Mark Otto committed
1269
    _proto._getParent = function _getParent() {
Mark Otto's avatar
dist    
Mark Otto committed
1270
      var _this3 = this;
Mark Otto's avatar
grunt    
Mark Otto committed
1271

Mark Otto's avatar
dist    
Mark Otto committed
1272
      var parent = null;
Mark Otto's avatar
grunt    
Mark Otto committed
1273

Mark Otto's avatar
dist    
Mark Otto committed
1274
      if (Util.isElement(this._config.parent)) {
Mark Otto's avatar
dist    
Mark Otto committed
1275
        parent = this._config.parent; // It's a jQuery object
Mark Otto's avatar
dist    
Mark Otto committed
1276
1277
1278
1279
1280

        if (typeof this._config.parent.jquery !== 'undefined') {
          parent = this._config.parent[0];
        }
      } else {
Mark Otto's avatar
dist    
Mark Otto committed
1281
        parent = $$$1(this._config.parent)[0];
Mark Otto's avatar
dist    
Mark Otto committed
1282
1283
1284
      }

      var selector = "[data-toggle=\"collapse\"][data-parent=\"" + this._config.parent + "\"]";
Mark Otto's avatar
dist    
Mark Otto committed
1285
      $$$1(parent).find(selector).each(function (i, element) {
Mark Otto's avatar
dist    
Mark Otto committed
1286
        _this3._addAriaAndCollapsedClass(Collapse._getTargetFromElement(element), [element]);
Mark Otto's avatar
grunt    
Mark Otto committed
1287
1288
1289
1290
      });
      return parent;
    };

Mark Otto's avatar
dist    
Mark Otto committed
1291
    _proto._addAriaAndCollapsedClass = function _addAriaAndCollapsedClass(element, triggerArray) {
Mark Otto's avatar
grunt    
Mark Otto committed
1292
      if (element) {
Mark Otto's avatar
dist    
Mark Otto committed
1293
        var isOpen = $$$1(element).hasClass(ClassName.SHOW);
Mark Otto's avatar
grunt    
Mark Otto committed
1294

Mark Otto's avatar
dist    
Mark Otto committed
1295
        if (triggerArray.length > 0) {
Mark Otto's avatar
dist    
Mark Otto committed
1296
          $$$1(triggerArray).toggleClass(ClassName.COLLAPSED, !isOpen).attr('aria-expanded', isOpen);
Jacob Thornton's avatar
Jacob Thornton committed
1297
1298
        }
      }
Mark Otto's avatar
dist    
Mark Otto committed
1299
    }; // Static
Jacob Thornton's avatar
Jacob Thornton committed
1300
1301


Mark Otto's avatar
grunt    
Mark Otto committed
1302
1303
    Collapse._getTargetFromElement = function _getTargetFromElement(element) {
      var selector = Util.getSelectorFromElement(element);
Mark Otto's avatar
dist    
Mark Otto committed
1304
      return selector ? $$$1(selector)[0] : null;
Mark Otto's avatar
grunt    
Mark Otto committed
1305
    };
Jacob Thornton's avatar
Jacob Thornton committed
1306

Mark Otto's avatar
grunt    
Mark Otto committed
1307
1308
    Collapse._jQueryInterface = function _jQueryInterface(config) {
      return this.each(function () {
Mark Otto's avatar
dist    
Mark Otto committed
1309
        var $this = $$$1(this);
Mark Otto's avatar
grunt    
Mark Otto committed
1310
        var data = $this.data(DATA_KEY);
Mark Otto's avatar
dist    
Mark Otto committed
1311

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

Mark Otto's avatar
grunt    
Mark Otto committed
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
        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
1324
          if (typeof data[config] === 'undefined') {
Mark Otto's avatar
dist    
Mark Otto committed
1325
            throw new TypeError("No method named \"" + config + "\"");
Jacob Thornton's avatar
Jacob Thornton committed
1326
          }
Mark Otto's avatar
dist    
Mark Otto committed
1327

Mark Otto's avatar
grunt    
Mark Otto committed
1328
1329
1330
1331
1332
          data[config]();
        }
      });
    };

Mark Otto's avatar
Mark Otto committed
1333
    _createClass(Collapse, null, [{
Mark Otto's avatar
dist    
Mark Otto committed
1334
      key: "VERSION",
Jacob Thornton's avatar
Jacob Thornton committed
1335
1336
1337
1338
      get: function get() {
        return VERSION;
      }
    }, {
Mark Otto's avatar
dist    
Mark Otto committed
1339
      key: "Default",
Jacob Thornton's avatar
Jacob Thornton committed
1340
1341
1342
1343
1344
      get: function get() {
        return Default;
      }
    }]);
    return Collapse;
Mark Otto's avatar
grunt    
Mark Otto committed
1345
1346
1347
1348
1349
1350
  }();
  /**
   * ------------------------------------------------------------------------
   * Data Api implementation
   * ------------------------------------------------------------------------
   */
Jacob Thornton's avatar
Jacob Thornton committed
1351

Mark Otto's avatar
dist    
Mark Otto committed
1352

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

Mark Otto's avatar
dist    
Mark Otto committed
1359
    var $trigger = $$$1(this);
Mark Otto's avatar
build    
Mark Otto committed
1360
    var selector = Util.getSelectorFromElement(this);
Mark Otto's avatar
dist    
Mark Otto committed
1361
1362
    $$$1(selector).each(function () {
      var $target = $$$1(this);
Mark Otto's avatar
build    
Mark Otto committed
1363
1364
      var data = $target.data(DATA_KEY);
      var config = data ? 'toggle' : $trigger.data();
Mark Otto's avatar
dist    
Mark Otto committed
1365

Mark Otto's avatar
build    
Mark Otto committed
1366
1367
      Collapse._jQueryInterface.call($target, config);
    });
Mark Otto's avatar
Mark Otto committed
1368
  });
Jacob Thornton's avatar
Jacob Thornton committed
1369
1370
1371
1372
1373
1374
  /**
   * ------------------------------------------------------------------------
   * jQuery
   * ------------------------------------------------------------------------
   */

Mark Otto's avatar
dist    
Mark Otto committed
1375
1376
  $$$1.fn[NAME] = Collapse._jQueryInterface;
  $$$1.fn[NAME].Constructor = Collapse;
Mark Otto's avatar
dist    
Mark Otto committed
1377

Mark Otto's avatar
dist    
Mark Otto committed
1378
1379
  $$$1.fn[NAME].noConflict = function () {
    $$$1.fn[NAME] = JQUERY_NO_CONFLICT;
Jacob Thornton's avatar
Jacob Thornton committed
1380
1381
1382
1383
    return Collapse._jQueryInterface;
  };

  return Collapse;
Mark Otto's avatar
dist    
Mark Otto committed
1384
}($);
Jacob Thornton's avatar
Jacob Thornton committed
1385
1386
1387

/**
 * --------------------------------------------------------------------------
Mark Otto's avatar
Mark Otto committed
1388
 * Bootstrap (v4.0.0): dropdown.js
Jacob Thornton's avatar
Jacob Thornton committed
1389
1390
1391
1392
 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
 * --------------------------------------------------------------------------
 */

Mark Otto's avatar
dist    
Mark Otto committed
1393
var Dropdown = function ($$$1) {
Jacob Thornton's avatar
Jacob Thornton committed
1394
1395
1396
1397
1398
1399
  /**
   * ------------------------------------------------------------------------
   * Constants
   * ------------------------------------------------------------------------
   */
  var NAME = 'dropdown';
Mark Otto's avatar
Mark Otto committed
1400
  var VERSION = '4.0.0';
Jacob Thornton's avatar
Jacob Thornton committed
1401
  var DATA_KEY = 'bs.dropdown';
Mark Otto's avatar
dist    
Mark Otto committed
1402
  var EVENT_KEY = "." + DATA_KEY;
Jacob Thornton's avatar
Jacob Thornton committed
1403
  var DATA_API_KEY = '.data-api';
Mark Otto's avatar
dist    
Mark Otto committed
1404
  var JQUERY_NO_CONFLICT = $$$1.fn[NAME];
Chris Rebert's avatar
grunt    
Chris Rebert committed
1405
  var ESCAPE_KEYCODE = 27; // KeyboardEvent.which value for Escape (Esc) key
Mark Otto's avatar
dist    
Mark Otto committed
1406

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

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

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

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

Chris Rebert's avatar
grunt    
Chris Rebert committed
1415
  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
1416

Mark Otto's avatar
dist    
Mark Otto committed
1417
  var REGEXP_KEYDOWN = new RegExp(ARROW_UP_KEYCODE + "|" + ARROW_DOWN_KEYCODE + "|" + ESCAPE_KEYCODE);
Jacob Thornton's avatar
Jacob Thornton committed
1418
  var Event = {
Mark Otto's avatar
dist    
Mark Otto committed
1419
1420
1421
1422
1423
1424
1425
1426
    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
1427
1428
1429
  };
  var ClassName = {
    DISABLED: 'disabled',
Mark Otto's avatar
build    
Mark Otto committed
1430
1431
    SHOW: 'show',
    DROPUP: 'dropup',
Mark Otto's avatar
dist    
Mark Otto committed
1432
1433
    DROPRIGHT: 'dropright',
    DROPLEFT: 'dropleft',
Mark Otto's avatar
build    
Mark Otto committed
1434
    MENURIGHT: 'dropdown-menu-right',
Mark Otto's avatar
dist    
Mark Otto committed
1435
1436
    MENULEFT: 'dropdown-menu-left',
    POSITION_STATIC: 'position-static'
Jacob Thornton's avatar
Jacob Thornton committed
1437
1438
1439
1440
  };
  var Selector = {
    DATA_TOGGLE: '[data-toggle="dropdown"]',
    FORM_CHILD: '.dropdown form',
Mark Otto's avatar
grunt    
Mark Otto committed
1441
    MENU: '.dropdown-menu',
Jacob Thornton's avatar
Jacob Thornton committed
1442
    NAVBAR_NAV: '.navbar-nav',
Mark Otto's avatar
grunt    
Mark Otto committed
1443
    VISIBLE_ITEMS: '.dropdown-menu .dropdown-item:not(.disabled)'
Jacob Thornton's avatar
Jacob Thornton committed
1444
  };
Johann-S's avatar
build    
Johann-S committed
1445
1446
  var AttachmentMap = {
    TOP: 'top-start',
Mark Otto's avatar
build    
Mark Otto committed
1447
1448
    TOPEND: 'top-end',
    BOTTOM: 'bottom-start',
Mark Otto's avatar
dist    
Mark Otto committed
1449
1450
1451
1452
1453
    BOTTOMEND: 'bottom-end',
    RIGHT: 'right-start',
    RIGHTEND: 'right-end',
    LEFT: 'left-start',
    LEFTEND: 'left-end'
Johann-S's avatar
build    
Johann-S committed
1454
1455
1456
  };
  var Default = {
    offset: 0,
Mark Otto's avatar
dist    
Mark Otto committed
1457
    flip: true,
Mark Otto's avatar
dist    
Mark Otto committed
1458
1459
    boundary: 'scrollParent',
    reference: 'toggle'
Johann-S's avatar
build    
Johann-S committed
1460
1461
  };
  var DefaultType = {
Mark Otto's avatar
dist    
Mark Otto committed
1462
    offset: '(number|string|function)',
Mark Otto's avatar
dist    
Mark Otto committed
1463
    flip: 'boolean',
Mark Otto's avatar
dist    
Mark Otto committed
1464
1465
    boundary: '(string|element)',
    reference: '(string|element)'
Mark Otto's avatar
dist    
Mark Otto committed
1466
1467
1468
1469
1470
    /**
     * ------------------------------------------------------------------------
     * Class Definition
     * ------------------------------------------------------------------------
     */
Jacob Thornton's avatar
Jacob Thornton committed
1471

Mark Otto's avatar
dist    
Mark Otto committed
1472
  };
Jacob Thornton's avatar
Jacob Thornton committed
1473

Mark Otto's avatar
dist    
Mark Otto committed
1474
1475
1476
1477
  var Dropdown =
  /*#__PURE__*/
  function () {
    function Dropdown(element, config) {
Jacob Thornton's avatar
Jacob Thornton committed
1478
      this._element = element;
Johann-S's avatar
build    
Johann-S committed
1479
1480
1481
      this._popper = null;
      this._config = this._getConfig(config);
      this._menu = this._getMenuElement();
Mark Otto's avatar
build    
Mark Otto committed
1482
      this._inNavbar = this._detectNavbar();
Jacob Thornton's avatar
Jacob Thornton committed
1483
1484

      this._addEventListeners();
Mark Otto's avatar
dist    
Mark Otto committed
1485
    } // Getters
Jacob Thornton's avatar
Jacob Thornton committed
1486
1487


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

Mark Otto's avatar
dist    
Mark Otto committed
1490
    // Public
Mark Otto's avatar
dist    
Mark Otto committed
1491
    _proto.toggle = function toggle() {
Mark Otto's avatar
dist    
Mark Otto committed
1492
      if (this._element.disabled || $$$1(this._element).hasClass(ClassName.DISABLED)) {
Johann-S's avatar
build    
Johann-S committed
1493
        return;
Mark Otto's avatar
grunt    
Mark Otto committed
1494
      }
Jacob Thornton's avatar
Jacob Thornton committed
1495

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

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

Mark Otto's avatar
grunt    
Mark Otto committed
1500
      Dropdown._clearMenus();
Jacob Thornton's avatar
Jacob Thornton committed
1501

Mark Otto's avatar
grunt    
Mark Otto committed
1502
      if (isActive) {
Johann-S's avatar
build    
Johann-S committed
1503
        return;
Mark Otto's avatar
grunt    
Mark Otto committed
1504
      }
Jacob Thornton's avatar
Jacob Thornton committed
1505

Mark Otto's avatar
grunt    
Mark Otto committed
1506
      var relatedTarget = {
Johann-S's avatar
build    
Johann-S committed
1507
        relatedTarget: this._element
Mark Otto's avatar
grunt    
Mark Otto committed
1508
      };
Mark Otto's avatar
dist    
Mark Otto committed
1509
1510
      var showEvent = $$$1.Event(Event.SHOW, relatedTarget);
      $$$1(parent).trigger(showEvent);
Jacob Thornton's avatar
Jacob Thornton committed
1511

Mark Otto's avatar
grunt    
Mark Otto committed
1512
      if (showEvent.isDefaultPrevented()) {
Johann-S's avatar
build    
Johann-S committed
1513
        return;
Mark Otto's avatar
dist    
Mark Otto committed
1514
      } // Disable totally Popper.js for Dropdown in Navbar
Mark Otto's avatar
dist    
Mark Otto committed
1515
1516


Mark Otto's avatar
dist    
Mark Otto committed
1517
1518
1519
1520
1521
1522
      if (!this._inNavbar) {
        /**
         * Check for Popper dependency
         * Popper - https://popper.js.org
         */
        if (typeof Popper === 'undefined') {
Mark Otto's avatar
dist    
Mark Otto committed
1523
          throw new TypeError('Bootstrap dropdown require Popper.js (https://popper.js.org)');
Mark Otto's avatar
dist    
Mark Otto committed
1524
        }
Jacob Thornton's avatar
Jacob Thornton committed
1525

Mark Otto's avatar
dist    
Mark Otto committed
1526
1527
1528
1529
1530
1531
        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
1532

Mark Otto's avatar
dist    
Mark Otto committed
1533
1534
          if (typeof this._config.reference.jquery !== 'undefined') {
            referenceElement = this._config.reference[0];
Mark Otto's avatar
dist    
Mark Otto committed
1535
          }
Mark Otto's avatar
dist    
Mark Otto committed
1536
1537
1538
1539
1540
1541
1542
        } // 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
1543
        }
Johann-S's avatar
build    
Johann-S committed
1544

Mark Otto's avatar
dist    
Mark Otto committed
1545
        this._popper = new Popper(referenceElement, this._menu, this._getPopperConfig());
Mark Otto's avatar
dist    
Mark Otto committed
1546
      } // If this is a touch-enabled device we add extra
Mark Otto's avatar
grunt    
Mark Otto committed
1547
1548
1549
      // 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
1550

Mark Otto's avatar
dist    
Mark Otto committed
1551

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

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

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

Mark Otto's avatar
dist    
Mark Otto committed
1560
1561
      $$$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
1562
    };
Jacob Thornton's avatar
Jacob Thornton committed
1563

Mark Otto's avatar
dist    
Mark Otto committed
1564
    _proto.dispose = function dispose() {
Mark Otto's avatar
dist    
Mark Otto committed
1565
1566
      $$$1.removeData(this._element, DATA_KEY);
      $$$1(this._element).off(EVENT_KEY);
Mark Otto's avatar
grunt    
Mark Otto committed
1567
      this._element = null;
Johann-S's avatar
build    
Johann-S committed
1568
      this._menu = null;
Mark Otto's avatar
dist    
Mark Otto committed
1569

Johann-S's avatar
build    
Johann-S committed
1570
1571
      if (this._popper !== null) {
        this._popper.destroy();
Mark Otto's avatar
dist    
Mark Otto committed
1572

Mark Otto's avatar
dist    
Mark Otto committed
1573
1574
        this._popper = null;
      }
Johann-S's avatar
build    
Johann-S committed
1575
1576
    };

Mark Otto's avatar
dist    
Mark Otto committed
1577
    _proto.update = function update() {
Mark Otto's avatar
build    
Mark Otto committed
1578
      this._inNavbar = this._detectNavbar();
Mark Otto's avatar
dist    
Mark Otto committed
1579

Johann-S's avatar
build    
Johann-S committed
1580
1581
1582
      if (this._popper !== null) {
        this._popper.scheduleUpdate();
      }
Mark Otto's avatar
dist    
Mark Otto committed
1583
    }; // Private
Jacob Thornton's avatar
Jacob Thornton committed
1584
1585


Mark Otto's avatar
dist    
Mark Otto committed
1586
    _proto._addEventListeners = function _addEventListeners() {
Mark Otto's avatar
dist    
Mark Otto committed
1587
      var _this = this;
Johann-S's avatar
build    
Johann-S committed
1588

Mark Otto's avatar
dist    
Mark Otto committed
1589
      $$$1(this._element).on(Event.CLICK, function (event) {
Johann-S's avatar
build    
Johann-S committed
1590
1591
        event.preventDefault();
        event.stopPropagation();
Mark Otto's avatar
dist    
Mark Otto committed
1592

Mark Otto's avatar
dist    
Mark Otto committed
1593
        _this.toggle();
Johann-S's avatar
build    
Johann-S committed
1594
1595
1596
      });
    };

Mark Otto's avatar
dist    
Mark Otto committed
1597
    _proto._getConfig = function _getConfig(config) {
Mark Otto's avatar
dist    
Mark Otto committed
1598
      config = _extends({}, this.constructor.Default, $$$1(this._element).data(), config);
Johann-S's avatar
build    
Johann-S committed
1599
1600
1601
1602
      Util.typeCheckConfig(NAME, config, this.constructor.DefaultType);
      return config;
    };

Mark Otto's avatar
dist    
Mark Otto committed
1603
    _proto._getMenuElement = function _getMenuElement() {
Johann-S's avatar
build    
Johann-S committed
1604
1605
      if (!this._menu) {
        var parent = Dropdown._getParentFromElement(this._element);
Mark Otto's avatar
dist    
Mark Otto committed
1606

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

Johann-S's avatar
build    
Johann-S committed
1610
      return this._menu;
Mark Otto's avatar
grunt    
Mark Otto committed
1611
    };
Jacob Thornton's avatar
Jacob Thornton committed
1612

Mark Otto's avatar
dist    
Mark Otto committed
1613
    _proto._getPlacement = function _getPlacement() {
Mark Otto's avatar
dist    
Mark Otto committed
1614
      var $parentDropdown = $$$1(this._element).parent();
Mark Otto's avatar
dist    
Mark Otto committed
1615
      var placement = AttachmentMap.BOTTOM; // Handle dropup
Mark Otto's avatar
build    
Mark Otto committed
1616

Mark Otto's avatar
dist    
Mark Otto committed
1617
      if ($parentDropdown.hasClass(ClassName.DROPUP)) {
Mark Otto's avatar
build    
Mark Otto committed
1618
        placement = AttachmentMap.TOP;
Mark Otto's avatar
dist    
Mark Otto committed
1619

Mark Otto's avatar
dist    
Mark Otto committed
1620
        if ($$$1(this._menu).hasClass(ClassName.MENURIGHT)) {
Mark Otto's avatar
build    
Mark Otto committed
1621
1622
          placement = AttachmentMap.TOPEND;
        }
Mark Otto's avatar
dist    
Mark Otto committed
1623
1624
1625
1626
      } 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
1627
      } else if ($$$1(this._menu).hasClass(ClassName.MENURIGHT)) {
Mark Otto's avatar
build    
Mark Otto committed
1628
        placement = AttachmentMap.BOTTOMEND;
Mark Otto's avatar
build    
Mark Otto committed
1629
      }
Mark Otto's avatar
dist    
Mark Otto committed
1630

Mark Otto's avatar
build    
Mark Otto committed
1631
1632
1633
      return placement;
    };

Mark Otto's avatar
dist    
Mark Otto committed
1634
    _proto._detectNavbar = function _detectNavbar() {
Mark Otto's avatar
dist    
Mark Otto committed
1635
      return $$$1(this._element).closest('.navbar').length > 0;
Mark Otto's avatar
build    
Mark Otto committed
1636
1637
    };

Mark Otto's avatar
dist    
Mark Otto committed
1638
    _proto._getPopperConfig = function _getPopperConfig() {
Mark Otto's avatar
dist    
Mark Otto committed
1639
1640
1641
1642
1643
1644
      var _this2 = this;

      var offsetConf = {};

      if (typeof this._config.offset === 'function') {
        offsetConf.fn = function (data) {
Mark Otto's avatar
dist    
Mark Otto committed
1645
          data.offsets = _extends({}, data.offsets, _this2._config.offset(data.offsets) || {});
Mark Otto's avatar
dist    
Mark Otto committed
1646
1647
1648
1649
1650
1651
          return data;
        };
      } else {
        offsetConf.offset = this._config.offset;
      }

Mark Otto's avatar
build    
Mark Otto committed
1652
1653
1654
      var popperConfig = {
        placement: this._getPlacement(),
        modifiers: {
Mark Otto's avatar
dist    
Mark Otto committed
1655
          offset: offsetConf,
Mark Otto's avatar
build    
Mark Otto committed
1656
1657
          flip: {
            enabled: this._config.flip
Mark Otto's avatar
dist    
Mark Otto committed
1658
1659
1660
          },
          preventOverflow: {
            boundariesElement: this._config.boundary
Mark Otto's avatar
build    
Mark Otto committed
1661
          }
Mark Otto's avatar
dist    
Mark Otto committed
1662
        }
Mark Otto's avatar
dist    
Mark Otto committed
1663
      };
Mark Otto's avatar
build    
Mark Otto committed
1664
      return popperConfig;
Mark Otto's avatar
dist    
Mark Otto committed
1665
    }; // Static
Mark Otto's avatar
build    
Mark Otto committed
1666

Jacob Thornton's avatar
Jacob Thornton committed
1667

Mark Otto's avatar
grunt    
Mark Otto committed
1668
1669
    Dropdown._jQueryInterface = function _jQueryInterface(config) {
      return this.each(function () {
Mark Otto's avatar
dist    
Mark Otto committed
1670
        var data = $$$1(this).data(DATA_KEY);
Mark Otto's avatar
dist    
Mark Otto committed
1671
1672

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

Mark Otto's avatar
grunt    
Mark Otto committed
1674
        if (!data) {
Johann-S's avatar
build    
Johann-S committed
1675
          data = new Dropdown(this, _config);
Mark Otto's avatar
dist    
Mark Otto committed
1676
          $$$1(this).data(DATA_KEY, data);
Jacob Thornton's avatar
Jacob Thornton committed
1677
1678
        }

Mark Otto's avatar
grunt    
Mark Otto committed
1679
        if (typeof config === 'string') {
Mark Otto's avatar
dist    
Mark Otto committed
1680
          if (typeof data[config] === 'undefined') {
Mark Otto's avatar
dist    
Mark Otto committed
1681
            throw new TypeError("No method named \"" + config + "\"");
Mark Otto's avatar
grunt    
Mark Otto committed
1682
          }
Mark Otto's avatar
dist    
Mark Otto committed
1683

Johann-S's avatar
build    
Johann-S committed
1684
          data[config]();
Jacob Thornton's avatar
Jacob Thornton committed
1685
        }
Mark Otto's avatar
grunt    
Mark Otto committed
1686
1687
      });
    };
Jacob Thornton's avatar
Jacob Thornton committed
1688

Mark Otto's avatar
grunt    
Mark Otto committed
1689
    Dropdown._clearMenus = function _clearMenus(event) {
Mark Otto's avatar
grunt    
Mark Otto committed
1690
      if (event && (event.which === RIGHT_MOUSE_BUTTON_WHICH || event.type === 'keyup' && event.which !== TAB_KEYCODE)) {
Mark Otto's avatar
grunt    
Mark Otto committed
1691
1692
        return;
      }
Jacob Thornton's avatar
Jacob Thornton committed
1693

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

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

Mark Otto's avatar
dist    
Mark Otto committed
1699
        var context = $$$1(toggles[i]).data(DATA_KEY);
Mark Otto's avatar
grunt    
Mark Otto committed
1700
1701
1702
        var relatedTarget = {
          relatedTarget: toggles[i]
        };
Jacob Thornton's avatar
Jacob Thornton committed
1703

Johann-S's avatar
build    
Johann-S committed
1704
1705
1706
1707
1708
        if (!context) {
          continue;
        }

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

Mark Otto's avatar
dist    
Mark Otto committed
1710
        if (!$$$1(parent).hasClass(ClassName.SHOW)) {
Mark Otto's avatar
grunt    
Mark Otto committed
1711
1712
          continue;
        }
Jacob Thornton's avatar
Jacob Thornton committed
1713

Mark Otto's avatar
dist    
Mark Otto committed
1714
        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
1715
1716
          continue;
        }
Jacob Thornton's avatar
Jacob Thornton committed
1717

Mark Otto's avatar
dist    
Mark Otto committed
1718
1719
        var hideEvent = $$$1.Event(Event.HIDE, relatedTarget);
        $$$1(parent).trigger(hideEvent);
Mark Otto's avatar
dist    
Mark Otto committed
1720

Mark Otto's avatar
grunt    
Mark Otto committed
1721
1722
        if (hideEvent.isDefaultPrevented()) {
          continue;
Mark Otto's avatar
dist    
Mark Otto committed
1723
        } // If this is a touch-enabled device we remove the extra
Mark Otto's avatar
grunt    
Mark Otto committed
1724
        // empty mouseover listeners we added for iOS support
Mark Otto's avatar
dist    
Mark Otto committed
1725
1726


Mark Otto's avatar
grunt    
Mark Otto committed
1727
        if ('ontouchstart' in document.documentElement) {
Mark Otto's avatar
dist    
Mark Otto committed
1728
          $$$1('body').children().off('mouseover', null, $$$1.noop);
Mark Otto's avatar
grunt    
Mark Otto committed
1729
1730
        }

Mark Otto's avatar
grunt    
Mark Otto committed
1731
        toggles[i].setAttribute('aria-expanded', 'false');
Mark Otto's avatar
dist    
Mark Otto committed
1732
1733
        $$$1(dropdownMenu).removeClass(ClassName.SHOW);
        $$$1(parent).removeClass(ClassName.SHOW).trigger($$$1.Event(Event.HIDDEN, relatedTarget));
Jacob Thornton's avatar
Jacob Thornton committed
1734
      }
Mark Otto's avatar
grunt    
Mark Otto committed
1735
    };
Jacob Thornton's avatar
Jacob Thornton committed
1736

Mark Otto's avatar
grunt    
Mark Otto committed
1737
    Dropdown._getParentFromElement = function _getParentFromElement(element) {
Mark Otto's avatar
dist    
Mark Otto committed
1738
      var parent;
Mark Otto's avatar
grunt    
Mark Otto committed
1739
      var selector = Util.getSelectorFromElement(element);
Jacob Thornton's avatar
Jacob Thornton committed
1740

Mark Otto's avatar
grunt    
Mark Otto committed
1741
      if (selector) {
Mark Otto's avatar
dist    
Mark Otto committed
1742
        parent = $$$1(selector)[0];
Jacob Thornton's avatar
Jacob Thornton committed
1743
1744
      }

Mark Otto's avatar
grunt    
Mark Otto committed
1745
      return parent || element.parentNode;
Mark Otto's avatar
dist    
Mark Otto committed
1746
1747
    }; // eslint-disable-next-line complexity

Jacob Thornton's avatar
Jacob Thornton committed
1748

Mark Otto's avatar
grunt    
Mark Otto committed
1749
    Dropdown._dataApiKeydownHandler = function _dataApiKeydownHandler(event) {
Mark Otto's avatar
dist    
Mark Otto committed
1750
1751
1752
1753
1754
1755
1756
1757
      // 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
1758
1759
        return;
      }
Jacob Thornton's avatar
Jacob Thornton committed
1760

Mark Otto's avatar
grunt    
Mark Otto committed
1761
1762
      event.preventDefault();
      event.stopPropagation();
Jacob Thornton's avatar
Jacob Thornton committed
1763

Mark Otto's avatar
dist    
Mark Otto committed
1764
      if (this.disabled || $$$1(this).hasClass(ClassName.DISABLED)) {
Mark Otto's avatar
grunt    
Mark Otto committed
1765
1766
        return;
      }
Jacob Thornton's avatar
Jacob Thornton committed
1767

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

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

Mark Otto's avatar
grunt    
Mark Otto committed
1772
      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
1773
        if (event.which === ESCAPE_KEYCODE) {
Mark Otto's avatar
dist    
Mark Otto committed
1774
1775
          var toggle = $$$1(parent).find(Selector.DATA_TOGGLE)[0];
          $$$1(toggle).trigger('focus');
Jacob Thornton's avatar
Jacob Thornton committed
1776
1777
        }

Mark Otto's avatar
dist    
Mark Otto committed
1778
        $$$1(this).trigger('click');
Mark Otto's avatar
grunt    
Mark Otto committed
1779
1780
        return;
      }
Jacob Thornton's avatar
Jacob Thornton committed
1781

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

Mark Otto's avatar
dist    
Mark Otto committed
1784
      if (items.length === 0) {
Mark Otto's avatar
grunt    
Mark Otto committed
1785
1786
        return;
      }
Jacob Thornton's avatar
Jacob Thornton committed
1787

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

Mark Otto's avatar
grunt    
Mark Otto committed
1790
      if (event.which === ARROW_UP_KEYCODE && index > 0) {
Mark Otto's avatar
dist    
Mark Otto committed
1791
        // Up
Mark Otto's avatar
grunt    
Mark Otto committed
1792
1793
        index--;
      }
Jacob Thornton's avatar
Jacob Thornton committed
1794

Mark Otto's avatar
grunt    
Mark Otto committed
1795
      if (event.which === ARROW_DOWN_KEYCODE && index < items.length - 1) {
Mark Otto's avatar
dist    
Mark Otto committed
1796
        // Down
Mark Otto's avatar
grunt    
Mark Otto committed
1797
1798
        index++;
      }
Jacob Thornton's avatar
Jacob Thornton committed
1799

Mark Otto's avatar
grunt    
Mark Otto committed
1800
1801
      if (index < 0) {
        index = 0;
Jacob Thornton's avatar
Jacob Thornton committed
1802
      }
Mark Otto's avatar
grunt    
Mark Otto committed
1803
1804
1805
1806

      items[index].focus();
    };

Mark Otto's avatar
Mark Otto committed
1807
    _createClass(Dropdown, null, [{
Mark Otto's avatar
dist    
Mark Otto committed
1808
      key: "VERSION",
Jacob Thornton's avatar
Jacob Thornton committed
1809
1810
1811
      get: function get() {
        return VERSION;
      }
Johann-S's avatar
build    
Johann-S committed
1812
    }, {
Mark Otto's avatar
dist    
Mark Otto committed
1813
      key: "Default",
Johann-S's avatar
build    
Johann-S committed
1814
1815
1816
1817
      get: function get() {
        return Default;
      }
    }, {
Mark Otto's avatar
dist    
Mark Otto committed
1818
      key: "DefaultType",
Johann-S's avatar
build    
Johann-S committed
1819
1820
1821
      get: function get() {
        return DefaultType;
      }
Jacob Thornton's avatar
Jacob Thornton committed
1822
1823
    }]);
    return Dropdown;
Mark Otto's avatar
grunt    
Mark Otto committed
1824
1825
1826
1827
1828
1829
  }();
  /**
   * ------------------------------------------------------------------------
   * Data Api implementation
   * ------------------------------------------------------------------------
   */
Jacob Thornton's avatar
Jacob Thornton committed
1830

Mark Otto's avatar
dist    
Mark Otto committed
1831

Mark Otto's avatar
dist    
Mark Otto committed
1832
  $$$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
1833
1834
    event.preventDefault();
    event.stopPropagation();
Mark Otto's avatar
dist    
Mark Otto committed
1835

Mark Otto's avatar
dist    
Mark Otto committed
1836
    Dropdown._jQueryInterface.call($$$1(this), 'toggle');
Johann-S's avatar
build    
Johann-S committed
1837
  }).on(Event.CLICK_DATA_API, Selector.FORM_CHILD, function (e) {
Jacob Thornton's avatar
Jacob Thornton committed
1838
    e.stopPropagation();
Mark Otto's avatar
Mark Otto committed
1839
  });
Jacob Thornton's avatar
Jacob Thornton committed
1840
1841
1842
1843
1844
1845
  /**
   * ------------------------------------------------------------------------
   * jQuery
   * ------------------------------------------------------------------------
   */

Mark Otto's avatar
dist    
Mark Otto committed
1846
1847
  $$$1.fn[NAME] = Dropdown._jQueryInterface;
  $$$1.fn[NAME].Constructor = Dropdown;
Mark Otto's avatar
dist    
Mark Otto committed
1848

Mark Otto's avatar
dist    
Mark Otto committed
1849
1850
  $$$1.fn[NAME].noConflict = function () {
    $$$1.fn[NAME] = JQUERY_NO_CONFLICT;
Jacob Thornton's avatar
Jacob Thornton committed
1851
1852
1853
1854
    return Dropdown._jQueryInterface;
  };

  return Dropdown;
Mark Otto's avatar
dist    
Mark Otto committed
1855
}($, Popper);
Jacob Thornton's avatar
Jacob Thornton committed
1856
1857
1858

/**
 * --------------------------------------------------------------------------
Mark Otto's avatar
Mark Otto committed
1859
 * Bootstrap (v4.0.0): modal.js
Jacob Thornton's avatar
Jacob Thornton committed
1860
1861
1862
1863
 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
 * --------------------------------------------------------------------------
 */

Mark Otto's avatar
dist    
Mark Otto committed
1864
var Modal = function ($$$1) {
Jacob Thornton's avatar
Jacob Thornton committed
1865
1866
1867
1868
1869
1870
  /**
   * ------------------------------------------------------------------------
   * Constants
   * ------------------------------------------------------------------------
   */
  var NAME = 'modal';
Mark Otto's avatar
Mark Otto committed
1871
  var VERSION = '4.0.0';
Jacob Thornton's avatar
Jacob Thornton committed
1872
  var DATA_KEY = 'bs.modal';
Mark Otto's avatar
dist    
Mark Otto committed
1873
  var EVENT_KEY = "." + DATA_KEY;
Jacob Thornton's avatar
Jacob Thornton committed
1874
  var DATA_API_KEY = '.data-api';
Mark Otto's avatar
dist    
Mark Otto committed
1875
  var JQUERY_NO_CONFLICT = $$$1.fn[NAME];
Jacob Thornton's avatar
Jacob Thornton committed
1876
1877
  var TRANSITION_DURATION = 300;
  var BACKDROP_TRANSITION_DURATION = 150;
Chris Rebert's avatar
grunt    
Chris Rebert committed
1878
  var ESCAPE_KEYCODE = 27; // KeyboardEvent.which value for Escape (Esc) key
Jacob Thornton's avatar
Jacob Thornton committed
1879
1880
1881
1882
1883
1884
1885
1886
1887
1888
1889
1890
1891
1892

  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
1893
1894
1895
1896
1897
1898
1899
1900
1901
1902
1903
    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
1904
1905
1906
1907
1908
1909
  };
  var ClassName = {
    SCROLLBAR_MEASURER: 'modal-scrollbar-measure',
    BACKDROP: 'modal-backdrop',
    OPEN: 'modal-open',
    FADE: 'fade',
Mark Otto's avatar
grunt    
Mark Otto committed
1910
    SHOW: 'show'
Jacob Thornton's avatar
Jacob Thornton committed
1911
1912
1913
1914
1915
  };
  var Selector = {
    DIALOG: '.modal-dialog',
    DATA_TOGGLE: '[data-toggle="modal"]',
    DATA_DISMISS: '[data-dismiss="modal"]',
Mark Otto's avatar
grunt    
Mark Otto committed
1916
    FIXED_CONTENT: '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top',
Mark Otto's avatar
dist    
Mark Otto committed
1917
    STICKY_CONTENT: '.sticky-top',
Mark Otto's avatar
grunt    
Mark Otto committed
1918
    NAVBAR_TOGGLER: '.navbar-toggler'
Mark Otto's avatar
dist    
Mark Otto committed
1919
1920
1921
1922
1923
    /**
     * ------------------------------------------------------------------------
     * Class Definition
     * ------------------------------------------------------------------------
     */
Jacob Thornton's avatar
Jacob Thornton committed
1924

Mark Otto's avatar
dist    
Mark Otto committed
1925
  };
Jacob Thornton's avatar
Jacob Thornton committed
1926

Mark Otto's avatar
dist    
Mark Otto committed
1927
1928
1929
1930
  var Modal =
  /*#__PURE__*/
  function () {
    function Modal(element, config) {
Jacob Thornton's avatar
Jacob Thornton committed
1931
1932
      this._config = this._getConfig(config);
      this._element = element;
Mark Otto's avatar
dist    
Mark Otto committed
1933
      this._dialog = $$$1(element).find(Selector.DIALOG)[0];
Jacob Thornton's avatar
Jacob Thornton committed
1934
1935
1936
1937
1938
1939
      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
1940
    } // Getters
Jacob Thornton's avatar
Jacob Thornton committed
1941
1942


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

Mark Otto's avatar
dist    
Mark Otto committed
1945
    // Public
Mark Otto's avatar
dist    
Mark Otto committed
1946
    _proto.toggle = function toggle(relatedTarget) {
Mark Otto's avatar
grunt    
Mark Otto committed
1947
1948
      return this._isShown ? this.hide() : this.show(relatedTarget);
    };
Jacob Thornton's avatar
Jacob Thornton committed
1949

Mark Otto's avatar
dist    
Mark Otto committed
1950
    _proto.show = function show(relatedTarget) {
Mark Otto's avatar
dist    
Mark Otto committed
1951
      var _this = this;
Jacob Thornton's avatar
Jacob Thornton committed
1952

Mark Otto's avatar
dist    
Mark Otto committed
1953
      if (this._isTransitioning || this._isShown) {
Mark Otto's avatar
grunt    
Mark Otto committed
1954
        return;
Mark Otto's avatar
grunt    
Mark Otto committed
1955
1956
      }

Mark Otto's avatar
dist    
Mark Otto committed
1957
      if (Util.supportsTransitionEnd() && $$$1(this._element).hasClass(ClassName.FADE)) {
Mark Otto's avatar
grunt    
Mark Otto committed
1958
1959
        this._isTransitioning = true;
      }
Mark Otto's avatar
grunt    
Mark Otto committed
1960

Mark Otto's avatar
dist    
Mark Otto committed
1961
      var showEvent = $$$1.Event(Event.SHOW, {
Mark Otto's avatar
grunt    
Mark Otto committed
1962
1963
        relatedTarget: relatedTarget
      });
Mark Otto's avatar
dist    
Mark Otto committed
1964
      $$$1(this._element).trigger(showEvent);
Jacob Thornton's avatar
Jacob Thornton committed
1965

Mark Otto's avatar
grunt    
Mark Otto committed
1966
1967
1968
      if (this._isShown || showEvent.isDefaultPrevented()) {
        return;
      }
Jacob Thornton's avatar
Jacob Thornton committed
1969

Mark Otto's avatar
grunt    
Mark Otto committed
1970
      this._isShown = true;
Jacob Thornton's avatar
Jacob Thornton committed
1971

Mark Otto's avatar
grunt    
Mark Otto committed
1972
      this._checkScrollbar();
Mark Otto's avatar
dist    
Mark Otto committed
1973

Mark Otto's avatar
grunt    
Mark Otto committed
1974
      this._setScrollbar();
Jacob Thornton's avatar
Jacob Thornton committed
1975

Mark Otto's avatar
dist    
Mark Otto committed
1976
1977
      this._adjustDialog();

Mark Otto's avatar
dist    
Mark Otto committed
1978
      $$$1(document.body).addClass(ClassName.OPEN);
Jacob Thornton's avatar
Jacob Thornton committed
1979

Mark Otto's avatar
grunt    
Mark Otto committed
1980
      this._setEscapeEvent();
Mark Otto's avatar
dist    
Mark Otto committed
1981

Mark Otto's avatar
grunt    
Mark Otto committed
1982
      this._setResizeEvent();
Jacob Thornton's avatar
Jacob Thornton committed
1983

Mark Otto's avatar
dist    
Mark Otto committed
1984
      $$$1(this._element).on(Event.CLICK_DISMISS, Selector.DATA_DISMISS, function (event) {
Mark Otto's avatar
dist    
Mark Otto committed
1985
        return _this.hide(event);
Mark Otto's avatar
grunt    
Mark Otto committed
1986
      });
Mark Otto's avatar
dist    
Mark Otto committed
1987
1988
1989
      $$$1(this._dialog).on(Event.MOUSEDOWN_DISMISS, function () {
        $$$1(_this._element).one(Event.MOUSEUP_DISMISS, function (event) {
          if ($$$1(event.target).is(_this._element)) {
Mark Otto's avatar
dist    
Mark Otto committed
1990
            _this._ignoreBackdropClick = true;
Mark Otto's avatar
grunt    
Mark Otto committed
1991
          }
Jacob Thornton's avatar
Jacob Thornton committed
1992
        });
Mark Otto's avatar
grunt    
Mark Otto committed
1993
1994
      });

Mark Otto's avatar
grunt    
Mark Otto committed
1995
      this._showBackdrop(function () {
Mark Otto's avatar
dist    
Mark Otto committed
1996
        return _this._showElement(relatedTarget);
Mark Otto's avatar
grunt    
Mark Otto committed
1997
      });
Mark Otto's avatar
grunt    
Mark Otto committed
1998
    };
Jacob Thornton's avatar
Jacob Thornton committed
1999

Mark Otto's avatar
dist    
Mark Otto committed
2000
    _proto.hide = function hide(event) {
For faster browsing, not all history is shown. View entire blame