"use strict";!function(t){var i={color:"rgba(255, 255, 255, 0.5)",opacity:1},e=function(t){return"function"==typeof t},o=function(t){return e(t)?t():t};t.widget("custom.blurOverlay",{options:{autoShow:!1,backgroundColor:"rgba(255, 255, 255, 0)",blurAmount:"12px",content:"

Hello, blur overlay!

",masks:[],noFilter:!1,transitionDuration:"333ms",transitionType:"ease-in-out",zIndex:1e3},_create:function(){this.showing=!1,this.showDeferred=null,this.hideDeferred=null,this.transition=this.options.transitionDuration+" "+this.options.transitionType,this.masks=[],this.noFilter=o(this.options.noFilter),this._initWrapper(),this._initContent(),this._initOverlay(),this._initEvents(),this.options.autoShow&&this.show()},_destroy:function(){this._removeWrapper(),this._removeMasks(),this.$overlay.remove(),t("body").css("overflow","auto")},show:function(){return this.showDeferred=t.Deferred(),this.showing?this.showDeferred.resolve(!1):this._beforeShow(),this.showing=!0,this.showDeferred.promise()},hide:function(){return this.hideDeferred=t.Deferred(),this.showing?this._beforeHide():this.hideDeferred.resolve(!1),this.showing=!1,this.hideDeferred.promise()},content:function(t){this.options.content=o(t),this.$content.html(this.options.content)},isShowing:function(){return this.showing},_initWrapper:function(){this.options.noFilter||(this.$wrapper=t("
").attr("class","blur-overlay-wrapper"),this.$wrapper.css({"-webkit-filter":"blur(0px)",filter:"blur(0px)","-webkit-transition":"-webkit-filter "+this.transition+", filter "+this.transition,transition:"-webkit-filter "+this.transition+", filter "+this.transition}))},_initContent:function(){this.$content=t("
").attr("class","blur-overlay-content"),this.$content.append(this.options.content),this.$content.hide()},_initOverlay:function(){this.$overlay=t("
").attr("class","blur-overlay-overlay"),this.$overlay.css({"z-index":this.options.zIndex,"background-color":this.options.backgroundColor,opacity:0,"-webkit-transition":"opacity "+this.transition,transition:"opacity "+this.transition}),this.$overlay.appendTo("body"),this.$overlay.append(this.$content)},_initEvents:function(){var t=this;this.$overlay.on("transitionend webkitTransitionEnd",function(){t.showing?t._afterShow():t._afterHide()})},_applyWrapper:function(){this.options.noFilter||(this.element.wrapAll(this.$wrapper),this.$wrapper=this.element.closest(".blur-overlay-wrapper").first())},_blurWrapper:function(){this.options.noFilter||this.$wrapper.css({"-webkit-filter":"blur("+this.options.blurAmount+")",filter:"blur("+this.options.blurAmount+")"})},_unblurWrapper:function(){this.options.noFilter||this.$wrapper.css({"-webkit-filter":"blur(0px)",filter:"blur(0px)"})},_removeWrapper:function(){this.options.noFilter||this.element.unwrap(".blur-overlay-wrapper")},_showOverlay:function(){this.$overlay.css({position:"fixed",top:0,bottom:0,left:0,right:0,opacity:1})},_hideOverlay:function(){this.$overlay.css({opacity:0})},_addMasks:function(){var e=this;this.masks=[],this.options.masks.forEach(function(o){var s=t(o.selector),r=s.offset(),n=t("
").attr("class","blur-overlay-mask");n.css({width:o.width||s.width(),height:o.height||s.height(),position:"fixed",top:r.top-window.pageYOffset,left:r.left-window.pageXOffset,opacity:0,transition:"opacity "+e.transition,"z-index":e.options.zIndex,"background-color":o.color||i.color}),s.after(n),e.masks.push({config:o,$mask:n})})},_showMasks:function(){this.masks.forEach(function(t){t.$mask.css({opacity:t.config.opacity||i.opacity})})},_hideMasks:function(){this.masks.forEach(function(t){t.$mask.css({opacity:0})})},_removeMasks:function(){this.masks.forEach(function(t){t.$mask.remove()}),this.masks=[]},_beforeShow:function(){var i=this;this.element.trigger(t.Event("blurOverlay.beforeShow")),t("body").css("overflow","hidden"),this._applyWrapper(),this._addMasks(),setTimeout(function(){i._blurWrapper(),i._showOverlay(),i._showMasks(),i.$content.show()},0)},_afterShow:function(){this.element.trigger(t.Event("blurOverlay.show")),this.showDeferred.resolve(!0)},_beforeHide:function(){var i=this;this.element.trigger(t.Event("blurOverlay.beforeHide")),t("body").css("overflow","auto"),setTimeout(function(){i._unblurWrapper(),i._hideOverlay(),i._hideMasks()},0)},_afterHide:function(){this.$overlay.css("position","relative"),this.$content.hide(),this._removeWrapper(),this._removeMasks(),this.element.trigger(t.Event("blurOverlay.hide")),this.hideDeferred.resolve(!0)}})}(jQuery);