{"version":3,"sources":["webpack:///./assets/lib/bootstrap/bootstrap.js"],"names":["jQuery","Error","$","version","fn","jquery","split","emulateTransitionEnd","duration","called","$el","this","one","setTimeout","trigger","support","transition","end","el","document","createElement","transEndEventNames","WebkitTransition","MozTransition","OTransition","name","undefined","style","transitionEnd","event","special","bsTransitionEnd","bindType","delegateType","handle","e","target","is","handleObj","handler","apply","arguments","dismiss","Alert","on","close","VERSION","TRANSITION_DURATION","prototype","$this","selector","attr","replace","$parent","removeElement","detach","remove","preventDefault","length","closest","Event","isDefaultPrevented","removeClass","hasClass","old","alert","option","each","data","call","Constructor","noConflict","Button","element","options","$element","extend","DEFAULTS","isLoading","Plugin","toggle","setState","loadingText","state","d","val","resetText","proxy","addClass","prop","removeAttr","changed","$input","find","toggleClass","button","$btn","first","test","type","Carousel","$indicators","paused","sliding","interval","$active","$items","keyboard","keydown","pause","documentElement","cycle","action","slide","to","wrap","tagName","which","prev","next","clearInterval","setInterval","getItemIndex","item","parent","children","index","getItemForDirection","direction","active","activeIndex","itemIndex","eq","pos","that","$next","isCycling","relatedTarget","slideEvent","$nextIndicator","slidEvent","offsetWidth","join","carousel","clickHandler","href","$target","slideIndex","window","$carousel","Collapse","$trigger","id","transitioning","getParent","addAriaAndCollapsedClass","getTargetFromTrigger","dimension","show","activesData","actives","startEvent","complete","scrollSize","camelCase","hide","offsetHeight","i","isOpen","collapse","Dropdown","clearMenus","contains","isActive","insertAfter","stopPropagation","dropdown","Modal","$body","body","$dialog","$backdrop","isShown","originalBodyPad","scrollbarWidth","ignoreBackdropClick","remote","load","_relatedTarget","BACKDROP_TRANSITION_DURATION","backdrop","checkScrollbar","setScrollbar","escape","resize","appendTo","scrollTop","adjustDialog","enforceFocus","off","hideModal","has","handleUpdate","resetAdjustments","resetScrollbar","removeBackdrop","callback","animate","doAnimate","currentTarget","focus","callbackRemove","modalIsOverflowing","scrollHeight","clientHeight","css","paddingLeft","bodyIsOverflowing","paddingRight","fullWindowWidth","innerWidth","documentElementRect","getBoundingClientRect","right","Math","abs","left","clientWidth","measureScrollbar","bodyPad","parseInt","scrollDiv","className","append","removeChild","modal","showEvent","Tooltip","enabled","timeout","hoverState","inState","init","animation","placement","template","title","delay","html","container","viewport","padding","getOptions","$viewport","isFunction","click","hover","constructor","triggers","eventIn","eventOut","enter","leave","_options","fixTitle","getDefaults","getDelegateOptions","defaults","key","value","obj","self","tip","clearTimeout","isInStateTrue","hasContent","inDom","ownerDocument","$tip","tipId","getUID","setContent","autoToken","autoPlace","top","display","getPosition","actualWidth","actualHeight","orgPlacement","viewportDim","bottom","width","calculatedOffset","getCalculatedOffset","applyPlacement","prevHoverState","offset","height","marginTop","marginLeft","isNaN","setOffset","using","props","round","delta","getViewportAdjustedDelta","isVertical","arrowDelta","arrowOffsetPosition","replaceArrow","arrow","getTitle","$e","isBody","elRect","isSvg","SVGElement","elOffset","scroll","outerDims","viewportPadding","viewportDimensions","topEdgeOffset","bottomEdgeOffset","leftEdgeOffset","rightEdgeOffset","o","prefix","random","getElementById","$arrow","enable","disable","toggleEnabled","destroy","removeData","tooltip","Popover","content","getContent","popover","ScrollSpy","$scrollElement","offsets","targets","activeTarget","process","refresh","getScrollHeight","max","offsetMethod","offsetBase","isWindow","map","$href","sort","a","b","push","maxScroll","activate","clear","parents","parentsUntil","scrollspy","$spy","Tab","$ul","$previous","hideEvent","tab","Affix","checkPosition","checkPositionWithEventLoop","affixed","unpin","pinnedOffset","RESET","getState","offsetTop","offsetBottom","position","targetHeight","initializing","colliderTop","getPinnedOffset","affix","affixType"],"mappings":"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","file":"assets/js/vendor.36d182724bcdc6242a44.chunk.js","sourcesContent":["/*!\r\n * Bootstrap v3.3.7 (http://getbootstrap.com)\r\n * Copyright 2011-2016 Twitter, Inc.\r\n * Licensed under the MIT license\r\n */\r\n\r\nif (typeof jQuery === 'undefined') {\r\n throw new Error('Bootstrap\\'s JavaScript requires jQuery')\r\n }\r\n \r\n +function ($) {\r\n 'use strict';\r\n var version = $.fn.jquery.split(' ')[0].split('.')\r\n if ((version[0] < 2 && version[1] < 9) || (version[0] == 1 && version[1] == 9 && version[2] < 1) || (version[0] > 3)) {\r\n throw new Error('Bootstrap\\'s JavaScript requires jQuery version 1.9.1 or higher, but lower than version 4')\r\n }\r\n }(jQuery);\r\n \r\n /* ========================================================================\r\n * Bootstrap: transition.js v3.3.7\r\n * http://getbootstrap.com/javascript/#transitions\r\n * ========================================================================\r\n * Copyright 2011-2016 Twitter, Inc.\r\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\r\n * ======================================================================== */\r\n \r\n \r\n +function ($) {\r\n 'use strict';\r\n \r\n // CSS TRANSITION SUPPORT (Shoutout: http://www.modernizr.com/)\r\n // ============================================================\r\n \r\n function transitionEnd() {\r\n var el = document.createElement('bootstrap')\r\n \r\n var transEndEventNames = {\r\n WebkitTransition : 'webkitTransitionEnd',\r\n MozTransition : 'transitionend',\r\n OTransition : 'oTransitionEnd otransitionend',\r\n transition : 'transitionend'\r\n }\r\n \r\n for (var name in transEndEventNames) {\r\n if (el.style[name] !== undefined) {\r\n return { end: transEndEventNames[name] }\r\n }\r\n }\r\n \r\n return false // explicit for ie8 ( ._.)\r\n }\r\n \r\n // http://blog.alexmaccaw.com/css-transitions\r\n $.fn.emulateTransitionEnd = function (duration) {\r\n var called = false\r\n var $el = this\r\n $(this).one('bsTransitionEnd', function () { called = true })\r\n var callback = function () { if (!called) $($el).trigger($.support.transition.end) }\r\n setTimeout(callback, duration)\r\n return this\r\n }\r\n \r\n $(function () {\r\n $.support.transition = transitionEnd()\r\n \r\n if (!$.support.transition) return\r\n \r\n $.event.special.bsTransitionEnd = {\r\n bindType: $.support.transition.end,\r\n delegateType: $.support.transition.end,\r\n handle: function (e) {\r\n if ($(e.target).is(this)) return e.handleObj.handler.apply(this, arguments)\r\n }\r\n }\r\n })\r\n \r\n }(jQuery);\r\n \r\n /* ========================================================================\r\n * Bootstrap: alert.js v3.3.7\r\n * http://getbootstrap.com/javascript/#alerts\r\n * ========================================================================\r\n * Copyright 2011-2016 Twitter, Inc.\r\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\r\n * ======================================================================== */\r\n \r\n \r\n +function ($) {\r\n 'use strict';\r\n \r\n // ALERT CLASS DEFINITION\r\n // ======================\r\n \r\n var dismiss = '[data-dismiss=\"alert\"]'\r\n var Alert = function (el) {\r\n $(el).on('click', dismiss, this.close)\r\n }\r\n \r\n Alert.VERSION = '3.3.7'\r\n \r\n Alert.TRANSITION_DURATION = 150\r\n \r\n Alert.prototype.close = function (e) {\r\n var $this = $(this)\r\n var selector = $this.attr('data-target')\r\n \r\n if (!selector) {\r\n selector = $this.attr('href')\r\n selector = selector && selector.replace(/.*(?=#[^\\s]*$)/, '') // strip for ie7\r\n }\r\n \r\n var $parent = $(selector === '#' ? [] : selector)\r\n \r\n if (e) e.preventDefault()\r\n \r\n if (!$parent.length) {\r\n $parent = $this.closest('.alert')\r\n }\r\n \r\n $parent.trigger(e = $.Event('close.bs.alert'))\r\n \r\n if (e.isDefaultPrevented()) return\r\n \r\n $parent.removeClass('in')\r\n \r\n function removeElement() {\r\n // detach from parent, fire event then clean up data\r\n $parent.detach().trigger('closed.bs.alert').remove()\r\n }\r\n \r\n $.support.transition && $parent.hasClass('fade') ?\r\n $parent\r\n .one('bsTransitionEnd', removeElement)\r\n .emulateTransitionEnd(Alert.TRANSITION_DURATION) :\r\n removeElement()\r\n }\r\n \r\n \r\n // ALERT PLUGIN DEFINITION\r\n // =======================\r\n \r\n function Plugin(option) {\r\n return this.each(function () {\r\n var $this = $(this)\r\n var data = $this.data('bs.alert')\r\n \r\n if (!data) $this.data('bs.alert', (data = new Alert(this)))\r\n if (typeof option == 'string') data[option].call($this)\r\n })\r\n }\r\n \r\n var old = $.fn.alert\r\n \r\n $.fn.alert = Plugin\r\n $.fn.alert.Constructor = Alert\r\n \r\n \r\n // ALERT NO CONFLICT\r\n // =================\r\n \r\n $.fn.alert.noConflict = function () {\r\n $.fn.alert = old\r\n return this\r\n }\r\n \r\n \r\n // ALERT DATA-API\r\n // ==============\r\n \r\n $(document).on('click.bs.alert.data-api', dismiss, Alert.prototype.close)\r\n \r\n }(jQuery);\r\n \r\n /* ========================================================================\r\n * Bootstrap: button.js v3.3.7\r\n * http://getbootstrap.com/javascript/#buttons\r\n * ========================================================================\r\n * Copyright 2011-2016 Twitter, Inc.\r\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\r\n * ======================================================================== */\r\n \r\n \r\n +function ($) {\r\n 'use strict';\r\n \r\n // BUTTON PUBLIC CLASS DEFINITION\r\n // ==============================\r\n \r\n var Button = function (element, options) {\r\n this.$element = $(element)\r\n this.options = $.extend({}, Button.DEFAULTS, options)\r\n this.isLoading = false\r\n }\r\n \r\n Button.VERSION = '3.3.7'\r\n \r\n Button.DEFAULTS = {\r\n loadingText: 'loading...'\r\n }\r\n \r\n Button.prototype.setState = function (state) {\r\n var d = 'disabled'\r\n var $el = this.$element\r\n var val = $el.is('input') ? 'val' : 'html'\r\n var data = $el.data()\r\n \r\n state += 'Text'\r\n \r\n if (data.resetText == null) $el.data('resetText', $el[val]())\r\n \r\n // push to event loop to allow forms to submit\r\n setTimeout($.proxy(function () {\r\n $el[val](data[state] == null ? this.options[state] : data[state])\r\n \r\n if (state == 'loadingText') {\r\n this.isLoading = true\r\n $el.addClass(d).attr(d, d).prop(d, true)\r\n } else if (this.isLoading) {\r\n this.isLoading = false\r\n $el.removeClass(d).removeAttr(d).prop(d, false)\r\n }\r\n }, this), 0)\r\n }\r\n \r\n Button.prototype.toggle = function () {\r\n var changed = true\r\n var $parent = this.$element.closest('[data-toggle=\"buttons\"]')\r\n \r\n if ($parent.length) {\r\n var $input = this.$element.find('input')\r\n if ($input.prop('type') == 'radio') {\r\n if ($input.prop('checked')) changed = false\r\n $parent.find('.active').removeClass('active')\r\n this.$element.addClass('active')\r\n } else if ($input.prop('type') == 'checkbox') {\r\n if (($input.prop('checked')) !== this.$element.hasClass('active')) changed = false\r\n this.$element.toggleClass('active')\r\n }\r\n $input.prop('checked', this.$element.hasClass('active'))\r\n if (changed) $input.trigger('change')\r\n } else {\r\n this.$element.attr('aria-pressed', !this.$element.hasClass('active'))\r\n this.$element.toggleClass('active')\r\n }\r\n }\r\n \r\n \r\n // BUTTON PLUGIN DEFINITION\r\n // ========================\r\n \r\n function Plugin(option) {\r\n return this.each(function () {\r\n var $this = $(this)\r\n var data = $this.data('bs.button')\r\n var options = typeof option == 'object' && option\r\n \r\n if (!data) $this.data('bs.button', (data = new Button(this, options)))\r\n \r\n if (option == 'toggle') data.toggle()\r\n else if (option) data.setState(option)\r\n })\r\n }\r\n \r\n var old = $.fn.button\r\n \r\n $.fn.button = Plugin\r\n $.fn.button.Constructor = Button\r\n \r\n \r\n // BUTTON NO CONFLICT\r\n // ==================\r\n \r\n $.fn.button.noConflict = function () {\r\n $.fn.button = old\r\n return this\r\n }\r\n \r\n \r\n // BUTTON DATA-API\r\n // ===============\r\n \r\n $(document)\r\n .on('click.bs.button.data-api', '[data-toggle^=\"button\"]', function (e) {\r\n var $btn = $(e.target).closest('.btn')\r\n Plugin.call($btn, 'toggle')\r\n if (!($(e.target).is('input[type=\"radio\"], input[type=\"checkbox\"]'))) {\r\n // Prevent double click on radios, and the double selections (so cancellation) on checkboxes\r\n e.preventDefault()\r\n // The target component still receive the focus\r\n if ($btn.is('input,button')) $btn.trigger('focus')\r\n else $btn.find('input:visible,button:visible').first().trigger('focus')\r\n }\r\n })\r\n .on('focus.bs.button.data-api blur.bs.button.data-api', '[data-toggle^=\"button\"]', function (e) {\r\n $(e.target).closest('.btn').toggleClass('focus', /^focus(in)?$/.test(e.type))\r\n })\r\n \r\n }(jQuery);\r\n \r\n /* ========================================================================\r\n * Bootstrap: carousel.js v3.3.7\r\n * http://getbootstrap.com/javascript/#carousel\r\n * ========================================================================\r\n * Copyright 2011-2016 Twitter, Inc.\r\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\r\n * ======================================================================== */\r\n \r\n \r\n +function ($) {\r\n 'use strict';\r\n \r\n // CAROUSEL CLASS DEFINITION\r\n // =========================\r\n \r\n var Carousel = function (element, options) {\r\n this.$element = $(element)\r\n this.$indicators = this.$element.find('.carousel-indicators')\r\n this.options = options\r\n this.paused = null\r\n this.sliding = null\r\n this.interval = null\r\n this.$active = null\r\n this.$items = null\r\n \r\n this.options.keyboard && this.$element.on('keydown.bs.carousel', $.proxy(this.keydown, this))\r\n \r\n this.options.pause == 'hover' && !('ontouchstart' in document.documentElement) && this.$element\r\n .on('mouseenter.bs.carousel', $.proxy(this.pause, this))\r\n .on('mouseleave.bs.carousel', $.proxy(this.cycle, this))\r\n }\r\n \r\n Carousel.VERSION = '3.3.7'\r\n \r\n Carousel.TRANSITION_DURATION = 600\r\n \r\n Carousel.DEFAULTS = {\r\n interval: 5000,\r\n pause: 'hover',\r\n wrap: true,\r\n keyboard: true\r\n }\r\n \r\n Carousel.prototype.keydown = function (e) {\r\n if (/input|textarea/i.test(e.target.tagName)) return\r\n switch (e.which) {\r\n case 37: this.prev(); break\r\n case 39: this.next(); break\r\n default: return\r\n }\r\n \r\n e.preventDefault()\r\n }\r\n \r\n Carousel.prototype.cycle = function (e) {\r\n e || (this.paused = false)\r\n \r\n this.interval && clearInterval(this.interval)\r\n \r\n this.options.interval\r\n && !this.paused\r\n && (this.interval = setInterval($.proxy(this.next, this), this.options.interval))\r\n \r\n return this\r\n }\r\n \r\n Carousel.prototype.getItemIndex = function (item) {\r\n this.$items = item.parent().children('.item')\r\n return this.$items.index(item || this.$active)\r\n }\r\n \r\n Carousel.prototype.getItemForDirection = function (direction, active) {\r\n var activeIndex = this.getItemIndex(active)\r\n var willWrap = (direction == 'prev' && activeIndex === 0)\r\n || (direction == 'next' && activeIndex == (this.$items.length - 1))\r\n if (willWrap && !this.options.wrap) return active\r\n var delta = direction == 'prev' ? -1 : 1\r\n var itemIndex = (activeIndex + delta) % this.$items.length\r\n return this.$items.eq(itemIndex)\r\n }\r\n \r\n Carousel.prototype.to = function (pos) {\r\n var that = this\r\n var activeIndex = this.getItemIndex(this.$active = this.$element.find('.item.active'))\r\n \r\n if (pos > (this.$items.length - 1) || pos < 0) return\r\n \r\n if (this.sliding) return this.$element.one('slid.bs.carousel', function () { that.to(pos) }) // yes, \"slid\"\r\n if (activeIndex == pos) return this.pause().cycle()\r\n \r\n return this.slide(pos > activeIndex ? 'next' : 'prev', this.$items.eq(pos))\r\n }\r\n \r\n Carousel.prototype.pause = function (e) {\r\n e || (this.paused = true)\r\n \r\n if (this.$element.find('.next, .prev').length && $.support.transition) {\r\n this.$element.trigger($.support.transition.end)\r\n this.cycle(true)\r\n }\r\n \r\n this.interval = clearInterval(this.interval)\r\n \r\n return this\r\n }\r\n \r\n Carousel.prototype.next = function () {\r\n if (this.sliding) return\r\n return this.slide('next')\r\n }\r\n \r\n Carousel.prototype.prev = function () {\r\n if (this.sliding) return\r\n return this.slide('prev')\r\n }\r\n \r\n Carousel.prototype.slide = function (type, next) {\r\n var $active = this.$element.find('.item.active')\r\n var $next = next || this.getItemForDirection(type, $active)\r\n var isCycling = this.interval\r\n var direction = type == 'next' ? 'left' : 'right'\r\n var that = this\r\n \r\n if ($next.hasClass('active')) return (this.sliding = false)\r\n \r\n var relatedTarget = $next[0]\r\n var slideEvent = $.Event('slide.bs.carousel', {\r\n relatedTarget: relatedTarget,\r\n direction: direction\r\n })\r\n this.$element.trigger(slideEvent)\r\n if (slideEvent.isDefaultPrevented()) return\r\n \r\n this.sliding = true\r\n \r\n isCycling && this.pause()\r\n \r\n if (this.$indicators.length) {\r\n this.$indicators.find('.active').removeClass('active')\r\n var $nextIndicator = $(this.$indicators.children()[this.getItemIndex($next)])\r\n $nextIndicator && $nextIndicator.addClass('active')\r\n }\r\n \r\n var slidEvent = $.Event('slid.bs.carousel', { relatedTarget: relatedTarget, direction: direction }) // yes, \"slid\"\r\n if ($.support.transition && this.$element.hasClass('slide')) {\r\n $next.addClass(type)\r\n $next[0].offsetWidth // force reflow\r\n $active.addClass(direction)\r\n $next.addClass(direction)\r\n $active\r\n .one('bsTransitionEnd', function () {\r\n $next.removeClass([type, direction].join(' ')).addClass('active')\r\n $active.removeClass(['active', direction].join(' '))\r\n that.sliding = false\r\n setTimeout(function () {\r\n that.$element.trigger(slidEvent)\r\n }, 0)\r\n })\r\n .emulateTransitionEnd(Carousel.TRANSITION_DURATION)\r\n } else {\r\n $active.removeClass('active')\r\n $next.addClass('active')\r\n this.sliding = false\r\n this.$element.trigger(slidEvent)\r\n }\r\n \r\n isCycling && this.cycle()\r\n \r\n return this\r\n }\r\n \r\n \r\n // CAROUSEL PLUGIN DEFINITION\r\n // ==========================\r\n \r\n function Plugin(option) {\r\n return this.each(function () {\r\n var $this = $(this)\r\n var data = $this.data('bs.carousel')\r\n var options = $.extend({}, Carousel.DEFAULTS, $this.data(), typeof option == 'object' && option)\r\n var action = typeof option == 'string' ? option : options.slide\r\n \r\n if (!data) $this.data('bs.carousel', (data = new Carousel(this, options)))\r\n if (typeof option == 'number') data.to(option)\r\n else if (action) data[action]()\r\n else if (options.interval) data.pause().cycle()\r\n })\r\n }\r\n \r\n var old = $.fn.carousel\r\n \r\n $.fn.carousel = Plugin\r\n $.fn.carousel.Constructor = Carousel\r\n \r\n \r\n // CAROUSEL NO CONFLICT\r\n // ====================\r\n \r\n $.fn.carousel.noConflict = function () {\r\n $.fn.carousel = old\r\n return this\r\n }\r\n \r\n \r\n // CAROUSEL DATA-API\r\n // =================\r\n \r\n var clickHandler = function (e) {\r\n var href\r\n var $this = $(this)\r\n var $target = $($this.attr('data-target') || (href = $this.attr('href')) && href.replace(/.*(?=#[^\\s]+$)/, '')) // strip for ie7\r\n if (!$target.hasClass('carousel')) return\r\n var options = $.extend({}, $target.data(), $this.data())\r\n var slideIndex = $this.attr('data-slide-to')\r\n if (slideIndex) options.interval = false\r\n \r\n Plugin.call($target, options)\r\n \r\n if (slideIndex) {\r\n $target.data('bs.carousel').to(slideIndex)\r\n }\r\n \r\n e.preventDefault()\r\n }\r\n \r\n $(document)\r\n .on('click.bs.carousel.data-api', '[data-slide]', clickHandler)\r\n .on('click.bs.carousel.data-api', '[data-slide-to]', clickHandler)\r\n \r\n $(window).on('load', function () {\r\n $('[data-ride=\"carousel\"]').each(function () {\r\n var $carousel = $(this)\r\n Plugin.call($carousel, $carousel.data())\r\n })\r\n })\r\n \r\n }(jQuery);\r\n \r\n /* ========================================================================\r\n * Bootstrap: collapse.js v3.3.7\r\n * http://getbootstrap.com/javascript/#collapse\r\n * ========================================================================\r\n * Copyright 2011-2016 Twitter, Inc.\r\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\r\n * ======================================================================== */\r\n \r\n /* jshint latedef: false */\r\n \r\n +function ($) {\r\n 'use strict';\r\n \r\n // COLLAPSE PUBLIC CLASS DEFINITION\r\n // ================================\r\n \r\n var Collapse = function (element, options) {\r\n this.$element = $(element)\r\n this.options = $.extend({}, Collapse.DEFAULTS, options)\r\n this.$trigger = $('[data-toggle=\"collapse\"][href=\"#' + element.id + '\"],' +\r\n '[data-toggle=\"collapse\"][data-target=\"#' + element.id + '\"]')\r\n this.transitioning = null\r\n \r\n if (this.options.parent) {\r\n this.$parent = this.getParent()\r\n } else {\r\n this.addAriaAndCollapsedClass(this.$element, this.$trigger)\r\n }\r\n \r\n if (this.options.toggle) this.toggle()\r\n }\r\n \r\n Collapse.VERSION = '3.3.7'\r\n \r\n Collapse.TRANSITION_DURATION = 350\r\n \r\n Collapse.DEFAULTS = {\r\n toggle: true\r\n }\r\n \r\n Collapse.prototype.dimension = function () {\r\n var hasWidth = this.$element.hasClass('width')\r\n return hasWidth ? 'width' : 'height'\r\n }\r\n \r\n Collapse.prototype.show = function () {\r\n if (this.transitioning || this.$element.hasClass('in')) return\r\n \r\n var activesData\r\n var actives = this.$parent && this.$parent.children('.panel').children('.in, .collapsing')\r\n \r\n if (actives && actives.length) {\r\n activesData = actives.data('bs.collapse')\r\n if (activesData && activesData.transitioning) return\r\n }\r\n \r\n var startEvent = $.Event('show.bs.collapse')\r\n this.$element.trigger(startEvent)\r\n if (startEvent.isDefaultPrevented()) return\r\n \r\n if (actives && actives.length) {\r\n Plugin.call(actives, 'hide')\r\n activesData || actives.data('bs.collapse', null)\r\n }\r\n \r\n var dimension = this.dimension()\r\n \r\n this.$element\r\n .removeClass('collapse')\r\n .addClass('collapsing')[dimension](0)\r\n .attr('aria-expanded', true)\r\n \r\n this.$trigger\r\n .removeClass('collapsed')\r\n .attr('aria-expanded', true)\r\n \r\n this.transitioning = 1\r\n \r\n var complete = function () {\r\n this.$element\r\n .removeClass('collapsing')\r\n .addClass('collapse in')[dimension]('')\r\n this.transitioning = 0\r\n this.$element\r\n .trigger('shown.bs.collapse')\r\n }\r\n \r\n if (!$.support.transition) return complete.call(this)\r\n \r\n var scrollSize = $.camelCase(['scroll', dimension].join('-'))\r\n \r\n this.$element\r\n .one('bsTransitionEnd', $.proxy(complete, this))\r\n .emulateTransitionEnd(Collapse.TRANSITION_DURATION)[dimension](this.$element[0][scrollSize])\r\n }\r\n \r\n Collapse.prototype.hide = function () {\r\n if (this.transitioning || !this.$element.hasClass('in')) return\r\n \r\n var startEvent = $.Event('hide.bs.collapse')\r\n this.$element.trigger(startEvent)\r\n if (startEvent.isDefaultPrevented()) return\r\n \r\n var dimension = this.dimension()\r\n \r\n this.$element[dimension](this.$element[dimension]())[0].offsetHeight\r\n \r\n this.$element\r\n .addClass('collapsing')\r\n .removeClass('collapse in')\r\n .attr('aria-expanded', false)\r\n \r\n this.$trigger\r\n .addClass('collapsed')\r\n .attr('aria-expanded', false)\r\n \r\n this.transitioning = 1\r\n \r\n var complete = function () {\r\n this.transitioning = 0\r\n this.$element\r\n .removeClass('collapsing')\r\n .addClass('collapse')\r\n .trigger('hidden.bs.collapse')\r\n }\r\n \r\n if (!$.support.transition) return complete.call(this)\r\n \r\n this.$element\r\n [dimension](0)\r\n .one('bsTransitionEnd', $.proxy(complete, this))\r\n .emulateTransitionEnd(Collapse.TRANSITION_DURATION)\r\n }\r\n \r\n Collapse.prototype.toggle = function () {\r\n this[this.$element.hasClass('in') ? 'hide' : 'show']()\r\n }\r\n \r\n Collapse.prototype.getParent = function () {\r\n return $(this.options.parent)\r\n .find('[data-toggle=\"collapse\"][data-parent=\"' + this.options.parent + '\"]')\r\n .each($.proxy(function (i, element) {\r\n var $element = $(element)\r\n this.addAriaAndCollapsedClass(getTargetFromTrigger($element), $element)\r\n }, this))\r\n .end()\r\n }\r\n \r\n Collapse.prototype.addAriaAndCollapsedClass = function ($element, $trigger) {\r\n var isOpen = $element.hasClass('in')\r\n \r\n $element.attr('aria-expanded', isOpen)\r\n $trigger\r\n .toggleClass('collapsed', !isOpen)\r\n .attr('aria-expanded', isOpen)\r\n }\r\n \r\n function getTargetFromTrigger($trigger) {\r\n var href\r\n var target = $trigger.attr('data-target')\r\n || (href = $trigger.attr('href')) && href.replace(/.*(?=#[^\\s]+$)/, '') // strip for ie7\r\n \r\n return $(target)\r\n }\r\n \r\n \r\n // COLLAPSE PLUGIN DEFINITION\r\n // ==========================\r\n \r\n function Plugin(option) {\r\n return this.each(function () {\r\n var $this = $(this)\r\n var data = $this.data('bs.collapse')\r\n var options = $.extend({}, Collapse.DEFAULTS, $this.data(), typeof option == 'object' && option)\r\n \r\n if (!data && options.toggle && /show|hide/.test(option)) options.toggle = false\r\n if (!data) $this.data('bs.collapse', (data = new Collapse(this, options)))\r\n if (typeof option == 'string') data[option]()\r\n })\r\n }\r\n \r\n var old = $.fn.collapse\r\n \r\n $.fn.collapse = Plugin\r\n $.fn.collapse.Constructor = Collapse\r\n \r\n \r\n // COLLAPSE NO CONFLICT\r\n // ====================\r\n \r\n $.fn.collapse.noConflict = function () {\r\n $.fn.collapse = old\r\n return this\r\n }\r\n \r\n \r\n // COLLAPSE DATA-API\r\n // =================\r\n \r\n $(document).on('click.bs.collapse.data-api', '[data-toggle=\"collapse\"]', function (e) {\r\n var $this = $(this)\r\n \r\n if (!$this.attr('data-target')) e.preventDefault()\r\n \r\n var $target = getTargetFromTrigger($this)\r\n var data = $target.data('bs.collapse')\r\n var option = data ? 'toggle' : $this.data()\r\n \r\n Plugin.call($target, option)\r\n })\r\n \r\n }(jQuery);\r\n \r\n /* ========================================================================\r\n * Bootstrap: dropdown.js v3.3.7\r\n * http://getbootstrap.com/javascript/#dropdowns\r\n * ========================================================================\r\n * Copyright 2011-2016 Twitter, Inc.\r\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\r\n * ======================================================================== */\r\n \r\n \r\n +function ($) {\r\n 'use strict';\r\n \r\n // DROPDOWN CLASS DEFINITION\r\n // =========================\r\n \r\n var backdrop = '.dropdown-backdrop'\r\n var toggle = '.dropdown-toggle[data-toggle=\"dropdown\"]'\r\n var Dropdown = function (element) {\r\n $(element).on('click.bs.dropdown', this.toggle)\r\n }\r\n \r\n Dropdown.VERSION = '3.3.7'\r\n \r\n function getParent($this) {\r\n var selector = $this.attr('data-target')\r\n \r\n if (!selector) {\r\n selector = $this.attr('href')\r\n selector = selector && /#[A-Za-z]/.test(selector) && selector.replace(/.*(?=#[^\\s]*$)/, '') // strip for ie7\r\n }\r\n \r\n var $parent = selector && $(selector)\r\n \r\n return $parent && $parent.length ? $parent : $this.parent()\r\n }\r\n \r\n function clearMenus(e) {\r\n if (e && e.which === 3) return\r\n $(backdrop).remove()\r\n $(toggle).each(function () {\r\n var $this = $(this)\r\n var $parent = getParent($this)\r\n var relatedTarget = { relatedTarget: this }\r\n \r\n if (!$parent.hasClass('open')) return\r\n \r\n if (e && e.type == 'click' && /input|textarea/i.test(e.target.tagName) && $.contains($parent[0], e.target)) return\r\n \r\n $parent.trigger(e = $.Event('hide.bs.dropdown', relatedTarget))\r\n \r\n if (e.isDefaultPrevented()) return\r\n \r\n $this.attr('aria-expanded', 'false')\r\n $parent.removeClass('open').trigger($.Event('hidden.bs.dropdown', relatedTarget))\r\n })\r\n }\r\n \r\n Dropdown.prototype.toggle = function (e) {\r\n var $this = $(this)\r\n \r\n if ($this.is('.disabled, :disabled')) return\r\n \r\n var $parent = getParent($this)\r\n var isActive = $parent.hasClass('open')\r\n \r\n clearMenus()\r\n \r\n if (!isActive) {\r\n if ('ontouchstart' in document.documentElement && !$parent.closest('.navbar-nav').length) {\r\n // if mobile we use a backdrop because click events don't delegate\r\n $(document.createElement('div'))\r\n .addClass('dropdown-backdrop')\r\n .insertAfter($(this))\r\n .on('click', clearMenus)\r\n }\r\n \r\n var relatedTarget = { relatedTarget: this }\r\n $parent.trigger(e = $.Event('show.bs.dropdown', relatedTarget))\r\n \r\n if (e.isDefaultPrevented()) return\r\n \r\n $this\r\n .trigger('focus')\r\n .attr('aria-expanded', 'true')\r\n \r\n $parent\r\n .toggleClass('open')\r\n .trigger($.Event('shown.bs.dropdown', relatedTarget))\r\n }\r\n \r\n return false\r\n }\r\n \r\n Dropdown.prototype.keydown = function (e) {\r\n if (!/(38|40|27|32)/.test(e.which) || /input|textarea/i.test(e.target.tagName)) return\r\n \r\n var $this = $(this)\r\n \r\n e.preventDefault()\r\n e.stopPropagation()\r\n \r\n if ($this.is('.disabled, :disabled')) return\r\n \r\n var $parent = getParent($this)\r\n var isActive = $parent.hasClass('open')\r\n \r\n if (!isActive && e.which != 27 || isActive && e.which == 27) {\r\n if (e.which == 27) $parent.find(toggle).trigger('focus')\r\n return $this.trigger('click')\r\n }\r\n \r\n var desc = ' li:not(.disabled):visible a'\r\n var $items = $parent.find('.dropdown-menu' + desc)\r\n \r\n if (!$items.length) return\r\n \r\n var index = $items.index(e.target)\r\n \r\n if (e.which == 38 && index > 0) index-- // up\r\n if (e.which == 40 && index < $items.length - 1) index++ // down\r\n if (!~index) index = 0\r\n \r\n $items.eq(index).trigger('focus')\r\n }\r\n \r\n \r\n // DROPDOWN PLUGIN DEFINITION\r\n // ==========================\r\n \r\n function Plugin(option) {\r\n return this.each(function () {\r\n var $this = $(this)\r\n var data = $this.data('bs.dropdown')\r\n \r\n if (!data) $this.data('bs.dropdown', (data = new Dropdown(this)))\r\n if (typeof option == 'string') data[option].call($this)\r\n })\r\n }\r\n \r\n var old = $.fn.dropdown\r\n \r\n $.fn.dropdown = Plugin\r\n $.fn.dropdown.Constructor = Dropdown\r\n \r\n \r\n // DROPDOWN NO CONFLICT\r\n // ====================\r\n \r\n $.fn.dropdown.noConflict = function () {\r\n $.fn.dropdown = old\r\n return this\r\n }\r\n \r\n \r\n // APPLY TO STANDARD DROPDOWN ELEMENTS\r\n // ===================================\r\n \r\n $(document)\r\n .on('click.bs.dropdown.data-api', clearMenus)\r\n .on('click.bs.dropdown.data-api', '.dropdown form', function (e) { e.stopPropagation() })\r\n .on('click.bs.dropdown.data-api', toggle, Dropdown.prototype.toggle)\r\n .on('keydown.bs.dropdown.data-api', toggle, Dropdown.prototype.keydown)\r\n .on('keydown.bs.dropdown.data-api', '.dropdown-menu', Dropdown.prototype.keydown)\r\n \r\n }(jQuery);\r\n \r\n /* ========================================================================\r\n * Bootstrap: modal.js v3.3.7\r\n * http://getbootstrap.com/javascript/#modals\r\n * ========================================================================\r\n * Copyright 2011-2016 Twitter, Inc.\r\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\r\n * ======================================================================== */\r\n \r\n \r\n +function ($) {\r\n 'use strict';\r\n \r\n // MODAL CLASS DEFINITION\r\n // ======================\r\n \r\n var Modal = function (element, options) {\r\n this.options = options\r\n this.$body = $(document.body)\r\n this.$element = $(element)\r\n this.$dialog = this.$element.find('.modal-dialog')\r\n this.$backdrop = null\r\n this.isShown = null\r\n this.originalBodyPad = null\r\n this.scrollbarWidth = 0\r\n this.ignoreBackdropClick = false\r\n \r\n if (this.options.remote) {\r\n this.$element\r\n .find('.modal-content')\r\n .load(this.options.remote, $.proxy(function () {\r\n this.$element.trigger('loaded.bs.modal')\r\n }, this))\r\n }\r\n }\r\n \r\n Modal.VERSION = '3.3.7'\r\n \r\n Modal.TRANSITION_DURATION = 300\r\n Modal.BACKDROP_TRANSITION_DURATION = 150\r\n \r\n Modal.DEFAULTS = {\r\n backdrop: true,\r\n keyboard: true,\r\n show: true\r\n }\r\n \r\n Modal.prototype.toggle = function (_relatedTarget) {\r\n return this.isShown ? this.hide() : this.show(_relatedTarget)\r\n }\r\n \r\n Modal.prototype.show = function (_relatedTarget) {\r\n var that = this\r\n var e = $.Event('show.bs.modal', { relatedTarget: _relatedTarget })\r\n \r\n this.$element.trigger(e)\r\n \r\n if (this.isShown || e.isDefaultPrevented()) return\r\n \r\n this.isShown = true\r\n \r\n this.checkScrollbar()\r\n this.setScrollbar()\r\n this.$body.addClass('modal-open')\r\n \r\n this.escape()\r\n this.resize()\r\n \r\n this.$element.on('click.dismiss.bs.modal', '[data-dismiss=\"modal\"]', $.proxy(this.hide, this))\r\n \r\n this.$dialog.on('mousedown.dismiss.bs.modal', function () {\r\n that.$element.one('mouseup.dismiss.bs.modal', function (e) {\r\n if ($(e.target).is(that.$element)) that.ignoreBackdropClick = true\r\n })\r\n })\r\n \r\n this.backdrop(function () {\r\n var transition = $.support.transition && that.$element.hasClass('fade')\r\n \r\n if (!that.$element.parent().length) {\r\n that.$element.appendTo(that.$body) // don't move modals dom position\r\n }\r\n \r\n that.$element\r\n .show()\r\n .scrollTop(0)\r\n \r\n that.adjustDialog()\r\n \r\n if (transition) {\r\n that.$element[0].offsetWidth // force reflow\r\n }\r\n \r\n that.$element.addClass('in')\r\n \r\n that.enforceFocus()\r\n \r\n var e = $.Event('shown.bs.modal', { relatedTarget: _relatedTarget })\r\n \r\n transition ?\r\n that.$dialog // wait for modal to slide in\r\n .one('bsTransitionEnd', function () {\r\n that.$element.trigger('focus').trigger(e)\r\n })\r\n .emulateTransitionEnd(Modal.TRANSITION_DURATION) :\r\n that.$element.trigger('focus').trigger(e)\r\n })\r\n }\r\n \r\n Modal.prototype.hide = function (e) {\r\n if (e) e.preventDefault()\r\n \r\n e = $.Event('hide.bs.modal')\r\n \r\n this.$element.trigger(e)\r\n \r\n if (!this.isShown || e.isDefaultPrevented()) return\r\n \r\n this.isShown = false\r\n \r\n this.escape()\r\n this.resize()\r\n \r\n $(document).off('focusin.bs.modal')\r\n \r\n this.$element\r\n .removeClass('in')\r\n .off('click.dismiss.bs.modal')\r\n .off('mouseup.dismiss.bs.modal')\r\n \r\n this.$dialog.off('mousedown.dismiss.bs.modal')\r\n \r\n $.support.transition && this.$element.hasClass('fade') ?\r\n this.$element\r\n .one('bsTransitionEnd', $.proxy(this.hideModal, this))\r\n .emulateTransitionEnd(Modal.TRANSITION_DURATION) :\r\n this.hideModal()\r\n }\r\n \r\n Modal.prototype.enforceFocus = function () {\r\n $(document)\r\n .off('focusin.bs.modal') // guard against infinite focus loop\r\n .on('focusin.bs.modal', $.proxy(function (e) {\r\n if (document !== e.target &&\r\n this.$element[0] !== e.target &&\r\n !this.$element.has(e.target).length) {\r\n this.$element.trigger('focus')\r\n }\r\n }, this))\r\n }\r\n \r\n Modal.prototype.escape = function () {\r\n if (this.isShown && this.options.keyboard) {\r\n this.$element.on('keydown.dismiss.bs.modal', $.proxy(function (e) {\r\n e.which == 27 && this.hide()\r\n }, this))\r\n } else if (!this.isShown) {\r\n this.$element.off('keydown.dismiss.bs.modal')\r\n }\r\n }\r\n \r\n Modal.prototype.resize = function () {\r\n if (this.isShown) {\r\n $(window).on('resize.bs.modal', $.proxy(this.handleUpdate, this))\r\n } else {\r\n $(window).off('resize.bs.modal')\r\n }\r\n }\r\n \r\n Modal.prototype.hideModal = function () {\r\n var that = this\r\n this.$element.hide()\r\n this.backdrop(function () {\r\n that.$body.removeClass('modal-open')\r\n that.resetAdjustments()\r\n that.resetScrollbar()\r\n that.$element.trigger('hidden.bs.modal')\r\n })\r\n }\r\n \r\n Modal.prototype.removeBackdrop = function () {\r\n this.$backdrop && this.$backdrop.remove()\r\n this.$backdrop = null\r\n }\r\n \r\n Modal.prototype.backdrop = function (callback) {\r\n var that = this\r\n var animate = this.$element.hasClass('fade') ? 'fade' : ''\r\n \r\n if (this.isShown && this.options.backdrop) {\r\n var doAnimate = $.support.transition && animate\r\n \r\n this.$backdrop = $(document.createElement('div'))\r\n .addClass('modal-backdrop ' + animate)\r\n .appendTo(this.$body)\r\n \r\n this.$element.on('click.dismiss.bs.modal', $.proxy(function (e) {\r\n if (this.ignoreBackdropClick) {\r\n this.ignoreBackdropClick = false\r\n return\r\n }\r\n if (e.target !== e.currentTarget) return\r\n this.options.backdrop == 'static'\r\n ? this.$element[0].focus()\r\n : this.hide()\r\n }, this))\r\n \r\n if (doAnimate) this.$backdrop[0].offsetWidth // force reflow\r\n \r\n this.$backdrop.addClass('in')\r\n \r\n if (!callback) return\r\n \r\n doAnimate ?\r\n this.$backdrop\r\n .one('bsTransitionEnd', callback)\r\n .emulateTransitionEnd(Modal.BACKDROP_TRANSITION_DURATION) :\r\n callback()\r\n \r\n } else if (!this.isShown && this.$backdrop) {\r\n this.$backdrop.removeClass('in')\r\n \r\n var callbackRemove = function () {\r\n that.removeBackdrop()\r\n callback && callback()\r\n }\r\n $.support.transition && this.$element.hasClass('fade') ?\r\n this.$backdrop\r\n .one('bsTransitionEnd', callbackRemove)\r\n .emulateTransitionEnd(Modal.BACKDROP_TRANSITION_DURATION) :\r\n callbackRemove()\r\n \r\n } else if (callback) {\r\n callback()\r\n }\r\n }\r\n \r\n // these following methods are used to handle overflowing modals\r\n \r\n Modal.prototype.handleUpdate = function () {\r\n this.adjustDialog()\r\n }\r\n \r\n Modal.prototype.adjustDialog = function () {\r\n var modalIsOverflowing = this.$element[0].scrollHeight > document.documentElement.clientHeight\r\n \r\n this.$element.css({\r\n paddingLeft: !this.bodyIsOverflowing && modalIsOverflowing ? this.scrollbarWidth : '',\r\n paddingRight: this.bodyIsOverflowing && !modalIsOverflowing ? this.scrollbarWidth : ''\r\n })\r\n }\r\n \r\n Modal.prototype.resetAdjustments = function () {\r\n this.$element.css({\r\n paddingLeft: '',\r\n paddingRight: ''\r\n })\r\n }\r\n \r\n Modal.prototype.checkScrollbar = function () {\r\n var fullWindowWidth = window.innerWidth\r\n if (!fullWindowWidth) { // workaround for missing window.innerWidth in IE8\r\n var documentElementRect = document.documentElement.getBoundingClientRect()\r\n fullWindowWidth = documentElementRect.right - Math.abs(documentElementRect.left)\r\n }\r\n this.bodyIsOverflowing = document.body.clientWidth < fullWindowWidth\r\n this.scrollbarWidth = this.measureScrollbar()\r\n }\r\n \r\n Modal.prototype.setScrollbar = function () {\r\n var bodyPad = parseInt((this.$body.css('padding-right') || 0), 10)\r\n this.originalBodyPad = document.body.style.paddingRight || ''\r\n if (this.bodyIsOverflowing) this.$body.css('padding-right', bodyPad + this.scrollbarWidth)\r\n }\r\n \r\n Modal.prototype.resetScrollbar = function () {\r\n this.$body.css('padding-right', this.originalBodyPad)\r\n }\r\n \r\n Modal.prototype.measureScrollbar = function () { // thx walsh\r\n var scrollDiv = document.createElement('div')\r\n scrollDiv.className = 'modal-scrollbar-measure'\r\n this.$body.append(scrollDiv)\r\n var scrollbarWidth = scrollDiv.offsetWidth - scrollDiv.clientWidth\r\n this.$body[0].removeChild(scrollDiv)\r\n return scrollbarWidth\r\n }\r\n \r\n \r\n // MODAL PLUGIN DEFINITION\r\n // =======================\r\n \r\n function Plugin(option, _relatedTarget) {\r\n return this.each(function () {\r\n var $this = $(this)\r\n var data = $this.data('bs.modal')\r\n var options = $.extend({}, Modal.DEFAULTS, $this.data(), typeof option == 'object' && option)\r\n \r\n if (!data) $this.data('bs.modal', (data = new Modal(this, options)))\r\n if (typeof option == 'string') data[option](_relatedTarget)\r\n else if (options.show) data.show(_relatedTarget)\r\n })\r\n }\r\n \r\n var old = $.fn.modal\r\n \r\n $.fn.modal = Plugin\r\n $.fn.modal.Constructor = Modal\r\n \r\n \r\n // MODAL NO CONFLICT\r\n // =================\r\n \r\n $.fn.modal.noConflict = function () {\r\n $.fn.modal = old\r\n return this\r\n }\r\n \r\n \r\n // MODAL DATA-API\r\n // ==============\r\n \r\n $(document).on('click.bs.modal.data-api', '[data-toggle=\"modal\"]', function (e) {\r\n var $this = $(this)\r\n var href = $this.attr('href')\r\n var $target = $($this.attr('data-target') || (href && href.replace(/.*(?=#[^\\s]+$)/, ''))) // strip for ie7\r\n var option = $target.data('bs.modal') ? 'toggle' : $.extend({ remote: !/#/.test(href) && href }, $target.data(), $this.data())\r\n \r\n if ($this.is('a')) e.preventDefault()\r\n \r\n $target.one('show.bs.modal', function (showEvent) {\r\n if (showEvent.isDefaultPrevented()) return // only register focus restorer if modal will actually get shown\r\n $target.one('hidden.bs.modal', function () {\r\n $this.is(':visible') && $this.trigger('focus')\r\n })\r\n })\r\n Plugin.call($target, option, this)\r\n })\r\n \r\n }(jQuery);\r\n \r\n /* ========================================================================\r\n * Bootstrap: tooltip.js v3.3.7\r\n * http://getbootstrap.com/javascript/#tooltip\r\n * Inspired by the original jQuery.tipsy by Jason Frame\r\n * ========================================================================\r\n * Copyright 2011-2016 Twitter, Inc.\r\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\r\n * ======================================================================== */\r\n \r\n \r\n +function ($) {\r\n 'use strict';\r\n \r\n // TOOLTIP PUBLIC CLASS DEFINITION\r\n // ===============================\r\n \r\n var Tooltip = function (element, options) {\r\n this.type = null\r\n this.options = null\r\n this.enabled = null\r\n this.timeout = null\r\n this.hoverState = null\r\n this.$element = null\r\n this.inState = null\r\n \r\n this.init('tooltip', element, options)\r\n }\r\n \r\n Tooltip.VERSION = '3.3.7'\r\n \r\n Tooltip.TRANSITION_DURATION = 150\r\n \r\n Tooltip.DEFAULTS = {\r\n animation: true,\r\n placement: 'top',\r\n selector: false,\r\n template: '
',\r\n trigger: 'hover focus',\r\n title: '',\r\n delay: 0,\r\n html: false,\r\n container: false,\r\n viewport: {\r\n selector: 'body',\r\n padding: 0\r\n }\r\n }\r\n \r\n Tooltip.prototype.init = function (type, element, options) {\r\n this.enabled = true\r\n this.type = type\r\n this.$element = $(element)\r\n this.options = this.getOptions(options)\r\n this.$viewport = this.options.viewport && $($.isFunction(this.options.viewport) ? this.options.viewport.call(this, this.$element) : (this.options.viewport.selector || this.options.viewport))\r\n this.inState = { click: false, hover: false, focus: false }\r\n \r\n if (this.$element[0] instanceof document.constructor && !this.options.selector) {\r\n throw new Error('`selector` option must be specified when initializing ' + this.type + ' on the window.document object!')\r\n }\r\n \r\n var triggers = this.options.trigger.split(' ')\r\n \r\n for (var i = triggers.length; i--;) {\r\n var trigger = triggers[i]\r\n \r\n if (trigger == 'click') {\r\n this.$element.on('click.' + this.type, this.options.selector, $.proxy(this.toggle, this))\r\n } else if (trigger != 'manual') {\r\n var eventIn = trigger == 'hover' ? 'mouseenter' : 'focusin'\r\n var eventOut = trigger == 'hover' ? 'mouseleave' : 'focusout'\r\n \r\n this.$element.on(eventIn + '.' + this.type, this.options.selector, $.proxy(this.enter, this))\r\n this.$element.on(eventOut + '.' + this.type, this.options.selector, $.proxy(this.leave, this))\r\n }\r\n }\r\n \r\n this.options.selector ?\r\n (this._options = $.extend({}, this.options, { trigger: 'manual', selector: '' })) :\r\n this.fixTitle()\r\n }\r\n \r\n Tooltip.prototype.getDefaults = function () {\r\n return Tooltip.DEFAULTS\r\n }\r\n \r\n Tooltip.prototype.getOptions = function (options) {\r\n options = $.extend({}, this.getDefaults(), this.$element.data(), options)\r\n \r\n if (options.delay && typeof options.delay == 'number') {\r\n options.delay = {\r\n show: options.delay,\r\n hide: options.delay\r\n }\r\n }\r\n \r\n return options\r\n }\r\n \r\n Tooltip.prototype.getDelegateOptions = function () {\r\n var options = {}\r\n var defaults = this.getDefaults()\r\n \r\n this._options && $.each(this._options, function (key, value) {\r\n if (defaults[key] != value) options[key] = value\r\n })\r\n \r\n return options\r\n }\r\n \r\n Tooltip.prototype.enter = function (obj) {\r\n var self = obj instanceof this.constructor ?\r\n obj : $(obj.currentTarget).data('bs.' + this.type)\r\n \r\n if (!self) {\r\n self = new this.constructor(obj.currentTarget, this.getDelegateOptions())\r\n $(obj.currentTarget).data('bs.' + this.type, self)\r\n }\r\n \r\n if (obj instanceof $.Event) {\r\n self.inState[obj.type == 'focusin' ? 'focus' : 'hover'] = true\r\n }\r\n \r\n if (self.tip().hasClass('in') || self.hoverState == 'in') {\r\n self.hoverState = 'in'\r\n return\r\n }\r\n \r\n clearTimeout(self.timeout)\r\n \r\n self.hoverState = 'in'\r\n \r\n if (!self.options.delay || !self.options.delay.show) return self.show()\r\n \r\n self.timeout = setTimeout(function () {\r\n if (self.hoverState == 'in') self.show()\r\n }, self.options.delay.show)\r\n }\r\n \r\n Tooltip.prototype.isInStateTrue = function () {\r\n for (var key in this.inState) {\r\n if (this.inState[key]) return true\r\n }\r\n \r\n return false\r\n }\r\n \r\n Tooltip.prototype.leave = function (obj) {\r\n var self = obj instanceof this.constructor ?\r\n obj : $(obj.currentTarget).data('bs.' + this.type)\r\n \r\n if (!self) {\r\n self = new this.constructor(obj.currentTarget, this.getDelegateOptions())\r\n $(obj.currentTarget).data('bs.' + this.type, self)\r\n }\r\n \r\n if (obj instanceof $.Event) {\r\n self.inState[obj.type == 'focusout' ? 'focus' : 'hover'] = false\r\n }\r\n \r\n if (self.isInStateTrue()) return\r\n \r\n clearTimeout(self.timeout)\r\n \r\n self.hoverState = 'out'\r\n \r\n if (!self.options.delay || !self.options.delay.hide) return self.hide()\r\n \r\n self.timeout = setTimeout(function () {\r\n if (self.hoverState == 'out') self.hide()\r\n }, self.options.delay.hide)\r\n }\r\n \r\n Tooltip.prototype.show = function () {\r\n var e = $.Event('show.bs.' + this.type)\r\n \r\n if (this.hasContent() && this.enabled) {\r\n this.$element.trigger(e)\r\n \r\n var inDom = $.contains(this.$element[0].ownerDocument.documentElement, this.$element[0])\r\n if (e.isDefaultPrevented() || !inDom) return\r\n var that = this\r\n \r\n var $tip = this.tip()\r\n \r\n var tipId = this.getUID(this.type)\r\n \r\n this.setContent()\r\n $tip.attr('id', tipId)\r\n this.$element.attr('aria-describedby', tipId)\r\n \r\n if (this.options.animation) $tip.addClass('fade')\r\n \r\n var placement = typeof this.options.placement == 'function' ?\r\n this.options.placement.call(this, $tip[0], this.$element[0]) :\r\n this.options.placement\r\n \r\n var autoToken = /\\s?auto?\\s?/i\r\n var autoPlace = autoToken.test(placement)\r\n if (autoPlace) placement = placement.replace(autoToken, '') || 'top'\r\n \r\n $tip\r\n .detach()\r\n .css({ top: 0, left: 0, display: 'block' })\r\n .addClass(placement)\r\n .data('bs.' + this.type, this)\r\n \r\n this.options.container ? $tip.appendTo(this.options.container) : $tip.insertAfter(this.$element)\r\n this.$element.trigger('inserted.bs.' + this.type)\r\n \r\n var pos = this.getPosition()\r\n var actualWidth = $tip[0].offsetWidth\r\n var actualHeight = $tip[0].offsetHeight\r\n \r\n if (autoPlace) {\r\n var orgPlacement = placement\r\n var viewportDim = this.getPosition(this.$viewport)\r\n \r\n placement = placement == 'bottom' && pos.bottom + actualHeight > viewportDim.bottom ? 'top' :\r\n placement == 'top' && pos.top - actualHeight < viewportDim.top ? 'bottom' :\r\n placement == 'right' && pos.right + actualWidth > viewportDim.width ? 'left' :\r\n placement == 'left' && pos.left - actualWidth < viewportDim.left ? 'right' :\r\n placement\r\n \r\n $tip\r\n .removeClass(orgPlacement)\r\n .addClass(placement)\r\n }\r\n \r\n var calculatedOffset = this.getCalculatedOffset(placement, pos, actualWidth, actualHeight)\r\n \r\n this.applyPlacement(calculatedOffset, placement)\r\n \r\n var complete = function () {\r\n var prevHoverState = that.hoverState\r\n that.$element.trigger('shown.bs.' + that.type)\r\n that.hoverState = null\r\n \r\n if (prevHoverState == 'out') that.leave(that)\r\n }\r\n \r\n $.support.transition && this.$tip.hasClass('fade') ?\r\n $tip\r\n .one('bsTransitionEnd', complete)\r\n .emulateTransitionEnd(Tooltip.TRANSITION_DURATION) :\r\n complete()\r\n }\r\n }\r\n \r\n Tooltip.prototype.applyPlacement = function (offset, placement) {\r\n var $tip = this.tip()\r\n var width = $tip[0].offsetWidth\r\n var height = $tip[0].offsetHeight\r\n \r\n // manually read margins because getBoundingClientRect includes difference\r\n var marginTop = parseInt($tip.css('margin-top'), 10)\r\n var marginLeft = parseInt($tip.css('margin-left'), 10)\r\n \r\n // we must check for NaN for ie 8/9\r\n if (isNaN(marginTop)) marginTop = 0\r\n if (isNaN(marginLeft)) marginLeft = 0\r\n \r\n offset.top += marginTop\r\n offset.left += marginLeft\r\n \r\n // $.fn.offset doesn't round pixel values\r\n // so we use setOffset directly with our own function B-0\r\n $.offset.setOffset($tip[0], $.extend({\r\n using: function (props) {\r\n $tip.css({\r\n top: Math.round(props.top),\r\n left: Math.round(props.left)\r\n })\r\n }\r\n }, offset), 0)\r\n \r\n $tip.addClass('in')\r\n \r\n // check to see if placing tip in new offset caused the tip to resize itself\r\n var actualWidth = $tip[0].offsetWidth\r\n var actualHeight = $tip[0].offsetHeight\r\n \r\n if (placement == 'top' && actualHeight != height) {\r\n offset.top = offset.top + height - actualHeight\r\n }\r\n \r\n var delta = this.getViewportAdjustedDelta(placement, offset, actualWidth, actualHeight)\r\n \r\n if (delta.left) offset.left += delta.left\r\n else offset.top += delta.top\r\n \r\n var isVertical = /top|bottom/.test(placement)\r\n var arrowDelta = isVertical ? delta.left * 2 - width + actualWidth : delta.top * 2 - height + actualHeight\r\n var arrowOffsetPosition = isVertical ? 'offsetWidth' : 'offsetHeight'\r\n \r\n $tip.offset(offset)\r\n this.replaceArrow(arrowDelta, $tip[0][arrowOffsetPosition], isVertical)\r\n }\r\n \r\n Tooltip.prototype.replaceArrow = function (delta, dimension, isVertical) {\r\n this.arrow()\r\n .css(isVertical ? 'left' : 'top', 50 * (1 - delta / dimension) + '%')\r\n .css(isVertical ? 'top' : 'left', '')\r\n }\r\n \r\n Tooltip.prototype.setContent = function () {\r\n var $tip = this.tip()\r\n var title = this.getTitle()\r\n \r\n $tip.find('.tooltip-inner')[this.options.html ? 'html' : 'text'](title)\r\n $tip.removeClass('fade in top bottom left right')\r\n }\r\n \r\n Tooltip.prototype.hide = function (callback) {\r\n var that = this\r\n var $tip = $(this.$tip)\r\n var e = $.Event('hide.bs.' + this.type)\r\n \r\n function complete() {\r\n if (that.hoverState != 'in') $tip.detach()\r\n if (that.$element) { // TODO: Check whether guarding this code with this `if` is really necessary.\r\n that.$element\r\n .removeAttr('aria-describedby')\r\n .trigger('hidden.bs.' + that.type)\r\n }\r\n callback && callback()\r\n }\r\n \r\n this.$element.trigger(e)\r\n \r\n if (e.isDefaultPrevented()) return\r\n \r\n $tip.removeClass('in')\r\n \r\n $.support.transition && $tip.hasClass('fade') ?\r\n $tip\r\n .one('bsTransitionEnd', complete)\r\n .emulateTransitionEnd(Tooltip.TRANSITION_DURATION) :\r\n complete()\r\n \r\n this.hoverState = null\r\n \r\n return this\r\n }\r\n \r\n Tooltip.prototype.fixTitle = function () {\r\n var $e = this.$element\r\n if ($e.attr('title') || typeof $e.attr('data-original-title') != 'string') {\r\n $e.attr('data-original-title', $e.attr('title') || '').attr('title', '')\r\n }\r\n }\r\n \r\n Tooltip.prototype.hasContent = function () {\r\n return this.getTitle()\r\n }\r\n \r\n Tooltip.prototype.getPosition = function ($element) {\r\n $element = $element || this.$element\r\n \r\n var el = $element[0]\r\n var isBody = el.tagName == 'BODY'\r\n \r\n var elRect = el.getBoundingClientRect()\r\n if (elRect.width == null) {\r\n // width and height are missing in IE8, so compute them manually; see https://github.com/twbs/bootstrap/issues/14093\r\n elRect = $.extend({}, elRect, { width: elRect.right - elRect.left, height: elRect.bottom - elRect.top })\r\n }\r\n var isSvg = window.SVGElement && el instanceof window.SVGElement\r\n // Avoid using $.offset() on SVGs since it gives incorrect results in jQuery 3.\r\n // See https://github.com/twbs/bootstrap/issues/20280\r\n var elOffset = isBody ? { top: 0, left: 0 } : (isSvg ? null : $element.offset())\r\n var scroll = { scroll: isBody ? document.documentElement.scrollTop || document.body.scrollTop : $element.scrollTop() }\r\n var outerDims = isBody ? { width: $(window).width(), height: $(window).height() } : null\r\n \r\n return $.extend({}, elRect, scroll, outerDims, elOffset)\r\n }\r\n \r\n Tooltip.prototype.getCalculatedOffset = function (placement, pos, actualWidth, actualHeight) {\r\n return placement == 'bottom' ? { top: pos.top + pos.height, left: pos.left + pos.width / 2 - actualWidth / 2 } :\r\n placement == 'top' ? { top: pos.top - actualHeight, left: pos.left + pos.width / 2 - actualWidth / 2 } :\r\n placement == 'left' ? { top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left - actualWidth } :\r\n /* placement == 'right' */ { top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left + pos.width }\r\n \r\n }\r\n \r\n Tooltip.prototype.getViewportAdjustedDelta = function (placement, pos, actualWidth, actualHeight) {\r\n var delta = { top: 0, left: 0 }\r\n if (!this.$viewport) return delta\r\n \r\n var viewportPadding = this.options.viewport && this.options.viewport.padding || 0\r\n var viewportDimensions = this.getPosition(this.$viewport)\r\n \r\n if (/right|left/.test(placement)) {\r\n var topEdgeOffset = pos.top - viewportPadding - viewportDimensions.scroll\r\n var bottomEdgeOffset = pos.top + viewportPadding - viewportDimensions.scroll + actualHeight\r\n if (topEdgeOffset < viewportDimensions.top) { // top overflow\r\n delta.top = viewportDimensions.top - topEdgeOffset\r\n } else if (bottomEdgeOffset > viewportDimensions.top + viewportDimensions.height) { // bottom overflow\r\n delta.top = viewportDimensions.top + viewportDimensions.height - bottomEdgeOffset\r\n }\r\n } else {\r\n var leftEdgeOffset = pos.left - viewportPadding\r\n var rightEdgeOffset = pos.left + viewportPadding + actualWidth\r\n if (leftEdgeOffset < viewportDimensions.left) { // left overflow\r\n delta.left = viewportDimensions.left - leftEdgeOffset\r\n } else if (rightEdgeOffset > viewportDimensions.right) { // right overflow\r\n delta.left = viewportDimensions.left + viewportDimensions.width - rightEdgeOffset\r\n }\r\n }\r\n \r\n return delta\r\n }\r\n \r\n Tooltip.prototype.getTitle = function () {\r\n var title\r\n var $e = this.$element\r\n var o = this.options\r\n \r\n title = $e.attr('data-original-title')\r\n || (typeof o.title == 'function' ? o.title.call($e[0]) : o.title)\r\n \r\n return title\r\n }\r\n \r\n Tooltip.prototype.getUID = function (prefix) {\r\n do prefix += ~~(Math.random() * 1000000)\r\n while (document.getElementById(prefix))\r\n return prefix\r\n }\r\n \r\n Tooltip.prototype.tip = function () {\r\n if (!this.$tip) {\r\n this.$tip = $(this.options.template)\r\n if (this.$tip.length != 1) {\r\n throw new Error(this.type + ' `template` option must consist of exactly 1 top-level element!')\r\n }\r\n }\r\n return this.$tip\r\n }\r\n \r\n Tooltip.prototype.arrow = function () {\r\n return (this.$arrow = this.$arrow || this.tip().find('.tooltip-arrow'))\r\n }\r\n \r\n Tooltip.prototype.enable = function () {\r\n this.enabled = true\r\n }\r\n \r\n Tooltip.prototype.disable = function () {\r\n this.enabled = false\r\n }\r\n \r\n Tooltip.prototype.toggleEnabled = function () {\r\n this.enabled = !this.enabled\r\n }\r\n \r\n Tooltip.prototype.toggle = function (e) {\r\n var self = this\r\n if (e) {\r\n self = $(e.currentTarget).data('bs.' + this.type)\r\n if (!self) {\r\n self = new this.constructor(e.currentTarget, this.getDelegateOptions())\r\n $(e.currentTarget).data('bs.' + this.type, self)\r\n }\r\n }\r\n \r\n if (e) {\r\n self.inState.click = !self.inState.click\r\n if (self.isInStateTrue()) self.enter(self)\r\n else self.leave(self)\r\n } else {\r\n self.tip().hasClass('in') ? self.leave(self) : self.enter(self)\r\n }\r\n }\r\n \r\n Tooltip.prototype.destroy = function () {\r\n var that = this\r\n clearTimeout(this.timeout)\r\n this.hide(function () {\r\n that.$element.off('.' + that.type).removeData('bs.' + that.type)\r\n if (that.$tip) {\r\n that.$tip.detach()\r\n }\r\n that.$tip = null\r\n that.$arrow = null\r\n that.$viewport = null\r\n that.$element = null\r\n })\r\n }\r\n \r\n \r\n // TOOLTIP PLUGIN DEFINITION\r\n // =========================\r\n \r\n function Plugin(option) {\r\n return this.each(function () {\r\n var $this = $(this)\r\n var data = $this.data('bs.tooltip')\r\n var options = typeof option == 'object' && option\r\n \r\n if (!data && /destroy|hide/.test(option)) return\r\n if (!data) $this.data('bs.tooltip', (data = new Tooltip(this, options)))\r\n if (typeof option == 'string') data[option]()\r\n })\r\n }\r\n \r\n var old = $.fn.tooltip\r\n \r\n $.fn.tooltip = Plugin\r\n $.fn.tooltip.Constructor = Tooltip\r\n \r\n \r\n // TOOLTIP NO CONFLICT\r\n // ===================\r\n \r\n $.fn.tooltip.noConflict = function () {\r\n $.fn.tooltip = old\r\n return this\r\n }\r\n \r\n }(jQuery);\r\n \r\n /* ========================================================================\r\n * Bootstrap: popover.js v3.3.7\r\n * http://getbootstrap.com/javascript/#popovers\r\n * ========================================================================\r\n * Copyright 2011-2016 Twitter, Inc.\r\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\r\n * ======================================================================== */\r\n \r\n \r\n +function ($) {\r\n 'use strict';\r\n \r\n // POPOVER PUBLIC CLASS DEFINITION\r\n // ===============================\r\n \r\n var Popover = function (element, options) {\r\n this.init('popover', element, options)\r\n }\r\n \r\n if (!$.fn.tooltip) throw new Error('Popover requires tooltip.js')\r\n \r\n Popover.VERSION = '3.3.7'\r\n \r\n Popover.DEFAULTS = $.extend({}, $.fn.tooltip.Constructor.DEFAULTS, {\r\n placement: 'right',\r\n trigger: 'click',\r\n content: '',\r\n template: '

'\r\n })\r\n \r\n \r\n // NOTE: POPOVER EXTENDS tooltip.js\r\n // ================================\r\n \r\n Popover.prototype = $.extend({}, $.fn.tooltip.Constructor.prototype)\r\n \r\n Popover.prototype.constructor = Popover\r\n \r\n Popover.prototype.getDefaults = function () {\r\n return Popover.DEFAULTS\r\n }\r\n \r\n Popover.prototype.setContent = function () {\r\n var $tip = this.tip()\r\n var title = this.getTitle()\r\n var content = this.getContent()\r\n \r\n $tip.find('.popover-title')[this.options.html ? 'html' : 'text'](title)\r\n $tip.find('.popover-content').children().detach().end()[ // we use append for html objects to maintain js events\r\n this.options.html ? (typeof content == 'string' ? 'html' : 'append') : 'text'\r\n ](content)\r\n \r\n $tip.removeClass('fade top bottom left right in')\r\n \r\n // IE8 doesn't accept hiding via the `:empty` pseudo selector, we have to do\r\n // this manually by checking the contents.\r\n if (!$tip.find('.popover-title').html()) $tip.find('.popover-title').hide()\r\n }\r\n \r\n Popover.prototype.hasContent = function () {\r\n return this.getTitle() || this.getContent()\r\n }\r\n \r\n Popover.prototype.getContent = function () {\r\n var $e = this.$element\r\n var o = this.options\r\n \r\n return $e.attr('data-content')\r\n || (typeof o.content == 'function' ?\r\n o.content.call($e[0]) :\r\n o.content)\r\n }\r\n \r\n Popover.prototype.arrow = function () {\r\n return (this.$arrow = this.$arrow || this.tip().find('.arrow'))\r\n }\r\n \r\n \r\n // POPOVER PLUGIN DEFINITION\r\n // =========================\r\n \r\n function Plugin(option) {\r\n return this.each(function () {\r\n var $this = $(this)\r\n var data = $this.data('bs.popover')\r\n var options = typeof option == 'object' && option\r\n \r\n if (!data && /destroy|hide/.test(option)) return\r\n if (!data) $this.data('bs.popover', (data = new Popover(this, options)))\r\n if (typeof option == 'string') data[option]()\r\n })\r\n }\r\n \r\n var old = $.fn.popover\r\n \r\n $.fn.popover = Plugin\r\n $.fn.popover.Constructor = Popover\r\n \r\n \r\n // POPOVER NO CONFLICT\r\n // ===================\r\n \r\n $.fn.popover.noConflict = function () {\r\n $.fn.popover = old\r\n return this\r\n }\r\n \r\n }(jQuery);\r\n \r\n /* ========================================================================\r\n * Bootstrap: scrollspy.js v3.3.7\r\n * http://getbootstrap.com/javascript/#scrollspy\r\n * ========================================================================\r\n * Copyright 2011-2016 Twitter, Inc.\r\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\r\n * ======================================================================== */\r\n \r\n \r\n +function ($) {\r\n 'use strict';\r\n \r\n // SCROLLSPY CLASS DEFINITION\r\n // ==========================\r\n \r\n function ScrollSpy(element, options) {\r\n this.$body = $(document.body)\r\n this.$scrollElement = $(element).is(document.body) ? $(window) : $(element)\r\n this.options = $.extend({}, ScrollSpy.DEFAULTS, options)\r\n this.selector = (this.options.target || '') + ' .nav li > a'\r\n this.offsets = []\r\n this.targets = []\r\n this.activeTarget = null\r\n this.scrollHeight = 0\r\n \r\n this.$scrollElement.on('scroll.bs.scrollspy', $.proxy(this.process, this))\r\n this.refresh()\r\n this.process()\r\n }\r\n \r\n ScrollSpy.VERSION = '3.3.7'\r\n \r\n ScrollSpy.DEFAULTS = {\r\n offset: 10\r\n }\r\n \r\n ScrollSpy.prototype.getScrollHeight = function () {\r\n return this.$scrollElement[0].scrollHeight || Math.max(this.$body[0].scrollHeight, document.documentElement.scrollHeight)\r\n }\r\n \r\n ScrollSpy.prototype.refresh = function () {\r\n var that = this\r\n var offsetMethod = 'offset'\r\n var offsetBase = 0\r\n \r\n this.offsets = []\r\n this.targets = []\r\n this.scrollHeight = this.getScrollHeight()\r\n \r\n if (!$.isWindow(this.$scrollElement[0])) {\r\n offsetMethod = 'position'\r\n offsetBase = this.$scrollElement.scrollTop()\r\n }\r\n \r\n this.$body\r\n .find(this.selector)\r\n .map(function () {\r\n var $el = $(this)\r\n var href = $el.data('target') || $el.attr('href')\r\n var $href = /^#./.test(href) && $(href)\r\n \r\n return ($href\r\n && $href.length\r\n && $href.is(':visible')\r\n && [[$href[offsetMethod]().top + offsetBase, href]]) || null\r\n })\r\n .sort(function (a, b) { return a[0] - b[0] })\r\n .each(function () {\r\n that.offsets.push(this[0])\r\n that.targets.push(this[1])\r\n })\r\n }\r\n \r\n ScrollSpy.prototype.process = function () {\r\n var scrollTop = this.$scrollElement.scrollTop() + this.options.offset\r\n var scrollHeight = this.getScrollHeight()\r\n var maxScroll = this.options.offset + scrollHeight - this.$scrollElement.height()\r\n var offsets = this.offsets\r\n var targets = this.targets\r\n var activeTarget = this.activeTarget\r\n var i\r\n \r\n if (this.scrollHeight != scrollHeight) {\r\n this.refresh()\r\n }\r\n \r\n if (scrollTop >= maxScroll) {\r\n return activeTarget != (i = targets[targets.length - 1]) && this.activate(i)\r\n }\r\n \r\n if (activeTarget && scrollTop < offsets[0]) {\r\n this.activeTarget = null\r\n return this.clear()\r\n }\r\n \r\n for (i = offsets.length; i--;) {\r\n activeTarget != targets[i]\r\n && scrollTop >= offsets[i]\r\n && (offsets[i + 1] === undefined || scrollTop < offsets[i + 1])\r\n && this.activate(targets[i])\r\n }\r\n }\r\n \r\n ScrollSpy.prototype.activate = function (target) {\r\n this.activeTarget = target\r\n \r\n this.clear()\r\n \r\n var selector = this.selector +\r\n '[data-target=\"' + target + '\"],' +\r\n this.selector + '[href=\"' + target + '\"]'\r\n \r\n var active = $(selector)\r\n .parents('li')\r\n .addClass('active')\r\n \r\n if (active.parent('.dropdown-menu').length) {\r\n active = active\r\n .closest('li.dropdown')\r\n .addClass('active')\r\n }\r\n \r\n active.trigger('activate.bs.scrollspy')\r\n }\r\n \r\n ScrollSpy.prototype.clear = function () {\r\n $(this.selector)\r\n .parentsUntil(this.options.target, '.active')\r\n .removeClass('active')\r\n }\r\n \r\n \r\n // SCROLLSPY PLUGIN DEFINITION\r\n // ===========================\r\n \r\n function Plugin(option) {\r\n return this.each(function () {\r\n var $this = $(this)\r\n var data = $this.data('bs.scrollspy')\r\n var options = typeof option == 'object' && option\r\n \r\n if (!data) $this.data('bs.scrollspy', (data = new ScrollSpy(this, options)))\r\n if (typeof option == 'string') data[option]()\r\n })\r\n }\r\n \r\n var old = $.fn.scrollspy\r\n \r\n $.fn.scrollspy = Plugin\r\n $.fn.scrollspy.Constructor = ScrollSpy\r\n \r\n \r\n // SCROLLSPY NO CONFLICT\r\n // =====================\r\n \r\n $.fn.scrollspy.noConflict = function () {\r\n $.fn.scrollspy = old\r\n return this\r\n }\r\n \r\n \r\n // SCROLLSPY DATA-API\r\n // ==================\r\n \r\n $(window).on('load.bs.scrollspy.data-api', function () {\r\n $('[data-spy=\"scroll\"]').each(function () {\r\n var $spy = $(this)\r\n Plugin.call($spy, $spy.data())\r\n })\r\n })\r\n \r\n }(jQuery);\r\n \r\n /* ========================================================================\r\n * Bootstrap: tab.js v3.3.7\r\n * http://getbootstrap.com/javascript/#tabs\r\n * ========================================================================\r\n * Copyright 2011-2016 Twitter, Inc.\r\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\r\n * ======================================================================== */\r\n \r\n \r\n +function ($) {\r\n 'use strict';\r\n \r\n // TAB CLASS DEFINITION\r\n // ====================\r\n \r\n var Tab = function (element) {\r\n // jscs:disable requireDollarBeforejQueryAssignment\r\n this.element = $(element)\r\n // jscs:enable requireDollarBeforejQueryAssignment\r\n }\r\n \r\n Tab.VERSION = '3.3.7'\r\n \r\n Tab.TRANSITION_DURATION = 150\r\n \r\n Tab.prototype.show = function () {\r\n var $this = this.element\r\n var $ul = $this.closest('ul:not(.dropdown-menu)')\r\n var selector = $this.data('target')\r\n \r\n if (!selector) {\r\n selector = $this.attr('href')\r\n selector = selector && selector.replace(/.*(?=#[^\\s]*$)/, '') // strip for ie7\r\n }\r\n \r\n if ($this.parent('li').hasClass('active')) return\r\n \r\n var $previous = $ul.find('.active:last a')\r\n var hideEvent = $.Event('hide.bs.tab', {\r\n relatedTarget: $this[0]\r\n })\r\n var showEvent = $.Event('show.bs.tab', {\r\n relatedTarget: $previous[0]\r\n })\r\n \r\n $previous.trigger(hideEvent)\r\n $this.trigger(showEvent)\r\n \r\n if (showEvent.isDefaultPrevented() || hideEvent.isDefaultPrevented()) return\r\n \r\n var $target = $(selector)\r\n \r\n this.activate($this.closest('li'), $ul)\r\n this.activate($target, $target.parent(), function () {\r\n $previous.trigger({\r\n type: 'hidden.bs.tab',\r\n relatedTarget: $this[0]\r\n })\r\n $this.trigger({\r\n type: 'shown.bs.tab',\r\n relatedTarget: $previous[0]\r\n })\r\n })\r\n }\r\n \r\n Tab.prototype.activate = function (element, container, callback) {\r\n var $active = container.find('> .active')\r\n var transition = callback\r\n && $.support.transition\r\n && ($active.length && $active.hasClass('fade') || !!container.find('> .fade').length)\r\n \r\n function next() {\r\n $active\r\n .removeClass('active')\r\n .find('> .dropdown-menu > .active')\r\n .removeClass('active')\r\n .end()\r\n .find('[data-toggle=\"tab\"]')\r\n .attr('aria-expanded', false)\r\n \r\n element\r\n .addClass('active')\r\n .find('[data-toggle=\"tab\"]')\r\n .attr('aria-expanded', true)\r\n \r\n if (transition) {\r\n element[0].offsetWidth // reflow for transition\r\n element.addClass('in')\r\n } else {\r\n element.removeClass('fade')\r\n }\r\n \r\n if (element.parent('.dropdown-menu').length) {\r\n element\r\n .closest('li.dropdown')\r\n .addClass('active')\r\n .end()\r\n .find('[data-toggle=\"tab\"]')\r\n .attr('aria-expanded', true)\r\n }\r\n \r\n callback && callback()\r\n }\r\n \r\n $active.length && transition ?\r\n $active\r\n .one('bsTransitionEnd', next)\r\n .emulateTransitionEnd(Tab.TRANSITION_DURATION) :\r\n next()\r\n \r\n $active.removeClass('in')\r\n }\r\n \r\n \r\n // TAB PLUGIN DEFINITION\r\n // =====================\r\n \r\n function Plugin(option) {\r\n return this.each(function () {\r\n var $this = $(this)\r\n var data = $this.data('bs.tab')\r\n \r\n if (!data) $this.data('bs.tab', (data = new Tab(this)))\r\n if (typeof option == 'string') data[option]()\r\n })\r\n }\r\n \r\n var old = $.fn.tab\r\n \r\n $.fn.tab = Plugin\r\n $.fn.tab.Constructor = Tab\r\n \r\n \r\n // TAB NO CONFLICT\r\n // ===============\r\n \r\n $.fn.tab.noConflict = function () {\r\n $.fn.tab = old\r\n return this\r\n }\r\n \r\n \r\n // TAB DATA-API\r\n // ============\r\n \r\n var clickHandler = function (e) {\r\n e.preventDefault()\r\n Plugin.call($(this), 'show')\r\n }\r\n \r\n $(document)\r\n .on('click.bs.tab.data-api', '[data-toggle=\"tab\"]', clickHandler)\r\n .on('click.bs.tab.data-api', '[data-toggle=\"pill\"]', clickHandler)\r\n \r\n }(jQuery);\r\n \r\n /* ========================================================================\r\n * Bootstrap: affix.js v3.3.7\r\n * http://getbootstrap.com/javascript/#affix\r\n * ========================================================================\r\n * Copyright 2011-2016 Twitter, Inc.\r\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\r\n * ======================================================================== */\r\n \r\n \r\n +function ($) {\r\n 'use strict';\r\n \r\n // AFFIX CLASS DEFINITION\r\n // ======================\r\n \r\n var Affix = function (element, options) {\r\n this.options = $.extend({}, Affix.DEFAULTS, options)\r\n \r\n this.$target = $(this.options.target)\r\n .on('scroll.bs.affix.data-api', $.proxy(this.checkPosition, this))\r\n .on('click.bs.affix.data-api', $.proxy(this.checkPositionWithEventLoop, this))\r\n \r\n this.$element = $(element)\r\n this.affixed = null\r\n this.unpin = null\r\n this.pinnedOffset = null\r\n \r\n this.checkPosition()\r\n }\r\n \r\n Affix.VERSION = '3.3.7'\r\n \r\n Affix.RESET = 'affix affix-top affix-bottom'\r\n \r\n Affix.DEFAULTS = {\r\n offset: 0,\r\n target: window\r\n }\r\n \r\n Affix.prototype.getState = function (scrollHeight, height, offsetTop, offsetBottom) {\r\n var scrollTop = this.$target.scrollTop()\r\n var position = this.$element.offset()\r\n var targetHeight = this.$target.height()\r\n \r\n if (offsetTop != null && this.affixed == 'top') return scrollTop < offsetTop ? 'top' : false\r\n \r\n if (this.affixed == 'bottom') {\r\n if (offsetTop != null) return (scrollTop + this.unpin <= position.top) ? false : 'bottom'\r\n return (scrollTop + targetHeight <= scrollHeight - offsetBottom) ? false : 'bottom'\r\n }\r\n \r\n var initializing = this.affixed == null\r\n var colliderTop = initializing ? scrollTop : position.top\r\n var colliderHeight = initializing ? targetHeight : height\r\n \r\n if (offsetTop != null && scrollTop <= offsetTop) return 'top'\r\n if (offsetBottom != null && (colliderTop + colliderHeight >= scrollHeight - offsetBottom)) return 'bottom'\r\n \r\n return false\r\n }\r\n \r\n Affix.prototype.getPinnedOffset = function () {\r\n if (this.pinnedOffset) return this.pinnedOffset\r\n this.$element.removeClass(Affix.RESET).addClass('affix')\r\n var scrollTop = this.$target.scrollTop()\r\n var position = this.$element.offset()\r\n return (this.pinnedOffset = position.top - scrollTop)\r\n }\r\n \r\n Affix.prototype.checkPositionWithEventLoop = function () {\r\n setTimeout($.proxy(this.checkPosition, this), 1)\r\n }\r\n \r\n Affix.prototype.checkPosition = function () {\r\n if (!this.$element.is(':visible')) return\r\n \r\n var height = this.$element.height()\r\n var offset = this.options.offset\r\n var offsetTop = offset.top\r\n var offsetBottom = offset.bottom\r\n var scrollHeight = Math.max($(document).height(), $(document.body).height())\r\n \r\n if (typeof offset != 'object') offsetBottom = offsetTop = offset\r\n if (typeof offsetTop == 'function') offsetTop = offset.top(this.$element)\r\n if (typeof offsetBottom == 'function') offsetBottom = offset.bottom(this.$element)\r\n \r\n var affix = this.getState(scrollHeight, height, offsetTop, offsetBottom)\r\n \r\n if (this.affixed != affix) {\r\n if (this.unpin != null) this.$element.css('top', '')\r\n \r\n var affixType = 'affix' + (affix ? '-' + affix : '')\r\n var e = $.Event(affixType + '.bs.affix')\r\n \r\n this.$element.trigger(e)\r\n \r\n if (e.isDefaultPrevented()) return\r\n \r\n this.affixed = affix\r\n this.unpin = affix == 'bottom' ? this.getPinnedOffset() : null\r\n \r\n this.$element\r\n .removeClass(Affix.RESET)\r\n .addClass(affixType)\r\n .trigger(affixType.replace('affix', 'affixed') + '.bs.affix')\r\n }\r\n \r\n if (affix == 'bottom') {\r\n this.$element.offset({\r\n top: scrollHeight - height - offsetBottom\r\n })\r\n }\r\n }\r\n \r\n \r\n // AFFIX PLUGIN DEFINITION\r\n // =======================\r\n \r\n function Plugin(option) {\r\n return this.each(function () {\r\n var $this = $(this)\r\n var data = $this.data('bs.affix')\r\n var options = typeof option == 'object' && option\r\n \r\n if (!data) $this.data('bs.affix', (data = new Affix(this, options)))\r\n if (typeof option == 'string') data[option]()\r\n })\r\n }\r\n \r\n var old = $.fn.affix\r\n \r\n $.fn.affix = Plugin\r\n $.fn.affix.Constructor = Affix\r\n \r\n \r\n // AFFIX NO CONFLICT\r\n // =================\r\n \r\n $.fn.affix.noConflict = function () {\r\n $.fn.affix = old\r\n return this\r\n }\r\n \r\n \r\n // AFFIX DATA-API\r\n // ==============\r\n \r\n $(window).on('load', function () {\r\n $('[data-spy=\"affix\"]').each(function () {\r\n var $spy = $(this)\r\n var data = $spy.data()\r\n \r\n data.offset = data.offset || {}\r\n \r\n if (data.offsetBottom != null) data.offset.bottom = data.offsetBottom\r\n if (data.offsetTop != null) data.offset.top = data.offsetTop\r\n \r\n Plugin.call($spy, data)\r\n })\r\n })\r\n \r\n }(jQuery);\r\n "],"sourceRoot":""}