{"version":3,"sources":["../../../dev/j/lib/tooltip.js"],"names":["$","Plugin","option","this","each","$this","data","options","test","Tooltip","element","type","enabled","timeout","hoverState","$element","inState","init","VERSION","TRANSITION_DURATION","DEFAULTS","animation","placement","selector","template","trigger","title","delay","html","container","viewport","padding","prototype","getOptions","$viewport","isFunction","call","click","hover","focus","document","constructor","Error","triggers","split","i","length","on","proxy","toggle","eventIn","eventOut","enter","leave","_options","extend","fixTitle","getDefaults","show","hide","getDelegateOptions","defaults","key","value","obj","self","currentTarget","Event","tip","hasClass","clearTimeout","setTimeout","isInStateTrue","e","hasContent","inDom","contains","ownerDocument","documentElement","isDefaultPrevented","that","$tip","tipId","getUID","setContent","attr","addClass","autoToken","autoPlace","replace","detach","css","top","left","display","appendTo","insertAfter","pos","getPosition","actualWidth","offsetWidth","actualHeight","offsetHeight","orgPlacement","viewportDim","bottom","right","width","removeClass","calculatedOffset","getCalculatedOffset","applyPlacement","complete","prevHoverState","support","transition","one","emulateTransitionEnd","offset","height","marginTop","parseInt","marginLeft","isNaN","setOffset","using","props","Math","round","delta","getViewportAdjustedDelta","isVertical","arrowDelta","arrowOffsetPosition","replaceArrow","dimension","arrow","getTitle","find","callback","removeAttr","$e","el","isBody","tagName","elRect","getBoundingClientRect","isSvg","window","SVGElement","elOffset","scroll","scrollTop","body","outerDims","viewportPadding","viewportDimensions","topEdgeOffset","bottomEdgeOffset","leftEdgeOffset","rightEdgeOffset","o","prefix","random","getElementById","$arrow","enable","disable","toggleEnabled","destroy","off","removeData","old","fn","tooltip","Constructor","noConflict","jQuery"],"mappings":"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","file":"tooltip.js","sourcesContent":["/* ========================================================================\n * Bootstrap: tooltip.js v3.3.7\n * http://getbootstrap.com/javascript/#tooltip\n * Inspired by the original jQuery.tipsy by Jason Frame\n * ========================================================================\n * Copyright 2011-2016 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.7'\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 if (that.$element) { // TODO: Check whether guarding this code with this `if` is really necessary.\n that.$element\n .removeAttr('aria-describedby')\n .trigger('hidden.bs.' + that.type)\n }\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 isSvg = window.SVGElement && el instanceof window.SVGElement\n // Avoid using $.offset() on SVGs since it gives incorrect results in jQuery 3.\n // See https://github.com/twbs/bootstrap/issues/20280\n var elOffset = isBody ? { top: 0, left: 0 } : (isSvg ? null : $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 that.$element = 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"]}