Subversion Repositories oidplus

Rev

View as "text/javascript" | Blame | Last modification | View Log | RSS feed

  1. /*!
  2.   * Bootstrap v4.0.0 (https://getbootstrap.com)
  3.   * Copyright 2011-2018 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
  4.   * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
  5.   */
  6. (function (global, factory) {
  7.         typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('jquery'), require('popper.js')) :
  8.         typeof define === 'function' && define.amd ? define(['exports', 'jquery', 'popper.js'], factory) :
  9.         (factory((global.bootstrap = {}),global.jQuery,global.Popper));
  10. }(this, (function (exports,$,Popper) { 'use strict';
  11.  
  12. $ = $ && $.hasOwnProperty('default') ? $['default'] : $;
  13. Popper = Popper && Popper.hasOwnProperty('default') ? Popper['default'] : Popper;
  14.  
  15. function _defineProperties(target, props) {
  16.   for (var i = 0; i < props.length; i++) {
  17.     var descriptor = props[i];
  18.     descriptor.enumerable = descriptor.enumerable || false;
  19.     descriptor.configurable = true;
  20.     if ("value" in descriptor) descriptor.writable = true;
  21.     Object.defineProperty(target, descriptor.key, descriptor);
  22.   }
  23. }
  24.  
  25. function _createClass(Constructor, protoProps, staticProps) {
  26.   if (protoProps) _defineProperties(Constructor.prototype, protoProps);
  27.   if (staticProps) _defineProperties(Constructor, staticProps);
  28.   return Constructor;
  29. }
  30.  
  31. function _extends() {
  32.   _extends = Object.assign || function (target) {
  33.     for (var i = 1; i < arguments.length; i++) {
  34.       var source = arguments[i];
  35.  
  36.       for (var key in source) {
  37.         if (Object.prototype.hasOwnProperty.call(source, key)) {
  38.           target[key] = source[key];
  39.         }
  40.       }
  41.     }
  42.  
  43.     return target;
  44.   };
  45.  
  46.   return _extends.apply(this, arguments);
  47. }
  48.  
  49. function _inheritsLoose(subClass, superClass) {
  50.   subClass.prototype = Object.create(superClass.prototype);
  51.   subClass.prototype.constructor = subClass;
  52.   subClass.__proto__ = superClass;
  53. }
  54.  
  55. /**
  56.  * --------------------------------------------------------------------------
  57.  * Bootstrap (v4.0.0): util.js
  58.  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
  59.  * --------------------------------------------------------------------------
  60.  */
  61.  
  62. var Util = function ($$$1) {
  63.   /**
  64.    * ------------------------------------------------------------------------
  65.    * Private TransitionEnd Helpers
  66.    * ------------------------------------------------------------------------
  67.    */
  68.   var transition = false;
  69.   var MAX_UID = 1000000; // Shoutout AngusCroll (https://goo.gl/pxwQGp)
  70.  
  71.   function toType(obj) {
  72.     return {}.toString.call(obj).match(/\s([a-zA-Z]+)/)[1].toLowerCase();
  73.   }
  74.  
  75.   function getSpecialTransitionEndEvent() {
  76.     return {
  77.       bindType: transition.end,
  78.       delegateType: transition.end,
  79.       handle: function handle(event) {
  80.         if ($$$1(event.target).is(this)) {
  81.           return event.handleObj.handler.apply(this, arguments); // eslint-disable-line prefer-rest-params
  82.         }
  83.  
  84.         return undefined; // eslint-disable-line no-undefined
  85.       }
  86.     };
  87.   }
  88.  
  89.   function transitionEndTest() {
  90.     if (typeof window !== 'undefined' && window.QUnit) {
  91.       return false;
  92.     }
  93.  
  94.     return {
  95.       end: 'transitionend'
  96.     };
  97.   }
  98.  
  99.   function transitionEndEmulator(duration) {
  100.     var _this = this;
  101.  
  102.     var called = false;
  103.     $$$1(this).one(Util.TRANSITION_END, function () {
  104.       called = true;
  105.     });
  106.     setTimeout(function () {
  107.       if (!called) {
  108.         Util.triggerTransitionEnd(_this);
  109.       }
  110.     }, duration);
  111.     return this;
  112.   }
  113.  
  114.   function setTransitionEndSupport() {
  115.     transition = transitionEndTest();
  116.     $$$1.fn.emulateTransitionEnd = transitionEndEmulator;
  117.  
  118.     if (Util.supportsTransitionEnd()) {
  119.       $$$1.event.special[Util.TRANSITION_END] = getSpecialTransitionEndEvent();
  120.     }
  121.   }
  122.  
  123.   function escapeId(selector) {
  124.     // We escape IDs in case of special selectors (selector = '#myId:something')
  125.     // $.escapeSelector does not exist in jQuery < 3
  126.     selector = typeof $$$1.escapeSelector === 'function' ? $$$1.escapeSelector(selector).substr(1) : selector.replace(/(:|\.|\[|\]|,|=|@)/g, '\\$1');
  127.     return selector;
  128.   }
  129.   /**
  130.    * --------------------------------------------------------------------------
  131.    * Public Util Api
  132.    * --------------------------------------------------------------------------
  133.    */
  134.  
  135.  
  136.   var Util = {
  137.     TRANSITION_END: 'bsTransitionEnd',
  138.     getUID: function getUID(prefix) {
  139.       do {
  140.         // eslint-disable-next-line no-bitwise
  141.         prefix += ~~(Math.random() * MAX_UID); // "~~" acts like a faster Math.floor() here
  142.       } while (document.getElementById(prefix));
  143.  
  144.       return prefix;
  145.     },
  146.     getSelectorFromElement: function getSelectorFromElement(element) {
  147.       var selector = element.getAttribute('data-target');
  148.  
  149.       if (!selector || selector === '#') {
  150.         selector = element.getAttribute('href') || '';
  151.       } // If it's an ID
  152.  
  153.  
  154.       if (selector.charAt(0) === '#') {
  155.         selector = escapeId(selector);
  156.       }
  157.  
  158.       try {
  159.         var $selector = $$$1(document).find(selector);
  160.         return $selector.length > 0 ? selector : null;
  161.       } catch (err) {
  162.         return null;
  163.       }
  164.     },
  165.     reflow: function reflow(element) {
  166.       return element.offsetHeight;
  167.     },
  168.     triggerTransitionEnd: function triggerTransitionEnd(element) {
  169.       $$$1(element).trigger(transition.end);
  170.     },
  171.     supportsTransitionEnd: function supportsTransitionEnd() {
  172.       return Boolean(transition);
  173.     },
  174.     isElement: function isElement(obj) {
  175.       return (obj[0] || obj).nodeType;
  176.     },
  177.     typeCheckConfig: function typeCheckConfig(componentName, config, configTypes) {
  178.       for (var property in configTypes) {
  179.         if (Object.prototype.hasOwnProperty.call(configTypes, property)) {
  180.           var expectedTypes = configTypes[property];
  181.           var value = config[property];
  182.           var valueType = value && Util.isElement(value) ? 'element' : toType(value);
  183.  
  184.           if (!new RegExp(expectedTypes).test(valueType)) {
  185.             throw new Error(componentName.toUpperCase() + ": " + ("Option \"" + property + "\" provided type \"" + valueType + "\" ") + ("but expected type \"" + expectedTypes + "\"."));
  186.           }
  187.         }
  188.       }
  189.     }
  190.   };
  191.   setTransitionEndSupport();
  192.   return Util;
  193. }($);
  194.  
  195. /**
  196.  * --------------------------------------------------------------------------
  197.  * Bootstrap (v4.0.0): alert.js
  198.  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
  199.  * --------------------------------------------------------------------------
  200.  */
  201.  
  202. var Alert = function ($$$1) {
  203.   /**
  204.    * ------------------------------------------------------------------------
  205.    * Constants
  206.    * ------------------------------------------------------------------------
  207.    */
  208.   var NAME = 'alert';
  209.   var VERSION = '4.0.0';
  210.   var DATA_KEY = 'bs.alert';
  211.   var EVENT_KEY = "." + DATA_KEY;
  212.   var DATA_API_KEY = '.data-api';
  213.   var JQUERY_NO_CONFLICT = $$$1.fn[NAME];
  214.   var TRANSITION_DURATION = 150;
  215.   var Selector = {
  216.     DISMISS: '[data-dismiss="alert"]'
  217.   };
  218.   var Event = {
  219.     CLOSE: "close" + EVENT_KEY,
  220.     CLOSED: "closed" + EVENT_KEY,
  221.     CLICK_DATA_API: "click" + EVENT_KEY + DATA_API_KEY
  222.   };
  223.   var ClassName = {
  224.     ALERT: 'alert',
  225.     FADE: 'fade',
  226.     SHOW: 'show'
  227.     /**
  228.      * ------------------------------------------------------------------------
  229.      * Class Definition
  230.      * ------------------------------------------------------------------------
  231.      */
  232.  
  233.   };
  234.  
  235.   var Alert =
  236.   /*#__PURE__*/
  237.   function () {
  238.     function Alert(element) {
  239.       this._element = element;
  240.     } // Getters
  241.  
  242.  
  243.     var _proto = Alert.prototype;
  244.  
  245.     // Public
  246.     _proto.close = function close(element) {
  247.       element = element || this._element;
  248.  
  249.       var rootElement = this._getRootElement(element);
  250.  
  251.       var customEvent = this._triggerCloseEvent(rootElement);
  252.  
  253.       if (customEvent.isDefaultPrevented()) {
  254.         return;
  255.       }
  256.  
  257.       this._removeElement(rootElement);
  258.     };
  259.  
  260.     _proto.dispose = function dispose() {
  261.       $$$1.removeData(this._element, DATA_KEY);
  262.       this._element = null;
  263.     }; // Private
  264.  
  265.  
  266.     _proto._getRootElement = function _getRootElement(element) {
  267.       var selector = Util.getSelectorFromElement(element);
  268.       var parent = false;
  269.  
  270.       if (selector) {
  271.         parent = $$$1(selector)[0];
  272.       }
  273.  
  274.       if (!parent) {
  275.         parent = $$$1(element).closest("." + ClassName.ALERT)[0];
  276.       }
  277.  
  278.       return parent;
  279.     };
  280.  
  281.     _proto._triggerCloseEvent = function _triggerCloseEvent(element) {
  282.       var closeEvent = $$$1.Event(Event.CLOSE);
  283.       $$$1(element).trigger(closeEvent);
  284.       return closeEvent;
  285.     };
  286.  
  287.     _proto._removeElement = function _removeElement(element) {
  288.       var _this = this;
  289.  
  290.       $$$1(element).removeClass(ClassName.SHOW);
  291.  
  292.       if (!Util.supportsTransitionEnd() || !$$$1(element).hasClass(ClassName.FADE)) {
  293.         this._destroyElement(element);
  294.  
  295.         return;
  296.       }
  297.  
  298.       $$$1(element).one(Util.TRANSITION_END, function (event) {
  299.         return _this._destroyElement(element, event);
  300.       }).emulateTransitionEnd(TRANSITION_DURATION);
  301.     };
  302.  
  303.     _proto._destroyElement = function _destroyElement(element) {
  304.       $$$1(element).detach().trigger(Event.CLOSED).remove();
  305.     }; // Static
  306.  
  307.  
  308.     Alert._jQueryInterface = function _jQueryInterface(config) {
  309.       return this.each(function () {
  310.         var $element = $$$1(this);
  311.         var data = $element.data(DATA_KEY);
  312.  
  313.         if (!data) {
  314.           data = new Alert(this);
  315.           $element.data(DATA_KEY, data);
  316.         }
  317.  
  318.         if (config === 'close') {
  319.           data[config](this);
  320.         }
  321.       });
  322.     };
  323.  
  324.     Alert._handleDismiss = function _handleDismiss(alertInstance) {
  325.       return function (event) {
  326.         if (event) {
  327.           event.preventDefault();
  328.         }
  329.  
  330.         alertInstance.close(this);
  331.       };
  332.     };
  333.  
  334.     _createClass(Alert, null, [{
  335.       key: "VERSION",
  336.       get: function get() {
  337.         return VERSION;
  338.       }
  339.     }]);
  340.     return Alert;
  341.   }();
  342.   /**
  343.    * ------------------------------------------------------------------------
  344.    * Data Api implementation
  345.    * ------------------------------------------------------------------------
  346.    */
  347.  
  348.  
  349.   $$$1(document).on(Event.CLICK_DATA_API, Selector.DISMISS, Alert._handleDismiss(new Alert()));
  350.   /**
  351.    * ------------------------------------------------------------------------
  352.    * jQuery
  353.    * ------------------------------------------------------------------------
  354.    */
  355.  
  356.   $$$1.fn[NAME] = Alert._jQueryInterface;
  357.   $$$1.fn[NAME].Constructor = Alert;
  358.  
  359.   $$$1.fn[NAME].noConflict = function () {
  360.     $$$1.fn[NAME] = JQUERY_NO_CONFLICT;
  361.     return Alert._jQueryInterface;
  362.   };
  363.  
  364.   return Alert;
  365. }($);
  366.  
  367. /**
  368.  * --------------------------------------------------------------------------
  369.  * Bootstrap (v4.0.0): button.js
  370.  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
  371.  * --------------------------------------------------------------------------
  372.  */
  373.  
  374. var Button = function ($$$1) {
  375.   /**
  376.    * ------------------------------------------------------------------------
  377.    * Constants
  378.    * ------------------------------------------------------------------------
  379.    */
  380.   var NAME = 'button';
  381.   var VERSION = '4.0.0';
  382.   var DATA_KEY = 'bs.button';
  383.   var EVENT_KEY = "." + DATA_KEY;
  384.   var DATA_API_KEY = '.data-api';
  385.   var JQUERY_NO_CONFLICT = $$$1.fn[NAME];
  386.   var ClassName = {
  387.     ACTIVE: 'active',
  388.     BUTTON: 'btn',
  389.     FOCUS: 'focus'
  390.   };
  391.   var Selector = {
  392.     DATA_TOGGLE_CARROT: '[data-toggle^="button"]',
  393.     DATA_TOGGLE: '[data-toggle="buttons"]',
  394.     INPUT: 'input',
  395.     ACTIVE: '.active',
  396.     BUTTON: '.btn'
  397.   };
  398.   var Event = {
  399.     CLICK_DATA_API: "click" + EVENT_KEY + DATA_API_KEY,
  400.     FOCUS_BLUR_DATA_API: "focus" + EVENT_KEY + DATA_API_KEY + " " + ("blur" + EVENT_KEY + DATA_API_KEY)
  401.     /**
  402.      * ------------------------------------------------------------------------
  403.      * Class Definition
  404.      * ------------------------------------------------------------------------
  405.      */
  406.  
  407.   };
  408.  
  409.   var Button =
  410.   /*#__PURE__*/
  411.   function () {
  412.     function Button(element) {
  413.       this._element = element;
  414.     } // Getters
  415.  
  416.  
  417.     var _proto = Button.prototype;
  418.  
  419.     // Public
  420.     _proto.toggle = function toggle() {
  421.       var triggerChangeEvent = true;
  422.       var addAriaPressed = true;
  423.       var rootElement = $$$1(this._element).closest(Selector.DATA_TOGGLE)[0];
  424.  
  425.       if (rootElement) {
  426.         var input = $$$1(this._element).find(Selector.INPUT)[0];
  427.  
  428.         if (input) {
  429.           if (input.type === 'radio') {
  430.             if (input.checked && $$$1(this._element).hasClass(ClassName.ACTIVE)) {
  431.               triggerChangeEvent = false;
  432.             } else {
  433.               var activeElement = $$$1(rootElement).find(Selector.ACTIVE)[0];
  434.  
  435.               if (activeElement) {
  436.                 $$$1(activeElement).removeClass(ClassName.ACTIVE);
  437.               }
  438.             }
  439.           }
  440.  
  441.           if (triggerChangeEvent) {
  442.             if (input.hasAttribute('disabled') || rootElement.hasAttribute('disabled') || input.classList.contains('disabled') || rootElement.classList.contains('disabled')) {
  443.               return;
  444.             }
  445.  
  446.             input.checked = !$$$1(this._element).hasClass(ClassName.ACTIVE);
  447.             $$$1(input).trigger('change');
  448.           }
  449.  
  450.           input.focus();
  451.           addAriaPressed = false;
  452.         }
  453.       }
  454.  
  455.       if (addAriaPressed) {
  456.         this._element.setAttribute('aria-pressed', !$$$1(this._element).hasClass(ClassName.ACTIVE));
  457.       }
  458.  
  459.       if (triggerChangeEvent) {
  460.         $$$1(this._element).toggleClass(ClassName.ACTIVE);
  461.       }
  462.     };
  463.  
  464.     _proto.dispose = function dispose() {
  465.       $$$1.removeData(this._element, DATA_KEY);
  466.       this._element = null;
  467.     }; // Static
  468.  
  469.  
  470.     Button._jQueryInterface = function _jQueryInterface(config) {
  471.       return this.each(function () {
  472.         var data = $$$1(this).data(DATA_KEY);
  473.  
  474.         if (!data) {
  475.           data = new Button(this);
  476.           $$$1(this).data(DATA_KEY, data);
  477.         }
  478.  
  479.         if (config === 'toggle') {
  480.           data[config]();
  481.         }
  482.       });
  483.     };
  484.  
  485.     _createClass(Button, null, [{
  486.       key: "VERSION",
  487.       get: function get() {
  488.         return VERSION;
  489.       }
  490.     }]);
  491.     return Button;
  492.   }();
  493.   /**
  494.    * ------------------------------------------------------------------------
  495.    * Data Api implementation
  496.    * ------------------------------------------------------------------------
  497.    */
  498.  
  499.  
  500.   $$$1(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE_CARROT, function (event) {
  501.     event.preventDefault();
  502.     var button = event.target;
  503.  
  504.     if (!$$$1(button).hasClass(ClassName.BUTTON)) {
  505.       button = $$$1(button).closest(Selector.BUTTON);
  506.     }
  507.  
  508.     Button._jQueryInterface.call($$$1(button), 'toggle');
  509.   }).on(Event.FOCUS_BLUR_DATA_API, Selector.DATA_TOGGLE_CARROT, function (event) {
  510.     var button = $$$1(event.target).closest(Selector.BUTTON)[0];
  511.     $$$1(button).toggleClass(ClassName.FOCUS, /^focus(in)?$/.test(event.type));
  512.   });
  513.   /**
  514.    * ------------------------------------------------------------------------
  515.    * jQuery
  516.    * ------------------------------------------------------------------------
  517.    */
  518.  
  519.   $$$1.fn[NAME] = Button._jQueryInterface;
  520.   $$$1.fn[NAME].Constructor = Button;
  521.  
  522.   $$$1.fn[NAME].noConflict = function () {
  523.     $$$1.fn[NAME] = JQUERY_NO_CONFLICT;
  524.     return Button._jQueryInterface;
  525.   };
  526.  
  527.   return Button;
  528. }($);
  529.  
  530. /**
  531.  * --------------------------------------------------------------------------
  532.  * Bootstrap (v4.0.0): carousel.js
  533.  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
  534.  * --------------------------------------------------------------------------
  535.  */
  536.  
  537. var Carousel = function ($$$1) {
  538.   /**
  539.    * ------------------------------------------------------------------------
  540.    * Constants
  541.    * ------------------------------------------------------------------------
  542.    */
  543.   var NAME = 'carousel';
  544.   var VERSION = '4.0.0';
  545.   var DATA_KEY = 'bs.carousel';
  546.   var EVENT_KEY = "." + DATA_KEY;
  547.   var DATA_API_KEY = '.data-api';
  548.   var JQUERY_NO_CONFLICT = $$$1.fn[NAME];
  549.   var TRANSITION_DURATION = 600;
  550.   var ARROW_LEFT_KEYCODE = 37; // KeyboardEvent.which value for left arrow key
  551.  
  552.   var ARROW_RIGHT_KEYCODE = 39; // KeyboardEvent.which value for right arrow key
  553.  
  554.   var TOUCHEVENT_COMPAT_WAIT = 500; // Time for mouse compat events to fire after touch
  555.  
  556.   var Default = {
  557.     interval: 5000,
  558.     keyboard: true,
  559.     slide: false,
  560.     pause: 'hover',
  561.     wrap: true
  562.   };
  563.   var DefaultType = {
  564.     interval: '(number|boolean)',
  565.     keyboard: 'boolean',
  566.     slide: '(boolean|string)',
  567.     pause: '(string|boolean)',
  568.     wrap: 'boolean'
  569.   };
  570.   var Direction = {
  571.     NEXT: 'next',
  572.     PREV: 'prev',
  573.     LEFT: 'left',
  574.     RIGHT: 'right'
  575.   };
  576.   var Event = {
  577.     SLIDE: "slide" + EVENT_KEY,
  578.     SLID: "slid" + EVENT_KEY,
  579.     KEYDOWN: "keydown" + EVENT_KEY,
  580.     MOUSEENTER: "mouseenter" + EVENT_KEY,
  581.     MOUSELEAVE: "mouseleave" + EVENT_KEY,
  582.     TOUCHEND: "touchend" + EVENT_KEY,
  583.     LOAD_DATA_API: "load" + EVENT_KEY + DATA_API_KEY,
  584.     CLICK_DATA_API: "click" + EVENT_KEY + DATA_API_KEY
  585.   };
  586.   var ClassName = {
  587.     CAROUSEL: 'carousel',
  588.     ACTIVE: 'active',
  589.     SLIDE: 'slide',
  590.     RIGHT: 'carousel-item-right',
  591.     LEFT: 'carousel-item-left',
  592.     NEXT: 'carousel-item-next',
  593.     PREV: 'carousel-item-prev',
  594.     ITEM: 'carousel-item'
  595.   };
  596.   var Selector = {
  597.     ACTIVE: '.active',
  598.     ACTIVE_ITEM: '.active.carousel-item',
  599.     ITEM: '.carousel-item',
  600.     NEXT_PREV: '.carousel-item-next, .carousel-item-prev',
  601.     INDICATORS: '.carousel-indicators',
  602.     DATA_SLIDE: '[data-slide], [data-slide-to]',
  603.     DATA_RIDE: '[data-ride="carousel"]'
  604.     /**
  605.      * ------------------------------------------------------------------------
  606.      * Class Definition
  607.      * ------------------------------------------------------------------------
  608.      */
  609.  
  610.   };
  611.  
  612.   var Carousel =
  613.   /*#__PURE__*/
  614.   function () {
  615.     function Carousel(element, config) {
  616.       this._items = null;
  617.       this._interval = null;
  618.       this._activeElement = null;
  619.       this._isPaused = false;
  620.       this._isSliding = false;
  621.       this.touchTimeout = null;
  622.       this._config = this._getConfig(config);
  623.       this._element = $$$1(element)[0];
  624.       this._indicatorsElement = $$$1(this._element).find(Selector.INDICATORS)[0];
  625.  
  626.       this._addEventListeners();
  627.     } // Getters
  628.  
  629.  
  630.     var _proto = Carousel.prototype;
  631.  
  632.     // Public
  633.     _proto.next = function next() {
  634.       if (!this._isSliding) {
  635.         this._slide(Direction.NEXT);
  636.       }
  637.     };
  638.  
  639.     _proto.nextWhenVisible = function nextWhenVisible() {
  640.       // Don't call next when the page isn't visible
  641.       // or the carousel or its parent isn't visible
  642.       if (!document.hidden && $$$1(this._element).is(':visible') && $$$1(this._element).css('visibility') !== 'hidden') {
  643.         this.next();
  644.       }
  645.     };
  646.  
  647.     _proto.prev = function prev() {
  648.       if (!this._isSliding) {
  649.         this._slide(Direction.PREV);
  650.       }
  651.     };
  652.  
  653.     _proto.pause = function pause(event) {
  654.       if (!event) {
  655.         this._isPaused = true;
  656.       }
  657.  
  658.       if ($$$1(this._element).find(Selector.NEXT_PREV)[0] && Util.supportsTransitionEnd()) {
  659.         Util.triggerTransitionEnd(this._element);
  660.         this.cycle(true);
  661.       }
  662.  
  663.       clearInterval(this._interval);
  664.       this._interval = null;
  665.     };
  666.  
  667.     _proto.cycle = function cycle(event) {
  668.       if (!event) {
  669.         this._isPaused = false;
  670.       }
  671.  
  672.       if (this._interval) {
  673.         clearInterval(this._interval);
  674.         this._interval = null;
  675.       }
  676.  
  677.       if (this._config.interval && !this._isPaused) {
  678.         this._interval = setInterval((document.visibilityState ? this.nextWhenVisible : this.next).bind(this), this._config.interval);
  679.       }
  680.     };
  681.  
  682.     _proto.to = function to(index) {
  683.       var _this = this;
  684.  
  685.       this._activeElement = $$$1(this._element).find(Selector.ACTIVE_ITEM)[0];
  686.  
  687.       var activeIndex = this._getItemIndex(this._activeElement);
  688.  
  689.       if (index > this._items.length - 1 || index < 0) {
  690.         return;
  691.       }
  692.  
  693.       if (this._isSliding) {
  694.         $$$1(this._element).one(Event.SLID, function () {
  695.           return _this.to(index);
  696.         });
  697.         return;
  698.       }
  699.  
  700.       if (activeIndex === index) {
  701.         this.pause();
  702.         this.cycle();
  703.         return;
  704.       }
  705.  
  706.       var direction = index > activeIndex ? Direction.NEXT : Direction.PREV;
  707.  
  708.       this._slide(direction, this._items[index]);
  709.     };
  710.  
  711.     _proto.dispose = function dispose() {
  712.       $$$1(this._element).off(EVENT_KEY);
  713.       $$$1.removeData(this._element, DATA_KEY);
  714.       this._items = null;
  715.       this._config = null;
  716.       this._element = null;
  717.       this._interval = null;
  718.       this._isPaused = null;
  719.       this._isSliding = null;
  720.       this._activeElement = null;
  721.       this._indicatorsElement = null;
  722.     }; // Private
  723.  
  724.  
  725.     _proto._getConfig = function _getConfig(config) {
  726.       config = _extends({}, Default, config);
  727.       Util.typeCheckConfig(NAME, config, DefaultType);
  728.       return config;
  729.     };
  730.  
  731.     _proto._addEventListeners = function _addEventListeners() {
  732.       var _this2 = this;
  733.  
  734.       if (this._config.keyboard) {
  735.         $$$1(this._element).on(Event.KEYDOWN, function (event) {
  736.           return _this2._keydown(event);
  737.         });
  738.       }
  739.  
  740.       if (this._config.pause === 'hover') {
  741.         $$$1(this._element).on(Event.MOUSEENTER, function (event) {
  742.           return _this2.pause(event);
  743.         }).on(Event.MOUSELEAVE, function (event) {
  744.           return _this2.cycle(event);
  745.         });
  746.  
  747.         if ('ontouchstart' in document.documentElement) {
  748.           // If it's a touch-enabled device, mouseenter/leave are fired as
  749.           // part of the mouse compatibility events on first tap - the carousel
  750.           // would stop cycling until user tapped out of it;
  751.           // here, we listen for touchend, explicitly pause the carousel
  752.           // (as if it's the second time we tap on it, mouseenter compat event
  753.           // is NOT fired) and after a timeout (to allow for mouse compatibility
  754.           // events to fire) we explicitly restart cycling
  755.           $$$1(this._element).on(Event.TOUCHEND, function () {
  756.             _this2.pause();
  757.  
  758.             if (_this2.touchTimeout) {
  759.               clearTimeout(_this2.touchTimeout);
  760.             }
  761.  
  762.             _this2.touchTimeout = setTimeout(function (event) {
  763.               return _this2.cycle(event);
  764.             }, TOUCHEVENT_COMPAT_WAIT + _this2._config.interval);
  765.           });
  766.         }
  767.       }
  768.     };
  769.  
  770.     _proto._keydown = function _keydown(event) {
  771.       if (/input|textarea/i.test(event.target.tagName)) {
  772.         return;
  773.       }
  774.  
  775.       switch (event.which) {
  776.         case ARROW_LEFT_KEYCODE:
  777.           event.preventDefault();
  778.           this.prev();
  779.           break;
  780.  
  781.         case ARROW_RIGHT_KEYCODE:
  782.           event.preventDefault();
  783.           this.next();
  784.           break;
  785.  
  786.         default:
  787.       }
  788.     };
  789.  
  790.     _proto._getItemIndex = function _getItemIndex(element) {
  791.       this._items = $$$1.makeArray($$$1(element).parent().find(Selector.ITEM));
  792.       return this._items.indexOf(element);
  793.     };
  794.  
  795.     _proto._getItemByDirection = function _getItemByDirection(direction, activeElement) {
  796.       var isNextDirection = direction === Direction.NEXT;
  797.       var isPrevDirection = direction === Direction.PREV;
  798.  
  799.       var activeIndex = this._getItemIndex(activeElement);
  800.  
  801.       var lastItemIndex = this._items.length - 1;
  802.       var isGoingToWrap = isPrevDirection && activeIndex === 0 || isNextDirection && activeIndex === lastItemIndex;
  803.  
  804.       if (isGoingToWrap && !this._config.wrap) {
  805.         return activeElement;
  806.       }
  807.  
  808.       var delta = direction === Direction.PREV ? -1 : 1;
  809.       var itemIndex = (activeIndex + delta) % this._items.length;
  810.       return itemIndex === -1 ? this._items[this._items.length - 1] : this._items[itemIndex];
  811.     };
  812.  
  813.     _proto._triggerSlideEvent = function _triggerSlideEvent(relatedTarget, eventDirectionName) {
  814.       var targetIndex = this._getItemIndex(relatedTarget);
  815.  
  816.       var fromIndex = this._getItemIndex($$$1(this._element).find(Selector.ACTIVE_ITEM)[0]);
  817.  
  818.       var slideEvent = $$$1.Event(Event.SLIDE, {
  819.         relatedTarget: relatedTarget,
  820.         direction: eventDirectionName,
  821.         from: fromIndex,
  822.         to: targetIndex
  823.       });
  824.       $$$1(this._element).trigger(slideEvent);
  825.       return slideEvent;
  826.     };
  827.  
  828.     _proto._setActiveIndicatorElement = function _setActiveIndicatorElement(element) {
  829.       if (this._indicatorsElement) {
  830.         $$$1(this._indicatorsElement).find(Selector.ACTIVE).removeClass(ClassName.ACTIVE);
  831.  
  832.         var nextIndicator = this._indicatorsElement.children[this._getItemIndex(element)];
  833.  
  834.         if (nextIndicator) {
  835.           $$$1(nextIndicator).addClass(ClassName.ACTIVE);
  836.         }
  837.       }
  838.     };
  839.  
  840.     _proto._slide = function _slide(direction, element) {
  841.       var _this3 = this;
  842.  
  843.       var activeElement = $$$1(this._element).find(Selector.ACTIVE_ITEM)[0];
  844.  
  845.       var activeElementIndex = this._getItemIndex(activeElement);
  846.  
  847.       var nextElement = element || activeElement && this._getItemByDirection(direction, activeElement);
  848.  
  849.       var nextElementIndex = this._getItemIndex(nextElement);
  850.  
  851.       var isCycling = Boolean(this._interval);
  852.       var directionalClassName;
  853.       var orderClassName;
  854.       var eventDirectionName;
  855.  
  856.       if (direction === Direction.NEXT) {
  857.         directionalClassName = ClassName.LEFT;
  858.         orderClassName = ClassName.NEXT;
  859.         eventDirectionName = Direction.LEFT;
  860.       } else {
  861.         directionalClassName = ClassName.RIGHT;
  862.         orderClassName = ClassName.PREV;
  863.         eventDirectionName = Direction.RIGHT;
  864.       }
  865.  
  866.       if (nextElement && $$$1(nextElement).hasClass(ClassName.ACTIVE)) {
  867.         this._isSliding = false;
  868.         return;
  869.       }
  870.  
  871.       var slideEvent = this._triggerSlideEvent(nextElement, eventDirectionName);
  872.  
  873.       if (slideEvent.isDefaultPrevented()) {
  874.         return;
  875.       }
  876.  
  877.       if (!activeElement || !nextElement) {
  878.         // Some weirdness is happening, so we bail
  879.         return;
  880.       }
  881.  
  882.       this._isSliding = true;
  883.  
  884.       if (isCycling) {
  885.         this.pause();
  886.       }
  887.  
  888.       this._setActiveIndicatorElement(nextElement);
  889.  
  890.       var slidEvent = $$$1.Event(Event.SLID, {
  891.         relatedTarget: nextElement,
  892.         direction: eventDirectionName,
  893.         from: activeElementIndex,
  894.         to: nextElementIndex
  895.       });
  896.  
  897.       if (Util.supportsTransitionEnd() && $$$1(this._element).hasClass(ClassName.SLIDE)) {
  898.         $$$1(nextElement).addClass(orderClassName);
  899.         Util.reflow(nextElement);
  900.         $$$1(activeElement).addClass(directionalClassName);
  901.         $$$1(nextElement).addClass(directionalClassName);
  902.         $$$1(activeElement).one(Util.TRANSITION_END, function () {
  903.           $$$1(nextElement).removeClass(directionalClassName + " " + orderClassName).addClass(ClassName.ACTIVE);
  904.           $$$1(activeElement).removeClass(ClassName.ACTIVE + " " + orderClassName + " " + directionalClassName);
  905.           _this3._isSliding = false;
  906.           setTimeout(function () {
  907.             return $$$1(_this3._element).trigger(slidEvent);
  908.           }, 0);
  909.         }).emulateTransitionEnd(TRANSITION_DURATION);
  910.       } else {
  911.         $$$1(activeElement).removeClass(ClassName.ACTIVE);
  912.         $$$1(nextElement).addClass(ClassName.ACTIVE);
  913.         this._isSliding = false;
  914.         $$$1(this._element).trigger(slidEvent);
  915.       }
  916.  
  917.       if (isCycling) {
  918.         this.cycle();
  919.       }
  920.     }; // Static
  921.  
  922.  
  923.     Carousel._jQueryInterface = function _jQueryInterface(config) {
  924.       return this.each(function () {
  925.         var data = $$$1(this).data(DATA_KEY);
  926.  
  927.         var _config = _extends({}, Default, $$$1(this).data());
  928.  
  929.         if (typeof config === 'object') {
  930.           _config = _extends({}, _config, config);
  931.         }
  932.  
  933.         var action = typeof config === 'string' ? config : _config.slide;
  934.  
  935.         if (!data) {
  936.           data = new Carousel(this, _config);
  937.           $$$1(this).data(DATA_KEY, data);
  938.         }
  939.  
  940.         if (typeof config === 'number') {
  941.           data.to(config);
  942.         } else if (typeof action === 'string') {
  943.           if (typeof data[action] === 'undefined') {
  944.             throw new TypeError("No method named \"" + action + "\"");
  945.           }
  946.  
  947.           data[action]();
  948.         } else if (_config.interval) {
  949.           data.pause();
  950.           data.cycle();
  951.         }
  952.       });
  953.     };
  954.  
  955.     Carousel._dataApiClickHandler = function _dataApiClickHandler(event) {
  956.       var selector = Util.getSelectorFromElement(this);
  957.  
  958.       if (!selector) {
  959.         return;
  960.       }
  961.  
  962.       var target = $$$1(selector)[0];
  963.  
  964.       if (!target || !$$$1(target).hasClass(ClassName.CAROUSEL)) {
  965.         return;
  966.       }
  967.  
  968.       var config = _extends({}, $$$1(target).data(), $$$1(this).data());
  969.       var slideIndex = this.getAttribute('data-slide-to');
  970.  
  971.       if (slideIndex) {
  972.         config.interval = false;
  973.       }
  974.  
  975.       Carousel._jQueryInterface.call($$$1(target), config);
  976.  
  977.       if (slideIndex) {
  978.         $$$1(target).data(DATA_KEY).to(slideIndex);
  979.       }
  980.  
  981.       event.preventDefault();
  982.     };
  983.  
  984.     _createClass(Carousel, null, [{
  985.       key: "VERSION",
  986.       get: function get() {
  987.         return VERSION;
  988.       }
  989.     }, {
  990.       key: "Default",
  991.       get: function get() {
  992.         return Default;
  993.       }
  994.     }]);
  995.     return Carousel;
  996.   }();
  997.   /**
  998.    * ------------------------------------------------------------------------
  999.    * Data Api implementation
  1000.    * ------------------------------------------------------------------------
  1001.    */
  1002.  
  1003.  
  1004.   $$$1(document).on(Event.CLICK_DATA_API, Selector.DATA_SLIDE, Carousel._dataApiClickHandler);
  1005.   $$$1(window).on(Event.LOAD_DATA_API, function () {
  1006.     $$$1(Selector.DATA_RIDE).each(function () {
  1007.       var $carousel = $$$1(this);
  1008.  
  1009.       Carousel._jQueryInterface.call($carousel, $carousel.data());
  1010.     });
  1011.   });
  1012.   /**
  1013.    * ------------------------------------------------------------------------
  1014.    * jQuery
  1015.    * ------------------------------------------------------------------------
  1016.    */
  1017.  
  1018.   $$$1.fn[NAME] = Carousel._jQueryInterface;
  1019.   $$$1.fn[NAME].Constructor = Carousel;
  1020.  
  1021.   $$$1.fn[NAME].noConflict = function () {
  1022.     $$$1.fn[NAME] = JQUERY_NO_CONFLICT;
  1023.     return Carousel._jQueryInterface;
  1024.   };
  1025.  
  1026.   return Carousel;
  1027. }($);
  1028.  
  1029. /**
  1030.  * --------------------------------------------------------------------------
  1031.  * Bootstrap (v4.0.0): collapse.js
  1032.  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
  1033.  * --------------------------------------------------------------------------
  1034.  */
  1035.  
  1036. var Collapse = function ($$$1) {
  1037.   /**
  1038.    * ------------------------------------------------------------------------
  1039.    * Constants
  1040.    * ------------------------------------------------------------------------
  1041.    */
  1042.   var NAME = 'collapse';
  1043.   var VERSION = '4.0.0';
  1044.   var DATA_KEY = 'bs.collapse';
  1045.   var EVENT_KEY = "." + DATA_KEY;
  1046.   var DATA_API_KEY = '.data-api';
  1047.   var JQUERY_NO_CONFLICT = $$$1.fn[NAME];
  1048.   var TRANSITION_DURATION = 600;
  1049.   var Default = {
  1050.     toggle: true,
  1051.     parent: ''
  1052.   };
  1053.   var DefaultType = {
  1054.     toggle: 'boolean',
  1055.     parent: '(string|element)'
  1056.   };
  1057.   var Event = {
  1058.     SHOW: "show" + EVENT_KEY,
  1059.     SHOWN: "shown" + EVENT_KEY,
  1060.     HIDE: "hide" + EVENT_KEY,
  1061.     HIDDEN: "hidden" + EVENT_KEY,
  1062.     CLICK_DATA_API: "click" + EVENT_KEY + DATA_API_KEY
  1063.   };
  1064.   var ClassName = {
  1065.     SHOW: 'show',
  1066.     COLLAPSE: 'collapse',
  1067.     COLLAPSING: 'collapsing',
  1068.     COLLAPSED: 'collapsed'
  1069.   };
  1070.   var Dimension = {
  1071.     WIDTH: 'width',
  1072.     HEIGHT: 'height'
  1073.   };
  1074.   var Selector = {
  1075.     ACTIVES: '.show, .collapsing',
  1076.     DATA_TOGGLE: '[data-toggle="collapse"]'
  1077.     /**
  1078.      * ------------------------------------------------------------------------
  1079.      * Class Definition
  1080.      * ------------------------------------------------------------------------
  1081.      */
  1082.  
  1083.   };
  1084.  
  1085.   var Collapse =
  1086.   /*#__PURE__*/
  1087.   function () {
  1088.     function Collapse(element, config) {
  1089.       this._isTransitioning = false;
  1090.       this._element = element;
  1091.       this._config = this._getConfig(config);
  1092.       this._triggerArray = $$$1.makeArray($$$1("[data-toggle=\"collapse\"][href=\"#" + element.id + "\"]," + ("[data-toggle=\"collapse\"][data-target=\"#" + element.id + "\"]")));
  1093.       var tabToggles = $$$1(Selector.DATA_TOGGLE);
  1094.  
  1095.       for (var i = 0; i < tabToggles.length; i++) {
  1096.         var elem = tabToggles[i];
  1097.         var selector = Util.getSelectorFromElement(elem);
  1098.  
  1099.         if (selector !== null && $$$1(selector).filter(element).length > 0) {
  1100.           this._selector = selector;
  1101.  
  1102.           this._triggerArray.push(elem);
  1103.         }
  1104.       }
  1105.  
  1106.       this._parent = this._config.parent ? this._getParent() : null;
  1107.  
  1108.       if (!this._config.parent) {
  1109.         this._addAriaAndCollapsedClass(this._element, this._triggerArray);
  1110.       }
  1111.  
  1112.       if (this._config.toggle) {
  1113.         this.toggle();
  1114.       }
  1115.     } // Getters
  1116.  
  1117.  
  1118.     var _proto = Collapse.prototype;
  1119.  
  1120.     // Public
  1121.     _proto.toggle = function toggle() {
  1122.       if ($$$1(this._element).hasClass(ClassName.SHOW)) {
  1123.         this.hide();
  1124.       } else {
  1125.         this.show();
  1126.       }
  1127.     };
  1128.  
  1129.     _proto.show = function show() {
  1130.       var _this = this;
  1131.  
  1132.       if (this._isTransitioning || $$$1(this._element).hasClass(ClassName.SHOW)) {
  1133.         return;
  1134.       }
  1135.  
  1136.       var actives;
  1137.       var activesData;
  1138.  
  1139.       if (this._parent) {
  1140.         actives = $$$1.makeArray($$$1(this._parent).find(Selector.ACTIVES).filter("[data-parent=\"" + this._config.parent + "\"]"));
  1141.  
  1142.         if (actives.length === 0) {
  1143.           actives = null;
  1144.         }
  1145.       }
  1146.  
  1147.       if (actives) {
  1148.         activesData = $$$1(actives).not(this._selector).data(DATA_KEY);
  1149.  
  1150.         if (activesData && activesData._isTransitioning) {
  1151.           return;
  1152.         }
  1153.       }
  1154.  
  1155.       var startEvent = $$$1.Event(Event.SHOW);
  1156.       $$$1(this._element).trigger(startEvent);
  1157.  
  1158.       if (startEvent.isDefaultPrevented()) {
  1159.         return;
  1160.       }
  1161.  
  1162.       if (actives) {
  1163.         Collapse._jQueryInterface.call($$$1(actives).not(this._selector), 'hide');
  1164.  
  1165.         if (!activesData) {
  1166.           $$$1(actives).data(DATA_KEY, null);
  1167.         }
  1168.       }
  1169.  
  1170.       var dimension = this._getDimension();
  1171.  
  1172.       $$$1(this._element).removeClass(ClassName.COLLAPSE).addClass(ClassName.COLLAPSING);
  1173.       this._element.style[dimension] = 0;
  1174.  
  1175.       if (this._triggerArray.length > 0) {
  1176.         $$$1(this._triggerArray).removeClass(ClassName.COLLAPSED).attr('aria-expanded', true);
  1177.       }
  1178.  
  1179.       this.setTransitioning(true);
  1180.  
  1181.       var complete = function complete() {
  1182.         $$$1(_this._element).removeClass(ClassName.COLLAPSING).addClass(ClassName.COLLAPSE).addClass(ClassName.SHOW);
  1183.         _this._element.style[dimension] = '';
  1184.  
  1185.         _this.setTransitioning(false);
  1186.  
  1187.         $$$1(_this._element).trigger(Event.SHOWN);
  1188.       };
  1189.  
  1190.       if (!Util.supportsTransitionEnd()) {
  1191.         complete();
  1192.         return;
  1193.       }
  1194.  
  1195.       var capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1);
  1196.       var scrollSize = "scroll" + capitalizedDimension;
  1197.       $$$1(this._element).one(Util.TRANSITION_END, complete).emulateTransitionEnd(TRANSITION_DURATION);
  1198.       this._element.style[dimension] = this._element[scrollSize] + "px";
  1199.     };
  1200.  
  1201.     _proto.hide = function hide() {
  1202.       var _this2 = this;
  1203.  
  1204.       if (this._isTransitioning || !$$$1(this._element).hasClass(ClassName.SHOW)) {
  1205.         return;
  1206.       }
  1207.  
  1208.       var startEvent = $$$1.Event(Event.HIDE);
  1209.       $$$1(this._element).trigger(startEvent);
  1210.  
  1211.       if (startEvent.isDefaultPrevented()) {
  1212.         return;
  1213.       }
  1214.  
  1215.       var dimension = this._getDimension();
  1216.  
  1217.       this._element.style[dimension] = this._element.getBoundingClientRect()[dimension] + "px";
  1218.       Util.reflow(this._element);
  1219.       $$$1(this._element).addClass(ClassName.COLLAPSING).removeClass(ClassName.COLLAPSE).removeClass(ClassName.SHOW);
  1220.  
  1221.       if (this._triggerArray.length > 0) {
  1222.         for (var i = 0; i < this._triggerArray.length; i++) {
  1223.           var trigger = this._triggerArray[i];
  1224.           var selector = Util.getSelectorFromElement(trigger);
  1225.  
  1226.           if (selector !== null) {
  1227.             var $elem = $$$1(selector);
  1228.  
  1229.             if (!$elem.hasClass(ClassName.SHOW)) {
  1230.               $$$1(trigger).addClass(ClassName.COLLAPSED).attr('aria-expanded', false);
  1231.             }
  1232.           }
  1233.         }
  1234.       }
  1235.  
  1236.       this.setTransitioning(true);
  1237.  
  1238.       var complete = function complete() {
  1239.         _this2.setTransitioning(false);
  1240.  
  1241.         $$$1(_this2._element).removeClass(ClassName.COLLAPSING).addClass(ClassName.COLLAPSE).trigger(Event.HIDDEN);
  1242.       };
  1243.  
  1244.       this._element.style[dimension] = '';
  1245.  
  1246.       if (!Util.supportsTransitionEnd()) {
  1247.         complete();
  1248.         return;
  1249.       }
  1250.  
  1251.       $$$1(this._element).one(Util.TRANSITION_END, complete).emulateTransitionEnd(TRANSITION_DURATION);
  1252.     };
  1253.  
  1254.     _proto.setTransitioning = function setTransitioning(isTransitioning) {
  1255.       this._isTransitioning = isTransitioning;
  1256.     };
  1257.  
  1258.     _proto.dispose = function dispose() {
  1259.       $$$1.removeData(this._element, DATA_KEY);
  1260.       this._config = null;
  1261.       this._parent = null;
  1262.       this._element = null;
  1263.       this._triggerArray = null;
  1264.       this._isTransitioning = null;
  1265.     }; // Private
  1266.  
  1267.  
  1268.     _proto._getConfig = function _getConfig(config) {
  1269.       config = _extends({}, Default, config);
  1270.       config.toggle = Boolean(config.toggle); // Coerce string values
  1271.  
  1272.       Util.typeCheckConfig(NAME, config, DefaultType);
  1273.       return config;
  1274.     };
  1275.  
  1276.     _proto._getDimension = function _getDimension() {
  1277.       var hasWidth = $$$1(this._element).hasClass(Dimension.WIDTH);
  1278.       return hasWidth ? Dimension.WIDTH : Dimension.HEIGHT;
  1279.     };
  1280.  
  1281.     _proto._getParent = function _getParent() {
  1282.       var _this3 = this;
  1283.  
  1284.       var parent = null;
  1285.  
  1286.       if (Util.isElement(this._config.parent)) {
  1287.         parent = this._config.parent; // It's a jQuery object
  1288.  
  1289.         if (typeof this._config.parent.jquery !== 'undefined') {
  1290.           parent = this._config.parent[0];
  1291.         }
  1292.       } else {
  1293.         parent = $$$1(this._config.parent)[0];
  1294.       }
  1295.  
  1296.       var selector = "[data-toggle=\"collapse\"][data-parent=\"" + this._config.parent + "\"]";
  1297.       $$$1(parent).find(selector).each(function (i, element) {
  1298.         _this3._addAriaAndCollapsedClass(Collapse._getTargetFromElement(element), [element]);
  1299.       });
  1300.       return parent;
  1301.     };
  1302.  
  1303.     _proto._addAriaAndCollapsedClass = function _addAriaAndCollapsedClass(element, triggerArray) {
  1304.       if (element) {
  1305.         var isOpen = $$$1(element).hasClass(ClassName.SHOW);
  1306.  
  1307.         if (triggerArray.length > 0) {
  1308.           $$$1(triggerArray).toggleClass(ClassName.COLLAPSED, !isOpen).attr('aria-expanded', isOpen);
  1309.         }
  1310.       }
  1311.     }; // Static
  1312.  
  1313.  
  1314.     Collapse._getTargetFromElement = function _getTargetFromElement(element) {
  1315.       var selector = Util.getSelectorFromElement(element);
  1316.       return selector ? $$$1(selector)[0] : null;
  1317.     };
  1318.  
  1319.     Collapse._jQueryInterface = function _jQueryInterface(config) {
  1320.       return this.each(function () {
  1321.         var $this = $$$1(this);
  1322.         var data = $this.data(DATA_KEY);
  1323.  
  1324.         var _config = _extends({}, Default, $this.data(), typeof config === 'object' && config);
  1325.  
  1326.         if (!data && _config.toggle && /show|hide/.test(config)) {
  1327.           _config.toggle = false;
  1328.         }
  1329.  
  1330.         if (!data) {
  1331.           data = new Collapse(this, _config);
  1332.           $this.data(DATA_KEY, data);
  1333.         }
  1334.  
  1335.         if (typeof config === 'string') {
  1336.           if (typeof data[config] === 'undefined') {
  1337.             throw new TypeError("No method named \"" + config + "\"");
  1338.           }
  1339.  
  1340.           data[config]();
  1341.         }
  1342.       });
  1343.     };
  1344.  
  1345.     _createClass(Collapse, null, [{
  1346.       key: "VERSION",
  1347.       get: function get() {
  1348.         return VERSION;
  1349.       }
  1350.     }, {
  1351.       key: "Default",
  1352.       get: function get() {
  1353.         return Default;
  1354.       }
  1355.     }]);
  1356.     return Collapse;
  1357.   }();
  1358.   /**
  1359.    * ------------------------------------------------------------------------
  1360.    * Data Api implementation
  1361.    * ------------------------------------------------------------------------
  1362.    */
  1363.  
  1364.  
  1365.   $$$1(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {
  1366.     // preventDefault only for <a> elements (which change the URL) not inside the collapsible element
  1367.     if (event.currentTarget.tagName === 'A') {
  1368.       event.preventDefault();
  1369.     }
  1370.  
  1371.     var $trigger = $$$1(this);
  1372.     var selector = Util.getSelectorFromElement(this);
  1373.     $$$1(selector).each(function () {
  1374.       var $target = $$$1(this);
  1375.       var data = $target.data(DATA_KEY);
  1376.       var config = data ? 'toggle' : $trigger.data();
  1377.  
  1378.       Collapse._jQueryInterface.call($target, config);
  1379.     });
  1380.   });
  1381.   /**
  1382.    * ------------------------------------------------------------------------
  1383.    * jQuery
  1384.    * ------------------------------------------------------------------------
  1385.    */
  1386.  
  1387.   $$$1.fn[NAME] = Collapse._jQueryInterface;
  1388.   $$$1.fn[NAME].Constructor = Collapse;
  1389.  
  1390.   $$$1.fn[NAME].noConflict = function () {
  1391.     $$$1.fn[NAME] = JQUERY_NO_CONFLICT;
  1392.     return Collapse._jQueryInterface;
  1393.   };
  1394.  
  1395.   return Collapse;
  1396. }($);
  1397.  
  1398. /**
  1399.  * --------------------------------------------------------------------------
  1400.  * Bootstrap (v4.0.0): dropdown.js
  1401.  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
  1402.  * --------------------------------------------------------------------------
  1403.  */
  1404.  
  1405. var Dropdown = function ($$$1) {
  1406.   /**
  1407.    * ------------------------------------------------------------------------
  1408.    * Constants
  1409.    * ------------------------------------------------------------------------
  1410.    */
  1411.   var NAME = 'dropdown';
  1412.   var VERSION = '4.0.0';
  1413.   var DATA_KEY = 'bs.dropdown';
  1414.   var EVENT_KEY = "." + DATA_KEY;
  1415.   var DATA_API_KEY = '.data-api';
  1416.   var JQUERY_NO_CONFLICT = $$$1.fn[NAME];
  1417.   var ESCAPE_KEYCODE = 27; // KeyboardEvent.which value for Escape (Esc) key
  1418.  
  1419.   var SPACE_KEYCODE = 32; // KeyboardEvent.which value for space key
  1420.  
  1421.   var TAB_KEYCODE = 9; // KeyboardEvent.which value for tab key
  1422.  
  1423.   var ARROW_UP_KEYCODE = 38; // KeyboardEvent.which value for up arrow key
  1424.  
  1425.   var ARROW_DOWN_KEYCODE = 40; // KeyboardEvent.which value for down arrow key
  1426.  
  1427.   var RIGHT_MOUSE_BUTTON_WHICH = 3; // MouseEvent.which value for the right button (assuming a right-handed mouse)
  1428.  
  1429.   var REGEXP_KEYDOWN = new RegExp(ARROW_UP_KEYCODE + "|" + ARROW_DOWN_KEYCODE + "|" + ESCAPE_KEYCODE);
  1430.   var Event = {
  1431.     HIDE: "hide" + EVENT_KEY,
  1432.     HIDDEN: "hidden" + EVENT_KEY,
  1433.     SHOW: "show" + EVENT_KEY,
  1434.     SHOWN: "shown" + EVENT_KEY,
  1435.     CLICK: "click" + EVENT_KEY,
  1436.     CLICK_DATA_API: "click" + EVENT_KEY + DATA_API_KEY,
  1437.     KEYDOWN_DATA_API: "keydown" + EVENT_KEY + DATA_API_KEY,
  1438.     KEYUP_DATA_API: "keyup" + EVENT_KEY + DATA_API_KEY
  1439.   };
  1440.   var ClassName = {
  1441.     DISABLED: 'disabled',
  1442.     SHOW: 'show',
  1443.     DROPUP: 'dropup',
  1444.     DROPRIGHT: 'dropright',
  1445.     DROPLEFT: 'dropleft',
  1446.     MENURIGHT: 'dropdown-menu-right',
  1447.     MENULEFT: 'dropdown-menu-left',
  1448.     POSITION_STATIC: 'position-static'
  1449.   };
  1450.   var Selector = {
  1451.     DATA_TOGGLE: '[data-toggle="dropdown"]',
  1452.     FORM_CHILD: '.dropdown form',
  1453.     MENU: '.dropdown-menu',
  1454.     NAVBAR_NAV: '.navbar-nav',
  1455.     VISIBLE_ITEMS: '.dropdown-menu .dropdown-item:not(.disabled)'
  1456.   };
  1457.   var AttachmentMap = {
  1458.     TOP: 'top-start',
  1459.     TOPEND: 'top-end',
  1460.     BOTTOM: 'bottom-start',
  1461.     BOTTOMEND: 'bottom-end',
  1462.     RIGHT: 'right-start',
  1463.     RIGHTEND: 'right-end',
  1464.     LEFT: 'left-start',
  1465.     LEFTEND: 'left-end'
  1466.   };
  1467.   var Default = {
  1468.     offset: 0,
  1469.     flip: true,
  1470.     boundary: 'scrollParent'
  1471.   };
  1472.   var DefaultType = {
  1473.     offset: '(number|string|function)',
  1474.     flip: 'boolean',
  1475.     boundary: '(string|element)'
  1476.     /**
  1477.      * ------------------------------------------------------------------------
  1478.      * Class Definition
  1479.      * ------------------------------------------------------------------------
  1480.      */
  1481.  
  1482.   };
  1483.  
  1484.   var Dropdown =
  1485.   /*#__PURE__*/
  1486.   function () {
  1487.     function Dropdown(element, config) {
  1488.       this._element = element;
  1489.       this._popper = null;
  1490.       this._config = this._getConfig(config);
  1491.       this._menu = this._getMenuElement();
  1492.       this._inNavbar = this._detectNavbar();
  1493.  
  1494.       this._addEventListeners();
  1495.     } // Getters
  1496.  
  1497.  
  1498.     var _proto = Dropdown.prototype;
  1499.  
  1500.     // Public
  1501.     _proto.toggle = function toggle() {
  1502.       if (this._element.disabled || $$$1(this._element).hasClass(ClassName.DISABLED)) {
  1503.         return;
  1504.       }
  1505.  
  1506.       var parent = Dropdown._getParentFromElement(this._element);
  1507.  
  1508.       var isActive = $$$1(this._menu).hasClass(ClassName.SHOW);
  1509.  
  1510.       Dropdown._clearMenus();
  1511.  
  1512.       if (isActive) {
  1513.         return;
  1514.       }
  1515.  
  1516.       var relatedTarget = {
  1517.         relatedTarget: this._element
  1518.       };
  1519.       var showEvent = $$$1.Event(Event.SHOW, relatedTarget);
  1520.       $$$1(parent).trigger(showEvent);
  1521.  
  1522.       if (showEvent.isDefaultPrevented()) {
  1523.         return;
  1524.       } // Disable totally Popper.js for Dropdown in Navbar
  1525.  
  1526.  
  1527.       if (!this._inNavbar) {
  1528.         /**
  1529.          * Check for Popper dependency
  1530.          * Popper - https://popper.js.org
  1531.          */
  1532.         if (typeof Popper === 'undefined') {
  1533.           throw new TypeError('Bootstrap dropdown require Popper.js (https://popper.js.org)');
  1534.         }
  1535.  
  1536.         var element = this._element; // For dropup with alignment we use the parent as popper container
  1537.  
  1538.         if ($$$1(parent).hasClass(ClassName.DROPUP)) {
  1539.           if ($$$1(this._menu).hasClass(ClassName.MENULEFT) || $$$1(this._menu).hasClass(ClassName.MENURIGHT)) {
  1540.             element = parent;
  1541.           }
  1542.         } // If boundary is not `scrollParent`, then set position to `static`
  1543.         // to allow the menu to "escape" the scroll parent's boundaries
  1544.         // https://github.com/twbs/bootstrap/issues/24251
  1545.  
  1546.  
  1547.         if (this._config.boundary !== 'scrollParent') {
  1548.           $$$1(parent).addClass(ClassName.POSITION_STATIC);
  1549.         }
  1550.  
  1551.         this._popper = new Popper(element, this._menu, this._getPopperConfig());
  1552.       } // If this is a touch-enabled device we add extra
  1553.       // empty mouseover listeners to the body's immediate children;
  1554.       // only needed because of broken event delegation on iOS
  1555.       // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html
  1556.  
  1557.  
  1558.       if ('ontouchstart' in document.documentElement && $$$1(parent).closest(Selector.NAVBAR_NAV).length === 0) {
  1559.         $$$1('body').children().on('mouseover', null, $$$1.noop);
  1560.       }
  1561.  
  1562.       this._element.focus();
  1563.  
  1564.       this._element.setAttribute('aria-expanded', true);
  1565.  
  1566.       $$$1(this._menu).toggleClass(ClassName.SHOW);
  1567.       $$$1(parent).toggleClass(ClassName.SHOW).trigger($$$1.Event(Event.SHOWN, relatedTarget));
  1568.     };
  1569.  
  1570.     _proto.dispose = function dispose() {
  1571.       $$$1.removeData(this._element, DATA_KEY);
  1572.       $$$1(this._element).off(EVENT_KEY);
  1573.       this._element = null;
  1574.       this._menu = null;
  1575.  
  1576.       if (this._popper !== null) {
  1577.         this._popper.destroy();
  1578.  
  1579.         this._popper = null;
  1580.       }
  1581.     };
  1582.  
  1583.     _proto.update = function update() {
  1584.       this._inNavbar = this._detectNavbar();
  1585.  
  1586.       if (this._popper !== null) {
  1587.         this._popper.scheduleUpdate();
  1588.       }
  1589.     }; // Private
  1590.  
  1591.  
  1592.     _proto._addEventListeners = function _addEventListeners() {
  1593.       var _this = this;
  1594.  
  1595.       $$$1(this._element).on(Event.CLICK, function (event) {
  1596.         event.preventDefault();
  1597.         event.stopPropagation();
  1598.  
  1599.         _this.toggle();
  1600.       });
  1601.     };
  1602.  
  1603.     _proto._getConfig = function _getConfig(config) {
  1604.       config = _extends({}, this.constructor.Default, $$$1(this._element).data(), config);
  1605.       Util.typeCheckConfig(NAME, config, this.constructor.DefaultType);
  1606.       return config;
  1607.     };
  1608.  
  1609.     _proto._getMenuElement = function _getMenuElement() {
  1610.       if (!this._menu) {
  1611.         var parent = Dropdown._getParentFromElement(this._element);
  1612.  
  1613.         this._menu = $$$1(parent).find(Selector.MENU)[0];
  1614.       }
  1615.  
  1616.       return this._menu;
  1617.     };
  1618.  
  1619.     _proto._getPlacement = function _getPlacement() {
  1620.       var $parentDropdown = $$$1(this._element).parent();
  1621.       var placement = AttachmentMap.BOTTOM; // Handle dropup
  1622.  
  1623.       if ($parentDropdown.hasClass(ClassName.DROPUP)) {
  1624.         placement = AttachmentMap.TOP;
  1625.  
  1626.         if ($$$1(this._menu).hasClass(ClassName.MENURIGHT)) {
  1627.           placement = AttachmentMap.TOPEND;
  1628.         }
  1629.       } else if ($parentDropdown.hasClass(ClassName.DROPRIGHT)) {
  1630.         placement = AttachmentMap.RIGHT;
  1631.       } else if ($parentDropdown.hasClass(ClassName.DROPLEFT)) {
  1632.         placement = AttachmentMap.LEFT;
  1633.       } else if ($$$1(this._menu).hasClass(ClassName.MENURIGHT)) {
  1634.         placement = AttachmentMap.BOTTOMEND;
  1635.       }
  1636.  
  1637.       return placement;
  1638.     };
  1639.  
  1640.     _proto._detectNavbar = function _detectNavbar() {
  1641.       return $$$1(this._element).closest('.navbar').length > 0;
  1642.     };
  1643.  
  1644.     _proto._getPopperConfig = function _getPopperConfig() {
  1645.       var _this2 = this;
  1646.  
  1647.       var offsetConf = {};
  1648.  
  1649.       if (typeof this._config.offset === 'function') {
  1650.         offsetConf.fn = function (data) {
  1651.           data.offsets = _extends({}, data.offsets, _this2._config.offset(data.offsets) || {});
  1652.           return data;
  1653.         };
  1654.       } else {
  1655.         offsetConf.offset = this._config.offset;
  1656.       }
  1657.  
  1658.       var popperConfig = {
  1659.         placement: this._getPlacement(),
  1660.         modifiers: {
  1661.           offset: offsetConf,
  1662.           flip: {
  1663.             enabled: this._config.flip
  1664.           },
  1665.           preventOverflow: {
  1666.             boundariesElement: this._config.boundary
  1667.           }
  1668.         }
  1669.       };
  1670.       return popperConfig;
  1671.     }; // Static
  1672.  
  1673.  
  1674.     Dropdown._jQueryInterface = function _jQueryInterface(config) {
  1675.       return this.each(function () {
  1676.         var data = $$$1(this).data(DATA_KEY);
  1677.  
  1678.         var _config = typeof config === 'object' ? config : null;
  1679.  
  1680.         if (!data) {
  1681.           data = new Dropdown(this, _config);
  1682.           $$$1(this).data(DATA_KEY, data);
  1683.         }
  1684.  
  1685.         if (typeof config === 'string') {
  1686.           if (typeof data[config] === 'undefined') {
  1687.             throw new TypeError("No method named \"" + config + "\"");
  1688.           }
  1689.  
  1690.           data[config]();
  1691.         }
  1692.       });
  1693.     };
  1694.  
  1695.     Dropdown._clearMenus = function _clearMenus(event) {
  1696.       if (event && (event.which === RIGHT_MOUSE_BUTTON_WHICH || event.type === 'keyup' && event.which !== TAB_KEYCODE)) {
  1697.         return;
  1698.       }
  1699.  
  1700.       var toggles = $$$1.makeArray($$$1(Selector.DATA_TOGGLE));
  1701.  
  1702.       for (var i = 0; i < toggles.length; i++) {
  1703.         var parent = Dropdown._getParentFromElement(toggles[i]);
  1704.  
  1705.         var context = $$$1(toggles[i]).data(DATA_KEY);
  1706.         var relatedTarget = {
  1707.           relatedTarget: toggles[i]
  1708.         };
  1709.  
  1710.         if (!context) {
  1711.           continue;
  1712.         }
  1713.  
  1714.         var dropdownMenu = context._menu;
  1715.  
  1716.         if (!$$$1(parent).hasClass(ClassName.SHOW)) {
  1717.           continue;
  1718.         }
  1719.  
  1720.         if (event && (event.type === 'click' && /input|textarea/i.test(event.target.tagName) || event.type === 'keyup' && event.which === TAB_KEYCODE) && $$$1.contains(parent, event.target)) {
  1721.           continue;
  1722.         }
  1723.  
  1724.         var hideEvent = $$$1.Event(Event.HIDE, relatedTarget);
  1725.         $$$1(parent).trigger(hideEvent);
  1726.  
  1727.         if (hideEvent.isDefaultPrevented()) {
  1728.           continue;
  1729.         } // If this is a touch-enabled device we remove the extra
  1730.         // empty mouseover listeners we added for iOS support
  1731.  
  1732.  
  1733.         if ('ontouchstart' in document.documentElement) {
  1734.           $$$1('body').children().off('mouseover', null, $$$1.noop);
  1735.         }
  1736.  
  1737.         toggles[i].setAttribute('aria-expanded', 'false');
  1738.         $$$1(dropdownMenu).removeClass(ClassName.SHOW);
  1739.         $$$1(parent).removeClass(ClassName.SHOW).trigger($$$1.Event(Event.HIDDEN, relatedTarget));
  1740.       }
  1741.     };
  1742.  
  1743.     Dropdown._getParentFromElement = function _getParentFromElement(element) {
  1744.       var parent;
  1745.       var selector = Util.getSelectorFromElement(element);
  1746.  
  1747.       if (selector) {
  1748.         parent = $$$1(selector)[0];
  1749.       }
  1750.  
  1751.       return parent || element.parentNode;
  1752.     }; // eslint-disable-next-line complexity
  1753.  
  1754.  
  1755.     Dropdown._dataApiKeydownHandler = function _dataApiKeydownHandler(event) {
  1756.       // If not input/textarea:
  1757.       //  - And not a key in REGEXP_KEYDOWN => not a dropdown command
  1758.       // If input/textarea:
  1759.       //  - If space key => not a dropdown command
  1760.       //  - If key is other than escape
  1761.       //    - If key is not up or down => not a dropdown command
  1762.       //    - If trigger inside the menu => not a dropdown command
  1763.       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)) {
  1764.         return;
  1765.       }
  1766.  
  1767.       event.preventDefault();
  1768.       event.stopPropagation();
  1769.  
  1770.       if (this.disabled || $$$1(this).hasClass(ClassName.DISABLED)) {
  1771.         return;
  1772.       }
  1773.  
  1774.       var parent = Dropdown._getParentFromElement(this);
  1775.  
  1776.       var isActive = $$$1(parent).hasClass(ClassName.SHOW);
  1777.  
  1778.       if (!isActive && (event.which !== ESCAPE_KEYCODE || event.which !== SPACE_KEYCODE) || isActive && (event.which === ESCAPE_KEYCODE || event.which === SPACE_KEYCODE)) {
  1779.         if (event.which === ESCAPE_KEYCODE) {
  1780.           var toggle = $$$1(parent).find(Selector.DATA_TOGGLE)[0];
  1781.           $$$1(toggle).trigger('focus');
  1782.         }
  1783.  
  1784.         $$$1(this).trigger('click');
  1785.         return;
  1786.       }
  1787.  
  1788.       var items = $$$1(parent).find(Selector.VISIBLE_ITEMS).get();
  1789.  
  1790.       if (items.length === 0) {
  1791.         return;
  1792.       }
  1793.  
  1794.       var index = items.indexOf(event.target);
  1795.  
  1796.       if (event.which === ARROW_UP_KEYCODE && index > 0) {
  1797.         // Up
  1798.         index--;
  1799.       }
  1800.  
  1801.       if (event.which === ARROW_DOWN_KEYCODE && index < items.length - 1) {
  1802.         // Down
  1803.         index++;
  1804.       }
  1805.  
  1806.       if (index < 0) {
  1807.         index = 0;
  1808.       }
  1809.  
  1810.       items[index].focus();
  1811.     };
  1812.  
  1813.     _createClass(Dropdown, null, [{
  1814.       key: "VERSION",
  1815.       get: function get() {
  1816.         return VERSION;
  1817.       }
  1818.     }, {
  1819.       key: "Default",
  1820.       get: function get() {
  1821.         return Default;
  1822.       }
  1823.     }, {
  1824.       key: "DefaultType",
  1825.       get: function get() {
  1826.         return DefaultType;
  1827.       }
  1828.     }]);
  1829.     return Dropdown;
  1830.   }();
  1831.   /**
  1832.    * ------------------------------------------------------------------------
  1833.    * Data Api implementation
  1834.    * ------------------------------------------------------------------------
  1835.    */
  1836.  
  1837.  
  1838.   $$$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) {
  1839.     event.preventDefault();
  1840.     event.stopPropagation();
  1841.  
  1842.     Dropdown._jQueryInterface.call($$$1(this), 'toggle');
  1843.   }).on(Event.CLICK_DATA_API, Selector.FORM_CHILD, function (e) {
  1844.     e.stopPropagation();
  1845.   });
  1846.   /**
  1847.    * ------------------------------------------------------------------------
  1848.    * jQuery
  1849.    * ------------------------------------------------------------------------
  1850.    */
  1851.  
  1852.   $$$1.fn[NAME] = Dropdown._jQueryInterface;
  1853.   $$$1.fn[NAME].Constructor = Dropdown;
  1854.  
  1855.   $$$1.fn[NAME].noConflict = function () {
  1856.     $$$1.fn[NAME] = JQUERY_NO_CONFLICT;
  1857.     return Dropdown._jQueryInterface;
  1858.   };
  1859.  
  1860.   return Dropdown;
  1861. }($, Popper);
  1862.  
  1863. /**
  1864.  * --------------------------------------------------------------------------
  1865.  * Bootstrap (v4.0.0): modal.js
  1866.  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
  1867.  * --------------------------------------------------------------------------
  1868.  */
  1869.  
  1870. var Modal = function ($$$1) {
  1871.   /**
  1872.    * ------------------------------------------------------------------------
  1873.    * Constants
  1874.    * ------------------------------------------------------------------------
  1875.    */
  1876.   var NAME = 'modal';
  1877.   var VERSION = '4.0.0';
  1878.   var DATA_KEY = 'bs.modal';
  1879.   var EVENT_KEY = "." + DATA_KEY;
  1880.   var DATA_API_KEY = '.data-api';
  1881.   var JQUERY_NO_CONFLICT = $$$1.fn[NAME];
  1882.   var TRANSITION_DURATION = 300;
  1883.   var BACKDROP_TRANSITION_DURATION = 150;
  1884.   var ESCAPE_KEYCODE = 27; // KeyboardEvent.which value for Escape (Esc) key
  1885.  
  1886.   var Default = {
  1887.     backdrop: true,
  1888.     keyboard: true,
  1889.     focus: true,
  1890.     show: true
  1891.   };
  1892.   var DefaultType = {
  1893.     backdrop: '(boolean|string)',
  1894.     keyboard: 'boolean',
  1895.     focus: 'boolean',
  1896.     show: 'boolean'
  1897.   };
  1898.   var Event = {
  1899.     HIDE: "hide" + EVENT_KEY,
  1900.     HIDDEN: "hidden" + EVENT_KEY,
  1901.     SHOW: "show" + EVENT_KEY,
  1902.     SHOWN: "shown" + EVENT_KEY,
  1903.     FOCUSIN: "focusin" + EVENT_KEY,
  1904.     RESIZE: "resize" + EVENT_KEY,
  1905.     CLICK_DISMISS: "click.dismiss" + EVENT_KEY,
  1906.     KEYDOWN_DISMISS: "keydown.dismiss" + EVENT_KEY,
  1907.     MOUSEUP_DISMISS: "mouseup.dismiss" + EVENT_KEY,
  1908.     MOUSEDOWN_DISMISS: "mousedown.dismiss" + EVENT_KEY,
  1909.     CLICK_DATA_API: "click" + EVENT_KEY + DATA_API_KEY
  1910.   };
  1911.   var ClassName = {
  1912.     SCROLLBAR_MEASURER: 'modal-scrollbar-measure',
  1913.     BACKDROP: 'modal-backdrop',
  1914.     OPEN: 'modal-open',
  1915.     FADE: 'fade',
  1916.     SHOW: 'show'
  1917.   };
  1918.   var Selector = {
  1919.     DIALOG: '.modal-dialog',
  1920.     DATA_TOGGLE: '[data-toggle="modal"]',
  1921.     DATA_DISMISS: '[data-dismiss="modal"]',
  1922.     FIXED_CONTENT: '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top',
  1923.     STICKY_CONTENT: '.sticky-top',
  1924.     NAVBAR_TOGGLER: '.navbar-toggler'
  1925.     /**
  1926.      * ------------------------------------------------------------------------
  1927.      * Class Definition
  1928.      * ------------------------------------------------------------------------
  1929.      */
  1930.  
  1931.   };
  1932.  
  1933.   var Modal =
  1934.   /*#__PURE__*/
  1935.   function () {
  1936.     function Modal(element, config) {
  1937.       this._config = this._getConfig(config);
  1938.       this._element = element;
  1939.       this._dialog = $$$1(element).find(Selector.DIALOG)[0];
  1940.       this._backdrop = null;
  1941.       this._isShown = false;
  1942.       this._isBodyOverflowing = false;
  1943.       this._ignoreBackdropClick = false;
  1944.       this._originalBodyPadding = 0;
  1945.       this._scrollbarWidth = 0;
  1946.     } // Getters
  1947.  
  1948.  
  1949.     var _proto = Modal.prototype;
  1950.  
  1951.     // Public
  1952.     _proto.toggle = function toggle(relatedTarget) {
  1953.       return this._isShown ? this.hide() : this.show(relatedTarget);
  1954.     };
  1955.  
  1956.     _proto.show = function show(relatedTarget) {
  1957.       var _this = this;
  1958.  
  1959.       if (this._isTransitioning || this._isShown) {
  1960.         return;
  1961.       }
  1962.  
  1963.       if (Util.supportsTransitionEnd() && $$$1(this._element).hasClass(ClassName.FADE)) {
  1964.         this._isTransitioning = true;
  1965.       }
  1966.  
  1967.       var showEvent = $$$1.Event(Event.SHOW, {
  1968.         relatedTarget: relatedTarget
  1969.       });
  1970.       $$$1(this._element).trigger(showEvent);
  1971.  
  1972.       if (this._isShown || showEvent.isDefaultPrevented()) {
  1973.         return;
  1974.       }
  1975.  
  1976.       this._isShown = true;
  1977.  
  1978.       this._checkScrollbar();
  1979.  
  1980.       this._setScrollbar();
  1981.  
  1982.       this._adjustDialog();
  1983.  
  1984.       $$$1(document.body).addClass(ClassName.OPEN);
  1985.  
  1986.       this._setEscapeEvent();
  1987.  
  1988.       this._setResizeEvent();
  1989.  
  1990.       $$$1(this._element).on(Event.CLICK_DISMISS, Selector.DATA_DISMISS, function (event) {
  1991.         return _this.hide(event);
  1992.       });
  1993.       $$$1(this._dialog).on(Event.MOUSEDOWN_DISMISS, function () {
  1994.         $$$1(_this._element).one(Event.MOUSEUP_DISMISS, function (event) {
  1995.           if ($$$1(event.target).is(_this._element)) {
  1996.             _this._ignoreBackdropClick = true;
  1997.           }
  1998.         });
  1999.       });
  2000.  
  2001.       this._showBackdrop(function () {
  2002.         return _this._showElement(relatedTarget);
  2003.       });
  2004.     };
  2005.  
  2006.     _proto.hide = function hide(event) {
  2007.       var _this2 = this;
  2008.  
  2009.       if (event) {
  2010.         event.preventDefault();
  2011.       }
  2012.  
  2013.       if (this._isTransitioning || !this._isShown) {
  2014.         return;
  2015.       }
  2016.  
  2017.       var hideEvent = $$$1.Event(Event.HIDE);
  2018.       $$$1(this._element).trigger(hideEvent);
  2019.  
  2020.       if (!this._isShown || hideEvent.isDefaultPrevented()) {
  2021.         return;
  2022.       }
  2023.  
  2024.       this._isShown = false;
  2025.       var transition = Util.supportsTransitionEnd() && $$$1(this._element).hasClass(ClassName.FADE);
  2026.  
  2027.       if (transition) {
  2028.         this._isTransitioning = true;
  2029.       }
  2030.  
  2031.       this._setEscapeEvent();
  2032.  
  2033.       this._setResizeEvent();
  2034.  
  2035.       $$$1(document).off(Event.FOCUSIN);
  2036.       $$$1(this._element).removeClass(ClassName.SHOW);
  2037.       $$$1(this._element).off(Event.CLICK_DISMISS);
  2038.       $$$1(this._dialog).off(Event.MOUSEDOWN_DISMISS);
  2039.  
  2040.       if (transition) {
  2041.         $$$1(this._element).one(Util.TRANSITION_END, function (event) {
  2042.           return _this2._hideModal(event);
  2043.         }).emulateTransitionEnd(TRANSITION_DURATION);
  2044.       } else {
  2045.         this._hideModal();
  2046.       }
  2047.     };
  2048.  
  2049.     _proto.dispose = function dispose() {
  2050.       $$$1.removeData(this._element, DATA_KEY);
  2051.       $$$1(window, document, this._element, this._backdrop).off(EVENT_KEY);
  2052.       this._config = null;
  2053.       this._element = null;
  2054.       this._dialog = null;
  2055.       this._backdrop = null;
  2056.       this._isShown = null;
  2057.       this._isBodyOverflowing = null;
  2058.       this._ignoreBackdropClick = null;
  2059.       this._scrollbarWidth = null;
  2060.     };
  2061.  
  2062.     _proto.handleUpdate = function handleUpdate() {
  2063.       this._adjustDialog();
  2064.     }; // Private
  2065.  
  2066.  
  2067.     _proto._getConfig = function _getConfig(config) {
  2068.       config = _extends({}, Default, config);
  2069.       Util.typeCheckConfig(NAME, config, DefaultType);
  2070.       return config;
  2071.     };
  2072.  
  2073.     _proto._showElement = function _showElement(relatedTarget) {
  2074.       var _this3 = this;
  2075.  
  2076.       var transition = Util.supportsTransitionEnd() && $$$1(this._element).hasClass(ClassName.FADE);
  2077.  
  2078.       if (!this._element.parentNode || this._element.parentNode.nodeType !== Node.ELEMENT_NODE) {
  2079.         // Don't move modal's DOM position
  2080.         document.body.appendChild(this._element);
  2081.       }
  2082.  
  2083.       this._element.style.display = 'block';
  2084.  
  2085.       this._element.removeAttribute('aria-hidden');
  2086.  
  2087.       this._element.scrollTop = 0;
  2088.  
  2089.       if (transition) {
  2090.         Util.reflow(this._element);
  2091.       }
  2092.  
  2093.       $$$1(this._element).addClass(ClassName.SHOW);
  2094.  
  2095.       if (this._config.focus) {
  2096.         this._enforceFocus();
  2097.       }
  2098.  
  2099.       var shownEvent = $$$1.Event(Event.SHOWN, {
  2100.         relatedTarget: relatedTarget
  2101.       });
  2102.  
  2103.       var transitionComplete = function transitionComplete() {
  2104.         if (_this3._config.focus) {
  2105.           _this3._element.focus();
  2106.         }
  2107.  
  2108.         _this3._isTransitioning = false;
  2109.         $$$1(_this3._element).trigger(shownEvent);
  2110.       };
  2111.  
  2112.       if (transition) {
  2113.         $$$1(this._dialog).one(Util.TRANSITION_END, transitionComplete).emulateTransitionEnd(TRANSITION_DURATION);
  2114.       } else {
  2115.         transitionComplete();
  2116.       }
  2117.     };
  2118.  
  2119.     _proto._enforceFocus = function _enforceFocus() {
  2120.       var _this4 = this;
  2121.  
  2122.       $$$1(document).off(Event.FOCUSIN) // Guard against infinite focus loop
  2123.       .on(Event.FOCUSIN, function (event) {
  2124.         if (document !== event.target && _this4._element !== event.target && $$$1(_this4._element).has(event.target).length === 0) {
  2125.           _this4._element.focus();
  2126.         }
  2127.       });
  2128.     };
  2129.  
  2130.     _proto._setEscapeEvent = function _setEscapeEvent() {
  2131.       var _this5 = this;
  2132.  
  2133.       if (this._isShown && this._config.keyboard) {
  2134.         $$$1(this._element).on(Event.KEYDOWN_DISMISS, function (event) {
  2135.           if (event.which === ESCAPE_KEYCODE) {
  2136.             event.preventDefault();
  2137.  
  2138.             _this5.hide();
  2139.           }
  2140.         });
  2141.       } else if (!this._isShown) {
  2142.         $$$1(this._element).off(Event.KEYDOWN_DISMISS);
  2143.       }
  2144.     };
  2145.  
  2146.     _proto._setResizeEvent = function _setResizeEvent() {
  2147.       var _this6 = this;
  2148.  
  2149.       if (this._isShown) {
  2150.         $$$1(window).on(Event.RESIZE, function (event) {
  2151.           return _this6.handleUpdate(event);
  2152.         });
  2153.       } else {
  2154.         $$$1(window).off(Event.RESIZE);
  2155.       }
  2156.     };
  2157.  
  2158.     _proto._hideModal = function _hideModal() {
  2159.       var _this7 = this;
  2160.  
  2161.       this._element.style.display = 'none';
  2162.  
  2163.       this._element.setAttribute('aria-hidden', true);
  2164.  
  2165.       this._isTransitioning = false;
  2166.  
  2167.       this._showBackdrop(function () {
  2168.         $$$1(document.body).removeClass(ClassName.OPEN);
  2169.  
  2170.         _this7._resetAdjustments();
  2171.  
  2172.         _this7._resetScrollbar();
  2173.  
  2174.         $$$1(_this7._element).trigger(Event.HIDDEN);
  2175.       });
  2176.     };
  2177.  
  2178.     _proto._removeBackdrop = function _removeBackdrop() {
  2179.       if (this._backdrop) {
  2180.         $$$1(this._backdrop).remove();
  2181.         this._backdrop = null;
  2182.       }
  2183.     };
  2184.  
  2185.     _proto._showBackdrop = function _showBackdrop(callback) {
  2186.       var _this8 = this;
  2187.  
  2188.       var animate = $$$1(this._element).hasClass(ClassName.FADE) ? ClassName.FADE : '';
  2189.  
  2190.       if (this._isShown && this._config.backdrop) {
  2191.         var doAnimate = Util.supportsTransitionEnd() && animate;
  2192.         this._backdrop = document.createElement('div');
  2193.         this._backdrop.className = ClassName.BACKDROP;
  2194.  
  2195.         if (animate) {
  2196.           $$$1(this._backdrop).addClass(animate);
  2197.         }
  2198.  
  2199.         $$$1(this._backdrop).appendTo(document.body);
  2200.         $$$1(this._element).on(Event.CLICK_DISMISS, function (event) {
  2201.           if (_this8._ignoreBackdropClick) {
  2202.             _this8._ignoreBackdropClick = false;
  2203.             return;
  2204.           }
  2205.  
  2206.           if (event.target !== event.currentTarget) {
  2207.             return;
  2208.           }
  2209.  
  2210.           if (_this8._config.backdrop === 'static') {
  2211.             _this8._element.focus();
  2212.           } else {
  2213.             _this8.hide();
  2214.           }
  2215.         });
  2216.  
  2217.         if (doAnimate) {
  2218.           Util.reflow(this._backdrop);
  2219.         }
  2220.  
  2221.         $$$1(this._backdrop).addClass(ClassName.SHOW);
  2222.  
  2223.         if (!callback) {
  2224.           return;
  2225.         }
  2226.  
  2227.         if (!doAnimate) {
  2228.           callback();
  2229.           return;
  2230.         }
  2231.  
  2232.         $$$1(this._backdrop).one(Util.TRANSITION_END, callback).emulateTransitionEnd(BACKDROP_TRANSITION_DURATION);
  2233.       } else if (!this._isShown && this._backdrop) {
  2234.         $$$1(this._backdrop).removeClass(ClassName.SHOW);
  2235.  
  2236.         var callbackRemove = function callbackRemove() {
  2237.           _this8._removeBackdrop();
  2238.  
  2239.           if (callback) {
  2240.             callback();
  2241.           }
  2242.         };
  2243.  
  2244.         if (Util.supportsTransitionEnd() && $$$1(this._element).hasClass(ClassName.FADE)) {
  2245.           $$$1(this._backdrop).one(Util.TRANSITION_END, callbackRemove).emulateTransitionEnd(BACKDROP_TRANSITION_DURATION);
  2246.         } else {
  2247.           callbackRemove();
  2248.         }
  2249.       } else if (callback) {
  2250.         callback();
  2251.       }
  2252.     }; // ----------------------------------------------------------------------
  2253.     // the following methods are used to handle overflowing modals
  2254.     // todo (fat): these should probably be refactored out of modal.js
  2255.     // ----------------------------------------------------------------------
  2256.  
  2257.  
  2258.     _proto._adjustDialog = function _adjustDialog() {
  2259.       var isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight;
  2260.  
  2261.       if (!this._isBodyOverflowing && isModalOverflowing) {
  2262.         this._element.style.paddingLeft = this._scrollbarWidth + "px";
  2263.       }
  2264.  
  2265.       if (this._isBodyOverflowing && !isModalOverflowing) {
  2266.         this._element.style.paddingRight = this._scrollbarWidth + "px";
  2267.       }
  2268.     };
  2269.  
  2270.     _proto._resetAdjustments = function _resetAdjustments() {
  2271.       this._element.style.paddingLeft = '';
  2272.       this._element.style.paddingRight = '';
  2273.     };
  2274.  
  2275.     _proto._checkScrollbar = function _checkScrollbar() {
  2276.       var rect = document.body.getBoundingClientRect();
  2277.       this._isBodyOverflowing = rect.left + rect.right < window.innerWidth;
  2278.       this._scrollbarWidth = this._getScrollbarWidth();
  2279.     };
  2280.  
  2281.     _proto._setScrollbar = function _setScrollbar() {
  2282.       var _this9 = this;
  2283.  
  2284.       if (this._isBodyOverflowing) {
  2285.         // Note: DOMNode.style.paddingRight returns the actual value or '' if not set
  2286.         //   while $(DOMNode).css('padding-right') returns the calculated value or 0 if not set
  2287.         // Adjust fixed content padding
  2288.         $$$1(Selector.FIXED_CONTENT).each(function (index, element) {
  2289.           var actualPadding = $$$1(element)[0].style.paddingRight;
  2290.           var calculatedPadding = $$$1(element).css('padding-right');
  2291.           $$$1(element).data('padding-right', actualPadding).css('padding-right', parseFloat(calculatedPadding) + _this9._scrollbarWidth + "px");
  2292.         }); // Adjust sticky content margin
  2293.  
  2294.         $$$1(Selector.STICKY_CONTENT).each(function (index, element) {
  2295.           var actualMargin = $$$1(element)[0].style.marginRight;
  2296.           var calculatedMargin = $$$1(element).css('margin-right');
  2297.           $$$1(element).data('margin-right', actualMargin).css('margin-right', parseFloat(calculatedMargin) - _this9._scrollbarWidth + "px");
  2298.         }); // Adjust navbar-toggler margin
  2299.  
  2300.         $$$1(Selector.NAVBAR_TOGGLER).each(function (index, element) {
  2301.           var actualMargin = $$$1(element)[0].style.marginRight;
  2302.           var calculatedMargin = $$$1(element).css('margin-right');
  2303.           $$$1(element).data('margin-right', actualMargin).css('margin-right', parseFloat(calculatedMargin) + _this9._scrollbarWidth + "px");
  2304.         }); // Adjust body padding
  2305.  
  2306.         var actualPadding = document.body.style.paddingRight;
  2307.         var calculatedPadding = $$$1('body').css('padding-right');
  2308.         $$$1('body').data('padding-right', actualPadding).css('padding-right', parseFloat(calculatedPadding) + this._scrollbarWidth + "px");
  2309.       }
  2310.     };
  2311.  
  2312.     _proto._resetScrollbar = function _resetScrollbar() {
  2313.       // Restore fixed content padding
  2314.       $$$1(Selector.FIXED_CONTENT).each(function (index, element) {
  2315.         var padding = $$$1(element).data('padding-right');
  2316.  
  2317.         if (typeof padding !== 'undefined') {
  2318.           $$$1(element).css('padding-right', padding).removeData('padding-right');
  2319.         }
  2320.       }); // Restore sticky content and navbar-toggler margin
  2321.  
  2322.       $$$1(Selector.STICKY_CONTENT + ", " + Selector.NAVBAR_TOGGLER).each(function (index, element) {
  2323.         var margin = $$$1(element).data('margin-right');
  2324.  
  2325.         if (typeof margin !== 'undefined') {
  2326.           $$$1(element).css('margin-right', margin).removeData('margin-right');
  2327.         }
  2328.       }); // Restore body padding
  2329.  
  2330.       var padding = $$$1('body').data('padding-right');
  2331.  
  2332.       if (typeof padding !== 'undefined') {
  2333.         $$$1('body').css('padding-right', padding).removeData('padding-right');
  2334.       }
  2335.     };
  2336.  
  2337.     _proto._getScrollbarWidth = function _getScrollbarWidth() {
  2338.       // thx d.walsh
  2339.       var scrollDiv = document.createElement('div');
  2340.       scrollDiv.className = ClassName.SCROLLBAR_MEASURER;
  2341.       document.body.appendChild(scrollDiv);
  2342.       var scrollbarWidth = scrollDiv.getBoundingClientRect().width - scrollDiv.clientWidth;
  2343.       document.body.removeChild(scrollDiv);
  2344.       return scrollbarWidth;
  2345.     }; // Static
  2346.  
  2347.  
  2348.     Modal._jQueryInterface = function _jQueryInterface(config, relatedTarget) {
  2349.       return this.each(function () {
  2350.         var data = $$$1(this).data(DATA_KEY);
  2351.  
  2352.         var _config = _extends({}, Modal.Default, $$$1(this).data(), typeof config === 'object' && config);
  2353.  
  2354.         if (!data) {
  2355.           data = new Modal(this, _config);
  2356.           $$$1(this).data(DATA_KEY, data);
  2357.         }
  2358.  
  2359.         if (typeof config === 'string') {
  2360.           if (typeof data[config] === 'undefined') {
  2361.             throw new TypeError("No method named \"" + config + "\"");
  2362.           }
  2363.  
  2364.           data[config](relatedTarget);
  2365.         } else if (_config.show) {
  2366.           data.show(relatedTarget);
  2367.         }
  2368.       });
  2369.     };
  2370.  
  2371.     _createClass(Modal, null, [{
  2372.       key: "VERSION",
  2373.       get: function get() {
  2374.         return VERSION;
  2375.       }
  2376.     }, {
  2377.       key: "Default",
  2378.       get: function get() {
  2379.         return Default;
  2380.       }
  2381.     }]);
  2382.     return Modal;
  2383.   }();
  2384.   /**
  2385.    * ------------------------------------------------------------------------
  2386.    * Data Api implementation
  2387.    * ------------------------------------------------------------------------
  2388.    */
  2389.  
  2390.  
  2391.   $$$1(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {
  2392.     var _this10 = this;
  2393.  
  2394.     var target;
  2395.     var selector = Util.getSelectorFromElement(this);
  2396.  
  2397.     if (selector) {
  2398.       target = $$$1(selector)[0];
  2399.     }
  2400.  
  2401.     var config = $$$1(target).data(DATA_KEY) ? 'toggle' : _extends({}, $$$1(target).data(), $$$1(this).data());
  2402.  
  2403.     if (this.tagName === 'A' || this.tagName === 'AREA') {
  2404.       event.preventDefault();
  2405.     }
  2406.  
  2407.     var $target = $$$1(target).one(Event.SHOW, function (showEvent) {
  2408.       if (showEvent.isDefaultPrevented()) {
  2409.         // Only register focus restorer if modal will actually get shown
  2410.         return;
  2411.       }
  2412.  
  2413.       $target.one(Event.HIDDEN, function () {
  2414.         if ($$$1(_this10).is(':visible')) {
  2415.           _this10.focus();
  2416.         }
  2417.       });
  2418.     });
  2419.  
  2420.     Modal._jQueryInterface.call($$$1(target), config, this);
  2421.   });
  2422.   /**
  2423.    * ------------------------------------------------------------------------
  2424.    * jQuery
  2425.    * ------------------------------------------------------------------------
  2426.    */
  2427.  
  2428.   $$$1.fn[NAME] = Modal._jQueryInterface;
  2429.   $$$1.fn[NAME].Constructor = Modal;
  2430.  
  2431.   $$$1.fn[NAME].noConflict = function () {
  2432.     $$$1.fn[NAME] = JQUERY_NO_CONFLICT;
  2433.     return Modal._jQueryInterface;
  2434.   };
  2435.  
  2436.   return Modal;
  2437. }($);
  2438.  
  2439. /**
  2440.  * --------------------------------------------------------------------------
  2441.  * Bootstrap (v4.0.0): tooltip.js
  2442.  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
  2443.  * --------------------------------------------------------------------------
  2444.  */
  2445.  
  2446. var Tooltip = function ($$$1) {
  2447.   /**
  2448.    * ------------------------------------------------------------------------
  2449.    * Constants
  2450.    * ------------------------------------------------------------------------
  2451.    */
  2452.   var NAME = 'tooltip';
  2453.   var VERSION = '4.0.0';
  2454.   var DATA_KEY = 'bs.tooltip';
  2455.   var EVENT_KEY = "." + DATA_KEY;
  2456.   var JQUERY_NO_CONFLICT = $$$1.fn[NAME];
  2457.   var TRANSITION_DURATION = 150;
  2458.   var CLASS_PREFIX = 'bs-tooltip';
  2459.   var BSCLS_PREFIX_REGEX = new RegExp("(^|\\s)" + CLASS_PREFIX + "\\S+", 'g');
  2460.   var DefaultType = {
  2461.     animation: 'boolean',
  2462.     template: 'string',
  2463.     title: '(string|element|function)',
  2464.     trigger: 'string',
  2465.     delay: '(number|object)',
  2466.     html: 'boolean',
  2467.     selector: '(string|boolean)',
  2468.     placement: '(string|function)',
  2469.     offset: '(number|string)',
  2470.     container: '(string|element|boolean)',
  2471.     fallbackPlacement: '(string|array)',
  2472.     boundary: '(string|element)'
  2473.   };
  2474.   var AttachmentMap = {
  2475.     AUTO: 'auto',
  2476.     TOP: 'top',
  2477.     RIGHT: 'right',
  2478.     BOTTOM: 'bottom',
  2479.     LEFT: 'left'
  2480.   };
  2481.   var Default = {
  2482.     animation: true,
  2483.     template: '<div class="tooltip" role="tooltip">' + '<div class="arrow"></div>' + '<div class="tooltip-inner"></div></div>',
  2484.     trigger: 'hover focus',
  2485.     title: '',
  2486.     delay: 0,
  2487.     html: false,
  2488.     selector: false,
  2489.     placement: 'top',
  2490.     offset: 0,
  2491.     container: false,
  2492.     fallbackPlacement: 'flip',
  2493.     boundary: 'scrollParent'
  2494.   };
  2495.   var HoverState = {
  2496.     SHOW: 'show',
  2497.     OUT: 'out'
  2498.   };
  2499.   var Event = {
  2500.     HIDE: "hide" + EVENT_KEY,
  2501.     HIDDEN: "hidden" + EVENT_KEY,
  2502.     SHOW: "show" + EVENT_KEY,
  2503.     SHOWN: "shown" + EVENT_KEY,
  2504.     INSERTED: "inserted" + EVENT_KEY,
  2505.     CLICK: "click" + EVENT_KEY,
  2506.     FOCUSIN: "focusin" + EVENT_KEY,
  2507.     FOCUSOUT: "focusout" + EVENT_KEY,
  2508.     MOUSEENTER: "mouseenter" + EVENT_KEY,
  2509.     MOUSELEAVE: "mouseleave" + EVENT_KEY
  2510.   };
  2511.   var ClassName = {
  2512.     FADE: 'fade',
  2513.     SHOW: 'show'
  2514.   };
  2515.   var Selector = {
  2516.     TOOLTIP: '.tooltip',
  2517.     TOOLTIP_INNER: '.tooltip-inner',
  2518.     ARROW: '.arrow'
  2519.   };
  2520.   var Trigger = {
  2521.     HOVER: 'hover',
  2522.     FOCUS: 'focus',
  2523.     CLICK: 'click',
  2524.     MANUAL: 'manual'
  2525.     /**
  2526.      * ------------------------------------------------------------------------
  2527.      * Class Definition
  2528.      * ------------------------------------------------------------------------
  2529.      */
  2530.  
  2531.   };
  2532.  
  2533.   var Tooltip =
  2534.   /*#__PURE__*/
  2535.   function () {
  2536.     function Tooltip(element, config) {
  2537.       /**
  2538.        * Check for Popper dependency
  2539.        * Popper - https://popper.js.org
  2540.        */
  2541.       if (typeof Popper === 'undefined') {
  2542.         throw new TypeError('Bootstrap tooltips require Popper.js (https://popper.js.org)');
  2543.       } // private
  2544.  
  2545.  
  2546.       this._isEnabled = true;
  2547.       this._timeout = 0;
  2548.       this._hoverState = '';
  2549.       this._activeTrigger = {};
  2550.       this._popper = null; // Protected
  2551.  
  2552.       this.element = element;
  2553.       this.config = this._getConfig(config);
  2554.       this.tip = null;
  2555.  
  2556.       this._setListeners();
  2557.     } // Getters
  2558.  
  2559.  
  2560.     var _proto = Tooltip.prototype;
  2561.  
  2562.     // Public
  2563.     _proto.enable = function enable() {
  2564.       this._isEnabled = true;
  2565.     };
  2566.  
  2567.     _proto.disable = function disable() {
  2568.       this._isEnabled = false;
  2569.     };
  2570.  
  2571.     _proto.toggleEnabled = function toggleEnabled() {
  2572.       this._isEnabled = !this._isEnabled;
  2573.     };
  2574.  
  2575.     _proto.toggle = function toggle(event) {
  2576.       if (!this._isEnabled) {
  2577.         return;
  2578.       }
  2579.  
  2580.       if (event) {
  2581.         var dataKey = this.constructor.DATA_KEY;
  2582.         var context = $$$1(event.currentTarget).data(dataKey);
  2583.  
  2584.         if (!context) {
  2585.           context = new this.constructor(event.currentTarget, this._getDelegateConfig());
  2586.           $$$1(event.currentTarget).data(dataKey, context);
  2587.         }
  2588.  
  2589.         context._activeTrigger.click = !context._activeTrigger.click;
  2590.  
  2591.         if (context._isWithActiveTrigger()) {
  2592.           context._enter(null, context);
  2593.         } else {
  2594.           context._leave(null, context);
  2595.         }
  2596.       } else {
  2597.         if ($$$1(this.getTipElement()).hasClass(ClassName.SHOW)) {
  2598.           this._leave(null, this);
  2599.  
  2600.           return;
  2601.         }
  2602.  
  2603.         this._enter(null, this);
  2604.       }
  2605.     };
  2606.  
  2607.     _proto.dispose = function dispose() {
  2608.       clearTimeout(this._timeout);
  2609.       $$$1.removeData(this.element, this.constructor.DATA_KEY);
  2610.       $$$1(this.element).off(this.constructor.EVENT_KEY);
  2611.       $$$1(this.element).closest('.modal').off('hide.bs.modal');
  2612.  
  2613.       if (this.tip) {
  2614.         $$$1(this.tip).remove();
  2615.       }
  2616.  
  2617.       this._isEnabled = null;
  2618.       this._timeout = null;
  2619.       this._hoverState = null;
  2620.       this._activeTrigger = null;
  2621.  
  2622.       if (this._popper !== null) {
  2623.         this._popper.destroy();
  2624.       }
  2625.  
  2626.       this._popper = null;
  2627.       this.element = null;
  2628.       this.config = null;
  2629.       this.tip = null;
  2630.     };
  2631.  
  2632.     _proto.show = function show() {
  2633.       var _this = this;
  2634.  
  2635.       if ($$$1(this.element).css('display') === 'none') {
  2636.         throw new Error('Please use show on visible elements');
  2637.       }
  2638.  
  2639.       var showEvent = $$$1.Event(this.constructor.Event.SHOW);
  2640.  
  2641.       if (this.isWithContent() && this._isEnabled) {
  2642.         $$$1(this.element).trigger(showEvent);
  2643.         var isInTheDom = $$$1.contains(this.element.ownerDocument.documentElement, this.element);
  2644.  
  2645.         if (showEvent.isDefaultPrevented() || !isInTheDom) {
  2646.           return;
  2647.         }
  2648.  
  2649.         var tip = this.getTipElement();
  2650.         var tipId = Util.getUID(this.constructor.NAME);
  2651.         tip.setAttribute('id', tipId);
  2652.         this.element.setAttribute('aria-describedby', tipId);
  2653.         this.setContent();
  2654.  
  2655.         if (this.config.animation) {
  2656.           $$$1(tip).addClass(ClassName.FADE);
  2657.         }
  2658.  
  2659.         var placement = typeof this.config.placement === 'function' ? this.config.placement.call(this, tip, this.element) : this.config.placement;
  2660.  
  2661.         var attachment = this._getAttachment(placement);
  2662.  
  2663.         this.addAttachmentClass(attachment);
  2664.         var container = this.config.container === false ? document.body : $$$1(this.config.container);
  2665.         $$$1(tip).data(this.constructor.DATA_KEY, this);
  2666.  
  2667.         if (!$$$1.contains(this.element.ownerDocument.documentElement, this.tip)) {
  2668.           $$$1(tip).appendTo(container);
  2669.         }
  2670.  
  2671.         $$$1(this.element).trigger(this.constructor.Event.INSERTED);
  2672.         this._popper = new Popper(this.element, tip, {
  2673.           placement: attachment,
  2674.           modifiers: {
  2675.             offset: {
  2676.               offset: this.config.offset
  2677.             },
  2678.             flip: {
  2679.               behavior: this.config.fallbackPlacement
  2680.             },
  2681.             arrow: {
  2682.               element: Selector.ARROW
  2683.             },
  2684.             preventOverflow: {
  2685.               boundariesElement: this.config.boundary
  2686.             }
  2687.           },
  2688.           onCreate: function onCreate(data) {
  2689.             if (data.originalPlacement !== data.placement) {
  2690.               _this._handlePopperPlacementChange(data);
  2691.             }
  2692.           },
  2693.           onUpdate: function onUpdate(data) {
  2694.             _this._handlePopperPlacementChange(data);
  2695.           }
  2696.         });
  2697.         $$$1(tip).addClass(ClassName.SHOW); // If this is a touch-enabled device we add extra
  2698.         // empty mouseover listeners to the body's immediate children;
  2699.         // only needed because of broken event delegation on iOS
  2700.         // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html
  2701.  
  2702.         if ('ontouchstart' in document.documentElement) {
  2703.           $$$1('body').children().on('mouseover', null, $$$1.noop);
  2704.         }
  2705.  
  2706.         var complete = function complete() {
  2707.           if (_this.config.animation) {
  2708.             _this._fixTransition();
  2709.           }
  2710.  
  2711.           var prevHoverState = _this._hoverState;
  2712.           _this._hoverState = null;
  2713.           $$$1(_this.element).trigger(_this.constructor.Event.SHOWN);
  2714.  
  2715.           if (prevHoverState === HoverState.OUT) {
  2716.             _this._leave(null, _this);
  2717.           }
  2718.         };
  2719.  
  2720.         if (Util.supportsTransitionEnd() && $$$1(this.tip).hasClass(ClassName.FADE)) {
  2721.           $$$1(this.tip).one(Util.TRANSITION_END, complete).emulateTransitionEnd(Tooltip._TRANSITION_DURATION);
  2722.         } else {
  2723.           complete();
  2724.         }
  2725.       }
  2726.     };
  2727.  
  2728.     _proto.hide = function hide(callback) {
  2729.       var _this2 = this;
  2730.  
  2731.       var tip = this.getTipElement();
  2732.       var hideEvent = $$$1.Event(this.constructor.Event.HIDE);
  2733.  
  2734.       var complete = function complete() {
  2735.         if (_this2._hoverState !== HoverState.SHOW && tip.parentNode) {
  2736.           tip.parentNode.removeChild(tip);
  2737.         }
  2738.  
  2739.         _this2._cleanTipClass();
  2740.  
  2741.         _this2.element.removeAttribute('aria-describedby');
  2742.  
  2743.         $$$1(_this2.element).trigger(_this2.constructor.Event.HIDDEN);
  2744.  
  2745.         if (_this2._popper !== null) {
  2746.           _this2._popper.destroy();
  2747.         }
  2748.  
  2749.         if (callback) {
  2750.           callback();
  2751.         }
  2752.       };
  2753.  
  2754.       $$$1(this.element).trigger(hideEvent);
  2755.  
  2756.       if (hideEvent.isDefaultPrevented()) {
  2757.         return;
  2758.       }
  2759.  
  2760.       $$$1(tip).removeClass(ClassName.SHOW); // If this is a touch-enabled device we remove the extra
  2761.       // empty mouseover listeners we added for iOS support
  2762.  
  2763.       if ('ontouchstart' in document.documentElement) {
  2764.         $$$1('body').children().off('mouseover', null, $$$1.noop);
  2765.       }
  2766.  
  2767.       this._activeTrigger[Trigger.CLICK] = false;
  2768.       this._activeTrigger[Trigger.FOCUS] = false;
  2769.       this._activeTrigger[Trigger.HOVER] = false;
  2770.  
  2771.       if (Util.supportsTransitionEnd() && $$$1(this.tip).hasClass(ClassName.FADE)) {
  2772.         $$$1(tip).one(Util.TRANSITION_END, complete).emulateTransitionEnd(TRANSITION_DURATION);
  2773.       } else {
  2774.         complete();
  2775.       }
  2776.  
  2777.       this._hoverState = '';
  2778.     };
  2779.  
  2780.     _proto.update = function update() {
  2781.       if (this._popper !== null) {
  2782.         this._popper.scheduleUpdate();
  2783.       }
  2784.     }; // Protected
  2785.  
  2786.  
  2787.     _proto.isWithContent = function isWithContent() {
  2788.       return Boolean(this.getTitle());
  2789.     };
  2790.  
  2791.     _proto.addAttachmentClass = function addAttachmentClass(attachment) {
  2792.       $$$1(this.getTipElement()).addClass(CLASS_PREFIX + "-" + attachment);
  2793.     };
  2794.  
  2795.     _proto.getTipElement = function getTipElement() {
  2796.       this.tip = this.tip || $$$1(this.config.template)[0];
  2797.       return this.tip;
  2798.     };
  2799.  
  2800.     _proto.setContent = function setContent() {
  2801.       var $tip = $$$1(this.getTipElement());
  2802.       this.setElementContent($tip.find(Selector.TOOLTIP_INNER), this.getTitle());
  2803.       $tip.removeClass(ClassName.FADE + " " + ClassName.SHOW);
  2804.     };
  2805.  
  2806.     _proto.setElementContent = function setElementContent($element, content) {
  2807.       var html = this.config.html;
  2808.  
  2809.       if (typeof content === 'object' && (content.nodeType || content.jquery)) {
  2810.         // Content is a DOM node or a jQuery
  2811.         if (html) {
  2812.           if (!$$$1(content).parent().is($element)) {
  2813.             $element.empty().append(content);
  2814.           }
  2815.         } else {
  2816.           $element.text($$$1(content).text());
  2817.         }
  2818.       } else {
  2819.         $element[html ? 'html' : 'text'](content);
  2820.       }
  2821.     };
  2822.  
  2823.     _proto.getTitle = function getTitle() {
  2824.       var title = this.element.getAttribute('data-original-title');
  2825.  
  2826.       if (!title) {
  2827.         title = typeof this.config.title === 'function' ? this.config.title.call(this.element) : this.config.title;
  2828.       }
  2829.  
  2830.       return title;
  2831.     }; // Private
  2832.  
  2833.  
  2834.     _proto._getAttachment = function _getAttachment(placement) {
  2835.       return AttachmentMap[placement.toUpperCase()];
  2836.     };
  2837.  
  2838.     _proto._setListeners = function _setListeners() {
  2839.       var _this3 = this;
  2840.  
  2841.       var triggers = this.config.trigger.split(' ');
  2842.       triggers.forEach(function (trigger) {
  2843.         if (trigger === 'click') {
  2844.           $$$1(_this3.element).on(_this3.constructor.Event.CLICK, _this3.config.selector, function (event) {
  2845.             return _this3.toggle(event);
  2846.           });
  2847.         } else if (trigger !== Trigger.MANUAL) {
  2848.           var eventIn = trigger === Trigger.HOVER ? _this3.constructor.Event.MOUSEENTER : _this3.constructor.Event.FOCUSIN;
  2849.           var eventOut = trigger === Trigger.HOVER ? _this3.constructor.Event.MOUSELEAVE : _this3.constructor.Event.FOCUSOUT;
  2850.           $$$1(_this3.element).on(eventIn, _this3.config.selector, function (event) {
  2851.             return _this3._enter(event);
  2852.           }).on(eventOut, _this3.config.selector, function (event) {
  2853.             return _this3._leave(event);
  2854.           });
  2855.         }
  2856.  
  2857.         $$$1(_this3.element).closest('.modal').on('hide.bs.modal', function () {
  2858.           return _this3.hide();
  2859.         });
  2860.       });
  2861.  
  2862.       if (this.config.selector) {
  2863.         this.config = _extends({}, this.config, {
  2864.           trigger: 'manual',
  2865.           selector: ''
  2866.         });
  2867.       } else {
  2868.         this._fixTitle();
  2869.       }
  2870.     };
  2871.  
  2872.     _proto._fixTitle = function _fixTitle() {
  2873.       var titleType = typeof this.element.getAttribute('data-original-title');
  2874.  
  2875.       if (this.element.getAttribute('title') || titleType !== 'string') {
  2876.         this.element.setAttribute('data-original-title', this.element.getAttribute('title') || '');
  2877.         this.element.setAttribute('title', '');
  2878.       }
  2879.     };
  2880.  
  2881.     _proto._enter = function _enter(event, context) {
  2882.       var dataKey = this.constructor.DATA_KEY;
  2883.       context = context || $$$1(event.currentTarget).data(dataKey);
  2884.  
  2885.       if (!context) {
  2886.         context = new this.constructor(event.currentTarget, this._getDelegateConfig());
  2887.         $$$1(event.currentTarget).data(dataKey, context);
  2888.       }
  2889.  
  2890.       if (event) {
  2891.         context._activeTrigger[event.type === 'focusin' ? Trigger.FOCUS : Trigger.HOVER] = true;
  2892.       }
  2893.  
  2894.       if ($$$1(context.getTipElement()).hasClass(ClassName.SHOW) || context._hoverState === HoverState.SHOW) {
  2895.         context._hoverState = HoverState.SHOW;
  2896.         return;
  2897.       }
  2898.  
  2899.       clearTimeout(context._timeout);
  2900.       context._hoverState = HoverState.SHOW;
  2901.  
  2902.       if (!context.config.delay || !context.config.delay.show) {
  2903.         context.show();
  2904.         return;
  2905.       }
  2906.  
  2907.       context._timeout = setTimeout(function () {
  2908.         if (context._hoverState === HoverState.SHOW) {
  2909.           context.show();
  2910.         }
  2911.       }, context.config.delay.show);
  2912.     };
  2913.  
  2914.     _proto._leave = function _leave(event, context) {
  2915.       var dataKey = this.constructor.DATA_KEY;
  2916.       context = context || $$$1(event.currentTarget).data(dataKey);
  2917.  
  2918.       if (!context) {
  2919.         context = new this.constructor(event.currentTarget, this._getDelegateConfig());
  2920.         $$$1(event.currentTarget).data(dataKey, context);
  2921.       }
  2922.  
  2923.       if (event) {
  2924.         context._activeTrigger[event.type === 'focusout' ? Trigger.FOCUS : Trigger.HOVER] = false;
  2925.       }
  2926.  
  2927.       if (context._isWithActiveTrigger()) {
  2928.         return;
  2929.       }
  2930.  
  2931.       clearTimeout(context._timeout);
  2932.       context._hoverState = HoverState.OUT;
  2933.  
  2934.       if (!context.config.delay || !context.config.delay.hide) {
  2935.         context.hide();
  2936.         return;
  2937.       }
  2938.  
  2939.       context._timeout = setTimeout(function () {
  2940.         if (context._hoverState === HoverState.OUT) {
  2941.           context.hide();
  2942.         }
  2943.       }, context.config.delay.hide);
  2944.     };
  2945.  
  2946.     _proto._isWithActiveTrigger = function _isWithActiveTrigger() {
  2947.       for (var trigger in this._activeTrigger) {
  2948.         if (this._activeTrigger[trigger]) {
  2949.           return true;
  2950.         }
  2951.       }
  2952.  
  2953.       return false;
  2954.     };
  2955.  
  2956.     _proto._getConfig = function _getConfig(config) {
  2957.       config = _extends({}, this.constructor.Default, $$$1(this.element).data(), config);
  2958.  
  2959.       if (typeof config.delay === 'number') {
  2960.         config.delay = {
  2961.           show: config.delay,
  2962.           hide: config.delay
  2963.         };
  2964.       }
  2965.  
  2966.       if (typeof config.title === 'number') {
  2967.         config.title = config.title.toString();
  2968.       }
  2969.  
  2970.       if (typeof config.content === 'number') {
  2971.         config.content = config.content.toString();
  2972.       }
  2973.  
  2974.       Util.typeCheckConfig(NAME, config, this.constructor.DefaultType);
  2975.       return config;
  2976.     };
  2977.  
  2978.     _proto._getDelegateConfig = function _getDelegateConfig() {
  2979.       var config = {};
  2980.  
  2981.       if (this.config) {
  2982.         for (var key in this.config) {
  2983.           if (this.constructor.Default[key] !== this.config[key]) {
  2984.             config[key] = this.config[key];
  2985.           }
  2986.         }
  2987.       }
  2988.  
  2989.       return config;
  2990.     };
  2991.  
  2992.     _proto._cleanTipClass = function _cleanTipClass() {
  2993.       var $tip = $$$1(this.getTipElement());
  2994.       var tabClass = $tip.attr('class').match(BSCLS_PREFIX_REGEX);
  2995.  
  2996.       if (tabClass !== null && tabClass.length > 0) {
  2997.         $tip.removeClass(tabClass.join(''));
  2998.       }
  2999.     };
  3000.  
  3001.     _proto._handlePopperPlacementChange = function _handlePopperPlacementChange(data) {
  3002.       this._cleanTipClass();
  3003.  
  3004.       this.addAttachmentClass(this._getAttachment(data.placement));
  3005.     };
  3006.  
  3007.     _proto._fixTransition = function _fixTransition() {
  3008.       var tip = this.getTipElement();
  3009.       var initConfigAnimation = this.config.animation;
  3010.  
  3011.       if (tip.getAttribute('x-placement') !== null) {
  3012.         return;
  3013.       }
  3014.  
  3015.       $$$1(tip).removeClass(ClassName.FADE);
  3016.       this.config.animation = false;
  3017.       this.hide();
  3018.       this.show();
  3019.       this.config.animation = initConfigAnimation;
  3020.     }; // Static
  3021.  
  3022.  
  3023.     Tooltip._jQueryInterface = function _jQueryInterface(config) {
  3024.       return this.each(function () {
  3025.         var data = $$$1(this).data(DATA_KEY);
  3026.  
  3027.         var _config = typeof config === 'object' && config;
  3028.  
  3029.         if (!data && /dispose|hide/.test(config)) {
  3030.           return;
  3031.         }
  3032.  
  3033.         if (!data) {
  3034.           data = new Tooltip(this, _config);
  3035.           $$$1(this).data(DATA_KEY, data);
  3036.         }
  3037.  
  3038.         if (typeof config === 'string') {
  3039.           if (typeof data[config] === 'undefined') {
  3040.             throw new TypeError("No method named \"" + config + "\"");
  3041.           }
  3042.  
  3043.           data[config]();
  3044.         }
  3045.       });
  3046.     };
  3047.  
  3048.     _createClass(Tooltip, null, [{
  3049.       key: "VERSION",
  3050.       get: function get() {
  3051.         return VERSION;
  3052.       }
  3053.     }, {
  3054.       key: "Default",
  3055.       get: function get() {
  3056.         return Default;
  3057.       }
  3058.     }, {
  3059.       key: "NAME",
  3060.       get: function get() {
  3061.         return NAME;
  3062.       }
  3063.     }, {
  3064.       key: "DATA_KEY",
  3065.       get: function get() {
  3066.         return DATA_KEY;
  3067.       }
  3068.     }, {
  3069.       key: "Event",
  3070.       get: function get() {
  3071.         return Event;
  3072.       }
  3073.     }, {
  3074.       key: "EVENT_KEY",
  3075.       get: function get() {
  3076.         return EVENT_KEY;
  3077.       }
  3078.     }, {
  3079.       key: "DefaultType",
  3080.       get: function get() {
  3081.         return DefaultType;
  3082.       }
  3083.     }]);
  3084.     return Tooltip;
  3085.   }();
  3086.   /**
  3087.    * ------------------------------------------------------------------------
  3088.    * jQuery
  3089.    * ------------------------------------------------------------------------
  3090.    */
  3091.  
  3092.  
  3093.   $$$1.fn[NAME] = Tooltip._jQueryInterface;
  3094.   $$$1.fn[NAME].Constructor = Tooltip;
  3095.  
  3096.   $$$1.fn[NAME].noConflict = function () {
  3097.     $$$1.fn[NAME] = JQUERY_NO_CONFLICT;
  3098.     return Tooltip._jQueryInterface;
  3099.   };
  3100.  
  3101.   return Tooltip;
  3102. }($, Popper);
  3103.  
  3104. /**
  3105.  * --------------------------------------------------------------------------
  3106.  * Bootstrap (v4.0.0): popover.js
  3107.  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
  3108.  * --------------------------------------------------------------------------
  3109.  */
  3110.  
  3111. var Popover = function ($$$1) {
  3112.   /**
  3113.    * ------------------------------------------------------------------------
  3114.    * Constants
  3115.    * ------------------------------------------------------------------------
  3116.    */
  3117.   var NAME = 'popover';
  3118.   var VERSION = '4.0.0';
  3119.   var DATA_KEY = 'bs.popover';
  3120.   var EVENT_KEY = "." + DATA_KEY;
  3121.   var JQUERY_NO_CONFLICT = $$$1.fn[NAME];
  3122.   var CLASS_PREFIX = 'bs-popover';
  3123.   var BSCLS_PREFIX_REGEX = new RegExp("(^|\\s)" + CLASS_PREFIX + "\\S+", 'g');
  3124.   var Default = _extends({}, Tooltip.Default, {
  3125.     placement: 'right',
  3126.     trigger: 'click',
  3127.     content: '',
  3128.     template: '<div class="popover" role="tooltip">' + '<div class="arrow"></div>' + '<h3 class="popover-header"></h3>' + '<div class="popover-body"></div></div>'
  3129.   });
  3130.   var DefaultType = _extends({}, Tooltip.DefaultType, {
  3131.     content: '(string|element|function)'
  3132.   });
  3133.   var ClassName = {
  3134.     FADE: 'fade',
  3135.     SHOW: 'show'
  3136.   };
  3137.   var Selector = {
  3138.     TITLE: '.popover-header',
  3139.     CONTENT: '.popover-body'
  3140.   };
  3141.   var Event = {
  3142.     HIDE: "hide" + EVENT_KEY,
  3143.     HIDDEN: "hidden" + EVENT_KEY,
  3144.     SHOW: "show" + EVENT_KEY,
  3145.     SHOWN: "shown" + EVENT_KEY,
  3146.     INSERTED: "inserted" + EVENT_KEY,
  3147.     CLICK: "click" + EVENT_KEY,
  3148.     FOCUSIN: "focusin" + EVENT_KEY,
  3149.     FOCUSOUT: "focusout" + EVENT_KEY,
  3150.     MOUSEENTER: "mouseenter" + EVENT_KEY,
  3151.     MOUSELEAVE: "mouseleave" + EVENT_KEY
  3152.     /**
  3153.      * ------------------------------------------------------------------------
  3154.      * Class Definition
  3155.      * ------------------------------------------------------------------------
  3156.      */
  3157.  
  3158.   };
  3159.  
  3160.   var Popover =
  3161.   /*#__PURE__*/
  3162.   function (_Tooltip) {
  3163.     _inheritsLoose(Popover, _Tooltip);
  3164.  
  3165.     function Popover() {
  3166.       return _Tooltip.apply(this, arguments) || this;
  3167.     }
  3168.  
  3169.     var _proto = Popover.prototype;
  3170.  
  3171.     // Overrides
  3172.     _proto.isWithContent = function isWithContent() {
  3173.       return this.getTitle() || this._getContent();
  3174.     };
  3175.  
  3176.     _proto.addAttachmentClass = function addAttachmentClass(attachment) {
  3177.       $$$1(this.getTipElement()).addClass(CLASS_PREFIX + "-" + attachment);
  3178.     };
  3179.  
  3180.     _proto.getTipElement = function getTipElement() {
  3181.       this.tip = this.tip || $$$1(this.config.template)[0];
  3182.       return this.tip;
  3183.     };
  3184.  
  3185.     _proto.setContent = function setContent() {
  3186.       var $tip = $$$1(this.getTipElement()); // We use append for html objects to maintain js events
  3187.  
  3188.       this.setElementContent($tip.find(Selector.TITLE), this.getTitle());
  3189.  
  3190.       var content = this._getContent();
  3191.  
  3192.       if (typeof content === 'function') {
  3193.         content = content.call(this.element);
  3194.       }
  3195.  
  3196.       this.setElementContent($tip.find(Selector.CONTENT), content);
  3197.       $tip.removeClass(ClassName.FADE + " " + ClassName.SHOW);
  3198.     }; // Private
  3199.  
  3200.  
  3201.     _proto._getContent = function _getContent() {
  3202.       return this.element.getAttribute('data-content') || this.config.content;
  3203.     };
  3204.  
  3205.     _proto._cleanTipClass = function _cleanTipClass() {
  3206.       var $tip = $$$1(this.getTipElement());
  3207.       var tabClass = $tip.attr('class').match(BSCLS_PREFIX_REGEX);
  3208.  
  3209.       if (tabClass !== null && tabClass.length > 0) {
  3210.         $tip.removeClass(tabClass.join(''));
  3211.       }
  3212.     }; // Static
  3213.  
  3214.  
  3215.     Popover._jQueryInterface = function _jQueryInterface(config) {
  3216.       return this.each(function () {
  3217.         var data = $$$1(this).data(DATA_KEY);
  3218.  
  3219.         var _config = typeof config === 'object' ? config : null;
  3220.  
  3221.         if (!data && /destroy|hide/.test(config)) {
  3222.           return;
  3223.         }
  3224.  
  3225.         if (!data) {
  3226.           data = new Popover(this, _config);
  3227.           $$$1(this).data(DATA_KEY, data);
  3228.         }
  3229.  
  3230.         if (typeof config === 'string') {
  3231.           if (typeof data[config] === 'undefined') {
  3232.             throw new TypeError("No method named \"" + config + "\"");
  3233.           }
  3234.  
  3235.           data[config]();
  3236.         }
  3237.       });
  3238.     };
  3239.  
  3240.     _createClass(Popover, null, [{
  3241.       key: "VERSION",
  3242.       // Getters
  3243.       get: function get() {
  3244.         return VERSION;
  3245.       }
  3246.     }, {
  3247.       key: "Default",
  3248.       get: function get() {
  3249.         return Default;
  3250.       }
  3251.     }, {
  3252.       key: "NAME",
  3253.       get: function get() {
  3254.         return NAME;
  3255.       }
  3256.     }, {
  3257.       key: "DATA_KEY",
  3258.       get: function get() {
  3259.         return DATA_KEY;
  3260.       }
  3261.     }, {
  3262.       key: "Event",
  3263.       get: function get() {
  3264.         return Event;
  3265.       }
  3266.     }, {
  3267.       key: "EVENT_KEY",
  3268.       get: function get() {
  3269.         return EVENT_KEY;
  3270.       }
  3271.     }, {
  3272.       key: "DefaultType",
  3273.       get: function get() {
  3274.         return DefaultType;
  3275.       }
  3276.     }]);
  3277.     return Popover;
  3278.   }(Tooltip);
  3279.   /**
  3280.    * ------------------------------------------------------------------------
  3281.    * jQuery
  3282.    * ------------------------------------------------------------------------
  3283.    */
  3284.  
  3285.  
  3286.   $$$1.fn[NAME] = Popover._jQueryInterface;
  3287.   $$$1.fn[NAME].Constructor = Popover;
  3288.  
  3289.   $$$1.fn[NAME].noConflict = function () {
  3290.     $$$1.fn[NAME] = JQUERY_NO_CONFLICT;
  3291.     return Popover._jQueryInterface;
  3292.   };
  3293.  
  3294.   return Popover;
  3295. }($);
  3296.  
  3297. /**
  3298.  * --------------------------------------------------------------------------
  3299.  * Bootstrap (v4.0.0): scrollspy.js
  3300.  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
  3301.  * --------------------------------------------------------------------------
  3302.  */
  3303.  
  3304. var ScrollSpy = function ($$$1) {
  3305.   /**
  3306.    * ------------------------------------------------------------------------
  3307.    * Constants
  3308.    * ------------------------------------------------------------------------
  3309.    */
  3310.   var NAME = 'scrollspy';
  3311.   var VERSION = '4.0.0';
  3312.   var DATA_KEY = 'bs.scrollspy';
  3313.   var EVENT_KEY = "." + DATA_KEY;
  3314.   var DATA_API_KEY = '.data-api';
  3315.   var JQUERY_NO_CONFLICT = $$$1.fn[NAME];
  3316.   var Default = {
  3317.     offset: 10,
  3318.     method: 'auto',
  3319.     target: ''
  3320.   };
  3321.   var DefaultType = {
  3322.     offset: 'number',
  3323.     method: 'string',
  3324.     target: '(string|element)'
  3325.   };
  3326.   var Event = {
  3327.     ACTIVATE: "activate" + EVENT_KEY,
  3328.     SCROLL: "scroll" + EVENT_KEY,
  3329.     LOAD_DATA_API: "load" + EVENT_KEY + DATA_API_KEY
  3330.   };
  3331.   var ClassName = {
  3332.     DROPDOWN_ITEM: 'dropdown-item',
  3333.     DROPDOWN_MENU: 'dropdown-menu',
  3334.     ACTIVE: 'active'
  3335.   };
  3336.   var Selector = {
  3337.     DATA_SPY: '[data-spy="scroll"]',
  3338.     ACTIVE: '.active',
  3339.     NAV_LIST_GROUP: '.nav, .list-group',
  3340.     NAV_LINKS: '.nav-link',
  3341.     NAV_ITEMS: '.nav-item',
  3342.     LIST_ITEMS: '.list-group-item',
  3343.     DROPDOWN: '.dropdown',
  3344.     DROPDOWN_ITEMS: '.dropdown-item',
  3345.     DROPDOWN_TOGGLE: '.dropdown-toggle'
  3346.   };
  3347.   var OffsetMethod = {
  3348.     OFFSET: 'offset',
  3349.     POSITION: 'position'
  3350.     /**
  3351.      * ------------------------------------------------------------------------
  3352.      * Class Definition
  3353.      * ------------------------------------------------------------------------
  3354.      */
  3355.  
  3356.   };
  3357.  
  3358.   var ScrollSpy =
  3359.   /*#__PURE__*/
  3360.   function () {
  3361.     function ScrollSpy(element, config) {
  3362.       var _this = this;
  3363.  
  3364.       this._element = element;
  3365.       this._scrollElement = element.tagName === 'BODY' ? window : element;
  3366.       this._config = this._getConfig(config);
  3367.       this._selector = this._config.target + " " + Selector.NAV_LINKS + "," + (this._config.target + " " + Selector.LIST_ITEMS + ",") + (this._config.target + " " + Selector.DROPDOWN_ITEMS);
  3368.       this._offsets = [];
  3369.       this._targets = [];
  3370.       this._activeTarget = null;
  3371.       this._scrollHeight = 0;
  3372.       $$$1(this._scrollElement).on(Event.SCROLL, function (event) {
  3373.         return _this._process(event);
  3374.       });
  3375.       this.refresh();
  3376.  
  3377.       this._process();
  3378.     } // Getters
  3379.  
  3380.  
  3381.     var _proto = ScrollSpy.prototype;
  3382.  
  3383.     // Public
  3384.     _proto.refresh = function refresh() {
  3385.       var _this2 = this;
  3386.  
  3387.       var autoMethod = this._scrollElement === this._scrollElement.window ? OffsetMethod.OFFSET : OffsetMethod.POSITION;
  3388.       var offsetMethod = this._config.method === 'auto' ? autoMethod : this._config.method;
  3389.       var offsetBase = offsetMethod === OffsetMethod.POSITION ? this._getScrollTop() : 0;
  3390.       this._offsets = [];
  3391.       this._targets = [];
  3392.       this._scrollHeight = this._getScrollHeight();
  3393.       var targets = $$$1.makeArray($$$1(this._selector));
  3394.       targets.map(function (element) {
  3395.         var target;
  3396.         var targetSelector = Util.getSelectorFromElement(element);
  3397.  
  3398.         if (targetSelector) {
  3399.           target = $$$1(targetSelector)[0];
  3400.         }
  3401.  
  3402.         if (target) {
  3403.           var targetBCR = target.getBoundingClientRect();
  3404.  
  3405.           if (targetBCR.width || targetBCR.height) {
  3406.             // TODO (fat): remove sketch reliance on jQuery position/offset
  3407.             return [$$$1(target)[offsetMethod]().top + offsetBase, targetSelector];
  3408.           }
  3409.         }
  3410.  
  3411.         return null;
  3412.       }).filter(function (item) {
  3413.         return item;
  3414.       }).sort(function (a, b) {
  3415.         return a[0] - b[0];
  3416.       }).forEach(function (item) {
  3417.         _this2._offsets.push(item[0]);
  3418.  
  3419.         _this2._targets.push(item[1]);
  3420.       });
  3421.     };
  3422.  
  3423.     _proto.dispose = function dispose() {
  3424.       $$$1.removeData(this._element, DATA_KEY);
  3425.       $$$1(this._scrollElement).off(EVENT_KEY);
  3426.       this._element = null;
  3427.       this._scrollElement = null;
  3428.       this._config = null;
  3429.       this._selector = null;
  3430.       this._offsets = null;
  3431.       this._targets = null;
  3432.       this._activeTarget = null;
  3433.       this._scrollHeight = null;
  3434.     }; // Private
  3435.  
  3436.  
  3437.     _proto._getConfig = function _getConfig(config) {
  3438.       config = _extends({}, Default, config);
  3439.  
  3440.       if (typeof config.target !== 'string') {
  3441.         var id = $$$1(config.target).attr('id');
  3442.  
  3443.         if (!id) {
  3444.           id = Util.getUID(NAME);
  3445.           $$$1(config.target).attr('id', id);
  3446.         }
  3447.  
  3448.         config.target = "#" + id;
  3449.       }
  3450.  
  3451.       Util.typeCheckConfig(NAME, config, DefaultType);
  3452.       return config;
  3453.     };
  3454.  
  3455.     _proto._getScrollTop = function _getScrollTop() {
  3456.       return this._scrollElement === window ? this._scrollElement.pageYOffset : this._scrollElement.scrollTop;
  3457.     };
  3458.  
  3459.     _proto._getScrollHeight = function _getScrollHeight() {
  3460.       return this._scrollElement.scrollHeight || Math.max(document.body.scrollHeight, document.documentElement.scrollHeight);
  3461.     };
  3462.  
  3463.     _proto._getOffsetHeight = function _getOffsetHeight() {
  3464.       return this._scrollElement === window ? window.innerHeight : this._scrollElement.getBoundingClientRect().height;
  3465.     };
  3466.  
  3467.     _proto._process = function _process() {
  3468.       var scrollTop = this._getScrollTop() + this._config.offset;
  3469.  
  3470.       var scrollHeight = this._getScrollHeight();
  3471.  
  3472.       var maxScroll = this._config.offset + scrollHeight - this._getOffsetHeight();
  3473.  
  3474.       if (this._scrollHeight !== scrollHeight) {
  3475.         this.refresh();
  3476.       }
  3477.  
  3478.       if (scrollTop >= maxScroll) {
  3479.         var target = this._targets[this._targets.length - 1];
  3480.  
  3481.         if (this._activeTarget !== target) {
  3482.           this._activate(target);
  3483.         }
  3484.  
  3485.         return;
  3486.       }
  3487.  
  3488.       if (this._activeTarget && scrollTop < this._offsets[0] && this._offsets[0] > 0) {
  3489.         this._activeTarget = null;
  3490.  
  3491.         this._clear();
  3492.  
  3493.         return;
  3494.       }
  3495.  
  3496.       for (var i = this._offsets.length; i--;) {
  3497.         var isActiveTarget = this._activeTarget !== this._targets[i] && scrollTop >= this._offsets[i] && (typeof this._offsets[i + 1] === 'undefined' || scrollTop < this._offsets[i + 1]);
  3498.  
  3499.         if (isActiveTarget) {
  3500.           this._activate(this._targets[i]);
  3501.         }
  3502.       }
  3503.     };
  3504.  
  3505.     _proto._activate = function _activate(target) {
  3506.       this._activeTarget = target;
  3507.  
  3508.       this._clear();
  3509.  
  3510.       var queries = this._selector.split(','); // eslint-disable-next-line arrow-body-style
  3511.  
  3512.  
  3513.       queries = queries.map(function (selector) {
  3514.         return selector + "[data-target=\"" + target + "\"]," + (selector + "[href=\"" + target + "\"]");
  3515.       });
  3516.       var $link = $$$1(queries.join(','));
  3517.  
  3518.       if ($link.hasClass(ClassName.DROPDOWN_ITEM)) {
  3519.         $link.closest(Selector.DROPDOWN).find(Selector.DROPDOWN_TOGGLE).addClass(ClassName.ACTIVE);
  3520.         $link.addClass(ClassName.ACTIVE);
  3521.       } else {
  3522.         // Set triggered link as active
  3523.         $link.addClass(ClassName.ACTIVE); // Set triggered links parents as active
  3524.         // With both <ul> and <nav> markup a parent is the previous sibling of any nav ancestor
  3525.  
  3526.         $link.parents(Selector.NAV_LIST_GROUP).prev(Selector.NAV_LINKS + ", " + Selector.LIST_ITEMS).addClass(ClassName.ACTIVE); // Handle special case when .nav-link is inside .nav-item
  3527.  
  3528.         $link.parents(Selector.NAV_LIST_GROUP).prev(Selector.NAV_ITEMS).children(Selector.NAV_LINKS).addClass(ClassName.ACTIVE);
  3529.       }
  3530.  
  3531.       $$$1(this._scrollElement).trigger(Event.ACTIVATE, {
  3532.         relatedTarget: target
  3533.       });
  3534.     };
  3535.  
  3536.     _proto._clear = function _clear() {
  3537.       $$$1(this._selector).filter(Selector.ACTIVE).removeClass(ClassName.ACTIVE);
  3538.     }; // Static
  3539.  
  3540.  
  3541.     ScrollSpy._jQueryInterface = function _jQueryInterface(config) {
  3542.       return this.each(function () {
  3543.         var data = $$$1(this).data(DATA_KEY);
  3544.  
  3545.         var _config = typeof config === 'object' && config;
  3546.  
  3547.         if (!data) {
  3548.           data = new ScrollSpy(this, _config);
  3549.           $$$1(this).data(DATA_KEY, data);
  3550.         }
  3551.  
  3552.         if (typeof config === 'string') {
  3553.           if (typeof data[config] === 'undefined') {
  3554.             throw new TypeError("No method named \"" + config + "\"");
  3555.           }
  3556.  
  3557.           data[config]();
  3558.         }
  3559.       });
  3560.     };
  3561.  
  3562.     _createClass(ScrollSpy, null, [{
  3563.       key: "VERSION",
  3564.       get: function get() {
  3565.         return VERSION;
  3566.       }
  3567.     }, {
  3568.       key: "Default",
  3569.       get: function get() {
  3570.         return Default;
  3571.       }
  3572.     }]);
  3573.     return ScrollSpy;
  3574.   }();
  3575.   /**
  3576.    * ------------------------------------------------------------------------
  3577.    * Data Api implementation
  3578.    * ------------------------------------------------------------------------
  3579.    */
  3580.  
  3581.  
  3582.   $$$1(window).on(Event.LOAD_DATA_API, function () {
  3583.     var scrollSpys = $$$1.makeArray($$$1(Selector.DATA_SPY));
  3584.  
  3585.     for (var i = scrollSpys.length; i--;) {
  3586.       var $spy = $$$1(scrollSpys[i]);
  3587.  
  3588.       ScrollSpy._jQueryInterface.call($spy, $spy.data());
  3589.     }
  3590.   });
  3591.   /**
  3592.    * ------------------------------------------------------------------------
  3593.    * jQuery
  3594.    * ------------------------------------------------------------------------
  3595.    */
  3596.  
  3597.   $$$1.fn[NAME] = ScrollSpy._jQueryInterface;
  3598.   $$$1.fn[NAME].Constructor = ScrollSpy;
  3599.  
  3600.   $$$1.fn[NAME].noConflict = function () {
  3601.     $$$1.fn[NAME] = JQUERY_NO_CONFLICT;
  3602.     return ScrollSpy._jQueryInterface;
  3603.   };
  3604.  
  3605.   return ScrollSpy;
  3606. }($);
  3607.  
  3608. /**
  3609.  * --------------------------------------------------------------------------
  3610.  * Bootstrap (v4.0.0): tab.js
  3611.  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
  3612.  * --------------------------------------------------------------------------
  3613.  */
  3614.  
  3615. var Tab = function ($$$1) {
  3616.   /**
  3617.    * ------------------------------------------------------------------------
  3618.    * Constants
  3619.    * ------------------------------------------------------------------------
  3620.    */
  3621.   var NAME = 'tab';
  3622.   var VERSION = '4.0.0';
  3623.   var DATA_KEY = 'bs.tab';
  3624.   var EVENT_KEY = "." + DATA_KEY;
  3625.   var DATA_API_KEY = '.data-api';
  3626.   var JQUERY_NO_CONFLICT = $$$1.fn[NAME];
  3627.   var TRANSITION_DURATION = 150;
  3628.   var Event = {
  3629.     HIDE: "hide" + EVENT_KEY,
  3630.     HIDDEN: "hidden" + EVENT_KEY,
  3631.     SHOW: "show" + EVENT_KEY,
  3632.     SHOWN: "shown" + EVENT_KEY,
  3633.     CLICK_DATA_API: "click" + EVENT_KEY + DATA_API_KEY
  3634.   };
  3635.   var ClassName = {
  3636.     DROPDOWN_MENU: 'dropdown-menu',
  3637.     ACTIVE: 'active',
  3638.     DISABLED: 'disabled',
  3639.     FADE: 'fade',
  3640.     SHOW: 'show'
  3641.   };
  3642.   var Selector = {
  3643.     DROPDOWN: '.dropdown',
  3644.     NAV_LIST_GROUP: '.nav, .list-group',
  3645.     ACTIVE: '.active',
  3646.     ACTIVE_UL: '> li > .active',
  3647.     DATA_TOGGLE: '[data-toggle="tab"], [data-toggle="pill"], [data-toggle="list"]',
  3648.     DROPDOWN_TOGGLE: '.dropdown-toggle',
  3649.     DROPDOWN_ACTIVE_CHILD: '> .dropdown-menu .active'
  3650.     /**
  3651.      * ------------------------------------------------------------------------
  3652.      * Class Definition
  3653.      * ------------------------------------------------------------------------
  3654.      */
  3655.  
  3656.   };
  3657.  
  3658.   var Tab =
  3659.   /*#__PURE__*/
  3660.   function () {
  3661.     function Tab(element) {
  3662.       this._element = element;
  3663.     } // Getters
  3664.  
  3665.  
  3666.     var _proto = Tab.prototype;
  3667.  
  3668.     // Public
  3669.     _proto.show = function show() {
  3670.       var _this = this;
  3671.  
  3672.       if (this._element.parentNode && this._element.parentNode.nodeType === Node.ELEMENT_NODE && $$$1(this._element).hasClass(ClassName.ACTIVE) || $$$1(this._element).hasClass(ClassName.DISABLED)) {
  3673.         return;
  3674.       }
  3675.  
  3676.       var target;
  3677.       var previous;
  3678.       var listElement = $$$1(this._element).closest(Selector.NAV_LIST_GROUP)[0];
  3679.       var selector = Util.getSelectorFromElement(this._element);
  3680.  
  3681.       if (listElement) {
  3682.         var itemSelector = listElement.nodeName === 'UL' ? Selector.ACTIVE_UL : Selector.ACTIVE;
  3683.         previous = $$$1.makeArray($$$1(listElement).find(itemSelector));
  3684.         previous = previous[previous.length - 1];
  3685.       }
  3686.  
  3687.       var hideEvent = $$$1.Event(Event.HIDE, {
  3688.         relatedTarget: this._element
  3689.       });
  3690.       var showEvent = $$$1.Event(Event.SHOW, {
  3691.         relatedTarget: previous
  3692.       });
  3693.  
  3694.       if (previous) {
  3695.         $$$1(previous).trigger(hideEvent);
  3696.       }
  3697.  
  3698.       $$$1(this._element).trigger(showEvent);
  3699.  
  3700.       if (showEvent.isDefaultPrevented() || hideEvent.isDefaultPrevented()) {
  3701.         return;
  3702.       }
  3703.  
  3704.       if (selector) {
  3705.         target = $$$1(selector)[0];
  3706.       }
  3707.  
  3708.       this._activate(this._element, listElement);
  3709.  
  3710.       var complete = function complete() {
  3711.         var hiddenEvent = $$$1.Event(Event.HIDDEN, {
  3712.           relatedTarget: _this._element
  3713.         });
  3714.         var shownEvent = $$$1.Event(Event.SHOWN, {
  3715.           relatedTarget: previous
  3716.         });
  3717.         $$$1(previous).trigger(hiddenEvent);
  3718.         $$$1(_this._element).trigger(shownEvent);
  3719.       };
  3720.  
  3721.       if (target) {
  3722.         this._activate(target, target.parentNode, complete);
  3723.       } else {
  3724.         complete();
  3725.       }
  3726.     };
  3727.  
  3728.     _proto.dispose = function dispose() {
  3729.       $$$1.removeData(this._element, DATA_KEY);
  3730.       this._element = null;
  3731.     }; // Private
  3732.  
  3733.  
  3734.     _proto._activate = function _activate(element, container, callback) {
  3735.       var _this2 = this;
  3736.  
  3737.       var activeElements;
  3738.  
  3739.       if (container.nodeName === 'UL') {
  3740.         activeElements = $$$1(container).find(Selector.ACTIVE_UL);
  3741.       } else {
  3742.         activeElements = $$$1(container).children(Selector.ACTIVE);
  3743.       }
  3744.  
  3745.       var active = activeElements[0];
  3746.       var isTransitioning = callback && Util.supportsTransitionEnd() && active && $$$1(active).hasClass(ClassName.FADE);
  3747.  
  3748.       var complete = function complete() {
  3749.         return _this2._transitionComplete(element, active, callback);
  3750.       };
  3751.  
  3752.       if (active && isTransitioning) {
  3753.         $$$1(active).one(Util.TRANSITION_END, complete).emulateTransitionEnd(TRANSITION_DURATION);
  3754.       } else {
  3755.         complete();
  3756.       }
  3757.     };
  3758.  
  3759.     _proto._transitionComplete = function _transitionComplete(element, active, callback) {
  3760.       if (active) {
  3761.         $$$1(active).removeClass(ClassName.SHOW + " " + ClassName.ACTIVE);
  3762.         var dropdownChild = $$$1(active.parentNode).find(Selector.DROPDOWN_ACTIVE_CHILD)[0];
  3763.  
  3764.         if (dropdownChild) {
  3765.           $$$1(dropdownChild).removeClass(ClassName.ACTIVE);
  3766.         }
  3767.  
  3768.         if (active.getAttribute('role') === 'tab') {
  3769.           active.setAttribute('aria-selected', false);
  3770.         }
  3771.       }
  3772.  
  3773.       $$$1(element).addClass(ClassName.ACTIVE);
  3774.  
  3775.       if (element.getAttribute('role') === 'tab') {
  3776.         element.setAttribute('aria-selected', true);
  3777.       }
  3778.  
  3779.       Util.reflow(element);
  3780.       $$$1(element).addClass(ClassName.SHOW);
  3781.  
  3782.       if (element.parentNode && $$$1(element.parentNode).hasClass(ClassName.DROPDOWN_MENU)) {
  3783.         var dropdownElement = $$$1(element).closest(Selector.DROPDOWN)[0];
  3784.  
  3785.         if (dropdownElement) {
  3786.           $$$1(dropdownElement).find(Selector.DROPDOWN_TOGGLE).addClass(ClassName.ACTIVE);
  3787.         }
  3788.  
  3789.         element.setAttribute('aria-expanded', true);
  3790.       }
  3791.  
  3792.       if (callback) {
  3793.         callback();
  3794.       }
  3795.     }; // Static
  3796.  
  3797.  
  3798.     Tab._jQueryInterface = function _jQueryInterface(config) {
  3799.       return this.each(function () {
  3800.         var $this = $$$1(this);
  3801.         var data = $this.data(DATA_KEY);
  3802.  
  3803.         if (!data) {
  3804.           data = new Tab(this);
  3805.           $this.data(DATA_KEY, data);
  3806.         }
  3807.  
  3808.         if (typeof config === 'string') {
  3809.           if (typeof data[config] === 'undefined') {
  3810.             throw new TypeError("No method named \"" + config + "\"");
  3811.           }
  3812.  
  3813.           data[config]();
  3814.         }
  3815.       });
  3816.     };
  3817.  
  3818.     _createClass(Tab, null, [{
  3819.       key: "VERSION",
  3820.       get: function get() {
  3821.         return VERSION;
  3822.       }
  3823.     }]);
  3824.     return Tab;
  3825.   }();
  3826.   /**
  3827.    * ------------------------------------------------------------------------
  3828.    * Data Api implementation
  3829.    * ------------------------------------------------------------------------
  3830.    */
  3831.  
  3832.  
  3833.   $$$1(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {
  3834.     event.preventDefault();
  3835.  
  3836.     Tab._jQueryInterface.call($$$1(this), 'show');
  3837.   });
  3838.   /**
  3839.    * ------------------------------------------------------------------------
  3840.    * jQuery
  3841.    * ------------------------------------------------------------------------
  3842.    */
  3843.  
  3844.   $$$1.fn[NAME] = Tab._jQueryInterface;
  3845.   $$$1.fn[NAME].Constructor = Tab;
  3846.  
  3847.   $$$1.fn[NAME].noConflict = function () {
  3848.     $$$1.fn[NAME] = JQUERY_NO_CONFLICT;
  3849.     return Tab._jQueryInterface;
  3850.   };
  3851.  
  3852.   return Tab;
  3853. }($);
  3854.  
  3855. /**
  3856.  * --------------------------------------------------------------------------
  3857.  * Bootstrap (v4.0.0-alpha.6): index.js
  3858.  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
  3859.  * --------------------------------------------------------------------------
  3860.  */
  3861.  
  3862. (function ($$$1) {
  3863.   if (typeof $$$1 === 'undefined') {
  3864.     throw new TypeError('Bootstrap\'s JavaScript requires jQuery. jQuery must be included before Bootstrap\'s JavaScript.');
  3865.   }
  3866.  
  3867.   var version = $$$1.fn.jquery.split(' ')[0].split('.');
  3868.   var minMajor = 1;
  3869.   var ltMajor = 2;
  3870.   var minMinor = 9;
  3871.   var minPatch = 1;
  3872.   var maxMajor = 4;
  3873.  
  3874.   if (version[0] < ltMajor && version[1] < minMinor || version[0] === minMajor && version[1] === minMinor && version[2] < minPatch || version[0] >= maxMajor) {
  3875.     throw new Error('Bootstrap\'s JavaScript requires at least jQuery v1.9.1 but less than v4.0.0');
  3876.   }
  3877. })($);
  3878.  
  3879. exports.Util = Util;
  3880. exports.Alert = Alert;
  3881. exports.Button = Button;
  3882. exports.Carousel = Carousel;
  3883. exports.Collapse = Collapse;
  3884. exports.Dropdown = Dropdown;
  3885. exports.Modal = Modal;
  3886. exports.Popover = Popover;
  3887. exports.Scrollspy = ScrollSpy;
  3888. exports.Tab = Tab;
  3889. exports.Tooltip = Tooltip;
  3890.  
  3891. Object.defineProperty(exports, '__esModule', { value: true });
  3892.  
  3893. })));
  3894. //# sourceMappingURL=bootstrap.js.map
  3895.