{"version":3,"file":"popover-ia.min.js","sources":["Scripts/commun/lib/plugins/BootStrap/popover-ia.js"],"sourcesContent":["/* ========================================================================\r\n * Bootstrap: tooltip.js v3.3.1\r\n * http://getbootstrap.com/javascript/#tooltip\r\n * Inspired by the original jQuery.tipsy by Jason Frame\r\n * ========================================================================\r\n * Copyright 2011-2014 Twitter, Inc.\r\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\r\n * ======================================================================== */\n\n// + \n\n/* ========================================================================\r\n * Bootstrap: popover.js v3.3.1\r\n * http://getbootstrap.com/javascript/#popovers\r\n * ========================================================================\r\n * Copyright 2011-2014 Twitter, Inc.\r\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\r\n * ======================================================================== */\n\n+function ($) {\n 'use strict';\n\n // TOOLTIP PUBLIC CLASS DEFINITION\n // ===============================\n var Tooltip = function Tooltip(element, options) {\n this.type = this.options = this.enabled = this.timeout = this.hoverState = this.$element = null;\n this.init('tooltip', element, options);\n };\n Tooltip.VERSION = '3.3.1';\n Tooltip.TRANSITION_DURATION = 150;\n Tooltip.DEFAULTS = {\n animation: true,\n placement: 'top',\n selector: false,\n template: '<div class=\"tooltip\" role=\"tooltip\"><div class=\"tooltip-arrow\"></div><div class=\"tooltip-inner\"></div></div>',\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 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 && $(this.options.viewport.selector || this.options.viewport);\n var triggers = this.options.trigger.split(' ');\n for (var i = triggers.length; i--;) {\n var trigger = triggers[i];\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 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 this.options.selector ? this._options = $.extend({}, this.options, {\n trigger: 'manual',\n selector: ''\n }) : this.fixTitle();\n };\n Tooltip.prototype.getDefaults = function () {\n return Tooltip.DEFAULTS;\n };\n Tooltip.prototype.getOptions = function (options) {\n options = $.extend({}, this.getDefaults(), this.$element.data(), options);\n if (options.delay && typeof options.delay == 'number') {\n options.delay = {\n show: options.delay,\n hide: options.delay\n };\n }\n return options;\n };\n Tooltip.prototype.getDelegateOptions = function () {\n var options = {};\n var defaults = this.getDefaults();\n this._options && $.each(this._options, function (key, value) {\n if (defaults[key] != value) options[key] = value;\n });\n return options;\n };\n Tooltip.prototype.enter = function (obj) {\n var self = obj instanceof this.constructor ? obj : $(obj.currentTarget).data('bs.' + this.type);\n if (self && self.$tip && self.$tip.is(':visible')) {\n self.hoverState = 'in';\n return;\n }\n if (!self) {\n self = new this.constructor(obj.currentTarget, this.getDelegateOptions());\n $(obj.currentTarget).data('bs.' + this.type, self);\n }\n clearTimeout(self.timeout);\n self.hoverState = 'in';\n if (!self.options.delay || !self.options.delay.show) return self.show();\n self.timeout = setTimeout(function () {\n if (self.hoverState == 'in') self.show();\n }, self.options.delay.show);\n };\n Tooltip.prototype.leave = function (obj) {\n var self = obj instanceof this.constructor ? obj : $(obj.currentTarget).data('bs.' + this.type);\n if (!self) {\n self = new this.constructor(obj.currentTarget, this.getDelegateOptions());\n $(obj.currentTarget).data('bs.' + this.type, self);\n }\n clearTimeout(self.timeout);\n self.hoverState = 'out';\n if (!self.options.delay || !self.options.delay.hide) return self.hide();\n self.timeout = setTimeout(function () {\n if (self.hoverState == 'out') self.hide();\n }, self.options.delay.hide);\n };\n Tooltip.prototype.show = function () {\n var e = $.Event('show.bs.' + this.type);\n if (this.hasContent() && this.enabled) {\n this.$element.trigger(e);\n var inDom = $.contains(this.$element[0].ownerDocument.documentElement, this.$element[0]);\n if (e.isDefaultPrevented() || !inDom) return;\n var that = this;\n var $tip = this.tip();\n var tipId = this.getUID(this.type);\n this.setContent();\n $tip.attr('id', tipId);\n this.$element.attr('aria-describedby', tipId);\n if (this.options.animation) $tip.addClass('fade');\n var placement = typeof this.options.placement == 'function' ? this.options.placement.call(this, $tip[0], this.$element[0]) : this.options.placement;\n var autoToken = /\\s?auto?\\s?/i;\n var autoPlace = autoToken.test(placement);\n if (autoPlace) placement = placement.replace(autoToken, '') || 'top';\n $tip.detach().css({\n top: 0,\n left: 0,\n display: 'block'\n }).addClass(placement).data('bs.' + this.type, this);\n this.options.container ? $tip.appendTo(this.options.container) : $tip.insertAfter(this.$element);\n var pos = this.getPosition();\n var actualWidth = $tip[0].offsetWidth;\n var actualHeight = $tip[0].offsetHeight;\n if (autoPlace) {\n var orgPlacement = placement;\n var $container = this.options.container ? $(this.options.container) : this.$element.parent();\n var containerDim = this.getPosition($container);\n placement = placement == 'bottom' && pos.bottom + actualHeight > containerDim.bottom ? 'top' : placement == 'top' && pos.top - actualHeight < containerDim.top ? 'bottom' : placement == 'right' && pos.right + actualWidth > containerDim.width ? 'left' : placement == 'left' && pos.left - actualWidth < containerDim.left ? 'right' : placement;\n $tip.removeClass(orgPlacement).addClass(placement);\n }\n var calculatedOffset = this.getCalculatedOffset(placement, pos, actualWidth, actualHeight);\n this.applyPlacement(calculatedOffset, placement);\n var complete = function complete() {\n var prevHoverState = that.hoverState;\n that.$element.trigger('shown.bs.' + that.type);\n that.hoverState = null;\n if (prevHoverState == 'out') that.leave(that);\n };\n $.support.transition && this.$tip.hasClass('fade') ? $tip.one('bsTransitionEnd', complete).emulateTransitionEnd(Tooltip.TRANSITION_DURATION) : complete();\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 offset.top = offset.top + marginTop;\n offset.left = 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 using(props) {\n $tip.css({\n top: Math.round(props.top),\n left: Math.round(props.left)\n });\n }\n }, offset), 0);\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 if (placement == 'top' && actualHeight != height) {\n offset.top = offset.top + height - actualHeight;\n }\n var delta = this.getViewportAdjustedDelta(placement, offset, actualWidth, actualHeight);\n if (delta.left) offset.left += delta.left;else offset.top += delta.top;\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 $tip.offset(offset);\n this.replaceArrow(arrowDelta, $tip[0][arrowOffsetPosition], isVertical);\n };\n Tooltip.prototype.replaceArrow = function (delta, dimension, isHorizontal) {\n this.arrow().css(isHorizontal ? 'left' : 'top', 50 * (1 - delta / dimension) + '%').css(isHorizontal ? 'top' : 'left', '');\n };\n Tooltip.prototype.setContent = function () {\n var $tip = this.tip();\n var title = this.getTitle();\n $tip.find('.tooltip-inner')[this.options.html ? 'html' : 'text'](title);\n $tip.removeClass('fade in top bottom left right');\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 function complete() {\n if (that.hoverState != 'in') $tip.detach();\n that.$element.removeAttr('aria-describedby').trigger('hidden.bs.' + that.type);\n callback && callback();\n }\n this.$element.trigger(e);\n if (e.isDefaultPrevented()) return;\n $tip.removeClass('in');\n $.support.transition && this.$tip.hasClass('fade') ? $tip.one('bsTransitionEnd', complete).emulateTransitionEnd(Tooltip.TRANSITION_DURATION) : complete();\n this.hoverState = null;\n return this;\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 Tooltip.prototype.hasContent = function () {\n return this.getTitle();\n };\n Tooltip.prototype.getPosition = function ($element) {\n $element = $element || this.$element;\n var el = $element[0];\n var isBody = el.tagName == 'BODY';\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, {\n width: elRect.right - elRect.left,\n height: elRect.bottom - elRect.top\n });\n }\n var elOffset = isBody ? {\n top: 0,\n left: 0\n } : $element.offset();\n var scroll = {\n scroll: isBody ? document.documentElement.scrollTop || document.body.scrollTop : $element.scrollTop()\n };\n var outerDims = isBody ? {\n width: $(window).width(),\n height: $(window).height()\n } : null;\n return $.extend({}, elRect, scroll, outerDims, elOffset);\n };\n Tooltip.prototype.getCalculatedOffset = function (placement, pos, actualWidth, actualHeight) {\n return placement == 'bottom' ? {\n top: pos.top + pos.height,\n left: pos.left + pos.width / 2 - actualWidth / 2\n } : placement == 'top' ? {\n top: pos.top - actualHeight,\n left: pos.left + pos.width / 2 - actualWidth / 2\n } : placement == 'left' ? {\n top: pos.top + pos.height / 2 - actualHeight / 2,\n left: pos.left - actualWidth\n } : /* placement == 'right' */{\n top: pos.top + pos.height / 2 - actualHeight / 2,\n left: pos.left + pos.width\n };\n };\n Tooltip.prototype.getViewportAdjustedDelta = function (placement, pos, actualWidth, actualHeight) {\n var delta = {\n top: 0,\n left: 0\n };\n if (!this.$viewport) return delta;\n var viewportPadding = this.options.viewport && this.options.viewport.padding || 0;\n var viewportDimensions = this.getPosition(this.$viewport);\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) {\n // top overflow\n delta.top = viewportDimensions.top - topEdgeOffset;\n } else if (bottomEdgeOffset > viewportDimensions.top + viewportDimensions.height) {\n // 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) {\n // left overflow\n delta.left = viewportDimensions.left - leftEdgeOffset;\n } else if (rightEdgeOffset > viewportDimensions.width) {\n // right overflow\n delta.left = viewportDimensions.left + viewportDimensions.width - rightEdgeOffset;\n }\n }\n return delta;\n };\n Tooltip.prototype.getTitle = function () {\n var title;\n var $e = this.$element;\n var o = this.options;\n title = $e.attr('data-original-title') || (typeof o.title == 'function' ? o.title.call($e[0]) : o.title);\n return title;\n };\n Tooltip.prototype.getUID = function (prefix) {\n do prefix += ~~(Math.random() * 1000000); while (document.getElementById(prefix));\n return prefix;\n };\n Tooltip.prototype.tip = function () {\n return this.$tip = this.$tip || $(this.options.template);\n };\n Tooltip.prototype.arrow = function () {\n return this.$arrow = this.$arrow || this.tip().find('.tooltip-arrow');\n };\n Tooltip.prototype.enable = function () {\n this.enabled = true;\n };\n Tooltip.prototype.disable = function () {\n this.enabled = false;\n };\n Tooltip.prototype.toggleEnabled = function () {\n this.enabled = !this.enabled;\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 self.tip().hasClass('in') ? self.leave(self) : self.enter(self);\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 });\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 var selector = options && options.selector;\n if (!data && option == 'destroy') return;\n if (selector) {\n if (!data) $this.data('bs.tooltip', data = {});\n if (!data[selector]) data[selector] = new Tooltip(this, options);\n } else {\n if (!data) $this.data('bs.tooltip', data = new Tooltip(this, options));\n }\n if (typeof option == 'string') data[option]();\n });\n }\n var old = $.fn.tooltip;\n $.fn.tooltip = Plugin;\n $.fn.tooltip.constructor = Tooltip;\n\n // TOOLTIP NO CONFLICT\n // ===================\n\n $.fn.tooltip.noConflict = function () {\n $.fn.tooltip = old;\n return this;\n };\n\n // PROPERLY CLOSE TOOLTIP\n // ===================\n $('body').on('click', function (e) {\n //only buttons\n if ($(e.target).data('toggle') !== 'popover' && $(e.target).parents('.popover.in').length === 0 || $(e.target).attr('id') === 'close' || $(e.target).hasClass(\"icone-validation-erreur\")) {\n $('[data-toggle=\"popover\"]').popover('hide');\n } else {\n e.preventDefault();\n }\n\n //buttons and icons within buttons\n if ($(e.target).data('toggle') !== 'popover' && $(e.target).parents('[data-toggle=\"popover\"]').length === 0 && $(e.target).parents('.popover.in').length === 0) {\n $('[data-toggle=\"popover\"]').popover('hide');\n } else {\n e.preventDefault();\n }\n });\n}(jQuery);\n\n/* ========================================================================\r\n * Bootstrap: popover.js v3.3.1\r\n * http://getbootstrap.com/javascript/#popovers\r\n * ========================================================================\r\n * Copyright 2011-2014 Twitter, Inc.\r\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\r\n * ======================================================================== */\n\n+function ($) {\n 'use strict';\n\n // POPOVER PUBLIC CLASS DEFINITION\n // ===============================\n var Popover = function Popover(element, options) {\n this.init('popover', element, options);\n };\n if (!$.fn.tooltip) throw new Error('Popover requires tooltip.js');\n Popover.VERSION = '3.3.1';\n Popover.DEFAULTS = $.extend({}, $.fn.tooltip.constructor.DEFAULTS, {\n placement: 'right',\n trigger: 'click',\n content: '',\n template: '<div class=\"popover\" role=\"tooltip\"><div class=\"arrow\"></div><div class=\"popover-content\"></div><button id=\"close\"><span class=\"icone-validation-erreur\"></span></button></div>'\n });\n\n // NOTE: POPOVER EXTENDS tooltip.js\n // ================================\n\n Popover.prototype = $.extend({}, $.fn.tooltip.constructor.prototype);\n Popover.prototype.constructor = Popover;\n Popover.prototype.getDefaults = function () {\n return Popover.DEFAULTS;\n };\n Popover.prototype.setContent = function () {\n var $tip = this.tip();\n var title = this.getTitle();\n var content = this.getContent();\n $tip.find('.popover-title')[this.options.html ? 'html' : 'text'](title);\n $tip.find('.popover-content').children().detach().end()[\n // we use append for html objects to maintain js events\n this.options.html ? typeof content == 'string' ? 'html' : 'append' : 'text'](content);\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 Popover.prototype.hasContent = function () {\n return this.getTitle() || this.getContent();\n };\n Popover.prototype.getContent = function () {\n var $e = this.$element;\n var o = this.options;\n return $e.attr('data-content') || (typeof o.content == 'function' ? o.content.call($e[0]) : o.content);\n };\n Popover.prototype.arrow = function () {\n return this.$arrow = this.$arrow || this.tip().find('.arrow');\n };\n Popover.prototype.tip = function () {\n if (!this.$tip) this.$tip = $(this.options.template);\n return this.$tip;\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 var selector = options && options.selector;\n if (!data && option == 'destroy') return;\n if (selector) {\n if (!data) $this.data('bs.popover', data = {});\n if (!data[selector]) data[selector] = new Popover(this, options);\n } else {\n if (!data) $this.data('bs.popover', data = new Popover(this, options));\n }\n if (typeof option == 'string') data[option]();\n });\n }\n var old = $.fn.popover;\n $.fn.popover = Plugin;\n $.fn.popover.Constructor = Popover;\n\n // POPOVER NO CONFLICT\n // ===================\n\n $.fn.popover.noConflict = function () {\n $.fn.popover = old;\n return this;\n };\n}(jQuery);\n+function ($) {\n var $currentPopover = null;\n $(document).on('show.bs.popover', function (ev) {\n var $target = $(ev.target);\n if ($currentPopover && $currentPopover.get(0) != $target.get(0)) {\n $currentPopover.popover('toggle');\n }\n $currentPopover = $target;\n });\n $(document).on('hide.bs.popover', function (ev) {\n var $target = $(ev.target);\n if ($currentPopover && $currentPopover.get(0) == $target.get(0)) {\n $currentPopover = null;\n }\n });\n\n //Pour les popover\n // s'assure de ne pas l'appliquer si il l'a déja été\n $(\".btn-popover\").popover({\n trigger: 'click'\n });\n}(jQuery);"],"names":["$","Tooltip","element","options","this","type","enabled","timeout","hoverState","$element","init","VERSION","TRANSITION_DURATION","DEFAULTS","animation","placement","selector","template","trigger","title","delay","html","container","viewport","padding","prototype","getOptions","$viewport","triggers","split","i","length","eventOut","on","proxy","toggle","enter","leave","_options","extend","fixTitle","getDefaults","data","show","hide","getDelegateOptions","defaults","each","key","value","obj","self","constructor","currentTarget","$tip","is","clearTimeout","setTimeout","that","pos","actualWidth","actualHeight","calculatedOffset","complete","e","Event","hasContent","inDom","contains","ownerDocument","documentElement","isDefaultPrevented","tip","tipId","getUID","setContent","attr","addClass","call","autoPlace","autoToken","test","replace","detach","css","top","left","display","appendTo","insertAfter","getPosition","offsetWidth","offsetHeight","orgPlacement","$container","parent","containerDim","bottom","right","width","removeClass","getCalculatedOffset","applyPlacement","prevHoverState","support","transition","hasClass","one","emulateTransitionEnd","offset","height","marginTop","parseInt","marginLeft","isNaN","setOffset","using","props","Math","round","delta","getViewportAdjustedDelta","isVertical","arrowDelta","arrowOffsetPosition","replaceArrow","dimension","isHorizontal","arrow","getTitle","find","callback","removeAttr","$e","el","isBody","tagName","elRect","getBoundingClientRect","elOffset","scroll","document","scrollTop","body","outerDims","window","viewportPadding","viewportDimensions","topEdgeOffset","bottomEdgeOffset","leftEdgeOffset","rightEdgeOffset","o","prefix","random","getElementById","$arrow","enable","disable","toggleEnabled","destroy","off","removeData","old","fn","tooltip","option","$this","noConflict","target","parents","popover","preventDefault","jQuery","Popover","Error","content","getContent","children","end","Constructor","$currentPopover","ev","$target","get"],"mappings":"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"}