]> git.ipfire.org Git - thirdparty/bootstrap.git/commitdiff
al tests passing, dist rebuilt, w/typechecker
authorfat <fat@folders.local>
Wed, 13 May 2015 21:52:46 +0000 (14:52 -0700)
committerfat <fat@folders.local>
Wed, 13 May 2015 21:52:46 +0000 (14:52 -0700)
16 files changed:
dist/js/bootstrap.js
dist/js/bootstrap.min.js
dist/js/umd/carousel.js
dist/js/umd/collapse.js
dist/js/umd/modal.js
dist/js/umd/popover.js
dist/js/umd/scrollspy.js
dist/js/umd/tab.js
dist/js/umd/tooltip.js
dist/js/umd/util.js
js/dist/carousel.js
js/dist/carousel.js.map
js/dist/collapse.js
js/dist/collapse.js.map
js/src/collapse.js
js/tests/unit/carousel.js

index 725f4f828cff21fed9c953dfaa4cfd5b39318614..01f0a6dac21198bbe359737b5ebd2a2b6632f69c 100644 (file)
@@ -50,6 +50,15 @@ var Util = (function ($) {
     transition: 'transitionend'
   };
 
+  // shoutout AngusCroll (https://goo.gl/pxwQGp)
+  function toType(obj) {
+    return ({}).toString.call(obj).match(/\s([a-zA-Z]+)/)[1].toLowerCase();
+  }
+
+  function isElement(obj) {
+    return (obj[0] || obj).nodeType;
+  }
+
   function getSpecialTransitionEndEvent() {
     return {
       bindType: transition.end,
@@ -142,6 +151,21 @@ var Util = (function ($) {
 
     supportsTransitionEnd: function supportsTransitionEnd() {
       return !!transition;
+    },
+
+    typeCheckConfig: function typeCheckConfig(componentName, config, configTypes) {
+
+      for (var property in configTypes) {
+        var expectedTypes = configTypes[property];
+        var value = config[property];
+        var valueType = undefined;
+
+        if (value && isElement(value)) valueType = 'element';else valueType = toType(value);
+
+        if (!new RegExp(expectedTypes).test(valueType)) {
+          throw new Error('' + componentName.toUpperCase() + ': ' + ('Option "' + property + '" provided type "' + valueType + '" ') + ('but expected type "' + expectedTypes + '".'));
+        }
+      }
     }
 
   };
@@ -536,6 +560,14 @@ var Carousel = (function ($) {
     wrap: true
   };
 
+  var DefaultType = {
+    interval: '(number|boolean)',
+    keyboard: 'boolean',
+    slide: '(boolean|string)',
+    pause: '(string|boolean)',
+    wrap: 'boolean'
+  };
+
   var Direction = {
     NEXT: 'next',
     PREVIOUS: 'prev'
@@ -587,7 +619,7 @@ var Carousel = (function ($) {
       this._isPaused = false;
       this._isSliding = false;
 
-      this._config = config;
+      this._config = this._getConfig(config);
       this._element = $(element)[0];
       this._indicatorsElement = $(this._element).find(Selector.INDICATORS)[0];
 
@@ -688,10 +720,17 @@ var Carousel = (function ($) {
         this._indicatorsElement = null;
       }
     }, {
-      key: '_addEventListeners',
+      key: '_getConfig',
 
       // private
 
+      value: function _getConfig(config) {
+        config = $.extend({}, Default, config);
+        Util.typeCheckConfig(NAME, config, DefaultType);
+        return config;
+      }
+    }, {
+      key: '_addEventListeners',
       value: function _addEventListeners() {
         if (this._config.keyboard) {
           $(this._element).on(Event.KEYDOWN, $.proxy(this._keydown, this));
@@ -975,7 +1014,12 @@ var Collapse = (function ($) {
 
   var Default = {
     toggle: true,
-    parent: null
+    parent: ''
+  };
+
+  var DefaultType = {
+    toggle: 'boolean',
+    parent: 'string'
   };
 
   var Event = {
@@ -1015,7 +1059,7 @@ var Collapse = (function ($) {
 
       this._isTransitioning = false;
       this._element = element;
-      this._config = $.extend({}, Default, config);
+      this._config = this._getConfig(config);
       this._triggerArray = $.makeArray($('[data-toggle="collapse"][href="#' + element.id + '"],' + ('[data-toggle="collapse"][data-target="#' + element.id + '"]')));
 
       this._parent = this._config.parent ? this._getParent() : null;
@@ -1176,10 +1220,18 @@ var Collapse = (function ($) {
         this._isTransitioning = null;
       }
     }, {
-      key: '_getDimension',
+      key: '_getConfig',
 
       // private
 
+      value: function _getConfig(config) {
+        config = $.extend({}, Default, config);
+        config.toggle = !!config.toggle; // coerce string values
+        Util.typeCheckConfig(NAME, config, DefaultType);
+        return config;
+      }
+    }, {
+      key: '_getDimension',
       value: function _getDimension() {
         var hasWidth = $(this._element).hasClass(Dimension.WIDTH);
         return hasWidth ? Dimension.WIDTH : Dimension.HEIGHT;
@@ -1594,9 +1646,17 @@ var Modal = (function ($) {
   var Default = {
     backdrop: true,
     keyboard: true,
+    focus: true,
     show: true
   };
 
+  var DefaultType = {
+    backdrop: '(boolean|string)',
+    keyboard: 'boolean',
+    focus: 'boolean',
+    show: 'boolean'
+  };
+
   var Event = {
     HIDE: 'hide' + EVENT_KEY,
     HIDDEN: 'hidden' + EVENT_KEY,
@@ -1635,7 +1695,7 @@ var Modal = (function ($) {
     function Modal(element, config) {
       _classCallCheck(this, Modal);
 
-      this._config = config;
+      this._config = this._getConfig(config);
       this._element = element;
       this._dialog = $(element).find(Selector.DIALOG)[0];
       this._backdrop = null;
@@ -1746,10 +1806,17 @@ var Modal = (function ($) {
         this._scrollbarWidth = null;
       }
     }, {
-      key: '_showElement',
+      key: '_getConfig',
 
       // private
 
+      value: function _getConfig(config) {
+        config = $.extend({}, Default, config);
+        Util.typeCheckConfig(NAME, config, DefaultType);
+        return config;
+      }
+    }, {
+      key: '_showElement',
       value: function _showElement(relatedTarget) {
         var _this8 = this;
 
@@ -1769,14 +1836,14 @@ var Modal = (function ($) {
 
         $(this._element).addClass(ClassName.IN);
 
-        this._enforceFocus();
+        if (this._config.focus) this._enforceFocus();
 
         var shownEvent = $.Event(Event.SHOWN, {
           relatedTarget: relatedTarget
         });
 
         var transitionComplete = function transitionComplete() {
-          _this8._element.focus();
+          if (_this8._config.focus) _this8._element.focus();
           $(_this8._element).trigger(shownEvent);
         };
 
@@ -2098,7 +2165,15 @@ var ScrollSpy = (function ($) {
   var JQUERY_NO_CONFLICT = $.fn[NAME];
 
   var Default = {
-    offset: 10
+    offset: 10,
+    method: 'auto',
+    target: ''
+  };
+
+  var DefaultType = {
+    offset: 'number',
+    method: 'string',
+    target: '(string|element)'
   };
 
   var Event = {
@@ -2115,8 +2190,14 @@ var ScrollSpy = (function ($) {
   var Selector = {
     DATA_SPY: '[data-spy="scroll"]',
     ACTIVE: '.active',
+    LI: 'li',
     LI_DROPDOWN: 'li.dropdown',
-    LI: 'li'
+    NAV_ANCHORS: '.nav li > a'
+  };
+
+  var OffsetMethod = {
+    OFFSET: 'offset',
+    POSITION: 'position'
   };
 
   /**
@@ -2131,8 +2212,8 @@ var ScrollSpy = (function ($) {
 
       this._element = element;
       this._scrollElement = element.tagName === 'BODY' ? window : element;
-      this._config = $.extend({}, Default, config);
-      this._selector = '' + (this._config.target || '') + ' .nav li > a';
+      this._config = this._getConfig(config);
+      this._selector = '' + this._config.target + ' ' + Selector.NAV_ANCHORS;
       this._offsets = [];
       this._targets = [];
       this._activeTarget = null;
@@ -2152,13 +2233,11 @@ var ScrollSpy = (function ($) {
       value: function refresh() {
         var _this14 = this;
 
-        var offsetMethod = 'offset';
-        var offsetBase = 0;
+        var autoMethod = this._scrollElement !== this._scrollElement.window ? OffsetMethod.POSITION : OffsetMethod.OFFSET;
 
-        if (this._scrollElement !== this._scrollElement.window) {
-          offsetMethod = 'position';
-          offsetBase = this._getScrollTop();
-        }
+        var offsetMethod = this._config.method === 'auto' ? autoMethod : this._config.method;
+
+        var offsetBase = offsetMethod === OffsetMethod.POSITION ? this._getScrollTop() : 0;
 
         this._offsets = [];
         this._targets = [];
@@ -2204,10 +2283,28 @@ var ScrollSpy = (function ($) {
         this._scrollHeight = null;
       }
     }, {
-      key: '_getScrollTop',
+      key: '_getConfig',
 
       // private
 
+      value: function _getConfig(config) {
+        config = $.extend({}, Default, config);
+
+        if (typeof config.target !== 'string') {
+          var id = $(config.target).attr('id');
+          if (!id) {
+            id = Util.getUID(NAME);
+            $(config.target).attr('id', id);
+          }
+          config.target = '#' + id;
+        }
+
+        Util.typeCheckConfig(NAME, config, DefaultType);
+
+        return config;
+      }
+    }, {
+      key: '_getScrollTop',
       value: function _getScrollTop() {
         return this._scrollElement === window ? this._scrollElement.scrollY : this._scrollElement.scrollTop;
       }
@@ -2569,11 +2666,6 @@ var Tab = (function ($) {
       get: function () {
         return VERSION;
       }
-    }, {
-      key: 'Default',
-      get: function () {
-        return Default;
-      }
     }, {
       key: '_jQueryInterface',
 
@@ -2659,7 +2751,20 @@ var Tooltip = (function ($) {
     selector: false,
     placement: 'top',
     offset: '0 0',
-    constraints: null
+    constraints: []
+  };
+
+  var DefaultType = {
+    animation: 'boolean',
+    template: 'string',
+    title: '(string|function)',
+    trigger: 'string',
+    delay: '(number|object)',
+    html: 'boolean',
+    selector: '(string|boolean)',
+    placement: '(string|function)',
+    offset: 'string',
+    constraints: 'array'
   };
 
   var AttachmentMap = {
@@ -3098,6 +3203,8 @@ var Tooltip = (function ($) {
           };
         }
 
+        Util.typeCheckConfig(NAME, config, this.constructor.DefaultType);
+
         return config;
       }
     }, {
@@ -3149,6 +3256,11 @@ var Tooltip = (function ($) {
       get: function () {
         return EVENT_KEY;
       }
+    }, {
+      key: 'DefaultType',
+      get: function () {
+        return DefaultType;
+      }
     }, {
       key: '_jQueryInterface',
 
@@ -3222,6 +3334,10 @@ var Popover = (function ($) {
     template: '<div class="popover" role="tooltip">' + '<div class="popover-arrow"></div>' + '<h3 class="popover-title"></h3>' + '<div class="popover-content"></div></div>'
   });
 
+  var DefaultType = $.extend({}, Tooltip.DefaultType, {
+    content: '(string|function)'
+  });
+
   var ClassName = {
     FADE: 'fade',
     IN: 'in'
@@ -3336,6 +3452,11 @@ var Popover = (function ($) {
       get: function () {
         return EVENT_KEY;
       }
+    }, {
+      key: 'DefaultType',
+      get: function () {
+        return DefaultType;
+      }
     }, {
       key: '_jQueryInterface',
 
index 49b050aa5e2ecb5e0efec8d103d2530998a22b88..497cc8176c66d01e9bc3b9e4b67bb70a73b3ec04 100644 (file)
@@ -3,5 +3,6 @@
  * Copyright 2011-2015 Twitter, Inc.
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
  */
-if("undefined"==typeof jQuery)throw new Error("Bootstrap's JavaScript requires jQuery");+function(a){var b=a.fn.jquery.split(" ")[0].split(".");if(b[0]<2&&b[1]<9||1==b[0]&&9==b[1]&&b[2]<1)throw new Error("Bootstrap's JavaScript requires jQuery version 1.9.1 or higher")}(jQuery),+function(){"use strict";function a(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(a.__proto__=b)}function b(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}{var c=function(){function a(a,b){for(var c=0;c<b.length;c++){var d=b[c];d.enumerable=d.enumerable||!1,d.configurable=!0,"value"in d&&(d.writable=!0),Object.defineProperty(a,d.key,d)}}return function(b,c,d){return c&&a(b.prototype,c),d&&a(b,d),b}}(),d=function(a){function b(){return{bindType:f.end,delegateType:f.end,handle:function(b){return a(b.target).is(this)?b.handleObj.handler.apply(this,arguments):void 0}}}function c(){if(window.QUnit)return!1;var a=document.createElement("bootstrap");for(var b in g)if(void 0!==a.style[b])return{end:g[b]};return!1}function d(b){var c=this,d=!1;return a(this).one(h.TRANSITION_END,function(){d=!0}),setTimeout(function(){d||h.triggerTransitionEnd(c)},b),this}function e(){f=c(),a.fn.emulateTransitionEnd=d,h.supportsTransitionEnd()&&(a.event.special[h.TRANSITION_END]=b())}var f=!1,g={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd otransitionend",transition:"transitionend"},h={TRANSITION_END:"bsTransitionEnd",getUID:function(a){do a+=~~(1e6*Math.random());while(document.getElementById(a));return a},getSelectorFromElement:function(a){var b=a.getAttribute("data-target");return b||(b=a.getAttribute("href")||"",b=/^#[a-z]/i.test(b)?b:null),b},reflow:function(a){new Function("bs","return bs")(a.offsetHeight)},triggerTransitionEnd:function(b){a(b).trigger(f.end)},supportsTransitionEnd:function(){return!!f}};return e(),h}(jQuery),e=(function(a){var e="alert",f="4.0.0",g="bs.alert",h="."+g,i=".data-api",j=a.fn[e],k=150,l={DISMISS:'[data-dismiss="alert"]'},m={CLOSE:"close"+h,CLOSED:"closed"+h,CLICK_DATA_API:"click"+h+i},n={ALERT:"alert",FADE:"fade",IN:"in"},o=function(){function e(a){b(this,e),this._element=a}return c(e,[{key:"close",value:function(a){a=a||this._element;var b=this._getRootElement(a),c=this._triggerCloseEvent(b);c.isDefaultPrevented()||this._removeElement(b)}},{key:"dispose",value:function(){a.removeData(this._element,g),this._element=null}},{key:"_getRootElement",value:function(b){var c=!1,e=d.getSelectorFromElement(b);return e&&(c=a(e)[0]),c||(c=a(b).closest("."+n.ALERT)[0]),c}},{key:"_triggerCloseEvent",value:function(b){var c=a.Event(m.CLOSE);return a(b).trigger(c),c}},{key:"_removeElement",value:function(b){return a(b).removeClass(n.IN),d.supportsTransitionEnd()&&a(b).hasClass(n.FADE)?void a(b).one(d.TRANSITION_END,this._destroyElement.bind(this,b)).emulateTransitionEnd(k):void this._destroyElement(b)}},{key:"_destroyElement",value:function(b){a(b).detach().trigger(m.CLOSED).remove()}}],[{key:"VERSION",get:function(){return f}},{key:"_jQueryInterface",value:function(b){return this.each(function(){var c=a(this),d=c.data(g);d||(d=new e(this),c.data(g,d)),"close"===b&&d[b](this)})}},{key:"_handleDismiss",value:function(a){return function(b){b&&b.preventDefault(),a.close(this)}}}]),e}();return a(document).on(m.CLICK_DATA_API,l.DISMISS,o._handleDismiss(new o)),a.fn[e]=o._jQueryInterface,a.fn[e].Constructor=o,a.fn[e].noConflict=function(){return a.fn[e]=j,o._jQueryInterface},o}(jQuery),function(a){var d="button",e="4.0.0",f="bs.button",g="."+f,h=".data-api",i=a.fn[d],j={ACTIVE:"active",BUTTON:"btn",FOCUS:"focus"},k={DATA_TOGGLE_CARROT:'[data-toggle^="button"]',DATA_TOGGLE:'[data-toggle="buttons"]',INPUT:"input",ACTIVE:".active",BUTTON:".btn"},l={CLICK_DATA_API:"click"+g+h,FOCUS_BLUR_DATA_API:"focus"+g+h+" "+("blur"+g+h)},m=function(){function d(a){b(this,d),this._element=a}return c(d,[{key:"toggle",value:function(){var b=!0,c=a(this._element).closest(k.DATA_TOGGLE)[0];if(c){var d=a(this._element).find(k.INPUT)[0];if(d){if("radio"===d.type)if(d.checked&&a(this._element).hasClass(j.ACTIVE))b=!1;else{var e=a(c).find(k.ACTIVE)[0];e&&a(e).removeClass(j.ACTIVE)}b&&(d.checked=!a(this._element).hasClass(j.ACTIVE),a(this._element).trigger("change"))}}else this._element.setAttribute("aria-pressed",!a(this._element).hasClass(j.ACTIVE));b&&a(this._element).toggleClass(j.ACTIVE)}},{key:"dispose",value:function(){a.removeData(this._element,f),this._element=null}}],[{key:"VERSION",get:function(){return e}},{key:"_jQueryInterface",value:function(b){return this.each(function(){var c=a(this).data(f);c||(c=new d(this),a(this).data(f,c)),"toggle"===b&&c[b]()})}}]),d}();return a(document).on(l.CLICK_DATA_API,k.DATA_TOGGLE_CARROT,function(b){b.preventDefault();var c=b.target;a(c).hasClass(j.BUTTON)||(c=a(c).closest(k.BUTTON)),m._jQueryInterface.call(a(c),"toggle")}).on(l.FOCUS_BLUR_DATA_API,k.DATA_TOGGLE_CARROT,function(b){var c=a(b.target).closest(k.BUTTON)[0];a(c).toggleClass(j.FOCUS,/^focus(in)?$/.test(b.type))}),a.fn[d]=m._jQueryInterface,a.fn[d].Constructor=m,a.fn[d].noConflict=function(){return a.fn[d]=i,m._jQueryInterface},m}(jQuery),function(a){var e="carousel",f="4.0.0",g="bs.carousel",h="."+g,i=".data-api",j=a.fn[e],k=600,l={interval:5e3,keyboard:!0,slide:!1,pause:"hover",wrap:!0},m={NEXT:"next",PREVIOUS:"prev"},n={SLIDE:"slide"+h,SLID:"slid"+h,KEYDOWN:"keydown"+h,MOUSEENTER:"mouseenter"+h,MOUSELEAVE:"mouseleave"+h,LOAD_DATA_API:"load"+h+i,CLICK_DATA_API:"click"+h+i},o={CAROUSEL:"carousel",ACTIVE:"active",SLIDE:"slide",RIGHT:"right",LEFT:"left",ITEM:"carousel-item"},p={ACTIVE:".active",ACTIVE_ITEM:".active.carousel-item",ITEM:".carousel-item",NEXT_PREV:".next, .prev",INDICATORS:".carousel-indicators",DATA_SLIDE:"[data-slide], [data-slide-to]",DATA_RIDE:'[data-ride="carousel"]'},q=function(){function e(c,d){b(this,e),this._items=null,this._interval=null,this._activeElement=null,this._isPaused=!1,this._isSliding=!1,this._config=d,this._element=a(c)[0],this._indicatorsElement=a(this._element).find(p.INDICATORS)[0],this._addEventListeners()}return c(e,[{key:"next",value:function(){this._isSliding||this._slide(m.NEXT)}},{key:"prev",value:function(){this._isSliding||this._slide(m.PREVIOUS)}},{key:"pause",value:function(b){b||(this._isPaused=!0),a(this._element).find(p.NEXT_PREV)[0]&&d.supportsTransitionEnd()&&(d.triggerTransitionEnd(this._element),this.cycle(!0)),clearInterval(this._interval),this._interval=null}},{key:"cycle",value:function(b){b||(this._isPaused=!1),this._interval&&(clearInterval(this._interval),this._interval=null),this._config.interval&&!this._isPaused&&(this._interval=setInterval(a.proxy(this.next,this),this._config.interval))}},{key:"to",value:function(b){var c=this;this._activeElement=a(this._element).find(p.ACTIVE_ITEM)[0];var d=this._getItemIndex(this._activeElement);if(!(b>this._items.length-1||0>b)){if(this._isSliding)return void a(this._element).one(n.SLID,function(){return c.to(b)});if(d==b)return this.pause(),void this.cycle();var e=b>d?m.NEXT:m.PREVIOUS;this._slide(e,this._items[b])}}},{key:"dispose",value:function(){a(this._element).off(h),a.removeData(this._element,g),this._items=null,this._config=null,this._element=null,this._interval=null,this._isPaused=null,this._isSliding=null,this._activeElement=null,this._indicatorsElement=null}},{key:"_addEventListeners",value:function(){this._config.keyboard&&a(this._element).on(n.KEYDOWN,a.proxy(this._keydown,this)),"hover"!=this._config.pause||"ontouchstart"in document.documentElement||a(this._element).on(n.MOUSEENTER,a.proxy(this.pause,this)).on(n.MOUSELEAVE,a.proxy(this.cycle,this))}},{key:"_keydown",value:function(a){if(a.preventDefault(),!/input|textarea/i.test(a.target.tagName))switch(a.which){case 37:this.prev();break;case 39:this.next();break;default:return}}},{key:"_getItemIndex",value:function(b){return this._items=a.makeArray(a(b).parent().find(p.ITEM)),this._items.indexOf(b)}},{key:"_getItemByDirection",value:function(a,b){var c=a===m.NEXT,d=a===m.PREVIOUS,e=this._getItemIndex(b),f=this._items.length-1,g=d&&0===e||c&&e==f;if(g&&!this._config.wrap)return b;var h=a==m.PREVIOUS?-1:1,i=(e+h)%this._items.length;return-1===i?this._items[this._items.length-1]:this._items[i]}},{key:"_triggerSlideEvent",value:function(b,c){var d=a.Event(n.SLIDE,{relatedTarget:b,direction:c});return a(this._element).trigger(d),d}},{key:"_setActiveIndicatorElement",value:function(b){if(this._indicatorsElement){a(this._indicatorsElement).find(p.ACTIVE).removeClass(o.ACTIVE);var c=this._indicatorsElement.children[this._getItemIndex(b)];c&&a(c).addClass(o.ACTIVE)}}},{key:"_slide",value:function(b,c){var e=this,f=a(this._element).find(p.ACTIVE_ITEM)[0],g=c||f&&this._getItemByDirection(b,f),h=!!this._interval,i=b==m.NEXT?o.LEFT:o.RIGHT;if(g&&a(g).hasClass(o.ACTIVE))return void(this._isSliding=!1);var j=this._triggerSlideEvent(g,i);if(!j.isDefaultPrevented()&&f&&g){this._isSliding=!0,h&&this.pause(),this._setActiveIndicatorElement(g);var l=a.Event(n.SLID,{relatedTarget:g,direction:i});d.supportsTransitionEnd()&&a(this._element).hasClass(o.SLIDE)?(a(g).addClass(b),d.reflow(g),a(f).addClass(i),a(g).addClass(i),a(f).one(d.TRANSITION_END,function(){a(g).removeClass(i).removeClass(b),a(g).addClass(o.ACTIVE),a(f).removeClass(o.ACTIVE).removeClass(b).removeClass(i),e._isSliding=!1,setTimeout(function(){return a(e._element).trigger(l)},0)}).emulateTransitionEnd(k)):(a(f).removeClass(o.ACTIVE),a(g).addClass(o.ACTIVE),this._isSliding=!1,a(this._element).trigger(l)),h&&this.cycle()}}}],[{key:"VERSION",get:function(){return f}},{key:"Default",get:function(){return l}},{key:"_jQueryInterface",value:function(b){return this.each(function(){var c=a(this).data(g),d=a.extend({},l,a(this).data());"object"==typeof b&&a.extend(d,b);var f="string"==typeof b?b:d.slide;c||(c=new e(this,d),a(this).data(g,c)),"number"==typeof b?c.to(b):f?c[f]():d.interval&&(c.pause(),c.cycle())})}},{key:"_dataApiClickHandler",value:function(b){var c=d.getSelectorFromElement(this);if(c){var f=a(c)[0];if(f&&a(f).hasClass(o.CAROUSEL)){var h=a.extend({},a(f).data(),a(this).data()),i=this.getAttribute("data-slide-to");i&&(h.interval=!1),e._jQueryInterface.call(a(f),h),i&&a(f).data(g).to(i),b.preventDefault()}}}}]),e}();return a(document).on(n.CLICK_DATA_API,p.DATA_SLIDE,q._dataApiClickHandler),a(window).on(n.LOAD_DATA_API,function(){a(p.DATA_RIDE).each(function(){var b=a(this);q._jQueryInterface.call(b,b.data())})}),a.fn[e]=q._jQueryInterface,a.fn[e].Constructor=q,a.fn[e].noConflict=function(){return a.fn[e]=j,q._jQueryInterface},q}(jQuery),function(a){var e="collapse",f="4.0.0",g="bs.collapse",h="."+g,i=".data-api",j=a.fn[e],k=600,l={toggle:!0,parent:null},m={SHOW:"show"+h,SHOWN:"shown"+h,HIDE:"hide"+h,HIDDEN:"hidden"+h,CLICK_DATA_API:"click"+h+i},n={IN:"in",COLLAPSE:"collapse",COLLAPSING:"collapsing",COLLAPSED:"collapsed"},o={WIDTH:"width",HEIGHT:"height"},p={ACTIVES:".panel > .in, .panel > .collapsing",DATA_TOGGLE:'[data-toggle="collapse"]'},q=function(){function e(c,d){b(this,e),this._isTransitioning=!1,this._element=c,this._config=a.extend({},l,d),this._triggerArray=a.makeArray(a('[data-toggle="collapse"][href="#'+c.id+'"],'+('[data-toggle="collapse"][data-target="#'+c.id+'"]'))),this._parent=this._config.parent?this._getParent():null,this._config.parent||this._addAriaAndCollapsedClass(this._element,this._triggerArray),this._config.toggle&&this.toggle()}return c(e,[{key:"toggle",value:function(){a(this._element).hasClass(n.IN)?this.hide():this.show()}},{key:"show",value:function(){var b=this;if(!this._isTransitioning&&!a(this._element).hasClass(n.IN)){var c=void 0,f=void 0;if(this._parent&&(c=a.makeArray(a(p.ACTIVES)),c.length||(c=null)),!(c&&(f=a(c).data(g),f&&f._isTransitioning))){var h=a.Event(m.SHOW);if(a(this._element).trigger(h),!h.isDefaultPrevented()){c&&(e._jQueryInterface.call(a(c),"hide"),f||a(c).data(g,null));var i=this._getDimension();a(this._element).removeClass(n.COLLAPSE).addClass(n.COLLAPSING),this._element.style[i]=0,this._element.setAttribute("aria-expanded",!0),this._triggerArray.length&&a(this._triggerArray).removeClass(n.COLLAPSED).attr("aria-expanded",!0),this.setTransitioning(!0);var j=function(){a(b._element).removeClass(n.COLLAPSING).addClass(n.COLLAPSE).addClass(n.IN),b._element.style[i]="",b.setTransitioning(!1),a(b._element).trigger(m.SHOWN)};if(!d.supportsTransitionEnd())return void j();var l="scroll"+(i[0].toUpperCase()+i.slice(1));a(this._element).one(d.TRANSITION_END,j).emulateTransitionEnd(k),this._element.style[i]=this._element[l]+"px"}}}}},{key:"hide",value:function(){var b=this;if(!this._isTransitioning&&a(this._element).hasClass(n.IN)){var c=a.Event(m.HIDE);if(a(this._element).trigger(c),!c.isDefaultPrevented()){var e=this._getDimension(),f=e===o.WIDTH?"offsetWidth":"offsetHeight";this._element.style[e]=this._element[f]+"px",d.reflow(this._element),a(this._element).addClass(n.COLLAPSING).removeClass(n.COLLAPSE).removeClass(n.IN),this._element.setAttribute("aria-expanded",!1),this._triggerArray.length&&a(this._triggerArray).addClass(n.COLLAPSED).attr("aria-expanded",!1),this.setTransitioning(!0);var g=function(){b.setTransitioning(!1),a(b._element).removeClass(n.COLLAPSING).addClass(n.COLLAPSE).trigger(m.HIDDEN)};return this._element.style[e]=0,d.supportsTransitionEnd()?void a(this._element).one(d.TRANSITION_END,g).emulateTransitionEnd(k):g()}}}},{key:"setTransitioning",value:function(a){this._isTransitioning=a}},{key:"dispose",value:function(){a.removeData(this._element,g),this._config=null,this._parent=null,this._element=null,this._triggerArray=null,this._isTransitioning=null}},{key:"_getDimension",value:function(){var b=a(this._element).hasClass(o.WIDTH);return b?o.WIDTH:o.HEIGHT}},{key:"_getParent",value:function(){var b=this,c=a(this._config.parent)[0],d='[data-toggle="collapse"][data-parent="'+this._config.parent+'"]';return a(c).find(d).each(function(a,c){b._addAriaAndCollapsedClass(e._getTargetFromElement(c),[c])}),c}},{key:"_addAriaAndCollapsedClass",value:function(b,c){if(b){var d=a(b).hasClass(n.IN);b.setAttribute("aria-expanded",d),c.length&&a(c).toggleClass(n.COLLAPSED,!d).attr("aria-expanded",d)}}}],[{key:"VERSION",get:function(){return f}},{key:"Default",get:function(){return l}},{key:"_getTargetFromElement",value:function(b){var c=d.getSelectorFromElement(b);return c?a(c)[0]:null}},{key:"_jQueryInterface",value:function(b){return this.each(function(){var c=a(this),d=c.data(g),f=a.extend({},l,c.data(),"object"==typeof b&&b);!d&&f.toggle&&/show|hide/.test(b)&&(f.toggle=!1),d||(d=new e(this,f),c.data(g,d)),"string"==typeof b&&d[b]()})}}]),e}();return a(document).on(m.CLICK_DATA_API,p.DATA_TOGGLE,function(b){b.preventDefault();var c=q._getTargetFromElement(this),d=a(c).data(g),e=d?"toggle":a(this).data();q._jQueryInterface.call(a(c),e)}),a.fn[e]=q._jQueryInterface,a.fn[e].Constructor=q,a.fn[e].noConflict=function(){return a.fn[e]=j,q._jQueryInterface},q}(jQuery),function(a){var e="dropdown",f="4.0.0",g="bs.dropdown",h="."+g,i=".data-api",j=a.fn[e],k={HIDE:"hide"+h,HIDDEN:"hidden"+h,SHOW:"show"+h,SHOWN:"shown"+h,CLICK:"click"+h,CLICK_DATA_API:"click"+h+i,KEYDOWN_DATA_API:"keydown"+h+i},l={BACKDROP:"dropdown-backdrop",DISABLED:"disabled",OPEN:"open"},m={BACKDROP:".dropdown-backdrop",DATA_TOGGLE:'[data-toggle="dropdown"]',FORM_CHILD:".dropdown form",ROLE_MENU:'[role="menu"]',ROLE_LISTBOX:'[role="listbox"]',NAVBAR_NAV:".navbar-nav",VISIBLE_ITEMS:'[role="menu"] li:not(.disabled) a, [role="listbox"] li:not(.disabled) a'},n=function(){function e(a){b(this,e),this._element=a,this._addEventListeners()}return c(e,[{key:"toggle",value:function(){if(!this.disabled&&!a(this).hasClass(l.DISABLED)){var b=e._getParentFromElement(this),c=a(b).hasClass(l.OPEN);if(e._clearMenus(),c)return!1;if("ontouchstart"in document.documentElement&&!a(b).closest(m.NAVBAR_NAV).length){var d=document.createElement("div");d.className=l.BACKDROP,a(d).insertBefore(this),a(d).on("click",e._clearMenus)}var f={relatedTarget:this},g=a.Event(k.SHOW,f);if(a(b).trigger(g),!g.isDefaultPrevented())return this.focus(),this.setAttribute("aria-expanded","true"),a(b).toggleClass(l.OPEN),a(b).trigger(k.SHOWN,f),!1}}},{key:"dispose",value:function(){a.removeData(this._element,g),a(this._element).off(h),this._element=null}},{key:"_addEventListeners",value:function(){a(this._element).on(k.CLICK,this.toggle)}}],[{key:"VERSION",get:function(){return f}},{key:"_jQueryInterface",value:function(b){return this.each(function(){var c=a(this).data(g);c||a(this).data(g,c=new e(this)),"string"==typeof b&&c[b].call(this)})}},{key:"_clearMenus",value:function(b){if(!b||3!==b.which){var c=a(m.BACKDROP)[0];c&&c.parentNode.removeChild(c);for(var d=a.makeArray(a(m.DATA_TOGGLE)),f=0;f<d.length;f++){var g=e._getParentFromElement(d[f]),h={relatedTarget:d[f]};if(a(g).hasClass(l.OPEN)&&!(b&&"click"===b.type&&/input|textarea/i.test(b.target.tagName)&&a.contains(g,b.target))){var i=a.Event(k.HIDE,h);a(g).trigger(i),i.isDefaultPrevented()||(d[f].setAttribute("aria-expanded","false"),a(g).removeClass(l.OPEN).trigger(k.HIDDEN,h))}}}}},{key:"_getParentFromElement",value:function(b){var c=void 0,e=d.getSelectorFromElement(b);return e&&(c=a(e)[0]),c||b.parentNode}},{key:"_dataApiKeydownHandler",value:function(b){if(/(38|40|27|32)/.test(b.which)&&!/input|textarea/i.test(b.target.tagName)&&(b.preventDefault(),b.stopPropagation(),!this.disabled&&!a(this).hasClass(l.DISABLED))){var c=e._getParentFromElement(this),d=a(c).hasClass(l.OPEN);if(!d&&27!==b.which||d&&27===b.which){if(27===b.which){var f=a(c).find(m.DATA_TOGGLE)[0];a(f).trigger("focus")}return void a(this).trigger("click")}var g=a.makeArray(a(m.VISIBLE_ITEMS));if(g=g.filter(function(a){return a.offsetWidth||a.offsetHeight}),g.length){var h=g.indexOf(b.target);38===b.which&&h>0&&h--,40===b.which&&h<g.length-1&&h++,~h||(h=0),g[h].focus()}}}}]),e}();return a(document).on(k.KEYDOWN_DATA_API,m.DATA_TOGGLE,n._dataApiKeydownHandler).on(k.KEYDOWN_DATA_API,m.ROLE_MENU,n._dataApiKeydownHandler).on(k.KEYDOWN_DATA_API,m.ROLE_LISTBOX,n._dataApiKeydownHandler).on(k.CLICK_DATA_API,n._clearMenus).on(k.CLICK_DATA_API,m.DATA_TOGGLE,n.prototype.toggle).on(k.CLICK_DATA_API,m.FORM_CHILD,function(a){a.stopPropagation()}),a.fn[e]=n._jQueryInterface,a.fn[e].Constructor=n,a.fn[e].noConflict=function(){return a.fn[e]=j,n._jQueryInterface},n}(jQuery),function(a){var e="modal",f="4.0.0",g="bs.modal",h="."+g,i=".data-api",j=a.fn[e],k=300,l=150,m={backdrop:!0,keyboard:!0,show:!0},n={HIDE:"hide"+h,HIDDEN:"hidden"+h,SHOW:"show"+h,SHOWN:"shown"+h,FOCUSIN:"focusin"+h,RESIZE:"resize"+h,CLICK_DISMISS:"click.dismiss"+h,KEYDOWN_DISMISS:"keydown.dismiss"+h,MOUSEUP_DISMISS:"mouseup.dismiss"+h,MOUSEDOWN_DISMISS:"mousedown.dismiss"+h,CLICK_DATA_API:"click"+h+i},o={BACKDROP:"modal-backdrop",OPEN:"modal-open",FADE:"fade",IN:"in"},p={DIALOG:".modal-dialog",DATA_TOGGLE:'[data-toggle="modal"]',DATA_DISMISS:'[data-dismiss="modal"]',SCROLLBAR_MEASURER:"modal-scrollbar-measure"},q=function(){function e(c,d){b(this,e),this._config=d,this._element=c,this._dialog=a(c).find(p.DIALOG)[0],this._backdrop=null,this._isShown=!1,this._isBodyOverflowing=!1,this._ignoreBackdropClick=!1,this._originalBodyPadding=0,this._scrollbarWidth=0}return c(e,[{key:"toggle",value:function(a){return this._isShown?this.hide():this.show(a)}},{key:"show",value:function(b){var c=this,d=a.Event(n.SHOW,{relatedTarget:b});a(this._element).trigger(d),this._isShown||d.isDefaultPrevented()||(this._isShown=!0,this._checkScrollbar(),this._setScrollbar(),a(document.body).addClass(o.OPEN),this._setEscapeEvent(),this._setResizeEvent(),a(this._element).on(n.CLICK_DISMISS,p.DATA_DISMISS,a.proxy(this.hide,this)),a(this._dialog).on(n.MOUSEDOWN_DISMISS,function(){a(c._element).one(n.MOUSEUP_DISMISS,function(b){a(b.target).is(c._element)&&(that._ignoreBackdropClick=!0)})}),this._showBackdrop(a.proxy(this._showElement,this,b)))}},{key:"hide",value:function(b){b&&b.preventDefault();var c=a.Event(n.HIDE);a(this._element).trigger(c),this._isShown&&!c.isDefaultPrevented()&&(this._isShown=!1,this._setEscapeEvent(),this._setResizeEvent(),a(document).off(n.FOCUSIN),a(this._element).removeClass(o.IN),a(this._element).off(n.CLICK_DISMISS),a(this._dialog).off(n.MOUSEDOWN_DISMISS),d.supportsTransitionEnd()&&a(this._element).hasClass(o.FADE)?a(this._element).one(d.TRANSITION_END,a.proxy(this._hideModal,this)).emulateTransitionEnd(k):this._hideModal())}},{key:"dispose",value:function(){a.removeData(this._element,g),a(window).off(h),a(document).off(h),a(this._element).off(h),a(this._backdrop).off(h),this._config=null,this._element=null,this._dialog=null,this._backdrop=null,this._isShown=null,this._isBodyOverflowing=null,this._ignoreBackdropClick=null,this._originalBodyPadding=null,this._scrollbarWidth=null}},{key:"_showElement",value:function(b){var c=this,e=d.supportsTransitionEnd()&&a(this._element).hasClass(o.FADE);this._element.parentNode&&this._element.parentNode.nodeType===Node.ELEMENT_NODE||document.body.appendChild(this._element),this._element.style.display="block",this._element.scrollTop=0,e&&d.reflow(this._element),a(this._element).addClass(o.IN),this._enforceFocus();var f=a.Event(n.SHOWN,{relatedTarget:b}),g=function(){c._element.focus(),a(c._element).trigger(f)};e?a(this._dialog).one(d.TRANSITION_END,g).emulateTransitionEnd(k):g()}},{key:"_enforceFocus",value:function(){var b=this;a(document).off(n.FOCUSIN).on(n.FOCUSIN,function(c){b._element===c.target||a(b._element).has(c.target).length||b._element.focus()})}},{key:"_setEscapeEvent",value:function(){var b=this;this._isShown&&this._config.keyboard?a(this._element).on(n.KEYDOWN_DISMISS,function(a){27===a.which&&b.hide()}):this._isShown||a(this._element).off(n.KEYDOWN_DISMISS)}},{key:"_setResizeEvent",value:function(){this._isShown?a(window).on(n.RESIZE,a.proxy(this._handleUpdate,this)):a(window).off(n.RESIZE)}},{key:"_hideModal",value:function(){var b=this;this._element.style.display="none",this._showBackdrop(function(){a(document.body).removeClass(o.OPEN),b._resetAdjustments(),b._resetScrollbar(),a(b._element).trigger(n.HIDDEN)})}},{key:"_removeBackdrop",value:function(){this._backdrop&&(a(this._backdrop).remove(),this._backdrop=null)}},{key:"_showBackdrop",value:function(b){var c=this,e=a(this._element).hasClass(o.FADE)?o.FADE:"";if(this._isShown&&this._config.backdrop){var f=d.supportsTransitionEnd()&&e;if(this._backdrop=document.createElement("div"),this._backdrop.className=o.BACKDROP,e&&a(this._backdrop).addClass(e),a(this._backdrop).appendTo(this.$body),a(this._element).on(n.CLICK_DISMISS,function(a){return c._ignoreBackdropClick?void(c._ignoreBackdropClick=!1):void(a.target===a.currentTarget&&("static"===c._config.backdrop?c._element.focus():c.hide()))}),f&&d.reflow(this._backdrop),a(this._backdrop).addClass(o.IN),!b)return;if(!f)return void b();a(this._backdrop).one(d.TRANSITION_END,b).emulateTransitionEnd(l)}else if(!this._isShown&&this._backdrop){a(this._backdrop).removeClass(o.IN);var g=function(){c._removeBackdrop(),b&&b()};d.supportsTransitionEnd()&&a(this._element).hasClass(o.FADE)?a(this._backdrop).one(d.TRANSITION_END,g).emulateTransitionEnd(l):g()}else b&&b()}},{key:"_handleUpdate",value:function(){this._adjustDialog()}},{key:"_adjustDialog",value:function(){var a=this._element.scrollHeight>document.documentElement.clientHeight;!this._isBodyOverflowing&&a&&(this._element.style.paddingLeft=this._scrollbarWidth+"px"),this._isBodyOverflowing&&!a&&(this._element.style.paddingRight=this._scrollbarWidth+"px")}},{key:"_resetAdjustments",value:function(){this._element.style.paddingLeft="",this._element.style.paddingRight=""}},{key:"_checkScrollbar",value:function(){var a=window.innerWidth;if(!a){var b=document.documentElement.getBoundingClientRect();a=b.right-Math.abs(b.left)}this._isBodyOverflowing=document.body.clientWidth<a,this._scrollbarWidth=this._getScrollbarWidth()}},{key:"_setScrollbar",value:function(){var b=parseInt(a(document.body).css("padding-right")||0,10);this._originalBodyPadding=document.body.style.paddingRight||"",this._isBodyOverflowing&&(document.body.style.paddingRight=b+this._scrollbarWidth+"px")}},{key:"_resetScrollbar",value:function(){document.body.style.paddingRight=this._originalBodyPadding}},{key:"_getScrollbarWidth",value:function(){var a=document.createElement("div");a.className=p.SCROLLBAR_MEASURER,document.body.appendChild(a);var b=a.offsetWidth-a.clientWidth;return document.body.removeChild(a),b}}],[{key:"VERSION",get:function(){return f}},{key:"Default",get:function(){return m}},{key:"_jQueryInterface",value:function(b,c){return this.each(function(){var d=a(this).data(g),f=a.extend({},e.Default,a(this).data(),"object"==typeof b&&b);d||(d=new e(this,f),a(this).data(g,d)),"string"==typeof b?d[b](c):f.show&&d.show(c)})}}]),e}();return a(document).on(n.CLICK_DATA_API,p.DATA_TOGGLE,function(b){var c=this,e=void 0,f=d.getSelectorFromElement(this);f&&(e=a(f)[0]);var h=a(e).data(g)?"toggle":a.extend({},a(e).data(),a(this).data());"A"===this.tagName&&b.preventDefault();var i=a(e).one(n.SHOW,function(b){b.isDefaultPrevented()||i.one(n.HIDDEN,function(){a(c).is(":visible")&&c.focus()})});q._jQueryInterface.call(a(e),h,this)}),a.fn[e]=q._jQueryInterface,a.fn[e].Constructor=q,a.fn[e].noConflict=function(){return a.fn[e]=j,q._jQueryInterface},q}(jQuery),function(a){var e="scrollspy",f="4.0.0",g="bs.scrollspy",h="."+g,i=".data-api",j=a.fn[e],k={offset:10},l={ACTIVATE:"activate"+h,SCROLL:"scroll"+h,LOAD_DATA_API:"load"+h+i},m={DROPDOWN_MENU:"dropdown-menu",ACTIVE:"active"},n={DATA_SPY:'[data-spy="scroll"]',ACTIVE:".active",LI_DROPDOWN:"li.dropdown",LI:"li"},o=function(){function e(c,d){b(this,e),this._element=c,this._scrollElement="BODY"===c.tagName?window:c,this._config=a.extend({},k,d),this._selector=""+(this._config.target||"")+" .nav li > a",this._offsets=[],this._targets=[],this._activeTarget=null,this._scrollHeight=0,a(this._scrollElement).on(l.SCROLL,a.proxy(this._process,this)),this.refresh(),this._process()}return c(e,[{key:"refresh",value:function(){var b=this,c="offset",e=0;this._scrollElement!==this._scrollElement.window&&(c="position",e=this._getScrollTop()),this._offsets=[],this._targets=[],this._scrollHeight=this._getScrollHeight();var f=a.makeArray(a(this._selector));f.map(function(b){var f=void 0,g=d.getSelectorFromElement(b);return g&&(f=a(g)[0]),f&&(f.offsetWidth||f.offsetHeight)?[a(f)[c]().top+e,g]:void 0}).filter(function(a){return a}).sort(function(a,b){return a[0]-b[0]}).forEach(function(a){b._offsets.push(a[0]),b._targets.push(a[1])})}},{key:"dispose",value:function(){a.removeData(this._element,g),a(this._scrollElement).off(h),this._element=null,this._scrollElement=null,this._config=null,this._selector=null,this._offsets=null,this._targets=null,this._activeTarget=null,this._scrollHeight=null}},{key:"_getScrollTop",value:function(){return this._scrollElement===window?this._scrollElement.scrollY:this._scrollElement.scrollTop}},{key:"_getScrollHeight",value:function(){return this._scrollElement.scrollHeight||Math.max(document.body.scrollHeight,document.documentElement.scrollHeight)}},{key:"_process",value:function(){var a=this._getScrollTop()+this._config.offset,b=this._getScrollHeight(),c=this._config.offset+b-this._scrollElement.offsetHeight;if(this._scrollHeight!==b&&this.refresh(),a>=c){var d=this._targets[this._targets.length-1];this._activeTarget!==d&&this._activate(d)}if(this._activeTarget&&a<this._offsets[0])return this._activeTarget=null,void this._clear();for(var e=this._offsets.length;e--;){var f=this._activeTarget!==this._targets[e]&&a>=this._offsets[e]&&(void 0===this._offsets[e+1]||a<this._offsets[e+1]);f&&this._activate(this._targets[e])}}},{key:"_activate",value:function(b){this._activeTarget=b,this._clear();for(var c=""+this._selector+'[data-target="'+b+'"],'+(""+this._selector+'[href="'+b+'"]'),d=a(c).parents(n.LI),e=d.length;e--;){a(d[e]).addClass(m.ACTIVE);var f=d[e].parentNode;if(f&&a(f).hasClass(m.DROPDOWN_MENU)){var g=a(f).closest(n.LI_DROPDOWN)[0];a(g).addClass(m.ACTIVE)}}a(this._scrollElement).trigger(l.ACTIVATE,{relatedTarget:b})}},{key:"_clear",value:function(){for(var b=a(this._selector).parentsUntil(this._config.target,n.ACTIVE),c=b.length;c--;)a(b[c]).removeClass(m.ACTIVE)}}],[{key:"VERSION",get:function(){return f}},{key:"Default",get:function(){return k}},{key:"_jQueryInterface",value:function(b){return this.each(function(){var c=a(this).data(g),d="object"==typeof b&&b||null;c||(c=new e(this,d),a(this).data(g,c)),"string"==typeof b&&c[b]()})}}]),e}();return a(window).on(l.LOAD_DATA_API,function(){for(var b=a.makeArray(a(n.DATA_SPY)),c=b.length;c--;){var d=a(b[c]);o._jQueryInterface.call(d,d.data())}}),a.fn[e]=o._jQueryInterface,a.fn[e].Constructor=o,a.fn[e].noConflict=function(){return a.fn[e]=j,o._jQueryInterface},o}(jQuery),function(a){var e="tab",f="4.0.0",g="bs.tab",h="."+g,i=".data-api",j=a.fn[e],k=150,l={HIDE:"hide"+h,HIDDEN:"hidden"+h,SHOW:"show"+h,SHOWN:"shown"+h,CLICK_DATA_API:"click"+h+i},m={DROPDOWN_MENU:"dropdown-menu",ACTIVE:"active",FADE:"fade",IN:"in"},n={A:"a",LI:"li",LI_DROPDOWN:"li.dropdown",UL:"ul:not(.dropdown-menu)",FADE_CHILD:"> .fade",ACTIVE:".active",ACTIVE_CHILD:"> .active",DATA_TOGGLE:'[data-toggle="tab"], [data-toggle="pill"]',DROPDOWN_ACTIVE_CHILD:"> .dropdown-menu > .active"},o=function(){function e(a){b(this,e),this._element=a}return c(e,[{key:"show",value:function(){var b=this;if(!this._element.parentNode||this._element.parentNode.nodeType!=Node.ELEMENT_NODE||!a(this._element).parent().hasClass(m.ACTIVE)){var c=void 0,e=void 0,f=a(this._element).closest(n.UL)[0],g=d.getSelectorFromElement(this._element);f&&(e=a.makeArray(a(f).find(n.ACTIVE)),e=e[e.length-1],e&&(e=a(e).find(n.A)[0]));var h=a.Event(l.HIDE,{relatedTarget:this._element}),i=a.Event(l.SHOW,{relatedTarget:e});if(e&&a(e).trigger(h),a(this._element).trigger(i),!i.isDefaultPrevented()&&!h.isDefaultPrevented()){g&&(c=a(g)[0]),this._activate(a(this._element).closest(n.LI)[0],f);var j=function(){var c=a.Event(l.HIDDEN,{relatedTarget:b._element}),d=a.Event(l.SHOWN,{relatedTarget:e});a(e).trigger(c),a(b._element).trigger(d)};c?this._activate(c,c.parentNode,j):j()}}}},{key:"dispose",value:function(){a.removeClass(this._element,g),this._element=null}},{key:"_activate",value:function(b,c,e){var f=a(c).find(n.ACTIVE_CHILD)[0],g=e&&d.supportsTransitionEnd()&&(f&&a(f).hasClass(m.FADE)||!!a(c).find(n.FADE_CHILD)[0]),h=a.proxy(this._transitionComplete,this,b,f,g,e);f&&g?a(f).one(d.TRANSITION_END,h).emulateTransitionEnd(k):h(),f&&a(f).removeClass(m.IN)}},{key:"_transitionComplete",value:function(b,c,e,f){if(c){a(c).removeClass(m.ACTIVE);var g=a(c).find(n.DROPDOWN_ACTIVE_CHILD)[0];g&&a(g).removeClass(m.ACTIVE);var h=a(c).find(n.DATA_TOGGLE)[0];h&&h.setAttribute("aria-expanded",!1)}a(b).addClass(m.ACTIVE);var i=a(b).find(n.DATA_TOGGLE)[0];if(i&&i.setAttribute("aria-expanded",!0),e?(d.reflow(b),a(b).addClass(m.IN)):a(b).removeClass(m.FADE),b.parentNode&&a(b.parentNode).hasClass(m.DROPDOWN_MENU)){var j=a(b).closest(n.LI_DROPDOWN)[0];j&&a(j).addClass(m.ACTIVE),i=a(b).find(n.DATA_TOGGLE)[0],i&&i.setAttribute("aria-expanded",!0)}f&&f()}}],[{key:"VERSION",get:function(){return f}},{key:"Default",get:function(){return Default}},{key:"_jQueryInterface",value:function(b){return this.each(function(){var c=a(this),d=c.data(g);d||(d=d=new e(this),c.data(g,d)),"string"==typeof b&&d[b]()})}}]),e}();return a(document).on(l.CLICK_DATA_API,n.DATA_TOGGLE,function(b){b.preventDefault(),o._jQueryInterface.call(a(this),"show")}),a.fn[e]=o._jQueryInterface,a.fn[e].Constructor=o,a.fn[e].noConflict=function(){return a.fn[e]=j,o._jQueryInterface},o}(jQuery),function(a){var e="tooltip",f="4.0.0",g="bs.tooltip",h="."+g,i=a.fn[e],j=150,k="bs-tether",l={animation:!0,template:'<div class="tooltip" role="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>',
-trigger:"hover focus",title:"",delay:0,html:!1,selector:!1,placement:"top",offset:"0 0",constraints:null},m={TOP:"bottom center",RIGHT:"middle left",BOTTOM:"top center",LEFT:"middle right"},n={IN:"in",OUT:"out"},o={HIDE:"hide"+h,HIDDEN:"hidden"+h,SHOW:"show"+h,SHOWN:"shown"+h,INSERTED:"inserted"+h,CLICK:"click"+h,FOCUSIN:"focusin"+h,FOCUSOUT:"focusout"+h,MOUSEENTER:"mouseenter"+h,MOUSELEAVE:"mouseleave"+h},p={FADE:"fade",IN:"in"},q={TOOLTIP:".tooltip",TOOLTIP_INNER:".tooltip-inner"},r={element:!1,enabled:!1},s={HOVER:"hover",FOCUS:"focus",CLICK:"click",MANUAL:"manual"},t=function(){function i(a,c){b(this,i),this._isEnabled=!0,this._timeout=0,this._hoverState="",this._activeTrigger={},this._tether=null,this.element=a,this.config=this._getConfig(c),this.tip=null,this._setListeners()}return c(i,[{key:"enable",value:function(){this._isEnabled=!0}},{key:"disable",value:function(){this._isEnabled=!1}},{key:"toggleEnabled",value:function(){this._isEnabled=!this._isEnabled}},{key:"toggle",value:function(b){var c=this,d=this.constructor.DATA_KEY;b?(c=a(b.currentTarget).data(d),c||(c=new this.constructor(b.currentTarget,this._getDelegateConfig()),a(b.currentTarget).data(d,c)),c._activeTrigger.click=!c._activeTrigger.click,c._isWithActiveTrigger()?c._enter(null,c):c._leave(null,c)):a(c.getTipElement()).hasClass(p.IN)?c._leave(null,c):c._enter(null,c)}},{key:"dispose",value:function(){clearTimeout(this._timeout),this.cleanupTether(),a.removeData(this.element,this.constructor.DATA_KEY),a(this.element).off(this.constructor.EVENT_KEY),this.tip&&a(this.tip).remove(),this._isEnabled=null,this._timeout=null,this._hoverState=null,this._activeTrigger=null,this._tether=null,this.element=null,this.config=null,this.tip=null}},{key:"show",value:function(){var b=this,c=a.Event(this.constructor.Event.SHOW);if(this.isWithContent()&&this._isEnabled){a(this.element).trigger(c);var e=a.contains(this.element.ownerDocument.documentElement,this.element);if(c.isDefaultPrevented()||!e)return;var f=this.getTipElement(),g=d.getUID(this.constructor.NAME);f.setAttribute("id",g),this.element.setAttribute("aria-describedby",g),this.setContent(),this.config.animation&&a(f).addClass(p.FADE);var h="function"==typeof this.config.placement?this.config.placement.call(this,f,this.element):this.config.placement,j=this._getAttachment(h);a(f).data(this.constructor.DATA_KEY,this).appendTo(document.body),a(this.element).trigger(this.constructor.Event.INSERTED),this._tether=new Tether({element:f,target:this.element,attachment:j,classes:r,classPrefix:k,offset:this.config.offset,constraints:this.config.constraints}),d.reflow(f),this._tether.position(),a(f).addClass(p.IN);var l=function(){var c=b._hoverState;b._hoverState=null,a(b.element).trigger(b.constructor.Event.SHOWN),c===n.OUT&&b._leave(null,b)};d.supportsTransitionEnd()&&a(this.tip).hasClass(p.FADE)?a(this.tip).one(d.TRANSITION_END,l).emulateTransitionEnd(i._TRANSITION_DURATION):l()}}},{key:"hide",value:function(b){var c=this,e=this.getTipElement(),f=a.Event(this.constructor.Event.HIDE),g=function(){c._hoverState!==n.IN&&e.parentNode&&e.parentNode.removeChild(e),c.element.removeAttribute("aria-describedby"),a(c.element).trigger(c.constructor.Event.HIDDEN),c.cleanupTether(),b&&b()};a(this.element).trigger(f),f.isDefaultPrevented()||(a(e).removeClass(p.IN),d.supportsTransitionEnd()&&a(this.tip).hasClass(p.FADE)?a(e).one(d.TRANSITION_END,g).emulateTransitionEnd(j):g(),this._hoverState="")}},{key:"isWithContent",value:function(){return!!this.getTitle()}},{key:"getTipElement",value:function(){return this.tip=this.tip||a(this.config.template)[0]}},{key:"setContent",value:function(){var b=this.getTipElement(),c=this.getTitle(),d=this.config.html?"innerHTML":"innerText";a(b).find(q.TOOLTIP_INNER)[0][d]=c,a(b).removeClass(p.FADE).removeClass(p.IN),this.cleanupTether()}},{key:"getTitle",value:function(){var a=this.element.getAttribute("data-original-title");return a||(a="function"==typeof this.config.title?this.config.title.call(this.element):this.config.title),a}},{key:"cleanupTether",value:function(){this._tether&&(this._tether.destroy(),a(this.element).removeClass(this._removeTetherClasses),a(this.tip).removeClass(this._removeTetherClasses))}},{key:"_getAttachment",value:function(a){return m[a.toUpperCase()]}},{key:"_setListeners",value:function(){var b=this,c=this.config.trigger.split(" ");c.forEach(function(c){if("click"===c)a(b.element).on(b.constructor.Event.CLICK,b.config.selector,a.proxy(b.toggle,b));else if(c!==s.MANUAL){var d=c==s.HOVER?b.constructor.Event.MOUSEENTER:b.constructor.Event.FOCUSIN,e=c==s.HOVER?b.constructor.Event.MOUSELEAVE:b.constructor.Event.FOCUSOUT;a(b.element).on(d,b.config.selector,a.proxy(b._enter,b)).on(e,b.config.selector,a.proxy(b._leave,b))}}),this.config.selector?this.config=a.extend({},this.config,{trigger:"manual",selector:""}):this._fixTitle()}},{key:"_removeTetherClasses",value:function(a,b){return((b.baseVal||b).match(new RegExp("(^|\\s)"+k+"-\\S+","g"))||[]).join(" ")}},{key:"_fixTitle",value:function(){var a=typeof this.element.getAttribute("data-original-title");(this.element.getAttribute("title")||"string"!==a)&&(this.element.setAttribute("data-original-title",this.element.getAttribute("title")||""),this.element.setAttribute("title",""))}},{key:"_enter",value:function(b,c){var d=this.constructor.DATA_KEY;return c=c||a(b.currentTarget).data(d),c||(c=new this.constructor(b.currentTarget,this._getDelegateConfig()),a(b.currentTarget).data(d,c)),b&&(c._activeTrigger["focusin"==b.type?s.FOCUS:s.HOVER]=!0),a(c.getTipElement()).hasClass(p.IN)||c._hoverState===n.IN?void(c._hoverState=n.IN):(clearTimeout(c._timeout),c._hoverState=n.IN,c.config.delay&&c.config.delay.show?void(c._timeout=setTimeout(function(){c._hoverState===n.IN&&c.show()},c.config.delay.show)):void c.show())}},{key:"_leave",value:function(b,c){var d=this.constructor.DATA_KEY;return c=c||a(b.currentTarget).data(d),c||(c=new this.constructor(b.currentTarget,this._getDelegateConfig()),a(b.currentTarget).data(d,c)),b&&(c._activeTrigger["focusout"==b.type?s.FOCUS:s.HOVER]=!1),c._isWithActiveTrigger()?void 0:(clearTimeout(c._timeout),c._hoverState=n.OUT,c.config.delay&&c.config.delay.hide?void(c._timeout=setTimeout(function(){c._hoverState===n.OUT&&c.hide()},c.config.delay.hide)):void c.hide())}},{key:"_isWithActiveTrigger",value:function(){for(var a in this._activeTrigger)if(this._activeTrigger[a])return!0;return!1}},{key:"_getConfig",value:function(b){return b=a.extend({},this.constructor.Default,a(this.element).data(),b),b.delay&&"number"==typeof b.delay&&(b.delay={show:b.delay,hide:b.delay}),b}},{key:"_getDelegateConfig",value:function(){var a={};if(this.config)for(var b in this.config){var c=this.config[b];this.constructor.Default[b]!==c&&(a[b]=c)}return a}}],[{key:"VERSION",get:function(){return f}},{key:"Default",get:function(){return l}},{key:"NAME",get:function(){return e}},{key:"DATA_KEY",get:function(){return g}},{key:"Event",get:function(){return o}},{key:"EVENT_KEY",get:function(){return h}},{key:"_jQueryInterface",value:function(b){return this.each(function(){var c=a(this).data(g),d="object"==typeof b?b:null;(c||!/destroy|hide/.test(b))&&(c||(c=new i(this,d),a(this).data(g,c)),"string"==typeof b&&c[b]())})}}]),i}();return a.fn[e]=t._jQueryInterface,a.fn[e].Constructor=t,a.fn[e].noConflict=function(){return a.fn[e]=i,t._jQueryInterface},t}(jQuery));!function(d){var f="popover",g="4.0.0",h="bs.popover",i="."+h,j=d.fn[f],k=d.extend({},e.Default,{placement:"right",trigger:"click",content:"",template:'<div class="popover" role="tooltip"><div class="popover-arrow"></div><h3 class="popover-title"></h3><div class="popover-content"></div></div>'}),l={FADE:"fade",IN:"in"},m={TITLE:".popover-title",CONTENT:".popover-content",ARROW:".popover-arrow"},n={HIDE:"hide"+i,HIDDEN:"hidden"+i,SHOW:"show"+i,SHOWN:"shown"+i,INSERTED:"inserted"+i,CLICK:"click"+i,FOCUSIN:"focusin"+i,FOCUSOUT:"focusout"+i,MOUSEENTER:"mouseenter"+i,MOUSELEAVE:"mouseleave"+i},o=function(e){function j(){b(this,j),null!=e&&e.apply(this,arguments)}return a(j,e),c(j,[{key:"isWithContent",value:function(){return this.getTitle()||this._getContent()}},{key:"getTipElement",value:function(){return this.tip=this.tip||d(this.config.template)[0]}},{key:"setContent",value:function(){var a=this.getTipElement(),b=this.getTitle(),c=this._getContent(),e=d(a).find(m.TITLE)[0];e&&(e[this.config.html?"innerHTML":"innerText"]=b),d(a).find(m.CONTENT).children().detach().end()[this.config.html?"string"==typeof c?"html":"append":"text"](c),d(a).removeClass(l.FADE).removeClass(l.IN),this.cleanupTether()}},{key:"_getContent",value:function(){return this.element.getAttribute("data-content")||("function"==typeof this.config.content?this.config.content.call(this.element):this.config.content)}}],[{key:"VERSION",get:function(){return g}},{key:"Default",get:function(){return k}},{key:"NAME",get:function(){return f}},{key:"DATA_KEY",get:function(){return h}},{key:"Event",get:function(){return n}},{key:"EVENT_KEY",get:function(){return i}},{key:"_jQueryInterface",value:function(a){return this.each(function(){var b=d(this).data(h),c="object"==typeof a?a:null;(b||!/destroy|hide/.test(a))&&(b||(b=new j(this,c),d(this).data(h,b)),"string"==typeof a&&b[a]())})}}]),j}(e);return d.fn[f]=o._jQueryInterface,d.fn[f].Constructor=o,d.fn[f].noConflict=function(){return d.fn[f]=j,o._jQueryInterface},o}(jQuery)}}(jQuery);
\ No newline at end of file
+if("undefined"==typeof jQuery)throw new Error("Bootstrap's JavaScript requires jQuery");+function(a){var b=a.fn.jquery.split(" ")[0].split(".");if(b[0]<2&&b[1]<9||1==b[0]&&9==b[1]&&b[2]<1)throw new Error("Bootstrap's JavaScript requires jQuery version 1.9.1 or higher")}(jQuery),+function(){"use strict";function a(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(a.__proto__=b)}function b(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}{var c=function(){function a(a,b){for(var c=0;c<b.length;c++){var d=b[c];d.enumerable=d.enumerable||!1,d.configurable=!0,"value"in d&&(d.writable=!0),Object.defineProperty(a,d.key,d)}}return function(b,c,d){return c&&a(b.prototype,c),d&&a(b,d),b}}(),d=function(a){function b(a){return{}.toString.call(a).match(/\s([a-zA-Z]+)/)[1].toLowerCase()}function c(a){return(a[0]||a).nodeType}function d(){return{bindType:h.end,delegateType:h.end,handle:function(b){return a(b.target).is(this)?b.handleObj.handler.apply(this,arguments):void 0}}}function e(){if(window.QUnit)return!1;var a=document.createElement("bootstrap");for(var b in i)if(void 0!==a.style[b])return{end:i[b]};return!1}function f(b){var c=this,d=!1;return a(this).one(j.TRANSITION_END,function(){d=!0}),setTimeout(function(){d||j.triggerTransitionEnd(c)},b),this}function g(){h=e(),a.fn.emulateTransitionEnd=f,j.supportsTransitionEnd()&&(a.event.special[j.TRANSITION_END]=d())}var h=!1,i={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd otransitionend",transition:"transitionend"},j={TRANSITION_END:"bsTransitionEnd",getUID:function(a){do a+=~~(1e6*Math.random());while(document.getElementById(a));return a},getSelectorFromElement:function(a){var b=a.getAttribute("data-target");return b||(b=a.getAttribute("href")||"",b=/^#[a-z]/i.test(b)?b:null),b},reflow:function(a){new Function("bs","return bs")(a.offsetHeight)},triggerTransitionEnd:function(b){a(b).trigger(h.end)},supportsTransitionEnd:function(){return!!h},typeCheckConfig:function(a,d,e){for(var f in e){var g=e[f],h=d[f],i=void 0;if(i=h&&c(h)?"element":b(h),!new RegExp(g).test(i))throw new Error(""+a.toUpperCase()+": "+('Option "'+f+'" provided type "'+i+'" ')+('but expected type "'+g+'".'))}}};return g(),j}(jQuery),e=(function(a){var e="alert",f="4.0.0",g="bs.alert",h="."+g,i=".data-api",j=a.fn[e],k=150,l={DISMISS:'[data-dismiss="alert"]'},m={CLOSE:"close"+h,CLOSED:"closed"+h,CLICK_DATA_API:"click"+h+i},n={ALERT:"alert",FADE:"fade",IN:"in"},o=function(){function e(a){b(this,e),this._element=a}return c(e,[{key:"close",value:function(a){a=a||this._element;var b=this._getRootElement(a),c=this._triggerCloseEvent(b);c.isDefaultPrevented()||this._removeElement(b)}},{key:"dispose",value:function(){a.removeData(this._element,g),this._element=null}},{key:"_getRootElement",value:function(b){var c=!1,e=d.getSelectorFromElement(b);return e&&(c=a(e)[0]),c||(c=a(b).closest("."+n.ALERT)[0]),c}},{key:"_triggerCloseEvent",value:function(b){var c=a.Event(m.CLOSE);return a(b).trigger(c),c}},{key:"_removeElement",value:function(b){return a(b).removeClass(n.IN),d.supportsTransitionEnd()&&a(b).hasClass(n.FADE)?void a(b).one(d.TRANSITION_END,this._destroyElement.bind(this,b)).emulateTransitionEnd(k):void this._destroyElement(b)}},{key:"_destroyElement",value:function(b){a(b).detach().trigger(m.CLOSED).remove()}}],[{key:"VERSION",get:function(){return f}},{key:"_jQueryInterface",value:function(b){return this.each(function(){var c=a(this),d=c.data(g);d||(d=new e(this),c.data(g,d)),"close"===b&&d[b](this)})}},{key:"_handleDismiss",value:function(a){return function(b){b&&b.preventDefault(),a.close(this)}}}]),e}();return a(document).on(m.CLICK_DATA_API,l.DISMISS,o._handleDismiss(new o)),a.fn[e]=o._jQueryInterface,a.fn[e].Constructor=o,a.fn[e].noConflict=function(){return a.fn[e]=j,o._jQueryInterface},o}(jQuery),function(a){var d="button",e="4.0.0",f="bs.button",g="."+f,h=".data-api",i=a.fn[d],j={ACTIVE:"active",BUTTON:"btn",FOCUS:"focus"},k={DATA_TOGGLE_CARROT:'[data-toggle^="button"]',DATA_TOGGLE:'[data-toggle="buttons"]',INPUT:"input",ACTIVE:".active",BUTTON:".btn"},l={CLICK_DATA_API:"click"+g+h,FOCUS_BLUR_DATA_API:"focus"+g+h+" "+("blur"+g+h)},m=function(){function d(a){b(this,d),this._element=a}return c(d,[{key:"toggle",value:function(){var b=!0,c=a(this._element).closest(k.DATA_TOGGLE)[0];if(c){var d=a(this._element).find(k.INPUT)[0];if(d){if("radio"===d.type)if(d.checked&&a(this._element).hasClass(j.ACTIVE))b=!1;else{var e=a(c).find(k.ACTIVE)[0];e&&a(e).removeClass(j.ACTIVE)}b&&(d.checked=!a(this._element).hasClass(j.ACTIVE),a(this._element).trigger("change"))}}else this._element.setAttribute("aria-pressed",!a(this._element).hasClass(j.ACTIVE));b&&a(this._element).toggleClass(j.ACTIVE)}},{key:"dispose",value:function(){a.removeData(this._element,f),this._element=null}}],[{key:"VERSION",get:function(){return e}},{key:"_jQueryInterface",value:function(b){return this.each(function(){var c=a(this).data(f);c||(c=new d(this),a(this).data(f,c)),"toggle"===b&&c[b]()})}}]),d}();return a(document).on(l.CLICK_DATA_API,k.DATA_TOGGLE_CARROT,function(b){b.preventDefault();var c=b.target;a(c).hasClass(j.BUTTON)||(c=a(c).closest(k.BUTTON)),m._jQueryInterface.call(a(c),"toggle")}).on(l.FOCUS_BLUR_DATA_API,k.DATA_TOGGLE_CARROT,function(b){var c=a(b.target).closest(k.BUTTON)[0];a(c).toggleClass(j.FOCUS,/^focus(in)?$/.test(b.type))}),a.fn[d]=m._jQueryInterface,a.fn[d].Constructor=m,a.fn[d].noConflict=function(){return a.fn[d]=i,m._jQueryInterface},m}(jQuery),function(a){var e="carousel",f="4.0.0",g="bs.carousel",h="."+g,i=".data-api",j=a.fn[e],k=600,l={interval:5e3,keyboard:!0,slide:!1,pause:"hover",wrap:!0},m={interval:"(number|boolean)",keyboard:"boolean",slide:"(boolean|string)",pause:"(string|boolean)",wrap:"boolean"},n={NEXT:"next",PREVIOUS:"prev"},o={SLIDE:"slide"+h,SLID:"slid"+h,KEYDOWN:"keydown"+h,MOUSEENTER:"mouseenter"+h,MOUSELEAVE:"mouseleave"+h,LOAD_DATA_API:"load"+h+i,CLICK_DATA_API:"click"+h+i},p={CAROUSEL:"carousel",ACTIVE:"active",SLIDE:"slide",RIGHT:"right",LEFT:"left",ITEM:"carousel-item"},q={ACTIVE:".active",ACTIVE_ITEM:".active.carousel-item",ITEM:".carousel-item",NEXT_PREV:".next, .prev",INDICATORS:".carousel-indicators",DATA_SLIDE:"[data-slide], [data-slide-to]",DATA_RIDE:'[data-ride="carousel"]'},r=function(){function i(c,d){b(this,i),this._items=null,this._interval=null,this._activeElement=null,this._isPaused=!1,this._isSliding=!1,this._config=this._getConfig(d),this._element=a(c)[0],this._indicatorsElement=a(this._element).find(q.INDICATORS)[0],this._addEventListeners()}return c(i,[{key:"next",value:function(){this._isSliding||this._slide(n.NEXT)}},{key:"prev",value:function(){this._isSliding||this._slide(n.PREVIOUS)}},{key:"pause",value:function(b){b||(this._isPaused=!0),a(this._element).find(q.NEXT_PREV)[0]&&d.supportsTransitionEnd()&&(d.triggerTransitionEnd(this._element),this.cycle(!0)),clearInterval(this._interval),this._interval=null}},{key:"cycle",value:function(b){b||(this._isPaused=!1),this._interval&&(clearInterval(this._interval),this._interval=null),this._config.interval&&!this._isPaused&&(this._interval=setInterval(a.proxy(this.next,this),this._config.interval))}},{key:"to",value:function(b){var c=this;this._activeElement=a(this._element).find(q.ACTIVE_ITEM)[0];var d=this._getItemIndex(this._activeElement);if(!(b>this._items.length-1||0>b)){if(this._isSliding)return void a(this._element).one(o.SLID,function(){return c.to(b)});if(d==b)return this.pause(),void this.cycle();var e=b>d?n.NEXT:n.PREVIOUS;this._slide(e,this._items[b])}}},{key:"dispose",value:function(){a(this._element).off(h),a.removeData(this._element,g),this._items=null,this._config=null,this._element=null,this._interval=null,this._isPaused=null,this._isSliding=null,this._activeElement=null,this._indicatorsElement=null}},{key:"_getConfig",value:function(b){return b=a.extend({},l,b),d.typeCheckConfig(e,b,m),b}},{key:"_addEventListeners",value:function(){this._config.keyboard&&a(this._element).on(o.KEYDOWN,a.proxy(this._keydown,this)),"hover"!=this._config.pause||"ontouchstart"in document.documentElement||a(this._element).on(o.MOUSEENTER,a.proxy(this.pause,this)).on(o.MOUSELEAVE,a.proxy(this.cycle,this))}},{key:"_keydown",value:function(a){if(a.preventDefault(),!/input|textarea/i.test(a.target.tagName))switch(a.which){case 37:this.prev();break;case 39:this.next();break;default:return}}},{key:"_getItemIndex",value:function(b){return this._items=a.makeArray(a(b).parent().find(q.ITEM)),this._items.indexOf(b)}},{key:"_getItemByDirection",value:function(a,b){var c=a===n.NEXT,d=a===n.PREVIOUS,e=this._getItemIndex(b),f=this._items.length-1,g=d&&0===e||c&&e==f;if(g&&!this._config.wrap)return b;var h=a==n.PREVIOUS?-1:1,i=(e+h)%this._items.length;return-1===i?this._items[this._items.length-1]:this._items[i]}},{key:"_triggerSlideEvent",value:function(b,c){var d=a.Event(o.SLIDE,{relatedTarget:b,direction:c});return a(this._element).trigger(d),d}},{key:"_setActiveIndicatorElement",value:function(b){if(this._indicatorsElement){a(this._indicatorsElement).find(q.ACTIVE).removeClass(p.ACTIVE);var c=this._indicatorsElement.children[this._getItemIndex(b)];c&&a(c).addClass(p.ACTIVE)}}},{key:"_slide",value:function(b,c){var e=this,f=a(this._element).find(q.ACTIVE_ITEM)[0],g=c||f&&this._getItemByDirection(b,f),h=!!this._interval,i=b==n.NEXT?p.LEFT:p.RIGHT;if(g&&a(g).hasClass(p.ACTIVE))return void(this._isSliding=!1);var j=this._triggerSlideEvent(g,i);if(!j.isDefaultPrevented()&&f&&g){this._isSliding=!0,h&&this.pause(),this._setActiveIndicatorElement(g);var l=a.Event(o.SLID,{relatedTarget:g,direction:i});d.supportsTransitionEnd()&&a(this._element).hasClass(p.SLIDE)?(a(g).addClass(b),d.reflow(g),a(f).addClass(i),a(g).addClass(i),a(f).one(d.TRANSITION_END,function(){a(g).removeClass(i).removeClass(b),a(g).addClass(p.ACTIVE),a(f).removeClass(p.ACTIVE).removeClass(b).removeClass(i),e._isSliding=!1,setTimeout(function(){return a(e._element).trigger(l)},0)}).emulateTransitionEnd(k)):(a(f).removeClass(p.ACTIVE),a(g).addClass(p.ACTIVE),this._isSliding=!1,a(this._element).trigger(l)),h&&this.cycle()}}}],[{key:"VERSION",get:function(){return f}},{key:"Default",get:function(){return l}},{key:"_jQueryInterface",value:function(b){return this.each(function(){var c=a(this).data(g),d=a.extend({},l,a(this).data());"object"==typeof b&&a.extend(d,b);var e="string"==typeof b?b:d.slide;c||(c=new i(this,d),a(this).data(g,c)),"number"==typeof b?c.to(b):e?c[e]():d.interval&&(c.pause(),c.cycle())})}},{key:"_dataApiClickHandler",value:function(b){var c=d.getSelectorFromElement(this);if(c){var e=a(c)[0];if(e&&a(e).hasClass(p.CAROUSEL)){var f=a.extend({},a(e).data(),a(this).data()),h=this.getAttribute("data-slide-to");h&&(f.interval=!1),i._jQueryInterface.call(a(e),f),h&&a(e).data(g).to(h),b.preventDefault()}}}}]),i}();return a(document).on(o.CLICK_DATA_API,q.DATA_SLIDE,r._dataApiClickHandler),a(window).on(o.LOAD_DATA_API,function(){a(q.DATA_RIDE).each(function(){var b=a(this);r._jQueryInterface.call(b,b.data())})}),a.fn[e]=r._jQueryInterface,a.fn[e].Constructor=r,a.fn[e].noConflict=function(){return a.fn[e]=j,r._jQueryInterface},r}(jQuery),function(a){var e="collapse",f="4.0.0",g="bs.collapse",h="."+g,i=".data-api",j=a.fn[e],k=600,l={toggle:!0,parent:""},m={toggle:"boolean",parent:"string"},n={SHOW:"show"+h,SHOWN:"shown"+h,HIDE:"hide"+h,HIDDEN:"hidden"+h,CLICK_DATA_API:"click"+h+i},o={IN:"in",COLLAPSE:"collapse",COLLAPSING:"collapsing",COLLAPSED:"collapsed"},p={WIDTH:"width",HEIGHT:"height"},q={ACTIVES:".panel > .in, .panel > .collapsing",DATA_TOGGLE:'[data-toggle="collapse"]'},r=function(){function h(c,d){b(this,h),this._isTransitioning=!1,this._element=c,this._config=this._getConfig(d),this._triggerArray=a.makeArray(a('[data-toggle="collapse"][href="#'+c.id+'"],'+('[data-toggle="collapse"][data-target="#'+c.id+'"]'))),this._parent=this._config.parent?this._getParent():null,this._config.parent||this._addAriaAndCollapsedClass(this._element,this._triggerArray),this._config.toggle&&this.toggle()}return c(h,[{key:"toggle",value:function(){a(this._element).hasClass(o.IN)?this.hide():this.show()}},{key:"show",value:function(){var b=this;if(!this._isTransitioning&&!a(this._element).hasClass(o.IN)){var c=void 0,e=void 0;if(this._parent&&(c=a.makeArray(a(q.ACTIVES)),c.length||(c=null)),!(c&&(e=a(c).data(g),e&&e._isTransitioning))){var f=a.Event(n.SHOW);if(a(this._element).trigger(f),!f.isDefaultPrevented()){c&&(h._jQueryInterface.call(a(c),"hide"),e||a(c).data(g,null));var i=this._getDimension();a(this._element).removeClass(o.COLLAPSE).addClass(o.COLLAPSING),this._element.style[i]=0,this._element.setAttribute("aria-expanded",!0),this._triggerArray.length&&a(this._triggerArray).removeClass(o.COLLAPSED).attr("aria-expanded",!0),this.setTransitioning(!0);var j=function(){a(b._element).removeClass(o.COLLAPSING).addClass(o.COLLAPSE).addClass(o.IN),b._element.style[i]="",b.setTransitioning(!1),a(b._element).trigger(n.SHOWN)};if(!d.supportsTransitionEnd())return void j();var l="scroll"+(i[0].toUpperCase()+i.slice(1));a(this._element).one(d.TRANSITION_END,j).emulateTransitionEnd(k),this._element.style[i]=this._element[l]+"px"}}}}},{key:"hide",value:function(){var b=this;if(!this._isTransitioning&&a(this._element).hasClass(o.IN)){var c=a.Event(n.HIDE);if(a(this._element).trigger(c),!c.isDefaultPrevented()){var e=this._getDimension(),f=e===p.WIDTH?"offsetWidth":"offsetHeight";this._element.style[e]=this._element[f]+"px",d.reflow(this._element),a(this._element).addClass(o.COLLAPSING).removeClass(o.COLLAPSE).removeClass(o.IN),this._element.setAttribute("aria-expanded",!1),this._triggerArray.length&&a(this._triggerArray).addClass(o.COLLAPSED).attr("aria-expanded",!1),this.setTransitioning(!0);var g=function(){b.setTransitioning(!1),a(b._element).removeClass(o.COLLAPSING).addClass(o.COLLAPSE).trigger(n.HIDDEN)};return this._element.style[e]=0,d.supportsTransitionEnd()?void a(this._element).one(d.TRANSITION_END,g).emulateTransitionEnd(k):g()}}}},{key:"setTransitioning",value:function(a){this._isTransitioning=a}},{key:"dispose",value:function(){a.removeData(this._element,g),this._config=null,this._parent=null,this._element=null,this._triggerArray=null,this._isTransitioning=null}},{key:"_getConfig",value:function(b){return b=a.extend({},l,b),b.toggle=!!b.toggle,d.typeCheckConfig(e,b,m),b}},{key:"_getDimension",value:function(){var b=a(this._element).hasClass(p.WIDTH);return b?p.WIDTH:p.HEIGHT}},{key:"_getParent",value:function(){var b=this,c=a(this._config.parent)[0],d='[data-toggle="collapse"][data-parent="'+this._config.parent+'"]';return a(c).find(d).each(function(a,c){b._addAriaAndCollapsedClass(h._getTargetFromElement(c),[c])}),c}},{key:"_addAriaAndCollapsedClass",value:function(b,c){if(b){var d=a(b).hasClass(o.IN);b.setAttribute("aria-expanded",d),c.length&&a(c).toggleClass(o.COLLAPSED,!d).attr("aria-expanded",d)}}}],[{key:"VERSION",get:function(){return f}},{key:"Default",get:function(){return l}},{key:"_getTargetFromElement",value:function(b){var c=d.getSelectorFromElement(b);return c?a(c)[0]:null}},{key:"_jQueryInterface",value:function(b){return this.each(function(){var c=a(this),d=c.data(g),e=a.extend({},l,c.data(),"object"==typeof b&&b);!d&&e.toggle&&/show|hide/.test(b)&&(e.toggle=!1),d||(d=new h(this,e),c.data(g,d)),"string"==typeof b&&d[b]()})}}]),h}();return a(document).on(n.CLICK_DATA_API,q.DATA_TOGGLE,function(b){b.preventDefault();var c=r._getTargetFromElement(this),d=a(c).data(g),e=d?"toggle":a(this).data();r._jQueryInterface.call(a(c),e)}),a.fn[e]=r._jQueryInterface,a.fn[e].Constructor=r,a.fn[e].noConflict=function(){return a.fn[e]=j,r._jQueryInterface},r}(jQuery),function(a){var e="dropdown",f="4.0.0",g="bs.dropdown",h="."+g,i=".data-api",j=a.fn[e],k={HIDE:"hide"+h,HIDDEN:"hidden"+h,SHOW:"show"+h,SHOWN:"shown"+h,CLICK:"click"+h,CLICK_DATA_API:"click"+h+i,KEYDOWN_DATA_API:"keydown"+h+i},l={BACKDROP:"dropdown-backdrop",DISABLED:"disabled",OPEN:"open"},m={BACKDROP:".dropdown-backdrop",DATA_TOGGLE:'[data-toggle="dropdown"]',FORM_CHILD:".dropdown form",ROLE_MENU:'[role="menu"]',ROLE_LISTBOX:'[role="listbox"]',NAVBAR_NAV:".navbar-nav",VISIBLE_ITEMS:'[role="menu"] li:not(.disabled) a, [role="listbox"] li:not(.disabled) a'},n=function(){function e(a){b(this,e),this._element=a,this._addEventListeners()}return c(e,[{key:"toggle",value:function(){if(!this.disabled&&!a(this).hasClass(l.DISABLED)){var b=e._getParentFromElement(this),c=a(b).hasClass(l.OPEN);if(e._clearMenus(),c)return!1;if("ontouchstart"in document.documentElement&&!a(b).closest(m.NAVBAR_NAV).length){var d=document.createElement("div");d.className=l.BACKDROP,a(d).insertBefore(this),a(d).on("click",e._clearMenus)}var f={relatedTarget:this},g=a.Event(k.SHOW,f);if(a(b).trigger(g),!g.isDefaultPrevented())return this.focus(),this.setAttribute("aria-expanded","true"),a(b).toggleClass(l.OPEN),a(b).trigger(k.SHOWN,f),!1}}},{key:"dispose",value:function(){a.removeData(this._element,g),a(this._element).off(h),this._element=null}},{key:"_addEventListeners",value:function(){a(this._element).on(k.CLICK,this.toggle)}}],[{key:"VERSION",get:function(){return f}},{key:"_jQueryInterface",value:function(b){return this.each(function(){var c=a(this).data(g);c||a(this).data(g,c=new e(this)),"string"==typeof b&&c[b].call(this)})}},{key:"_clearMenus",value:function(b){if(!b||3!==b.which){var c=a(m.BACKDROP)[0];c&&c.parentNode.removeChild(c);for(var d=a.makeArray(a(m.DATA_TOGGLE)),f=0;f<d.length;f++){var g=e._getParentFromElement(d[f]),h={relatedTarget:d[f]};if(a(g).hasClass(l.OPEN)&&!(b&&"click"===b.type&&/input|textarea/i.test(b.target.tagName)&&a.contains(g,b.target))){var i=a.Event(k.HIDE,h);a(g).trigger(i),i.isDefaultPrevented()||(d[f].setAttribute("aria-expanded","false"),a(g).removeClass(l.OPEN).trigger(k.HIDDEN,h))}}}}},{key:"_getParentFromElement",value:function(b){var c=void 0,e=d.getSelectorFromElement(b);return e&&(c=a(e)[0]),c||b.parentNode}},{key:"_dataApiKeydownHandler",value:function(b){if(/(38|40|27|32)/.test(b.which)&&!/input|textarea/i.test(b.target.tagName)&&(b.preventDefault(),b.stopPropagation(),!this.disabled&&!a(this).hasClass(l.DISABLED))){var c=e._getParentFromElement(this),d=a(c).hasClass(l.OPEN);if(!d&&27!==b.which||d&&27===b.which){if(27===b.which){var f=a(c).find(m.DATA_TOGGLE)[0];a(f).trigger("focus")}return void a(this).trigger("click")}var g=a.makeArray(a(m.VISIBLE_ITEMS));if(g=g.filter(function(a){return a.offsetWidth||a.offsetHeight}),g.length){var h=g.indexOf(b.target);38===b.which&&h>0&&h--,40===b.which&&h<g.length-1&&h++,~h||(h=0),g[h].focus()}}}}]),e}();return a(document).on(k.KEYDOWN_DATA_API,m.DATA_TOGGLE,n._dataApiKeydownHandler).on(k.KEYDOWN_DATA_API,m.ROLE_MENU,n._dataApiKeydownHandler).on(k.KEYDOWN_DATA_API,m.ROLE_LISTBOX,n._dataApiKeydownHandler).on(k.CLICK_DATA_API,n._clearMenus).on(k.CLICK_DATA_API,m.DATA_TOGGLE,n.prototype.toggle).on(k.CLICK_DATA_API,m.FORM_CHILD,function(a){a.stopPropagation()}),a.fn[e]=n._jQueryInterface,a.fn[e].Constructor=n,a.fn[e].noConflict=function(){return a.fn[e]=j,n._jQueryInterface},n}(jQuery),function(a){var e="modal",f="4.0.0",g="bs.modal",h="."+g,i=".data-api",j=a.fn[e],k=300,l=150,m={backdrop:!0,keyboard:!0,focus:!0,show:!0},n={backdrop:"(boolean|string)",keyboard:"boolean",focus:"boolean",show:"boolean"},o={HIDE:"hide"+h,HIDDEN:"hidden"+h,SHOW:"show"+h,SHOWN:"shown"+h,FOCUSIN:"focusin"+h,RESIZE:"resize"+h,CLICK_DISMISS:"click.dismiss"+h,KEYDOWN_DISMISS:"keydown.dismiss"+h,MOUSEUP_DISMISS:"mouseup.dismiss"+h,MOUSEDOWN_DISMISS:"mousedown.dismiss"+h,CLICK_DATA_API:"click"+h+i},p={BACKDROP:"modal-backdrop",OPEN:"modal-open",FADE:"fade",IN:"in"},q={DIALOG:".modal-dialog",DATA_TOGGLE:'[data-toggle="modal"]',DATA_DISMISS:'[data-dismiss="modal"]',SCROLLBAR_MEASURER:"modal-scrollbar-measure"},r=function(){function i(c,d){b(this,i),this._config=this._getConfig(d),this._element=c,this._dialog=a(c).find(q.DIALOG)[0],this._backdrop=null,this._isShown=!1,this._isBodyOverflowing=!1,this._ignoreBackdropClick=!1,this._originalBodyPadding=0,this._scrollbarWidth=0}return c(i,[{key:"toggle",value:function(a){return this._isShown?this.hide():this.show(a)}},{key:"show",value:function(b){var c=this,d=a.Event(o.SHOW,{relatedTarget:b});a(this._element).trigger(d),this._isShown||d.isDefaultPrevented()||(this._isShown=!0,this._checkScrollbar(),this._setScrollbar(),a(document.body).addClass(p.OPEN),this._setEscapeEvent(),this._setResizeEvent(),a(this._element).on(o.CLICK_DISMISS,q.DATA_DISMISS,a.proxy(this.hide,this)),a(this._dialog).on(o.MOUSEDOWN_DISMISS,function(){a(c._element).one(o.MOUSEUP_DISMISS,function(b){a(b.target).is(c._element)&&(that._ignoreBackdropClick=!0)})}),this._showBackdrop(a.proxy(this._showElement,this,b)))}},{key:"hide",value:function(b){b&&b.preventDefault();var c=a.Event(o.HIDE);a(this._element).trigger(c),this._isShown&&!c.isDefaultPrevented()&&(this._isShown=!1,this._setEscapeEvent(),this._setResizeEvent(),a(document).off(o.FOCUSIN),a(this._element).removeClass(p.IN),a(this._element).off(o.CLICK_DISMISS),a(this._dialog).off(o.MOUSEDOWN_DISMISS),d.supportsTransitionEnd()&&a(this._element).hasClass(p.FADE)?a(this._element).one(d.TRANSITION_END,a.proxy(this._hideModal,this)).emulateTransitionEnd(k):this._hideModal())}},{key:"dispose",value:function(){a.removeData(this._element,g),a(window).off(h),a(document).off(h),a(this._element).off(h),a(this._backdrop).off(h),this._config=null,this._element=null,this._dialog=null,this._backdrop=null,this._isShown=null,this._isBodyOverflowing=null,this._ignoreBackdropClick=null,this._originalBodyPadding=null,this._scrollbarWidth=null}},{key:"_getConfig",value:function(b){return b=a.extend({},m,b),d.typeCheckConfig(e,b,n),b}},{key:"_showElement",value:function(b){var c=this,e=d.supportsTransitionEnd()&&a(this._element).hasClass(p.FADE);this._element.parentNode&&this._element.parentNode.nodeType===Node.ELEMENT_NODE||document.body.appendChild(this._element),this._element.style.display="block",this._element.scrollTop=0,e&&d.reflow(this._element),a(this._element).addClass(p.IN),this._config.focus&&this._enforceFocus();var f=a.Event(o.SHOWN,{relatedTarget:b}),g=function(){c._config.focus&&c._element.focus(),a(c._element).trigger(f)};e?a(this._dialog).one(d.TRANSITION_END,g).emulateTransitionEnd(k):g()}},{key:"_enforceFocus",value:function(){var b=this;a(document).off(o.FOCUSIN).on(o.FOCUSIN,function(c){b._element===c.target||a(b._element).has(c.target).length||b._element.focus()})}},{key:"_setEscapeEvent",value:function(){var b=this;this._isShown&&this._config.keyboard?a(this._element).on(o.KEYDOWN_DISMISS,function(a){27===a.which&&b.hide()}):this._isShown||a(this._element).off(o.KEYDOWN_DISMISS)}},{key:"_setResizeEvent",value:function(){this._isShown?a(window).on(o.RESIZE,a.proxy(this._handleUpdate,this)):a(window).off(o.RESIZE)}},{key:"_hideModal",value:function(){var b=this;this._element.style.display="none",this._showBackdrop(function(){a(document.body).removeClass(p.OPEN),b._resetAdjustments(),b._resetScrollbar(),a(b._element).trigger(o.HIDDEN)})}},{key:"_removeBackdrop",value:function(){this._backdrop&&(a(this._backdrop).remove(),this._backdrop=null)}},{key:"_showBackdrop",value:function(b){var c=this,e=a(this._element).hasClass(p.FADE)?p.FADE:"";if(this._isShown&&this._config.backdrop){var f=d.supportsTransitionEnd()&&e;if(this._backdrop=document.createElement("div"),this._backdrop.className=p.BACKDROP,e&&a(this._backdrop).addClass(e),a(this._backdrop).appendTo(this.$body),a(this._element).on(o.CLICK_DISMISS,function(a){return c._ignoreBackdropClick?void(c._ignoreBackdropClick=!1):void(a.target===a.currentTarget&&("static"===c._config.backdrop?c._element.focus():c.hide()))}),f&&d.reflow(this._backdrop),a(this._backdrop).addClass(p.IN),!b)return;if(!f)return void b();a(this._backdrop).one(d.TRANSITION_END,b).emulateTransitionEnd(l)}else if(!this._isShown&&this._backdrop){a(this._backdrop).removeClass(p.IN);var g=function(){c._removeBackdrop(),b&&b()};d.supportsTransitionEnd()&&a(this._element).hasClass(p.FADE)?a(this._backdrop).one(d.TRANSITION_END,g).emulateTransitionEnd(l):g()}else b&&b()}},{key:"_handleUpdate",value:function(){this._adjustDialog()}},{key:"_adjustDialog",value:function(){var a=this._element.scrollHeight>document.documentElement.clientHeight;!this._isBodyOverflowing&&a&&(this._element.style.paddingLeft=this._scrollbarWidth+"px"),this._isBodyOverflowing&&!a&&(this._element.style.paddingRight=this._scrollbarWidth+"px")}},{key:"_resetAdjustments",value:function(){this._element.style.paddingLeft="",this._element.style.paddingRight=""}},{key:"_checkScrollbar",value:function(){var a=window.innerWidth;if(!a){var b=document.documentElement.getBoundingClientRect();a=b.right-Math.abs(b.left)}this._isBodyOverflowing=document.body.clientWidth<a,this._scrollbarWidth=this._getScrollbarWidth()}},{key:"_setScrollbar",value:function(){var b=parseInt(a(document.body).css("padding-right")||0,10);this._originalBodyPadding=document.body.style.paddingRight||"",this._isBodyOverflowing&&(document.body.style.paddingRight=b+this._scrollbarWidth+"px")}},{key:"_resetScrollbar",value:function(){document.body.style.paddingRight=this._originalBodyPadding}},{key:"_getScrollbarWidth",value:function(){var a=document.createElement("div");a.className=q.SCROLLBAR_MEASURER,document.body.appendChild(a);var b=a.offsetWidth-a.clientWidth;return document.body.removeChild(a),b}}],[{key:"VERSION",get:function(){return f}},{key:"Default",get:function(){return m}},{key:"_jQueryInterface",value:function(b,c){return this.each(function(){var d=a(this).data(g),e=a.extend({},i.Default,a(this).data(),"object"==typeof b&&b);d||(d=new i(this,e),a(this).data(g,d)),"string"==typeof b?d[b](c):e.show&&d.show(c)})}}]),i}();return a(document).on(o.CLICK_DATA_API,q.DATA_TOGGLE,function(b){var c=this,e=void 0,f=d.getSelectorFromElement(this);f&&(e=a(f)[0]);var h=a(e).data(g)?"toggle":a.extend({},a(e).data(),a(this).data());"A"===this.tagName&&b.preventDefault();var i=a(e).one(o.SHOW,function(b){b.isDefaultPrevented()||i.one(o.HIDDEN,function(){a(c).is(":visible")&&c.focus()})});r._jQueryInterface.call(a(e),h,this)}),a.fn[e]=r._jQueryInterface,a.fn[e].Constructor=r,a.fn[e].noConflict=function(){return a.fn[e]=j,r._jQueryInterface},r}(jQuery),function(a){var e="scrollspy",f="4.0.0",g="bs.scrollspy",h="."+g,i=".data-api",j=a.fn[e],k={offset:10,method:"auto",target:""},l={offset:"number",method:"string",target:"(string|element)"},m={ACTIVATE:"activate"+h,SCROLL:"scroll"+h,LOAD_DATA_API:"load"+h+i},n={DROPDOWN_MENU:"dropdown-menu",ACTIVE:"active"},o={DATA_SPY:'[data-spy="scroll"]',ACTIVE:".active",LI:"li",LI_DROPDOWN:"li.dropdown",NAV_ANCHORS:".nav li > a"},p={OFFSET:"offset",POSITION:"position"},q=function(){function i(c,d){b(this,i),this._element=c,this._scrollElement="BODY"===c.tagName?window:c,this._config=this._getConfig(d),this._selector=""+this._config.target+" "+o.NAV_ANCHORS,this._offsets=[],this._targets=[],this._activeTarget=null,this._scrollHeight=0,a(this._scrollElement).on(m.SCROLL,a.proxy(this._process,this)),this.refresh(),this._process()}return c(i,[{key:"refresh",value:function(){var b=this,c=this._scrollElement!==this._scrollElement.window?p.POSITION:p.OFFSET,e="auto"===this._config.method?c:this._config.method,f=e===p.POSITION?this._getScrollTop():0;this._offsets=[],this._targets=[],this._scrollHeight=this._getScrollHeight();var g=a.makeArray(a(this._selector));g.map(function(b){var c=void 0,g=d.getSelectorFromElement(b);return g&&(c=a(g)[0]),c&&(c.offsetWidth||c.offsetHeight)?[a(c)[e]().top+f,g]:void 0}).filter(function(a){return a}).sort(function(a,b){return a[0]-b[0]}).forEach(function(a){b._offsets.push(a[0]),b._targets.push(a[1])})}},{key:"dispose",value:function(){a.removeData(this._element,g),a(this._scrollElement).off(h),this._element=null,this._scrollElement=null,this._config=null,this._selector=null,this._offsets=null,this._targets=null,this._activeTarget=null,this._scrollHeight=null}},{key:"_getConfig",value:function(b){if(b=a.extend({},k,b),"string"!=typeof b.target){var c=a(b.target).attr("id");c||(c=d.getUID(e),a(b.target).attr("id",c)),b.target="#"+c}return d.typeCheckConfig(e,b,l),b}},{key:"_getScrollTop",value:function(){return this._scrollElement===window?this._scrollElement.scrollY:this._scrollElement.scrollTop}},{key:"_getScrollHeight",value:function(){return this._scrollElement.scrollHeight||Math.max(document.body.scrollHeight,document.documentElement.scrollHeight)}},{key:"_process",value:function(){var a=this._getScrollTop()+this._config.offset,b=this._getScrollHeight(),c=this._config.offset+b-this._scrollElement.offsetHeight;if(this._scrollHeight!==b&&this.refresh(),a>=c){var d=this._targets[this._targets.length-1];this._activeTarget!==d&&this._activate(d)}if(this._activeTarget&&a<this._offsets[0])return this._activeTarget=null,void this._clear();for(var e=this._offsets.length;e--;){var f=this._activeTarget!==this._targets[e]&&a>=this._offsets[e]&&(void 0===this._offsets[e+1]||a<this._offsets[e+1]);f&&this._activate(this._targets[e])}}},{key:"_activate",value:function(b){this._activeTarget=b,this._clear();for(var c=""+this._selector+'[data-target="'+b+'"],'+(""+this._selector+'[href="'+b+'"]'),d=a(c).parents(o.LI),e=d.length;e--;){a(d[e]).addClass(n.ACTIVE);var f=d[e].parentNode;if(f&&a(f).hasClass(n.DROPDOWN_MENU)){var g=a(f).closest(o.LI_DROPDOWN)[0];a(g).addClass(n.ACTIVE)}}a(this._scrollElement).trigger(m.ACTIVATE,{relatedTarget:b})}},{key:"_clear",value:function(){for(var b=a(this._selector).parentsUntil(this._config.target,o.ACTIVE),c=b.length;c--;)a(b[c]).removeClass(n.ACTIVE)}}],[{key:"VERSION",get:function(){return f}},{key:"Default",get:function(){return k}},{key:"_jQueryInterface",value:function(b){return this.each(function(){var c=a(this).data(g),d="object"==typeof b&&b||null;c||(c=new i(this,d),a(this).data(g,c)),"string"==typeof b&&c[b]()})}}]),i}();return a(window).on(m.LOAD_DATA_API,function(){for(var b=a.makeArray(a(o.DATA_SPY)),c=b.length;c--;){var d=a(b[c]);q._jQueryInterface.call(d,d.data())}}),a.fn[e]=q._jQueryInterface,a.fn[e].Constructor=q,a.fn[e].noConflict=function(){return a.fn[e]=j,q._jQueryInterface},q}(jQuery),function(a){var e="tab",f="4.0.0",g="bs.tab",h="."+g,i=".data-api",j=a.fn[e],k=150,l={HIDE:"hide"+h,HIDDEN:"hidden"+h,SHOW:"show"+h,SHOWN:"shown"+h,CLICK_DATA_API:"click"+h+i},m={DROPDOWN_MENU:"dropdown-menu",ACTIVE:"active",FADE:"fade",IN:"in"},n={A:"a",LI:"li",LI_DROPDOWN:"li.dropdown",UL:"ul:not(.dropdown-menu)",FADE_CHILD:"> .fade",ACTIVE:".active",ACTIVE_CHILD:"> .active",DATA_TOGGLE:'[data-toggle="tab"], [data-toggle="pill"]',DROPDOWN_ACTIVE_CHILD:"> .dropdown-menu > .active"},o=function(){function e(a){b(this,e),this._element=a}return c(e,[{key:"show",value:function(){var b=this;if(!this._element.parentNode||this._element.parentNode.nodeType!=Node.ELEMENT_NODE||!a(this._element).parent().hasClass(m.ACTIVE)){var c=void 0,e=void 0,f=a(this._element).closest(n.UL)[0],g=d.getSelectorFromElement(this._element);f&&(e=a.makeArray(a(f).find(n.ACTIVE)),e=e[e.length-1],e&&(e=a(e).find(n.A)[0]));var h=a.Event(l.HIDE,{relatedTarget:this._element}),i=a.Event(l.SHOW,{relatedTarget:e});if(e&&a(e).trigger(h),a(this._element).trigger(i),!i.isDefaultPrevented()&&!h.isDefaultPrevented()){g&&(c=a(g)[0]),this._activate(a(this._element).closest(n.LI)[0],f);var j=function(){var c=a.Event(l.HIDDEN,{relatedTarget:b._element}),d=a.Event(l.SHOWN,{relatedTarget:e});a(e).trigger(c),a(b._element).trigger(d)};c?this._activate(c,c.parentNode,j):j()}}}},{key:"dispose",value:function(){a.removeClass(this._element,g),this._element=null}},{key:"_activate",value:function(b,c,e){var f=a(c).find(n.ACTIVE_CHILD)[0],g=e&&d.supportsTransitionEnd()&&(f&&a(f).hasClass(m.FADE)||!!a(c).find(n.FADE_CHILD)[0]),h=a.proxy(this._transitionComplete,this,b,f,g,e);
+
+f&&g?a(f).one(d.TRANSITION_END,h).emulateTransitionEnd(k):h(),f&&a(f).removeClass(m.IN)}},{key:"_transitionComplete",value:function(b,c,e,f){if(c){a(c).removeClass(m.ACTIVE);var g=a(c).find(n.DROPDOWN_ACTIVE_CHILD)[0];g&&a(g).removeClass(m.ACTIVE);var h=a(c).find(n.DATA_TOGGLE)[0];h&&h.setAttribute("aria-expanded",!1)}a(b).addClass(m.ACTIVE);var i=a(b).find(n.DATA_TOGGLE)[0];if(i&&i.setAttribute("aria-expanded",!0),e?(d.reflow(b),a(b).addClass(m.IN)):a(b).removeClass(m.FADE),b.parentNode&&a(b.parentNode).hasClass(m.DROPDOWN_MENU)){var j=a(b).closest(n.LI_DROPDOWN)[0];j&&a(j).addClass(m.ACTIVE),i=a(b).find(n.DATA_TOGGLE)[0],i&&i.setAttribute("aria-expanded",!0)}f&&f()}}],[{key:"VERSION",get:function(){return f}},{key:"_jQueryInterface",value:function(b){return this.each(function(){var c=a(this),d=c.data(g);d||(d=d=new e(this),c.data(g,d)),"string"==typeof b&&d[b]()})}}]),e}();return a(document).on(l.CLICK_DATA_API,n.DATA_TOGGLE,function(b){b.preventDefault(),o._jQueryInterface.call(a(this),"show")}),a.fn[e]=o._jQueryInterface,a.fn[e].Constructor=o,a.fn[e].noConflict=function(){return a.fn[e]=j,o._jQueryInterface},o}(jQuery),function(a){var e="tooltip",f="4.0.0",g="bs.tooltip",h="."+g,i=a.fn[e],j=150,k="bs-tether",l={animation:!0,template:'<div class="tooltip" role="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>',trigger:"hover focus",title:"",delay:0,html:!1,selector:!1,placement:"top",offset:"0 0",constraints:[]},m={animation:"boolean",template:"string",title:"(string|function)",trigger:"string",delay:"(number|object)",html:"boolean",selector:"(string|boolean)",placement:"(string|function)",offset:"string",constraints:"array"},n={TOP:"bottom center",RIGHT:"middle left",BOTTOM:"top center",LEFT:"middle right"},o={IN:"in",OUT:"out"},p={HIDE:"hide"+h,HIDDEN:"hidden"+h,SHOW:"show"+h,SHOWN:"shown"+h,INSERTED:"inserted"+h,CLICK:"click"+h,FOCUSIN:"focusin"+h,FOCUSOUT:"focusout"+h,MOUSEENTER:"mouseenter"+h,MOUSELEAVE:"mouseleave"+h},q={FADE:"fade",IN:"in"},r={TOOLTIP:".tooltip",TOOLTIP_INNER:".tooltip-inner"},s={element:!1,enabled:!1},t={HOVER:"hover",FOCUS:"focus",CLICK:"click",MANUAL:"manual"},u=function(){function i(a,c){b(this,i),this._isEnabled=!0,this._timeout=0,this._hoverState="",this._activeTrigger={},this._tether=null,this.element=a,this.config=this._getConfig(c),this.tip=null,this._setListeners()}return c(i,[{key:"enable",value:function(){this._isEnabled=!0}},{key:"disable",value:function(){this._isEnabled=!1}},{key:"toggleEnabled",value:function(){this._isEnabled=!this._isEnabled}},{key:"toggle",value:function(b){var c=this,d=this.constructor.DATA_KEY;b?(c=a(b.currentTarget).data(d),c||(c=new this.constructor(b.currentTarget,this._getDelegateConfig()),a(b.currentTarget).data(d,c)),c._activeTrigger.click=!c._activeTrigger.click,c._isWithActiveTrigger()?c._enter(null,c):c._leave(null,c)):a(c.getTipElement()).hasClass(q.IN)?c._leave(null,c):c._enter(null,c)}},{key:"dispose",value:function(){clearTimeout(this._timeout),this.cleanupTether(),a.removeData(this.element,this.constructor.DATA_KEY),a(this.element).off(this.constructor.EVENT_KEY),this.tip&&a(this.tip).remove(),this._isEnabled=null,this._timeout=null,this._hoverState=null,this._activeTrigger=null,this._tether=null,this.element=null,this.config=null,this.tip=null}},{key:"show",value:function(){var b=this,c=a.Event(this.constructor.Event.SHOW);if(this.isWithContent()&&this._isEnabled){a(this.element).trigger(c);var e=a.contains(this.element.ownerDocument.documentElement,this.element);if(c.isDefaultPrevented()||!e)return;var f=this.getTipElement(),g=d.getUID(this.constructor.NAME);f.setAttribute("id",g),this.element.setAttribute("aria-describedby",g),this.setContent(),this.config.animation&&a(f).addClass(q.FADE);var h="function"==typeof this.config.placement?this.config.placement.call(this,f,this.element):this.config.placement,j=this._getAttachment(h);a(f).data(this.constructor.DATA_KEY,this).appendTo(document.body),a(this.element).trigger(this.constructor.Event.INSERTED),this._tether=new Tether({element:f,target:this.element,attachment:j,classes:s,classPrefix:k,offset:this.config.offset,constraints:this.config.constraints}),d.reflow(f),this._tether.position(),a(f).addClass(q.IN);var l=function(){var c=b._hoverState;b._hoverState=null,a(b.element).trigger(b.constructor.Event.SHOWN),c===o.OUT&&b._leave(null,b)};d.supportsTransitionEnd()&&a(this.tip).hasClass(q.FADE)?a(this.tip).one(d.TRANSITION_END,l).emulateTransitionEnd(i._TRANSITION_DURATION):l()}}},{key:"hide",value:function(b){var c=this,e=this.getTipElement(),f=a.Event(this.constructor.Event.HIDE),g=function(){c._hoverState!==o.IN&&e.parentNode&&e.parentNode.removeChild(e),c.element.removeAttribute("aria-describedby"),a(c.element).trigger(c.constructor.Event.HIDDEN),c.cleanupTether(),b&&b()};a(this.element).trigger(f),f.isDefaultPrevented()||(a(e).removeClass(q.IN),d.supportsTransitionEnd()&&a(this.tip).hasClass(q.FADE)?a(e).one(d.TRANSITION_END,g).emulateTransitionEnd(j):g(),this._hoverState="")}},{key:"isWithContent",value:function(){return!!this.getTitle()}},{key:"getTipElement",value:function(){return this.tip=this.tip||a(this.config.template)[0]}},{key:"setContent",value:function(){var b=this.getTipElement(),c=this.getTitle(),d=this.config.html?"innerHTML":"innerText";a(b).find(r.TOOLTIP_INNER)[0][d]=c,a(b).removeClass(q.FADE).removeClass(q.IN),this.cleanupTether()}},{key:"getTitle",value:function(){var a=this.element.getAttribute("data-original-title");return a||(a="function"==typeof this.config.title?this.config.title.call(this.element):this.config.title),a}},{key:"cleanupTether",value:function(){this._tether&&(this._tether.destroy(),a(this.element).removeClass(this._removeTetherClasses),a(this.tip).removeClass(this._removeTetherClasses))}},{key:"_getAttachment",value:function(a){return n[a.toUpperCase()]}},{key:"_setListeners",value:function(){var b=this,c=this.config.trigger.split(" ");c.forEach(function(c){if("click"===c)a(b.element).on(b.constructor.Event.CLICK,b.config.selector,a.proxy(b.toggle,b));else if(c!==t.MANUAL){var d=c==t.HOVER?b.constructor.Event.MOUSEENTER:b.constructor.Event.FOCUSIN,e=c==t.HOVER?b.constructor.Event.MOUSELEAVE:b.constructor.Event.FOCUSOUT;a(b.element).on(d,b.config.selector,a.proxy(b._enter,b)).on(e,b.config.selector,a.proxy(b._leave,b))}}),this.config.selector?this.config=a.extend({},this.config,{trigger:"manual",selector:""}):this._fixTitle()}},{key:"_removeTetherClasses",value:function(a,b){return((b.baseVal||b).match(new RegExp("(^|\\s)"+k+"-\\S+","g"))||[]).join(" ")}},{key:"_fixTitle",value:function(){var a=typeof this.element.getAttribute("data-original-title");(this.element.getAttribute("title")||"string"!==a)&&(this.element.setAttribute("data-original-title",this.element.getAttribute("title")||""),this.element.setAttribute("title",""))}},{key:"_enter",value:function(b,c){var d=this.constructor.DATA_KEY;return c=c||a(b.currentTarget).data(d),c||(c=new this.constructor(b.currentTarget,this._getDelegateConfig()),a(b.currentTarget).data(d,c)),b&&(c._activeTrigger["focusin"==b.type?t.FOCUS:t.HOVER]=!0),a(c.getTipElement()).hasClass(q.IN)||c._hoverState===o.IN?void(c._hoverState=o.IN):(clearTimeout(c._timeout),c._hoverState=o.IN,c.config.delay&&c.config.delay.show?void(c._timeout=setTimeout(function(){c._hoverState===o.IN&&c.show()},c.config.delay.show)):void c.show())}},{key:"_leave",value:function(b,c){var d=this.constructor.DATA_KEY;return c=c||a(b.currentTarget).data(d),c||(c=new this.constructor(b.currentTarget,this._getDelegateConfig()),a(b.currentTarget).data(d,c)),b&&(c._activeTrigger["focusout"==b.type?t.FOCUS:t.HOVER]=!1),c._isWithActiveTrigger()?void 0:(clearTimeout(c._timeout),c._hoverState=o.OUT,c.config.delay&&c.config.delay.hide?void(c._timeout=setTimeout(function(){c._hoverState===o.OUT&&c.hide()},c.config.delay.hide)):void c.hide())}},{key:"_isWithActiveTrigger",value:function(){for(var a in this._activeTrigger)if(this._activeTrigger[a])return!0;return!1}},{key:"_getConfig",value:function(b){return b=a.extend({},this.constructor.Default,a(this.element).data(),b),b.delay&&"number"==typeof b.delay&&(b.delay={show:b.delay,hide:b.delay}),d.typeCheckConfig(e,b,this.constructor.DefaultType),b}},{key:"_getDelegateConfig",value:function(){var a={};if(this.config)for(var b in this.config){var c=this.config[b];this.constructor.Default[b]!==c&&(a[b]=c)}return a}}],[{key:"VERSION",get:function(){return f}},{key:"Default",get:function(){return l}},{key:"NAME",get:function(){return e}},{key:"DATA_KEY",get:function(){return g}},{key:"Event",get:function(){return p}},{key:"EVENT_KEY",get:function(){return h}},{key:"DefaultType",get:function(){return m}},{key:"_jQueryInterface",value:function(b){return this.each(function(){var c=a(this).data(g),d="object"==typeof b?b:null;(c||!/destroy|hide/.test(b))&&(c||(c=new i(this,d),a(this).data(g,c)),"string"==typeof b&&c[b]())})}}]),i}();return a.fn[e]=u._jQueryInterface,a.fn[e].Constructor=u,a.fn[e].noConflict=function(){return a.fn[e]=i,u._jQueryInterface},u}(jQuery));!function(d){var f="popover",g="4.0.0",h="bs.popover",i="."+h,j=d.fn[f],k=d.extend({},e.Default,{placement:"right",trigger:"click",content:"",template:'<div class="popover" role="tooltip"><div class="popover-arrow"></div><h3 class="popover-title"></h3><div class="popover-content"></div></div>'}),l=d.extend({},e.DefaultType,{content:"(string|function)"}),m={FADE:"fade",IN:"in"},n={TITLE:".popover-title",CONTENT:".popover-content",ARROW:".popover-arrow"},o={HIDE:"hide"+i,HIDDEN:"hidden"+i,SHOW:"show"+i,SHOWN:"shown"+i,INSERTED:"inserted"+i,CLICK:"click"+i,FOCUSIN:"focusin"+i,FOCUSOUT:"focusout"+i,MOUSEENTER:"mouseenter"+i,MOUSELEAVE:"mouseleave"+i},p=function(e){function j(){b(this,j),null!=e&&e.apply(this,arguments)}return a(j,e),c(j,[{key:"isWithContent",value:function(){return this.getTitle()||this._getContent()}},{key:"getTipElement",value:function(){return this.tip=this.tip||d(this.config.template)[0]}},{key:"setContent",value:function(){var a=this.getTipElement(),b=this.getTitle(),c=this._getContent(),e=d(a).find(n.TITLE)[0];e&&(e[this.config.html?"innerHTML":"innerText"]=b),d(a).find(n.CONTENT).children().detach().end()[this.config.html?"string"==typeof c?"html":"append":"text"](c),d(a).removeClass(m.FADE).removeClass(m.IN),this.cleanupTether()}},{key:"_getContent",value:function(){return this.element.getAttribute("data-content")||("function"==typeof this.config.content?this.config.content.call(this.element):this.config.content)}}],[{key:"VERSION",get:function(){return g}},{key:"Default",get:function(){return k}},{key:"NAME",get:function(){return f}},{key:"DATA_KEY",get:function(){return h}},{key:"Event",get:function(){return o}},{key:"EVENT_KEY",get:function(){return i}},{key:"DefaultType",get:function(){return l}},{key:"_jQueryInterface",value:function(a){return this.each(function(){var b=d(this).data(h),c="object"==typeof a?a:null;(b||!/destroy|hide/.test(a))&&(b||(b=new j(this,c),d(this).data(h,b)),"string"==typeof a&&b[a]())})}}]),j}(e);return d.fn[f]=p._jQueryInterface,d.fn[f].Constructor=p,d.fn[f].noConflict=function(){return d.fn[f]=j,p._jQueryInterface},p}(jQuery)}}(jQuery);
\ No newline at end of file
index a2faa92f0e565aaafcea23859a439fb917c775fc..1352a5dc2d9641630d4644891d8118edecd19fd7 100644 (file)
       wrap: true
     };
 
+    var DefaultType = {
+      interval: '(number|boolean)',
+      keyboard: 'boolean',
+      slide: '(boolean|string)',
+      pause: '(string|boolean)',
+      wrap: 'boolean'
+    };
+
     var Direction = {
       NEXT: 'next',
       PREVIOUS: 'prev'
         this._isPaused = false;
         this._isSliding = false;
 
-        this._config = config;
+        this._config = this._getConfig(config);
         this._element = $(element)[0];
         this._indicatorsElement = $(this._element).find(Selector.INDICATORS)[0];
 
           this._indicatorsElement = null;
         }
       }, {
-        key: '_addEventListeners',
+        key: '_getConfig',
 
         // private
 
+        value: function _getConfig(config) {
+          config = $.extend({}, Default, config);
+          _Util.typeCheckConfig(NAME, config, DefaultType);
+          return config;
+        }
+      }, {
+        key: '_addEventListeners',
         value: function _addEventListeners() {
           if (this._config.keyboard) {
             $(this._element).on(Event.KEYDOWN, $.proxy(this._keydown, this));
index 23784388ed931680fe8abfded6027838c0300236..35c29c984866fbcfb2b3a172081abd9f0f5e7fd9 100644 (file)
 
     var Default = {
       toggle: true,
-      parent: null
+      parent: ''
+    };
+
+    var DefaultType = {
+      toggle: 'boolean',
+      parent: 'string'
     };
 
     var Event = {
@@ -86,7 +91,7 @@
 
         this._isTransitioning = false;
         this._element = element;
-        this._config = $.extend({}, Default, config);
+        this._config = this._getConfig(config);
         this._triggerArray = $.makeArray($('[data-toggle="collapse"][href="#' + element.id + '"],' + ('[data-toggle="collapse"][data-target="#' + element.id + '"]')));
 
         this._parent = this._config.parent ? this._getParent() : null;
           this._isTransitioning = null;
         }
       }, {
-        key: '_getDimension',
+        key: '_getConfig',
 
         // private
 
+        value: function _getConfig(config) {
+          config = $.extend({}, Default, config);
+          config.toggle = !!config.toggle; // coerce string values
+          _Util.typeCheckConfig(NAME, config, DefaultType);
+          return config;
+        }
+      }, {
+        key: '_getDimension',
         value: function _getDimension() {
           var hasWidth = $(this._element).hasClass(Dimension.WIDTH);
           return hasWidth ? Dimension.WIDTH : Dimension.HEIGHT;
index ca518198cb7cfa83a3c21dd8bd376c2f54e57e41..7d419695714ed894032028b35914b36d9f2ef4f7 100644 (file)
     var Default = {
       backdrop: true,
       keyboard: true,
+      focus: true,
       show: true
     };
 
+    var DefaultType = {
+      backdrop: '(boolean|string)',
+      keyboard: 'boolean',
+      focus: 'boolean',
+      show: 'boolean'
+    };
+
     var Event = {
       HIDE: 'hide' + EVENT_KEY,
       HIDDEN: 'hidden' + EVENT_KEY,
@@ -89,7 +97,7 @@
       function Modal(element, config) {
         _classCallCheck(this, Modal);
 
-        this._config = config;
+        this._config = this._getConfig(config);
         this._element = element;
         this._dialog = $(element).find(Selector.DIALOG)[0];
         this._backdrop = null;
           this._scrollbarWidth = null;
         }
       }, {
-        key: '_showElement',
+        key: '_getConfig',
 
         // private
 
+        value: function _getConfig(config) {
+          config = $.extend({}, Default, config);
+          _Util.typeCheckConfig(NAME, config, DefaultType);
+          return config;
+        }
+      }, {
+        key: '_showElement',
         value: function _showElement(relatedTarget) {
           var _this2 = this;
 
 
           $(this._element).addClass(ClassName.IN);
 
-          this._enforceFocus();
+          if (this._config.focus) this._enforceFocus();
 
           var shownEvent = $.Event(Event.SHOWN, {
             relatedTarget: relatedTarget
           });
 
           var transitionComplete = function transitionComplete() {
-            _this2._element.focus();
+            if (_this2._config.focus) _this2._element.focus();
             $(_this2._element).trigger(shownEvent);
           };
 
index fa03c822902d65949ee30e039495397c2dd2d7ba..8be0b805660fde2832a87bf4761112a109d36260 100644 (file)
       template: '<div class="popover" role="tooltip">' + '<div class="popover-arrow"></div>' + '<h3 class="popover-title"></h3>' + '<div class="popover-content"></div></div>'
     });
 
+    var DefaultType = $.extend({}, _Tooltip2.DefaultType, {
+      content: '(string|function)'
+    });
+
     var ClassName = {
       FADE: 'fade',
       IN: 'in'
         get: function () {
           return EVENT_KEY;
         }
+      }, {
+        key: 'DefaultType',
+        get: function () {
+          return DefaultType;
+        }
       }, {
         key: '_jQueryInterface',
 
index d83153caa2282b05a145d60fc055ad3f04d56dfc..feb77672cc05f3a7d242ce2e212824753433f68b 100644 (file)
     var JQUERY_NO_CONFLICT = $.fn[NAME];
 
     var Default = {
-      offset: 10
+      offset: 10,
+      method: 'auto',
+      target: ''
+    };
+
+    var DefaultType = {
+      offset: 'number',
+      method: 'string',
+      target: '(string|element)'
     };
 
     var Event = {
     var Selector = {
       DATA_SPY: '[data-spy="scroll"]',
       ACTIVE: '.active',
+      LI: 'li',
       LI_DROPDOWN: 'li.dropdown',
-      LI: 'li'
+      NAV_ANCHORS: '.nav li > a'
+    };
+
+    var OffsetMethod = {
+      OFFSET: 'offset',
+      POSITION: 'position'
     };
 
     /**
@@ -77,8 +91,8 @@
 
         this._element = element;
         this._scrollElement = element.tagName === 'BODY' ? window : element;
-        this._config = $.extend({}, Default, config);
-        this._selector = '' + (this._config.target || '') + ' .nav li > a';
+        this._config = this._getConfig(config);
+        this._selector = '' + this._config.target + ' ' + Selector.NAV_ANCHORS;
         this._offsets = [];
         this._targets = [];
         this._activeTarget = null;
         value: function refresh() {
           var _this = this;
 
-          var offsetMethod = 'offset';
-          var offsetBase = 0;
+          var autoMethod = this._scrollElement !== this._scrollElement.window ? OffsetMethod.POSITION : OffsetMethod.OFFSET;
 
-          if (this._scrollElement !== this._scrollElement.window) {
-            offsetMethod = 'position';
-            offsetBase = this._getScrollTop();
-          }
+          var offsetMethod = this._config.method === 'auto' ? autoMethod : this._config.method;
+
+          var offsetBase = offsetMethod === OffsetMethod.POSITION ? this._getScrollTop() : 0;
 
           this._offsets = [];
           this._targets = [];
           this._scrollHeight = null;
         }
       }, {
-        key: '_getScrollTop',
+        key: '_getConfig',
 
         // private
 
+        value: function _getConfig(config) {
+          config = $.extend({}, Default, config);
+
+          if (typeof config.target !== 'string') {
+            var id = $(config.target).attr('id');
+            if (!id) {
+              id = _Util.getUID(NAME);
+              $(config.target).attr('id', id);
+            }
+            config.target = '#' + id;
+          }
+
+          _Util.typeCheckConfig(NAME, config, DefaultType);
+
+          return config;
+        }
+      }, {
+        key: '_getScrollTop',
         value: function _getScrollTop() {
           return this._scrollElement === window ? this._scrollElement.scrollY : this._scrollElement.scrollTop;
         }
index fc1a546938d1a646efaac055b4b8d44ec6872549..3fbf4869c0c32ec155ce750e2cf9b1789047cfcd 100644 (file)
         get: function () {
           return VERSION;
         }
-      }, {
-        key: 'Default',
-        get: function () {
-          return Default;
-        }
       }, {
         key: '_jQueryInterface',
 
index a2c692ecc48549574d7cbd09b46be2af1915db5f..07142ccd335444d0c692dbba42ba1cf28d1edb9a 100644 (file)
       selector: false,
       placement: 'top',
       offset: '0 0',
-      constraints: null
+      constraints: []
+    };
+
+    var DefaultType = {
+      animation: 'boolean',
+      template: 'string',
+      title: '(string|function)',
+      trigger: 'string',
+      delay: '(number|object)',
+      html: 'boolean',
+      selector: '(string|boolean)',
+      placement: '(string|function)',
+      offset: 'string',
+      constraints: 'array'
     };
 
     var AttachmentMap = {
             };
           }
 
+          _Util.typeCheckConfig(NAME, config, this.constructor.DefaultType);
+
           return config;
         }
       }, {
         get: function () {
           return EVENT_KEY;
         }
+      }, {
+        key: 'DefaultType',
+        get: function () {
+          return DefaultType;
+        }
       }, {
         key: '_jQueryInterface',
 
index ac8d8d1146422875d24c18dc6d616278028fde12..a813505c840c1f7fde90b80381dbce7ab6bd8a0b 100644 (file)
       transition: 'transitionend'
     };
 
+    // shoutout AngusCroll (https://goo.gl/pxwQGp)
+    function toType(obj) {
+      return ({}).toString.call(obj).match(/\s([a-zA-Z]+)/)[1].toLowerCase();
+    }
+
+    function isElement(obj) {
+      return (obj[0] || obj).nodeType;
+    }
+
     function getSpecialTransitionEndEvent() {
       return {
         bindType: transition.end,
 
       supportsTransitionEnd: function supportsTransitionEnd() {
         return !!transition;
+      },
+
+      typeCheckConfig: function typeCheckConfig(componentName, config, configTypes) {
+
+        for (var property in configTypes) {
+          var expectedTypes = configTypes[property];
+          var value = config[property];
+          var valueType = undefined;
+
+          if (value && isElement(value)) valueType = 'element';else valueType = toType(value);
+
+          if (!new RegExp(expectedTypes).test(valueType)) {
+            throw new Error('' + componentName.toUpperCase() + ': ' + ('Option "' + property + '" provided type "' + valueType + '" ') + ('but expected type "' + expectedTypes + '".'));
+          }
+        }
       }
 
     };
index d12b95331ac90c76b23e41dbed5a9c9d5e8c07a7..029c69fdba9c90d60fbef1395bc327442672ea62 100644 (file)
@@ -39,7 +39,7 @@ var Carousel = (function ($) {
     interval: '(number|boolean)',
     keyboard: 'boolean',
     slide: '(boolean|string)',
-    pause: 'string',
+    pause: '(string|boolean)',
     wrap: 'boolean'
   };
 
index a1f88ef4534f6016af4457050e565b09ca0f395f..0978f4836febf93699a69336543edded126d7dfa 100644 (file)
@@ -1 +1 @@
-{"version":3,"sources":["js/src/carousel.js"],"names":[],"mappings":"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","file":"js/src/carousel.js","sourcesContent":["import Util from './util'\n\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0): carousel.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Carousel = (($) => {\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * Constants\n   * ------------------------------------------------------------------------\n   */\n\n  const NAME                = 'carousel'\n  const VERSION             = '4.0.0'\n  const DATA_KEY            = 'bs.carousel'\n  const EVENT_KEY           = `.${DATA_KEY}`\n  const DATA_API_KEY        = '.data-api'\n  const JQUERY_NO_CONFLICT  = $.fn[NAME]\n  const TRANSITION_DURATION = 600\n\n  const Default = {\n    interval : 5000,\n    keyboard : true,\n    slide    : false,\n    pause    : 'hover',\n    wrap     : true\n  }\n\n  const DefaultType = {\n    interval : '(number|boolean)',\n    keyboard : 'boolean',\n    slide    : '(boolean|string)',\n    pause    : 'string',\n    wrap     : 'boolean'\n  }\n\n  const Direction = {\n    NEXT     : 'next',\n    PREVIOUS : 'prev'\n  }\n\n  const Event = {\n    SLIDE          : `slide${EVENT_KEY}`,\n    SLID           : `slid${EVENT_KEY}`,\n    KEYDOWN        : `keydown${EVENT_KEY}`,\n    MOUSEENTER     : `mouseenter${EVENT_KEY}`,\n    MOUSELEAVE     : `mouseleave${EVENT_KEY}`,\n    LOAD_DATA_API  : `load${EVENT_KEY}${DATA_API_KEY}`,\n    CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`\n  }\n\n  const ClassName = {\n    CAROUSEL : 'carousel',\n    ACTIVE   : 'active',\n    SLIDE    : 'slide',\n    RIGHT    : 'right',\n    LEFT     : 'left',\n    ITEM     : 'carousel-item'\n  }\n\n  const Selector = {\n    ACTIVE      : '.active',\n    ACTIVE_ITEM : '.active.carousel-item',\n    ITEM        : '.carousel-item',\n    NEXT_PREV   : '.next, .prev',\n    INDICATORS  : '.carousel-indicators',\n    DATA_SLIDE  : '[data-slide], [data-slide-to]',\n    DATA_RIDE   : '[data-ride=\"carousel\"]'\n  }\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * Class Definition\n   * ------------------------------------------------------------------------\n   */\n\n  class Carousel {\n\n    constructor(element, config) {\n      this._items             = null\n      this._interval          = null\n      this._activeElement     = null\n\n      this._isPaused          = false\n      this._isSliding         = false\n\n      this._config            = this._getConfig(config)\n      this._element           = $(element)[0]\n      this._indicatorsElement = $(this._element).find(Selector.INDICATORS)[0]\n\n      this._addEventListeners()\n    }\n\n\n    // getters\n\n    static get VERSION() {\n      return VERSION\n    }\n\n    static get Default() {\n      return Default\n    }\n\n\n    // public\n\n    next() {\n      if (!this._isSliding) {\n        this._slide(Direction.NEXT)\n      }\n    }\n\n    prev() {\n      if (!this._isSliding) {\n        this._slide(Direction.PREVIOUS)\n      }\n    }\n\n    pause(event) {\n      if (!event) {\n        this._isPaused = true\n      }\n\n      if ($(this._element).find(Selector.NEXT_PREV)[0] &&\n        Util.supportsTransitionEnd()) {\n        Util.triggerTransitionEnd(this._element)\n        this.cycle(true)\n      }\n\n      clearInterval(this._interval)\n      this._interval = null\n    }\n\n    cycle(event) {\n      if (!event) {\n        this._isPaused = false\n      }\n\n      if (this._interval) {\n        clearInterval(this._interval)\n        this._interval = null\n      }\n\n      if (this._config.interval && !this._isPaused) {\n        this._interval = setInterval(\n          $.proxy(this.next, this), this._config.interval\n        )\n      }\n    }\n\n    to(index) {\n      this._activeElement = $(this._element).find(Selector.ACTIVE_ITEM)[0]\n\n      let activeIndex = this._getItemIndex(this._activeElement)\n\n      if (index > (this._items.length - 1) || index < 0) {\n        return\n      }\n\n      if (this._isSliding) {\n        $(this._element).one(Event.SLID, () => this.to(index))\n        return\n      }\n\n      if (activeIndex == index) {\n        this.pause()\n        this.cycle()\n        return\n      }\n\n      var direction = index > activeIndex ?\n        Direction.NEXT :\n        Direction.PREVIOUS\n\n      this._slide(direction, this._items[index])\n    }\n\n    dispose() {\n      $(this._element).off(EVENT_KEY)\n      $.removeData(this._element, DATA_KEY)\n\n      this._items             = null\n      this._config            = null\n      this._element           = null\n      this._interval          = null\n      this._isPaused          = null\n      this._isSliding         = null\n      this._activeElement     = null\n      this._indicatorsElement = null\n    }\n\n\n    // private\n\n    _getConfig(config) {\n      config = $.extend({}, Default, config)\n      Util.typeCheckConfig(NAME, config, DefaultType)\n      return config\n    }\n\n    _addEventListeners() {\n      if (this._config.keyboard) {\n        $(this._element)\n          .on(Event.KEYDOWN, $.proxy(this._keydown, this))\n      }\n\n      if (this._config.pause == 'hover' &&\n        !('ontouchstart' in document.documentElement)) {\n        $(this._element)\n          .on(Event.MOUSEENTER, $.proxy(this.pause, this))\n          .on(Event.MOUSELEAVE, $.proxy(this.cycle, this))\n      }\n    }\n\n    _keydown(event) {\n      event.preventDefault()\n\n      if (/input|textarea/i.test(event.target.tagName)) return\n\n      switch (event.which) {\n        case 37: this.prev(); break\n        case 39: this.next(); break\n        default: return\n      }\n    }\n\n    _getItemIndex(element) {\n      this._items = $.makeArray($(element).parent().find(Selector.ITEM))\n      return this._items.indexOf(element)\n    }\n\n    _getItemByDirection(direction, activeElement) {\n      let isNextDirection = direction === Direction.NEXT\n      let isPrevDirection = direction === Direction.PREVIOUS\n      let activeIndex     = this._getItemIndex(activeElement)\n      let lastItemIndex   = (this._items.length - 1)\n      let isGoingToWrap   = (isPrevDirection && activeIndex === 0) ||\n                            (isNextDirection && activeIndex == lastItemIndex)\n\n      if (isGoingToWrap && !this._config.wrap) {\n        return activeElement\n      }\n\n      let delta     = direction == Direction.PREVIOUS ? -1 : 1\n      let itemIndex = (activeIndex + delta) % this._items.length\n\n      return itemIndex === -1 ?\n        this._items[this._items.length - 1] : this._items[itemIndex]\n    }\n\n\n    _triggerSlideEvent(relatedTarget, directionalClassname) {\n      let slideEvent = $.Event(Event.SLIDE, {\n        relatedTarget: relatedTarget,\n        direction: directionalClassname\n      })\n\n      $(this._element).trigger(slideEvent)\n\n      return slideEvent\n    }\n\n    _setActiveIndicatorElement(element) {\n      if (this._indicatorsElement) {\n        $(this._indicatorsElement)\n          .find(Selector.ACTIVE)\n          .removeClass(ClassName.ACTIVE)\n\n        let nextIndicator = this._indicatorsElement.children[\n          this._getItemIndex(element)\n        ]\n\n        if (nextIndicator) {\n          $(nextIndicator).addClass(ClassName.ACTIVE)\n        }\n      }\n    }\n\n    _slide(direction, element) {\n      let activeElement = $(this._element).find(Selector.ACTIVE_ITEM)[0]\n      let nextElement   = element || activeElement &&\n        this._getItemByDirection(direction, activeElement)\n\n      let isCycling = !!this._interval\n\n      let directionalClassName = direction == Direction.NEXT ?\n        ClassName.LEFT :\n        ClassName.RIGHT\n\n      if (nextElement && $(nextElement).hasClass(ClassName.ACTIVE)) {\n        this._isSliding = false\n        return\n      }\n\n      let slideEvent = this._triggerSlideEvent(nextElement, directionalClassName)\n      if (slideEvent.isDefaultPrevented()) {\n        return\n      }\n\n      if (!activeElement || !nextElement) {\n        // some weirdness is happening, so we bail\n        return\n      }\n\n      this._isSliding = true\n\n      if (isCycling) {\n        this.pause()\n      }\n\n      this._setActiveIndicatorElement(nextElement)\n\n      var slidEvent = $.Event(Event.SLID, {\n        relatedTarget: nextElement,\n        direction: directionalClassName\n      })\n\n      if (Util.supportsTransitionEnd() &&\n        $(this._element).hasClass(ClassName.SLIDE)) {\n\n        $(nextElement).addClass(direction)\n\n        Util.reflow(nextElement)\n\n        $(activeElement).addClass(directionalClassName)\n        $(nextElement).addClass(directionalClassName)\n\n        $(activeElement)\n          .one(Util.TRANSITION_END, () => {\n            $(nextElement)\n              .removeClass(directionalClassName)\n              .removeClass(direction)\n\n            $(nextElement).addClass(ClassName.ACTIVE)\n\n            $(activeElement)\n              .removeClass(ClassName.ACTIVE)\n              .removeClass(direction)\n              .removeClass(directionalClassName)\n\n            this._isSliding = false\n\n            setTimeout(() => $(this._element).trigger(slidEvent), 0)\n\n          })\n          .emulateTransitionEnd(TRANSITION_DURATION)\n\n      } else {\n        $(activeElement).removeClass(ClassName.ACTIVE)\n        $(nextElement).addClass(ClassName.ACTIVE)\n\n        this._isSliding = false\n        $(this._element).trigger(slidEvent)\n      }\n\n      if (isCycling) {\n        this.cycle()\n      }\n    }\n\n\n    // static\n\n    static _jQueryInterface(config) {\n      return this.each(function () {\n        let data    = $(this).data(DATA_KEY)\n        let _config = $.extend({}, Default, $(this).data())\n\n        if (typeof config === 'object') {\n          $.extend(_config, config)\n        }\n\n        let action = typeof config === 'string' ? config : _config.slide\n\n        if (!data) {\n          data = new Carousel(this, _config)\n          $(this).data(DATA_KEY, data)\n        }\n\n        if (typeof config == 'number') {\n          data.to(config)\n\n        } else if (action) {\n          data[action]()\n\n        } else if (_config.interval) {\n          data.pause()\n          data.cycle()\n        }\n      })\n    }\n\n    static _dataApiClickHandler(event) {\n      let selector = Util.getSelectorFromElement(this)\n\n      if (!selector) {\n        return\n      }\n\n      let target = $(selector)[0]\n\n      if (!target || !$(target).hasClass(ClassName.CAROUSEL)) {\n        return\n      }\n\n      let config = $.extend({}, $(target).data(), $(this).data())\n\n      let slideIndex = this.getAttribute('data-slide-to')\n      if (slideIndex) {\n        config.interval = false\n      }\n\n      Carousel._jQueryInterface.call($(target), config)\n\n      if (slideIndex) {\n        $(target).data(DATA_KEY).to(slideIndex)\n      }\n\n      event.preventDefault()\n    }\n\n  }\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * Data Api implementation\n   * ------------------------------------------------------------------------\n   */\n\n  $(document)\n    .on(Event.CLICK_DATA_API, Selector.DATA_SLIDE, Carousel._dataApiClickHandler)\n\n  $(window).on(Event.LOAD_DATA_API, function () {\n    $(Selector.DATA_RIDE).each(function () {\n      let $carousel = $(this)\n      Carousel._jQueryInterface.call($carousel, $carousel.data())\n    })\n  })\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * jQuery\n   * ------------------------------------------------------------------------\n   */\n\n  $.fn[NAME]             = Carousel._jQueryInterface\n  $.fn[NAME].Constructor = Carousel\n  $.fn[NAME].noConflict  = function () {\n    $.fn[NAME] = JQUERY_NO_CONFLICT\n    return Carousel._jQueryInterface\n  }\n\n  return Carousel\n\n})(jQuery)\n\nexport default Carousel\n"]}
\ No newline at end of file
+{"version":3,"sources":["js/src/carousel.js"],"names":[],"mappings":"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","file":"js/src/carousel.js","sourcesContent":["import Util from './util'\n\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0): carousel.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Carousel = (($) => {\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * Constants\n   * ------------------------------------------------------------------------\n   */\n\n  const NAME                = 'carousel'\n  const VERSION             = '4.0.0'\n  const DATA_KEY            = 'bs.carousel'\n  const EVENT_KEY           = `.${DATA_KEY}`\n  const DATA_API_KEY        = '.data-api'\n  const JQUERY_NO_CONFLICT  = $.fn[NAME]\n  const TRANSITION_DURATION = 600\n\n  const Default = {\n    interval : 5000,\n    keyboard : true,\n    slide    : false,\n    pause    : 'hover',\n    wrap     : true\n  }\n\n  const DefaultType = {\n    interval : '(number|boolean)',\n    keyboard : 'boolean',\n    slide    : '(boolean|string)',\n    pause    : '(string|boolean)',\n    wrap     : 'boolean'\n  }\n\n  const Direction = {\n    NEXT     : 'next',\n    PREVIOUS : 'prev'\n  }\n\n  const Event = {\n    SLIDE          : `slide${EVENT_KEY}`,\n    SLID           : `slid${EVENT_KEY}`,\n    KEYDOWN        : `keydown${EVENT_KEY}`,\n    MOUSEENTER     : `mouseenter${EVENT_KEY}`,\n    MOUSELEAVE     : `mouseleave${EVENT_KEY}`,\n    LOAD_DATA_API  : `load${EVENT_KEY}${DATA_API_KEY}`,\n    CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`\n  }\n\n  const ClassName = {\n    CAROUSEL : 'carousel',\n    ACTIVE   : 'active',\n    SLIDE    : 'slide',\n    RIGHT    : 'right',\n    LEFT     : 'left',\n    ITEM     : 'carousel-item'\n  }\n\n  const Selector = {\n    ACTIVE      : '.active',\n    ACTIVE_ITEM : '.active.carousel-item',\n    ITEM        : '.carousel-item',\n    NEXT_PREV   : '.next, .prev',\n    INDICATORS  : '.carousel-indicators',\n    DATA_SLIDE  : '[data-slide], [data-slide-to]',\n    DATA_RIDE   : '[data-ride=\"carousel\"]'\n  }\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * Class Definition\n   * ------------------------------------------------------------------------\n   */\n\n  class Carousel {\n\n    constructor(element, config) {\n      this._items             = null\n      this._interval          = null\n      this._activeElement     = null\n\n      this._isPaused          = false\n      this._isSliding         = false\n\n      this._config            = this._getConfig(config)\n      this._element           = $(element)[0]\n      this._indicatorsElement = $(this._element).find(Selector.INDICATORS)[0]\n\n      this._addEventListeners()\n    }\n\n\n    // getters\n\n    static get VERSION() {\n      return VERSION\n    }\n\n    static get Default() {\n      return Default\n    }\n\n\n    // public\n\n    next() {\n      if (!this._isSliding) {\n        this._slide(Direction.NEXT)\n      }\n    }\n\n    prev() {\n      if (!this._isSliding) {\n        this._slide(Direction.PREVIOUS)\n      }\n    }\n\n    pause(event) {\n      if (!event) {\n        this._isPaused = true\n      }\n\n      if ($(this._element).find(Selector.NEXT_PREV)[0] &&\n        Util.supportsTransitionEnd()) {\n        Util.triggerTransitionEnd(this._element)\n        this.cycle(true)\n      }\n\n      clearInterval(this._interval)\n      this._interval = null\n    }\n\n    cycle(event) {\n      if (!event) {\n        this._isPaused = false\n      }\n\n      if (this._interval) {\n        clearInterval(this._interval)\n        this._interval = null\n      }\n\n      if (this._config.interval && !this._isPaused) {\n        this._interval = setInterval(\n          $.proxy(this.next, this), this._config.interval\n        )\n      }\n    }\n\n    to(index) {\n      this._activeElement = $(this._element).find(Selector.ACTIVE_ITEM)[0]\n\n      let activeIndex = this._getItemIndex(this._activeElement)\n\n      if (index > (this._items.length - 1) || index < 0) {\n        return\n      }\n\n      if (this._isSliding) {\n        $(this._element).one(Event.SLID, () => this.to(index))\n        return\n      }\n\n      if (activeIndex == index) {\n        this.pause()\n        this.cycle()\n        return\n      }\n\n      var direction = index > activeIndex ?\n        Direction.NEXT :\n        Direction.PREVIOUS\n\n      this._slide(direction, this._items[index])\n    }\n\n    dispose() {\n      $(this._element).off(EVENT_KEY)\n      $.removeData(this._element, DATA_KEY)\n\n      this._items             = null\n      this._config            = null\n      this._element           = null\n      this._interval          = null\n      this._isPaused          = null\n      this._isSliding         = null\n      this._activeElement     = null\n      this._indicatorsElement = null\n    }\n\n\n    // private\n\n    _getConfig(config) {\n      config = $.extend({}, Default, config)\n      Util.typeCheckConfig(NAME, config, DefaultType)\n      return config\n    }\n\n    _addEventListeners() {\n      if (this._config.keyboard) {\n        $(this._element)\n          .on(Event.KEYDOWN, $.proxy(this._keydown, this))\n      }\n\n      if (this._config.pause == 'hover' &&\n        !('ontouchstart' in document.documentElement)) {\n        $(this._element)\n          .on(Event.MOUSEENTER, $.proxy(this.pause, this))\n          .on(Event.MOUSELEAVE, $.proxy(this.cycle, this))\n      }\n    }\n\n    _keydown(event) {\n      event.preventDefault()\n\n      if (/input|textarea/i.test(event.target.tagName)) return\n\n      switch (event.which) {\n        case 37: this.prev(); break\n        case 39: this.next(); break\n        default: return\n      }\n    }\n\n    _getItemIndex(element) {\n      this._items = $.makeArray($(element).parent().find(Selector.ITEM))\n      return this._items.indexOf(element)\n    }\n\n    _getItemByDirection(direction, activeElement) {\n      let isNextDirection = direction === Direction.NEXT\n      let isPrevDirection = direction === Direction.PREVIOUS\n      let activeIndex     = this._getItemIndex(activeElement)\n      let lastItemIndex   = (this._items.length - 1)\n      let isGoingToWrap   = (isPrevDirection && activeIndex === 0) ||\n                            (isNextDirection && activeIndex == lastItemIndex)\n\n      if (isGoingToWrap && !this._config.wrap) {\n        return activeElement\n      }\n\n      let delta     = direction == Direction.PREVIOUS ? -1 : 1\n      let itemIndex = (activeIndex + delta) % this._items.length\n\n      return itemIndex === -1 ?\n        this._items[this._items.length - 1] : this._items[itemIndex]\n    }\n\n\n    _triggerSlideEvent(relatedTarget, directionalClassname) {\n      let slideEvent = $.Event(Event.SLIDE, {\n        relatedTarget: relatedTarget,\n        direction: directionalClassname\n      })\n\n      $(this._element).trigger(slideEvent)\n\n      return slideEvent\n    }\n\n    _setActiveIndicatorElement(element) {\n      if (this._indicatorsElement) {\n        $(this._indicatorsElement)\n          .find(Selector.ACTIVE)\n          .removeClass(ClassName.ACTIVE)\n\n        let nextIndicator = this._indicatorsElement.children[\n          this._getItemIndex(element)\n        ]\n\n        if (nextIndicator) {\n          $(nextIndicator).addClass(ClassName.ACTIVE)\n        }\n      }\n    }\n\n    _slide(direction, element) {\n      let activeElement = $(this._element).find(Selector.ACTIVE_ITEM)[0]\n      let nextElement   = element || activeElement &&\n        this._getItemByDirection(direction, activeElement)\n\n      let isCycling = !!this._interval\n\n      let directionalClassName = direction == Direction.NEXT ?\n        ClassName.LEFT :\n        ClassName.RIGHT\n\n      if (nextElement && $(nextElement).hasClass(ClassName.ACTIVE)) {\n        this._isSliding = false\n        return\n      }\n\n      let slideEvent = this._triggerSlideEvent(nextElement, directionalClassName)\n      if (slideEvent.isDefaultPrevented()) {\n        return\n      }\n\n      if (!activeElement || !nextElement) {\n        // some weirdness is happening, so we bail\n        return\n      }\n\n      this._isSliding = true\n\n      if (isCycling) {\n        this.pause()\n      }\n\n      this._setActiveIndicatorElement(nextElement)\n\n      var slidEvent = $.Event(Event.SLID, {\n        relatedTarget: nextElement,\n        direction: directionalClassName\n      })\n\n      if (Util.supportsTransitionEnd() &&\n        $(this._element).hasClass(ClassName.SLIDE)) {\n\n        $(nextElement).addClass(direction)\n\n        Util.reflow(nextElement)\n\n        $(activeElement).addClass(directionalClassName)\n        $(nextElement).addClass(directionalClassName)\n\n        $(activeElement)\n          .one(Util.TRANSITION_END, () => {\n            $(nextElement)\n              .removeClass(directionalClassName)\n              .removeClass(direction)\n\n            $(nextElement).addClass(ClassName.ACTIVE)\n\n            $(activeElement)\n              .removeClass(ClassName.ACTIVE)\n              .removeClass(direction)\n              .removeClass(directionalClassName)\n\n            this._isSliding = false\n\n            setTimeout(() => $(this._element).trigger(slidEvent), 0)\n\n          })\n          .emulateTransitionEnd(TRANSITION_DURATION)\n\n      } else {\n        $(activeElement).removeClass(ClassName.ACTIVE)\n        $(nextElement).addClass(ClassName.ACTIVE)\n\n        this._isSliding = false\n        $(this._element).trigger(slidEvent)\n      }\n\n      if (isCycling) {\n        this.cycle()\n      }\n    }\n\n\n    // static\n\n    static _jQueryInterface(config) {\n      return this.each(function () {\n        let data    = $(this).data(DATA_KEY)\n        let _config = $.extend({}, Default, $(this).data())\n\n        if (typeof config === 'object') {\n          $.extend(_config, config)\n        }\n\n        let action = typeof config === 'string' ? config : _config.slide\n\n        if (!data) {\n          data = new Carousel(this, _config)\n          $(this).data(DATA_KEY, data)\n        }\n\n        if (typeof config == 'number') {\n          data.to(config)\n\n        } else if (action) {\n          data[action]()\n\n        } else if (_config.interval) {\n          data.pause()\n          data.cycle()\n        }\n      })\n    }\n\n    static _dataApiClickHandler(event) {\n      let selector = Util.getSelectorFromElement(this)\n\n      if (!selector) {\n        return\n      }\n\n      let target = $(selector)[0]\n\n      if (!target || !$(target).hasClass(ClassName.CAROUSEL)) {\n        return\n      }\n\n      let config = $.extend({}, $(target).data(), $(this).data())\n\n      let slideIndex = this.getAttribute('data-slide-to')\n      if (slideIndex) {\n        config.interval = false\n      }\n\n      Carousel._jQueryInterface.call($(target), config)\n\n      if (slideIndex) {\n        $(target).data(DATA_KEY).to(slideIndex)\n      }\n\n      event.preventDefault()\n    }\n\n  }\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * Data Api implementation\n   * ------------------------------------------------------------------------\n   */\n\n  $(document)\n    .on(Event.CLICK_DATA_API, Selector.DATA_SLIDE, Carousel._dataApiClickHandler)\n\n  $(window).on(Event.LOAD_DATA_API, function () {\n    $(Selector.DATA_RIDE).each(function () {\n      let $carousel = $(this)\n      Carousel._jQueryInterface.call($carousel, $carousel.data())\n    })\n  })\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * jQuery\n   * ------------------------------------------------------------------------\n   */\n\n  $.fn[NAME]             = Carousel._jQueryInterface\n  $.fn[NAME].Constructor = Carousel\n  $.fn[NAME].noConflict  = function () {\n    $.fn[NAME] = JQUERY_NO_CONFLICT\n    return Carousel._jQueryInterface\n  }\n\n  return Carousel\n\n})(jQuery)\n\nexport default Carousel\n"]}
\ No newline at end of file
index 596e8f9f74d1fdbf8bb068185aff918bd2ba3f7d..9db1b8e6032a8348d6d06d8d55e883584e009e6e 100644 (file)
@@ -29,12 +29,12 @@ var Collapse = (function ($) {
 
   var Default = {
     toggle: true,
-    parent: null
+    parent: ''
   };
 
   var DefaultType = {
     toggle: 'boolean',
-    parent: '(string|null)'
+    parent: 'string'
   };
 
   var Event = {
@@ -241,7 +241,7 @@ var Collapse = (function ($) {
 
       value: function _getConfig(config) {
         config = $.extend({}, Default, config);
-        config.toggle = !!config.toggle;
+        config.toggle = !!config.toggle; // coerce string values
         Util.typeCheckConfig(NAME, config, DefaultType);
         return config;
       }
index af69b6d5c9a553281114b984fe26f2757a30ed29..abd2bac68aa304a3e350ce70399544ed43314f04 100644 (file)
@@ -1 +1 @@
-{"version":3,"sources":["js/src/collapse.js"],"names":[],"mappings":"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","file":"js/src/collapse.js","sourcesContent":["import Util from './util'\n\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0): collapse.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Collapse = (($) => {\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * Constants\n   * ------------------------------------------------------------------------\n   */\n\n  const NAME                = 'collapse'\n  const VERSION             = '4.0.0'\n  const DATA_KEY            = 'bs.collapse'\n  const EVENT_KEY           = `.${DATA_KEY}`\n  const DATA_API_KEY        = '.data-api'\n  const JQUERY_NO_CONFLICT  = $.fn[NAME]\n  const TRANSITION_DURATION = 600\n\n  const Default = {\n    toggle : true,\n    parent : null\n  }\n\n  const DefaultType = {\n    toggle : 'boolean',\n    parent : '(string|null)'\n  }\n\n  const Event = {\n    SHOW           : `show${EVENT_KEY}`,\n    SHOWN          : `shown${EVENT_KEY}`,\n    HIDE           : `hide${EVENT_KEY}`,\n    HIDDEN         : `hidden${EVENT_KEY}`,\n    CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`\n  }\n\n  const ClassName = {\n    IN         : 'in',\n    COLLAPSE   : 'collapse',\n    COLLAPSING : 'collapsing',\n    COLLAPSED  : 'collapsed'\n  }\n\n  const Dimension = {\n    WIDTH  : 'width',\n    HEIGHT : 'height'\n  }\n\n  const Selector = {\n    ACTIVES     : '.panel > .in, .panel > .collapsing',\n    DATA_TOGGLE : '[data-toggle=\"collapse\"]'\n  }\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * Class Definition\n   * ------------------------------------------------------------------------\n   */\n\n  class Collapse {\n\n    constructor(element, config) {\n      this._isTransitioning = false\n      this._element         = element\n      this._config          = this._getConfig(config)\n      this._triggerArray    = $.makeArray($(\n        `[data-toggle=\"collapse\"][href=\"#${element.id}\"],` +\n        `[data-toggle=\"collapse\"][data-target=\"#${element.id}\"]`\n      ))\n\n      this._parent = this._config.parent ? this._getParent() : null\n\n      if (!this._config.parent) {\n        this._addAriaAndCollapsedClass(this._element, this._triggerArray)\n      }\n\n      if (this._config.toggle) {\n        this.toggle()\n      }\n    }\n\n\n    // getters\n\n    static get VERSION() {\n      return VERSION\n    }\n\n    static get Default() {\n      return Default\n    }\n\n\n    // public\n\n    toggle() {\n      if ($(this._element).hasClass(ClassName.IN)) {\n        this.hide()\n      } else {\n        this.show()\n      }\n    }\n\n    show() {\n      if (this._isTransitioning ||\n        $(this._element).hasClass(ClassName.IN)) {\n        return\n      }\n\n      let actives\n      let activesData\n\n      if (this._parent) {\n        actives = $.makeArray($(Selector.ACTIVES))\n        if (!actives.length) {\n          actives = null\n        }\n      }\n\n      if (actives) {\n        activesData = $(actives).data(DATA_KEY)\n        if (activesData && activesData._isTransitioning) {\n          return\n        }\n      }\n\n      let startEvent = $.Event(Event.SHOW)\n      $(this._element).trigger(startEvent)\n      if (startEvent.isDefaultPrevented()) {\n        return\n      }\n\n      if (actives) {\n        Collapse._jQueryInterface.call($(actives), 'hide')\n        if (!activesData) {\n          $(actives).data(DATA_KEY, null)\n        }\n      }\n\n      let dimension = this._getDimension()\n\n      $(this._element)\n        .removeClass(ClassName.COLLAPSE)\n        .addClass(ClassName.COLLAPSING)\n\n      this._element.style[dimension] = 0\n      this._element.setAttribute('aria-expanded', true)\n\n      if (this._triggerArray.length) {\n        $(this._triggerArray)\n          .removeClass(ClassName.COLLAPSED)\n          .attr('aria-expanded', true)\n      }\n\n      this.setTransitioning(true)\n\n      let complete = () => {\n        $(this._element)\n          .removeClass(ClassName.COLLAPSING)\n          .addClass(ClassName.COLLAPSE)\n          .addClass(ClassName.IN)\n\n        this._element.style[dimension] = ''\n\n        this.setTransitioning(false)\n\n        $(this._element).trigger(Event.SHOWN)\n      }\n\n      if (!Util.supportsTransitionEnd()) {\n        complete()\n        return\n      }\n\n      let scrollSize = 'scroll'\n        + (dimension[0].toUpperCase()\n        + dimension.slice(1))\n\n      $(this._element)\n        .one(Util.TRANSITION_END, complete)\n        .emulateTransitionEnd(TRANSITION_DURATION)\n\n      this._element.style[dimension] = this._element[scrollSize] + 'px'\n    }\n\n    hide() {\n      if (this._isTransitioning ||\n        !$(this._element).hasClass(ClassName.IN)) {\n        return\n      }\n\n      let startEvent = $.Event(Event.HIDE)\n      $(this._element).trigger(startEvent)\n      if (startEvent.isDefaultPrevented()) {\n        return\n      }\n\n      let dimension = this._getDimension()\n      let offsetDimension = dimension === Dimension.WIDTH ?\n        'offsetWidth' : 'offsetHeight'\n\n      this._element.style[dimension] = this._element[offsetDimension] + 'px'\n\n      Util.reflow(this._element)\n\n      $(this._element)\n        .addClass(ClassName.COLLAPSING)\n        .removeClass(ClassName.COLLAPSE)\n        .removeClass(ClassName.IN)\n\n      this._element.setAttribute('aria-expanded', false)\n\n      if (this._triggerArray.length) {\n        $(this._triggerArray)\n          .addClass(ClassName.COLLAPSED)\n          .attr('aria-expanded', false)\n      }\n\n      this.setTransitioning(true)\n\n      let complete = () => {\n        this.setTransitioning(false)\n        $(this._element)\n          .removeClass(ClassName.COLLAPSING)\n          .addClass(ClassName.COLLAPSE)\n          .trigger(Event.HIDDEN)\n      }\n\n      this._element.style[dimension] = 0\n\n      if (!Util.supportsTransitionEnd()) {\n        return complete()\n      }\n\n      $(this._element)\n        .one(Util.TRANSITION_END, complete)\n        .emulateTransitionEnd(TRANSITION_DURATION)\n    }\n\n    setTransitioning(isTransitioning) {\n      this._isTransitioning = isTransitioning\n    }\n\n    dispose() {\n      $.removeData(this._element, DATA_KEY)\n\n      this._config          = null\n      this._parent          = null\n      this._element         = null\n      this._triggerArray    = null\n      this._isTransitioning = null\n    }\n\n\n    // private\n\n    _getConfig(config) {\n      config = $.extend({}, Default, config)\n      config.toggle = !!config.toggle\n      Util.typeCheckConfig(NAME, config, DefaultType)\n      return config\n    }\n\n    _getDimension() {\n      let hasWidth = $(this._element).hasClass(Dimension.WIDTH)\n      return hasWidth ? Dimension.WIDTH : Dimension.HEIGHT\n    }\n\n    _getParent() {\n      let parent   = $(this._config.parent)[0]\n      let selector =\n        `[data-toggle=\"collapse\"][data-parent=\"${this._config.parent}\"]`\n\n      $(parent).find(selector).each((i, element) => {\n        this._addAriaAndCollapsedClass(\n          Collapse._getTargetFromElement(element),\n          [element]\n        )\n      })\n\n      return parent\n    }\n\n    _addAriaAndCollapsedClass(element, triggerArray) {\n      if (element) {\n        let isOpen = $(element).hasClass(ClassName.IN)\n        element.setAttribute('aria-expanded', isOpen)\n\n        if (triggerArray.length) {\n          $(triggerArray)\n            .toggleClass(ClassName.COLLAPSED, !isOpen)\n            .attr('aria-expanded', isOpen)\n        }\n      }\n    }\n\n\n    // static\n\n    static _getTargetFromElement(element) {\n      let selector = Util.getSelectorFromElement(element)\n      return selector ? $(selector)[0] : null\n    }\n\n    static _jQueryInterface(config) {\n      return this.each(function () {\n        let $this   = $(this)\n        let data    = $this.data(DATA_KEY)\n        let _config = $.extend(\n          {},\n          Default,\n          $this.data(),\n          typeof config === 'object' && config\n        )\n\n        if (!data && _config.toggle && /show|hide/.test(config)) {\n          _config.toggle = false\n        }\n\n        if (!data) {\n          data = new Collapse(this, _config)\n          $this.data(DATA_KEY, data)\n        }\n\n        if (typeof config === 'string') {\n          data[config]()\n        }\n      })\n    }\n\n  }\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * Data Api implementation\n   * ------------------------------------------------------------------------\n   */\n\n  $(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n    event.preventDefault()\n\n    let target = Collapse._getTargetFromElement(this)\n\n    let data = $(target).data(DATA_KEY)\n    let config = data ? 'toggle' : $(this).data()\n\n    Collapse._jQueryInterface.call($(target), config)\n  })\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * jQuery\n   * ------------------------------------------------------------------------\n   */\n\n  $.fn[NAME]             = Collapse._jQueryInterface\n  $.fn[NAME].Constructor = Collapse\n  $.fn[NAME].noConflict  = function () {\n    $.fn[NAME] = JQUERY_NO_CONFLICT\n    return Collapse._jQueryInterface\n  }\n\n  return Collapse\n\n})(jQuery)\n\nexport default Collapse\n"]}
\ No newline at end of file
+{"version":3,"sources":["js/src/collapse.js"],"names":[],"mappings":"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","file":"js/src/collapse.js","sourcesContent":["import Util from './util'\n\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0): collapse.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Collapse = (($) => {\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * Constants\n   * ------------------------------------------------------------------------\n   */\n\n  const NAME                = 'collapse'\n  const VERSION             = '4.0.0'\n  const DATA_KEY            = 'bs.collapse'\n  const EVENT_KEY           = `.${DATA_KEY}`\n  const DATA_API_KEY        = '.data-api'\n  const JQUERY_NO_CONFLICT  = $.fn[NAME]\n  const TRANSITION_DURATION = 600\n\n  const Default = {\n    toggle : true,\n    parent : ''\n  }\n\n  const DefaultType = {\n    toggle : 'boolean',\n    parent : 'string'\n  }\n\n  const Event = {\n    SHOW           : `show${EVENT_KEY}`,\n    SHOWN          : `shown${EVENT_KEY}`,\n    HIDE           : `hide${EVENT_KEY}`,\n    HIDDEN         : `hidden${EVENT_KEY}`,\n    CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`\n  }\n\n  const ClassName = {\n    IN         : 'in',\n    COLLAPSE   : 'collapse',\n    COLLAPSING : 'collapsing',\n    COLLAPSED  : 'collapsed'\n  }\n\n  const Dimension = {\n    WIDTH  : 'width',\n    HEIGHT : 'height'\n  }\n\n  const Selector = {\n    ACTIVES     : '.panel > .in, .panel > .collapsing',\n    DATA_TOGGLE : '[data-toggle=\"collapse\"]'\n  }\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * Class Definition\n   * ------------------------------------------------------------------------\n   */\n\n  class Collapse {\n\n    constructor(element, config) {\n      this._isTransitioning = false\n      this._element         = element\n      this._config          = this._getConfig(config)\n      this._triggerArray    = $.makeArray($(\n        `[data-toggle=\"collapse\"][href=\"#${element.id}\"],` +\n        `[data-toggle=\"collapse\"][data-target=\"#${element.id}\"]`\n      ))\n\n      this._parent = this._config.parent ? this._getParent() : null\n\n      if (!this._config.parent) {\n        this._addAriaAndCollapsedClass(this._element, this._triggerArray)\n      }\n\n      if (this._config.toggle) {\n        this.toggle()\n      }\n    }\n\n\n    // getters\n\n    static get VERSION() {\n      return VERSION\n    }\n\n    static get Default() {\n      return Default\n    }\n\n\n    // public\n\n    toggle() {\n      if ($(this._element).hasClass(ClassName.IN)) {\n        this.hide()\n      } else {\n        this.show()\n      }\n    }\n\n    show() {\n      if (this._isTransitioning ||\n        $(this._element).hasClass(ClassName.IN)) {\n        return\n      }\n\n      let actives\n      let activesData\n\n      if (this._parent) {\n        actives = $.makeArray($(Selector.ACTIVES))\n        if (!actives.length) {\n          actives = null\n        }\n      }\n\n      if (actives) {\n        activesData = $(actives).data(DATA_KEY)\n        if (activesData && activesData._isTransitioning) {\n          return\n        }\n      }\n\n      let startEvent = $.Event(Event.SHOW)\n      $(this._element).trigger(startEvent)\n      if (startEvent.isDefaultPrevented()) {\n        return\n      }\n\n      if (actives) {\n        Collapse._jQueryInterface.call($(actives), 'hide')\n        if (!activesData) {\n          $(actives).data(DATA_KEY, null)\n        }\n      }\n\n      let dimension = this._getDimension()\n\n      $(this._element)\n        .removeClass(ClassName.COLLAPSE)\n        .addClass(ClassName.COLLAPSING)\n\n      this._element.style[dimension] = 0\n      this._element.setAttribute('aria-expanded', true)\n\n      if (this._triggerArray.length) {\n        $(this._triggerArray)\n          .removeClass(ClassName.COLLAPSED)\n          .attr('aria-expanded', true)\n      }\n\n      this.setTransitioning(true)\n\n      let complete = () => {\n        $(this._element)\n          .removeClass(ClassName.COLLAPSING)\n          .addClass(ClassName.COLLAPSE)\n          .addClass(ClassName.IN)\n\n        this._element.style[dimension] = ''\n\n        this.setTransitioning(false)\n\n        $(this._element).trigger(Event.SHOWN)\n      }\n\n      if (!Util.supportsTransitionEnd()) {\n        complete()\n        return\n      }\n\n      let scrollSize = 'scroll'\n        + (dimension[0].toUpperCase()\n        + dimension.slice(1))\n\n      $(this._element)\n        .one(Util.TRANSITION_END, complete)\n        .emulateTransitionEnd(TRANSITION_DURATION)\n\n      this._element.style[dimension] = this._element[scrollSize] + 'px'\n    }\n\n    hide() {\n      if (this._isTransitioning ||\n        !$(this._element).hasClass(ClassName.IN)) {\n        return\n      }\n\n      let startEvent = $.Event(Event.HIDE)\n      $(this._element).trigger(startEvent)\n      if (startEvent.isDefaultPrevented()) {\n        return\n      }\n\n      let dimension = this._getDimension()\n      let offsetDimension = dimension === Dimension.WIDTH ?\n        'offsetWidth' : 'offsetHeight'\n\n      this._element.style[dimension] = this._element[offsetDimension] + 'px'\n\n      Util.reflow(this._element)\n\n      $(this._element)\n        .addClass(ClassName.COLLAPSING)\n        .removeClass(ClassName.COLLAPSE)\n        .removeClass(ClassName.IN)\n\n      this._element.setAttribute('aria-expanded', false)\n\n      if (this._triggerArray.length) {\n        $(this._triggerArray)\n          .addClass(ClassName.COLLAPSED)\n          .attr('aria-expanded', false)\n      }\n\n      this.setTransitioning(true)\n\n      let complete = () => {\n        this.setTransitioning(false)\n        $(this._element)\n          .removeClass(ClassName.COLLAPSING)\n          .addClass(ClassName.COLLAPSE)\n          .trigger(Event.HIDDEN)\n      }\n\n      this._element.style[dimension] = 0\n\n      if (!Util.supportsTransitionEnd()) {\n        return complete()\n      }\n\n      $(this._element)\n        .one(Util.TRANSITION_END, complete)\n        .emulateTransitionEnd(TRANSITION_DURATION)\n    }\n\n    setTransitioning(isTransitioning) {\n      this._isTransitioning = isTransitioning\n    }\n\n    dispose() {\n      $.removeData(this._element, DATA_KEY)\n\n      this._config          = null\n      this._parent          = null\n      this._element         = null\n      this._triggerArray    = null\n      this._isTransitioning = null\n    }\n\n\n    // private\n\n    _getConfig(config) {\n      config = $.extend({}, Default, config)\n      config.toggle = !!config.toggle // coerce string values\n      Util.typeCheckConfig(NAME, config, DefaultType)\n      return config\n    }\n\n    _getDimension() {\n      let hasWidth = $(this._element).hasClass(Dimension.WIDTH)\n      return hasWidth ? Dimension.WIDTH : Dimension.HEIGHT\n    }\n\n    _getParent() {\n      let parent   = $(this._config.parent)[0]\n      let selector =\n        `[data-toggle=\"collapse\"][data-parent=\"${this._config.parent}\"]`\n\n      $(parent).find(selector).each((i, element) => {\n        this._addAriaAndCollapsedClass(\n          Collapse._getTargetFromElement(element),\n          [element]\n        )\n      })\n\n      return parent\n    }\n\n    _addAriaAndCollapsedClass(element, triggerArray) {\n      if (element) {\n        let isOpen = $(element).hasClass(ClassName.IN)\n        element.setAttribute('aria-expanded', isOpen)\n\n        if (triggerArray.length) {\n          $(triggerArray)\n            .toggleClass(ClassName.COLLAPSED, !isOpen)\n            .attr('aria-expanded', isOpen)\n        }\n      }\n    }\n\n\n    // static\n\n    static _getTargetFromElement(element) {\n      let selector = Util.getSelectorFromElement(element)\n      return selector ? $(selector)[0] : null\n    }\n\n    static _jQueryInterface(config) {\n      return this.each(function () {\n        let $this   = $(this)\n        let data    = $this.data(DATA_KEY)\n        let _config = $.extend(\n          {},\n          Default,\n          $this.data(),\n          typeof config === 'object' && config\n        )\n\n        if (!data && _config.toggle && /show|hide/.test(config)) {\n          _config.toggle = false\n        }\n\n        if (!data) {\n          data = new Collapse(this, _config)\n          $this.data(DATA_KEY, data)\n        }\n\n        if (typeof config === 'string') {\n          data[config]()\n        }\n      })\n    }\n\n  }\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * Data Api implementation\n   * ------------------------------------------------------------------------\n   */\n\n  $(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n    event.preventDefault()\n\n    let target = Collapse._getTargetFromElement(this)\n\n    let data = $(target).data(DATA_KEY)\n    let config = data ? 'toggle' : $(this).data()\n\n    Collapse._jQueryInterface.call($(target), config)\n  })\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * jQuery\n   * ------------------------------------------------------------------------\n   */\n\n  $.fn[NAME]             = Collapse._jQueryInterface\n  $.fn[NAME].Constructor = Collapse\n  $.fn[NAME].noConflict  = function () {\n    $.fn[NAME] = JQUERY_NO_CONFLICT\n    return Collapse._jQueryInterface\n  }\n\n  return Collapse\n\n})(jQuery)\n\nexport default Collapse\n"]}
\ No newline at end of file
index 6a5fcd854cef40c6aa11aeb8a1c3cd49f8011f85..e911c98d1da39b4cf62f2303653491b561d90e4d 100644 (file)
@@ -27,12 +27,12 @@ const Collapse = (($) => {
 
   const Default = {
     toggle : true,
-    parent : null
+    parent : ''
   }
 
   const DefaultType = {
     toggle : 'boolean',
-    parent : '(string|null)'
+    parent : 'string'
   }
 
   const Event = {
index 95345c39e5ef34a261b2353309589e1fe810e16b..017bd9beeee142cdc3b26ebe1e122aacd70235e3 100644 (file)
@@ -33,6 +33,8 @@ $(function () {
   })
 
   QUnit.test('should type check config options', function (assert) {
+    assert.expect(2)
+
     var message
     var expectedMessage = 'CAROUSEL: Option "interval" provided type "string" but expected type "(number|boolean)".'
     var config = {
@@ -48,7 +50,7 @@ $(function () {
     assert.ok(message === expectedMessage, 'correct error message')
 
     config = {
-      keyboard: $('div')
+      keyboard: document.createElement('div')
     }
     expectedMessage = 'CAROUSEL: Option "keyboard" provided type "element" but expected type "boolean".'