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

'\n })\n\n\n // NOTE: POPOVER EXTENDS tooltip.js\n // ================================\n\n Popover.prototype = $.extend({}, $.fn.tooltip.Constructor.prototype)\n\n Popover.prototype.constructor = Popover\n\n Popover.prototype.getDefaults = function () {\n return Popover.DEFAULTS\n }\n\n Popover.prototype.setContent = function () {\n var $tip = this.tip()\n var title = this.getTitle()\n var content = this.getContent()\n\n $tip.find('.popover-title')[this.options.html ? 'html' : 'text'](title)\n $tip.find('.popover-content').children().detach().end()[ // we use append for html objects to maintain js events\n this.options.html ? (typeof content == 'string' ? 'html' : 'append') : 'text'\n ](content)\n\n $tip.removeClass('fade top bottom left right in')\n\n // IE8 doesn't accept hiding via the `:empty` pseudo selector, we have to do\n // this manually by checking the contents.\n if (!$tip.find('.popover-title').html()) $tip.find('.popover-title').hide()\n }\n\n Popover.prototype.hasContent = function () {\n return this.getTitle() || this.getContent()\n }\n\n Popover.prototype.getContent = function () {\n var $e = this.$element\n var o = this.options\n\n return $e.attr('data-content')\n || (typeof o.content == 'function' ?\n o.content.call($e[0]) :\n o.content)\n }\n\n Popover.prototype.arrow = function () {\n return (this.$arrow = this.$arrow || this.tip().find('.arrow'))\n }\n\n\n // POPOVER PLUGIN DEFINITION\n // =========================\n\n function Plugin(option) {\n return this.each(function () {\n var $this = $(this)\n var data = $this.data('bs.popover')\n var options = typeof option == 'object' && option\n\n if (!data && /destroy|hide/.test(option)) return\n if (!data) $this.data('bs.popover', (data = new Popover(this, options)))\n if (typeof option == 'string') data[option]()\n })\n }\n\n var old = $.fn.popover\n\n $.fn.popover = Plugin\n $.fn.popover.Constructor = Popover\n\n\n // POPOVER NO CONFLICT\n // ===================\n\n $.fn.popover.noConflict = function () {\n $.fn.popover = old\n return this\n }\n\n}(jQuery);\n\n/* ========================================================================\n * Bootstrap: scrollspy.js v3.3.5\n * http://getbootstrap.com/javascript/#scrollspy\n * ========================================================================\n * Copyright 2011-2015 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n 'use strict';\n\n // SCROLLSPY CLASS DEFINITION\n // ==========================\n\n function ScrollSpy(element, options) {\n this.$body = $(document.body)\n this.$scrollElement = $(element).is(document.body) ? $(window) : $(element)\n this.options = $.extend({}, ScrollSpy.DEFAULTS, options)\n this.selector = (this.options.target || '') + ' .nav li > a'\n this.offsets = []\n this.targets = []\n this.activeTarget = null\n this.scrollHeight = 0\n\n this.$scrollElement.on('scroll.bs.scrollspy', $.proxy(this.process, this))\n this.refresh()\n this.process()\n }\n\n ScrollSpy.VERSION = '3.3.5'\n\n ScrollSpy.DEFAULTS = {\n offset: 10\n }\n\n ScrollSpy.prototype.getScrollHeight = function () {\n return this.$scrollElement[0].scrollHeight || Math.max(this.$body[0].scrollHeight, document.documentElement.scrollHeight)\n }\n\n ScrollSpy.prototype.refresh = function () {\n var that = this\n var offsetMethod = 'offset'\n var offsetBase = 0\n\n this.offsets = []\n this.targets = []\n this.scrollHeight = this.getScrollHeight()\n\n if (!$.isWindow(this.$scrollElement[0])) {\n offsetMethod = 'position'\n offsetBase = this.$scrollElement.scrollTop()\n }\n\n this.$body\n .find(this.selector)\n .map(function () {\n var $el = $(this)\n var href = $el.data('target') || $el.attr('href')\n var $href = /^#./.test(href) && $(href)\n\n return ($href\n && $href.length\n && $href.is(':visible')\n && [[$href[offsetMethod]().top + offsetBase, href]]) || null\n })\n .sort(function (a, b) { return a[0] - b[0] })\n .each(function () {\n that.offsets.push(this[0])\n that.targets.push(this[1])\n })\n }\n\n ScrollSpy.prototype.process = function () {\n var scrollTop = this.$scrollElement.scrollTop() + this.options.offset\n var scrollHeight = this.getScrollHeight()\n var maxScroll = this.options.offset + scrollHeight - this.$scrollElement.height()\n var offsets = this.offsets\n var targets = this.targets\n var activeTarget = this.activeTarget\n var i\n\n if (this.scrollHeight != scrollHeight) {\n this.refresh()\n }\n\n if (scrollTop >= maxScroll) {\n return activeTarget != (i = targets[targets.length - 1]) && this.activate(i)\n }\n\n if (activeTarget && scrollTop < offsets[0]) {\n this.activeTarget = null\n return this.clear()\n }\n\n for (i = offsets.length; i--;) {\n activeTarget != targets[i]\n && scrollTop >= offsets[i]\n && (offsets[i + 1] === undefined || scrollTop < offsets[i + 1])\n && this.activate(targets[i])\n }\n }\n\n ScrollSpy.prototype.activate = function (target) {\n this.activeTarget = target\n\n this.clear()\n\n var selector = this.selector +\n '[data-target=\"' + target + '\"],' +\n this.selector + '[href=\"' + target + '\"]'\n\n var active = $(selector)\n .parents('li')\n .addClass('active')\n\n if (active.parent('.dropdown-menu').length) {\n active = active\n .closest('li.dropdown')\n .addClass('active')\n }\n\n active.trigger('activate.bs.scrollspy')\n }\n\n ScrollSpy.prototype.clear = function () {\n $(this.selector)\n .parentsUntil(this.options.target, '.active')\n .removeClass('active')\n }\n\n\n // SCROLLSPY PLUGIN DEFINITION\n // ===========================\n\n function Plugin(option) {\n return this.each(function () {\n var $this = $(this)\n var data = $this.data('bs.scrollspy')\n var options = typeof option == 'object' && option\n\n if (!data) $this.data('bs.scrollspy', (data = new ScrollSpy(this, options)))\n if (typeof option == 'string') data[option]()\n })\n }\n\n var old = $.fn.scrollspy\n\n $.fn.scrollspy = Plugin\n $.fn.scrollspy.Constructor = ScrollSpy\n\n\n // SCROLLSPY NO CONFLICT\n // =====================\n\n $.fn.scrollspy.noConflict = function () {\n $.fn.scrollspy = old\n return this\n }\n\n\n // SCROLLSPY DATA-API\n // ==================\n\n $(window).on('load.bs.scrollspy.data-api', function () {\n $('[data-spy=\"scroll\"]').each(function () {\n var $spy = $(this)\n Plugin.call($spy, $spy.data())\n })\n })\n\n}(jQuery);\n\n/* ========================================================================\n * Bootstrap: tab.js v3.3.5\n * http://getbootstrap.com/javascript/#tabs\n * ========================================================================\n * Copyright 2011-2015 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n 'use strict';\n\n // TAB CLASS DEFINITION\n // ====================\n\n var Tab = function (element) {\n // jscs:disable requireDollarBeforejQueryAssignment\n this.element = $(element)\n // jscs:enable requireDollarBeforejQueryAssignment\n }\n\n Tab.VERSION = '3.3.5'\n\n Tab.TRANSITION_DURATION = 150\n\n Tab.prototype.show = function () {\n var $this = this.element\n var $ul = $this.closest('ul:not(.dropdown-menu)')\n var selector = $this.data('target')\n\n if (!selector) {\n selector = $this.attr('href')\n selector = selector && selector.replace(/.*(?=#[^\\s]*$)/, '') // strip for ie7\n }\n\n if ($this.parent('li').hasClass('active')) return\n\n var $previous = $ul.find('.active:last a')\n var hideEvent = $.Event('hide.bs.tab', {\n relatedTarget: $this[0]\n })\n var showEvent = $.Event('show.bs.tab', {\n relatedTarget: $previous[0]\n })\n\n $previous.trigger(hideEvent)\n $this.trigger(showEvent)\n\n if (showEvent.isDefaultPrevented() || hideEvent.isDefaultPrevented()) return\n\n var $target = $(selector)\n\n this.activate($this.closest('li'), $ul)\n this.activate($target, $target.parent(), function () {\n $previous.trigger({\n type: 'hidden.bs.tab',\n relatedTarget: $this[0]\n })\n $this.trigger({\n type: 'shown.bs.tab',\n relatedTarget: $previous[0]\n })\n })\n }\n\n Tab.prototype.activate = function (element, container, callback) {\n var $active = container.find('> .active')\n var transition = callback\n && $.support.transition\n && ($active.length && $active.hasClass('fade') || !!container.find('> .fade').length)\n\n function next() {\n $active\n .removeClass('active')\n .find('> .dropdown-menu > .active')\n .removeClass('active')\n .end()\n .find('[data-toggle=\"tab\"]')\n .attr('aria-expanded', false)\n\n element\n .addClass('active')\n .find('[data-toggle=\"tab\"]')\n .attr('aria-expanded', true)\n\n if (transition) {\n element[0].offsetWidth // reflow for transition\n element.addClass('in')\n } else {\n element.removeClass('fade')\n }\n\n if (element.parent('.dropdown-menu').length) {\n element\n .closest('li.dropdown')\n .addClass('active')\n .end()\n .find('[data-toggle=\"tab\"]')\n .attr('aria-expanded', true)\n }\n\n callback && callback()\n }\n\n $active.length && transition ?\n $active\n .one('bsTransitionEnd', next)\n .emulateTransitionEnd(Tab.TRANSITION_DURATION) :\n next()\n\n $active.removeClass('in')\n }\n\n\n // TAB PLUGIN DEFINITION\n // =====================\n\n function Plugin(option) {\n return this.each(function () {\n var $this = $(this)\n var data = $this.data('bs.tab')\n\n if (!data) $this.data('bs.tab', (data = new Tab(this)))\n if (typeof option == 'string') data[option]()\n })\n }\n\n var old = $.fn.tab\n\n $.fn.tab = Plugin\n $.fn.tab.Constructor = Tab\n\n\n // TAB NO CONFLICT\n // ===============\n\n $.fn.tab.noConflict = function () {\n $.fn.tab = old\n return this\n }\n\n\n // TAB DATA-API\n // ============\n\n var clickHandler = function (e) {\n e.preventDefault()\n Plugin.call($(this), 'show')\n }\n\n $(document)\n .on('click.bs.tab.data-api', '[data-toggle=\"tab\"]', clickHandler)\n .on('click.bs.tab.data-api', '[data-toggle=\"pill\"]', clickHandler)\n\n}(jQuery);\n\n/* ========================================================================\n * Bootstrap: affix.js v3.3.5\n * http://getbootstrap.com/javascript/#affix\n * ========================================================================\n * Copyright 2011-2015 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n 'use strict';\n\n // AFFIX CLASS DEFINITION\n // ======================\n\n var Affix = function (element, options) {\n this.options = $.extend({}, Affix.DEFAULTS, options)\n\n this.$target = $(this.options.target)\n .on('scroll.bs.affix.data-api', $.proxy(this.checkPosition, this))\n .on('click.bs.affix.data-api', $.proxy(this.checkPositionWithEventLoop, this))\n\n this.$element = $(element)\n this.affixed = null\n this.unpin = null\n this.pinnedOffset = null\n\n this.checkPosition()\n }\n\n Affix.VERSION = '3.3.5'\n\n Affix.RESET = 'affix affix-top affix-bottom'\n\n Affix.DEFAULTS = {\n offset: 0,\n target: window\n }\n\n Affix.prototype.getState = function (scrollHeight, height, offsetTop, offsetBottom) {\n var scrollTop = this.$target.scrollTop()\n var position = this.$element.offset()\n var targetHeight = this.$target.height()\n\n if (offsetTop != null && this.affixed == 'top') return scrollTop < offsetTop ? 'top' : false\n\n if (this.affixed == 'bottom') {\n if (offsetTop != null) return (scrollTop + this.unpin <= position.top) ? false : 'bottom'\n return (scrollTop + targetHeight <= scrollHeight - offsetBottom) ? false : 'bottom'\n }\n\n var initializing = this.affixed == null\n var colliderTop = initializing ? scrollTop : position.top\n var colliderHeight = initializing ? targetHeight : height\n\n if (offsetTop != null && scrollTop <= offsetTop) return 'top'\n if (offsetBottom != null && (colliderTop + colliderHeight >= scrollHeight - offsetBottom)) return 'bottom'\n\n return false\n }\n\n Affix.prototype.getPinnedOffset = function () {\n if (this.pinnedOffset) return this.pinnedOffset\n this.$element.removeClass(Affix.RESET).addClass('affix')\n var scrollTop = this.$target.scrollTop()\n var position = this.$element.offset()\n return (this.pinnedOffset = position.top - scrollTop)\n }\n\n Affix.prototype.checkPositionWithEventLoop = function () {\n setTimeout($.proxy(this.checkPosition, this), 1)\n }\n\n Affix.prototype.checkPosition = function () {\n if (!this.$element.is(':visible')) return\n\n var height = this.$element.height()\n var offset = this.options.offset\n var offsetTop = offset.top\n var offsetBottom = offset.bottom\n var scrollHeight = Math.max($(document).height(), $(document.body).height())\n\n if (typeof offset != 'object') offsetBottom = offsetTop = offset\n if (typeof offsetTop == 'function') offsetTop = offset.top(this.$element)\n if (typeof offsetBottom == 'function') offsetBottom = offset.bottom(this.$element)\n\n var affix = this.getState(scrollHeight, height, offsetTop, offsetBottom)\n\n if (this.affixed != affix) {\n if (this.unpin != null) this.$element.css('top', '')\n\n var affixType = 'affix' + (affix ? '-' + affix : '')\n var e = $.Event(affixType + '.bs.affix')\n\n this.$element.trigger(e)\n\n if (e.isDefaultPrevented()) return\n\n this.affixed = affix\n this.unpin = affix == 'bottom' ? this.getPinnedOffset() : null\n\n this.$element\n .removeClass(Affix.RESET)\n .addClass(affixType)\n .trigger(affixType.replace('affix', 'affixed') + '.bs.affix')\n }\n\n if (affix == 'bottom') {\n this.$element.offset({\n top: scrollHeight - height - offsetBottom\n })\n }\n }\n\n\n // AFFIX PLUGIN DEFINITION\n // =======================\n\n function Plugin(option) {\n return this.each(function () {\n var $this = $(this)\n var data = $this.data('bs.affix')\n var options = typeof option == 'object' && option\n\n if (!data) $this.data('bs.affix', (data = new Affix(this, options)))\n if (typeof option == 'string') data[option]()\n })\n }\n\n var old = $.fn.affix\n\n $.fn.affix = Plugin\n $.fn.affix.Constructor = Affix\n\n\n // AFFIX NO CONFLICT\n // =================\n\n $.fn.affix.noConflict = function () {\n $.fn.affix = old\n return this\n }\n\n\n // AFFIX DATA-API\n // ==============\n\n $(window).on('load', function () {\n $('[data-spy=\"affix\"]').each(function () {\n var $spy = $(this)\n var data = $spy.data()\n\n data.offset = data.offset || {}\n\n if (data.offsetBottom != null) data.offset.bottom = data.offsetBottom\n if (data.offsetTop != null) data.offset.top = data.offsetTop\n\n Plugin.call($spy, data)\n })\n })\n\n}(jQuery);\n"],"names":["jQuery","Error","$","version","fn","jquery","split","transitionEnd","el","document","createElement","transEndEventNames","WebkitTransition","MozTransition","OTransition","transition","name","undefined","style","end","emulateTransitionEnd","duration","called","$el","this","one","callback","trigger","support","setTimeout","event","special","bsTransitionEnd","bindType","delegateType","handle","e","target","is","handleObj","handler","apply","arguments","Plugin","option","each","$this","data","Alert","call","dismiss","on","close","VERSION","TRANSITION_DURATION","prototype","removeElement","$parent","detach","remove","selector","attr","replace","preventDefault","length","closest","Event","isDefaultPrevented","removeClass","hasClass","old","alert","Constructor","noConflict","options","Button","toggle","setState","element","$element","extend","DEFAULTS","isLoading","loadingText","state","d","val","resetText","proxy","addClass","removeAttr","changed","$input","find","prop","toggleClass","button","$btn","test","type","Carousel","action","slide","to","interval","pause","cycle","$indicators","paused","sliding","$active","$items","keyboard","keydown","documentElement","wrap","tagName","which","prev","next","clearInterval","setInterval","getItemIndex","item","parent","children","index","getItemForDirection","direction","active","activeIndex","willWrap","delta","itemIndex","eq","pos","that","$next","isCycling","relatedTarget","slideEvent","$nextIndicator","slidEvent","offsetWidth","join","carousel","clickHandler","href","$target","slideIndex","window","$carousel","getTargetFromTrigger","$trigger","Collapse","id","transitioning","getParent","addAriaAndCollapsedClass","dimension","hasWidth","show","activesData","actives","startEvent","complete","scrollSize","camelCase","hide","offsetHeight","i","isOpen","collapse","clearMenus","backdrop","contains","Dropdown","isActive","insertAfter","stopPropagation","desc","dropdown","_relatedTarget","Modal","$body","body","$dialog","$backdrop","isShown","originalBodyPad","scrollbarWidth","ignoreBackdropClick","remote","load","BACKDROP_TRANSITION_DURATION","checkScrollbar","setScrollbar","escape","resize","appendTo","scrollTop","adjustDialog","enforceFocus","off","hideModal","has","handleUpdate","resetAdjustments","resetScrollbar","removeBackdrop","animate","doAnimate","currentTarget","focus","callbackRemove","modalIsOverflowing","scrollHeight","clientHeight","css","paddingLeft","bodyIsOverflowing","paddingRight","fullWindowWidth","innerWidth","documentElementRect","getBoundingClientRect","right","Math","abs","left","clientWidth","measureScrollbar","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","getViewportAdjustedDelta","isVertical","arrowDelta","arrowOffsetPosition","replaceArrow","arrow","getTitle","$e","isBody","elRect","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","colliderHeight","getPinnedOffset","affix","affixType"],"mappings":"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"}